X-Git-Url: https://notaz.gp2x.de/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=pico%2Farea.c;h=23e00daed36a2d4877407eed680f58aa2bd3b359;hb=b60b8745c02ebe6fb6584161b4ee5feae1716000;hp=4ac71dfabad461a98a1dad63bb620c15f1245336;hpb=45f2f245f51ef0c0d37df3c998595c132bfcaffa;p=picodrive.git diff --git a/pico/area.c b/pico/area.c index 4ac71df..23e00da 100644 --- a/pico/area.c +++ b/pico/area.c @@ -16,7 +16,6 @@ // sn76496 extern int *sn76496_regs; - struct PicoArea { void *data; int len; char *name; }; // strange observation on Symbian OS 9.1, m600 organizer fw r3a06: @@ -89,8 +88,9 @@ PICO_INTERNAL void PicoAreaUnpackCpu(unsigned char *cpu, int is_sub) CycloneSetSr(context, *(unsigned int *)(cpu+0x44)); context->osp=*(unsigned int *)(cpu+0x48); memcpy(context->d,cpu,0x40); - context->membase=0; - context->pc = context->checkpc(*(unsigned int *)(cpu+0x40)); // Base pc + context->membase = 0; + context->pc = *(unsigned int *)(cpu+0x40); + CycloneUnpack(context, NULL); // rebase PC context->irq = cpu[0x4c]; context->state_flags = 0; if (cpu[0x4d]) @@ -174,7 +174,6 @@ static int PicoAreaScan(int is_write, unsigned int ver, void *PmovFile) // Save or load the state from PmovFile: static int PmovState(int is_write, void *PmovFile) { - int minimum=0; unsigned char head[32]; if ((PicoAHW & PAHW_MCD) || carthw_chunks != NULL) @@ -190,12 +189,10 @@ static int PmovState(int is_write, void *PmovFile) memset(head,0,sizeof(head)); - // Find out minimal compatible version: - minimum = 0x0021; - + // not really used.. memcpy(head,"Pico",4); - *(unsigned int *)(head+0x8)=PicoVer; - *(unsigned int *)(head+0xc)=minimum; + *(unsigned int *)(head+0x8)=0x0133; + *(unsigned int *)(head+0xc)=0x0021; // Scan header: if (is_write)