SADX Mod Installer update

The SADX Mod Installer was discontinued back in 2022. However, with the arrival of the new SA Mod manager and retirement of the original SADX Mod Manager I felt it was necessary to update it. Many people are still using it, and Linux/Steam Deck tutorials seem to rely on it. Although I want to retire the installer as soon as possible, I made the following update to make it easier for people using it right now:

  • If you’re running Windows 7 or above, it will install the new SA Mod Manager (auto picking x86 or x64). If you’re running Windows XP, it will install the legacy SADX Mod Manager.
  • .NET 7.0 Desktop (x86 or x64) is installed automatically on Windows 7 and above.
  • The installer was made compatible with Windows XP. All tools, including Steam conversion, are completely functional on XP. Online functionality will not work on XP and 7 due to outdated certificates, but it might work if the system has correct certificates.
  • The Steam conversion process has been altered to rely on patches. Now the installer doesn’t supply the EXE or DLLs from the 2004 version, instead it patches the Steam version to turn it into the 2004 US version using a 5MB diff file. This was made possible thanks to HDiffPatch. Best Buy, EU original, Sonic PC Collection and Korean versions of SADX are also patchable.

The installer still doesn’t support the new configuration format introduced in the new Mod Manager, and I think it will probably stay that way. However, the new Mod Manager picks up the old format settings generated by the installer so this should be no problem to the players.

At some point in the future the new Mod Manager will handle the Steam conversion, and the installer will no longer be necessary. Some of its features will be implemented in the new Mod Manager or through other means: for example, Guide Mode could be done as a web page with 1-click install links.

Native Steam savegame support in SADX 2004

Previously you had to use BetterSADX or the SADX Mod Installer to transfer savegames to the 2004 version, but soon it will be possible to load the Steam version’s saved games in the Mod Loader. You will be able to load files directly from their original location, so no transfer is required whatsoever. If you play a Steam saved game in the modded 2004 version, the original Steam version will also be able to load it, so you can play the same file on both versions. The Chao Garden save is also supported: if you load a saved game located in the Steam folder, it will use the Steam version’s garden file. As you can see in the screenshot, custom filenames (ANSI/English only) are also possible, so your saved games no longer have to be named “SonicDX??” for the game to recognize them.

The format used for saved games is almost identical between the two versions, but there are a couple differences that make them incompatible. You can load 2004 saves in the Steam version if you rename them, but not the other way around. The files created by the Steam version are 16 bytes bigger (1408 bytes vs 1392 in the old port), and 12 of these extra bytes are used to store the file creation date and time. At the beginning of the file there is a checksum, and both versions use the same algorithm which calculates the checksum value based on the contents of the whole file. The reason the 2004 version won’t load Steam saved games is because the game only accounts for 1392 bytes when reading the file and calculating the checksum, which doesn’t match because it doesn’t include those extra 16 bytes in the calculation. The Steam version removes the checksum check on the file select screen so it recognizes saved games from the 2004 version, although the date and time might look wrong. When progress is saved in a file that originally came from the Steam version, the Mod Loader writes the current date and time into the file so it should display correctly in the Steam version as well.

Dreamcastify is back

Dreamcastify, a website that documents SADX downgrades, was having some technical issues throughout the last two years. Some video comparisons that were hosted on Youtube were taken down, and after a WordPress update the pages didn’t load properly and many images were missing. I reworked all pages so that they load again and made the following changes:

  • All video comparisons are now hosted on the site itself.
  • The pages display smaller JPG images by default, and a full-size PNG version of each image can be seen if you click on the preview. This made the site much more responsive.
  • There were some minor text edits (mostly wording) and some info updates regarding mods and emulation.
  • The feedback section was removed. Sorry, I don’t have the resources to read all of the comments. I haven’t looked at the newly arrived 850+ comments for about 3 years now, and from a quick glance they seem to be just spam anyway.

This is likely the last update to the site for the observable future. I was originally going to take it down because I didn’t have interest in updating it anymore, but then I thought it should be left online as a source of information, so I took a weekend to sit down and fix it for good, as well as rewrite some things.

I’d like to thank KGL for getting the initial editing and format updates done.

Introducing SADX Gamecube Project + Overview of differences between SADX PC and Gamecube

Today I’d like to introduce a project I’ve been meaning to start for a long time. Gamecube Project is an ongoing attempt to research the differences between PC (2004) and Gamecube versions of SADX, and implement them as a mod for the PC version. While this mod will be nowhere near as ambitious and fast-progressing as Dreamcast Conversion, I’d like to release the first version of the mod to get started.

Download

Download (SADX Mod Loader 1-click install)

(This mod isn’t compatible with Dreamcast Conversion. You can’t load both mods at the same time).

Although I’ve been contemplating it for a while, there were many technical difficulties in getting this off the ground. Here’s a list of steps we’ve made over the years before this project could exist:

  • SonicFreak94 developed a mod that makes the lighting in SADX PC more Gamecube-like. I made an experimental fork of this mod with some attempts to improve accuracy.
  • Exant and hesoyaam figured out REL file compression in the final version of SADX GC, and I integrated it into SA Tools.
    Edit: It was pointed out to me that this post doesn’t mention that REL compression was figured out by RikuKH3 first. This is indeed true. REL compression was first figured out by RikuKH3, who got a commission to make a tool to decompress REL files for a Russian translation project. Since RikuKH3’s tool was closed source, we needed a better long-term solution for SA Tools. The SACompGC library linked above is based completely on decompiled code from the Gamecube version of SADX. However, the Russian translation mod also included a hacked DOL file that bypassed compression to enable the game to load uncompressed REL files. Exant compared that hacked DOL file with the original to find the relevant code to decompile.
  • I did some initial research on GCAX soundbank formats used in Gamecube versions of SADX, SA2B, Heroes, Shadow and Billy Hatcher.
  • I mapped out the data in SADX GC (with contributions by End User) and created a template for SA Tools to be able to extract it.
  • To make a direct comparison possible, I matched up the data with filenames we got from X360 symbols like I did earlier with the PC and DC versions.
  • I wrote a comparison tool that lists differences in levels and models and generates C++ code to patch the PC models to match the GC version. This patcher was first used in Dreamcast Conversion, but it was originally developed for Gamecube comparisons.
  • Exant, Kell and I implemented support for Gamecube GVM files in the Mod Loader.

The last one in particular addressed a major roadblock because I wanted to use original GVM textures rather than texture packs. Thanks to Exant and Kell it is now possible.

Now let’s discuss the actual differences between SADX PC and SADX Gamecube. Unlike the Dreamcast version, there are no major design differences, and most of the changes can be explained by technical factors rather than artistic choices. Some differences are easier to notice while others are more subtle, but I’ll try to cover all of them.

Lighting

The lighting in the Gamecube version often looks pretty different from the PC version. There are several reasons for these differences:

  1. While both versions use the same format of lighting data, the PC version uses that data to set up Direct3D lights, while the Gamecube version uses a custom lighting formula that applies diffuse lighting last, which makes the environments look more vibrant.
  2. For character and object lighting, the Gamecube version generates palettes and applies them per-pixel, while the PC version uses only some of the values to set up Direct3D lights, which look different either way. The Gamecube version uses the ambient value, two colors for diffuse and two colors for specular to generate the palette, while the PC version only uses the ambient color and one specular color.
  3. The PC version uses a high multiplier for specular lighting, which results in an even more “glossy” look than in the Gamecube version, which was already “glossy”. Also, specular lights in the PC version are set up as view-dependent (they move when the camera rotates), while on the Gamecube specular is view-independent (stays in the same place regardless of camera rotation).
  4. The renderer in the PC version ignores built-in vertex colors for object models. A fix for this was introduced in the Mod Loader.
  5. Although the lighting data format is the same, values for several levels in the PC version were edited to make the lights brighter. This washes out the lighting even further and makes areas look almost fullbright. Simply importing lighting values from the Gamecube version into the PC version (as done by the Gamecube Project mod) even without changing the underlying system makes night lighting in the Mystic Ruins much more convincing.
GamecubePCPC with Gamecube values

SonicFreak94 has made a mod that recreates parts of the Gamecube lighting system in the PC version. At the moment character lighting is not accurate and some stages still look a bit different. I’ve made a fork of this mod in an attempt to improve accuracy, and some stages look closer to the Gamecube version, but others are still different. I’ve also tried to use more values to improve character and object lighting, but since it relies on the same same formulas as the old Direct3D lights, it doesn’t look accurate to the Gamecube version. Still, I think the work that went into the mod is important progress towards fully replicating it in the PC version eventually.

Some special effects

The PC version has some bugs that prevent certain effects from working properly. The Dreamcast and Gamecube versions had bubbles moving inside Chaos’ body, but in the PC version they are static. This is fixed in Dreamcast Conversion and Gamecube Project.

Material colors

The renderer in the Dreamcast and Gamecube versions ignores material colors in most cases (Chao models use them in the DC version though), while in the PC version it converts material colors to vertex colors. This results in unintended tinting of some models. For example, the clouds in Red Mountain are supposed to be white, but the PC version makes them gray:

GamecubePC

I added a fix to the Mod Loader that makes material colors in all models white, so this issue is no longer relevant.

Textures

The PC version uses the same texture format as the Dreamcast original, while the Gamecube version uses a different texture format. Both formats have their strengths and weaknesses, which makes some textures look better on GC, although generally the DC version has the sharpest textures and the PC version has the worst quality textures. Here are some examples featured previously on the Dreamcastify blog:

There are some exceptions though, for example here’s a texture from the character select screen:

DreamcastGamecubePC
Here you can see that the Gamecube version has severe quality degradation, while Dreamcast and PC look the same.

On the other hand, there are several textures on the Gamecube that are sharper than on the Dreamcast. We could only find a handful of these among thousands, but they do exist:

Unfortunately we can’t pick the best quality version of every texture from all versions because many textures in SADX were edited or replaced. Sometimes it’s a simple color edit, other times it’s based on the same source material but composed differently, and sometimes it’s a completely different texture. Here are some examples:

Top is Dreamcast, bottom is Gamecube

The Gamecube Project mod puts back almost all Gamecube textures in the PC version, so if the PC version has a better quality texture there will be a quality regression. However, most of the time Gamecube textures are higher quality than PC textures.

Another difference with textures is lack of mipmaps in the PC version. Although the Mod Loader now generates mipmaps automatically for textures that don’t have them, the original PC port looked pretty terrible without them:

Textures in the Gamecube version have built-in mipmaps so the environments look much smoother in the distance.

Finally, the PC version introduces mirroring for some textures instead of relying on models’ UVs and material flags, which reduces texture resolution. The Dreamcast and Gamecube versions don’t have this, so their textures are higher quality.

Levels and models

Although they look similar enough to be mistaken as identical, many levels and models in the Gamecube version are different from the PC version as far as their data goes. There are three main reasons for these differences:

  1. Models that use mirrored textures have had their UVs and material flags adjusted in the PC version.
  2. Some levels have a different model order, and sometimes the PC version has extra models in the level. Most of the time this has to do with the addition of the detail (clip) setting in the PC version, which is used to make certain items invisible to improve performance. There are also other adjustments related to transparency sorting, which was possibly different on the Gamecube.
  3. There were some texture ID bugs in the Dreamcast and Gamecube versions which the PC version fixed. For example, E-102 Gamma’s Laser Blaster upgrade in Egg Carrier’s water reservoir room was changed to use correct textures.

While points 2 and 3 are fine to leave as-is, models in the PC version need to be patched to look correct with Gamecube textures. This is one of the things the Gamecube Project mod does.

Menus, fonts and branding

The Gamecube version uses the same subtitle font as the Dreamcast version (though it draws a bit differently), while the PC version switches to a different font:

Top: Dreamcast, middle: Gamecube, Bottom: PC

The Pause menu has a controller configuration section on PC, which the Gamecube version doesn’t have. The quit confirmation prompt only responds to the A button on the Gamecube, while on PC both A and Start buttons can be used.

The Gamecube version has Nintendo copyright text on the title screen and images of the Gamecube controller and buttons in menu screens, while the PC version has keyboard images. The save icon in the Options menu is also different, and the arrows have a bouncing animation on the Gamecube. The Gamecube Project mod restores the save icon animation, controller images and button prompts, as well as the copyright text (at 640×480 only). The fonts will be restored at some point in the future.

GamecubePC

Chao

The Gamecube version has GBA connectivity features that are disabled in the PC version (maybe we’ll try to restore that someday?). The model used by the Chao Transporter/Name Machine and its textures were changed in the PC version to remove references to Chao Adventure and GBA-related branding. The PC version also removes the Party Race option in Chao Race, so your Chao can only compete against CPU opponents and not against each other. This is something I’d like to tackle in the Gamecube Project mod and/or Dreamcast Conversion someday.

Sounds, music and voices

The Gamecube version uses ADX music and voices, while the PC version uses WMA music and voices, which are lower quality. This is no longer an issue because the Mod Loader implements ADX support through the BASS library, and you can simply use the ADX Audio mod to get the best quality music and voices.

For sound effects it’s a lot more complicated. The Gamecube version uses a sequenced sound system resembling that of the Dreamcast version. It uses similar data structures and can have DSP effects, although its capabilities are largely unknown at the moment. The PC version doesn’t have anything like that, and uses simple WAV sound effects packed into DAT archives. Although I’ve done some work on getting data out of Gamecube soundbanks, getting them to work in the PC version isn’t feasible at the moment. However, if we figure out enough about the format, we may be able to convert (or record) sequenced effects to regular WAV files and use them in the PC version, like the Sound Overhaul mod does.

Also, the Gamecube version uses Dolby Pro Logic II for 3D audio, while the PC version uses DirectSound3D (the original Dreamcast version used QSound, a binaural 3D effect). While we may not be able to make it identical to either version, 3D sound implemented in the Mod Loader using the BASS audio library is a good alternative.

Fog

The PC version uses Direct3D fog formulas, and all stages are set up to use linear fog. In many areas the fog starts too close to the camera so it washes out details, and the game looks better with fog disabled or adjusted to use longer distances.

The Gamecube version uses different fog modes (linear mode, two exponential modes and two “backwards” exponential modes). The most common fog formulas used by stages in the Gamecube version are linear and “backwards” exponential. Since the exponential formulas are different in Direct3D (and the game uses linear anyway), fog calculation is completely different. In addition, we haven’t checked yet whether fog distances are different between versions (they probably are).

There are several ways to address these differences. The most accurate would be to restore original fog data and use Gamecube fog formulas in the GC lighting mod’s shader. Or, like with Dreamcast Conversion, fog distances in the PC version could be tweaked to look similar.

Water effects

This is perhaps the most visible difference between versions. The Gamecube version has multiple water effects. The distortion is the most obvious effect, but there’s more. Let’s have a look at all of them.

First, the distortion of the whole screen when the camera goes underwater. The surface map used for this effect is the texture called ind_2d in the archive OBJ_REGULAR.

Texture used for 2D distortion

When the camera is above water, there is also distortion of things under (and sometimes above) the water level. This effect uses the ind_3d texture in the same archive.

Texture used for 3D distortion

Often the effect applies to stuff that isn’t underwater, which results in an awkward look:

In fact, when the camera is far enough away from the water, the distortion effect is disabled, likely to reduce the occurrence of this issue:

However, even without the distortion effect the water looks much nicer on the Gamecube compared to the PC version. This is because there’s another effect applied to the water surface that the PC version is missing. The salt_tev02 texture included in texture archives for levels that have water is used as a surface map (possibly bump map) to make the water surface lighter or darker.

Texture used as a water surface map

By replacing this texture with a solid white color we can compare what the water looks like with and without the effect. When we remove the effect, the water starts to resemble the PC version a little bit:

Gamecube with bump mappingGamecube without bump mappingPC + Gamecube textures (no fog)

Without the effect, the water texture is always bright, which can be problematic because the water uses additive blending. If the water covers other bright objects, it gets a “neon light” or “acid” look sometimes. Thanks to the bump mapping effect, these issues are less noticeable and the water blends much better in the Gamecube version.

There are other differences as well: the moving pattern of the water surface is a bit more complex on the Gamecube, and the UVs make the water surface texture appear larger than on the PC version. Also, fog makes the water much brighter on PC, so I disabled it for the sake of comparison.

It should be possible to restore the zoomed-in look and movement patterns in the PC version, and depending on how the surface map is done on GC, it may also be possible to apply it as a bump map to make a similar looking effect on PC. Maybe you’ll see that in the mod eventually. Also, the distortion effect could be replicated on PC via shaders, possibly even without the artifacts that can be seen with the Gamecube implementation.

That’s all for now. I’ll post more findings on Gamecube stuff when I get to work on it next time.

Various updates

GitHub has locked me out due to Microsoft’s forced 2FA policy which I don’t want to comply with. As a result, I can no longer log in to the website to make pull requests, participate in discussions etc. However, at the moment I can still push to repos (wow, so secure huh?), so I can still work on SA Tools, the Mod Loader and other projects. They may pull the plug in the future but at least for now I can contribute to projects that are still on GitHub.

After being locked out I was able to make the following updates:

SA Tools

I added more complete support for reading and writing NJ and GJ files from various games. The update needs some testing so it will be in a separate branch for now.

SA Tools / Texture Editor

1) Unmodified texture data is no longer re-encoded unless the archive format is changed. Adding (instead of importing) textures will now add them as-is if the texture format matches the archive format (e.g. you can add DDS to PAKs or GVRs to GVMs).

2) You can choose between DDS and PNG for textures in PAKs.

3) If you open a single PVR/GVR/XVR texture, it will auto-add all other textures located in the same folder.

4) You can open and edit non-indexed PAKs (SOC folder).

5) You can save individual textures in their original format using the “Save” button.

6) Support for YUV422, Bump, 4-bit Indexed + Mipmaps, Indexed 8-bit + Mipmaps and ARGB8888 indexed PVR pixel formats.

7) Code cleanup, various bugfixes with texture encoding and decoding.

SADX Mod Loader

The game can now load textures in Gamecube GVM files without conversion. This opens up new modding possibilities, particularly for a project I’ve been contemplating to do for a while. I’ll introduce it soon.

Huge thanks to Exant, who decompiled original GVM loading code in SA2 PC, and Kell, who fixed the issues with mipmaps and paletted textures.

Leaving GitHub

Microsoft, who acquired GitHub 5 years ago, are demonstrating their true intentions regarding the future of the site that used to be the largest hub of free and open source community projects.

I was a user of GitHub before Microsoft acquired it, and they have no moral right to impose their new rules and threaten to lock me out of my work if I don’t obey. You can debate the security, necessity and efficacy of 2FA in general or for GitHub in particular, but to sum up my thoughts on this measure:
– I’m not going to use any form of 2FA for my account on GitHub;
– I find forcing 2FA on long-term users, AND locking out those who don’t want it, unacceptable.

So, I have decided to leave GitHub permanently. I will not be coming back to GitHub even if they reverse the decision (though obviously they won’t).

Among other projects, the following SADX mods and tools have had their source code relocated to GitLab:
Dreamcast Conversion
Dreamcast DLC
Sound Overhaul
Debug Mode
SADX Style Water
Time of Day
SADX Mod Installer
SA1-DC-HD

As I am leaving GitHub, I will no longer be able to contribute to the following projects on the X-Hax organization:
HD GUI 2
SADX Mod Loader / Mod Loader Common
SA Tools and SA Tools Wiki
SA Tools (research)
SADX Modding Wiki
Decompilation projects
bass-vgmstream

I will also be losing the ability to contribute (at least directly) to the following projects:
Lantern Engine
Input Mod
SADX: Fixed Edition
Onion Blur

Depending on what kind of “restrictions” Microsoft put on my account, I may also become unable to report issues or participate in discussions in the above projects after October 6th, 2023.

Leaving is not easy, and losing touch with the community and projects I’ve put a lot of personal time into building and improving sure hurts. Still, I hope you understand and accept my decision.

Thank you for following my work all this time.

List of available Sonic Adventure (+DX) builds (update 2023/09/14)

This is a list of all distinct Sonic Adventure (+DX) versions that can be obtained today as far as I know. Originally I wanted to make a branching timeline of SA1 builds, but I couldn’t find a good way to put it on a blog, and I also realized some builds, like the Autodemo, don’t necessarily fit in a single timeline, so here’s a list instead. There is also a lot of information on SA1 development on TCRF, which I recommend if you want a timeline of SA1 development with screenshots and other details.

Dreamcast builds

Let’s start with the original game on the Dreamcast. Note that I’m not including builds that we don’t have, such as the Tokyo Game Show demo and the version used for the Tokyo International Forum unveiling video (assuming the footage comes from a single version of the game).

TitleVersion codeRelease dateDate in IP.BINComments
Sonic Adventure (Autodemo)1.000None1998.10.16Contains a mix of binaries and assets in various states of development. Some stage files were built for an older version of the main executable.
There’s a lot of stuff written already about this version, so I won’t go into details. I have two copies of the actual disc, which looks orange in real life unlike the scan on Hidden Palace which looks more red, but that’s probably just a scanner difference. I dumped it, and the contents were completely identical to the Hidden Palace version.
Sonic Adventure (Japan)1.0071998.12.231998.12.10The earliest official release of SA1 on the Dreamcast. Japanese language only. Some cutscenes have different camera angles compared to later releases. Some SET objects and camera setups are different in levels. This version has running “motion blur” effect for Sonic and Knuckles and the cowgirl billboard in Casinopolis, which were removed in later releases. This version also has some programming differences, such as collision for the burger shop man and different Lost World spikes behavior.
Sonic Adventure Taikenban1.0021999.??.??1999.03.02Demo version for the Japanese market. Mostly similar to the original JP version. The only version that introduces programming and SET layout changes to make the game easier.
Sonic Adventure – Trial Version for E31.000None1999.06.08A version of the game with an in-progress localization. Contains an early version of the English script and different voice acting. Some character sounds are also unique to this build. The title screen has a completely different design, and the level select menu has difficulty ratings. Starting with this version the running blur effect is missing. Cowgirl is replaced with another billboard starting with this build. Some SET layouts have been updated to reduce Z fighting. Some cutscene camera angles were also updated starting with this version.
The date in IP.BIN is interesting because it’s later than Limited Edition despite being an earlier version of the game. The actual game was likely compiled in spring 1999 (not earlier than March 12, as indicated by the strings present in 1ST_READ.BIN).
Sonic Adventure Limited Edition1.001 and 1.0021999.07.??1999.06.03 and 1999.06.04This version was available in the US for a short time before the final US release. Unlike previous versions, the level list in Trial Mode no longer matches the game’s internal level list. Internet features are replaced with a short demo. The Internet demo is also present (although not accessible normally) in all versions of the game after this one. This build has incomplete localization in languages other than English, and the menu to change the language of messages and voices isn’t functional yet. There are at least two variations of this build, however the only differences are between IP.BIN files, which have different dates, region codes and version IDs.
Sonic Adventure – Trial VersionGenerator Vol. 1: 1.002

Dream On Vol. 2: 1.000
Generator Vol. 1: 1999.09.09

Dream On Vol. 2: 1999.09.30
Generator Vol. 1: 1999.07.08

Dream On Vol. 2:
1999.08.06
Demo version based on the US release. Unlike Taikenban, this demo doesn’t play cutscenes except those played after waiting on the title screen.
Sonic Adventure: Tournament Disk1.0001999.08.101999.08.10A demo version used in an event called “Sega Dreamcast Mobile Assault Tour”. In terms of completion, this version is somewhere between Limited and final 1.004. Almost all binaries have the same content as 1.004 except different pointers to accommodate the recompiled 1ST_READ.BIN. There is no browser but there are references to the Internet demo like in Trial. Files for other European languages are not finished yet. Other differences are leftovers from the Japanese version or have to do with the game being a demo. More details on TCRF.
Sonic Adventure (US)1.0041999.09.091999.08.12First American release. Mostly the same as Limited but with finished support for other languages. From this version onwards the game includes the TV Settings menu to select between 50 and 60 hz modes.
Sonic Adventure (Europe)1.0031999.10.141999.09.09The first version that introduces an animated title screen. Some SET layouts were updated from US 1.004 with minor fixes.
Sonic Adventure International (Japan)1.0031999.10.141999.09.20Mostly the same as the European release. Both Japanese and American SA1 websites can be accessed via the built-in browser.
Sonic Adventure International (Dreamcast Express Extra)1.0011999.??.??1999.11.19Included on the demo disc “Dreamcast Express Extra”. Unlike the other demos, this one comes with an animated title screen. Pressing Start takes you directly to Sonic’s Emerald Coast, which drops you back on the title screen after you beat the stage. Although only Emerald Coast is playable, the game includes all cutscenes and gameplay demos that play after waiting on the title screen, so you can see several Action Stages and Adventure Fields ingame. This demo lacks English HUD and menu textures, so the game will have visual glitches if the console’s language setting is not Japanese.
Sonic Adventure (US) – Sega All Stars version1.0052000.08.221999.10.05Second American release based on European or International.

Gamecube builds

On the Gamecube we have two very interesting prototypes which fueled a lot of SA1/SADX research. Much of the knowledge on the game’s internal workings came from the first Preview prototype years before we got the X360 version with debug symbols. Apart from the prototypes, the builds on this platform haven’t been studied as thoroughly as the Dreamcast version. It is notable that the Gamecube ports have sequenced sound effects, which use a Gamecube adaptation of the MLT file format that was originally introduced in Dreamcast SDKs. Interestingly some character grunts are similar to the ones found in the E3 1999 version of SA1 DC, and some changes to assets are similar to the Autodemo and early prototype screenshots of SA1, but that’s a topic for another post. There is no doubt that SADX code is based on a later version of SA1, most likely 1.005 or International. Also, all versions of SADX have a leftover texture archive with title screen textures from SA International.

TitleRelease dateDate in apploader.imgComments
Sonic Adventure DX – PreviewNone2002.04.10This version appears to be based on SA International and contains work-in-progress “DX” changes. Some features that were disabled in later builds are partially functional in this build. This version has a lot of debug functionality. The original game’s palette lighting system can also be activated in this version, although it doesn’t look correct. The Chao system hasn’t been reworked yet and is mostly functional and similar to SA1 DC. Although other languages are present, the game only works correctly in Japanese. This build has leftover binaries from an even earlier version of the port that hadn’t introduced the “DX” changes yet. Unfortunately we haven’t been able to boot the earlier build due to version differences between the REL files.
Sonic Adventure DX – ReviewNone2002.09.05Most “DX” features and redesigns have been finalized. The Chao system is a work in progress. There is also a Chao debug menu. Languages other than Japanese are functional. Like Preview, this version has leftover binaries from an older version of the port without the “DX” changes.
Sonic Adventure DX (Japan)2003.06.192002.09.05The first official release of SADX on the Gamecube.
Sonic Adventure DX (Europe)2003.06.272002.09.05Although the binaries were recompiled, there are no known differences from the JP release other than default language.
Sonic Adventure DX (US)2003.06.172002.09.05Although the binaries were recompiled, there are no known differences from the JP release other than default language.
Sonic Adventure DX (Gamecube Preview Disc)2003.05.202002.09.05A demo version included on the Gamecube Preview disc. Functions similar to the Trial version on the Dreamcast. This release and the Challenge Version are the only two versions of the game that use colored banners in the character select screen. The Start button is disabled during gameplay. No cutscenes are included, however the intro movie plays after waiting on the title screen. The music loops 3 times before the intro movie plays.
Sonic Adventure DX Challenge Version (Gamecube Interactive Disc Catalog Summer 2003)2003.??.??Catalog ISO:
2003.04.17
DX ISO: 2002.09.05
Japanese language only. The title screen has a subtitle that reads “Challenge version”. No cutscenes are included, however the intro movie plays after waiting on the title screen. This version has time restrictions, and the timer counts down instead of up. Otherwise this demo seems similar to the GC Preview Disc version except Sonic’s level is Speed Highway instead of Emerald Coast.

PC builds of Sonic Adventure DX (2004)

There are two distinct “base” versions of SADX PC – the original 2004 port and the “Dreamcast Collection” 2010 port. The 2004 port is where it gets really complicated as there were releases in different countries and the details on the actual differences are fuzzy. There are versions released in the UK, Germany, France, Spain, Italy, Hungary, Sweden, Australia, Israel, Brazil and Singapore, which may have minor differences. I know for sure the EXE in the Hungarian version is different from the “regular” European version. However, I must also say that the differences between these versions are so minor that almost all assets in sonic.exe are placed at the exact same addresses as the US version. One notable exception is the Korean version, which I have included as a separate entry in the table.

All versions of the 2004 port share the same features and downgrades. The 2004 PC port is based on the Gamecube port as it contains strings mentioning REL files. One interesting thing about the 2004 and later ports is that they use the blue water texture in Emerald Coast, which was used in prototypes but replaced with a green one in the final version on the Gamecube. The 2004 version uses WMA files for music and voices unlike the versions before and after it that use ADX. This port also abandons sequenced sound effects and switches to a different soundbank format containing raw PCM WAV files.

Title / CountryRelease dateComments
Trial Version B (Japan)2003.11.21Includes one level for Sonic, Tails and Knuckles. Unlike the Gamecube demo, this version doesn’t have colored banners in the character select screen and doesn’t play any cutscenes. The title screen plays a longer version of the main theme (normally heard in the main menu) on repeat.
Trial Version A (Japan)2004.02.??
(before 2004.02.03)
Includes a level for each of the six characters. Other than that it is the same as the B version.
Trial Version A (Global)2004.10.02Same as the Japanese demo A but in English.
Japan2003.12.18The earliest full release of SADX PC. Japanese is the default language, but all other languages are also supported. The title screen, the intro and the main menu background are always in Japanese. This version comes with SafeDisc copy protection and hasn’t been researched much.
US2004.09.14This is the version of SADX PC used for research and modding.
Europe (UK)2004.02.06
Multiple
Mostly the same as the US version except more advanced copy protection. There may be different protections (SafeDisc or SecuROM) in different releases. There was a protection-free re-release in “Sonic PC Collection” in 2009.
Korea2004.07.14A complete Korean localization of SADX PC, including all ingame dialogue, all menus and a colored manual. This version is unique in that it contains different assets translated to Korean, as well as various programming changes related to localization. It is also the only version of the 2004 PC port that has unique FONTDATA0.BIN and related structures in the EXE to support Korean. Voice language is English. Japanese voices are automatically replaced with English voices, although the actual files for Japanese are still included.

The new ports (2010 onwards)

In 2010 SEGA released a bundle for PS3 and X360 called “Dreamcast Collection”, which contains ports of several Dreamcast games including SA1/SADX. Although it is bundled as “Sonic Adventure”, the core game in these ports is based on the 2004 PC version of SADX. However, it does put back the original Dreamcast title screen with ripples. While they share almost all of the downgrades of the original 2004 PC version, for obvious reasons these ports have completely different rendering and sound systems that were developed by SEGA of China. They use shaders for character lighting and switch back to the ADX format for music and voices. Interestingly shaders and textures for water distortion are also included, which suggests that they were going to reintroduce Gamecube water effects, but there is no water distortion ingame. In addition, the soundbank format was revised, and sound effects switched from WAV to ADX.

These ports also introduce many additions wrapped around the original game’s systems, such as a texture replacement hook using DDS textures, support for achievements and online leaderboards, a different main menu system, new screens for credits, controls and tutorials, new fonts etc. Game Gear games are inaccessible (but still technically there), while Mission Mode and Metal Sonic are unlocked via a paid DLC.

This collection was also released on PC twice – in 2011 (physical) and 2016 (Steam). The 2016 version is known as “Dreamcast Collection Remastered”. Little is known about the differences between the 2011 and the 2016 versions, but on the surface they appear to be the same. The version of SADX currently available on Steam is the Remastered version. The Steam version comes with the DLC force enabled, and the Dreamcast title screen is inaccessible. If enabled via hacking, the DC title screen is a static image, although the model for the animated title screen is present in the binary.

These ports are the least researched and for the most part don’t present much interest. However…

X360 prototype builds

In 2020 several development builds of the X360 port were discovered, including a near-final build with debug symbols. The debug symbols have helped a lot in identifying assets and code in the PC version. I’m listing all known builds of the X360 version, including the final one.

Version IDBuild dateComments
362009.12.15The executable in this package is not the actual game, but some kind of X360 leaderboards and DLC test. Interestingly it does include shaders.
462009.12.28Same as above.
792009.12.30Same as above.
1042010.01.08This version is missing some features specific to the 2010 ports that would be implemented later, such as mipmaps (so in this build the game looks pretty much like the 2004 PC port), European language translations of CON_REGULAR_E.PVM and some logo screens before the game starts. The title screen is a static image, and the “Press Start” texture is from the Gamecube version.
This build has a different version of the image used for the 4:3 border.
1352010.01.22This build introduces the animated title screen, more logos and a new “Press Start Button” texture.
This version has a “Face recognizing” password screen which appears to be the developers’ attempt at a joke.
Password: Sonikudamoxi
This version is missing the 4:3 border image.
1472010.01.29
or 2010.01.30
This version introduces files SOC_FONTDATA0.BIN and SOC_FONTDATA1.BIN, although they are also referenced in Build 135 which doesn’t have them. These files are used for the subtitle font in the final version.
This version has the same 4:3 border as the final version.
Password: Sonikudamoxi
2092010.03.25 or 2010.03.26Introduces automatic mipmap generation and a new font for the file select screen, as well as French, German, Spanish and Italian translations of CON_REGULAR_E.PVM. In all previous versions of the game CON_REGULAR textures were only in English and Japanese.
Password: damoxifL
3872010.08.01No known differences from the final version. However, this build has a leftover “Test” folder that contains a PDB file with debug symbols, which makes it the most important prototype of the whole bunch.
Before this build, all assets that were originally in the DLLs in the 2004 version were compiled into the main executable. From this build onwards they are split from the main binary again.
3902010.??.??Final version.

If you own a rare version of the 2004 port, let me know! The Korean version was a big surprise and very interesting to look at. Maybe there are more unique versions out there?

Sonic Adventure DC-HD first release

Sonic Adventure DC-HD is a new way to play the Dreamcast version of SA1 on the flycast emulator.

You can play SA1 with the following improvements:

  • The game runs at 60 FPS during gameplay without framerate-related glitches (hopefully).
  • Widescreen hack without model clipping or HUD stretching (some HUD stuff is offset though – this will be fixed eventually).
  • All videos can be skipped by pressing Start, not just the intro.
  • Cheat code to disable all cutscenes.
  • If you cannot run in a straight line with your controller/keyboard, there’s an optional patch for that.
  • Less choppy ocean in Emerald Coast (similar to Dreamcast Conversion for SADX PC).

Sonic Adventure DC-HD is distributed as a patcher program which you use on the original GDI of SA1 (US 1.005, animated title screen) to produce a patched version. It also comes with a cheat file that you need to load in flycast if you want to use the widescreen hack. Follow the instructions on the repo for more details.

This project is a work in progress. Not all features are complete and new features may be added in the future.

SA1 DC-HD has been tested on the standalone version of flycast on Windows and Android. The modified image is only meant to be used on the flycast emulator. 60 FPS and the widescreen hack will not work properly on other emulators or real hardware.

A “month without SADX” challenge

I decided to make August an “SADX free” month. This extends over to GitHub, Discord etc. I might fail on the very first day of August or keep it and come back in September, or later, I don’t know. But for now, it’s time for a break. Bye!

Skip All Cutscenes code for Sonic Adventure (Dreamcast)

This is a CodeBreaker code for SA1 US 1.005 that disables all cutscenes. It works exactly the same way as the “Skip All Cutscenes” code in SADX Mod Manager.

010496B4 0900

Cutscenes are removed by nopping the function call that starts the cutscene code, which makes the game assume the cutscene has finished playing. The address of the call is 0x8C0496B4.

There are a couple of small glitches when this code is used. For example at the start of Sonic’s story you can see Sonic in Station Square before the screen fades out and the fight with Chaos starts. This is how it’s actually programmed – the game loads Sonic into Station Square before initializing the cutscene. You can see it briefly when you start Sonic’s story without the code. A similar glitch happens in Station Square in Knuckles’ story.

There are some other potential applications for this code. For example, a conditional code could be made to activate cutscene skip when a certain button combination is pressed, and restore original behavior when it isn’t pressed. That way you could skip individual cutscenes by holding a button when the cutscene is about to play. It could also be made into a simple toggle. Of course it’s not as straightforward as simply pressing a button during the cutscene to skip it, but it’s still pretty good.