Hello everyone! I'm opening this call for help here, following the preliminary research I've done on Sonic Retro.http://forums.sonicretro.org/index.php?showtopic=38225&pid=933742&st=0&#entry933742
I've had a peek at Samba de Amigo 2000 on Dreamcast, which I consider the definitive home version of the game. It includes all the songs from the original game, adds a lot more (including fake DLC), and has more game modes. The only downside is that a few mini-games are missing (replaced by volleyball), but eh.
I've had a peek at how the game works. The gist of it is, audio tracks are your good old regular ADX files, and beatmaps are a relatively simplistic format (not quite just a .txt file as in Stepmania, but hex editing the files show difficulty levels in plain text and patterns). Fun thing is that the Wii version seems to be using the same beatmap format, only the endianness is reversed for some reason. There's also quite a bit of padding it seems, with a (broken) ~600mb "ADX" file on the disc.
So there are a few things that could potentially be done, I believe:
- Inject the Wii tracks (and Wii DLC) into Samba 2K
- Translate the game into at least English, can re-use textures from Samba 1
and maybe, going further than this
- Unlock on-disc "DLC" stages by default, saving previous space on your VMU
- Convert and import tracks from Shakka to Tambourine, Shakka to Tambourine 2001, and MiniMoni Shakka to Tambourine Dapyon
- Create custom tracks!
Now there are a few things that can help a lot: there's no encryption, no significant compression, and pretty much all file formats are supported by relatively modern tools (apparently even ffmpeg added DC ADX support, including encoding, back in 2016).
The current roadblocks are:
I've got no idea how to repack a .GDI for a gdemu (or a milCD .cdi). So far all tests failed, both on an emulator and the real hardware SiZiOUS got me covered there, thanks! ADX encoding seems to produce poor audio quality with the settings I tried so far Overlord sent a solution for that on Sonic Retro, and it might also be possible to use CRI tools from the DC SDK?
- I've got no idea how to further analyze the beatmap files, and potentially produce my own
- The way the song list work is a mystery. Haven't
looked into it even found it so far in the game's files. There's a chance it's hard-coded somewhere.
Further observations since I've started the topic on Sonic Retro:
- Beatmaps from Samba Wii are using the same format as on Dreamcast, but with different endianness. It is possible to simply inject the Wii files into the DC game once this is taken into account. Normal gameplay will work absolutely fine, but Hustle mode will crash as soon as a dance symbol is prompted, and the cameras angles are broken.
- Swapping songs around totally work, but the menu items themselves are unchanged.
- It's possible to edit the beatmaps, even adding extra info and widely changing the file size/content, and the game will still load them (as long as you keep the section starting "blocs" intact, identified by tags such as CAM, EASY, etc). I do have trouble understanding the actual beatmap format (stored in .AGM files). The song's name and BPM do not seem to be stored in the .AGM files, no idea where that info could be.
- Textures are PVRs, mostly hidden into AFS containers. Most have a "PVR!T" (with that !) header.
And if you happen to be born with three hands, well, the game engine can cover this as well.
What I'm currently looking for:
- Help understanding and documenting the AGM beatmap format, and the camera format.
- Help finding where the song wheel is located, and how it works (adding new list items, and unlocking DLC).
- Someone to code a basic AGM editing tool (I don't know how to code except somewhat in C128 Basic, so, err).
- Anyone willing to help with regular work on textures (swapping textures from Samba 1 to Samba 2000, translating Japanese-only ones).
- There's a ~700Mb dummy file "SAMBADEAMIGO.BIN" on the disc that can be zeroed out, but apparently not deleted (game will loop the title screen if deleted). That's a lot of room for extra songs!
I'm working using the .GDI dumps of Samba de Amigo 2000 JP and Samba de Amigo PAL (because the PAL version offers 50Hz and 60Hz, multiple languages including English, and use the metric system).