mirror of
https://github.com/wiidev/usbloadergx.git
synced 2024-11-22 03:09:15 +01:00
* Changed priority to cIOS instead of "IOS58 + AHB access"
at launch if no argument is set in meta.xml. * Added an option to choose if HDD should be mounted on Loader's launch * Fixed installing games with no_split on NTFS partition if SD Card is inserted (Thanks Dimok) * Fixed a crash issue when plugging HDD after launch and mounting WBFS partition for the first time in HDD menu. * Fixed gamecube game's list when mounting HDD after launch. * Fixed automatic switching to channel mode if no USB device is detected. * Updated Gamecube custom banner's default URL for new install. * Added support for 302 Redirect HTTP error code (for users still using the old banner URL). * Updated runtimeiospatch to 1.5.2 * Replaced integer values with vector in credit page. Nintendont : * Removed SRAM patch (unused) * Added Nintendont svn support. (Tested up to r84) * Added Nintendont USB support. * Added a check for kenobi file presence when using Ocarina with DM/DML/NIN. * Added a check for controller.ini presence when using HID with Nintendont. * Added support for Nintendont "loader.dol" filename * Added support for r39 bootusb.dol and loaderusb.dol
This commit is contained in:
parent
fa4b1d162b
commit
18edba07a0
10
HBC/META.XML
10
HBC/META.XML
@ -2,25 +2,25 @@
|
||||
<app version="1">
|
||||
<name> USB Loader GX</name>
|
||||
<coder>USB Loader GX Team</coder>
|
||||
<version>3.0 r1218</version>
|
||||
<release_date>20131001201020</release_date>
|
||||
<version>3.0 r1219</version>
|
||||
<release_date>20140425130603</release_date>
|
||||
<!-- // remove this line to enable arguments
|
||||
<arguments>
|
||||
<arg>--ios=250</arg>
|
||||
<arg>--usbport=0</arg>
|
||||
</arguments>
|
||||
// remove this line to enable arguments -->
|
||||
<no_ios_reload/>
|
||||
<ahb_access/>
|
||||
<short_description>Loads games from USB-devices</short_description>
|
||||
<long_description>USB Loader GX is a libwiigui based USB iso loader with a wii-like GUI. You can install games to your HDDs and boot them with shorter loading times.
|
||||
The interactive GUI is completely controllable with WiiMote, Classic Controller or GC Controller.
|
||||
Features are automatic widescreen detection, coverdownload, parental control, theme support and many more.
|
||||
|
||||
Credits:
|
||||
Coding: Dimok, nIxx, giantpune, ardi, Hungyip84, DrayX7, Lustar, r-win, WiiShizzza
|
||||
Coding: Cyan, Dimok, nIxx, giantpune, ardi, Hungyip84, DrayX7, Lustar, r-win, WiiShizzza
|
||||
Artworks: cyrex, NeoRame
|
||||
Validation: Cyan and many others
|
||||
Issue management: Cyan / Dimok
|
||||
Issue management: Cyan
|
||||
WiiTDB / Hosting covers: Lustar
|
||||
USBLoader sources: Waninkoko, Kwiirk, Hermes
|
||||
cIOS maintenance: davebaol, xabby666, XFlak and Rodries
|
||||
|
@ -5,7 +5,7 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: USB Loader GX\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2013-10-01 22:10+0200\n"
|
||||
"POT-Creation-Date: 2014-04-25 15:06+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"
|
||||
"Language-Team: r1056 - last version on http://djelinek.sweb.cz/_USBLoderGX/czech.lang \n"
|
||||
@ -1360,9 +1360,6 @@ msgstr ""
|
||||
msgid "Main Path"
|
||||
msgstr ""
|
||||
|
||||
msgid "Main tester:"
|
||||
msgstr "Muj tester:"
|
||||
|
||||
msgid "Mar"
|
||||
msgstr "Brez"
|
||||
|
||||
@ -1384,6 +1381,9 @@ msgstr "WiiMotion+ Video"
|
||||
msgid "Mount DVD drive"
|
||||
msgstr "Spustit z DVD"
|
||||
|
||||
msgid "Mount USB at launch"
|
||||
msgstr ""
|
||||
|
||||
msgid "Multiple Partitions"
|
||||
msgstr ""
|
||||
|
||||
@ -1435,9 +1435,6 @@ msgstr ""
|
||||
msgid "Nintendont Loader Path"
|
||||
msgstr ""
|
||||
|
||||
msgid "Nintendont currently only supports GameCube games on SD card."
|
||||
msgstr ""
|
||||
|
||||
msgid "No"
|
||||
msgstr "Ne"
|
||||
|
||||
@ -1567,6 +1564,9 @@ msgstr "Oficiální místo:"
|
||||
msgid "Offset"
|
||||
msgstr "Ofset"
|
||||
|
||||
msgid "Ok"
|
||||
msgstr ""
|
||||
|
||||
msgid "Only Game Partition"
|
||||
msgstr "Pouze oddíl s hrami"
|
||||
|
||||
@ -1973,6 +1973,9 @@ msgstr "Tento IOS je BootMii IOS. Pokud si jste jisti ze toto není BootMii a m
|
||||
msgid "This IOS was not found on the titles list. If you are sure you have it installed than ignore this warning."
|
||||
msgstr "Tento IOS nebyl nalezen na seznamu. Pokud si jste jisti ze jej máte nainstalován, pak ignorujte toto varování."
|
||||
|
||||
msgid "This Nintendont version does not support games on USB."
|
||||
msgstr ""
|
||||
|
||||
msgid "This game has multiple discs. Please select the disc to launch."
|
||||
msgstr ""
|
||||
|
||||
@ -2024,6 +2027,14 @@ msgstr ""
|
||||
msgid "To run GameCube games with Nintendont you need the boot.dol file in your Nintendont Loader Path."
|
||||
msgstr ""
|
||||
|
||||
#, c-format
|
||||
msgid "To use HID with %s you need the %s file."
|
||||
msgstr ""
|
||||
|
||||
#, c-format
|
||||
msgid "To use ocarina with %s you need the %s file."
|
||||
msgstr ""
|
||||
|
||||
msgid "Tooltip Delay"
|
||||
msgstr ""
|
||||
|
||||
@ -2033,7 +2044,7 @@ msgstr "Popisky"
|
||||
msgid "Transfer failed"
|
||||
msgstr "Prenos selhal"
|
||||
|
||||
msgid "USB Device not found."
|
||||
msgid "USB Device not initialized."
|
||||
msgstr ""
|
||||
|
||||
msgid "USB Loader GX is protected"
|
||||
@ -2054,6 +2065,9 @@ msgstr ""
|
||||
msgid "USBloaderGX couldn't write Nintendont config file. Launch Nintendont anyway?"
|
||||
msgstr ""
|
||||
|
||||
msgid "USBloaderGX r1218 is required for Nintendont Alpha v0.1. Please update your Nintendont boot.dol version."
|
||||
msgstr ""
|
||||
|
||||
msgid "Uninstall"
|
||||
msgstr "Odinstalace"
|
||||
|
||||
@ -2296,6 +2310,9 @@ msgstr "z "
|
||||
msgid "seconds left"
|
||||
msgstr "sekund zbývá"
|
||||
|
||||
#~ msgid "Main tester:"
|
||||
#~ msgstr "Muj tester:"
|
||||
|
||||
#~ msgid "Rename Game on WBFS"
|
||||
#~ msgstr "Prejmenovat hru na WBFS"
|
||||
|
||||
|
@ -5,7 +5,7 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: USB Loader GX\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2013-10-01 22:10+0200\n"
|
||||
"POT-Creation-Date: 2014-04-25 15:06+0200\n"
|
||||
"PO-Revision-Date: 2009-10-01 01:00+0200\n"
|
||||
"Last-Translator: Fox888[dk]\n"
|
||||
"Language-Team: [dk]\n"
|
||||
@ -1360,9 +1360,6 @@ msgstr ""
|
||||
msgid "Main Path"
|
||||
msgstr ""
|
||||
|
||||
msgid "Main tester:"
|
||||
msgstr "Hoved tester:"
|
||||
|
||||
msgid "Mar"
|
||||
msgstr ""
|
||||
|
||||
@ -1384,6 +1381,9 @@ msgstr ""
|
||||
msgid "Mount DVD drive"
|
||||
msgstr "Mount DVD-drev"
|
||||
|
||||
msgid "Mount USB at launch"
|
||||
msgstr ""
|
||||
|
||||
msgid "Multiple Partitions"
|
||||
msgstr "Multiple Partitioner"
|
||||
|
||||
@ -1435,9 +1435,6 @@ msgstr ""
|
||||
msgid "Nintendont Loader Path"
|
||||
msgstr ""
|
||||
|
||||
msgid "Nintendont currently only supports GameCube games on SD card."
|
||||
msgstr ""
|
||||
|
||||
msgid "No"
|
||||
msgstr "Nej"
|
||||
|
||||
@ -1567,6 +1564,9 @@ msgstr "Officiel side:"
|
||||
msgid "Offset"
|
||||
msgstr ""
|
||||
|
||||
msgid "Ok"
|
||||
msgstr ""
|
||||
|
||||
msgid "Only Game Partition"
|
||||
msgstr "Kun spil Partition"
|
||||
|
||||
@ -1973,6 +1973,9 @@ msgstr "Denne IOS er BootMii ios. Hvis du er sikker på at det ikke er BootMii o
|
||||
msgid "This IOS was not found on the titles list. If you are sure you have it installed than ignore this warning."
|
||||
msgstr "Denne IOS var ikke fundet i titel listen. Hvis du er sikker på at den er installeret ignorer denne advarsel."
|
||||
|
||||
msgid "This Nintendont version does not support games on USB."
|
||||
msgstr ""
|
||||
|
||||
msgid "This game has multiple discs. Please select the disc to launch."
|
||||
msgstr ""
|
||||
|
||||
@ -2024,6 +2027,14 @@ msgstr ""
|
||||
msgid "To run GameCube games with Nintendont you need the boot.dol file in your Nintendont Loader Path."
|
||||
msgstr ""
|
||||
|
||||
#, c-format
|
||||
msgid "To use HID with %s you need the %s file."
|
||||
msgstr ""
|
||||
|
||||
#, c-format
|
||||
msgid "To use ocarina with %s you need the %s file."
|
||||
msgstr ""
|
||||
|
||||
msgid "Tooltip Delay"
|
||||
msgstr ""
|
||||
|
||||
@ -2033,8 +2044,8 @@ msgstr "Værktøjstips"
|
||||
msgid "Transfer failed"
|
||||
msgstr "Overførelse fejlede"
|
||||
|
||||
msgid "USB Device not found."
|
||||
msgstr "USB enhed blev ikke fundet."
|
||||
msgid "USB Device not initialized."
|
||||
msgstr ""
|
||||
|
||||
msgid "USB Loader GX is protected"
|
||||
msgstr "USB Loader GX er beskyttet"
|
||||
@ -2054,6 +2065,9 @@ msgstr ""
|
||||
msgid "USBloaderGX couldn't write Nintendont config file. Launch Nintendont anyway?"
|
||||
msgstr ""
|
||||
|
||||
msgid "USBloaderGX r1218 is required for Nintendont Alpha v0.1. Please update your Nintendont boot.dol version."
|
||||
msgstr ""
|
||||
|
||||
msgid "Uninstall"
|
||||
msgstr "Afinstaller"
|
||||
|
||||
@ -2296,6 +2310,12 @@ msgstr "af"
|
||||
msgid "seconds left"
|
||||
msgstr "sekunder tilbage"
|
||||
|
||||
#~ msgid "Main tester:"
|
||||
#~ msgstr "Hoved tester:"
|
||||
|
||||
#~ msgid "USB Device not found."
|
||||
#~ msgstr "USB enhed blev ikke fundet."
|
||||
|
||||
#~ msgid "Custom Discarts"
|
||||
#~ msgstr "Tilpasset DVD billeder"
|
||||
|
||||
|
File diff suppressed because it is too large
Load Diff
@ -5,7 +5,7 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: USB Loader GX\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2013-10-01 22:10+0200\n"
|
||||
"POT-Creation-Date: 2014-04-25 15:06+0200\n"
|
||||
"PO-Revision-Date: 2009-10-01 01:00+0200\n"
|
||||
"Last-Translator: \n"
|
||||
"Language-Team: \n"
|
||||
@ -1360,9 +1360,6 @@ msgstr ""
|
||||
msgid "Main Path"
|
||||
msgstr ""
|
||||
|
||||
msgid "Main tester:"
|
||||
msgstr ""
|
||||
|
||||
msgid "Mar"
|
||||
msgstr ""
|
||||
|
||||
@ -1384,6 +1381,9 @@ msgstr ""
|
||||
msgid "Mount DVD drive"
|
||||
msgstr ""
|
||||
|
||||
msgid "Mount USB at launch"
|
||||
msgstr ""
|
||||
|
||||
msgid "Multiple Partitions"
|
||||
msgstr ""
|
||||
|
||||
@ -1435,9 +1435,6 @@ msgstr ""
|
||||
msgid "Nintendont Loader Path"
|
||||
msgstr ""
|
||||
|
||||
msgid "Nintendont currently only supports GameCube games on SD card."
|
||||
msgstr ""
|
||||
|
||||
msgid "No"
|
||||
msgstr ""
|
||||
|
||||
@ -1567,6 +1564,9 @@ msgstr ""
|
||||
msgid "Offset"
|
||||
msgstr ""
|
||||
|
||||
msgid "Ok"
|
||||
msgstr ""
|
||||
|
||||
msgid "Only Game Partition"
|
||||
msgstr ""
|
||||
|
||||
@ -1973,6 +1973,9 @@ msgstr ""
|
||||
msgid "This IOS was not found on the titles list. If you are sure you have it installed than ignore this warning."
|
||||
msgstr ""
|
||||
|
||||
msgid "This Nintendont version does not support games on USB."
|
||||
msgstr ""
|
||||
|
||||
msgid "This game has multiple discs. Please select the disc to launch."
|
||||
msgstr ""
|
||||
|
||||
@ -2024,6 +2027,14 @@ msgstr ""
|
||||
msgid "To run GameCube games with Nintendont you need the boot.dol file in your Nintendont Loader Path."
|
||||
msgstr ""
|
||||
|
||||
#, c-format
|
||||
msgid "To use HID with %s you need the %s file."
|
||||
msgstr ""
|
||||
|
||||
#, c-format
|
||||
msgid "To use ocarina with %s you need the %s file."
|
||||
msgstr ""
|
||||
|
||||
msgid "Tooltip Delay"
|
||||
msgstr ""
|
||||
|
||||
@ -2033,7 +2044,7 @@ msgstr ""
|
||||
msgid "Transfer failed"
|
||||
msgstr ""
|
||||
|
||||
msgid "USB Device not found."
|
||||
msgid "USB Device not initialized."
|
||||
msgstr ""
|
||||
|
||||
msgid "USB Loader GX is protected"
|
||||
@ -2054,6 +2065,9 @@ msgstr ""
|
||||
msgid "USBloaderGX couldn't write Nintendont config file. Launch Nintendont anyway?"
|
||||
msgstr ""
|
||||
|
||||
msgid "USBloaderGX r1218 is required for Nintendont Alpha v0.1. Please update your Nintendont boot.dol version."
|
||||
msgstr ""
|
||||
|
||||
msgid "Uninstall"
|
||||
msgstr ""
|
||||
|
||||
|
@ -5,7 +5,7 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: USB Loader GX\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2013-10-01 22:10+0200\n"
|
||||
"POT-Creation-Date: 2014-04-25 15:06+0200\n"
|
||||
"PO-Revision-Date: 2009-10-01 01:00+0200\n"
|
||||
"Last-Translator: c64rmx\n"
|
||||
"Language-Team: \n"
|
||||
@ -1360,9 +1360,6 @@ msgstr ""
|
||||
msgid "Main Path"
|
||||
msgstr ""
|
||||
|
||||
msgid "Main tester:"
|
||||
msgstr ""
|
||||
|
||||
msgid "Mar"
|
||||
msgstr "maalis"
|
||||
|
||||
@ -1384,6 +1381,9 @@ msgstr ""
|
||||
msgid "Mount DVD drive"
|
||||
msgstr ""
|
||||
|
||||
msgid "Mount USB at launch"
|
||||
msgstr ""
|
||||
|
||||
msgid "Multiple Partitions"
|
||||
msgstr ""
|
||||
|
||||
@ -1435,9 +1435,6 @@ msgstr ""
|
||||
msgid "Nintendont Loader Path"
|
||||
msgstr ""
|
||||
|
||||
msgid "Nintendont currently only supports GameCube games on SD card."
|
||||
msgstr ""
|
||||
|
||||
msgid "No"
|
||||
msgstr "Ei"
|
||||
|
||||
@ -1567,6 +1564,9 @@ msgstr "Virallinen sivusto:"
|
||||
msgid "Offset"
|
||||
msgstr ""
|
||||
|
||||
msgid "Ok"
|
||||
msgstr ""
|
||||
|
||||
msgid "Only Game Partition"
|
||||
msgstr ""
|
||||
|
||||
@ -1973,6 +1973,9 @@ msgstr ""
|
||||
msgid "This IOS was not found on the titles list. If you are sure you have it installed than ignore this warning."
|
||||
msgstr ""
|
||||
|
||||
msgid "This Nintendont version does not support games on USB."
|
||||
msgstr ""
|
||||
|
||||
msgid "This game has multiple discs. Please select the disc to launch."
|
||||
msgstr ""
|
||||
|
||||
@ -2024,6 +2027,14 @@ msgstr ""
|
||||
msgid "To run GameCube games with Nintendont you need the boot.dol file in your Nintendont Loader Path."
|
||||
msgstr ""
|
||||
|
||||
#, c-format
|
||||
msgid "To use HID with %s you need the %s file."
|
||||
msgstr ""
|
||||
|
||||
#, c-format
|
||||
msgid "To use ocarina with %s you need the %s file."
|
||||
msgstr ""
|
||||
|
||||
msgid "Tooltip Delay"
|
||||
msgstr ""
|
||||
|
||||
@ -2033,7 +2044,7 @@ msgstr "Vinkit"
|
||||
msgid "Transfer failed"
|
||||
msgstr ""
|
||||
|
||||
msgid "USB Device not found."
|
||||
msgid "USB Device not initialized."
|
||||
msgstr ""
|
||||
|
||||
msgid "USB Loader GX is protected"
|
||||
@ -2054,6 +2065,9 @@ msgstr ""
|
||||
msgid "USBloaderGX couldn't write Nintendont config file. Launch Nintendont anyway?"
|
||||
msgstr ""
|
||||
|
||||
msgid "USBloaderGX r1218 is required for Nintendont Alpha v0.1. Please update your Nintendont boot.dol version."
|
||||
msgstr ""
|
||||
|
||||
msgid "Uninstall"
|
||||
msgstr "Poista"
|
||||
|
||||
|
@ -1,11 +1,11 @@
|
||||
# USB Loader GX language source file.
|
||||
# French.lang - r1218
|
||||
# French.lang - r1219
|
||||
# don't delete/change this line (é).
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: USB Loader GX\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2013-10-01 22:10+0200\n"
|
||||
"POT-Creation-Date: 2014-04-25 15:06+0200\n"
|
||||
"PO-Revision-Date: 2009-10-01 01:00+0200\n"
|
||||
"Last-Translator: Cyan\n"
|
||||
"Language-Team: Badablek, Amour, ikya, Cyan & Kin8\n"
|
||||
@ -518,7 +518,7 @@ msgid "Customs/Original"
|
||||
msgstr "Persos/Originaux"
|
||||
|
||||
msgid "D Buttons"
|
||||
msgstr ""
|
||||
msgstr "Boutons directs"
|
||||
|
||||
msgid "DOL Path"
|
||||
msgstr "Dossier DOL alternatif"
|
||||
@ -1360,9 +1360,6 @@ msgstr "Dossier GameCube principal"
|
||||
msgid "Main Path"
|
||||
msgstr "Dossier principal"
|
||||
|
||||
msgid "Main tester:"
|
||||
msgstr "Testeur:"
|
||||
|
||||
msgid "Mar"
|
||||
msgstr "Mars"
|
||||
|
||||
@ -1384,6 +1381,9 @@ msgstr "Vidéo Motion+"
|
||||
msgid "Mount DVD drive"
|
||||
msgstr "Charger le DVD"
|
||||
|
||||
msgid "Mount USB at launch"
|
||||
msgstr "Charger USB au démarrage"
|
||||
|
||||
msgid "Multiple Partitions"
|
||||
msgstr "Partitions multiples"
|
||||
|
||||
@ -1435,9 +1435,6 @@ msgstr ""
|
||||
msgid "Nintendont Loader Path"
|
||||
msgstr "Dossier Loader Nintendont"
|
||||
|
||||
msgid "Nintendont currently only supports GameCube games on SD card."
|
||||
msgstr "Nintendont n'est actuellement compatible qu'avec les cartes SD."
|
||||
|
||||
msgid "No"
|
||||
msgstr "Non"
|
||||
|
||||
@ -1567,6 +1564,9 @@ msgstr "Site officiel:"
|
||||
msgid "Offset"
|
||||
msgstr ""
|
||||
|
||||
msgid "Ok"
|
||||
msgstr ""
|
||||
|
||||
msgid "Only Game Partition"
|
||||
msgstr "Uniquement la partition de jeu"
|
||||
|
||||
@ -1973,6 +1973,9 @@ msgstr "Cet IOS est l'IOS de BootMii. Si vous étes certain que ce n'est pas Boo
|
||||
msgid "This IOS was not found on the titles list. If you are sure you have it installed than ignore this warning."
|
||||
msgstr "Cet IOS n'a pas été trouvé dans la liste des titres. Si vous êtes certain de l'avoir installé, ignorez cet avertissement."
|
||||
|
||||
msgid "This Nintendont version does not support games on USB."
|
||||
msgstr "Cette version de Nintendont n'est pas compatible avec les jeux sur USB."
|
||||
|
||||
msgid "This game has multiple discs. Please select the disc to launch."
|
||||
msgstr "Ce jeu a plusieurs disques, choisissez celui que vous souhaitez lancer."
|
||||
|
||||
@ -2022,7 +2025,15 @@ msgid "To run GameCube games with Devolution you need the loader.bin file in you
|
||||
msgstr "Pour lancer les jeux GameCube avec Devolution vous devez placer le fichier loader.bin dans le Dossier Loader Devolution."
|
||||
|
||||
msgid "To run GameCube games with Nintendont you need the boot.dol file in your Nintendont Loader Path."
|
||||
msgstr "Pour lancer les jeux GameCube avec Nintendont vous devez placer le fichier loader.bin dans le Dossier Loader Nintendont."
|
||||
msgstr "Pour lancer les jeux GameCube avec Nintendont vous devez placer le fichier boot.dol dans le Dossier Loader Nintendont."
|
||||
|
||||
#, c-format
|
||||
msgid "To use HID with %s you need the %s file."
|
||||
msgstr "Pour utiliser HID avec %s vous avez besoin du fichier %s."
|
||||
|
||||
#, c-format
|
||||
msgid "To use ocarina with %s you need the %s file."
|
||||
msgstr "Pour utiliser Ocarina avec %s vous avez besoin du fichier %s."
|
||||
|
||||
msgid "Tooltip Delay"
|
||||
msgstr "Délai des Info-bulles"
|
||||
@ -2033,8 +2044,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 initialized."
|
||||
msgstr "Périphérique USB non initialisé."
|
||||
|
||||
msgid "USB Loader GX is protected"
|
||||
msgstr "USB Loader GX est verrouillé"
|
||||
@ -2054,6 +2065,9 @@ msgstr "USBLoaderGX n'a pas pu vérifier le fichier boot.dol de nintendont. Voul
|
||||
msgid "USBloaderGX couldn't write Nintendont config file. Launch Nintendont anyway?"
|
||||
msgstr "USBLoaderGX n'a pas pu créer le fichier de configuration de Nintendont. Voulez-vous quand même lancer Nintendont ?"
|
||||
|
||||
msgid "USBloaderGX r1218 is required for Nintendont Alpha v0.1. Please update your Nintendont boot.dol version."
|
||||
msgstr "Nintendont Alpha v0.1 ne fonctionne qu'avec USBLoaderGX r1218. Veuillez mettre à jour votre version de Nintendont."
|
||||
|
||||
msgid "Uninstall"
|
||||
msgstr "Désinstaller"
|
||||
|
||||
@ -2296,6 +2310,15 @@ msgstr "sur"
|
||||
msgid "seconds left"
|
||||
msgstr "secondes restantes"
|
||||
|
||||
#~ msgid "Main tester:"
|
||||
#~ msgstr "Testeur:"
|
||||
|
||||
#~ msgid "Nintendont currently only supports GameCube games on SD card."
|
||||
#~ msgstr "Nintendont n'est actuellement compatible qu'avec les cartes SD."
|
||||
|
||||
#~ msgid "USB Device not found."
|
||||
#~ msgstr "Périphérique USB introuvable."
|
||||
|
||||
#~ msgid "Boot/Standard"
|
||||
#~ msgstr "IOS par défaut"
|
||||
|
||||
|
@ -5,7 +5,7 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: USB Loader GX\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2013-10-01 22:10+0200\n"
|
||||
"POT-Creation-Date: 2014-04-25 15:06+0200\n"
|
||||
"PO-Revision-Date: 2010-07-03 17:35-0800\n"
|
||||
"Last-Translator: TheRealVisitor\n"
|
||||
"Language-Team: Bertilax, Snoozer, wishmasterf, ZEN.13, TheRealVisitor\n"
|
||||
@ -1360,9 +1360,6 @@ msgstr "GameCube"
|
||||
msgid "Main Path"
|
||||
msgstr "Haupt Pfad"
|
||||
|
||||
msgid "Main tester:"
|
||||
msgstr "Haupttester:"
|
||||
|
||||
msgid "Mar"
|
||||
msgstr "März"
|
||||
|
||||
@ -1384,6 +1381,9 @@ msgstr "Motion+ Video"
|
||||
msgid "Mount DVD drive"
|
||||
msgstr "Spiel starten"
|
||||
|
||||
msgid "Mount USB at launch"
|
||||
msgstr ""
|
||||
|
||||
msgid "Multiple Partitions"
|
||||
msgstr "Mehrere Partitionen"
|
||||
|
||||
@ -1435,9 +1435,6 @@ msgstr ""
|
||||
msgid "Nintendont Loader Path"
|
||||
msgstr ""
|
||||
|
||||
msgid "Nintendont currently only supports GameCube games on SD card."
|
||||
msgstr ""
|
||||
|
||||
msgid "No"
|
||||
msgstr "Nein"
|
||||
|
||||
@ -1567,6 +1564,9 @@ msgstr "Offizielle Seite:"
|
||||
msgid "Offset"
|
||||
msgstr "Offset"
|
||||
|
||||
msgid "Ok"
|
||||
msgstr ""
|
||||
|
||||
msgid "Only Game Partition"
|
||||
msgstr "Nur Spiele Partition"
|
||||
|
||||
@ -1973,6 +1973,9 @@ msgstr "Dieses IOS ist das BootMii IOS. Solltest du sicher sein, dass es nicht d
|
||||
msgid "This IOS was not found on the titles list. If you are sure you have it installed than ignore this warning."
|
||||
msgstr "Dieses IOS wurde nicht in der Titelliste gefunden. Wenn du sicher bist es installiert zu haben, ignoriere die Warnung."
|
||||
|
||||
msgid "This Nintendont version does not support games on USB."
|
||||
msgstr ""
|
||||
|
||||
msgid "This game has multiple discs. Please select the disc to launch."
|
||||
msgstr ""
|
||||
|
||||
@ -2024,6 +2027,14 @@ msgstr ""
|
||||
msgid "To run GameCube games with Nintendont you need the boot.dol file in your Nintendont Loader Path."
|
||||
msgstr ""
|
||||
|
||||
#, c-format
|
||||
msgid "To use HID with %s you need the %s file."
|
||||
msgstr ""
|
||||
|
||||
#, c-format
|
||||
msgid "To use ocarina with %s you need the %s file."
|
||||
msgstr ""
|
||||
|
||||
msgid "Tooltip Delay"
|
||||
msgstr "Tooltip Verzögerung"
|
||||
|
||||
@ -2033,8 +2044,8 @@ msgstr "Quickinfo"
|
||||
msgid "Transfer failed"
|
||||
msgstr "Transfer fehlgeschlagen"
|
||||
|
||||
msgid "USB Device not found."
|
||||
msgstr "USB-Gerät nicht gefunden."
|
||||
msgid "USB Device not initialized."
|
||||
msgstr ""
|
||||
|
||||
msgid "USB Loader GX is protected"
|
||||
msgstr "USB Loader GX ist jetzt geschützt."
|
||||
@ -2054,6 +2065,9 @@ msgstr ""
|
||||
msgid "USBloaderGX couldn't write Nintendont config file. Launch Nintendont anyway?"
|
||||
msgstr ""
|
||||
|
||||
msgid "USBloaderGX r1218 is required for Nintendont Alpha v0.1. Please update your Nintendont boot.dol version."
|
||||
msgstr ""
|
||||
|
||||
msgid "Uninstall"
|
||||
msgstr "Deinstallieren"
|
||||
|
||||
@ -2296,6 +2310,12 @@ msgstr "von"
|
||||
msgid "seconds left"
|
||||
msgstr "Sekunden verbleiben"
|
||||
|
||||
#~ msgid "Main tester:"
|
||||
#~ msgstr "Haupttester:"
|
||||
|
||||
#~ msgid "USB Device not found."
|
||||
#~ msgstr "USB-Gerät nicht gefunden."
|
||||
|
||||
#~ msgid "Boot/Standard"
|
||||
#~ msgstr "Bootstandard (cIOS)"
|
||||
|
||||
|
@ -5,7 +5,7 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: USB Loader GX\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2013-10-01 22:10+0200\n"
|
||||
"POT-Creation-Date: 2014-04-25 15:06+0200\n"
|
||||
"Last-Translator: nakata6790\n"
|
||||
"Language-Team: nakata6790 (aka0107@gmail.com)\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
@ -1359,9 +1359,6 @@ msgstr "ÂáóéêÞ ôïðïèåóßá GameCube"
|
||||
msgid "Main Path"
|
||||
msgstr "ÂáóéêÞ ôïðïèåóßá"
|
||||
|
||||
msgid "Main tester:"
|
||||
msgstr "Kýñéïò äïêéìáóôÞò:"
|
||||
|
||||
msgid "Mar"
|
||||
msgstr "MÜñôéïò"
|
||||
|
||||
@ -1383,6 +1380,9 @@ msgstr "âéíôåï motion+"
|
||||
msgid "Mount DVD drive"
|
||||
msgstr "Öüñôùóç DVD"
|
||||
|
||||
msgid "Mount USB at launch"
|
||||
msgstr ""
|
||||
|
||||
msgid "Multiple Partitions"
|
||||
msgstr "ðïëëáðëÜ partitions"
|
||||
|
||||
@ -1434,9 +1434,6 @@ msgstr ""
|
||||
msgid "Nintendont Loader Path"
|
||||
msgstr ""
|
||||
|
||||
msgid "Nintendont currently only supports GameCube games on SD card."
|
||||
msgstr ""
|
||||
|
||||
msgid "No"
|
||||
msgstr "Ï÷é"
|
||||
|
||||
@ -1566,6 +1563,9 @@ msgstr "Åðßóçìï Site:"
|
||||
msgid "Offset"
|
||||
msgstr "Offset"
|
||||
|
||||
msgid "Ok"
|
||||
msgstr ""
|
||||
|
||||
msgid "Only Game Partition"
|
||||
msgstr "Müíï ôï partition ôùí ðáé÷íéäéþí"
|
||||
|
||||
@ -1972,6 +1972,9 @@ msgstr "Ôï ÉÏS áõôü åßíáé ôïõ ëåéôïõñãéêïý BootMii.
|
||||
msgid "This IOS was not found on the titles list. If you are sure you have it installed than ignore this warning."
|
||||
msgstr "Ôï ÉÏS áõôü äåí âñÝèçêå óôçí ëßóôá. Áí åßóôå âÝâáéïò-ç üôé ôï Ý÷åôå åãêáôåóôçìÝíï, ðáñáêáëþ áãíïÞóôå áõôÞ ôçí ðñïåéäïðïßçóç."
|
||||
|
||||
msgid "This Nintendont version does not support games on USB."
|
||||
msgstr ""
|
||||
|
||||
msgid "This game has multiple discs. Please select the disc to launch."
|
||||
msgstr ""
|
||||
|
||||
@ -2023,6 +2026,14 @@ msgstr ""
|
||||
msgid "To run GameCube games with Nintendont you need the boot.dol file in your Nintendont Loader Path."
|
||||
msgstr ""
|
||||
|
||||
#, c-format
|
||||
msgid "To use HID with %s you need the %s file."
|
||||
msgstr ""
|
||||
|
||||
#, c-format
|
||||
msgid "To use ocarina with %s you need the %s file."
|
||||
msgstr ""
|
||||
|
||||
msgid "Tooltip Delay"
|
||||
msgstr "ÊáèõóôÝñçóç åìöÜíéóçò åôéêåôþí"
|
||||
|
||||
@ -2032,8 +2043,8 @@ msgstr "ÅôéêÝôåò"
|
||||
msgid "Transfer failed"
|
||||
msgstr "Áíåðéôõ÷Þò ìåôáöïñÜ áñ÷åßùí"
|
||||
|
||||
msgid "USB Device not found."
|
||||
msgstr "Äåí âñÝèçêå ç óõóêåõÞ USB."
|
||||
msgid "USB Device not initialized."
|
||||
msgstr ""
|
||||
|
||||
msgid "USB Loader GX is protected"
|
||||
msgstr "Ôï USB Loader GX åßíáé ðñïóôáôåõìÝíï"
|
||||
@ -2053,6 +2064,9 @@ msgstr ""
|
||||
msgid "USBloaderGX couldn't write Nintendont config file. Launch Nintendont anyway?"
|
||||
msgstr ""
|
||||
|
||||
msgid "USBloaderGX r1218 is required for Nintendont Alpha v0.1. Please update your Nintendont boot.dol version."
|
||||
msgstr ""
|
||||
|
||||
msgid "Uninstall"
|
||||
msgstr "ÁðåãêáôÜóôáóç"
|
||||
|
||||
@ -2295,6 +2309,12 @@ msgstr "áðü"
|
||||
msgid "seconds left"
|
||||
msgstr "äåõôåñüëåðôá áðïìÝíïõí"
|
||||
|
||||
#~ msgid "Main tester:"
|
||||
#~ msgstr "Kýñéïò äïêéìáóôÞò:"
|
||||
|
||||
#~ msgid "USB Device not found."
|
||||
#~ msgstr "Äåí âñÝèçêå ç óõóêåõÞ USB."
|
||||
|
||||
#~ msgid "Boot/Standard"
|
||||
#~ msgstr "Åêêéíçóç/Âáóéêü"
|
||||
|
||||
|
@ -5,7 +5,7 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: USB Loader GX\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2013-10-01 22:10+0200\n"
|
||||
"POT-Creation-Date: 2014-04-25 15:06+0200\n"
|
||||
"PO-Revision-Date: 2009-12-29 11:05+0100\n"
|
||||
"Last-Translator: Springdale\n"
|
||||
"Language-Team: Tusk, Springdale\n"
|
||||
@ -1360,9 +1360,6 @@ msgstr ""
|
||||
msgid "Main Path"
|
||||
msgstr ""
|
||||
|
||||
msgid "Main tester:"
|
||||
msgstr ""
|
||||
|
||||
msgid "Mar"
|
||||
msgstr "Már"
|
||||
|
||||
@ -1384,6 +1381,9 @@ msgstr ""
|
||||
msgid "Mount DVD drive"
|
||||
msgstr "DVD meghajtó felcsatolása"
|
||||
|
||||
msgid "Mount USB at launch"
|
||||
msgstr ""
|
||||
|
||||
msgid "Multiple Partitions"
|
||||
msgstr ""
|
||||
|
||||
@ -1435,9 +1435,6 @@ msgstr ""
|
||||
msgid "Nintendont Loader Path"
|
||||
msgstr ""
|
||||
|
||||
msgid "Nintendont currently only supports GameCube games on SD card."
|
||||
msgstr ""
|
||||
|
||||
msgid "No"
|
||||
msgstr "Nem"
|
||||
|
||||
@ -1567,6 +1564,9 @@ msgstr "Hivatalos oldal:"
|
||||
msgid "Offset"
|
||||
msgstr ""
|
||||
|
||||
msgid "Ok"
|
||||
msgstr ""
|
||||
|
||||
msgid "Only Game Partition"
|
||||
msgstr ""
|
||||
|
||||
@ -1973,6 +1973,9 @@ msgstr ""
|
||||
msgid "This IOS was not found on the titles list. If you are sure you have it installed than ignore this warning."
|
||||
msgstr ""
|
||||
|
||||
msgid "This Nintendont version does not support games on USB."
|
||||
msgstr ""
|
||||
|
||||
msgid "This game has multiple discs. Please select the disc to launch."
|
||||
msgstr ""
|
||||
|
||||
@ -2024,6 +2027,14 @@ msgstr ""
|
||||
msgid "To run GameCube games with Nintendont you need the boot.dol file in your Nintendont Loader Path."
|
||||
msgstr ""
|
||||
|
||||
#, c-format
|
||||
msgid "To use HID with %s you need the %s file."
|
||||
msgstr ""
|
||||
|
||||
#, c-format
|
||||
msgid "To use ocarina with %s you need the %s file."
|
||||
msgstr ""
|
||||
|
||||
msgid "Tooltip Delay"
|
||||
msgstr ""
|
||||
|
||||
@ -2033,7 +2044,7 @@ msgstr "Súgók"
|
||||
msgid "Transfer failed"
|
||||
msgstr ""
|
||||
|
||||
msgid "USB Device not found."
|
||||
msgid "USB Device not initialized."
|
||||
msgstr ""
|
||||
|
||||
msgid "USB Loader GX is protected"
|
||||
@ -2054,6 +2065,9 @@ msgstr ""
|
||||
msgid "USBloaderGX couldn't write Nintendont config file. Launch Nintendont anyway?"
|
||||
msgstr ""
|
||||
|
||||
msgid "USBloaderGX r1218 is required for Nintendont Alpha v0.1. Please update your Nintendont boot.dol version."
|
||||
msgstr ""
|
||||
|
||||
msgid "Uninstall"
|
||||
msgstr "Törlés"
|
||||
|
||||
|
@ -5,7 +5,7 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: USB Loader GX\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2013-10-01 22:10+0200\n"
|
||||
"POT-Creation-Date: 2014-04-25 15:06+0200\n"
|
||||
"PO-Revision-Date: 2011-09-11 12:19+0100\n"
|
||||
"Last-Translator: xFede\n"
|
||||
"Language-Team: xFede (fedeanto11@gmail.com)\n"
|
||||
@ -1360,9 +1360,6 @@ msgstr "Percorso GameCube"
|
||||
msgid "Main Path"
|
||||
msgstr "Percorso principale"
|
||||
|
||||
msgid "Main tester:"
|
||||
msgstr "Tester principale:"
|
||||
|
||||
msgid "Mar"
|
||||
msgstr "Marzo"
|
||||
|
||||
@ -1384,6 +1381,9 @@ msgstr "Video motion+"
|
||||
msgid "Mount DVD drive"
|
||||
msgstr "Avvia DVD"
|
||||
|
||||
msgid "Mount USB at launch"
|
||||
msgstr ""
|
||||
|
||||
msgid "Multiple Partitions"
|
||||
msgstr "Partizioni multiple"
|
||||
|
||||
@ -1435,9 +1435,6 @@ msgstr ""
|
||||
msgid "Nintendont Loader Path"
|
||||
msgstr ""
|
||||
|
||||
msgid "Nintendont currently only supports GameCube games on SD card."
|
||||
msgstr ""
|
||||
|
||||
msgid "No"
|
||||
msgstr "No"
|
||||
|
||||
@ -1567,6 +1564,9 @@ msgstr "Sito ufficiale:"
|
||||
msgid "Offset"
|
||||
msgstr "Offset"
|
||||
|
||||
msgid "Ok"
|
||||
msgstr ""
|
||||
|
||||
msgid "Only Game Partition"
|
||||
msgstr "Solo Partizione Gioco"
|
||||
|
||||
@ -1973,6 +1973,9 @@ msgstr "Questo IOS è quello del BootMii. Se sei sicuro di aver installato qualc
|
||||
msgid "This IOS was not found on the titles list. If you are sure you have it installed than ignore this warning."
|
||||
msgstr "Questo IOS non è stato trovato nella lista dei titoli. Se sei sicuro di averlo installato ignora questo avvertimento."
|
||||
|
||||
msgid "This Nintendont version does not support games on USB."
|
||||
msgstr ""
|
||||
|
||||
msgid "This game has multiple discs. Please select the disc to launch."
|
||||
msgstr "Questo gioco contiene più di un disco. Selezione quello da avviare."
|
||||
|
||||
@ -2024,6 +2027,14 @@ msgstr ""
|
||||
msgid "To run GameCube games with Nintendont you need the boot.dol file in your Nintendont Loader Path."
|
||||
msgstr ""
|
||||
|
||||
#, c-format
|
||||
msgid "To use HID with %s you need the %s file."
|
||||
msgstr ""
|
||||
|
||||
#, c-format
|
||||
msgid "To use ocarina with %s you need the %s file."
|
||||
msgstr ""
|
||||
|
||||
msgid "Tooltip Delay"
|
||||
msgstr "Ritardo suggerimenti"
|
||||
|
||||
@ -2033,8 +2044,8 @@ msgstr "Suggerimenti"
|
||||
msgid "Transfer failed"
|
||||
msgstr "Trasferimento fallito"
|
||||
|
||||
msgid "USB Device not found."
|
||||
msgstr "Periferica USB non trovata."
|
||||
msgid "USB Device not initialized."
|
||||
msgstr ""
|
||||
|
||||
msgid "USB Loader GX is protected"
|
||||
msgstr "USB Loader GX è protetto"
|
||||
@ -2054,6 +2065,9 @@ msgstr ""
|
||||
msgid "USBloaderGX couldn't write Nintendont config file. Launch Nintendont anyway?"
|
||||
msgstr ""
|
||||
|
||||
msgid "USBloaderGX r1218 is required for Nintendont Alpha v0.1. Please update your Nintendont boot.dol version."
|
||||
msgstr ""
|
||||
|
||||
msgid "Uninstall"
|
||||
msgstr "Disinstalla"
|
||||
|
||||
@ -2296,6 +2310,12 @@ msgstr "di"
|
||||
msgid "seconds left"
|
||||
msgstr "secondi rimasti"
|
||||
|
||||
#~ msgid "Main tester:"
|
||||
#~ msgstr "Tester principale:"
|
||||
|
||||
#~ msgid "USB Device not found."
|
||||
#~ msgstr "Periferica USB non trovata."
|
||||
|
||||
#~ msgid "Boot/Standard"
|
||||
#~ msgstr "cIOS predefinito"
|
||||
|
||||
|
@ -5,7 +5,7 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: USB Loader GX\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2013-10-01 22:10+0200\n"
|
||||
"POT-Creation-Date: 2014-04-25 15:06+0200\n"
|
||||
"PO-Revision-Date: 2009-10-01 01:00+0200\n"
|
||||
"Last-Translator: hosigumayuugi\n"
|
||||
"Language-Team: hosigumayuugi\n"
|
||||
@ -1360,9 +1360,6 @@ msgstr "ゲームキューブ"
|
||||
msgid "Main Path"
|
||||
msgstr "メインパス"
|
||||
|
||||
msgid "Main tester:"
|
||||
msgstr "メインテスター:"
|
||||
|
||||
msgid "Mar"
|
||||
msgstr "3月"
|
||||
|
||||
@ -1384,6 +1381,9 @@ msgstr "モーション+説明ムービー"
|
||||
msgid "Mount DVD drive"
|
||||
msgstr "DVDを起動"
|
||||
|
||||
msgid "Mount USB at launch"
|
||||
msgstr ""
|
||||
|
||||
msgid "Multiple Partitions"
|
||||
msgstr "マルチ領域"
|
||||
|
||||
@ -1435,9 +1435,6 @@ msgstr ""
|
||||
msgid "Nintendont Loader Path"
|
||||
msgstr ""
|
||||
|
||||
msgid "Nintendont currently only supports GameCube games on SD card."
|
||||
msgstr ""
|
||||
|
||||
msgid "No"
|
||||
msgstr "いいえ"
|
||||
|
||||
@ -1567,6 +1564,9 @@ msgstr "公式サイト:"
|
||||
msgid "Offset"
|
||||
msgstr "代替"
|
||||
|
||||
msgid "Ok"
|
||||
msgstr ""
|
||||
|
||||
msgid "Only Game Partition"
|
||||
msgstr "ゲーム領域のみ"
|
||||
|
||||
@ -1973,6 +1973,9 @@ msgstr "このIOSはBootMiiのIOSです"
|
||||
msgid "This IOS was not found on the titles list. If you are sure you have it installed than ignore this warning."
|
||||
msgstr "このIOSはタイトルリストにありませんでした"
|
||||
|
||||
msgid "This Nintendont version does not support games on USB."
|
||||
msgstr ""
|
||||
|
||||
msgid "This game has multiple discs. Please select the disc to launch."
|
||||
msgstr ""
|
||||
|
||||
@ -2024,6 +2027,14 @@ msgstr ""
|
||||
msgid "To run GameCube games with Nintendont you need the boot.dol file in your Nintendont Loader Path."
|
||||
msgstr ""
|
||||
|
||||
#, c-format
|
||||
msgid "To use HID with %s you need the %s file."
|
||||
msgstr ""
|
||||
|
||||
#, c-format
|
||||
msgid "To use ocarina with %s you need the %s file."
|
||||
msgstr ""
|
||||
|
||||
msgid "Tooltip Delay"
|
||||
msgstr "ヒントバルーンの遅延"
|
||||
|
||||
@ -2033,8 +2044,8 @@ msgstr "ヒントバルーン"
|
||||
msgid "Transfer failed"
|
||||
msgstr "転送に失敗しました"
|
||||
|
||||
msgid "USB Device not found."
|
||||
msgstr "USB機器が見つかりません"
|
||||
msgid "USB Device not initialized."
|
||||
msgstr ""
|
||||
|
||||
msgid "USB Loader GX is protected"
|
||||
msgstr "GXは保護されています"
|
||||
@ -2054,6 +2065,9 @@ msgstr ""
|
||||
msgid "USBloaderGX couldn't write Nintendont config file. Launch Nintendont anyway?"
|
||||
msgstr ""
|
||||
|
||||
msgid "USBloaderGX r1218 is required for Nintendont Alpha v0.1. Please update your Nintendont boot.dol version."
|
||||
msgstr ""
|
||||
|
||||
msgid "Uninstall"
|
||||
msgstr "アンインストール"
|
||||
|
||||
@ -2296,6 +2310,12 @@ msgstr "中"
|
||||
msgid "seconds left"
|
||||
msgstr "秒で完了"
|
||||
|
||||
#~ msgid "Main tester:"
|
||||
#~ msgstr "メインテスター:"
|
||||
|
||||
#~ msgid "USB Device not found."
|
||||
#~ msgstr "USB機器が見つかりません"
|
||||
|
||||
#~ msgid "Boot/Standard"
|
||||
#~ msgstr "使用するcIOS"
|
||||
|
||||
|
@ -5,7 +5,7 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: USB Loader GX\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2013-10-01 22:10+0200\n"
|
||||
"POT-Creation-Date: 2014-04-25 15:06+0200\n"
|
||||
"PO-Revision-Date: 2009-10-01 01:00+0200\n"
|
||||
"Last-Translator: nextos@korea.com\n"
|
||||
"Language-Team: \n"
|
||||
@ -1360,9 +1360,6 @@ msgstr ""
|
||||
msgid "Main Path"
|
||||
msgstr ""
|
||||
|
||||
msgid "Main tester:"
|
||||
msgstr ""
|
||||
|
||||
msgid "Mar"
|
||||
msgstr "4월"
|
||||
|
||||
@ -1384,6 +1381,9 @@ msgstr ""
|
||||
msgid "Mount DVD drive"
|
||||
msgstr ""
|
||||
|
||||
msgid "Mount USB at launch"
|
||||
msgstr ""
|
||||
|
||||
msgid "Multiple Partitions"
|
||||
msgstr ""
|
||||
|
||||
@ -1435,9 +1435,6 @@ msgstr ""
|
||||
msgid "Nintendont Loader Path"
|
||||
msgstr ""
|
||||
|
||||
msgid "Nintendont currently only supports GameCube games on SD card."
|
||||
msgstr ""
|
||||
|
||||
msgid "No"
|
||||
msgstr "아니오"
|
||||
|
||||
@ -1567,6 +1564,9 @@ msgstr "공식 사이트:"
|
||||
msgid "Offset"
|
||||
msgstr ""
|
||||
|
||||
msgid "Ok"
|
||||
msgstr ""
|
||||
|
||||
msgid "Only Game Partition"
|
||||
msgstr ""
|
||||
|
||||
@ -1973,6 +1973,9 @@ msgstr ""
|
||||
msgid "This IOS was not found on the titles list. If you are sure you have it installed than ignore this warning."
|
||||
msgstr ""
|
||||
|
||||
msgid "This Nintendont version does not support games on USB."
|
||||
msgstr ""
|
||||
|
||||
msgid "This game has multiple discs. Please select the disc to launch."
|
||||
msgstr ""
|
||||
|
||||
@ -2024,6 +2027,14 @@ msgstr ""
|
||||
msgid "To run GameCube games with Nintendont you need the boot.dol file in your Nintendont Loader Path."
|
||||
msgstr ""
|
||||
|
||||
#, c-format
|
||||
msgid "To use HID with %s you need the %s file."
|
||||
msgstr ""
|
||||
|
||||
#, c-format
|
||||
msgid "To use ocarina with %s you need the %s file."
|
||||
msgstr ""
|
||||
|
||||
msgid "Tooltip Delay"
|
||||
msgstr ""
|
||||
|
||||
@ -2033,7 +2044,7 @@ msgstr "Tooltips"
|
||||
msgid "Transfer failed"
|
||||
msgstr ""
|
||||
|
||||
msgid "USB Device not found."
|
||||
msgid "USB Device not initialized."
|
||||
msgstr ""
|
||||
|
||||
msgid "USB Loader GX is protected"
|
||||
@ -2054,6 +2065,9 @@ msgstr ""
|
||||
msgid "USBloaderGX couldn't write Nintendont config file. Launch Nintendont anyway?"
|
||||
msgstr ""
|
||||
|
||||
msgid "USBloaderGX r1218 is required for Nintendont Alpha v0.1. Please update your Nintendont boot.dol version."
|
||||
msgstr ""
|
||||
|
||||
msgid "Uninstall"
|
||||
msgstr "제거"
|
||||
|
||||
|
@ -5,7 +5,7 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: USB Loader GX\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2013-10-01 22:10+0200\n"
|
||||
"POT-Creation-Date: 2014-04-25 15:06+0200\n"
|
||||
"PO-Revision-Date: 2009-10-01 01:00+0200\n"
|
||||
"Last-Translator: raschi\n"
|
||||
"Language-Team: raschi\n"
|
||||
@ -1360,9 +1360,6 @@ msgstr ""
|
||||
msgid "Main Path"
|
||||
msgstr ""
|
||||
|
||||
msgid "Main tester:"
|
||||
msgstr "Hovedtester:"
|
||||
|
||||
msgid "Mar"
|
||||
msgstr ""
|
||||
|
||||
@ -1384,6 +1381,9 @@ msgstr "Motion+ film"
|
||||
msgid "Mount DVD drive"
|
||||
msgstr "Last DVD stasjon"
|
||||
|
||||
msgid "Mount USB at launch"
|
||||
msgstr ""
|
||||
|
||||
msgid "Multiple Partitions"
|
||||
msgstr "Flere partisjoner"
|
||||
|
||||
@ -1435,9 +1435,6 @@ msgstr ""
|
||||
msgid "Nintendont Loader Path"
|
||||
msgstr ""
|
||||
|
||||
msgid "Nintendont currently only supports GameCube games on SD card."
|
||||
msgstr ""
|
||||
|
||||
msgid "No"
|
||||
msgstr "Nei"
|
||||
|
||||
@ -1567,6 +1564,9 @@ msgstr "Offisiell nettside:"
|
||||
msgid "Offset"
|
||||
msgstr ""
|
||||
|
||||
msgid "Ok"
|
||||
msgstr ""
|
||||
|
||||
msgid "Only Game Partition"
|
||||
msgstr "Kun spill partisjon"
|
||||
|
||||
@ -1973,6 +1973,9 @@ msgstr "Dette IOS er vanligvis BootMii IOS. Hvis du er sikker på at dette ikke
|
||||
msgid "This IOS was not found on the titles list. If you are sure you have it installed than ignore this warning."
|
||||
msgstr "Dette IOS ble ikke funnet i tittel listen. Hvis du er sikker på at du har det installert, kan du ignorere denne advarselen."
|
||||
|
||||
msgid "This Nintendont version does not support games on USB."
|
||||
msgstr ""
|
||||
|
||||
msgid "This game has multiple discs. Please select the disc to launch."
|
||||
msgstr ""
|
||||
|
||||
@ -2024,6 +2027,14 @@ msgstr ""
|
||||
msgid "To run GameCube games with Nintendont you need the boot.dol file in your Nintendont Loader Path."
|
||||
msgstr ""
|
||||
|
||||
#, c-format
|
||||
msgid "To use HID with %s you need the %s file."
|
||||
msgstr ""
|
||||
|
||||
#, c-format
|
||||
msgid "To use ocarina with %s you need the %s file."
|
||||
msgstr ""
|
||||
|
||||
msgid "Tooltip Delay"
|
||||
msgstr ""
|
||||
|
||||
@ -2033,7 +2044,7 @@ msgstr "Verktøystips"
|
||||
msgid "Transfer failed"
|
||||
msgstr "Overføring feilet"
|
||||
|
||||
msgid "USB Device not found."
|
||||
msgid "USB Device not initialized."
|
||||
msgstr ""
|
||||
|
||||
msgid "USB Loader GX is protected"
|
||||
@ -2054,6 +2065,9 @@ msgstr ""
|
||||
msgid "USBloaderGX couldn't write Nintendont config file. Launch Nintendont anyway?"
|
||||
msgstr ""
|
||||
|
||||
msgid "USBloaderGX r1218 is required for Nintendont Alpha v0.1. Please update your Nintendont boot.dol version."
|
||||
msgstr ""
|
||||
|
||||
msgid "Uninstall"
|
||||
msgstr ""
|
||||
|
||||
@ -2296,6 +2310,9 @@ msgstr "av"
|
||||
msgid "seconds left"
|
||||
msgstr "sekunder gjenstår"
|
||||
|
||||
#~ msgid "Main tester:"
|
||||
#~ msgstr "Hovedtester:"
|
||||
|
||||
#~ msgid "Boot/Standard"
|
||||
#~ msgstr "Boot/Standard"
|
||||
|
||||
|
@ -5,7 +5,7 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: USB Loader GX\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2013-10-01 22:10+0200\n"
|
||||
"POT-Creation-Date: 2014-04-25 15:06+0200\n"
|
||||
"PO-Revision-Date: 2009-10-01 01:00+0200\n"
|
||||
"Last-Translator: ziom666 (zadania_prog@vp.pl)\n"
|
||||
"Language-Team: \n"
|
||||
@ -1360,9 +1360,6 @@ msgstr ""
|
||||
msgid "Main Path"
|
||||
msgstr ""
|
||||
|
||||
msgid "Main tester:"
|
||||
msgstr ""
|
||||
|
||||
msgid "Mar"
|
||||
msgstr "Marzec"
|
||||
|
||||
@ -1384,6 +1381,9 @@ msgstr ""
|
||||
msgid "Mount DVD drive"
|
||||
msgstr "Uruchom naped DVD"
|
||||
|
||||
msgid "Mount USB at launch"
|
||||
msgstr ""
|
||||
|
||||
msgid "Multiple Partitions"
|
||||
msgstr ""
|
||||
|
||||
@ -1435,9 +1435,6 @@ msgstr ""
|
||||
msgid "Nintendont Loader Path"
|
||||
msgstr ""
|
||||
|
||||
msgid "Nintendont currently only supports GameCube games on SD card."
|
||||
msgstr ""
|
||||
|
||||
msgid "No"
|
||||
msgstr "Nie"
|
||||
|
||||
@ -1567,6 +1564,9 @@ msgstr "Strona oficjalna:"
|
||||
msgid "Offset"
|
||||
msgstr ""
|
||||
|
||||
msgid "Ok"
|
||||
msgstr ""
|
||||
|
||||
msgid "Only Game Partition"
|
||||
msgstr ""
|
||||
|
||||
@ -1973,6 +1973,9 @@ msgstr ""
|
||||
msgid "This IOS was not found on the titles list. If you are sure you have it installed than ignore this warning."
|
||||
msgstr ""
|
||||
|
||||
msgid "This Nintendont version does not support games on USB."
|
||||
msgstr ""
|
||||
|
||||
msgid "This game has multiple discs. Please select the disc to launch."
|
||||
msgstr ""
|
||||
|
||||
@ -2024,6 +2027,14 @@ msgstr ""
|
||||
msgid "To run GameCube games with Nintendont you need the boot.dol file in your Nintendont Loader Path."
|
||||
msgstr ""
|
||||
|
||||
#, c-format
|
||||
msgid "To use HID with %s you need the %s file."
|
||||
msgstr ""
|
||||
|
||||
#, c-format
|
||||
msgid "To use ocarina with %s you need the %s file."
|
||||
msgstr ""
|
||||
|
||||
msgid "Tooltip Delay"
|
||||
msgstr ""
|
||||
|
||||
@ -2033,7 +2044,7 @@ msgstr "Chmurki z podpowiedziami"
|
||||
msgid "Transfer failed"
|
||||
msgstr ""
|
||||
|
||||
msgid "USB Device not found."
|
||||
msgid "USB Device not initialized."
|
||||
msgstr ""
|
||||
|
||||
msgid "USB Loader GX is protected"
|
||||
@ -2054,6 +2065,9 @@ msgstr ""
|
||||
msgid "USBloaderGX couldn't write Nintendont config file. Launch Nintendont anyway?"
|
||||
msgstr ""
|
||||
|
||||
msgid "USBloaderGX r1218 is required for Nintendont Alpha v0.1. Please update your Nintendont boot.dol version."
|
||||
msgstr ""
|
||||
|
||||
msgid "Uninstall"
|
||||
msgstr "Odinstaluj"
|
||||
|
||||
|
@ -5,7 +5,7 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: USB Loader GX\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2013-10-01 22:10+0200\n"
|
||||
"POT-Creation-Date: 2014-04-25 15:06+0200\n"
|
||||
"PO-Revision-Date: 2009-10-23 18:52+0200\n"
|
||||
"Last-Translator: aniemotion\n"
|
||||
"Language-Team: boto12, aniemotion\n"
|
||||
@ -1360,9 +1360,6 @@ msgstr ""
|
||||
msgid "Main Path"
|
||||
msgstr ""
|
||||
|
||||
msgid "Main tester:"
|
||||
msgstr ""
|
||||
|
||||
msgid "Mar"
|
||||
msgstr ""
|
||||
|
||||
@ -1384,6 +1381,9 @@ msgstr ""
|
||||
msgid "Mount DVD drive"
|
||||
msgstr "Carregar leitor DVD"
|
||||
|
||||
msgid "Mount USB at launch"
|
||||
msgstr ""
|
||||
|
||||
msgid "Multiple Partitions"
|
||||
msgstr ""
|
||||
|
||||
@ -1435,9 +1435,6 @@ msgstr ""
|
||||
msgid "Nintendont Loader Path"
|
||||
msgstr ""
|
||||
|
||||
msgid "Nintendont currently only supports GameCube games on SD card."
|
||||
msgstr ""
|
||||
|
||||
msgid "No"
|
||||
msgstr "Não"
|
||||
|
||||
@ -1567,6 +1564,9 @@ msgstr "Site Oficial:"
|
||||
msgid "Offset"
|
||||
msgstr ""
|
||||
|
||||
msgid "Ok"
|
||||
msgstr ""
|
||||
|
||||
msgid "Only Game Partition"
|
||||
msgstr ""
|
||||
|
||||
@ -1973,6 +1973,9 @@ msgstr ""
|
||||
msgid "This IOS was not found on the titles list. If you are sure you have it installed than ignore this warning."
|
||||
msgstr ""
|
||||
|
||||
msgid "This Nintendont version does not support games on USB."
|
||||
msgstr ""
|
||||
|
||||
msgid "This game has multiple discs. Please select the disc to launch."
|
||||
msgstr ""
|
||||
|
||||
@ -2024,6 +2027,14 @@ msgstr ""
|
||||
msgid "To run GameCube games with Nintendont you need the boot.dol file in your Nintendont Loader Path."
|
||||
msgstr ""
|
||||
|
||||
#, c-format
|
||||
msgid "To use HID with %s you need the %s file."
|
||||
msgstr ""
|
||||
|
||||
#, c-format
|
||||
msgid "To use ocarina with %s you need the %s file."
|
||||
msgstr ""
|
||||
|
||||
msgid "Tooltip Delay"
|
||||
msgstr ""
|
||||
|
||||
@ -2033,7 +2044,7 @@ msgstr "Dicas"
|
||||
msgid "Transfer failed"
|
||||
msgstr ""
|
||||
|
||||
msgid "USB Device not found."
|
||||
msgid "USB Device not initialized."
|
||||
msgstr ""
|
||||
|
||||
msgid "USB Loader GX is protected"
|
||||
@ -2054,6 +2065,9 @@ msgstr ""
|
||||
msgid "USBloaderGX couldn't write Nintendont config file. Launch Nintendont anyway?"
|
||||
msgstr ""
|
||||
|
||||
msgid "USBloaderGX r1218 is required for Nintendont Alpha v0.1. Please update your Nintendont boot.dol version."
|
||||
msgstr ""
|
||||
|
||||
msgid "Uninstall"
|
||||
msgstr ""
|
||||
|
||||
|
@ -5,7 +5,7 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: USB Loader GX\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2013-10-01 22:10+0200\n"
|
||||
"POT-Creation-Date: 2014-04-25 15:06+0200\n"
|
||||
"PO-Revision-Date: 2011-11-03 11:00+0000\n"
|
||||
"Last-Translator: pplucky <pplucky@gmail.com>\n"
|
||||
"Language-Team: Sky8000, pplucky\n"
|
||||
@ -1360,9 +1360,6 @@ msgstr ""
|
||||
msgid "Main Path"
|
||||
msgstr ""
|
||||
|
||||
msgid "Main tester:"
|
||||
msgstr "Tester principal:"
|
||||
|
||||
msgid "Mar"
|
||||
msgstr "Mar"
|
||||
|
||||
@ -1384,6 +1381,9 @@ msgstr "Vídeo Motion+"
|
||||
msgid "Mount DVD drive"
|
||||
msgstr "Montar Unidade de DVD"
|
||||
|
||||
msgid "Mount USB at launch"
|
||||
msgstr ""
|
||||
|
||||
msgid "Multiple Partitions"
|
||||
msgstr "Partições múltiplas"
|
||||
|
||||
@ -1435,9 +1435,6 @@ msgstr ""
|
||||
msgid "Nintendont Loader Path"
|
||||
msgstr ""
|
||||
|
||||
msgid "Nintendont currently only supports GameCube games on SD card."
|
||||
msgstr ""
|
||||
|
||||
msgid "No"
|
||||
msgstr "Não"
|
||||
|
||||
@ -1567,6 +1564,9 @@ msgstr "Site Oficial:"
|
||||
msgid "Offset"
|
||||
msgstr "Offset"
|
||||
|
||||
msgid "Ok"
|
||||
msgstr ""
|
||||
|
||||
msgid "Only Game Partition"
|
||||
msgstr "Apenas Partição Jogos"
|
||||
|
||||
@ -1973,6 +1973,9 @@ msgstr "Este IOS é o ios BootMii. Se tem a certeza que não é o BootMii e tem
|
||||
msgid "This IOS was not found on the titles list. If you are sure you have it installed than ignore this warning."
|
||||
msgstr "Este IOS não foi encontrado na lista de títulos. Se tem a certeza que o tem instalado então ignore este aviso."
|
||||
|
||||
msgid "This Nintendont version does not support games on USB."
|
||||
msgstr ""
|
||||
|
||||
msgid "This game has multiple discs. Please select the disc to launch."
|
||||
msgstr ""
|
||||
|
||||
@ -2024,6 +2027,14 @@ msgstr ""
|
||||
msgid "To run GameCube games with Nintendont you need the boot.dol file in your Nintendont Loader Path."
|
||||
msgstr ""
|
||||
|
||||
#, c-format
|
||||
msgid "To use HID with %s you need the %s file."
|
||||
msgstr ""
|
||||
|
||||
#, c-format
|
||||
msgid "To use ocarina with %s you need the %s file."
|
||||
msgstr ""
|
||||
|
||||
msgid "Tooltip Delay"
|
||||
msgstr ""
|
||||
|
||||
@ -2033,7 +2044,7 @@ msgstr "Dicas"
|
||||
msgid "Transfer failed"
|
||||
msgstr "Transferência falhada"
|
||||
|
||||
msgid "USB Device not found."
|
||||
msgid "USB Device not initialized."
|
||||
msgstr ""
|
||||
|
||||
msgid "USB Loader GX is protected"
|
||||
@ -2054,6 +2065,9 @@ msgstr ""
|
||||
msgid "USBloaderGX couldn't write Nintendont config file. Launch Nintendont anyway?"
|
||||
msgstr ""
|
||||
|
||||
msgid "USBloaderGX r1218 is required for Nintendont Alpha v0.1. Please update your Nintendont boot.dol version."
|
||||
msgstr ""
|
||||
|
||||
msgid "Uninstall"
|
||||
msgstr ""
|
||||
|
||||
@ -2296,6 +2310,9 @@ msgstr "de"
|
||||
msgid "seconds left"
|
||||
msgstr "segundos restantes"
|
||||
|
||||
#~ msgid "Main tester:"
|
||||
#~ msgstr "Tester principal:"
|
||||
|
||||
#~ msgid "Boot/Standard"
|
||||
#~ msgstr "Arranque/Std"
|
||||
|
||||
|
@ -5,7 +5,7 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: USB Loader GX\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2013-10-01 22:10+0200\n"
|
||||
"POT-Creation-Date: 2014-04-25 15:06+0200\n"
|
||||
"PO-Revision-Date: 2009-10-01 01:00+0200\n"
|
||||
"Last-Translator: nikolai_ca\n"
|
||||
"Language-Team: Kir, alendit, nikolai_ca\n"
|
||||
@ -1360,9 +1360,6 @@ msgstr ""
|
||||
msgid "Main Path"
|
||||
msgstr ""
|
||||
|
||||
msgid "Main tester:"
|
||||
msgstr ""
|
||||
|
||||
msgid "Mar"
|
||||
msgstr "Мар"
|
||||
|
||||
@ -1384,6 +1381,9 @@ msgstr ""
|
||||
msgid "Mount DVD drive"
|
||||
msgstr "Монтировать DVD"
|
||||
|
||||
msgid "Mount USB at launch"
|
||||
msgstr ""
|
||||
|
||||
msgid "Multiple Partitions"
|
||||
msgstr ""
|
||||
|
||||
@ -1435,9 +1435,6 @@ msgstr ""
|
||||
msgid "Nintendont Loader Path"
|
||||
msgstr ""
|
||||
|
||||
msgid "Nintendont currently only supports GameCube games on SD card."
|
||||
msgstr ""
|
||||
|
||||
msgid "No"
|
||||
msgstr "Нет"
|
||||
|
||||
@ -1567,6 +1564,9 @@ msgstr "Оф. сайт:"
|
||||
msgid "Offset"
|
||||
msgstr ""
|
||||
|
||||
msgid "Ok"
|
||||
msgstr ""
|
||||
|
||||
msgid "Only Game Partition"
|
||||
msgstr ""
|
||||
|
||||
@ -1973,6 +1973,9 @@ msgstr ""
|
||||
msgid "This IOS was not found on the titles list. If you are sure you have it installed than ignore this warning."
|
||||
msgstr ""
|
||||
|
||||
msgid "This Nintendont version does not support games on USB."
|
||||
msgstr ""
|
||||
|
||||
msgid "This game has multiple discs. Please select the disc to launch."
|
||||
msgstr ""
|
||||
|
||||
@ -2024,6 +2027,14 @@ msgstr ""
|
||||
msgid "To run GameCube games with Nintendont you need the boot.dol file in your Nintendont Loader Path."
|
||||
msgstr ""
|
||||
|
||||
#, c-format
|
||||
msgid "To use HID with %s you need the %s file."
|
||||
msgstr ""
|
||||
|
||||
#, c-format
|
||||
msgid "To use ocarina with %s you need the %s file."
|
||||
msgstr ""
|
||||
|
||||
msgid "Tooltip Delay"
|
||||
msgstr ""
|
||||
|
||||
@ -2033,7 +2044,7 @@ msgstr "Подсказки"
|
||||
msgid "Transfer failed"
|
||||
msgstr ""
|
||||
|
||||
msgid "USB Device not found."
|
||||
msgid "USB Device not initialized."
|
||||
msgstr ""
|
||||
|
||||
msgid "USB Loader GX is protected"
|
||||
@ -2054,6 +2065,9 @@ msgstr ""
|
||||
msgid "USBloaderGX couldn't write Nintendont config file. Launch Nintendont anyway?"
|
||||
msgstr ""
|
||||
|
||||
msgid "USBloaderGX r1218 is required for Nintendont Alpha v0.1. Please update your Nintendont boot.dol version."
|
||||
msgstr ""
|
||||
|
||||
msgid "Uninstall"
|
||||
msgstr "Деинсталлировать"
|
||||
|
||||
|
@ -5,7 +5,7 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: USB Loader GX\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2013-10-01 22:10+0200\n"
|
||||
"POT-Creation-Date: 2014-04-25 15:06+0200\n"
|
||||
"PO-Revision-Date: 2013-08-13 07:03+0800\n"
|
||||
"Last-Translator: \n"
|
||||
"Language-Team: oCameLo\n"
|
||||
@ -1360,9 +1360,6 @@ msgstr "首选 GameCube 路径"
|
||||
msgid "Main Path"
|
||||
msgstr "首选路径"
|
||||
|
||||
msgid "Main tester:"
|
||||
msgstr "主要测试员:"
|
||||
|
||||
msgid "Mar"
|
||||
msgstr "三月"
|
||||
|
||||
@ -1384,6 +1381,9 @@ msgstr "移动+视频"
|
||||
msgid "Mount DVD drive"
|
||||
msgstr "挂载 DVD 光驱"
|
||||
|
||||
msgid "Mount USB at launch"
|
||||
msgstr ""
|
||||
|
||||
msgid "Multiple Partitions"
|
||||
msgstr "多分区"
|
||||
|
||||
@ -1435,9 +1435,6 @@ msgstr ""
|
||||
msgid "Nintendont Loader Path"
|
||||
msgstr ""
|
||||
|
||||
msgid "Nintendont currently only supports GameCube games on SD card."
|
||||
msgstr ""
|
||||
|
||||
msgid "No"
|
||||
msgstr "否"
|
||||
|
||||
@ -1567,6 +1564,9 @@ msgstr "官方网址:"
|
||||
msgid "Offset"
|
||||
msgstr "偏移位"
|
||||
|
||||
msgid "Ok"
|
||||
msgstr ""
|
||||
|
||||
msgid "Only Game Partition"
|
||||
msgstr "仅游戏分区"
|
||||
|
||||
@ -1973,6 +1973,9 @@ msgstr "该 IOS 是BootMii IOS 。如果你确定它不是 BootMii 并且安装
|
||||
msgid "This IOS was not found on the titles list. If you are sure you have it installed than ignore this warning."
|
||||
msgstr "在 titles 列表中未找到该 IOS 。如果你确定已安装则可忽略该警告。"
|
||||
|
||||
msgid "This Nintendont version does not support games on USB."
|
||||
msgstr ""
|
||||
|
||||
msgid "This game has multiple discs. Please select the disc to launch."
|
||||
msgstr "该游戏有多张光盘。请选择想要加载的光盘。"
|
||||
|
||||
@ -2024,6 +2027,14 @@ msgstr ""
|
||||
msgid "To run GameCube games with Nintendont you need the boot.dol file in your Nintendont Loader Path."
|
||||
msgstr ""
|
||||
|
||||
#, c-format
|
||||
msgid "To use HID with %s you need the %s file."
|
||||
msgstr ""
|
||||
|
||||
#, c-format
|
||||
msgid "To use ocarina with %s you need the %s file."
|
||||
msgstr ""
|
||||
|
||||
msgid "Tooltip Delay"
|
||||
msgstr "提示信息延迟时间"
|
||||
|
||||
@ -2033,8 +2044,8 @@ msgstr "提示信息"
|
||||
msgid "Transfer failed"
|
||||
msgstr "传输失败"
|
||||
|
||||
msgid "USB Device not found."
|
||||
msgstr "未找到 USB 设备。"
|
||||
msgid "USB Device not initialized."
|
||||
msgstr ""
|
||||
|
||||
msgid "USB Loader GX is protected"
|
||||
msgstr "USB Loader GX 被锁定"
|
||||
@ -2054,6 +2065,9 @@ msgstr ""
|
||||
msgid "USBloaderGX couldn't write Nintendont config file. Launch Nintendont anyway?"
|
||||
msgstr ""
|
||||
|
||||
msgid "USBloaderGX r1218 is required for Nintendont Alpha v0.1. Please update your Nintendont boot.dol version."
|
||||
msgstr ""
|
||||
|
||||
msgid "Uninstall"
|
||||
msgstr "删除"
|
||||
|
||||
@ -2296,6 +2310,12 @@ msgstr "的"
|
||||
msgid "seconds left"
|
||||
msgstr "剩余秒数"
|
||||
|
||||
#~ msgid "Main tester:"
|
||||
#~ msgstr "主要测试员:"
|
||||
|
||||
#~ msgid "USB Device not found."
|
||||
#~ msgstr "未找到 USB 设备。"
|
||||
|
||||
#~ msgid "Boot/Standard"
|
||||
#~ msgstr "启动/标准"
|
||||
|
||||
|
@ -5,7 +5,7 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: USB Loader GX\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2013-10-01 22:10+0200\n"
|
||||
"POT-Creation-Date: 2014-04-25 15:06+0200\n"
|
||||
"PO-Revision-Date: 2011-07-25 16:40+0200\n"
|
||||
"Last-Translator: Galen/xFede\n"
|
||||
"Language-Team: Penn, SirPalax, hvy109\n"
|
||||
@ -1360,9 +1360,6 @@ msgstr "Ruta principal GameCube"
|
||||
msgid "Main Path"
|
||||
msgstr "Ruta principal"
|
||||
|
||||
msgid "Main tester:"
|
||||
msgstr "Probador principal:"
|
||||
|
||||
msgid "Mar"
|
||||
msgstr ""
|
||||
|
||||
@ -1384,6 +1381,9 @@ msgstr "Vídeo Motion+"
|
||||
msgid "Mount DVD drive"
|
||||
msgstr "Montar unidad DVD"
|
||||
|
||||
msgid "Mount USB at launch"
|
||||
msgstr ""
|
||||
|
||||
msgid "Multiple Partitions"
|
||||
msgstr "Múltiples Particiones"
|
||||
|
||||
@ -1435,9 +1435,6 @@ msgstr ""
|
||||
msgid "Nintendont Loader Path"
|
||||
msgstr ""
|
||||
|
||||
msgid "Nintendont currently only supports GameCube games on SD card."
|
||||
msgstr ""
|
||||
|
||||
msgid "No"
|
||||
msgstr ""
|
||||
|
||||
@ -1567,6 +1564,9 @@ msgstr "Página Oficial:"
|
||||
msgid "Offset"
|
||||
msgstr ""
|
||||
|
||||
msgid "Ok"
|
||||
msgstr ""
|
||||
|
||||
msgid "Only Game Partition"
|
||||
msgstr "Solo Partición de Juegos"
|
||||
|
||||
@ -1973,6 +1973,9 @@ msgstr "Este IOS es el ios de BootMii. Si estás seguro de que no está BootMii
|
||||
msgid "This IOS was not found on the titles list. If you are sure you have it installed than ignore this warning."
|
||||
msgstr "No se encontró este IOS en la lista de títulos. Si estás seguro de que lo tienes instalado, ignora esta advertencia."
|
||||
|
||||
msgid "This Nintendont version does not support games on USB."
|
||||
msgstr ""
|
||||
|
||||
msgid "This game has multiple discs. Please select the disc to launch."
|
||||
msgstr ""
|
||||
|
||||
@ -2024,6 +2027,14 @@ msgstr ""
|
||||
msgid "To run GameCube games with Nintendont you need the boot.dol file in your Nintendont Loader Path."
|
||||
msgstr ""
|
||||
|
||||
#, c-format
|
||||
msgid "To use HID with %s you need the %s file."
|
||||
msgstr ""
|
||||
|
||||
#, c-format
|
||||
msgid "To use ocarina with %s you need the %s file."
|
||||
msgstr ""
|
||||
|
||||
msgid "Tooltip Delay"
|
||||
msgstr "Retraso de ayuda rapida"
|
||||
|
||||
@ -2033,8 +2044,8 @@ msgstr "Descripción"
|
||||
msgid "Transfer failed"
|
||||
msgstr "Transferencia fallida"
|
||||
|
||||
msgid "USB Device not found."
|
||||
msgstr "Dispositivo USB no encontrado"
|
||||
msgid "USB Device not initialized."
|
||||
msgstr ""
|
||||
|
||||
msgid "USB Loader GX is protected"
|
||||
msgstr "USB Loader GX está protegido"
|
||||
@ -2054,6 +2065,9 @@ msgstr ""
|
||||
msgid "USBloaderGX couldn't write Nintendont config file. Launch Nintendont anyway?"
|
||||
msgstr ""
|
||||
|
||||
msgid "USBloaderGX r1218 is required for Nintendont Alpha v0.1. Please update your Nintendont boot.dol version."
|
||||
msgstr ""
|
||||
|
||||
msgid "Uninstall"
|
||||
msgstr "Desinstalar"
|
||||
|
||||
@ -2296,6 +2310,12 @@ msgstr "de"
|
||||
msgid "seconds left"
|
||||
msgstr "segundos restantes"
|
||||
|
||||
#~ msgid "Main tester:"
|
||||
#~ msgstr "Probador principal:"
|
||||
|
||||
#~ msgid "USB Device not found."
|
||||
#~ msgstr "Dispositivo USB no encontrado"
|
||||
|
||||
#~ msgid "Boot/Standard"
|
||||
#~ msgstr "Inicio/Estándar"
|
||||
|
||||
|
@ -5,7 +5,7 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: USB Loader GX\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2013-10-01 22:10+0200\n"
|
||||
"POT-Creation-Date: 2014-04-25 15:06+0200\n"
|
||||
"PO-Revision-Date: 2010-01-19 17:39+0200\n"
|
||||
"Last-Translator: Katsurou\n"
|
||||
"Language-Team: Katsurou, pirateX\n"
|
||||
@ -1360,9 +1360,6 @@ msgstr ""
|
||||
msgid "Main Path"
|
||||
msgstr ""
|
||||
|
||||
msgid "Main tester:"
|
||||
msgstr ""
|
||||
|
||||
msgid "Mar"
|
||||
msgstr ""
|
||||
|
||||
@ -1384,6 +1381,9 @@ msgstr ""
|
||||
msgid "Mount DVD drive"
|
||||
msgstr "Montera DVD läsare"
|
||||
|
||||
msgid "Mount USB at launch"
|
||||
msgstr ""
|
||||
|
||||
msgid "Multiple Partitions"
|
||||
msgstr ""
|
||||
|
||||
@ -1435,9 +1435,6 @@ msgstr ""
|
||||
msgid "Nintendont Loader Path"
|
||||
msgstr ""
|
||||
|
||||
msgid "Nintendont currently only supports GameCube games on SD card."
|
||||
msgstr ""
|
||||
|
||||
msgid "No"
|
||||
msgstr "Nej"
|
||||
|
||||
@ -1567,6 +1564,9 @@ msgstr "Officiell sida:"
|
||||
msgid "Offset"
|
||||
msgstr ""
|
||||
|
||||
msgid "Ok"
|
||||
msgstr ""
|
||||
|
||||
msgid "Only Game Partition"
|
||||
msgstr ""
|
||||
|
||||
@ -1973,6 +1973,9 @@ msgstr ""
|
||||
msgid "This IOS was not found on the titles list. If you are sure you have it installed than ignore this warning."
|
||||
msgstr ""
|
||||
|
||||
msgid "This Nintendont version does not support games on USB."
|
||||
msgstr ""
|
||||
|
||||
msgid "This game has multiple discs. Please select the disc to launch."
|
||||
msgstr ""
|
||||
|
||||
@ -2024,6 +2027,14 @@ msgstr ""
|
||||
msgid "To run GameCube games with Nintendont you need the boot.dol file in your Nintendont Loader Path."
|
||||
msgstr ""
|
||||
|
||||
#, c-format
|
||||
msgid "To use HID with %s you need the %s file."
|
||||
msgstr ""
|
||||
|
||||
#, c-format
|
||||
msgid "To use ocarina with %s you need the %s file."
|
||||
msgstr ""
|
||||
|
||||
msgid "Tooltip Delay"
|
||||
msgstr ""
|
||||
|
||||
@ -2033,7 +2044,7 @@ msgstr "Verktygstips"
|
||||
msgid "Transfer failed"
|
||||
msgstr ""
|
||||
|
||||
msgid "USB Device not found."
|
||||
msgid "USB Device not initialized."
|
||||
msgstr ""
|
||||
|
||||
msgid "USB Loader GX is protected"
|
||||
@ -2054,6 +2065,9 @@ msgstr ""
|
||||
msgid "USBloaderGX couldn't write Nintendont config file. Launch Nintendont anyway?"
|
||||
msgstr ""
|
||||
|
||||
msgid "USBloaderGX r1218 is required for Nintendont Alpha v0.1. Please update your Nintendont boot.dol version."
|
||||
msgstr ""
|
||||
|
||||
msgid "Uninstall"
|
||||
msgstr "Avinstallera"
|
||||
|
||||
|
@ -5,7 +5,7 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: USB Loader GX\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2013-10-01 22:10+0200\n"
|
||||
"POT-Creation-Date: 2014-04-25 15:06+0200\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"
|
||||
@ -1360,9 +1360,6 @@ msgstr "主要的 GameCube路徑"
|
||||
msgid "Main Path"
|
||||
msgstr "主要路徑"
|
||||
|
||||
msgid "Main tester:"
|
||||
msgstr "主要測試者:"
|
||||
|
||||
msgid "Mar"
|
||||
msgstr "三月"
|
||||
|
||||
@ -1384,6 +1381,9 @@ msgstr "移動+視訊"
|
||||
msgid "Mount DVD drive"
|
||||
msgstr "掛載DVD光碟"
|
||||
|
||||
msgid "Mount USB at launch"
|
||||
msgstr ""
|
||||
|
||||
msgid "Multiple Partitions"
|
||||
msgstr "多重磁區"
|
||||
|
||||
@ -1435,9 +1435,6 @@ msgstr ""
|
||||
msgid "Nintendont Loader Path"
|
||||
msgstr ""
|
||||
|
||||
msgid "Nintendont currently only supports GameCube games on SD card."
|
||||
msgstr ""
|
||||
|
||||
msgid "No"
|
||||
msgstr "否"
|
||||
|
||||
@ -1567,6 +1564,9 @@ msgstr "官方網址:"
|
||||
msgid "Offset"
|
||||
msgstr "偏移"
|
||||
|
||||
msgid "Ok"
|
||||
msgstr ""
|
||||
|
||||
msgid "Only Game Partition"
|
||||
msgstr "僅遊戲分區"
|
||||
|
||||
@ -1973,6 +1973,9 @@ msgstr "這IOS是BootMii的ios。若你確定不是BootMii的IOS而你在這安
|
||||
msgid "This IOS was not found on the titles list. If you are sure you have it installed than ignore this warning."
|
||||
msgstr "標題清單找不到這IOS。若你確定已安裝它,請忽略這警告。"
|
||||
|
||||
msgid "This Nintendont version does not support games on USB."
|
||||
msgstr ""
|
||||
|
||||
msgid "This game has multiple discs. Please select the disc to launch."
|
||||
msgstr "此遊戲為多重光碟。請選擇光碟啟動。"
|
||||
|
||||
@ -2024,6 +2027,14 @@ msgstr ""
|
||||
msgid "To run GameCube games with Nintendont you need the boot.dol file in your Nintendont Loader Path."
|
||||
msgstr ""
|
||||
|
||||
#, c-format
|
||||
msgid "To use HID with %s you need the %s file."
|
||||
msgstr ""
|
||||
|
||||
#, c-format
|
||||
msgid "To use ocarina with %s you need the %s file."
|
||||
msgstr ""
|
||||
|
||||
msgid "Tooltip Delay"
|
||||
msgstr "提示訊息 延遲時間"
|
||||
|
||||
@ -2033,8 +2044,8 @@ msgstr "提示訊息"
|
||||
msgid "Transfer failed"
|
||||
msgstr "傳輸失敗"
|
||||
|
||||
msgid "USB Device not found."
|
||||
msgstr "找不到 USB 裝置"
|
||||
msgid "USB Device not initialized."
|
||||
msgstr ""
|
||||
|
||||
msgid "USB Loader GX is protected"
|
||||
msgstr "USB Loader GX 被上鎖保護"
|
||||
@ -2054,6 +2065,9 @@ msgstr ""
|
||||
msgid "USBloaderGX couldn't write Nintendont config file. Launch Nintendont anyway?"
|
||||
msgstr ""
|
||||
|
||||
msgid "USBloaderGX r1218 is required for Nintendont Alpha v0.1. Please update your Nintendont boot.dol version."
|
||||
msgstr ""
|
||||
|
||||
msgid "Uninstall"
|
||||
msgstr "移除"
|
||||
|
||||
@ -2296,6 +2310,12 @@ msgstr "的"
|
||||
msgid "seconds left"
|
||||
msgstr "剩餘秒數"
|
||||
|
||||
#~ msgid "Main tester:"
|
||||
#~ msgstr "主要測試者:"
|
||||
|
||||
#~ msgid "USB Device not found."
|
||||
#~ msgstr "找不到 USB 裝置"
|
||||
|
||||
#~ msgid "Boot/Standard"
|
||||
#~ msgstr "啟動/標準"
|
||||
|
||||
|
@ -5,7 +5,7 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: USB Loader GX\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2013-10-01 22:10+0200\n"
|
||||
"POT-Creation-Date: 2014-04-25 15:06+0200\n"
|
||||
"PO-Revision-Date: 2009-10-01 01:00+0200\n"
|
||||
"Last-Translator: Nitro_subzero \n"
|
||||
"Language-Team: Nitro_subzero\n"
|
||||
@ -1360,9 +1360,6 @@ msgstr ""
|
||||
msgid "Main Path"
|
||||
msgstr ""
|
||||
|
||||
msgid "Main tester:"
|
||||
msgstr ""
|
||||
|
||||
msgid "Mar"
|
||||
msgstr "มีค."
|
||||
|
||||
@ -1384,6 +1381,9 @@ msgstr ""
|
||||
msgid "Mount DVD drive"
|
||||
msgstr "เชื่อม DVD ไดร์ฟ"
|
||||
|
||||
msgid "Mount USB at launch"
|
||||
msgstr ""
|
||||
|
||||
msgid "Multiple Partitions"
|
||||
msgstr ""
|
||||
|
||||
@ -1435,9 +1435,6 @@ msgstr ""
|
||||
msgid "Nintendont Loader Path"
|
||||
msgstr ""
|
||||
|
||||
msgid "Nintendont currently only supports GameCube games on SD card."
|
||||
msgstr ""
|
||||
|
||||
msgid "No"
|
||||
msgstr "ไม่"
|
||||
|
||||
@ -1567,6 +1564,9 @@ msgstr "เวบไซต์อย่างเป็นทางการ:"
|
||||
msgid "Offset"
|
||||
msgstr ""
|
||||
|
||||
msgid "Ok"
|
||||
msgstr ""
|
||||
|
||||
msgid "Only Game Partition"
|
||||
msgstr ""
|
||||
|
||||
@ -1973,6 +1973,9 @@ msgstr ""
|
||||
msgid "This IOS was not found on the titles list. If you are sure you have it installed than ignore this warning."
|
||||
msgstr ""
|
||||
|
||||
msgid "This Nintendont version does not support games on USB."
|
||||
msgstr ""
|
||||
|
||||
msgid "This game has multiple discs. Please select the disc to launch."
|
||||
msgstr ""
|
||||
|
||||
@ -2024,6 +2027,14 @@ msgstr ""
|
||||
msgid "To run GameCube games with Nintendont you need the boot.dol file in your Nintendont Loader Path."
|
||||
msgstr ""
|
||||
|
||||
#, c-format
|
||||
msgid "To use HID with %s you need the %s file."
|
||||
msgstr ""
|
||||
|
||||
#, c-format
|
||||
msgid "To use ocarina with %s you need the %s file."
|
||||
msgstr ""
|
||||
|
||||
msgid "Tooltip Delay"
|
||||
msgstr ""
|
||||
|
||||
@ -2033,7 +2044,7 @@ msgstr "คำแนะนำ"
|
||||
msgid "Transfer failed"
|
||||
msgstr ""
|
||||
|
||||
msgid "USB Device not found."
|
||||
msgid "USB Device not initialized."
|
||||
msgstr ""
|
||||
|
||||
msgid "USB Loader GX is protected"
|
||||
@ -2054,6 +2065,9 @@ msgstr ""
|
||||
msgid "USBloaderGX couldn't write Nintendont config file. Launch Nintendont anyway?"
|
||||
msgstr ""
|
||||
|
||||
msgid "USBloaderGX r1218 is required for Nintendont Alpha v0.1. Please update your Nintendont boot.dol version."
|
||||
msgstr ""
|
||||
|
||||
msgid "Uninstall"
|
||||
msgstr "ถอนการติดตั้ง"
|
||||
|
||||
|
@ -5,7 +5,7 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: USB Loader GX\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2013-10-01 22:10+0200\n"
|
||||
"POT-Creation-Date: 2014-04-25 15:06+0200\n"
|
||||
"PO-Revision-Date: 2009-10-01 01:00+0200\n"
|
||||
"Last-Translator: omercigingelini\n"
|
||||
"Language-Team: omercigingelini\n"
|
||||
@ -1360,9 +1360,6 @@ msgstr ""
|
||||
msgid "Main Path"
|
||||
msgstr ""
|
||||
|
||||
msgid "Main tester:"
|
||||
msgstr ""
|
||||
|
||||
msgid "Mar"
|
||||
msgstr ""
|
||||
|
||||
@ -1384,6 +1381,9 @@ msgstr ""
|
||||
msgid "Mount DVD drive"
|
||||
msgstr "DVD sürücüsü bağla"
|
||||
|
||||
msgid "Mount USB at launch"
|
||||
msgstr ""
|
||||
|
||||
msgid "Multiple Partitions"
|
||||
msgstr ""
|
||||
|
||||
@ -1435,9 +1435,6 @@ msgstr ""
|
||||
msgid "Nintendont Loader Path"
|
||||
msgstr ""
|
||||
|
||||
msgid "Nintendont currently only supports GameCube games on SD card."
|
||||
msgstr ""
|
||||
|
||||
msgid "No"
|
||||
msgstr "Hayır"
|
||||
|
||||
@ -1567,6 +1564,9 @@ msgstr "Resmi Site:"
|
||||
msgid "Offset"
|
||||
msgstr ""
|
||||
|
||||
msgid "Ok"
|
||||
msgstr ""
|
||||
|
||||
msgid "Only Game Partition"
|
||||
msgstr ""
|
||||
|
||||
@ -1973,6 +1973,9 @@ msgstr ""
|
||||
msgid "This IOS was not found on the titles list. If you are sure you have it installed than ignore this warning."
|
||||
msgstr ""
|
||||
|
||||
msgid "This Nintendont version does not support games on USB."
|
||||
msgstr ""
|
||||
|
||||
msgid "This game has multiple discs. Please select the disc to launch."
|
||||
msgstr ""
|
||||
|
||||
@ -2024,6 +2027,14 @@ msgstr ""
|
||||
msgid "To run GameCube games with Nintendont you need the boot.dol file in your Nintendont Loader Path."
|
||||
msgstr ""
|
||||
|
||||
#, c-format
|
||||
msgid "To use HID with %s you need the %s file."
|
||||
msgstr ""
|
||||
|
||||
#, c-format
|
||||
msgid "To use ocarina with %s you need the %s file."
|
||||
msgstr ""
|
||||
|
||||
msgid "Tooltip Delay"
|
||||
msgstr ""
|
||||
|
||||
@ -2033,7 +2044,7 @@ msgstr "Yardımlar"
|
||||
msgid "Transfer failed"
|
||||
msgstr ""
|
||||
|
||||
msgid "USB Device not found."
|
||||
msgid "USB Device not initialized."
|
||||
msgstr ""
|
||||
|
||||
msgid "USB Loader GX is protected"
|
||||
@ -2054,6 +2065,9 @@ msgstr ""
|
||||
msgid "USBloaderGX couldn't write Nintendont config file. Launch Nintendont anyway?"
|
||||
msgstr ""
|
||||
|
||||
msgid "USBloaderGX r1218 is required for Nintendont Alpha v0.1. Please update your Nintendont boot.dol version."
|
||||
msgstr ""
|
||||
|
||||
msgid "Uninstall"
|
||||
msgstr "Kaldır"
|
||||
|
||||
|
@ -47,8 +47,7 @@ public:
|
||||
|
||||
vector<struct discHdr> & GetHeaders(void)
|
||||
{
|
||||
if(HeaderList.empty())
|
||||
LoadAllGames();
|
||||
LoadAllGames();
|
||||
|
||||
return HeaderList;
|
||||
}
|
||||
|
@ -20,17 +20,19 @@
|
||||
#include <gctypes.h>
|
||||
|
||||
#define NIN_MAGIC 0x01070CF6
|
||||
#define NIN_CFG_VERSION 0x00000001
|
||||
#define NIN_CFG_VERSION 0x00000002
|
||||
|
||||
typedef struct NIN_CFG
|
||||
{
|
||||
u32 Magicbytes; // 0x01070CF6
|
||||
u32 Version; // 0x00000001
|
||||
u32 Version; // 0x00000002 since r42
|
||||
u32 Config;
|
||||
u32 VideoMode;
|
||||
u32 Language;
|
||||
char GamePath[255];
|
||||
char CheatPath[255];
|
||||
u32 MaxPads;
|
||||
u32 GameID;
|
||||
} NIN_CFG;
|
||||
|
||||
enum ninconfig
|
||||
@ -39,13 +41,13 @@ enum ninconfig
|
||||
NIN_CFG_DEBUGGER = (1<<1), // Only for Wii Version
|
||||
NIN_CFG_DEBUGWAIT = (1<<2), // Only for Wii Version
|
||||
NIN_CFG_MEMCARDEMU = (1<<3),
|
||||
NIN_CFG_GAME_PATH = (1<<4),
|
||||
NIN_CFG_CHEAT_PATH = (1<<5),
|
||||
NIN_CFG_FORCE_WIDE = (1<<6),
|
||||
NIN_CFG_FORCE_PROG = (1<<7),
|
||||
NIN_CFG_AUTO_BOOT = (1<<8),
|
||||
NIN_CFG_HID = (1<<9),
|
||||
NIN_CFG_OSREPORT = (1<<10), // Only for Wii Version
|
||||
NIN_CFG_CHEAT_PATH = (1<<4),
|
||||
NIN_CFG_FORCE_WIDE = (1<<5),
|
||||
NIN_CFG_FORCE_PROG = (1<<6),
|
||||
NIN_CFG_AUTO_BOOT = (1<<7),
|
||||
NIN_CFG_HID = (1<<8),
|
||||
NIN_CFG_OSREPORT = (1<<9),
|
||||
NIN_CFG_USB = (1<<10),
|
||||
};
|
||||
|
||||
enum ninvideomode
|
||||
@ -59,8 +61,10 @@ enum ninvideomode
|
||||
NIN_VID_FORCE_PAL50 = (1<<0),
|
||||
NIN_VID_FORCE_PAL60 = (1<<1),
|
||||
NIN_VID_FORCE_NTSC = (1<<2),
|
||||
NIN_VID_FORCE_MPAL = (1<<3),
|
||||
NIN_VID_PROG = (1<<4),
|
||||
|
||||
NIN_VID_FORCE_MASK = NIN_VID_FORCE_PAL50|NIN_VID_FORCE_PAL60|NIN_VID_FORCE_NTSC,
|
||||
NIN_VID_FORCE_MASK = NIN_VID_FORCE_PAL50|NIN_VID_FORCE_PAL60|NIN_VID_FORCE_NTSC|NIN_VID_FORCE_MPAL,
|
||||
};
|
||||
|
||||
enum ninlanguage
|
||||
|
@ -211,17 +211,32 @@ int StartUpProcess::Execute()
|
||||
Settings.EntryIOS = IOS_GetVersion();
|
||||
|
||||
// Reload app cios if needed
|
||||
if(!AHBPROT_DISABLED || Settings.UseArgumentIOS)
|
||||
SetTextf("Loading application cIOS %s\n", Settings.UseArgumentIOS ? "requested in meta.xml" : "");
|
||||
if(IosLoader::LoadAppCios() < 0)
|
||||
{
|
||||
SetTextf("Loading application cIOS %s\n", Settings.UseArgumentIOS ? "requested in meta.xml" : "");
|
||||
if(IosLoader::LoadAppCios() < 0)
|
||||
SetTextf("Failed loading any cIOS. Trying with IOS58 + AHB access...");
|
||||
|
||||
// We can allow now operation without cIOS in channel mode with AHB access
|
||||
if(!AHBPROT_DISABLED || (AHBPROT_DISABLED && IOS_GetVersion() != 58))
|
||||
{
|
||||
SetTextf("Failed loading any cIOS. USB Loader GX requires a cIOS or AHB access to work properly.\n");
|
||||
SetTextf("Failed loading IOS 58. USB Loader GX requires a cIOS or IOS 58 with AHB access. Exiting...\n");
|
||||
sleep(5);
|
||||
Sys_BackToLoader();
|
||||
}
|
||||
else
|
||||
{
|
||||
SetTextf("Running on IOS 58. Wii disc based games and some channels will not work.");
|
||||
sleep(5);
|
||||
// We can allow now operation without cIOS in channel mode with AHPPROT
|
||||
// Sys_BackToLoader();
|
||||
}
|
||||
}
|
||||
|
||||
if(!AHBPROT_DISABLED && IOS_GetVersion() < 200)
|
||||
{
|
||||
SetTextf("Failed loading IOS %i. USB Loader GX requires a cIOS or IOS58 with AHB access. Exiting...\n", IOS_GetVersion());
|
||||
sleep(5);
|
||||
Sys_BackToLoader();
|
||||
}
|
||||
|
||||
SetTextf("Using %sIOS %i\n", IOS_GetVersion() >= 200 ? "c" : "", IOS_GetVersion());
|
||||
|
||||
SetupPads();
|
||||
@ -229,12 +244,21 @@ int StartUpProcess::Execute()
|
||||
SetTextf("Initialize sd card\n");
|
||||
DeviceHandler::Instance()->MountSD();
|
||||
|
||||
SetTextf("Initialize usb device\n");
|
||||
USBSpinUp();
|
||||
DeviceHandler::Instance()->MountAllUSB(false);
|
||||
|
||||
SetTextf("Loading config files\n");
|
||||
gprintf("\tLoading config...%s\n", Settings.Load() ? "done" : "failed");
|
||||
|
||||
// Ugly, but let's load SD card first to allow users to disable USB Auto mounting.
|
||||
gprintf("\tLoading config from SD...");
|
||||
bool settingsLoaded = Settings.Load();
|
||||
gprintf("%s\n", settingsLoaded ? "done" : "failed");
|
||||
|
||||
if(Settings.USBAutoMount == ON)
|
||||
{
|
||||
SetTextf("Initialize usb device\n");
|
||||
USBSpinUp();
|
||||
DeviceHandler::Instance()->MountAllUSB(false);
|
||||
}
|
||||
|
||||
if(!settingsLoaded) gprintf("\tLoading config from USB...%s\n", Settings.Load() ? "done" : "failed");
|
||||
gprintf("\tLoading language...%s\n", Settings.LoadLanguage(Settings.language_path, CONSOLE_DEFAULT) ? "done" : "failed");
|
||||
gprintf("\tLoading game settings...%s\n", GameSettings.Load(Settings.ConfigPath) ? "done" : "failed");
|
||||
gprintf("\tLoading game statistics...%s\n", GameStatistics.Load(Settings.ConfigPath) ? "done" : "failed");
|
||||
@ -247,7 +271,8 @@ int StartUpProcess::Execute()
|
||||
|
||||
// Unmount devices
|
||||
DeviceHandler::DestroyInstance();
|
||||
USBStorage2_Deinit();
|
||||
if(Settings.USBAutoMount == ON)
|
||||
USBStorage2_Deinit();
|
||||
|
||||
// Shut down pads
|
||||
WPAD_Shutdown();
|
||||
@ -260,8 +285,11 @@ int StartUpProcess::Execute()
|
||||
// Re-Mount devices
|
||||
SetTextf("Reinitializing devices...\n");
|
||||
DeviceHandler::Instance()->MountSD();
|
||||
USBSpinUp();
|
||||
DeviceHandler::Instance()->MountAllUSB(false);
|
||||
if(Settings.USBAutoMount == ON)
|
||||
{
|
||||
USBSpinUp();
|
||||
DeviceHandler::Instance()->MountAllUSB(false);
|
||||
}
|
||||
|
||||
// Start pads again
|
||||
SetupPads();
|
||||
@ -273,14 +301,20 @@ int StartUpProcess::Execute()
|
||||
}
|
||||
else if(Settings.USBPort == 1 && USBStorage2_GetPort() != Settings.USBPort)
|
||||
{
|
||||
SetTextf("Changing USB Port to %i\n", Settings.USBPort);
|
||||
DeviceHandler::Instance()->UnMountAllUSB();
|
||||
DeviceHandler::Instance()->MountAllUSB();
|
||||
if(Settings.USBAutoMount == ON)
|
||||
{
|
||||
SetTextf("Changing USB Port to %i\n", Settings.USBPort);
|
||||
DeviceHandler::Instance()->UnMountAllUSB();
|
||||
DeviceHandler::Instance()->MountAllUSB();
|
||||
}
|
||||
}
|
||||
else if(Settings.USBPort == 2)
|
||||
{
|
||||
SetTextf("Mounting USB Port to 1\n");
|
||||
DeviceHandler::Instance()->MountUSBPort1();
|
||||
if(Settings.USBAutoMount == ON)
|
||||
{
|
||||
SetTextf("Mounting USB Port to 1\n");
|
||||
DeviceHandler::Instance()->MountUSBPort1();
|
||||
}
|
||||
}
|
||||
|
||||
// enable isfs permission if using IOS+AHB or Hermes v4
|
||||
|
@ -1280,7 +1280,17 @@ int GameBrowseMenu::MainLoop()
|
||||
|
||||
if((Settings.LoaderMode & MODE_WIIGAMES) && (gameList.GameCount() == 0))
|
||||
{
|
||||
WBFS_ReInit(WBFS_DEVICE_USB);
|
||||
s32 wbfsinit = WBFS_Init(WBFS_DEVICE_USB);
|
||||
if (wbfsinit < 0)
|
||||
{
|
||||
ShowError("%s %s", tr( "USB Device not initialized." ), tr("Switching to channel list mode."));
|
||||
Settings.LoaderMode &= ~MODE_WIIGAMES;
|
||||
Settings.LoaderMode |= MODE_NANDCHANNELS;
|
||||
}
|
||||
else
|
||||
{
|
||||
WBFS_ReInit(WBFS_DEVICE_USB);
|
||||
}
|
||||
gameList.ReadGameList();
|
||||
|
||||
if(Settings.ShowFreeSpace)
|
||||
|
@ -1,7 +1,9 @@
|
||||
#include "http.h"
|
||||
#include "../svnrev.h"
|
||||
#include "gecko.h"
|
||||
|
||||
extern char incommingIP[50];
|
||||
static u8 retryloop = 0;
|
||||
|
||||
/**
|
||||
* Emptyblock is a statically defined variable for functions to return if they are unable
|
||||
@ -197,30 +199,118 @@ struct block downloadfile(const char *url)
|
||||
return emptyblock;
|
||||
}
|
||||
|
||||
|
||||
//check if a cookie is set for this host and load it.
|
||||
//strcpy(cookie, "Cookie: __cfduid=d8e517c1a10af75d01699adaa9c3d9ffd1398187687536\r\n");
|
||||
|
||||
//Form a nice request header to send to the webserver
|
||||
char* headerformat = "GET %s HTTP/1.0\r\nHost: %s\r\nReferer: %s\r\nUser-Agent: USBLoaderGX r%s\r\n\r\n";
|
||||
char* headerformat = "GET %s HTTP/1.0\r\nHost: %s\r\nReferer: %s\r\n%sUser-Agent: USBLoaderGX r%s\r\n\r\n";
|
||||
char header[strlen(headerformat) + strlen(path) + strlen(domain)*2 + 100];
|
||||
sprintf(header, headerformat, path, domain, domain, GetRev());
|
||||
//gprintf("\nHTTP Request:\n");
|
||||
//gprintf("%s\n",header);
|
||||
|
||||
//Do the request and get the response
|
||||
send_message(connection, header);
|
||||
struct block response = read_message(connection);
|
||||
net_close(connection);
|
||||
|
||||
|
||||
// dump response
|
||||
// hexdump(response.data, response.size);
|
||||
|
||||
//Search for the 4-character sequence \r\n\r\n in the response which signals the start of the http payload (file)
|
||||
unsigned char *filestart = NULL;
|
||||
u32 filesize = 0;
|
||||
u32 i;
|
||||
char newURL[512];
|
||||
bool redirect = false;
|
||||
|
||||
for (i = 3; i < response.size; i++)
|
||||
{
|
||||
if (response.data[i] == '\n' && response.data[i - 1] == '\r' && response.data[i - 2] == '\n' && response.data[i - 3] == '\r')
|
||||
{
|
||||
filestart = response.data + i + 1;
|
||||
filesize = response.size - i - 1;
|
||||
|
||||
// Check the HTTP response code
|
||||
if (response.size > 10 && strncmp((char*)response.data, "HTTP/", 5)==0)
|
||||
{
|
||||
char htstat[i];
|
||||
strncpy(htstat, (char*)response.data, i);
|
||||
htstat[i] = 0;
|
||||
char *codep;
|
||||
codep = strchr(htstat, ' ');
|
||||
if (codep)
|
||||
{
|
||||
int code;
|
||||
if (sscanf(codep+1, "%d", &code) == 1)
|
||||
{
|
||||
//gprintf("HTTP response code: %d\n", code);
|
||||
if (code == 302) // 302 FOUND (redirected link)
|
||||
{
|
||||
char *ptr = strstr((char*)response.data, "ocation: "); // location or Location
|
||||
if(ptr)
|
||||
{
|
||||
ptr += strlen("ocation: ");
|
||||
strncpy(newURL, ptr, sizeof(newURL));
|
||||
*(strchr(newURL, '\r'))=0;
|
||||
|
||||
redirect = true;
|
||||
//gprintf("New URL to download = %s \n", newURL);
|
||||
}
|
||||
else
|
||||
{
|
||||
//gprintf("HTTP ERROR: %s\n", htstat);
|
||||
free(response.data);
|
||||
return emptyblock;
|
||||
}
|
||||
}
|
||||
if (code >=400) // Not found
|
||||
{
|
||||
//gprintf("HTTP ERROR: %s\n", htstat);
|
||||
//free(response.data);
|
||||
//return emptyblock;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
if(redirect)
|
||||
{
|
||||
// Prevent endless loop
|
||||
retryloop++;
|
||||
if(retryloop > 3)
|
||||
{
|
||||
retryloop = 0;
|
||||
free(response.data);
|
||||
return emptyblock;
|
||||
}
|
||||
|
||||
struct block redirected = downloadfile(newURL);
|
||||
|
||||
// copy the newURL data into the original data
|
||||
u8 * tmp = realloc(response.data, redirected.size);
|
||||
if (tmp == NULL)
|
||||
{
|
||||
//gprintf("Could not allocate enough memory for new URL. Download canceled.\n");
|
||||
free(response.data);
|
||||
free(redirected.data);
|
||||
return emptyblock;
|
||||
}
|
||||
response.data = tmp;
|
||||
memcpy(response.data, redirected.data, redirected.size);
|
||||
|
||||
// Set filestart's new size based on redirected file
|
||||
filestart = response.data;
|
||||
filesize = redirected.size;
|
||||
free(redirected.data);
|
||||
|
||||
}
|
||||
retryloop = 0;
|
||||
|
||||
if (filestart == NULL)
|
||||
{
|
||||
//printf("HTTP Response was without a file\n");
|
||||
|
@ -253,7 +253,7 @@ void WindowCredits()
|
||||
creditsMusic->Play();
|
||||
|
||||
bool exit = false;
|
||||
int i = 0;
|
||||
u32 i = 0;
|
||||
int y = 20;
|
||||
float oldFontScale = Settings.FontScaleFactor;
|
||||
Settings.FontScaleFactor = 1.0f;
|
||||
@ -273,23 +273,22 @@ void WindowCredits()
|
||||
starImg.SetAlignment(ALIGN_LEFT, ALIGN_TOP);
|
||||
starImg.SetPosition(505, 350);
|
||||
|
||||
const int numEntries = 26;
|
||||
std::vector<GuiText *> txt(numEntries);
|
||||
std::vector<GuiText *> txt;
|
||||
|
||||
const u8 *creditsFont = Resources::GetFile("font.ttf");
|
||||
u32 creditsFontSize = Resources::GetFileSize("font.ttf");
|
||||
|
||||
txt[i] = new GuiText(tr( "Credits" ), 28, ( GXColor ) {255, 255, 255, 255});
|
||||
txt[i]->SetAlignment(ALIGN_CENTER, ALIGN_TOP);
|
||||
txt[i]->SetPosition(0, 8);
|
||||
txt[i]->SetFont(creditsFont, creditsFontSize);
|
||||
i++;
|
||||
GuiText * currentTxt = new GuiText(tr( "Credits" ), 28, ( GXColor ) {255, 255, 255, 255});
|
||||
currentTxt->SetAlignment(ALIGN_CENTER, ALIGN_TOP);
|
||||
currentTxt->SetPosition(0, 8);
|
||||
currentTxt->SetFont(creditsFont, creditsFontSize);
|
||||
txt.push_back(currentTxt);
|
||||
|
||||
char SvnRev[80];
|
||||
#ifdef FULLCHANNEL
|
||||
snprintf(SvnRev, sizeof(SvnRev), "Rev%sc IOS%u (Rev %u)", GetRev(), IOS_GetVersion(), IOS_GetRevision());
|
||||
snprintf(SvnRev, sizeof(SvnRev), "Rev%sc IOS%u (Rev %u)%s", GetRev(), IOS_GetVersion(), IOS_GetRevision(), (*(vu32*)0xcd800064 == 0xFFFFFFFF)? " + AHB" : "" );
|
||||
#else
|
||||
snprintf(SvnRev, sizeof(SvnRev), "Rev%s IOS%u (Rev %u)", GetRev(), IOS_GetVersion(), IOS_GetRevision());
|
||||
snprintf(SvnRev, sizeof(SvnRev), "Rev%s IOS%u (Rev %u)%s", GetRev(), IOS_GetVersion(), IOS_GetRevision(), (*(vu32*)0xcd800064 == 0xFFFFFFFF)? " + AHB" : "" );
|
||||
#endif
|
||||
|
||||
char IosInfo[80] = "";
|
||||
@ -329,6 +328,8 @@ void WindowCredits()
|
||||
char GCInfo2[80] = "";
|
||||
char NIN_loader_path[100];
|
||||
snprintf(NIN_loader_path, sizeof(NIN_loader_path), "%sboot.dol", Settings.NINLoaderPath);
|
||||
if(!CheckFile(NIN_loader_path))
|
||||
snprintf(NIN_loader_path, sizeof(NIN_loader_path), "%sloader.dol", Settings.NINLoaderPath);
|
||||
if(CheckFile(NIN_loader_path))
|
||||
{
|
||||
u8 *buffer = NULL;
|
||||
@ -355,190 +356,190 @@ void WindowCredits()
|
||||
}
|
||||
|
||||
// Header - Top left
|
||||
txt[i] = new GuiText(GCInfo2, 16, ( GXColor ) {255, 255, 255, 255});
|
||||
txt[i]->SetAlignment(ALIGN_LEFT, ALIGN_TOP);
|
||||
txt[i]->SetPosition(0, strlen(GCInfo) > 0 ? y-10 : y);
|
||||
txt[i]->SetFont(creditsFont, creditsFontSize);
|
||||
i++;
|
||||
currentTxt = new GuiText(GCInfo2, 16, ( GXColor ) {255, 255, 255, 255});
|
||||
currentTxt->SetAlignment(ALIGN_LEFT, ALIGN_TOP);
|
||||
currentTxt->SetPosition(0, strlen(GCInfo) > 0 ? y-10 : y);
|
||||
currentTxt->SetFont(creditsFont, creditsFontSize);
|
||||
txt.push_back(currentTxt);
|
||||
|
||||
// Header - Bottom left
|
||||
txt[i] = new GuiText(GCInfo, 16, ( GXColor ) {255, 255, 255, 255});
|
||||
txt[i]->SetAlignment(ALIGN_LEFT, ALIGN_TOP);
|
||||
txt[i]->SetPosition(0, y+6);
|
||||
txt[i]->SetFont(creditsFont, creditsFontSize);
|
||||
i++;
|
||||
currentTxt = new GuiText(GCInfo, 16, ( GXColor ) {255, 255, 255, 255});
|
||||
currentTxt->SetAlignment(ALIGN_LEFT, ALIGN_TOP);
|
||||
currentTxt->SetPosition(0, y+6);
|
||||
currentTxt->SetFont(creditsFont, creditsFontSize);
|
||||
txt.push_back(currentTxt);
|
||||
|
||||
// Header - Top right
|
||||
txt[i] = new GuiText(SvnRev, 16, ( GXColor ) {255, 255, 255, 255});
|
||||
txt[i]->SetAlignment(ALIGN_RIGHT, ALIGN_TOP);
|
||||
txt[i]->SetPosition(0, (info || currentMIOS > DEFAULT_MIOS) ? y-10 : y);
|
||||
txt[i]->SetFont(creditsFont, creditsFontSize);
|
||||
i++;
|
||||
currentTxt = new GuiText(SvnRev, 16, ( GXColor ) {255, 255, 255, 255});
|
||||
currentTxt->SetAlignment(ALIGN_RIGHT, ALIGN_TOP);
|
||||
currentTxt->SetPosition(0, (info || currentMIOS > DEFAULT_MIOS) ? y-10 : y);
|
||||
currentTxt->SetFont(creditsFont, creditsFontSize);
|
||||
txt.push_back(currentTxt);
|
||||
|
||||
// Header - Bottom right
|
||||
txt[i] = new GuiText(IosInfo, 16, ( GXColor ) {255, 255, 255, 255});
|
||||
txt[i]->SetAlignment(ALIGN_RIGHT, ALIGN_TOP);
|
||||
txt[i]->SetPosition(0, y+6);
|
||||
txt[i]->SetFont(creditsFont, creditsFontSize);
|
||||
i++;
|
||||
currentTxt = new GuiText(IosInfo, 16, ( GXColor ) {255, 255, 255, 255});
|
||||
currentTxt->SetAlignment(ALIGN_RIGHT, ALIGN_TOP);
|
||||
currentTxt->SetPosition(0, y+6);
|
||||
currentTxt->SetFont(creditsFont, creditsFontSize);
|
||||
txt.push_back(currentTxt);
|
||||
y += 34;
|
||||
|
||||
txt[i] = new GuiText("USB Loader GX", 24, ( GXColor ) {255, 255, 255, 255});
|
||||
txt[i]->SetAlignment(ALIGN_CENTER, ALIGN_TOP);
|
||||
txt[i]->SetPosition(0, y);
|
||||
txt[i]->SetFont(creditsFont, creditsFontSize);
|
||||
i++;
|
||||
currentTxt = new GuiText("USB Loader GX", 24, ( GXColor ) {255, 255, 255, 255});
|
||||
currentTxt->SetAlignment(ALIGN_CENTER, ALIGN_TOP);
|
||||
currentTxt->SetPosition(0, y);
|
||||
currentTxt->SetFont(creditsFont, creditsFontSize);
|
||||
txt.push_back(currentTxt);
|
||||
y += 24;
|
||||
|
||||
txt[i] = new GuiText(tr( "Official Site:" ), 20, ( GXColor ) {255, 255, 255, 255});
|
||||
txt[i]->SetAlignment(ALIGN_LEFT, ALIGN_TOP);
|
||||
txt[i]->SetPosition(10, y);
|
||||
txt[i]->SetFont(creditsFont, creditsFontSize);
|
||||
i++;
|
||||
currentTxt = new GuiText(tr( "Official Site:" ), 20, ( GXColor ) {255, 255, 255, 255});
|
||||
currentTxt->SetAlignment(ALIGN_LEFT, ALIGN_TOP);
|
||||
currentTxt->SetPosition(10, y);
|
||||
currentTxt->SetFont(creditsFont, creditsFontSize);
|
||||
txt.push_back(currentTxt);
|
||||
|
||||
txt[i] = new GuiText("http://code.google.com/p/usbloader-gui/", 20, ( GXColor ) {255, 255, 255, 255});
|
||||
txt[i]->SetAlignment(ALIGN_LEFT, ALIGN_TOP);
|
||||
txt[i]->SetPosition(160, y);
|
||||
txt[i]->SetFont(creditsFont, creditsFontSize);
|
||||
i++;
|
||||
currentTxt = new GuiText("http://code.google.com/p/usbloader-gui/", 20, ( GXColor ) {255, 255, 255, 255});
|
||||
currentTxt->SetAlignment(ALIGN_LEFT, ALIGN_TOP);
|
||||
currentTxt->SetPosition(160, y);
|
||||
currentTxt->SetFont(creditsFont, creditsFontSize);
|
||||
txt.push_back(currentTxt);
|
||||
y += 22;
|
||||
|
||||
GuiText::SetPresets(20, ( GXColor ) {255, 255, 255, 255}, 3000, FTGX_JUSTIFY_LEFT | FTGX_ALIGN_TOP, ALIGN_LEFT, ALIGN_TOP);
|
||||
|
||||
txt[i] = new GuiText(tr( "Coding:" ));
|
||||
txt[i]->SetAlignment(ALIGN_LEFT, ALIGN_TOP);
|
||||
txt[i]->SetPosition(10, y);
|
||||
txt[i]->SetFont(creditsFont, creditsFontSize);
|
||||
i++;
|
||||
currentTxt = new GuiText(tr( "Coding:" ));
|
||||
currentTxt->SetAlignment(ALIGN_LEFT, ALIGN_TOP);
|
||||
currentTxt->SetPosition(10, y);
|
||||
currentTxt->SetFont(creditsFont, creditsFontSize);
|
||||
txt.push_back(currentTxt);
|
||||
|
||||
txt[i] = new GuiText("Dimok / nIxx / giantpune / ardi");
|
||||
txt[i]->SetAlignment(ALIGN_LEFT, ALIGN_TOP);
|
||||
txt[i]->SetPosition(160, y);
|
||||
txt[i]->SetFont(creditsFont, creditsFontSize);
|
||||
i++;
|
||||
currentTxt = new GuiText("Cyan / Dimok / nIxx / giantpune / ardi");
|
||||
currentTxt->SetAlignment(ALIGN_LEFT, ALIGN_TOP);
|
||||
currentTxt->SetPosition(160, y);
|
||||
currentTxt->SetFont(creditsFont, creditsFontSize);
|
||||
txt.push_back(currentTxt);
|
||||
y += 20;
|
||||
|
||||
txt[i] = new GuiText("hungyip84 / DrayX7 / lustar / r-win");
|
||||
txt[i]->SetAlignment(ALIGN_LEFT, ALIGN_TOP);
|
||||
txt[i]->SetPosition(160, y);
|
||||
txt[i]->SetFont(creditsFont, creditsFontSize);
|
||||
i++;
|
||||
currentTxt = new GuiText("hungyip84 / DrayX7 / lustar / r-win");
|
||||
currentTxt->SetAlignment(ALIGN_LEFT, ALIGN_TOP);
|
||||
currentTxt->SetPosition(160, y);
|
||||
currentTxt->SetFont(creditsFont, creditsFontSize);
|
||||
txt.push_back(currentTxt);
|
||||
y += 22;
|
||||
|
||||
char text[100];
|
||||
|
||||
txt[i] = new GuiText(tr( "Design:" ));
|
||||
txt[i]->SetAlignment(ALIGN_LEFT, ALIGN_TOP);
|
||||
txt[i]->SetPosition(10, y);
|
||||
txt[i]->SetFont(creditsFont, creditsFontSize);
|
||||
i++;
|
||||
currentTxt = new GuiText(tr( "Design:" ));
|
||||
currentTxt->SetAlignment(ALIGN_LEFT, ALIGN_TOP);
|
||||
currentTxt->SetPosition(10, y);
|
||||
currentTxt->SetFont(creditsFont, creditsFontSize);
|
||||
txt.push_back(currentTxt);
|
||||
|
||||
txt[i] = new GuiText("cyrex / NeoRame");
|
||||
txt[i]->SetAlignment(ALIGN_LEFT, ALIGN_TOP);
|
||||
txt[i]->SetPosition(160, y);
|
||||
txt[i]->SetFont(creditsFont, creditsFontSize);
|
||||
i++;
|
||||
currentTxt = new GuiText("cyrex / NeoRame");
|
||||
currentTxt->SetAlignment(ALIGN_LEFT, ALIGN_TOP);
|
||||
currentTxt->SetPosition(160, y);
|
||||
currentTxt->SetFont(creditsFont, creditsFontSize);
|
||||
txt.push_back(currentTxt);
|
||||
y += 22;
|
||||
|
||||
txt[i] = new GuiText(tr( "Main tester:" ));
|
||||
txt[i]->SetAlignment(ALIGN_LEFT, ALIGN_TOP);
|
||||
txt[i]->SetPosition(10, y);
|
||||
txt[i]->SetFont(creditsFont, creditsFontSize);
|
||||
i++;
|
||||
currentTxt = new GuiText("");
|
||||
currentTxt->SetAlignment(ALIGN_LEFT, ALIGN_TOP);
|
||||
currentTxt->SetPosition(10, y);
|
||||
currentTxt->SetFont(creditsFont, creditsFontSize);
|
||||
txt.push_back(currentTxt);
|
||||
|
||||
txt[i] = new GuiText("Cyan");
|
||||
txt[i]->SetAlignment(ALIGN_LEFT, ALIGN_TOP);
|
||||
txt[i]->SetPosition(160, y);
|
||||
txt[i]->SetFont(creditsFont, creditsFontSize);
|
||||
i++;
|
||||
currentTxt = new GuiText("");
|
||||
currentTxt->SetAlignment(ALIGN_LEFT, ALIGN_TOP);
|
||||
currentTxt->SetPosition(160, y);
|
||||
currentTxt->SetFont(creditsFont, creditsFontSize);
|
||||
txt.push_back(currentTxt);
|
||||
y += 22;
|
||||
|
||||
txt[i] = new GuiText(tr( "Big thanks to:" ));
|
||||
txt[i]->SetAlignment(ALIGN_LEFT, ALIGN_TOP);
|
||||
txt[i]->SetPosition(10, y);
|
||||
txt[i]->SetFont(creditsFont, creditsFontSize);
|
||||
i++;
|
||||
currentTxt = new GuiText(tr( "Big thanks to:" ));
|
||||
currentTxt->SetAlignment(ALIGN_LEFT, ALIGN_TOP);
|
||||
currentTxt->SetPosition(10, y);
|
||||
currentTxt->SetFont(creditsFont, creditsFontSize);
|
||||
txt.push_back(currentTxt);
|
||||
|
||||
sprintf(text, "lustar %s", tr( "for GameTDB and hosting covers / disc images" ));
|
||||
txt[i] = new GuiText(text);
|
||||
txt[i]->SetAlignment(ALIGN_LEFT, ALIGN_TOP);
|
||||
txt[i]->SetPosition(160, y);
|
||||
txt[i]->SetFont(creditsFont, creditsFontSize);
|
||||
i++;
|
||||
currentTxt = new GuiText(text);
|
||||
currentTxt->SetAlignment(ALIGN_LEFT, ALIGN_TOP);
|
||||
currentTxt->SetPosition(160, y);
|
||||
currentTxt->SetFont(creditsFont, creditsFontSize);
|
||||
txt.push_back(currentTxt);
|
||||
y += 20;
|
||||
|
||||
sprintf(text, "Cyan and Shano56 %s", tr( "for their work on the wiki page" ));
|
||||
txt[i] = new GuiText(text);
|
||||
txt[i]->SetAlignment(ALIGN_LEFT, ALIGN_TOP);
|
||||
txt[i]->SetPosition(160, y);
|
||||
txt[i]->SetFont(creditsFont, creditsFontSize);
|
||||
i++;
|
||||
currentTxt = new GuiText(text);
|
||||
currentTxt->SetAlignment(ALIGN_LEFT, ALIGN_TOP);
|
||||
currentTxt->SetPosition(160, y);
|
||||
currentTxt->SetFont(creditsFont, creditsFontSize);
|
||||
txt.push_back(currentTxt);
|
||||
y += 20;
|
||||
|
||||
sprintf(text, "Kinyo %s", tr( "and translators for language files updates" ));
|
||||
txt[i] = new GuiText(text);
|
||||
txt[i]->SetAlignment(ALIGN_LEFT, ALIGN_TOP);
|
||||
txt[i]->SetPosition(160, y);
|
||||
txt[i]->SetFont(creditsFont, creditsFontSize);
|
||||
i++;
|
||||
currentTxt = new GuiText(text);
|
||||
currentTxt->SetAlignment(ALIGN_LEFT, ALIGN_TOP);
|
||||
currentTxt->SetPosition(160, y);
|
||||
currentTxt->SetFont(creditsFont, creditsFontSize);
|
||||
txt.push_back(currentTxt);
|
||||
y += 20;
|
||||
|
||||
sprintf(text, "Deak Phreak %s", tr( "for hosting the themes" ));
|
||||
txt[i] = new GuiText(text);
|
||||
txt[i]->SetAlignment(ALIGN_LEFT, ALIGN_TOP);
|
||||
txt[i]->SetPosition(160, y);
|
||||
txt[i]->SetFont(creditsFont, creditsFontSize);
|
||||
i++;
|
||||
currentTxt = new GuiText(text);
|
||||
currentTxt->SetAlignment(ALIGN_LEFT, ALIGN_TOP);
|
||||
currentTxt->SetPosition(160, y);
|
||||
currentTxt->SetFont(creditsFont, creditsFontSize);
|
||||
txt.push_back(currentTxt);
|
||||
y += 24;
|
||||
|
||||
txt[i] = new GuiText(tr( "Special thanks to:" ));
|
||||
txt[i]->SetAlignment(ALIGN_LEFT, ALIGN_TOP);
|
||||
txt[i]->SetPosition(10, y);
|
||||
txt[i]->SetFont(creditsFont, creditsFontSize);
|
||||
i++;
|
||||
currentTxt = new GuiText(tr( "Special thanks to:" ));
|
||||
currentTxt->SetAlignment(ALIGN_LEFT, ALIGN_TOP);
|
||||
currentTxt->SetPosition(10, y);
|
||||
currentTxt->SetFont(creditsFont, creditsFontSize);
|
||||
txt.push_back(currentTxt);
|
||||
y += 20;
|
||||
|
||||
sprintf(text, "Waninkoko, Kwiirk & Hermes %s", tr( "for the USB Loader source" ));
|
||||
txt[i] = new GuiText(text);
|
||||
txt[i]->SetAlignment(ALIGN_LEFT, ALIGN_TOP);
|
||||
txt[i]->SetPosition(10, y);
|
||||
txt[i]->SetFont(creditsFont, creditsFontSize);
|
||||
i++;
|
||||
currentTxt = new GuiText(text);
|
||||
currentTxt->SetAlignment(ALIGN_LEFT, ALIGN_TOP);
|
||||
currentTxt->SetPosition(10, y);
|
||||
currentTxt->SetFont(creditsFont, creditsFontSize);
|
||||
txt.push_back(currentTxt);
|
||||
y += 20;
|
||||
|
||||
sprintf(text, "Tantric %s", tr( "for his awesome tool LibWiiGui" ));
|
||||
txt[i] = new GuiText(text);
|
||||
txt[i]->SetAlignment(ALIGN_LEFT, ALIGN_TOP);
|
||||
txt[i]->SetPosition(10, y);
|
||||
txt[i]->SetFont(creditsFont, creditsFontSize);
|
||||
i++;
|
||||
currentTxt = new GuiText(text);
|
||||
currentTxt->SetAlignment(ALIGN_LEFT, ALIGN_TOP);
|
||||
currentTxt->SetPosition(10, y);
|
||||
currentTxt->SetFont(creditsFont, creditsFontSize);
|
||||
txt.push_back(currentTxt);
|
||||
y += 20;
|
||||
|
||||
sprintf(text, "Fishears/Nuke %s", tr( "for Ocarina" ));
|
||||
txt[i] = new GuiText(text);
|
||||
txt[i]->SetAlignment(ALIGN_LEFT, ALIGN_TOP);
|
||||
txt[i]->SetPosition(10, y);
|
||||
txt[i]->SetFont(creditsFont, creditsFontSize);
|
||||
i++;
|
||||
currentTxt = new GuiText(text);
|
||||
currentTxt->SetAlignment(ALIGN_LEFT, ALIGN_TOP);
|
||||
currentTxt->SetPosition(10, y);
|
||||
currentTxt->SetFont(creditsFont, creditsFontSize);
|
||||
txt.push_back(currentTxt);
|
||||
y += 20;
|
||||
|
||||
sprintf(text, "WiiPower %s", tr( "for diverse patches" ));
|
||||
txt[i] = new GuiText(text);
|
||||
txt[i]->SetAlignment(ALIGN_LEFT, ALIGN_TOP);
|
||||
txt[i]->SetPosition(10, y);
|
||||
txt[i]->SetFont(creditsFont, creditsFontSize);
|
||||
i++;
|
||||
currentTxt = new GuiText(text);
|
||||
currentTxt->SetAlignment(ALIGN_LEFT, ALIGN_TOP);
|
||||
currentTxt->SetPosition(10, y);
|
||||
currentTxt->SetFont(creditsFont, creditsFontSize);
|
||||
txt.push_back(currentTxt);
|
||||
y += 20;
|
||||
|
||||
sprintf(text, "Oggzee %s", tr( "for FAT/NTFS support" ));
|
||||
txt[i] = new GuiText(text);
|
||||
txt[i]->SetAlignment(ALIGN_LEFT, ALIGN_TOP);
|
||||
txt[i]->SetPosition(10, y);
|
||||
txt[i]->SetFont(creditsFont, creditsFontSize);
|
||||
i++;
|
||||
currentTxt = new GuiText(text);
|
||||
currentTxt->SetAlignment(ALIGN_LEFT, ALIGN_TOP);
|
||||
currentTxt->SetPosition(10, y);
|
||||
currentTxt->SetFont(creditsFont, creditsFontSize);
|
||||
txt.push_back(currentTxt);
|
||||
y += 20;
|
||||
|
||||
for (i = 0; i < numEntries; i++)
|
||||
for (i = 0; i < txt.size(); i++)
|
||||
creditsWindowBox.Append(txt[i]);
|
||||
|
||||
creditsWindow.Append(&creditsWindowBox);
|
||||
@ -578,7 +579,7 @@ void WindowCredits()
|
||||
HaltGui();
|
||||
mainWindow->Remove(&creditsWindow);
|
||||
mainWindow->SetState(STATE_DEFAULT);
|
||||
for (i = 0; i < numEntries; i++)
|
||||
for (i = 0; i < txt.size(); i++)
|
||||
{
|
||||
delete txt[i];
|
||||
txt[i] = NULL;
|
||||
@ -1368,7 +1369,13 @@ bool NetworkInitPrompt()
|
||||
|
||||
return success;
|
||||
}
|
||||
|
||||
/*
|
||||
static size_t writedata(void *ptr, size_t size, size_t nmemb, void *stream)
|
||||
{
|
||||
int written = fwrite(ptr, size, nmemb, (FILE *)stream);
|
||||
return written;
|
||||
}
|
||||
*/
|
||||
int CodeDownload(const char *id)
|
||||
{
|
||||
if (!CreateSubfolder(Settings.TxtCheatcodespath))
|
||||
@ -1462,7 +1469,63 @@ int CodeDownload(const char *id)
|
||||
|
||||
char codeurl[250];
|
||||
snprintf(codeurl, sizeof(codeurl), "http://geckocodes.org/txt.php?txt=%s", id);
|
||||
//snprintf(codeurl, sizeof(codeurl), "http://geckocodes.org/codes/G/%s.txt", id);
|
||||
|
||||
/* //// preparation for lib cURL - Thanks airline38
|
||||
|
||||
CURL *curl_handle;
|
||||
|
||||
// Forge cURL header - needed for cloudflare proxy
|
||||
char useragent[20];
|
||||
snprintf(useragent, sizeof(useragent), "USBLoaderGX r%s", GetRev());
|
||||
curl_handle = curl_easy_init();
|
||||
curl_easy_setopt(curl_handle, CURLOPT_USERAGENT, useragent);
|
||||
curl_easy_setopt(curl_handle, CURLOPT_SSL_VERIFYPEER, 0L);
|
||||
curl_easy_setopt(curl_handle, CURLOPT_URL, codeurl);
|
||||
curl_easy_setopt(curl_handle, CURLOPT_HTTPGET, 1); // needed?
|
||||
|
||||
FILE * pfile = fopen(txtpath, "wb");
|
||||
if(pfile)
|
||||
{
|
||||
curl_easy_setopt(curl_handle, CURLOPT_WRITEFUNCTION, writedata);
|
||||
curl_easy_setopt(curl_handle, CURLOPT_WRITEDATA, (void *)pfile);
|
||||
curl_easy_perform(curl_handle);
|
||||
fclose(pfile);
|
||||
|
||||
// verify downloaded content
|
||||
pfile = fopen(txtpath, "rb");
|
||||
char target[4];
|
||||
fseek(pfile,0,SEEK_SET);
|
||||
fread(target, sizeof(char), 4, pfile);
|
||||
fclose(pfile);
|
||||
//printf("target=%s game id=%s\n",target,id);
|
||||
if (strncmp(target,id,4)== 0 )
|
||||
{
|
||||
snprintf(txtpath, sizeof(txtpath), "%s%s", txtpath, tr(" has been Saved. The text has not been verified. Some of the code may not work right with each other. If you experience trouble, open the text in a real text editor for more information." ));
|
||||
WindowPrompt(0, txtpath, tr( "OK" ));
|
||||
curl_easy_cleanup(curl_handle);
|
||||
curl_global_cleanup();
|
||||
ret = 0;
|
||||
}
|
||||
else
|
||||
{
|
||||
RemoveFile(txtpath);
|
||||
snprintf(codeurl, sizeof(codeurl), "%s%s", codeurl, tr( " is not on the server." ));
|
||||
WindowPrompt(tr( "Error" ), codeurl, tr( "OK" ));
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
snprintf(codeurl, sizeof(codeurl), "%s%s", codeurl, tr(" could not be downloaded."));
|
||||
WindowPrompt(tr( "Error" ), codeurl, tr( "OK" ));
|
||||
}
|
||||
|
||||
curl_easy_cleanup(curl_handle);
|
||||
curl_global_cleanup();
|
||||
|
||||
/////
|
||||
*/
|
||||
|
||||
struct block file = downloadfile(codeurl);
|
||||
|
||||
if (file.data != NULL)
|
||||
|
@ -78,7 +78,7 @@ void CSettings::SetDefault()
|
||||
strlcpy(NandEmuChanPath, NandEmuPath, sizeof(NandEmuChanPath));
|
||||
strlcpy(GameCubePath, "usb1:/games/", sizeof(GameCubePath));
|
||||
strlcpy(GameCubeSDPath, "sd:/games/", sizeof(GameCubeSDPath));
|
||||
strlcpy(CustomBannersURL, "http://dl.dropbox.com/u/101209384/", sizeof(CustomBannersURL));
|
||||
strlcpy(CustomBannersURL, "http://dl.dropboxusercontent.com/u/101209384/", sizeof(CustomBannersURL));
|
||||
theme[0] = 0;
|
||||
language_path[0] = 0;
|
||||
ogg_path[0] = 0;
|
||||
@ -133,6 +133,7 @@ void CSettings::SetDefault()
|
||||
MultiplePartitions = OFF;
|
||||
BlockIOSReload = AUTO;
|
||||
USBPort = 0;
|
||||
USBAutoMount = ON;
|
||||
CacheTitles = ON;
|
||||
WSFactor = 0.8f; //actually should be 0.75 for real widescreen
|
||||
FontScaleFactor = 0.8f; //it's a work around to not have to change ALL fonts now
|
||||
@ -346,6 +347,7 @@ bool CSettings::Save()
|
||||
fprintf(file, "HomeMenu = %d\n", HomeMenu);
|
||||
fprintf(file, "MultiplePartitions = %d\n", MultiplePartitions);
|
||||
fprintf(file, "USBPort = %d\n", USBPort);
|
||||
fprintf(file, "USBAutoMount = %d\n", USBAutoMount);
|
||||
fprintf(file, "CacheTitles = %d\n", CacheTitles);
|
||||
fprintf(file, "BlockIOSReload = %d\n", BlockIOSReload);
|
||||
fprintf(file, "WSFactor = %0.3f\n", WSFactor);
|
||||
@ -642,6 +644,11 @@ bool CSettings::SetSetting(char *name, char *value)
|
||||
USBPort = atoi(value);
|
||||
return true;
|
||||
}
|
||||
else if (strcmp(name, "USBAutoMount") == 0)
|
||||
{
|
||||
USBAutoMount = atoi(value);
|
||||
return true;
|
||||
}
|
||||
else if (strcmp(name, "CacheTitles") == 0)
|
||||
{
|
||||
CacheTitles = atoi(value);
|
||||
|
@ -132,6 +132,7 @@ class CSettings
|
||||
short HomeMenu;
|
||||
short MultiplePartitions;
|
||||
short USBPort;
|
||||
short USBAutoMount;
|
||||
short CacheTitles;
|
||||
short BlockIOSReload;
|
||||
u32 InstallPartitions;
|
||||
|
@ -75,6 +75,7 @@ HardDriveSM::HardDriveSM()
|
||||
Options->SetName(Idx++, "%s", tr( "Game/Install Partition" ));
|
||||
Options->SetName(Idx++, "%s", tr( "Multiple Partitions" ));
|
||||
Options->SetName(Idx++, "%s", tr( "USB Port" ));
|
||||
Options->SetName(Idx++, "%s", tr( "Mount USB at launch" ));
|
||||
Options->SetName(Idx++, "%s", tr( "Install Directories" ));
|
||||
Options->SetName(Idx++, "%s", tr( "Game Split Size" ));
|
||||
Options->SetName(Idx++, "%s", tr( "Install Partitions" ));
|
||||
@ -108,6 +109,7 @@ HardDriveSM::~HardDriveSM()
|
||||
Settings.partition = 0;
|
||||
}
|
||||
|
||||
WBFS_Init(WBFS_DEVICE_USB);
|
||||
if(Settings.MultiplePartitions)
|
||||
WBFS_OpenAll();
|
||||
else
|
||||
@ -143,6 +145,9 @@ void HardDriveSM::SetOptionValues()
|
||||
else
|
||||
Options->SetValue(Idx++, "%i", NewSettingsUSBPort);
|
||||
|
||||
//! Settings: Auto Mount USB at launch
|
||||
Options->SetValue(Idx++, "%s", tr( OnOffText[Settings.USBAutoMount] ));
|
||||
|
||||
//! Settings: Install directories
|
||||
Options->SetValue(Idx++, "%s", tr( InstallToText[Settings.InstallToDir] ));
|
||||
|
||||
@ -179,6 +184,11 @@ int HardDriveSM::GetMenuInternal()
|
||||
//! Settings: Game/Install Partition
|
||||
if (ret == ++Idx)
|
||||
{
|
||||
// Init the USB device if mounted after launch.
|
||||
PartitionHandle * usbHandle = DeviceHandler::Instance()->GetUSBHandleFromPartition(Settings.partition);
|
||||
if(usbHandle == NULL)
|
||||
DeviceHandler::Instance()->MountAllUSB(true);
|
||||
|
||||
// Select the next valid partition, even if that's the same one
|
||||
int fs_type = 0;
|
||||
int ios = IOS_GetVersion();
|
||||
@ -214,6 +224,12 @@ int HardDriveSM::GetMenuInternal()
|
||||
NewSettingsUSBPort = 0;
|
||||
}
|
||||
|
||||
//! Settings: Auto mount USB at launch
|
||||
else if (ret == ++Idx)
|
||||
{
|
||||
if (++Settings.USBAutoMount >= MAX_ON_OFF) Settings.USBAutoMount = 0;
|
||||
}
|
||||
|
||||
//! Settings: Install directories
|
||||
else if (ret == ++Idx)
|
||||
{
|
||||
|
@ -10,6 +10,8 @@
|
||||
// Copyright (C) 2010 Joseph Jordan <joe.ftpii@psychlaw.com.au>
|
||||
// Copyright (C) 2012-2013 damysteryman
|
||||
// Copyright (C) 2012-2013 Christopher Bratusek <nano@tuxfamily.org>
|
||||
// Copyright (C) 2013 DarkMatterCore
|
||||
// Copyright (C) 2014 megazig
|
||||
|
||||
#include <gccore.h>
|
||||
#include <ogc/machine/processor.h>
|
||||
@ -21,10 +23,8 @@
|
||||
#define MEM_REG_BASE 0xd8b4000
|
||||
#define MEM_PROT (MEM_REG_BASE + 0x20a)
|
||||
|
||||
//const u8 check_tmd_patch1[] = { 0x23, 0x01, 0x42, 0x5B };
|
||||
|
||||
|
||||
static void disable_memory_protection() {
|
||||
static inline void disable_memory_protection(void) {
|
||||
write32(MEM_PROT, read32(MEM_PROT) & 0x0000FFFF);
|
||||
}
|
||||
|
||||
@ -36,65 +36,59 @@ static const u8 di_readlimit_old[] = {
|
||||
};
|
||||
static const u8 di_readlimit_patch[] = { 0x7e, 0xd4 };
|
||||
|
||||
const u8 isfs_permissions_old[] = { 0x42, 0x8B, 0xD0, 0x01, 0x25, 0x66 };
|
||||
const u8 isfs_permissions_patch[] = { 0x42, 0x8B, 0xE0, 0x01, 0x25, 0x66 };
|
||||
const u8 setuid_old[] = { 0xD1, 0x2A, 0x1C, 0x39 };
|
||||
const u8 setuid_patch[] = { 0x46, 0xC0 };
|
||||
const u8 es_identify_old[] = { 0x28, 0x03, 0xD1, 0x23 };
|
||||
const u8 es_identify_patch[] = { 0x00, 0x00 };
|
||||
const u8 hash_old[] = { 0x20, 0x07, 0x4B, 0x0B };
|
||||
const u8 hash_patch[] = { 0x00 };
|
||||
const u8 new_hash_old[] = { 0x20, 0x07, 0x4B, 0x0B };
|
||||
const u8 addticket_vers_check[] = { 0xD2, 0x01, 0x4E, 0x56 };
|
||||
const u8 addticket_patch[] = { 0xE0 };
|
||||
const u8 es_set_ahbprot_old[] = { 0x68, 0x5B, 0x22, 0xEC, 0x00, 0x52, 0x18, 0x9B, 0x68, 0x1B, 0x46, 0x98, 0x07, 0xDB };
|
||||
const u8 es_set_ahbprot_patch[] = { 0x01 };
|
||||
static const u8 isfs_permissions_old[] = { 0x42, 0x8B, 0xD0, 0x01, 0x25, 0x66 };
|
||||
static const u8 isfs_permissions_patch[] = { 0x42, 0x8B, 0xE0, 0x01, 0x25, 0x66 };
|
||||
static const u8 setuid_old[] = { 0xD1, 0x2A, 0x1C, 0x39 };
|
||||
static const u8 setuid_patch[] = { 0x46, 0xC0 };
|
||||
static const u8 es_identify_old[] = { 0x28, 0x03, 0xD1, 0x23 };
|
||||
static const u8 es_identify_patch[] = { 0x00, 0x00 };
|
||||
static const u8 hash_old[] = { 0x20, 0x07, 0x23, 0xA2 };
|
||||
static const u8 hash_patch[] = { 0x00 };
|
||||
static const u8 new_hash_old[] = { 0x20, 0x07, 0x4B, 0x0B };
|
||||
static const u8 addticket_vers_check[] = { 0xD2, 0x01, 0x4E, 0x56 };
|
||||
static const u8 addticket_patch[] = { 0xE0 };
|
||||
static const u8 es_set_ahbprot_old[] = { 0x68, 0x5B, 0x22, 0xEC, 0x00, 0x52, 0x18, 0x9B, 0x68, 0x1B, 0x46, 0x98, 0x07, 0xDB };
|
||||
static const u8 es_set_ahbprot_patch[] = { 0x01 };
|
||||
|
||||
//Following patches added to iospatch.c by damysteryman, taken from sciifii v5
|
||||
const u8 MEM2_prot_old[] = { 0xB5, 0x00, 0x4B, 0x09, 0x22, 0x01, 0x80, 0x1A, 0x22, 0xF0 };
|
||||
const u8 MEM2_prot_patch[] = { 0xB5, 0x00, 0x4B, 0x09, 0x22, 0x00, 0x80, 0x1A, 0x22, 0xF0 };
|
||||
const u8 ES_OpenTitleContent1_old[] = { 0x9D, 0x05, 0x42, 0x9D, 0xD0, 0x03 };
|
||||
const u8 ES_OpenTitleContent1_patch[] = { 0x9D, 0x05, 0x42, 0x9D, 0xE0, 0x03 };
|
||||
const u8 ES_OpenTitleContent2_old[] = { 0xD4, 0x01, 0x4C, 0x36, 0xE0, 0x3B };
|
||||
const u8 ES_OpenTitleContent2_patch[] = { 0xE0, 0x01, 0x4C, 0x36, 0xE0, 0x3B };
|
||||
const u8 ES_ReadContent_old[] = { 0xFC, 0x0F, 0xB5, 0x30, 0x1C, 0x14, 0x1C, 0x1D, 0x4B,
|
||||
0x0E, 0x68, 0x9B, 0x2B, 0x00, 0xD0, 0x03, 0x29, 0x00, 0xDB, 0x01,
|
||||
0x29, 0x0F, 0xDD, 0x01 };
|
||||
const u8 ES_ReadContent_patch[] = { 0xFC, 0x0F, 0xB5, 0x30, 0x1C, 0x14, 0x1C, 0x1D, 0x4B,
|
||||
0x0E, 0x68, 0x9B, 0x2B, 0x00, 0x46, 0xC0, 0x29, 0x00, 0x46, 0xC0,
|
||||
0x29, 0x0F, 0xE0, 0x01 };
|
||||
const u8 ES_CloseContent_old[] = { 0xB5, 0x10, 0x4B, 0x10, 0x68, 0x9B, 0x2B, 0x00, 0xD0,
|
||||
0x03, 0x29, 0x00, 0xDB, 0x01, 0x29, 0x0F, 0xDD, 0x01 };
|
||||
const u8 ES_CloseContent_patch[] = { 0xB5, 0x10, 0x4B, 0x10, 0x68, 0x9B, 0x2B, 0x00, 0x46,
|
||||
0xC0, 0x29, 0x00, 0x46, 0xC0, 0x29, 0x0F, 0xE0, 0x01 };
|
||||
const u8 ES_TitleVersionCheck_old[] = { 0xD2, 0x01, 0x4E, 0x56 };
|
||||
const u8 ES_TitleVersionCheck_patch[] = { 0xE0, 0x01, 0x4E, 0x56 };
|
||||
const u8 ES_TitleDeleteCheck_old[] = { 0xD8, 0x00, 0x4A, 0x04 };
|
||||
const u8 ES_TitleDeleteCheck_patch[] = { 0xE0, 0x00, 0x4A, 0x04 };
|
||||
static const u8 MEM2_prot_old[] = { 0xB5, 0x00, 0x4B, 0x09, 0x22, 0x01, 0x80, 0x1A, 0x22, 0xF0 };
|
||||
static const u8 MEM2_prot_patch[] = { 0xB5, 0x00, 0x4B, 0x09, 0x22, 0x00, 0x80, 0x1A, 0x22, 0xF0 };
|
||||
static const u8 ES_OpenTitleContent1_old[] = { 0x9D, 0x05, 0x42, 0x9D, 0xD0, 0x03 };
|
||||
static const u8 ES_OpenTitleContent1_patch[] = { 0x9D, 0x05, 0x42, 0x9D, 0xE0, 0x03 };
|
||||
static const u8 ES_OpenTitleContent2_old[] = { 0xD4, 0x01, 0x4C, 0x36, 0xE0, 0x3B };
|
||||
static const u8 ES_OpenTitleContent2_patch[] = { 0xE0, 0x01, 0x4C, 0x36, 0xE0, 0x3B };
|
||||
static const u8 ES_ReadContent_old[] = { 0xFC, 0x0F, 0xB5, 0x30, 0x1C, 0x14, 0x1C, 0x1D, 0x4B,
|
||||
0x0E, 0x68, 0x9B, 0x2B, 0x00, 0xD0, 0x03, 0x29, 0x00, 0xDB, 0x01,
|
||||
0x29, 0x0F, 0xDD, 0x01 };
|
||||
static const u8 ES_ReadContent_patch[] = { 0xFC, 0x0F, 0xB5, 0x30, 0x1C, 0x14, 0x1C, 0x1D, 0x4B,
|
||||
0x0E, 0x68, 0x9B, 0x2B, 0x00, 0x46, 0xC0, 0x29, 0x00, 0x46, 0xC0,
|
||||
0x29, 0x0F, 0xE0, 0x01 };
|
||||
static const u8 ES_CloseContent_old[] = { 0xB5, 0x10, 0x4B, 0x10, 0x68, 0x9B, 0x2B, 0x00, 0xD0,
|
||||
0x03, 0x29, 0x00, 0xDB, 0x01, 0x29, 0x0F, 0xDD, 0x01 };
|
||||
static const u8 ES_CloseContent_patch[] = { 0xB5, 0x10, 0x4B, 0x10, 0x68, 0x9B, 0x2B, 0x00, 0x46,
|
||||
0xC0, 0x29, 0x00, 0x46, 0xC0, 0x29, 0x0F, 0xE0, 0x01 };
|
||||
static const u8 ES_TitleVersionCheck_old[] = { 0xD2, 0x01, 0x4E, 0x56 };
|
||||
static const u8 ES_TitleVersionCheck_patch[] = { 0xE0, 0x01, 0x4E, 0x56 };
|
||||
static const u8 ES_TitleDeleteCheck_old[] = { 0xD8, 0x00, 0x4A, 0x04 };
|
||||
static const u8 ES_TitleDeleteCheck_patch[] = { 0xE0, 0x00, 0x4A, 0x04 };
|
||||
|
||||
//Following patches made my damysteryman for use with Wii U's vWii
|
||||
/*const u8 Kill_AntiSysTitleInstallv2_pt1_old[] = { 0x68, 0x1A, 0x2A, 0x01, 0xD0, 0x05 }; // Make sure that the pt1
|
||||
const u8 Kill_AntiSysTitleInstallv2_pt1_patch[] = { 0x68, 0x1A, 0x2A, 0x01, 0x46, 0xC0 }; // patch is applied twice. -dmm
|
||||
const u8 Kill_AntiSysTitleInstallv2_pt2_old[] = { 0x4B, 0x29, 0x42, 0x9A, 0xD0, 0x02 };
|
||||
const u8 Kill_AntiSysTitleInstallv2_pt2_patch[] = { 0x4B, 0x29, 0x42, 0x9A, 0x46, 0xC0 };
|
||||
const u8 Kill_AntiSysTitleInstallv2_pt3_old[] = { 0xD0, 0x02, 0x33, 0x06 };
|
||||
const u8 Kill_AntiSysTitleInstallv2_pt3_patch[] = { 0x46, 0xC0, 0x33, 0x06 };
|
||||
const u8 Kill_AntiSysTitleInstallv2_pt4_old[] = { 0x2C, 0x01, 0xD0, 0x07};
|
||||
const u8 Kill_AntiSysTitleInstallv2_pt4_patch[] = { 0x2C, 0x01, 0x46, 0xC0};
|
||||
const u8 Kill_AntiSysTitleInstallv2_pt5_old[] = { 0x42, 0x94, 0xD0, 0x03, 0x9C, 0x03 };
|
||||
const u8 Kill_AntiSysTitleInstallv2_pt5_patch[] = { 0x42, 0x94, 0x46, 0xC0, 0x9C, 0x03 };*/
|
||||
|
||||
//Following patches made my damysteryman for use with Wii U's vWii
|
||||
const u8 Kill_AntiSysTitleInstallv3_pt1_old[] = { 0x68, 0x1A, 0x2A, 0x01, 0xD0, 0x05 }; // Make sure that the pt1
|
||||
const u8 Kill_AntiSysTitleInstallv3_pt1_patch[] = { 0x68, 0x1A, 0x2A, 0x01, 0x46, 0xC0 }; // patch is applied twice. -dmm
|
||||
const u8 Kill_AntiSysTitleInstallv3_pt2_old[] = { 0xD0, 0x02, 0x33, 0x06, 0x42, 0x9A, 0xD1, 0x01 }; // Make sure that the pt2 patch
|
||||
const u8 Kill_AntiSysTitleInstallv3_pt2_patch[] = { 0x46, 0xC0, 0x33, 0x06, 0x42, 0x9A, 0xE0, 0x01 }; // is also applied twice. -dmm
|
||||
const u8 Kill_AntiSysTitleInstallv3_pt3_old[] = { 0x68, 0xFB, 0x2B, 0x00, 0xDB, 0x01 };
|
||||
const u8 Kill_AntiSysTitleInstallv3_pt3_patch[] = { 0x68, 0xFB, 0x2B, 0x00, 0xDB, 0x10 };
|
||||
//Following set of patches made by damysteryman for use with Wii U's vWii
|
||||
static const u8 Kill_AntiSysTitleInstallv3_pt1_old[] = { 0x68, 0x1A, 0x2A, 0x01, 0xD0, 0x05 }; // Make sure that the pt1
|
||||
static const u8 Kill_AntiSysTitleInstallv3_pt1_patch[] = { 0x68, 0x1A, 0x2A, 0x01, 0x46, 0xC0 }; // patch is applied twice. -dmm
|
||||
static const u8 Kill_AntiSysTitleInstallv3_pt2_old[] = { 0xD0, 0x02, 0x33, 0x06, 0x42, 0x9A, 0xD1, 0x01 }; // Make sure that the pt2 patch
|
||||
static const u8 Kill_AntiSysTitleInstallv3_pt2_patch[] = { 0x46, 0xC0, 0x33, 0x06, 0x42, 0x9A, 0xE0, 0x01 }; // is also applied twice. -dmm
|
||||
static const u8 Kill_AntiSysTitleInstallv3_pt3_old[] = { 0x68, 0xFB, 0x2B, 0x00, 0xDB, 0x01 };
|
||||
static const u8 Kill_AntiSysTitleInstallv3_pt3_patch[] = { 0x68, 0xFB, 0x2B, 0x00, 0xDB, 0x10 };
|
||||
|
||||
static u32 apply_patch(char *name, const u8 *old, u32 old_size, const u8 *patch, u32 patch_size, u32 patch_offset, bool verbose) {
|
||||
static const u8 isfs_setattr_pt1_old[] = { 0x42, 0xAB, 0xD0, 0x02, 0x20, 0x66 };
|
||||
static const u8 isfs_setattr_pt1_patch[] = { 0x42, 0xAB, 0xE0, 0x02, 0x20, 0x66 };
|
||||
static const u8 isfs_setattr_pt2_old[] = { 0x2D, 0x00, 0xD0, 0x02, 0x20, 0x66 };
|
||||
static const u8 isfs_setattr_pt2_patch[] = { 0x2D, 0x00, 0xE0, 0x02, 0x20, 0x66 };
|
||||
|
||||
static u8 apply_patch(const char *name, const u8 *old, u32 old_size, const u8 *patch, size_t patch_size, u32 patch_offset, bool verbose) {
|
||||
u8 *ptr_start = (u8*)*((u32*)0x80003134), *ptr_end = (u8*)0x94000000;
|
||||
u32 found = 0;
|
||||
u8 found = 0;
|
||||
if(verbose)
|
||||
printf(" Patching %-30s", name);
|
||||
u8 *location = NULL;
|
||||
@ -124,7 +118,6 @@ static u32 apply_patch(char *name, const u8 *old, u32 old_size, const u8 *patch,
|
||||
s32 IosPatch_AHBPROT(bool verbose) {
|
||||
if (AHBPROT_DISABLED) {
|
||||
disable_memory_protection();
|
||||
//return apply_patch("set_ahbprot", check_tmd_old, sizeof(check_tmd_old), check_tmd_patch, sizeof(check_tmd_patch), 6, verbose);
|
||||
s32 ret = apply_patch("es_set_ahbprot", es_set_ahbprot_old, sizeof(es_set_ahbprot_old), es_set_ahbprot_patch, sizeof(es_set_ahbprot_patch), 25, verbose);
|
||||
if (ret)
|
||||
return ret;
|
||||
@ -141,19 +134,19 @@ s32 IosPatch_RUNTIME(bool wii, bool sciifii, bool vwii, bool verbose) {
|
||||
disable_memory_protection();
|
||||
if(wii)
|
||||
{
|
||||
if(verbose)
|
||||
printf(">> Applying standard Wii patches:\n");
|
||||
if(verbose) printf(">> Applying standard Wii patches:\n");
|
||||
count += apply_patch("di_readlimit", di_readlimit_old, sizeof(di_readlimit_old), di_readlimit_patch, sizeof(di_readlimit_patch), 12, verbose);
|
||||
count += apply_patch("isfs_permissions", isfs_permissions_old, sizeof(isfs_permissions_old), isfs_permissions_patch, sizeof(isfs_permissions_patch), 0, verbose);
|
||||
count += apply_patch("es_setuid", setuid_old, sizeof(setuid_old), setuid_patch, sizeof(setuid_patch), 0, verbose);
|
||||
count += apply_patch("es_identify", es_identify_old, sizeof(es_identify_old), es_identify_patch, sizeof(es_identify_patch), 2, verbose);
|
||||
count += apply_patch("hash_check", hash_old, sizeof(hash_old), hash_patch, sizeof(hash_patch), 1, verbose);
|
||||
count += apply_patch("new_hash_check", new_hash_old, sizeof(new_hash_old), hash_patch, sizeof(hash_patch), 1, verbose);
|
||||
count += apply_patch("isfs_setattr_pt1", isfs_setattr_pt1_old, sizeof(isfs_setattr_pt1_old), isfs_setattr_pt1_patch, sizeof(isfs_setattr_pt1_patch), 0, verbose);
|
||||
count += apply_patch("isfs_setattr_pt2", isfs_setattr_pt2_old, sizeof(isfs_setattr_pt2_old), isfs_setattr_pt2_patch, sizeof(isfs_setattr_pt2_patch), 0, verbose);
|
||||
}
|
||||
if(sciifii)
|
||||
{
|
||||
if(verbose)
|
||||
printf(">> Applying Sciifii patches:\n");
|
||||
if(verbose) printf(">> Applying Sciifii patches:\n");
|
||||
count += apply_patch("MEM2_prot", MEM2_prot_old, sizeof(MEM2_prot_old), MEM2_prot_patch, sizeof(MEM2_prot_patch), 0, verbose);
|
||||
count += apply_patch("ES_OpenTitleContent1", ES_OpenTitleContent1_old, sizeof(ES_OpenTitleContent1_old), ES_OpenTitleContent1_patch, sizeof(ES_OpenTitleContent1_patch), 0, verbose);
|
||||
count += apply_patch("ES_OpenTitleContent2", ES_OpenTitleContent2_old, sizeof(ES_OpenTitleContent2_old), ES_OpenTitleContent2_patch, sizeof(ES_OpenTitleContent2_patch), 0, verbose);
|
||||
@ -164,13 +157,7 @@ s32 IosPatch_RUNTIME(bool wii, bool sciifii, bool vwii, bool verbose) {
|
||||
}
|
||||
if(vwii)
|
||||
{
|
||||
if(verbose)
|
||||
printf(">> Applying vWii patches:\n");
|
||||
/*count += apply_patch("Kill_AntiSysTitleInstallv2_pt1", Kill_AntiSysTitleInstallv2_pt1_old, sizeof(Kill_AntiSysTitleInstallv2_pt1_old), Kill_AntiSysTitleInstallv2_pt1_patch, sizeof(Kill_AntiSysTitleInstallv2_pt1_patch), 0, verbose);
|
||||
count += apply_patch("Kill_AntiSysTitleInstallv2_pt2", Kill_AntiSysTitleInstallv2_pt2_old, sizeof(Kill_AntiSysTitleInstallv2_pt2_old), Kill_AntiSysTitleInstallv2_pt2_patch, sizeof(Kill_AntiSysTitleInstallv2_pt2_patch), 0, verbose);
|
||||
count += apply_patch("Kill_AntiSysTitleInstallv2_pt3", Kill_AntiSysTitleInstallv2_pt3_old, sizeof(Kill_AntiSysTitleInstallv2_pt3_old), Kill_AntiSysTitleInstallv2_pt3_patch, sizeof(Kill_AntiSysTitleInstallv2_pt3_patch), 0, verbose);
|
||||
count += apply_patch("Kill_AntiSysTitleInstallv2_pt4", Kill_AntiSysTitleInstallv2_pt4_old, sizeof(Kill_AntiSysTitleInstallv2_pt4_old), Kill_AntiSysTitleInstallv2_pt4_patch, sizeof(Kill_AntiSysTitleInstallv2_pt4_patch), 0, verbose);
|
||||
count += apply_patch("Kill_AntiSysTitleInstallv2_pt5", Kill_AntiSysTitleInstallv2_pt5_old, sizeof(Kill_AntiSysTitleInstallv2_pt5_old), Kill_AntiSysTitleInstallv2_pt5_patch, sizeof(Kill_AntiSysTitleInstallv2_pt5_patch), 0, verbose);*/
|
||||
if(verbose) printf(">> Applying vWii patches:\n");
|
||||
count += apply_patch("Kill_AntiSysTitleInstallv3_pt1", Kill_AntiSysTitleInstallv3_pt1_old, sizeof(Kill_AntiSysTitleInstallv3_pt1_old), Kill_AntiSysTitleInstallv3_pt1_patch, sizeof(Kill_AntiSysTitleInstallv3_pt1_patch), 0, verbose);
|
||||
count += apply_patch("Kill_AntiSysTitleInstallv3_pt2", Kill_AntiSysTitleInstallv3_pt2_old, sizeof(Kill_AntiSysTitleInstallv3_pt2_old), Kill_AntiSysTitleInstallv3_pt2_patch, sizeof(Kill_AntiSysTitleInstallv3_pt2_patch), 0, verbose);
|
||||
count += apply_patch("Kill_AntiSysTitleInstallv3_pt3", Kill_AntiSysTitleInstallv3_pt3_old, sizeof(Kill_AntiSysTitleInstallv3_pt3_old), Kill_AntiSysTitleInstallv3_pt3_patch, sizeof(Kill_AntiSysTitleInstallv3_pt3_patch), 0, verbose);
|
||||
|
@ -7,30 +7,141 @@
|
||||
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
// GNU General Public License 2.0 for more details.
|
||||
|
||||
// Copyright (C) 2010 Joseph Jordan <joe.ftpii@psychlaw.com.au>
|
||||
// Copyright (C) 2012 damysteryman
|
||||
// Copyright (C) 2012 Christopher Bratusek <nano@tuxfamily.org>
|
||||
// Copyright (C) 2010 Joseph Jordan <joe.ftpii@psychlaw.com.au>
|
||||
// Copyright (C) 2012-2013 damysteryman
|
||||
// Copyright (C) 2012-2013 Christopher Bratusek <nano@tuxfamily.org>
|
||||
// Copyright (C) 2013 DarkMatterCore
|
||||
// Copyright (C) 2014 megazig
|
||||
|
||||
#ifndef __RUNTIMEIOSPATCH_H__
|
||||
#define __RUNTIMEIOSPATCH_H__
|
||||
|
||||
/**
|
||||
* Version information for Libruntimeiospatch.
|
||||
*/
|
||||
#define LIB_RUNTIMEIOSPATCH_VERSION "1.5.2"
|
||||
|
||||
//==============================================================================
|
||||
// HW_RVL header
|
||||
//==============================================================================
|
||||
#if defined(HW_RVL) /* defined(HW_RVL) */
|
||||
|
||||
/**
|
||||
*Returns true when HW_AHBPROT access can be applied
|
||||
*/
|
||||
#define AHBPROT_DISABLED (*(vu32*)0xcd800064 == 0xFFFFFFFF)
|
||||
|
||||
//==============================================================================
|
||||
// Error code definitions:
|
||||
//==============================================================================
|
||||
#define ERROR_AHBPROT -5
|
||||
#define ERROR_PATCH -7
|
||||
|
||||
//==============================================================================
|
||||
// C++ header
|
||||
//==============================================================================
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
/* __cplusplus */
|
||||
|
||||
//==============================================================================
|
||||
// Extra standard declarations
|
||||
//==============================================================================
|
||||
typedef signed int s32;
|
||||
//==============================================================================
|
||||
|
||||
//==============================================================================
|
||||
// Patchsets:
|
||||
//==============================================================================
|
||||
/*
|
||||
Wii:
|
||||
* DI Readlimit
|
||||
* ISFS Permissions
|
||||
* ES SetUID
|
||||
* ES SetIdentify
|
||||
* Hash Check (aka Trucha)
|
||||
* New Hash Check (aka New Trucha)
|
||||
|
||||
Sciifii:
|
||||
* MEM2 Prot
|
||||
* ES OpenTitleContent 1 & 2
|
||||
* ES ReadContent Prot
|
||||
* ES CloseContent
|
||||
* ES TitleVersionCheck
|
||||
* ES TitleDeleteCheck
|
||||
|
||||
vWii:
|
||||
* Kill Anti-SystemTitle-Install 1, 2, 3, 4 & 5
|
||||
*/
|
||||
|
||||
|
||||
#ifndef _RUNTIMEIOSPATCH_H_
|
||||
#define _RUNTIMEIOSPATCH_H_
|
||||
//==============================================================================
|
||||
// Functions:
|
||||
//==============================================================================
|
||||
|
||||
#define LIB_RUNTIMEIOSPATCH_VERSION "1.3.0"
|
||||
/**
|
||||
* This function can be used to keep HW_AHBPROT access when going to reload IOS
|
||||
* @param verbose Flag determing whether or not to print messages on-screen
|
||||
* @example
|
||||
* if(AHBPROT_DISABLED) {
|
||||
* s32 ret;
|
||||
* ret = IosPatch_AHBPROT(false);
|
||||
* if (ret) {
|
||||
* IOS_ReloadIOS(36);
|
||||
* } else {
|
||||
* printf("IosPatch_AHBPROT failed.");
|
||||
* }
|
||||
* }
|
||||
* @return Signed 32bit integer representing code
|
||||
* > 0 : Success - return equals to number of applied patches
|
||||
* ERROR_AHBPROT : Error - No HW_AHBPROT access
|
||||
*/
|
||||
s32 IosPatch_AHBPROT(bool verbose);
|
||||
|
||||
#define AHBPROT_DISABLED (*(vu32*)0xcd800064 == 0xFFFFFFFF)
|
||||
|
||||
#define ERROR_AHBPROT -5
|
||||
#define ERROR_PATCH -7
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
/**
|
||||
* This function applies patches on current IOS
|
||||
* @see Patchsets
|
||||
* @param wii Flag determing whether or not to apply Wii patches.
|
||||
* @param sciifii Flag determing whether or not to apply extra Sciifii patches.
|
||||
* @param vwii Flag determing whether or not to apply extra vWii patches.
|
||||
* @param verbose Flag determing whether or not to print messages on-screen.
|
||||
* @example if(AHBPROT_DISABLED) IosPatch_FULL(true, false, false, false);
|
||||
* @return Signed 32bit integer representing code
|
||||
* > 0 : Success - return equals to number of applied patches
|
||||
* ERROR_AHBPROT : Error - No HW_AHBPROT access
|
||||
* ERROR_PATCH : Error - Patching HW_AHBPROT access failed
|
||||
*/
|
||||
s32 IosPatch_RUNTIME(bool wii, bool sciifii, bool vwii, bool verbose);
|
||||
|
||||
s32 IosPatch_AHBPROT(bool verbose);
|
||||
s32 IosPatch_RUNTIME(bool wii, bool sciifii, bool vwii, bool verbose);
|
||||
s32 IosPatch_FULL(bool wii, bool sciifii, bool vwii, bool verbose, int IOS);
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
/**
|
||||
* This function combines IosPatch_AHBPROT + IOS_ReloadIOS + IosPatch_RUNTIME
|
||||
* @see Patchsets
|
||||
* @param wii Flag determing whether or not to apply Wii patches.
|
||||
* @param sciifii Flag determing whether or not to apply extra Sciifii patches.
|
||||
* @param vwii Flag determing whether or not to apply extra vWii patches.
|
||||
* @param verbose Flag determing whether or not to print messages on-screen.
|
||||
* @param IOS Which IOS to reload into.
|
||||
* @example if(AHBPROT_DISABLED) IosPatch_FULL(true, false, false, false, 58);
|
||||
* @return Signed 32bit integer representing code
|
||||
* > 0 : Success - return equals to number of applied patches
|
||||
* ERROR_AHBPROT : Error - No HW_AHBPROT access
|
||||
* ERROR_PATCH : Error - Patching HW_AHBPROT access failed
|
||||
*/
|
||||
s32 IosPatch_FULL(bool wii, bool sciifii, bool vwii, bool verbose, int IOS);
|
||||
|
||||
//==============================================================================
|
||||
// C++ footer
|
||||
//==============================================================================
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif /* __cplusplus */
|
||||
|
||||
//==============================================================================
|
||||
// HW_RVL footer
|
||||
//==============================================================================
|
||||
#endif /* defined(HW_RVL) */
|
||||
|
||||
#endif
|
||||
|
@ -530,6 +530,34 @@ int GameBooter::BootDIOSMIOS(struct discHdr *gameHdr)
|
||||
}
|
||||
}
|
||||
|
||||
// Check kenobigc.bin
|
||||
if(ocarinaChoice)
|
||||
{
|
||||
char kenobigc_path[30];
|
||||
snprintf(kenobigc_path, sizeof(kenobigc_path), "%s:/sneek/kenobigc.bin", DeviceHandler::GetDevicePrefix(RealPath));
|
||||
if(!CheckFile(kenobigc_path))
|
||||
{
|
||||
// try to copy kenobigc from the other device
|
||||
char kenobigc_srcpath[30];
|
||||
snprintf(kenobigc_srcpath, sizeof(kenobigc_srcpath), "%s:/sneek/kenobigc.bin", strncmp(RealPath, "usb", 3) == 0 ? "sd" : "usb1");
|
||||
if(CheckFile(kenobigc_srcpath))
|
||||
{
|
||||
if(CopyFile(kenobigc_srcpath, kenobigc_path) < 0)
|
||||
{
|
||||
gprintf("NIN: Couldn't copy %s to %s.\n", kenobigc_srcpath, kenobigc_path);
|
||||
RemoveFile(kenobigc_path);
|
||||
if(WindowPrompt(tr("Warning:"), fmt(tr("To use ocarina with %s you need the %s file."), LoaderName, kenobigc_path), tr("Continue"), tr("Cancel")) == 0)
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
if(WindowPrompt(tr("Warning:"), fmt(tr("To use ocarina with %s you need the %s file."), LoaderName, kenobigc_path), tr("Continue"), tr("Cancel")) == 0)
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Check Ocarina and cheat file location. the .gct file need to be located on the same partition than the game.
|
||||
if(gameHdr->type != TYPE_GAME_GC_DISC && ocarinaChoice && strcmp(DeviceHandler::GetDevicePrefix(RealPath), DeviceHandler::GetDevicePrefix(Settings.Cheatcodespath)) != 0)
|
||||
{
|
||||
@ -953,17 +981,67 @@ int GameBooter::BootNintendont(struct discHdr *gameHdr)
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
||||
// Check USB device
|
||||
if(strncmp(RealPath, "usb", 3) == 0)
|
||||
{
|
||||
// Check Main GameCube Path location
|
||||
if(strncmp(DeviceHandler::PathToFSName(Settings.GameCubePath), "FAT", 3) != 0)
|
||||
{
|
||||
WindowPrompt(tr("Error:"), fmt(tr("To run GameCube games with %s you need to set your 'Main GameCube Path' to an USB FAT32 partition."),LoaderName), tr("OK"));
|
||||
return 0;
|
||||
}
|
||||
|
||||
// Check if the partition is the first partition on the drive
|
||||
int part_num = atoi(Settings.GameCubePath+3);
|
||||
int portPart = DeviceHandler::PartitionToPortPartition(part_num-USB1);
|
||||
PartitionHandle * usbHandle = DeviceHandler::Instance()->GetUSBHandleFromPartition(part_num-USB1);
|
||||
if(usbHandle->GetPartitionNum(portPart))
|
||||
{
|
||||
WindowPrompt(tr("Error:"), fmt(tr("To run GameCube games with %s you need to set your 'Main GameCube Path' on the first partition of the Hard Drive."),LoaderName), tr("OK"));
|
||||
return 0;
|
||||
}
|
||||
|
||||
// Check if the partition is primary
|
||||
if(usbHandle->GetPartitionTableType(portPart) != MBR)
|
||||
{
|
||||
WindowPrompt(tr("Error:"), fmt(tr("To run GameCube games with %s you need to set your 'Main GameCube Path' on a primary partition."),LoaderName), tr("OK"));
|
||||
return 0;
|
||||
}
|
||||
|
||||
// Check cluster size
|
||||
if(usbHandle->GetPartitionClusterSize(usbHandle->GetLBAStart(portPart)) > 32768)
|
||||
{
|
||||
WindowPrompt(tr("Error:"), fmt(tr("To run GameCube games with %s you need to use a partition with 32k bytes/cluster or less."),LoaderName), tr("OK"));
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
// Check if Nintendont boot.dol is available
|
||||
char NIN_loader_path[255];
|
||||
snprintf(NIN_loader_path, sizeof(NIN_loader_path), "%sboot.dol", Settings.NINLoaderPath);
|
||||
if(strncmp(RealPath, "usb", 3) == 0) // Nintendont r39 only
|
||||
{
|
||||
snprintf(NIN_loader_path, sizeof(NIN_loader_path), "%sloaderusb.dol", Settings.NINLoaderPath);
|
||||
if(!CheckFile(NIN_loader_path))
|
||||
snprintf(NIN_loader_path, sizeof(NIN_loader_path), "%sbootusb.dol", Settings.NINLoaderPath);
|
||||
}
|
||||
if(strncmp(RealPath, "sd", 2) == 0 || !CheckFile(NIN_loader_path))
|
||||
{
|
||||
snprintf(NIN_loader_path, sizeof(NIN_loader_path), "%sloader.dol", Settings.NINLoaderPath);
|
||||
if(!CheckFile(NIN_loader_path))
|
||||
snprintf(NIN_loader_path, sizeof(NIN_loader_path), "%sboot.dol", Settings.NINLoaderPath);
|
||||
}
|
||||
if(!CheckFile(NIN_loader_path))
|
||||
{
|
||||
// Nintendont boot.dol not found
|
||||
WindowPrompt(tr("Error:"), tr("To run GameCube games with Nintendont you need the boot.dol file in your Nintendont Loader Path."), tr("OK"));
|
||||
return 0;
|
||||
}
|
||||
|
||||
gprintf("NIN: Loader path = %s \n",NIN_loader_path);
|
||||
|
||||
// Check Nintendont version
|
||||
u32 NIN_cfg_version = NIN_CFG_VERSION;
|
||||
u8 *buffer = NULL;
|
||||
u32 filesize = 0;
|
||||
if(LoadFileToMem(NIN_loader_path, &buffer, &filesize))
|
||||
@ -974,7 +1052,43 @@ int GameBooter::BootNintendont(struct discHdr *gameHdr)
|
||||
{
|
||||
if((*(u32*)(buffer+i+2)) == 'nten' && (*(u32*)(buffer+i+6)) == 'dont' && (*(u32*)(buffer+i+11)) == 'Load')
|
||||
{
|
||||
found=true;
|
||||
// Get Nintendont version
|
||||
char NINversion[21];
|
||||
u8 offset = *(u32*)(buffer+i+17) == ' USB' ? 40 : 36;
|
||||
for(int j = 0 ; j < 20 ; j++)
|
||||
NINversion[j] = *(u8*)(buffer+i+offset+j);
|
||||
NINversion[11] = ' '; // replace \0 between year and time with a space.
|
||||
NINversion[20] = 0;
|
||||
|
||||
struct tm time;
|
||||
strptime(NINversion, "%b %d %Y %H:%M:%S", &time);
|
||||
const time_t NINLoaderTime = mktime(&time);
|
||||
|
||||
// Alpha0.1
|
||||
strptime("Sep 20 2013 15:27:01", "%b %d %Y %H:%M:%S", &time);
|
||||
if(NINLoaderTime == mktime(&time))
|
||||
{
|
||||
WindowPrompt(tr("Error:"), tr("USBloaderGX r1218 is required for Nintendont Alpha v0.1. Please update your Nintendont boot.dol version."), tr("Ok"));
|
||||
free(buffer);
|
||||
return 0;
|
||||
}
|
||||
|
||||
// r01 - r40
|
||||
strptime("Mar 30 2014 12:33:44", "%b %d %Y %H:%M:%S", &time); // r42 - NIN_CFG_VERSION = 2
|
||||
if(NINLoaderTime < mktime(&time))
|
||||
{
|
||||
gprintf("Nintendont r01 - r40 detected. Using CFG version 0x00000001\n");
|
||||
NIN_cfg_version = 1;
|
||||
|
||||
strptime("Mar 29 2014 10:49:31", "%b %d %Y %H:%M:%S", &time); // r39
|
||||
if(NINLoaderTime < mktime(&time) && strncmp(RealPath, "usb", 3) == 0)
|
||||
{
|
||||
WindowPrompt(tr("Error:"), tr("This Nintendont version does not support games on USB."), tr("Ok"));
|
||||
free(buffer);
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
found = true;
|
||||
break;
|
||||
}
|
||||
}
|
||||
@ -995,19 +1109,6 @@ int GameBooter::BootNintendont(struct discHdr *gameHdr)
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
||||
// Check USB device
|
||||
if(strncmp(RealPath, "usb", 3) == 0)
|
||||
{
|
||||
|
||||
WindowPrompt(tr("Warning:"), tr("Nintendont currently only supports GameCube games on SD card."), tr("OK"));
|
||||
|
||||
if(!GCGames::Instance()->CopyUSB2SD(gameHdr))
|
||||
return 0;
|
||||
RealPath = GCGames::Instance()->GetPath((const char *) gameHdr->id);
|
||||
}
|
||||
|
||||
|
||||
// Check Ocarina and cheat file location. the .gct file need to be located on the same partition than the game.
|
||||
if(ocarinaChoice && strcmp(DeviceHandler::GetDevicePrefix(RealPath), DeviceHandler::GetDevicePrefix(Settings.Cheatcodespath)) != 0)
|
||||
{
|
||||
@ -1026,6 +1127,64 @@ int GameBooter::BootNintendont(struct discHdr *gameHdr)
|
||||
}
|
||||
}
|
||||
|
||||
// Check kenobiwii.bin
|
||||
if(ocarinaChoice)
|
||||
{
|
||||
char kenobiwii_path[30];
|
||||
snprintf(kenobiwii_path, sizeof(kenobiwii_path), "%s:/sneek/kenobiwii.bin", DeviceHandler::GetDevicePrefix(RealPath));
|
||||
if(!CheckFile(kenobiwii_path))
|
||||
{
|
||||
// try to copy kenobiwii from the other device
|
||||
char kenobiwii_srcpath[30];
|
||||
snprintf(kenobiwii_srcpath, sizeof(kenobiwii_srcpath), "%s:/sneek/kenobiwii.bin", strncmp(RealPath, "usb", 3) == 0 ? "sd" : "usb1");
|
||||
gprintf("kenobiwii source path = %s \n", kenobiwii_srcpath);
|
||||
if(CheckFile(kenobiwii_srcpath))
|
||||
{
|
||||
if(CopyFile(kenobiwii_srcpath, kenobiwii_path) < 0)
|
||||
{
|
||||
gprintf("NIN: Couldn't copy %s to %s.\n", kenobiwii_srcpath, kenobiwii_path);
|
||||
RemoveFile(kenobiwii_path);
|
||||
if(WindowPrompt(tr("Warning:"), fmt(tr("To use ocarina with %s you need the %s file."), LoaderName, kenobiwii_path), tr("Continue"), tr("Cancel")) == 0)
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
if(WindowPrompt(tr("Warning:"), fmt(tr("To use ocarina with %s you need the %s file."), LoaderName, kenobiwii_path), tr("Continue"), tr("Cancel")) == 0)
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Check controller.ini
|
||||
if(ninUSBHIDChoice || IosLoader::isWiiU())
|
||||
{
|
||||
char controllerini_path[30];
|
||||
snprintf(controllerini_path, sizeof(controllerini_path), "%s:/controller.ini", DeviceHandler::GetDevicePrefix(RealPath));
|
||||
if(!CheckFile(controllerini_path))
|
||||
{
|
||||
// try to copy controller.ini from the other device
|
||||
char controllerini_srcpath[30];
|
||||
snprintf(controllerini_srcpath, sizeof(controllerini_srcpath), "%s:/controller.ini", strncmp(RealPath, "usb", 3) == 0 ? "sd" : "usb1");
|
||||
gprintf("Controller.ini source path = %s \n", controllerini_srcpath);
|
||||
if(CheckFile(controllerini_srcpath))
|
||||
{
|
||||
if(CopyFile(controllerini_srcpath, controllerini_path) < 0)
|
||||
{
|
||||
gprintf("NIN: Couldn't copy %s to %s.\n", controllerini_srcpath, controllerini_path);
|
||||
RemoveFile(controllerini_path);
|
||||
if(WindowPrompt(tr("Warning:"), fmt(tr("To use HID with %s you need the %s file."), LoaderName, controllerini_path), tr("Continue"), tr("Cancel")) == 0)
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
if(WindowPrompt(tr("Warning:"), fmt(tr("To use HID with %s you need the %s file."), LoaderName, controllerini_path), tr("Continue"), tr("Cancel")) == 0)
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Check if game has multi Discs
|
||||
bool bootDisc2 = false;
|
||||
if(gameHdr->disc_no == 0)
|
||||
@ -1059,7 +1218,7 @@ int GameBooter::BootNintendont(struct discHdr *gameHdr)
|
||||
|
||||
// Nintendont Config file path
|
||||
char NINCfgPath[17];
|
||||
snprintf(NINCfgPath, sizeof(NINCfgPath), "%s:/nincfg.bin", DeviceHandler::GetDevicePrefix(RealPath));
|
||||
snprintf(NINCfgPath, sizeof(NINCfgPath), "%s:/nincfg.bin", DeviceHandler::GetDevicePrefix(NIN_loader_path));
|
||||
gprintf("NIN: Cfg path : %s \n", NINCfgPath);
|
||||
|
||||
// Nintendont Config file settings
|
||||
@ -1076,11 +1235,10 @@ int GameBooter::BootNintendont(struct discHdr *gameHdr)
|
||||
|
||||
// Magic and CFG_Version for Nintendont
|
||||
nin_config->Magicbytes = NIN_MAGIC;
|
||||
nin_config->Version = NIN_CFG_VERSION;
|
||||
nin_config->Version = NIN_cfg_version;
|
||||
|
||||
|
||||
// Game path
|
||||
nin_config->Config |= NIN_CFG_GAME_PATH;
|
||||
strncpy(nin_config->GamePath, gamePath, sizeof(nin_config->GamePath));
|
||||
|
||||
// setup cheat and path
|
||||
@ -1118,11 +1276,19 @@ int GameBooter::BootNintendont(struct discHdr *gameHdr)
|
||||
nin_config->Config |= NIN_CFG_HID; // auto enabled by nintendont on vWii
|
||||
if(!IosLoader::isWiiU())
|
||||
nin_config->Config |= NIN_CFG_OSREPORT; // log OS reports only on Wii. todo: add a user setting?
|
||||
if(strncmp(RealPath, "usb", 3) == 0)
|
||||
nin_config->Config |= NIN_CFG_USB; // r40+
|
||||
|
||||
|
||||
gprintf("NIN: config 0x%08x\n", nin_config->Config);
|
||||
|
||||
|
||||
// Max Pads - Make a proper setting later
|
||||
nin_config->MaxPads = 4; // NIN_CFG_VERSION 2 r42
|
||||
|
||||
// GameID for MCEmu
|
||||
memcpy(&nin_config->GameID, gameHdr->id, 4); // NIN_CFG_VERSION 2 r83
|
||||
|
||||
// Setup Video Mode
|
||||
if(ninVideoChoice == DML_VIDEO_NONE) // No video mode
|
||||
{
|
||||
@ -1164,11 +1330,8 @@ int GameBooter::BootNintendont(struct discHdr *gameHdr)
|
||||
}
|
||||
}
|
||||
gprintf("NIN: Language 0x%08x \n", nin_config->Language);
|
||||
|
||||
// Set Sram flags
|
||||
PatchSram(languageChoice, true, nin_config->Config & NIN_CFG_FORCE_PROG);
|
||||
|
||||
//write config file to game's partition root.
|
||||
//write config file to nintendont's partition root.
|
||||
FILE *fp = fopen(NINCfgPath, "wb");
|
||||
if (fp)
|
||||
{
|
||||
@ -1183,6 +1346,23 @@ int GameBooter::BootNintendont(struct discHdr *gameHdr)
|
||||
return 0;
|
||||
}
|
||||
|
||||
// Copy Nintendont Config file to game path
|
||||
if(strncmp(NINCfgPath, RealPath, 2) != 0)
|
||||
{
|
||||
char NINDestPath[17];
|
||||
snprintf(NINDestPath, sizeof(NINDestPath), "%s:/nincfg.bin", DeviceHandler::GetDevicePrefix(RealPath));
|
||||
gprintf("NIN: Copying %s to %s...", NINCfgPath, NINDestPath);
|
||||
if(CopyFile(NINCfgPath, NINDestPath) < 0)
|
||||
{
|
||||
gprintf("\nError: Couldn't copy %s to %s.\n", NINCfgPath, NINDestPath);
|
||||
RemoveFile(NINDestPath);
|
||||
if(WindowPrompt(tr("Warning:"), tr("USBloaderGX couldn't write Nintendont config file. Launch Nintendont anyway?"), tr("Yes"), tr("Cancel")) == 0)
|
||||
return 0;
|
||||
}
|
||||
gprintf("done\n");
|
||||
}
|
||||
|
||||
|
||||
// Launch Nintendont
|
||||
return !(BootHomebrew(NIN_loader_path) < 0);
|
||||
}
|
||||
|
@ -80,7 +80,7 @@ static int PartitionChoice()
|
||||
int choice = WindowPrompt(tr( "No WBFS or FAT/NTFS/EXT partition found" ), tr( "You can select or format a partition or use the channel loader mode." ), tr( "Select" ), tr( "Format" ), tr( "Channels" ));
|
||||
if (choice == 0)
|
||||
{
|
||||
Settings.LoaderMode = MODE_ALL;
|
||||
Settings.LoaderMode = MODE_NANDCHANNELS;
|
||||
return 0;
|
||||
}
|
||||
else if(choice == 1)
|
||||
@ -130,9 +130,10 @@ int MountGamePartition(bool ShowGUI)
|
||||
if (wbfsinit < 0)
|
||||
{
|
||||
if(ShowGUI)
|
||||
ShowError("%s %s", tr( "USB Device not found." ), tr("Switching to channel list mode."));
|
||||
ShowError("%s %s", tr( "USB Device not initialized." ), tr("Switching to channel list mode."));
|
||||
|
||||
Settings.LoaderMode = MODE_ALL;
|
||||
Settings.LoaderMode &= ~MODE_WIIGAMES;
|
||||
Settings.LoaderMode |= MODE_NANDCHANNELS;
|
||||
}
|
||||
else
|
||||
{
|
||||
@ -149,7 +150,7 @@ int MountGamePartition(bool ShowGUI)
|
||||
if(ShowGUI)
|
||||
PartitionChoice();
|
||||
else
|
||||
Settings.LoaderMode = MODE_ALL;
|
||||
Settings.LoaderMode = MODE_NANDCHANNELS;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -744,7 +744,7 @@ wbfs_t* Wbfs_Fat::CreatePart(u8 *id, char *path)
|
||||
// 1 cluster less than 4gb
|
||||
u64 OPT_split_size = 4LL * 1024 * 1024 * 1024 - 32 * 1024;
|
||||
|
||||
if(Settings.GameSplit == GAMESPLIT_NONE && gameList.GetGameFS(id) != PART_FS_FAT)
|
||||
if(Settings.GameSplit == GAMESPLIT_NONE && DeviceHandler::GetFilesystemType(USB1+Settings.partition) != PART_FS_FAT)
|
||||
OPT_split_size = (u64) 100LL * 1024 * 1024 * 1024 - 32 * 1024;
|
||||
|
||||
else if(Settings.GameSplit == GAMESPLIT_2GB)
|
||||
|
@ -53,17 +53,17 @@ cat <<EOF > ./HBC/META.XML
|
||||
<arg>--usbport=0</arg>
|
||||
</arguments>
|
||||
// remove this line to enable arguments -->
|
||||
<no_ios_reload/>
|
||||
<ahb_access/>
|
||||
<short_description>Loads games from USB-devices</short_description>
|
||||
<long_description>USB Loader GX is a libwiigui based USB iso loader with a wii-like GUI. You can install games to your HDDs and boot them with shorter loading times.
|
||||
The interactive GUI is completely controllable with WiiMote, Classic Controller or GC Controller.
|
||||
Features are automatic widescreen detection, coverdownload, parental control, theme support and many more.
|
||||
|
||||
Credits:
|
||||
Coding: Dimok, nIxx, giantpune, ardi, Hungyip84, DrayX7, Lustar, r-win, WiiShizzza
|
||||
Coding: Cyan, Dimok, nIxx, giantpune, ardi, Hungyip84, DrayX7, Lustar, r-win, WiiShizzza
|
||||
Artworks: cyrex, NeoRame
|
||||
Validation: Cyan and many others
|
||||
Issue management: Cyan / Dimok
|
||||
Issue management: Cyan
|
||||
WiiTDB / Hosting covers: Lustar
|
||||
USBLoader sources: Waninkoko, Kwiirk, Hermes
|
||||
cIOS maintenance: davebaol, xabby666, XFlak and Rodries
|
||||
|
Loading…
Reference in New Issue
Block a user