notaz.gp2x.de
/
fceu.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
bugfixes, r171 release
[fceu.git]
/
drivers
/
gp2x
/
main.c
diff --git
a/drivers/gp2x/main.c
b/drivers/gp2x/main.c
index
b15098c
..
628f88b
100644
(file)
--- a/
drivers/gp2x/main.c
+++ b/
drivers/gp2x/main.c
@@
-128,25
+128,44
@@
static CFGSTRUCT fceuconfig[]={
ENDCFGSTRUCT
};
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];
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);
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);
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];
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);
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. */
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);
FCEUI_SetNTSCTH(ntsccol, ntsctint, ntschue);
+ printf(ret == 0 ? "done\n" : "failed\n");
+ return ret;
}
static void LoadLLGN(void)
}
static void LoadLLGN(void)
@@
-333,7
+352,7
@@
static int DoArgs(int argc, char *argv[])
int CLImain(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]);
/* TODO if(argc<=1)
{
ShowUsage(argv[0]);
@@
-379,7
+398,11
@@
int CLImain(int argc, char *argv[])
{
if (fceugi)
CloseGame();
{
if (fceugi)
CloseGame();
- LoadConfig(lastLoadedGameName);
+ ret=LoadConfig(lastLoadedGameName);
+ if (ret != 0)
+ {
+ LoadConfig(NULL);
+ }
FCEUI_SetEmuMode(Settings.accurate_mode);
fceugi=FCEUI_LoadGame(lastLoadedGameName);
if (fceugi)
FCEUI_SetEmuMode(Settings.accurate_mode);
fceugi=FCEUI_LoadGame(lastLoadedGameName);
if (fceugi)