notaz.gp2x.de
/
fceu.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
random warning fixes
[fceu.git]
/
fds.c
diff --git
a/fds.c
b/fds.c
index
a8e3d40
..
501aefc
100644
(file)
--- a/
fds.c
+++ b/
fds.c
@@
-22,6
+22,10
@@
#include <stdlib.h>
\r
#include <string.h>
\r
\r
#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
#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
\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
{
\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
}
\r
}
\r
\r
@@
-910,26
+915,41
@@
void FDSClose(void)
{
\r
FILE *fp;
\r
int x;
\r
{
\r
FILE *fp;
\r
int x;
\r
- char *fn=FCEU_MakeFName(FCEUMKF_FDS,0,0);
\r
-
\r
- if(!DiskWritten) return;
\r
+ char *fn;
\r
\r
\r
- if(!
(fp=FCEUD_UTF8fopen(fn,"wb"))
)
\r
+ if(!
DiskWritten
)
\r
{
\r
{
\r
- free(fn);
\r
- return;
\r
- }
\r
- free(fn);
\r
+ fn=FCEU_MakeFName(FCEUMKF_FDS,0,0);
\r
\r
\r
- for(x=0;x<TotalSides;x++)
\r
- {
\r
- if(fwrite(diskdata[x],1,65500,fp)!=65500)
\r
+ if(!(fp=FCEUD_UTF8fopen(fn,"wb")))
\r
{
\r
{
\r
- FCEU_PrintError("Error saving FDS image!");
\r
- fclose(fp);
\r
+ free(fn);
\r
return;
\r
}
\r
return;
\r
}
\r
+ free(fn);
\r
+
\r
+ for(x=0;x<TotalSides;x++)
\r
+ {
\r
+ if(fwrite(diskdata[x],1,65500,fp)!=65500)
\r
+ {
\r
+ FCEU_PrintError("Error saving FDS image!");
\r
+ fclose(fp);
\r
+ return;
\r
+ }
\r
+ }
\r
+ fclose(fp);
\r
+#ifdef GP2X
\r
+ sync();
\r
+#endif
\r
}
\r
}
\r
+
\r
FreeFDSMemory();
\r
FreeFDSMemory();
\r
- fclose(fp);
\r
+ for(x=0;x<TotalSides;x++)
\r
+ if(diskdatao[x])
\r
+ {
\r
+ free(diskdatao[x]);
\r
+ diskdatao[x]=0;
\r
+ }
\r
+ ResetExState(0,0);
\r
}
\r
}
\r
+
\r