diff options
Diffstat (limited to 'src-z80/player')
| -rw-r--r-- | src-z80/player/fm.z80 | 21 |
1 files changed, 9 insertions, 12 deletions
diff --git a/src-z80/player/fm.z80 b/src-z80/player/fm.z80 index 96c9f4c..b48e79b 100644 --- a/src-z80/player/fm.z80 +++ b/src-z80/player/fm.z80 @@ -222,9 +222,8 @@ LoadFMBGM: PollPCM call GetParam PollPCM - ex de, hl - ld (hl), b - ex de, hl + ld a, b + ld (de), a ld a, e ; Reset volume add 8 @@ -240,9 +239,9 @@ LoadFMBGM: PollPCM push hl ; Check if channel is free - ld hl, RAM_Locked ld a, b - add l + ld h, RAM_Locked>>8 + add RAM_Locked&$FF ld l, a ld a, (hl) pop hl @@ -251,8 +250,7 @@ LoadFMBGM: PollPCM - ld a, b - and $07 + ld a, b ; Get back instrument ID push hl ld hl, RAM_BGMFMInstr add l @@ -260,9 +258,9 @@ LoadFMBGM: ld b, (hl) pop hl - push af + ex af, af' PollPCM - pop af + ex af, af' call LoadFMDirect ; We're just a wrapper jp ProcessBGMRun ; End of subroutine @@ -350,8 +348,7 @@ LoadFMDirect: add $B0 ld hl, RAM_Scratch ; Get address of buffer with the instrument - ; data - + ; data ex af, af' PollPCM ; Write operator ex af, af' @@ -741,7 +738,7 @@ LockChannelFM: rrca ld iyl, a - ld a, b ; Reset stereo + ld a, b ; Reset FM parameters and $03 add a add a |
