diff --git a/out/boot.dol b/out/boot.dol index f9157237..30e0f8f1 100644 Binary files a/out/boot.dol and b/out/boot.dol differ diff --git a/source/gui/video.cpp b/source/gui/video.cpp index 9d4f36ad..a501ce16 100644 --- a/source/gui/video.cpp +++ b/source/gui/video.cpp @@ -553,18 +553,18 @@ void CVideo::render(void) GX_InvalidateTexAll(); } -void * CVideo::_showWaitMessages(void *obj) +void * CVideo::_showWaitMessages(void *obj)// wait images thread { CVideo *m = static_cast(obj); m->m_showingWaitMessages = true; - u32 frames = m->m_waitMessageDelay * 50; - u32 waitFrames = frames; + u32 frames = m->m_waitMessageDelay * 50;// set delay start + u32 waitFrames = frames;// set delay counter to delay start s8 fadeDirection = 1; - s8 PNGfadeDirection = 1; + s8 PNGfadeDirection = 1;// set frames movement direction s16 currentLightLevel = 0; - vector::iterator waitItr = m->m_waitMessages.begin(); + vector::iterator waitItr = m->m_waitMessages.begin();// set start frame image m->_clearScreen(); m->prepare(); @@ -586,25 +586,25 @@ void * CVideo::_showWaitMessages(void *obj) } wiiLightSetLevel(currentLightLevel); - if(waitFrames == 0) + if(waitFrames == 0)// if delay count reaches 0 { - m->waitMessage(*waitItr); - waitItr += PNGfadeDirection; + m->waitMessage(*waitItr);// draw frame image + waitItr += PNGfadeDirection;// move to next image if(waitItr + 1 == m->m_waitMessages.end() || waitItr == m->m_waitMessages.begin()) - PNGfadeDirection *= (-1); - waitFrames = frames; + PNGfadeDirection *= (-1);// change direction if at beginning or end + waitFrames = frames;// reset delay count m->render(); } else VIDEO_WaitVSync(); - waitFrames--; + waitFrames--;// decrement delay count } //gprintf("Wait Message Thread: End\n"); m->m_showingWaitMessages = false; return NULL; } -void CVideo::hideWaitMessage() +void CVideo::hideWaitMessage()// stop wait images and wii disc slot light threads { m_showWaitMessage = false; if(waitThread != LWP_THREAD_NULL) @@ -622,7 +622,7 @@ void CVideo::hideWaitMessage() waitThread = LWP_THREAD_NULL; } -void CVideo::waitMessage(float delay) +void CVideo::waitMessage(float delay)// called from main.cpp to show wait animation on wf boot { if(m_defaultWaitMessages.size() == 0) { @@ -638,10 +638,10 @@ void CVideo::waitMessage(float delay) for(int i = 0; i < 8; i++) m_defaultWaitMessages.push_back(m_wTextures[i]); } - waitMessage(vector(), delay); + waitMessage(m_defaultWaitMessages, delay); } -void CVideo::waitMessage(const vector &tex, float delay) +void CVideo::waitMessage(const vector &tex, float delay)// start wait images and wii slot light threads or draw { hideWaitMessage(); m_WaitThreadRunning = true; @@ -658,19 +658,19 @@ void CVideo::waitMessage(const vector &tex, float delay) } if(m_waitMessages.size() == 1) - waitMessage(m_waitMessages[0]); - else if(m_waitMessages.size() > 1) + waitMessage(m_waitMessages[0]);// draws frame image using function below (for one frame image only) but no render? + else if(m_waitMessages.size() > 1)// if more than one frame { /* changing light */ wiiLightSetLevel(0); - wiiLightStartThread(); + wiiLightStartThread();// start thread in gekko.c that pulses the wii disc slot light on and off /* onscreen animation */ - m_showWaitMessage = true; + m_showWaitMessage = true;// start wait images thread to animate them LWP_CreateThread(&waitThread, _showWaitMessages, this, waitMessageStack, waitMessageStackSize, LWP_PRIO_HIGHEST); } } -void CVideo::waitMessage(const TexData &tex) +void CVideo::waitMessage(const TexData &tex)//draw frame image { Mtx modelViewMtx; GXTexObj texObj; @@ -715,7 +715,7 @@ s32 CVideo::TakeScreenshot(const char *path) return ret; } -void DrawTexture(TexData * &tex) +void DrawTexture(TexData * &tex)// used by coverflow to draw cover texture. use in mainloopcommon() in menu.cpp { if(tex == NULL) return; @@ -758,7 +758,7 @@ void DrawTexture(TexData * &tex) GX_End(); } -void DrawRectangle(f32 x, f32 y, f32 width, f32 height, GXColor color) +void DrawRectangle(f32 x, f32 y, f32 width, f32 height, GXColor color)// used by banner window and screen saver below { Mtx modelViewMtx; guMtxIdentity(modelViewMtx); @@ -786,7 +786,7 @@ void DrawRectangle(f32 x, f32 y, f32 width, f32 height, GXColor color) GX_SetTevOp(GX_TEVSTAGE0, GX_MODULATE); } -void DrawTexturePos(const TexData *tex) +void DrawTexturePos(const TexData *tex)// draws movie frame texture when playing movie in menu_game.cpp { Mtx modelViewMtx; GXTexObj texObj; diff --git a/source/menu/menu.cpp b/source/menu/menu.cpp index fca3e807..6932d7b2 100644 --- a/source/menu/menu.cpp +++ b/source/menu/menu.cpp @@ -2292,8 +2292,7 @@ bool CMenu::_loadChannelList(void) if(chantypes & CHANNELS_EMU) { NANDemuView = true; - string emuPath; - int emuPartition = _FindEmuPart(emuPath, false, false);// check if emunand folder exist and on FAT + int emuPartition = _FindEmuPart(false, false);// check if emunand folder exist and on FAT if(emuPartition >= 0) { currentPartition = emuPartition; @@ -2461,7 +2460,8 @@ void CMenu::_hideWaitMessage() void CMenu::_showWaitMessage() { - m_vid.waitMessage(_textures("GENERAL", "waitmessage"), m_theme.getFloat("GENERAL", "waitmessage_delay", 0.f)); + m_vid.waitMessage(0.15f); + //m_vid.waitMessage(_textures("GENERAL", "waitmessage"), m_theme.getFloat("GENERAL", "waitmessage_delay", 0.f)); } typedef struct map_entry diff --git a/source/menu/menu.hpp b/source/menu/menu.hpp index ce96c302..fbdb4067 100644 --- a/source/menu/menu.hpp +++ b/source/menu/menu.hpp @@ -5,6 +5,7 @@ #include #include #include +#include #include "btnmap.h" #include "channel/banner.h" @@ -968,7 +969,6 @@ private: void _hideCategorySettings(bool instant = false); void _hideSystem(bool instant = false); void _hideGameInfo(bool instant = false); - void _hideCheatDownload(bool instant = false); void _hideNandEmu(bool instant = false); void _hideNandEmuPg(); void _hideHome(bool instant = false); @@ -1005,7 +1005,6 @@ private: void _showWBFS(WBFS_OP op); void _showCFTheme(u32 curParam, int version, bool wide); void _showGameSettings(void); - void _showCheatDownload(void); void _showHome(void); void _showExitTo(void); void _showCoverBanner(void); @@ -1178,14 +1177,14 @@ private: void _stopSounds(void); static void * _NandDumper(void *obj); static void * _NandFlasher(void *obj); - int _FindEmuPart(string &emuPath, bool searchvalid, bool savesnand); + int _FindEmuPart(bool searchvalid, bool savesnand); bool _checkSave(string id, bool nand); bool _TestEmuNand(int epart, const char *path, bool indept); void _checkEmuNandSettings(void); void _FullNandCheck(void); void _listEmuNands(const char *path, vector &emuNands); - static void * _downloadCheatFileAsync(void *obj); + int _downloadCheatFileAsync(); int _downloadBannerAsync(); static void * _downloadUrlAsync(void *obj); diff --git a/source/menu/menu_cheat.cpp b/source/menu/menu_cheat.cpp index 5f02894b..82300355 100644 --- a/source/menu/menu_cheat.cpp +++ b/source/menu/menu_cheat.cpp @@ -10,62 +10,29 @@ u8 m_cheatSettingsPage = 0; -void CMenu::_hideCheatDownload(bool instant) +int CMenu::_downloadCheatFileAsync() { - m_btnMgr.hide(m_downloadBtnCancel, instant); - m_btnMgr.hide(m_downloadPBar, instant); - m_btnMgr.hide(m_downloadLblMessage[0], 0, 0, -2.f, 0.f, instant); - m_btnMgr.hide(m_downloadLblMessage[1], 0, 0, -2.f, 0.f, instant); -} - -void CMenu::_showCheatDownload(void) -{ - _setBg(m_downloadBg, m_downloadBg); - m_btnMgr.show(m_downloadBtnCancel); - m_btnMgr.show(m_downloadPBar); -} - -void * CMenu::_downloadCheatFileAsync(void *obj) -{ - CMenu *m = (CMenu *)obj; - if (!m->m_thrdWorking) - return 0; - - m->m_thrdStop = false; - - LWP_MutexLock(m->m_mutex); - m->_setThrdMsg(m->_t("cfgg23", L"Downloading cheat file..."), 0); - LWP_MutexUnlock(m->m_mutex); - - if (m->_initNetwork() < 0) + m_thrdTotal = 2;// download and save + + m_thrdMessage = _t("dlmsg1", L"Initializing network..."); + m_thrdMessageAdded = true; + if(_initNetwork() < 0) { - m->m_thrdWorking = false; - return 0; + return -2; } - /*u32 bufferSize = 0x080000; // Maximum download size 512kb - u8 *buffer = (u8*)MEM2_alloc(bufferSize); - if(buffer == NULL) - { - m->m_thrdWorking = false; - return 0; - }*/ - const char *id = CoverFlow.getId(); //char type = id[0] == 'S' ? 'R' : id[0]; block cheatfile = downloadfile(fmt(GECKOURL, id)); - if (cheatfile.data != NULL && cheatfile.size > 65 && cheatfile.data[0] != '<') + if(cheatfile.data != NULL && cheatfile.size > 65 && cheatfile.data[0] != '<') { - fsop_WriteFile(fmt("%s/%s.txt", m->m_txtCheatDir.c_str(), id), cheatfile.data, cheatfile.size); - //free(buffer); - m->m_thrdWorking = false; + update_pThread(1);//its downloaded + fsop_WriteFile(fmt("%s/%s.txt", m_txtCheatDir.c_str(), id), cheatfile.data, cheatfile.size); return 0; } - //free(buffer); - m->m_thrdWorking = false; - return 0; + return -3;// download failed } void CMenu::_CheatSettings() @@ -164,73 +131,41 @@ void CMenu::_CheatSettings() } else if (m_btnMgr.selected(m_cheatBtnDownload)) { - int msg = 0; - wstringEx prevMsg; - - // Download cheat code - m_btnMgr.setProgress(m_downloadPBar, 0.f); _hideCheatSettings(); - _showCheatDownload(); - m_btnMgr.setText(m_downloadBtnCancel, _t("dl1", L"Cancel")); - m_thrdStop = false; - m_thrdMessageAdded = false; - - m_thrdWorking = true; - lwp_t thread = LWP_THREAD_NULL; - LWP_CreateThread(&thread, _downloadCheatFileAsync, this, downloadStack, downloadStackSize, 40); - while(m_thrdWorking) + bool dl_finished = false; + while(!m_exit) { _mainLoopCommon(); - if ((BTN_HOME_PRESSED || BTN_B_PRESSED) && !m_thrdWorking) + if((BTN_HOME_PRESSED || BTN_B_PRESSED) && dl_finished) + { + m_btnMgr.hide(m_wbfsPBar); + m_btnMgr.hide(m_wbfsLblMessage); + m_btnMgr.hide(m_wbfsLblDialog); break; - if (BTN_A_PRESSED && !(m_thrdWorking && m_thrdStop)) - { - if (m_btnMgr.selected(m_downloadBtnCancel)) - { - LockMutex lock(m_mutex); - m_thrdStop = true; - m_thrdMessageAdded = true; - m_thrdMessage = _t("dlmsg6", L"Canceling..."); - } } - if (Sys_Exiting()) + if(!dl_finished) { - LockMutex lock(m_mutex); - m_thrdStop = true; - m_thrdMessageAdded = true; - m_thrdMessage = _t("dlmsg6", L"Canceling..."); - m_thrdWorking = false; + m_btnMgr.setProgress(m_wbfsPBar, 0.f, true); + m_btnMgr.setText(m_wbfsLblMessage, L"0%"); + m_btnMgr.setText(m_wbfsLblDialog, L""); + m_btnMgr.show(m_wbfsPBar); + m_btnMgr.show(m_wbfsLblMessage); + m_btnMgr.show(m_wbfsLblDialog); + + _start_pThread(); + int ret = _downloadCheatFileAsync(); + _stop_pThread(); + if(ret == -1) + m_btnMgr.setText(m_wbfsLblDialog, _t("dlmsg27", L"Not enough memory!")); + else if(ret == -2) + m_btnMgr.setText(m_wbfsLblDialog, _t("dlmsg2", L"Network initialization failed!")); + else if(ret == -3) + m_btnMgr.setText(m_wbfsLblDialog, _t("dlmsg12", L"Download failed!")); + else + m_btnMgr.setText(m_wbfsLblDialog, _t("dlmsg14", L"Done.")); + dl_finished = true; } - - if (m_thrdMessageAdded) - { - LockMutex lock(m_mutex); - m_thrdMessageAdded = false; - m_btnMgr.setProgress(m_downloadPBar, m_thrdProgress); - if (m_thrdProgress >= 1.f) { - // m_btnMgr.setText(m_downloadBtnCancel, _t("dl2", L"Back")); - break; - } - if (prevMsg != m_thrdMessage) - { - prevMsg = m_thrdMessage; - m_btnMgr.setText(m_downloadLblMessage[msg], m_thrdMessage, false); - m_btnMgr.hide(m_downloadLblMessage[msg], 0, 0, -1.f, -1.f, true); - m_btnMgr.show(m_downloadLblMessage[msg]); - msg ^= 1; - m_btnMgr.hide(m_downloadLblMessage[msg], 0, 0, -1.f, -1.f); - } - } - if (m_thrdStop && !m_thrdWorking) - break; } - if (thread != LWP_THREAD_NULL) - { - LWP_JoinThread(thread, NULL); - thread = LWP_THREAD_NULL; - } - _hideCheatDownload(); - txtavailable = m_cheatfile.openTxtfile(fmt("%s/%s.txt", m_txtCheatDir.c_str(), id)); _showCheatSettings(); @@ -242,9 +177,9 @@ void CMenu::_CheatSettings() if (m_cheatfile.getCnt() == 0) { // cheat code not found, show result - char type = id[0] == 'S' ? 'R' : id[0]; + //char type = id[0] == 'S' ? 'R' : id[0]; m_btnMgr.setText(m_cheatLblItem[0], _t("cheat4", L"Download not found.")); - m_btnMgr.setText(m_cheatLblItem[1], sfmt(GECKOURL, type, id)); + m_btnMgr.setText(m_cheatLblItem[1], sfmt(GECKOURL, id)); m_btnMgr.show(m_cheatLblItem[1]); } } diff --git a/source/menu/menu_error.cpp b/source/menu/menu_error.cpp index 399caed7..236f67e3 100644 --- a/source/menu/menu_error.cpp +++ b/source/menu/menu_error.cpp @@ -24,7 +24,6 @@ void CMenu::error(const wstringEx &msg) _hideCategorySettings(); _hideSystem(); _hideGameInfo(); - _hideCheatDownload(); _hideGameSettings(); _hideSource(); _hideWaitMessage(); diff --git a/source/menu/menu_game.cpp b/source/menu/menu_game.cpp index 358b2803..0cf7e68f 100644 --- a/source/menu/menu_game.cpp +++ b/source/menu/menu_game.cpp @@ -1716,8 +1716,7 @@ void CMenu::_launchGame(dir_discHdr *hdr, bool dvd, bool disc_cfg) if(emulate_mode && !dvd && !neek2o()) { - string emuPath; - int emuPart = _FindEmuPart(emuPath, true, true); + int emuPart = _FindEmuPart( true, true); if(emuPart == -1)//if savepartition is unusable { _hideWaitMessage(); @@ -1729,10 +1728,11 @@ void CMenu::_launchGame(dir_discHdr *hdr, bool dvd, bool disc_cfg) { bool need_config = false; bool need_miis = false; + const char *emuPath = NandHandle.Get_NandPath(); - //char testpath[MAX_FAT_PATH]; char basepath[MAX_FAT_PATH]; - snprintf(basepath, sizeof(basepath), "%s:%s", DeviceName[emuPart], emuPath.c_str()); + snprintf(basepath, sizeof(basepath), "%s:%s", DeviceName[emuPart], emuPath); + char testpath[strlen(basepath) + 42]; // does not check to see if actual tmd exist just if the folder exist diff --git a/source/menu/menu_main.cpp b/source/menu/menu_main.cpp index 87d963c2..8713e672 100644 --- a/source/menu/menu_main.cpp +++ b/source/menu/menu_main.cpp @@ -762,8 +762,7 @@ int CMenu::main(void) const char *ReturnPath = NULL; if(!m_cfg.getBool(CHANNEL_DOMAIN, "neek_return_default", false)) { - string emuPath; - if(_FindEmuPart(emuPath, false, false) >= 0)// make sure emunand folder exists + if(_FindEmuPart(false, false) >= 0)// make sure emunand folder exists ReturnPath = NandHandle.Get_NandPath(); } Sys_SetNeekPath(ReturnPath); diff --git a/source/menu/menu_nandemu.cpp b/source/menu/menu_nandemu.cpp index e47acfc2..657302cc 100644 --- a/source/menu/menu_nandemu.cpp +++ b/source/menu/menu_nandemu.cpp @@ -197,26 +197,30 @@ void CMenu::_FullNandCheck(void) emulate_mode = m_cfg.getInt(WII_DOMAIN, "save_emulation", 0); if((i == 0 && emulate_mode == 1) || (i == 1 && emulate_mode == 2))//full { - string emuPath; - int emuPart = _FindEmuPart(emuPath, true, i); + int emuPart = _FindEmuPart( true, i); if(emuPart < 0) continue; bool need_config = false; bool need_miis = false; - - string testpath; - string basepath = DeviceName[emuPart] + ':' + emuPath; + const char *emuPath = NandHandle.Get_NandPath(); + + char basepath[MAX_FAT_PATH]; + snprintf(basepath, sizeof(basepath), "%s:%s", DeviceName[emuPart], emuPath); + + char testpath[MAX_FAT_PATH + 42]; //check config files - testpath.assign(basepath + "/shared2/sys/SYSCONF"); - if(!fsop_FileExist(testpath.c_str())) + snprintf(testpath, sizeof(testpath), "%s/shared2/sys/SYSCONF", basepath); + if(!fsop_FileExist(testpath)) need_config = true; - testpath.assign(basepath + "/title/00000001/00000002/data/setting.txt"); - if(!fsop_FileExist(testpath.c_str())) + + snprintf(testpath, sizeof(testpath), "%s/title/00000001/00000002/data/setting.txt", basepath); + if(!fsop_FileExist(testpath)) need_config = true; + // Check Mii's - testpath.assign(basepath + "/shared2/menu/FaceLib/RFL_DB.dat"); - if(!fsop_FileExist(testpath.c_str())) + snprintf(testpath, sizeof(testpath), "%s/shared2/menu/FaceLib/RFL_DB.dat", basepath); + if(!fsop_FileExist(testpath)) need_miis = true; NandHandle.PreNandCfg(need_miis, need_config);//copy to emunand if needed @@ -224,19 +228,19 @@ void CMenu::_FullNandCheck(void) } } -int CMenu::_FindEmuPart(string &emuPath, bool skipchecks, bool savesnand) +int CMenu::_FindEmuPart(bool skipchecks, bool savesnand) { int emuPart; - const char *tmpPath = NULL; + char tmpPath[MAX_FAT_PATH]; if(savesnand) { emuPart = m_cfg.getInt(WII_DOMAIN, "savepartition"); - tmpPath = fmt("/%s/%s", emu_nands_dir, m_cfg.getString(WII_DOMAIN, "current_save_emunand").c_str()); + snprintf(tmpPath, sizeof(tmpPath), "/%s/%s", emu_nands_dir, m_cfg.getString(WII_DOMAIN, "current_save_emunand").c_str()); } else { emuPart = m_cfg.getInt(CHANNEL_DOMAIN, "partition"); - tmpPath = fmt("/%s/%s", emu_nands_dir, m_cfg.getString(CHANNEL_DOMAIN, "current_emunand").c_str()); + snprintf(tmpPath, sizeof(tmpPath), "/%s/%s", emu_nands_dir, m_cfg.getString(CHANNEL_DOMAIN, "current_emunand").c_str()); } if(!DeviceHandle.PartitionUsableForNandEmu(emuPart)) return -1; @@ -244,7 +248,6 @@ int CMenu::_FindEmuPart(string &emuPath, bool skipchecks, bool savesnand) { NandHandle.SetNANDEmu(emuPart); NandHandle.SetPaths(tmpPath, DeviceName[emuPart]); - emuPath = tmpPath; return emuPart; } return -2; @@ -584,8 +587,7 @@ int CMenu::_NandEmuCfg(void) } else if(BTN_A_PRESSED && (m_btnMgr.selected(m_nandemuBtnNandDump) || m_btnMgr.selected(m_nandemuBtnAll) || m_btnMgr.selected(m_nandemuBtnMissing))) { - string emuPath; - int emuPart = _FindEmuPart(emuPath, true, !m_fulldump); + int emuPart = _FindEmuPart(true, !m_fulldump); if(emuPart < 0) { _hideNandEmu(true); @@ -702,8 +704,7 @@ int CMenu::_NandEmuCfg(void) int CMenu::_FlashSave(string gameId) { - string emuPath; - if(_FindEmuPart(emuPath, false, true) < 0)// if savenand not found + if(_FindEmuPart(false, true) < 0)// if savenand not found return 0; if(!_checkSave(gameId, false))// if save not on savenand @@ -772,8 +773,7 @@ int CMenu::_FlashSave(string gameId) int CMenu::_AutoExtractSave(string gameId)// called from wii game config menu or launching wii game { - string emuPath; - int emuPart = _FindEmuPart(emuPath, false, true); + int emuPart = _FindEmuPart(false, true); if(m_forceext && emuPart == -1)// if game config force extract and savenand partition unusable { m_forceext = false; @@ -781,7 +781,7 @@ int CMenu::_AutoExtractSave(string gameId)// called from wii game config menu or } /*else if(emuPart == -2)// emunand folder not found so make it { - emuPart = _FindEmuPart(emuPath, true, true); + emuPart = _FindEmuPart(true, true); char basepath[MAX_FAT_PATH]; snprintf(basepath, sizeof(basepath), "%s:%s", DeviceName[emuPart], emuPath.c_str()); NandHandle.CreatePath("%s/import", basepath); @@ -893,21 +893,21 @@ void * CMenu::_NandFlasher(void *obj) char source[MAX_FAT_PATH]; char dest[ISFS_MAXPATH]; - string emuPath; - int emuPartition = m._FindEmuPart(emuPath, true, true); + int emuPartition = m._FindEmuPart(true, true); const char *SaveGameID = m.m_saveExtGameId.c_str(); int flashID = SaveGameID[0] << 24 | SaveGameID[1] << 16 | SaveGameID[2] << 8 | SaveGameID[3]; - + const char *emuPath = NandHandle.Get_NandPath(); + /* we know it exist on emunand just need to figure out which folder */ - if(_saveExists(fmt("%s:%s/title/00010000/%08x", DeviceName[emuPartition], emuPath.c_str(), flashID))) + if(_saveExists(fmt("%s:%s/title/00010000/%08x", DeviceName[emuPartition], emuPath, flashID))) { - snprintf(source, sizeof(source), "%s:%s/title/00010000/%08x", DeviceName[emuPartition], emuPath.c_str(), flashID); + snprintf(source, sizeof(source), "%s:%s/title/00010000/%08x", DeviceName[emuPartition], emuPath, flashID); snprintf(dest, sizeof(dest), "/title/00010000/%08x", flashID); } - else //if(_saveExists(fmt("%s:%s/title/00010004/%08x", DeviceName[emuPartition], emuPath.c_str(), flashID))) + else //if(_saveExists(fmt("%s:%s/title/00010004/%08x", DeviceName[emuPartition], emuPath, flashID))) { - snprintf(source, sizeof(source), "%s:%s/title/00010004/%08x", DeviceName[emuPartition], emuPath.c_str(), flashID); + snprintf(source, sizeof(source), "%s:%s/title/00010004/%08x", DeviceName[emuPartition], emuPath, flashID); snprintf(dest, sizeof(dest), "/title/00010004/%08x", flashID); } NandHandle.ResetCounters(); @@ -939,10 +939,10 @@ void * CMenu::_NandDumper(void *obj) NandHandle.ResetCounters(); - string emuPath; - int emuPartition = m._FindEmuPart(emuPath, true, !m_fulldump); + int emuPartition = m._FindEmuPart(true, !m_fulldump); + const char *emuPath = NandHandle.Get_NandPath(); char basepath[64]; - snprintf(basepath, sizeof(basepath), "%s:%s", DeviceName[emuPartition], emuPath.c_str()); + snprintf(basepath, sizeof(basepath), "%s:%s", DeviceName[emuPartition], emuPath); /* create basepath in case it doesn't exist */ NandHandle.CreatePath("%s", basepath); diff --git a/source/menu/menu_wad.cpp b/source/menu/menu_wad.cpp index 2cbc6d3a..c6e5874d 100644 --- a/source/menu/menu_wad.cpp +++ b/source/menu/menu_wad.cpp @@ -444,7 +444,7 @@ void CMenu::_Wad(const char *wad_path) int emuPart = 0; if(!mios) { - emuPart = _FindEmuPart(emuPath, false, false); + emuPart = _FindEmuPart(false, false); if(emuPart < 0) { //cfgne8=No valid FAT partition found for NAND Emulation!