#include <stdlib.h>
#include <stdio.h>
+#ifdef GP2X
+#include <unistd.h> // for sync()
+#endif
+
#include "types.h"
#include "fce.h"
#include "ppu.h"
+#include "ppu098.h"
#include "cart.h"
#include "memory.h"
#include "svga.h"
#include "file.h"
-#define FCEUPPU_LineUpdate(...)
-
/*
This file contains all code for coordinating the mapping in of the
address space external to the NES.
{
V&=PRGmask2[r];
setpageptr(2,A,PRGptr[r]?(&PRGptr[r][V<<11]):0,PRGram[r]);
+ X6502_Rebase();
}
void FASTAPASS(2) setprg2(uint32 A, uint32 V)
{
V&=PRGmask4[r];
setpageptr(4,A,PRGptr[r]?(&PRGptr[r][V<<12]):0,PRGram[r]);
+ X6502_Rebase();
}
void FASTAPASS(2) setprg4(uint32 A, uint32 V)
for(x=0;x<4;x++)
setpageptr(2,A+(x<<11),PRGptr[r]?(&PRGptr[r][((VA+x)&PRGmask2[r])<<11]):0,PRGram[r]);
}
+ X6502_Rebase();
}
void FASTAPASS(2) setprg8(uint32 A, uint32 V)
for(x=0;x<8;x++)
setpageptr(2,A+(x<<11),PRGptr[r]?(&PRGptr[r][((VA+x)&PRGmask2[r])<<11]):0,PRGram[r]);
}
+ X6502_Rebase();
}
void FASTAPASS(2) setprg16(uint32 A, uint32 V)
for(x=0;x<16;x++)
setpageptr(2,A+(x<<11),PRGptr[r]?(&PRGptr[r][((VA+x)&PRGmask2[r])<<11]):0,PRGram[r]);
}
+ X6502_Rebase();
}
void FASTAPASS(2) setprg32(uint32 A, uint32 V)
geniestage=2;
}
+static uint8 *real_pages[16];
+
+void GenieSetPages(int restore)
+{
+ int page;
+ if (restore)
+ {
+ for (page=16; page<32; page++)
+ Page[page] = real_pages[page-16];
+ }
+ else
+ {
+ for (page=16; page<32; page++) {
+ real_pages[page-16] = Page[page];
+ Page[page]=GENIEROM - (page<<11) + ((page&1)<<11);
+ }
+ }
+}
void FCEU_SaveGameSave(CartInfo *LocalHWInfo)
{
fwrite(LocalHWInfo->SaveGame[x],1,
LocalHWInfo->SaveGameLen[x],sp);
}
+ fclose(sp);
+#ifdef GP2X
+ sync();
+#endif
}
free(soot);
}
for(x=0;x<4;x++)
if(LocalHWInfo->SaveGame[x])
fread(LocalHWInfo->SaveGame[x],1,LocalHWInfo->SaveGameLen[x],sp);
+ fclose(sp);
}
free(soot);
}
}
+void DumpEmptyCartMapping(void)
+{
+ int x, st=0, end=-1;
+
+ for(x=8;x<32;x++)
+ {
+ if (Page[x] == (nothing-x*2048) || Page[x] == 0)
+ {
+ if (end != x) st=x;
+ end=x+1;
+ }
+ if (end == x)
+ printf("DumpEmptyCartMapping: %04x-%04x\n", st*2048, end*2048-1);
+ }
+ if (end==32)
+ printf("DumpEmptyCartMapping: %04x-%04x\n", st*2048, end*2048-1);
+}
+