Sonic X-treme - Point of View - Info + help required

Discussion in 'Rare and Obscure Gaming' started by jollyroger, Oct 20, 2014.

  1. andrew75

    andrew75 Spirited Member

    Joined:
    Apr 4, 2010
    Messages:
    142
    Likes Received:
    15
    Oh man,,, that sounds like a real challenge ! At least from my understanding of how the polygons are renderd vs texture UVs. When textures are applied to our modern hardware triangle produced/renderd meshes, they UV map differently vs. being applied to the true Quads of the NV1 and Saturn.

    For example since Xtreme uses a lot of ramp blocks, if you have a ramp piece on the original hardware with a side that looks like a triangle , the NV1 is actually using a quad and overlapping 2 vertex to form the triangle's 3ed point. The texture in turn squashes evenly at that point where the vertex are brought together.
    However on a quad made of triangles (modern hardware) if you move the 2 points together, than the UV does not squash the same way. It will also squash differently or not at all depending on which points moved vs the triangulation.

    There was one Sega Saturn emulator ( I think it was SSF) that has an option for software rendering that could render the Saturn/NV1 styled tri shaped quads on our modern systems. When you switched it to hardware mode , it rendered standard triangles with the new-school screwed up Texture UV mapping.
    Take this Sonic Jam model that I have over here as a reference. I had to cheat a bit in my modeling package to reproduce the Saturn style triangles by subdividing the triangle to keep the texture UV distribution even all the way across non uniform quads.

    This pic shows our modern hardware example in the raw, check out the nasty triangle deformations on the textures. (Sure the uniform shaped quads look fine)
    [​IMG]

    Now for the Saturn type rendering ( although I've cheated here it looks the same as Saturn basically)
    Notice how the 2 circled polygons look so much better.
    [​IMG]


    For some AXSX's recreated levels, since I cant use subdivisions trick (above) because it would make fisheye inconsistent between blocks.
    I actually had to fake it with the subdivision than bake the textures with a much higher resolution and align them to the triangle's UV space to fake the Saturn styled look and feel, but yeah only a few levels will benefit from this as its a lot of work.

    In this level recreation of a magazine screenshot we see the faked ramp blocks each with its own baked texture.
    [​IMG]

    Ignoring the above art hacks...my question is this, will you be attempting to keep the Saturn style rendering for triangle shaped polygons ? And if so, would you be going for a software renderer or hardware rendering but using some kind of programming wizardry?
    Even without reproducing the Saturn styled rendering, I think your re-coding project is still going to kick so much ass when done. So very looking forwards !
     
    Last edited: Oct 28, 2014
  2. Energy

    Energy Spirited Member

    Joined:
    Oct 26, 2009
    Messages:
    118
    Likes Received:
    37
    This is the most excited I've been for a proto in a very long time. I really hope you achieve your goals JR!
     
  3. baba944

    baba944 Newly Registered

    Joined:
    Oct 28, 2014
    Messages:
    1
    Likes Received:
    0
    Kind of off topic: if someone else finds the Diamond graphics card may you please PM me also? I'm thinking of building a PC for old games.
     
  4. Stiletto

    Stiletto Member

    Joined:
    Jul 21, 2013
    Messages:
    10
    Likes Received:
    0
    A long-term deliverable I am hoping for the Sonic Extreme Direct3D/OpenGL project is actually a generic NV1 NVLIB-to-Direct3D/OpenGL wrapper, as previously mentioned on the first page of the thread. Hopefully blueshogun96 can return to work on that, or someone else instead - this way owners of other PC NV1 games can benefit. :)
     
  5. jollyroger

    jollyroger Gutsy Member

    Joined:
    Oct 18, 2008
    Messages:
    458
    Likes Received:
    256
    A solution would be to write an appropriate vertex shader + pixel shader, that way the calculation of the texture sampling coordinates can be performed per-pixel, therefore any behavior (e.g. quadratic texture mapping) can be simulated.
     
  6. Clovergruff

    Clovergruff Active Member

    Joined:
    Jun 1, 2013
    Messages:
    25
    Likes Received:
    0
    Any chance the PC demo originally used some kind of 3d software renderer that could be potentially be restored, assuming it's still somewhere in the source code?
     
  7. jollyroger

    jollyroger Gutsy Member

    Joined:
    Oct 18, 2008
    Messages:
    458
    Likes Received:
    256
    Yes, I believe there are several remnants of the original rendering code, when I have some solid amount of time, I will look into this.

    There are multiple versions of the code in the archives, some (evidently earlier) seem to call the NV1 library directly, whereas others (later) implement a small abstraction layer that allows calling either the NV1 lib or the Saturn lib to render.

    I didn't look hard enough to see if there is a complete polygon software renderer in there, even compiling the code to not use either the NV1 or the Saturn backends causes tons of compilation errors, clearly this branch was heavily biased towards those two platforms.
     
    Last edited: Oct 28, 2014
  8. Zer0-2k11

    Zer0-2k11 Site Supporter 2012,2013,2014,2015

    Joined:
    Jul 18, 2012
    Messages:
    543
    Likes Received:
    20
    Best news/thread i seen in a little while :). Looking forward to future updates.
     
  9. jollyroger

    jollyroger Gutsy Member

    Joined:
    Oct 18, 2008
    Messages:
    458
    Likes Received:
    256
    Today, with the help of Zer0-2k11, we tried to install a universal modchip in the Cross Products Saturn, and found that it doesn't work...

    I tried a million combinations, and it turns out that the Virtual CD boards, which is already between the CD assembly and the motherboard, messes up the timing and the modchip is not effective.
    I tested the modchip by itself in the Cross Saturn and it worked just fine, so the VCD board is the culprit.

    Even having the VCD board out of the CD->motherboard circuit, but still connected to the motherboard with its own internal cable (power + some other signals), it causes the modchip to not work.

    Disconnecting the internal cable and leaving only the modchip connected, the chip worked fine...

    If anybody with experience with the internals of the Cross Products Saturn is interested in helping out to find why the modchip is refusing to work, you are very welcome to, please PM me.

    Jollyroger
     
  10. Druidic teacher

    Druidic teacher Officer at Arms

    Joined:
    Jun 6, 2006
    Messages:
    3,643
    Likes Received:
    129
    x
     
    Last edited: Jun 22, 2017
  11. jollyroger

    jollyroger Gutsy Member

    Joined:
    Oct 18, 2008
    Messages:
    458
    Likes Received:
    256
    And I understood what you said,

    I am afraid I didn't explain myself clearly then.

    The point is NOT to use a burned CD with the whole demo in the Cross Product Saturn, the point is that I want to reproduce the development environment I can infer the POV team had, so that I can try to run some of their code absolutely as-is.

    The archive does not contain any complete Saturn bootable CD image demo. I analyzed the SCR files they used to generate the DSKs, and they only contain data. They used the Mirage to emulate the CD containing the data, and accessed the data from a COF they launched directly on the Cartdev using sndbug, which means I want to get the Mirage working.

    In order to do that I want to use the official way of initializing the Mirage: the Saturn System Disc. I thought it would be very hard to find, therefore I was contemplating trying to install a modchip in the Cross Saturn to launch a burned copy of the System Disc instead, but it doesn't seem to work.

    So my point is:
    1) If I use the modchip on a regular Saturn and burn the data to a CD, I cannot launch the COF with the Cartdev.
    2) If I remove the VCD board from the Cross Saturn, I cannot use the Mirage.
    3) If I burn everything on a single CD and nothing starts, I have no way of knowing what is not working, whereas if I use the Cartdev at least I have a chance to see where it fails.

    Makes sense?

     
    Last edited: Nov 2, 2014
  12. Druidic teacher

    Druidic teacher Officer at Arms

    Joined:
    Jun 6, 2006
    Messages:
    3,643
    Likes Received:
    129
    x
     
    Last edited: Jun 22, 2017
  13. jollyroger

    jollyroger Gutsy Member

    Joined:
    Oct 18, 2008
    Messages:
    458
    Likes Received:
    256
    Of course the Cartdev works with any Saturn (with or without the VCD board), provided it has the NMI connection, otherwise no source-level debugging is possible, this is not the point though.

    I probably didn't explain myself clearly enough: I found several SCR files, and as I am sure you know they contain the list of files one wants to emulate or to burn to disk. In this case they contain the list of files they had on the Mirage to run their tests.

    In those SCR files, there are only references to data files, no system file nor executable binary files.

    There are also DSK files in the same folders, which have clearly been generated starting from the relative SCRs using VCDBUILD, therefore none of those DSK that were prepared had any executable code in them, they were are only for the data. Those DSKs are not bootable DSKs I can just burn and run on a modchipped Saturn. The executable was sent directly to the Cartdev as a COF.

    Of course I can change the SCRs to include the system file and the binary, run VCDBUILD again to get a "complete" DSK, burn it and test it on a modchipped Saturn, but I don't want to do this right now.

    Right now I don't want to modify their SCRs to include the executables, I want to reproduce as faithfully as I can their development environment, so I want to have the data on the Mirage and run the COF directly from the Cartdev to see if/where it fails, or to follow the code execution if it doesn't fail.

    I appreciate the tips, by all means, but I am not sure if or when I gave the wrong impression; I actually used both the Cartdev and the Mirage (and many other development kits in fact) to develop games between 1993 and 2003, so I know pretty well the reason why the Mirage (and the PsyQ VCD emulator) existed.

    As for the system disc: you are absolutely right, using the swap trick with a copy of the system disc should actually do the job. As it happens though, I have just acquired a system disc a couple of days ago, and it should get here in a week or so, this way I should be able to reproduce their environment fairly accurately, which is precisely what I want to do before making any changes...

    Cheers,

    Jollyroger

     
    Last edited: Nov 2, 2014
  14. Druidic teacher

    Druidic teacher Officer at Arms

    Joined:
    Jun 6, 2006
    Messages:
    3,643
    Likes Received:
    129
    x
     
    Last edited: Jun 22, 2017
  15. jollyroger

    jollyroger Gutsy Member

    Joined:
    Oct 18, 2008
    Messages:
    458
    Likes Received:
    256
    No worries at all, I really didn't make it very clear :)

    It is a configuration that I used innumerable times on various devkits (although this one requires the system disc to unlock), as the data is there on the disc emulator and it changes less often than the code in the early stages of development, so you just keep pumping new executables in to run and debug on that data...

    Hopefully when the System Disc gets here, I will have a chance to run the same way they did...

     
  16. spinksy

    spinksy Peppy Member

    Joined:
    Oct 1, 2010
    Messages:
    351
    Likes Received:
    7
    Did you win the system disc that was on eBay?
     
  17. jollyroger

    jollyroger Gutsy Member

    Joined:
    Oct 18, 2008
    Messages:
    458
    Likes Received:
    256
  18. nesboy43

    nesboy43 Active Member

    Joined:
    Sep 28, 2012
    Messages:
    25
    Likes Received:
    1
    This is honestly the big one for me. Of all the protos I have wanted to see, this has always topped my list. Hope everything works out and that the discs have some working (or configurable to work) code. Thanks for your hard work thus far.
     
  19. spinksy

    spinksy Peppy Member

    Joined:
    Oct 1, 2010
    Messages:
    351
    Likes Received:
    7
    Nice! I wanted to bid and try win it, glad I left it now.
     
  20. jollyroger

    jollyroger Gutsy Member

    Joined:
    Oct 18, 2008
    Messages:
    458
    Likes Received:
    256
    Thanks :)
     

Share This Page