Obviously I'm not going to promise anything at this point, but it is an ongoing point of interest for me. Really, even if it comes down to actually reverse-engineering individual games and figuring out how they render things, I'd still be up to the challenge with a little support. I can't say how much I'd love to play Spyro/Crash 1-3 on the rift with extensive camera and fov hacking, but it's probably a much bigger project than it seems (especially if you start talking about frustum clipping and stuff). I'll continue to post updates here as I figure things out, but it's also not a main priority for me (I'm more concerned with finishing my game engine at the moment, lol). Ideally, I'd want to come up with some sort of hacked emulator that can be scripted externally for each specific game, since I'm certain there is no one-size-fits-all way to produce rift-distorted stereoscopic 3D with the primitive psx gpu. I might do more work on it in the future, but I wanted to post this here in case anyone else wants to try messing with a PSX emulator's camera or post any other research they might have done on PSX emulator integration. Because the emu is mostly uncommented I couldn't figure much out, but oddly enough no matter how I mutilated the function it didn't affect the way the game rendered. According to the PSX specifications ( ) this instruction is responsible for multiplying rotation matrices, but because the PSX didn't have an FPU, it's all done with oddly-sized integers and bitshifting. I managed to compile the emulator with VC 2010 and run Spyro the Dragon using the emulator's surprisingly fast Software Renderer, and I also managed to find the code for a specific GTE instruction - RTST. Anyway, to get started, I downloaded an open source PSX emulator called PCSX-Reloaded. From what I've been able to surmise, their chips did not support floating-point calculations, so the GTE was necessary for things like matrix transformation, lighting calculation, and other float-heavy stuff- and it used weird bit hacks and fixed-point numbers to do this. Turns out they had a GTE - Geometry Transformation Engine - rather than an ordinary GPU. So I've been doing some research into how the PSX gpu worked.
0 Comments
Leave a Reply. |