*fix reloading into another IOS before launch of game

*add loading of wii games / nand channels / emu nand channels in all combinations into one list
*add button on main view for quick choice between the combinations of the three
*add "Real Nand" or "Emulated Nand" text on the game window prompt when starting a channel
*removed the need of a cIOS to launch the loader (if anyone uses it with IOS58 for whatever reason). The warning that a cIOS is needed is still present.
*removed support for both usb ports at once on hermes cIOS. Each can still be used individually but only one at a time. This is done because of some bugs in the new ehci module which make some games unbootable. The ehcimodule is now reverted to the last working one. Need feedback if the games work fine again.
*some preparations for the upcoming stealth mode feature of the d2x cIOS
*isfs is now initiated once and deinitated when cleaning up only (instead of the whole init/deinit every single access)
*removed choice for emulated nand channel modes. Emulated nand channels always need full emulation which is now always used on emu nand for channels.
*removed unused settings for channels from the per game setting
*changed default partition to 0 when starting with fresh settings (instead of -1 wtf?)
This commit is contained in:
strtoul 2011-12-22 22:44:48 +00:00
parent 616b1bdf4c
commit 76df2b26b6
72 changed files with 2791 additions and 2104 deletions

View File

@ -2,8 +2,8 @@
<app version="1"> <app version="1">
<name> USB Loader GX</name> <name> USB Loader GX</name>
<coder>USB Loader GX Team</coder> <coder>USB Loader GX Team</coder>
<version>2.3 r1134</version> <version>2.3 r1135</version>
<release_date>201111201046</release_date> <release_date>201112222230</release_date>
<!-- // remove this line to enable arguments <!-- // remove this line to enable arguments
<arguments> <arguments>
<arg>--ios=250</arg> <arg>--ios=250</arg>

View File

@ -5,7 +5,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: USB Loader GX\n" "Project-Id-Version: USB Loader GX\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2011-12-20 21:54+0100\n" "POT-Creation-Date: 2011-12-22 23:25+0100\n"
"PO-Revision-Date: 2009-10-01 01:00+0200\n" "PO-Revision-Date: 2009-10-01 01:00+0200\n"
"Last-Translator: David Jelinek (djelinek@hotmail.com) e->e,r->r,u->u, c->c \n" "Last-Translator: David Jelinek (djelinek@hotmail.com) e->e,r->r,u->u, c->c \n"
"Language-Team: r1056 - last version on http://djelinek.sweb.cz/_USBLoderGX/czech.lang \n" "Language-Team: r1056 - last version on http://djelinek.sweb.cz/_USBLoderGX/czech.lang \n"
@ -247,6 +247,9 @@ msgstr ""
msgid "Block IOS Reload" msgid "Block IOS Reload"
msgstr "Zablokovat opetovné zavedení IOS" msgstr "Zablokovat opetovné zavedení IOS"
msgid "Block Loader Mode Button"
msgstr ""
msgid "Block Loader Settings" msgid "Block Loader Settings"
msgstr "Zablokovat nastavení spouštění" msgstr "Zablokovat nastavení spouštění"
@ -610,6 +613,12 @@ msgstr "CHYBA:"
msgid "ERROR: Can't set up theme." msgid "ERROR: Can't set up theme."
msgstr "CHYBA: Nelze nastavit téma." msgstr "CHYBA: Nelze nastavit téma."
msgid "EmuNand Channels"
msgstr ""
msgid "Emulated Nand"
msgstr ""
msgid "English" msgid "English"
msgstr "Anglicky" msgstr "Anglicky"
@ -999,6 +1008,9 @@ msgstr "Cesta k jazykovym souborum"
msgid "Languagepath changed." msgid "Languagepath changed."
msgstr "Cesta k jazykum zmenena" msgstr "Cesta k jazykum zmenena"
msgid "Launching emulated nand channels only works on d2x cIOS! Change game IOS to a d2x cIOS first."
msgstr ""
msgid "Left" msgid "Left"
msgstr "Vlevo" msgstr "Vlevo"
@ -1081,7 +1093,7 @@ msgstr "Mód hudební smycky"
msgid "Music Volume" msgid "Music Volume"
msgstr "Hlasitost hudby" msgstr "Hlasitost hudby"
msgid "Nand Channel Emulation" msgid "Nand Channels"
msgstr "" msgstr ""
msgid "Nand Emu Channel Path" msgid "Nand Emu Channel Path"
@ -1303,6 +1315,9 @@ msgstr "Náhodné prehrávání hudby"
msgid "Reading WAD data... Ok!" msgid "Reading WAD data... Ok!"
msgstr "Nacítám WAD data... Ok!" msgstr "Nacítám WAD data... Ok!"
msgid "Real Nand"
msgstr ""
msgid "Receiving file from:" msgid "Receiving file from:"
msgstr "Prijímám soubor z:" msgstr "Prijímám soubor z:"
@ -1405,6 +1420,12 @@ msgstr "Vybrat DOL ze hry"
msgid "Select game categories" msgid "Select game categories"
msgstr "" msgstr ""
msgid "Select loader mode"
msgstr ""
msgid "Select titles sources."
msgstr ""
msgid "Sept" msgid "Sept"
msgstr "Zárí" msgstr "Zárí"
@ -1701,6 +1722,9 @@ msgstr ""
msgid "Widescreen Fix" msgid "Widescreen Fix"
msgstr "Korekce širokoúhlé obrazovky" msgstr "Korekce širokoúhlé obrazovky"
msgid "Wii Games"
msgstr ""
msgid "Wii Menu" msgid "Wii Menu"
msgstr "Wii menu" msgstr "Wii menu"

View File

@ -5,7 +5,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: USB Loader GX\n" "Project-Id-Version: USB Loader GX\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2011-12-20 21:54+0100\n" "POT-Creation-Date: 2011-12-22 23:25+0100\n"
"PO-Revision-Date: 2009-10-01 01:00+0200\n" "PO-Revision-Date: 2009-10-01 01:00+0200\n"
"Last-Translator: Fox888[dk]\n" "Last-Translator: Fox888[dk]\n"
"Language-Team: [dk]\n" "Language-Team: [dk]\n"
@ -247,6 +247,9 @@ msgstr "Bloker Hard disk indstillinger"
msgid "Block IOS Reload" msgid "Block IOS Reload"
msgstr "Blokér IOS-reload" msgstr "Blokér IOS-reload"
msgid "Block Loader Mode Button"
msgstr ""
msgid "Block Loader Settings" msgid "Block Loader Settings"
msgstr "Bloker loader indstillinger" msgstr "Bloker loader indstillinger"
@ -610,6 +613,12 @@ msgstr "FEJL:"
msgid "ERROR: Can't set up theme." msgid "ERROR: Can't set up theme."
msgstr "FEJL: Temaet kan ikke bruges." msgstr "FEJL: Temaet kan ikke bruges."
msgid "EmuNand Channels"
msgstr ""
msgid "Emulated Nand"
msgstr ""
msgid "English" msgid "English"
msgstr "Engelsk" msgstr "Engelsk"
@ -999,6 +1008,9 @@ msgstr "Sti til sprog filer"
msgid "Languagepath changed." msgid "Languagepath changed."
msgstr "Sti til sprogfiler ændret." msgstr "Sti til sprogfiler ændret."
msgid "Launching emulated nand channels only works on d2x cIOS! Change game IOS to a d2x cIOS first."
msgstr ""
msgid "Left" msgid "Left"
msgstr "Venstre" msgstr "Venstre"
@ -1081,7 +1093,7 @@ msgstr "Musik i løkke"
msgid "Music Volume" msgid "Music Volume"
msgstr "Lydstyrke" msgstr "Lydstyrke"
msgid "Nand Channel Emulation" msgid "Nand Channels"
msgstr "" msgstr ""
msgid "Nand Emu Channel Path" msgid "Nand Emu Channel Path"
@ -1303,6 +1315,9 @@ msgstr "Musik fra tilfældig mappe"
msgid "Reading WAD data... Ok!" msgid "Reading WAD data... Ok!"
msgstr "Læser WAD-data... Ok!" msgstr "Læser WAD-data... Ok!"
msgid "Real Nand"
msgstr ""
msgid "Receiving file from:" msgid "Receiving file from:"
msgstr "Henter fil fra:" msgstr "Henter fil fra:"
@ -1405,6 +1420,12 @@ msgstr "Vælg DOL fra spil"
msgid "Select game categories" msgid "Select game categories"
msgstr "Vælg spille Kategorier" msgstr "Vælg spille Kategorier"
msgid "Select loader mode"
msgstr ""
msgid "Select titles sources."
msgstr ""
msgid "Sept" msgid "Sept"
msgstr "" msgstr ""
@ -1701,6 +1722,9 @@ msgstr ""
msgid "Widescreen Fix" msgid "Widescreen Fix"
msgstr "Bredformat-fix" msgstr "Bredformat-fix"
msgid "Wii Games"
msgstr ""
msgid "Wii Menu" msgid "Wii Menu"
msgstr "" msgstr ""

View File

@ -5,7 +5,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: USB Loader GX\n" "Project-Id-Version: USB Loader GX\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2011-12-20 21:54+0100\n" "POT-Creation-Date: 2011-12-22 23:25+0100\n"
"PO-Revision-Date: 2011-06-30 14:22+0100\n" "PO-Revision-Date: 2011-06-30 14:22+0100\n"
"Last-Translator: glowy\n" "Last-Translator: glowy\n"
"Language-Team: tj_cool, glowy\n" "Language-Team: tj_cool, glowy\n"
@ -247,6 +247,9 @@ msgstr "Blokkeer Harddisk instellingen"
msgid "Block IOS Reload" msgid "Block IOS Reload"
msgstr "Stop IOS herladen" msgstr "Stop IOS herladen"
msgid "Block Loader Mode Button"
msgstr ""
msgid "Block Loader Settings" msgid "Block Loader Settings"
msgstr "Blokkeer Loader Instellingen" msgstr "Blokkeer Loader Instellingen"
@ -610,6 +613,12 @@ msgstr "FOUT:"
msgid "ERROR: Can't set up theme." msgid "ERROR: Can't set up theme."
msgstr "FOUT: Kan thema niet instellen" msgstr "FOUT: Kan thema niet instellen"
msgid "EmuNand Channels"
msgstr ""
msgid "Emulated Nand"
msgstr ""
msgid "English" msgid "English"
msgstr "Engels" msgstr "Engels"
@ -999,6 +1008,9 @@ msgstr "Locatie Taalbestanden"
msgid "Languagepath changed." msgid "Languagepath changed."
msgstr "Locatie taal gewijzigd." msgstr "Locatie taal gewijzigd."
msgid "Launching emulated nand channels only works on d2x cIOS! Change game IOS to a d2x cIOS first."
msgstr ""
msgid "Left" msgid "Left"
msgstr "Links" msgstr "Links"
@ -1081,7 +1093,7 @@ msgstr "Muziek Herhaal Mode"
msgid "Music Volume" msgid "Music Volume"
msgstr "Muziekvolume" msgstr "Muziekvolume"
msgid "Nand Channel Emulation" msgid "Nand Channels"
msgstr "" msgstr ""
msgid "Nand Emu Channel Path" msgid "Nand Emu Channel Path"
@ -1303,6 +1315,9 @@ msgstr "Willekeurige Map Muziek"
msgid "Reading WAD data... Ok!" msgid "Reading WAD data... Ok!"
msgstr "WAD data lezen... Ok!" msgstr "WAD data lezen... Ok!"
msgid "Real Nand"
msgstr ""
msgid "Receiving file from:" msgid "Receiving file from:"
msgstr "Bestand ontvangen van:" msgstr "Bestand ontvangen van:"
@ -1405,6 +1420,12 @@ msgstr "Selecteer een DOL van Spel"
msgid "Select game categories" msgid "Select game categories"
msgstr "Selecteer spel categorieën" msgstr "Selecteer spel categorieën"
msgid "Select loader mode"
msgstr ""
msgid "Select titles sources."
msgstr ""
msgid "Sept" msgid "Sept"
msgstr "Sep" msgstr "Sep"
@ -1701,6 +1722,9 @@ msgstr "Breedbeeld Factor"
msgid "Widescreen Fix" msgid "Widescreen Fix"
msgstr "Breedbeeld" msgstr "Breedbeeld"
msgid "Wii Games"
msgstr ""
msgid "Wii Menu" msgid "Wii Menu"
msgstr "" msgstr ""

View File

@ -5,7 +5,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: USB Loader GX\n" "Project-Id-Version: USB Loader GX\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2011-12-20 21:54+0100\n" "POT-Creation-Date: 2011-12-22 23:25+0100\n"
"PO-Revision-Date: 2009-10-01 01:00+0200\n" "PO-Revision-Date: 2009-10-01 01:00+0200\n"
"Last-Translator: \n" "Last-Translator: \n"
"Language-Team: \n" "Language-Team: \n"
@ -247,6 +247,9 @@ msgstr ""
msgid "Block IOS Reload" msgid "Block IOS Reload"
msgstr "" msgstr ""
msgid "Block Loader Mode Button"
msgstr ""
msgid "Block Loader Settings" msgid "Block Loader Settings"
msgstr "" msgstr ""
@ -610,6 +613,12 @@ msgstr ""
msgid "ERROR: Can't set up theme." msgid "ERROR: Can't set up theme."
msgstr "" msgstr ""
msgid "EmuNand Channels"
msgstr ""
msgid "Emulated Nand"
msgstr ""
msgid "English" msgid "English"
msgstr "" msgstr ""
@ -999,6 +1008,9 @@ msgstr ""
msgid "Languagepath changed." msgid "Languagepath changed."
msgstr "" msgstr ""
msgid "Launching emulated nand channels only works on d2x cIOS! Change game IOS to a d2x cIOS first."
msgstr ""
msgid "Left" msgid "Left"
msgstr "" msgstr ""
@ -1081,7 +1093,7 @@ msgstr ""
msgid "Music Volume" msgid "Music Volume"
msgstr "" msgstr ""
msgid "Nand Channel Emulation" msgid "Nand Channels"
msgstr "" msgstr ""
msgid "Nand Emu Channel Path" msgid "Nand Emu Channel Path"
@ -1303,6 +1315,9 @@ msgstr ""
msgid "Reading WAD data... Ok!" msgid "Reading WAD data... Ok!"
msgstr "" msgstr ""
msgid "Real Nand"
msgstr ""
msgid "Receiving file from:" msgid "Receiving file from:"
msgstr "" msgstr ""
@ -1405,6 +1420,12 @@ msgstr ""
msgid "Select game categories" msgid "Select game categories"
msgstr "" msgstr ""
msgid "Select loader mode"
msgstr ""
msgid "Select titles sources."
msgstr ""
msgid "Sept" msgid "Sept"
msgstr "" msgstr ""
@ -1701,6 +1722,9 @@ msgstr ""
msgid "Widescreen Fix" msgid "Widescreen Fix"
msgstr "" msgstr ""
msgid "Wii Games"
msgstr ""
msgid "Wii Menu" msgid "Wii Menu"
msgstr "" msgstr ""

View File

@ -5,7 +5,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: USB Loader GX\n" "Project-Id-Version: USB Loader GX\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2011-12-20 21:54+0100\n" "POT-Creation-Date: 2011-12-22 23:25+0100\n"
"PO-Revision-Date: 2009-10-01 01:00+0200\n" "PO-Revision-Date: 2009-10-01 01:00+0200\n"
"Last-Translator: c64rmx\n" "Last-Translator: c64rmx\n"
"Language-Team: \n" "Language-Team: \n"
@ -247,6 +247,9 @@ msgstr ""
msgid "Block IOS Reload" msgid "Block IOS Reload"
msgstr "Blokkaa IOS:in uudelleenlataus" msgstr "Blokkaa IOS:in uudelleenlataus"
msgid "Block Loader Mode Button"
msgstr ""
msgid "Block Loader Settings" msgid "Block Loader Settings"
msgstr "" msgstr ""
@ -610,6 +613,12 @@ msgstr "VIRHE:"
msgid "ERROR: Can't set up theme." msgid "ERROR: Can't set up theme."
msgstr "" msgstr ""
msgid "EmuNand Channels"
msgstr ""
msgid "Emulated Nand"
msgstr ""
msgid "English" msgid "English"
msgstr "Englanti" msgstr "Englanti"
@ -999,6 +1008,9 @@ msgstr ""
msgid "Languagepath changed." msgid "Languagepath changed."
msgstr "Kielen polku vaihdettu" msgstr "Kielen polku vaihdettu"
msgid "Launching emulated nand channels only works on d2x cIOS! Change game IOS to a d2x cIOS first."
msgstr ""
msgid "Left" msgid "Left"
msgstr "Vasen" msgstr "Vasen"
@ -1081,7 +1093,7 @@ msgstr ""
msgid "Music Volume" msgid "Music Volume"
msgstr "Voimakkuus" msgstr "Voimakkuus"
msgid "Nand Channel Emulation" msgid "Nand Channels"
msgstr "" msgstr ""
msgid "Nand Emu Channel Path" msgid "Nand Emu Channel Path"
@ -1303,6 +1315,9 @@ msgstr ""
msgid "Reading WAD data... Ok!" msgid "Reading WAD data... Ok!"
msgstr "Luetaan WAD:ia... Ok!" msgstr "Luetaan WAD:ia... Ok!"
msgid "Real Nand"
msgstr ""
msgid "Receiving file from:" msgid "Receiving file from:"
msgstr "Ladataan tiedostoa:" msgstr "Ladataan tiedostoa:"
@ -1405,6 +1420,12 @@ msgstr ""
msgid "Select game categories" msgid "Select game categories"
msgstr "" msgstr ""
msgid "Select loader mode"
msgstr ""
msgid "Select titles sources."
msgstr ""
msgid "Sept" msgid "Sept"
msgstr "syys" msgstr "syys"
@ -1701,6 +1722,9 @@ msgstr ""
msgid "Widescreen Fix" msgid "Widescreen Fix"
msgstr "Laajakuva korjaus" msgstr "Laajakuva korjaus"
msgid "Wii Games"
msgstr ""
msgid "Wii Menu" msgid "Wii Menu"
msgstr "Wii Menu" msgstr "Wii Menu"

View File

@ -5,7 +5,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: USB Loader GX\n" "Project-Id-Version: USB Loader GX\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2011-12-20 21:54+0100\n" "POT-Creation-Date: 2011-12-22 23:25+0100\n"
"PO-Revision-Date: 2009-10-01 01:00+0200\n" "PO-Revision-Date: 2009-10-01 01:00+0200\n"
"Last-Translator: Cyan\n" "Last-Translator: Cyan\n"
"Language-Team: Badablek, Amour, ikya, Cyan & Kin8\n" "Language-Team: Badablek, Amour, ikya, Cyan & Kin8\n"
@ -247,6 +247,9 @@ msgstr "Bloquer Param. Disques durs"
msgid "Block IOS Reload" msgid "Block IOS Reload"
msgstr "Bloquer IOS reload" msgstr "Bloquer IOS reload"
msgid "Block Loader Mode Button"
msgstr ""
msgid "Block Loader Settings" msgid "Block Loader Settings"
msgstr "Bloquer Param. du Loader" msgstr "Bloquer Param. du Loader"
@ -610,6 +613,12 @@ msgstr "ERREUR:"
msgid "ERROR: Can't set up theme." msgid "ERROR: Can't set up theme."
msgstr "ERREUR: Configuration thème impossible." msgstr "ERREUR: Configuration thème impossible."
msgid "EmuNand Channels"
msgstr ""
msgid "Emulated Nand"
msgstr ""
msgid "English" msgid "English"
msgstr "Anglais" msgstr "Anglais"
@ -999,6 +1008,9 @@ msgstr "Dossier langue"
msgid "Languagepath changed." msgid "Languagepath changed."
msgstr "Dossier langue changé" msgstr "Dossier langue changé"
msgid "Launching emulated nand channels only works on d2x cIOS! Change game IOS to a d2x cIOS first."
msgstr ""
msgid "Left" msgid "Left"
msgstr "Gauche" msgstr "Gauche"
@ -1081,8 +1093,8 @@ msgstr "Type de boucle"
msgid "Music Volume" msgid "Music Volume"
msgstr "Volume musique" msgstr "Volume musique"
msgid "Nand Channel Emulation" msgid "Nand Channels"
msgstr "Émulation Nand Chaînes" msgstr ""
msgid "Nand Emu Channel Path" msgid "Nand Emu Channel Path"
msgstr "Dossier ÉmuNand Chaînes" msgstr "Dossier ÉmuNand Chaînes"
@ -1303,6 +1315,9 @@ msgstr "Aléatoire"
msgid "Reading WAD data... Ok!" msgid "Reading WAD data... Ok!"
msgstr "Lecture données WAD... OK!" msgstr "Lecture données WAD... OK!"
msgid "Real Nand"
msgstr ""
msgid "Receiving file from:" msgid "Receiving file from:"
msgstr "Réception du fichier de:" msgstr "Réception du fichier de:"
@ -1405,6 +1420,12 @@ msgstr "Sélectionner un DOL à partir du jeu"
msgid "Select game categories" msgid "Select game categories"
msgstr "Filtrer par catégories de jeux" msgstr "Filtrer par catégories de jeux"
msgid "Select loader mode"
msgstr ""
msgid "Select titles sources."
msgstr ""
msgid "Sept" msgid "Sept"
msgstr "" msgstr ""
@ -1701,6 +1722,9 @@ msgstr "Échelle interface 16:9"
msgid "Widescreen Fix" msgid "Widescreen Fix"
msgstr "16:9" msgstr "16:9"
msgid "Wii Games"
msgstr ""
msgid "Wii Menu" msgid "Wii Menu"
msgstr "Menu Wii" msgstr "Menu Wii"
@ -1803,6 +1827,9 @@ msgstr "sur"
msgid "seconds left" msgid "seconds left"
msgstr "secondes restantes" msgstr "secondes restantes"
#~ msgid "Nand Channel Emulation"
#~ msgstr "Émulation Nand Chaînes"
#~ msgid "New Disc Detected" #~ msgid "New Disc Detected"
#~ msgstr "Nouveau DVD détecté" #~ msgstr "Nouveau DVD détecté"

View File

@ -5,7 +5,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: USB Loader GX\n" "Project-Id-Version: USB Loader GX\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2011-12-20 21:54+0100\n" "POT-Creation-Date: 2011-12-22 23:25+0100\n"
"PO-Revision-Date: 2010-07-03 17:35-0800\n" "PO-Revision-Date: 2010-07-03 17:35-0800\n"
"Last-Translator: TheRealVisitor\n" "Last-Translator: TheRealVisitor\n"
"Language-Team: Bertilax, Snoozer, wishmasterf, ZEN.13, TheRealVisitor\n" "Language-Team: Bertilax, Snoozer, wishmasterf, ZEN.13, TheRealVisitor\n"
@ -247,6 +247,9 @@ msgstr "Blocke Festpl. Optionen"
msgid "Block IOS Reload" msgid "Block IOS Reload"
msgstr "Blocke IOS-Neuladen" msgstr "Blocke IOS-Neuladen"
msgid "Block Loader Mode Button"
msgstr ""
msgid "Block Loader Settings" msgid "Block Loader Settings"
msgstr "Blocke Loaderoptionen" msgstr "Blocke Loaderoptionen"
@ -610,6 +613,12 @@ msgstr "FEHLER:"
msgid "ERROR: Can't set up theme." msgid "ERROR: Can't set up theme."
msgstr "FEHLER: Theme kann nicht eingerichtet werden." msgstr "FEHLER: Theme kann nicht eingerichtet werden."
msgid "EmuNand Channels"
msgstr ""
msgid "Emulated Nand"
msgstr ""
msgid "English" msgid "English"
msgstr "Englisch" msgstr "Englisch"
@ -999,6 +1008,9 @@ msgstr "Sprachdateien"
msgid "Languagepath changed." msgid "Languagepath changed."
msgstr "Pfad geändert" msgstr "Pfad geändert"
msgid "Launching emulated nand channels only works on d2x cIOS! Change game IOS to a d2x cIOS first."
msgstr ""
msgid "Left" msgid "Left"
msgstr "Links" msgstr "Links"
@ -1081,7 +1093,7 @@ msgstr "HGM Wiederholung"
msgid "Music Volume" msgid "Music Volume"
msgstr "Musik Lautstärke" msgstr "Musik Lautstärke"
msgid "Nand Channel Emulation" msgid "Nand Channels"
msgstr "" msgstr ""
msgid "Nand Emu Channel Path" msgid "Nand Emu Channel Path"
@ -1303,6 +1315,9 @@ msgstr "Zufällig"
msgid "Reading WAD data... Ok!" msgid "Reading WAD data... Ok!"
msgstr "Lese WAD Daten... OK!" msgstr "Lese WAD Daten... OK!"
msgid "Real Nand"
msgstr ""
msgid "Receiving file from:" msgid "Receiving file from:"
msgstr "Empfange Datei von:" msgstr "Empfange Datei von:"
@ -1405,6 +1420,12 @@ msgstr "Wähle eine DOL vom Spiel"
msgid "Select game categories" msgid "Select game categories"
msgstr "Wähle Spiele-Kategorien" msgstr "Wähle Spiele-Kategorien"
msgid "Select loader mode"
msgstr ""
msgid "Select titles sources."
msgstr ""
msgid "Sept" msgid "Sept"
msgstr "September" msgstr "September"
@ -1701,6 +1722,9 @@ msgstr "Breitbildwert"
msgid "Widescreen Fix" msgid "Widescreen Fix"
msgstr "Breitbild (16:9)" msgstr "Breitbild (16:9)"
msgid "Wii Games"
msgstr ""
msgid "Wii Menu" msgid "Wii Menu"
msgstr "Wii Menü" msgstr "Wii Menü"

View File

@ -5,7 +5,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: USB Loader GX\n" "Project-Id-Version: USB Loader GX\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2011-12-20 21:54+0100\n" "POT-Creation-Date: 2011-12-22 23:25+0100\n"
"PO-Revision-Date: 2009-12-29 11:05+0100\n" "PO-Revision-Date: 2009-12-29 11:05+0100\n"
"Last-Translator: Springdale\n" "Last-Translator: Springdale\n"
"Language-Team: Tusk, Springdale\n" "Language-Team: Tusk, Springdale\n"
@ -247,6 +247,9 @@ msgstr ""
msgid "Block IOS Reload" msgid "Block IOS Reload"
msgstr "IOS újratöltés blokkolása" msgstr "IOS újratöltés blokkolása"
msgid "Block Loader Mode Button"
msgstr ""
msgid "Block Loader Settings" msgid "Block Loader Settings"
msgstr "" msgstr ""
@ -610,6 +613,12 @@ msgstr "HIBA:"
msgid "ERROR: Can't set up theme." msgid "ERROR: Can't set up theme."
msgstr "HIBA: Téma nem állítható be" msgstr "HIBA: Téma nem állítható be"
msgid "EmuNand Channels"
msgstr ""
msgid "Emulated Nand"
msgstr ""
msgid "English" msgid "English"
msgstr "Angol" msgstr "Angol"
@ -999,6 +1008,9 @@ msgstr ""
msgid "Languagepath changed." msgid "Languagepath changed."
msgstr "Nyelvek útvonala megváltozott." msgstr "Nyelvek útvonala megváltozott."
msgid "Launching emulated nand channels only works on d2x cIOS! Change game IOS to a d2x cIOS first."
msgstr ""
msgid "Left" msgid "Left"
msgstr "Balra" msgstr "Balra"
@ -1081,7 +1093,7 @@ msgstr ""
msgid "Music Volume" msgid "Music Volume"
msgstr "Zene Hangerõ" msgstr "Zene Hangerõ"
msgid "Nand Channel Emulation" msgid "Nand Channels"
msgstr "" msgstr ""
msgid "Nand Emu Channel Path" msgid "Nand Emu Channel Path"
@ -1303,6 +1315,9 @@ msgstr ""
msgid "Reading WAD data... Ok!" msgid "Reading WAD data... Ok!"
msgstr "WAD adat olvasás... Ok!" msgstr "WAD adat olvasás... Ok!"
msgid "Real Nand"
msgstr ""
msgid "Receiving file from:" msgid "Receiving file from:"
msgstr "Fájl fogadása innen:" msgstr "Fájl fogadása innen:"
@ -1405,6 +1420,12 @@ msgstr ""
msgid "Select game categories" msgid "Select game categories"
msgstr "" msgstr ""
msgid "Select loader mode"
msgstr ""
msgid "Select titles sources."
msgstr ""
msgid "Sept" msgid "Sept"
msgstr "Szep" msgstr "Szep"
@ -1701,6 +1722,9 @@ msgstr ""
msgid "Widescreen Fix" msgid "Widescreen Fix"
msgstr "Szélesvászon Fix" msgstr "Szélesvászon Fix"
msgid "Wii Games"
msgstr ""
msgid "Wii Menu" msgid "Wii Menu"
msgstr "Wii Menü" msgstr "Wii Menü"

View File

@ -5,7 +5,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: USB Loader GX\n" "Project-Id-Version: USB Loader GX\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2011-12-20 21:54+0100\n" "POT-Creation-Date: 2011-12-22 23:25+0100\n"
"PO-Revision-Date: 2011-09-11 12:19+0100\n" "PO-Revision-Date: 2011-09-11 12:19+0100\n"
"Last-Translator: xFede\n" "Last-Translator: xFede\n"
"Language-Team: Cambo\n" "Language-Team: Cambo\n"
@ -247,6 +247,9 @@ msgstr "Blocca Impost. Disco Rigido"
msgid "Block IOS Reload" msgid "Block IOS Reload"
msgstr "Blocca Ricarica IOS" msgstr "Blocca Ricarica IOS"
msgid "Block Loader Mode Button"
msgstr ""
msgid "Block Loader Settings" msgid "Block Loader Settings"
msgstr "Blocca Impost. Loader" msgstr "Blocca Impost. Loader"
@ -610,6 +613,12 @@ msgstr "ERRORE:"
msgid "ERROR: Can't set up theme." msgid "ERROR: Can't set up theme."
msgstr "ERRORE: Impossibile configurare il tema." msgstr "ERRORE: Impossibile configurare il tema."
msgid "EmuNand Channels"
msgstr ""
msgid "Emulated Nand"
msgstr ""
msgid "English" msgid "English"
msgstr "Inglese" msgstr "Inglese"
@ -999,6 +1008,9 @@ msgstr "Percorso File di Lingua"
msgid "Languagepath changed." msgid "Languagepath changed."
msgstr "Percorso dei File di Lingua cambiato." msgstr "Percorso dei File di Lingua cambiato."
msgid "Launching emulated nand channels only works on d2x cIOS! Change game IOS to a d2x cIOS first."
msgstr ""
msgid "Left" msgid "Left"
msgstr "Sinistra" msgstr "Sinistra"
@ -1081,8 +1093,8 @@ msgstr "Ripeti Musica Sottof."
msgid "Music Volume" msgid "Music Volume"
msgstr "Volume Musica" msgstr "Volume Musica"
msgid "Nand Channel Emulation" msgid "Nand Channels"
msgstr "Emulazione Canali" msgstr ""
msgid "Nand Emu Channel Path" msgid "Nand Emu Channel Path"
msgstr "Percorso Emulazione Canali " msgstr "Percorso Emulazione Canali "
@ -1303,6 +1315,9 @@ msgstr "Riproduci brani in ordine casuale"
msgid "Reading WAD data... Ok!" msgid "Reading WAD data... Ok!"
msgstr "Leggendo dati WAD... OK!" msgstr "Leggendo dati WAD... OK!"
msgid "Real Nand"
msgstr ""
msgid "Receiving file from:" msgid "Receiving file from:"
msgstr "Ricevendo file da:" msgstr "Ricevendo file da:"
@ -1405,6 +1420,12 @@ msgstr "Seleziona un DOL dal Gioco"
msgid "Select game categories" msgid "Select game categories"
msgstr "Seleziona Categorie Giochi" msgstr "Seleziona Categorie Giochi"
msgid "Select loader mode"
msgstr ""
msgid "Select titles sources."
msgstr ""
msgid "Sept" msgid "Sept"
msgstr "Settembre" msgstr "Settembre"
@ -1701,6 +1722,9 @@ msgstr "Fattore Widescreen"
msgid "Widescreen Fix" msgid "Widescreen Fix"
msgstr "Corr. Widescreen" msgstr "Corr. Widescreen"
msgid "Wii Games"
msgstr ""
msgid "Wii Menu" msgid "Wii Menu"
msgstr "Menu Wii" msgstr "Menu Wii"
@ -1803,6 +1827,9 @@ msgstr "di"
msgid "seconds left" msgid "seconds left"
msgstr "secondi rimanenti" msgstr "secondi rimanenti"
#~ msgid "Nand Channel Emulation"
#~ msgstr "Emulazione Canali"
#~ msgid "New Disc Detected" #~ msgid "New Disc Detected"
#~ msgstr "Rilevato un nuovo disco" #~ msgstr "Rilevato un nuovo disco"

View File

@ -5,7 +5,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: USB Loader GX\n" "Project-Id-Version: USB Loader GX\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2011-12-20 21:54+0100\n" "POT-Creation-Date: 2011-12-22 23:25+0100\n"
"PO-Revision-Date: 2009-10-01 01:00+0200\n" "PO-Revision-Date: 2009-10-01 01:00+0200\n"
"Last-Translator: hosigumayuugi\n" "Last-Translator: hosigumayuugi\n"
"Language-Team: hosigumayuugi\n" "Language-Team: hosigumayuugi\n"
@ -247,6 +247,9 @@ msgstr "HDD設定を制限"
msgid "Block IOS Reload" msgid "Block IOS Reload"
msgstr "IOS再読み込み防止" msgstr "IOS再読み込み防止"
msgid "Block Loader Mode Button"
msgstr ""
msgid "Block Loader Settings" msgid "Block Loader Settings"
msgstr "ローダーの設定を制限" msgstr "ローダーの設定を制限"
@ -610,6 +613,12 @@ msgstr "エラー:"
msgid "ERROR: Can't set up theme." msgid "ERROR: Can't set up theme."
msgstr "テーマを適用できませんでした" msgstr "テーマを適用できませんでした"
msgid "EmuNand Channels"
msgstr ""
msgid "Emulated Nand"
msgstr ""
msgid "English" msgid "English"
msgstr "英語" msgstr "英語"
@ -999,6 +1008,9 @@ msgstr "言語ファイル"
msgid "Languagepath changed." msgid "Languagepath changed."
msgstr "言語のパスを変更しました" msgstr "言語のパスを変更しました"
msgid "Launching emulated nand channels only works on d2x cIOS! Change game IOS to a d2x cIOS first."
msgstr ""
msgid "Left" msgid "Left"
msgstr "左ボタンで" msgstr "左ボタンで"
@ -1081,8 +1093,8 @@ msgstr "ループ機能"
msgid "Music Volume" msgid "Music Volume"
msgstr "BGMの音量" msgstr "BGMの音量"
msgid "Nand Channel Emulation" msgid "Nand Channels"
msgstr "NANDチャンネルエミュ" msgstr ""
msgid "Nand Emu Channel Path" msgid "Nand Emu Channel Path"
msgstr "NANDエミュチャンネル" msgstr "NANDエミュチャンネル"
@ -1303,6 +1315,9 @@ msgstr "フォルダ内でランダム再生"
msgid "Reading WAD data... Ok!" msgid "Reading WAD data... Ok!"
msgstr "WADデータの読み込み...成功!" msgstr "WADデータの読み込み...成功!"
msgid "Real Nand"
msgstr ""
msgid "Receiving file from:" msgid "Receiving file from:"
msgstr "ファイルを受信中:" msgstr "ファイルを受信中:"
@ -1405,6 +1420,12 @@ msgstr "ゲームからDOLを選択"
msgid "Select game categories" msgid "Select game categories"
msgstr "ゲームカテゴリを選択" msgstr "ゲームカテゴリを選択"
msgid "Select loader mode"
msgstr ""
msgid "Select titles sources."
msgstr ""
msgid "Sept" msgid "Sept"
msgstr "9月" msgstr "9月"
@ -1701,6 +1722,9 @@ msgstr "ワイド画面の補正率"
msgid "Widescreen Fix" msgid "Widescreen Fix"
msgstr "普通" msgstr "普通"
msgid "Wii Games"
msgstr ""
msgid "Wii Menu" msgid "Wii Menu"
msgstr "Wiiメニューへ" msgstr "Wiiメニューへ"
@ -1803,6 +1827,9 @@ msgstr "中"
msgid "seconds left" msgid "seconds left"
msgstr "秒で完了" msgstr "秒で完了"
#~ msgid "Nand Channel Emulation"
#~ msgstr "NANDチャンネルエミュ"
#~ msgid "New Disc Detected" #~ msgid "New Disc Detected"
#~ msgstr "新しいディスクが検出されました" #~ msgstr "新しいディスクが検出されました"

View File

@ -5,7 +5,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: USB Loader GX\n" "Project-Id-Version: USB Loader GX\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2011-12-20 21:54+0100\n" "POT-Creation-Date: 2011-12-22 23:25+0100\n"
"PO-Revision-Date: 2009-10-01 01:00+0200\n" "PO-Revision-Date: 2009-10-01 01:00+0200\n"
"Last-Translator: nextos@korea.com\n" "Last-Translator: nextos@korea.com\n"
"Language-Team: \n" "Language-Team: \n"
@ -247,6 +247,9 @@ msgstr ""
msgid "Block IOS Reload" msgid "Block IOS Reload"
msgstr "IOS 재로딩 막음" msgstr "IOS 재로딩 막음"
msgid "Block Loader Mode Button"
msgstr ""
msgid "Block Loader Settings" msgid "Block Loader Settings"
msgstr "" msgstr ""
@ -610,6 +613,12 @@ msgstr "에러:"
msgid "ERROR: Can't set up theme." msgid "ERROR: Can't set up theme."
msgstr "" msgstr ""
msgid "EmuNand Channels"
msgstr ""
msgid "Emulated Nand"
msgstr ""
msgid "English" msgid "English"
msgstr "영어" msgstr "영어"
@ -999,6 +1008,9 @@ msgstr ""
msgid "Languagepath changed." msgid "Languagepath changed."
msgstr "언어경로 변경됨." msgstr "언어경로 변경됨."
msgid "Launching emulated nand channels only works on d2x cIOS! Change game IOS to a d2x cIOS first."
msgstr ""
msgid "Left" msgid "Left"
msgstr "왼쪽" msgstr "왼쪽"
@ -1081,7 +1093,7 @@ msgstr ""
msgid "Music Volume" msgid "Music Volume"
msgstr "음량" msgstr "음량"
msgid "Nand Channel Emulation" msgid "Nand Channels"
msgstr "" msgstr ""
msgid "Nand Emu Channel Path" msgid "Nand Emu Channel Path"
@ -1303,6 +1315,9 @@ msgstr ""
msgid "Reading WAD data... Ok!" msgid "Reading WAD data... Ok!"
msgstr "WAD 데이터 읽기... 성공!" msgstr "WAD 데이터 읽기... 성공!"
msgid "Real Nand"
msgstr ""
msgid "Receiving file from:" msgid "Receiving file from:"
msgstr "파일 추출 :" msgstr "파일 추출 :"
@ -1405,6 +1420,12 @@ msgstr ""
msgid "Select game categories" msgid "Select game categories"
msgstr "" msgstr ""
msgid "Select loader mode"
msgstr ""
msgid "Select titles sources."
msgstr ""
msgid "Sept" msgid "Sept"
msgstr "9월" msgstr "9월"
@ -1701,6 +1722,9 @@ msgstr ""
msgid "Widescreen Fix" msgid "Widescreen Fix"
msgstr "와이드 스크린에 맞춤" msgstr "와이드 스크린에 맞춤"
msgid "Wii Games"
msgstr ""
msgid "Wii Menu" msgid "Wii Menu"
msgstr "Wii 메뉴로" msgstr "Wii 메뉴로"

View File

@ -5,7 +5,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: USB Loader GX\n" "Project-Id-Version: USB Loader GX\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2011-12-20 21:54+0100\n" "POT-Creation-Date: 2011-12-22 23:25+0100\n"
"PO-Revision-Date: 2009-10-01 01:00+0200\n" "PO-Revision-Date: 2009-10-01 01:00+0200\n"
"Last-Translator: raschi\n" "Last-Translator: raschi\n"
"Language-Team: raschi\n" "Language-Team: raschi\n"
@ -247,6 +247,9 @@ msgstr "Blokkér harddisk innstillinger"
msgid "Block IOS Reload" msgid "Block IOS Reload"
msgstr "Blokkér IOS Reload" msgstr "Blokkér IOS Reload"
msgid "Block Loader Mode Button"
msgstr ""
msgid "Block Loader Settings" msgid "Block Loader Settings"
msgstr "Blokkér loader innstillinger" msgstr "Blokkér loader innstillinger"
@ -610,6 +613,12 @@ msgstr "FEIL:"
msgid "ERROR: Can't set up theme." msgid "ERROR: Can't set up theme."
msgstr "FEIL: Kan ikke laste tema." msgstr "FEIL: Kan ikke laste tema."
msgid "EmuNand Channels"
msgstr ""
msgid "Emulated Nand"
msgstr ""
msgid "English" msgid "English"
msgstr "Engelsk" msgstr "Engelsk"
@ -999,6 +1008,9 @@ msgstr "Språkfil sti"
msgid "Languagepath changed." msgid "Languagepath changed."
msgstr "Språksti endret." msgstr "Språksti endret."
msgid "Launching emulated nand channels only works on d2x cIOS! Change game IOS to a d2x cIOS first."
msgstr ""
msgid "Left" msgid "Left"
msgstr "Venstre" msgstr "Venstre"
@ -1081,7 +1093,7 @@ msgstr "Musikk loop modus"
msgid "Music Volume" msgid "Music Volume"
msgstr "Musikk volum" msgstr "Musikk volum"
msgid "Nand Channel Emulation" msgid "Nand Channels"
msgstr "" msgstr ""
msgid "Nand Emu Channel Path" msgid "Nand Emu Channel Path"
@ -1303,6 +1315,9 @@ msgstr "Tilfeldig musikk fra mappe"
msgid "Reading WAD data... Ok!" msgid "Reading WAD data... Ok!"
msgstr "Leser WAD data... OK!" msgstr "Leser WAD data... OK!"
msgid "Real Nand"
msgstr ""
msgid "Receiving file from:" msgid "Receiving file from:"
msgstr "Mottar fil fra:" msgstr "Mottar fil fra:"
@ -1405,6 +1420,12 @@ msgstr "Velg en DOL fra spill"
msgid "Select game categories" msgid "Select game categories"
msgstr "Velg spillkategorier" msgstr "Velg spillkategorier"
msgid "Select loader mode"
msgstr ""
msgid "Select titles sources."
msgstr ""
msgid "Sept" msgid "Sept"
msgstr "Sep" msgstr "Sep"
@ -1701,6 +1722,9 @@ msgstr "Widescreen faktor"
msgid "Widescreen Fix" msgid "Widescreen Fix"
msgstr "Widescreen fiks" msgstr "Widescreen fiks"
msgid "Wii Games"
msgstr ""
msgid "Wii Menu" msgid "Wii Menu"
msgstr "Wii Meny" msgstr "Wii Meny"

View File

@ -5,7 +5,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: USB Loader GX\n" "Project-Id-Version: USB Loader GX\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2011-12-20 21:54+0100\n" "POT-Creation-Date: 2011-12-22 23:25+0100\n"
"PO-Revision-Date: 2009-10-01 01:00+0200\n" "PO-Revision-Date: 2009-10-01 01:00+0200\n"
"Last-Translator: ziom666 (zadania_prog@vp.pl)\n" "Last-Translator: ziom666 (zadania_prog@vp.pl)\n"
"Language-Team: \n" "Language-Team: \n"
@ -247,6 +247,9 @@ msgstr ""
msgid "Block IOS Reload" msgid "Block IOS Reload"
msgstr "Blokoj przeladowanie IOS" msgstr "Blokoj przeladowanie IOS"
msgid "Block Loader Mode Button"
msgstr ""
msgid "Block Loader Settings" msgid "Block Loader Settings"
msgstr "" msgstr ""
@ -610,6 +613,12 @@ msgstr "Blad:"
msgid "ERROR: Can't set up theme." msgid "ERROR: Can't set up theme."
msgstr "Blad: nie mozna ustawic tematu" msgstr "Blad: nie mozna ustawic tematu"
msgid "EmuNand Channels"
msgstr ""
msgid "Emulated Nand"
msgstr ""
msgid "English" msgid "English"
msgstr "angielski" msgstr "angielski"
@ -999,6 +1008,9 @@ msgstr ""
msgid "Languagepath changed." msgid "Languagepath changed."
msgstr "Sciezka do plikow jezykowych zmieniona" msgstr "Sciezka do plikow jezykowych zmieniona"
msgid "Launching emulated nand channels only works on d2x cIOS! Change game IOS to a d2x cIOS first."
msgstr ""
msgid "Left" msgid "Left"
msgstr "Lewo" msgstr "Lewo"
@ -1081,7 +1093,7 @@ msgstr ""
msgid "Music Volume" msgid "Music Volume"
msgstr "Poziom glosnosci" msgstr "Poziom glosnosci"
msgid "Nand Channel Emulation" msgid "Nand Channels"
msgstr "" msgstr ""
msgid "Nand Emu Channel Path" msgid "Nand Emu Channel Path"
@ -1303,6 +1315,9 @@ msgstr ""
msgid "Reading WAD data... Ok!" msgid "Reading WAD data... Ok!"
msgstr "Odczyt danych WAD...Ok!" msgstr "Odczyt danych WAD...Ok!"
msgid "Real Nand"
msgstr ""
msgid "Receiving file from:" msgid "Receiving file from:"
msgstr "Otrzymywanie pliku z:" msgstr "Otrzymywanie pliku z:"
@ -1405,6 +1420,12 @@ msgstr ""
msgid "Select game categories" msgid "Select game categories"
msgstr "" msgstr ""
msgid "Select loader mode"
msgstr ""
msgid "Select titles sources."
msgstr ""
msgid "Sept" msgid "Sept"
msgstr "Wrzesien" msgstr "Wrzesien"
@ -1701,6 +1722,9 @@ msgstr ""
msgid "Widescreen Fix" msgid "Widescreen Fix"
msgstr "Popraw ekran panoramiczny" msgstr "Popraw ekran panoramiczny"
msgid "Wii Games"
msgstr ""
msgid "Wii Menu" msgid "Wii Menu"
msgstr "" msgstr ""

View File

@ -5,7 +5,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: USB Loader GX\n" "Project-Id-Version: USB Loader GX\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2011-12-20 21:54+0100\n" "POT-Creation-Date: 2011-12-22 23:25+0100\n"
"PO-Revision-Date: 2009-10-23 18:52+0200\n" "PO-Revision-Date: 2009-10-23 18:52+0200\n"
"Last-Translator: aniemotion\n" "Last-Translator: aniemotion\n"
"Language-Team: boto12, aniemotion\n" "Language-Team: boto12, aniemotion\n"
@ -247,6 +247,9 @@ msgstr "Bloquear configuração do HD"
msgid "Block IOS Reload" msgid "Block IOS Reload"
msgstr "Bloquear reload do IOS" msgstr "Bloquear reload do IOS"
msgid "Block Loader Mode Button"
msgstr ""
msgid "Block Loader Settings" msgid "Block Loader Settings"
msgstr "Bloquear configuração do carregador" msgstr "Bloquear configuração do carregador"
@ -610,6 +613,12 @@ msgstr "ERRO:"
msgid "ERROR: Can't set up theme." msgid "ERROR: Can't set up theme."
msgstr "ERRO: Impossível aplicar tema" msgstr "ERRO: Impossível aplicar tema"
msgid "EmuNand Channels"
msgstr ""
msgid "Emulated Nand"
msgstr ""
msgid "English" msgid "English"
msgstr "Inglês" msgstr "Inglês"
@ -999,6 +1008,9 @@ msgstr ""
msgid "Languagepath changed." msgid "Languagepath changed."
msgstr "Caminho para o arquivo de Idioma alterado." msgstr "Caminho para o arquivo de Idioma alterado."
msgid "Launching emulated nand channels only works on d2x cIOS! Change game IOS to a d2x cIOS first."
msgstr ""
msgid "Left" msgid "Left"
msgstr "Esquerda" msgstr "Esquerda"
@ -1081,7 +1093,7 @@ msgstr "Modo Repetição de Música"
msgid "Music Volume" msgid "Music Volume"
msgstr "Volume da Música" msgstr "Volume da Música"
msgid "Nand Channel Emulation" msgid "Nand Channels"
msgstr "" msgstr ""
msgid "Nand Emu Channel Path" msgid "Nand Emu Channel Path"
@ -1303,6 +1315,9 @@ msgstr "Diretótio Aleatório de Músicas"
msgid "Reading WAD data... Ok!" msgid "Reading WAD data... Ok!"
msgstr "Lendo dados do WAD... Ok!" msgstr "Lendo dados do WAD... Ok!"
msgid "Real Nand"
msgstr ""
msgid "Receiving file from:" msgid "Receiving file from:"
msgstr "Recebendo arquivo de:" msgstr "Recebendo arquivo de:"
@ -1405,6 +1420,12 @@ msgstr ""
msgid "Select game categories" msgid "Select game categories"
msgstr "" msgstr ""
msgid "Select loader mode"
msgstr ""
msgid "Select titles sources."
msgstr ""
msgid "Sept" msgid "Sept"
msgstr "Set" msgstr "Set"
@ -1701,6 +1722,9 @@ msgstr ""
msgid "Widescreen Fix" msgid "Widescreen Fix"
msgstr "Correção 16:9" msgstr "Correção 16:9"
msgid "Wii Games"
msgstr ""
msgid "Wii Menu" msgid "Wii Menu"
msgstr "Menu do Wii" msgstr "Menu do Wii"

View File

@ -5,7 +5,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: USB Loader GX\n" "Project-Id-Version: USB Loader GX\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2011-12-20 21:54+0100\n" "POT-Creation-Date: 2011-12-22 23:25+0100\n"
"PO-Revision-Date: 2011-11-03 11:00+0000\n" "PO-Revision-Date: 2011-11-03 11:00+0000\n"
"Last-Translator: pplucky <pplucky@gmail.com>\n" "Last-Translator: pplucky <pplucky@gmail.com>\n"
"Language-Team: Sky8000, pplucky\n" "Language-Team: Sky8000, pplucky\n"
@ -247,6 +247,9 @@ msgstr "Bloquear Def. Disco Rígido"
msgid "Block IOS Reload" msgid "Block IOS Reload"
msgstr "Bloquear Reload do IOS" msgstr "Bloquear Reload do IOS"
msgid "Block Loader Mode Button"
msgstr ""
msgid "Block Loader Settings" msgid "Block Loader Settings"
msgstr "Bloquear Def. Loader" msgstr "Bloquear Def. Loader"
@ -610,6 +613,12 @@ msgstr "ERRO:"
msgid "ERROR: Can't set up theme." msgid "ERROR: Can't set up theme."
msgstr "ERRO: Impossível configurar tema." msgstr "ERRO: Impossível configurar tema."
msgid "EmuNand Channels"
msgstr ""
msgid "Emulated Nand"
msgstr ""
msgid "English" msgid "English"
msgstr "Inglês" msgstr "Inglês"
@ -999,6 +1008,9 @@ msgstr "Cam. ficheiros Idioma"
msgid "Languagepath changed." msgid "Languagepath changed."
msgstr "Caminho para o ficheiro de Idioma alterado." msgstr "Caminho para o ficheiro de Idioma alterado."
msgid "Launching emulated nand channels only works on d2x cIOS! Change game IOS to a d2x cIOS first."
msgstr ""
msgid "Left" msgid "Left"
msgstr "Esquerda" msgstr "Esquerda"
@ -1081,7 +1093,7 @@ msgstr "Modo de Repetição"
msgid "Music Volume" msgid "Music Volume"
msgstr "Volume Música" msgstr "Volume Música"
msgid "Nand Channel Emulation" msgid "Nand Channels"
msgstr "" msgstr ""
msgid "Nand Emu Channel Path" msgid "Nand Emu Channel Path"
@ -1303,6 +1315,9 @@ msgstr "Pasta de Música Aleatória"
msgid "Reading WAD data... Ok!" msgid "Reading WAD data... Ok!"
msgstr "A ler dados do WAD... Ok!" msgstr "A ler dados do WAD... Ok!"
msgid "Real Nand"
msgstr ""
msgid "Receiving file from:" msgid "Receiving file from:"
msgstr "A receber ficheiro de:" msgstr "A receber ficheiro de:"
@ -1405,6 +1420,12 @@ msgstr "Seleccionar um DOL do Jogo"
msgid "Select game categories" msgid "Select game categories"
msgstr "Seleccionar categorias de jogos" msgstr "Seleccionar categorias de jogos"
msgid "Select loader mode"
msgstr ""
msgid "Select titles sources."
msgstr ""
msgid "Sept" msgid "Sept"
msgstr "Set" msgstr "Set"
@ -1701,6 +1722,9 @@ msgstr "Factor Ecrã Panorâmico"
msgid "Widescreen Fix" msgid "Widescreen Fix"
msgstr "Correcção 16:9" msgstr "Correcção 16:9"
msgid "Wii Games"
msgstr ""
msgid "Wii Menu" msgid "Wii Menu"
msgstr "Menu Wii" msgstr "Menu Wii"

View File

@ -5,7 +5,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: USB Loader GX\n" "Project-Id-Version: USB Loader GX\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2011-12-20 21:54+0100\n" "POT-Creation-Date: 2011-12-22 23:25+0100\n"
"PO-Revision-Date: 2009-10-01 01:00+0200\n" "PO-Revision-Date: 2009-10-01 01:00+0200\n"
"Last-Translator: nikolai_ca\n" "Last-Translator: nikolai_ca\n"
"Language-Team: Kir, alendit, nikolai_ca\n" "Language-Team: Kir, alendit, nikolai_ca\n"
@ -247,6 +247,9 @@ msgstr ""
msgid "Block IOS Reload" msgid "Block IOS Reload"
msgstr "Блокировать перезагрузку IOS" msgstr "Блокировать перезагрузку IOS"
msgid "Block Loader Mode Button"
msgstr ""
msgid "Block Loader Settings" msgid "Block Loader Settings"
msgstr "" msgstr ""
@ -610,6 +613,12 @@ msgstr "ОШИБКА:"
msgid "ERROR: Can't set up theme." msgid "ERROR: Can't set up theme."
msgstr "ОШИБКА: Не удалось установить тему." msgstr "ОШИБКА: Не удалось установить тему."
msgid "EmuNand Channels"
msgstr ""
msgid "Emulated Nand"
msgstr ""
msgid "English" msgid "English"
msgstr "Английский" msgstr "Английский"
@ -999,6 +1008,9 @@ msgstr ""
msgid "Languagepath changed." msgid "Languagepath changed."
msgstr "Путь к языкам изменен" msgstr "Путь к языкам изменен"
msgid "Launching emulated nand channels only works on d2x cIOS! Change game IOS to a d2x cIOS first."
msgstr ""
msgid "Left" msgid "Left"
msgstr "Налево" msgstr "Налево"
@ -1081,7 +1093,7 @@ msgstr ""
msgid "Music Volume" msgid "Music Volume"
msgstr "Громкость" msgstr "Громкость"
msgid "Nand Channel Emulation" msgid "Nand Channels"
msgstr "" msgstr ""
msgid "Nand Emu Channel Path" msgid "Nand Emu Channel Path"
@ -1303,6 +1315,9 @@ msgstr ""
msgid "Reading WAD data... Ok!" msgid "Reading WAD data... Ok!"
msgstr "Чтение данных WAD... ОК!" msgstr "Чтение данных WAD... ОК!"
msgid "Real Nand"
msgstr ""
msgid "Receiving file from:" msgid "Receiving file from:"
msgstr "Получение файлы из:" msgstr "Получение файлы из:"
@ -1405,6 +1420,12 @@ msgstr ""
msgid "Select game categories" msgid "Select game categories"
msgstr "" msgstr ""
msgid "Select loader mode"
msgstr ""
msgid "Select titles sources."
msgstr ""
msgid "Sept" msgid "Sept"
msgstr "Сен" msgstr "Сен"
@ -1701,6 +1722,9 @@ msgstr ""
msgid "Widescreen Fix" msgid "Widescreen Fix"
msgstr "Широкоформатный фикс" msgstr "Широкоформатный фикс"
msgid "Wii Games"
msgstr ""
msgid "Wii Menu" msgid "Wii Menu"
msgstr "Меню Wii" msgstr "Меню Wii"

View File

@ -5,7 +5,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: USB Loader GX\n" "Project-Id-Version: USB Loader GX\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2011-12-20 21:54+0100\n" "POT-Creation-Date: 2011-12-22 23:25+0100\n"
"PO-Revision-Date: 2009-10-01 01:00+0200\n" "PO-Revision-Date: 2009-10-01 01:00+0200\n"
"Last-Translator: knife.hu kavid emul8ion\n" "Last-Translator: knife.hu kavid emul8ion\n"
"Language-Team: kavid\n" "Language-Team: kavid\n"
@ -247,6 +247,9 @@ msgstr ""
msgid "Block IOS Reload" msgid "Block IOS Reload"
msgstr "阻止IOS重新载入" msgstr "阻止IOS重新载入"
msgid "Block Loader Mode Button"
msgstr ""
msgid "Block Loader Settings" msgid "Block Loader Settings"
msgstr "Loader设置" msgstr "Loader设置"
@ -610,6 +613,12 @@ msgstr "错误:"
msgid "ERROR: Can't set up theme." msgid "ERROR: Can't set up theme."
msgstr "错误: 无法设置主题." msgstr "错误: 无法设置主题."
msgid "EmuNand Channels"
msgstr ""
msgid "Emulated Nand"
msgstr ""
msgid "English" msgid "English"
msgstr "英文" msgstr "英文"
@ -999,6 +1008,9 @@ msgstr "语言文件路径"
msgid "Languagepath changed." msgid "Languagepath changed."
msgstr "语言文件路径已变更" msgstr "语言文件路径已变更"
msgid "Launching emulated nand channels only works on d2x cIOS! Change game IOS to a d2x cIOS first."
msgstr ""
msgid "Left" msgid "Left"
msgstr "左" msgstr "左"
@ -1081,7 +1093,7 @@ msgstr "音乐循环模式"
msgid "Music Volume" msgid "Music Volume"
msgstr "音量" msgstr "音量"
msgid "Nand Channel Emulation" msgid "Nand Channels"
msgstr "" msgstr ""
msgid "Nand Emu Channel Path" msgid "Nand Emu Channel Path"
@ -1303,6 +1315,9 @@ msgstr "随机目录音乐"
msgid "Reading WAD data... Ok!" msgid "Reading WAD data... Ok!"
msgstr "读取 WAD 数据... 完成!" msgstr "读取 WAD 数据... 完成!"
msgid "Real Nand"
msgstr ""
msgid "Receiving file from:" msgid "Receiving file from:"
msgstr "接收文件:" msgstr "接收文件:"
@ -1405,6 +1420,12 @@ msgstr "从游戏选择DOL"
msgid "Select game categories" msgid "Select game categories"
msgstr "" msgstr ""
msgid "Select loader mode"
msgstr ""
msgid "Select titles sources."
msgstr ""
msgid "Sept" msgid "Sept"
msgstr "九月" msgstr "九月"
@ -1701,6 +1722,9 @@ msgstr "宽屏因数"
msgid "Widescreen Fix" msgid "Widescreen Fix"
msgstr "宽屏校正" msgstr "宽屏校正"
msgid "Wii Games"
msgstr ""
msgid "Wii Menu" msgid "Wii Menu"
msgstr "Wii 系统菜单" msgstr "Wii 系统菜单"

View File

@ -5,7 +5,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: USB Loader GX\n" "Project-Id-Version: USB Loader GX\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2011-12-20 21:54+0100\n" "POT-Creation-Date: 2011-12-22 23:25+0100\n"
"PO-Revision-Date: 2011-07-25 16:40+0200\n" "PO-Revision-Date: 2011-07-25 16:40+0200\n"
"Last-Translator: Galen/xFede\n" "Last-Translator: Galen/xFede\n"
"Language-Team: Penn, SirPalax, hvy109\n" "Language-Team: Penn, SirPalax, hvy109\n"
@ -247,6 +247,9 @@ msgstr "Bloq. Config. Disco Duro"
msgid "Block IOS Reload" msgid "Block IOS Reload"
msgstr "Impedir recarga IOS" msgstr "Impedir recarga IOS"
msgid "Block Loader Mode Button"
msgstr ""
msgid "Block Loader Settings" msgid "Block Loader Settings"
msgstr "Bloq. Config. Cargador" msgstr "Bloq. Config. Cargador"
@ -610,6 +613,12 @@ msgstr ""
msgid "ERROR: Can't set up theme." msgid "ERROR: Can't set up theme."
msgstr "ERROR: No se puede configurar el tema." msgstr "ERROR: No se puede configurar el tema."
msgid "EmuNand Channels"
msgstr ""
msgid "Emulated Nand"
msgstr ""
msgid "English" msgid "English"
msgstr "Inglés" msgstr "Inglés"
@ -999,6 +1008,9 @@ msgstr "Ruta Archivos Idioma"
msgid "Languagepath changed." msgid "Languagepath changed."
msgstr "Ruta de idioma cambiada." msgstr "Ruta de idioma cambiada."
msgid "Launching emulated nand channels only works on d2x cIOS! Change game IOS to a d2x cIOS first."
msgstr ""
msgid "Left" msgid "Left"
msgstr "Izquierda" msgstr "Izquierda"
@ -1081,7 +1093,7 @@ msgstr "Modo Bucle Musical"
msgid "Music Volume" msgid "Music Volume"
msgstr "Volumen de la Música" msgstr "Volumen de la Música"
msgid "Nand Channel Emulation" msgid "Nand Channels"
msgstr "" msgstr ""
msgid "Nand Emu Channel Path" msgid "Nand Emu Channel Path"
@ -1303,6 +1315,9 @@ msgstr "Aleatorio de la carpeta musical"
msgid "Reading WAD data... Ok!" msgid "Reading WAD data... Ok!"
msgstr "Leyendo datos del WAD... ¡Correcto!" msgstr "Leyendo datos del WAD... ¡Correcto!"
msgid "Real Nand"
msgstr ""
msgid "Receiving file from:" msgid "Receiving file from:"
msgstr "Recibir archivo desde:" msgstr "Recibir archivo desde:"
@ -1405,6 +1420,12 @@ msgstr "Seleccionar DOL del Juego"
msgid "Select game categories" msgid "Select game categories"
msgstr "Seleccionar categorías de juegos" msgstr "Seleccionar categorías de juegos"
msgid "Select loader mode"
msgstr ""
msgid "Select titles sources."
msgstr ""
msgid "Sept" msgid "Sept"
msgstr "" msgstr ""
@ -1701,6 +1722,9 @@ msgstr "Factor Panorámico"
msgid "Widescreen Fix" msgid "Widescreen Fix"
msgstr "Ajuste panorámico" msgstr "Ajuste panorámico"
msgid "Wii Games"
msgstr ""
msgid "Wii Menu" msgid "Wii Menu"
msgstr "Menú de Wii" msgstr "Menú de Wii"

View File

@ -5,7 +5,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: USB Loader GX\n" "Project-Id-Version: USB Loader GX\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2011-12-20 21:54+0100\n" "POT-Creation-Date: 2011-12-22 23:25+0100\n"
"PO-Revision-Date: 2010-01-19 17:39+0200\n" "PO-Revision-Date: 2010-01-19 17:39+0200\n"
"Last-Translator: Katsurou\n" "Last-Translator: Katsurou\n"
"Language-Team: Katsurou, pirateX\n" "Language-Team: Katsurou, pirateX\n"
@ -247,6 +247,9 @@ msgstr ""
msgid "Block IOS Reload" msgid "Block IOS Reload"
msgstr "Blockera IOS omladdning" msgstr "Blockera IOS omladdning"
msgid "Block Loader Mode Button"
msgstr ""
msgid "Block Loader Settings" msgid "Block Loader Settings"
msgstr "" msgstr ""
@ -610,6 +613,12 @@ msgstr "FEL:"
msgid "ERROR: Can't set up theme." msgid "ERROR: Can't set up theme."
msgstr "FEL: Kan inte ställa in tema" msgstr "FEL: Kan inte ställa in tema"
msgid "EmuNand Channels"
msgstr ""
msgid "Emulated Nand"
msgstr ""
msgid "English" msgid "English"
msgstr "Engelska" msgstr "Engelska"
@ -999,6 +1008,9 @@ msgstr ""
msgid "Languagepath changed." msgid "Languagepath changed."
msgstr "Sökväg till språk ändrad" msgstr "Sökväg till språk ändrad"
msgid "Launching emulated nand channels only works on d2x cIOS! Change game IOS to a d2x cIOS first."
msgstr ""
msgid "Left" msgid "Left"
msgstr "Vänster" msgstr "Vänster"
@ -1081,7 +1093,7 @@ msgstr "Musik Återuppspelningsläge"
msgid "Music Volume" msgid "Music Volume"
msgstr "Volym" msgstr "Volym"
msgid "Nand Channel Emulation" msgid "Nand Channels"
msgstr "" msgstr ""
msgid "Nand Emu Channel Path" msgid "Nand Emu Channel Path"
@ -1303,6 +1315,9 @@ msgstr ""
msgid "Reading WAD data... Ok!" msgid "Reading WAD data... Ok!"
msgstr "Läser WAD data... Ok!" msgstr "Läser WAD data... Ok!"
msgid "Real Nand"
msgstr ""
msgid "Receiving file from:" msgid "Receiving file from:"
msgstr "Tar emot filer från:" msgstr "Tar emot filer från:"
@ -1405,6 +1420,12 @@ msgstr ""
msgid "Select game categories" msgid "Select game categories"
msgstr "" msgstr ""
msgid "Select loader mode"
msgstr ""
msgid "Select titles sources."
msgstr ""
msgid "Sept" msgid "Sept"
msgstr "" msgstr ""
@ -1701,6 +1722,9 @@ msgstr ""
msgid "Widescreen Fix" msgid "Widescreen Fix"
msgstr "Bredbild 16/9 Fix" msgstr "Bredbild 16/9 Fix"
msgid "Wii Games"
msgstr ""
msgid "Wii Menu" msgid "Wii Menu"
msgstr "Wii-meny" msgstr "Wii-meny"

View File

@ -5,7 +5,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: USB Loader GX\n" "Project-Id-Version: USB Loader GX\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2011-12-20 21:54+0100\n" "POT-Creation-Date: 2011-12-22 23:25+0100\n"
"PO-Revision-Date: 2010-02-15 21:00+0800\n" "PO-Revision-Date: 2010-02-15 21:00+0800\n"
"Last-Translator: Jane.H\n" "Last-Translator: Jane.H\n"
"Language-Team: kyogc, Miller, Mika Li, Jane.H\n" "Language-Team: kyogc, Miller, Mika Li, Jane.H\n"
@ -247,6 +247,9 @@ msgstr "封鎖硬碟設定"
msgid "Block IOS Reload" msgid "Block IOS Reload"
msgstr "封鎖 IOS 重新載入" msgstr "封鎖 IOS 重新載入"
msgid "Block Loader Mode Button"
msgstr ""
msgid "Block Loader Settings" msgid "Block Loader Settings"
msgstr "封鎖 Loader 設定" msgstr "封鎖 Loader 設定"
@ -610,6 +613,12 @@ msgstr "錯誤:"
msgid "ERROR: Can't set up theme." msgid "ERROR: Can't set up theme."
msgstr "錯誤:無法設定佈景主題。" msgstr "錯誤:無法設定佈景主題。"
msgid "EmuNand Channels"
msgstr ""
msgid "Emulated Nand"
msgstr ""
msgid "English" msgid "English"
msgstr "英文" msgstr "英文"
@ -999,6 +1008,9 @@ msgstr "語言檔路徑"
msgid "Languagepath changed." msgid "Languagepath changed."
msgstr "語言路徑已變更" msgstr "語言路徑已變更"
msgid "Launching emulated nand channels only works on d2x cIOS! Change game IOS to a d2x cIOS first."
msgstr ""
msgid "Left" msgid "Left"
msgstr "左" msgstr "左"
@ -1081,7 +1093,7 @@ msgstr "音樂循環模式"
msgid "Music Volume" msgid "Music Volume"
msgstr "音樂音量" msgstr "音樂音量"
msgid "Nand Channel Emulation" msgid "Nand Channels"
msgstr "" msgstr ""
msgid "Nand Emu Channel Path" msgid "Nand Emu Channel Path"
@ -1303,6 +1315,9 @@ msgstr "隨機選取音樂"
msgid "Reading WAD data... Ok!" msgid "Reading WAD data... Ok!"
msgstr "讀取 WAD 數據... 完成!" msgstr "讀取 WAD 數據... 完成!"
msgid "Real Nand"
msgstr ""
msgid "Receiving file from:" msgid "Receiving file from:"
msgstr "正在接收檔案來源:" msgstr "正在接收檔案來源:"
@ -1405,6 +1420,12 @@ msgstr "從遊戲中選擇DOL"
msgid "Select game categories" msgid "Select game categories"
msgstr "選擇遊戲類別" msgstr "選擇遊戲類別"
msgid "Select loader mode"
msgstr ""
msgid "Select titles sources."
msgstr ""
msgid "Sept" msgid "Sept"
msgstr "九月" msgstr "九月"
@ -1701,6 +1722,9 @@ msgstr "寬螢幕倍數"
msgid "Widescreen Fix" msgid "Widescreen Fix"
msgstr "寬螢幕校正" msgstr "寬螢幕校正"
msgid "Wii Games"
msgstr ""
msgid "Wii Menu" msgid "Wii Menu"
msgstr "Wii系統選單" msgstr "Wii系統選單"

View File

@ -5,7 +5,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: USB Loader GX\n" "Project-Id-Version: USB Loader GX\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2011-12-20 21:54+0100\n" "POT-Creation-Date: 2011-12-22 23:25+0100\n"
"PO-Revision-Date: 2009-10-01 01:00+0200\n" "PO-Revision-Date: 2009-10-01 01:00+0200\n"
"Last-Translator: Nitro_subzero \n" "Last-Translator: Nitro_subzero \n"
"Language-Team: Nitro_subzero\n" "Language-Team: Nitro_subzero\n"
@ -247,6 +247,9 @@ msgstr ""
msgid "Block IOS Reload" msgid "Block IOS Reload"
msgstr "โหลดบล๊อค IOS อีกครั้ง" msgstr "โหลดบล๊อค IOS อีกครั้ง"
msgid "Block Loader Mode Button"
msgstr ""
msgid "Block Loader Settings" msgid "Block Loader Settings"
msgstr "" msgstr ""
@ -610,6 +613,12 @@ msgstr "ผิดพลาด:"
msgid "ERROR: Can't set up theme." msgid "ERROR: Can't set up theme."
msgstr "" msgstr ""
msgid "EmuNand Channels"
msgstr ""
msgid "Emulated Nand"
msgstr ""
msgid "English" msgid "English"
msgstr "อังกฤษ" msgstr "อังกฤษ"
@ -999,6 +1008,9 @@ msgstr ""
msgid "Languagepath changed." msgid "Languagepath changed."
msgstr "ที่เก็บไฟล์ภาษาถูกเปลี่ยนแปลง" msgstr "ที่เก็บไฟล์ภาษาถูกเปลี่ยนแปลง"
msgid "Launching emulated nand channels only works on d2x cIOS! Change game IOS to a d2x cIOS first."
msgstr ""
msgid "Left" msgid "Left"
msgstr "ซ้าย" msgstr "ซ้าย"
@ -1081,7 +1093,7 @@ msgstr ""
msgid "Music Volume" msgid "Music Volume"
msgstr "ความดังเสียงเพลง" msgstr "ความดังเสียงเพลง"
msgid "Nand Channel Emulation" msgid "Nand Channels"
msgstr "" msgstr ""
msgid "Nand Emu Channel Path" msgid "Nand Emu Channel Path"
@ -1303,6 +1315,9 @@ msgstr ""
msgid "Reading WAD data... Ok!" msgid "Reading WAD data... Ok!"
msgstr "อ่านข้อมูล WAD... สำเร็จ!" msgstr "อ่านข้อมูล WAD... สำเร็จ!"
msgid "Real Nand"
msgstr ""
msgid "Receiving file from:" msgid "Receiving file from:"
msgstr "ได้รับไฟล์จาก:" msgstr "ได้รับไฟล์จาก:"
@ -1405,6 +1420,12 @@ msgstr ""
msgid "Select game categories" msgid "Select game categories"
msgstr "" msgstr ""
msgid "Select loader mode"
msgstr ""
msgid "Select titles sources."
msgstr ""
msgid "Sept" msgid "Sept"
msgstr "กย." msgstr "กย."
@ -1701,6 +1722,9 @@ msgstr ""
msgid "Widescreen Fix" msgid "Widescreen Fix"
msgstr "จอกว้าง" msgstr "จอกว้าง"
msgid "Wii Games"
msgstr ""
msgid "Wii Menu" msgid "Wii Menu"
msgstr "เมนู Wii" msgstr "เมนู Wii"

View File

@ -5,7 +5,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: USB Loader GX\n" "Project-Id-Version: USB Loader GX\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2011-12-20 21:54+0100\n" "POT-Creation-Date: 2011-12-22 23:25+0100\n"
"PO-Revision-Date: 2009-10-01 01:00+0200\n" "PO-Revision-Date: 2009-10-01 01:00+0200\n"
"Last-Translator: omercigingelini\n" "Last-Translator: omercigingelini\n"
"Language-Team: omercigingelini\n" "Language-Team: omercigingelini\n"
@ -247,6 +247,9 @@ msgstr ""
msgid "Block IOS Reload" msgid "Block IOS Reload"
msgstr "IOS Yüklemesini Engelle" msgstr "IOS Yüklemesini Engelle"
msgid "Block Loader Mode Button"
msgstr ""
msgid "Block Loader Settings" msgid "Block Loader Settings"
msgstr "" msgstr ""
@ -610,6 +613,12 @@ msgstr "HATA:"
msgid "ERROR: Can't set up theme." msgid "ERROR: Can't set up theme."
msgstr "" msgstr ""
msgid "EmuNand Channels"
msgstr ""
msgid "Emulated Nand"
msgstr ""
msgid "English" msgid "English"
msgstr "Ingilizce" msgstr "Ingilizce"
@ -999,6 +1008,9 @@ msgstr ""
msgid "Languagepath changed." msgid "Languagepath changed."
msgstr "Dil dosya yolu değişti." msgstr "Dil dosya yolu değişti."
msgid "Launching emulated nand channels only works on d2x cIOS! Change game IOS to a d2x cIOS first."
msgstr ""
msgid "Left" msgid "Left"
msgstr "Sol" msgstr "Sol"
@ -1081,7 +1093,7 @@ msgstr ""
msgid "Music Volume" msgid "Music Volume"
msgstr "Ses Seviyesi" msgstr "Ses Seviyesi"
msgid "Nand Channel Emulation" msgid "Nand Channels"
msgstr "" msgstr ""
msgid "Nand Emu Channel Path" msgid "Nand Emu Channel Path"
@ -1303,6 +1315,9 @@ msgstr ""
msgid "Reading WAD data... Ok!" msgid "Reading WAD data... Ok!"
msgstr "Wad verisi okunuyor..OK!" msgstr "Wad verisi okunuyor..OK!"
msgid "Real Nand"
msgstr ""
msgid "Receiving file from:" msgid "Receiving file from:"
msgstr "Dosyanın alındığı yer:" msgstr "Dosyanın alındığı yer:"
@ -1405,6 +1420,12 @@ msgstr ""
msgid "Select game categories" msgid "Select game categories"
msgstr "" msgstr ""
msgid "Select loader mode"
msgstr ""
msgid "Select titles sources."
msgstr ""
msgid "Sept" msgid "Sept"
msgstr "Eyl" msgstr "Eyl"
@ -1701,6 +1722,9 @@ msgstr ""
msgid "Widescreen Fix" msgid "Widescreen Fix"
msgstr "Genişekran Çözümü" msgstr "Genişekran Çözümü"
msgid "Wii Games"
msgstr ""
msgid "Wii Menu" msgid "Wii Menu"
msgstr "Wii Menü" msgstr "Wii Menü"

File diff suppressed because it is too large Load Diff

View File

@ -68,8 +68,6 @@ void Channels::GetEmuChannelList()
void Channels::GetChannelList() void Channels::GetChannelList()
{ {
ISFS_Initialize();
NandChannels.clear(); NandChannels.clear();
// Get count of titles of the good titles // Get count of titles of the good titles
@ -102,6 +100,7 @@ void Channels::GetChannelList()
memset(&NandChannels[s], 0, sizeof(struct discHdr)); memset(&NandChannels[s], 0, sizeof(struct discHdr));
memcpy(NandChannels[s].id, id, 4); memcpy(NandChannels[s].id, id, 4);
NandChannels[s].tid = tid; NandChannels[s].tid = tid;
NandChannels[s].type = TYPE_GAME_NANDCHAN;
strncpy(NandChannels[s].title, name ? name : "", sizeof(NandChannels[s].title)-1); strncpy(NandChannels[s].title, name ? name : "", sizeof(NandChannels[s].title)-1);
} }
@ -139,28 +138,25 @@ void Channels::GetChannelList()
memset(&NandChannels[s], 0, sizeof(struct discHdr)); memset(&NandChannels[s], 0, sizeof(struct discHdr));
memcpy(NandChannels[s].id, id, 4); memcpy(NandChannels[s].id, id, 4);
NandChannels[s].tid = tid; NandChannels[s].tid = tid;
NandChannels[s].type = TYPE_GAME_NANDCHAN;
strncpy(NandChannels[s].title, name ? name : "", sizeof(NandChannels[s].title)-1); strncpy(NandChannels[s].title, name ? name : "", sizeof(NandChannels[s].title)-1);
} }
ISFS_Deinitialize();
} }
vector<struct discHdr> & Channels::GetDiscHeaderList(void) vector<struct discHdr> & Channels::GetNandHeaders(void)
{ {
if(Settings.NandEmuChanMode != 0) if(NandChannels.empty())
{ this->GetChannelList();
if(EmuChannels.empty())
this->GetEmuChannelList();
return EmuChannels; return NandChannels;
} }
else
{
if(NandChannels.empty())
this->GetChannelList();
return NandChannels; vector<struct discHdr> & Channels::GetEmuHeaders(void)
} {
if(EmuChannels.empty())
this->GetEmuChannelList();
return EmuChannels;
} }
u8 * Channels::GetDol(const u64 &title, u8 *tmdBuffer) u8 * Channels::GetDol(const u64 &title, u8 *tmdBuffer)
@ -193,7 +189,7 @@ u8 * Channels::GetDol(const u64 &title, u8 *tmdBuffer)
snprintf(filepath, ISFS_MAXPATH, "/title/%08x/%08x/content/%08x.app", high, low, bootcontent); snprintf(filepath, ISFS_MAXPATH, "/title/%08x/%08x/content/%08x.app", high, low, bootcontent);
gprintf("Loading Channel DOL: %s\n", filepath); gprintf("Loading Channel DOL: %s\n", filepath);
if (NandTitle::LoadFileFromNand(filepath, &buffer, &filesize, false) < 0) if (NandTitle::LoadFileFromNand(filepath, &buffer, &filesize) < 0)
{ {
gprintf("Failed loading DOL file\n"); gprintf("Failed loading DOL file\n");
free(filepath); free(filepath);
@ -225,7 +221,7 @@ u8 Channels::GetRequestedIOS(const u64 &title)
u8 IOS = 0; u8 IOS = 0;
u32 tmdSize = 0; u32 tmdSize = 0;
u8 *titleTMD = GetTMD(title, &tmdSize, true, ""); u8 *titleTMD = GetTMD(title, &tmdSize, "");
if (!titleTMD) if (!titleTMD)
return 0; return 0;
@ -237,7 +233,7 @@ u8 Channels::GetRequestedIOS(const u64 &title)
return IOS; return IOS;
} }
u8 *Channels::GetTMD(const u64 &tid, u32 *size, bool isfsInit, const char *prefix) u8 *Channels::GetTMD(const u64 &tid, u32 *size, const char *prefix)
{ {
char *filepath = (char *) memalign(32, ISFS_MAXPATH); char *filepath = (char *) memalign(32, ISFS_MAXPATH);
if(!filepath) if(!filepath)
@ -256,7 +252,7 @@ u8 *Channels::GetTMD(const u64 &tid, u32 *size, bool isfsInit, const char *prefi
if(*prefix != '\0') if(*prefix != '\0')
ret = LoadFileToMem(filepath, &tmdBuffer, &tmdSize); ret = LoadFileToMem(filepath, &tmdBuffer, &tmdSize);
else else
ret = NandTitle::LoadFileFromNand(filepath, &tmdBuffer, &tmdSize, isfsInit); ret = NandTitle::LoadFileFromNand(filepath, &tmdBuffer, &tmdSize);
free(filepath); free(filepath);
@ -280,7 +276,7 @@ u32 Channels::LoadChannel(const u64 &chantitle)
u32 ios = 0; u32 ios = 0;
u32 tmdSize = 0; u32 tmdSize = 0;
u8 *tmdBuffer = GetTMD(chantitle, &tmdSize, false, ""); u8 *tmdBuffer = GetTMD(chantitle, &tmdSize, "");
if(!tmdBuffer) if(!tmdBuffer)
{ {
ISFS_Deinitialize(); ISFS_Deinitialize();
@ -385,7 +381,7 @@ bool Channels::Identify(const u64 &titleid, u8 *tmdBuffer, u32 tmdSize)
sprintf(filepath, "/sys/cert.sys"); sprintf(filepath, "/sys/cert.sys");
u8 *certBuffer = NULL; u8 *certBuffer = NULL;
u32 certSize = 0; u32 certSize = 0;
if (NandTitle::LoadFileFromNand(filepath, &certBuffer, &certSize, false) < 0) if (NandTitle::LoadFileFromNand(filepath, &certBuffer, &certSize) < 0)
{ {
gprintf("Reading certs...Failed!\n"); gprintf("Reading certs...Failed!\n");
free(tikBuffer); free(tikBuffer);
@ -491,6 +487,7 @@ bool Channels::ParseTitleDir(char *path, int language)
memset(&EmuChannels[s], 0, sizeof(struct discHdr)); memset(&EmuChannels[s], 0, sizeof(struct discHdr));
memcpy(EmuChannels[s].id, id, 4); memcpy(EmuChannels[s].id, id, 4);
EmuChannels[s].tid = tid; EmuChannels[s].tid = tid;
EmuChannels[s].type = TYPE_GAME_EMUNANDCHAN;
strncpy(EmuChannels[s].title, TitleName.c_str(), sizeof(EmuChannels[s].title)-1); strncpy(EmuChannels[s].title, TitleName.c_str(), sizeof(EmuChannels[s].title)-1);
} }
@ -590,7 +587,7 @@ bool Channels::GetEmuChanTitle(char *tmdpath, int language, std::string &Title)
return true; return true;
} }
u8 *Channels::GetOpeningBnr(const u64 &title) u8 *Channels::GetOpeningBnr(const u64 &title, const char *pathPrefix)
{ {
u8 *banner = NULL; u8 *banner = NULL;
u32 high = TITLE_UPPER(title); u32 high = TITLE_UPPER(title);
@ -600,29 +597,19 @@ u8 *Channels::GetOpeningBnr(const u64 &title)
if(!filepath) if(!filepath)
return NULL; return NULL;
if(Settings.NandEmuChanMode == 0)
ISFS_Initialize();
char prefix[sizeof(Settings.NandEmuChanPath)];
if(Settings.NandEmuChanMode != 0)
strcpy(prefix, Settings.NandEmuChanPath);
else
prefix[0] = '\0';
do do
{ {
snprintf(filepath, ISFS_MAXPATH, "%s/title/%08x/%08x/content/title.tmd", prefix, high, low); snprintf(filepath, ISFS_MAXPATH, "%s/title/%08x/%08x/content/title.tmd", pathPrefix, high, low);
u8 *buffer = NULL; u8 *buffer = NULL;
u32 filesize = 0; u32 filesize = 0;
int ret = 0; int ret = 0;
if(Settings.NandEmuChanMode != 0) if(pathPrefix && *pathPrefix != 0)
ret = LoadFileToMem(filepath, &buffer, &filesize); ret = LoadFileToMem(filepath, &buffer, &filesize);
else else
ret = NandTitle::LoadFileFromNand(filepath, &buffer, &filesize, false); ret = NandTitle::LoadFileFromNand(filepath, &buffer, &filesize);
if (ret < 0) if (ret < 0)
break; break;
@ -647,12 +634,12 @@ u8 *Channels::GetOpeningBnr(const u64 &title)
if(!found) if(!found)
break; break;
snprintf(filepath, ISFS_MAXPATH, "%s/title/%08x/%08x/content/%08x.app", prefix, high, low, bootcontent); snprintf(filepath, ISFS_MAXPATH, "%s/title/%08x/%08x/content/%08x.app", pathPrefix, high, low, bootcontent);
if(Settings.NandEmuChanMode != 0) if(pathPrefix && *pathPrefix != 0)
ret = LoadFileToMem(filepath, &buffer, &filesize); ret = LoadFileToMem(filepath, &buffer, &filesize);
else else
ret = NandTitle::LoadFileFromNand(filepath, &buffer, &filesize, false); ret = NandTitle::LoadFileFromNand(filepath, &buffer, &filesize);
if (ret < 0) if (ret < 0)
break; break;
@ -679,8 +666,5 @@ u8 *Channels::GetOpeningBnr(const u64 &title)
free(filepath); free(filepath);
if(Settings.NandEmuChanMode == 0)
ISFS_Deinitialize();
return banner; return banner;
} }

View File

@ -40,13 +40,14 @@ public:
static u32 LoadChannel(const u64 &chantitle); static u32 LoadChannel(const u64 &chantitle);
static u8 GetRequestedIOS(const u64 &title); static u8 GetRequestedIOS(const u64 &title);
static u8 *GetTMD(const u64 &tid, u32 *size, bool isfsInit, const char *prefix); static u8 *GetTMD(const u64 &tid, u32 *size, const char *prefix);
static u8 *GetDol(const u64 &title, u8 *tmdBuffer); static u8 *GetDol(const u64 &title, u8 *tmdBuffer);
static u8 *GetOpeningBnr(const u64 &title); static u8 *GetOpeningBnr(const u64 &title, const char *pathPrefix);
void GetChannelList(); void GetChannelList();
void GetEmuChannelList(); void GetEmuChannelList();
vector<struct discHdr> & GetDiscHeaderList(void); vector<struct discHdr> & GetNandHeaders(void);
vector<struct discHdr> & GetEmuHeaders(void);
private: private:
static Channels *instance; static Channels *instance;

View File

@ -131,9 +131,9 @@ class PartitionHandle
//! UnMount all Partition //! UnMount all Partition
void UnMountAll() { for(u32 i = 0; i < PartitionList.size(); ++i) UnMount(i); }; void UnMountAll() { for(u32 i = 0; i < PartitionList.size(); ++i) UnMount(i); };
//! Get the Mountname //! Get the Mountname
const char * MountName(int pos) { if(pos < 0 || pos >= (int) MountNameList.size() || !MountNameList[pos].size()) return NULL; else return MountNameList[pos].c_str(); }; const char * MountName(int pos) { if(pos < 0 || pos >= (int) MountNameList.size() || !MountNameList[pos].size()) return ""; else return MountNameList[pos].c_str(); };
//! Get the Name of the FileSystem e.g. "FAT32" //! Get the Name of the FileSystem e.g. "FAT32"
const char * GetFSName(int pos) { if(valid(pos)) return PartitionList[pos].FSName; else return NULL; }; const char * GetFSName(int pos) { if(valid(pos)) return PartitionList[pos].FSName; else return ""; };
//! Get the LBA where the partition is located //! Get the LBA where the partition is located
u32 GetLBAStart(int pos) { if(valid(pos)) return PartitionList[pos].LBA_Start; else return 0; }; u32 GetLBAStart(int pos) { if(valid(pos)) return PartitionList[pos].LBA_Start; else return 0; };
//! Get the partition size in sectors of this partition //! Get the partition size in sectors of this partition

View File

@ -188,9 +188,10 @@ int StartUpProcess::Execute()
if(IosLoader::LoadAppCios() < 0) if(IosLoader::LoadAppCios() < 0)
{ {
SetTextf("Failed loading any cIOS. USB Loader GX requires at least cIOS 222 or 245-250. Exiting...\n"); SetTextf("Failed loading any cIOS. USB Loader GX requires at least cIOS 222 or 245-250 to work properly.\n");
sleep(5); sleep(5);
Sys_BackToLoader(); // We can allow now operation without cIOS in channel mode with AHPPROT
// Sys_BackToLoader();
} }
SetupPads(); SetupPads();
@ -245,10 +246,17 @@ int StartUpProcess::Execute()
} }
else if(Settings.USBPort == 2) else if(Settings.USBPort == 2)
{ {
// Right now we support only one port at once
Settings.USBPort = 0;
/*
SetTextf("Mounting USB Port to 1\n"); SetTextf("Mounting USB Port to 1\n");
DeviceHandler::Instance()->MountUSBPort1(); DeviceHandler::Instance()->MountUSBPort1();
*/
} }
// We only initialize once for the whole session
ISFS_Initialize();
gprintf("\tLoading game categories...%s\n", GameCategories.Load(Settings.ConfigPath) ? "done" : "failed"); gprintf("\tLoading game categories...%s\n", GameCategories.Load(Settings.ConfigPath) ? "done" : "failed");
gprintf("\tLoading font...%s\n", Theme::LoadFont(Settings.ConfigPath) ? "done" : "failed (using default)"); gprintf("\tLoading font...%s\n", Theme::LoadFont(Settings.ConfigPath) ? "done" : "failed (using default)");
gprintf("\tLoading theme...%s\n", Theme::Load(Settings.theme) ? "done" : "failed (using default)"); gprintf("\tLoading theme...%s\n", Theme::Load(Settings.theme) ? "done" : "failed (using default)");
@ -290,5 +298,5 @@ int StartUpProcess::QuickGameBoot(const char * gameID)
GameStatistics.SetPlayCount(header->id, GameStatistics.GetPlayCount(header->id)+1); GameStatistics.SetPlayCount(header->id, GameStatistics.GetPlayCount(header->id)+1);
GameStatistics.Save(); GameStatistics.Save();
return GameBooter::BootGame(gameID); return GameBooter::BootGame(header);
} }

View File

@ -20,7 +20,7 @@ OpeningBNR::~OpeningBNR()
free(imetHdr); free(imetHdr);
} }
bool OpeningBNR::Load(const u64 &tid) bool OpeningBNR::Load(const u64 &tid, const char *pathPrefix)
{ {
if(tid == 0) if(tid == 0)
return false; return false;
@ -39,7 +39,7 @@ bool OpeningBNR::Load(const u64 &tid)
free(imetHdr); free(imetHdr);
imetHdr = NULL; imetHdr = NULL;
imetHdr = (IMETHeader*) Channels::GetOpeningBnr(tid); imetHdr = (IMETHeader*) Channels::GetOpeningBnr(tid, pathPrefix);
if(!imetHdr) if(!imetHdr)
return false; return false;

View File

@ -61,12 +61,12 @@ class OpeningBNR
OpeningBNR(); OpeningBNR();
~OpeningBNR(); ~OpeningBNR();
bool Load(const u8 * gameID); bool Load(const u8 * gameID);
bool Load(const u64 &tid); bool Load(const u64 &tid, const char *pathPrefix);
const u16 * GetIMETTitle(int lang); const u16 * GetIMETTitle(int lang);
const u16 * GetIMETTitle(const u8 * gameID, int lang) { Load(gameID); return GetIMETTitle(lang); }; const u16 * GetIMETTitle(const u8 * gameID, int lang) { Load(gameID); return GetIMETTitle(lang); };
const u8 * GetBannerSound(u32 * size); const u8 * GetBannerSound(u32 * size);
const u8 * GetBannerSound(const u8 * gameID, u32 * size) { Load(gameID); return GetBannerSound(size); }; const u8 * GetBannerSound(const u8 * gameID, u32 * size) { Load(gameID); return GetBannerSound(size); };
const u8 * GetBannerSound(const u64 &tid, u32 * size) { Load(tid); return GetBannerSound(size); }; const u8 * GetBannerSound(const u64 &tid, u32 * size, const char *pathPrefix) { Load(tid, pathPrefix); return GetBannerSound(size); };
private: private:
IMETHeader *imetHdr; IMETHeader *imetHdr;
char gameID[7]; char gameID[7];

View File

@ -10,6 +10,7 @@
#include "prompts/DiscBrowser.h" #include "prompts/DiscBrowser.h"
#include "prompts/GameWindow.hpp" #include "prompts/GameWindow.hpp"
#include "prompts/CategorySwitchPrompt.hpp" #include "prompts/CategorySwitchPrompt.hpp"
#include "prompts/CheckboxPrompt.hpp"
#include "themes/CTheme.h" #include "themes/CTheme.h"
#include "language/gettext.h" #include "language/gettext.h"
#include "usbloader/wbfs.h" #include "usbloader/wbfs.h"
@ -95,6 +96,7 @@ GameBrowseMenu::GameBrowseMenu()
imgUnlock_gray = Resources::GetImageData("unlock_gray.png"); imgUnlock_gray = Resources::GetImageData("unlock_gray.png");
imgCategory = Resources::GetImageData("category.png"); imgCategory = Resources::GetImageData("category.png");
imgCategory_gray = Resources::GetImageData("category_gray.png"); imgCategory_gray = Resources::GetImageData("category_gray.png");
imgLoaderMode = Resources::GetImageData("loader_mode.png");
homebrewImgData = Resources::GetImageData("browser.png"); homebrewImgData = Resources::GetImageData("browser.png");
homebrewImgDataOver = Resources::GetImageData("browser_over.png"); homebrewImgDataOver = Resources::GetImageData("browser_over.png");
@ -213,8 +215,17 @@ GameBrowseMenu::GameBrowseMenu()
sortBtn = new GuiButton(sortBtnImg, sortBtnImg, ALIGN_LEFT, ALIGN_TOP, 0, 0, trigA, btnSoundOver, btnSoundClick2, 1, sortBtnTT, -15, 52, 0, 3); sortBtn = new GuiButton(sortBtnImg, sortBtnImg, ALIGN_LEFT, ALIGN_TOP, 0, 0, trigA, btnSoundOver, btnSoundClick2, 1, sortBtnTT, -15, 52, 0, 3);
sortBtn->SetSelectable(false); sortBtn->SetSelectable(false);
loaderModeBtnTT = new GuiTooltip(tr("Select loader mode"));
if (Settings.wsprompt) loaderModeBtnTT->SetWidescreen(Settings.widescreen);
loaderModeBtnTT->SetAlpha(thInt("255 - tooltip alpha"));
loaderModeBtnImg = new GuiImage(imgLoaderMode);
loaderModeBtnImg->SetWidescreen(Settings.widescreen);
loaderModeBtn = new GuiButton(loaderModeBtnImg, loaderModeBtnImg, ALIGN_LEFT, ALIGN_TOP, 0, 0, trigA, btnSoundOver, btnSoundClick2, 1, loaderModeBtnTT, -15, 52, 0, 3);
loaderModeBtn->SetSelectable(false);
categBtnTT = new GuiTooltip(tr("Select game categories")); categBtnTT = new GuiTooltip(tr("Select game categories"));
if (Settings.wsprompt) sortBtnTT->SetWidescreen(Settings.widescreen); if (Settings.wsprompt) categBtnTT->SetWidescreen(Settings.widescreen);
categBtnTT->SetAlpha(thInt("255 - tooltip alpha")); categBtnTT->SetAlpha(thInt("255 - tooltip alpha"));
categBtnImg = new GuiImage(imgCategory); categBtnImg = new GuiImage(imgCategory);
@ -387,6 +398,7 @@ GameBrowseMenu::~GameBrowseMenu()
delete imgUnlock_gray; delete imgUnlock_gray;
delete imgCategory; delete imgCategory;
delete imgCategory_gray; delete imgCategory_gray;
delete imgLoaderMode;
delete homebrewImgData; delete homebrewImgData;
delete homebrewImgDataOver; delete homebrewImgDataOver;
delete gameCover; delete gameCover;
@ -425,6 +437,7 @@ GameBrowseMenu::~GameBrowseMenu()
delete dvdBtnImg_g; delete dvdBtnImg_g;
delete categBtnImg; delete categBtnImg;
delete categBtnImg_g; delete categBtnImg_g;
delete loaderModeBtnImg;
delete homebrewImg; delete homebrewImg;
delete homebrewImgOver; delete homebrewImgOver;
delete gameCoverImg; delete gameCoverImg;
@ -452,6 +465,7 @@ GameBrowseMenu::~GameBrowseMenu()
delete lockBtn; delete lockBtn;
delete dvdBtn; delete dvdBtn;
delete categBtn; delete categBtn;
delete loaderModeBtn;
delete homebrewBtn; delete homebrewBtn;
delete DownloadBtn; delete DownloadBtn;
delete idBtn; delete idBtn;
@ -470,6 +484,7 @@ GameBrowseMenu::~GameBrowseMenu()
delete lockBtnTT; delete lockBtnTT;
delete dvdBtnTT; delete dvdBtnTT;
delete categBtnTT; delete categBtnTT;
delete loaderModeBtnTT;
delete homebrewBtnTT; delete homebrewBtnTT;
delete DownloadBtnTT; delete DownloadBtnTT;
delete IDBtnTT; delete IDBtnTT;
@ -624,23 +639,25 @@ void GameBrowseMenu::ReloadBrowser()
carouselBtn->SetImage(carouselBtnImg_g); carouselBtn->SetImage(carouselBtnImg_g);
carouselBtn->SetImageOver(carouselBtnImg_g); carouselBtn->SetImageOver(carouselBtnImg_g);
favoriteBtn->SetPosition(Settings.widescreen ? thInt("256 - list layout favorite btn pos x widescreen") : thInt("220 - list layout favorite btn pos x"), favoriteBtn->SetPosition(Settings.widescreen ? thInt("230 - list layout favorite btn pos x widescreen") : thInt("188 - list layout favorite btn pos x"),
thInt("13 - list layout favorite btn pos y")); thInt("13 - list layout favorite btn pos y"));
searchBtn->SetPosition(Settings.widescreen ? thInt("288 - list layout search btn pos x widescreen") : thInt("260 - list layout search btn pos x"), searchBtn->SetPosition(Settings.widescreen ? thInt("262 - list layout search btn pos x widescreen") : thInt("228 - list layout search btn pos x"),
thInt("13 - list layout search btn pos y")); thInt("13 - list layout search btn pos y"));
sortBtn->SetPosition(Settings.widescreen ? thInt("320 - list layout abc/sort btn pos x widescreen") : thInt("300 - list layout abc/sort btn pos x"), sortBtn->SetPosition(Settings.widescreen ? thInt("294 - list layout abc/sort btn pos x widescreen") : thInt("268 - list layout abc/sort btn pos x"),
thInt("13 - list layout abc/sort btn pos y")); thInt("13 - list layout abc/sort btn pos y"));
categBtn->SetPosition(Settings.widescreen ? thInt("352 - list layout category btn pos x widescreen") : thInt("340 - list layout category btn pos x"), loaderModeBtn->SetPosition(Settings.widescreen ? thInt("326 - list layout loadermode btn pos x widescreen") : thInt("308 - list layout loadermode btn pos x"),
thInt("13 - list layout loadermode btn pos y"));
categBtn->SetPosition(Settings.widescreen ? thInt("358 - list layout category btn pos x widescreen") : thInt("348 - list layout category btn pos x"),
thInt("13 - list layout category btn pos y")); thInt("13 - list layout category btn pos y"));
listBtn->SetPosition(Settings.widescreen ? thInt("384 - list layout list btn pos x widescreen") : thInt("380 - list layout list btn pos x"), listBtn->SetPosition(Settings.widescreen ? thInt("390 - list layout list btn pos x widescreen") : thInt("388 - list layout list btn pos x"),
thInt("13 - list layout list btn pos y")); thInt("13 - list layout list btn pos y"));
gridBtn->SetPosition(Settings.widescreen ? thInt("416 - list layout grid btn pos x widescreen") : thInt("420 - list layout grid btn pos x"), gridBtn->SetPosition(Settings.widescreen ? thInt("422 - list layout grid btn pos x widescreen") : thInt("428 - list layout grid btn pos x"),
thInt("13 - list layout grid btn pos y")); thInt("13 - list layout grid btn pos y"));
carouselBtn->SetPosition(Settings.widescreen ? thInt("448 - list layout carousel btn pos x widescreen") : thInt("460 - list layout carousel btn pos x"), carouselBtn->SetPosition(Settings.widescreen ? thInt("454 - list layout carousel btn pos x widescreen") : thInt("468 - list layout carousel btn pos x"),
thInt("13 - list layout carousel btn pos y")); thInt("13 - list layout carousel btn pos y"));
lockBtn->SetPosition(Settings.widescreen ? thInt("480 - list layout lock btn pos x widescreen") : thInt("500 - list layout lock btn pos x"), lockBtn->SetPosition(Settings.widescreen ? thInt("486 - list layout lock btn pos x widescreen") : thInt("508 - list layout lock btn pos x"),
thInt("13 - list layout lock btn pos y")); thInt("13 - list layout lock btn pos y"));
dvdBtn->SetPosition(Settings.widescreen ? thInt("512 - list layout dvd btn pos x widescreen") : thInt("540 - list layout dvd btn pos x"), dvdBtn->SetPosition(Settings.widescreen ? thInt("518 - list layout dvd btn pos x widescreen") : thInt("548 - list layout dvd btn pos x"),
thInt("13 - list layout dvd btn pos y")); thInt("13 - list layout dvd btn pos y"));
gameBrowser = new GuiGameList(thInt("396 - game list layout width"), thInt("280 - game list layout height"), Settings.GameListOffset); gameBrowser = new GuiGameList(thInt("396 - game list layout width"), thInt("280 - game list layout height"), Settings.GameListOffset);
@ -659,12 +676,14 @@ void GameBrowseMenu::ReloadBrowser()
carouselBtn->SetImage(carouselBtnImg_g); carouselBtn->SetImage(carouselBtnImg_g);
carouselBtn->SetImageOver(carouselBtnImg_g); carouselBtn->SetImageOver(carouselBtnImg_g);
favoriteBtn->SetPosition(Settings.widescreen ? thInt("192 - grid layout favorite btn pos x widescreen") : thInt("160 - grid layout favorite btn pos x"), favoriteBtn->SetPosition(Settings.widescreen ? thInt("160 - grid layout favorite btn pos x widescreen") : thInt("120 - grid layout favorite btn pos x"),
thInt("13 - grid layout favorite btn pos y")); thInt("13 - grid layout favorite btn pos y"));
searchBtn->SetPosition(Settings.widescreen ? thInt("224 - grid layout search btn pos x widescreen") : thInt("200 - grid layout search btn pos x"), searchBtn->SetPosition(Settings.widescreen ? thInt("192 - grid layout search btn pos x widescreen") : thInt("160 - grid layout search btn pos x"),
thInt("13 - grid layout search btn pos y")); thInt("13 - grid layout search btn pos y"));
sortBtn->SetPosition(Settings.widescreen ? thInt("256 - grid layout abc/sort btn pos x widescreen") : thInt("240 - grid layout abc/sort btn pos x"), sortBtn->SetPosition(Settings.widescreen ? thInt("224 - grid layout abc/sort btn pos x widescreen") : thInt("200 - grid layout abc/sort btn pos x"),
thInt("13 - grid layout abc/sort btn pos y")); thInt("13 - grid layout abc/sort btn pos y"));
loaderModeBtn->SetPosition(Settings.widescreen ? thInt("256 - grid layout loadermode btn pos x widescreen") : thInt("240 - grid layout loadermode btn pos x"),
thInt("13 - grid layout loadermode btn pos y"));
categBtn->SetPosition(Settings.widescreen ? thInt("288 - grid layout category btn pos x widescreen") : thInt("280 - grid layout category btn pos x"), categBtn->SetPosition(Settings.widescreen ? thInt("288 - grid layout category btn pos x widescreen") : thInt("280 - grid layout category btn pos x"),
thInt("13 - grid layout category btn pos y")); thInt("13 - grid layout category btn pos y"));
listBtn->SetPosition(Settings.widescreen ? thInt("320 - grid layout list btn pos x widescreen") : thInt("320 - grid layout list btn pos x"), listBtn->SetPosition(Settings.widescreen ? thInt("320 - grid layout list btn pos x widescreen") : thInt("320 - grid layout list btn pos x"),
@ -693,12 +712,14 @@ void GameBrowseMenu::ReloadBrowser()
gridBtn->SetImage(gridBtnImg_g); gridBtn->SetImage(gridBtnImg_g);
gridBtn->SetImageOver(gridBtnImg_g); gridBtn->SetImageOver(gridBtnImg_g);
favoriteBtn->SetPosition(Settings.widescreen ? thInt("192 - carousel layout favorite btn pos x widescreen") : thInt("160 - carousel layout favorite btn pos x"), favoriteBtn->SetPosition(Settings.widescreen ? thInt("160 - carousel layout favorite btn pos x widescreen") : thInt("120 - carousel layout favorite btn pos x"),
thInt("13 - carousel layout favorite btn pos y")); thInt("13 - carousel layout favorite btn pos y"));
searchBtn->SetPosition(Settings.widescreen ? thInt("224 - carousel layout search btn pos x widescreen") : thInt("200 - carousel layout search btn pos x"), searchBtn->SetPosition(Settings.widescreen ? thInt("192 - carousel layout search btn pos x widescreen") : thInt("160 - carousel layout search btn pos x"),
thInt("13 - carousel layout search btn pos y")); thInt("13 - carousel layout search btn pos y"));
sortBtn->SetPosition(Settings.widescreen ? thInt("256 - carousel layout abc/sort btn pos x widescreen") : thInt("240 - carousel layout abc/sort btn pos x"), sortBtn->SetPosition(Settings.widescreen ? thInt("224 - carousel layout abc/sort btn pos x widescreen") : thInt("200 - carousel layout abc/sort btn pos x"),
thInt("13 - carousel layout abc/sort btn pos y")); thInt("13 - carousel layout abc/sort btn pos y"));
loaderModeBtn->SetPosition(Settings.widescreen ? thInt("256 - carousel layout loadermode btn pos x widescreen") : thInt("240 - carousel layout loadermode btn pos x"),
thInt("13 - carousel layout loadermode btn pos y"));
categBtn->SetPosition(Settings.widescreen ? thInt("288 - carousel layout category btn pos x widescreen") : thInt("280 - carousel layout category btn pos x"), categBtn->SetPosition(Settings.widescreen ? thInt("288 - carousel layout category btn pos x widescreen") : thInt("280 - carousel layout category btn pos x"),
thInt("13 - carousel layout category btn pos y")); thInt("13 - carousel layout category btn pos y"));
listBtn->SetPosition(Settings.widescreen ? thInt("320 - carousel layout list btn pos x widescreen") : thInt("320 - carousel layout list btn pos x"), listBtn->SetPosition(Settings.widescreen ? thInt("320 - carousel layout list btn pos x widescreen") : thInt("320 - carousel layout list btn pos x"),
@ -747,6 +768,7 @@ void GameBrowseMenu::ReloadBrowser()
Append(categBtn); Append(categBtn);
Append(listBtn); Append(listBtn);
Append(gridBtn); Append(gridBtn);
Append(loaderModeBtn);
Append(carouselBtn); Append(carouselBtn);
Append(lockBtn); Append(lockBtn);
Append(dvdBtn); Append(dvdBtn);
@ -1087,6 +1109,34 @@ int GameBrowseMenu::MainLoop()
} }
} }
else if(loaderModeBtn->GetState() == STATE_CLICKED)
{
if (!Settings.godmode && (Settings.ParentalBlocks & BLOCK_LOADER_MODE_BUTTON))
{
WindowPrompt(tr( "Permission denied." ), tr( "Console must be unlocked for this option." ), tr( "OK" ));
loaderModeBtn->ResetState();
return returnMenu;
}
int choice = CheckboxWindow(tr( "Select titles sources." ), 0, tr( "Wii Games" ), tr( "Nand Channels" ), tr("EmuNand Channels"), 0, 0, 0, Settings.LoaderMode);
if(choice != CheckedNone && choice != Settings.LoaderMode)
{
Settings.LoaderMode = choice;
if((Settings.LoaderMode & MODE_WIIGAMES) && (gameList.GameCount() == 0))
{
WBFS_ReInit(WBFS_DEVICE_USB);
gameList.ReadGameList();
}
wString oldFilter(gameList.GetCurrentFilter());
GameTitles.LoadTitlesFromGameTDB(Settings.titlestxt_path, false, false);
gameList.FilterList(oldFilter.c_str());
ReloadBrowser();
}
loaderModeBtn->ResetState();
}
else if (Settings.gameDisplay == LIST_MODE && idBtn->GetState() == STATE_CLICKED) else if (Settings.gameDisplay == LIST_MODE && idBtn->GetState() == STATE_CLICKED)
{ {
gprintf("\tidBtn Clicked\n"); gprintf("\tidBtn Clicked\n");
@ -1372,13 +1422,24 @@ int GameBrowseMenu::OpenClickedGame()
if (RunGame && (game_cfg->ocarina == ON || (game_cfg->ocarina == INHERIT && Settings.ocarina == ON))) if (RunGame && (game_cfg->ocarina == ON || (game_cfg->ocarina == INHERIT && Settings.ocarina == ON)))
CheckOcarina(IDfull); CheckOcarina(IDfull);
if(header->type == TYPE_GAME_EMUNANDCHAN)
{
int gameIOS = game_cfg->ios == INHERIT ? Settings.cios : game_cfg->ios;
if(!IosLoader::GetIOSInfo(gameIOS))
{
ShowError(tr("Launching emulated nand channels only works on d2x cIOS! Change game IOS to a d2x cIOS first."));
RunGame = false;
returnHere = true;
}
}
if(RunGame) if(RunGame)
{ {
GameStatistics.SetPlayCount(header->id, GameStatistics.GetPlayCount(header->id)+1); GameStatistics.SetPlayCount(header->id, GameStatistics.GetPlayCount(header->id)+1);
GameStatistics.Save(); GameStatistics.Save();
//Just calling that shuts down everything and starts game //Just calling that shuts down everything and starts game
GameBooter::BootGame(IDfull); GameBooter::BootGame(header);
} }
} }
else if (choice == 2) else if (choice == 2)

View File

@ -71,6 +71,7 @@ class GameBrowseMenu : public GuiWindow
GuiImageData * imgUnlock_gray; GuiImageData * imgUnlock_gray;
GuiImageData * imgCategory; GuiImageData * imgCategory;
GuiImageData * imgCategory_gray; GuiImageData * imgCategory_gray;
GuiImageData * imgLoaderMode;
GuiImageData * homebrewImgData; GuiImageData * homebrewImgData;
GuiImageData * homebrewImgDataOver; GuiImageData * homebrewImgDataOver;
GuiImageData * gameCover; GuiImageData * gameCover;
@ -109,6 +110,7 @@ class GameBrowseMenu : public GuiWindow
GuiImage * dvdBtnImg_g; GuiImage * dvdBtnImg_g;
GuiImage * categBtnImg; GuiImage * categBtnImg;
GuiImage * categBtnImg_g; GuiImage * categBtnImg_g;
GuiImage * loaderModeBtnImg;
GuiImage * homebrewImg; GuiImage * homebrewImg;
GuiImage * homebrewImgOver; GuiImage * homebrewImgOver;
GuiImage * gameCoverImg; GuiImage * gameCoverImg;
@ -136,6 +138,7 @@ class GameBrowseMenu : public GuiWindow
GuiButton * lockBtn; GuiButton * lockBtn;
GuiButton * dvdBtn; GuiButton * dvdBtn;
GuiButton * categBtn; GuiButton * categBtn;
GuiButton * loaderModeBtn;
GuiButton * homebrewBtn; GuiButton * homebrewBtn;
GuiButton * DownloadBtn; GuiButton * DownloadBtn;
GuiButton * idBtn; GuiButton * idBtn;
@ -154,6 +157,7 @@ class GameBrowseMenu : public GuiWindow
GuiTooltip * lockBtnTT; GuiTooltip * lockBtnTT;
GuiTooltip * dvdBtnTT; GuiTooltip * dvdBtnTT;
GuiTooltip * categBtnTT; GuiTooltip * categBtnTT;
GuiTooltip * loaderModeBtnTT;
GuiTooltip * homebrewBtnTT; GuiTooltip * homebrewBtnTT;
GuiTooltip * DownloadBtnTT; GuiTooltip * DownloadBtnTT;
GuiTooltip * IDBtnTT; GuiTooltip * IDBtnTT;

File diff suppressed because it is too large Load Diff

View File

@ -1,3 +1,3 @@
#define size_ehcmodule_5 27134 #define size_ehcmodule_5 26234
extern unsigned char ehcmodule_5[27134]; extern unsigned char ehcmodule_5[26234];

View File

@ -25,7 +25,7 @@ static const char *serverURLCustomDiscs = "http://art.gametdb.com/wii/disccustom
void ImageDownloader::DownloadImages() void ImageDownloader::DownloadImages()
{ {
int choice = CheckboxWindow(tr( "Cover Download" ), 0, tr( "3D Covers" ), tr( "Flat Covers" ), tr("Full HQ Covers"), tr("Full LQ Covers"), tr( "Original Discarts" ), tr( "Custom Discarts" )); // ask for download choice int choice = CheckboxWindow(tr( "Cover Download" ), 0, tr( "3D Covers" ), tr( "Flat Covers" ), tr("Full HQ Covers"), tr("Full LQ Covers"), tr( "Original Discarts" ), tr( "Custom Discarts" )); // ask for download choice
if (choice == 0) if (choice == 0 || choice == CheckedNone)
return; return;
ImageDownloader Downloader; ImageDownloader Downloader;

View File

@ -20,9 +20,6 @@ typedef struct _appDOL
static appDOL *dolList = NULL; static appDOL *dolList = NULL;
static int dolCount = 0; static int dolCount = 0;
static char es_fs[] ATTRIBUTE_ALIGN(32) = "/dev/es";
static s32 es_fd = -1;
void RegisterDOL(u8 *dst, int len) void RegisterDOL(u8 *dst, int len)
{ {
if(!dolList) if(!dolList)
@ -52,17 +49,14 @@ void ClearDOLList()
void gamepatches(u8 videoSelected, u8 languageChoice, u8 patchcountrystring, void gamepatches(u8 videoSelected, u8 languageChoice, u8 patchcountrystring,
u8 vipatch, u8 sneekVideoPatch, u8 hooktype, u8 fix002, u8 vipatch, u8 sneekVideoPatch, u8 hooktype, u8 fix002,
u8 blockiosreloadselect, u8 gameIOS, u64 returnTo) u64 returnTo)
{ {
es_fd = IOS_Open(es_fs, 0);
int i; int i;
/* If a wip file is loaded for this game this does nothing - Dimok */ /* If a wip file is loaded for this game this does nothing - Dimok */
PoPPatch(); PoPPatch();
NSMBPatch(); NSMBPatch();
int returnToPatched = PatchNewReturnTo(returnTo);
for(i = 0; i < dolCount; ++i) for(i = 0; i < dolCount; ++i)
{ {
u8 *dst = dolList[i].dst; u8 *dst = dolList[i].dst;
@ -90,18 +84,12 @@ void gamepatches(u8 videoSelected, u8 languageChoice, u8 patchcountrystring,
if (fix002 == 2) if (fix002 == 2)
Anti_002_fix(dst, len); Anti_002_fix(dst, len);
if(returnToPatched < 0) if(returnTo)
PatchReturnTo(dst, len, (u32) returnTo); PatchReturnTo(dst, len, (u32) returnTo);
DCFlushRange(dst, len); DCFlushRange(dst, len);
} }
if(blockiosreloadselect)
BlockIOSReload(gameIOS);
if(es_fd >= 0)
IOS_Close(es_fd);
/* ERROR 002 fix (thanks to WiiPower for sharing this)*/ /* ERROR 002 fix (thanks to WiiPower for sharing this)*/
if (fix002 != 0) if (fix002 != 0)
*(u32 *)0x80003140 = *(u32 *)0x80003188; *(u32 *)0x80003140 = *(u32 *)0x80003188;
@ -566,9 +554,10 @@ bool PatchReturnTo( void *Address, int Size, u32 id )
return returnToPatched; return returnToPatched;
} }
int PatchNewReturnTo(u64 title) int PatchNewReturnTo(int es_fd, u64 title)
{ {
if(title == 0) return -1; if(es_fd < 0 || title == 0)
return -1;
//! this is here for test purpose only and needs be moved later //! this is here for test purpose only and needs be moved later
static u64 sm_title_id ATTRIBUTE_ALIGN(32); static u64 sm_title_id ATTRIBUTE_ALIGN(32);
@ -586,8 +575,11 @@ int PatchNewReturnTo(u64 title)
return result; return result;
} }
bool BlockIOSReload(u8 gameIOS) int BlockIOSReload(int es_fd, u8 gameIOS)
{ {
if(es_fd < 0)
return 0;
static int mode ATTRIBUTE_ALIGN(32); static int mode ATTRIBUTE_ALIGN(32);
static int ios ATTRIBUTE_ALIGN(32); static int ios ATTRIBUTE_ALIGN(32);
STACK_ALIGN(ioctlv, vector, 2, 32); STACK_ALIGN(ioctlv, vector, 2, 32);

View File

@ -9,17 +9,17 @@ extern "C" {
void RegisterDOL(u8 *dst, int len); void RegisterDOL(u8 *dst, int len);
void ClearDOLList(); void ClearDOLList();
void gamepatches(u8 videoSelected, u8 languageChoice, u8 patchcountrystring, u8 vipatch, void gamepatches(u8 videoSelected, u8 languageChoice, u8 patchcountrystring,
u8 sneekVideoPatch, u8 hooktype, u8 fix002, u8 blockiosreloadselect, u8 vipatch, u8 sneekVideoPatch, u8 hooktype, u8 fix002,
u8 gameIOS, u64 returnTo); u64 returnTo);
bool Anti_002_fix(u8 * Address, int Size); bool Anti_002_fix(u8 * Address, int Size);
bool NSMBPatch(); bool NSMBPatch();
bool PoPPatch(); bool PoPPatch();
void VideoModePatcher(u8 * dst, int len, u8 videoSelected); void VideoModePatcher(u8 * dst, int len, u8 videoSelected);
void sneek_video_patch(void *addr, u32 len); void sneek_video_patch(void *addr, u32 len);
bool PatchReturnTo(void *Address, int Size, u32 id); bool PatchReturnTo(void *Address, int Size, u32 id);
int PatchNewReturnTo(u64 title); int PatchNewReturnTo(int es_fd, u64 title);
bool BlockIOSReload(u8 gameIOS); int BlockIOSReload(int es_fd, u8 gameIOS);
#ifdef __cplusplus #ifdef __cplusplus
} }

View File

@ -154,7 +154,7 @@ int CheckboxPrompt::GetChoice()
{ {
int choice = PromptWindow::GetChoice(); int choice = PromptWindow::GetChoice();
if(choice == 0) if(choice == 0)
return 0; return CheckedNone;
else if(choice == 1) else if(choice == 1)
{ {
@ -163,44 +163,68 @@ int CheckboxPrompt::GetChoice()
for(u32 i = 0; i < Checkbox.size(); ++i) for(u32 i = 0; i < Checkbox.size(); ++i)
{ {
if(Checkbox[i]->IsChecked()) if(Checkbox[i]->IsChecked())
{ ret |= 1 << i;
ret ^= (int) pow(2, i);
}
} }
return ret; return ret;
} }
return -1; return -2;
} }
void CheckboxPrompt::SetChecked(int box, bool checked)
{
if(box < 0 || box >= (int) Checkbox.size())
return;
Checkbox[box]->SetChecked(checked);
}
int CheckboxPrompt::Show(const char *title, const char *msg, int CheckboxPrompt::Show(const char *title, const char *msg,
const char *chbx1, const char *chbx2, const char *chbx1, const char *chbx2,
const char *chbx3, const char *chbx4, const char *chbx3, const char *chbx4,
const char *chbx5, const char *chbx6) const char *chbx5, const char *chbx6,
int initChecks)
{ {
CheckboxPrompt * Window = new CheckboxPrompt(title, msg); CheckboxPrompt * Window = new CheckboxPrompt(title, msg);
if(chbx1) if(chbx1)
{
Window->AddCheckBox(chbx1); Window->AddCheckBox(chbx1);
Window->SetChecked(0, initChecks & CheckedBox1);
}
if(chbx2) if(chbx2)
{
Window->AddCheckBox(chbx2); Window->AddCheckBox(chbx2);
Window->SetChecked(1, initChecks & CheckedBox2);
}
if(chbx3) if(chbx3)
{
Window->AddCheckBox(chbx3); Window->AddCheckBox(chbx3);
Window->SetChecked(2, initChecks & CheckedBox3);
}
if(chbx4) if(chbx4)
{
Window->AddCheckBox(chbx4); Window->AddCheckBox(chbx4);
Window->SetChecked(3, initChecks & CheckedBox4);
}
if(chbx5) if(chbx5)
{
Window->AddCheckBox(chbx5); Window->AddCheckBox(chbx5);
Window->SetChecked(4, initChecks & CheckedBox5);
}
if(chbx6) if(chbx6)
{
Window->AddCheckBox(chbx6); Window->AddCheckBox(chbx6);
Window->SetChecked(5, initChecks & CheckedBox6);
}
mainWindow->SetState(STATE_DISABLED); mainWindow->SetState(STATE_DISABLED);
mainWindow->Append(Window); mainWindow->Append(Window);
mainWindow->ChangeFocus(Window); mainWindow->ChangeFocus(Window);
int choice = -1; int choice = -2;
while (choice == -1) while (choice == -2)
{ {
usleep(100); usleep(100);

View File

@ -29,6 +29,7 @@
enum enum
{ {
CheckedNone = -0x01,
CheckedBox1 = 0x01, CheckedBox1 = 0x01,
CheckedBox2 = 0x02, CheckedBox2 = 0x02,
CheckedBox3 = 0x04, CheckedBox3 = 0x04,
@ -48,11 +49,14 @@ class CheckboxPrompt : private PromptWindow, public sigslot::has_slots<>
void AddCheckBox(const char *text); void AddCheckBox(const char *text);
//! Default function to get the button pressed //! Default function to get the button pressed
int GetChoice(); int GetChoice();
//! Set a checkbox checked/unchecked
void SetChecked(int box, bool checked);
//! Show window and wait for the user to press OK/Cancel //! Show window and wait for the user to press OK/Cancel
static int Show(const char *title = 0, const char *msg = 0, static int Show(const char *title = 0, const char *msg = 0,
const char *chbx1 = 0, const char *chbx2 = 0, const char *chbx1 = 0, const char *chbx2 = 0,
const char *chbx3 = 0, const char *chbx4 = 0, const char *chbx3 = 0, const char *chbx4 = 0,
const char *chbx5 = 0, const char *chbx6 = 0); const char *chbx5 = 0, const char *chbx6 = 0,
int initChecks = 0);
protected: protected:
void OnCheckBoxClick(GuiButton *sender, int chan, const POINT &pointer); void OnCheckBoxClick(GuiButton *sender, int chan, const POINT &pointer);
std::vector<GuiText *> CheckboxTxt; std::vector<GuiText *> CheckboxTxt;

View File

@ -78,8 +78,8 @@ GameWindow::GameWindow(int Selected)
} }
sizeTxt = new GuiText((char*) NULL, 22, thColor("r=0 g=0 b=0 a=255 - game window size text color")); sizeTxt = new GuiText((char*) NULL, 22, thColor("r=0 g=0 b=0 a=255 - game window size text color"));
sizeTxt->SetAlignment(ALIGN_RIGHT, ALIGN_TOP); sizeTxt->SetAlignment(ALIGN_CENTER, ALIGN_TOP);
sizeTxt->SetPosition(-60, 70); sizeTxt->SetPosition(135, 70);
diskImg = new GuiDiskCover; diskImg = new GuiDiskCover;
diskImg->SetWidescreen(Settings.widescreen); diskImg->SetWidescreen(Settings.widescreen);
@ -172,9 +172,9 @@ GameWindow::GameWindow(int Selected)
Append(backBtn); Append(backBtn);
Append(detailsBtn); Append(detailsBtn);
Append(nameBtn); Append(nameBtn);
Append(sizeTxt);
if (!mountMethod)//stuff we don't show if it is a DVD mounted if (!mountMethod)//stuff we don't show if it is a DVD mounted
{ {
Append(sizeTxt);
Append(btnLeft); Append(btnLeft);
Append(btnRight); Append(btnRight);
for(int i = 0; i < FAVORITE_STARS; ++i) for(int i = 0; i < FAVORITE_STARS; ++i)
@ -283,12 +283,11 @@ void GameWindow::LoadGameSound(const struct discHdr * header)
u32 gameSoundDataLen; u32 gameSoundDataLen;
const u8 *gameSoundData = NULL; const u8 *gameSoundData = NULL;
if(Settings.LoaderMode != LOAD_CHANNELS) if(header->tid != 0)
gameSoundData = BNRInstance::Instance()->GetBannerSound(header->id, &gameSoundDataLen); gameSoundData = BNRInstance::Instance()->GetBannerSound(header->tid, &gameSoundDataLen,
(header->type == TYPE_GAME_EMUNANDCHAN) ? Settings.NandEmuChanPath : "");
else else
{ gameSoundData = BNRInstance::Instance()->GetBannerSound(header->id, &gameSoundDataLen);
gameSoundData = BNRInstance::Instance()->GetBannerSound(header->tid, &gameSoundDataLen);
}
if (gameSoundData) if (gameSoundData)
{ {
@ -425,7 +424,15 @@ void GameWindow::ChangeGame(int EffectDirection)
HaltGui(); HaltGui();
if (!mountMethod && Settings.LoaderMode != LOAD_CHANNELS) if (header->tid != 0)
{
if(header->type == TYPE_GAME_NANDCHAN)
sizeTxt->SetTextf(tr("Real Nand"));
else if(header->type == TYPE_GAME_EMUNANDCHAN)
sizeTxt->SetTextf(tr("Emulated Nand"));
}
else if (!mountMethod)
{ {
float size = 0.0f; float size = 0.0f;
WBFS_GameSize(header->id, &size); WBFS_GameSize(header->id, &size);

View File

@ -43,8 +43,6 @@ bool TitleSelector(char output[])
bool ret = false; bool ret = false;
u64 *titleList = NULL; u64 *titleList = NULL;
ISFS_Initialize();//initialize for "titles.Exists()"
// Get count of titles of the good titles // Get count of titles of the good titles
num_titles = NandTitles.SetType(0x10001); num_titles = NandTitles.SetType(0x10001);
u32 n = num_titles; u32 n = num_titles;
@ -118,8 +116,6 @@ bool TitleSelector(char output[])
options4.SetName(i, " "); options4.SetName(i, " ");
options4.SetValue(i, "%s", tr( "Clear" )); options4.SetValue(i, "%s", tr( "Clear" ));
ISFS_Deinitialize();
bool exit = false; bool exit = false;
GuiImageData btnOutline(Resources::GetFile("button_dialogue_box.png"), Resources::GetFileSize("button_dialogue_box.png")); GuiImageData btnOutline(Resources::GetFile("button_dialogue_box.png"), Resources::GetFileSize("button_dialogue_box.png"));
@ -206,8 +202,6 @@ int TitleBrowser()
s32 ret = -1; s32 ret = -1;
u64 *titleList = NULL; u64 *titleList = NULL;
ISFS_Initialize();//initialize for "titles.Exists()"
// Get count of titles of the good titles // Get count of titles of the good titles
num_titles = NandTitles.SetType(0x10001); num_titles = NandTitles.SetType(0x10001);
u32 n = num_titles; u32 n = num_titles;
@ -333,8 +327,6 @@ int TitleBrowser()
i++; i++;
} }
ISFS_Deinitialize();
delete XML_DB; delete XML_DB;
XML_DB = NULL; XML_DB = NULL;

View File

@ -279,7 +279,10 @@ void CGameCategories::RemoveCategory(unsigned int id)
for(u32 i = 0; i < itr->second.size(); ++i) for(u32 i = 0; i < itr->second.size(); ++i)
{ {
if(itr->second[i] == id) if(itr->second[i] == id)
{
itr->second.erase(itr->second.begin()+ i); itr->second.erase(itr->second.begin()+ i);
--i;
}
} }
} }
} }

View File

@ -46,6 +46,7 @@ CSettings::CSettings()
strcpy(BootDevice, "sd:"); strcpy(BootDevice, "sd:");
snprintf(ConfigPath, sizeof(ConfigPath), "%s/config/", BootDevice); snprintf(ConfigPath, sizeof(ConfigPath), "%s/config/", BootDevice);
this->SetDefault(); this->SetDefault();
FirstTimeRun = true;
} }
CSettings::~CSettings() CSettings::~CSettings()
@ -97,7 +98,7 @@ void CSettings::SetDefault()
cios = BUILD_IOS; cios = BUILD_IOS;
gridRows = 3; gridRows = 3;
error002 = 2; error002 = 2;
partition = -1; partition = 0;
discart = DISCARTS_ORIGINALS_CUSTOMS; discart = DISCARTS_ORIGINALS_CUSTOMS;
xflip = XFLIP_NO; xflip = XFLIP_NO;
quickboot = OFF; quickboot = OFF;
@ -129,14 +130,13 @@ void CSettings::SetDefault()
GameListOffset = 0; GameListOffset = 0;
sneekVideoPatch = OFF; sneekVideoPatch = OFF;
NandEmuMode = OFF; NandEmuMode = OFF;
NandEmuChanMode = OFF;
UseSystemFont = ON; UseSystemFont = ON;
Hooktype = 0; Hooktype = 0;
WiirdDebugger = OFF; WiirdDebugger = OFF;
WiirdDebuggerPause = OFF; WiirdDebuggerPause = OFF;
ShowPlayCount = ON; ShowPlayCount = ON;
RememberUnlock = ON; RememberUnlock = ON;
LoaderMode = LOAD_GAMES; LoaderMode = MODE_WIIGAMES;
SearchMode = SEARCH_BEGINNING; SearchMode = SEARCH_BEGINNING;
} }
@ -168,6 +168,10 @@ bool CSettings::Load()
} }
fclose(file); fclose(file);
// A valid config file exists on the loader
// meaning it is not the first run of the loader.
FirstTimeRun = false;
return true; return true;
} }
@ -300,7 +304,6 @@ bool CSettings::Save()
fprintf(file, "sneekVideoPatch = %d\n", sneekVideoPatch); fprintf(file, "sneekVideoPatch = %d\n", sneekVideoPatch);
fprintf(file, "NandEmuMode = %d\n", NandEmuMode); fprintf(file, "NandEmuMode = %d\n", NandEmuMode);
fprintf(file, "NandEmuPath = %s\n", NandEmuPath); fprintf(file, "NandEmuPath = %s\n", NandEmuPath);
fprintf(file, "NandEmuChanMode = %d\n", NandEmuChanMode);
fprintf(file, "NandEmuChanPath = %s\n", NandEmuChanPath); fprintf(file, "NandEmuChanPath = %s\n", NandEmuChanPath);
fprintf(file, "UseSystemFont = %d\n", UseSystemFont); fprintf(file, "UseSystemFont = %d\n", UseSystemFont);
fprintf(file, "Hooktype = %d\n", Hooktype); fprintf(file, "Hooktype = %d\n", Hooktype);
@ -618,10 +621,6 @@ bool CSettings::SetSetting(char *name, char *value)
{ {
if (sscanf(value, "%d", &i) == 1) NandEmuMode = i; if (sscanf(value, "%d", &i) == 1) NandEmuMode = i;
} }
else if(strcmp(name, "NandEmuChanMode") == 0)
{
if (sscanf(value, "%d", &i) == 1) NandEmuChanMode = i;
}
else if(strcmp(name, "LoaderMode") == 0) else if(strcmp(name, "LoaderMode") == 0)
{ {
if (sscanf(value, "%d", &i) == 1) LoaderMode = i; if (sscanf(value, "%d", &i) == 1) LoaderMode = i;

View File

@ -129,7 +129,6 @@ class CSettings
std::vector<u32> EnabledCategories; std::vector<u32> EnabledCategories;
u8 EntryIOS; u8 EntryIOS;
short NandEmuMode; short NandEmuMode;
short NandEmuChanMode;
short UseSystemFont; short UseSystemFont;
short Hooktype; short Hooktype;
short WiirdDebugger; short WiirdDebugger;
@ -138,6 +137,9 @@ class CSettings
short RememberUnlock; short RememberUnlock;
short LoaderMode; short LoaderMode;
short SearchMode; short SearchMode;
// This variable is not saved to the settings file
bool FirstTimeRun;
protected: protected:
bool ValidVersion(FILE * file); bool ValidVersion(FILE * file);
bool SetSetting(char *name, char *value); bool SetSetting(char *name, char *value);

View File

@ -173,14 +173,9 @@ void CGameTitles::WriteCachedTitles(const char * path)
fclose(f); fclose(f);
} }
void CGameTitles::RemoveUnusedCache(std::vector<std::string> &MissingTitles) void CGameTitles::GetMissingTitles(std::vector<std::string> &MissingTitles, bool removeUnused)
{ {
std::vector<struct discHdr> &FullList = gameList.GetFullGameList(); std::vector<struct discHdr *> &FullList = gameList.GetFilteredList();
if(FullList.empty())
gameList.ReadGameList();
std::vector<struct discHdr> &ChanList = Channels::Instance()->GetDiscHeaderList();
std::vector<bool> UsedCachedList(TitleList.size(), false); std::vector<bool> UsedCachedList(TitleList.size(), false);
for(u32 i = 0; i < FullList.size(); ++i) for(u32 i = 0; i < FullList.size(); ++i)
@ -189,7 +184,7 @@ void CGameTitles::RemoveUnusedCache(std::vector<std::string> &MissingTitles)
for(u32 n = 0; n < TitleList.size(); ++n) for(u32 n = 0; n < TitleList.size(); ++n)
{ {
if(strncasecmp(TitleList[n].GameID, (const char *) FullList[i].id, 6) == 0) if(strncasecmp(TitleList[n].GameID, (const char *) FullList[i]->id, 6) == 0)
{ {
UsedCachedList[n] = true; UsedCachedList[n] = true;
isCached = true; isCached = true;
@ -200,41 +195,25 @@ void CGameTitles::RemoveUnusedCache(std::vector<std::string> &MissingTitles)
if(!isCached) if(!isCached)
{ {
char gameID[7]; char gameID[7];
snprintf(gameID, sizeof(gameID), (const char *) FullList[i].id); snprintf(gameID, sizeof(gameID), (const char *) FullList[i]->id);
MissingTitles.push_back(std::string(gameID)); MissingTitles.push_back(std::string(gameID));
} }
} }
for(u32 i = 0; i < ChanList.size(); ++i) if(!removeUnused)
{ return;
bool isCached = false;
for(u32 n = 0; n < TitleList.size(); ++n)
{
if(strncasecmp(TitleList[n].GameID, (const char *) ChanList[i].id, 4) == 0)
{
UsedCachedList[n] = true;
isCached = true;
break;
}
}
if(!isCached)
{
char gameID[7];
snprintf(gameID, sizeof(gameID), (const char *) ChanList[i].id);
MissingTitles.push_back(std::string(gameID));
}
}
for(u32 n = 0; n < TitleList.size(); ++n) for(u32 n = 0; n < TitleList.size(); ++n)
{ {
if(!UsedCachedList[n]) if(!UsedCachedList[n])
{
TitleList.erase(TitleList.begin()+n); TitleList.erase(TitleList.begin()+n);
n--;
}
} }
} }
void CGameTitles::LoadTitlesFromGameTDB(const char * path, bool forceCacheReload) void CGameTitles::LoadTitlesFromGameTDB(const char * path, bool forceCacheReload, bool removeUnused)
{ {
this->SetDefault(); this->SetDefault();
@ -258,7 +237,8 @@ void CGameTitles::LoadTitlesFromGameTDB(const char * path, bool forceCacheReload
//! Removed unused cache titles and get the still missing ones //! Removed unused cache titles and get the still missing ones
std::vector<std::string> MissingTitles; std::vector<std::string> MissingTitles;
RemoveUnusedCache(MissingTitles); GetMissingTitles(MissingTitles, removeUnused);
if(MissingTitles.size() == 0) if(MissingTitles.size() == 0)
{ {
WriteCachedTitles(Cachepath.c_str()); WriteCachedTitles(Cachepath.c_str());

View File

@ -35,7 +35,7 @@ class CGameTitles
//! Get possible number of players for this game //! Get possible number of players for this game
int GetPlayersCount(const char * id) const; int GetPlayersCount(const char * id) const;
//! Load Game Titles from GameTDB //! Load Game Titles from GameTDB
void LoadTitlesFromGameTDB(const char * path, bool forceCacheReload = false); void LoadTitlesFromGameTDB(const char * path, bool forceCacheReload = false, bool removeUnused = false);
//! Set default game titles //! Set default game titles
void SetDefault(); void SetDefault();
//! Free memory and remove all titles - Same as SetDefault() //! Free memory and remove all titles - Same as SetDefault()
@ -43,7 +43,7 @@ class CGameTitles
protected: protected:
u32 ReadCachedTitles(const char * path); u32 ReadCachedTitles(const char * path);
void WriteCachedTitles(const char * path); void WriteCachedTitles(const char * path);
void RemoveUnusedCache(std::vector<std::string> &MissingTitles); void GetMissingTitles(std::vector<std::string> &MissingTitles, bool removeUnused);
std::vector<GameTitle> TitleList; std::vector<GameTitle> TitleList;
}; };

View File

@ -11,8 +11,19 @@ enum
enum enum
{ {
LOAD_GAMES = 0, TYPE_GAME_WII = 0x00,
LOAD_CHANNELS = 1 TYPE_GAME_GC = 0x01,
TYPE_GAME_NANDCHAN = 0x02,
TYPE_GAME_EMUNANDCHAN = 0x03,
};
enum
{
MODE_NONE = 0x00,
MODE_WIIGAMES = 0x01,
MODE_NANDCHANNELS = 0x02,
MODE_EMUCHANNELS = 0x04,
MODE_ALL = 0xFF,
}; };
enum enum
@ -181,6 +192,7 @@ enum
BLOCK_CATEGORIES_MENU = 0x080000, BLOCK_CATEGORIES_MENU = 0x080000,
BLOCK_SD_RELOAD_BUTTON = 0x100000, BLOCK_SD_RELOAD_BUTTON = 0x100000,
BLOCK_PRIILOADER_OVERRIDE = 0x200000, BLOCK_PRIILOADER_OVERRIDE = 0x200000,
BLOCK_LOADER_MODE_BUTTON = 0x400000,
BLOCK_ALL = 0xFFFFFFFF, BLOCK_ALL = 0xFFFFFFFF,
}; };

View File

@ -262,13 +262,13 @@ int CustomPathsSM::GetMenuInternal()
snprintf(oldPath, sizeof(oldPath), Settings.NandEmuChanPath); snprintf(oldPath, sizeof(oldPath), Settings.NandEmuChanPath);
titleTxt->SetText(tr( "Nand Emu Channel Path" )); titleTxt->SetText(tr( "Nand Emu Channel Path" ));
ChangePath(Settings.NandEmuChanPath, sizeof(Settings.NandEmuChanPath)); int result = ChangePath(Settings.NandEmuChanPath, sizeof(Settings.NandEmuChanPath));
if(strncasecmp(DeviceHandler::PathToFSName(Settings.NandEmuChanPath), "FAT", 3) != 0) if(strncasecmp(DeviceHandler::PathToFSName(Settings.NandEmuChanPath), "FAT", 3) != 0)
{ {
snprintf(Settings.NandEmuChanPath, sizeof(Settings.NandEmuChanPath), oldPath); snprintf(Settings.NandEmuChanPath, sizeof(Settings.NandEmuChanPath), oldPath);
WindowPrompt(tr("Error:"), tr("Nand Emulation only works on FAT/FAT32 partitions!"), tr("OK")); WindowPrompt(tr("Error:"), tr("Nand Emulation only works on FAT/FAT32 partitions!"), tr("OK"));
} }
else if(Settings.NandEmuChanMode != OFF) else if(result == 1)
{ {
Channels::Instance()->GetEmuChannelList(); Channels::Instance()->GetEmuChannelList();
} }

View File

@ -75,7 +75,10 @@ FeatureSettingsMenu::~FeatureSettingsMenu()
{ {
GameTitles.LoadTitlesFromGameTDB(Settings.titlestxt_path, true); GameTitles.LoadTitlesFromGameTDB(Settings.titlestxt_path, true);
if(!Settings.titlesOverride) if(!Settings.titlesOverride)
{
gameList.ReadGameList(); gameList.ReadGameList();
gameList.LoadUnfiltered();
}
} }
} }
@ -320,14 +323,10 @@ int FeatureSettingsMenu::GetMenuInternal()
StartProgress(tr("Extracting nand files:"), 0, 0, true, false); StartProgress(tr("Extracting nand files:"), 0, 0, true, false);
ShowProgress(tr("Extracting nand files:"), 0, 0, -1, true, false); ShowProgress(tr("Extracting nand files:"), 0, 0, -1, true, false);
ISFS_Initialize();
if(ISFS_ReadDir(nandPath, NULL, &dummy) < 0) if(ISFS_ReadDir(nandPath, NULL, &dummy) < 0)
ret = NandTitle::ExtractFile(nandPath, filePath, false); ret = NandTitle::ExtractFile(nandPath, filePath);
else else
ret = NandTitle::ExtractDir(nandPath, filePath, false); ret = NandTitle::ExtractDir(nandPath, filePath);
ISFS_Deinitialize();
ProgressStop(); ProgressStop();
ProgressCancelEnable(false); ProgressCancelEnable(false);

View File

@ -229,7 +229,7 @@ int GuiSettingsMenu::GetMenuInternal()
if (returnhere == 2) if (returnhere == 2)
{ {
//! Language changed. Reload game titles with new lang code. //! Language changed. Reload game titles with new lang code.
GameTitles.LoadTitlesFromGameTDB(Settings.titlestxt_path); GameTitles.LoadTitlesFromGameTDB(Settings.titlestxt_path, true);
return MENU_SETTINGS; return MENU_SETTINGS;
} }

View File

@ -112,10 +112,11 @@ static const char * HooktypeText[] =
trNOOP( "AXNextFrame" ), trNOOP( "AXNextFrame" ),
}; };
GameLoadSM::GameLoadSM(const char * GameID) GameLoadSM::GameLoadSM(struct discHdr *hdr)
: SettingsMenu(tr("Game Load"), &GuiOptions, MENU_NONE) : SettingsMenu(tr("Game Load"), &GuiOptions, MENU_NONE),
Header(hdr)
{ {
GameConfig = *GameSettings.GetGameCFG(GameID); GameConfig = *GameSettings.GetGameCFG((const char *) Header->id);
if(!btnOutline) if(!btnOutline)
btnOutline = Resources::GetImageData("button_dialogue_box.png"); btnOutline = Resources::GetImageData("button_dialogue_box.png");
@ -172,11 +173,17 @@ void GameLoadSM::SetOptionNames()
Options->SetName(Idx++, "%s", tr( "Parental Control" )); Options->SetName(Idx++, "%s", tr( "Parental Control" ));
Options->SetName(Idx++, "%s", tr( "Error 002 fix" )); Options->SetName(Idx++, "%s", tr( "Error 002 fix" ));
Options->SetName(Idx++, "%s", tr( "Return To" )); Options->SetName(Idx++, "%s", tr( "Return To" ));
Options->SetName(Idx++, "%s", tr( "Alternate DOL" )); if(Header->type == TYPE_GAME_WII)
Options->SetName(Idx++, "%s", tr( "Select DOL Offset" )); {
Options->SetName(Idx++, "%s", tr( "Alternate DOL" ));
Options->SetName(Idx++, "%s", tr( "Select DOL Offset" ));
}
Options->SetName(Idx++, "%s", tr( "Block IOS Reload" )); Options->SetName(Idx++, "%s", tr( "Block IOS Reload" ));
Options->SetName(Idx++, "%s", tr( "Nand Emulation" )); if(Header->type == TYPE_GAME_WII)
Options->SetName(Idx++, "%s", tr( "Nand Emu Path" )); {
Options->SetName(Idx++, "%s", tr( "Nand Emulation" ));
Options->SetName(Idx++, "%s", tr( "Nand Emu Path" ));
}
Options->SetName(Idx++, "%s", tr( "Hooktype" )); Options->SetName(Idx++, "%s", tr( "Hooktype" ));
Options->SetName(Idx++, "%s", tr( "Wiird Debugger" )); Options->SetName(Idx++, "%s", tr( "Wiird Debugger" ));
Options->SetName(Idx++, "%s", tr( "Game Lock" )); Options->SetName(Idx++, "%s", tr( "Game Lock" ));
@ -252,18 +259,21 @@ void GameLoadSM::SetOptionValues()
Options->SetValue(Idx++, "%s", tr( OnOffText[0] )); Options->SetValue(Idx++, "%s", tr( OnOffText[0] ));
} }
//! Settings: Alternate DOL if(Header->type == TYPE_GAME_WII)
Options->SetValue(Idx++, "%s", tr( AlternateDOLText[GameConfig.loadalternatedol] ));
//! Settings: Select DOL Offset
if(GameConfig.loadalternatedol != 1)
Options->SetValue(Idx++, tr("Not required"));
else
{ {
if(GameConfig.alternatedolname.size() != 0) //! Settings: Alternate DOL
Options->SetValue(Idx++, "%i <%s>", GameConfig.alternatedolstart, GameConfig.alternatedolname.c_str()); Options->SetValue(Idx++, "%s", tr( AlternateDOLText[GameConfig.loadalternatedol] ));
//! Settings: Select DOL Offset
if(GameConfig.loadalternatedol != 1)
Options->SetValue(Idx++, tr("Not required"));
else else
Options->SetValue(Idx++, "%i", GameConfig.alternatedolstart); {
if(GameConfig.alternatedolname.size() != 0)
Options->SetValue(Idx++, "%i <%s>", GameConfig.alternatedolstart, GameConfig.alternatedolname.c_str());
else
Options->SetValue(Idx++, "%i", GameConfig.alternatedolstart);
}
} }
//! Settings: Block IOS Reload //! Settings: Block IOS Reload
@ -272,17 +282,20 @@ void GameLoadSM::SetOptionValues()
else else
Options->SetValue(Idx++, "%s", tr( OnOffText[GameConfig.iosreloadblock]) ); Options->SetValue(Idx++, "%s", tr( OnOffText[GameConfig.iosreloadblock]) );
//! Settings: Nand Emulation if(Header->type == TYPE_GAME_WII)
if(GameConfig.NandEmuMode == INHERIT) {
Options->SetValue(Idx++, tr("Use global")); //! Settings: Nand Emulation
else if(GameConfig.NandEmuMode == INHERIT)
Options->SetValue(Idx++, "%s", tr( NandEmuText[GameConfig.NandEmuMode] )); Options->SetValue(Idx++, tr("Use global"));
else
Options->SetValue(Idx++, "%s", tr( NandEmuText[GameConfig.NandEmuMode] ));
//! Settings: Nand Emu Path //! Settings: Nand Emu Path
if(GameConfig.NandEmuPath.size() == 0) if(GameConfig.NandEmuPath.size() == 0)
Options->SetValue(Idx++, tr("Use global")); Options->SetValue(Idx++, tr("Use global"));
else else
Options->SetValue(Idx++, "%s", GameConfig.NandEmuPath.c_str()); Options->SetValue(Idx++, "%s", GameConfig.NandEmuPath.c_str());
}
//! Settings: Hooktype //! Settings: Hooktype
if(GameConfig.Hooktype == INHERIT) if(GameConfig.Hooktype == INHERIT)
@ -397,14 +410,14 @@ int GameLoadSM::GetMenuInternal()
} }
//! Settings: Alternate DOL //! Settings: Alternate DOL
else if (ret == ++Idx) else if ((Header->type == TYPE_GAME_WII) && ret == ++Idx)
{ {
if (++GameConfig.loadalternatedol >= ALT_DOL_MAX_CHOICE) if (++GameConfig.loadalternatedol >= ALT_DOL_MAX_CHOICE)
GameConfig.loadalternatedol = 0; GameConfig.loadalternatedol = 0;
} }
//! Settings: Select DOL Offset from Game //! Settings: Select DOL Offset from Game
else if (ret == ++Idx && GameConfig.loadalternatedol == 1) else if ((Header->type == TYPE_GAME_WII) && ret == ++Idx && GameConfig.loadalternatedol == 1)
{ {
GuiWindow * parentWindow = (GuiWindow *) parentElement; GuiWindow * parentWindow = (GuiWindow *) parentElement;
if(parentWindow) parentWindow->SetState(STATE_DISABLED); if(parentWindow) parentWindow->SetState(STATE_DISABLED);
@ -449,7 +462,7 @@ int GameLoadSM::GetMenuInternal()
} }
//! Settings: Nand Emulation //! Settings: Nand Emulation
else if (ret == ++Idx) else if ((Header->type == TYPE_GAME_WII) && ret == ++Idx)
{ {
if(!IosLoader::IsD2X()) if(!IosLoader::IsD2X())
WindowPrompt(tr("Error:"), tr("Nand Emulation is only available on D2X cIOS!"), tr("OK")); WindowPrompt(tr("Error:"), tr("Nand Emulation is only available on D2X cIOS!"), tr("OK"));
@ -457,7 +470,7 @@ int GameLoadSM::GetMenuInternal()
} }
//! Settings: Nand Emu Path //! Settings: Nand Emu Path
else if (ret == ++Idx) else if ((Header->type == TYPE_GAME_WII) && ret == ++Idx)
{ {
if(!IosLoader::IsD2X()) if(!IosLoader::IsD2X())
WindowPrompt(tr("Error:"), tr("Nand Emulation is only available on D2X cIOS!"), tr("OK")); WindowPrompt(tr("Error:"), tr("Nand Emulation is only available on D2X cIOS!"), tr("OK"));

View File

@ -30,7 +30,7 @@
class GameLoadSM : public SettingsMenu class GameLoadSM : public SettingsMenu
{ {
public: public:
GameLoadSM(const char * GameID); GameLoadSM(struct discHdr *Header);
virtual ~GameLoadSM(); virtual ~GameLoadSM();
protected: protected:
void SetDefaultConfig(); void SetDefaultConfig();
@ -38,6 +38,7 @@ class GameLoadSM : public SettingsMenu
void SetOptionValues(); void SetOptionValues();
int GetMenuInternal(); int GetMenuInternal();
struct discHdr *Header;
GameCFG GameConfig; GameCFG GameConfig;
OptionList GuiOptions; OptionList GuiOptions;

View File

@ -70,7 +70,10 @@ void GameSettingsMenu::SetupMainButtons()
SetMainButton(pos++, tr( "Game Load" ), MainButtonImgData, MainButtonImgOverData); SetMainButton(pos++, tr( "Game Load" ), MainButtonImgData, MainButtonImgOverData);
SetMainButton(pos++, tr( "Ocarina" ), MainButtonImgData, MainButtonImgOverData); SetMainButton(pos++, tr( "Ocarina" ), MainButtonImgData, MainButtonImgOverData);
SetMainButton(pos++, tr( "Categories" ), MainButtonImgData, MainButtonImgOverData); SetMainButton(pos++, tr( "Categories" ), MainButtonImgData, MainButtonImgOverData);
SetMainButton(pos++, tr( "Extract Save to EmuNand" ), MainButtonImgData, MainButtonImgOverData); if(DiscHeader->type == TYPE_GAME_WII)
{
SetMainButton(pos++, tr( "Extract Save to EmuNand" ), MainButtonImgData, MainButtonImgOverData);
}
SetMainButton(pos++, tr( "Default Gamesettings" ), MainButtonImgData, MainButtonImgOverData); SetMainButton(pos++, tr( "Default Gamesettings" ), MainButtonImgData, MainButtonImgOverData);
SetMainButton(pos++, tr( "Uninstall Menu" ), MainButtonImgData, MainButtonImgOverData); SetMainButton(pos++, tr( "Uninstall Menu" ), MainButtonImgData, MainButtonImgOverData);
} }
@ -87,7 +90,7 @@ void GameSettingsMenu::CreateSettingsMenu(int menuNr)
{ {
HideMenu(); HideMenu();
ResumeGui(); ResumeGui();
CurrentMenu = new GameLoadSM((const char *) DiscHeader->id); CurrentMenu = new GameLoadSM(DiscHeader);
Append(CurrentMenu); Append(CurrentMenu);
} }
@ -133,7 +136,7 @@ void GameSettingsMenu::CreateSettingsMenu(int menuNr)
} }
//! Extract Save to EmuNand //! Extract Save to EmuNand
else if(menuNr == Idx++) else if((DiscHeader->type == TYPE_GAME_WII) && menuNr == Idx++)
{ {
int choice = WindowPrompt(tr( "Do you want to extract the save game?" ), tr("The save game will be extracted to your emu nand path."), tr( "Yes" ), tr( "Cancel" )); int choice = WindowPrompt(tr( "Do you want to extract the save game?" ), tr("The save game will be extracted to your emu nand path."), tr( "Yes" ), tr( "Cancel" ));
if (choice == 1) if (choice == 1)

View File

@ -42,14 +42,14 @@ static const char * OnOffText[] =
trNOOP( "ON" ) trNOOP( "ON" )
}; };
static const char * InstallToText[INSTALL_TO_MAX] = static const char * InstallToText[] =
{ {
trNOOP( "None" ), trNOOP( "None" ),
trNOOP( "GAMEID_Gamename" ), trNOOP( "GAMEID_Gamename" ),
trNOOP( "Gamename [GAMEID]" ) trNOOP( "Gamename [GAMEID]" )
}; };
static const char * SplitSizeText[INSTALL_TO_MAX] = static const char * SplitSizeText[] =
{ {
trNOOP( "No Splitting" ), trNOOP( "No Splitting" ),
trNOOP( "Split each 2GB" ), trNOOP( "Split each 2GB" ),
@ -113,6 +113,7 @@ HardDriveSM::~HardDriveSM()
//! Reload the new game titles //! Reload the new game titles
gameList.ReadGameList(); gameList.ReadGameList();
gameList.LoadUnfiltered();
GameTitles.LoadTitlesFromGameTDB(Settings.titlestxt_path); GameTitles.LoadTitlesFromGameTDB(Settings.titlestxt_path);
} }
} }
@ -198,7 +199,7 @@ int HardDriveSM::GetMenuInternal()
Settings.USBPort = 0; Settings.USBPort = 0;
} }
else if (++NewSettingsUSBPort >= 3) // 2 = both ports else if (++NewSettingsUSBPort >= 2) // 2 = both ports
NewSettingsUSBPort = 0; NewSettingsUSBPort = 0;
} }

View File

@ -31,12 +31,17 @@
#include "wad/nandtitle.h" #include "wad/nandtitle.h"
#include "prompts/TitleBrowser.h" #include "prompts/TitleBrowser.h"
#include "system/IosLoader.h" #include "system/IosLoader.h"
#include "usbloader/wbfs.h"
#include "usbloader/GameList.h"
#include "menu.h" #include "menu.h"
static const char * dispMethText[] = static const char * loaderModeText[] =
{ {
trNOOP( "Games" ), trNOOP( "None" ),
trNOOP( "Channels" ) trNOOP( "Wii Games" ),
trNOOP( "Nand Channels" ),
trNOOP( "EmuNand Channels" ),
trNOOP( "All" )
}; };
static const char * OnOffText[] = static const char * OnOffText[] =
@ -46,7 +51,7 @@ static const char * OnOffText[] =
trNOOP( "Auto" ) trNOOP( "Auto" )
}; };
static const char * VideoModeText[VIDEO_MODE_MAX] = static const char * VideoModeText[] =
{ {
trNOOP( "System Default" ), trNOOP( "System Default" ),
trNOOP( "Disc Default" ), trNOOP( "Disc Default" ),
@ -58,7 +63,7 @@ static const char * VideoModeText[VIDEO_MODE_MAX] =
trNOOP( "Force NTSC480p" ), trNOOP( "Force NTSC480p" ),
}; };
static const char * LanguageText[MAX_LANGUAGE] = static const char * LanguageText[] =
{ {
trNOOP( "Japanese" ), trNOOP( "Japanese" ),
trNOOP( "English" ), trNOOP( "English" ),
@ -117,7 +122,6 @@ LoaderSettings::LoaderSettings()
Options->SetName(Idx++, "%s", tr( "Block IOS Reload" )); Options->SetName(Idx++, "%s", tr( "Block IOS Reload" ));
Options->SetName(Idx++, "%s", tr( "Return To" )); Options->SetName(Idx++, "%s", tr( "Return To" ));
Options->SetName(Idx++, "%s", tr( "Nand Saves Emulation" )); Options->SetName(Idx++, "%s", tr( "Nand Saves Emulation" ));
Options->SetName(Idx++, "%s", tr( "Nand Channel Emulation" ));
Options->SetName(Idx++, "%s", tr( "Hooktype" )); Options->SetName(Idx++, "%s", tr( "Hooktype" ));
Options->SetName(Idx++, "%s", tr( "Wiird Debugger" )); Options->SetName(Idx++, "%s", tr( "Wiird Debugger" ));
Options->SetName(Idx++, "%s", tr( "Debugger Paused Start" )); Options->SetName(Idx++, "%s", tr( "Debugger Paused Start" ));
@ -130,7 +134,16 @@ LoaderSettings::LoaderSettings()
LoaderSettings::~LoaderSettings() LoaderSettings::~LoaderSettings()
{ {
if(oldLoaderMode != Settings.LoaderMode) if(oldLoaderMode != Settings.LoaderMode)
GameTitles.LoadTitlesFromGameTDB(Settings.titlestxt_path); {
if(Settings.LoaderMode & MODE_WIIGAMES && (gameList.GameCount() == 0))
{
WBFS_ReInit(WBFS_DEVICE_USB);
gameList.ReadGameList();
}
gameList.LoadUnfiltered();
GameTitles.LoadTitlesFromGameTDB(Settings.titlestxt_path, false, false);
}
} }
void LoaderSettings::SetOptionValues() void LoaderSettings::SetOptionValues()
@ -138,7 +151,11 @@ void LoaderSettings::SetOptionValues()
int Idx = 0; int Idx = 0;
//! Settings: Loader Mode //! Settings: Loader Mode
Options->SetValue(Idx++, "%s", tr(dispMethText[Settings.LoaderMode])); if(Settings.LoaderMode == MODE_NONE) Options->SetValue(Idx++, "%s", tr(loaderModeText[0]));
else if(Settings.LoaderMode == MODE_ALL) Options->SetValue(Idx++, "%s", tr(loaderModeText[4]));
else if(Settings.LoaderMode & MODE_WIIGAMES) Options->SetValue(Idx++, "%s", tr(loaderModeText[1]));
else if(Settings.LoaderMode & MODE_NANDCHANNELS) Options->SetValue(Idx++, "%s", tr(loaderModeText[2]));
else if(Settings.LoaderMode & MODE_EMUCHANNELS) Options->SetValue(Idx++, "%s", tr(loaderModeText[3]));
//! Settings: Video Mode //! Settings: Video Mode
Options->SetValue(Idx++, "%s", tr(VideoModeText[Settings.videomode])); Options->SetValue(Idx++, "%s", tr(VideoModeText[Settings.videomode]));
@ -185,9 +202,6 @@ void LoaderSettings::SetOptionValues()
//! Settings: Nand Emulation //! Settings: Nand Emulation
Options->SetValue(Idx++, "%s", tr( NandEmuText[Settings.NandEmuMode] )); Options->SetValue(Idx++, "%s", tr( NandEmuText[Settings.NandEmuMode] ));
//! Settings: Nand Channel Emulation
Options->SetValue(Idx++, "%s", tr( NandEmuText[Settings.NandEmuChanMode] ));
//! Settings: Hooktype //! Settings: Hooktype
Options->SetValue(Idx++, "%s", tr( HooktypeText[Settings.Hooktype] )); Options->SetValue(Idx++, "%s", tr( HooktypeText[Settings.Hooktype] ));
@ -210,7 +224,11 @@ int LoaderSettings::GetMenuInternal()
//! Settings: Loader Mode //! Settings: Loader Mode
if (ret == ++Idx) if (ret == ++Idx)
{ {
if (++Settings.LoaderMode >= MAX_ON_OFF) Settings.LoaderMode = LOAD_GAMES; if (Settings.LoaderMode == MODE_ALL) Settings.LoaderMode = MODE_NONE;
else if (Settings.LoaderMode & MODE_WIIGAMES) Settings.LoaderMode = MODE_NANDCHANNELS;
else if (Settings.LoaderMode & MODE_NANDCHANNELS) Settings.LoaderMode = MODE_EMUCHANNELS;
else if (Settings.LoaderMode & MODE_EMUCHANNELS) Settings.LoaderMode = MODE_ALL;
else Settings.LoaderMode = MODE_WIIGAMES;
} }
//! Settings: Video Mode //! Settings: Video Mode
@ -309,14 +327,6 @@ int LoaderSettings::GetMenuInternal()
else if (++Settings.NandEmuMode >= 3) Settings.NandEmuMode = 0; else if (++Settings.NandEmuMode >= 3) Settings.NandEmuMode = 0;
} }
//! Settings: Nand Channel Emulation
else if (ret == ++Idx )
{
if(!IosLoader::IsD2X())
WindowPrompt(tr("Error:"), tr("Nand Emulation is only available on D2X cIOS!"), tr("OK"));
else if (++Settings.NandEmuChanMode >= 3) Settings.NandEmuChanMode = 0;
}
//! Settings: Hooktype //! Settings: Hooktype
else if (ret == ++Idx ) else if (ret == ++Idx )
{ {

View File

@ -79,6 +79,7 @@ ParentalControlSM::ParentalControlSM()
Options->SetName(Idx++, "%s", tr( "Block Categories Modify" )); Options->SetName(Idx++, "%s", tr( "Block Categories Modify" ));
Options->SetName(Idx++, "%s", tr( "Block SD Reload Button" )); Options->SetName(Idx++, "%s", tr( "Block SD Reload Button" ));
Options->SetName(Idx++, "%s", tr( "Block Priiloader Override" )); Options->SetName(Idx++, "%s", tr( "Block Priiloader Override" ));
Options->SetName(Idx++, "%s", tr( "Block Loader Mode Button" ));
SetOptionValues(); SetOptionValues();
} }
@ -175,6 +176,9 @@ void ParentalControlSM::SetOptionValues()
//! Settings: Block Priiloader Override //! Settings: Block Priiloader Override
Options->SetValue(Idx++, "%s", tr(OnOffText[((Settings.ParentalBlocks & BLOCK_PRIILOADER_OVERRIDE) != 0)])); Options->SetValue(Idx++, "%s", tr(OnOffText[((Settings.ParentalBlocks & BLOCK_PRIILOADER_OVERRIDE) != 0)]));
//! Settings: Block Loader Mode Button
Options->SetValue(Idx++, "%s", tr(OnOffText[((Settings.ParentalBlocks & BLOCK_LOADER_MODE_BUTTON) != 0)]));
} }
int ParentalControlSM::GetMenuInternal() int ParentalControlSM::GetMenuInternal()
@ -380,6 +384,12 @@ int ParentalControlSM::GetMenuInternal()
Settings.ParentalBlocks ^= BLOCK_PRIILOADER_OVERRIDE; Settings.ParentalBlocks ^= BLOCK_PRIILOADER_OVERRIDE;
} }
//! Settings: Block Loader Mode Button
else if (ret == ++Idx)
{
Settings.ParentalBlocks ^= BLOCK_LOADER_MODE_BUTTON;
}
SetOptionValues(); SetOptionValues();
return MENU_NONE; return MENU_NONE;

View File

@ -43,7 +43,10 @@ UninstallSM::UninstallSM(struct discHdr * header)
int Idx = 0; int Idx = 0;
Options->SetName(Idx++, "%s", tr( "Uninstall Game" )); if(DiscHeader->type == TYPE_GAME_WII)
{
Options->SetName(Idx++, "%s", tr( "Uninstall Game" ));
}
Options->SetName(Idx++, "%s", tr( "Reset Playcounter" )); Options->SetName(Idx++, "%s", tr( "Reset Playcounter" ));
Options->SetName(Idx++, "%s", tr( "Delete Cover Artwork" )); Options->SetName(Idx++, "%s", tr( "Delete Cover Artwork" ));
Options->SetName(Idx++, "%s", tr( "Delete Disc Artwork" )); Options->SetName(Idx++, "%s", tr( "Delete Disc Artwork" ));
@ -57,8 +60,11 @@ void UninstallSM::SetOptionValues()
{ {
int Idx = 0; int Idx = 0;
//! Settings: Uninstall Game if(DiscHeader->type == TYPE_GAME_WII)
Options->SetValue(Idx++, " "); {
//! Settings: Uninstall Game
Options->SetValue(Idx++, " ");
}
//! Settings: Reset Playcounter //! Settings: Reset Playcounter
Options->SetValue(Idx++, " "); Options->SetValue(Idx++, " ");
@ -86,7 +92,7 @@ int UninstallSM::GetMenuInternal()
int Idx = -1; int Idx = -1;
//! Settings: Uninstall Game //! Settings: Uninstall Game
if (ret == ++Idx) if((DiscHeader->type == TYPE_GAME_WII) && ret == ++Idx)
{ {
int choice = WindowPrompt(GameTitles.GetTitle(DiscHeader), tr( "What should be deleted for this game title:" ), tr( "Game Only" ), tr("Uninstall all"), tr( "Cancel" )); int choice = WindowPrompt(GameTitles.GetTitle(DiscHeader), tr( "What should be deleted for this game title:" ), tr( "Game Only" ), tr("Uninstall all"), tr( "Cancel" ));
if (choice == 0) if (choice == 0)

View File

@ -103,6 +103,7 @@ void AppCleanUp(void)
ResourceManager::DestroyInstance(); ResourceManager::DestroyInstance();
WPAD_Shutdown(); WPAD_Shutdown();
ISFS_Deinitialize();
} }
void ExitApp(void) void ExitApp(void)

View File

@ -118,7 +118,8 @@ s32 IosLoader::LoadGameCios(s32 ios)
ret = ReloadIosSafe(ios); ret = ReloadIosSafe(ios);
// Remount devices after reloading IOS. // Remount devices after reloading IOS.
DeviceHandler::Instance()->MountAll(); DeviceHandler::Instance()->MountSD();
DeviceHandler::Instance()->MountAllUSB(true);
Disc_Init(); Disc_Init();
return ret; return ret;

View File

@ -1,7 +1,7 @@
/**************************************************************************** /****************************************************************************
* USB Loader GX resource files. * USB Loader GX resource files.
* This file is generated automatically. * This file is generated automatically.
* Includes 189 files. * Includes 190 files.
* *
* NOTE: * NOTE:
* Any manual modification of this file will be overwriten by the generation. * Any manual modification of this file will be overwriten by the generation.
@ -38,9 +38,6 @@ extern const u32 arrangeList_png_size;
extern const u8 arrangeList_gray_png[]; extern const u8 arrangeList_gray_png[];
extern const u32 arrangeList_gray_png_size; extern const u32 arrangeList_gray_png_size;
extern const u8 background_png[];
extern const u32 background_png_size;
extern const u8 balanceboard_png[]; extern const u8 balanceboard_png[];
extern const u32 balanceboard_png_size; extern const u32 balanceboard_png_size;
@ -164,9 +161,6 @@ extern const u32 drums_png_size;
extern const u8 drumsR_png[]; extern const u8 drumsR_png[];
extern const u32 drumsR_png_size; extern const u32 drumsR_png_size;
extern const u8 dvd_png[];
extern const u32 dvd_png_size;
extern const u8 dvd_gray_png[]; extern const u8 dvd_gray_png[];
extern const u32 dvd_gray_png_size; extern const u32 dvd_gray_png_size;
@ -206,9 +200,33 @@ extern const u32 exit_top_over_png_size;
extern const u8 favIcon_png[]; extern const u8 favIcon_png[];
extern const u32 favIcon_png_size; extern const u32 favIcon_png_size;
extern const u8 background_png[];
extern const u32 background_png_size;
extern const u8 dvd_png[];
extern const u32 dvd_png_size;
extern const u8 favIcon_gray_png[]; extern const u8 favIcon_gray_png[];
extern const u32 favIcon_gray_png_size; extern const u32 favIcon_gray_png_size;
extern const u8 icon_folder_png[];
extern const u32 icon_folder_png_size;
extern const u8 nintendodsR_png[];
extern const u32 nintendodsR_png_size;
extern const u8 playersSort_png[];
extern const u32 playersSort_png_size;
extern const u8 rplayer3_point_png[];
extern const u32 rplayer3_point_png_size;
extern const u8 sdcard_png[];
extern const u32 sdcard_png_size;
extern const u8 startgame_arrow_left_png[];
extern const u32 startgame_arrow_left_png_size;
extern const u8 favorite_png[]; extern const u8 favorite_png[];
extern const u32 favorite_png_size; extern const u32 favorite_png_size;
@ -239,9 +257,6 @@ extern const u32 guitarR_png_size;
extern const u8 gxlogo_png[]; extern const u8 gxlogo_png[];
extern const u32 gxlogo_png_size; extern const u32 gxlogo_png_size;
extern const u8 icon_folder_png[];
extern const u32 icon_folder_png_size;
extern const u8 keyboard_backspace_over_png[]; extern const u8 keyboard_backspace_over_png[];
extern const u32 keyboard_backspace_over_png_size; extern const u32 keyboard_backspace_over_png_size;
@ -266,6 +281,9 @@ extern const u32 keyboard_textbox_png_size;
extern const u8 little_star_png[]; extern const u8 little_star_png[];
extern const u32 little_star_png_size; extern const u32 little_star_png_size;
extern const u8 loader_mode_png[];
extern const u32 loader_mode_png_size;
extern const u8 lock_png[]; extern const u8 lock_png[];
extern const u32 lock_png_size; extern const u32 lock_png_size;
@ -296,9 +314,6 @@ extern const u32 new_png_size;
extern const u8 nintendods_png[]; extern const u8 nintendods_png[];
extern const u32 nintendods_png_size; extern const u32 nintendods_png_size;
extern const u8 nintendodsR_png[];
extern const u32 nintendodsR_png_size;
extern const u8 nocover_png[]; extern const u8 nocover_png[];
extern const u32 nocover_png_size; extern const u32 nocover_png_size;
@ -374,9 +389,6 @@ extern const u32 player4_grab_png_size;
extern const u8 player4_point_png[]; extern const u8 player4_point_png[];
extern const u32 player4_point_png_size; extern const u32 player4_point_png_size;
extern const u8 playersSort_png[];
extern const u32 playersSort_png_size;
extern const u8 progressbar_png[]; extern const u8 progressbar_png[];
extern const u32 progressbar_png_size; extern const u32 progressbar_png_size;
@ -398,9 +410,6 @@ extern const u32 rplayer1_point_png_size;
extern const u8 rplayer2_point_png[]; extern const u8 rplayer2_point_png[];
extern const u32 rplayer2_point_png_size; extern const u32 rplayer2_point_png_size;
extern const u8 rplayer3_point_png[];
extern const u32 rplayer3_point_png_size;
extern const u8 rplayer4_point_png[]; extern const u8 rplayer4_point_png[];
extern const u32 rplayer4_point_png_size; extern const u32 rplayer4_point_png_size;
@ -422,9 +431,6 @@ extern const u32 scrollbar_arrowup_png_size;
extern const u8 scrollbar_box_png[]; extern const u8 scrollbar_box_png[];
extern const u32 scrollbar_box_png_size; extern const u32 scrollbar_box_png_size;
extern const u8 sdcard_png[];
extern const u32 sdcard_png_size;
extern const u8 sdcard_over_png[]; extern const u8 sdcard_over_png[];
extern const u32 sdcard_over_png_size; extern const u32 sdcard_over_png_size;
@ -449,9 +455,6 @@ extern const u32 settings_title_png_size;
extern const u8 settings_title_over_png[]; extern const u8 settings_title_over_png[];
extern const u32 settings_title_over_png_size; extern const u32 settings_title_over_png_size;
extern const u8 startgame_arrow_left_png[];
extern const u32 startgame_arrow_left_png_size;
extern const u8 startgame_arrow_right_png[]; extern const u8 startgame_arrow_right_png[];
extern const u32 startgame_arrow_right_png_size; extern const u32 startgame_arrow_right_png_size;
@ -589,7 +592,6 @@ RecourceFile Resources::RecourceFiles[] =
{"arrangeGrid_gray.png", arrangeGrid_gray_png, arrangeGrid_gray_png_size, NULL, 0}, {"arrangeGrid_gray.png", arrangeGrid_gray_png, arrangeGrid_gray_png_size, NULL, 0},
{"arrangeList.png", arrangeList_png, arrangeList_png_size, NULL, 0}, {"arrangeList.png", arrangeList_png, arrangeList_png_size, NULL, 0},
{"arrangeList_gray.png", arrangeList_gray_png, arrangeList_gray_png_size, NULL, 0}, {"arrangeList_gray.png", arrangeList_gray_png, arrangeList_gray_png_size, NULL, 0},
{"background.png", background_png, background_png_size, NULL, 0},
{"balanceboard.png", balanceboard_png, balanceboard_png_size, NULL, 0}, {"balanceboard.png", balanceboard_png, balanceboard_png_size, NULL, 0},
{"balanceboardR.png", balanceboardR_png, balanceboardR_png_size, NULL, 0}, {"balanceboardR.png", balanceboardR_png, balanceboardR_png_size, NULL, 0},
{"battery.png", battery_png, battery_png_size, NULL, 0}, {"battery.png", battery_png, battery_png_size, NULL, 0},
@ -631,7 +633,6 @@ RecourceFile Resources::RecourceFiles[] =
{"dialogue_box_startgame.png", dialogue_box_startgame_png, dialogue_box_startgame_png_size, NULL, 0}, {"dialogue_box_startgame.png", dialogue_box_startgame_png, dialogue_box_startgame_png_size, NULL, 0},
{"drums.png", drums_png, drums_png_size, NULL, 0}, {"drums.png", drums_png, drums_png_size, NULL, 0},
{"drumsR.png", drumsR_png, drumsR_png_size, NULL, 0}, {"drumsR.png", drumsR_png, drumsR_png_size, NULL, 0},
{"dvd.png", dvd_png, dvd_png_size, NULL, 0},
{"dvd_gray.png", dvd_gray_png, dvd_gray_png_size, NULL, 0}, {"dvd_gray.png", dvd_gray_png, dvd_gray_png_size, NULL, 0},
{"esrb_ao.png", esrb_ao_png, esrb_ao_png_size, NULL, 0}, {"esrb_ao.png", esrb_ao_png, esrb_ao_png_size, NULL, 0},
{"esrb_e.png", esrb_e_png, esrb_e_png_size, NULL, 0}, {"esrb_e.png", esrb_e_png, esrb_e_png_size, NULL, 0},
@ -645,7 +646,15 @@ RecourceFile Resources::RecourceFiles[] =
{"exit_top.png", exit_top_png, exit_top_png_size, NULL, 0}, {"exit_top.png", exit_top_png, exit_top_png_size, NULL, 0},
{"exit_top_over.png", exit_top_over_png, exit_top_over_png_size, NULL, 0}, {"exit_top_over.png", exit_top_over_png, exit_top_over_png_size, NULL, 0},
{"favIcon.png", favIcon_png, favIcon_png_size, NULL, 0}, {"favIcon.png", favIcon_png, favIcon_png_size, NULL, 0},
{"background.png", background_png, background_png_size, NULL, 0},
{"dvd.png", dvd_png, dvd_png_size, NULL, 0},
{"favIcon_gray.png", favIcon_gray_png, favIcon_gray_png_size, NULL, 0}, {"favIcon_gray.png", favIcon_gray_png, favIcon_gray_png_size, NULL, 0},
{"icon_folder.png", icon_folder_png, icon_folder_png_size, NULL, 0},
{"nintendodsR.png", nintendodsR_png, nintendodsR_png_size, NULL, 0},
{"playersSort.png", playersSort_png, playersSort_png_size, NULL, 0},
{"rplayer3_point.png", rplayer3_point_png, rplayer3_point_png_size, NULL, 0},
{"sdcard.png", sdcard_png, sdcard_png_size, NULL, 0},
{"startgame_arrow_left.png", startgame_arrow_left_png, startgame_arrow_left_png_size, NULL, 0},
{"favorite.png", favorite_png, favorite_png_size, NULL, 0}, {"favorite.png", favorite_png, favorite_png_size, NULL, 0},
{"gameinfo1.png", gameinfo1_png, gameinfo1_png_size, NULL, 0}, {"gameinfo1.png", gameinfo1_png, gameinfo1_png_size, NULL, 0},
{"gameinfo1a.png", gameinfo1a_png, gameinfo1a_png_size, NULL, 0}, {"gameinfo1a.png", gameinfo1a_png, gameinfo1a_png_size, NULL, 0},
@ -656,7 +665,6 @@ RecourceFile Resources::RecourceFiles[] =
{"guitar.png", guitar_png, guitar_png_size, NULL, 0}, {"guitar.png", guitar_png, guitar_png_size, NULL, 0},
{"guitarR.png", guitarR_png, guitarR_png_size, NULL, 0}, {"guitarR.png", guitarR_png, guitarR_png_size, NULL, 0},
{"gxlogo.png", gxlogo_png, gxlogo_png_size, NULL, 0}, {"gxlogo.png", gxlogo_png, gxlogo_png_size, NULL, 0},
{"icon_folder.png", icon_folder_png, icon_folder_png_size, NULL, 0},
{"keyboard_backspace_over.png", keyboard_backspace_over_png, keyboard_backspace_over_png_size, NULL, 0}, {"keyboard_backspace_over.png", keyboard_backspace_over_png, keyboard_backspace_over_png_size, NULL, 0},
{"keyboard_clear_over.png", keyboard_clear_over_png, keyboard_clear_over_png_size, NULL, 0}, {"keyboard_clear_over.png", keyboard_clear_over_png, keyboard_clear_over_png_size, NULL, 0},
{"keyboard_key.png", keyboard_key_png, keyboard_key_png_size, NULL, 0}, {"keyboard_key.png", keyboard_key_png, keyboard_key_png_size, NULL, 0},
@ -665,6 +673,7 @@ RecourceFile Resources::RecourceFiles[] =
{"keyboard_mediumkey_over.png", keyboard_mediumkey_over_png, keyboard_mediumkey_over_png_size, NULL, 0}, {"keyboard_mediumkey_over.png", keyboard_mediumkey_over_png, keyboard_mediumkey_over_png_size, NULL, 0},
{"keyboard_textbox.png", keyboard_textbox_png, keyboard_textbox_png_size, NULL, 0}, {"keyboard_textbox.png", keyboard_textbox_png, keyboard_textbox_png_size, NULL, 0},
{"little_star.png", little_star_png, little_star_png_size, NULL, 0}, {"little_star.png", little_star_png, little_star_png_size, NULL, 0},
{"loader_mode.png", loader_mode_png, loader_mode_png_size, NULL, 0},
{"lock.png", lock_png, lock_png_size, NULL, 0}, {"lock.png", lock_png, lock_png_size, NULL, 0},
{"lock_gray.png", lock_gray_png, lock_gray_png_size, NULL, 0}, {"lock_gray.png", lock_gray_png, lock_gray_png_size, NULL, 0},
{"menu_button.png", menu_button_png, menu_button_png_size, NULL, 0}, {"menu_button.png", menu_button_png, menu_button_png_size, NULL, 0},
@ -675,7 +684,6 @@ RecourceFile Resources::RecourceFiles[] =
{"motionplusR.png", motionplusR_png, motionplusR_png_size, NULL, 0}, {"motionplusR.png", motionplusR_png, motionplusR_png_size, NULL, 0},
{"new.png", new_png, new_png_size, NULL, 0}, {"new.png", new_png, new_png_size, NULL, 0},
{"nintendods.png", nintendods_png, nintendods_png_size, NULL, 0}, {"nintendods.png", nintendods_png, nintendods_png_size, NULL, 0},
{"nintendodsR.png", nintendodsR_png, nintendodsR_png_size, NULL, 0},
{"nocover.png", nocover_png, nocover_png_size, NULL, 0}, {"nocover.png", nocover_png, nocover_png_size, NULL, 0},
{"nocoverFlat.png", nocoverFlat_png, nocoverFlat_png_size, NULL, 0}, {"nocoverFlat.png", nocoverFlat_png, nocoverFlat_png_size, NULL, 0},
{"nocoverFull.png", nocoverFull_png, nocoverFull_png_size, NULL, 0}, {"nocoverFull.png", nocoverFull_png, nocoverFull_png_size, NULL, 0},
@ -701,7 +709,6 @@ RecourceFile Resources::RecourceFiles[] =
{"player3_point.png", player3_point_png, player3_point_png_size, NULL, 0}, {"player3_point.png", player3_point_png, player3_point_png_size, NULL, 0},
{"player4_grab.png", player4_grab_png, player4_grab_png_size, NULL, 0}, {"player4_grab.png", player4_grab_png, player4_grab_png_size, NULL, 0},
{"player4_point.png", player4_point_png, player4_point_png_size, NULL, 0}, {"player4_point.png", player4_point_png, player4_point_png_size, NULL, 0},
{"playersSort.png", playersSort_png, playersSort_png_size, NULL, 0},
{"progressbar.png", progressbar_png, progressbar_png_size, NULL, 0}, {"progressbar.png", progressbar_png, progressbar_png_size, NULL, 0},
{"progressbar_empty.png", progressbar_empty_png, progressbar_empty_png_size, NULL, 0}, {"progressbar_empty.png", progressbar_empty_png, progressbar_empty_png_size, NULL, 0},
{"progressbar_outline.png", progressbar_outline_png, progressbar_outline_png_size, NULL, 0}, {"progressbar_outline.png", progressbar_outline_png, progressbar_outline_png_size, NULL, 0},
@ -709,7 +716,6 @@ RecourceFile Resources::RecourceFiles[] =
{"remove.png", remove_png, remove_png_size, NULL, 0}, {"remove.png", remove_png, remove_png_size, NULL, 0},
{"rplayer1_point.png", rplayer1_point_png, rplayer1_point_png_size, NULL, 0}, {"rplayer1_point.png", rplayer1_point_png, rplayer1_point_png_size, NULL, 0},
{"rplayer2_point.png", rplayer2_point_png, rplayer2_point_png_size, NULL, 0}, {"rplayer2_point.png", rplayer2_point_png, rplayer2_point_png_size, NULL, 0},
{"rplayer3_point.png", rplayer3_point_png, rplayer3_point_png_size, NULL, 0},
{"rplayer4_point.png", rplayer4_point_png, rplayer4_point_png_size, NULL, 0}, {"rplayer4_point.png", rplayer4_point_png, rplayer4_point_png_size, NULL, 0},
{"scrollBarBottom.png", scrollBarBottom_png, scrollBarBottom_png_size, NULL, 0}, {"scrollBarBottom.png", scrollBarBottom_png, scrollBarBottom_png_size, NULL, 0},
{"scrollBarTile.png", scrollBarTile_png, scrollBarTile_png_size, NULL, 0}, {"scrollBarTile.png", scrollBarTile_png, scrollBarTile_png_size, NULL, 0},
@ -717,7 +723,6 @@ RecourceFile Resources::RecourceFiles[] =
{"scrollbar_arrowdown.png", scrollbar_arrowdown_png, scrollbar_arrowdown_png_size, NULL, 0}, {"scrollbar_arrowdown.png", scrollbar_arrowdown_png, scrollbar_arrowdown_png_size, NULL, 0},
{"scrollbar_arrowup.png", scrollbar_arrowup_png, scrollbar_arrowup_png_size, NULL, 0}, {"scrollbar_arrowup.png", scrollbar_arrowup_png, scrollbar_arrowup_png_size, NULL, 0},
{"scrollbar_box.png", scrollbar_box_png, scrollbar_box_png_size, NULL, 0}, {"scrollbar_box.png", scrollbar_box_png, scrollbar_box_png_size, NULL, 0},
{"sdcard.png", sdcard_png, sdcard_png_size, NULL, 0},
{"sdcard_over.png", sdcard_over_png, sdcard_over_png_size, NULL, 0}, {"sdcard_over.png", sdcard_over_png, sdcard_over_png_size, NULL, 0},
{"searchIcon.png", searchIcon_png, searchIcon_png_size, NULL, 0}, {"searchIcon.png", searchIcon_png, searchIcon_png_size, NULL, 0},
{"searchIcon_gray.png", searchIcon_gray_png, searchIcon_gray_png_size, NULL, 0}, {"searchIcon_gray.png", searchIcon_gray_png, searchIcon_gray_png_size, NULL, 0},
@ -726,7 +731,6 @@ RecourceFile Resources::RecourceFiles[] =
{"settings_button_over.png", settings_button_over_png, settings_button_over_png_size, NULL, 0}, {"settings_button_over.png", settings_button_over_png, settings_button_over_png_size, NULL, 0},
{"settings_title.png", settings_title_png, settings_title_png_size, NULL, 0}, {"settings_title.png", settings_title_png, settings_title_png_size, NULL, 0},
{"settings_title_over.png", settings_title_over_png, settings_title_over_png_size, NULL, 0}, {"settings_title_over.png", settings_title_over_png, settings_title_over_png_size, NULL, 0},
{"startgame_arrow_left.png", startgame_arrow_left_png, startgame_arrow_left_png_size, NULL, 0},
{"startgame_arrow_right.png", startgame_arrow_right_png, startgame_arrow_right_png_size, NULL, 0}, {"startgame_arrow_right.png", startgame_arrow_right_png, startgame_arrow_right_png_size, NULL, 0},
{"theme_box.png", theme_box_png, theme_box_png_size, NULL, 0}, {"theme_box.png", theme_box_png, theme_box_png_size, NULL, 0},
{"theme_dialogue_box.png", theme_dialogue_box_png, theme_dialogue_box_png_size, NULL, 0}, {"theme_dialogue_box.png", theme_dialogue_box_png, theme_dialogue_box_png_size, NULL, 0},

View File

@ -213,11 +213,15 @@ void GameBooter::ShutDownDevices(int gameUSBPort)
USB_Deinitialize(); USB_Deinitialize();
} }
int GameBooter::BootGame(const char * gameID) int GameBooter::BootGame(struct discHdr *gameHdr)
{ {
if(!gameID || strlen(gameID) < 3) if(!gameHdr)
return -1; return -1;
char gameID[7];
snprintf(gameID, sizeof(gameID), "%s", gameHdr->id);
gprintf("\tBootGame: %s\n", gameID);
if(Settings.Wiinnertag) if(Settings.Wiinnertag)
Wiinnertag::TagGame(gameID); Wiinnertag::TagGame(gameID);
@ -228,16 +232,9 @@ int GameBooter::BootGame(const char * gameID)
gprintf("\tSettings.partition: %d\n", Settings.partition); gprintf("\tSettings.partition: %d\n", Settings.partition);
s32 ret = -1;
struct discHdr gameHeader; struct discHdr gameHeader;
memcpy(&gameHeader, gameHdr, sizeof(struct discHdr));
//! Find disc header in the game list first
int ret = FindDiscHeader(gameID, gameHeader);
if(ret < 0)
return ret;
//! Set game mode if loading a disc
if(mountMethod)
Settings.LoaderMode = LOAD_GAMES;
//! Remember game's USB port //! Remember game's USB port
int partition = gameList.GetPartitionNumber(gameHeader.id); int partition = gameList.GetPartitionNumber(gameHeader.id);
@ -261,9 +258,9 @@ int GameBooter::BootGame(const char * gameID)
u64 returnToChoice = game_cfg->returnTo ? NandTitles.FindU32(Settings.returnTo) : 0; u64 returnToChoice = game_cfg->returnTo ? NandTitles.FindU32(Settings.returnTo) : 0;
u8 NandEmuMode = game_cfg->NandEmuMode == INHERIT ? Settings.NandEmuMode : game_cfg->NandEmuMode; u8 NandEmuMode = game_cfg->NandEmuMode == INHERIT ? Settings.NandEmuMode : game_cfg->NandEmuMode;
const char *NandEmuPath = game_cfg->NandEmuPath.size() == 0 ? Settings.NandEmuPath : game_cfg->NandEmuPath.c_str(); const char *NandEmuPath = game_cfg->NandEmuPath.size() == 0 ? Settings.NandEmuPath : game_cfg->NandEmuPath.c_str();
if(Settings.LoaderMode == LOAD_CHANNELS) if(gameHeader.tid != 0)
{ {
NandEmuMode = game_cfg->NandEmuMode == INHERIT ? Settings.NandEmuChanMode : game_cfg->NandEmuMode; NandEmuMode = (gameHeader.type == TYPE_GAME_EMUNANDCHAN) ? 2 : 0; // If from emu nand set full emulation mode
NandEmuPath = game_cfg->NandEmuPath.size() == 0 ? Settings.NandEmuChanPath : game_cfg->NandEmuPath.c_str(); NandEmuPath = game_cfg->NandEmuPath.size() == 0 ? Settings.NandEmuChanPath : game_cfg->NandEmuPath.c_str();
} }
@ -297,7 +294,7 @@ int GameBooter::BootGame(const char * gameID)
ocarina_load_code(Settings.Cheatcodespath, gameHeader.id); ocarina_load_code(Settings.Cheatcodespath, gameHeader.id);
//! Setup disc stuff if we load a game //! Setup disc stuff if we load a game
if(Settings.LoaderMode != LOAD_CHANNELS) if(gameHeader.tid == 0)
{ {
//! Setup disc in cIOS and open it //! Setup disc in cIOS and open it
ret = SetupDisc(gameHeader.id); ret = SetupDisc(gameHeader.id);
@ -310,23 +307,34 @@ int GameBooter::BootGame(const char * gameID)
gprintf("%d\n", ret); gprintf("%d\n", ret);
} }
//! Setup IOS reload block if(IosLoader::IsHermesIOS())
if (IosLoader::IsHermesIOS())
{ {
if(reloadblock == ON) if(reloadblock == ON)
{ {
//! Setup IOS reload block
enable_ES_ioctlv_vector(); enable_ES_ioctlv_vector();
if (gameList.GetGameFS(gameHeader.id) == PART_FS_WBFS) if (gameList.GetGameFS(gameHeader.id) == PART_FS_WBFS)
mload_close(); mload_close();
} }
reloadblock = 0;
} }
else if(reloadblock == AUTO) else if(IosLoader::GetIOSInfo(IOS_GetVersion()) != NULL)
{ {
iosinfo_t * iosinfo = IosLoader::GetIOSInfo(IOS_GetVersion()); // Open ES file descriptor for the d2x patches
if(!iosinfo || iosinfo->version < 6) static char es_fs[] ATTRIBUTE_ALIGN(32) = "/dev/es";
reloadblock = 0; int es_fd = IOS_Open(es_fs, 0);
if(es_fd >= 0)
{
// IOS Reload Block
if(reloadblock != OFF) {
BlockIOSReload(es_fd, iosChoice);
}
// Check if new patch method for return to works otherwise old method will be used
if(PatchNewReturnTo(es_fd, returnToChoice) < 0)
returnToChoice = 0; // Patch successful, no need for old method
// Close ES file descriptor
IOS_Close(es_fd);
}
} }
//! Now we can free up the memory used by the game/channel lists //! Now we can free up the memory used by the game/channel lists
@ -334,7 +342,7 @@ int GameBooter::BootGame(const char * gameID)
Channels::DestroyInstance(); Channels::DestroyInstance();
//! Load main.dol or alternative dol into memory, start the game apploader and get game entrypoint //! Load main.dol or alternative dol into memory, start the game apploader and get game entrypoint
if(Settings.LoaderMode != LOAD_CHANNELS) if(gameHeader.tid == 0)
{ {
gprintf("\tGame Boot\n"); gprintf("\tGame Boot\n");
AppEntrypoint = BootPartition(Settings.dolpath, videoChoice, alternatedol, alternatedoloffset); AppEntrypoint = BootPartition(Settings.dolpath, videoChoice, alternatedol, alternatedoloffset);
@ -364,7 +372,7 @@ int GameBooter::BootGame(const char * gameID)
//! Do all the game patches //! Do all the game patches
gprintf("Applying game patches...\n"); gprintf("Applying game patches...\n");
gamepatches(videoChoice, languageChoice, countrystrings, viChoice, sneekChoice, Hooktype, fix002, reloadblock, iosChoice, returnToChoice); gamepatches(videoChoice, languageChoice, countrystrings, viChoice, sneekChoice, Hooktype, fix002, returnToChoice);
//! Load Code handler if needed //! Load Code handler if needed
load_handler(Hooktype, WiirdDebugger, Settings.WiirdDebuggerPause); load_handler(Hooktype, WiirdDebugger, Settings.WiirdDebuggerPause);

View File

@ -18,11 +18,12 @@
#define GAMEBOOTER_HPP_ #define GAMEBOOTER_HPP_
#include <gctypes.h> #include <gctypes.h>
#include "usbloader/disc.h"
class GameBooter class GameBooter
{ {
public: public:
static int BootGame(const char * gameID); static int BootGame(struct discHdr *gameHdr);
static int BootGCMode(); static int BootGCMode();
private: private:
static int FindDiscHeader(const char * gameID, struct discHdr &gameHeader); static int FindDiscHeader(const char * gameID, struct discHdr &gameHeader);

View File

@ -153,20 +153,21 @@ int GameList::InternalReadList(int part)
int GameList::ReadGameList() int GameList::ReadGameList()
{ {
if(Settings.LoaderMode == LOAD_CHANNELS)
return 0;
// Clear list // Clear list
clear(); FullGameList.clear();
GamePartitionList.clear();
//! Clear memory of the vector completely
std::vector<struct discHdr>().swap(FullGameList);
std::vector<int>().swap(GamePartitionList);
int cnt = 0;
if(!Settings.MultiplePartitions) if(!Settings.MultiplePartitions)
{ {
int ret = InternalReadList(Settings.partition); cnt = InternalReadList(Settings.partition);
if(ret <= 0) return ret;
} }
else else
{ {
int cnt = 0;
int partitions = DeviceHandler::GetUSBPartitionCount(); int partitions = DeviceHandler::GetUSBPartitionCount();
for(int part = 0; part < partitions; ++part) for(int part = 0; part < partitions; ++part)
@ -174,31 +175,16 @@ int GameList::ReadGameList()
int ret = InternalReadList(part); int ret = InternalReadList(part);
if(ret > 0) cnt += ret; if(ret > 0) cnt += ret;
} }
if(!cnt) return cnt;
} }
return LoadUnfiltered(); return cnt;
} }
int GameList::FilterList(const wchar_t * gameFilter) void GameList::InternalFilterList(std::vector<struct discHdr> &FullList)
{ {
std::vector<struct discHdr> *FullList = &FullGameList; for (u32 i = 0; i < FullList.size(); ++i)
if(Settings.LoaderMode == LOAD_CHANNELS)
FullList = &(Channels::Instance()->GetDiscHeaderList());
else if (FullGameList.size() == 0)
ReadGameList();
if (gameFilter)
GameFilter.assign(gameFilter);
FilteredList.clear();
for (u32 i = 0; i < FullList->size(); ++i)
{ {
struct discHdr *header = &FullList->at(i); struct discHdr *header = &FullList[i];
/* Register game */ /* Register game */
NewTitles::Instance()->CheckGame(header->id); NewTitles::Instance()->CheckGame(header->id);
@ -252,6 +238,29 @@ int GameList::FilterList(const wchar_t * gameFilter)
FilteredList.push_back(header); FilteredList.push_back(header);
} }
}
int GameList::FilterList(const wchar_t * gameFilter)
{
if((Settings.LoaderMode & MODE_WIIGAMES) && (FullGameList.size() == 0))
ReadGameList();
if (gameFilter)
GameFilter.assign(gameFilter);
FilteredList.clear();
// Filter current game list if selected
if(Settings.LoaderMode & MODE_WIIGAMES)
InternalFilterList(FullGameList);
// Filter nand channel list if selected
if(Settings.LoaderMode & MODE_NANDCHANNELS)
InternalFilterList(Channels::Instance()->GetNandHeaders());
// Filter emu nand channel list if selected
if(Settings.LoaderMode & MODE_EMUCHANNELS)
InternalFilterList(Channels::Instance()->GetEmuHeaders());
NewTitles::Instance()->Save(); NewTitles::Instance()->Save();
GuiSearchBar::FilterList(FilteredList, GameFilter); GuiSearchBar::FilterList(FilteredList, GameFilter);
@ -261,28 +270,38 @@ int GameList::FilterList(const wchar_t * gameFilter)
return FilteredList.size(); return FilteredList.size();
} }
int GameList::LoadUnfiltered() void GameList::InternalLoadUnfiltered(std::vector<struct discHdr> &FullList)
{ {
std::vector<struct discHdr> *FullList = &FullGameList; for (u32 i = 0; i < FullList.size(); ++i)
if(Settings.LoaderMode == LOAD_CHANNELS)
FullList = &(Channels::Instance()->GetDiscHeaderList());
else if (FullGameList.size() == 0)
ReadGameList();
GameFilter.clear();
FilteredList.clear();
for (u32 i = 0; i < FullList->size(); ++i)
{ {
struct discHdr *header = &FullList->at(i); struct discHdr *header = &FullList[i];
/* Register game */ /* Register game */
NewTitles::Instance()->CheckGame(header->id); NewTitles::Instance()->CheckGame(header->id);
FilteredList.push_back(header); FilteredList.push_back(header);
} }
}
int GameList::LoadUnfiltered()
{
if((Settings.LoaderMode & MODE_WIIGAMES) && (FullGameList.size() == 0))
ReadGameList();
GameFilter.clear();
FilteredList.clear();
// Filter current game list if selected
if(Settings.LoaderMode & MODE_WIIGAMES)
InternalLoadUnfiltered(FullGameList);
// Filter nand channel list if selected
if(Settings.LoaderMode & MODE_NANDCHANNELS)
InternalLoadUnfiltered(Channels::Instance()->GetNandHeaders());
// Filter emu nand channel list if selected
if(Settings.LoaderMode & MODE_EMUCHANNELS)
InternalLoadUnfiltered(Channels::Instance()->GetEmuHeaders());
NewTitles::Instance()->Save(); NewTitles::Instance()->Save();
GuiSearchBar::FilterList(FilteredList, GameFilter); GuiSearchBar::FilterList(FilteredList, GameFilter);

View File

@ -37,6 +37,8 @@ class GameList
std::vector<struct discHdr> &GetFullGameList(void) { return FullGameList; } std::vector<struct discHdr> &GetFullGameList(void) { return FullGameList; }
protected: protected:
int InternalReadList(int part); int InternalReadList(int part);
void InternalFilterList(std::vector<struct discHdr> &FullList);
void InternalLoadUnfiltered(std::vector<struct discHdr> &FullList);
static bool NameSortCallback(const struct discHdr *a, const struct discHdr *b); static bool NameSortCallback(const struct discHdr *a, const struct discHdr *b);
static bool PlaycountSortCallback(const struct discHdr *a, const struct discHdr *b); static bool PlaycountSortCallback(const struct discHdr *a, const struct discHdr *b);
static bool RankingSortCallback(const struct discHdr *a, const struct discHdr *b); static bool RankingSortCallback(const struct discHdr *a, const struct discHdr *b);

View File

@ -70,7 +70,7 @@ static int PartitionChoice()
int choice = WindowPrompt(tr( "No WBFS or FAT/NTFS/EXT partition found" ), tr( "You can select or format a partition or use the channel loader mode." ), tr( "Select" ), tr( "Format" ), tr( "Channels" )); int choice = WindowPrompt(tr( "No WBFS or FAT/NTFS/EXT partition found" ), tr( "You can select or format a partition or use the channel loader mode." ), tr( "Select" ), tr( "Format" ), tr( "Channels" ));
if (choice == 0) if (choice == 0)
{ {
Settings.LoaderMode = LOAD_CHANNELS; Settings.LoaderMode = MODE_ALL;
return 0; return 0;
} }
else if(choice == 1) else if(choice == 1)
@ -114,28 +114,33 @@ int MountGamePartition(bool ShowGUI)
gprintf("MountGamePartition()\n"); gprintf("MountGamePartition()\n");
s32 wbfsinit = WBFS_Init(WBFS_DEVICE_USB); s32 wbfsinit = WBFS_Init(WBFS_DEVICE_USB);
if (wbfsinit < 0 && Settings.LoaderMode == LOAD_GAMES)
if(Settings.LoaderMode & MODE_WIIGAMES)
{ {
if(ShowGUI) if (wbfsinit < 0)
ShowError("%s %s", tr( "USB Device not found." ), tr("Switching to channel list mode."));
Settings.LoaderMode = LOAD_CHANNELS;
}
else
{
if(Settings.MultiplePartitions)
ret = WBFS_OpenAll();
else
ret = WBFS_OpenPart(Settings.partition);
if(ret < 0)
ret = FindGamePartition();
if(ret < 0 && Settings.LoaderMode == LOAD_GAMES)
{ {
Settings.LoaderMode = LOAD_CHANNELS;
if(ShowGUI) if(ShowGUI)
ret = PartitionChoice(); ShowError("%s %s", tr( "USB Device not found." ), tr("Switching to channel list mode."));
Settings.LoaderMode = MODE_ALL;
}
else
{
if(Settings.MultiplePartitions)
ret = WBFS_OpenAll();
else
ret = WBFS_OpenPart(Settings.partition);
if(ret < 0)
ret = FindGamePartition();
if(ret < 0)
{
if(ShowGUI)
PartitionChoice();
else
Settings.LoaderMode = MODE_ALL;
}
} }
} }

View File

@ -24,11 +24,14 @@ extern "C"
/* Padding */ /* Padding */
u8 is_ciso; u8 is_ciso;
/* Unused, on channel list mode this is the full 64 bit tid and zeros */ /* Unused, on channel list mode this is the full 64 bit tid */
u64 tid; u64 tid;
/* Unused, using in loader internally to detect title type */
u8 type;
/* rest of unused */ /* rest of unused */
u8 unused[5]; u8 unused[4];
/* Magic word */ /* Magic word */
u32 magic; u32 magic;

View File

@ -147,7 +147,7 @@ s32 USBStorage2_GetCapacity(u32 port, u32 *_sector_size)
{ {
s32 ret; s32 ret;
u32 sector_size = 0; u32 sector_size = 0;
USBStorage2_SetPort(port); //USBStorage2_SetPort(port);
ret = IOS_IoctlvFormat(hid, fd, USB_IOCTL_UMS_GET_CAPACITY, ":i", &sector_size); ret = IOS_IoctlvFormat(hid, fd, USB_IOCTL_UMS_GET_CAPACITY, ":i", &sector_size);
@ -170,7 +170,7 @@ s32 USBStorage2_ReadSectors(u32 port, u32 sector, u32 numSectors, void *buffer)
if (!mem2_ptr) if (!mem2_ptr)
mem2_ptr = (u8 *) MEM2_alloc(MAX_SECTOR_SIZE * MAX_BUFFER_SECTORS); mem2_ptr = (u8 *) MEM2_alloc(MAX_SECTOR_SIZE * MAX_BUFFER_SECTORS);
USBStorage2_SetPort(port); //USBStorage2_SetPort(port);
s32 read_secs, read_size; s32 read_secs, read_size;
@ -216,7 +216,7 @@ s32 USBStorage2_WriteSectors(u32 port, u32 sector, u32 numSectors, const void *b
if (!mem2_ptr) if (!mem2_ptr)
mem2_ptr = (u8 *) MEM2_alloc(MAX_SECTOR_SIZE * MAX_BUFFER_SECTORS); mem2_ptr = (u8 *) MEM2_alloc(MAX_SECTOR_SIZE * MAX_BUFFER_SECTORS);
USBStorage2_SetPort(port); //USBStorage2_SetPort(port);
s32 write_size, write_secs; s32 write_size, write_secs;

View File

@ -48,6 +48,20 @@ s32 WBFS_Init(u32 device)
return Wbfs::Init(device); return Wbfs::Init(device);
} }
s32 WBFS_ReInit(u32 device)
{
WBFS_CloseAll();
s32 ret = -1;
if(Settings.MultiplePartitions)
ret = WBFS_OpenAll();
else
ret = WBFS_OpenPart(Settings.partition);
return ret;
}
s32 WBFS_OpenAll() s32 WBFS_OpenAll()
{ {
int ret = -1; int ret = -1;

View File

@ -20,6 +20,7 @@ extern "C"
/* Prototypes */ /* Prototypes */
s32 WBFS_Init(u32 device); s32 WBFS_Init(u32 device);
s32 WBFS_ReInit(u32 device);
s32 WBFS_Format(u32 lba, u32 size, u32 port); s32 WBFS_Format(u32 lba, u32 size, u32 port);
s32 WBFS_GetCount(int part, u32 *count); s32 WBFS_GetCount(int part, u32 *count);
s32 WBFS_GetHeaders(int part, struct discHdr *, u32, u32); s32 WBFS_GetHeaders(int part, struct discHdr *, u32, u32);

View File

@ -425,7 +425,7 @@ u64 NandTitle::FindU32(const char *s)
return 0; return 0;
} }
int NandTitle::LoadFileFromNand(const char *filepath, u8 **outbuffer, u32 *outfilesize, bool isfsInit) int NandTitle::LoadFileFromNand(const char *filepath, u8 **outbuffer, u32 *outfilesize)
{ {
if(!filepath) if(!filepath)
return -1; return -1;
@ -434,13 +434,10 @@ int NandTitle::LoadFileFromNand(const char *filepath, u8 **outbuffer, u32 *outfi
if(!stats) if(!stats)
return IPC_ENOMEM; return IPC_ENOMEM;
if(isfsInit) ISFS_Initialize();
int fd = ISFS_Open(filepath, ISFS_OPEN_READ); int fd = ISFS_Open(filepath, ISFS_OPEN_READ);
if(fd < 0) if(fd < 0)
{ {
free(stats); free(stats);
if(isfsInit) ISFS_Deinitialize();
return fd; return fd;
} }
@ -449,7 +446,6 @@ int NandTitle::LoadFileFromNand(const char *filepath, u8 **outbuffer, u32 *outfi
{ {
free(stats); free(stats);
ISFS_Close(fd); ISFS_Close(fd);
if(isfsInit) ISFS_Deinitialize();
return ret; return ret;
} }
@ -461,14 +457,12 @@ int NandTitle::LoadFileFromNand(const char *filepath, u8 **outbuffer, u32 *outfi
if(!buffer) if(!buffer)
{ {
ISFS_Close(fd); ISFS_Close(fd);
if(isfsInit) ISFS_Deinitialize();
return IPC_ENOMEM; return IPC_ENOMEM;
} }
ret = ISFS_Read(fd, buffer, filesize); ret = ISFS_Read(fd, buffer, filesize);
ISFS_Close(fd); ISFS_Close(fd);
if(isfsInit) ISFS_Deinitialize();
if (ret < 0) if (ret < 0)
{ {
@ -523,7 +517,7 @@ static void ConvertInvalidCharacters(std::string &filepath)
} }
} }
int NandTitle::ExtractFile(const char *nandPath, const char *filepath, bool isfsInit) int NandTitle::ExtractFile(const char *nandPath, const char *filepath)
{ {
if(!nandPath || !filepath) if(!nandPath || !filepath)
return -1; return -1;
@ -560,9 +554,6 @@ int NandTitle::ExtractFile(const char *nandPath, const char *filepath, bool isfs
return -666; return -666;
} }
if(isfsInit)
ISFS_Initialize();
do do
{ {
fd = ISFS_Open(nandPath, ISFS_OPEN_READ); fd = ISFS_Open(nandPath, ISFS_OPEN_READ);
@ -614,9 +605,6 @@ int NandTitle::ExtractFile(const char *nandPath, const char *filepath, bool isfs
if(fd >= 0) if(fd >= 0)
ISFS_Close(fd); ISFS_Close(fd);
if(isfsInit)
ISFS_Deinitialize();
if(ProgressCanceled()) if(ProgressCanceled())
return PROGRESS_CANCELED; return PROGRESS_CANCELED;
@ -668,7 +656,7 @@ int NandTitle::InternalExtractDir(char *nandPath, std::string &filepath)
std::string filepathCpy = filepath; std::string filepathCpy = filepath;
ConvertInvalidCharacters(filepathCpy); ConvertInvalidCharacters(filepathCpy);
int res = ExtractFile(nandPath, filepathCpy.c_str(), false); int res = ExtractFile(nandPath, filepathCpy.c_str());
if(res < 0) { if(res < 0) {
gprintf("ExtractFile: Error %i occured on file extract: %s\n", res, nandPath); gprintf("ExtractFile: Error %i occured on file extract: %s\n", res, nandPath);
ret = -2; ret = -2;
@ -696,7 +684,7 @@ int NandTitle::InternalExtractDir(char *nandPath, std::string &filepath)
return ret; return ret;
} }
int NandTitle::ExtractDir(const char *nandPath, const char *filepath, bool isfsInit) int NandTitle::ExtractDir(const char *nandPath, const char *filepath)
{ {
if(!filepath || !nandPath) if(!filepath || !nandPath)
return -1; return -1;
@ -708,14 +696,8 @@ int NandTitle::ExtractDir(const char *nandPath, const char *filepath, bool isfsI
snprintf(internNandPath, ISFS_MAXPATH, nandPath); snprintf(internNandPath, ISFS_MAXPATH, nandPath);
if(isfsInit)
ISFS_Initialize();
int ret = InternalExtractDir(internNandPath, internFilePath); int ret = InternalExtractDir(internNandPath, internFilePath);
if(isfsInit)
ISFS_Deinitialize();
free(internNandPath); free(internNandPath);
return ret; return ret;

View File

@ -97,9 +97,9 @@ class NandTitle
bool GetName(u64 tid, int language, wchar_t* name); bool GetName(u64 tid, int language, wchar_t* name);
static int LoadFileFromNand(const char *filepath, u8 **outbuffer, u32 *outfilesize, bool isfsInit = true); static int LoadFileFromNand(const char *filepath, u8 **outbuffer, u32 *outfilesize);
static int ExtractFile(const char *nandPath, const char *filepath, bool isfsInit = true); static int ExtractFile(const char *nandPath, const char *filepath);
static int ExtractDir(const char *wiipath, const char *filepath, bool isfsInit = true); static int ExtractDir(const char *wiipath, const char *filepath);
private: private:
static int InternalExtractDir(char *nandPath, std::string &filepath); static int InternalExtractDir(char *nandPath, std::string &filepath);

View File

@ -34,11 +34,13 @@ EOF
echo "svnrev.c created" >&2 echo "svnrev.c created" >&2
fi fi
echo >&2 echo >&2
fi
rev_new=`expr $rev_new + 1`
rev_date=`date -u +%Y%m%d%H%M`
cat <<EOF > ./HBC/META.XML rev_new=`expr $rev_new + 1`
rev_date=`date -u +%Y%m%d%H%M`
cat <<EOF > ./HBC/META.XML
<?xml version="1.0" encoding="UTF-8" standalone="yes"?> <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<app version="1"> <app version="1">
<name> USB Loader GX</name> <name> USB Loader GX</name>
@ -94,6 +96,3 @@ http://www.gnu.org/software/gettext/gettext.html
</long_description> </long_description>
</app> </app>
EOF EOF
fi
echo $a