X-Git-Url: https://notaz.gp2x.de/cgi-bin/gitweb.cgi?p=fceu.git;a=blobdiff_plain;f=drivers%2Fgp2x%2Fmain.c;h=628f88b0ad88c707f6ed6def6b6a8d37cca41d11;hp=b15098cb20b5f7795eba8270b9e667bd0c9ec2bf;hb=642070a99a18726024c5b214263221a0340e6987;hpb=39e1ccffc7ec6bbee9bb3ed1be7cbe856792bf69 diff --git a/drivers/gp2x/main.c b/drivers/gp2x/main.c index b15098c..628f88b 100644 --- a/drivers/gp2x/main.c +++ b/drivers/gp2x/main.c @@ -128,25 +128,44 @@ static CFGSTRUCT fceuconfig[]={ ENDCFGSTRUCT }; -void SaveConfig(const char *name) +static const char *skip_path(const char *path) { + const char *p; + if (path == NULL) return NULL; + for (p = path+strlen(path)-1; p > path && *p != '/'; p--); + if (*p == '/') p++; + return p; +} + +int SaveConfig(const char *llgn_path) +{ + const char *name = skip_path(llgn_path); char tdir[2048]; + int ret; if (name) sprintf(tdir,"%s"PSS"cfg"PSS"%s.cfg",BaseDirectory,name); else sprintf(tdir,"%s"PSS"fceu2.cfg",BaseDirectory); + printf("saving cfg to %s ... ", tdir); fflush(stdout); FCEUI_GetNTSCTH(&ntsctint, &ntschue); - SaveFCEUConfig(tdir,fceuconfig); + ret=SaveFCEUConfig(tdir,fceuconfig); + printf(ret == 0 ? "done\n" : "failed\n"); + return ret; } -static void LoadConfig(const char *name) +static int LoadConfig(const char *llgn_path) { + const char *name = skip_path(llgn_path); char tdir[2048]; + int ret; if (name) sprintf(tdir,"%s"PSS"cfg"PSS"%s.cfg",BaseDirectory,name); else sprintf(tdir,"%s"PSS"fceu2.cfg",BaseDirectory); + printf("loading cfg from %s ... ", tdir); fflush(stdout); FCEUI_GetNTSCTH(&ntsctint, &ntschue); /* Get default settings for if no config file exists. */ - LoadFCEUConfig(tdir,fceuconfig); + ret=LoadFCEUConfig(tdir,fceuconfig); FCEUI_SetNTSCTH(ntsccol, ntsctint, ntschue); + printf(ret == 0 ? "done\n" : "failed\n"); + return ret; } static void LoadLLGN(void) @@ -333,7 +352,7 @@ static int DoArgs(int argc, char *argv[]) int CLImain(int argc, char *argv[]) { - int last_arg_parsed; + int last_arg_parsed, ret; /* TODO if(argc<=1) { ShowUsage(argv[0]); @@ -379,7 +398,11 @@ int CLImain(int argc, char *argv[]) { if (fceugi) CloseGame(); - LoadConfig(lastLoadedGameName); + ret=LoadConfig(lastLoadedGameName); + if (ret != 0) + { + LoadConfig(NULL); + } FCEUI_SetEmuMode(Settings.accurate_mode); fceugi=FCEUI_LoadGame(lastLoadedGameName); if (fceugi)