fix fds not saving game
This commit is contained in:
@@ -179,6 +179,11 @@ void FCEUI_SetRenderedLines(int ntscf, int ntscl, int palf, int pall);
|
|||||||
below this directory. */
|
below this directory. */
|
||||||
void FCEUI_SetBaseDirectory(char *dir);
|
void FCEUI_SetBaseDirectory(char *dir);
|
||||||
|
|
||||||
|
#ifdef __LIBRETRO__
|
||||||
|
void FCEUI_SetSaveDirectory(char *sav_dir);
|
||||||
|
#endif
|
||||||
|
|
||||||
|
|
||||||
/* Tells FCE Ultra to copy the palette data pointed to by pal and use it.
|
/* Tells FCE Ultra to copy the palette data pointed to by pal and use it.
|
||||||
Data pointed to by pal needs to be 64*3 bytes in length.
|
Data pointed to by pal needs to be 64*3 bytes in length.
|
||||||
*/
|
*/
|
||||||
|
|||||||
@@ -1637,6 +1637,7 @@ bool retro_load_game(const struct retro_game_info *game)
|
|||||||
{
|
{
|
||||||
unsigned i;
|
unsigned i;
|
||||||
char* dir=NULL;
|
char* dir=NULL;
|
||||||
|
char* sav_dir=NULL;
|
||||||
size_t fourscore_len = sizeof(fourscore_db_list) / sizeof(fourscore_db_list[0]);
|
size_t fourscore_len = sizeof(fourscore_db_list) / sizeof(fourscore_db_list[0]);
|
||||||
size_t famicom_4p_len = sizeof(famicom_4p_db_list) / sizeof(famicom_4p_db_list[0]);
|
size_t famicom_4p_len = sizeof(famicom_4p_db_list) / sizeof(famicom_4p_db_list[0]);
|
||||||
|
|
||||||
@@ -1706,6 +1707,8 @@ bool retro_load_game(const struct retro_game_info *game)
|
|||||||
|
|
||||||
if (environ_cb(RETRO_ENVIRONMENT_GET_SYSTEM_DIRECTORY, &dir) && dir)
|
if (environ_cb(RETRO_ENVIRONMENT_GET_SYSTEM_DIRECTORY, &dir) && dir)
|
||||||
FCEUI_SetBaseDirectory(dir);
|
FCEUI_SetBaseDirectory(dir);
|
||||||
|
if (environ_cb(RETRO_ENVIRONMENT_GET_SAVE_DIRECTORY, &sav_dir) && sav_dir)
|
||||||
|
FCEUI_SetSaveDirectory(sav_dir);
|
||||||
|
|
||||||
FCEUI_Initialize();
|
FCEUI_Initialize();
|
||||||
|
|
||||||
|
|||||||
@@ -42,6 +42,7 @@
|
|||||||
#include "md5.h"
|
#include "md5.h"
|
||||||
|
|
||||||
static char BaseDirectory[2048];
|
static char BaseDirectory[2048];
|
||||||
|
static char SaveDirectory[2048];
|
||||||
static char FileBase[2048];
|
static char FileBase[2048];
|
||||||
static char FileExt[2048]; /* Includes the . character, as in ".nes" */
|
static char FileExt[2048]; /* Includes the . character, as in ".nes" */
|
||||||
|
|
||||||
@@ -53,6 +54,12 @@ void FCEUI_SetBaseDirectory(char *dir)
|
|||||||
BaseDirectory[2047] = 0;
|
BaseDirectory[2047] = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void FCEUI_SetSaveDirectory(char *sav_dir)
|
||||||
|
{
|
||||||
|
strncpy(SaveDirectory, sav_dir, 2047);
|
||||||
|
SaveDirectory[2047] = 0;
|
||||||
|
}
|
||||||
|
|
||||||
static char *odirs[FCEUIOD__COUNT] = { 0, 0, 0, 0, 0, 0 }; // odirs, odors. ^_^
|
static char *odirs[FCEUIOD__COUNT] = { 0, 0, 0, 0, 0, 0 }; // odirs, odors. ^_^
|
||||||
|
|
||||||
void FCEUI_SetDirOverride(int which, char *n)
|
void FCEUI_SetDirOverride(int which, char *n)
|
||||||
@@ -87,6 +94,9 @@ char *FCEU_MakeFName(int type, int id1, char *cd1)
|
|||||||
else
|
else
|
||||||
sprintf(tmp, "%s"PSS "gameinfo"PSS "%s.pal", BaseDirectory, FileBase);
|
sprintf(tmp, "%s"PSS "gameinfo"PSS "%s.pal", BaseDirectory, FileBase);
|
||||||
break;
|
break;
|
||||||
|
case FCEUMKF_FDS:
|
||||||
|
sprintf(tmp, "%s"PSS "%s.fds", SaveDirectory, FileBase);
|
||||||
|
break;
|
||||||
default:
|
default:
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user