#include <stdlib.h>\r
#include <string.h>\r
#include <stdarg.h>\r
-#ifndef NO_SYNC\r
+#ifdef __GP2X__\r
#include <unistd.h>\r
#endif\r
\r
#include <pico/pico_int.h>\r
#include <pico/patch.h>\r
\r
+#ifndef _WIN32\r
+#define PATH_SEP "/"\r
+#define PATH_SEP_C '/'\r
+#else\r
+#define PATH_SEP "\\"\r
+#define PATH_SEP_C '\\'\r
+#endif\r
\r
#define STATUS_MSG_TIMEOUT 2000\r
\r
void *g_screen_ptr;\r
\r
-#if !SCREEN_SIZE_FIXED\r
-int g_screen_width = SCREEN_WIDTH;\r
-int g_screen_height = SCREEN_HEIGHT;\r
-#endif\r
+int g_screen_width = 320;\r
+int g_screen_height = 240;\r
\r
char *PicoConfigFile = "config.cfg";\r
currentConfig_t currentConfig, defaultConfig;\r
int state_slot = 0;\r
int config_slot = 0, config_slot_current = 0;\r
int pico_pen_x = 320/2, pico_pen_y = 240/2;\r
-int pico_inp_mode = 0;\r
+int pico_inp_mode;\r
+int flip_after_sync;\r
int engineState = PGS_Menu;\r
\r
static short __attribute__((aligned(4))) sndBuffer[2*44100/50];\r
defaultConfig.gamma = 100;\r
defaultConfig.scaling = 0;\r
defaultConfig.turbo_rate = 15;\r
+ defaultConfig.msh2_khz = PICO_MSH2_HZ / 1000;\r
+ defaultConfig.ssh2_khz = PICO_SSH2_HZ / 1000;\r
\r
// platform specific overrides\r
pemu_prep_defconfig();\r
PicoRegionOverride = currentConfig.s_PicoRegion;\r
PicoAutoRgnOrder = currentConfig.s_PicoAutoRgnOrder;\r
PicoCDBuffers = currentConfig.s_PicoCDBuffers;\r
- p32x_msh2_multiplier = MSH2_MULTI_DEFAULT;\r
- p32x_ssh2_multiplier = SSH2_MULTI_DEFAULT;\r
}\r
\r
int emu_read_config(const char *rom_fname, int no_defaults)\r
lprintf("emu_write_config: %s ", cfg);\r
ret = config_write(cfg);\r
if (write_lrom) config_writelrom(cfg);\r
-#ifndef NO_SYNC\r
+#ifdef __GP2X__\r
sync();\r
#endif\r
lprintf((ret == 0) ? "(ok)\n" : "(failed)\n");\r
ret = fwrite(sram_data, 1, sram_size, sramFile);\r
ret = (ret != sram_size) ? -1 : 0;\r
fclose(sramFile);\r
-#ifndef NO_SYNC\r
+#ifdef __GP2X__\r
sync();\r
#endif\r
}\r
{\r
ret = PicoState(saveFname, !load);\r
if (!ret) {\r
-#ifndef NO_SYNC\r
+#ifdef __GP2X__\r
if (!load) sync();\r
#endif\r
emu_status_msg(load ? "STATE LOADED" : "STATE SAVED");\r
char cfg[512];\r
make_config_cfg(cfg);\r
config_writelrom(cfg);\r
-#ifndef NO_SYNC\r
+#ifdef __GP2X__\r
sync();\r
#endif\r
}\r
PicoFrame();\r
pemu_finalize_frame(fpsbuff, notice_msg);\r
\r
- // plat_video_flip();\r
+ if (!flip_after_sync)\r
+ plat_video_flip();\r
\r
/* frame limiter */\r
if (!reset_timing && !(currentConfig.EmuOpt & (EOPT_NO_FRMLIMIT|EOPT_EXT_FRMLIMIT)))\r
}\r
}\r
\r
- // XXX: for some plats it might be better to flip before vsync\r
- // (due to shadow registers in display hw)\r
- plat_video_flip();\r
+ if (flip_after_sync)\r
+ plat_video_flip();\r
\r
pframes_done++; frames_done++; frames_shown++;\r
\r