From b5653edcf4ad7a8992dd59eea63c9630b05cd8a6 Mon Sep 17 00:00:00 2001 From: giantpune Date: Wed, 30 Dec 2009 09:52:24 +0000 Subject: [PATCH] *fix bug in partition detection (at least for my HDD) USB must deinit the device before re initting it or else it returns 0 games and what not. *add filter to skip __CFG_ in teh gamelist (i was told this is the ID6 for hermes' settings) --- HBC/META.XML | 4 +- source/main.cpp | 533 +++++++++++++++++-------------- source/prompts/PromptWindows.cpp | 7 +- source/usbloader/getentries.cpp | 6 + 4 files changed, 298 insertions(+), 252 deletions(-) diff --git a/HBC/META.XML b/HBC/META.XML index 30b05ac5..b26bb9f6 100644 --- a/HBC/META.XML +++ b/HBC/META.XML @@ -2,8 +2,8 @@ USB Loader GX USB Loader GX Team - 1.0 r878 - 200912290325 + 1.0 r879 + 200912300810 Loads games from USB-devices USB Loader GX is a libwiigui based USB iso loader with a wii-like GUI. You can install games to your HDDs and boot them with shorter loading times. The interactive GUI is completely controllable with WiiMote, Classic Controller or GC Controller. diff --git a/source/main.cpp b/source/main.cpp index 90e4533c..d9bdfa5a 100644 --- a/source/main.cpp +++ b/source/main.cpp @@ -17,10 +17,12 @@ #include #include //#include -extern "C" { -extern void __exception_setreload(int t); +extern "C" +{ + extern void __exception_setreload(int t); } + #include #include @@ -54,10 +56,10 @@ extern bool textVideoInit; extern char headlessID[8]; /* Constants */ -#define CONSOLE_XCOORD 260 -#define CONSOLE_YCOORD 115 -#define CONSOLE_WIDTH 340 -#define CONSOLE_HEIGHT 218 +#define CONSOLE_XCOORD 260 +#define CONSOLE_YCOORD 115 +#define CONSOLE_WIDTH 340 +#define CONSOLE_HEIGHT 218 FreeTypeGX *fontSystem=0; FreeTypeGX *fontClock=0; @@ -76,7 +78,8 @@ static void BootUpProblems() GuiImageData bootimageData(gxlogo_png); GuiImage bootimage(&bootimageData); - GuiText boottext(NULL, 20, (GXColor) {255, 255, 255, 255}); + GuiText boottext(NULL, 20, (GXColor) {255, 255, 255, 255} + ); boottext.SetPosition(200, 240-1.2*bootimage.GetHeight()/2+250); bootimage.SetPosition(320-1.2*bootimage.GetWidth()/2, 240-1.2*bootimage.GetHeight()/2); bootimage.SetScale(1.2); @@ -85,72 +88,81 @@ static void BootUpProblems() GuiImage usbimage(&usbimageData); usbimage.SetPosition(400,300); usbimage.SetScale(.7); - usbimage.SetAlpha(200); + usbimage.SetAlpha(200); time_t curtime; - time_t endtime = time(0) + 30; - do { - /*ret2 = IOS_ReloadIOSsafe(249); - if (ret2 < 0) { - ret2 = IOS_ReloadIOSsafe(222); - SDCard_Init(); - load_ehc_module(); - SDCard_deInit(); - if(ret2 <0) { - boottext.SetText("ERROR: cIOS could not be loaded!"); - bootimage.Draw(); - boottext.Draw(); - Menu_Render(); - sleep(5); - SYS_ResetSystem(SYS_RETURNTOMENU, 0, 0); - } - }*/ - - ret2 = WBFS_Init(WBFS_DEVICE_USB); - if (ret2 >= 0) { - boottext.SetText("Loading..."); - bootimage.Draw(); - boottext.Draw(); - Menu_Render(); - break; - } - curtime = time(0); - boottext.SetTextf("Waiting for your slow USB Device: %i secs...", int(endtime-curtime)); - while(curtime == time(0)) { - boottext.Draw(); - bootimage.Draw(); - if (endtime-curtime<15)usbimage.Draw(); - Menu_Render(); - } + time_t endtime = time(0) + 30; + do + { + /*ret2 = IOS_ReloadIOSsafe(249); + if (ret2 < 0) { + ret2 = IOS_ReloadIOSsafe(222); + SDCard_Init(); + load_ehc_module(); + SDCard_deInit(); + if(ret2 <0) { + boottext.SetText("ERROR: cIOS could not be loaded!"); + bootimage.Draw(); + boottext.Draw(); + Menu_Render(); + sleep(5); + SYS_ResetSystem(SYS_RETURNTOMENU, 0, 0); + } + }*/ + USBDevice_deInit(); + USBDevice_Init(); + ret2 = WBFS_Init(WBFS_DEVICE_USB); + if (ret2 >= 0) + { + boottext.SetText("Loading..."); + bootimage.Draw(); + boottext.Draw(); + Menu_Render(); + break; + } + curtime = time(0); + boottext.SetTextf("Waiting for your slow USB Device: %i secs...", int(endtime-curtime)); + while(curtime == time(0)) + { + boottext.Draw(); + bootimage.Draw(); + if (endtime-curtime<15)usbimage.Draw(); + Menu_Render(); + } } while((endtime-time(0)) > 0); - if(ret2 < 0) { + /*if(ret2 < 0) { boottext.SetText("ERROR: USB device could not be loaded!"); usbimage.Draw(); bootimage.Draw(); boottext.Draw(); Menu_Render(); SYS_ResetSystem(SYS_RETURNTOMENU, 0, 0); - } + }*/ ///delete font to load up custom if set - if(fontSystem) { + if(fontSystem) + { delete fontSystem; fontSystem = NULL; } } + unsigned int *xfb = NULL; -void InitTextVideo () { -gprintf("\nInitTextVideo ()"); - if (textVideoInit){ - gprintf("...0"); - return; +void InitTextVideo () +{ + gprintf("\nInitTextVideo ()"); + if (textVideoInit) + { + gprintf("...0"); + return; } dbvideo=1; VIDEO_Init(); - GXRModeObj *vmode = VIDEO_GetPreferredMode(NULL); // get default video mode + // get default video mode + GXRModeObj *vmode = VIDEO_GetPreferredMode(NULL); // widescreen fix VIDEO_Configure (vmode); @@ -170,168 +182,185 @@ gprintf("\nInitTextVideo ()"); VIDEO_WaitVSync (); if (vmode->viTVMode & VI_NON_INTERLACE) VIDEO_WaitVSync (); - - //send console output to the gecko - if (geckoinit)CON_EnableGecko(1, true); - textVideoInit = true; - gprintf("...1"); - + + //send console output to the gecko + if (geckoinit)CON_EnableGecko(1, true); + textVideoInit = true; + gprintf("...1"); + } + int -main(int argc, char *argv[]) { - setlocale(LC_ALL, "en.UTF-8"); - geckoinit = InitGecko(); +main(int argc, char *argv[]) +{ + setlocale(LC_ALL, "en.UTF-8"); + geckoinit = InitGecko(); - if (hbcStubAvailable() || geckoinit) { - InitTextVideo(); - } - -// DEBUG_Init(GDBSTUB_DEVICE_USB, 1); -//_break(); - - __exception_setreload(5);//auto reset code dump nobody gives us codedump info anyways. + if (hbcStubAvailable() || geckoinit) + { + InitTextVideo(); + } - gprintf("\n\n------------------"); - gprintf("\nUSB Loader GX rev%s",GetRev()); - gprintf("\nmain(%d", argc); - for (int i=0;i"); - gprintf(")"); + // DEBUG_Init(GDBSTUB_DEVICE_USB, 1); + //_break(); - // This part is added, because we need a identify patched ios - printf("\n\tReloading into ios 236"); - if (IOS_ReloadIOSsafe(236) < 0) { - printf("\n\tIOS 236 not found, reloading into 36"); - IOS_ReloadIOSsafe(36); - } - - printf("\n\tStarting up"); - - MEM2_init(36); // Initialize 36 MB - MEM2_takeBigOnes(true); + __exception_setreload(5); //auto reset code dump nobody gives us codedump info anyways. + + gprintf("\n\n------------------"); + gprintf("\nUSB Loader GX rev%s",GetRev()); + gprintf("\nmain(%d", argc); + for (int i=0;i"); + gprintf(")"); + + // This part is added, because we need a identify patched ios + printf("\n\tReloading into ios 236"); + if (IOS_ReloadIOSsafe(236) < 0) + { + printf("\n\tIOS 236 not found, reloading into 36"); + IOS_ReloadIOSsafe(36); + } + + printf("\n\tStarting up"); + + MEM2_init(36); // Initialize 36 MB + MEM2_takeBigOnes(true); s32 ret; bool startupproblem = false; bool bootDevice_found=false; - if (argc >= 1) { - if (!strncasecmp(argv[0], "usb:/", 5)) { + if (argc >= 1) + { + if (!strncasecmp(argv[0], "usb:/", 5)) + { strcpy(bootDevice, "USB:"); bootDevice_found = true; } else if (!strncasecmp(argv[0], "sd:/", 4)) - bootDevice_found = true; + bootDevice_found = true; } - - printf("\n\tInitializing controllers"); - + + printf("\n\tInitializing controllers"); + /** PAD_Init has to be before InitVideo don't move that **/ - PAD_Init(); // initialize PAD/WPAD - - printf("\n\tInitialize USB (wake up)"); - - USBDevice_Init();// seems enough to wake up some HDDs if they are in sleep mode when the loader starts (tested with WD MyPassport Essential 2.5") - - gprintf("\n\tChecking for stub IOS"); - ios222rev = getIOSrev(0x00000001000000dell); - ios249rev = getIOSrev(0x00000001000000f9ll); - - //if we don't like either of the cIOS then scram - if (!(ios222rev==4 || (ios249rev>=9 && ios249rev<65280))) - { - InitTextVideo(); - printf("\x1b[2J"); - if ((ios222rev < 0 && ios222rev != WII_EINSTALL) && (ios249rev < 0 && ios249rev != WII_EINSTALL)) { - printf("\n\n\n\tWARNING!"); - printf("\n\tUSB Loader GX needs unstubbed cIOS 222 v4 or 249 v9+"); - printf("\n\n\tWe cannot determine the versions on your system,\n\tsince you have no patched ios 36 or 236 installed."); - printf("\n\tTherefor, if loading of USB Loader GX fails, you\n\tprobably have installed the 4.2 update,"); - printf("\n\tand you should go figure out how to get some cios action going on\n\tin your Wii."); - printf("\n\n\tThis message will show every time."); - sleep(5); - } else { - printf("\n\n\n\tERROR!"); - printf("\n\tUSB Loader GX needs unstubbed cIOS 222 v4 or 249 v9+"); - printf("\n\n\tI found \n\t\t222 = %d%s",ios222rev,ios222rev==65280?" (Stubbed by 4.2 update)":""); - printf("\n\t\t249 = %d%s",ios249rev,ios249rev==65280?" (Stubbed by 4.2 update)":""); - printf("\n\n\tGo figure out how to get some cIOS action going on\n\tin your Wii and come back and see me."); - - sleep(15); - printf("\n\n\tBye"); - - USBDevice_deInit(); - exit(0); - } - } + PAD_Init(); // initialize PAD/WPAD - printf("\n\tReloading ios 249..."); + printf("\n\tInitialize USB (wake up)"); + + USBDevice_Init(); // seems enough to wake up some HDDs if they are in sleep mode when the loader starts (tested with WD MyPassport Essential 2.5") + + gprintf("\n\tChecking for stub IOS"); + ios222rev = getIOSrev(0x00000001000000dell); + ios249rev = getIOSrev(0x00000001000000f9ll); + + //if we don't like either of the cIOS then scram + if (!(ios222rev==4 || (ios249rev>=9 && ios249rev<65280))) + { + InitTextVideo(); + printf("\x1b[2J"); + if ((ios222rev < 0 && ios222rev != WII_EINSTALL) && (ios249rev < 0 && ios249rev != WII_EINSTALL)) + { + printf("\n\n\n\tWARNING!"); + printf("\n\tUSB Loader GX needs unstubbed cIOS 222 v4 or 249 v9+"); + printf("\n\n\tWe cannot determine the versions on your system,\n\tsince you have no patched ios 36 or 236 installed."); + printf("\n\tTherefor, if loading of USB Loader GX fails, you\n\tprobably have installed the 4.2 update,"); + printf("\n\tand you should go figure out how to get some cios action going on\n\tin your Wii."); + printf("\n\n\tThis message will show every time."); + sleep(5); + } + else + { + printf("\n\n\n\tERROR!"); + printf("\n\tUSB Loader GX needs unstubbed cIOS 222 v4 or 249 v9+"); + printf("\n\n\tI found \n\t\t222 = %d%s",ios222rev,ios222rev==65280?" (Stubbed by 4.2 update)":""); + printf("\n\t\t249 = %d%s",ios249rev,ios249rev==65280?" (Stubbed by 4.2 update)":""); + printf("\n\n\tGo figure out how to get some cIOS action going on\n\tin your Wii and come back and see me."); + + sleep(15); + printf("\n\n\tBye"); + + USBDevice_deInit(); + exit(0); + } + } + + printf("\n\tReloading ios 249..."); ret = IOS_ReloadIOSsafe(249); - - printf("%d", ret); - - if (ret < 0) { - printf("\n\tIOS 249 failed, reloading ios 222..."); + + printf("%d", ret); + + if (ret < 0) + { + printf("\n\tIOS 249 failed, reloading ios 222..."); ret = IOS_ReloadIOSsafe(222); - printf("%d", ret); - - if (ret < 0) { - printf("\n\tIOS 222 failed, reloading ios 250..."); - ret = IOS_ReloadIOSsafe(250); - printf("%d", ret); - - if(ret < 0) { - printf("\n\tIOS 250 failed, reloading ios 223..."); - ret = IOS_ReloadIOSsafe(223); - printf("%d", ret); - - if (ret < 0) { - printf("\n\tERROR: cIOS could not be loaded!\n"); - sleep(5); - SYS_ResetSystem(SYS_RETURNTOMENU, 0, 0); - } - } - } - printf("\n\tInitialize sd card"); - SDCard_Init(); - printf("\n\tLoad ehc module"); - load_ehc_module(); - printf("\n\tdeinit sd card"); - SDCard_deInit(); + printf("%d", ret); + + if (ret < 0) + { + printf("\n\tIOS 222 failed, reloading ios 250..."); + ret = IOS_ReloadIOSsafe(250); + printf("%d", ret); + + if(ret < 0) + { + printf("\n\tIOS 250 failed, reloading ios 223..."); + ret = IOS_ReloadIOSsafe(223); + printf("%d", ret); + + if (ret < 0) + { + printf("\n\tERROR: cIOS could not be loaded!\n"); + sleep(5); + SYS_ResetSystem(SYS_RETURNTOMENU, 0, 0); + } + } + } + printf("\n\tInitialize sd card"); + SDCard_Init(); + printf("\n\tLoad ehc module"); + load_ehc_module(); + printf("\n\tdeinit sd card"); + SDCard_deInit(); } - - printf("\n\tInit wbfs..."); + + printf("\n\tInit wbfs..."); ret = WBFS_Init(WBFS_DEVICE_USB); - printf("%d", ret); + printf("%d", ret); - if (ret < 0) { - printf("\n\tYou have issues with a slow disc, or a difficult disc\n\tReloading 222..."); + if (ret < 0) + { + printf("\n\tYou have issues with a slow disc, or a difficult disc\n\tReloading 222..."); ret = IOS_ReloadIOSsafe(222); - printf("%d", ret); - if(ret < 0) { - printf("\n\tSleeping for 4 seconds"); -// sleep(4); + printf("%d", ret); + /*if(ret < 0) { + // printf("\n\tSleeping for 4 seconds"); + // sleep(4); InitVideo(); // Initialise video Menu_Render(); BootUpProblems(); startupproblem = true; ret = 1; - } - printf("\n\tInitialize sd card"); - SDCard_Init(); - printf("\n\tLoad ehc module"); - load_ehc_module(); - printf("\n\tdeinit sd card"); - SDCard_deInit(); + }*/ + printf("\n\tInitialize sd card"); + SDCard_Init(); + printf("\n\tLoad ehc module"); + load_ehc_module(); + printf("\n\tdeinit sd card"); + SDCard_deInit(); - printf("\n\tInitialize wbfs..."); + printf("\n\tInitialize wbfs..."); + USBDevice_deInit(); + USBDevice_Init(); ret = WBFS_Init(WBFS_DEVICE_USB); - printf("%d", ret); + printf("%d", ret); - if(ret < 0) { - printf("\n\tSleeping for 4 seconds"); -// sleep(4); - InitVideo(); // Initialise video + if(ret < 0) + { + // printf("\n\tSleeping for 4 seconds"); + // sleep(4); + InitVideo(); // Initialise video Menu_Render(); BootUpProblems(); startupproblem = true; @@ -339,109 +368,118 @@ main(int argc, char *argv[]) { } } - printf("\n\tInitialize sd card"); - SDCard_Init(); // mount SD for loading cfg's - printf("\n\tInitialize usb device"); - USBDevice_Init(); // and mount USB:/ - //gprintf("\n\tSD and USB Init OK"); + printf("\n\tInitialize sd card"); + SDCard_Init(); // mount SD for loading cfg's - if (!bootDevice_found) { - printf("\n\tSearch for configuration file"); + //this should have already been done by now in order to WBFS_Init(). + printf("\n\tInitialize usb device"); + USBDevice_Init(); // and mount USB:/ + + if (!bootDevice_found) + { + printf("\n\tSearch for configuration file"); //try USB //left in all the dol and elf files in this check in case this is the first time running the app and they dont have the config if (checkfile((char*) "USB:/config/GXglobal.cfg") || (checkfile((char*) "USB:/apps/usbloader_gx/boot.elf")) - || checkfile((char*) "USB:/apps/usbloadergx/boot.dol") || (checkfile((char*) "USB:/apps/usbloadergx/boot.elf")) - || checkfile((char*) "USB:/apps/usbloader_gx/boot.dol")) + || checkfile((char*) "USB:/apps/usbloadergx/boot.dol") || (checkfile((char*) "USB:/apps/usbloadergx/boot.elf")) + || checkfile((char*) "USB:/apps/usbloader_gx/boot.dol")) strcpy(bootDevice, "USB:"); - printf("\n\tConfiguration file is on %s", bootDevice); + printf("\n\tConfiguration file is on %s", bootDevice); } - // Try opening and closing the configuration file here - // to prevent a crash dump later on - giantpune - char GXGlobal_cfg[26]; - sprintf(GXGlobal_cfg, "%s/config/GXGlobal.cfg", bootDevice); - FILE *fp = fopen(GXGlobal_cfg, "r"); - if (fp) { - fclose(fp); - } + // Try opening and closing the configuration file here + // to prevent a crash dump later on - giantpune + char GXGlobal_cfg[26]; + sprintf(GXGlobal_cfg, "%s/config/GXGlobal.cfg", bootDevice); + FILE *fp = fopen(GXGlobal_cfg, "r"); + if (fp) + { + fclose(fp); + } gettextCleanUp(); - printf("\n\tLoading configuration..."); + printf("\n\tLoading configuration..."); CFG_Load(); - printf("done"); -// gprintf("\n\tbootDevice = %s",bootDevice); + printf("done"); + // gprintf("\n\tbootDevice = %s",bootDevice); - /* Load Custom IOS */ + /* Load Custom IOS */ if ((Settings.cios == ios222 && IOS_GetVersion() != 222) || - (Settings.cios == ios223 && IOS_GetVersion() != 223)) { - printf("\n\tReloading IOS to config setting (%d)...", ios222 ? 222 : 223); - SDCard_deInit();// unmount SD for reloading IOS - USBDevice_deInit();// unmount USB for reloading IOS - USBStorage_Deinit(); + (Settings.cios == ios223 && IOS_GetVersion() != 223)) + { + printf("\n\tReloading IOS to config setting (%d)...", ios222 ? 222 : 223); + SDCard_deInit(); // unmount SD for reloading IOS + USBDevice_deInit(); // unmount USB for reloading IOS + USBStorage_Deinit(); ret = IOS_ReloadIOSsafe(ios222 ? 222 : 223); - printf("%d", ret); - SDCard_Init(); + printf("%d", ret); + SDCard_Init(); load_ehc_module(); - if (ret < 0) { - SDCard_deInit(); + if (ret < 0) + { + SDCard_deInit(); Settings.cios = ios249; ret = IOS_ReloadIOSsafe(249); - // now mount SD:/ //no need to keep mindlessly mounting and unmounting SD card - SDCard_Init(); + // now mount SD:/ //no need to keep mindlessly mounting and unmounting SD card + SDCard_Init(); } - - USBDevice_Init(); // and mount USB:/ - WBFS_Init(WBFS_DEVICE_USB); - } else if ((Settings.cios == ios249 && IOS_GetVersion() != 249) || - (Settings.cios == ios250 && IOS_GetVersion() != 250)) { - printf("\n\tReloading IOS to config setting (%d)...", ios249 ? 249 : 250); - SDCard_deInit();// unmount SD for reloading IOS - USBDevice_deInit();// unmount USB for reloading IOS - USBStorage_Deinit(); + USBDevice_Init(); // and mount USB:/ + WBFS_Init(WBFS_DEVICE_USB); + } else if ((Settings.cios == ios249 && IOS_GetVersion() != 249) || + (Settings.cios == ios250 && IOS_GetVersion() != 250)) + { + + printf("\n\tReloading IOS to config setting (%d)...", ios249 ? 249 : 250); + SDCard_deInit(); // unmount SD for reloading IOS + USBDevice_deInit(); // unmount USB for reloading IOS + USBStorage_Deinit(); ret = IOS_ReloadIOSsafe(ios249 ? 249 : 250); - printf("%d", ret); - if (ret < 0) { + printf("%d", ret); + if (ret < 0) + { Settings.cios = ios222; ret = IOS_ReloadIOSsafe(222); - SDCard_Init(); + SDCard_Init(); load_ehc_module(); } - - else SDCard_Init(); // now mount SD:/ //no need to keep mindlessly mounting and unmounting SD card - USBDevice_Init(); // and mount USB:/ - WBFS_Init(WBFS_DEVICE_USB); - } -// Partition_GetList(&partitions); + else SDCard_Init(); // now mount SD:/ //no need to keep mindlessly mounting and unmounting SD card + USBDevice_Init(); // and mount USB:/ + WBFS_Init(WBFS_DEVICE_USB); + } - if (ret < 0) { + // Partition_GetList(&partitions); + + if (ret < 0) + { printf("\nERROR: cIOS could not be loaded!"); sleep(5); - SYS_ResetSystem(SYS_RETURNTOMENU, 0, 0); + exit(0); + //SYS_ResetSystem(SYS_RETURNTOMENU, 0, 0); } - //gprintf("\n\tcIOS = %u (Rev %u)",IOS_GetVersion(), IOS_GetRevision());//don't need gprintf if sending console shit to gecko, too - printf("\n\tcIOS = %u (Rev %u)",IOS_GetVersion(), IOS_GetRevision()); + //gprintf("\n\tcIOS = %u (Rev %u)",IOS_GetVersion(), IOS_GetRevision());//don't need gprintf if sending console shit to gecko, too + printf("\n\tcIOS = %u (Rev %u)",IOS_GetVersion(), IOS_GetRevision()); -// printf("Sleeping for 5 seconds\n"); -// sleep(5); + // printf("Sleeping for 5 seconds\n"); + // sleep(5); - //if a ID was passed via args copy it and try to boot it after the partition is mounted - //its not really a headless mode. more like hairless. - if (argc > 1 && argv[1]) - { - if (strlen(argv[1])==6) - strncpy(headlessID, argv[1], sizeof(headlessID)); - } + //if a ID was passed via args copy it and try to boot it after the partition is mounted + //its not really a headless mode. more like hairless. + if (argc > 1 && argv[1]) + { + if (strlen(argv[1])==6) + strncpy(headlessID, argv[1], sizeof(headlessID)); + } //! Init the rest of the System Sys_Init(); Wpad_Init(); if(!startupproblem) InitVideo(); - InitAudio(); // Initialize audio + InitAudio(); // Initialize audio WPAD_SetDataFormat(WPAD_CHAN_ALL,WPAD_FMT_BTNS_ACC_IR); WPAD_SetVRes(WPAD_CHAN_ALL, screenwidth, screenheight); @@ -458,9 +496,8 @@ main(int argc, char *argv[]) { fontClock->loadFont(NULL, clock_ttf, clock_ttf_size, 0); fontClock->setCompatibilityMode(FTGX_COMPATIBILITY_DEFAULT_TEVOP_GX_PASSCLR | FTGX_COMPATIBILITY_DEFAULT_VTXDESC_GX_NONE); - gprintf("\n\tEnd of Main()"); + gprintf("\n\tEnd of Main()"); InitGUIThreads(); MainMenu(MENU_CHECK); return 0; } - diff --git a/source/prompts/PromptWindows.cpp b/source/prompts/PromptWindows.cpp index c5f10df8..cc6d0b5e 100644 --- a/source/prompts/PromptWindows.cpp +++ b/source/prompts/PromptWindows.cpp @@ -1772,19 +1772,22 @@ DiscWait(const char *title, const char *msg, const char *btn1Label, const char * while (i >= 0) { VIDEO_WaitVSync(); timerTxt.SetTextf("%u %s", i,tr("seconds left")); - HaltGui(); + /* HaltGui(); if (Settings.cios == ios222) { ret = IOS_ReloadIOS(222); load_ehc_module(); } else { ret = IOS_ReloadIOS(249); } - ResumeGui(); + ResumeGui();*/ sleep(1); + USBDevice_deInit(); + USBDevice_Init(); ret = WBFS_Init(WBFS_DEVICE_USB); if (ret>=0) break; + i--; } } else { diff --git a/source/usbloader/getentries.cpp b/source/usbloader/getentries.cpp index c2f5e910..afd54079 100644 --- a/source/usbloader/getentries.cpp +++ b/source/usbloader/getentries.cpp @@ -500,6 +500,12 @@ int __Menu_GetGameList(int t, wchar_t* gameFilter, discHdr ** PgameList, u32 *Pg if (!game_num || game_num->favorite==0) continue; } + + //ignore uLoader cfg "iso". i was told it is "__CFG_" but not confirmed + if (header->id[0]=='_'&&header->id[1]=='_'&& + header->id[2]=='C'&&header->id[3]=='F'&& + header->id[4]=='G'&&header->id[5]=='_') + continue; if (Settings.parentalcontrol && !Settings.godmode && t==0) { if (get_block(header) >= Settings.parentalcontrol)