void Func_SaveGame() { if(!flashramWritten && !sramWritten && !eepromWritten && !mempakWritten) { menu::MessageBox::getInstance().setMessage("Nothing to save"); return; } 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 saving everything int amountSaves = flashramWritten + sramWritten + eepromWritten + mempakWritten; int result = 0; saveFile_init(saveFile_dir); result += saveEeprom(saveFile_dir); result += saveSram(saveFile_dir); result += saveMempak(saveFile_dir); result += saveFlashram(saveFile_dir); saveFile_deinit(saveFile_dir); if (result==amountSaves) { switch (nativeSaveDevice) { case NATIVESAVEDEVICE_SD: menu::MessageBox::getInstance().setMessage("Saved game to SD card"); break; case NATIVESAVEDEVICE_USB: menu::MessageBox::getInstance().setMessage("Saved game to USB device"); break; case NATIVESAVEDEVICE_CARDA: menu::MessageBox::getInstance().setMessage("Saved game to memcard in Slot A"); break; case NATIVESAVEDEVICE_CARDB: menu::MessageBox::getInstance().setMessage("Saved game to memcard in Slot B"); break; } sramWritten = eepromWritten = mempakWritten = flashramWritten = false; } else menu::MessageBox::getInstance().setMessage("Failed to Save"); }
// NOTE: I assume an even item # = Slot A, OW = B static char* saveGameSD_func(int item_num){ // Adjust saveFile pointers saveFile_dir = &saveDir_libfat_Default; saveFile_readFile = fileBrowser_libfat_readFile; saveFile_writeFile = fileBrowser_libfat_writeFile; saveFile_init = fileBrowser_libfat_init; saveFile_deinit = fileBrowser_libfat_deinit; // Try loading everything int result = 0; saveFile_init(saveFile_dir); result += saveEeprom(saveFile_dir); result += saveSram(saveFile_dir); result += saveMempak(saveFile_dir); result += saveFlashram(saveFile_dir); return result ? "Saved game to SD card" : "Nothing to save"; }
static char* saveGameWiiFS_func(){ // Adjust saveFile pointers saveFile_dir = &saveDir_WiiFS; saveFile_readFile = fileBrowser_WiiFS_readFile; saveFile_writeFile = fileBrowser_WiiFS_writeFile; saveFile_init = fileBrowser_WiiFS_init; saveFile_deinit = fileBrowser_WiiFS_deinit; // Try loading everything int result = 0; saveFile_init(saveFile_dir); result += saveEeprom(saveFile_dir); result += saveSram(saveFile_dir); result += saveMempak(saveFile_dir); result += saveFlashram(saveFile_dir); saveFile_deinit(saveFile_dir); return result ? "Saved game to filesystem" : "Nothing to save"; }
static char* saveGameCARD_func(int item_num){ // Adjust saveFile pointers saveFile_dir = (item_num%2) ? &saveDir_CARD_SlotB : &saveDir_CARD_SlotA; saveFile_readFile = fileBrowser_CARD_readFile; saveFile_writeFile = fileBrowser_CARD_writeFile; saveFile_init = fileBrowser_CARD_init; saveFile_deinit = fileBrowser_CARD_deinit; // Try loading everything int result = 0; saveFile_init(saveFile_dir); result += saveEeprom(saveFile_dir); result += saveSram(saveFile_dir); result += saveMempak(saveFile_dir); result += saveFlashram(saveFile_dir); saveFile_deinit(saveFile_dir); return result ? "Saved game to memcard" : "Nothing to save"; }
void saveEepromIfNeeded(const char* file) { if (eepromAccess.changed()) { saveEeprom(file); } }
void Func_PlayGame() { if(!hasLoadedROM) { menu::MessageBox::getInstance().setMessage("Please load a ROM first"); return; } //Wait until 'A' button released before play/resume game menu::Cursor::getInstance().setFreezeAction(true); menu::Focus::getInstance().setFreezeAction(true); int buttonHeld = 1; while(buttonHeld) { buttonHeld = 0; menu::Gui::getInstance().draw(); for (int i=0; i<4; i++) { if(PAD_ButtonsHeld(i) & PAD_BUTTON_A) buttonHeld++; #ifdef HW_RVL WPADData* wiiPad = WPAD_Data(i); if(wiiPad->err == WPAD_ERR_NONE && wiiPad->btns_h & (WPAD_BUTTON_A | WPAD_CLASSIC_BUTTON_A)) buttonHeld++; #endif } } menu::Cursor::getInstance().setFreezeAction(false); menu::Focus::getInstance().setFreezeAction(false); menu::Gui::getInstance().gfx->clearEFB((GXColor){0, 0, 0, 0xFF}, 0x000000); pause_netinit_thread(); pauseRemovalThread(); resumeAudio(); resumeInput(); menuActive = 0; #ifdef DEBUGON _break(); #endif new_frame(); new_vi(); go(); #ifdef DEBUGON _break(); #endif menuActive = 1; pauseInput(); pauseAudio(); if(autoSave==AUTOSAVE_ENABLE) { if(flashramWritten || sramWritten || eepromWritten || mempakWritten) { //something needs saving 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 saving everything int amountSaves = flashramWritten + sramWritten + eepromWritten + mempakWritten; int result = 0; saveFile_init(saveFile_dir); result += saveEeprom(saveFile_dir); result += saveSram(saveFile_dir); result += saveMempak(saveFile_dir); result += saveFlashram(saveFile_dir); saveFile_deinit(saveFile_dir); if (result==amountSaves) { //saved all of them ok switch (nativeSaveDevice) { case NATIVESAVEDEVICE_SD: menu::MessageBox::getInstance().fadeMessage("Automatically saved to SD card"); break; case NATIVESAVEDEVICE_USB: menu::MessageBox::getInstance().fadeMessage("Automatically saved to USB device"); break; case NATIVESAVEDEVICE_CARDA: menu::MessageBox::getInstance().fadeMessage("Automatically saved to memcard in Slot A"); break; case NATIVESAVEDEVICE_CARDB: menu::MessageBox::getInstance().fadeMessage("Automatically saved to memcard in Slot B"); break; } flashramWritten = sramWritten = eepromWritten = mempakWritten = 0; //nothing new written since save } else menu::MessageBox::getInstance().setMessage("Failed to save game"); //one or more failed to save } } continueRemovalThread(); resume_netinit_thread(); FRAME_BUTTONS[5].buttonString = FRAME_STRINGS[6]; menu::Cursor::getInstance().clearCursorFocus(); }