-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
This commit is contained in:
fix94.1 2013-09-11 18:11:23 +00:00
parent 91e4a91691
commit 442bc7cb7d
8 changed files with 47 additions and 25 deletions

View File

@ -2878,7 +2878,8 @@ int CCoverFlow::_coverLoader(CCoverFlow *cf)
u32 firstItem; u32 firstItem;
bool update; bool update;
u32 i, j; 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); u32 bufferSize = min(cf->m_numBufCovers * max(2u, cf->m_rows), 80u);
while(cf->m_loadingCovers) while(cf->m_loadingCovers)
@ -2889,23 +2890,27 @@ int CCoverFlow::_coverLoader(CCoverFlow *cf)
{ {
firstItem = cf->m_covers[cf->m_range / 2].index; firstItem = cf->m_covers[cf->m_range / 2].index;
i = loopNum((j & 1) ? firstItem - (j + 1) / 2 : firstItem + j / 2, cf->m_items.size()); i = loopNum((j & 1) ? firstItem - (j + 1) / 2 : firstItem + j / 2, cf->m_items.size());
if(cf->m_items[i].state != STATE_Loading)
{
LWP_MutexLock(cf->m_mutex); LWP_MutexLock(cf->m_mutex);
TexHandle.Cleanup(cf->m_items[i].texture); TexHandle.Cleanup(cf->m_items[i].texture);
cf->m_items[i].state = STATE_Loading; cf->m_items[i].state = STATE_Loading;
LWP_MutexUnlock(cf->m_mutex); LWP_MutexUnlock(cf->m_mutex);
} }
}
ret = CL_OK; ret = CL_OK;
for(j = 0; j <= bufferSize && cf->m_loadingCovers && !cf->m_moved && update && ret != CL_NOMEM; ++j) 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; firstItem = cf->m_covers[cf->m_range / 2].index;
i = loopNum((j & 1) ? firstItem - (j + 1) / 2 : firstItem + j / 2, cf->m_items.size()); 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; 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; cf->m_items[i].state = STATE_NoCover;
} }
} }

View File

@ -248,7 +248,6 @@ private:
volatile bool m_renderTex; volatile bool m_renderTex;
TexData *m_renderingTex; TexData *m_renderingTex;
// //
volatile int m_hqCover;
bool m_selected; bool m_selected;
int m_tickCount; int m_tickCount;
TexData *m_loadingTexture; TexData *m_loadingTexture;

View File

@ -285,6 +285,7 @@ void CMenu::init()
return; return;
} }
} }
m_allow_random = m_cfg.getBool("GENERAL", "allow_b_on_questionmark", true);
m_multisource = m_cfg.getBool("GENERAL", "multisource", false); m_multisource = m_cfg.getBool("GENERAL", "multisource", false);
/* DIOS_MIOS stuff */ /* DIOS_MIOS stuff */
if(m_cfg.getBool(GC_DOMAIN, "always_show_button", false)) if(m_cfg.getBool(GC_DOMAIN, "always_show_button", false))

View File

@ -88,6 +88,7 @@ private:
bool m_favorites; bool m_favorites;
bool m_music_info; bool m_music_info;
bool m_use_source; bool m_use_source;
bool m_allow_random;
bool m_multisource; bool m_multisource;
bool m_load_view; bool m_load_view;
s16 m_showtimer; s16 m_showtimer;

View File

@ -80,6 +80,7 @@ static bool show_emu = true;
void CMenu::_showMain(void) void CMenu::_showMain(void)
{ {
start_main:
_hideWaitMessage(); _hideWaitMessage();
#ifdef SHOWMEM #ifdef SHOWMEM
m_btnMgr.show(m_mem1FreeSize); m_btnMgr.show(m_mem1FreeSize);
@ -161,8 +162,7 @@ void CMenu::_showMain(void)
_setPartition(1); _setPartition(1);
} }
_loadList(); _loadList();
_showMain(); goto start_main;
_initCF();
} }
break; break;
case COVERFLOW_HOMEBREW: case COVERFLOW_HOMEBREW:
@ -549,7 +549,7 @@ int CMenu::main(void)
m_btnMgr.show(m_mainLblNotice); 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 */ /* WiiFlow should boot a random game */
_hideMain(); _hideMain();
@ -699,12 +699,13 @@ int CMenu::main(void)
else else
partition = DeviceName[currentPartition]; partition = DeviceName[currentPartition];
//gprintf("Next item: %s\n", partition); //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(); _loadList();
_showMain(); _showMain();
_initCF(); _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);
} }
} }

View File

@ -654,6 +654,7 @@ int CMenu::_AutoCreateNand(void)
m_thrdMessageAdded = false; m_thrdMessageAdded = false;
m_nandext = false; m_nandext = false;
m_tempView = false; m_tempView = false;
bool lock_part_change = false;
m_btnMgr.setText(m_nandemuBtnExtract, _t("cfgne5", L"Extract NAND")); m_btnMgr.setText(m_nandemuBtnExtract, _t("cfgne5", L"Extract NAND"));
m_btnMgr.setText(m_nandemuBtnDisable, _t("cfgne22", L"Disable NAND Emulation")); 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)) if(m_btnMgr.selected(m_nandemuBtnExtract))
{ {
lock_part_change = true;
m_fulldump = true; m_fulldump = true;
m_btnMgr.hide(m_nandemuBtnExtract); m_btnMgr.hide(m_nandemuBtnExtract);
m_btnMgr.hide(m_nandemuBtnDisable); m_btnMgr.hide(m_nandemuBtnDisable);
@ -721,7 +723,12 @@ int CMenu::_AutoCreateNand(void)
return 1; return 1;
} }
} }
else if(BTN_B_HELD && BTN_MINUS_PRESSED && !lock_part_change)
{
_setPartition(1);
_hideNandEmu();
return 1;
}
if(m_thrdMessageAdded) if(m_thrdMessageAdded)
{ {
LockMutex lock(m_mutex); LockMutex lock(m_mutex);

View File

@ -304,23 +304,23 @@ bool CMenu::_Source()
m_btnMgr.up(); m_btnMgr.up();
else if(BTN_DOWN_PRESSED) else if(BTN_DOWN_PRESSED)
m_btnMgr.down(); 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))) || (BTN_A_PRESSED && m_btnMgr.selected(m_sourceBtnPageM)))
{ {
source_curPage--; source_curPage--;
if(source_curPage < 1) if(source_curPage < 1)
source_curPage = source_Pages; source_curPage = source_Pages;
if(BTN_LEFT_PRESSED) if(!BTN_A_PRESSED)
m_btnMgr.click(m_sourceBtnPageM); m_btnMgr.click(m_sourceBtnPageM);
_updateSourceBtns(); _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))) || (BTN_A_PRESSED && m_btnMgr.selected(m_sourceBtnPageP)))
{ {
source_curPage++; source_curPage++;
if(source_curPage > source_Pages) if(source_curPage > source_Pages)
source_curPage = 1; source_curPage = 1;
if (BTN_RIGHT_PRESSED) if (!BTN_A_PRESSED)
m_btnMgr.click(m_sourceBtnPageP); m_btnMgr.click(m_sourceBtnPageP);
_updateSourceBtns(); _updateSourceBtns();
} }

View File

@ -60,6 +60,8 @@ cfgbt2=Erzwinge Laden vom cIOS
cfgbt3=Erzwinge cIOS Version cfgbt3=Erzwinge cIOS Version
cfgbt4=USB Anschluss cfgbt4=USB Anschluss
cfgbt5=Zeige Quellenmenu beim Start cfgbt5=Zeige Quellenmenu beim Start
cfgbt6=Mehrere Quellen zulassen
cfgbt7=Starte FTP Server beim Start
cfgc1=Zurück zu... cfgc1=Zurück zu...
cfgc2=TV-Breite anpassen cfgc2=TV-Breite anpassen
cfgc3=TV-Höhe anpassen cfgc3=TV-Höhe anpassen
@ -211,6 +213,8 @@ dlmsg24=Entpacke...
dlmsg25=Entpacken fehlgeschlagen! Benenne Backup zurück nach boot.dol dlmsg25=Entpacken fehlgeschlagen! Benenne Backup zurück nach boot.dol
dlmsg26=Update Cache... dlmsg26=Update Cache...
dlmsg27=Nicht genügend Arbeitsspeicher! dlmsg27=Nicht genügend Arbeitsspeicher!
dlmsg28=FTP Server gestartet, IP: %s:%u
dlmsg29=FTP Server ist zurzeit gestoppt.
dlmsg3=Lade von %s herunter dlmsg3=Lade von %s herunter
dlmsg4=Speichere %s dlmsg4=Speichere %s
dlmsg5=%i/%i Dateien heruntergeladen dlmsg5=%i/%i Dateien heruntergeladen
@ -242,6 +246,8 @@ errgame9=Dies is keine Wii oder GameCube Disk.
errgame10=Set USB fehlgeschlagen: %d errgame10=Set USB fehlgeschlagen: %d
errneek1=Konnte neek2o nicht starten, bitte neek2o Setup überprüfen. errneek1=Konnte neek2o nicht starten, bitte neek2o Setup überprüfen.
exit_to=Zurück zu exit_to=Zurück zu
ftp1=Starten
ftp2=Stoppen
gameinfo1=Entwickler: %s gameinfo1=Entwickler: %s
gameinfo2=Herausgeber: %s gameinfo2=Herausgeber: %s
gameinfo3=Region: %s gameinfo3=Region: %s
@ -267,6 +273,7 @@ home6=Hilfe
home7=Installiere Spiel home7=Installiere Spiel
home8=Dateiexplorer home8=Dateiexplorer
home9=Quellen Menü home9=Quellen Menü
home10=FTP Server
hooktype1=VBI hooktype1=VBI
hooktype2=KPAD Read hooktype2=KPAD Read
hooktype3=Joypad hooktype3=Joypad
@ -325,7 +332,7 @@ SaveReg=Regionswitch
SaveRegG=Regionswitch SaveRegG=Regionswitch
snes=Super Nintendo snes=Super Nintendo
stup1=Wähle Quelle stup1=Wähle Quelle
stup2=Beenden stup2=Deaktiviert
sys1=WiiFlow Update sys1=WiiFlow Update
sys2=WiiFlow Version: sys2=WiiFlow Version:
sys3=Abbrechen sys3=Abbrechen
@ -383,6 +390,7 @@ wbfsoperr1=Disc_Wait fehlgeschlagen
wbfsoperr2=Disc_Open fehlgeschlagen wbfsoperr2=Disc_Open fehlgeschlagen
wbfsoperr3=Das ist keine Wii Disk. wbfsoperr3=Das ist keine Wii Disk.
wbfsoperr4=Dieses Spiel ist bereits installiert. wbfsoperr4=Dieses Spiel ist bereits installiert.
wbfsoperr5=Es ist nicht erlaubt diesen Kanal zu löschen!
wbfsprogress=%i%% wbfsprogress=%i%%
wbfsremdlg=Um das Spiel %s dauerhaft zu löschen, auf Start klicken. wbfsremdlg=Um das Spiel %s dauerhaft zu löschen, auf Start klicken.
wifiplayers= Wifi Spieler wifiplayers= Wifi Spieler