summaryrefslogtreecommitdiff
path: root/audio
diff options
context:
space:
mode:
Diffstat (limited to 'audio')
-rw-r--r--audio/engine_1.asm330
-rw-r--r--audio/engine_2.asm1651
-rw-r--r--audio/engine_3.asm1607
-rw-r--r--audio/engine_4.asm193
-rw-r--r--[-rwxr-xr-x]audio/headers/musicheaders1.asm207
-rw-r--r--[-rwxr-xr-x]audio/headers/musicheaders2.asm63
-rw-r--r--[-rwxr-xr-x]audio/headers/musicheaders3.asm179
-rw-r--r--audio/headers/musicheaders4.asm18
-rw-r--r--audio/headers/sfxheaders1.asm557
-rw-r--r--audio/headers/sfxheaders2.asm709
-rw-r--r--audio/headers/sfxheaders3.asm584
-rw-r--r--audio/headers/sfxheaders4.asm294
-rw-r--r--audio/music/dungeon1.asm2
-rw-r--r--audio/music/meetjessiejames.asm (renamed from audio/music/yellow/meetjessiejames.asm)0
-rwxr-xr-xaudio/music/printer.asm316
-rw-r--r--audio/music/surfingpikachu.asm (renamed from audio/music/yellow/surfingpikachu.asm)0
-rw-r--r--audio/music/yellowintro.asm (renamed from audio/music/yellow/yellowintro.asm)0
-rw-r--r--audio/music/yellowunusedsong.asm (renamed from audio/music/yellow/yellowunusedsong.asm)0
-rw-r--r--audio/pikachu_cries/pikachu_cry_1.wavbin0 -> 18660 bytes
-rw-r--r--audio/pikachu_cries/pikachu_cry_10.wavbin0 -> 65572 bytes
-rw-r--r--audio/pikachu_cries/pikachu_cry_11.wavbin0 -> 14628 bytes
-rw-r--r--audio/pikachu_cries/pikachu_cry_12.wavbin0 -> 27684 bytes
-rw-r--r--audio/pikachu_cries/pikachu_cry_13.wavbin0 -> 39972 bytes
-rw-r--r--audio/pikachu_cries/pikachu_cry_14.wavbin0 -> 50404 bytes
-rw-r--r--audio/pikachu_cries/pikachu_cry_15.wavbin0 -> 42020 bytes
-rw-r--r--audio/pikachu_cries/pikachu_cry_16.wavbin0 -> 42212 bytes
-rw-r--r--audio/pikachu_cries/pikachu_cry_17.wavbin0 -> 17188 bytes
-rw-r--r--audio/pikachu_cries/pikachu_cry_18.wavbin0 -> 30820 bytes
-rw-r--r--audio/pikachu_cries/pikachu_cry_19.wavbin0 -> 45476 bytes
-rw-r--r--audio/pikachu_cries/pikachu_cry_2.wavbin0 -> 13860 bytes
-rw-r--r--audio/pikachu_cries/pikachu_cry_20.wavbin0 -> 65572 bytes
-rw-r--r--audio/pikachu_cries/pikachu_cry_21.wavbin0 -> 65540 bytes
-rw-r--r--audio/pikachu_cries/pikachu_cry_22.wavbin0 -> 51492 bytes
-rw-r--r--audio/pikachu_cries/pikachu_cry_23.wavbin0 -> 30436 bytes
-rw-r--r--audio/pikachu_cries/pikachu_cry_24.wavbin0 -> 57700 bytes
-rw-r--r--audio/pikachu_cries/pikachu_cry_25.wavbin0 -> 29156 bytes
-rw-r--r--audio/pikachu_cries/pikachu_cry_26.wavbin0 -> 27876 bytes
-rw-r--r--audio/pikachu_cries/pikachu_cry_27.wavbin0 -> 23268 bytes
-rw-r--r--audio/pikachu_cries/pikachu_cry_28.wavbin0 -> 37476 bytes
-rw-r--r--audio/pikachu_cries/pikachu_cry_29.wavbin0 -> 24932 bytes
-rw-r--r--audio/pikachu_cries/pikachu_cry_3.wavbin0 -> 20644 bytes
-rw-r--r--audio/pikachu_cries/pikachu_cry_30.wavbin0 -> 9636 bytes
-rw-r--r--audio/pikachu_cries/pikachu_cry_31.wavbin0 -> 15396 bytes
-rw-r--r--audio/pikachu_cries/pikachu_cry_32.wavbin0 -> 11364 bytes
-rw-r--r--audio/pikachu_cries/pikachu_cry_33.wavbin0 -> 26020 bytes
-rw-r--r--audio/pikachu_cries/pikachu_cry_34.wavbin0 -> 43108 bytes
-rw-r--r--audio/pikachu_cries/pikachu_cry_35.wavbin0 -> 37220 bytes
-rw-r--r--audio/pikachu_cries/pikachu_cry_36.wavbin0 -> 57124 bytes
-rw-r--r--audio/pikachu_cries/pikachu_cry_37.wavbin0 -> 28644 bytes
-rw-r--r--audio/pikachu_cries/pikachu_cry_38.wavbin0 -> 25444 bytes
-rw-r--r--audio/pikachu_cries/pikachu_cry_39.wavbin0 -> 35940 bytes
-rw-r--r--audio/pikachu_cries/pikachu_cry_4.wavbin0 -> 32740 bytes
-rw-r--r--audio/pikachu_cries/pikachu_cry_40.wavbin0 -> 30884 bytes
-rw-r--r--audio/pikachu_cries/pikachu_cry_41.wavbin0 -> 49380 bytes
-rw-r--r--audio/pikachu_cries/pikachu_cry_42.wavbin0 -> 44068 bytes
-rw-r--r--audio/pikachu_cries/pikachu_cry_5.wavbin0 -> 33316 bytes
-rw-r--r--audio/pikachu_cries/pikachu_cry_6.wavbin0 -> 37028 bytes
-rw-r--r--audio/pikachu_cries/pikachu_cry_7.wavbin0 -> 28004 bytes
-rw-r--r--audio/pikachu_cries/pikachu_cry_8.wavbin0 -> 34404 bytes
-rw-r--r--audio/pikachu_cries/pikachu_cry_9.wavbin0 -> 27172 bytes
-rw-r--r--audio/sfx/battle_29.asm8
-rw-r--r--audio/sfx/battle_2f.asm12
-rw-r--r--audio/sfx/cymbal1_4.asm4
-rw-r--r--audio/sfx/cymbal2_4.asm4
-rw-r--r--audio/sfx/cymbal3_4.asm4
-rw-r--r--audio/sfx/get_item2_4.asm67
-rw-r--r--audio/sfx/get_item2_4_2.asm69
-rwxr-xr-xaudio/sfx/heal_ailment_4.asm7
-rw-r--r--audio/sfx/muted_snare1_4.asm5
-rw-r--r--audio/sfx/muted_snare2_4.asm4
-rw-r--r--audio/sfx/muted_snare3_4.asm4
-rw-r--r--audio/sfx/muted_snare4_4.asm4
-rw-r--r--[-rwxr-xr-x]audio/sfx/pokeflute_ch1_ch2.asm0
-rw-r--r--[-rwxr-xr-x]audio/sfx/pokeflute_ch3.asm0
-rw-r--r--audio/sfx/save_3.asm18
-rw-r--r--audio/sfx/shooting_star.asm2
-rwxr-xr-xaudio/sfx/snare1_4.asm4
-rwxr-xr-xaudio/sfx/snare2_4.asm4
-rwxr-xr-xaudio/sfx/snare3_4.asm4
-rw-r--r--audio/sfx/snare4_4.asm4
-rw-r--r--audio/sfx/snare5_4.asm9
-rw-r--r--audio/sfx/snare6_4.asm4
-rw-r--r--audio/sfx/snare7_4.asm4
-rw-r--r--audio/sfx/snare8_4.asm4
-rw-r--r--audio/sfx/snare9_4.asm4
-rw-r--r--audio/sfx/swap_2.asm11
-rwxr-xr-xaudio/sfx/tink_4.asm8
-rw-r--r--audio/sfx/triangle1_4.asm4
-rw-r--r--audio/sfx/triangle2_4.asm5
-rw-r--r--audio/sfx/triangle3_4.asm5
-rw-r--r--audio/sfx/unknown_80250.asm7
-rwxr-xr-xaudio/sfx/unknown_80263.asm4
-rw-r--r--audio/sfx/unknown_8026a.asm10
-rwxr-xr-xaudio/sfx/unknown_8029f.asm10
-rw-r--r--audio/sfx/unknown_802b5.asm8
-rwxr-xr-xaudio/sfx/unknown_802cc.asm5
-rwxr-xr-xaudio/sfx/unknown_802d7.asm6
-rw-r--r--audio/sfx/unknown_802e1.asm6
-rw-r--r--audio/sfx/unknown_80337.asm64
-rw-r--r--audio/sfx/unknown_803da.asm24
-rw-r--r--audio/sfx/unknown_80411.asm32
-rw-r--r--audio/sfx/unknown_80467.asm33
-rw-r--r--audio/sfx/unknown_804bf.asm25
-rw-r--r--audio/sfx/unknown_804fa.asm29
-rw-r--r--audio/sfx/unknown_80545.asm28
-rw-r--r--audio/sfx/unknown_8058b.asm30
-rw-r--r--audio/sfx/unknown_805db.asm20
-rw-r--r--audio/sfx/unknown_80603.asm22
-rw-r--r--audio/sfx/unknown_80633.asm20
-rw-r--r--audio/sfx/unknown_80661.asm20
-rw-r--r--audio/sfx/unknown_80689.asm17
-rw-r--r--audio/sfx/unknown_806af.asm36
-rw-r--r--audio/sfx/unknown_80712.asm27
-rw-r--r--audio/sfx/unknown_80760.asm15
-rw-r--r--audio/sfx/unknown_8077e.asm39
-rw-r--r--audio/sfx/unknown_807eb.asm23
-rw-r--r--audio/sfx/unknown_8081e.asm34
-rw-r--r--audio/sfx/unknown_80879.asm22
-rw-r--r--audio/sfx/unknown_808a9.asm31
-rw-r--r--audio/sfx/unknown_808fa.asm16
-rw-r--r--audio/sfx/unknown_8091c.asm20
-rw-r--r--audio/sfx/unknown_80944.asm25
-rw-r--r--audio/sfx/unknown_8097f.asm23
-rw-r--r--audio/sfx/unknown_809b2.asm29
-rw-r--r--audio/sfx/unknown_809fb.asm20
-rw-r--r--audio/sfx/unknown_80a23.asm37
-rw-r--r--audio/sfx/unknown_80a89.asm29
-rw-r--r--audio/sfx/unknown_80ad2.asm23
-rw-r--r--audio/sfx/unknown_80b05.asm30
-rw-r--r--audio/sfx/unknown_80b53.asm29
-rw-r--r--audio/sfx/unknown_80b9c.asm28
-rw-r--r--audio/sfx/unknown_80be2.asm33
-rw-r--r--audio/sfx/unknown_80c3b.asm23
-rw-r--r--audio/sfx/unknown_80c6e.asm23
-rw-r--r--audio/sfx/unknown_80ca1.asm25
-rw-r--r--audio/sfx/unknown_80ce7.asm24
-rw-r--r--audio/sfx/unknown_80e5a.asm46
-rw-r--r--audio/sfx/unknown_80e91.asm46
-rw-r--r--[-rwxr-xr-x]audio/sfx/unused2_2.asm0
-rw-r--r--[-rwxr-xr-x]audio/sfx/unused_1.asm0
-rw-r--r--[-rwxr-xr-x]audio/sfx/unused_2.asm0
-rw-r--r--[-rwxr-xr-x]audio/sfx/unused_3.asm0
-rwxr-xr-xaudio/unknown_832b9.binbin0 -> 3398 bytes
-rw-r--r--audio/wave_instruments.asm2
144 files changed, 3345 insertions, 4829 deletions
diff --git a/audio/engine_1.asm b/audio/engine_1.asm
index 36f5db5a..4faf06cf 100644
--- a/audio/engine_1.asm
+++ b/audio/engine_1.asm
@@ -157,6 +157,15 @@ Audio1_PlayNextNote:
add hl, bc
res BIT_PITCH_BEND_ON, [hl]
res BIT_PITCH_BEND_DECREASING, [hl]
+ ld a, c
+ cp $4
+ jr nz, .asm_918c
+ ld a, [wLowHealthAlarm]
+ bit 7, a
+ jr z, .asm_918c
+ call Audio1_EnableChannelOutput
+ ret
+.asm_918c
call Audio1_endchannel
ret
@@ -515,7 +524,8 @@ Audio1_unknownmusic0xef:
jr nz, Audio1_dutycycle ; no
call Audio1_GetNextMusicByte
push bc
- call Audio1_PlaySound
+ ld b, a
+ call DetermineAudioFunction
pop bc
ld a, [wDisableChannelOutputWhenSfxEnds]
and a
@@ -670,8 +680,8 @@ asm_94fd
ld a, [wDisableChannelOutputWhenSfxEnds]
and a
jr nz, .asm_9508
- ld a, d
- call Audio1_PlaySound
+ ld b, d
+ call DetermineAudioFunction
.asm_9508
pop bc
pop de
@@ -831,7 +841,7 @@ Audio1_notepitch:
Audio1_EnableChannelOutput:
ld b, 0
- ld hl, Audio1_HWChannelEnableMasks
+ call Audio1_9972
add hl, bc
ld a, [rNR51]
or [hl] ; set this channel's bits
@@ -851,7 +861,7 @@ Audio1_EnableChannelOutput:
; If this is the SFX noise channel or a music channel whose corresponding
; SFX channel is off, apply stereo panning.
ld a, [wStereoPanning]
- ld hl, Audio1_HWChannelEnableMasks
+ call Audio1_9972
add hl, bc
and [hl]
ld d, a
@@ -939,12 +949,31 @@ Audio1_ApplyWavePatternAndFrequency:
ld [hl], e ; store frequency low byte
inc hl
ld [hl], d ; store frequency high byte
+ ld a, c
+ cp $4
+ jr c, .asm_9642
call Audio1_ApplyFrequencyModifier
+.asm_9642
+ ret
+.asm_9643
+ ld a, c
+ cp $4
+ ret nz
+ ld a, [wLowHealthAlarm]
+ bit 7, a
+ ret z
+ xor a
+ ld [wFrequencyModifier], a
+ ld a, $80
+ ld [wTempoModifier], a
ret
Audio1_SetSfxTempo:
call Audio1_IsCry
+ jr c, .isCry
+ call Audio1_96c3
jr nc, .notCry
+.isCry
ld d, 0
ld a, [wTempoModifier]
add $80
@@ -954,18 +983,20 @@ Audio1_SetSfxTempo:
ld [wSfxTempo + 1], a
ld a, d
ld [wSfxTempo], a
- jr .done
+ ret
.notCry
xor a
ld [wSfxTempo + 1], a
- ld a, $1
+ inc a
ld [wSfxTempo], a
-.done
ret
Audio1_ApplyFrequencyModifier:
call Audio1_IsCry
- jr nc, .done
+ jr c, .isCry
+ call Audio1_96c3
+ ret nc
+.isCry
; if playing a cry, add the cry's frequency modifier
ld a, [wFrequencyModifier]
add e
@@ -999,8 +1030,7 @@ Audio1_GoBackOneCommandIfCry:
scf
ret
.done
- scf
- ccf
+ and a
ret
Audio1_IsCry:
@@ -1021,6 +1051,26 @@ Audio1_IsCry:
scf
ret
+Audio1_96c3:
+ ld a, [wAudioROMBank]
+ cp AUDIO_2
+ jr nz, .asm_96dc
+ ld a, [wChannelSoundIDs + CH7]
+ ld b, a
+ ld a, [wChannelSoundIDs + CH4]
+ or b
+ cp $9d
+ jr c, .asm_96dc
+ cp $ea
+ jr z, .asm_96de
+ jr c, .asm_96de
+.asm_96dc
+ and a
+ ret
+.asm_96de
+ scf
+ ret
+
Audio1_ApplyPitchBend:
ld hl, wChannelFlags1
add hl, bc
@@ -1243,21 +1293,7 @@ Audio1_ApplyDutyCycle:
ret
Audio1_GetNextMusicByte:
- ld d, 0
- ld a, c
- add a
- ld e, a
- ld hl, wChannelCommandPointers
- add hl, de
- ld a, [hli]
- ld e, a
- ld a, [hld]
- ld d, a
- ld a, [de] ; get next music command
- inc de
- ld [hl], e ; store address of next command
- inc hl
- ld [hl], d
+ call GetNextMusicByte
ret
Audio1_GetRegisterPointer:
@@ -1319,6 +1355,7 @@ Audio1_CalculateFrequency:
Audio1_PlaySound::
ld [wSoundID], a
+ ld a, [wSoundID]
cp $ff
jp z, .stopAllAudio
cp MAX_SFX_ID
@@ -1329,76 +1366,7 @@ Audio1_PlaySound::
jp nc, .playSfx
.playMusic
- xor a
- ld [wUnusedC000], a
- ld [wDisableChannelOutputWhenSfxEnds], a
- ld [wMusicTempo + 1], a
- ld [wMusicWaveInstrument], a
- ld [wSfxWaveInstrument], a
- ld d, $8
- ld hl, wChannelReturnAddresses
- call .FillMem
- ld hl, wChannelCommandPointers
- call .FillMem
- ld d, $4
- ld hl, wChannelSoundIDs
- call .FillMem
- ld hl, wChannelFlags1
- call .FillMem
- ld hl, wChannelDuties
- call .FillMem
- ld hl, wChannelDutyCycles
- call .FillMem
- ld hl, wChannelVibratoDelayCounters
- call .FillMem
- ld hl, wChannelVibratoExtents
- call .FillMem
- ld hl, wChannelVibratoRates
- call .FillMem
- ld hl, wChannelFrequencyLowBytes
- call .FillMem
- ld hl, wChannelVibratoDelayCounterReloadValues
- call .FillMem
- ld hl, wChannelFlags2
- call .FillMem
- ld hl, wChannelPitchBendLengthModifiers
- call .FillMem
- ld hl, wChannelPitchBendFrequencySteps
- call .FillMem
- ld hl, wChannelPitchBendFrequencyStepsFractionalPart
- call .FillMem
- ld hl, wChannelPitchBendCurrentFrequencyFractionalPart
- call .FillMem
- ld hl, wChannelPitchBendCurrentFrequencyHighBytes
- call .FillMem
- ld hl, wChannelPitchBendCurrentFrequencyLowBytes
- call .FillMem
- ld hl, wChannelPitchBendTargetFrequencyHighBytes
- call .FillMem
- ld hl, wChannelPitchBendTargetFrequencyLowBytes
- call .FillMem
- ld a, $1
- ld hl, wChannelLoopCounters
- call .FillMem
- ld hl, wChannelNoteDelayCounters
- call .FillMem
- ld hl, wChannelNoteSpeeds
- call .FillMem
- ld [wMusicTempo], a
- ld a, $ff
- ld [wStereoPanning], a
- xor a
- ld [rNR50], a
- ld a, $8
- ld [rNR10], a
- ld a, 0
- ld [rNR51], a
- xor a
- ld [rNR30], a
- ld a, $80
- ld [rNR30], a
- ld a, $77
- ld [rNR50], a
+ call InitMusicVariables
jp .playSoundCommon
.playSfx
@@ -1460,91 +1428,7 @@ Audio1_PlaySound::
jr c, .asm_99a3
ret
.asm_99a3
- xor a
- push de
- ld h, d
- ld l, e
- add hl, hl
- ld d, h
- ld e, l
- ld hl, wChannelReturnAddresses
- add hl, de
- ld [hli], a
- ld [hl], a
- ld hl, wChannelCommandPointers
- add hl, de
- ld [hli], a
- ld [hl], a
- pop de
- ld hl, wChannelSoundIDs
- add hl, de
- ld [hl], a
- ld hl, wChannelFlags1
- add hl, de
- ld [hl], a
- ld hl, wChannelDuties
- add hl, de
- ld [hl], a
- ld hl, wChannelDutyCycles
- add hl, de
- ld [hl], a
- ld hl, wChannelVibratoDelayCounters
- add hl, de
- ld [hl], a
- ld hl, wChannelVibratoExtents
- add hl, de
- ld [hl], a
- ld hl, wChannelVibratoRates
- add hl, de
- ld [hl], a
- ld hl, wChannelFrequencyLowBytes
- add hl, de
- ld [hl], a
- ld hl, wChannelVibratoDelayCounterReloadValues
- add hl, de
- ld [hl], a
- ld hl, wChannelPitchBendLengthModifiers
- add hl, de
- ld [hl], a
- ld hl, wChannelPitchBendFrequencySteps
- add hl, de
- ld [hl], a
- ld hl, wChannelPitchBendFrequencyStepsFractionalPart
- add hl, de
- ld [hl], a
- ld hl, wChannelPitchBendCurrentFrequencyFractionalPart
- add hl, de
- ld [hl], a
- ld hl, wChannelPitchBendCurrentFrequencyHighBytes
- add hl, de
- ld [hl], a
- ld hl, wChannelPitchBendCurrentFrequencyLowBytes
- add hl, de
- ld [hl], a
- ld hl, wChannelPitchBendTargetFrequencyHighBytes
- add hl, de
- ld [hl], a
- ld hl, wChannelPitchBendTargetFrequencyLowBytes
- add hl, de
- ld [hl], a
- ld hl, wChannelFlags2
- add hl, de
- ld [hl], a
- ld a, $1
- ld hl, wChannelLoopCounters
- add hl, de
- ld [hl], a
- ld hl, wChannelNoteDelayCounters
- add hl, de
- ld [hl], a
- ld hl, wChannelNoteSpeeds
- add hl, de
- ld [hl], a
- ld a, e
- cp CH4
- jr nz, .asm_9a2b
- ld a, $8
- ld [rNR10], a ; sweep off
+ call InitSFXVariables
.asm_9a2b
ld a, c
and a
@@ -1553,51 +1437,7 @@ Audio1_PlaySound::
jp .sfxChannelLoop
.stopAllAudio
- ld a, $80
- ld [rNR52], a ; sound hardware on
- ld [rNR30], a ; wave playback on
- xor a
- ld [rNR51], a ; no sound output
- ld [rNR32], a ; mute channel 3 (wave channel)
- ld a, $8
- ld [rNR10], a ; sweep off
- ld [rNR12], a ; mute channel 1 (pulse channel 1)
- ld [rNR22], a ; mute channel 2 (pulse channel 2)
- ld [rNR42], a ; mute channel 4 (noise channel)
- ld a, $40
- ld [rNR14], a ; counter mode
- ld [rNR24], a
- ld [rNR44], a
- ld a, $77
- ld [rNR50], a ; full volume
- xor a
- ld [wUnusedC000], a
- ld [wDisableChannelOutputWhenSfxEnds], a
- ld [wMuteAudioAndPauseMusic], a
- ld [wMusicTempo + 1], a
- ld [wSfxTempo + 1], a
- ld [wMusicWaveInstrument], a
- ld [wSfxWaveInstrument], a
- ld d, $a0
- ld hl, wChannelCommandPointers
- call .FillMem
- ld a, $1
- ld d, $18
- ld hl, wChannelNoteDelayCounters
- call .FillMem
- ld [wMusicTempo], a
- ld [wSfxTempo], a
- ld a, $ff
- ld [wStereoPanning], a
- ret
-
-; fills d bytes at hl with a
-.FillMem
- ld b, d
-.loop
- ld [hli], a
- dec b
- jr nz, .loop
+ call StopAllAudio
ret
.playSoundCommon
@@ -1633,16 +1473,11 @@ Audio1_PlaySound::
inc hl
jr .commandPointerLoop
.next
+ push af
push hl
push bc
- push af
ld b, 0
ld c, a
- ld hl, wChannelSoundIDs
- add hl, bc
- ld a, [wSoundID]
- ld [hl], a
- pop af
cp CH3
jr c, .skipSettingFlag
ld hl, wChannelFlags1
@@ -1657,6 +1492,17 @@ Audio1_PlaySound::
ld a, [de]
ld [hli], a
inc de
+ pop af
+ push hl
+ push bc
+ ld b, 0
+ ld c, a
+ ld hl, wChannelSoundIDs
+ add hl, bc
+ ld a, [wSoundID]
+ ld [hl], a
+ pop bc
+ pop hl
inc c
dec b
ld a, b
@@ -1707,9 +1553,29 @@ Audio1_HWChannelDisableMasks:
db HW_CH1_DISABLE_MASK, HW_CH2_DISABLE_MASK, HW_CH3_DISABLE_MASK, HW_CH4_DISABLE_MASK ; channels 0-3
db HW_CH1_DISABLE_MASK, HW_CH2_DISABLE_MASK, HW_CH3_DISABLE_MASK, HW_CH4_DISABLE_MASK ; channels 4-7
+Audio1_9972:
+ push af
+ push bc
+ ld a, [wOptions]
+ and %110000 ; channel options
+ srl a
+ ld c, a
+ ld b, 0
+ ld hl, Audio1_HWChannelEnableMasks
+ add hl, bc
+ pop bc
+ pop af
+ ret
+
Audio1_HWChannelEnableMasks:
db HW_CH1_ENABLE_MASK, HW_CH2_ENABLE_MASK, HW_CH3_ENABLE_MASK, HW_CH4_ENABLE_MASK ; channels 0-3
db HW_CH1_ENABLE_MASK, HW_CH2_ENABLE_MASK, HW_CH3_ENABLE_MASK, HW_CH4_ENABLE_MASK ; channels 4-7
+ db $01,$20,$44,$88
+ db $11,$22,$44,$88
+ db $01,$20,$04,$80
+ db $01,$20,$04,$80
+ db $01,$02,$40,$80
+ db $01,$02,$40,$80
Audio1_Pitches:
dw $F82C ; C_
diff --git a/audio/engine_2.asm b/audio/engine_2.asm
index 3928d092..d1b07df9 100644
--- a/audio/engine_2.asm
+++ b/audio/engine_2.asm
@@ -1,1341 +1,214 @@
-; The second of three duplicated sound engines.
-
-Audio2_UpdateMusic::
- ld c, CH0
-.loop
- ld b, $0
- ld hl, wChannelSoundIDs
- add hl, bc
- ld a, [hl]
- and a
- jr z, .nextChannel
- ld a, c
- cp CH4
- jr nc, .applyAffects ; if sfx channel
- ld a, [wMuteAudioAndPauseMusic]
- and a
- jr z, .applyAffects
- bit 7, a
- jr nz, .nextChannel
- set 7, a
- ld [wMuteAudioAndPauseMusic], a
- xor a
- ld [rNR51], a
- ld [rNR30], a
- ld a, $80
- ld [rNR30], a
- jr .nextChannel
-.applyAffects
- call Audio2_ApplyMusicAffects
-.nextChannel
- ld a, c
- inc c
- cp CH7
- jr nz, .loop
- ret
+Audio2_PlaySound::
+ ld [wSoundID], a
+ ld a, [wSoundID]
+ cp $ff
+ jp z, Audio2_2193c
+ cp $e9
+ jp z, Audio2_218db
+ jp c, Audio2_218db
+ cp $fe
+ jr z, .asm_218d5
+ jp nc, Audio2_218db
+.asm_218d5
+ call InitMusicVariables
+ jp Audio2_21940
-; this routine checks flags for music effects currently applied
-; to the channel and calls certain functions based on flags.
-; known flags for wChannelFlags1:
-; 0: toggleperfectpitch has been used
-; 1: call has been used
-; 3: a toggle used only by this routine for vibrato
-; 4: pitchbend flag
-; 6: dutycycle flag
-Audio2_ApplyMusicAffects:
- ld b, $0
- ld hl, wChannelNoteDelayCounters ; delay until next note
- add hl, bc
+Audio2_218db:
+ ld l, a
+ ld e, a
+ ld h, $0
+ ld d, h
+ add hl, hl
+ add hl, de
+ ld de, SFX_Headers_2
+ add hl, de
+ ld a, h
+ ld [wSfxHeaderPointer], a
+ ld a, l
+ ld [wSfxHeaderPointer + 1], a
ld a, [hl]
- cp $1 ; if the delay is 1, play next note
- jp z, Audio2_PlayNextNote
- dec a ; otherwise, decrease the delay timer
- ld [hl], a
+ and $c0
+ rlca
+ rlca
+ ld c, a
+.asm_218f4
+ ld d, c
ld a, c
- cp CH4
- jr nc, .startChecks ; if a sfx channel
- ld hl, wChannelSoundIDs + CH4
- add hl, bc
- ld a, [hl]
- and a
- jr z, .startChecks
- ret
-.startChecks
- ld hl, wChannelFlags1
- add hl, bc
- bit 6, [hl] ; dutycycle
- jr z, .checkForExecuteMusic
- call Audio2_ApplyDutyCycle
-.checkForExecuteMusic
+ add a
+ add c
+ ld c, a
ld b, $0
- ld hl, wChannelFlags2
- add hl, bc
- bit 0, [hl]
- jr nz, .checkForPitchBend
- ld hl, wChannelFlags1
- add hl, bc
- bit 2, [hl]
- jr nz, .disablePitchBendVibrato
-.checkForPitchBend
- ld hl, wChannelFlags1
- add hl, bc
- bit 4, [hl] ; pitchbend
- jr z, .checkVibratoDelay
- jp Audio2_ApplyPitchBend
-.checkVibratoDelay
- ld hl, wChannelVibratoDelayCounters ; vibrato delay
- add hl, bc
- ld a, [hl]
- and a ; check if delay is over
- jr z, .checkForVibrato
- dec [hl] ; otherwise, dec delay
-.disablePitchBendVibrato
- ret
-.checkForVibrato
- ld hl, wChannelVibratoExtents ; vibrato rate
- add hl, bc
- ld a, [hl]
- and a
- jr nz, .vibrato
- ret ; no vibrato
-.vibrato
- ld d, a
- ld hl, wChannelVibratoRates
+ ld a, [wSfxHeaderPointer]
+ ld h, a
+ ld a, [wSfxHeaderPointer + 1]
+ ld l, a
add hl, bc
+ ld c, d
ld a, [hl]
and $f
- and a
- jr z, .vibratoAlreadyDone
- dec [hl] ; apply vibrato pitch change
- ret
-.vibratoAlreadyDone
+ ld e, a
+ ld d, $0
+ ld hl, wChannelSoundIDs
+ add hl, de
ld a, [hl]
- swap [hl]
- or [hl]
- ld [hl], a ; reset the vibrato value and start again
- ld hl, wChannelFrequencyLowBytes
- add hl, bc
- ld e, [hl] ; get note pitch
- ld hl, wChannelFlags1
- add hl, bc
- bit 3, [hl] ; this is the only code that sets/resets bit three so
- jr z, .unset ; it continuously alternates which path it takes
- res 3, [hl]
- ld a, d
- and $f
- ld d, a
+ and a
+ jr z, .asm_21930
ld a, e
- sub d
- jr nc, .noCarry
- ld a, $0
-.noCarry
- jr .done
-.unset
- set 3, [hl]
- ld a, d
- and $f0
- swap a
- add e
- jr nc, .done
- ld a, $ff
-.done
- ld d, a
- ld b, $3
- call Audio2_21ff7
- ld [hl], d
+ cp $7
+ jr nz, .asm_21927
+ ld a, [wSoundID]
+ cp $14
+ jr nc, .asm_21920
ret
-
-; this routine executes all music commands that take up no time,
-; like tempo changes, duty changes etc. and doesn't return
-; until the first note is reached
-Audio2_PlayNextNote:
- ld hl, wChannelVibratoDelayCounterReloadValues
- add hl, bc
+.asm_21920
ld a, [hl]
- ld hl, wChannelVibratoDelayCounters
- add hl, bc
- ld [hl], a
- ld hl, wChannelFlags1
- add hl, bc
- res 4, [hl]
- res 5, [hl]
- ld a, c
- cp CH4
- jr nz, .beginChecks
- ld a, [wLowHealthAlarm] ;low health alarm enabled?
- bit 7, a
- ret nz
-.beginChecks
- call Audio2_endchannel
+ cp $14
+ jr z, .asm_21930
+ jr c, .asm_21930
+.asm_21927
+ ld a, [wSoundID]
+ cp [hl]
+ jr z, .asm_21930
+ jr c, .asm_21930
ret
-
-Audio2_endchannel:
- call Audio2_GetNextMusicByte
- ld d, a
- cp $ff ; is this command an endchannel?
- jp nz, Audio2_callchannel ; no
- ld b, $0 ; yes
- ld hl, wChannelFlags1
- add hl, bc
- bit 1, [hl]
- jr nz, .returnFromCall
+.asm_21930
+ call InitSFXVariables
ld a, c
- cp CH3
- jr nc, .noiseOrSfxChannel
- jr .asm_219c0
-.noiseOrSfxChannel
- res 2, [hl]
- ld hl, wChannelFlags2
- add hl, bc
- res 0, [hl]
- cp CH6
- jr nz, .notSfxChannel3
- ld a, $0
- ld [rNR30], a
- ld a, $80
- ld [rNR30], a
-.notSfxChannel3
- jr nz, .asm_219a3
- ld a, [wDisableChannelOutputWhenSfxEnds]
and a
- jr z, .asm_219a3
- xor a
- ld [wDisableChannelOutputWhenSfxEnds], a
- jr .asm_219c0
-.asm_219a3
- jr .asm_219c9
-.returnFromCall
- res 1, [hl]
- ld d, $0
- ld a, c
- add a
- ld e, a
- ld hl, wChannelCommandPointers
- add hl, de
- push hl ; store current channel address
- ld hl, wChannelReturnAddresses
- add hl, de
- ld e, l
- ld d, h
- pop hl
- ld a, [de]
- ld [hli], a
- inc de
- ld a, [de]
- ld [hl], a ; loads channel address to return to
- jp Audio2_endchannel
-.asm_219c0
- ld hl, Unknown_222de
- add hl, bc
- ld a, [rNR51]
- and [hl]
- ld [rNR51], a
-.asm_219c9
- ld a, [wChannelSoundIDs + CH4]
- cp $14
- jr nc, .asm_219d2
- jr .asm_219ef
-.asm_219d2
- ld a, [wChannelSoundIDs + CH4]
- cp $86
- jr z, .asm_219ef
- jr c, .asm_219dd
- jr .asm_219ef
-.asm_219dd
- ld a, c
- cp CH4
- jr z, .asm_219e6
- call Audio2_21e6d
- ret c
-.asm_219e6
- ld a, [wSavedVolume]
- ld [rNR50], a
- xor a
- ld [wSavedVolume], a
-.asm_219ef
- ld hl, wChannelSoundIDs
- add hl, bc
- ld [hl], b
+ jp z, Audio2_21940
+ dec c
+ jp .asm_218f4
+
+Audio2_2193c:
+ call StopAllAudio
ret
-Audio2_callchannel:
- cp $fd ; is this command a callchannel?
- jp nz, Audio2_loopchannel ; no
- call Audio2_GetNextMusicByte ; yes
- push af
- call Audio2_GetNextMusicByte
- ld d, a
- pop af
- ld e, a
- push de ; store pointer
- ld d, $0
- ld a, c
- add a
+Audio2_21940:
+ ld a, [wSoundID]
+ ld l, a
ld e, a
- ld hl, wChannelCommandPointers
+ ld h, $0
+ ld d, h
+ add hl, hl
add hl, de
- push hl
- ld hl, wChannelReturnAddresses
+ ld de, SFX_Headers_2
add hl, de
ld e, l
ld d, h
- pop hl
- ld a, [hli]
- ld [de], a
- inc de
- ld a, [hld]
- ld [de], a ; copy current channel address
- pop de
- ld [hl], e
- inc hl
- ld [hl], d ; overwrite current address with pointer
- ld b, $0
- ld hl, wChannelFlags1
- add hl, bc
- set 1, [hl] ; set the call flag
- jp Audio2_endchannel
-
-Audio2_loopchannel:
- cp $fe ; is this command a loopchannel?
- jp nz, Audio2_notetype ; no
- call Audio2_GetNextMusicByte ; yes
- ld e, a
- and a
- jr z, .infiniteLoop
- ld b, $0
- ld hl, wChannelLoopCounters
- add hl, bc
- ld a, [hl]
- cp e
- jr nz, .loopAgain
- ld a, $1 ; if no more loops to make,
- ld [hl], a
- call Audio2_GetNextMusicByte ; skip pointer
- call Audio2_GetNextMusicByte
- jp Audio2_endchannel
-.loopAgain ; inc loop count
- inc a
- ld [hl], a
- ; fall through
-.infiniteLoop ; overwrite current address with pointer
- call Audio2_GetNextMusicByte
- push af
- call Audio2_GetNextMusicByte
- ld b, a
- ld d, $0
- ld a, c
- add a
- ld e, a
ld hl, wChannelCommandPointers
- add hl, de
- pop af
- ld [hli], a
- ld [hl], b
- jp Audio2_endchannel
-
-Audio2_notetype:
- and $f0
- cp $d0 ; is this command a notetype?
- jp nz, Audio2_toggleperfectpitch ; no
- ld a, d ; yes
- and $f
- ld b, $0
- ld hl, wChannelNoteSpeeds
- add hl, bc
- ld [hl], a ; store low nibble as speed
- ld a, c
- cp CH3
- jr z, .noiseChannel ; noise channel has 0 params
- call Audio2_GetNextMusicByte
- ld d, a
- ld a, c
- cp CH2
- jr z, .musicChannel3
- cp CH6
- jr nz, .notChannel3
- ld hl, wSfxWaveInstrument
- jr .sfxChannel3
-.musicChannel3
- ld hl, wMusicWaveInstrument
-.sfxChannel3
- ld a, d
- and $f
- ld [hl], a ; store low nibble of param as duty
- ld a, d
- and $30
- sla a
- ld d, a
- ; fall through
-
- ; if channel 3, store high nibble as volume
- ; else, store volume (high nibble) and fade (low nibble)
-.notChannel3
- ld b, $0
- ld hl, wChannelVolumes
- add hl, bc
- ld [hl], d
-.noiseChannel
- jp Audio2_endchannel
-
-Audio2_toggleperfectpitch:
- ld a, d
- cp $e8 ; is this command a toggleperfectpitch?
- jr nz, Audio2_vibrato ; no
- ld b, $0 ; yes
- ld hl, wChannelFlags1
- add hl, bc
- ld a, [hl]
- xor $1
- ld [hl], a ; flip bit 0 of wChannelFlags1
- jp Audio2_endchannel
-
-Audio2_vibrato:
- cp $ea ; is this command a vibrato?
- jr nz, Audio2_pitchbend ; no
- call Audio2_GetNextMusicByte ; yes
- ld b, $0
- ld hl, wChannelVibratoDelayCounters
- add hl, bc
- ld [hl], a ; store delay
- ld hl, wChannelVibratoDelayCounterReloadValues
- add hl, bc
- ld [hl], a ; store delay
- call Audio2_GetNextMusicByte
- ld d, a
- and $f0
- swap a
- ld b, $0
- ld hl, wChannelVibratoExtents
- add hl, bc
- srl a
- ld e, a
- adc b
- swap a
- or e
- ld [hl], a ; store rate as both high and low nibbles
- ld a, d
- and $f
- ld d, a
- ld hl, wChannelVibratoRates
- add hl, bc
- swap a
- or d
- ld [hl], a ; store depth as both high and low nibbles
- jp Audio2_endchannel
-
-Audio2_pitchbend:
- cp $eb ; is this command a pitchbend?
- jr nz, Audio2_duty ; no
- call Audio2_GetNextMusicByte ; yes
- ld b, $0
- ld hl, wChannelPitchBendLengthModifiers
- add hl, bc
- ld [hl], a ; store first param
- call Audio2_GetNextMusicByte
- ld d, a
- and $f0
- swap a
- ld b, a
- ld a, d
- and $f
- call Audio2_22017
- ld b, $0
- ld hl, wChannelPitchBendTargetFrequencyHighBytes
- add hl, bc
- ld [hl], d ; store unknown part of second param
- ld hl, wChannelPitchBendTargetFrequencyLowBytes
- add hl, bc
- ld [hl], e ; store unknown part of second param
- ld b, $0
- ld hl, wChannelFlags1
- add hl, bc
- set 4, [hl] ; set pitchbend flag
- call Audio2_GetNextMusicByte
- ld d, a
- jp Audio2_notelength
-
-Audio2_duty:
- cp $ec ; is this command a duty?
- jr nz, Audio2_tempo ; no
- call Audio2_GetNextMusicByte ; yes
- rrca
- rrca
- and $c0
- ld b, $0
- ld hl, wChannelDuties
- add hl, bc
- ld [hl], a ; store duty
- jp Audio2_endchannel
-
-Audio2_tempo:
- cp $ed ; is this command a tempo?
- jr nz, Audio2_stereopanning ; no
- ld a, c ; yes
- cp CH4
- jr nc, .sfxChannel
- call Audio2_GetNextMusicByte
- ld [wMusicTempo], a ; store first param
- call Audio2_GetNextMusicByte
- ld [wMusicTempo + 1], a ; store second param
- xor a
- ld [wChannelNoteDelayCountersFractionalPart], a ; clear RAM
- ld [wChannelNoteDelayCountersFractionalPart + 1], a
- ld [wChannelNoteDelayCountersFractionalPart + 2], a
- ld [wChannelNoteDelayCountersFractionalPart + 3], a
- jr .musicChannelDone
-.sfxChannel
- call Audio2_GetNextMusicByte
- ld [wSfxTempo], a ; store first param
- call Audio2_GetNextMusicByte
- ld [wSfxTempo + 1], a ; store second param
- xor a
- ld [wChannelNoteDelayCountersFractionalPart + 4], a ; clear RAM
- ld [wChannelNoteDelayCountersFractionalPart + 5], a
- ld [wChannelNoteDelayCountersFractionalPart + 6], a
- ld [wChannelNoteDelayCountersFractionalPart + 7], a
-.musicChannelDone
- jp Audio2_endchannel
-
-Audio2_stereopanning:
- cp $ee ; is this command a stereopanning?
- jr nz, Audio2_unknownmusic0xef ; no
- call Audio2_GetNextMusicByte ; yes
- ld [wStereoPanning], a ; store panning
- jp Audio2_endchannel
-
-; this appears to never be used
-Audio2_unknownmusic0xef:
- cp $ef ; is this command an unknownmusic0xef?
- jr nz, Audio2_dutycycle ; no
- call Audio2_GetNextMusicByte ; yes
- push bc
- call Audio2_PlaySound
- pop bc
- ld a, [wDisableChannelOutputWhenSfxEnds]
- and a
- jr nz, .skip
- ld a, [wChannelSoundIDs + CH7]
- ld [wDisableChannelOutputWhenSfxEnds], a
- xor a
- ld [wChannelSoundIDs + CH7], a
-.skip
- jp Audio2_endchannel
-
-Audio2_dutycycle:
- cp $fc ; is this command a dutycycle?
- jr nz, Audio2_volume ; no
- call Audio2_GetNextMusicByte ; yes
- ld b, $0
- ld hl, wChannelDutyCycles
- add hl, bc
- ld [hl], a ; store full cycle
- and $c0
- ld hl, wChannelDuties
- add hl, bc
- ld [hl], a ; store first duty
- ld hl, wChannelFlags1
- add hl, bc
- set 6, [hl] ; set dutycycle flag
- jp Audio2_endchannel
-
-Audio2_volume:
- cp $f0 ; is this command a volume?
- jr nz, Audio2_executemusic ; no
- call Audio2_GetNextMusicByte ; yes
- ld [rNR50], a ; store volume
- jp Audio2_endchannel
-
-Audio2_executemusic:
- cp $f8 ; is this command an executemusic?
- jr nz, Audio2_octave ; no
- ld b, $0 ; yes
- ld hl, wChannelFlags2
- add hl, bc
- set 0, [hl]
- jp Audio2_endchannel
-
-Audio2_octave:
- and $f0
- cp $e0 ; is this command an octave?
- jr nz, Audio2_unknownsfx0x20 ; no
- ld hl, wChannelOctaves ; yes
- ld b, $0
- add hl, bc
- ld a, d
- and $f
- ld [hl], a ; store low nibble as octave
- jp Audio2_endchannel
-
-Audio2_unknownsfx0x20:
- cp $20 ; is this command an unknownsfx0x20?
- jr nz, Audio2_unknownsfx0x10 ; no
- ld a, c
- cp CH3 ; is this a noise or sfx channel?
- jr c, Audio2_unknownsfx0x10 ; no
- ld b, $0
- ld hl, wChannelFlags2
- add hl, bc
- bit 0, [hl]
- jr nz, Audio2_unknownsfx0x10 ; no
- call Audio2_notelength
- ld d, a
- ld b, $0
- ld hl, wChannelDuties
- add hl, bc
- ld a, [hl]
- or d
- ld d, a
- ld b, $1
- call Audio2_21ff7
- ld [hl], d
- call Audio2_GetNextMusicByte
- ld d, a
- ld b, $2
- call Audio2_21ff7
- ld [hl], d
- call Audio2_GetNextMusicByte
- ld e, a
- ld a, c
- cp CH7
- ld a, $0
- jr z, .sfxNoiseChannel ; only two params for noise channel
- push de
- call Audio2_GetNextMusicByte
- pop de
-.sfxNoiseChannel
- ld d, a
- push de
- call Audio2_21daa
- call Audio2_21d79
- pop de
- call Audio2_21dcc
- ret
-
-Audio2_unknownsfx0x10:
- ld a, c
- cp CH4
- jr c, Audio2_note ; if not a sfx
- ld a, d
- cp $10 ; is this command a unknownsfx0x10?
- jr nz, Audio2_note ; no
- ld b, $0
- ld hl, wChannelFlags2
- add hl, bc
- bit 0, [hl]
- jr nz, Audio2_note ; no
- call Audio2_GetNextMusicByte ; yes
- ld [rNR10], a
- jp Audio2_endchannel
-
-Audio2_note:
- ld a, c
- cp CH3
- jr nz, Audio2_notelength ; if not noise channel
- ld a, d
- and $f0
- cp $b0 ; is this command a dnote?
- jr z, Audio2_dnote ; yes
- jr nc, Audio2_notelength ; no
- swap a
+ ld a, [de] ; get channel number
ld b, a
- ld a, d
- and $f
- ld d, a
+ rlca
+ rlca
+ and $3
+ ld c, a
ld a, b
- push de
- push bc
- jr asm_21c7e
-
-Audio2_dnote:
- ld a, d
and $f
+ ld b, c
+ inc b
+ inc de
+ ld c, $0
+.asm_21962
+ cp c
+ jr z, .asm_2196a
+ inc c
+ inc hl
+ inc hl
+ jr .asm_21962
+.asm_2196a
push af
+ push hl
push bc
- call Audio2_GetNextMusicByte ; get dnote instrument
-asm_21c7e
- ld d, a
- ld a, [wDisableChannelOutputWhenSfxEnds]
- and a
- jr nz, .asm_21c89
- ld a, d
- call Audio2_PlaySound
-.asm_21c89
- pop bc
- pop de
-
-Audio2_notelength:
- ld a, d
- push af
- and $f
- inc a
ld b, $0
- ld e, a ; store note length (in 16ths)
- ld d, b
- ld hl, wChannelNoteSpeeds
- add hl, bc
- ld a, [hl]
- ld l, b
- call Audio2_22006
- ld a, c
- cp CH4
- jr nc, .sfxChannel
- ld a, [wMusicTempo]
- ld d, a
- ld a, [wMusicTempo + 1]
- ld e, a
- jr .skip
-.sfxChannel
- ld d, $1
- ld e, $0
- cp CH7
- jr z, .skip ; if noise channel
- call Audio2_21e2f
- ld a, [wSfxTempo]
- ld d, a
- ld a, [wSfxTempo + 1]
- ld e, a
-.skip
- ld a, l
- ld b, $0
- ld hl, wChannelNoteDelayCountersFractionalPart
- add hl, bc
- ld l, [hl]
- call Audio2_22006
- ld e, l
- ld d, h
- ld hl, wChannelNoteDelayCountersFractionalPart
- add hl, bc
- ld [hl], e
- ld a, d
- ld hl, wChannelNoteDelayCounters
- add hl, bc
- ld [hl], a
- ld hl, wChannelFlags2
- add hl, bc
- bit 0, [hl]
- jr nz, Audio2_notepitch
+ ld c, a
+ cp $3
+ jr c, .asm_2197a
ld hl, wChannelFlags1
add hl, bc
- bit 2, [hl]
- jr z, Audio2_notepitch
+ set 2, [hl]
+.asm_2197a
+ pop bc
pop hl
- ret
-
-Audio2_notepitch:
+ ld a, [de] ; get channel pointer
+ ld [hli], a
+ inc de
+ ld a, [de]
+ ld [hli], a
+ inc de
pop af
- and $f0
- cp $c0 ; compare to rest
- jr nz, .notRest
- ld a, c
- cp CH4
- jr nc, .sfxChannel
- ld hl, wChannelSoundIDs + CH4
- add hl, bc
- ld a, [hl]
- and a
- jr nz, .done
- ; fall through
-.sfxChannel
- ld a, c
- cp CH2
- jr z, .musicChannel3
- cp CH6
- jr nz, .notSfxChannel3
-.musicChannel3
+ push hl
+ push bc
ld b, $0
- ld hl, Unknown_222de
+ ld c, a
+ ld hl, wChannelSoundIDs
add hl, bc
- ld a, [rNR51]
- and [hl]
- ld [rNR51], a
- jr .done
-.notSfxChannel3
- ld b, $2
- call Audio2_21ff7
- ld a, $8
- ld [hli], a
- inc hl
- ld a, $80
+ ld a, [wSoundID]
ld [hl], a
-.done
- ret
-.notRest
- swap a
- ld b, $0
- ld hl, wChannelOctaves
- add hl, bc
- ld b, [hl]
- call Audio2_22017
- ld b, $0
- ld hl, wChannelFlags1
- add hl, bc
- bit 4, [hl]
- jr z, .asm_21d39
- call Audio2_21f4e
-.asm_21d39
- push de
- ld a, c
- cp CH4
- jr nc, .skip ; if sfx channel
- ld hl, wChannelSoundIDs + CH4
- ld d, $0
- ld e, a
- add hl, de
- ld a, [hl]
- and a
- jr nz, .asm_21d4c
- jr .skip
-.asm_21d4c
- pop de
- ret
-.skip
- ld b, $0
- ld hl, wChannelVolumes
- add hl, bc
- ld d, [hl]
- ld b, $2
- call Audio2_21ff7
- ld [hl], d
- call Audio2_21daa
- call Audio2_21d79
- pop de
- ld b, $0
- ld hl, wChannelFlags1
- add hl, bc
- bit 0, [hl] ; has toggleperfectpitch been used?
- jr z, .skip2
- inc e ; if yes, increment the pitch by 1
- jr nc, .skip2
- inc d
-.skip2
- ld hl, wChannelFrequencyLowBytes
- add hl, bc
- ld [hl], e
- call Audio2_21dcc
- ret
-
-Audio2_21d79:
- ld b, $0
- ld hl, Unknown_222e6
- add hl, bc
- ld a, [rNR51]
- or [hl]
- ld d, a
- ld a, c
- cp CH7
- jr z, .sfxNoiseChannel
- cp CH4
- jr nc, .skip ; if sfx channel
- ld hl, wChannelSoundIDs + CH4
- add hl, bc
- ld a, [hl]
+ pop bc
+ pop hl
+ inc c
+ dec b
+ ld a, b
and a
- jr nz, .skip
-.sfxNoiseChannel
- ld a, [wStereoPanning]
- ld hl, Unknown_222e6
- add hl, bc
- and [hl]
- ld d, a
- ld a, [rNR51]
- ld hl, Unknown_222de
- add hl, bc
- and [hl]
- or d
- ld d, a
-.skip
- ld a, d
- ld [rNR51], a
- ret
-
-Audio2_21daa:
- ld b, $0
- ld hl, wChannelNoteDelayCounters
- add hl, bc
- ld d, [hl]
- ld a, c
- cp CH2
- jr z, .channel3 ; if music channel 3
- cp CH6
- jr z, .channel3 ; if sfx channel 3
- ld a, d
- and $3f
- ld d, a
- ld hl, wChannelDuties
- add hl, bc
- ld a, [hl]
- or d
- ld d, a
-.channel3
- ld b, $1
- call Audio2_21ff7
- ld [hl], d
- ret
-
-Audio2_21dcc:
- ld a, c
- cp CH2
- jr z, .channel3
- cp CH6
- jr nz, .notSfxChannel3
- ; fall through
-.channel3
- push de
- ld de, wMusicWaveInstrument
- cp CH2
- jr z, .musicChannel3
- ld de, wSfxWaveInstrument
-.musicChannel3
- ld a, [de]
- add a
- ld d, $0
- ld e, a
- ld hl, Audio2_WavePointers
- add hl, de
- ld e, [hl]
- inc hl
- ld d, [hl]
- ld hl, $ff30
- ld b, $f
- ld a, $0
- ld [rNR30], a
-.loop
ld a, [de]
inc de
+ jr nz, .asm_21962
+ ld a, [wSoundID]
+ cp $14
+ jr nc, .asm_219a3
+ jr .asm_219cd
+.asm_219a3
+ ld a, [wSoundID]
+ cp $86
+ jr z, .asm_219cd
+ jr c, .asm_219ae
+ jr .asm_219cd
+.asm_219ae
+ ld hl, wChannelSoundIDs + CH4
+ ld [hli], a
+ ld [hli], a
ld [hli], a
- ld a, b
- dec b
- and a
- jr nz, .loop
- ld a, $80
- ld [rNR30], a
- pop de
-.notSfxChannel3
- ld a, d
- or $80
- and $c7
- ld d, a
- ld b, $3
- call Audio2_21ff7
- ld [hl], e
- inc hl
- ld [hl], d
- ld a, c
- cp CH4
- jr c, .musicChannel
- call Audio2_21e56
-.musicChannel
- ret
-
-Audio2_21e19:
- ld a, c
- cp CH4
- jr nz, .asm_21e2e
- ld a, [wLowHealthAlarm]
- bit 7, a
- jr z, .asm_21e2e
- xor a
- ld [wFrequencyModifier], a
- ld a, $80
- ld [wTempoModifier], a
-.asm_21e2e
- ret
-
-Audio2_21e2f:
- call Audio2_21e8b
- jr c, .asm_21e39
- call Audio2_21e9f
- jr nc, .asm_21e4c
-.asm_21e39
- ld d, $0
- ld a, [wTempoModifier]
- add $80
- jr nc, .asm_21e43
- inc d
-.asm_21e43
- ld [wSfxTempo + 1], a
- ld a, d
- ld [wSfxTempo], a
- jr .asm_21e55
-.asm_21e4c
- xor a
- ld [wSfxTempo + 1], a
- ld a, $1
- ld [wSfxTempo], a
-.asm_21e55
- ret
-
-Audio2_21e56:
- call Audio2_21e8b
- jr c, .asm_21e60
- call Audio2_21e9f
- jr nc, .asm_21e6c
-.asm_21e60
- ld a, [wFrequencyModifier]
- add e
- jr nc, .asm_21e67
- inc d
-.asm_21e67
- dec hl
- ld e, a
- ld [hl], e
- inc hl
- ld [hl], d
-.asm_21e6c
- ret
-
-Audio2_21e6d:
- call Audio2_21e8b
- jr nc, .asm_21e88
- ld hl, wChannelCommandPointers
- ld e, c
- ld d, $0
- sla e
- rl d
- add hl, de
- ld a, [hl]
- sub $1
ld [hl], a
+ ld hl, wChannelCommandPointers + CH6 * 2 ; sfx noise channel pointer
+ ld de, Noise2_endchannel
+ ld [hl], e
inc hl
- ld a, [hl]
- sbc $0
- ld [hl], a
- scf
- ret
-.asm_21e88
- scf
- ccf
- ret
-
-Audio2_21e8b:
- ld a, [wChannelSoundIDs + CH4]
- cp $14
- jr nc, .asm_21e94
- jr .asm_21e9a
-.asm_21e94
- cp $86
- jr z, .asm_21e9a
- jr c, .asm_21e9d
-.asm_21e9a
- scf
- ccf
- ret
-.asm_21e9d
- scf
+ ld [hl], d ; overwrite pointer to point to endchannel
+ ld a, [wSavedVolume]
+ and a
+ jr nz, .asm_219cd
+ ld a, [rNR50]
+ ld [wSavedVolume], a
+ ld a, $77
+ ld [rNR50], a
+.asm_219cd
ret
-Audio2_21e9f:
- ld a, [wChannelSoundIDs + CH7]
- ld b, a
- ld a, [wChannelSoundIDs + CH4]
- or b
- cp $9d
- jr nc, .asm_21ead
- jr .asm_21eb3
-.asm_21ead
- cp $ea
- jr z, .asm_21eb3
- jr c, .asm_21eb6
-.asm_21eb3
- scf
- ccf
- ret
-.asm_21eb6
- scf
- ret
+Noise2_endchannel:
+ endchannel
-Audio2_ApplyPitchBend:
- ld hl, wChannelFlags1
- add hl, bc
- bit 5, [hl]
- jp nz, .asm_21eff
- ld hl, wChannelPitchBendCurrentFrequencyLowBytes
- add hl, bc
- ld e, [hl]
- ld hl, wChannelPitchBendCurrentFrequencyHighBytes
- add hl, bc
- ld d, [hl]
- ld hl, wChannelPitchBendFrequencySteps
- add hl, bc
- ld l, [hl]
- ld h, b
- add hl, de
- ld d, h
- ld e, l
- ld hl, wChannelPitchBendCurrentFrequencyFractionalPart
- add hl, bc
- push hl
- ld hl, wChannelPitchBendFrequencyStepsFractionalPart
- add hl, bc
- ld a, [hl]
- pop hl
- add [hl]
- ld [hl], a
- ld a, $0
- adc e
- ld e, a
- ld a, $0
- adc d
- ld d, a
- ld hl, wChannelPitchBendTargetFrequencyHighBytes
- add hl, bc
- ld a, [hl]
- cp d
- jp c, .asm_21f45
- jr nz, .asm_21f32
- ld hl, wChannelPitchBendTargetFrequencyLowBytes
- add hl, bc
- ld a, [hl]
- cp e
- jp c, .asm_21f45
- jr .asm_21f32
-.asm_21eff
- ld hl, wChannelPitchBendCurrentFrequencyLowBytes
- add hl, bc
- ld a, [hl]
- ld hl, wChannelPitchBendCurrentFrequencyHighBytes
- add hl, bc
- ld d, [hl]
- ld hl, wChannelPitchBendFrequencySteps
- add hl, bc
- ld e, [hl]
- sub e
- ld e, a
- ld a, d
- sbc b
- ld d, a
- ld hl, wChannelPitchBendFrequencyStepsFractionalPart
- add hl, bc
- ld a, [hl]
- add a
- ld [hl], a
- ld a, e
- sbc b
- ld e, a
- ld a, d
- sbc b
- ld d, a
- ld hl, wChannelPitchBendTargetFrequencyHighBytes
- add hl, bc
- ld a, d
- cp [hl]
- jr c, .asm_21f45
- jr nz, .asm_21f32
- ld hl, wChannelPitchBendTargetFrequencyLowBytes
- add hl, bc
- ld a, e
- cp [hl]
- jr c, .asm_21f45
-.asm_21f32
- ld hl, wChannelPitchBendCurrentFrequencyLowBytes
- add hl, bc
- ld [hl], e
- ld hl, wChannelPitchBendCurrentFrequencyHighBytes
- add hl, bc
- ld [hl], d
- ld b, $3
- call Audio2_21ff7
+Music_PokeFluteInBattle::
+ ; begin playing the "caught mon" sound effect
+ ld a, SFX_CAUGHT_MON
+ call PlaySoundWaitForCurrent
+ ; then immediately overwrtie the channel pointers
+ ld hl, wChannelCommandPointers + CH4 * 2
+ ld de, SFX_08_PokeFlute_Ch1
+ call Audio2_OverwriteChannelPointer
+ ld de, SFX_08_PokeFlute_Ch2
+ call Audio2_OverwriteChannelPointer
+ ld de, SFX_08_PokeFlute_Ch3
+
+Audio2_OverwriteChannelPointer:
ld a, e
ld [hli], a
- ld [hl], d
- ret
-.asm_21f45
- ld hl, wChannelFlags1
- add hl, bc
- res 4, [hl]
- res 5, [hl]
- ret
-
-Audio2_21f4e:
- ld hl, wChannelPitchBendCurrentFrequencyHighBytes
- add hl, bc
- ld [hl], d
- ld hl, wChannelPitchBendCurrentFrequencyLowBytes
- add hl, bc
- ld [hl], e
- ld hl, wChannelNoteDelayCounters
- add hl, bc
- ld a, [hl]
- ld hl, wChannelPitchBendLengthModifiers
- add hl, bc
- sub [hl]
- jr nc, .asm_21f66
- ld a, $1
-.asm_21f66
- ld [hl], a
- ld hl, wChannelPitchBendTargetFrequencyLowBytes
- add hl, bc
- ld a, e
- sub [hl]
- ld e, a
- ld a, d
- sbc b
- ld hl, wChannelPitchBendTargetFrequencyHighBytes
- add hl, bc
- sub [hl]
- jr c, .asm_21f82
- ld d, a
- ld b, $0
- ld hl, wChannelFlags1
- add hl, bc
- set 5, [hl]
- jr .asm_21fa5
-.asm_21f82
- ld hl, wChannelPitchBendCurrentFrequencyHighBytes
- add hl, bc
- ld d, [hl]
- ld hl, wChannelPitchBendCurrentFrequencyLowBytes
- add hl, bc
- ld e, [hl]
- ld hl, wChannelPitchBendTargetFrequencyLowBytes
- add hl, bc
- ld a, [hl]
- sub e
- ld e, a
ld a, d
- sbc b
- ld d, a
- ld hl, wChannelPitchBendTargetFrequencyHighBytes
- add hl, bc
- ld a, [hl]
- sub d
- ld d, a
- ld b, $0
- ld hl, wChannelFlags1
- add hl, bc
- res 5, [hl]
-.asm_21fa5
- ld hl, wChannelPitchBendLengthModifiers
- add hl, bc
-.asm_21fa9
- inc b
- ld a, e
- sub [hl]
- ld e, a
- jr nc, .asm_21fa9
- ld a, d
- and a
- jr z, .asm_21fb7
- dec a
- ld d, a
- jr .asm_21fa9
-.asm_21fb7
- ld a, e
- add [hl]
- ld d, b
- ld b, $0
- ld hl, wChannelPitchBendFrequencySteps
- add hl, bc
- ld [hl], d
- ld hl, wChannelPitchBendFrequencyStepsFractionalPart
- add hl, bc
- ld [hl], a
- ld hl, wChannelPitchBendCurrentFrequencyFractionalPart
- add hl, bc
- ld [hl], a
- ret
-
-Audio2_ApplyDutyCycle:
- ld b, $0
- ld hl, wChannelDutyCycles
- add hl, bc
- ld a, [hl]
- rlca
- rlca
- ld [hl], a
- and $c0
- ld d, a
- ld b, $1
- call Audio2_21ff7
- ld a, [hl]
- and $3f
- or d
- ld [hl], a
- ret
-
-Audio2_GetNextMusicByte:
- ld d, $0
- ld a, c
- add a
- ld e, a
- ld hl, wChannelCommandPointers
- add hl, de
- ld a, [hli]
- ld e, a
- ld a, [hld]
- ld d, a
- ld a, [de] ; get next music command
- inc de
- ld [hl], e ; store address of next command
- inc hl
- ld [hl], d
- ret
-
-Audio2_21ff7:
- ld a, c
- ld hl, Unknown_222d6
- add l
- jr nc, .noCarry
- inc h
-.noCarry
- ld l, a
- ld a, [hl]
- add b
- ld l, a
- ld h, $ff
+ ld [hli], a
ret
-Audio2_22006:
- ld h, $0
-.loop
- srl a
- jr nc, .noCarry
- add hl, de
-.noCarry
- sla e
- rl d
- and a
- jr z, .done
- jr .loop
-.done
- ret
+INCLUDE "audio/sfx/pokeflute_ch1_ch2.asm"
-Audio2_22017:
- ld h, $0
- ld l, a
- add hl, hl
- ld d, h
- ld e, l
- ld hl, Audio2_Pitches
- add hl, de
- ld e, [hl]
- inc hl
- ld d, [hl]
- ld a, b
-.loop
- cp CH7
- jr z, .done
- sra d
- rr e
- inc a
- jr .loop
-.done
- ld a, $8
- add d
- ld d, a
- ret
-
-Audio2_PlaySound::
- ld [wSoundID], a
- cp $ff
- jp z, Audio2_221f3
- cp $e9
- jp z, Audio2_2210d
- jp c, Audio2_2210d
- cp $fe
- jr z, .asm_2204c
- jp nc, Audio2_2210d
-.asm_2204c
+Audio2_InitMusicVariables::
xor a
ld [wUnusedC000], a
ld [wDisableChannelOutputWhenSfxEnds], a
@@ -1406,67 +279,9 @@ Audio2_PlaySound::
ld [rNR30], a
ld a, $77
ld [rNR50], a
- jp Audio2_2224e
-
-Audio2_2210d:
- ld l, a
- ld e, a
- ld h, $0
- ld d, h
- add hl, hl
- add hl, de
- ld de, SFX_Headers_2
- add hl, de
- ld a, h
- ld [wSfxHeaderPointer], a
- ld a, l
- ld [wSfxHeaderPointer + 1], a
- ld a, [hl]
- and $c0
- rlca
- rlca
- ld c, a
-.asm_22126
- ld d, c
- ld a, c
- add a
- add c
- ld c, a
- ld b, $0
- ld a, [wSfxHeaderPointer]
- ld h, a
- ld a, [wSfxHeaderPointer + 1]
- ld l, a
- add hl, bc
- ld c, d
- ld a, [hl]
- and $f
- ld e, a
- ld d, $0
- ld hl, wChannelSoundIDs
- add hl, de
- ld a, [hl]
- and a
- jr z, .asm_22162
- ld a, e
- cp $7
- jr nz, .asm_22159
- ld a, [wSoundID]
- cp $14
- jr nc, .asm_22152
ret
-.asm_22152
- ld a, [hl]
- cp $14
- jr z, .asm_22162
- jr c, .asm_22162
-.asm_22159
- ld a, [wSoundID]
- cp [hl]
- jr z, .asm_22162
- jr c, .asm_22162
- ret
-.asm_22162
+
+Audio2_InitSFXVariables::
xor a
push de
ld h, d
@@ -1549,17 +364,12 @@ Audio2_2210d:
ld [hl], a
ld a, e
cp $4
- jr nz, .asm_221ea
+ ret nz
ld a, $8
ld [rNR10], a
-.asm_221ea
- ld a, c
- and a
- jp z, Audio2_2224e
- dec c
- jp .asm_22126
+ ret
-Audio2_221f3:
+Audio2_StopAllAudio::
ld a, $80
ld [rNR52], a
ld [rNR30], a
@@ -1585,7 +395,7 @@ Audio2_221f3:
ld [wSfxTempo + 1], a
ld [wMusicWaveInstrument], a
ld [wSfxWaveInstrument], a
- ld d, $a0
+ ld d, $b0
ld hl, wChannelCommandPointers
call FillAudioRAM2
ld a, $1
@@ -1598,7 +408,6 @@ Audio2_221f3:
ld [wStereoPanning], a
ret
-; fills d bytes at hl with a
FillAudioRAM2:
ld b, d
.loop
@@ -1606,129 +415,3 @@ FillAudioRAM2:
dec b
jr nz, .loop
ret
-
-Audio2_2224e:
- ld a, [wSoundID]
- ld l, a
- ld e, a
- ld h, $0
- ld d, h
- add hl, hl
- add hl, de
- ld de, SFX_Headers_2
- add hl, de
- ld e, l
- ld d, h
- ld hl, wChannelCommandPointers
- ld a, [de] ; get channel number
- ld b, a
- rlca
- rlca
- and $3
- ld c, a
- ld a, b
- and $f
- ld b, c
- inc b
- inc de
- ld c, $0
-.asm_22270
- cp c
- jr z, .asm_22278
- inc c
- inc hl
- inc hl
- jr .asm_22270
-.asm_22278
- push hl
- push bc
- push af
- ld b, $0
- ld c, a
- ld hl, wChannelSoundIDs
- add hl, bc
- ld a, [wSoundID]
- ld [hl], a
- pop af
- cp $3
- jr c, .asm_22291
- ld hl, wChannelFlags1
- add hl, bc
- set 2, [hl]
-.asm_22291
- pop bc
- pop hl
- ld a, [de] ; get channel pointer
- ld [hli], a
- inc de
- ld a, [de]
- ld [hli], a
- inc de
- inc c
- dec b
- ld a, b
- and a
- ld a, [de]
- inc de
- jr nz, .asm_22270
- ld a, [wSoundID]
- cp $14
- jr nc, .asm_222aa
- jr .asm_222d4
-.asm_222aa
- ld a, [wSoundID]
- cp $86
- jr z, .asm_222d4
- jr c, .asm_222b5
- jr .asm_222d4
-.asm_222b5
- ld hl, wChannelSoundIDs + CH4
- ld [hli], a
- ld [hli], a
- ld [hli], a
- ld [hl], a
- ld hl, wChannelCommandPointers + CH6 * 2 ; sfx noise channel pointer
- ld de, Noise2_endchannel
- ld [hl], e
- inc hl
- ld [hl], d ; overwrite pointer to point to endchannel
- ld a, [wSavedVolume]
- and a
- jr nz, .asm_222d4
- ld a, [rNR50]
- ld [wSavedVolume], a
- ld a, $77
- ld [rNR50], a
-.asm_222d4
- ret
-
-Noise2_endchannel:
- endchannel
-
-Unknown_222d6:
- db $10, $15, $1A, $1F ; channels 0-3
- db $10, $15, $1A, $1F ; channels 4-7
-
-Unknown_222de:
- db $EE, $DD, $BB, $77 ; channels 0-3
- db $EE, $DD, $BB, $77 ; channels 4-7
-
-Unknown_222e6:
- db $11, $22, $44, $88 ; channels 0-3
- db $11, $22, $44, $88 ; channels 4-7
-
-Audio2_Pitches:
- dw $F82C ; C_
- dw $F89D ; C#
- dw $F907 ; D_
- dw $F96B ; D#
- dw $F9CA ; E_
- dw $FA23 ; F_
- dw $FA77 ; F#
- dw $FAC7 ; G_
- dw $FB12 ; G#
- dw $FB58 ; A_
- dw $FB9B ; A#
- dw $FBDA ; B_
-
-
diff --git a/audio/engine_3.asm b/audio/engine_3.asm
index 33baa5c6..418ee10b 100644
--- a/audio/engine_3.asm
+++ b/audio/engine_3.asm
@@ -1,1363 +1,21 @@
; The third of three duplicated sound engines.
-Audio3_UpdateMusic::
- ld c, CH0
-.loop
- ld b, $0
- ld hl, wChannelSoundIDs
- add hl, bc
- ld a, [hl]
- and a
- jr z, .nextChannel
- ld a, c
- cp CH4
- jr nc, .applyAffects ; if sfx channel
- ld a, [wMuteAudioAndPauseMusic]
- and a
- jr z, .applyAffects
- bit 7, a
- jr nz, .nextChannel
- set 7, a
- ld [wMuteAudioAndPauseMusic], a
- xor a
- ld [rNR51], a
- ld [rNR30], a
- ld a, $80
- ld [rNR30], a
- jr .nextChannel
-.applyAffects
- call Audio3_ApplyMusicAffects
-.nextChannel
- ld a, c
- inc c ; inc channel number
- cp CH7
- jr nz, .loop
- ret
-
-; this routine checks flags for music effects currently applied
-; to the channel and calls certain functions based on flags.
-; known flags for wChannelFlags1:
-; 0: toggleperfectpitch has been used
-; 1: call has been used
-; 3: a toggle used only by this routine for vibrato
-; 4: pitchbend flag
-; 6: dutycycle flag
-Audio3_ApplyMusicAffects:
- ld b, $0
- ld hl, wChannelNoteDelayCounters ; delay until next note
- add hl, bc
- ld a, [hl]
- cp $1 ; if delay is 1, play next note
- jp z, Audio3_PlayNextNote
- dec a ; otherwise, decrease the delay timer
- ld [hl], a
- ld a, c
- cp CH4
- jr nc, .startChecks ; if a sfx channel
- ld hl, wChannelSoundIDs + CH4
- add hl, bc
- ld a, [hl]
- and a
- jr z, .startChecks
- ret
-.startChecks
- ld hl, wChannelFlags1
- add hl, bc
- bit 6, [hl] ; dutycycle
- jr z, .checkForExecuteMusic
- call Audio3_ApplyDutyCycle
-.checkForExecuteMusic
- ld b, $0
- ld hl, wChannelFlags2
- add hl, bc
- bit 0, [hl]
- jr nz, .checkForPitchBend
- ld hl, wChannelFlags1
- add hl, bc
- bit 2, [hl]
- jr nz, .disablePitchBendVibrato
-.checkForPitchBend
- ld hl, wChannelFlags1
- add hl, bc
- bit 4, [hl] ; pitchbend
- jr z, .checkVibratoDelay
- jp Audio3_ApplyPitchBend
-.checkVibratoDelay
- ld hl, wChannelVibratoDelayCounters ; vibrato delay
- add hl, bc
- ld a, [hl]
- and a ; check if delay is over
- jr z, .checkForVibrato
- dec [hl] ; otherwise, dec delay
-.disablePitchBendVibrato
- ret
-.checkForVibrato
- ld hl, wChannelVibratoExtents ; vibrato rate
- add hl, bc
- ld a, [hl]
- and a
- jr nz, .vibrato
- ret ; no vibrato
-.vibrato
- ld d, a
- ld hl, wChannelVibratoRates
- add hl, bc
- ld a, [hl]
- and $f
- and a
- jr z, .vibratoAlreadyDone
- dec [hl] ; apply vibrato pitch change
- ret
-.vibratoAlreadyDone
- ld a, [hl]
- swap [hl]
- or [hl]
- ld [hl], a ; reset the vibrato value and start again
- ld hl, wChannelFrequencyLowBytes
- add hl, bc
- ld e, [hl] ; get note pitch
- ld hl, wChannelFlags1
- add hl, bc
- bit 3, [hl] ; this is the only code that sets/resets bit three so
- jr z, .unset ; it continuously alternates which path it takes
- res 3, [hl]
- ld a, d
- and $f
- ld d, a
- ld a, e
- sub d
- jr nc, .noCarry
- ld a, $0
-.noCarry
- jr .done
-.unset
- set 3, [hl]
- ld a, d
- and $f0
- swap a
- add e
- jr nc, .done
- ld a, $ff
-.done
- ld d, a
- ld b, $3
- call Audio3_7d8ac
- ld [hl], d
- ret
-
-; this routine executes all music commands that take up no time,
-; like tempo changes, duty changes etc. and doesn't return
-; until the first note is reached
-Audio3_PlayNextNote:
- ld hl, wChannelVibratoDelayCounterReloadValues
- add hl, bc
- ld a, [hl]
- ld hl, wChannelVibratoDelayCounters
- add hl, bc
- ld [hl], a
- ld hl, wChannelFlags1
- add hl, bc
- res 4, [hl]
- res 5, [hl]
- call Audio3_endchannel
- ret
-
-Audio3_endchannel:
- call Audio3_GetNextMusicByte
- ld d, a
- cp $ff ; is this command an endchannel?
- jp nz, Audio3_callchannel ; no
- ld b, $0 ; yes
- ld hl, wChannelFlags1
- add hl, bc
- bit 1, [hl]
- jr nz, .returnFromCall
- ld a, c
- cp CH3
- jr nc, .noiseOrSfxChannel
- jr .asm_7d2b3
-.noiseOrSfxChannel
- res 2, [hl]
- ld hl, wChannelFlags2
- add hl, bc
- res 0, [hl]
- cp CH6
- jr nz, .notSfxChannel3
- ld a, $0
- ld [rNR30], a
- ld a, $80
- ld [rNR30], a
-.notSfxChannel3
- jr nz, .asm_7d296
- ld a, [wDisableChannelOutputWhenSfxEnds]
- and a
- jr z, .asm_7d296
- xor a
- ld [wDisableChannelOutputWhenSfxEnds], a
- jr .asm_7d2b3
-.asm_7d296
- jr .asm_7d2bc
-.returnFromCall
- res 1, [hl]
- ld d, $0
- ld a, c
- add a
- ld e, a
- ld hl, wChannelCommandPointers
- add hl, de
- push hl ; store current channel address
- ld hl, wChannelReturnAddresses
- add hl, de
- ld e, l
- ld d, h
- pop hl
- ld a, [de]
- ld [hli], a
- inc de
- ld a, [de]
- ld [hl], a ; loads channel address to return to
- jp Audio3_endchannel
-.asm_7d2b3
- ld hl, Unknown_7db93
- add hl, bc
- ld a, [rNR51]
- and [hl]
- ld [rNR51], a
-.asm_7d2bc
- ld a, [wChannelSoundIDs + CH4]
- cp $14
- jr nc, .asm_7d2c5
- jr .asm_7d2e2
-.asm_7d2c5
- ld a, [wChannelSoundIDs + CH4]
- cp $86
- jr z, .asm_7d2e2
- jr c, .asm_7d2d0
- jr .asm_7d2e2
-.asm_7d2d0
- ld a, c
- cp CH4
- jr z, .asm_7d2d9
- call Audio3_7d73b
- ret c
-.asm_7d2d9
- ld a, [wSavedVolume]
- ld [rNR50], a
- xor a
- ld [wSavedVolume], a
-.asm_7d2e2
- ld hl, wChannelSoundIDs
- add hl, bc
- ld [hl], b
- ret
-
-Audio3_callchannel:
- cp $fd ; is this command a callchannel?
- jp nz, Audio3_loopchannel ; no
- call Audio3_GetNextMusicByte ; yes
- push af
- call Audio3_GetNextMusicByte
- ld d, a
- pop af
- ld e, a
- push de ; store pointer
- ld d, $0
- ld a, c
- add a
- ld e, a
- ld hl, wChannelCommandPointers
- add hl, de
- push hl
- ld hl, wChannelReturnAddresses
- add hl, de
- ld e, l
- ld d, h
- pop hl
- ld a, [hli]
- ld [de], a
- inc de
- ld a, [hld]
- ld [de], a ; copy current channel address
- pop de
- ld [hl], e
- inc hl
- ld [hl], d ; overwrite current address with pointer
- ld b, $0
- ld hl, wChannelFlags1
- add hl, bc
- set 1, [hl] ; set the call flag
- jp Audio3_endchannel
-
-Audio3_loopchannel:
- cp $fe ; is this command a loopchannel?
- jp nz, Audio3_notetype ; no
- call Audio3_GetNextMusicByte ; yes
- ld e, a
- and a
- jr z, .infiniteLoop
- ld b, $0
- ld hl, wChannelLoopCounters
- add hl, bc
- ld a, [hl]
- cp e
- jr nz, .loopAgain
- ld a, $1 ; if no more loops to make
- ld [hl], a
- call Audio3_GetNextMusicByte ; skip pointer
- call Audio3_GetNextMusicByte
- jp Audio3_endchannel
-.loopAgain ; inc loop count
- inc a
- ld [hl], a
- ; fall through
-.infiniteLoop ; overwrite current address with pointer
- call Audio3_GetNextMusicByte
- push af
- call Audio3_GetNextMusicByte
- ld b, a
- ld d, $0
- ld a, c
- add a
- ld e, a
- ld hl, wChannelCommandPointers
- add hl, de
- pop af
- ld [hli], a
- ld [hl], b
- jp Audio3_endchannel
-
-Audio3_notetype:
- and $f0
- cp $d0 ; is this command a notetype?
- jp nz, Audio3_toggleperfectpitch ; no
- ld a, d ; yes
- and $f
- ld b, $0
- ld hl, wChannelNoteSpeeds
- add hl, bc
- ld [hl], a ; store low nibble as speed
- ld a, c
- cp CH3
- jr z, .noiseChannel ; noise channel has 0 params
- call Audio3_GetNextMusicByte
- ld d, a
- ld a, c
- cp CH2
- jr z, .musicChannel3
- cp CH6
- jr nz, .notChannel3
- ld hl, wSfxWaveInstrument
- jr .sfxChannel3
-.musicChannel3
- ld hl, wMusicWaveInstrument
-.sfxChannel3
- ld a, d
- and $f
- ld [hl], a ; store low nibble of param as duty
- ld a, d
- and $30
- sla a
- ld d, a
- ; fall through
-
- ; if channel 3, store high nibble as volume
- ; else, store volume (high nibble) and fade (low nibble)
-.notChannel3
- ld b, $0
- ld hl, wChannelVolumes
- add hl, bc
- ld [hl], d
-.noiseChannel
- jp Audio3_endchannel
-
-Audio3_toggleperfectpitch:
- ld a, d
- cp $e8 ; is this command a toggleperfectpitch?
- jr nz, Audio3_vibrato ; no
- ld b, $0 ; yes
- ld hl, wChannelFlags1
- add hl, bc
- ld a, [hl]
- xor $1
- ld [hl], a ; flip bit 0 of wChannelFlags1
- jp Audio3_endchannel
-
-Audio3_vibrato:
- cp $ea ; is this command a vibrato?
- jr nz, Audio3_pitchbend ; no
- call Audio3_GetNextMusicByte ; yes
- ld b, $0
- ld hl, wChannelVibratoDelayCounters
- add hl, bc
- ld [hl], a ; store delay
- ld hl, wChannelVibratoDelayCounterReloadValues
- add hl, bc
- ld [hl], a ; store delay
- call Audio3_GetNextMusicByte
- ld d, a
- and $f0
- swap a
- ld b, $0
- ld hl, wChannelVibratoExtents
- add hl, bc
- srl a
- ld e, a
- adc b
- swap a
- or e
- ld [hl], a ; store rate as both high and low nibbles
- ld a, d
- and $f
- ld d, a
- ld hl, wChannelVibratoRates
- add hl, bc
- swap a
- or d
- ld [hl], a ; store depth as both high and low nibbles
- jp Audio3_endchannel
-
-Audio3_pitchbend:
- cp $eb ; is this command a pitchbend?
- jr nz, Audio3_duty ; no
- call Audio3_GetNextMusicByte ; yes
- ld b, $0
- ld hl, wChannelPitchBendLengthModifiers
- add hl, bc
- ld [hl], a ; store first param
- call Audio3_GetNextMusicByte
- ld d, a
- and $f0
- swap a
- ld b, a
- ld a, d
- and $f
- call Audio3_7d8cc
- ld b, $0
- ld hl, wChannelPitchBendTargetFrequencyHighBytes
- add hl, bc
- ld [hl], d ; store unknown part of second param
- ld hl, wChannelPitchBendTargetFrequencyLowBytes
- add hl, bc
- ld [hl], e ; store unknown part of second param
- ld b, $0
- ld hl, wChannelFlags1
- add hl, bc
- set 4, [hl] ; set pitchbend flag
- call Audio3_GetNextMusicByte
- ld d, a
- jp Audio3_notelength
-
-Audio3_duty:
- cp $ec ; is this command a duty?
- jr nz, Audio3_tempo ; no
- call Audio3_GetNextMusicByte ; yes
- rrca
- rrca
- and $c0
- ld b, $0
- ld hl, wChannelDuties
- add hl, bc
- ld [hl], a ; store duty
- jp Audio3_endchannel
-
-Audio3_tempo:
- cp $ed ; is this command a tempo?
- jr nz, Audio3_stereopanning ; no
- ld a, c ; yes
- cp CH4
- jr nc, .sfxChannel
- call Audio3_GetNextMusicByte
- ld [wMusicTempo], a ; store first param
- call Audio3_GetNextMusicByte
- ld [wMusicTempo + 1], a ; store second param
- xor a
- ld [wChannelNoteDelayCountersFractionalPart], a ; clear RAM
- ld [wChannelNoteDelayCountersFractionalPart + 1], a
- ld [wChannelNoteDelayCountersFractionalPart + 2], a
- ld [wChannelNoteDelayCountersFractionalPart + 3], a
- jr .musicChannelDone
-.sfxChannel
- call Audio3_GetNextMusicByte
- ld [wSfxTempo], a ; store first param
- call Audio3_GetNextMusicByte
- ld [wSfxTempo + 1], a ; store second param
- xor a
- ld [wChannelNoteDelayCountersFractionalPart + 4], a ; clear RAM
- ld [wChannelNoteDelayCountersFractionalPart + 5], a
- ld [wChannelNoteDelayCountersFractionalPart + 6], a
- ld [wChannelNoteDelayCountersFractionalPart + 7], a
-.musicChannelDone
- jp Audio3_endchannel
-
-Audio3_stereopanning:
- cp $ee ; is this command a stereopanning?
- jr nz, Audio3_unknownmusic0xef ; no
- call Audio3_GetNextMusicByte ; yes
- ld [wStereoPanning], a ; store panning
- jp Audio3_endchannel
-
-; this appears to never be used
-Audio3_unknownmusic0xef:
- cp $ef ; is this command an unknownmusic0xef?
- jr nz, Audio3_dutycycle ; no
- call Audio3_GetNextMusicByte ; yes
- push bc
- call Audio3_PlaySound
- pop bc
- ld a, [wDisableChannelOutputWhenSfxEnds]
- and a
- jr nz, .skip
- ld a, [wChannelSoundIDs + CH7]
- ld [wDisableChannelOutputWhenSfxEnds], a
- xor a
- ld [wChannelSoundIDs + CH7], a
-.skip
- jp Audio3_endchannel
-
-Audio3_dutycycle:
- cp $fc ; is this command a dutycycle?
- jr nz, Audio3_volume ; no
- call Audio3_GetNextMusicByte ; yes
- ld b, $0
- ld hl, wChannelDutyCycles
- add hl, bc
- ld [hl], a ; store full cycle
- and $c0
- ld hl, wChannelDuties
- add hl, bc
- ld [hl], a ; store first duty
- ld hl, wChannelFlags1
- add hl, bc
- set 6, [hl] ; set duty flag
- jp Audio3_endchannel
-
-Audio3_volume:
- cp $f0 ; is this command a volume?
- jr nz, Audio3_executemusic ; no
- call Audio3_GetNextMusicByte ; yes
- ld [rNR50], a ; store volume
- jp Audio3_endchannel
-
-Audio3_executemusic:
- cp $f8 ; is this command an executemusic?
- jr nz, Audio3_octave ; no
- ld b, $0 ; yes
- ld hl, wChannelFlags2
- add hl, bc
- set 0, [hl]
- jp Audio3_endchannel
-
-Audio3_octave:
- and $f0
- cp $e0 ; is this command an octave?
- jr nz, Audio3_unknownsfx0x20 ; no
- ld hl, wChannelOctaves ; yes
- ld b, $0
- add hl, bc
- ld a, d
- and $f
- ld [hl], a ; store low nibble as octave
- jp Audio3_endchannel
-
-Audio3_unknownsfx0x20:
- cp $20 ; is this command an unknownsfx0x20?
- jr nz, Audio3_unknownsfx0x10 ; no
- ld a, c
- cp CH3 ; is this a noise or sfx channel?
- jr c, Audio3_unknownsfx0x10 ; no
- ld b, $0
- ld hl, wChannelFlags2
- add hl, bc
- bit 0, [hl]
- jr nz, Audio3_unknownsfx0x10 ; no
- call Audio3_notelength ; yes
- ld d, a
- ld b, $0
- ld hl, wChannelDuties
- add hl, bc
- ld a, [hl]
- or d
- ld d, a
- ld b, $1
- call Audio3_7d8ac
- ld [hl], d
- call Audio3_GetNextMusicByte
- ld d, a
- ld b, $2
- call Audio3_7d8ac
- ld [hl], d
- call Audio3_GetNextMusicByte
- ld e, a
- ld a, c
- cp CH7
- ld a, $0
- jr z, .sfxNoiseChannel ; only two params for noise channel
- push de
- call Audio3_GetNextMusicByte
- pop de
-.sfxNoiseChannel
- ld d, a
- push de
- call Audio3_7d69d
- call Audio3_7d66c
- pop de
- call Audio3_7d6bf
- ret
-
-Audio3_unknownsfx0x10:
- ld a, c
- cp CH4
- jr c, Audio3_note ; if not a sfx
- ld a, d
- cp $10 ; is this command an unknownsfx0x10?
- jr nz, Audio3_note ; no
- ld b, $0
- ld hl, wChannelFlags2
- add hl, bc
- bit 0, [hl]
- jr nz, Audio3_note ; no
- call Audio3_GetNextMusicByte ; yes
- ld [rNR10], a
- jp Audio3_endchannel
-
-Audio3_note:
- ld a, c
- cp CH3
- jr nz, Audio3_notelength ; if not noise channel
- ld a, d
- and $f0
- cp $b0 ; is this command a dnote?
- jr z, Audio3_dnote ; yes
- jr nc, Audio3_notelength ; no
- swap a
- ld b, a
- ld a, d
- and $f
- ld d, a
- ld a, b
- push de
- push bc
- jr asm_7d571
-
-Audio3_dnote:
- ld a, d
- and $f
- push af
- push bc
- call Audio3_GetNextMusicByte ; get dnote instrument
-asm_7d571
- ld d, a
- ld a, [wDisableChannelOutputWhenSfxEnds]
- and a
- jr nz, .asm_7d57c
- ld a, d
- call Audio3_PlaySound
-.asm_7d57c
- pop bc
- pop de
-
-Audio3_notelength:
- ld a, d
- push af
- and $f
- inc a
- ld b, $0
- ld e, a ; store note length (in 16ths)
- ld d, b
- ld hl, wChannelNoteSpeeds
- add hl, bc
- ld a, [hl]
- ld l, b
- call Audio3_7d8bb
- ld a, c
- cp CH4
- jr nc, .sfxChannel
- ld a, [wMusicTempo]
- ld d, a
- ld a, [wMusicTempo + 1]
- ld e, a
- jr .skip
-.sfxChannel
- ld d, $1
- ld e, $0
- cp CH7
- jr z, .skip ; if noise channel
- call Audio3_7d707
- ld a, [wSfxTempo]
- ld d, a
- ld a, [wSfxTempo + 1]
- ld e, a
-.skip
- ld a, l
- ld b, $0
- ld hl, wChannelNoteDelayCountersFractionalPart
- add hl, bc
- ld l, [hl]
- call Audio3_7d8bb
- ld e, l
- ld d, h
- ld hl, wChannelNoteDelayCountersFractionalPart
- add hl, bc
- ld [hl], e
- ld a, d
- ld hl, wChannelNoteDelayCounters
- add hl, bc
- ld [hl], a
- ld hl, wChannelFlags2
- add hl, bc
- bit 0, [hl]
- jr nz, Audio3_notepitch
- ld hl, wChannelFlags1
- add hl, bc
- bit 2, [hl]
- jr z, Audio3_notepitch
- pop hl
- ret
-
-Audio3_notepitch:
- pop af
- and $f0
- cp $c0 ; compare to rest
- jr nz, .notRest
- ld a, c
- cp CH4
- jr nc, .sfxChannel
- ld hl, wChannelSoundIDs + CH4
- add hl, bc
- ld a, [hl]
- and a
- jr nz, .quit
- ; fall through
-.sfxChannel
- ld a, c
- cp CH2
- jr z, .musicChannel3
- cp CH6
- jr nz, .notSfxChannel3
-.musicChannel3
- ld b, $0
- ld hl, Unknown_7db93
- add hl, bc
- ld a, [rNR51]
- and [hl]
- ld [rNR51], a
- jr .quit
-.notSfxChannel3
- ld b, $2
- call Audio3_7d8ac
- ld a, $8
- ld [hli], a
- inc hl
- ld a, $80
- ld [hl], a
-.quit
- ret
-.notRest
- swap a
- ld b, $0
- ld hl, wChannelOctaves
- add hl, bc
- ld b, [hl]
- call Audio3_7d8cc
- ld b, $0
- ld hl, wChannelFlags1
- add hl, bc
- bit 4, [hl]
- jr z, .asm_7d62c
- call Audio3_7d803
-.asm_7d62c
- push de
- ld a, c
- cp CH4
- jr nc, .skip ; if sfx Channel
- ld hl, wChannelSoundIDs + CH4
- ld d, $0
- ld e, a
- add hl, de
- ld a, [hl]
- and a
- jr nz, .done
- jr .skip
-.done
- pop de
- ret
-.skip
- ld b, $0
- ld hl, wChannelVolumes
- add hl, bc
- ld d, [hl]
- ld b, $2
- call Audio3_7d8ac
- ld [hl], d
- call Audio3_7d69d
- call Audio3_7d66c
- pop de
- ld b, $0
- ld hl, wChannelFlags1
- add hl, bc
- bit 0, [hl] ; has toggleperfectpitch been used?
- jr z, .skip2
- inc e ; if yes, increment the pitch by 1
- jr nc, .skip2
- inc d
-.skip2
- ld hl, wChannelFrequencyLowBytes
- add hl, bc
- ld [hl], e
- call Audio3_7d6bf
- ret
-
-Audio3_7d66c:
- ld b, $0
- ld hl, Unknown_7db9b
- add hl, bc
- ld a, [rNR51]
- or [hl]
- ld d, a
- ld a, c
- cp CH7
- jr z, .sfxNoiseChannel
- cp CH4
- jr nc, .skip ; if sfx channel
- ld hl, wChannelSoundIDs + CH4
- add hl, bc
- ld a, [hl]
- and a
- jr nz, .skip
-.sfxNoiseChannel
- ld a, [wStereoPanning]
- ld hl, Unknown_7db9b
- add hl, bc
- and [hl]
- ld d, a
- ld a, [rNR51]
- ld hl, Unknown_7db93
- add hl, bc
- and [hl]
- or d
- ld d, a
-.skip
- ld a, d
- ld [rNR51], a
- ret
-
-Audio3_7d69d:
- ld b, $0
- ld hl, wChannelNoteDelayCounters
- add hl, bc
- ld d, [hl]
- ld a, c
- cp CH2
- jr z, .channel3 ; if music channel 3
- cp CH6
- jr z, .channel3 ; if sfx channel 3
- ld a, d
- and $3f
- ld d, a
- ld hl, wChannelDuties
- add hl, bc
- ld a, [hl]
- or d
- ld d, a
-.channel3
- ld b, $1
- call Audio3_7d8ac
- ld [hl], d
- ret
-
-Audio3_7d6bf:
- ld a, c
- cp CH2
- jr z, .channel3
- cp CH6
- jr nz, .notSfxChannel3
- ; fall through
-.channel3
- push de
- ld de, wMusicWaveInstrument
- cp CH2
- jr z, .musicChannel3
- ld de, wSfxWaveInstrument
-.musicChannel3
- ld a, [de]
- add a
- ld d, $0
- ld e, a
- ld hl, Audio3_WavePointers
- add hl, de
- ld e, [hl]
- inc hl
- ld d, [hl]
- ld hl, $ff30
- ld b, $f
- ld a, $0
- ld [rNR30], a
-.loop
- ld a, [de]
- inc de
- ld [hli], a
- ld a, b
- dec b
- and a
- jr nz, .loop
- ld a, $80
- ld [rNR30], a
- pop de
-.notSfxChannel3
- ld a, d
- or $80
- and $c7
- ld d, a
- ld b, $3
- call Audio3_7d8ac
- ld [hl], e
- inc hl
- ld [hl], d
- call Audio3_7d729
- ret
-
-Audio3_7d707:
- call Audio3_7d759
- jr nc, .asm_7d71f
- ld d, $0
- ld a, [wTempoModifier]
- add $80
- jr nc, .asm_7d716
- inc d
-.asm_7d716
- ld [wSfxTempo + 1], a
- ld a, d
- ld [wSfxTempo], a
- jr .asm_7d728
-.asm_7d71f
- xor a
- ld [wSfxTempo + 1], a
- ld a, $1
- ld [wSfxTempo], a
-.asm_7d728
- ret
-
-Audio3_7d729:
- call Audio3_7d759
- jr nc, .asm_7d73a
- ld a, [wFrequencyModifier]
- add e
- jr nc, .asm_7d735
- inc d
-.asm_7d735
- dec hl
- ld e, a
- ld [hl], e
- inc hl
- ld [hl], d
-.asm_7d73a
- ret
-
-Audio3_7d73b:
- call Audio3_7d759
- jr nc, .asm_7d756
- ld hl, wChannelCommandPointers
- ld e, c
- ld d, $0
- sla e
- rl d
- add hl, de
- ld a, [hl]
- sub $1
- ld [hl], a
- inc hl
- ld a, [hl]
- sbc $0
- ld [hl], a
- scf
- ret
-.asm_7d756
- scf
- ccf
- ret
-
-Audio3_7d759:
- ld a, [wChannelSoundIDs + CH4]
- cp $14
- jr nc, .asm_7d762
- jr .asm_7d768
-.asm_7d762
- cp $86
- jr z, .asm_7d768
- jr c, .asm_7d76b
-.asm_7d768
- scf
- ccf
- ret
-.asm_7d76b
- scf
- ret
-
-Audio3_ApplyPitchBend:
- ld hl, wChannelFlags1
- add hl, bc
- bit 5, [hl]
- jp nz, .asm_7d7b4
- ld hl, wChannelPitchBendCurrentFrequencyLowBytes
- add hl, bc
- ld e, [hl]
- ld hl, wChannelPitchBendCurrentFrequencyHighBytes
- add hl, bc
- ld d, [hl]
- ld hl, wChannelPitchBendFrequencySteps
- add hl, bc
- ld l, [hl]
- ld h, b
- add hl, de
- ld d, h
- ld e, l
- ld hl, wChannelPitchBendCurrentFrequencyFractionalPart
- add hl, bc
- push hl
- ld hl, wChannelPitchBendFrequencyStepsFractionalPart
- add hl, bc
- ld a, [hl]
- pop hl
- add [hl]
- ld [hl], a
- ld a, $0
- adc e
- ld e, a
- ld a, $0
- adc d
- ld d, a
- ld hl, wChannelPitchBendTargetFrequencyHighBytes
- add hl, bc
- ld a, [hl]
- cp d
- jp c, .asm_7d7fa
- jr nz, .asm_7d7e7
- ld hl, wChannelPitchBendTargetFrequencyLowBytes
- add hl, bc
- ld a, [hl]
- cp e
- jp c, .asm_7d7fa
- jr .asm_7d7e7
-.asm_7d7b4
- ld hl, wChannelPitchBendCurrentFrequencyLowBytes
- add hl, bc
- ld a, [hl]
- ld hl, wChannelPitchBendCurrentFrequencyHighBytes
- add hl, bc
- ld d, [hl]
- ld hl, wChannelPitchBendFrequencySteps
- add hl, bc
- ld e, [hl]
- sub e
- ld e, a
- ld a, d
- sbc b
- ld d, a
- ld hl, wChannelPitchBendFrequencyStepsFractionalPart
- add hl, bc
- ld a, [hl]
- add a
- ld [hl], a
- ld a, e
- sbc b
- ld e, a
- ld a, d
- sbc b
- ld d, a
- ld hl, wChannelPitchBendTargetFrequencyHighBytes
- add hl, bc
- ld a, d
- cp [hl]
- jr c, .asm_7d7fa
- jr nz, .asm_7d7e7
- ld hl, wChannelPitchBendTargetFrequencyLowBytes
- add hl, bc
- ld a, e
- cp [hl]
- jr c, .asm_7d7fa
-.asm_7d7e7
- ld hl, wChannelPitchBendCurrentFrequencyLowBytes
- add hl, bc
- ld [hl], e
- ld hl, wChannelPitchBendCurrentFrequencyHighBytes
- add hl, bc
- ld [hl], d
- ld b, $3
- call Audio3_7d8ac
- ld a, e
- ld [hli], a
- ld [hl], d
- ret
-.asm_7d7fa
- ld hl, wChannelFlags1
- add hl, bc
- res 4, [hl]
- res 5, [hl]
- ret
-
-Audio3_7d803:
- ld hl, wChannelPitchBendCurrentFrequencyHighBytes
- add hl, bc
- ld [hl], d
- ld hl, wChannelPitchBendCurrentFrequencyLowBytes
- add hl, bc
- ld [hl], e
- ld hl, wChannelNoteDelayCounters
- add hl, bc
- ld a, [hl]
- ld hl, wChannelPitchBendLengthModifiers
- add hl, bc
- sub [hl]
- jr nc, .asm_7d81b
- ld a, $1
-.asm_7d81b
- ld [hl], a
- ld hl, wChannelPitchBendTargetFrequencyLowBytes
- add hl, bc
- ld a, e
- sub [hl]
- ld e, a
- ld a, d
- sbc b
- ld hl, wChannelPitchBendTargetFrequencyHighBytes
- add hl, bc
- sub [hl]
- jr c, .asm_7d837
- ld d, a
- ld b, $0
- ld hl, wChannelFlags1
- add hl, bc
- set 5, [hl]
- jr .asm_7d85a
-.asm_7d837
- ld hl, wChannelPitchBendCurrentFrequencyHighBytes
- add hl, bc
- ld d, [hl]
- ld hl, wChannelPitchBendCurrentFrequencyLowBytes
- add hl, bc
- ld e, [hl]
- ld hl, wChannelPitchBendTargetFrequencyLowBytes
- add hl, bc
- ld a, [hl]
- sub e
- ld e, a
- ld a, d
- sbc b
- ld d, a
- ld hl, wChannelPitchBendTargetFrequencyHighBytes
- add hl, bc
- ld a, [hl]
- sub d
- ld d, a
- ld b, $0
- ld hl, wChannelFlags1
- add hl, bc
- res 5, [hl]
-.asm_7d85a
- ld hl, wChannelPitchBendLengthModifiers
- add hl, bc
-.asm_7d85e
- inc b
- ld a, e
- sub [hl]
- ld e, a
- jr nc, .asm_7d85e
- ld a, d
- and a
- jr z, .asm_7d86c
- dec a
- ld d, a
- jr .asm_7d85e
-.asm_7d86c
- ld a, e
- add [hl]
- ld d, b
- ld b, $0
- ld hl, wChannelPitchBendFrequencySteps
- add hl, bc
- ld [hl], d
- ld hl, wChannelPitchBendFrequencyStepsFractionalPart
- add hl, bc
- ld [hl], a
- ld hl, wChannelPitchBendCurrentFrequencyFractionalPart
- add hl, bc
- ld [hl], a
- ret
-
-Audio3_ApplyDutyCycle:
- ld b, $0
- ld hl, wChannelDutyCycles
- add hl, bc
- ld a, [hl]
- rlca
- rlca
- ld [hl], a
- and $c0
- ld d, a
- ld b, $1
- call Audio3_7d8ac
- ld a, [hl]
- and $3f
- or d
- ld [hl], a
- ret
-
-Audio3_GetNextMusicByte:
- ld d, $0
- ld a, c
- add a
- ld e, a
- ld hl, wChannelCommandPointers
- add hl, de
- ld a, [hli]
- ld e, a
- ld a, [hld]
- ld d, a
- ld a, [de] ; get next music command
- inc de
- ld [hl], e ; store address of next command
- inc hl
- ld [hl], d
- ret
-
-Audio3_7d8ac:
- ld a, c
- ld hl, Unknown_7db8b
- add l
- jr nc, .noCarry
- inc h
-.noCarry
- ld l, a
- ld a, [hl]
- add b
- ld l, a
- ld h, $ff
- ret
-
-Audio3_7d8bb:
- ld h, $0
-.loop
- srl a
- jr nc, .noCarry
- add hl, de
-.noCarry
- sla e
- rl d
- and a
- jr z, .done
- jr .loop
-.done
- ret
-
-Audio3_7d8cc:
- ld h, $0
- ld l, a
- add hl, hl
- ld d, h
- ld e, l
- ld hl, Audio3_Pitches
- add hl, de
- ld e, [hl]
- inc hl
- ld d, [hl]
- ld a, b
-.loop
- cp $7
- jr z, .done
- sra d
- rr e
- inc a
- jr .loop
-.done
- ld a, $8
- add d
- ld d, a
- ret
-
Audio3_PlaySound::
ld [wSoundID], a
+ ld a, [wSoundID]
cp $ff
- jp z, Audio3_7daa8
+ jp z, Audio3_7d18e
cp $c2
- jp z, Audio3_7d9c2
- jp c, Audio3_7d9c2
- cp $fe
- jr z, .asm_7d901
- jp nc, Audio3_7d9c2
-.asm_7d901
- xor a
- ld [wUnusedC000], a
- ld [wDisableChannelOutputWhenSfxEnds], a
- ld [wMusicTempo + 1], a
- ld [wMusicWaveInstrument], a
- ld [wSfxWaveInstrument], a
- ld d, $8
- ld hl, wChannelReturnAddresses
- call FillAudioRAM3
- ld hl, wChannelCommandPointers
- call FillAudioRAM3
- ld d, $4
- ld hl, wChannelSoundIDs
- call FillAudioRAM3
- ld hl, wChannelFlags1
- call FillAudioRAM3
- ld hl, wChannelDuties
- call FillAudioRAM3
- ld hl, wChannelDutyCycles
- call FillAudioRAM3
- ld hl, wChannelVibratoDelayCounters
- call FillAudioRAM3
- ld hl, wChannelVibratoExtents
- call FillAudioRAM3
- ld hl, wChannelVibratoRates
- call FillAudioRAM3
- ld hl, wChannelFrequencyLowBytes
- call FillAudioRAM3
- ld hl, wChannelVibratoDelayCounterReloadValues
- call FillAudioRAM3
- ld hl, wChannelFlags2
- call FillAudioRAM3
- ld hl, wChannelPitchBendLengthModifiers
- call FillAudioRAM3
- ld hl, wChannelPitchBendFrequencySteps
- call FillAudioRAM3
- ld hl, wChannelPitchBendFrequencyStepsFractionalPart
- call FillAudioRAM3
- ld hl, wChannelPitchBendCurrentFrequencyFractionalPart
- call FillAudioRAM3
- ld hl, wChannelPitchBendCurrentFrequencyHighBytes
- call FillAudioRAM3
- ld hl, wChannelPitchBendCurrentFrequencyLowBytes
- call FillAudioRAM3
- ld hl, wChannelPitchBendTargetFrequencyHighBytes
- call FillAudioRAM3
- ld hl, wChannelPitchBendTargetFrequencyLowBytes
- call FillAudioRAM3
- ld a, $1
- ld hl, wChannelLoopCounters
- call FillAudioRAM3
- ld hl, wChannelNoteDelayCounters
- call FillAudioRAM3
- ld hl, wChannelNoteSpeeds
- call FillAudioRAM3
- ld [wMusicTempo], a
- ld a, $ff
- ld [wStereoPanning], a
- xor a
- ld [rNR50], a
- ld a, $8
- ld [rNR10], a
- ld a, $0
- ld [rNR51], a
- xor a
- ld [rNR30], a
- ld a, $80
- ld [rNR30], a
- ld a, $77
- ld [rNR50], a
- jp Audio3_7db03
-
-Audio3_7d9c2:
+ jp z, Audio3_7d12d
+ jp c, Audio3_7d12d
+ cp $fd
+ jr z, .asm_7d127
+ jp nc, Audio3_7d12d
+.asm_7d127
+ call InitMusicVariables
+ jp Audio3_7d192
+
+Audio3_7d12d:
ld l, a
ld e, a
ld h, $0
@@ -1375,7 +33,7 @@ Audio3_7d9c2:
rlca
rlca
ld c, a
-.asm_7d9db
+.asm_7d146
ld d, c
ld a, c
add a
@@ -1396,167 +54,38 @@ Audio3_7d9c2:
add hl, de
ld a, [hl]
and a
- jr z, .asm_7da17
+ jr z, .asm_7d182
ld a, e
cp $7
- jr nz, .asm_7da0e
+ jr nz, .asm_7d179
ld a, [wSoundID]
cp $14
- jr nc, .asm_7da07
+ jr nc, .asm_7d172
ret
-.asm_7da07
+.asm_7d172
ld a, [hl]
cp $14
- jr z, .asm_7da17
- jr c, .asm_7da17
-.asm_7da0e
+ jr z, .asm_7d182
+ jr c, .asm_7d182
+.asm_7d179
ld a, [wSoundID]
cp [hl]
- jr z, .asm_7da17
- jr c, .asm_7da17
+ jr z, .asm_7d182
+ jr c, .asm_7d182
ret
-.asm_7da17
- xor a
- push de
- ld h, d
- ld l, e
- add hl, hl
- ld d, h
- ld e, l
- ld hl, wChannelReturnAddresses
- add hl, de
- ld [hli], a
- ld [hl], a
- ld hl, wChannelCommandPointers
- add hl, de
- ld [hli], a
- ld [hl], a
- pop de
- ld hl, wChannelSoundIDs
- add hl, de
- ld [hl], a
- ld hl, wChannelFlags1
- add hl, de
- ld [hl], a
- ld hl, wChannelDuties
- add hl, de
- ld [hl], a
- ld hl, wChannelDutyCycles
- add hl, de
- ld [hl], a
- ld hl, wChannelVibratoDelayCounters
- add hl, de
- ld [hl], a
- ld hl, wChannelVibratoExtents
- add hl, de
- ld [hl], a
- ld hl, wChannelVibratoRates
- add hl, de
- ld [hl], a
- ld hl, wChannelFrequencyLowBytes
- add hl, de
- ld [hl], a
- ld hl, wChannelVibratoDelayCounterReloadValues
- add hl, de
- ld [hl], a
- ld hl, wChannelPitchBendLengthModifiers
- add hl, de
- ld [hl], a
- ld hl, wChannelPitchBendFrequencySteps
- add hl, de
- ld [hl], a
- ld hl, wChannelPitchBendFrequencyStepsFractionalPart
- add hl, de
- ld [hl], a
- ld hl, wChannelPitchBendCurrentFrequencyFractionalPart
- add hl, de
- ld [hl], a
- ld hl, wChannelPitchBendCurrentFrequencyHighBytes
- add hl, de
- ld [hl], a
- ld hl, wChannelPitchBendCurrentFrequencyLowBytes
- add hl, de
- ld [hl], a
- ld hl, wChannelPitchBendTargetFrequencyHighBytes
- add hl, de
- ld [hl], a
- ld hl, wChannelPitchBendTargetFrequencyLowBytes
- add hl, de
- ld [hl], a
- ld hl, wChannelFlags2
- add hl, de
- ld [hl], a
- ld a, $1
- ld hl, wChannelLoopCounters
- add hl, de
- ld [hl], a
- ld hl, wChannelNoteDelayCounters
- add hl, de
- ld [hl], a
- ld hl, wChannelNoteSpeeds
- add hl, de
- ld [hl], a
- ld a, e
- cp $4
- jr nz, .asm_7da9f
- ld a, $8
- ld [rNR10], a
-.asm_7da9f
+.asm_7d182
+ call InitSFXVariables
ld a, c
and a
- jp z, Audio3_7db03
+ jp z, Audio3_7d192
dec c
- jp .asm_7d9db
+ jp .asm_7d146
-Audio3_7daa8:
- ld a, $80
- ld [rNR52], a
- ld [rNR30], a
- xor a
- ld [rNR51], a
- ld [rNR32], a
- ld a, $8
- ld [rNR10], a
- ld [rNR12], a
- ld [rNR22], a
- ld [rNR42], a
- ld a, $40
- ld [rNR14], a
- ld [rNR24], a
- ld [rNR44], a
- ld a, $77
- ld [rNR50], a
- xor a
- ld [wUnusedC000], a
- ld [wDisableChannelOutputWhenSfxEnds], a
- ld [wMuteAudioAndPauseMusic], a
- ld [wMusicTempo + 1], a
- ld [wSfxTempo + 1], a
- ld [wMusicWaveInstrument], a
- ld [wSfxWaveInstrument], a
- ld d, $a0
- ld hl, wChannelCommandPointers
- call FillAudioRAM3
- ld a, $1
- ld d, $18
- ld hl, wChannelNoteDelayCounters
- call FillAudioRAM3
- ld [wMusicTempo], a
- ld [wSfxTempo], a
- ld a, $ff
- ld [wStereoPanning], a
+Audio3_7d18e:
+ call StopAllAudio
ret
-; fills d bytes at hl with a
-FillAudioRAM3:
- ld b, d
-.loop
- ld [hli], a
- dec b
- jr nz, .loop
- ret
-
-Audio3_7db03:
+Audio3_7d192:
ld a, [wSoundID]
ld l, a
ld e, a
@@ -1581,30 +110,25 @@ Audio3_7db03:
inc b
inc de
ld c, $0
-.asm_7db25
+.asm_7d1b4
cp c
- jr z, .asm_7db2d
+ jr z, .asm_7d1bc
inc c
inc hl
inc hl
- jr .asm_7db25
-.asm_7db2d
+ jr .asm_7d1b4
+.asm_7d1bc
+ push af
push hl
push bc
- push af
ld b, $0
ld c, a
- ld hl, wChannelSoundIDs
- add hl, bc
- ld a, [wSoundID]
- ld [hl], a
- pop af
cp $3
- jr c, .asm_7db46
+ jr c, .asm_7d1cc
ld hl, wChannelFlags1
add hl, bc
set 2, [hl]
-.asm_7db46
+.asm_7d1cc
pop bc
pop hl
ld a, [de] ; get channel pointer
@@ -1613,24 +137,35 @@ Audio3_7db03:
ld a, [de]
ld [hli], a
inc de
+ pop af
+ push hl
+ push bc
+ ld b, $0
+ ld c, a
+ ld hl, wChannelSoundIDs
+ add hl, bc
+ ld a, [wSoundID]
+ ld [hl], a
+ pop bc
+ pop hl
inc c
dec b
ld a, b
and a
ld a, [de]
inc de
- jr nz, .asm_7db25
+ jr nz, .asm_7d1b4
ld a, [wSoundID]
cp $14
- jr nc, .asm_7db5f
- jr .asm_7db89
-.asm_7db5f
+ jr nc, .asm_7d1f5
+ jr .asm_7d21f
+.asm_7d1f5
ld a, [wSoundID]
cp $86
- jr z, .asm_7db89
- jr c, .asm_7db6a
- jr .asm_7db89
-.asm_7db6a
+ jr z, .asm_7d21f
+ jr c, .asm_7d200
+ jr .asm_7d21f
+.asm_7d200
ld hl, wChannelSoundIDs + CH4
ld [hli], a
ld [hli], a
@@ -1643,41 +178,13 @@ Audio3_7db03:
ld [hl], d ; overwrite pointer to point to endchannel
ld a, [wSavedVolume]
and a
- jr nz, .asm_7db89
+ jr nz, .asm_7d21f
ld a, [rNR50]
ld [wSavedVolume], a
ld a, $77
ld [rNR50], a
-.asm_7db89
+.asm_7d21f
ret
Noise3_endchannel:
endchannel
-
-Unknown_7db8b:
- db $10, $15, $1A, $1F ; channels 0-3
- db $10, $15, $1A, $1F ; channels 4-7
-
-Unknown_7db93:
- db $EE, $DD, $BB, $77 ; channels 0-3
- db $EE, $DD, $BB, $77 ; channels 4-7
-
-Unknown_7db9b:
- db $11, $22, $44, $88 ; channels 0-3
- db $11, $22, $44, $88 ; channels 4-7
-
-Audio3_Pitches:
- dw $F82C ; C_
- dw $F89D ; C#
- dw $F907 ; D_
- dw $F96B ; D#
- dw $F9CA ; E_
- dw $FA23 ; F_
- dw $FA77 ; F#
- dw $FAC7 ; G_
- dw $FB12 ; G#
- dw $FB58 ; A_
- dw $FB9B ; A#
- dw $FBDA ; B_
-
-
diff --git a/audio/engine_4.asm b/audio/engine_4.asm
new file mode 100644
index 00000000..f152ff80
--- /dev/null
+++ b/audio/engine_4.asm
@@ -0,0 +1,193 @@
+Audio4_PlaySound::
+; Duplicate of Audio3_PlaySound
+ ld [wSoundID], a
+ ld a, [wSoundID]
+ cp $ff
+ jp z, Audio4_7d18e
+ cp $98
+ jp z, Audio4_7d12d
+ jp c, Audio4_7d12d
+ cp $a3
+ jr z, .asm_7d127
+ jp nc, Audio4_7d12d
+
+.asm_7d127
+ call InitMusicVariables
+ jp Audio4_7d192
+
+Audio4_7d12d:
+ ld l, a
+ ld e, a
+ ld h, $0
+ ld d, h
+ add hl, hl
+ add hl, de
+ ld de, SFX_Headers_4
+ add hl, de
+ ld a, h
+ ld [wSfxHeaderPointer], a
+ ld a, l
+ ld [wSfxHeaderPointer + 1], a
+ ld a, [hl]
+ and $c0
+ rlca
+ rlca
+ ld c, a
+.asm_7d146
+ ld d, c
+ ld a, c
+ add a
+ add c
+ ld c, a
+ ld b, $0
+ ld a, [wSfxHeaderPointer]
+ ld h, a
+ ld a, [wSfxHeaderPointer + 1]
+ ld l, a
+ add hl, bc
+ ld c, d
+ ld a, [hl]
+ and $f
+ ld e, a
+ ld d, $0
+ ld hl, wChannelSoundIDs
+ add hl, de
+ ld a, [hl]
+ and a
+ jr z, .asm_7d182
+ ld a, e
+ cp $7
+ jr nz, .asm_7d179
+ ld a, [wSoundID]
+ cp $14
+ jr nc, .asm_7d172
+ ret
+
+.asm_7d172
+ ld a, [hl]
+ cp $14
+ jr z, .asm_7d182
+ jr c, .asm_7d182
+.asm_7d179
+ ld a, [wSoundID]
+ cp [hl]
+ jr z, .asm_7d182
+ jr c, .asm_7d182
+ ret
+
+.asm_7d182
+ call InitSFXVariables
+ ld a, c
+ and a
+ jp z, Audio4_7d192
+ dec c
+ jp .asm_7d146
+
+Audio4_7d18e:
+ call StopAllAudio
+ ret
+
+Audio4_7d192:
+ ld a, [wSoundID]
+ ld l, a
+ ld e, a
+ ld h, $0
+ ld d, h
+ add hl, hl
+ add hl, de
+ ld de, SFX_Headers_4
+ add hl, de
+ ld e, l
+ ld d, h
+ ld hl, wChannelCommandPointers
+ ld a, [de] ; get channel number
+ ld b, a
+ rlca
+ rlca
+ and $3
+ ld c, a
+ ld a, b
+ and $f
+ ld b, c
+ inc b
+ inc de
+ ld c, $0
+.asm_7d1b4
+ cp c
+ jr z, .asm_7d1bc
+ inc c
+ inc hl
+ inc hl
+ jr .asm_7d1b4
+.asm_7d1bc
+ push af
+ push hl
+ push bc
+ ld b, $0
+ ld c, a
+ cp $3
+ jr c, .asm_7d1cc
+ ld hl, wChannelFlags1
+ add hl, bc
+ set 2, [hl]
+.asm_7d1cc
+ pop bc
+ pop hl
+ ld a, [de] ; get channel pointer
+ ld [hli], a
+ inc de
+ ld a, [de]
+ ld [hli], a
+ inc de
+ pop af
+ push hl
+ push bc
+ ld b, $0
+ ld c, a
+ ld hl, wChannelSoundIDs
+ add hl, bc
+ ld a, [wSoundID]
+ ld [hl], a
+ pop bc
+ pop hl
+ inc c
+ dec b
+ ld a, b
+ and a
+ ld a, [de]
+ inc de
+ jr nz, .asm_7d1b4
+ ld a, [wSoundID]
+ cp $14
+ jr nc, .asm_7d1f5
+ jr .asm_7d21f
+
+.asm_7d1f5
+ ld a, [wSoundID]
+ cp $86
+ jr z, .asm_7d21f
+ jr c, .asm_7d200
+ jr .asm_7d21f
+.asm_7d200
+ ld hl, wChannelSoundIDs + CH4
+ ld [hli], a
+ ld [hli], a
+ ld [hli], a
+ ld [hl], a
+ ld hl, wChannelCommandPointers + CH6 * 2 ; sfx noise channel pointer
+ ld de, Noise4_endchannel
+ ld [hl], e
+ inc hl
+ ld [hl], d ; overwrite pointer to point to endchannel
+ ld a, [wSavedVolume]
+ and a
+ jr nz, .asm_7d21f
+ ld a, [rNR50]
+ ld [wSavedVolume], a
+ ld a, $77
+ ld [rNR50], a
+.asm_7d21f
+ ret
+
+Noise4_endchannel:
+ endchannel
diff --git a/audio/headers/musicheaders1.asm b/audio/headers/musicheaders1.asm
index 5a762b30..665efceb 100755..100644
--- a/audio/headers/musicheaders1.asm
+++ b/audio/headers/musicheaders1.asm
@@ -1,184 +1,115 @@
Music_PalletTown::
- db ( $80 | CH0 )
- dw Music_PalletTown_Ch1
- db CH1
- dw Music_PalletTown_Ch2
- db CH2
- dw Music_PalletTown_Ch3
+ dbw ( $80 | CH0 ), Music_PalletTown_Ch1
+ dbw CH1, Music_PalletTown_Ch2
+ dbw CH2, Music_PalletTown_Ch3
Music_Pokecenter::
- db ( $80 | CH0 )
- dw Music_Pokecenter_Ch1
- db CH1
- dw Music_Pokecenter_Ch2
- db CH2
- dw Music_Pokecenter_Ch3
+ dbw ( $80 | CH0 ), Music_Pokecenter_Ch1
+ dbw CH1, Music_Pokecenter_Ch2
+ dbw CH2, Music_Pokecenter_Ch3
Music_Gym::
- db ( $80 | CH0 )
- dw Music_Gym_Ch1
- db CH1
- dw Music_Gym_Ch2
- db CH2
- dw Music_Gym_Ch3
+ dbw ( $80 | CH0 ), Music_Gym_Ch1
+ dbw CH1, Music_Gym_Ch2
+ dbw CH2, Music_Gym_Ch3
; Viridian City, Pewter City, Saffron City
Music_Cities1::
- db ( $C0 | CH0 )
- dw Music_Cities1_Ch1
- db CH1
- dw Music_Cities1_Ch2
- db CH2
- dw Music_Cities1_Ch3
- db CH3
- dw Music_Cities1_Ch4
+ dbw ( $C0 | CH0 ), Music_Cities1_Ch1
+ dbw CH1, Music_Cities1_Ch2
+ dbw CH2, Music_Cities1_Ch3
+ dbw CH3, Music_Cities1_Ch4
; Cerulean City, Fuchsia City
Music_Cities2::
- db ( $80 | CH0 )
- dw Music_Cities2_Ch1
- db CH1
- dw Music_Cities2_Ch2
- db CH2
- dw Music_Cities2_Ch3
+ dbw ( $80 | CH0 ), Music_Cities2_Ch1
+ dbw CH1, Music_Cities2_Ch2
+ dbw CH2, Music_Cities2_Ch3
Music_Celadon::
- db ( $80 | CH0 )
- dw Music_Celadon_Ch1
- db CH1
- dw Music_Celadon_Ch2
- db CH2
- dw Music_Celadon_Ch3
+ dbw ( $80 | CH0 ), Music_Celadon_Ch1
+ dbw CH1, Music_Celadon_Ch2
+ dbw CH2, Music_Celadon_Ch3
Music_Cinnabar::
- db ( $80 | CH0 )
- dw Music_Cinnabar_Ch1
- db CH1
- dw Music_Cinnabar_Ch2
- db CH2
- dw Music_Cinnabar_Ch3
+ dbw ( $80 | CH0 ), Music_Cinnabar_Ch1
+ dbw CH1, Music_Cinnabar_Ch2
+ dbw CH2, Music_Cinnabar_Ch3
Music_Vermilion::
- db ( $C0 | CH0 )
- dw Music_Vermilion_Ch1
- db CH1
- dw Music_Vermilion_Ch2
- db CH2
- dw Music_Vermilion_Ch3
- db CH3
- dw Music_Vermilion_Ch4
+ dbw ( $C0 | CH0 ), Music_Vermilion_Ch1
+ dbw CH1, Music_Vermilion_Ch2
+ dbw CH2, Music_Vermilion_Ch3
+ dbw CH3, Music_Vermilion_Ch4
Music_Lavender::
- db ( $C0 | CH0 )
- dw Music_Lavender_Ch1
- db CH1
- dw Music_Lavender_Ch2
- db CH2
- dw Music_Lavender_Ch3
- db CH3
- dw Music_Lavender_Ch4
+ dbw ( $C0 | CH0 ), Music_Lavender_Ch1
+ dbw CH1, Music_Lavender_Ch2
+ dbw CH2, Music_Lavender_Ch3
+ dbw CH3, Music_Lavender_Ch4
Music_SSAnne::
- db ( $80 | CH0 )
- dw Music_SSAnne_Ch1
- db CH1
- dw Music_SSAnne_Ch2
- db CH2
- dw Music_SSAnne_Ch3
+ dbw ( $80 | CH0 ), Music_SSAnne_Ch1
+ dbw CH1, Music_SSAnne_Ch2
+ dbw CH2, Music_SSAnne_Ch3
Music_MeetProfOak::
- db ( $80 | CH0 )
- dw Music_MeetProfOak_Ch1
- db CH1
- dw Music_MeetProfOak_Ch2
- db CH2
- dw Music_MeetProfOak_Ch3
+ dbw ( $80 | CH0 ), Music_MeetProfOak_Ch1
+ dbw CH1, Music_MeetProfOak_Ch2
+ dbw CH2, Music_MeetProfOak_Ch3
Music_MeetRival::
- db ( $80 | CH0 )
- dw Music_MeetRival_Ch1
- db CH1
- dw Music_MeetRival_Ch2
- db CH2
- dw Music_MeetRival_Ch3
+ dbw ( $80 | CH0 ), Music_MeetRival_Ch1
+ dbw CH1, Music_MeetRival_Ch2
+ dbw CH2, Music_MeetRival_Ch3
Music_MuseumGuy::
- db ( $C0 | CH0 )
- dw Music_MuseumGuy_Ch1
- db CH1
- dw Music_MuseumGuy_Ch2
- db CH2
- dw Music_MuseumGuy_Ch3
- db CH3
- dw Music_MuseumGuy_Ch4
+ dbw ( $C0 | CH0 ), Music_MuseumGuy_Ch1
+ dbw CH1, Music_MuseumGuy_Ch2
+ dbw CH2, Music_MuseumGuy_Ch3
+ dbw CH3, Music_MuseumGuy_Ch4
Music_SafariZone::
- db ( $80 | CH0 )
- dw Music_SafariZone_Ch1
- db CH1
- dw Music_SafariZone_Ch2
- db CH2
- dw Music_SafariZone_Ch3
+ dbw ( $80 | CH0 ), Music_SafariZone_Ch1
+ dbw CH1, Music_SafariZone_Ch2
+ dbw CH2, Music_SafariZone_Ch3
Music_PkmnHealed::
- db ( $80 | CH0 )
- dw Music_PkmnHealed_Ch1
- db CH1
- dw Music_PkmnHealed_Ch2
- db CH2
- dw Music_PkmnHealed_Ch3
+ dbw ( $80 | CH0 ), Music_PkmnHealed_Ch1
+ dbw CH1, Music_PkmnHealed_Ch2
+ dbw CH2, Music_PkmnHealed_Ch3
; Routes 1 and 2
Music_Routes1::
- db ( $C0 | CH0 )
- dw Music_Routes1_Ch1
- db CH1
- dw Music_Routes1_Ch2
- db CH2
- dw Music_Routes1_Ch3
- db CH3
- dw Music_Routes1_Ch4
+ dbw ( $C0 | CH0 ), Music_Routes1_Ch1
+ dbw CH1, Music_Routes1_Ch2
+ dbw CH2, Music_Routes1_Ch3
+ dbw CH3, Music_Routes1_Ch4
; Routes 24 and 25
Music_Routes2::
- db ( $C0 | CH0 )
- dw Music_Routes2_Ch1
- db CH1
- dw Music_Routes2_Ch2
- db CH2
- dw Music_Routes2_Ch3
- db CH3
- dw Music_Routes2_Ch4
+ dbw ( $C0 | CH0 ), Music_Routes2_Ch1
+ dbw CH1, Music_Routes2_Ch2
+ dbw CH2, Music_Routes2_Ch3
+ dbw CH3, Music_Routes2_Ch4
; Routes 3, 4, 5, 6, 7, 8, 9, 10, 16, 17, 18, 19, 20, 21, 22
Music_Routes3::
- db ( $C0 | CH0 )
- dw Music_Routes3_Ch1
- db CH1
- dw Music_Routes3_Ch2
- db CH2
- dw Music_Routes3_Ch3
- db CH3
- dw Music_Routes3_Ch4
+ dbw ( $C0 | CH0 ), Music_Routes3_Ch1
+ dbw CH1, Music_Routes3_Ch2
+ dbw CH2, Music_Routes3_Ch3
+ dbw CH3, Music_Routes3_Ch4
; Routes 11, 12, 13, 14, 15
Music_Routes4::
- db ( $C0 | CH0 )
- dw Music_Routes4_Ch1
- db CH1
- dw Music_Routes4_Ch2
- db CH2
- dw Music_Routes4_Ch3
- db CH3
- dw Music_Routes4_Ch4
+ dbw ( $C0 | CH0 ), Music_Routes4_Ch1
+ dbw CH1, Music_Routes4_Ch2
+ dbw CH2, Music_Routes4_Ch3
+ dbw CH3, Music_Routes4_Ch4
; Route 23, Indigo Plateau
Music_IndigoPlateau::
- db ( $C0 | CH0 )
- dw Music_IndigoPlateau_Ch1
- db CH1
- dw Music_IndigoPlateau_Ch2
- db CH2
- dw Music_IndigoPlateau_Ch3
- db CH3
- dw Music_IndigoPlateau_Ch4
+ dbw ( $C0 | CH0 ), Music_IndigoPlateau_Ch1
+ dbw CH1, Music_IndigoPlateau_Ch2
+ dbw CH2, Music_IndigoPlateau_Ch3
+ dbw CH3, Music_IndigoPlateau_Ch4
diff --git a/audio/headers/musicheaders2.asm b/audio/headers/musicheaders2.asm
index 8adc039a..7df3f8bf 100755..100644
--- a/audio/headers/musicheaders2.asm
+++ b/audio/headers/musicheaders2.asm
@@ -1,55 +1,34 @@
Music_GymLeaderBattle::
- db ( $80 | CH0 )
- dw Music_GymLeaderBattle_Ch1
- db CH1
- dw Music_GymLeaderBattle_Ch2
- db CH2
- dw Music_GymLeaderBattle_Ch3
+ dbw ( $80 | CH0 ), Music_GymLeaderBattle_Ch1
+ dbw CH1, Music_GymLeaderBattle_Ch2
+ dbw CH2, Music_GymLeaderBattle_Ch3
Music_TrainerBattle::
- db ( $80 | CH0 )
- dw Music_TrainerBattle_Ch1
- db CH1
- dw Music_TrainerBattle_Ch2
- db CH2
- dw Music_TrainerBattle_Ch3
+ dbw ( $80 | CH0 ), Music_TrainerBattle_Ch1
+ dbw CH1, Music_TrainerBattle_Ch2
+ dbw CH2, Music_TrainerBattle_Ch3
Music_WildBattle::
- db ( $80 | CH0 )
- dw Music_WildBattle_Ch1
- db CH1
- dw Music_WildBattle_Ch2
- db CH2
- dw Music_WildBattle_Ch3
+ dbw ( $80 | CH0 ), Music_WildBattle_Ch1
+ dbw CH1, Music_WildBattle_Ch2
+ dbw CH2, Music_WildBattle_Ch3
Music_FinalBattle::
- db ( $80 | CH0 )
- dw Music_FinalBattle_Ch1
- db CH1
- dw Music_FinalBattle_Ch2
- db CH2
- dw Music_FinalBattle_Ch3
+ dbw ( $80 | CH0 ), Music_FinalBattle_Ch1
+ dbw CH1, Music_FinalBattle_Ch2
+ dbw CH2, Music_FinalBattle_Ch3
Music_DefeatedTrainer::
- db ( $80 | CH0 )
- dw Music_DefeatedTrainer_Ch1
- db CH1
- dw Music_DefeatedTrainer_Ch2
- db CH2
- dw Music_DefeatedTrainer_Ch3
+ dbw ( $80 | CH0 ), Music_DefeatedTrainer_Ch1
+ dbw CH1, Music_DefeatedTrainer_Ch2
+ dbw CH2, Music_DefeatedTrainer_Ch3
Music_DefeatedWildMon::
- db ( $80 | CH0 )
- dw Music_DefeatedWildMon_Ch1
- db CH1
- dw Music_DefeatedWildMon_Ch2
- db CH2
- dw Music_DefeatedWildMon_Ch3
+ dbw ( $80 | CH0 ), Music_DefeatedWildMon_Ch1
+ dbw CH1, Music_DefeatedWildMon_Ch2
+ dbw CH2, Music_DefeatedWildMon_Ch3
Music_DefeatedGymLeader::
- db ( $80 | CH0 )
- dw Music_DefeatedGymLeader_Ch1
- db CH1
- dw Music_DefeatedGymLeader_Ch2
- db CH2
- dw Music_DefeatedGymLeader_Ch3
+ dbw ( $80 | CH0 ), Music_DefeatedGymLeader_Ch1
+ dbw CH1, Music_DefeatedGymLeader_Ch2
+ dbw CH2, Music_DefeatedGymLeader_Ch3
diff --git a/audio/headers/musicheaders3.asm b/audio/headers/musicheaders3.asm
index 1c54b266..c694be9b 100755..100644
--- a/audio/headers/musicheaders3.asm
+++ b/audio/headers/musicheaders3.asm
@@ -1,158 +1,97 @@
Music_TitleScreen::
- db ( $C0 | CH0 )
- dw Music_TitleScreen_Ch1
- db CH1
- dw Music_TitleScreen_Ch2
- db CH2
- dw Music_TitleScreen_Ch3
- db CH3
- dw Music_TitleScreen_Ch4
+ dbw ( $C0 | CH0 ), Music_TitleScreen_Ch1
+ dbw CH1, Music_TitleScreen_Ch2
+ dbw CH2, Music_TitleScreen_Ch3
+ dbw CH3, Music_TitleScreen_Ch4
Music_Credits::
- db ( $80 | CH0 )
- dw Music_Credits_Ch1
- db CH1
- dw Music_Credits_Ch2
- db CH2
- dw Music_Credits_Ch3
+ dbw ( $80 | CH0 ), Music_Credits_Ch1
+ dbw CH1, Music_Credits_Ch2
+ dbw CH2, Music_Credits_Ch3
Music_HallOfFame::
- db ( $80 | CH0 )
- dw Music_HallOfFame_Ch1
- db CH1
- dw Music_HallOfFame_Ch2
- db CH2
- dw Music_HallOfFame_Ch3
+ dbw ( $80 | CH0 ), Music_HallOfFame_Ch1
+ dbw CH1, Music_HallOfFame_Ch2
+ dbw CH2, Music_HallOfFame_Ch3
Music_OaksLab::
- db ( $80 | CH0 )
- dw Music_OaksLab_Ch1
- db CH1
- dw Music_OaksLab_Ch2
- db CH2
- dw Music_OaksLab_Ch3
+ dbw ( $80 | CH0 ), Music_OaksLab_Ch1
+ dbw CH1, Music_OaksLab_Ch2
+ dbw CH2, Music_OaksLab_Ch3
Music_JigglypuffSong::
- db $40
- dw Music_JigglypuffSong_Ch1
- db CH1
- dw Music_JigglypuffSong_Ch2
+ dbw $40, Music_JigglypuffSong_Ch1
+ dbw CH1, Music_JigglypuffSong_Ch2
Music_BikeRiding::
- db ( $C0 | CH0 )
- dw Music_BikeRiding_Ch1
- db CH1
- dw Music_BikeRiding_Ch2
- db CH2
- dw Music_BikeRiding_Ch3
- db CH3
- dw Music_BikeRiding_Ch4
+ dbw ( $C0 | CH0 ), Music_BikeRiding_Ch1
+ dbw CH1, Music_BikeRiding_Ch2
+ dbw CH2, Music_BikeRiding_Ch3
+ dbw CH3, Music_BikeRiding_Ch4
Music_Surfing::
- db ( $80 | CH0 )
- dw Music_Surfing_Ch1
- db CH1
- dw Music_Surfing_Ch2
- db CH2
- dw Music_Surfing_Ch3
+ dbw ( $80 | CH0 ), Music_Surfing_Ch1
+ dbw CH1, Music_Surfing_Ch2
+ dbw CH2, Music_Surfing_Ch3
Music_GameCorner::
- db ( $80 | CH0 )
- dw Music_GameCorner_Ch1
- db CH1
- dw Music_GameCorner_Ch2
- db CH2
- dw Music_GameCorner_Ch3
+ dbw ( $80 | CH0 ), Music_GameCorner_Ch1
+ dbw CH1, Music_GameCorner_Ch2
+ dbw CH2, Music_GameCorner_Ch3
Music_IntroBattle::
- db ( $C0 | CH0 )
- dw Music_IntroBattle_Ch1
- db CH1
- dw Music_IntroBattle_Ch2
- db CH2
- dw Music_IntroBattle_Ch3
- db CH3
- dw Music_IntroBattle_Ch4
+ dbw ( $80 | CH0 ), Music_YellowIntro_Ch1
+ dbw CH1, Music_YellowIntro_Ch2
+ dbw CH2, Music_YellowIntro_Ch3
; Power Plant, Unknown Dungeon, Rocket HQ
Music_Dungeon1::
- db ( $C0 | CH0 )
- dw Music_Dungeon1_Ch1
- db CH1
- dw Music_Dungeon1_Ch2
- db CH2
- dw Music_Dungeon1_Ch3
- db CH3
- dw Music_Dungeon1_Ch4
+ dbw ( $C0 | CH0 ), Music_Dungeon1_Ch1
+ dbw CH1, Music_Dungeon1_Ch2
+ dbw CH2, Music_Dungeon1_Ch3
+ dbw CH3, Music_Dungeon1_Ch4
; Viridian Forest, Seafoam Islands
Music_Dungeon2::
- db ( $C0 | CH0 )
- dw Music_Dungeon2_Ch1
- db CH1
- dw Music_Dungeon2_Ch2
- db CH2
- dw Music_Dungeon2_Ch3
- db CH3
- dw Music_Dungeon2_Ch4
+ dbw ( $C0 | CH0 ), Music_Dungeon2_Ch1
+ dbw CH1, Music_Dungeon2_Ch2
+ dbw CH2, Music_Dungeon2_Ch3
+ dbw CH3, Music_Dungeon2_Ch4
; Mt. Moon, Rock Tunnel, Victory Road
Music_Dungeon3::
- db ( $C0 | CH0 )
- dw Music_Dungeon3_Ch1
- db CH1
- dw Music_Dungeon3_Ch2
- db CH2
- dw Music_Dungeon3_Ch3
- db CH3
- dw Music_Dungeon3_Ch4
+ dbw ( $C0 | CH0 ), Music_Dungeon3_Ch1
+ dbw CH1, Music_Dungeon3_Ch2
+ dbw CH2, Music_Dungeon3_Ch3
+ dbw CH3, Music_Dungeon3_Ch4
Music_CinnabarMansion::
- db ( $C0 | CH0 )
- dw Music_CinnabarMansion_Ch1
- db CH1
- dw Music_CinnabarMansion_Ch2
- db CH2
- dw Music_CinnabarMansion_Ch3
- db CH3
- dw Music_CinnabarMansion_Ch4
+ dbw ( $C0 | CH0 ), Music_CinnabarMansion_Ch1
+ dbw CH1, Music_CinnabarMansion_Ch2
+ dbw CH2, Music_CinnabarMansion_Ch3
+ dbw CH3, Music_CinnabarMansion_Ch4
Music_PokemonTower::
- db ( $80 | CH0 )
- dw Music_PokemonTower_Ch1
- db CH1
- dw Music_PokemonTower_Ch2
- db CH2
- dw Music_PokemonTower_Ch3
+ dbw ( $80 | CH0 ), Music_PokemonTower_Ch1
+ dbw CH1, Music_PokemonTower_Ch2
+ dbw CH2, Music_PokemonTower_Ch3
Music_SilphCo::
- db ( $80 | CH0 )
- dw Music_SilphCo_Ch1
- db CH1
- dw Music_SilphCo_Ch2
- db CH2
- dw Music_SilphCo_Ch3
+ dbw ( $80 | CH0 ), Music_SilphCo_Ch1
+ dbw CH1, Music_SilphCo_Ch2
+ dbw CH2, Music_SilphCo_Ch3
Music_MeetEvilTrainer::
- db ( $80 | CH0 )
- dw Music_MeetEvilTrainer_Ch1
- db CH1
- dw Music_MeetEvilTrainer_Ch2
- db CH2
- dw Music_MeetEvilTrainer_Ch3
+ dbw ( $80 | CH0 ), Music_MeetEvilTrainer_Ch1
+ dbw CH1, Music_MeetEvilTrainer_Ch2
+ dbw CH2, Music_MeetEvilTrainer_Ch3
Music_MeetFemaleTrainer::
- db ( $80 | CH0 )
- dw Music_MeetFemaleTrainer_Ch1
- db CH1
- dw Music_MeetFemaleTrainer_Ch2
- db CH2
- dw Music_MeetFemaleTrainer_Ch3
+ dbw ( $80 | CH0 ), Music_MeetFemaleTrainer_Ch1
+ dbw CH1, Music_MeetFemaleTrainer_Ch2
+ dbw CH2, Music_MeetFemaleTrainer_Ch3
Music_MeetMaleTrainer::
- db ( $80 | CH0 )
- dw Music_MeetMaleTrainer_Ch1
- db CH1
- dw Music_MeetMaleTrainer_Ch2
- db CH2
- dw Music_MeetMaleTrainer_Ch3
+ dbw ( $80 | CH0 ), Music_MeetMaleTrainer_Ch1
+ dbw CH1, Music_MeetMaleTrainer_Ch2
+ dbw CH2, Music_MeetMaleTrainer_Ch3
diff --git a/audio/headers/musicheaders4.asm b/audio/headers/musicheaders4.asm
new file mode 100644
index 00000000..be5d822a
--- /dev/null
+++ b/audio/headers/musicheaders4.asm
@@ -0,0 +1,18 @@
+Music_SurfingPikachu::
+ dbw ((3 - 1) << 6) | CH0, Music_SurfingPikachu_Ch1
+ dbw CH1, Music_SurfingPikachu_Ch2
+ dbw CH2, Music_SurfingPikachu_Ch3
+
+Music_MeetJessieJames::
+ dbw ((3 - 1) << 6) | CH0, Music_MeetJessieJames_Ch1
+ dbw CH1, Music_MeetJessieJames_Ch2
+ dbw CH2, Music_MeetJessieJames_Ch3
+
+Music_YellowUnusedSong::
+ dbw ((4 - 1) << 6) | CH0, Music_YellowUnusedSong_Ch1
+ dbw CH1, Music_YellowUnusedSong_Ch2
+ dbw CH2, Music_YellowUnusedSong_Ch3
+ dbw CH3, Music_YellowUnusedSong_Ch4
+
+Music_GBPrinter::
+ dbw ((1 - 1) << 6) | CH2, Music_GBPrinter_Ch3
diff --git a/audio/headers/sfxheaders1.asm b/audio/headers/sfxheaders1.asm
index 57c62e1c..fdbcb5f3 100644
--- a/audio/headers/sfxheaders1.asm
+++ b/audio/headers/sfxheaders1.asm
@@ -1,562 +1,377 @@
SFX_Headers_1::
- db $ff, $ff, $ff ; padding
+ dbw -1, -1 ; padding
SFX_Snare1_1::
- db CH7
- dw SFX_Snare1_1_Ch1
+ dbw CH7, SFX_Snare1_1_Ch1
SFX_Snare2_1::
- db CH7
- dw SFX_Snare2_1_Ch1
+ dbw CH7, SFX_Snare2_1_Ch1
SFX_Snare3_1::
- db CH7
- dw SFX_Snare3_1_Ch1
+ dbw CH7, SFX_Snare3_1_Ch1
SFX_Snare4_1::
- db CH7
- dw SFX_Snare4_1_Ch1
+ dbw CH7, SFX_Snare4_1_Ch1
SFX_Snare5_1::
- db CH7
- dw SFX_Snare5_1_Ch1
+ dbw CH7, SFX_Snare5_1_Ch1
SFX_Triangle1_1::
- db CH7
- dw SFX_Triangle1_1_Ch1
+ dbw CH7, SFX_Triangle1_1_Ch1
SFX_Triangle2_1::
- db CH7
- dw SFX_Triangle2_1_Ch1
+ dbw CH7, SFX_Triangle2_1_Ch1
SFX_Snare6_1::
- db CH7
- dw SFX_Snare6_1_Ch1
+ dbw CH7, SFX_Snare6_1_Ch1
SFX_Snare7_1::
- db CH7
- dw SFX_Snare7_1_Ch1
+ dbw CH7, SFX_Snare7_1_Ch1
SFX_Snare8_1::
- db CH7
- dw SFX_Snare8_1_Ch1
+ dbw CH7, SFX_Snare8_1_Ch1
SFX_Snare9_1::
- db CH7
- dw SFX_Snare9_1_Ch1
+ dbw CH7, SFX_Snare9_1_Ch1
SFX_Cymbal1_1::
- db CH7
- dw SFX_Cymbal1_1_Ch1
+ dbw CH7, SFX_Cymbal1_1_Ch1
SFX_Cymbal2_1::
- db CH7
- dw SFX_Cymbal2_1_Ch1
+ dbw CH7, SFX_Cymbal2_1_Ch1
SFX_Cymbal3_1::
- db CH7
- dw SFX_Cymbal3_1_Ch1
+ dbw CH7, SFX_Cymbal3_1_Ch1
SFX_Muted_Snare1_1::
- db CH7
- dw SFX_Muted_Snare1_1_Ch1
+ dbw CH7, SFX_Muted_Snare1_1_Ch1
SFX_Triangle3_1::
- db CH7
- dw SFX_Triangle3_1_Ch1
+ dbw CH7, SFX_Triangle3_1_Ch1
SFX_Muted_Snare2_1::
- db CH7
- dw SFX_Muted_Snare2_1_Ch1
+ dbw CH7, SFX_Muted_Snare2_1_Ch1
SFX_Muted_Snare3_1::
- db CH7
- dw SFX_Muted_Snare3_1_Ch1
+ dbw CH7, SFX_Muted_Snare3_1_Ch1
SFX_Muted_Snare4_1::
- db CH7
- dw SFX_Muted_Snare4_1_Ch1
+ dbw CH7, SFX_Muted_Snare4_1_Ch1
SFX_Cry00_1::
- db ( $80 | CH4 )
- dw SFX_Cry00_1_Ch1
- db CH5
- dw SFX_Cry00_1_Ch2
- db CH7
- dw SFX_Cry00_1_Ch3
+ dbw ( $80 | CH4 ), SFX_Cry00_1_Ch1
+ dbw CH5, SFX_Cry00_1_Ch2
+ dbw CH7, SFX_Cry00_1_Ch3
SFX_Cry01_1::
- db ( $80 | CH4 )
- dw SFX_Cry01_1_Ch1
- db CH5
- dw SFX_Cry01_1_Ch2
- db CH7
- dw SFX_Cry01_1_Ch3
+ dbw ( $80 | CH4 ), SFX_Cry01_1_Ch1
+ dbw CH5, SFX_Cry01_1_Ch2
+ dbw CH7, SFX_Cry01_1_Ch3
SFX_Cry02_1::
- db ( $80 | CH4 )
- dw SFX_Cry02_1_Ch1
- db CH5
- dw SFX_Cry02_1_Ch2
- db CH7
- dw SFX_Cry02_1_Ch3
+ dbw ( $80 | CH4 ), SFX_Cry02_1_Ch1
+ dbw CH5, SFX_Cry02_1_Ch2
+ dbw CH7, SFX_Cry02_1_Ch3
SFX_Cry03_1::
- db ( $80 | CH4 )
- dw SFX_Cry03_1_Ch1
- db CH5
- dw SFX_Cry03_1_Ch2
- db CH7
- dw SFX_Cry03_1_Ch3
+ dbw ( $80 | CH4 ), SFX_Cry03_1_Ch1
+ dbw CH5, SFX_Cry03_1_Ch2
+ dbw CH7, SFX_Cry03_1_Ch3
SFX_Cry04_1::
- db ( $80 | CH4 )
- dw SFX_Cry04_1_Ch1
- db CH5
- dw SFX_Cry04_1_Ch2
- db CH7
- dw SFX_Cry04_1_Ch3
+ dbw ( $80 | CH4 ), SFX_Cry04_1_Ch1
+ dbw CH5, SFX_Cry04_1_Ch2
+ dbw CH7, SFX_Cry04_1_Ch3
SFX_Cry05_1::
- db ( $80 | CH4 )
- dw SFX_Cry05_1_Ch1
- db CH5
- dw SFX_Cry05_1_Ch2
- db CH7
- dw SFX_Cry05_1_Ch3
+ dbw ( $80 | CH4 ), SFX_Cry05_1_Ch1
+ dbw CH5, SFX_Cry05_1_Ch2
+ dbw CH7, SFX_Cry05_1_Ch3
SFX_Cry06_1::
- db ( $80 | CH4 )
- dw SFX_Cry06_1_Ch1
- db CH5
- dw SFX_Cry06_1_Ch2
- db CH7
- dw SFX_Cry06_1_Ch3
+ dbw ( $80 | CH4 ), SFX_Cry06_1_Ch1
+ dbw CH5, SFX_Cry06_1_Ch2
+ dbw CH7, SFX_Cry06_1_Ch3
SFX_Cry07_1::
- db ( $80 | CH4 )
- dw SFX_Cry07_1_Ch1
- db CH5
- dw SFX_Cry07_1_Ch2
- db CH7
- dw SFX_Cry07_1_Ch3
+ dbw ( $80 | CH4 ), SFX_Cry07_1_Ch1
+ dbw CH5, SFX_Cry07_1_Ch2
+ dbw CH7, SFX_Cry07_1_Ch3
SFX_Cry08_1::
- db ( $80 | CH4 )
- dw SFX_Cry08_1_Ch1
- db CH5
- dw SFX_Cry08_1_Ch2
- db CH7
- dw SFX_Cry08_1_Ch3
+ dbw ( $80 | CH4 ), SFX_Cry08_1_Ch1
+ dbw CH5, SFX_Cry08_1_Ch2
+ dbw CH7, SFX_Cry08_1_Ch3
SFX_Cry09_1::
- db ( $80 | CH4 )
- dw SFX_Cry09_1_Ch1
- db CH5
- dw SFX_Cry09_1_Ch2
- db CH7
- dw SFX_Cry09_1_Ch3
+ dbw ( $80 | CH4 ), SFX_Cry09_1_Ch1
+ dbw CH5, SFX_Cry09_1_Ch2
+ dbw CH7, SFX_Cry09_1_Ch3
SFX_Cry0A_1::
- db ( $80 | CH4 )
- dw SFX_Cry0A_1_Ch1
- db CH5
- dw SFX_Cry0A_1_Ch2
- db CH7
- dw SFX_Cry0A_1_Ch3
+ dbw ( $80 | CH4 ), SFX_Cry0A_1_Ch1
+ dbw CH5, SFX_Cry0A_1_Ch2
+ dbw CH7, SFX_Cry0A_1_Ch3
SFX_Cry0B_1::
- db ( $80 | CH4 )
- dw SFX_Cry0B_1_Ch1
- db CH5
- dw SFX_Cry0B_1_Ch2
- db CH7
- dw SFX_Cry0B_1_Ch3
+ dbw ( $80 | CH4 ), SFX_Cry0B_1_Ch1
+ dbw CH5, SFX_Cry0B_1_Ch2
+ dbw CH7, SFX_Cry0B_1_Ch3
SFX_Cry0C_1::
- db ( $80 | CH4 )
- dw SFX_Cry0C_1_Ch1
- db CH5
- dw SFX_Cry0C_1_Ch2
- db CH7
- dw SFX_Cry0C_1_Ch3
+ dbw ( $80 | CH4 ), SFX_Cry0C_1_Ch1
+ dbw CH5, SFX_Cry0C_1_Ch2
+ dbw CH7, SFX_Cry0C_1_Ch3
SFX_Cry0D_1::
- db ( $80 | CH4 )
- dw SFX_Cry0D_1_Ch1
- db CH5
- dw SFX_Cry0D_1_Ch2
- db CH7
- dw SFX_Cry0D_1_Ch3
+ dbw ( $80 | CH4 ), SFX_Cry0D_1_Ch1
+ dbw CH5, SFX_Cry0D_1_Ch2
+ dbw CH7, SFX_Cry0D_1_Ch3
SFX_Cry0E_1::
- db ( $80 | CH4 )
- dw SFX_Cry0E_1_Ch1
- db CH5
- dw SFX_Cry0E_1_Ch2
- db CH7
- dw SFX_Cry0E_1_Ch3
+ dbw ( $80 | CH4 ), SFX_Cry0E_1_Ch1
+ dbw CH5, SFX_Cry0E_1_Ch2
+ dbw CH7, SFX_Cry0E_1_Ch3
SFX_Cry0F_1::
- db ( $80 | CH4 )
- dw SFX_Cry0F_1_Ch1
- db CH5
- dw SFX_Cry0F_1_Ch2
- db CH7
- dw SFX_Cry0F_1_Ch3
+ dbw ( $80 | CH4 ), SFX_Cry0F_1_Ch1
+ dbw CH5, SFX_Cry0F_1_Ch2
+ dbw CH7, SFX_Cry0F_1_Ch3
SFX_Cry10_1::
- db ( $80 | CH4 )
- dw SFX_Cry10_1_Ch1
- db CH5
- dw SFX_Cry10_1_Ch2
- db CH7
- dw SFX_Cry10_1_Ch3
+ dbw ( $80 | CH4 ), SFX_Cry10_1_Ch1
+ dbw CH5, SFX_Cry10_1_Ch2
+ dbw CH7, SFX_Cry10_1_Ch3
SFX_Cry11_1::
- db ( $80 | CH4 )
- dw SFX_Cry11_1_Ch1
- db CH5
- dw SFX_Cry11_1_Ch2
- db CH7
- dw SFX_Cry11_1_Ch3
+ dbw ( $80 | CH4 ), SFX_Cry11_1_Ch1
+ dbw CH5, SFX_Cry11_1_Ch2
+ dbw CH7, SFX_Cry11_1_Ch3
SFX_Cry12_1::
- db ( $80 | CH4 )
- dw SFX_Cry12_1_Ch1
- db CH5
- dw SFX_Cry12_1_Ch2
- db CH7
- dw SFX_Cry12_1_Ch3
+ dbw ( $80 | CH4 ), SFX_Cry12_1_Ch1
+ dbw CH5, SFX_Cry12_1_Ch2
+ dbw CH7, SFX_Cry12_1_Ch3
SFX_Cry13_1::
- db ( $80 | CH4 )
- dw SFX_Cry13_1_Ch1
- db CH5
- dw SFX_Cry13_1_Ch2
- db CH7
- dw SFX_Cry13_1_Ch3
+ dbw ( $80 | CH4 ), SFX_Cry13_1_Ch1
+ dbw CH5, SFX_Cry13_1_Ch2
+ dbw CH7, SFX_Cry13_1_Ch3
SFX_Cry14_1::
- db ( $80 | CH4 )
- dw SFX_Cry14_1_Ch1
- db CH5
- dw SFX_Cry14_1_Ch2
- db CH7
- dw SFX_Cry14_1_Ch3
+ dbw ( $80 | CH4 ), SFX_Cry14_1_Ch1
+ dbw CH5, SFX_Cry14_1_Ch2
+ dbw CH7, SFX_Cry14_1_Ch3
SFX_Cry15_1::
- db ( $80 | CH4 )
- dw SFX_Cry15_1_Ch1
- db CH5
- dw SFX_Cry15_1_Ch2
- db CH7
- dw SFX_Cry15_1_Ch3
+ dbw ( $80 | CH4 ), SFX_Cry15_1_Ch1
+ dbw CH5, SFX_Cry15_1_Ch2
+ dbw CH7, SFX_Cry15_1_Ch3
SFX_Cry16_1::
- db ( $80 | CH4 )
- dw SFX_Cry16_1_Ch1
- db CH5
- dw SFX_Cry16_1_Ch2
- db CH7
- dw SFX_Cry16_1_Ch3
+ dbw ( $80 | CH4 ), SFX_Cry16_1_Ch1
+ dbw CH5, SFX_Cry16_1_Ch2
+ dbw CH7, SFX_Cry16_1_Ch3
SFX_Cry17_1::
- db ( $80 | CH4 )
- dw SFX_Cry17_1_Ch1
- db CH5
- dw SFX_Cry17_1_Ch2
- db CH7
- dw SFX_Cry17_1_Ch3
+ dbw ( $80 | CH4 ), SFX_Cry17_1_Ch1
+ dbw CH5, SFX_Cry17_1_Ch2
+ dbw CH7, SFX_Cry17_1_Ch3
SFX_Cry18_1::
- db ( $80 | CH4 )
- dw SFX_Cry18_1_Ch1
- db CH5
- dw SFX_Cry18_1_Ch2
- db CH7
- dw SFX_Cry18_1_Ch3
+ dbw ( $80 | CH4 ), SFX_Cry18_1_Ch1
+ dbw CH5, SFX_Cry18_1_Ch2
+ dbw CH7, SFX_Cry18_1_Ch3
SFX_Cry19_1::
- db ( $80 | CH4 )
- dw SFX_Cry19_1_Ch1
- db CH5
- dw SFX_Cry19_1_Ch2
- db CH7
- dw SFX_Cry19_1_Ch3
+ dbw ( $80 | CH4 ), SFX_Cry19_1_Ch1
+ dbw CH5, SFX_Cry19_1_Ch2
+ dbw CH7, SFX_Cry19_1_Ch3
SFX_Cry1A_1::
- db ( $80 | CH4 )
- dw SFX_Cry1A_1_Ch1
- db CH5
- dw SFX_Cry1A_1_Ch2
- db CH7
- dw SFX_Cry1A_1_Ch3
+ dbw ( $80 | CH4 ), SFX_Cry1A_1_Ch1
+ dbw CH5, SFX_Cry1A_1_Ch2
+ dbw CH7, SFX_Cry1A_1_Ch3
SFX_Cry1B_1::
- db ( $80 | CH4 )
- dw SFX_Cry1B_1_Ch1
- db CH5
- dw SFX_Cry1B_1_Ch2
- db CH7
- dw SFX_Cry1B_1_Ch3
+ dbw ( $80 | CH4 ), SFX_Cry1B_1_Ch1
+ dbw CH5, SFX_Cry1B_1_Ch2
+ dbw CH7, SFX_Cry1B_1_Ch3
SFX_Cry1C_1::
- db ( $80 | CH4 )
- dw SFX_Cry1C_1_Ch1
- db CH5
- dw SFX_Cry1C_1_Ch2
- db CH7
- dw SFX_Cry1C_1_Ch3
+ dbw ( $80 | CH4 ), SFX_Cry1C_1_Ch1
+ dbw CH5, SFX_Cry1C_1_Ch2
+ dbw CH7, SFX_Cry1C_1_Ch3
SFX_Cry1D_1::
- db ( $80 | CH4 )
- dw SFX_Cry1D_1_Ch1
- db CH5
- dw SFX_Cry1D_1_Ch2
- db CH7
- dw SFX_Cry1D_1_Ch3
+ dbw ( $80 | CH4 ), SFX_Cry1D_1_Ch1
+ dbw CH5, SFX_Cry1D_1_Ch2
+ dbw CH7, SFX_Cry1D_1_Ch3
SFX_Cry1E_1::
- db ( $80 | CH4 )
- dw SFX_Cry1E_1_Ch1
- db CH5
- dw SFX_Cry1E_1_Ch2
- db CH7
- dw SFX_Cry1E_1_Ch3
+ dbw ( $80 | CH4 ), SFX_Cry1E_1_Ch1
+ dbw CH5, SFX_Cry1E_1_Ch2
+ dbw CH7, SFX_Cry1E_1_Ch3
SFX_Cry1F_1::
- db ( $80 | CH4 )
- dw SFX_Cry1F_1_Ch1
- db CH5
- dw SFX_Cry1F_1_Ch2
- db CH7
- dw SFX_Cry1F_1_Ch3
+ dbw ( $80 | CH4 ), SFX_Cry1F_1_Ch1
+ dbw CH5, SFX_Cry1F_1_Ch2
+ dbw CH7, SFX_Cry1F_1_Ch3
SFX_Cry20_1::
- db ( $80 | CH4 )
- dw SFX_Cry20_1_Ch1
- db CH5
- dw SFX_Cry20_1_Ch2
- db CH7
- dw SFX_Cry20_1_Ch3
+ dbw ( $80 | CH4 ), SFX_Cry20_1_Ch1
+ dbw CH5, SFX_Cry20_1_Ch2
+ dbw CH7, SFX_Cry20_1_Ch3
SFX_Cry21_1::
- db ( $80 | CH4 )
- dw SFX_Cry21_1_Ch1
- db CH5
- dw SFX_Cry21_1_Ch2
- db CH7
- dw SFX_Cry21_1_Ch3
+ dbw ( $80 | CH4 ), SFX_Cry21_1_Ch1
+ dbw CH5, SFX_Cry21_1_Ch2
+ dbw CH7, SFX_Cry21_1_Ch3
SFX_Cry22_1::
- db ( $80 | CH4 )
- dw SFX_Cry22_1_Ch1
- db CH5
- dw SFX_Cry22_1_Ch2
- db CH7
- dw SFX_Cry22_1_Ch3
+ dbw ( $80 | CH4 ), SFX_Cry22_1_Ch1
+ dbw CH5, SFX_Cry22_1_Ch2
+ dbw CH7, SFX_Cry22_1_Ch3
SFX_Cry23_1::
- db ( $80 | CH4 )
- dw SFX_Cry23_1_Ch1
- db CH5
- dw SFX_Cry23_1_Ch2
- db CH7
- dw SFX_Cry23_1_Ch3
+ dbw ( $80 | CH4 ), SFX_Cry23_1_Ch1
+ dbw CH5, SFX_Cry23_1_Ch2
+ dbw CH7, SFX_Cry23_1_Ch3
SFX_Cry24_1::
- db ( $80 | CH4 )
- dw SFX_Cry24_1_Ch1
- db CH5
- dw SFX_Cry24_1_Ch2
- db CH7
- dw SFX_Cry24_1_Ch3
+ dbw ( $80 | CH4 ), SFX_Cry24_1_Ch1
+ dbw CH5, SFX_Cry24_1_Ch2
+ dbw CH7, SFX_Cry24_1_Ch3
SFX_Cry25_1::
- db ( $80 | CH4 )
- dw SFX_Cry25_1_Ch1
- db CH5
- dw SFX_Cry25_1_Ch2
- db CH7
- dw SFX_Cry25_1_Ch3
+ dbw ( $80 | CH4 ), SFX_Cry25_1_Ch1
+ dbw CH5, SFX_Cry25_1_Ch2
+ dbw CH7, SFX_Cry25_1_Ch3
SFX_Get_Item1_1::
- db ( $80 | CH4 )
- dw SFX_Get_Item1_1_Ch1
- db CH5
- dw SFX_Get_Item1_1_Ch2
- db CH6
- dw SFX_Get_Item1_1_Ch3
+ dbw ( $80 | CH4 ), SFX_Get_Item1_1_Ch1
+ dbw CH5, SFX_Get_Item1_1_Ch2
+ dbw CH6, SFX_Get_Item1_1_Ch3
SFX_Get_Item2_1::
- db ( $80 | CH4 )
- dw SFX_Get_Item2_1_Ch1
- db CH5
- dw SFX_Get_Item2_1_Ch2
- db CH6
- dw SFX_Get_Item2_1_Ch3
+ dbw ( $80 | CH4 ), SFX_Get_Item2_1_Ch1
+ dbw CH5, SFX_Get_Item2_1_Ch2
+ dbw CH6, SFX_Get_Item2_1_Ch3
SFX_Tink_1::
- db CH4
- dw SFX_Tink_1_Ch1
+ dbw CH4, SFX_Tink_1_Ch1
SFX_Heal_HP_1::
- db CH4
- dw SFX_Heal_HP_1_Ch1
+ dbw CH4, SFX_Heal_HP_1_Ch1
SFX_Heal_Ailment_1::
- db CH4
- dw SFX_Heal_Ailment_1_Ch1
+ dbw CH4, SFX_Heal_Ailment_1_Ch1
SFX_Start_Menu_1::
- db CH7
- dw SFX_Start_Menu_1_Ch1
+ dbw CH7, SFX_Start_Menu_1_Ch1
SFX_Press_AB_1::
- db CH4
- dw SFX_Press_AB_1_Ch1
+ dbw CH4, SFX_Press_AB_1_Ch1
SFX_Pokedex_Rating_1::
- db ( $80 | CH4 )
- dw SFX_Pokedex_Rating_1_Ch1
- db CH5
- dw SFX_Pokedex_Rating_1_Ch2
- db CH6
- dw SFX_Pokedex_Rating_1_Ch3
+ dbw ( $80 | CH4 ), SFX_Pokedex_Rating_1_Ch1
+ dbw CH5, SFX_Pokedex_Rating_1_Ch2
+ dbw CH6, SFX_Pokedex_Rating_1_Ch3
SFX_Get_Key_Item_1::
- db ( $80 | CH4 )
- dw SFX_Get_Key_Item_1_Ch1
- db CH5
- dw SFX_Get_Key_Item_1_Ch2
- db CH6
- dw SFX_Get_Key_Item_1_Ch3
+ dbw ( $80 | CH4 ), SFX_Get_Key_Item_1_Ch1
+ dbw CH5, SFX_Get_Key_Item_1_Ch2
+ dbw CH6, SFX_Get_Key_Item_1_Ch3
SFX_Poisoned_1::
- db CH4
- dw SFX_Poisoned_1_Ch1
+ dbw CH4, SFX_Poisoned_1_Ch1
SFX_Trade_Machine_1::
- db CH4
- dw SFX_Trade_Machine_1_Ch1
+ dbw CH4, SFX_Trade_Machine_1_Ch1
SFX_Turn_On_PC_1::
- db CH4
- dw SFX_Turn_On_PC_1_Ch1
+ dbw CH4, SFX_Turn_On_PC_1_Ch1
SFX_Turn_Off_PC_1::
- db CH4
- dw SFX_Turn_Off_PC_1_Ch1
+ dbw CH4, SFX_Turn_Off_PC_1_Ch1
SFX_Enter_PC_1::
- db CH4
- dw SFX_Enter_PC_1_Ch1
+ dbw CH4, SFX_Enter_PC_1_Ch1
SFX_Shrink_1::
- db CH4
- dw SFX_Shrink_1_Ch1
+ dbw CH4, SFX_Shrink_1_Ch1
SFX_Switch_1::
- db CH4
- dw SFX_Switch_1_Ch1
+ dbw CH4, SFX_Switch_1_Ch1
SFX_Healing_Machine_1::
- db CH4
- dw SFX_Healing_Machine_1_Ch1
+ dbw CH4, SFX_Healing_Machine_1_Ch1
SFX_Teleport_Exit1_1::
- db CH4
- dw SFX_Teleport_Exit1_1_Ch1
+ dbw CH4, SFX_Teleport_Exit1_1_Ch1
SFX_Teleport_Enter1_1::
- db CH4
- dw SFX_Teleport_Enter1_1_Ch1
+ dbw CH4, SFX_Teleport_Enter1_1_Ch1
SFX_Teleport_Exit2_1::
- db CH4
- dw SFX_Teleport_Exit2_1_Ch1
+ dbw CH4, SFX_Teleport_Exit2_1_Ch1
SFX_Ledge_1::
- db CH4
- dw SFX_Ledge_1_Ch1
+ dbw CH4, SFX_Ledge_1_Ch1
SFX_Teleport_Enter2_1::
- db CH7
- dw SFX_Teleport_Enter2_1_Ch1
+ dbw CH7, SFX_Teleport_Enter2_1_Ch1
SFX_Fly_1::
- db CH7
- dw SFX_Fly_1_Ch1
+ dbw CH7, SFX_Fly_1_Ch1
SFX_Denied_1::
- db ( $40 | CH4 )
- dw SFX_Denied_1_Ch1
- db CH5
- dw SFX_Denied_1_Ch2
+ dbw ( $40 | CH4 ), SFX_Denied_1_Ch1
+ dbw CH5, SFX_Denied_1_Ch2
SFX_Arrow_Tiles_1::
- db CH4
- dw SFX_Arrow_Tiles_1_Ch1
+ dbw CH4, SFX_Arrow_Tiles_1_Ch1
SFX_Push_Boulder_1::
- db CH7
- dw SFX_Push_Boulder_1_Ch1
+ dbw CH7, SFX_Push_Boulder_1_Ch1
SFX_SS_Anne_Horn_1::
- db ( $40 | CH4 )
- dw SFX_SS_Anne_Horn_1_Ch1
- db CH5
- dw SFX_SS_Anne_Horn_1_Ch2
+ dbw ( $40 | CH4 ), SFX_SS_Anne_Horn_1_Ch1
+ dbw CH5, SFX_SS_Anne_Horn_1_Ch2
SFX_Withdraw_Deposit_1::
- db CH4
- dw SFX_Withdraw_Deposit_1_Ch1
+ dbw CH4, SFX_Withdraw_Deposit_1_Ch1
SFX_Cut_1::
- db CH7
- dw SFX_Cut_1_Ch1
+ dbw CH7, SFX_Cut_1_Ch1
SFX_Go_Inside_1::
- db CH7
- dw SFX_Go_Inside_1_Ch1
+ dbw CH7, SFX_Go_Inside_1_Ch1
SFX_Swap_1::
- db ( $40 | CH4 )
- dw SFX_Swap_1_Ch1
- db CH5
- dw SFX_Swap_1_Ch2
+ dbw ( $40 | CH4 ), SFX_Swap_1_Ch1
+ dbw CH5, SFX_Swap_1_Ch2
SFX_59_1::
- db ( $40 | CH4 )
- dw SFX_59_1_Ch1
- db CH5
- dw SFX_59_1_Ch2
+ dbw ( $40 | CH4 ), SFX_59_1_Ch1
+ dbw CH5, SFX_59_1_Ch2
SFX_Purchase_1::
- db ( $40 | CH4 )
- dw SFX_Purchase_1_Ch1
- db CH5
- dw SFX_Purchase_1_Ch2
+ dbw ( $40 | CH4 ), SFX_Purchase_1_Ch1
+ dbw CH5, SFX_Purchase_1_Ch2
SFX_Collision_1::
- db CH4
- dw SFX_Collision_1_Ch1
+ dbw CH4, SFX_Collision_1_Ch1
SFX_Go_Outside_1::
- db CH7
- dw SFX_Go_Outside_1_Ch1
+ dbw CH7, SFX_Go_Outside_1_Ch1
SFX_Save_1::
- db ( $40 | CH4 )
- dw SFX_Save_1_Ch1
- db CH5
- dw SFX_Save_1_Ch2
+ dbw ( $40 | CH4 ), SFX_Save_1_Ch1
+ dbw CH5, SFX_Save_1_Ch2
SFX_Pokeflute::
- db CH2
- dw SFX_Pokeflute_Ch1
+ dbw CH2, SFX_Pokeflute_Ch1
SFX_Safari_Zone_PA::
- db CH4
- dw SFX_Safari_Zone_PA_Ch1
+ dbw CH4, SFX_Safari_Zone_PA_Ch1
diff --git a/audio/headers/sfxheaders2.asm b/audio/headers/sfxheaders2.asm
index 1b6f8a5c..2f517d10 100644
--- a/audio/headers/sfxheaders2.asm
+++ b/audio/headers/sfxheaders2.asm
@@ -1,706 +1,473 @@
SFX_Headers_2::
- db $ff, $ff, $ff ; padding
+ dbw -1, -1 ; padding
SFX_Snare1_2::
- db CH7
- dw SFX_Snare1_2_Ch1
+ dbw CH7, SFX_Snare1_2_Ch1
SFX_Snare2_2::
- db CH7
- dw SFX_Snare2_2_Ch1
+ dbw CH7, SFX_Snare2_2_Ch1
SFX_Snare3_2::
- db CH7
- dw SFX_Snare3_2_Ch1
+ dbw CH7, SFX_Snare3_2_Ch1
SFX_Snare4_2::
- db CH7
- dw SFX_Snare4_2_Ch1
+ dbw CH7, SFX_Snare4_2_Ch1
SFX_Snare5_2::
- db CH7
- dw SFX_Snare5_2_Ch1
+ dbw CH7, SFX_Snare5_2_Ch1
SFX_Triangle1_2::
- db CH7
- dw SFX_Triangle1_2_Ch1
+ dbw CH7, SFX_Triangle1_2_Ch1
SFX_Triangle2_2::
- db CH7
- dw SFX_Triangle2_2_Ch1
+ dbw CH7, SFX_Triangle2_2_Ch1
SFX_Snare6_2::
- db CH7
- dw SFX_Snare6_2_Ch1
+ dbw CH7, SFX_Snare6_2_Ch1
SFX_Snare7_2::
- db CH7
- dw SFX_Snare7_2_Ch1
+ dbw CH7, SFX_Snare7_2_Ch1
SFX_Snare8_2::
- db CH7
- dw SFX_Snare8_2_Ch1
+ dbw CH7, SFX_Snare8_2_Ch1
SFX_Snare9_2::
- db CH7
- dw SFX_Snare9_2_Ch1
+ dbw CH7, SFX_Snare9_2_Ch1
SFX_Cymbal1_2::
- db CH7
- dw SFX_Cymbal1_2_Ch1
+ dbw CH7, SFX_Cymbal1_2_Ch1
SFX_Cymbal2_2::
- db CH7
- dw SFX_Cymbal2_2_Ch1
+ dbw CH7, SFX_Cymbal2_2_Ch1
SFX_Cymbal3_2::
- db CH7
- dw SFX_Cymbal3_2_Ch1
+ dbw CH7, SFX_Cymbal3_2_Ch1
SFX_Muted_Snare1_2::
- db CH7
- dw SFX_Muted_Snare1_2_Ch1
+ dbw CH7, SFX_Muted_Snare1_2_Ch1
SFX_Triangle3_2::
- db CH7
- dw SFX_Triangle3_2_Ch1
+ dbw CH7, SFX_Triangle3_2_Ch1
SFX_Muted_Snare2_2::
- db CH7
- dw SFX_Muted_Snare2_2_Ch1
+ dbw CH7, SFX_Muted_Snare2_2_Ch1
SFX_Muted_Snare3_2::
- db CH7
- dw SFX_Muted_Snare3_2_Ch1
+ dbw CH7, SFX_Muted_Snare3_2_Ch1
SFX_Muted_Snare4_2::
- db CH7
- dw SFX_Muted_Snare4_2_Ch1
+ dbw CH7, SFX_Muted_Snare4_2_Ch1
SFX_Cry00_2::
- db ( $80 | CH4 )
- dw SFX_Cry00_2_Ch1
- db CH5
- dw SFX_Cry00_2_Ch2
- db CH7
- dw SFX_Cry00_2_Ch3
+ dbw ( $80 | CH4 ), SFX_Cry00_2_Ch1
+ dbw CH5, SFX_Cry00_2_Ch2
+ dbw CH7, SFX_Cry00_2_Ch3
SFX_Cry01_2::
- db ( $80 | CH4 )
- dw SFX_Cry01_2_Ch1
- db CH5
- dw SFX_Cry01_2_Ch2
- db CH7
- dw SFX_Cry01_2_Ch3
+ dbw ( $80 | CH4 ), SFX_Cry01_2_Ch1
+ dbw CH5, SFX_Cry01_2_Ch2
+ dbw CH7, SFX_Cry01_2_Ch3
SFX_Cry02_2::
- db ( $80 | CH4 )
- dw SFX_Cry02_2_Ch1
- db CH5
- dw SFX_Cry02_2_Ch2
- db CH7
- dw SFX_Cry02_2_Ch3
+ dbw ( $80 | CH4 ), SFX_Cry02_2_Ch1
+ dbw CH5, SFX_Cry02_2_Ch2
+ dbw CH7, SFX_Cry02_2_Ch3
SFX_Cry03_2::
- db ( $80 | CH4 )
- dw SFX_Cry03_2_Ch1
- db CH5
- dw SFX_Cry03_2_Ch2
- db CH7
- dw SFX_Cry03_2_Ch3
+ dbw ( $80 | CH4 ), SFX_Cry03_2_Ch1
+ dbw CH5, SFX_Cry03_2_Ch2
+ dbw CH7, SFX_Cry03_2_Ch3
SFX_Cry04_2::
- db ( $80 | CH4 )
- dw SFX_Cry04_2_Ch1
- db CH5
- dw SFX_Cry04_2_Ch2
- db CH7
- dw SFX_Cry04_2_Ch3
+ dbw ( $80 | CH4 ), SFX_Cry04_2_Ch1
+ dbw CH5, SFX_Cry04_2_Ch2
+ dbw CH7, SFX_Cry04_2_Ch3
SFX_Cry05_2::
- db ( $80 | CH4 )
- dw SFX_Cry05_2_Ch1
- db CH5
- dw SFX_Cry05_2_Ch2
- db CH7
- dw SFX_Cry05_2_Ch3
+ dbw ( $80 | CH4 ), SFX_Cry05_2_Ch1
+ dbw CH5, SFX_Cry05_2_Ch2
+ dbw CH7, SFX_Cry05_2_Ch3
SFX_Cry06_2::
- db ( $80 | CH4 )
- dw SFX_Cry06_2_Ch1
- db CH5
- dw SFX_Cry06_2_Ch2
- db CH7
- dw SFX_Cry06_2_Ch3
+ dbw ( $80 | CH4 ), SFX_Cry06_2_Ch1
+ dbw CH5, SFX_Cry06_2_Ch2
+ dbw CH7, SFX_Cry06_2_Ch3
SFX_Cry07_2::
- db ( $80 | CH4 )
- dw SFX_Cry07_2_Ch1
- db CH5
- dw SFX_Cry07_2_Ch2
- db CH7
- dw SFX_Cry07_2_Ch3
+ dbw ( $80 | CH4 ), SFX_Cry07_2_Ch1
+ dbw CH5, SFX_Cry07_2_Ch2
+ dbw CH7, SFX_Cry07_2_Ch3
SFX_Cry08_2::
- db ( $80 | CH4 )
- dw SFX_Cry08_2_Ch1
- db CH5
- dw SFX_Cry08_2_Ch2
- db CH7
- dw SFX_Cry08_2_Ch3
+ dbw ( $80 | CH4 ), SFX_Cry08_2_Ch1
+ dbw CH5, SFX_Cry08_2_Ch2
+ dbw CH7, SFX_Cry08_2_Ch3
SFX_Cry09_2::
- db ( $80 | CH4 )
- dw SFX_Cry09_2_Ch1
- db CH5
- dw SFX_Cry09_2_Ch2
- db CH7
- dw SFX_Cry09_2_Ch3
+ dbw ( $80 | CH4 ), SFX_Cry09_2_Ch1
+ dbw CH5, SFX_Cry09_2_Ch2
+ dbw CH7, SFX_Cry09_2_Ch3
SFX_Cry0A_2::
- db ( $80 | CH4 )
- dw SFX_Cry0A_2_Ch1
- db CH5
- dw SFX_Cry0A_2_Ch2
- db CH7
- dw SFX_Cry0A_2_Ch3
+ dbw ( $80 | CH4 ), SFX_Cry0A_2_Ch1
+ dbw CH5, SFX_Cry0A_2_Ch2
+ dbw CH7, SFX_Cry0A_2_Ch3
SFX_Cry0B_2::
- db ( $80 | CH4 )
- dw SFX_Cry0B_2_Ch1
- db CH5
- dw SFX_Cry0B_2_Ch2
- db CH7
- dw SFX_Cry0B_2_Ch3
+ dbw ( $80 | CH4 ), SFX_Cry0B_2_Ch1
+ dbw CH5, SFX_Cry0B_2_Ch2
+ dbw CH7, SFX_Cry0B_2_Ch3
SFX_Cry0C_2::
- db ( $80 | CH4 )
- dw SFX_Cry0C_2_Ch1
- db CH5
- dw SFX_Cry0C_2_Ch2
- db CH7
- dw SFX_Cry0C_2_Ch3
+ dbw ( $80 | CH4 ), SFX_Cry0C_2_Ch1
+ dbw CH5, SFX_Cry0C_2_Ch2
+ dbw CH7, SFX_Cry0C_2_Ch3
SFX_Cry0D_2::
- db ( $80 | CH4 )
- dw SFX_Cry0D_2_Ch1
- db CH5
- dw SFX_Cry0D_2_Ch2
- db CH7
- dw SFX_Cry0D_2_Ch3
+ dbw ( $80 | CH4 ), SFX_Cry0D_2_Ch1
+ dbw CH5, SFX_Cry0D_2_Ch2
+ dbw CH7, SFX_Cry0D_2_Ch3
SFX_Cry0E_2::
- db ( $80 | CH4 )
- dw SFX_Cry0E_2_Ch1
- db CH5
- dw SFX_Cry0E_2_Ch2
- db CH7
- dw SFX_Cry0E_2_Ch3
+ dbw ( $80 | CH4 ), SFX_Cry0E_2_Ch1
+ dbw CH5, SFX_Cry0E_2_Ch2
+ dbw CH7, SFX_Cry0E_2_Ch3
SFX_Cry0F_2::
- db ( $80 | CH4 )
- dw SFX_Cry0F_2_Ch1
- db CH5
- dw SFX_Cry0F_2_Ch2
- db CH7
- dw SFX_Cry0F_2_Ch3
+ dbw ( $80 | CH4 ), SFX_Cry0F_2_Ch1
+ dbw CH5, SFX_Cry0F_2_Ch2
+ dbw CH7, SFX_Cry0F_2_Ch3
SFX_Cry10_2::
- db ( $80 | CH4 )
- dw SFX_Cry10_2_Ch1
- db CH5
- dw SFX_Cry10_2_Ch2
- db CH7
- dw SFX_Cry10_2_Ch3
+ dbw ( $80 | CH4 ), SFX_Cry10_2_Ch1
+ dbw CH5, SFX_Cry10_2_Ch2
+ dbw CH7, SFX_Cry10_2_Ch3
SFX_Cry11_2::
- db ( $80 | CH4 )
- dw SFX_Cry11_2_Ch1
- db CH5
- dw SFX_Cry11_2_Ch2
- db CH7
- dw SFX_Cry11_2_Ch3
+ dbw ( $80 | CH4 ), SFX_Cry11_2_Ch1
+ dbw CH5, SFX_Cry11_2_Ch2
+ dbw CH7, SFX_Cry11_2_Ch3
SFX_Cry12_2::
- db ( $80 | CH4 )
- dw SFX_Cry12_2_Ch1
- db CH5
- dw SFX_Cry12_2_Ch2
- db CH7
- dw SFX_Cry12_2_Ch3
+ dbw ( $80 | CH4 ), SFX_Cry12_2_Ch1
+ dbw CH5, SFX_Cry12_2_Ch2
+ dbw CH7, SFX_Cry12_2_Ch3
SFX_Cry13_2::
- db ( $80 | CH4 )
- dw SFX_Cry13_2_Ch1
- db CH5
- dw SFX_Cry13_2_Ch2
- db CH7
- dw SFX_Cry13_2_Ch3
+ dbw ( $80 | CH4 ), SFX_Cry13_2_Ch1
+ dbw CH5, SFX_Cry13_2_Ch2
+ dbw CH7, SFX_Cry13_2_Ch3
SFX_Cry14_2::
- db ( $80 | CH4 )
- dw SFX_Cry14_2_Ch1
- db CH5
- dw SFX_Cry14_2_Ch2
- db CH7
- dw SFX_Cry14_2_Ch3
+ dbw ( $80 | CH4 ), SFX_Cry14_2_Ch1
+ dbw CH5, SFX_Cry14_2_Ch2
+ dbw CH7, SFX_Cry14_2_Ch3
SFX_Cry15_2::
- db ( $80 | CH4 )
- dw SFX_Cry15_2_Ch1
- db CH5
- dw SFX_Cry15_2_Ch2
- db CH7
- dw SFX_Cry15_2_Ch3
+ dbw ( $80 | CH4 ), SFX_Cry15_2_Ch1
+ dbw CH5, SFX_Cry15_2_Ch2
+ dbw CH7, SFX_Cry15_2_Ch3
SFX_Cry16_2::
- db ( $80 | CH4 )
- dw SFX_Cry16_2_Ch1
- db CH5
- dw SFX_Cry16_2_Ch2
- db CH7
- dw SFX_Cry16_2_Ch3
+ dbw ( $80 | CH4 ), SFX_Cry16_2_Ch1
+ dbw CH5, SFX_Cry16_2_Ch2
+ dbw CH7, SFX_Cry16_2_Ch3
SFX_Cry17_2::
- db ( $80 | CH4 )
- dw SFX_Cry17_2_Ch1
- db CH5
- dw SFX_Cry17_2_Ch2
- db CH7
- dw SFX_Cry17_2_Ch3
+ dbw ( $80 | CH4 ), SFX_Cry17_2_Ch1
+ dbw CH5, SFX_Cry17_2_Ch2
+ dbw CH7, SFX_Cry17_2_Ch3
SFX_Cry18_2::
- db ( $80 | CH4 )
- dw SFX_Cry18_2_Ch1
- db CH5
- dw SFX_Cry18_2_Ch2
- db CH7
- dw SFX_Cry18_2_Ch3
+ dbw ( $80 | CH4 ), SFX_Cry18_2_Ch1
+ dbw CH5, SFX_Cry18_2_Ch2
+ dbw CH7, SFX_Cry18_2_Ch3
SFX_Cry19_2::
- db ( $80 | CH4 )
- dw SFX_Cry19_2_Ch1
- db CH5
- dw SFX_Cry19_2_Ch2
- db CH7
- dw SFX_Cry19_2_Ch3
+ dbw ( $80 | CH4 ), SFX_Cry19_2_Ch1
+ dbw CH5, SFX_Cry19_2_Ch2
+ dbw CH7, SFX_Cry19_2_Ch3
SFX_Cry1A_2::
- db ( $80 | CH4 )
- dw SFX_Cry1A_2_Ch1
- db CH5
- dw SFX_Cry1A_2_Ch2
- db CH7
- dw SFX_Cry1A_2_Ch3
+ dbw ( $80 | CH4 ), SFX_Cry1A_2_Ch1
+ dbw CH5, SFX_Cry1A_2_Ch2
+ dbw CH7, SFX_Cry1A_2_Ch3
SFX_Cry1B_2::
- db ( $80 | CH4 )
- dw SFX_Cry1B_2_Ch1
- db CH5
- dw SFX_Cry1B_2_Ch2
- db CH7
- dw SFX_Cry1B_2_Ch3
+ dbw ( $80 | CH4 ), SFX_Cry1B_2_Ch1
+ dbw CH5, SFX_Cry1B_2_Ch2
+ dbw CH7, SFX_Cry1B_2_Ch3
SFX_Cry1C_2::
- db ( $80 | CH4 )
- dw SFX_Cry1C_2_Ch1
- db CH5
- dw SFX_Cry1C_2_Ch2
- db CH7
- dw SFX_Cry1C_2_Ch3
+ dbw ( $80 | CH4 ), SFX_Cry1C_2_Ch1
+ dbw CH5, SFX_Cry1C_2_Ch2
+ dbw CH7, SFX_Cry1C_2_Ch3
SFX_Cry1D_2::
- db ( $80 | CH4 )
- dw SFX_Cry1D_2_Ch1
- db CH5
- dw SFX_Cry1D_2_Ch2
- db CH7
- dw SFX_Cry1D_2_Ch3
+ dbw ( $80 | CH4 ), SFX_Cry1D_2_Ch1
+ dbw CH5, SFX_Cry1D_2_Ch2
+ dbw CH7, SFX_Cry1D_2_Ch3
SFX_Cry1E_2::
- db ( $80 | CH4 )
- dw SFX_Cry1E_2_Ch1
- db CH5
- dw SFX_Cry1E_2_Ch2
- db CH7
- dw SFX_Cry1E_2_Ch3
+ dbw ( $80 | CH4 ), SFX_Cry1E_2_Ch1
+ dbw CH5, SFX_Cry1E_2_Ch2
+ dbw CH7, SFX_Cry1E_2_Ch3
SFX_Cry1F_2::
- db ( $80 | CH4 )
- dw SFX_Cry1F_2_Ch1
- db CH5
- dw SFX_Cry1F_2_Ch2
- db CH7
- dw SFX_Cry1F_2_Ch3
+ dbw ( $80 | CH4 ), SFX_Cry1F_2_Ch1
+ dbw CH5, SFX_Cry1F_2_Ch2
+ dbw CH7, SFX_Cry1F_2_Ch3
SFX_Cry20_2::
- db ( $80 | CH4 )
- dw SFX_Cry20_2_Ch1
- db CH5
- dw SFX_Cry20_2_Ch2
- db CH7
- dw SFX_Cry20_2_Ch3
+ dbw ( $80 | CH4 ), SFX_Cry20_2_Ch1
+ dbw CH5, SFX_Cry20_2_Ch2
+ dbw CH7, SFX_Cry20_2_Ch3
SFX_Cry21_2::
- db ( $80 | CH4 )
- dw SFX_Cry21_2_Ch1
- db CH5
- dw SFX_Cry21_2_Ch2
- db CH7
- dw SFX_Cry21_2_Ch3
+ dbw ( $80 | CH4 ), SFX_Cry21_2_Ch1
+ dbw CH5, SFX_Cry21_2_Ch2
+ dbw CH7, SFX_Cry21_2_Ch3
SFX_Cry22_2::
- db ( $80 | CH4 )
- dw SFX_Cry22_2_Ch1
- db CH5
- dw SFX_Cry22_2_Ch2
- db CH7
- dw SFX_Cry22_2_Ch3
+ dbw ( $80 | CH4 ), SFX_Cry22_2_Ch1
+ dbw CH5, SFX_Cry22_2_Ch2
+ dbw CH7, SFX_Cry22_2_Ch3
SFX_Cry23_2::
- db ( $80 | CH4 )
- dw SFX_Cry23_2_Ch1
- db CH5
- dw SFX_Cry23_2_Ch2
- db CH7
- dw SFX_Cry23_2_Ch3
+ dbw ( $80 | CH4 ), SFX_Cry23_2_Ch1
+ dbw CH5, SFX_Cry23_2_Ch2
+ dbw CH7, SFX_Cry23_2_Ch3
SFX_Cry24_2::
- db ( $80 | CH4 )
- dw SFX_Cry24_2_Ch1
- db CH5
- dw SFX_Cry24_2_Ch2
- db CH7
- dw SFX_Cry24_2_Ch3
+ dbw ( $80 | CH4 ), SFX_Cry24_2_Ch1
+ dbw CH5, SFX_Cry24_2_Ch2
+ dbw CH7, SFX_Cry24_2_Ch3
SFX_Cry25_2::
- db ( $80 | CH4 )
- dw SFX_Cry25_2_Ch1
- db CH5
- dw SFX_Cry25_2_Ch2
- db CH7
- dw SFX_Cry25_2_Ch3
+ dbw ( $80 | CH4 ), SFX_Cry25_2_Ch1
+ dbw CH5, SFX_Cry25_2_Ch2
+ dbw CH7, SFX_Cry25_2_Ch3
SFX_Level_Up::
- db ( $80 | CH4 )
- dw SFX_Level_Up_Ch1
- db CH5
- dw SFX_Level_Up_Ch2
- db CH6
- dw SFX_Level_Up_Ch3
+ dbw ( $80 | CH4 ), SFX_Level_Up_Ch1
+ dbw CH5, SFX_Level_Up_Ch2
+ dbw CH6, SFX_Level_Up_Ch3
SFX_Get_Item2_2::
- db ( $80 | CH4 )
- dw SFX_Get_Item2_2_Ch1
- db CH5
- dw SFX_Get_Item2_2_Ch2
- db CH6
- dw SFX_Get_Item2_2_Ch3
+ dbw ( $80 | CH4 ), SFX_Get_Item2_2_Ch1
+ dbw CH5, SFX_Get_Item2_2_Ch2
+ dbw CH6, SFX_Get_Item2_2_Ch3
SFX_Tink_2::
- db CH4
- dw SFX_Tink_2_Ch1
+ dbw CH4, SFX_Tink_2_Ch1
SFX_Heal_HP_2::
- db CH4
- dw SFX_Heal_HP_2_Ch1
+ dbw CH4, SFX_Heal_HP_2_Ch1
SFX_Heal_Ailment_2::
- db CH4
- dw SFX_Heal_Ailment_2_Ch1
+ dbw CH4, SFX_Heal_Ailment_2_Ch1
SFX_Start_Menu_2::
- db CH7
- dw SFX_Start_Menu_2_Ch1
+ dbw CH7, SFX_Start_Menu_2_Ch1
SFX_Press_AB_2::
- db CH4
- dw SFX_Press_AB_2_Ch1
+ dbw CH4, SFX_Press_AB_2_Ch1
SFX_Ball_Toss::
- db ( $40 | CH4 )
- dw SFX_Ball_Toss_Ch1
- db CH5
- dw SFX_Ball_Toss_Ch2
+ dbw ( $40 | CH4 ), SFX_Ball_Toss_Ch1
+ dbw CH5, SFX_Ball_Toss_Ch2
SFX_Ball_Poof::
- db ( $40 | CH4 )
- dw SFX_Ball_Poof_Ch1
- db CH7
- dw SFX_Ball_Poof_Ch2
+ dbw ( $40 | CH4 ), SFX_Ball_Poof_Ch1
+ dbw CH7, SFX_Ball_Poof_Ch2
SFX_Faint_Thud::
- db ( $40 | CH4 )
- dw SFX_Faint_Thud_Ch1
- db CH7
- dw SFX_Faint_Thud_Ch2
+ dbw ( $40 | CH4 ), SFX_Faint_Thud_Ch1
+ dbw CH7, SFX_Faint_Thud_Ch2
SFX_Run::
- db CH7
- dw SFX_Run_Ch1
+ dbw CH7, SFX_Run_Ch1
SFX_Dex_Page_Added::
- db ( $40 | CH4 )
- dw SFX_Dex_Page_Added_Ch1
- db CH5
- dw SFX_Dex_Page_Added_Ch2
+ dbw ( $40 | CH4 ), SFX_Dex_Page_Added_Ch1
+ dbw CH5, SFX_Dex_Page_Added_Ch2
SFX_Caught_Mon::
- db ( $80 | CH4 )
- dw SFX_Caught_Mon_Ch1
- db CH5
- dw SFX_Caught_Mon_Ch2
- db CH6
- dw SFX_Caught_Mon_Ch3
+ dbw ( $80 | CH4 ), SFX_Caught_Mon_Ch1
+ dbw CH5, SFX_Caught_Mon_Ch2
+ dbw CH6, SFX_Caught_Mon_Ch3
SFX_Peck::
- db CH7
- dw SFX_Peck_Ch1
+ dbw CH7, SFX_Peck_Ch1
SFX_Faint_Fall::
- db CH4
- dw SFX_Faint_Fall_Ch1
+ dbw CH4, SFX_Faint_Fall_Ch1
SFX_Battle_09::
- db CH4
- dw SFX_Battle_09_Ch1
+ dbw CH4, SFX_Battle_09_Ch1
SFX_Pound::
- db CH7
- dw SFX_Pound_Ch1
+ dbw CH7, SFX_Pound_Ch1
SFX_Battle_0B::
- db CH7
- dw SFX_Battle_0B_Ch1
+ dbw CH7, SFX_Battle_0B_Ch1
SFX_Battle_0C::
- db CH7
- dw SFX_Battle_0C_Ch1
+ dbw CH7, SFX_Battle_0C_Ch1
SFX_Battle_0D::
- db CH7
- dw SFX_Battle_0D_Ch1
+ dbw CH7, SFX_Battle_0D_Ch1
SFX_Battle_0E::
- db CH7
- dw SFX_Battle_0E_Ch1
+ dbw CH7, SFX_Battle_0E_Ch1
SFX_Battle_0F::
- db CH7
- dw SFX_Battle_0F_Ch1
+ dbw CH7, SFX_Battle_0F_Ch1
SFX_Damage::
- db CH7
- dw SFX_Damage_Ch1
+ dbw CH7, SFX_Damage_Ch1
SFX_Not_Very_Effective::
- db CH7
- dw SFX_Not_Very_Effective_Ch1
+ dbw CH7, SFX_Not_Very_Effective_Ch1
SFX_Battle_12::
- db CH7
- dw SFX_Battle_12_Ch1
+ dbw CH7, SFX_Battle_12_Ch1
SFX_Battle_13::
- db CH7
- dw SFX_Battle_13_Ch1
+ dbw CH7, SFX_Battle_13_Ch1
SFX_Battle_14::
- db CH7
- dw SFX_Battle_14_Ch1
+ dbw CH7, SFX_Battle_14_Ch1
SFX_Vine_Whip::
- db CH7
- dw SFX_Vine_Whip_Ch1
+ dbw CH7, SFX_Vine_Whip_Ch1
SFX_Battle_16::
- db CH7
- dw SFX_Battle_16_Ch1
+ dbw CH7, SFX_Battle_16_Ch1
SFX_Battle_17::
- db CH7
- dw SFX_Battle_17_Ch1
+ dbw CH7, SFX_Battle_17_Ch1
SFX_Battle_18::
- db CH7
- dw SFX_Battle_18_Ch1
+ dbw CH7, SFX_Battle_18_Ch1
SFX_Battle_19::
- db CH7
- dw SFX_Battle_19_Ch1
+ dbw CH7, SFX_Battle_19_Ch1
SFX_Super_Effective::
- db CH7
- dw SFX_Super_Effective_Ch1
+ dbw CH7, SFX_Super_Effective_Ch1
SFX_Battle_1B::
- db CH7
- dw SFX_Battle_1B_Ch1
+ dbw CH7, SFX_Battle_1B_Ch1
SFX_Battle_1C::
- db CH7
- dw SFX_Battle_1C_Ch1
+ dbw CH7, SFX_Battle_1C_Ch1
SFX_Doubleslap::
- db CH7
- dw SFX_Doubleslap_Ch1
+ dbw CH7, SFX_Doubleslap_Ch1
SFX_Battle_1E::
- db ( $40 | CH4 )
- dw SFX_Battle_1E_Ch1
- db CH7
- dw SFX_Battle_1E_Ch2
+ dbw ( $40 | CH4 ), SFX_Battle_1E_Ch1
+ dbw CH7, SFX_Battle_1E_Ch2
SFX_Horn_Drill::
- db CH7
- dw SFX_Horn_Drill_Ch1
+ dbw CH7, SFX_Horn_Drill_Ch1
SFX_Battle_20::
- db CH7
- dw SFX_Battle_20_Ch1
+ dbw CH7, SFX_Battle_20_Ch1
SFX_Battle_21::
- db CH7
- dw SFX_Battle_21_Ch1
+ dbw CH7, SFX_Battle_21_Ch1
SFX_Battle_22::
- db CH7
- dw SFX_Battle_22_Ch1
+ dbw CH7, SFX_Battle_22_Ch1
SFX_Battle_23::
- db CH7
- dw SFX_Battle_23_Ch1
+ dbw CH7, SFX_Battle_23_Ch1
SFX_Battle_24::
- db ( $40 | CH4 )
- dw SFX_Battle_24_Ch1
- db CH7
- dw SFX_Battle_24_Ch2
+ dbw ( $40 | CH4 ), SFX_Battle_24_Ch1
+ dbw CH7, SFX_Battle_24_Ch2
SFX_Battle_25::
- db CH7
- dw SFX_Battle_25_Ch1
+ dbw CH7, SFX_Battle_25_Ch1
SFX_Battle_26::
- db CH7
- dw SFX_Battle_26_Ch1
+ dbw CH7, SFX_Battle_26_Ch1
SFX_Battle_27::
- db ( $80 | CH4 )
- dw SFX_Battle_27_Ch1
- db CH5
- dw SFX_Battle_27_Ch2
- db CH7
- dw SFX_Battle_27_Ch3
+ dbw ( $80 | CH4 ), SFX_Battle_27_Ch1
+ dbw CH5, SFX_Battle_27_Ch2
+ dbw CH7, SFX_Battle_27_Ch3
SFX_Battle_28::
- db ( $80 | CH4 )
- dw SFX_Battle_28_Ch1
- db CH5
- dw SFX_Battle_28_Ch2
- db CH7
- dw SFX_Battle_28_Ch3
-
-SFX_Battle_29::
- db ( $40 | CH4 )
- dw SFX_Battle_29_Ch1
- db CH7
- dw SFX_Battle_29_Ch2
+ dbw ( $80 | CH4 ), SFX_Battle_28_Ch1
+ dbw CH5, SFX_Battle_28_Ch2
+ dbw CH7, SFX_Battle_28_Ch3
+
+SFX_Earthquake::
+ dbw ( $40 | CH4 ), SFX_Earthquake_Ch1
+ dbw CH7, SFX_Earthquake_Ch2
SFX_Battle_2A::
- db ( $80 | CH4 )
- dw SFX_Battle_2A_Ch1
- db CH5
- dw SFX_Battle_2A_Ch2
- db CH7
- dw SFX_Battle_2A_Ch3
+ dbw ( $80 | CH4 ), SFX_Battle_2A_Ch1
+ dbw CH5, SFX_Battle_2A_Ch2
+ dbw CH7, SFX_Battle_2A_Ch3
SFX_Battle_2B::
- db ( $40 | CH4 )
- dw SFX_Battle_2B_Ch1
- db CH7
- dw SFX_Battle_2B_Ch2
+ dbw ( $40 | CH4 ), SFX_Battle_2B_Ch1
+ dbw CH7, SFX_Battle_2B_Ch2
SFX_Battle_2C::
- db ( $80 | CH4 )
- dw SFX_Battle_2C_Ch1
- db CH5
- dw SFX_Battle_2C_Ch2
- db CH7
- dw SFX_Battle_2C_Ch3
+ dbw ( $80 | CH4 ), SFX_Battle_2C_Ch1
+ dbw CH5, SFX_Battle_2C_Ch2
+ dbw CH7, SFX_Battle_2C_Ch3
SFX_Psybeam::
- db ( $80 | CH4 )
- dw SFX_Psybeam_Ch1
- db CH5
- dw SFX_Psybeam_Ch2
- db CH7
- dw SFX_Psybeam_Ch3
+ dbw ( $80 | CH4 ), SFX_Psybeam_Ch1
+ dbw CH5, SFX_Psybeam_Ch2
+ dbw CH7, SFX_Psybeam_Ch3
SFX_Battle_2E::
- db ( $80 | CH4 )
- dw SFX_Battle_2E_Ch1
- db CH5
- dw SFX_Battle_2E_Ch2
- db CH7
- dw SFX_Battle_2E_Ch3
-
-SFX_Battle_2F::
- db ( $80 | CH4 )
- dw SFX_Battle_2F_Ch1
- db CH5
- dw SFX_Battle_2F_Ch2
- db CH7
- dw SFX_Battle_2F_Ch3
+ dbw ( $80 | CH4 ), SFX_Battle_2E_Ch1
+ dbw CH5, SFX_Battle_2E_Ch2
+ dbw CH7, SFX_Battle_2E_Ch3
+
+SFX_Thunderbolt::
+ dbw ( $80 | CH4 ), SFX_Thunderbolt_Ch1
+ dbw CH5, SFX_Thunderbolt_Ch2
+ dbw CH7, SFX_Thunderbolt_Ch3
SFX_Psychic_M::
- db ( $80 | CH4 )
- dw SFX_Psychic_M_Ch1
- db CH5
- dw SFX_Psychic_M_Ch2
- db CH7
- dw SFX_Psychic_M_Ch3
+ dbw ( $80 | CH4 ), SFX_Psychic_M_Ch1
+ dbw CH5, SFX_Psychic_M_Ch2
+ dbw CH7, SFX_Psychic_M_Ch3
SFX_Battle_31::
- db ( $40 | CH4 )
- dw SFX_Battle_31_Ch1
- db CH5
- dw SFX_Battle_31_Ch2
+ dbw ( $40 | CH4 ), SFX_Battle_31_Ch1
+ dbw CH5, SFX_Battle_31_Ch2
SFX_Battle_32::
- db ( $40 | CH4 )
- dw SFX_Battle_32_Ch1
- db CH5
- dw SFX_Battle_32_Ch2
+ dbw ( $40 | CH4 ), SFX_Battle_32_Ch1
+ dbw CH5, SFX_Battle_32_Ch2
SFX_Battle_33::
- db ( $40 | CH4 )
- dw SFX_Battle_33_Ch1
- db CH5
- dw SFX_Battle_33_Ch2
+ dbw ( $40 | CH4 ), SFX_Battle_33_Ch1
+ dbw CH5, SFX_Battle_33_Ch2
SFX_Battle_34::
- db ( $80 | CH4 )
- dw SFX_Battle_34_Ch1
- db CH5
- dw SFX_Battle_34_Ch2
- db CH7
- dw SFX_Battle_34_Ch3
+ dbw ( $80 | CH4 ), SFX_Battle_34_Ch1
+ dbw CH5, SFX_Battle_34_Ch2
+ dbw CH7, SFX_Battle_34_Ch3
SFX_Battle_35::
- db ( $40 | CH4 )
- dw SFX_Battle_35_Ch1
- db CH5
- dw SFX_Battle_35_Ch2
+ dbw ( $40 | CH4 ), SFX_Battle_35_Ch1
+ dbw CH5, SFX_Battle_35_Ch2
SFX_Battle_36::
- db ( $80 | CH4 )
- dw SFX_Battle_36_Ch1
- db CH5
- dw SFX_Battle_36_Ch2
- db CH7
- dw SFX_Battle_36_Ch3
+ dbw ( $80 | CH4 ), SFX_Battle_36_Ch1
+ dbw CH5, SFX_Battle_36_Ch2
+ dbw CH7, SFX_Battle_36_Ch3
SFX_Silph_Scope::
- db CH4
- dw SFX_Silph_Scope_Ch1
+ dbw CH4, SFX_Silph_Scope_Ch1
diff --git a/audio/headers/sfxheaders3.asm b/audio/headers/sfxheaders3.asm
index 0472afa6..cd940357 100644
--- a/audio/headers/sfxheaders3.asm
+++ b/audio/headers/sfxheaders3.asm
@@ -1,596 +1,402 @@
SFX_Headers_3::
- db $ff, $ff, $ff ; padding
+ dbw -1, -1 ; padding
SFX_Snare1_3::
- db CH7
- dw SFX_Snare1_3_Ch1
+ dbw CH7, SFX_Snare1_3_Ch1
SFX_Snare2_3::
- db CH7
- dw SFX_Snare2_3_Ch1
+ dbw CH7, SFX_Snare2_3_Ch1
SFX_Snare3_3::
- db CH7
- dw SFX_Snare3_3_Ch1
+ dbw CH7, SFX_Snare3_3_Ch1
SFX_Snare4_3::
- db CH7
- dw SFX_Snare4_3_Ch1
+ dbw CH7, SFX_Snare4_3_Ch1
SFX_Snare5_3::
- db CH7
- dw SFX_Snare5_3_Ch1
+ dbw CH7, SFX_Snare5_3_Ch1
SFX_Triangle1_3::
- db CH7
- dw SFX_Triangle1_3_Ch1
+ dbw CH7, SFX_Triangle1_3_Ch1
SFX_Triangle2_3::
- db CH7
- dw SFX_Triangle2_3_Ch1
+ dbw CH7, SFX_Triangle2_3_Ch1
SFX_Snare6_3::
- db CH7
- dw SFX_Snare6_3_Ch1
+ dbw CH7, SFX_Snare6_3_Ch1
SFX_Snare7_3::
- db CH7
- dw SFX_Snare7_3_Ch1
+ dbw CH7, SFX_Snare7_3_Ch1
SFX_Snare8_3::
- db CH7
- dw SFX_Snare8_3_Ch1
+ dbw CH7, SFX_Snare8_3_Ch1
SFX_Snare9_3::
- db CH7
- dw SFX_Snare9_3_Ch1
+ dbw CH7, SFX_Snare9_3_Ch1
SFX_Cymbal1_3::
- db CH7
- dw SFX_Cymbal1_3_Ch1
+ dbw CH7, SFX_Cymbal1_3_Ch1
SFX_Cymbal2_3::
- db CH7
- dw SFX_Cymbal2_3_Ch1
+ dbw CH7, SFX_Cymbal2_3_Ch1
SFX_Cymbal3_3::
- db CH7
- dw SFX_Cymbal3_3_Ch1
+ dbw CH7, SFX_Cymbal3_3_Ch1
SFX_Muted_Snare1_3::
- db CH7
- dw SFX_Muted_Snare1_3_Ch1
+ dbw CH7, SFX_Muted_Snare1_3_Ch1
SFX_Triangle3_3::
- db CH7
- dw SFX_Triangle3_3_Ch1
+ dbw CH7, SFX_Triangle3_3_Ch1
SFX_Muted_Snare2_3::
- db CH7
- dw SFX_Muted_Snare2_3_Ch1
+ dbw CH7, SFX_Muted_Snare2_3_Ch1
SFX_Muted_Snare3_3::
- db CH7
- dw SFX_Muted_Snare3_3_Ch1
+ dbw CH7, SFX_Muted_Snare3_3_Ch1
SFX_Muted_Snare4_3::
- db CH7
- dw SFX_Muted_Snare4_3_Ch1
+ dbw CH7, SFX_Muted_Snare4_3_Ch1
SFX_Cry00_3::
- db ( $80 | CH4 )
- dw SFX_Cry00_3_Ch1
- db CH5
- dw SFX_Cry00_3_Ch2
- db CH7
- dw SFX_Cry00_3_Ch3
+ dbw ( $80 | CH4 ), SFX_Cry00_3_Ch1
+ dbw CH5, SFX_Cry00_3_Ch2
+ dbw CH7, SFX_Cry00_3_Ch3
SFX_Cry01_3::
- db ( $80 | CH4 )
- dw SFX_Cry01_3_Ch1
- db CH5
- dw SFX_Cry01_3_Ch2
- db CH7
- dw SFX_Cry01_3_Ch3
+ dbw ( $80 | CH4 ), SFX_Cry01_3_Ch1
+ dbw CH5, SFX_Cry01_3_Ch2
+ dbw CH7, SFX_Cry01_3_Ch3
SFX_Cry02_3::
- db ( $80 | CH4 )
- dw SFX_Cry02_3_Ch1
- db CH5
- dw SFX_Cry02_3_Ch2
- db CH7
- dw SFX_Cry02_3_Ch3
+ dbw ( $80 | CH4 ), SFX_Cry02_3_Ch1
+ dbw CH5, SFX_Cry02_3_Ch2
+ dbw CH7, SFX_Cry02_3_Ch3
SFX_Cry03_3::
- db ( $80 | CH4 )
- dw SFX_Cry03_3_Ch1
- db CH5
- dw SFX_Cry03_3_Ch2
- db CH7
- dw SFX_Cry03_3_Ch3
+ dbw ( $80 | CH4 ), SFX_Cry03_3_Ch1
+ dbw CH5, SFX_Cry03_3_Ch2
+ dbw CH7, SFX_Cry03_3_Ch3
SFX_Cry04_3::
- db ( $80 | CH4 )
- dw SFX_Cry04_3_Ch1
- db CH5
- dw SFX_Cry04_3_Ch2
- db CH7
- dw SFX_Cry04_3_Ch3
+ dbw ( $80 | CH4 ), SFX_Cry04_3_Ch1
+ dbw CH5, SFX_Cry04_3_Ch2
+ dbw CH7, SFX_Cry04_3_Ch3
SFX_Cry05_3::
- db ( $80 | CH4 )
- dw SFX_Cry05_3_Ch1
- db CH5
- dw SFX_Cry05_3_Ch2
- db CH7
- dw SFX_Cry05_3_Ch3
+ dbw ( $80 | CH4 ), SFX_Cry05_3_Ch1
+ dbw CH5, SFX_Cry05_3_Ch2
+ dbw CH7, SFX_Cry05_3_Ch3
SFX_Cry06_3::
- db ( $80 | CH4 )
- dw SFX_Cry06_3_Ch1
- db CH5
- dw SFX_Cry06_3_Ch2
- db CH7
- dw SFX_Cry06_3_Ch3
+ dbw ( $80 | CH4 ), SFX_Cry06_3_Ch1
+ dbw CH5, SFX_Cry06_3_Ch2
+ dbw CH7, SFX_Cry06_3_Ch3
SFX_Cry07_3::
- db ( $80 | CH4 )
- dw SFX_Cry07_3_Ch1
- db CH5
- dw SFX_Cry07_3_Ch2
- db CH7
- dw SFX_Cry07_3_Ch3
+ dbw ( $80 | CH4 ), SFX_Cry07_3_Ch1
+ dbw CH5, SFX_Cry07_3_Ch2
+ dbw CH7, SFX_Cry07_3_Ch3
SFX_Cry08_3::
- db ( $80 | CH4 )
- dw SFX_Cry08_3_Ch1
- db CH5
- dw SFX_Cry08_3_Ch2
- db CH7
- dw SFX_Cry08_3_Ch3
+ dbw ( $80 | CH4 ), SFX_Cry08_3_Ch1
+ dbw CH5, SFX_Cry08_3_Ch2
+ dbw CH7, SFX_Cry08_3_Ch3
SFX_Cry09_3::
- db ( $80 | CH4 )
- dw SFX_Cry09_3_Ch1
- db CH5
- dw SFX_Cry09_3_Ch2
- db CH7
- dw SFX_Cry09_3_Ch3
+ dbw ( $80 | CH4 ), SFX_Cry09_3_Ch1
+ dbw CH5, SFX_Cry09_3_Ch2
+ dbw CH7, SFX_Cry09_3_Ch3
SFX_Cry0A_3::
- db ( $80 | CH4 )
- dw SFX_Cry0A_3_Ch1
- db CH5
- dw SFX_Cry0A_3_Ch2
- db CH7
- dw SFX_Cry0A_3_Ch3
+ dbw ( $80 | CH4 ), SFX_Cry0A_3_Ch1
+ dbw CH5, SFX_Cry0A_3_Ch2
+ dbw CH7, SFX_Cry0A_3_Ch3
SFX_Cry0B_3::
- db ( $80 | CH4 )
- dw SFX_Cry0B_3_Ch1
- db CH5
- dw SFX_Cry0B_3_Ch2
- db CH7
- dw SFX_Cry0B_3_Ch3
+ dbw ( $80 | CH4 ), SFX_Cry0B_3_Ch1
+ dbw CH5, SFX_Cry0B_3_Ch2
+ dbw CH7, SFX_Cry0B_3_Ch3
SFX_Cry0C_3::
- db ( $80 | CH4 )
- dw SFX_Cry0C_3_Ch1
- db CH5
- dw SFX_Cry0C_3_Ch2
- db CH7
- dw SFX_Cry0C_3_Ch3
+ dbw ( $80 | CH4 ), SFX_Cry0C_3_Ch1
+ dbw CH5, SFX_Cry0C_3_Ch2
+ dbw CH7, SFX_Cry0C_3_Ch3
SFX_Cry0D_3::
- db ( $80 | CH4 )
- dw SFX_Cry0D_3_Ch1
- db CH5
- dw SFX_Cry0D_3_Ch2
- db CH7
- dw SFX_Cry0D_3_Ch3
+ dbw ( $80 | CH4 ), SFX_Cry0D_3_Ch1
+ dbw CH5, SFX_Cry0D_3_Ch2
+ dbw CH7, SFX_Cry0D_3_Ch3
SFX_Cry0E_3::
- db ( $80 | CH4 )
- dw SFX_Cry0E_3_Ch1
- db CH5
- dw SFX_Cry0E_3_Ch2
- db CH7
- dw SFX_Cry0E_3_Ch3
+ dbw ( $80 | CH4 ), SFX_Cry0E_3_Ch1
+ dbw CH5, SFX_Cry0E_3_Ch2
+ dbw CH7, SFX_Cry0E_3_Ch3
SFX_Cry0F_3::
- db ( $80 | CH4 )
- dw SFX_Cry0F_3_Ch1
- db CH5
- dw SFX_Cry0F_3_Ch2
- db CH7
- dw SFX_Cry0F_3_Ch3
+ dbw ( $80 | CH4 ), SFX_Cry0F_3_Ch1
+ dbw CH5, SFX_Cry0F_3_Ch2
+ dbw CH7, SFX_Cry0F_3_Ch3
SFX_Cry10_3::
- db ( $80 | CH4 )
- dw SFX_Cry10_3_Ch1
- db CH5
- dw SFX_Cry10_3_Ch2
- db CH7
- dw SFX_Cry10_3_Ch3
+ dbw ( $80 | CH4 ), SFX_Cry10_3_Ch1
+ dbw CH5, SFX_Cry10_3_Ch2
+ dbw CH7, SFX_Cry10_3_Ch3
SFX_Cry11_3::
- db ( $80 | CH4 )
- dw SFX_Cry11_3_Ch1
- db CH5
- dw SFX_Cry11_3_Ch2
- db CH7
- dw SFX_Cry11_3_Ch3
+ dbw ( $80 | CH4 ), SFX_Cry11_3_Ch1
+ dbw CH5, SFX_Cry11_3_Ch2
+ dbw CH7, SFX_Cry11_3_Ch3
SFX_Cry12_3::
- db ( $80 | CH4 )
- dw SFX_Cry12_3_Ch1
- db CH5
- dw SFX_Cry12_3_Ch2
- db CH7
- dw SFX_Cry12_3_Ch3
+ dbw ( $80 | CH4 ), SFX_Cry12_3_Ch1
+ dbw CH5, SFX_Cry12_3_Ch2
+ dbw CH7, SFX_Cry12_3_Ch3
SFX_Cry13_3::
- db ( $80 | CH4 )
- dw SFX_Cry13_3_Ch1
- db CH5
- dw SFX_Cry13_3_Ch2
- db CH7
- dw SFX_Cry13_3_Ch3
+ dbw ( $80 | CH4 ), SFX_Cry13_3_Ch1
+ dbw CH5, SFX_Cry13_3_Ch2
+ dbw CH7, SFX_Cry13_3_Ch3
SFX_Cry14_3::
- db ( $80 | CH4 )
- dw SFX_Cry14_3_Ch1
- db CH5
- dw SFX_Cry14_3_Ch2
- db CH7
- dw SFX_Cry14_3_Ch3
+ dbw ( $80 | CH4 ), SFX_Cry14_3_Ch1
+ dbw CH5, SFX_Cry14_3_Ch2
+ dbw CH7, SFX_Cry14_3_Ch3
SFX_Cry15_3::
- db ( $80 | CH4 )
- dw SFX_Cry15_3_Ch1
- db CH5
- dw SFX_Cry15_3_Ch2
- db CH7
- dw SFX_Cry15_3_Ch3
+ dbw ( $80 | CH4 ), SFX_Cry15_3_Ch1
+ dbw CH5, SFX_Cry15_3_Ch2
+ dbw CH7, SFX_Cry15_3_Ch3
SFX_Cry16_3::
- db ( $80 | CH4 )
- dw SFX_Cry16_3_Ch1
- db CH5
- dw SFX_Cry16_3_Ch2
- db CH7
- dw SFX_Cry16_3_Ch3
+ dbw ( $80 | CH4 ), SFX_Cry16_3_Ch1
+ dbw CH5, SFX_Cry16_3_Ch2
+ dbw CH7, SFX_Cry16_3_Ch3
SFX_Cry17_3::
- db ( $80 | CH4 )
- dw SFX_Cry17_3_Ch1
- db CH5
- dw SFX_Cry17_3_Ch2
- db CH7
- dw SFX_Cry17_3_Ch3
+ dbw ( $80 | CH4 ), SFX_Cry17_3_Ch1
+ dbw CH5, SFX_Cry17_3_Ch2
+ dbw CH7, SFX_Cry17_3_Ch3
SFX_Cry18_3::
- db ( $80 | CH4 )
- dw SFX_Cry18_3_Ch1
- db CH5
- dw SFX_Cry18_3_Ch2
- db CH7
- dw SFX_Cry18_3_Ch3
+ dbw ( $80 | CH4 ), SFX_Cry18_3_Ch1
+ dbw CH5, SFX_Cry18_3_Ch2
+ dbw CH7, SFX_Cry18_3_Ch3
SFX_Cry19_3::
- db ( $80 | CH4 )
- dw SFX_Cry19_3_Ch1
- db CH5
- dw SFX_Cry19_3_Ch2
- db CH7
- dw SFX_Cry19_3_Ch3
+ dbw ( $80 | CH4 ), SFX_Cry19_3_Ch1
+ dbw CH5, SFX_Cry19_3_Ch2
+ dbw CH7, SFX_Cry19_3_Ch3
SFX_Cry1A_3::
- db ( $80 | CH4 )
- dw SFX_Cry1A_3_Ch1
- db CH5
- dw SFX_Cry1A_3_Ch2
- db CH7
- dw SFX_Cry1A_3_Ch3
+ dbw ( $80 | CH4 ), SFX_Cry1A_3_Ch1
+ dbw CH5, SFX_Cry1A_3_Ch2
+ dbw CH7, SFX_Cry1A_3_Ch3
SFX_Cry1B_3::
- db ( $80 | CH4 )
- dw SFX_Cry1B_3_Ch1
- db CH5
- dw SFX_Cry1B_3_Ch2
- db CH7
- dw SFX_Cry1B_3_Ch3
+ dbw ( $80 | CH4 ), SFX_Cry1B_3_Ch1
+ dbw CH5, SFX_Cry1B_3_Ch2
+ dbw CH7, SFX_Cry1B_3_Ch3
SFX_Cry1C_3::
- db ( $80 | CH4 )
- dw SFX_Cry1C_3_Ch1
- db CH5
- dw SFX_Cry1C_3_Ch2
- db CH7
- dw SFX_Cry1C_3_Ch3
+ dbw ( $80 | CH4 ), SFX_Cry1C_3_Ch1
+ dbw CH5, SFX_Cry1C_3_Ch2
+ dbw CH7, SFX_Cry1C_3_Ch3
SFX_Cry1D_3::
- db ( $80 | CH4 )
- dw SFX_Cry1D_3_Ch1
- db CH5
- dw SFX_Cry1D_3_Ch2
- db CH7
- dw SFX_Cry1D_3_Ch3
+ dbw ( $80 | CH4 ), SFX_Cry1D_3_Ch1
+ dbw CH5, SFX_Cry1D_3_Ch2
+ dbw CH7, SFX_Cry1D_3_Ch3
SFX_Cry1E_3::
- db ( $80 | CH4 )
- dw SFX_Cry1E_3_Ch1
- db CH5
- dw SFX_Cry1E_3_Ch2
- db CH7
- dw SFX_Cry1E_3_Ch3
+ dbw ( $80 | CH4 ), SFX_Cry1E_3_Ch1
+ dbw CH5, SFX_Cry1E_3_Ch2
+ dbw CH7, SFX_Cry1E_3_Ch3
SFX_Cry1F_3::
- db ( $80 | CH4 )
- dw SFX_Cry1F_3_Ch1
- db CH5
- dw SFX_Cry1F_3_Ch2
- db CH7
- dw SFX_Cry1F_3_Ch3
+ dbw ( $80 | CH4 ), SFX_Cry1F_3_Ch1
+ dbw CH5, SFX_Cry1F_3_Ch2
+ dbw CH7, SFX_Cry1F_3_Ch3
SFX_Cry20_3::
- db ( $80 | CH4 )
- dw SFX_Cry20_3_Ch1
- db CH5
- dw SFX_Cry20_3_Ch2
- db CH7
- dw SFX_Cry20_3_Ch3
+ dbw ( $80 | CH4 ), SFX_Cry20_3_Ch1
+ dbw CH5, SFX_Cry20_3_Ch2
+ dbw CH7, SFX_Cry20_3_Ch3
SFX_Cry21_3::
- db ( $80 | CH4 )
- dw SFX_Cry21_3_Ch1
- db CH5
- dw SFX_Cry21_3_Ch2
- db CH7
- dw SFX_Cry21_3_Ch3
+ dbw ( $80 | CH4 ), SFX_Cry21_3_Ch1
+ dbw CH5, SFX_Cry21_3_Ch2
+ dbw CH7, SFX_Cry21_3_Ch3
SFX_Cry22_3::
- db ( $80 | CH4 )
- dw SFX_Cry22_3_Ch1
- db CH5
- dw SFX_Cry22_3_Ch2
- db CH7
- dw SFX_Cry22_3_Ch3
+ dbw ( $80 | CH4 ), SFX_Cry22_3_Ch1
+ dbw CH5, SFX_Cry22_3_Ch2
+ dbw CH7, SFX_Cry22_3_Ch3
SFX_Cry23_3::
- db ( $80 | CH4 )
- dw SFX_Cry23_3_Ch1
- db CH5
- dw SFX_Cry23_3_Ch2
- db CH7
- dw SFX_Cry23_3_Ch3
+ dbw ( $80 | CH4 ), SFX_Cry23_3_Ch1
+ dbw CH5, SFX_Cry23_3_Ch2
+ dbw CH7, SFX_Cry23_3_Ch3
SFX_Cry24_3::
- db ( $80 | CH4 )
- dw SFX_Cry24_3_Ch1
- db CH5
- dw SFX_Cry24_3_Ch2
- db CH7
- dw SFX_Cry24_3_Ch3
+ dbw ( $80 | CH4 ), SFX_Cry24_3_Ch1
+ dbw CH5, SFX_Cry24_3_Ch2
+ dbw CH7, SFX_Cry24_3_Ch3
SFX_Cry25_3::
- db ( $80 | CH4 )
- dw SFX_Cry25_3_Ch1
- db CH5
- dw SFX_Cry25_3_Ch2
- db CH7
- dw SFX_Cry25_3_Ch3
+ dbw ( $80 | CH4 ), SFX_Cry25_3_Ch1
+ dbw CH5, SFX_Cry25_3_Ch2
+ dbw CH7, SFX_Cry25_3_Ch3
SFX_Get_Item1_3::
- db ( $80 | CH4 )
- dw SFX_Get_Item1_3_Ch1
- db CH5
- dw SFX_Get_Item1_3_Ch2
- db CH6
- dw SFX_Get_Item1_3_Ch3
+ dbw ( $80 | CH4 ), SFX_Get_Item1_3_Ch1
+ dbw CH5, SFX_Get_Item1_3_Ch2
+ dbw CH6, SFX_Get_Item1_3_Ch3
SFX_Get_Item2_3::
- db ( $80 | CH4 )
- dw SFX_Get_Item2_3_Ch1
- db CH5
- dw SFX_Get_Item2_3_Ch2
- db CH6
- dw SFX_Get_Item2_3_Ch3
+ dbw ( $80 | CH4 ), SFX_Get_Item2_3_Ch1
+ dbw CH5, SFX_Get_Item2_3_Ch2
+ dbw CH6, SFX_Get_Item2_3_Ch3
SFX_Tink_3::
- db CH4
- dw SFX_Tink_3_Ch1
+ dbw CH4, SFX_Tink_3_Ch1
SFX_Heal_HP_3::
- db CH4
- dw SFX_Heal_HP_3_Ch1
+ dbw CH4, SFX_Heal_HP_3_Ch1
SFX_Heal_Ailment_3::
- db CH4
- dw SFX_Heal_Ailment_3_Ch1
+ dbw CH4, SFX_Heal_Ailment_3_Ch1
SFX_Start_Menu_3::
- db CH7
- dw SFX_Start_Menu_3_Ch1
+ dbw CH7, SFX_Start_Menu_3_Ch1
SFX_Press_AB_3::
- db CH4
- dw SFX_Press_AB_3_Ch1
+ dbw CH4, SFX_Press_AB_3_Ch1
SFX_Pokedex_Rating_3::
- db ( $80 | CH4 )
- dw SFX_Pokedex_Rating_3_Ch1
- db CH5
- dw SFX_Pokedex_Rating_3_Ch2
- db CH6
- dw SFX_Pokedex_Rating_3_Ch3
+ dbw ( $80 | CH4 ), SFX_Pokedex_Rating_3_Ch1
+ dbw CH5, SFX_Pokedex_Rating_3_Ch2
+ dbw CH6, SFX_Pokedex_Rating_3_Ch3
SFX_Get_Key_Item_3::
- db ( $80 | CH4 )
- dw SFX_Get_Key_Item_3_Ch1
- db CH5
- dw SFX_Get_Key_Item_3_Ch2
- db CH6
- dw SFX_Get_Key_Item_3_Ch3
+ dbw ( $80 | CH4 ), SFX_Get_Key_Item_3_Ch1
+ dbw CH5, SFX_Get_Key_Item_3_Ch2
+ dbw CH6, SFX_Get_Key_Item_3_Ch3
SFX_Poisoned_3::
- db CH4
- dw SFX_Poisoned_3_Ch1
+ dbw CH4, SFX_Poisoned_3_Ch1
SFX_Trade_Machine_3::
- db CH4
- dw SFX_Trade_Machine_3_Ch1
+ dbw CH4, SFX_Trade_Machine_3_Ch1
SFX_Turn_On_PC_3::
- db CH4
- dw SFX_Turn_On_PC_3_Ch1
+ dbw CH4, SFX_Turn_On_PC_3_Ch1
SFX_Turn_Off_PC_3::
- db CH4
- dw SFX_Turn_Off_PC_3_Ch1
+ dbw CH4, SFX_Turn_Off_PC_3_Ch1
SFX_Enter_PC_3::
- db CH4
- dw SFX_Enter_PC_3_Ch1
+ dbw CH4, SFX_Enter_PC_3_Ch1
SFX_Shrink_3::
- db CH4
- dw SFX_Shrink_3_Ch1
+ dbw CH4, SFX_Shrink_3_Ch1
SFX_Switch_3::
- db CH4
- dw SFX_Switch_3_Ch1
+ dbw CH4, SFX_Switch_3_Ch1
SFX_Healing_Machine_3::
- db CH4
- dw SFX_Healing_Machine_3_Ch1
+ dbw CH4, SFX_Healing_Machine_3_Ch1
SFX_Teleport_Exit1_3::
- db CH4
- dw SFX_Teleport_Exit1_3_Ch1
+ dbw CH4, SFX_Teleport_Exit1_3_Ch1
SFX_Teleport_Enter1_3::
- db CH4
- dw SFX_Teleport_Enter1_3_Ch1
+ dbw CH4, SFX_Teleport_Enter1_3_Ch1
SFX_Teleport_Exit2_3::
- db CH4
- dw SFX_Teleport_Exit2_3_Ch1
+ dbw CH4, SFX_Teleport_Exit2_3_Ch1
SFX_Ledge_3::
- db CH4
- dw SFX_Ledge_3_Ch1
+ dbw CH4, SFX_Ledge_3_Ch1
SFX_Teleport_Enter2_3::
- db CH7
- dw SFX_Teleport_Enter2_3_Ch1
+ dbw CH7, SFX_Teleport_Enter2_3_Ch1
SFX_Fly_3::
- db CH7
- dw SFX_Fly_3_Ch1
+ dbw CH7, SFX_Fly_3_Ch1
SFX_Denied_3::
- db ( $40 | CH4 )
- dw SFX_Denied_3_Ch1
- db CH5
- dw SFX_Denied_3_Ch2
+ dbw ( $40 | CH4 ), SFX_Denied_3_Ch1
+ dbw CH5, SFX_Denied_3_Ch2
SFX_Arrow_Tiles_3::
- db CH4
- dw SFX_Arrow_Tiles_3_Ch1
+ dbw CH4, SFX_Arrow_Tiles_3_Ch1
SFX_Push_Boulder_3::
- db CH7
- dw SFX_Push_Boulder_3_Ch1
+ dbw CH7, SFX_Push_Boulder_3_Ch1
SFX_SS_Anne_Horn_3::
- db ( $40 | CH4 )
- dw SFX_SS_Anne_Horn_3_Ch1
- db CH5
- dw SFX_SS_Anne_Horn_3_Ch2
+ dbw ( $40 | CH4 ), SFX_SS_Anne_Horn_3_Ch1
+ dbw CH5, SFX_SS_Anne_Horn_3_Ch2
SFX_Withdraw_Deposit_3::
- db CH4
- dw SFX_Withdraw_Deposit_3_Ch1
+ dbw CH4, SFX_Withdraw_Deposit_3_Ch1
SFX_Cut_3::
- db CH7
- dw SFX_Cut_3_Ch1
+ dbw CH7, SFX_Cut_3_Ch1
SFX_Go_Inside_3::
- db CH7
- dw SFX_Go_Inside_3_Ch1
+ dbw CH7, SFX_Go_Inside_3_Ch1
SFX_Swap_3::
- db ( $40 | CH4 )
- dw SFX_Swap_3_Ch1
- db CH5
- dw SFX_Swap_3_Ch2
+ dbw ( $40 | CH4 ), SFX_Swap_3_Ch1
+ dbw CH5, SFX_Swap_3_Ch2
SFX_59_3::
- db ( $40 | CH4 )
- dw SFX_59_3_Ch1
- db CH5
- dw SFX_59_3_Ch2
+ dbw ( $40 | CH4 ), SFX_59_3_Ch1
+ dbw CH5, SFX_59_3_Ch2
SFX_Purchase_3::
- db ( $40 | CH4 )
- dw SFX_Purchase_3_Ch1
- db CH5
- dw SFX_Purchase_3_Ch2
+ dbw ( $40 | CH4 ), SFX_Purchase_3_Ch1
+ dbw CH5, SFX_Purchase_3_Ch2
SFX_Collision_3::
- db CH4
- dw SFX_Collision_3_Ch1
+ dbw CH4, SFX_Collision_3_Ch1
SFX_Go_Outside_3::
- db CH7
- dw SFX_Go_Outside_3_Ch1
+ dbw CH7, SFX_Go_Outside_3_Ch1
SFX_Save_3::
- db ( $40 | CH4 )
- dw SFX_Save_3_Ch1
- db CH5
- dw SFX_Save_3_Ch2
+ dbw ( $40 | CH4 ), SFX_Save_3_Ch1
+ dbw CH5, SFX_Save_3_Ch2
SFX_Intro_Lunge::
- db CH7
- dw SFX_Intro_Lunge_Ch1
+ dbw CH7, SFX_Intro_Lunge_Ch1
SFX_Intro_Hip::
- db CH4
- dw SFX_Intro_Hip_Ch1
+ dbw CH4, SFX_Intro_Hip_Ch1
SFX_Intro_Hop::
- db CH4
- dw SFX_Intro_Hop_Ch1
+ dbw CH4, SFX_Intro_Hop_Ch1
SFX_Intro_Raise::
- db CH7
- dw SFX_Intro_Raise_Ch1
+ dbw CH7, SFX_Intro_Raise_Ch1
SFX_Intro_Crash::
- db CH7
- dw SFX_Intro_Crash_Ch1
+ dbw CH7, SFX_Intro_Crash_Ch1
SFX_Intro_Whoosh::
- db CH7
- dw SFX_Intro_Whoosh_Ch1
+ dbw CH7, SFX_Intro_Whoosh_Ch1
SFX_Slots_Stop_Wheel::
- db CH4
- dw SFX_Slots_Stop_Wheel_Ch1
+ dbw CH4, SFX_Slots_Stop_Wheel_Ch1
SFX_Slots_Reward::
- db CH4
- dw SFX_Slots_Reward_Ch1
+ dbw CH4, SFX_Slots_Reward_Ch1
SFX_Slots_New_Spin::
- db ( $40 | CH4 )
- dw SFX_Slots_New_Spin_Ch1
- db CH5
- dw SFX_Slots_New_Spin_Ch2
+ dbw ( $40 | CH4 ), SFX_Slots_New_Spin_Ch1
+ dbw CH5, SFX_Slots_New_Spin_Ch2
SFX_Shooting_Star::
- db CH4
- dw SFX_Shooting_Star_Ch1
+ dbw CH4, SFX_Shooting_Star_Ch1
diff --git a/audio/headers/sfxheaders4.asm b/audio/headers/sfxheaders4.asm
new file mode 100644
index 00000000..16e69e1f
--- /dev/null
+++ b/audio/headers/sfxheaders4.asm
@@ -0,0 +1,294 @@
+SFX_Headers_4::
+ dbw -1, -1 ; padding
+
+SFX_Snare1_4::
+ dbw CH7, SFX_Snare1_4_Ch7
+
+SFX_Snare2_4::
+ dbw CH7, SFX_Snare2_4_Ch7
+
+SFX_Snare3_4::
+ dbw CH7, SFX_Snare3_4_Ch7
+
+SFX_Snare4_4::
+ dbw CH7, SFX_Snare4_4_Ch7
+
+SFX_Snare5_4::
+ dbw CH7, SFX_Snare5_4_Ch7
+
+SFX_Triangle1_4::
+ dbw CH7, SFX_Triangle1_4_Ch7
+
+SFX_Triangle2_4::
+ dbw CH7, SFX_Triangle2_4_Ch7
+
+SFX_Snare6_4::
+ dbw CH7, SFX_Snare6_4_Ch7
+
+SFX_Snare7_4::
+ dbw CH7, SFX_Snare7_4_Ch7
+
+SFX_Snare8_4::
+ dbw CH7, SFX_Snare8_4_Ch7
+
+SFX_Snare9_4::
+ dbw CH7, SFX_Snare9_4_Ch7
+
+SFX_Cymbal1_4::
+ dbw CH7, SFX_Cymbal1_4_Ch7
+
+SFX_Cymbal2_4::
+ dbw CH7, SFX_Cymbal2_4_Ch7
+
+SFX_Cymbal3_4::
+ dbw CH7, SFX_Cymbal3_4_Ch7
+
+SFX_Muted_Snare1_4::
+ dbw CH7, SFX_Muted_Snare1_4_Ch7
+
+SFX_Triangle3_4::
+ dbw CH7, SFX_Triangle3_4_Ch7
+
+SFX_Muted_Snare2_4::
+ dbw CH7, SFX_Muted_Snare2_4_Ch7
+
+SFX_Muted_Snare3_4::
+ dbw CH7, SFX_Muted_Snare3_4_Ch7
+
+SFX_Muted_Snare4_4::
+ dbw CH7, SFX_Muted_Snare4_4_Ch7
+
+SFX_8003c_4::
+ dbw ( $80 | CH4 ), SFX_805db_4_Ch4
+ dbw CH5, SFX_805ea_4_Ch5
+ dbw CH7, SFX_805f9_4_Ch7
+
+SFX_80045_4::
+ dbw ( $80 | CH4 ), SFX_807eb_4_Ch4
+ dbw CH5, SFX_807fe_4_Ch5
+ dbw CH7, SFX_80811_4_Ch7
+
+SFX_8004e_4::
+ dbw ( $80 | CH4 ), SFX_80760_4_Ch4
+ dbw CH5, SFX_8076f_4_Ch5
+ dbw CH7, SFX_8077d_4_Ch7
+
+SFX_80057_4::
+ dbw ( $80 | CH4 ), SFX_804fa_4_Ch4
+ dbw CH5, SFX_80519_4_Ch5
+ dbw CH7, SFX_80538_4_Ch7
+
+SFX_80060_4::
+ dbw ( $80 | CH4 ), SFX_808a9_4_Ch4
+ dbw CH5, SFX_808c8_4_Ch5
+ dbw CH7, SFX_808e7_4_Ch7
+
+SFX_80069_4::
+ dbw ( $80 | CH4 ), SFX_80689_4_Ch4
+ dbw CH5, SFX_8069c_4_Ch5
+ dbw CH7, SFX_806ae_4_Ch7
+
+SFX_80072_4::
+ dbw ( $80 | CH4 ), SFX_80633_4_Ch4
+ dbw CH5, SFX_8064d_4_Ch5
+ dbw CH7, SFX_8064e_4_Ch7
+
+SFX_8007b_4::
+ dbw ( $80 | CH4 ), SFX_80661_4_Ch4
+ dbw CH5, SFX_80670_4_Ch5
+ dbw CH7, SFX_8067f_4_Ch7
+
+SFX_80084_4::
+ dbw ( $80 | CH4 ), SFX_80879_4_Ch4
+ dbw CH5, SFX_8088c_4_Ch5
+ dbw CH7, SFX_8089f_4_Ch7
+
+SFX_8008d_4::
+ dbw ( $80 | CH4 ), SFX_80383_4_Ch4
+ dbw CH5, SFX_803a0_4_Ch5
+ dbw CH7, SFX_803c1_4_Ch7
+
+SFX_80096_4::
+ dbw ( $80 | CH4 ), SFX_8081e_4_Ch4
+ dbw CH5, SFX_8083d_4_Ch5
+ dbw CH7, SFX_80860_4_Ch7
+
+SFX_8009f_4::
+ dbw ( $80 | CH4 ), SFX_806af_4_Ch4
+ dbw CH5, SFX_806da_4_Ch5
+ dbw CH7, SFX_806f9_4_Ch7
+
+SFX_800a8_4::
+ dbw ( $80 | CH4 ), SFX_80712_4_Ch4
+ dbw CH5, SFX_80739_4_Ch5
+ dbw CH7, SFX_8075f_4_Ch7
+
+SFX_800b1_4::
+ dbw ( $80 | CH4 ), SFX_8077e_4_Ch4
+ dbw CH5, SFX_8079d_4_Ch5
+ dbw CH7, SFX_807cc_4_Ch7
+
+SFX_800ba_4::
+ dbw ( $80 | CH4 ), SFX_80603_4_Ch4
+ dbw CH5, SFX_80616_4_Ch5
+ dbw CH7, SFX_80629_4_Ch7
+
+SFX_800c3_4::
+ dbw ( $80 | CH4 ), SFX_80545_4_Ch4
+ dbw CH5, SFX_80560_4_Ch5
+ dbw CH7, SFX_8057b_4_Ch7
+
+SFX_800cc_4::
+ dbw ( $80 | CH4 ), SFX_8058b_4_Ch4
+ dbw CH5, SFX_805ae_4_Ch5
+ dbw CH7, SFX_805d1_4_Ch7
+
+SFX_800d5_4::
+ dbw ( $80 | CH4 ), SFX_80467_4_Ch4
+ dbw CH5, SFX_80486_4_Ch5
+ dbw CH7, SFX_804a9_4_Ch7
+
+SFX_800de_4::
+ dbw ( $80 | CH4 ), SFX_8097f_4_Ch4
+ dbw CH5, SFX_80992_4_Ch5
+ dbw CH7, SFX_809a5_4_Ch7
+
+SFX_800e7_4::
+ dbw ( $80 | CH4 ), SFX_809b2_4_Ch4
+ dbw CH5, SFX_809cd_4_Ch5
+ dbw CH7, SFX_809e8_4_Ch7
+
+SFX_800f0_4::
+ dbw ( $80 | CH4 ), SFX_809fb_4_Ch4
+ dbw CH5, SFX_80a0a_4_Ch5
+ dbw CH7, SFX_80a19_4_Ch7
+
+SFX_800f9_4::
+ dbw ( $80 | CH4 ), SFX_80a89_4_Ch4
+ dbw CH5, SFX_80aa4_4_Ch5
+ dbw CH7, SFX_80abf_4_Ch7
+
+SFX_80102_4::
+ dbw ( $80 | CH4 ), SFX_8091c_4_Ch4
+ dbw CH5, SFX_8092b_4_Ch5
+ dbw CH7, SFX_8093a_4_Ch7
+
+SFX_8010b_4::
+ dbw ( $80 | CH4 ), SFX_80ad2_4_Ch4
+ dbw CH5, SFX_80ae5_4_Ch5
+ dbw CH7, SFX_80af8_4_Ch7
+
+SFX_80114_4::
+ dbw ( $80 | CH4 ), SFX_80be2_4_Ch4
+ dbw CH5, SFX_80c05_4_Ch5
+ dbw CH7, SFX_80c28_4_Ch7
+
+SFX_8011d_4::
+ dbw ( $80 | CH4 ), SFX_808fa_4_Ch4
+ dbw CH5, SFX_80909_4_Ch5
+ dbw CH7, SFX_8091b_4_Ch7
+
+SFX_80126_4::
+ dbw ( $80 | CH4 ), SFX_80b53_4_Ch4
+ dbw CH5, SFX_80b6e_4_Ch5
+ dbw CH7, SFX_80b89_4_Ch7
+
+SFX_8012f_4::
+ dbw ( $80 | CH4 ), SFX_80944_4_Ch4
+ dbw CH5, SFX_8095b_4_Ch5
+ dbw CH7, SFX_80972_4_Ch7
+
+SFX_80138_4::
+ dbw ( $80 | CH4 ), SFX_80b05_4_Ch4
+ dbw CH5, SFX_80b28_4_Ch5
+ dbw CH7, SFX_80b43_4_Ch7
+
+SFX_80141_4::
+ dbw ( $80 | CH4 ), SFX_80b9c_4_Ch4
+ dbw CH5, SFX_80bb7_4_Ch5
+ dbw CH7, SFX_80bd2_4_Ch7
+
+SFX_8014a_4::
+ dbw ( $80 | CH4 ), SFX_80a23_4_Ch4
+ dbw CH5, SFX_80a46_4_Ch5
+ dbw CH7, SFX_80a6d_4_Ch7
+
+SFX_80153_4::
+ dbw ( $80 | CH4 ), SFX_80c3b_4_Ch4
+ dbw CH5, SFX_80c4e_4_Ch5
+ dbw CH7, SFX_80c61_4_Ch7
+
+SFX_8015c_4::
+ dbw ( $80 | CH4 ), SFX_80c6e_4_Ch4
+ dbw CH5, SFX_80c81_4_Ch5
+ dbw CH7, SFX_80c94_4_Ch7
+
+SFX_80165_4::
+ dbw ( $80 | CH4 ), SFX_80ca1_4_Ch4
+ dbw CH5, SFX_80cc4_4_Ch5
+ dbw CH7, SFX_80ce6_4_Ch7
+
+SFX_8016e_4::
+ dbw ( $80 | CH4 ), SFX_80ce7_4_Ch4
+ dbw CH5, SFX_80cfa_4_Ch5
+ dbw CH7, SFX_80d0d_4_Ch7
+
+SFX_80177_4::
+ dbw ( $80 | CH4 ), SFX_803da_4_Ch4
+ dbw CH5, SFX_803f1_4_Ch5
+ dbw CH7, SFX_80404_4_Ch7
+
+SFX_80180_4::
+ dbw ( $80 | CH4 ), SFX_80411_4_Ch4
+ dbw CH5, SFX_80434_4_Ch5
+ dbw CH7, SFX_80457_4_Ch7
+
+SFX_80189_4::
+ dbw ( $80 | CH4 ), SFX_804bf_4_Ch4
+ dbw CH5, SFX_804d6_4_Ch5
+ dbw CH7, SFX_804ed_4_Ch7
+
+SFX_Get_Item1_4::
+ dbw ( $80 | CH4 ), SFX_80e5a_4_Ch4
+ dbw CH5, SFX_80e71_4_Ch5
+ dbw CH6, SFX_80e81_4_Ch6
+
+SFX_Get_Item2_4::
+ dbw ( $80 | CH4 ), SFX_80ec8_4_Ch4
+ dbw CH5, SFX_80ee7_4_Ch5
+ dbw CH6, SFX_80eff_4_Ch6
+
+SFX_Tink_4::
+ dbw CH4, SFX_8028e_4_Ch4
+
+SFX_Heal_Ailment_4::
+ dbw CH4, SFX_8027f_4_Ch4
+
+SFX_Start_Menu_4::
+ dbw CH4, SFX_8026a_4_Ch4
+
+SFX_PressAB_4::
+ dbw CH7, SFX_80263_4_Ch7
+
+SFX_801b0_4::
+ dbw CH4, SFX_80250_4_Ch4
+
+SFX_801b3_4::
+ dbw CH7, SFX_8029f_4_Ch7
+
+SFX_801b6_4::
+ dbw CH4, SFX_802b5_4_Ch4
+
+SFX_801b9_4::
+ dbw CH7, SFX_802e1_4_Ch7
+
+SFX_801bc_4::
+ dbw CH4, SFX_802cc_4_Ch4
+
+SFX_801bf_4::
+ dbw CH7, SFX_802d7_4_Ch7
+
+SFX_Get_Item2_4_2::
+ dbw ( $80 | CH4 ), SFX_Get_Item2_4_2_Ch1
+ dbw CH5, SFX_Get_Item2_4_2_Ch2
+ dbw CH6, SFX_Get_Item2_4_2_Ch3
diff --git a/audio/music/dungeon1.asm b/audio/music/dungeon1.asm
index c84fc694..825207b8 100644
--- a/audio/music/dungeon1.asm
+++ b/audio/music/dungeon1.asm
@@ -6,10 +6,8 @@ Music_Dungeon1_Ch1::
vibrato 10, 1, 4
notetype 12, 4, 13
rest 8
- stereopanning 237
octave 4
F# 8
- stereopanning 255
Music_Dungeon1_branch_7dee5::
notetype 12, 11, 2
diff --git a/audio/music/yellow/meetjessiejames.asm b/audio/music/meetjessiejames.asm
index 086fef53..086fef53 100644
--- a/audio/music/yellow/meetjessiejames.asm
+++ b/audio/music/meetjessiejames.asm
diff --git a/audio/music/printer.asm b/audio/music/printer.asm
new file mode 100755
index 00000000..853aa290
--- /dev/null
+++ b/audio/music/printer.asm
@@ -0,0 +1,316 @@
+Music_GBPrinter_Ch3:
+ tempo 256
+ notetype 12, 1, 0
+ octave 4
+ B_ 6
+ octave 5
+ C# 1
+ rest 1
+ octave 4
+ B_ 6
+ octave 5
+ C# 1
+ rest 1
+ octave 4
+ B_ 1
+ rest 1
+ octave 5
+ E_ 1
+ rest 1
+ D# 1
+ rest 1
+ C# 1
+ rest 1
+ octave 4
+ B_ 1
+ rest 1
+ A_ 1
+ rest 1
+ G# 1
+ rest 1
+ F# 1
+ rest 1
+.loop:
+ E_ 1
+ rest 1
+ B_ 1
+ rest 1
+ E_ 1
+ rest 1
+ B_ 1
+ rest 1
+ E_ 1
+ rest 1
+ B_ 1
+ rest 1
+ E_ 1
+ rest 1
+ B_ 1
+ rest 1
+ E_ 1
+ rest 1
+ B_ 1
+ rest 1
+ E_ 1
+ rest 1
+ B_ 1
+ rest 1
+ E_ 1
+ rest 1
+ B_ 1
+ rest 1
+ E_ 1
+ rest 1
+ B_ 1
+ rest 1
+ F# 1
+ rest 1
+ A_ 1
+ rest 1
+ F# 1
+ rest 1
+ A_ 1
+ rest 1
+ F# 1
+ rest 1
+ octave 5
+ C# 1
+ C_ 1
+ C# 1
+ rest 1
+ octave 4
+ F# 1
+ rest 1
+ E_ 1
+ rest 1
+ G# 1
+ rest 1
+ E_ 1
+ rest 1
+ G# 1
+ rest 1
+ E_ 1
+ rest 1
+ octave 5
+ E_ 1
+ D# 1
+ E_ 1
+ rest 1
+ octave 4
+ D# 1
+ rest 1
+ E_ 1
+ rest 1
+ B_ 1
+ rest 1
+ E_ 1
+ rest 1
+ B_ 1
+ rest 1
+ E_ 1
+ rest 1
+ B_ 1
+ rest 1
+ E_ 1
+ rest 1
+ B_ 1
+ rest 1
+ E_ 1
+ rest 1
+ B_ 1
+ rest 1
+ E_ 1
+ rest 1
+ B_ 1
+ rest 1
+ E_ 1
+ rest 1
+ B_ 1
+ rest 1
+ E_ 1
+ rest 1
+ B_ 1
+ rest 1
+ F# 1
+ rest 1
+ A_ 1
+ rest 1
+ F# 1
+ rest 1
+ A_ 1
+ rest 1
+ B_ 1
+ rest 1
+ A_ 1
+ rest 1
+ G# 1
+ rest 1
+ F# 1
+ rest 1
+ E_ 1
+ rest 1
+ B_ 1
+ rest 1
+ E_ 1
+ rest 1
+ B_ 1
+ rest 1
+ E_ 1
+ rest 1
+ octave 3
+ B_ 1
+ rest 1
+ octave 4
+ C# 1
+ rest 1
+ D_ 1
+ rest 1
+ D# 1
+ rest 1
+ F# 1
+ rest 1
+ octave 3
+ B_ 1
+ rest 1
+ octave 4
+ F# 1
+ rest 1
+ D# 1
+ rest 1
+ F# 1
+ rest 1
+ octave 3
+ B_ 1
+ rest 1
+ octave 4
+ F# 1
+ rest 1
+ E_ 1
+ rest 1
+ G# 1
+ rest 1
+ octave 3
+ B_ 1
+ rest 1
+ octave 4
+ G# 1
+ rest 1
+ E_ 1
+ rest 1
+ G# 1
+ rest 1
+ octave 3
+ B_ 1
+ rest 1
+ octave 4
+ G# 1
+ rest 1
+ F# 1
+ rest 1
+ A_ 1
+ rest 1
+ C# 1
+ rest 1
+ A_ 1
+ rest 1
+ F# 1
+ rest 1
+ A_ 1
+ rest 1
+ C# 1
+ rest 1
+ A_ 1
+ rest 1
+ B_ 1
+ A# 1
+ B_ 1
+ rest 1
+ E_ 1
+ rest 1
+ F# 1
+ rest 1
+ G# 1
+ rest 1
+ octave 3
+ B_ 1
+ rest 1
+ octave 4
+ C# 1
+ rest 1
+ D_ 1
+ rest 1
+ D# 1
+ rest 1
+ F# 1
+ rest 1
+ octave 3
+ B_ 1
+ rest 1
+ octave 4
+ F# 1
+ rest 1
+ D# 1
+ rest 1
+ F# 1
+ rest 1
+ octave 3
+ B_ 1
+ rest 1
+ octave 4
+ F# 1
+ rest 1
+ E_ 1
+ rest 1
+ G# 1
+ rest 1
+ octave 3
+ B_ 1
+ rest 1
+ octave 4
+ G# 1
+ rest 1
+ E_ 1
+ rest 1
+ G# 1
+ rest 1
+ octave 3
+ B_ 1
+ rest 1
+ octave 4
+ G# 1
+ rest 1
+ F# 1
+ rest 1
+ A_ 1
+ rest 1
+ C# 1
+ rest 1
+ A_ 1
+ rest 1
+ F# 1
+ rest 1
+ A_ 1
+ rest 1
+ F# 1
+ rest 1
+ D# 1
+ rest 1
+ B_ 1
+ rest 1
+ B_ 1
+ rest 1
+ A_ 1
+ rest 1
+ A_ 1
+ rest 1
+ G# 1
+ rest 1
+ octave 3
+ B_ 1
+ rest 1
+ octave 4
+ C# 1
+ rest 1
+ D# 1
+ rest 1
+ loopchannel 0, .loop
diff --git a/audio/music/yellow/surfingpikachu.asm b/audio/music/surfingpikachu.asm
index 1ee3f760..1ee3f760 100644
--- a/audio/music/yellow/surfingpikachu.asm
+++ b/audio/music/surfingpikachu.asm
diff --git a/audio/music/yellow/yellowintro.asm b/audio/music/yellowintro.asm
index c809d10f..c809d10f 100644
--- a/audio/music/yellow/yellowintro.asm
+++ b/audio/music/yellowintro.asm
diff --git a/audio/music/yellow/yellowunusedsong.asm b/audio/music/yellowunusedsong.asm
index f65ca164..f65ca164 100644
--- a/audio/music/yellow/yellowunusedsong.asm
+++ b/audio/music/yellowunusedsong.asm
diff --git a/audio/pikachu_cries/pikachu_cry_1.wav b/audio/pikachu_cries/pikachu_cry_1.wav
new file mode 100644
index 00000000..98714511
--- /dev/null
+++ b/audio/pikachu_cries/pikachu_cry_1.wav
Binary files differ
diff --git a/audio/pikachu_cries/pikachu_cry_10.wav b/audio/pikachu_cries/pikachu_cry_10.wav
new file mode 100644
index 00000000..e51a2979
--- /dev/null
+++ b/audio/pikachu_cries/pikachu_cry_10.wav
Binary files differ
diff --git a/audio/pikachu_cries/pikachu_cry_11.wav b/audio/pikachu_cries/pikachu_cry_11.wav
new file mode 100644
index 00000000..44eece5a
--- /dev/null
+++ b/audio/pikachu_cries/pikachu_cry_11.wav
Binary files differ
diff --git a/audio/pikachu_cries/pikachu_cry_12.wav b/audio/pikachu_cries/pikachu_cry_12.wav
new file mode 100644
index 00000000..cad90cfe
--- /dev/null
+++ b/audio/pikachu_cries/pikachu_cry_12.wav
Binary files differ
diff --git a/audio/pikachu_cries/pikachu_cry_13.wav b/audio/pikachu_cries/pikachu_cry_13.wav
new file mode 100644
index 00000000..981768b5
--- /dev/null
+++ b/audio/pikachu_cries/pikachu_cry_13.wav
Binary files differ
diff --git a/audio/pikachu_cries/pikachu_cry_14.wav b/audio/pikachu_cries/pikachu_cry_14.wav
new file mode 100644
index 00000000..3da9a543
--- /dev/null
+++ b/audio/pikachu_cries/pikachu_cry_14.wav
Binary files differ
diff --git a/audio/pikachu_cries/pikachu_cry_15.wav b/audio/pikachu_cries/pikachu_cry_15.wav
new file mode 100644
index 00000000..4ef874c3
--- /dev/null
+++ b/audio/pikachu_cries/pikachu_cry_15.wav
Binary files differ
diff --git a/audio/pikachu_cries/pikachu_cry_16.wav b/audio/pikachu_cries/pikachu_cry_16.wav
new file mode 100644
index 00000000..baddf17c
--- /dev/null
+++ b/audio/pikachu_cries/pikachu_cry_16.wav
Binary files differ
diff --git a/audio/pikachu_cries/pikachu_cry_17.wav b/audio/pikachu_cries/pikachu_cry_17.wav
new file mode 100644
index 00000000..f8bd9c73
--- /dev/null
+++ b/audio/pikachu_cries/pikachu_cry_17.wav
Binary files differ
diff --git a/audio/pikachu_cries/pikachu_cry_18.wav b/audio/pikachu_cries/pikachu_cry_18.wav
new file mode 100644
index 00000000..69b2d3b8
--- /dev/null
+++ b/audio/pikachu_cries/pikachu_cry_18.wav
Binary files differ
diff --git a/audio/pikachu_cries/pikachu_cry_19.wav b/audio/pikachu_cries/pikachu_cry_19.wav
new file mode 100644
index 00000000..a9429132
--- /dev/null
+++ b/audio/pikachu_cries/pikachu_cry_19.wav
Binary files differ
diff --git a/audio/pikachu_cries/pikachu_cry_2.wav b/audio/pikachu_cries/pikachu_cry_2.wav
new file mode 100644
index 00000000..d95343de
--- /dev/null
+++ b/audio/pikachu_cries/pikachu_cry_2.wav
Binary files differ
diff --git a/audio/pikachu_cries/pikachu_cry_20.wav b/audio/pikachu_cries/pikachu_cry_20.wav
new file mode 100644
index 00000000..1c1842e4
--- /dev/null
+++ b/audio/pikachu_cries/pikachu_cry_20.wav
Binary files differ
diff --git a/audio/pikachu_cries/pikachu_cry_21.wav b/audio/pikachu_cries/pikachu_cry_21.wav
new file mode 100644
index 00000000..d74ebc12
--- /dev/null
+++ b/audio/pikachu_cries/pikachu_cry_21.wav
Binary files differ
diff --git a/audio/pikachu_cries/pikachu_cry_22.wav b/audio/pikachu_cries/pikachu_cry_22.wav
new file mode 100644
index 00000000..89fa5c77
--- /dev/null
+++ b/audio/pikachu_cries/pikachu_cry_22.wav
Binary files differ
diff --git a/audio/pikachu_cries/pikachu_cry_23.wav b/audio/pikachu_cries/pikachu_cry_23.wav
new file mode 100644
index 00000000..ea092080
--- /dev/null
+++ b/audio/pikachu_cries/pikachu_cry_23.wav
Binary files differ
diff --git a/audio/pikachu_cries/pikachu_cry_24.wav b/audio/pikachu_cries/pikachu_cry_24.wav
new file mode 100644
index 00000000..ec51d8cb
--- /dev/null
+++ b/audio/pikachu_cries/pikachu_cry_24.wav
Binary files differ
diff --git a/audio/pikachu_cries/pikachu_cry_25.wav b/audio/pikachu_cries/pikachu_cry_25.wav
new file mode 100644
index 00000000..77dac608
--- /dev/null
+++ b/audio/pikachu_cries/pikachu_cry_25.wav
Binary files differ
diff --git a/audio/pikachu_cries/pikachu_cry_26.wav b/audio/pikachu_cries/pikachu_cry_26.wav
new file mode 100644
index 00000000..9a9a0776
--- /dev/null
+++ b/audio/pikachu_cries/pikachu_cry_26.wav
Binary files differ
diff --git a/audio/pikachu_cries/pikachu_cry_27.wav b/audio/pikachu_cries/pikachu_cry_27.wav
new file mode 100644
index 00000000..44a79ee0
--- /dev/null
+++ b/audio/pikachu_cries/pikachu_cry_27.wav
Binary files differ
diff --git a/audio/pikachu_cries/pikachu_cry_28.wav b/audio/pikachu_cries/pikachu_cry_28.wav
new file mode 100644
index 00000000..ccf8bde2
--- /dev/null
+++ b/audio/pikachu_cries/pikachu_cry_28.wav
Binary files differ
diff --git a/audio/pikachu_cries/pikachu_cry_29.wav b/audio/pikachu_cries/pikachu_cry_29.wav
new file mode 100644
index 00000000..fb3375b3
--- /dev/null
+++ b/audio/pikachu_cries/pikachu_cry_29.wav
Binary files differ
diff --git a/audio/pikachu_cries/pikachu_cry_3.wav b/audio/pikachu_cries/pikachu_cry_3.wav
new file mode 100644
index 00000000..d3423966
--- /dev/null
+++ b/audio/pikachu_cries/pikachu_cry_3.wav
Binary files differ
diff --git a/audio/pikachu_cries/pikachu_cry_30.wav b/audio/pikachu_cries/pikachu_cry_30.wav
new file mode 100644
index 00000000..9bdafdc2
--- /dev/null
+++ b/audio/pikachu_cries/pikachu_cry_30.wav
Binary files differ
diff --git a/audio/pikachu_cries/pikachu_cry_31.wav b/audio/pikachu_cries/pikachu_cry_31.wav
new file mode 100644
index 00000000..2853bc0b
--- /dev/null
+++ b/audio/pikachu_cries/pikachu_cry_31.wav
Binary files differ
diff --git a/audio/pikachu_cries/pikachu_cry_32.wav b/audio/pikachu_cries/pikachu_cry_32.wav
new file mode 100644
index 00000000..8ded504e
--- /dev/null
+++ b/audio/pikachu_cries/pikachu_cry_32.wav
Binary files differ
diff --git a/audio/pikachu_cries/pikachu_cry_33.wav b/audio/pikachu_cries/pikachu_cry_33.wav
new file mode 100644
index 00000000..9be38b10
--- /dev/null
+++ b/audio/pikachu_cries/pikachu_cry_33.wav
Binary files differ
diff --git a/audio/pikachu_cries/pikachu_cry_34.wav b/audio/pikachu_cries/pikachu_cry_34.wav
new file mode 100644
index 00000000..45986668
--- /dev/null
+++ b/audio/pikachu_cries/pikachu_cry_34.wav
Binary files differ
diff --git a/audio/pikachu_cries/pikachu_cry_35.wav b/audio/pikachu_cries/pikachu_cry_35.wav
new file mode 100644
index 00000000..91b4d35b
--- /dev/null
+++ b/audio/pikachu_cries/pikachu_cry_35.wav
Binary files differ
diff --git a/audio/pikachu_cries/pikachu_cry_36.wav b/audio/pikachu_cries/pikachu_cry_36.wav
new file mode 100644
index 00000000..789f9ca6
--- /dev/null
+++ b/audio/pikachu_cries/pikachu_cry_36.wav
Binary files differ
diff --git a/audio/pikachu_cries/pikachu_cry_37.wav b/audio/pikachu_cries/pikachu_cry_37.wav
new file mode 100644
index 00000000..bc004c25
--- /dev/null
+++ b/audio/pikachu_cries/pikachu_cry_37.wav
Binary files differ
diff --git a/audio/pikachu_cries/pikachu_cry_38.wav b/audio/pikachu_cries/pikachu_cry_38.wav
new file mode 100644
index 00000000..b7d23e25
--- /dev/null
+++ b/audio/pikachu_cries/pikachu_cry_38.wav
Binary files differ
diff --git a/audio/pikachu_cries/pikachu_cry_39.wav b/audio/pikachu_cries/pikachu_cry_39.wav
new file mode 100644
index 00000000..da02dee2
--- /dev/null
+++ b/audio/pikachu_cries/pikachu_cry_39.wav
Binary files differ
diff --git a/audio/pikachu_cries/pikachu_cry_4.wav b/audio/pikachu_cries/pikachu_cry_4.wav
new file mode 100644
index 00000000..8cfc1041
--- /dev/null
+++ b/audio/pikachu_cries/pikachu_cry_4.wav
Binary files differ
diff --git a/audio/pikachu_cries/pikachu_cry_40.wav b/audio/pikachu_cries/pikachu_cry_40.wav
new file mode 100644
index 00000000..a048a408
--- /dev/null
+++ b/audio/pikachu_cries/pikachu_cry_40.wav
Binary files differ
diff --git a/audio/pikachu_cries/pikachu_cry_41.wav b/audio/pikachu_cries/pikachu_cry_41.wav
new file mode 100644
index 00000000..bbf5eabd
--- /dev/null
+++ b/audio/pikachu_cries/pikachu_cry_41.wav
Binary files differ
diff --git a/audio/pikachu_cries/pikachu_cry_42.wav b/audio/pikachu_cries/pikachu_cry_42.wav
new file mode 100644
index 00000000..cd18baa0
--- /dev/null
+++ b/audio/pikachu_cries/pikachu_cry_42.wav
Binary files differ
diff --git a/audio/pikachu_cries/pikachu_cry_5.wav b/audio/pikachu_cries/pikachu_cry_5.wav
new file mode 100644
index 00000000..a2293acd
--- /dev/null
+++ b/audio/pikachu_cries/pikachu_cry_5.wav
Binary files differ
diff --git a/audio/pikachu_cries/pikachu_cry_6.wav b/audio/pikachu_cries/pikachu_cry_6.wav
new file mode 100644
index 00000000..814d7139
--- /dev/null
+++ b/audio/pikachu_cries/pikachu_cry_6.wav
Binary files differ
diff --git a/audio/pikachu_cries/pikachu_cry_7.wav b/audio/pikachu_cries/pikachu_cry_7.wav
new file mode 100644
index 00000000..6ffa781f
--- /dev/null
+++ b/audio/pikachu_cries/pikachu_cry_7.wav
Binary files differ
diff --git a/audio/pikachu_cries/pikachu_cry_8.wav b/audio/pikachu_cries/pikachu_cry_8.wav
new file mode 100644
index 00000000..04218660
--- /dev/null
+++ b/audio/pikachu_cries/pikachu_cry_8.wav
Binary files differ
diff --git a/audio/pikachu_cries/pikachu_cry_9.wav b/audio/pikachu_cries/pikachu_cry_9.wav
new file mode 100644
index 00000000..484c92bc
--- /dev/null
+++ b/audio/pikachu_cries/pikachu_cry_9.wav
Binary files differ
diff --git a/audio/sfx/battle_29.asm b/audio/sfx/battle_29.asm
index d0abb3cb..0db98b36 100644
--- a/audio/sfx/battle_29.asm
+++ b/audio/sfx/battle_29.asm
@@ -1,17 +1,17 @@
-SFX_Battle_29_Ch1:
+SFX_Earthquake_Ch1:
dutycycle 201
unknownsfx0x20 11, 243, 32, 1
unknownsfx0x20 9, 211, 80, 1
- loopchannel 5, SFX_Battle_29_Ch1
+ loopchannel 5, SFX_Earthquake_Ch1
unknownsfx0x20 8, 227, 48, 1
unknownsfx0x20 15, 194, 16, 1
endchannel
-SFX_Battle_29_Ch2:
+SFX_Earthquake_Ch2:
unknownnoise0x20 10, 243, 53
unknownnoise0x20 14, 246, 69
- loopchannel 4, SFX_Battle_29_Ch2
+ loopchannel 4, SFX_Earthquake_Ch2
unknownnoise0x20 12, 244, 188
unknownnoise0x20 12, 245, 156
unknownnoise0x20 15, 244, 172
diff --git a/audio/sfx/battle_2f.asm b/audio/sfx/battle_2f.asm
index ad607993..f511c832 100644
--- a/audio/sfx/battle_2f.asm
+++ b/audio/sfx/battle_2f.asm
@@ -1,21 +1,21 @@
-SFX_Battle_2F_Ch1:
+SFX_Thunderbolt_Ch1:
dutycycle 43
unknownsfx0x20 3, 241, 240, 7
unknownsfx0x20 4, 242, 0, 2
- loopchannel 8, SFX_Battle_2F_Ch1
+ loopchannel 8, SFX_Thunderbolt_Ch1
endchannel
-SFX_Battle_2F_Ch2:
+SFX_Thunderbolt_Ch2:
dutycycle 179
unknownsfx0x20 4, 226, 2, 2
unknownsfx0x20 4, 225, 226, 7
- loopchannel 9, SFX_Battle_2F_Ch2
+ loopchannel 9, SFX_Thunderbolt_Ch2
endchannel
-SFX_Battle_2F_Ch3:
+SFX_Thunderbolt_Ch3:
unknownnoise0x20 4, 255, 67
unknownnoise0x20 4, 242, 68
- loopchannel 9, SFX_Battle_2F_Ch3
+ loopchannel 9, SFX_Thunderbolt_Ch3
endchannel
diff --git a/audio/sfx/cymbal1_4.asm b/audio/sfx/cymbal1_4.asm
new file mode 100644
index 00000000..bd941ef5
--- /dev/null
+++ b/audio/sfx/cymbal1_4.asm
@@ -0,0 +1,4 @@
+SFX_Cymbal1_4_Ch7:
+ unknownnoise0x20 0, 161, 16
+ endchannel
+
diff --git a/audio/sfx/cymbal2_4.asm b/audio/sfx/cymbal2_4.asm
new file mode 100644
index 00000000..b33e10fc
--- /dev/null
+++ b/audio/sfx/cymbal2_4.asm
@@ -0,0 +1,4 @@
+SFX_Cymbal2_4_Ch7:
+ unknownnoise0x20 0, 162, 17
+ endchannel
+
diff --git a/audio/sfx/cymbal3_4.asm b/audio/sfx/cymbal3_4.asm
new file mode 100644
index 00000000..b5e99c56
--- /dev/null
+++ b/audio/sfx/cymbal3_4.asm
@@ -0,0 +1,4 @@
+SFX_Cymbal3_4_Ch7:
+ unknownnoise0x20 0, 162, 80
+ endchannel
+
diff --git a/audio/sfx/get_item2_4.asm b/audio/sfx/get_item2_4.asm
new file mode 100644
index 00000000..b2909739
--- /dev/null
+++ b/audio/sfx/get_item2_4.asm
@@ -0,0 +1,67 @@
+SFX_80ec8_4_Ch4:
+ executemusic
+ tempo 256
+ volume 7, 7
+ duty 2
+ toggleperfectpitch
+ notetype 5, 11, 4
+ octave 4
+ D_ 4
+ C_ 4
+ octave 3
+ A_ 8
+ notetype 5, 11, 2
+ octave 4
+ D# 2
+ D# 2
+ D_ 2
+ C_ 2
+ C_ 2
+ octave 3
+ A# 2
+ notetype 5, 11, 4
+ octave 4
+ C_ 8
+ endchannel
+
+SFX_80ee7_4_Ch5:
+ executemusic
+ vibrato 8, 2, 7
+ duty 2
+ notetype 5, 12, 5
+ octave 4
+ A_ 4
+ F_ 4
+ C_ 8
+ notetype 5, 12, 2
+ A# 2
+ A# 2
+ A# 2
+ G_ 2
+ G_ 2
+ A# 2
+ notetype 5, 12, 4
+ A_ 8
+ endchannel
+
+SFX_80eff_4_Ch6:
+ executemusic
+ notetype 5, 1, 0
+ octave 5
+ F_ 4
+ D# 4
+ C_ 8
+ D# 1
+ rest 1
+ D# 1
+ rest 1
+ E_ 1
+ rest 1
+ F_ 1
+ rest 1
+ F_ 1
+ rest 1
+ G_ 1
+ rest 1
+ A_ 8
+ endchannel
diff --git a/audio/sfx/get_item2_4_2.asm b/audio/sfx/get_item2_4_2.asm
new file mode 100644
index 00000000..4f7e38eb
--- /dev/null
+++ b/audio/sfx/get_item2_4_2.asm
@@ -0,0 +1,69 @@
+SFX_Get_Item2_4_2_Ch1:
+ executemusic
+ tempo 256
+ volume 7, 7
+ duty 2
+ toggleperfectpitch
+ notetype 5, 11, 4
+ octave 4
+ D_ 4
+ C_ 4
+ octave 3
+ A_ 8
+ notetype 5, 11, 2
+ octave 4
+ D# 2
+ D# 2
+ D_ 2
+ C_ 2
+ C_ 2
+ octave 3
+ A# 2
+ notetype 5, 11, 4
+ octave 4
+ C_ 8
+ endchannel
+
+
+SFX_Get_Item2_4_2_Ch2:
+ executemusic
+ vibrato 8, 2, 7
+ duty 2
+ notetype 5, 12, 5
+ octave 4
+ A_ 4
+ F_ 4
+ C_ 8
+ notetype 5, 12, 2
+ A# 2
+ A# 2
+ A# 2
+ G_ 2
+ G_ 2
+ A# 2
+ notetype 5, 12, 4
+ A_ 8
+ endchannel
+
+
+SFX_Get_Item2_4_2_Ch3:
+ executemusic
+ notetype 5, 1, 0
+ octave 5
+ F_ 4
+ D# 4
+ C_ 8
+ D# 1
+ rest 1
+ D# 1
+ rest 1
+ E_ 1
+ rest 1
+ F_ 1
+ rest 1
+ F_ 1
+ rest 1
+ G_ 1
+ rest 1
+ A_ 8
+ endchannel
diff --git a/audio/sfx/heal_ailment_4.asm b/audio/sfx/heal_ailment_4.asm
new file mode 100755
index 00000000..fd80517d
--- /dev/null
+++ b/audio/sfx/heal_ailment_4.asm
@@ -0,0 +1,7 @@
+SFX_8027f_4_Ch4:
+ duty 2
+ unknownsfx0x10 23
+ unknownsfx0x20 15, 240, 240, 4
+ unknownsfx0x20 15, 242, 80, 6
+ unknownsfx0x10 8
+ endchannel
diff --git a/audio/sfx/muted_snare1_4.asm b/audio/sfx/muted_snare1_4.asm
new file mode 100644
index 00000000..bcf8c54b
--- /dev/null
+++ b/audio/sfx/muted_snare1_4.asm
@@ -0,0 +1,5 @@
+SFX_Muted_Snare1_4_Ch7:
+ unknownnoise0x20 0, 161, 24
+ unknownnoise0x20 0, 49, 51
+ endchannel
+
diff --git a/audio/sfx/muted_snare2_4.asm b/audio/sfx/muted_snare2_4.asm
new file mode 100644
index 00000000..8934afe2
--- /dev/null
+++ b/audio/sfx/muted_snare2_4.asm
@@ -0,0 +1,4 @@
+SFX_Muted_Snare2_4_Ch7:
+ unknownnoise0x20 0, 145, 34
+ endchannel
+
diff --git a/audio/sfx/muted_snare3_4.asm b/audio/sfx/muted_snare3_4.asm
new file mode 100644
index 00000000..beeec087
--- /dev/null
+++ b/audio/sfx/muted_snare3_4.asm
@@ -0,0 +1,4 @@
+SFX_Muted_Snare3_4_Ch7:
+ unknownnoise0x20 0, 113, 34
+ endchannel
+
diff --git a/audio/sfx/muted_snare4_4.asm b/audio/sfx/muted_snare4_4.asm
new file mode 100644
index 00000000..7fc65086
--- /dev/null
+++ b/audio/sfx/muted_snare4_4.asm
@@ -0,0 +1,4 @@
+SFX_Muted_Snare4_4_Ch7:
+ unknownnoise0x20 0, 97, 34
+ endchannel
+
diff --git a/audio/sfx/pokeflute_ch1_ch2.asm b/audio/sfx/pokeflute_ch1_ch2.asm
index 84631bca..84631bca 100755..100644
--- a/audio/sfx/pokeflute_ch1_ch2.asm
+++ b/audio/sfx/pokeflute_ch1_ch2.asm
diff --git a/audio/sfx/pokeflute_ch3.asm b/audio/sfx/pokeflute_ch3.asm
index 3c883462..3c883462 100755..100644
--- a/audio/sfx/pokeflute_ch3.asm
+++ b/audio/sfx/pokeflute_ch3.asm
diff --git a/audio/sfx/save_3.asm b/audio/sfx/save_3.asm
index ad049ec6..7f0df72c 100644
--- a/audio/sfx/save_3.asm
+++ b/audio/sfx/save_3.asm
@@ -1,36 +1,18 @@
SFX_Save_3_Ch1:
duty 2
-IF DEF(_RED)
- unknownsfx0x20 4, 244, 0, 7
- unknownsfx0x20 3, 228, 128, 6
- unknownsfx0x20 3, 228, 192, 6
- unknownsfx0x20 3, 228, 0, 7
- unknownsfx0x20 2, 228, 160, 7
-ELSE
unknownsfx0x20 3, 228, 0, 6
unknownsfx0x20 3, 228, 128, 6
unknownsfx0x20 3, 228, 192, 6
unknownsfx0x20 3, 228, 0, 7
unknownsfx0x20 15, 242, 224, 7
-ENDC
endchannel
-
SFX_Save_3_Ch2:
duty 2
-IF DEF(_RED)
- unknownsfx0x20 4, 8, 0, 0
- unknownsfx0x20 3, 212, 1, 7
- unknownsfx0x20 3, 196, 129, 6
- unknownsfx0x20 3, 196, 193, 6
- unknownsfx0x20 3, 196, 1, 7
- unknownsfx0x20 2, 196, 161, 7
-ELSE
unknownsfx0x20 3, 8, 0, 0
unknownsfx0x20 3, 196, 1, 6
unknownsfx0x20 3, 196, 129, 6
unknownsfx0x20 3, 196, 193, 6
unknownsfx0x20 3, 196, 1, 7
unknownsfx0x20 15, 210, 225, 7
-ENDC
endchannel
diff --git a/audio/sfx/shooting_star.asm b/audio/sfx/shooting_star.asm
index f8b8e285..282f83b5 100644
--- a/audio/sfx/shooting_star.asm
+++ b/audio/sfx/shooting_star.asm
@@ -1,5 +1,5 @@
SFX_Shooting_Star_Ch1:
- dutycycle 228
+ dutycycle 136
unknownsfx0x10 47
unknownsfx0x20 4, 64, 224, 7
unknownsfx0x20 4, 96, 224, 7
diff --git a/audio/sfx/snare1_4.asm b/audio/sfx/snare1_4.asm
new file mode 100755
index 00000000..4ba3b8c5
--- /dev/null
+++ b/audio/sfx/snare1_4.asm
@@ -0,0 +1,4 @@
+SFX_Snare1_4_Ch7: ; 841ec
+ unknownnoise0x20 0, 193, 51
+ endchannel
+
diff --git a/audio/sfx/snare2_4.asm b/audio/sfx/snare2_4.asm
new file mode 100755
index 00000000..dc1a26a9
--- /dev/null
+++ b/audio/sfx/snare2_4.asm
@@ -0,0 +1,4 @@
+SFX_Snare2_4_Ch7: ; 841f0
+ unknownnoise0x20 0, 177, 51
+ endchannel
+
diff --git a/audio/sfx/snare3_4.asm b/audio/sfx/snare3_4.asm
new file mode 100755
index 00000000..a0fcb0d7
--- /dev/null
+++ b/audio/sfx/snare3_4.asm
@@ -0,0 +1,4 @@
+SFX_Snare3_4_Ch7:
+ unknownnoise0x20 0, 161, 51
+ endchannel
+
diff --git a/audio/sfx/snare4_4.asm b/audio/sfx/snare4_4.asm
new file mode 100644
index 00000000..c1d5cc21
--- /dev/null
+++ b/audio/sfx/snare4_4.asm
@@ -0,0 +1,4 @@
+SFX_Snare4_4_Ch7:
+ unknownnoise0x20 0, 129, 51
+ endchannel
+
diff --git a/audio/sfx/snare5_4.asm b/audio/sfx/snare5_4.asm
new file mode 100644
index 00000000..37fe8b27
--- /dev/null
+++ b/audio/sfx/snare5_4.asm
@@ -0,0 +1,9 @@
+SFX_Snare5_4_Ch7:
+ unknownnoise0x20 7, 132, 55
+ unknownnoise0x20 6, 132, 54
+ unknownnoise0x20 5, 131, 53
+ unknownnoise0x20 4, 131, 52
+ unknownnoise0x20 3, 130, 51
+ unknownnoise0x20 2, 129, 50
+ endchannel
+
diff --git a/audio/sfx/snare6_4.asm b/audio/sfx/snare6_4.asm
new file mode 100644
index 00000000..1b835f00
--- /dev/null
+++ b/audio/sfx/snare6_4.asm
@@ -0,0 +1,4 @@
+SFX_Snare6_4_Ch7:
+ unknownnoise0x20 0, 129, 16
+ endchannel
+
diff --git a/audio/sfx/snare7_4.asm b/audio/sfx/snare7_4.asm
new file mode 100644
index 00000000..ed03d368
--- /dev/null
+++ b/audio/sfx/snare7_4.asm
@@ -0,0 +1,4 @@
+SFX_Snare7_4_Ch7:
+ unknownnoise0x20 0, 130, 35
+ endchannel
+
diff --git a/audio/sfx/snare8_4.asm b/audio/sfx/snare8_4.asm
new file mode 100644
index 00000000..ec0e6665
--- /dev/null
+++ b/audio/sfx/snare8_4.asm
@@ -0,0 +1,4 @@
+SFX_Snare8_4_Ch7:
+ unknownnoise0x20 0, 130, 37
+ endchannel
+
diff --git a/audio/sfx/snare9_4.asm b/audio/sfx/snare9_4.asm
new file mode 100644
index 00000000..254e9ce6
--- /dev/null
+++ b/audio/sfx/snare9_4.asm
@@ -0,0 +1,4 @@
+SFX_Snare9_4_Ch7:
+ unknownnoise0x20 0, 130, 38
+ endchannel
+
diff --git a/audio/sfx/swap_2.asm b/audio/sfx/swap_2.asm
new file mode 100644
index 00000000..270cf15b
--- /dev/null
+++ b/audio/sfx/swap_2.asm
@@ -0,0 +1,11 @@
+SFX_Swap_2_Ch1:
+ duty 2
+ unknownsfx0x20 8, 225, 64, 7
+ endchannel
+
+
+SFX_Swap_2_Ch2:
+ duty 2
+ unknownsfx0x20 2, 8, 0, 0
+ unknownsfx0x20 8, 177, 65, 7
+ endchannel
diff --git a/audio/sfx/tink_4.asm b/audio/sfx/tink_4.asm
new file mode 100755
index 00000000..4efa3209
--- /dev/null
+++ b/audio/sfx/tink_4.asm
@@ -0,0 +1,8 @@
+SFX_8028e_4_Ch4:
+ duty 2
+ unknownsfx0x10 58
+ unknownsfx0x20 4, 242, 0, 2
+ unknownsfx0x10 34
+ unknownsfx0x20 8, 226, 0, 2
+ unknownsfx0x10 8
+ endchannel
diff --git a/audio/sfx/triangle1_4.asm b/audio/sfx/triangle1_4.asm
new file mode 100644
index 00000000..a90e4c48
--- /dev/null
+++ b/audio/sfx/triangle1_4.asm
@@ -0,0 +1,4 @@
+SFX_Triangle1_4_Ch7:
+ unknownnoise0x20 0, 81, 42
+ endchannel
+
diff --git a/audio/sfx/triangle2_4.asm b/audio/sfx/triangle2_4.asm
new file mode 100644
index 00000000..58b6d511
--- /dev/null
+++ b/audio/sfx/triangle2_4.asm
@@ -0,0 +1,5 @@
+SFX_Triangle2_4_Ch7:
+ unknownnoise0x20 1, 65, 43
+ unknownnoise0x20 0, 97, 42
+ endchannel
+
diff --git a/audio/sfx/triangle3_4.asm b/audio/sfx/triangle3_4.asm
new file mode 100644
index 00000000..a2fab704
--- /dev/null
+++ b/audio/sfx/triangle3_4.asm
@@ -0,0 +1,5 @@
+SFX_Triangle3_4_Ch7:
+ unknownnoise0x20 2, 145, 40
+ unknownnoise0x20 0, 113, 24
+ endchannel
+
diff --git a/audio/sfx/unknown_80250.asm b/audio/sfx/unknown_80250.asm
new file mode 100644
index 00000000..4f65a6a0
--- /dev/null
+++ b/audio/sfx/unknown_80250.asm
@@ -0,0 +1,7 @@
+SFX_80250_4_Ch4:
+ duty 2
+ unknownsfx0x20 0, 145, 192, 7
+ unknownsfx0x20 0, 129, 208, 7
+ unknownsfx0x20 0, 145, 192, 7
+ unknownsfx0x20 12, 161, 208, 7
+ endchannel
diff --git a/audio/sfx/unknown_80263.asm b/audio/sfx/unknown_80263.asm
new file mode 100755
index 00000000..884c1352
--- /dev/null
+++ b/audio/sfx/unknown_80263.asm
@@ -0,0 +1,4 @@
+SFX_80263_4_Ch7:
+ unknownnoise0x20 1, 226, 51
+ unknownnoise0x20 8, 225, 34
+ endchannel
diff --git a/audio/sfx/unknown_8026a.asm b/audio/sfx/unknown_8026a.asm
new file mode 100644
index 00000000..9dd6a02b
--- /dev/null
+++ b/audio/sfx/unknown_8026a.asm
@@ -0,0 +1,10 @@
+SFX_8026a_4_Ch4:
+ duty 2
+ unknownsfx0x10 20
+ unknownsfx0x20 4, 242, 0, 6
+ unknownsfx0x20 4, 242, 0, 6
+ unknownsfx0x10 23
+ unknownsfx0x20 15, 242, 0, 6
+ unknownsfx0x10 8
+ endchannel
+
diff --git a/audio/sfx/unknown_8029f.asm b/audio/sfx/unknown_8029f.asm
new file mode 100755
index 00000000..475c2813
--- /dev/null
+++ b/audio/sfx/unknown_8029f.asm
@@ -0,0 +1,10 @@
+SFX_8029f_4_Ch7:
+ unknownnoise0x20 6, 241, 17
+ unknownnoise0x20 7, 242, 34
+ unknownnoise0x20 8, 243, 51
+ unknownnoise0x20 9, 244, 66
+ unknownnoise0x20 10, 245, 51
+ unknownnoise0x20 11, 246, 34
+ unknownnoise0x20 12, 247, 17
+ endchannel
+
diff --git a/audio/sfx/unknown_802b5.asm b/audio/sfx/unknown_802b5.asm
new file mode 100644
index 00000000..364443cf
--- /dev/null
+++ b/audio/sfx/unknown_802b5.asm
@@ -0,0 +1,8 @@
+SFX_802b5_4_Ch4:
+ duty 2
+ unknownsfx0x20 3, 196, 96, 7
+ unknownsfx0x20 0, 164, 64, 7
+ unknownsfx0x20 2, 196, 64, 7
+ unknownsfx0x20 0, 164, 96, 7
+ unknownsfx0x20 15, 193, 96, 7
+ endchannel
diff --git a/audio/sfx/unknown_802cc.asm b/audio/sfx/unknown_802cc.asm
new file mode 100755
index 00000000..9e209638
--- /dev/null
+++ b/audio/sfx/unknown_802cc.asm
@@ -0,0 +1,5 @@
+SFX_802cc_4_Ch4:
+ duty 2
+ unknownsfx0x20 3, 180, 192, 7
+ unknownsfx0x20 0, 161, 128, 7
+ endchannel
diff --git a/audio/sfx/unknown_802d7.asm b/audio/sfx/unknown_802d7.asm
new file mode 100755
index 00000000..4a1f1ab4
--- /dev/null
+++ b/audio/sfx/unknown_802d7.asm
@@ -0,0 +1,6 @@
+SFX_802d7_4_Ch7:
+ unknownnoise0x20 2, 241, 50
+ unknownnoise0x20 2, 0, 0
+ unknownnoise0x20 4, 230, 33
+ endchannel
+
diff --git a/audio/sfx/unknown_802e1.asm b/audio/sfx/unknown_802e1.asm
new file mode 100644
index 00000000..e1963b23
--- /dev/null
+++ b/audio/sfx/unknown_802e1.asm
@@ -0,0 +1,6 @@
+SFX_802e1_4_Ch7:
+ unknownnoise0x20 3, 243, 102
+ unknownnoise0x20 3, 51, 83
+ unknownnoise0x20 7, 245, 81
+ endchannel
+
diff --git a/audio/sfx/unknown_80337.asm b/audio/sfx/unknown_80337.asm
new file mode 100644
index 00000000..c21f8794
--- /dev/null
+++ b/audio/sfx/unknown_80337.asm
@@ -0,0 +1,64 @@
+SFX_80337_4_Branch:
+ dutycycle 240
+ unknownsfx0x20 15, 224, 128, 7
+ unknownsfx0x20 15, 240, 132, 7
+ unknownsfx0x20 15, 195, 224, 5
+ unknownsfx0x20 15, 196, 0, 6
+ unknownsfx0x20 10, 108, 128, 7
+ unknownsfx0x20 8, 113, 132, 7
+ endchannel
+
+SFX_80352_4_Branch:
+ dutycycle 5
+ unknownsfx0x20 15, 160, 65, 7
+ unknownsfx0x20 15, 176, 67, 7
+ unknownsfx0x20 15, 147, 177, 5
+ unknownsfx0x20 15, 148, 193, 5
+ unknownsfx0x20 10, 76, 65, 7
+ unknownsfx0x20 8, 49, 70, 7
+ endchannel
+
+SFX_8036c_4_Branch:
+ unknownnoise0x20 2, 242, 76
+ unknownnoise0x20 6, 224, 58
+ unknownnoise0x20 15, 208, 58
+ unknownnoise0x20 8, 208, 44
+ unknownnoise0x20 6, 230, 76
+ unknownnoise0x20 12, 125, 76
+ unknownnoise0x20 15, 211, 76
+ endchannel
+
+SFX_80383_4_Ch4:
+ dutycycle 240
+ unknownsfx0x20 15, 247, 160, 7
+ unknownsfx0x20 6, 230, 163, 7
+ unknownsfx0x20 10, 244, 160, 7
+ dutycycle 165
+ unknownsfx0x20 10, 246, 216, 7
+ unknownsfx0x20 4, 227, 215, 7
+ unknownsfx0x20 15, 242, 216, 7
+ endchannel
+
+SFX_803a0_4_Ch5:
+ dutycycle 5
+ unknownsfx0x20 2, 8, 0, 0
+ unknownsfx0x20 15, 167, 161, 6
+ unknownsfx0x20 6, 134, 162, 6
+ unknownsfx0x20 10, 116, 161, 6
+ dutycycle 95
+ unknownsfx0x20 10, 118, 214, 6
+ unknownsfx0x20 4, 131, 217, 6
+ unknownsfx0x20 15, 162, 215, 6
+ endchannel
+
+SFX_803c1_4_Ch7:
+ unknownnoise0x20 2, 242, 60
+ unknownnoise0x20 8, 228, 62
+ unknownnoise0x20 15, 215, 60
+ unknownnoise0x20 6, 197, 59
+ unknownnoise0x20 6, 228, 61
+ unknownnoise0x20 8, 182, 60
+ unknownnoise0x20 6, 212, 61
+ unknownnoise0x20 8, 193, 59
+ endchannel
+
diff --git a/audio/sfx/unknown_803da.asm b/audio/sfx/unknown_803da.asm
new file mode 100644
index 00000000..442bd112
--- /dev/null
+++ b/audio/sfx/unknown_803da.asm
@@ -0,0 +1,24 @@
+SFX_803da_4_Ch4:
+ dutycycle 240
+ unknownsfx0x20 15, 247, 192, 7
+ unknownsfx0x20 6, 228, 193, 7
+ unknownsfx0x20 10, 246, 192, 7
+ unknownsfx0x20 4, 211, 194, 7
+ unknownsfx0x20 8, 193, 192, 7
+ endchannel
+
+SFX_803f1_4_Ch5:
+ dutycycle 95
+ unknownsfx0x20 15, 151, 129, 7
+ unknownsfx0x20 6, 132, 128, 7
+ unknownsfx0x20 10, 150, 129, 7
+ unknownsfx0x20 15, 131, 129, 7
+ endchannel
+
+SFX_80404_4_Ch7:
+ unknownnoise0x20 3, 242, 60
+ unknownnoise0x20 13, 230, 44
+ unknownnoise0x20 15, 215, 60
+ unknownnoise0x20 8, 193, 44
+ endchannel
+
diff --git a/audio/sfx/unknown_80411.asm b/audio/sfx/unknown_80411.asm
new file mode 100644
index 00000000..4ef49cdf
--- /dev/null
+++ b/audio/sfx/unknown_80411.asm
@@ -0,0 +1,32 @@
+SFX_80411_4_Ch4:
+ dutycycle 240
+ unknownsfx0x20 15, 247, 128, 6
+ unknownsfx0x20 10, 230, 132, 6
+ unknownsfx0x20 15, 215, 144, 6
+ unknownsfx0x20 8, 213, 144, 6
+ unknownsfx0x20 6, 196, 136, 6
+ unknownsfx0x20 5, 211, 112, 6
+ unknownsfx0x20 4, 211, 96, 6
+ unknownsfx0x20 8, 193, 64, 6
+ endchannel
+
+SFX_80434_4_Ch5:
+ dutycycle 5
+ unknownsfx0x20 15, 183, 65, 6
+ unknownsfx0x20 10, 150, 66, 6
+ unknownsfx0x20 15, 167, 81, 6
+ unknownsfx0x20 8, 165, 81, 6
+ unknownsfx0x20 6, 148, 71, 6
+ unknownsfx0x20 5, 163, 49, 6
+ unknownsfx0x20 4, 147, 34, 6
+ unknownsfx0x20 8, 113, 1, 6
+ endchannel
+
+SFX_80457_4_Ch7:
+ unknownnoise0x20 15, 228, 60
+ unknownnoise0x20 10, 199, 76
+ unknownnoise0x20 10, 199, 60
+ unknownnoise0x20 12, 183, 76
+ unknownnoise0x20 15, 162, 92
+ endchannel
+
diff --git a/audio/sfx/unknown_80467.asm b/audio/sfx/unknown_80467.asm
new file mode 100644
index 00000000..7e5335ff
--- /dev/null
+++ b/audio/sfx/unknown_80467.asm
@@ -0,0 +1,33 @@
+SFX_80467_4_Ch4:
+ dutycycle 240
+ unknownsfx0x20 6, 247, 160, 7
+ unknownsfx0x20 8, 230, 164, 7
+ unknownsfx0x20 4, 214, 160, 7
+ unknownsfx0x20 15, 211, 32, 7
+ unknownsfx0x20 8, 195, 35, 7
+ unknownsfx0x20 2, 194, 40, 7
+ unknownsfx0x20 8, 177, 48, 7
+ endchannel
+
+SFX_80486_4_Ch5:
+ dutycycle 10
+ unknownsfx0x20 4, 8, 0, 0
+ unknownsfx0x20 6, 167, 65, 7
+ unknownsfx0x20 8, 134, 67, 7
+ unknownsfx0x20 4, 118, 65, 7
+ unknownsfx0x20 13, 131, 194, 6
+ unknownsfx0x20 7, 115, 193, 6
+ unknownsfx0x20 3, 130, 204, 6
+ unknownsfx0x20 8, 113, 216, 6
+ endchannel
+
+SFX_804a9_4_Ch7:
+ unknownnoise0x20 2, 242, 76
+ unknownnoise0x20 6, 230, 58
+ unknownnoise0x20 4, 215, 58
+ unknownnoise0x20 6, 214, 44
+ unknownnoise0x20 8, 229, 60
+ unknownnoise0x20 12, 210, 61
+ unknownnoise0x20 8, 209, 44
+ endchannel
+
diff --git a/audio/sfx/unknown_804bf.asm b/audio/sfx/unknown_804bf.asm
new file mode 100644
index 00000000..6776692c
--- /dev/null
+++ b/audio/sfx/unknown_804bf.asm
@@ -0,0 +1,25 @@
+SFX_804bf_4_Ch4:
+ dutycycle 165
+ unknownsfx0x20 6, 244, 64, 7
+ unknownsfx0x20 15, 227, 48, 7
+ unknownsfx0x20 4, 244, 64, 7
+ unknownsfx0x20 5, 179, 72, 7
+ unknownsfx0x20 8, 209, 80, 7
+ endchannel
+
+SFX_804d6_4_Ch5:
+ dutycycle 119
+ unknownsfx0x20 6, 195, 18, 7
+ unknownsfx0x20 15, 179, 4, 7
+ unknownsfx0x20 3, 195, 18, 7
+ unknownsfx0x20 4, 195, 33, 7
+ unknownsfx0x20 8, 177, 50, 7
+ endchannel
+
+SFX_804ed_4_Ch7:
+ unknownnoise0x20 8, 214, 44
+ unknownnoise0x20 12, 198, 60
+ unknownnoise0x20 10, 182, 44
+ unknownnoise0x20 8, 145, 28
+ endchannel
+
diff --git a/audio/sfx/unknown_804fa.asm b/audio/sfx/unknown_804fa.asm
new file mode 100644
index 00000000..74b7e681
--- /dev/null
+++ b/audio/sfx/unknown_804fa.asm
@@ -0,0 +1,29 @@
+SFX_804fa_4_Ch4:
+ dutycycle 240
+ unknownsfx0x20 4, 247, 8, 6
+ unknownsfx0x20 6, 230, 0, 6
+ unknownsfx0x20 6, 215, 240, 5
+ unknownsfx0x20 6, 196, 224, 5
+ unknownsfx0x20 5, 211, 192, 5
+ unknownsfx0x20 4, 211, 160, 5
+ unknownsfx0x20 8, 225, 128, 5
+ endchannel
+
+SFX_80519_4_Ch5:
+ dutycycle 10
+ unknownsfx0x20 4, 199, 4, 5
+ unknownsfx0x20 6, 166, 2, 5
+ unknownsfx0x20 6, 151, 241, 4
+ unknownsfx0x20 4, 180, 225, 4
+ unknownsfx0x20 5, 163, 194, 4
+ unknownsfx0x20 4, 179, 163, 4
+ unknownsfx0x20 8, 193, 130, 4
+ endchannel
+
+SFX_80538_4_Ch7:
+ unknownnoise0x20 12, 228, 76
+ unknownnoise0x20 10, 199, 92
+ unknownnoise0x20 12, 182, 76
+ unknownnoise0x20 15, 162, 92
+ endchannel
+
diff --git a/audio/sfx/unknown_80545.asm b/audio/sfx/unknown_80545.asm
new file mode 100644
index 00000000..9ba19478
--- /dev/null
+++ b/audio/sfx/unknown_80545.asm
@@ -0,0 +1,28 @@
+SFX_80545_4_Ch4:
+ dutycycle 241
+ unknownsfx0x20 4, 247, 192, 7
+ unknownsfx0x20 12, 230, 194, 7
+ unknownsfx0x20 6, 181, 128, 6
+ unknownsfx0x20 4, 196, 112, 6
+ unknownsfx0x20 4, 181, 96, 6
+ unknownsfx0x20 8, 193, 64, 6
+ endchannel
+
+SFX_80560_4_Ch5:
+ dutycycle 204
+ unknownsfx0x20 3, 199, 129, 7
+ unknownsfx0x20 12, 182, 128, 7
+ unknownsfx0x20 6, 165, 65, 6
+ unknownsfx0x20 4, 196, 50, 6
+ unknownsfx0x20 6, 181, 33, 6
+ unknownsfx0x20 8, 161, 2, 6
+ endchannel
+
+SFX_8057b_4_Ch7:
+ unknownnoise0x20 3, 228, 60
+ unknownnoise0x20 12, 214, 44
+ unknownnoise0x20 4, 228, 60
+ unknownnoise0x20 8, 183, 92
+ unknownnoise0x20 15, 194, 93
+ endchannel
+
diff --git a/audio/sfx/unknown_8058b.asm b/audio/sfx/unknown_8058b.asm
new file mode 100644
index 00000000..9e424200
--- /dev/null
+++ b/audio/sfx/unknown_8058b.asm
@@ -0,0 +1,30 @@
+SFX_8058b_4_Ch4:
+ dutycycle 201
+ unknownsfx0x20 8, 247, 128, 6
+ unknownsfx0x20 2, 247, 96, 6
+ unknownsfx0x20 1, 231, 64, 6
+ unknownsfx0x20 1, 231, 32, 6
+ unknownsfx0x20 15, 209, 0, 6
+ unknownsfx0x20 4, 199, 64, 7
+ unknownsfx0x20 4, 167, 48, 7
+ unknownsfx0x20 15, 145, 32, 7
+ endchannel
+
+SFX_805ae_4_Ch5:
+ dutycycle 121
+ unknownsfx0x20 10, 231, 130, 6
+ unknownsfx0x20 2, 231, 98, 6
+ unknownsfx0x20 1, 215, 66, 6
+ unknownsfx0x20 1, 215, 34, 6
+ unknownsfx0x20 15, 193, 2, 6
+ unknownsfx0x20 4, 183, 66, 7
+ unknownsfx0x20 2, 151, 50, 7
+ unknownsfx0x20 15, 129, 34, 7
+ endchannel
+
+SFX_805d1_4_Ch7:
+ unknownnoise0x20 4, 116, 33
+ unknownnoise0x20 4, 116, 16
+ unknownnoise0x20 4, 113, 32
+ endchannel
+
diff --git a/audio/sfx/unknown_805db.asm b/audio/sfx/unknown_805db.asm
new file mode 100644
index 00000000..5e978a1e
--- /dev/null
+++ b/audio/sfx/unknown_805db.asm
@@ -0,0 +1,20 @@
+SFX_805db_4_Ch4:
+ dutycycle 245
+ unknownsfx0x20 4, 243, 24, 7
+ unknownsfx0x20 15, 229, 152, 7
+ unknownsfx0x20 8, 145, 88, 7
+ endchannel
+
+SFX_805ea_4_Ch5:
+ dutycycle 160
+ unknownsfx0x20 5, 179, 8, 7
+ unknownsfx0x20 15, 197, 136, 7
+ unknownsfx0x20 8, 113, 72, 7
+ endchannel
+
+SFX_805f9_4_Ch7:
+ unknownnoise0x20 3, 161, 28
+ unknownnoise0x20 14, 148, 44
+ unknownnoise0x20 8, 129, 28
+ endchannel
+
diff --git a/audio/sfx/unknown_80603.asm b/audio/sfx/unknown_80603.asm
new file mode 100644
index 00000000..3cbc9ca2
--- /dev/null
+++ b/audio/sfx/unknown_80603.asm
@@ -0,0 +1,22 @@
+SFX_80603_4_Ch4:
+ dutycycle 165
+ unknownsfx0x20 4, 225, 0, 7
+ unknownsfx0x20 4, 242, 128, 7
+ unknownsfx0x20 2, 146, 64, 7
+ unknownsfx0x20 8, 225, 0, 6
+ endchannel
+
+SFX_80616_4_Ch5:
+ dutycycle 10
+ unknownsfx0x20 4, 177, 225, 6
+ unknownsfx0x20 3, 194, 225, 6
+ unknownsfx0x20 3, 98, 129, 6
+ unknownsfx0x20 8, 177, 225, 5
+ endchannel
+
+SFX_80629_4_Ch7:
+ unknownnoise0x20 2, 97, 50
+ unknownnoise0x20 2, 97, 33
+ unknownnoise0x20 8, 97, 17
+ endchannel
+
diff --git a/audio/sfx/unknown_80633.asm b/audio/sfx/unknown_80633.asm
new file mode 100644
index 00000000..9be59347
--- /dev/null
+++ b/audio/sfx/unknown_80633.asm
@@ -0,0 +1,20 @@
+SFX_80633_4_Ch4:
+ dutycycle 250
+ unknownsfx0x20 6, 131, 71, 2
+ unknownsfx0x20 15, 98, 38, 2
+ unknownsfx0x20 4, 82, 69, 2
+ unknownsfx0x20 9, 99, 6, 2
+ unknownsfx0x20 15, 130, 37, 2
+ unknownsfx0x20 15, 66, 7, 2
+SFX_8064d_4_Ch5:
+ endchannel
+
+SFX_8064e_4_Ch7:
+ unknownnoise0x20 8, 212, 140
+ unknownnoise0x20 4, 226, 156
+ unknownnoise0x20 15, 198, 140
+ unknownnoise0x20 8, 228, 172
+ unknownnoise0x20 15, 215, 156
+ unknownnoise0x20 15, 242, 172
+ endchannel
+
diff --git a/audio/sfx/unknown_80661.asm b/audio/sfx/unknown_80661.asm
new file mode 100644
index 00000000..f6848664
--- /dev/null
+++ b/audio/sfx/unknown_80661.asm
@@ -0,0 +1,20 @@
+SFX_80661_4_Ch4:
+ dutycycle 240
+ unknownsfx0x20 4, 243, 224, 6
+ unknownsfx0x20 15, 228, 64, 6
+ unknownsfx0x20 8, 193, 32, 6
+ endchannel
+
+SFX_80670_4_Ch5:
+ dutycycle 10
+ unknownsfx0x20 3, 195, 131, 6
+ unknownsfx0x20 14, 180, 2, 6
+ unknownsfx0x20 8, 161, 1, 6
+ endchannel
+
+SFX_8067f_4_Ch7:
+ unknownnoise0x20 4, 211, 92
+ unknownnoise0x20 15, 230, 76
+ unknownnoise0x20 8, 177, 92
+ endchannel
+
diff --git a/audio/sfx/unknown_80689.asm b/audio/sfx/unknown_80689.asm
new file mode 100644
index 00000000..0e2c573a
--- /dev/null
+++ b/audio/sfx/unknown_80689.asm
@@ -0,0 +1,17 @@
+SFX_80689_4_Ch4:
+ dutycycle 10
+ unknownsfx0x20 6, 226, 0, 5
+ unknownsfx0x20 6, 227, 128, 5
+ unknownsfx0x20 6, 211, 112, 5
+ unknownsfx0x20 8, 161, 96, 5
+ endchannel
+
+SFX_8069c_4_Ch5:
+ dutycycle 245
+ unknownsfx0x20 6, 226, 130, 4
+ unknownsfx0x20 6, 211, 1, 5
+ unknownsfx0x20 6, 178, 226, 4
+ unknownsfx0x20 8, 129, 193, 4
+SFX_806ae_4_Ch7:
+ endchannel
+
diff --git a/audio/sfx/unknown_806af.asm b/audio/sfx/unknown_806af.asm
new file mode 100644
index 00000000..3cb97c62
--- /dev/null
+++ b/audio/sfx/unknown_806af.asm
@@ -0,0 +1,36 @@
+SFX_806af_4_Ch4:
+ dutycycle 204
+ unknownsfx0x20 4, 241, 0, 7
+ unknownsfx0x20 4, 225, 128, 7
+ unknownsfx0x20 4, 209, 64, 7
+ unknownsfx0x20 4, 225, 64, 7
+ unknownsfx0x20 4, 241, 128, 7
+ unknownsfx0x20 4, 209, 0, 7
+ unknownsfx0x20 4, 241, 1, 7
+ unknownsfx0x20 4, 209, 130, 7
+ unknownsfx0x20 4, 193, 66, 7
+ unknownsfx0x20 8, 177, 65, 7
+ endchannel
+
+SFX_806da_4_Ch5:
+ dutycycle 68
+ unknownsfx0x20 12, 8, 0, 0
+ unknownsfx0x20 4, 241, 1, 7
+ unknownsfx0x20 4, 225, 130, 7
+ unknownsfx0x20 4, 209, 65, 7
+ unknownsfx0x20 4, 225, 65, 7
+ unknownsfx0x20 4, 241, 130, 7
+ unknownsfx0x20 8, 209, 1, 7
+ endchannel
+
+SFX_806f9_4_Ch7:
+ unknownnoise0x20 15, 8, 0
+ unknownnoise0x20 4, 8, 0
+ unknownnoise0x20 4, 209, 76
+ unknownnoise0x20 4, 177, 44
+ unknownnoise0x20 4, 209, 60
+ unknownnoise0x20 4, 177, 60
+ unknownnoise0x20 4, 193, 44
+ unknownnoise0x20 8, 161, 76
+ endchannel
+
diff --git a/audio/sfx/unknown_80712.asm b/audio/sfx/unknown_80712.asm
new file mode 100644
index 00000000..689f12ad
--- /dev/null
+++ b/audio/sfx/unknown_80712.asm
@@ -0,0 +1,27 @@
+SFX_80712_4_Ch4:
+ dutycycle 204
+ unknownsfx0x20 8, 245, 0, 6
+ unknownsfx0x20 2, 210, 56, 6
+ unknownsfx0x20 2, 194, 48, 6
+ unknownsfx0x20 2, 194, 40, 6
+ unknownsfx0x20 2, 178, 32, 6
+ unknownsfx0x20 2, 178, 16, 6
+ unknownsfx0x20 2, 162, 24, 6
+ unknownsfx0x20 2, 178, 16, 6
+ unknownsfx0x20 8, 193, 32, 6
+ endchannel
+
+SFX_80739_4_Ch5:
+ dutycycle 68
+ unknownsfx0x20 12, 195, 192, 5
+ unknownsfx0x20 3, 177, 249, 5
+ unknownsfx0x20 2, 161, 241, 5
+ unknownsfx0x20 2, 161, 233, 5
+ unknownsfx0x20 2, 145, 225, 5
+ unknownsfx0x20 2, 145, 217, 5
+ unknownsfx0x20 2, 129, 209, 5
+ unknownsfx0x20 2, 145, 217, 5
+ unknownsfx0x20 8, 145, 225, 5
+SFX_8075f_4_Ch7:
+ endchannel
+
diff --git a/audio/sfx/unknown_80760.asm b/audio/sfx/unknown_80760.asm
new file mode 100644
index 00000000..47d28da0
--- /dev/null
+++ b/audio/sfx/unknown_80760.asm
@@ -0,0 +1,15 @@
+SFX_80760_4_Ch4:
+ duty 0
+ unknownsfx0x20 8, 245, 128, 4
+ unknownsfx0x20 2, 225, 224, 5
+ unknownsfx0x20 8, 209, 220, 5
+ endchannel
+
+SFX_8076f_4_Ch5:
+ dutycycle 165
+ unknownsfx0x20 7, 149, 65, 4
+ unknownsfx0x20 2, 129, 33, 5
+ unknownsfx0x20 8, 97, 26, 5
+SFX_8077d_4_Ch7:
+ endchannel
+
diff --git a/audio/sfx/unknown_8077e.asm b/audio/sfx/unknown_8077e.asm
new file mode 100644
index 00000000..2047af78
--- /dev/null
+++ b/audio/sfx/unknown_8077e.asm
@@ -0,0 +1,39 @@
+SFX_8077e_4_Ch4:
+ dutycycle 136
+ unknownsfx0x20 5, 242, 80, 6
+ unknownsfx0x20 9, 209, 96, 6
+ unknownsfx0x20 5, 226, 18, 6
+ unknownsfx0x20 9, 193, 34, 6
+ unknownsfx0x20 5, 242, 16, 6
+ unknownsfx0x20 6, 209, 32, 6
+ loopchannel 2, SFX_8077e_4_Ch4
+ endchannel
+
+SFX_8079d_4_Ch5:
+ dutycycle 64
+ unknownsfx0x20 4, 8, 0, 0
+ unknownsfx0x20 5, 242, 81, 6
+ unknownsfx0x20 9, 209, 97, 6
+ unknownsfx0x20 5, 226, 20, 6
+ unknownsfx0x20 8, 193, 36, 6
+ unknownsfx0x20 5, 242, 17, 6
+ unknownsfx0x20 12, 209, 33, 6
+ unknownsfx0x20 5, 226, 20, 6
+ unknownsfx0x20 8, 193, 36, 6
+ unknownsfx0x20 5, 242, 17, 6
+ unknownsfx0x20 4, 209, 33, 6
+ endchannel
+
+SFX_807cc_4_Ch7:
+ unknownnoise0x20 6, 210, 28
+ unknownnoise0x20 9, 177, 44
+ unknownnoise0x20 8, 194, 44
+ unknownnoise0x20 9, 177, 60
+ unknownnoise0x20 6, 194, 44
+ unknownnoise0x20 9, 162, 60
+ unknownnoise0x20 7, 194, 44
+ unknownnoise0x20 5, 161, 60
+ unknownnoise0x20 9, 194, 44
+ unknownnoise0x20 4, 161, 60
+ endchannel
+
diff --git a/audio/sfx/unknown_807eb.asm b/audio/sfx/unknown_807eb.asm
new file mode 100644
index 00000000..8554695e
--- /dev/null
+++ b/audio/sfx/unknown_807eb.asm
@@ -0,0 +1,23 @@
+SFX_807eb_4_Ch4:
+ dutycycle 160
+ unknownsfx0x20 4, 243, 0, 6
+ unknownsfx0x20 8, 213, 96, 7
+ unknownsfx0x20 3, 226, 32, 7
+ unknownsfx0x20 8, 209, 16, 7
+ endchannel
+
+SFX_807fe_4_Ch5:
+ dutycycle 90
+ unknownsfx0x20 5, 179, 241, 6
+ unknownsfx0x20 7, 197, 82, 7
+ unknownsfx0x20 3, 162, 17, 7
+ unknownsfx0x20 8, 177, 1, 6
+ endchannel
+
+SFX_80811_4_Ch7:
+ unknownnoise0x20 3, 162, 60
+ unknownnoise0x20 12, 148, 44
+ unknownnoise0x20 3, 130, 28
+ unknownnoise0x20 8, 113, 44
+ endchannel
+
diff --git a/audio/sfx/unknown_8081e.asm b/audio/sfx/unknown_8081e.asm
new file mode 100644
index 00000000..1581d121
--- /dev/null
+++ b/audio/sfx/unknown_8081e.asm
@@ -0,0 +1,34 @@
+SFX_8081e_4_Ch4:
+ dutycycle 240
+ unknownsfx0x20 8, 247, 224, 6
+ unknownsfx0x20 6, 230, 229, 6
+ unknownsfx0x20 3, 244, 224, 6
+ unknownsfx0x20 3, 246, 208, 6
+ unknownsfx0x20 3, 227, 192, 6
+ unknownsfx0x20 4, 242, 176, 6
+ unknownsfx0x20 15, 162, 200, 6
+ endchannel
+
+SFX_8083d_4_Ch5:
+ dutycycle 5
+ unknownsfx0x20 3, 8, 0, 0
+ unknownsfx0x20 8, 167, 161, 6
+ unknownsfx0x20 6, 134, 163, 6
+ unknownsfx0x20 3, 116, 161, 6
+ unknownsfx0x20 3, 118, 145, 6
+ unknownsfx0x20 3, 131, 130, 6
+ unknownsfx0x20 4, 162, 113, 6
+ unknownsfx0x20 15, 114, 137, 6
+ endchannel
+
+SFX_80860_4_Ch7:
+ unknownnoise0x20 2, 242, 60
+ unknownnoise0x20 8, 228, 62
+ unknownnoise0x20 8, 215, 60
+ unknownnoise0x20 5, 197, 59
+ unknownnoise0x20 3, 212, 44
+ unknownnoise0x20 2, 182, 60
+ unknownnoise0x20 3, 164, 44
+ unknownnoise0x20 8, 145, 60
+ endchannel
+
diff --git a/audio/sfx/unknown_80879.asm b/audio/sfx/unknown_80879.asm
new file mode 100644
index 00000000..23839d60
--- /dev/null
+++ b/audio/sfx/unknown_80879.asm
@@ -0,0 +1,22 @@
+SFX_80879_4_Ch4:
+ dutycycle 240
+ unknownsfx0x20 15, 246, 101, 5
+ unknownsfx0x20 10, 228, 124, 5
+ unknownsfx0x20 3, 194, 92, 5
+ unknownsfx0x20 15, 178, 60, 5
+ endchannel
+
+SFX_8088c_4_Ch5:
+ dutycycle 90
+ unknownsfx0x20 14, 214, 3, 5
+ unknownsfx0x20 9, 180, 27, 5
+ unknownsfx0x20 4, 146, 250, 4
+ unknownsfx0x20 15, 162, 219, 4
+ endchannel
+
+SFX_8089f_4_Ch7:
+ unknownnoise0x20 12, 230, 76
+ unknownnoise0x20 11, 215, 92
+ unknownnoise0x20 15, 194, 76
+ endchannel
+
diff --git a/audio/sfx/unknown_808a9.asm b/audio/sfx/unknown_808a9.asm
new file mode 100644
index 00000000..efa4a0d6
--- /dev/null
+++ b/audio/sfx/unknown_808a9.asm
@@ -0,0 +1,31 @@
+SFX_808a9_4_Ch4:
+ dutycycle 240
+ unknownsfx0x20 4, 247, 160, 6
+ unknownsfx0x20 8, 230, 164, 6
+ unknownsfx0x20 4, 214, 160, 6
+ unknownsfx0x20 12, 211, 32, 6
+ unknownsfx0x20 8, 195, 36, 6
+ unknownsfx0x20 4, 194, 32, 6
+ unknownsfx0x20 8, 177, 16, 6
+ endchannel
+
+SFX_808c8_4_Ch5:
+ dutycycle 90
+ unknownsfx0x20 4, 231, 1, 6
+ unknownsfx0x20 8, 214, 3, 6
+ unknownsfx0x20 4, 198, 1, 6
+ unknownsfx0x20 12, 195, 129, 5
+ unknownsfx0x20 8, 179, 131, 5
+ unknownsfx0x20 4, 178, 130, 5
+ unknownsfx0x20 8, 161, 113, 5
+ endchannel
+
+SFX_808e7_4_Ch7:
+ unknownnoise0x20 7, 214, 92
+ unknownnoise0x20 8, 230, 76
+ unknownnoise0x20 4, 212, 92
+ unknownnoise0x20 4, 212, 76
+ unknownnoise0x20 7, 195, 76
+ unknownnoise0x20 8, 161, 92
+ endchannel
+
diff --git a/audio/sfx/unknown_808fa.asm b/audio/sfx/unknown_808fa.asm
new file mode 100644
index 00000000..4bd5839f
--- /dev/null
+++ b/audio/sfx/unknown_808fa.asm
@@ -0,0 +1,16 @@
+SFX_808fa_4_Ch4:
+ dutycycle 27
+ unknownsfx0x20 7, 210, 64, 7
+ unknownsfx0x20 15, 229, 96, 7
+ unknownsfx0x20 15, 193, 48, 7
+ endchannel
+
+SFX_80909_4_Ch5:
+ dutycycle 129
+ unknownsfx0x20 2, 194, 1, 7
+ unknownsfx0x20 4, 194, 8, 7
+ unknownsfx0x20 15, 215, 65, 7
+ unknownsfx0x20 15, 162, 1, 7
+SFX_8091b_4_Ch7:
+ endchannel
+
diff --git a/audio/sfx/unknown_8091c.asm b/audio/sfx/unknown_8091c.asm
new file mode 100644
index 00000000..c4fa4c20
--- /dev/null
+++ b/audio/sfx/unknown_8091c.asm
@@ -0,0 +1,20 @@
+SFX_8091c_4_Ch4:
+ dutycycle 240
+ unknownsfx0x20 15, 215, 128, 7
+ unknownsfx0x20 4, 230, 160, 7
+ unknownsfx0x20 15, 210, 64, 7
+ endchannel
+
+SFX_8092b_4_Ch5:
+ dutycycle 90
+ unknownsfx0x20 15, 199, 83, 7
+ unknownsfx0x20 5, 182, 114, 7
+ unknownsfx0x20 15, 194, 17, 7
+ endchannel
+
+SFX_8093a_4_Ch7:
+ unknownnoise0x20 13, 246, 76
+ unknownnoise0x20 4, 230, 60
+ unknownnoise0x20 15, 242, 76
+ endchannel
+
diff --git a/audio/sfx/unknown_80944.asm b/audio/sfx/unknown_80944.asm
new file mode 100644
index 00000000..e16cec26
--- /dev/null
+++ b/audio/sfx/unknown_80944.asm
@@ -0,0 +1,25 @@
+SFX_80944_4_Ch4:
+ dutycycle 240
+ unknownsfx0x20 6, 247, 192, 6
+ unknownsfx0x20 15, 231, 0, 7
+ unknownsfx0x20 4, 244, 240, 6
+ unknownsfx0x20 4, 228, 224, 6
+ unknownsfx0x20 8, 209, 208, 6
+ endchannel
+
+SFX_8095b_4_Ch5:
+ dutycycle 10
+ unknownsfx0x20 7, 230, 129, 6
+ unknownsfx0x20 14, 213, 193, 6
+ unknownsfx0x20 4, 196, 177, 6
+ unknownsfx0x20 4, 212, 161, 6
+ unknownsfx0x20 8, 193, 145, 6
+ endchannel
+
+SFX_80972_4_Ch7:
+ unknownnoise0x20 10, 166, 60
+ unknownnoise0x20 14, 148, 44
+ unknownnoise0x20 5, 163, 60
+ unknownnoise0x20 8, 145, 44
+ endchannel
+
diff --git a/audio/sfx/unknown_8097f.asm b/audio/sfx/unknown_8097f.asm
new file mode 100644
index 00000000..b178821c
--- /dev/null
+++ b/audio/sfx/unknown_8097f.asm
@@ -0,0 +1,23 @@
+SFX_8097f_4_Ch4:
+ dutycycle 165
+ unknownsfx0x20 12, 242, 64, 4
+ unknownsfx0x20 15, 227, 160, 4
+ unknownsfx0x20 4, 210, 144, 4
+ unknownsfx0x20 8, 209, 128, 4
+ endchannel
+
+SFX_80992_4_Ch5:
+ dutycycle 238
+ unknownsfx0x20 11, 210, 56, 4
+ unknownsfx0x20 14, 198, 152, 4
+ unknownsfx0x20 3, 178, 136, 4
+ unknownsfx0x20 8, 177, 120, 4
+ endchannel
+
+SFX_809a5_4_Ch7:
+ unknownnoise0x20 10, 230, 108
+ unknownnoise0x20 15, 210, 92
+ unknownnoise0x20 3, 194, 108
+ unknownnoise0x20 8, 209, 92
+ endchannel
+
diff --git a/audio/sfx/unknown_809b2.asm b/audio/sfx/unknown_809b2.asm
new file mode 100644
index 00000000..095f7134
--- /dev/null
+++ b/audio/sfx/unknown_809b2.asm
@@ -0,0 +1,29 @@
+SFX_809b2_4_Ch4:
+ dutycycle 51
+ unknownsfx0x20 15, 246, 192, 5
+ unknownsfx0x20 8, 227, 188, 5
+ unknownsfx0x20 6, 210, 208, 5
+ unknownsfx0x20 6, 178, 224, 5
+ unknownsfx0x20 6, 194, 240, 5
+ unknownsfx0x20 8, 177, 0, 6
+ endchannel
+
+SFX_809cd_4_Ch5:
+ dutycycle 153
+ unknownsfx0x20 14, 198, 177, 4
+ unknownsfx0x20 7, 195, 173, 4
+ unknownsfx0x20 5, 178, 193, 4
+ unknownsfx0x20 8, 146, 209, 4
+ unknownsfx0x20 6, 162, 225, 4
+ unknownsfx0x20 8, 145, 241, 4
+ endchannel
+
+SFX_809e8_4_Ch7:
+ unknownnoise0x20 10, 230, 92
+ unknownnoise0x20 10, 214, 108
+ unknownnoise0x20 4, 194, 76
+ unknownnoise0x20 6, 211, 92
+ unknownnoise0x20 8, 179, 76
+ unknownnoise0x20 8, 161, 92
+ endchannel
+
diff --git a/audio/sfx/unknown_809fb.asm b/audio/sfx/unknown_809fb.asm
new file mode 100644
index 00000000..7424d61b
--- /dev/null
+++ b/audio/sfx/unknown_809fb.asm
@@ -0,0 +1,20 @@
+SFX_809fb_4_Ch4:
+ dutycycle 240
+ unknownsfx0x20 8, 228, 144, 7
+ unknownsfx0x20 15, 245, 192, 7
+ unknownsfx0x20 8, 209, 216, 7
+ endchannel
+
+SFX_80a0a_4_Ch5:
+ dutycycle 165
+ unknownsfx0x20 10, 196, 113, 7
+ unknownsfx0x20 15, 182, 162, 7
+ unknownsfx0x20 8, 161, 183, 7
+ endchannel
+
+SFX_80a19_4_Ch7:
+ unknownnoise0x20 8, 228, 76
+ unknownnoise0x20 14, 196, 60
+ unknownnoise0x20 8, 209, 44
+ endchannel
+
diff --git a/audio/sfx/unknown_80a23.asm b/audio/sfx/unknown_80a23.asm
new file mode 100644
index 00000000..c20a37d4
--- /dev/null
+++ b/audio/sfx/unknown_80a23.asm
@@ -0,0 +1,37 @@
+SFX_80a23_4_Ch4:
+ dutycycle 240
+ unknownsfx0x20 6, 242, 0, 6
+ unknownsfx0x20 6, 226, 64, 6
+ unknownsfx0x20 6, 210, 128, 6
+ unknownsfx0x20 6, 226, 192, 6
+ unknownsfx0x20 6, 210, 0, 7
+ unknownsfx0x20 6, 194, 64, 7
+ unknownsfx0x20 6, 178, 128, 7
+ unknownsfx0x20 8, 161, 192, 7
+ endchannel
+
+SFX_80a46_4_Ch5:
+ dutycycle 17
+ unknownsfx0x20 3, 8, 1, 0
+ unknownsfx0x20 6, 194, 193, 5
+ unknownsfx0x20 6, 178, 2, 6
+ unknownsfx0x20 6, 162, 65, 6
+ unknownsfx0x20 6, 178, 130, 6
+ unknownsfx0x20 6, 162, 194, 6
+ unknownsfx0x20 6, 146, 1, 7
+ unknownsfx0x20 6, 162, 66, 7
+ unknownsfx0x20 8, 129, 129, 7
+ endchannel
+
+SFX_80a6d_4_Ch7:
+ unknownnoise0x20 6, 8, 1
+ unknownnoise0x20 5, 226, 92
+ unknownnoise0x20 5, 194, 76
+ unknownnoise0x20 5, 210, 60
+ unknownnoise0x20 5, 178, 44
+ unknownnoise0x20 5, 194, 28
+ unknownnoise0x20 5, 162, 27
+ unknownnoise0x20 5, 146, 26
+ unknownnoise0x20 8, 129, 24
+ endchannel
+
diff --git a/audio/sfx/unknown_80a89.asm b/audio/sfx/unknown_80a89.asm
new file mode 100644
index 00000000..b79cf7c3
--- /dev/null
+++ b/audio/sfx/unknown_80a89.asm
@@ -0,0 +1,29 @@
+SFX_80a89_4_Ch4:
+ dutycycle 240
+ unknownsfx0x20 4, 243, 128, 7
+ unknownsfx0x20 15, 231, 0, 7
+ unknownsfx0x20 8, 211, 16, 7
+ unknownsfx0x20 4, 194, 0, 7
+ unknownsfx0x20 4, 210, 240, 6
+ unknownsfx0x20 8, 193, 224, 6
+ endchannel
+
+SFX_80aa4_4_Ch5:
+ dutycycle 90
+ unknownsfx0x20 6, 195, 1, 7
+ unknownsfx0x20 14, 183, 129, 6
+ unknownsfx0x20 7, 179, 146, 6
+ unknownsfx0x20 3, 162, 129, 6
+ unknownsfx0x20 4, 178, 114, 6
+ unknownsfx0x20 8, 161, 97, 6
+ endchannel
+
+SFX_80abf_4_Ch7:
+ unknownnoise0x20 6, 227, 92
+ unknownnoise0x20 14, 214, 76
+ unknownnoise0x20 6, 198, 60
+ unknownnoise0x20 3, 179, 76
+ unknownnoise0x20 3, 162, 92
+ unknownnoise0x20 8, 177, 108
+ endchannel
+
diff --git a/audio/sfx/unknown_80ad2.asm b/audio/sfx/unknown_80ad2.asm
new file mode 100644
index 00000000..db7b45b2
--- /dev/null
+++ b/audio/sfx/unknown_80ad2.asm
@@ -0,0 +1,23 @@
+SFX_80ad2_4_Ch4:
+ dutycycle 15
+ unknownsfx0x20 15, 247, 0, 5
+ unknownsfx0x20 15, 231, 8, 5
+ unknownsfx0x20 8, 180, 128, 4
+ unknownsfx0x20 15, 162, 96, 4
+ endchannel
+
+SFX_80ae5_4_Ch5:
+ dutycycle 68
+ unknownsfx0x20 14, 215, 129, 4
+ unknownsfx0x20 14, 199, 137, 4
+ unknownsfx0x20 10, 180, 1, 4
+ unknownsfx0x20 15, 194, 225, 3
+ endchannel
+
+SFX_80af8_4_Ch7:
+ unknownnoise0x20 14, 247, 124
+ unknownnoise0x20 12, 246, 108
+ unknownnoise0x20 9, 228, 124
+ unknownnoise0x20 15, 226, 108
+ endchannel
+
diff --git a/audio/sfx/unknown_80b05.asm b/audio/sfx/unknown_80b05.asm
new file mode 100644
index 00000000..68ca90f5
--- /dev/null
+++ b/audio/sfx/unknown_80b05.asm
@@ -0,0 +1,30 @@
+SFX_80b05_4_Ch4:
+ dutycycle 245
+ unknownsfx0x20 7, 214, 225, 7
+ unknownsfx0x20 6, 198, 226, 7
+ unknownsfx0x20 9, 214, 225, 7
+ unknownsfx0x20 7, 198, 224, 7
+ unknownsfx0x20 5, 182, 226, 7
+ unknownsfx0x20 7, 198, 225, 7
+ unknownsfx0x20 6, 182, 224, 7
+ unknownsfx0x20 8, 161, 223, 7
+ endchannel
+
+SFX_80b28_4_Ch5:
+ dutycycle 68
+ unknownsfx0x20 6, 195, 201, 7
+ unknownsfx0x20 6, 179, 199, 7
+ unknownsfx0x20 10, 196, 195, 7
+ unknownsfx0x20 8, 180, 199, 7
+ unknownsfx0x20 6, 195, 201, 7
+ unknownsfx0x20 15, 162, 197, 7
+ endchannel
+
+SFX_80b43_4_Ch7:
+ unknownnoise0x20 13, 25, 124
+ unknownnoise0x20 13, 247, 140
+ unknownnoise0x20 12, 214, 124
+ unknownnoise0x20 8, 196, 108
+ unknownnoise0x20 15, 179, 92
+ endchannel
+
diff --git a/audio/sfx/unknown_80b53.asm b/audio/sfx/unknown_80b53.asm
new file mode 100644
index 00000000..3033d299
--- /dev/null
+++ b/audio/sfx/unknown_80b53.asm
@@ -0,0 +1,29 @@
+SFX_80b53_4_Ch4:
+ dutycycle 240
+ unknownsfx0x20 6, 247, 64, 7
+ unknownsfx0x20 12, 230, 68, 7
+ unknownsfx0x20 6, 213, 80, 7
+ unknownsfx0x20 4, 195, 96, 7
+ unknownsfx0x20 3, 195, 128, 7
+ unknownsfx0x20 8, 209, 160, 7
+ endchannel
+
+SFX_80b6e_4_Ch5:
+ dutycycle 10
+ unknownsfx0x20 6, 199, 1, 7
+ unknownsfx0x20 11, 182, 2, 7
+ unknownsfx0x20 6, 165, 17, 7
+ unknownsfx0x20 4, 147, 33, 7
+ unknownsfx0x20 3, 163, 65, 7
+ unknownsfx0x20 8, 145, 98, 7
+ endchannel
+
+SFX_80b89_4_Ch7:
+ unknownnoise0x20 3, 226, 60
+ unknownnoise0x20 8, 214, 76
+ unknownnoise0x20 5, 212, 60
+ unknownnoise0x20 12, 199, 76
+ unknownnoise0x20 2, 226, 60
+ unknownnoise0x20 8, 209, 44
+ endchannel
+
diff --git a/audio/sfx/unknown_80b9c.asm b/audio/sfx/unknown_80b9c.asm
new file mode 100644
index 00000000..5e54107e
--- /dev/null
+++ b/audio/sfx/unknown_80b9c.asm
@@ -0,0 +1,28 @@
+SFX_80b9c_4_Ch4:
+ dutycycle 244
+ unknownsfx0x20 15, 240, 5, 7
+ unknownsfx0x20 10, 224, 0, 7
+ unknownsfx0x20 6, 180, 16, 7
+ unknownsfx0x20 4, 211, 0, 7
+ unknownsfx0x20 6, 178, 32, 6
+ unknownsfx0x20 8, 161, 36, 6
+ endchannel
+
+SFX_80bb7_4_Ch5:
+ dutycycle 34
+ unknownsfx0x20 15, 176, 195, 6
+ unknownsfx0x20 10, 160, 193, 6
+ unknownsfx0x20 6, 132, 210, 6
+ unknownsfx0x20 4, 147, 193, 6
+ unknownsfx0x20 6, 130, 225, 5
+ unknownsfx0x20 8, 97, 232, 5
+ endchannel
+
+SFX_80bd2_4_Ch7:
+ unknownnoise0x20 6, 230, 76
+ unknownnoise0x20 15, 214, 60
+ unknownnoise0x20 10, 197, 74
+ unknownnoise0x20 1, 178, 91
+ unknownnoise0x20 15, 194, 76
+ endchannel
+
diff --git a/audio/sfx/unknown_80be2.asm b/audio/sfx/unknown_80be2.asm
new file mode 100644
index 00000000..4660d8f2
--- /dev/null
+++ b/audio/sfx/unknown_80be2.asm
@@ -0,0 +1,33 @@
+SFX_80be2_4_Ch4:
+ dutycycle 80
+ unknownsfx0x20 10, 245, 128, 6
+ unknownsfx0x20 3, 226, 160, 6
+ unknownsfx0x20 3, 242, 192, 6
+ unknownsfx0x20 3, 226, 224, 6
+ unknownsfx0x20 3, 210, 0, 7
+ unknownsfx0x20 3, 194, 224, 6
+ unknownsfx0x20 3, 210, 192, 6
+ unknownsfx0x20 8, 193, 160, 6
+ endchannel
+
+SFX_80c05_4_Ch5:
+ dutycycle 15
+ unknownsfx0x20 9, 213, 49, 6
+ unknownsfx0x20 3, 210, 82, 6
+ unknownsfx0x20 3, 226, 113, 6
+ unknownsfx0x20 3, 178, 145, 6
+ unknownsfx0x20 3, 194, 178, 6
+ unknownsfx0x20 3, 178, 145, 6
+ unknownsfx0x20 3, 194, 113, 6
+ unknownsfx0x20 8, 177, 81, 6
+ endchannel
+
+SFX_80c28_4_Ch7:
+ unknownnoise0x20 6, 227, 76
+ unknownnoise0x20 4, 195, 60
+ unknownnoise0x20 5, 212, 60
+ unknownnoise0x20 4, 196, 44
+ unknownnoise0x20 6, 180, 60
+ unknownnoise0x20 8, 193, 44
+ endchannel
+
diff --git a/audio/sfx/unknown_80c3b.asm b/audio/sfx/unknown_80c3b.asm
new file mode 100644
index 00000000..f6106ebf
--- /dev/null
+++ b/audio/sfx/unknown_80c3b.asm
@@ -0,0 +1,23 @@
+SFX_80c3b_4_Ch4:
+ dutycycle 165
+ unknownsfx0x20 3, 244, 65, 6
+ unknownsfx0x20 13, 214, 33, 7
+ unknownsfx0x20 8, 244, 25, 7
+ unknownsfx0x20 8, 193, 26, 7
+ endchannel
+
+SFX_80c4e_4_Ch5:
+ dutycycle 204
+ unknownsfx0x20 4, 244, 128, 5
+ unknownsfx0x20 14, 230, 224, 6
+ unknownsfx0x20 8, 213, 216, 6
+ unknownsfx0x20 8, 209, 220, 6
+ endchannel
+
+SFX_80c61_4_Ch7:
+ unknownnoise0x20 5, 196, 70
+ unknownnoise0x20 13, 165, 68
+ unknownnoise0x20 8, 196, 69
+ unknownnoise0x20 8, 177, 68
+ endchannel
+
diff --git a/audio/sfx/unknown_80c6e.asm b/audio/sfx/unknown_80c6e.asm
new file mode 100644
index 00000000..54c4b3f9
--- /dev/null
+++ b/audio/sfx/unknown_80c6e.asm
@@ -0,0 +1,23 @@
+SFX_80c6e_4_Ch4:
+ dutycycle 240
+ unknownsfx0x20 13, 241, 17, 5
+ unknownsfx0x20 13, 225, 21, 5
+ unknownsfx0x20 13, 225, 17, 5
+ unknownsfx0x20 8, 209, 17, 5
+ endchannel
+
+SFX_80c81_4_Ch5:
+ dutycycle 21
+ unknownsfx0x20 12, 225, 12, 5
+ unknownsfx0x20 12, 209, 16, 5
+ unknownsfx0x20 14, 193, 12, 5
+ unknownsfx0x20 8, 193, 10, 5
+ endchannel
+
+SFX_80c94_4_Ch7:
+ unknownnoise0x20 14, 242, 101
+ unknownnoise0x20 13, 226, 85
+ unknownnoise0x20 14, 210, 86
+ unknownnoise0x20 8, 209, 102
+ endchannel
+
diff --git a/audio/sfx/unknown_80ca1.asm b/audio/sfx/unknown_80ca1.asm
new file mode 100644
index 00000000..df3b29be
--- /dev/null
+++ b/audio/sfx/unknown_80ca1.asm
@@ -0,0 +1,25 @@
+SFX_80ca1_4_Ch4:
+ dutycycle 27
+ unknownsfx0x20 3, 243, 100, 5
+ unknownsfx0x20 2, 226, 68, 5
+ unknownsfx0x20 5, 209, 34, 5
+ unknownsfx0x20 2, 178, 132, 4
+ unknownsfx0x20 8, 209, 162, 4
+ unknownsfx0x20 3, 243, 36, 5
+ unknownsfx0x20 4, 228, 228, 4
+ unknownsfx0x20 8, 209, 2, 5
+ endchannel
+
+SFX_80cc4_4_Ch5:
+ dutycycle 204
+ unknownsfx0x20 3, 211, 96, 5
+ unknownsfx0x20 2, 194, 64, 5
+ unknownsfx0x20 5, 193, 32, 5
+ unknownsfx0x20 2, 146, 128, 4
+ unknownsfx0x20 8, 193, 160, 4
+ unknownsfx0x20 3, 211, 32, 5
+ unknownsfx0x20 3, 196, 224, 4
+ unknownsfx0x20 8, 193, 0, 5
+SFX_80ce6_4_Ch7:
+ endchannel
+
diff --git a/audio/sfx/unknown_80ce7.asm b/audio/sfx/unknown_80ce7.asm
new file mode 100644
index 00000000..6b5a2163
--- /dev/null
+++ b/audio/sfx/unknown_80ce7.asm
@@ -0,0 +1,24 @@
+SFX_80ce7_4_Ch4:
+ dutycycle 17
+ unknownsfx0x20 2, 61, 129, 3
+ unknownsfx0x20 7, 245, 1, 6
+ unknownsfx0x20 1, 194, 129, 4
+ unknownsfx0x20 8, 145, 129, 3
+ endchannel
+
+SFX_80cfa_4_Ch5:
+ dutycycle 238
+ unknownsfx0x20 2, 62, 176, 5
+ unknownsfx0x20 7, 213, 93, 7
+ unknownsfx0x20 1, 178, 176, 6
+ unknownsfx0x20 8, 97, 176, 5
+ endchannel
+
+SFX_80d0d_4_Ch7:
+ unknownnoise0x20 2, 146, 73
+ unknownnoise0x20 7, 181, 41
+ unknownnoise0x20 1, 162, 57
+ unknownnoise0x20 8, 145, 73
+ endchannel
+
+
diff --git a/audio/sfx/unknown_80e5a.asm b/audio/sfx/unknown_80e5a.asm
new file mode 100644
index 00000000..76cf48d4
--- /dev/null
+++ b/audio/sfx/unknown_80e5a.asm
@@ -0,0 +1,46 @@
+SFX_80e5a_4_Ch4:
+ executemusic
+ tempo 256
+ volume 7, 7
+ vibrato 6, 2, 6
+ duty 2
+ toggleperfectpitch
+ notetype 4, 11, 1
+ octave 3
+ G# 2
+ G# 2
+ G# 2
+ notetype 12, 11, 3
+ octave 4
+ E_ 4
+ endchannel
+
+SFX_80e71_4_Ch5:
+ executemusic
+ vibrato 8, 2, 7
+ duty 2
+ notetype 4, 12, 1
+ octave 4
+ E_ 2
+ E_ 2
+ E_ 2
+ notetype 12, 12, 3
+ B_ 4
+ endchannel
+
+SFX_80e81_4_Ch6:
+ executemusic
+ notetype 4, 1, 0
+ octave 4
+ B_ 1
+ rest 1
+ B_ 1
+ rest 1
+ B_ 1
+ rest 1
+ notetype 12, 1, 0
+ octave 4
+ B_ 2
+ rest 2
+ endchannel
+
diff --git a/audio/sfx/unknown_80e91.asm b/audio/sfx/unknown_80e91.asm
new file mode 100644
index 00000000..2b180d9d
--- /dev/null
+++ b/audio/sfx/unknown_80e91.asm
@@ -0,0 +1,46 @@
+SFX_80e91_4_Ch4:
+ executemusic
+ tempo 256
+ volume 7, 7
+ vibrato 6, 2, 6
+ duty 2
+ toggleperfectpitch
+ notetype 4, 11, 1
+ octave 3
+ G# 2
+ G# 2
+ G# 2
+ notetype 12, 11, 3
+ octave 4
+ E_ 4
+ endchannel
+
+SFX_80ea8_4_Ch5:
+ executemusic
+ vibrato 8, 2, 7
+ duty 2
+ notetype 4, 12, 1
+ octave 4
+ E_ 2
+ E_ 2
+ E_ 2
+ notetype 12, 12, 3
+ B_ 4
+ endchannel
+
+SFX_80eb8_4_Ch6:
+ executemusic
+ notetype 4, 1, 0
+ octave 4
+ B_ 1
+ rest 1
+ B_ 1
+ rest 1
+ B_ 1
+ rest 1
+ notetype 12, 1, 0
+ octave 4
+ B_ 2
+ rest 2
+ endchannel
+
diff --git a/audio/sfx/unused2_2.asm b/audio/sfx/unused2_2.asm
index 7e0350d4..7e0350d4 100755..100644
--- a/audio/sfx/unused2_2.asm
+++ b/audio/sfx/unused2_2.asm
diff --git a/audio/sfx/unused_1.asm b/audio/sfx/unused_1.asm
index d0bbfd59..d0bbfd59 100755..100644
--- a/audio/sfx/unused_1.asm
+++ b/audio/sfx/unused_1.asm
diff --git a/audio/sfx/unused_2.asm b/audio/sfx/unused_2.asm
index fd491b71..fd491b71 100755..100644
--- a/audio/sfx/unused_2.asm
+++ b/audio/sfx/unused_2.asm
diff --git a/audio/sfx/unused_3.asm b/audio/sfx/unused_3.asm
index b00e55f5..b00e55f5 100755..100644
--- a/audio/sfx/unused_3.asm
+++ b/audio/sfx/unused_3.asm
diff --git a/audio/unknown_832b9.bin b/audio/unknown_832b9.bin
new file mode 100755
index 00000000..1c14816a
--- /dev/null
+++ b/audio/unknown_832b9.bin
Binary files differ
diff --git a/audio/wave_instruments.asm b/audio/wave_instruments.asm
index fede06af..9f34d3ac 100644
--- a/audio/wave_instruments.asm
+++ b/audio/wave_instruments.asm
@@ -6,7 +6,7 @@
dw .wave5 ; used in the Lavender Town and Pokemon Tower themes
dw .wave5 ; unused
dw .wave5 ; unused
- dw .wave5 ; unused
+; dw .wave5 ; unused
; these are the definitions for the channel 3 instruments
; each instrument definition is made up of 32 points (nibbles) that form