Animal Crossing (GC) (U) N64 Sound Tools
Hello! I would like to ask for some help with configuring the N64 Sound Tools to be able to rip music from Animal Crossing for the Nintendo Gamecube. The reason I would like to make this request is because Animal Crossing (and Doubutsu no Mori e+) has N64 Sequences that are played in-game through some cross-compiled code from the N64 version of the game Doubutsu no Mori. To start things off, I would like to explain what I have figured out so far for this game.
All of Animal Crossing's music and sound data is embedded inside a generic file called audiorom.img. So far I was able to extract all of the N64 sequences from the game and use seq64 to extract and play midi from most of those files (some of them are blank/duplicates), as well as locating the offsets for both the ctl data and the tbl data. The trouble I am having is that I cannot locate the ctl table or the tbl table, which is something I need to be able to use the N64 Midi tool and the N64 SoundList tool to extract the midi and the individual sounds from the game. I also checked for the compressed ctl-tbl file since Doubutsu No Mori had that file, but could not find it in any part of the entire game.
So I would like to ask if someone is willing and able to take a look at this file to help me find the ctl table and the tbl table in the game. I've included a note with all of the offsets for all of the sections of audiorom.img, as well as the separate parts of the file to get to those offsets quickly.
I don't see any Yaz0 compression here. Is it possible the tables are stored somewhere else? The large compressed file that housed the tables before isn't here in any fashion either, so perhaps this whole chunk is just located elsewhere in another file? That'd be my guess.
Are the sequences or sound data you found different? You can send in a merge request of ini changes if get this going.
So I found what looks to be part of the compressed table for the game after decompressing foresta.rel.szs, one of the modules that the game reads immediately after booting up (obviously yaz0 compressed). Using Ocarina of Time's compressed table as a reference, I found both game.c and graph.c in foresta.rel and also found a specific section of the file with the names of the programmers for the game.
Here's the file that I was taking a look at earlier. I wasn't sure if I screwed up the decompression process, but there are parts of the file that didn't decompress properly. I used QuickBMS on the file with the yaz0 script.
I'll try to use what I have for now, but I still do not know where the ctl or the tbl tables are. If they're inside the tbl data, I'm not sure how exactly I'll be able to find them for right now.
Also I immediately noticed that there was some similar stuff under "main2" to something I saw in audiorom.img. I think that's most likely where the data is read, executed and copied over to the RAM. I'm not 100% sure if that's the proper logic, but I think that's how the game mostly processes the music, the sfx and a bunch of other things in-game.
I don't see it in there, but yeah I'm assuming if you can decompress rest of the files, this ctl is going to appear somewhere.
So I looked in all of the .arc files for Animal Crossing for a yaz0 compressed table, and it looks like there's no compressed ctltbl table in any of them as far as I can tell. I think it would be best for me to try to get myself Doubutsu no Mori (Legal backup!) to try to find the [uncompressed] ctl and tbl tables in audiorom.img, because I looked in just about every spot I could and still couldn't find anything needed with the sound tools. It could be because the developers chose to emulate the sound system "neos" which was present previously in Doubtusu no Mori. However, I know next to nothing about neos and could not find anything relating to that specific sound system, so I'm not sure where .
I want to return to this issue at one point since I definitely would like to be able to extract music from both Animal Crossing and Doubtusu no Mori e+, but it's looking to be too difficult right now. Maybe the decomp repo for the GameCube will come out with something if I don't get to it sooner.
Often times when you can't find things, it's best to examine RAM dumps of the game and then breakpoint, as you're running the Animal Crossing game, and see if that helps to figure out how it works. It's possible that section was changed though.