diff --git a/installer/wad/0001000154484246.tik b/installer/wad/0001000154484246.tik index 129cc4e..85c1706 100644 Binary files a/installer/wad/0001000154484246.tik and b/installer/wad/0001000154484246.tik differ diff --git a/installer/wad/0001000154484246.tmd b/installer/wad/0001000154484246.tmd index 1309353..5352878 100644 Binary files a/installer/wad/0001000154484246.tmd and b/installer/wad/0001000154484246.tmd differ diff --git a/installer/wad/0001000154484246.trailer b/installer/wad/0001000154484246.trailer index 1586896..c304100 100644 Binary files a/installer/wad/0001000154484246.trailer and b/installer/wad/0001000154484246.trailer differ diff --git a/main/source/Menus/menu_main.cpp b/main/source/Menus/menu_main.cpp index 7dd545b..11a4b44 100644 --- a/main/source/Menus/menu_main.cpp +++ b/main/source/Menus/menu_main.cpp @@ -409,7 +409,7 @@ int MenuMain() // device symbol anzeigen GuiImage * viewdevice = NULL; - if((Options.device_icon == 1 || Options.device_icon == 3) && (Settings.device == "sd_usb" || Settings.device == "all")) + if(Options.device_icon == 1 || Options.device_icon == 3) { bool icon = false; if(strncmp(vechomebrew_list_choice[i].foldername.c_str(), "sd", 2) == 0) diff --git a/main/source/Prompts/prompt_app_info.cpp b/main/source/Prompts/prompt_app_info.cpp index 6404c20..2f139e6 100644 --- a/main/source/Prompts/prompt_app_info.cpp +++ b/main/source/Prompts/prompt_app_info.cpp @@ -59,7 +59,7 @@ AppInfo(const char *title, string dir, u8* icon) GuiImage * viewdevice = NULL; - if((Options.device_icon == 2 || Options.device_icon == 3) && (Settings.device == "sd_usb" || Settings.device == "all")) + if(Options.device_icon == 2 || Options.device_icon == 3) { bool icon = false; if(strncmp(dir.c_str(), "sd", 2) == 0) diff --git a/main/source/Prompts/prompt_loader.cpp b/main/source/Prompts/prompt_loader.cpp index b81e51e..7702303 100644 --- a/main/source/Prompts/prompt_loader.cpp +++ b/main/source/Prompts/prompt_loader.cpp @@ -83,7 +83,6 @@ loaderPrompt() bool stop = false; int menu = 0; - listIOS(); #ifndef VWII if( ! priicheck ) { diff --git a/main/source/Tools/SelectIos.cpp b/main/source/Tools/SelectIos.cpp index a0e32fc..ca34dee 100644 --- a/main/source/Tools/SelectIos.cpp +++ b/main/source/Tools/SelectIos.cpp @@ -190,6 +190,7 @@ end: // Check if this is an IOS stub (according to WiiBrew.org) bool IsKnownStub(u32 noIOS, s32 noRevision) { + if (noIOS == 0) return true; if (noIOS == 3 && noRevision == 65280) return true; if (noIOS == 4 && noRevision == 65280) return true; if (noIOS == 5 && noRevision == 65280) return true; @@ -262,107 +263,106 @@ int previousIos() bool listIOS() { - if(ios_pos > 0) - return true; - ioslist.clear(); - u32 nbTitles; - if (ES_GetNumTitles(&nbTitles) < 0) - return false; - - // Allocate the memory for titles - u64 *titles = (u64*)memalign(32, nbTitles*sizeof(u64)); - - if (titles == NULL) - return false; - - if (ES_GetTitles(titles, nbTitles) < 0) - return false; - - int i; - u32 titleID; - - // For each titles found - for (i = 0; i < (signed)nbTitles; i++) + if(ioslist.size() == 0) { - // Skip non-system titles - if (titles[i] >> 32 != 1) continue; - - // Skip the system menu - titleID = titles[i] & 0xFFFFFFFF; - - if (titleID == 2) continue; - - // Skip BC, MIOS and possible other non-IOS titles - if (titleID > 0xFF) continue; - - // Skip the running IOS - if (titleID == 0) continue; - - // Skip NAND-Emu IOS - if (titleID == 253) - { - nandemu = 1; - continue; - } - - // Skip bootmii IOS - if (titleID == 254) continue; - - // Check if this title is an IOS stub - u32 tmdSize; - tmd *iosTMD ATTRIBUTE_ALIGN(32); - - // Get the stored TMD size for the title - if (ES_GetStoredTMDSize(0x0000000100000000ULL | titleID, &tmdSize) < 0) + u32 nbTitles; + if (ES_GetNumTitles(&nbTitles) < 0) return false; - signed_blob *iosTMDBuffer = (signed_blob *)memalign(32, (tmdSize+32)&(~31)); - memset(iosTMDBuffer, 0, tmdSize); + // Allocate the memory for titles + u64 *titles = (u64*)memalign(32, nbTitles*sizeof(u64)); - // Get the stored TMD for the title - if (ES_GetStoredTMD(0x0000000100000000ULL | titleID, iosTMDBuffer, tmdSize) < 0) + if (titles == NULL) return false; - iosTMD = (tmd *)SIGNATURE_PAYLOAD(iosTMDBuffer); + if (ES_GetTitles(titles, nbTitles) < 0) + return false; - free(iosTMDBuffer); + int i; + u32 titleID; - // Get the title version - u8 noVersion = iosTMD->title_version; - bool isStub = false; - - // Check if this is an IOS stub (according to WiiBrew.org) - if (IsKnownStub(titleID, iosTMD->title_version)) - isStub = true; - else + // For each titles found + for (i = 0; i < (signed)nbTitles; i++) { - // If the version is 00, it's probably a stub - // - // Stubs have these things in common: - // - Title version is mostly 65280, or even better, the last 2 hexadecimal digits are 0; - // - Stub have one app of their own (type 0x1) and 2 shared apps (type 0x8001). - if (noVersion == 0) - isStub = ((iosTMD->num_contents == 3) && (iosTMD->contents[0].type == 1 && iosTMD->contents[1].type == 0x8001 && iosTMD->contents[2].type == 0x8001)); - else - isStub = false; - } + // Skip non-system titles + if (titles[i] >> 32 != 1) continue; - xprintf("testing IOS: %d\n", titleID); + // Skip the system menu + titleID = titles[i] & 0xFFFFFFFF; - if(!isStub) - { - if(titleID == 254) - { - bootmii = 1; + if (titleID == 2) continue; + + // Skip BC, MIOS and possible other non-IOS titles + if (titleID > 0xFF) continue; + + // Skip the running IOS + if (titleID == 0) continue; + + // Skip NAND-Emu IOS + if (titleID == 253) + { + nandemu = 1; + continue; } - xprintf("added IOS %d to list.\n", titleID); - ioslist.push_back(titleID); - } + // Check if this title is an IOS stub + u32 tmdSize; + tmd *iosTMD ATTRIBUTE_ALIGN(32); + + // Get the stored TMD size for the title + if (ES_GetStoredTMDSize(0x0000000100000000ULL | titleID, &tmdSize) < 0) + return false; + + signed_blob *iosTMDBuffer = (signed_blob *)memalign(32, (tmdSize+32)&(~31)); + memset(iosTMDBuffer, 0, tmdSize); + + // Get the stored TMD for the title + if (ES_GetStoredTMD(0x0000000100000000ULL | titleID, iosTMDBuffer, tmdSize) < 0) + return false; + + iosTMD = (tmd *)SIGNATURE_PAYLOAD(iosTMDBuffer); + + free(iosTMDBuffer); + + // Get the title version + u8 noVersion = iosTMD->title_version; + bool isStub = false; + + // Check if this is an IOS stub (according to WiiBrew.org) + if (IsKnownStub(titleID, iosTMD->title_version)) + isStub = true; + else + { + // If the version is 00, it's probably a stub + // + // Stubs have these things in common: + // - Title version is mostly 65280, or even better, the last 2 hexadecimal digits are 0; + // - Stub have one app of their own (type 0x1) and 2 shared apps (type 0x8001). + if (noVersion == 0) + isStub = ((iosTMD->num_contents == 3) && (iosTMD->contents[0].type == 1 && iosTMD->contents[1].type == 0x8001 && iosTMD->contents[2].type == 0x8001)); + else + isStub = false; + } + + xprintf("testing IOS: %d\n", titleID); + + if(!isStub) + { + if (titleID == 254) { + bootmii = 1; + continue; + } + xprintf("added IOS %d to list.\n", titleID); + ioslist.push_back(titleID); + } + + } + std::sort( ioslist.begin(), ioslist.end() ); // sortieren + return true; } - std::sort( ioslist.begin(), ioslist.end() ); // sortieren - return true; + else + return true; } diff --git a/main/source/main.cpp b/main/source/main.cpp index 523378f..4362b25 100644 --- a/main/source/main.cpp +++ b/main/source/main.cpp @@ -92,7 +92,7 @@ void addAppIos(string foldername, int ios) } if(found) appios[i].ios = ios; - if(!found) + else appios.push_back(app_ios(foldername, ios)); } } @@ -106,7 +106,9 @@ void ExitApp() save(); xprintf("Unmount Devices and NAND\n"); UnmountAllDevices(); +#ifndef VWII exit_uneek_fs(); +#endif ISFS_Deinitialize(); } @@ -177,7 +179,7 @@ DefaultOptions() Options.apps = 4; Options.quick_start = 0; Options.show_all = 1; - Options.sdgecko = 1; + Options.sdgecko = 0; #ifndef VWII Options.bootmii_boot2 = 0; #endif @@ -197,7 +199,9 @@ main(int argc, char *argv[]) SetupPads(); // Initialize input InitGUIThreads(); // Initialize GUI +#ifndef VWII in_neek = init_uneek_fs(ISFS_OPEN_READ|ISFS_OPEN_WRITE); +#endif MountAllDevices(); InitNetworkThread(); // Initialize Network @@ -207,7 +211,7 @@ main(int argc, char *argv[]) InitGeckoThread(); #endif InitThrobberThread(); // Initialize Throbber - ISFS_Initialize(); // Initialize Nand + ISFS_Initialize(); // Initialize Nand LoadHBF(); @@ -248,17 +252,13 @@ main(int argc, char *argv[]) strftime(buffer, 80, "(%Y-%m-%d / %H:%M:%S)", current); xprintf("\nStarting HBF Debug Log %s\n", buffer); +#ifndef VWII if(!check_uneek_fs()) - { +#endif if(AHBPROT_DISABLED) { IosPatch_RUNTIME(true, false, false, false); } - else - { - xprintf("Warning: no AHBPROT\n"); - } - } #ifndef VWII DI2_Init(); // Init DVD #endif diff --git a/svnrev/svnrev.c b/svnrev/svnrev.c index f7da99e..13e90de 100644 --- a/svnrev/svnrev.c +++ b/svnrev/svnrev.c @@ -1,4 +1,4 @@ -#define SVN_REV 46 +#define SVN_REV 47 int SvnRev() { diff --git a/web/Languages/german.lang b/web/Languages/german.lang index c83b9b5..ffa79c6 100644 --- a/web/Languages/german.lang +++ b/web/Languages/german.lang @@ -7,7 +7,7 @@ Delete Category = Kategorie löschen Remove Category = Kategorie entfernen Select Category (-/+) = Kategorie auswählen (-/+) Options = Optionen -Info = +Info = Über Really remove? = Wirklich entfernen? Delete Forever? = Endgültig löschen? Yes = Ja @@ -30,21 +30,20 @@ All = Alle unassigned = nicht zugeordnet = Page %i of %i = Seite %i von %i -STANDARD = -Theme = -Themes = +STANDARD = Standard Language = Sprache Languages = Sprachen Font = Schriftart Fonts = Schriftarten -Slide Effect = Slide Effekt +Slide Effect = Übergangs-Effekt Category remember = Kategorie merken last = letzte Number of Apps = Anzahl Apps Move = Verschieben Credits = Danksagungen Version: = -Coder: = Programmierer: +Coder: = Entwickler: +Developers: = Entwickler: Designer: = Special thanks to: = Besonderen Dank an: activated = aktiviert @@ -52,11 +51,11 @@ Activate = Aktivieren Deactivate = Deaktivieren Change Code = Code ändern please wait = Bitte warten -Update = +Update = Aktualisierung Download = New Rev is available for download = Neue Rev steht zum Download bereit Downloading file... = Lade Datei herunter... -Do you want to update now ? = Jetzt updaten? +Do you want to update now ? = Jetzt aktualisieren? Initialise network... = Initialisiere Netzwerk... Do you want to reboot now ? = Jetzt neu starten? Display = Bildschirm @@ -66,7 +65,7 @@ Exit to System Menu = Beenden, zum Systemmenü Exit = Beenden Network Settings = Netzwerk Auto Connect = Automatisch verbinden -Update Info = Update-Info +Update Info = Aktualisierungs-Info No network connection = Keine Netzwerkverbindung Error = Fehler Error while reading file = Fehler beim Lesen der Datei @@ -92,5 +91,7 @@ Theme = Thema Themes = Themen External Applications = Externe Anwendungen Launch Settings Editor GUI = Settings Editor GUI starten -Exit to Wii U menu = Beenden, zum Wii U Menü +Exit to Wii U menu = Beenden, zum Wii-U-Menü Restart HBF = HBF neu starten +Launch BootMii (IOS) = BootMii (IOS) starten +Launch BootMii (Boot2) = BootMii (Boot2) starten diff --git a/web/updates b/web/updates index 465fe81..246bed8 100644 --- a/web/updates +++ b/web/updates @@ -1,3 +1,18 @@ +//rev47: +- build against libruntimeiospatch 1.5.3 +- only scan list of available IOS once per session +- disable 'SD Card Gecko' by default (debug log on SD Card), + because it's causing a MASSIVE slow down when opening an + app's details dialog the first time in a session, when + using a shitty class 2 or whatever SD Card +- fixed that newly build vWii forwarder accidently was the + same than the Wii forwarder +- fixup BootMii (IOS) detection on Wii +- fixup showing device icon for apps +- add ISO0 (any version) to list of known stub IOS + (it's a custom IOS installed by several old apps) +- update german translation + //rev46: - fix size and layout of device prompt in vWii builds - remove 'All' button from device prompt in vWii builds