notaz.gp2x.de
/
libpicofe.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
move CD tray handling out of emu loop
[libpicofe.git]
/
common
/
emu.c
diff --git
a/common/emu.c
b/common/emu.c
index
becc0c2
..
2e813d3
100644
(file)
--- a/
common/emu.c
+++ b/
common/emu.c
@@
-407,8
+407,8
@@
int emu_reload_rom(char *rom_fname)
// valid CD image, check for BIOS..
\r
\r
// we need to have config loaded at this point
\r
// valid CD image, check for BIOS..
\r
\r
// we need to have config loaded at this point
\r
- ret = emu_read_config(1,
1
);
\r
- if (!ret) emu_read_config(0,
1
);
\r
+ ret = emu_read_config(1,
0
);
\r
+ if (!ret) emu_read_config(0,
0
);
\r
cfg_loaded = 1;
\r
\r
if (PicoRegionOverride) {
\r
cfg_loaded = 1;
\r
\r
if (PicoRegionOverride) {
\r
@@
-465,8
+465,8
@@
int emu_reload_rom(char *rom_fname)
if (!(PicoAHW & PAHW_MCD))
\r
memcpy(id_header, rom_data + 0x100, sizeof(id_header));
\r
if (!cfg_loaded) {
\r
if (!(PicoAHW & PAHW_MCD))
\r
memcpy(id_header, rom_data + 0x100, sizeof(id_header));
\r
if (!cfg_loaded) {
\r
- ret = emu_read_config(1,
1
);
\r
- if (!ret) emu_read_config(0,
1
);
\r
+ ret = emu_read_config(1,
0
);
\r
+ if (!ret) emu_read_config(0,
0
);
\r
}
\r
\r
lprintf("PicoCartInsert(%p, %d);\n", rom_data, rom_size);
\r
}
\r
\r
lprintf("PicoCartInsert(%p, %d);\n", rom_data, rom_size);
\r
@@
-613,10
+613,11
@@
int emu_read_config(int game, int no_defaults)
char cfg[512];
\r
int ret;
\r
\r
char cfg[512];
\r
int ret;
\r
\r
+ if (!no_defaults)
\r
+ emu_set_defconfig();
\r
+
\r
if (!game)
\r
{
\r
if (!game)
\r
{
\r
- if (!no_defaults)
\r
- emu_set_defconfig();
\r
make_config_cfg(cfg);
\r
ret = config_readsect(cfg, NULL);
\r
}
\r
make_config_cfg(cfg);
\r
ret = config_readsect(cfg, NULL);
\r
}
\r
@@
-643,7
+644,8
@@
int emu_read_config(int game, int no_defaults)
// read global config, and apply game_def.cfg on top
\r
make_config_cfg(cfg);
\r
config_readsect(cfg, NULL);
\r
// read global config, and apply game_def.cfg on top
\r
make_config_cfg(cfg);
\r
config_readsect(cfg, NULL);
\r
- ret = config_readsect("game_def.cfg", sect);
\r
+ emu_make_path(cfg, "game_def.cfg", sizeof(cfg));
\r
+ ret = config_readsect(cfg, sect);
\r
}
\r
\r
if (ret == 0)
\r
}
\r
\r
if (ret == 0)
\r
@@
-795,7
+797,8
@@
char *emu_get_save_fname(int load, int is_sram, int slot)
\r
if (is_sram)
\r
{
\r
\r
if (is_sram)
\r
{
\r
- romfname_ext(saveFname, (PicoAHW&1) ? "brm"PATH_SEP : "srm"PATH_SEP, (PicoAHW&1) ? ".brm" : ".srm");
\r
+ romfname_ext(saveFname, (PicoAHW & PAHW_MCD) ? "brm"PATH_SEP : "srm"PATH_SEP,
\r
+ (PicoAHW & PAHW_MCD) ? ".brm" : ".srm");
\r
if (load) {
\r
if (try_ropen_file(saveFname)) return saveFname;
\r
// try in current dir..
\r
if (load) {
\r
if (try_ropen_file(saveFname)) return saveFname;
\r
// try in current dir..
\r
@@
-987,9
+990,14
@@
void emu_set_fastforward(int set_on)
}
\r
}
\r
\r
}
\r
}
\r
\r
-static void emu_msg_tray_open(void)
\r
+static void emu_tray_open(void)
\r
+{
\r
+ engineState = PGS_TrayMenu;
\r
+}
\r
+
\r
+static void emu_tray_close(void)
\r
{
\r
{
\r
- emu_status_msg("CD tray
opened
");
\r
+ emu_status_msg("CD tray
closed.
");
\r
}
\r
\r
void emu_reset_game(void)
\r
}
\r
\r
void emu_reset_game(void)
\r
@@
-1211,8
+1219,8
@@
void emu_init(void)
\r
PicoInit();
\r
PicoMessage = plat_status_msg_busy_next;
\r
\r
PicoInit();
\r
PicoMessage = plat_status_msg_busy_next;
\r
- PicoMCDopenTray = emu_
msg_
tray_open;
\r
- PicoMCDcloseTray =
menu_loop_tray
;
\r
+ PicoMCDopenTray = emu_tray_open;
\r
+ PicoMCDcloseTray =
emu_tray_close
;
\r
}
\r
\r
void emu_finish(void)
\r
}
\r
\r
void emu_finish(void)
\r
@@
-1275,9
+1283,6
@@
void emu_loop(void)
if (PicoAHW & PAHW_MCD)
\r
PicoCDBufferInit();
\r
\r
if (PicoAHW & PAHW_MCD)
\r
PicoCDBufferInit();
\r
\r
- if (currentConfig.EmuOpt & EOPT_PSYNC)
\r
- plat_video_wait_vsync();
\r
-
\r
pemu_loop_prep();
\r
\r
timestamp_fps = get_ticks();
\r
pemu_loop_prep();
\r
\r
timestamp_fps = get_ticks();
\r
@@
-1285,6
+1290,8
@@
void emu_loop(void)
\r
frames_done = frames_shown = pframes_done = 0;
\r
\r
\r
frames_done = frames_shown = pframes_done = 0;
\r
\r
+ plat_video_wait_vsync();
\r
+
\r
/* loop with resync every 1 sec. */
\r
while (engineState == PGS_Running)
\r
{
\r
/* loop with resync every 1 sec. */
\r
while (engineState == PGS_Running)
\r
{
\r
@@
-1413,12
+1420,9
@@
void emu_loop(void)
if (diff < diff_lim)
\r
{
\r
// we are too fast
\r
if (diff < diff_lim)
\r
{
\r
// we are too fast
\r
- if (currentConfig.EmuOpt & EOPT_PSYNC) {
\r
- if (diff_lim - diff > target_frametime/2)
\r
- plat_wait_till_us(timestamp_base + target_frametime/4);
\r
+ plat_wait_till_us(timestamp_base + diff_lim - target_frametime / 4);
\r
+ if (currentConfig.EmuOpt & EOPT_VSYNC)
\r
plat_video_wait_vsync();
\r
plat_video_wait_vsync();
\r
- } else
\r
- plat_wait_till_us(timestamp_base + diff_lim);
\r
}
\r
}
\r
\r
}
\r
}
\r
\r