Kirby's Dream Land 3:Audio
This is a documentation of Kirby's Dream Land 3's Audio Files.
Sound Driver
PC: 0x103EFC
SNES: $D03EFC
ARAM: $0700
Length: 0x9FC bytes.
Uses the standard N-SPC as a base, however, the game only uses tempo values 2E, 2F and 30 because tempo affects sound effects too, therefore, the songs use non-standard note lenghts to simulate tempo. The panning table is inverted, normally 00 - 14 would be Right - Left, but in this driver it's the opposite (which makes more sense to me). Percussion Set command does nothing as it's in a fixed value of 23, this may be because each sound effect sets the command to 23. The driver is not programmed to deal with SFX interrupts correctly, so every stage song must use 5 channels or less.
Song List
SONG IDs | Common Name | Additional Comments |
---|---|---|
00 Nothing | N/A | |
01 K3DEATH | Kirby Lose | |
02 K3BOSS | Big Boss Battle | |
03 K3BOSS2 | Invincible 2 | This one is unused, apparently it was meant for a boss. |
04 K3BOSS3 | Miniboss Battle | |
05 K3CLEARSTAR | Bonus Jump | |
06 K3CLEARSH | Victory | |
07 K3DEDEDE | King Dedede | |
08 K3EVENT1 | Mission Completed | |
09 K3EVENT2 | Incorrect Path | Song is only used in one level, probably was supposed to play when a mission was failed, but the idea ended up being scrapped. |
0A K3FIELD1 | Grass Land 4 | |
0B K3FIELD2 | Grass Land 2 | |
0C K3FIELD3 | Iceberg | |
0D K3FIELD4 | Sand Canyon 1 | |
0E K3FIELD5 | Sand Canyon 3 | |
0F K3FIELD6 | Ripple Field 1 | |
10 K3FIELD7 | Ripple Field 3 | |
11 K3FIELD8 | Cloudy Park | |
12 K3FIELD9 | Ripple Field 2 | |
13 K3FIELD10 | Grass Land 3 | |
14 K3FIELD11 | Grass Land 1 | |
15 K3FIELD12 | Sand Canyon 2 | And another copypaste from Super Star, this one being Gourmet Race. Its pitch was edited probably to fit with KDL3's samples properly. |
16 K3GAMEOVER | Game Over | |
17 K3LASBOSS1 | Hyper Zone 1 | |
18 K3LASBOSS2 | Hyper Zone 2 | |
19 K3LEVEL1 | Grass Land Map | |
1A K3LEVEL2 | Ripple Field Map | |
1B K3LEVEL3 | Cloudy Park Map | |
1C K3LEVEL4 | Sand Canyon Map | |
1D K3LEVEL5 | Mission Failed | Probably meant to play in a level map, but then the idea was scrapped and K3EVENT2 was replaced by this one. |
1E K3LEVEL6 | Iceberg Map | |
1F K3MINIGAME1 | Minigame | |
20 K3MUTEKI | Invincible 1 | |
21 K3OPEN1 | Opening | |
22 K3OPEN2 | Title Screen | |
23 K3OPEN3 | Music Test | |
24 K3OPENSE | Ominous Wind | Its name implies that it was going to be used in a similar way to Super Star's Spring Breeze or Dynablade cutscenes. |
25 K3SELECT | File Select | |
26 K3SIMOBE1 | Friends 1 | |
27 K3SIMOBE2 | Friends 2 | |
28 K3SIMOBE3 | Friends 3 | |
29 K3WORLDMAP | Popstar | |
2A K3END1 | Staff Roll | |
2B K3END2 | Cast Montage |
Each song inserts at ARAM $4739 except for Staff Roll and Cast Montage which insert at ARAM $3439.
Song Pointers
PC: 0x005EB2
SNES: $C05EB2
Length: 0x81 bytes.
Every three bytes points to each song in the exact same order as Song IDs.
Sample Pack List
Sample Pack IDs | Used in | Inst 28 | Inst 29 | Inst 2A | Inst 2B |
---|---|---|---|---|---|
00 | Default | N/A | N/A | N/A | N/A |
01 | Big Boss Battle, Iceberg | Power Snare Drum | Acid Synth Bass | N/A | N/A |
02 | Title Screen, Grass Land 3, Ripple Field 1, Ripple Field 3, Miniboss Battle | VOX Arr1 (Soft Attack) | VOX Arr1 | Slap Bass | Synth Brass |
03 | Sand Canyon 2, King Dedede, Hyper Zone 1 | Synth Bass 1 | Wasp Synth Fifths | Solo Wasp Synth | N/A |
04 | Grass Land 1, Grass Land 2 | Clarinet | Tuba | N/A | N/A |
05 | Ripple Field 2 | Pulse Wave-like (Unused) | Synth-ish Snare Drum | Sub Synth Bass | N/A |
06 | Hyper Zone 2 | Crystal | Synth Bass 2 | N/A | N/A |
07 | Opening, Music Test | Glass Pad (Soft Attack) | Glass Pad | Electric Open Hi-Hat | N/A |
08 | Pop Star | Cyber Space | N/A | N/A | N/A |
09 (Referred to as 89) | Staff Roll | Voice Oohs | Synth Guitar | N/A | N/A |
0A (Referred to as 8A) | Cast Montage | Wood Block | N/A | N/A | N/A |
Sample Pack Pointers
PC: 0x005F6C
SNES: $C05F6C
Length: 0x1E bytes.
Every three bytes points to each sample pack in the exact same order as Sample Pack IDs (starting from 01).
The game has roughly 10KB free available for samples in ARAM, but only uses up to about 5KB.
Global Sample Pack
PC: $0E0000
SNES: $CE0000
Length: 0x74AD bytes.
Where all of the global samples are. Instrument range goes from 00 to 27. See table below.
ID | Instrument |
---|---|
00 | Tenor Sax |
01 | Trumpet |
02 | Gameboy Bass |
03 | Fantasia |
04 | Jazz Guitar |
05 | FM Glockenspiel (Soft Attack) |
06 | FM Glockenspiel |
07 | Celesta (Long) |
08 | Celesta (Soft Attack) |
09 | Celesta |
0A | Phaze SFX (Non-sustained) |
0B | Phaze SFX |
0C | Jet SFX (Soft Attack, Slow Decay) |
0D | Jet SFX |
0E | Jet SFX (Softer Attack, Slower Decay) |
0F | Jet SFX (Strong Attack) |
10 | Sine Wave (Sloppily looped, works best with echo) |
11 | Noise (Soft Attack, Slow Decay) |
12 | Noise (Stronger Attack, Fast Decay) |
13 | Noise |
14 | Machine-ish Noise |
15 | String Ensemble (Soft Attack, Fast Decay) |
16 | String Ensemble (Softer Attack, Fast Decay) |
17 | String Ensemble (Even Softer Attack, Slower Decay) |
18 | String Ensemble (Soft Attack) |
19 | String Ensemble |
1A | Aaah VOX Synth |
1B | Swanee (Blown Bottle) |
1C | Pan Flute |
1D | Lead 1 |
1E | 50% Square Wave (Slightly Softer) |
1F | 50% Square Wave |
20 | Triangle Wave |
21 | Lead 2 (Used commonly as a bass) |
22 | Rumbling SFX |
23 | Electric Kick |
24 | Electric Hi-Hat |
25 | Timbale |
26 | Electric Snare (Soft Decay, used commonly in low octaves) |
27 | Electric Snare |
Sample Pack Usage
PC: 0x10CA2E
SNES: $D0CA2E
Length: 0x2B bytes.
Each byte corresponds to which sample pack each song will use, the order of the bytes is the exact same as Song IDs. You must input the ID of which sample pack you want to use.
Sound Effects?
Sound Effects start at $3400 in ARAM and at $CEA1F3 (PC 0x0EA1F3) in ROM, I can't grasp how they exactly work though, they behave like normal sequence data but I had trouble understanding how their pointers work.
Relevant RAM Adresses
$80:7350 Current song playing.
$80:7351 Current sample pack being used.
$80:7340 Current SFX playing.