There are a lot of mysteries about Sonic Adventure’s files on the VMU, some of which we’re going to unravel today. I’d like to also use this post to list known VMU filenames in SA1 for future research.
Let’s start with the better known stuff. The main save file is called SONICADV_SYS
in the original Japanese release, and SONICADV_INT
in all other versions. The newer versions contain text and voice language settings which aren’t available in the original Japanese version. Normally the Japanese version doesn’t load US/EU/International save files, and vice versa. However, the game will recognize the other version’s save file if you rename it.
Now let’s talk about Chao files. The main Chao save is called SONICADV_ALF
and is compatible between all regions. When you take a Chao out for a walk using the VMU-shaped transfer machine, the game creates a file called SONICADV__VM
on the VMU. This file contains the VMU game Chao Adventure with the Chao’s data written directly into the game file.
The filename SONICADV__VM
was also used for Chao downloads from the website. In the Japanese version of the game you could download rare Chao (Sapphire, Ruby, Emerald) from the website if your main save file had a certain number of emblems. These are discussed in a separate post.
Upload Data
There’s also a bunch of files that are created on the VMU at certain points in the game. These files were meant to be uploaded to the official website using the game’s built-in web browser. Among such files were Chao, level clear times and results of DLC challenges. They contain an HTML page with a hidden field that contains encrypted data encoded as a Base64 string. The encryption is the same between these files and DLCs.
The Japanese version had different strings for the webpage so the embedded HTML is different from later revisions, also the Japanese version uses different filenames. Here are all of them:
Filename (JP) | Filename (US/EU/INT) | Description | How to create |
SONICADV_H00 | SONICADV_H07 | Chao Upload data | Hold Y+A when a Chao is going into the transporter until you hear the ring sound |
SONICADV_H01 | SONICADV_H04 | World Ranking Data | Hold Y+A on the file select screen until you hear the ring sound |
SONICADV_H02 | SONICADV_H05 | Twinkle Circuit Data | Created automatically when you finish the DLC Twinkle Circuit course |
SONICADV_H03 | SONICADV_H06 | Event Result Data | Created automatically when you finish a DLC challenge |
Hidden Chao on SA1 US GD-ROM
Interestingly there are files SONICADV_H00.BIN
and SONICADV_H04.BIN
in the root folder of SA1 US GD-ROM. These appear to be earlier versions of the data produced normally by newer revisions of the game. Apart from using the Japanese version’s naming scheme they have some differences in HTML compared to the regular files. While it isn’t compatible with either version of the game, the interesting part is the actual data stored in these files.
The Chao file contains a baby Chao called ♥BUDDY♥ that was submitted by segaeigh@concentric.net
. Yep, there’s been a Chao hidden on the game’s disc all these years. Here’s what it looks like:
Eventually you’ll be able to edit Chao upload and download data, including this file, as well as the main Chao save. I just need to get to writing a Chao editor for SA Tools.
Character Voice Packs
When one of these files is placed on the VMU, the game changes the character voicing the menu screens. The files themselves don’t have any meaningful data other than an icon, a description and a single string Team Andromeda
. The game seems to set the voice mode based on the filename. Again, the Japanese version looks for different filenames, so there were actually 18 unique files for voice packs! Do we even have their Japanese versions archived?
Filename (JP) | Filename (US/EU/INT) | Description |
SONICADV_V01 | SONICADV_V11 | Sonic’s voice |
SONICADV_V02 | SONICADV_V12 | Tails’ voice |
SONICADV_V03 | SONICADV_V13 | Knuckles’ voice |
SONICADV_V04 | SONICADV_V14 | Amy’s voice |
SONICADV_V05 | SONICADV_V15 | Gamma’s voice |
SONICADV_V06 | SONICADV_V16 | Big’s voice |
SONICADV_V07 | SONICADV_V17 | Dr. Eggman’s voice |
SONICADV_V08 | SONICADV_V18 | Tikal’s voice |
SONICADV_V09 | SONICADV_V19 | Random voice |
Events and Challenges
A lot has been written about SA1 DLCs, and they are now fairly well understood, up to the point that you can make your own DLCs that will work on an actual Dreamcast without hacking the base game. So here I’m going to talk about things that are a but more obscure.
One major limitation of the DLC system in SA1 is that you can only have one custom model. While I haven’t been able to get the game to load more models, I got it to load a model that isn’t stored in the DLC file by editing the pointer in the DLC file’s model binary to make it point to a different location in memory. It’s still just one model per DLC and you have to supply its textures separately but at least you can load stuff outside of the DLC file if you really want to. Maybe it’s possible to add more pointers and make the game load them somehow? I’ll look into that sometime soon.
The filenames for the DLCs are SONICADV_aaa
, where aaa
is a number from 000
to 999
. IDs from 000 to 200 are reserved for DLCs that only have text in Japanese. Early events released in Japan (Famitsu challenge, QUO challenge etc.) only contain Japanese message strings, and their string table is smaller compared to later events that had text in other languages. However, these old events still work with newer versions of SA1 with Japanese text displayed correctly regardless of the game’s language setting. The game doesn’t load strings for other languages if the DLC ID is lower than 200. This is why there is a gap between Japanese and international event filenames: the last Japan-exclusive event was called SONICADV_003
and the first international event was called SONICADV_501
(though SONICADV_200
would’ve worked too).
The Weird Stuff
The game’s main binary has several filename strings that suggests some interesting functionality. Earlier this year we learned from Exant’s fascinating discovery that we can still activate the game’s built-in lighting editor that looks like this:
Apparently this editor can load lighting files from the VMU, and that functionality seems to be still in the game, we just need to learn how to activate it. The palette file is supposed to be called SONICADV_P00
, and the SL file is SONICADV_S00
(in the Autodemo they’re just PL_
and SL_
). It’s possible that numbers other than 00 were also used. There is a function loading these files at 0x8C011D46
(US 1.005). It also seems like LANTERN_PALETTE
and LANTERN_SOURCE
were VMS titles, while LANTERN/パレット情報
and LANTERN/環境情報
were VMS file descriptions. I’ll experiment with custom VMS files to see if the game picks them up.
There are also some strings suggesting there was VMU to PC transfer at some point. The filenames used in that transfer were SONICADV.VMS
and SONICADV.DL0
. Doesn’t look like it’s used, but who knows, maybe we’ll recover it eventually.