fixed: broken fs0, sram saves
[fceu.git] / fds.c
diff --git a/fds.c b/fds.c
index a8e3d40..e5307ac 100644 (file)
--- a/fds.c
+++ b/fds.c
 #include <stdlib.h>\r
 #include <string.h>\r
 \r
+#ifdef GP2X\r
+#include <unistd.h> // for sync()\r
+#endif\r
+\r
 #include "types.h"\r
 #include "x6502.h"\r
 #include "fce.h"\r
@@ -85,12 +89,13 @@ static uint8 SelectDisk,InDisk;
 \r
 #define DC_INC    1\r
 \r
-void FDSGI(int h)\r
+void FDSGI(int h, void *param)\r
 {\r
  switch(h)\r
  {\r
   case GI_CLOSE: FDSClose();break;\r
   case GI_POWER: FDSInit();break;\r
+  case GI_INFOSTRING: sprintf(param, "FDS, Sides: %d", TotalSides);break;\r
  }\r
 }\r
 \r
@@ -910,10 +915,12 @@ void FDSClose(void)
 {\r
  FILE *fp;\r
  int x;\r
- char *fn=FCEU_MakeFName(FCEUMKF_FDS,0,0);\r
+ char *fn;\r
 \r
  if(!DiskWritten) return;\r
 \r
+ fn=FCEU_MakeFName(FCEUMKF_FDS,0,0);\r
+\r
  if(!(fp=FCEUD_UTF8fopen(fn,"wb")))\r
  {\r
   free(fn);\r
@@ -932,4 +939,8 @@ void FDSClose(void)
  }\r
  FreeFDSMemory();\r
  fclose(fp);\r
+#ifdef GP2X\r
+ sync();\r
+#endif\r
 }\r
+\r