X-Git-Url: https://notaz.gp2x.de/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=pico%2Farea.c;h=23e00daed36a2d4877407eed680f58aa2bd3b359;hb=679af8a3f466a2a4a20f58e4181a231fb73e9836;hp=8a14d55847442d73899a832352297bd00121666f;hpb=bcc9eda077d079ea5005d60ac58f9fe0d5105abe;p=picodrive.git diff --git a/pico/area.c b/pico/area.c index 8a14d55..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]) @@ -144,6 +144,10 @@ static int PicoAreaScan(int is_write, unsigned int ver, void *PmovFile) SCAN_VAR(Pico.m ,"misc") SCAN_VAR(Pico.video,"video") + // no longer keeping eeprom data in sram_reg + if (!is_write && (Pico.m.sram_reg & 4)) + Pico.m.sram_reg = SRR_MAPPED; + if (is_write) z80_pack(cpu_z80); ret = SCAN_VAR(cpu_z80,"cpu_z80") @@ -170,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) @@ -186,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)