bugfix + some tweaks

git-svn-id: file:///home/notaz/opt/svn/PicoDrive@737 be3aeb3a-fb24-0410-a615-afba39da0efa
This commit is contained in:
notaz 2009-08-07 14:11:03 +00:00
parent e39e0acbd0
commit d8afe7b8a7
3 changed files with 16 additions and 4 deletions

View file

@ -131,14 +131,15 @@ void PsndRerate(int preserve_state)
} }
if (preserve_state) { if (preserve_state) {
state = malloc(0x200); state = malloc(0x204);
if (state == NULL) return; if (state == NULL) return;
memcpy(state, YM2612GetRegs(), 0x200); ym2612_pack_state();
memcpy(state, YM2612GetRegs(), 0x204);
} }
YM2612Init(Pico.m.pal ? OSC_PAL/7 : OSC_NTSC/7, PsndRate); YM2612Init(Pico.m.pal ? OSC_PAL/7 : OSC_NTSC/7, PsndRate);
if (preserve_state) { if (preserve_state) {
// feed it back it's own registers, just like after loading state // feed it back it's own registers, just like after loading state
memcpy(YM2612GetRegs(), state, 0x200); memcpy(YM2612GetRegs(), state, 0x204);
ym2612_unpack_state(); ym2612_unpack_state();
if ((PicoAHW & PAHW_MCD) && !(Pico_mcd->s68k_regs[0x36] & 1) && (Pico_mcd->scd.Status_CDC & 1)) if ((PicoAHW & PAHW_MCD) && !(Pico_mcd->s68k_regs[0x36] & 1) && (Pico_mcd->scd.Status_CDC & 1))
cdda_start_play(); cdda_start_play();

View file

@ -643,7 +643,8 @@ int emu_read_config(int game, int no_defaults)
// read global config, and apply game_def.cfg on top // read global config, and apply game_def.cfg on top
make_config_cfg(cfg); make_config_cfg(cfg);
config_readsect(cfg, NULL); config_readsect(cfg, NULL);
ret = config_readsect("game_def.cfg", sect); emu_make_path(cfg, "game_def.cfg", sizeof(cfg));
ret = config_readsect(cfg, sect);
} }
if (ret == 0) if (ret == 0)

View file

@ -317,6 +317,16 @@ static void in_evdev_set_blocking(void *drv_data, int y)
perror("in_evdev: F_GETFL fcntl failed"); perror("in_evdev: F_GETFL fcntl failed");
return; return;
} }
if (flags & O_NONBLOCK) {
/* flush the event queue */
struct input_event ev;
do {
ret = read(dev->fd, &ev, sizeof(ev));
}
while (ret == sizeof(ev));
}
if (y) if (y)
flags &= ~O_NONBLOCK; flags &= ~O_NONBLOCK;
else else