DKL2 and DKL3 music notes
Posted: January 10th, 2013, 12:58 pm
I've actually taken notes on this for quite a while, but I finally decided to post this information to others to use.
Since DKL2 and DKL3 are programmed similarly here, I'm combining these notes together.
Additionally, it appears that some other Rare games for the Game Boy have similarities with regard to music data. I'll likely be including information on the following games in the future:
DKL2 music IDs
Due to limited Game Boy memory, any music with italic text (08, 13, 19, 1C, 24) gets loaded in memory starting at D000 on certain screens, such as boss stages, bonus stages, etc. This memory is shared with other data (such as map data) and can potentially be replaced at times. During those times, these songs will be silent or can crash the game.
Every time any of these songs are needed, a subroutine is called to copy the songs from RAM into D000. Here are the ROM addresses for this subroutine:
English version: 3747
Japanese version: 3778
DKL3 music IDs
Shortened songs are ones that have the beginnings cut. (This also occurs in DKC3.) A flag at C5BB in RAM determines whether to play the original or shortened song. If it's 0, it plays the original song. If it's 1, it takes the original music ID and adds 14 to it, making it play the shortened song (e.g. 0B = Stilt Village; 0B+14=1F, which is the shortened version of Stilt Village). The flag starts at 0 when turning the game on. As soon as any level is entered, it is set to 1. It is only set to 0 upon entering Northern Kremisphere (either from the file select screen or the Time Attack screen) or turning the game off. The Time Attack screen itself doesn't reset the flag to 0, and neither does pressing A+B+Select+Start. (This probably wasn't implemented properly, as DKC3 plays the regular tune every time you enter a new level.)
Also, DKL3 contains the leftover songs Token Tango, Boss Bossanova, Klubba's Reveille, Donkey Kong Rescued, and Titular Tableau from DKL2, loaded into RAM starting at D000, but they do not contain pointers, so they have no IDs. (However, the pointers would be the same as they are in DKL2.)
In addition, DKL3 even loads these songs in RAM in the same places as DKL2. This is obviously leftover code from DKL2, as it is not actually needed in DKL3. Here are the ROM addresses for this subroutine:
English version (prototype): 378D
English version (retail): 378A
Japanese version: 3619
ROM offsets with music IDs
DKL2
Levels
Other
English version
(Hopefully I didn't forget anything here.)
Japanese version
(To be added later)
DKL3
Levels
English version
Japanese version
Other
English version
(To be added later)
Japanese version
Tempos
Based on the music ID, you can find the tempo. The tempos start at ROM offset 0x4D71 in both DKL2 and DKL3, and you can take the music ID and add to this value to get the proper offset. (e.g. The tempo for music 01 can be found at 0x4D72, the one for music 02 can be found at 0x4D73, etc.) This is then written to 0xDAF7 in RAM (therefore, the GameShark code 01xxF7DA can change the tempo). Here is a list of tempos:
DKL2
It's interesting that various silent songs have tempos. I guess some DKC2 songs were planned there, but never materialized?
DKL3
Interesting that, like in DKL2, the silent songs have different tempos. Also, notice that songs 1B and 2F have slightly different tempos. This means that if you just turned the game on and the first level you go to is a boss stage, it will play a bit faster. I don't think this was intentional.
Music data/offsets
Using the music IDs, you can find ROM offsets for the music data, and their pointers. For pointers to the music data, use these offsets, depending on the game:
DKL2: 0x4D97 + (index) * 0x8
DKL3: 0x4D9C + (index) * 0x8
For example, to find the first pointer for Stickerbush Symphony (0x16) in DKL2, the formula is 0x4D97 + 0x16*0x8 = 0x4E47.
In all, each data for the music has four pointers, one for each channel. The pointers are little endian (unlike the majority of pointers in these two games), so don't be confused! This means the bytes are in reverse order (so 31 5F is a pointer to 0x5F31 in RAM). Also, if you were to switch the pointers around, you'd hear the music in different channels, which will be somewhat recognizable but the pitch will change! It sounds funny.
Here is a list of pointers in each game. They are RAM-based, not ROM-based, so don't be confused! In this table, I adjusted the endianness for readability, but if you see this in a hex editor, be aware that the bytes are swapped.
To get the ROM address from the RAM address, here is what you do:
Here is a list of pointers, first sorted by music ID:
DKL2
DKL3
And the same list, this time sorted by RAM pointers:
DKL2
DKL3
Unfortunately, I haven't figured out the music format yet. It's confusing because from looking at it, there are lots of branching situations based on the values of the bytes, and every time that happens, the process becomes very tedious. I'll try to slowly figure it out eventually, though.
Also, notice that a lot of the silent songs have the same pointer, to either 0000 or 47E2. For this reason, I strongly believe that other than what has already been discovered, I don't think there are any more unused songs to be discovered. A lot of these silent songs point to the same location, so they're essentially duplicates of each other (excluding tempos, which doesn't make a difference when they're silent). I guess the silent songs indicate that other songs were intended to be used here, but either Rare ran out of time, or ran out of space in the 16KB bank (keep in mind, this ROM bank not only contains songs, but code, pointers, tempos, etc. as well). So, I'd be very surprised if someone found more unused music, unless there's some unlikely song that's not even pointed to at all.
So this is it for now. I hope this was helpful!
Since DKL2 and DKL3 are programmed similarly here, I'm combining these notes together.
Additionally, it appears that some other Rare games for the Game Boy have similarities with regard to music data. I'll likely be including information on the following games in the future:
- Battletoads (Game Boy)
- Battletoads in Ragnarok's World
- Battletoads/Double Dragon (Game Boy)
- Donkey Kong Land
- Donkey Kong Country (Game Boy Color)
DKL2 music IDs
- 00 - (Silence)
- 01 - (Silence)
- 02 - Stronghold Showdown
- 03 - (Silence)
- 04 - Welcome to Crocodile Isle
- 05 - K. Rool Returns
- 06 - Death
- 07 - Lockjaw's Saga
- 08 - Titular Tableau
- 09 - Snakey Chanty
- 0A - (Silence)
- 0B - Bayou Boogie
- 0C - School House Harmony
- 0D - Funky the Main Monkey
- 0E - Flight of the Zinger
- 0F - (Silence)
- 10 - Hot-Head Bop
- 11 - Run, Rambi! Run!
- 12 - Target
- 13 - Token Tango
- 14 - Bonus Lose
- 15 - Bonus Win
- 16 - Stickerbush Symphony
- 17 - (Silence)
- 18 - Disco Train
- 19 - Boss Bossanova (UNUSED)
- 1A - Steel Drum Rhumba
- 1B - Krook's March
- 1C - Klubba's Reville
- 1D - (Silence)
- 1E - In A Snow Bound Land
- 1F - Lost World Anthem
- 20 - (Silence)
- 21 - (Silence)
- 22 - (Silence)
- 23 - Crocodile Cacophony
- 24 - Donkey Kong Rescued
- 25 - Game Over
Due to limited Game Boy memory, any music with italic text (08, 13, 19, 1C, 24) gets loaded in memory starting at D000 on certain screens, such as boss stages, bonus stages, etc. This memory is shared with other data (such as map data) and can potentially be replaced at times. During those times, these songs will be silent or can crash the game.
Every time any of these songs are needed, a subroutine is called to copy the songs from RAM into D000. Here are the ROM addresses for this subroutine:
English version: 3747
Japanese version: 3778
DKL3 music IDs
- 00 - (Silence)
- 01 - (Silence)
- 02 - Dixie Beat
- 03 - Crazy Calypso
- 04 - Northern Kremisphere
- 05 - Brothers Bear
- 06 - Bonus Time (screen)
- 07 - Bonus Time (stage)
- 08 - Bonus Win
- 09 - Bonus Lose
- 0A - (Silence)
- 0B - Stilt Village
- 0C - Enchanted Riverbank
- 0D - Nuts & Bolts
- 0E - Treetop Tumble
- 0F - Rockface Rumble
- 10 - Water World
- 11 - Mill Fever
- 12 - Hot Pursuit
- 13 - Jungle Jitter
- 14 - Rocket Run (UNUSED)
- 15 - Cascade Capers
- 16 - Cavern Caprice
- 17 - (Silence)
- 18 - (Silence)
- 19 - Death
- 1A - Level Complete
- 1B - Big Boss Blues
- 1C - Wrinkly Refuge
- 1D - Baddies on Parade
- 1E - Game Over
- 1F - Stilt Village (shortened)
- 20 - Enchanted Riverbank (shortened)
- 21 - Nuts & Bolts (shortened)
- 22 - Treetop Tumble (shortened)
- 23 - Rockface Rumble (shortened)
- 24 - Water World (shortened)
- 25 - Mill Fever (shortened)
- 26 - Hot Pursuit (shortened)
- 27 - Jungle Jitter (shortened)
- 28 - Rocket Run (UNUSED) (shortened)
- 29 - Cascade Capers (shortened)
- 2A - Cavern Caprice (shortened)
- 2B - (Silence)
- 2C - (Silence)
- 2D - (Silence)
- 2E - (Silence)
- 2F - Big Boss Blues (slightly slower, likely unintentional)
Shortened songs are ones that have the beginnings cut. (This also occurs in DKC3.) A flag at C5BB in RAM determines whether to play the original or shortened song. If it's 0, it plays the original song. If it's 1, it takes the original music ID and adds 14 to it, making it play the shortened song (e.g. 0B = Stilt Village; 0B+14=1F, which is the shortened version of Stilt Village). The flag starts at 0 when turning the game on. As soon as any level is entered, it is set to 1. It is only set to 0 upon entering Northern Kremisphere (either from the file select screen or the Time Attack screen) or turning the game off. The Time Attack screen itself doesn't reset the flag to 0, and neither does pressing A+B+Select+Start. (This probably wasn't implemented properly, as DKC3 plays the regular tune every time you enter a new level.)
Also, DKL3 contains the leftover songs Token Tango, Boss Bossanova, Klubba's Reveille, Donkey Kong Rescued, and Titular Tableau from DKL2, loaded into RAM starting at D000, but they do not contain pointers, so they have no IDs. (However, the pointers would be the same as they are in DKL2.)
In addition, DKL3 even loads these songs in RAM in the same places as DKL2. This is obviously leftover code from DKL2, as it is not actually needed in DKL3. Here are the ROM addresses for this subroutine:
English version (prototype): 378D
English version (retail): 378A
Japanese version: 3619
ROM offsets with music IDs
DKL2
Levels
- 40071 - Mainbrace Mayhem
- 40085 - Topsail Trouble
- 40099 - Slime Climb
- 400AD - Pirate Panic
- 400C1 - Gangplank Galley
- 400D5 - Rattle Battle
- 400E9 - Arctic Abyss
- 400FD - Clapper's Cavern
- 40111 - Black Ice Battle
- 40125 - Kannon's Klaim
- 40139 - Squawks's Shaft
- 4014D - Windy Well
- 40161 - Ghostly Grove
- 40175 - Gusty Glade
- 40189 - Web Woods
- 4019D - Bramble Blast
- 401B1 - Bramble Scramble
- 401C5 - Screech's Sprint
- 401D9 - Jungle Jinx
- 401ED - Klobber Karnage
- 40201 - Animal Antics
- 40215 - Target Terror
- 40229 - Rickety Race
- 4023D - Krazy Koaster
- 40251 - Hothead Hop
- 40265 - Redhot Ride
- 40279 - Fiery Furnace
- 4028D - Barrel Bayou
- 402A1 - Krockhead Klamber
- 402B5 - Mudhole Marsh
- 402C9 - Dungeon Danger
- 402DD - Chain Link Chamber
- 402F1 - Toxic Tower
- 40305 - Hornet Hole
- 40319 - Rambi Rumble
- 4032D - Parrot Chute Panic
- 40341 - Lockjaw's Locker
- 40355 - Lava Lagoon
- 40369 - Glimmer's Galleon
- 4037D - Krow's Nest
- 40391 - Kleaver's Kiln
- 403A5 - King Zing Sting
- 403B9 - Kreepy Krow
- 403CD - Stronghold Showdown
- 403E1 - Krocodile Kore
- 403F5 - K. Rool Duel
Other
English version
- 1627E - Rareware logo screen
- 16139 - Title screen
- 9F6D - File select screen
- 9B92 - Delete file confirmation (Code for this seems to be present, but doesn't seem to work for some reason)
- B098 - Crocodile Isle map (excluding Lost World)
- B09F - Lost World map
- A3B5 - Kong Kollege
- A4C6 - Funky's Flights
- A5FF - Klubba's Kiosk
- A362 - Bonus stage description
- C7DE - Bonus win
- 1476B - Bonus lose
- DA33 - Beat level
- 16C74 - Beat boss
- E50 - Death
- 174A8 - Stronghold Showdown
- 174EC - "Losing" Stronghold Showdown
- C294 - Race against Screech
- C30B - Win race against Screech
- 15325 - K. Rool cutscene (falling into the water)
- 154AA - Video Game Heroes
- 1562A - Cast list
- 158CD - Credits
- 325 - Loading screen? (Does this even last long enough to matter?)
(Hopefully I didn't forget anything here.)
Japanese version
(To be added later)
DKL3
Levels
English version
- 40069 - Total Rekoil
- 40082 - Liftshaft Lottery
- 4009B - Miller Instinct
- 400B4 - Black Ice Blitz
- 400CD - Polar Pitfalls
- 400E6 - Tundra Blunda
- 400FF - Bleak Magic
- 40118 - Red Wharf
- 40131 - Ford Knocks
- 4014A - Jetty Jitters
- 40163 - Koco Channel
- 4017C - Riverbank Riot
- 40195 - Surface Tension
- 401AE - Seabed Shanty
- 401C7 - Coral Quarrel
- 401E0 - Deep Reef Grief
- 401F9 - Barbos Bastion
- 40212 - Minky Mischief
- 4022B - Redwood Rampage
- 40244 - Simian Shimmy
- 4025D - Arich Attack
- 40276 - Vertigo Verge
- 4028F - Rockface Chase
- 402A8 - Clifftop Critters
- 402C1 - Rocketeer Rally
- 402DA - Footloose Falls
- 402F3 - Rickety Rapids
- 4030C - Stalagmite Frights
- 40325 - Haunted Hollows
- 4033E - Ghoulish Grotto
- 40357 - K. Rool's Last Stand
- 40370 - Jungle Jeopardy
- 40389 - Tropical Tightropes
- 403A2 - Rainforest Rumble
- 403BB - Karbine Kaos
- 403D4 - Bazuka Bombard
- 403ED - Kuchuka Karnage
- 40406 - Barrel Boulevard
- 4041F - Krazy Kaos
- 40438 - Ugly Ducting
- 40451 - Whiplash Dash
- 4046A - K. Rool Duel
Japanese version
- 4006B - Total Rekoil
- 40084 - Liftshaft Lottery
- 4009D - Miller Instinct
- 400B6 - Black Ice Blitz
- 400CF - Polar Pitfalls
- 400E8 - Tundra Blunda
- 40101 - Bleak Magic
- 4011A - Red Wharf
- 40133 - Ford Knocks
- 4014C - Jetty Jitters
- 40165 - Koco Channel
- 4017E - Riverbank Riot
- 40197 - Surface Tension
- 401B0 - Seabed Shanty
- 401C9 - Coral Quarrel
- 401E2 - Deep Reef Grief
- 401FB - Barbos Bastion
- 40214 - Minky Mischief
- 4022D - Redwood Rampage
- 40246 - Simian Shimmy
- 4025F - Arich Attack
- 40278 - Vertigo Verge
- 40291 - Rockface Chase
- 402AA - Clifftop Critters
- 402C3 - Rocketeer Rally
- 402DC - Footloose Falls
- 402F5 - Rickety Rapids
- 4030E - Stalagmite Frights
- 40327 - Haunted Hollows
- 40340 - Ghoulish Grotto
- 40359 - K. Rool's Last Stand
- 40372 - Jungle Jeopardy
- 4038B - Tropical Tightropes
- 403A4 - Rainforest Rumble
- 403BD - Karbine Kaos
- 403D6 - Bazuka Bombard
- 403EF - Kuchuka Karnage
- 40408 - Barrel Boulevard
- 40421 - Krazy Kaos
- 4043A - Ugly Ducting
- 40453 - Whiplash Dash
- 4046C - K. Rool Duel
Other
English version
(To be added later)
Japanese version
- 918A1 - Rareware logo screen
- 8ED69 - Title screen
- B2E9 - File select screen
- 9B92 - Delete file confirmation (Code for this seems to be present, but doesn't seem to work for some reason)
- 9BE0 - World maps
- A9E6 - Wrinkly Refuge
- ABBC - Sheepy Shop
- 16457 - Card game
- 1652A - Card game win
- 164FC - Card game lose
- 1593B - Lose a life
- D79E - Beat a level
- 176CB - Beat a boss
- 16929 - Bonus screen description
- CA65 - Bonus win
- 158FC - Bonus lose
- F687 - Game Over screen
- 14317 - Cast list
- 14179 - Credits
- F749 - K. Rool appearing (before Lost World & K. Rool's Last Stand)
- B590 - K. Rool defeated
- 15F6C - Time Attack screen
- 1630E - Time Attack trophy screen
- 15F97 - Loading screen after Time Attack screen? (Does this even last long enough to matter?)
- 39E - Loading screen? (Does this even last long enough to matter?)
Tempos
Based on the music ID, you can find the tempo. The tempos start at ROM offset 0x4D71 in both DKL2 and DKL3, and you can take the music ID and add to this value to get the proper offset. (e.g. The tempo for music 01 can be found at 0x4D72, the one for music 02 can be found at 0x4D73, etc.) This is then written to 0xDAF7 in RAM (therefore, the GameShark code 01xxF7DA can change the tempo). Here is a list of tempos:
DKL2
00 - (Silence) | 60 |
01 - (Silence) | BA |
02 - Stronghold Showdown | 85 |
03 - (Silence) | 80 |
04 - Welcome to Crocodile Isle | 86 |
05 - K. Rool Returns | E0 |
06 - Death | FF |
07 - Lockjaw's Saga | E0 |
08 - Titular Tableau | B0 |
09 - Snakey Chanty | 80 |
0A - (Silence) | 85 |
0B - Bayou Boogie | 85 |
0C - School House Harmony | 69 |
0D - Funky the Main Monkey | 85 |
0E - Flight of the Zinger | B0 |
0F - (Silence) | 65 |
10 - Hot-Head Bop | 85 |
11 - Run, Rambi! Run! | 90 |
12 - Target | 75 |
13 - Token Tango | 70 |
14 - Bonus Lose | 60 |
15 - Bonus Win | 70 |
16 - Stickerbush Symphony | 77 |
17 - (Silence) | 90 |
18 - Disco Train | 98 |
19 - Boss Bossanova (UNUSED) | E0 |
1A - Steel Drum Rhumba | 87 |
1B - Krook's March | 85 |
1C - Klubba's Reville | E0 |
1D - (Silence) | FC |
1E - In A Snow Bound Land | 90 |
1F - Lost World Anthem | 85 |
20 - (Silence) | 98 |
21 - (Silence) | 87 |
22 - (Silence) | 80 |
23 - Crocodile Cacophony | 90 |
24 - Donkey Kong Rescued | A5 |
25 - Game Over | 40 |
It's interesting that various silent songs have tempos. I guess some DKC2 songs were planned there, but never materialized?
DKL3
00 - (Silence) | 01 |
01 - (Silence) | 01 |
02 - Dixie Beat | A9 |
03 - Crazy Calypso | C0 |
04 - Northern Kremisphere | E0 |
05 - Brothers Bear | A0 |
06 - Bonus Time (screen) | AC |
07 - Bonus Time (stage) | CC |
08 - Bonus Win | 96 |
09 - Bonus Lose | DE |
0A - (Silence) | 7D |
0B - Stilt Village | D5 |
0C - Enchanted Riverbank | B0 |
0D - Nuts & Bolts | 92 |
0E - Treetop Tumble | B0 |
0F - Rockface Rumble | 88 |
10 - Water World | A8 |
11 - Mill Fever | 9D |
12 - Hot Pursuit | C0 |
13 - Jungle Jitter | A0 |
14 - Rocket Run (UNUSED) | B0 |
15 - Cascade Capers | D4 |
16 - Cavern Caprice | F0 |
17 - (Silence) | F0 |
18 - (Silence) | FA |
19 - Death | FE |
1A - Level Complete | D8 |
1B - Big Boss Blues | E8 |
1C - Wrinkly Refuge | A5 |
1D - Baddies on Parade | B0 |
1E - Game Over | BC |
1F - Stilt Village (shortened) | D5 |
20 - Enchanted Riverbank (shortened) | B0 |
21 - Nuts & Bolts (shortened) | 92 |
22 - Treetop Tumble (shortened) | B0 |
23 - Rockface Rumble (shortened) | 88 |
24 - Water World (shortened) | A8 |
25 - Mill Fever (shortened) | 9D |
26 - Hot Pursuit (shortened) | C0 |
27 - Jungle Jitter (shortened) | A0 |
28 - Rocket Run (shortened) | B0 |
29 - Cascade Capers (shortened) | D4 |
2A - Cavern Caprice (shortened) | F0 |
2B - (Silence) | E2 |
2C - (Silence) | 47 |
2D - (Silence) | E2 |
2E - (Silence) | 47 |
2F - Big Boss Blues | E2 |
Interesting that, like in DKL2, the silent songs have different tempos. Also, notice that songs 1B and 2F have slightly different tempos. This means that if you just turned the game on and the first level you go to is a boss stage, it will play a bit faster. I don't think this was intentional.
Music data/offsets
Using the music IDs, you can find ROM offsets for the music data, and their pointers. For pointers to the music data, use these offsets, depending on the game:
DKL2: 0x4D97 + (index) * 0x8
DKL3: 0x4D9C + (index) * 0x8
For example, to find the first pointer for Stickerbush Symphony (0x16) in DKL2, the formula is 0x4D97 + 0x16*0x8 = 0x4E47.
In all, each data for the music has four pointers, one for each channel. The pointers are little endian (unlike the majority of pointers in these two games), so don't be confused! This means the bytes are in reverse order (so 31 5F is a pointer to 0x5F31 in RAM). Also, if you were to switch the pointers around, you'd hear the music in different channels, which will be somewhat recognizable but the pitch will change! It sounds funny.
Here is a list of pointers in each game. They are RAM-based, not ROM-based, so don't be confused! In this table, I adjusted the endianness for readability, but if you see this in a hex editor, be aware that the bytes are swapped.
To get the ROM address from the RAM address, here is what you do:
- If the RAM pointers are from 0x4000-0x7FFF, don't add or subtract anything. Simple! (This is because the music pointers and data are in ROM bank 1, otherwise you'd have to add some multiple of 0x4000 to get the ROM address.)
- If the RAM pointers are from 0xD000-0xDFFF, add these values, depending on the game:
- DKL2 (English): 0x7254E. For example, a RAM pointer of 0xD000 would become 0xD000+7254E=0x7F54E in ROM.
- DKL2 (Japanese): 0x7254F. For example, a RAM pointer of 0xD000 would become 0xD000+7254F=0x7F54F in ROM.
- DKL3 (English and Japanese): 0x63000. For example, a RAM pointer of 0xD000 would become 0xD000+63000=0x70000 in ROM.
Here is a list of pointers, first sorted by music ID:
DKL2
Song | Ch 1 | Ch 2 | Ch 3 | Ch 4 |
00 - (Silence) | 47E2 | 47E2 | 47E2 | 47E2 |
01 - (Silence) | 47E2 | 47E2 | 47E2 | 47E2 |
02 - Stronghold Showdown | 7E64 | 7ED2 | 7EE9 | 7F04 |
03 - (Silence) | 47E2 | 47E2 | 47E2 | 47E2 |
04 - Welcome to Crocodile Isle | 7BBC | 7C88 | 7D2F | 7DD4 |
05 - K. Rool Returns | 78F6 | 79D2 | 7AF3 | 7B99 |
06 - Death | 78A0 | 78B9 | 78C8 | 78DF |
07 - Lockjaw's Saga | 75FE | 76AB | 779C | 7824 |
08 - Titular Tableau | D864 | D8F4 | D962 | DA07 |
09 - Snakey Chanty | 70F7 | 7313 | 7438 | 752A |
0A - (Silence) | 47E2 | 47E2 | 47E2 | 47E2 |
0B - Bayou Boogie | 6F32 | 6FC1 | 703C | 70B4 |
0C - School House Harmony | 6D6A | 6E24 | 6E88 | 6EEE |
0D - Funky the Main Monkey | 6B88 | 6C30 | 6CA1 | 6D12 |
0E - Flight of the Zinger | 6928 | 6A3F | 6AF5 | 6B3F |
0F - (Silence) | 47E2 | 47E2 | 47E2 | 47E2 |
10 - Hot-Head Bop | 6461 | 659C | 6662 | 6821 |
11 - Run, Rambi! Run! | 6320 | 6394 | 63DC | 642C |
12 - Target | 62D2 | 62E9 | 62F6 | 6309 |
13 - Token Tango | D000 | D13C | D197 | D1F8 |
14 - Bonus Lose | 6278 | 628D | 62A2 | 62BD |
15 - Bonus Win | 6220 | 6237 | 624E | 6265 |
16 - Stickerbush Symphony | 5F31 | 6147 | 615D | 61D9 |
17 - (Silence) | 47E2 | 47E2 | 47E2 | 47E2 |
18 - Disco Train | 5C8D | 5DC0 | 5E34 | 5EB2 |
19 - Boss Bossanova | D240 | D2FE | D379 | D40B |
1A - Steel Drum Rhumba | 5A86 | 5B60 | 5BAB | 5C4F |
1B - Krook's March | 5786 | 587D | 59A6 | 5A3F |
1C - Klubba's Reville | D497 | D517 | D59A | D612 |
1D - (Silence) | 47E2 | 47E2 | 47E2 | 47E2 |
1E - In A Snow Bound Land | 54D2 | 55DC | 5675 | 572E |
1F - Lost World Anthem | 52D7 | 538C | 53F3 | 547E |
20 - (Silence) | 47E2 | 47E2 | 47E2 | 47E2 |
21 - (Silence) | 47E2 | 47E2 | 47E2 | 47E2 |
22 - (Silence) | 47E2 | 47E2 | 47E2 | 47E2 |
23 - Crocodile Cacophony | 4F97 | 50B6 | 51BA | 5232 |
24 - Donkey Kong Rescued | D649 | D741 | D7CE | D82B |
25 - Game Over | 4EC7 | 4F16 | 4F3B | 4F7B |
DKL3
Song | Ch 1 | Ch 2 | Ch 3 | Ch 4 |
00 - (Silence) | 47E2 | 47E2 | 47E2 | 47E2 |
01 - (Silence) | 47E2 | 47E2 | 47E2 | 47E2 |
02 - Dixie Beat | 5A56 | 5B66 | 5B6E | 5C17 |
03 - Crazy Calypso | 570F | 57A8 | 57EA | 5856 |
04 - Northern Kremisphere | 5F6D | 5FE9 | 603D | 6099 |
05 - Brothers Bear | 58CD | 5997 | 59A4 | 5A02 |
06 - Bonus Time (screen) | 7AC4 | 7AF8 | 7B26 | 7B56 |
07 - Bonus Time (stage) | 7B80 | 7D08 | 7D65 | 7DDF |
08 - Bonus Win | 6BEC | 6C09 | 6C1E | 6C3A |
09 - Bonus Lose | 6C65 | 6C7F | 6C88 | 6C9B |
0A - (Silence) | 47E2 | 47E2 | 47E2 | 47E2 |
0B - Stilt Village | 4FE5 | 4F1F | 514D | 5294 |
0C - Enchanted Riverbank | 5C65 | 5DA3 | 5E0F | 5F2A |
0D - Nuts & Bolts | 61B9 | 625A | 62B7 | 6347 |
0E - Treetop Tumble | 6406 | 636A | 6459 | 6479 |
0F - Rockface Rumble | 64EA | 6596 | 65F5 | 6687 |
10 - Water World | 671B | 67BB | 6854 | 68A2 |
11 - Mill Fever | 52E0 | 548F | 554B | 5614 |
12 - Hot Pursuit | 68E8 | 6A2F | 6A8B | 6AED |
13 - Jungle Jitter | 710D | 7213 | 72D0 | 7369 |
14 - Rocket Run | 73D0 | 74BE | 7500 | 75BE |
15 - Cascade Capers | 7645 | 771A | 779A | 7855 |
16 - Cavern Caprice | 78B9 | 79F4 | 7A38 | 7A61 |
17 - (Silence) | 47E2 | 47E2 | 47E2 | 47E2 |
18 - (Silence) | 47E2 | 47E2 | 47E2 | 47E2 |
19 - Death | 5646 | 5677 | 5693 | 56BB |
1A - Level Complete | 6B5B | 6B89 | 6B92 | 6BC4 |
1B - Big Boss Blues | 6E4A | 6F51 | 6F90 | 703C |
1C - Wrinkly Refuge | 610C | 613B | 616A | 61A8 |
1D - Baddies on Parade | 6CAF | 6D76 | 6DDB | 6E33 |
1E - Game Over | 6B0C | 6B46 | 6B4E | 6B5A |
1F - Stilt Village (shortened) | 4FEB | 4F2B | 5159 | 52A3 |
20 - Enchanted Riverbank (shortened) | 5C69 | 5DA8 | 5E17 | 5F2A |
21 - Nuts & Bolts (shortened) | 61BD | 625D | 62C3 | 6347 |
22 - Treetop Tumble (shortened) | 6409 | 636E | 6461 | 647D |
23 - Rockface Rumble (shortened) | 64EF | 659B | 6600 | 668B |
24 - Water World (shortened) | 671F | 67C2 | 6856 | 68B6 |
25 - Mill Fever (shortened) | 52EA | 5499 | 554F | 5614 |
26 - Hot Pursuit (shortened) | 68F6 | 6A35 | 6A91 | 6B00 |
27 - Jungle Jitter (shortened) | 7115 | 7215 | 72D2 | 736C |
28 - Rocket Run (shortened) | 73D7 | 74C3 | 751E | 75C1 |
29 - Cascade Capers (shortened) | 76B2 | 7778 | 77E1 | 7858 |
2A - Cavern Caprice (shortened) | 78C8 | 7A10 | 7A3B | 7A6D |
2B - (Silence) | 0000 | 0000 | 0000 | 0000 |
2C - (Silence) | 0000 | 0000 | 0000 | 0000 |
2D - (Silence) | 0000 | 0000 | 0000 | 0000 |
2E - (Silence) | 0000 | 0000 | 0000 | 0000 |
2F - Big Boss Blues | 6E4A | 6F51 | 6F90 | 703C |
And the same list, this time sorted by RAM pointers:
DKL2
Song | Ch 1 | Ch 2 | Ch 3 | Ch 4 |
00 - (Silence) | 47E2 | 47E2 | 47E2 | 47E2 |
01 - (Silence) | 47E2 | 47E2 | 47E2 | 47E2 |
03 - (Silence) | 47E2 | 47E2 | 47E2 | 47E2 |
0A - (Silence) | 47E2 | 47E2 | 47E2 | 47E2 |
0F - (Silence) | 47E2 | 47E2 | 47E2 | 47E2 |
17 - (Silence) | 47E2 | 47E2 | 47E2 | 47E2 |
1D - (Silence) | 47E2 | 47E2 | 47E2 | 47E2 |
20 - (Silence) | 47E2 | 47E2 | 47E2 | 47E2 |
21 - (Silence) | 47E2 | 47E2 | 47E2 | 47E2 |
22 - (Silence) | 47E2 | 47E2 | 47E2 | 47E2 |
25 - Game Over | 4EC7 | 4F16 | 4F3B | 4F7B |
23 - Crocodile Cacophony | 4F97 | 50B6 | 51BA | 5232 |
1F - Lost World Anthem | 52D7 | 538C | 53F3 | 547E |
1E - In A Snow Bound Land | 54D2 | 55DC | 5675 | 572E |
1B - Krook's March | 5786 | 587D | 59A6 | 5A3F |
1A - Steel Drum Rhumba | 5A86 | 5B60 | 5BAB | 5C4F |
18 - Disco Train | 5C8D | 5DC0 | 5E34 | 5EB2 |
16 - Stickerbush Symphony | 5F31 | 6147 | 615D | 61D9 |
15 - Bonus Win | 6220 | 6237 | 624E | 6265 |
14 - Bonus Lose | 6278 | 628D | 62A2 | 62BD |
12 - Target | 62D2 | 62E9 | 62F6 | 6309 |
11 - Run, Rambi! Run! | 6320 | 6394 | 63DC | 642C |
10 - Hot-Head Bop | 6461 | 659C | 6662 | 6821 |
0E - Flight of the Zinger | 6928 | 6A3F | 6AF5 | 6B3F |
0C - School House Harmony | 6D6A | 6E24 | 6E88 | 6EEE |
0D - Funky the Main Monkey | 6B88 | 6C30 | 6CA1 | 6D12 |
0B - Bayou Boogie | 6F32 | 6FC1 | 703C | 70B4 |
09 - Snakey Chanty | 70F7 | 7313 | 7438 | 752A |
07 - Lockjaw's Saga | 75FE | 76AB | 779C | 7824 |
06 - Death | 78A0 | 78B9 | 78C8 | 78DF |
05 - K. Rool Returns | 78F6 | 79D2 | 7AF3 | 7B99 |
04 - Welcome to Crocodile Isle | 7BBC | 7C88 | 7D2F | 7DD4 |
02 - Stronghold Showdown | 7E64 | 7ED2 | 7EE9 | 7F04 |
13 - Token Tango | D000 | D13C | D197 | D1F8 |
19 - Boss Bossanova | D240 | D2FE | D379 | D40B |
1C - Klubba's Reville | D497 | D517 | D59A | D612 |
24 - Donkey Kong Rescued | D649 | D741 | D7CE | D82B |
08 - Titular Tableau | D864 | D8F4 | D962 | DA07 |
DKL3
Song | Ch 1 | Ch 2 | Ch 3 | Ch 4 |
2B - (Silence) | 0000 | 0000 | 0000 | 0000 |
2C - (Silence) | 0000 | 0000 | 0000 | 0000 |
2D - (Silence) | 0000 | 0000 | 0000 | 0000 |
2E - (Silence) | 0000 | 0000 | 0000 | 0000 |
00 - (Silence) | 47E2 | 47E2 | 47E2 | 47E2 |
01 - (Silence) | 47E2 | 47E2 | 47E2 | 47E2 |
0A - (Silence) | 47E2 | 47E2 | 47E2 | 47E2 |
17 - (Silence) | 47E2 | 47E2 | 47E2 | 47E2 |
18 - (Silence) | 47E2 | 47E2 | 47E2 | 47E2 |
0B - Stilt Village | 4FE5 | 4F1F | 514D | 5294 |
1F - Stilt Village (shortened) | 4FEB | 4F2B | 5159 | 52A3 |
11 - Mill Fever | 52E0 | 548F | 554B | 5614 |
25 - Mill Fever (shortened) | 52EA | 5499 | 554F | 5614 |
19 - Death | 5646 | 5677 | 5693 | 56BB |
03 - Crazy Calypso | 570F | 57A8 | 57EA | 5856 |
05 - Brothers Bear | 58CD | 5997 | 59A4 | 5A02 |
02 - Dixie Beat | 5A56 | 5B66 | 5B6E | 5C17 |
0C - Enchanted Riverbank | 5C65 | 5DA3 | 5E0F | 5F2A |
20 - Enchanted Riverbank (shortened) | 5C69 | 5DA8 | 5E17 | 5F2A |
04 - Northern Kremisphere | 5F6D | 5FE9 | 603D | 6099 |
1C - Wrinkly Refuge | 610C | 613B | 616A | 61A8 |
0D - Nuts & Bolts | 61B9 | 625A | 62B7 | 6347 |
21 - Nuts & Bolts (shortened) | 61BD | 625D | 62C3 | 6347 |
0E - Treetop Tumble | 6406 | 636A | 6459 | 6479 |
22 - Treetop Tumble (shortened) | 6409 | 636E | 6461 | 647D |
0F - Rockface Rumble | 64EA | 6596 | 65F5 | 6687 |
23 - Rockface Rumble (shortened) | 64EF | 659B | 6600 | 668B |
10 - Water World | 671B | 67BB | 6854 | 68A2 |
24 - Water World (shortened) | 671F | 67C2 | 6856 | 68B6 |
12 - Hot Pursuit | 68E8 | 6A2F | 6A8B | 6AED |
26 - Hot Pursuit (shortened) | 68F6 | 6A35 | 6A91 | 6B00 |
1E - Game Over | 6B0C | 6B46 | 6B4E | 6B5A |
1A - Level Complete | 6B5B | 6B89 | 6B92 | 6BC4 |
08 - Bonus Win | 6BEC | 6C09 | 6C1E | 6C3A |
09 - Bonus Lose | 6C65 | 6C7F | 6C88 | 6C9B |
1D - Baddies on Parade | 6CAF | 6D76 | 6DDB | 6E33 |
1B - Big Boss Blues | 6E4A | 6F51 | 6F90 | 703C |
2F - Big Boss Blues | 6E4A | 6F51 | 6F90 | 703C |
13 - Jungle Jitter | 710D | 7213 | 72D0 | 7369 |
27 - Jungle Jitter (shortened) | 7115 | 7215 | 72D2 | 736C |
14 - Rocket Run | 73D0 | 74BE | 7500 | 75BE |
28 - Rocket Run (shortened) | 73D7 | 74C3 | 751E | 75C1 |
15 - Cascade Capers | 7645 | 771A | 779A | 7855 |
29 - Cascade Capers (shortened) | 76B2 | 7778 | 77E1 | 7858 |
16 - Cavern Caprice | 78B9 | 79F4 | 7A38 | 7A61 |
2A - Cavern Caprice (shortened) | 78C8 | 7A10 | 7A3B | 7A6D |
06 - Bonus Time (screen) | 7AC4 | 7AF8 | 7B26 | 7B56 |
07 - Bonus Time (stage) | 7B80 | 7D08 | 7D65 | 7DDF |
Unfortunately, I haven't figured out the music format yet. It's confusing because from looking at it, there are lots of branching situations based on the values of the bytes, and every time that happens, the process becomes very tedious. I'll try to slowly figure it out eventually, though.
Also, notice that a lot of the silent songs have the same pointer, to either 0000 or 47E2. For this reason, I strongly believe that other than what has already been discovered, I don't think there are any more unused songs to be discovered. A lot of these silent songs point to the same location, so they're essentially duplicates of each other (excluding tempos, which doesn't make a difference when they're silent). I guess the silent songs indicate that other songs were intended to be used here, but either Rare ran out of time, or ran out of space in the 16KB bank (keep in mind, this ROM bank not only contains songs, but code, pointers, tempos, etc. as well). So, I'd be very surprised if someone found more unused music, unless there's some unlikely song that's not even pointed to at all.
So this is it for now. I hope this was helpful!