static char* choose_Interpreter(){ int needInit = 0; if(hasLoadedROM && dynacore != 0){ cpu_deinit(); needInit = 1; } dynacore = 0; if(hasLoadedROM && needInit) cpu_init(); return "Running Interpreter Mode"; }
static char* choose_Dynarec(){ int needInit = 0; if(hasLoadedROM && dynacore != 1){ cpu_deinit(); needInit = 1; } dynacore = 1; if(hasLoadedROM && needInit) cpu_init(); return "Running Dynarec Mode"; }
void Func_ChooseDynarec() { int needInit = 0; if(hasLoadedROM && dynacore != 1){ cpu_deinit(); needInit = 1; } dynacore = 1; if(hasLoadedROM && needInit) cpu_init(); menu::MessageBox::getInstance().setMessage("Running Dynarec Mode"); pMenuContext->setActiveFrame(MenuContext::FRAME_MAIN); }
static char* restartGame_func(){ if(hasLoadedROM){ cpu_deinit(); romClosed_RSP(); romClosed_input(); romClosed_audio(); romClosed_gfx(); free_memory(); init_memory(); romOpen_gfx(); romOpen_audio(); romOpen_input(); cpu_init(); return "Game restarted"; } else return "Please load a ROM first"; }
/* Remove the output files if there was no output written */ static void cleanup_output(void) { #ifndef NO_STDIO_REDIRECT FILE *file; int empty; #endif /* Flush the output in case anything is queued */ fclose(stdout); fclose(stderr); #ifndef NO_STDIO_REDIRECT /* See if the files have any output in them */ file = fopen(STDOUT_FILE, "rb"); if ( file ) { empty = (fgetc(file) == EOF) ? 1 : 0; fclose(file); if ( empty ) { remove(STDOUT_FILE); } } file = fopen(STDERR_FILE, "rb"); if ( file ) { empty = (fgetc(file) == EOF) ? 1 : 0; fclose(file); if ( empty ) { remove(STDERR_FILE); } } #endif #if defined(GP2X_MODE) || defined(WIZ_MODE) cpu_deinit(); chdir("/usr/gp2x"); execl("/usr/gp2x/gp2xmenu", "/usr/gp2x/gp2xmenu", NULL); #endif }
void Func_ResetROM() { if(hasLoadedROM) { cpu_deinit(); romClosed_RSP(); romClosed_input(); romClosed_audio(); romClosed_gfx(); free_memory(); init_memory(); romOpen_gfx(); romOpen_audio(); romOpen_input(); cpu_init(); menu::MessageBox::getInstance().setMessage("Game restarted"); Func_SetPlayGame(); } else { menu::MessageBox::getInstance().setMessage("Please load a ROM first"); } }
int loadROM(fileBrowser_file* rom){ int ret = 0; savestates_job = 0; //clear all pending save states // First, if there's already a loaded ROM if(hasLoadedROM){ // Unload it, and deinit everything cpu_deinit(); eepromWritten = FALSE; mempakWritten = FALSE; sramWritten = FALSE; flashramWritten = FALSE; romClosed_RSP(); romClosed_input(); romClosed_audio(); romClosed_gfx(); closeDLL_RSP(); closeDLL_input(); closeDLL_audio(); closeDLL_gfx(); ROMCache_deinit(); free_memory(); #ifndef HW_RVL ARAM_manager_deinit(); #endif } format_mempacks(); reset_flashram(); init_eeprom(); hasLoadedROM = TRUE; #ifndef HW_RVL ARAM_manager_init(); #endif #ifdef USE_TLB_CACHE TLBCache_init(); #else tlb_mem2_init(); #endif //romFile_init(rom); ret = rom_read(rom); if(ret){ // Something failed while trying to read the ROM. hasLoadedROM = FALSE; return ret; } // Init everything for this ROM init_memory(); gfx_set_fb(xfb[0], xfb[1]); if (screenMode == SCREENMODE_16x9_PILLARBOX) gfx_set_window( 78, 0, 483, 480); else gfx_set_window( 0, 0, 640, 480); gfx_info_init(); audio_info_init(); // control_info_init(); rsp_info_init(); romOpen_gfx(); // gfx_set_fb(xfb[0], xfb[1]); romOpen_audio(); romOpen_input(); cpu_init(); if(autoSave==AUTOSAVE_ENABLE) { switch (nativeSaveDevice) { case NATIVESAVEDEVICE_SD: case NATIVESAVEDEVICE_USB: // Adjust saveFile pointers saveFile_dir = (nativeSaveDevice==NATIVESAVEDEVICE_SD) ? &saveDir_libfat_Default:&saveDir_libfat_USB; saveFile_readFile = fileBrowser_libfat_readFile; saveFile_writeFile = fileBrowser_libfat_writeFile; saveFile_init = fileBrowser_libfat_init; saveFile_deinit = fileBrowser_libfat_deinit; break; case NATIVESAVEDEVICE_CARDA: case NATIVESAVEDEVICE_CARDB: // Adjust saveFile pointers saveFile_dir = (nativeSaveDevice==NATIVESAVEDEVICE_CARDA) ? &saveDir_CARD_SlotA:&saveDir_CARD_SlotB; saveFile_readFile = fileBrowser_CARD_readFile; saveFile_writeFile = fileBrowser_CARD_writeFile; saveFile_init = fileBrowser_CARD_init; saveFile_deinit = fileBrowser_CARD_deinit; break; } // Try loading everything int result = 0; saveFile_init(saveFile_dir); result += loadEeprom(saveFile_dir); result += loadSram(saveFile_dir); result += loadMempak(saveFile_dir); result += loadFlashram(saveFile_dir); saveFile_deinit(saveFile_dir); switch (nativeSaveDevice) { case NATIVESAVEDEVICE_SD: // if (result) menu::MessageBox::getInstance().setMessage("Found & loaded save from SD card"); if (result) autoSaveLoaded = NATIVESAVEDEVICE_SD; break; case NATIVESAVEDEVICE_USB: // if (result) menu::MessageBox::getInstance().setMessage("Found & loaded save from USB device"); if (result) autoSaveLoaded = NATIVESAVEDEVICE_USB; break; case NATIVESAVEDEVICE_CARDA: // if (result) menu::MessageBox::getInstance().setMessage("Found & loaded save from memcard in slot A"); if (result) autoSaveLoaded = NATIVESAVEDEVICE_CARDA; break; case NATIVESAVEDEVICE_CARDB: // if (result) menu::MessageBox::getInstance().setMessage("Found & loaded save from memcard in slot B"); if (result) autoSaveLoaded = NATIVESAVEDEVICE_CARDB; break; } } return 0; }