diff options
Diffstat (limited to 'audio/engine_3.asm')
-rw-r--r-- | audio/engine_3.asm | 898 |
1 files changed, 449 insertions, 449 deletions
diff --git a/audio/engine_3.asm b/audio/engine_3.asm index fabdecef..c7254405 100644 --- a/audio/engine_3.asm +++ b/audio/engine_3.asm @@ -1,10 +1,10 @@ ; The third of three duplicated sound engines. -Music1f_UpdateMusic:: ; 7d177 (1f:5177) +Audio3_UpdateMusic:: ; 7d177 (1f:5177) ld c, CH0 .loop ld b, $0 - ld hl, wc026 + ld hl, wChannelSoundIDs add hl, bc ld a, [hl] and a @@ -12,21 +12,21 @@ Music1f_UpdateMusic:: ; 7d177 (1f:5177) ld a, c cp CH4 jr nc, .applyAffects ; if sfx channel - ld a, [wc002] + ld a, [wMuteAudioAndPauseMusic] and a jr z, .applyAffects bit 7, a jr nz, .nextChannel set 7, a - ld [wc002], a + ld [wMuteAudioAndPauseMusic], a xor a - ld [$ff25], a - ld [$ff1a], a + ld [rNR51], a + ld [rNR30], a ld a, $80 - ld [$ff1a], a + ld [rNR30], a jr .nextChannel .applyAffects - call Music1f_ApplyMusicAffects + call Audio3_ApplyMusicAffects .nextChannel ld a, c inc c ; inc channel number @@ -36,54 +36,54 @@ Music1f_UpdateMusic:: ; 7d177 (1f:5177) ; this routine checks flags for music effects currently applied ; to the channel and calls certain functions based on flags. -; known flags for wc02e: +; known flags for wChannelFlags1: ; 0: toggleperfectpitch has been used ; 1: call has been used ; 3: a toggle used only by this routine for vibrato ; 4: pitchbend flag ; 6: dutycycle flag -Music1f_ApplyMusicAffects: ; 7d1ac (1f:51ac) +Audio3_ApplyMusicAffects: ; 7d1ac (1f:51ac) ld b, $0 - ld hl, wc0b6 ; delay until next note + ld hl, wChannelNoteDelayCounters ; delay until next note add hl, bc ld a, [hl] cp $1 ; if delay is 1, play next note - jp z, Music1f_PlayNextNote + jp z, Audio3_PlayNextNote dec a ; otherwise, decrease the delay timer ld [hl], a ld a, c cp CH4 jr nc, .startChecks ; if a sfx channel - ld hl, wc02a + ld hl, wChannelSoundIDs + CH4 add hl, bc ld a, [hl] and a jr z, .startChecks ret .startChecks - ld hl, wc02e + ld hl, wChannelFlags1 add hl, bc bit 6, [hl] ; dutycycle jr z, .checkForExecuteMusic - call Music1f_ApplyDutyCycle + call Audio3_ApplyDutyCycle .checkForExecuteMusic ld b, $0 - ld hl, wc036 + ld hl, wChannelFlags2 add hl, bc bit 0, [hl] jr nz, .checkForPitchBend - ld hl, wc02e + ld hl, wChannelFlags1 add hl, bc bit 2, [hl] jr nz, .disablePitchBendVibrato .checkForPitchBend - ld hl, wc02e + ld hl, wChannelFlags1 add hl, bc bit 4, [hl] ; pitchbend jr z, .checkVibratoDelay - jp Music1f_ApplyPitchBend + jp Audio3_ApplyPitchBend .checkVibratoDelay - ld hl, wc04e ; vibrato delay + ld hl, wChannelVibratoDelayCounters ; vibrato delay add hl, bc ld a, [hl] and a ; check if delay is over @@ -92,7 +92,7 @@ Music1f_ApplyMusicAffects: ; 7d1ac (1f:51ac) .disablePitchBendVibrato ret .checkForVibrato - ld hl, wc056 ; vibrato rate + ld hl, wChannelVibratoExtents ; vibrato rate add hl, bc ld a, [hl] and a @@ -100,7 +100,7 @@ Music1f_ApplyMusicAffects: ; 7d1ac (1f:51ac) ret ; no vibrato .vibrato ld d, a - ld hl, wc05e + ld hl, wChannelVibratoRates add hl, bc ld a, [hl] and $f @@ -113,10 +113,10 @@ Music1f_ApplyMusicAffects: ; 7d1ac (1f:51ac) swap [hl] or [hl] ld [hl], a ; reset the vibrato value and start again - ld hl, wc066 + ld hl, wChannelFrequencyLowBytes add hl, bc ld e, [hl] ; get note pitch - ld hl, wc02e + ld hl, wChannelFlags1 add hl, bc bit 3, [hl] ; this is the only code that sets/resets bit three so jr z, .unset ; it continuously alternates which path it takes @@ -141,34 +141,34 @@ Music1f_ApplyMusicAffects: ; 7d1ac (1f:51ac) .done ld d, a ld b, $3 - call Func_7d8ac + call Audio3_7d8ac ld [hl], d ret ; this routine executes all music commands that take up no time, ; like tempo changes, duty changes etc. and doesn't return ; until the first note is reached -Music1f_PlayNextNote: ; 7d244 (1f:5244) - ld hl, wc06e +Audio3_PlayNextNote: ; 7d244 (1f:5244) + ld hl, wChannelVibratoDelayCounterReloadValues add hl, bc ld a, [hl] - ld hl, wc04e + ld hl, wChannelVibratoDelayCounters add hl, bc ld [hl], a - ld hl, wc02e + ld hl, wChannelFlags1 add hl, bc res 4, [hl] res 5, [hl] - call Music1f_endchannel + call Audio3_endchannel ret -Music1f_endchannel: ; 7d25a (1f:525a) - call Music1f_GetNextMusicByte +Audio3_endchannel: ; 7d25a (1f:525a) + call Audio3_GetNextMusicByte ld d, a cp $ff ; is this command an endchannel? - jp nz, Music1f_callchannel ; no + jp nz, Audio3_callchannel ; no ld b, $0 ; yes - ld hl, wc02e + ld hl, wChannelFlags1 add hl, bc bit 1, [hl] jr nz, .returnFromCall @@ -178,22 +178,22 @@ Music1f_endchannel: ; 7d25a (1f:525a) jr .asm_7d2b3 .noiseOrSfxChannel res 2, [hl] - ld hl, wc036 + ld hl, wChannelFlags2 add hl, bc res 0, [hl] cp CH6 jr nz, .notSfxChannel3 ld a, $0 - ld [$ff1a], a + ld [rNR30], a ld a, $80 - ld [$ff1a], a + ld [rNR30], a .notSfxChannel3 jr nz, .asm_7d296 - ld a, [wc003] + ld a, [wDisableChannelOutputWhenSfxEnds] and a jr z, .asm_7d296 xor a - ld [wc003], a + ld [wDisableChannelOutputWhenSfxEnds], a jr .asm_7d2b3 .asm_7d296 jr .asm_7d2bc @@ -203,10 +203,10 @@ Music1f_endchannel: ; 7d25a (1f:525a) ld a, c add a ld e, a - ld hl, wc006 + ld hl, wChannelCommandPointers add hl, de push hl ; store current channel address - ld hl, wc016 + ld hl, wChannelReturnAddresses add hl, de ld e, l ld d, h @@ -216,20 +216,20 @@ Music1f_endchannel: ; 7d25a (1f:525a) inc de ld a, [de] ld [hl], a ; loads channel address to return to - jp Music1f_endchannel + jp Audio3_endchannel .asm_7d2b3 ld hl, Unknown_7db93 add hl, bc - ld a, [$ff25] + ld a, [rNR51] and [hl] - ld [$ff25], a + ld [rNR51], a .asm_7d2bc - ld a, [wc02a] + ld a, [wChannelSoundIDs + CH4] cp $14 jr nc, .asm_7d2c5 jr .asm_7d2e2 .asm_7d2c5 - ld a, [wc02a] + ld a, [wChannelSoundIDs + CH4] cp $86 jr z, .asm_7d2e2 jr c, .asm_7d2d0 @@ -238,25 +238,25 @@ Music1f_endchannel: ; 7d25a (1f:525a) ld a, c cp CH4 jr z, .asm_7d2d9 - call Func_7d73b + call Audio3_7d73b ret c .asm_7d2d9 - ld a, [wc005] - ld [$ff24], a + ld a, [wSavedVolume] + ld [rNR50], a xor a - ld [wc005], a + ld [wSavedVolume], a .asm_7d2e2 - ld hl, wc026 + ld hl, wChannelSoundIDs add hl, bc ld [hl], b ret -Music1f_callchannel: ; 7d2e8 (1f:52e8) +Audio3_callchannel: ; 7d2e8 (1f:52e8) cp $fd ; is this command a callchannel? - jp nz, Music1f_loopchannel ; no - call Music1f_GetNextMusicByte ; yes + jp nz, Audio3_loopchannel ; no + call Audio3_GetNextMusicByte ; yes push af - call Music1f_GetNextMusicByte + call Audio3_GetNextMusicByte ld d, a pop af ld e, a @@ -265,10 +265,10 @@ Music1f_callchannel: ; 7d2e8 (1f:52e8) ld a, c add a ld e, a - ld hl, wc006 + ld hl, wChannelCommandPointers add hl, de push hl - ld hl, wc016 + ld hl, wChannelReturnAddresses add hl, de ld e, l ld d, h @@ -283,73 +283,73 @@ Music1f_callchannel: ; 7d2e8 (1f:52e8) inc hl ld [hl], d ; overwrite current address with pointer ld b, $0 - ld hl, wc02e + ld hl, wChannelFlags1 add hl, bc 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? - jp nz, Music1f_notetype ; no - call Music1f_GetNextMusicByte ; yes + jp nz, Audio3_notetype ; no + call Audio3_GetNextMusicByte ; yes ld e, a and a jr z, .infiniteLoop ld b, $0 - ld hl, wc0be + ld hl, wChannelLoopCounters add hl, bc ld a, [hl] cp e jr nz, .loopAgain ld a, $1 ; if no more loops to make ld [hl], a - call Music1f_GetNextMusicByte ; skip pointer - call Music1f_GetNextMusicByte - jp Music1f_endchannel + call Audio3_GetNextMusicByte ; skip pointer + call Audio3_GetNextMusicByte + jp Audio3_endchannel .loopAgain ; inc loop count inc a ld [hl], a ; fall through .infiniteLoop ; overwrite current address with pointer - call Music1f_GetNextMusicByte + call Audio3_GetNextMusicByte push af - call Music1f_GetNextMusicByte + call Audio3_GetNextMusicByte ld b, a ld d, $0 ld a, c add a ld e, a - ld hl, wc006 + ld hl, wChannelCommandPointers add hl, de pop af ld [hli], a ld [hl], b - jp Music1f_endchannel + jp Audio3_endchannel -Music1f_notetype: ; 7d358 (1f:5358) +Audio3_notetype: ; 7d358 (1f:5358) and $f0 cp $d0 ; is this command a notetype? - jp nz, Music1f_toggleperfectpitch ; no + jp nz, Audio3_toggleperfectpitch ; no ld a, d ; yes and $f ld b, $0 - ld hl, wc0c6 + ld hl, wChannelNoteSpeeds add hl, bc ld [hl], a ; store low nibble as speed ld a, c cp CH3 jr z, .noiseChannel ; noise channel has 0 params - call Music1f_GetNextMusicByte + call Audio3_GetNextMusicByte ld d, a ld a, c cp CH2 jr z, .musicChannel3 cp CH6 jr nz, .notChannel3 - ld hl, wc0e7 + ld hl, wSfxWaveInstrument jr .sfxChannel3 .musicChannel3 - ld hl, wc0e6 + ld hl, wMusicWaveInstrument .sfxChannel3 ld a, d and $f @@ -364,41 +364,41 @@ Music1f_notetype: ; 7d358 (1f:5358) ; else, store volume (high nibble) and fade (low nibble) .notChannel3 ld b, $0 - ld hl, wc0de + ld hl, wChannelVolumes add hl, bc ld [hl], d .noiseChannel - jp Music1f_endchannel + jp Audio3_endchannel -Music1f_toggleperfectpitch: ; 7d397 (1f:5397) +Audio3_toggleperfectpitch: ; 7d397 (1f:5397) ld a, d cp $e8 ; is this command a toggleperfectpitch? - jr nz, Music1f_vibrato ; no + jr nz, Audio3_vibrato ; no ld b, $0 ; yes - ld hl, wc02e + ld hl, wChannelFlags1 add hl, bc ld a, [hl] xor $1 - ld [hl], a ; flip bit 0 of wc02e - jp Music1f_endchannel + ld [hl], a ; flip bit 0 of wChannelFlags1 + jp Audio3_endchannel -Music1f_vibrato: ; 7d3a9 (1f:53a9) +Audio3_vibrato: ; 7d3a9 (1f:53a9) cp $ea ; is this command a vibrato? - jr nz, Music1f_pitchbend ; no - call Music1f_GetNextMusicByte ; yes + jr nz, Audio3_pitchbend ; no + call Audio3_GetNextMusicByte ; yes ld b, $0 - ld hl, wc04e + ld hl, wChannelVibratoDelayCounters add hl, bc ld [hl], a ; store delay - ld hl, wc06e + ld hl, wChannelVibratoDelayCounterReloadValues add hl, bc ld [hl], a ; store delay - call Music1f_GetNextMusicByte + call Audio3_GetNextMusicByte ld d, a and $f0 swap a ld b, $0 - ld hl, wc056 + ld hl, wChannelVibratoExtents add hl, bc srl a ld e, a @@ -409,226 +409,226 @@ Music1f_vibrato: ; 7d3a9 (1f:53a9) ld a, d and $f ld d, a - ld hl, wc05e + ld hl, wChannelVibratoRates add hl, bc swap a or d 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? - jr nz, Music1f_duty ; no - call Music1f_GetNextMusicByte ; yes + jr nz, Audio3_duty ; no + call Audio3_GetNextMusicByte ; yes ld b, $0 - ld hl, wc076 + ld hl, wChannelPitchBendLengthModifiers add hl, bc ld [hl], a ; store first param - call Music1f_GetNextMusicByte + call Audio3_GetNextMusicByte ld d, a and $f0 swap a ld b, a ld a, d and $f - call Func_7d8cc + call Audio3_7d8cc ld b, $0 - ld hl, wc0a6 + ld hl, wChannelPitchBendTargetFrequencyHighBytes add hl, bc ld [hl], d ; store unknown part of second param - ld hl, wc0ae + ld hl, wChannelPitchBendTargetFrequencyLowBytes add hl, bc ld [hl], e ; store unknown part of second param ld b, $0 - ld hl, wc02e + ld hl, wChannelFlags1 add hl, bc set 4, [hl] ; set pitchbend flag - call Music1f_GetNextMusicByte + call Audio3_GetNextMusicByte 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? - jr nz, Music1f_tempo ; no - call Music1f_GetNextMusicByte ; yes + jr nz, Audio3_tempo ; no + call Audio3_GetNextMusicByte ; yes rrca rrca and $c0 ld b, $0 - ld hl, wc03e + ld hl, wChannelDuties add hl, bc 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? - jr nz, Music1f_stereopanning ; no + jr nz, Audio3_stereopanning ; no ld a, c ; yes cp CH4 jr nc, .sfxChannel - call Music1f_GetNextMusicByte - ld [wc0e8], a ; store first param - call Music1f_GetNextMusicByte - ld [wc0e9], a ; store second param + call Audio3_GetNextMusicByte + ld [wMusicTempo], a ; store first param + call Audio3_GetNextMusicByte + ld [wMusicTempo + 1], a ; store second param xor a - ld [wc0ce], a ; clear RAM - ld [wc0cf], a - ld [wc0d0], a - ld [wc0d1], a + ld [wChannelNoteDelayCountersFractionalPart], a ; clear RAM + ld [wChannelNoteDelayCountersFractionalPart + 1], a + ld [wChannelNoteDelayCountersFractionalPart + 2], a + ld [wChannelNoteDelayCountersFractionalPart + 3], a jr .musicChannelDone .sfxChannel - call Music1f_GetNextMusicByte - ld [wc0ea], a ; store first param - call Music1f_GetNextMusicByte - ld [wc0eb], a ; store second param + call Audio3_GetNextMusicByte + ld [wSfxTempo], a ; store first param + call Audio3_GetNextMusicByte + ld [wSfxTempo + 1], a ; store second param xor a - ld [wc0d2], a ; clear RAM - ld [wc0d3], a - ld [wc0d4], a - ld [wc0d5], a + ld [wChannelNoteDelayCountersFractionalPart + 4], a ; clear RAM + ld [wChannelNoteDelayCountersFractionalPart + 5], a + ld [wChannelNoteDelayCountersFractionalPart + 6], a + ld [wChannelNoteDelayCountersFractionalPart + 7], a .musicChannelDone - jp Music1f_endchannel + jp Audio3_endchannel -Music1f_stereopanning: ; 7d46e (1f:546e) +Audio3_stereopanning: ; 7d46e (1f:546e) cp $ee ; is this command a stereopanning? - jr nz, Music1f_unknownmusic0xef ; no - call Music1f_GetNextMusicByte ; yes - ld [wc004], a ; store panning - jp Music1f_endchannel + jr nz, Audio3_unknownmusic0xef ; no + call Audio3_GetNextMusicByte ; yes + ld [wStereoPanning], a ; store panning + jp Audio3_endchannel ; this appears to never be used -Music1f_unknownmusic0xef: ; 7d47b (1f:547b) +Audio3_unknownmusic0xef: ; 7d47b (1f:547b) cp $ef ; is this command an unknownmusic0xef? - jr nz, Music1f_dutycycle ; no - call Music1f_GetNextMusicByte ; yes + jr nz, Audio3_dutycycle ; no + call Audio3_GetNextMusicByte ; yes push bc - call Func_7d8ea + call Audio3_PlaySound pop bc - ld a, [wc003] + ld a, [wDisableChannelOutputWhenSfxEnds] and a jr nz, .skip - ld a, [wc02d] - ld [wc003], a + ld a, [wChannelSoundIDs + CH7] + ld [wDisableChannelOutputWhenSfxEnds], a xor a - ld [wc02d], a + ld [wChannelSoundIDs + CH7], a .skip - jp Music1f_endchannel + jp Audio3_endchannel -Music1f_dutycycle: ; 7d49a (1f:549a) +Audio3_dutycycle: ; 7d49a (1f:549a) cp $fc ; is this command a dutycycle? - jr nz, Music1f_volume ; no - call Music1f_GetNextMusicByte ; yes + jr nz, Audio3_volume ; no + call Audio3_GetNextMusicByte ; yes ld b, $0 - ld hl, wc046 + ld hl, wChannelDutyCycles add hl, bc ld [hl], a ; store full cycle and $c0 - ld hl, wc03e + ld hl, wChannelDuties add hl, bc ld [hl], a ; store first duty - ld hl, wc02e + ld hl, wChannelFlags1 add hl, bc 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? - jr nz, Music1f_executemusic ; no - call Music1f_GetNextMusicByte ; yes - ld [$ff24], a ; store volume - jp Music1f_endchannel + jr nz, Audio3_executemusic ; no + call Audio3_GetNextMusicByte ; yes + ld [rNR50], a ; store volume + jp Audio3_endchannel -Music1f_executemusic: ; 7d4c4 (1f:54c4) +Audio3_executemusic: ; 7d4c4 (1f:54c4) cp $f8 ; is this command an executemusic? - jr nz, Music1f_octave ; no + jr nz, Audio3_octave ; no ld b, $0 ; yes - ld hl, wc036 + ld hl, wChannelFlags2 add hl, bc set 0, [hl] - jp Music1f_endchannel + jp Audio3_endchannel -Music1f_octave: ; 7d4d3 (1f:54d3) +Audio3_octave: ; 7d4d3 (1f:54d3) and $f0 cp $e0 ; is this command an octave? - jr nz, Music1f_unknownsfx0x20 ; no - ld hl, wc0d6 ; yes + jr nz, Audio3_unknownsfx0x20 ; no + ld hl, wChannelOctaves ; yes ld b, $0 add hl, bc ld a, d and $f ld [hl], a ; store low nibble as octave - jp Music1f_endchannel + jp Audio3_endchannel -Music1f_unknownsfx0x20: ; 7d4e6 (1f:54e6) +Audio3_unknownsfx0x20: ; 7d4e6 (1f:54e6) cp $20 ; is this command an unknownsfx0x20? - jr nz, Music1f_unknownsfx0x10 ; no + jr nz, Audio3_unknownsfx0x10 ; no ld a, c cp CH3 ; is this a noise or sfx channel? - jr c, Music1f_unknownsfx0x10 ; no + jr c, Audio3_unknownsfx0x10 ; no ld b, $0 - ld hl, wc036 + ld hl, wChannelFlags2 add hl, bc bit 0, [hl] - jr nz, Music1f_unknownsfx0x10 ; no - call Music1f_notelength ; yes + jr nz, Audio3_unknownsfx0x10 ; no + call Audio3_notelength ; yes ld d, a ld b, $0 - ld hl, wc03e + ld hl, wChannelDuties add hl, bc ld a, [hl] or d ld d, a ld b, $1 - call Func_7d8ac + call Audio3_7d8ac ld [hl], d - call Music1f_GetNextMusicByte + call Audio3_GetNextMusicByte ld d, a ld b, $2 - call Func_7d8ac + call Audio3_7d8ac ld [hl], d - call Music1f_GetNextMusicByte + call Audio3_GetNextMusicByte ld e, a ld a, c cp CH7 ld a, $0 jr z, .sfxNoiseChannel ; only two params for noise channel push de - call Music1f_GetNextMusicByte + call Audio3_GetNextMusicByte pop de .sfxNoiseChannel ld d, a push de - call Func_7d69d - call Func_7d66c + call Audio3_7d69d + call Audio3_7d66c pop de - call Func_7d6bf + call Audio3_7d6bf ret -Music1f_unknownsfx0x10 ; 7d533 (1f:5533) +Audio3_unknownsfx0x10: ; 7d533 (1f:5533) ld a, c cp CH4 - jr c, Music1f_note ; if not a sfx + jr c, Audio3_note ; if not a sfx ld a, d cp $10 ; is this command an unknownsfx0x10? - jr nz, Music1f_note ; no + jr nz, Audio3_note ; no ld b, $0 - ld hl, wc036 + ld hl, wChannelFlags2 add hl, bc bit 0, [hl] - jr nz, Music1f_note ; no - call Music1f_GetNextMusicByte ; yes - ld [$ff10], a - jp Music1f_endchannel + jr nz, Audio3_note ; no + call Audio3_GetNextMusicByte ; yes + ld [rNR10], a + jp Audio3_endchannel -Music1f_note: ; 7d54f (1f:554f) +Audio3_note: ; 7d54f (1f:554f) ld a, c cp CH3 - jr nz, Music1f_notelength ; if not noise channel + jr nz, Audio3_notelength ; if not noise channel ld a, d and $f0 cp $b0 ; is this command a dnote? - jr z, Music1f_dnote ; yes - jr nc, Music1f_notelength ; no + jr z, Audio3_dnote ; yes + jr nc, Audio3_notelength ; no swap a ld b, a ld a, d @@ -639,24 +639,24 @@ Music1f_note: ; 7d54f (1f:554f) push bc jr asm_7d571 -Music1f_dnote: ; 7d569 (1f:5569) +Audio3_dnote: ; 7d569 (1f:5569) ld a, d and $f push af push bc - call Music1f_GetNextMusicByte ; get dnote instrument + call Audio3_GetNextMusicByte ; get dnote instrument asm_7d571 ld d, a - ld a, [wc003] + ld a, [wDisableChannelOutputWhenSfxEnds] and a jr nz, .asm_7d57c ld a, d - call Func_7d8ea + call Audio3_PlaySound .asm_7d57c pop bc pop de -Music1f_notelength: ; 7d57e (1f:557e) +Audio3_notelength: ; 7d57e (1f:557e) ld a, d push af and $f @@ -664,17 +664,17 @@ Music1f_notelength: ; 7d57e (1f:557e) ld b, $0 ld e, a ; store note length (in 16ths) ld d, b - ld hl, wc0c6 + ld hl, wChannelNoteSpeeds add hl, bc ld a, [hl] ld l, b - call Func_7d8bb + call Audio3_7d8bb ld a, c cp CH4 jr nc, .sfxChannel - ld a, [wc0e8] + ld a, [wMusicTempo] ld d, a - ld a, [wc0e9] + ld a, [wMusicTempo + 1] ld e, a jr .skip .sfxChannel @@ -682,39 +682,39 @@ Music1f_notelength: ; 7d57e (1f:557e) ld e, $0 cp CH7 jr z, .skip ; if noise channel - call Func_7d707 - ld a, [wc0ea] + call Audio3_7d707 + ld a, [wSfxTempo] ld d, a - ld a, [wc0eb] + ld a, [wSfxTempo + 1] ld e, a .skip ld a, l ld b, $0 - ld hl, wc0ce + ld hl, wChannelNoteDelayCountersFractionalPart add hl, bc ld l, [hl] - call Func_7d8bb + call Audio3_7d8bb ld e, l ld d, h - ld hl, wc0ce + ld hl, wChannelNoteDelayCountersFractionalPart add hl, bc ld [hl], e ld a, d - ld hl, wc0b6 + ld hl, wChannelNoteDelayCounters add hl, bc ld [hl], a - ld hl, wc036 + ld hl, wChannelFlags2 add hl, bc bit 0, [hl] - jr nz, Music1f_notepitch - ld hl, wc02e + jr nz, Audio3_notepitch + ld hl, wChannelFlags1 add hl, bc bit 2, [hl] - jr z, Music1f_notepitch + jr z, Audio3_notepitch pop hl ret -Music1f_notepitch: ; 7d5dc (1f:55dc) +Audio3_notepitch: ; 7d5dc (1f:55dc) pop af and $f0 cp $c0 ; compare to rest @@ -722,7 +722,7 @@ Music1f_notepitch: ; 7d5dc (1f:55dc) ld a, c cp CH4 jr nc, .sfxChannel - ld hl, wc02a + ld hl, wChannelSoundIDs + CH4 add hl, bc ld a, [hl] and a @@ -738,13 +738,13 @@ Music1f_notepitch: ; 7d5dc (1f:55dc) ld b, $0 ld hl, Unknown_7db93 add hl, bc - ld a, [$ff25] + ld a, [rNR51] and [hl] - ld [$ff25], a + ld [rNR51], a jr .quit .notSfxChannel3 ld b, $2 - call Func_7d8ac + call Audio3_7d8ac ld a, $8 ld [hli], a inc hl @@ -755,22 +755,22 @@ Music1f_notepitch: ; 7d5dc (1f:55dc) .notRest swap a ld b, $0 - ld hl, wc0d6 + ld hl, wChannelOctaves add hl, bc ld b, [hl] - call Func_7d8cc + call Audio3_7d8cc ld b, $0 - ld hl, wc02e + ld hl, wChannelFlags1 add hl, bc bit 4, [hl] jr z, .asm_7d62c - call Func_7d803 + call Audio3_7d803 .asm_7d62c push de ld a, c cp CH4 jr nc, .skip ; if sfx Channel - ld hl, wc02a + ld hl, wChannelSoundIDs + CH4 ld d, $0 ld e, a add hl, de @@ -783,17 +783,17 @@ Music1f_notepitch: ; 7d5dc (1f:55dc) ret .skip ld b, $0 - ld hl, wc0de + ld hl, wChannelVolumes add hl, bc ld d, [hl] ld b, $2 - call Func_7d8ac + call Audio3_7d8ac ld [hl], d - call Func_7d69d - call Func_7d66c + call Audio3_7d69d + call Audio3_7d66c pop de ld b, $0 - ld hl, wc02e + ld hl, wChannelFlags1 add hl, bc bit 0, [hl] ; has toggleperfectpitch been used? jr z, .skip2 @@ -801,17 +801,17 @@ Music1f_notepitch: ; 7d5dc (1f:55dc) jr nc, .skip2 inc d .skip2 - ld hl, wc066 + ld hl, wChannelFrequencyLowBytes add hl, bc ld [hl], e - call Func_7d6bf + call Audio3_7d6bf ret -Func_7d66c: ; 7d66c (1f:566c) +Audio3_7d66c: ; 7d66c (1f:566c) ld b, $0 ld hl, Unknown_7db9b add hl, bc - ld a, [$ff25] + ld a, [rNR51] or [hl] ld d, a ld a, c @@ -819,18 +819,18 @@ Func_7d66c: ; 7d66c (1f:566c) jr z, .sfxNoiseChannel cp CH4 jr nc, .skip ; if sfx channel - ld hl, wc02a + ld hl, wChannelSoundIDs + CH4 add hl, bc ld a, [hl] and a jr nz, .skip .sfxNoiseChannel - ld a, [wc004] + ld a, [wStereoPanning] ld hl, Unknown_7db9b add hl, bc and [hl] ld d, a - ld a, [$ff25] + ld a, [rNR51] ld hl, Unknown_7db93 add hl, bc and [hl] @@ -838,12 +838,12 @@ Func_7d66c: ; 7d66c (1f:566c) ld d, a .skip ld a, d - ld [$ff25], a + ld [rNR51], a ret -Func_7d69d: ; 7d69d (1f:569d) +Audio3_7d69d: ; 7d69d (1f:569d) ld b, $0 - ld hl, wc0b6 + ld hl, wChannelNoteDelayCounters add hl, bc ld d, [hl] ld a, c @@ -854,18 +854,18 @@ Func_7d69d: ; 7d69d (1f:569d) ld a, d and $3f ld d, a - ld hl, wc03e + ld hl, wChannelDuties add hl, bc ld a, [hl] or d ld d, a .channel3 ld b, $1 - call Func_7d8ac + call Audio3_7d8ac ld [hl], d ret -Func_7d6bf: ; 7d6bf (1f:56bf) +Audio3_7d6bf: ; 7d6bf (1f:56bf) ld a, c cp CH2 jr z, .channel3 @@ -874,16 +874,16 @@ Func_7d6bf: ; 7d6bf (1f:56bf) ; fall through .channel3 push de - ld de, wc0e6 + ld de, wMusicWaveInstrument cp CH2 jr z, .musicChannel3 - ld de, wc0e7 + ld de, wSfxWaveInstrument .musicChannel3 ld a, [de] add a ld d, $0 ld e, a - ld hl, Music1f_WavePointers + ld hl, Audio3_WavePointers add hl, de ld e, [hl] inc hl @@ -891,7 +891,7 @@ Func_7d6bf: ; 7d6bf (1f:56bf) ld hl, $ff30 ld b, $f ld a, $0 - ld [$ff1a], a + ld [rNR30], a .loop ld a, [de] inc de @@ -901,7 +901,7 @@ Func_7d6bf: ; 7d6bf (1f:56bf) and a jr nz, .loop ld a, $80 - ld [$ff1a], a + ld [rNR30], a pop de .notSfxChannel3 ld a, d @@ -909,38 +909,38 @@ Func_7d6bf: ; 7d6bf (1f:56bf) and $c7 ld d, a ld b, $3 - call Func_7d8ac + call Audio3_7d8ac ld [hl], e inc hl ld [hl], d - call Func_7d729 + call Audio3_7d729 ret -Func_7d707: ; 7d707 (1f:5707) - call Func_7d759 +Audio3_7d707: ; 7d707 (1f:5707) + call Audio3_7d759 jr nc, .asm_7d71f ld d, $0 - ld a, [wc0f2] + ld a, [wTempoModifier] add $80 jr nc, .asm_7d716 inc d .asm_7d716 - ld [wc0eb], a + ld [wSfxTempo + 1], a ld a, d - ld [wc0ea], a + ld [wSfxTempo], a jr .asm_7d728 .asm_7d71f xor a - ld [wc0eb], a + ld [wSfxTempo + 1], a ld a, $1 - ld [wc0ea], a + ld [wSfxTempo], a .asm_7d728 ret -Func_7d729: ; 7d729 (1f:5729) - call Func_7d759 +Audio3_7d729: ; 7d729 (1f:5729) + call Audio3_7d759 jr nc, .asm_7d73a - ld a, [wc0f1] + ld a, [wFrequencyModifier] add e jr nc, .asm_7d735 inc d @@ -953,10 +953,10 @@ Func_7d729: ; 7d729 (1f:5729) .asm_7d73a ret -Func_7d73b: ; 7d73b (1f:573b) - call Func_7d759 +Audio3_7d73b: ; 7d73b (1f:573b) + call Audio3_7d759 jr nc, .asm_7d756 - ld hl, wc006 + ld hl, wChannelCommandPointers ld e, c ld d, $0 sla e @@ -976,8 +976,8 @@ Func_7d73b: ; 7d73b (1f:573b) ccf ret -Func_7d759: ; 7d759 (1f:5759) - ld a, [wc02a] +Audio3_7d759: ; 7d759 (1f:5759) + ld a, [wChannelSoundIDs + CH4] cp $14 jr nc, .asm_7d762 jr .asm_7d768 @@ -993,28 +993,28 @@ Func_7d759: ; 7d759 (1f:5759) scf ret -Music1f_ApplyPitchBend: ; 7d76d (1f:576d) - ld hl, wc02e +Audio3_ApplyPitchBend: ; 7d76d (1f:576d) + ld hl, wChannelFlags1 add hl, bc bit 5, [hl] jp nz, .asm_7d7b4 - ld hl, wc09e + ld hl, wChannelPitchBendCurrentFrequencyLowBytes add hl, bc ld e, [hl] - ld hl, wc096 + ld hl, wChannelPitchBendCurrentFrequencyHighBytes add hl, bc ld d, [hl] - ld hl, wc07e + ld hl, wChannelPitchBendFrequencySteps add hl, bc ld l, [hl] ld h, b add hl, de ld d, h ld e, l - ld hl, wc08e + ld hl, wChannelPitchBendCurrentFrequencyFractionalPart add hl, bc push hl - ld hl, wc086 + ld hl, wChannelPitchBendFrequencyStepsFractionalPart add hl, bc ld a, [hl] pop hl @@ -1026,26 +1026,26 @@ Music1f_ApplyPitchBend: ; 7d76d (1f:576d) ld a, $0 adc d ld d, a - ld hl, wc0a6 + ld hl, wChannelPitchBendTargetFrequencyHighBytes add hl, bc ld a, [hl] cp d jp c, .asm_7d7fa jr nz, .asm_7d7e7 - ld hl, wc0ae + ld hl, wChannelPitchBendTargetFrequencyLowBytes add hl, bc ld a, [hl] cp e jp c, .asm_7d7fa jr .asm_7d7e7 .asm_7d7b4 - ld hl, wc09e + ld hl, wChannelPitchBendCurrentFrequencyLowBytes add hl, bc ld a, [hl] - ld hl, wc096 + ld hl, wChannelPitchBendCurrentFrequencyHighBytes add hl, bc ld d, [hl] - ld hl, wc07e + ld hl, wChannelPitchBendFrequencySteps add hl, bc ld e, [hl] sub e @@ -1053,7 +1053,7 @@ Music1f_ApplyPitchBend: ; 7d76d (1f:576d) ld a, d sbc b ld d, a - ld hl, wc086 + ld hl, wChannelPitchBendFrequencyStepsFractionalPart add hl, bc ld a, [hl] add a @@ -1064,79 +1064,79 @@ Music1f_ApplyPitchBend: ; 7d76d (1f:576d) ld a, d sbc b ld d, a - ld hl, wc0a6 + ld hl, wChannelPitchBendTargetFrequencyHighBytes add hl, bc ld a, d cp [hl] jr c, .asm_7d7fa jr nz, .asm_7d7e7 - ld hl, wc0ae + ld hl, wChannelPitchBendTargetFrequencyLowBytes add hl, bc ld a, e cp [hl] jr c, .asm_7d7fa .asm_7d7e7 - ld hl, wc09e + ld hl, wChannelPitchBendCurrentFrequencyLowBytes add hl, bc ld [hl], e - ld hl, wc096 + ld hl, wChannelPitchBendCurrentFrequencyHighBytes add hl, bc ld [hl], d ld b, $3 - call Func_7d8ac + call Audio3_7d8ac ld a, e ld [hli], a ld [hl], d ret .asm_7d7fa - ld hl, wc02e + ld hl, wChannelFlags1 add hl, bc res 4, [hl] res 5, [hl] ret -Func_7d803: ; 7d803 (1f:5803) - ld hl, wc096 +Audio3_7d803: ; 7d803 (1f:5803) + ld hl, wChannelPitchBendCurrentFrequencyHighBytes add hl, bc ld [hl], d - ld hl, wc09e + ld hl, wChannelPitchBendCurrentFrequencyLowBytes add hl, bc ld [hl], e - ld hl, wc0b6 + ld hl, wChannelNoteDelayCounters add hl, bc ld a, [hl] - ld hl, wc076 + ld hl, wChannelPitchBendLengthModifiers add hl, bc sub [hl] jr nc, .asm_7d81b ld a, $1 .asm_7d81b ld [hl], a - ld hl, wc0ae + ld hl, wChannelPitchBendTargetFrequencyLowBytes add hl, bc ld a, e sub [hl] ld e, a ld a, d sbc b - ld hl, wc0a6 + ld hl, wChannelPitchBendTargetFrequencyHighBytes add hl, bc sub [hl] jr c, .asm_7d837 ld d, a ld b, $0 - ld hl, wc02e + ld hl, wChannelFlags1 add hl, bc set 5, [hl] jr .asm_7d85a .asm_7d837 - ld hl, wc096 + ld hl, wChannelPitchBendCurrentFrequencyHighBytes add hl, bc ld d, [hl] - ld hl, wc09e + ld hl, wChannelPitchBendCurrentFrequencyLowBytes add hl, bc ld e, [hl] - ld hl, wc0ae + ld hl, wChannelPitchBendTargetFrequencyLowBytes add hl, bc ld a, [hl] sub e @@ -1144,17 +1144,17 @@ Func_7d803: ; 7d803 (1f:5803) ld a, d sbc b ld d, a - ld hl, wc0a6 + ld hl, wChannelPitchBendTargetFrequencyHighBytes add hl, bc ld a, [hl] sub d ld d, a ld b, $0 - ld hl, wc02e + ld hl, wChannelFlags1 add hl, bc res 5, [hl] .asm_7d85a - ld hl, wc076 + ld hl, wChannelPitchBendLengthModifiers add hl, bc .asm_7d85e inc b @@ -1173,20 +1173,20 @@ Func_7d803: ; 7d803 (1f:5803) add [hl] ld d, b ld b, $0 - ld hl, wc07e + ld hl, wChannelPitchBendFrequencySteps add hl, bc ld [hl], d - ld hl, wc086 + ld hl, wChannelPitchBendFrequencyStepsFractionalPart add hl, bc ld [hl], a - ld hl, wc08e + ld hl, wChannelPitchBendCurrentFrequencyFractionalPart add hl, bc ld [hl], a ret -Music1f_ApplyDutyCycle: ; 7d881 (1f:5881) +Audio3_ApplyDutyCycle: ; 7d881 (1f:5881) ld b, $0 - ld hl, wc046 + ld hl, wChannelDutyCycles add hl, bc ld a, [hl] rlca @@ -1195,19 +1195,19 @@ Music1f_ApplyDutyCycle: ; 7d881 (1f:5881) and $c0 ld d, a ld b, $1 - call Func_7d8ac + call Audio3_7d8ac ld a, [hl] and $3f or d ld [hl], a ret -Music1f_GetNextMusicByte: ; 7d899 (1f:5899) +Audio3_GetNextMusicByte: ; 7d899 (1f:5899) ld d, $0 ld a, c add a ld e, a - ld hl, wc006 + ld hl, wChannelCommandPointers add hl, de ld a, [hli] ld e, a @@ -1220,7 +1220,7 @@ Music1f_GetNextMusicByte: ; 7d899 (1f:5899) ld [hl], d ret -Func_7d8ac: ; 7d8ac (1f:58ac) +Audio3_7d8ac: ; 7d8ac (1f:58ac) ld a, c ld hl, Unknown_7db8b add l @@ -1234,7 +1234,7 @@ Func_7d8ac: ; 7d8ac (1f:58ac) ld h, $ff ret -Func_7d8bb: ; 7d8bb (1f:58bb) +Audio3_7d8bb: ; 7d8bb (1f:58bb) ld h, $0 .loop srl a @@ -1249,13 +1249,13 @@ Func_7d8bb: ; 7d8bb (1f:58bb) .done ret -Func_7d8cc: ; 7d8cc (1f:58cc) +Audio3_7d8cc: ; 7d8cc (1f:58cc) ld h, $0 ld l, a add hl, hl ld d, h ld e, l - ld hl, Music1f_Pitches + ld hl, Audio3_Pitches add hl, de ld e, [hl] inc hl @@ -1274,102 +1274,102 @@ Func_7d8cc: ; 7d8cc (1f:58cc) ld d, a ret -Func_7d8ea:: ; 7d8ea (1f:58ea) - ld [wc001], a +Audio3_PlaySound:: ; 7d8ea (1f:58ea) + ld [wSoundID], a cp $ff - jp z, Func_7daa8 + jp z, Audio3_7daa8 cp $c2 - jp z, Func_7d9c2 - jp c, Func_7d9c2 + jp z, Audio3_7d9c2 + jp c, Audio3_7d9c2 cp $fe jr z, .asm_7d901 - jp nc, Func_7d9c2 + jp nc, Audio3_7d9c2 .asm_7d901 xor a - ld [wc000], a - ld [wc003], a - ld [wc0e9], a - ld [wc0e6], a - ld [wc0e7], a + ld [wUnusedC000], a + ld [wDisableChannelOutputWhenSfxEnds], a + ld [wMusicTempo + 1], a + ld [wMusicWaveInstrument], a + ld [wSfxWaveInstrument], a ld d, $8 - ld hl, wc016 - call FillMusicRAM1f - ld hl, wc006 - call FillMusicRAM1f + ld hl, wChannelReturnAddresses + call FillAudioRAM3 + ld hl, wChannelCommandPointers + call FillAudioRAM3 ld d, $4 - ld hl, wc026 - call FillMusicRAM1f - ld hl, wc02e - call FillMusicRAM1f - ld hl, wc03e - call FillMusicRAM1f - ld hl, wc046 - call FillMusicRAM1f - ld hl, wc04e - call FillMusicRAM1f - ld hl, wc056 - call FillMusicRAM1f - ld hl, wc05e - call FillMusicRAM1f - ld hl, wc066 - call FillMusicRAM1f - ld hl, wc06e - call FillMusicRAM1f - ld hl, wc036 - call FillMusicRAM1f - ld hl, wc076 - call FillMusicRAM1f - ld hl, wc07e - call FillMusicRAM1f - ld hl, wc086 - call FillMusicRAM1f - ld hl, wc08e - call FillMusicRAM1f - ld hl, wc096 - call FillMusicRAM1f - ld hl, wc09e - call FillMusicRAM1f - ld hl, wc0a6 - call FillMusicRAM1f - ld hl, wc0ae - call FillMusicRAM1f + ld hl, wChannelSoundIDs + call FillAudioRAM3 + ld hl, wChannelFlags1 + call FillAudioRAM3 + ld hl, wChannelDuties + call FillAudioRAM3 + ld hl, wChannelDutyCycles + call FillAudioRAM3 + ld hl, wChannelVibratoDelayCounters + call FillAudioRAM3 + ld hl, wChannelVibratoExtents + call FillAudioRAM3 + ld hl, wChannelVibratoRates + call FillAudioRAM3 + ld hl, wChannelFrequencyLowBytes + call FillAudioRAM3 + ld hl, wChannelVibratoDelayCounterReloadValues + call FillAudioRAM3 + ld hl, wChannelFlags2 + call FillAudioRAM3 + ld hl, wChannelPitchBendLengthModifiers + call FillAudioRAM3 + ld hl, wChannelPitchBendFrequencySteps + call FillAudioRAM3 + ld hl, wChannelPitchBendFrequencyStepsFractionalPart + call FillAudioRAM3 + ld hl, wChannelPitchBendCurrentFrequencyFractionalPart + call FillAudioRAM3 + ld hl, wChannelPitchBendCurrentFrequencyHighBytes + call FillAudioRAM3 + ld hl, wChannelPitchBendCurrentFrequencyLowBytes + call FillAudioRAM3 + ld hl, wChannelPitchBendTargetFrequencyHighBytes + call FillAudioRAM3 + ld hl, wChannelPitchBendTargetFrequencyLowBytes + call FillAudioRAM3 ld a, $1 - ld hl, wc0be - call FillMusicRAM1f - ld hl, wc0b6 - call FillMusicRAM1f - ld hl, wc0c6 - call FillMusicRAM1f - ld [wc0e8], a + ld hl, wChannelLoopCounters + call FillAudioRAM3 + ld hl, wChannelNoteDelayCounters + call FillAudioRAM3 + ld hl, wChannelNoteSpeeds + call FillAudioRAM3 + ld [wMusicTempo], a ld a, $ff - ld [wc004], a + ld [wStereoPanning], a xor a - ld [$ff24], a + ld [rNR50], a ld a, $8 - ld [$ff10], a + ld [rNR10], a ld a, $0 - ld [$ff25], a + ld [rNR51], a xor a - ld [$ff1a], a + ld [rNR30], a ld a, $80 - ld [$ff1a], a + ld [rNR30], a ld a, $77 - ld [$ff24], a - jp Func_7db03 + ld [rNR50], a + jp Audio3_7db03 -Func_7d9c2: ; 7d9c2 (1f:59c2) +Audio3_7d9c2: ; 7d9c2 (1f:59c2) ld l, a ld e, a ld h, $0 ld d, h add hl, hl add hl, de - ld de, SFX_Headers_1f + ld de, SFX_Headers_3 add hl, de ld a, h - ld [wc0ec], a + ld [wSfxHeaderPointer], a ld a, l - ld [wc0ed], a + ld [wSfxHeaderPointer + 1], a ld a, [hl] and $c0 rlca @@ -1382,9 +1382,9 @@ Func_7d9c2: ; 7d9c2 (1f:59c2) add c ld c, a ld b, $0 - ld a, [wc0ec] + ld a, [wSfxHeaderPointer] ld h, a - ld a, [wc0ed] + ld a, [wSfxHeaderPointer + 1] ld l, a add hl, bc ld c, d @@ -1392,7 +1392,7 @@ Func_7d9c2: ; 7d9c2 (1f:59c2) and $f ld e, a ld d, $0 - ld hl, wc026 + ld hl, wChannelSoundIDs add hl, de ld a, [hl] and a @@ -1400,7 +1400,7 @@ Func_7d9c2: ; 7d9c2 (1f:59c2) ld a, e cp $7 jr nz, .asm_7da0e - ld a, [wc001] + ld a, [wSoundID] cp $14 jr nc, .asm_7da07 ret @@ -1410,7 +1410,7 @@ Func_7d9c2: ; 7d9c2 (1f:59c2) jr z, .asm_7da17 jr c, .asm_7da17 .asm_7da0e - ld a, [wc001] + ld a, [wSoundID] cp [hl] jr z, .asm_7da17 jr c, .asm_7da17 @@ -1423,132 +1423,132 @@ Func_7d9c2: ; 7d9c2 (1f:59c2) add hl, hl ld d, h ld e, l - ld hl, wc016 + ld hl, wChannelReturnAddresses add hl, de ld [hli], a ld [hl], a - ld hl, wc006 + ld hl, wChannelCommandPointers add hl, de ld [hli], a ld [hl], a pop de - ld hl, wc026 + ld hl, wChannelSoundIDs add hl, de ld [hl], a - ld hl, wc02e + ld hl, wChannelFlags1 add hl, de ld [hl], a - ld hl, wc03e + ld hl, wChannelDuties add hl, de ld [hl], a - ld hl, wc046 + ld hl, wChannelDutyCycles add hl, de ld [hl], a - ld hl, wc04e + ld hl, wChannelVibratoDelayCounters add hl, de ld [hl], a - ld hl, wc056 + ld hl, wChannelVibratoExtents add hl, de ld [hl], a - ld hl, wc05e + ld hl, wChannelVibratoRates add hl, de ld [hl], a - ld hl, wc066 + ld hl, wChannelFrequencyLowBytes add hl, de ld [hl], a - ld hl, wc06e + ld hl, wChannelVibratoDelayCounterReloadValues add hl, de ld [hl], a - ld hl, wc076 + ld hl, wChannelPitchBendLengthModifiers add hl, de ld [hl], a - ld hl, wc07e + ld hl, wChannelPitchBendFrequencySteps add hl, de ld [hl], a - ld hl, wc086 + ld hl, wChannelPitchBendFrequencyStepsFractionalPart add hl, de ld [hl], a - ld hl, wc08e + ld hl, wChannelPitchBendCurrentFrequencyFractionalPart add hl, de ld [hl], a - ld hl, wc096 + ld hl, wChannelPitchBendCurrentFrequencyHighBytes add hl, de ld [hl], a - ld hl, wc09e + ld hl, wChannelPitchBendCurrentFrequencyLowBytes add hl, de ld [hl], a - ld hl, wc0a6 + ld hl, wChannelPitchBendTargetFrequencyHighBytes add hl, de ld [hl], a - ld hl, wc0ae + ld hl, wChannelPitchBendTargetFrequencyLowBytes add hl, de ld [hl], a - ld hl, wc036 + ld hl, wChannelFlags2 add hl, de ld [hl], a ld a, $1 - ld hl, wc0be + ld hl, wChannelLoopCounters add hl, de ld [hl], a - ld hl, wc0b6 + ld hl, wChannelNoteDelayCounters add hl, de ld [hl], a - ld hl, wc0c6 + ld hl, wChannelNoteSpeeds add hl, de ld [hl], a ld a, e cp $4 jr nz, .asm_7da9f ld a, $8 - ld [$ff10], a + ld [rNR10], a .asm_7da9f ld a, c and a - jp z, Func_7db03 + jp z, Audio3_7db03 dec c jp .asm_7d9db -Func_7daa8: ; 7daa8 (1f:5aa8) +Audio3_7daa8: ; 7daa8 (1f:5aa8) ld a, $80 - ld [$ff26], a - ld [$ff1a], a + ld [rNR52], a + ld [rNR30], a xor a - ld [$ff25], a - ld [$ff1c], a + ld [rNR51], a + ld [rNR32], a ld a, $8 - ld [$ff10], a - ld [$ff12], a - ld [$ff17], a - ld [$ff21], a + ld [rNR10], a + ld [rNR12], a + ld [rNR22], a + ld [rNR42], a ld a, $40 - ld [$ff14], a - ld [$ff19], a - ld [$ff23], a + ld [rNR14], a + ld [rNR24], a + ld [rNR44], a ld a, $77 - ld [$ff24], a + ld [rNR50], a xor a - ld [wc000], a - ld [wc003], a - ld [wc002], a - ld [wc0e9], a - ld [wc0eb], a - ld [wc0e6], a - ld [wc0e7], a + ld [wUnusedC000], a + ld [wDisableChannelOutputWhenSfxEnds], a + ld [wMuteAudioAndPauseMusic], a + ld [wMusicTempo + 1], a + ld [wSfxTempo + 1], a + ld [wMusicWaveInstrument], a + ld [wSfxWaveInstrument], a ld d, $a0 - ld hl, wc006 - call FillMusicRAM1f + ld hl, wChannelCommandPointers + call FillAudioRAM3 ld a, $1 ld d, $18 - ld hl, wc0b6 - call FillMusicRAM1f - ld [wc0e8], a - ld [wc0ea], a + ld hl, wChannelNoteDelayCounters + call FillAudioRAM3 + ld [wMusicTempo], a + ld [wSfxTempo], a ld a, $ff - ld [wc004], a + ld [wStereoPanning], a ret ; fills d bytes at hl with a -FillMusicRAM1f: ; 7dafd (1f:5afd) +FillAudioRAM3: ; 7dafd (1f:5afd) ld b, d .loop ld [hli], a @@ -1556,19 +1556,19 @@ FillMusicRAM1f: ; 7dafd (1f:5afd) jr nz, .loop ret -Func_7db03: ; 7db03 (1f:5b03) - ld a, [wc001] +Audio3_7db03: ; 7db03 (1f:5b03) + ld a, [wSoundID] ld l, a ld e, a ld h, $0 ld d, h add hl, hl add hl, de - ld de, SFX_Headers_1f + ld de, SFX_Headers_3 add hl, de ld e, l ld d, h - ld hl, wc006 + ld hl, wChannelCommandPointers ld a, [de] ; get channel number ld b, a rlca @@ -1594,14 +1594,14 @@ Func_7db03: ; 7db03 (1f:5b03) push af ld b, $0 ld c, a - ld hl, wc026 + ld hl, wChannelSoundIDs add hl, bc - ld a, [wc001] + ld a, [wSoundID] ld [hl], a pop af cp $3 jr c, .asm_7db46 - ld hl, wc02e + ld hl, wChannelFlags1 add hl, bc set 2, [hl] .asm_7db46 @@ -1620,38 +1620,38 @@ Func_7db03: ; 7db03 (1f:5b03) ld a, [de] inc de jr nz, .asm_7db25 - ld a, [wc001] + ld a, [wSoundID] cp $14 jr nc, .asm_7db5f jr .asm_7db89 .asm_7db5f - ld a, [wc001] + ld a, [wSoundID] cp $86 jr z, .asm_7db89 jr c, .asm_7db6a jr .asm_7db89 .asm_7db6a - ld hl, wc02a + ld hl, wChannelSoundIDs + CH4 ld [hli], a ld [hli], a ld [hli], a ld [hl], a - ld hl, wc012 ; sfx noise channel pointer - ld de, Noise1f_endchannel + ld hl, wChannelCommandPointers + CH6 * 2 ; sfx noise channel pointer + ld de, Noise3_endchannel ld [hl], e inc hl ld [hl], d ; overwrite pointer to point to endchannel - ld a, [wc005] + ld a, [wSavedVolume] and a jr nz, .asm_7db89 - ld a, [$ff24] - ld [wc005], a + ld a, [rNR50] + ld [wSavedVolume], a ld a, $77 - ld [$ff24], a + ld [rNR50], a .asm_7db89 ret -Noise1f_endchannel: ; 7db8a (1f:5b8a) +Noise3_endchannel: ; 7db8a (1f:5b8a) endchannel 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 4-7 -Music1f_Pitches: ; 7dba3 (1f:5ba3) +Audio3_Pitches: ; 7dba3 (1f:5ba3) dw $F82C ; C_ dw $F89D ; C# dw $F907 ; D_ |