cd: fix copy-paste bug, comm issue
authornotaz <notasas@gmail.com>
Sun, 22 Sep 2013 21:45:33 +0000 (00:45 +0300)
committernotaz <notasas@gmail.com>
Tue, 24 Sep 2013 00:57:43 +0000 (03:57 +0300)
pico/cd/mcd.c
pico/cd/memory.c
pico/cd/memory_arm.s
platform/libpicofe

index 6a978f8..3f6afa5 100644 (file)
@@ -345,7 +345,9 @@ void pcd_state_loaded(void)
     if (Pico_mcd->scd.Status_CDC & 0x08)
            Update_CDC_TRansfer(Pico_mcd->s68k_regs[4] & 7);
   }
-  if (Pico_mcd->pcm.update_cycles == 0)
+
+  diff = cycles - Pico_mcd->pcm.update_cycles;
+  if ((unsigned int)diff > 12500000/50)
     Pico_mcd->pcm.update_cycles = cycles;
 
   // reschedule
index 2c53b33..b0f5e4a 100644 (file)
@@ -222,12 +222,13 @@ write_comm:
 \r
   pcd_sync_s68k(SekCyclesDone(), 0);\r
   Pico_mcd->s68k_regs[a] = d;\r
-  if (Pico_mcd->m.s68k_poll_a == (a & ~1)\r
-      && Pico_mcd->m.s68k_poll_cnt > POLL_LIMIT)\r
+  if (Pico_mcd->m.s68k_poll_a == (a & ~1))\r
   {\r
-    SekSetStopS68k(0);\r
+    if (Pico_mcd->m.s68k_poll_cnt > POLL_LIMIT) {\r
+      elprintf(EL_CDPOLL, "s68k poll release, a=%02x", a);\r
+      SekSetStopS68k(0);\r
+    }\r
     Pico_mcd->m.s68k_poll_a = 0;\r
-    elprintf(EL_CDPOLL, "s68k poll release, a=%02x", a);\r
   }\r
 }\r
 \r
@@ -662,7 +663,7 @@ void PicoWrite8_mcd_io(u32 a, u32 d)
     return;\r
   }\r
 \r
-  PicoWrite16_io(a, d);\r
+  PicoWrite8_io(a, d);\r
 }\r
 \r
 void PicoWrite16_mcd_io(u32 a, u32 d)\r
@@ -671,7 +672,7 @@ void PicoWrite16_mcd_io(u32 a, u32 d)
     elprintf(EL_CDREGS, "m68k_regs w16: [%02x] %04x @%06x",\r
       a & 0x3f, d, SekPc);\r
 \r
-    m68k_reg_write8(a,     d >> 8);\r
+    m68k_reg_write8(a, d >> 8);\r
     if ((a & 0x3e) != 0x0e) // special case\r
       m68k_reg_write8(a + 1, d & 0xff);\r
     return;\r
index b54d995..e19c561 100644 (file)
@@ -433,6 +433,7 @@ m_s68k_read8_comm:
     ldr     r1, [r1]
     add     r1, r1, #0x110000
     ldrb    r1, [r1, r0]
+    bic     r0, r0, #1
     b       s68k_poll_detect
 
 
index 9028744..18306c3 160000 (submodule)
@@ -1 +1 @@
-Subproject commit 9028744c193c011a7a0b1ed2e069208f57ffa2fa
+Subproject commit 18306c325f0d24fc7232dff055e814432e06d5d1