From 928020b32f52e2e7ff8fcdab1e5fbb7b8de8eb3d Mon Sep 17 00:00:00 2001 From: dimok321 <15055714+dimok789@users.noreply.github.com> Date: Wed, 15 Jul 2009 17:20:45 +0000 Subject: [PATCH] *Added AlternateDOL from disc feature *Added Browser for AlternateDOL from disc feature NOTE: Right now the browser isn't working right and crashing from time to time so you i would not recommend to use it yet. It's also showing all files on the disc for test purpose. I'll try to fix it later right now i don't have time for it. *Changed some minor codes and moved cheats to its own folder --- Languages/danish.lang | 49 ++++++- Languages/dutch.lang | 49 ++++++- Languages/english.lang | 49 ++++++- Languages/finnish.lang | 49 ++++++- Languages/french.lang | 49 ++++++- Languages/german.lang | 49 ++++++- Languages/italian.lang | 49 ++++++- Languages/japanese.lang | 49 ++++++- Languages/korean.lang | 49 ++++++- Languages/norwegian.lang | 49 ++++++- Languages/portuguese_br.lang | 49 ++++++- Languages/portuguese_pt.lang | 49 ++++++- Languages/russian.lang | 49 ++++++- Languages/schinese.lang | 49 ++++++- Languages/spanish.lang | 49 ++++++- Languages/swedish.lang | 49 ++++++- Languages/tchinese.lang | 49 ++++++- Languages/turkish.lang | 49 ++++++- Makefile | 2 +- gui.pnproj | 2 +- gui.pnps | 2 +- source/banner/banner.c | 18 +-- source/banner/banner.h | 7 - source/buffer.h | 4 +- source/{ => cheats}/cheatmenu.cpp | 0 source/{ => cheats}/cheatmenu.h | 0 source/{ => cheats}/gct.cpp | 0 source/{ => cheats}/gct.h | 0 source/menu.cpp | 12 +- source/prompts/DiscBrowser.cpp | 216 ++++++++++++++++++++++++++++++ source/prompts/DiscBrowser.h | 13 ++ source/prompts/PromptWindows.cpp | 80 ++++++----- source/settings/Settings.cpp | 43 ++++-- source/settings/cfg.c | 27 +++- source/settings/cfg.h | 4 + source/usbloader/alternatedol.c | 126 ++++++++++++++++- source/usbloader/alternatedol.h | 2 + source/usbloader/apploader.c | 11 +- source/usbloader/apploader.h | 3 +- source/usbloader/disc.c | 10 +- source/usbloader/disc.h | 5 +- source/usbloader/fstfile.c | 46 +++++++ source/usbloader/fstfile.h | 24 ++++ source/video.cpp | 50 +++---- 44 files changed, 1429 insertions(+), 160 deletions(-) rename source/{ => cheats}/cheatmenu.cpp (100%) rename source/{ => cheats}/cheatmenu.h (100%) rename source/{ => cheats}/gct.cpp (100%) rename source/{ => cheats}/gct.h (100%) create mode 100644 source/prompts/DiscBrowser.cpp create mode 100644 source/prompts/DiscBrowser.h create mode 100644 source/usbloader/fstfile.c create mode 100644 source/usbloader/fstfile.h diff --git a/Languages/danish.lang b/Languages/danish.lang index f62b0530..c4b263ff 100644 --- a/Languages/danish.lang +++ b/Languages/danish.lang @@ -4,7 +4,7 @@ msgid "" msgstr "" "Project-Id-Version: USB Loader GX\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2009-07-14 16:35-0400\n" +"POT-Creation-Date: 2009-07-15 19:18+0200\n" "PO-Revision-Date: \n" "Last-Translator: \n" "Language-Team: \n" @@ -12,6 +12,9 @@ msgstr "" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" +msgid "(both retired)" +msgstr "" + msgid "0 (Everyone)" msgstr "" @@ -156,6 +159,9 @@ msgstr "Korrekt Password" msgid "Could not create GCT file" msgstr "" +msgid "Could not find a WBFS partition." +msgstr "" + msgid "Could not initialize DIP module!" msgstr "Kunne ikke initialisere DIP module!" @@ -165,6 +171,18 @@ msgstr "Kunne ikke initialisere netværk!" msgid "Could not open Disc" msgstr "Kunne ikke åbne dvd" +msgid "Could not open WBFS partition" +msgstr "" + +msgid "Could not open disc." +msgstr "" + +msgid "Could not read the disc." +msgstr "" + +msgid "Could not set USB." +msgstr "" + msgid "Cover Download" msgstr "Cover Download" @@ -183,6 +201,12 @@ msgstr "Lavet af:" msgid "Custom Paths" msgstr "Sti Indstillinger" +msgid "DOL from SD" +msgstr "" + +msgid "DOL from disc" +msgstr "" + msgid "Dec" msgstr "" @@ -258,6 +282,12 @@ msgstr "Downloader fil:" msgid "Dutch" msgstr "Nederlandsk" +msgid "ERROR" +msgstr "" + +msgid "ERROR:" +msgstr "" + msgid "English" msgstr "Engelsk" @@ -426,6 +456,9 @@ msgstr "Venstre" msgid "Like SysMenu" msgstr "Ligesom wii menu" +msgid "Load this dol as alternate dol?" +msgstr "" + msgid "Loading standard language." msgstr "" @@ -483,6 +516,9 @@ msgstr "Intet USB apparat fundet." msgid "No WBFS partition found" msgstr "Ingen WBFS partition fundet" +msgid "No dol file found on disc." +msgstr "" + msgid "No file missing!" msgstr "Ingen filer mangler!" @@ -501,6 +537,9 @@ msgstr "Normale Covers" msgid "Not a Wii Disc" msgstr "Ikke en Wii Disk" +msgid "Not enough free memory." +msgstr "" + msgid "Not enough free space!" msgstr "Ikke nok ledig plads!" @@ -612,6 +651,9 @@ msgstr "Vibration" msgid "SChinese" msgstr "Simpelt Kinesisk" +msgid "SD selected" +msgstr "" + msgid "SFX Volume" msgstr "SFX Lydstyrke" @@ -791,6 +833,9 @@ msgstr "" msgid "contains over 255 lines of code. It will produce unexpected results." msgstr "" +msgid "does not exist!" +msgstr "" + msgid "does not exist! Loading game without cheats." msgstr "" @@ -809,7 +854,7 @@ msgstr "Filerne blev ikke fundet på serveren!" msgid "for" msgstr "for" -msgid "for WiiTDB" +msgid "for WiiTDB and hosting covers / disc images" msgstr "" msgid "for diverse patches" diff --git a/Languages/dutch.lang b/Languages/dutch.lang index 9919025e..07a1d052 100644 --- a/Languages/dutch.lang +++ b/Languages/dutch.lang @@ -4,7 +4,7 @@ msgid "" msgstr "" "Project-Id-Version: USB Loader GX\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2009-07-14 16:35-0400\n" +"POT-Creation-Date: 2009-07-15 19:18+0200\n" "PO-Revision-Date: \n" "Last-Translator: \n" "Language-Team: \n" @@ -12,6 +12,9 @@ msgstr "" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" +msgid "(both retired)" +msgstr "" + msgid "0 (Everyone)" msgstr "0 (Iedereen 0+)" @@ -156,6 +159,9 @@ msgstr "Juiste wachtwoord" msgid "Could not create GCT file" msgstr "" +msgid "Could not find a WBFS partition." +msgstr "" + msgid "Could not initialize DIP module!" msgstr "Kan de DIP module niet initialiseren!" @@ -165,6 +171,18 @@ msgstr "Kan netwerk niet initialiseren!" msgid "Could not open Disc" msgstr "Kan DVD niet laden" +msgid "Could not open WBFS partition" +msgstr "" + +msgid "Could not open disc." +msgstr "" + +msgid "Could not read the disc." +msgstr "" + +msgid "Could not set USB." +msgstr "" + msgid "Cover Download" msgstr "Download hoesjes" @@ -183,6 +201,12 @@ msgstr "Aftiteling" msgid "Custom Paths" msgstr "Bestandslocaties" +msgid "DOL from SD" +msgstr "" + +msgid "DOL from disc" +msgstr "" + msgid "Dec" msgstr "Dec" @@ -258,6 +282,12 @@ msgstr "Bestand downloaden" msgid "Dutch" msgstr "Nederlands" +msgid "ERROR" +msgstr "" + +msgid "ERROR:" +msgstr "" + msgid "English" msgstr "Engels" @@ -426,6 +456,9 @@ msgstr "Links" msgid "Like SysMenu" msgstr "Als systeemmenu" +msgid "Load this dol as alternate dol?" +msgstr "" + msgid "Loading standard language." msgstr "Standaardtaal laden." @@ -483,6 +516,9 @@ msgstr "Geen USB apparaat gevonden." msgid "No WBFS partition found" msgstr "Geen WBFS partitie gevonden" +msgid "No dol file found on disc." +msgstr "" + msgid "No file missing!" msgstr "Geen missende bestanden!" @@ -501,6 +537,9 @@ msgstr "Gewone hoesjes" msgid "Not a Wii Disc" msgstr "Geen Wii DVD" +msgid "Not enough free memory." +msgstr "" + msgid "Not enough free space!" msgstr "Niet genoeg vrije ruimte!" @@ -612,6 +651,9 @@ msgstr "Trilfunctie" msgid "SChinese" msgstr "SChinees" +msgid "SD selected" +msgstr "" + msgid "SFX Volume" msgstr "Volume effecten" @@ -791,6 +833,9 @@ msgstr "beschikbaar" msgid "contains over 255 lines of code. It will produce unexpected results." msgstr "" +msgid "does not exist!" +msgstr "" + msgid "does not exist! Loading game without cheats." msgstr "" @@ -809,7 +854,7 @@ msgstr "Bestanden niet gevonden op server!" msgid "for" msgstr "voor" -msgid "for WiiTDB" +msgid "for WiiTDB and hosting covers / disc images" msgstr "" msgid "for diverse patches" diff --git a/Languages/english.lang b/Languages/english.lang index 6615fca5..b8ee5a4d 100644 --- a/Languages/english.lang +++ b/Languages/english.lang @@ -4,7 +4,7 @@ msgid "" msgstr "" "Project-Id-Version: USB Loader GX\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2009-07-14 16:35-0400\n" +"POT-Creation-Date: 2009-07-15 19:18+0200\n" "PO-Revision-Date: \n" "Last-Translator: \n" "Language-Team: \n" @@ -12,6 +12,9 @@ msgstr "" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" +msgid "(both retired)" +msgstr "" + msgid "0 (Everyone)" msgstr "" @@ -156,6 +159,9 @@ msgstr "" msgid "Could not create GCT file" msgstr "" +msgid "Could not find a WBFS partition." +msgstr "" + msgid "Could not initialize DIP module!" msgstr "" @@ -165,6 +171,18 @@ msgstr "" msgid "Could not open Disc" msgstr "" +msgid "Could not open WBFS partition" +msgstr "" + +msgid "Could not open disc." +msgstr "" + +msgid "Could not read the disc." +msgstr "" + +msgid "Could not set USB." +msgstr "" + msgid "Cover Download" msgstr "" @@ -183,6 +201,12 @@ msgstr "" msgid "Custom Paths" msgstr "" +msgid "DOL from SD" +msgstr "" + +msgid "DOL from disc" +msgstr "" + msgid "Dec" msgstr "" @@ -258,6 +282,12 @@ msgstr "" msgid "Dutch" msgstr "" +msgid "ERROR" +msgstr "" + +msgid "ERROR:" +msgstr "" + msgid "English" msgstr "" @@ -426,6 +456,9 @@ msgstr "" msgid "Like SysMenu" msgstr "" +msgid "Load this dol as alternate dol?" +msgstr "" + msgid "Loading standard language." msgstr "" @@ -483,6 +516,9 @@ msgstr "" msgid "No WBFS partition found" msgstr "" +msgid "No dol file found on disc." +msgstr "" + msgid "No file missing!" msgstr "" @@ -501,6 +537,9 @@ msgstr "" msgid "Not a Wii Disc" msgstr "" +msgid "Not enough free memory." +msgstr "" + msgid "Not enough free space!" msgstr "" @@ -612,6 +651,9 @@ msgstr "" msgid "SChinese" msgstr "" +msgid "SD selected" +msgstr "" + msgid "SFX Volume" msgstr "" @@ -791,6 +833,9 @@ msgstr "" msgid "contains over 255 lines of code. It will produce unexpected results." msgstr "" +msgid "does not exist!" +msgstr "" + msgid "does not exist! Loading game without cheats." msgstr "" @@ -809,7 +854,7 @@ msgstr "" msgid "for" msgstr "" -msgid "for WiiTDB" +msgid "for WiiTDB and hosting covers / disc images" msgstr "" msgid "for diverse patches" diff --git a/Languages/finnish.lang b/Languages/finnish.lang index d5905db9..5f1eb04a 100644 --- a/Languages/finnish.lang +++ b/Languages/finnish.lang @@ -4,7 +4,7 @@ msgid "" msgstr "" "Project-Id-Version: USB Loader GX\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2009-07-14 16:35-0400\n" +"POT-Creation-Date: 2009-07-15 19:18+0200\n" "PO-Revision-Date: \n" "Last-Translator: \n" "Language-Team: \n" @@ -12,6 +12,9 @@ msgstr "" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" +msgid "(both retired)" +msgstr "" + msgid "0 (Everyone)" msgstr "" @@ -156,6 +159,9 @@ msgstr "Oikea salasana" msgid "Could not create GCT file" msgstr "" +msgid "Could not find a WBFS partition." +msgstr "" + msgid "Could not initialize DIP module!" msgstr "DIP Moduulia ei voitu alustaa!" @@ -165,6 +171,18 @@ msgstr "Verkkoon ei voitu yhdistää!" msgid "Could not open Disc" msgstr "Levyä ei voitu lukea" +msgid "Could not open WBFS partition" +msgstr "" + +msgid "Could not open disc." +msgstr "" + +msgid "Could not read the disc." +msgstr "" + +msgid "Could not set USB." +msgstr "" + msgid "Cover Download" msgstr "kansien lataus" @@ -183,6 +201,12 @@ msgstr "Tekijät" msgid "Custom Paths" msgstr "" +msgid "DOL from SD" +msgstr "" + +msgid "DOL from disc" +msgstr "" + msgid "Dec" msgstr "" @@ -258,6 +282,12 @@ msgstr "Lataa tiedostoa:" msgid "Dutch" msgstr "Hollanti" +msgid "ERROR" +msgstr "" + +msgid "ERROR:" +msgstr "" + msgid "English" msgstr "Englanti" @@ -426,6 +456,9 @@ msgstr "Vasen" msgid "Like SysMenu" msgstr "Kuin wii-menu" +msgid "Load this dol as alternate dol?" +msgstr "" + msgid "Loading standard language." msgstr "" @@ -483,6 +516,9 @@ msgstr "USB-laitetta ei löytynyt." msgid "No WBFS partition found" msgstr "Ei WBFS-osioita löytynyt" +msgid "No dol file found on disc." +msgstr "" + msgid "No file missing!" msgstr "Ei tiedostoja kadoksissa!" @@ -501,6 +537,9 @@ msgstr "Normaalit kannet" msgid "Not a Wii Disc" msgstr "Ei Wii-levy" +msgid "Not enough free memory." +msgstr "" + msgid "Not enough free space!" msgstr "Ei tarpeeksi tilaa!" @@ -612,6 +651,9 @@ msgstr "Värinä" msgid "SChinese" msgstr "SKiina" +msgid "SD selected" +msgstr "" + msgid "SFX Volume" msgstr "" @@ -791,6 +833,9 @@ msgstr "" msgid "contains over 255 lines of code. It will produce unexpected results." msgstr "" +msgid "does not exist!" +msgstr "" + msgid "does not exist! Loading game without cheats." msgstr "" @@ -809,7 +854,7 @@ msgstr "tiedostoja ei löytynyt serveriltä!" msgid "for" msgstr "" -msgid "for WiiTDB" +msgid "for WiiTDB and hosting covers / disc images" msgstr "" msgid "for diverse patches" diff --git a/Languages/french.lang b/Languages/french.lang index 0adacea2..a593af81 100644 --- a/Languages/french.lang +++ b/Languages/french.lang @@ -4,7 +4,7 @@ msgid "" msgstr "" "Project-Id-Version: USB Loader GX\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2009-07-14 16:35-0400\n" +"POT-Creation-Date: 2009-07-15 19:18+0200\n" "PO-Revision-Date: \n" "Last-Translator: \n" "Language-Team: \n" @@ -12,6 +12,9 @@ msgstr "" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" +msgid "(both retired)" +msgstr "" + msgid "0 (Everyone)" msgstr "0 (Tous 3+)" @@ -156,6 +159,9 @@ msgstr "Mot de passe correct" msgid "Could not create GCT file" msgstr "" +msgid "Could not find a WBFS partition." +msgstr "" + msgid "Could not initialize DIP module!" msgstr "Initialisation DIP impossible !" @@ -165,6 +171,18 @@ msgstr "Initialisation réseau impossible !" msgid "Could not open Disc" msgstr "Initialisation disque impossible" +msgid "Could not open WBFS partition" +msgstr "" + +msgid "Could not open disc." +msgstr "" + +msgid "Could not read the disc." +msgstr "" + +msgid "Could not set USB." +msgstr "" + msgid "Cover Download" msgstr "Téléchargement Jaquettes" @@ -183,6 +201,12 @@ msgstr "Crédits" msgid "Custom Paths" msgstr "Localisation Dossiers" +msgid "DOL from SD" +msgstr "" + +msgid "DOL from disc" +msgstr "" + msgid "Dec" msgstr "Déc" @@ -258,6 +282,12 @@ msgstr "Téléchargement du fichier" msgid "Dutch" msgstr "Néerlandais" +msgid "ERROR" +msgstr "" + +msgid "ERROR:" +msgstr "" + msgid "English" msgstr "Anglais" @@ -426,6 +456,9 @@ msgstr "Gauche" msgid "Like SysMenu" msgstr "Menu système" +msgid "Load this dol as alternate dol?" +msgstr "" + msgid "Loading standard language." msgstr "Chargement langue par défaut." @@ -483,6 +516,9 @@ msgstr "Aucun périphérique USB trouvé." msgid "No WBFS partition found" msgstr "Aucune partition WBFS trouvée" +msgid "No dol file found on disc." +msgstr "" + msgid "No file missing!" msgstr "Aucun fichier manquant !" @@ -501,6 +537,9 @@ msgstr "Normales" msgid "Not a Wii Disc" msgstr "Ce n'est pas un jeu Wii" +msgid "Not enough free memory." +msgstr "" + msgid "Not enough free space!" msgstr "Espace libre insuffisant !" @@ -612,6 +651,9 @@ msgstr "Vibrations" msgid "SChinese" msgstr "Chinois simplifié" +msgid "SD selected" +msgstr "" + msgid "SFX Volume" msgstr "Volume SFX" @@ -791,6 +833,9 @@ msgstr "disponible" msgid "contains over 255 lines of code. It will produce unexpected results." msgstr "" +msgid "does not exist!" +msgstr "" + msgid "does not exist! Loading game without cheats." msgstr "" @@ -809,7 +854,7 @@ msgstr "fichiers introuvables sur le serveur !" msgid "for" msgstr "pour" -msgid "for WiiTDB" +msgid "for WiiTDB and hosting covers / disc images" msgstr "" msgid "for diverse patches" diff --git a/Languages/german.lang b/Languages/german.lang index 7813e84e..bdc0f56a 100644 --- a/Languages/german.lang +++ b/Languages/german.lang @@ -4,7 +4,7 @@ msgid "" msgstr "" "Project-Id-Version: USB Loader GX\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2009-07-14 16:35-0400\n" +"POT-Creation-Date: 2009-07-15 19:18+0200\n" "PO-Revision-Date: \n" "Last-Translator: \n" "Language-Team: \n" @@ -12,6 +12,9 @@ msgstr "" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" +msgid "(both retired)" +msgstr "" + msgid "0 (Everyone)" msgstr "" @@ -156,6 +159,9 @@ msgstr "Richtiges Passwort" msgid "Could not create GCT file" msgstr "" +msgid "Could not find a WBFS partition." +msgstr "" + msgid "Could not initialize DIP module!" msgstr "DIP Modul konnte nicht initialisiert werden!" @@ -165,6 +171,18 @@ msgstr "Netzwerk konnte nicht initialisiert werden!" msgid "Could not open Disc" msgstr "Disk konnte nicht geöffnet werden" +msgid "Could not open WBFS partition" +msgstr "" + +msgid "Could not open disc." +msgstr "" + +msgid "Could not read the disc." +msgstr "" + +msgid "Could not set USB." +msgstr "" + msgid "Cover Download" msgstr "Cover Download" @@ -183,6 +201,12 @@ msgstr "Credits" msgid "Custom Paths" msgstr "Benutzerdefinierte Pfade" +msgid "DOL from SD" +msgstr "" + +msgid "DOL from disc" +msgstr "" + msgid "Dec" msgstr "Dez" @@ -258,6 +282,12 @@ msgstr "Downloade Datei:" msgid "Dutch" msgstr "Niederländisch" +msgid "ERROR" +msgstr "" + +msgid "ERROR:" +msgstr "" + msgid "English" msgstr "Englisch" @@ -426,6 +456,9 @@ msgstr "Links" msgid "Like SysMenu" msgstr "Wie SysMenü" +msgid "Load this dol as alternate dol?" +msgstr "" + msgid "Loading standard language." msgstr "Lade Standardsprache." @@ -483,6 +516,9 @@ msgstr "Kein USB Gerät gefunden." msgid "No WBFS partition found" msgstr "Keine WBFS Partition gefunden" +msgid "No dol file found on disc." +msgstr "" + msgid "No file missing!" msgstr "Alle Dateien vorhanden!" @@ -501,6 +537,9 @@ msgstr "Normale Cover" msgid "Not a Wii Disc" msgstr "Keine Wii Disk" +msgid "Not enough free memory." +msgstr "" + msgid "Not enough free space!" msgstr "Nicht genügend freier Speicher!" @@ -612,6 +651,9 @@ msgstr "Vibration" msgid "SChinese" msgstr "Vereinfachtes Chinesisch" +msgid "SD selected" +msgstr "" + msgid "SFX Volume" msgstr "SFX Lautstärke" @@ -791,6 +833,9 @@ msgstr "verfügbar" msgid "contains over 255 lines of code. It will produce unexpected results." msgstr "" +msgid "does not exist!" +msgstr "" + msgid "does not exist! Loading game without cheats." msgstr "" @@ -809,7 +854,7 @@ msgstr "Datei(en) konnte(n) auf dem Server nicht gefunden werden!" msgid "for" msgstr "für" -msgid "for WiiTDB" +msgid "for WiiTDB and hosting covers / disc images" msgstr "" msgid "for diverse patches" diff --git a/Languages/italian.lang b/Languages/italian.lang index 3899e422..253e1f8d 100644 --- a/Languages/italian.lang +++ b/Languages/italian.lang @@ -4,7 +4,7 @@ msgid "" msgstr "" "Project-Id-Version: USB Loader GX\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2009-07-14 16:35-0400\n" +"POT-Creation-Date: 2009-07-15 19:18+0200\n" "PO-Revision-Date: \n" "Last-Translator: \n" "Language-Team: \n" @@ -12,6 +12,9 @@ msgstr "" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" +msgid "(both retired)" +msgstr "" + msgid "0 (Everyone)" msgstr "Tutti" @@ -156,6 +159,9 @@ msgstr "Password Corretta" msgid "Could not create GCT file" msgstr "" +msgid "Could not find a WBFS partition." +msgstr "" + msgid "Could not initialize DIP module!" msgstr "Non posso inizializzare il modulo DIP!" @@ -165,6 +171,18 @@ msgstr "Non posso Inizializzare la rete!" msgid "Could not open Disc" msgstr "Non posso caricare il Disco!" +msgid "Could not open WBFS partition" +msgstr "" + +msgid "Could not open disc." +msgstr "" + +msgid "Could not read the disc." +msgstr "" + +msgid "Could not set USB." +msgstr "" + msgid "Cover Download" msgstr "Scaricamento Copertina" @@ -183,6 +201,12 @@ msgstr "Credits" msgid "Custom Paths" msgstr "Impostazione Percorsi (Directory)" +msgid "DOL from SD" +msgstr "" + +msgid "DOL from disc" +msgstr "" + msgid "Dec" msgstr "dicembre" @@ -258,6 +282,12 @@ msgstr "Scaricamento file:" msgid "Dutch" msgstr "Olandese" +msgid "ERROR" +msgstr "" + +msgid "ERROR:" +msgstr "" + msgid "English" msgstr "Inglese" @@ -426,6 +456,9 @@ msgstr "Sinistra" msgid "Like SysMenu" msgstr "Come SysMenu" +msgid "Load this dol as alternate dol?" +msgstr "" + msgid "Loading standard language." msgstr "Caricamento Lingua Standard." @@ -483,6 +516,9 @@ msgstr "Nessun Dispositivo USB trovato." msgid "No WBFS partition found" msgstr "Nessuna partizione WBFS trovata" +msgid "No dol file found on disc." +msgstr "" + msgid "No file missing!" msgstr "Nessun file mancante!" @@ -501,6 +537,9 @@ msgstr "Normali" msgid "Not a Wii Disc" msgstr "Non è un Disco Wii" +msgid "Not enough free memory." +msgstr "" + msgid "Not enough free space!" msgstr "Spazio Insufficiente!" @@ -612,6 +651,9 @@ msgstr "Vibrazione" msgid "SChinese" msgstr "Cinese Moderno" +msgid "SD selected" +msgstr "" + msgid "SFX Volume" msgstr "Volume SFX" @@ -791,6 +833,9 @@ msgstr "disponibile" msgid "contains over 255 lines of code. It will produce unexpected results." msgstr "" +msgid "does not exist!" +msgstr "" + msgid "does not exist! Loading game without cheats." msgstr "" @@ -809,7 +854,7 @@ msgstr "file non trovato/i sul server!" msgid "for" msgstr "per" -msgid "for WiiTDB" +msgid "for WiiTDB and hosting covers / disc images" msgstr "" msgid "for diverse patches" diff --git a/Languages/japanese.lang b/Languages/japanese.lang index ecb475ca..cb33c5a7 100644 --- a/Languages/japanese.lang +++ b/Languages/japanese.lang @@ -4,7 +4,7 @@ msgid "" msgstr "" "Project-Id-Version: USB Loader GX\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2009-07-14 16:35-0400\n" +"POT-Creation-Date: 2009-07-15 19:18+0200\n" "PO-Revision-Date: \n" "Last-Translator: \n" "Language-Team: \n" @@ -12,6 +12,9 @@ msgstr "" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" +msgid "(both retired)" +msgstr "" + msgid "0 (Everyone)" msgstr "" @@ -156,6 +159,9 @@ msgstr "正しいパスワード" msgid "Could not create GCT file" msgstr "" +msgid "Could not find a WBFS partition." +msgstr "" + msgid "Could not initialize DIP module!" msgstr "DIPモジュールの初期化ができません!" @@ -165,6 +171,18 @@ msgstr "ネットワークの初期化ができません!" msgid "Could not open Disc" msgstr "ディスクオープンに失敗しました" +msgid "Could not open WBFS partition" +msgstr "" + +msgid "Could not open disc." +msgstr "" + +msgid "Could not read the disc." +msgstr "" + +msgid "Could not set USB." +msgstr "" + msgid "Cover Download" msgstr "カバー ダウンロード" @@ -183,6 +201,12 @@ msgstr "協力" msgid "Custom Paths" msgstr "カスタムPath" +msgid "DOL from SD" +msgstr "" + +msgid "DOL from disc" +msgstr "" + msgid "Dec" msgstr "12月" @@ -258,6 +282,12 @@ msgstr "ファイルのダウンロード中:" msgid "Dutch" msgstr "オランダ語" +msgid "ERROR" +msgstr "" + +msgid "ERROR:" +msgstr "" + msgid "English" msgstr "英語" @@ -426,6 +456,9 @@ msgstr "左" msgid "Like SysMenu" msgstr "Like SysMenu" +msgid "Load this dol as alternate dol?" +msgstr "" + msgid "Loading standard language." msgstr "標準の言語をロード中..." @@ -483,6 +516,9 @@ msgstr "USBデバイズが検出されていません" msgid "No WBFS partition found" msgstr "WBFSパーティションを検出できませんでした" +msgid "No dol file found on disc." +msgstr "" + msgid "No file missing!" msgstr "ファイルを検出できませんでした!" @@ -501,6 +537,9 @@ msgstr "ノ-マルカバー" msgid "Not a Wii Disc" msgstr "Wiiディスクではありません" +msgid "Not enough free memory." +msgstr "" + msgid "Not enough free space!" msgstr "空容量が不足しています!" @@ -612,6 +651,9 @@ msgstr "振動" msgid "SChinese" msgstr "中国語(簡体字)" +msgid "SD selected" +msgstr "" + msgid "SFX Volume" msgstr "SFX音量" @@ -791,6 +833,9 @@ msgstr "利用可能" msgid "contains over 255 lines of code. It will produce unexpected results." msgstr "" +msgid "does not exist!" +msgstr "" + msgid "does not exist! Loading game without cheats." msgstr "" @@ -809,7 +854,7 @@ msgstr "サーバーにファイルがありません!" msgid "for" msgstr "for" -msgid "for WiiTDB" +msgid "for WiiTDB and hosting covers / disc images" msgstr "" msgid "for diverse patches" diff --git a/Languages/korean.lang b/Languages/korean.lang index 085163f1..6ecc9cd1 100644 --- a/Languages/korean.lang +++ b/Languages/korean.lang @@ -4,7 +4,7 @@ msgid "" msgstr "" "Project-Id-Version: USB Loader GX\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2009-07-14 16:35-0400\n" +"POT-Creation-Date: 2009-07-15 19:18+0200\n" "PO-Revision-Date: \n" "Last-Translator: \n" "Language-Team: \n" @@ -12,6 +12,9 @@ msgstr "" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" +msgid "(both retired)" +msgstr "" + msgid "0 (Everyone)" msgstr "" @@ -156,6 +159,9 @@ msgstr "올바른 비밀번호" msgid "Could not create GCT file" msgstr "" +msgid "Could not find a WBFS partition." +msgstr "" + msgid "Could not initialize DIP module!" msgstr "DIP 모듈 초기화 실패!" @@ -165,6 +171,18 @@ msgstr "네트워크 초기화 실패!" msgid "Could not open Disc" msgstr "디스크를 열 수 없습니다." +msgid "Could not open WBFS partition" +msgstr "" + +msgid "Could not open disc." +msgstr "" + +msgid "Could not read the disc." +msgstr "" + +msgid "Could not set USB." +msgstr "" + msgid "Cover Download" msgstr "표지 다운로드" @@ -183,6 +201,12 @@ msgstr "Credits" msgid "Custom Paths" msgstr "" +msgid "DOL from SD" +msgstr "" + +msgid "DOL from disc" +msgstr "" + msgid "Dec" msgstr "" @@ -258,6 +282,12 @@ msgstr "파일 다운로드 중:" msgid "Dutch" msgstr "네덜란드어" +msgid "ERROR" +msgstr "" + +msgid "ERROR:" +msgstr "" + msgid "English" msgstr "영어" @@ -426,6 +456,9 @@ msgstr "왼쪽" msgid "Like SysMenu" msgstr "시스템 메뉴처럼" +msgid "Load this dol as alternate dol?" +msgstr "" + msgid "Loading standard language." msgstr "" @@ -483,6 +516,9 @@ msgstr "USB 장치가 없습니다." msgid "No WBFS partition found" msgstr "WBFS 파티션이 없습니다." +msgid "No dol file found on disc." +msgstr "" + msgid "No file missing!" msgstr "누락 파일 없음!" @@ -501,6 +537,9 @@ msgstr "일반 표지" msgid "Not a Wii Disc" msgstr "Wii 디스크가 아닙니다" +msgid "Not enough free memory." +msgstr "" + msgid "Not enough free space!" msgstr "여유 공간이 부족합니다!" @@ -612,6 +651,9 @@ msgstr "진동" msgid "SChinese" msgstr "중국어(간체)" +msgid "SD selected" +msgstr "" + msgid "SFX Volume" msgstr "" @@ -791,6 +833,9 @@ msgstr "" msgid "contains over 255 lines of code. It will produce unexpected results." msgstr "" +msgid "does not exist!" +msgstr "" + msgid "does not exist! Loading game without cheats." msgstr "" @@ -809,7 +854,7 @@ msgstr "파일이 서버에 없습니다!" msgid "for" msgstr "for" -msgid "for WiiTDB" +msgid "for WiiTDB and hosting covers / disc images" msgstr "" msgid "for diverse patches" diff --git a/Languages/norwegian.lang b/Languages/norwegian.lang index ef752499..470faf02 100644 --- a/Languages/norwegian.lang +++ b/Languages/norwegian.lang @@ -4,7 +4,7 @@ msgid "" msgstr "" "Project-Id-Version: USB Loader GX\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2009-07-14 16:35-0400\n" +"POT-Creation-Date: 2009-07-15 19:18+0200\n" "PO-Revision-Date: \n" "Last-Translator: \n" "Language-Team: \n" @@ -12,6 +12,9 @@ msgstr "" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" +msgid "(both retired)" +msgstr "" + msgid "0 (Everyone)" msgstr "" @@ -156,6 +159,9 @@ msgstr "Riktig passord" msgid "Could not create GCT file" msgstr "" +msgid "Could not find a WBFS partition." +msgstr "" + msgid "Could not initialize DIP module!" msgstr "Kan ikke initialisere DIP modul!" @@ -165,6 +171,18 @@ msgstr "Kan ikke initialisere nettverk!" msgid "Could not open Disc" msgstr "Kan ikke åpne plate" +msgid "Could not open WBFS partition" +msgstr "" + +msgid "Could not open disc." +msgstr "" + +msgid "Could not read the disc." +msgstr "" + +msgid "Could not set USB." +msgstr "" + msgid "Cover Download" msgstr "Cover nedlasting" @@ -183,6 +201,12 @@ msgstr "Medvirkende" msgid "Custom Paths" msgstr "Endre stier" +msgid "DOL from SD" +msgstr "" + +msgid "DOL from disc" +msgstr "" + msgid "Dec" msgstr "Des" @@ -258,6 +282,12 @@ msgstr "Laster ned fil:" msgid "Dutch" msgstr "Nederlandsk" +msgid "ERROR" +msgstr "" + +msgid "ERROR:" +msgstr "" + msgid "English" msgstr "Engelsk" @@ -426,6 +456,9 @@ msgstr "Venstre" msgid "Like SysMenu" msgstr "Lik Systemmeny" +msgid "Load this dol as alternate dol?" +msgstr "" + msgid "Loading standard language." msgstr "Laster standard språk." @@ -483,6 +516,9 @@ msgstr "Ingen USB enhet funnet." msgid "No WBFS partition found" msgstr "Ingen WBFS partisjon funnet" +msgid "No dol file found on disc." +msgstr "" + msgid "No file missing!" msgstr "Ingen filer mangler!" @@ -501,6 +537,9 @@ msgstr "Normale cover" msgid "Not a Wii Disc" msgstr "Ikke en Wii plate" +msgid "Not enough free memory." +msgstr "" + msgid "Not enough free space!" msgstr "Ikke nok ledig plass!" @@ -612,6 +651,9 @@ msgstr "Vibrasjon" msgid "SChinese" msgstr "S.Kinesisk" +msgid "SD selected" +msgstr "" + msgid "SFX Volume" msgstr "Effekt volum" @@ -791,6 +833,9 @@ msgstr "tilgjengelig" msgid "contains over 255 lines of code. It will produce unexpected results." msgstr "" +msgid "does not exist!" +msgstr "" + msgid "does not exist! Loading game without cheats." msgstr "" @@ -809,7 +854,7 @@ msgstr "filer ikke funnet på serveren!" msgid "for" msgstr "for" -msgid "for WiiTDB" +msgid "for WiiTDB and hosting covers / disc images" msgstr "" msgid "for diverse patches" diff --git a/Languages/portuguese_br.lang b/Languages/portuguese_br.lang index 31e71338..dde6385a 100644 --- a/Languages/portuguese_br.lang +++ b/Languages/portuguese_br.lang @@ -4,7 +4,7 @@ msgid "" msgstr "" "Project-Id-Version: USB Loader GX\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2009-07-14 16:35-0400\n" +"POT-Creation-Date: 2009-07-15 19:18+0200\n" "PO-Revision-Date: \n" "Last-Translator: \n" "Language-Team: \n" @@ -12,6 +12,9 @@ msgstr "" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" +msgid "(both retired)" +msgstr "" + msgid "0 (Everyone)" msgstr "" @@ -156,6 +159,9 @@ msgstr "Senha Correta" msgid "Could not create GCT file" msgstr "" +msgid "Could not find a WBFS partition." +msgstr "" + msgid "Could not initialize DIP module!" msgstr "Não foi possível iniciar o módulo DIP!" @@ -165,6 +171,18 @@ msgstr "Não foi possível inciar a rede!" msgid "Could not open Disc" msgstr "Não foi possível abrir o Disco" +msgid "Could not open WBFS partition" +msgstr "" + +msgid "Could not open disc." +msgstr "" + +msgid "Could not read the disc." +msgstr "" + +msgid "Could not set USB." +msgstr "" + msgid "Cover Download" msgstr "Baixar Capas" @@ -183,6 +201,12 @@ msgstr "Créditos" msgid "Custom Paths" msgstr "Personalizar Locais" +msgid "DOL from SD" +msgstr "" + +msgid "DOL from disc" +msgstr "" + msgid "Dec" msgstr "Dez" @@ -258,6 +282,12 @@ msgstr "Baixando arquivo:" msgid "Dutch" msgstr "Holandês" +msgid "ERROR" +msgstr "" + +msgid "ERROR:" +msgstr "" + msgid "English" msgstr "Inglês" @@ -426,6 +456,9 @@ msgstr "Esquerda" msgid "Like SysMenu" msgstr "Igual ao Menu do Wii" +msgid "Load this dol as alternate dol?" +msgstr "" + msgid "Loading standard language." msgstr "Carregado idioma padrão." @@ -483,6 +516,9 @@ msgstr "Dispositivo USB não encontrado." msgid "No WBFS partition found" msgstr "Partição WBFS não encontrada" +msgid "No dol file found on disc." +msgstr "" + msgid "No file missing!" msgstr "Não há arquivos faltando!" @@ -501,6 +537,9 @@ msgstr "Capas Normais" msgid "Not a Wii Disc" msgstr "Não é um Disco de Wii" +msgid "Not enough free memory." +msgstr "" + msgid "Not enough free space!" msgstr "Não há espaço livre suficiente!" @@ -612,6 +651,9 @@ msgstr "Vibração" msgid "SChinese" msgstr "Chinês Simplificado" +msgid "SD selected" +msgstr "" + msgid "SFX Volume" msgstr "Volume de Efeitos" @@ -791,6 +833,9 @@ msgstr "disponível" msgid "contains over 255 lines of code. It will produce unexpected results." msgstr "" +msgid "does not exist!" +msgstr "" + msgid "does not exist! Loading game without cheats." msgstr "" @@ -809,7 +854,7 @@ msgstr "arquivos não encontrados no servidor!" msgid "for" msgstr "com" -msgid "for WiiTDB" +msgid "for WiiTDB and hosting covers / disc images" msgstr "" msgid "for diverse patches" diff --git a/Languages/portuguese_pt.lang b/Languages/portuguese_pt.lang index fdcb26da..7d0b3c3e 100644 --- a/Languages/portuguese_pt.lang +++ b/Languages/portuguese_pt.lang @@ -4,7 +4,7 @@ msgid "" msgstr "" "Project-Id-Version: USB Loader GX\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2009-07-14 16:35-0400\n" +"POT-Creation-Date: 2009-07-15 19:18+0200\n" "PO-Revision-Date: \n" "Last-Translator: \n" "Language-Team: \n" @@ -12,6 +12,9 @@ msgstr "" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" +msgid "(both retired)" +msgstr "" + msgid "0 (Everyone)" msgstr "0 (Todos)" @@ -156,6 +159,9 @@ msgstr "Password Correcta" msgid "Could not create GCT file" msgstr "" +msgid "Could not find a WBFS partition." +msgstr "" + msgid "Could not initialize DIP module!" msgstr "Não foi possível inicializar o módulo DIP!" @@ -165,6 +171,18 @@ msgstr "Não foi possível incializar a Ligação de Rede!" msgid "Could not open Disc" msgstr "Não foi possível abrir o Disco" +msgid "Could not open WBFS partition" +msgstr "" + +msgid "Could not open disc." +msgstr "" + +msgid "Could not read the disc." +msgstr "" + +msgid "Could not set USB." +msgstr "" + msgid "Cover Download" msgstr "Download de Capas" @@ -183,6 +201,12 @@ msgstr "Créditos" msgid "Custom Paths" msgstr "Personalização de Pastas" +msgid "DOL from SD" +msgstr "" + +msgid "DOL from disc" +msgstr "" + msgid "Dec" msgstr "Dez" @@ -258,6 +282,12 @@ msgstr "Descarregando ficheiro:" msgid "Dutch" msgstr "Holandês" +msgid "ERROR" +msgstr "" + +msgid "ERROR:" +msgstr "" + msgid "English" msgstr "Inglês" @@ -426,6 +456,9 @@ msgstr "Esquerda" msgid "Like SysMenu" msgstr "Igual ao Menu da Wii" +msgid "Load this dol as alternate dol?" +msgstr "" + msgid "Loading standard language." msgstr "Carregado idioma padrão." @@ -483,6 +516,9 @@ msgstr "Nenhum dispositivo USB encontrado." msgid "No WBFS partition found" msgstr "Não foi encontrada nenhuma partição WBFS" +msgid "No dol file found on disc." +msgstr "" + msgid "No file missing!" msgstr "Não há ficheiros em falta!" @@ -501,6 +537,9 @@ msgstr "Capas Normais" msgid "Not a Wii Disc" msgstr "Não é um Disco da Wii" +msgid "Not enough free memory." +msgstr "" + msgid "Not enough free space!" msgstr "Não há espaço livre suficiente!" @@ -612,6 +651,9 @@ msgstr "Vibração" msgid "SChinese" msgstr "Chinês Simplificado" +msgid "SD selected" +msgstr "" + msgid "SFX Volume" msgstr "Volume Efeitos" @@ -791,6 +833,9 @@ msgstr "disponível" msgid "contains over 255 lines of code. It will produce unexpected results." msgstr "" +msgid "does not exist!" +msgstr "" + msgid "does not exist! Loading game without cheats." msgstr "" @@ -809,7 +854,7 @@ msgstr "ficheiros não encontrados no servidor!" msgid "for" msgstr "pelo" -msgid "for WiiTDB" +msgid "for WiiTDB and hosting covers / disc images" msgstr "" msgid "for diverse patches" diff --git a/Languages/russian.lang b/Languages/russian.lang index ba01b5f3..2655e836 100644 --- a/Languages/russian.lang +++ b/Languages/russian.lang @@ -4,7 +4,7 @@ msgid "" msgstr "" "Project-Id-Version: USB Loader GX\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2009-07-14 16:35-0400\n" +"POT-Creation-Date: 2009-07-15 19:18+0200\n" "PO-Revision-Date: \n" "Last-Translator: \n" "Language-Team: \n" @@ -12,6 +12,9 @@ msgstr "" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" +msgid "(both retired)" +msgstr "" + msgid "0 (Everyone)" msgstr "" @@ -156,6 +159,9 @@ msgstr "Правильный пароль" msgid "Could not create GCT file" msgstr "" +msgid "Could not find a WBFS partition." +msgstr "" + msgid "Could not initialize DIP module!" msgstr "Не могу запустить модуль DIP!" @@ -165,6 +171,18 @@ msgstr "Не могу инициализировать сеть!" msgid "Could not open Disc" msgstr "Не могу прочесть диск" +msgid "Could not open WBFS partition" +msgstr "" + +msgid "Could not open disc." +msgstr "" + +msgid "Could not read the disc." +msgstr "" + +msgid "Could not set USB." +msgstr "" + msgid "Cover Download" msgstr "Скачать обложку" @@ -183,6 +201,12 @@ msgstr "Об авторах" msgid "Custom Paths" msgstr "" +msgid "DOL from SD" +msgstr "" + +msgid "DOL from disc" +msgstr "" + msgid "Dec" msgstr "" @@ -258,6 +282,12 @@ msgstr "Скачиваю файл:" msgid "Dutch" msgstr "Голландский" +msgid "ERROR" +msgstr "" + +msgid "ERROR:" +msgstr "" + msgid "English" msgstr "Английский" @@ -426,6 +456,9 @@ msgstr "Налево" msgid "Like SysMenu" msgstr "как SysMenu" +msgid "Load this dol as alternate dol?" +msgstr "" + msgid "Loading standard language." msgstr "Загрузка языка по умолчанию" @@ -483,6 +516,9 @@ msgstr "USB устройств не обнаружено" msgid "No WBFS partition found" msgstr "Не найден раздел WBFS" +msgid "No dol file found on disc." +msgstr "" + msgid "No file missing!" msgstr "Файл не найден!" @@ -501,6 +537,9 @@ msgstr "Обычные обложки" msgid "Not a Wii Disc" msgstr "Это не диск Wii" +msgid "Not enough free memory." +msgstr "" + msgid "Not enough free space!" msgstr "Не хватает свободного места!" @@ -612,6 +651,9 @@ msgstr "Вибрация" msgid "SChinese" msgstr "Упрощенный китайский" +msgid "SD selected" +msgstr "" + msgid "SFX Volume" msgstr "" @@ -791,6 +833,9 @@ msgstr "" msgid "contains over 255 lines of code. It will produce unexpected results." msgstr "" +msgid "does not exist!" +msgstr "" + msgid "does not exist! Loading game without cheats." msgstr "" @@ -809,7 +854,7 @@ msgstr "файлы не найдены на сервере!" msgid "for" msgstr "за" -msgid "for WiiTDB" +msgid "for WiiTDB and hosting covers / disc images" msgstr "" msgid "for diverse patches" diff --git a/Languages/schinese.lang b/Languages/schinese.lang index 2534d8b5..db3d41fb 100644 --- a/Languages/schinese.lang +++ b/Languages/schinese.lang @@ -4,7 +4,7 @@ msgid "" msgstr "" "Project-Id-Version: USB Loader GX\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2009-07-14 16:35-0400\n" +"POT-Creation-Date: 2009-07-15 19:18+0200\n" "PO-Revision-Date: \n" "Last-Translator: \n" "Language-Team: \n" @@ -12,6 +12,9 @@ msgstr "" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" +msgid "(both retired)" +msgstr "" + msgid "0 (Everyone)" msgstr "" @@ -156,6 +159,9 @@ msgstr "密码正确" msgid "Could not create GCT file" msgstr "" +msgid "Could not find a WBFS partition." +msgstr "" + msgid "Could not initialize DIP module!" msgstr "无法启动 DIP 模块!" @@ -165,6 +171,18 @@ msgstr "无法启动网络!" msgid "Could not open Disc" msgstr "无法开启光盘" +msgid "Could not open WBFS partition" +msgstr "" + +msgid "Could not open disc." +msgstr "" + +msgid "Could not read the disc." +msgstr "" + +msgid "Could not set USB." +msgstr "" + msgid "Cover Download" msgstr "下载封面" @@ -183,6 +201,12 @@ msgstr "Credits" msgid "Custom Paths" msgstr "" +msgid "DOL from SD" +msgstr "" + +msgid "DOL from disc" +msgstr "" + msgid "Dec" msgstr "" @@ -258,6 +282,12 @@ msgstr "下载文件:" msgid "Dutch" msgstr "荷文" +msgid "ERROR" +msgstr "" + +msgid "ERROR:" +msgstr "" + msgid "English" msgstr "英文" @@ -426,6 +456,9 @@ msgstr "左" msgid "Like SysMenu" msgstr "同系统选单" +msgid "Load this dol as alternate dol?" +msgstr "" + msgid "Loading standard language." msgstr "载入标准语言" @@ -483,6 +516,9 @@ msgstr "找不到 USB 设备." msgid "No WBFS partition found" msgstr "找不到 WBFS 分区" +msgid "No dol file found on disc." +msgstr "" + msgid "No file missing!" msgstr "没有缺少的文件!" @@ -501,6 +537,9 @@ msgstr "一般封面" msgid "Not a Wii Disc" msgstr "不是 Wii 的光盘" +msgid "Not enough free memory." +msgstr "" + msgid "Not enough free space!" msgstr "剩余空间不足!" @@ -612,6 +651,9 @@ msgstr "震动" msgid "SChinese" msgstr "简体中文" +msgid "SD selected" +msgstr "" + msgid "SFX Volume" msgstr "" @@ -791,6 +833,9 @@ msgstr "" msgid "contains over 255 lines of code. It will produce unexpected results." msgstr "" +msgid "does not exist!" +msgstr "" + msgid "does not exist! Loading game without cheats." msgstr "" @@ -809,7 +854,7 @@ msgstr "服务器中无此文件!" msgid "for" msgstr "的" -msgid "for WiiTDB" +msgid "for WiiTDB and hosting covers / disc images" msgstr "" msgid "for diverse patches" diff --git a/Languages/spanish.lang b/Languages/spanish.lang index bb413d74..1becafbd 100644 --- a/Languages/spanish.lang +++ b/Languages/spanish.lang @@ -4,7 +4,7 @@ msgid "" msgstr "" "Project-Id-Version: USB Loader GX\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2009-07-14 16:35-0400\n" +"POT-Creation-Date: 2009-07-15 19:18+0200\n" "PO-Revision-Date: \n" "Last-Translator: \n" "Language-Team: \n" @@ -12,6 +12,9 @@ msgstr "" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" +msgid "(both retired)" +msgstr "" + msgid "0 (Everyone)" msgstr "0 (Todos)" @@ -156,6 +159,9 @@ msgstr "Contraseña Correcta" msgid "Could not create GCT file" msgstr "" +msgid "Could not find a WBFS partition." +msgstr "" + msgid "Could not initialize DIP module!" msgstr "¡No se pudo iniciar módulo DIP!" @@ -165,6 +171,18 @@ msgstr "¡No se pudo iniciar la Conexión!" msgid "Could not open Disc" msgstr "No se puede abrir Disco" +msgid "Could not open WBFS partition" +msgstr "" + +msgid "Could not open disc." +msgstr "" + +msgid "Could not read the disc." +msgstr "" + +msgid "Could not set USB." +msgstr "" + msgid "Cover Download" msgstr "Descarga de Carátulas" @@ -183,6 +201,12 @@ msgstr "Créditos" msgid "Custom Paths" msgstr "Personalizar Rutas" +msgid "DOL from SD" +msgstr "" + +msgid "DOL from disc" +msgstr "" + msgid "Dec" msgstr "Dic" @@ -258,6 +282,12 @@ msgstr "Descargando archivo" msgid "Dutch" msgstr "Holandés" +msgid "ERROR" +msgstr "" + +msgid "ERROR:" +msgstr "" + msgid "English" msgstr "Inglés" @@ -426,6 +456,9 @@ msgstr "Izquierda" msgid "Like SysMenu" msgstr "Como Menú Sist." +msgid "Load this dol as alternate dol?" +msgstr "" + msgid "Loading standard language." msgstr "Cargando idioma estándar." @@ -483,6 +516,9 @@ msgstr "USB no encontrado." msgid "No WBFS partition found" msgstr "Partición WBFS no encontrada" +msgid "No dol file found on disc." +msgstr "" + msgid "No file missing!" msgstr "¡No faltan archivos!" @@ -501,6 +537,9 @@ msgstr "Carátulas Norm." msgid "Not a Wii Disc" msgstr "No es un Disco Wii" +msgid "Not enough free memory." +msgstr "" + msgid "Not enough free space!" msgstr "¡No hay suficiente espacio libre!" @@ -612,6 +651,9 @@ msgstr "Vibración" msgid "SChinese" msgstr "Chino Simplif." +msgid "SD selected" +msgstr "" + msgid "SFX Volume" msgstr "Volumen SFX" @@ -791,6 +833,9 @@ msgstr "disponible" msgid "contains over 255 lines of code. It will produce unexpected results." msgstr "" +msgid "does not exist!" +msgstr "" + msgid "does not exist! Loading game without cheats." msgstr "" @@ -809,7 +854,7 @@ msgstr "archivo(s) no encontrado(s) en el servidor." msgid "for" msgstr "por" -msgid "for WiiTDB" +msgid "for WiiTDB and hosting covers / disc images" msgstr "" msgid "for diverse patches" diff --git a/Languages/swedish.lang b/Languages/swedish.lang index e8eb1327..1c1004b3 100644 --- a/Languages/swedish.lang +++ b/Languages/swedish.lang @@ -4,7 +4,7 @@ msgid "" msgstr "" "Project-Id-Version: USB Loader GX\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2009-07-14 16:35-0400\n" +"POT-Creation-Date: 2009-07-15 19:18+0200\n" "PO-Revision-Date: \n" "Last-Translator: \n" "Language-Team: \n" @@ -12,6 +12,9 @@ msgstr "" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" +msgid "(both retired)" +msgstr "" + msgid "0 (Everyone)" msgstr "" @@ -156,6 +159,9 @@ msgstr "Rätt lösenord" msgid "Could not create GCT file" msgstr "" +msgid "Could not find a WBFS partition." +msgstr "" + msgid "Could not initialize DIP module!" msgstr "Kunde inte starta \"DIP-module\"!" @@ -165,6 +171,18 @@ msgstr "Kunde inte starta nätverket!" msgid "Could not open Disc" msgstr "Kunde inte öppna skivan" +msgid "Could not open WBFS partition" +msgstr "" + +msgid "Could not open disc." +msgstr "" + +msgid "Could not read the disc." +msgstr "" + +msgid "Could not set USB." +msgstr "" + msgid "Cover Download" msgstr "Omslagsnedladdning" @@ -183,6 +201,12 @@ msgstr "Credits" msgid "Custom Paths" msgstr "" +msgid "DOL from SD" +msgstr "" + +msgid "DOL from disc" +msgstr "" + msgid "Dec" msgstr "" @@ -258,6 +282,12 @@ msgstr "Laddar ned fil:" msgid "Dutch" msgstr "Nederländska" +msgid "ERROR" +msgstr "" + +msgid "ERROR:" +msgstr "" + msgid "English" msgstr "Engelska" @@ -426,6 +456,9 @@ msgstr "Vänster" msgid "Like SysMenu" msgstr "Som System-menyn" +msgid "Load this dol as alternate dol?" +msgstr "" + msgid "Loading standard language." msgstr "" @@ -483,6 +516,9 @@ msgstr "Ingen USB-enhet hittad." msgid "No WBFS partition found" msgstr "Ingen WBFS-partition hittad" +msgid "No dol file found on disc." +msgstr "" + msgid "No file missing!" msgstr "Inga filer saknas!" @@ -501,6 +537,9 @@ msgstr "Vanliga omslag" msgid "Not a Wii Disc" msgstr "Inte en Wii-skiva" +msgid "Not enough free memory." +msgstr "" + msgid "Not enough free space!" msgstr "Ej tillräckligt med ledigt utrymme!" @@ -612,6 +651,9 @@ msgstr "Vibration" msgid "SChinese" msgstr "SKinesiska" +msgid "SD selected" +msgstr "" + msgid "SFX Volume" msgstr "" @@ -791,6 +833,9 @@ msgstr "" msgid "contains over 255 lines of code. It will produce unexpected results." msgstr "" +msgid "does not exist!" +msgstr "" + msgid "does not exist! Loading game without cheats." msgstr "" @@ -809,7 +854,7 @@ msgstr "Filerna hittades inte på servern!" msgid "for" msgstr "för" -msgid "for WiiTDB" +msgid "for WiiTDB and hosting covers / disc images" msgstr "" msgid "for diverse patches" diff --git a/Languages/tchinese.lang b/Languages/tchinese.lang index 2a45bc9e..f0224ca4 100644 --- a/Languages/tchinese.lang +++ b/Languages/tchinese.lang @@ -4,7 +4,7 @@ msgid "" msgstr "" "Project-Id-Version: USB Loader GX\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2009-07-14 16:35-0400\n" +"POT-Creation-Date: 2009-07-15 19:18+0200\n" "PO-Revision-Date: \n" "Last-Translator: \n" "Language-Team: \n" @@ -12,6 +12,9 @@ msgstr "" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" +msgid "(both retired)" +msgstr "" + msgid "0 (Everyone)" msgstr "" @@ -156,6 +159,9 @@ msgstr "密碼正確" msgid "Could not create GCT file" msgstr "" +msgid "Could not find a WBFS partition." +msgstr "" + msgid "Could not initialize DIP module!" msgstr "無法啟動 DIP 模組!" @@ -165,6 +171,18 @@ msgstr "無法啟動網路!" msgid "Could not open Disc" msgstr "無法開啟光碟" +msgid "Could not open WBFS partition" +msgstr "" + +msgid "Could not open disc." +msgstr "" + +msgid "Could not read the disc." +msgstr "" + +msgid "Could not set USB." +msgstr "" + msgid "Cover Download" msgstr "下載封面" @@ -183,6 +201,12 @@ msgstr "Credits" msgid "Custom Paths" msgstr "" +msgid "DOL from SD" +msgstr "" + +msgid "DOL from disc" +msgstr "" + msgid "Dec" msgstr "" @@ -258,6 +282,12 @@ msgstr "檔案下載中" msgid "Dutch" msgstr "荷文" +msgid "ERROR" +msgstr "" + +msgid "ERROR:" +msgstr "" + msgid "English" msgstr "英文" @@ -426,6 +456,9 @@ msgstr "左" msgid "Like SysMenu" msgstr "同系統選單" +msgid "Load this dol as alternate dol?" +msgstr "" + msgid "Loading standard language." msgstr "載入預設語言" @@ -483,6 +516,9 @@ msgstr "找不到 USB 裝置." msgid "No WBFS partition found" msgstr "找不到 WBFS 磁區" +msgid "No dol file found on disc." +msgstr "" + msgid "No file missing!" msgstr "沒有缺少的檔案!" @@ -501,6 +537,9 @@ msgstr "一般封面" msgid "Not a Wii Disc" msgstr "不是 Wii 的光碟" +msgid "Not enough free memory." +msgstr "" + msgid "Not enough free space!" msgstr "剩餘空間不足!" @@ -612,6 +651,9 @@ msgstr "震動" msgid "SChinese" msgstr "簡體中文" +msgid "SD selected" +msgstr "" + msgid "SFX Volume" msgstr "" @@ -791,6 +833,9 @@ msgstr "可取得" msgid "contains over 255 lines of code. It will produce unexpected results." msgstr "" +msgid "does not exist!" +msgstr "" + msgid "does not exist! Loading game without cheats." msgstr "" @@ -809,7 +854,7 @@ msgstr "伺服器中無此檔案!" msgid "for" msgstr "的" -msgid "for WiiTDB" +msgid "for WiiTDB and hosting covers / disc images" msgstr "" msgid "for diverse patches" diff --git a/Languages/turkish.lang b/Languages/turkish.lang index 134cd073..016a484c 100644 --- a/Languages/turkish.lang +++ b/Languages/turkish.lang @@ -4,7 +4,7 @@ msgid "" msgstr "" "Project-Id-Version: USB Loader GX\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2009-07-14 16:35-0400\n" +"POT-Creation-Date: 2009-07-15 19:18+0200\n" "PO-Revision-Date: \n" "Last-Translator: \n" "Language-Team: \n" @@ -12,6 +12,9 @@ msgstr "" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" +msgid "(both retired)" +msgstr "" + msgid "0 (Everyone)" msgstr "" @@ -156,6 +159,9 @@ msgstr "Dogru Sifre" msgid "Could not create GCT file" msgstr "" +msgid "Could not find a WBFS partition." +msgstr "" + msgid "Could not initialize DIP module!" msgstr "DIP modülü baslatilamiyor!" @@ -165,6 +171,18 @@ msgstr "Aga baglanilamiyor!" msgid "Could not open Disc" msgstr "Disk açilamiyor" +msgid "Could not open WBFS partition" +msgstr "" + +msgid "Could not open disc." +msgstr "" + +msgid "Could not read the disc." +msgstr "" + +msgid "Could not set USB." +msgstr "" + msgid "Cover Download" msgstr "Kapak Indirme" @@ -183,6 +201,12 @@ msgstr "Emegi Geçenler" msgid "Custom Paths" msgstr "" +msgid "DOL from SD" +msgstr "" + +msgid "DOL from disc" +msgstr "" + msgid "Dec" msgstr "" @@ -258,6 +282,12 @@ msgstr "Indirilen dosya:" msgid "Dutch" msgstr "Hollandaca" +msgid "ERROR" +msgstr "" + +msgid "ERROR:" +msgstr "" + msgid "English" msgstr "Ingilizce" @@ -426,6 +456,9 @@ msgstr "Sol" msgid "Like SysMenu" msgstr "Sistem Menüsü Gibi" +msgid "Load this dol as alternate dol?" +msgstr "" + msgid "Loading standard language." msgstr "" @@ -483,6 +516,9 @@ msgstr "USB Aygiti bulunamadi" msgid "No WBFS partition found" msgstr "WBFS bölümü bulunamadi" +msgid "No dol file found on disc." +msgstr "" + msgid "No file missing!" msgstr "Kayip dosya yok!" @@ -501,6 +537,9 @@ msgstr "Normal Kapaklar" msgid "Not a Wii Disc" msgstr "Wii Diski Degil" +msgid "Not enough free memory." +msgstr "" + msgid "Not enough free space!" msgstr "Gerekli bos yer yok!" @@ -612,6 +651,9 @@ msgstr "Titresim" msgid "SChinese" msgstr "Basitlestirilmis Çince" +msgid "SD selected" +msgstr "" + msgid "SFX Volume" msgstr "" @@ -791,6 +833,9 @@ msgstr "" msgid "contains over 255 lines of code. It will produce unexpected results." msgstr "" +msgid "does not exist!" +msgstr "" + msgid "does not exist! Loading game without cheats." msgstr "" @@ -809,7 +854,7 @@ msgstr "dosyalar sunucuda bulunamadi!" msgid "for" msgstr "," -msgid "for WiiTDB" +msgid "for WiiTDB and hosting covers / disc images" msgstr "" msgid "for diverse patches" diff --git a/Makefile b/Makefile index 8b4bcede..15fab5f2 100644 --- a/Makefile +++ b/Makefile @@ -19,7 +19,7 @@ BUILD := build SOURCES := source source/libwiigui source/images source/fonts source/sounds \ source/libwbfs source/unzip source/language source/mload source/patches \ source/usbloader source/xml source/network source/settings source/prompts \ - source/ramdisc source/wad source/banner + source/ramdisc source/wad source/banner source/cheats INCLUDES := source SVNDEV := -D'SVN_REV="$(shell svnversion -n ..)"' diff --git a/gui.pnproj b/gui.pnproj index 8619c386..b4208cb5 100644 --- a/gui.pnproj +++ b/gui.pnproj @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/gui.pnps b/gui.pnps index 7b61cd7d..26ee1dec 100644 --- a/gui.pnps +++ b/gui.pnps @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/source/banner/banner.c b/source/banner/banner.c index 3e497c95..c3ee55cb 100644 --- a/source/banner/banner.c +++ b/source/banner/banner.c @@ -20,21 +20,7 @@ #include "usbloader/disc.h" #include "banner.h" #include "patches/fst.h" - - -char *fstfilename(FST_ENTRY *fst, u32 index) -{ - u32 count = fst[0].filelen; - u32 stringoffset; - if (index < count) - { - stringoffset = *(u32 *)&(fst[index]) % (256*256*256); - return (char *)((u32)fst + count*12 + stringoffset); - } else - { - return NULL; - } -} +#include "usbloader/fstfile.h" s32 dump_banner(const char * discid,const char * dest) { @@ -95,7 +81,7 @@ s32 dump_banner(const char * discid,const char * dest) for (i=1;iios; countrystrings = game_cfg->patchcountrystrings; alternatedol = game_cfg->loadalternatedol; + alternatedoloffset = game_cfg->alternatedolstart; reloadblock = game_cfg->iosreloadblock; } else { videoChoice = Settings.video; @@ -1797,6 +1798,7 @@ int MainMenu(int menu) fix002 = Settings.error002; countrystrings = Settings.patchcountrystrings; alternatedol = off; + alternatedoloffset = 0; reloadblock = off; } int ios2; @@ -1968,7 +1970,7 @@ int MainMenu(int menu) break; } - ret = Disc_WiiBoot(videoselected, cheat, vipatch, countrystrings, errorfixer002, alternatedol); + ret = Disc_WiiBoot(videoselected, cheat, vipatch, countrystrings, errorfixer002, alternatedol, alternatedoloffset+1); if (ret < 0) { Sys_LoadMenu(); } diff --git a/source/prompts/DiscBrowser.cpp b/source/prompts/DiscBrowser.cpp new file mode 100644 index 00000000..7b493684 --- /dev/null +++ b/source/prompts/DiscBrowser.cpp @@ -0,0 +1,216 @@ +/**************************************************************************** + * DiscBrowser + * USB Loader GX 2009 + * + * DiscBrowser.h + ***************************************************************************/ +#include "language/gettext.h" +#include "libwiigui/gui.h" +#include "libwiigui/gui_customoptionbrowser.h" +#include "prompts/PromptWindows.h" +#include "filelist.h" +#include "menu.h" +#include "usbloader/disc.h" +#include "usbloader/fstfile.h" +#include "usbloader/wdvd.h" +#include "main.h" +#include "sys.h" +#include "settings/cfg.h" + +/*** Extern functions ***/ +extern void ResumeGui(); +extern void HaltGui(); + +/*** Extern variables ***/ +extern GuiWindow * mainWindow; +extern u8 shutdown; +extern u8 reset; + +/******************************************************************************** +*Game specific settings +*********************************************************************************/ +int DiscBrowse(struct discHdr * header) +{ + bool exit = false; + int ret, choice; + u64 offset; + + ret = Disc_SetUSB(header->id); + if(ret < 0) { + WindowPrompt(tr("ERROR:"), tr("Could not set USB."), tr("OK")); + return ret; + } + + ret = Disc_Open(); + if(ret < 0) { + WindowPrompt(tr("ERROR:"), tr("Could not open disc."), tr("OK")); + return ret; + } + + ret = __Disc_FindPartition(&offset); + if (ret < 0) { + WindowPrompt(tr("ERROR:"), tr("Could not find a WBFS partition."), tr("OK")); + return ret; + } + + ret = WDVD_OpenPartition(offset); + if (ret < 0) { + WindowPrompt(tr("ERROR:"), tr("Could not open WBFS partition"), tr("OK")); + return ret; + } + + int *buffer = (int*)memalign(32, 0x20); + + if (buffer == NULL) + { + WindowPrompt(tr("ERROR:"), tr("Not enough free memory."), tr("OK")); + return -1; + } + + ret = WDVD_Read(buffer, 0x20, 0x420); + if (ret < 0) { + WindowPrompt(tr("ERROR:"), tr("Could not read the disc."), tr("OK")); + return ret; + } + void *fstbuffer = memalign(32, buffer[2]*4); + FST_ENTRY *fst = (FST_ENTRY *)fstbuffer; + + if (fst == NULL) + { + WindowPrompt(tr("ERROR:"), tr("Not enough free memory."), tr("OK")); + free(buffer); + return -1; + } + + ret = WDVD_Read(fstbuffer, buffer[2]*4, buffer[1]*4); + + if (ret < 0) { + WindowPrompt(tr("ERROR:"), tr("Could not read the disc."), tr("OK")); + free(buffer); + free(fstbuffer); + return ret; + } + + free(buffer); + + WDVD_Reset(); + //Disc_SetUSB(NULL); + WDVD_ClosePartition(); + + u32 discfilecount = fst[0].filelen; + u32 dolfilecount = 0; + //int offsetselect[20]; + + customOptionList options3(discfilecount); + + for (u32 i = 0; i < discfilecount; i++) { + options3.SetName(i, "%i", i); + options3.SetValue(i, fstfiles(fst, i)); + dolfilecount++; + } + + if(dolfilecount <= 0) { + WindowPrompt(tr("ERROR"), tr("No dol file found on disc."), tr("OK")); + free(fstbuffer); + return -1; + } + + GuiSound btnSoundOver(button_over_pcm, button_over_pcm_size, SOUND_PCM, Settings.sfxvolume); + GuiSound btnClick(button_click2_pcm, button_click2_pcm_size, SOUND_PCM, Settings.sfxvolume); + + char imgPath[100]; + + snprintf(imgPath, sizeof(imgPath), "%sbutton_dialogue_box.png", CFG.theme_path); + GuiImageData btnOutline(imgPath, button_dialogue_box_png); + snprintf(imgPath, sizeof(imgPath), "%sgamesettings_background.png", CFG.theme_path); + GuiImageData settingsbg(imgPath, settings_background_png); + + GuiTrigger trigA; + trigA.SetSimpleTrigger(-1, WPAD_BUTTON_A | WPAD_CLASSIC_BUTTON_A, PAD_BUTTON_A); + GuiTrigger trigHome; + trigHome.SetButtonOnlyTrigger(-1, WPAD_BUTTON_HOME | WPAD_CLASSIC_BUTTON_HOME, 0); + GuiTrigger trigB; + trigB.SetButtonOnlyTrigger(-1, WPAD_BUTTON_B | WPAD_CLASSIC_BUTTON_B, PAD_BUTTON_B); + + GuiText titleTxt(get_title(header), 28, (GXColor){0, 0, 0, 255}); + titleTxt.SetAlignment(ALIGN_CENTRE, ALIGN_TOP); + titleTxt.SetPosition(12,40); + titleTxt.SetMaxWidth(356, GuiText::SCROLL); + + GuiImage settingsbackground(&settingsbg); + GuiButton settingsbackgroundbtn(settingsbackground.GetWidth(), settingsbackground.GetHeight()); + settingsbackgroundbtn.SetAlignment(ALIGN_LEFT, ALIGN_TOP); + settingsbackgroundbtn.SetPosition(0, 0); + settingsbackgroundbtn.SetImage(&settingsbackground); + + GuiText cancelBtnTxt(tr("Back"), 22, (GXColor){THEME.prompttxt_r, THEME.prompttxt_g, THEME.prompttxt_b, 255}); + cancelBtnTxt.SetMaxWidth(btnOutline.GetWidth()-30); + GuiImage cancelBtnImg(&btnOutline); + if (Settings.wsprompt == yes){ + cancelBtnTxt.SetWidescreen(CFG.widescreen); + cancelBtnImg.SetWidescreen(CFG.widescreen); + } + GuiButton cancelBtn(&cancelBtnImg,&cancelBtnImg, 2, 3, 180, 400, &trigA, &btnSoundOver, &btnClick,1); + cancelBtn.SetScale(0.9); + cancelBtn.SetLabel(&cancelBtnTxt); + cancelBtn.SetTrigger(&trigB); + + u8 scrollbaron = 0; + if(dolfilecount > 9) + scrollbaron = 1; + + GuiCustomOptionBrowser optionBrowser3(396, 280, &options3, CFG.theme_path, "bg_options_gamesettings.png", bg_options_settings_png, scrollbaron, 200); + optionBrowser3.SetPosition(0, 90); + optionBrowser3.SetAlignment(ALIGN_CENTRE, ALIGN_TOP); + + HaltGui(); + GuiWindow w(screenwidth, screenheight); + w.Append(&settingsbackgroundbtn); + w.Append(&titleTxt); + w.Append(&cancelBtn); + w.Append(&optionBrowser3); + + mainWindow->Append(&w); + + ResumeGui(); + + while(!exit) + { + VIDEO_WaitVSync(); + + if(shutdown == 1) + Sys_Shutdown(); + if(reset == 1) + Sys_Reboot(); + + ret = optionBrowser3.GetClickedOption(); + + if(ret > 0) { + char temp[100]; + strncpy(temp, fstfiles(fst, ret), sizeof(temp)); + choice = WindowPrompt(temp, tr("Load this dol as alternate dol?"), tr("OK"), tr("Cancel")); + if(choice) { + //ret = offsetselect[ret]; + snprintf(alternatedname, sizeof(alternatedname), "%s", temp); + exit = true; + break; + } + } + + if (cancelBtn.GetState() == STATE_CLICKED) + { + exit = true; + ret = -1; + break; + } + } + + HaltGui(); + mainWindow->Remove(&w); + ResumeGui(); + + //free not needed list buffer anymore + free(fstbuffer); + + return ret; +} diff --git a/source/prompts/DiscBrowser.h b/source/prompts/DiscBrowser.h new file mode 100644 index 00000000..5cf15eb6 --- /dev/null +++ b/source/prompts/DiscBrowser.h @@ -0,0 +1,13 @@ +/**************************************************************************** + * DiscBrowser + * USB Loader GX 2009 + * + * DiscBrowser.h + ***************************************************************************/ + +#ifndef _DISCBROWSER_H_ +#define _DISCBROWSER_H_ + +int DiscBrowse(struct discHdr * headerc); + +#endif diff --git a/source/prompts/PromptWindows.cpp b/source/prompts/PromptWindows.cpp index c5b8f823..9e72b1d1 100644 --- a/source/prompts/PromptWindows.cpp +++ b/source/prompts/PromptWindows.cpp @@ -28,7 +28,7 @@ #include "wad/wad.h" #include "unzip/unzip.h" #include "zlib.h" - + /*** Variables that are also used extern ***/ int cntMissFiles = 0; @@ -170,21 +170,21 @@ void WindowCredits() txt[i] = new GuiText(tr("Credits"), 26, (GXColor){255, 255, 255, 255}); txt[i]->SetAlignment(ALIGN_CENTRE, ALIGN_TOP); txt[i]->SetPosition(0,12); i++; - + #ifdef NOTFULLCHANNEL char SvnRev[30]; snprintf(SvnRev,sizeof(SvnRev), "Rev%s IOS%u (Rev %u)", SVN_REV, IOS_GetVersion(), IOS_GetRevision()); #else - char svnTmp[4];//did this to hide the M after the rev# that is made by altering it + char svnTmp[4];//did this to hide the M after the rev# that is made by altering it //to be ready to be in a full channel snprintf(svnTmp,sizeof(svnTmp), "%s", SVN_REV); char SvnRev[30]; snprintf(SvnRev,sizeof(SvnRev), "Rev%sc IOS%u (Rev %u)", svnTmp, IOS_GetVersion(), IOS_GetRevision()); #endif - - - - + + + + txt[i] = new GuiText(SvnRev, 16, (GXColor){255, 255, 255, 255}); txt[i]->SetAlignment(ALIGN_RIGHT, ALIGN_TOP); txt[i]->SetPosition(0,y); i++; y+=34; @@ -209,12 +209,15 @@ void WindowCredits() i++; y+=24; - txt[i] = new GuiText("hungyip84 / giantpune"); + txt[i] = new GuiText("giantpune / ardi"); txt[i]->SetAlignment(ALIGN_LEFT, ALIGN_TOP); txt[i]->SetPosition(220,y); i++; y+=24; - txt[i] = new GuiText("ardi / DrayX7"); + char text[100]; + + sprintf(text, "hungyip84 / DrayX7 %s", tr("(both retired)")); + txt[i] = new GuiText(text); txt[i]->SetAlignment(ALIGN_LEFT, ALIGN_TOP); txt[i]->SetPosition(220,y); i++; y+=24; @@ -228,7 +231,7 @@ void WindowCredits() txt[i]->SetAlignment(ALIGN_LEFT, ALIGN_TOP); txt[i]->SetPosition(70,y); i++; - txt[i] = new GuiText("cyrex / NeoRame / WiiShizzza"); + txt[i] = new GuiText("cyrex / NeoRame"); txt[i]->SetAlignment(ALIGN_LEFT, ALIGN_TOP); txt[i]->SetPosition(220,y); i++; y+=20; @@ -242,14 +245,7 @@ void WindowCredits() txt[i]->SetAlignment(ALIGN_LEFT, ALIGN_TOP); txt[i]->SetPosition(70,y); i++; - char text[100]; - /* sprintf(text, "djtaz %s", tr("for hosting the covers/discarts")); - txt[i] = new GuiText(text); - txt[i]->SetAlignment(ALIGN_LEFT, ALIGN_TOP); txt[i]->SetPosition(220,y); - i++; - y+=24;*/ - - sprintf(text, " lustar %s", tr("for WiiTDB")); + sprintf(text, "lustar %s", tr("for WiiTDB and hosting covers / disc images")); txt[i] = new GuiText(text); txt[i]->SetAlignment(ALIGN_LEFT, ALIGN_TOP); txt[i]->SetPosition(220,y); i++; @@ -1911,7 +1907,7 @@ ProgressDownloadWindow(int choice2) cntMissFiles = 0; } } - + char sysLanguage[3]; switch(CONF_GetLanguage()){ case CONF_LANG_JAPANESE: @@ -1925,7 +1921,7 @@ ProgressDownloadWindow(int choice2) break; case CONF_LANG_FRENCH: sprintf(sysLanguage, "FR"); - break; + break; case CONF_LANG_SPANISH: sprintf(sysLanguage, "ES"); break; @@ -1977,7 +1973,7 @@ ProgressDownloadWindow(int choice2) if (choice2 == 2) { while(tries= 0) { int newrev = CheckUpdate(); @@ -2404,7 +2400,7 @@ int ProgressUpdateWindow() u8 * blockbuffer = new unsigned char[BLOCKSIZE]; for (s32 i = 0; i < filesize; i += BLOCKSIZE) { usleep(100); - prTxt.SetTextf("%i%%", (100*i/filesize)+1); + prTxt.SetTextf("%i%%", (100*i/filesize)+1); if ((Settings.wsprompt == yes) && (CFG.widescreen)) { progressbarImg.SetTile(80*i/filesize); } else { @@ -2611,7 +2607,7 @@ int ProgressUpdateWindow() failed = -1; } } - + if(stat(Settings.titlestxt_path, &st) != 0) { if(subfoldercreate(Settings.titlestxt_path) != 1) { WindowPrompt(tr("Error !"),tr("Can't create directory"),tr("OK")); @@ -2619,8 +2615,8 @@ int ProgressUpdateWindow() failed = -1; } } - - + + //make the URL to get XML based on our games char XMLurl[2010]; char filename[10]; @@ -2637,7 +2633,7 @@ int ProgressUpdateWindow() } } - + char dolpath[150]; // char dolpathsuccess[150];//use coverspath as a folder for the update wad so we dont make a new folder and have to delete it @@ -2692,7 +2688,7 @@ int ProgressUpdateWindow() } s32 filesize = download_request("http://www.techjawa.com/usbloadergx/ULNR.file");//for some reason it didn't download completely when saved as a wad. if(filesize > 0) { - + pfile = fopen(dolpath, "wb");//here we save the txt as a wad u8 * blockbuffer = new unsigned char[BLOCKSIZE]; for (s32 i = 0; i < filesize; i += BLOCKSIZE) { @@ -2704,7 +2700,7 @@ int ProgressUpdateWindow() progressbarImg.SetTile(100*i/filesize); } msg2Txt.SetTextf("%iKB/%iKB", i/1024, filesize/1024); - + if(btn1.GetState() == STATE_CLICKED) { fclose(pfile); remove(dolpath); @@ -2756,7 +2752,7 @@ int ProgressUpdateWindow() sleep(1);//sleep 1 because it froze without this for some reason if(!failed && ret >= 0) { - + FILE *wadFile = NULL; s32 shit = 1; int diarhea = 0; @@ -2767,9 +2763,9 @@ int ProgressUpdateWindow() WindowPrompt(tr("Error !"), nipple, tr("Ok")); failed = -1; } - else{ + else{ //sprintf(nipple, tr("The update wad has been saved as %s. Now let's try to install it."),dolpath); - //WindowPrompt(0,nipple, tr("Ok")); + //WindowPrompt(0,nipple, tr("Ok")); shit = Wad_Install(wadFile); fclose(wadFile); if (shit==0){ @@ -2781,7 +2777,7 @@ int ProgressUpdateWindow() WindowPrompt(tr("Error"),nipple,"Ok"); } } - + if (shit) WindowPrompt(tr("Shit") , tr("there was an error"), tr("OK")); else diff --git a/source/settings/Settings.cpp b/source/settings/Settings.cpp index c34928b2..348f973a 100644 --- a/source/settings/Settings.cpp +++ b/source/settings/Settings.cpp @@ -7,8 +7,9 @@ #include "libwiigui/gui.h" #include "libwiigui/gui_customoptionbrowser.h" #include "prompts/PromptWindows.h" +#include "prompts/DiscBrowser.h" #include "settings/SettingsPrompts.h" -#include "cheatmenu.h" +#include "cheats/cheatmenu.h" #include "fatmounter.h" #include "menu.h" #include "filelist.h" @@ -1737,7 +1738,7 @@ int GameSettings(struct discHdr * header) strncat(gameName, "...", 3); } - customOptionList options3(12); + customOptionList options3(13); options3.SetName(0,"%s", tr("Video Mode")); options3.SetName(1,"%s", tr("VIDTV Patch")); options3.SetName(2,"%s", tr("Game Language")); @@ -1747,9 +1748,10 @@ int GameSettings(struct discHdr * header) options3.SetName(6,"%s", tr("Error 002 fix")); options3.SetName(7,"%s", tr("Patch Country Strings")); options3.SetName(8,"%s", tr("Alternate DOL")); - options3.SetName(9,"%s", tr("Block IOS Reload")); - options3.SetName(10,"%s", tr("Reset Playcounter")); - options3.SetName(11,"%s", tr("Default Gamesettings")); + options3.SetName(9,"%s", tr("DOL from disc")); + options3.SetName(10,"%s", tr("Block IOS Reload")); + options3.SetName(11,"%s", tr("Reset Playcounter")); + options3.SetName(12,"%s", tr("Default Gamesettings")); GuiSound btnSoundOver(button_over_pcm, button_over_pcm_size, SOUND_PCM, Settings.sfxvolume); GuiSound btnClick(button_click2_pcm, button_click2_pcm_size, SOUND_PCM, Settings.sfxvolume); @@ -1848,7 +1850,9 @@ int GameSettings(struct discHdr * header) fix002 = game_cfg->errorfix002; countrystrings = game_cfg->patchcountrystrings; alternatedol = game_cfg->loadalternatedol; + alternatedoloffset = game_cfg->alternatedolstart; reloadblock = game_cfg->iosreloadblock; + strncpy(alternatedname, game_cfg->alternatedolname, sizeof(alternatedname)); } else { @@ -1865,7 +1869,9 @@ int GameSettings(struct discHdr * header) fix002 = Settings.error002; countrystrings = Settings.patchcountrystrings; alternatedol = off; + alternatedoloffset = 0; reloadblock = off; + sprintf(alternatedname, " "); } int opt_lang = languageChoice; // backup language setting @@ -1918,14 +1924,16 @@ int GameSettings(struct discHdr * header) if (countrystrings == on) options3.SetValue(7,tr("ON")); else if (countrystrings == off) options3.SetValue(7,tr("OFF")); - if (alternatedol == on) options3.SetValue(8,tr("ON")); + if (alternatedol == on) options3.SetValue(8,tr("DOL from SD")); + if (alternatedol == 2) options3.SetValue(8,tr("DOL from disc")); else if (alternatedol == off) options3.SetValue(8,tr("OFF")); - if (reloadblock == on) options3.SetValue(9,tr("ON")); - else if (reloadblock == off) options3.SetValue(9,tr("OFF")); - - + if (alternatedol == on) options3.SetValue(9,tr("SD selected")); + else if (alternatedol == off) options3.SetValue(9,tr("OFF")); + else options3.SetValue(9, alternatedname); + if (reloadblock == on) options3.SetValue(10,tr("ON")); + else if (reloadblock == off) options3.SetValue(10,tr("OFF")); options3.SetValue(11, NULL); options3.SetValue(12, NULL); @@ -1964,12 +1972,19 @@ int GameSettings(struct discHdr * header) countrystrings = (countrystrings+1) % 2; break; case 8: - alternatedol = (alternatedol+1) % 2; + alternatedol = (alternatedol+1) % 3; break; case 9: - reloadblock = (reloadblock+1) % 2; + if(alternatedol == 2) { + int res = DiscBrowse(header); + if(res >= 0) + alternatedoloffset = res; + } break; case 10: + reloadblock = (reloadblock+1) % 2; + break; + case 11: int result; result = WindowPrompt(tr("Are you sure?"),0,tr("Yes"),tr("Cancel")); if(result == 1) { @@ -1987,7 +2002,7 @@ int GameSettings(struct discHdr * header) } } break; - case 11: + case 12: int choice = WindowPrompt(tr("Are you sure?"),0,tr("Yes"),tr("Cancel")); if(choice == 1) { videoChoice = Settings.video; @@ -1997,6 +2012,7 @@ int GameSettings(struct discHdr * header) fix002 = Settings.error002; countrystrings = Settings.patchcountrystrings; alternatedol = off; + alternatedoloffset = 0; reloadblock = off; if(Settings.cios == ios222) { iosChoice = i222; @@ -2004,6 +2020,7 @@ int GameSettings(struct discHdr * header) iosChoice = i249; } parentalcontrolChoice = 0; + sprintf(alternatedname, " "); CFG_forget_game_opt(header->id); // if default language is different than language from main settings, reload titles int opt_langnew = 0; diff --git a/source/settings/cfg.c b/source/settings/cfg.c index 04075909..7333a6b9 100644 --- a/source/settings/cfg.c +++ b/source/settings/cfg.c @@ -29,6 +29,7 @@ u8 fix002 = 0; u8 reloadblock = 0; u8 countrystrings = 0; u8 alternatedol = 0; +u8 alternatedoloffset = 0; u8 xflip = 0; u8 sort = 0; u8 fave = 0; @@ -38,6 +39,7 @@ u8 keyset = 0; u8 favoritevar = 0; u16 playcount = 0; u8 listDisplay = 0; +char alternatedname[40]; #define TITLE_MAX 65 @@ -1162,6 +1164,8 @@ void cfg_set_game_opt(struct Game_CFG *game, u8 *id) game->iosreloadblock = reloadblock; game->patchcountrystrings = countrystrings; game->loadalternatedol = alternatedol; + game->alternatedolstart = alternatedoloffset; + strcpy(game->alternatedolname, alternatedname); } struct Game_NUM* cfg_get_game_num(u8 *id) @@ -1339,6 +1343,25 @@ void game_set(char *name, char *val) game->loadalternatedol = opt_c; } } + if (strcmp("alternatedolstart", opt_name) == 0) { + if (sscanf(opt_val, "%hd", &opt_c) == 1) { + game->alternatedolstart = opt_c; + } + } + if (strcmp("alternatedolname", opt_name) == 0) { + char temp3[40]; + int i = 0; + while(i < 40) { + + if(opt_val[i] == ';') + break; + + temp3[i] = opt_val[i]; + i++; + } + temp3[i] = '\0'; + strncpy(game->alternatedolname, temp3, 39); + } } // next opt if (np) p = np + 1; else p = NULL; @@ -1486,7 +1509,9 @@ bool cfg_save_games() fprintf(f, "errorfix002:%d; ", cfg_game[i].errorfix002); fprintf(f, "iosreloadblock:%d; ", cfg_game[i].iosreloadblock); fprintf(f, "patchcountrystrings:%d; ", cfg_game[i].patchcountrystrings); - fprintf(f, "loadalternatedol:%d;\n", cfg_game[i].loadalternatedol); + fprintf(f, "loadalternatedol:%d;", cfg_game[i].loadalternatedol); + fprintf(f, "alternatedolstart:%d;", cfg_game[i].alternatedolstart); + fprintf(f, "alternatedolname:%s;\n", cfg_game[i].alternatedolname); } fprintf(f, "# END\n"); fclose(f); diff --git a/source/settings/cfg.h b/source/settings/cfg.h index 352e4341..1315dc7a 100644 --- a/source/settings/cfg.h +++ b/source/settings/cfg.h @@ -155,6 +155,7 @@ extern u8 fix002; extern u8 reloadblock; extern u8 countrystrings; extern u8 alternatedol; +extern u8 alternatedoloffset; extern u8 xflip; extern u8 qboot; extern u8 sort; @@ -164,6 +165,7 @@ extern u8 keyset; extern u8 gameDisplay; extern u16 playcount; extern u8 favoritevar; +extern char alternatedname[40]; struct Game_CFG @@ -178,7 +180,9 @@ struct Game_CFG u8 errorfix002; u8 iosreloadblock; u8 loadalternatedol; + u8 alternatedolstart; u8 patchcountrystrings; + char alternatedolname[40]; }; struct Game_NUM { diff --git a/source/usbloader/alternatedol.c b/source/usbloader/alternatedol.c index db93eb46..c74dd0a6 100644 --- a/source/usbloader/alternatedol.c +++ b/source/usbloader/alternatedol.c @@ -5,6 +5,9 @@ #include #include "fatmounter.h" +#include "apploader.h" +#include "wdvd.h" +#include "fstfile.h" /** Alternate dolloader made by WiiPower modified by dimok **/ @@ -96,10 +99,12 @@ typedef struct _dolheader { u32 entry_point; } dolheader; +static dolheader *dolfile; + + u32 load_dol_image(void *dolstart) { u32 i; - dolheader *dolfile; if (dolstart) { dolfile = (dolheader *) dolstart; @@ -124,3 +129,122 @@ u32 load_dol_image(void *dolstart) { } return 0; } + +static int i; +static int phase; + +u32 load_dol_start(void *dolstart) +{ + if (dolstart) + { + dolfile = (dolheader *)dolstart; + return dolfile->entry_point; + } else + { + return 0; + } + + memset((void *)dolfile->bss_start, 0, dolfile->bss_size); + DCFlushRange((void *)dolfile->bss_start, dolfile->bss_size); + + phase = 0; + i = 0; +} + +bool load_dol_image_modified(void **offset, u32 *pos, u32 *len) +{ + if (phase == 0) + { + if (i == 7) + { + phase = 1; + i = 0; + } else + { + if ((!dolfile->text_size[i]) || (dolfile->text_start[i] < 0x100)) + { + *offset = 0; + *pos = 0; + *len = 0; + } else + { + *offset = (void *)dolfile->text_start[i]; + *pos = dolfile->text_pos[i]; + *len = dolfile->text_size[i]; + } + i++; + return true; + } + } + + if (phase == 1) + { + if (i == 11) + { + phase = 2; + return false; + } + + if ((!dolfile->data_size[i]) || (dolfile->data_start[i] < 0x100)) + { + *offset = 0; + *pos = 0; + *len = 0; + } else + { + *offset = (void *)dolfile->data_start[i]; + *pos = dolfile->data_pos[i]; + *len = dolfile->data_size[i]; + } + i++; + return true; + } + return false; +} + +u32 Load_Dol_from_disc(u32 doloffset, u8 videoSelected, u8 patchcountrystring, u8 vipatch) +{ + int ret; + void *dol_header; + u32 entrypoint; + + dol_header = memalign(32, sizeof(dolheader)); + if (dol_header == NULL) + { + return -1; + } + + ret = WDVD_Read(dol_header, sizeof(dolheader), (doloffset<<2)); + + entrypoint = load_dol_start(dol_header); + + if (entrypoint == 0) + { + free(dol_header); + return -1; + } + + void *offset; + u32 pos; + u32 len; + + while (load_dol_image_modified(&offset, &pos, &len)) + { + if (len != 0) + { + ret = WDVD_Read(offset, len, (doloffset<<2) + pos); + + DCFlushRange(offset, len); + + gamepatches(offset, len, videoSelected, patchcountrystring, vipatch); + + DCFlushRange(offset, len); + + Remove_001_Protection(offset, len); + } + } + + free(dol_header); + + return entrypoint; +} diff --git a/source/usbloader/alternatedol.h b/source/usbloader/alternatedol.h index 816cb8c7..4fe84e00 100644 --- a/source/usbloader/alternatedol.h +++ b/source/usbloader/alternatedol.h @@ -11,6 +11,8 @@ extern "C" bool Load_Dol(void **buffer, int* dollen, char * path); bool Remove_001_Protection(void *Address, int Size); u32 load_dol_image(void * dolstart); +u32 Load_Dol_from_disc(u32 doloffset, u8 videoSelected, u8 patchcountrystring, u8 vipatch); + #ifdef __cplusplus } #endif diff --git a/source/usbloader/apploader.c b/source/usbloader/apploader.c index 321a7cb6..bdda3029 100644 --- a/source/usbloader/apploader.c +++ b/source/usbloader/apploader.c @@ -9,6 +9,7 @@ #include "wpad.h" #include "disc.h" #include "alternatedol.h" +#include "fstfile.h" #include "settings/cfg.h" /*KENOBI! - FISHEARS*/ @@ -293,7 +294,7 @@ void gamepatches(void * dst, int len, u8 videoSelected, u8 patchcountrystring, u } -s32 Apploader_Run(entry_point *entry, u8 cheat, u8 videoSelected, u8 vipatch, u8 patchcountrystring, u8 error002fix, u8 alternatedol) +s32 Apploader_Run(entry_point *entry, u8 cheat, u8 videoSelected, u8 vipatch, u8 patchcountrystring, u8 error002fix, u8 alternatedol, u8 alternatedoloffset) { app_entry appldr_entry; app_init appldr_init; @@ -378,6 +379,14 @@ s32 Apploader_Run(entry_point *entry, u8 cheat, u8 videoSelected, u8 vipatch, u8 /* Set entry point from apploader */ *entry = (entry_point) load_dol_image(dolbuffer); } + } else if(alternatedol == 2) { + + FST_ENTRY *fst = (FST_ENTRY *)*(u32 *)0x80000038; + + *entry = (entry_point) Load_Dol_from_disc(fst[alternatedoloffset].fileoffset, videoSelected, patchcountrystring, vipatch); + + if(*entry == 0) + SYS_ResetSystem(SYS_RETURNTOMENU, 0, 0); } return 0; diff --git a/source/usbloader/apploader.h b/source/usbloader/apploader.h index 7f658ee9..c5aab371 100644 --- a/source/usbloader/apploader.h +++ b/source/usbloader/apploader.h @@ -10,7 +10,8 @@ extern "C" typedef void (*entry_point)(void); /* Prototypes */ -s32 Apploader_Run(entry_point *, u8, u8, u8, u8, u8, u8); +s32 Apploader_Run(entry_point *, u8, u8, u8, u8, u8, u8, u8); +void gamepatches(void * dst, int len, u8 videoSelected, u8 patchcountrystring, u8 vipatch); #ifdef __cplusplus } diff --git a/source/usbloader/disc.c b/source/usbloader/disc.c index 08004a62..9cdd9ca4 100644 --- a/source/usbloader/disc.c +++ b/source/usbloader/disc.c @@ -37,7 +37,7 @@ void __Disc_SetLowMem(void) *(vu32 *)0x800000E4 = 0x80431A80; *(vu32 *)0x800000EC = 0x81800000; // Dev Debugger Monitor Address *(vu32 *)0x800000F0 = 0x01800000; // Simulated Memory Size - + //If the game is sam & max: season 1 put this shit in char tempTxt[10]; snprintf (tempTxt,sizeof(tempTxt),"%c%c%c%c%c%c", gameid[0], gameid[1], gameid[2], gameid[3], gameid[4], gameid[5]); @@ -261,7 +261,7 @@ s32 Disc_IsWii(void) return 0; } -s32 Disc_BootPartition(u64 offset, u8 videoselected, u8 cheat, u8 vipatch, u8 patchcountrystring, u8 error002fix, u8 alternatedol) +s32 Disc_BootPartition(u64 offset, u8 videoselected, u8 cheat, u8 vipatch, u8 patchcountrystring, u8 error002fix, u8 alternatedol, u8 alternatedoloffset) { entry_point p_entry; @@ -273,7 +273,7 @@ s32 Disc_BootPartition(u64 offset, u8 videoselected, u8 cheat, u8 vipatch, u8 pa return ret; /* Run apploader */ - ret = Apploader_Run(&p_entry, cheat, videoselected, vipatch, patchcountrystring, error002fix, alternatedol); + ret = Apploader_Run(&p_entry, cheat, videoselected, vipatch, patchcountrystring, error002fix, alternatedol, alternatedoloffset); if (ret < 0) return ret; @@ -308,7 +308,7 @@ s32 Disc_BootPartition(u64 offset, u8 videoselected, u8 cheat, u8 vipatch, u8 pa return 0; } -s32 Disc_WiiBoot(u8 videoselected, u8 cheat, u8 vipatch, u8 patchcountrystring, u8 error002fix, u8 alternatedol) +s32 Disc_WiiBoot(u8 videoselected, u8 cheat, u8 vipatch, u8 patchcountrystring, u8 error002fix, u8 alternatedol, u8 alternatedoloffset) { u64 offset; s32 ret; @@ -319,7 +319,7 @@ s32 Disc_WiiBoot(u8 videoselected, u8 cheat, u8 vipatch, u8 patchcountrystring, return ret; /* Boot partition */ - return Disc_BootPartition(offset, videoselected, cheat, vipatch, patchcountrystring, error002fix, alternatedol); + return Disc_BootPartition(offset, videoselected, cheat, vipatch, patchcountrystring, error002fix, alternatedol, alternatedoloffset); } void PatchCountryStrings(void *Address, int Size) diff --git a/source/usbloader/disc.h b/source/usbloader/disc.h index d7d8a06d..f16d5ad9 100644 --- a/source/usbloader/disc.h +++ b/source/usbloader/disc.h @@ -46,8 +46,9 @@ void __Disc_SetLowMem(void); s32 Disc_SetUSB(u8 *); s32 Disc_ReadHeader(void *); s32 Disc_IsWii(void); -s32 Disc_BootPartition(u64, u8, u8, u8, u8, u8, u8); -s32 Disc_WiiBoot(u8, u8, u8, u8, u8, u8); +s32 Disc_BootPartition(u64, u8, u8, u8, u8, u8, u8, u8); +s32 Disc_WiiBoot(u8, u8, u8, u8, u8, u8, u8); +s32 __Disc_FindPartition(u64 *outbuf); void PatchCountryStrings(void *Address, int Size); s32 __Disc_FindPartition(u64 *outbuf); diff --git a/source/usbloader/fstfile.c b/source/usbloader/fstfile.c new file mode 100644 index 00000000..dda9a493 --- /dev/null +++ b/source/usbloader/fstfile.c @@ -0,0 +1,46 @@ +#include + +#include "fstfile.h" + + +char *fstfiles(FST_ENTRY *fst, u32 index) +{ + u32 count = fst[0].filelen; + u32 stringoffset; + if (index < count) + { + stringoffset = *(u32 *)&(fst[index]) % (256*256*256); + return (char *)((u32)fst + count*12 + stringoffset); + } else + { + return NULL; + } +} + +char *fstfilename(u32 index) +{ + FST_ENTRY *fst = (FST_ENTRY *)*(u32 *)0x80000038; + u32 count = fst[0].filelen; + u32 stringoffset; + if (index < count) + { + stringoffset = *(u32 *)&(fst[index]) % (256*256*256); + return (char *)(*(u32 *)0x80000038 + count*12 + stringoffset); + } else + { + return NULL; + } +} + +u32 fstfileoffset(u32 index) +{ + FST_ENTRY *fst = (FST_ENTRY *)*(u32 *)0x80000038; + u32 count = fst[0].filelen; + if (index < count) + { + return fst[index].fileoffset; + } else + { + return 0; + } +} diff --git a/source/usbloader/fstfile.h b/source/usbloader/fstfile.h new file mode 100644 index 00000000..0079dc6a --- /dev/null +++ b/source/usbloader/fstfile.h @@ -0,0 +1,24 @@ +#ifndef _FSTFILE_H_ +#define _FSTFILE_H_ + +#ifdef __cplusplus +extern "C" +{ +#endif + +typedef struct { + u8 filetype; + char name_offset[3]; + u32 fileoffset; + u32 filelen; +} __attribute__((packed)) FST_ENTRY; + +char *fstfiles(FST_ENTRY *fst, u32 index); +char *fstfilename(u32 index); +u32 fstfileoffset(u32 index); + +#ifdef __cplusplus +} +#endif + +#endif diff --git a/source/video.cpp b/source/video.cpp index 75b3f9e2..9212e495 100644 --- a/source/video.cpp +++ b/source/video.cpp @@ -288,7 +288,7 @@ void Menu_DrawImg(f32 xpos, f32 ypos, f32 zpos, f32 width, f32 height, u8 data[] GX_Position3f32(-width+XX4, height+YY4, 0); GX_Color4u8(0xFF,0xFF,0xFF,alpha); GX_TexCoord2f32(0, 1); - + // GX_End(); @@ -347,8 +347,8 @@ void Menu_DrawDiskCover(f32 xpos, f32 ypos, f32 zpos, u16 width, u16 height, u16 GX_SetTevOp (GX_TEVSTAGE0, GX_MODULATE); GX_SetVtxDesc (GX_VA_TEX0, GX_DIRECT); - - + + f32 cos_beta = cos(DegToRad(deg_beta)); f32 s_offset_y = (zpos + (cos_beta * distance)) * tan(DegToRad(5)); f32 s_offset_x = (cos_beta<0?-cos_beta:cos_beta) * s_offset_y; @@ -359,7 +359,7 @@ void Menu_DrawDiskCover(f32 xpos, f32 ypos, f32 zpos, u16 width, u16 height, u16 height*=.5; guMtxIdentity (m4); guMtxTransApply(m4,m4, 0, 0, distance); - + guMtxIdentity (m1); guMtxScaleApply(m1,m1,scaleX,scaleY,1.0); guVector axis2 = (guVector) {0 , 1, 0 }; @@ -367,10 +367,10 @@ void Menu_DrawDiskCover(f32 xpos, f32 ypos, f32 zpos, u16 width, u16 height, u16 guVector axis = (guVector) {0 , 0, 1 }; guMtxRotAxisDeg (m3, &axis, deg_alpha); // guMtxConcat(m2,m1,m); - guMtxConcat(m3,m4,m3); // move distance then rotate z-axis - guMtxConcat(m2,m3,m2); // rotate y-axis + guMtxConcat(m3,m4,m3); // move distance then rotate z-axis + guMtxConcat(m2,m3,m2); // rotate y-axis guMtxConcat(m1,m2,m); // scale - + if(shadow) guMtxTransApply(m,m, xpos+width+0.5+s_offset_x,ypos+height+0.5+s_offset_y,zpos-s_offset_z); else @@ -432,18 +432,18 @@ void Menu_DrawTPL(f32 xpos, f32 ypos, f32 zpos, u16 width, u16 height, u16 dista { TPLFile tplfile; GXTexObj texObj; - + TPL_OpenTPLFromFile(&tplfile,filepath); TPL_GetTexture(&tplfile,0,&texObj); //Get - + GX_LoadTexObj(&texObj, GX_TEXMAP0); GX_InvalidateTexAll(); - + TPL_CloseTPLFile(&tplfile); - + GX_SetTevOp (GX_TEVSTAGE0, GX_REPLACE); GX_SetVtxDesc (GX_VA_TEX0, GX_DIRECT); - + f32 cos_beta = cos(DegToRad(deg_beta)); f32 s_offset_y = (zpos + (cos_beta * distance)) * tan(DegToRad(5)); f32 s_offset_x = (cos_beta<0?-cos_beta:cos_beta) * s_offset_y; @@ -454,7 +454,7 @@ void Menu_DrawTPL(f32 xpos, f32 ypos, f32 zpos, u16 width, u16 height, u16 dista height*=.5; guMtxIdentity (m4); guMtxTransApply(m4,m4, 0, 0, distance); - + guMtxIdentity (m1); guMtxScaleApply(m1,m1,scaleX,scaleY,1.0); guVector axis2 = (guVector) {0 , 1, 0 }; @@ -462,10 +462,10 @@ void Menu_DrawTPL(f32 xpos, f32 ypos, f32 zpos, u16 width, u16 height, u16 dista guVector axis = (guVector) {0 , 0, 1 }; guMtxRotAxisDeg (m3, &axis, deg_alpha); // guMtxConcat(m2,m1,m); - guMtxConcat(m3,m4,m3); // move distance then rotate z-axis - guMtxConcat(m2,m3,m2); // rotate y-axis + guMtxConcat(m3,m4,m3); // move distance then rotate z-axis + guMtxConcat(m2,m3,m2); // rotate y-axis guMtxConcat(m1,m2,m); // scale - + if(shadow) guMtxTransApply(m,m, xpos+width+0.5+s_offset_x,ypos+height+0.5+s_offset_y,zpos-s_offset_z); else @@ -525,18 +525,18 @@ void Menu_DrawTPLMem(f32 xpos, f32 ypos, f32 zpos, u16 width, u16 height, u16 di { TPLFile tplfile; GXTexObj texObj; - + TPL_OpenTPLFromMemory(&tplfile, memory,len); TPL_GetTexture(&tplfile,0,&texObj); //Get - + GX_LoadTexObj(&texObj, GX_TEXMAP0); GX_InvalidateTexAll(); - + TPL_CloseTPLFile(&tplfile); - + GX_SetTevOp (GX_TEVSTAGE0, GX_REPLACE); GX_SetVtxDesc (GX_VA_TEX0, GX_DIRECT); - + f32 cos_beta = cos(DegToRad(deg_beta)); f32 s_offset_y = (zpos + (cos_beta * distance)) * tan(DegToRad(5)); f32 s_offset_x = (cos_beta<0?-cos_beta:cos_beta) * s_offset_y; @@ -547,7 +547,7 @@ void Menu_DrawTPLMem(f32 xpos, f32 ypos, f32 zpos, u16 width, u16 height, u16 di height*=.5; guMtxIdentity (m4); guMtxTransApply(m4,m4, 0, 0, distance); - + guMtxIdentity (m1); guMtxScaleApply(m1,m1,scaleX,scaleY,1.0); guVector axis2 = (guVector) {0 , 1, 0 }; @@ -555,10 +555,10 @@ void Menu_DrawTPLMem(f32 xpos, f32 ypos, f32 zpos, u16 width, u16 height, u16 di guVector axis = (guVector) {0 , 0, 1 }; guMtxRotAxisDeg (m3, &axis, deg_alpha); // guMtxConcat(m2,m1,m); - guMtxConcat(m3,m4,m3); // move distance then rotate z-axis - guMtxConcat(m2,m3,m2); // rotate y-axis + guMtxConcat(m3,m4,m3); // move distance then rotate z-axis + guMtxConcat(m2,m3,m2); // rotate y-axis guMtxConcat(m1,m2,m); // scale - + if(shadow) guMtxTransApply(m,m, xpos+width+0.5+s_offset_x,ypos+height+0.5+s_offset_y,zpos-s_offset_z); else