Dreamcast mods for SADX

Discussion in 'Engineering & Reverse Engineering' started by TheArcadeStriker, Jul 30, 2016.

  1. PkR

    PkR

    Member Member
    182
    0
    16
    SADX Dreamcast Conversion, The Emeralds' Awakening
    At this point we can only speculate what and why exactly happened, but I'll try to answer this to the best of my understanding.

    Palette lighting actually was there in SADX at some point in development. The fact that it can be enabled in SADX Preview with a working lighting debug menu suggests that it was in the process of being replaced by another lighting system, which ended up in the final version of SADX. I'm not exactly sure why the replacement was necessary in the first place, but if you enable palette lighting in SADX Preview it looks kinda inaccurate. Perhaps they couldn't get brightness calculation to work right, or maybe it was already on the way out. Either way, it looks like the basics of palette lighting were already there in SADX GC, but for some reason that was canned.

    Even with that new lighting system for characters and stage lighting, they could've done a much better job. For characters, they could've come up with better colorization values that would look a lot closer to the DC version, and doing so would've been very easy given the system they had in place - you can even do it yourself in SADX Preview. In fact the new character lighting thing works very similar to the Dreamcast version (with some added functionality like directional lights). It's just that instead of reading character palettes from PL files, it uses an algorithm that takes several colorization values and produces a palette that is then applied to the model. In SADX Preview, it can be previewed in realtime and there's even two color bars at the bottom representing base and specular palettes, which are exactly what's there in the PL files. They could've made character lighting almost the same, if not better than the Dreamcast version. But for some reason they just didn't.
    Also, in the 2004 PC port half of those colorization values don't work (but the data for them is still in the EXE). Morph suggested a while ago that it could've been related to DirectX limitations they had to face on PC at the time. Also, apparently the DX9-based Steam version has a shader that does character lighting like the Gamecube version, so it's possible that those values work there.

    For stage lighting, apart from making better use of the system they had (up to 4 different lights AFAIK), they could've imitated palettization using vcolors, which they sort of did in some areas like Casino, Final Egg 2 and the Mystic Ruins Chao Garden, but in most other areas it looks like a poor attempt to hide the lack of actual lighting. Or perhaps they were trying to make it look like SA2, who knows.

    I would say the game we ended up getting is the result of lack of effort and/or competence on the porting team's part. There are many things in SADX that suggest that the developers either didn't fully understand how their own engine worked, or were very, very lazy and/or under severe time constraints.
     
  2. Azookara

    Azookara

    take it from me, little buddy Member
    2,957
    0
    16
    Meowth's party
    hoboagogo?
    A lot of the differences in DX's visuals in comparison to the original SA1 seem to not only tell me that they were working VERY quickly and/or lazily, but also that they seemed to want to make SA1 look more in line with SA2.

    I'd imagine this is because SA2B came out on the Gamecube before SADX did, but the game loses a lot of it's charm as a result. While some areas have better quality textures, they lose all the bold and wide variety of colors the original game had going for it. And not only that, but the actual detail and stylizing in the textures themselves is deliberately recolored and redesigned to be a lot blander and more realistic, almost as if done to not look so outlandish in comparison to it's sequel. Combine all this with a somehow inferior (?!?) lighting engine, and combine that with how many visual features have been botched in every port onward, and Sonic Adventure goes from looking like a game that was pretty for it's time to something not pretty at all. Yeesh.

    So KUDOS to everyone behind this project to revive the original lighting and textures. Once we get the original DC models back on this, it'll be the fucking coolest restoration I've ever seen from a mod.
     
  3. Jeffery Mewtamer

    Jeffery Mewtamer

    Blind Bookworm Member
    1,469
    0
    16
    Well, SADX definitely borrowed some things from SA2B. The fact the SADX Chao System is nearly identical to SA2B while SA1DC's Chao System is different enough that people coming from later versions of Chao find it completely alien is testament to that. Whether they borrowed any of SA2B's graphical engine, I have no idea.
     
  4. E-122-Psi

    E-122-Psi

    Member Member
    1,791
    0
    0
    The newer models look much better with the proper lighting downplaying their ridiculous gloss anyway. I'd be fine if the missing sound effects were added back in somehow. They add more ambience in places, not to mention make the cutscenes seem less awkward compared to all the silent action of DX.

    Hard to say, but the 'Director's Cut' moniker leaves me suspicious. Unless it was intentional flavoured false advertising, I wonder if the developers had more long term ideas for it, but then SEGA informed them they just wanted a basic port with the odd bell and whistle on the shelves as soon as possible (they were really going for the vanilla rereleases around this time) so they had to just rush what they had onto the finish pile. We already know SEGA aren't big on remakes altering too much of the originals (SA2 was lucky enough to already look Gamecube quality for the most part).
     
  5. Atendega

    Atendega

    Lesser Sea Sponge Member
    577
    0
    0
    Comfy couch
    Collecting insults
    The new models might be better graphically, but I much prefer the originals artistically. They were distinctly different from the SA2 models, and shoving SA2 designs into SA1 just leaves a bad taste in my mouth.

    I'm with Azookara on this one. There isn't a single aesthetic "upgrade" in DX that I prefer over the originals.
     
  6. E-122-Psi

    E-122-Psi

    Member Member
    1,791
    0
    0
    I do think some of the replacement textures merge together better, but not always.

    It's ironic they enhanced the models that least needed a tune up, everyone else is far more limited and jagged, only Tikal even has an animated mouth. The best they did was add fingers to her, Eggman and Big.

    For some reason they never came off as SA2 to me though, just smoothed out and not quite as expressive.
     
  7. MainMemory

    MainMemory

    Every day's the same old thing... Same place, diff Tech Member
    4,273
    0
    16
    SonLVL
    This probably has everything to do with the fact that I completely skipped the Dreamcast and went straight to PC/GC, but I do not see the appeal of making the game look entirely like the Dreamcast version. Sure, I will be the first to admit that SADX on PC has many lower quality textures and very bland lighting, but do we really need to port everything? Personally I can't stand Sonic's SA1 model, and there's a few other things that just look too "early 3D" for my taste.

    I want to see a mod where everything uses Unleashed/Generations assets. In fact, we've already ported the lighting engine from SA1, let's go for the Hedgehog Engine next.
     
  8. Turbohog

    Turbohog

    Member Member
    598
    0
    16
    Are you essentially saying you want Adventure running on the Hedgehog Engine? I'm not sure what you're getting at here.
     
  9. MainMemory

    MainMemory

    Every day's the same old thing... Same place, diff Tech Member
    4,273
    0
    16
    SonLVL
    I'm saying I want the Hedgehog Engine running on Adventure.

    Porting all of SA1 to Generations would be cool too I guess.
     
  10. BlazeHedgehog

    BlazeHedgehog

    A "Community Enigma"? Oldbie
    1,447
    1
    18
    I always figured it was just because it was hard to port over certain graphical effects from the Dreamcast. SADX, SA2B and Skies of Arcadia Legends all have visibly different lighting for no other reason than "technology demanded we change how these games render"
     
  11. SF94

    SF94

    Previously Morph Tech Member
    773
    0
    16
    Utah
    SA1/2 hax
    The only actual limiting factor for Dreamcast games on other platforms is that they were designed with order-independent transparency in mind, a feature the Dreamcast had at the hardware level. That's why nullDC was so bad at handling transparent things for so many years, and why even in SADX you can see item capsules render on top of the water that it's underneath. That aside, everything else is possible. Like PkR mentioned, the SADX Preview had palette lighting implemented and functional, they just... removed it.
     
  12. BlazeHedgehog

    BlazeHedgehog

    A "Community Enigma"? Oldbie
    1,447
    1
    18
    But then why do those other two games also have worse lighting? A lot of scenes in SA2B look almost like they don't have any lighting at all.

    [​IMG]
    [​IMG]
    [​IMG]

    This video compares the Dreamcast and PC version, but I remember seeing a video a couple years before SA2B got the HD treatment that compared the Dreamcast and Gamecube versions with the same results.

    And for the record, here's Skies of Arcadia.

    [​IMG]
    [​IMG]

    You can say that they wouldn't have needed to change things, but having three Dreamcast games ported to the Gamecube suffering lighting changes/downgrades is more than circumstantial to me.
     
  13. SF94

    SF94

    Previously Morph Tech Member
    773
    0
    16
    Utah
    SA1/2 hax
    I recall seeing the video of the GameCube version too, so no big deal. I will say though, that the PC version of SA2 made things even worse as far as lighting is concerned. Just compare Lost Colony 2P from SA2B to SA2PC. The difference in this case is bad implementation; there was no actual limiting factor, especially on modern hardware. It makes me sad.

    Anyway, all of those games aren't using anything more than per-vertex lighting as far as I can see. Even SA1's palette lighting is simple per-vertex lighting. The only weird part of SA1's implementation is that they could use an array of colors to apply to any given vertex based on light direction and calculated brightness. That being said, I think the fact that they had it working perfectly on the gamecube in a working prototype is enough proof that there are no other limiting factors of these other platforms*. Where DX PC is concerned though, they did have a limiting factor here, and that was their decision to use DirectX 8 when 9 was already available. It even has you install a DirectX 9 runtime as opposed to anything specific to 8.

    If you want an example of a game that didn't change really at all in terms of lighting, then have a look at Space Channel 5 Part 2: https://www.youtube.com/watch?v=jcuwkEyhICU

    Aside from the fact that the PS2 image is overall more faded, you can see that at least as far as the characters are concerned, the lighting is identical... except green dress lady who is inexplicably way brighter than anyone else in the scene. They probably just screwed up her materials in that case though, intentionally or otherwise.

    The way I look at it is, there were 3 possibilities for the (arguable, but in my opinion) downgrades. Poor implementation, poor performance, or both. I'm fairly certain I could restore the Dreamcast lighting from SA2 in SA2 PC, to be quite honest. It doesn't look anything like the complexity that was the SA1 palletized lighting; it just looks like your everyday vertex lighting. If it does happen to use palletized lighting though, I have a working D3D9 implementation now :v:

    *I could absolutely be missing something here though. If anyone more familiar with the Dreamcast knows something I don't, I'd be interested to hear what made all these ports look awful. :v:
     
  14. PkR

    PkR

    Member Member
    182
    0
    16
    SADX Dreamcast Conversion, The Emeralds' Awakening
    This is something I intend to look into when I'm done with level objects. If you're willing to document the missing sounds, I'll be interested in a list of locations/sounds that are missing. So far I know about only two missing sounds at Eggman's base in the Mystic Ruins, which play when you go there as Sonic and at the start of Gamma's story.
     
  15. E-122-Psi

    E-122-Psi

    Member Member
    1,791
    0
    0
    I know a lot of SFX when a player does a minor action are missing:

    * A thud noise when Sonic/Tails and Knuckles collide post-boss.
    * Another thud when Chaos lands offscreen in Big's intro.
    * A skid noise when Beta backs up just before his first boss battle.
    * Beta 'talking' to Eggman.
    * A foreboding noise when ZERO's shadow casts over Amy in the cutscene after Twinkle Park.
    * A button press noise when you hit the activation button above the Casinopolis entrance.
    * A malfunction noise when Gamma gets confused by Amy ("Does not compute/Insufficient data"). Also a strange shutdown-like noise when he turns and tells her to go.
    * Another button switch noise when Gamma opens Amy's cell (though there is another strange noise added, maybe that was intended to be a replacement).
    * A few flapping and chirping noises from Birdie in some cutscenes such as that one.
    * Ambient noises in several gameplay segments (at least I THINK they're Dreamcast only):
    ** Machinery noises in the Final Egg hub.
    ** Bush rustling in the Angel Island hub (I think it is actually used in DX just more infrequently, probably better because it gets annoying).
    ** Some sound effects from ZERO in Amy's gameplay such as when he thumps his chest (again, I THINK they're Dreamcast only).

    There's probably more but that's the ones I noticed right now. Some might just be quieter in the DX version though.

    Also note that some sound effects were altered from the Dreamcast version too (eg. some character grunts, Gamma's rolling mode SFX, the whistle noise when Sonic and ZERO fall from the sky being deeper).
     
  16. Turbohog

    Turbohog

    Member Member
    598
    0
    16
    Here's some more audio differences according to this SADX gamefaq:

    Interestingly, apparently the ring, monitor, and emblem collection sounds are lower in pitch than the Dreamcast version?
     
  17. Speeps

    Speeps

    Member Member
    101
    2
    18
    I know I already said this in the other topic but I know the character sounds are different at least are because for some reason SADX chose to use an earlier set of sound effects rather than the ones from the final game - the E3 demo for SA1 uses the same sounds (Knuckles saying "Dang", Amy saying "Yah!" etc.), so that might be worth looking into there.

    Speaking of sounds, I also know that the sound test was also quite different when I went through it on the PC version compared to the Dreamcast one.
     
  18. End User

    End User

    Member Member
    14
    0
    0
    Supers Over Hedgehogs (SA2)
    Another oversight in terms of missing sounds comes from the Sky Deck stage. Before the stage's backdrop transitions due to the fluctuating speed of the battleship, Eggman announces it by saying either "Descending into the clouds; slow the ship down!" or "Go up! Full speed ahead!" in the Dreamcast version.

    I'd also like to contribute towards the Dreamcast re-creation process with this: the "Dreamcast Font" mod. Though not 100% accurate to the original Impress font used in the Dreamcast/GameCube versions of the game, this mod comes close to replicating the same style if you blur your eyes enough.

    Here are some examples:
    [​IMG]
    [​IMG]

    Known Issues:
    -Due to the nature of how the mod was created, there are spacing issues with certain lines of text, such as the prompt that appears when you attempt to exit from an Action Stage to the Adventure Field via the Pause menu.
    -Occasionally, long lines of text are cut off from the sides.

    I'm impressed with the work that's currently underway in the attempt to restore the Dreamcast's, well, everything, and special thanks goes out to MainMemory for the SADXFontEdit tool that led to the Dreamcast Font mod's completion.
     
  19. PkR

    PkR

    Member Member
    182
    0
    16
    SADX Dreamcast Conversion, The Emeralds' Awakening
    Thanks guys for your contributions.

    I just thought I should let you know about some progress made in sound-related stuff recently.

    First, I checked some of the sounds, and it appears that not all of the sounds reported above are missing. For example, the background car noise in Station Square is still there, but it's very quiet and the sound itself is of very poor quality so you can barely hear it. But this is good news because replacing that sound is trivial thanks to SADXSndSharp. We can even make "Dreamcast sound packs" that would work in a way similar to texture packs. Pretty exciting!
    Ambient noises in all Action Stages I've checked so far are still there, but they're quite a bit louder on the Dreamcast.
    Zero's chest-thumping sound is just a different sound in SADX.
    Beta "talking" to Eggman is the ambient noise of the Final Egg hub.
    Almost everything character-related can be restored by replacing the sounds in their respective soundbanks. This includes different voice clips for Sonic, Knuckles and Amy, which I believe TheArcadeStriker has worked on before in his SADX99 mod.
    Same for ambient noises in the Mystic Ruins. Apart from machinery noises at the Final Egg base (which have been restored by the way!), all the ambience is in the game, but it's either too quiet or plays at a reduced radius so you can't hear it in areas you'd normally hear it on the Dreamcast. More on that later.

    Second, about getting the sound effects ripped from the Dreamcast version. I'm sure some people have already heard of/tried the python scripts available on this page, but there are two important things to take into account when using them:
    1. You have to use an older version of Python to make them work. I used 2.6.6.
    2. The script called dsfmake.py needs to be edited (lines 44 and 57) to properly extract all sound banks from the MLT files.
    If you just extract the MLT files using an unmodified script (or using the compiled exe provided by Turbohog earlier), you'll only get the contents of the first bank (0), which are going to be the same for all level MLTs, and for cutscene MLTs it won't extract anything because bank 0 is empty in cutscene MLTs. So you need to edit the script to include the correct sound bank number to be able to extract them.

    The MLT files from the Dreamcast version are very similar in their basic structure to the DAT soundbanks in SADX (I'm not talking about file format, which is obviously different, but more about the order and the hierarchy of things contained in those archives). You can see the structure of DAT files on this Retro wiki page. It says bank 0 is always the COMMON bank, which is the bank containing such sounds as ringloss, skidding etc, and this is exactly what people were getting earlier when trying to extract the MLT files. So change line 44 in the script to something other than 0x00 to be able to extract the correct sound bank.
    If you did everything right, you'll get a bunch of .minidsf files. Once you get the sounds, you need to run the dsftime script on them to tag their fades/lenth fields, though I'm under the impression that it's a bit inaccurate. Anyway, after tagging them you can open the .minidsf files in a program called Audio Overload, which you can find on the same page with the Python scripts. Unfortunately the program's GUI doesn't allow any kind of batch operation, but thanks to the availability of its format SDK we may get a better solution sometime soon.
    Also an interesting bit about sounds: the MLT files sometimes contain "empty" sounds that are just 1 second of silence. Those were removed from SADX sound banks, and you can see traces of that removal in the filenames: for example, there may be sounds ending in 00, 02 and 04, but it would skip 01 and 03. Case in point: MYSTIC_RUIN_BANK05.
    Anyway, replacing the majority of the sounds with higher quality Dreamcast sounds is totally possible.

    Now back to the missing sound effects in SADX. I feel like this is going to be a tedious case-by-case restoration, but so far I've learned the following:
    1. Background machinery noises in Mystic Ruins' Final Egg base. There's a SET object called O SE (specific to Mystic Ruins apparently) that makes the game play a sound from MYSTIC_RUIN_BANK05.dat. It uses its X Rotation SET value as the ID of the sound to be played. According to debug strings and SADX Preview, there's also supposed to be radius (not sure which value) and volume (Y Scale SET value), but from what I've seen so far it doesn't use those (which could explain why some sounds have a shorter radius than their Dreamcast counterparts). There's a maximum of 8 different sounds the object can play (0 to 7). But for some reason when the sound ID was 0, the game didn't play anything. It turns out there's a check in code to specifically disable that sound. And, as you've probably guessed, that is the ID used for machinery noises in the Final Egg hub (Thanks Morph for locating that check and disabling it for me). Note that even with the check disabled, the sound is still going to be different because they replaced the actual sound too, but it's no longer a problem because we can just replace it with the original.
    2. Eggman's announcements in Sky Deck 2. This is really weird, but not very surprising given the overall quality of the port. The code to play those announcements is still in the .exe, but the announcements don't play for 2 reasons: 1) the sounds for the announcements are missing from the soundbank; 2) it looks like the IDs of the announcements were not updated to accommodate the removal of some other sounds. So what I did was add a bunch of duplicate sounds to the soundbank, and insert the announcements at the bottom to make sure they have the same index as in the Dreamcast version. And wow... It worked.
    I really hope this is the case with all the other missing sounds, because that would make restoring them a lot easier.

    As for missing cutscene sounds, unless it's the same issue as with Sky Deck announcements, restoring them is gonna be the biggest challenge. Cutscenes are hardcoded, and if the code to play a certain sound is no longer in the game, we would have to add it manually, which would require locating the code for each cutscene and rewriting it to include the missing sounds. It would be great if we could somehow just convert the Dreamcast cutscenes into SADX code, though it seems like an extremely difficult thing to do.

    EDIT: So I was able to restore the sounds in Gamma's prison cutscene. There were several issues: first of all, it was using the wrong soundbank - E_0065 instead of E_00BF. I mean I'm not 100% sure which should be the correct one, but the sounds from E_00BF are certainly those used in the Dreamcast version. Secondly, the order of sounds was messed up because of removed "empty" sounds I mentioned above, and I had to insert duplicate sounds in there to match the order of the Dreamcast soundbank. But I'm very glad it worked after all.
     
  20. E-122-Psi

    E-122-Psi

    Member Member
    1,791
    0
    0
    Horray, looking forward to seeing it and the Final Egg. You guys are recapturing the full atmosphere of the original game again.

    So, would this mean the missing sounds were due to glitches/misights or intentionally left out like some of the replaced ones? The former would explain why some of DX's replacement sounds are so weird.