Kirby's Dream Land 3:Audio

From SnesLab
Jump to: navigation, search

This is a documentation of Kirby's Dream Land 3's Audio Files.

Sound Driver

PC: 0x103EFC
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 A copypaste of Gourmet Race from Kirby Super Star. 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
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
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
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.