aboutsummaryrefslogtreecommitdiff
path: root/src-z80/core
diff options
context:
space:
mode:
authorSik2019-07-07 03:35:06 -0300
committerSik2019-07-07 03:35:06 -0300
commit8e96c87f2d2bac7207718fd211f29fc085d31bc3 (patch)
tree90b23e2324330dc963fe8e73a16699ec24a82acc /src-z80/core
parentfbcb8924e878e7eff93d444762c647e126cb8e3b (diff)
Fixing bugs with Echo_PlayDirect (oof)
Diffstat (limited to 'src-z80/core')
-rw-r--r--src-z80/core/direct.z806
-rw-r--r--src-z80/core/vars.z801
2 files changed, 7 insertions, 0 deletions
diff --git a/src-z80/core/direct.z80 b/src-z80/core/direct.z80
index d796ddf..570175f 100644
--- a/src-z80/core/direct.z80
+++ b/src-z80/core/direct.z80
@@ -10,6 +10,9 @@ ProcessDirect:
inc a
ret z
+ ld a, $FF ; Put bogus length for direct stream
+ ld (RAM_DirectLen), a ; so 68000 knows to wait
+
PollPCM
ld hl, ProcessDirectEnd ; Override $FF event
@@ -24,7 +27,10 @@ ProcessDirect:
ProcessDirectEnd:
ld hl, StopBGMEvent ; Restore $FF event
ld (ProcessBGMEventFF+1), hl
+
ld a, $FF ; Reset the stream
ld ($1F00), a
+ inc a
+ ld (RAM_DirectLen), a
ret ; Return to the main loop
diff --git a/src-z80/core/vars.z80 b/src-z80/core/vars.z80
index 23b15b5..054106b 100644
--- a/src-z80/core/vars.z80
+++ b/src-z80/core/vars.z80
@@ -77,6 +77,7 @@ RAM_PointerList: equ $1C00
; 68000 communication variables
;****************************************************************************
+RAM_DirectLen: equ $1F80 ; Length of direct event stream
RAM_Stack: equ $1FE0 ; Where stack starts
RAM_GlobalVol: equ $1FE0 ; Global volume for all channels