s68k-side Silpheed hack (needed for EU version)
[picodrive.git] / pico / cd / memory.c
index 32c9515..4e56bf7 100644 (file)
@@ -315,10 +315,13 @@ void s68k_reg_write8(u32 a, u32 d)
           wram_1M_to_2M(Pico_mcd->word_ram2M);\r
           PicoMemResetCD(d);\r
         }\r
-        else\r
-          d |= dold&1;\r
         // s68k can only set RET, writing 0 has no effect\r
-        if (d&1) d &= ~2; // return word RAM to m68k in 2M mode\r
+        else if ((dold ^ d) & d & 1) {   // RET being set\r
+          SekEndRunS68k(20+16+10+12+16); // see DMNA case\r
+        } else\r
+          d |= dold & 1;\r
+        if (d & 1)\r
+          d &= ~2;                       // DMNA clears\r
       }\r
       break;\r
     }\r