*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">
<name> USB Loader GX</name>
<coder>USB Loader GX Team</coder>
<version>2.3 r1134</version>
<release_date>201111201046</release_date>
<version>2.3 r1135</version>
<release_date>201112222230</release_date>
<!-- // remove this line to enable arguments
<arguments>
<arg>--ios=250</arg>

View File

@ -5,7 +5,7 @@ msgid ""
msgstr ""
"Project-Id-Version: USB Loader GX\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"
"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"
@ -247,6 +247,9 @@ msgstr ""
msgid "Block IOS Reload"
msgstr "Zablokovat opetovné zavedení IOS"
msgid "Block Loader Mode Button"
msgstr ""
msgid "Block Loader Settings"
msgstr "Zablokovat nastavení spouštění"
@ -610,6 +613,12 @@ msgstr "CHYBA:"
msgid "ERROR: Can't set up theme."
msgstr "CHYBA: Nelze nastavit téma."
msgid "EmuNand Channels"
msgstr ""
msgid "Emulated Nand"
msgstr ""
msgid "English"
msgstr "Anglicky"
@ -999,6 +1008,9 @@ msgstr "Cesta k jazykovym souborum"
msgid "Languagepath changed."
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"
msgstr "Vlevo"
@ -1081,7 +1093,7 @@ msgstr "Mód hudební smycky"
msgid "Music Volume"
msgstr "Hlasitost hudby"
msgid "Nand Channel Emulation"
msgid "Nand Channels"
msgstr ""
msgid "Nand Emu Channel Path"
@ -1303,6 +1315,9 @@ msgstr "Náhodné prehrávání hudby"
msgid "Reading WAD data... Ok!"
msgstr "Nacítám WAD data... Ok!"
msgid "Real Nand"
msgstr ""
msgid "Receiving file from:"
msgstr "Prijímám soubor z:"
@ -1405,6 +1420,12 @@ msgstr "Vybrat DOL ze hry"
msgid "Select game categories"
msgstr ""
msgid "Select loader mode"
msgstr ""
msgid "Select titles sources."
msgstr ""
msgid "Sept"
msgstr "Zárí"
@ -1701,6 +1722,9 @@ msgstr ""
msgid "Widescreen Fix"
msgstr "Korekce širokoúhlé obrazovky"
msgid "Wii Games"
msgstr ""
msgid "Wii Menu"
msgstr "Wii menu"

View File

@ -5,7 +5,7 @@ msgid ""
msgstr ""
"Project-Id-Version: USB Loader GX\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"
"Last-Translator: Fox888[dk]\n"
"Language-Team: [dk]\n"
@ -247,6 +247,9 @@ msgstr "Bloker Hard disk indstillinger"
msgid "Block IOS Reload"
msgstr "Blokér IOS-reload"
msgid "Block Loader Mode Button"
msgstr ""
msgid "Block Loader Settings"
msgstr "Bloker loader indstillinger"
@ -610,6 +613,12 @@ msgstr "FEJL:"
msgid "ERROR: Can't set up theme."
msgstr "FEJL: Temaet kan ikke bruges."
msgid "EmuNand Channels"
msgstr ""
msgid "Emulated Nand"
msgstr ""
msgid "English"
msgstr "Engelsk"
@ -999,6 +1008,9 @@ msgstr "Sti til sprog filer"
msgid "Languagepath changed."
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"
msgstr "Venstre"
@ -1081,7 +1093,7 @@ msgstr "Musik i løkke"
msgid "Music Volume"
msgstr "Lydstyrke"
msgid "Nand Channel Emulation"
msgid "Nand Channels"
msgstr ""
msgid "Nand Emu Channel Path"
@ -1303,6 +1315,9 @@ msgstr "Musik fra tilfældig mappe"
msgid "Reading WAD data... Ok!"
msgstr "Læser WAD-data... Ok!"
msgid "Real Nand"
msgstr ""
msgid "Receiving file from:"
msgstr "Henter fil fra:"
@ -1405,6 +1420,12 @@ msgstr "Vælg DOL fra spil"
msgid "Select game categories"
msgstr "Vælg spille Kategorier"
msgid "Select loader mode"
msgstr ""
msgid "Select titles sources."
msgstr ""
msgid "Sept"
msgstr ""
@ -1701,6 +1722,9 @@ msgstr ""
msgid "Widescreen Fix"
msgstr "Bredformat-fix"
msgid "Wii Games"
msgstr ""
msgid "Wii Menu"
msgstr ""

View File

@ -5,7 +5,7 @@ msgid ""
msgstr ""
"Project-Id-Version: USB Loader GX\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"
"Last-Translator: glowy\n"
"Language-Team: tj_cool, glowy\n"
@ -247,6 +247,9 @@ msgstr "Blokkeer Harddisk instellingen"
msgid "Block IOS Reload"
msgstr "Stop IOS herladen"
msgid "Block Loader Mode Button"
msgstr ""
msgid "Block Loader Settings"
msgstr "Blokkeer Loader Instellingen"
@ -610,6 +613,12 @@ msgstr "FOUT:"
msgid "ERROR: Can't set up theme."
msgstr "FOUT: Kan thema niet instellen"
msgid "EmuNand Channels"
msgstr ""
msgid "Emulated Nand"
msgstr ""
msgid "English"
msgstr "Engels"
@ -999,6 +1008,9 @@ msgstr "Locatie Taalbestanden"
msgid "Languagepath changed."
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"
msgstr "Links"
@ -1081,7 +1093,7 @@ msgstr "Muziek Herhaal Mode"
msgid "Music Volume"
msgstr "Muziekvolume"
msgid "Nand Channel Emulation"
msgid "Nand Channels"
msgstr ""
msgid "Nand Emu Channel Path"
@ -1303,6 +1315,9 @@ msgstr "Willekeurige Map Muziek"
msgid "Reading WAD data... Ok!"
msgstr "WAD data lezen... Ok!"
msgid "Real Nand"
msgstr ""
msgid "Receiving file from:"
msgstr "Bestand ontvangen van:"
@ -1405,6 +1420,12 @@ msgstr "Selecteer een DOL van Spel"
msgid "Select game categories"
msgstr "Selecteer spel categorieën"
msgid "Select loader mode"
msgstr ""
msgid "Select titles sources."
msgstr ""
msgid "Sept"
msgstr "Sep"
@ -1701,6 +1722,9 @@ msgstr "Breedbeeld Factor"
msgid "Widescreen Fix"
msgstr "Breedbeeld"
msgid "Wii Games"
msgstr ""
msgid "Wii Menu"
msgstr ""

View File

@ -5,7 +5,7 @@ msgid ""
msgstr ""
"Project-Id-Version: USB Loader GX\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"
"Last-Translator: \n"
"Language-Team: \n"
@ -247,6 +247,9 @@ msgstr ""
msgid "Block IOS Reload"
msgstr ""
msgid "Block Loader Mode Button"
msgstr ""
msgid "Block Loader Settings"
msgstr ""
@ -610,6 +613,12 @@ msgstr ""
msgid "ERROR: Can't set up theme."
msgstr ""
msgid "EmuNand Channels"
msgstr ""
msgid "Emulated Nand"
msgstr ""
msgid "English"
msgstr ""
@ -999,6 +1008,9 @@ msgstr ""
msgid "Languagepath changed."
msgstr ""
msgid "Launching emulated nand channels only works on d2x cIOS! Change game IOS to a d2x cIOS first."
msgstr ""
msgid "Left"
msgstr ""
@ -1081,7 +1093,7 @@ msgstr ""
msgid "Music Volume"
msgstr ""
msgid "Nand Channel Emulation"
msgid "Nand Channels"
msgstr ""
msgid "Nand Emu Channel Path"
@ -1303,6 +1315,9 @@ msgstr ""
msgid "Reading WAD data... Ok!"
msgstr ""
msgid "Real Nand"
msgstr ""
msgid "Receiving file from:"
msgstr ""
@ -1405,6 +1420,12 @@ msgstr ""
msgid "Select game categories"
msgstr ""
msgid "Select loader mode"
msgstr ""
msgid "Select titles sources."
msgstr ""
msgid "Sept"
msgstr ""
@ -1701,6 +1722,9 @@ msgstr ""
msgid "Widescreen Fix"
msgstr ""
msgid "Wii Games"
msgstr ""
msgid "Wii Menu"
msgstr ""

View File

@ -5,7 +5,7 @@ msgid ""
msgstr ""
"Project-Id-Version: USB Loader GX\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"
"Last-Translator: c64rmx\n"
"Language-Team: \n"
@ -247,6 +247,9 @@ msgstr ""
msgid "Block IOS Reload"
msgstr "Blokkaa IOS:in uudelleenlataus"
msgid "Block Loader Mode Button"
msgstr ""
msgid "Block Loader Settings"
msgstr ""
@ -610,6 +613,12 @@ msgstr "VIRHE:"
msgid "ERROR: Can't set up theme."
msgstr ""
msgid "EmuNand Channels"
msgstr ""
msgid "Emulated Nand"
msgstr ""
msgid "English"
msgstr "Englanti"
@ -999,6 +1008,9 @@ msgstr ""
msgid "Languagepath changed."
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"
msgstr "Vasen"
@ -1081,7 +1093,7 @@ msgstr ""
msgid "Music Volume"
msgstr "Voimakkuus"
msgid "Nand Channel Emulation"
msgid "Nand Channels"
msgstr ""
msgid "Nand Emu Channel Path"
@ -1303,6 +1315,9 @@ msgstr ""
msgid "Reading WAD data... Ok!"
msgstr "Luetaan WAD:ia... Ok!"
msgid "Real Nand"
msgstr ""
msgid "Receiving file from:"
msgstr "Ladataan tiedostoa:"
@ -1405,6 +1420,12 @@ msgstr ""
msgid "Select game categories"
msgstr ""
msgid "Select loader mode"
msgstr ""
msgid "Select titles sources."
msgstr ""
msgid "Sept"
msgstr "syys"
@ -1701,6 +1722,9 @@ msgstr ""
msgid "Widescreen Fix"
msgstr "Laajakuva korjaus"
msgid "Wii Games"
msgstr ""
msgid "Wii Menu"
msgstr "Wii Menu"

View File

@ -5,7 +5,7 @@ msgid ""
msgstr ""
"Project-Id-Version: USB Loader GX\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"
"Last-Translator: Cyan\n"
"Language-Team: Badablek, Amour, ikya, Cyan & Kin8\n"
@ -247,6 +247,9 @@ msgstr "Bloquer Param. Disques durs"
msgid "Block IOS Reload"
msgstr "Bloquer IOS reload"
msgid "Block Loader Mode Button"
msgstr ""
msgid "Block Loader Settings"
msgstr "Bloquer Param. du Loader"
@ -610,6 +613,12 @@ msgstr "ERREUR:"
msgid "ERROR: Can't set up theme."
msgstr "ERREUR: Configuration thème impossible."
msgid "EmuNand Channels"
msgstr ""
msgid "Emulated Nand"
msgstr ""
msgid "English"
msgstr "Anglais"
@ -999,6 +1008,9 @@ msgstr "Dossier langue"
msgid "Languagepath changed."
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"
msgstr "Gauche"
@ -1081,8 +1093,8 @@ msgstr "Type de boucle"
msgid "Music Volume"
msgstr "Volume musique"
msgid "Nand Channel Emulation"
msgstr "Émulation Nand Chaînes"
msgid "Nand Channels"
msgstr ""
msgid "Nand Emu Channel Path"
msgstr "Dossier ÉmuNand Chaînes"
@ -1303,6 +1315,9 @@ msgstr "Aléatoire"
msgid "Reading WAD data... Ok!"
msgstr "Lecture données WAD... OK!"
msgid "Real Nand"
msgstr ""
msgid "Receiving file from:"
msgstr "Réception du fichier de:"
@ -1405,6 +1420,12 @@ msgstr "Sélectionner un DOL à partir du jeu"
msgid "Select game categories"
msgstr "Filtrer par catégories de jeux"
msgid "Select loader mode"
msgstr ""
msgid "Select titles sources."
msgstr ""
msgid "Sept"
msgstr ""
@ -1701,6 +1722,9 @@ msgstr "Échelle interface 16:9"
msgid "Widescreen Fix"
msgstr "16:9"
msgid "Wii Games"
msgstr ""
msgid "Wii Menu"
msgstr "Menu Wii"
@ -1803,6 +1827,9 @@ msgstr "sur"
msgid "seconds left"
msgstr "secondes restantes"
#~ msgid "Nand Channel Emulation"
#~ msgstr "Émulation Nand Chaînes"
#~ msgid "New Disc Detected"
#~ msgstr "Nouveau DVD détecté"

View File

@ -5,7 +5,7 @@ msgid ""
msgstr ""
"Project-Id-Version: USB Loader GX\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"
"Last-Translator: TheRealVisitor\n"
"Language-Team: Bertilax, Snoozer, wishmasterf, ZEN.13, TheRealVisitor\n"
@ -247,6 +247,9 @@ msgstr "Blocke Festpl. Optionen"
msgid "Block IOS Reload"
msgstr "Blocke IOS-Neuladen"
msgid "Block Loader Mode Button"
msgstr ""
msgid "Block Loader Settings"
msgstr "Blocke Loaderoptionen"
@ -610,6 +613,12 @@ msgstr "FEHLER:"
msgid "ERROR: Can't set up theme."
msgstr "FEHLER: Theme kann nicht eingerichtet werden."
msgid "EmuNand Channels"
msgstr ""
msgid "Emulated Nand"
msgstr ""
msgid "English"
msgstr "Englisch"
@ -999,6 +1008,9 @@ msgstr "Sprachdateien"
msgid "Languagepath changed."
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"
msgstr "Links"
@ -1081,7 +1093,7 @@ msgstr "HGM Wiederholung"
msgid "Music Volume"
msgstr "Musik Lautstärke"
msgid "Nand Channel Emulation"
msgid "Nand Channels"
msgstr ""
msgid "Nand Emu Channel Path"
@ -1303,6 +1315,9 @@ msgstr "Zufällig"
msgid "Reading WAD data... Ok!"
msgstr "Lese WAD Daten... OK!"
msgid "Real Nand"
msgstr ""
msgid "Receiving file from:"
msgstr "Empfange Datei von:"
@ -1405,6 +1420,12 @@ msgstr "Wähle eine DOL vom Spiel"
msgid "Select game categories"
msgstr "Wähle Spiele-Kategorien"
msgid "Select loader mode"
msgstr ""
msgid "Select titles sources."
msgstr ""
msgid "Sept"
msgstr "September"
@ -1701,6 +1722,9 @@ msgstr "Breitbildwert"
msgid "Widescreen Fix"
msgstr "Breitbild (16:9)"
msgid "Wii Games"
msgstr ""
msgid "Wii Menu"
msgstr "Wii Menü"

View File

@ -5,7 +5,7 @@ msgid ""
msgstr ""
"Project-Id-Version: USB Loader GX\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"
"Last-Translator: Springdale\n"
"Language-Team: Tusk, Springdale\n"
@ -247,6 +247,9 @@ msgstr ""
msgid "Block IOS Reload"
msgstr "IOS újratöltés blokkolása"
msgid "Block Loader Mode Button"
msgstr ""
msgid "Block Loader Settings"
msgstr ""
@ -610,6 +613,12 @@ msgstr "HIBA:"
msgid "ERROR: Can't set up theme."
msgstr "HIBA: Téma nem állítható be"
msgid "EmuNand Channels"
msgstr ""
msgid "Emulated Nand"
msgstr ""
msgid "English"
msgstr "Angol"
@ -999,6 +1008,9 @@ msgstr ""
msgid "Languagepath changed."
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"
msgstr "Balra"
@ -1081,7 +1093,7 @@ msgstr ""
msgid "Music Volume"
msgstr "Zene Hangerõ"
msgid "Nand Channel Emulation"
msgid "Nand Channels"
msgstr ""
msgid "Nand Emu Channel Path"
@ -1303,6 +1315,9 @@ msgstr ""
msgid "Reading WAD data... Ok!"
msgstr "WAD adat olvasás... Ok!"
msgid "Real Nand"
msgstr ""
msgid "Receiving file from:"
msgstr "Fájl fogadása innen:"
@ -1405,6 +1420,12 @@ msgstr ""
msgid "Select game categories"
msgstr ""
msgid "Select loader mode"
msgstr ""
msgid "Select titles sources."
msgstr ""
msgid "Sept"
msgstr "Szep"
@ -1701,6 +1722,9 @@ msgstr ""
msgid "Widescreen Fix"
msgstr "Szélesvászon Fix"
msgid "Wii Games"
msgstr ""
msgid "Wii Menu"
msgstr "Wii Menü"

View File

@ -5,7 +5,7 @@ msgid ""
msgstr ""
"Project-Id-Version: USB Loader GX\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"
"Last-Translator: xFede\n"
"Language-Team: Cambo\n"
@ -247,6 +247,9 @@ msgstr "Blocca Impost. Disco Rigido"
msgid "Block IOS Reload"
msgstr "Blocca Ricarica IOS"
msgid "Block Loader Mode Button"
msgstr ""
msgid "Block Loader Settings"
msgstr "Blocca Impost. Loader"
@ -610,6 +613,12 @@ msgstr "ERRORE:"
msgid "ERROR: Can't set up theme."
msgstr "ERRORE: Impossibile configurare il tema."
msgid "EmuNand Channels"
msgstr ""
msgid "Emulated Nand"
msgstr ""
msgid "English"
msgstr "Inglese"
@ -999,6 +1008,9 @@ msgstr "Percorso File di Lingua"
msgid "Languagepath changed."
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"
msgstr "Sinistra"
@ -1081,8 +1093,8 @@ msgstr "Ripeti Musica Sottof."
msgid "Music Volume"
msgstr "Volume Musica"
msgid "Nand Channel Emulation"
msgstr "Emulazione Canali"
msgid "Nand Channels"
msgstr ""
msgid "Nand Emu Channel Path"
msgstr "Percorso Emulazione Canali "
@ -1303,6 +1315,9 @@ msgstr "Riproduci brani in ordine casuale"
msgid "Reading WAD data... Ok!"
msgstr "Leggendo dati WAD... OK!"
msgid "Real Nand"
msgstr ""
msgid "Receiving file from:"
msgstr "Ricevendo file da:"
@ -1405,6 +1420,12 @@ msgstr "Seleziona un DOL dal Gioco"
msgid "Select game categories"
msgstr "Seleziona Categorie Giochi"
msgid "Select loader mode"
msgstr ""
msgid "Select titles sources."
msgstr ""
msgid "Sept"
msgstr "Settembre"
@ -1701,6 +1722,9 @@ msgstr "Fattore Widescreen"
msgid "Widescreen Fix"
msgstr "Corr. Widescreen"
msgid "Wii Games"
msgstr ""
msgid "Wii Menu"
msgstr "Menu Wii"
@ -1803,6 +1827,9 @@ msgstr "di"
msgid "seconds left"
msgstr "secondi rimanenti"
#~ msgid "Nand Channel Emulation"
#~ msgstr "Emulazione Canali"
#~ msgid "New Disc Detected"
#~ msgstr "Rilevato un nuovo disco"

View File

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

View File

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

View File

@ -5,7 +5,7 @@ msgid ""
msgstr ""
"Project-Id-Version: USB Loader GX\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"
"Last-Translator: raschi\n"
"Language-Team: raschi\n"
@ -247,6 +247,9 @@ msgstr "Blokkér harddisk innstillinger"
msgid "Block IOS Reload"
msgstr "Blokkér IOS Reload"
msgid "Block Loader Mode Button"
msgstr ""
msgid "Block Loader Settings"
msgstr "Blokkér loader innstillinger"
@ -610,6 +613,12 @@ msgstr "FEIL:"
msgid "ERROR: Can't set up theme."
msgstr "FEIL: Kan ikke laste tema."
msgid "EmuNand Channels"
msgstr ""
msgid "Emulated Nand"
msgstr ""
msgid "English"
msgstr "Engelsk"
@ -999,6 +1008,9 @@ msgstr "Språkfil sti"
msgid "Languagepath changed."
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"
msgstr "Venstre"
@ -1081,7 +1093,7 @@ msgstr "Musikk loop modus"
msgid "Music Volume"
msgstr "Musikk volum"
msgid "Nand Channel Emulation"
msgid "Nand Channels"
msgstr ""
msgid "Nand Emu Channel Path"
@ -1303,6 +1315,9 @@ msgstr "Tilfeldig musikk fra mappe"
msgid "Reading WAD data... Ok!"
msgstr "Leser WAD data... OK!"
msgid "Real Nand"
msgstr ""
msgid "Receiving file from:"
msgstr "Mottar fil fra:"
@ -1405,6 +1420,12 @@ msgstr "Velg en DOL fra spill"
msgid "Select game categories"
msgstr "Velg spillkategorier"
msgid "Select loader mode"
msgstr ""
msgid "Select titles sources."
msgstr ""
msgid "Sept"
msgstr "Sep"
@ -1701,6 +1722,9 @@ msgstr "Widescreen faktor"
msgid "Widescreen Fix"
msgstr "Widescreen fiks"
msgid "Wii Games"
msgstr ""
msgid "Wii Menu"
msgstr "Wii Meny"

View File

@ -5,7 +5,7 @@ msgid ""
msgstr ""
"Project-Id-Version: USB Loader GX\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"
"Last-Translator: ziom666 (zadania_prog@vp.pl)\n"
"Language-Team: \n"
@ -247,6 +247,9 @@ msgstr ""
msgid "Block IOS Reload"
msgstr "Blokoj przeladowanie IOS"
msgid "Block Loader Mode Button"
msgstr ""
msgid "Block Loader Settings"
msgstr ""
@ -610,6 +613,12 @@ msgstr "Blad:"
msgid "ERROR: Can't set up theme."
msgstr "Blad: nie mozna ustawic tematu"
msgid "EmuNand Channels"
msgstr ""
msgid "Emulated Nand"
msgstr ""
msgid "English"
msgstr "angielski"
@ -999,6 +1008,9 @@ msgstr ""
msgid "Languagepath changed."
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"
msgstr "Lewo"
@ -1081,7 +1093,7 @@ msgstr ""
msgid "Music Volume"
msgstr "Poziom glosnosci"
msgid "Nand Channel Emulation"
msgid "Nand Channels"
msgstr ""
msgid "Nand Emu Channel Path"
@ -1303,6 +1315,9 @@ msgstr ""
msgid "Reading WAD data... Ok!"
msgstr "Odczyt danych WAD...Ok!"
msgid "Real Nand"
msgstr ""
msgid "Receiving file from:"
msgstr "Otrzymywanie pliku z:"
@ -1405,6 +1420,12 @@ msgstr ""
msgid "Select game categories"
msgstr ""
msgid "Select loader mode"
msgstr ""
msgid "Select titles sources."
msgstr ""
msgid "Sept"
msgstr "Wrzesien"
@ -1701,6 +1722,9 @@ msgstr ""
msgid "Widescreen Fix"
msgstr "Popraw ekran panoramiczny"
msgid "Wii Games"
msgstr ""
msgid "Wii Menu"
msgstr ""

View File

@ -5,7 +5,7 @@ msgid ""
msgstr ""
"Project-Id-Version: USB Loader GX\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"
"Last-Translator: aniemotion\n"
"Language-Team: boto12, aniemotion\n"
@ -247,6 +247,9 @@ msgstr "Bloquear configuração do HD"
msgid "Block IOS Reload"
msgstr "Bloquear reload do IOS"
msgid "Block Loader Mode Button"
msgstr ""
msgid "Block Loader Settings"
msgstr "Bloquear configuração do carregador"
@ -610,6 +613,12 @@ msgstr "ERRO:"
msgid "ERROR: Can't set up theme."
msgstr "ERRO: Impossível aplicar tema"
msgid "EmuNand Channels"
msgstr ""
msgid "Emulated Nand"
msgstr ""
msgid "English"
msgstr "Inglês"
@ -999,6 +1008,9 @@ msgstr ""
msgid "Languagepath changed."
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"
msgstr "Esquerda"
@ -1081,7 +1093,7 @@ msgstr "Modo Repetição de Música"
msgid "Music Volume"
msgstr "Volume da Música"
msgid "Nand Channel Emulation"
msgid "Nand Channels"
msgstr ""
msgid "Nand Emu Channel Path"
@ -1303,6 +1315,9 @@ msgstr "Diretótio Aleatório de Músicas"
msgid "Reading WAD data... Ok!"
msgstr "Lendo dados do WAD... Ok!"
msgid "Real Nand"
msgstr ""
msgid "Receiving file from:"
msgstr "Recebendo arquivo de:"
@ -1405,6 +1420,12 @@ msgstr ""
msgid "Select game categories"
msgstr ""
msgid "Select loader mode"
msgstr ""
msgid "Select titles sources."
msgstr ""
msgid "Sept"
msgstr "Set"
@ -1701,6 +1722,9 @@ msgstr ""
msgid "Widescreen Fix"
msgstr "Correção 16:9"
msgid "Wii Games"
msgstr ""
msgid "Wii Menu"
msgstr "Menu do Wii"

View File

@ -5,7 +5,7 @@ msgid ""
msgstr ""
"Project-Id-Version: USB Loader GX\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"
"Last-Translator: pplucky <pplucky@gmail.com>\n"
"Language-Team: Sky8000, pplucky\n"
@ -247,6 +247,9 @@ msgstr "Bloquear Def. Disco Rígido"
msgid "Block IOS Reload"
msgstr "Bloquear Reload do IOS"
msgid "Block Loader Mode Button"
msgstr ""
msgid "Block Loader Settings"
msgstr "Bloquear Def. Loader"
@ -610,6 +613,12 @@ msgstr "ERRO:"
msgid "ERROR: Can't set up theme."
msgstr "ERRO: Impossível configurar tema."
msgid "EmuNand Channels"
msgstr ""
msgid "Emulated Nand"
msgstr ""
msgid "English"
msgstr "Inglês"
@ -999,6 +1008,9 @@ msgstr "Cam. ficheiros Idioma"
msgid "Languagepath changed."
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"
msgstr "Esquerda"
@ -1081,7 +1093,7 @@ msgstr "Modo de Repetição"
msgid "Music Volume"
msgstr "Volume Música"
msgid "Nand Channel Emulation"
msgid "Nand Channels"
msgstr ""
msgid "Nand Emu Channel Path"
@ -1303,6 +1315,9 @@ msgstr "Pasta de Música Aleatória"
msgid "Reading WAD data... Ok!"
msgstr "A ler dados do WAD... Ok!"
msgid "Real Nand"
msgstr ""
msgid "Receiving file from:"
msgstr "A receber ficheiro de:"
@ -1405,6 +1420,12 @@ msgstr "Seleccionar um DOL do Jogo"
msgid "Select game categories"
msgstr "Seleccionar categorias de jogos"
msgid "Select loader mode"
msgstr ""
msgid "Select titles sources."
msgstr ""
msgid "Sept"
msgstr "Set"
@ -1701,6 +1722,9 @@ msgstr "Factor Ecrã Panorâmico"
msgid "Widescreen Fix"
msgstr "Correcção 16:9"
msgid "Wii Games"
msgstr ""
msgid "Wii Menu"
msgstr "Menu Wii"

View File

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

View File

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

View File

@ -5,7 +5,7 @@ msgid ""
msgstr ""
"Project-Id-Version: USB Loader GX\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"
"Last-Translator: Galen/xFede\n"
"Language-Team: Penn, SirPalax, hvy109\n"
@ -247,6 +247,9 @@ msgstr "Bloq. Config. Disco Duro"
msgid "Block IOS Reload"
msgstr "Impedir recarga IOS"
msgid "Block Loader Mode Button"
msgstr ""
msgid "Block Loader Settings"
msgstr "Bloq. Config. Cargador"
@ -610,6 +613,12 @@ msgstr ""
msgid "ERROR: Can't set up theme."
msgstr "ERROR: No se puede configurar el tema."
msgid "EmuNand Channels"
msgstr ""
msgid "Emulated Nand"
msgstr ""
msgid "English"
msgstr "Inglés"
@ -999,6 +1008,9 @@ msgstr "Ruta Archivos Idioma"
msgid "Languagepath changed."
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"
msgstr "Izquierda"
@ -1081,7 +1093,7 @@ msgstr "Modo Bucle Musical"
msgid "Music Volume"
msgstr "Volumen de la Música"
msgid "Nand Channel Emulation"
msgid "Nand Channels"
msgstr ""
msgid "Nand Emu Channel Path"
@ -1303,6 +1315,9 @@ msgstr "Aleatorio de la carpeta musical"
msgid "Reading WAD data... Ok!"
msgstr "Leyendo datos del WAD... ¡Correcto!"
msgid "Real Nand"
msgstr ""
msgid "Receiving file from:"
msgstr "Recibir archivo desde:"
@ -1405,6 +1420,12 @@ msgstr "Seleccionar DOL del Juego"
msgid "Select game categories"
msgstr "Seleccionar categorías de juegos"
msgid "Select loader mode"
msgstr ""
msgid "Select titles sources."
msgstr ""
msgid "Sept"
msgstr ""
@ -1701,6 +1722,9 @@ msgstr "Factor Panorámico"
msgid "Widescreen Fix"
msgstr "Ajuste panorámico"
msgid "Wii Games"
msgstr ""
msgid "Wii Menu"
msgstr "Menú de Wii"

View File

@ -5,7 +5,7 @@ msgid ""
msgstr ""
"Project-Id-Version: USB Loader GX\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"
"Last-Translator: Katsurou\n"
"Language-Team: Katsurou, pirateX\n"
@ -247,6 +247,9 @@ msgstr ""
msgid "Block IOS Reload"
msgstr "Blockera IOS omladdning"
msgid "Block Loader Mode Button"
msgstr ""
msgid "Block Loader Settings"
msgstr ""
@ -610,6 +613,12 @@ msgstr "FEL:"
msgid "ERROR: Can't set up theme."
msgstr "FEL: Kan inte ställa in tema"
msgid "EmuNand Channels"
msgstr ""
msgid "Emulated Nand"
msgstr ""
msgid "English"
msgstr "Engelska"
@ -999,6 +1008,9 @@ msgstr ""
msgid "Languagepath changed."
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"
msgstr "Vänster"
@ -1081,7 +1093,7 @@ msgstr "Musik Återuppspelningsläge"
msgid "Music Volume"
msgstr "Volym"
msgid "Nand Channel Emulation"
msgid "Nand Channels"
msgstr ""
msgid "Nand Emu Channel Path"
@ -1303,6 +1315,9 @@ msgstr ""
msgid "Reading WAD data... Ok!"
msgstr "Läser WAD data... Ok!"
msgid "Real Nand"
msgstr ""
msgid "Receiving file from:"
msgstr "Tar emot filer från:"
@ -1405,6 +1420,12 @@ msgstr ""
msgid "Select game categories"
msgstr ""
msgid "Select loader mode"
msgstr ""
msgid "Select titles sources."
msgstr ""
msgid "Sept"
msgstr ""
@ -1701,6 +1722,9 @@ msgstr ""
msgid "Widescreen Fix"
msgstr "Bredbild 16/9 Fix"
msgid "Wii Games"
msgstr ""
msgid "Wii Menu"
msgstr "Wii-meny"

View File

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

View File

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

View File

@ -5,7 +5,7 @@ msgid ""
msgstr ""
"Project-Id-Version: USB Loader GX\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"
"Last-Translator: omercigingelini\n"
"Language-Team: omercigingelini\n"
@ -247,6 +247,9 @@ msgstr ""
msgid "Block IOS Reload"
msgstr "IOS Yüklemesini Engelle"
msgid "Block Loader Mode Button"
msgstr ""
msgid "Block Loader Settings"
msgstr ""
@ -610,6 +613,12 @@ msgstr "HATA:"
msgid "ERROR: Can't set up theme."
msgstr ""
msgid "EmuNand Channels"
msgstr ""
msgid "Emulated Nand"
msgstr ""
msgid "English"
msgstr "Ingilizce"
@ -999,6 +1008,9 @@ msgstr ""
msgid "Languagepath changed."
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"
msgstr "Sol"
@ -1081,7 +1093,7 @@ msgstr ""
msgid "Music Volume"
msgstr "Ses Seviyesi"
msgid "Nand Channel Emulation"
msgid "Nand Channels"
msgstr ""
msgid "Nand Emu Channel Path"
@ -1303,6 +1315,9 @@ msgstr ""
msgid "Reading WAD data... Ok!"
msgstr "Wad verisi okunuyor..OK!"
msgid "Real Nand"
msgstr ""
msgid "Receiving file from:"
msgstr "Dosyanın alındığı yer:"
@ -1405,6 +1420,12 @@ msgstr ""
msgid "Select game categories"
msgstr ""
msgid "Select loader mode"
msgstr ""
msgid "Select titles sources."
msgstr ""
msgid "Sept"
msgstr "Eyl"
@ -1701,6 +1722,9 @@ msgstr ""
msgid "Widescreen Fix"
msgstr "Genişekran Çözümü"
msgid "Wii Games"
msgstr ""
msgid "Wii Menu"
msgstr "Wii Menü"

View File

@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: USB Loader GX\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2011-06-24 21:05+0200\n"
"POT-Creation-Date: 2011-12-21 19:17+0100\n"
"PO-Revision-Date: 2009-10-01 01:00+0200\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=utf-8\n"
@ -202,82 +202,91 @@ msgstr ""
msgid "335 - clock pos y"
msgstr ""
msgid "220 - list layout favorite btn pos x"
msgid "188 - list layout favorite btn pos x"
msgstr ""
msgid "256 - list layout favorite btn pos x widescreen"
msgid "230 - list layout favorite btn pos x widescreen"
msgstr ""
msgid "13 - list layout favorite btn pos y"
msgstr ""
msgid "260 - list layout search btn pos x"
msgid "228 - list layout search btn pos x"
msgstr ""
msgid "288 - list layout search btn pos x widescreen"
msgid "262 - list layout search btn pos x widescreen"
msgstr ""
msgid "13 - list layout search btn pos y"
msgstr ""
msgid "300 - list layout abc/sort btn pos x"
msgid "268 - list layout abc/sort btn pos x"
msgstr ""
msgid "320 - list layout abc/sort btn pos x widescreen"
msgid "294 - list layout abc/sort btn pos x widescreen"
msgstr ""
msgid "13 - list layout abc/sort btn pos y"
msgstr ""
msgid "340 - list layout category btn pos x"
msgid "308 - list layout loadermode btn pos x"
msgstr ""
msgid "352 - list layout category btn pos x widescreen"
msgid "326 - list layout loadermode btn pos x widescreen"
msgstr ""
msgid "13 - list layout loadermode btn pos y"
msgstr ""
msgid "348 - list layout category btn pos x"
msgstr ""
msgid "358 - list layout category btn pos x widescreen"
msgstr ""
msgid "13 - list layout category btn pos y"
msgstr ""
msgid "380 - list layout list btn pos x"
msgid "388 - list layout list btn pos x"
msgstr ""
msgid "384 - list layout list btn pos x widescreen"
msgid "390 - list layout list btn pos x widescreen"
msgstr ""
msgid "13 - list layout list btn pos y"
msgstr ""
msgid "416 - list layout grid btn pos x widescreen"
msgid "422 - list layout grid btn pos x widescreen"
msgstr ""
msgid "420 - list layout grid btn pos x"
msgid "428 - list layout grid btn pos x"
msgstr ""
msgid "13 - list layout grid btn pos y"
msgstr ""
msgid "448 - list layout carousel btn pos x widescreen"
msgid "454 - list layout carousel btn pos x widescreen"
msgstr ""
msgid "460 - list layout carousel btn pos x"
msgid "468 - list layout carousel btn pos x"
msgstr ""
msgid "13 - list layout carousel btn pos y"
msgstr ""
msgid "480 - list layout lock btn pos x widescreen"
msgid "486 - list layout lock btn pos x widescreen"
msgstr ""
msgid "500 - list layout lock btn pos x"
msgid "508 - list layout lock btn pos x"
msgstr ""
msgid "13 - list layout lock btn pos y"
msgstr ""
msgid "512 - list layout dvd btn pos x widescreen"
msgid "518 - list layout dvd btn pos x widescreen"
msgstr ""
msgid "540 - list layout dvd btn pos x"
msgid "548 - list layout dvd btn pos x"
msgstr ""
msgid "13 - list layout dvd btn pos y"
@ -295,33 +304,42 @@ msgstr ""
msgid "49 - game list layout pos y"
msgstr ""
msgid "160 - grid layout favorite btn pos x"
msgid "120 - grid layout favorite btn pos x"
msgstr ""
msgid "192 - grid layout favorite btn pos x widescreen"
msgid "160 - grid layout favorite btn pos x widescreen"
msgstr ""
msgid "13 - grid layout favorite btn pos y"
msgstr ""
msgid "200 - grid layout search btn pos x"
msgid "160 - grid layout search btn pos x"
msgstr ""
msgid "224 - grid layout search btn pos x widescreen"
msgid "192 - grid layout search btn pos x widescreen"
msgstr ""
msgid "13 - grid layout search btn pos y"
msgstr ""
msgid "240 - grid layout abc/sort btn pos x"
msgid "200 - grid layout abc/sort btn pos x"
msgstr ""
msgid "256 - grid layout abc/sort btn pos x widescreen"
msgid "224 - grid layout abc/sort btn pos x widescreen"
msgstr ""
msgid "13 - grid layout abc/sort btn pos y"
msgstr ""
msgid "240 - grid layout loadermode btn pos x"
msgstr ""
msgid "256 - grid layout loadermode btn pos x widescreen"
msgstr ""
msgid "13 - grid layout loadermode btn pos y"
msgstr ""
msgid "280 - grid layout category btn pos x"
msgstr ""
@ -382,33 +400,42 @@ msgstr ""
msgid "640 - game grid layout width"
msgstr ""
msgid "160 - carousel layout favorite btn pos x"
msgid "120 - carousel layout favorite btn pos x"
msgstr ""
msgid "192 - carousel layout favorite btn pos x widescreen"
msgid "160 - carousel layout favorite btn pos x widescreen"
msgstr ""
msgid "13 - carousel layout favorite btn pos y"
msgstr ""
msgid "200 - carousel layout search btn pos x"
msgid "160 - carousel layout search btn pos x"
msgstr ""
msgid "224 - carousel layout search btn pos x widescreen"
msgid "192 - carousel layout search btn pos x widescreen"
msgstr ""
msgid "13 - carousel layout search btn pos y"
msgstr ""
msgid "240 - carousel layout abc/sort btn pos x"
msgid "200 - carousel layout abc/sort btn pos x"
msgstr ""
msgid "256 - carousel layout abc/sort btn pos x widescreen"
msgid "224 - carousel layout abc/sort btn pos x widescreen"
msgstr ""
msgid "13 - carousel layout abc/sort btn pos y"
msgstr ""
msgid "240 - carousel layout loadermode btn pos x"
msgstr ""
msgid "256 - carousel layout loadermode btn pos x widescreen"
msgstr ""
msgid "13 - carousel layout loadermode btn pos y"
msgstr ""
msgid "280 - carousel layout category btn pos x"
msgstr ""

View File

@ -68,8 +68,6 @@ void Channels::GetEmuChannelList()
void Channels::GetChannelList()
{
ISFS_Initialize();
NandChannels.clear();
// Get count of titles of the good titles
@ -102,6 +100,7 @@ void Channels::GetChannelList()
memset(&NandChannels[s], 0, sizeof(struct discHdr));
memcpy(NandChannels[s].id, id, 4);
NandChannels[s].tid = tid;
NandChannels[s].type = TYPE_GAME_NANDCHAN;
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));
memcpy(NandChannels[s].id, id, 4);
NandChannels[s].tid = tid;
NandChannels[s].type = TYPE_GAME_NANDCHAN;
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(EmuChannels.empty())
this->GetEmuChannelList();
if(NandChannels.empty())
this->GetChannelList();
return EmuChannels;
}
else
{
if(NandChannels.empty())
this->GetChannelList();
return NandChannels;
}
return NandChannels;
}
vector<struct discHdr> & Channels::GetEmuHeaders(void)
{
if(EmuChannels.empty())
this->GetEmuChannelList();
return EmuChannels;
}
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);
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");
free(filepath);
@ -225,7 +221,7 @@ u8 Channels::GetRequestedIOS(const u64 &title)
u8 IOS = 0;
u32 tmdSize = 0;
u8 *titleTMD = GetTMD(title, &tmdSize, true, "");
u8 *titleTMD = GetTMD(title, &tmdSize, "");
if (!titleTMD)
return 0;
@ -237,7 +233,7 @@ u8 Channels::GetRequestedIOS(const u64 &title)
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);
if(!filepath)
@ -256,7 +252,7 @@ u8 *Channels::GetTMD(const u64 &tid, u32 *size, bool isfsInit, const char *prefi
if(*prefix != '\0')
ret = LoadFileToMem(filepath, &tmdBuffer, &tmdSize);
else
ret = NandTitle::LoadFileFromNand(filepath, &tmdBuffer, &tmdSize, isfsInit);
ret = NandTitle::LoadFileFromNand(filepath, &tmdBuffer, &tmdSize);
free(filepath);
@ -280,7 +276,7 @@ u32 Channels::LoadChannel(const u64 &chantitle)
u32 ios = 0;
u32 tmdSize = 0;
u8 *tmdBuffer = GetTMD(chantitle, &tmdSize, false, "");
u8 *tmdBuffer = GetTMD(chantitle, &tmdSize, "");
if(!tmdBuffer)
{
ISFS_Deinitialize();
@ -385,7 +381,7 @@ bool Channels::Identify(const u64 &titleid, u8 *tmdBuffer, u32 tmdSize)
sprintf(filepath, "/sys/cert.sys");
u8 *certBuffer = NULL;
u32 certSize = 0;
if (NandTitle::LoadFileFromNand(filepath, &certBuffer, &certSize, false) < 0)
if (NandTitle::LoadFileFromNand(filepath, &certBuffer, &certSize) < 0)
{
gprintf("Reading certs...Failed!\n");
free(tikBuffer);
@ -491,6 +487,7 @@ bool Channels::ParseTitleDir(char *path, int language)
memset(&EmuChannels[s], 0, sizeof(struct discHdr));
memcpy(EmuChannels[s].id, id, 4);
EmuChannels[s].tid = tid;
EmuChannels[s].type = TYPE_GAME_EMUNANDCHAN;
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;
}
u8 *Channels::GetOpeningBnr(const u64 &title)
u8 *Channels::GetOpeningBnr(const u64 &title, const char *pathPrefix)
{
u8 *banner = NULL;
u32 high = TITLE_UPPER(title);
@ -600,29 +597,19 @@ u8 *Channels::GetOpeningBnr(const u64 &title)
if(!filepath)
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
{
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;
u32 filesize = 0;
int ret = 0;
if(Settings.NandEmuChanMode != 0)
if(pathPrefix && *pathPrefix != 0)
ret = LoadFileToMem(filepath, &buffer, &filesize);
else
ret = NandTitle::LoadFileFromNand(filepath, &buffer, &filesize, false);
ret = NandTitle::LoadFileFromNand(filepath, &buffer, &filesize);
if (ret < 0)
break;
@ -647,12 +634,12 @@ u8 *Channels::GetOpeningBnr(const u64 &title)
if(!found)
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);
else
ret = NandTitle::LoadFileFromNand(filepath, &buffer, &filesize, false);
ret = NandTitle::LoadFileFromNand(filepath, &buffer, &filesize);
if (ret < 0)
break;
@ -679,8 +666,5 @@ u8 *Channels::GetOpeningBnr(const u64 &title)
free(filepath);
if(Settings.NandEmuChanMode == 0)
ISFS_Deinitialize();
return banner;
}

View File

@ -40,13 +40,14 @@ public:
static u32 LoadChannel(const u64 &chantitle);
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 *GetOpeningBnr(const u64 &title);
static u8 *GetOpeningBnr(const u64 &title, const char *pathPrefix);
void GetChannelList();
void GetEmuChannelList();
vector<struct discHdr> & GetDiscHeaderList(void);
vector<struct discHdr> & GetNandHeaders(void);
vector<struct discHdr> & GetEmuHeaders(void);
private:
static Channels *instance;

View File

@ -131,9 +131,9 @@ class PartitionHandle
//! UnMount all Partition
void UnMountAll() { for(u32 i = 0; i < PartitionList.size(); ++i) UnMount(i); };
//! 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"
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
u32 GetLBAStart(int pos) { if(valid(pos)) return PartitionList[pos].LBA_Start; else return 0; };
//! Get the partition size in sectors of this partition

View File

@ -188,9 +188,10 @@ int StartUpProcess::Execute()
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);
Sys_BackToLoader();
// We can allow now operation without cIOS in channel mode with AHPPROT
// Sys_BackToLoader();
}
SetupPads();
@ -245,10 +246,17 @@ int StartUpProcess::Execute()
}
else if(Settings.USBPort == 2)
{
// Right now we support only one port at once
Settings.USBPort = 0;
/*
SetTextf("Mounting USB Port to 1\n");
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 font...%s\n", Theme::LoadFont(Settings.ConfigPath) ? "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.Save();
return GameBooter::BootGame(gameID);
return GameBooter::BootGame(header);
}

View File

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

View File

@ -61,12 +61,12 @@ class OpeningBNR
OpeningBNR();
~OpeningBNR();
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(const u8 * gameID, int lang) { Load(gameID); return GetIMETTitle(lang); };
const u8 * GetBannerSound(u32 * 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:
IMETHeader *imetHdr;
char gameID[7];

View File

@ -10,6 +10,7 @@
#include "prompts/DiscBrowser.h"
#include "prompts/GameWindow.hpp"
#include "prompts/CategorySwitchPrompt.hpp"
#include "prompts/CheckboxPrompt.hpp"
#include "themes/CTheme.h"
#include "language/gettext.h"
#include "usbloader/wbfs.h"
@ -95,6 +96,7 @@ GameBrowseMenu::GameBrowseMenu()
imgUnlock_gray = Resources::GetImageData("unlock_gray.png");
imgCategory = Resources::GetImageData("category.png");
imgCategory_gray = Resources::GetImageData("category_gray.png");
imgLoaderMode = Resources::GetImageData("loader_mode.png");
homebrewImgData = Resources::GetImageData("browser.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->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"));
if (Settings.wsprompt) sortBtnTT->SetWidescreen(Settings.widescreen);
if (Settings.wsprompt) categBtnTT->SetWidescreen(Settings.widescreen);
categBtnTT->SetAlpha(thInt("255 - tooltip alpha"));
categBtnImg = new GuiImage(imgCategory);
@ -387,6 +398,7 @@ GameBrowseMenu::~GameBrowseMenu()
delete imgUnlock_gray;
delete imgCategory;
delete imgCategory_gray;
delete imgLoaderMode;
delete homebrewImgData;
delete homebrewImgDataOver;
delete gameCover;
@ -425,6 +437,7 @@ GameBrowseMenu::~GameBrowseMenu()
delete dvdBtnImg_g;
delete categBtnImg;
delete categBtnImg_g;
delete loaderModeBtnImg;
delete homebrewImg;
delete homebrewImgOver;
delete gameCoverImg;
@ -452,6 +465,7 @@ GameBrowseMenu::~GameBrowseMenu()
delete lockBtn;
delete dvdBtn;
delete categBtn;
delete loaderModeBtn;
delete homebrewBtn;
delete DownloadBtn;
delete idBtn;
@ -470,6 +484,7 @@ GameBrowseMenu::~GameBrowseMenu()
delete lockBtnTT;
delete dvdBtnTT;
delete categBtnTT;
delete loaderModeBtnTT;
delete homebrewBtnTT;
delete DownloadBtnTT;
delete IDBtnTT;
@ -624,23 +639,25 @@ void GameBrowseMenu::ReloadBrowser()
carouselBtn->SetImage(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"));
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"));
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"));
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"));
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"));
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"));
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"));
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"));
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"));
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->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"));
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"));
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"));
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"),
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"),
@ -693,12 +712,14 @@ void GameBrowseMenu::ReloadBrowser()
gridBtn->SetImage(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"));
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"));
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"));
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"),
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"),
@ -747,6 +768,7 @@ void GameBrowseMenu::ReloadBrowser()
Append(categBtn);
Append(listBtn);
Append(gridBtn);
Append(loaderModeBtn);
Append(carouselBtn);
Append(lockBtn);
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)
{
gprintf("\tidBtn Clicked\n");
@ -1372,13 +1422,24 @@ int GameBrowseMenu::OpenClickedGame()
if (RunGame && (game_cfg->ocarina == ON || (game_cfg->ocarina == INHERIT && Settings.ocarina == ON)))
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)
{
GameStatistics.SetPlayCount(header->id, GameStatistics.GetPlayCount(header->id)+1);
GameStatistics.Save();
//Just calling that shuts down everything and starts game
GameBooter::BootGame(IDfull);
GameBooter::BootGame(header);
}
}
else if (choice == 2)

View File

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

View File

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

View File

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

View File

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

View File

@ -29,6 +29,7 @@
enum
{
CheckedNone = -0x01,
CheckedBox1 = 0x01,
CheckedBox2 = 0x02,
CheckedBox3 = 0x04,
@ -48,11 +49,14 @@ class CheckboxPrompt : private PromptWindow, public sigslot::has_slots<>
void AddCheckBox(const char *text);
//! Default function to get the button pressed
int GetChoice();
//! Set a checkbox checked/unchecked
void SetChecked(int box, bool checked);
//! Show window and wait for the user to press OK/Cancel
static int Show(const char *title = 0, const char *msg = 0,
const char *chbx1 = 0, const char *chbx2 = 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:
void OnCheckBoxClick(GuiButton *sender, int chan, const POINT &pointer);
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->SetAlignment(ALIGN_RIGHT, ALIGN_TOP);
sizeTxt->SetPosition(-60, 70);
sizeTxt->SetAlignment(ALIGN_CENTER, ALIGN_TOP);
sizeTxt->SetPosition(135, 70);
diskImg = new GuiDiskCover;
diskImg->SetWidescreen(Settings.widescreen);
@ -172,9 +172,9 @@ GameWindow::GameWindow(int Selected)
Append(backBtn);
Append(detailsBtn);
Append(nameBtn);
Append(sizeTxt);
if (!mountMethod)//stuff we don't show if it is a DVD mounted
{
Append(sizeTxt);
Append(btnLeft);
Append(btnRight);
for(int i = 0; i < FAVORITE_STARS; ++i)
@ -283,12 +283,11 @@ void GameWindow::LoadGameSound(const struct discHdr * header)
u32 gameSoundDataLen;
const u8 *gameSoundData = NULL;
if(Settings.LoaderMode != LOAD_CHANNELS)
gameSoundData = BNRInstance::Instance()->GetBannerSound(header->id, &gameSoundDataLen);
if(header->tid != 0)
gameSoundData = BNRInstance::Instance()->GetBannerSound(header->tid, &gameSoundDataLen,
(header->type == TYPE_GAME_EMUNANDCHAN) ? Settings.NandEmuChanPath : "");
else
{
gameSoundData = BNRInstance::Instance()->GetBannerSound(header->tid, &gameSoundDataLen);
}
gameSoundData = BNRInstance::Instance()->GetBannerSound(header->id, &gameSoundDataLen);
if (gameSoundData)
{
@ -425,7 +424,15 @@ void GameWindow::ChangeGame(int EffectDirection)
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;
WBFS_GameSize(header->id, &size);

View File

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

View File

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

View File

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

View File

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

View File

@ -173,14 +173,9 @@ void CGameTitles::WriteCachedTitles(const char * path)
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();
if(FullList.empty())
gameList.ReadGameList();
std::vector<struct discHdr> &ChanList = Channels::Instance()->GetDiscHeaderList();
std::vector<struct discHdr *> &FullList = gameList.GetFilteredList();
std::vector<bool> UsedCachedList(TitleList.size(), false);
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)
{
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;
isCached = true;
@ -200,41 +195,25 @@ void CGameTitles::RemoveUnusedCache(std::vector<std::string> &MissingTitles)
if(!isCached)
{
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));
}
}
for(u32 i = 0; i < ChanList.size(); ++i)
{
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));
}
}
if(!removeUnused)
return;
for(u32 n = 0; n < TitleList.size(); ++n)
{
if(!UsedCachedList[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();
@ -258,7 +237,8 @@ void CGameTitles::LoadTitlesFromGameTDB(const char * path, bool forceCacheReload
//! Removed unused cache titles and get the still missing ones
std::vector<std::string> MissingTitles;
RemoveUnusedCache(MissingTitles);
GetMissingTitles(MissingTitles, removeUnused);
if(MissingTitles.size() == 0)
{
WriteCachedTitles(Cachepath.c_str());

View File

@ -35,7 +35,7 @@ class CGameTitles
//! Get possible number of players for this game
int GetPlayersCount(const char * id) const;
//! 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
void SetDefault();
//! Free memory and remove all titles - Same as SetDefault()
@ -43,7 +43,7 @@ class CGameTitles
protected:
u32 ReadCachedTitles(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;
};

View File

@ -11,8 +11,19 @@ enum
enum
{
LOAD_GAMES = 0,
LOAD_CHANNELS = 1
TYPE_GAME_WII = 0x00,
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
@ -181,6 +192,7 @@ enum
BLOCK_CATEGORIES_MENU = 0x080000,
BLOCK_SD_RELOAD_BUTTON = 0x100000,
BLOCK_PRIILOADER_OVERRIDE = 0x200000,
BLOCK_LOADER_MODE_BUTTON = 0x400000,
BLOCK_ALL = 0xFFFFFFFF,
};

View File

@ -262,13 +262,13 @@ int CustomPathsSM::GetMenuInternal()
snprintf(oldPath, sizeof(oldPath), Settings.NandEmuChanPath);
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)
{
snprintf(Settings.NandEmuChanPath, sizeof(Settings.NandEmuChanPath), oldPath);
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();
}

View File

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

View File

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

View File

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

View File

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

View File

@ -70,7 +70,10 @@ void GameSettingsMenu::SetupMainButtons()
SetMainButton(pos++, tr( "Game Load" ), MainButtonImgData, MainButtonImgOverData);
SetMainButton(pos++, tr( "Ocarina" ), 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( "Uninstall Menu" ), MainButtonImgData, MainButtonImgOverData);
}
@ -87,7 +90,7 @@ void GameSettingsMenu::CreateSettingsMenu(int menuNr)
{
HideMenu();
ResumeGui();
CurrentMenu = new GameLoadSM((const char *) DiscHeader->id);
CurrentMenu = new GameLoadSM(DiscHeader);
Append(CurrentMenu);
}
@ -133,7 +136,7 @@ void GameSettingsMenu::CreateSettingsMenu(int menuNr)
}
//! 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" ));
if (choice == 1)

View File

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

View File

@ -31,12 +31,17 @@
#include "wad/nandtitle.h"
#include "prompts/TitleBrowser.h"
#include "system/IosLoader.h"
#include "usbloader/wbfs.h"
#include "usbloader/GameList.h"
#include "menu.h"
static const char * dispMethText[] =
static const char * loaderModeText[] =
{
trNOOP( "Games" ),
trNOOP( "Channels" )
trNOOP( "None" ),
trNOOP( "Wii Games" ),
trNOOP( "Nand Channels" ),
trNOOP( "EmuNand Channels" ),
trNOOP( "All" )
};
static const char * OnOffText[] =
@ -46,7 +51,7 @@ static const char * OnOffText[] =
trNOOP( "Auto" )
};
static const char * VideoModeText[VIDEO_MODE_MAX] =
static const char * VideoModeText[] =
{
trNOOP( "System Default" ),
trNOOP( "Disc Default" ),
@ -58,7 +63,7 @@ static const char * VideoModeText[VIDEO_MODE_MAX] =
trNOOP( "Force NTSC480p" ),
};
static const char * LanguageText[MAX_LANGUAGE] =
static const char * LanguageText[] =
{
trNOOP( "Japanese" ),
trNOOP( "English" ),
@ -117,7 +122,6 @@ LoaderSettings::LoaderSettings()
Options->SetName(Idx++, "%s", tr( "Block IOS Reload" ));
Options->SetName(Idx++, "%s", tr( "Return To" ));
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( "Wiird Debugger" ));
Options->SetName(Idx++, "%s", tr( "Debugger Paused Start" ));
@ -130,7 +134,16 @@ LoaderSettings::LoaderSettings()
LoaderSettings::~LoaderSettings()
{
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()
@ -138,7 +151,11 @@ void LoaderSettings::SetOptionValues()
int Idx = 0;
//! 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
Options->SetValue(Idx++, "%s", tr(VideoModeText[Settings.videomode]));
@ -185,9 +202,6 @@ void LoaderSettings::SetOptionValues()
//! Settings: Nand Emulation
Options->SetValue(Idx++, "%s", tr( NandEmuText[Settings.NandEmuMode] ));
//! Settings: Nand Channel Emulation
Options->SetValue(Idx++, "%s", tr( NandEmuText[Settings.NandEmuChanMode] ));
//! Settings: Hooktype
Options->SetValue(Idx++, "%s", tr( HooktypeText[Settings.Hooktype] ));
@ -210,7 +224,11 @@ int LoaderSettings::GetMenuInternal()
//! Settings: Loader Mode
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
@ -309,14 +327,6 @@ int LoaderSettings::GetMenuInternal()
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
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 SD Reload Button" ));
Options->SetName(Idx++, "%s", tr( "Block Priiloader Override" ));
Options->SetName(Idx++, "%s", tr( "Block Loader Mode Button" ));
SetOptionValues();
}
@ -175,6 +176,9 @@ void ParentalControlSM::SetOptionValues()
//! Settings: Block Priiloader Override
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()
@ -380,6 +384,12 @@ int ParentalControlSM::GetMenuInternal()
Settings.ParentalBlocks ^= BLOCK_PRIILOADER_OVERRIDE;
}
//! Settings: Block Loader Mode Button
else if (ret == ++Idx)
{
Settings.ParentalBlocks ^= BLOCK_LOADER_MODE_BUTTON;
}
SetOptionValues();
return MENU_NONE;

View File

@ -43,7 +43,10 @@ UninstallSM::UninstallSM(struct discHdr * header)
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( "Delete Cover Artwork" ));
Options->SetName(Idx++, "%s", tr( "Delete Disc Artwork" ));
@ -57,8 +60,11 @@ void UninstallSM::SetOptionValues()
{
int Idx = 0;
//! Settings: Uninstall Game
Options->SetValue(Idx++, " ");
if(DiscHeader->type == TYPE_GAME_WII)
{
//! Settings: Uninstall Game
Options->SetValue(Idx++, " ");
}
//! Settings: Reset Playcounter
Options->SetValue(Idx++, " ");
@ -86,7 +92,7 @@ int UninstallSM::GetMenuInternal()
int Idx = -1;
//! 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" ));
if (choice == 0)

View File

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

View File

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

View File

@ -1,7 +1,7 @@
/****************************************************************************
* USB Loader GX resource files.
* This file is generated automatically.
* Includes 189 files.
* Includes 190 files.
*
* NOTE:
* 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 u32 arrangeList_gray_png_size;
extern const u8 background_png[];
extern const u32 background_png_size;
extern const u8 balanceboard_png[];
extern const u32 balanceboard_png_size;
@ -164,9 +161,6 @@ extern const u32 drums_png_size;
extern const u8 drumsR_png[];
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 u32 dvd_gray_png_size;
@ -206,9 +200,33 @@ extern const u32 exit_top_over_png_size;
extern const u8 favIcon_png[];
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 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 u32 favorite_png_size;
@ -239,9 +257,6 @@ extern const u32 guitarR_png_size;
extern const u8 gxlogo_png[];
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 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 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 u32 lock_png_size;
@ -296,9 +314,6 @@ extern const u32 new_png_size;
extern const u8 nintendods_png[];
extern const u32 nintendods_png_size;
extern const u8 nintendodsR_png[];
extern const u32 nintendodsR_png_size;
extern const u8 nocover_png[];
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 u32 player4_point_png_size;
extern const u8 playersSort_png[];
extern const u32 playersSort_png_size;
extern const u8 progressbar_png[];
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 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 u32 rplayer4_point_png_size;
@ -422,9 +431,6 @@ extern const u32 scrollbar_arrowup_png_size;
extern const u8 scrollbar_box_png[];
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 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 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 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},
{"arrangeList.png", arrangeList_png, arrangeList_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},
{"balanceboardR.png", balanceboardR_png, balanceboardR_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},
{"drums.png", drums_png, drums_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},
{"esrb_ao.png", esrb_ao_png, esrb_ao_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_over.png", exit_top_over_png, exit_top_over_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},
{"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},
{"gameinfo1.png", gameinfo1_png, gameinfo1_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},
{"guitarR.png", guitarR_png, guitarR_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_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},
@ -665,6 +673,7 @@ RecourceFile Resources::RecourceFiles[] =
{"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},
{"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_gray.png", lock_gray_png, lock_gray_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},
{"new.png", new_png, new_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},
{"nocoverFlat.png", nocoverFlat_png, nocoverFlat_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},
{"player4_grab.png", player4_grab_png, player4_grab_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_empty.png", progressbar_empty_png, progressbar_empty_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},
{"rplayer1_point.png", rplayer1_point_png, rplayer1_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},
{"scrollBarBottom.png", scrollBarBottom_png, scrollBarBottom_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_arrowup.png", scrollbar_arrowup_png, scrollbar_arrowup_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},
{"searchIcon.png", searchIcon_png, searchIcon_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_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},
{"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},
{"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},

View File

@ -213,11 +213,15 @@ void GameBooter::ShutDownDevices(int gameUSBPort)
USB_Deinitialize();
}
int GameBooter::BootGame(const char * gameID)
int GameBooter::BootGame(struct discHdr *gameHdr)
{
if(!gameID || strlen(gameID) < 3)
if(!gameHdr)
return -1;
char gameID[7];
snprintf(gameID, sizeof(gameID), "%s", gameHdr->id);
gprintf("\tBootGame: %s\n", gameID);
if(Settings.Wiinnertag)
Wiinnertag::TagGame(gameID);
@ -228,16 +232,9 @@ int GameBooter::BootGame(const char * gameID)
gprintf("\tSettings.partition: %d\n", Settings.partition);
s32 ret = -1;
struct discHdr gameHeader;
//! 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;
memcpy(&gameHeader, gameHdr, sizeof(struct discHdr));
//! Remember game's USB port
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;
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();
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();
}
@ -297,7 +294,7 @@ int GameBooter::BootGame(const char * gameID)
ocarina_load_code(Settings.Cheatcodespath, gameHeader.id);
//! Setup disc stuff if we load a game
if(Settings.LoaderMode != LOAD_CHANNELS)
if(gameHeader.tid == 0)
{
//! Setup disc in cIOS and open it
ret = SetupDisc(gameHeader.id);
@ -310,23 +307,34 @@ int GameBooter::BootGame(const char * gameID)
gprintf("%d\n", ret);
}
//! Setup IOS reload block
if (IosLoader::IsHermesIOS())
if(IosLoader::IsHermesIOS())
{
if(reloadblock == ON)
{
//! Setup IOS reload block
enable_ES_ioctlv_vector();
if (gameList.GetGameFS(gameHeader.id) == PART_FS_WBFS)
mload_close();
}
reloadblock = 0;
}
else if(reloadblock == AUTO)
else if(IosLoader::GetIOSInfo(IOS_GetVersion()) != NULL)
{
iosinfo_t * iosinfo = IosLoader::GetIOSInfo(IOS_GetVersion());
if(!iosinfo || iosinfo->version < 6)
reloadblock = 0;
// Open ES file descriptor for the d2x patches
static char es_fs[] ATTRIBUTE_ALIGN(32) = "/dev/es";
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
@ -334,7 +342,7 @@ int GameBooter::BootGame(const char * gameID)
Channels::DestroyInstance();
//! 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");
AppEntrypoint = BootPartition(Settings.dolpath, videoChoice, alternatedol, alternatedoloffset);
@ -364,7 +372,7 @@ int GameBooter::BootGame(const char * gameID)
//! Do all the game patches
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_handler(Hooktype, WiirdDebugger, Settings.WiirdDebuggerPause);

View File

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

View File

@ -153,20 +153,21 @@ int GameList::InternalReadList(int part)
int GameList::ReadGameList()
{
if(Settings.LoaderMode == LOAD_CHANNELS)
return 0;
// 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)
{
int ret = InternalReadList(Settings.partition);
if(ret <= 0) return ret;
cnt = InternalReadList(Settings.partition);
}
else
{
int cnt = 0;
int partitions = DeviceHandler::GetUSBPartitionCount();
for(int part = 0; part < partitions; ++part)
@ -174,31 +175,16 @@ int GameList::ReadGameList()
int ret = InternalReadList(part);
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;
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)
for (u32 i = 0; i < FullList.size(); ++i)
{
struct discHdr *header = &FullList->at(i);
struct discHdr *header = &FullList[i];
/* Register game */
NewTitles::Instance()->CheckGame(header->id);
@ -252,6 +238,29 @@ int GameList::FilterList(const wchar_t * gameFilter)
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();
GuiSearchBar::FilterList(FilteredList, GameFilter);
@ -261,28 +270,38 @@ int GameList::FilterList(const wchar_t * gameFilter)
return FilteredList.size();
}
int GameList::LoadUnfiltered()
void GameList::InternalLoadUnfiltered(std::vector<struct discHdr> &FullList)
{
std::vector<struct discHdr> *FullList = &FullGameList;
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)
for (u32 i = 0; i < FullList.size(); ++i)
{
struct discHdr *header = &FullList->at(i);
struct discHdr *header = &FullList[i];
/* Register game */
NewTitles::Instance()->CheckGame(header->id);
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();
GuiSearchBar::FilterList(FilteredList, GameFilter);

View File

@ -37,6 +37,8 @@ class GameList
std::vector<struct discHdr> &GetFullGameList(void) { return FullGameList; }
protected:
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 PlaycountSortCallback(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" ));
if (choice == 0)
{
Settings.LoaderMode = LOAD_CHANNELS;
Settings.LoaderMode = MODE_ALL;
return 0;
}
else if(choice == 1)
@ -114,28 +114,33 @@ int MountGamePartition(bool ShowGUI)
gprintf("MountGamePartition()\n");
s32 wbfsinit = WBFS_Init(WBFS_DEVICE_USB);
if (wbfsinit < 0 && Settings.LoaderMode == LOAD_GAMES)
if(Settings.LoaderMode & MODE_WIIGAMES)
{
if(ShowGUI)
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)
if (wbfsinit < 0)
{
Settings.LoaderMode = LOAD_CHANNELS;
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 */
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;
/* Unused, using in loader internally to detect title type */
u8 type;
/* rest of unused */
u8 unused[5];
u8 unused[4];
/* Magic word */
u32 magic;

View File

@ -147,7 +147,7 @@ s32 USBStorage2_GetCapacity(u32 port, u32 *_sector_size)
{
s32 ret;
u32 sector_size = 0;
USBStorage2_SetPort(port);
//USBStorage2_SetPort(port);
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)
mem2_ptr = (u8 *) MEM2_alloc(MAX_SECTOR_SIZE * MAX_BUFFER_SECTORS);
USBStorage2_SetPort(port);
//USBStorage2_SetPort(port);
s32 read_secs, read_size;
@ -216,7 +216,7 @@ s32 USBStorage2_WriteSectors(u32 port, u32 sector, u32 numSectors, const void *b
if (!mem2_ptr)
mem2_ptr = (u8 *) MEM2_alloc(MAX_SECTOR_SIZE * MAX_BUFFER_SECTORS);
USBStorage2_SetPort(port);
//USBStorage2_SetPort(port);
s32 write_size, write_secs;

View File

@ -48,6 +48,20 @@ s32 WBFS_Init(u32 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()
{
int ret = -1;

View File

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

View File

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

View File

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

View File

@ -34,11 +34,13 @@ EOF
echo "svnrev.c created" >&2
fi
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"?>
<app version="1">
<name> USB Loader GX</name>
@ -94,6 +96,3 @@ http://www.gnu.org/software/gettext/gettext.html
</long_description>
</app>
EOF
fi
echo $a