aboutsummaryrefslogtreecommitdiff
path: root/examples/demos/n00bdemo/scrolltext.c
diff options
context:
space:
mode:
authorJohn Wilbert M. Villamor <lameguy64@gmail.com>2020-04-24 19:01:28 +0800
committerJohn Wilbert M. Villamor <lameguy64@gmail.com>2020-04-24 19:01:28 +0800
commit1aa0e17df7c325a41de8cf8a57f52ed853f08bf3 (patch)
tree5ec7f69ca0104f2b0a41e2ee7d3cb0cf0c9c54c5 /examples/demos/n00bdemo/scrolltext.c
parente82da2abe4c264d4b48a48d79cf9b8e4c4fb8ab6 (diff)
downloadpsn00bsdk-1aa0e17df7c325a41de8cf8a57f52ed853f08bf3.tar.gz
Refined toolchain instructions, organized examples, added automatic retry for CdRead(), added FIOCSCAN ioctl in psxsio TTY driver, added tty and console examples.
Diffstat (limited to 'examples/demos/n00bdemo/scrolltext.c')
-rw-r--r--examples/demos/n00bdemo/scrolltext.c136
1 files changed, 136 insertions, 0 deletions
diff --git a/examples/demos/n00bdemo/scrolltext.c b/examples/demos/n00bdemo/scrolltext.c
new file mode 100644
index 0000000..e844f21
--- /dev/null
+++ b/examples/demos/n00bdemo/scrolltext.c
@@ -0,0 +1,136 @@
+const char scroll_text[] = {
+"Greetings! Lameguy64 proudly presents a new PlayStation homebrew demo called "
+"n00bDEMO and is very much the first time I've released a new demo in years! The "
+"last time I released a PlayStation demo was Meido-Demo back in 2013 and boy "
+"does this new demo show how far I've gotten good at programming for the "
+"PlayStation with graphical effects such as stencil masks and cel-shading "
+"never before seen in demos that I'm aware of presented in hi-res mode at 60FPS "
+"(50 if PAL). Though there's some flickering issues here and there (though it "
+"probably flickers less in PAL mode and none on the PS2 and emulators) which "
+"I'll explain the cause of such problems in a bit...\n"
+
+"Making this demo was pretty challenging (actually, mostly annoying) but "
+"mostly for the wrong reasons because this demo is actually not made using "
+"the official Sony SDK whatsoever. Yes, I actually put together my own SDK "
+"using the GNU GCC toolchain and made the PlayStation GPU and GTE libraries "
+"myself mostly in MIPS assembly. I call this SDK project of my own PSn00bSDK "
+"and is probably the first homebrewn PlayStation SDK that can actually do 3D "
+"graphics with full GTE support that is on-par to the official SDK even in "
+"its current work-in-progress state as all other open source SDK examples I've "
+"seen only offer very limited or no 3D capabilities whatsoever as with the case "
+"of PSXSDK. I used n00b in the naming as I don't want to put pro in the name "
+"of my projects knowing that its been used and abused in a lot of shovelware "
+"and I wanted something less generic sounding. This SDK project is not exactly "
+"professional software after all especially when I get into the issues I've had "
+"with this project as of the making of this demo...\n"
+
+"Currently my SDK mostly offers support for the GPU and GTE but not so much on "
+"other hardware features such as SPU, CD (which would be a disgrace not to support), "
+"MDEC, controller/memory card and serial I/O. I mostly focused on supporting the "
+"GPU and GTE as I feel it was the best way to present a proof of concept that making "
+"an open source SDK that is on par to the official SDK should definitely be "
+"possible especially when the ins and outs of the PlayStation hardware "
+"had since been extensively documented so there's absolutely no excuse for not "
+"supporting the hardware features of the console. I'm not certain if I'll continue "
+"working on this PSn00bSDK project because I've experienced numerous issues with "
+"this project, a lot of which appear to be compiler related (I'm using GCC "
+"7.2.0 targetting mipsel-unknown-elf) as doing small code changes would sometimes break "
+"or cripple certain parts of a large program that results to slowdown (hence "
+"why there's some flicker and I had to omit the Lamelotl artwork in some scenes to "
+"try to keep the flicker down) even when the code changes are completely unrelated to the "
+"parts that got affected. Issues like these made developing this demo a MASSIVE "
+"pain in the butt and it feels like things seem to stall more often than when using the "
+"official SDK which also used GCC (2.8.1 to be specific). I'm not entirely sure if "
+"they're optimization issues or I'm just pushing the console a little too far :). "
+"I feel these issues are detrimental to this project as I don't really want to "
+"work with a potentially unstable compiler in my SDK project as that would make "
+"creating much larger projects (such as a full game) an even bigger pain "
+"in the butt as things would break randomly over small code changes and having to "
+"deal with such issues do not conform to my standards. I haven't checked if "
+"GCC 8.2.0 has better mipsel support and I've yet to look into clang which is "
+"said to support MIPS down to version 1 of the ISA.\n"
+
+"What I hoped to achieve with PSn00bSDK is to create a 100% free and open "
+"source PlayStation SDK that is on-par to the official SDK to make homebrew "
+"development for the PS1 much more attractive especially to those interested "
+"in developing commercial homebrew for the console without the legal issues "
+"surrounding the use of Sony's libraries. But considering the compiler issues "
+"I've had and the PS1 community being mostly focussed on emulators and PSIO over "
+"actually making homebrew for the console and many of the folks who actually knew how "
+"to program for the console especially in low-level have either retired or "
+"disappeared, making the feat I wanted to achieve with my SDK project somewhat "
+"unlikely I feel. I'll be releasing source code of this demo and "
+"the PSn00bSDK libraries on github a week or two as of the release of this "
+"demo if things go according to plan on my end and contributions are accepted "
+"for those interested to volunteer for this project...\n"
+
+"You should have noticed by now that there's something inherently missing "
+"about this demo. Yes, there's no music in this demo at all. I would've "
+"used some CD audio for music but I never got CD playback code working for "
+"this demo and I've already made numerous attempts trying to crack the darn "
+"thing with no success. At least there's no overused Kevin Macleod music here "
+"unlike my last demo which I still wonder why I chose that for the music "
+"over rendering out a MOD file into a WAV file and using that instead, man "
+"was I stupid back then. Another option would be to use MOD music as I have "
+"some SPU support in my SDK but writing my own MOD player would take a lot of "
+"time and effort and finishing up this demo has taken long enough I feel as "
+"I was originally going to release this demo back in December of 2018. "
+"None of the existing MOD players can be used either as Hitmen's player "
+"relies on Sony's libraries and is only offered in binary form (because "
+"stupid) and PSXSDK's MOD player does all sample mixing in software instead "
+"of using the SPU for playing the samples which is abslutely retarded and is "
+"definitely not fit for this demo project. If you're watching this demo in "
+"video form I've likely dubbed over some music to help keep things "
+"interesting as you read this scroll text...\n"
+
+"There's actually some Scarlet Engine technology featured in this demo "
+"namely the SMD model data format which is basically my own implementation "
+"of the TMD model data for Scarlet and its drawing functions written in "
+"assembly. The implementation featured here uses a newer revision of the SMD "
+"model data and the drawing functions are a rewrite but they're still work "
+"in progress as it currently does not support the features added in the new "
+"revision of the SMD model data format. I haven't worked on Scarlet in awhile "
+"as I've somewhat diverted to other things as of late and I've yet to do "
+"research on better culling and rendering techniques as my last implementation "
+"wasn't really all that good I feel. I plan to implement automated culling "
+"using ray scanning when compiling a map and probably a geometry "
+"LOD system similar to Spyro's engine. Developing Scarlet has been taking a "
+"very long time I know but you have to consider this is being worked on by a "
+"single person (who's probably a nobhead) as a hobby with no prior experience "
+"in developing a 3D engine and to be honest, working on Scarlet feels a bit "
+"too big for a single individual to work on. And in case you're wondering "
+"about the apparent name change from Project Scarlet, that's because MS's new "
+"Xbox is also codenamed Project Scarlet and I don't really like to have "
+"Xbox fanboys looking desperately for videos about MS's Project Scarlet "
+"and finding videos about my Project Scarlet instead that would only serve to "
+"enrage them or something...\n"
+
+"Another piece of somewhat advanced technology used in this demo is that "
+"all the assets in this demo are all stored in the PS-EXE in LZ77 compressed "
+"form using my LZPack libraries to keep PS-EXE size low which speeds up the "
+"boot time of this demo. I actually developed the LZPack library for the "
+"official SDK in the past but I haven't got around to releasing them but I'm "
+"likely going to include them with PSn00bSDK along with the compression/packing "
+"tools and it should still work with the official SDK with only minor changes...\n"
+
+"I think that's pretty much all there is I wanted to say in this demo. I "
+"was originally going to release this demo back in December of 2018 but "
+"got delayed due to work and other things getting in the way but I hope "
+"you enjoyed watching the visuals that were presented in this little "
+"proof of concept demo...\n"
+
+"Greets to nocash NITROYUASH Orion danhans42 Shendo TriMesh "
+"inc^lightforce Shadow\n"
+
+"Programming and most graphical assets in this demo are done by me "
+"(Lameguy64). Lamelotl artwork drawn by Lumdrop. Hatkid from A Hat in "
+"Time is owned by Gears for Breakfast and the 3D model featured in this "
+"demo is made by me...\n"
+
+"Visit my website at http://lameguy64.tk if you want... "
+"Pages are super lightweight with absolutely zero ads! (except joke ads that "
+"don't do much other than mock the real ads, in case I've added them in the future)\n"
+
+"This has been a 2019 Meido-Tek Production!\n"
+
+}; \ No newline at end of file