Added an option to set a custom server address

This commit is contained in:
wiidev 2020-11-08 21:27:42 +00:00
parent 35a9fdb71b
commit 30855664dd
35 changed files with 359 additions and 72 deletions

View File

@ -149,8 +149,8 @@ msgstr ""
msgid "Alternate DOL" msgid "Alternate DOL"
msgstr "Náhradní DOL" msgstr "Náhradní DOL"
msgid "AltWFC (Risky)" msgid "AltWFC"
msgstr "AltWFC (Riskantní)" msgstr ""
msgid "An example file was created here:" msgid "An example file was created here:"
msgstr "" msgstr ""
@ -540,12 +540,18 @@ msgstr ""
msgid "Current neek files are not neek2o. Game autoboot disabled." msgid "Current neek files are not neek2o. Game autoboot disabled."
msgstr "" msgstr ""
msgid "Custom Address"
msgstr "Vlastní adresa"
msgid "Custom Banners" msgid "Custom Banners"
msgstr "" msgstr ""
msgid "Custom Paths" msgid "Custom Paths"
msgstr "Vlastní cesty" msgstr "Vlastní cesty"
msgid "Custom"
msgstr "Vlastní"
msgid "Customs" msgid "Customs"
msgstr "" msgstr ""
@ -1740,6 +1746,9 @@ msgstr "Prehrát predchozí"
msgid "Playing Music:" msgid "Playing Music:"
msgstr "Prehrávání hudby:" msgstr "Prehrávání hudby:"
msgid "Please enter a valid address e.g. wiimmfi.de"
msgstr ""
msgid "Please wait" msgid "Please wait"
msgstr "" msgstr ""

View File

@ -149,8 +149,8 @@ msgstr ""
msgid "Alternate DOL" msgid "Alternate DOL"
msgstr "Alternativ DOL" msgstr "Alternativ DOL"
msgid "AltWFC (Risky)" msgid "AltWFC"
msgstr "AltWFC (Risikabel)" msgstr ""
msgid "An example file was created here:" msgid "An example file was created here:"
msgstr "En f.eks. fil er lavet her:" msgstr "En f.eks. fil er lavet her:"
@ -540,12 +540,18 @@ msgstr ""
msgid "Current neek files are not neek2o. Game autoboot disabled." msgid "Current neek files are not neek2o. Game autoboot disabled."
msgstr "" msgstr ""
msgid "Custom Address"
msgstr ""
msgid "Custom Banners" msgid "Custom Banners"
msgstr "" msgstr ""
msgid "Custom Paths" msgid "Custom Paths"
msgstr "Sti-indstillinger" msgstr "Sti-indstillinger"
msgid "Custom"
msgstr ""
msgid "Customs" msgid "Customs"
msgstr "" msgstr ""
@ -1740,6 +1746,9 @@ msgstr "Afspil forrige"
msgid "Playing Music:" msgid "Playing Music:"
msgstr "Afspiller musik:" msgstr "Afspiller musik:"
msgid "Please enter a valid address e.g. wiimmfi.de"
msgstr ""
msgid "Please wait" msgid "Please wait"
msgstr "" msgstr ""

View File

@ -149,8 +149,8 @@ msgstr ""
msgid "Alternate DOL" msgid "Alternate DOL"
msgstr "Alternatieve DOL" msgstr "Alternatieve DOL"
msgid "AltWFC (Risky)" msgid "AltWFC"
msgstr "AltWFC (Riskant)" msgstr ""
msgid "An example file was created here:" msgid "An example file was created here:"
msgstr "Er is hier een voorbeeldbestand gemaakt:" msgstr "Er is hier een voorbeeldbestand gemaakt:"
@ -540,12 +540,18 @@ msgstr ""
msgid "Current neek files are not neek2o. Game autoboot disabled." msgid "Current neek files are not neek2o. Game autoboot disabled."
msgstr "" msgstr ""
msgid "Custom Address"
msgstr "Aangepaste Adres"
msgid "Custom Banners" msgid "Custom Banners"
msgstr "Aangepaste Banners" msgstr "Aangepaste Banners"
msgid "Custom Paths" msgid "Custom Paths"
msgstr "Aangepaste Locaties" msgstr "Aangepaste Locaties"
msgid "Custom"
msgstr "Aangepaste"
msgid "Customs" msgid "Customs"
msgstr "Aangepaste" msgstr "Aangepaste"
@ -1740,6 +1746,9 @@ msgstr "Speel Vorige"
msgid "Playing Music:" msgid "Playing Music:"
msgstr "Speelt nu:" msgstr "Speelt nu:"
msgid "Please enter a valid address e.g. wiimmfi.de"
msgstr ""
msgid "Please wait" msgid "Please wait"
msgstr "Even geduld" msgstr "Even geduld"

View File

@ -149,7 +149,7 @@ msgstr ""
msgid "Alternate DOL" msgid "Alternate DOL"
msgstr "" msgstr ""
msgid "AltWFC (Risky)" msgid "AltWFC"
msgstr "" msgstr ""
msgid "An example file was created here:" msgid "An example file was created here:"
@ -540,12 +540,18 @@ msgstr ""
msgid "Current neek files are not neek2o. Game autoboot disabled." msgid "Current neek files are not neek2o. Game autoboot disabled."
msgstr "" msgstr ""
msgid "Custom Address"
msgstr ""
msgid "Custom Banners" msgid "Custom Banners"
msgstr "" msgstr ""
msgid "Custom Paths" msgid "Custom Paths"
msgstr "" msgstr ""
msgid "Custom"
msgstr ""
msgid "Customs" msgid "Customs"
msgstr "" msgstr ""
@ -1740,6 +1746,9 @@ msgstr ""
msgid "Playing Music:" msgid "Playing Music:"
msgstr "" msgstr ""
msgid "Please enter a valid address e.g. wiimmfi.de"
msgstr ""
msgid "Please wait" msgid "Please wait"
msgstr "" msgstr ""

View File

@ -149,8 +149,8 @@ msgstr ""
msgid "Alternate DOL" msgid "Alternate DOL"
msgstr "Vaihtoehto DOL" msgstr "Vaihtoehto DOL"
msgid "AltWFC (Risky)" msgid "AltWFC"
msgstr "AltWFC (Riskialtis)" msgstr ""
msgid "An example file was created here:" msgid "An example file was created here:"
msgstr "" msgstr ""
@ -540,12 +540,18 @@ msgstr ""
msgid "Current neek files are not neek2o. Game autoboot disabled." msgid "Current neek files are not neek2o. Game autoboot disabled."
msgstr "" msgstr ""
msgid "Custom Address"
msgstr ""
msgid "Custom Banners" msgid "Custom Banners"
msgstr "" msgstr ""
msgid "Custom Paths" msgid "Custom Paths"
msgstr "Omat polut" msgstr "Omat polut"
msgid "Custom"
msgstr ""
msgid "Customs" msgid "Customs"
msgstr "" msgstr ""
@ -1740,6 +1746,9 @@ msgstr ""
msgid "Playing Music:" msgid "Playing Music:"
msgstr "" msgstr ""
msgid "Please enter a valid address e.g. wiimmfi.de"
msgstr ""
msgid "Please wait" msgid "Please wait"
msgstr "" msgstr ""

View File

@ -149,8 +149,8 @@ msgstr "Tous les fichiers wad ont été traités avec succès."
msgid "Alternate DOL" msgid "Alternate DOL"
msgstr "DOL alternatif" msgstr "DOL alternatif"
msgid "AltWFC (Risky)" msgid "AltWFC"
msgstr "AltWFC (Risqué)" msgstr ""
msgid "An example file was created here:" msgid "An example file was created here:"
msgstr "Un fichier d'exemple a été créé ici :" 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." msgid "Current neek files are not neek2o. Game autoboot disabled."
msgstr "Le fichier neek actuel n'est pas neek2o. Démarrage automatique désactivé." msgstr "Le fichier neek actuel n'est pas neek2o. Démarrage automatique désactivé."
msgid "Custom Address"
msgstr ""
msgid "Custom Banners" msgid "Custom Banners"
msgstr "Bannières persos" msgstr "Bannières persos"
msgid "Custom Paths" msgid "Custom Paths"
msgstr "Personnalisation des dossiers" msgstr "Personnalisation des dossiers"
msgid "Custom"
msgstr ""
msgid "Customs" msgid "Customs"
msgstr "Persos" msgstr "Persos"
@ -1740,6 +1746,9 @@ msgstr "Jouer précéd."
msgid "Playing Music:" msgid "Playing Music:"
msgstr "Musique actuelle:" msgstr "Musique actuelle:"
msgid "Please enter a valid address e.g. wiimmfi.de"
msgstr ""
msgid "Please wait" msgid "Please wait"
msgstr "Veuillez patienter" msgstr "Veuillez patienter"

View File

@ -149,8 +149,8 @@ msgstr ""
msgid "Alternate DOL" msgid "Alternate DOL"
msgstr "Alternative DOL" msgstr "Alternative DOL"
msgid "AltWFC (Risky)" msgid "AltWFC"
msgstr "AltWFC (Riskant)" msgstr ""
msgid "An example file was created here:" msgid "An example file was created here:"
msgstr "Eine Beispieldatei wurde hier erstellt:" msgstr "Eine Beispieldatei wurde hier erstellt:"
@ -540,12 +540,18 @@ msgstr "Overscan abschneiden"
msgid "Current neek files are not neek2o. Game autoboot disabled." msgid "Current neek files are not neek2o. Game autoboot disabled."
msgstr "" msgstr ""
msgid "Custom Address"
msgstr ""
msgid "Custom Banners" msgid "Custom Banners"
msgstr "Community Banner" msgstr "Community Banner"
msgid "Custom Paths" msgid "Custom Paths"
msgstr "Community Pfade" msgstr "Community Pfade"
msgid "Custom"
msgstr ""
msgid "Customs" msgid "Customs"
msgstr "Community" msgstr "Community"
@ -1740,6 +1746,9 @@ msgstr "Vorheriger Titel"
msgid "Playing Music:" msgid "Playing Music:"
msgstr "Aktuelle Musik:" msgstr "Aktuelle Musik:"
msgid "Please enter a valid address e.g. wiimmfi.de"
msgstr ""
msgid "Please wait" msgid "Please wait"
msgstr "Bitte warten" msgstr "Bitte warten"

View File

@ -149,8 +149,8 @@ msgstr "Όλα τα αρχεία wad υποβλήθηκαν σε επεξεργ
msgid "Alternate DOL" msgid "Alternate DOL"
msgstr "Εναλλακτικό DOL" msgstr "Εναλλακτικό DOL"
msgid "AltWFC (Risky)" msgid "AltWFC"
msgstr "AltWFC (Επικίνδυνος)" msgstr ""
msgid "An example file was created here:" msgid "An example file was created here:"
msgstr "Ένα αρχείο-παράδειγμα δημιουργήθηκε εδώ" msgstr "Ένα αρχείο-παράδειγμα δημιουργήθηκε εδώ"
@ -540,12 +540,18 @@ msgstr ""
msgid "Current neek files are not neek2o. Game autoboot disabled." msgid "Current neek files are not neek2o. Game autoboot disabled."
msgstr "" msgstr ""
msgid "Custom Address"
msgstr ""
msgid "Custom Banners" msgid "Custom Banners"
msgstr "Τροποποιημένες ταμπέλες-εικονίδια" msgstr "Τροποποιημένες ταμπέλες-εικονίδια"
msgid "Custom Paths" msgid "Custom Paths"
msgstr "Τροποποιημένες διευθύνσεις/μονοπάτια αρχείων" msgstr "Τροποποιημένες διευθύνσεις/μονοπάτια αρχείων"
msgid "Custom"
msgstr ""
msgid "Customs" msgid "Customs"
msgstr "Τροποποιημένα" msgstr "Τροποποιημένα"
@ -1740,6 +1746,9 @@ msgstr "Αναπαραγωγή προηγούμενου"
msgid "Playing Music:" msgid "Playing Music:"
msgstr "Αναπαραγωγή μουσικής:" msgstr "Αναπαραγωγή μουσικής:"
msgid "Please enter a valid address e.g. wiimmfi.de"
msgstr ""
msgid "Please wait" msgid "Please wait"
msgstr "Παρακαλώ περιμένετε" msgstr "Παρακαλώ περιμένετε"

View File

@ -149,8 +149,8 @@ msgstr ""
msgid "Alternate DOL" msgid "Alternate DOL"
msgstr "Alternatív DOL" msgstr "Alternatív DOL"
msgid "AltWFC (Risky)" msgid "AltWFC"
msgstr "AltWFC (Kockázatos)" msgstr ""
msgid "An example file was created here:" msgid "An example file was created here:"
msgstr "" msgstr ""
@ -540,12 +540,18 @@ msgstr ""
msgid "Current neek files are not neek2o. Game autoboot disabled." msgid "Current neek files are not neek2o. Game autoboot disabled."
msgstr "" msgstr ""
msgid "Custom Address"
msgstr ""
msgid "Custom Banners" msgid "Custom Banners"
msgstr "" msgstr ""
msgid "Custom Paths" msgid "Custom Paths"
msgstr "Egyéni útvonalak" msgstr "Egyéni útvonalak"
msgid "Custom"
msgstr ""
msgid "Customs" msgid "Customs"
msgstr "" msgstr ""
@ -1740,6 +1746,9 @@ msgstr ""
msgid "Playing Music:" msgid "Playing Music:"
msgstr "" msgstr ""
msgid "Please enter a valid address e.g. wiimmfi.de"
msgstr ""
msgid "Please wait" msgid "Please wait"
msgstr "" msgstr ""

View File

@ -149,8 +149,8 @@ msgstr "Tutti i files wad processati correttamente"
msgid "Alternate DOL" msgid "Alternate DOL"
msgstr "DOL alternativo" msgstr "DOL alternativo"
msgid "AltWFC (Risky)" msgid "AltWFC"
msgstr "AltWFC (Rischioso)" msgstr ""
msgid "An example file was created here:" msgid "An example file was created here:"
msgstr "Un file di esempio è stato creato qui:" msgstr "Un file di esempio è stato creato qui:"
@ -540,12 +540,18 @@ msgstr ""
msgid "Current neek files are not neek2o. Game autoboot disabled." msgid "Current neek files are not neek2o. Game autoboot disabled."
msgstr "Questi files neek non sono neek2o. Autoboot dei giochi disabilitato" msgstr "Questi files neek non sono neek2o. Autoboot dei giochi disabilitato"
msgid "Custom Address"
msgstr "Indirizzo personalizzati"
msgid "Custom Banners" msgid "Custom Banners"
msgstr "Banner personalizzati" msgstr "Banner personalizzati"
msgid "Custom Paths" msgid "Custom Paths"
msgstr "Percorsi personalizzati" msgstr "Percorsi personalizzati"
msgid "Custom"
msgstr "Personalizzati"
msgid "Customs" msgid "Customs"
msgstr "Personalizzati" msgstr "Personalizzati"
@ -1740,6 +1746,9 @@ msgstr "Riproduci precedente"
msgid "Playing Music:" msgid "Playing Music:"
msgstr "Riproducendo:" msgstr "Riproducendo:"
msgid "Please enter a valid address e.g. wiimmfi.de"
msgstr ""
msgid "Please wait" msgid "Please wait"
msgstr "Attendere prego" msgstr "Attendere prego"

View File

@ -149,8 +149,8 @@ msgstr ""
msgid "Alternate DOL" msgid "Alternate DOL"
msgstr "代替DOL起動" msgstr "代替DOL起動"
msgid "AltWFC (Risky)" msgid "AltWFC"
msgstr "AltWFC (リスキーな)" msgstr ""
msgid "An example file was created here:" msgid "An example file was created here:"
msgstr "テンプレファイルが作成されました:" msgstr "テンプレファイルが作成されました:"
@ -540,12 +540,18 @@ msgstr ""
msgid "Current neek files are not neek2o. Game autoboot disabled." msgid "Current neek files are not neek2o. Game autoboot disabled."
msgstr "" msgstr ""
msgid "Custom Address"
msgstr "カスタム アドレス"
msgid "Custom Banners" msgid "Custom Banners"
msgstr "カスタムバナー" msgstr "カスタムバナー"
msgid "Custom Paths" msgid "Custom Paths"
msgstr "パスを変更" msgstr "パスを変更"
msgid "Custom"
msgstr "カスタム"
msgid "Customs" msgid "Customs"
msgstr "カスタム" msgstr "カスタム"
@ -1740,6 +1746,9 @@ msgstr "前へ"
msgid "Playing Music:" msgid "Playing Music:"
msgstr "再生中" msgstr "再生中"
msgid "Please enter a valid address e.g. wiimmfi.de"
msgstr ""
msgid "Please wait" msgid "Please wait"
msgstr "お待ちください" msgstr "お待ちください"

View File

@ -149,8 +149,8 @@ msgstr "모든 wad 파일이 성공적으로 처리되었습니다"
msgid "Alternate DOL" msgid "Alternate DOL"
msgstr "대체 DOL" msgstr "대체 DOL"
msgid "AltWFC (Risky)" msgid "AltWFC"
msgstr "AltWFC (위험한)" msgstr ""
msgid "An example file was created here:" msgid "An example file was created here:"
msgstr "여기에 예제 파일이 생성되었습니다:" msgstr "여기에 예제 파일이 생성되었습니다:"
@ -540,12 +540,18 @@ msgstr "자르기 오버스캔"
msgid "Current neek files are not neek2o. Game autoboot disabled." msgid "Current neek files are not neek2o. Game autoboot disabled."
msgstr "현재의 neek 파일은 neek2o가 아닙니다. 게임 자동 부팅이 비활성화 되었습니다." msgstr "현재의 neek 파일은 neek2o가 아닙니다. 게임 자동 부팅이 비활성화 되었습니다."
msgid "Custom Address"
msgstr "커스텀 주소"
msgid "Custom Banners" msgid "Custom Banners"
msgstr "커스텀 배너" msgstr "커스텀 배너"
msgid "Custom Paths" msgid "Custom Paths"
msgstr "커스텀 경로" msgstr "커스텀 경로"
msgid "Custom"
msgstr "커스텀"
msgid "Customs" msgid "Customs"
msgstr "커스텀" msgstr "커스텀"
@ -1740,6 +1746,9 @@ msgstr "이전 플레이"
msgid "Playing Music:" msgid "Playing Music:"
msgstr "재생 음악:" msgstr "재생 음악:"
msgid "Please enter a valid address e.g. wiimmfi.de"
msgstr ""
msgid "Please wait" msgid "Please wait"
msgstr "기다려주십시오." msgstr "기다려주십시오."

View File

@ -149,8 +149,8 @@ msgstr ""
msgid "Alternate DOL" msgid "Alternate DOL"
msgstr "Alternativ DOL" msgstr "Alternativ DOL"
msgid "AltWFC (Risky)" msgid "AltWFC"
msgstr "AltWFC (Risikabelt)" msgstr ""
msgid "An example file was created here:" msgid "An example file was created here:"
msgstr "En eksempelfil ble opprettet her:" msgstr "En eksempelfil ble opprettet her:"
@ -540,12 +540,18 @@ msgstr ""
msgid "Current neek files are not neek2o. Game autoboot disabled." msgid "Current neek files are not neek2o. Game autoboot disabled."
msgstr "" msgstr ""
msgid "Custom Address"
msgstr ""
msgid "Custom Banners" msgid "Custom Banners"
msgstr "" msgstr ""
msgid "Custom Paths" msgid "Custom Paths"
msgstr "Egendefinerte stier" msgstr "Egendefinerte stier"
msgid "Custom"
msgstr ""
msgid "Customs" msgid "Customs"
msgstr "" msgstr ""
@ -1740,6 +1746,9 @@ msgstr "Spill forrige"
msgid "Playing Music:" msgid "Playing Music:"
msgstr "Spiller musikk:" msgstr "Spiller musikk:"
msgid "Please enter a valid address e.g. wiimmfi.de"
msgstr ""
msgid "Please wait" msgid "Please wait"
msgstr "" msgstr ""

View File

@ -149,8 +149,8 @@ msgstr ""
msgid "Alternate DOL" msgid "Alternate DOL"
msgstr "Alternatywny DOL" msgstr "Alternatywny DOL"
msgid "AltWFC (Risky)" msgid "AltWFC"
msgstr "AltWFC (Ryzykowny)" msgstr ""
msgid "An example file was created here:" msgid "An example file was created here:"
msgstr "" msgstr ""
@ -540,12 +540,18 @@ msgstr ""
msgid "Current neek files are not neek2o. Game autoboot disabled." msgid "Current neek files are not neek2o. Game autoboot disabled."
msgstr "" msgstr ""
msgid "Custom Address"
msgstr ""
msgid "Custom Banners" msgid "Custom Banners"
msgstr "" msgstr ""
msgid "Custom Paths" msgid "Custom Paths"
msgstr "Sciezki" msgstr "Sciezki"
msgid "Custom"
msgstr ""
msgid "Customs" msgid "Customs"
msgstr "" msgstr ""
@ -1740,6 +1746,9 @@ msgstr ""
msgid "Playing Music:" msgid "Playing Music:"
msgstr "" msgstr ""
msgid "Please enter a valid address e.g. wiimmfi.de"
msgstr ""
msgid "Please wait" msgid "Please wait"
msgstr "" msgstr ""

View File

@ -149,8 +149,8 @@ msgstr "Todos os arquivos foram processados"
msgid "Alternate DOL" msgid "Alternate DOL"
msgstr "DOL alternativo" msgstr "DOL alternativo"
msgid "AltWFC (Risky)" msgid "AltWFC"
msgstr "AltWFC (Arriscado)" msgstr ""
msgid "An example file was created here:" msgid "An example file was created here:"
msgstr "Arquivo de exemplo criado aqui:" msgstr "Arquivo de exemplo criado aqui:"
@ -540,12 +540,18 @@ msgstr "Cortar Overscan"
msgid "Current neek files are not neek2o. Game autoboot disabled." msgid "Current neek files are not neek2o. Game autoboot disabled."
msgstr "Os arquivos do neek não são do neek2o. Auto Boot desabilitado" msgstr "Os arquivos do neek não são do neek2o. Auto Boot desabilitado"
msgid "Custom Address"
msgstr ""
msgid "Custom Banners" msgid "Custom Banners"
msgstr "Banners Modificados" msgstr "Banners Modificados"
msgid "Custom Paths" msgid "Custom Paths"
msgstr "Caminhos" msgstr "Caminhos"
msgid "Custom"
msgstr ""
msgid "Customs" msgid "Customs"
msgstr "" msgstr ""
@ -1740,6 +1746,9 @@ msgstr "Anterior"
msgid "Playing Music:" msgid "Playing Music:"
msgstr "Reproduzindo Música:" msgstr "Reproduzindo Música:"
msgid "Please enter a valid address e.g. wiimmfi.de"
msgstr ""
msgid "Please wait" msgid "Please wait"
msgstr "Aguarde" msgstr "Aguarde"

View File

@ -149,8 +149,8 @@ msgstr ""
msgid "Alternate DOL" msgid "Alternate DOL"
msgstr "DOL alternativo" msgstr "DOL alternativo"
msgid "AltWFC (Risky)" msgid "AltWFC"
msgstr "AltWFC (Arriscado)" msgstr ""
msgid "An example file was created here:" msgid "An example file was created here:"
msgstr "Ficheiro de exemplo criado aqui:" msgstr "Ficheiro de exemplo criado aqui:"
@ -540,12 +540,18 @@ msgstr ""
msgid "Current neek files are not neek2o. Game autoboot disabled." msgid "Current neek files are not neek2o. Game autoboot disabled."
msgstr "" msgstr ""
msgid "Custom Address"
msgstr ""
msgid "Custom Banners" msgid "Custom Banners"
msgstr "" msgstr ""
msgid "Custom Paths" msgid "Custom Paths"
msgstr "Caminhos Personalizados" msgstr "Caminhos Personalizados"
msgid "Custom"
msgstr ""
msgid "Customs" msgid "Customs"
msgstr "" msgstr ""
@ -1740,6 +1746,9 @@ msgstr "Anterior"
msgid "Playing Music:" msgid "Playing Music:"
msgstr "A reproduzir Música:" msgstr "A reproduzir Música:"
msgid "Please enter a valid address e.g. wiimmfi.de"
msgstr ""
msgid "Please wait" msgid "Please wait"
msgstr "" msgstr ""

View File

@ -149,8 +149,8 @@ msgstr ""
msgid "Alternate DOL" msgid "Alternate DOL"
msgstr "Альтернативный DOL" msgstr "Альтернативный DOL"
msgid "AltWFC (Risky)" msgid "AltWFC"
msgstr "AltWFC (Pискованный)" msgstr ""
msgid "An example file was created here:" msgid "An example file was created here:"
msgstr "" msgstr ""
@ -540,12 +540,18 @@ msgstr ""
msgid "Current neek files are not neek2o. Game autoboot disabled." msgid "Current neek files are not neek2o. Game autoboot disabled."
msgstr "" msgstr ""
msgid "Custom Address"
msgstr ""
msgid "Custom Banners" msgid "Custom Banners"
msgstr "" msgstr ""
msgid "Custom Paths" msgid "Custom Paths"
msgstr "Изменение путей" msgstr "Изменение путей"
msgid "Custom"
msgstr ""
msgid "Customs" msgid "Customs"
msgstr "" msgstr ""
@ -1740,6 +1746,9 @@ msgstr ""
msgid "Playing Music:" msgid "Playing Music:"
msgstr "" msgstr ""
msgid "Please enter a valid address e.g. wiimmfi.de"
msgstr ""
msgid "Please wait" msgid "Please wait"
msgstr "" msgstr ""

View File

@ -149,8 +149,8 @@ msgstr ""
msgid "Alternate DOL" msgid "Alternate DOL"
msgstr "可选择 DOL 文件" msgstr "可选择 DOL 文件"
msgid "AltWFC (Risky)" msgid "AltWFC"
msgstr "AltWFC (有风险)" msgstr ""
msgid "An example file was created here:" msgid "An example file was created here:"
msgstr "一个实例文件已创建于:" msgstr "一个实例文件已创建于:"
@ -540,12 +540,18 @@ msgstr ""
msgid "Current neek files are not neek2o. Game autoboot disabled." msgid "Current neek files are not neek2o. Game autoboot disabled."
msgstr "" msgstr ""
msgid "Custom Address"
msgstr "自定义地址"
msgid "Custom Banners" msgid "Custom Banners"
msgstr "自定义频道动画" msgstr "自定义频道动画"
msgid "Custom Paths" msgid "Custom Paths"
msgstr "自定义路径" msgstr "自定义路径"
msgid "Custom"
msgstr "自定义"
msgid "Customs" msgid "Customs"
msgstr "自定义" msgstr "自定义"
@ -1740,6 +1746,9 @@ msgstr "播放上一曲"
msgid "Playing Music:" msgid "Playing Music:"
msgstr "正在播放音乐:" msgstr "正在播放音乐:"
msgid "Please enter a valid address e.g. wiimmfi.de"
msgstr ""
msgid "Please wait" msgid "Please wait"
msgstr "请稍候" msgstr "请稍候"

View File

@ -149,8 +149,8 @@ msgstr ""
msgid "Alternate DOL" msgid "Alternate DOL"
msgstr "DOL Alternativo" msgstr "DOL Alternativo"
msgid "AltWFC (Risky)" msgid "AltWFC"
msgstr "AltWFC (Arriesgado)" msgstr ""
msgid "An example file was created here:" msgid "An example file was created here:"
msgstr "Un archivo de ejemplo fue creado aquí:" 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." msgid "Current neek files are not neek2o. Game autoboot disabled."
msgstr "" msgstr ""
msgid "Custom Address"
msgstr ""
msgid "Custom Banners" msgid "Custom Banners"
msgstr "Banners personalizados" msgstr "Banners personalizados"
msgid "Custom Paths" msgid "Custom Paths"
msgstr "Rutas personalizadas" msgstr "Rutas personalizadas"
msgid "Custom"
msgstr ""
msgid "Customs" msgid "Customs"
msgstr "Personalizadas" msgstr "Personalizadas"
@ -1740,6 +1746,9 @@ msgstr "Oír Anterior"
msgid "Playing Music:" msgid "Playing Music:"
msgstr "Reproducción Musical:" msgstr "Reproducción Musical:"
msgid "Please enter a valid address e.g. wiimmfi.de"
msgstr ""
msgid "Please wait" msgid "Please wait"
msgstr "Por favor, espera" msgstr "Por favor, espera"

View File

@ -149,8 +149,8 @@ msgstr ""
msgid "Alternate DOL" msgid "Alternate DOL"
msgstr "Alternativ DOL" msgstr "Alternativ DOL"
msgid "AltWFC (Risky)" msgid "AltWFC"
msgstr "AltWFC (Riskabel)" msgstr ""
msgid "An example file was created here:" msgid "An example file was created here:"
msgstr "" msgstr ""
@ -540,12 +540,18 @@ msgstr ""
msgid "Current neek files are not neek2o. Game autoboot disabled." msgid "Current neek files are not neek2o. Game autoboot disabled."
msgstr "" msgstr ""
msgid "Custom Address"
msgstr "Anpassad adress"
msgid "Custom Banners" msgid "Custom Banners"
msgstr "" msgstr ""
msgid "Custom Paths" msgid "Custom Paths"
msgstr "Anpassade sökvägar" msgstr "Anpassade sökvägar"
msgid "Custom"
msgstr "Anpassade"
msgid "Customs" msgid "Customs"
msgstr "" msgstr ""
@ -1740,6 +1746,9 @@ msgstr "Spela förgående"
msgid "Playing Music:" msgid "Playing Music:"
msgstr "Spela musik:" msgstr "Spela musik:"
msgid "Please enter a valid address e.g. wiimmfi.de"
msgstr ""
msgid "Please wait" msgid "Please wait"
msgstr "" msgstr ""

View File

@ -149,8 +149,8 @@ msgstr ""
msgid "Alternate DOL" msgid "Alternate DOL"
msgstr "可選擇Alt DOL檔" msgstr "可選擇Alt DOL檔"
msgid "AltWFC (Risky)" msgid "AltWFC"
msgstr "AltWFC (有風險)" msgstr ""
msgid "An example file was created here:" msgid "An example file was created here:"
msgstr "在這裡建立範本檔:" msgstr "在這裡建立範本檔:"
@ -540,12 +540,18 @@ msgstr ""
msgid "Current neek files are not neek2o. Game autoboot disabled." msgid "Current neek files are not neek2o. Game autoboot disabled."
msgstr "" msgstr ""
msgid "Custom Address"
msgstr "自訂地址"
msgid "Custom Banners" msgid "Custom Banners"
msgstr "自製頻道動畫" msgstr "自製頻道動畫"
msgid "Custom Paths" msgid "Custom Paths"
msgstr "自訂路徑" msgstr "自訂路徑"
msgid "Custom"
msgstr "自訂"
msgid "Customs" msgid "Customs"
msgstr "自訂" msgstr "自訂"
@ -1740,6 +1746,9 @@ msgstr "執行上一個"
msgid "Playing Music:" msgid "Playing Music:"
msgstr "播放音樂:" msgstr "播放音樂:"
msgid "Please enter a valid address e.g. wiimmfi.de"
msgstr ""
msgid "Please wait" msgid "Please wait"
msgstr "請稍候" msgstr "請稍候"

View File

@ -149,8 +149,8 @@ msgstr ""
msgid "Alternate DOL" msgid "Alternate DOL"
msgstr "เปลี่ยน DOL " msgstr "เปลี่ยน DOL "
msgid "AltWFC (Risky)" msgid "AltWFC"
msgstr "AltWFC (เสี่ยง)" msgstr ""
msgid "An example file was created here:" msgid "An example file was created here:"
msgstr "" msgstr ""
@ -540,12 +540,18 @@ msgstr ""
msgid "Current neek files are not neek2o. Game autoboot disabled." msgid "Current neek files are not neek2o. Game autoboot disabled."
msgstr "" msgstr ""
msgid "Custom Address"
msgstr ""
msgid "Custom Banners" msgid "Custom Banners"
msgstr "" msgstr ""
msgid "Custom Paths" msgid "Custom Paths"
msgstr "กำหนด ที่เก็บ" msgstr "กำหนด ที่เก็บ"
msgid "Custom"
msgstr ""
msgid "Customs" msgid "Customs"
msgstr "" msgstr ""
@ -1740,6 +1746,9 @@ msgstr ""
msgid "Playing Music:" msgid "Playing Music:"
msgstr "" msgstr ""
msgid "Please enter a valid address e.g. wiimmfi.de"
msgstr ""
msgid "Please wait" msgid "Please wait"
msgstr "" msgstr ""

View File

@ -149,8 +149,8 @@ msgstr ""
msgid "Alternate DOL" msgid "Alternate DOL"
msgstr "Alternatif DOL" msgstr "Alternatif DOL"
msgid "AltWFC (Risky)" msgid "AltWFC"
msgstr "AltWFC (Riskli)" msgstr ""
msgid "An example file was created here:" msgid "An example file was created here:"
msgstr "" msgstr ""
@ -540,12 +540,18 @@ msgstr ""
msgid "Current neek files are not neek2o. Game autoboot disabled." msgid "Current neek files are not neek2o. Game autoboot disabled."
msgstr "" msgstr ""
msgid "Custom Address"
msgstr ""
msgid "Custom Banners" msgid "Custom Banners"
msgstr "" msgstr ""
msgid "Custom Paths" msgid "Custom Paths"
msgstr "Kişisel Yollar" msgstr "Kişisel Yollar"
msgid "Custom"
msgstr ""
msgid "Customs" msgid "Customs"
msgstr "" msgstr ""
@ -1740,6 +1746,9 @@ msgstr ""
msgid "Playing Music:" msgid "Playing Music:"
msgstr "" msgstr ""
msgid "Please enter a valid address e.g. wiimmfi.de"
msgstr ""
msgid "Please wait" msgid "Please wait"
msgstr "" msgstr ""

View File

@ -51,7 +51,7 @@ void ClearDOLList()
} }
void gamepatches(u8 videoSelected, u8 videoPatchDol, u8 aspectForce, u8 languageChoice, u8 patchcountrystring, 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; int i;
@ -92,7 +92,7 @@ void gamepatches(u8 videoSelected, u8 videoPatchDol, u8 aspectForce, u8 language
PatchAspectRatio(dst, len, aspectForce); PatchAspectRatio(dst, len, aspectForce);
if(privateServer) if(privateServer)
PrivateServerPatcher(dst, len, privateServer); PrivateServerPatcher(dst, len, privateServer, serverAddr);
DCFlushRange(dst, len); DCFlushRange(dst, len);
ICInvalidateRange(dst, len); ICInvalidateRange(dst, len);
@ -218,7 +218,7 @@ void PatchFix480p()
} }
/** Patch URLs for private Servers - Thanks to ToadKing/wiilauncher-nossl **/ /** 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 // Patch protocol https -> http
@ -234,19 +234,13 @@ void PrivateServerPatcher(void *addr, u32 len, u8 privateServer)
cur += len; cur += len;
} }
} while (++cur < end); } while (++cur < end);
// Patch nintendowifi.net -> private server domain // Patch nintendowifi.net -> private server domain
if (privateServer == PRIVSERV_WIIMMFI) if (privateServer == PRIVSERV_WIIMMFI)
{
domainpatcher(addr, len, "wiimmfi.de"); domainpatcher(addr, len, "wiimmfi.de");
}
else if (privateServer == PRIVSERV_ALTWFC) else if (privateServer == PRIVSERV_ALTWFC)
{
domainpatcher(addr, len, "zwei.moe"); domainpatcher(addr, len, "zwei.moe");
} else if (privateServer == PRIVSERV_CUSTOM && strlen(serverAddr) > 3)
//else if(privateServer == PRIVSERV_CUSTOM) domainpatcher(addr, len, serverAddr);
//domainpatcher(dst, len, Settings.CustomPrivateServer);
} }
u32 do_new_wiimmfi() u32 do_new_wiimmfi()
@ -314,7 +308,7 @@ u32 do_new_wiimmfi()
strncpy(patched, (char *)&patcher, 42); strncpy(patched, (char *)&patcher, 42);
// Do the plain old patching with the string search // 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 // Replace some URLs for Wiimmfi's new update system
char newURL1[] = "http://ca.nas.wiimmfi.de/ca"; char newURL1[] = "http://ca.nas.wiimmfi.de/ca";

View File

@ -10,9 +10,9 @@ extern "C" {
void RegisterDOL(u8 *dst, int len); void RegisterDOL(u8 *dst, int len);
void ClearDOLList(); void ClearDOLList();
void gamepatches(u8 videoSelected, u8 videoPatchDol, u8 aspectForce, u8 languageChoice, u8 patchcountrystring, 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); 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(); void PatchFix480p();
u32 do_new_wiimmfi(); u32 do_new_wiimmfi();
void domainpatcher(void *addr, u32 len, const char* domain); void domainpatcher(void *addr, u32 len, const char* domain);

View File

@ -170,13 +170,14 @@ int OnScreenNumpad(char * var, u32 maxlen)
* Opens an on-screen keyboard window, with the data entered being stored * Opens an on-screen keyboard window, with the data entered being stored
* into the specified variable. * 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 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); keyboard.SetVisibleText(!hide);
GuiImageData btnOutline(Resources::GetFile("button_dialogue_box.png"), Resources::GetFileSize("button_dialogue_box.png")); GuiImageData btnOutline(Resources::GetFile("button_dialogue_box.png"), Resources::GetFileSize("button_dialogue_box.png"));

View File

@ -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); NULL, const char * btn3Label = NULL, const char * btn4Label = NULL, int wait = -1);
void WindowCredits(); 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 OnScreenNumpad(char * var, u32 maxlen);
int WindowExitPrompt(); int WindowExitPrompt();
int DiscWait(const char *title, const char *msg, const char *btn1Label, const char *btn2Label, int IsDeviceWait); int DiscWait(const char *title, const char *msg, const char *btn1Label, const char *btn2Label, int IsDeviceWait);

View File

@ -246,6 +246,7 @@ bool CGameSettings::Save()
fprintf(f, "DEVOCropOverscan:%d; ", GameList[i].DEVOCropOverscan); fprintf(f, "DEVOCropOverscan:%d; ", GameList[i].DEVOCropOverscan);
fprintf(f, "DEVODiscDelay:%d; ", GameList[i].DEVODiscDelay); fprintf(f, "DEVODiscDelay:%d; ", GameList[i].DEVODiscDelay);
fprintf(f, "PrivateServer:%d; ", GameList[i].PrivateServer); 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, "Locked:%d;\n", GameList[i].Locked);
} }
fprintf(f, "# END\n"); fprintf(f, "# END\n");
@ -561,6 +562,12 @@ bool CGameSettings::SetSetting(GameCFG & game, const char *name, const char *val
game.PrivateServer = atoi(value); game.PrivateServer = atoi(value);
return true; return true;
} }
else if(strcmp(name, "CustomAddress") == 0)
{
if(strlen(value) > 3)
game.CustomAddress = value;
return true;
}
return false; return false;
} }
@ -722,5 +729,6 @@ void CGameSettings::SetDefault(GameCFG &game)
game.DEVOCropOverscan = INHERIT; game.DEVOCropOverscan = INHERIT;
game.DEVODiscDelay = INHERIT; game.DEVODiscDelay = INHERIT;
game.PrivateServer = INHERIT; game.PrivateServer = INHERIT;
game.CustomAddress.clear();
game.Locked = OFF; game.Locked = OFF;
} }

View File

@ -70,6 +70,7 @@ typedef struct _GameCFG
short DEVOCropOverscan; short DEVOCropOverscan;
short DEVODiscDelay; short DEVODiscDelay;
short PrivateServer; short PrivateServer;
std::string CustomAddress;
short Locked; short Locked;
void operator=(const struct _GameCFG &game) void operator=(const struct _GameCFG &game)
@ -135,6 +136,7 @@ typedef struct _GameCFG
this->DEVOCropOverscan = game.DEVOCropOverscan; this->DEVOCropOverscan = game.DEVOCropOverscan;
this->DEVODiscDelay = game.DEVODiscDelay; this->DEVODiscDelay = game.DEVODiscDelay;
this->PrivateServer = game.PrivateServer; this->PrivateServer = game.PrivateServer;
this->CustomAddress = game.CustomAddress;
this->Locked = game.Locked; this->Locked = game.Locked;
} }
} GameCFG; } GameCFG;

View File

@ -78,6 +78,7 @@ void CSettings::SetDefault()
strlcpy(NandEmuChanPath, NandEmuPath, sizeof(NandEmuChanPath)); strlcpy(NandEmuChanPath, NandEmuPath, sizeof(NandEmuChanPath));
strlcpy(GameCubePath, "usb1:/games/", sizeof(GameCubePath)); strlcpy(GameCubePath, "usb1:/games/", sizeof(GameCubePath));
strlcpy(GameCubeSDPath, "sd:/games/", sizeof(GameCubeSDPath)); strlcpy(GameCubeSDPath, "sd:/games/", sizeof(GameCubeSDPath));
strlcpy(CustomAddress, "wiimmfi.de", sizeof(CustomAddress));
strlcpy(URL_Banners, "https://banner.rc24.xyz/", sizeof(URL_Banners)); strlcpy(URL_Banners, "https://banner.rc24.xyz/", sizeof(URL_Banners));
strlcpy(URL_Covers2D, "https://art.gametdb.com/wii/cover/", sizeof(URL_Covers2D)); strlcpy(URL_Covers2D, "https://art.gametdb.com/wii/cover/", sizeof(URL_Covers2D));
strlcpy(URL_Covers3D, "https://art.gametdb.com/wii/cover3D/", sizeof(URL_Covers3D)); 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, "GCInstallCompressed = %d\n", GCInstallCompressed);
fprintf(file, "GCInstallAligned = %d\n", GCInstallAligned); fprintf(file, "GCInstallAligned = %d\n", GCInstallAligned);
fprintf(file, "PrivateServer = %d\n", PrivateServer); fprintf(file, "PrivateServer = %d\n", PrivateServer);
fprintf(file, "CustomAddress = %s\n", CustomAddress);
fprintf(file, "URL_Banners = %s\n", URL_Banners); fprintf(file, "URL_Banners = %s\n", URL_Banners);
fprintf(file, "URL_Covers2D = %s\n", URL_Covers2D); fprintf(file, "URL_Covers2D = %s\n", URL_Covers2D);
fprintf(file, "URL_Covers3D = %s\n", URL_Covers3D); 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)); strlcpy(URL_GameTDB, value, sizeof(URL_GameTDB));
return true; 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) else if(strcmp(name, "PrivateServer") == 0)
{ {
PrivateServer = atoi(value); PrivateServer = atoi(value);
return true;
} }
else if (strcmp(name, "EnabledCategories") == 0) else if (strcmp(name, "EnabledCategories") == 0)
{ {

View File

@ -89,6 +89,7 @@ class CSettings
char GameCubeSDPath[100]; char GameCubeSDPath[100];
char DEVOLoaderPath[100]; char DEVOLoaderPath[100];
char NINLoaderPath[100]; char NINLoaderPath[100];
char CustomAddress[300];
char URL_Banners[300]; char URL_Banners[300];
char URL_Covers2D[300]; char URL_Covers2D[300];
char URL_Covers3D[300]; char URL_Covers3D[300];

View File

@ -371,6 +371,7 @@ enum
PRIVSERV_NOSSL, PRIVSERV_NOSSL,
PRIVSERV_WIIMMFI, PRIVSERV_WIIMMFI,
PRIVSERV_ALTWFC, PRIVSERV_ALTWFC,
PRIVSERV_CUSTOM,
PRIVSERV_MAX_CHOICE PRIVSERV_MAX_CHOICE
}; };

View File

@ -127,7 +127,14 @@ static const char * PrivServText[] =
trNOOP( "OFF" ), trNOOP( "OFF" ),
trNOOP( "NoSSL only" ), trNOOP( "NoSSL only" ),
trNOOP( "Wiimmfi" ), 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) GameLoadSM::GameLoadSM(struct discHdr *hdr)
@ -193,6 +200,7 @@ void GameLoadSM::SetOptionNames()
Options->SetName(Idx++, "%s", tr( "Game Language" )); Options->SetName(Idx++, "%s", tr( "Game Language" ));
Options->SetName(Idx++, "%s", tr( "Ocarina" )); Options->SetName(Idx++, "%s", tr( "Ocarina" ));
Options->SetName(Idx++, "%s", tr( "Private Server" )); 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( "Parental Control" ));
Options->SetName(Idx++, "%s", tr( "Hooktype" )); Options->SetName(Idx++, "%s", tr( "Hooktype" ));
Options->SetName(Idx++, "%s", tr( "Wiird Debugger" )); Options->SetName(Idx++, "%s", tr( "Wiird Debugger" ));
@ -287,6 +295,12 @@ void GameLoadSM::SetOptionValues()
else else
Options->SetValue(Idx++, "%s", tr(PrivServText[GameConfig.PrivateServer])); 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 //! Settings: Parental Control
Options->SetValue(Idx++, "%s", tr(ParentalText[GameConfig.parentalcontrol])); Options->SetValue(Idx++, "%s", tr(ParentalText[GameConfig.parentalcontrol]));
@ -467,6 +481,21 @@ int GameLoadSM::GetMenuInternal()
if (++GameConfig.PrivateServer >= PRIVSERV_MAX_CHOICE) GameConfig.PrivateServer = INHERIT; 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 //! Settings: Parental Control
else if (ret == ++Idx) else if (ret == ++Idx)
{ {

View File

@ -183,7 +183,14 @@ static const char * PrivServText[] =
trNOOP( "OFF" ), trNOOP( "OFF" ),
trNOOP( "NoSSL only" ), trNOOP( "NoSSL only" ),
trNOOP( "Wiimmfi" ), 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() LoaderSettings::LoaderSettings()
@ -238,6 +245,7 @@ void LoaderSettings::SetOptionNames()
Options->SetName(Idx++, "%s", tr( "Patch Country Strings" )); Options->SetName(Idx++, "%s", tr( "Patch Country Strings" ));
Options->SetName(Idx++, "%s", tr( "Ocarina" )); Options->SetName(Idx++, "%s", tr( "Ocarina" ));
Options->SetName(Idx++, "%s", tr( "Private Server" )); 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( "Loader's IOS" ));
Options->SetName(Idx++, "%s", tr( "Game's IOS" )); Options->SetName(Idx++, "%s", tr( "Game's IOS" ));
Options->SetName(Idx++, "%s", tr( "Quick Boot" )); Options->SetName(Idx++, "%s", tr( "Quick Boot" ));
@ -337,6 +345,9 @@ void LoaderSettings::SetOptionValues()
//! Settings: Private Server //! Settings: Private Server
Options->SetValue(Idx++, "%s", tr( PrivServText[Settings.PrivateServer] )); Options->SetValue(Idx++, "%s", tr( PrivServText[Settings.PrivateServer] ));
//! Settings: Custom Address
Options->SetValue(Idx++, "%s", Settings.CustomAddress);
//! Settings: Loader's IOS //! Settings: Loader's IOS
if (Settings.godmode) if (Settings.godmode)
Options->SetValue(Idx++, "IOS %i", Settings.LoaderIOS); Options->SetValue(Idx++, "IOS %i", Settings.LoaderIOS);
@ -605,6 +616,21 @@ int LoaderSettings::GetMenuInternal()
if (++Settings.PrivateServer >= PRIVSERV_MAX_CHOICE) Settings.PrivateServer = 0; 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 //! Settings: Loader's IOS
else if (ret == ++Idx) else if (ret == ++Idx)
{ {

View File

@ -261,6 +261,7 @@ int GameBooter::BootGame(struct discHdr *gameHdr)
u8 languageChoice = game_cfg->language == INHERIT ? Settings.language : game_cfg->language; u8 languageChoice = game_cfg->language == INHERIT ? Settings.language : game_cfg->language;
u8 ocarinaChoice = game_cfg->ocarina == INHERIT ? Settings.ocarina : game_cfg->ocarina; u8 ocarinaChoice = game_cfg->ocarina == INHERIT ? Settings.ocarina : game_cfg->ocarina;
u8 PrivServChoice = game_cfg->PrivateServer == INHERIT ? Settings.PrivateServer : game_cfg->PrivateServer; 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 viChoice = game_cfg->vipatch == INHERIT ? Settings.videopatch : game_cfg->vipatch;
u8 sneekChoice = game_cfg->sneekVideoPatch == INHERIT ? Settings.sneekVideoPatch : game_cfg->sneekVideoPatch; u8 sneekChoice = game_cfg->sneekVideoPatch == INHERIT ? Settings.sneekVideoPatch : game_cfg->sneekVideoPatch;
u8 iosChoice = game_cfg->ios == INHERIT ? Settings.cios : game_cfg->ios; 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())); 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 codes
load_wip_code(gameHeader.id); 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 //! Also, the new Wiimmfi server patch should be loaded into memory after
//! the code handler and the cheat codes. //! 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 //! 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() //! 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(); PatchFix480p();
//! New Wiimmfi patch should be loaded last, after the codehandler, just before the call to the entry point //! 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: // all the cool new Wiimmfi stuff:
switch(do_new_wiimmfi()) { switch(do_new_wiimmfi())
{
case 0: case 0:
gprintf("Wiimmfi patch for Mario Kart Wii successful.\n"); gprintf("Wiimmfi patch for Mario Kart Wii successful.\n");
break; break;