DKL2 and DKL3 music notes

Share ROM offsets and general DKC hacking documentation

DKL2 and DKL3 music notes

Postby Blaziken257 » 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:
  • 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!
Treasure Hunter
Bananas received 108
Posts: 332
Joined: 2008

Re: DKL2 and DKL3 music notes

Postby Qyzbud » January 10th, 2013, 4:58 pm

Wow. When you say you're writing a long post... you mean it!

A stunning & incredibly thorough documentation effort — definitely worth a banana. :)
Atlas Author
Bananas received 671
Posts: 3228
Joined: 2008

Re: DKL2 and DKL3 music notes

Postby Super Luigi! » January 22nd, 2013, 12:22 pm

Indeed, this list is very thorough. Although it is of no use to me at the moment, I'm sure there is someone, somewhere that is praising you to the heavens! Excellect job, Blaziken257!
Sage of Discovery
Bananas received 210
Posts: 2078
Joined: 2012

Re: DKL2 and DKL3 music notes

Postby Blaziken257 » March 14th, 2013, 2:11 pm

I'm quite late to reply to this, but thanks to both of you! I just updated the first post slightly, and I added ROM offsets for music in various screens in both DKL2 and DKL3 (e.g. the title screen, bonus stage screens, etc.), in case anybody wants to know how to change those (like changing the bonus stage screens to Titular Tableau, for example).

I also eventually plan to post the music format, partly for curiosity purposes, but also to pave the way to allow custom music to be written! (Not that I'd be good at writing custom music myself, but I imagine that if I figure out the format and give the information, someone would be interested.) This is going to be difficult though, as the format is quite complicated from what I've seen so far...

I'd also like to eventually figure out how DKL's music data works, and also to figure out sound effect information on all three games. I do know how to change the sound effect for the Bonus Coin in the Collect the Stars bonus stages, in both games... (see here and here), but that's all I know so far.
Treasure Hunter
Bananas received 108
Posts: 332
Joined: 2008


Return to Documentation

Who is online

Users browsing this forum: No registered users and 2 guests