aboutsummaryrefslogtreecommitdiff
path: root/src-z80/core/sfx.z80
diff options
context:
space:
mode:
Diffstat (limited to 'src-z80/core/sfx.z80')
-rw-r--r--src-z80/core/sfx.z8030
1 files changed, 14 insertions, 16 deletions
diff --git a/src-z80/core/sfx.z80 b/src-z80/core/sfx.z80
index b7e26aa..f32a8f0 100644
--- a/src-z80/core/sfx.z80
+++ b/src-z80/core/sfx.z80
@@ -273,26 +273,16 @@ ClearSFX:
rrca
ld iyl, a
- ld a, b ; Kill ADSR
+ ld a, b ; Kill ADSR
call KillFM
PollPCM
-
- ld hl, RAM_BGMFMVol ; Restore BGM FM volume
- ld a, b
- add l
- ld l, a
- ld c, (hl)
- ld a, l
- add 8
- ld l, a
- ld (hl), c
-
- PollPCM
-
- ld a, l ; Restore BGM FM instrument
- sub 8*2
+
+ ld a, b ; Restore BGM FM instrument
+ ld h, RAM_BGMFMInstr>>8
+ add RAM_BGMFMInstr&$FF
ld l, a
+
push bc
push de
push hl
@@ -302,6 +292,14 @@ ClearSFX:
pop hl
pop de
pop bc
+
+ PollPCM
+
+ ld a, b ; Restore BGM FM volume
+ add RAM_BGMFMVol&$FF
+ ld l, a
+ ld b, (hl)
+ call SetFMVolLoad
PollPCM
inc b