// check for both gmv and rom\r
int dummy;\r
FILE *movie_file = fopen(rom_fname, "rb");\r
- if(!movie_file) {\r
+ if (!movie_file) {\r
me_update_msg("Failed to open movie.");\r
return 0;\r
}\r
fseek(movie_file, 0, SEEK_END);\r
movie_size = ftell(movie_file);\r
fseek(movie_file, 0, SEEK_SET);\r
- if(movie_size < 64+3) {\r
+ if (movie_size < 64+3) {\r
me_update_msg("Invalid GMV file.");\r
fclose(movie_file);\r
return 0;\r
}\r
movie_data = malloc(movie_size);\r
- if(movie_data == NULL) {\r
+ if (movie_data == NULL) {\r
me_update_msg("low memory.");\r
fclose(movie_file);\r
return 0;\r
}\r
- fread(movie_data, 1, movie_size, movie_file);\r
+ dummy = fread(movie_data, 1, movie_size, movie_file);\r
fclose(movie_file);\r
if (strncmp((char *)movie_data, "Gens Movie TEST", 15) != 0) {\r
me_update_msg("Invalid GMV file.");\r
cfg_buff_512[511] = 0;\r
}\r
\r
+void emu_prep_defconfig(void)\r
+{\r
+ memset(&defaultConfig, 0, sizeof(defaultConfig));\r
+ defaultConfig.EmuOpt = 0x9d | EOPT_RAM_TIMINGS|EOPT_CONFIRM_SAVE|EOPT_EN_CD_LEDS;\r
+ defaultConfig.s_PicoOpt = POPT_EN_STEREO|POPT_EN_FM|POPT_EN_PSG|POPT_EN_Z80 |\r
+ POPT_EN_MCD_PCM|POPT_EN_MCD_CDDA|POPT_EN_SVP_DRC|POPT_ACC_SPRITES |\r
+ POPT_EN_32X|POPT_EN_PWM;\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.volume = 50;\r
+ defaultConfig.gamma = 100;\r
+ defaultConfig.scaling = 0;\r
+ defaultConfig.turbo_rate = 15;\r
+\r
+ // platform specific overrides\r
+ pemu_prep_defconfig();\r
+}\r
+\r
void emu_set_defconfig(void)\r
{\r
memcpy(¤tConfig, &defaultConfig, sizeof(currentConfig));\r
}\r
}\r
\r
- plat_validate_config();\r
+ pemu_validate_config();\r
\r
// some sanity checks\r
#ifdef PSP\r
sram_size = SRam.size;\r
sram_data = SRam.data;\r
}\r
- if (!sram_data) return 0; // SRam forcefully disabled for this game\r
+ if (sram_data == NULL)\r
+ return 0; // SRam forcefully disabled for this game\r
\r
if (load)\r
{\r
sramFile = fopen(saveFname, "rb");\r
- if(!sramFile) return -1;\r
- fread(sram_data, 1, sram_size, sramFile);\r
+ if (!sramFile)\r
+ return -1;\r
+ ret = fread(sram_data, 1, sram_size, sramFile);\r
+ ret = ret > 0 ? 0 : -1;\r
fclose(sramFile);\r
if ((PicoAHW & PAHW_MCD) && (PicoOpt&POPT_EN_MCD_RAMCART))\r
memcpy32((int *)Pico_mcd->bram, (int *)sram_data, 0x2000/4);\r
\r
emu_update_input();\r
PicoFrame();\r
+ pemu_finalize_frame(fpsbuff, notice_msg);\r
+\r
+ //plat_video_flip();\r
\r
/* frame limiter */\r
if (!reset_timing && !(currentConfig.EmuOpt & (EOPT_NO_FRMLIMIT|EOPT_EXT_FRMLIMIT)))\r
}\r
}\r
\r
- pemu_update_display(fpsbuff, notice_msg);\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
\r
pframes_done++; frames_done++; frames_shown++;\r
}\r