X-Git-Url: https://notaz.gp2x.de/cgi-bin/gitweb.cgi?p=fceu.git;a=blobdiff_plain;f=fds.c;h=501aefcc86a2ef3c8d86d2835c003b4bd7af9956;hp=8e2fa60e82a19b9c688c91a869260104612f833e;hb=6244011fd85a10400accd6d8e7d941144f92aa5b;hpb=989672f4f2b4b4b2b373271374e6546546091c10 diff --git a/fds.c b/fds.c index 8e2fa60..501aefc 100644 --- a/fds.c +++ b/fds.c @@ -22,6 +22,10 @@ #include #include +#ifdef GP2X +#include // for sync() +#endif + #include "types.h" #include "x6502.h" #include "fce.h" @@ -85,12 +89,13 @@ static uint8 SelectDisk,InDisk; #define DC_INC 1 -void FDSGI(int h) +void FDSGI(int h, void *param) { switch(h) { case GI_CLOSE: FDSClose();break; case GI_POWER: FDSInit();break; + case GI_INFOSTRING: sprintf(param, "FDS, Sides: %d", TotalSides);break; } } @@ -150,9 +155,9 @@ static void FDSInit(void) int page; // asm code needs pages to be set again.. for (page=12; page<28; page++) // 0x6000-0xdfff 32K RAM - Page[page]=FDSRAM - (page<<11) + ((page-12)<<11); + Page[page]=FDSRAM - (12<<11); for (; page<32; page++) // 0xe000-0xffff 8K BIOS - Page[page]=FDSBIOS - (page<<11) + ((page-28)<<11); + Page[page]=FDSBIOS - (28<<11); } #endif } @@ -910,26 +915,41 @@ void FDSClose(void) { FILE *fp; int x; - char *fn=FCEU_MakeFName(FCEUMKF_FDS,0,0); - - if(!DiskWritten) return; + char *fn; - if(!(fp=FCEUD_UTF8fopen(fn,"wb"))) + if(!DiskWritten) { - free(fn); - return; - } - free(fn); + fn=FCEU_MakeFName(FCEUMKF_FDS,0,0); - for(x=0;x