recognize the MED ssf2 header
[picodrive.git] / pico / sek.c
index 86a351f..8bf0341 100644 (file)
@@ -60,6 +60,8 @@ static int SekUnrecognizedOpcode()
     PicoCpuCM68k.state_flags |= 1;\r
     return 1;\r
   }\r
+  // happened once - may happen again\r
+  SekFinishIdleDet();\r
 #ifdef EMU_M68K // debugging cyclone\r
   {\r
     extern int have_illegal;\r
@@ -421,6 +423,8 @@ int SekRegisterIdlePatch(unsigned int pc, int oldop, int newop, void *ctx)
 \r
 void SekFinishIdleDet(void)\r
 {\r
+  if (idledet_count < 0)\r
+    return;\r
 #ifdef EMU_C68K\r
   CycloneFinishIdle();\r
 #endif\r
@@ -439,6 +443,7 @@ void SekFinishIdleDet(void)
     else\r
       elprintf(EL_STATUS|EL_IDLE, "idle: don't know how to restore %04x", *op);\r
   }\r
+  idledet_count = -1;\r
 }\r
 \r
 \r
@@ -549,6 +554,7 @@ breakloop:
                        printf("D%d: %08x  A%d: %08x\n", i, x68k->dar[i],\r
         i, x68k->dar[i + 8]);\r
                printf("PC: %08x, %08x\n", x68k->pc, x68k->pc_prev);\r
+               printf("SR: %04x\n", x68k->sr);\r
 \r
     PDebugDumpMem();\r
     exit(1);\r