This is the third part of The History of Sonic Adventure DX Modding article. If you haven’t read already the introduction of this article/topic, you can do so by clicking right here. You can find the previous parts as well after that or by checking the end of this page.
In this Part 3, we’ll go through the prototype-related discoveries that not only led to better understanding the way the original Dreamcast version worked, but also contributed to important strides in restoration of beta aspects in PC SADX; as well as the growing interest in attempting to restore the Dreamcast experience in this port.
The scene behind researching and hacking Sonic games always has been quite minuscious, which often lead to bigger opportunities and methods for modding certain games. For example, communities like Sonic Retro and their members were often involved in disassembling the Genesis games, and discovering ways to exploit the game engine; which lead to impressive romhacks like Sonic: The Next Level, and also the creation of tools for editing the game with an user intefrace, like SonLVL and SonED2.
With Sonic Adventure being a defining Dreamcast title and turning point for the series, as well as being the original where DX would take off from (for the most part), not only there would be research on Sonic Adventure DX, but also on the original Dreamcast title; which would include documentating differences between the original and DX. And of course, prototypes that eventually surfaced on the internet would also be cracked open for investigating the way the game works, and their differences with the retail versions.
The first of prototype researches related to the game would begin in February 23, 2008, with drx providing the Sonic Adventure DX (preview) prototype for Gamecube. This turned out to be an in-progress port of the Dreamcast to Gamecube, evidenced by some levels still using Dreamcast landtables (or different alterations), the presence of a beta Chao system (straight from the original instead of the SA2B-based one), and the amount of debug modes and options.
One of the most interesting finds in this prototype would be the fabled Sky Chase dragon being discovered somehow being in the prototype’s data (only seen before in pre-release screenshots, as it never appeared in the final game). Another thing that this prototype provided was debug information of palette lightning files (thanks to the debug options); something that would be quite important as we’ll see later on.
One of the first pre-release versions found for the Dreamcast back in August 31, 2008 by drx, was Sonic Adventure: Trial Version for E3 (made for E3 1999). The game actually contained all the levels and game data (instead of just the ones used), but had two key differences: The English script still was being worked on, and the most interestingly, Knuckles had a different voice tone (but the voice actor at this point would stay for retail; only that the lines were re-recorded).
Not only Knuckles’s entire dub was different, but also Sonic and Amy had some few different voice clips on gameplay compared to the retail Dreamcast version…but these different gameplay voice clips would somehow end up in Sonic Adventure DX instead of the replaced clips in the retail DC version. This would only be one of many details found with the SADX ports compared to the original.
As with most game hacking/modding scenes, emulators were very handy in order to digging further in the game, between allowing the game to run in your PC and hook debuggers or Cheat Engine in order to take a closer look; DEMUL in particular was a preferred one due to its accuracy compared to other options at that time, and for being known to be compatible with Cheat Engine.
I definitely think that DEMUL played a good role in helping us with figuring out some stuff in regards to SA1/DX. It allows us to use Cheat Engine, so we’ve been able to take a deeper dive into the game that way. It was very useful in helping to discover beta content. Most of which has been very well documented by Speeps both on their YT channel (SPEEPSHighway) and on the TCRF Sonic Adventure articles.ItsEasyActually
Demul is what I’ve used the most in figuring out the Dreamcast version’s sound system and the SL Lights system (a component of SA1 lighting that isn’t implemented in the Lantern Engine mod yet). Demul certainly has helped a lot with DC Conversion’s development, not just in figuring things out through Cheat Engine, but also simply in comparing the modded game against the Dreamcast original to see what remains to be fixed/restored.PkR
On this note, Speeps documented many DC-related findings (specifically, Autodemo layouts of stages), as well as assisting PkR in his Dreamcastify project, which detailed the amount of differences between the original and SADX. While a lot of info from Dreamcastify has been useful in these years due to the extensive documentation it provides, it was launched in 2017; so that means it didn’t exist until some years later in this story.
The AutoDemo has object layouts for a lot of stages, but unless they were playable you couldn’t get to see them. Other areas (like the Egg Carrier) were playable but didn’t objects, which was a huge pain. If you tried just copying the files over to later versions, it would load all the right POS/ROT/SCL data but it wouldn’t load the right stuff because the object list was different.Speeps
As explained at the introduction, the DX port of Sonic Adventure had many differences compared to the original Dreamcast version, and attempting to restore the original content would be one of the driving reasons for some to try their hand at modding the game (including myself): After JCorvinus’s Sonic model port in 2009, the first Dreamcast level port attempts were made by PkR back in 2012, having ported Twinkle Park, Speed Highway, Ice Cap and Casinopolis (as well as creating some videos). However, he stopped working on it since the original version’s lightning was absent and the levels ended up looking too bland (and unfortunately, the old showcase videos were long deleted).
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. […] 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.PkR, July 10, 2016; Sonic Adventure DC Texture Hacking thread on Sonic Retro
One of the biggest discoveries for Sonic Adventure (and SADX) is the Autodemo prototype, dated October 16, 1998, and uncovered then released by Orengefox in May 21, 2013 in Sonic Retro, which is the earliest known prototype of the game avaliable. It was presumably made for Japanese retailers and events for them to promote the game, as it shows some cutscenes and gameplay demos (but you couldn’t play it yourself).
However, the use of codes and hacks allowed the playable exploration of the Autodemo, this uncovered a wealth of altered content (including test levels that were replaced by Hedgehog Hammer on the final release, and partial data for the fabled beta Windy Valley, seen in several pre-release promotion media). On the exact date the prototype was released, MainMemory would import two of the three test levels geometry in SADX (with the third one, that tested automated paths and objects, being imported around 4 months later):
In May 2014, Speeps would import some of the Autodemo object layouts in SADX in order to explore them. These would be Lost World and Egg Carrier.
Other than that really crap thing I did 10 years ago? The first mod I made for DX PC was in 2014, only a year after the AutoDemo was found and research into it was still pretty young. […]
I used SADXLVL’s SETEdit to compare the AutoDemo and Final layouts to each other. I used that to write up what the AutoDemo’s object list was then update it to match the final game’s list. It wasn’t perfect, but most of the objects were fixed and it let you see how different the areas used to be. I got Lost World and the Egg Carrier done – you can still find the videos on YouTube, but the annotations that originally accompanied them explaining the changes have been lost.
Speeps would also attempt importing Dreamcast landtables to SADX shortly after that, showcasing videos of Twinkle Park and Red Mountain. Speeps was working on restoring Speed Highway as well; but plans fell apart due to technical issues with the game installation.
It was at that time that the SADX modding tools got to a level where you could replace the entire landtable for a stage. I remember some really old video that did it for Speed Highway 3 and wanted to try it myself, which is where those videos come in.
They were a quick cut/replace job of the landtables. When I first tried playing I noticed they still didn’t look how they did in the DC version (due to the lighting changes) and looked kind of grey. SADXLVL let you tint the materials, so I made my own recreation of the lighting by tinting the geometry – it’s noticed the most on the tracks in Twinkle Park 1, which were all tinted blue but did come out looking great at the time.Speeps
Of course, this meant all the objects were unchanged. I remember at the time being annoyed at how I couldn’t get the kart dash panels to light up like the DC/GC version’s did.
I didn’t release it because other stages broke when I tried to replace them, especially Speed Highway. It was a problem caused by textures, but I never figured out how to fix it so my game was left in a half broken state where the game crashed as soon as you tried going to Speed Highway 2. Eventually I did a full reinstall.Speeps
An interesting fact about this unfinished project is that it also attempted to restore more things through texture replacements (like the Adventure Fields); this wasn’t known until Speeps gave an insight about more of that Dreamcast restoration attempt.
I did make some fun progress on that though – I made a decent recreation of the original title screen by putting the (flat U1.0) DC title screen graphics over the top/bottom borders of the DX title, which covered the whole screen and didn’t scroll. The Press Start text was baked into the graphic like the JP version and everything else was made blank.
The opening FMV was replaced with a downloaded youtube video of the Dreamcast one, which looked bad but it had the original Sonic Team logo at least. The “SEGA”/”Sonic Team” screens in DX were replaced with the Dreamcast logo and the DC version’s “SEGA”.
It was messing around with the cutscene controls [in the video], but it has the texture swaps I did on that time.Speeps
Something incredible that happened thanks to the Autodemo discovery was getting to recreate the Beta Windy Valley, one of the game’s biggest mysteries since its presence on both prerelease screenshots and certain pictures in the final game’s intro and credits, which were taken in this early version of the level.
JCorvinus would be the head of this project, with the assistance of ItsEasyActually recreating the textures and extracting model data (another talented member of X-Hax, which will also show up later on), and Catley/Soapylemons and Melpontro playtesting. This team finally made the dream of many fans possible in July 11, 2014: exploring this relic from the game’s development known as Beta Windy Valley. Quoting from this mod’s readme:
When Sonic Adventure was shown off at various phases during its development, an older version of Windy Valley could often be seen. This version was nowhere to be found in the final version(s) of the game. Since 1998, all we’ve had of this level were screenshots and low-quality video.
This changed however, when the AutoDemo version of Sonic Adventure was first put on the internet in May of 2013 by Orengefox. People immediately started looking for the lost level – and it was found! But it didn’t load in the AutoDemo, the game just crashes. And with good reason! Alot of data was missing! The quest began to port whatever was there to a playable form.JCorvinus, readme on Windy Valley Beta Restoration project
It was made by using some of the data from the Autodemo (mostly the level models), but since the entire data for the early version of the level wasn’t compeltely understood yet, watever was missing or broken was recreated from scratch, including but not limited to object layouts, splines, cameras, and the biggest undertaking: textures, which were completely absent from the Autodemo files.
The problem I ran into right away was that… there wasn’t much that I understood in terms of the data. I had to re-construct the level geometry for Act 2 without any info about how the SET files should work. Act 3 was mostly empty aside from level geometry. Understanding the code for the original SET items was completely beyond my ability. The splines were garbage and wouldn’t work properly. The autodemo’s camera files were using completely different camera behaviours from the final game. The most important thing to me, at that point, was making something that felt good to play.
We had all dreamed about this level for so long, and just porting the data we had and understood resulted in something completely unplayable. It would have been a huge disappointment to me, to enter something in that state. I felt like the stage deserved to be finished and given the chance to shine and be played that it never got due to being cut from the final game. So I spent a couple of weeks doing nothing else but filling in the gaps.JCorvinus
Interestingly, the idea of restoring the Dreamcast experience on SADX but with texture mods, was brought up again by Kurausukun in July 10, 2016, in which he asked for assistance in extracting the game’s textures to try add them to the SADX.
Not too long after that, inspired by the efforts of the Beta Windy Valley project (as well as Speeps landtable ports), I actually tried doing an project myself using one of my Trial Member’s posts on Sonic Retro (as I was one during that time, and was known as TheArcadeStriker back then) to post on July 28, 2016, the first release of Sonic Adventure DX 99′ Edition. (linked to an archived version as the post was altered months after that)
The results were similar to what Speeps was attempting (using texture edits), but between some extra stuff like edited character textures and being publicly released garnered some attention about that certain topic of Dreamcast aesthetic in SADX PC.
This initial version changed the Sonic render on the title screen with one from SADX Preview and used the original logo, replaced some sounds with their DC versions (rings and the gameplay voice clips for Sonic, Amy and Knuckles), changed all character textures to resemble the Dreamcast version, and had most of Speed Highway, Red Mountain and Emerald Coast with Dreamcast textures, among other things.
A small tidbit was that I had erroneously made a checkerboard texture in Speed Highway’s starting floor look different than it actually should, as I didn’t actually refer to any Dreamcast screenshot for that part (had made the texture black-white-black-white, but in the proper Dreamcast level, it is mirrored so that ends up black-white-white-black).
Shortly after this first release, I would be contacted by PkR, which would provide me with knowledge he had from his previous project (as well as some files he had from it), and would keep in contact with him for assistance in porting landtables from the Dreamcast version, and during that, he was able to get Adventure Levels landtables working, and some updates of the 99′ Edition project would feature several of his additions (I would join X-Hax IRC on October 2016, as he invited me there).
The result would be that SADX 99′ Edition v1.150 (the final update it received), implemented Dreamcast Twinkle Park and Lost World landtables (instead of just replacing the level textures), as well as shiny materials restored in Speed Highway 3, on top of more levels using Dreamcast textures.
I tried to mod SADX twice in 2012 and 2014, but I didn’t get very far with it and gave up because I didn’t know why Dreamcast lighting wasn’t there. In summer 2016 I saw your [ACStriker’s] post on Sonic Retro about your ’99 Edition mod. I took interest in it and decided to share my previous attempts to restore Dreamcast stuff in SADX with you and everyone else on that thread.
Then in an Autodemo-related topic I saw a post from which I learned that PL and SL files were related to lighting in the Dreamcast version. The PL file format (which is extremely simple by the way) was the first format I’d ever reverse engineered. I made a viewer (and later editor) for it, which eventually became PL Tool. By the time SF94 told me he was working on Dreamcast lighting restoration for SADX PC I knew I should restart my attempts and create something bigger.PkR
Something else would also start developing on that thread, with PkR getting cracked some of the PL files format (palette files used for lightning on the Dreamcast), and SonicFreak94 would try achieving dynamic lightning similar to the Dreamcast shortly after. On September 26, 2016, PkR would release the first version of PLEdit, the first tool for viewing the palettes contained in these files.
For that matter, at this point is where PkR was getting to implement several things on his own as separate mods (and SADX 99 Edition would include several of them), like restoring the Dreamcast Title Screen, until the point where they would be integrated into an single mod later on as Dreamcast Conversion; more on this later.
At the same time, SonicFreak94 was working on restoring palette lightning, using an d3d8tod3d9 wrapper, a HLSL Shader, the knowledge he had from working in the dynamic lightning tests, and of course, the palette files being figured out. Between October and November, he provided progress screenshots to the users in X-Hax IRC channel, and in November 11, 2016, he uploaded the first private test release for this mod. (which I was able to try out, and contribute with through feedback and palette testing)
This might sound like a cop out, but: knowing that the lighting in SA1 was something special.
PkR did tons of research with SA1 on the Dreamcast and figured out that it loads lights from an array of colors in a file. He was the one that brought it to my attention.
Before that, it was maybe a few people here and there, myself and PkR included, that thought the lighting simply “looked better” on the Dreamcast with no knowledge as to why, or how it looked better.
The name “lantern engine”, by the way, is not something we made up. I forget which revision, but SA1 has strings referring to the lighting as the “LANTERN ENGINE”SonicFreak94
Between PkR’s great progress with Dreamcast landtables (and other content) and SF94’s research on restoring Lantern Engine, there was quite a big event brewing; and both mods were pushing each other into getting everything right, as the usage of both mods would deliver something amazing and awaited since many years.
I’d say my biggest inspiration to start hacking SADX was SonicFreak94’s commitment to restoring Dreamcast lighting. But your thread on Retro and your ’99 Edition mod was what got it all going, it made people talk about it. While I’m sure it would’ve happened at some point either way, if you hadn’t made that thread, who knows where Dreamcast mods would be today?PkR
To put you in context about how big it was of an change (outside of the time it took), I had made this little video back then, enabling the palette lightning ingame with a test build provided before it was oficially released:
But before continuing, we have to give an rundown on the things that led up to the creation of Dreamcast Conversion, detailing a bit about the trickle of updates in SADX 99′ Edition before it turned into what it is now.
Here are most of the things that were developed before the arrival of the fabled Dreamcast Conversion:
- August 8, 2016: SADX 99′ Edition v1.150 (the final update for this project) implemented Dreamcast Twinkle Park and Lost World landtables, as well as enviroment mapped materials restored in Speed Highway 3, on top of several of the game levels using Dreamcast textures.
- September 26, 2016: PkR releases the first version of his tool, PLView; which would be updated to support editing PL files later on (and thus, be renamed to PLEdit)
- October 24, 2016: PkR releases his first standalone mod, which restores the landtables for the Chaos 0 battle, the Dreamcast cop car, and added DC textures for Chaos 0 itself.
- October 27, 2016: PkR releases another mod, that restored enviroment mapping in more objects (cars, icicles in Ice Cap, some objects in Speed Highway).
- October 29, 2016: Yet another mod by PkR that restored Dreamcast Station Square landtables.
- October 30, 2016: Pkr implements the Dreamcast title screen as a new mod (instead of replacing the existing textures over the original one).
- November 3, 2016: PkR releases the first Dreamcast level pack containing Speed Highway, Red Mountain and Windy Valley with Dreamcast landtables. Casinopolis, Twinkle Park and Ice Cap would release shortly after in a second Dreamcast level pack.
- November 10, 2016: On top of several updates, all levels (except Emerald Coast) were avaliable on a single “Dreamcast Action Stages” mod, and a Dreamcast Egg Carrier mod was also released.
- November 23, 2016: Dreamcast Emerald Coast would get added in a DC Action Stages mod update, and Dreamcast Mystic Ruins would be released separatedly as well.
- December 19, 2016: Thanks to PkR and MainMemory’s assistance, Sky Chase would receive Dreamcast textures, and both Sand Hill and Twinkle Circuit landtables would be restored in my “DC_SubGames” mod; at this point the thread would also be renamed, considering how SADX 99 Edition would be deprecated by the approach of separately updated mods around this time.
It would be starting from here where all the previous investigations, research, efforts and attempts would come to fruitition, as the following days would get both reorganized and updated ideas in a single mod project, and completely new restoration mods for the game.
If you are experienced with this story (or have used mods in SADX before), you could guess what these mods are, but to sum it up shortly, these would definitely be the culminating pieces of the restoration for the 2004 SADX PC port…of what the original Sonic Adventure always was meant to be.
Thanks for reading the History of Sonic Adventure DX Modding (Part 3)! The original concept was to have all the sections in a single article; but as a way to allow some gradual ease in reading the whole thing, these sections that cover the entire topic will be spread out in separate posts. You can find the next one and all the others in the index below, though note that grayed-out sections are still not avaliable yet (but will be made and released soon enough).
If you liked my content, sharing this with others helps me out; and you can lend me a hand through my Ko-fi page as well! Thanks to my re-kindled interest in finishing this project (as well as the new setup being very useful to use the editor smoothly), I managed to clean up and finish this WAY faster than before, so I’m looking forward to bringing the rest quite soon! (if either adding more information or university stuff doesn’t get in the way)
But until then, I hope you have enjoyed this, and see you next time!