summaryrefslogtreecommitdiff
path: root/audio/engine_3.asm
diff options
context:
space:
mode:
authordannye <33dannye@gmail.com>2020-05-20 19:40:33 -0500
committerdannye <33dannye@gmail.com>2020-05-20 20:02:53 -0500
commit10f9559eab8c93b94abb8ae8d1083704ad4e169a (patch)
tree7dbe7b152dde8a6e9b56664b5b8cdfc0d6be1253 /audio/engine_3.asm
parentb8954732a3eaa3a784a6e3eaaa68977a9ccd9816 (diff)
Sync with pokered
Diffstat (limited to 'audio/engine_3.asm')
-rw-r--r--audio/engine_3.asm125
1 files changed, 63 insertions, 62 deletions
diff --git a/audio/engine_3.asm b/audio/engine_3.asm
index 418ee10b..2d4a30e3 100644
--- a/audio/engine_3.asm
+++ b/audio/engine_3.asm
@@ -4,21 +4,22 @@ Audio3_PlaySound::
ld [wSoundID], a
ld a, [wSoundID]
cp $ff
- jp z, Audio3_7d18e
- cp $c2
- jp z, Audio3_7d12d
- jp c, Audio3_7d12d
+ jp z, .stopAllAudio
+ cp MAX_SFX_ID_3
+ jp z, .playSfx
+ jp c, .playSfx
cp $fd
- jr z, .asm_7d127
- jp nc, Audio3_7d12d
-.asm_7d127
+ jr z, .playMusic
+ jp nc, .playSfx
+
+.playMusic
call InitMusicVariables
- jp Audio3_7d192
+ jp .playSoundCommon
-Audio3_7d12d:
+.playSfx
ld l, a
ld e, a
- ld h, $0
+ ld h, 0
ld d, h
add hl, hl
add hl, de
@@ -33,13 +34,13 @@ Audio3_7d12d:
rlca
rlca
ld c, a
-.asm_7d146
+.sfxChannelLoop
ld d, c
ld a, c
add a
add c
ld c, a
- ld b, $0
+ ld b, 0
ld a, [wSfxHeaderPointer]
ld h, a
ld a, [wSfxHeaderPointer + 1]
@@ -48,48 +49,48 @@ Audio3_7d12d:
ld c, d
ld a, [hl]
and $f
- ld e, a
- ld d, $0
+ ld e, a ; software channel ID
+ ld d, 0
ld hl, wChannelSoundIDs
add hl, de
ld a, [hl]
and a
- jr z, .asm_7d182
+ jr z, .playChannel
ld a, e
- cp $7
- jr nz, .asm_7d179
+ cp Ch8
+ jr nz, .notNoiseChannel
ld a, [wSoundID]
- cp $14
- jr nc, .asm_7d172
+ cp NOISE_INSTRUMENTS_END
+ jr nc, .notNoiseInstrument
ret
-.asm_7d172
+.notNoiseInstrument
ld a, [hl]
- cp $14
- jr z, .asm_7d182
- jr c, .asm_7d182
-.asm_7d179
+ cp NOISE_INSTRUMENTS_END
+ jr z, .playChannel
+ jr c, .playChannel
+.notNoiseChannel
ld a, [wSoundID]
cp [hl]
- jr z, .asm_7d182
- jr c, .asm_7d182
+ jr z, .playChannel
+ jr c, .playChannel
ret
-.asm_7d182
+.playChannel
call InitSFXVariables
ld a, c
and a
- jp z, Audio3_7d192
+ jp z, .playSoundCommon
dec c
- jp .asm_7d146
+ jp .sfxChannelLoop
-Audio3_7d18e:
+.stopAllAudio
call StopAllAudio
ret
-Audio3_7d192:
+.playSoundCommon
ld a, [wSoundID]
ld l, a
ld e, a
- ld h, $0
+ ld h, 0
ld d, h
add hl, hl
add hl, de
@@ -109,26 +110,26 @@ Audio3_7d192:
ld b, c
inc b
inc de
- ld c, $0
-.asm_7d1b4
+ ld c, 0
+.commandPointerLoop
cp c
- jr z, .asm_7d1bc
+ jr z, .next
inc c
inc hl
inc hl
- jr .asm_7d1b4
-.asm_7d1bc
+ jr .commandPointerLoop
+.next
push af
push hl
push bc
- ld b, $0
+ ld b, 0
ld c, a
- cp $3
- jr c, .asm_7d1cc
+ cp Ch4
+ jr c, .skipSettingFlag
ld hl, wChannelFlags1
add hl, bc
- set 2, [hl]
-.asm_7d1cc
+ set BIT_NOISE_OR_SFX, [hl]
+.skipSettingFlag
pop bc
pop hl
ld a, [de] ; get channel pointer
@@ -140,7 +141,7 @@ Audio3_7d192:
pop af
push hl
push bc
- ld b, $0
+ ld b, 0
ld c, a
ld hl, wChannelSoundIDs
add hl, bc
@@ -154,37 +155,37 @@ Audio3_7d192:
and a
ld a, [de]
inc de
- jr nz, .asm_7d1b4
+ jr nz, .commandPointerLoop
ld a, [wSoundID]
- cp $14
- jr nc, .asm_7d1f5
- jr .asm_7d21f
-.asm_7d1f5
+ cp CRY_SFX_START
+ jr nc, .maybeCry
+ jr .done
+.maybeCry
ld a, [wSoundID]
- cp $86
- jr z, .asm_7d21f
- jr c, .asm_7d200
- jr .asm_7d21f
-.asm_7d200
- ld hl, wChannelSoundIDs + CH4
+ cp CRY_SFX_END
+ jr z, .done
+ jr c, .cry
+ jr .done
+.cry
+ ld hl, wChannelSoundIDs + Ch5
ld [hli], a
ld [hli], a
ld [hli], a
ld [hl], a
- ld hl, wChannelCommandPointers + CH6 * 2 ; sfx noise channel pointer
- ld de, Noise3_endchannel
+ ld hl, wChannelCommandPointers + Ch7 * 2 ; sfx wave channel pointer
+ ld de, Audio3_CryRet
ld [hl], e
inc hl
- ld [hl], d ; overwrite pointer to point to endchannel
+ ld [hl], d ; overwrite pointer to point to sound_ret
ld a, [wSavedVolume]
and a
- jr nz, .asm_7d21f
+ jr nz, .done
ld a, [rNR50]
ld [wSavedVolume], a
ld a, $77
- ld [rNR50], a
-.asm_7d21f
+ ld [rNR50], a ; full volume
+.done
ret
-Noise3_endchannel:
- endchannel
+Audio3_CryRet:
+ sound_ret