#include <stdarg.h>\r
\r
#include "emu.h"\r
-#include "gp2x.h"\r
+#include "plat_gp2x.h"\r
#include "soc.h"\r
#include "../common/menu.h"\r
#include "../common/arm_utils.h"\r
#include "../common/config.h"\r
#include "../common/input.h"\r
#include "../linux/sndout_oss.h"\r
-#include "cpuctrl.h"\r
#include "version.h"\r
\r
#include <pico/pico_int.h>\r
\r
// restore gamma\r
if (gp2x_old_gamma != 100)\r
- set_gamma(100, 0);\r
+ set_lcd_gamma(100, 0);\r
}\r
\r
void emu_prepareDefaultConfig(void)\r
defaultConfig.s_PicoAutoRgnOrder = 0x184; // US, EU, JP\r
defaultConfig.s_PicoCDBuffers = 0;\r
defaultConfig.Frameskip = -1; // auto\r
- defaultConfig.CPUclock = 200;\r
+ defaultConfig.CPUclock = -1;\r
defaultConfig.volume = 50;\r
defaultConfig.gamma = 100;\r
defaultConfig.scaling = 0;\r
\r
void emu_Loop(void)\r
{\r
- static int gp2x_old_clock = 200, EmuOpt_old = 0;\r
+ static int gp2x_old_clock = -1, EmuOpt_old = 0;\r
char fpsbuff[24]; // fps count c string\r
struct timeval tval; // timing\r
int pframes_done, pframes_shown, pthissec; // "period" frames, used for sync\r
\r
printf("entered emu_Loop()\n");\r
\r
+ if ((EmuOpt_old ^ currentConfig.EmuOpt) & EOPT_RAM_TIMINGS) {\r
+ if (currentConfig.EmuOpt & EOPT_RAM_TIMINGS)\r
+ /* craigix: --cas 2 --trc 6 --tras 4 --twr 1 --tmrd 1 --trfc 1 --trp 2 --trcd 2 */\r
+ set_ram_timings(2, 6, 4, 1, 1, 1, 2, 2);\r
+ else\r
+ unset_ram_timings();\r
+ }\r
+\r
+ if (gp2x_old_clock < 0)\r
+ gp2x_old_clock = default_cpu_clock;\r
+ if (currentConfig.CPUclock < 0)\r
+ currentConfig.CPUclock = default_cpu_clock;\r
if (gp2x_old_clock != currentConfig.CPUclock) {\r
printf("changing clock to %i...", currentConfig.CPUclock); fflush(stdout);\r
- set_FCLK(currentConfig.CPUclock);\r
+ gp2x_set_cpuclk(currentConfig.CPUclock);\r
gp2x_old_clock = currentConfig.CPUclock;\r
printf(" done\n");\r
}\r
\r
if (gp2x_old_gamma != currentConfig.gamma || (EmuOpt_old&0x1000) != (currentConfig.EmuOpt&0x1000)) {\r
- set_gamma(currentConfig.gamma, !!(currentConfig.EmuOpt&0x1000));\r
+ set_lcd_gamma(currentConfig.gamma, !!(currentConfig.EmuOpt&0x1000));\r
gp2x_old_gamma = currentConfig.gamma;\r
printf("updated gamma to %i, A_SN's curve: %i\n", currentConfig.gamma, !!(currentConfig.EmuOpt&0x1000));\r
}\r
\r
- if ((EmuOpt_old&0x2000) != (currentConfig.EmuOpt&0x2000)) {\r
- if (currentConfig.EmuOpt&0x2000)\r
- set_LCD_custom_rate(Pico.m.pal ? LCDR_100 : LCDR_120);\r
- else unset_LCD_custom_rate();\r
+ if ((EmuOpt_old ^ currentConfig.EmuOpt) & EOPT_PSYNC) {\r
+ if (currentConfig.EmuOpt & EOPT_PSYNC)\r
+ set_lcd_custom_rate(Pico.m.pal);\r
+ else\r
+ unset_lcd_custom_rate();\r
}\r
\r
+ if ((EmuOpt_old ^ currentConfig.EmuOpt) & EOPT_MMUHACK)\r
+ gp2x_make_fb_bufferable(currentConfig.EmuOpt & EOPT_MMUHACK);\r
+\r
EmuOpt_old = currentConfig.EmuOpt;\r
fpsbuff[0] = 0;\r
\r