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

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

View File

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

View File

@ -5,14 +5,14 @@ msgid ""
msgstr ""
"Project-Id-Version: USB Loader GX\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"
"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: \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=utf-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Language: \n"
msgid " could not be downloaded."
msgstr " nelze stáhnout."
@ -1495,6 +1495,9 @@ msgstr "Úspešne rozbalené téma."
msgid "Successfully installed:"
msgstr "Úspešne nainstalováno"
msgid "Switching to channel list mode."
msgstr ""
msgid "Sync FAT32 FS Info"
msgstr "FAT32 volné místo"
@ -1571,8 +1574,8 @@ msgstr "Popisky"
msgid "Transfer failed"
msgstr "Prenos selhal"
msgid "USB Device not found"
msgstr "USB zarízení nenalezeno"
msgid "USB Device not found."
msgstr ""
msgid "USB Loader GX is protected"
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."
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 ""
msgid "You need to select or format a partition"
msgstr "Musíte vybrat nebo naformátovat oddíl"
msgid "You cannot delete this category."
msgstr ""
msgid "and translators for language files updates"
msgstr "a prekladatelé pro jazykové aktualizace"
@ -1794,6 +1797,12 @@ msgstr "z "
msgid "seconds left"
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"
#~ msgstr "Jazykový soubor"

View File

@ -5,14 +5,14 @@ msgid ""
msgstr ""
"Project-Id-Version: USB Loader GX\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"
"Last-Translator: Fox888[dk]\n"
"Language-Team: [dk]\n"
"Language: \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=utf-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Language: \n"
msgid " could not be downloaded."
msgstr " kunne ikke downloades."
@ -1495,6 +1495,9 @@ msgstr "Udpakning af tema lykkedes."
msgid "Successfully installed:"
msgstr "Installationen lykkedes:"
msgid "Switching to channel list mode."
msgstr ""
msgid "Sync FAT32 FS Info"
msgstr "Synkronisere FAT32 FS Info"
@ -1571,8 +1574,8 @@ msgstr "Værktøjstips"
msgid "Transfer failed"
msgstr "Overførelse fejlede"
msgid "USB Device not found"
msgstr "USB-enhed ikke fundet"
msgid "USB Device not found."
msgstr ""
msgid "USB Loader GX is protected"
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."
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."
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"
msgstr "og oversættere for sprog filer"
@ -1794,6 +1797,12 @@ msgstr "af"
msgid "seconds left"
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"
#~ msgstr "Sprog Fil"

View File

@ -5,14 +5,14 @@ msgid ""
msgstr ""
"Project-Id-Version: USB Loader GX\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"
"Last-Translator: glowy\n"
"Language-Team: tj_cool, glowy\n"
"Language: \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=utf-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Language: \n"
msgid " could not be downloaded."
msgstr " kon niet worden gedownload."
@ -1495,6 +1495,9 @@ msgstr "Thema succesvol uitgepakt."
msgid "Successfully installed:"
msgstr "Met succes geïnstalleerd:"
msgid "Switching to channel list mode."
msgstr ""
msgid "Sync FAT32 FS Info"
msgstr "FAT32 FS Info sync"
@ -1571,8 +1574,8 @@ msgstr "Knopinfo"
msgid "Transfer failed"
msgstr "Overdracht mislukt."
msgid "USB Device not found"
msgstr "USB Apparaat niet gevonden"
msgid "USB Device not found."
msgstr ""
msgid "USB Loader GX is protected"
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."
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."
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"
msgstr "en vertalers voor taalbestand updates"
@ -1794,6 +1797,12 @@ msgstr "van"
msgid "seconds left"
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"
#~ msgstr "Taal bestand"

View File

@ -5,14 +5,14 @@ msgid ""
msgstr ""
"Project-Id-Version: USB Loader GX\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"
"Last-Translator: \n"
"Language-Team: \n"
"Language: \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=utf-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Language: \n"
msgid " could not be downloaded."
msgstr ""
@ -1495,6 +1495,9 @@ msgstr ""
msgid "Successfully installed:"
msgstr ""
msgid "Switching to channel list mode."
msgstr ""
msgid "Sync FAT32 FS Info"
msgstr ""
@ -1571,7 +1574,7 @@ msgstr ""
msgid "Transfer failed"
msgstr ""
msgid "USB Device not found"
msgid "USB Device not found."
msgstr ""
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."
msgstr ""
msgid "You cannot delete this category."
msgid "You can select or format a partition or use the channel loader mode."
msgstr ""
msgid "You need to select or format a partition"
msgid "You cannot delete this category."
msgstr ""
msgid "and translators for language files updates"

View File

@ -5,14 +5,14 @@ msgid ""
msgstr ""
"Project-Id-Version: USB Loader GX\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"
"Last-Translator: c64rmx\n"
"Language-Team: \n"
"Language: \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=utf-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Language: \n"
msgid " could not be downloaded."
msgstr "Latausta ei voitu suorittaa"
@ -1495,6 +1495,9 @@ msgstr ""
msgid "Successfully installed:"
msgstr "Asennettu onnistuneesti:"
msgid "Switching to channel list mode."
msgstr ""
msgid "Sync FAT32 FS Info"
msgstr ""
@ -1571,8 +1574,8 @@ msgstr "Vinkit"
msgid "Transfer failed"
msgstr ""
msgid "USB Device not found"
msgstr "USB-laitetta ei löytynyt"
msgid "USB Device not found."
msgstr ""
msgid "USB Loader GX is protected"
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."
msgstr ""
msgid "You cannot delete this category."
msgid "You can select or format a partition or use the channel loader mode."
msgstr ""
msgid "You need to select or format a partition"
msgid "You cannot delete this category."
msgstr ""
msgid "and translators for language files updates"
@ -1794,6 +1797,9 @@ msgstr "josta"
msgid "seconds left"
msgstr "sekuntia jäljellä"
#~ msgid "USB Device not found"
#~ msgstr "USB-laitetta ei löytynyt"
#~ msgid "Language File"
#~ msgstr "KieliTiedosto"

View File

@ -5,14 +5,14 @@ msgid ""
msgstr ""
"Project-Id-Version: USB Loader GX\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"
"Last-Translator: Cyan\n"
"Language-Team: Badablek, Amour, ikya, Cyan & Kin8\n"
"Language: \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=utf-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Language: \n"
msgid " could not be downloaded."
msgstr " ne peut pas être téléchargé."
@ -1495,6 +1495,9 @@ msgstr "Succès de l'extraction du thème."
msgid "Successfully installed:"
msgstr "Installé avec succès:"
msgid "Switching to channel list mode."
msgstr ""
msgid "Sync FAT32 FS Info"
msgstr "Synch. info FAT32"
@ -1571,8 +1574,8 @@ msgstr "Info-bulles"
msgid "Transfer failed"
msgstr "Échec du transfert"
msgid "USB Device not found"
msgstr "Périphérique USB introuvable"
msgid "USB Device not found."
msgstr ""
msgid "USB Loader GX is protected"
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."
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."
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"
msgstr "et les traducteurs pour la MàJ des fichiers langue"
@ -1794,6 +1797,12 @@ msgstr "sur"
msgid "seconds left"
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"
#~ msgstr "Fichier de langue"

View File

@ -5,14 +5,14 @@ msgid ""
msgstr ""
"Project-Id-Version: USB Loader GX\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"
"Last-Translator: TheRealVisitor\n"
"Language-Team: Bertilax, Snoozer, wishmasterf, ZEN.13, TheRealVisitor\n"
"Language: German\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=utf-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Language: German\n"
msgid " could not be downloaded."
msgstr " konnte nicht heruntergeladen werden."
@ -1495,6 +1495,9 @@ msgstr "Theme erfolgreich entpackt."
msgid "Successfully installed:"
msgstr "Erfolgreich installiert:"
msgid "Switching to channel list mode."
msgstr ""
msgid "Sync FAT32 FS Info"
msgstr "Sync. FAT32 FS Info"
@ -1571,8 +1574,8 @@ msgstr "Quickinfo"
msgid "Transfer failed"
msgstr "Transfer fehlgeschlagen"
msgid "USB Device not found"
msgstr "USB Gerät nicht gefunden."
msgid "USB Device not found."
msgstr ""
msgid "USB Loader GX is protected"
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."
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."
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"
msgstr "und Übersetzer für Sprachdateien Updates"
@ -1794,6 +1797,12 @@ msgstr "von"
msgid "seconds left"
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"
#~ msgstr "Sprachdatei"

View File

@ -5,14 +5,14 @@ msgid ""
msgstr ""
"Project-Id-Version: USB Loader GX\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"
"Last-Translator: Springdale\n"
"Language-Team: Tusk, Springdale\n"
"Language: \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=utf-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Language: \n"
msgid " could not be downloaded."
msgstr "nem letölthetõ."
@ -1495,6 +1495,9 @@ msgstr "Téma kicsomagolva."
msgid "Successfully installed:"
msgstr "Sikeresen telepítve:"
msgid "Switching to channel list mode."
msgstr ""
msgid "Sync FAT32 FS Info"
msgstr ""
@ -1571,8 +1574,8 @@ msgstr "Súgók"
msgid "Transfer failed"
msgstr ""
msgid "USB Device not found"
msgstr "USB Meghajtó nem található"
msgid "USB Device not found."
msgstr ""
msgid "USB Loader GX is protected"
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."
msgstr ""
msgid "You cannot delete this category."
msgid "You can select or format a partition or use the channel loader mode."
msgstr ""
msgid "You need to select or format a partition"
msgstr "Választanod vagy formáznod kell egy partíciót"
msgid "You cannot delete this category."
msgstr ""
msgid "and translators for language files updates"
msgstr ""
@ -1794,6 +1797,12 @@ msgstr "./"
msgid "seconds left"
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"
#~ msgstr "Nyelvi fájl"

View File

@ -5,14 +5,14 @@ msgid ""
msgstr ""
"Project-Id-Version: USB Loader GX\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"
"Last-Translator: xFede\n"
"Language-Team: Cambo\n"
"Language: \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Language: \n"
msgid " could not be downloaded."
msgstr " non può essere scaricato."
@ -1495,6 +1495,9 @@ msgstr "Tema estratto correttamente."
msgid "Successfully installed:"
msgstr "Installato correttamente:"
msgid "Switching to channel list mode."
msgstr ""
msgid "Sync FAT32 FS Info"
msgstr "Sincr. info Spazio Lib."
@ -1571,8 +1574,8 @@ msgstr "Suggerimenti"
msgid "Transfer failed"
msgstr "Trasferimento fallito"
msgid "USB Device not found"
msgstr "Periferica USB non trovata"
msgid "USB Device not found."
msgstr ""
msgid "USB Loader GX is protected"
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."
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."
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"
msgstr "ed ai traduttori per gli aggiornamenti dei file di lingua"
@ -1794,5 +1797,11 @@ msgstr "di"
msgid "seconds left"
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."
#~ msgstr "WiiTDB è aggiornato."

View File

@ -5,14 +5,14 @@ msgid ""
msgstr ""
"Project-Id-Version: USB Loader GX\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"
"Last-Translator: hosigumayuugi\n"
"Language-Team: hosigumayuugi\n"
"Language: \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=utf-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Language: \n"
msgid " could not be downloaded."
msgstr "ダウンロードできませんでした"
@ -1495,6 +1495,9 @@ msgstr "テーマの解凍を完了しました."
msgid "Successfully installed:"
msgstr "このゲームをインストールしました"
msgid "Switching to channel list mode."
msgstr ""
msgid "Sync FAT32 FS Info"
msgstr "FAT32FS情報を同期"
@ -1571,8 +1574,8 @@ msgstr "ヒントバルーン"
msgid "Transfer failed"
msgstr "転送に失敗しました"
msgid "USB Device not found"
msgstr "USB機器が見つかりません"
msgid "USB Device not found."
msgstr ""
msgid "USB Loader GX is protected"
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."
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."
msgstr "このカテゴリは削除できません"
msgid "You need to select or format a partition"
msgstr "領域を選択するか初期化してください"
msgid "and translators for language files updates"
msgstr "/ K-M / ichiroling …日本語化"
@ -1794,6 +1797,12 @@ msgstr "中"
msgid "seconds left"
msgstr "秒で完了"
#~ msgid "USB Device not found"
#~ msgstr "USB機器が見つかりません"
#~ msgid "You need to select or format a partition"
#~ msgstr "領域を選択するか初期化してください"
#~ msgid "GameTDB Files"
#~ msgstr "ゲーム名リスト"

View File

@ -5,14 +5,14 @@ msgid ""
msgstr ""
"Project-Id-Version: USB Loader GX\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"
"Last-Translator: nextos@korea.com\n"
"Language-Team: \n"
"Language: \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=utf-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Language: \n"
msgid " could not be downloaded."
msgstr " 다운로드할수 없음."
@ -1495,6 +1495,9 @@ msgstr ""
msgid "Successfully installed:"
msgstr "설치 성공:"
msgid "Switching to channel list mode."
msgstr ""
msgid "Sync FAT32 FS Info"
msgstr ""
@ -1571,8 +1574,8 @@ msgstr "Tooltips"
msgid "Transfer failed"
msgstr ""
msgid "USB Device not found"
msgstr "USB 장치가 없습니다."
msgid "USB Device not found."
msgstr ""
msgid "USB Loader GX is protected"
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."
msgstr ""
msgid "You cannot delete this category."
msgid "You can select or format a partition or use the channel loader mode."
msgstr ""
msgid "You need to select or format a partition"
msgid "You cannot delete this category."
msgstr ""
msgid "and translators for language files updates"
@ -1794,6 +1797,9 @@ msgstr "중"
msgid "seconds left"
msgstr "초 남았습니다"
#~ msgid "USB Device not found"
#~ msgstr "USB 장치가 없습니다."
#~ msgid "Language File"
#~ msgstr "언어화일"

View File

@ -5,14 +5,14 @@ msgid ""
msgstr ""
"Project-Id-Version: USB Loader GX\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"
"Last-Translator: raschi\n"
"Language-Team: raschi\n"
"Language: \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=utf-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Language: \n"
msgid " could not be downloaded."
msgstr " kan ikke lastes ned."
@ -1495,6 +1495,9 @@ msgstr "Vellykket utpakking av tema."
msgid "Successfully installed:"
msgstr "Vellykket installering:"
msgid "Switching to channel list mode."
msgstr ""
msgid "Sync FAT32 FS Info"
msgstr "Synkroniser FAT32 FS info"
@ -1571,8 +1574,8 @@ msgstr "Verktøystips"
msgid "Transfer failed"
msgstr "Overføring feilet"
msgid "USB Device not found"
msgstr "USB enhet ikke funnet"
msgid "USB Device not found."
msgstr ""
msgid "USB Loader GX is protected"
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."
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."
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"
msgstr "og oversettere for språkfiler"
@ -1794,6 +1797,12 @@ msgstr "av"
msgid "seconds left"
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"
#~ msgstr "Språk Fil"

View File

@ -5,14 +5,14 @@ msgid ""
msgstr ""
"Project-Id-Version: USB Loader GX\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"
"Last-Translator: ziom666 (zadania_prog@vp.pl)\n"
"Language-Team: \n"
"Language: \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=utf-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Language: \n"
msgid " could not be downloaded."
msgstr " nie udalo sie pobrac"
@ -1495,6 +1495,9 @@ msgstr "Pomyslnie rozpakowano temat."
msgid "Successfully installed:"
msgstr "Pomyslnie zainstalowano:"
msgid "Switching to channel list mode."
msgstr ""
msgid "Sync FAT32 FS Info"
msgstr ""
@ -1571,8 +1574,8 @@ msgstr "Chmurki z podpowiedziami"
msgid "Transfer failed"
msgstr ""
msgid "USB Device not found"
msgstr "Nie znaleziono urzadzenia USB"
msgid "USB Device not found."
msgstr ""
msgid "USB Loader GX is protected"
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."
msgstr ""
msgid "You cannot delete this category."
msgid "You can select or format a partition or use the channel loader mode."
msgstr ""
msgid "You need to select or format a partition"
msgstr "Musisz wybrac, lub sformatowac partycje"
msgid "You cannot delete this category."
msgstr ""
msgid "and translators for language files updates"
msgstr ""
@ -1794,6 +1797,12 @@ msgstr "z"
msgid "seconds left"
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"
#~ msgstr "Plik jezykowy"

View File

@ -5,14 +5,14 @@ msgid ""
msgstr ""
"Project-Id-Version: USB Loader GX\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"
"Last-Translator: aniemotion\n"
"Language-Team: boto12, aniemotion\n"
"Language: \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=utf-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Language: \n"
msgid " could not be downloaded."
msgstr " não foi baixado."
@ -1495,6 +1495,9 @@ msgstr "Tema extraido com sucesso."
msgid "Successfully installed:"
msgstr "Instalado com Sucesso:"
msgid "Switching to channel list mode."
msgstr ""
msgid "Sync FAT32 FS Info"
msgstr ""
@ -1571,8 +1574,8 @@ msgstr "Dicas"
msgid "Transfer failed"
msgstr ""
msgid "USB Device not found"
msgstr "Dispositivo USB não encontrado"
msgid "USB Device not found."
msgstr ""
msgid "USB Loader GX is protected"
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."
msgstr ""
msgid "You cannot delete this category."
msgid "You can select or format a partition or use the channel loader mode."
msgstr ""
msgid "You need to select or format a partition"
msgstr "Você precisa selecionar ou formatar uma partição"
msgid "You cannot delete this category."
msgstr ""
msgid "and translators for language files updates"
msgstr ""
@ -1794,6 +1797,12 @@ msgstr "de"
msgid "seconds left"
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"
#~ msgstr "Idiomas"

View File

@ -5,14 +5,14 @@ msgid ""
msgstr ""
"Project-Id-Version: USB Loader GX\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"
"Last-Translator: pplucky <pplucky@gmail.com>\n"
"Language-Team: Sky8000, pplucky\n"
"Language: \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=utf-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Language: \n"
msgid " could not be downloaded."
msgstr " não foi descarregado."
@ -1495,6 +1495,9 @@ msgstr "Tema extraído com sucesso."
msgid "Successfully installed:"
msgstr "Instalado com Sucesso:"
msgid "Switching to channel list mode."
msgstr ""
msgid "Sync FAT32 FS Info"
msgstr "Sincronizar Info FAT32"
@ -1571,8 +1574,8 @@ msgstr "Dicas"
msgid "Transfer failed"
msgstr "Transferência falhada"
msgid "USB Device not found"
msgstr "Dispositivo USB não encontrado"
msgid "USB Device not found."
msgstr ""
msgid "USB Loader GX is protected"
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."
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."
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"
msgstr "e tradutores para as actualizações de idioma"
@ -1794,6 +1797,12 @@ msgstr "de"
msgid "seconds left"
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"
#~ msgstr "Idiomas"

View File

@ -5,14 +5,14 @@ msgid ""
msgstr ""
"Project-Id-Version: USB Loader GX\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"
"Last-Translator: nikolai_ca\n"
"Language-Team: Kir, alendit, nikolai_ca\n"
"Language: \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=utf-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Language: \n"
msgid " could not be downloaded."
msgstr " не мог быть загружен"
@ -1495,6 +1495,9 @@ msgstr "Успешно извлечена тема."
msgid "Successfully installed:"
msgstr "Успешно установлено:"
msgid "Switching to channel list mode."
msgstr ""
msgid "Sync FAT32 FS Info"
msgstr ""
@ -1571,8 +1574,8 @@ msgstr "Подсказки"
msgid "Transfer failed"
msgstr ""
msgid "USB Device not found"
msgstr "USB устройство не найдено"
msgid "USB Device not found."
msgstr ""
msgid "USB Loader GX is protected"
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."
msgstr ""
msgid "You cannot delete this category."
msgid "You can select or format a partition or use the channel loader mode."
msgstr ""
msgid "You need to select or format a partition"
msgid "You cannot delete this category."
msgstr ""
msgid "and translators for language files updates"
@ -1794,6 +1797,9 @@ msgstr "из"
msgid "seconds left"
msgstr "секунд осталось"
#~ msgid "USB Device not found"
#~ msgstr "USB устройство не найдено"
#~ msgid "Language File"
#~ msgstr "Языковой файл"

View File

@ -5,14 +5,14 @@ msgid ""
msgstr ""
"Project-Id-Version: USB Loader GX\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"
"Last-Translator: knife.hu kavid emul8ion\n"
"Language-Team: kavid\n"
"Language: \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=utf-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Language: \n"
msgid " could not be downloaded."
msgstr "不能下载."
@ -1495,6 +1495,9 @@ msgstr "解压主题成功"
msgid "Successfully installed:"
msgstr "成功安装:"
msgid "Switching to channel list mode."
msgstr ""
msgid "Sync FAT32 FS Info"
msgstr "同步FAT32信息"
@ -1571,8 +1574,8 @@ msgstr "提示信息"
msgid "Transfer failed"
msgstr "传输失败"
msgid "USB Device not found"
msgstr "找不到 USB 设备"
msgid "USB Device not found."
msgstr ""
msgid "USB Loader GX is protected"
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."
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 ""
msgid "You need to select or format a partition"
msgstr "你需要选择或者格式化一个分区"
msgid "You cannot delete this category."
msgstr ""
msgid "and translators for language files updates"
msgstr "以及翻译人员的语言文件更新"
@ -1794,6 +1797,12 @@ msgstr "的"
msgid "seconds left"
msgstr "剩余秒数"
#~ msgid "USB Device not found"
#~ msgstr "找不到 USB 设备"
#~ msgid "You need to select or format a partition"
#~ msgstr "你需要选择或者格式化一个分区"
#~ msgid "Language File"
#~ msgstr "语言文件"

View File

@ -5,14 +5,14 @@ msgid ""
msgstr ""
"Project-Id-Version: USB Loader GX\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"
"Last-Translator: Galen/xFede\n"
"Language-Team: Penn, SirPalax, hvy109\n"
"Language: \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=utf-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Language: \n"
msgid " could not be downloaded."
msgstr " no se han podido descargar."
@ -1495,6 +1495,9 @@ msgstr "Tema extraido correctamente."
msgid "Successfully installed:"
msgstr "Instalado correctamente:"
msgid "Switching to channel list mode."
msgstr ""
msgid "Sync FAT32 FS Info"
msgstr "Sinc. Esp. Libre (FAT32)"
@ -1571,8 +1574,8 @@ msgstr "InfoBurbujas"
msgid "Transfer failed"
msgstr "Transferencia fallida"
msgid "USB Device not found"
msgstr "USB no encontrado"
msgid "USB Device not found."
msgstr ""
msgid "USB Loader GX is protected"
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."
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."
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"
msgstr "y traductores por los archivos de idiomas"
@ -1794,6 +1797,12 @@ msgstr "de"
msgid "seconds left"
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"
#~ msgstr "Idiomas"

View File

@ -5,14 +5,14 @@ msgid ""
msgstr ""
"Project-Id-Version: USB Loader GX\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"
"Last-Translator: Katsurou\n"
"Language-Team: Katsurou, pirateX\n"
"Language: \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=utf-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Language: \n"
msgid " could not be downloaded."
msgstr "Kunde inte laddas ner."
@ -1495,6 +1495,9 @@ msgstr "Extrahering av tema lyckades."
msgid "Successfully installed:"
msgstr "Lyckad installation av:"
msgid "Switching to channel list mode."
msgstr ""
msgid "Sync FAT32 FS Info"
msgstr ""
@ -1571,8 +1574,8 @@ msgstr "Verktygstips"
msgid "Transfer failed"
msgstr ""
msgid "USB Device not found"
msgstr "USB-enhet ej hittad"
msgid "USB Device not found."
msgstr ""
msgid "USB Loader GX is protected"
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."
msgstr ""
msgid "You cannot delete this category."
msgid "You can select or format a partition or use the channel loader mode."
msgstr ""
msgid "You need to select or format a partition"
msgstr "Du måste välja eller formatera en partition"
msgid "You cannot delete this category."
msgstr ""
msgid "and translators for language files updates"
msgstr ""
@ -1794,6 +1797,12 @@ msgstr "av"
msgid "seconds left"
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"
#~ msgstr "Språk fil"

View File

@ -5,14 +5,14 @@ msgid ""
msgstr ""
"Project-Id-Version: USB Loader GX\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"
"Last-Translator: Jane.H\n"
"Language-Team: kyogc, Miller, Mika Li, Jane.H\n"
"Language: \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=utf-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Language: \n"
msgid " could not be downloaded."
msgstr "不能下載。"
@ -1495,6 +1495,9 @@ msgstr "成功獲取主題。"
msgid "Successfully installed:"
msgstr "成功安裝:"
msgid "Switching to channel list mode."
msgstr ""
msgid "Sync FAT32 FS Info"
msgstr "同步FAT32檔案系統資訊"
@ -1571,8 +1574,8 @@ msgstr "提示信息"
msgid "Transfer failed"
msgstr "傳輸失敗"
msgid "USB Device not found"
msgstr "找不到 USB 設備"
msgid "USB Device not found."
msgstr ""
msgid "USB Loader GX is protected"
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."
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."
msgstr "無法刪除此類別。"
msgid "You need to select or format a partition"
msgstr "選擇你要格式化的磁區"
msgid "and translators for language files updates"
msgstr "及對所有語言檔更新的翻譯者"
@ -1794,6 +1797,12 @@ msgstr "的"
msgid "seconds left"
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?"
#~ msgstr "確定要從WiiTDB匯入遊戲類別嗎"

View File

@ -5,14 +5,14 @@ msgid ""
msgstr ""
"Project-Id-Version: USB Loader GX\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"
"Last-Translator: Nitro_subzero \n"
"Language-Team: Nitro_subzero\n"
"Language: \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=utf-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Language: \n"
msgid " could not be downloaded."
msgstr " ไม่สามารถดาวน์โหลดได้"
@ -1495,6 +1495,9 @@ msgstr "ขยายไฟล์ธีมสำเร็จ."
msgid "Successfully installed:"
msgstr "ติดตั้งสำเร็จ:"
msgid "Switching to channel list mode."
msgstr ""
msgid "Sync FAT32 FS Info"
msgstr ""
@ -1571,8 +1574,8 @@ msgstr "คำแนะนำ"
msgid "Transfer failed"
msgstr ""
msgid "USB Device not found"
msgstr "ไม่พบอุปกรณ์ USB"
msgid "USB Device not found."
msgstr ""
msgid "USB Loader GX is protected"
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."
msgstr ""
msgid "You cannot delete this category."
msgid "You can select or format a partition or use the channel loader mode."
msgstr ""
msgid "You need to select or format a partition"
msgid "You cannot delete this category."
msgstr ""
msgid "and translators for language files updates"
@ -1794,6 +1797,9 @@ msgstr "จาก"
msgid "seconds left"
msgstr "วินาทีที่เหลือ"
#~ msgid "USB Device not found"
#~ msgstr "ไม่พบอุปกรณ์ USB"
#~ msgid "Language File"
#~ msgstr "ไฟล์ภาษา"

View File

@ -5,14 +5,14 @@ msgid ""
msgstr ""
"Project-Id-Version: USB Loader GX\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"
"Last-Translator: omercigingelini\n"
"Language-Team: omercigingelini\n"
"Language: \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=utf-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Language: \n"
msgid " could not be downloaded."
msgstr " indirilemedi."
@ -1495,6 +1495,9 @@ msgstr "Tema başarıyla çıkarıldı."
msgid "Successfully installed:"
msgstr "Başarıyla kuruldu:"
msgid "Switching to channel list mode."
msgstr ""
msgid "Sync FAT32 FS Info"
msgstr ""
@ -1571,8 +1574,8 @@ msgstr "Yardımlar"
msgid "Transfer failed"
msgstr ""
msgid "USB Device not found"
msgstr "USB Aygıtı bulunamadı"
msgid "USB Device not found."
msgstr ""
msgid "USB Loader GX is protected"
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."
msgstr ""
msgid "You cannot delete this category."
msgid "You can select or format a partition or use the channel loader mode."
msgstr ""
msgid "You need to select or format a partition"
msgstr "Bir bölüm seçmeniz ya da formatlamanız gerekiyor"
msgid "You cannot delete this category."
msgstr ""
msgid "and translators for language files updates"
msgstr ""
@ -1794,6 +1797,12 @@ msgstr "./"
msgid "seconds left"
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"
#~ msgstr "Dil dosyası"

View File

@ -62,9 +62,9 @@ endif
#---------------------------------------------------------------------------------
# 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)
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)
CFLAGS += -DFULLCHANNEL

View File

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

View File

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

View File

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

View File

@ -40,6 +40,18 @@ StartUpProcess::StartUpProcess()
messageTxt = new GuiText(" ", 22, (GXColor) {255, 255, 255, 255});
messageTxt->SetAlignment(ALIGN_CENTER, ALIGN_MIDDLE);
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()
@ -48,7 +60,9 @@ StartUpProcess::~StartUpProcess()
delete GXImageData;
delete GXImage;
delete titleTxt;
delete messageTxt;
delete cancelTxt;
delete cancelBtn;
delete trigB;
}
int StartUpProcess::ParseArguments(int argc, char *argv[])
@ -123,22 +137,33 @@ void StartUpProcess::SetTextf(const char * format, ...)
bool StartUpProcess::USBSpinUp()
{
drawCancel = true;
bool started = false;
const DISC_INTERFACE * handle = Settings.USBPort == 1 ? DeviceHandler::GetUSB1Interface() : DeviceHandler::GetUSB0Interface();
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
{
started = (handle->startup() && handle->isInserted());
if(started)
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());
Draw();
usleep(50000);
}
while(countDown.elapsed() < 20.f);
drawCancel = false;
return started;
}
@ -168,6 +193,8 @@ int StartUpProcess::Execute()
Sys_BackToLoader();
}
SetupPads();
SetTextf("Initialize sd card\n");
DeviceHandler::Instance()->MountSD();
@ -185,17 +212,25 @@ int StartUpProcess::Execute()
{
SetTextf("Loading cIOS %i\n", Settings.cios);
// Unmount devices
DeviceHandler::DestroyInstance();
USBStorage2_Deinit();
// Shut down pads
WPAD_Shutdown();
// Loading now the cios setup in the settings
IosLoader::LoadAppCios();
SetTextf("Reloading into cIOS %i R%i\n", IOS_GetVersion(), IOS_GetRevision());
// Re-Mount devices
DeviceHandler::Instance()->MountSD();
USBSpinUp();
DeviceHandler::Instance()->MountAllUSB(false);
// Start pads again
SetupPads();
}
if(!IosLoader::IsHermesIOS())
@ -220,7 +255,6 @@ int StartUpProcess::Execute()
//! Init the rest of the System
Sys_Init();
SetupPads();
InitAudio();
setlocale(LC_CTYPE, "C-UTF-8");
setlocale(LC_MESSAGES, "C-UTF-8");
@ -234,6 +268,8 @@ void StartUpProcess::Draw()
GXImage->Draw();
titleTxt->Draw();
messageTxt->Draw();
if(drawCancel)
cancelTxt->Draw();
Menu_Render();
}

View File

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

View File

@ -21,10 +21,6 @@ static void _decrypt_title_key(u8 *tik, u8 *title_key)
//_aes_cbc_dec(common_key, iv, tik + 0x01bf, 16, title_key);
aes_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)
{
@ -99,8 +95,8 @@ static u32 do_fst(wiidisc_t *d, u8 *fst, const char *names, u32 i)
const char *name;
u32 j;
name = names + (_be32(fst + 12 * i) & 0x00ffffff);
size = _be32(fst + 12 * i + 8);
name = names + (wbfs_be32(fst + 12 * i) & 0x00ffffff);
size = wbfs_be32(fst + 12 * i + 8);
if (i == 0)
{
@ -122,7 +118,7 @@ static u32 do_fst(wiidisc_t *d, u8 *fst, const char *names, u32 i)
}
else
{
offset = _be32(fst + 12 * i + 4);
offset = wbfs_be32(fst + 12 * i + 4);
if (d->extract_pathname && strcasecmp(name, d->extract_pathname) == 0)
{
@ -148,13 +144,13 @@ static void do_files(wiidisc_t*d)
u32 n_files;
partition_read(d, 0, b, 0x480, 0);
dol_offset = _be32(b + 0x0420);
fst_offset = _be32(b + 0x0424);
fst_size = _be32(b + 0x0428) << 2;
dol_offset = wbfs_be32(b + 0x0420);
fst_offset = wbfs_be32(b + 0x0424);
fst_size = wbfs_be32(b + 0x0428) << 2;
apl_offset = 0x2440 >> 2;
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
if (apl_size) partition_read(d, apl_offset, 0, apl_size, 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)
wbfs_fatal( "malloc fst" );
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)
@ -205,12 +201,12 @@ static void do_partition(wiidisc_t*d)
partition_raw_read(d, 0, tik, 0x2a4);
partition_raw_read(d, 0x2a4 >> 2, b, 0x1c);
tmd_size = _be32(b);
tmd_offset = _be32(b + 4);
cert_size = _be32(b + 8);
cert_offset = _be32(b + 0x0c);
h3_offset = _be32(b + 0x10);
d->partition_data_offset = _be32(b + 0x14);
tmd_size = wbfs_be32(b);
tmd_offset = wbfs_be32(b + 4);
cert_size = wbfs_be32(b + 8);
cert_offset = wbfs_be32(b + 0x0c);
h3_offset = wbfs_be32(b + 0x10);
d->partition_data_offset = wbfs_be32(b + 0x14);
d->partition_block = (d->partition_raw_offset + d->partition_data_offset) >> 13;
tmd = wbfs_ioalloc( tmd_size );
if (tmd == 0)
@ -264,7 +260,7 @@ static void do_disc(wiidisc_t*d)
u32 magic;
u32 i;
disc_read(d, 0, b, 0x100);
magic = _be32(b + 24);
magic = wbfs_be32(b + 24);
if (magic != 0x5D1C9EA3)
{
wbfs_iofree( b );
@ -272,12 +268,12 @@ static void do_disc(wiidisc_t*d)
return;
}
disc_read(d, 0x40000 >> 2, b, 0x100);
n_partitions = _be32(b);
disc_read(d, _be32(b + 4), b, 0x100);
n_partitions = wbfs_be32(b);
disc_read(d, wbfs_be32(b + 4), b, 0x100);
for (i = 0; i < n_partitions; i++)
{
partition_offset[i] = _be32(b + 8 * i);
partition_type[i] = _be32(b + 8 * i + 4);
partition_offset[i] = wbfs_be32(b + 8 * i);
partition_type[i] = wbfs_be32(b + 8 * i + 4);
}
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 *b32;
if (selector == ALL_PARTITIONS) return;
n_partitions = _be32(b);
if (_be32(b + 4) - (0x40000 >> 2) > 0x50)
n_partitions = wbfs_be32(b);
if (wbfs_be32(b + 4) - (0x40000 >> 2) > 0x50)
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;
for (i = 0; i < n_partitions; i++)
{
partition_offset = _be32(b + 8 * i);
partition_type = _be32(b + 8 * i + 4);
partition_offset = wbfs_be32(b + 8 * i);
partition_type = wbfs_be32(b + 8 * i + 4);
if (!test_parition_skip(partition_type, selector))
{
b32 = (u32*) (b + 8 * j);

View File

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

View File

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

View File

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

View File

@ -196,6 +196,23 @@ int GameBooter::SetupDisc(u8 * gameID)
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)
{
if(!gameID || strlen(gameID) < 3)
@ -314,15 +331,14 @@ int GameBooter::BootGame(const char * gameID)
{
gprintf("\tGame Boot\n");
AppEntrypoint = BootPartition(Settings.dolpath, videoChoice, alternatedol, alternatedoloffset);
//! Flush all caches and close up all devices
DeviceHandler::DestroyInstance();
// Reading of game is done we can close devices now
ShutDownDevices(usbport);
}
else
{
//! shutdown now and avoid later crashs with free if memory gets overwritten by channel
ShutDownDevices(usbport);
gprintf("\tChannel Boot\n");
//! Flush all caches and close up all devices
//! Avoid later crashs with free if memory gets overwritten by game
DeviceHandler::DestroyInstance();
/* Setup low memory */
Disc_SetLowMem();
/* Setup video mode */
@ -346,18 +362,6 @@ int GameBooter::BootGame(const char * gameID)
//! Load Code handler if needed
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
gprintf("Jumping to game entrypoint: 0x%08X.\n", AppEntrypoint);
return Disc_JumpToEntrypoint(Hooktype, WDMMenu::GetDolParameter());

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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