\r
static void scaling_update(void)\r
{\r
- PicoOpt &= ~0x4100;\r
+ PicoOpt &= ~(POPT_DIS_32C_BORDER|POPT_EN_SOFTSCALE);\r
switch (currentConfig.scaling) {\r
- default: break; // off\r
- case 1: // hw hor\r
- case 2: PicoOpt |= 0x0100; break; // hw hor+vert\r
- case 3: PicoOpt |= 0x4000; break; // sw hor\r
+ default:break;\r
+ case EOPT_SCALE_HW_H:\r
+ case EOPT_SCALE_HW_HV:\r
+ PicoOpt |= POPT_DIS_32C_BORDER;\r
+ break;\r
+ case EOPT_SCALE_SW_H:\r
+ PicoOpt |= POPT_EN_SOFTSCALE;\r
+ break;\r
}\r
}\r
\r
\r
void emu_prepareDefaultConfig(void)\r
{\r
+ gp2x_soc_t soc;\r
+\r
memset(&defaultConfig, 0, sizeof(defaultConfig));\r
- defaultConfig.EmuOpt = 0x9d | 0x00700; // | <- ram_tmng, confirm_save, cd_leds\r
- defaultConfig.s_PicoOpt = 0x0f | POPT_EXT_FM|POPT_EN_MCD_PCM|POPT_EN_MCD_CDDA|POPT_EN_SVP_DRC|POPT_ACC_SPRITES;\r
+ defaultConfig.EmuOpt = 0x9d | EOPT_RAM_TIMINGS | 0x600; // | <- confirm_save, cd_leds\r
+ defaultConfig.s_PicoOpt = 0x0f | POPT_EN_MCD_PCM|POPT_EN_MCD_CDDA|POPT_EN_SVP_DRC|POPT_ACC_SPRITES;\r
defaultConfig.s_PsndRate = 44100;\r
defaultConfig.s_PicoRegion = 0; // auto\r
defaultConfig.s_PicoAutoRgnOrder = 0x184; // US, EU, JP\r
defaultConfig.s_PicoCDBuffers = 0;\r
defaultConfig.Frameskip = -1; // auto\r
- defaultConfig.CPUclock = -1;\r
+ defaultConfig.CPUclock = default_cpu_clock;\r
defaultConfig.volume = 50;\r
defaultConfig.gamma = 100;\r
defaultConfig.scaling = 0;\r
defaultConfig.turbo_rate = 15;\r
+\r
+ soc = soc_detect();\r
+ if (soc == SOCID_MMSP2)\r
+ defaultConfig.s_PicoOpt |= POPT_EXT_FM;\r
}\r
\r
void osd_text(int x, int y, const char *text)\r
\r
if (notice || (emu_opt & 2)) {\r
int h = 232;\r
- if (currentConfig.scaling == 2 && !(Pico.video.reg[1]&8)) h -= 8;\r
- if (notice) osd_text(4, h, notice);\r
+ if (currentConfig.scaling == EOPT_SCALE_HW_HV && !(Pico.video.reg[1]&8))\r
+ h -= 8;\r
+ if (notice)\r
+ osd_text(4, h, notice);\r
if (emu_opt & 2)\r
osd_text(osd_fps_x, h, fps);\r
}\r
}\r
Pico.m.dirtyPal = 1;\r
// reset scaling\r
- if (currentConfig.scaling == 2 && !(Pico.video.reg[1]&8))\r
+ if (currentConfig.scaling == EOPT_SCALE_HW_HV && !(Pico.video.reg[1]&8))\r
gp2x_video_RGB_setscaling(8, (PicoOpt&0x100)&&!(Pico.video.reg[12]&1) ? 256 : 320, 224);\r
else gp2x_video_RGB_setscaling(0, (PicoOpt&0x100)&&!(Pico.video.reg[12]&1) ? 256 : 320, 240);\r
}\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
+ set_ram_timings();\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
gp2x_set_cpuclk(currentConfig.CPUclock);\r
vidCpyM2 = vidCpyM2_32col;\r
}\r
}\r
- if (currentConfig.scaling == 2 && !(modes&8)) // want vertical scaling and game is not in 240 line mode\r
+ /* want vertical scaling and game is not in 240 line mode */\r
+ if (currentConfig.scaling == EOPT_SCALE_HW_HV && !(modes&8))\r
gp2x_video_RGB_setscaling(8, scalex, 224);\r
else gp2x_video_RGB_setscaling(0, scalex, 240);\r
oldmodes = modes;\r