fix fds not saving game

This commit is contained in:
retro-wertz
2017-03-15 02:32:00 +08:00
parent 18a4358112
commit 472b1e6f17
3 changed files with 18 additions and 0 deletions

View File

@@ -179,6 +179,11 @@ void FCEUI_SetRenderedLines(int ntscf, int ntscl, int palf, int pall);
below this directory. */
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.
Data pointed to by pal needs to be 64*3 bytes in length.
*/

View File

@@ -1637,6 +1637,7 @@ bool retro_load_game(const struct retro_game_info *game)
{
unsigned i;
char* dir=NULL;
char* sav_dir=NULL;
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]);
@@ -1706,6 +1707,8 @@ bool retro_load_game(const struct retro_game_info *game)
if (environ_cb(RETRO_ENVIRONMENT_GET_SYSTEM_DIRECTORY, &dir) && dir)
FCEUI_SetBaseDirectory(dir);
if (environ_cb(RETRO_ENVIRONMENT_GET_SAVE_DIRECTORY, &sav_dir) && sav_dir)
FCEUI_SetSaveDirectory(sav_dir);
FCEUI_Initialize();

View File

@@ -42,6 +42,7 @@
#include "md5.h"
static char BaseDirectory[2048];
static char SaveDirectory[2048];
static char FileBase[2048];
static char FileExt[2048]; /* Includes the . character, as in ".nes" */
@@ -53,6 +54,12 @@ void FCEUI_SetBaseDirectory(char *dir)
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. ^_^
void FCEUI_SetDirOverride(int which, char *n)
@@ -87,6 +94,9 @@ char *FCEU_MakeFName(int type, int id1, char *cd1)
else
sprintf(tmp, "%s"PSS "gameinfo"PSS "%s.pal", BaseDirectory, FileBase);
break;
case FCEUMKF_FDS:
sprintf(tmp, "%s"PSS "%s.fds", SaveDirectory, FileBase);
break;
default:
break;
}