From 30855664dd48be520c71f281cf079ec6a1223bda Mon Sep 17 00:00:00 2001 From: wiidev Date: Sun, 8 Nov 2020 21:27:42 +0000 Subject: [PATCH] Added an option to set a custom server address --- Languages/czech.lang | 13 ++++++++-- Languages/danish.lang | 13 ++++++++-- Languages/dutch.lang | 13 ++++++++-- Languages/english.lang | 11 ++++++++- Languages/finnish.lang | 13 ++++++++-- Languages/french.lang | 13 ++++++++-- Languages/german.lang | 13 ++++++++-- Languages/greek.lang | 13 ++++++++-- Languages/hungarian.lang | 13 ++++++++-- Languages/italian.lang | 13 ++++++++-- Languages/japanese.lang | 13 ++++++++-- Languages/korean.lang | 13 ++++++++-- Languages/norwegian.lang | 13 ++++++++-- Languages/polish.lang | 13 ++++++++-- Languages/portuguese_br.lang | 13 ++++++++-- Languages/portuguese_pt.lang | 13 ++++++++-- Languages/russian.lang | 13 ++++++++-- Languages/schinese.lang | 13 ++++++++-- Languages/spanish.lang | 13 ++++++++-- Languages/swedish.lang | 13 ++++++++-- Languages/tchinese.lang | 13 ++++++++-- Languages/thai.lang | 13 ++++++++-- Languages/turkish.lang | 13 ++++++++-- source/patches/gamepatches.c | 20 ++++++--------- source/patches/gamepatches.h | 4 +-- source/prompts/PromptWindows.cpp | 7 +++--- source/prompts/PromptWindows.h | 2 +- source/settings/CGameSettings.cpp | 8 ++++++ source/settings/CGameSettings.h | 2 ++ source/settings/CSettings.cpp | 9 +++++++ source/settings/CSettings.h | 1 + source/settings/SettingsEnums.h | 1 + source/settings/menus/GameLoadSM.cpp | 31 +++++++++++++++++++++++- source/settings/menus/LoaderSettings.cpp | 28 ++++++++++++++++++++- source/usbloader/GameBooter.cpp | 21 +++++++++++----- 35 files changed, 359 insertions(+), 72 deletions(-) diff --git a/Languages/czech.lang b/Languages/czech.lang index 107efefe..db897ccb 100644 --- a/Languages/czech.lang +++ b/Languages/czech.lang @@ -149,8 +149,8 @@ msgstr "" msgid "Alternate DOL" msgstr "Náhradní DOL" -msgid "AltWFC (Risky)" -msgstr "AltWFC (Riskantní)" +msgid "AltWFC" +msgstr "" msgid "An example file was created here:" msgstr "" @@ -540,12 +540,18 @@ msgstr "" msgid "Current neek files are not neek2o. Game autoboot disabled." msgstr "" +msgid "Custom Address" +msgstr "Vlastní adresa" + msgid "Custom Banners" msgstr "" msgid "Custom Paths" msgstr "Vlastní cesty" +msgid "Custom" +msgstr "Vlastní" + msgid "Customs" msgstr "" @@ -1740,6 +1746,9 @@ msgstr "Prehrát predchozí" msgid "Playing Music:" msgstr "Prehrávání hudby:" +msgid "Please enter a valid address e.g. wiimmfi.de" +msgstr "" + msgid "Please wait" msgstr "" diff --git a/Languages/danish.lang b/Languages/danish.lang index e0ace146..13d439fe 100644 --- a/Languages/danish.lang +++ b/Languages/danish.lang @@ -149,8 +149,8 @@ msgstr "" msgid "Alternate DOL" msgstr "Alternativ DOL" -msgid "AltWFC (Risky)" -msgstr "AltWFC (Risikabel)" +msgid "AltWFC" +msgstr "" msgid "An example file was created here:" msgstr "En f.eks. fil er lavet her:" @@ -540,12 +540,18 @@ msgstr "" msgid "Current neek files are not neek2o. Game autoboot disabled." msgstr "" +msgid "Custom Address" +msgstr "" + msgid "Custom Banners" msgstr "" msgid "Custom Paths" msgstr "Sti-indstillinger" +msgid "Custom" +msgstr "" + msgid "Customs" msgstr "" @@ -1740,6 +1746,9 @@ msgstr "Afspil forrige" msgid "Playing Music:" msgstr "Afspiller musik:" +msgid "Please enter a valid address e.g. wiimmfi.de" +msgstr "" + msgid "Please wait" msgstr "" diff --git a/Languages/dutch.lang b/Languages/dutch.lang index 06a914eb..219cddf6 100644 --- a/Languages/dutch.lang +++ b/Languages/dutch.lang @@ -149,8 +149,8 @@ msgstr "" msgid "Alternate DOL" msgstr "Alternatieve DOL" -msgid "AltWFC (Risky)" -msgstr "AltWFC (Riskant)" +msgid "AltWFC" +msgstr "" msgid "An example file was created here:" msgstr "Er is hier een voorbeeldbestand gemaakt:" @@ -540,12 +540,18 @@ msgstr "" msgid "Current neek files are not neek2o. Game autoboot disabled." msgstr "" +msgid "Custom Address" +msgstr "Aangepaste Adres" + msgid "Custom Banners" msgstr "Aangepaste Banners" msgid "Custom Paths" msgstr "Aangepaste Locaties" +msgid "Custom" +msgstr "Aangepaste" + msgid "Customs" msgstr "Aangepaste" @@ -1740,6 +1746,9 @@ msgstr "Speel Vorige" msgid "Playing Music:" msgstr "Speelt nu:" +msgid "Please enter a valid address e.g. wiimmfi.de" +msgstr "" + msgid "Please wait" msgstr "Even geduld" diff --git a/Languages/english.lang b/Languages/english.lang index 3b8b1be0..e0586bae 100644 --- a/Languages/english.lang +++ b/Languages/english.lang @@ -149,7 +149,7 @@ msgstr "" msgid "Alternate DOL" msgstr "" -msgid "AltWFC (Risky)" +msgid "AltWFC" msgstr "" msgid "An example file was created here:" @@ -540,12 +540,18 @@ msgstr "" msgid "Current neek files are not neek2o. Game autoboot disabled." msgstr "" +msgid "Custom Address" +msgstr "" + msgid "Custom Banners" msgstr "" msgid "Custom Paths" msgstr "" +msgid "Custom" +msgstr "" + msgid "Customs" msgstr "" @@ -1740,6 +1746,9 @@ msgstr "" msgid "Playing Music:" msgstr "" +msgid "Please enter a valid address e.g. wiimmfi.de" +msgstr "" + msgid "Please wait" msgstr "" diff --git a/Languages/finnish.lang b/Languages/finnish.lang index f7a3261e..9bacde93 100644 --- a/Languages/finnish.lang +++ b/Languages/finnish.lang @@ -149,8 +149,8 @@ msgstr "" msgid "Alternate DOL" msgstr "Vaihtoehto DOL" -msgid "AltWFC (Risky)" -msgstr "AltWFC (Riskialtis)" +msgid "AltWFC" +msgstr "" msgid "An example file was created here:" msgstr "" @@ -540,12 +540,18 @@ msgstr "" msgid "Current neek files are not neek2o. Game autoboot disabled." msgstr "" +msgid "Custom Address" +msgstr "" + msgid "Custom Banners" msgstr "" msgid "Custom Paths" msgstr "Omat polut" +msgid "Custom" +msgstr "" + msgid "Customs" msgstr "" @@ -1740,6 +1746,9 @@ msgstr "" msgid "Playing Music:" msgstr "" +msgid "Please enter a valid address e.g. wiimmfi.de" +msgstr "" + msgid "Please wait" msgstr "" diff --git a/Languages/french.lang b/Languages/french.lang index b6e00283..4f5e88a1 100644 --- a/Languages/french.lang +++ b/Languages/french.lang @@ -149,8 +149,8 @@ msgstr "Tous les fichiers wad ont été traités avec succès." msgid "Alternate DOL" msgstr "DOL alternatif" -msgid "AltWFC (Risky)" -msgstr "AltWFC (Risqué)" +msgid "AltWFC" +msgstr "" msgid "An example file was created here:" msgstr "Un fichier d'exemple a été créé ici :" @@ -540,12 +540,18 @@ msgstr "Réduire l'overscan" msgid "Current neek files are not neek2o. Game autoboot disabled." msgstr "Le fichier neek actuel n'est pas neek2o. Démarrage automatique désactivé." +msgid "Custom Address" +msgstr "" + msgid "Custom Banners" msgstr "Bannières persos" msgid "Custom Paths" msgstr "Personnalisation des dossiers" +msgid "Custom" +msgstr "" + msgid "Customs" msgstr "Persos" @@ -1740,6 +1746,9 @@ msgstr "Jouer précéd." msgid "Playing Music:" msgstr "Musique actuelle:" +msgid "Please enter a valid address e.g. wiimmfi.de" +msgstr "" + msgid "Please wait" msgstr "Veuillez patienter" diff --git a/Languages/german.lang b/Languages/german.lang index 40ebd639..1f7aa78a 100644 --- a/Languages/german.lang +++ b/Languages/german.lang @@ -149,8 +149,8 @@ msgstr "" msgid "Alternate DOL" msgstr "Alternative DOL" -msgid "AltWFC (Risky)" -msgstr "AltWFC (Riskant)" +msgid "AltWFC" +msgstr "" msgid "An example file was created here:" msgstr "Eine Beispieldatei wurde hier erstellt:" @@ -540,12 +540,18 @@ msgstr "Overscan abschneiden" msgid "Current neek files are not neek2o. Game autoboot disabled." msgstr "" +msgid "Custom Address" +msgstr "" + msgid "Custom Banners" msgstr "Community Banner" msgid "Custom Paths" msgstr "Community Pfade" +msgid "Custom" +msgstr "" + msgid "Customs" msgstr "Community" @@ -1740,6 +1746,9 @@ msgstr "Vorheriger Titel" msgid "Playing Music:" msgstr "Aktuelle Musik:" +msgid "Please enter a valid address e.g. wiimmfi.de" +msgstr "" + msgid "Please wait" msgstr "Bitte warten" diff --git a/Languages/greek.lang b/Languages/greek.lang index 8bf458ad..33334779 100644 --- a/Languages/greek.lang +++ b/Languages/greek.lang @@ -149,8 +149,8 @@ msgstr "Όλα τα αρχεία wad υποβλήθηκαν σε επεξεργ msgid "Alternate DOL" msgstr "Εναλλακτικό DOL" -msgid "AltWFC (Risky)" -msgstr "AltWFC (Επικίνδυνος)" +msgid "AltWFC" +msgstr "" msgid "An example file was created here:" msgstr "Ένα αρχείο-παράδειγμα δημιουργήθηκε εδώ" @@ -540,12 +540,18 @@ msgstr "" msgid "Current neek files are not neek2o. Game autoboot disabled." msgstr "" +msgid "Custom Address" +msgstr "" + msgid "Custom Banners" msgstr "Τροποποιημένες ταμπέλες-εικονίδια" msgid "Custom Paths" msgstr "Τροποποιημένες διευθύνσεις/μονοπάτια αρχείων" +msgid "Custom" +msgstr "" + msgid "Customs" msgstr "Τροποποιημένα" @@ -1740,6 +1746,9 @@ msgstr "Αναπαραγωγή προηγούμενου" msgid "Playing Music:" msgstr "Αναπαραγωγή μουσικής:" +msgid "Please enter a valid address e.g. wiimmfi.de" +msgstr "" + msgid "Please wait" msgstr "Παρακαλώ περιμένετε" diff --git a/Languages/hungarian.lang b/Languages/hungarian.lang index c8baede7..00e07afc 100644 --- a/Languages/hungarian.lang +++ b/Languages/hungarian.lang @@ -149,8 +149,8 @@ msgstr "" msgid "Alternate DOL" msgstr "Alternatív DOL" -msgid "AltWFC (Risky)" -msgstr "AltWFC (Kockázatos)" +msgid "AltWFC" +msgstr "" msgid "An example file was created here:" msgstr "" @@ -540,12 +540,18 @@ msgstr "" msgid "Current neek files are not neek2o. Game autoboot disabled." msgstr "" +msgid "Custom Address" +msgstr "" + msgid "Custom Banners" msgstr "" msgid "Custom Paths" msgstr "Egyéni útvonalak" +msgid "Custom" +msgstr "" + msgid "Customs" msgstr "" @@ -1740,6 +1746,9 @@ msgstr "" msgid "Playing Music:" msgstr "" +msgid "Please enter a valid address e.g. wiimmfi.de" +msgstr "" + msgid "Please wait" msgstr "" diff --git a/Languages/italian.lang b/Languages/italian.lang index 963c038b..bdb25610 100644 --- a/Languages/italian.lang +++ b/Languages/italian.lang @@ -149,8 +149,8 @@ msgstr "Tutti i files wad processati correttamente" msgid "Alternate DOL" msgstr "DOL alternativo" -msgid "AltWFC (Risky)" -msgstr "AltWFC (Rischioso)" +msgid "AltWFC" +msgstr "" msgid "An example file was created here:" msgstr "Un file di esempio è stato creato qui:" @@ -540,12 +540,18 @@ msgstr "" msgid "Current neek files are not neek2o. Game autoboot disabled." msgstr "Questi files neek non sono neek2o. Autoboot dei giochi disabilitato" +msgid "Custom Address" +msgstr "Indirizzo personalizzati" + msgid "Custom Banners" msgstr "Banner personalizzati" msgid "Custom Paths" msgstr "Percorsi personalizzati" +msgid "Custom" +msgstr "Personalizzati" + msgid "Customs" msgstr "Personalizzati" @@ -1740,6 +1746,9 @@ msgstr "Riproduci precedente" msgid "Playing Music:" msgstr "Riproducendo:" +msgid "Please enter a valid address e.g. wiimmfi.de" +msgstr "" + msgid "Please wait" msgstr "Attendere prego" diff --git a/Languages/japanese.lang b/Languages/japanese.lang index e9305e67..e0b53332 100644 --- a/Languages/japanese.lang +++ b/Languages/japanese.lang @@ -149,8 +149,8 @@ msgstr "" msgid "Alternate DOL" msgstr "代替DOL起動" -msgid "AltWFC (Risky)" -msgstr "AltWFC (リスキーな)" +msgid "AltWFC" +msgstr "" msgid "An example file was created here:" msgstr "テンプレファイルが作成されました:" @@ -540,12 +540,18 @@ msgstr "" msgid "Current neek files are not neek2o. Game autoboot disabled." msgstr "" +msgid "Custom Address" +msgstr "カスタム アドレス" + msgid "Custom Banners" msgstr "カスタムバナー" msgid "Custom Paths" msgstr "パスを変更" +msgid "Custom" +msgstr "カスタム" + msgid "Customs" msgstr "カスタム" @@ -1740,6 +1746,9 @@ msgstr "前へ" msgid "Playing Music:" msgstr "再生中" +msgid "Please enter a valid address e.g. wiimmfi.de" +msgstr "" + msgid "Please wait" msgstr "お待ちください" diff --git a/Languages/korean.lang b/Languages/korean.lang index 907a88af..f31d92b8 100644 --- a/Languages/korean.lang +++ b/Languages/korean.lang @@ -149,8 +149,8 @@ msgstr "모든 wad 파일이 성공적으로 처리되었습니다" msgid "Alternate DOL" msgstr "대체 DOL" -msgid "AltWFC (Risky)" -msgstr "AltWFC (위험한)" +msgid "AltWFC" +msgstr "" msgid "An example file was created here:" msgstr "여기에 예제 파일이 생성되었습니다:" @@ -540,12 +540,18 @@ msgstr "자르기 오버스캔" msgid "Current neek files are not neek2o. Game autoboot disabled." msgstr "현재의 neek 파일은 neek2o가 아닙니다. 게임 자동 부팅이 비활성화 되었습니다." +msgid "Custom Address" +msgstr "커스텀 주소" + msgid "Custom Banners" msgstr "커스텀 배너" msgid "Custom Paths" msgstr "커스텀 경로" +msgid "Custom" +msgstr "커스텀" + msgid "Customs" msgstr "커스텀" @@ -1740,6 +1746,9 @@ msgstr "이전 플레이" msgid "Playing Music:" msgstr "재생 음악:" +msgid "Please enter a valid address e.g. wiimmfi.de" +msgstr "" + msgid "Please wait" msgstr "기다려주십시오." diff --git a/Languages/norwegian.lang b/Languages/norwegian.lang index b01a40b0..e2211d97 100644 --- a/Languages/norwegian.lang +++ b/Languages/norwegian.lang @@ -149,8 +149,8 @@ msgstr "" msgid "Alternate DOL" msgstr "Alternativ DOL" -msgid "AltWFC (Risky)" -msgstr "AltWFC (Risikabelt)" +msgid "AltWFC" +msgstr "" msgid "An example file was created here:" msgstr "En eksempelfil ble opprettet her:" @@ -540,12 +540,18 @@ msgstr "" msgid "Current neek files are not neek2o. Game autoboot disabled." msgstr "" +msgid "Custom Address" +msgstr "" + msgid "Custom Banners" msgstr "" msgid "Custom Paths" msgstr "Egendefinerte stier" +msgid "Custom" +msgstr "" + msgid "Customs" msgstr "" @@ -1740,6 +1746,9 @@ msgstr "Spill forrige" msgid "Playing Music:" msgstr "Spiller musikk:" +msgid "Please enter a valid address e.g. wiimmfi.de" +msgstr "" + msgid "Please wait" msgstr "" diff --git a/Languages/polish.lang b/Languages/polish.lang index 22c98b03..6970e4f3 100644 --- a/Languages/polish.lang +++ b/Languages/polish.lang @@ -149,8 +149,8 @@ msgstr "" msgid "Alternate DOL" msgstr "Alternatywny DOL" -msgid "AltWFC (Risky)" -msgstr "AltWFC (Ryzykowny)" +msgid "AltWFC" +msgstr "" msgid "An example file was created here:" msgstr "" @@ -540,12 +540,18 @@ msgstr "" msgid "Current neek files are not neek2o. Game autoboot disabled." msgstr "" +msgid "Custom Address" +msgstr "" + msgid "Custom Banners" msgstr "" msgid "Custom Paths" msgstr "Sciezki" +msgid "Custom" +msgstr "" + msgid "Customs" msgstr "" @@ -1740,6 +1746,9 @@ msgstr "" msgid "Playing Music:" msgstr "" +msgid "Please enter a valid address e.g. wiimmfi.de" +msgstr "" + msgid "Please wait" msgstr "" diff --git a/Languages/portuguese_br.lang b/Languages/portuguese_br.lang index dcafe728..5ad0b5c4 100644 --- a/Languages/portuguese_br.lang +++ b/Languages/portuguese_br.lang @@ -149,8 +149,8 @@ msgstr "Todos os arquivos foram processados" msgid "Alternate DOL" msgstr "DOL alternativo" -msgid "AltWFC (Risky)" -msgstr "AltWFC (Arriscado)" +msgid "AltWFC" +msgstr "" msgid "An example file was created here:" msgstr "Arquivo de exemplo criado aqui:" @@ -540,12 +540,18 @@ msgstr "Cortar Overscan" msgid "Current neek files are not neek2o. Game autoboot disabled." msgstr "Os arquivos do neek não são do neek2o. Auto Boot desabilitado" +msgid "Custom Address" +msgstr "" + msgid "Custom Banners" msgstr "Banners Modificados" msgid "Custom Paths" msgstr "Caminhos" +msgid "Custom" +msgstr "" + msgid "Customs" msgstr "" @@ -1740,6 +1746,9 @@ msgstr "Anterior" msgid "Playing Music:" msgstr "Reproduzindo Música:" +msgid "Please enter a valid address e.g. wiimmfi.de" +msgstr "" + msgid "Please wait" msgstr "Aguarde" diff --git a/Languages/portuguese_pt.lang b/Languages/portuguese_pt.lang index 0da36bb1..a606c4a7 100644 --- a/Languages/portuguese_pt.lang +++ b/Languages/portuguese_pt.lang @@ -149,8 +149,8 @@ msgstr "" msgid "Alternate DOL" msgstr "DOL alternativo" -msgid "AltWFC (Risky)" -msgstr "AltWFC (Arriscado)" +msgid "AltWFC" +msgstr "" msgid "An example file was created here:" msgstr "Ficheiro de exemplo criado aqui:" @@ -540,12 +540,18 @@ msgstr "" msgid "Current neek files are not neek2o. Game autoboot disabled." msgstr "" +msgid "Custom Address" +msgstr "" + msgid "Custom Banners" msgstr "" msgid "Custom Paths" msgstr "Caminhos Personalizados" +msgid "Custom" +msgstr "" + msgid "Customs" msgstr "" @@ -1740,6 +1746,9 @@ msgstr "Anterior" msgid "Playing Music:" msgstr "A reproduzir Música:" +msgid "Please enter a valid address e.g. wiimmfi.de" +msgstr "" + msgid "Please wait" msgstr "" diff --git a/Languages/russian.lang b/Languages/russian.lang index 9a541076..fa0e0c2a 100644 --- a/Languages/russian.lang +++ b/Languages/russian.lang @@ -149,8 +149,8 @@ msgstr "" msgid "Alternate DOL" msgstr "Альтернативный DOL" -msgid "AltWFC (Risky)" -msgstr "AltWFC (Pискованный)" +msgid "AltWFC" +msgstr "" msgid "An example file was created here:" msgstr "" @@ -540,12 +540,18 @@ msgstr "" msgid "Current neek files are not neek2o. Game autoboot disabled." msgstr "" +msgid "Custom Address" +msgstr "" + msgid "Custom Banners" msgstr "" msgid "Custom Paths" msgstr "Изменение путей" +msgid "Custom" +msgstr "" + msgid "Customs" msgstr "" @@ -1740,6 +1746,9 @@ msgstr "" msgid "Playing Music:" msgstr "" +msgid "Please enter a valid address e.g. wiimmfi.de" +msgstr "" + msgid "Please wait" msgstr "" diff --git a/Languages/schinese.lang b/Languages/schinese.lang index e0ca04f1..985c971b 100644 --- a/Languages/schinese.lang +++ b/Languages/schinese.lang @@ -149,8 +149,8 @@ msgstr "" msgid "Alternate DOL" msgstr "可选择 DOL 文件" -msgid "AltWFC (Risky)" -msgstr "AltWFC (有风险)" +msgid "AltWFC" +msgstr "" msgid "An example file was created here:" msgstr "一个实例文件已创建于:" @@ -540,12 +540,18 @@ msgstr "" msgid "Current neek files are not neek2o. Game autoboot disabled." msgstr "" +msgid "Custom Address" +msgstr "自定义地址" + msgid "Custom Banners" msgstr "自定义频道动画" msgid "Custom Paths" msgstr "自定义路径" +msgid "Custom" +msgstr "自定义" + msgid "Customs" msgstr "自定义" @@ -1740,6 +1746,9 @@ msgstr "播放上一曲" msgid "Playing Music:" msgstr "正在播放音乐:" +msgid "Please enter a valid address e.g. wiimmfi.de" +msgstr "" + msgid "Please wait" msgstr "请稍候" diff --git a/Languages/spanish.lang b/Languages/spanish.lang index 98dc4118..416db24f 100644 --- a/Languages/spanish.lang +++ b/Languages/spanish.lang @@ -149,8 +149,8 @@ msgstr "" msgid "Alternate DOL" msgstr "DOL Alternativo" -msgid "AltWFC (Risky)" -msgstr "AltWFC (Arriesgado)" +msgid "AltWFC" +msgstr "" msgid "An example file was created here:" msgstr "Un archivo de ejemplo fue creado aquí:" @@ -540,12 +540,18 @@ msgstr "Recortar overscan" msgid "Current neek files are not neek2o. Game autoboot disabled." msgstr "" +msgid "Custom Address" +msgstr "" + msgid "Custom Banners" msgstr "Banners personalizados" msgid "Custom Paths" msgstr "Rutas personalizadas" +msgid "Custom" +msgstr "" + msgid "Customs" msgstr "Personalizadas" @@ -1740,6 +1746,9 @@ msgstr "Oír Anterior" msgid "Playing Music:" msgstr "Reproducción Musical:" +msgid "Please enter a valid address e.g. wiimmfi.de" +msgstr "" + msgid "Please wait" msgstr "Por favor, espera" diff --git a/Languages/swedish.lang b/Languages/swedish.lang index ddb716e8..9521d232 100644 --- a/Languages/swedish.lang +++ b/Languages/swedish.lang @@ -149,8 +149,8 @@ msgstr "" msgid "Alternate DOL" msgstr "Alternativ DOL" -msgid "AltWFC (Risky)" -msgstr "AltWFC (Riskabel)" +msgid "AltWFC" +msgstr "" msgid "An example file was created here:" msgstr "" @@ -540,12 +540,18 @@ msgstr "" msgid "Current neek files are not neek2o. Game autoboot disabled." msgstr "" +msgid "Custom Address" +msgstr "Anpassad adress" + msgid "Custom Banners" msgstr "" msgid "Custom Paths" msgstr "Anpassade sökvägar" +msgid "Custom" +msgstr "Anpassade" + msgid "Customs" msgstr "" @@ -1740,6 +1746,9 @@ msgstr "Spela förgående" msgid "Playing Music:" msgstr "Spela musik:" +msgid "Please enter a valid address e.g. wiimmfi.de" +msgstr "" + msgid "Please wait" msgstr "" diff --git a/Languages/tchinese.lang b/Languages/tchinese.lang index 055585da..f238bcbc 100644 --- a/Languages/tchinese.lang +++ b/Languages/tchinese.lang @@ -149,8 +149,8 @@ msgstr "" msgid "Alternate DOL" msgstr "可選擇Alt DOL檔" -msgid "AltWFC (Risky)" -msgstr "AltWFC (有風險)" +msgid "AltWFC" +msgstr "" msgid "An example file was created here:" msgstr "在這裡建立範本檔:" @@ -540,12 +540,18 @@ msgstr "" msgid "Current neek files are not neek2o. Game autoboot disabled." msgstr "" +msgid "Custom Address" +msgstr "自訂地址" + msgid "Custom Banners" msgstr "自製頻道動畫" msgid "Custom Paths" msgstr "自訂路徑" +msgid "Custom" +msgstr "自訂" + msgid "Customs" msgstr "自訂" @@ -1740,6 +1746,9 @@ msgstr "執行上一個" msgid "Playing Music:" msgstr "播放音樂:" +msgid "Please enter a valid address e.g. wiimmfi.de" +msgstr "" + msgid "Please wait" msgstr "請稍候" diff --git a/Languages/thai.lang b/Languages/thai.lang index 7dda26c2..75d6380a 100644 --- a/Languages/thai.lang +++ b/Languages/thai.lang @@ -149,8 +149,8 @@ msgstr "" msgid "Alternate DOL" msgstr "เปลี่ยน DOL " -msgid "AltWFC (Risky)" -msgstr "AltWFC (เสี่ยง)" +msgid "AltWFC" +msgstr "" msgid "An example file was created here:" msgstr "" @@ -540,12 +540,18 @@ msgstr "" msgid "Current neek files are not neek2o. Game autoboot disabled." msgstr "" +msgid "Custom Address" +msgstr "" + msgid "Custom Banners" msgstr "" msgid "Custom Paths" msgstr "กำหนด ที่เก็บ" +msgid "Custom" +msgstr "" + msgid "Customs" msgstr "" @@ -1740,6 +1746,9 @@ msgstr "" msgid "Playing Music:" msgstr "" +msgid "Please enter a valid address e.g. wiimmfi.de" +msgstr "" + msgid "Please wait" msgstr "" diff --git a/Languages/turkish.lang b/Languages/turkish.lang index abbd16f6..b4273ba6 100644 --- a/Languages/turkish.lang +++ b/Languages/turkish.lang @@ -149,8 +149,8 @@ msgstr "" msgid "Alternate DOL" msgstr "Alternatif DOL" -msgid "AltWFC (Risky)" -msgstr "AltWFC (Riskli)" +msgid "AltWFC" +msgstr "" msgid "An example file was created here:" msgstr "" @@ -540,12 +540,18 @@ msgstr "" msgid "Current neek files are not neek2o. Game autoboot disabled." msgstr "" +msgid "Custom Address" +msgstr "" + msgid "Custom Banners" msgstr "" msgid "Custom Paths" msgstr "Kişisel Yollar" +msgid "Custom" +msgstr "" + msgid "Customs" msgstr "" @@ -1740,6 +1746,9 @@ msgstr "" msgid "Playing Music:" msgstr "" +msgid "Please enter a valid address e.g. wiimmfi.de" +msgstr "" + msgid "Please wait" msgstr "" diff --git a/source/patches/gamepatches.c b/source/patches/gamepatches.c index 8dcf053e..6863f100 100644 --- a/source/patches/gamepatches.c +++ b/source/patches/gamepatches.c @@ -51,7 +51,7 @@ void ClearDOLList() } void gamepatches(u8 videoSelected, u8 videoPatchDol, u8 aspectForce, u8 languageChoice, u8 patchcountrystring, - u8 vipatch, u8 sneekVideoPatch, u8 hooktype, u64 returnTo, u8 privateServer) + u8 vipatch, u8 sneekVideoPatch, u8 hooktype, u64 returnTo, u8 privateServer, const char *serverAddr) { int i; @@ -92,8 +92,8 @@ void gamepatches(u8 videoSelected, u8 videoPatchDol, u8 aspectForce, u8 language PatchAspectRatio(dst, len, aspectForce); if(privateServer) - PrivateServerPatcher(dst, len, privateServer); - + PrivateServerPatcher(dst, len, privateServer, serverAddr); + DCFlushRange(dst, len); ICInvalidateRange(dst, len); } @@ -218,7 +218,7 @@ void PatchFix480p() } /** Patch URLs for private Servers - Thanks to ToadKing/wiilauncher-nossl **/ -void PrivateServerPatcher(void *addr, u32 len, u8 privateServer) +void PrivateServerPatcher(void *addr, u32 len, u8 privateServer, const char *serverAddr) { // Patch protocol https -> http @@ -234,19 +234,13 @@ void PrivateServerPatcher(void *addr, u32 len, u8 privateServer) cur += len; } } while (++cur < end); - // Patch nintendowifi.net -> private server domain if (privateServer == PRIVSERV_WIIMMFI) - { domainpatcher(addr, len, "wiimmfi.de"); - } else if (privateServer == PRIVSERV_ALTWFC) - { domainpatcher(addr, len, "zwei.moe"); - } - //else if(privateServer == PRIVSERV_CUSTOM) - //domainpatcher(dst, len, Settings.CustomPrivateServer); - + else if (privateServer == PRIVSERV_CUSTOM && strlen(serverAddr) > 3) + domainpatcher(addr, len, serverAddr); } u32 do_new_wiimmfi() @@ -314,7 +308,7 @@ u32 do_new_wiimmfi() strncpy(patched, (char *)&patcher, 42); // Do the plain old patching with the string search - PrivateServerPatcher((void*)0x80004000, 0x385200, PRIVSERV_WIIMMFI); + PrivateServerPatcher((void*)0x80004000, 0x385200, PRIVSERV_WIIMMFI, NULL); // Replace some URLs for Wiimmfi's new update system char newURL1[] = "http://ca.nas.wiimmfi.de/ca"; diff --git a/source/patches/gamepatches.h b/source/patches/gamepatches.h index db09f2d7..a6f15f79 100644 --- a/source/patches/gamepatches.h +++ b/source/patches/gamepatches.h @@ -10,9 +10,9 @@ extern "C" { void RegisterDOL(u8 *dst, int len); void ClearDOLList(); void gamepatches(u8 videoSelected, u8 videoPatchDol, u8 aspectForce, u8 languageChoice, u8 patchcountrystring, - u8 vipatch, u8 sneekVideoPatch, u8 hooktype, u64 returnTo, u8 privateServer); + u8 vipatch, u8 sneekVideoPatch, u8 hooktype, u64 returnTo, u8 privateServer, const char *serverAddr); bool Anti_002_fix(u8 * Address, int Size); -void PrivateServerPatcher(void *addr, u32 len, u8 privateServer); +void PrivateServerPatcher(void *addr, u32 len, u8 privateServer, const char *serverAddr); void PatchFix480p(); u32 do_new_wiimmfi(); void domainpatcher(void *addr, u32 len, const char* domain); diff --git a/source/prompts/PromptWindows.cpp b/source/prompts/PromptWindows.cpp index c3c87643..41d479b7 100644 --- a/source/prompts/PromptWindows.cpp +++ b/source/prompts/PromptWindows.cpp @@ -170,13 +170,14 @@ int OnScreenNumpad(char * var, u32 maxlen) * Opens an on-screen keyboard window, with the data entered being stored * into the specified variable. ***************************************************************************/ -int OnScreenKeyboard(char * var, u32 maxlen, int min, bool hide) +int OnScreenKeyboard(char * var, u32 maxlen, int min, bool hide, bool restrict) { int save = -1; + int keyset = (restrict) ? 0 : Settings.keyset; - gprintf("\nOnScreenKeyboard(%s, %i, %i) \n\tkeyset = %i", var, maxlen, min, Settings.keyset); + gprintf("\nOnScreenKeyboard(%s, %i, %i) \n\tkeyset = %i", var, maxlen, min, keyset); - GuiKeyboard keyboard(var, maxlen, min, Settings.keyset); + GuiKeyboard keyboard(var, maxlen, min, keyset); keyboard.SetVisibleText(!hide); GuiImageData btnOutline(Resources::GetFile("button_dialogue_box.png"), Resources::GetFileSize("button_dialogue_box.png")); diff --git a/source/prompts/PromptWindows.h b/source/prompts/PromptWindows.h index 3ed2707d..3565c8cc 100644 --- a/source/prompts/PromptWindows.h +++ b/source/prompts/PromptWindows.h @@ -14,7 +14,7 @@ int WindowPrompt(const char *title, const char *msg = NULL, const char * btn1Lab NULL, const char * btn3Label = NULL, const char * btn4Label = NULL, int wait = -1); void WindowCredits(); -int OnScreenKeyboard(char * var, u32 maxlen, int min, bool hide = false); +int OnScreenKeyboard(char * var, u32 maxlen, int min, bool hide = false, bool restrict = false); int OnScreenNumpad(char * var, u32 maxlen); int WindowExitPrompt(); int DiscWait(const char *title, const char *msg, const char *btn1Label, const char *btn2Label, int IsDeviceWait); diff --git a/source/settings/CGameSettings.cpp b/source/settings/CGameSettings.cpp index 6d94b89a..76ec023c 100644 --- a/source/settings/CGameSettings.cpp +++ b/source/settings/CGameSettings.cpp @@ -246,6 +246,7 @@ bool CGameSettings::Save() fprintf(f, "DEVOCropOverscan:%d; ", GameList[i].DEVOCropOverscan); fprintf(f, "DEVODiscDelay:%d; ", GameList[i].DEVODiscDelay); fprintf(f, "PrivateServer:%d; ", GameList[i].PrivateServer); + fprintf(f, "CustomAddress:%s; ", GameList[i].CustomAddress.c_str()); fprintf(f, "Locked:%d;\n", GameList[i].Locked); } fprintf(f, "# END\n"); @@ -561,6 +562,12 @@ bool CGameSettings::SetSetting(GameCFG & game, const char *name, const char *val game.PrivateServer = atoi(value); return true; } + else if(strcmp(name, "CustomAddress") == 0) + { + if(strlen(value) > 3) + game.CustomAddress = value; + return true; + } return false; } @@ -722,5 +729,6 @@ void CGameSettings::SetDefault(GameCFG &game) game.DEVOCropOverscan = INHERIT; game.DEVODiscDelay = INHERIT; game.PrivateServer = INHERIT; + game.CustomAddress.clear(); game.Locked = OFF; } diff --git a/source/settings/CGameSettings.h b/source/settings/CGameSettings.h index 772cd944..ad5dd8d1 100644 --- a/source/settings/CGameSettings.h +++ b/source/settings/CGameSettings.h @@ -70,6 +70,7 @@ typedef struct _GameCFG short DEVOCropOverscan; short DEVODiscDelay; short PrivateServer; + std::string CustomAddress; short Locked; void operator=(const struct _GameCFG &game) @@ -135,6 +136,7 @@ typedef struct _GameCFG this->DEVOCropOverscan = game.DEVOCropOverscan; this->DEVODiscDelay = game.DEVODiscDelay; this->PrivateServer = game.PrivateServer; + this->CustomAddress = game.CustomAddress; this->Locked = game.Locked; } } GameCFG; diff --git a/source/settings/CSettings.cpp b/source/settings/CSettings.cpp index eabff628..54f5fa40 100644 --- a/source/settings/CSettings.cpp +++ b/source/settings/CSettings.cpp @@ -78,6 +78,7 @@ void CSettings::SetDefault() strlcpy(NandEmuChanPath, NandEmuPath, sizeof(NandEmuChanPath)); strlcpy(GameCubePath, "usb1:/games/", sizeof(GameCubePath)); strlcpy(GameCubeSDPath, "sd:/games/", sizeof(GameCubeSDPath)); + strlcpy(CustomAddress, "wiimmfi.de", sizeof(CustomAddress)); strlcpy(URL_Banners, "https://banner.rc24.xyz/", sizeof(URL_Banners)); strlcpy(URL_Covers2D, "https://art.gametdb.com/wii/cover/", sizeof(URL_Covers2D)); strlcpy(URL_Covers3D, "https://art.gametdb.com/wii/cover3D/", sizeof(URL_Covers3D)); @@ -489,6 +490,7 @@ bool CSettings::Save() fprintf(file, "GCInstallCompressed = %d\n", GCInstallCompressed); fprintf(file, "GCInstallAligned = %d\n", GCInstallAligned); fprintf(file, "PrivateServer = %d\n", PrivateServer); + fprintf(file, "CustomAddress = %s\n", CustomAddress); fprintf(file, "URL_Banners = %s\n", URL_Banners); fprintf(file, "URL_Covers2D = %s\n", URL_Covers2D); fprintf(file, "URL_Covers3D = %s\n", URL_Covers3D); @@ -1324,9 +1326,16 @@ bool CSettings::SetSetting(char *name, char *value) strlcpy(URL_GameTDB, value, sizeof(URL_GameTDB)); return true; } + else if (strcmp(name, "CustomAddress") == 0) + { + if(strlen(value) > 3) + strlcpy(CustomAddress, value, sizeof(CustomAddress)); + return true; + } else if(strcmp(name, "PrivateServer") == 0) { PrivateServer = atoi(value); + return true; } else if (strcmp(name, "EnabledCategories") == 0) { diff --git a/source/settings/CSettings.h b/source/settings/CSettings.h index e0bb3a90..5feb2518 100644 --- a/source/settings/CSettings.h +++ b/source/settings/CSettings.h @@ -89,6 +89,7 @@ class CSettings char GameCubeSDPath[100]; char DEVOLoaderPath[100]; char NINLoaderPath[100]; + char CustomAddress[300]; char URL_Banners[300]; char URL_Covers2D[300]; char URL_Covers3D[300]; diff --git a/source/settings/SettingsEnums.h b/source/settings/SettingsEnums.h index 856a1e27..d2cfec6b 100644 --- a/source/settings/SettingsEnums.h +++ b/source/settings/SettingsEnums.h @@ -371,6 +371,7 @@ enum PRIVSERV_NOSSL, PRIVSERV_WIIMMFI, PRIVSERV_ALTWFC, + PRIVSERV_CUSTOM, PRIVSERV_MAX_CHOICE }; diff --git a/source/settings/menus/GameLoadSM.cpp b/source/settings/menus/GameLoadSM.cpp index 59b34e46..69e26f4f 100644 --- a/source/settings/menus/GameLoadSM.cpp +++ b/source/settings/menus/GameLoadSM.cpp @@ -127,7 +127,14 @@ static const char * PrivServText[] = trNOOP( "OFF" ), trNOOP( "NoSSL only" ), trNOOP( "Wiimmfi" ), - trNOOP( "AltWFC (Risky)" ), + trNOOP( "AltWFC" ), + trNOOP( "Custom" ), +}; + +static const char blocked[22] = +{ + 0x20, 0x21, 0x22, 0x23, 0x24, 0x25, 0x26, 0x28, 0x27, 0x29, 0x2A, + 0x2C, 0x2F, 0x3A, 0x3B, 0x3C, 0x3E, 0x3F, 0x40, 0x5E, 0x5F, 0x00 }; GameLoadSM::GameLoadSM(struct discHdr *hdr) @@ -193,6 +200,7 @@ void GameLoadSM::SetOptionNames() Options->SetName(Idx++, "%s", tr( "Game Language" )); Options->SetName(Idx++, "%s", tr( "Ocarina" )); Options->SetName(Idx++, "%s", tr( "Private Server" )); + Options->SetName(Idx++, "%s", tr( "Custom Address" )); Options->SetName(Idx++, "%s", tr( "Parental Control" )); Options->SetName(Idx++, "%s", tr( "Hooktype" )); Options->SetName(Idx++, "%s", tr( "Wiird Debugger" )); @@ -287,6 +295,12 @@ void GameLoadSM::SetOptionValues() else Options->SetValue(Idx++, "%s", tr(PrivServText[GameConfig.PrivateServer])); + //! Settings: Custom Address + if(GameConfig.CustomAddress.size() == 0) + Options->SetValue(Idx++, tr("Use global")); + else + Options->SetValue(Idx++, "%s", GameConfig.CustomAddress.c_str()); + //! Settings: Parental Control Options->SetValue(Idx++, "%s", tr(ParentalText[GameConfig.parentalcontrol])); @@ -467,6 +481,21 @@ int GameLoadSM::GetMenuInternal() if (++GameConfig.PrivateServer >= PRIVSERV_MAX_CHOICE) GameConfig.PrivateServer = INHERIT; } + //! Settings: Custom Address + else if (ret == ++Idx) + { + char entered[300]; + snprintf(entered, sizeof(entered), GameConfig.CustomAddress.c_str()); + if (OnScreenKeyboard(entered, sizeof(entered), 0, false, true)) + { + // Only allow letters, numbers, periods and hyphens + if ((strlen(entered) > 0 && strlen(entered) <= 3) || strpbrk(entered, blocked)) + WindowPrompt(tr("Error"), tr("Please enter a valid address e.g. wiimmfi.de"), tr("OK")); + else + GameConfig.CustomAddress = entered; + } + } + //! Settings: Parental Control else if (ret == ++Idx) { diff --git a/source/settings/menus/LoaderSettings.cpp b/source/settings/menus/LoaderSettings.cpp index 48a05a55..ec7a2686 100644 --- a/source/settings/menus/LoaderSettings.cpp +++ b/source/settings/menus/LoaderSettings.cpp @@ -183,7 +183,14 @@ static const char * PrivServText[] = trNOOP( "OFF" ), trNOOP( "NoSSL only" ), trNOOP( "Wiimmfi" ), - trNOOP( "AltWFC (Risky)" ), + trNOOP( "AltWFC" ), + trNOOP( "Custom" ), +}; + +static const char blocked[22] = +{ + 0x20, 0x21, 0x22, 0x23, 0x24, 0x25, 0x26, 0x28, 0x27, 0x29, 0x2A, + 0x2C, 0x2F, 0x3A, 0x3B, 0x3C, 0x3E, 0x3F, 0x40, 0x5E, 0x5F, 0x00 }; LoaderSettings::LoaderSettings() @@ -238,6 +245,7 @@ void LoaderSettings::SetOptionNames() Options->SetName(Idx++, "%s", tr( "Patch Country Strings" )); Options->SetName(Idx++, "%s", tr( "Ocarina" )); Options->SetName(Idx++, "%s", tr( "Private Server" )); + Options->SetName(Idx++, "%s", tr( "Custom Address" )); Options->SetName(Idx++, "%s", tr( "Loader's IOS" )); Options->SetName(Idx++, "%s", tr( "Game's IOS" )); Options->SetName(Idx++, "%s", tr( "Quick Boot" )); @@ -337,6 +345,9 @@ void LoaderSettings::SetOptionValues() //! Settings: Private Server Options->SetValue(Idx++, "%s", tr( PrivServText[Settings.PrivateServer] )); + //! Settings: Custom Address + Options->SetValue(Idx++, "%s", Settings.CustomAddress); + //! Settings: Loader's IOS if (Settings.godmode) Options->SetValue(Idx++, "IOS %i", Settings.LoaderIOS); @@ -605,6 +616,21 @@ int LoaderSettings::GetMenuInternal() if (++Settings.PrivateServer >= PRIVSERV_MAX_CHOICE) Settings.PrivateServer = 0; } + //! Settings: Custom Address + else if (ret == ++Idx) + { + char entered[300]; + snprintf(entered, sizeof(entered), "%s", Settings.CustomAddress); + if (OnScreenKeyboard(entered, sizeof(entered), 0, false, true)) + { + // Only allow letters, numbers, periods and hyphens + if (strlen(entered) <= 3 || strpbrk(entered, blocked)) + WindowPrompt(tr("Error"), tr("Please enter a valid address e.g. wiimmfi.de"), tr("OK")); + else + snprintf(Settings.CustomAddress, sizeof(Settings.CustomAddress), entered); + } + } + //! Settings: Loader's IOS else if (ret == ++Idx) { diff --git a/source/usbloader/GameBooter.cpp b/source/usbloader/GameBooter.cpp index 10066a1c..f77d836f 100644 --- a/source/usbloader/GameBooter.cpp +++ b/source/usbloader/GameBooter.cpp @@ -261,6 +261,7 @@ int GameBooter::BootGame(struct discHdr *gameHdr) u8 languageChoice = game_cfg->language == INHERIT ? Settings.language : game_cfg->language; u8 ocarinaChoice = game_cfg->ocarina == INHERIT ? Settings.ocarina : game_cfg->ocarina; u8 PrivServChoice = game_cfg->PrivateServer == INHERIT ? Settings.PrivateServer : game_cfg->PrivateServer; + const char *customAddress = game_cfg->CustomAddress.size() == 0 ? Settings.CustomAddress : game_cfg->CustomAddress.c_str(); u8 viChoice = game_cfg->vipatch == INHERIT ? Settings.videopatch : game_cfg->vipatch; u8 sneekChoice = game_cfg->sneekVideoPatch == INHERIT ? Settings.sneekVideoPatch : game_cfg->sneekVideoPatch; u8 iosChoice = game_cfg->ios == INHERIT ? Settings.cios : game_cfg->ios; @@ -322,6 +323,10 @@ int GameBooter::BootGame(struct discHdr *gameHdr) Playlog_Update((char *) gameHeader.id, BNRInstance::Instance()->GetIMETTitle(CONF_GetLanguage())); } + gprintf("Game title: %s\n", gameHeader.title); + if (PrivServChoice == PRIVSERV_CUSTOM) + gprintf("Custom address: %s\n", customAddress); + //! Load wip codes load_wip_code(gameHeader.id); @@ -430,13 +435,15 @@ int GameBooter::BootGame(struct discHdr *gameHdr) //! Also, the new Wiimmfi server patch should be loaded into memory after //! the code handler and the cheat codes. - if (PrivServChoice != PRIVSERV_WIIMMFI || memcmp(((void *)(0x80000000)), (char*)"RMC", 3) != 0) { + if (PrivServChoice != PRIVSERV_WIIMMFI || memcmp(gameHeader.id, "RMC", 3) != 0) + { //! Either the server is not Wiimmfi, or, if it is Wiimmfi, the game isn't MKWii - patch the old way - gamepatches(videoChoice, videoPatchDolChoice, aspectChoice, languageChoice, countrystrings, viChoice, sneekChoice, Hooktype, returnToChoice, PrivServChoice); + gamepatches(videoChoice, videoPatchDolChoice, aspectChoice, languageChoice, countrystrings, viChoice, sneekChoice, Hooktype, returnToChoice, PrivServChoice, customAddress); } - else { + else + { //! Wiimmfi patch for Mario Kart Wii - patch with PRIVSERV_OFF and handle all the patching within do_new_wiimmfi() - gamepatches(videoChoice, videoPatchDolChoice, aspectChoice, languageChoice, countrystrings, viChoice, sneekChoice, Hooktype, returnToChoice, PRIVSERV_OFF); + gamepatches(videoChoice, videoPatchDolChoice, aspectChoice, languageChoice, countrystrings, viChoice, sneekChoice, Hooktype, returnToChoice, PRIVSERV_OFF, customAddress); } @@ -451,9 +458,11 @@ int GameBooter::BootGame(struct discHdr *gameHdr) PatchFix480p(); //! New Wiimmfi patch should be loaded last, after the codehandler, just before the call to the entry point - if (PrivServChoice == PRIVSERV_WIIMMFI && memcmp(((void *)(0x80000000)), (char*)"RMC", 3) == 0 ) { + if (PrivServChoice == PRIVSERV_WIIMMFI && memcmp(gameHeader.id, "RMC", 3) == 0 ) + { // all the cool new Wiimmfi stuff: - switch(do_new_wiimmfi()) { + switch(do_new_wiimmfi()) + { case 0: gprintf("Wiimmfi patch for Mario Kart Wii successful.\n"); break;