core vdp, fix status reading synchronisation
authorkub <derkub@gmail.com>
Fri, 22 Apr 2022 18:50:20 +0000 (20:50 +0200)
committerkub <derkub@gmail.com>
Fri, 22 Apr 2022 18:50:20 +0000 (20:50 +0200)
pico/videoport.c

index 279347b..07b16b5 100644 (file)
@@ -984,14 +984,15 @@ static u32 VideoSr(const struct PicoVideo *pv)
 {\r
   unsigned int hp = pv->reg[12]&1 ? hboff40*488/slots40 : hboff32*488/slots32;\r
   unsigned int hl = pv->reg[12]&1 ? hblen40*488/slots40 : hblen32*488/slots32;\r
-  unsigned int c;\r
-  u32 d = (u16)pv->status;\r
+  unsigned int c = SekCyclesDone() - Pico.t.m68c_line_start;\r
+  u32 d;\r
+\r
+  PicoVideoFIFOSync(c);\r
+  d = (u16)pv->status;\r
 \r
-  c = SekCyclesDone() - Pico.t.m68c_line_start;\r
   if (c - hp < hl)\r
     d |= SR_HB;\r
 \r
-  PicoVideoFIFOSync(c);\r
   if (VdpFIFO.fifo_total >= 4)\r
     d |= SR_FULL;\r
   else if (!VdpFIFO.fifo_total)\r