diff options
| author | John Wilbert M. Villamor <lameguy64@gmail.com> | 2020-04-24 19:01:28 +0800 |
|---|---|---|
| committer | John Wilbert M. Villamor <lameguy64@gmail.com> | 2020-04-24 19:01:28 +0800 |
| commit | 1aa0e17df7c325a41de8cf8a57f52ed853f08bf3 (patch) | |
| tree | 5ec7f69ca0104f2b0a41e2ee7d3cb0cf0c9c54c5 /examples/demos/n00bdemo/scrolltext.c | |
| parent | e82da2abe4c264d4b48a48d79cf9b8e4c4fb8ab6 (diff) | |
| download | psn00bsdk-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.c | 136 |
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 |
