/** * Set the emulation speed throttling to a specific value. */ void FCEUD_SetEmulationSpeed(int cmd) { MaxSpeed = false; switch(cmd) { case EMUSPEED_SLOWEST: g_fpsScale = Slowest; break; case EMUSPEED_SLOWER: DecreaseEmulationSpeed(); break; case EMUSPEED_NORMAL: g_fpsScale = Normal; break; case EMUSPEED_FASTER: IncreaseEmulationSpeed(); break; case EMUSPEED_FASTEST: g_fpsScale = Fastest; MaxSpeed = true; break; default: return; } RefreshThrottleFPS(); FCEU_DispMessage("emulation speed %.1f%%",0, g_fpsScale*100.0); }
/** * Loads a game, given a full path/filename. The driver code must be * initialized after the game is loaded, because the emulator code * provides data necessary for the driver code(number of scanlines to * render, what virtual input devices to use, etc.). */ int LoadGame(const char *path) { if (isloaded){ CloseGame(); } if(!FCEUI_LoadGame(path, 1)) { return 0; } int state_to_load; g_config->getOption("SDL.AutoLoadState", &state_to_load); if (state_to_load >= 0 && state_to_load < 10){ FCEUI_SelectState(state_to_load, 0); FCEUI_LoadState(NULL, false); } ParseGIInput(GameInfo); RefreshThrottleFPS(); if(!DriverInitialize(GameInfo)) { return(0); } // set pal/ntsc int id; g_config->getOption("SDL.PAL", &id); switch(id) { case 0: FCEUI_SetVidSystem(0); pal_emulation = 0; dendy = 0; break; case 1: FCEUI_SetVidSystem(1); pal_emulation = 1; dendy = 0; break; case 2: FCEUI_SetVidSystem(0); pal_emulation = 0; dendy = 1; } std::string filename; g_config->getOption("SDL.Sound.RecordFile", &filename); if(filename.size()) { if(!FCEUI_BeginWaveRecord(filename.c_str())) { g_config->setOption("SDL.Sound.RecordFile", ""); } } isloaded = 1; FCEUD_NetworkConnect(); return 1; }
/** * Set the emulation speed throttling to the next entry in the speed table. */ void IncreaseEmulationSpeed(void) { g_fpsScale *= LOGMUL; if(g_fpsScale > Fastest) g_fpsScale = Fastest; RefreshThrottleFPS(); FCEU_DispMessage("emulation speed %.1f%%",0, g_fpsScale*100.0); }
/** * Set the emulation speed throttling to the previous entry in the speed table. */ void DecreaseEmulationSpeed(void) { g_fpsScale /= LOGMUL; if(g_fpsScale < Slowest) g_fpsScale = Slowest; RefreshThrottleFPS(); FCEU_DispMessage("emulation speed %.1f%%",0, g_fpsScale*100.0); }
int LoadGame(const char *path) { MDFNGI *tmp; CloseGame(); pending_save_state = 0; pending_save_movie = 0; pending_snapshot = 0; #ifdef NEED_CDEMU if(loadcd) { if(!(tmp = MDFNI_LoadCD(loadcd, path))) return(0); } else #endif { if(!(tmp=MDFNI_LoadGame(path))) return 0; } CurGame = tmp; InitGameInput(tmp); RefreshThrottleFPS(1); SDL_mutexP(VTMutex); NeedVideoChange = -1; SDL_mutexV(VTMutex); if(SDL_ThreadID() != MainThreadID) while(NeedVideoChange) { SDL_Delay(1); } sound_active = 0; if(MDFN_GetSettingB("sound")) sound_active = InitSound(tmp); if(MDFN_GetSettingB("autosave")) MDFNI_LoadState(NULL, "ncq"); if(netconnect) MDFND_NetworkConnect(); GameThreadRun = 1; GameThread = SDL_CreateThread(GameLoop, NULL); ffnosound = MDFN_GetSettingB("ffnosound"); return 1; }
void Replay_LoadMovie() { if (suggestReadOnlyReplay) replayReadOnlySetting = true; else replayReadOnlySetting = FCEUI_GetMovieToggleReadOnly(); char* fn = (char*)DialogBoxParam(fceu_hInstance, "IDD_REPLAYINP", hAppWnd, ReplayDialogProc, 0); if(fn) { FCEUI_LoadMovie(fn, replayReadOnlySetting, replayStopFrameSetting); free(fn); //mbg 6/21/08 - i think this stuff has to get updated in case the movie changed the pal emulation flag pal_emulation = FCEUI_GetCurrentVidSystem(0,0); UpdateCheckedMenuItems(); SetMainWindowStuff(); RefreshThrottleFPS(); } }