From 23aa0a3c49e2d5e548752dc9f30c137b06cfd999 Mon Sep 17 00:00:00 2001 From: Toni Wilen Date: Mon, 12 Feb 2024 20:40:05 +0200 Subject: [PATCH] Reduce LDP ACK delay. It was far too long. (Picmatic Zorton Brothers hang fix) --- arcadia.cpp | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/arcadia.cpp b/arcadia.cpp index 4f50d408..a00d063f 100644 --- a/arcadia.cpp +++ b/arcadia.cpp @@ -725,7 +725,7 @@ static void sb(uae_u8 v) } static void ack(void) { - ld_wait_ack = 1; + ld_wait_ack = alg_hsync_delay + 30; sb(0x0a); // ACK } @@ -1008,7 +1008,6 @@ bool alg_ld_active(void) static void alg_vsync(void) { - ld_wait_ack = 0; ld_vsync++; if (ld_save_restore) { if (ld_address == 0 || getsetpositionvideograb(ld_address) > 0) { @@ -1096,8 +1095,11 @@ static int sony_serial_write(void) { if (ser_buf_offset > 0) { uae_u16 v = alg_ser_buf[0]; - if (v == 0x0a && ld_wait_ack) - return -1; + if (v == 0x0a) { + if (arcadia_hsync_cnt < ld_wait_ack) { + return -1; + } + } ser_buf_offset--; memmove(alg_ser_buf, alg_ser_buf + 1, ser_buf_offset); return v; -- 2.47.3