]> git.unchartedbackwaters.co.uk Git - francis/winuae.git/commitdiff
Reduce LDP ACK delay. It was far too long. (Picmatic Zorton Brothers hang fix)
authorToni Wilen <twilen@winuae.net>
Mon, 12 Feb 2024 18:40:05 +0000 (20:40 +0200)
committerToni Wilen <twilen@winuae.net>
Mon, 12 Feb 2024 18:40:05 +0000 (20:40 +0200)
arcadia.cpp

index 4f50d40841a54cb1160a5381807ebbeae71a6cc5..a00d063fa3c457019356b71e5bd2eb6e7afaee17 100644 (file)
@@ -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;