areaseek *areaSeek = (areaseek *) 0;\r
areaclose *areaClose = (areaclose *) 0;\r
\r
+void (*PicoLoadStateHook)(void) = NULL;\r
+\r
\r
// Scan one variable and callback\r
static int ScanVar(void *data,int len,char *name,void *PmovFile,int PmovAction)\r
*(unsigned int *)(cpu+0x44)=context->sr;\r
*(unsigned int *)(cpu+0x48)=context->asp;\r
cpu[0x4c] = context->interrupts[0];\r
- cpu[0x4d] = (context->execinfo & M68K_HALTED) ? 1 : 0;\r
+ cpu[0x4d] = (context->execinfo & FM68K_HALTED) ? 1 : 0;\r
#endif\r
\r
*(unsigned int *)(cpu+0x40)=pc;\r
context->sr =*(unsigned int *)(cpu+0x44);\r
context->asp=*(unsigned int *)(cpu+0x48);\r
context->interrupts[0] = cpu[0x4c];\r
- context->execinfo &= ~M68K_HALTED;\r
- if (cpu[0x4d]&1) context->execinfo |= M68K_HALTED;\r
+ context->execinfo &= ~FM68K_HALTED;\r
+ if (cpu[0x4d]&1) context->execinfo |= FM68K_HALTED;\r
#endif\r
return 0;\r
}\r
int minimum=0;\r
unsigned char head[32];\r
\r
- if (PicoMCD & 1)\r
+ if ((PicoMCD & 1) || carthw_chunks != NULL)\r
{\r
if (PmovAction&1) return PicoCdSaveState(PmovFile);\r
- if (PmovAction&2) return PicoCdLoadState(PmovFile);\r
+ if (PmovAction&2) {\r
+ int ret = PicoCdLoadState(PmovFile);\r
+ if (PicoLoadStateHook) PicoLoadStateHook();\r
+ return ret;\r
+ }\r
}\r
\r
memset(head,0,sizeof(head));\r
// Scan memory areas:\r
PicoAreaScan(PmovAction, *(unsigned int *)(head+0x8), PmovFile);\r
\r
+ if ((PmovAction&2) && PicoLoadStateHook) PicoLoadStateHook();\r
+\r
return 0;\r
}\r
\r