+ while (idledet_count > 0)\r
+ {\r
+ unsigned short *op = (unsigned short *)&Pico.rom[idledet_addrs[--idledet_count]];\r
+ if ((*op & 0xfd00) == 0x7100)\r
+ *op &= 0xff, *op |= 0x6600;\r
+ else if ((*op & 0xfd00) == 0x7500)\r
+ *op &= 0xff, *op |= 0x6700;\r
+ else if ((*op & 0xfd00) == 0x7d00)\r
+ *op &= 0xff, *op |= 0x6000;\r
+ else\r
+ elprintf(EL_STATUS|EL_IDLE, "idle: don't know how to restore %04x", *op);\r
+ }\r
+\r
+ if (done_something)\r
+ {\r
+ int i;\r
+ for (i = 0; i < Pico.romsize; i++)\r
+ if (rom_verify[i] != Pico.rom[i])\r
+ printf("ROM corruption @ %06x!\n", i), exit(1);\r
+ }\r
+}\r
+\r
+\r
+#if defined(EMU_M68K) && M68K_INSTRUCTION_HOOK == OPT_SPECIFY_HANDLER\r
+static unsigned char op_flags[0x400000/2] = { 0, };\r
+static int atexit_set = 0;\r
+\r
+static void make_idc(void)\r
+{\r
+ FILE *f = fopen("idc.idc", "w");\r
+ int i;\r
+ if (!f) return;\r
+ fprintf(f, "#include <idc.idc>\nstatic main() {\n");\r
+ for (i = 0; i < 0x400000/2; i++)\r
+ if (op_flags[i] != 0)\r
+ fprintf(f, " MakeCode(0x%06x);\n", i*2);\r
+ fprintf(f, "}\n");\r
+ fclose(f);\r