notaz.gp2x.de
/
libpicofe.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
new menu option code
[libpicofe.git]
/
gp2x
/
emu.c
diff --git
a/gp2x/emu.c
b/gp2x/emu.c
index
0e1246c
..
27e9d13
100644
(file)
--- a/
gp2x/emu.c
+++ b/
gp2x/emu.c
@@
-62,6
+62,7
@@
static int movie_size = 0;
unsigned char *framebuff = 0; // temporary buffer for alt renderer
\r
int state_slot = 0;
\r
int reset_timing = 0;
\r
unsigned char *framebuff = 0; // temporary buffer for alt renderer
\r
int state_slot = 0;
\r
int reset_timing = 0;
\r
+int config_slot = 0, config_slot_current = 0;
\r
\r
\r
// utilities
\r
\r
\r
// utilities
\r
@@
-474,7
+475,7
@@
void scaling_update(void)
int emu_ReadConfig(int game)
\r
{
\r
FILE *f;
\r
int emu_ReadConfig(int game)
\r
{
\r
FILE *f;
\r
- char cfg[512];
\r
+ char cfg[512]
, extbuf[16]
;
\r
int bread = 0;
\r
\r
if (!game)
\r
int bread = 0;
\r
\r
if (!game)
\r
@@
-507,9
+508,19
@@
int emu_ReadConfig(int game)
currentConfig.PicoCDBuffers = 64;
\r
currentConfig.scaling = 0;
\r
strncpy(cfg, PicoConfigFile, 511);
\r
currentConfig.PicoCDBuffers = 64;
\r
currentConfig.scaling = 0;
\r
strncpy(cfg, PicoConfigFile, 511);
\r
+ if (config_slot != 0)
\r
+ {
\r
+ char *p = strrchr(cfg, '.');
\r
+ if (p == NULL) p = cfg + strlen(cfg);
\r
+ sprintf(extbuf, ".%i.pbcfg", config_slot);
\r
+ strncpy(p, extbuf, 511 - (p - cfg));
\r
+ }
\r
cfg[511] = 0;
\r
} else {
\r
cfg[511] = 0;
\r
} else {
\r
- romfname_ext(cfg, "cfg/", ".pbcfg");
\r
+ if (config_slot != 0)
\r
+ sprintf(extbuf, ".%i.pbcfg", config_slot);
\r
+ else strcpy(extbuf, ".pbcfg");
\r
+ romfname_ext(cfg, "cfg/", extbuf);
\r
f = fopen(cfg, "rb");
\r
if (!f) romfname_ext(cfg, NULL, ".pbcfg");
\r
else fclose(f);
\r
f = fopen(cfg, "rb");
\r
if (!f) romfname_ext(cfg, NULL, ".pbcfg");
\r
else fclose(f);
\r
@@
-543,6
+554,7
@@
int emu_ReadConfig(int game)
currentConfig.KeyBinds[22] = 1<<30; // vol down
\r
}
\r
\r
currentConfig.KeyBinds[22] = 1<<30; // vol down
\r
}
\r
\r
+ if (bread > 0) config_slot_current = config_slot;
\r
return (bread > 0); // == sizeof(currentConfig));
\r
}
\r
\r
return (bread > 0); // == sizeof(currentConfig));
\r
}
\r
\r
@@
-550,15
+562,25
@@
int emu_ReadConfig(int game)
int emu_WriteConfig(int game)
\r
{
\r
FILE *f;
\r
int emu_WriteConfig(int game)
\r
{
\r
FILE *f;
\r
- char cfg[512];
\r
+ char cfg[512]
, extbuf[16]
;
\r
int bwrite = 0;
\r
\r
if (!game)
\r
{
\r
strncpy(cfg, PicoConfigFile, 511);
\r
int bwrite = 0;
\r
\r
if (!game)
\r
{
\r
strncpy(cfg, PicoConfigFile, 511);
\r
+ if (config_slot != 0)
\r
+ {
\r
+ char *p = strrchr(cfg, '.');
\r
+ if (p == NULL) p = cfg + strlen(cfg);
\r
+ sprintf(extbuf, ".%i.pbcfg", config_slot);
\r
+ strncpy(p, extbuf, 511 - (p - cfg));
\r
+ }
\r
cfg[511] = 0;
\r
} else {
\r
cfg[511] = 0;
\r
} else {
\r
- romfname_ext(cfg, "cfg/", ".pbcfg");
\r
+ if (config_slot != 0)
\r
+ sprintf(extbuf, ".%i.pbcfg", config_slot);
\r
+ else strcpy(extbuf, ".pbcfg");
\r
+ romfname_ext(cfg, "cfg/", extbuf);
\r
}
\r
\r
printf("emu_WriteConfig: %s ", cfg);
\r
}
\r
\r
printf("emu_WriteConfig: %s ", cfg);
\r
@@
-578,6
+600,7
@@
int emu_WriteConfig(int game)
}
\r
printf((bwrite == sizeof(currentConfig)) ? "(ok)\n" : "(failed)\n");
\r
\r
}
\r
printf((bwrite == sizeof(currentConfig)) ? "(ok)\n" : "(failed)\n");
\r
\r
+ if (bwrite == sizeof(currentConfig)) config_slot_current = config_slot;
\r
return (bwrite == sizeof(currentConfig));
\r
}
\r
\r
return (bwrite == sizeof(currentConfig));
\r
}
\r
\r