don't click here

Sonic Adventure DC Texture Hacking

Discussion in 'Engineering & Reverse Engineering' started by Kurausukun, Jul 10, 2016.

  1. Kurausukun


    First real topic, hopefully I don't make too much of an ass of myself.

    I wanted to do a little project with Sonic Adventure DX using the original Sonic Adventure and the Dolphin Emulator. My idea was to port all of the DC textures to the DX port because I think they look a lot better, and if I managed to do it, I could play with all the benefits of the DX port.

    Getting the files was no problem, as the tools for exploring DC ISOs are very readily available. I dumped all of the files on the ISO without a hitch. The next step was finding out what format the textures are stored in, which was also a breeze thanks to this site's excellent documentation on the formats the game uses. It even linked me to the SA Tools pack, which contained the tool I needed to extract textures from the game, PVMEditSharp. The only problem is, it doesn't seem to work correctly.

    When I attempt to load a PRS file, one of three things happens.

    1. The texture pack loads correctly. This is excellent and the program lets me extract all of the textures in the archive very conveniently.
    2. The program gives me an error dialogue saying, "Could not open file XXX.PRS" (for example, this happens with a file called A_MOT.PRS).
    3. The program gives me an unhandled exception error (for example, this happens with every ADVSS##.PRS file). It doesn't crash if I continue, but it doesn't load the texture either. Specifically, it's giving me an index out of range error, so I guess either my files are corrupt (I don't think they are), or the program is reading something incorrectly? I'm not really sure.

    Is anyone here familiar with this topic and could tell me if I'm either doing something wrong or need a different program (or if it's just not possible with what we have now)? I tried one other program I found, PVMEdit, but it didn't even let me open the files because it was looking for files in a different format.
  2. MainMemory


    Kate the Wolf Tech Member
    PRS is a general-purpose compression format used by Sega games, which can contain any type of data. The file A_MOT.PRS, for example, contains animation data for Amy's model. That covers scenario #2.

    Scenario #3, unfortunately, is a known bug with the library we use to process texture data, and we don't know how to fix it. You can try decompressing the file with this tool or Puyo Tools and then using another PVM editor.

    Also, I'm not 100% sure how Dolphin texture replacement works, but SADX Mod Loader for the PC version is probably a lot easier to work with.
  3. PkR


    SADX Dreamcast Conversion, The Emeralds' Awakening
    Hi Kurausukun,

    I'm very interested to see how your project comes along. I think it might help to have a look at SADX "Preview" prototype for the Gamecube, which has a lot of Dreamcast graphics still intact.

    I've always wanted to bring Dreamcast graphics to either the Gamecube or the PC ports of Sonic Adventure because to me they look much better. Apart from textures, there's a lot of stuff in original SA that didn't make it to SADX, particularly the lighting system and environment mapping effects. Window reflections in most areas of Station Square were replaced with simple textures in SADX, some models (like the helicopter in Speed Highway) were changed too for a less shiny look. Compare the Chaos 0 battle on DC and GC, for example, and you'll see very different-looking police cars and windows. The reason behind these changes, as Morph aka SonicFreak94 suggested a while ago, may have been hardware limitations (particularly VRAM) of the Gamecube and the developers' intention to reach 60 FPS on that hardware.

    Several years ago I tried to restore some of this stuff with partial success. With MainMemory's help I was able to extract complete level models (including their texture lists) from Dreamcast SA and import them into SADX PC. I got several levels working with Dreamcast textures, however a major obstacle was the lighting. Although the levels were using Dreamcast textures and window reflections were back, they still looked different because apparently the lighting is handled differently in SA and SADX, so I gave up at that point. If you are interested in bringing entire Dreamcast levels into SADX with the original textures rather than replacing the textures in SADX levels, this might be a good starting point provided that you fix the lighting - from what I know, you can do it by importing these level models into 3DS MAX.

    It's been a very long time since I did this and I'm running out of trial posts, but feel free to PM me if you're interested in continuing where I left off. I think I still have this stuff archived somewhere so I'll try to refresh my memory.
  4. Kurausukun


    Thanks a lot, MainMemory, it's helpful to know that at least I wasn't doing something wrong. I'll give your suggestion a go, but I won't be too heartbroken if it doesn't work, I suppose.

    PkR, sorry to disappoint you, but I honestly didn't have any plans beyond texture editing. I've never worked with models in my life (though I'm sure something of this level wouldn't be too hard), and I have no idea how lighting works either. I also don't really mind the "shininess" the DX port has, though I recognize that a lot of people do :P

    Either way, that's some useful information. I might report back later, but for now I'm just going to see what I can get done.