*Add boot without HDD connected (channel mode is fallback). Timeout of 20 secs still comes up on start but you have now the chance to cancel it by pressing B (with a message ;-))

*Optimized TMD loading. Removed unnecessary accesses to it.
*Fixed ocarina path loading for channels
*Optimized device shutdown before game/channel start
*A few code optimizations
This commit is contained in:
strtoul 2011-11-20 10:46:07 +00:00
parent a14051ecca
commit 5cbb7e69fd
42 changed files with 738 additions and 526 deletions

View File

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

View File

@ -5,14 +5,14 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: USB Loader GX\n" "Project-Id-Version: USB Loader GX\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2011-11-15 21:46+0100\n" "POT-Creation-Date: 2011-11-20 10:55+0100\n"
"PO-Revision-Date: 2009-10-01 01:00+0200\n" "PO-Revision-Date: 2009-10-01 01:00+0200\n"
"Last-Translator: David Jelinek (djelinek@hotmail.com) e->e,r->r,u->u, c->c \n" "Last-Translator: David Jelinek (djelinek@hotmail.com) e->e,r->r,u->u, c->c \n"
"Language-Team: r1056 - last version on http://djelinek.sweb.cz/_USBLoderGX/czech.lang \n" "Language-Team: r1056 - last version on http://djelinek.sweb.cz/_USBLoderGX/czech.lang \n"
"Language: \n"
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=utf-8\n" "Content-Type: text/plain; charset=utf-8\n"
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
"Language: \n"
msgid " could not be downloaded." msgid " could not be downloaded."
msgstr " nelze stáhnout." msgstr " nelze stáhnout."
@ -1495,6 +1495,9 @@ msgstr "Úspešne rozbalené téma."
msgid "Successfully installed:" msgid "Successfully installed:"
msgstr "Úspešne nainstalováno" msgstr "Úspešne nainstalováno"
msgid "Switching to channel list mode."
msgstr ""
msgid "Sync FAT32 FS Info" msgid "Sync FAT32 FS Info"
msgstr "FAT32 volné místo" msgstr "FAT32 volné místo"
@ -1571,8 +1574,8 @@ msgstr "Popisky"
msgid "Transfer failed" msgid "Transfer failed"
msgstr "Prenos selhal" msgstr "Prenos selhal"
msgid "USB Device not found" msgid "USB Device not found."
msgstr "USB zarízení nenalezeno" msgstr ""
msgid "USB Loader GX is protected" msgid "USB Loader GX is protected"
msgstr "USB Loader GX je zabezpecen" msgstr "USB Loader GX je zabezpecen"
@ -1734,11 +1737,11 @@ msgstr "Nyní pouzíváte IOS:"
msgid "You are trying to select a FAT32/NTFS/EXT partition with cIOS 249 Rev < 18. This is not supported. Continue on your own risk." msgid "You are trying to select a FAT32/NTFS/EXT partition with cIOS 249 Rev < 18. This is not supported. Continue on your own risk."
msgstr "Pokousíte se vybrat oddíl FAT32/NTFS/EXT s cIOS 249 Rev < 18. To není podporováno. Pokracujte na vasi odpovednost." msgstr "Pokousíte se vybrat oddíl FAT32/NTFS/EXT s cIOS 249 Rev < 18. To není podporováno. Pokracujte na vasi odpovednost."
msgid "You cannot delete this category." msgid "You can select or format a partition or use the channel loader mode."
msgstr "" msgstr ""
msgid "You need to select or format a partition" msgid "You cannot delete this category."
msgstr "Musíte vybrat nebo naformátovat oddíl" msgstr ""
msgid "and translators for language files updates" msgid "and translators for language files updates"
msgstr "a prekladatelé pro jazykové aktualizace" msgstr "a prekladatelé pro jazykové aktualizace"
@ -1794,6 +1797,12 @@ msgstr "z "
msgid "seconds left" msgid "seconds left"
msgstr "sekund zbývá" msgstr "sekund zbývá"
#~ msgid "USB Device not found"
#~ msgstr "USB zarízení nenalezeno"
#~ msgid "You need to select or format a partition"
#~ msgstr "Musíte vybrat nebo naformátovat oddíl"
#~ msgid "Language File" #~ msgid "Language File"
#~ msgstr "Jazykový soubor" #~ msgstr "Jazykový soubor"

View File

@ -5,14 +5,14 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: USB Loader GX\n" "Project-Id-Version: USB Loader GX\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2011-11-15 21:46+0100\n" "POT-Creation-Date: 2011-11-20 10:55+0100\n"
"PO-Revision-Date: 2009-10-01 01:00+0200\n" "PO-Revision-Date: 2009-10-01 01:00+0200\n"
"Last-Translator: Fox888[dk]\n" "Last-Translator: Fox888[dk]\n"
"Language-Team: [dk]\n" "Language-Team: [dk]\n"
"Language: \n"
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=utf-8\n" "Content-Type: text/plain; charset=utf-8\n"
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
"Language: \n"
msgid " could not be downloaded." msgid " could not be downloaded."
msgstr " kunne ikke downloades." msgstr " kunne ikke downloades."
@ -1495,6 +1495,9 @@ msgstr "Udpakning af tema lykkedes."
msgid "Successfully installed:" msgid "Successfully installed:"
msgstr "Installationen lykkedes:" msgstr "Installationen lykkedes:"
msgid "Switching to channel list mode."
msgstr ""
msgid "Sync FAT32 FS Info" msgid "Sync FAT32 FS Info"
msgstr "Synkronisere FAT32 FS Info" msgstr "Synkronisere FAT32 FS Info"
@ -1571,8 +1574,8 @@ msgstr "Værktøjstips"
msgid "Transfer failed" msgid "Transfer failed"
msgstr "Overførelse fejlede" msgstr "Overførelse fejlede"
msgid "USB Device not found" msgid "USB Device not found."
msgstr "USB-enhed ikke fundet" msgstr ""
msgid "USB Loader GX is protected" msgid "USB Loader GX is protected"
msgstr "USB Loader GX er beskyttet" msgstr "USB Loader GX er beskyttet"
@ -1734,12 +1737,12 @@ msgstr "Du brug i øjeblikket IOS"
msgid "You are trying to select a FAT32/NTFS/EXT partition with cIOS 249 Rev < 18. This is not supported. Continue on your own risk." msgid "You are trying to select a FAT32/NTFS/EXT partition with cIOS 249 Rev < 18. This is not supported. Continue on your own risk."
msgstr "Du prøver at vælge en FAT32/NTFS/EXT partition med cIOS 249 Rev < 18. Dette er ikke understøttet. Fortsætte er på egen risiko" msgstr "Du prøver at vælge en FAT32/NTFS/EXT partition med cIOS 249 Rev < 18. Dette er ikke understøttet. Fortsætte er på egen risiko"
msgid "You can select or format a partition or use the channel loader mode."
msgstr ""
msgid "You cannot delete this category." msgid "You cannot delete this category."
msgstr "Du kan ikke slette denne kategori." msgstr "Du kan ikke slette denne kategori."
msgid "You need to select or format a partition"
msgstr "Du skal vælge eller formattere en partition"
msgid "and translators for language files updates" msgid "and translators for language files updates"
msgstr "og oversættere for sprog filer" msgstr "og oversættere for sprog filer"
@ -1794,6 +1797,12 @@ msgstr "af"
msgid "seconds left" msgid "seconds left"
msgstr "sekunder tilbage" msgstr "sekunder tilbage"
#~ msgid "USB Device not found"
#~ msgstr "USB-enhed ikke fundet"
#~ msgid "You need to select or format a partition"
#~ msgstr "Du skal vælge eller formattere en partition"
#~ msgid "Language File" #~ msgid "Language File"
#~ msgstr "Sprog Fil" #~ msgstr "Sprog Fil"

View File

@ -5,14 +5,14 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: USB Loader GX\n" "Project-Id-Version: USB Loader GX\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2011-11-15 21:46+0100\n" "POT-Creation-Date: 2011-11-20 10:55+0100\n"
"PO-Revision-Date: 2011-06-30 14:22+0100\n" "PO-Revision-Date: 2011-06-30 14:22+0100\n"
"Last-Translator: glowy\n" "Last-Translator: glowy\n"
"Language-Team: tj_cool, glowy\n" "Language-Team: tj_cool, glowy\n"
"Language: \n"
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=utf-8\n" "Content-Type: text/plain; charset=utf-8\n"
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
"Language: \n"
msgid " could not be downloaded." msgid " could not be downloaded."
msgstr " kon niet worden gedownload." msgstr " kon niet worden gedownload."
@ -1495,6 +1495,9 @@ msgstr "Thema succesvol uitgepakt."
msgid "Successfully installed:" msgid "Successfully installed:"
msgstr "Met succes geïnstalleerd:" msgstr "Met succes geïnstalleerd:"
msgid "Switching to channel list mode."
msgstr ""
msgid "Sync FAT32 FS Info" msgid "Sync FAT32 FS Info"
msgstr "FAT32 FS Info sync" msgstr "FAT32 FS Info sync"
@ -1571,8 +1574,8 @@ msgstr "Knopinfo"
msgid "Transfer failed" msgid "Transfer failed"
msgstr "Overdracht mislukt." msgstr "Overdracht mislukt."
msgid "USB Device not found" msgid "USB Device not found."
msgstr "USB Apparaat niet gevonden" msgstr ""
msgid "USB Loader GX is protected" msgid "USB Loader GX is protected"
msgstr "USB Loader GX is vergrendeld" msgstr "USB Loader GX is vergrendeld"
@ -1734,12 +1737,12 @@ msgstr "Je gebruikt op dit moment IOS"
msgid "You are trying to select a FAT32/NTFS/EXT partition with cIOS 249 Rev < 18. This is not supported. Continue on your own risk." msgid "You are trying to select a FAT32/NTFS/EXT partition with cIOS 249 Rev < 18. This is not supported. Continue on your own risk."
msgstr "Je probeert een FAT32/NTFS/EXT partitie te selecteren met cIOS 249 Rev < 18. Dit word niet ondersteund. Verder gaan is op eigen risico." msgstr "Je probeert een FAT32/NTFS/EXT partitie te selecteren met cIOS 249 Rev < 18. Dit word niet ondersteund. Verder gaan is op eigen risico."
msgid "You can select or format a partition or use the channel loader mode."
msgstr ""
msgid "You cannot delete this category." msgid "You cannot delete this category."
msgstr "Je kunt deze categorie niet verwijderen." msgstr "Je kunt deze categorie niet verwijderen."
msgid "You need to select or format a partition"
msgstr "Je moet een partitie selecteren of formatteren"
msgid "and translators for language files updates" msgid "and translators for language files updates"
msgstr "en vertalers voor taalbestand updates" msgstr "en vertalers voor taalbestand updates"
@ -1794,6 +1797,12 @@ msgstr "van"
msgid "seconds left" msgid "seconds left"
msgstr "seconden over" msgstr "seconden over"
#~ msgid "USB Device not found"
#~ msgstr "USB Apparaat niet gevonden"
#~ msgid "You need to select or format a partition"
#~ msgstr "Je moet een partitie selecteren of formatteren"
#~ msgid "Language File" #~ msgid "Language File"
#~ msgstr "Taal bestand" #~ msgstr "Taal bestand"

View File

@ -5,14 +5,14 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: USB Loader GX\n" "Project-Id-Version: USB Loader GX\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2011-11-15 21:46+0100\n" "POT-Creation-Date: 2011-11-20 10:55+0100\n"
"PO-Revision-Date: 2009-10-01 01:00+0200\n" "PO-Revision-Date: 2009-10-01 01:00+0200\n"
"Last-Translator: \n" "Last-Translator: \n"
"Language-Team: \n" "Language-Team: \n"
"Language: \n"
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=utf-8\n" "Content-Type: text/plain; charset=utf-8\n"
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
"Language: \n"
msgid " could not be downloaded." msgid " could not be downloaded."
msgstr "" msgstr ""
@ -1495,6 +1495,9 @@ msgstr ""
msgid "Successfully installed:" msgid "Successfully installed:"
msgstr "" msgstr ""
msgid "Switching to channel list mode."
msgstr ""
msgid "Sync FAT32 FS Info" msgid "Sync FAT32 FS Info"
msgstr "" msgstr ""
@ -1571,7 +1574,7 @@ msgstr ""
msgid "Transfer failed" msgid "Transfer failed"
msgstr "" msgstr ""
msgid "USB Device not found" msgid "USB Device not found."
msgstr "" msgstr ""
msgid "USB Loader GX is protected" msgid "USB Loader GX is protected"
@ -1734,10 +1737,10 @@ msgstr ""
msgid "You are trying to select a FAT32/NTFS/EXT partition with cIOS 249 Rev < 18. This is not supported. Continue on your own risk." msgid "You are trying to select a FAT32/NTFS/EXT partition with cIOS 249 Rev < 18. This is not supported. Continue on your own risk."
msgstr "" msgstr ""
msgid "You cannot delete this category." msgid "You can select or format a partition or use the channel loader mode."
msgstr "" msgstr ""
msgid "You need to select or format a partition" msgid "You cannot delete this category."
msgstr "" msgstr ""
msgid "and translators for language files updates" msgid "and translators for language files updates"

View File

@ -5,14 +5,14 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: USB Loader GX\n" "Project-Id-Version: USB Loader GX\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2011-11-15 21:46+0100\n" "POT-Creation-Date: 2011-11-20 10:55+0100\n"
"PO-Revision-Date: 2009-10-01 01:00+0200\n" "PO-Revision-Date: 2009-10-01 01:00+0200\n"
"Last-Translator: c64rmx\n" "Last-Translator: c64rmx\n"
"Language-Team: \n" "Language-Team: \n"
"Language: \n"
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=utf-8\n" "Content-Type: text/plain; charset=utf-8\n"
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
"Language: \n"
msgid " could not be downloaded." msgid " could not be downloaded."
msgstr "Latausta ei voitu suorittaa" msgstr "Latausta ei voitu suorittaa"
@ -1495,6 +1495,9 @@ msgstr ""
msgid "Successfully installed:" msgid "Successfully installed:"
msgstr "Asennettu onnistuneesti:" msgstr "Asennettu onnistuneesti:"
msgid "Switching to channel list mode."
msgstr ""
msgid "Sync FAT32 FS Info" msgid "Sync FAT32 FS Info"
msgstr "" msgstr ""
@ -1571,8 +1574,8 @@ msgstr "Vinkit"
msgid "Transfer failed" msgid "Transfer failed"
msgstr "" msgstr ""
msgid "USB Device not found" msgid "USB Device not found."
msgstr "USB-laitetta ei löytynyt" msgstr ""
msgid "USB Loader GX is protected" msgid "USB Loader GX is protected"
msgstr "USB Loader GX on suojattu." msgstr "USB Loader GX on suojattu."
@ -1734,10 +1737,10 @@ msgstr ""
msgid "You are trying to select a FAT32/NTFS/EXT partition with cIOS 249 Rev < 18. This is not supported. Continue on your own risk." msgid "You are trying to select a FAT32/NTFS/EXT partition with cIOS 249 Rev < 18. This is not supported. Continue on your own risk."
msgstr "" msgstr ""
msgid "You cannot delete this category." msgid "You can select or format a partition or use the channel loader mode."
msgstr "" msgstr ""
msgid "You need to select or format a partition" msgid "You cannot delete this category."
msgstr "" msgstr ""
msgid "and translators for language files updates" msgid "and translators for language files updates"
@ -1794,6 +1797,9 @@ msgstr "josta"
msgid "seconds left" msgid "seconds left"
msgstr "sekuntia jäljellä" msgstr "sekuntia jäljellä"
#~ msgid "USB Device not found"
#~ msgstr "USB-laitetta ei löytynyt"
#~ msgid "Language File" #~ msgid "Language File"
#~ msgstr "KieliTiedosto" #~ msgstr "KieliTiedosto"

View File

@ -5,14 +5,14 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: USB Loader GX\n" "Project-Id-Version: USB Loader GX\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2011-11-15 21:46+0100\n" "POT-Creation-Date: 2011-11-20 10:55+0100\n"
"PO-Revision-Date: 2009-10-01 01:00+0200\n" "PO-Revision-Date: 2009-10-01 01:00+0200\n"
"Last-Translator: Cyan\n" "Last-Translator: Cyan\n"
"Language-Team: Badablek, Amour, ikya, Cyan & Kin8\n" "Language-Team: Badablek, Amour, ikya, Cyan & Kin8\n"
"Language: \n"
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=utf-8\n" "Content-Type: text/plain; charset=utf-8\n"
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
"Language: \n"
msgid " could not be downloaded." msgid " could not be downloaded."
msgstr " ne peut pas être téléchargé." msgstr " ne peut pas être téléchargé."
@ -1495,6 +1495,9 @@ msgstr "Succès de l'extraction du thème."
msgid "Successfully installed:" msgid "Successfully installed:"
msgstr "Installé avec succès:" msgstr "Installé avec succès:"
msgid "Switching to channel list mode."
msgstr ""
msgid "Sync FAT32 FS Info" msgid "Sync FAT32 FS Info"
msgstr "Synch. info FAT32" msgstr "Synch. info FAT32"
@ -1571,8 +1574,8 @@ msgstr "Info-bulles"
msgid "Transfer failed" msgid "Transfer failed"
msgstr "Échec du transfert" msgstr "Échec du transfert"
msgid "USB Device not found" msgid "USB Device not found."
msgstr "Périphérique USB introuvable" msgstr ""
msgid "USB Loader GX is protected" msgid "USB Loader GX is protected"
msgstr "USB Loader GX est verrouillé" msgstr "USB Loader GX est verrouillé"
@ -1734,12 +1737,12 @@ msgstr "Vous utilisez actuellement l'IOS"
msgid "You are trying to select a FAT32/NTFS/EXT partition with cIOS 249 Rev < 18. This is not supported. Continue on your own risk." msgid "You are trying to select a FAT32/NTFS/EXT partition with cIOS 249 Rev < 18. This is not supported. Continue on your own risk."
msgstr "Vous essayez de sélectionner une partition FAT32/NTFS/EXT avec un cIOS 249 Rev < 18 (non supporté). Continuez à vos risques." msgstr "Vous essayez de sélectionner une partition FAT32/NTFS/EXT avec un cIOS 249 Rev < 18 (non supporté). Continuez à vos risques."
msgid "You can select or format a partition or use the channel loader mode."
msgstr ""
msgid "You cannot delete this category." msgid "You cannot delete this category."
msgstr "Vous ne pouvez pas supprimer cette catégorie." msgstr "Vous ne pouvez pas supprimer cette catégorie."
msgid "You need to select or format a partition"
msgstr "Vous devez choisir ou formater une partition"
msgid "and translators for language files updates" msgid "and translators for language files updates"
msgstr "et les traducteurs pour la MàJ des fichiers langue" msgstr "et les traducteurs pour la MàJ des fichiers langue"
@ -1794,6 +1797,12 @@ msgstr "sur"
msgid "seconds left" msgid "seconds left"
msgstr "secondes restantes" msgstr "secondes restantes"
#~ msgid "USB Device not found"
#~ msgstr "Périphérique USB introuvable"
#~ msgid "You need to select or format a partition"
#~ msgstr "Vous devez choisir ou formater une partition"
#~ msgid "Language File" #~ msgid "Language File"
#~ msgstr "Fichier de langue" #~ msgstr "Fichier de langue"

View File

@ -5,14 +5,14 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: USB Loader GX\n" "Project-Id-Version: USB Loader GX\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2011-11-15 21:46+0100\n" "POT-Creation-Date: 2011-11-20 10:55+0100\n"
"PO-Revision-Date: 2010-07-03 17:35-0800\n" "PO-Revision-Date: 2010-07-03 17:35-0800\n"
"Last-Translator: TheRealVisitor\n" "Last-Translator: TheRealVisitor\n"
"Language-Team: Bertilax, Snoozer, wishmasterf, ZEN.13, TheRealVisitor\n" "Language-Team: Bertilax, Snoozer, wishmasterf, ZEN.13, TheRealVisitor\n"
"Language: German\n"
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=utf-8\n" "Content-Type: text/plain; charset=utf-8\n"
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
"Language: German\n"
msgid " could not be downloaded." msgid " could not be downloaded."
msgstr " konnte nicht heruntergeladen werden." msgstr " konnte nicht heruntergeladen werden."
@ -1495,6 +1495,9 @@ msgstr "Theme erfolgreich entpackt."
msgid "Successfully installed:" msgid "Successfully installed:"
msgstr "Erfolgreich installiert:" msgstr "Erfolgreich installiert:"
msgid "Switching to channel list mode."
msgstr ""
msgid "Sync FAT32 FS Info" msgid "Sync FAT32 FS Info"
msgstr "Sync. FAT32 FS Info" msgstr "Sync. FAT32 FS Info"
@ -1571,8 +1574,8 @@ msgstr "Quickinfo"
msgid "Transfer failed" msgid "Transfer failed"
msgstr "Transfer fehlgeschlagen" msgstr "Transfer fehlgeschlagen"
msgid "USB Device not found" msgid "USB Device not found."
msgstr "USB Gerät nicht gefunden." msgstr ""
msgid "USB Loader GX is protected" msgid "USB Loader GX is protected"
msgstr "USB Loader GX ist jetzt geschützt." msgstr "USB Loader GX ist jetzt geschützt."
@ -1734,12 +1737,12 @@ msgstr "Du benutzt zur Zeit das IOS"
msgid "You are trying to select a FAT32/NTFS/EXT partition with cIOS 249 Rev < 18. This is not supported. Continue on your own risk." msgid "You are trying to select a FAT32/NTFS/EXT partition with cIOS 249 Rev < 18. This is not supported. Continue on your own risk."
msgstr "Es wird versucht eine FAT32/NTFS/EXT Partition mit dem cIOS 249 Rev < 18 auszuwählen. Das wird nicht unterstützt. Weiter auf eigene Gefahr." msgstr "Es wird versucht eine FAT32/NTFS/EXT Partition mit dem cIOS 249 Rev < 18 auszuwählen. Das wird nicht unterstützt. Weiter auf eigene Gefahr."
msgid "You can select or format a partition or use the channel loader mode."
msgstr ""
msgid "You cannot delete this category." msgid "You cannot delete this category."
msgstr "Kategorie kann nicht gelöscht werden." msgstr "Kategorie kann nicht gelöscht werden."
msgid "You need to select or format a partition"
msgstr "Du musst eine Partition auswählen oder formatieren."
msgid "and translators for language files updates" msgid "and translators for language files updates"
msgstr "und Übersetzer für Sprachdateien Updates" msgstr "und Übersetzer für Sprachdateien Updates"
@ -1794,6 +1797,12 @@ msgstr "von"
msgid "seconds left" msgid "seconds left"
msgstr "Sekunden verbleiben" msgstr "Sekunden verbleiben"
#~ msgid "USB Device not found"
#~ msgstr "USB Gerät nicht gefunden."
#~ msgid "You need to select or format a partition"
#~ msgstr "Du musst eine Partition auswählen oder formatieren."
#~ msgid "Language File" #~ msgid "Language File"
#~ msgstr "Sprachdatei" #~ msgstr "Sprachdatei"

View File

@ -5,14 +5,14 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: USB Loader GX\n" "Project-Id-Version: USB Loader GX\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2011-11-15 21:46+0100\n" "POT-Creation-Date: 2011-11-20 10:55+0100\n"
"PO-Revision-Date: 2009-12-29 11:05+0100\n" "PO-Revision-Date: 2009-12-29 11:05+0100\n"
"Last-Translator: Springdale\n" "Last-Translator: Springdale\n"
"Language-Team: Tusk, Springdale\n" "Language-Team: Tusk, Springdale\n"
"Language: \n"
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=utf-8\n" "Content-Type: text/plain; charset=utf-8\n"
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
"Language: \n"
msgid " could not be downloaded." msgid " could not be downloaded."
msgstr "nem letölthetõ." msgstr "nem letölthetõ."
@ -1495,6 +1495,9 @@ msgstr "Téma kicsomagolva."
msgid "Successfully installed:" msgid "Successfully installed:"
msgstr "Sikeresen telepítve:" msgstr "Sikeresen telepítve:"
msgid "Switching to channel list mode."
msgstr ""
msgid "Sync FAT32 FS Info" msgid "Sync FAT32 FS Info"
msgstr "" msgstr ""
@ -1571,8 +1574,8 @@ msgstr "Súgók"
msgid "Transfer failed" msgid "Transfer failed"
msgstr "" msgstr ""
msgid "USB Device not found" msgid "USB Device not found."
msgstr "USB Meghajtó nem található" msgstr ""
msgid "USB Loader GX is protected" msgid "USB Loader GX is protected"
msgstr "USB Loader GX levédve" msgstr "USB Loader GX levédve"
@ -1734,11 +1737,11 @@ msgstr ""
msgid "You are trying to select a FAT32/NTFS/EXT partition with cIOS 249 Rev < 18. This is not supported. Continue on your own risk." msgid "You are trying to select a FAT32/NTFS/EXT partition with cIOS 249 Rev < 18. This is not supported. Continue on your own risk."
msgstr "" msgstr ""
msgid "You cannot delete this category." msgid "You can select or format a partition or use the channel loader mode."
msgstr "" msgstr ""
msgid "You need to select or format a partition" msgid "You cannot delete this category."
msgstr "Választanod vagy formáznod kell egy partíciót" msgstr ""
msgid "and translators for language files updates" msgid "and translators for language files updates"
msgstr "" msgstr ""
@ -1794,6 +1797,12 @@ msgstr "./"
msgid "seconds left" msgid "seconds left"
msgstr "hátralévõ másodperc" msgstr "hátralévõ másodperc"
#~ msgid "USB Device not found"
#~ msgstr "USB Meghajtó nem található"
#~ msgid "You need to select or format a partition"
#~ msgstr "Választanod vagy formáznod kell egy partíciót"
#~ msgid "Language File" #~ msgid "Language File"
#~ msgstr "Nyelvi fájl" #~ msgstr "Nyelvi fájl"

View File

@ -5,14 +5,14 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: USB Loader GX\n" "Project-Id-Version: USB Loader GX\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2011-11-15 21:46+0100\n" "POT-Creation-Date: 2011-11-20 10:55+0100\n"
"PO-Revision-Date: 2011-09-11 12:19+0100\n" "PO-Revision-Date: 2011-09-11 12:19+0100\n"
"Last-Translator: xFede\n" "Last-Translator: xFede\n"
"Language-Team: Cambo\n" "Language-Team: Cambo\n"
"Language: \n"
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n" "Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
"Language: \n"
msgid " could not be downloaded." msgid " could not be downloaded."
msgstr " non può essere scaricato." msgstr " non può essere scaricato."
@ -1495,6 +1495,9 @@ msgstr "Tema estratto correttamente."
msgid "Successfully installed:" msgid "Successfully installed:"
msgstr "Installato correttamente:" msgstr "Installato correttamente:"
msgid "Switching to channel list mode."
msgstr ""
msgid "Sync FAT32 FS Info" msgid "Sync FAT32 FS Info"
msgstr "Sincr. info Spazio Lib." msgstr "Sincr. info Spazio Lib."
@ -1571,8 +1574,8 @@ msgstr "Suggerimenti"
msgid "Transfer failed" msgid "Transfer failed"
msgstr "Trasferimento fallito" msgstr "Trasferimento fallito"
msgid "USB Device not found" msgid "USB Device not found."
msgstr "Periferica USB non trovata" msgstr ""
msgid "USB Loader GX is protected" msgid "USB Loader GX is protected"
msgstr "USB Loader GX è protetto" msgstr "USB Loader GX è protetto"
@ -1734,12 +1737,12 @@ msgstr "Al momento stai utilizzando l'IOS"
msgid "You are trying to select a FAT32/NTFS/EXT partition with cIOS 249 Rev < 18. This is not supported. Continue on your own risk." msgid "You are trying to select a FAT32/NTFS/EXT partition with cIOS 249 Rev < 18. This is not supported. Continue on your own risk."
msgstr "Stai cercando di selezionare una partizione FAT32/NTFS/EXT con un cIOS 249 di versione < 18. Continua a tuo rischio e pericolo." msgstr "Stai cercando di selezionare una partizione FAT32/NTFS/EXT con un cIOS 249 di versione < 18. Continua a tuo rischio e pericolo."
msgid "You can select or format a partition or use the channel loader mode."
msgstr ""
msgid "You cannot delete this category." msgid "You cannot delete this category."
msgstr "Non puoi eliminare questa categoria." msgstr "Non puoi eliminare questa categoria."
msgid "You need to select or format a partition"
msgstr "Devi selezionare o formattare una partizione"
msgid "and translators for language files updates" msgid "and translators for language files updates"
msgstr "ed ai traduttori per gli aggiornamenti dei file di lingua" msgstr "ed ai traduttori per gli aggiornamenti dei file di lingua"
@ -1794,5 +1797,11 @@ msgstr "di"
msgid "seconds left" msgid "seconds left"
msgstr "secondi rimanenti" msgstr "secondi rimanenti"
#~ msgid "USB Device not found"
#~ msgstr "Periferica USB non trovata"
#~ msgid "You need to select or format a partition"
#~ msgstr "Devi selezionare o formattare una partizione"
#~ msgid "WiiTDB is up to date." #~ msgid "WiiTDB is up to date."
#~ msgstr "WiiTDB è aggiornato." #~ msgstr "WiiTDB è aggiornato."

View File

@ -5,14 +5,14 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: USB Loader GX\n" "Project-Id-Version: USB Loader GX\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2011-11-12 18:58+0100\n" "POT-Creation-Date: 2011-11-20 10:55+0100\n"
"PO-Revision-Date: 2009-10-01 01:00+0200\n" "PO-Revision-Date: 2009-10-01 01:00+0200\n"
"Last-Translator: hosigumayuugi\n" "Last-Translator: hosigumayuugi\n"
"Language-Team: hosigumayuugi\n" "Language-Team: hosigumayuugi\n"
"Language: \n"
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=utf-8\n" "Content-Type: text/plain; charset=utf-8\n"
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
"Language: \n"
msgid " could not be downloaded." msgid " could not be downloaded."
msgstr "ダウンロードできませんでした" msgstr "ダウンロードできませんでした"
@ -1495,6 +1495,9 @@ msgstr "テーマの解凍を完了しました."
msgid "Successfully installed:" msgid "Successfully installed:"
msgstr "このゲームをインストールしました" msgstr "このゲームをインストールしました"
msgid "Switching to channel list mode."
msgstr ""
msgid "Sync FAT32 FS Info" msgid "Sync FAT32 FS Info"
msgstr "FAT32FS情報を同期" msgstr "FAT32FS情報を同期"
@ -1571,8 +1574,8 @@ msgstr "ヒントバルーン"
msgid "Transfer failed" msgid "Transfer failed"
msgstr "転送に失敗しました" msgstr "転送に失敗しました"
msgid "USB Device not found" msgid "USB Device not found."
msgstr "USB機器が見つかりません" msgstr ""
msgid "USB Loader GX is protected" msgid "USB Loader GX is protected"
msgstr "GXは保護されています" msgstr "GXは保護されています"
@ -1734,12 +1737,12 @@ msgstr "使用中のIOS:IOS"
msgid "You are trying to select a FAT32/NTFS/EXT partition with cIOS 249 Rev < 18. This is not supported. Continue on your own risk." msgid "You are trying to select a FAT32/NTFS/EXT partition with cIOS 249 Rev < 18. This is not supported. Continue on your own risk."
msgstr "rev17以前のcIOS249ではFAT32/NTFS/EXTに対応していません" msgstr "rev17以前のcIOS249ではFAT32/NTFS/EXTに対応していません"
msgid "You can select or format a partition or use the channel loader mode."
msgstr ""
msgid "You cannot delete this category." msgid "You cannot delete this category."
msgstr "このカテゴリは削除できません" msgstr "このカテゴリは削除できません"
msgid "You need to select or format a partition"
msgstr "領域を選択するか初期化してください"
msgid "and translators for language files updates" msgid "and translators for language files updates"
msgstr "/ K-M / ichiroling …日本語化" msgstr "/ K-M / ichiroling …日本語化"
@ -1794,6 +1797,12 @@ msgstr "中"
msgid "seconds left" msgid "seconds left"
msgstr "秒で完了" msgstr "秒で完了"
#~ msgid "USB Device not found"
#~ msgstr "USB機器が見つかりません"
#~ msgid "You need to select or format a partition"
#~ msgstr "領域を選択するか初期化してください"
#~ msgid "GameTDB Files" #~ msgid "GameTDB Files"
#~ msgstr "ゲーム名リスト" #~ msgstr "ゲーム名リスト"

View File

@ -5,14 +5,14 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: USB Loader GX\n" "Project-Id-Version: USB Loader GX\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2011-11-15 21:46+0100\n" "POT-Creation-Date: 2011-11-20 10:55+0100\n"
"PO-Revision-Date: 2009-10-01 01:00+0200\n" "PO-Revision-Date: 2009-10-01 01:00+0200\n"
"Last-Translator: nextos@korea.com\n" "Last-Translator: nextos@korea.com\n"
"Language-Team: \n" "Language-Team: \n"
"Language: \n"
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=utf-8\n" "Content-Type: text/plain; charset=utf-8\n"
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
"Language: \n"
msgid " could not be downloaded." msgid " could not be downloaded."
msgstr " 다운로드할수 없음." msgstr " 다운로드할수 없음."
@ -1495,6 +1495,9 @@ msgstr ""
msgid "Successfully installed:" msgid "Successfully installed:"
msgstr "설치 성공:" msgstr "설치 성공:"
msgid "Switching to channel list mode."
msgstr ""
msgid "Sync FAT32 FS Info" msgid "Sync FAT32 FS Info"
msgstr "" msgstr ""
@ -1571,8 +1574,8 @@ msgstr "Tooltips"
msgid "Transfer failed" msgid "Transfer failed"
msgstr "" msgstr ""
msgid "USB Device not found" msgid "USB Device not found."
msgstr "USB 장치가 없습니다." msgstr ""
msgid "USB Loader GX is protected" msgid "USB Loader GX is protected"
msgstr "USB 로더 GX 잠김 상태" msgstr "USB 로더 GX 잠김 상태"
@ -1734,10 +1737,10 @@ msgstr ""
msgid "You are trying to select a FAT32/NTFS/EXT partition with cIOS 249 Rev < 18. This is not supported. Continue on your own risk." msgid "You are trying to select a FAT32/NTFS/EXT partition with cIOS 249 Rev < 18. This is not supported. Continue on your own risk."
msgstr "" msgstr ""
msgid "You cannot delete this category." msgid "You can select or format a partition or use the channel loader mode."
msgstr "" msgstr ""
msgid "You need to select or format a partition" msgid "You cannot delete this category."
msgstr "" msgstr ""
msgid "and translators for language files updates" msgid "and translators for language files updates"
@ -1794,6 +1797,9 @@ msgstr "중"
msgid "seconds left" msgid "seconds left"
msgstr "초 남았습니다" msgstr "초 남았습니다"
#~ msgid "USB Device not found"
#~ msgstr "USB 장치가 없습니다."
#~ msgid "Language File" #~ msgid "Language File"
#~ msgstr "언어화일" #~ msgstr "언어화일"

View File

@ -5,14 +5,14 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: USB Loader GX\n" "Project-Id-Version: USB Loader GX\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2011-11-15 21:46+0100\n" "POT-Creation-Date: 2011-11-20 10:55+0100\n"
"PO-Revision-Date: 2009-10-01 01:00+0200\n" "PO-Revision-Date: 2009-10-01 01:00+0200\n"
"Last-Translator: raschi\n" "Last-Translator: raschi\n"
"Language-Team: raschi\n" "Language-Team: raschi\n"
"Language: \n"
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=utf-8\n" "Content-Type: text/plain; charset=utf-8\n"
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
"Language: \n"
msgid " could not be downloaded." msgid " could not be downloaded."
msgstr " kan ikke lastes ned." msgstr " kan ikke lastes ned."
@ -1495,6 +1495,9 @@ msgstr "Vellykket utpakking av tema."
msgid "Successfully installed:" msgid "Successfully installed:"
msgstr "Vellykket installering:" msgstr "Vellykket installering:"
msgid "Switching to channel list mode."
msgstr ""
msgid "Sync FAT32 FS Info" msgid "Sync FAT32 FS Info"
msgstr "Synkroniser FAT32 FS info" msgstr "Synkroniser FAT32 FS info"
@ -1571,8 +1574,8 @@ msgstr "Verktøystips"
msgid "Transfer failed" msgid "Transfer failed"
msgstr "Overføring feilet" msgstr "Overføring feilet"
msgid "USB Device not found" msgid "USB Device not found."
msgstr "USB enhet ikke funnet" msgstr ""
msgid "USB Loader GX is protected" msgid "USB Loader GX is protected"
msgstr "USB Loader GX er beskyttet" msgstr "USB Loader GX er beskyttet"
@ -1734,12 +1737,12 @@ msgstr "Du bruker IOS"
msgid "You are trying to select a FAT32/NTFS/EXT partition with cIOS 249 Rev < 18. This is not supported. Continue on your own risk." msgid "You are trying to select a FAT32/NTFS/EXT partition with cIOS 249 Rev < 18. This is not supported. Continue on your own risk."
msgstr "Du prøver å velge en FAT32/NTFS/EXT partisjon med cIOS 249 rev < 18. Dette er ikke støttet. Fortsett på eget ansvar." msgstr "Du prøver å velge en FAT32/NTFS/EXT partisjon med cIOS 249 rev < 18. Dette er ikke støttet. Fortsett på eget ansvar."
msgid "You can select or format a partition or use the channel loader mode."
msgstr ""
msgid "You cannot delete this category." msgid "You cannot delete this category."
msgstr "Du kan ikke slette denne kategori." msgstr "Du kan ikke slette denne kategori."
msgid "You need to select or format a partition"
msgstr "Du må velge en partisjon"
msgid "and translators for language files updates" msgid "and translators for language files updates"
msgstr "og oversettere for språkfiler" msgstr "og oversettere for språkfiler"
@ -1794,6 +1797,12 @@ msgstr "av"
msgid "seconds left" msgid "seconds left"
msgstr "sekunder gjenstår" msgstr "sekunder gjenstår"
#~ msgid "USB Device not found"
#~ msgstr "USB enhet ikke funnet"
#~ msgid "You need to select or format a partition"
#~ msgstr "Du må velge en partisjon"
#~ msgid "Language File" #~ msgid "Language File"
#~ msgstr "Språk Fil" #~ msgstr "Språk Fil"

View File

@ -5,14 +5,14 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: USB Loader GX\n" "Project-Id-Version: USB Loader GX\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2011-11-15 21:46+0100\n" "POT-Creation-Date: 2011-11-20 10:55+0100\n"
"PO-Revision-Date: 2009-10-01 01:00+0200\n" "PO-Revision-Date: 2009-10-01 01:00+0200\n"
"Last-Translator: ziom666 (zadania_prog@vp.pl)\n" "Last-Translator: ziom666 (zadania_prog@vp.pl)\n"
"Language-Team: \n" "Language-Team: \n"
"Language: \n"
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=utf-8\n" "Content-Type: text/plain; charset=utf-8\n"
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
"Language: \n"
msgid " could not be downloaded." msgid " could not be downloaded."
msgstr " nie udalo sie pobrac" msgstr " nie udalo sie pobrac"
@ -1495,6 +1495,9 @@ msgstr "Pomyslnie rozpakowano temat."
msgid "Successfully installed:" msgid "Successfully installed:"
msgstr "Pomyslnie zainstalowano:" msgstr "Pomyslnie zainstalowano:"
msgid "Switching to channel list mode."
msgstr ""
msgid "Sync FAT32 FS Info" msgid "Sync FAT32 FS Info"
msgstr "" msgstr ""
@ -1571,8 +1574,8 @@ msgstr "Chmurki z podpowiedziami"
msgid "Transfer failed" msgid "Transfer failed"
msgstr "" msgstr ""
msgid "USB Device not found" msgid "USB Device not found."
msgstr "Nie znaleziono urzadzenia USB" msgstr ""
msgid "USB Loader GX is protected" msgid "USB Loader GX is protected"
msgstr "USB Loader GX zabezpieczony" msgstr "USB Loader GX zabezpieczony"
@ -1734,11 +1737,11 @@ msgstr ""
msgid "You are trying to select a FAT32/NTFS/EXT partition with cIOS 249 Rev < 18. This is not supported. Continue on your own risk." msgid "You are trying to select a FAT32/NTFS/EXT partition with cIOS 249 Rev < 18. This is not supported. Continue on your own risk."
msgstr "" msgstr ""
msgid "You cannot delete this category." msgid "You can select or format a partition or use the channel loader mode."
msgstr "" msgstr ""
msgid "You need to select or format a partition" msgid "You cannot delete this category."
msgstr "Musisz wybrac, lub sformatowac partycje" msgstr ""
msgid "and translators for language files updates" msgid "and translators for language files updates"
msgstr "" msgstr ""
@ -1794,6 +1797,12 @@ msgstr "z"
msgid "seconds left" msgid "seconds left"
msgstr "sekund pozostalo" msgstr "sekund pozostalo"
#~ msgid "USB Device not found"
#~ msgstr "Nie znaleziono urzadzenia USB"
#~ msgid "You need to select or format a partition"
#~ msgstr "Musisz wybrac, lub sformatowac partycje"
#~ msgid "Language File" #~ msgid "Language File"
#~ msgstr "Plik jezykowy" #~ msgstr "Plik jezykowy"

View File

@ -5,14 +5,14 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: USB Loader GX\n" "Project-Id-Version: USB Loader GX\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2011-11-15 21:46+0100\n" "POT-Creation-Date: 2011-11-20 10:55+0100\n"
"PO-Revision-Date: 2009-10-23 18:52+0200\n" "PO-Revision-Date: 2009-10-23 18:52+0200\n"
"Last-Translator: aniemotion\n" "Last-Translator: aniemotion\n"
"Language-Team: boto12, aniemotion\n" "Language-Team: boto12, aniemotion\n"
"Language: \n"
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=utf-8\n" "Content-Type: text/plain; charset=utf-8\n"
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
"Language: \n"
msgid " could not be downloaded." msgid " could not be downloaded."
msgstr " não foi baixado." msgstr " não foi baixado."
@ -1495,6 +1495,9 @@ msgstr "Tema extraido com sucesso."
msgid "Successfully installed:" msgid "Successfully installed:"
msgstr "Instalado com Sucesso:" msgstr "Instalado com Sucesso:"
msgid "Switching to channel list mode."
msgstr ""
msgid "Sync FAT32 FS Info" msgid "Sync FAT32 FS Info"
msgstr "" msgstr ""
@ -1571,8 +1574,8 @@ msgstr "Dicas"
msgid "Transfer failed" msgid "Transfer failed"
msgstr "" msgstr ""
msgid "USB Device not found" msgid "USB Device not found."
msgstr "Dispositivo USB não encontrado" msgstr ""
msgid "USB Loader GX is protected" msgid "USB Loader GX is protected"
msgstr "O USB Loader GX está bloqueado" msgstr "O USB Loader GX está bloqueado"
@ -1734,11 +1737,11 @@ msgstr ""
msgid "You are trying to select a FAT32/NTFS/EXT partition with cIOS 249 Rev < 18. This is not supported. Continue on your own risk." msgid "You are trying to select a FAT32/NTFS/EXT partition with cIOS 249 Rev < 18. This is not supported. Continue on your own risk."
msgstr "" msgstr ""
msgid "You cannot delete this category." msgid "You can select or format a partition or use the channel loader mode."
msgstr "" msgstr ""
msgid "You need to select or format a partition" msgid "You cannot delete this category."
msgstr "Você precisa selecionar ou formatar uma partição" msgstr ""
msgid "and translators for language files updates" msgid "and translators for language files updates"
msgstr "" msgstr ""
@ -1794,6 +1797,12 @@ msgstr "de"
msgid "seconds left" msgid "seconds left"
msgstr "segundos restantes" msgstr "segundos restantes"
#~ msgid "USB Device not found"
#~ msgstr "Dispositivo USB não encontrado"
#~ msgid "You need to select or format a partition"
#~ msgstr "Você precisa selecionar ou formatar uma partição"
#~ msgid "Language File" #~ msgid "Language File"
#~ msgstr "Idiomas" #~ msgstr "Idiomas"

View File

@ -5,14 +5,14 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: USB Loader GX\n" "Project-Id-Version: USB Loader GX\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2011-11-15 21:46+0100\n" "POT-Creation-Date: 2011-11-20 10:55+0100\n"
"PO-Revision-Date: 2011-11-03 11:00+0000\n" "PO-Revision-Date: 2011-11-03 11:00+0000\n"
"Last-Translator: pplucky <pplucky@gmail.com>\n" "Last-Translator: pplucky <pplucky@gmail.com>\n"
"Language-Team: Sky8000, pplucky\n" "Language-Team: Sky8000, pplucky\n"
"Language: \n"
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=utf-8\n" "Content-Type: text/plain; charset=utf-8\n"
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
"Language: \n"
msgid " could not be downloaded." msgid " could not be downloaded."
msgstr " não foi descarregado." msgstr " não foi descarregado."
@ -1495,6 +1495,9 @@ msgstr "Tema extraído com sucesso."
msgid "Successfully installed:" msgid "Successfully installed:"
msgstr "Instalado com Sucesso:" msgstr "Instalado com Sucesso:"
msgid "Switching to channel list mode."
msgstr ""
msgid "Sync FAT32 FS Info" msgid "Sync FAT32 FS Info"
msgstr "Sincronizar Info FAT32" msgstr "Sincronizar Info FAT32"
@ -1571,8 +1574,8 @@ msgstr "Dicas"
msgid "Transfer failed" msgid "Transfer failed"
msgstr "Transferência falhada" msgstr "Transferência falhada"
msgid "USB Device not found" msgid "USB Device not found."
msgstr "Dispositivo USB não encontrado" msgstr ""
msgid "USB Loader GX is protected" msgid "USB Loader GX is protected"
msgstr "O USB Loader GX está bloqueado" msgstr "O USB Loader GX está bloqueado"
@ -1734,12 +1737,12 @@ msgstr "Está a usar o IOS"
msgid "You are trying to select a FAT32/NTFS/EXT partition with cIOS 249 Rev < 18. This is not supported. Continue on your own risk." msgid "You are trying to select a FAT32/NTFS/EXT partition with cIOS 249 Rev < 18. This is not supported. Continue on your own risk."
msgstr "Está a tentar seleccionar uma partição FAT32/NTFS/EXT com um cIOS 249 Rev < 18. Isto não é suportado. Continue por sua conta e risco." msgstr "Está a tentar seleccionar uma partição FAT32/NTFS/EXT com um cIOS 249 Rev < 18. Isto não é suportado. Continue por sua conta e risco."
msgid "You can select or format a partition or use the channel loader mode."
msgstr ""
msgid "You cannot delete this category." msgid "You cannot delete this category."
msgstr "Não pode apagar esta categoria." msgstr "Não pode apagar esta categoria."
msgid "You need to select or format a partition"
msgstr "Necessita seleccionar ou formatar uma partição"
msgid "and translators for language files updates" msgid "and translators for language files updates"
msgstr "e tradutores para as actualizações de idioma" msgstr "e tradutores para as actualizações de idioma"
@ -1794,6 +1797,12 @@ msgstr "de"
msgid "seconds left" msgid "seconds left"
msgstr "segundos restantes" msgstr "segundos restantes"
#~ msgid "USB Device not found"
#~ msgstr "Dispositivo USB não encontrado"
#~ msgid "You need to select or format a partition"
#~ msgstr "Necessita seleccionar ou formatar uma partição"
#~ msgid "Language File" #~ msgid "Language File"
#~ msgstr "Idiomas" #~ msgstr "Idiomas"

View File

@ -5,14 +5,14 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: USB Loader GX\n" "Project-Id-Version: USB Loader GX\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2011-11-15 21:46+0100\n" "POT-Creation-Date: 2011-11-20 10:55+0100\n"
"PO-Revision-Date: 2009-10-01 01:00+0200\n" "PO-Revision-Date: 2009-10-01 01:00+0200\n"
"Last-Translator: nikolai_ca\n" "Last-Translator: nikolai_ca\n"
"Language-Team: Kir, alendit, nikolai_ca\n" "Language-Team: Kir, alendit, nikolai_ca\n"
"Language: \n"
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=utf-8\n" "Content-Type: text/plain; charset=utf-8\n"
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
"Language: \n"
msgid " could not be downloaded." msgid " could not be downloaded."
msgstr " не мог быть загружен" msgstr " не мог быть загружен"
@ -1495,6 +1495,9 @@ msgstr "Успешно извлечена тема."
msgid "Successfully installed:" msgid "Successfully installed:"
msgstr "Успешно установлено:" msgstr "Успешно установлено:"
msgid "Switching to channel list mode."
msgstr ""
msgid "Sync FAT32 FS Info" msgid "Sync FAT32 FS Info"
msgstr "" msgstr ""
@ -1571,8 +1574,8 @@ msgstr "Подсказки"
msgid "Transfer failed" msgid "Transfer failed"
msgstr "" msgstr ""
msgid "USB Device not found" msgid "USB Device not found."
msgstr "USB устройство не найдено" msgstr ""
msgid "USB Loader GX is protected" msgid "USB Loader GX is protected"
msgstr "USB Loader GX заблокирован" msgstr "USB Loader GX заблокирован"
@ -1734,10 +1737,10 @@ msgstr ""
msgid "You are trying to select a FAT32/NTFS/EXT partition with cIOS 249 Rev < 18. This is not supported. Continue on your own risk." msgid "You are trying to select a FAT32/NTFS/EXT partition with cIOS 249 Rev < 18. This is not supported. Continue on your own risk."
msgstr "" msgstr ""
msgid "You cannot delete this category." msgid "You can select or format a partition or use the channel loader mode."
msgstr "" msgstr ""
msgid "You need to select or format a partition" msgid "You cannot delete this category."
msgstr "" msgstr ""
msgid "and translators for language files updates" msgid "and translators for language files updates"
@ -1794,6 +1797,9 @@ msgstr "из"
msgid "seconds left" msgid "seconds left"
msgstr "секунд осталось" msgstr "секунд осталось"
#~ msgid "USB Device not found"
#~ msgstr "USB устройство не найдено"
#~ msgid "Language File" #~ msgid "Language File"
#~ msgstr "Языковой файл" #~ msgstr "Языковой файл"

View File

@ -5,14 +5,14 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: USB Loader GX\n" "Project-Id-Version: USB Loader GX\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2011-11-15 21:46+0100\n" "POT-Creation-Date: 2011-11-20 10:55+0100\n"
"PO-Revision-Date: 2009-10-01 01:00+0200\n" "PO-Revision-Date: 2009-10-01 01:00+0200\n"
"Last-Translator: knife.hu kavid emul8ion\n" "Last-Translator: knife.hu kavid emul8ion\n"
"Language-Team: kavid\n" "Language-Team: kavid\n"
"Language: \n"
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=utf-8\n" "Content-Type: text/plain; charset=utf-8\n"
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
"Language: \n"
msgid " could not be downloaded." msgid " could not be downloaded."
msgstr "不能下载." msgstr "不能下载."
@ -1495,6 +1495,9 @@ msgstr "解压主题成功"
msgid "Successfully installed:" msgid "Successfully installed:"
msgstr "成功安装:" msgstr "成功安装:"
msgid "Switching to channel list mode."
msgstr ""
msgid "Sync FAT32 FS Info" msgid "Sync FAT32 FS Info"
msgstr "同步FAT32信息" msgstr "同步FAT32信息"
@ -1571,8 +1574,8 @@ msgstr "提示信息"
msgid "Transfer failed" msgid "Transfer failed"
msgstr "传输失败" msgstr "传输失败"
msgid "USB Device not found" msgid "USB Device not found."
msgstr "找不到 USB 设备" msgstr ""
msgid "USB Loader GX is protected" msgid "USB Loader GX is protected"
msgstr "USB Loader GX 被锁定" msgstr "USB Loader GX 被锁定"
@ -1734,11 +1737,11 @@ msgstr "正在使用IOS"
msgid "You are trying to select a FAT32/NTFS/EXT partition with cIOS 249 Rev < 18. This is not supported. Continue on your own risk." msgid "You are trying to select a FAT32/NTFS/EXT partition with cIOS 249 Rev < 18. This is not supported. Continue on your own risk."
msgstr "cIOS 249低于r18版本不支持FAT32/NTFS/EXT分区.如要继续风险自负" msgstr "cIOS 249低于r18版本不支持FAT32/NTFS/EXT分区.如要继续风险自负"
msgid "You cannot delete this category." msgid "You can select or format a partition or use the channel loader mode."
msgstr "" msgstr ""
msgid "You need to select or format a partition" msgid "You cannot delete this category."
msgstr "你需要选择或者格式化一个分区" msgstr ""
msgid "and translators for language files updates" msgid "and translators for language files updates"
msgstr "以及翻译人员的语言文件更新" msgstr "以及翻译人员的语言文件更新"
@ -1794,6 +1797,12 @@ msgstr "的"
msgid "seconds left" msgid "seconds left"
msgstr "剩余秒数" msgstr "剩余秒数"
#~ msgid "USB Device not found"
#~ msgstr "找不到 USB 设备"
#~ msgid "You need to select or format a partition"
#~ msgstr "你需要选择或者格式化一个分区"
#~ msgid "Language File" #~ msgid "Language File"
#~ msgstr "语言文件" #~ msgstr "语言文件"

View File

@ -5,14 +5,14 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: USB Loader GX\n" "Project-Id-Version: USB Loader GX\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2011-11-15 21:46+0100\n" "POT-Creation-Date: 2011-11-20 10:55+0100\n"
"PO-Revision-Date: 2011-07-25 16:40+0200\n" "PO-Revision-Date: 2011-07-25 16:40+0200\n"
"Last-Translator: Galen/xFede\n" "Last-Translator: Galen/xFede\n"
"Language-Team: Penn, SirPalax, hvy109\n" "Language-Team: Penn, SirPalax, hvy109\n"
"Language: \n"
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=utf-8\n" "Content-Type: text/plain; charset=utf-8\n"
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
"Language: \n"
msgid " could not be downloaded." msgid " could not be downloaded."
msgstr " no se han podido descargar." msgstr " no se han podido descargar."
@ -1495,6 +1495,9 @@ msgstr "Tema extraido correctamente."
msgid "Successfully installed:" msgid "Successfully installed:"
msgstr "Instalado correctamente:" msgstr "Instalado correctamente:"
msgid "Switching to channel list mode."
msgstr ""
msgid "Sync FAT32 FS Info" msgid "Sync FAT32 FS Info"
msgstr "Sinc. Esp. Libre (FAT32)" msgstr "Sinc. Esp. Libre (FAT32)"
@ -1571,8 +1574,8 @@ msgstr "InfoBurbujas"
msgid "Transfer failed" msgid "Transfer failed"
msgstr "Transferencia fallida" msgstr "Transferencia fallida"
msgid "USB Device not found" msgid "USB Device not found."
msgstr "USB no encontrado" msgstr ""
msgid "USB Loader GX is protected" msgid "USB Loader GX is protected"
msgstr "USB Loader GX está protegido" msgstr "USB Loader GX está protegido"
@ -1734,12 +1737,12 @@ msgstr "Estás usando el IOS"
msgid "You are trying to select a FAT32/NTFS/EXT partition with cIOS 249 Rev < 18. This is not supported. Continue on your own risk." msgid "You are trying to select a FAT32/NTFS/EXT partition with cIOS 249 Rev < 18. This is not supported. Continue on your own risk."
msgstr "Estás intentando seleccionar una partición FAT32/NTFS/EXT con cIOS 249 Rev < 18. Esto no es soportado. Continúa bajo tu propio riesgo." msgstr "Estás intentando seleccionar una partición FAT32/NTFS/EXT con cIOS 249 Rev < 18. Esto no es soportado. Continúa bajo tu propio riesgo."
msgid "You can select or format a partition or use the channel loader mode."
msgstr ""
msgid "You cannot delete this category." msgid "You cannot delete this category."
msgstr "No puedes borrar esta categoría." msgstr "No puedes borrar esta categoría."
msgid "You need to select or format a partition"
msgstr "Necesitas seleccionar o formatear una partición"
msgid "and translators for language files updates" msgid "and translators for language files updates"
msgstr "y traductores por los archivos de idiomas" msgstr "y traductores por los archivos de idiomas"
@ -1794,6 +1797,12 @@ msgstr "de"
msgid "seconds left" msgid "seconds left"
msgstr "segundos restantes" msgstr "segundos restantes"
#~ msgid "USB Device not found"
#~ msgstr "USB no encontrado"
#~ msgid "You need to select or format a partition"
#~ msgstr "Necesitas seleccionar o formatear una partición"
#~ msgid "Language File" #~ msgid "Language File"
#~ msgstr "Idiomas" #~ msgstr "Idiomas"

View File

@ -5,14 +5,14 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: USB Loader GX\n" "Project-Id-Version: USB Loader GX\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2011-11-15 21:46+0100\n" "POT-Creation-Date: 2011-11-20 10:55+0100\n"
"PO-Revision-Date: 2010-01-19 17:39+0200\n" "PO-Revision-Date: 2010-01-19 17:39+0200\n"
"Last-Translator: Katsurou\n" "Last-Translator: Katsurou\n"
"Language-Team: Katsurou, pirateX\n" "Language-Team: Katsurou, pirateX\n"
"Language: \n"
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=utf-8\n" "Content-Type: text/plain; charset=utf-8\n"
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
"Language: \n"
msgid " could not be downloaded." msgid " could not be downloaded."
msgstr "Kunde inte laddas ner." msgstr "Kunde inte laddas ner."
@ -1495,6 +1495,9 @@ msgstr "Extrahering av tema lyckades."
msgid "Successfully installed:" msgid "Successfully installed:"
msgstr "Lyckad installation av:" msgstr "Lyckad installation av:"
msgid "Switching to channel list mode."
msgstr ""
msgid "Sync FAT32 FS Info" msgid "Sync FAT32 FS Info"
msgstr "" msgstr ""
@ -1571,8 +1574,8 @@ msgstr "Verktygstips"
msgid "Transfer failed" msgid "Transfer failed"
msgstr "" msgstr ""
msgid "USB Device not found" msgid "USB Device not found."
msgstr "USB-enhet ej hittad" msgstr ""
msgid "USB Loader GX is protected" msgid "USB Loader GX is protected"
msgstr "USB Loader GX är skyddad" msgstr "USB Loader GX är skyddad"
@ -1734,11 +1737,11 @@ msgstr ""
msgid "You are trying to select a FAT32/NTFS/EXT partition with cIOS 249 Rev < 18. This is not supported. Continue on your own risk." msgid "You are trying to select a FAT32/NTFS/EXT partition with cIOS 249 Rev < 18. This is not supported. Continue on your own risk."
msgstr "" msgstr ""
msgid "You cannot delete this category." msgid "You can select or format a partition or use the channel loader mode."
msgstr "" msgstr ""
msgid "You need to select or format a partition" msgid "You cannot delete this category."
msgstr "Du måste välja eller formatera en partition" msgstr ""
msgid "and translators for language files updates" msgid "and translators for language files updates"
msgstr "" msgstr ""
@ -1794,6 +1797,12 @@ msgstr "av"
msgid "seconds left" msgid "seconds left"
msgstr "sekunder kvar" msgstr "sekunder kvar"
#~ msgid "USB Device not found"
#~ msgstr "USB-enhet ej hittad"
#~ msgid "You need to select or format a partition"
#~ msgstr "Du måste välja eller formatera en partition"
#~ msgid "Language File" #~ msgid "Language File"
#~ msgstr "Språk fil" #~ msgstr "Språk fil"

View File

@ -5,14 +5,14 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: USB Loader GX\n" "Project-Id-Version: USB Loader GX\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2011-11-15 21:46+0100\n" "POT-Creation-Date: 2011-11-20 10:55+0100\n"
"PO-Revision-Date: 2010-02-15 21:00+0800\n" "PO-Revision-Date: 2010-02-15 21:00+0800\n"
"Last-Translator: Jane.H\n" "Last-Translator: Jane.H\n"
"Language-Team: kyogc, Miller, Mika Li, Jane.H\n" "Language-Team: kyogc, Miller, Mika Li, Jane.H\n"
"Language: \n"
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=utf-8\n" "Content-Type: text/plain; charset=utf-8\n"
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
"Language: \n"
msgid " could not be downloaded." msgid " could not be downloaded."
msgstr "不能下載。" msgstr "不能下載。"
@ -1495,6 +1495,9 @@ msgstr "成功獲取主題。"
msgid "Successfully installed:" msgid "Successfully installed:"
msgstr "成功安裝:" msgstr "成功安裝:"
msgid "Switching to channel list mode."
msgstr ""
msgid "Sync FAT32 FS Info" msgid "Sync FAT32 FS Info"
msgstr "同步FAT32檔案系統資訊" msgstr "同步FAT32檔案系統資訊"
@ -1571,8 +1574,8 @@ msgstr "提示信息"
msgid "Transfer failed" msgid "Transfer failed"
msgstr "傳輸失敗" msgstr "傳輸失敗"
msgid "USB Device not found" msgid "USB Device not found."
msgstr "找不到 USB 設備" msgstr ""
msgid "USB Loader GX is protected" msgid "USB Loader GX is protected"
msgstr "USB Loader GX 被上鎖保護" msgstr "USB Loader GX 被上鎖保護"
@ -1734,12 +1737,12 @@ msgstr "目前你使用中的IOS"
msgid "You are trying to select a FAT32/NTFS/EXT partition with cIOS 249 Rev < 18. This is not supported. Continue on your own risk." msgid "You are trying to select a FAT32/NTFS/EXT partition with cIOS 249 Rev < 18. This is not supported. Continue on your own risk."
msgstr "你嘗試用高於 cIOS 249 版本18去選取 FAT32/NTFS/EXT 磁區。這格式不支援。繼續請自行承擔風險。" msgstr "你嘗試用高於 cIOS 249 版本18去選取 FAT32/NTFS/EXT 磁區。這格式不支援。繼續請自行承擔風險。"
msgid "You can select or format a partition or use the channel loader mode."
msgstr ""
msgid "You cannot delete this category." msgid "You cannot delete this category."
msgstr "無法刪除此類別。" msgstr "無法刪除此類別。"
msgid "You need to select or format a partition"
msgstr "選擇你要格式化的磁區"
msgid "and translators for language files updates" msgid "and translators for language files updates"
msgstr "及對所有語言檔更新的翻譯者" msgstr "及對所有語言檔更新的翻譯者"
@ -1794,6 +1797,12 @@ msgstr "的"
msgid "seconds left" msgid "seconds left"
msgstr "剩餘秒數" msgstr "剩餘秒數"
#~ msgid "USB Device not found"
#~ msgstr "找不到 USB 設備"
#~ msgid "You need to select or format a partition"
#~ msgstr "選擇你要格式化的磁區"
#~ msgid "Are you sure you want to import game categories from WiiTDB?" #~ msgid "Are you sure you want to import game categories from WiiTDB?"
#~ msgstr "確定要從WiiTDB匯入遊戲類別嗎" #~ msgstr "確定要從WiiTDB匯入遊戲類別嗎"

View File

@ -5,14 +5,14 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: USB Loader GX\n" "Project-Id-Version: USB Loader GX\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2011-11-15 21:46+0100\n" "POT-Creation-Date: 2011-11-20 10:55+0100\n"
"PO-Revision-Date: 2009-10-01 01:00+0200\n" "PO-Revision-Date: 2009-10-01 01:00+0200\n"
"Last-Translator: Nitro_subzero \n" "Last-Translator: Nitro_subzero \n"
"Language-Team: Nitro_subzero\n" "Language-Team: Nitro_subzero\n"
"Language: \n"
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=utf-8\n" "Content-Type: text/plain; charset=utf-8\n"
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
"Language: \n"
msgid " could not be downloaded." msgid " could not be downloaded."
msgstr " ไม่สามารถดาวน์โหลดได้" msgstr " ไม่สามารถดาวน์โหลดได้"
@ -1495,6 +1495,9 @@ msgstr "ขยายไฟล์ธีมสำเร็จ."
msgid "Successfully installed:" msgid "Successfully installed:"
msgstr "ติดตั้งสำเร็จ:" msgstr "ติดตั้งสำเร็จ:"
msgid "Switching to channel list mode."
msgstr ""
msgid "Sync FAT32 FS Info" msgid "Sync FAT32 FS Info"
msgstr "" msgstr ""
@ -1571,8 +1574,8 @@ msgstr "คำแนะนำ"
msgid "Transfer failed" msgid "Transfer failed"
msgstr "" msgstr ""
msgid "USB Device not found" msgid "USB Device not found."
msgstr "ไม่พบอุปกรณ์ USB" msgstr ""
msgid "USB Loader GX is protected" msgid "USB Loader GX is protected"
msgstr "USB Loader GX 5 ถูกป้องกัน" msgstr "USB Loader GX 5 ถูกป้องกัน"
@ -1734,10 +1737,10 @@ msgstr ""
msgid "You are trying to select a FAT32/NTFS/EXT partition with cIOS 249 Rev < 18. This is not supported. Continue on your own risk." msgid "You are trying to select a FAT32/NTFS/EXT partition with cIOS 249 Rev < 18. This is not supported. Continue on your own risk."
msgstr "" msgstr ""
msgid "You cannot delete this category." msgid "You can select or format a partition or use the channel loader mode."
msgstr "" msgstr ""
msgid "You need to select or format a partition" msgid "You cannot delete this category."
msgstr "" msgstr ""
msgid "and translators for language files updates" msgid "and translators for language files updates"
@ -1794,6 +1797,9 @@ msgstr "จาก"
msgid "seconds left" msgid "seconds left"
msgstr "วินาทีที่เหลือ" msgstr "วินาทีที่เหลือ"
#~ msgid "USB Device not found"
#~ msgstr "ไม่พบอุปกรณ์ USB"
#~ msgid "Language File" #~ msgid "Language File"
#~ msgstr "ไฟล์ภาษา" #~ msgstr "ไฟล์ภาษา"

View File

@ -5,14 +5,14 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: USB Loader GX\n" "Project-Id-Version: USB Loader GX\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2011-11-15 21:46+0100\n" "POT-Creation-Date: 2011-11-20 10:55+0100\n"
"PO-Revision-Date: 2009-10-01 01:00+0200\n" "PO-Revision-Date: 2009-10-01 01:00+0200\n"
"Last-Translator: omercigingelini\n" "Last-Translator: omercigingelini\n"
"Language-Team: omercigingelini\n" "Language-Team: omercigingelini\n"
"Language: \n"
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=utf-8\n" "Content-Type: text/plain; charset=utf-8\n"
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
"Language: \n"
msgid " could not be downloaded." msgid " could not be downloaded."
msgstr " indirilemedi." msgstr " indirilemedi."
@ -1495,6 +1495,9 @@ msgstr "Tema başarıyla çıkarıldı."
msgid "Successfully installed:" msgid "Successfully installed:"
msgstr "Başarıyla kuruldu:" msgstr "Başarıyla kuruldu:"
msgid "Switching to channel list mode."
msgstr ""
msgid "Sync FAT32 FS Info" msgid "Sync FAT32 FS Info"
msgstr "" msgstr ""
@ -1571,8 +1574,8 @@ msgstr "Yardımlar"
msgid "Transfer failed" msgid "Transfer failed"
msgstr "" msgstr ""
msgid "USB Device not found" msgid "USB Device not found."
msgstr "USB Aygıtı bulunamadı" msgstr ""
msgid "USB Loader GX is protected" msgid "USB Loader GX is protected"
msgstr "USB Loader GX koruma altında" msgstr "USB Loader GX koruma altında"
@ -1734,11 +1737,11 @@ msgstr ""
msgid "You are trying to select a FAT32/NTFS/EXT partition with cIOS 249 Rev < 18. This is not supported. Continue on your own risk." msgid "You are trying to select a FAT32/NTFS/EXT partition with cIOS 249 Rev < 18. This is not supported. Continue on your own risk."
msgstr "" msgstr ""
msgid "You cannot delete this category." msgid "You can select or format a partition or use the channel loader mode."
msgstr "" msgstr ""
msgid "You need to select or format a partition" msgid "You cannot delete this category."
msgstr "Bir bölüm seçmeniz ya da formatlamanız gerekiyor" msgstr ""
msgid "and translators for language files updates" msgid "and translators for language files updates"
msgstr "" msgstr ""
@ -1794,6 +1797,12 @@ msgstr "./"
msgid "seconds left" msgid "seconds left"
msgstr "saniye kaldı" msgstr "saniye kaldı"
#~ msgid "USB Device not found"
#~ msgstr "USB Aygıtı bulunamadı"
#~ msgid "You need to select or format a partition"
#~ msgstr "Bir bölüm seçmeniz ya da formatlamanız gerekiyor"
#~ msgid "Language File" #~ msgid "Language File"
#~ msgstr "Dil dosyası" #~ msgstr "Dil dosyası"

View File

@ -62,9 +62,9 @@ endif
#--------------------------------------------------------------------------------- #---------------------------------------------------------------------------------
# options for code generation # options for code generation
#--------------------------------------------------------------------------------- #---------------------------------------------------------------------------------
CFLAGS = -g -O3 -Wall -Wno-multichar -Wno-unused-parameter -Wextra $(MACHDEP) $(INCLUDE) -DBUILD_IOS=$(IOS) CFLAGS = -g -ggdb -O3 -Wall -Wno-multichar -Wno-unused-parameter -Wextra $(MACHDEP) $(INCLUDE) -DBUILD_IOS=$(IOS)
CXXFLAGS = $(CFLAGS) CXXFLAGS = $(CFLAGS)
LDFLAGS = -g $(MACHDEP) -Wl,-Map,$(notdir $@).map,--section-start,.init=0x80B00000,-wrap,malloc,-wrap,free,-wrap,memalign,-wrap,calloc,-wrap,realloc,-wrap,malloc_usable_size LDFLAGS = -g -ggdb $(MACHDEP) -Wl,-Map,$(notdir $@).map,--section-start,.init=0x80B00000,-wrap,malloc,-wrap,free,-wrap,memalign,-wrap,calloc,-wrap,realloc,-wrap,malloc_usable_size
ifeq ($(BUILDMODE),channel) ifeq ($(BUILDMODE),channel)
CFLAGS += -DFULLCHANNEL CFLAGS += -DFULLCHANNEL

View File

@ -1,18 +1,18 @@
#define STUB 0x3400 #define STUB 0x3400
.text .text
.section .text .section .text
.globl _unstub_start .globl _unstub_start
_unstub_start: _unstub_start:
isync isync
// set MSR[DR:IR] = 00, jump to STUB // set MSR[DR:IR] = 00, jump to STUB
lis 3,STUB@h lis 3,STUB@h
ori 3,3,STUB@l ori 3,3,STUB@l
mtsrr0 3 mtsrr0 3
mfmsr 3 mfmsr 3
li 4,0x30 li 4,0x30
andc 3,3,4 andc 3,3,4
mtsrr1 3 mtsrr1 3
rfi rfi

View File

@ -51,19 +51,19 @@ Channels *Channels::instance = NULL;
void Channels::GetEmuChannelList() void Channels::GetEmuChannelList()
{ {
EmuChannels.clear(); EmuChannels.clear();
char filepath[1024]; char filepath[1024];
int language = CONF_GetLanguage(); int language = CONF_GetLanguage();
snprintf(filepath, sizeof(filepath), "%s/title/00010001", Settings.NandEmuChanPath); snprintf(filepath, sizeof(filepath), "%s/title/00010001", Settings.NandEmuChanPath);
ParseTitleDir(filepath, language); ParseTitleDir(filepath, language);
snprintf(filepath, sizeof(filepath), "%s/title/00010004", Settings.NandEmuChanPath); snprintf(filepath, sizeof(filepath), "%s/title/00010004", Settings.NandEmuChanPath);
ParseTitleDir(filepath, language); ParseTitleDir(filepath, language);
snprintf(filepath, sizeof(filepath), "%s/title/00010002", Settings.NandEmuChanPath); snprintf(filepath, sizeof(filepath), "%s/title/00010002", Settings.NandEmuChanPath);
ParseTitleDir(filepath, language); ParseTitleDir(filepath, language);
} }
void Channels::GetChannelList() void Channels::GetChannelList()
@ -80,29 +80,29 @@ void Channels::GetChannelList()
if (!tid) if (!tid)
break; break;
//remove ones not actually installed on the nand //remove ones not actually installed on the nand
if (!NandTitles.Exists(tid)) if (!NandTitles.Exists(tid))
continue; continue;
char id[5]; char id[5];
NandTitles.AsciiTID(tid, id); NandTitles.AsciiTID(tid, id);
const char *name = GameTitles.GetTitle(id); const char *name = GameTitles.GetTitle(id);
std::string TitleName; std::string TitleName;
if(!name || *name == '\0') if(!name || *name == '\0')
{ {
name = NandTitles.NameOf(tid); name = NandTitles.NameOf(tid);
// Set title for caching // Set title for caching
if(name) if(name)
GameTitles.SetGameTitle(id, name); GameTitles.SetGameTitle(id, name);
} }
int s = NandChannels.size(); int s = NandChannels.size();
NandChannels.resize(s + 1); NandChannels.resize(s + 1);
memset(&NandChannels[s], 0, sizeof(struct discHdr)); memset(&NandChannels[s], 0, sizeof(struct discHdr));
memcpy(NandChannels[s].id, id, 4); memcpy(NandChannels[s].id, id, 4);
NandChannels[s].tid = tid; NandChannels[s].tid = tid;
strncpy(NandChannels[s].title, name ? name : "", sizeof(NandChannels[s].title)-1); strncpy(NandChannels[s].title, name ? name : "", sizeof(NandChannels[s].title)-1);
} }
// Get count of system titles // Get count of system titles
@ -121,25 +121,25 @@ void Channels::GetChannelList()
if (!NandTitles.Exists(tid)) if (!NandTitles.Exists(tid))
continue; continue;
char id[5]; char id[5];
NandTitles.AsciiTID(tid, id); NandTitles.AsciiTID(tid, id);
const char *name = GameTitles.GetTitle(id); const char *name = GameTitles.GetTitle(id);
std::string TitleName; std::string TitleName;
if(!name || *name == '\0') if(!name || *name == '\0')
{ {
name = NandTitles.NameOf(tid); name = NandTitles.NameOf(tid);
// Set title for caching // Set title for caching
if(name) if(name)
GameTitles.SetGameTitle(id, name); GameTitles.SetGameTitle(id, name);
} }
int s = NandChannels.size(); int s = NandChannels.size();
NandChannels.resize(s + 1); NandChannels.resize(s + 1);
memset(&NandChannels[s], 0, sizeof(struct discHdr)); memset(&NandChannels[s], 0, sizeof(struct discHdr));
memcpy(NandChannels[s].id, id, 4); memcpy(NandChannels[s].id, id, 4);
NandChannels[s].tid = tid; NandChannels[s].tid = tid;
strncpy(NandChannels[s].title, name ? name : "", sizeof(NandChannels[s].title)-1); strncpy(NandChannels[s].title, name ? name : "", sizeof(NandChannels[s].title)-1);
} }
ISFS_Deinitialize(); ISFS_Deinitialize();
@ -147,45 +147,32 @@ void Channels::GetChannelList()
vector<struct discHdr> & Channels::GetDiscHeaderList(void) vector<struct discHdr> & Channels::GetDiscHeaderList(void)
{ {
if(Settings.NandEmuChanMode != 0) if(Settings.NandEmuChanMode != 0)
{ {
if(EmuChannels.empty()) if(EmuChannels.empty())
this->GetEmuChannelList(); this->GetEmuChannelList();
return EmuChannels; return EmuChannels;
} }
else else
{ {
if(NandChannels.empty()) if(NandChannels.empty())
this->GetChannelList(); this->GetChannelList();
return NandChannels; return NandChannels;
} }
} }
u8 * Channels::GetDol(u64 title) u8 * Channels::GetDol(const u64 &title, u8 *tmdBuffer)
{ {
char *filepath = (char *) memalign(32, ISFS_MAXPATH); bool found = false;
if(!filepath) u8 *buffer = NULL;
return NULL; u32 filesize = 0;
u32 bootcontent; u32 bootcontent;
u32 high = TITLE_UPPER(title); u32 high = TITLE_UPPER(title);
u32 low = TITLE_LOWER(title); u32 low = TITLE_LOWER(title);
snprintf(filepath, ISFS_MAXPATH, "/title/%08x/%08x/content/title.tmd", high, low); _tmd * tmd_file = (_tmd *) SIGNATURE_PAYLOAD((u32 *)tmdBuffer);
u8 *buffer = NULL;
u32 filesize = 0;
if (NandTitle::LoadFileFromNand(filepath, &buffer, &filesize, false) < 0)
{
free(filepath);
return NULL;
}
_tmd * tmd_file = (_tmd *) SIGNATURE_PAYLOAD((u32 *)buffer);
bool found = false;
for(u32 i = 0; i < tmd_file->num_contents; ++i) for(u32 i = 0; i < tmd_file->num_contents; ++i)
{ {
if(tmd_file->contents[i].index == tmd_file->boot_index) if(tmd_file->contents[i].index == tmd_file->boot_index)
@ -196,15 +183,12 @@ u8 * Channels::GetDol(u64 title)
} }
} }
free(buffer);
buffer = NULL;
filesize = 0;
if(!found) if(!found)
{ return NULL;
free(filepath);
return NULL; char *filepath = (char *) memalign(32, ISFS_MAXPATH);
} if(!filepath)
return NULL;
snprintf(filepath, ISFS_MAXPATH, "/title/%08x/%08x/content/%08x.app", high, low, bootcontent); snprintf(filepath, ISFS_MAXPATH, "/title/%08x/%08x/content/%08x.app", high, low, bootcontent);
gprintf("Loading Channel DOL: %s\n", filepath); gprintf("Loading Channel DOL: %s\n", filepath);
@ -212,68 +196,111 @@ u8 * Channels::GetDol(u64 title)
if (NandTitle::LoadFileFromNand(filepath, &buffer, &filesize, false) < 0) if (NandTitle::LoadFileFromNand(filepath, &buffer, &filesize, false) < 0)
{ {
gprintf("Failed loading DOL file\n"); gprintf("Failed loading DOL file\n");
free(filepath); free(filepath);
return NULL; return NULL;
} }
free(filepath); free(filepath);
if (isLZ77compressed(buffer)) if (isLZ77compressed(buffer))
{ {
u8 *decompressed = NULL; u8 *decompressed = NULL;
u32 size = 0; u32 size = 0;
if (decompressLZ77content(buffer, filesize, &decompressed, &size) < 0) if (decompressLZ77content(buffer, filesize, &decompressed, &size) < 0)
{ {
gprintf("Decompression failed\n"); gprintf("Decompression failed\n");
free(buffer); free(buffer);
return NULL; return NULL;
} }
free(buffer); free(buffer);
buffer = decompressed; buffer = decompressed;
filesize = size; filesize = size;
} }
return buffer; return buffer;
} }
u8 Channels::GetRequestedIOS(u64 title) u8 Channels::GetRequestedIOS(const u64 &title)
{ {
u8 IOS = 0; u8 IOS = 0;
char *filepath = (char *) memalign(32, ISFS_MAXPATH); u32 tmdSize = 0;
if(!filepath) u8 *titleTMD = GetTMD(title, &tmdSize, true, "");
return 0; if (!titleTMD)
return 0;
snprintf(filepath, ISFS_MAXPATH, "/title/%08x/%08x/content/title.tmd", TITLE_UPPER(title), TITLE_LOWER(title)); if(tmdSize > 0x18B)
u8 *titleTMD = NULL;
u32 filesize = 0;
if (NandTitle::LoadFileFromNand(filepath, &titleTMD, &filesize, false) < 0)
{
free(filepath);
return 0;
}
if(filesize > 0x18B)
IOS = titleTMD[0x18B]; IOS = titleTMD[0x18B];
free(titleTMD); free(titleTMD);
free(filepath);
return IOS; return IOS;
} }
u32 Channels::LoadChannel(u64 chantitle) u8 *Channels::GetTMD(const u64 &tid, u32 *size, bool isfsInit, const char *prefix)
{
char *filepath = (char *) memalign(32, ISFS_MAXPATH);
if(!filepath)
return NULL;
if(!prefix)
prefix = "";
sprintf(filepath, "%s/title/%08x/%08x/content/title.tmd", prefix, TITLE_UPPER(tid), TITLE_LOWER(tid));
u8 *tmdBuffer = NULL;
u32 tmdSize = 0;
int ret;
if(*prefix != '\0')
ret = LoadFileToMem(filepath, &tmdBuffer, &tmdSize);
else
ret = NandTitle::LoadFileFromNand(filepath, &tmdBuffer, &tmdSize, isfsInit);
free(filepath);
if (ret < 0)
{
gprintf("Reading TMD...Failed!\n");
if(tmdBuffer)
free(tmdBuffer);
return NULL;
}
if(size)
*size = tmdSize;
return tmdBuffer;
}
u32 Channels::LoadChannel(const u64 &chantitle)
{ {
ISFS_Initialize(); ISFS_Initialize();
u8 *chanDOL = GetDol(chantitle);
if(!chanDOL)
return 0;
u32 ios = 0; u32 ios = 0;
Identify(chantitle, &ios); u32 tmdSize = 0;
u8 *tmdBuffer = GetTMD(chantitle, &tmdSize, false, "");
if(!tmdBuffer)
{
ISFS_Deinitialize();
return 0;
}
u8 *chanDOL = GetDol(chantitle, tmdBuffer);
if(!chanDOL)
{
ISFS_Deinitialize();
free(tmdBuffer);
return 0;
}
if(tmdSize > 0x18B)
ios = tmdBuffer[0x18B];
Identify(chantitle, tmdBuffer, tmdSize);
free(tmdBuffer);
dolheader *dolfile = (dolheader *)chanDOL; dolheader *dolfile = (dolheader *)chanDOL;
@ -298,7 +325,7 @@ u32 Channels::LoadChannel(u64 chantitle)
memmove (dolChunkOffset, chanDOL + dolfile->section_pos[i], dolChunkSize); memmove (dolChunkOffset, chanDOL + dolfile->section_pos[i], dolChunkSize);
DCFlushRange(dolChunkOffset, dolChunkSize); DCFlushRange(dolChunkOffset, dolChunkSize);
RegisterDOL(dolChunkOffset, dolChunkSize); RegisterDOL(dolChunkOffset, dolChunkSize);
} }
u32 chanEntryPoint = dolfile->entry_point; u32 chanEntryPoint = dolfile->entry_point;
@ -339,30 +366,18 @@ static bool Identify_GenerateTik(signed_blob **outbuf, u32 *outlen)
return true; return true;
} }
bool Channels::Identify(u64 titleid, u32 *ios) bool Channels::Identify(const u64 &titleid, u8 *tmdBuffer, u32 tmdSize)
{ {
char *filepath = (char *) memalign(32, ISFS_MAXPATH); char *filepath = (char *) memalign(32, ISFS_MAXPATH);
if(!filepath)
sprintf(filepath, "/title/%08x/%08x/content/title.tmd", TITLE_UPPER(titleid), TITLE_LOWER(titleid)); return false;
u8 *tmdBuffer = NULL;
u32 tmdSize = 0;
if (NandTitle::LoadFileFromNand(filepath, &tmdBuffer, &tmdSize, false) < 0)
{
free(filepath);
gprintf("Reading TMD...Failed!\n");
return false;
}
*ios = (u32)(tmdBuffer[0x18b]);
u32 tikSize; u32 tikSize;
signed_blob *tikBuffer = NULL; signed_blob *tikBuffer = NULL;
if(!Identify_GenerateTik(&tikBuffer,&tikSize)) if(!Identify_GenerateTik(&tikBuffer,&tikSize))
{ {
free(tmdBuffer); free(filepath);
free(filepath);
gprintf("Generating fake ticket...Failed!"); gprintf("Generating fake ticket...Failed!");
return false; return false;
} }
@ -373,10 +388,9 @@ bool Channels::Identify(u64 titleid, u32 *ios)
if (NandTitle::LoadFileFromNand(filepath, &certBuffer, &certSize, false) < 0) if (NandTitle::LoadFileFromNand(filepath, &certBuffer, &certSize, false) < 0)
{ {
gprintf("Reading certs...Failed!\n"); gprintf("Reading certs...Failed!\n");
free(tmdBuffer); free(tikBuffer);
free(tikBuffer); free(filepath);
free(filepath); return false;
return false;
} }
s32 ret = ES_Identify((signed_blob*)certBuffer, certSize, (signed_blob*)tmdBuffer, tmdSize, tikBuffer, tikSize, NULL); s32 ret = ES_Identify((signed_blob*)certBuffer, certSize, (signed_blob*)tmdBuffer, tmdSize, tikBuffer, tikSize, NULL);
if (ret < 0) if (ret < 0)
@ -401,9 +415,8 @@ bool Channels::Identify(u64 titleid, u32 *ios)
} }
} }
free(tmdBuffer); free(tikBuffer);
free(tikBuffer); free(filepath);
free(filepath);
free(certBuffer); free(certBuffer);
return ret < 0 ? false : true; return ret < 0 ? false : true;
@ -435,7 +448,7 @@ bool Channels::ParseTitleDir(char *path, int language)
if(!dirent->d_name) if(!dirent->d_name)
continue; continue;
//these can't be booted anyways //these can't be booted anyways
if(*dirent->d_name == '.' || strcmp(dirent->d_name, "48414141") == 0 || strcmp(dirent->d_name, "48414641") == 0) if(*dirent->d_name == '.' || strcmp(dirent->d_name, "48414141") == 0 || strcmp(dirent->d_name, "48414641") == 0)
{ {
continue; continue;
@ -457,28 +470,28 @@ bool Channels::ParseTitleDir(char *path, int language)
if(tid == 0x00010001AF1BF516LL || tid == 0x0001000148415858LL) if(tid == 0x00010001AF1BF516LL || tid == 0x0001000148415858LL)
strcpy(id, "JODI"); strcpy(id, "JODI");
std::string TitleName; std::string TitleName;
const char *title = GameTitles.GetTitle(id); const char *title = GameTitles.GetTitle(id);
if(title && *title != '\0') if(title && *title != '\0')
{ {
TitleName = title; TitleName = title;
} }
else if(GetEmuChanTitle(path, language, TitleName)) else if(GetEmuChanTitle(path, language, TitleName))
{ {
GameTitles.SetGameTitle(id, TitleName.c_str()); GameTitles.SetGameTitle(id, TitleName.c_str());
} }
else else
{ {
TitleName = id; TitleName = id;
} }
int s = EmuChannels.size(); int s = EmuChannels.size();
EmuChannels.resize(s + 1); EmuChannels.resize(s + 1);
memset(&EmuChannels[s], 0, sizeof(struct discHdr)); memset(&EmuChannels[s], 0, sizeof(struct discHdr));
memcpy(EmuChannels[s].id, id, 4); memcpy(EmuChannels[s].id, id, 4);
EmuChannels[s].tid = tid; EmuChannels[s].tid = tid;
strncpy(EmuChannels[s].title, TitleName.c_str(), sizeof(EmuChannels[s].title)-1); strncpy(EmuChannels[s].title, TitleName.c_str(), sizeof(EmuChannels[s].title)-1);
} }
closedir(dir); closedir(dir);
@ -569,15 +582,15 @@ bool Channels::GetEmuChanTitle(char *tmdpath, int language, std::string &Title)
for (int i = 0; i < IMET_MAX_NAME_LEN; i++) for (int i = 0; i < IMET_MAX_NAME_LEN; i++)
wName[i] = imet->name_japanese[i + (language * IMET_MAX_NAME_LEN)]; wName[i] = imet->name_japanese[i + (language * IMET_MAX_NAME_LEN)];
wString wsname(wName); wString wsname(wName);
Title = wsname.toUTF8(); Title = wsname.toUTF8();
free(imet); free(imet);
return true; return true;
} }
u8 *Channels::GetOpeningBnr(u64 title) u8 *Channels::GetOpeningBnr(const u64 &title)
{ {
u8 *banner = NULL; u8 *banner = NULL;
u32 high = TITLE_UPPER(title); u32 high = TITLE_UPPER(title);

View File

@ -35,27 +35,28 @@ using namespace std;
class Channels class Channels
{ {
public: public:
static Channels *Instance(void) { if(!instance) instance = new Channels(); return instance; } static Channels *Instance(void) { if(!instance) instance = new Channels(); return instance; }
static void DestroyInstance(void) { if(instance) delete instance; instance = NULL; } static void DestroyInstance(void) { if(instance) delete instance; instance = NULL; }
static u32 LoadChannel(u64 chantitle); static u32 LoadChannel(const u64 &chantitle);
static u8 GetRequestedIOS(u64 title); static u8 GetRequestedIOS(const u64 &title);
static u8 *GetDol(u64 title); static u8 *GetTMD(const u64 &tid, u32 *size, bool isfsInit, const char *prefix);
static u8 *GetOpeningBnr(u64 title); static u8 *GetDol(const u64 &title, u8 *tmdBuffer);
static u8 *GetOpeningBnr(const u64 &title);
void GetChannelList(); void GetChannelList();
void GetEmuChannelList(); void GetEmuChannelList();
vector<struct discHdr> & GetDiscHeaderList(void); vector<struct discHdr> & GetDiscHeaderList(void);
private: private:
static Channels *instance; static Channels *instance;
static bool Identify(u64 titleid, u32 *ios); static bool Identify(const u64 &titleid, u8 *tmdBuffer, u32 tmdSize);
bool ParseTitleDir(char *path, int language); bool ParseTitleDir(char *path, int language);
bool GetEmuChanTitle(char *tmdpath, int language, std::string &Title); bool GetEmuChanTitle(char *tmdpath, int language, std::string &Title);
vector<struct discHdr> NandChannels; vector<struct discHdr> NandChannels;
vector<struct discHdr> EmuChannels; vector<struct discHdr> EmuChannels;
}; };
#endif #endif

View File

@ -40,6 +40,18 @@ StartUpProcess::StartUpProcess()
messageTxt = new GuiText(" ", 22, (GXColor) {255, 255, 255, 255}); messageTxt = new GuiText(" ", 22, (GXColor) {255, 255, 255, 255});
messageTxt->SetAlignment(ALIGN_CENTER, ALIGN_MIDDLE); messageTxt->SetAlignment(ALIGN_CENTER, ALIGN_MIDDLE);
messageTxt->SetPosition(screenwidth/2, screenheight/2+60); messageTxt->SetPosition(screenwidth/2, screenheight/2+60);
cancelTxt = new GuiText("Press B to cancel", 18, (GXColor) {255, 255, 255, 255});
cancelTxt->SetAlignment(ALIGN_CENTER, ALIGN_MIDDLE);
cancelTxt->SetPosition(screenwidth/2, screenheight/2+90);
trigB = new GuiTrigger;
trigB->SetButtonOnlyTrigger(-1, WPAD_BUTTON_B | WPAD_CLASSIC_BUTTON_B, PAD_BUTTON_B);
cancelBtn = new GuiButton(0, 0);
cancelBtn->SetTrigger(trigB);
drawCancel = false;
} }
StartUpProcess::~StartUpProcess() StartUpProcess::~StartUpProcess()
@ -48,7 +60,9 @@ StartUpProcess::~StartUpProcess()
delete GXImageData; delete GXImageData;
delete GXImage; delete GXImage;
delete titleTxt; delete titleTxt;
delete messageTxt; delete cancelTxt;
delete cancelBtn;
delete trigB;
} }
int StartUpProcess::ParseArguments(int argc, char *argv[]) int StartUpProcess::ParseArguments(int argc, char *argv[])
@ -123,22 +137,33 @@ void StartUpProcess::SetTextf(const char * format, ...)
bool StartUpProcess::USBSpinUp() bool StartUpProcess::USBSpinUp()
{ {
drawCancel = true;
bool started = false; bool started = false;
const DISC_INTERFACE * handle = Settings.USBPort == 1 ? DeviceHandler::GetUSB1Interface() : DeviceHandler::GetUSB0Interface(); const DISC_INTERFACE * handle = Settings.USBPort == 1 ? DeviceHandler::GetUSB1Interface() : DeviceHandler::GetUSB0Interface();
Timer countDown; Timer countDown;
// wait 10 sec for the USB to spin up...stupid slow ass HDD // wait 20 sec for the USB to spin up...stupid slow ass HDD
do do
{ {
started = (handle->startup() && handle->isInserted()); started = (handle->startup() && handle->isInserted());
if(started) if(started)
break; break;
UpdatePads();
for(int i = 0; i < 4; ++i)
cancelBtn->Update(&userInput[i]);
if(cancelBtn->GetState() == STATE_CLICKED)
break;
messageTxt->SetTextf("Waiting for HDD: %i sec left\n", 20-(int)countDown.elapsed()); messageTxt->SetTextf("Waiting for HDD: %i sec left\n", 20-(int)countDown.elapsed());
Draw(); Draw();
usleep(50000); usleep(50000);
} }
while(countDown.elapsed() < 20.f); while(countDown.elapsed() < 20.f);
drawCancel = false;
return started; return started;
} }
@ -168,6 +193,8 @@ int StartUpProcess::Execute()
Sys_BackToLoader(); Sys_BackToLoader();
} }
SetupPads();
SetTextf("Initialize sd card\n"); SetTextf("Initialize sd card\n");
DeviceHandler::Instance()->MountSD(); DeviceHandler::Instance()->MountSD();
@ -185,17 +212,25 @@ int StartUpProcess::Execute()
{ {
SetTextf("Loading cIOS %i\n", Settings.cios); SetTextf("Loading cIOS %i\n", Settings.cios);
// Unmount devices
DeviceHandler::DestroyInstance(); DeviceHandler::DestroyInstance();
USBStorage2_Deinit(); USBStorage2_Deinit();
// Shut down pads
WPAD_Shutdown();
// Loading now the cios setup in the settings // Loading now the cios setup in the settings
IosLoader::LoadAppCios(); IosLoader::LoadAppCios();
SetTextf("Reloading into cIOS %i R%i\n", IOS_GetVersion(), IOS_GetRevision()); SetTextf("Reloading into cIOS %i R%i\n", IOS_GetVersion(), IOS_GetRevision());
// Re-Mount devices
DeviceHandler::Instance()->MountSD(); DeviceHandler::Instance()->MountSD();
USBSpinUp(); USBSpinUp();
DeviceHandler::Instance()->MountAllUSB(false); DeviceHandler::Instance()->MountAllUSB(false);
// Start pads again
SetupPads();
} }
if(!IosLoader::IsHermesIOS()) if(!IosLoader::IsHermesIOS())
@ -220,7 +255,6 @@ int StartUpProcess::Execute()
//! Init the rest of the System //! Init the rest of the System
Sys_Init(); Sys_Init();
SetupPads();
InitAudio(); InitAudio();
setlocale(LC_CTYPE, "C-UTF-8"); setlocale(LC_CTYPE, "C-UTF-8");
setlocale(LC_MESSAGES, "C-UTF-8"); setlocale(LC_MESSAGES, "C-UTF-8");
@ -234,6 +268,8 @@ void StartUpProcess::Draw()
GXImage->Draw(); GXImage->Draw();
titleTxt->Draw(); titleTxt->Draw();
messageTxt->Draw(); messageTxt->Draw();
if(drawCancel)
cancelTxt->Draw();
Menu_Render(); Menu_Render();
} }

View File

@ -18,11 +18,16 @@ class StartUpProcess
static int ParseArguments(int argc, char *argv[]); static int ParseArguments(int argc, char *argv[]);
static int QuickGameBoot(const char * gameID); static int QuickGameBoot(const char * gameID);
bool drawCancel;
GuiImageData * GXImageData; GuiImageData * GXImageData;
GuiImage * background; GuiImage * background;
GuiImage * GXImage; GuiImage * GXImage;
GuiText * titleTxt; GuiText * titleTxt;
GuiText * messageTxt; GuiText * messageTxt;
GuiText * cancelTxt;
GuiButton * cancelBtn;
GuiTrigger * trigB;
}; };
#endif #endif

View File

@ -21,10 +21,6 @@ static void _decrypt_title_key(u8 *tik, u8 *title_key)
//_aes_cbc_dec(common_key, iv, tik + 0x01bf, 16, title_key); //_aes_cbc_dec(common_key, iv, tik + 0x01bf, 16, title_key);
aes_decrypt(iv, tik + 0x01bf, title_key, 16); aes_decrypt(iv, tik + 0x01bf, title_key, 16);
} }
static u32 _be32(const u8 *p)
{
return (p[0] << 24) | (p[1] << 16) | (p[2] << 8) | p[3];
}
static void disc_read(wiidisc_t *d, u32 offset, u8 *data, u32 len) static void disc_read(wiidisc_t *d, u32 offset, u8 *data, u32 len)
{ {
@ -99,8 +95,8 @@ static u32 do_fst(wiidisc_t *d, u8 *fst, const char *names, u32 i)
const char *name; const char *name;
u32 j; u32 j;
name = names + (_be32(fst + 12 * i) & 0x00ffffff); name = names + (wbfs_be32(fst + 12 * i) & 0x00ffffff);
size = _be32(fst + 12 * i + 8); size = wbfs_be32(fst + 12 * i + 8);
if (i == 0) if (i == 0)
{ {
@ -122,7 +118,7 @@ static u32 do_fst(wiidisc_t *d, u8 *fst, const char *names, u32 i)
} }
else else
{ {
offset = _be32(fst + 12 * i + 4); offset = wbfs_be32(fst + 12 * i + 4);
if (d->extract_pathname && strcasecmp(name, d->extract_pathname) == 0) if (d->extract_pathname && strcasecmp(name, d->extract_pathname) == 0)
{ {
@ -148,13 +144,13 @@ static void do_files(wiidisc_t*d)
u32 n_files; u32 n_files;
partition_read(d, 0, b, 0x480, 0); partition_read(d, 0, b, 0x480, 0);
dol_offset = _be32(b + 0x0420); dol_offset = wbfs_be32(b + 0x0420);
fst_offset = _be32(b + 0x0424); fst_offset = wbfs_be32(b + 0x0424);
fst_size = _be32(b + 0x0428) << 2; fst_size = wbfs_be32(b + 0x0428) << 2;
apl_offset = 0x2440 >> 2; apl_offset = 0x2440 >> 2;
partition_read(d, apl_offset, apl_header, 0x20, 0); partition_read(d, apl_offset, apl_header, 0x20, 0);
apl_size = 0x20 + _be32(apl_header + 0x14) + _be32(apl_header + 0x18); apl_size = 0x20 + wbfs_be32(apl_header + 0x14) + wbfs_be32(apl_header + 0x18);
// fake read dol and partition // fake read dol and partition
if (apl_size) partition_read(d, apl_offset, 0, apl_size, 1); if (apl_size) partition_read(d, apl_offset, 0, apl_size, 1);
partition_read(d, dol_offset, 0, (fst_offset - dol_offset) << 2, 1); partition_read(d, dol_offset, 0, (fst_offset - dol_offset) << 2, 1);
@ -165,7 +161,7 @@ static void do_files(wiidisc_t*d)
if (fst == 0) if (fst == 0)
wbfs_fatal( "malloc fst" ); wbfs_fatal( "malloc fst" );
partition_read(d, fst_offset, fst, fst_size, 0); partition_read(d, fst_offset, fst, fst_size, 0);
n_files = _be32(fst + 8); n_files = wbfs_be32(fst + 8);
if (d->extract_pathname && strcmp(d->extract_pathname, "FST") == 0) if (d->extract_pathname && strcmp(d->extract_pathname, "FST") == 0)
@ -205,12 +201,12 @@ static void do_partition(wiidisc_t*d)
partition_raw_read(d, 0, tik, 0x2a4); partition_raw_read(d, 0, tik, 0x2a4);
partition_raw_read(d, 0x2a4 >> 2, b, 0x1c); partition_raw_read(d, 0x2a4 >> 2, b, 0x1c);
tmd_size = _be32(b); tmd_size = wbfs_be32(b);
tmd_offset = _be32(b + 4); tmd_offset = wbfs_be32(b + 4);
cert_size = _be32(b + 8); cert_size = wbfs_be32(b + 8);
cert_offset = _be32(b + 0x0c); cert_offset = wbfs_be32(b + 0x0c);
h3_offset = _be32(b + 0x10); h3_offset = wbfs_be32(b + 0x10);
d->partition_data_offset = _be32(b + 0x14); d->partition_data_offset = wbfs_be32(b + 0x14);
d->partition_block = (d->partition_raw_offset + d->partition_data_offset) >> 13; d->partition_block = (d->partition_raw_offset + d->partition_data_offset) >> 13;
tmd = wbfs_ioalloc( tmd_size ); tmd = wbfs_ioalloc( tmd_size );
if (tmd == 0) if (tmd == 0)
@ -264,7 +260,7 @@ static void do_disc(wiidisc_t*d)
u32 magic; u32 magic;
u32 i; u32 i;
disc_read(d, 0, b, 0x100); disc_read(d, 0, b, 0x100);
magic = _be32(b + 24); magic = wbfs_be32(b + 24);
if (magic != 0x5D1C9EA3) if (magic != 0x5D1C9EA3)
{ {
wbfs_iofree( b ); wbfs_iofree( b );
@ -272,12 +268,12 @@ static void do_disc(wiidisc_t*d)
return; return;
} }
disc_read(d, 0x40000 >> 2, b, 0x100); disc_read(d, 0x40000 >> 2, b, 0x100);
n_partitions = _be32(b); n_partitions = wbfs_be32(b);
disc_read(d, _be32(b + 4), b, 0x100); disc_read(d, wbfs_be32(b + 4), b, 0x100);
for (i = 0; i < n_partitions; i++) for (i = 0; i < n_partitions; i++)
{ {
partition_offset[i] = _be32(b + 8 * i); partition_offset[i] = wbfs_be32(b + 8 * i);
partition_type[i] = _be32(b + 8 * i + 4); partition_type[i] = wbfs_be32(b + 8 * i + 4);
} }
for (i = 0; i < n_partitions; i++) for (i = 0; i < n_partitions; i++)
{ {
@ -340,16 +336,16 @@ void wd_fix_partition_table(wiidisc_t *d, partition_selector_t selector, u8* par
u32 n_partitions, i, j; u32 n_partitions, i, j;
u32 *b32; u32 *b32;
if (selector == ALL_PARTITIONS) return; if (selector == ALL_PARTITIONS) return;
n_partitions = _be32(b); n_partitions = wbfs_be32(b);
if (_be32(b + 4) - (0x40000 >> 2) > 0x50) if (wbfs_be32(b + 4) - (0x40000 >> 2) > 0x50)
wbfs_fatal( "cannot modify this partition table. Please report the bug." ); wbfs_fatal( "cannot modify this partition table. Please report the bug." );
b += (_be32(b + 4) - (0x40000 >> 2)) * 4; b += (wbfs_be32(b + 4) - (0x40000 >> 2)) * 4;
j = 0; j = 0;
for (i = 0; i < n_partitions; i++) for (i = 0; i < n_partitions; i++)
{ {
partition_offset = _be32(b + 8 * i); partition_offset = wbfs_be32(b + 8 * i);
partition_type = _be32(b + 8 * i + 4); partition_type = wbfs_be32(b + 8 * i + 4);
if (!test_parition_skip(partition_type, selector)) if (!test_parition_skip(partition_type, selector))
{ {
b32 = (u32*) (b + 8 * j); b32 = (u32*) (b + 8 * j);

View File

@ -1238,23 +1238,22 @@ void GameBrowseMenu::UpdateGameInfoText(const u8 * gameId)
char gameregion[10]; char gameregion[10];
char IDfull[7]; char IDfull[7];
memset(IDfull, 0, sizeof(IDfull));
snprintf(IDfull, sizeof(IDfull), (char *) gameId); snprintf(IDfull, sizeof(IDfull), (char *) gameId);
switch (IDfull[3]) switch (IDfull[3])
{ {
case 'E': case 'E':
sprintf(gameregion, "NTSC U"); strcpy(gameregion, "NTSC U");
break; break;
case 'J': case 'J':
sprintf(gameregion, "NTSC J"); strcpy(gameregion, "NTSC J");
break; break;
case 'W': case 'W':
sprintf(gameregion, "NTSC T"); strcpy(gameregion, "NTSC T");
break; break;
default: default:
case 'K': case 'K':
sprintf(gameregion, "NTSC K"); strcpy(gameregion, "NTSC K");
break; break;
case 'P': case 'P':
case 'D': case 'D':
@ -1266,7 +1265,7 @@ void GameBrowseMenu::UpdateGameInfoText(const u8 * gameId)
case 'X': case 'X':
case 'Y': case 'Y':
case 'Z': case 'Z':
sprintf(gameregion, " PAL "); strcpy(gameregion, " PAL ");
break; break;
} }
@ -1476,3 +1475,4 @@ void GameBrowseMenu::UpdateFreeSpace(void * arg)
usedSpaceTxt->SetText(spaceinfo); usedSpaceTxt->SetText(spaceinfo);
} }

View File

@ -704,6 +704,7 @@ static int LoadGameConfig(const char *CheatFilepath)
tempgameconf = (u8*) malloc(filesize); tempgameconf = (u8*) malloc(filesize);
if (tempgameconf == NULL) { if (tempgameconf == NULL) {
tempgameconf = (u8 *) defaultgameconfig;
fclose(fp); fclose(fp);
return -1; return -1;
} }
@ -715,6 +716,7 @@ static int LoadGameConfig(const char *CheatFilepath)
if (ret != filesize) if (ret != filesize)
{ {
free(tempgameconf); free(tempgameconf);
tempgameconf = (u8 *) defaultgameconfig;
return -1; return -1;
} }
tempgameconfsize = filesize; tempgameconfsize = filesize;
@ -725,16 +727,13 @@ static int LoadGameConfig(const char *CheatFilepath)
int ocarina_load_code(const char *CheatFilepath, u8 *gameid) int ocarina_load_code(const char *CheatFilepath, u8 *gameid)
{ {
char filepath[150]; char filepath[150];
char id[7];
gprintf("Ocarina: Searching codes..."); memset(id, 0, sizeof(id));
gprintf("\n"); memcpy(id, gameid, 6);
snprintf(filepath, sizeof(filepath), "%s%s.gct", CheatFilepath, id);
sprintf(filepath, "%s%.6s", CheatFilepath, gameid); gprintf("Ocarina: Searching codes...%s\n", filepath);
filepath[strlen(CheatFilepath) + 6] = 0x2E;
filepath[strlen(CheatFilepath) + 7] = 0x67;
filepath[strlen(CheatFilepath) + 8] = 0x63;
filepath[strlen(CheatFilepath) + 9] = 0x74;
filepath[strlen(CheatFilepath) + 10] = 0;
FILE * fp = fopen(filepath, "rb"); FILE * fp = fopen(filepath, "rb");
if (!fp) if (!fp)

View File

@ -11,8 +11,8 @@ enum
enum enum
{ {
LOAD_GAMES = 0, LOAD_GAMES = 0,
LOAD_CHANNELS = 1 LOAD_CHANNELS = 1
}; };
enum enum

View File

@ -196,6 +196,23 @@ int GameBooter::SetupDisc(u8 * gameID)
return ret; return ret;
} }
void GameBooter::ShutDownDevices(int gameUSBPort)
{
gprintf("Shutting down devices...\n");
//! Flush all caches and close up all devices
WBFS_CloseAll();
DeviceHandler::DestroyInstance();
//! Shadow mload - Only needed on some games with Hermes v5.1 (Check is inside the function)
shadow_mload();
if(Settings.USBPort == 2)
//! Reset USB port because device handler changes it for cache flushing
USBStorage2_SetPort(gameUSBPort);
USBStorage2_Deinit();
USB_Deinitialize();
}
int GameBooter::BootGame(const char * gameID) int GameBooter::BootGame(const char * gameID)
{ {
if(!gameID || strlen(gameID) < 3) if(!gameID || strlen(gameID) < 3)
@ -314,15 +331,14 @@ int GameBooter::BootGame(const char * gameID)
{ {
gprintf("\tGame Boot\n"); gprintf("\tGame Boot\n");
AppEntrypoint = BootPartition(Settings.dolpath, videoChoice, alternatedol, alternatedoloffset); AppEntrypoint = BootPartition(Settings.dolpath, videoChoice, alternatedol, alternatedoloffset);
//! Flush all caches and close up all devices // Reading of game is done we can close devices now
DeviceHandler::DestroyInstance(); ShutDownDevices(usbport);
} }
else else
{ {
//! shutdown now and avoid later crashs with free if memory gets overwritten by channel
ShutDownDevices(usbport);
gprintf("\tChannel Boot\n"); 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 */ /* Setup low memory */
Disc_SetLowMem(); Disc_SetLowMem();
/* Setup video mode */ /* Setup video mode */
@ -346,18 +362,6 @@ int GameBooter::BootGame(const char * gameID)
//! Load Code handler if needed //! Load Code handler if needed
load_handler(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");
// Close all handlers
WBFS_CloseAll();
if(Settings.USBPort == 2)
//! Reset USB port because device handler changes it for cache flushing
USBStorage2_SetPort(usbport);
USBStorage2_Deinit();
USB_Deinitialize();
//! Jump to the entrypoint of the game - the last function of the USB Loader //! Jump to the entrypoint of the game - the last function of the USB Loader
gprintf("Jumping to game entrypoint: 0x%08X.\n", AppEntrypoint); gprintf("Jumping to game entrypoint: 0x%08X.\n", AppEntrypoint);
return Disc_JumpToEntrypoint(Hooktype, WDMMenu::GetDolParameter()); return Disc_JumpToEntrypoint(Hooktype, WDMMenu::GetDolParameter());

View File

@ -30,6 +30,7 @@ class GameBooter
static void SetupNandEmu(u8 NandEmuMode, const char *NandEmuPath, struct discHdr &gameHeader); static void SetupNandEmu(u8 NandEmuMode, const char *NandEmuPath, struct discHdr &gameHeader);
static int SetupDisc(u8 *gameID); static int SetupDisc(u8 *gameID);
static u32 BootPartition(char * dolpath, u8 videoselected, u8 alternatedol, u32 alternatedoloffset); static u32 BootPartition(char * dolpath, u8 videoselected, u8 alternatedol, u32 alternatedoloffset);
static void ShutDownDevices(int gameUSBPort);
}; };
#endif #endif

View File

@ -11,6 +11,7 @@
#include "usbloader/GameList.h" #include "usbloader/GameList.h"
#include "settings/GameTitles.h" #include "settings/GameTitles.h"
#include "xml/GameTDB.hpp" #include "xml/GameTDB.hpp"
#include "utils/ShowError.h"
static int FindGamePartition() static int FindGamePartition()
{ {
@ -66,12 +67,11 @@ static int PartitionChoice()
{ {
int ret = -1; int ret = -1;
int choice = WindowPrompt(tr( "No WBFS or FAT/NTFS/EXT partition found" ), int choice = WindowPrompt(tr( "No WBFS or FAT/NTFS/EXT partition found" ), tr( "You can select or format a partition or use the channel loader mode." ), tr( "Select" ), tr( "Format" ), tr( "Channels" ));
tr( "You need to select or format a partition" ), tr( "Select" ), tr( "Format" ), tr( "Return" ));
if (choice == 0) if (choice == 0)
{ {
Sys_LoadMenu(); Settings.LoaderMode = LOAD_CHANNELS;
return 0;
} }
else if(choice == 1) else if(choice == 1)
{ {
@ -110,30 +110,34 @@ static int PartitionChoice()
***************************************************************************/ ***************************************************************************/
int MountGamePartition(bool ShowGUI) int MountGamePartition(bool ShowGUI)
{ {
s32 ret = -1;
gprintf("MountGamePartition()\n"); gprintf("MountGamePartition()\n");
s32 wbfsinit = MountWBFS(ShowGUI); s32 wbfsinit = WBFS_Init(WBFS_DEVICE_USB);
if (wbfsinit < 0) if (wbfsinit < 0 && Settings.LoaderMode == LOAD_GAMES)
{ {
if(ShowGUI) WindowPrompt(tr( "Error !" ), tr( "USB Device not found" ), tr( "OK" )); if(ShowGUI)
Sys_LoadMenu(); ShowError("%s %s", tr( "USB Device not found." ), tr("Switching to channel list mode."));
Settings.LoaderMode = LOAD_CHANNELS;
} }
s32 ret = -1;
if(Settings.MultiplePartitions)
ret = WBFS_OpenAll();
else else
ret = WBFS_OpenPart(Settings.partition); {
if(Settings.MultiplePartitions)
ret = WBFS_OpenAll();
else
ret = WBFS_OpenPart(Settings.partition);
if(ret < 0) if(ret < 0)
ret = FindGamePartition(); ret = FindGamePartition();
if (ret < 0 && ShowGUI) if(ret < 0 && Settings.LoaderMode == LOAD_GAMES)
ret = PartitionChoice(); {
Settings.LoaderMode = LOAD_CHANNELS;
if(ret < 0) if(ShowGUI)
Sys_LoadMenu(); ret = PartitionChoice();
}
}
gprintf("\tDisc_Init\n"); gprintf("\tDisc_Init\n");
ret = Disc_Init(); ret = Disc_Init();

View File

@ -62,13 +62,13 @@ static s32 Nand_Mount(nandDevice *dev)
vector = (ioctlv *) memalign(32, sizeof(ioctlv)); vector = (ioctlv *) memalign(32, sizeof(ioctlv));
if(vector == NULL) if(vector == NULL)
{ {
/* Close FAT module */ /* Close FAT module */
IOS_Close(fd); IOS_Close(fd);
return -2; return -2;
} }
vector[0].data = &partition; vector[0].data = &partition;
vector[0].len = sizeof(u32); vector[0].len = sizeof(u32);
/* Mount device */ /* Mount device */
ret = IOS_Ioctlv(fd, dev->mountCmd, 1, 0, vector); ret = IOS_Ioctlv(fd, dev->mountCmd, 1, 0, vector);
@ -123,15 +123,15 @@ static s32 Nand_Enable(nandDevice *dev)
vector = (ioctlv *)memalign(32, sizeof(ioctlv)*2); vector = (ioctlv *)memalign(32, sizeof(ioctlv)*2);
if(vector == NULL) if(vector == NULL)
{ {
/* Close FAT module */ /* Close FAT module */
IOS_Close(fd); IOS_Close(fd);
return -2; return -2;
} }
vector[0].data = &mode; vector[0].data = &mode;
vector[0].len = sizeof(u32); vector[0].len = sizeof(u32);
vector[1].data = path; vector[1].data = path;
vector[1].len = sizeof(path); vector[1].len = sizeof(path);
ret = IOS_Ioctlv(fd, 100, 2, 0, vector); ret = IOS_Ioctlv(fd, 100, 2, 0, vector);

View File

@ -233,29 +233,3 @@ int WBFS_GetFragList(u8 *id)
return WbfsList[part_num]->GetFragList(id); return WbfsList[part_num]->GetFragList(id);
} }
int MountWBFS(bool ShowGUI)
{
if(ShowGUI)
return WBFS_Init(WBFS_DEVICE_USB);
int ret = -1;
time_t currTime = time(0);
while (time(0) - currTime < 30)
{
ret = WBFS_Init(WBFS_DEVICE_USB);
printf("%i...", int(time(0) - currTime));
if (ret < 0)
sleep(1);
else
break;
DeviceHandler::Instance()->UnMountAllUSB();
DeviceHandler::Instance()->MountAllUSB();
}
printf("\n");
return ret;
}

View File

@ -41,7 +41,6 @@ extern "C"
bool WBFS_Close(int part); bool WBFS_Close(int part);
void WBFS_CloseAll(); void WBFS_CloseAll();
bool WBFS_Selected(); bool WBFS_Selected();
int MountWBFS(bool ShowGUI);
#ifdef __cplusplus #ifdef __cplusplus
} }

View File

@ -25,63 +25,63 @@
u32 packBytes(int a, int b, int c, int d) u32 packBytes(int a, int b, int c, int d)
{ {
return (d << 24) | (c << 16) | (b << 8) | (a); return (d << 24) | (c << 16) | (b << 8) | (a);
} }
s32 __decompressLZ77_11(u8 *in, u32 inputLen, u8 **output, u32 *outputLen) s32 __decompressLZ77_11(u8 *in, u32 inputLen, u8 **output, u32 *outputLen)
{ {
int x, y; int x, y;
u8 *out = NULL; u8 *out = NULL;
u32 compressedPos = 0x4; u32 compressedPos = 0x4;
u32 decompressedPos = 0x0; u32 decompressedPos = 0x0;
u32 decompressedSize = 0; u32 decompressedSize = 0;
decompressedSize = packBytes(in[0], in[1], in[2], in[3]) >> 8; decompressedSize = packBytes(in[0], in[1], in[2], in[3]) >> 8;
if (!decompressedSize) if (!decompressedSize)
{ {
decompressedSize = packBytes(in[4], in[5], in[6], in[7]); decompressedSize = packBytes(in[4], in[5], in[6], in[7]);
compressedPos += 0x4; compressedPos += 0x4;
} }
printf("Decompressed size : %i\n", decompressedSize); printf("Decompressed size : %i\n", decompressedSize);
out = memalign(32, ALIGN32(decompressedSize)); out = memalign(32, ALIGN32(decompressedSize));
if (out == NULL) if (out == NULL)
{ {
printf("Out of memory\n"); printf("Out of memory\n");
return -1; return -1;
} }
while (compressedPos < inputLen && decompressedPos < decompressedSize) while (compressedPos < inputLen && decompressedPos < decompressedSize)
{ {
u8 byteFlag = in[compressedPos]; u8 byteFlag = in[compressedPos];
compressedPos++; compressedPos++;
for (x = 7; x >= 0; x--) for (x = 7; x >= 0; x--)
{ {
if ((byteFlag & (1 << x)) > 0) if ((byteFlag & (1 << x)) > 0)
{ {
u8 first = in[compressedPos]; u8 first = in[compressedPos];
u8 second = in[compressedPos + 1]; u8 second = in[compressedPos + 1];
u32 pos, copyLen; u32 pos, copyLen;
if (first < 0x20) if (first < 0x20)
{ {
u8 third = in[compressedPos + 2]; u8 third = in[compressedPos + 2];
if (first >= 0x10) if (first >= 0x10)
{ {
u32 fourth = in[compressedPos + 3]; u32 fourth = in[compressedPos + 3];
pos = (u32)(((third & 0xF) << 8) | fourth) + 1; pos = (u32)(((third & 0xF) << 8) | fourth) + 1;
copyLen = (u32)((second << 4) | ((first & 0xF) << 12) | (third >> 4)) + 273; copyLen = (u32)((second << 4) | ((first & 0xF) << 12) | (third >> 4)) + 273;
compressedPos += 4; compressedPos += 4;
} else } else
{ {
pos = (u32)(((second & 0xF) << 8) | third) + 1; pos = (u32)(((second & 0xF) << 8) | third) + 1;
copyLen = (u32)(((first & 0xF) << 4) | (second >> 4)) + 17; copyLen = (u32)(((first & 0xF) << 4) | (second >> 4)) + 17;
@ -135,7 +135,7 @@ s32 __decompressLZ77_10(u8 *in, u32 inputLen, u8 **output, u32 *outputLen)
printf("Decompressed size : %i\n", decompressedSize); printf("Decompressed size : %i\n", decompressedSize);
out = memalign(32, ALIGN32(decompressedSize)); out = memalign(32, ALIGN32(decompressedSize));
if (out == NULL) if (out == NULL)
{ {
printf("Out of memory\n"); printf("Out of memory\n");
@ -197,18 +197,18 @@ int isLZ77compressed(u8 *buffer)
int decompressLZ77content(u8 *buffer, u32 length, u8 **output, u32 *outputLen) int decompressLZ77content(u8 *buffer, u32 length, u8 **output, u32 *outputLen)
{ {
int ret; int ret;
switch (buffer[0]) switch (buffer[0])
{ {
case LZ77_0x10_FLAG: case LZ77_0x10_FLAG:
ret = __decompressLZ77_10(buffer, length, output, outputLen); ret = __decompressLZ77_10(buffer, length, output, outputLen);
break; break;
case LZ77_0x11_FLAG: case LZ77_0x11_FLAG:
ret = __decompressLZ77_11(buffer, length, output, outputLen); ret = __decompressLZ77_11(buffer, length, output, outputLen);
break; break;
default: default:
ret = -1; ret = -1;
break; break;
} }
return ret; return ret;
} }

View File

@ -434,13 +434,13 @@ int NandTitle::LoadFileFromNand(const char *filepath, u8 **outbuffer, u32 *outfi
if(!stats) if(!stats)
return IPC_ENOMEM; return IPC_ENOMEM;
if(isfsInit) ISFS_Initialize(); if(isfsInit) ISFS_Initialize();
int fd = ISFS_Open(filepath, ISFS_OPEN_READ); int fd = ISFS_Open(filepath, ISFS_OPEN_READ);
if(fd < 0) if(fd < 0)
{ {
free(stats); free(stats);
if(isfsInit) ISFS_Deinitialize(); if(isfsInit) ISFS_Deinitialize();
return fd; return fd;
} }
@ -449,7 +449,7 @@ int NandTitle::LoadFileFromNand(const char *filepath, u8 **outbuffer, u32 *outfi
{ {
free(stats); free(stats);
ISFS_Close(fd); ISFS_Close(fd);
if(isfsInit) ISFS_Deinitialize(); if(isfsInit) ISFS_Deinitialize();
return ret; return ret;
} }
@ -461,7 +461,7 @@ int NandTitle::LoadFileFromNand(const char *filepath, u8 **outbuffer, u32 *outfi
if(!buffer) if(!buffer)
{ {
ISFS_Close(fd); ISFS_Close(fd);
if(isfsInit) ISFS_Deinitialize(); if(isfsInit) ISFS_Deinitialize();
return IPC_ENOMEM; return IPC_ENOMEM;
} }

View File

@ -150,13 +150,13 @@ size_t utf8Len(const char *s)
const 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) if(*s2 == 0)
return (wchar_t *)s1; return (wchar_t *)s1;
int s1_len = wcslen(s1); int s1_len = wcslen(s1);
int s2_len = wcslen(s2); int s2_len = wcslen(s2);
if(s1_len < s2_len) if(s1_len < s2_len)
return 0; return 0;
const wchar_t *end = &s1[s1_len-s2_len]; const wchar_t *end = &s1[s1_len-s2_len];
for(const wchar_t *s = s1; s <= end; s++) for(const wchar_t *s = s1; s <= end; s++)