core, TH input latency only if output was low
authorkub <derkub@gmail.com>
Tue, 4 Oct 2022 21:11:26 +0000 (21:11 +0000)
committerkub <derkub@gmail.com>
Tue, 4 Oct 2022 21:11:26 +0000 (21:11 +0000)
pico/memory.c

index e76082a..0345019 100644 (file)
@@ -416,8 +416,8 @@ NOINLINE void io_ports_write(u32 a, u32 d)
   // after switching TH to input there's a latency before the pullup value is \r
   // read back as input (see Decap Attack, not in Samurai Showdown, 32x WWF Raw)\r
   if (4 <= a && a <= 5) {\r
-    if ((PicoMem.ioports[a] & 0x40) && !(d & 0x40))\r
-      // latency after switching to input\r
+    if ((PicoMem.ioports[a] & 0x40) && !(d & 0x40) && !(PicoMem.ioports[a - 3] & 0x40))\r
+      // latency after switching to input and output was low\r
       padTHLatency[a - 4] = SekCyclesDone() + 25;\r
   }\r
 \r