* Added WiiU pro controller support.

Some menus or buttons might not work. (Thanks Airline38)
  L3+R3 to shutdown the pad.
* Added PS3 controller support over USB, requires loader's
  IOS set to IOS58. Button mapped as Classic Controller.
* Added a WiiU Auto aspect fixer based on current WiiU setting.
* Added a WiiU Widescreen switcher in Features menu.


Nintendont:
* Fixed detection for nintendont v2.263+ issue 2294
* Added a WiiU Widescreen setting. issue 2296
  Default value based on current WiiU aspect ratio settings.
* Added a setting to choose Nincfg.bin behavior at launch issue 2297
  Always delete; Always create; No change. 
* Removed unused game specific settings section (MGS2)
* Renamed MCEmu ON setting to Multi
* Added Disc launching feature
* Added user prompt to select where MCEmu should be
  located when using Disc launching.
  The device is auto-detected if Gamecube source setting 
  is set to SD or Main(USB) only.
* Changed prompt type to warning if Nintendont version
  detection fails.


Thanks to Airline38 for the WiiU pro base patch.
This commit is contained in:
Cyan 2015-01-04 20:22:06 +00:00
parent 6ae72b2487
commit db6517256e
57 changed files with 1096 additions and 136 deletions

View File

@ -2,8 +2,8 @@
<app version="1">
<name> USB Loader GX</name>
<coder>USB Loader GX Team</coder>
<version>3.0 r1233</version>
<release_date>20141110211657</release_date>
<version>3.0 r1235</version>
<release_date>20150104200036</release_date>
<!-- // remove this line to enable arguments
<arguments>
<arg>--ios=250</arg>

View File

@ -5,7 +5,7 @@ msgid ""
msgstr ""
"Project-Id-Version: USB Loader GX\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2014-11-10 19:26+0100\n"
"POT-Creation-Date: 2015-01-04 21:00+0100\n"
"PO-Revision-Date: 2009-10-01 01:00+0200\n"
"Last-Translator: David Jelinek (djelinek@hotmail.com) e->e,r->r,u->u, c->c \n"
"Language-Team: r1056 - last version on http://djelinek.sweb.cz/_USBLoderGX/czech.lang \n"
@ -1477,6 +1477,9 @@ msgstr "Nebyl nalezen oddíl WBFS nebo FAT/NTFS/EXT"
msgid "No Wiinnertag.xml found in the config path. Do you want an example file created?"
msgstr ""
msgid "No change"
msgstr ""
msgid "No cheats were selected! Should the GCT file be deleted?"
msgstr ""
@ -1570,6 +1573,9 @@ msgstr ""
msgid "ON"
msgstr "Zapnuto"
msgid "ON (Multi)"
msgstr ""
msgid "OSReport"
msgstr ""
@ -1753,6 +1759,9 @@ msgstr "Vibrace"
msgid "SChinese"
msgstr "Cínsky"
msgid "SD"
msgstr ""
msgid "SD Card could not be accessed."
msgstr ""
@ -1822,6 +1831,9 @@ msgstr "Nastavit vyhledávací filtr"
msgid "Settings"
msgstr "Nastavení"
msgid "Settings File"
msgstr ""
msgid "Show Categories"
msgstr ""
@ -2074,6 +2086,9 @@ msgstr "Popisky"
msgid "Transfer failed"
msgstr "Prenos selhal"
msgid "USB"
msgstr ""
msgid "USB Device not initialized."
msgstr ""
@ -2213,6 +2228,9 @@ msgstr "Co si prejete smazat pro tento titul:"
msgid "What to extract from NAND?"
msgstr ""
msgid "Where do you want MCEmu to be located?"
msgstr ""
msgid "Where should the game be installed to?"
msgstr ""
@ -2240,6 +2258,9 @@ msgstr ""
msgid "WiiTDB.xml is up to date."
msgstr ""
msgid "WiiU Widescreen"
msgstr ""
msgid "Wiilight"
msgstr "Wii svetlo"

View File

@ -5,7 +5,7 @@ msgid ""
msgstr ""
"Project-Id-Version: USB Loader GX\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2014-11-10 19:26+0100\n"
"POT-Creation-Date: 2015-01-04 21:00+0100\n"
"PO-Revision-Date: 2009-10-01 01:00+0200\n"
"Last-Translator: Fox888[dk]\n"
"Language-Team: [dk]\n"
@ -1477,6 +1477,9 @@ msgstr "Ingen WBFS eller FAT/NTFS/EXT partition er fundet"
msgid "No Wiinnertag.xml found in the config path. Do you want an example file created?"
msgstr "Ingen Wiinnertag.xml fundet i config stien. Vil du oprette en prøve fil?"
msgid "No change"
msgstr ""
msgid "No cheats were selected! Should the GCT file be deleted?"
msgstr ""
@ -1570,6 +1573,9 @@ msgstr ""
msgid "ON"
msgstr "Til"
msgid "ON (Multi)"
msgstr ""
msgid "OSReport"
msgstr ""
@ -1753,6 +1759,9 @@ msgstr "Vibration"
msgid "SChinese"
msgstr "Kinesisk (std.)"
msgid "SD"
msgstr ""
msgid "SD Card could not be accessed."
msgstr ""
@ -1822,6 +1831,9 @@ msgstr "Søgefilter"
msgid "Settings"
msgstr "Indstillinger"
msgid "Settings File"
msgstr ""
msgid "Show Categories"
msgstr "Vis kategorier"
@ -2074,6 +2086,9 @@ msgstr "Værktøjstips"
msgid "Transfer failed"
msgstr "Overførelse fejlede"
msgid "USB"
msgstr ""
msgid "USB Device not initialized."
msgstr ""
@ -2213,6 +2228,9 @@ msgstr "Hvad skal der slettes for dette spil:"
msgid "What to extract from NAND?"
msgstr "Hvad skal der udpakkes fra NAND?"
msgid "Where do you want MCEmu to be located?"
msgstr ""
msgid "Where should the game be installed to?"
msgstr ""
@ -2240,6 +2258,9 @@ msgstr ""
msgid "WiiTDB.xml is up to date."
msgstr "WiiTDB.xml er opdateret."
msgid "WiiU Widescreen"
msgstr ""
msgid "Wiilight"
msgstr ""

View File

@ -5,7 +5,7 @@ msgid ""
msgstr ""
"Project-Id-Version: USB Loader GX\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2014-11-10 19:26+0100\n"
"POT-Creation-Date: 2015-01-04 21:00+0100\n"
"PO-Revision-Date: 2009-10-01 01:00+0200\n"
"Last-Translator: \n"
"Language-Team: \n"
@ -1477,6 +1477,9 @@ msgstr "Geen WBFS of FAT/NTFS/EXT partitie gevonden"
msgid "No Wiinnertag.xml found in the config path. Do you want an example file created?"
msgstr "Geen Wiinertag.xml gevonden in het configuratie pad. Wil je een voorbeeld bestand maken?"
msgid "No change"
msgstr ""
msgid "No cheats were selected! Should the GCT file be deleted?"
msgstr "Geen cheats geselecteerd! Moet het GCT bestand worden verwijderd?"
@ -1570,6 +1573,9 @@ msgstr ""
msgid "ON"
msgstr "Aan"
msgid "ON (Multi)"
msgstr ""
msgid "OSReport"
msgstr ""
@ -1753,6 +1759,9 @@ msgstr "Trilfunctie"
msgid "SChinese"
msgstr "SChinees"
msgid "SD"
msgstr ""
msgid "SD Card could not be accessed."
msgstr "Geen toegang tot SD kaart."
@ -1822,6 +1831,9 @@ msgstr "Zoekfilter instellen"
msgid "Settings"
msgstr "Instellingen"
msgid "Settings File"
msgstr ""
msgid "Show Categories"
msgstr "Toon categorieën"
@ -2074,6 +2086,9 @@ msgstr "Hulpballonnen"
msgid "Transfer failed"
msgstr "Overdracht mislukt."
msgid "USB"
msgstr ""
msgid "USB Device not initialized."
msgstr ""
@ -2213,6 +2228,9 @@ msgstr "Wat moet er verwijderd worden voor deze spel titel:"
msgid "What to extract from NAND?"
msgstr "Wat uitpakken van NAND?"
msgid "Where do you want MCEmu to be located?"
msgstr ""
msgid "Where should the game be installed to?"
msgstr "Waar moet het spel naar geïnstelleerd worden?"
@ -2240,6 +2258,9 @@ msgstr ""
msgid "WiiTDB.xml is up to date."
msgstr "WiiTDB.xml is up to date."
msgid "WiiU Widescreen"
msgstr ""
msgid "Wiilight"
msgstr "WiiLight"

View File

@ -5,7 +5,7 @@ msgid ""
msgstr ""
"Project-Id-Version: USB Loader GX\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2014-11-10 19:26+0100\n"
"POT-Creation-Date: 2015-01-04 21:00+0100\n"
"PO-Revision-Date: 2009-10-01 01:00+0200\n"
"Last-Translator: \n"
"Language-Team: \n"
@ -1477,6 +1477,9 @@ msgstr ""
msgid "No Wiinnertag.xml found in the config path. Do you want an example file created?"
msgstr ""
msgid "No change"
msgstr ""
msgid "No cheats were selected! Should the GCT file be deleted?"
msgstr ""
@ -1570,6 +1573,9 @@ msgstr ""
msgid "ON"
msgstr ""
msgid "ON (Multi)"
msgstr ""
msgid "OSReport"
msgstr ""
@ -1753,6 +1759,9 @@ msgstr ""
msgid "SChinese"
msgstr ""
msgid "SD"
msgstr ""
msgid "SD Card could not be accessed."
msgstr ""
@ -1822,6 +1831,9 @@ msgstr ""
msgid "Settings"
msgstr ""
msgid "Settings File"
msgstr ""
msgid "Show Categories"
msgstr ""
@ -2074,6 +2086,9 @@ msgstr ""
msgid "Transfer failed"
msgstr ""
msgid "USB"
msgstr ""
msgid "USB Device not initialized."
msgstr ""
@ -2213,6 +2228,9 @@ msgstr ""
msgid "What to extract from NAND?"
msgstr ""
msgid "Where do you want MCEmu to be located?"
msgstr ""
msgid "Where should the game be installed to?"
msgstr ""
@ -2240,6 +2258,9 @@ msgstr ""
msgid "WiiTDB.xml is up to date."
msgstr ""
msgid "WiiU Widescreen"
msgstr ""
msgid "Wiilight"
msgstr ""

View File

@ -5,7 +5,7 @@ msgid ""
msgstr ""
"Project-Id-Version: USB Loader GX\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2014-11-10 19:26+0100\n"
"POT-Creation-Date: 2015-01-04 21:00+0100\n"
"PO-Revision-Date: 2009-10-01 01:00+0200\n"
"Last-Translator: c64rmx\n"
"Language-Team: \n"
@ -1477,6 +1477,9 @@ msgstr ""
msgid "No Wiinnertag.xml found in the config path. Do you want an example file created?"
msgstr ""
msgid "No change"
msgstr ""
msgid "No cheats were selected! Should the GCT file be deleted?"
msgstr ""
@ -1570,6 +1573,9 @@ msgstr ""
msgid "ON"
msgstr "Päälle"
msgid "ON (Multi)"
msgstr ""
msgid "OSReport"
msgstr ""
@ -1753,6 +1759,9 @@ msgstr "Värinä"
msgid "SChinese"
msgstr "SKiina"
msgid "SD"
msgstr ""
msgid "SD Card could not be accessed."
msgstr ""
@ -1822,6 +1831,9 @@ msgstr ""
msgid "Settings"
msgstr "Asetukset"
msgid "Settings File"
msgstr ""
msgid "Show Categories"
msgstr ""
@ -2074,6 +2086,9 @@ msgstr "Vinkit"
msgid "Transfer failed"
msgstr ""
msgid "USB"
msgstr ""
msgid "USB Device not initialized."
msgstr ""
@ -2213,6 +2228,9 @@ msgstr ""
msgid "What to extract from NAND?"
msgstr ""
msgid "Where do you want MCEmu to be located?"
msgstr ""
msgid "Where should the game be installed to?"
msgstr ""
@ -2240,6 +2258,9 @@ msgstr ""
msgid "WiiTDB.xml is up to date."
msgstr ""
msgid "WiiU Widescreen"
msgstr ""
msgid "Wiilight"
msgstr ""

View File

@ -1,11 +1,11 @@
# USB Loader GX language source file.
# French.lang - r1233
# French.lang - r1235
# don't delete/change this line (é).
msgid ""
msgstr ""
"Project-Id-Version: USB Loader GX\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2014-11-10 19:26+0100\n"
"POT-Creation-Date: 2015-01-04 21:00+0100\n"
"PO-Revision-Date: 2009-10-01 01:00+0200\n"
"Last-Translator: Cyan\n"
"Language-Team: Badablek, Amour, ikya, Cyan & Kin8\n"
@ -1477,6 +1477,9 @@ msgstr "Partition WBFS ou FAT/NTFS/EXT non trouvée"
msgid "No Wiinnertag.xml found in the config path. Do you want an example file created?"
msgstr "Fichier Wiinnertag.xml non trouvé. Voulez-vous créer un fichier d'exemple ?"
msgid "No change"
msgstr "Aucune modification"
msgid "No cheats were selected! Should the GCT file be deleted?"
msgstr "Auncun code-triche sélectionné ! Voulez-vous supprimer le fichier GCT ?"
@ -1570,6 +1573,9 @@ msgstr ""
msgid "ON"
msgstr "Actif"
msgid "ON (Multi)"
msgstr "Actif (Multi)"
msgid "OSReport"
msgstr ""
@ -1753,6 +1759,9 @@ msgstr "Vibrations"
msgid "SChinese"
msgstr "Chinois simplifié"
msgid "SD"
msgstr ""
msgid "SD Card could not be accessed."
msgstr "Impossible d'accéder à la carte SD."
@ -1822,6 +1831,9 @@ msgstr "Filtre de Recherche"
msgid "Settings"
msgstr "Paramètres"
msgid "Settings File"
msgstr "Fichier de configs"
msgid "Show Categories"
msgstr "Afficher les catégories"
@ -2074,6 +2086,9 @@ msgstr "Info-bulles"
msgid "Transfer failed"
msgstr "Échec du transfert"
msgid "USB"
msgstr ""
msgid "USB Device not initialized."
msgstr "Périphérique USB non initialisé."
@ -2213,6 +2228,9 @@ msgstr "Que voulez-vous supprimer pour ce titre?"
msgid "What to extract from NAND?"
msgstr "Que voulez-vous extraire de la NAND ?"
msgid "Where do you want MCEmu to be located?"
msgstr ""
msgid "Where should the game be installed to?"
msgstr "Où installer ce jeu ?"
@ -2240,6 +2258,9 @@ msgstr ""
msgid "WiiTDB.xml is up to date."
msgstr "WiiTDB.xml est à jour."
msgid "WiiU Widescreen"
msgstr ""
msgid "Wiilight"
msgstr "Illumination Wii"

View File

@ -5,7 +5,7 @@ msgid ""
msgstr ""
"Project-Id-Version: USB Loader GX\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2014-11-10 19:26+0100\n"
"POT-Creation-Date: 2015-01-04 21:00+0100\n"
"PO-Revision-Date: 2010-07-03 17:35-0800\n"
"Last-Translator: Sabykos\n"
"Language-Team: Bertilax, Snoozer, wishmasterf, ZEN.13, TheRealVisitor\n"
@ -1477,6 +1477,9 @@ msgstr "Keine WBFS oder FAT/NTFS/EXT Partition vorhanden"
msgid "No Wiinnertag.xml found in the config path. Do you want an example file created?"
msgstr "Es wurde keine Wiinnertag.xml im Konfigurationspfad gefunden. Soll eine Beispieldatei angelegt werden?"
msgid "No change"
msgstr ""
msgid "No cheats were selected! Should the GCT file be deleted?"
msgstr "Es wurden keine Cheats ausgewählt. Soll die GCT Datei gelöscht werden?"
@ -1570,6 +1573,9 @@ msgstr "OK"
msgid "ON"
msgstr "AN"
msgid "ON (Multi)"
msgstr ""
msgid "OSReport"
msgstr ""
@ -1753,6 +1759,9 @@ msgstr "Rumble"
msgid "SChinese"
msgstr "Vereinfachtes Chinesisch"
msgid "SD"
msgstr ""
msgid "SD Card could not be accessed."
msgstr "Auf die SD konnte nicht zugegriffen werden."
@ -1822,6 +1831,9 @@ msgstr "Setze Suchfilter"
msgid "Settings"
msgstr "Einstellungen"
msgid "Settings File"
msgstr ""
msgid "Show Categories"
msgstr "Zeige Kategorien"
@ -2074,6 +2086,9 @@ msgstr "Quickinfo"
msgid "Transfer failed"
msgstr "Transfer fehlgeschlagen"
msgid "USB"
msgstr ""
msgid "USB Device not initialized."
msgstr "USB Gerät nicht initialisiert."
@ -2213,6 +2228,9 @@ msgstr "Was sollte bei diesem Spiel gelöscht werden:"
msgid "What to extract from NAND?"
msgstr "Was soll aus dem NAND kopiert werden?"
msgid "Where do you want MCEmu to be located?"
msgstr ""
msgid "Where should the game be installed to?"
msgstr "Wohin soll das Spiel installiert werden?"
@ -2240,6 +2258,9 @@ msgstr "WiiTDB.xml"
msgid "WiiTDB.xml is up to date."
msgstr "WiiTDB.xml ist aktuell."
msgid "WiiU Widescreen"
msgstr ""
msgid "Wiilight"
msgstr "Wii-Laufwerkslicht"

View File

@ -5,7 +5,7 @@ msgid ""
msgstr ""
"Project-Id-Version: USB Loader GX\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2014-11-10 19:26+0100\n"
"POT-Creation-Date: 2015-01-04 21:00+0100\n"
"Last-Translator: nakata6790\n"
"Language-Team: nakata6790 (aka0107@gmail.com)\n"
"MIME-Version: 1.0\n"
@ -1476,6 +1476,9 @@ msgstr "Äåí âñÝèçêå WBFS Þ FAT/NTFS/EXT partition"
msgid "No Wiinnertag.xml found in the config path. Do you want an example file created?"
msgstr "Äåí âñÝèçêå áñ÷åßï Winnertag.xml. ÈÝëåôå íá äçìéïõñãçèåß Ýíá áñ÷åßï-ðáñÜäåéãìá;"
msgid "No change"
msgstr ""
msgid "No cheats were selected! Should the GCT file be deleted?"
msgstr "Äåí åðéëÝ÷èçêáí cheats! ÈÝëåôå íá äéáãñáöåß ôï áñ÷åßï cheat GCT;"
@ -1569,6 +1572,9 @@ msgstr "OK"
msgid "ON"
msgstr "NAI"
msgid "ON (Multi)"
msgstr ""
msgid "OSReport"
msgstr ""
@ -1752,6 +1758,9 @@ msgstr "Äüíçóç"
msgid "SChinese"
msgstr "ÁðëïðïéçìÝíá êéíåæéêá"
msgid "SD"
msgstr ""
msgid "SD Card could not be accessed."
msgstr "Ìç ðñïóðåëÜóéìç SD."
@ -1821,6 +1830,9 @@ msgstr "Ñýèìéóç áíáæÞôçóçò"
msgid "Settings"
msgstr "Settings"
msgid "Settings File"
msgstr ""
msgid "Show Categories"
msgstr "ÐñïâïëÞ êáôçãïñéþí"
@ -2073,6 +2085,9 @@ msgstr "ÅôéêÝôåò"
msgid "Transfer failed"
msgstr "Áíåðéôõ÷Þò ìåôáöïñÜ áñ÷åßùí"
msgid "USB"
msgstr ""
msgid "USB Device not initialized."
msgstr ""
@ -2212,6 +2227,9 @@ msgstr "Ôé èá èÝëáôå íá äéáãñÜøåôå áðü áõôü ôïí
msgid "What to extract from NAND?"
msgstr "Ôé íá ìåôáöåñèåß áðü ôç ìíÞìç NAND?"
msgid "Where do you want MCEmu to be located?"
msgstr ""
msgid "Where should the game be installed to?"
msgstr "Ðïõ íá åãêáôáóôáèåß ôï ðáé÷íßäé;"
@ -2239,6 +2257,9 @@ msgstr "WiiTDB.xml"
msgid "WiiTDB.xml is up to date."
msgstr "Ôï áñ÷åßï WiiTDB.xml åßíáé åíçìåñùìÝíï"
msgid "WiiU Widescreen"
msgstr ""
msgid "Wiilight"
msgstr "ËÜìðáêé DVD drive ôïõ Wii"

View File

@ -5,7 +5,7 @@ msgid ""
msgstr ""
"Project-Id-Version: USB Loader GX\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2014-11-10 19:26+0100\n"
"POT-Creation-Date: 2015-01-04 21:00+0100\n"
"PO-Revision-Date: 2009-12-29 11:05+0100\n"
"Last-Translator: Springdale\n"
"Language-Team: Tusk, Springdale\n"
@ -1477,6 +1477,9 @@ msgstr ""
msgid "No Wiinnertag.xml found in the config path. Do you want an example file created?"
msgstr ""
msgid "No change"
msgstr ""
msgid "No cheats were selected! Should the GCT file be deleted?"
msgstr ""
@ -1570,6 +1573,9 @@ msgstr ""
msgid "ON"
msgstr "BE"
msgid "ON (Multi)"
msgstr ""
msgid "OSReport"
msgstr ""
@ -1753,6 +1759,9 @@ msgstr "Rezgés"
msgid "SChinese"
msgstr "SKínai"
msgid "SD"
msgstr ""
msgid "SD Card could not be accessed."
msgstr ""
@ -1822,6 +1831,9 @@ msgstr "Keresés"
msgid "Settings"
msgstr "Beállítások"
msgid "Settings File"
msgstr ""
msgid "Show Categories"
msgstr ""
@ -2074,6 +2086,9 @@ msgstr "Súgók"
msgid "Transfer failed"
msgstr ""
msgid "USB"
msgstr ""
msgid "USB Device not initialized."
msgstr ""
@ -2213,6 +2228,9 @@ msgstr ""
msgid "What to extract from NAND?"
msgstr ""
msgid "Where do you want MCEmu to be located?"
msgstr ""
msgid "Where should the game be installed to?"
msgstr ""
@ -2240,6 +2258,9 @@ msgstr ""
msgid "WiiTDB.xml is up to date."
msgstr ""
msgid "WiiU Widescreen"
msgstr ""
msgid "Wiilight"
msgstr "WiiFény"

View File

@ -5,7 +5,7 @@ msgid ""
msgstr ""
"Project-Id-Version: USB Loader GX\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2014-11-10 19:26+0100\n"
"POT-Creation-Date: 2015-01-04 21:00+0100\n"
"PO-Revision-Date: 2011-09-11 12:19+0100\n"
"Last-Translator: xFede\n"
"Language-Team: xFede (fedeanto11@gmail.com)\n"
@ -1477,6 +1477,9 @@ msgstr "Nessuna partizione WBFS o FAT/NTFS/EXT trovata"
msgid "No Wiinnertag.xml found in the config path. Do you want an example file created?"
msgstr "Winnertag.xml non trovato nel percorso specificato. Vuoi creare un file di esempio?"
msgid "No change"
msgstr ""
msgid "No cheats were selected! Should the GCT file be deleted?"
msgstr "Nessun trucco selezionato! Il file GCT deve essere eliminato?"
@ -1570,6 +1573,9 @@ msgstr "OK"
msgid "ON"
msgstr "ON"
msgid "ON (Multi)"
msgstr ""
msgid "OSReport"
msgstr ""
@ -1753,6 +1759,9 @@ msgstr "Vibrazione"
msgid "SChinese"
msgstr "Cinese semplificato"
msgid "SD"
msgstr ""
msgid "SD Card could not be accessed."
msgstr "SD inacessibile."
@ -1822,6 +1831,9 @@ msgstr "Imposta cerca-filtro"
msgid "Settings"
msgstr "Impostazioni"
msgid "Settings File"
msgstr ""
msgid "Show Categories"
msgstr "Visualizza categorie"
@ -2074,6 +2086,9 @@ msgstr "Suggerimenti"
msgid "Transfer failed"
msgstr "Trasferimento fallito"
msgid "USB"
msgstr ""
msgid "USB Device not initialized."
msgstr ""
@ -2213,6 +2228,9 @@ msgstr "Cosa deve essere eliminato per questo gioco:"
msgid "What to extract from NAND?"
msgstr "Che cosa vuoi estrarre dalla NAND?"
msgid "Where do you want MCEmu to be located?"
msgstr ""
msgid "Where should the game be installed to?"
msgstr "Dove deve essere installato il gioco?"
@ -2240,6 +2258,9 @@ msgstr "WiiTDB.xml"
msgid "WiiTDB.xml is up to date."
msgstr "WiiTDB.xml è già aggiornato"
msgid "WiiU Widescreen"
msgstr ""
msgid "Wiilight"
msgstr "Illuminazione Wii"

View File

@ -5,7 +5,7 @@ msgid ""
msgstr ""
"Project-Id-Version: USB Loader GX\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2014-11-10 19:26+0100\n"
"POT-Creation-Date: 2015-01-04 21:00+0100\n"
"PO-Revision-Date: 2009-10-01 01:00+0200\n"
"Last-Translator: hosigumayuugi\n"
"Language-Team: hosigumayuugi\n"
@ -1477,6 +1477,9 @@ msgstr "使用できる領域が見つかりません"
msgid "No Wiinnertag.xml found in the config path. Do you want an example file created?"
msgstr "Wiinnertag.xmlが設定パスにみつかりません。テンプレファイルを作成しますか?"
msgid "No change"
msgstr ""
msgid "No cheats were selected! Should the GCT file be deleted?"
msgstr "何も選ばれていません!(GCTファイルが削除された?)"
@ -1570,6 +1573,9 @@ msgstr ""
msgid "ON"
msgstr "使う"
msgid "ON (Multi)"
msgstr ""
msgid "OSReport"
msgstr ""
@ -1753,6 +1759,9 @@ msgstr "振動機能"
msgid "SChinese"
msgstr "簡体中国語"
msgid "SD"
msgstr ""
msgid "SD Card could not be accessed."
msgstr "SDカードにアクセス出来ません"
@ -1822,6 +1831,9 @@ msgstr "検索"
msgid "Settings"
msgstr "設定"
msgid "Settings File"
msgstr ""
msgid "Show Categories"
msgstr "カテゴリを表示"
@ -2074,6 +2086,9 @@ msgstr "ヒントバルーン"
msgid "Transfer failed"
msgstr "転送に失敗しました"
msgid "USB"
msgstr ""
msgid "USB Device not initialized."
msgstr ""
@ -2213,6 +2228,9 @@ msgstr "このゲームの何を削除しますか:"
msgid "What to extract from NAND?"
msgstr "何をNANDから書き出しますか?"
msgid "Where do you want MCEmu to be located?"
msgstr ""
msgid "Where should the game be installed to?"
msgstr "どこにインストールしますか?"
@ -2240,6 +2258,9 @@ msgstr "ゲーム名リスト"
msgid "WiiTDB.xml is up to date."
msgstr "ゲーム名リストが更新されました"
msgid "WiiU Widescreen"
msgstr ""
msgid "Wiilight"
msgstr "スロット点灯機能"

View File

@ -5,7 +5,7 @@ msgid ""
msgstr ""
"Project-Id-Version: USB Loader GX\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2014-11-10 19:26+0100\n"
"POT-Creation-Date: 2015-01-04 21:00+0100\n"
"PO-Revision-Date: 2009-10-01 01:00+0200\n"
"Last-Translator: nextos@korea.com\n"
"Language-Team: \n"
@ -1477,6 +1477,9 @@ msgstr ""
msgid "No Wiinnertag.xml found in the config path. Do you want an example file created?"
msgstr ""
msgid "No change"
msgstr ""
msgid "No cheats were selected! Should the GCT file be deleted?"
msgstr ""
@ -1570,6 +1573,9 @@ msgstr "확인"
msgid "ON"
msgstr "켜짐"
msgid "ON (Multi)"
msgstr ""
msgid "OSReport"
msgstr ""
@ -1753,6 +1759,9 @@ msgstr "진동"
msgid "SChinese"
msgstr "중국어(간체)"
msgid "SD"
msgstr ""
msgid "SD Card could not be accessed."
msgstr ""
@ -1822,6 +1831,9 @@ msgstr ""
msgid "Settings"
msgstr "설정"
msgid "Settings File"
msgstr ""
msgid "Show Categories"
msgstr ""
@ -2074,6 +2086,9 @@ msgstr "Tooltips"
msgid "Transfer failed"
msgstr ""
msgid "USB"
msgstr ""
msgid "USB Device not initialized."
msgstr ""
@ -2213,6 +2228,9 @@ msgstr ""
msgid "What to extract from NAND?"
msgstr ""
msgid "Where do you want MCEmu to be located?"
msgstr ""
msgid "Where should the game be installed to?"
msgstr ""
@ -2240,6 +2258,9 @@ msgstr ""
msgid "WiiTDB.xml is up to date."
msgstr ""
msgid "WiiU Widescreen"
msgstr ""
msgid "Wiilight"
msgstr "Wiilight"

View File

@ -5,7 +5,7 @@ msgid ""
msgstr ""
"Project-Id-Version: USB Loader GX\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2014-11-10 19:26+0100\n"
"POT-Creation-Date: 2015-01-04 21:00+0100\n"
"PO-Revision-Date: 2009-10-01 01:00+0200\n"
"Last-Translator: raschi\n"
"Language-Team: raschi\n"
@ -1477,6 +1477,9 @@ msgstr "Ingen WBFS eller FAT/NTFS/EXT partisjon funnet"
msgid "No Wiinnertag.xml found in the config path. Do you want an example file created?"
msgstr "Ingen Wiinnertag.xml funnet. Vil du opprette en eksempelfil?"
msgid "No change"
msgstr ""
msgid "No cheats were selected! Should the GCT file be deleted?"
msgstr ""
@ -1570,6 +1573,9 @@ msgstr ""
msgid "ON"
msgstr "PÅ"
msgid "ON (Multi)"
msgstr ""
msgid "OSReport"
msgstr ""
@ -1753,6 +1759,9 @@ msgstr "Vibrasjon"
msgid "SChinese"
msgstr "S.Kinesisk"
msgid "SD"
msgstr ""
msgid "SD Card could not be accessed."
msgstr ""
@ -1822,6 +1831,9 @@ msgstr "Angi søkefilter"
msgid "Settings"
msgstr "Innstillinger"
msgid "Settings File"
msgstr ""
msgid "Show Categories"
msgstr "Vis kategorier"
@ -2074,6 +2086,9 @@ msgstr "Verktøystips"
msgid "Transfer failed"
msgstr "Overføring feilet"
msgid "USB"
msgstr ""
msgid "USB Device not initialized."
msgstr ""
@ -2213,6 +2228,9 @@ msgstr "Hva skal slettes for denne spilltittel:"
msgid "What to extract from NAND?"
msgstr ""
msgid "Where do you want MCEmu to be located?"
msgstr ""
msgid "Where should the game be installed to?"
msgstr ""
@ -2240,6 +2258,9 @@ msgstr ""
msgid "WiiTDB.xml is up to date."
msgstr ""
msgid "WiiU Widescreen"
msgstr ""
msgid "Wiilight"
msgstr "Wii DVD lys"

View File

@ -5,7 +5,7 @@ msgid ""
msgstr ""
"Project-Id-Version: USB Loader GX\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2014-11-10 19:26+0100\n"
"POT-Creation-Date: 2015-01-04 21:00+0100\n"
"PO-Revision-Date: 2009-10-01 01:00+0200\n"
"Last-Translator: ziom666 (zadania_prog@vp.pl)\n"
"Language-Team: \n"
@ -1477,6 +1477,9 @@ msgstr ""
msgid "No Wiinnertag.xml found in the config path. Do you want an example file created?"
msgstr ""
msgid "No change"
msgstr ""
msgid "No cheats were selected! Should the GCT file be deleted?"
msgstr ""
@ -1570,6 +1573,9 @@ msgstr ""
msgid "ON"
msgstr "Wlacz"
msgid "ON (Multi)"
msgstr ""
msgid "OSReport"
msgstr ""
@ -1753,6 +1759,9 @@ msgstr "Wibracje"
msgid "SChinese"
msgstr "uproszczony chinski"
msgid "SD"
msgstr ""
msgid "SD Card could not be accessed."
msgstr ""
@ -1822,6 +1831,9 @@ msgstr "Ustaw filtr wyszukiwania"
msgid "Settings"
msgstr "Ustawienia"
msgid "Settings File"
msgstr ""
msgid "Show Categories"
msgstr ""
@ -2074,6 +2086,9 @@ msgstr "Chmurki z podpowiedziami"
msgid "Transfer failed"
msgstr ""
msgid "USB"
msgstr ""
msgid "USB Device not initialized."
msgstr ""
@ -2213,6 +2228,9 @@ msgstr ""
msgid "What to extract from NAND?"
msgstr ""
msgid "Where do you want MCEmu to be located?"
msgstr ""
msgid "Where should the game be installed to?"
msgstr ""
@ -2240,6 +2258,9 @@ msgstr ""
msgid "WiiTDB.xml is up to date."
msgstr ""
msgid "WiiU Widescreen"
msgstr ""
msgid "Wiilight"
msgstr "Dioda Wii"

View File

@ -5,7 +5,7 @@ msgid ""
msgstr ""
"Project-Id-Version: USB Loader GX\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2014-04-25 15:06+0200\n"
"POT-Creation-Date: 2015-01-04 21:00+0100\n"
"PO-Revision-Date: 2011-11-03 11:00+0000\n"
"Last-Translator: Codemaster <javafangamers@hotmail.com>\n"
"Language-Team: Sky8000, pplucky\n"
@ -39,10 +39,10 @@ msgstr "%s somente aceita jogos de GameCube no formato ISO."
msgid "%s requires AHB access! Please launch USBLoaderGX from HBC or from an updated channel or forwarder."
msgstr "%s requer AHB. Inicie o USBLoader GX pelo Homebrew Channel ou por um forwarder atualizado."
msgid "--== Devolution"
msgid "--== Devolution"
msgstr ""
msgid "--== Nintendont"
msgid "--== Nintendont"
msgstr ""
msgid "--== DIOS MIOS (Lite) "
@ -1477,6 +1477,9 @@ msgstr "Nenhuma partição WBFS ou FAT/NTFS/EXT encontrada"
msgid "No Wiinnertag.xml found in the config path. Do you want an example file created?"
msgstr "Wiinnertag.xml não encontrado. Quer criar um arquivo de exemplo?"
msgid "No change"
msgstr ""
msgid "No cheats were selected! Should the GCT file be deleted?"
msgstr "Nenhum cheat foi selecionado. Deseja apagar o arquivo GCT antigo?"
@ -1570,6 +1573,9 @@ msgstr ""
msgid "ON"
msgstr "SIM"
msgid "ON (Multi)"
msgstr ""
msgid "OSReport"
msgstr ""
@ -1753,6 +1759,9 @@ msgstr "Vibração"
msgid "SChinese"
msgstr "Chinês Simp."
msgid "SD"
msgstr ""
msgid "SD Card could not be accessed."
msgstr "Este Cartão SD não pode ser acessado."
@ -1822,6 +1831,9 @@ msgstr "Pesquisar"
msgid "Settings"
msgstr "Definições"
msgid "Settings File"
msgstr ""
msgid "Show Categories"
msgstr "Mostrar Categorias"
@ -2074,6 +2086,9 @@ msgstr "Balões de dica"
msgid "Transfer failed"
msgstr "Transferência falhou"
msgid "USB"
msgstr ""
msgid "USB Device not initialized."
msgstr "Dispositivo USB não encontrado."
@ -2213,6 +2228,9 @@ msgstr "O que deve ser apagado para este jogo:"
msgid "What to extract from NAND?"
msgstr "O que extrair da NAND?"
msgid "Where do you want MCEmu to be located?"
msgstr ""
msgid "Where should the game be installed to?"
msgstr "Aonde o jogo será instalado?"
@ -2240,6 +2258,9 @@ msgstr ""
msgid "WiiTDB.xml is up to date."
msgstr "WiiTDB.xml está atualizado."
msgid "WiiU Widescreen"
msgstr ""
msgid "Wiilight"
msgstr "Iluminação Leitor"

View File

@ -5,7 +5,7 @@ msgid ""
msgstr ""
"Project-Id-Version: USB Loader GX\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2014-11-10 19:28+0100\n"
"POT-Creation-Date: 2015-01-04 21:00+0100\n"
"PO-Revision-Date: 2011-11-03 11:00+0000\n"
"Last-Translator: pplucky <pplucky@gmail.com>\n"
"Language-Team: Sky8000, pplucky\n"
@ -1477,6 +1477,9 @@ msgstr "Nenhuma partição WBFS ou FAT/NTFS/EXT encontrada"
msgid "No Wiinnertag.xml found in the config path. Do you want an example file created?"
msgstr "Ficheiro Wiinnertag.xml não encontrado. Quer criar um ficheiro de exemplo?"
msgid "No change"
msgstr ""
msgid "No cheats were selected! Should the GCT file be deleted?"
msgstr ""
@ -1570,6 +1573,9 @@ msgstr "OK"
msgid "ON"
msgstr "ON"
msgid "ON (Multi)"
msgstr ""
msgid "OSReport"
msgstr ""
@ -1753,6 +1759,9 @@ msgstr "Vibração"
msgid "SChinese"
msgstr "Chinês Simplificado"
msgid "SD"
msgstr ""
msgid "SD Card could not be accessed."
msgstr ""
@ -1822,6 +1831,9 @@ msgstr "Pesquisar"
msgid "Settings"
msgstr "Definições"
msgid "Settings File"
msgstr ""
msgid "Show Categories"
msgstr "Mostrar Categorias"
@ -2074,6 +2086,9 @@ msgstr "Dicas"
msgid "Transfer failed"
msgstr "Transferência falhada"
msgid "USB"
msgstr ""
msgid "USB Device not initialized."
msgstr ""
@ -2213,6 +2228,9 @@ msgstr "O que deve ser apagado para este jogo:"
msgid "What to extract from NAND?"
msgstr "O que extrair da NAND?"
msgid "Where do you want MCEmu to be located?"
msgstr ""
msgid "Where should the game be installed to?"
msgstr ""
@ -2240,6 +2258,9 @@ msgstr "WiiTDB.xml"
msgid "WiiTDB.xml is up to date."
msgstr "WiiTDB.xml está actualizado."
msgid "WiiU Widescreen"
msgstr ""
msgid "Wiilight"
msgstr "Iluminação Leitor"

View File

@ -5,7 +5,7 @@ msgid ""
msgstr ""
"Project-Id-Version: USB Loader GX\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2014-11-10 19:28+0100\n"
"POT-Creation-Date: 2015-01-04 21:00+0100\n"
"PO-Revision-Date: 2009-10-01 01:00+0200\n"
"Last-Translator: nikolai_ca\n"
"Language-Team: Kir, alendit, nikolai_ca\n"
@ -1477,6 +1477,9 @@ msgstr ""
msgid "No Wiinnertag.xml found in the config path. Do you want an example file created?"
msgstr ""
msgid "No change"
msgstr ""
msgid "No cheats were selected! Should the GCT file be deleted?"
msgstr ""
@ -1570,6 +1573,9 @@ msgstr "OK"
msgid "ON"
msgstr "ВКЛ"
msgid "ON (Multi)"
msgstr ""
msgid "OSReport"
msgstr ""
@ -1753,6 +1759,9 @@ msgstr "Вибрация"
msgid "SChinese"
msgstr "Упрощенный китайский"
msgid "SD"
msgstr ""
msgid "SD Card could not be accessed."
msgstr ""
@ -1822,6 +1831,9 @@ msgstr "Установить фильтр для поиска"
msgid "Settings"
msgstr "Установки"
msgid "Settings File"
msgstr ""
msgid "Show Categories"
msgstr ""
@ -2074,6 +2086,9 @@ msgstr "Подсказки"
msgid "Transfer failed"
msgstr ""
msgid "USB"
msgstr ""
msgid "USB Device not initialized."
msgstr ""
@ -2213,6 +2228,9 @@ msgstr ""
msgid "What to extract from NAND?"
msgstr ""
msgid "Where do you want MCEmu to be located?"
msgstr ""
msgid "Where should the game be installed to?"
msgstr ""
@ -2240,6 +2258,9 @@ msgstr ""
msgid "WiiTDB.xml is up to date."
msgstr ""
msgid "WiiU Widescreen"
msgstr ""
msgid "Wiilight"
msgstr "Подсветка Wii"

View File

@ -5,7 +5,7 @@ msgid ""
msgstr ""
"Project-Id-Version: USB Loader GX\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2014-11-10 19:28+0100\n"
"POT-Creation-Date: 2015-01-04 21:00+0100\n"
"PO-Revision-Date: 2013-08-13 07:03+0800\n"
"Last-Translator: \n"
"Language-Team: oCameLo\n"
@ -1477,6 +1477,9 @@ msgstr "找不到 WBFS 或 FAT/NTFS/EXT 分区"
msgid "No Wiinnertag.xml found in the config path. Do you want an example file created?"
msgstr "在配置路径中未找到 Wiinnertag.xml 。是否创建一个示例文件?"
msgid "No change"
msgstr ""
msgid "No cheats were selected! Should the GCT file be deleted?"
msgstr "未选择金手指! GCT 文件是否已被删除?"
@ -1570,6 +1573,9 @@ msgstr "确定"
msgid "ON"
msgstr "开启"
msgid "ON (Multi)"
msgstr ""
msgid "OSReport"
msgstr ""
@ -1753,6 +1759,9 @@ msgstr "震动"
msgid "SChinese"
msgstr "简体中文"
msgid "SD"
msgstr ""
msgid "SD Card could not be accessed."
msgstr "SD 卡不能访问。"
@ -1822,6 +1831,9 @@ msgstr "设置搜索过滤器"
msgid "Settings"
msgstr "設置"
msgid "Settings File"
msgstr ""
msgid "Show Categories"
msgstr "显示分类"
@ -2074,6 +2086,9 @@ msgstr "提示信息"
msgid "Transfer failed"
msgstr "传输失败"
msgid "USB"
msgstr ""
msgid "USB Device not initialized."
msgstr "USB设备无法初始化。"
@ -2213,6 +2228,9 @@ msgstr "要删除这个游戏的什么:"
msgid "What to extract from NAND?"
msgstr "从 NAND 中提取什么?"
msgid "Where do you want MCEmu to be located?"
msgstr ""
msgid "Where should the game be installed to?"
msgstr "游戏安装到什么地方?"
@ -2240,6 +2258,9 @@ msgstr "WiiTDB.xml"
msgid "WiiTDB.xml is up to date."
msgstr "WiiTDB.xml 已是最新版。"
msgid "WiiU Widescreen"
msgstr ""
msgid "Wiilight"
msgstr "光驱灯"

View File

@ -5,7 +5,7 @@ msgid ""
msgstr ""
"Project-Id-Version: USB Loader GX\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2014-11-10 19:28+0100\n"
"POT-Creation-Date: 2015-01-04 21:00+0100\n"
"PO-Revision-Date: 2011-07-25 16:40+0200\n"
"Last-Translator: Galen/xFede\n"
"Language-Team: Penn, SirPalax, hvy109\n"
@ -1477,6 +1477,9 @@ msgstr "Partición WBFS o FAT/NTFS/EXT no encontrada"
msgid "No Wiinnertag.xml found in the config path. Do you want an example file created?"
msgstr "No se encontró el archivo Wiinnertag.xml. ¿Quieres crear un archivo de ejemplo?"
msgid "No change"
msgstr ""
msgid "No cheats were selected! Should the GCT file be deleted?"
msgstr "No hay trucos seleccionados, ¿debe ser borrado el archivo GCT?"
@ -1570,6 +1573,9 @@ msgstr "Aceptar"
msgid "ON"
msgstr "Activado"
msgid "ON (Multi)"
msgstr ""
msgid "OSReport"
msgstr ""
@ -1753,6 +1759,9 @@ msgstr "Vibración"
msgid "SChinese"
msgstr "Chino S."
msgid "SD"
msgstr ""
msgid "SD Card could not be accessed."
msgstr "No se puede acceder a la tarjeta SD"
@ -1822,6 +1831,9 @@ msgstr "Usar filtro de búsqueda"
msgid "Settings"
msgstr "Configuración"
msgid "Settings File"
msgstr ""
msgid "Show Categories"
msgstr "Mostrar Categorías"
@ -2074,6 +2086,9 @@ msgstr "Descripción"
msgid "Transfer failed"
msgstr "Transferencia fallida"
msgid "USB"
msgstr ""
msgid "USB Device not initialized."
msgstr ""
@ -2213,6 +2228,9 @@ msgstr "Qué se debería borrar para este juego:"
msgid "What to extract from NAND?"
msgstr "¿Que Extraer de la Nand?"
msgid "Where do you want MCEmu to be located?"
msgstr ""
msgid "Where should the game be installed to?"
msgstr "¿Donde debe ser instalado el juego?"
@ -2240,6 +2258,9 @@ msgstr "WiiTDB"
msgid "WiiTDB.xml is up to date."
msgstr "WiiTDB.xml está actualizado."
msgid "WiiU Widescreen"
msgstr ""
msgid "Wiilight"
msgstr "Iluminar lector"

View File

@ -5,7 +5,7 @@ msgid ""
msgstr ""
"Project-Id-Version: USB Loader GX\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2014-11-10 19:28+0100\n"
"POT-Creation-Date: 2015-01-04 21:00+0100\n"
"PO-Revision-Date: 2010-01-19 17:39+0200\n"
"Last-Translator: Katsurou\n"
"Language-Team: Katsurou, pirateX\n"
@ -1477,6 +1477,9 @@ msgstr ""
msgid "No Wiinnertag.xml found in the config path. Do you want an example file created?"
msgstr ""
msgid "No change"
msgstr ""
msgid "No cheats were selected! Should the GCT file be deleted?"
msgstr ""
@ -1570,6 +1573,9 @@ msgstr ""
msgid "ON"
msgstr "PÅ"
msgid "ON (Multi)"
msgstr ""
msgid "OSReport"
msgstr ""
@ -1753,6 +1759,9 @@ msgstr "Vibration"
msgid "SChinese"
msgstr "SKinesiska"
msgid "SD"
msgstr ""
msgid "SD Card could not be accessed."
msgstr ""
@ -1822,6 +1831,9 @@ msgstr "Ställ in sök-filter"
msgid "Settings"
msgstr "Inställningar"
msgid "Settings File"
msgstr ""
msgid "Show Categories"
msgstr ""
@ -2074,6 +2086,9 @@ msgstr "Verktygstips"
msgid "Transfer failed"
msgstr ""
msgid "USB"
msgstr ""
msgid "USB Device not initialized."
msgstr ""
@ -2213,6 +2228,9 @@ msgstr ""
msgid "What to extract from NAND?"
msgstr ""
msgid "Where do you want MCEmu to be located?"
msgstr ""
msgid "Where should the game be installed to?"
msgstr ""
@ -2240,6 +2258,9 @@ msgstr ""
msgid "WiiTDB.xml is up to date."
msgstr ""
msgid "WiiU Widescreen"
msgstr ""
msgid "Wiilight"
msgstr "Wii-ljus"

View File

@ -5,7 +5,7 @@ msgid ""
msgstr ""
"Project-Id-Version: USB Loader GX\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2014-11-10 19:28+0100\n"
"POT-Creation-Date: 2015-01-04 21:00+0100\n"
"PO-Revision-Date: 2010-02-15 21:00+0800\n"
"Last-Translator: Jane.H\n"
"Language-Team: kyogc, Miller, Mika Li, Jane.H\n"
@ -1477,6 +1477,9 @@ msgstr "沒找到WBFS 或 FAT/NTFS/EXT磁區"
msgid "No Wiinnertag.xml found in the config path. Do you want an example file created?"
msgstr "在config路徑沒找到Wiinnertag.xml檔。是否要建立一個範本檔"
msgid "No change"
msgstr ""
msgid "No cheats were selected! Should the GCT file be deleted?"
msgstr "金手指代碼未被選取! 是否已刪除金手指檔案?"
@ -1570,6 +1573,9 @@ msgstr "確定"
msgid "ON"
msgstr "開啟"
msgid "ON (Multi)"
msgstr ""
msgid "OSReport"
msgstr ""
@ -1753,6 +1759,9 @@ msgstr "震動"
msgid "SChinese"
msgstr "簡體中文"
msgid "SD"
msgstr ""
msgid "SD Card could not be accessed."
msgstr "SD卡無法存取"
@ -1822,6 +1831,9 @@ msgstr "關鍵字篩選"
msgid "Settings"
msgstr "設定"
msgid "Settings File"
msgstr ""
msgid "Show Categories"
msgstr "顯示類別"
@ -2074,6 +2086,9 @@ msgstr "提示訊息"
msgid "Transfer failed"
msgstr "傳輸失敗"
msgid "USB"
msgstr ""
msgid "USB Device not initialized."
msgstr ""
@ -2213,6 +2228,9 @@ msgstr "這遊戲title應刪除什麼"
msgid "What to extract from NAND?"
msgstr "從 NAND 提取什麼?"
msgid "Where do you want MCEmu to be located?"
msgstr ""
msgid "Where should the game be installed to?"
msgstr "遊戲應安裝到何處"
@ -2240,6 +2258,9 @@ msgstr "WiiTDB.xml"
msgid "WiiTDB.xml is up to date."
msgstr "WiiTDB.xml保持最新。"
msgid "WiiU Widescreen"
msgstr ""
msgid "Wiilight"
msgstr "Wii LED燈"

View File

@ -5,7 +5,7 @@ msgid ""
msgstr ""
"Project-Id-Version: USB Loader GX\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2014-11-10 19:28+0100\n"
"POT-Creation-Date: 2015-01-04 21:00+0100\n"
"PO-Revision-Date: 2009-10-01 01:00+0200\n"
"Last-Translator: Nitro_subzero \n"
"Language-Team: Nitro_subzero\n"
@ -1477,6 +1477,9 @@ msgstr ""
msgid "No Wiinnertag.xml found in the config path. Do you want an example file created?"
msgstr ""
msgid "No change"
msgstr ""
msgid "No cheats were selected! Should the GCT file be deleted?"
msgstr ""
@ -1570,6 +1573,9 @@ msgstr "ตกลง"
msgid "ON"
msgstr "เปิด"
msgid "ON (Multi)"
msgstr ""
msgid "OSReport"
msgstr ""
@ -1753,6 +1759,9 @@ msgstr "สั่น"
msgid "SChinese"
msgstr "จีน"
msgid "SD"
msgstr ""
msgid "SD Card could not be accessed."
msgstr ""
@ -1822,6 +1831,9 @@ msgstr "กำหนดเงื่อนไขการค้นหา"
msgid "Settings"
msgstr "กำหนดค่า"
msgid "Settings File"
msgstr ""
msgid "Show Categories"
msgstr ""
@ -2074,6 +2086,9 @@ msgstr "คำแนะนำ"
msgid "Transfer failed"
msgstr ""
msgid "USB"
msgstr ""
msgid "USB Device not initialized."
msgstr ""
@ -2213,6 +2228,9 @@ msgstr ""
msgid "What to extract from NAND?"
msgstr ""
msgid "Where do you want MCEmu to be located?"
msgstr ""
msgid "Where should the game be installed to?"
msgstr ""
@ -2240,6 +2258,9 @@ msgstr ""
msgid "WiiTDB.xml is up to date."
msgstr ""
msgid "WiiU Widescreen"
msgstr ""
msgid "Wiilight"
msgstr "ความสว่างของ Wii"

View File

@ -5,7 +5,7 @@ msgid ""
msgstr ""
"Project-Id-Version: USB Loader GX\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2014-11-10 19:28+0100\n"
"POT-Creation-Date: 2015-01-04 21:00+0100\n"
"PO-Revision-Date: 2009-10-01 01:00+0200\n"
"Last-Translator: omercigingelini\n"
"Language-Team: omercigingelini\n"
@ -1477,6 +1477,9 @@ msgstr ""
msgid "No Wiinnertag.xml found in the config path. Do you want an example file created?"
msgstr ""
msgid "No change"
msgstr ""
msgid "No cheats were selected! Should the GCT file be deleted?"
msgstr ""
@ -1570,6 +1573,9 @@ msgstr ""
msgid "ON"
msgstr "AÇIK"
msgid "ON (Multi)"
msgstr ""
msgid "OSReport"
msgstr ""
@ -1753,6 +1759,9 @@ msgstr "Titreşim"
msgid "SChinese"
msgstr "Basitleştirilmis Çince"
msgid "SD"
msgstr ""
msgid "SD Card could not be accessed."
msgstr ""
@ -1822,6 +1831,9 @@ msgstr "Arama Filtresi Ayarla"
msgid "Settings"
msgstr "Ayarlar"
msgid "Settings File"
msgstr ""
msgid "Show Categories"
msgstr ""
@ -2074,6 +2086,9 @@ msgstr "Yardımlar"
msgid "Transfer failed"
msgstr ""
msgid "USB"
msgstr ""
msgid "USB Device not initialized."
msgstr ""
@ -2213,6 +2228,9 @@ msgstr ""
msgid "What to extract from NAND?"
msgstr ""
msgid "Where do you want MCEmu to be located?"
msgstr ""
msgid "Where should the game be installed to?"
msgstr ""
@ -2240,6 +2258,9 @@ msgstr ""
msgid "WiiTDB.xml is up to date."
msgstr ""
msgid "WiiU Widescreen"
msgstr ""
msgid "Wiilight"
msgstr ""

View File

@ -67,7 +67,7 @@ endif
#---------------------------------------------------------------------------------
CFLAGS = -g -ggdb -O3 -Wall -Wno-multichar -Wno-unused-parameter -Wextra $(MACHDEP) $(INCLUDE) -DBUILD_IOS=$(IOS)
CXXFLAGS = $(CFLAGS)
LDFLAGS = -g -ggdb $(MACHDEP) -Wl,-Map,$(notdir $@).map,--section-start,.init=0x80B00000,-wrap,malloc,-wrap,free,-wrap,memalign,-wrap,calloc,-wrap,realloc,-wrap,malloc_usable_size
LDFLAGS = -g -ggdb $(MACHDEP) -Wl,-Map,$(notdir $@).map,--section-start,.init=0x80B00000,-wrap,malloc,-wrap,free,-wrap,memalign,-wrap,calloc,-wrap,realloc,-wrap,malloc_usable_size,-wrap,wiiuse_register
ifeq ($(BUILDMODE),channel)
CFLAGS += -DFULLCHANNEL
@ -78,7 +78,8 @@ endif
# any extra libraries we wish to link with the project
#---------------------------------------------------------------------------------
LIBS := -lcustomfat -lcustomntfs -lcustomext2fs -lvorbisidec -lmad -lfreetype \
-lgd -ljpeg -lpng -lzip -lm -lz -lwiiuse -lbte -lasnd -logc
-lgd -ljpeg -lpng -lzip -lm -lz -lwiiuse -lwupc -lbte -lasnd -logc \
-lsicksaxis
#---------------------------------------------------------------------------------
# list of directories containing libraries, this must be the top level containing
# include and lib

View File

@ -87,7 +87,7 @@ BoxCover::~BoxCover()
//! Remove me later
void BoxCover::WiiPADControl(GuiTrigger *t)
{
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.btns_d & WPAD_BUTTON_A) || (t->wpad.btns_h & WPAD_CLASSIC_BUTTON_A) || (t->wupcdata.btns_h & WPAD_CLASSIC_BUTTON_A) || (t->pad.btns_h & PAD_BUTTON_A))
{
if(t->wpad.ir.valid)
{
@ -102,6 +102,10 @@ void BoxCover::WiiPADControl(GuiTrigger *t)
// 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);
// WiiU Pro Classic Controller
// Todo : Proper stick calibration required to allow moving cover
//! Drop stick moves of less than 10 because of sensitivity
if(fabs(movX) < 10.0f) movX = 0;
if(fabs(movY) < 10.0f) movY = 0;
@ -124,13 +128,13 @@ void BoxCover::WiiPADControl(GuiTrigger *t)
else
moveChan = -1;
}
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)
else if(((t->wpad.btns_h & WPAD_BUTTON_A) || (t->wpad.btns_h & WPAD_CLASSIC_BUTTON_A) || (t->wupcdata.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) && !(t->wpad.btns_h & WPAD_CLASSIC_BUTTON_A) && !(t->pad.btns_h & PAD_BUTTON_A) && moveChan == t->chan)
else if(!(t->wpad.btns_h & WPAD_BUTTON_A) && !(t->wpad.btns_h & WPAD_CLASSIC_BUTTON_A) && !(t->wupcdata.btns_h & WPAD_CLASSIC_BUTTON_A) && !(t->pad.btns_h & PAD_BUTTON_A) && moveChan == t->chan)
{
if(moveChan >= 0 && moveChan < 4)
{
@ -140,27 +144,27 @@ void BoxCover::WiiPADControl(GuiTrigger *t)
}
}
if((t->wpad.btns_h & WPAD_BUTTON_UP) || (t->pad.substickY > PADCAL))
if((t->wpad.btns_h & WPAD_BUTTON_UP) || (t->pad.substickY > PADCAL) || (t->wupcdata.substickY > WUPCCAL))
{
RotX -= 2.0f;
last_manual_move_frame = frameCount;
}
if((t->wpad.btns_h & WPAD_BUTTON_DOWN) || (t->pad.substickY < -PADCAL))
if((t->wpad.btns_h & WPAD_BUTTON_DOWN) || (t->pad.substickY < -PADCAL) || (t->wupcdata.substickY < -WUPCCAL))
{
RotX += 2.0f;
last_manual_move_frame = frameCount;
}
if((t->wpad.btns_h & WPAD_BUTTON_LEFT) || (t->pad.substickX < -PADCAL))
if((t->wpad.btns_h & WPAD_BUTTON_LEFT) || (t->pad.substickX < -PADCAL) || (t->wupcdata.substickX < -WUPCCAL))
{
RotY -= 2.0f;
last_manual_move_frame = frameCount;
}
if((t->wpad.btns_h & WPAD_BUTTON_RIGHT) || (t->pad.substickX > PADCAL))
if((t->wpad.btns_h & WPAD_BUTTON_RIGHT) || (t->pad.substickX > PADCAL) || (t->wupcdata.substickX > WUPCCAL))
{
RotY += 2.0f;
last_manual_move_frame = frameCount;
}
if((t->wpad.btns_d & WPAD_BUTTON_2) || (t->pad.btns_d & PAD_BUTTON_X) || (t->wpad.btns_d & WPAD_CLASSIC_BUTTON_X))
if((t->wpad.btns_d & WPAD_BUTTON_2) || (t->pad.btns_d & PAD_BUTTON_X) || (t->wpad.btns_d & WPAD_CLASSIC_BUTTON_X) || (t->wupcdata.btns_d & WPAD_CLASSIC_BUTTON_X))
{
if(RotY < 180.0f)
SetEffect(EFFECT_BOX_ROTATE_X, 10, 180);
@ -168,12 +172,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) || (t->pad.btns_h & PAD_TRIGGER_R) || (t->wpad.btns_h & WPAD_CLASSIC_BUTTON_FULL_R))
if((t->wpad.btns_h & WPAD_BUTTON_PLUS) || (t->pad.btns_h & PAD_TRIGGER_R) || (t->wpad.btns_h & WPAD_CLASSIC_BUTTON_FULL_R) || (t->wupcdata.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) || (t->pad.btns_h & PAD_TRIGGER_L) || (t->wpad.btns_h & WPAD_CLASSIC_BUTTON_FULL_L))
if((t->wpad.btns_h & WPAD_BUTTON_MINUS) || (t->pad.btns_h & PAD_TRIGGER_L) || (t->wpad.btns_h & WPAD_CLASSIC_BUTTON_FULL_L) || (t->wupcdata.btns_h & WPAD_CLASSIC_BUTTON_FULL_L))
{
if(PosZ > -43.0f)
PosZ -= 0.4f*fabs(PosZ)/19.f;

View File

@ -90,6 +90,29 @@ void WiiPointer::Draw(GuiTrigger *t)
lastActivity = 0;
}
//Wii u pro x-axis
if(t->wupcdata.stickX < -WUPCCAL)
{
posX += (t->wupcdata.stickX + WUPCCAL) * Settings.PointerSpeed/8;
lastActivity = 0;
}
else if(t->wupcdata.stickX > WUPCCAL)
{
posX += (t->wupcdata.stickX - WUPCCAL) * Settings.PointerSpeed/8;
lastActivity = 0;
}
//Wii u pro y-axis
if(t->wupcdata.stickY < -WUPCCAL)
{
posY -= (t->wupcdata.stickY + WUPCCAL) * Settings.PointerSpeed/8;
lastActivity = 0;
}
else if(t->wupcdata.stickY > WUPCCAL)
{
posY -= (t->wupcdata.stickY - WUPCCAL) * Settings.PointerSpeed/8;
lastActivity = 0;
}
int wpadX = t->WPAD_Stick(0, 0);
int wpadY = t->WPAD_Stick(0, 1);
@ -117,7 +140,7 @@ void WiiPointer::Draw(GuiTrigger *t)
lastActivity = 0;
}
if(t->pad.btns_h || t->wpad.btns_h)
if(t->pad.btns_h || t->wpad.btns_h || t->wupcdata.btns_h)
lastActivity = 0;
posX = LIMIT(posX, -50.0f, screenwidth+50.0f);

View File

@ -38,6 +38,7 @@
#include <math.h>
#include <asndlib.h>
#include <wiiuse/wpad.h>
#include <wupc/wupc.h>
#include "gui_imagedata.h"
#include "FreeTypeGX.h"
#include "video.h"
@ -47,6 +48,8 @@
#include "SoundOperations/gui_bgm.h"
#include "utils/timer.h"
#include "sigslot.h"
#include <sicksaxis.h>
#include "sicksaxis-wrapper.h"
//! Frequently used variables
extern FreeTypeGX *fontSystem;
@ -107,6 +110,16 @@ typedef struct _paddata
u8 triggerR;
} PADData;
typedef struct _wupcfulldata {
u32 btns_d;
u32 btns_u;
u32 btns_h;
s16 stickX;
s16 stickY;
s16 substickX;
s16 substickY;
} WUPCFULLData;
#define EFFECT_SLIDE_TOP 1
#define EFFECT_SLIDE_BOTTOM 2
#define EFFECT_SLIDE_RIGHT 4
@ -164,6 +177,7 @@ class GuiTrigger
u8 type; //!< trigger type (TRIGGER_SIMPLE, TRIGGER_HELD, TRIGGER_BUTTON_ONLY)
s32 chan; //!< Trigger controller channel (0-3, -1 for all)
WPADData wpad; //!< Wii controller trigger data
WUPCFULLData wupcdata;//!< Wii U pro controller trigger data
PADData pad; //!< GameCube controller trigger data
};

View File

@ -444,7 +444,7 @@ void GuiButton::Update(GuiTrigger * t)
// button triggers
if (this->IsClickable() && scrollison == 0)
{
s32 wm_btns, wm_btns_trig, cc_btns, cc_btns_trig;
s32 wm_btns, wm_btns_trig, cc_btns, cc_btns_trig, wupc_btns, wupc_btns_trig;
for (int i = 0; i < 6; i++)
{
if (trigger[i] && (trigger[i]->chan == -1 || trigger[i]->chan == t->chan))
@ -457,8 +457,15 @@ void GuiButton::Update(GuiTrigger * t)
cc_btns = t->wpad.btns_d >> 16;
cc_btns_trig = trigger[i]->wpad.btns_d >> 16;
if (((t->wpad.btns_d > 0 && wm_btns == wm_btns_trig) || (cc_btns == cc_btns_trig && t->wpad.exp.type
== EXP_CLASSIC)) || (t->pad.btns_d == trigger[i]->pad.btns_d && t->pad.btns_d > 0))
// lower 16 bits only (WiiU Pro controller)
wupc_btns = t->wupcdata.btns_d >> 16;
wupc_btns_trig = trigger[i]->wupcdata.btns_d >> 16;
if( ((t->wpad.btns_d > 0 && wm_btns == wm_btns_trig)
|| (t->wpad.exp.type == WPAD_EXP_CLASSIC && cc_btns == cc_btns_trig))
|| (t->pad.btns_d > 0 && t->pad.btns_d == trigger[i]->pad.btns_d)
|| (t->wupcdata.btns_d > 0 && wupc_btns == wupc_btns_trig))
{
if (t->chan == stateChan || stateChan == -1)
{
@ -482,7 +489,7 @@ void GuiButton::Update(GuiTrigger * t)
if (this->IsHoldable())
{
bool held = false;
s32 wm_btns, wm_btns_h, wm_btns_trig, cc_btns, cc_btns_h, cc_btns_trig;
s32 wm_btns, wm_btns_h, wm_btns_trig, cc_btns, cc_btns_h, cc_btns_trig, wupc_btns, wupc_btns_h, wupc_btns_trig;
for (int i = 0; i < 6; i++)
{
@ -498,18 +505,28 @@ void GuiButton::Update(GuiTrigger * t)
cc_btns_h = t->wpad.btns_h >> 16;
cc_btns_trig = trigger[i]->wpad.btns_h >> 16;
if (((t->wpad.btns_d > 0 && wm_btns == wm_btns_trig) || (cc_btns == cc_btns_trig && t->wpad.exp.type
== EXP_CLASSIC)) || (t->pad.btns_d == trigger[i]->pad.btns_h && t->pad.btns_d > 0))
// lower 16 bits only (WiiU Pro controller)
wupc_btns = t->wupcdata.btns_d >> 16;
wupc_btns_h = t->wupcdata.btns_h >> 16;
wupc_btns_trig = trigger[i]->wupcdata.btns_h >> 16;
if( (t->wpad.btns_d > 0 && wm_btns == wm_btns_trig)
|| (t->wpad.exp.type == WPAD_EXP_CLASSIC && cc_btns == cc_btns_trig)
|| (t->pad.btns_d > 0 && t->pad.btns_d == trigger[i]->pad.btns_d)
|| (t->wupcdata.btns_d > 0 && wupc_btns == wupc_btns_trig))
{
if (trigger[i]->type == TRIGGER_HELD && state == STATE_SELECTED && (t->chan == stateChan
|| stateChan == -1)) this->SetState(STATE_CLICKED, t->chan);
if (trigger[i]->type == TRIGGER_HELD && state == STATE_SELECTED && (t->chan == stateChan || stateChan == -1))
this->SetState(STATE_CLICKED, t->chan);
}
if (((t->wpad.btns_h > 0 && wm_btns_h == wm_btns_trig) || (cc_btns_h == cc_btns_trig
&& t->wpad.exp.type == EXP_CLASSIC)) || (t->pad.btns_h == trigger[i]->pad.btns_h
&& t->pad.btns_h > 0))
if( (t->wpad.btns_h > 0 && wm_btns_h == wm_btns_trig)
|| (t->wpad.exp.type == WPAD_EXP_CLASSIC && cc_btns_h == cc_btns_trig)
|| (t->pad.btns_h > 0 && t->pad.btns_h == trigger[i]->pad.btns_h)
|| (t->wupcdata.btns_h > 0 && wupc_btns_h == wupc_btns_trig)
)
{
if (trigger[i]->type == TRIGGER_HELD) held = true;
if (trigger[i]->type == TRIGGER_HELD)
held = true;
}
if (!held && state == STATE_HELD && stateChan == t->chan)

View File

@ -187,12 +187,13 @@ void GuiCheckboxBrowser::Update(GuiTrigger *t)
if((t->wpad.btns_d & (WPAD_BUTTON_B | WPAD_BUTTON_DOWN | WPAD_BUTTON_UP | WPAD_BUTTON_LEFT | WPAD_BUTTON_RIGHT |
WPAD_CLASSIC_BUTTON_B | WPAD_CLASSIC_BUTTON_UP | WPAD_CLASSIC_BUTTON_DOWN | WPAD_CLASSIC_BUTTON_LEFT | WPAD_CLASSIC_BUTTON_RIGHT)) ||
(t->pad.btns_d & (PAD_BUTTON_UP | PAD_BUTTON_DOWN)))
(t->pad.btns_d & (PAD_BUTTON_UP | PAD_BUTTON_DOWN)) ||
(t->wupcdata.btns_d & (WPAD_CLASSIC_BUTTON_B | WPAD_CLASSIC_BUTTON_UP | WPAD_CLASSIC_BUTTON_DOWN | WPAD_CLASSIC_BUTTON_LEFT | WPAD_CLASSIC_BUTTON_RIGHT)))
pressedChan = t->chan;
for(u32 i = 0; i < checkBoxDrawn.size(); i++)
{
if(pressedChan == -1 || (!t->wpad.btns_h && !t->pad.btns_h))
if(pressedChan == -1 || (!t->wpad.btns_h && !t->pad.btns_h && !t->wupcdata.btns_h))
{
if(i != (u32) selectedItem && checkBoxDrawn[i]->GetState() == STATE_SELECTED) {
textLineList[i]->SetMaxWidth(maxTextWidth, DOTTED);
@ -213,7 +214,7 @@ void GuiCheckboxBrowser::Update(GuiTrigger *t)
markImg->SetPosition(5, 15+i*(checkBoxDrawn[i]->GetHeight()+6)+(checkBoxDrawn[i]->GetHeight()-markImg->GetHeight())/2);
}
if(pressedChan == t->chan && !t->wpad.btns_d && !t->wpad.btns_h)
if(pressedChan == t->chan && !t->wpad.btns_d && !t->wpad.btns_h && !t->wupcdata.btns_d && !t->wupcdata.btns_h)
pressedChan = -1;
scrollBar.SetPageSize(checkBoxDrawn.size());

View File

@ -184,13 +184,14 @@ void GuiFileBrowser::Update(GuiTrigger * t)
if((t->wpad.btns_d & (WPAD_BUTTON_B | WPAD_BUTTON_DOWN | WPAD_BUTTON_UP | WPAD_BUTTON_LEFT | WPAD_BUTTON_RIGHT |
WPAD_CLASSIC_BUTTON_B | WPAD_CLASSIC_BUTTON_UP | WPAD_CLASSIC_BUTTON_DOWN | WPAD_CLASSIC_BUTTON_LEFT | WPAD_CLASSIC_BUTTON_RIGHT)) ||
(t->pad.btns_d & (PAD_BUTTON_UP | PAD_BUTTON_DOWN)))
(t->pad.btns_d & (PAD_BUTTON_UP | PAD_BUTTON_DOWN)) ||
(t->wupcdata.btns_d & (WPAD_CLASSIC_BUTTON_B | WPAD_CLASSIC_BUTTON_UP | WPAD_CLASSIC_BUTTON_DOWN | WPAD_CLASSIC_BUTTON_LEFT | WPAD_CLASSIC_BUTTON_RIGHT)))
pressedChan = t->chan;
if(browser->browserList.size() > FILEBROWSERSIZE)
scrollBar.Update(t);
if(pressedChan == -1 || (!t->wpad.btns_h && !t->pad.btns_h))
if(pressedChan == -1 || (!t->wpad.btns_h && !t->pad.btns_h && !t->wupcdata.btns_h))
{
for (int i = 0; i < FILEBROWSERSIZE; i++)
{
@ -207,7 +208,7 @@ void GuiFileBrowser::Update(GuiTrigger * t)
}
if(pressedChan == t->chan && !t->wpad.btns_d && !t->wpad.btns_h)
if(pressedChan == t->chan && !t->wpad.btns_d && !t->wpad.btns_h && !t->wupcdata.btns_d && !t->wupcdata.btns_h)
pressedChan = -1;
scrollBar.SetPageSize(FILEBROWSERSIZE);

View File

@ -337,7 +337,7 @@ void GuiGameCarousel::Update(GuiTrigger * t)
// Left/Right Navigation
if (btnLeft->GetState() == STATE_CLICKED)
{
u32 buttons = t->wpad.btns_h;
u32 buttons = t->wpad.btns_h | t->wupcdata.btns_h;
u32 buttonsPAD = t->pad.btns_h;
if (!((buttons & WPAD_BUTTON_A) || (buttons & WPAD_BUTTON_MINUS) ||
(buttons & WPAD_CLASSIC_BUTTON_A) || (buttons & WPAD_CLASSIC_BUTTON_MINUS) ||
@ -353,7 +353,7 @@ void GuiGameCarousel::Update(GuiTrigger * t)
}
else if (btnRight->GetState() == STATE_CLICKED)
{
u32 buttons = t->wpad.btns_h;
u32 buttons = t->wpad.btns_h | t->wupcdata.btns_h;
u32 buttonsPAD = t->pad.btns_h;
if (!((buttons & WPAD_BUTTON_A) || (buttons & WPAD_BUTTON_PLUS) ||
(buttons & WPAD_CLASSIC_BUTTON_A) || (buttons & WPAD_CLASSIC_BUTTON_PLUS) ||

View File

@ -472,7 +472,7 @@ void GuiGameGrid::Update(GuiTrigger * t)
if (btnLeft->GetState() == STATE_CLICKED)
{
u32 buttons = t->wpad.btns_h;
u32 buttons = t->wpad.btns_h | t->wupcdata.btns_h;
u32 buttonsPAD = t->pad.btns_h;
if (!((buttons & WPAD_BUTTON_A) || (buttons & WPAD_BUTTON_MINUS) ||
(buttons & WPAD_CLASSIC_BUTTON_A) || (buttons & WPAD_CLASSIC_BUTTON_MINUS) ||
@ -488,7 +488,7 @@ void GuiGameGrid::Update(GuiTrigger * t)
}
else if (btnRight->GetState() == STATE_CLICKED)
{
u32 buttons = t->wpad.btns_h;
u32 buttons = t->wpad.btns_h | t->wupcdata.btns_h;
u32 buttonsPAD = t->pad.btns_h;
if (!((buttons & WPAD_BUTTON_A) || (buttons & WPAD_BUTTON_PLUS) ||
(buttons & WPAD_CLASSIC_BUTTON_A) || (buttons & WPAD_CLASSIC_BUTTON_PLUS) ||

View File

@ -258,13 +258,14 @@ void GuiGameList::Update(GuiTrigger * t)
if((t->wpad.btns_d & (WPAD_BUTTON_B | WPAD_BUTTON_DOWN | WPAD_BUTTON_UP | WPAD_BUTTON_LEFT | WPAD_BUTTON_RIGHT |
WPAD_CLASSIC_BUTTON_B | WPAD_CLASSIC_BUTTON_UP | WPAD_CLASSIC_BUTTON_DOWN | WPAD_CLASSIC_BUTTON_LEFT | WPAD_CLASSIC_BUTTON_RIGHT)) ||
(t->pad.btns_d & (PAD_BUTTON_UP | PAD_BUTTON_DOWN)))
(t->pad.btns_d & (PAD_BUTTON_UP | PAD_BUTTON_DOWN)) ||
(t->wupcdata.btns_d & (WPAD_CLASSIC_BUTTON_B | WPAD_CLASSIC_BUTTON_UP | WPAD_CLASSIC_BUTTON_DOWN | WPAD_CLASSIC_BUTTON_LEFT | WPAD_CLASSIC_BUTTON_RIGHT)))
pressedChan = t->chan;
// update the location of the scroll box based on the position in the option list
scrollBar.Update(t);
if(pressedChan == -1 || (!t->wpad.btns_h && !t->pad.btns_h))
if(pressedChan == -1 || (!t->wpad.btns_h && !t->pad.btns_h && !t->wupcdata.btns_h))
{
for (int i = 0, next = listOffset; i < pagesize; ++i, ++next)
{
@ -283,7 +284,7 @@ void GuiGameList::Update(GuiTrigger * t)
}
}
if(pressedChan == t->chan && !t->wpad.btns_d && !t->wpad.btns_h)
if(pressedChan == t->chan && !t->wpad.btns_d && !t->wpad.btns_h && !t->wupcdata.btns_d && !t->wupcdata.btns_h)
pressedChan = -1;
scrollBar.SetPageSize(pagesize);

View File

@ -227,13 +227,14 @@ void GuiOptionBrowser::Update(GuiTrigger * t)
if((t->wpad.btns_d & (WPAD_BUTTON_B | WPAD_BUTTON_DOWN | WPAD_BUTTON_UP | WPAD_BUTTON_LEFT | WPAD_BUTTON_RIGHT |
WPAD_CLASSIC_BUTTON_B | WPAD_CLASSIC_BUTTON_UP | WPAD_CLASSIC_BUTTON_DOWN | WPAD_CLASSIC_BUTTON_LEFT | WPAD_CLASSIC_BUTTON_RIGHT)) ||
(t->pad.btns_d & (PAD_BUTTON_UP | PAD_BUTTON_DOWN)))
(t->pad.btns_d & (PAD_BUTTON_UP | PAD_BUTTON_DOWN)) ||
(t->wupcdata.btns_d & (WPAD_CLASSIC_BUTTON_B | WPAD_CLASSIC_BUTTON_UP | WPAD_CLASSIC_BUTTON_DOWN | WPAD_CLASSIC_BUTTON_LEFT | WPAD_CLASSIC_BUTTON_RIGHT)))
pressedChan = t->chan;
// update the location of the scroll box based on the position in the option list
scrollBar.Update(t);
if(pressedChan == -1 || (!t->wpad.btns_h && !t->pad.btns_h))
if(pressedChan == -1 || (!t->wpad.btns_h && !t->pad.btns_h && !t->wupcdata.btns_h))
{
for(int i = 0; i < listSize; i++)
{
@ -253,7 +254,7 @@ void GuiOptionBrowser::Update(GuiTrigger * t)
}
}
if(pressedChan == t->chan && !t->wpad.btns_d && !t->wpad.btns_h)
if(pressedChan == t->chan && !t->wpad.btns_d && !t->wpad.btns_h && !t->wupcdata.btns_d && !t->wupcdata.btns_h)
pressedChan = -1;
if(selectedItem != oldSelectedItem)

View File

@ -439,7 +439,7 @@ void GuiScrollbar::ScrollByButton(GuiTrigger *t)
if(!t->wpad.ir.valid || ScrollState < ButtonScrollSpeed-ButtonScrollSpeed*fabs(pressedPosition-t->wpad.ir.y)/250.f)
return;
if(pressedChan == -1 && (t->wpad.btns_d & ButtonScroll) &&
if(pressedChan == -1 && ((t->wpad.btns_d & ButtonScroll) || (t->wupcdata.btns_d & ButtonScroll) ) &&
parentElement && parentElement->IsInside(t->wpad.ir.x, t->wpad.ir.y))
{
pressedPosition = t->wpad.ir.y;
@ -447,7 +447,7 @@ void GuiScrollbar::ScrollByButton(GuiTrigger *t)
oneButtonScrollImg->SetPosition(t->wpad.ir.x-oneButtonScrollImg->GetWidth()/2, t->wpad.ir.y-oneButtonScrollImg->GetHeight()/2);
}
if(pressedChan == t->chan && (t->wpad.btns_h & ButtonScroll))
if(pressedChan == t->chan && ((t->wpad.btns_h & ButtonScroll) || (t->wupcdata.btns_h & ButtonScroll) ))
{
if(pressedPosition-oneButtonScrollImg->GetHeight()/2 > t->wpad.ir.y)
ScrollOneUp();
@ -458,7 +458,7 @@ void GuiScrollbar::ScrollByButton(GuiTrigger *t)
listChanged(SelItem, SelInd);
}
if(pressedChan == t->chan && !t->wpad.btns_d && !t->wpad.btns_h)
if(pressedChan == t->chan && !t->wpad.btns_d && !t->wpad.btns_h && !t->wupcdata.btns_d && !t->wupcdata.btns_h)
{
pressedChan = -1;
pressedPosition = -1;

View File

@ -18,6 +18,7 @@ static int scrollDelay = 0;
GuiTrigger::GuiTrigger()
{
chan = -1;
memset(&wupcdata, 0, sizeof(WUPCFULLData));
memset(&wpad, 0, sizeof(WPADData));
memset(&pad, 0, sizeof(PADData));
}
@ -38,6 +39,7 @@ void GuiTrigger::SetSimpleTrigger(s32 ch, u32 wiibtns, u16 gcbtns)
{
type = TRIGGER_SIMPLE;
chan = ch;
wupcdata.btns_d = wiibtns;
wpad.btns_d = wiibtns;
pad.btns_d = gcbtns;
}
@ -51,6 +53,7 @@ void GuiTrigger::SetHeldTrigger(s32 ch, u32 wiibtns, u16 gcbtns)
{
type = TRIGGER_HELD;
chan = ch;
wupcdata.btns_h = wiibtns;
wpad.btns_h = wiibtns;
pad.btns_h = gcbtns;
}
@ -63,6 +66,7 @@ void GuiTrigger::SetButtonOnlyTrigger(s32 ch, u32 wiibtns, u16 gcbtns)
{
type = TRIGGER_BUTTON_ONLY;
chan = ch;
wupcdata.btns_d = wiibtns;
wpad.btns_d = wiibtns;
pad.btns_d = gcbtns;
}
@ -126,13 +130,16 @@ s8 GuiTrigger::WPAD_Stick(u8 right, int axis)
bool GuiTrigger::Left()
{
u32 wiibtn = WPAD_BUTTON_LEFT;
if(wpad.exp.type == WPAD_EXP_CLASSIC)
if(wpad.exp.type == WPAD_EXP_CLASSIC || (wupcdata.btns_d | wupcdata.btns_h) > 0)
wiibtn |= WPAD_CLASSIC_BUTTON_LEFT;
if ( ((wpad.btns_d | wpad.btns_h) & wiibtn)
if( ((wpad.btns_d | wpad.btns_h) & wiibtn)
|| ((wupcdata.btns_d | wupcdata.btns_h) & wiibtn)
|| ((pad.btns_d | pad.btns_h) & PAD_BUTTON_LEFT))
{
if ((wpad.btns_d & wiibtn) || (pad.btns_d & PAD_BUTTON_LEFT))
if( (wpad.btns_d & wiibtn)
|| (wupcdata.btns_d & wiibtn)
|| (pad.btns_d & PAD_BUTTON_LEFT))
{
scrollDelay = SCROLL_INITIAL_DELAY; // reset scroll delay.
return true;
@ -149,13 +156,16 @@ bool GuiTrigger::Left()
bool GuiTrigger::Right()
{
u32 wiibtn = WPAD_BUTTON_RIGHT;
if(wpad.exp.type == WPAD_EXP_CLASSIC)
if(wpad.exp.type == WPAD_EXP_CLASSIC || (wupcdata.btns_d | wupcdata.btns_h))
wiibtn |= WPAD_CLASSIC_BUTTON_RIGHT;
if ( ((wpad.btns_d | wpad.btns_h) & wiibtn)
|| ((pad.btns_d | pad.btns_h) & PAD_BUTTON_RIGHT))
if( ((wpad.btns_d | wpad.btns_h) & wiibtn)
|| ((pad.btns_d | pad.btns_h) & PAD_BUTTON_RIGHT)
|| ((wupcdata.btns_d | wupcdata.btns_h) & wiibtn))
{
if ((wpad.btns_d & wiibtn) || (pad.btns_d & PAD_BUTTON_RIGHT))
if( (wpad.btns_d & wiibtn)
|| (pad.btns_d & PAD_BUTTON_RIGHT)
|| (wupcdata.btns_d & wiibtn))
{
scrollDelay = SCROLL_INITIAL_DELAY; // reset scroll delay.
return true;
@ -172,13 +182,16 @@ bool GuiTrigger::Right()
bool GuiTrigger::Up()
{
u32 wiibtn = WPAD_BUTTON_UP;
if(wpad.exp.type == WPAD_EXP_CLASSIC)
if(wpad.exp.type == WPAD_EXP_CLASSIC || (wupcdata.btns_d | wupcdata.btns_h))
wiibtn |= WPAD_CLASSIC_BUTTON_UP;
if ( ((wpad.btns_d | wpad.btns_h) & wiibtn)
|| ((pad.btns_d | pad.btns_h) & PAD_BUTTON_UP))
if( ((wpad.btns_d | wpad.btns_h) & wiibtn)
|| ((pad.btns_d | pad.btns_h) & PAD_BUTTON_UP)
|| ((wupcdata.btns_d | wupcdata.btns_h) & wiibtn))
{
if ((wpad.btns_d & wiibtn) || (pad.btns_d & PAD_BUTTON_UP))
if( (wpad.btns_d & wiibtn)
|| (wupcdata.btns_d & wiibtn)
|| (pad.btns_d & PAD_BUTTON_UP))
{
scrollDelay = SCROLL_INITIAL_DELAY; // reset scroll delay.
return true;
@ -195,13 +208,16 @@ bool GuiTrigger::Up()
bool GuiTrigger::Down()
{
u32 wiibtn = WPAD_BUTTON_DOWN;
if(wpad.exp.type == WPAD_EXP_CLASSIC)
if(wpad.exp.type == WPAD_EXP_CLASSIC || (wupcdata.btns_d | wupcdata.btns_h))
wiibtn |= WPAD_CLASSIC_BUTTON_DOWN;
if ( ((wpad.btns_d | wpad.btns_h) & wiibtn)
|| ((pad.btns_d | pad.btns_h) & PAD_BUTTON_DOWN))
if( ((wpad.btns_d | wpad.btns_h) & wiibtn)
|| ((pad.btns_d | pad.btns_h) & PAD_BUTTON_DOWN)
|| ((wupcdata.btns_d | wupcdata.btns_h) & wiibtn))
{
if ((wpad.btns_d & wiibtn) || (pad.btns_d & PAD_BUTTON_DOWN))
if( (wpad.btns_d & wiibtn)
|| (pad.btns_d & PAD_BUTTON_DOWN)
|| (wupcdata.btns_d & wiibtn))
{
scrollDelay = SCROLL_INITIAL_DELAY; // reset scroll delay.
return true;

View File

@ -588,10 +588,10 @@ const char *nintendontBuildDate(const char *NIN_loader_path)
if((*(u32*)(buffer+i+2)) == 'nten' && (*(u32*)(buffer+i+6)) == 'dont' && (*(u32*)(buffer+i+11)) == 'Load')
{
// Write buffer in NINheader
char NINHeader[61];
for(int j = 0 ; j < 60 ; j++)
char NINHeader[100];
for(int j = 0 ; j < 99 ; j++)
NINHeader[j] = *(u8*)(buffer+i+j) == 0 ? ' ' : *(u8*)(buffer+i+j); // replace \0 with a space.
NINHeader[60] = '\0';
NINHeader[99] = '\0';
// Search month string start position in header
char *dateStart = NULL;
@ -608,7 +608,7 @@ const char *nintendontBuildDate(const char *NIN_loader_path)
dateStart[20] = '\0';
snprintf(NINBuildDate, sizeof(NINBuildDate), "%.20s", dateStart);
gprintf("Nintendont Build date : %s \n", dateStart);
gprintf("Nintendont Build date : %.20s \n", dateStart);
found = true;
break;

View File

@ -53,6 +53,7 @@ enum ninconfig
NIN_CFG_LOG = (1<<12), // v1.109
NIN_CFG_MC_MULTI = (1<<13), // v1.135
NIN_CFG_NATIVE_SI = (1<<14), // v2.189
NIN_CFG_WIIU_WIDE = (1<<15), //v2.258
};
enum ninvideomode

View File

@ -4,6 +4,7 @@
#include "video.h"
#include "audio.h"
#include "input.h"
#include "sicksaxis-wrapper.h"
#include "themes/CTheme.h"
#include "gecko.h"
#include "Controls/DeviceHandler.hpp"
@ -277,6 +278,8 @@ int StartUpProcess::Execute()
// Shut down pads
WPAD_Shutdown();
WUPC_Shutdown();
DS3_Cleanup();
// Loading now the cios setup in the settings
IosLoader::LoadAppCios();

View File

@ -1,6 +1,7 @@
/****************************************************************************
* libwiigui Template
* Tantric 2009
* Cyan 2015
*
* input.cpp
* Wii/GameCube controller management
@ -14,12 +15,16 @@
#include <ogcsys.h>
#include <unistd.h>
#include <wiiuse/wpad.h>
#include <wupc/wupc.h>
#include <sicksaxis.h>
#include "sicksaxis-wrapper.h"
#include "menu.h"
#include "video.h"
#include "input.h"
#include "GUI/gui.h"
#include "sys.h"
#include "gecko.h"
int rumbleRequest[4] = { 0, 0, 0, 0 };
GuiTrigger userInput[4];
@ -32,8 +37,10 @@ static int rumbleCount[4] = { 0, 0, 0, 0 };
***************************************************************************/
void UpdatePads()
{
WUPC_UpdateButtonStats();
WPAD_ScanPads();
PAD_ScanPads();
DS3_ScanPads();
for (int i = 3; i >= 0; i--)
{
@ -49,6 +56,37 @@ void UpdatePads()
userInput[i].pad.triggerL = PAD_TriggerL(i);
userInput[i].pad.triggerR = PAD_TriggerR(i);
// WiiU Pro Controller
userInput[i].wupcdata.btns_d = WUPC_ButtonsDown(i);
userInput[i].wupcdata.btns_u = WUPC_ButtonsUp(i);
userInput[i].wupcdata.btns_h = WUPC_ButtonsHeld(i);
userInput[i].wupcdata.stickX = WUPC_lStickX(i);
userInput[i].wupcdata.stickY = WUPC_lStickY(i);
userInput[i].wupcdata.substickX = WUPC_rStickX(i);
userInput[i].wupcdata.substickY = WUPC_rStickY(i);
// Don't use only held to disconnect, on reconnect the pad sends last held state for a short time.
if((WUPC_ButtonsHeld(i) & WUPC_EXTRA_BUTTON_RSTICK && WUPC_ButtonsDown(i) & WUPC_EXTRA_BUTTON_LSTICK) // R3+L3
||(WUPC_ButtonsHeld(i) & WUPC_EXTRA_BUTTON_LSTICK && WUPC_ButtonsDown(i) & WUPC_EXTRA_BUTTON_RSTICK))
WUPC_Disconnect(i);
// Playstation 3 controller (required IOS58)
if (DS3_Connected() && i==0)
{
// Maps PS3 controller to Classic Controller Exp.
userInput[0].wpad.btns_d |= DS3_ButtonsDown();
userInput[0].wpad.btns_u |= DS3_ButtonsUp();
userInput[0].wpad.btns_h |= DS3_ButtonsHeld();
if(DS3_ButtonsDown() || DS3_ButtonsHeld())
userInput[i].wpad.exp.type = WPAD_EXP_CLASSIC; // Fake the Classic Controller expansion checking even if wiimote/cc not powered
userInput[0].pad.stickX = abs(DS3_StickX()) > 10 ? DS3_StickX() : PAD_StickX(i);
userInput[0].pad.stickY = abs(DS3_StickY()) > 10 ? DS3_StickY() : PAD_StickY(i);
userInput[0].pad.substickX = abs(DS3_SubStickX()) > 10 ? DS3_SubStickX() : PAD_SubStickX(i);
userInput[0].pad.substickY = abs(DS3_SubStickY()) > 10 ? DS3_SubStickY() : PAD_SubStickY(i);
}
if (Settings.rumble == ON) DoRumble(i);
if(userInput[i].wpad.exp.type == WPAD_EXP_NUNCHUK)
@ -117,8 +155,10 @@ bool ControlActivityTimeout(void)
***************************************************************************/
void SetupPads()
{
WUPC_Init();
PAD_Init();
WPAD_Init();
DS3_Init();
// read wiimote accelerometer and IR data
WPAD_SetDataFormat(WPAD_CHAN_ALL, WPAD_FMT_BTNS_ACC_IR);
@ -139,6 +179,7 @@ void ShutoffRumble()
{
for (int i = 0; i < 4; i++)
{
WUPC_Rumble(i, 0);
WPAD_Rumble(i, 0);
rumbleCount[i] = 0;
}
@ -151,6 +192,7 @@ void DoRumble(int i)
{
if (rumbleRequest[i] && rumbleCount[i] < 3)
{
WUPC_Rumble(i, 1);
WPAD_Rumble(i, 1); // rumble on
rumbleCount[i]++;
}
@ -158,11 +200,13 @@ void DoRumble(int i)
{
rumbleCount[i] = 20;
rumbleRequest[i] = 0;
if(DS3_Connected()) DS3_Rumble();
}
else
{
if (rumbleCount[i]) rumbleCount[i]--;
WPAD_Rumble(i, 0); // rumble off
WUPC_Rumble(i, 0);
}
}

View File

@ -14,6 +14,7 @@
#define PI 3.14159265f
#define PADCAL 50
#define WUPCCAL 400
extern int rumbleRequest[4];

View File

@ -222,6 +222,7 @@ bool CGameSettings::Save()
fprintf(f, "NINUSBHID:%d; ", GameList[i].NINUSBHID);
fprintf(f, "NINMaxPads:%d; ", GameList[i].NINMaxPads);
fprintf(f, "NINNativeSI:%d; ", GameList[i].NINNativeSI);
fprintf(f, "NINWiiUWide:%d; ", GameList[i].NINWiiUWide);
fprintf(f, "NINOSReport:%d; ", GameList[i].NINOSReport);
fprintf(f, "NINLED:%d; ", GameList[i].NINLED);
fprintf(f, "NINLog:%d; ", GameList[i].NINLog);
@ -430,6 +431,11 @@ bool CGameSettings::SetSetting(GameCFG & game, const char *name, const char *val
game.NINNativeSI = atoi(value);
return true;
}
else if(strcmp(name, "NINWiiUWide") == 0)
{
game.NINWiiUWide = atoi(value);
return true;
}
else if(strcmp(name, "NINOSReport") == 0)
{
game.NINOSReport = atoi(value);
@ -632,6 +638,7 @@ void CGameSettings::SetDefault(GameCFG &game)
game.NINUSBHID = INHERIT;
game.NINMaxPads = INHERIT;
game.NINNativeSI = INHERIT;
game.NINWiiUWide = INHERIT;
game.NINOSReport = INHERIT;
game.NINLED = INHERIT;
game.NINLog = INHERIT;

View File

@ -46,6 +46,7 @@ typedef struct _GameCFG
short NINUSBHID;
short NINMaxPads;
short NINNativeSI;
short NINWiiUWide;
short NINOSReport;
short NINLED;
short NINLog;
@ -100,6 +101,7 @@ typedef struct _GameCFG
this->NINUSBHID = game.NINUSBHID;
this->NINMaxPads = game.NINMaxPads;
this->NINNativeSI = game.NINNativeSI;
this->NINWiiUWide = game.NINWiiUWide;
this->NINOSReport = game.NINOSReport;
this->NINLED = game.NINLED;
this->NINLog = game.NINLog;

View File

@ -187,9 +187,11 @@ void CSettings::SetDefault()
NINMCEmulation = ON;
NINMCSize = 2;
NINAutoboot = ON;
NINSettings = AUTO;
NINUSBHID = OFF;
NINMaxPads = 1;
NINNativeSI = OFF;
NINWiiUWide = widescreen;
NINOSReport = OFF;
NINLED = OFF;
NINLog = OFF;
@ -435,9 +437,11 @@ bool CSettings::Save()
fprintf(file, "NINMCEmulation = %d\n", NINMCEmulation);
fprintf(file, "NINMCSize = %d\n", NINMCSize);
fprintf(file, "NINAutoboot = %d\n", NINAutoboot);
fprintf(file, "NINSettings = %d\n", NINSettings);
fprintf(file, "NINUSBHID = %d\n", NINUSBHID);
fprintf(file, "NINMaxPads = %d\n", NINMaxPads);
fprintf(file, "NINNativeSI = %d\n", NINNativeSI);
fprintf(file, "NINWiiUWide = %d\n", NINWiiUWide);
fprintf(file, "NINOSReport = %d\n", NINOSReport);
fprintf(file, "NINLED = %d\n", NINLED);
fprintf(file, "NINLog = %d\n", NINLog);
@ -931,6 +935,11 @@ bool CSettings::SetSetting(char *name, char *value)
NINAutoboot = atoi(value);
return true;
}
else if (strcmp(name, "NINSettings") == 0)
{
NINSettings = atoi(value);
return true;
}
else if (strcmp(name, "NINUSBHID") == 0)
{
NINUSBHID = atoi(value);
@ -946,6 +955,11 @@ bool CSettings::SetSetting(char *name, char *value)
NINNativeSI = atoi(value);
return true;
}
else if (strcmp(name, "NINWiiUWide") == 0)
{
NINWiiUWide = atoi(value);
return true;
}
else if (strcmp(name, "NINOSReport") == 0)
{
NINOSReport = atoi(value);

View File

@ -191,9 +191,11 @@ class CSettings
short NINMCEmulation;
short NINMCSize;
short NINAutoboot;
short NINSettings;
short NINUSBHID;
short NINMaxPads;
short NINNativeSI;
short NINWiiUWide;
short NINOSReport;
short NINLED;
short NINLog;

View File

@ -21,6 +21,8 @@
* 3. This notice may not be removed or altered from any source
* distribution.
***************************************************************************/
#include <gccore.h>
#include <ogc/machine/processor.h>
#include <unistd.h>
#include "FeatureSettingsMenu.hpp"
#include "Channels/channels.h"
@ -72,6 +74,7 @@ FeatureSettingsMenu::FeatureSettingsMenu()
Options->SetName(Idx++, "%s", tr( "Dump NAND to EmuNand" ));
Options->SetName(Idx++, "%s", tr( "Install WAD to EmuNand" ));
Options->SetName(Idx++, "%s", tr( "Update Nintendont" ));
Options->SetName(Idx++, "%s", tr( "WiiU Widescreen" ));
OldTitlesOverride = Settings.titlesOverride;
OldCacheTitles = Settings.CacheTitles;
@ -151,6 +154,10 @@ void FeatureSettingsMenu::SetOptionValues()
//! Settings: Update Nintendont
Options->SetValue(Idx++, " ");
//! Settings: WiiU Widescreen
Options->SetValue(Idx++, " ");
}
int FeatureSettingsMenu::GetMenuInternal()
@ -543,6 +550,21 @@ int FeatureSettingsMenu::GetMenuInternal()
}
}
// WiiU Aspect switcher (Thanks Tueidj)
else if (ret == ++Idx)
{
if( read32(0xd8006a0) == 0x30000004)
{
write32(0xd8006a0, 0x30000002), mask32(0xd8006a8, 0, 2); // Set 4:3
Settings.widescreen = OFF;
}
else
{
write32(0xd8006a0, 0x30000004), mask32(0xd8006a8, 0, 2); // Set 16:9
Settings.widescreen = ON;
}
}
SetOptionValues();
return MENU_NONE;

View File

@ -102,7 +102,7 @@ static const char * NINMCText[] =
{
trNOOP( "OFF" ),
trNOOP( "Individual" ),
trNOOP( "ON" ),
trNOOP( "ON (Multi)" ),
};
static int currentGCmode = 0;
@ -196,6 +196,7 @@ void GCGameLoadSM::SetOptionNames()
Options->SetName(Idx++, "%s", tr( "USB-HID Controller" ));
Options->SetName(Idx++, "%s", tr( "GameCube Controller" ));
Options->SetName(Idx++, "%s", tr( "Native Controller" ));
Options->SetName(Idx++, "%s", tr( "WiiU Widescreen" ));
Options->SetName(Idx++, "%s", tr( "LED Activity" ));
Options->SetName(Idx++, "%s", tr( "Debug" ));
Options->SetName(Idx++, "%s", tr( "OSReport" ));
@ -389,6 +390,12 @@ void GCGameLoadSM::SetOptionValues()
else
Options->SetValue(Idx++, "%s", tr(OnOffText[GameConfig.NINNativeSI]));
//! Settings: WiiU Widescreen
if(GameConfig.NINWiiUWide == INHERIT)
Options->SetValue(Idx++, tr("Use global"));
else
Options->SetValue(Idx++, "%s", tr(OnOffText[GameConfig.NINWiiUWide]));
//! Settings: NIN LED Activity
if(GameConfig.NINLED == INHERIT)
Options->SetValue(Idx++, tr("Use global"));
@ -683,6 +690,12 @@ int GCGameLoadSM::GetMenuInternal()
if (++GameConfig.NINNativeSI >= MAX_ON_OFF) GameConfig.NINNativeSI = INHERIT;
}
//! Settings: WiiU Widescreen
else if (currentGCmode == GC_MODE_NINTENDONT && ret == ++Idx)
{
if (++GameConfig.NINWiiUWide >= MAX_ON_OFF) GameConfig.NINWiiUWide = INHERIT;
}
//! Settings: NIN LED Activity
else if (currentGCmode == GC_MODE_NINTENDONT && ret == ++Idx)
{

View File

@ -167,7 +167,14 @@ static const char * NINMCText[] =
{
trNOOP( "OFF" ),
trNOOP( "Individual" ),
trNOOP( "ON" ),
trNOOP( "ON (Multi)" ),
};
static const char * NINCfgText[] =
{
trNOOP( "Delete" ),
trNOOP( "Create" ),
trNOOP( "No change" ),
};
static const char * PrivServText[] =
@ -219,12 +226,14 @@ LoaderSettings::LoaderSettings()
Options->SetName(Idx++, "%s", tr( "Japanese Patch" ));
Options->SetName(Idx++, "%s", tr( "--== Nintendont" ));
Options->SetName(Idx++, "%s", tr( "Auto Boot" ));
Options->SetName(Idx++, "%s", tr( "Settings File" ));
Options->SetName(Idx++, "%s", tr( "Video Deflicker" ));
Options->SetName(Idx++, "%s", tr( "Memory Card Emulation" ));
Options->SetName(Idx++, "%s", tr( "Memory Card Blocks Size" ));
Options->SetName(Idx++, "%s", tr( "USB-HID Controller" ));
Options->SetName(Idx++, "%s", tr( "GameCube Controller" ));
Options->SetName(Idx++, "%s", tr( "Native Controller" ));
Options->SetName(Idx++, "%s", tr( "WiiU Widescreen" ));
Options->SetName(Idx++, "%s", tr( "LED Activity" ));
Options->SetName(Idx++, "%s", tr( "OSReport" ));
Options->SetName(Idx++, "%s", tr( "Log to file" ));
@ -398,6 +407,9 @@ void LoaderSettings::SetOptionValues()
//! Settings: TITLE - NIN Auto Boot
Options->SetValue(Idx++, "%s", tr(OnOffText[Settings.NINAutoboot]));
//! Settings: TITLE - NIN Nincfg.bin file
Options->SetValue(Idx++, "%s", tr(NINCfgText[Settings.NINSettings]));
//! Settings: TITLE - NIN Video Deflicker
Options->SetValue(Idx++, "%s", tr(OnOffText[Settings.NINDeflicker]));
@ -416,6 +428,9 @@ void LoaderSettings::SetOptionValues()
//! Settings: TITLE - NIN Native Controller
Options->SetValue(Idx++, "%s", tr(OnOffText[Settings.NINNativeSI]));
//! Settings: TITLE - WiiU Widescreen
Options->SetValue(Idx++, "%s", tr(OnOffText[Settings.NINWiiUWide]));
//! Settings: TITLE - NIN LED Activity
Options->SetValue(Idx++, "%s", tr(OnOffText[Settings.NINLED]));
@ -736,6 +751,12 @@ int LoaderSettings::GetMenuInternal()
if (++Settings.NINAutoboot >= MAX_ON_OFF) Settings.NINAutoboot = 0;
}
//! Settings: NIN Nincfg.bin file
else if (ret == ++Idx)
{
if (++Settings.NINSettings > AUTO) Settings.NINSettings = 0;
}
//! Settings: NIN Video Deflicker
else if (ret == ++Idx)
{
@ -774,6 +795,12 @@ int LoaderSettings::GetMenuInternal()
if (++Settings.NINNativeSI >= MAX_ON_OFF) Settings.NINNativeSI = 0;
}
//! Settings: WiiU Widescreen
else if (ret == ++Idx)
{
if (++Settings.NINWiiUWide >= MAX_ON_OFF) Settings.NINWiiUWide = 0;
}
//! Settings: NIN LED Activity
else if (ret == ++Idx)
{

135
source/sicksaxis-wrapper.c Normal file
View File

@ -0,0 +1,135 @@
/*
// A simple wrapper for libsicksaxis, to make it resemble WPAD/PAD more closely.
// Written by daxtsu/thedax. I'm releasing this code into the public domain, so do whatever you want with it.
//
// 2015-01 Cyan
// Added Buttons state Up and Held.
//
*/
#include <sicksaxis.h>
#include "sicksaxis-wrapper.h"
static DS3 first;
static bool psPressed = false;
static unsigned int ButtonsUp;
static unsigned int ButtonsDown;
static unsigned int ButtonsHeld;
bool DS3_Init()
{
USB_Initialize();
if (ss_init() < 0)
{
return false;
}
ss_initialize(&first);
return true;
}
void DS3_Rumble()
{
if (first.connected && psPressed)
{
ss_set_rumble(&first, 2, 255, 2, 255);
}
}
void DS3_Cleanup()
{
psPressed = false;
ss_close(&first);
USB_Deinitialize();
}
unsigned int DS3_ButtonsDown()
{
if (!ss_is_connected(&first) || !psPressed)
return 0;
DS3 *controller;
controller = &first;
unsigned int pressed = 0;
pressed |= controller->pad.buttons.PS ? DS3_BUTTON_PS : 0;
pressed |= controller->pad.buttons.start ? DS3_BUTTON_START : 0;
pressed |= controller->pad.buttons.select ? DS3_BUTTON_SELECT : 0;
pressed |= controller->pad.buttons.triangle ? DS3_BUTTON_TRIANGLE : 0;
pressed |= controller->pad.buttons.circle ? DS3_BUTTON_CIRCLE : 0;
pressed |= controller->pad.buttons.cross ? DS3_BUTTON_CROSS : 0;
pressed |= controller->pad.buttons.square ? DS3_BUTTON_SQUARE : 0;
pressed |= controller->pad.buttons.up ? DS3_BUTTON_UP : 0;
pressed |= controller->pad.buttons.right ? DS3_BUTTON_RIGHT : 0;
pressed |= controller->pad.buttons.down ? DS3_BUTTON_DOWN : 0;
pressed |= controller->pad.buttons.left ? DS3_BUTTON_LEFT : 0;
pressed |= controller->pad.buttons.L1 ? DS3_BUTTON_L1 : 0;
pressed |= controller->pad.buttons.L2 ? DS3_BUTTON_L2 : 0;
// pressed |= controller->pad.buttons.L3 ? DS3_BUTTON_L3 : 0;
pressed |= controller->pad.buttons.R1 ? DS3_BUTTON_R1 : 0;
pressed |= controller->pad.buttons.R2 ? DS3_BUTTON_R2 : 0;
// pressed |= controller->pad.buttons.R3 ? DS3_BUTTON_R3 : 0;
ButtonsUp = ButtonsHeld & ~pressed;
ButtonsDown = ~ButtonsHeld & pressed;
ButtonsHeld = pressed;
return ButtonsDown;
}
unsigned int DS3_ButtonsHeld()
{
return ButtonsHeld;
}
unsigned int DS3_ButtonsUp()
{
return ButtonsUp;
}
bool DS3_Connected()
{
return first.connected > 0 && psPressed;
}
void DS3_ScanPads()
{
if (!ss_is_connected(&first))
{
psPressed = false;
ss_initialize(&first);
if (ss_open(&first) > 0)
{
ss_start_reading(&first);
ss_set_led(&first, 0);
}
}
else if (first.pad.buttons.PS && !psPressed)
{
psPressed = true;
ss_set_led(&first, 1);
}
}
int DS3_StickX()
{
return psPressed? first.pad.left_analog.x - 128 : 0;
}
int DS3_SubStickX()
{
return psPressed? first.pad.right_analog.x - 128 : 0;
}
int DS3_StickY()
{
return psPressed? 127 - first.pad.left_analog.y : 0;
}
int DS3_SubStickY()
{
return psPressed? 127 - first.pad.right_analog.y : 0;
}

View File

@ -0,0 +1,74 @@
// A simple wrapper for libsicksaxis, to make it resemble WPAD/PAD more closely.
// Written by daxtsu/thedax. I'm releasing this code into the public domain, so do whatever you want with it.
#ifndef _DS3WRAPPER_H_
#define _DS3WRAPPER_H_
#include <gctypes.h>
#include <wiiuse/wpad.h>
struct ss_device;
enum
{
// DS3_BUTTON_PS = 1,
// DS3_BUTTON_START = 2,
// DS3_BUTTON_SELECT = 4,
// DS3_BUTTON_TRIANGLE = 8,
// DS3_BUTTON_CIRCLE = 16,
// DS3_BUTTON_CROSS = 32,
// DS3_BUTTON_SQUARE = 64,
// DS3_BUTTON_UP = 128,
// DS3_BUTTON_RIGHT = 256,
// DS3_BUTTON_DOWN = 512,
// DS3_BUTTON_LEFT = 1024,
// DS3_BUTTON_L1 = 2048,
// DS3_BUTTON_L2 = 4096,
// DS3_BUTTON_L3 = 8192,
// DS3_BUTTON_R1 = 16384,
// DS3_BUTTON_R2 = 32768,
// DS3_BUTTON_R3 = 65536,
// Classic Controller mapping
DS3_BUTTON_PS = WPAD_CLASSIC_BUTTON_HOME,
DS3_BUTTON_START = WPAD_CLASSIC_BUTTON_PLUS,
DS3_BUTTON_SELECT = WPAD_CLASSIC_BUTTON_MINUS,
DS3_BUTTON_TRIANGLE = WPAD_CLASSIC_BUTTON_X,
DS3_BUTTON_CIRCLE = WPAD_CLASSIC_BUTTON_A,
DS3_BUTTON_CROSS = WPAD_CLASSIC_BUTTON_B,
DS3_BUTTON_SQUARE = WPAD_CLASSIC_BUTTON_Y,
DS3_BUTTON_UP = WPAD_CLASSIC_BUTTON_UP,
DS3_BUTTON_RIGHT = WPAD_CLASSIC_BUTTON_RIGHT,
DS3_BUTTON_DOWN = WPAD_CLASSIC_BUTTON_DOWN,
DS3_BUTTON_LEFT = WPAD_CLASSIC_BUTTON_LEFT,
DS3_BUTTON_L1 = WPAD_CLASSIC_BUTTON_FULL_L,
DS3_BUTTON_L2 = WPAD_CLASSIC_BUTTON_ZL,
// DS3_BUTTON_L3 =
DS3_BUTTON_R1 = WPAD_CLASSIC_BUTTON_FULL_R,
DS3_BUTTON_R2 = WPAD_CLASSIC_BUTTON_ZR,
// DS3_BUTTON_R3 =
};
#ifdef __cplusplus
extern "C" {
#endif /* __cplusplus */
typedef struct ss_device DS3;
bool DS3_Init();
void DS3_Rumble();
void DS3_Cleanup();
u32 DS3_ButtonsDown();
u32 DS3_ButtonsHeld();
u32 DS3_ButtonsUp();
bool DS3_Connected();
void DS3_ScanPads();
int DS3_StickX();
int DS3_SubStickX();
int DS3_StickY();
int DS3_SubStickY();
#ifdef __cplusplus
}
#endif /* __cplusplus */
#endif

View File

@ -27,6 +27,7 @@
#include "video.h"
#include "gecko.h"
#include "wad/nandtitle.h"
#include "sicksaxis-wrapper.h"
extern "C"
{
@ -110,6 +111,7 @@ void AppCleanUp(void)
ResourceManager::DestroyInstance();
WPAD_Shutdown();
DS3_Cleanup();
ISFS_Deinitialize();
}
@ -118,6 +120,7 @@ void ExitApp(void)
AppCleanUp();
WBFS_CloseAll();
DeviceHandler::DestroyInstance();
DS3_Cleanup();
USB_Deinitialize();
if(Settings.PlaylogUpdate)
Playlog_Delete(); // Don't show USB Loader GX in the Wii message board

View File

@ -19,7 +19,7 @@
/**
* Version information for Libruntimeiospatch.
*/
#define LIB_RUNTIMEIOSPATCH_VERSION "1.5.2"
#define LIB_RUNTIMEIOSPATCH_VERSION "1.5.1"
//==============================================================================
// HW_RVL header

View File

@ -925,7 +925,13 @@ int GameBooter::BootDevolution(struct discHdr *gameHdr)
int GameBooter::BootNintendont(struct discHdr *gameHdr)
{
const char *RealPath = GCGames::Instance()->GetPath((const char *) gameHdr->id);
char RealPath[100];
if(gameHdr->type == TYPE_GAME_GC_DISC)
snprintf(RealPath, sizeof(RealPath), "di");
else
snprintf(RealPath, sizeof(RealPath), "%s", GCGames::Instance()->GetPath((const char *) gameHdr->id));
const char *LoaderName = "Nintendont";
GameCFG * game_cfg = GameSettings.GetGameCFG(gameHdr->id);
@ -938,20 +944,17 @@ int GameBooter::BootNintendont(struct discHdr *gameHdr)
u8 ninMCEmulationChoice = game_cfg->NINMCEmulation == INHERIT ? Settings.NINMCEmulation : game_cfg->NINMCEmulation;
u8 ninMCSizeChoice = game_cfg->NINMCSize == INHERIT ? Settings.NINMCSize : game_cfg->NINMCSize;
u8 ninAutobootChoice = Settings.NINAutoboot;
u8 ninSettingsChoice = Settings.NINSettings;
u8 ninUSBHIDChoice = game_cfg->NINUSBHID == INHERIT ? Settings.NINUSBHID : game_cfg->NINUSBHID;
u8 ninMaxPadsChoice = game_cfg->NINMaxPads == INHERIT ? Settings.NINMaxPads : game_cfg->NINMaxPads;
u8 ninNativeSIChoice = game_cfg->NINNativeSI == INHERIT ? Settings.NINNativeSI : game_cfg->NINNativeSI;
u8 ninWiiUWideChoice = game_cfg->NINWiiUWide == INHERIT ? Settings.NINWiiUWide : game_cfg->NINWiiUWide;
u8 ninLEDChoice = game_cfg->NINLED == INHERIT ? Settings.NINLED : game_cfg->NINLED;
u8 ninDebugChoice = game_cfg->DMLDebug == INHERIT ? Settings.DMLDebug : game_cfg->DMLDebug;
u8 ninOSReportChoice = game_cfg->NINOSReport == INHERIT ? Settings.NINOSReport : game_cfg->NINOSReport;
u8 ninLogChoice = game_cfg->NINLog == INHERIT ? Settings.NINLog : game_cfg->NINLog;
const char *ninLoaderPath = game_cfg->NINLoaderPath.size() == 0 ? Settings.NINLoaderPath : game_cfg->NINLoaderPath.c_str();
if(gameHdr->type == TYPE_GAME_GC_DISC)
{
WindowPrompt(tr("Error:"), tr("To run GameCube games from Disc you need to set the GameCube mode to MIOS in the game settings."), tr("OK"));
return 0;
}
if(!CheckAHBPROT())
{
@ -961,7 +964,7 @@ int GameBooter::BootNintendont(struct discHdr *gameHdr)
// Check USB device
if(strncmp(RealPath, "usb", 3) == 0)
if(gameHdr->type != TYPE_GAME_GC_DISC && strncmp(RealPath, "usb", 3) == 0)
{
// Check Main GameCube Path location
if(strncmp(DeviceHandler::PathToFSName(Settings.GameCubePath), "FAT", 3) != 0)
@ -1042,7 +1045,7 @@ int GameBooter::BootNintendont(struct discHdr *gameHdr)
strptime("Mar 29 2014 10:49:31", "%b %d %Y %H:%M:%S", &time); // r39
if(NINLoaderTime < mktime(&time) && strncmp(RealPath, "usb", 3) == 0)
{
WindowPrompt(tr("Error:"), tr("This Nintendont version does not support games on USB."), tr("Ok"));
if(WindowPrompt(tr("Warning:"), tr("This Nintendont version does not support games on USB."), tr("Continue"), tr("Cancel")) == 0)
return 0;
}
}
@ -1068,6 +1071,15 @@ int GameBooter::BootNintendont(struct discHdr *gameHdr)
}
}
// v2.259 - disc support
strptime("Dec 23 2014 17:28:56", "%b %d %Y %H:%M:%S", &time); // v1.259
if(gameHdr->type == TYPE_GAME_GC_DISC && NINLoaderTime < mktime(&time))
{
WindowPrompt(tr("Error:"), tr("To run GameCube games from Disc you need to set the GameCube mode to MIOS in the game settings."), tr("OK"));
return 0;
}
// checks argsboot
if(ninAutobootChoice)
{
@ -1095,6 +1107,25 @@ int GameBooter::BootNintendont(struct discHdr *gameHdr)
return 0;
}
// Set used device when launching game from disc
if(gameHdr->type == TYPE_GAME_GC_DISC && ninMCEmulationChoice)
{
if(Settings.GameCubeSource >= GC_SOURCE_AUTO && strncmp(Settings.GameCubePath, "usb", 3) == 0)
{
if(WindowPrompt("", tr("Where do you want MCEmu to be located?"), tr("SD"), tr("USB")) == 1)
snprintf(RealPath, sizeof(RealPath), "%s:/", DeviceHandler::GetDevicePrefix(Settings.GameCubeSDPath));
else
snprintf(RealPath, sizeof(RealPath), "%s:/", DeviceHandler::GetDevicePrefix(Settings.GameCubePath));
}
else if(Settings.GameCubeSource == GC_SOURCE_MAIN)
{
snprintf(RealPath, sizeof(RealPath), "%s:/", DeviceHandler::GetDevicePrefix(Settings.GameCubePath));
}
else
snprintf(RealPath, sizeof(RealPath), "%s:/", DeviceHandler::GetDevicePrefix(Settings.GameCubeSDPath));
}
// Check Ocarina and cheat file location. the .gct file need to be located on the same partition than the game.
if(ocarinaChoice && strcmp(DeviceHandler::GetDevicePrefix(RealPath), DeviceHandler::GetDevicePrefix(Settings.Cheatcodespath)) != 0)
{
@ -1197,7 +1228,7 @@ int GameBooter::BootNintendont(struct discHdr *gameHdr)
// Check if game has multi Discs
bool bootDisc2 = false;
if(gameHdr->disc_no == 0)
if(gameHdr->type != TYPE_GAME_GC_DISC && gameHdr->disc_no == 0)
{
char disc2Path[255];
snprintf(disc2Path, sizeof(disc2Path), "%s", RealPath);
@ -1226,6 +1257,11 @@ int GameBooter::BootNintendont(struct discHdr *gameHdr)
snprintf(gamePath, sizeof(gamePath), "%s/disc2.iso", gamePath);
}
if(gameHdr->type == TYPE_GAME_GC_DISC)
{
snprintf(gamePath, sizeof(gamePath), "di");
}
// Nintendont Config file settings
NIN_CFG *nin_config = NULL;
@ -1295,6 +1331,8 @@ int GameBooter::BootNintendont(struct discHdr *gameHdr)
nin_config->Config |= NIN_CFG_MC_MULTI; // v1.135+
if(ninNativeSIChoice)
nin_config->Config |= NIN_CFG_NATIVE_SI; // v2.189+
if(ninWiiUWideChoice)
nin_config->Config |= NIN_CFG_WIIU_WIDE; // v2.258+
// Max Pads
nin_config->MaxPads = ninMaxPadsChoice; // NIN_CFG_VERSION 2 r42
@ -1337,8 +1375,8 @@ int GameBooter::BootNintendont(struct discHdr *gameHdr)
Disc_SetVMode();
}
gprintf("NIN: Active device %s\n", nin_config->Config & NIN_CFG_USB ? "USB" : "SD");
gprintf("NIN: config 0x%08x\n", nin_config->Config);
gprintf("NIN: Video mode 0x%08x\n", nin_config->VideoMode);
// Set game language setting
@ -1356,37 +1394,13 @@ int GameBooter::BootNintendont(struct discHdr *gameHdr)
}
gprintf("NIN: Language 0x%08x \n", nin_config->Language);
// Game specific settings
// Metal Gear Solid: The Twin Snakes
if(memcmp("GGS", gameHdr->id, 3) == 0 && nin_config->MaxPads < 2 && !IosLoader::isWiiU())
nin_config->MaxPads = 2; // 2 controller ports required
// Delete existing nincfg.bin files
RemoveFile("sd:/nincfg.bin");
RemoveFile("usb1:/nincfg.bin");
if(NINArgsboot)
if(ninSettingsChoice == OFF)
{
// initialize homebrew and arguments
u8 *buffer = NULL;
u32 filesize = 0;
LoadFileToMem(NIN_loader_path, &buffer, &filesize);
if(!buffer)
{
return 0;
}
FreeHomebrewBuffer();
CopyHomebrewMemory(buffer, 0, filesize);
AddBootArgument(NIN_loader_path);
AddBootArgument((char*)nin_config, sizeof(NIN_CFG));
// Launch Nintendont
return !(BootHomebrewFromMem() < 0);
RemoveFile("sd:/nincfg.bin");
RemoveFile("usb1:/nincfg.bin");
}
else
else if(ninSettingsChoice == ON || !NINArgsboot)
{
// Nintendont Config file path
char NINCfgPath[17];
@ -1423,6 +1437,29 @@ int GameBooter::BootNintendont(struct discHdr *gameHdr)
}
gprintf("done\n");
}
}
if(NINArgsboot)
{
// initialize homebrew and arguments
u8 *buffer = NULL;
u32 filesize = 0;
LoadFileToMem(NIN_loader_path, &buffer, &filesize);
if(!buffer)
{
return 0;
}
FreeHomebrewBuffer();
CopyHomebrewMemory(buffer, 0, filesize);
AddBootArgument(NIN_loader_path);
AddBootArgument((char*)nin_config, sizeof(NIN_CFG));
// Launch Nintendont
return !(BootHomebrewFromMem() < 0);
}
else
{
// Launch Nintendont
return !(BootHomebrew(NIN_loader_path) < 0);
}

View File

@ -7,6 +7,7 @@
***************************************************************************/
#include <gccore.h>
#include <ogc/machine/processor.h>
#include <ogcsys.h>
#include <stdio.h>
#include <stdlib.h>
@ -112,6 +113,13 @@ static void ResetVideo_Menu()
void InitVideo()
{
VIDEO_Init();
// If WiiU - Force 16:9 aspect ratio based on WiiU settings
if((*(vu32*)(0xCD8005A0) >> 16 ) == 0xCAFE && Settings.widescreen)
{
write32(0xd8006a0, 0x30000004), mask32(0xd8006a8, 0, 2);
}
vmode = VIDEO_GetPreferredMode(NULL); // get default video mode
vmode->viWidth = Settings.widescreen ? 708 : 694;

View File

@ -18,6 +18,7 @@ void __Wpad_PowerCallback(s32 chan)
s32 Wpad_Init(void)
{
WUPC_Init();
s32 ret;
/* Initialize Wiimote subsystem */
@ -39,6 +40,7 @@ void Wpad_Disconnect(void)
WPAD_Disconnect(cnt);
/* Shutdown Wiimote subsystem */
WUPC_Shutdown();
WPAD_Shutdown();
}
@ -64,12 +66,13 @@ u32 ButtonsHold(void)
int i;
u32 buttons = 0;
WUPC_UpdateButtonStats();
WPAD_ScanPads();
PAD_ScanPads();
for (i = 3; i >= 0; i--)
{
buttons |= WUPC_ButtonsHeld(i);
buttons |= PAD_ButtonsHeld(i);
buttons |= WPAD_ButtonsHeld(i);
}
@ -80,12 +83,13 @@ u32 ButtonsPressed(void)
{
int i;
u32 buttons = 0;
WUPC_UpdateButtonStats();
WPAD_ScanPads();
PAD_ScanPads();
for (i = 3; i >= 0; i--)
{
buttons |= WUPC_ButtonsDown(i);
buttons |= PAD_ButtonsDown(i);
buttons |= WPAD_ButtonsDown(i);
}

View File

@ -2,6 +2,7 @@
#define _WPAD_H_
#include <wiiuse/wpad.h>
#include <wupc/wupc.h>
#ifdef __cplusplus
extern "C"