Contemplating a ps1 3d hack

Discussion in 'General Off-Topic Chat' started by jamieyello, Aug 3, 2016.

  1. jamieyello
    OP

    jamieyello Professional Dumbass

    Member
    376
    255
    Mar 11, 2013
    United States
    A while back I was thinking of a way to implement 3d in a ps1 emulator. I asked around, and generally everyone said the same thing, it was impossible because the ps1 gpu didn't handle z coordinates. So I was thinking, I'm looking at a 3d environment and a 3d camera, so there has to be a way to change it.

    First idea was to find the game specific memory adresses where the camera controls were, and it worked, using ar codes I was able to fully control the camera in spyro 2. So if I wanted, I could make a background program that alternated the camera and rendering quickly so you could play ps1 games in really bad asyncronous 15 fps 3d.

    Second idea, I could have two completely syncronized emulations side by side, both using camera hacks to get much better stereoscopy. The problem with that was the game used the camera coordinates to change things. In Spyro 2, Spyro always walks away from the camera when you hold up. For some games it might work but I see serious issues going just with that.

    Third idea, I can run three emulations at once, apply a camera hack to one, apply the alternate hack to the other, and with all the ram syncronized, slowly "unsyncronise" only the parts relevant to rendering the 3d environment, find the balance to make the effect work while keeping things stable. Cons to this? Idk, something could blow up. The idea amuses me, it's like creating parallel universes.

    The idea behind all of this is vr, btw. I'm getting jealous all the Nintendo people get to play everythingthing in vr and I don't.

    The problem still, is that vr requires at least 90 fps to not suck. Most ps1 games run in 30 fps, there aren't any fps hacks that I've heard of. So now we really put on our mad scientist goggles.

    For an additional 30 fps, we can run two more emulations, syncronized as the previous ones, overlayed so they show every other frame with the camera hacked ever so slightly more to keep up with head tracking. This is only 60 fps, but 90 is what we want, so another set of dual emulations can be used to overlay again, 90 fps, full vr 3d, ps1 games.

    So any good, simple and easy to modify emulators out there? I hate how everything is extension based, it's convoluted and my lack of programming knowledge holds me back. Many of them were poorly documented, using old resources, needing old versions of VS to run, such a headache. Maybe I'll make my own ps1 emulator.
     
    Last edited by jamieyello, Aug 3, 2016
  2. jamieyello
    OP

    jamieyello Professional Dumbass

    Member
    376
    255
    Mar 11, 2013
    United States
    Check out my emulator so far

    long unsigned int CPURegister[32]

    CPU register successfully emulated. Fuck yeah.

    I'm reading this, this is the first emulation program I've ever written. I have written a BASIC interpreter before, but that was a little easier to wrap my head around.

    http://psx.rules.org/system.txt

    I'm having a hard time understanding what "d" means under "instructions" near the top of the page. "number of instructions to wait before using r1 (target reg)." I'm genuinely confused on what that's supposed to mean. Actually, I'm not really getting what most of those abbreviations actually mean. Target source base destination registers? I feel like source/base target/destination should mean the same thing.