diff --git a/src/driver.h b/src/driver.h index a1670194..728d881b 100644 --- a/src/driver.h +++ b/src/driver.h @@ -239,10 +239,10 @@ void FCEUI_CheatSearchSetCurrentAsOriginal(void); #define FCEUIOD_NV 2 #define FCEUIOD_CHEATS 3 #define FCEUIOD_MISC 4 -#define FCEUIOD_MEMW 5 -#define FCEUIOD_BBOT 6 -#define FCEUIOD_MACRO 7 -#define FCEUIOD_FDS 8 +#define FCEUIOD_MEMW 5 +#define FCEUIOD_BBOT 6 +#define FCEUIOD_MACRO 7 +#define FCEUIOD_FDSROM 8 #define FCEUIOD__COUNT 9 diff --git a/src/drivers/win/basicbot.cpp b/src/drivers/win/basicbot.cpp index e314812e..4cd92fe1 100644 --- a/src/drivers/win/basicbot.cpp +++ b/src/drivers/win/basicbot.cpp @@ -2014,7 +2014,7 @@ static bool SaveBasicBot() ofn.lpstrFile=nameo; ofn.nMaxFile=256; ofn.Flags=OFN_EXPLORER|OFN_HIDEREADONLY|OFN_OVERWRITEPROMPT; - ofn.lpstrInitialDir=BasicBotDir; + ofn.lpstrInitialDir=FCEU_GetPath(FCEUMKF_BBOT); if(GetSaveFileName(&ofn)) { /* @@ -2111,7 +2111,7 @@ static bool LoadBasicBot() ofn.lpstrFile=nameo; ofn.nMaxFile=256; ofn.Flags=OFN_EXPLORER|OFN_FILEMUSTEXIST|OFN_HIDEREADONLY; - ofn.lpstrInitialDir=BasicBotDir; + ofn.lpstrInitialDir=FCEU_GetPath(FCEUMKF_BBOT); if(GetOpenFileName(&ofn)) { diff --git a/src/drivers/win/main.cpp b/src/drivers/win/main.cpp index 4e4f682a..ce3db332 100644 --- a/src/drivers/win/main.cpp +++ b/src/drivers/win/main.cpp @@ -168,7 +168,7 @@ void SetDirs() FCEUIOD_MEMW, FCEUIOD_BBOT, FCEUIOD_MACRO, - FCEUIOD_FDS, + FCEUIOD_FDSROM, FCEUIOD__COUNT}; FCEUI_SetSnapName(eoptions & EO_SNAPNAME); diff --git a/src/drivers/win/memwatch.cpp b/src/drivers/win/memwatch.cpp index 9e471db0..bfa7e471 100644 --- a/src/drivers/win/memwatch.cpp +++ b/src/drivers/win/memwatch.cpp @@ -276,7 +276,7 @@ static void SaveMemWatch() ofn.lpstrFile=nameo; ofn.nMaxFile=256; ofn.Flags=OFN_EXPLORER|OFN_HIDEREADONLY|OFN_OVERWRITEPROMPT; - ofn.lpstrInitialDir=MemWatchDir; + ofn.lpstrInitialDir=FCEU_GetPath(FCEUMKF_MEMW); if(GetSaveFileName(&ofn)) { int i; @@ -348,7 +348,7 @@ static void LoadMemWatch() ofn.lpstrFile=nameo; ofn.nMaxFile=256; ofn.Flags=OFN_EXPLORER|OFN_FILEMUSTEXIST|OFN_HIDEREADONLY; - ofn.lpstrInitialDir=MemWatchDir; + ofn.lpstrInitialDir=FCEU_GetPath(FCEUMKF_MEMW); if(GetOpenFileName(&ofn)) { diff --git a/src/drivers/win/replay.cpp b/src/drivers/win/replay.cpp index 0d455adf..edef0a1f 100644 --- a/src/drivers/win/replay.cpp +++ b/src/drivers/win/replay.cpp @@ -89,7 +89,7 @@ static char* GetSavePath(HWND hwndDlg) _splitpath(fn, szDrive, szDirectory, szFilename, szExt); if(szDrive[0]=='\0' && szDirectory[0]=='\0') { - char* newfn=FCEU_MakePath(FCEUMKF_MOVIE, fn); // need to make a full path + char* newfn=FCEU_MakePath(FCEUMKF_STATE, fn); // need to make a full path free(fn); fn=newfn; } diff --git a/src/file.cpp b/src/file.cpp index ab51b3d9..e7348664 100644 --- a/src/file.cpp +++ b/src/file.cpp @@ -645,13 +645,23 @@ char* FCEU_GetPath(int type) case FCEUMKF_STATE:if(odirs[FCEUIOD_STATE]) ret=strdup(odirs[FCEUIOD_STATE]); else - asprintf(&ret,"%s"PSS"movie",BaseDirectory); + asprintf(&ret,"%s"PSS"fcs",BaseDirectory); break; case FCEUMKF_MOVIE:if(odirs[FCEUIOD_MISC]) ret=strdup(odirs[FCEUIOD_MISC]); else asprintf(&ret,"%s"PSS"movie",BaseDirectory); break; + case FCEUMKF_MEMW:if(odirs[FCEUIOD_MEMW]) + ret=strdup(odirs[FCEUIOD_MEMW]); + else + asprintf(&ret,"%s"PSS"memwatch",BaseDirectory); + break; + case FCEUMKF_BBOT:if(odirs[FCEUIOD_BBOT]) + ret=strdup(odirs[FCEUIOD_BBOT]); + else + asprintf(&ret,"%s"PSS"basicbot",BaseDirectory); + break; } return(ret); } @@ -667,6 +677,11 @@ char *FCEU_MakePath(int type, const char* filebase) else asprintf(&ret,"%s"PSS"movie"PSS"%s",BaseDirectory,filebase); break; + case FCEUMKF_STATE:if(odirs[FCEUIOD_STATE]) + asprintf(&ret,"%s"PSS"%s",odirs[FCEUIOD_STATE],filebase); + else + asprintf(&ret,"%s"PSS"fcs"PSS"%s",BaseDirectory,filebase); + break; } return(ret); } @@ -785,13 +800,18 @@ char *FCEU_MakeFName(int type, int id1, char *cd1) case FCEUMKF_IPS: asprintf(&ret,"%s"PSS"%s%s.ips",FileBaseDirectory,FileBase,FileExt); break; case FCEUMKF_GGROM:asprintf(&ret,"%s"PSS"gg.rom",BaseDirectory);break; - case FCEUMKF_FDSROM:asprintf(&ret,"%s"PSS"disksys.rom",BaseDirectory);break; + case FCEUMKF_FDSROM: + if(odirs[FCEUIOD_FDSROM]) + asprintf(&ret,"%s"PSS"disksys.rom",odirs[FCEUIOD_FDSROM],FileBase); + else + asprintf(&ret,"%s"PSS"disksys.rom",BaseDirectory,FileBase); + break; case FCEUMKF_PALETTE: - if(odirs[FCEUIOD_MISC]) - asprintf(&ret,"%s"PSS"%s.pal",odirs[FCEUIOD_MISC],FileBase); - else - asprintf(&ret,"%s"PSS"%s.pal",BaseDirectory,FileBase); - break; + if(odirs[FCEUIOD_MISC]) + asprintf(&ret,"%s"PSS"%s.pal",odirs[FCEUIOD_MISC],FileBase); + else + asprintf(&ret,"%s"PSS"%s.pal",BaseDirectory,FileBase); + break; case FCEUMKF_MOVIEGLOB: if(odirs[FCEUIOD_MISC]) // asprintf(&ret,"%s"PSS"%s*.fcm",odirs[FCEUIOD_MISC],FileBase); diff --git a/src/file.h b/src/file.h index afa43b30..207cb57d 100644 --- a/src/file.h +++ b/src/file.h @@ -41,5 +41,7 @@ char *FCEU_MakeFName(int type, int id1, char *cd1); #define FCEUMKF_STATEGLOB 13 #define FCEUMKF_MOVIEGLOB2 14 #define FCEUMKF_REWINDSTATE 15 +#define FCEUMKF_MEMW 16 +#define FCEUMKF_BBOT 17 #endif