mirror of
https://github.com/wiidev/usbloadergx.git
synced 2024-12-22 09:51:55 +01:00
* Improved GameCube controller functions (patch by Dynamit)
R+Z=Screenshot, X=Gameinfo window, Y=Covers download * Added Classic Controller and GameCube Controller support in GameInfo window: Right stick=3D Cover movement, X=Flip 3DCover 180°, L/R=Zoom * Added Wifi6 and wifi10 pictures for GameInfo window. (Thanks OriginalHamster) * Added device priority selection for GameCube listing in global Loader settings (SD->USB, or USB->SD) * Added a "Use global" language setting for Gamecube games. * Added support for USB devices with modified MBR's signature to prevent WiiU's format message. * Prevent Rockband cursor display on GameCube and WiiWare games with "band" in the title (Crach bandicoot, Beach Bandits, etc.) * Added Dol's Video mode patcher in Loader/Game settings, for games which couldn't be forced. (MadWorld, MotoGP08, Mario Party 8, etc.) ♦ Region patch = Patches the dol's known video modes to the region selected in "Video mode" setting, but keep interlace/progressive references. ♦ ON = Patch all dol's known video modes to the one selected in "Video mode" setting. ♦ ALL = Patch all dol's found video mode patterns (even unknown video modes) to the one selected in "Video mode" setting. * DML: Updated DM(L) version detection up to v2.10 * DML: Automatically enable PADHook if Screenshot setting is enabled * DML: Fixed a bug where multiple video modes could be set at the same time * DEVO: Added a prompt if trying to launch a game from a non FAT32 partition. * DEVO: Added Direct Mapping Buttons setting (Devo r200+) * DEVO: Added support for Language setting * Language files updated: Chinese, French
This commit is contained in:
parent
96b36741d4
commit
cd3b443f4e
@ -2,8 +2,8 @@
|
||||
<app version="1">
|
||||
<name> USB Loader GX</name>
|
||||
<coder>USB Loader GX Team</coder>
|
||||
<version>3.0 r1215</version>
|
||||
<release_date>20130526121306</release_date>
|
||||
<version>3.0 r1216</version>
|
||||
<release_date>20130818134939</release_date>
|
||||
<!-- // remove this line to enable arguments
|
||||
<arguments>
|
||||
<arg>--ios=250</arg>
|
||||
|
@ -5,7 +5,7 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: USB Loader GX\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2013-03-17 13:57+0100\n"
|
||||
"POT-Creation-Date: 2013-08-18 15:50+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"
|
||||
@ -494,6 +494,12 @@ msgstr ""
|
||||
msgid "Customs/Original"
|
||||
msgstr "Upravené/Originál"
|
||||
|
||||
msgid "DEVO D Buttons"
|
||||
msgstr ""
|
||||
|
||||
msgid "DEVO F-Zero AX"
|
||||
msgstr ""
|
||||
|
||||
msgid "DEVO Force Widescreen"
|
||||
msgstr ""
|
||||
|
||||
@ -503,6 +509,9 @@ msgstr ""
|
||||
msgid "DEVO MemCard Emulation"
|
||||
msgstr ""
|
||||
|
||||
msgid "DEVO Timer Fix"
|
||||
msgstr ""
|
||||
|
||||
msgid "DML Auto"
|
||||
msgstr ""
|
||||
|
||||
@ -719,6 +728,9 @@ msgstr "Prejete si synchronizovat informace o volných sektorech na vsech FAT 32
|
||||
msgid "Do you wish to update/download all language files?"
|
||||
msgstr "Prejete si zaktualizovat vsechny jazykové soubory?"
|
||||
|
||||
msgid "Dol Video Patch"
|
||||
msgstr ""
|
||||
|
||||
msgid "Download"
|
||||
msgstr "Stažení"
|
||||
|
||||
@ -1986,6 +1998,9 @@ msgstr ""
|
||||
msgid "To run GameCube games with Devolution you need the loader.bin file in your Devolution Path."
|
||||
msgstr ""
|
||||
|
||||
msgid "To run GameCube games with Devolution you need to use a FAT32 partition."
|
||||
msgstr ""
|
||||
|
||||
msgid "Tooltip Delay"
|
||||
msgstr ""
|
||||
|
||||
|
@ -5,7 +5,7 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: USB Loader GX\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2013-03-17 13:57+0100\n"
|
||||
"POT-Creation-Date: 2013-08-18 15:50+0200\n"
|
||||
"PO-Revision-Date: 2009-10-01 01:00+0200\n"
|
||||
"Last-Translator: Fox888[dk]\n"
|
||||
"Language-Team: [dk]\n"
|
||||
@ -494,6 +494,12 @@ msgstr ""
|
||||
msgid "Customs/Original"
|
||||
msgstr "Tilpassede/Originale"
|
||||
|
||||
msgid "DEVO D Buttons"
|
||||
msgstr ""
|
||||
|
||||
msgid "DEVO F-Zero AX"
|
||||
msgstr ""
|
||||
|
||||
msgid "DEVO Force Widescreen"
|
||||
msgstr ""
|
||||
|
||||
@ -503,6 +509,9 @@ msgstr ""
|
||||
msgid "DEVO MemCard Emulation"
|
||||
msgstr ""
|
||||
|
||||
msgid "DEVO Timer Fix"
|
||||
msgstr ""
|
||||
|
||||
msgid "DML Auto"
|
||||
msgstr ""
|
||||
|
||||
@ -719,6 +728,9 @@ msgstr "Vil du synkronisere fri plads info sector på alle FAT32 Partitioner?"
|
||||
msgid "Do you wish to update/download all language files?"
|
||||
msgstr "Skal alle sprogfiler opdateres/downloades?"
|
||||
|
||||
msgid "Dol Video Patch"
|
||||
msgstr ""
|
||||
|
||||
msgid "Download"
|
||||
msgstr ""
|
||||
|
||||
@ -1986,6 +1998,9 @@ msgstr ""
|
||||
msgid "To run GameCube games with Devolution you need the loader.bin file in your Devolution Path."
|
||||
msgstr ""
|
||||
|
||||
msgid "To run GameCube games with Devolution you need to use a FAT32 partition."
|
||||
msgstr ""
|
||||
|
||||
msgid "Tooltip Delay"
|
||||
msgstr ""
|
||||
|
||||
|
@ -5,7 +5,7 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: USB Loader GX\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2013-03-17 13:57+0100\n"
|
||||
"POT-Creation-Date: 2013-08-18 15:50+0200\n"
|
||||
"PO-Revision-Date: 2011-12-17 14:22+0100\n"
|
||||
"Last-Translator: Arthur117\n"
|
||||
"Language-Team: tj_cool, glowy, Arthur117\n"
|
||||
@ -494,6 +494,12 @@ msgstr ""
|
||||
msgid "Customs/Original"
|
||||
msgstr "Aangepast/Origineel"
|
||||
|
||||
msgid "DEVO D Buttons"
|
||||
msgstr ""
|
||||
|
||||
msgid "DEVO F-Zero AX"
|
||||
msgstr ""
|
||||
|
||||
msgid "DEVO Force Widescreen"
|
||||
msgstr ""
|
||||
|
||||
@ -503,6 +509,9 @@ msgstr ""
|
||||
msgid "DEVO MemCard Emulation"
|
||||
msgstr ""
|
||||
|
||||
msgid "DEVO Timer Fix"
|
||||
msgstr ""
|
||||
|
||||
msgid "DML Auto"
|
||||
msgstr ""
|
||||
|
||||
@ -719,6 +728,9 @@ msgstr "Wil je de vrije ruimte informatie sector synchroniseren op alle FAT32 pa
|
||||
msgid "Do you wish to update/download all language files?"
|
||||
msgstr "Wil je alle taalbestanden updaten/downloaden?"
|
||||
|
||||
msgid "Dol Video Patch"
|
||||
msgstr ""
|
||||
|
||||
msgid "Download"
|
||||
msgstr ""
|
||||
|
||||
@ -1986,6 +1998,9 @@ msgstr ""
|
||||
msgid "To run GameCube games with Devolution you need the loader.bin file in your Devolution Path."
|
||||
msgstr ""
|
||||
|
||||
msgid "To run GameCube games with Devolution you need to use a FAT32 partition."
|
||||
msgstr ""
|
||||
|
||||
msgid "Tooltip Delay"
|
||||
msgstr ""
|
||||
|
||||
|
@ -5,7 +5,7 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: USB Loader GX\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2013-03-17 13:57+0100\n"
|
||||
"POT-Creation-Date: 2013-08-18 15:50+0200\n"
|
||||
"PO-Revision-Date: 2009-10-01 01:00+0200\n"
|
||||
"Last-Translator: \n"
|
||||
"Language-Team: \n"
|
||||
@ -494,6 +494,12 @@ msgstr ""
|
||||
msgid "Customs/Original"
|
||||
msgstr ""
|
||||
|
||||
msgid "DEVO D Buttons"
|
||||
msgstr ""
|
||||
|
||||
msgid "DEVO F-Zero AX"
|
||||
msgstr ""
|
||||
|
||||
msgid "DEVO Force Widescreen"
|
||||
msgstr ""
|
||||
|
||||
@ -503,6 +509,9 @@ msgstr ""
|
||||
msgid "DEVO MemCard Emulation"
|
||||
msgstr ""
|
||||
|
||||
msgid "DEVO Timer Fix"
|
||||
msgstr ""
|
||||
|
||||
msgid "DML Auto"
|
||||
msgstr ""
|
||||
|
||||
@ -719,6 +728,9 @@ msgstr ""
|
||||
msgid "Do you wish to update/download all language files?"
|
||||
msgstr ""
|
||||
|
||||
msgid "Dol Video Patch"
|
||||
msgstr ""
|
||||
|
||||
msgid "Download"
|
||||
msgstr ""
|
||||
|
||||
@ -1986,6 +1998,9 @@ msgstr ""
|
||||
msgid "To run GameCube games with Devolution you need the loader.bin file in your Devolution Path."
|
||||
msgstr ""
|
||||
|
||||
msgid "To run GameCube games with Devolution you need to use a FAT32 partition."
|
||||
msgstr ""
|
||||
|
||||
msgid "Tooltip Delay"
|
||||
msgstr ""
|
||||
|
||||
|
@ -5,7 +5,7 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: USB Loader GX\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2013-03-17 13:57+0100\n"
|
||||
"POT-Creation-Date: 2013-08-18 15:50+0200\n"
|
||||
"PO-Revision-Date: 2009-10-01 01:00+0200\n"
|
||||
"Last-Translator: c64rmx\n"
|
||||
"Language-Team: \n"
|
||||
@ -494,6 +494,12 @@ msgstr ""
|
||||
msgid "Customs/Original"
|
||||
msgstr "Omat/Alkuperäiset"
|
||||
|
||||
msgid "DEVO D Buttons"
|
||||
msgstr ""
|
||||
|
||||
msgid "DEVO F-Zero AX"
|
||||
msgstr ""
|
||||
|
||||
msgid "DEVO Force Widescreen"
|
||||
msgstr ""
|
||||
|
||||
@ -503,6 +509,9 @@ msgstr ""
|
||||
msgid "DEVO MemCard Emulation"
|
||||
msgstr ""
|
||||
|
||||
msgid "DEVO Timer Fix"
|
||||
msgstr ""
|
||||
|
||||
msgid "DML Auto"
|
||||
msgstr ""
|
||||
|
||||
@ -719,6 +728,9 @@ msgstr ""
|
||||
msgid "Do you wish to update/download all language files?"
|
||||
msgstr "Haluatko päivittää/ladata kaikki kielitiedostot?"
|
||||
|
||||
msgid "Dol Video Patch"
|
||||
msgstr ""
|
||||
|
||||
msgid "Download"
|
||||
msgstr ""
|
||||
|
||||
@ -1986,6 +1998,9 @@ msgstr ""
|
||||
msgid "To run GameCube games with Devolution you need the loader.bin file in your Devolution Path."
|
||||
msgstr ""
|
||||
|
||||
msgid "To run GameCube games with Devolution you need to use a FAT32 partition."
|
||||
msgstr ""
|
||||
|
||||
msgid "Tooltip Delay"
|
||||
msgstr ""
|
||||
|
||||
|
@ -1,11 +1,11 @@
|
||||
# USB Loader GX language source file.
|
||||
# French.lang - r1211
|
||||
# French.lang - r1216
|
||||
# don't delete/change this line (é).
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: USB Loader GX\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2013-03-17 13:57+0100\n"
|
||||
"POT-Creation-Date: 2013-08-18 15:50+0200\n"
|
||||
"PO-Revision-Date: 2009-10-01 01:00+0200\n"
|
||||
"Last-Translator: Cyan\n"
|
||||
"Language-Team: Badablek, Amour, ikya, Cyan & Kin8\n"
|
||||
@ -494,6 +494,12 @@ msgstr "Persos"
|
||||
msgid "Customs/Original"
|
||||
msgstr "Persos/Originaux"
|
||||
|
||||
msgid "DEVO D Buttons"
|
||||
msgstr "DEVO Boutons directs"
|
||||
|
||||
msgid "DEVO F-Zero AX"
|
||||
msgstr ""
|
||||
|
||||
msgid "DEVO Force Widescreen"
|
||||
msgstr "DEVO Forcer 16:9"
|
||||
|
||||
@ -503,6 +509,9 @@ msgstr "DEVO LED detect. activité"
|
||||
msgid "DEVO MemCard Emulation"
|
||||
msgstr "DEVO MemCard Émulation"
|
||||
|
||||
msgid "DEVO Timer Fix"
|
||||
msgstr "DEVO Correction timing"
|
||||
|
||||
msgid "DML Auto"
|
||||
msgstr "Auto"
|
||||
|
||||
@ -719,6 +728,9 @@ msgstr "Voulez-vous synchroniser l'information d'espace libre disponible sur tou
|
||||
msgid "Do you wish to update/download all language files?"
|
||||
msgstr "Voulez-vous actualiser/télécharger tous les fichiers langue ?"
|
||||
|
||||
msgid "Dol Video Patch"
|
||||
msgstr "Patch vidéo Dol"
|
||||
|
||||
msgid "Download"
|
||||
msgstr "Télécharger"
|
||||
|
||||
@ -1986,6 +1998,9 @@ msgstr "Pour lancer les jeux GameCube avec DIOS MIOS vous devez utiliser une par
|
||||
msgid "To run GameCube games with Devolution you need the loader.bin file in your Devolution Path."
|
||||
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 Devolution you need to use a FAT32 partition."
|
||||
msgstr "Pour lancer les jeux GameCube avec Devolution vous devez utiliser une partition FAT32."
|
||||
|
||||
msgid "Tooltip Delay"
|
||||
msgstr "Délai des Info-bulles"
|
||||
|
||||
|
@ -5,7 +5,7 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: USB Loader GX\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2013-03-17 13:57+0100\n"
|
||||
"POT-Creation-Date: 2013-08-18 15:50+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"
|
||||
@ -494,6 +494,12 @@ msgstr "Community"
|
||||
msgid "Customs/Original"
|
||||
msgstr "Community/Original"
|
||||
|
||||
msgid "DEVO D Buttons"
|
||||
msgstr ""
|
||||
|
||||
msgid "DEVO F-Zero AX"
|
||||
msgstr ""
|
||||
|
||||
msgid "DEVO Force Widescreen"
|
||||
msgstr ""
|
||||
|
||||
@ -503,6 +509,9 @@ msgstr "DEVO LED Aktivität"
|
||||
msgid "DEVO MemCard Emulation"
|
||||
msgstr "DEVO MemCard Emulation"
|
||||
|
||||
msgid "DEVO Timer Fix"
|
||||
msgstr ""
|
||||
|
||||
msgid "DML Auto"
|
||||
msgstr "DML Auto"
|
||||
|
||||
@ -719,6 +728,9 @@ msgstr "Soll die freier Speicher Info auf allen Partitionen synchronisiert werde
|
||||
msgid "Do you wish to update/download all language files?"
|
||||
msgstr "Alle Sprachdateien aktualisieren?"
|
||||
|
||||
msgid "Dol Video Patch"
|
||||
msgstr ""
|
||||
|
||||
msgid "Download"
|
||||
msgstr "Herunterladen"
|
||||
|
||||
@ -1986,6 +1998,9 @@ msgstr ""
|
||||
msgid "To run GameCube games with Devolution you need the loader.bin file in your Devolution Path."
|
||||
msgstr "Um GameCube Spiele mit Devolution zu starten, muss sich die loader.bin Datei in Devolution Pfad befinden."
|
||||
|
||||
msgid "To run GameCube games with Devolution you need to use a FAT32 partition."
|
||||
msgstr ""
|
||||
|
||||
msgid "Tooltip Delay"
|
||||
msgstr "Tooltip Verzögerung"
|
||||
|
||||
|
@ -5,7 +5,7 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: USB Loader GX\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2013-03-17 13:57+0100\n"
|
||||
"POT-Creation-Date: 2013-08-18 15:50+0200\n"
|
||||
"Last-Translator: nakata6790\n"
|
||||
"Language-Team: nakata6790 (aka0107@gmail.com)\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
@ -493,6 +493,12 @@ msgstr "ÔñïðïðïéçìÝíá"
|
||||
msgid "Customs/Original"
|
||||
msgstr "ÔñïðïðïéçìÝíá/ÁõèåíôéêÜ"
|
||||
|
||||
msgid "DEVO D Buttons"
|
||||
msgstr ""
|
||||
|
||||
msgid "DEVO F-Zero AX"
|
||||
msgstr ""
|
||||
|
||||
msgid "DEVO Force Widescreen"
|
||||
msgstr ""
|
||||
|
||||
@ -502,6 +508,9 @@ msgstr ""
|
||||
msgid "DEVO MemCard Emulation"
|
||||
msgstr "åîïìïßùóç ôçò memory card áðü ôï devolution"
|
||||
|
||||
msgid "DEVO Timer Fix"
|
||||
msgstr ""
|
||||
|
||||
msgid "DML Auto"
|
||||
msgstr "áõôüìáôá áðü ôï DML"
|
||||
|
||||
@ -718,6 +727,9 @@ msgstr "ÈÝëåôå íá óõã÷ñïíßóåôå ôïí êåíü ÷þñï áð
|
||||
msgid "Do you wish to update/download all language files?"
|
||||
msgstr "ÈÝëåôå íá áíáâáèìßóåôå/êáôåâÜóåôå üëá ôá áñ÷åßá ìåôáöñÜóåùí;"
|
||||
|
||||
msgid "Dol Video Patch"
|
||||
msgstr ""
|
||||
|
||||
msgid "Download"
|
||||
msgstr "ËÞøç"
|
||||
|
||||
@ -1985,6 +1997,9 @@ msgstr ""
|
||||
msgid "To run GameCube games with Devolution you need the loader.bin file in your Devolution Path."
|
||||
msgstr "Ãéá áíáðáñáãùãÞ ôßôëùí Gamecube ìå ôï ðñüãñáììá devolution ÷ñåéÜæåóôå ôï áñ÷åßï loader.bin óôï êáèïñéìÝíï ìïíïðÜôé ôïõ devolution."
|
||||
|
||||
msgid "To run GameCube games with Devolution you need to use a FAT32 partition."
|
||||
msgstr ""
|
||||
|
||||
msgid "Tooltip Delay"
|
||||
msgstr "ÊáèõóôÝñçóç åìöÜíéóçò åôéêåôþí"
|
||||
|
||||
|
@ -5,7 +5,7 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: USB Loader GX\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2013-03-17 13:57+0100\n"
|
||||
"POT-Creation-Date: 2013-08-18 15:50+0200\n"
|
||||
"PO-Revision-Date: 2009-12-29 11:05+0100\n"
|
||||
"Last-Translator: Springdale\n"
|
||||
"Language-Team: Tusk, Springdale\n"
|
||||
@ -494,6 +494,12 @@ msgstr ""
|
||||
msgid "Customs/Original"
|
||||
msgstr "Egyéni/Eredeti"
|
||||
|
||||
msgid "DEVO D Buttons"
|
||||
msgstr ""
|
||||
|
||||
msgid "DEVO F-Zero AX"
|
||||
msgstr ""
|
||||
|
||||
msgid "DEVO Force Widescreen"
|
||||
msgstr ""
|
||||
|
||||
@ -503,6 +509,9 @@ msgstr ""
|
||||
msgid "DEVO MemCard Emulation"
|
||||
msgstr ""
|
||||
|
||||
msgid "DEVO Timer Fix"
|
||||
msgstr ""
|
||||
|
||||
msgid "DML Auto"
|
||||
msgstr ""
|
||||
|
||||
@ -719,6 +728,9 @@ msgstr ""
|
||||
msgid "Do you wish to update/download all language files?"
|
||||
msgstr "Minden nyelvi fájl letöltése/frissítése?"
|
||||
|
||||
msgid "Dol Video Patch"
|
||||
msgstr ""
|
||||
|
||||
msgid "Download"
|
||||
msgstr "Letöltés"
|
||||
|
||||
@ -1986,6 +1998,9 @@ msgstr ""
|
||||
msgid "To run GameCube games with Devolution you need the loader.bin file in your Devolution Path."
|
||||
msgstr ""
|
||||
|
||||
msgid "To run GameCube games with Devolution you need to use a FAT32 partition."
|
||||
msgstr ""
|
||||
|
||||
msgid "Tooltip Delay"
|
||||
msgstr ""
|
||||
|
||||
|
@ -5,7 +5,7 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: USB Loader GX\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2013-03-17 13:57+0100\n"
|
||||
"POT-Creation-Date: 2013-08-18 15:50+0200\n"
|
||||
"PO-Revision-Date: 2011-09-11 12:19+0100\n"
|
||||
"Last-Translator: xFede\n"
|
||||
"Language-Team: xFede (fedeanto11@gmail.com)\n"
|
||||
@ -494,6 +494,12 @@ msgstr "Personalizzati"
|
||||
msgid "Customs/Original"
|
||||
msgstr "Modific./origin."
|
||||
|
||||
msgid "DEVO D Buttons"
|
||||
msgstr ""
|
||||
|
||||
msgid "DEVO F-Zero AX"
|
||||
msgstr ""
|
||||
|
||||
msgid "DEVO Force Widescreen"
|
||||
msgstr ""
|
||||
|
||||
@ -503,6 +509,9 @@ msgstr "Led attività DEVO"
|
||||
msgid "DEVO MemCard Emulation"
|
||||
msgstr "Emulazione memory card DEVO"
|
||||
|
||||
msgid "DEVO Timer Fix"
|
||||
msgstr ""
|
||||
|
||||
msgid "DML Auto"
|
||||
msgstr "Patch auto DML"
|
||||
|
||||
@ -719,6 +728,9 @@ msgstr "Vuoi sincronizzare le info sullo spazio libero in tutte le partizioni FA
|
||||
msgid "Do you wish to update/download all language files?"
|
||||
msgstr "Vuoi scaricare/aggiornare tutte le traduzioni?"
|
||||
|
||||
msgid "Dol Video Patch"
|
||||
msgstr ""
|
||||
|
||||
msgid "Download"
|
||||
msgstr "Scarica"
|
||||
|
||||
@ -1986,6 +1998,9 @@ msgstr ""
|
||||
msgid "To run GameCube games with Devolution you need the loader.bin file in your Devolution Path."
|
||||
msgstr "Per avviare i giochi Gamecube con devolution devi avere il file loader.bin nel tuo percorso devolution."
|
||||
|
||||
msgid "To run GameCube games with Devolution you need to use a FAT32 partition."
|
||||
msgstr ""
|
||||
|
||||
msgid "Tooltip Delay"
|
||||
msgstr "Ritardo suggerimenti"
|
||||
|
||||
|
@ -5,7 +5,7 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: USB Loader GX\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2013-03-17 13:57+0100\n"
|
||||
"POT-Creation-Date: 2013-08-18 15:50+0200\n"
|
||||
"PO-Revision-Date: 2009-10-01 01:00+0200\n"
|
||||
"Last-Translator: hosigumayuugi\n"
|
||||
"Language-Team: hosigumayuugi\n"
|
||||
@ -494,6 +494,12 @@ msgstr "カスタム"
|
||||
msgid "Customs/Original"
|
||||
msgstr "カスタムを優先"
|
||||
|
||||
msgid "DEVO D Buttons"
|
||||
msgstr ""
|
||||
|
||||
msgid "DEVO F-Zero AX"
|
||||
msgstr ""
|
||||
|
||||
msgid "DEVO Force Widescreen"
|
||||
msgstr ""
|
||||
|
||||
@ -503,6 +509,9 @@ msgstr ""
|
||||
msgid "DEVO MemCard Emulation"
|
||||
msgstr "DEVOメモカエミュ"
|
||||
|
||||
msgid "DEVO Timer Fix"
|
||||
msgstr ""
|
||||
|
||||
msgid "DML Auto"
|
||||
msgstr "DML 自動"
|
||||
|
||||
@ -719,6 +728,9 @@ msgstr "全てのFAT32領域のセクタで空き容量情報を同期します
|
||||
msgid "Do you wish to update/download all language files?"
|
||||
msgstr "すべての言語をダウンロードしますか?"
|
||||
|
||||
msgid "Dol Video Patch"
|
||||
msgstr ""
|
||||
|
||||
msgid "Download"
|
||||
msgstr "ダウンロード"
|
||||
|
||||
@ -1986,6 +1998,9 @@ msgstr ""
|
||||
msgid "To run GameCube games with Devolution you need the loader.bin file in your Devolution Path."
|
||||
msgstr "GCゲームをDevolutionで起動するにはloader.binがDevolutionのパスにある必要があります"
|
||||
|
||||
msgid "To run GameCube games with Devolution you need to use a FAT32 partition."
|
||||
msgstr ""
|
||||
|
||||
msgid "Tooltip Delay"
|
||||
msgstr "ヒントバルーンの遅延"
|
||||
|
||||
|
@ -5,7 +5,7 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: USB Loader GX\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2013-03-17 13:57+0100\n"
|
||||
"POT-Creation-Date: 2013-08-18 15:50+0200\n"
|
||||
"PO-Revision-Date: 2009-10-01 01:00+0200\n"
|
||||
"Last-Translator: nextos@korea.com\n"
|
||||
"Language-Team: \n"
|
||||
@ -494,6 +494,12 @@ msgstr ""
|
||||
msgid "Customs/Original"
|
||||
msgstr "커스텀/오리지널"
|
||||
|
||||
msgid "DEVO D Buttons"
|
||||
msgstr ""
|
||||
|
||||
msgid "DEVO F-Zero AX"
|
||||
msgstr ""
|
||||
|
||||
msgid "DEVO Force Widescreen"
|
||||
msgstr ""
|
||||
|
||||
@ -503,6 +509,9 @@ msgstr ""
|
||||
msgid "DEVO MemCard Emulation"
|
||||
msgstr ""
|
||||
|
||||
msgid "DEVO Timer Fix"
|
||||
msgstr ""
|
||||
|
||||
msgid "DML Auto"
|
||||
msgstr ""
|
||||
|
||||
@ -719,6 +728,9 @@ msgstr ""
|
||||
msgid "Do you wish to update/download all language files?"
|
||||
msgstr "정말로 모든 언어화일을 업데이트하고 다운로드 할까요?"
|
||||
|
||||
msgid "Dol Video Patch"
|
||||
msgstr ""
|
||||
|
||||
msgid "Download"
|
||||
msgstr ""
|
||||
|
||||
@ -1986,6 +1998,9 @@ msgstr ""
|
||||
msgid "To run GameCube games with Devolution you need the loader.bin file in your Devolution Path."
|
||||
msgstr ""
|
||||
|
||||
msgid "To run GameCube games with Devolution you need to use a FAT32 partition."
|
||||
msgstr ""
|
||||
|
||||
msgid "Tooltip Delay"
|
||||
msgstr ""
|
||||
|
||||
|
@ -5,7 +5,7 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: USB Loader GX\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2013-03-17 13:57+0100\n"
|
||||
"POT-Creation-Date: 2013-08-18 15:50+0200\n"
|
||||
"PO-Revision-Date: 2009-10-01 01:00+0200\n"
|
||||
"Last-Translator: raschi\n"
|
||||
"Language-Team: raschi\n"
|
||||
@ -494,6 +494,12 @@ msgstr ""
|
||||
msgid "Customs/Original"
|
||||
msgstr "Custom/Original"
|
||||
|
||||
msgid "DEVO D Buttons"
|
||||
msgstr ""
|
||||
|
||||
msgid "DEVO F-Zero AX"
|
||||
msgstr ""
|
||||
|
||||
msgid "DEVO Force Widescreen"
|
||||
msgstr ""
|
||||
|
||||
@ -503,6 +509,9 @@ msgstr ""
|
||||
msgid "DEVO MemCard Emulation"
|
||||
msgstr ""
|
||||
|
||||
msgid "DEVO Timer Fix"
|
||||
msgstr ""
|
||||
|
||||
msgid "DML Auto"
|
||||
msgstr ""
|
||||
|
||||
@ -719,6 +728,9 @@ msgstr "Vil du synkronisere ledig plass info sektor på alle FAT32 partisjoner?"
|
||||
msgid "Do you wish to update/download all language files?"
|
||||
msgstr "Vil du oppdatere/laste ned alle språkfiler?"
|
||||
|
||||
msgid "Dol Video Patch"
|
||||
msgstr ""
|
||||
|
||||
msgid "Download"
|
||||
msgstr "Last ned"
|
||||
|
||||
@ -1986,6 +1998,9 @@ msgstr ""
|
||||
msgid "To run GameCube games with Devolution you need the loader.bin file in your Devolution Path."
|
||||
msgstr ""
|
||||
|
||||
msgid "To run GameCube games with Devolution you need to use a FAT32 partition."
|
||||
msgstr ""
|
||||
|
||||
msgid "Tooltip Delay"
|
||||
msgstr ""
|
||||
|
||||
|
@ -5,7 +5,7 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: USB Loader GX\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2013-03-17 13:57+0100\n"
|
||||
"POT-Creation-Date: 2013-08-18 15:50+0200\n"
|
||||
"PO-Revision-Date: 2009-10-01 01:00+0200\n"
|
||||
"Last-Translator: ziom666 (zadania_prog@vp.pl)\n"
|
||||
"Language-Team: \n"
|
||||
@ -494,6 +494,12 @@ msgstr ""
|
||||
msgid "Customs/Original"
|
||||
msgstr ""
|
||||
|
||||
msgid "DEVO D Buttons"
|
||||
msgstr ""
|
||||
|
||||
msgid "DEVO F-Zero AX"
|
||||
msgstr ""
|
||||
|
||||
msgid "DEVO Force Widescreen"
|
||||
msgstr ""
|
||||
|
||||
@ -503,6 +509,9 @@ msgstr ""
|
||||
msgid "DEVO MemCard Emulation"
|
||||
msgstr ""
|
||||
|
||||
msgid "DEVO Timer Fix"
|
||||
msgstr ""
|
||||
|
||||
msgid "DML Auto"
|
||||
msgstr ""
|
||||
|
||||
@ -719,6 +728,9 @@ msgstr ""
|
||||
msgid "Do you wish to update/download all language files?"
|
||||
msgstr "Zaktualizowac wszystkie pliki jezykowe?"
|
||||
|
||||
msgid "Dol Video Patch"
|
||||
msgstr ""
|
||||
|
||||
msgid "Download"
|
||||
msgstr "Pobierz"
|
||||
|
||||
@ -1986,6 +1998,9 @@ msgstr ""
|
||||
msgid "To run GameCube games with Devolution you need the loader.bin file in your Devolution Path."
|
||||
msgstr ""
|
||||
|
||||
msgid "To run GameCube games with Devolution you need to use a FAT32 partition."
|
||||
msgstr ""
|
||||
|
||||
msgid "Tooltip Delay"
|
||||
msgstr ""
|
||||
|
||||
|
@ -5,7 +5,7 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: USB Loader GX\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2013-03-17 13:57+0100\n"
|
||||
"POT-Creation-Date: 2013-08-18 15:50+0200\n"
|
||||
"PO-Revision-Date: 2009-10-23 18:52+0200\n"
|
||||
"Last-Translator: aniemotion\n"
|
||||
"Language-Team: boto12, aniemotion\n"
|
||||
@ -494,6 +494,12 @@ msgstr ""
|
||||
msgid "Customs/Original"
|
||||
msgstr "Alternativas/Originais"
|
||||
|
||||
msgid "DEVO D Buttons"
|
||||
msgstr ""
|
||||
|
||||
msgid "DEVO F-Zero AX"
|
||||
msgstr ""
|
||||
|
||||
msgid "DEVO Force Widescreen"
|
||||
msgstr ""
|
||||
|
||||
@ -503,6 +509,9 @@ msgstr ""
|
||||
msgid "DEVO MemCard Emulation"
|
||||
msgstr ""
|
||||
|
||||
msgid "DEVO Timer Fix"
|
||||
msgstr ""
|
||||
|
||||
msgid "DML Auto"
|
||||
msgstr ""
|
||||
|
||||
@ -719,6 +728,9 @@ msgstr ""
|
||||
msgid "Do you wish to update/download all language files?"
|
||||
msgstr "Deseja atualizar todos os arquivos de idioma?"
|
||||
|
||||
msgid "Dol Video Patch"
|
||||
msgstr ""
|
||||
|
||||
msgid "Download"
|
||||
msgstr "Baixar"
|
||||
|
||||
@ -1986,6 +1998,9 @@ msgstr ""
|
||||
msgid "To run GameCube games with Devolution you need the loader.bin file in your Devolution Path."
|
||||
msgstr ""
|
||||
|
||||
msgid "To run GameCube games with Devolution you need to use a FAT32 partition."
|
||||
msgstr ""
|
||||
|
||||
msgid "Tooltip Delay"
|
||||
msgstr ""
|
||||
|
||||
|
@ -5,7 +5,7 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: USB Loader GX\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2013-03-17 13:57+0100\n"
|
||||
"POT-Creation-Date: 2013-08-18 15:50+0200\n"
|
||||
"PO-Revision-Date: 2011-11-03 11:00+0000\n"
|
||||
"Last-Translator: pplucky <pplucky@gmail.com>\n"
|
||||
"Language-Team: Sky8000, pplucky\n"
|
||||
@ -494,6 +494,12 @@ msgstr ""
|
||||
msgid "Customs/Original"
|
||||
msgstr "Personalizadas/Originais"
|
||||
|
||||
msgid "DEVO D Buttons"
|
||||
msgstr ""
|
||||
|
||||
msgid "DEVO F-Zero AX"
|
||||
msgstr ""
|
||||
|
||||
msgid "DEVO Force Widescreen"
|
||||
msgstr ""
|
||||
|
||||
@ -503,6 +509,9 @@ msgstr ""
|
||||
msgid "DEVO MemCard Emulation"
|
||||
msgstr ""
|
||||
|
||||
msgid "DEVO Timer Fix"
|
||||
msgstr ""
|
||||
|
||||
msgid "DML Auto"
|
||||
msgstr ""
|
||||
|
||||
@ -719,6 +728,9 @@ msgstr "Deseja sincronizar a info de espaço livre em todas as partições FAT32
|
||||
msgid "Do you wish to update/download all language files?"
|
||||
msgstr "Queres actualizar todos os ficheiros de idioma?"
|
||||
|
||||
msgid "Dol Video Patch"
|
||||
msgstr ""
|
||||
|
||||
msgid "Download"
|
||||
msgstr "Descarregar"
|
||||
|
||||
@ -1986,6 +1998,9 @@ msgstr ""
|
||||
msgid "To run GameCube games with Devolution you need the loader.bin file in your Devolution Path."
|
||||
msgstr ""
|
||||
|
||||
msgid "To run GameCube games with Devolution you need to use a FAT32 partition."
|
||||
msgstr ""
|
||||
|
||||
msgid "Tooltip Delay"
|
||||
msgstr ""
|
||||
|
||||
|
@ -5,7 +5,7 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: USB Loader GX\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2013-03-17 13:57+0100\n"
|
||||
"POT-Creation-Date: 2013-08-18 15:50+0200\n"
|
||||
"PO-Revision-Date: 2009-10-01 01:00+0200\n"
|
||||
"Last-Translator: nikolai_ca\n"
|
||||
"Language-Team: Kir, alendit, nikolai_ca\n"
|
||||
@ -494,6 +494,12 @@ msgstr ""
|
||||
msgid "Customs/Original"
|
||||
msgstr "Измененный/Оригинальные"
|
||||
|
||||
msgid "DEVO D Buttons"
|
||||
msgstr ""
|
||||
|
||||
msgid "DEVO F-Zero AX"
|
||||
msgstr ""
|
||||
|
||||
msgid "DEVO Force Widescreen"
|
||||
msgstr ""
|
||||
|
||||
@ -503,6 +509,9 @@ msgstr ""
|
||||
msgid "DEVO MemCard Emulation"
|
||||
msgstr ""
|
||||
|
||||
msgid "DEVO Timer Fix"
|
||||
msgstr ""
|
||||
|
||||
msgid "DML Auto"
|
||||
msgstr ""
|
||||
|
||||
@ -719,6 +728,9 @@ msgstr ""
|
||||
msgid "Do you wish to update/download all language files?"
|
||||
msgstr "Вы действительно хотите обновить/загрузить все языковые файлы?"
|
||||
|
||||
msgid "Dol Video Patch"
|
||||
msgstr ""
|
||||
|
||||
msgid "Download"
|
||||
msgstr "Загрузка"
|
||||
|
||||
@ -1986,6 +1998,9 @@ msgstr ""
|
||||
msgid "To run GameCube games with Devolution you need the loader.bin file in your Devolution Path."
|
||||
msgstr ""
|
||||
|
||||
msgid "To run GameCube games with Devolution you need to use a FAT32 partition."
|
||||
msgstr ""
|
||||
|
||||
msgid "Tooltip Delay"
|
||||
msgstr ""
|
||||
|
||||
|
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-03-17 13:57+0100\n"
|
||||
"POT-Creation-Date: 2013-08-18 15:50+0200\n"
|
||||
"PO-Revision-Date: 2011-07-25 16:40+0200\n"
|
||||
"Last-Translator: Galen/xFede\n"
|
||||
"Language-Team: Penn, SirPalax, hvy109\n"
|
||||
@ -494,6 +494,12 @@ msgstr ""
|
||||
msgid "Customs/Original"
|
||||
msgstr "Artísticas/Originales"
|
||||
|
||||
msgid "DEVO D Buttons"
|
||||
msgstr ""
|
||||
|
||||
msgid "DEVO F-Zero AX"
|
||||
msgstr ""
|
||||
|
||||
msgid "DEVO Force Widescreen"
|
||||
msgstr ""
|
||||
|
||||
@ -503,6 +509,9 @@ msgstr ""
|
||||
msgid "DEVO MemCard Emulation"
|
||||
msgstr ""
|
||||
|
||||
msgid "DEVO Timer Fix"
|
||||
msgstr ""
|
||||
|
||||
msgid "DML Auto"
|
||||
msgstr ""
|
||||
|
||||
@ -719,6 +728,9 @@ msgstr "¿Quieres sincronizar el sector de información de espacio libre en toda
|
||||
msgid "Do you wish to update/download all language files?"
|
||||
msgstr "¿Quieres actualizar/descargar todos los archivos de idiomas?"
|
||||
|
||||
msgid "Dol Video Patch"
|
||||
msgstr ""
|
||||
|
||||
msgid "Download"
|
||||
msgstr "Descargar"
|
||||
|
||||
@ -1986,6 +1998,9 @@ msgstr ""
|
||||
msgid "To run GameCube games with Devolution you need the loader.bin file in your Devolution Path."
|
||||
msgstr ""
|
||||
|
||||
msgid "To run GameCube games with Devolution you need to use a FAT32 partition."
|
||||
msgstr ""
|
||||
|
||||
msgid "Tooltip Delay"
|
||||
msgstr "Retraso de ayuda rapida"
|
||||
|
||||
|
@ -5,7 +5,7 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: USB Loader GX\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2013-03-17 13:57+0100\n"
|
||||
"POT-Creation-Date: 2013-08-18 15:50+0200\n"
|
||||
"PO-Revision-Date: 2010-01-19 17:39+0200\n"
|
||||
"Last-Translator: Katsurou\n"
|
||||
"Language-Team: Katsurou, pirateX\n"
|
||||
@ -494,6 +494,12 @@ msgstr ""
|
||||
msgid "Customs/Original"
|
||||
msgstr "Anpassade/Original"
|
||||
|
||||
msgid "DEVO D Buttons"
|
||||
msgstr ""
|
||||
|
||||
msgid "DEVO F-Zero AX"
|
||||
msgstr ""
|
||||
|
||||
msgid "DEVO Force Widescreen"
|
||||
msgstr ""
|
||||
|
||||
@ -503,6 +509,9 @@ msgstr ""
|
||||
msgid "DEVO MemCard Emulation"
|
||||
msgstr ""
|
||||
|
||||
msgid "DEVO Timer Fix"
|
||||
msgstr ""
|
||||
|
||||
msgid "DML Auto"
|
||||
msgstr ""
|
||||
|
||||
@ -719,6 +728,9 @@ msgstr ""
|
||||
msgid "Do you wish to update/download all language files?"
|
||||
msgstr "Vill du uppdatera/ladda ner alla språkfiler?"
|
||||
|
||||
msgid "Dol Video Patch"
|
||||
msgstr ""
|
||||
|
||||
msgid "Download"
|
||||
msgstr "Ladda ner"
|
||||
|
||||
@ -1986,6 +1998,9 @@ msgstr ""
|
||||
msgid "To run GameCube games with Devolution you need the loader.bin file in your Devolution Path."
|
||||
msgstr ""
|
||||
|
||||
msgid "To run GameCube games with Devolution you need to use a FAT32 partition."
|
||||
msgstr ""
|
||||
|
||||
msgid "Tooltip Delay"
|
||||
msgstr ""
|
||||
|
||||
|
@ -5,7 +5,7 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: USB Loader GX\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2013-03-17 13:57+0100\n"
|
||||
"POT-Creation-Date: 2013-08-18 15:50+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"
|
||||
@ -494,6 +494,12 @@ msgstr "自訂"
|
||||
msgid "Customs/Original"
|
||||
msgstr "自製/原始"
|
||||
|
||||
msgid "DEVO D Buttons"
|
||||
msgstr ""
|
||||
|
||||
msgid "DEVO F-Zero AX"
|
||||
msgstr ""
|
||||
|
||||
msgid "DEVO Force Widescreen"
|
||||
msgstr ""
|
||||
|
||||
@ -503,6 +509,9 @@ msgstr "DEVO LED燈 開啟"
|
||||
msgid "DEVO MemCard Emulation"
|
||||
msgstr "DEVO 記憶卡模擬"
|
||||
|
||||
msgid "DEVO Timer Fix"
|
||||
msgstr ""
|
||||
|
||||
msgid "DML Auto"
|
||||
msgstr "DML 自動"
|
||||
|
||||
@ -719,6 +728,9 @@ msgstr "是否要同步所有FAT32分區可用空間資訊?"
|
||||
msgid "Do you wish to update/download all language files?"
|
||||
msgstr "是否要更新/下載所有語言檔案嗎?"
|
||||
|
||||
msgid "Dol Video Patch"
|
||||
msgstr ""
|
||||
|
||||
msgid "Download"
|
||||
msgstr "下載"
|
||||
|
||||
@ -1986,6 +1998,9 @@ msgstr ""
|
||||
msgid "To run GameCube games with Devolution you need the loader.bin file in your Devolution Path."
|
||||
msgstr "用Devolution執行GameCube遊戲,你需在Devolution 路徑中放置loader.bin檔。"
|
||||
|
||||
msgid "To run GameCube games with Devolution you need to use a FAT32 partition."
|
||||
msgstr ""
|
||||
|
||||
msgid "Tooltip Delay"
|
||||
msgstr "提示訊息 延遲時間"
|
||||
|
||||
|
@ -5,7 +5,7 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: USB Loader GX\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2013-03-17 13:57+0100\n"
|
||||
"POT-Creation-Date: 2013-08-18 15:50+0200\n"
|
||||
"PO-Revision-Date: 2009-10-01 01:00+0200\n"
|
||||
"Last-Translator: Nitro_subzero \n"
|
||||
"Language-Team: Nitro_subzero\n"
|
||||
@ -494,6 +494,12 @@ msgstr ""
|
||||
msgid "Customs/Original"
|
||||
msgstr "กำหนดเอง/ดั้งเดิม"
|
||||
|
||||
msgid "DEVO D Buttons"
|
||||
msgstr ""
|
||||
|
||||
msgid "DEVO F-Zero AX"
|
||||
msgstr ""
|
||||
|
||||
msgid "DEVO Force Widescreen"
|
||||
msgstr ""
|
||||
|
||||
@ -503,6 +509,9 @@ msgstr ""
|
||||
msgid "DEVO MemCard Emulation"
|
||||
msgstr ""
|
||||
|
||||
msgid "DEVO Timer Fix"
|
||||
msgstr ""
|
||||
|
||||
msgid "DML Auto"
|
||||
msgstr ""
|
||||
|
||||
@ -719,6 +728,9 @@ msgstr ""
|
||||
msgid "Do you wish to update/download all language files?"
|
||||
msgstr "ต้องการอัพเดทหรือดาวน์โหลด ไฟล์ภาษา ทั้งหมด?"
|
||||
|
||||
msgid "Dol Video Patch"
|
||||
msgstr ""
|
||||
|
||||
msgid "Download"
|
||||
msgstr "ดาวน์โหลด"
|
||||
|
||||
@ -1986,6 +1998,9 @@ msgstr ""
|
||||
msgid "To run GameCube games with Devolution you need the loader.bin file in your Devolution Path."
|
||||
msgstr ""
|
||||
|
||||
msgid "To run GameCube games with Devolution you need to use a FAT32 partition."
|
||||
msgstr ""
|
||||
|
||||
msgid "Tooltip Delay"
|
||||
msgstr ""
|
||||
|
||||
|
@ -5,7 +5,7 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: USB Loader GX\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2013-03-17 13:57+0100\n"
|
||||
"POT-Creation-Date: 2013-08-18 15:50+0200\n"
|
||||
"PO-Revision-Date: 2009-10-01 01:00+0200\n"
|
||||
"Last-Translator: omercigingelini\n"
|
||||
"Language-Team: omercigingelini\n"
|
||||
@ -494,6 +494,12 @@ msgstr ""
|
||||
msgid "Customs/Original"
|
||||
msgstr "Kişisel/Orjinal"
|
||||
|
||||
msgid "DEVO D Buttons"
|
||||
msgstr ""
|
||||
|
||||
msgid "DEVO F-Zero AX"
|
||||
msgstr ""
|
||||
|
||||
msgid "DEVO Force Widescreen"
|
||||
msgstr ""
|
||||
|
||||
@ -503,6 +509,9 @@ msgstr ""
|
||||
msgid "DEVO MemCard Emulation"
|
||||
msgstr ""
|
||||
|
||||
msgid "DEVO Timer Fix"
|
||||
msgstr ""
|
||||
|
||||
msgid "DML Auto"
|
||||
msgstr ""
|
||||
|
||||
@ -719,6 +728,9 @@ msgstr ""
|
||||
msgid "Do you wish to update/download all language files?"
|
||||
msgstr "Tüm dil dosyalarını indirmek/güncellemek istiyor musunuz?"
|
||||
|
||||
msgid "Dol Video Patch"
|
||||
msgstr ""
|
||||
|
||||
msgid "Download"
|
||||
msgstr "İndir"
|
||||
|
||||
@ -1986,6 +1998,9 @@ msgstr ""
|
||||
msgid "To run GameCube games with Devolution you need the loader.bin file in your Devolution Path."
|
||||
msgstr ""
|
||||
|
||||
msgid "To run GameCube games with Devolution you need to use a FAT32 partition."
|
||||
msgstr ""
|
||||
|
||||
msgid "Tooltip Delay"
|
||||
msgstr ""
|
||||
|
||||
|
BIN
data/images/wifi10.png
Normal file
BIN
data/images/wifi10.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 5.8 KiB |
BIN
data/images/wifi6.png
Normal file
BIN
data/images/wifi6.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 5.8 KiB |
@ -87,7 +87,7 @@ BoxCover::~BoxCover()
|
||||
//! Remove me later
|
||||
void BoxCover::WiiPADControl(GuiTrigger *t)
|
||||
{
|
||||
if(t->wpad.btns_d & WPAD_BUTTON_A)
|
||||
if((t->wpad.btns_d & WPAD_BUTTON_A) || (t->wpad.btns_h & WPAD_CLASSIC_BUTTON_A) || (t->pad.btns_h & PAD_BUTTON_A))
|
||||
{
|
||||
if(t->wpad.ir.valid)
|
||||
{
|
||||
@ -98,8 +98,23 @@ void BoxCover::WiiPADControl(GuiTrigger *t)
|
||||
PosY += movePosY;
|
||||
movePosX = 0.0f;
|
||||
movePosY = 0.0f;
|
||||
|
||||
if(moveChan >= 0 && moveChan < 3)
|
||||
|
||||
// GameCube and Classic Controller
|
||||
s8 movX = fabs(t->pad.stickX) > 10.0f ? t->pad.stickX : t->WPAD_Stick(0, 0);
|
||||
s8 movY = fabs(t->pad.stickY) > 10.0f ? t->pad.stickY : t->WPAD_Stick(0, 1);
|
||||
//! Drop stick moves of less than 10 because of sensitivity
|
||||
if(fabs(movX) < 10.0f) movX = 0;
|
||||
if(fabs(movY) < 10.0f) movY = 0;
|
||||
if(movX < -PADCAL)
|
||||
PosX += (movX + PADCAL) * Settings.PointerSpeed * fabs(PosZ)/3400.f;
|
||||
if(movX > PADCAL)
|
||||
PosX += (movX - PADCAL) * Settings.PointerSpeed * fabs(PosZ)/3400.f;
|
||||
if(movY < -PADCAL)
|
||||
PosY += (movY + PADCAL) * Settings.PointerSpeed * fabs(PosZ)/3400.f;
|
||||
if(movY > PADCAL)
|
||||
PosY += (movY - PADCAL) * Settings.PointerSpeed * fabs(PosZ)/3400.f;
|
||||
|
||||
if(moveChan >= 0 && moveChan < 4)
|
||||
{
|
||||
char name[50];
|
||||
snprintf(name, sizeof(name), "player%i_grab.png", moveChan+1);
|
||||
@ -109,15 +124,15 @@ void BoxCover::WiiPADControl(GuiTrigger *t)
|
||||
else
|
||||
moveChan = -1;
|
||||
}
|
||||
else if((t->wpad.btns_h & WPAD_BUTTON_A) && moveChan == t->chan && t->wpad.ir.valid && !effects)
|
||||
else if(((t->wpad.btns_h & WPAD_BUTTON_A) || (t->wpad.btns_h & WPAD_CLASSIC_BUTTON_A) || (t->pad.btns_h & PAD_BUTTON_A)) && moveChan == t->chan && t->wpad.ir.valid && !effects)
|
||||
{
|
||||
movePosX = (t->wpad.ir.x-moveStartPosX) * fabs(PosZ)/3400.f;
|
||||
movePosY = (moveStartPosY-t->wpad.ir.y) * fabs(PosZ)/3400.f;
|
||||
last_manual_move_frame = frameCount;
|
||||
}
|
||||
else if(!(t->wpad.btns_h & WPAD_BUTTON_A) && moveChan == t->chan)
|
||||
else if(!(t->wpad.btns_h & WPAD_BUTTON_A) && !(t->wpad.btns_h & WPAD_CLASSIC_BUTTON_A) && !(t->pad.btns_h & PAD_BUTTON_A) && moveChan == t->chan)
|
||||
{
|
||||
if(moveChan >= 0 && moveChan < 3)
|
||||
if(moveChan >= 0 && moveChan < 4)
|
||||
{
|
||||
char name[50];
|
||||
snprintf(name, sizeof(name), "player%i_point.png", moveChan+1);
|
||||
@ -125,27 +140,27 @@ void BoxCover::WiiPADControl(GuiTrigger *t)
|
||||
}
|
||||
}
|
||||
|
||||
if(t->wpad.btns_h & WPAD_BUTTON_UP)
|
||||
if((t->wpad.btns_h & WPAD_BUTTON_UP) || (t->pad.substickY > PADCAL))
|
||||
{
|
||||
RotX -= 2.0f;
|
||||
last_manual_move_frame = frameCount;
|
||||
}
|
||||
if(t->wpad.btns_h & WPAD_BUTTON_DOWN)
|
||||
if((t->wpad.btns_h & WPAD_BUTTON_DOWN) || (t->pad.substickY < -PADCAL))
|
||||
{
|
||||
RotX += 2.0f;
|
||||
last_manual_move_frame = frameCount;
|
||||
}
|
||||
if(t->wpad.btns_h & WPAD_BUTTON_LEFT)
|
||||
if((t->wpad.btns_h & WPAD_BUTTON_LEFT) || (t->pad.substickX < -PADCAL))
|
||||
{
|
||||
RotY -= 2.0f;
|
||||
last_manual_move_frame = frameCount;
|
||||
}
|
||||
if(t->wpad.btns_h & WPAD_BUTTON_RIGHT)
|
||||
if((t->wpad.btns_h & WPAD_BUTTON_RIGHT) || (t->pad.substickX > PADCAL))
|
||||
{
|
||||
RotY += 2.0f;
|
||||
last_manual_move_frame = frameCount;
|
||||
}
|
||||
if(t->wpad.btns_d & WPAD_BUTTON_2)
|
||||
if((t->wpad.btns_d & WPAD_BUTTON_2) || (t->pad.btns_d & PAD_BUTTON_X) || (t->wpad.btns_d & WPAD_CLASSIC_BUTTON_X))
|
||||
{
|
||||
if(RotY < 180.0f)
|
||||
SetEffect(EFFECT_BOX_ROTATE_X, 10, 180);
|
||||
@ -153,12 +168,12 @@ void BoxCover::WiiPADControl(GuiTrigger *t)
|
||||
SetEffect(EFFECT_BOX_ROTATE_X, -10, -180);
|
||||
last_manual_move_frame = frameCount;
|
||||
}
|
||||
if(t->wpad.btns_h & WPAD_BUTTON_PLUS)
|
||||
if((t->wpad.btns_h & WPAD_BUTTON_PLUS) || (t->pad.btns_h & PAD_TRIGGER_R) || (t->wpad.btns_h & WPAD_CLASSIC_BUTTON_FULL_R))
|
||||
{
|
||||
if(PosZ < -2.8f)
|
||||
PosZ += 0.4f*fabs(PosZ)/19.f;
|
||||
}
|
||||
if(t->wpad.btns_h & WPAD_BUTTON_MINUS)
|
||||
if((t->wpad.btns_h & WPAD_BUTTON_MINUS) || (t->pad.btns_h & PAD_TRIGGER_L) || (t->wpad.btns_h & WPAD_CLASSIC_BUTTON_FULL_L))
|
||||
{
|
||||
if(PosZ > -43.0f)
|
||||
PosZ -= 0.4f*fabs(PosZ)/19.f;
|
||||
@ -167,11 +182,11 @@ void BoxCover::WiiPADControl(GuiTrigger *t)
|
||||
|
||||
void BoxCover::Update(GuiTrigger * t)
|
||||
{
|
||||
s8 movY = t->WPAD_Stick(0, 0) ;
|
||||
s8 movX = t->WPAD_Stick(0, 1);
|
||||
//! Drop nunchuck moves of less than 5 because of sensitivity
|
||||
if(fabs(movY) < 5.0f) movY = 0;
|
||||
if(fabs(movX) < 5.0f) movX = 0;
|
||||
s8 movY = t->WPAD_Stick((t->wpad.exp.type == WPAD_EXP_CLASSIC), 0);
|
||||
s8 movX = t->WPAD_Stick((t->wpad.exp.type == WPAD_EXP_CLASSIC), 1);
|
||||
//! Drop stick moves of less than 10 because of sensitivity
|
||||
if(fabs(movY) < 10.0f) movY = 0;
|
||||
if(fabs(movX) < 10.0f) movX = 0;
|
||||
|
||||
if(movY != 0 || movX != 0)
|
||||
last_manual_move_frame = frameCount;
|
||||
|
@ -246,7 +246,7 @@ int PartitionHandle::FindPartitions()
|
||||
}
|
||||
|
||||
// If this is not the device's master boot record
|
||||
if (mbr->signature != MBR_SIGNATURE)
|
||||
if (mbr->signature != MBR_SIGNATURE && mbr->signature != MBR_SIGNATURE_MOD)
|
||||
{
|
||||
// Check if the device has only one WBFS partition without a table.
|
||||
wbfs_head_t *head = (wbfs_head_t *) mbr;
|
||||
|
@ -37,6 +37,8 @@
|
||||
#define MBR_SIGNATURE 0x55AA
|
||||
#define EBR_SIGNATURE MBR_SIGNATURE
|
||||
|
||||
#define MBR_SIGNATURE_MOD 0x55AB /* modified MBR_SIGNATURE to prevent the format message on WiiU */
|
||||
|
||||
#define PARTITION_BOOTABLE 0x80 /* Bootable (active) */
|
||||
#define PARTITION_NONBOOTABLE 0x00 /* Non-bootable */
|
||||
#define PARTITION_TYPE_GPT 0xEE /* Indicates that a GPT header is available */
|
||||
|
@ -20,7 +20,7 @@
|
||||
#define LAUNCH_DEVO() ((void(*)(void))loader_bin)()
|
||||
|
||||
#define DEVO_SIG 0x3EF9DB23
|
||||
#define DEVO_CONFIG_VERSION 0x0111
|
||||
#define DEVO_CONFIG_VERSION 0x0112
|
||||
|
||||
enum DEVOConfig
|
||||
{
|
||||
@ -28,13 +28,14 @@ enum DEVOConfig
|
||||
DEVO_CFG_WIDE = (1<<1), // added in Devo r142
|
||||
DEVO_CFG_NOLED = (1<<2),
|
||||
DEVO_CFG_FZERO_AX = (1<<3), // added in Devo r196, config version x0111
|
||||
DEVO_CFG_TIMER_FIX = (1<<4)
|
||||
DEVO_CFG_TIMER_FIX = (1<<4),
|
||||
DEVO_CFG_D_BUTTONS = (1<<5) // added in Devo r200, config version 0x0112
|
||||
};
|
||||
|
||||
typedef struct _DEVO_CFG
|
||||
{
|
||||
u32 signature; //0x3EF9DB23
|
||||
u16 version; //0x00000110
|
||||
u16 version; //0x00000112
|
||||
u16 device_signature;
|
||||
u32 memcard_cluster;
|
||||
u32 disc1_cluster;
|
||||
|
@ -231,7 +231,7 @@ u32 GCGames::LoadAllGames(void)
|
||||
|
||||
for(u32 i = 0; i < sdGCList.size(); ++i)
|
||||
{
|
||||
if(Settings.GameCubeSource == GC_SOURCE_AUTO)
|
||||
if(Settings.GameCubeSource != GC_SOURCE_SD)
|
||||
{
|
||||
u32 n;
|
||||
for(n = 0; n < HeaderList.size(); ++n)
|
||||
@ -239,11 +239,12 @@ u32 GCGames::LoadAllGames(void)
|
||||
//! Display only one game if it is present on both SD and USB.
|
||||
if(memcmp(HeaderList[n].id, sdGCList[i].id, 6) == 0)
|
||||
{
|
||||
if(IosLoader::GetMIOSInfo() == DIOS_MIOS || IosLoader::GetMIOSInfo() == QUADFORCE_USB) // DIOS MIOS - Show only the game on USB
|
||||
if((Settings.GameCubeSource == GC_SOURCE_MAIN_SD) ||
|
||||
(Settings.GameCubeSource == GC_SOURCE_AUTO && (IosLoader::GetMIOSInfo() == DIOS_MIOS || IosLoader::GetMIOSInfo() == QUADFORCE_USB))) // DIOS MIOS - Show the game on USB in priority
|
||||
{
|
||||
break;
|
||||
}
|
||||
else // replace the one loaded from USB with the same games on SD since we can load them directly
|
||||
else // replace the one loaded from USB with the same games on SD
|
||||
{
|
||||
memcpy(&HeaderList[n], &sdGCList[i], sizeof(struct discHdr));
|
||||
PathList[n] = sdGCPathList[i];
|
||||
@ -258,7 +259,7 @@ u32 GCGames::LoadAllGames(void)
|
||||
PathList.push_back(sdGCPathList[i]);
|
||||
}
|
||||
}
|
||||
else // GC_SOURCE_SD, or GC_SOURCE_BOTH (show duplicates)
|
||||
else // GC_SOURCE_SD
|
||||
{
|
||||
HeaderList.push_back(sdGCList[i]);
|
||||
PathList.push_back(sdGCPathList[i]);
|
||||
|
@ -54,8 +54,10 @@ void UpdatePads()
|
||||
if(userInput[i].wpad.exp.type == WPAD_EXP_NUNCHUK)
|
||||
{
|
||||
if((userInput[i].wpad.btns_h & WPAD_NUNCHUK_BUTTON_Z) && (userInput[i].wpad.btns_d & WPAD_NUNCHUK_BUTTON_C))
|
||||
ScreenShot();
|
||||
ScreenShot();
|
||||
}
|
||||
if((userInput[i].pad.btns_h & PAD_TRIGGER_R) && (userInput[i].pad.btns_d & PAD_TRIGGER_Z))
|
||||
ScreenShot();
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -109,9 +109,9 @@ GameBrowseMenu::GameBrowseMenu()
|
||||
trigHome = new GuiTrigger;
|
||||
trigHome->SetButtonOnlyTrigger(-1, WPAD_BUTTON_HOME | WPAD_CLASSIC_BUTTON_HOME, PAD_BUTTON_START);
|
||||
trig2 = new GuiTrigger;
|
||||
trig2->SetButtonOnlyTrigger(-1, WPAD_BUTTON_2 | WPAD_CLASSIC_BUTTON_X, 0);
|
||||
trig2->SetButtonOnlyTrigger(-1, WPAD_BUTTON_2 | WPAD_CLASSIC_BUTTON_X, PAD_BUTTON_Y);
|
||||
trig1 = new GuiTrigger;
|
||||
trig1->SetButtonOnlyTrigger(-1, WPAD_BUTTON_1 | WPAD_CLASSIC_BUTTON_Y, 0);
|
||||
trig1->SetButtonOnlyTrigger(-1, WPAD_BUTTON_1 | WPAD_CLASSIC_BUTTON_Y, PAD_BUTTON_X);
|
||||
|
||||
usedSpaceTxt = new GuiText(" ", 18, thColor("r=55 g=190 b=237 a=255 - hdd info color"));
|
||||
usedSpaceTxt->SetAlignment(thAlign("center - hdd info align hor"), thAlign("top - hdd info align ver"));
|
||||
|
@ -20,6 +20,7 @@ typedef struct _appDOL
|
||||
|
||||
static appDOL *dolList = NULL;
|
||||
static int dolCount = 0;
|
||||
extern GXRModeObj *rmode;
|
||||
|
||||
void RegisterDOL(u8 *dst, int len)
|
||||
{
|
||||
@ -48,7 +49,7 @@ void ClearDOLList()
|
||||
dolCount = 0;
|
||||
}
|
||||
|
||||
void gamepatches(u8 videoSelected, u8 aspectForce, u8 languageChoice, u8 patchcountrystring,
|
||||
void gamepatches(u8 videoSelected, u8 videoPatchDol, u8 aspectForce, u8 languageChoice, u8 patchcountrystring,
|
||||
u8 vipatch, u8 sneekVideoPatch, u8 hooktype, u8 fix002, u64 returnTo)
|
||||
{
|
||||
int i;
|
||||
@ -62,7 +63,7 @@ void gamepatches(u8 videoSelected, u8 aspectForce, u8 languageChoice, u8 patchco
|
||||
u8 *dst = dolList[i].dst;
|
||||
int len = dolList[i].len;
|
||||
|
||||
VideoModePatcher(dst, len, videoSelected);
|
||||
VideoModePatcher(dst, len, videoSelected, videoPatchDol);
|
||||
|
||||
dogamehooks(hooktype, dst, len);
|
||||
|
||||
@ -212,26 +213,131 @@ bool PoPPatch()
|
||||
/** Insert the individual gamepatches above with the patterns and patch data **/
|
||||
/** Following is only the VideoPatcher **/
|
||||
|
||||
#if 0 /** Isn't used right now **/
|
||||
// Some missing video modes
|
||||
static GXRModeObj TVPal528Prog = {
|
||||
6, // viDisplayMode
|
||||
640, // fbWidth
|
||||
528, // efbHeight
|
||||
528, // xfbHeight
|
||||
40, // viXOrigin // (VI_MAX_WIDTH_PAL - 640)/2,
|
||||
23, // viYOrigin // game uses 0x17 instead of 0x18 so we don't use (VI_MAX_HEIGHT_PAL - 528)/2
|
||||
640, // viWidth
|
||||
528, // viHeight
|
||||
VI_XFBMODE_SF, // xFBmode
|
||||
GX_FALSE, // field_rendering
|
||||
GX_FALSE, // aa
|
||||
|
||||
static GXRModeObj* vmodes[] =
|
||||
{
|
||||
// sample points arranged in increasing Y order
|
||||
{
|
||||
{6,6},{6,6},{6,6}, // pix 0, 3 sample points, 1/12 units, 4 bits each
|
||||
{6,6},{6,6},{6,6}, // pix 1
|
||||
{6,6},{6,6},{6,6}, // pix 2
|
||||
{6,6},{6,6},{6,6} // pix 3
|
||||
},
|
||||
|
||||
// vertical filter[7], 1/64 units, 6 bits each
|
||||
{
|
||||
0, // line n-1
|
||||
0, // line n-1
|
||||
21, // line n
|
||||
22, // line n
|
||||
21, // line n
|
||||
0, // line n+1
|
||||
0 // line n+1
|
||||
}
|
||||
};
|
||||
|
||||
static GXRModeObj TVPal528ProgSoft = {
|
||||
6, // viDisplayMode
|
||||
640, // fbWidth
|
||||
528, // efbHeight
|
||||
528, // xfbHeight
|
||||
40, // viXOrigin
|
||||
23, // viYOrigin
|
||||
640, // viWidth
|
||||
528, // viHeight
|
||||
VI_XFBMODE_SF, // xFBmode
|
||||
GX_FALSE, // field_rendering
|
||||
GX_FALSE, // aa
|
||||
|
||||
// sample points arranged in increasing Y order
|
||||
{
|
||||
{6,6},{6,6},{6,6}, // pix 0, 3 sample points, 1/12 units, 4 bits each
|
||||
{6,6},{6,6},{6,6}, // pix 1
|
||||
{6,6},{6,6},{6,6}, // pix 2
|
||||
{6,6},{6,6},{6,6} // pix 3
|
||||
},
|
||||
|
||||
// vertical filter[7], 1/64 units, 6 bits each
|
||||
{
|
||||
8, // line n-1
|
||||
8, // line n-1
|
||||
10, // line n
|
||||
12, // line n
|
||||
10, // line n
|
||||
8, // line n+1
|
||||
8 // line n+1
|
||||
}
|
||||
|
||||
};
|
||||
|
||||
static GXRModeObj TVPal524ProgAa = {
|
||||
6, // viDisplayMode
|
||||
640, // fbWidth
|
||||
264, // efbHeight
|
||||
524, // xfbHeight
|
||||
40, // viXOrigin
|
||||
23, // viYOrigin
|
||||
640, // viWidth
|
||||
524, // viHeight
|
||||
VI_XFBMODE_SF, // xFBmode
|
||||
GX_FALSE, // field_rendering
|
||||
GX_TRUE, // aa
|
||||
|
||||
// sample points arranged in increasing Y order
|
||||
{
|
||||
{3,2},{9,6},{3,10}, // pix 0, 3 sample points, 1/12 units, 4 bits each
|
||||
{3,2},{9,6},{3,10}, // pix 1
|
||||
{9,2},{3,6},{9,10}, // pix 2
|
||||
{9,2},{3,6},{9,10} // pix 3
|
||||
},
|
||||
|
||||
// vertical filter[7], 1/64 units, 6 bits each
|
||||
{
|
||||
4, // line n-1
|
||||
8, // line n-1
|
||||
12, // line n
|
||||
16, // line n
|
||||
12, // line n
|
||||
8, // line n+1
|
||||
4 // line n+1
|
||||
}
|
||||
|
||||
};
|
||||
|
||||
static GXRModeObj* vmodes[] = {
|
||||
&TVNtsc240Ds,
|
||||
&TVNtsc240DsAa,
|
||||
&TVNtsc240Int,
|
||||
&TVNtsc240IntAa,
|
||||
&TVNtsc480IntDf,
|
||||
&TVNtsc480Int,
|
||||
&TVNtsc480IntAa,
|
||||
&TVNtsc480IntDf,
|
||||
&TVNtsc480Prog,
|
||||
&TVNtsc480ProgSoft,
|
||||
&TVNtsc480ProgAa,
|
||||
&TVMpal480IntDf,
|
||||
&TVPal264Ds,
|
||||
&TVPal264DsAa,
|
||||
&TVPal264Int,
|
||||
&TVPal264IntAa,
|
||||
&TVPal524ProgAa,
|
||||
&TVPal524IntAa,
|
||||
&TVPal528Int,
|
||||
&TVPal528IntDf,
|
||||
&TVPal574IntDfScale,
|
||||
&TVPal528Prog,
|
||||
&TVPal528ProgSoft,
|
||||
&TVPal576IntDfScale,
|
||||
&TVEurgb60Hz240Ds,
|
||||
&TVEurgb60Hz240DsAa,
|
||||
&TVEurgb60Hz240Int,
|
||||
@ -244,26 +350,88 @@ static GXRModeObj* vmodes[] =
|
||||
&TVEurgb60Hz480ProgAa
|
||||
};
|
||||
|
||||
#endif
|
||||
static const char * vmodes_name[] = {
|
||||
"TVNtsc240Ds",
|
||||
"TVNtsc240DsAa",
|
||||
"TVNtsc240Int",
|
||||
"TVNtsc240IntAa",
|
||||
"TVNtsc480Int",
|
||||
"TVNtsc480IntDf(Aa)",
|
||||
"TVNtsc480IntAa",
|
||||
"TVNtsc480Prog",
|
||||
"TVNtsc480ProgSoft",
|
||||
"TVNtsc480ProgAa",
|
||||
"TVMpal480IntDf",
|
||||
"TVPal264Ds",
|
||||
"TVPal264DsAa",
|
||||
"TVPal264Int",
|
||||
"TVPal264IntAa",
|
||||
"TVPal524ProgAa",
|
||||
"TVPal524IntAa",
|
||||
"TVPal528Int",
|
||||
"TVPal528IntDf",
|
||||
"TVPal528Prog",
|
||||
"TVPal528ProgSoft",
|
||||
"TVPal576IntDfScale",
|
||||
"TVEurgb60Hz240Ds",
|
||||
"TVEurgb60Hz240DsAa",
|
||||
"TVEurgb60Hz240Int",
|
||||
"TVEurgb60Hz240IntAa",
|
||||
"TVEurgb60Hz480Int",
|
||||
"TVEurgb60Hz480IntDf",
|
||||
"TVEurgb60Hz480IntAa",
|
||||
"TVEurgb60Hz480Prog",
|
||||
"TVEurgb60Hz480ProgSoft",
|
||||
"TVEurgb60Hz480ProgAa"
|
||||
};
|
||||
|
||||
static GXRModeObj* PAL2NTSC[] = { &TVMpal480IntDf, &TVNtsc480IntDf, &TVPal264Ds, &TVNtsc240Ds, &TVPal264DsAa,
|
||||
&TVNtsc240DsAa, &TVPal264Int, &TVNtsc240Int, &TVPal264IntAa, &TVNtsc240IntAa, &TVPal524IntAa, &TVNtsc480IntAa,
|
||||
&TVPal528Int, &TVNtsc480IntAa, &TVPal528IntDf, &TVNtsc480IntDf, &TVPal576IntDfScale, &TVNtsc480IntDf,
|
||||
&TVEurgb60Hz240Ds, &TVNtsc240Ds, &TVEurgb60Hz240DsAa, &TVNtsc240DsAa, &TVEurgb60Hz240Int, &TVNtsc240Int,
|
||||
&TVEurgb60Hz240IntAa, &TVNtsc240IntAa, &TVEurgb60Hz480Int, &TVNtsc480IntAa, &TVEurgb60Hz480IntDf,
|
||||
&TVNtsc480IntDf, &TVEurgb60Hz480IntAa, &TVNtsc480IntAa, &TVEurgb60Hz480Prog, &TVNtsc480Prog,
|
||||
&TVEurgb60Hz480ProgSoft, &TVNtsc480Prog, &TVEurgb60Hz480ProgAa, &TVNtsc480Prog, 0, 0
|
||||
};
|
||||
static GXRModeObj* PAL2NTSC[] = {
|
||||
&TVMpal480IntDf, &TVNtsc480IntDf,
|
||||
&TVPal264Ds, &TVNtsc240Ds,
|
||||
&TVPal264DsAa, &TVNtsc240DsAa,
|
||||
&TVPal264Int, &TVNtsc240Int,
|
||||
&TVPal264IntAa, &TVNtsc240IntAa,
|
||||
&TVPal524IntAa, &TVNtsc480IntAa,
|
||||
&TVPal528Int, &TVNtsc480Int,
|
||||
&TVPal528IntDf, &TVNtsc480IntDf,
|
||||
&TVPal528Prog, &TVNtsc480Prog,
|
||||
&TVPal576IntDfScale, &TVNtsc480IntDf,
|
||||
&TVEurgb60Hz240Ds, &TVNtsc240Ds,
|
||||
&TVEurgb60Hz240DsAa, &TVNtsc240DsAa,
|
||||
&TVEurgb60Hz240Int, &TVNtsc240Int,
|
||||
&TVEurgb60Hz240IntAa, &TVNtsc240IntAa,
|
||||
&TVEurgb60Hz480Int, &TVNtsc480Int,
|
||||
&TVEurgb60Hz480IntDf, &TVNtsc480IntDf,
|
||||
&TVEurgb60Hz480IntAa, &TVNtsc480IntAa,
|
||||
&TVEurgb60Hz480Prog, &TVNtsc480Prog,
|
||||
&TVEurgb60Hz480ProgSoft, &TVNtsc480Prog,
|
||||
&TVEurgb60Hz480ProgAa, &TVNtsc480Prog,
|
||||
0, 0
|
||||
};
|
||||
|
||||
static GXRModeObj* NTSC2PAL[] = { &TVNtsc240Ds, &TVPal264Ds, &TVNtsc240DsAa, &TVPal264DsAa, &TVNtsc240Int,
|
||||
&TVPal264Int, &TVNtsc240IntAa, &TVPal264IntAa, &TVNtsc480IntDf, &TVPal528IntDf, &TVNtsc480IntAa,
|
||||
&TVPal524IntAa, &TVNtsc480Prog, &TVPal528IntDf, 0, 0
|
||||
};
|
||||
static GXRModeObj* NTSC2PAL[] = {
|
||||
&TVNtsc240Ds, &TVPal264Ds,
|
||||
&TVNtsc240DsAa, &TVPal264DsAa,
|
||||
&TVNtsc240Int, &TVPal264Int,
|
||||
&TVNtsc240IntAa, &TVPal264IntAa,
|
||||
&TVNtsc480Int, &TVPal528Int,
|
||||
&TVNtsc480IntDf, &TVPal528IntDf,
|
||||
&TVNtsc480IntAa, &TVPal524IntAa,
|
||||
&TVNtsc480Prog, &TVPal528Prog,
|
||||
0, 0
|
||||
};
|
||||
|
||||
static GXRModeObj* NTSC2PAL60[] = { &TVNtsc240Ds, &TVEurgb60Hz240Ds, &TVNtsc240DsAa, &TVEurgb60Hz240DsAa,
|
||||
&TVNtsc240Int, &TVEurgb60Hz240Int, &TVNtsc240IntAa, &TVEurgb60Hz240IntAa, &TVNtsc480IntDf,
|
||||
&TVEurgb60Hz480IntDf, &TVNtsc480IntAa, &TVEurgb60Hz480IntAa, &TVNtsc480Prog, &TVEurgb60Hz480Prog, 0, 0
|
||||
};
|
||||
static GXRModeObj* NTSC2PAL60[] = {
|
||||
&TVNtsc240Ds, &TVEurgb60Hz240Ds,
|
||||
&TVNtsc240DsAa, &TVEurgb60Hz240DsAa,
|
||||
&TVNtsc240Int, &TVEurgb60Hz240Int,
|
||||
&TVNtsc240IntAa, &TVEurgb60Hz240IntAa,
|
||||
&TVNtsc480Int, &TVEurgb60Hz480Int,
|
||||
&TVNtsc480IntDf, &TVEurgb60Hz480IntDf,
|
||||
&TVNtsc480IntAa, &TVEurgb60Hz480IntAa,
|
||||
&TVNtsc480Prog, &TVEurgb60Hz480Prog,
|
||||
0, 0
|
||||
};
|
||||
|
||||
static bool compare_videomodes(GXRModeObj* mode1, GXRModeObj* mode2)
|
||||
{
|
||||
@ -349,7 +517,7 @@ static bool Search_and_patch_Video_Modes(u8 * Address, u32 Size, GXRModeObj* Tab
|
||||
{
|
||||
u8 *Addr = (u8 *) Address;
|
||||
bool found = 0;
|
||||
u32 i;
|
||||
u32 i, j;
|
||||
|
||||
while (Size >= sizeof(GXRModeObj))
|
||||
{
|
||||
@ -357,6 +525,26 @@ static bool Search_and_patch_Video_Modes(u8 * Address, u32 Size, GXRModeObj* Tab
|
||||
{
|
||||
if (compare_videomodes(Table[i], (GXRModeObj*) Addr))
|
||||
{
|
||||
u8 current_vmode = 0;
|
||||
u8 target_vmode = 0;
|
||||
for(j = 0; j < sizeof(vmodes)/sizeof(vmodes[0]); j++)
|
||||
{
|
||||
if(compare_videomodes(Table[i], vmodes[j]))
|
||||
{
|
||||
current_vmode = j;
|
||||
break;
|
||||
}
|
||||
}
|
||||
for(j = 0; j < sizeof(vmodes)/sizeof(vmodes[0]); j++)
|
||||
{
|
||||
if(compare_videomodes(Table[i+1], vmodes[j]))
|
||||
{
|
||||
target_vmode = j;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
gprintf("Video mode found in dol: %s, replaced by: %s \n", vmodes_name[current_vmode], vmodes_name[target_vmode]);
|
||||
found = 1;
|
||||
patch_videomode((GXRModeObj*) Addr, Table[i + 1]);
|
||||
Addr += (sizeof(GXRModeObj) - 4);
|
||||
@ -372,36 +560,114 @@ static bool Search_and_patch_Video_Modes(u8 * Address, u32 Size, GXRModeObj* Tab
|
||||
return found;
|
||||
}
|
||||
|
||||
void VideoModePatcher(u8 * dst, int len, u8 videoSelected)
|
||||
static bool Search_and_patch_Video_To(void *Address, u32 Size, GXRModeObj* Table[], GXRModeObj* rmode, bool patchAll)
|
||||
{
|
||||
u8 *Addr = (u8 *)Address;
|
||||
bool found = 0;
|
||||
u32 i;
|
||||
|
||||
u8 target_vmode = 0;
|
||||
for(i = 0; i < sizeof(vmodes)/sizeof(vmodes[0]); i++)
|
||||
{
|
||||
if(compare_videomodes(Table[i], rmode))
|
||||
{
|
||||
target_vmode = i;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
while(Size >= sizeof(GXRModeObj))
|
||||
{
|
||||
// Video mode pattern found
|
||||
if( (((GXRModeObj*)Addr)->fbWidth == 0x0280 && ((GXRModeObj*)Addr)->viWidth == 0x02c4) || // TVEurgb60Hz480Prog
|
||||
(((GXRModeObj*)Addr)->fbWidth == 0x0280 && ((GXRModeObj*)Addr)->viWidth == 0x0280) ) // All other video modes
|
||||
{
|
||||
// display found video mode patterns
|
||||
GXRModeObj* vidmode = (GXRModeObj*)Addr;
|
||||
gprintf("Video pattern found \t%08x %04x %04x %04x %04x %04x %04x %04x %08x %04x %04x ",
|
||||
vidmode->viTVMode, vidmode->fbWidth, vidmode->efbHeight, vidmode->xfbHeight, vidmode->viXOrigin, vidmode->viYOrigin,
|
||||
vidmode->viWidth, vidmode->viHeight, vidmode->xfbMode, vidmode->field_rendering, vidmode->aa);
|
||||
gprintf("%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x ",
|
||||
vidmode->sample_pattern[0][0], vidmode->sample_pattern[1][0], vidmode->sample_pattern[2][0], vidmode->sample_pattern[3][0], vidmode->sample_pattern[4][0],
|
||||
vidmode->sample_pattern[5][0], vidmode->sample_pattern[6][0], vidmode->sample_pattern[7][0], vidmode->sample_pattern[8][0], vidmode->sample_pattern[9][0],
|
||||
vidmode->sample_pattern[10][0], vidmode->sample_pattern[11][0], vidmode->sample_pattern[0][1], vidmode->sample_pattern[1][1], vidmode->sample_pattern[2][1],
|
||||
vidmode->sample_pattern[3][1], vidmode->sample_pattern[4][1], vidmode->sample_pattern[5][1], vidmode->sample_pattern[6][1], vidmode->sample_pattern[7][1],
|
||||
vidmode->sample_pattern[8][1], vidmode->sample_pattern[9][1], vidmode->sample_pattern[10][1], vidmode->sample_pattern[11][1]);
|
||||
gprintf("%02x%02x%02x%02x%02x%02x%02x \n",
|
||||
vidmode->vfilter[0], vidmode->vfilter[1] , vidmode->vfilter[2], vidmode->vfilter[3] , vidmode->vfilter[4],vidmode->vfilter[5], vidmode->vfilter[6]);
|
||||
|
||||
found = 0;
|
||||
for(i = 0; i < sizeof(vmodes)/sizeof(vmodes[0]); i++)
|
||||
{
|
||||
if(compare_videomodes(Table[i], (GXRModeObj*)Addr))
|
||||
{
|
||||
found = 1;
|
||||
gprintf("Video mode found in dol: %s, replaced by: %s \n", vmodes_name[i], vmodes_name[target_vmode]);
|
||||
patch_videomode((GXRModeObj*)Addr, rmode);
|
||||
Addr += (sizeof(GXRModeObj)-4);
|
||||
Size -= (sizeof(GXRModeObj)-4);
|
||||
break;
|
||||
}
|
||||
|
||||
}
|
||||
if(patchAll && !found)
|
||||
{
|
||||
gprintf("Video mode found in dol: Unknown, replaced by: %s \n", vmodes_name[target_vmode]);
|
||||
patch_videomode((GXRModeObj*)Addr, rmode);
|
||||
Addr += (sizeof(GXRModeObj)-4);
|
||||
Size -= (sizeof(GXRModeObj)-4);
|
||||
}
|
||||
}
|
||||
Addr += 4;
|
||||
Size -= 4;
|
||||
}
|
||||
|
||||
return found;
|
||||
}
|
||||
|
||||
void VideoModePatcher(u8 * dst, int len, u8 videoSelected, u8 VideoPatchDol)
|
||||
{
|
||||
GXRModeObj** table = NULL;
|
||||
if (videoSelected == VIDEO_MODE_PATCH) // patch enum'd in cfg.h
|
||||
|
||||
{
|
||||
switch (CONF_GetVideo())
|
||||
{
|
||||
case CONF_VIDEO_PAL:
|
||||
if (CONF_GetEuRGB60() > 0)
|
||||
{
|
||||
table = NTSC2PAL60;
|
||||
}
|
||||
else
|
||||
{
|
||||
case CONF_VIDEO_PAL:
|
||||
table = CONF_GetEuRGB60() > 0 ? NTSC2PAL60 : NTSC2PAL;
|
||||
break;
|
||||
case CONF_VIDEO_MPAL:
|
||||
table = NTSC2PAL;
|
||||
}
|
||||
break;
|
||||
|
||||
case CONF_VIDEO_MPAL:
|
||||
|
||||
table = NTSC2PAL;
|
||||
break;
|
||||
|
||||
default:
|
||||
table = PAL2NTSC;
|
||||
break;
|
||||
break;
|
||||
default:
|
||||
table = PAL2NTSC;
|
||||
break;
|
||||
}
|
||||
Search_and_patch_Video_Modes(dst, len, table);
|
||||
}
|
||||
else if(VideoPatchDol == VIDEO_PATCH_DOL_REGION ) //&& rmode != NULL)
|
||||
{
|
||||
switch(rmode->viTVMode >> 2)
|
||||
{
|
||||
case VI_PAL:
|
||||
case VI_MPAL:
|
||||
table = NTSC2PAL;
|
||||
break;
|
||||
case VI_EURGB60:
|
||||
table = NTSC2PAL60;
|
||||
break;
|
||||
default:
|
||||
table = PAL2NTSC;
|
||||
}
|
||||
Search_and_patch_Video_Modes(dst, len, table);
|
||||
}
|
||||
else if (VideoPatchDol == VIDEO_PATCH_DOL_ON && rmode != NULL)
|
||||
{
|
||||
Search_and_patch_Video_To(dst, len, vmodes, rmode, false);
|
||||
}
|
||||
else if (VideoPatchDol == VIDEO_PATCH_DOL_ALL && rmode != NULL)
|
||||
{
|
||||
Search_and_patch_Video_To(dst, len, vmodes, rmode, true);
|
||||
}
|
||||
}
|
||||
|
||||
void sneek_video_patch(void *addr, u32 len)
|
||||
|
@ -9,12 +9,12 @@ extern "C" {
|
||||
|
||||
void RegisterDOL(u8 *dst, int len);
|
||||
void ClearDOLList();
|
||||
void gamepatches(u8 videoSelected, u8 aspectForce, u8 languageChoice, u8 patchcountrystring,
|
||||
void gamepatches(u8 videoSelected, u8 videoPatchDol, u8 aspectForce, u8 languageChoice, u8 patchcountrystring,
|
||||
u8 vipatch, u8 sneekVideoPatch, u8 hooktype, u8 fix002, u64 returnTo);
|
||||
bool Anti_002_fix(u8 * Address, int Size);
|
||||
bool NSMBPatch();
|
||||
bool PoPPatch();
|
||||
void VideoModePatcher(u8 * dst, int len, u8 videoSelected);
|
||||
void VideoModePatcher(u8 * dst, int len, u8 videoSelected, u8 VideoPatchDol);
|
||||
void sneek_video_patch(void *addr, u32 len);
|
||||
bool PatchReturnTo(void *Address, int Size, u32 id);
|
||||
int PatchNewReturnTo(int es_fd, u64 title);
|
||||
|
@ -73,11 +73,13 @@ static const char * DMLVersions[] =
|
||||
"v2.7", // DML 2.7
|
||||
"v2.8", // DML 2.8
|
||||
"v2.8", // DM 2.8
|
||||
"v2.9+", // DML 2.9
|
||||
"v2.9+", // DM 2.9
|
||||
"v2.9", // DML 2.9
|
||||
"v2.9", // DM 2.9
|
||||
"v2.0", // QuadForce v2.0
|
||||
"v3.0", // QuadForce v3.0
|
||||
"v4.0+", // QuadForce v4.0 SD
|
||||
"v2.10+", // DML 2.10
|
||||
"v2.10+", // DM 2.10
|
||||
"v4.1", // QuadForce v4.1 USB
|
||||
};
|
||||
|
||||
|
@ -532,6 +532,12 @@ static int InternalShowGameInfo(struct discHdr *header)
|
||||
else if(GameInfo.WifiPlayers == 4)
|
||||
wifiplayersImgData = Resources::GetImageData("wifi4.png");
|
||||
|
||||
else if(GameInfo.WifiPlayers == 6)
|
||||
wifiplayersImgData = Resources::GetImageData("wifi6.png");
|
||||
|
||||
else if(GameInfo.WifiPlayers == 10)
|
||||
wifiplayersImgData = Resources::GetImageData("wifi10.png");
|
||||
|
||||
else if(GameInfo.WifiPlayers == 8)
|
||||
wifiplayersImgData =Resources::GetImageData("wifi8.png");
|
||||
|
||||
|
@ -187,6 +187,7 @@ bool CGameSettings::Save()
|
||||
{
|
||||
fprintf(f, "game:%s = ", GameList[i].id);
|
||||
fprintf(f, "video:%d; ", GameList[i].video);
|
||||
fprintf(f, "videoPatchDol:%d; ", GameList[i].videoPatchDol);
|
||||
fprintf(f, "aspectratio:%d; ", GameList[i].aspectratio);
|
||||
fprintf(f, "language:%d; ", GameList[i].language);
|
||||
fprintf(f, "ocarina:%d; ", GameList[i].ocarina);
|
||||
@ -221,6 +222,7 @@ bool CGameSettings::Save()
|
||||
fprintf(f, "DEVOActivityLED:%d; ", GameList[i].DEVOActivityLED);
|
||||
fprintf(f, "DEVOFZeroAX:%d; ", GameList[i].DEVOFZeroAX);
|
||||
fprintf(f, "DEVOTimerFix:%d; ", GameList[i].DEVOTimerFix);
|
||||
fprintf(f, "DEVODButtons:%d; ", GameList[i].DEVODButtons);
|
||||
fprintf(f, "Locked:%d;\n", GameList[i].Locked);
|
||||
}
|
||||
fprintf(f, "# END\n");
|
||||
@ -236,6 +238,11 @@ bool CGameSettings::SetSetting(GameCFG & game, const char *name, const char *val
|
||||
game.video = atoi(value);
|
||||
return true;
|
||||
}
|
||||
if (strcmp(name, "videoPatchDol") == 0)
|
||||
{
|
||||
game.videoPatchDol = atoi(value);
|
||||
return true;
|
||||
}
|
||||
else if(strcmp(name, "aspectratio") == 0)
|
||||
{
|
||||
game.aspectratio = atoi(value);
|
||||
@ -411,6 +418,11 @@ bool CGameSettings::SetSetting(GameCFG & game, const char *name, const char *val
|
||||
game.DEVOTimerFix = atoi(value);
|
||||
return true;
|
||||
}
|
||||
else if(strcmp(name, "DEVODButtons") == 0)
|
||||
{
|
||||
game.DEVODButtons = atoi(value);
|
||||
return true;
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
@ -513,6 +525,7 @@ void CGameSettings::SetDefault(GameCFG &game)
|
||||
{
|
||||
memset(game.id, 0, sizeof(game.id));
|
||||
game.video = INHERIT;
|
||||
game.videoPatchDol = INHERIT;
|
||||
game.aspectratio = INHERIT;
|
||||
game.language = INHERIT;
|
||||
game.ocarina = INHERIT;
|
||||
@ -547,5 +560,6 @@ void CGameSettings::SetDefault(GameCFG &game)
|
||||
game.DEVOActivityLED = INHERIT;
|
||||
game.DEVOFZeroAX = INHERIT;
|
||||
game.DEVOTimerFix = INHERIT;
|
||||
game.DEVODButtons = INHERIT;
|
||||
game.Locked = OFF;
|
||||
}
|
||||
|
@ -11,6 +11,7 @@ typedef struct _GameCFG
|
||||
{
|
||||
char id[7];
|
||||
short video;
|
||||
short videoPatchDol;
|
||||
short aspectratio;
|
||||
short language;
|
||||
short ocarina;
|
||||
@ -45,12 +46,14 @@ typedef struct _GameCFG
|
||||
short DEVOActivityLED;
|
||||
short DEVOFZeroAX;
|
||||
short DEVOTimerFix;
|
||||
short DEVODButtons;
|
||||
short Locked;
|
||||
|
||||
void operator=(const struct _GameCFG &game)
|
||||
{
|
||||
memcpy(this->id, game.id, sizeof(game.id));
|
||||
this->video = game.video;
|
||||
this->videoPatchDol = game.videoPatchDol;
|
||||
this->aspectratio = game.aspectratio;
|
||||
this->language = game.language;
|
||||
this->ocarina = game.ocarina;
|
||||
@ -85,6 +88,7 @@ typedef struct _GameCFG
|
||||
this->DEVOActivityLED = game.DEVOActivityLED;
|
||||
this->DEVOFZeroAX = game.DEVOFZeroAX;
|
||||
this->DEVOTimerFix = game.DEVOTimerFix;
|
||||
this->DEVODButtons = game.DEVODButtons;
|
||||
this->Locked = game.Locked;
|
||||
}
|
||||
} GameCFG;
|
||||
|
@ -92,6 +92,7 @@ void CSettings::SetDefault()
|
||||
godmode = 1;
|
||||
videomode = VIDEO_MODE_DISCDEFAULT;
|
||||
videopatch = OFF;
|
||||
videoPatchDol = OFF;
|
||||
language = CONSOLE_DEFAULT;
|
||||
ocarina = OFF;
|
||||
hddinfo = CLOCK_HR12;
|
||||
@ -185,6 +186,7 @@ void CSettings::SetDefault()
|
||||
DEVOActivityLED = ON;
|
||||
DEVOFZeroAX = OFF;
|
||||
DEVOTimerFix = OFF;
|
||||
DEVODButtons = OFF;
|
||||
GCInstallCompressed = OFF;
|
||||
GCInstallAligned = OFF;
|
||||
}
|
||||
@ -273,6 +275,7 @@ bool CSettings::Save()
|
||||
fprintf(file, "godmode = %d\n", godmode);
|
||||
fprintf(file, "videomode = %d\n", videomode);
|
||||
fprintf(file, "videopatch = %d\n", videopatch);
|
||||
fprintf(file, "videoPatchDol = %d\n", videoPatchDol);
|
||||
fprintf(file, "language = %d\n", language);
|
||||
fprintf(file, "ocarina = %d\n", ocarina);
|
||||
fprintf(file, "hddinfo = %d\n", hddinfo);
|
||||
@ -417,6 +420,7 @@ bool CSettings::Save()
|
||||
fprintf(file, "DEVOActivityLED = %d\n", DEVOActivityLED);
|
||||
fprintf(file, "DEVOFZeroAX = %d\n", DEVOFZeroAX);
|
||||
fprintf(file, "DEVOTimerFix = %d\n", DEVOTimerFix);
|
||||
fprintf(file, "DEVODButtons = %d\n", DEVODButtons);
|
||||
fprintf(file, "DEVOLoaderPath = %s\n", DEVOLoaderPath);
|
||||
fprintf(file, "GCInstallCompressed = %d\n", GCInstallCompressed);
|
||||
fprintf(file, "GCInstallAligned = %d\n", GCInstallAligned);
|
||||
@ -443,6 +447,11 @@ bool CSettings::SetSetting(char *name, char *value)
|
||||
videopatch = atoi(value);
|
||||
return true;
|
||||
}
|
||||
else if (strcmp(name, "videoPatchDol") == 0)
|
||||
{
|
||||
videoPatchDol = atoi(value);
|
||||
return true;
|
||||
}
|
||||
else if (strcmp(name, "language") == 0)
|
||||
{
|
||||
language = atoi(value);
|
||||
@ -892,6 +901,11 @@ bool CSettings::SetSetting(char *name, char *value)
|
||||
DEVOTimerFix = atoi(value);
|
||||
return true;
|
||||
}
|
||||
else if (strcmp(name, "DEVODButtons") == 0)
|
||||
{
|
||||
DEVODButtons = atoi(value);
|
||||
return true;
|
||||
}
|
||||
else if (strcmp(name, "DEVOLoaderPath") == 0)
|
||||
{
|
||||
strlcpy(DEVOLoaderPath, value, sizeof(DEVOLoaderPath));
|
||||
|
@ -92,6 +92,7 @@ class CSettings
|
||||
short language;
|
||||
short ocarina;
|
||||
short videopatch;
|
||||
short videoPatchDol;
|
||||
short sinfo;
|
||||
short hddinfo;
|
||||
short rumble;
|
||||
@ -187,6 +188,7 @@ class CSettings
|
||||
short DEVOActivityLED;
|
||||
short DEVOFZeroAX;
|
||||
short DEVOTimerFix;
|
||||
short DEVODButtons;
|
||||
short GCInstallCompressed;
|
||||
short GCInstallAligned;
|
||||
|
||||
|
@ -71,6 +71,15 @@ enum
|
||||
VIDEO_MODE_MAX
|
||||
};
|
||||
|
||||
enum
|
||||
{
|
||||
VIDEO_PATCH_DOL_OFF,
|
||||
VIDEO_PATCH_DOL_REGION,
|
||||
VIDEO_PATCH_DOL_ON,
|
||||
VIDEO_PATCH_DOL_ALL,
|
||||
VIDEO_PATCH_DOL_MAX,
|
||||
};
|
||||
|
||||
enum
|
||||
{
|
||||
ASPECT_FORCE_4_3,
|
||||
@ -285,7 +294,8 @@ enum
|
||||
GC_SOURCE_MAIN,
|
||||
GC_SOURCE_SD,
|
||||
GC_SOURCE_AUTO,
|
||||
// GC_SOURCE_BOTH, // GCGames::getPath(GameID) always returns the first encountered path in the gameList
|
||||
GC_SOURCE_MAIN_SD,
|
||||
GC_SOURCE_SD_MAIN,
|
||||
CG_SOURCE_MAX_CHOICE
|
||||
|
||||
};
|
||||
|
@ -181,6 +181,7 @@ void GCGameLoadSM::SetOptionNames()
|
||||
Options->SetName(Idx++, "%s", tr( "DEVO LED Activity" ));
|
||||
Options->SetName(Idx++, "%s", tr( "DEVO F-Zero AX" ));
|
||||
Options->SetName(Idx++, "%s", tr( "DEVO Timer Fix" ));
|
||||
Options->SetName(Idx++, "%s", tr( "DEVO D Buttons" ));
|
||||
}
|
||||
|
||||
void GCGameLoadSM::SetOptionValues()
|
||||
@ -201,8 +202,9 @@ void GCGameLoadSM::SetOptionValues()
|
||||
|
||||
//! Settings: Game Language
|
||||
if(GameConfig.language == INHERIT)
|
||||
GameConfig.language = GC_LANG_CONSOLE_DEFAULT;
|
||||
Options->SetValue(Idx++, "%s", tr(LanguageText[GameConfig.language]));
|
||||
Options->SetValue(Idx++, tr("Use global"));
|
||||
else
|
||||
Options->SetValue(Idx++, "%s", tr(LanguageText[GameConfig.language]));
|
||||
|
||||
//! Settings: Ocarina
|
||||
if(GameConfig.ocarina == INHERIT)
|
||||
@ -321,6 +323,11 @@ void GCGameLoadSM::SetOptionValues()
|
||||
else
|
||||
Options->SetValue(Idx++, "%s", tr(OnOffText[GameConfig.DEVOTimerFix]));
|
||||
|
||||
//! Settings: DEVO Direct Button Mapping
|
||||
if(GameConfig.DEVODButtons == INHERIT)
|
||||
Options->SetValue(Idx++, tr("Use global"));
|
||||
else
|
||||
Options->SetValue(Idx++, "%s", tr(OnOffText[GameConfig.DEVODButtons]));
|
||||
}
|
||||
|
||||
int GCGameLoadSM::GetMenuInternal()
|
||||
@ -369,7 +376,7 @@ int GCGameLoadSM::GetMenuInternal()
|
||||
//! Settings: Game Language
|
||||
else if (ret == ++Idx)
|
||||
{
|
||||
if (++GameConfig.language >= GC_MAX_LANGUAGE) GameConfig.language = GC_ENGLISH;
|
||||
if (++GameConfig.language >= GC_MAX_LANGUAGE) GameConfig.language = INHERIT;
|
||||
}
|
||||
|
||||
//! Settings: Ocarina
|
||||
@ -480,6 +487,12 @@ int GCGameLoadSM::GetMenuInternal()
|
||||
if (++GameConfig.DEVOTimerFix >= MAX_ON_OFF) GameConfig.DEVOTimerFix = INHERIT;
|
||||
}
|
||||
|
||||
//!Settings: DEVO Direct Button Mapping
|
||||
else if (ret == ++Idx)
|
||||
{
|
||||
if (++GameConfig.DEVODButtons >= MAX_ON_OFF) GameConfig.DEVODButtons = INHERIT;
|
||||
}
|
||||
|
||||
SetOptionValues();
|
||||
|
||||
return MENU_NONE;
|
||||
|
@ -54,6 +54,14 @@ static const char * VideoModeText[] =
|
||||
trNOOP( "Force NTSC480p" ),
|
||||
};
|
||||
|
||||
static const char * VideoPatchDolText[] =
|
||||
{
|
||||
trNOOP( "OFF" ),
|
||||
trNOOP( "Region Patch" ),
|
||||
trNOOP( "ON" ),
|
||||
trNOOP( "All" ),
|
||||
};
|
||||
|
||||
static const char * AspectText[] =
|
||||
{
|
||||
trNOOP( "Force 4:3" ),
|
||||
@ -174,8 +182,9 @@ void GameLoadSM::SetOptionNames()
|
||||
Options->SetName(Idx++, "%s", tr( "Game Lock" ));
|
||||
Options->SetName(Idx++, "%s", tr( "Favorite Level" ));
|
||||
Options->SetName(Idx++, "%s", tr( "Video Mode" ));
|
||||
Options->SetName(Idx++, "%s", tr( "VIDTV Patch" ));
|
||||
Options->SetName(Idx++, "%s", tr( "Dol Video Patch" ));
|
||||
Options->SetName(Idx++, "%s", tr( "Sneek Video Patch" ));
|
||||
Options->SetName(Idx++, "%s", tr( "VIDTV Patch" ));
|
||||
Options->SetName(Idx++, "%s", tr( "Aspect Ratio" ));
|
||||
Options->SetName(Idx++, "%s", tr( "Patch Country Strings" ));
|
||||
Options->SetName(Idx++, "%s", tr( "Game Language" ));
|
||||
@ -221,11 +230,11 @@ void GameLoadSM::SetOptionValues()
|
||||
else
|
||||
Options->SetValue(Idx++, "%s", tr(VideoModeText[GameConfig.video]));
|
||||
|
||||
//! Settings: VIDTV Patch
|
||||
if(GameConfig.vipatch == INHERIT)
|
||||
//! Settings: Dol Video Patch
|
||||
if(GameConfig.videoPatchDol == INHERIT)
|
||||
Options->SetValue(Idx++, tr("Use global"));
|
||||
else
|
||||
Options->SetValue(Idx++, "%s", tr(OnOffText[GameConfig.vipatch]));
|
||||
Options->SetValue(Idx++, "%s", tr(VideoPatchDolText[GameConfig.videoPatchDol]));
|
||||
|
||||
//! Settings: Sneek Video Patch
|
||||
if(GameConfig.sneekVideoPatch == INHERIT)
|
||||
@ -233,6 +242,12 @@ void GameLoadSM::SetOptionValues()
|
||||
else
|
||||
Options->SetValue(Idx++, "%s", tr(OnOffText[GameConfig.sneekVideoPatch]));
|
||||
|
||||
//! Settings: VIDTV Patch
|
||||
if(GameConfig.vipatch == INHERIT)
|
||||
Options->SetValue(Idx++, tr("Use global"));
|
||||
else
|
||||
Options->SetValue(Idx++, "%s", tr(OnOffText[GameConfig.vipatch]));
|
||||
|
||||
//! Settings: Aspect Ratio
|
||||
if(GameConfig.aspectratio == INHERIT)
|
||||
Options->SetValue(Idx++, tr("Use global"));
|
||||
@ -385,10 +400,10 @@ int GameLoadSM::GetMenuInternal()
|
||||
if (++GameConfig.video >= VIDEO_MODE_MAX) GameConfig.video = INHERIT;
|
||||
}
|
||||
|
||||
//! Settings: VIDTV Patch
|
||||
if (ret == ++Idx)
|
||||
//! Settings: Dol Video Patch
|
||||
else if (ret == ++Idx)
|
||||
{
|
||||
if (++GameConfig.vipatch >= MAX_ON_OFF) GameConfig.vipatch = INHERIT;
|
||||
if (++GameConfig.videoPatchDol >= VIDEO_PATCH_DOL_MAX) GameConfig.videoPatchDol = INHERIT;
|
||||
}
|
||||
|
||||
//! Settings: Sneek Video Patch
|
||||
@ -397,6 +412,12 @@ int GameLoadSM::GetMenuInternal()
|
||||
if (++GameConfig.sneekVideoPatch >= MAX_ON_OFF) GameConfig.sneekVideoPatch = INHERIT;
|
||||
}
|
||||
|
||||
//! Settings: VIDTV Patch
|
||||
if (ret == ++Idx)
|
||||
{
|
||||
if (++GameConfig.vipatch >= MAX_ON_OFF) GameConfig.vipatch = INHERIT;
|
||||
}
|
||||
|
||||
//! Settings: Aspect Ratio
|
||||
else if (ret == ++Idx)
|
||||
{
|
||||
|
@ -63,6 +63,14 @@ static const char * VideoModeText[] =
|
||||
trNOOP( "Force NTSC480p" ),
|
||||
};
|
||||
|
||||
static const char * VideoPatchDolText[] =
|
||||
{
|
||||
trNOOP( "OFF" ),
|
||||
trNOOP( "Region Patch" ),
|
||||
trNOOP( "ON" ),
|
||||
trNOOP( "All" ),
|
||||
};
|
||||
|
||||
static const char * LanguageText[] =
|
||||
{
|
||||
trNOOP( "Japanese" ),
|
||||
@ -116,12 +124,13 @@ static const char * GCMode[] =
|
||||
trNOOP( "Devolution" ),
|
||||
};
|
||||
|
||||
static const char * GCSourceText[] =
|
||||
static const char * GCSourceText[][3] =
|
||||
{
|
||||
trNOOP( "Main Path" ),
|
||||
trNOOP( "SD Path" ),
|
||||
trNOOP( "Auto" ),
|
||||
trNOOP( "Both" ),
|
||||
{ trNOOP( "Main Path" ), "", "" },
|
||||
{ trNOOP( "SD Path" ), "", "" },
|
||||
{ trNOOP( "Auto" ), "", "" },
|
||||
{ trNOOP( "Main Path" ), "/", trNOOP( "SD Path" ) },
|
||||
{ trNOOP( "SD Path" ), "/", trNOOP( "Main Path" ) },
|
||||
};
|
||||
|
||||
static const char * DMLVideoText[] =
|
||||
@ -158,8 +167,9 @@ LoaderSettings::LoaderSettings()
|
||||
int Idx = 0;
|
||||
|
||||
Options->SetName(Idx++, "%s", tr( "Video Mode" ));
|
||||
Options->SetName(Idx++, "%s", tr( "VIDTV Patch" ));
|
||||
Options->SetName(Idx++, "%s", tr( "Dol Video Patch" ));
|
||||
Options->SetName(Idx++, "%s", tr( "Sneek Video Patch" ));
|
||||
Options->SetName(Idx++, "%s", tr( "VIDTV Patch" ));
|
||||
Options->SetName(Idx++, "%s", tr( "Aspect Ratio" ));
|
||||
Options->SetName(Idx++, "%s", tr( "Game Language" ));
|
||||
Options->SetName(Idx++, "%s", tr( "Patch Country Strings" ));
|
||||
@ -192,6 +202,7 @@ LoaderSettings::LoaderSettings()
|
||||
Options->SetName(Idx++, "%s", tr( "DEVO LED Activity" ));
|
||||
Options->SetName(Idx++, "%s", tr( "DEVO F-Zero AX" ));
|
||||
Options->SetName(Idx++, "%s", tr( "DEVO Timer Fix" ));
|
||||
Options->SetName(Idx++, "%s", tr( "DEVO D Buttons" ));
|
||||
|
||||
SetOptionValues();
|
||||
|
||||
@ -226,12 +237,15 @@ void LoaderSettings::SetOptionValues()
|
||||
//! Settings: Video Mode
|
||||
Options->SetValue(Idx++, "%s", tr(VideoModeText[Settings.videomode]));
|
||||
|
||||
//! Settings: VIDTV Patch
|
||||
Options->SetValue(Idx++, "%s", tr( OnOffText[Settings.videopatch] ));
|
||||
//! Settings: Dol Video Patch
|
||||
Options->SetValue(Idx++, "%s", tr( VideoPatchDolText[Settings.videoPatchDol] ));
|
||||
|
||||
//! Settings: Sneek Video Patch
|
||||
Options->SetValue(Idx++, "%s", tr( OnOffText[Settings.sneekVideoPatch] ));
|
||||
|
||||
//! Settings: VIDTV Patch
|
||||
Options->SetValue(Idx++, "%s", tr( OnOffText[Settings.videopatch] ));
|
||||
|
||||
//! Settings: Aspect Ratio
|
||||
Options->SetValue(Idx++, "%s", tr( AspectText[Settings.GameAspectRatio] ));
|
||||
|
||||
@ -289,7 +303,8 @@ void LoaderSettings::SetOptionValues()
|
||||
Options->SetValue(Idx++, "%s", tr(GCMode[Settings.GameCubeMode]));
|
||||
|
||||
//! Settings: GameCube Source
|
||||
Options->SetValue(Idx++, "%s", tr(GCSourceText[Settings.GameCubeSource]));
|
||||
Options->SetValue(Idx++, "%s%s%s", tr(GCSourceText[Settings.GameCubeSource][0]),
|
||||
GCSourceText[Settings.GameCubeSource][1], tr(GCSourceText[Settings.GameCubeSource][2]));
|
||||
|
||||
//! Settings: DML Video Mode
|
||||
Options->SetValue(Idx++, "%s", tr(DMLVideoText[Settings.DMLVideo]));
|
||||
@ -336,6 +351,9 @@ void LoaderSettings::SetOptionValues()
|
||||
//! Settings: DEVO Timer Fix
|
||||
Options->SetValue(Idx++, "%s", tr(OnOffText[Settings.DEVOTimerFix]));
|
||||
|
||||
//! Settings: DEVO Direct Button Mapping
|
||||
Options->SetValue(Idx++, "%s", tr(OnOffText[Settings.DEVODButtons]));
|
||||
|
||||
}
|
||||
|
||||
int LoaderSettings::GetMenuInternal()
|
||||
@ -353,10 +371,10 @@ int LoaderSettings::GetMenuInternal()
|
||||
if (++Settings.videomode >= VIDEO_MODE_MAX) Settings.videomode = 0;
|
||||
}
|
||||
|
||||
//! Settings: VIDTV Patch
|
||||
else if (ret == ++Idx)
|
||||
//! Settings: Dol Video Patch
|
||||
if (ret == ++Idx)
|
||||
{
|
||||
if (++Settings.videopatch >= MAX_ON_OFF) Settings.videopatch = 0;
|
||||
if (++Settings.videoPatchDol >= VIDEO_PATCH_DOL_MAX) Settings.videoPatchDol = 0;
|
||||
}
|
||||
|
||||
//! Settings: Sneek Video Patch
|
||||
@ -365,6 +383,12 @@ int LoaderSettings::GetMenuInternal()
|
||||
if (++Settings.sneekVideoPatch >= MAX_ON_OFF) Settings.sneekVideoPatch = 0;
|
||||
}
|
||||
|
||||
//! Settings: VIDTV Patch
|
||||
else if (ret == ++Idx)
|
||||
{
|
||||
if (++Settings.videopatch >= MAX_ON_OFF) Settings.videopatch = 0;
|
||||
}
|
||||
|
||||
//! Settings: Aspect Ratio
|
||||
else if (ret == ++Idx )
|
||||
{
|
||||
@ -579,12 +603,18 @@ int LoaderSettings::GetMenuInternal()
|
||||
if (++Settings.DEVOFZeroAX >= MAX_ON_OFF) Settings.DEVOFZeroAX = 0;
|
||||
}
|
||||
|
||||
//! Settings: DEVO Activity LED
|
||||
//! Settings: DEVO Timer Fix
|
||||
else if (ret == ++Idx)
|
||||
{
|
||||
if (++Settings.DEVOTimerFix >= MAX_ON_OFF) Settings.DEVOTimerFix = 0;
|
||||
}
|
||||
|
||||
//! Settings: DEVO Direct Button Mapping
|
||||
else if (ret == ++Idx)
|
||||
{
|
||||
if (++Settings.DEVODButtons >= MAX_ON_OFF) Settings.DEVODButtons = 0;
|
||||
}
|
||||
|
||||
SetOptionValues();
|
||||
|
||||
return MENU_NONE;
|
||||
|
@ -344,7 +344,12 @@ u8 IosLoader::GetDMLVersion(char* releaseDate)
|
||||
strptime("Apr 5 2013 18:29:35", "%b %d %Y %H:%M:%S", &time);
|
||||
const time_t dm_2_9_time = mktime(&time);
|
||||
|
||||
if(difftime(unixTime, dm_2_9_time) >= 0) currentDMLVersion = DML_VERSION_DM_2_9;
|
||||
// Timestamp of DM 2.10
|
||||
strptime("May 24 2013 21:22:22", "%b %d %Y %H:%M:%S", &time);
|
||||
const time_t dm_2_10_time = mktime(&time);
|
||||
|
||||
if(difftime(unixTime, dm_2_10_time) >= 0) currentDMLVersion = DML_VERSION_DM_2_10;
|
||||
else if(difftime(unixTime, dm_2_9_time) >= 0) currentDMLVersion = DML_VERSION_DM_2_9;
|
||||
else if(difftime(unixTime, dm_2_8_time) >= 0) currentDMLVersion = DML_VERSION_DM_2_8;
|
||||
else if(difftime(unixTime, dm_2_7_time) >= 0) currentDMLVersion = DML_VERSION_DM_2_7;
|
||||
else if(difftime(unixTime, dm_2_6_1_time) >= 0) currentDMLVersion = DML_VERSION_DM_2_6_1;
|
||||
@ -414,7 +419,12 @@ u8 IosLoader::GetDMLVersion(char* releaseDate)
|
||||
strptime("Apr 5 2013 18:20:33", "%b %d %Y %H:%M:%S", &time);
|
||||
const time_t dml_2_9_time = mktime(&time);
|
||||
|
||||
if(difftime(unixTime, dml_2_9_time) >= 0) currentDMLVersion = DML_VERSION_DML_2_9;
|
||||
// Timestamp of DML 2.10
|
||||
strptime("May 24 2013 18:51:58", "%b %d %Y %H:%M:%S", &time);
|
||||
const time_t dml_2_10_time = mktime(&time);
|
||||
|
||||
if(difftime(unixTime, dml_2_10_time) >= 0) currentDMLVersion = DML_VERSION_DML_2_10;
|
||||
else if(difftime(unixTime, dml_2_9_time) >= 0) currentDMLVersion = DML_VERSION_DML_2_9;
|
||||
else if(difftime(unixTime, dml_2_8_time) >= 0) currentDMLVersion = DML_VERSION_DML_2_8;
|
||||
else if(difftime(unixTime, dml_2_7_time) >= 0) currentDMLVersion = DML_VERSION_DML_2_7;
|
||||
else if(difftime(unixTime, dml_2_6_time) >= 0) currentDMLVersion = DML_VERSION_DML_2_6;
|
||||
|
@ -63,6 +63,8 @@ enum DMLVersions
|
||||
DML_VERSION_QUAD_2_0, // Apr 30 2013 17:31:32
|
||||
DML_VERSION_QUAD_3_0, // May 8 2013 22:21:44
|
||||
DML_VERSION_QUAD_4_0, // May 12 2013 20:22:57
|
||||
DML_VERSION_DML_2_10, // May 24 2013 18:51:58
|
||||
DML_VERSION_DM_2_10, // May 24 2013 21:22:22
|
||||
DML_VERSION_QUAD_4_1, // May 26 2013 ??:??:?? (USB)
|
||||
DML_VERSION_MAX_VERSION,
|
||||
};
|
||||
|
@ -1,7 +1,7 @@
|
||||
/****************************************************************************
|
||||
* USB Loader GX resource files.
|
||||
* This file is generated automatically.
|
||||
* Includes 198 files.
|
||||
* Includes 200 files.
|
||||
*
|
||||
* NOTE:
|
||||
* Any manual modification of this file will be overwriten by the generation.
|
||||
@ -506,6 +506,9 @@ extern const u32 wheelR_png_size;
|
||||
extern const u8 wifi1_png[];
|
||||
extern const u32 wifi1_png_size;
|
||||
|
||||
extern const u8 wifi10_png[];
|
||||
extern const u32 wifi10_png_size;
|
||||
|
||||
extern const u8 wifi12_png[];
|
||||
extern const u32 wifi12_png_size;
|
||||
|
||||
@ -524,6 +527,9 @@ extern const u32 wifi32_png_size;
|
||||
extern const u8 wifi4_png[];
|
||||
extern const u32 wifi4_png_size;
|
||||
|
||||
extern const u8 wifi6_png[];
|
||||
extern const u32 wifi6_png_size;
|
||||
|
||||
extern const u8 wifi8_png[];
|
||||
extern const u32 wifi8_png_size;
|
||||
|
||||
@ -772,12 +778,14 @@ RecourceFile Resources::RecourceFiles[] =
|
||||
{"wheel.png", wheel_png, wheel_png_size, NULL, 0},
|
||||
{"wheelR.png", wheelR_png, wheelR_png_size, NULL, 0},
|
||||
{"wifi1.png", wifi1_png, wifi1_png_size, NULL, 0},
|
||||
{"wifi10.png", wifi10_png, wifi10_png_size, NULL, 0},
|
||||
{"wifi12.png", wifi12_png, wifi12_png_size, NULL, 0},
|
||||
{"wifi16.png", wifi16_png, wifi16_png_size, NULL, 0},
|
||||
{"wifi2.png", wifi2_png, wifi2_png_size, NULL, 0},
|
||||
{"wifi3.png", wifi3_png, wifi3_png_size, NULL, 0},
|
||||
{"wifi32.png", wifi32_png, wifi32_png_size, NULL, 0},
|
||||
{"wifi4.png", wifi4_png, wifi4_png_size, NULL, 0},
|
||||
{"wifi6.png", wifi6_png, wifi6_png_size, NULL, 0},
|
||||
{"wifi8.png", wifi8_png, wifi8_png_size, NULL, 0},
|
||||
{"wifi_btn.png", wifi_btn_png, wifi_btn_png_size, NULL, 0},
|
||||
{"wiimote.png", wiimote_png, wiimote_png_size, NULL, 0},
|
||||
|
@ -267,6 +267,7 @@ int GameBooter::BootGame(struct discHdr *gameHdr)
|
||||
//! Setup game configuration from game settings. If no game settings exist use global/default.
|
||||
GameCFG * game_cfg = GameSettings.GetGameCFG(gameHeader.id);
|
||||
u8 videoChoice = game_cfg->video == INHERIT ? Settings.videomode : game_cfg->video;
|
||||
u8 videoPatchDolChoice = game_cfg->videoPatchDol == INHERIT ? Settings.videoPatchDol : game_cfg->videoPatchDol;
|
||||
u8 aspectChoice = game_cfg->aspectratio == INHERIT ? Settings.GameAspectRatio : game_cfg->aspectratio;
|
||||
u8 languageChoice = game_cfg->language == INHERIT ? Settings.language : game_cfg->language;
|
||||
u8 ocarinaChoice = game_cfg->ocarina == INHERIT ? Settings.ocarina : game_cfg->ocarina;
|
||||
@ -400,7 +401,7 @@ int GameBooter::BootGame(struct discHdr *gameHdr)
|
||||
|
||||
//! Do all the game patches
|
||||
gprintf("Applying game patches...\n");
|
||||
gamepatches(videoChoice, aspectChoice, languageChoice, countrystrings, viChoice, sneekChoice, Hooktype, fix002, returnToChoice);
|
||||
gamepatches(videoChoice, videoPatchDolChoice, aspectChoice, languageChoice, countrystrings, viChoice, sneekChoice, Hooktype, fix002, returnToChoice);
|
||||
|
||||
//! Load Code handler if needed
|
||||
load_handler(Hooktype, WiirdDebugger, Settings.WiirdDebuggerPause);
|
||||
@ -416,7 +417,7 @@ int GameBooter::BootDIOSMIOS(struct discHdr *gameHdr)
|
||||
|
||||
GameCFG * game_cfg = GameSettings.GetGameCFG(gameHdr->id);
|
||||
u8 videoChoice = game_cfg->video == INHERIT ? Settings.videomode : game_cfg->video;
|
||||
u8 languageChoice = game_cfg->language == INHERIT ? 6 : game_cfg->language;
|
||||
s8 languageChoice = game_cfg->language == INHERIT ? Settings.language - 1 : game_cfg->language;
|
||||
u8 ocarinaChoice = game_cfg->ocarina == INHERIT ? Settings.ocarina : game_cfg->ocarina;
|
||||
u8 dmlVideoChoice = game_cfg->DMLVideo == INHERIT ? Settings.DMLVideo : game_cfg->DMLVideo;
|
||||
u8 dmlProgressivePatch = game_cfg->DMLProgPatch == INHERIT ? Settings.DMLProgPatch : game_cfg->DMLProgPatch;
|
||||
@ -627,7 +628,10 @@ int GameBooter::BootDIOSMIOS(struct discHdr *gameHdr)
|
||||
if(dmlWidescreenChoice)
|
||||
dml_config->Config |= DML_CFG_FORCE_WIDE;
|
||||
if(dmlScreenshotChoice)
|
||||
{
|
||||
dml_config->Config |= DML_CFG_SCREENSHOT;
|
||||
dml_config->Config |= DML_CFG_PADHOOK;
|
||||
}
|
||||
if(bootDisc2 && IosLoader::GetDMLVersion() >= DML_VERSION_DM_2_6_0)
|
||||
dml_config->Config |= DML_CFG_BOOT_DISC2;
|
||||
|
||||
@ -646,8 +650,9 @@ int GameBooter::BootDIOSMIOS(struct discHdr *gameHdr)
|
||||
}
|
||||
else // Force user choice
|
||||
{
|
||||
dml_config->VideoMode = DML_VID_FORCE;
|
||||
Disc_SelectVMode(videoChoice, false, &dml_config->VideoMode);
|
||||
if(!(dml_config->VideoMode & DML_VID_DML_AUTO))
|
||||
dml_config->VideoMode |= DML_VID_FORCE;
|
||||
}
|
||||
Disc_SetVMode();
|
||||
}
|
||||
@ -664,43 +669,10 @@ int GameBooter::BootDIOSMIOS(struct discHdr *gameHdr)
|
||||
gprintf("DML: setup configuration 0x%X\n", dml_config->Config);
|
||||
gprintf("DML: setup video mode 0x%X\n", dml_config->VideoMode);
|
||||
|
||||
syssram *sram = __SYS_LockSram();
|
||||
if(dml_config->VideoMode & DML_VID_FORCE_PROG || dml_config->VideoMode & DML_VID_PROG_PATCH) {
|
||||
sram->flags |= 0x80; //set progressive flag
|
||||
}
|
||||
else {
|
||||
sram->flags &= 0x7F; //clear progressive flag
|
||||
}
|
||||
// setup video mode flags
|
||||
if (*Video_Mode == VI_NTSC) {
|
||||
sram->flags &= ~1; // Clear bit 0 to set the video mode to NTSC
|
||||
sram->ntd &= 0xBF; //clear pal60 flag
|
||||
}
|
||||
else {
|
||||
sram->flags |= 1; // Set bit 0 to set the video mode to PAL
|
||||
sram->ntd |= 0x40; //set pal60 flag
|
||||
}
|
||||
|
||||
// Set language flag
|
||||
if(languageChoice <= GC_DUTCH)
|
||||
{
|
||||
sram->lang = languageChoice;
|
||||
}
|
||||
else // console default
|
||||
{
|
||||
sram->lang = GC_ENGLISH;
|
||||
if(CONF_GetLanguage() >= CONF_LANG_ENGLISH && CONF_GetLanguage() <= CONF_LANG_DUTCH)
|
||||
{
|
||||
sram->lang = CONF_GetLanguage()-1;
|
||||
}
|
||||
}
|
||||
gprintf("DML: setup language 0x%X\n", sram->lang);
|
||||
// Set Sram flags
|
||||
bool progressive = (dml_config->VideoMode & DML_VID_FORCE_PROG) || (dml_config->VideoMode & DML_VID_PROG_PATCH);
|
||||
PatchSram(languageChoice, true, progressive);
|
||||
|
||||
__SYS_UnlockSram(1); // 1 -> write changes
|
||||
|
||||
while(!__SYS_SyncSram())
|
||||
usleep(100);
|
||||
|
||||
/* NTSC-J Patch */ // Thanks to Fix94
|
||||
u8 *diskid = (u8 *) Disc_ID;
|
||||
if(dmlJPNPatchChoice && diskid[3] == 'J')
|
||||
@ -713,16 +685,17 @@ int GameBooter::BootDIOSMIOS(struct discHdr *gameHdr)
|
||||
|
||||
int GameBooter::BootDevolution(struct discHdr *gameHdr)
|
||||
{
|
||||
const char *RealPath = GCGames::Instance()->GetPath((const char *) gameHdr->id);
|
||||
|
||||
// check the settings
|
||||
GameCFG * game_cfg = GameSettings.GetGameCFG(gameHdr->id);
|
||||
u8 videoChoice = game_cfg->video == INHERIT ? Settings.videomode : game_cfg->video;
|
||||
int languageChoice = game_cfg->language == INHERIT ? Settings.language -1 : game_cfg->language;
|
||||
u8 devoMCEmulation = game_cfg->DEVOMCEmulation == INHERIT ? Settings.DEVOMCEmulation : game_cfg->DEVOMCEmulation;
|
||||
u8 devoActivityLEDChoice = game_cfg->DEVOActivityLED == INHERIT ? Settings.DEVOActivityLED : game_cfg->DEVOActivityLED;
|
||||
u8 devoWidescreenChoice = game_cfg->DEVOWidescreen == INHERIT ? Settings.DEVOWidescreen : game_cfg->DEVOWidescreen;
|
||||
u8 devoFZeroAXChoice = game_cfg->DEVOFZeroAX == INHERIT ? Settings.DEVOFZeroAX : game_cfg->DEVOFZeroAX;
|
||||
u8 devoTimerFixChoice = game_cfg->DEVOTimerFix == INHERIT ? Settings.DEVOTimerFix : game_cfg->DEVOTimerFix;
|
||||
|
||||
u8 devoDButtonsChoice = game_cfg->DEVODButtons == INHERIT ? Settings.DEVODButtons : game_cfg->DEVODButtons;
|
||||
|
||||
if(gameHdr->type == TYPE_GAME_GC_DISC)
|
||||
{
|
||||
@ -736,6 +709,12 @@ int GameBooter::BootDevolution(struct discHdr *gameHdr)
|
||||
return 0;
|
||||
}
|
||||
|
||||
if(strncmp(DeviceHandler::PathToFSName(RealPath), "FAT", 3) != 0)
|
||||
{
|
||||
WindowPrompt(tr("Error:"), tr("To run GameCube games with Devolution you need to use a FAT32 partition."), tr("OK"));
|
||||
return 0;
|
||||
}
|
||||
|
||||
// Check if Devolution is available
|
||||
u8 *loader_bin = NULL;
|
||||
int DEVO_version = 0;
|
||||
@ -777,10 +756,6 @@ int GameBooter::BootDevolution(struct discHdr *gameHdr)
|
||||
// Devolution config
|
||||
DEVO_CGF *devo_config = (DEVO_CGF*)0x80000020;
|
||||
|
||||
|
||||
// Get the Game's data
|
||||
const char *RealPath = GCGames::Instance()->GetPath((const char *) gameHdr->id);
|
||||
|
||||
char disc1[100];
|
||||
char disc2[100];
|
||||
bool multiDisc = false;
|
||||
@ -834,6 +809,8 @@ int GameBooter::BootDevolution(struct discHdr *gameHdr)
|
||||
devo_config->options |= DEVO_CFG_FZERO_AX;
|
||||
if(devoTimerFixChoice && DEVO_version >= 196)
|
||||
devo_config->options |= DEVO_CFG_TIMER_FIX;
|
||||
if(devoDButtonsChoice && DEVO_version >= 200)
|
||||
devo_config->options |= DEVO_CFG_D_BUTTONS;
|
||||
|
||||
// check memory card
|
||||
if(devoMCEmulation == DEVO_MC_OFF)
|
||||
@ -898,6 +875,8 @@ int GameBooter::BootDevolution(struct discHdr *gameHdr)
|
||||
Disc_SelectVMode(videoChoice, true, NULL);
|
||||
Disc_SetVMode();
|
||||
|
||||
// Set sram flags
|
||||
PatchSram(languageChoice, false, false);
|
||||
|
||||
// flush disc ID and Devolution config out to memory
|
||||
DCFlushRange(lowmem, 64);
|
||||
@ -917,3 +896,69 @@ int GameBooter::BootDevolution(struct discHdr *gameHdr)
|
||||
_CPU_ISR_Restore( cpu_isr );
|
||||
return 0;
|
||||
}
|
||||
|
||||
void GameBooter::PatchSram(int language, bool patchVideoMode, bool progressive)
|
||||
{
|
||||
syssram *sram = __SYS_LockSram();
|
||||
|
||||
// Setup language flag
|
||||
if(language >= GC_ENGLISH && language <= GC_DUTCH)
|
||||
{
|
||||
sram->lang = language;
|
||||
}
|
||||
else // console default
|
||||
{
|
||||
sram->lang = GC_ENGLISH;
|
||||
if(CONF_GetLanguage() >= CONF_LANG_ENGLISH && CONF_GetLanguage() <= CONF_LANG_DUTCH)
|
||||
{
|
||||
sram->lang = CONF_GetLanguage()-1;
|
||||
}
|
||||
}
|
||||
gprintf("Sram: Language set to 0x%X\n", sram->lang);
|
||||
|
||||
// Setup Video mode flags
|
||||
if(patchVideoMode)
|
||||
{
|
||||
if(progressive)
|
||||
sram->flags |= 0x80; //set progressive flag
|
||||
else
|
||||
sram->flags &= 0x7F; //clear progressive flag
|
||||
|
||||
if (*Video_Mode == VI_NTSC)
|
||||
{
|
||||
sram->flags &= ~1; // Clear bit 0 to set the video mode to NTSC
|
||||
sram->ntd &= 0xBF; //clear pal60 flag
|
||||
}
|
||||
else
|
||||
{
|
||||
sram->flags |= 1; // Set bit 0 to set the video mode to PAL
|
||||
sram->ntd |= 0x40; //set pal60 flag
|
||||
}
|
||||
|
||||
gprintf("Sram: flags set to 0x%X\n", sram->flags);
|
||||
gprintf("Sram: ntd set to 0x%X\n", sram->ntd);
|
||||
}
|
||||
|
||||
__SYS_UnlockSram(1); // 1 -> write changes
|
||||
while(!__SYS_SyncSram())
|
||||
usleep(100);
|
||||
|
||||
|
||||
// Log Sram's first 20 bytes
|
||||
/* char srambuff[64];
|
||||
sram = __SYS_LockSram();
|
||||
memcpy(srambuff, sram, 20);
|
||||
__SYS_UnlockSram(0);
|
||||
|
||||
int i;
|
||||
gprintf("SRAM Hex View\n\n");
|
||||
gprintf(" \t\t 0 1 2 3 4 5 6 7 8 9 A B C D E F\n");
|
||||
for (i=0;i<20;i++)
|
||||
{
|
||||
if( (i%16) == 0 )
|
||||
gprintf("\n0x%d0h\t\t", i/16);
|
||||
|
||||
gprintf("%02X ", srambuff[i]);
|
||||
}
|
||||
*/
|
||||
}
|
||||
|
@ -33,6 +33,7 @@ class GameBooter
|
||||
static void ShutDownDevices(int gameUSBPort);
|
||||
static int BootDIOSMIOS(struct discHdr *gameHdr);
|
||||
static int BootDevolution(struct discHdr *gameHdr);
|
||||
static void PatchSram(int language, bool patchVideoMode, bool progressive);
|
||||
};
|
||||
|
||||
#endif
|
||||
|
@ -28,29 +28,29 @@ extern u32 AppEntrypoint;
|
||||
/* Disc pointers */
|
||||
static u32 *buffer = (u32 *) 0x93000000;
|
||||
static u8 *diskid = (u8 *) Disc_ID;
|
||||
static GXRModeObj *rmode = NULL;
|
||||
static u32 rmode_reg = 0;
|
||||
GXRModeObj *rmode = NULL;
|
||||
|
||||
void Disc_SetLowMem(void)
|
||||
{
|
||||
/* Setup low memory */
|
||||
*Sys_Magic = 0x0D15EA5E; // Standard Boot Code
|
||||
*Sys_Version = 0x00000001; // Version
|
||||
*Arena_L = 0x00000000; // Arena Low
|
||||
*BI2 = 0x817E5480; // BI2
|
||||
*Bus_Speed = 0x0E7BE2C0; // Console Bus Speed
|
||||
*CPU_Speed = 0x2B73A840; // Console CPU Speed
|
||||
*Sys_Magic = 0x0D15EA5E; // Standard Boot Code
|
||||
*Sys_Version = 0x00000001; // Version
|
||||
*Arena_L = 0x00000000; // Arena Low
|
||||
*BI2 = 0x817E5480; // BI2
|
||||
*Bus_Speed = 0x0E7BE2C0; // Console Bus Speed
|
||||
*CPU_Speed = 0x2B73A840; // Console CPU Speed
|
||||
|
||||
/* Setup low memory */
|
||||
*Assembler = 0x38A00040; // Assembler
|
||||
*(u32 *) 0x800000E4 = 0x80431A80;
|
||||
*Dev_Debugger = 0x81800000; // Dev Debugger Monitor Address
|
||||
*Simulated_Mem = 0x01800000; // Simulated Memory Size
|
||||
*(vu32 *) 0xCD00643C = 0x00000000; // 32Mhz on Bus
|
||||
*Assembler = 0x38A00040; // Assembler
|
||||
*(u32 *) 0x800000E4 = 0x80431A80; // OS_Thread
|
||||
*Dev_Debugger = 0x81800000; // Dev Debugger Monitor Address
|
||||
*Simulated_Mem = 0x01800000; // Simulated Memory Size
|
||||
*(vu32 *) 0xCD00643C = 0x00000000; // 32Mhz on Bus
|
||||
|
||||
int iosVer = IOS_GetVersion();
|
||||
if(iosVer != 222 && iosVer != 223 && iosVer != 224 && iosVer != 225 && IOS_GetRevision() >= 18)
|
||||
*GameID_Address = 0x80000000; // Game ID Address
|
||||
*GameID_Address = 0x80000000; // Game ID Address
|
||||
|
||||
/* Copy disc ID */
|
||||
memcpy((void *) Online_Check, (void *) Disc_ID, 4);
|
||||
@ -92,7 +92,7 @@ void Disc_SelectVMode(u8 videoselected, bool devolution, u32 *dml_VideoMode)
|
||||
if(dml_VideoMode)
|
||||
{
|
||||
rmode = progressive ? &TVEurgb60Hz480Prog : (PAL60 ? &TVEurgb60Hz480IntDf : &TVPal528IntDf);
|
||||
*dml_VideoMode |= progressive ? DML_VID_FORCE_PROG : (PAL60 ? DML_VID_FORCE_PAL60 : DML_VID_FORCE_PAL50);
|
||||
*dml_VideoMode = progressive ? DML_VID_FORCE_PROG : (PAL60 ? DML_VID_FORCE_PAL60 : DML_VID_FORCE_PAL50);
|
||||
}
|
||||
break;
|
||||
|
||||
@ -102,7 +102,7 @@ void Disc_SelectVMode(u8 videoselected, bool devolution, u32 *dml_VideoMode)
|
||||
|
||||
case CONF_VIDEO_NTSC:
|
||||
rmode_reg = VI_NTSC;
|
||||
if(dml_VideoMode) *dml_VideoMode |= DML_VID_FORCE_NTSC;
|
||||
if(dml_VideoMode) *dml_VideoMode = DML_VID_FORCE_NTSC;
|
||||
break;
|
||||
}
|
||||
|
||||
@ -128,7 +128,7 @@ void Disc_SelectVMode(u8 videoselected, bool devolution, u32 *dml_VideoMode)
|
||||
{
|
||||
rmode_reg = PAL60 ? VI_EURGB60 : VI_PAL;
|
||||
rmode = progressive ? &TVEurgb60Hz480Prog : (PAL60 ? &TVEurgb60Hz480IntDf : &TVPal528IntDf);
|
||||
*dml_VideoMode |= progressive ? DML_VID_FORCE_PROG : (PAL60 ? DML_VID_FORCE_PAL60 : DML_VID_FORCE_PAL50);
|
||||
*dml_VideoMode = progressive ? DML_VID_FORCE_PROG : (PAL60 ? DML_VID_FORCE_PAL60 : DML_VID_FORCE_PAL50);
|
||||
}
|
||||
break;
|
||||
// NTSC
|
||||
@ -143,7 +143,7 @@ void Disc_SelectVMode(u8 videoselected, bool devolution, u32 *dml_VideoMode)
|
||||
{
|
||||
rmode_reg = VI_NTSC;
|
||||
rmode = progressive ? &TVNtsc480Prog : &TVNtsc480IntDf;
|
||||
*dml_VideoMode |= DML_VID_FORCE_NTSC;
|
||||
*dml_VideoMode = DML_VID_FORCE_NTSC;
|
||||
}
|
||||
break;
|
||||
default:
|
||||
@ -154,7 +154,7 @@ void Disc_SelectVMode(u8 videoselected, bool devolution, u32 *dml_VideoMode)
|
||||
case VIDEO_MODE_PAL50: // PAL50
|
||||
rmode = &TVPal528IntDf;
|
||||
rmode_reg = VI_PAL;
|
||||
if(dml_VideoMode) *dml_VideoMode |= DML_VID_FORCE_PAL50;
|
||||
if(dml_VideoMode) *dml_VideoMode = DML_VID_FORCE_PAL50;
|
||||
break;
|
||||
case VIDEO_MODE_PAL60: // PAL60
|
||||
rmode = progressive ? &TVNtsc480Prog : &TVEurgb60Hz480IntDf;
|
||||
@ -162,13 +162,13 @@ void Disc_SelectVMode(u8 videoselected, bool devolution, u32 *dml_VideoMode)
|
||||
if(dml_VideoMode)
|
||||
{
|
||||
rmode = progressive ? &TVEurgb60Hz480Prog : &TVEurgb60Hz480IntDf;
|
||||
*dml_VideoMode |= progressive ? DML_VID_FORCE_PROG : DML_VID_FORCE_PAL60;
|
||||
*dml_VideoMode = progressive ? DML_VID_FORCE_PROG : DML_VID_FORCE_PAL60;
|
||||
}
|
||||
break;
|
||||
case VIDEO_MODE_NTSC: // NTSC
|
||||
rmode = progressive ? &TVNtsc480Prog : &TVNtsc480IntDf;
|
||||
rmode_reg = VI_NTSC;
|
||||
if(dml_VideoMode) *dml_VideoMode |= progressive ? DML_VID_FORCE_PROG : DML_VID_FORCE_NTSC;
|
||||
if(dml_VideoMode) *dml_VideoMode = progressive ? DML_VID_FORCE_PROG : DML_VID_FORCE_NTSC;
|
||||
break;
|
||||
case VIDEO_MODE_PAL480P:
|
||||
rmode = &TVNtsc480Prog;
|
||||
@ -176,13 +176,13 @@ void Disc_SelectVMode(u8 videoselected, bool devolution, u32 *dml_VideoMode)
|
||||
if(dml_VideoMode)
|
||||
{
|
||||
rmode = &TVEurgb60Hz480Prog;
|
||||
*dml_VideoMode |= DML_VID_FORCE_PROG | DML_VID_PROG_PATCH;
|
||||
*dml_VideoMode = DML_VID_FORCE_PROG | DML_VID_PROG_PATCH;
|
||||
}
|
||||
break;
|
||||
case VIDEO_MODE_NTSC480P:
|
||||
rmode = &TVNtsc480Prog;
|
||||
rmode_reg = VI_NTSC;
|
||||
if(dml_VideoMode) *dml_VideoMode |= DML_VID_FORCE_PROG | DML_VID_PROG_PATCH;
|
||||
if(dml_VideoMode) *dml_VideoMode = DML_VID_FORCE_PROG | DML_VID_PROG_PATCH;
|
||||
break;
|
||||
case VIDEO_MODE_SYSDEFAULT: // AUTO PATCH TO SYSTEM
|
||||
break;
|
||||
@ -205,6 +205,8 @@ void Disc_SetVMode(void)
|
||||
VIDEO_WaitVSync();
|
||||
if (rmode->viTVMode & VI_NON_INTERLACE)
|
||||
VIDEO_WaitVSync();
|
||||
else while(VIDEO_GetNextField())
|
||||
VIDEO_WaitVSync();
|
||||
}
|
||||
|
||||
void __Disc_SetTime(void)
|
||||
|
@ -67,6 +67,8 @@ extern "C"
|
||||
void Disc_SelectVMode(u8 videoselected, bool devolution, u32 *dml_VideoMode);
|
||||
void Disc_SetVMode(void);
|
||||
s32 Disc_JumpToEntrypoint(s32 hooktype, u32 dolparameter);
|
||||
|
||||
extern GXRModeObj *rmode;
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
|
@ -11,6 +11,7 @@ void rockout(struct discHdr *header)
|
||||
HaltGui();
|
||||
|
||||
if (!rockoutSet && header &&
|
||||
header->id[0] != 'W' && header->id[0] != 'G' && // Exclude Wiiware and GameCube games
|
||||
( strcasestr(GameTitles.GetTitle(header), "guitar")
|
||||
|| strcasestr(GameTitles.GetTitle(header), "band")
|
||||
|| strcasestr(GameTitles.GetTitle(header), "rock")))
|
||||
|
Loading…
Reference in New Issue
Block a user