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; }
void audio_file_init(void) { audio_info_init(&av); }