If another SFX with the same channel is playing during a Continuous SFX, the Continuous flag will never be reset and the Continuous SFX will not play again.
I know Continuous SFX has been fixed in AMPS and this kind of bug is absent there...
The object I made for my project:
; ---------------------------------------------------------------------------
; Object 49 - waterfall sound effect (GHZ)
; ---------------------------------------------------------------------------
; =============== S U B R O U T I N E =======================================
Obj_WaterSound:
moveq #signextendB(sfx_Waterfall),d0
moveq #$F,d1 ; play water sound
jsr (Play_SFX_Continuous).w
jmp (Delete_Sprite_If_Not_In_Range).w
; =============== S U B R O U T I N E =======================================
Play_SFX_Continuous:
and.b (V_int_run_count+3).w,d1
bne.s StartNewLevel.return
bra.w Play_SFX ; play sfx
I added this code for the pause. And it solved the problem of Continuous SFX for pause
.unpause:
xor a ; a = 0
ld (hl), a ; Clear pause flag
ld (zContinuousSFX), a ; Clear continuous SFX ID
ld (zContinuousSFXFlag), a ; Clear continuous SFX flag
ld (zContSFXLoopCnt), a ; Clear continuous SFX counter
ld a, (zFadeOutTimeout) ; Get fade timeout
...
There are two problems here that I've noticed
https://youtu.be/qMOh0JcW97w
https://youtu.be/xm5QhsBn-bY https://youtu.be/OsxBIM740qk
I know Continuous SFX has been fixed in AMPS and this kind of bug is absent there...
The object I made for my project:
I added this code for the pause. And it solved the problem of Continuous SFX for pause