- Max channels: 12
- Similar to Standard MIDI Format 1
- BGM/SFX have different data structure
Music address table at 0x807EC8C (xref from 0x8069DEE), 19 song items available.
Song #0 and #1 are special. They are used for setup.
Final Fantasy 7 (1997) [Early Version] | |
SaGa Frontier (1997) [Early Version] | |
Front Mission 2 (1997) [Early Version] | |
Chocobo's Mysterious Dungeon (1997) [Early Version] | |
Parasite Eve (1998) [Early Version] | |
Another Mind (1998) | |
Chocobo Dungeon 2 (1998) | |
Final Fantasy 8 (1999) | |
Chocobo Racing (1999) | |
SaGa Frontier 2 (1999) |
AAMJ_00: | |
Name: "Akumajou Dracula: Circle of the Moon (Japan)" | |
Creator: "Konami" | |
SongTableOffsets: 0x108A3C | |
SongTableSizes: 455 | |
SampleRate: 2 | |
ReverbType: "Normal" | |
Reverb: 0 | |
Volume: 15 | |
HasGoldenSunSynths: False |
# Convert the patched ROM to gsflib | |
# | |
# https://github.com/loveemu/rom2gsf | |
rom2gsf -o AGB-BP7J-JPN.gsflib AGB-BP7J-JPN.gba | |
# 256 files are too many in most cases, | |
# but it's handy when the appropriate count is not sure | |
# | |
# https://github.com/loveemu/minigsf | |
minigsf --psfby loveemu AGB-BP7J-JPN 0x80002dc 1 256 |
Priority list: | |
Fairly OddParents: Breakin' Da Rules GBA | |
The Incredibles GBA | |
The Incredibles Rise of the Underminer GBA | |
LEGO Star Wars The Video Game GBA | |
LEGO Star Wars II: The Original Trilogy GBA | |
Cars GBA | |
Cars Mater-National Championship GBA | |
Ratatouille GBA |
The research is based on GAX Engine V3. Information about V2 can be found at the end of the document.
FYI: GaXM is a tool that can analyze GAX data. You may find more information there.
FYI: You can find my IDA FLIRT signature for GAX V3 here. https://github.com/loveemu/ida-sig
FYI: Gaxtapper: Diagnostic tool / Automated GSF ripper for GAX Sound Engine.
GAX Sound Engine v1.99d (Mar 13 2001) IRIDION3D AGB-AI3E-USA 0028 - Iridion 3D (U) | |
GAX Sound Engine v1.99d (Mar 30 2001) TONY HAWK 2! AGB-ATHE-USA 0033 - Tony Hawk's Pro Skater 2 (U) | |
GAX Sound Engine v1.99d (Mar 30 2001) EWJ AGB-AEJE-USA 0037 - Earthworm Jim (U) | |
GAX Sound Engine v1.99d (Mar 30 2001) TONY HAWK 2! AGB-ATHD-DEU 0053 - Tony Hawk's Pro Skater 2 (G) | |
GAX Sound Engine v1.99d (Mar 30 2001) TONY HAWK 2! AGB-ATHF-FRA 0059 - Tony Hawk's Pro Skater 2 (F) | |
GAX Sound Engine v1.99d (Mar 30 2001) FORTRESS AGB-AFOE-USA 0088 - Fortress (U) | |
GAX Sound Engine v2.01a (Jun 6 2001) TANG TANG AGB-ATAE-USA 0094 - Tang Tang (U) | |
GAX Sound Engine v1.99f (Jun 13 2001) F14-TOMCAT AGB-AFTE-USA 0096 - F-14 Tomcat (U) | |
GAX Sound Engine v2.01b (Jun 22 2001) SPIDERMAN MM AGB-ASEE-USA 0115 - Spider-Man - Mysterio's Menace (U) | |
GAX Sound Engine v2.01a (Jun 6 2001) CAESARPALACE AGB-ACPE-USA 0116 - Caesar's Palace Advance - Millennium Gold Edition (U) |
memory.registerexec(0x8ab414, function() | |
local a = memory.getregister("a") | |
local word_16 = memory.readword(0x7e0016) | |
local word_18 = memory.readword(0x7e0018) | |
local word_1a = memory.readword(0x7e001a) | |
local word_1c = memory.readword(0x7e001c) | |
print(string.format("Load waveform: a=$%04x, $16=$%02x, $18=$%02x, $1a=$%02x, $1c=$%02x", a, word_16, word_18, word_1a, word_1c)) | |
end) | |
memory.registerexec(0x8ab1cb, function() |
0009 - Konami Wai Wai Racing Advance (Konami) | |
0012 - Power Pro Kun Pocket 3 (Konami) | |
0015 - Fire Pro Wrestling A (Spike) | |
0020 - Yu-Gi-Oh! Dungeon Dice Monsters (Konami) | |
0022 - J.League Pocket (Konami) | |
0024 - Monster Guardians (Konami) | |
0028 - Iridion 3D (Majesco Sales) | |
0030 - Ready 2 Rumble Boxing - Round 2 (Midway) | |
0031 - Konami Krazy Racers (Konami) | |
0033 - Tony Hawk's Pro Skater 2 (Activision) |
-- generic callback for breakpoint | |
function memory_breakpoint_callback(bp_address) | |
local timestamp = os.date("%Y-%m-%d %H:%M:%S") | |
local msg = string.format(timestamp .. " Breakpoint at %08X:", bp_address) | |
local REGS = { | |
"r0", | |
"r1", | |
"r2", | |
"r3", |