From 442bc7cb7d1c67bbaff091123e72cbc6ed292a09 Mon Sep 17 00:00:00 2001 From: "fix94.1" Date: Wed, 11 Sep 2013 18:11:23 +0000 Subject: [PATCH] -added "allow_b_on_questionmark" to the wiiflow.ini so you can disable the random game bootup when pressing b on the question mark icon -optimized cover loading times when using hq covers -fixed wrong game count in the top right corner when using b+minus to switch partitions -fixed b+minus not working in channel view when no emu nand on a partition was found -fixed left and right didn't switch pages anymore in the source menu if multisource is not enabled -updated german.ini --- source/gui/coverflow.cpp | 23 ++++++++++++++--------- source/gui/coverflow.hpp | 1 - source/menu/menu.cpp | 1 + source/menu/menu.hpp | 1 + source/menu/menu_main.cpp | 13 +++++++------ source/menu/menu_nandemu.cpp | 15 +++++++++++---- source/menu/menu_source.cpp | 8 ++++---- wii/wiiflow/Languages/german.ini | 10 +++++++++- 8 files changed, 47 insertions(+), 25 deletions(-) diff --git a/source/gui/coverflow.cpp b/source/gui/coverflow.cpp index 94ad6349..9a362ca0 100644 --- a/source/gui/coverflow.cpp +++ b/source/gui/coverflow.cpp @@ -2878,7 +2878,8 @@ int CCoverFlow::_coverLoader(CCoverFlow *cf) u32 firstItem; bool update; u32 i, j; - + bool hq_req = cf->m_useHQcover; + bool cur_pos_hq = false; u32 bufferSize = min(cf->m_numBufCovers * max(2u, cf->m_rows), 80u); while(cf->m_loadingCovers) @@ -2889,23 +2890,27 @@ int CCoverFlow::_coverLoader(CCoverFlow *cf) { firstItem = cf->m_covers[cf->m_range / 2].index; i = loopNum((j & 1) ? firstItem - (j + 1) / 2 : firstItem + j / 2, cf->m_items.size()); - LWP_MutexLock(cf->m_mutex); - TexHandle.Cleanup(cf->m_items[i].texture); - cf->m_items[i].state = STATE_Loading; - LWP_MutexUnlock(cf->m_mutex); + if(cf->m_items[i].state != STATE_Loading) + { + LWP_MutexLock(cf->m_mutex); + TexHandle.Cleanup(cf->m_items[i].texture); + cf->m_items[i].state = STATE_Loading; + LWP_MutexUnlock(cf->m_mutex); + } } ret = CL_OK; for(j = 0; j <= bufferSize && cf->m_loadingCovers && !cf->m_moved && update && ret != CL_NOMEM; ++j) { firstItem = cf->m_covers[cf->m_range / 2].index; i = loopNum((j & 1) ? firstItem - (j + 1) / 2 : firstItem + j / 2, cf->m_items.size()); - if(cf->m_items[i].state != STATE_Loading) + cur_pos_hq = (hq_req && i == firstItem); + if((!hq_req || !cur_pos_hq) && cf->m_items[i].state != STATE_Loading) continue; - if((ret = cf->_loadCoverTex(i, cf->m_box, cf->m_useHQcover, false)) == CL_ERROR) + if((ret = cf->_loadCoverTex(i, cf->m_box, cur_pos_hq, false)) == CL_ERROR) { - if ((ret = cf->_loadCoverTex(i, !cf->m_box, cf->m_useHQcover, false)) == CL_ERROR) + if ((ret = cf->_loadCoverTex(i, !cf->m_box, cur_pos_hq, false)) == CL_ERROR) { - if((ret = cf->_loadCoverTex(i, cf->m_box, cf->m_useHQcover, true)) == CL_ERROR) + if((ret = cf->_loadCoverTex(i, cf->m_box, cur_pos_hq, true)) == CL_ERROR) cf->m_items[i].state = STATE_NoCover; } } diff --git a/source/gui/coverflow.hpp b/source/gui/coverflow.hpp index 367d537f..53a0f7af 100644 --- a/source/gui/coverflow.hpp +++ b/source/gui/coverflow.hpp @@ -248,7 +248,6 @@ private: volatile bool m_renderTex; TexData *m_renderingTex; // - volatile int m_hqCover; bool m_selected; int m_tickCount; TexData *m_loadingTexture; diff --git a/source/menu/menu.cpp b/source/menu/menu.cpp index 3d585ab8..821794b3 100644 --- a/source/menu/menu.cpp +++ b/source/menu/menu.cpp @@ -285,6 +285,7 @@ void CMenu::init() return; } } + m_allow_random = m_cfg.getBool("GENERAL", "allow_b_on_questionmark", true); m_multisource = m_cfg.getBool("GENERAL", "multisource", false); /* DIOS_MIOS stuff */ if(m_cfg.getBool(GC_DOMAIN, "always_show_button", false)) diff --git a/source/menu/menu.hpp b/source/menu/menu.hpp index a0b21381..b5c410a7 100644 --- a/source/menu/menu.hpp +++ b/source/menu/menu.hpp @@ -88,6 +88,7 @@ private: bool m_favorites; bool m_music_info; bool m_use_source; + bool m_allow_random; bool m_multisource; bool m_load_view; s16 m_showtimer; diff --git a/source/menu/menu_main.cpp b/source/menu/menu_main.cpp index 9d022884..6d9a9f37 100644 --- a/source/menu/menu_main.cpp +++ b/source/menu/menu_main.cpp @@ -80,6 +80,7 @@ static bool show_emu = true; void CMenu::_showMain(void) { +start_main: _hideWaitMessage(); #ifdef SHOWMEM m_btnMgr.show(m_mem1FreeSize); @@ -161,8 +162,7 @@ void CMenu::_showMain(void) _setPartition(1); } _loadList(); - _showMain(); - _initCF(); + goto start_main; } break; case COVERFLOW_HOMEBREW: @@ -549,7 +549,7 @@ int CMenu::main(void) m_btnMgr.show(m_mainLblNotice); } } - else if(m_btnMgr.selected(m_mainBtnInfo) && !CoverFlow.empty()) + else if(m_btnMgr.selected(m_mainBtnInfo) && m_allow_random && !CoverFlow.empty()) { /* WiiFlow should boot a random game */ _hideMain(); @@ -699,12 +699,13 @@ int CMenu::main(void) else partition = DeviceName[currentPartition]; //gprintf("Next item: %s\n", partition); - m_showtimer = 120; - m_btnMgr.setText(m_mainLblNotice, sfmt("%s (%u) [%s]", _domainFromView(), m_gameList.size(), upperCase(partition).c_str())); - m_btnMgr.show(m_mainLblNotice); _loadList(); _showMain(); _initCF(); + /* refresh AFTER reloading */ + m_showtimer = 120; + m_btnMgr.setText(m_mainLblNotice, sfmt("%s (%u) [%s]", _domainFromView(), m_gameList.size(), upperCase(partition).c_str())); + m_btnMgr.show(m_mainLblNotice); } } diff --git a/source/menu/menu_nandemu.cpp b/source/menu/menu_nandemu.cpp index 2313389d..1ccf778f 100644 --- a/source/menu/menu_nandemu.cpp +++ b/source/menu/menu_nandemu.cpp @@ -509,7 +509,7 @@ int CMenu::_FlashSave(string gameId) { m_cfg.save(); _hideNandEmu(); - return 1; + return 1; } if(m_thrdMessageAdded) @@ -615,7 +615,7 @@ int CMenu::_AutoExtractSave(string gameId) { m_cfg.save(); _hideNandEmu(); - return 1; + return 1; } if(m_thrdMessageAdded) @@ -654,6 +654,7 @@ int CMenu::_AutoCreateNand(void) m_thrdMessageAdded = false; m_nandext = false; m_tempView = false; + bool lock_part_change = false; m_btnMgr.setText(m_nandemuBtnExtract, _t("cfgne5", L"Extract NAND")); m_btnMgr.setText(m_nandemuBtnDisable, _t("cfgne22", L"Disable NAND Emulation")); @@ -671,6 +672,7 @@ int CMenu::_AutoCreateNand(void) { if(m_btnMgr.selected(m_nandemuBtnExtract)) { + lock_part_change = true; m_fulldump = true; m_btnMgr.hide(m_nandemuBtnExtract); m_btnMgr.hide(m_nandemuBtnDisable); @@ -718,10 +720,15 @@ int CMenu::_AutoCreateNand(void) { m_cfg.save(); _hideNandEmu(); - return 1; + return 1; } } - + else if(BTN_B_HELD && BTN_MINUS_PRESSED && !lock_part_change) + { + _setPartition(1); + _hideNandEmu(); + return 1; + } if(m_thrdMessageAdded) { LockMutex lock(m_mutex); diff --git a/source/menu/menu_source.cpp b/source/menu/menu_source.cpp index 3e2fa00c..8d23b55a 100644 --- a/source/menu/menu_source.cpp +++ b/source/menu/menu_source.cpp @@ -304,23 +304,23 @@ bool CMenu::_Source() m_btnMgr.up(); else if(BTN_DOWN_PRESSED) m_btnMgr.down(); - else if(((m_multisource?BTN_LEFT_PRESSED:BTN_MINUS_PRESSED) && source_Pages > 1) + else if(((BTN_LEFT_PRESSED || (!m_multisource && BTN_MINUS_PRESSED)) && source_Pages > 1) || (BTN_A_PRESSED && m_btnMgr.selected(m_sourceBtnPageM))) { source_curPage--; if(source_curPage < 1) source_curPage = source_Pages; - if(BTN_LEFT_PRESSED) + if(!BTN_A_PRESSED) m_btnMgr.click(m_sourceBtnPageM); _updateSourceBtns(); } - else if(((m_multisource?BTN_RIGHT_PRESSED:BTN_PLUS_PRESSED) && source_Pages > 1) + else if(((BTN_RIGHT_PRESSED || (!m_multisource && BTN_PLUS_PRESSED)) && source_Pages > 1) || (BTN_A_PRESSED && m_btnMgr.selected(m_sourceBtnPageP))) { source_curPage++; if(source_curPage > source_Pages) source_curPage = 1; - if (BTN_RIGHT_PRESSED) + if (!BTN_A_PRESSED) m_btnMgr.click(m_sourceBtnPageP); _updateSourceBtns(); } diff --git a/wii/wiiflow/Languages/german.ini b/wii/wiiflow/Languages/german.ini index 987e147b..15c75c8e 100644 --- a/wii/wiiflow/Languages/german.ini +++ b/wii/wiiflow/Languages/german.ini @@ -60,6 +60,8 @@ cfgbt2=Erzwinge Laden vom cIOS cfgbt3=Erzwinge cIOS Version cfgbt4=USB Anschluss cfgbt5=Zeige Quellenmenu beim Start +cfgbt6=Mehrere Quellen zulassen +cfgbt7=Starte FTP Server beim Start cfgc1=Zurück zu... cfgc2=TV-Breite anpassen cfgc3=TV-Höhe anpassen @@ -211,6 +213,8 @@ dlmsg24=Entpacke... dlmsg25=Entpacken fehlgeschlagen! Benenne Backup zurück nach boot.dol dlmsg26=Update Cache... dlmsg27=Nicht genügend Arbeitsspeicher! +dlmsg28=FTP Server gestartet, IP: %s:%u +dlmsg29=FTP Server ist zurzeit gestoppt. dlmsg3=Lade von %s herunter dlmsg4=Speichere %s dlmsg5=%i/%i Dateien heruntergeladen @@ -242,6 +246,8 @@ errgame9=Dies is keine Wii oder GameCube Disk. errgame10=Set USB fehlgeschlagen: %d errneek1=Konnte neek2o nicht starten, bitte neek2o Setup überprüfen. exit_to=Zurück zu +ftp1=Starten +ftp2=Stoppen gameinfo1=Entwickler: %s gameinfo2=Herausgeber: %s gameinfo3=Region: %s @@ -267,6 +273,7 @@ home6=Hilfe home7=Installiere Spiel home8=Dateiexplorer home9=Quellen Menü +home10=FTP Server hooktype1=VBI hooktype2=KPAD Read hooktype3=Joypad @@ -325,7 +332,7 @@ SaveReg=Regionswitch SaveRegG=Regionswitch snes=Super Nintendo stup1=Wähle Quelle -stup2=Beenden +stup2=Deaktiviert sys1=WiiFlow Update sys2=WiiFlow Version: sys3=Abbrechen @@ -383,6 +390,7 @@ wbfsoperr1=Disc_Wait fehlgeschlagen wbfsoperr2=Disc_Open fehlgeschlagen wbfsoperr3=Das ist keine Wii Disk. wbfsoperr4=Dieses Spiel ist bereits installiert. +wbfsoperr5=Es ist nicht erlaubt diesen Kanal zu löschen! wbfsprogress=%i%% wbfsremdlg=Um das Spiel %s dauerhaft zu löschen, auf Start klicken. wifiplayers= Wifi Spieler