mirror of
https://github.com/wiidev/usbloadergx.git
synced 2024-11-21 18:59:15 +01:00
* added nand channel emulation (big thanks to TriiForce guys and Miigotu for laying out the foundation)
* added direct list of emu nand channels without activating emu nand (for speed up) * removed autoclose of search bar and changed the search engine to have both methods * added setting for switching "Beginning" and "Content" search methods and a quick switch button on search window * added autocomplete if only one search character is available and more than one match * added seperate path and setting for emu nand channels/saves * added caching of emu nand channel titles * fixed a few alignment issues when activating emu nand (thanks daveboal) * some minor clean ups TODO/Next Rev: * add channels banner sounds * remove unneeded game settings options on channels
This commit is contained in:
parent
164889c917
commit
c51b2304c2
@ -2,8 +2,8 @@
|
||||
<app version="1">
|
||||
<name> USB Loader GX</name>
|
||||
<coder>USB Loader GX Team</coder>
|
||||
<version>2.3 r1127</version>
|
||||
<release_date>201111111858</release_date>
|
||||
<version>2.3 r1128</version>
|
||||
<release_date>201111112324</release_date>
|
||||
<!-- // remove this line to enable arguments
|
||||
<arguments>
|
||||
<arg>--ios=250</arg>
|
||||
|
@ -5,7 +5,7 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: USB Loader GX\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2011-10-22 12:10+0200\n"
|
||||
"POT-Creation-Date: 2011-11-12 18:58+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"
|
||||
@ -202,6 +202,9 @@ msgstr "Zpet do HBC nebo Wii nabídky"
|
||||
msgid "Backgroundmusic"
|
||||
msgstr "Hudba na pozadí"
|
||||
|
||||
msgid "Beginning"
|
||||
msgstr ""
|
||||
|
||||
msgid "Big thanks to:"
|
||||
msgstr "Velké díky pro:"
|
||||
|
||||
@ -314,6 +317,9 @@ msgstr ""
|
||||
msgid "Change Play Path"
|
||||
msgstr "Zmena cesty prehrávání"
|
||||
|
||||
msgid "Channels"
|
||||
msgstr ""
|
||||
|
||||
msgid "Cheatfile is blank"
|
||||
msgstr "Soubor s cheaty je prázdný"
|
||||
|
||||
@ -363,6 +369,9 @@ msgstr ""
|
||||
msgid "Console should be unlocked to modify it."
|
||||
msgstr "Konzole musí být odemcena pro tuto zmenu"
|
||||
|
||||
msgid "Content"
|
||||
msgstr ""
|
||||
|
||||
msgid "Continue to install game?"
|
||||
msgstr "Pokracovat pri instalaci hry"
|
||||
|
||||
@ -1006,6 +1015,9 @@ msgstr "Nahrát soubor z: %s ?"
|
||||
msgid "Load this DOL as alternate DOL?"
|
||||
msgstr "Spustit tento DOL jako náhradní DOL?"
|
||||
|
||||
msgid "Loader Mode"
|
||||
msgstr ""
|
||||
|
||||
msgid "Loader Settings"
|
||||
msgstr "Nstavení spoustení"
|
||||
|
||||
@ -1063,6 +1075,12 @@ msgstr "Mód hudební smycky"
|
||||
msgid "Music Volume"
|
||||
msgstr "Hlasitost hudby"
|
||||
|
||||
msgid "Nand Channel Emulation"
|
||||
msgstr ""
|
||||
|
||||
msgid "Nand Emu Channel Path"
|
||||
msgstr ""
|
||||
|
||||
msgid "Nand Emu Path"
|
||||
msgstr ""
|
||||
|
||||
@ -1075,6 +1093,9 @@ msgstr ""
|
||||
msgid "Nand Emulation only works on FAT/FAT32 partitions!"
|
||||
msgstr ""
|
||||
|
||||
msgid "Nand Saves Emulation"
|
||||
msgstr ""
|
||||
|
||||
msgid "Neither"
|
||||
msgstr "Žádný"
|
||||
|
||||
@ -1360,6 +1381,9 @@ msgstr ""
|
||||
msgid "Screensaver"
|
||||
msgstr "Sporic obrazovky"
|
||||
|
||||
msgid "Search Mode"
|
||||
msgstr ""
|
||||
|
||||
msgid "Select"
|
||||
msgstr "Vyber"
|
||||
|
||||
|
@ -5,7 +5,7 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: USB Loader GX\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2011-10-22 12:10+0200\n"
|
||||
"POT-Creation-Date: 2011-11-12 18:58+0100\n"
|
||||
"PO-Revision-Date: 2009-10-01 01:00+0200\n"
|
||||
"Last-Translator: Fox888[dk]\n"
|
||||
"Language-Team: [dk]\n"
|
||||
@ -202,6 +202,9 @@ msgstr "Tilbage til HBC eller Wii-menuen"
|
||||
msgid "Backgroundmusic"
|
||||
msgstr "Baggrundsmusik"
|
||||
|
||||
msgid "Beginning"
|
||||
msgstr ""
|
||||
|
||||
msgid "Big thanks to:"
|
||||
msgstr "En stor tak til:"
|
||||
|
||||
@ -314,6 +317,9 @@ msgstr "Kategorier:"
|
||||
msgid "Change Play Path"
|
||||
msgstr "Ændre sti til musik"
|
||||
|
||||
msgid "Channels"
|
||||
msgstr ""
|
||||
|
||||
msgid "Cheatfile is blank"
|
||||
msgstr "Cheatfilen er tom"
|
||||
|
||||
@ -363,6 +369,9 @@ msgstr "Konsollen skal være låst op for at kunne bruge dette."
|
||||
msgid "Console should be unlocked to modify it."
|
||||
msgstr "Konsollen skal være låst op for ændre dette."
|
||||
|
||||
msgid "Content"
|
||||
msgstr ""
|
||||
|
||||
msgid "Continue to install game?"
|
||||
msgstr "Fortsæt med at installere spillet?"
|
||||
|
||||
@ -1006,6 +1015,9 @@ msgstr "Indlæs fil fra %s ?"
|
||||
msgid "Load this DOL as alternate DOL?"
|
||||
msgstr "Indlæs denne DOL som alternativ DOL?"
|
||||
|
||||
msgid "Loader Mode"
|
||||
msgstr ""
|
||||
|
||||
msgid "Loader Settings"
|
||||
msgstr "Loader Indstillinger"
|
||||
|
||||
@ -1063,6 +1075,12 @@ msgstr "Musik i løkke"
|
||||
msgid "Music Volume"
|
||||
msgstr "Lydstyrke"
|
||||
|
||||
msgid "Nand Channel Emulation"
|
||||
msgstr ""
|
||||
|
||||
msgid "Nand Emu Channel Path"
|
||||
msgstr ""
|
||||
|
||||
msgid "Nand Emu Path"
|
||||
msgstr "Sti til Nand Emu."
|
||||
|
||||
@ -1075,6 +1093,9 @@ msgstr "Nand emulering er kun mulig med d2x cIOS"
|
||||
msgid "Nand Emulation only works on FAT/FAT32 partitions!"
|
||||
msgstr "Nand emulering virker kun med FAT/FAT32 partitioner!"
|
||||
|
||||
msgid "Nand Saves Emulation"
|
||||
msgstr ""
|
||||
|
||||
msgid "Neither"
|
||||
msgstr "Ingen"
|
||||
|
||||
@ -1360,6 +1381,9 @@ msgstr ""
|
||||
msgid "Screensaver"
|
||||
msgstr "Pauseskærm"
|
||||
|
||||
msgid "Search Mode"
|
||||
msgstr ""
|
||||
|
||||
msgid "Select"
|
||||
msgstr "Vælg"
|
||||
|
||||
|
@ -5,7 +5,7 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: USB Loader GX\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2011-10-22 12:10+0200\n"
|
||||
"POT-Creation-Date: 2011-11-12 18:58+0100\n"
|
||||
"PO-Revision-Date: 2011-06-30 14:22+0100\n"
|
||||
"Last-Translator: glowy\n"
|
||||
"Language-Team: tj_cool, glowy\n"
|
||||
@ -202,6 +202,9 @@ msgstr "Terug naar HBC of Wii Menu"
|
||||
msgid "Backgroundmusic"
|
||||
msgstr "Achtergrondmuziek"
|
||||
|
||||
msgid "Beginning"
|
||||
msgstr ""
|
||||
|
||||
msgid "Big thanks to:"
|
||||
msgstr "Grote dank aan:"
|
||||
|
||||
@ -314,6 +317,9 @@ msgstr "Categorieën:"
|
||||
msgid "Change Play Path"
|
||||
msgstr "Verander afspeel locatie"
|
||||
|
||||
msgid "Channels"
|
||||
msgstr ""
|
||||
|
||||
msgid "Cheatfile is blank"
|
||||
msgstr "Cheatbestand is leeg"
|
||||
|
||||
@ -363,6 +369,9 @@ msgstr "Console moet worden vrijgegeven om dit te kunnen gebruiken."
|
||||
msgid "Console should be unlocked to modify it."
|
||||
msgstr "Console moet worden vrijgegeven om te wijzigen."
|
||||
|
||||
msgid "Content"
|
||||
msgstr ""
|
||||
|
||||
msgid "Continue to install game?"
|
||||
msgstr "Installatie spel voortzetten?"
|
||||
|
||||
@ -1006,6 +1015,9 @@ msgstr "Laad bestand van %s ?"
|
||||
msgid "Load this DOL as alternate DOL?"
|
||||
msgstr "Deze DOL als alt DOL gebruiken?"
|
||||
|
||||
msgid "Loader Mode"
|
||||
msgstr ""
|
||||
|
||||
msgid "Loader Settings"
|
||||
msgstr "Loader Instellingen"
|
||||
|
||||
@ -1063,6 +1075,12 @@ msgstr "Muziek Herhaal Mode"
|
||||
msgid "Music Volume"
|
||||
msgstr "Muziekvolume"
|
||||
|
||||
msgid "Nand Channel Emulation"
|
||||
msgstr ""
|
||||
|
||||
msgid "Nand Emu Channel Path"
|
||||
msgstr ""
|
||||
|
||||
msgid "Nand Emu Path"
|
||||
msgstr ""
|
||||
|
||||
@ -1075,6 +1093,9 @@ msgstr ""
|
||||
msgid "Nand Emulation only works on FAT/FAT32 partitions!"
|
||||
msgstr ""
|
||||
|
||||
msgid "Nand Saves Emulation"
|
||||
msgstr ""
|
||||
|
||||
msgid "Neither"
|
||||
msgstr "Geen"
|
||||
|
||||
@ -1360,6 +1381,9 @@ msgstr ""
|
||||
msgid "Screensaver"
|
||||
msgstr "Schermbeveiliging"
|
||||
|
||||
msgid "Search Mode"
|
||||
msgstr ""
|
||||
|
||||
msgid "Select"
|
||||
msgstr "Selecteer"
|
||||
|
||||
|
@ -5,7 +5,7 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: USB Loader GX\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2011-10-22 12:10+0200\n"
|
||||
"POT-Creation-Date: 2011-11-12 18:58+0100\n"
|
||||
"PO-Revision-Date: 2009-10-01 01:00+0200\n"
|
||||
"Last-Translator: \n"
|
||||
"Language-Team: \n"
|
||||
@ -202,6 +202,9 @@ msgstr ""
|
||||
msgid "Backgroundmusic"
|
||||
msgstr ""
|
||||
|
||||
msgid "Beginning"
|
||||
msgstr ""
|
||||
|
||||
msgid "Big thanks to:"
|
||||
msgstr ""
|
||||
|
||||
@ -314,6 +317,9 @@ msgstr ""
|
||||
msgid "Change Play Path"
|
||||
msgstr ""
|
||||
|
||||
msgid "Channels"
|
||||
msgstr ""
|
||||
|
||||
msgid "Cheatfile is blank"
|
||||
msgstr ""
|
||||
|
||||
@ -363,6 +369,9 @@ msgstr ""
|
||||
msgid "Console should be unlocked to modify it."
|
||||
msgstr ""
|
||||
|
||||
msgid "Content"
|
||||
msgstr ""
|
||||
|
||||
msgid "Continue to install game?"
|
||||
msgstr ""
|
||||
|
||||
@ -1006,6 +1015,9 @@ msgstr ""
|
||||
msgid "Load this DOL as alternate DOL?"
|
||||
msgstr ""
|
||||
|
||||
msgid "Loader Mode"
|
||||
msgstr ""
|
||||
|
||||
msgid "Loader Settings"
|
||||
msgstr ""
|
||||
|
||||
@ -1063,6 +1075,12 @@ msgstr ""
|
||||
msgid "Music Volume"
|
||||
msgstr ""
|
||||
|
||||
msgid "Nand Channel Emulation"
|
||||
msgstr ""
|
||||
|
||||
msgid "Nand Emu Channel Path"
|
||||
msgstr ""
|
||||
|
||||
msgid "Nand Emu Path"
|
||||
msgstr ""
|
||||
|
||||
@ -1075,6 +1093,9 @@ msgstr ""
|
||||
msgid "Nand Emulation only works on FAT/FAT32 partitions!"
|
||||
msgstr ""
|
||||
|
||||
msgid "Nand Saves Emulation"
|
||||
msgstr ""
|
||||
|
||||
msgid "Neither"
|
||||
msgstr ""
|
||||
|
||||
@ -1360,6 +1381,9 @@ msgstr ""
|
||||
msgid "Screensaver"
|
||||
msgstr ""
|
||||
|
||||
msgid "Search Mode"
|
||||
msgstr ""
|
||||
|
||||
msgid "Select"
|
||||
msgstr ""
|
||||
|
||||
|
@ -5,7 +5,7 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: USB Loader GX\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2011-10-22 12:10+0200\n"
|
||||
"POT-Creation-Date: 2011-11-12 18:58+0100\n"
|
||||
"PO-Revision-Date: 2009-10-01 01:00+0200\n"
|
||||
"Last-Translator: c64rmx\n"
|
||||
"Language-Team: \n"
|
||||
@ -202,6 +202,9 @@ msgstr "Takaisin HBC:hen tai Wii Menuun"
|
||||
msgid "Backgroundmusic"
|
||||
msgstr "Taustamusiikki"
|
||||
|
||||
msgid "Beginning"
|
||||
msgstr ""
|
||||
|
||||
msgid "Big thanks to:"
|
||||
msgstr "Isot kiitokset:"
|
||||
|
||||
@ -314,6 +317,9 @@ msgstr ""
|
||||
msgid "Change Play Path"
|
||||
msgstr ""
|
||||
|
||||
msgid "Channels"
|
||||
msgstr ""
|
||||
|
||||
msgid "Cheatfile is blank"
|
||||
msgstr "Kooditiedosto tyhjä"
|
||||
|
||||
@ -363,6 +369,9 @@ msgstr ""
|
||||
msgid "Console should be unlocked to modify it."
|
||||
msgstr "Avaa konsolin lukitus muokataksesi asetuksia."
|
||||
|
||||
msgid "Content"
|
||||
msgstr ""
|
||||
|
||||
msgid "Continue to install game?"
|
||||
msgstr "Jatka pelin asennusta?"
|
||||
|
||||
@ -1006,6 +1015,9 @@ msgstr "Lataa tiedosto: %s ?"
|
||||
msgid "Load this DOL as alternate DOL?"
|
||||
msgstr "Lataa tämä vaihtoehtoisesti tämä dol?"
|
||||
|
||||
msgid "Loader Mode"
|
||||
msgstr ""
|
||||
|
||||
msgid "Loader Settings"
|
||||
msgstr ""
|
||||
|
||||
@ -1063,6 +1075,12 @@ msgstr ""
|
||||
msgid "Music Volume"
|
||||
msgstr "Voimakkuus"
|
||||
|
||||
msgid "Nand Channel Emulation"
|
||||
msgstr ""
|
||||
|
||||
msgid "Nand Emu Channel Path"
|
||||
msgstr ""
|
||||
|
||||
msgid "Nand Emu Path"
|
||||
msgstr ""
|
||||
|
||||
@ -1075,6 +1093,9 @@ msgstr ""
|
||||
msgid "Nand Emulation only works on FAT/FAT32 partitions!"
|
||||
msgstr ""
|
||||
|
||||
msgid "Nand Saves Emulation"
|
||||
msgstr ""
|
||||
|
||||
msgid "Neither"
|
||||
msgstr "Ei kumpikaan"
|
||||
|
||||
@ -1360,6 +1381,9 @@ msgstr ""
|
||||
msgid "Screensaver"
|
||||
msgstr "Näytönsäästäjä"
|
||||
|
||||
msgid "Search Mode"
|
||||
msgstr ""
|
||||
|
||||
msgid "Select"
|
||||
msgstr ""
|
||||
|
||||
|
@ -5,7 +5,7 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: USB Loader GX\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2011-11-08 20:25+0100\n"
|
||||
"POT-Creation-Date: 2011-11-12 18:58+0100\n"
|
||||
"PO-Revision-Date: 2009-10-01 01:00+0200\n"
|
||||
"Last-Translator: Cyan\n"
|
||||
"Language-Team: Badablek, Amour, ikya, Cyan & Kin8\n"
|
||||
@ -202,6 +202,9 @@ msgstr "Retour HBC / Menu Wii"
|
||||
msgid "Backgroundmusic"
|
||||
msgstr "Fond sonore"
|
||||
|
||||
msgid "Beginning"
|
||||
msgstr ""
|
||||
|
||||
msgid "Big thanks to:"
|
||||
msgstr "Grand merci à:"
|
||||
|
||||
@ -314,6 +317,9 @@ msgstr "Catégories:"
|
||||
msgid "Change Play Path"
|
||||
msgstr "Changer dossier"
|
||||
|
||||
msgid "Channels"
|
||||
msgstr ""
|
||||
|
||||
msgid "Cheatfile is blank"
|
||||
msgstr "Fichier de triche vide"
|
||||
|
||||
@ -363,6 +369,9 @@ msgstr "La console doit être déverrouillée."
|
||||
msgid "Console should be unlocked to modify it."
|
||||
msgstr "La console doit être déverrouillée."
|
||||
|
||||
msgid "Content"
|
||||
msgstr ""
|
||||
|
||||
msgid "Continue to install game?"
|
||||
msgstr "Continuer l'installation ?"
|
||||
|
||||
@ -1006,6 +1015,9 @@ msgstr "Charger le fichier de: %s ?"
|
||||
msgid "Load this DOL as alternate DOL?"
|
||||
msgstr "Charger comme DOL alternatif ?"
|
||||
|
||||
msgid "Loader Mode"
|
||||
msgstr ""
|
||||
|
||||
msgid "Loader Settings"
|
||||
msgstr "Paramètres du Loader"
|
||||
|
||||
@ -1063,6 +1075,12 @@ msgstr "Type de boucle"
|
||||
msgid "Music Volume"
|
||||
msgstr "Volume musique"
|
||||
|
||||
msgid "Nand Channel Emulation"
|
||||
msgstr ""
|
||||
|
||||
msgid "Nand Emu Channel Path"
|
||||
msgstr ""
|
||||
|
||||
msgid "Nand Emu Path"
|
||||
msgstr "Dossier Émulation Nand"
|
||||
|
||||
@ -1075,6 +1093,9 @@ msgstr "L'Émulation Nand n'est disponible qu'avec le cIOS D2X!"
|
||||
msgid "Nand Emulation only works on FAT/FAT32 partitions!"
|
||||
msgstr "L'Émulation Nand ne fonctionne qu'avec une partition FAT/FAT32!"
|
||||
|
||||
msgid "Nand Saves Emulation"
|
||||
msgstr ""
|
||||
|
||||
msgid "Neither"
|
||||
msgstr "Aucun"
|
||||
|
||||
@ -1360,6 +1381,9 @@ msgstr "La sauvegarde de ce jeu est peut-être existante."
|
||||
msgid "Screensaver"
|
||||
msgstr "Économiseur d'écran"
|
||||
|
||||
msgid "Search Mode"
|
||||
msgstr ""
|
||||
|
||||
msgid "Select"
|
||||
msgstr "Choisir"
|
||||
|
||||
|
@ -5,7 +5,7 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: USB Loader GX\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2011-10-22 16:15+0200\n"
|
||||
"POT-Creation-Date: 2011-11-12 18:58+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"
|
||||
@ -202,6 +202,9 @@ msgstr "Zurück zum Homebrewkanal oder Wii Menü"
|
||||
msgid "Backgroundmusic"
|
||||
msgstr "Hintergrundmusik"
|
||||
|
||||
msgid "Beginning"
|
||||
msgstr ""
|
||||
|
||||
msgid "Big thanks to:"
|
||||
msgstr "Großen Dank an:"
|
||||
|
||||
@ -314,6 +317,9 @@ msgstr "Kategorien:"
|
||||
msgid "Change Play Path"
|
||||
msgstr "Pfad ändern"
|
||||
|
||||
msgid "Channels"
|
||||
msgstr ""
|
||||
|
||||
msgid "Cheatfile is blank"
|
||||
msgstr "Cheatdatei ist leer"
|
||||
|
||||
@ -363,6 +369,9 @@ msgstr "Gerät muss für diese Nutzung entsperrt werden."
|
||||
msgid "Console should be unlocked to modify it."
|
||||
msgstr "Konsole muss zum Bearbeiten entsperrt werden."
|
||||
|
||||
msgid "Content"
|
||||
msgstr ""
|
||||
|
||||
msgid "Continue to install game?"
|
||||
msgstr "Fortfahren um Spiel zu installieren?"
|
||||
|
||||
@ -1006,6 +1015,9 @@ msgstr "Datei von %s laden?"
|
||||
msgid "Load this DOL as alternate DOL?"
|
||||
msgstr "Diese DOL als Alternative DOL laden?"
|
||||
|
||||
msgid "Loader Mode"
|
||||
msgstr ""
|
||||
|
||||
msgid "Loader Settings"
|
||||
msgstr "Loader Einstellungen"
|
||||
|
||||
@ -1063,6 +1075,12 @@ msgstr "HGM Wiederholung"
|
||||
msgid "Music Volume"
|
||||
msgstr "Musik Lautstärke"
|
||||
|
||||
msgid "Nand Channel Emulation"
|
||||
msgstr ""
|
||||
|
||||
msgid "Nand Emu Channel Path"
|
||||
msgstr ""
|
||||
|
||||
msgid "Nand Emu Path"
|
||||
msgstr "Nand Emu Pfad"
|
||||
|
||||
@ -1075,6 +1093,9 @@ msgstr "Nand Emulation ist nur für D2X cIOS verfügbar!"
|
||||
msgid "Nand Emulation only works on FAT/FAT32 partitions!"
|
||||
msgstr "Nand Emulation funktionier nut mit FAT/FAT32 Partitionen!"
|
||||
|
||||
msgid "Nand Saves Emulation"
|
||||
msgstr ""
|
||||
|
||||
msgid "Neither"
|
||||
msgstr "Keine"
|
||||
|
||||
@ -1360,6 +1381,9 @@ msgstr "Möglicherweise existiert kein Spielstand für dieses Spiel."
|
||||
msgid "Screensaver"
|
||||
msgstr "Bildschirmschoner"
|
||||
|
||||
msgid "Search Mode"
|
||||
msgstr ""
|
||||
|
||||
msgid "Select"
|
||||
msgstr "Auswählen"
|
||||
|
||||
|
@ -5,7 +5,7 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: USB Loader GX\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2011-11-08 20:25+0100\n"
|
||||
"POT-Creation-Date: 2011-11-12 18:58+0100\n"
|
||||
"PO-Revision-Date: 2009-12-29 11:05+0100\n"
|
||||
"Last-Translator: Springdale\n"
|
||||
"Language-Team: Tusk, Springdale\n"
|
||||
@ -202,6 +202,9 @@ msgstr "Visszatérés a HBC-be vagy Wii Menübe"
|
||||
msgid "Backgroundmusic"
|
||||
msgstr "Háttérzene"
|
||||
|
||||
msgid "Beginning"
|
||||
msgstr ""
|
||||
|
||||
msgid "Big thanks to:"
|
||||
msgstr "Köszönet:"
|
||||
|
||||
@ -314,6 +317,9 @@ msgstr ""
|
||||
msgid "Change Play Path"
|
||||
msgstr ""
|
||||
|
||||
msgid "Channels"
|
||||
msgstr "Csatornák"
|
||||
|
||||
msgid "Cheatfile is blank"
|
||||
msgstr "A cheat-fájl üres"
|
||||
|
||||
@ -363,6 +369,9 @@ msgstr ""
|
||||
msgid "Console should be unlocked to modify it."
|
||||
msgstr "A konzol zárolva, ezért nem változtatható meg."
|
||||
|
||||
msgid "Content"
|
||||
msgstr ""
|
||||
|
||||
msgid "Continue to install game?"
|
||||
msgstr "Játék telepítésének folytatása?"
|
||||
|
||||
@ -1006,6 +1015,9 @@ msgstr "Fájl betöltése innen: %s ?"
|
||||
msgid "Load this DOL as alternate DOL?"
|
||||
msgstr "DOL betöltése alternatív DOL-ként?"
|
||||
|
||||
msgid "Loader Mode"
|
||||
msgstr ""
|
||||
|
||||
msgid "Loader Settings"
|
||||
msgstr ""
|
||||
|
||||
@ -1063,6 +1075,12 @@ msgstr ""
|
||||
msgid "Music Volume"
|
||||
msgstr "Zene Hangerõ"
|
||||
|
||||
msgid "Nand Channel Emulation"
|
||||
msgstr ""
|
||||
|
||||
msgid "Nand Emu Channel Path"
|
||||
msgstr ""
|
||||
|
||||
msgid "Nand Emu Path"
|
||||
msgstr ""
|
||||
|
||||
@ -1075,6 +1093,9 @@ msgstr ""
|
||||
msgid "Nand Emulation only works on FAT/FAT32 partitions!"
|
||||
msgstr ""
|
||||
|
||||
msgid "Nand Saves Emulation"
|
||||
msgstr ""
|
||||
|
||||
msgid "Neither"
|
||||
msgstr "Egyik sem"
|
||||
|
||||
@ -1360,6 +1381,9 @@ msgstr ""
|
||||
msgid "Screensaver"
|
||||
msgstr "Képernyõkimélõ"
|
||||
|
||||
msgid "Search Mode"
|
||||
msgstr ""
|
||||
|
||||
msgid "Select"
|
||||
msgstr "Válassz"
|
||||
|
||||
@ -1965,9 +1989,6 @@ msgstr "hátralévõ másodperc"
|
||||
#~ msgid "Back to Wii Menu"
|
||||
#~ msgstr "Visszatérés a Wii Menübe"
|
||||
|
||||
#~ msgid "Channels"
|
||||
#~ msgstr "Csatornák"
|
||||
|
||||
#~ msgid "Checking existing artwork"
|
||||
#~ msgstr "Meglévõ képek ellenõrzése"
|
||||
|
||||
|
@ -5,7 +5,7 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: USB Loader GX\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2011-11-08 20:25+0100\n"
|
||||
"POT-Creation-Date: 2011-11-12 18:58+0100\n"
|
||||
"PO-Revision-Date: 2011-09-11 12:19+0100\n"
|
||||
"Last-Translator: xFede, Bovirus \n"
|
||||
"Language-Team: Cambo\n"
|
||||
@ -202,6 +202,9 @@ msgstr "Torna a HBC/Menu Wii"
|
||||
msgid "Backgroundmusic"
|
||||
msgstr "Musica di sottofondo"
|
||||
|
||||
msgid "Beginning"
|
||||
msgstr ""
|
||||
|
||||
msgid "Big thanks to:"
|
||||
msgstr "Grazie mille a:"
|
||||
|
||||
@ -314,6 +317,9 @@ msgstr "Categorie:"
|
||||
msgid "Change Play Path"
|
||||
msgstr "Cambia Percorso Musica"
|
||||
|
||||
msgid "Channels"
|
||||
msgstr ""
|
||||
|
||||
msgid "Cheatfile is blank"
|
||||
msgstr "Il file dei trucchi è vuoto"
|
||||
|
||||
@ -363,6 +369,9 @@ msgstr "La Wii deve essere sbloccata per usare questa opzione."
|
||||
msgid "Console should be unlocked to modify it."
|
||||
msgstr "La Wii deve essere sbloccata per modificarla."
|
||||
|
||||
msgid "Content"
|
||||
msgstr ""
|
||||
|
||||
msgid "Continue to install game?"
|
||||
msgstr "Proseguire con l'installarazione del gioco?"
|
||||
|
||||
@ -1006,6 +1015,9 @@ msgstr "Caricare il file da: %s ?"
|
||||
msgid "Load this DOL as alternate DOL?"
|
||||
msgstr "Usare questo DOL come DOL alternativo?"
|
||||
|
||||
msgid "Loader Mode"
|
||||
msgstr ""
|
||||
|
||||
msgid "Loader Settings"
|
||||
msgstr "Impostazioni Loader"
|
||||
|
||||
@ -1063,6 +1075,12 @@ msgstr "Ripeti Musica Sottof."
|
||||
msgid "Music Volume"
|
||||
msgstr "Volume Musica"
|
||||
|
||||
msgid "Nand Channel Emulation"
|
||||
msgstr ""
|
||||
|
||||
msgid "Nand Emu Channel Path"
|
||||
msgstr ""
|
||||
|
||||
msgid "Nand Emu Path"
|
||||
msgstr "Percorso NAND Emulata"
|
||||
|
||||
@ -1075,6 +1093,9 @@ msgstr "L'emulazione della NAND è disponibile solo con i cIOS d2x!"
|
||||
msgid "Nand Emulation only works on FAT/FAT32 partitions!"
|
||||
msgstr "L'emulazione della NAND funziona solo con le partizioni FAT/FAT32!"
|
||||
|
||||
msgid "Nand Saves Emulation"
|
||||
msgstr ""
|
||||
|
||||
msgid "Neither"
|
||||
msgstr "Neanche"
|
||||
|
||||
@ -1360,6 +1381,9 @@ msgstr "Il salvataggio potrebbe non esistere per questo gioco."
|
||||
msgid "Screensaver"
|
||||
msgstr "Salvaschermo"
|
||||
|
||||
msgid "Search Mode"
|
||||
msgstr ""
|
||||
|
||||
msgid "Select"
|
||||
msgstr "Seleziona"
|
||||
|
||||
|
@ -5,7 +5,7 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: USB Loader GX\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2011-11-08 20:25+0100\n"
|
||||
"POT-Creation-Date: 2011-11-12 18:58+0100\n"
|
||||
"PO-Revision-Date: 2009-10-01 01:00+0200\n"
|
||||
"Last-Translator: hosigumayuugi\n"
|
||||
"Language-Team: hosigumayuugi, papa, ichiroling\n"
|
||||
@ -202,6 +202,9 @@ msgstr "HBC/Wiiメニューへ"
|
||||
msgid "Backgroundmusic"
|
||||
msgstr "BGM"
|
||||
|
||||
msgid "Beginning"
|
||||
msgstr ""
|
||||
|
||||
msgid "Big thanks to:"
|
||||
msgstr "協力:"
|
||||
|
||||
@ -314,6 +317,9 @@ msgstr "カテゴリ:"
|
||||
msgid "Change Play Path"
|
||||
msgstr "パスの変更"
|
||||
|
||||
msgid "Channels"
|
||||
msgstr ""
|
||||
|
||||
msgid "Cheatfile is blank"
|
||||
msgstr "チートファイルがありません"
|
||||
|
||||
@ -363,6 +369,9 @@ msgstr "これを使うにはロックの解除が必要です"
|
||||
msgid "Console should be unlocked to modify it."
|
||||
msgstr "変更にはロックの解除が必要です"
|
||||
|
||||
msgid "Content"
|
||||
msgstr ""
|
||||
|
||||
msgid "Continue to install game?"
|
||||
msgstr "このゲームをインストールしますか?"
|
||||
|
||||
@ -1006,6 +1015,9 @@ msgstr "%sからファイルをロードしますか?"
|
||||
msgid "Load this DOL as alternate DOL?"
|
||||
msgstr "このDOLを代替DOLとしてロードしますか?"
|
||||
|
||||
msgid "Loader Mode"
|
||||
msgstr ""
|
||||
|
||||
msgid "Loader Settings"
|
||||
msgstr "ローダーの設定"
|
||||
|
||||
@ -1063,6 +1075,12 @@ msgstr "ループ機能"
|
||||
msgid "Music Volume"
|
||||
msgstr "BGMの音量"
|
||||
|
||||
msgid "Nand Channel Emulation"
|
||||
msgstr ""
|
||||
|
||||
msgid "Nand Emu Channel Path"
|
||||
msgstr ""
|
||||
|
||||
msgid "Nand Emu Path"
|
||||
msgstr "NANDエミュ"
|
||||
|
||||
@ -1075,6 +1093,9 @@ msgstr "NANDエミュレーションはd2x cIOSのみで動作します!"
|
||||
msgid "Nand Emulation only works on FAT/FAT32 partitions!"
|
||||
msgstr "NANDエミュレーションはFAT/FAT32領域のみで動作します!"
|
||||
|
||||
msgid "Nand Saves Emulation"
|
||||
msgstr ""
|
||||
|
||||
msgid "Neither"
|
||||
msgstr "非表示"
|
||||
|
||||
@ -1360,6 +1381,9 @@ msgstr "このゲームのセーブはありません"
|
||||
msgid "Screensaver"
|
||||
msgstr "スクリーンセーバー"
|
||||
|
||||
msgid "Search Mode"
|
||||
msgstr ""
|
||||
|
||||
msgid "Select"
|
||||
msgstr "選択"
|
||||
|
||||
|
@ -5,7 +5,7 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: USB Loader GX\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2011-11-08 20:25+0100\n"
|
||||
"POT-Creation-Date: 2011-11-12 18:58+0100\n"
|
||||
"PO-Revision-Date: 2009-10-01 01:00+0200\n"
|
||||
"Last-Translator: nextos@korea.com\n"
|
||||
"Language-Team: \n"
|
||||
@ -202,6 +202,9 @@ msgstr "홈브류 메뉴 또는 Wii 메뉴로"
|
||||
msgid "Backgroundmusic"
|
||||
msgstr "배경음악"
|
||||
|
||||
msgid "Beginning"
|
||||
msgstr ""
|
||||
|
||||
msgid "Big thanks to:"
|
||||
msgstr "감사 :"
|
||||
|
||||
@ -314,6 +317,9 @@ msgstr ""
|
||||
msgid "Change Play Path"
|
||||
msgstr ""
|
||||
|
||||
msgid "Channels"
|
||||
msgstr ""
|
||||
|
||||
msgid "Cheatfile is blank"
|
||||
msgstr "치트화일 내용없음"
|
||||
|
||||
@ -363,6 +369,9 @@ msgstr ""
|
||||
msgid "Console should be unlocked to modify it."
|
||||
msgstr "변경하려면 콘솔 잠김을 해제하세요."
|
||||
|
||||
msgid "Content"
|
||||
msgstr ""
|
||||
|
||||
msgid "Continue to install game?"
|
||||
msgstr "계속 설치하겠습니까?"
|
||||
|
||||
@ -1006,6 +1015,9 @@ msgstr "화일 로드는 %s 에서?"
|
||||
msgid "Load this DOL as alternate DOL?"
|
||||
msgstr "이 DOL화일을 alternate DOL로 로딩할까요?"
|
||||
|
||||
msgid "Loader Mode"
|
||||
msgstr ""
|
||||
|
||||
msgid "Loader Settings"
|
||||
msgstr ""
|
||||
|
||||
@ -1063,6 +1075,12 @@ msgstr ""
|
||||
msgid "Music Volume"
|
||||
msgstr "음량"
|
||||
|
||||
msgid "Nand Channel Emulation"
|
||||
msgstr ""
|
||||
|
||||
msgid "Nand Emu Channel Path"
|
||||
msgstr ""
|
||||
|
||||
msgid "Nand Emu Path"
|
||||
msgstr ""
|
||||
|
||||
@ -1075,6 +1093,9 @@ msgstr ""
|
||||
msgid "Nand Emulation only works on FAT/FAT32 partitions!"
|
||||
msgstr ""
|
||||
|
||||
msgid "Nand Saves Emulation"
|
||||
msgstr ""
|
||||
|
||||
msgid "Neither"
|
||||
msgstr "표시 없음"
|
||||
|
||||
@ -1360,6 +1381,9 @@ msgstr ""
|
||||
msgid "Screensaver"
|
||||
msgstr "화면보호기"
|
||||
|
||||
msgid "Search Mode"
|
||||
msgstr ""
|
||||
|
||||
msgid "Select"
|
||||
msgstr ""
|
||||
|
||||
|
@ -5,7 +5,7 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: USB Loader GX\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2011-11-08 20:25+0100\n"
|
||||
"POT-Creation-Date: 2011-11-12 18:58+0100\n"
|
||||
"PO-Revision-Date: 2009-10-01 01:00+0200\n"
|
||||
"Last-Translator: raschi\n"
|
||||
"Language-Team: raschi\n"
|
||||
@ -202,6 +202,9 @@ msgstr "Tilbake til HBC eller Wii meny"
|
||||
msgid "Backgroundmusic"
|
||||
msgstr "Bakgrunnsmusikk"
|
||||
|
||||
msgid "Beginning"
|
||||
msgstr ""
|
||||
|
||||
msgid "Big thanks to:"
|
||||
msgstr "Stor takk til:"
|
||||
|
||||
@ -314,6 +317,9 @@ msgstr "Kategorier:"
|
||||
msgid "Change Play Path"
|
||||
msgstr "Endre spill sti"
|
||||
|
||||
msgid "Channels"
|
||||
msgstr ""
|
||||
|
||||
msgid "Cheatfile is blank"
|
||||
msgstr "Juksefil er tom"
|
||||
|
||||
@ -363,6 +369,9 @@ msgstr "Konsoll må være opplåst for å bruke dette."
|
||||
msgid "Console should be unlocked to modify it."
|
||||
msgstr "Konsoll må være opplåst for å modifisere."
|
||||
|
||||
msgid "Content"
|
||||
msgstr ""
|
||||
|
||||
msgid "Continue to install game?"
|
||||
msgstr "Fortsett å installere spill?"
|
||||
|
||||
@ -1006,6 +1015,9 @@ msgstr "Start fil fra: %s ?"
|
||||
msgid "Load this DOL as alternate DOL?"
|
||||
msgstr "Last denne DOL som alternativ DOL?"
|
||||
|
||||
msgid "Loader Mode"
|
||||
msgstr ""
|
||||
|
||||
msgid "Loader Settings"
|
||||
msgstr "Loader innstillinger"
|
||||
|
||||
@ -1063,6 +1075,12 @@ msgstr "Musikk loop modus"
|
||||
msgid "Music Volume"
|
||||
msgstr "Musikk volum"
|
||||
|
||||
msgid "Nand Channel Emulation"
|
||||
msgstr ""
|
||||
|
||||
msgid "Nand Emu Channel Path"
|
||||
msgstr ""
|
||||
|
||||
msgid "Nand Emu Path"
|
||||
msgstr ""
|
||||
|
||||
@ -1075,6 +1093,9 @@ msgstr ""
|
||||
msgid "Nand Emulation only works on FAT/FAT32 partitions!"
|
||||
msgstr ""
|
||||
|
||||
msgid "Nand Saves Emulation"
|
||||
msgstr ""
|
||||
|
||||
msgid "Neither"
|
||||
msgstr "Ingen"
|
||||
|
||||
@ -1360,6 +1381,9 @@ msgstr ""
|
||||
msgid "Screensaver"
|
||||
msgstr "Skjermbeskytter"
|
||||
|
||||
msgid "Search Mode"
|
||||
msgstr ""
|
||||
|
||||
msgid "Select"
|
||||
msgstr "Velg"
|
||||
|
||||
|
@ -5,7 +5,7 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: USB Loader GX\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2011-11-08 20:25+0100\n"
|
||||
"POT-Creation-Date: 2011-11-12 18:58+0100\n"
|
||||
"PO-Revision-Date: 2009-10-01 01:00+0200\n"
|
||||
"Last-Translator: ziom666 (zadania_prog@vp.pl)\n"
|
||||
"Language-Team: \n"
|
||||
@ -202,6 +202,9 @@ msgstr "Powrot do HBC/Wii Menu"
|
||||
msgid "Backgroundmusic"
|
||||
msgstr "Muzyka w tle"
|
||||
|
||||
msgid "Beginning"
|
||||
msgstr ""
|
||||
|
||||
msgid "Big thanks to:"
|
||||
msgstr "Podziekowania dla"
|
||||
|
||||
@ -314,6 +317,9 @@ msgstr ""
|
||||
msgid "Change Play Path"
|
||||
msgstr ""
|
||||
|
||||
msgid "Channels"
|
||||
msgstr "Kanaly"
|
||||
|
||||
msgid "Cheatfile is blank"
|
||||
msgstr "Plik z kodami pusty"
|
||||
|
||||
@ -363,6 +369,9 @@ msgstr ""
|
||||
msgid "Console should be unlocked to modify it."
|
||||
msgstr "Aby zmodyfikowac, odblokuj konsole"
|
||||
|
||||
msgid "Content"
|
||||
msgstr ""
|
||||
|
||||
msgid "Continue to install game?"
|
||||
msgstr "Kontynuowac instalacje?"
|
||||
|
||||
@ -1006,6 +1015,9 @@ msgstr "Zaladowac plik z: %s ?"
|
||||
msgid "Load this DOL as alternate DOL?"
|
||||
msgstr "Zaladowac ten DOL jako alternatywnt?"
|
||||
|
||||
msgid "Loader Mode"
|
||||
msgstr ""
|
||||
|
||||
msgid "Loader Settings"
|
||||
msgstr ""
|
||||
|
||||
@ -1063,6 +1075,12 @@ msgstr ""
|
||||
msgid "Music Volume"
|
||||
msgstr "Poziom glosnosci"
|
||||
|
||||
msgid "Nand Channel Emulation"
|
||||
msgstr ""
|
||||
|
||||
msgid "Nand Emu Channel Path"
|
||||
msgstr ""
|
||||
|
||||
msgid "Nand Emu Path"
|
||||
msgstr ""
|
||||
|
||||
@ -1075,6 +1093,9 @@ msgstr ""
|
||||
msgid "Nand Emulation only works on FAT/FAT32 partitions!"
|
||||
msgstr ""
|
||||
|
||||
msgid "Nand Saves Emulation"
|
||||
msgstr ""
|
||||
|
||||
msgid "Neither"
|
||||
msgstr "zadne"
|
||||
|
||||
@ -1360,6 +1381,9 @@ msgstr ""
|
||||
msgid "Screensaver"
|
||||
msgstr "Wygaszacz ekranu"
|
||||
|
||||
msgid "Search Mode"
|
||||
msgstr ""
|
||||
|
||||
msgid "Select"
|
||||
msgstr "Wybierz"
|
||||
|
||||
@ -1968,9 +1992,6 @@ msgstr "sekund pozostalo"
|
||||
#~ msgid "Back to Wii Menu"
|
||||
#~ msgstr "Powrit do Wii Menu"
|
||||
|
||||
#~ msgid "Channels"
|
||||
#~ msgstr "Kanaly"
|
||||
|
||||
#~ msgid "Checking existing artwork"
|
||||
#~ msgstr "Sprawdzam istniejace prace graficzne"
|
||||
|
||||
|
@ -5,7 +5,7 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: USB Loader GX\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2011-11-08 20:25+0100\n"
|
||||
"POT-Creation-Date: 2011-11-12 18:58+0100\n"
|
||||
"PO-Revision-Date: 2009-10-23 18:52+0200\n"
|
||||
"Last-Translator: aniemotion\n"
|
||||
"Language-Team: boto12, aniemotion\n"
|
||||
@ -202,6 +202,9 @@ msgstr "Voltar ao Loader/Menu do Wii"
|
||||
msgid "Backgroundmusic"
|
||||
msgstr "Música de fundo"
|
||||
|
||||
msgid "Beginning"
|
||||
msgstr ""
|
||||
|
||||
msgid "Big thanks to:"
|
||||
msgstr "Agradecimentos:"
|
||||
|
||||
@ -314,6 +317,9 @@ msgstr "Categorias:"
|
||||
msgid "Change Play Path"
|
||||
msgstr "Alterar Caminho para Play"
|
||||
|
||||
msgid "Channels"
|
||||
msgstr ""
|
||||
|
||||
msgid "Cheatfile is blank"
|
||||
msgstr "arquivo de truques vazio"
|
||||
|
||||
@ -363,6 +369,9 @@ msgstr "Configuração deve está destravada para habilitar esta."
|
||||
msgid "Console should be unlocked to modify it."
|
||||
msgstr "É necessário desbloquear a configuração para poder modificar o parâmetro."
|
||||
|
||||
msgid "Content"
|
||||
msgstr ""
|
||||
|
||||
msgid "Continue to install game?"
|
||||
msgstr "Continuar instalação do jogo?"
|
||||
|
||||
@ -1006,6 +1015,9 @@ msgstr "Carregar arquivo de: %s ?"
|
||||
msgid "Load this DOL as alternate DOL?"
|
||||
msgstr "Carregar este DOL como DOL alternativo?"
|
||||
|
||||
msgid "Loader Mode"
|
||||
msgstr ""
|
||||
|
||||
msgid "Loader Settings"
|
||||
msgstr ""
|
||||
|
||||
@ -1063,6 +1075,12 @@ msgstr "Modo Repetição de Música"
|
||||
msgid "Music Volume"
|
||||
msgstr "Volume da Música"
|
||||
|
||||
msgid "Nand Channel Emulation"
|
||||
msgstr ""
|
||||
|
||||
msgid "Nand Emu Channel Path"
|
||||
msgstr ""
|
||||
|
||||
msgid "Nand Emu Path"
|
||||
msgstr ""
|
||||
|
||||
@ -1075,6 +1093,9 @@ msgstr ""
|
||||
msgid "Nand Emulation only works on FAT/FAT32 partitions!"
|
||||
msgstr ""
|
||||
|
||||
msgid "Nand Saves Emulation"
|
||||
msgstr ""
|
||||
|
||||
msgid "Neither"
|
||||
msgstr "Nenhum"
|
||||
|
||||
@ -1360,6 +1381,9 @@ msgstr ""
|
||||
msgid "Screensaver"
|
||||
msgstr "Proteção de tela"
|
||||
|
||||
msgid "Search Mode"
|
||||
msgstr ""
|
||||
|
||||
msgid "Select"
|
||||
msgstr "selecionar"
|
||||
|
||||
|
@ -5,7 +5,7 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: USB Loader GX\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2011-10-22 12:10+0200\n"
|
||||
"POT-Creation-Date: 2011-11-12 18:58+0100\n"
|
||||
"PO-Revision-Date: 2011-11-03 11:00+0000\n"
|
||||
"Last-Translator: pplucky <pplucky@gmail.com>\n"
|
||||
"Language-Team: Sky8000, pplucky\n"
|
||||
@ -202,6 +202,9 @@ msgstr "Voltar ao HBC ou Menu Wii"
|
||||
msgid "Backgroundmusic"
|
||||
msgstr "Música de fundo"
|
||||
|
||||
msgid "Beginning"
|
||||
msgstr ""
|
||||
|
||||
msgid "Big thanks to:"
|
||||
msgstr "Agradecimentos:"
|
||||
|
||||
@ -314,6 +317,9 @@ msgstr "Categorias:"
|
||||
msgid "Change Play Path"
|
||||
msgstr "Alterar Caminho de Músicas"
|
||||
|
||||
msgid "Channels"
|
||||
msgstr ""
|
||||
|
||||
msgid "Cheatfile is blank"
|
||||
msgstr "Ficheiro de batota vazio"
|
||||
|
||||
@ -363,6 +369,9 @@ msgstr "Consola tem de estar desbloqueada para usar isto."
|
||||
msgid "Console should be unlocked to modify it."
|
||||
msgstr "Consola deve estar desbloqueada para modificar o parâmetro."
|
||||
|
||||
msgid "Content"
|
||||
msgstr ""
|
||||
|
||||
msgid "Continue to install game?"
|
||||
msgstr "Continuar instalação do jogo?"
|
||||
|
||||
@ -525,7 +534,7 @@ msgstr "Deseja extrair todas as gravações?"
|
||||
|
||||
msgid "Do you want to extract the save game?"
|
||||
msgstr "Deseja extrair esta gravação?"
|
||||
|
||||
|
||||
msgid "Do you want to format:"
|
||||
msgstr "Deseja FORMATAR:"
|
||||
|
||||
@ -1006,6 +1015,9 @@ msgstr "Carregar ficheiro de: %s ?"
|
||||
msgid "Load this DOL as alternate DOL?"
|
||||
msgstr "Carregar este DOL como DOL alternativo?"
|
||||
|
||||
msgid "Loader Mode"
|
||||
msgstr ""
|
||||
|
||||
msgid "Loader Settings"
|
||||
msgstr "Definições do Loader"
|
||||
|
||||
@ -1063,6 +1075,12 @@ msgstr "Modo de Repetição"
|
||||
msgid "Music Volume"
|
||||
msgstr "Volume Música"
|
||||
|
||||
msgid "Nand Channel Emulation"
|
||||
msgstr ""
|
||||
|
||||
msgid "Nand Emu Channel Path"
|
||||
msgstr ""
|
||||
|
||||
msgid "Nand Emu Path"
|
||||
msgstr "Caminho Nand Emu"
|
||||
|
||||
@ -1075,6 +1093,9 @@ msgstr "Emulação Nand apenas disponível em cIOS D2X!"
|
||||
msgid "Nand Emulation only works on FAT/FAT32 partitions!"
|
||||
msgstr "Emulação Nand apenas funciona em partições FAT/FAT32!"
|
||||
|
||||
msgid "Nand Saves Emulation"
|
||||
msgstr ""
|
||||
|
||||
msgid "Neither"
|
||||
msgstr "Nenhum"
|
||||
|
||||
@ -1360,6 +1381,9 @@ msgstr "Gravação pode não existir para este jogo."
|
||||
msgid "Screensaver"
|
||||
msgstr "Protector de ecrã"
|
||||
|
||||
msgid "Search Mode"
|
||||
msgstr ""
|
||||
|
||||
msgid "Select"
|
||||
msgstr "Seleccionar"
|
||||
|
||||
@ -1789,4 +1813,4 @@ msgstr "segundos restantes"
|
||||
#~ msgstr "WiiTDB está actualizado."
|
||||
|
||||
#~ msgid "for WiiTDB and hosting covers / disc images"
|
||||
#~ msgstr "por WiiTDB e alojar img. capas / discos"
|
||||
#~ msgstr "por WiiTDB e alojar img. capas / discos"
|
||||
|
@ -5,7 +5,7 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: USB Loader GX\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2011-11-08 20:25+0100\n"
|
||||
"POT-Creation-Date: 2011-11-12 18:58+0100\n"
|
||||
"PO-Revision-Date: 2009-10-01 01:00+0200\n"
|
||||
"Last-Translator: nikolai_ca\n"
|
||||
"Language-Team: Kir, alendit, nikolai_ca\n"
|
||||
@ -202,6 +202,9 @@ msgstr "Вернуться в HBC или меню Wii"
|
||||
msgid "Backgroundmusic"
|
||||
msgstr "Фоновая музыка"
|
||||
|
||||
msgid "Beginning"
|
||||
msgstr ""
|
||||
|
||||
msgid "Big thanks to:"
|
||||
msgstr "Большое спасибо:"
|
||||
|
||||
@ -314,6 +317,9 @@ msgstr ""
|
||||
msgid "Change Play Path"
|
||||
msgstr ""
|
||||
|
||||
msgid "Channels"
|
||||
msgstr "Каналы"
|
||||
|
||||
msgid "Cheatfile is blank"
|
||||
msgstr "Файл с читами пустой"
|
||||
|
||||
@ -363,6 +369,9 @@ msgstr ""
|
||||
msgid "Console should be unlocked to modify it."
|
||||
msgstr "Для изменения консоль должна быть разблокирована."
|
||||
|
||||
msgid "Content"
|
||||
msgstr ""
|
||||
|
||||
msgid "Continue to install game?"
|
||||
msgstr "Продолжить установку игры ?"
|
||||
|
||||
@ -1006,6 +1015,9 @@ msgstr "Загрузить файл из %s ?"
|
||||
msgid "Load this DOL as alternate DOL?"
|
||||
msgstr "Загрузить этот DOL в качестве альтернативного ?"
|
||||
|
||||
msgid "Loader Mode"
|
||||
msgstr ""
|
||||
|
||||
msgid "Loader Settings"
|
||||
msgstr ""
|
||||
|
||||
@ -1063,6 +1075,12 @@ msgstr ""
|
||||
msgid "Music Volume"
|
||||
msgstr "Громкость"
|
||||
|
||||
msgid "Nand Channel Emulation"
|
||||
msgstr ""
|
||||
|
||||
msgid "Nand Emu Channel Path"
|
||||
msgstr ""
|
||||
|
||||
msgid "Nand Emu Path"
|
||||
msgstr ""
|
||||
|
||||
@ -1075,6 +1093,9 @@ msgstr ""
|
||||
msgid "Nand Emulation only works on FAT/FAT32 partitions!"
|
||||
msgstr ""
|
||||
|
||||
msgid "Nand Saves Emulation"
|
||||
msgstr ""
|
||||
|
||||
msgid "Neither"
|
||||
msgstr "Ни то, ни другое"
|
||||
|
||||
@ -1360,6 +1381,9 @@ msgstr ""
|
||||
msgid "Screensaver"
|
||||
msgstr "Скринсейвер"
|
||||
|
||||
msgid "Search Mode"
|
||||
msgstr ""
|
||||
|
||||
msgid "Select"
|
||||
msgstr ""
|
||||
|
||||
@ -1968,9 +1992,6 @@ msgstr "секунд осталось"
|
||||
#~ msgid "Back to Wii Menu"
|
||||
#~ msgstr "Вернуться в меню Wii"
|
||||
|
||||
#~ msgid "Channels"
|
||||
#~ msgstr "Каналы"
|
||||
|
||||
#~ msgid "Checking existing artwork"
|
||||
#~ msgstr "Проверка существующей графики"
|
||||
|
||||
|
@ -5,7 +5,7 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: USB Loader GX\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2011-11-08 20:25+0100\n"
|
||||
"POT-Creation-Date: 2011-11-12 18:58+0100\n"
|
||||
"PO-Revision-Date: 2009-10-01 01:00+0200\n"
|
||||
"Last-Translator: knife.hu kavid emul8ion\n"
|
||||
"Language-Team: kavid\n"
|
||||
@ -202,6 +202,9 @@ msgstr "返回 HBC 或 Wii 系统菜单"
|
||||
msgid "Backgroundmusic"
|
||||
msgstr "背景音乐"
|
||||
|
||||
msgid "Beginning"
|
||||
msgstr ""
|
||||
|
||||
msgid "Big thanks to:"
|
||||
msgstr "非常感谢:"
|
||||
|
||||
@ -314,6 +317,9 @@ msgstr ""
|
||||
msgid "Change Play Path"
|
||||
msgstr "更改游戏路径"
|
||||
|
||||
msgid "Channels"
|
||||
msgstr "频道"
|
||||
|
||||
msgid "Cheatfile is blank"
|
||||
msgstr "作弊码文件是空的"
|
||||
|
||||
@ -363,6 +369,9 @@ msgstr ""
|
||||
msgid "Console should be unlocked to modify it."
|
||||
msgstr "需解锁以开启设定功能."
|
||||
|
||||
msgid "Content"
|
||||
msgstr ""
|
||||
|
||||
msgid "Continue to install game?"
|
||||
msgstr "继续安装游戏?"
|
||||
|
||||
@ -1006,6 +1015,9 @@ msgstr "从%s 加载文件?"
|
||||
msgid "Load this DOL as alternate DOL?"
|
||||
msgstr "加载这个 DOL 作为 ALT DOL?"
|
||||
|
||||
msgid "Loader Mode"
|
||||
msgstr ""
|
||||
|
||||
msgid "Loader Settings"
|
||||
msgstr "Loader设置"
|
||||
|
||||
@ -1063,6 +1075,12 @@ msgstr "音乐循环模式"
|
||||
msgid "Music Volume"
|
||||
msgstr "音量"
|
||||
|
||||
msgid "Nand Channel Emulation"
|
||||
msgstr ""
|
||||
|
||||
msgid "Nand Emu Channel Path"
|
||||
msgstr ""
|
||||
|
||||
msgid "Nand Emu Path"
|
||||
msgstr ""
|
||||
|
||||
@ -1075,6 +1093,9 @@ msgstr ""
|
||||
msgid "Nand Emulation only works on FAT/FAT32 partitions!"
|
||||
msgstr ""
|
||||
|
||||
msgid "Nand Saves Emulation"
|
||||
msgstr ""
|
||||
|
||||
msgid "Neither"
|
||||
msgstr "全不"
|
||||
|
||||
@ -1360,6 +1381,9 @@ msgstr ""
|
||||
msgid "Screensaver"
|
||||
msgstr "屏幕保护"
|
||||
|
||||
msgid "Search Mode"
|
||||
msgstr ""
|
||||
|
||||
msgid "Select"
|
||||
msgstr "选择"
|
||||
|
||||
@ -1956,9 +1980,6 @@ msgstr "剩余秒数"
|
||||
#~ msgid "Back to Wii Menu"
|
||||
#~ msgstr "返回 Wii 系统菜单"
|
||||
|
||||
#~ msgid "Channels"
|
||||
#~ msgstr "频道"
|
||||
|
||||
#~ msgid "Checking existing artwork"
|
||||
#~ msgstr "检测已存在的插图"
|
||||
|
||||
|
@ -5,7 +5,7 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: USB Loader GX\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2011-11-08 15:25+0200\n"
|
||||
"POT-Creation-Date: 2011-11-12 18:58+0100\n"
|
||||
"PO-Revision-Date: 2011-07-25 16:40+0200\n"
|
||||
"Last-Translator: Galen/xFede\n"
|
||||
"Language-Team: Penn, SirPalax, hvy109\n"
|
||||
@ -202,6 +202,9 @@ msgstr "Volver a HBC o Menú Wii"
|
||||
msgid "Backgroundmusic"
|
||||
msgstr "Música de fondo"
|
||||
|
||||
msgid "Beginning"
|
||||
msgstr ""
|
||||
|
||||
msgid "Big thanks to:"
|
||||
msgstr "Gracias a:"
|
||||
|
||||
@ -314,6 +317,9 @@ msgstr "Categorías:"
|
||||
msgid "Change Play Path"
|
||||
msgstr "Cambiar Ruta"
|
||||
|
||||
msgid "Channels"
|
||||
msgstr ""
|
||||
|
||||
msgid "Cheatfile is blank"
|
||||
msgstr "El archivo de Trucos está vacio"
|
||||
|
||||
@ -363,6 +369,9 @@ msgstr "Debes desbloquear la consola para poder usar esto."
|
||||
msgid "Console should be unlocked to modify it."
|
||||
msgstr "Debes desbloquear la consola para modificarlo."
|
||||
|
||||
msgid "Content"
|
||||
msgstr ""
|
||||
|
||||
msgid "Continue to install game?"
|
||||
msgstr "¿Continuar instalando juego?"
|
||||
|
||||
@ -1006,6 +1015,9 @@ msgstr "¿Cargar el archivo desde: %s ?"
|
||||
msgid "Load this DOL as alternate DOL?"
|
||||
msgstr "¿Cargar este DOL como DOL Alternativo?"
|
||||
|
||||
msgid "Loader Mode"
|
||||
msgstr ""
|
||||
|
||||
msgid "Loader Settings"
|
||||
msgstr "Configuración del Cargador"
|
||||
|
||||
@ -1063,6 +1075,12 @@ msgstr "Modo Bucle Musical"
|
||||
msgid "Music Volume"
|
||||
msgstr "Volumen de la Música"
|
||||
|
||||
msgid "Nand Channel Emulation"
|
||||
msgstr ""
|
||||
|
||||
msgid "Nand Emu Channel Path"
|
||||
msgstr ""
|
||||
|
||||
msgid "Nand Emu Path"
|
||||
msgstr "Ruta Emul. Nand"
|
||||
|
||||
@ -1075,6 +1093,9 @@ msgstr "¡La emulación Nand solo está disponible en cIOS D2X!"
|
||||
msgid "Nand Emulation only works on FAT/FAT32 partitions!"
|
||||
msgstr "¡La emulación Nand solo funciona en particiones FAT/FAT32!"
|
||||
|
||||
msgid "Nand Saves Emulation"
|
||||
msgstr ""
|
||||
|
||||
msgid "Neither"
|
||||
msgstr "Ninguno"
|
||||
|
||||
@ -1360,6 +1381,9 @@ msgstr "Puede no existir partida guardada para este juego"
|
||||
msgid "Screensaver"
|
||||
msgstr "Salvapantallas"
|
||||
|
||||
msgid "Search Mode"
|
||||
msgstr ""
|
||||
|
||||
msgid "Select"
|
||||
msgstr "Seleccionar"
|
||||
|
||||
|
@ -5,7 +5,7 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: USB Loader GX\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2011-11-08 20:25+0100\n"
|
||||
"POT-Creation-Date: 2011-11-12 18:58+0100\n"
|
||||
"PO-Revision-Date: 2010-01-19 17:39+0200\n"
|
||||
"Last-Translator: Katsurou\n"
|
||||
"Language-Team: Katsurou, pirateX\n"
|
||||
@ -202,6 +202,9 @@ msgstr "Tillbaka till HBC eller Wii-Menyn"
|
||||
msgid "Backgroundmusic"
|
||||
msgstr "Bakgrundsmusik"
|
||||
|
||||
msgid "Beginning"
|
||||
msgstr ""
|
||||
|
||||
msgid "Big thanks to:"
|
||||
msgstr "Stort tack till:"
|
||||
|
||||
@ -314,6 +317,9 @@ msgstr ""
|
||||
msgid "Change Play Path"
|
||||
msgstr "Ändra spel sökväg"
|
||||
|
||||
msgid "Channels"
|
||||
msgstr "Kannaler"
|
||||
|
||||
msgid "Cheatfile is blank"
|
||||
msgstr "Fuskfilen är blank"
|
||||
|
||||
@ -363,6 +369,9 @@ msgstr ""
|
||||
msgid "Console should be unlocked to modify it."
|
||||
msgstr "Konsolen måste vara upplåst för att kunna ändra det."
|
||||
|
||||
msgid "Content"
|
||||
msgstr ""
|
||||
|
||||
msgid "Continue to install game?"
|
||||
msgstr "Fortsätt installera spel?"
|
||||
|
||||
@ -1006,6 +1015,9 @@ msgstr "Ladda fil från: %s?"
|
||||
msgid "Load this DOL as alternate DOL?"
|
||||
msgstr "Ladda denna DOL som alternativ DOL?"
|
||||
|
||||
msgid "Loader Mode"
|
||||
msgstr ""
|
||||
|
||||
msgid "Loader Settings"
|
||||
msgstr ""
|
||||
|
||||
@ -1063,6 +1075,12 @@ msgstr "Musik Återuppspelningsläge"
|
||||
msgid "Music Volume"
|
||||
msgstr "Volym"
|
||||
|
||||
msgid "Nand Channel Emulation"
|
||||
msgstr ""
|
||||
|
||||
msgid "Nand Emu Channel Path"
|
||||
msgstr ""
|
||||
|
||||
msgid "Nand Emu Path"
|
||||
msgstr ""
|
||||
|
||||
@ -1075,6 +1093,9 @@ msgstr ""
|
||||
msgid "Nand Emulation only works on FAT/FAT32 partitions!"
|
||||
msgstr ""
|
||||
|
||||
msgid "Nand Saves Emulation"
|
||||
msgstr ""
|
||||
|
||||
msgid "Neither"
|
||||
msgstr "Inget"
|
||||
|
||||
@ -1360,6 +1381,9 @@ msgstr ""
|
||||
msgid "Screensaver"
|
||||
msgstr "Skärmsläckare"
|
||||
|
||||
msgid "Search Mode"
|
||||
msgstr ""
|
||||
|
||||
msgid "Select"
|
||||
msgstr "Välj"
|
||||
|
||||
@ -1968,9 +1992,6 @@ msgstr "sekunder kvar"
|
||||
#~ msgid "Back to Wii Menu"
|
||||
#~ msgstr "Tillbaka till Wii-menyn"
|
||||
|
||||
#~ msgid "Channels"
|
||||
#~ msgstr "Kannaler"
|
||||
|
||||
#~ msgid "Checking existing artwork"
|
||||
#~ msgstr "Kontrollera befintliga konstverk"
|
||||
|
||||
|
@ -5,7 +5,7 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: USB Loader GX\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2011-11-08 20:25+0100\n"
|
||||
"POT-Creation-Date: 2011-11-12 18:58+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"
|
||||
@ -202,6 +202,9 @@ msgstr "返回 HBC 或 Wii 系統選單"
|
||||
msgid "Backgroundmusic"
|
||||
msgstr "背景音樂"
|
||||
|
||||
msgid "Beginning"
|
||||
msgstr ""
|
||||
|
||||
msgid "Big thanks to:"
|
||||
msgstr "非常感謝:"
|
||||
|
||||
@ -314,6 +317,9 @@ msgstr "類別:"
|
||||
msgid "Change Play Path"
|
||||
msgstr "變更執行路徑"
|
||||
|
||||
msgid "Channels"
|
||||
msgstr ""
|
||||
|
||||
msgid "Cheatfile is blank"
|
||||
msgstr "金手指檔是空的"
|
||||
|
||||
@ -363,6 +369,9 @@ msgstr "控制台必須解鎖才可使用此項。"
|
||||
msgid "Console should be unlocked to modify it."
|
||||
msgstr "控制台須解鎖才可變更設定。"
|
||||
|
||||
msgid "Content"
|
||||
msgstr ""
|
||||
|
||||
msgid "Continue to install game?"
|
||||
msgstr "繼續安裝遊戲?"
|
||||
|
||||
@ -1006,6 +1015,9 @@ msgstr "檔案載入位置: %s"
|
||||
msgid "Load this DOL as alternate DOL?"
|
||||
msgstr "載入這個 DOL 作為替代 DOL?"
|
||||
|
||||
msgid "Loader Mode"
|
||||
msgstr ""
|
||||
|
||||
msgid "Loader Settings"
|
||||
msgstr "Loader設定"
|
||||
|
||||
@ -1063,6 +1075,12 @@ msgstr "音樂循環模式"
|
||||
msgid "Music Volume"
|
||||
msgstr "音樂音量"
|
||||
|
||||
msgid "Nand Channel Emulation"
|
||||
msgstr ""
|
||||
|
||||
msgid "Nand Emu Channel Path"
|
||||
msgstr ""
|
||||
|
||||
msgid "Nand Emu Path"
|
||||
msgstr "Nand 模擬器路徑"
|
||||
|
||||
@ -1075,6 +1093,9 @@ msgstr "Nand 模擬器僅可用D2X cIOS!"
|
||||
msgid "Nand Emulation only works on FAT/FAT32 partitions!"
|
||||
msgstr "Nand 模擬器僅能在 FAT/FAT32 格式磁區執行!"
|
||||
|
||||
msgid "Nand Saves Emulation"
|
||||
msgstr ""
|
||||
|
||||
msgid "Neither"
|
||||
msgstr "皆不顯示"
|
||||
|
||||
@ -1360,6 +1381,9 @@ msgstr "這個遊戲的遊戲存檔可能不存在。"
|
||||
msgid "Screensaver"
|
||||
msgstr "螢幕保護"
|
||||
|
||||
msgid "Search Mode"
|
||||
msgstr ""
|
||||
|
||||
msgid "Select"
|
||||
msgstr "選取"
|
||||
|
||||
|
@ -5,7 +5,7 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: USB Loader GX\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2011-10-22 12:10+0200\n"
|
||||
"POT-Creation-Date: 2011-11-12 18:58+0100\n"
|
||||
"PO-Revision-Date: 2009-10-01 01:00+0200\n"
|
||||
"Last-Translator: Nitro_subzero \n"
|
||||
"Language-Team: Nitro_subzero\n"
|
||||
@ -202,6 +202,9 @@ msgstr "กลับไป HBC หรือ เมนู Wii"
|
||||
msgid "Backgroundmusic"
|
||||
msgstr "ดนตรีเบื้องหลัง"
|
||||
|
||||
msgid "Beginning"
|
||||
msgstr ""
|
||||
|
||||
msgid "Big thanks to:"
|
||||
msgstr "ขอขอบคุณ:"
|
||||
|
||||
@ -314,6 +317,9 @@ msgstr ""
|
||||
msgid "Change Play Path"
|
||||
msgstr ""
|
||||
|
||||
msgid "Channels"
|
||||
msgstr "แชนแนล"
|
||||
|
||||
msgid "Cheatfile is blank"
|
||||
msgstr "ไฟล์สูตรโกง ว่างเปล่า"
|
||||
|
||||
@ -363,6 +369,9 @@ msgstr ""
|
||||
msgid "Console should be unlocked to modify it."
|
||||
msgstr "ปลดล๊อคคอนโซลก่อน ถึงจะทำการเปลี่ยนแปลงได้"
|
||||
|
||||
msgid "Content"
|
||||
msgstr ""
|
||||
|
||||
msgid "Continue to install game?"
|
||||
msgstr "ทำต่อ เพื่อติดตั้งเกมส์?"
|
||||
|
||||
@ -1006,6 +1015,9 @@ msgstr "โหลดไฟล์จาก: %s ?"
|
||||
msgid "Load this DOL as alternate DOL?"
|
||||
msgstr "โหลด DOL นี้เป็น alternate DOL?"
|
||||
|
||||
msgid "Loader Mode"
|
||||
msgstr ""
|
||||
|
||||
msgid "Loader Settings"
|
||||
msgstr ""
|
||||
|
||||
@ -1063,6 +1075,12 @@ msgstr ""
|
||||
msgid "Music Volume"
|
||||
msgstr "ความดังเสียงเพลง"
|
||||
|
||||
msgid "Nand Channel Emulation"
|
||||
msgstr ""
|
||||
|
||||
msgid "Nand Emu Channel Path"
|
||||
msgstr ""
|
||||
|
||||
msgid "Nand Emu Path"
|
||||
msgstr ""
|
||||
|
||||
@ -1075,6 +1093,9 @@ msgstr ""
|
||||
msgid "Nand Emulation only works on FAT/FAT32 partitions!"
|
||||
msgstr ""
|
||||
|
||||
msgid "Nand Saves Emulation"
|
||||
msgstr ""
|
||||
|
||||
msgid "Neither"
|
||||
msgstr "ไม่ทั้งสอง"
|
||||
|
||||
@ -1360,6 +1381,9 @@ msgstr ""
|
||||
msgid "Screensaver"
|
||||
msgstr "รักษาหน้าจอ"
|
||||
|
||||
msgid "Search Mode"
|
||||
msgstr ""
|
||||
|
||||
msgid "Select"
|
||||
msgstr ""
|
||||
|
||||
@ -1926,9 +1950,6 @@ msgstr "วินาทีที่เหลือ"
|
||||
#~ msgid "Back to Wii Menu"
|
||||
#~ msgstr "กลับไป เมนู Wii"
|
||||
|
||||
#~ msgid "Channels"
|
||||
#~ msgstr "แชนแนล"
|
||||
|
||||
#~ msgid "Checking existing artwork"
|
||||
#~ msgstr "ตรวจหาอาร์ตเวิรค์"
|
||||
|
||||
|
@ -5,7 +5,7 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: USB Loader GX\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2011-10-22 12:10+0200\n"
|
||||
"POT-Creation-Date: 2011-11-12 18:58+0100\n"
|
||||
"PO-Revision-Date: 2009-10-01 01:00+0200\n"
|
||||
"Last-Translator: omercigingelini\n"
|
||||
"Language-Team: omercigingelini\n"
|
||||
@ -202,6 +202,9 @@ msgstr "HBC veya Wii Menüye dönüş"
|
||||
msgid "Backgroundmusic"
|
||||
msgstr "Arkaplan müziği"
|
||||
|
||||
msgid "Beginning"
|
||||
msgstr ""
|
||||
|
||||
msgid "Big thanks to:"
|
||||
msgstr "Teşekkürler:"
|
||||
|
||||
@ -314,6 +317,9 @@ msgstr ""
|
||||
msgid "Change Play Path"
|
||||
msgstr ""
|
||||
|
||||
msgid "Channels"
|
||||
msgstr "Kanallar"
|
||||
|
||||
msgid "Cheatfile is blank"
|
||||
msgstr "Hile dosyası boş"
|
||||
|
||||
@ -363,6 +369,9 @@ msgstr ""
|
||||
msgid "Console should be unlocked to modify it."
|
||||
msgstr "Degiştirmek için konsolun kilidini açmalısın."
|
||||
|
||||
msgid "Content"
|
||||
msgstr ""
|
||||
|
||||
msgid "Continue to install game?"
|
||||
msgstr "Oyunu kurmaya devam et?"
|
||||
|
||||
@ -1006,6 +1015,9 @@ msgstr "Dosya %s 'ten yüklensin mi?"
|
||||
msgid "Load this DOL as alternate DOL?"
|
||||
msgstr "Bu DOL alternatif DOL olarak mı yüklensin?"
|
||||
|
||||
msgid "Loader Mode"
|
||||
msgstr ""
|
||||
|
||||
msgid "Loader Settings"
|
||||
msgstr ""
|
||||
|
||||
@ -1063,6 +1075,12 @@ msgstr ""
|
||||
msgid "Music Volume"
|
||||
msgstr "Ses Seviyesi"
|
||||
|
||||
msgid "Nand Channel Emulation"
|
||||
msgstr ""
|
||||
|
||||
msgid "Nand Emu Channel Path"
|
||||
msgstr ""
|
||||
|
||||
msgid "Nand Emu Path"
|
||||
msgstr ""
|
||||
|
||||
@ -1075,6 +1093,9 @@ msgstr ""
|
||||
msgid "Nand Emulation only works on FAT/FAT32 partitions!"
|
||||
msgstr ""
|
||||
|
||||
msgid "Nand Saves Emulation"
|
||||
msgstr ""
|
||||
|
||||
msgid "Neither"
|
||||
msgstr "Hiçbiri"
|
||||
|
||||
@ -1360,6 +1381,9 @@ msgstr ""
|
||||
msgid "Screensaver"
|
||||
msgstr "Ekran Koruyucu"
|
||||
|
||||
msgid "Search Mode"
|
||||
msgstr ""
|
||||
|
||||
msgid "Select"
|
||||
msgstr "Seç"
|
||||
|
||||
@ -1932,9 +1956,6 @@ msgstr "saniye kaldı"
|
||||
#~ msgid "Back to Wii Menu"
|
||||
#~ msgstr "Wii Menüye dönüş"
|
||||
|
||||
#~ msgid "Channels"
|
||||
#~ msgstr "Kanallar"
|
||||
|
||||
#~ msgid "Checking existing artwork"
|
||||
#~ msgstr "Hazır görsel kontrol ediliyor"
|
||||
|
||||
|
1
Makefile
1
Makefile
@ -33,6 +33,7 @@ SOURCES := source \
|
||||
source/prompts \
|
||||
source/wad \
|
||||
source/banner \
|
||||
source/Channels \
|
||||
source/BoxCover \
|
||||
source/cheats \
|
||||
source/homebrewboot \
|
||||
|
@ -1,9 +1,11 @@
|
||||
#include <wctype.h>
|
||||
#include "gui.h"
|
||||
#include "gui_searchbar.h"
|
||||
|
||||
#include "../wpad.h"
|
||||
#include "../main.h"
|
||||
#include "../settings/CSettings.h"
|
||||
#include "../settings/GameTitles.h"
|
||||
#include "../themes/CTheme.h"
|
||||
#include "../usbloader/GameList.h"
|
||||
|
||||
@ -29,9 +31,11 @@ class cSearchButton
|
||||
|
||||
};
|
||||
|
||||
GuiSearchBar::GuiSearchBar(const std::set<wchar_t> &SearchChars) :
|
||||
inSide(0), text((char *) NULL, 22, ( GXColor )
|
||||
{ 0, 0, 0, 255}), buttons(0),
|
||||
static wchar_t lastSearchChar = 0;
|
||||
std::set<wchar_t> GuiSearchBar::SearchChars;
|
||||
|
||||
GuiSearchBar::GuiSearchBar() :
|
||||
inSide(0), text((char *) NULL, 22, ( GXColor ) {0, 0, 0, 255}), buttons(0),
|
||||
keyImageData(Resources::GetFile("keyboard_key.png"), Resources::GetFileSize("keyboard_key.png")),
|
||||
keyOverImageData(Resources::GetFile("keyboard_key_over.png"), Resources::GetFileSize("keyboard_key_over.png"))
|
||||
{
|
||||
@ -63,11 +67,15 @@ GuiSearchBar::GuiSearchBar(const std::set<wchar_t> &SearchChars) :
|
||||
}
|
||||
height = 10 + 42 + y * 42 + 10;
|
||||
|
||||
charstr[0] = Settings.SearchMode == SEARCH_BEGINNING ? L'=' : L'*';
|
||||
searchModeBtn = new cSearchButton(charstr, &keyImageData, &keyOverImageData, 10, 10, &trig, btnSoundOver, btnSoundClick);
|
||||
this->Append(&searchModeBtn->button);
|
||||
|
||||
text.SetText(gameList.GetCurrentFilter());
|
||||
text.SetPosition(10, 15);
|
||||
text.SetPosition(55, 15);
|
||||
text.SetAlignment(ALIGN_LEFT, ALIGN_TOP);
|
||||
text.SetWidescreen(Settings.widescreen);
|
||||
text.SetMaxWidth(width - (10 + 2 * 42 + 10), SCROLL_HORIZONTAL);
|
||||
text.SetMaxWidth(width - (55 + 2 * 42 + 10), SCROLL_HORIZONTAL);
|
||||
this->Append(&text);
|
||||
|
||||
imgBacspaceBtn = Resources::GetImageData("keyboard_backspace_over.png");
|
||||
@ -105,6 +113,7 @@ GuiSearchBar::~GuiSearchBar()
|
||||
delete imgClearBtn;
|
||||
|
||||
delete CloseBtn;
|
||||
delete searchModeBtn;
|
||||
|
||||
delete BacspaceBtn;
|
||||
delete BacspaceBtnImg;
|
||||
@ -114,10 +123,8 @@ GuiSearchBar::~GuiSearchBar()
|
||||
}
|
||||
void GuiSearchBar::Draw()
|
||||
{
|
||||
Menu_DrawRectangle(this->GetLeft(), this->GetTop(), width, height, ( GXColor )
|
||||
{ 0, 0, 0, 0xa0}, 1);
|
||||
Menu_DrawRectangle(this->GetLeft() + 10, this->GetTop() + 15, width - (10 + 2 * 42 + 10), 22, ( GXColor )
|
||||
{ 255, 255, 255, 255}, 1);
|
||||
Menu_DrawRectangle(this->GetLeft(), this->GetTop(), width, height, ( GXColor ) {0, 0, 0, 0xa0}, 1);
|
||||
Menu_DrawRectangle(this->GetLeft() + 55, this->GetTop() + 15, width - (55 + 2 * 42 + 10), 22, ( GXColor ) {255, 255, 255, 255}, 1);
|
||||
GuiWindow::Draw();
|
||||
}
|
||||
void GuiSearchBar::Update(GuiTrigger * t)
|
||||
@ -146,6 +153,8 @@ void GuiSearchBar::Update(GuiTrigger * t)
|
||||
}
|
||||
wchar_t GuiSearchBar::GetClicked()
|
||||
{
|
||||
lastSearchChar = 0;
|
||||
|
||||
if (buttons)
|
||||
{
|
||||
for (int i = 0; i < cnt; i++)
|
||||
@ -153,15 +162,96 @@ wchar_t GuiSearchBar::GetClicked()
|
||||
if (buttons[i]->button.GetState() == STATE_CLICKED)
|
||||
{
|
||||
buttons[i]->button.ResetState();
|
||||
return buttons[i]->wchar;
|
||||
lastSearchChar = buttons[i]->wchar;
|
||||
}
|
||||
}
|
||||
}
|
||||
if (BacspaceBtn->GetState() == STATE_CLICKED) return 8;
|
||||
else if (ClearBtn->GetState() == STATE_CLICKED) return 7;
|
||||
else if (CloseBtn->GetState() == STATE_CLICKED) return 27;
|
||||
|
||||
return 0;
|
||||
if (BacspaceBtn->GetState() == STATE_CLICKED) lastSearchChar = 8;
|
||||
else if (ClearBtn->GetState() == STATE_CLICKED) lastSearchChar = 7;
|
||||
else if (CloseBtn->GetState() == STATE_CLICKED) lastSearchChar = 27;
|
||||
else if (searchModeBtn->button.GetState() == STATE_CLICKED) lastSearchChar = 6;
|
||||
|
||||
return lastSearchChar;
|
||||
}
|
||||
|
||||
void GuiSearchBar::FilterList(std::vector<struct discHdr *> &List, wString &GameFilter)
|
||||
{
|
||||
SearchChars.clear();
|
||||
|
||||
for (u32 i = 0; i < List.size(); ++i)
|
||||
{
|
||||
struct discHdr *header = List.at(i);
|
||||
|
||||
wchar_t *gameName = charToWideChar(GameTitles.GetTitle(header));
|
||||
if (!gameName)
|
||||
{
|
||||
List.erase(List.begin()+i);
|
||||
i--;
|
||||
continue;
|
||||
}
|
||||
|
||||
if(Settings.SearchMode == SEARCH_BEGINNING)
|
||||
{
|
||||
if (GameFilter.size() > 0 && wcsncasecmp(gameName, GameFilter.c_str(), GameFilter.size()) != 0)
|
||||
{
|
||||
delete [] gameName;
|
||||
List.erase(List.begin()+i);
|
||||
i--;
|
||||
continue;
|
||||
}
|
||||
|
||||
if ( wcslen(gameName) > GameFilter.size()
|
||||
&& SearchChars.find(towupper(gameName[GameFilter.size()])) == SearchChars.end()
|
||||
&& SearchChars.find(towlower(gameName[GameFilter.size()])) == SearchChars.end())
|
||||
{
|
||||
SearchChars.insert(gameName[GameFilter.size()]);
|
||||
}
|
||||
}
|
||||
else if(Settings.SearchMode == SEARCH_CONTENT)
|
||||
{
|
||||
if(GameFilter.size() > 0)
|
||||
{
|
||||
if (wcscasestr(gameName, GameFilter.c_str()) == 0)
|
||||
{
|
||||
delete [] gameName;
|
||||
List.erase(List.begin()+i);
|
||||
i--;
|
||||
continue;
|
||||
}
|
||||
|
||||
const wchar_t *found = gameName;
|
||||
while((found = wcscasestr(found, GameFilter.c_str())) != 0)
|
||||
{
|
||||
found += GameFilter.size();
|
||||
wchar_t ch = towupper(*found);
|
||||
if(ch)
|
||||
SearchChars.insert(ch);
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
for(const wchar_t *wPtr = gameName; *wPtr != 0; wPtr++)
|
||||
{
|
||||
wchar_t ch = towupper(*wPtr);
|
||||
if(ch > L'@')
|
||||
SearchChars.insert(ch);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
delete [] gameName;
|
||||
}
|
||||
|
||||
if(List.size() < 2)
|
||||
SearchChars.clear();
|
||||
|
||||
// If the last character was not backslash try autocomplete
|
||||
if(SearchChars.size() == 1 && GameFilter.size() > 0 && lastSearchChar != 8)
|
||||
{
|
||||
GameFilter += *SearchChars.begin();
|
||||
FilterList(List, GameFilter);
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
|
@ -1,19 +1,27 @@
|
||||
#ifndef GUI_SEARCHBAR_H_
|
||||
#define GUI_SEARCHBAR_H_
|
||||
#include "gui.h"
|
||||
|
||||
#include <set>
|
||||
#include <vector>
|
||||
#include "gui.h"
|
||||
#include "usbloader/disc.h"
|
||||
#include "wstring.hpp"
|
||||
|
||||
class cSearchButton;
|
||||
|
||||
class GuiSearchBar: public GuiWindow
|
||||
{
|
||||
public:
|
||||
GuiSearchBar(const std::set<wchar_t> &SearchChars);
|
||||
GuiSearchBar();
|
||||
virtual ~GuiSearchBar();
|
||||
void Draw();
|
||||
void Update(GuiTrigger * t);
|
||||
wchar_t GetClicked();
|
||||
|
||||
static void FilterList(std::vector<struct discHdr *> &List, wString &GameFilter);
|
||||
private:
|
||||
static std::set<wchar_t> SearchChars;
|
||||
|
||||
u16 inSide;
|
||||
|
||||
GuiText text;
|
||||
@ -30,6 +38,7 @@ class GuiSearchBar: public GuiWindow
|
||||
|
||||
GuiButton* CloseBtn;
|
||||
|
||||
cSearchButton *searchModeBtn;
|
||||
cSearchButton **buttons;
|
||||
int cnt;
|
||||
GuiImageData keyImageData;
|
||||
|
@ -1,26 +1,25 @@
|
||||
#include <gccore.h>
|
||||
#include <stdio.h>
|
||||
#include <string.h>
|
||||
#include <stdarg.h>
|
||||
#include <malloc.h>
|
||||
#include <sys/iosupport.h>
|
||||
|
||||
/* init-globals */
|
||||
static bool geckoinit = false;
|
||||
|
||||
#ifndef NO_DEBUG
|
||||
#include <stdarg.h>
|
||||
|
||||
void gprintf(const char *format, ...)
|
||||
{
|
||||
if (!geckoinit)
|
||||
return;
|
||||
|
||||
char * tmp = NULL;
|
||||
static char stringBuf[4096];
|
||||
int len;
|
||||
va_list va;
|
||||
va_start(va, format);
|
||||
if((vasprintf(&tmp, format, va) >= 0) && tmp)
|
||||
if((len = vsnprintf(stringBuf, sizeof(stringBuf), format, va)) > 0)
|
||||
{
|
||||
usb_sendbuffer(1, tmp, strlen(tmp));
|
||||
usb_sendbuffer(1, stringBuf, len);
|
||||
#ifdef DEBUG_TO_FILE
|
||||
FILE *debugF = fopen("sd:/debug.txt", "a");
|
||||
if(!debugF)
|
||||
@ -31,9 +30,6 @@ void gprintf(const char *format, ...)
|
||||
#endif
|
||||
}
|
||||
va_end(va);
|
||||
|
||||
if(tmp)
|
||||
free(tmp);
|
||||
}
|
||||
|
||||
bool InitGecko()
|
||||
@ -84,7 +80,7 @@ void hexdump(void *d, int len)
|
||||
|
||||
static ssize_t __out_write(struct _reent *r, int fd, const char *ptr, size_t len)
|
||||
{
|
||||
gprintf(ptr);
|
||||
gprintf("%s", ptr);
|
||||
|
||||
return len;
|
||||
}
|
||||
@ -122,5 +118,3 @@ void USBGeckoOutput()
|
||||
devoptab_list[STD_OUT] = &gecko_out;
|
||||
devoptab_list[STD_ERR] = &gecko_out;
|
||||
}
|
||||
|
||||
#endif /* NO_DEBUG */
|
||||
|
Binary file not shown.
@ -216,13 +216,13 @@ int MainMenu(int menu)
|
||||
currentMenu = MenuInstall();
|
||||
break;
|
||||
case MENU_SETTINGS:
|
||||
currentMenu = GlobalSettings::Show();
|
||||
currentMenu = GlobalSettings::Execute();
|
||||
break;
|
||||
case MENU_THEMEMENU:
|
||||
currentMenu = ThemeMenu::Run();
|
||||
currentMenu = ThemeMenu::Execute();
|
||||
break;
|
||||
case MENU_THEMEDOWNLOADER:
|
||||
currentMenu = ThemeDownloader::Run();
|
||||
currentMenu = ThemeDownloader::Execute();
|
||||
break;
|
||||
case MENU_HOMEBREWBROWSE:
|
||||
currentMenu = HomebrewBrowser::Execute();
|
||||
|
@ -59,8 +59,7 @@ GameBrowseMenu::GameBrowseMenu()
|
||||
GameIDTxt = NULL;
|
||||
GameRegionTxt = NULL;
|
||||
WDVD_GetCoverStatus(&DiscDriveCoverOld);
|
||||
wString oldFilter(gameList.GetCurrentFilter());
|
||||
gameList.FilterList(oldFilter.c_str());
|
||||
gameList.FilterList();
|
||||
HDDSizeCallback.SetCallback(this, &GameBrowseMenu::UpdateFreeSpace);
|
||||
|
||||
btnInstall = Resources::GetImageData("button_install.png");
|
||||
@ -763,7 +762,7 @@ void GameBrowseMenu::ReloadBrowser()
|
||||
|
||||
if (show_searchwindow)
|
||||
{
|
||||
searchBar = new GuiSearchBar(gameList.GetAvailableSearchChars());
|
||||
searchBar = new GuiSearchBar;
|
||||
mainWindow->Append(searchBar);
|
||||
}
|
||||
|
||||
@ -842,8 +841,7 @@ int GameBrowseMenu::MainLoop()
|
||||
gprintf("\tLoading font...%s\n", Theme::LoadFont(Settings.theme_path) ? "done" : "failed (using default)");
|
||||
gprintf("\tLoading theme...%s\n", Theme::Load(Settings.theme) ? "done" : "failed (using default)");
|
||||
bgMusic->Resume();
|
||||
wString oldFilter(gameList.GetCurrentFilter());
|
||||
gameList.FilterList(oldFilter.c_str());
|
||||
gameList.FilterList();
|
||||
ReloadBrowser();
|
||||
ResumeGui();
|
||||
sdcardBtn->ResetState();
|
||||
@ -879,13 +877,12 @@ int GameBrowseMenu::MainLoop()
|
||||
else
|
||||
Settings.GameSort |= SORT_FAVORITE;
|
||||
|
||||
wString oldFilter(gameList.GetCurrentFilter());
|
||||
gameList.FilterList(oldFilter.c_str());
|
||||
gameList.FilterList();
|
||||
|
||||
if((Settings.GameSort & SORT_FAVORITE) && gameList.size() == 0)
|
||||
{
|
||||
Settings.GameSort &= ~SORT_FAVORITE;
|
||||
gameList.FilterList(oldFilter.c_str());
|
||||
gameList.FilterList();
|
||||
ShowError(tr("No favorites selected."));
|
||||
}
|
||||
else
|
||||
@ -896,8 +893,7 @@ int GameBrowseMenu::MainLoop()
|
||||
{
|
||||
gprintf("\tsearchBtn Clicked\n");
|
||||
show_searchwindow = !show_searchwindow;
|
||||
wString oldFilter(gameList.GetCurrentFilter());
|
||||
gameList.FilterList(oldFilter.c_str());
|
||||
gameList.FilterList();
|
||||
ReloadBrowser();
|
||||
searchBtn->ResetState();
|
||||
if(show_searchwindow && wcslen(gameList.GetCurrentFilter()) == 0)
|
||||
@ -908,39 +904,13 @@ int GameBrowseMenu::MainLoop()
|
||||
{
|
||||
if (searchChar > 27) //! Character clicked
|
||||
{
|
||||
for(;;)
|
||||
{
|
||||
int len = wcslen(gameList.GetCurrentFilter());
|
||||
wchar_t newFilter[len + 2];
|
||||
wcscpy(newFilter, gameList.GetCurrentFilter());
|
||||
newFilter[len] = searchChar;
|
||||
newFilter[len + 1] = 0;
|
||||
int len = gameList.GetCurrentFilter() ? wcslen(gameList.GetCurrentFilter()) : 0;
|
||||
wchar_t newFilter[len + 2];
|
||||
if (gameList.GetCurrentFilter()) wcscpy(newFilter, gameList.GetCurrentFilter());
|
||||
newFilter[len] = searchChar;
|
||||
newFilter[len + 1] = 0;
|
||||
|
||||
gameList.FilterList(newFilter);
|
||||
if(gameList.GetAvailableSearchChars().size() != 1)
|
||||
break;
|
||||
searchChar = *gameList.GetAvailableSearchChars().begin();
|
||||
}
|
||||
bool autoClose = false;
|
||||
switch(Settings.gameDisplay)
|
||||
{
|
||||
case LIST_MODE:
|
||||
autoClose = gameList.size()<=9;
|
||||
break;
|
||||
case CAROUSEL_MODE:
|
||||
autoClose = gameList.size()<=5;
|
||||
break;
|
||||
case GRID_MODE:
|
||||
autoClose = gameList.size()<=3;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
|
||||
if(autoClose) // Close Searchwindow when less than 5 Games found
|
||||
{
|
||||
show_searchwindow = false;
|
||||
searchBtn->StopEffect();
|
||||
}
|
||||
gameList.FilterList(newFilter);
|
||||
}
|
||||
else if (searchChar == 27) //! Close
|
||||
{
|
||||
@ -956,16 +926,16 @@ int GameBrowseMenu::MainLoop()
|
||||
{
|
||||
int len = wcslen(gameList.GetCurrentFilter());
|
||||
wchar_t newFilter[len + 1];
|
||||
wcscpy(newFilter, gameList.GetCurrentFilter());
|
||||
int old_game_count = gameList.size();
|
||||
for(; len > 0; len--)
|
||||
{
|
||||
newFilter[len - 1] = 0; // remove last char
|
||||
if(len == 1)
|
||||
Settings.gridRows = GridRowsPreSearch; //! restore old rows amount so we don't stay on one row
|
||||
if(gameList.FilterList(newFilter) != old_game_count)
|
||||
break;
|
||||
}
|
||||
if (gameList.GetCurrentFilter()) wcscpy(newFilter, gameList.GetCurrentFilter());
|
||||
newFilter[len > 0 ? len - 1 : 0] = 0;
|
||||
gameList.FilterList(newFilter);
|
||||
if(len == 1)
|
||||
Settings.gridRows = GridRowsPreSearch; //! restore old rows amount so we don't stay on one row
|
||||
}
|
||||
else if (searchChar == 6)
|
||||
{
|
||||
Settings.SearchMode = Settings.SearchMode == SEARCH_BEGINNING ? SEARCH_CONTENT : SEARCH_BEGINNING;
|
||||
gameList.FilterList();
|
||||
}
|
||||
ReloadBrowser();
|
||||
return MENU_NONE;
|
||||
@ -996,8 +966,7 @@ int GameBrowseMenu::MainLoop()
|
||||
Settings.GameSort |= SORT_ABC;
|
||||
}
|
||||
|
||||
wString oldFilter(gameList.GetCurrentFilter());
|
||||
gameList.FilterList(oldFilter.c_str());
|
||||
gameList.FilterList();
|
||||
ReloadBrowser();
|
||||
}
|
||||
|
||||
@ -1065,8 +1034,7 @@ int GameBrowseMenu::MainLoop()
|
||||
if(WindowPrompt(tr( "Parental Control" ), tr( "Are you sure you want to lock USB Loader GX?" ), tr( "Yes" ), tr( "No" )) == 1)
|
||||
{
|
||||
Settings.godmode = 0;
|
||||
wString oldFilter(gameList.GetCurrentFilter());
|
||||
gameList.FilterList(oldFilter.c_str());
|
||||
gameList.FilterList();
|
||||
ReloadBrowser();
|
||||
}
|
||||
}
|
||||
@ -1081,8 +1049,7 @@ int GameBrowseMenu::MainLoop()
|
||||
if(result == 1)
|
||||
WindowPrompt( tr( "Correct Password" ), tr( "All the features of USB Loader GX are unlocked." ), tr( "OK" ));
|
||||
Settings.godmode = 1;
|
||||
wString oldFilter(gameList.GetCurrentFilter());
|
||||
gameList.FilterList(oldFilter.c_str());
|
||||
gameList.FilterList();
|
||||
ReloadBrowser();
|
||||
}
|
||||
else if(result < 0)
|
||||
@ -1115,8 +1082,7 @@ int GameBrowseMenu::MainLoop()
|
||||
mainWindow->SetState(STATE_DEFAULT);
|
||||
if(promptMenu.categoriesChanged())
|
||||
{
|
||||
wString oldFilter(gameList.GetCurrentFilter());
|
||||
gameList.FilterList(oldFilter.c_str());
|
||||
gameList.FilterList();
|
||||
ReloadBrowser();
|
||||
}
|
||||
}
|
||||
|
@ -57,8 +57,6 @@ void gamepatches(u8 videoSelected, u8 languageChoice, u8 patchcountrystring,
|
||||
es_fd = IOS_Open(es_fs, 0);
|
||||
int i;
|
||||
|
||||
load_wip_code((u8*) Disc_ID);
|
||||
|
||||
/* If a wip file is loaded for this game this does nothing - Dimok */
|
||||
PoPPatch();
|
||||
NSMBPatch();
|
||||
|
@ -44,6 +44,8 @@ static int code_size = 0;
|
||||
|
||||
static u32 gameconfsize = 0;
|
||||
static u32 *gameconf = NULL;
|
||||
static u32 tempgameconfsize = 0;
|
||||
static u8 *tempgameconf = NULL;
|
||||
|
||||
extern void patchhook(u32 address, u32 len);
|
||||
|
||||
@ -342,70 +344,29 @@ void app_pokevalues()
|
||||
}
|
||||
|
||||
//---------------------------------------------------------------------------------
|
||||
static void app_loadgameconfig(const char *CheatFilepath)
|
||||
static void app_loadgameconfig()
|
||||
//---------------------------------------------------------------------------------
|
||||
{
|
||||
gameconfsize = 0;
|
||||
|
||||
if (gameconf == NULL)
|
||||
{
|
||||
gameconf = (u32*) malloc(65536);
|
||||
if (gameconf == NULL)
|
||||
return;
|
||||
}
|
||||
|
||||
FILE* fp;
|
||||
const char *discid = (const char *) Disc_ID;
|
||||
if(!tempgameconf)
|
||||
{
|
||||
tempgameconf = (u8 *) defaultgameconfig;
|
||||
tempgameconfsize = defaultgameconfig_size;
|
||||
}
|
||||
|
||||
u32 ret;
|
||||
u32 filesize;
|
||||
s32 gameidmatch, maxgameidmatch = -1, maxgameidmatch2 = -1;
|
||||
u32 i, numnonascii, parsebufpos;
|
||||
u32 codeaddr, codeval, codeaddr2, codeval2, codeoffset;
|
||||
u32 temp, tempoffset = 0;
|
||||
char parsebuffer[18];
|
||||
|
||||
u8 *tempgameconf = (u8 *) defaultgameconfig;
|
||||
u32 tempgameconfsize = defaultgameconfig_size;
|
||||
|
||||
char filepath[200];
|
||||
snprintf(filepath, sizeof(filepath), "%s/gameconfig.txt", CheatFilepath);
|
||||
|
||||
fp = fopen(filepath, "rb");
|
||||
|
||||
if (!fp)
|
||||
{
|
||||
snprintf(filepath, sizeof(filepath), "sd:/gameconfig.txt");
|
||||
fp = fopen(filepath, "rb");
|
||||
|
||||
for(i = 1; i <= 8; ++i)
|
||||
{
|
||||
if(fp) break;
|
||||
|
||||
snprintf(filepath, sizeof(filepath), "usb%i:/gameconfig.txt", i);
|
||||
fp = fopen(filepath, "rb");
|
||||
}
|
||||
}
|
||||
|
||||
if (fp)
|
||||
{
|
||||
fseek(fp, 0, SEEK_END);
|
||||
filesize = ftell(fp);
|
||||
fseek(fp, 0, SEEK_SET);
|
||||
|
||||
tempgameconf = (u8*) malloc(filesize);
|
||||
if (tempgameconf == NULL)
|
||||
return;
|
||||
|
||||
ret = fread((void*) tempgameconf, 1, filesize, fp);
|
||||
fclose(fp);
|
||||
if (ret != filesize)
|
||||
{
|
||||
free(tempgameconf);
|
||||
return;
|
||||
}
|
||||
tempgameconfsize = filesize;
|
||||
}
|
||||
|
||||
// Remove non-ASCII characters
|
||||
numnonascii = 0;
|
||||
for (i = 0; i < tempgameconfsize; i++)
|
||||
@ -582,7 +543,7 @@ static void app_loadgameconfig(const char *CheatFilepath)
|
||||
}
|
||||
|
||||
//---------------------------------------------------------------------------------
|
||||
void load_handler(const char *gameconfigPath, u32 hooktype, u32 debugger, u32 pauseAtStart)
|
||||
void load_handler(u32 hooktype, u32 debugger, u32 pauseAtStart)
|
||||
//---------------------------------------------------------------------------------
|
||||
{
|
||||
if (hooktype != 0x00)
|
||||
@ -590,7 +551,7 @@ void load_handler(const char *gameconfigPath, u32 hooktype, u32 debugger, u32 pa
|
||||
if (debugger == 0x01)
|
||||
codelist = (u8 *) 0x800028B8;
|
||||
codelistend = (u8 *) 0x80003000;
|
||||
app_loadgameconfig(gameconfigPath);
|
||||
app_loadgameconfig();
|
||||
|
||||
if (debugger == 0x01)
|
||||
{
|
||||
@ -707,6 +668,60 @@ void load_handler(const char *gameconfigPath, u32 hooktype, u32 debugger, u32 pa
|
||||
}
|
||||
}
|
||||
|
||||
static int LoadGameConfig(const char *CheatFilepath)
|
||||
{
|
||||
int filesize = 0;
|
||||
tempgameconf = (u8 *) defaultgameconfig;
|
||||
tempgameconfsize = defaultgameconfig_size;
|
||||
gameconfsize = 0;
|
||||
|
||||
FILE* fp;
|
||||
char filepath[200];
|
||||
snprintf(filepath, sizeof(filepath), "%s/gameconfig.txt", CheatFilepath);
|
||||
|
||||
fp = fopen(filepath, "rb");
|
||||
|
||||
if (!fp)
|
||||
{
|
||||
snprintf(filepath, sizeof(filepath), "sd:/gameconfig.txt");
|
||||
fp = fopen(filepath, "rb");
|
||||
int i;
|
||||
for(i = 1; i <= 8; ++i)
|
||||
{
|
||||
if(fp) break;
|
||||
|
||||
snprintf(filepath, sizeof(filepath), "usb%i:/gameconfig.txt", i);
|
||||
fp = fopen(filepath, "rb");
|
||||
}
|
||||
}
|
||||
|
||||
if (!fp)
|
||||
return 0;
|
||||
|
||||
fseek(fp, 0, SEEK_END);
|
||||
filesize = ftell(fp);
|
||||
fseek(fp, 0, SEEK_SET);
|
||||
|
||||
tempgameconf = (u8*) malloc(filesize);
|
||||
if (tempgameconf == NULL) {
|
||||
fclose(fp);
|
||||
return -1;
|
||||
}
|
||||
|
||||
int ret = fread((void*) tempgameconf, 1, filesize, fp);
|
||||
|
||||
fclose(fp);
|
||||
|
||||
if (ret != filesize)
|
||||
{
|
||||
free(tempgameconf);
|
||||
return -1;
|
||||
}
|
||||
tempgameconfsize = filesize;
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
int ocarina_load_code(const char *CheatFilepath)
|
||||
{
|
||||
char filepath[150];
|
||||
@ -765,6 +780,8 @@ int ocarina_load_code(const char *CheatFilepath)
|
||||
|
||||
gprintf("Ocarina: Codes found.\n");
|
||||
|
||||
LoadGameConfig(CheatFilepath);
|
||||
|
||||
return code_size;
|
||||
}
|
||||
|
||||
|
@ -31,7 +31,7 @@ extern "C"
|
||||
|
||||
// Function prototypes
|
||||
void dogamehooks(u32 hooktype, void *addr, u32 len);
|
||||
void load_handler(const char *gameconfigPath, u32 hooktype, u32 debugger, u32 pauseAtStart);
|
||||
void load_handler(u32 hooktype, u32 debugger, u32 pauseAtStart);
|
||||
void langpatcher(void *addr, u32 len, u8 languageChoice);
|
||||
void vidolpatcher(void *addr, u32 len);
|
||||
void patchdebug(void *addr, u32 len);
|
||||
|
@ -174,7 +174,8 @@ GameWindow::GameWindow(int Selected)
|
||||
if (!mountMethod)//stuff we don't show if it is a DVD mounted
|
||||
{
|
||||
Append(nameBtn);
|
||||
Append(sizeTxt);
|
||||
if(Settings.LoaderMode != LOAD_CHANNELS)
|
||||
Append(sizeTxt);
|
||||
Append(btnLeft);
|
||||
Append(btnRight);
|
||||
for(int i = 0; i < FAVORITE_STARS; ++i)
|
||||
@ -411,13 +412,14 @@ void GameWindow::SetWindowEffect(int direction, int in_out)
|
||||
void GameWindow::ChangeGame(int EffectDirection)
|
||||
{
|
||||
struct discHdr * header = (mountMethod ? dvdheader : gameList[gameSelected]);
|
||||
LoadGameSound(header->id);
|
||||
if(Settings.LoaderMode != LOAD_CHANNELS)
|
||||
LoadGameSound(header->id); // Temporary no sounds for channels, will be added later
|
||||
LoadDiscImage(header->id);
|
||||
SetWindowEffect(EffectDirection, OUT);
|
||||
|
||||
HaltGui();
|
||||
|
||||
if (!mountMethod)
|
||||
if (!mountMethod && Settings.LoaderMode != LOAD_CHANNELS)
|
||||
{
|
||||
float size = 0.0f;
|
||||
WBFS_GameSize(header->id, &size);
|
||||
@ -486,7 +488,7 @@ int GameWindow::MainLoop()
|
||||
ResumeGui();
|
||||
|
||||
wiilight(0);
|
||||
int settret = GameSettingsMenu::Show(browserMenu, mountMethod ? dvdheader : gameList[gameSelected]);
|
||||
int settret = GameSettingsMenu::Execute(browserMenu, mountMethod ? dvdheader : gameList[gameSelected]);
|
||||
|
||||
SetEffect(EFFECT_SLIDE_TOP | EFFECT_SLIDE_IN, 50);
|
||||
if(parentElement)
|
||||
|
@ -26,6 +26,8 @@
|
||||
#include "../usbloader/utils.h"
|
||||
#include "../gecko.h"
|
||||
|
||||
#include "Controls/DeviceHandler.hpp"
|
||||
#include "usbloader/NandEmu.h"
|
||||
extern u8 shutdown;
|
||||
extern u8 reset;
|
||||
|
||||
@ -199,7 +201,6 @@ bool TitleSelector(char output[])
|
||||
|
||||
int TitleBrowser()
|
||||
{
|
||||
|
||||
u32 num_titles;
|
||||
u32 num_sys_titles;
|
||||
s32 ret = -1;
|
||||
|
@ -300,7 +300,7 @@ void CGameCategories::RemoveCategory(const char *gameID, unsigned int id)
|
||||
if(!gameID) return;
|
||||
|
||||
string gameID6;
|
||||
for(int i = 0; i < 6; ++i)
|
||||
for(int i = 0; i < 6 && gameID[i] != 0; ++i)
|
||||
gameID6.push_back(gameID[i]);
|
||||
|
||||
RemoveCategory(gameID6, id);
|
||||
@ -333,7 +333,7 @@ bool CGameCategories::isInCategory(const char *gameID, unsigned int id)
|
||||
if(!gameID) return false;
|
||||
|
||||
string gameID6;
|
||||
for(int i = 0; i < 6; ++i)
|
||||
for(int i = 0; i < 6 && gameID[i] != 0; ++i)
|
||||
gameID6.push_back(gameID[i]);
|
||||
|
||||
for (map<string, vector<unsigned int> >::iterator itr = GameCategories.List.begin(); itr != GameCategories.List.end(); itr++)
|
||||
|
@ -383,7 +383,7 @@ void CGameSettings::ParseLine(char *line)
|
||||
if(!ReadGameID(line, GameID, 6))
|
||||
return;
|
||||
|
||||
if(strlen(GameID) != 6)
|
||||
if(strlen(GameID) != 6 && strlen(GameID) != 4)
|
||||
return;
|
||||
|
||||
GameCFG NewCFG;
|
||||
|
@ -217,7 +217,7 @@ void CGameStatistics::ParseLine(char *line)
|
||||
if(!ReadGameID(line, GameID, 6))
|
||||
return;
|
||||
|
||||
if(strlen(GameID) != 6)
|
||||
if(strlen(GameID) != 6 && strlen(GameID) != 4)
|
||||
return;
|
||||
|
||||
GameStatus NewGame;
|
||||
|
@ -71,6 +71,7 @@ void CSettings::SetDefault()
|
||||
snprintf(theme_path, sizeof(theme_path), "%stheme/", ConfigPath);
|
||||
snprintf(dolpath, sizeof(dolpath), "%s/", BootDevice);
|
||||
snprintf(NandEmuPath, sizeof(NandEmuPath), "%s/nand/", BootDevice);
|
||||
strcpy(NandEmuChanPath, NandEmuPath);
|
||||
strcpy(theme, "");
|
||||
strcpy(language_path, "");
|
||||
strcpy(ogg_path, "");
|
||||
@ -128,12 +129,15 @@ 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;
|
||||
SearchMode = SEARCH_BEGINNING;
|
||||
}
|
||||
|
||||
bool CSettings::Load()
|
||||
@ -296,11 +300,15 @@ 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);
|
||||
fprintf(file, "WiirdDebugger = %d\n", WiirdDebugger);
|
||||
fprintf(file, "WiirdDebuggerPause = %d\n", WiirdDebuggerPause);
|
||||
fprintf(file, "ShowPlayCount = %d\n", ShowPlayCount);
|
||||
fprintf(file, "LoaderMode = %d\n", LoaderMode);
|
||||
fprintf(file, "SearchMode = %d\n", SearchMode);
|
||||
fclose(file);
|
||||
|
||||
return true;
|
||||
@ -610,6 +618,18 @@ 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;
|
||||
}
|
||||
else if(strcmp(name, "SearchMode") == 0)
|
||||
{
|
||||
if (sscanf(value, "%d", &i) == 1) SearchMode = i;
|
||||
}
|
||||
else if (strcmp(name, "InstallPartitions") == 0)
|
||||
{
|
||||
InstallPartitions = strtoul(value, 0, 16);
|
||||
@ -735,6 +755,11 @@ bool CSettings::SetSetting(char *name, char *value)
|
||||
strcpy(NandEmuPath, value);
|
||||
return true;
|
||||
}
|
||||
else if (strcmp(name, "NandEmuChanPath") == 0)
|
||||
{
|
||||
strcpy(NandEmuChanPath, value);
|
||||
return true;
|
||||
}
|
||||
else if (strcmp(name, "EnabledCategories") == 0)
|
||||
{
|
||||
EnabledCategories.clear();
|
||||
|
@ -75,6 +75,7 @@ class CSettings
|
||||
char WDMpath[100];
|
||||
char WiinnertagPath[100];
|
||||
char NandEmuPath[50];
|
||||
char NandEmuChanPath[50];
|
||||
short videomode;
|
||||
short language;
|
||||
short ocarina;
|
||||
@ -128,12 +129,15 @@ class CSettings
|
||||
std::vector<u32> EnabledCategories;
|
||||
u8 EntryIOS;
|
||||
short NandEmuMode;
|
||||
short NandEmuChanMode;
|
||||
short UseSystemFont;
|
||||
short Hooktype;
|
||||
short WiirdDebugger;
|
||||
short WiirdDebuggerPause;
|
||||
short ShowPlayCount;
|
||||
short RememberUnlock;
|
||||
short LoaderMode;
|
||||
short SearchMode;
|
||||
protected:
|
||||
bool ValidVersion(FILE * file);
|
||||
bool SetSetting(char *name, char *value);
|
||||
|
@ -2,6 +2,7 @@
|
||||
#include "GameTitles.h"
|
||||
#include "CSettings.h"
|
||||
#include "usbloader/GameList.h"
|
||||
#include "Channels/channels.h"
|
||||
#include "xml/GameTDB.hpp"
|
||||
|
||||
CGameTitles GameTitles;
|
||||
@ -38,10 +39,6 @@ const char * CGameTitles::GetTitle(const char * id) const
|
||||
return TitleList[i].Title.c_str();
|
||||
}
|
||||
|
||||
//! Since not found in the GameTDB search in the game header for a title
|
||||
if(gameList.GameCount() != gameList.size())
|
||||
gameList.LoadUnfiltered();
|
||||
|
||||
for(int i = 0; i < gameList.size(); ++i)
|
||||
{
|
||||
if(strncasecmp(id, (char *) gameList[i]->id, 6) == 0)
|
||||
@ -178,15 +175,21 @@ void CGameTitles::WriteCachedTitles(const char * path)
|
||||
|
||||
void CGameTitles::RemoveUnusedCache(std::vector<std::string> &MissingTitles)
|
||||
{
|
||||
std::vector<struct discHdr> &FullList = gameList.GetFullGameList();
|
||||
if(FullList.empty())
|
||||
gameList.ReadGameList();
|
||||
|
||||
std::vector<struct discHdr> &ChanList = Channels::Instance()->GetDiscHeaderList();
|
||||
|
||||
std::vector<bool> UsedCachedList(TitleList.size(), false);
|
||||
|
||||
for(int i = 0; i < gameList.GameCount(); ++i)
|
||||
for(u32 i = 0; i < FullList.size(); ++i)
|
||||
{
|
||||
bool isCached = false;
|
||||
|
||||
for(u32 n = 0; n < TitleList.size(); ++n)
|
||||
{
|
||||
if(strncasecmp(TitleList[n].GameID, (const char *) gameList[i]->id, 6) == 0)
|
||||
if(strncasecmp(TitleList[n].GameID, (const char *) FullList[i].id, 6) == 0)
|
||||
{
|
||||
UsedCachedList[n] = true;
|
||||
isCached = true;
|
||||
@ -197,7 +200,29 @@ void CGameTitles::RemoveUnusedCache(std::vector<std::string> &MissingTitles)
|
||||
if(!isCached)
|
||||
{
|
||||
char gameID[7];
|
||||
snprintf(gameID, sizeof(gameID), (const char *) gameList[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));
|
||||
}
|
||||
}
|
||||
|
@ -9,6 +9,12 @@ enum
|
||||
AUTO = 2
|
||||
};
|
||||
|
||||
enum
|
||||
{
|
||||
LOAD_GAMES = 0,
|
||||
LOAD_CHANNELS = 1
|
||||
};
|
||||
|
||||
enum
|
||||
{
|
||||
JAPANESE,
|
||||
@ -195,4 +201,11 @@ enum
|
||||
HOME_MENU_MAX_CHOICE,
|
||||
};
|
||||
|
||||
enum
|
||||
{
|
||||
SEARCH_BEGINNING,
|
||||
SEARCH_CONTENT,
|
||||
SEARCH_MAX_CHOICE
|
||||
};
|
||||
|
||||
#endif
|
||||
|
@ -22,10 +22,12 @@
|
||||
* distribution.
|
||||
***************************************************************************/
|
||||
#include <unistd.h>
|
||||
#include "Channels/channels.h"
|
||||
#include "Controls/DeviceHandler.hpp"
|
||||
#include "CustomPathsSM.hpp"
|
||||
#include "settings/SettingsPrompts.h"
|
||||
#include "settings/CSettings.h"
|
||||
#include "settings/SettingsEnums.h"
|
||||
#include "prompts/PromptWindows.h"
|
||||
#include "language/gettext.h"
|
||||
#include "prompts/filebrowser.h"
|
||||
@ -53,6 +55,7 @@ CustomPathsSM::CustomPathsSM()
|
||||
Options->SetName(Idx++, tr("WDM Files Path"));
|
||||
Options->SetName(Idx++, tr("Wiinnertag Path"));
|
||||
Options->SetName(Idx++, tr("Nand Emu Path"));
|
||||
Options->SetName(Idx++, tr("Nand Emu Channel Path"));
|
||||
|
||||
SetOptionValues();
|
||||
}
|
||||
@ -111,6 +114,9 @@ void CustomPathsSM::SetOptionValues()
|
||||
|
||||
//! Settings: Nand Emu Path
|
||||
Options->SetValue(Idx++, Settings.NandEmuPath);
|
||||
|
||||
//! Settings: Nand Emu Channel Path
|
||||
Options->SetValue(Idx++, Settings.NandEmuChanPath);
|
||||
}
|
||||
|
||||
int CustomPathsSM::GetMenuInternal()
|
||||
@ -249,6 +255,25 @@ int CustomPathsSM::GetMenuInternal()
|
||||
}
|
||||
}
|
||||
|
||||
//! Settings: Nand Emu Channel Path
|
||||
else if (ret == ++Idx)
|
||||
{
|
||||
char oldPath[sizeof(Settings.NandEmuChanPath)];
|
||||
snprintf(oldPath, sizeof(oldPath), Settings.NandEmuChanPath);
|
||||
|
||||
titleTxt->SetText(tr( "Nand Emu Channel Path" ));
|
||||
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)
|
||||
{
|
||||
Channels::Instance()->GetEmuChannelList();
|
||||
}
|
||||
}
|
||||
|
||||
//! Global set back of the titleTxt after a change
|
||||
titleTxt->SetText(tr( "Custom Paths" ));
|
||||
SetOptionValues();
|
||||
|
@ -96,6 +96,12 @@ static const char * HomeMenuText[HOME_MENU_MAX_CHOICE] =
|
||||
trNOOP( "Default" )
|
||||
};
|
||||
|
||||
static const char * searchModeText[] =
|
||||
{
|
||||
trNOOP( "Beginning" ),
|
||||
trNOOP( "Content" ),
|
||||
};
|
||||
|
||||
GuiSettingsMenu::GuiSettingsMenu()
|
||||
: SettingsMenu(tr("GUI Settings"), &GuiOptions, MENU_NONE)
|
||||
{
|
||||
@ -116,6 +122,7 @@ GuiSettingsMenu::GuiSettingsMenu()
|
||||
Options->SetName(Idx++, "%s", tr( "Show Free Space" ));
|
||||
Options->SetName(Idx++, "%s", tr( "HOME Menu" ));
|
||||
Options->SetName(Idx++, "%s", tr( "Use System Font" ));
|
||||
Options->SetName(Idx++, "%s", tr( "Search Mode" ));
|
||||
|
||||
SetOptionValues();
|
||||
}
|
||||
@ -183,6 +190,9 @@ void GuiSettingsMenu::SetOptionValues()
|
||||
|
||||
//! Settings: Use System Font
|
||||
Options->SetValue(Idx++, "%s", tr( OnOffText[Settings.UseSystemFont] ));
|
||||
|
||||
//! Settings: Search Mode
|
||||
Options->SetValue(Idx++, "%s", tr( searchModeText[Settings.SearchMode] ));
|
||||
}
|
||||
|
||||
int GuiSettingsMenu::GetMenuInternal()
|
||||
@ -359,6 +369,12 @@ int GuiSettingsMenu::GetMenuInternal()
|
||||
Settings.FontScaleFactor = 1.0f;
|
||||
}
|
||||
|
||||
//! Settings: Search Mode
|
||||
else if (ret == ++Idx)
|
||||
{
|
||||
if (++Settings.SearchMode >= SEARCH_MAX_CHOICE) Settings.SearchMode = 0;
|
||||
}
|
||||
|
||||
SetOptionValues();
|
||||
|
||||
return MENU_NONE;
|
||||
|
@ -47,7 +47,7 @@ GameSettingsMenu::~GameSettingsMenu()
|
||||
{
|
||||
}
|
||||
|
||||
int GameSettingsMenu::Show(GameBrowseMenu *parent, struct discHdr * header)
|
||||
int GameSettingsMenu::Execute(GameBrowseMenu *parent, struct discHdr * header)
|
||||
{
|
||||
GameSettingsMenu * Menu = new GameSettingsMenu(parent, header);
|
||||
mainWindow->Append(Menu);
|
||||
@ -124,8 +124,7 @@ void GameSettingsMenu::CreateSettingsMenu(int menuNr)
|
||||
mainWindow->Remove(&promptMenu);
|
||||
if(promptMenu.categoriesChanged())
|
||||
{
|
||||
wString oldFilter(gameList.GetCurrentFilter());
|
||||
gameList.FilterList(oldFilter.c_str());
|
||||
gameList.FilterList();
|
||||
browserMenu->ReloadBrowser();
|
||||
}
|
||||
mainWindow->SetState(STATE_DEFAULT);
|
||||
|
@ -34,7 +34,7 @@ class GameSettingsMenu : public FlyingButtonsMenu
|
||||
public:
|
||||
GameSettingsMenu(GameBrowseMenu *parent, struct discHdr * header);
|
||||
virtual ~GameSettingsMenu();
|
||||
static int Show(GameBrowseMenu *parent, struct discHdr *header);
|
||||
static int Execute(GameBrowseMenu *parent, struct discHdr *header);
|
||||
protected:
|
||||
virtual void CreateSettingsMenu(int index);
|
||||
virtual void DeleteSettingsMenu();
|
||||
|
@ -49,7 +49,7 @@ GlobalSettings::~GlobalSettings()
|
||||
delete creditsImgOverData;
|
||||
}
|
||||
|
||||
int GlobalSettings::Show()
|
||||
int GlobalSettings::Execute()
|
||||
{
|
||||
GlobalSettings * Menu = new GlobalSettings();
|
||||
mainWindow->Append(Menu);
|
||||
|
@ -31,7 +31,7 @@ class GlobalSettings : public FlyingButtonsMenu
|
||||
public:
|
||||
GlobalSettings();
|
||||
virtual ~GlobalSettings();
|
||||
static int Show();
|
||||
static int Execute();
|
||||
protected:
|
||||
virtual void CreateSettingsMenu(int index);
|
||||
virtual void DeleteSettingsMenu();
|
||||
|
@ -25,6 +25,7 @@
|
||||
#include "LoaderSettings.hpp"
|
||||
#include "usbloader/usbstorage2.h"
|
||||
#include "settings/CSettings.h"
|
||||
#include "settings/GameTitles.h"
|
||||
#include "prompts/PromptWindows.h"
|
||||
#include "language/gettext.h"
|
||||
#include "wad/nandtitle.h"
|
||||
@ -32,6 +33,12 @@
|
||||
#include "system/IosLoader.h"
|
||||
#include "menu.h"
|
||||
|
||||
static const char * dispMethText[] =
|
||||
{
|
||||
trNOOP( "Games" ),
|
||||
trNOOP( "Channels" )
|
||||
};
|
||||
|
||||
static const char * OnOffText[] =
|
||||
{
|
||||
trNOOP( "OFF" ),
|
||||
@ -97,6 +104,7 @@ LoaderSettings::LoaderSettings()
|
||||
{
|
||||
int Idx = 0;
|
||||
|
||||
Options->SetName(Idx++, "%s", tr( "Loader Mode" ));
|
||||
Options->SetName(Idx++, "%s", tr( "Video Mode" ));
|
||||
Options->SetName(Idx++, "%s", tr( "VIDTV Patch" ));
|
||||
Options->SetName(Idx++, "%s", tr( "Sneek Video Patch" ));
|
||||
@ -108,18 +116,30 @@ LoaderSettings::LoaderSettings()
|
||||
Options->SetName(Idx++, "%s", tr( "Error 002 fix" ));
|
||||
Options->SetName(Idx++, "%s", tr( "Block IOS Reload" ));
|
||||
Options->SetName(Idx++, "%s", tr( "Return To" ));
|
||||
Options->SetName(Idx++, "%s", tr( "Nand Emulation" ));
|
||||
Options->SetName(Idx++, "%s", tr( "Nand Saves Emulation" ));
|
||||
Options->SetName(Idx++, "%s", tr( "Nand Channel Emulation" ));
|
||||
Options->SetName(Idx++, "%s", tr( "Hooktype" ));
|
||||
Options->SetName(Idx++, "%s", tr( "Wiird Debugger" ));
|
||||
Options->SetName(Idx++, "%s", tr( "Debugger Paused Start" ));
|
||||
|
||||
SetOptionValues();
|
||||
|
||||
oldLoaderMode = Settings.LoaderMode;
|
||||
}
|
||||
|
||||
LoaderSettings::~LoaderSettings()
|
||||
{
|
||||
if(oldLoaderMode != Settings.LoaderMode)
|
||||
GameTitles.LoadTitlesFromGameTDB(Settings.titlestxt_path);
|
||||
}
|
||||
|
||||
void LoaderSettings::SetOptionValues()
|
||||
{
|
||||
int Idx = 0;
|
||||
|
||||
//! Settings: Loader Mode
|
||||
Options->SetValue(Idx++, "%s", tr(dispMethText[Settings.LoaderMode]));
|
||||
|
||||
//! Settings: Video Mode
|
||||
Options->SetValue(Idx++, "%s", tr(VideoModeText[Settings.videomode]));
|
||||
|
||||
@ -165,6 +185,9 @@ 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] ));
|
||||
|
||||
@ -184,6 +207,12 @@ int LoaderSettings::GetMenuInternal()
|
||||
|
||||
int Idx = -1;
|
||||
|
||||
//! Settings: Loader Mode
|
||||
if (ret == ++Idx)
|
||||
{
|
||||
if (++Settings.LoaderMode >= MAX_ON_OFF) Settings.LoaderMode = LOAD_GAMES;
|
||||
}
|
||||
|
||||
//! Settings: Video Mode
|
||||
if (ret == ++Idx)
|
||||
{
|
||||
@ -280,6 +309,14 @@ 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 )
|
||||
{
|
||||
|
@ -30,10 +30,12 @@ class LoaderSettings : public SettingsMenu
|
||||
{
|
||||
public:
|
||||
LoaderSettings();
|
||||
~LoaderSettings();
|
||||
protected:
|
||||
void SetOptionValues();
|
||||
int GetMenuInternal();
|
||||
|
||||
short oldLoaderMode;
|
||||
OptionList GuiOptions;
|
||||
};
|
||||
|
||||
|
@ -108,7 +108,7 @@ ThemeDownloader::~ThemeDownloader()
|
||||
delete ThemePreviews[i];
|
||||
}
|
||||
|
||||
int ThemeDownloader::Run()
|
||||
int ThemeDownloader::Execute()
|
||||
{
|
||||
ThemeDownloader * Menu = new ThemeDownloader();
|
||||
mainWindow->Append(Menu);
|
||||
|
@ -32,7 +32,7 @@ class ThemeDownloader : public FlyingButtonsMenu
|
||||
public:
|
||||
ThemeDownloader();
|
||||
virtual ~ThemeDownloader();
|
||||
static int Run();
|
||||
static int Execute();
|
||||
int MainLoop();
|
||||
protected:
|
||||
void CreateSettingsMenu(int index) { MainButtonClicked(index); };
|
||||
|
@ -89,7 +89,7 @@ ThemeMenu::~ThemeMenu()
|
||||
delete ThemePreviews[i];
|
||||
}
|
||||
|
||||
int ThemeMenu::Run()
|
||||
int ThemeMenu::Execute()
|
||||
{
|
||||
ThemeMenu * Menu = new ThemeMenu();
|
||||
mainWindow->Append(Menu);
|
||||
|
@ -35,7 +35,7 @@ class ThemeMenu : public FlyingButtonsMenu
|
||||
public:
|
||||
ThemeMenu();
|
||||
virtual ~ThemeMenu();
|
||||
static int Run();
|
||||
static int Execute();
|
||||
int MainLoop();
|
||||
protected:
|
||||
void CreateSettingsMenu(int index) { MainButtonClicked(index); };
|
||||
|
@ -20,6 +20,7 @@
|
||||
#include "mload/mload_modules.h"
|
||||
#include "system/IosLoader.h"
|
||||
#include "Controls/DeviceHandler.hpp"
|
||||
#include "Channels/channels.h"
|
||||
#include "usbloader/disc.h"
|
||||
#include "usbloader/apploader.h"
|
||||
#include "usbloader/usbstorage2.h"
|
||||
@ -134,28 +135,28 @@ void GameBooter::SetupAltDOL(u8 * gameID, u8 &alternatedol, u32 &alternatedoloff
|
||||
alternatedol = OFF;
|
||||
}
|
||||
|
||||
void GameBooter::SetupNandEmu(u8 NandEmuMode, struct discHdr &gameHeader)
|
||||
void GameBooter::SetupNandEmu(u8 NandEmuMode, const char *NandEmuPath, struct discHdr &gameHeader)
|
||||
{
|
||||
if(NandEmuMode && strchr(Settings.NandEmuPath, '/'))
|
||||
if(NandEmuMode && strchr(NandEmuPath, '/'))
|
||||
{
|
||||
//! Create save game path and title.tmd for not existing saves
|
||||
CreateSavePath(&gameHeader);
|
||||
|
||||
gprintf("Enabling Nand Emulation on: %s\n", Settings.NandEmuPath);
|
||||
gprintf("Enabling Nand Emulation on: %s\n", NandEmuPath);
|
||||
Set_FullMode(NandEmuMode == 2);
|
||||
Set_Path(strchr(Settings.NandEmuPath, '/'));
|
||||
Set_Path(strchr(NandEmuPath, '/'));
|
||||
|
||||
//! Set which partition to use (USB only)
|
||||
if(strncmp(Settings.NandEmuPath, "usb", 3) == 0)
|
||||
Set_Partition(atoi(Settings.NandEmuPath+3)-1);
|
||||
if(strncmp(NandEmuPath, "usb", 3) == 0)
|
||||
Set_Partition(atoi(NandEmuPath+3)-1);
|
||||
//! Unmount SD since NAND Emu mount fails otherwise
|
||||
else if(strncmp(Settings.NandEmuPath, "sd", 2) == 0)
|
||||
else if(strncmp(NandEmuPath, "sd", 2) == 0)
|
||||
DeviceHandler::Instance()->UnMountSD();
|
||||
|
||||
Enable_Emu(strncmp(Settings.NandEmuPath, "usb", 3) == 0 ? EMU_USB : EMU_SD);
|
||||
Enable_Emu(strncmp(NandEmuPath, "usb", 3) == 0 ? EMU_USB : EMU_SD);
|
||||
|
||||
//! Remount SD again after activating NAND emu
|
||||
if(strncmp(Settings.NandEmuPath, "sd", 2) == 0)
|
||||
if(strncmp(NandEmuPath, "sd", 2) == 0)
|
||||
DeviceHandler::Instance()->MountSD();
|
||||
}
|
||||
}
|
||||
@ -259,17 +260,31 @@ int GameBooter::BootGame(const char * gameID)
|
||||
Playlog_Update((char *) gameHeader.id, BNRInstance::Instance()->GetIMETTitle(CONF_GetLanguage()));
|
||||
|
||||
//! Setup NAND emulation
|
||||
SetupNandEmu(NandEmuMode, gameHeader);
|
||||
if(Settings.LoaderMode != LOAD_CHANNELS)
|
||||
SetupNandEmu(NandEmuMode, Settings.NandEmuPath, gameHeader);
|
||||
else
|
||||
SetupNandEmu(Settings.NandEmuChanMode, Settings.NandEmuChanPath, gameHeader);
|
||||
|
||||
//! Setup disc in cIOS and open it
|
||||
ret = SetupDisc(gameHeader.id);
|
||||
if (ret < 0)
|
||||
Sys_BackToLoader();
|
||||
// Load wip codes
|
||||
load_wip_code(gameHeader.id);
|
||||
|
||||
//! Load BCA data for the game
|
||||
gprintf("Loading BCA data...");
|
||||
ret = do_bca_code(Settings.BcaCodepath, gameHeader.id);
|
||||
gprintf("%d\n", ret);
|
||||
//! Load Ocarina codes
|
||||
if (ocarinaChoice)
|
||||
ocarina_load_code(Settings.Cheatcodespath);
|
||||
|
||||
//! Setup disc stuff if we load a game
|
||||
if(Settings.LoaderMode != LOAD_CHANNELS)
|
||||
{
|
||||
//! Setup disc in cIOS and open it
|
||||
ret = SetupDisc(gameHeader.id);
|
||||
if (ret < 0)
|
||||
Sys_BackToLoader();
|
||||
|
||||
//! Load BCA data for the game
|
||||
gprintf("Loading BCA data...");
|
||||
ret = do_bca_code(Settings.BcaCodepath, gameHeader.id);
|
||||
gprintf("%d\n", ret);
|
||||
}
|
||||
|
||||
//! Setup IOS reload block
|
||||
if (IosLoader::IsHermesIOS())
|
||||
@ -290,16 +305,38 @@ int GameBooter::BootGame(const char * gameID)
|
||||
reloadblock = 0;
|
||||
}
|
||||
|
||||
//! Now we can free up the memory used by the game list
|
||||
//! Now we can free up the memory used by the game/channel lists
|
||||
gameList.clear();
|
||||
Channels::DestroyInstance();
|
||||
|
||||
//! Load main.dol or alternative dol into memory, start the game apploader and get game entrypoint
|
||||
gprintf("\tDisc_wiiBoot\n");
|
||||
AppEntrypoint = BootPartition(Settings.dolpath, videoChoice, alternatedol, alternatedoloffset);
|
||||
if(Settings.LoaderMode != LOAD_CHANNELS)
|
||||
{
|
||||
gprintf("\tGame Boot\n");
|
||||
AppEntrypoint = BootPartition(Settings.dolpath, videoChoice, alternatedol, alternatedoloffset);
|
||||
//! Flush all caches and close up all devices
|
||||
DeviceHandler::DestroyInstance();
|
||||
}
|
||||
else
|
||||
{
|
||||
gprintf("\tChannel Boot\n");
|
||||
//! Flush all caches and close up all devices
|
||||
//! Avoid later crashs with free if memory gets overwritten by game
|
||||
DeviceHandler::DestroyInstance();
|
||||
/* Setup low memory */
|
||||
Disc_SetLowMem();
|
||||
/* Setup video mode */
|
||||
Disc_SelectVMode(videoChoice);
|
||||
// Load dol
|
||||
u64 tid;
|
||||
memcpy(&tid, gameHeader.tid, 8);
|
||||
AppEntrypoint = Channels::LoadChannel(tid);
|
||||
}
|
||||
|
||||
//! No entrypoint found...back to HBC/SystemMenu
|
||||
if(AppEntrypoint == 0)
|
||||
{
|
||||
gprintf("AppEntryPoint is 0, something went wrong\n");
|
||||
WDVD_ClosePartition();
|
||||
Sys_BackToLoader();
|
||||
}
|
||||
@ -308,20 +345,15 @@ int GameBooter::BootGame(const char * gameID)
|
||||
gprintf("Applying game patches...\n");
|
||||
gamepatches(videoChoice, languageChoice, countrystrings, viChoice, sneekChoice, Hooktype, fix002, reloadblock, iosChoice, returnToChoice);
|
||||
|
||||
//! Load Ocarina codes
|
||||
if (ocarinaChoice)
|
||||
ocarina_load_code(Settings.Cheatcodespath);
|
||||
|
||||
//! Load Code handler if needed
|
||||
load_handler(Settings.Cheatcodespath, Hooktype, WiirdDebugger, Settings.WiirdDebuggerPause);
|
||||
load_handler(Hooktype, WiirdDebugger, Settings.WiirdDebuggerPause);
|
||||
|
||||
//! Shadow mload - Only needed on some games with Hermes v5.1 (Check is inside the function)
|
||||
shadow_mload();
|
||||
|
||||
gprintf("Shutting down devices...\n");
|
||||
//! Flush all caches and close up all devices
|
||||
// Close all handlers
|
||||
WBFS_CloseAll();
|
||||
DeviceHandler::DestroyInstance();
|
||||
if(Settings.USBPort == 2)
|
||||
//! Reset USB port because device handler changes it for cache flushing
|
||||
USBStorage2_SetPort(usbport);
|
||||
|
@ -27,7 +27,7 @@ class GameBooter
|
||||
private:
|
||||
static int FindDiscHeader(const char * gameID, struct discHdr &gameHeader);
|
||||
static void SetupAltDOL(u8 * gameID, u8 &alternatedol, u32 &alternatedoloffset);
|
||||
static void SetupNandEmu(u8 NandEmuMode, struct discHdr &gameHeader);
|
||||
static void SetupNandEmu(u8 NandEmuMode, const char *NandEmuPath, struct discHdr &gameHeader);
|
||||
static int SetupDisc(u8 *gameID);
|
||||
static u32 BootPartition(char * dolpath, u8 videoselected, u8 alternatedol, u32 alternatedoloffset);
|
||||
};
|
||||
|
@ -23,8 +23,8 @@
|
||||
***************************************************************************/
|
||||
#include <algorithm>
|
||||
#include <string>
|
||||
#include <wctype.h>
|
||||
#include <malloc.h>
|
||||
#include "GUI/gui_searchbar.h"
|
||||
#include "usbloader/wbfs.h"
|
||||
#include "settings/newtitles.h"
|
||||
#include "settings/CSettings.h"
|
||||
@ -35,13 +35,13 @@
|
||||
#include "FreeTypeGX.h"
|
||||
#include "GameList.h"
|
||||
#include "memory/memory.h"
|
||||
#include "Channels/channels.h"
|
||||
|
||||
GameList gameList;
|
||||
|
||||
void GameList::clear()
|
||||
{
|
||||
GameFilter.clear();
|
||||
AvailableSearchChars.clear();
|
||||
FullGameList.clear();
|
||||
GamePartitionList.clear();
|
||||
FilteredList.clear();
|
||||
@ -90,10 +90,7 @@ void GameList::RemovePartition(int part)
|
||||
}
|
||||
|
||||
if(FullGameList.size() > 0)
|
||||
{
|
||||
wString filter(GameFilter);
|
||||
FilterList(filter.c_str());
|
||||
}
|
||||
FilterList();
|
||||
}
|
||||
|
||||
int GameList::InternalReadList(int part)
|
||||
@ -156,6 +153,9 @@ int GameList::InternalReadList(int part)
|
||||
|
||||
int GameList::ReadGameList()
|
||||
{
|
||||
if(Settings.LoaderMode == LOAD_CHANNELS)
|
||||
return 0;
|
||||
|
||||
// Clear list
|
||||
clear();
|
||||
|
||||
@ -183,15 +183,22 @@ int GameList::ReadGameList()
|
||||
|
||||
int GameList::FilterList(const wchar_t * gameFilter)
|
||||
{
|
||||
if (FullGameList.size() == 0) ReadGameList();
|
||||
if (gameFilter) GameFilter.assign(gameFilter);
|
||||
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();
|
||||
AvailableSearchChars.clear();
|
||||
|
||||
for (u32 i = 0; i < FullGameList.size(); ++i)
|
||||
for (u32 i = 0; i < FullList->size(); ++i)
|
||||
{
|
||||
struct discHdr *header = &FullGameList[i];
|
||||
struct discHdr *header = &FullList->at(i);
|
||||
|
||||
/* Register game */
|
||||
NewTitles::Instance()->CheckGame(header->id);
|
||||
@ -240,47 +247,14 @@ int GameList::FilterList(const wchar_t * gameFilter)
|
||||
if(GameCategories.isInCategory((char *) header->id, Settings.EnabledCategories[n]))
|
||||
break;
|
||||
}
|
||||
if(n == Settings.EnabledCategories.size()) continue;
|
||||
|
||||
wchar_t *gameName = charToWideChar(GameTitles.GetTitle(header));
|
||||
if (gameName)
|
||||
{
|
||||
if ( GameFilter.size() ) // has Filter
|
||||
{
|
||||
bool found = false;
|
||||
wchar_t *s1 = gameName, *s2;
|
||||
while( (s2 = wcscasestr(s1, GameFilter.c_str())) ) // search filter in gameName
|
||||
{
|
||||
found = true;
|
||||
wchar_t ch = towupper(s2[GameFilter.size()]);
|
||||
if(ch) AvailableSearchChars.insert(ch);
|
||||
s1++; // try search filter in gameName more times
|
||||
}
|
||||
if(!found)
|
||||
{
|
||||
delete [] gameName;
|
||||
continue;
|
||||
}
|
||||
}
|
||||
else // no Filter -> makes all chars as aviable
|
||||
{
|
||||
for(wchar_t *ch = gameName; *ch; ch++)
|
||||
if(*ch >= '@') // limit chars by empty filter
|
||||
AvailableSearchChars.insert(towupper(*ch));
|
||||
}
|
||||
|
||||
delete [] gameName;
|
||||
}
|
||||
if(n == Settings.EnabledCategories.size())
|
||||
continue;
|
||||
|
||||
FilteredList.push_back(header);
|
||||
}
|
||||
|
||||
NewTitles::Instance()->Save();
|
||||
|
||||
if (FilteredList.size() < 2)
|
||||
|
||||
if (FilteredList.size() < 2)
|
||||
AvailableSearchChars.clear();
|
||||
GuiSearchBar::FilterList(FilteredList, GameFilter);
|
||||
|
||||
SortList();
|
||||
|
||||
@ -289,36 +263,29 @@ int GameList::FilterList(const wchar_t * gameFilter)
|
||||
|
||||
int GameList::LoadUnfiltered()
|
||||
{
|
||||
if (FullGameList.size() == 0) ReadGameList();
|
||||
std::vector<struct discHdr> *FullList = &FullGameList;
|
||||
|
||||
if(Settings.LoaderMode == LOAD_CHANNELS)
|
||||
FullList = &(Channels::Instance()->GetDiscHeaderList());
|
||||
|
||||
else if (FullGameList.size() == 0)
|
||||
ReadGameList();
|
||||
|
||||
GameFilter.clear();
|
||||
AvailableSearchChars.clear();
|
||||
FilteredList.clear();
|
||||
|
||||
for (u32 i = 0; i < FullGameList.size(); ++i)
|
||||
for (u32 i = 0; i < FullList->size(); ++i)
|
||||
{
|
||||
struct discHdr *header = &FullGameList[i];
|
||||
struct discHdr *header = &FullList->at(i);
|
||||
|
||||
/* Register game */
|
||||
NewTitles::Instance()->CheckGame(header->id);
|
||||
|
||||
wchar_t *gameName = charToWideChar(GameTitles.GetTitle(header));
|
||||
if (gameName)
|
||||
{
|
||||
for(wchar_t *ch = gameName; *ch; ch++)
|
||||
if(*ch >= '@') // limit chars by unfiltered list
|
||||
AvailableSearchChars.insert(towupper(*ch));
|
||||
|
||||
delete [] gameName;
|
||||
}
|
||||
|
||||
FilteredList.push_back(header);
|
||||
}
|
||||
|
||||
NewTitles::Instance()->Save();
|
||||
|
||||
if (FilteredList.size() < 2)
|
||||
AvailableSearchChars.clear();
|
||||
GuiSearchBar::FilterList(FilteredList, GameFilter);
|
||||
|
||||
SortList();
|
||||
|
||||
|
@ -2,7 +2,6 @@
|
||||
#define GAME_LIST_H_
|
||||
|
||||
#include <vector>
|
||||
#include <set>
|
||||
#include "Controls/DeviceHandler.hpp"
|
||||
#include "wstring.hpp"
|
||||
#include "usbloader/disc.h"
|
||||
@ -20,7 +19,6 @@ class GameList
|
||||
struct discHdr * operator[](int i) const { if (i < 0 || i >= (int) FilteredList.size()) return NULL; return FilteredList[i]; }
|
||||
struct discHdr * GetDiscHeader(const char * gameID) const;
|
||||
const wchar_t * GetCurrentFilter() const { return GameFilter.c_str(); }
|
||||
const std::set<wchar_t> &GetAvailableSearchChars() const { return AvailableSearchChars; }
|
||||
void SortList();
|
||||
void clear();
|
||||
bool operator!() const { return (FullGameList.size() == 0); }
|
||||
@ -35,6 +33,8 @@ class GameList
|
||||
int GetPartitionNumber(const u8 *gameid) const;
|
||||
int GetGameFS(const u8 *gameID) const { return DeviceHandler::Instance()->GetFilesystemType(USB1+GetPartitionNumber(gameID)); }
|
||||
void RemovePartition(int part_num);
|
||||
std::vector<struct discHdr *> &GetFilteredList(void) { return FilteredList; }
|
||||
std::vector<struct discHdr> &GetFullGameList(void) { return FullGameList; }
|
||||
protected:
|
||||
int InternalReadList(int part);
|
||||
static bool NameSortCallback(const struct discHdr *a, const struct discHdr *b);
|
||||
@ -42,7 +42,6 @@ class GameList
|
||||
static bool RankingSortCallback(const struct discHdr *a, const struct discHdr *b);
|
||||
static bool PlayersSortCallback(const struct discHdr *a, const struct discHdr *b);
|
||||
|
||||
std::set<wchar_t> AvailableSearchChars;
|
||||
wString GameFilter;
|
||||
int selectedGame;
|
||||
std::vector<struct discHdr *> FilteredList;
|
||||
|
@ -9,6 +9,7 @@
|
||||
#include <string.h>
|
||||
|
||||
#include "system/IosLoader.h"
|
||||
#include "utils/tools.h"
|
||||
#include "gecko.h"
|
||||
#include "NandEmu.h"
|
||||
|
||||
@ -33,20 +34,18 @@ static nandDevice ndevList[] =
|
||||
};
|
||||
|
||||
/* Buffer */
|
||||
static u32 inbuf[8] ATTRIBUTE_ALIGN(32);
|
||||
static const char fs[] ATTRIBUTE_ALIGN(32) = "/dev/fs";
|
||||
static const char fat[] ATTRIBUTE_ALIGN(32) = "fat";
|
||||
static int mounted = 0;
|
||||
static int partition = 0;
|
||||
static u32 partition ATTRIBUTE_ALIGN(32) = 0;
|
||||
static u32 mode ATTRIBUTE_ALIGN(32) = 0;
|
||||
static char path[32] ATTRIBUTE_ALIGN(32) = "\0";
|
||||
static int fullmode = 0;
|
||||
static char path[32] = "\0";
|
||||
static int mounted = 0;
|
||||
|
||||
static s32 Nand_Mount(nandDevice *dev)
|
||||
{
|
||||
s32 fd, ret;
|
||||
u32 inlen = 0;
|
||||
ioctlv *vector = NULL;
|
||||
u32 *buffer = NULL;
|
||||
|
||||
/* Open FAT module */
|
||||
fd = IOS_Open(fat, 0);
|
||||
@ -58,27 +57,27 @@ static s32 Nand_Mount(nandDevice *dev)
|
||||
// and the nand is always expected to be on the 1st partition.
|
||||
// However this way earlier d2x betas having revision 21 take in
|
||||
// consideration the partition argument.
|
||||
inlen = 1;
|
||||
|
||||
/* Allocate memory */
|
||||
buffer = (u32 *)memalign(32, sizeof(u32)*3);
|
||||
vector = (ioctlv *) memalign(32, sizeof(ioctlv));
|
||||
if(vector == NULL)
|
||||
{
|
||||
/* Close FAT module */
|
||||
IOS_Close(fd);
|
||||
return -2;
|
||||
}
|
||||
|
||||
/* Set vector pointer */
|
||||
vector = (ioctlv *)buffer;
|
||||
|
||||
buffer[0] = (u32)(buffer + 2);
|
||||
buffer[1] = sizeof(u32);
|
||||
buffer[2] = (u32)partition;
|
||||
vector[0].data = &partition;
|
||||
vector[0].len = sizeof(u32);
|
||||
|
||||
/* Mount device */
|
||||
ret = IOS_Ioctlv(fd, dev->mountCmd, inlen, 0, vector);
|
||||
ret = IOS_Ioctlv(fd, dev->mountCmd, 1, 0, vector);
|
||||
|
||||
/* Close FAT module */
|
||||
IOS_Close(fd);
|
||||
|
||||
/* Free memory */
|
||||
if(buffer != NULL)
|
||||
free(buffer);
|
||||
free(vector);
|
||||
|
||||
return ret;
|
||||
}
|
||||
@ -104,7 +103,7 @@ static s32 Nand_Unmount(nandDevice *dev)
|
||||
static s32 Nand_Enable(nandDevice *dev)
|
||||
{
|
||||
s32 fd, ret;
|
||||
u32 *buffer = NULL;
|
||||
ioctlv *vector = NULL;
|
||||
|
||||
// Open /dev/fs
|
||||
fd = IOS_Open(fs, 0);
|
||||
@ -113,29 +112,31 @@ static s32 Nand_Enable(nandDevice *dev)
|
||||
|
||||
//FULL NAND emulation since rev18
|
||||
//needed for reading images on triiforce mrc folder using ISFS commands
|
||||
inbuf[0] = dev->mode | fullmode;
|
||||
mode = dev->mode | fullmode;
|
||||
|
||||
// NOTE:
|
||||
// The official cIOSX rev21 by Waninkoko provides an undocumented feature
|
||||
// to set nand path when mounting the device.
|
||||
// This feature has been discovered during d2x development.
|
||||
int pathlen = strlen(path)+1;
|
||||
|
||||
/* Allocate memory */
|
||||
buffer = (u32 *)memalign(32, (sizeof(u32)*5)+pathlen);
|
||||
vector = (ioctlv *)memalign(32, sizeof(ioctlv)*2);
|
||||
if(vector == NULL)
|
||||
{
|
||||
/* Close FAT module */
|
||||
IOS_Close(fd);
|
||||
return -2;
|
||||
}
|
||||
|
||||
buffer[0] = (u32)(buffer + 4);
|
||||
buffer[1] = sizeof(u32); // actually not used by cios
|
||||
buffer[2] = (u32)(buffer + 5);
|
||||
buffer[3] = pathlen; // actually not used by cios
|
||||
buffer[4] = inbuf[0];
|
||||
strcpy((char*)(buffer+5), path);
|
||||
vector[0].data = &mode;
|
||||
vector[0].len = sizeof(u32);
|
||||
vector[1].data = path;
|
||||
vector[1].len = sizeof(path);
|
||||
|
||||
ret = IOS_Ioctlv(fd, 100, 2, 0, (ioctlv *)buffer);
|
||||
ret = IOS_Ioctlv(fd, 100, 2, 0, vector);
|
||||
|
||||
/* Free memory */
|
||||
if(buffer != NULL)
|
||||
free(buffer);
|
||||
free(vector);
|
||||
|
||||
// Close /dev/fs
|
||||
IOS_Close(fd);
|
||||
@ -153,10 +154,10 @@ static s32 Nand_Disable(void)
|
||||
return fd;
|
||||
|
||||
// Set input buffer
|
||||
inbuf[0] = 0;
|
||||
mode = 0;
|
||||
|
||||
// Disable NAND emulator
|
||||
ret = IOS_Ioctl(fd, 100, inbuf, sizeof(inbuf), NULL, 0);
|
||||
ret = IOS_Ioctl(fd, 100, &mode, sizeof(mode), NULL, 0);
|
||||
|
||||
// Close /dev/fs
|
||||
IOS_Close(fd);
|
||||
|
@ -17,6 +17,10 @@
|
||||
#include "../settings/SettingsEnums.h"
|
||||
#include "../gecko.h"
|
||||
|
||||
// Global app entry point
|
||||
extern u32 AppEntrypoint;
|
||||
void _unstub_start();
|
||||
|
||||
/* Constants */
|
||||
#define PTABLE_OFFSET 0x40000
|
||||
#define WII_MAGIC 0x5D1C9EA3
|
||||
@ -284,7 +288,33 @@ s32 Disc_JumpToEntrypoint(s32 hooktype, u32 dolparameter)
|
||||
/* Originally from tueidj - taken from NeoGamme (thx) */
|
||||
*(vu32*)0xCC003024 = dolparameter != 0 ? dolparameter : 1;
|
||||
|
||||
if (hooktype)
|
||||
if(AppEntrypoint == 0x3400 && hooktype)
|
||||
{
|
||||
__asm__(
|
||||
"lis %r3, returnpoint@h\n"
|
||||
"ori %r3, %r3, returnpoint@l\n"
|
||||
"mtlr %r3\n"
|
||||
"lis %r3, 0x8000\n"
|
||||
"ori %r3, %r3, 0x18A8\n"
|
||||
"mtctr %r3\n"
|
||||
"bctr\n"
|
||||
"returnpoint:\n"
|
||||
"bl DCDisable\n"
|
||||
"bl ICDisable\n"
|
||||
"li %r3, 0\n"
|
||||
"mtsrr1 %r3\n"
|
||||
"lis %r4, AppEntrypoint@h\n"
|
||||
"ori %r4,%r4,AppEntrypoint@l\n"
|
||||
"lwz %r4, 0(%r4)\n"
|
||||
"mtsrr0 %r4\n"
|
||||
"rfi\n"
|
||||
);
|
||||
}
|
||||
else if(AppEntrypoint == 0x3400)
|
||||
{
|
||||
_unstub_start();
|
||||
}
|
||||
else if (hooktype)
|
||||
{
|
||||
__asm__(
|
||||
"lis %r3, AppEntrypoint@h\n"
|
||||
|
@ -23,7 +23,9 @@ extern "C"
|
||||
|
||||
/* Padding */
|
||||
u8 is_ciso;
|
||||
u8 unused1[13];
|
||||
|
||||
/* Unused, on channel list mode this is the full 64 bit tid and zeros */
|
||||
u8 tid[13];
|
||||
|
||||
/* Magic word */
|
||||
u32 magic;
|
||||
|
214
source/utils/lz77.c
Executable file
214
source/utils/lz77.c
Executable file
@ -0,0 +1,214 @@
|
||||
/*******************************************************************************
|
||||
* lz77.c
|
||||
*
|
||||
* Copyright (c) 2009 The Lemon Man
|
||||
* Copyright (c) 2009 Nicksasa
|
||||
* Copyright (c) 2009 WiiPower
|
||||
*
|
||||
* Distributed under the terms of the GNU General Public License (v2)
|
||||
* See http://www.gnu.org/licenses/gpl-2.0.txt for more info.
|
||||
*
|
||||
* Description:
|
||||
* -----------
|
||||
*
|
||||
******************************************************************************/
|
||||
|
||||
#include <gccore.h>
|
||||
#include <malloc.h>
|
||||
#include <stdio.h>
|
||||
#include <unistd.h>
|
||||
#include <string.h>
|
||||
|
||||
#include "lz77.h"
|
||||
|
||||
#define ALIGN32(x) (((x) + 31) & ~31)
|
||||
|
||||
u32 packBytes(int a, int b, int c, int d)
|
||||
{
|
||||
return (d << 24) | (c << 16) | (b << 8) | (a);
|
||||
}
|
||||
|
||||
s32 __decompressLZ77_11(u8 *in, u32 inputLen, u8 **output, u32 *outputLen)
|
||||
{
|
||||
int x, y;
|
||||
|
||||
u8 *out = NULL;
|
||||
|
||||
u32 compressedPos = 0x4;
|
||||
u32 decompressedPos = 0x0;
|
||||
u32 decompressedSize = 0;
|
||||
|
||||
decompressedSize = packBytes(in[0], in[1], in[2], in[3]) >> 8;
|
||||
|
||||
if (!decompressedSize)
|
||||
{
|
||||
decompressedSize = packBytes(in[4], in[5], in[6], in[7]);
|
||||
compressedPos += 0x4;
|
||||
}
|
||||
|
||||
printf("Decompressed size : %i\n", decompressedSize);
|
||||
|
||||
out = memalign(32, ALIGN32(decompressedSize));
|
||||
if (out == NULL)
|
||||
{
|
||||
printf("Out of memory\n");
|
||||
return -1;
|
||||
}
|
||||
|
||||
while (compressedPos < inputLen && decompressedPos < decompressedSize)
|
||||
{
|
||||
u8 byteFlag = in[compressedPos];
|
||||
compressedPos++;
|
||||
|
||||
for (x = 7; x >= 0; x--)
|
||||
{
|
||||
if ((byteFlag & (1 << x)) > 0)
|
||||
{
|
||||
u8 first = in[compressedPos];
|
||||
u8 second = in[compressedPos + 1];
|
||||
|
||||
u32 pos, copyLen;
|
||||
|
||||
if (first < 0x20)
|
||||
{
|
||||
u8 third = in[compressedPos + 2];
|
||||
|
||||
if (first >= 0x10)
|
||||
{
|
||||
u32 fourth = in[compressedPos + 3];
|
||||
|
||||
pos = (u32)(((third & 0xF) << 8) | fourth) + 1;
|
||||
copyLen = (u32)((second << 4) | ((first & 0xF) << 12) | (third >> 4)) + 273;
|
||||
|
||||
compressedPos += 4;
|
||||
} else
|
||||
{
|
||||
pos = (u32)(((second & 0xF) << 8) | third) + 1;
|
||||
copyLen = (u32)(((first & 0xF) << 4) | (second >> 4)) + 17;
|
||||
|
||||
compressedPos += 3;
|
||||
}
|
||||
} else
|
||||
{
|
||||
pos = (u32)(((first & 0xF) << 8) | second) + 1;
|
||||
copyLen = (u32)(first >> 4) + 1;
|
||||
|
||||
compressedPos += 2;
|
||||
}
|
||||
|
||||
for (y = 0; y < (int) copyLen; y++)
|
||||
{
|
||||
out[decompressedPos + y] = out[decompressedPos - pos + y];
|
||||
}
|
||||
|
||||
decompressedPos += copyLen;
|
||||
} else
|
||||
{
|
||||
out[decompressedPos] = in[compressedPos];
|
||||
|
||||
decompressedPos++;
|
||||
compressedPos++;
|
||||
}
|
||||
|
||||
if (compressedPos >= inputLen || decompressedPos >= decompressedSize)
|
||||
break;
|
||||
}
|
||||
}
|
||||
*output = out;
|
||||
*outputLen = decompressedSize;
|
||||
return 0;
|
||||
}
|
||||
|
||||
s32 __decompressLZ77_10(u8 *in, u32 inputLen, u8 **output, u32 *outputLen)
|
||||
{
|
||||
int x, y;
|
||||
|
||||
u8 *out = NULL;
|
||||
|
||||
u32 compressedPos = 0;
|
||||
u32 decompressedSize = 0x4;
|
||||
u32 decompressedPos = 0;
|
||||
|
||||
decompressedSize = packBytes(in[0], in[1], in[2], in[3]) >> 8;
|
||||
|
||||
//int compressionType = (packBytes(in[0], in[1], in[2], in[3]) >> 4) & 0xF;
|
||||
|
||||
printf("Decompressed size : %i\n", decompressedSize);
|
||||
|
||||
out = memalign(32, ALIGN32(decompressedSize));
|
||||
if (out == NULL)
|
||||
{
|
||||
printf("Out of memory\n");
|
||||
return -1;
|
||||
}
|
||||
|
||||
compressedPos += 0x4;
|
||||
|
||||
while (decompressedPos < decompressedSize)
|
||||
{
|
||||
u8 flag = *(u8*)(in + compressedPos);
|
||||
compressedPos += 1;
|
||||
|
||||
for (x = 0; x < 8; x++)
|
||||
{
|
||||
if (flag & 0x80)
|
||||
{
|
||||
u8 first = in[compressedPos];
|
||||
u8 second = in[compressedPos + 1];
|
||||
|
||||
u16 pos = (u16)((((first << 8) + second) & 0xFFF) + 1);
|
||||
u8 copyLen = (u8)(3 + ((first >> 4) & 0xF));
|
||||
|
||||
for (y = 0; y < copyLen; y++)
|
||||
{
|
||||
out[decompressedPos + y] = out[decompressedPos - pos + (y % pos)];
|
||||
}
|
||||
|
||||
compressedPos += 2;
|
||||
decompressedPos += copyLen;
|
||||
} else
|
||||
{
|
||||
out[decompressedPos] = in[compressedPos];
|
||||
compressedPos += 1;
|
||||
decompressedPos += 1;
|
||||
}
|
||||
|
||||
flag <<= 1;
|
||||
|
||||
if (decompressedPos >= decompressedSize)
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
*output = out;
|
||||
*outputLen = decompressedSize;
|
||||
return 0;
|
||||
}
|
||||
|
||||
int isLZ77compressed(u8 *buffer)
|
||||
{
|
||||
if ((buffer[0] == LZ77_0x10_FLAG) || (buffer[0] == LZ77_0x11_FLAG))
|
||||
{
|
||||
return 1;
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
int decompressLZ77content(u8 *buffer, u32 length, u8 **output, u32 *outputLen)
|
||||
{
|
||||
int ret;
|
||||
switch (buffer[0])
|
||||
{
|
||||
case LZ77_0x10_FLAG:
|
||||
ret = __decompressLZ77_10(buffer, length, output, outputLen);
|
||||
break;
|
||||
case LZ77_0x11_FLAG:
|
||||
ret = __decompressLZ77_11(buffer, length, output, outputLen);
|
||||
break;
|
||||
default:
|
||||
ret = -1;
|
||||
break;
|
||||
}
|
||||
return ret;
|
||||
}
|
34
source/utils/lz77.h
Executable file
34
source/utils/lz77.h
Executable file
@ -0,0 +1,34 @@
|
||||
/*******************************************************************************
|
||||
* lz77.h
|
||||
*
|
||||
* Copyright (c) 2009 The Lemon Man
|
||||
* Copyright (c) 2009 Nicksasa
|
||||
* Copyright (c) 2009 WiiPower
|
||||
*
|
||||
* Distributed under the terms of the GNU General Public License (v2)
|
||||
* See http://www.gnu.org/licenses/gpl-2.0.txt for more info.
|
||||
*
|
||||
* Description:
|
||||
* -----------
|
||||
*
|
||||
******************************************************************************/
|
||||
|
||||
#ifndef _LZ77_MODULE
|
||||
#define _LZ77_MODULE
|
||||
|
||||
#define LZ77_0x10_FLAG 0x10
|
||||
#define LZ77_0x11_FLAG 0x11
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif /* __cplusplus */
|
||||
|
||||
int isLZ77compressed(u8 *buffer);
|
||||
int decompressLZ77content(u8 *buffer, u32 length, u8 **output, u32 *outputLen);
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif /* __cplusplus */
|
||||
|
||||
#endif
|
||||
|
@ -425,7 +425,7 @@ u64 NandTitle::FindU32(const char *s)
|
||||
return 0;
|
||||
}
|
||||
|
||||
int NandTitle::LoadFileFromNand(const char *filepath, u8 **outbuffer, u32 *outfilesize)
|
||||
int NandTitle::LoadFileFromNand(const char *filepath, u8 **outbuffer, u32 *outfilesize, bool isfsInit)
|
||||
{
|
||||
if(!filepath)
|
||||
return -1;
|
||||
@ -434,13 +434,13 @@ int NandTitle::LoadFileFromNand(const char *filepath, u8 **outbuffer, u32 *outfi
|
||||
if(!stats)
|
||||
return IPC_ENOMEM;
|
||||
|
||||
ISFS_Initialize();
|
||||
if(isfsInit) ISFS_Initialize();
|
||||
|
||||
int fd = ISFS_Open(filepath, ISFS_OPEN_READ);
|
||||
if(fd < 0)
|
||||
{
|
||||
free(stats);
|
||||
ISFS_Deinitialize();
|
||||
if(isfsInit) ISFS_Deinitialize();
|
||||
return fd;
|
||||
}
|
||||
|
||||
@ -449,7 +449,7 @@ int NandTitle::LoadFileFromNand(const char *filepath, u8 **outbuffer, u32 *outfi
|
||||
{
|
||||
free(stats);
|
||||
ISFS_Close(fd);
|
||||
ISFS_Deinitialize();
|
||||
if(isfsInit) ISFS_Deinitialize();
|
||||
return ret;
|
||||
}
|
||||
|
||||
@ -461,14 +461,14 @@ int NandTitle::LoadFileFromNand(const char *filepath, u8 **outbuffer, u32 *outfi
|
||||
if(!buffer)
|
||||
{
|
||||
ISFS_Close(fd);
|
||||
ISFS_Deinitialize();
|
||||
if(isfsInit) ISFS_Deinitialize();
|
||||
return IPC_ENOMEM;
|
||||
}
|
||||
|
||||
ret = ISFS_Read(fd, buffer, filesize);
|
||||
|
||||
ISFS_Close(fd);
|
||||
ISFS_Deinitialize();
|
||||
if(isfsInit) ISFS_Deinitialize();
|
||||
|
||||
if (ret < 0)
|
||||
{
|
||||
|
@ -95,7 +95,9 @@ class NandTitle
|
||||
|
||||
u64 operator[](u32 i) { return At(i); }
|
||||
|
||||
static int LoadFileFromNand(const char *filepath, u8 **outbuffer, u32 *outfilesize);
|
||||
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);
|
||||
private:
|
||||
@ -103,7 +105,6 @@ class NandTitle
|
||||
|
||||
std::vector<u64> titleIds;
|
||||
std::map<u64, string> NameList;
|
||||
bool GetName(u64 tid, int language, wchar_t* name);
|
||||
tmd* GetTMD(u64 tid);
|
||||
|
||||
u32 currentIndex;
|
||||
|
@ -147,15 +147,21 @@ size_t utf8Len(const char *s)
|
||||
return len;
|
||||
}
|
||||
|
||||
wchar_t *wcscasestr(const wchar_t *s1, const wchar_t *s2)
|
||||
const wchar_t *wcscasestr(const wchar_t *s1, const wchar_t *s2)
|
||||
{
|
||||
if(*s2==0) return (wchar_t *)s1;
|
||||
if(*s2 == 0)
|
||||
return (wchar_t *)s1;
|
||||
|
||||
int s1_len = wcslen(s1);
|
||||
int s2_len = wcslen(s2);
|
||||
if(s1_len < s2_len) return 0;
|
||||
|
||||
if(s1_len < s2_len)
|
||||
return 0;
|
||||
|
||||
const wchar_t *end = &s1[s1_len-s2_len];
|
||||
for(wchar_t *s=(wchar_t *)s1; s<=end; s++)
|
||||
for(const wchar_t *s = s1; s <= end; s++)
|
||||
if(wcsncasecmp(s, s2, s2_len)==0)
|
||||
return s;
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
@ -23,6 +23,6 @@ class wString: public std::basic_string<wchar_t, std::char_traits<wchar_t>, std:
|
||||
|
||||
size_t utf8Len(const char *s);
|
||||
|
||||
wchar_t *wcscasestr(const wchar_t *s1, const wchar_t *s2);
|
||||
const wchar_t *wcscasestr(const wchar_t *s1, const wchar_t *s2);
|
||||
|
||||
#endif // !defined(__WSTRING_HPP)
|
||||
|
Loading…
Reference in New Issue
Block a user