The current URL is datacrystal.tcrf.net.
Mega Man III (Game Boy)/ROM map
TODO: Re-organize the page. I'm currently dumping a lot of new information that hasn't been looked at before.
Sound Data
Overview
Minakuchi Engineering utilizes a custom-programmed sound engine that specifically hardcodes a part of the ROM for music. This applies for Mega Man: Dr. Wily's Revenge, Mega Man IV, and Mega Man V. Music data can be stored anywhere between 0x8000 and 0xBFFF. Creating music outside of the these bounds will either crash the ROM or not play at all.
Sound Data
0x8000 - 0x802F: Sound Driver startup 0x8030 - 0x8040: Stage tracks. Each stage track consists of two bytes, the second byte being the song (listed below).
Sound Effects are stored in a random order between 01 and 3A. 00 results in silence.
Music is stored as a single byte of data. Each song including the unused track is paired with a value mapped below. 3B: Stage Select 3C: Stage Start 3D: Shadow Man 3E: Boss Theme (Mega Man 3) 3F: Gemini Man 40: Snake Man 41: Spark Man 42: Credits Theme 43: Game Over Theme 44: Boss Theme (Mega Man 4) 45: Victory Jingle 46: Unused Track** 46: Unused Track** 47: Dust Man 48: Dive Man 49: Skull Man 4A: Drill Man 4B: Wily Intro 4C: Game Clear Jingle 4D: Wily Stage 1 4E: Wily Stage 2 4F: Punk Theme 50: Weapon Get 51: Title Screen 52: Password
Music File Data
Music tracks have a specific "header" to them that are 10 bytes each, two bytes for the header and eight for channel pointers. For example, Shadow Man's header (ID: 3D) is 0F 01 69 4C 85 4B 07 4D 86 4D located at $8212
0F 01 is the header for all music tracks. If you see 0F 01 in the music range, you're most likely viewing a music track. 69 FC points to Pulse 1 85 4B points to Pulse 2 07 4D points to Wave 86 4D points to Noise
Each channel can have sub-pointers. Shadow Man's stage is a good example as the starting jingle is in a different location within the music section of the ROM.
- TIP: If you intend on creating larger songs, completely blank the Unused Song to free up space. Mega Man III has the least amount of free space amongst the four Mega Man games that utilize this engine.