X-Git-Url: https://notaz.gp2x.de/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=platform%2Fcommon%2Femu.c;h=8eda13a8b8dd67fb54c0329049c2f5fb98cbc467;hb=d4d626658a7a999f48009f408b4a22d280ab80ea;hp=36539c65b07faf3a24b27eb753fa1526975b1a72;hpb=7e7b446f29e6b571894cd8254240fb2ac266034d;p=picodrive.git diff --git a/platform/common/emu.c b/platform/common/emu.c index 36539c6..8eda13a 100644 --- a/platform/common/emu.c +++ b/platform/common/emu.c @@ -1483,6 +1483,29 @@ void emu_sound_wait(void) sndout_wait(); } +static void emu_loop_prep(void) +{ + static int pal_old = -1; + static int filter_old = -1; + + if (currentConfig.CPUclock != plat_target_cpu_clock_get()) + plat_target_cpu_clock_set(currentConfig.CPUclock); + + if (Pico.m.pal != pal_old) { + plat_target_lcdrate_set(Pico.m.pal); + pal_old = Pico.m.pal; + } + + if (currentConfig.filter != filter_old) { + plat_target_hwfilter_set(currentConfig.filter); + filter_old = currentConfig.filter; + } + + plat_target_gamma_set(currentConfig.gamma, 0); + + pemu_loop_prep(); +} + static void skip_frame(int do_audio) { PicoSkipFrame = do_audio ? 1 : 2; @@ -1517,7 +1540,7 @@ void emu_loop(void) PicoCDBufferInit(); plat_video_loop_prepare(); - pemu_loop_prep(); + emu_loop_prep(); pemu_sound_start(); /* number of ticks per frame */