aboutsummaryrefslogtreecommitdiff
path: root/examples/demos/n00bdemo/scrolltext.c
blob: e844f21ea2442c6defdfa700b07677c74dae3cd2 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
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"
	
};