mirror of
https://github.com/wiidev/usbloadergx.git
synced 2024-11-25 20:56:53 +01:00
*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:
parent
a14051ecca
commit
5cbb7e69fd
@ -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>
|
||||||
|
@ -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"
|
||||||
|
|
||||||
|
@ -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"
|
||||||
|
|
||||||
|
@ -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"
|
||||||
|
|
||||||
|
@ -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"
|
||||||
|
@ -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"
|
||||||
|
|
||||||
|
@ -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"
|
||||||
|
|
||||||
|
@ -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"
|
||||||
|
|
||||||
|
@ -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"
|
||||||
|
|
||||||
|
@ -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."
|
||||||
|
@ -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 "ゲーム名リスト"
|
||||||
|
|
||||||
|
@ -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 "언어화일"
|
||||||
|
|
||||||
|
@ -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"
|
||||||
|
|
||||||
|
@ -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"
|
||||||
|
|
||||||
|
@ -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"
|
||||||
|
|
||||||
|
@ -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"
|
||||||
|
|
||||||
|
@ -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 "Языковой файл"
|
||||||
|
|
||||||
|
@ -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 "语言文件"
|
||||||
|
|
||||||
|
@ -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"
|
||||||
|
|
||||||
|
@ -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"
|
||||||
|
|
||||||
|
@ -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匯入遊戲類別嗎?"
|
||||||
|
|
||||||
|
@ -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 "ไฟล์ภาษา"
|
||||||
|
|
||||||
|
@ -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ı"
|
||||||
|
|
||||||
|
4
Makefile
4
Makefile
@ -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
|
||||||
|
@ -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
|
||||||
|
@ -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);
|
||||||
|
@ -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
|
||||||
|
@ -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();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -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
|
||||||
|
@ -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);
|
||||||
|
@ -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);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -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)
|
||||||
|
@ -11,8 +11,8 @@ enum
|
|||||||
|
|
||||||
enum
|
enum
|
||||||
{
|
{
|
||||||
LOAD_GAMES = 0,
|
LOAD_GAMES = 0,
|
||||||
LOAD_CHANNELS = 1
|
LOAD_CHANNELS = 1
|
||||||
};
|
};
|
||||||
|
|
||||||
enum
|
enum
|
||||||
|
@ -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());
|
||||||
|
@ -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
|
||||||
|
@ -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();
|
||||||
|
@ -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);
|
||||||
|
|
||||||
|
@ -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;
|
|
||||||
}
|
|
||||||
|
@ -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
|
||||||
}
|
}
|
||||||
|
@ -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;
|
||||||
}
|
}
|
||||||
|
@ -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;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -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++)
|
||||||
|
Loading…
Reference in New Issue
Block a user