Difficult request: Is anyone willing to help decode the GBA "GAX" Engine? by birdmanager6 at 8:15 PM EDT on September 20, 2015
Most people say that 90% of Game Boy Advance games all use the M4A sound engine (which is the only one we really know about), and there are only a few exceptions.
That is a lie! Here is an extensive list of games, NONE of which use the M4A sound engine. In fact, they all use the same sound engine.
http://pastebin.com/h2PSKQrf
This sound engine is Shin'En's custom sound engine, known as the GAX sound engine. All of the games that use this engine had their audio exclusively done in-house by Shin'En, and was only available to third-party developers.
The audio branch is supposedly a branch of the Amiga audio format. One of the most notable games to use it is the first Earthworm Jim (the second one isn't listed, so I don't know if it uses GAX or not). Other titles that stick out to me are the infamous Mortal Kombat Advance, Comix Zone (which has awesome music and hasn't even been ripped in the GSF format yet), and several SpongeBob SquarePants games.
Of course, this isn't the only other sound engine that GBA games use. There's also Krawall Advance, the "other" version of M4A supposedly used in Nintendo's later games, and RAREWARE's unknown driver. But it's pretty much the second-most common sound engine, so we should really learn more about it, so we can eventually make a tool that can extract all the audio out of it in its full, unfiltered quality, in MIDI/soundfont or WAV files, in the same manner of that of what GBA2MIDI or gbamusriper does with the M4A engine, or in a MOD-based format like XM. I suspect GSF would be harder to create, though.
There actually HAS been some learning about it. Someone figured out some specifications about it on a Crash Bandicoot game. However, nothing has been done since December of last year, so it's probably a dead project.
So, I'm not trying to push it, or anything, but is anyone willing to continue to work on it, or even finish it, using the specifications on it that are known from that post as a start? I couldn't, as I wouldn't be able to understand any of that code at all. And I understand that this really isn't easy, as apparently the way the code is loaded sometimes is different. But I would really like to see that happen.
Hopefully, there will also be work on the other sound engines that I listed sometime (Krawall Advance should be easiest to make a converter for, at least in the MOD-based format), but I don't want to ask for too much at once. It's such a shame that the only sound engine we've figured out is the worst one. :(
by RebeccaSugar at 5:53 PM EDT on September 26, 2015
Judging by the severe lack of responses, I think the general opinion, is either: "We do care, we just don't know how"
OR
"We don't give a single piece of flying fecal matter"
Probably the first one.
by birdmanager6 at 5:21 PM EST on November 15, 2015
@TheUltimateKoopa
I don't know...there aren't that many POPULAR games to use the GAX engine, so I really don't know which one of the two.
But if it's any help, I have managed to extract the GAX sound engine, music sequences, and sample tables from Earthworm Jim, so that might be useful. I found the starting point of each song with the song title in quotation marks and (C) Manfred Liznzer in a text screen, and the GAX header was also easy to spot. As for the sample tables, I had to rely on Audacity for a lot of it, so they may not be extracted 100% in the exact location. There are two sample tables: one for sound effects, and one for music instruments.
Ah, that was my work you had found on PokéCommunity there I see. As soon as I had seen this thread I knew I had to reply to it haha.
It's not really a dead project, I've just been far too occupied with school and work to dedicate time to pretty much any of my projects, otherwise, I'd be busy working on this. If you want, feel free to post any of your findings in my thread, perhaps I'll see if I can find some spare time to peek back into my notes and do some more digging and whatnot in the coming months.
Also if you want anything on the Krawall engine, it's completely open-sourced here:
https://github.com/sebknzl/krawall
by birdmanager6 at 2:25 PM EST on November 28, 2015
@Team Fail Thanks for the help, Team Fail. I'll try to do so. I also know about Krawall being open-source already, and in fact, I've been trying to build the converter on Windows for possible projects for the GBA I might work on, but I've had no success, yet. And I also answered my own question about EWJ2. It doesn't use the GAX engine, but instead, uses the GBA version of MusyX, accirding to the opening screen. I wonder if someone (not you) could also figure out that version of MusyX, considering a MIDI converter for the GameCube version exists on this very website. I'm also curious as to what other games use MusyX on the GBA.