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"); } }
void fileBrowserFrame_LoadFile(int i) { if(dir_entries[i].attr & FILE_BROWSER_ATTR_DIR){ // Here we are 'recursing' into a subdirectory // We have to do a little dance here to avoid a dangling pointer fileBrowser_file* dir = (fileBrowser_file*)malloc( sizeof(fileBrowser_file) ); memcpy(dir, dir_entries+i, sizeof(fileBrowser_file)); fileBrowserFrame_OpenDirectory(dir); free(dir); menu::Focus::getInstance().clearPrimaryFocus(); } else { // We must select this file int ret = loadROM( &dir_entries[i] ); if(!ret){ // If the read succeeded. strcpy(feedback_string, "Loaded "); strncat(feedback_string, filenameFromAbsPath(dir_entries[i].name), 36-7); char RomInfo[512] = ""; char buffer [50]; char buffer2 [50]; strcat(RomInfo,feedback_string); sprintf(buffer,"\n\nRom name: %s\n",ROM_SETTINGS.goodname); strcat(RomInfo,buffer); sprintf(buffer,"Rom size: %d Mb\n",rom_length/1024/1024); strcat(RomInfo,buffer); if(ROM_HEADER->Manufacturer_ID == 'N') sprintf(buffer,"Manufacturer: Nintendo\n"); else sprintf(buffer,"Manufacturer: %x\n", (unsigned int)(ROM_HEADER->Manufacturer_ID)); strcat(RomInfo,buffer); countrycodestring(ROM_HEADER->Country_code&0xFF, buffer2); sprintf(buffer,"Country: %s\n",buffer2); strcat(RomInfo,buffer); switch (autoSaveLoaded) { case NATIVESAVEDEVICE_NONE: break; case NATIVESAVEDEVICE_SD: strcat(RomInfo,"\nFound & loaded save from SD card\n"); break; case NATIVESAVEDEVICE_USB: strcat(RomInfo,"\nFound & loaded save from USB device\n"); break; case NATIVESAVEDEVICE_CARDA: strcat(RomInfo,"\nFound & loaded save from memcard in slot A\n"); break; case NATIVESAVEDEVICE_CARDB: strcat(RomInfo,"\nFound & loaded save from memcard in slot B\n"); break; } autoSaveLoaded = NATIVESAVEDEVICE_NONE; menu::MessageBox::getInstance().setMessage(RomInfo); } else // If not. { switch(ret) { case ROM_CACHE_ERROR_READ: strcpy(feedback_string,"A read error occured"); break; case ROM_CACHE_INVALID_ROM: strcpy(feedback_string,"Invalid ROM type"); break; default: strcpy(feedback_string,"An error has occured"); break; } menu::MessageBox::getInstance().setMessage(feedback_string); } /* //disable all buttons for (int i = 0; i < NUM_FRAME_BUTTONS; i++) FRAME_BUTTONS[i].button->setActive(false); //set first entry to report 'success'/'error' and return to main menu FRAME_BUTTONS[2].buttonString = feedback_string; FRAME_BUTTONS[2].button->setClicked(Func_ReturnFromFileBrowserFrame); FRAME_BUTTONS[2].button->setActive(true); FRAME_BUTTONS[2].button->setNextFocus(menu::Focus::DIRECTION_UP, NULL); FRAME_BUTTONS[2].button->setNextFocus(menu::Focus::DIRECTION_DOWN, NULL); for (int i = 1; i<NUM_FILE_SLOTS; i++) FRAME_BUTTONS[i+2].buttonString = FRAME_STRINGS[2]; pMenuContext->getFrame(MenuContext::FRAME_FILEBROWSER)->setDefaultFocus(FRAME_BUTTONS[2].button); menu::Focus::getInstance().clearPrimaryFocus();*/ pMenuContext->setActiveFrame(MenuContext::FRAME_MAIN); if(hasLoadedROM) Func_SetPlayGame(); } }