{"id":316,"date":"2021-06-03T14:51:54","date_gmt":"2021-06-03T14:51:54","guid":{"rendered":"https:\/\/dcmods.unreliable.network\/?p=316"},"modified":"2021-06-11T07:00:33","modified_gmt":"2021-06-11T07:00:33","slug":"list-of-vmu-filename-references-in-sonic-adventure","status":"publish","type":"post","link":"https:\/\/dcmods.unreliable.network\/index.php\/2021\/06\/03\/list-of-vmu-filename-references-in-sonic-adventure\/","title":{"rendered":"List of VMU filename references in Sonic Adventure"},"content":{"rendered":"\n<p>There are a lot of mysteries about Sonic Adventure&#8217;s files on the VMU, some of which we&#8217;re going to unravel today. I&#8217;d like to also use this post to list known VMU filenames in SA1 for future research.<\/p>\n\n\n\n<p>Let&#8217;s start with the better known stuff. The main save file is called <code>SONICADV_SYS<\/code> in the original Japanese release, and <code>SONICADV_INT<\/code> in all other versions. The newer versions contain text and voice language settings which aren&#8217;t available in the original Japanese version. Normally the Japanese version doesn&#8217;t load US\/EU\/International save files, and vice versa. However, the game will recognize the other version&#8217;s save file if you rename it.<\/p>\n\n\n\n<p>Now let&#8217;s talk about Chao files. The main Chao save is called <code>SONICADV_ALF<\/code> 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 <code>SONICADV__VM<\/code> on the VMU. This file contains the VMU game Chao Adventure with the Chao&#8217;s data written directly into the game file. <\/p>\n\n\n\n<p>The filename <code>SONICADV__VM<\/code> 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 <a href=\"https:\/\/dcmods.unreliable.network\/index.php\/2021\/06\/04\/sonic-adventure-black-market-chao\/\" data-type=\"URL\" data-id=\"https:\/\/dcmods.unreliable.network\/index.php\/2021\/06\/04\/sonic-adventure-black-market-chao\/\">separate post<\/a>.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Upload Data<\/h2>\n\n\n\n<p>There&#8217;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&#8217;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.<\/p>\n\n\n\n<p>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:<\/p>\n\n\n\n<figure class=\"wp-block-table\"><table><tbody><tr><td><strong>Filename (JP)<\/strong><\/td><td><strong>Filename (US\/EU\/INT)<\/strong><\/td><td><strong>Description<\/strong><\/td><td><strong>How to create<\/strong><\/td><\/tr><tr><td><code>SONICADV_H00<\/code><\/td><td><code>SONICADV_H07<\/code><\/td><td>Chao Upload data<\/td><td>Hold Y+A when a Chao is going into the transporter until you hear the ring sound<\/td><\/tr><tr><td><code>SONICADV_H01<\/code><\/td><td><code>SONICADV_H04<\/code><\/td><td>World Ranking Data<\/td><td>Hold Y+A on the file select screen until you hear the ring sound<\/td><\/tr><tr><td><code>SONICADV_H02<\/code><\/td><td><code>SONICADV_H05<\/code><\/td><td>Twinkle Circuit Data<\/td><td>Created automatically when you finish the DLC Twinkle Circuit course<\/td><\/tr><tr><td><code>SONICADV_H03<\/code><\/td><td><code>SONICADV_H06<\/code><\/td><td>Event Result Data<\/td><td>Created automatically when you finish a DLC challenge<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\">Hidden Chao on SA1 US GD-ROM<\/h2>\n\n\n\n<p>Interestingly there are files <code>SONICADV_H00.BIN<\/code> and <code>SONICADV_H04.BIN<\/code> 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&#8217;s naming scheme they have some differences in HTML compared to the regular files. While it isn&#8217;t compatible with either version of the game, the interesting part is the actual data stored in these files. <\/p>\n\n\n\n<p>The Chao file contains a baby Chao called \u2665BUDDY\u2665 that was submitted by <code>segaeigh@concentric.net<\/code>. Yep, there&#8217;s been a Chao hidden on the game&#8217;s disc all these years. Here&#8217;s what it looks like:<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"768\" src=\"https:\/\/dcmods.unreliable.network\/wp-content\/uploads\/2021\/06\/image-1024x768.png\" alt=\"\" class=\"wp-image-317\" srcset=\"https:\/\/dcmods.unreliable.network\/wp-content\/uploads\/2021\/06\/image-1024x768.png 1024w, https:\/\/dcmods.unreliable.network\/wp-content\/uploads\/2021\/06\/image-300x225.png 300w, https:\/\/dcmods.unreliable.network\/wp-content\/uploads\/2021\/06\/image-768x576.png 768w, https:\/\/dcmods.unreliable.network\/wp-content\/uploads\/2021\/06\/image-480x360.png 480w, https:\/\/dcmods.unreliable.network\/wp-content\/uploads\/2021\/06\/image.png 1280w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><figcaption>Stats: Swim: 19 Run: 17 Fly: 17 Power: 27 HP: 13 Max HP: 17<\/figcaption><\/figure>\n\n\n\n<p>Eventually you&#8217;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.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Character Voice Packs<\/h2>\n\n\n\n<p>When one of these files is placed on the VMU, the game changes the character voicing the menu screens. The files themselves don&#8217;t have any meaningful data other than an icon, a description and a single string <code>Team Andromeda<\/code>. 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?<\/p>\n\n\n\n<figure class=\"wp-block-table\"><table><tbody><tr><td><strong>Filename (JP)<\/strong><\/td><td><strong>Filename (US\/EU\/INT)<\/strong><\/td><td><strong>Description<\/strong><\/td><\/tr><tr><td><code>SONICADV_V01<\/code><\/td><td><code>SONICADV_V11<\/code><\/td><td>Sonic&#8217;s voice<\/td><\/tr><tr><td><code>SONICADV_V02<\/code><\/td><td><code>SONICADV_V12<\/code><\/td><td>Tails&#8217; voice<\/td><\/tr><tr><td><code>SONICADV_V03<\/code><\/td><td><code>SONICADV_V13<\/code><\/td><td>Knuckles&#8217; voice<\/td><\/tr><tr><td><code>SONICADV_V04<\/code><\/td><td><code>SONICADV_V14<\/code><\/td><td>Amy&#8217;s voice<\/td><\/tr><tr><td><code>SONICADV_V05<\/code><\/td><td><code>SONICADV_V15<\/code><\/td><td>Gamma&#8217;s voice<\/td><\/tr><tr><td><code>SONICADV_V06<\/code><\/td><td><code>SONICADV_V16<\/code><\/td><td>Big&#8217;s voice<\/td><\/tr><tr><td><code>SONICADV_V07<\/code><\/td><td><code>SONICADV_V17<\/code><\/td><td>Dr. Eggman&#8217;s voice<\/td><\/tr><tr><td><code>SONICADV_V08<\/code><\/td><td><code>SONICADV_V18<\/code><\/td><td>Tikal&#8217;s voice<\/td><\/tr><tr><td><code>SONICADV_V09<\/code><\/td><td><code>SONICADV_V19<\/code><\/td><td>Random voice<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\">Events and Challenges<\/h2>\n\n\n\n<p>A lot has been written about SA1 DLCs, and they are now fairly well understood, up to the point that you can <a href=\"https:\/\/dcmods.unreliable.network\/index.php\/2021\/05\/28\/sonic-adventure-dlc-tool-gui-version-released\/\" data-type=\"URL\" data-id=\"https:\/\/dcmods.unreliable.network\/index.php\/2021\/05\/28\/sonic-adventure-dlc-tool-gui-version-released\/\">make your own DLCs<\/a> that will work on an actual Dreamcast without hacking the base game. So here I&#8217;m going to talk about things that are a but more obscure.<\/p>\n\n\n\n<p>One major limitation of the DLC system in SA1 is that you can only have one custom model. While I haven&#8217;t been able to get the game to load more models, I got it to load a model that isn&#8217;t stored in the DLC file by editing the pointer in the DLC file&#8217;s model binary to make it point to a different location in memory. It&#8217;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&#8217;s possible to add more pointers and make the game load them somehow? I&#8217;ll look into that sometime soon.<\/p>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/cdn.discordapp.com\/attachments\/446023672147345420\/753894751509413910\/unknown.png\" alt=\"https:\/\/cdn.discordapp.com\/attachments\/446023672147345420\/753894751509413910\/unknown.png\"\/><\/figure>\n\n\n\n<p>The filenames for the DLCs are <code>SONICADV_aaa<\/code>, where <code>aaa<\/code> is a number from <code>000<\/code> to <code>999<\/code>. 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&#8217;s language setting. The game doesn&#8217;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 <code>SONICADV_003<\/code> and the first international event was called <code>SONICADV_501<\/code> (though <code>SONICADV_200<\/code> would&#8217;ve worked too).<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">The Weird Stuff<\/h2>\n\n\n\n<p>The game&#8217;s main binary has several filename strings that suggests some interesting functionality. Earlier this year we learned from <a href=\"https:\/\/twitter.com\/Exant64\/status\/1348031452764631042\" data-type=\"URL\" data-id=\"https:\/\/twitter.com\/Exant64\/status\/1348031452764631042\">Exant&#8217;s fascinating discovery<\/a> that we can still activate the game&#8217;s built-in lighting editor that looks like this:<\/p>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/pbs.twimg.com\/media\/ErUrbv6WMAES9W4?format=png&amp;name=small\" alt=\"Image\"\/><\/figure>\n\n\n\n<p>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 <code>SONICADV_P00<\/code>, and the SL file is <code>SONICADV_S00<\/code> (in the Autodemo they&#8217;re just <code>PL_<\/code> and <code>SL_<\/code>). It&#8217;s possible that numbers other than 00 were also used. There is a function loading these files at <code>0x8C011D46<\/code> (US 1.005). It also seems like <code>LANTERN_PALETTE<\/code> and <code>LANTERN_SOURCE<\/code> were VMS titles, while <code>\uff2c\uff21\uff2e\uff34\uff25\uff32\uff2e\uff0f\u30d1\u30ec\u30c3\u30c8\u60c5\u5831<\/code> and <code>\uff2c\uff21\uff2e\uff34\uff25\uff32\uff2e\uff0f\u74b0\u5883\u60c5\u5831<\/code> were VMS file descriptions. I&#8217;ll experiment with custom VMS files to see if the game picks them up.<\/p>\n\n\n\n<p>There are also some strings suggesting there was VMU to PC transfer at some point. The filenames used in that transfer were <code>SONICADV.VMS<\/code> and <code>SONICADV.DL0<\/code>. Doesn&#8217;t look like it&#8217;s used, but who knows, maybe we&#8217;ll recover it eventually.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>There are a lot of mysteries about Sonic Adventure&#8217;s files on the VMU, some of which we&#8217;re going to unravel today. I&#8217;d like to also use this post to list known VMU filenames in SA1 for future research. Let&#8217;s start&hellip;  <\/p>\n<p class=\"more-link\"><a href=\"https:\/\/dcmods.unreliable.network\/index.php\/2021\/06\/03\/list-of-vmu-filename-references-in-sonic-adventure\/\">Continue reading <span class=\"meta-nav\">&rarr;<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1],"tags":[7],"class_list":["post-316","post","type-post","status-publish","format-standard","hentry","category-blog","tag-sa1-research"],"_links":{"self":[{"href":"https:\/\/dcmods.unreliable.network\/index.php\/wp-json\/wp\/v2\/posts\/316","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/dcmods.unreliable.network\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/dcmods.unreliable.network\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/dcmods.unreliable.network\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/dcmods.unreliable.network\/index.php\/wp-json\/wp\/v2\/comments?post=316"}],"version-history":[{"count":9,"href":"https:\/\/dcmods.unreliable.network\/index.php\/wp-json\/wp\/v2\/posts\/316\/revisions"}],"predecessor-version":[{"id":349,"href":"https:\/\/dcmods.unreliable.network\/index.php\/wp-json\/wp\/v2\/posts\/316\/revisions\/349"}],"wp:attachment":[{"href":"https:\/\/dcmods.unreliable.network\/index.php\/wp-json\/wp\/v2\/media?parent=316"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/dcmods.unreliable.network\/index.php\/wp-json\/wp\/v2\/categories?post=316"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/dcmods.unreliable.network\/index.php\/wp-json\/wp\/v2\/tags?post=316"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}