fix to games stayed unzipped

This commit is contained in:
retro-wertz
2017-04-02 02:12:44 +08:00
parent 1486f36409
commit c58d035543

View File

@@ -63,7 +63,7 @@ doret:
return tmp; return tmp;
} }
static MEMWRAP *MakeMemWrapBuffer(void *tz, int type, uint8 *buffer, size_t bufsize) static MEMWRAP *MakeMemWrapBuffer(const char *tz, int type, uint8 *buffer, size_t bufsize)
{ {
MEMWRAP *tmp = (MEMWRAP*)FCEU_malloc(sizeof(MEMWRAP)); MEMWRAP *tmp = (MEMWRAP*)FCEU_malloc(sizeof(MEMWRAP));
@@ -81,6 +81,12 @@ FCEUFILE * FCEU_fopen(const char *path, const char *ipsfn,
char *mode, char *ext, uint8 *buffer, size_t bufsize) char *mode, char *ext, uint8 *buffer, size_t bufsize)
{ {
FCEUFILE *fceufp = (FCEUFILE*)malloc(sizeof(FCEUFILE)); FCEUFILE *fceufp = (FCEUFILE*)malloc(sizeof(FCEUFILE));
fceufp->type = 0;
if (buffer)
fceufp->fp = MakeMemWrapBuffer(path, 0, buffer, bufsize);
else
{
void *t = fopen(path, mode); void *t = fopen(path, mode);
if (!t) if (!t)
@@ -90,11 +96,8 @@ FCEUFILE * FCEU_fopen(const char *path, const char *ipsfn,
} }
fseek((FILE*)t, 0, SEEK_SET); fseek((FILE*)t, 0, SEEK_SET);
fceufp->type = 0;
if (buffer)
fceufp->fp = MakeMemWrapBuffer(t, 0, buffer, bufsize);
else
fceufp->fp = MakeMemWrap(t, 0); fceufp->fp = MakeMemWrap(t, 0);
}
return fceufp; return fceufp;
} }