Unify audio bank references

2→1
8→2
1f→3
This commit is contained in:
dannye 2015-07-22 10:22:46 -05:00
parent b4081e851a
commit a6f04b4349
22 changed files with 626 additions and 626 deletions

View file

@ -7,24 +7,24 @@ INCLUDE "constants.asm"
SECTION "Sound Effect Headers 1", ROMX, BANK[AUDIO_1] SECTION "Sound Effect Headers 1", ROMX, BANK[AUDIO_1]
INCLUDE "audio/headers/sfxheaders02.asm" INCLUDE "audio/headers/sfxheaders1.asm"
SECTION "Sound Effect Headers 2", ROMX, BANK[AUDIO_2] SECTION "Sound Effect Headers 2", ROMX, BANK[AUDIO_2]
INCLUDE "audio/headers/sfxheaders08.asm" INCLUDE "audio/headers/sfxheaders2.asm"
SECTION "Sound Effect Headers 3", ROMX, BANK[AUDIO_3] SECTION "Sound Effect Headers 3", ROMX, BANK[AUDIO_3]
INCLUDE "audio/headers/sfxheaders1f.asm" INCLUDE "audio/headers/sfxheaders3.asm"
SECTION "Music Headers 1", ROMX, BANK[AUDIO_1] SECTION "Music Headers 1", ROMX, BANK[AUDIO_1]
INCLUDE "audio/headers/musicheaders02.asm" INCLUDE "audio/headers/musicheaders1.asm"
SECTION "Music Headers 2", ROMX, BANK[AUDIO_2] SECTION "Music Headers 2", ROMX, BANK[AUDIO_2]
INCLUDE "audio/headers/musicheaders08.asm" INCLUDE "audio/headers/musicheaders2.asm"
SECTION "Music Headers 3", ROMX, BANK[AUDIO_3] SECTION "Music Headers 3", ROMX, BANK[AUDIO_3]
INCLUDE "audio/headers/musicheaders1f.asm" INCLUDE "audio/headers/musicheaders3.asm"
@ -50,7 +50,7 @@ INCLUDE "audio/sfx/muted_snare2_1.asm"
INCLUDE "audio/sfx/muted_snare3_1.asm" INCLUDE "audio/sfx/muted_snare3_1.asm"
INCLUDE "audio/sfx/muted_snare4_1.asm" INCLUDE "audio/sfx/muted_snare4_1.asm"
Music2_WavePointers: INCLUDE "audio/wave_instruments.asm" Audio1_WavePointers: INCLUDE "audio/wave_instruments.asm"
INCLUDE "audio/sfx/start_menu_1.asm" INCLUDE "audio/sfx/start_menu_1.asm"
INCLUDE "audio/sfx/pokeflute.asm" INCLUDE "audio/sfx/pokeflute.asm"
@ -86,7 +86,7 @@ INCLUDE "audio/sfx/push_boulder_1.asm"
INCLUDE "audio/sfx/ss_anne_horn_1.asm" INCLUDE "audio/sfx/ss_anne_horn_1.asm"
INCLUDE "audio/sfx/withdraw_deposit_1.asm" INCLUDE "audio/sfx/withdraw_deposit_1.asm"
INCLUDE "audio/sfx/safari_zone_pa.asm" INCLUDE "audio/sfx/safari_zone_pa.asm"
INCLUDE "audio/sfx/sfx_02_unused.asm" INCLUDE "audio/sfx/unused_1.asm"
INCLUDE "audio/sfx/cry09_1.asm" INCLUDE "audio/sfx/cry09_1.asm"
INCLUDE "audio/sfx/cry23_1.asm" INCLUDE "audio/sfx/cry23_1.asm"
INCLUDE "audio/sfx/cry24_1.asm" INCLUDE "audio/sfx/cry24_1.asm"
@ -149,7 +149,7 @@ INCLUDE "audio/sfx/muted_snare2_2.asm"
INCLUDE "audio/sfx/muted_snare3_2.asm" INCLUDE "audio/sfx/muted_snare3_2.asm"
INCLUDE "audio/sfx/muted_snare4_2.asm" INCLUDE "audio/sfx/muted_snare4_2.asm"
Music8_WavePointers: INCLUDE "audio/wave_instruments.asm" Audio2_WavePointers: INCLUDE "audio/wave_instruments.asm"
INCLUDE "audio/sfx/press_ab_2.asm" INCLUDE "audio/sfx/press_ab_2.asm"
INCLUDE "audio/sfx/start_menu_2.asm" INCLUDE "audio/sfx/start_menu_2.asm"
@ -162,7 +162,7 @@ INCLUDE "audio/sfx/ball_poof.asm"
INCLUDE "audio/sfx/faint_thud.asm" INCLUDE "audio/sfx/faint_thud.asm"
INCLUDE "audio/sfx/run.asm" INCLUDE "audio/sfx/run.asm"
INCLUDE "audio/sfx/dex_page_added.asm" INCLUDE "audio/sfx/dex_page_added.asm"
INCLUDE "audio/sfx/sfx_08_pokeflute_ch3.asm" INCLUDE "audio/sfx/pokeflute_ch3.asm"
INCLUDE "audio/sfx/peck.asm" INCLUDE "audio/sfx/peck.asm"
INCLUDE "audio/sfx/faint_fall.asm" INCLUDE "audio/sfx/faint_fall.asm"
INCLUDE "audio/sfx/battle_09.asm" INCLUDE "audio/sfx/battle_09.asm"
@ -211,7 +211,7 @@ INCLUDE "audio/sfx/battle_33.asm"
INCLUDE "audio/sfx/battle_34.asm" INCLUDE "audio/sfx/battle_34.asm"
INCLUDE "audio/sfx/battle_35.asm" INCLUDE "audio/sfx/battle_35.asm"
INCLUDE "audio/sfx/battle_36.asm" INCLUDE "audio/sfx/battle_36.asm"
INCLUDE "audio/sfx/sfx_08_unused.asm" INCLUDE "audio/sfx/unused_2.asm"
INCLUDE "audio/sfx/cry09_2.asm" INCLUDE "audio/sfx/cry09_2.asm"
INCLUDE "audio/sfx/cry23_2.asm" INCLUDE "audio/sfx/cry23_2.asm"
INCLUDE "audio/sfx/cry24_2.asm" INCLUDE "audio/sfx/cry24_2.asm"
@ -274,7 +274,7 @@ INCLUDE "audio/sfx/muted_snare2_3.asm"
INCLUDE "audio/sfx/muted_snare3_3.asm" INCLUDE "audio/sfx/muted_snare3_3.asm"
INCLUDE "audio/sfx/muted_snare4_3.asm" INCLUDE "audio/sfx/muted_snare4_3.asm"
Music1f_WavePointers: INCLUDE "audio/wave_instruments.asm" Audio3_WavePointers: INCLUDE "audio/wave_instruments.asm"
INCLUDE "audio/sfx/start_menu_3.asm" INCLUDE "audio/sfx/start_menu_3.asm"
INCLUDE "audio/sfx/cut_3.asm" INCLUDE "audio/sfx/cut_3.asm"
@ -318,7 +318,7 @@ INCLUDE "audio/sfx/slots_stop_wheel.asm"
INCLUDE "audio/sfx/slots_reward.asm" INCLUDE "audio/sfx/slots_reward.asm"
INCLUDE "audio/sfx/slots_new_spin.asm" INCLUDE "audio/sfx/slots_new_spin.asm"
INCLUDE "audio/sfx/shooting_star.asm" INCLUDE "audio/sfx/shooting_star.asm"
INCLUDE "audio/sfx/sfx_1f_unused.asm" INCLUDE "audio/sfx/unused_3.asm"
INCLUDE "audio/sfx/cry09_3.asm" INCLUDE "audio/sfx/cry09_3.asm"
INCLUDE "audio/sfx/cry23_3.asm" INCLUDE "audio/sfx/cry23_3.asm"
INCLUDE "audio/sfx/cry24_3.asm" INCLUDE "audio/sfx/cry24_3.asm"
@ -408,12 +408,12 @@ Music_RivalAlternateStart:: ; 0x9b47
call PlayMusic call PlayMusic
ld hl, wc006 ld hl, wc006
ld de, Music_MeetRival_branch_b1a2 ld de, Music_MeetRival_branch_b1a2
call Music2_OverwriteChannelPointer call Audio1_OverwriteChannelPointer
ld de, Music_MeetRival_branch_b21d ld de, Music_MeetRival_branch_b21d
call Music2_OverwriteChannelPointer call Audio1_OverwriteChannelPointer
ld de, Music_MeetRival_branch_b2b5 ld de, Music_MeetRival_branch_b2b5
Music2_OverwriteChannelPointer: ; 0x9b60 Audio1_OverwriteChannelPointer: ; 0x9b60
ld a, e ld a, e
ld [hli], a ld [hli], a
ld a, d ld a, d
@ -427,14 +427,14 @@ Music_RivalAlternateTempo:: ; 0x9b65
call PlayMusic call PlayMusic
ld hl, wc006 ld hl, wc006
ld de, Music_MeetRival_branch_b119 ld de, Music_MeetRival_branch_b119
jp Music2_OverwriteChannelPointer jp Audio1_OverwriteChannelPointer
; applies both the alternate start and alternate tempo ; applies both the alternate start and alternate tempo
Music_RivalAlternateStartAndTempo:: ; 0x9b75 Music_RivalAlternateStartAndTempo:: ; 0x9b75
call Music_RivalAlternateStart call Music_RivalAlternateStart
ld hl, wc006 ld hl, wc006
ld de, Music_MeetRival_branch_b19b ld de, Music_MeetRival_branch_b19b
jp Music2_OverwriteChannelPointer jp Audio1_OverwriteChannelPointer
; an alternate tempo for Cities1 which is used for the Hall of Fame room ; an alternate tempo for Cities1 which is used for the Hall of Fame room
Music_Cities1AlternateTempo:: ; 0x9b81 Music_Cities1AlternateTempo:: ; 0x9b81
@ -450,7 +450,7 @@ Music_Cities1AlternateTempo:: ; 0x9b81
call PlayMusic call PlayMusic
ld hl, wc006 ld hl, wc006
ld de, Music_Cities1_branch_aa6f ld de, Music_Cities1_branch_aa6f
jp Music2_OverwriteChannelPointer jp Audio1_OverwriteChannelPointer
SECTION "Audio Engine 2", ROMX, BANK[AUDIO_2] SECTION "Audio Engine 2", ROMX, BANK[AUDIO_2]
@ -544,12 +544,12 @@ Music_PokeFluteInBattle:: ; 22306 (8:6306)
; then immediately overwrtie the channel pointers ; then immediately overwrtie the channel pointers
ld hl, wc00e ld hl, wc00e
ld de, SFX_08_PokeFlute_Ch1 ld de, SFX_08_PokeFlute_Ch1
call Music8_OverwriteChannelPointer call Audio2_OverwriteChannelPointer
ld de, SFX_08_PokeFlute_Ch2 ld de, SFX_08_PokeFlute_Ch2
call Music8_OverwriteChannelPointer call Audio2_OverwriteChannelPointer
ld de, SFX_08_PokeFlute_Ch3 ld de, SFX_08_PokeFlute_Ch3
Music8_OverwriteChannelPointer: ; 2231d (8:631d) Audio2_OverwriteChannelPointer: ; 2231d (8:631d)
ld a, e ld a, e
ld [hli], a ld [hli], a
ld a, d ld a, d
@ -632,8 +632,8 @@ INCLUDE "audio/music/pokecenter.asm"
SECTION "Music 2", ROMX, BANK[AUDIO_2] SECTION "Music 2", ROMX, BANK[AUDIO_2]
INCLUDE "audio/sfx/sfx_08_pokeflute.asm" INCLUDE "audio/sfx/pokeflute_ch1_ch2.asm"
INCLUDE "audio/sfx/sfx_08_unused2.asm" INCLUDE "audio/sfx/unused2_2.asm"
INCLUDE "audio/music/gymleaderbattle.asm" INCLUDE "audio/music/gymleaderbattle.asm"
INCLUDE "audio/music/trainerbattle.asm" INCLUDE "audio/music/trainerbattle.asm"
INCLUDE "audio/music/wildbattle.asm" INCLUDE "audio/music/wildbattle.asm"

View file

@ -1,6 +1,6 @@
; The first of three duplicated sound engines. ; The first of three duplicated sound engines.
Music2_UpdateMusic:: ; 0x9103 Audio1_UpdateMusic:: ; 0x9103
ld c, CH0 ld c, CH0
.loop .loop
ld b, $0 ld b, $0
@ -26,7 +26,7 @@ Music2_UpdateMusic:: ; 0x9103
ld [$ff1a], a ld [$ff1a], a
jr .nextChannel jr .nextChannel
.asm_912e .asm_912e
call Music2_ApplyMusicAffects call Audio1_ApplyMusicAffects
.nextChannel .nextChannel
ld a, c ld a, c
inc c ; inc channel number inc c ; inc channel number
@ -42,13 +42,13 @@ Music2_UpdateMusic:: ; 0x9103
; 3: a toggle used only by this routine for vibrato ; 3: a toggle used only by this routine for vibrato
; 4: pitchbend flag ; 4: pitchbend flag
; 6: dutycycle flag ; 6: dutycycle flag
Music2_ApplyMusicAffects: ; 0x9138 Audio1_ApplyMusicAffects: ; 0x9138
ld b, $0 ld b, $0
ld hl, wc0b6 ; delay until next note ld hl, wc0b6 ; delay until next note
add hl, bc add hl, bc
ld a, [hl] ld a, [hl]
cp $1 ; if the delay is 1, play next note cp $1 ; if the delay is 1, play next note
jp z, Music2_PlayNextNote jp z, Audio1_PlayNextNote
dec a ; otherwise, decrease the delay timer dec a ; otherwise, decrease the delay timer
ld [hl], a ld [hl], a
ld a, c ld a, c
@ -65,7 +65,7 @@ Music2_ApplyMusicAffects: ; 0x9138
add hl, bc add hl, bc
bit 6, [hl] ; dutycycle bit 6, [hl] ; dutycycle
jr z, .checkForExecuteMusic jr z, .checkForExecuteMusic
call Music2_ApplyDutyCycle call Audio1_ApplyDutyCycle
.checkForExecuteMusic .checkForExecuteMusic
ld b, $0 ld b, $0
ld hl, wc036 ld hl, wc036
@ -81,7 +81,7 @@ Music2_ApplyMusicAffects: ; 0x9138
add hl, bc add hl, bc
bit 4, [hl] ; pitchbend bit 4, [hl] ; pitchbend
jr z, .checkVibratoDelay jr z, .checkVibratoDelay
jp Music2_ApplyPitchBend jp Audio1_ApplyPitchBend
.checkVibratoDelay .checkVibratoDelay
ld hl, wc04e ; vibrato delay ld hl, wc04e ; vibrato delay
add hl, bc add hl, bc
@ -141,14 +141,14 @@ Music2_ApplyMusicAffects: ; 0x9138
.done .done
ld d, a ld d, a
ld b, $3 ld b, $3
call Music2_9838 call Audio1_9838
ld [hl], d ld [hl], d
ret ret
; this routine executes all music commands that take up no time, ; this routine executes all music commands that take up no time,
; like tempo changes, duty changes etc. and doesn't return ; like tempo changes, duty changes etc. and doesn't return
; until the first note is reached ; until the first note is reached
Music2_PlayNextNote: ; 0x91d0 Audio1_PlayNextNote: ; 0x91d0
ld hl, wc06e ld hl, wc06e
add hl, bc add hl, bc
ld a, [hl] ld a, [hl]
@ -159,14 +159,14 @@ Music2_PlayNextNote: ; 0x91d0
add hl, bc add hl, bc
res 4, [hl] res 4, [hl]
res 5, [hl] res 5, [hl]
call Music2_endchannel call Audio1_endchannel
ret ret
Music2_endchannel: ; 0x91e6 Audio1_endchannel: ; 0x91e6
call Music2_GetNextMusicByte call Audio1_GetNextMusicByte
ld d, a ld d, a
cp $ff ; is this command an endchannel? cp $ff ; is this command an endchannel?
jp nz, Music2_callchannel ; no jp nz, Audio1_callchannel ; no
ld b, $0 ; yes ld b, $0 ; yes
ld hl, wc02e ld hl, wc02e
add hl, bc add hl, bc
@ -216,7 +216,7 @@ Music2_endchannel: ; 0x91e6
inc de inc de
ld a, [de] ld a, [de]
ld [hl], a ; loads channel address to return to ld [hl], a ; loads channel address to return to
jp Music2_endchannel jp Audio1_endchannel
.asm_923f .asm_923f
ld hl, Unknown_9b1f ld hl, Unknown_9b1f
add hl, bc add hl, bc
@ -238,7 +238,7 @@ Music2_endchannel: ; 0x91e6
ld a, c ld a, c
cp CH4 cp CH4
jr z, .asm_9265 jr z, .asm_9265
call Music2_96c7 call Audio1_96c7
ret c ret c
.asm_9265 .asm_9265
ld a, [wc005] ld a, [wc005]
@ -251,12 +251,12 @@ Music2_endchannel: ; 0x91e6
ld [hl], b ld [hl], b
ret ret
Music2_callchannel: ; 0x9274 Audio1_callchannel: ; 0x9274
cp $fd ; is this command a callchannel? cp $fd ; is this command a callchannel?
jp nz, Music2_loopchannel ; no jp nz, Audio1_loopchannel ; no
call Music2_GetNextMusicByte ; yes call Audio1_GetNextMusicByte ; yes
push af push af
call Music2_GetNextMusicByte call Audio1_GetNextMusicByte
ld d, a ld d, a
pop af pop af
ld e, a ld e, a
@ -286,12 +286,12 @@ Music2_callchannel: ; 0x9274
ld hl, wc02e ld hl, wc02e
add hl, bc add hl, bc
set 1, [hl] ; set the call flag set 1, [hl] ; set the call flag
jp Music2_endchannel jp Audio1_endchannel
Music2_loopchannel: ; 0x92a9 Audio1_loopchannel: ; 0x92a9
cp $fe ; is this command a loopchannel? cp $fe ; is this command a loopchannel?
jp nz, Music2_notetype ; no jp nz, Audio1_notetype ; no
call Music2_GetNextMusicByte ; yes call Audio1_GetNextMusicByte ; yes
ld e, a ld e, a
and a and a
jr z, .infiniteLoop jr z, .infiniteLoop
@ -303,17 +303,17 @@ Music2_loopchannel: ; 0x92a9
jr nz, .loopAgain jr nz, .loopAgain
ld a, $1 ; if no more loops to make, ld a, $1 ; if no more loops to make,
ld [hl], a ld [hl], a
call Music2_GetNextMusicByte ; skip pointer call Audio1_GetNextMusicByte ; skip pointer
call Music2_GetNextMusicByte call Audio1_GetNextMusicByte
jp Music2_endchannel jp Audio1_endchannel
.loopAgain ; inc loop count .loopAgain ; inc loop count
inc a inc a
ld [hl], a ld [hl], a
; fall through ; fall through
.infiniteLoop ; overwrite current address with pointer .infiniteLoop ; overwrite current address with pointer
call Music2_GetNextMusicByte call Audio1_GetNextMusicByte
push af push af
call Music2_GetNextMusicByte call Audio1_GetNextMusicByte
ld b, a ld b, a
ld d, $0 ld d, $0
ld a, c ld a, c
@ -324,12 +324,12 @@ Music2_loopchannel: ; 0x92a9
pop af pop af
ld [hli], a ld [hli], a
ld [hl], b ld [hl], b
jp Music2_endchannel jp Audio1_endchannel
Music2_notetype: ; 0x92e4 Audio1_notetype: ; 0x92e4
and $f0 and $f0
cp $d0 ; is this command a notetype? cp $d0 ; is this command a notetype?
jp nz, Music2_toggleperfectpitch ; no jp nz, Audio1_toggleperfectpitch ; no
ld a, d ; yes ld a, d ; yes
and $f and $f
ld b, $0 ld b, $0
@ -339,7 +339,7 @@ Music2_notetype: ; 0x92e4
ld a, c ld a, c
cp CH3 cp CH3
jr z, .noiseChannel ; noise channel has 0 params jr z, .noiseChannel ; noise channel has 0 params
call Music2_GetNextMusicByte call Audio1_GetNextMusicByte
ld d, a ld d, a
ld a, c ld a, c
cp CH2 cp CH2
@ -368,24 +368,24 @@ Music2_notetype: ; 0x92e4
add hl, bc add hl, bc
ld [hl], d ld [hl], d
.noiseChannel .noiseChannel
jp Music2_endchannel jp Audio1_endchannel
Music2_toggleperfectpitch: ; 0x9323 Audio1_toggleperfectpitch: ; 0x9323
ld a, d ld a, d
cp $e8 ; is this command a toggleperfectpitch? cp $e8 ; is this command a toggleperfectpitch?
jr nz, Music2_vibrato ; no jr nz, Audio1_vibrato ; no
ld b, $0 ; yes ld b, $0 ; yes
ld hl, wc02e ld hl, wc02e
add hl, bc add hl, bc
ld a, [hl] ld a, [hl]
xor $1 xor $1
ld [hl], a ; flip bit 0 of wc02e ld [hl], a ; flip bit 0 of wc02e
jp Music2_endchannel jp Audio1_endchannel
Music2_vibrato: ; 0x9335 Audio1_vibrato: ; 0x9335
cp $ea ; is this command a vibrato? cp $ea ; is this command a vibrato?
jr nz, Music2_pitchbend ; no jr nz, Audio1_pitchbend ; no
call Music2_GetNextMusicByte ; yes call Audio1_GetNextMusicByte ; yes
ld b, $0 ld b, $0
ld hl, wc04e ld hl, wc04e
add hl, bc add hl, bc
@ -393,7 +393,7 @@ Music2_vibrato: ; 0x9335
ld hl, wc06e ld hl, wc06e
add hl, bc add hl, bc
ld [hl], a ; store delay ld [hl], a ; store delay
call Music2_GetNextMusicByte call Audio1_GetNextMusicByte
ld d, a ld d, a
and $f0 and $f0
swap a swap a
@ -414,24 +414,24 @@ Music2_vibrato: ; 0x9335
swap a swap a
or d or d
ld [hl], a ; store depth as both high and low nibbles ld [hl], a ; store depth as both high and low nibbles
jp Music2_endchannel jp Audio1_endchannel
Music2_pitchbend: ; 0x936d Audio1_pitchbend: ; 0x936d
cp $eb ; is this command a pitchbend? cp $eb ; is this command a pitchbend?
jr nz, Music2_duty ; no jr nz, Audio1_duty ; no
call Music2_GetNextMusicByte ; yes call Audio1_GetNextMusicByte ; yes
ld b, $0 ld b, $0
ld hl, wc076 ld hl, wc076
add hl, bc add hl, bc
ld [hl], a ; store first param ld [hl], a ; store first param
call Music2_GetNextMusicByte call Audio1_GetNextMusicByte
ld d, a ld d, a
and $f0 and $f0
swap a swap a
ld b, a ld b, a
ld a, d ld a, d
and $f and $f
call Music2_9858 call Audio1_9858
ld b, $0 ld b, $0
ld hl, wc0a6 ld hl, wc0a6
add hl, bc add hl, bc
@ -443,14 +443,14 @@ Music2_pitchbend: ; 0x936d
ld hl, wc02e ld hl, wc02e
add hl, bc add hl, bc
set 4, [hl] ; set pitchbend flag set 4, [hl] ; set pitchbend flag
call Music2_GetNextMusicByte call Audio1_GetNextMusicByte
ld d, a ld d, a
jp Music2_notelength jp Audio1_notelength
Music2_duty: ; 0x93a5 Audio1_duty: ; 0x93a5
cp $ec ; is this command a duty? cp $ec ; is this command a duty?
jr nz, Music2_tempo ; no jr nz, Audio1_tempo ; no
call Music2_GetNextMusicByte ; yes call Audio1_GetNextMusicByte ; yes
rrca rrca
rrca rrca
and $c0 and $c0
@ -458,17 +458,17 @@ Music2_duty: ; 0x93a5
ld hl, wc03e ld hl, wc03e
add hl, bc add hl, bc
ld [hl], a ; store duty ld [hl], a ; store duty
jp Music2_endchannel jp Audio1_endchannel
Music2_tempo: ; 0x93ba Audio1_tempo: ; 0x93ba
cp $ed ; is this command a tempo? cp $ed ; is this command a tempo?
jr nz, Music2_stereopanning ; no jr nz, Audio1_stereopanning ; no
ld a, c ; yes ld a, c ; yes
cp CH4 cp CH4
jr nc, .sfxChannel jr nc, .sfxChannel
call Music2_GetNextMusicByte call Audio1_GetNextMusicByte
ld [wc0e8], a ; store first param ld [wc0e8], a ; store first param
call Music2_GetNextMusicByte call Audio1_GetNextMusicByte
ld [wc0e9], a ; store second param ld [wc0e9], a ; store second param
xor a xor a
ld [wc0ce], a ; clear RAM ld [wc0ce], a ; clear RAM
@ -477,9 +477,9 @@ Music2_tempo: ; 0x93ba
ld [wc0d1], a ld [wc0d1], a
jr .musicChannelDone jr .musicChannelDone
.sfxChannel .sfxChannel
call Music2_GetNextMusicByte call Audio1_GetNextMusicByte
ld [wc0ea], a ; store first param ld [wc0ea], a ; store first param
call Music2_GetNextMusicByte call Audio1_GetNextMusicByte
ld [wc0eb], a ; store second param ld [wc0eb], a ; store second param
xor a xor a
ld [wc0d2], a ; clear RAM ld [wc0d2], a ; clear RAM
@ -487,22 +487,22 @@ Music2_tempo: ; 0x93ba
ld [wc0d4], a ld [wc0d4], a
ld [wc0d5], a ld [wc0d5], a
.musicChannelDone .musicChannelDone
jp Music2_endchannel jp Audio1_endchannel
Music2_stereopanning: ; 0x93fa Audio1_stereopanning: ; 0x93fa
cp $ee ; is this command a stereopanning? cp $ee ; is this command a stereopanning?
jr nz, Music2_unknownmusic0xef ; no jr nz, Audio1_unknownmusic0xef ; no
call Music2_GetNextMusicByte ; yes call Audio1_GetNextMusicByte ; yes
ld [wc004], a ; store panning ld [wc004], a ; store panning
jp Music2_endchannel jp Audio1_endchannel
; this appears to never be used ; this appears to never be used
Music2_unknownmusic0xef: ; 0x9407 Audio1_unknownmusic0xef: ; 0x9407
cp $ef ; is this command an unknownmusic0xef? cp $ef ; is this command an unknownmusic0xef?
jr nz, Music2_dutycycle ; no jr nz, Audio1_dutycycle ; no
call Music2_GetNextMusicByte ; yes call Audio1_GetNextMusicByte ; yes
push bc push bc
call Music2_9876 call Audio1_9876
pop bc pop bc
ld a, [wc003] ld a, [wc003]
and a and a
@ -512,12 +512,12 @@ Music2_unknownmusic0xef: ; 0x9407
xor a xor a
ld [wc02d], a ld [wc02d], a
.skip .skip
jp Music2_endchannel jp Audio1_endchannel
Music2_dutycycle: ; 0x9426 Audio1_dutycycle: ; 0x9426
cp $fc ; is this command a dutycycle? cp $fc ; is this command a dutycycle?
jr nz, Music2_volume ; no jr nz, Audio1_volume ; no
call Music2_GetNextMusicByte ; yes call Audio1_GetNextMusicByte ; yes
ld b, $0 ld b, $0
ld hl, wc046 ld hl, wc046
add hl, bc add hl, bc
@ -529,48 +529,48 @@ Music2_dutycycle: ; 0x9426
ld hl, wc02e ld hl, wc02e
add hl, bc add hl, bc
set 6, [hl] ; set dutycycle flag set 6, [hl] ; set dutycycle flag
jp Music2_endchannel jp Audio1_endchannel
Music2_volume: ; 0x9444 Audio1_volume: ; 0x9444
cp $f0 ; is this command a volume? cp $f0 ; is this command a volume?
jr nz, Music2_executemusic ; no jr nz, Audio1_executemusic ; no
call Music2_GetNextMusicByte ; yes call Audio1_GetNextMusicByte ; yes
ld [$ff24], a ; store volume ld [$ff24], a ; store volume
jp Music2_endchannel jp Audio1_endchannel
Music2_executemusic: ; 0x9450 Audio1_executemusic: ; 0x9450
cp $f8 ; is this command an executemusic? cp $f8 ; is this command an executemusic?
jr nz, Music2_octave ; no jr nz, Audio1_octave ; no
ld b, $0 ; yes ld b, $0 ; yes
ld hl, wc036 ld hl, wc036
add hl, bc add hl, bc
set 0, [hl] set 0, [hl]
jp Music2_endchannel jp Audio1_endchannel
Music2_octave: ; 0x945f Audio1_octave: ; 0x945f
and $f0 and $f0
cp $e0 ; is this command an octave? cp $e0 ; is this command an octave?
jr nz, Music2_unknownsfx0x20 ; no jr nz, Audio1_unknownsfx0x20 ; no
ld hl, wc0d6 ; yes ld hl, wc0d6 ; yes
ld b, $0 ld b, $0
add hl, bc add hl, bc
ld a, d ld a, d
and $f and $f
ld [hl], a ; store low nibble as octave ld [hl], a ; store low nibble as octave
jp Music2_endchannel jp Audio1_endchannel
Music2_unknownsfx0x20: ; 0x9472 Audio1_unknownsfx0x20: ; 0x9472
cp $20 ; is this command an unknownsfx0x20? cp $20 ; is this command an unknownsfx0x20?
jr nz, Music2_unknownsfx0x10 ; no jr nz, Audio1_unknownsfx0x10 ; no
ld a, c ld a, c
cp CH3 ; is this a noise or sfx channel? cp CH3 ; is this a noise or sfx channel?
jr c, Music2_unknownsfx0x10 ; no jr c, Audio1_unknownsfx0x10 ; no
ld b, $0 ld b, $0
ld hl, wc036 ld hl, wc036
add hl, bc add hl, bc
bit 0, [hl] bit 0, [hl]
jr nz, Music2_unknownsfx0x10 ; no jr nz, Audio1_unknownsfx0x10 ; no
call Music2_notelength ; yes call Audio1_notelength ; yes
ld d, a ld d, a
ld b, $0 ld b, $0
ld hl, wc03e ld hl, wc03e
@ -579,56 +579,56 @@ Music2_unknownsfx0x20: ; 0x9472
or d or d
ld d, a ld d, a
ld b, $1 ld b, $1
call Music2_9838 call Audio1_9838
ld [hl], d ld [hl], d
call Music2_GetNextMusicByte call Audio1_GetNextMusicByte
ld d, a ld d, a
ld b, $2 ld b, $2
call Music2_9838 call Audio1_9838
ld [hl], d ld [hl], d
call Music2_GetNextMusicByte call Audio1_GetNextMusicByte
ld e, a ld e, a
ld a, c ld a, c
cp CH7 cp CH7
ld a, $0 ld a, $0
jr z, .sfxNoiseChannel ; only two params for noise channel jr z, .sfxNoiseChannel ; only two params for noise channel
push de push de
call Music2_GetNextMusicByte call Audio1_GetNextMusicByte
pop de pop de
.sfxNoiseChannel .sfxNoiseChannel
ld d, a ld d, a
push de push de
call Music2_9629 call Audio1_9629
call Music2_95f8 call Audio1_95f8
pop de pop de
call Music2_964b call Audio1_964b
ret ret
Music2_unknownsfx0x10: Audio1_unknownsfx0x10:
ld a, c ld a, c
cp CH4 cp CH4
jr c, Music2_note ; if not a sfx jr c, Audio1_note ; if not a sfx
ld a, d ld a, d
cp $10 ; is this command a unknownsfx0x10? cp $10 ; is this command a unknownsfx0x10?
jr nz, Music2_note ; no jr nz, Audio1_note ; no
ld b, $0 ld b, $0
ld hl, wc036 ld hl, wc036
add hl, bc add hl, bc
bit 0, [hl] bit 0, [hl]
jr nz, Music2_note ; no jr nz, Audio1_note ; no
call Music2_GetNextMusicByte ; yes call Audio1_GetNextMusicByte ; yes
ld [$ff10], a ld [$ff10], a
jp Music2_endchannel jp Audio1_endchannel
Music2_note: Audio1_note:
ld a, c ld a, c
cp CH3 cp CH3
jr nz, Music2_notelength ; if not noise channel jr nz, Audio1_notelength ; if not noise channel
ld a, d ld a, d
and $f0 and $f0
cp $b0 ; is this command a dnote? cp $b0 ; is this command a dnote?
jr z, Music2_dnote ; yes jr z, Audio1_dnote ; yes
jr nc, Music2_notelength ; no jr nc, Audio1_notelength ; no
swap a swap a
ld b, a ld b, a
ld a, d ld a, d
@ -639,24 +639,24 @@ Music2_note:
push bc push bc
jr asm_94fd jr asm_94fd
Music2_dnote: Audio1_dnote:
ld a, d ld a, d
and $f and $f
push af push af
push bc push bc
call Music2_GetNextMusicByte ; get dnote instrument call Audio1_GetNextMusicByte ; get dnote instrument
asm_94fd asm_94fd
ld d, a ld d, a
ld a, [wc003] ld a, [wc003]
and a and a
jr nz, .asm_9508 jr nz, .asm_9508
ld a, d ld a, d
call Music2_9876 call Audio1_9876
.asm_9508 .asm_9508
pop bc pop bc
pop de pop de
Music2_notelength: ; 0x950a Audio1_notelength: ; 0x950a
ld a, d ld a, d
push af push af
and $f and $f
@ -668,7 +668,7 @@ Music2_notelength: ; 0x950a
add hl, bc add hl, bc
ld a, [hl] ld a, [hl]
ld l, b ld l, b
call Music2_9847 call Audio1_9847
ld a, c ld a, c
cp CH4 cp CH4
jr nc, .sfxChannel jr nc, .sfxChannel
@ -682,7 +682,7 @@ Music2_notelength: ; 0x950a
ld e, $0 ld e, $0
cp CH7 cp CH7
jr z, .skip ; if noise channel jr z, .skip ; if noise channel
call Music2_9693 call Audio1_9693
ld a, [wc0ea] ld a, [wc0ea]
ld d, a ld d, a
ld a, [wc0eb] ld a, [wc0eb]
@ -693,7 +693,7 @@ Music2_notelength: ; 0x950a
ld hl, wc0ce ld hl, wc0ce
add hl, bc add hl, bc
ld l, [hl] ld l, [hl]
call Music2_9847 call Audio1_9847
ld e, l ld e, l
ld d, h ld d, h
ld hl, wc0ce ld hl, wc0ce
@ -706,15 +706,15 @@ Music2_notelength: ; 0x950a
ld hl, wc036 ld hl, wc036
add hl, bc add hl, bc
bit 0, [hl] bit 0, [hl]
jr nz, Music2_notepitch jr nz, Audio1_notepitch
ld hl, wc02e ld hl, wc02e
add hl, bc add hl, bc
bit 2, [hl] bit 2, [hl]
jr z, Music2_notepitch jr z, Audio1_notepitch
pop hl pop hl
ret ret
Music2_notepitch: ; 0x9568 Audio1_notepitch: ; 0x9568
pop af pop af
and $f0 and $f0
cp $c0 ; compare to rest cp $c0 ; compare to rest
@ -744,7 +744,7 @@ Music2_notepitch: ; 0x9568
jr .done jr .done
.notSfxChannel3 .notSfxChannel3
ld b, $2 ld b, $2
call Music2_9838 call Audio1_9838
ld a, $8 ld a, $8
ld [hli], a ld [hli], a
inc hl inc hl
@ -758,13 +758,13 @@ Music2_notepitch: ; 0x9568
ld hl, wc0d6 ld hl, wc0d6
add hl, bc add hl, bc
ld b, [hl] ld b, [hl]
call Music2_9858 call Audio1_9858
ld b, $0 ld b, $0
ld hl, wc02e ld hl, wc02e
add hl, bc add hl, bc
bit 4, [hl] bit 4, [hl]
jr z, .asm_95b8 jr z, .asm_95b8
call Music2_978f call Audio1_978f
.asm_95b8 .asm_95b8
push de push de
ld a, c ld a, c
@ -787,10 +787,10 @@ Music2_notepitch: ; 0x9568
add hl, bc add hl, bc
ld d, [hl] ld d, [hl]
ld b, $2 ld b, $2
call Music2_9838 call Audio1_9838
ld [hl], d ld [hl], d
call Music2_9629 call Audio1_9629
call Music2_95f8 call Audio1_95f8
pop de pop de
ld b, $0 ld b, $0
ld hl, wc02e ld hl, wc02e
@ -804,10 +804,10 @@ Music2_notepitch: ; 0x9568
ld hl, wc066 ld hl, wc066
add hl, bc add hl, bc
ld [hl], e ld [hl], e
call Music2_964b call Audio1_964b
ret ret
Music2_95f8: ; 0x95f8 Audio1_95f8: ; 0x95f8
ld b, $0 ld b, $0
ld hl, Unknown_9b27 ld hl, Unknown_9b27
add hl, bc add hl, bc
@ -841,7 +841,7 @@ Music2_95f8: ; 0x95f8
ld [$ff25], a ld [$ff25], a
ret ret
Music2_9629: ; 0x9629 Audio1_9629: ; 0x9629
ld b, $0 ld b, $0
ld hl, wc0b6 ld hl, wc0b6
add hl, bc add hl, bc
@ -861,11 +861,11 @@ Music2_9629: ; 0x9629
ld d, a ld d, a
.channel3 .channel3
ld b, $1 ld b, $1
call Music2_9838 call Audio1_9838
ld [hl], d ld [hl], d
ret ret
Music2_964b: ; 0x964b Audio1_964b: ; 0x964b
ld a, c ld a, c
cp CH2 cp CH2
jr z, .channel3 jr z, .channel3
@ -883,7 +883,7 @@ Music2_964b: ; 0x964b
add a add a
ld d, $0 ld d, $0
ld e, a ld e, a
ld hl, Music2_WavePointers ld hl, Audio1_WavePointers
add hl, de add hl, de
ld e, [hl] ld e, [hl]
inc hl inc hl
@ -909,15 +909,15 @@ Music2_964b: ; 0x964b
and $c7 and $c7
ld d, a ld d, a
ld b, $3 ld b, $3
call Music2_9838 call Audio1_9838
ld [hl], e ld [hl], e
inc hl inc hl
ld [hl], d ld [hl], d
call Music2_96b5 call Audio1_96b5
ret ret
Music2_9693: ; 0x9693 Audio1_9693: ; 0x9693
call Music2_96e5 call Audio1_96e5
jr nc, .asm_96ab jr nc, .asm_96ab
ld d, $0 ld d, $0
ld a, [wc0f2] ld a, [wc0f2]
@ -937,8 +937,8 @@ Music2_9693: ; 0x9693
.asm_96b4 .asm_96b4
ret ret
Music2_96b5: ; 0x96b5 Audio1_96b5: ; 0x96b5
call Music2_96e5 call Audio1_96e5
jr nc, .asm_96c6 jr nc, .asm_96c6
ld a, [wc0f1] ld a, [wc0f1]
add e add e
@ -953,8 +953,8 @@ Music2_96b5: ; 0x96b5
.asm_96c6 .asm_96c6
ret ret
Music2_96c7: ; 0x96c7 Audio1_96c7: ; 0x96c7
call Music2_96e5 call Audio1_96e5
jr nc, .asm_96e2 jr nc, .asm_96e2
ld hl, wc006 ld hl, wc006
ld e, c ld e, c
@ -976,7 +976,7 @@ Music2_96c7: ; 0x96c7
ccf ccf
ret ret
Music2_96e5: ; 0x96e5 Audio1_96e5: ; 0x96e5
ld a, [wc02a] ld a, [wc02a]
cp $14 cp $14
jr nc, .asm_96ee jr nc, .asm_96ee
@ -993,7 +993,7 @@ Music2_96e5: ; 0x96e5
scf scf
ret ret
Music2_ApplyPitchBend: ; 0x96f9 Audio1_ApplyPitchBend: ; 0x96f9
ld hl, wc02e ld hl, wc02e
add hl, bc add hl, bc
bit 5, [hl] bit 5, [hl]
@ -1083,7 +1083,7 @@ Music2_ApplyPitchBend: ; 0x96f9
add hl, bc add hl, bc
ld [hl], d ld [hl], d
ld b, $3 ld b, $3
call Music2_9838 call Audio1_9838
ld a, e ld a, e
ld [hli], a ld [hli], a
ld [hl], d ld [hl], d
@ -1095,7 +1095,7 @@ Music2_ApplyPitchBend: ; 0x96f9
res 5, [hl] res 5, [hl]
ret ret
Music2_978f: ; 0x978f Audio1_978f: ; 0x978f
ld hl, wc096 ld hl, wc096
add hl, bc add hl, bc
ld [hl], d ld [hl], d
@ -1184,7 +1184,7 @@ Music2_978f: ; 0x978f
ld [hl], a ld [hl], a
ret ret
Music2_ApplyDutyCycle: ; 0x980d Audio1_ApplyDutyCycle: ; 0x980d
ld b, $0 ld b, $0
ld hl, wc046 ld hl, wc046
add hl, bc add hl, bc
@ -1195,14 +1195,14 @@ Music2_ApplyDutyCycle: ; 0x980d
and $c0 and $c0
ld d, a ld d, a
ld b, $1 ld b, $1
call Music2_9838 call Audio1_9838
ld a, [hl] ld a, [hl]
and $3f and $3f
or d or d
ld [hl], a ld [hl], a
ret ret
Music2_GetNextMusicByte: ; 0x9825 Audio1_GetNextMusicByte: ; 0x9825
ld d, $0 ld d, $0
ld a, c ld a, c
add a add a
@ -1220,7 +1220,7 @@ Music2_GetNextMusicByte: ; 0x9825
ld [hl], d ld [hl], d
ret ret
Music2_9838: ; 0x9838 Audio1_9838: ; 0x9838
ld a, c ld a, c
ld hl, Unknown_9b17 ld hl, Unknown_9b17
add l add l
@ -1234,7 +1234,7 @@ Music2_9838: ; 0x9838
ld h, $ff ld h, $ff
ret ret
Music2_9847: ; 0x9847 Audio1_9847: ; 0x9847
ld h, $0 ld h, $0
.loop .loop
srl a srl a
@ -1249,13 +1249,13 @@ Music2_9847: ; 0x9847
.done .done
ret ret
Music2_9858: ; 0x9858 Audio1_9858: ; 0x9858
ld h, $0 ld h, $0
ld l, a ld l, a
add hl, hl add hl, hl
ld d, h ld d, h
ld e, l ld e, l
ld hl, Music2_Pitches ld hl, Audio1_Pitches
add hl, de add hl, de
ld e, [hl] ld e, [hl]
inc hl inc hl
@ -1274,16 +1274,16 @@ Music2_9858: ; 0x9858
ld d, a ld d, a
ret ret
Music2_9876:: ; 0x9876 Audio1_9876:: ; 0x9876
ld [wc001], a ld [wc001], a
cp $ff cp $ff
jp z, Music2_9a34 jp z, Audio1_9a34
cp $b9 cp $b9
jp z, Music2_994e jp z, Audio1_994e
jp c, Music2_994e jp c, Audio1_994e
cp $fe cp $fe
jr z, .asm_988d jr z, .asm_988d
jp nc, Music2_994e jp nc, Audio1_994e
.asm_988d .asm_988d
xor a xor a
ld [wc000], a ld [wc000], a
@ -1293,53 +1293,53 @@ Music2_9876:: ; 0x9876
ld [wc0e7], a ld [wc0e7], a
ld d, $8 ld d, $8
ld hl, wc016 ld hl, wc016
call FillMusicRAM2 call FillAudioRAM1
ld hl, wc006 ld hl, wc006
call FillMusicRAM2 call FillAudioRAM1
ld d, $4 ld d, $4
ld hl, wc026 ld hl, wc026
call FillMusicRAM2 call FillAudioRAM1
ld hl, wc02e ld hl, wc02e
call FillMusicRAM2 call FillAudioRAM1
ld hl, wc03e ld hl, wc03e
call FillMusicRAM2 call FillAudioRAM1
ld hl, wc046 ld hl, wc046
call FillMusicRAM2 call FillAudioRAM1
ld hl, wc04e ld hl, wc04e
call FillMusicRAM2 call FillAudioRAM1
ld hl, wc056 ld hl, wc056
call FillMusicRAM2 call FillAudioRAM1
ld hl, wc05e ld hl, wc05e
call FillMusicRAM2 call FillAudioRAM1
ld hl, wc066 ld hl, wc066
call FillMusicRAM2 call FillAudioRAM1
ld hl, wc06e ld hl, wc06e
call FillMusicRAM2 call FillAudioRAM1
ld hl, wc036 ld hl, wc036
call FillMusicRAM2 call FillAudioRAM1
ld hl, wc076 ld hl, wc076
call FillMusicRAM2 call FillAudioRAM1
ld hl, wc07e ld hl, wc07e
call FillMusicRAM2 call FillAudioRAM1
ld hl, wc086 ld hl, wc086
call FillMusicRAM2 call FillAudioRAM1
ld hl, wc08e ld hl, wc08e
call FillMusicRAM2 call FillAudioRAM1
ld hl, wc096 ld hl, wc096
call FillMusicRAM2 call FillAudioRAM1
ld hl, wc09e ld hl, wc09e
call FillMusicRAM2 call FillAudioRAM1
ld hl, wc0a6 ld hl, wc0a6
call FillMusicRAM2 call FillAudioRAM1
ld hl, wc0ae ld hl, wc0ae
call FillMusicRAM2 call FillAudioRAM1
ld a, $1 ld a, $1
ld hl, wc0be ld hl, wc0be
call FillMusicRAM2 call FillAudioRAM1
ld hl, wc0b6 ld hl, wc0b6
call FillMusicRAM2 call FillAudioRAM1
ld hl, wc0c6 ld hl, wc0c6
call FillMusicRAM2 call FillAudioRAM1
ld [wc0e8], a ld [wc0e8], a
ld a, $ff ld a, $ff
ld [wc004], a ld [wc004], a
@ -1355,16 +1355,16 @@ Music2_9876:: ; 0x9876
ld [$ff1a], a ld [$ff1a], a
ld a, $77 ld a, $77
ld [$ff24], a ld [$ff24], a
jp Music2_9a8f jp Audio1_9a8f
Music2_994e: ; 0x994e Audio1_994e: ; 0x994e
ld l, a ld l, a
ld e, a ld e, a
ld h, $0 ld h, $0
ld d, h ld d, h
add hl, hl add hl, hl
add hl, de add hl, de
ld de, SFX_Headers_02 ld de, SFX_Headers_1
add hl, de add hl, de
ld a, h ld a, h
ld [wc0ec], a ld [wc0ec], a
@ -1504,11 +1504,11 @@ Music2_994e: ; 0x994e
.asm_9a2b .asm_9a2b
ld a, c ld a, c
and a and a
jp z, Music2_9a8f jp z, Audio1_9a8f
dec c dec c
jp .asm_9967 jp .asm_9967
Music2_9a34: ; 0x9a34 Audio1_9a34: ; 0x9a34
ld a, $80 ld a, $80
ld [$ff26], a ld [$ff26], a
ld [$ff1a], a ld [$ff1a], a
@ -1536,11 +1536,11 @@ Music2_9a34: ; 0x9a34
ld [wc0e7], a ld [wc0e7], a
ld d, $a0 ld d, $a0
ld hl, wc006 ld hl, wc006
call FillMusicRAM2 call FillAudioRAM1
ld a, $1 ld a, $1
ld d, $18 ld d, $18
ld hl, wc0b6 ld hl, wc0b6
call FillMusicRAM2 call FillAudioRAM1
ld [wc0e8], a ld [wc0e8], a
ld [wc0ea], a ld [wc0ea], a
ld a, $ff ld a, $ff
@ -1548,7 +1548,7 @@ Music2_9a34: ; 0x9a34
ret ret
; fills d bytes at hl with a ; fills d bytes at hl with a
FillMusicRAM2: ; 0x9a89 FillAudioRAM1: ; 0x9a89
ld b, d ld b, d
.loop .loop
ld [hli], a ld [hli], a
@ -1556,7 +1556,7 @@ FillMusicRAM2: ; 0x9a89
jr nz, .loop jr nz, .loop
ret ret
Music2_9a8f: ; 0x9a8f Audio1_9a8f: ; 0x9a8f
ld a, [wc001] ld a, [wc001]
ld l, a ld l, a
ld e, a ld e, a
@ -1564,7 +1564,7 @@ Music2_9a8f: ; 0x9a8f
ld d, h ld d, h
add hl, hl add hl, hl
add hl, de add hl, de
ld de, SFX_Headers_02 ld de, SFX_Headers_1
add hl, de add hl, de
ld e, l ld e, l
ld d, h ld d, h
@ -1637,7 +1637,7 @@ Music2_9a8f: ; 0x9a8f
ld [hli], a ld [hli], a
ld [hl], a ld [hl], a
ld hl, wc012 ; sfx noise channel pointer ld hl, wc012 ; sfx noise channel pointer
ld de, Noise2_endchannel ld de, Noise1_endchannel
ld [hl], e ld [hl], e
inc hl inc hl
ld [hl], d ; overwrite pointer to point to endchannel ld [hl], d ; overwrite pointer to point to endchannel
@ -1651,7 +1651,7 @@ Music2_9a8f: ; 0x9a8f
.asm_9b15 .asm_9b15
ret ret
Noise2_endchannel: ; 0x9b16 Noise1_endchannel: ; 0x9b16
endchannel endchannel
Unknown_9b17: ; 0x9b17 Unknown_9b17: ; 0x9b17
@ -1666,7 +1666,7 @@ Unknown_9b27: ; 0x9b27
db $11, $22, $44, $88 ; channels 0-3 db $11, $22, $44, $88 ; channels 0-3
db $11, $22, $44, $88 ; channels 4-7 db $11, $22, $44, $88 ; channels 4-7
Music2_Pitches: ; 0x9b2f Audio1_Pitches: ; 0x9b2f
dw $F82C ; C_ dw $F82C ; C_
dw $F89D ; C# dw $F89D ; C#
dw $F907 ; D_ dw $F907 ; D_

View file

@ -1,6 +1,6 @@
; The second of three duplicated sound engines. ; The second of three duplicated sound engines.
Music8_UpdateMusic:: ; 21879 (8:5879) Audio2_UpdateMusic:: ; 21879 (8:5879)
ld c, CH0 ld c, CH0
.loop .loop
ld b, $0 ld b, $0
@ -26,7 +26,7 @@ Music8_UpdateMusic:: ; 21879 (8:5879)
ld [$ff1a], a ld [$ff1a], a
jr .nextChannel jr .nextChannel
.applyAffects .applyAffects
call Music8_ApplyMusicAffects call Audio2_ApplyMusicAffects
.nextChannel .nextChannel
ld a, c ld a, c
inc c inc c
@ -42,13 +42,13 @@ Music8_UpdateMusic:: ; 21879 (8:5879)
; 3: a toggle used only by this routine for vibrato ; 3: a toggle used only by this routine for vibrato
; 4: pitchbend flag ; 4: pitchbend flag
; 6: dutycycle flag ; 6: dutycycle flag
Music8_ApplyMusicAffects: ; 218ae (8:58ae) Audio2_ApplyMusicAffects: ; 218ae (8:58ae)
ld b, $0 ld b, $0
ld hl, wc0b6 ; delay until next note ld hl, wc0b6 ; delay until next note
add hl, bc add hl, bc
ld a, [hl] ld a, [hl]
cp $1 ; if the delay is 1, play next note cp $1 ; if the delay is 1, play next note
jp z, Music8_PlayNextNote jp z, Audio2_PlayNextNote
dec a ; otherwise, decrease the delay timer dec a ; otherwise, decrease the delay timer
ld [hl], a ld [hl], a
ld a, c ld a, c
@ -65,7 +65,7 @@ Music8_ApplyMusicAffects: ; 218ae (8:58ae)
add hl, bc add hl, bc
bit 6, [hl] ; dutycycle bit 6, [hl] ; dutycycle
jr z, .checkForExecuteMusic jr z, .checkForExecuteMusic
call Music8_ApplyDutyCycle call Audio2_ApplyDutyCycle
.checkForExecuteMusic .checkForExecuteMusic
ld b, $0 ld b, $0
ld hl, wc036 ld hl, wc036
@ -81,7 +81,7 @@ Music8_ApplyMusicAffects: ; 218ae (8:58ae)
add hl, bc add hl, bc
bit 4, [hl] ; pitchbend bit 4, [hl] ; pitchbend
jr z, .checkVibratoDelay jr z, .checkVibratoDelay
jp Music8_ApplyPitchBend jp Audio2_ApplyPitchBend
.checkVibratoDelay .checkVibratoDelay
ld hl, wc04e ; vibrato delay ld hl, wc04e ; vibrato delay
add hl, bc add hl, bc
@ -141,14 +141,14 @@ Music8_ApplyMusicAffects: ; 218ae (8:58ae)
.done .done
ld d, a ld d, a
ld b, $3 ld b, $3
call Music8_21ff7 call Audio2_21ff7
ld [hl], d ld [hl], d
ret ret
; this routine executes all music commands that take up no time, ; this routine executes all music commands that take up no time,
; like tempo changes, duty changes etc. and doesn't return ; like tempo changes, duty changes etc. and doesn't return
; until the first note is reached ; until the first note is reached
Music8_PlayNextNote: ; 21946 (8:5946) Audio2_PlayNextNote: ; 21946 (8:5946)
ld hl, wc06e ld hl, wc06e
add hl, bc add hl, bc
ld a, [hl] ld a, [hl]
@ -166,14 +166,14 @@ Music8_PlayNextNote: ; 21946 (8:5946)
bit 7, a bit 7, a
ret nz ret nz
.beginChecks .beginChecks
call Music8_endchannel call Audio2_endchannel
ret ret
Music8_endchannel: ; 21967 (8:5967) Audio2_endchannel: ; 21967 (8:5967)
call Music8_GetNextMusicByte call Audio2_GetNextMusicByte
ld d, a ld d, a
cp $ff ; is this command an endchannel? cp $ff ; is this command an endchannel?
jp nz, Music8_callchannel ; no jp nz, Audio2_callchannel ; no
ld b, $0 ; yes ld b, $0 ; yes
ld hl, wc02e ld hl, wc02e
add hl, bc add hl, bc
@ -223,7 +223,7 @@ Music8_endchannel: ; 21967 (8:5967)
inc de inc de
ld a, [de] ld a, [de]
ld [hl], a ; loads channel address to return to ld [hl], a ; loads channel address to return to
jp Music8_endchannel jp Audio2_endchannel
.asm_219c0 .asm_219c0
ld hl, Unknown_222de ld hl, Unknown_222de
add hl, bc add hl, bc
@ -245,7 +245,7 @@ Music8_endchannel: ; 21967 (8:5967)
ld a, c ld a, c
cp CH4 cp CH4
jr z, .asm_219e6 jr z, .asm_219e6
call Music8_21e6d call Audio2_21e6d
ret c ret c
.asm_219e6 .asm_219e6
ld a, [wc005] ld a, [wc005]
@ -258,12 +258,12 @@ Music8_endchannel: ; 21967 (8:5967)
ld [hl], b ld [hl], b
ret ret
Music8_callchannel: ; 219f5 (8:59f5) Audio2_callchannel: ; 219f5 (8:59f5)
cp $fd ; is this command a callchannel? cp $fd ; is this command a callchannel?
jp nz, Music8_loopchannel ; no jp nz, Audio2_loopchannel ; no
call Music8_GetNextMusicByte ; yes call Audio2_GetNextMusicByte ; yes
push af push af
call Music8_GetNextMusicByte call Audio2_GetNextMusicByte
ld d, a ld d, a
pop af pop af
ld e, a ld e, a
@ -293,12 +293,12 @@ Music8_callchannel: ; 219f5 (8:59f5)
ld hl, wc02e ld hl, wc02e
add hl, bc add hl, bc
set 1, [hl] ; set the call flag set 1, [hl] ; set the call flag
jp Music8_endchannel jp Audio2_endchannel
Music8_loopchannel: ; 21a2a (8:5a2a) Audio2_loopchannel: ; 21a2a (8:5a2a)
cp $fe ; is this command a loopchannel? cp $fe ; is this command a loopchannel?
jp nz, Music8_notetype ; no jp nz, Audio2_notetype ; no
call Music8_GetNextMusicByte ; yes call Audio2_GetNextMusicByte ; yes
ld e, a ld e, a
and a and a
jr z, .infiniteLoop jr z, .infiniteLoop
@ -310,17 +310,17 @@ Music8_loopchannel: ; 21a2a (8:5a2a)
jr nz, .loopAgain jr nz, .loopAgain
ld a, $1 ; if no more loops to make, ld a, $1 ; if no more loops to make,
ld [hl], a ld [hl], a
call Music8_GetNextMusicByte ; skip pointer call Audio2_GetNextMusicByte ; skip pointer
call Music8_GetNextMusicByte call Audio2_GetNextMusicByte
jp Music8_endchannel jp Audio2_endchannel
.loopAgain ; inc loop count .loopAgain ; inc loop count
inc a inc a
ld [hl], a ld [hl], a
; fall through ; fall through
.infiniteLoop ; overwrite current address with pointer .infiniteLoop ; overwrite current address with pointer
call Music8_GetNextMusicByte call Audio2_GetNextMusicByte
push af push af
call Music8_GetNextMusicByte call Audio2_GetNextMusicByte
ld b, a ld b, a
ld d, $0 ld d, $0
ld a, c ld a, c
@ -331,12 +331,12 @@ Music8_loopchannel: ; 21a2a (8:5a2a)
pop af pop af
ld [hli], a ld [hli], a
ld [hl], b ld [hl], b
jp Music8_endchannel jp Audio2_endchannel
Music8_notetype: ; 21a65 (8:5a65) Audio2_notetype: ; 21a65 (8:5a65)
and $f0 and $f0
cp $d0 ; is this command a notetype? cp $d0 ; is this command a notetype?
jp nz, Music8_toggleperfectpitch ; no jp nz, Audio2_toggleperfectpitch ; no
ld a, d ; yes ld a, d ; yes
and $f and $f
ld b, $0 ld b, $0
@ -346,7 +346,7 @@ Music8_notetype: ; 21a65 (8:5a65)
ld a, c ld a, c
cp CH3 cp CH3
jr z, .noiseChannel ; noise channel has 0 params jr z, .noiseChannel ; noise channel has 0 params
call Music8_GetNextMusicByte call Audio2_GetNextMusicByte
ld d, a ld d, a
ld a, c ld a, c
cp CH2 cp CH2
@ -375,24 +375,24 @@ Music8_notetype: ; 21a65 (8:5a65)
add hl, bc add hl, bc
ld [hl], d ld [hl], d
.noiseChannel .noiseChannel
jp Music8_endchannel jp Audio2_endchannel
Music8_toggleperfectpitch: ; 21aa4 (8:5aa4) Audio2_toggleperfectpitch: ; 21aa4 (8:5aa4)
ld a, d ld a, d
cp $e8 ; is this command a toggleperfectpitch? cp $e8 ; is this command a toggleperfectpitch?
jr nz, Music8_vibrato ; no jr nz, Audio2_vibrato ; no
ld b, $0 ; yes ld b, $0 ; yes
ld hl, wc02e ld hl, wc02e
add hl, bc add hl, bc
ld a, [hl] ld a, [hl]
xor $1 xor $1
ld [hl], a ; flip bit 0 of wc02e ld [hl], a ; flip bit 0 of wc02e
jp Music8_endchannel jp Audio2_endchannel
Music8_vibrato: ; 21ab6 (8:5ab6) Audio2_vibrato: ; 21ab6 (8:5ab6)
cp $ea ; is this command a vibrato? cp $ea ; is this command a vibrato?
jr nz, Music8_pitchbend ; no jr nz, Audio2_pitchbend ; no
call Music8_GetNextMusicByte ; yes call Audio2_GetNextMusicByte ; yes
ld b, $0 ld b, $0
ld hl, wc04e ld hl, wc04e
add hl, bc add hl, bc
@ -400,7 +400,7 @@ Music8_vibrato: ; 21ab6 (8:5ab6)
ld hl, wc06e ld hl, wc06e
add hl, bc add hl, bc
ld [hl], a ; store delay ld [hl], a ; store delay
call Music8_GetNextMusicByte call Audio2_GetNextMusicByte
ld d, a ld d, a
and $f0 and $f0
swap a swap a
@ -421,24 +421,24 @@ Music8_vibrato: ; 21ab6 (8:5ab6)
swap a swap a
or d or d
ld [hl], a ; store depth as both high and low nibbles ld [hl], a ; store depth as both high and low nibbles
jp Music8_endchannel jp Audio2_endchannel
Music8_pitchbend: ; 21aee (8:5aee) Audio2_pitchbend: ; 21aee (8:5aee)
cp $eb ; is this command a pitchbend? cp $eb ; is this command a pitchbend?
jr nz, Music8_duty ; no jr nz, Audio2_duty ; no
call Music8_GetNextMusicByte ; yes call Audio2_GetNextMusicByte ; yes
ld b, $0 ld b, $0
ld hl, wc076 ld hl, wc076
add hl, bc add hl, bc
ld [hl], a ; store first param ld [hl], a ; store first param
call Music8_GetNextMusicByte call Audio2_GetNextMusicByte
ld d, a ld d, a
and $f0 and $f0
swap a swap a
ld b, a ld b, a
ld a, d ld a, d
and $f and $f
call Music8_22017 call Audio2_22017
ld b, $0 ld b, $0
ld hl, wc0a6 ld hl, wc0a6
add hl, bc add hl, bc
@ -450,14 +450,14 @@ Music8_pitchbend: ; 21aee (8:5aee)
ld hl, wc02e ld hl, wc02e
add hl, bc add hl, bc
set 4, [hl] ; set pitchbend flag set 4, [hl] ; set pitchbend flag
call Music8_GetNextMusicByte call Audio2_GetNextMusicByte
ld d, a ld d, a
jp Music8_notelength jp Audio2_notelength
Music8_duty: ; 21b26 (8:5b26) Audio2_duty: ; 21b26 (8:5b26)
cp $ec ; is this command a duty? cp $ec ; is this command a duty?
jr nz, Music8_tempo ; no jr nz, Audio2_tempo ; no
call Music8_GetNextMusicByte ; yes call Audio2_GetNextMusicByte ; yes
rrca rrca
rrca rrca
and $c0 and $c0
@ -465,17 +465,17 @@ Music8_duty: ; 21b26 (8:5b26)
ld hl, wc03e ld hl, wc03e
add hl, bc add hl, bc
ld [hl], a ; store duty ld [hl], a ; store duty
jp Music8_endchannel jp Audio2_endchannel
Music8_tempo: ; 21b3b (8:5b3b) Audio2_tempo: ; 21b3b (8:5b3b)
cp $ed ; is this command a tempo? cp $ed ; is this command a tempo?
jr nz, Music8_stereopanning ; no jr nz, Audio2_stereopanning ; no
ld a, c ; yes ld a, c ; yes
cp CH4 cp CH4
jr nc, .sfxChannel jr nc, .sfxChannel
call Music8_GetNextMusicByte call Audio2_GetNextMusicByte
ld [wc0e8], a ; store first param ld [wc0e8], a ; store first param
call Music8_GetNextMusicByte call Audio2_GetNextMusicByte
ld [wc0e9], a ; store second param ld [wc0e9], a ; store second param
xor a xor a
ld [wc0ce], a ; clear RAM ld [wc0ce], a ; clear RAM
@ -484,9 +484,9 @@ Music8_tempo: ; 21b3b (8:5b3b)
ld [wc0d1], a ld [wc0d1], a
jr .musicChannelDone jr .musicChannelDone
.sfxChannel .sfxChannel
call Music8_GetNextMusicByte call Audio2_GetNextMusicByte
ld [wc0ea], a ; store first param ld [wc0ea], a ; store first param
call Music8_GetNextMusicByte call Audio2_GetNextMusicByte
ld [wc0eb], a ; store second param ld [wc0eb], a ; store second param
xor a xor a
ld [wc0d2], a ; clear RAM ld [wc0d2], a ; clear RAM
@ -494,22 +494,22 @@ Music8_tempo: ; 21b3b (8:5b3b)
ld [wc0d4], a ld [wc0d4], a
ld [wc0d5], a ld [wc0d5], a
.musicChannelDone .musicChannelDone
jp Music8_endchannel jp Audio2_endchannel
Music8_stereopanning: ; 21b7b (8:5b7b) Audio2_stereopanning: ; 21b7b (8:5b7b)
cp $ee ; is this command a stereopanning? cp $ee ; is this command a stereopanning?
jr nz, Music8_unknownmusic0xef ; no jr nz, Audio2_unknownmusic0xef ; no
call Music8_GetNextMusicByte ; yes call Audio2_GetNextMusicByte ; yes
ld [wc004], a ; store panning ld [wc004], a ; store panning
jp Music8_endchannel jp Audio2_endchannel
; this appears to never be used ; this appears to never be used
Music8_unknownmusic0xef: ; 21b88 (8:5b88) Audio2_unknownmusic0xef: ; 21b88 (8:5b88)
cp $ef ; is this command an unknownmusic0xef? cp $ef ; is this command an unknownmusic0xef?
jr nz, Music8_dutycycle ; no jr nz, Audio2_dutycycle ; no
call Music8_GetNextMusicByte ; yes call Audio2_GetNextMusicByte ; yes
push bc push bc
call Music8_22035 call Audio2_22035
pop bc pop bc
ld a, [wc003] ld a, [wc003]
and a and a
@ -519,12 +519,12 @@ Music8_unknownmusic0xef: ; 21b88 (8:5b88)
xor a xor a
ld [wc02d], a ld [wc02d], a
.skip .skip
jp Music8_endchannel jp Audio2_endchannel
Music8_dutycycle: ; 21ba7 (8:5ba7) Audio2_dutycycle: ; 21ba7 (8:5ba7)
cp $fc ; is this command a dutycycle? cp $fc ; is this command a dutycycle?
jr nz, Music8_volume ; no jr nz, Audio2_volume ; no
call Music8_GetNextMusicByte ; yes call Audio2_GetNextMusicByte ; yes
ld b, $0 ld b, $0
ld hl, wc046 ld hl, wc046
add hl, bc add hl, bc
@ -536,48 +536,48 @@ Music8_dutycycle: ; 21ba7 (8:5ba7)
ld hl, wc02e ld hl, wc02e
add hl, bc add hl, bc
set 6, [hl] ; set dutycycle flag set 6, [hl] ; set dutycycle flag
jp Music8_endchannel jp Audio2_endchannel
Music8_volume: ; 21bc5 (8:5bc5) Audio2_volume: ; 21bc5 (8:5bc5)
cp $f0 ; is this command a volume? cp $f0 ; is this command a volume?
jr nz, Music8_executemusic ; no jr nz, Audio2_executemusic ; no
call Music8_GetNextMusicByte ; yes call Audio2_GetNextMusicByte ; yes
ld [$ff24], a ; store volume ld [$ff24], a ; store volume
jp Music8_endchannel jp Audio2_endchannel
Music8_executemusic: ; 21bd1 (8:5bd1) Audio2_executemusic: ; 21bd1 (8:5bd1)
cp $f8 ; is this command an executemusic? cp $f8 ; is this command an executemusic?
jr nz, Music8_octave ; no jr nz, Audio2_octave ; no
ld b, $0 ; yes ld b, $0 ; yes
ld hl, wc036 ld hl, wc036
add hl, bc add hl, bc
set 0, [hl] set 0, [hl]
jp Music8_endchannel jp Audio2_endchannel
Music8_octave: ; 21be0 (8:5be0) Audio2_octave: ; 21be0 (8:5be0)
and $f0 and $f0
cp $e0 ; is this command an octave? cp $e0 ; is this command an octave?
jr nz, Music8_unknownsfx0x20 ; no jr nz, Audio2_unknownsfx0x20 ; no
ld hl, wc0d6 ; yes ld hl, wc0d6 ; yes
ld b, $0 ld b, $0
add hl, bc add hl, bc
ld a, d ld a, d
and $f and $f
ld [hl], a ; store low nibble as octave ld [hl], a ; store low nibble as octave
jp Music8_endchannel jp Audio2_endchannel
Music8_unknownsfx0x20: ; 21bf3 Audio2_unknownsfx0x20: ; 21bf3
cp $20 ; is this command an unknownsfx0x20? cp $20 ; is this command an unknownsfx0x20?
jr nz, Music8_unknownsfx0x10 ; no jr nz, Audio2_unknownsfx0x10 ; no
ld a, c ld a, c
cp CH3 ; is this a noise or sfx channel? cp CH3 ; is this a noise or sfx channel?
jr c, Music8_unknownsfx0x10 ; no jr c, Audio2_unknownsfx0x10 ; no
ld b, $0 ld b, $0
ld hl, wc036 ld hl, wc036
add hl, bc add hl, bc
bit 0, [hl] bit 0, [hl]
jr nz, Music8_unknownsfx0x10 ; no jr nz, Audio2_unknownsfx0x10 ; no
call Music8_notelength call Audio2_notelength
ld d, a ld d, a
ld b, $0 ld b, $0
ld hl, wc03e ld hl, wc03e
@ -586,56 +586,56 @@ Music8_unknownsfx0x20: ; 21bf3
or d or d
ld d, a ld d, a
ld b, $1 ld b, $1
call Music8_21ff7 call Audio2_21ff7
ld [hl], d ld [hl], d
call Music8_GetNextMusicByte call Audio2_GetNextMusicByte
ld d, a ld d, a
ld b, $2 ld b, $2
call Music8_21ff7 call Audio2_21ff7
ld [hl], d ld [hl], d
call Music8_GetNextMusicByte call Audio2_GetNextMusicByte
ld e, a ld e, a
ld a, c ld a, c
cp CH7 cp CH7
ld a, $0 ld a, $0
jr z, .sfxNoiseChannel ; only two params for noise channel jr z, .sfxNoiseChannel ; only two params for noise channel
push de push de
call Music8_GetNextMusicByte call Audio2_GetNextMusicByte
pop de pop de
.sfxNoiseChannel .sfxNoiseChannel
ld d, a ld d, a
push de push de
call Music8_21daa call Audio2_21daa
call Music8_21d79 call Audio2_21d79
pop de pop de
call Music8_21dcc call Audio2_21dcc
ret ret
Music8_unknownsfx0x10: ; 21c40 (8:5c40) Audio2_unknownsfx0x10: ; 21c40 (8:5c40)
ld a, c ld a, c
cp CH4 cp CH4
jr c, Music8_note ; if not a sfx jr c, Audio2_note ; if not a sfx
ld a, d ld a, d
cp $10 ; is this command a unknownsfx0x10? cp $10 ; is this command a unknownsfx0x10?
jr nz, Music8_note ; no jr nz, Audio2_note ; no
ld b, $0 ld b, $0
ld hl, wc036 ld hl, wc036
add hl, bc add hl, bc
bit 0, [hl] bit 0, [hl]
jr nz, Music8_note ; no jr nz, Audio2_note ; no
call Music8_GetNextMusicByte ; yes call Audio2_GetNextMusicByte ; yes
ld [$ff10], a ld [$ff10], a
jp Music8_endchannel jp Audio2_endchannel
Music8_note: ; 21c5c (8:5c5c) Audio2_note: ; 21c5c (8:5c5c)
ld a, c ld a, c
cp CH3 cp CH3
jr nz, Music8_notelength ; if not noise channel jr nz, Audio2_notelength ; if not noise channel
ld a, d ld a, d
and $f0 and $f0
cp $b0 ; is this command a dnote? cp $b0 ; is this command a dnote?
jr z, Music8_dnote ; yes jr z, Audio2_dnote ; yes
jr nc, Music8_notelength ; no jr nc, Audio2_notelength ; no
swap a swap a
ld b, a ld b, a
ld a, d ld a, d
@ -646,24 +646,24 @@ Music8_note: ; 21c5c (8:5c5c)
push bc push bc
jr asm_21c7e jr asm_21c7e
Music8_dnote: ; 21c76 (8:5c76) Audio2_dnote: ; 21c76 (8:5c76)
ld a, d ld a, d
and $f and $f
push af push af
push bc push bc
call Music8_GetNextMusicByte ; get dnote instrument call Audio2_GetNextMusicByte ; get dnote instrument
asm_21c7e asm_21c7e
ld d, a ld d, a
ld a, [wc003] ld a, [wc003]
and a and a
jr nz, .asm_21c89 jr nz, .asm_21c89
ld a, d ld a, d
call Music8_22035 call Audio2_22035
.asm_21c89 .asm_21c89
pop bc pop bc
pop de pop de
Music8_notelength: ; 21c8b (8:5c8b) Audio2_notelength: ; 21c8b (8:5c8b)
ld a, d ld a, d
push af push af
and $f and $f
@ -675,7 +675,7 @@ Music8_notelength: ; 21c8b (8:5c8b)
add hl, bc add hl, bc
ld a, [hl] ld a, [hl]
ld l, b ld l, b
call Music8_22006 call Audio2_22006
ld a, c ld a, c
cp CH4 cp CH4
jr nc, .sfxChannel jr nc, .sfxChannel
@ -689,7 +689,7 @@ Music8_notelength: ; 21c8b (8:5c8b)
ld e, $0 ld e, $0
cp CH7 cp CH7
jr z, .skip ; if noise channel jr z, .skip ; if noise channel
call Music8_21e2f call Audio2_21e2f
ld a, [wc0ea] ld a, [wc0ea]
ld d, a ld d, a
ld a, [wc0eb] ld a, [wc0eb]
@ -700,7 +700,7 @@ Music8_notelength: ; 21c8b (8:5c8b)
ld hl, wc0ce ld hl, wc0ce
add hl, bc add hl, bc
ld l, [hl] ld l, [hl]
call Music8_22006 call Audio2_22006
ld e, l ld e, l
ld d, h ld d, h
ld hl, wc0ce ld hl, wc0ce
@ -713,15 +713,15 @@ Music8_notelength: ; 21c8b (8:5c8b)
ld hl, wc036 ld hl, wc036
add hl, bc add hl, bc
bit 0, [hl] bit 0, [hl]
jr nz, Music8_notepitch jr nz, Audio2_notepitch
ld hl, wc02e ld hl, wc02e
add hl, bc add hl, bc
bit 2, [hl] bit 2, [hl]
jr z, Music8_notepitch jr z, Audio2_notepitch
pop hl pop hl
ret ret
Music8_notepitch: ; 21ce9 (8:5ce9) Audio2_notepitch: ; 21ce9 (8:5ce9)
pop af pop af
and $f0 and $f0
cp $c0 ; compare to rest cp $c0 ; compare to rest
@ -751,7 +751,7 @@ Music8_notepitch: ; 21ce9 (8:5ce9)
jr .done jr .done
.notSfxChannel3 .notSfxChannel3
ld b, $2 ld b, $2
call Music8_21ff7 call Audio2_21ff7
ld a, $8 ld a, $8
ld [hli], a ld [hli], a
inc hl inc hl
@ -765,13 +765,13 @@ Music8_notepitch: ; 21ce9 (8:5ce9)
ld hl, wc0d6 ld hl, wc0d6
add hl, bc add hl, bc
ld b, [hl] ld b, [hl]
call Music8_22017 call Audio2_22017
ld b, $0 ld b, $0
ld hl, wc02e ld hl, wc02e
add hl, bc add hl, bc
bit 4, [hl] bit 4, [hl]
jr z, .asm_21d39 jr z, .asm_21d39
call Music8_21f4e call Audio2_21f4e
.asm_21d39 .asm_21d39
push de push de
ld a, c ld a, c
@ -794,10 +794,10 @@ Music8_notepitch: ; 21ce9 (8:5ce9)
add hl, bc add hl, bc
ld d, [hl] ld d, [hl]
ld b, $2 ld b, $2
call Music8_21ff7 call Audio2_21ff7
ld [hl], d ld [hl], d
call Music8_21daa call Audio2_21daa
call Music8_21d79 call Audio2_21d79
pop de pop de
ld b, $0 ld b, $0
ld hl, wc02e ld hl, wc02e
@ -811,10 +811,10 @@ Music8_notepitch: ; 21ce9 (8:5ce9)
ld hl, wc066 ld hl, wc066
add hl, bc add hl, bc
ld [hl], e ld [hl], e
call Music8_21dcc call Audio2_21dcc
ret ret
Music8_21d79: ; 21d79 (8:5d79) Audio2_21d79: ; 21d79 (8:5d79)
ld b, $0 ld b, $0
ld hl, Unknown_222e6 ld hl, Unknown_222e6
add hl, bc add hl, bc
@ -848,7 +848,7 @@ Music8_21d79: ; 21d79 (8:5d79)
ld [$ff25], a ld [$ff25], a
ret ret
Music8_21daa: ; 21daa (8:5daa) Audio2_21daa: ; 21daa (8:5daa)
ld b, $0 ld b, $0
ld hl, wc0b6 ld hl, wc0b6
add hl, bc add hl, bc
@ -868,11 +868,11 @@ Music8_21daa: ; 21daa (8:5daa)
ld d, a ld d, a
.channel3 .channel3
ld b, $1 ld b, $1
call Music8_21ff7 call Audio2_21ff7
ld [hl], d ld [hl], d
ret ret
Music8_21dcc: ; 21dcc (8:5dcc) Audio2_21dcc: ; 21dcc (8:5dcc)
ld a, c ld a, c
cp CH2 cp CH2
jr z, .channel3 jr z, .channel3
@ -890,7 +890,7 @@ Music8_21dcc: ; 21dcc (8:5dcc)
add a add a
ld d, $0 ld d, $0
ld e, a ld e, a
ld hl, Music8_WavePointers ld hl, Audio2_WavePointers
add hl, de add hl, de
ld e, [hl] ld e, [hl]
inc hl inc hl
@ -916,18 +916,18 @@ Music8_21dcc: ; 21dcc (8:5dcc)
and $c7 and $c7
ld d, a ld d, a
ld b, $3 ld b, $3
call Music8_21ff7 call Audio2_21ff7
ld [hl], e ld [hl], e
inc hl inc hl
ld [hl], d ld [hl], d
ld a, c ld a, c
cp CH4 cp CH4
jr c, .musicChannel jr c, .musicChannel
call Music8_21e56 call Audio2_21e56
.musicChannel .musicChannel
ret ret
Music8_21e19: ; 21e19 (8:5e19) Audio2_21e19: ; 21e19 (8:5e19)
ld a, c ld a, c
cp CH4 cp CH4
jr nz, .asm_21e2e jr nz, .asm_21e2e
@ -941,10 +941,10 @@ Music8_21e19: ; 21e19 (8:5e19)
.asm_21e2e .asm_21e2e
ret ret
Music8_21e2f: ; 21e2f (8:5e2f) Audio2_21e2f: ; 21e2f (8:5e2f)
call Music8_21e8b call Audio2_21e8b
jr c, .asm_21e39 jr c, .asm_21e39
call Music8_21e9f call Audio2_21e9f
jr nc, .asm_21e4c jr nc, .asm_21e4c
.asm_21e39 .asm_21e39
ld d, $0 ld d, $0
@ -965,10 +965,10 @@ Music8_21e2f: ; 21e2f (8:5e2f)
.asm_21e55 .asm_21e55
ret ret
Music8_21e56: ; 21e56 (8:5e56) Audio2_21e56: ; 21e56 (8:5e56)
call Music8_21e8b call Audio2_21e8b
jr c, .asm_21e60 jr c, .asm_21e60
call Music8_21e9f call Audio2_21e9f
jr nc, .asm_21e6c jr nc, .asm_21e6c
.asm_21e60 .asm_21e60
ld a, [wc0f1] ld a, [wc0f1]
@ -984,8 +984,8 @@ Music8_21e56: ; 21e56 (8:5e56)
.asm_21e6c .asm_21e6c
ret ret
Music8_21e6d: ; 21e6d (8:5e6d) Audio2_21e6d: ; 21e6d (8:5e6d)
call Music8_21e8b call Audio2_21e8b
jr nc, .asm_21e88 jr nc, .asm_21e88
ld hl, wc006 ld hl, wc006
ld e, c ld e, c
@ -1007,7 +1007,7 @@ Music8_21e6d: ; 21e6d (8:5e6d)
ccf ccf
ret ret
Music8_21e8b: ; 21e8b (8:5e8b) Audio2_21e8b: ; 21e8b (8:5e8b)
ld a, [wc02a] ld a, [wc02a]
cp $14 cp $14
jr nc, .asm_21e94 jr nc, .asm_21e94
@ -1024,7 +1024,7 @@ Music8_21e8b: ; 21e8b (8:5e8b)
scf scf
ret ret
Music8_21e9f: ; 21e9f (8:5e9f) Audio2_21e9f: ; 21e9f (8:5e9f)
ld a, [wc02d] ld a, [wc02d]
ld b, a ld b, a
ld a, [wc02a] ld a, [wc02a]
@ -1044,7 +1044,7 @@ Music8_21e9f: ; 21e9f (8:5e9f)
scf scf
ret ret
Music8_ApplyPitchBend: ; 21eb8 (8:5eb8) Audio2_ApplyPitchBend: ; 21eb8 (8:5eb8)
ld hl, wc02e ld hl, wc02e
add hl, bc add hl, bc
bit 5, [hl] bit 5, [hl]
@ -1134,7 +1134,7 @@ Music8_ApplyPitchBend: ; 21eb8 (8:5eb8)
add hl, bc add hl, bc
ld [hl], d ld [hl], d
ld b, $3 ld b, $3
call Music8_21ff7 call Audio2_21ff7
ld a, e ld a, e
ld [hli], a ld [hli], a
ld [hl], d ld [hl], d
@ -1146,7 +1146,7 @@ Music8_ApplyPitchBend: ; 21eb8 (8:5eb8)
res 5, [hl] res 5, [hl]
ret ret
Music8_21f4e: ; 21f4e (8:5f4e) Audio2_21f4e: ; 21f4e (8:5f4e)
ld hl, wc096 ld hl, wc096
add hl, bc add hl, bc
ld [hl], d ld [hl], d
@ -1235,7 +1235,7 @@ Music8_21f4e: ; 21f4e (8:5f4e)
ld [hl], a ld [hl], a
ret ret
Music8_ApplyDutyCycle: ; 21fcc (8:5fcc) Audio2_ApplyDutyCycle: ; 21fcc (8:5fcc)
ld b, $0 ld b, $0
ld hl, wc046 ld hl, wc046
add hl, bc add hl, bc
@ -1246,14 +1246,14 @@ Music8_ApplyDutyCycle: ; 21fcc (8:5fcc)
and $c0 and $c0
ld d, a ld d, a
ld b, $1 ld b, $1
call Music8_21ff7 call Audio2_21ff7
ld a, [hl] ld a, [hl]
and $3f and $3f
or d or d
ld [hl], a ld [hl], a
ret ret
Music8_GetNextMusicByte: ; 21fe4 (8:5fe4) Audio2_GetNextMusicByte: ; 21fe4 (8:5fe4)
ld d, $0 ld d, $0
ld a, c ld a, c
add a add a
@ -1271,7 +1271,7 @@ Music8_GetNextMusicByte: ; 21fe4 (8:5fe4)
ld [hl], d ld [hl], d
ret ret
Music8_21ff7: ; 21ff7 (8:5ff7) Audio2_21ff7: ; 21ff7 (8:5ff7)
ld a, c ld a, c
ld hl, Unknown_222d6 ld hl, Unknown_222d6
add l add l
@ -1285,7 +1285,7 @@ Music8_21ff7: ; 21ff7 (8:5ff7)
ld h, $ff ld h, $ff
ret ret
Music8_22006: ; 22006 (8:6006) Audio2_22006: ; 22006 (8:6006)
ld h, $0 ld h, $0
.loop .loop
srl a srl a
@ -1300,13 +1300,13 @@ Music8_22006: ; 22006 (8:6006)
.done .done
ret ret
Music8_22017: ; 22017 (8:6017) Audio2_22017: ; 22017 (8:6017)
ld h, $0 ld h, $0
ld l, a ld l, a
add hl, hl add hl, hl
ld d, h ld d, h
ld e, l ld e, l
ld hl, Music8_Pitches ld hl, Audio2_Pitches
add hl, de add hl, de
ld e, [hl] ld e, [hl]
inc hl inc hl
@ -1325,16 +1325,16 @@ Music8_22017: ; 22017 (8:6017)
ld d, a ld d, a
ret ret
Music8_22035:: ; 22035 (8:6035) Audio2_22035:: ; 22035 (8:6035)
ld [wc001], a ld [wc001], a
cp $ff cp $ff
jp z, Music8_221f3 jp z, Audio2_221f3
cp $e9 cp $e9
jp z, Music8_2210d jp z, Audio2_2210d
jp c, Music8_2210d jp c, Audio2_2210d
cp $fe cp $fe
jr z, .asm_2204c jr z, .asm_2204c
jp nc, Music8_2210d jp nc, Audio2_2210d
.asm_2204c .asm_2204c
xor a xor a
ld [wc000], a ld [wc000], a
@ -1344,53 +1344,53 @@ Music8_22035:: ; 22035 (8:6035)
ld [wc0e7], a ld [wc0e7], a
ld d, $8 ld d, $8
ld hl, wc016 ld hl, wc016
call FillMusicRAM8 call FillAudioRAM2
ld hl, wc006 ld hl, wc006
call FillMusicRAM8 call FillAudioRAM2
ld d, $4 ld d, $4
ld hl, wc026 ld hl, wc026
call FillMusicRAM8 call FillAudioRAM2
ld hl, wc02e ld hl, wc02e
call FillMusicRAM8 call FillAudioRAM2
ld hl, wc03e ld hl, wc03e
call FillMusicRAM8 call FillAudioRAM2
ld hl, wc046 ld hl, wc046
call FillMusicRAM8 call FillAudioRAM2
ld hl, wc04e ld hl, wc04e
call FillMusicRAM8 call FillAudioRAM2
ld hl, wc056 ld hl, wc056
call FillMusicRAM8 call FillAudioRAM2
ld hl, wc05e ld hl, wc05e
call FillMusicRAM8 call FillAudioRAM2
ld hl, wc066 ld hl, wc066
call FillMusicRAM8 call FillAudioRAM2
ld hl, wc06e ld hl, wc06e
call FillMusicRAM8 call FillAudioRAM2
ld hl, wc036 ld hl, wc036
call FillMusicRAM8 call FillAudioRAM2
ld hl, wc076 ld hl, wc076
call FillMusicRAM8 call FillAudioRAM2
ld hl, wc07e ld hl, wc07e
call FillMusicRAM8 call FillAudioRAM2
ld hl, wc086 ld hl, wc086
call FillMusicRAM8 call FillAudioRAM2
ld hl, wc08e ld hl, wc08e
call FillMusicRAM8 call FillAudioRAM2
ld hl, wc096 ld hl, wc096
call FillMusicRAM8 call FillAudioRAM2
ld hl, wc09e ld hl, wc09e
call FillMusicRAM8 call FillAudioRAM2
ld hl, wc0a6 ld hl, wc0a6
call FillMusicRAM8 call FillAudioRAM2
ld hl, wc0ae ld hl, wc0ae
call FillMusicRAM8 call FillAudioRAM2
ld a, $1 ld a, $1
ld hl, wc0be ld hl, wc0be
call FillMusicRAM8 call FillAudioRAM2
ld hl, wc0b6 ld hl, wc0b6
call FillMusicRAM8 call FillAudioRAM2
ld hl, wc0c6 ld hl, wc0c6
call FillMusicRAM8 call FillAudioRAM2
ld [wc0e8], a ld [wc0e8], a
ld a, $ff ld a, $ff
ld [wc004], a ld [wc004], a
@ -1406,16 +1406,16 @@ Music8_22035:: ; 22035 (8:6035)
ld [$ff1a], a ld [$ff1a], a
ld a, $77 ld a, $77
ld [$ff24], a ld [$ff24], a
jp Music8_2224e jp Audio2_2224e
Music8_2210d: ; 2210d (8:610d) Audio2_2210d: ; 2210d (8:610d)
ld l, a ld l, a
ld e, a ld e, a
ld h, $0 ld h, $0
ld d, h ld d, h
add hl, hl add hl, hl
add hl, de add hl, de
ld de, SFX_Headers_08 ld de, SFX_Headers_2
add hl, de add hl, de
ld a, h ld a, h
ld [wc0ec], a ld [wc0ec], a
@ -1555,11 +1555,11 @@ Music8_2210d: ; 2210d (8:610d)
.asm_221ea .asm_221ea
ld a, c ld a, c
and a and a
jp z, Music8_2224e jp z, Audio2_2224e
dec c dec c
jp .asm_22126 jp .asm_22126
Music8_221f3: ; 221f3 (8:61f3) Audio2_221f3: ; 221f3 (8:61f3)
ld a, $80 ld a, $80
ld [$ff26], a ld [$ff26], a
ld [$ff1a], a ld [$ff1a], a
@ -1587,11 +1587,11 @@ Music8_221f3: ; 221f3 (8:61f3)
ld [wc0e7], a ld [wc0e7], a
ld d, $a0 ld d, $a0
ld hl, wc006 ld hl, wc006
call FillMusicRAM8 call FillAudioRAM2
ld a, $1 ld a, $1
ld d, $18 ld d, $18
ld hl, wc0b6 ld hl, wc0b6
call FillMusicRAM8 call FillAudioRAM2
ld [wc0e8], a ld [wc0e8], a
ld [wc0ea], a ld [wc0ea], a
ld a, $ff ld a, $ff
@ -1599,7 +1599,7 @@ Music8_221f3: ; 221f3 (8:61f3)
ret ret
; fills d bytes at hl with a ; fills d bytes at hl with a
FillMusicRAM8: ; 22248 (8:6248) FillAudioRAM2: ; 22248 (8:6248)
ld b, d ld b, d
.loop .loop
ld [hli], a ld [hli], a
@ -1607,7 +1607,7 @@ FillMusicRAM8: ; 22248 (8:6248)
jr nz, .loop jr nz, .loop
ret ret
Music8_2224e: ; 2224e (8:624e) Audio2_2224e: ; 2224e (8:624e)
ld a, [wc001] ld a, [wc001]
ld l, a ld l, a
ld e, a ld e, a
@ -1615,7 +1615,7 @@ Music8_2224e: ; 2224e (8:624e)
ld d, h ld d, h
add hl, hl add hl, hl
add hl, de add hl, de
ld de, SFX_Headers_08 ld de, SFX_Headers_2
add hl, de add hl, de
ld e, l ld e, l
ld d, h ld d, h
@ -1688,7 +1688,7 @@ Music8_2224e: ; 2224e (8:624e)
ld [hli], a ld [hli], a
ld [hl], a ld [hl], a
ld hl, wc012 ; sfx noise channel pointer ld hl, wc012 ; sfx noise channel pointer
ld de, Noise8_endchannel ld de, Noise2_endchannel
ld [hl], e ld [hl], e
inc hl inc hl
ld [hl], d ; overwrite pointer to point to endchannel ld [hl], d ; overwrite pointer to point to endchannel
@ -1702,7 +1702,7 @@ Music8_2224e: ; 2224e (8:624e)
.asm_222d4 .asm_222d4
ret ret
Noise8_endchannel: ; 222d5 (8:62d5) Noise2_endchannel: ; 222d5 (8:62d5)
endchannel endchannel
Unknown_222d6: ; 222d6 (8:62d6) Unknown_222d6: ; 222d6 (8:62d6)
@ -1717,7 +1717,7 @@ Unknown_222e6: ; 222e6 (8:62e6)
db $11, $22, $44, $88 ; channels 0-3 db $11, $22, $44, $88 ; channels 0-3
db $11, $22, $44, $88 ; channels 4-7 db $11, $22, $44, $88 ; channels 4-7
Music8_Pitches: ; 222ee (8:62ee) Audio2_Pitches: ; 222ee (8:62ee)
dw $F82C ; C_ dw $F82C ; C_
dw $F89D ; C# dw $F89D ; C#
dw $F907 ; D_ dw $F907 ; D_

View file

@ -1,6 +1,6 @@
; The third of three duplicated sound engines. ; The third of three duplicated sound engines.
Music1f_UpdateMusic:: ; 7d177 (1f:5177) Audio3_UpdateMusic:: ; 7d177 (1f:5177)
ld c, CH0 ld c, CH0
.loop .loop
ld b, $0 ld b, $0
@ -26,7 +26,7 @@ Music1f_UpdateMusic:: ; 7d177 (1f:5177)
ld [$ff1a], a ld [$ff1a], a
jr .nextChannel jr .nextChannel
.applyAffects .applyAffects
call Music1f_ApplyMusicAffects call Audio3_ApplyMusicAffects
.nextChannel .nextChannel
ld a, c ld a, c
inc c ; inc channel number inc c ; inc channel number
@ -42,13 +42,13 @@ Music1f_UpdateMusic:: ; 7d177 (1f:5177)
; 3: a toggle used only by this routine for vibrato ; 3: a toggle used only by this routine for vibrato
; 4: pitchbend flag ; 4: pitchbend flag
; 6: dutycycle flag ; 6: dutycycle flag
Music1f_ApplyMusicAffects: ; 7d1ac (1f:51ac) Audio3_ApplyMusicAffects: ; 7d1ac (1f:51ac)
ld b, $0 ld b, $0
ld hl, wc0b6 ; delay until next note ld hl, wc0b6 ; delay until next note
add hl, bc add hl, bc
ld a, [hl] ld a, [hl]
cp $1 ; if delay is 1, play next note cp $1 ; if delay is 1, play next note
jp z, Music1f_PlayNextNote jp z, Audio3_PlayNextNote
dec a ; otherwise, decrease the delay timer dec a ; otherwise, decrease the delay timer
ld [hl], a ld [hl], a
ld a, c ld a, c
@ -65,7 +65,7 @@ Music1f_ApplyMusicAffects: ; 7d1ac (1f:51ac)
add hl, bc add hl, bc
bit 6, [hl] ; dutycycle bit 6, [hl] ; dutycycle
jr z, .checkForExecuteMusic jr z, .checkForExecuteMusic
call Music1f_ApplyDutyCycle call Audio3_ApplyDutyCycle
.checkForExecuteMusic .checkForExecuteMusic
ld b, $0 ld b, $0
ld hl, wc036 ld hl, wc036
@ -81,7 +81,7 @@ Music1f_ApplyMusicAffects: ; 7d1ac (1f:51ac)
add hl, bc add hl, bc
bit 4, [hl] ; pitchbend bit 4, [hl] ; pitchbend
jr z, .checkVibratoDelay jr z, .checkVibratoDelay
jp Music1f_ApplyPitchBend jp Audio3_ApplyPitchBend
.checkVibratoDelay .checkVibratoDelay
ld hl, wc04e ; vibrato delay ld hl, wc04e ; vibrato delay
add hl, bc add hl, bc
@ -141,14 +141,14 @@ Music1f_ApplyMusicAffects: ; 7d1ac (1f:51ac)
.done .done
ld d, a ld d, a
ld b, $3 ld b, $3
call Music1f_7d8ac call Audio3_7d8ac
ld [hl], d ld [hl], d
ret ret
; this routine executes all music commands that take up no time, ; this routine executes all music commands that take up no time,
; like tempo changes, duty changes etc. and doesn't return ; like tempo changes, duty changes etc. and doesn't return
; until the first note is reached ; until the first note is reached
Music1f_PlayNextNote: ; 7d244 (1f:5244) Audio3_PlayNextNote: ; 7d244 (1f:5244)
ld hl, wc06e ld hl, wc06e
add hl, bc add hl, bc
ld a, [hl] ld a, [hl]
@ -159,14 +159,14 @@ Music1f_PlayNextNote: ; 7d244 (1f:5244)
add hl, bc add hl, bc
res 4, [hl] res 4, [hl]
res 5, [hl] res 5, [hl]
call Music1f_endchannel call Audio3_endchannel
ret ret
Music1f_endchannel: ; 7d25a (1f:525a) Audio3_endchannel: ; 7d25a (1f:525a)
call Music1f_GetNextMusicByte call Audio3_GetNextMusicByte
ld d, a ld d, a
cp $ff ; is this command an endchannel? cp $ff ; is this command an endchannel?
jp nz, Music1f_callchannel ; no jp nz, Audio3_callchannel ; no
ld b, $0 ; yes ld b, $0 ; yes
ld hl, wc02e ld hl, wc02e
add hl, bc add hl, bc
@ -216,7 +216,7 @@ Music1f_endchannel: ; 7d25a (1f:525a)
inc de inc de
ld a, [de] ld a, [de]
ld [hl], a ; loads channel address to return to ld [hl], a ; loads channel address to return to
jp Music1f_endchannel jp Audio3_endchannel
.asm_7d2b3 .asm_7d2b3
ld hl, Unknown_7db93 ld hl, Unknown_7db93
add hl, bc add hl, bc
@ -238,7 +238,7 @@ Music1f_endchannel: ; 7d25a (1f:525a)
ld a, c ld a, c
cp CH4 cp CH4
jr z, .asm_7d2d9 jr z, .asm_7d2d9
call Music1f_7d73b call Audio3_7d73b
ret c ret c
.asm_7d2d9 .asm_7d2d9
ld a, [wc005] ld a, [wc005]
@ -251,12 +251,12 @@ Music1f_endchannel: ; 7d25a (1f:525a)
ld [hl], b ld [hl], b
ret ret
Music1f_callchannel: ; 7d2e8 (1f:52e8) Audio3_callchannel: ; 7d2e8 (1f:52e8)
cp $fd ; is this command a callchannel? cp $fd ; is this command a callchannel?
jp nz, Music1f_loopchannel ; no jp nz, Audio3_loopchannel ; no
call Music1f_GetNextMusicByte ; yes call Audio3_GetNextMusicByte ; yes
push af push af
call Music1f_GetNextMusicByte call Audio3_GetNextMusicByte
ld d, a ld d, a
pop af pop af
ld e, a ld e, a
@ -286,12 +286,12 @@ Music1f_callchannel: ; 7d2e8 (1f:52e8)
ld hl, wc02e ld hl, wc02e
add hl, bc add hl, bc
set 1, [hl] ; set the call flag set 1, [hl] ; set the call flag
jp Music1f_endchannel jp Audio3_endchannel
Music1f_loopchannel: ; 7d31d (1f:531d) Audio3_loopchannel: ; 7d31d (1f:531d)
cp $fe ; is this command a loopchannel? cp $fe ; is this command a loopchannel?
jp nz, Music1f_notetype ; no jp nz, Audio3_notetype ; no
call Music1f_GetNextMusicByte ; yes call Audio3_GetNextMusicByte ; yes
ld e, a ld e, a
and a and a
jr z, .infiniteLoop jr z, .infiniteLoop
@ -303,17 +303,17 @@ Music1f_loopchannel: ; 7d31d (1f:531d)
jr nz, .loopAgain jr nz, .loopAgain
ld a, $1 ; if no more loops to make ld a, $1 ; if no more loops to make
ld [hl], a ld [hl], a
call Music1f_GetNextMusicByte ; skip pointer call Audio3_GetNextMusicByte ; skip pointer
call Music1f_GetNextMusicByte call Audio3_GetNextMusicByte
jp Music1f_endchannel jp Audio3_endchannel
.loopAgain ; inc loop count .loopAgain ; inc loop count
inc a inc a
ld [hl], a ld [hl], a
; fall through ; fall through
.infiniteLoop ; overwrite current address with pointer .infiniteLoop ; overwrite current address with pointer
call Music1f_GetNextMusicByte call Audio3_GetNextMusicByte
push af push af
call Music1f_GetNextMusicByte call Audio3_GetNextMusicByte
ld b, a ld b, a
ld d, $0 ld d, $0
ld a, c ld a, c
@ -324,12 +324,12 @@ Music1f_loopchannel: ; 7d31d (1f:531d)
pop af pop af
ld [hli], a ld [hli], a
ld [hl], b ld [hl], b
jp Music1f_endchannel jp Audio3_endchannel
Music1f_notetype: ; 7d358 (1f:5358) Audio3_notetype: ; 7d358 (1f:5358)
and $f0 and $f0
cp $d0 ; is this command a notetype? cp $d0 ; is this command a notetype?
jp nz, Music1f_toggleperfectpitch ; no jp nz, Audio3_toggleperfectpitch ; no
ld a, d ; yes ld a, d ; yes
and $f and $f
ld b, $0 ld b, $0
@ -339,7 +339,7 @@ Music1f_notetype: ; 7d358 (1f:5358)
ld a, c ld a, c
cp CH3 cp CH3
jr z, .noiseChannel ; noise channel has 0 params jr z, .noiseChannel ; noise channel has 0 params
call Music1f_GetNextMusicByte call Audio3_GetNextMusicByte
ld d, a ld d, a
ld a, c ld a, c
cp CH2 cp CH2
@ -368,24 +368,24 @@ Music1f_notetype: ; 7d358 (1f:5358)
add hl, bc add hl, bc
ld [hl], d ld [hl], d
.noiseChannel .noiseChannel
jp Music1f_endchannel jp Audio3_endchannel
Music1f_toggleperfectpitch: ; 7d397 (1f:5397) Audio3_toggleperfectpitch: ; 7d397 (1f:5397)
ld a, d ld a, d
cp $e8 ; is this command a toggleperfectpitch? cp $e8 ; is this command a toggleperfectpitch?
jr nz, Music1f_vibrato ; no jr nz, Audio3_vibrato ; no
ld b, $0 ; yes ld b, $0 ; yes
ld hl, wc02e ld hl, wc02e
add hl, bc add hl, bc
ld a, [hl] ld a, [hl]
xor $1 xor $1
ld [hl], a ; flip bit 0 of wc02e ld [hl], a ; flip bit 0 of wc02e
jp Music1f_endchannel jp Audio3_endchannel
Music1f_vibrato: ; 7d3a9 (1f:53a9) Audio3_vibrato: ; 7d3a9 (1f:53a9)
cp $ea ; is this command a vibrato? cp $ea ; is this command a vibrato?
jr nz, Music1f_pitchbend ; no jr nz, Audio3_pitchbend ; no
call Music1f_GetNextMusicByte ; yes call Audio3_GetNextMusicByte ; yes
ld b, $0 ld b, $0
ld hl, wc04e ld hl, wc04e
add hl, bc add hl, bc
@ -393,7 +393,7 @@ Music1f_vibrato: ; 7d3a9 (1f:53a9)
ld hl, wc06e ld hl, wc06e
add hl, bc add hl, bc
ld [hl], a ; store delay ld [hl], a ; store delay
call Music1f_GetNextMusicByte call Audio3_GetNextMusicByte
ld d, a ld d, a
and $f0 and $f0
swap a swap a
@ -414,24 +414,24 @@ Music1f_vibrato: ; 7d3a9 (1f:53a9)
swap a swap a
or d or d
ld [hl], a ; store depth as both high and low nibbles ld [hl], a ; store depth as both high and low nibbles
jp Music1f_endchannel jp Audio3_endchannel
Music1f_pitchbend: ; 7d3e1 (1f:53e1) Audio3_pitchbend: ; 7d3e1 (1f:53e1)
cp $eb ; is this command a pitchbend? cp $eb ; is this command a pitchbend?
jr nz, Music1f_duty ; no jr nz, Audio3_duty ; no
call Music1f_GetNextMusicByte ; yes call Audio3_GetNextMusicByte ; yes
ld b, $0 ld b, $0
ld hl, wc076 ld hl, wc076
add hl, bc add hl, bc
ld [hl], a ; store first param ld [hl], a ; store first param
call Music1f_GetNextMusicByte call Audio3_GetNextMusicByte
ld d, a ld d, a
and $f0 and $f0
swap a swap a
ld b, a ld b, a
ld a, d ld a, d
and $f and $f
call Music1f_7d8cc call Audio3_7d8cc
ld b, $0 ld b, $0
ld hl, wc0a6 ld hl, wc0a6
add hl, bc add hl, bc
@ -443,14 +443,14 @@ Music1f_pitchbend: ; 7d3e1 (1f:53e1)
ld hl, wc02e ld hl, wc02e
add hl, bc add hl, bc
set 4, [hl] ; set pitchbend flag set 4, [hl] ; set pitchbend flag
call Music1f_GetNextMusicByte call Audio3_GetNextMusicByte
ld d, a ld d, a
jp Music1f_notelength jp Audio3_notelength
Music1f_duty: ; 7d419 (1f:5419) Audio3_duty: ; 7d419 (1f:5419)
cp $ec ; is this command a duty? cp $ec ; is this command a duty?
jr nz, Music1f_tempo ; no jr nz, Audio3_tempo ; no
call Music1f_GetNextMusicByte ; yes call Audio3_GetNextMusicByte ; yes
rrca rrca
rrca rrca
and $c0 and $c0
@ -458,17 +458,17 @@ Music1f_duty: ; 7d419 (1f:5419)
ld hl, wc03e ld hl, wc03e
add hl, bc add hl, bc
ld [hl], a ; store duty ld [hl], a ; store duty
jp Music1f_endchannel jp Audio3_endchannel
Music1f_tempo: ; 7d42e (1f:542e) Audio3_tempo: ; 7d42e (1f:542e)
cp $ed ; is this command a tempo? cp $ed ; is this command a tempo?
jr nz, Music1f_stereopanning ; no jr nz, Audio3_stereopanning ; no
ld a, c ; yes ld a, c ; yes
cp CH4 cp CH4
jr nc, .sfxChannel jr nc, .sfxChannel
call Music1f_GetNextMusicByte call Audio3_GetNextMusicByte
ld [wc0e8], a ; store first param ld [wc0e8], a ; store first param
call Music1f_GetNextMusicByte call Audio3_GetNextMusicByte
ld [wc0e9], a ; store second param ld [wc0e9], a ; store second param
xor a xor a
ld [wc0ce], a ; clear RAM ld [wc0ce], a ; clear RAM
@ -477,9 +477,9 @@ Music1f_tempo: ; 7d42e (1f:542e)
ld [wc0d1], a ld [wc0d1], a
jr .musicChannelDone jr .musicChannelDone
.sfxChannel .sfxChannel
call Music1f_GetNextMusicByte call Audio3_GetNextMusicByte
ld [wc0ea], a ; store first param ld [wc0ea], a ; store first param
call Music1f_GetNextMusicByte call Audio3_GetNextMusicByte
ld [wc0eb], a ; store second param ld [wc0eb], a ; store second param
xor a xor a
ld [wc0d2], a ; clear RAM ld [wc0d2], a ; clear RAM
@ -487,22 +487,22 @@ Music1f_tempo: ; 7d42e (1f:542e)
ld [wc0d4], a ld [wc0d4], a
ld [wc0d5], a ld [wc0d5], a
.musicChannelDone .musicChannelDone
jp Music1f_endchannel jp Audio3_endchannel
Music1f_stereopanning: ; 7d46e (1f:546e) Audio3_stereopanning: ; 7d46e (1f:546e)
cp $ee ; is this command a stereopanning? cp $ee ; is this command a stereopanning?
jr nz, Music1f_unknownmusic0xef ; no jr nz, Audio3_unknownmusic0xef ; no
call Music1f_GetNextMusicByte ; yes call Audio3_GetNextMusicByte ; yes
ld [wc004], a ; store panning ld [wc004], a ; store panning
jp Music1f_endchannel jp Audio3_endchannel
; this appears to never be used ; this appears to never be used
Music1f_unknownmusic0xef: ; 7d47b (1f:547b) Audio3_unknownmusic0xef: ; 7d47b (1f:547b)
cp $ef ; is this command an unknownmusic0xef? cp $ef ; is this command an unknownmusic0xef?
jr nz, Music1f_dutycycle ; no jr nz, Audio3_dutycycle ; no
call Music1f_GetNextMusicByte ; yes call Audio3_GetNextMusicByte ; yes
push bc push bc
call Music1f_7d8ea call Audio3_7d8ea
pop bc pop bc
ld a, [wc003] ld a, [wc003]
and a and a
@ -512,12 +512,12 @@ Music1f_unknownmusic0xef: ; 7d47b (1f:547b)
xor a xor a
ld [wc02d], a ld [wc02d], a
.skip .skip
jp Music1f_endchannel jp Audio3_endchannel
Music1f_dutycycle: ; 7d49a (1f:549a) Audio3_dutycycle: ; 7d49a (1f:549a)
cp $fc ; is this command a dutycycle? cp $fc ; is this command a dutycycle?
jr nz, Music1f_volume ; no jr nz, Audio3_volume ; no
call Music1f_GetNextMusicByte ; yes call Audio3_GetNextMusicByte ; yes
ld b, $0 ld b, $0
ld hl, wc046 ld hl, wc046
add hl, bc add hl, bc
@ -529,48 +529,48 @@ Music1f_dutycycle: ; 7d49a (1f:549a)
ld hl, wc02e ld hl, wc02e
add hl, bc add hl, bc
set 6, [hl] ; set duty flag set 6, [hl] ; set duty flag
jp Music1f_endchannel jp Audio3_endchannel
Music1f_volume: ; 7d4b8 (1f:54b8) Audio3_volume: ; 7d4b8 (1f:54b8)
cp $f0 ; is this command a volume? cp $f0 ; is this command a volume?
jr nz, Music1f_executemusic ; no jr nz, Audio3_executemusic ; no
call Music1f_GetNextMusicByte ; yes call Audio3_GetNextMusicByte ; yes
ld [$ff24], a ; store volume ld [$ff24], a ; store volume
jp Music1f_endchannel jp Audio3_endchannel
Music1f_executemusic: ; 7d4c4 (1f:54c4) Audio3_executemusic: ; 7d4c4 (1f:54c4)
cp $f8 ; is this command an executemusic? cp $f8 ; is this command an executemusic?
jr nz, Music1f_octave ; no jr nz, Audio3_octave ; no
ld b, $0 ; yes ld b, $0 ; yes
ld hl, wc036 ld hl, wc036
add hl, bc add hl, bc
set 0, [hl] set 0, [hl]
jp Music1f_endchannel jp Audio3_endchannel
Music1f_octave: ; 7d4d3 (1f:54d3) Audio3_octave: ; 7d4d3 (1f:54d3)
and $f0 and $f0
cp $e0 ; is this command an octave? cp $e0 ; is this command an octave?
jr nz, Music1f_unknownsfx0x20 ; no jr nz, Audio3_unknownsfx0x20 ; no
ld hl, wc0d6 ; yes ld hl, wc0d6 ; yes
ld b, $0 ld b, $0
add hl, bc add hl, bc
ld a, d ld a, d
and $f and $f
ld [hl], a ; store low nibble as octave ld [hl], a ; store low nibble as octave
jp Music1f_endchannel jp Audio3_endchannel
Music1f_unknownsfx0x20: ; 7d4e6 (1f:54e6) Audio3_unknownsfx0x20: ; 7d4e6 (1f:54e6)
cp $20 ; is this command an unknownsfx0x20? cp $20 ; is this command an unknownsfx0x20?
jr nz, Music1f_unknownsfx0x10 ; no jr nz, Audio3_unknownsfx0x10 ; no
ld a, c ld a, c
cp CH3 ; is this a noise or sfx channel? cp CH3 ; is this a noise or sfx channel?
jr c, Music1f_unknownsfx0x10 ; no jr c, Audio3_unknownsfx0x10 ; no
ld b, $0 ld b, $0
ld hl, wc036 ld hl, wc036
add hl, bc add hl, bc
bit 0, [hl] bit 0, [hl]
jr nz, Music1f_unknownsfx0x10 ; no jr nz, Audio3_unknownsfx0x10 ; no
call Music1f_notelength ; yes call Audio3_notelength ; yes
ld d, a ld d, a
ld b, $0 ld b, $0
ld hl, wc03e ld hl, wc03e
@ -579,56 +579,56 @@ Music1f_unknownsfx0x20: ; 7d4e6 (1f:54e6)
or d or d
ld d, a ld d, a
ld b, $1 ld b, $1
call Music1f_7d8ac call Audio3_7d8ac
ld [hl], d ld [hl], d
call Music1f_GetNextMusicByte call Audio3_GetNextMusicByte
ld d, a ld d, a
ld b, $2 ld b, $2
call Music1f_7d8ac call Audio3_7d8ac
ld [hl], d ld [hl], d
call Music1f_GetNextMusicByte call Audio3_GetNextMusicByte
ld e, a ld e, a
ld a, c ld a, c
cp CH7 cp CH7
ld a, $0 ld a, $0
jr z, .sfxNoiseChannel ; only two params for noise channel jr z, .sfxNoiseChannel ; only two params for noise channel
push de push de
call Music1f_GetNextMusicByte call Audio3_GetNextMusicByte
pop de pop de
.sfxNoiseChannel .sfxNoiseChannel
ld d, a ld d, a
push de push de
call Music1f_7d69d call Audio3_7d69d
call Music1f_7d66c call Audio3_7d66c
pop de pop de
call Music1f_7d6bf call Audio3_7d6bf
ret ret
Music1f_unknownsfx0x10: ; 7d533 (1f:5533) Audio3_unknownsfx0x10: ; 7d533 (1f:5533)
ld a, c ld a, c
cp CH4 cp CH4
jr c, Music1f_note ; if not a sfx jr c, Audio3_note ; if not a sfx
ld a, d ld a, d
cp $10 ; is this command an unknownsfx0x10? cp $10 ; is this command an unknownsfx0x10?
jr nz, Music1f_note ; no jr nz, Audio3_note ; no
ld b, $0 ld b, $0
ld hl, wc036 ld hl, wc036
add hl, bc add hl, bc
bit 0, [hl] bit 0, [hl]
jr nz, Music1f_note ; no jr nz, Audio3_note ; no
call Music1f_GetNextMusicByte ; yes call Audio3_GetNextMusicByte ; yes
ld [$ff10], a ld [$ff10], a
jp Music1f_endchannel jp Audio3_endchannel
Music1f_note: ; 7d54f (1f:554f) Audio3_note: ; 7d54f (1f:554f)
ld a, c ld a, c
cp CH3 cp CH3
jr nz, Music1f_notelength ; if not noise channel jr nz, Audio3_notelength ; if not noise channel
ld a, d ld a, d
and $f0 and $f0
cp $b0 ; is this command a dnote? cp $b0 ; is this command a dnote?
jr z, Music1f_dnote ; yes jr z, Audio3_dnote ; yes
jr nc, Music1f_notelength ; no jr nc, Audio3_notelength ; no
swap a swap a
ld b, a ld b, a
ld a, d ld a, d
@ -639,24 +639,24 @@ Music1f_note: ; 7d54f (1f:554f)
push bc push bc
jr asm_7d571 jr asm_7d571
Music1f_dnote: ; 7d569 (1f:5569) Audio3_dnote: ; 7d569 (1f:5569)
ld a, d ld a, d
and $f and $f
push af push af
push bc push bc
call Music1f_GetNextMusicByte ; get dnote instrument call Audio3_GetNextMusicByte ; get dnote instrument
asm_7d571 asm_7d571
ld d, a ld d, a
ld a, [wc003] ld a, [wc003]
and a and a
jr nz, .asm_7d57c jr nz, .asm_7d57c
ld a, d ld a, d
call Music1f_7d8ea call Audio3_7d8ea
.asm_7d57c .asm_7d57c
pop bc pop bc
pop de pop de
Music1f_notelength: ; 7d57e (1f:557e) Audio3_notelength: ; 7d57e (1f:557e)
ld a, d ld a, d
push af push af
and $f and $f
@ -668,7 +668,7 @@ Music1f_notelength: ; 7d57e (1f:557e)
add hl, bc add hl, bc
ld a, [hl] ld a, [hl]
ld l, b ld l, b
call Music1f_7d8bb call Audio3_7d8bb
ld a, c ld a, c
cp CH4 cp CH4
jr nc, .sfxChannel jr nc, .sfxChannel
@ -682,7 +682,7 @@ Music1f_notelength: ; 7d57e (1f:557e)
ld e, $0 ld e, $0
cp CH7 cp CH7
jr z, .skip ; if noise channel jr z, .skip ; if noise channel
call Music1f_7d707 call Audio3_7d707
ld a, [wc0ea] ld a, [wc0ea]
ld d, a ld d, a
ld a, [wc0eb] ld a, [wc0eb]
@ -693,7 +693,7 @@ Music1f_notelength: ; 7d57e (1f:557e)
ld hl, wc0ce ld hl, wc0ce
add hl, bc add hl, bc
ld l, [hl] ld l, [hl]
call Music1f_7d8bb call Audio3_7d8bb
ld e, l ld e, l
ld d, h ld d, h
ld hl, wc0ce ld hl, wc0ce
@ -706,15 +706,15 @@ Music1f_notelength: ; 7d57e (1f:557e)
ld hl, wc036 ld hl, wc036
add hl, bc add hl, bc
bit 0, [hl] bit 0, [hl]
jr nz, Music1f_notepitch jr nz, Audio3_notepitch
ld hl, wc02e ld hl, wc02e
add hl, bc add hl, bc
bit 2, [hl] bit 2, [hl]
jr z, Music1f_notepitch jr z, Audio3_notepitch
pop hl pop hl
ret ret
Music1f_notepitch: ; 7d5dc (1f:55dc) Audio3_notepitch: ; 7d5dc (1f:55dc)
pop af pop af
and $f0 and $f0
cp $c0 ; compare to rest cp $c0 ; compare to rest
@ -744,7 +744,7 @@ Music1f_notepitch: ; 7d5dc (1f:55dc)
jr .quit jr .quit
.notSfxChannel3 .notSfxChannel3
ld b, $2 ld b, $2
call Music1f_7d8ac call Audio3_7d8ac
ld a, $8 ld a, $8
ld [hli], a ld [hli], a
inc hl inc hl
@ -758,13 +758,13 @@ Music1f_notepitch: ; 7d5dc (1f:55dc)
ld hl, wc0d6 ld hl, wc0d6
add hl, bc add hl, bc
ld b, [hl] ld b, [hl]
call Music1f_7d8cc call Audio3_7d8cc
ld b, $0 ld b, $0
ld hl, wc02e ld hl, wc02e
add hl, bc add hl, bc
bit 4, [hl] bit 4, [hl]
jr z, .asm_7d62c jr z, .asm_7d62c
call Music1f_7d803 call Audio3_7d803
.asm_7d62c .asm_7d62c
push de push de
ld a, c ld a, c
@ -787,10 +787,10 @@ Music1f_notepitch: ; 7d5dc (1f:55dc)
add hl, bc add hl, bc
ld d, [hl] ld d, [hl]
ld b, $2 ld b, $2
call Music1f_7d8ac call Audio3_7d8ac
ld [hl], d ld [hl], d
call Music1f_7d69d call Audio3_7d69d
call Music1f_7d66c call Audio3_7d66c
pop de pop de
ld b, $0 ld b, $0
ld hl, wc02e ld hl, wc02e
@ -804,10 +804,10 @@ Music1f_notepitch: ; 7d5dc (1f:55dc)
ld hl, wc066 ld hl, wc066
add hl, bc add hl, bc
ld [hl], e ld [hl], e
call Music1f_7d6bf call Audio3_7d6bf
ret ret
Music1f_7d66c: ; 7d66c (1f:566c) Audio3_7d66c: ; 7d66c (1f:566c)
ld b, $0 ld b, $0
ld hl, Unknown_7db9b ld hl, Unknown_7db9b
add hl, bc add hl, bc
@ -841,7 +841,7 @@ Music1f_7d66c: ; 7d66c (1f:566c)
ld [$ff25], a ld [$ff25], a
ret ret
Music1f_7d69d: ; 7d69d (1f:569d) Audio3_7d69d: ; 7d69d (1f:569d)
ld b, $0 ld b, $0
ld hl, wc0b6 ld hl, wc0b6
add hl, bc add hl, bc
@ -861,11 +861,11 @@ Music1f_7d69d: ; 7d69d (1f:569d)
ld d, a ld d, a
.channel3 .channel3
ld b, $1 ld b, $1
call Music1f_7d8ac call Audio3_7d8ac
ld [hl], d ld [hl], d
ret ret
Music1f_7d6bf: ; 7d6bf (1f:56bf) Audio3_7d6bf: ; 7d6bf (1f:56bf)
ld a, c ld a, c
cp CH2 cp CH2
jr z, .channel3 jr z, .channel3
@ -883,7 +883,7 @@ Music1f_7d6bf: ; 7d6bf (1f:56bf)
add a add a
ld d, $0 ld d, $0
ld e, a ld e, a
ld hl, Music1f_WavePointers ld hl, Audio3_WavePointers
add hl, de add hl, de
ld e, [hl] ld e, [hl]
inc hl inc hl
@ -909,15 +909,15 @@ Music1f_7d6bf: ; 7d6bf (1f:56bf)
and $c7 and $c7
ld d, a ld d, a
ld b, $3 ld b, $3
call Music1f_7d8ac call Audio3_7d8ac
ld [hl], e ld [hl], e
inc hl inc hl
ld [hl], d ld [hl], d
call Music1f_7d729 call Audio3_7d729
ret ret
Music1f_7d707: ; 7d707 (1f:5707) Audio3_7d707: ; 7d707 (1f:5707)
call Music1f_7d759 call Audio3_7d759
jr nc, .asm_7d71f jr nc, .asm_7d71f
ld d, $0 ld d, $0
ld a, [wc0f2] ld a, [wc0f2]
@ -937,8 +937,8 @@ Music1f_7d707: ; 7d707 (1f:5707)
.asm_7d728 .asm_7d728
ret ret
Music1f_7d729: ; 7d729 (1f:5729) Audio3_7d729: ; 7d729 (1f:5729)
call Music1f_7d759 call Audio3_7d759
jr nc, .asm_7d73a jr nc, .asm_7d73a
ld a, [wc0f1] ld a, [wc0f1]
add e add e
@ -953,8 +953,8 @@ Music1f_7d729: ; 7d729 (1f:5729)
.asm_7d73a .asm_7d73a
ret ret
Music1f_7d73b: ; 7d73b (1f:573b) Audio3_7d73b: ; 7d73b (1f:573b)
call Music1f_7d759 call Audio3_7d759
jr nc, .asm_7d756 jr nc, .asm_7d756
ld hl, wc006 ld hl, wc006
ld e, c ld e, c
@ -976,7 +976,7 @@ Music1f_7d73b: ; 7d73b (1f:573b)
ccf ccf
ret ret
Music1f_7d759: ; 7d759 (1f:5759) Audio3_7d759: ; 7d759 (1f:5759)
ld a, [wc02a] ld a, [wc02a]
cp $14 cp $14
jr nc, .asm_7d762 jr nc, .asm_7d762
@ -993,7 +993,7 @@ Music1f_7d759: ; 7d759 (1f:5759)
scf scf
ret ret
Music1f_ApplyPitchBend: ; 7d76d (1f:576d) Audio3_ApplyPitchBend: ; 7d76d (1f:576d)
ld hl, wc02e ld hl, wc02e
add hl, bc add hl, bc
bit 5, [hl] bit 5, [hl]
@ -1083,7 +1083,7 @@ Music1f_ApplyPitchBend: ; 7d76d (1f:576d)
add hl, bc add hl, bc
ld [hl], d ld [hl], d
ld b, $3 ld b, $3
call Music1f_7d8ac call Audio3_7d8ac
ld a, e ld a, e
ld [hli], a ld [hli], a
ld [hl], d ld [hl], d
@ -1095,7 +1095,7 @@ Music1f_ApplyPitchBend: ; 7d76d (1f:576d)
res 5, [hl] res 5, [hl]
ret ret
Music1f_7d803: ; 7d803 (1f:5803) Audio3_7d803: ; 7d803 (1f:5803)
ld hl, wc096 ld hl, wc096
add hl, bc add hl, bc
ld [hl], d ld [hl], d
@ -1184,7 +1184,7 @@ Music1f_7d803: ; 7d803 (1f:5803)
ld [hl], a ld [hl], a
ret ret
Music1f_ApplyDutyCycle: ; 7d881 (1f:5881) Audio3_ApplyDutyCycle: ; 7d881 (1f:5881)
ld b, $0 ld b, $0
ld hl, wc046 ld hl, wc046
add hl, bc add hl, bc
@ -1195,14 +1195,14 @@ Music1f_ApplyDutyCycle: ; 7d881 (1f:5881)
and $c0 and $c0
ld d, a ld d, a
ld b, $1 ld b, $1
call Music1f_7d8ac call Audio3_7d8ac
ld a, [hl] ld a, [hl]
and $3f and $3f
or d or d
ld [hl], a ld [hl], a
ret ret
Music1f_GetNextMusicByte: ; 7d899 (1f:5899) Audio3_GetNextMusicByte: ; 7d899 (1f:5899)
ld d, $0 ld d, $0
ld a, c ld a, c
add a add a
@ -1220,7 +1220,7 @@ Music1f_GetNextMusicByte: ; 7d899 (1f:5899)
ld [hl], d ld [hl], d
ret ret
Music1f_7d8ac: ; 7d8ac (1f:58ac) Audio3_7d8ac: ; 7d8ac (1f:58ac)
ld a, c ld a, c
ld hl, Unknown_7db8b ld hl, Unknown_7db8b
add l add l
@ -1234,7 +1234,7 @@ Music1f_7d8ac: ; 7d8ac (1f:58ac)
ld h, $ff ld h, $ff
ret ret
Music1f_7d8bb: ; 7d8bb (1f:58bb) Audio3_7d8bb: ; 7d8bb (1f:58bb)
ld h, $0 ld h, $0
.loop .loop
srl a srl a
@ -1249,13 +1249,13 @@ Music1f_7d8bb: ; 7d8bb (1f:58bb)
.done .done
ret ret
Music1f_7d8cc: ; 7d8cc (1f:58cc) Audio3_7d8cc: ; 7d8cc (1f:58cc)
ld h, $0 ld h, $0
ld l, a ld l, a
add hl, hl add hl, hl
ld d, h ld d, h
ld e, l ld e, l
ld hl, Music1f_Pitches ld hl, Audio3_Pitches
add hl, de add hl, de
ld e, [hl] ld e, [hl]
inc hl inc hl
@ -1274,16 +1274,16 @@ Music1f_7d8cc: ; 7d8cc (1f:58cc)
ld d, a ld d, a
ret ret
Music1f_7d8ea:: ; 7d8ea (1f:58ea) Audio3_7d8ea:: ; 7d8ea (1f:58ea)
ld [wc001], a ld [wc001], a
cp $ff cp $ff
jp z, Music1f_7daa8 jp z, Audio3_7daa8
cp $c2 cp $c2
jp z, Music1f_7d9c2 jp z, Audio3_7d9c2
jp c, Music1f_7d9c2 jp c, Audio3_7d9c2
cp $fe cp $fe
jr z, .asm_7d901 jr z, .asm_7d901
jp nc, Music1f_7d9c2 jp nc, Audio3_7d9c2
.asm_7d901 .asm_7d901
xor a xor a
ld [wc000], a ld [wc000], a
@ -1293,53 +1293,53 @@ Music1f_7d8ea:: ; 7d8ea (1f:58ea)
ld [wc0e7], a ld [wc0e7], a
ld d, $8 ld d, $8
ld hl, wc016 ld hl, wc016
call FillMusicRAM1f call FillAudioRAM3
ld hl, wc006 ld hl, wc006
call FillMusicRAM1f call FillAudioRAM3
ld d, $4 ld d, $4
ld hl, wc026 ld hl, wc026
call FillMusicRAM1f call FillAudioRAM3
ld hl, wc02e ld hl, wc02e
call FillMusicRAM1f call FillAudioRAM3
ld hl, wc03e ld hl, wc03e
call FillMusicRAM1f call FillAudioRAM3
ld hl, wc046 ld hl, wc046
call FillMusicRAM1f call FillAudioRAM3
ld hl, wc04e ld hl, wc04e
call FillMusicRAM1f call FillAudioRAM3
ld hl, wc056 ld hl, wc056
call FillMusicRAM1f call FillAudioRAM3
ld hl, wc05e ld hl, wc05e
call FillMusicRAM1f call FillAudioRAM3
ld hl, wc066 ld hl, wc066
call FillMusicRAM1f call FillAudioRAM3
ld hl, wc06e ld hl, wc06e
call FillMusicRAM1f call FillAudioRAM3
ld hl, wc036 ld hl, wc036
call FillMusicRAM1f call FillAudioRAM3
ld hl, wc076 ld hl, wc076
call FillMusicRAM1f call FillAudioRAM3
ld hl, wc07e ld hl, wc07e
call FillMusicRAM1f call FillAudioRAM3
ld hl, wc086 ld hl, wc086
call FillMusicRAM1f call FillAudioRAM3
ld hl, wc08e ld hl, wc08e
call FillMusicRAM1f call FillAudioRAM3
ld hl, wc096 ld hl, wc096
call FillMusicRAM1f call FillAudioRAM3
ld hl, wc09e ld hl, wc09e
call FillMusicRAM1f call FillAudioRAM3
ld hl, wc0a6 ld hl, wc0a6
call FillMusicRAM1f call FillAudioRAM3
ld hl, wc0ae ld hl, wc0ae
call FillMusicRAM1f call FillAudioRAM3
ld a, $1 ld a, $1
ld hl, wc0be ld hl, wc0be
call FillMusicRAM1f call FillAudioRAM3
ld hl, wc0b6 ld hl, wc0b6
call FillMusicRAM1f call FillAudioRAM3
ld hl, wc0c6 ld hl, wc0c6
call FillMusicRAM1f call FillAudioRAM3
ld [wc0e8], a ld [wc0e8], a
ld a, $ff ld a, $ff
ld [wc004], a ld [wc004], a
@ -1355,16 +1355,16 @@ Music1f_7d8ea:: ; 7d8ea (1f:58ea)
ld [$ff1a], a ld [$ff1a], a
ld a, $77 ld a, $77
ld [$ff24], a ld [$ff24], a
jp Music1f_7db03 jp Audio3_7db03
Music1f_7d9c2: ; 7d9c2 (1f:59c2) Audio3_7d9c2: ; 7d9c2 (1f:59c2)
ld l, a ld l, a
ld e, a ld e, a
ld h, $0 ld h, $0
ld d, h ld d, h
add hl, hl add hl, hl
add hl, de add hl, de
ld de, SFX_Headers_1f ld de, SFX_Headers_3
add hl, de add hl, de
ld a, h ld a, h
ld [wc0ec], a ld [wc0ec], a
@ -1504,11 +1504,11 @@ Music1f_7d9c2: ; 7d9c2 (1f:59c2)
.asm_7da9f .asm_7da9f
ld a, c ld a, c
and a and a
jp z, Music1f_7db03 jp z, Audio3_7db03
dec c dec c
jp .asm_7d9db jp .asm_7d9db
Music1f_7daa8: ; 7daa8 (1f:5aa8) Audio3_7daa8: ; 7daa8 (1f:5aa8)
ld a, $80 ld a, $80
ld [$ff26], a ld [$ff26], a
ld [$ff1a], a ld [$ff1a], a
@ -1536,11 +1536,11 @@ Music1f_7daa8: ; 7daa8 (1f:5aa8)
ld [wc0e7], a ld [wc0e7], a
ld d, $a0 ld d, $a0
ld hl, wc006 ld hl, wc006
call FillMusicRAM1f call FillAudioRAM3
ld a, $1 ld a, $1
ld d, $18 ld d, $18
ld hl, wc0b6 ld hl, wc0b6
call FillMusicRAM1f call FillAudioRAM3
ld [wc0e8], a ld [wc0e8], a
ld [wc0ea], a ld [wc0ea], a
ld a, $ff ld a, $ff
@ -1548,7 +1548,7 @@ Music1f_7daa8: ; 7daa8 (1f:5aa8)
ret ret
; fills d bytes at hl with a ; fills d bytes at hl with a
FillMusicRAM1f: ; 7dafd (1f:5afd) FillAudioRAM3: ; 7dafd (1f:5afd)
ld b, d ld b, d
.loop .loop
ld [hli], a ld [hli], a
@ -1556,7 +1556,7 @@ FillMusicRAM1f: ; 7dafd (1f:5afd)
jr nz, .loop jr nz, .loop
ret ret
Music1f_7db03: ; 7db03 (1f:5b03) Audio3_7db03: ; 7db03 (1f:5b03)
ld a, [wc001] ld a, [wc001]
ld l, a ld l, a
ld e, a ld e, a
@ -1564,7 +1564,7 @@ Music1f_7db03: ; 7db03 (1f:5b03)
ld d, h ld d, h
add hl, hl add hl, hl
add hl, de add hl, de
ld de, SFX_Headers_1f ld de, SFX_Headers_3
add hl, de add hl, de
ld e, l ld e, l
ld d, h ld d, h
@ -1637,7 +1637,7 @@ Music1f_7db03: ; 7db03 (1f:5b03)
ld [hli], a ld [hli], a
ld [hl], a ld [hl], a
ld hl, wc012 ; sfx noise channel pointer ld hl, wc012 ; sfx noise channel pointer
ld de, Noise1f_endchannel ld de, Noise3_endchannel
ld [hl], e ld [hl], e
inc hl inc hl
ld [hl], d ; overwrite pointer to point to endchannel ld [hl], d ; overwrite pointer to point to endchannel
@ -1651,7 +1651,7 @@ Music1f_7db03: ; 7db03 (1f:5b03)
.asm_7db89 .asm_7db89
ret ret
Noise1f_endchannel: ; 7db8a (1f:5b8a) Noise3_endchannel: ; 7db8a (1f:5b8a)
endchannel endchannel
Unknown_7db8b: ; 7db8b (1f:5b8b) Unknown_7db8b: ; 7db8b (1f:5b8b)
@ -1666,7 +1666,7 @@ Unknown_7db9b: ; 7db9b (1f:5b9b)
db $11, $22, $44, $88 ; channels 0-3 db $11, $22, $44, $88 ; channels 0-3
db $11, $22, $44, $88 ; channels 4-7 db $11, $22, $44, $88 ; channels 4-7
Music1f_Pitches: ; 7dba3 (1f:5ba3) Audio3_Pitches: ; 7dba3 (1f:5ba3)
dw $F82C ; C_ dw $F82C ; C_
dw $F89D ; C# dw $F89D ; C#
dw $F907 ; D_ dw $F907 ; D_

View file

@ -1,4 +1,4 @@
SFX_Headers_02:: SFX_Headers_1::
db $ff, $ff, $ff ; padding db $ff, $ff, $ff ; padding
SFX_Snare1_1:: ; 8003 (2:4003) SFX_Snare1_1:: ; 8003 (2:4003)

View file

@ -1,4 +1,4 @@
SFX_Headers_08:: SFX_Headers_2::
db $ff, $ff, $ff ; padding db $ff, $ff, $ff ; padding
SFX_Snare1_2:: ; 20003 (8:4003) SFX_Snare1_2:: ; 20003 (8:4003)

View file

@ -1,4 +1,4 @@
SFX_Headers_1f:: SFX_Headers_3::
db $ff, $ff, $ff ; padding db $ff, $ff, $ff ; padding
SFX_Snare1_3:: ; 7c003 (1f:4003) SFX_Snare1_3:: ; 7c003 (1f:4003)

View file

@ -1,7 +1,7 @@
; Song ids are calculated by address to save space. ; Song ids are calculated by address to save space.
music_const: MACRO music_const: MACRO
\1 EQUS "((\2 - SFX_Headers_02) / 3)" \1 EQUS "((\2 - SFX_Headers_1) / 3)"
ENDM ENDM
; AUDIO_1 ; AUDIO_1

View file

@ -35,7 +35,7 @@ AnimateHealingMachine: ; 70433 (1c:4433)
dec b dec b
jr nz, .asm_7046e jr nz, .asm_7046e
ld a, [wc0ef] ld a, [wc0ef]
cp BANK(Music1f_UpdateMusic) cp BANK(Audio3_UpdateMusic)
ld [wc0f0], a ld [wc0f0], a
jr nz, .asm_70495 jr nz, .asm_70495
ld a, $ff ld a, $ff

View file

@ -56,19 +56,19 @@ Func_2324:: ; 2324 (0:2324)
Func_235f:: ; 235f (0:235f) Func_235f:: ; 235f (0:235f)
ld a, [wc0ef] ld a, [wc0ef]
ld b, a ld b, a
cp BANK(Music2_UpdateMusic) cp BANK(Audio1_UpdateMusic)
jr nz, .checkForBank08 jr nz, .checkForAudio2
.bank02 .audio1
ld hl, Music2_UpdateMusic ld hl, Audio1_UpdateMusic
jr .asm_2378 jr .asm_2378
.checkForBank08 .checkForAudio2
cp BANK(Music8_UpdateMusic) cp BANK(Audio2_UpdateMusic)
jr nz, .bank1F jr nz, .audio3
.bank08 .audio2
ld hl, Music8_UpdateMusic ld hl, Audio2_UpdateMusic
jr .asm_2378 jr .asm_2378
.bank1F .audio3
ld hl, Music1f_UpdateMusic ld hl, Audio3_UpdateMusic
.asm_2378 .asm_2378
ld c, $6 ld c, $6
.asm_237a .asm_237a
@ -147,22 +147,22 @@ PlaySound:: ; 23b1 (0:23b1)
ld a, [wc0ef] ld a, [wc0ef]
ld [H_LOADEDROMBANK], a ld [H_LOADEDROMBANK], a
ld [MBC1RomBank], a ld [MBC1RomBank], a
cp BANK(Music2_9876) cp BANK(Audio1_9876)
jr nz, .checkForBank08 jr nz, .checkForAudio2
.bank02 .audio1
ld a, b ld a, b
call Music2_9876 call Audio1_9876
jr .asm_240b jr .asm_240b
.checkForBank08 .checkForAudio2
cp BANK(Music8_22035) cp BANK(Audio2_22035)
jr nz, .bank1F jr nz, .audio3
.bank08 .audio2
ld a, b ld a, b
call Music8_22035 call Audio2_22035
jr .asm_240b jr .asm_240b
.bank1F .audio3
ld a, b ld a, b
call Music1f_7d8ea call Audio3_7d8ea
.asm_240b .asm_240b
ld a, [$ffb9] ld a, [$ffb9]
ld [H_LOADEDROMBANK], a ld [H_LOADEDROMBANK], a

View file

@ -126,7 +126,7 @@ ClearVram:
StopAllSounds:: StopAllSounds::
ld a, BANK(Music2_UpdateMusic) ld a, BANK(Audio1_UpdateMusic)
ld [wc0ef], a ld [wc0ef], a
ld [wc0f0], a ld [wc0f0], a
xor a xor a

View file

@ -56,20 +56,20 @@ VBlank::
ld [H_LOADEDROMBANK], a ld [H_LOADEDROMBANK], a
ld [MBC1RomBank], a ld [MBC1RomBank], a
cp BANK(Music2_UpdateMusic) cp BANK(Audio1_UpdateMusic)
jr nz, .notbank2 jr nz, .checkForAudio2
.bank2 .audio1
call Music2_UpdateMusic call Audio1_UpdateMusic
jr .afterMusic jr .afterMusic
.notbank2 .checkForAudio2
cp BANK(Music8_UpdateMusic) cp BANK(Audio2_UpdateMusic)
jr nz, .bank1F jr nz, .audio3
.bank8 .audio2
call Music_DoLowHealthAlarm call Music_DoLowHealthAlarm
call Music8_UpdateMusic call Audio2_UpdateMusic
jr .afterMusic jr .afterMusic
.bank1F .audio3
call Music1f_UpdateMusic call Audio3_UpdateMusic
.afterMusic .afterMusic
callba TrackPlayTime ; keep track of time played callba TrackPlayTime ; keep track of time played

View file

@ -48,7 +48,7 @@ SSAnne7RubText: ; 618ec (18:58ec)
TX_FAR _SSAnne7RubText TX_FAR _SSAnne7RubText
TX_ASM TX_ASM
ld a, [wc0ef] ld a, [wc0ef]
cp BANK(Music1f_UpdateMusic) cp BANK(Audio3_UpdateMusic)
ld [wc0f0], a ld [wc0f0], a
jr nz, .asm_61908 jr nz, .asm_61908
ld a, $ff ld a, $ff