diff --git a/readme.txt b/readme.txt index 565abe6..a225351 100644 --- a/readme.txt +++ b/readme.txt @@ -32,6 +32,12 @@ Wii/GameCube. |0Oื๘oท UPDATE HISTORY ทo๘ืO0| `จ•จจจจจ จจจจจจจจจจจจจจจจ จจจจจจจจจจจจจจจ จจจจจจจจจจจจจจจจจจจจ จจจจจจจจจจจจจ' +[3.0.7] + +* Fixed "No game saves found." message when there are actually saves. +* Fixed shift key on keyboard +* Text scrolling works again + [3.0.6 - July 9, 2009] * Faster SMB/USB browsing diff --git a/source/ngc/fileop.cpp b/source/ngc/fileop.cpp index 636f292..0f18419 100644 --- a/source/ngc/fileop.cpp +++ b/source/ngc/fileop.cpp @@ -408,7 +408,7 @@ bool ParseDirEntries() * Browse subdirectories **************************************************************************/ int -ParseDirectory(int method) +ParseDirectory(int method, bool waitParse) { char fulldir[MAXPATHLEN]; char msg[128]; @@ -457,9 +457,19 @@ ParseDirectory(int method) } parseHalt = false; - ParseDirEntries(); // index first 50 entries + ParseDirEntries(); // index first 20 entries LWP_ResumeThread(parsethread); // index remaining entries + if(waitParse) // wait for complete parsing + { + ShowAction("Loading..."); + + while(!LWP_ThreadIsSuspended(parsethread)) + usleep(THREAD_SLEEP); + + CancelAction(); + } + return browser.numEntries; } diff --git a/source/ngc/fileop.h b/source/ngc/fileop.h index bf29c73..cfd4e10 100644 --- a/source/ngc/fileop.h +++ b/source/ngc/fileop.h @@ -27,7 +27,7 @@ void HaltDeviceThread(); void MountAllFAT(); void UnmountAllFAT(); bool ChangeInterface(int method, bool silent); -int ParseDirectory(int method); +int ParseDirectory(int method, bool waitParse = false); void AllocSaveBuffer(); void FreeSaveBuffer(); u32 LoadFile(char * rbuffer, char *filepath, u32 length, int method, bool silent); diff --git a/source/ngc/gui/gui_keyboard.cpp b/source/ngc/gui/gui_keyboard.cpp index 954114e..75a2040 100644 --- a/source/ngc/gui/gui_keyboard.cpp +++ b/source/ngc/gui/gui_keyboard.cpp @@ -304,6 +304,8 @@ void GuiKeyboard::Update(GuiTrigger * t) char txt[2] = { 0, 0 }; + startloop: + for(int i=0; i<4; i++) { for(int j=0; j<11; j++) @@ -327,7 +329,6 @@ void GuiKeyboard::Update(GuiTrigger * t) if(shift || caps) { kbtextstr[strlen(kbtextstr)] = keys[i][j].chShift; - if(shift) shift ^= 1; } else { @@ -336,6 +337,13 @@ void GuiKeyboard::Update(GuiTrigger * t) } kbText->SetText(GetDisplayText(kbtextstr)); keyBtn[i][j]->SetState(STATE_SELECTED, t->chan); + + if(shift) + { + shift ^= 1; + update = true; + goto startloop; + } } } } diff --git a/source/ngc/menu.cpp b/source/ngc/menu.cpp index fd73a9d..f360bb6 100644 --- a/source/ngc/menu.cpp +++ b/source/ngc/menu.cpp @@ -1614,7 +1614,7 @@ static int MenuGameSaves(int action) else { strncpy(browser.dir, GCSettings.SaveFolder, 200); - ParseDirectory(GCSettings.SaveMethod); + ParseDirectory(GCSettings.SaveMethod, true); } len = strlen(romFilename);