From 23314d1d1a93c79fe96ffbc689a6c7def1c5e01e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Henrik=20Rydg=C3=A5rd?= Date: Sat, 23 Aug 2025 00:16:03 +0200 Subject: [PATCH 1/7] Add shortcut to access the remote debugger from the built-in devmenu --- Tools/langtool/src/main.rs | 3 +-- UI/DevScreens.cpp | 5 +++++ assets/lang/ar_AE.ini | 1 + assets/lang/az_AZ.ini | 1 + assets/lang/be_BY.ini | 1 + assets/lang/bg_BG.ini | 1 + assets/lang/ca_ES.ini | 1 + assets/lang/cz_CZ.ini | 1 + assets/lang/da_DK.ini | 1 + assets/lang/de_DE.ini | 1 + assets/lang/dr_ID.ini | 1 + assets/lang/en_US.ini | 1 + assets/lang/es_ES.ini | 1 + assets/lang/es_LA.ini | 1 + assets/lang/fa_IR.ini | 1 + assets/lang/fi_FI.ini | 1 + assets/lang/fr_FR.ini | 1 + assets/lang/gl_ES.ini | 1 + assets/lang/gr_EL.ini | 1 + assets/lang/he_IL.ini | 1 + assets/lang/he_IL_invert.ini | 1 + assets/lang/hr_HR.ini | 1 + assets/lang/hu_HU.ini | 1 + assets/lang/id_ID.ini | 1 + assets/lang/it_IT.ini | 1 + assets/lang/ja_JP.ini | 1 + assets/lang/jv_ID.ini | 1 + assets/lang/ko_KR.ini | 1 + assets/lang/ku_SO.ini | 1 + assets/lang/lo_LA.ini | 1 + assets/lang/lt-LT.ini | 1 + assets/lang/ms_MY.ini | 1 + assets/lang/nl_NL.ini | 1 + assets/lang/no_NO.ini | 1 + assets/lang/pl_PL.ini | 1 + assets/lang/pt_BR.ini | 1 + assets/lang/pt_PT.ini | 1 + assets/lang/ro_RO.ini | 1 + assets/lang/ru_RU.ini | 1 + assets/lang/sv_SE.ini | 1 + assets/lang/tg_PH.ini | 1 + assets/lang/th_TH.ini | 1 + assets/lang/tr_TR.ini | 1 + assets/lang/uk_UA.ini | 1 + assets/lang/vi_VN.ini | 1 + assets/lang/zh_CN.ini | 1 + assets/lang/zh_TW.ini | 1 + 47 files changed, 51 insertions(+), 2 deletions(-) diff --git a/Tools/langtool/src/main.rs b/Tools/langtool/src/main.rs index 751754219c..da5adabcf9 100644 --- a/Tools/langtool/src/main.rs +++ b/Tools/langtool/src/main.rs @@ -560,7 +560,6 @@ fn main() { let opt = Args::parse(); let api_key = std::env::var("OPENAI_API_KEY").ok(); - let ai = api_key.map(|key| chatgpt::ChatGPT::new(key, opt.model)); // TODO: Grab extra arguments from opt somehow. @@ -629,7 +628,7 @@ fn execute_command(cmd: Command, ai: Option<&ChatGPT>, dry_run: bool, verbose: b target_ini.write().unwrap(); } } else { - println!("AI key not set, skipping AI command."); + println!("FinishLanguageWithAI: AI key not set, skipping AI command."); } return; } diff --git a/UI/DevScreens.cpp b/UI/DevScreens.cpp index 9d7588e4e3..a9df67251c 100644 --- a/UI/DevScreens.cpp +++ b/UI/DevScreens.cpp @@ -156,6 +156,11 @@ void DevMenuScreen::CreatePopupContents(UI::ViewGroup *parent) { return UI::EVENT_DONE; }); + items->Add(new Choice(dev->T("Remote debugger")))->OnClick.Add([](UI::EventParams &e) { + System_LaunchUrl(LaunchUrlType::BROWSER_URL, "http://ppsspp-debugger.unknownbrackets.org/cpu"); // NOTE: https doesn't work + return UI::EVENT_DONE; + }); + items->Add(new Choice(sy->T("Developer Tools")))->OnClick.Handle(this, &DevMenuScreen::OnDeveloperTools); // Debug overlay diff --git a/assets/lang/ar_AE.ini b/assets/lang/ar_AE.ini index 017320d038..279d960f48 100644 --- a/assets/lang/ar_AE.ini +++ b/assets/lang/ar_AE.ini @@ -350,6 +350,7 @@ Off = Off Prev = ‎السابق Prevent loading overlays = Prevent loading overlays Random = ‎عشوائي +Remote debugger = مصحح أخطاء عن بُعد Replace textures = ‎إستبدال الرسوم Replacement texture load speed = Replacement texture load speed Reset = إعادة تشغيل diff --git a/assets/lang/az_AZ.ini b/assets/lang/az_AZ.ini index 7d947682c0..d51001f134 100644 --- a/assets/lang/az_AZ.ini +++ b/assets/lang/az_AZ.ini @@ -342,6 +342,7 @@ Off = Off Prev = Previous Prevent loading overlays = Prevent loading overlays Random = Random +Remote debugger = Uzaqdan debuqer Replace textures = Replace textures Replacement texture load speed = Replacement texture load speed Reset = Reset diff --git a/assets/lang/be_BY.ini b/assets/lang/be_BY.ini index a0288c862a..2da00c6f9d 100644 --- a/assets/lang/be_BY.ini +++ b/assets/lang/be_BY.ini @@ -344,6 +344,7 @@ Off = Off Prev = Previous Prevent loading overlays = Prevent loading overlays Random = Random +Remote debugger = Аддалены адладчык Replace textures = Replace textures Replacement texture load speed = Replacement texture load speed Reset = Скінуць diff --git a/assets/lang/bg_BG.ini b/assets/lang/bg_BG.ini index 3532ab5511..a45d0b800d 100644 --- a/assets/lang/bg_BG.ini +++ b/assets/lang/bg_BG.ini @@ -342,6 +342,7 @@ Off = Off Prev = Previous Prevent loading overlays = Prevent loading overlays Random = Random +Remote debugger = Отдален дебъгер Replace textures = Replace textures Replacement texture load speed = Replacement texture load speed Reset = Reset diff --git a/assets/lang/ca_ES.ini b/assets/lang/ca_ES.ini index b75c51d213..917c6c5a82 100644 --- a/assets/lang/ca_ES.ini +++ b/assets/lang/ca_ES.ini @@ -342,6 +342,7 @@ Off = Off Prev = Anterior Prevent loading overlays = Prevent loading overlays Random = Aleatori +Remote debugger = Depurador remot Replace textures = Reemplaçar textures Replacement texture load speed = Replacement texture load speed Reset = Reset diff --git a/assets/lang/cz_CZ.ini b/assets/lang/cz_CZ.ini index 05ea042a67..da9f0d7c8f 100644 --- a/assets/lang/cz_CZ.ini +++ b/assets/lang/cz_CZ.ini @@ -342,6 +342,7 @@ Off = Off Prev = Předchozí Prevent loading overlays = Prevent loading overlays Random = Náhodné +Remote debugger = Vzdálený ladicí program Replace textures = Replace textures Replacement texture load speed = Replacement texture load speed Reset = Reset diff --git a/assets/lang/da_DK.ini b/assets/lang/da_DK.ini index 7254c4f96f..8528d1f39c 100644 --- a/assets/lang/da_DK.ini +++ b/assets/lang/da_DK.ini @@ -342,6 +342,7 @@ Off = Off Prev = Forrige Prevent loading overlays = Prevent loading overlays Random = Tilfældig +Remote debugger = Fjern-debugger Replace textures = Erstat textures Replacement texture load speed = Replacement texture load speed Reset = Reset diff --git a/assets/lang/de_DE.ini b/assets/lang/de_DE.ini index a75d428fd2..d398776d26 100644 --- a/assets/lang/de_DE.ini +++ b/assets/lang/de_DE.ini @@ -336,6 +336,7 @@ No block = Kein Block Off = Aus Prev = Vorheriges Random = Zufall +Remote debugger = Fern-Debugger Replace textures = Texturen ersetzen Reset = Zurücksetzen Reset limited logging = Eingeschränkte Protokollierung zurücksetzen diff --git a/assets/lang/dr_ID.ini b/assets/lang/dr_ID.ini index f0aa2d023b..e39b9e33db 100644 --- a/assets/lang/dr_ID.ini +++ b/assets/lang/dr_ID.ini @@ -342,6 +342,7 @@ Off = Off Prev = Previous Prevent loading overlays = Prevent loading overlays Random = Random +Remote debugger = Debugger jarak jauh Replace textures = Replace textures Replacement texture load speed = Replacement texture load speed Reset = Reset diff --git a/assets/lang/en_US.ini b/assets/lang/en_US.ini index c509118957..5c20c6e8db 100644 --- a/assets/lang/en_US.ini +++ b/assets/lang/en_US.ini @@ -368,6 +368,7 @@ Off = Off Prev = Previous Prevent loading overlays = Prevent loading overlays Random = Random +Remote debugger = Remote debugger Replace textures = Replace textures Replacement texture load speed = Replacement texture load speed Reset = Reset diff --git a/assets/lang/es_ES.ini b/assets/lang/es_ES.ini index ba87a8851f..e4179eee6e 100644 --- a/assets/lang/es_ES.ini +++ b/assets/lang/es_ES.ini @@ -345,6 +345,7 @@ Off = Deshabilitar Prev = Anterior Prevent loading overlays = Evitar la carga de superposiciones Random = Aleatorio +Remote debugger = Depurador remoto Replace textures = Remplazar texturas Replacement texture load speed = Velocidad de carga de texturas de reemplazo Reset = Restablecer diff --git a/assets/lang/es_LA.ini b/assets/lang/es_LA.ini index e70c793403..48e4c59715 100644 --- a/assets/lang/es_LA.ini +++ b/assets/lang/es_LA.ini @@ -342,6 +342,7 @@ Off = Off Prev = Atras Prevent loading overlays = Prevent loading overlays Random = Aleatorio +Remote debugger = Depurador remoto Replace textures = Remplazar texturas Replacement texture load speed = Replacement texture load speed Reset = Reset diff --git a/assets/lang/fa_IR.ini b/assets/lang/fa_IR.ini index ed99cfac2a..d690fda141 100644 --- a/assets/lang/fa_IR.ini +++ b/assets/lang/fa_IR.ini @@ -342,6 +342,7 @@ Off = Off Prev = قبلی Prevent loading overlays = Prevent loading overlays Random = شانسی +Remote debugger = دیباگر از راه دور Replace textures = جایگزین کردن بافت Replacement texture load speed = Replacement texture load speed Reset = ریست diff --git a/assets/lang/fi_FI.ini b/assets/lang/fi_FI.ini index 13c4e656ed..1cbc978a77 100644 --- a/assets/lang/fi_FI.ini +++ b/assets/lang/fi_FI.ini @@ -342,6 +342,7 @@ Off = Off Prev = Previous Prevent loading overlays = Prevent loading overlays Random = Random +Remote debugger = Etädebuggeri Replace textures = Replace textures Replacement texture load speed = Replacement texture load speed Reset = Reset diff --git a/assets/lang/fr_FR.ini b/assets/lang/fr_FR.ini index 7a458bdd09..7ccad20bdf 100644 --- a/assets/lang/fr_FR.ini +++ b/assets/lang/fr_FR.ini @@ -342,6 +342,7 @@ Off = Off Prev = Précédent Prevent loading overlays = Prevent loading overlays Random = Aléatoire +Remote debugger = Débogueur à distance Replace textures = Remplacer les textures Replacement texture load speed = Replacement texture load speed Reset = Reset diff --git a/assets/lang/gl_ES.ini b/assets/lang/gl_ES.ini index 8d02d27668..a557699d83 100644 --- a/assets/lang/gl_ES.ini +++ b/assets/lang/gl_ES.ini @@ -342,6 +342,7 @@ Off = Off Prev = Anterior Prevent loading overlays = Prevent loading overlays Random = Aleatorio +Remote debugger = Depurador remoto Replace textures = Replace textures Replacement texture load speed = Replacement texture load speed Reset = Reset diff --git a/assets/lang/gr_EL.ini b/assets/lang/gr_EL.ini index cf98e087c9..98eaafe5fa 100644 --- a/assets/lang/gr_EL.ini +++ b/assets/lang/gr_EL.ini @@ -342,6 +342,7 @@ Off = Off Prev = Προηγούμενο Prevent loading overlays = Prevent loading overlays Random = Τυχαίο +Remote debugger = Απομακρυσμένος αποσφαλματωτής Replace textures = Αντικαταστήστε τις υφές Replacement texture load speed = Replacement texture load speed Reset = Reset diff --git a/assets/lang/he_IL.ini b/assets/lang/he_IL.ini index 858aceee52..4d1b28eb5e 100644 --- a/assets/lang/he_IL.ini +++ b/assets/lang/he_IL.ini @@ -342,6 +342,7 @@ Off = Off Prev = Previous Prevent loading overlays = Prevent loading overlays Random = Random +Remote debugger = מאבחן מרחוק Replace textures = Replace textures Replacement texture load speed = Replacement texture load speed Reset = Reset diff --git a/assets/lang/he_IL_invert.ini b/assets/lang/he_IL_invert.ini index a856760124..9c8c9d7682 100644 --- a/assets/lang/he_IL_invert.ini +++ b/assets/lang/he_IL_invert.ini @@ -342,6 +342,7 @@ Off = Off Prev = Previous Prevent loading overlays = Prevent loading overlays Random = Random +Remote debugger = מרחוק מאבחן Replace textures = Replace textures Replacement texture load speed = Replacement texture load speed Reset = Reset diff --git a/assets/lang/hr_HR.ini b/assets/lang/hr_HR.ini index 872e334139..c7173febfc 100644 --- a/assets/lang/hr_HR.ini +++ b/assets/lang/hr_HR.ini @@ -342,6 +342,7 @@ Off = Off Prev = Prošlo Prevent loading overlays = Prevent loading overlays Random = Nasumično +Remote debugger = Udaljeni debager Replace textures = Zamijeni teksture Replacement texture load speed = Replacement texture load speed Reset = Reset diff --git a/assets/lang/hu_HU.ini b/assets/lang/hu_HU.ini index c2d419521a..66fe97ba39 100644 --- a/assets/lang/hu_HU.ini +++ b/assets/lang/hu_HU.ini @@ -342,6 +342,7 @@ Off = Ki Prev = Előző Prevent loading overlays = Prevent loading overlays Random = Véletlenszerű +Remote debugger = Távhibernáló Replace textures = Textúrák kicserélése Replacement texture load speed = Replacement texture load speed Reset = Visszaállít diff --git a/assets/lang/id_ID.ini b/assets/lang/id_ID.ini index db0a517a18..1bd4bbc43e 100644 --- a/assets/lang/id_ID.ini +++ b/assets/lang/id_ID.ini @@ -342,6 +342,7 @@ Off = Off Prev = Sebelum Prevent loading overlays = Prevent loading overlays Random = Acak +Remote debugger = Debugger jarak jauh Replace textures = Ganti tekstur Replacement texture load speed = Replacement texture load speed Reset = Atur ulang diff --git a/assets/lang/it_IT.ini b/assets/lang/it_IT.ini index d145a5038a..f339b64755 100644 --- a/assets/lang/it_IT.ini +++ b/assets/lang/it_IT.ini @@ -342,6 +342,7 @@ Off = Disattiva Prev = Indietro Prevent loading overlays = Prevent loading overlays Random = Casuale +Remote debugger = Debug remoto Replace textures = Sostituisci texture Replacement texture load speed = Replacement texture load speed Reset = Reset diff --git a/assets/lang/ja_JP.ini b/assets/lang/ja_JP.ini index ca7ed6db6e..58b28cdb2b 100644 --- a/assets/lang/ja_JP.ini +++ b/assets/lang/ja_JP.ini @@ -342,6 +342,7 @@ Off = Off Prev = 前へ Prevent loading overlays = オーバーレイの読み込みを防止する Random = ランダム +Remote debugger = リモートデバッガ Replace textures = テクスチャを置き換える Replacement texture load speed = 置き換えテクスチャの読み込み速度 Reset = リセット diff --git a/assets/lang/jv_ID.ini b/assets/lang/jv_ID.ini index 6c24abb77e..c3a8f41102 100644 --- a/assets/lang/jv_ID.ini +++ b/assets/lang/jv_ID.ini @@ -342,6 +342,7 @@ Off = Off Prev = Sadurunge Prevent loading overlays = Prevent loading overlays Random = Acak +Remote debugger = Debugger jarak jauh Replace textures = Replace textures Replacement texture load speed = Replacement texture load speed Reset = Reset diff --git a/assets/lang/ko_KR.ini b/assets/lang/ko_KR.ini index b2cb8cde39..4fd5a622c0 100644 --- a/assets/lang/ko_KR.ini +++ b/assets/lang/ko_KR.ini @@ -344,6 +344,7 @@ Off = 끔 Prev = 이전 Prevent loading overlays = 오버레이 로딩 방지 Random = 랜덤 +Remote debugger = 원격 디버거 Replace textures = 텍스처 교체 Replacement texture load speed = 교체 텍스처 로드 속도 Reset = 재설정 diff --git a/assets/lang/ku_SO.ini b/assets/lang/ku_SO.ini index c09f16559f..c5b4975a37 100644 --- a/assets/lang/ku_SO.ini +++ b/assets/lang/ku_SO.ini @@ -358,6 +358,7 @@ Off = Off Prev = Previous Prevent loading overlays = Prevent loading overlays Random = Random +Remote debugger = Debugkerê dûr Replace textures = Replace textures Replacement texture load speed = Replacement texture load speed Reset = Reset diff --git a/assets/lang/lo_LA.ini b/assets/lang/lo_LA.ini index 029da7b311..d9764451c0 100644 --- a/assets/lang/lo_LA.ini +++ b/assets/lang/lo_LA.ini @@ -342,6 +342,7 @@ Off = Off Prev = ກ່ອນໜ້າ Prevent loading overlays = Prevent loading overlays Random = ສຸມ +Remote debugger = ອະທິບາຍສົດຕໍ່ສຽ Replace textures = ແທນທີ່ພື້ນຜິວ Replacement texture load speed = Replacement texture load speed Reset = Reset diff --git a/assets/lang/lt-LT.ini b/assets/lang/lt-LT.ini index 8a17d637a4..3501cf512e 100644 --- a/assets/lang/lt-LT.ini +++ b/assets/lang/lt-LT.ini @@ -342,6 +342,7 @@ Off = Off Prev = Previous Prevent loading overlays = Prevent loading overlays Random = Random +Remote debugger = Nuotolinis derintuvas Replace textures = Replace textures Replacement texture load speed = Replacement texture load speed Reset = Reset diff --git a/assets/lang/ms_MY.ini b/assets/lang/ms_MY.ini index f18152efb5..b874e4a113 100644 --- a/assets/lang/ms_MY.ini +++ b/assets/lang/ms_MY.ini @@ -342,6 +342,7 @@ Off = Off Prev = Previous Prevent loading overlays = Prevent loading overlays Random = Rawak +Remote debugger = Pengdis debug jauh Replace textures = Replace textures Replacement texture load speed = Replacement texture load speed Reset = Reset diff --git a/assets/lang/nl_NL.ini b/assets/lang/nl_NL.ini index 2ed6ce75d7..6ec5477af6 100644 --- a/assets/lang/nl_NL.ini +++ b/assets/lang/nl_NL.ini @@ -342,6 +342,7 @@ Off = Off Prev = Vorige Prevent loading overlays = Prevent loading overlays Random = Willekeurig +Remote debugger = Op afstand debugger Replace textures = Textures vervangen Replacement texture load speed = Replacement texture load speed Reset = Reset diff --git a/assets/lang/no_NO.ini b/assets/lang/no_NO.ini index 13594e8c91..f261921c4a 100644 --- a/assets/lang/no_NO.ini +++ b/assets/lang/no_NO.ini @@ -342,6 +342,7 @@ Off = Off Prev = Previous Prevent loading overlays = Prevent loading overlays Random = Random +Remote debugger = Fjernfeilfinner Replace textures = Replace textures Replacement texture load speed = Replacement texture load speed Reset = Reset diff --git a/assets/lang/pl_PL.ini b/assets/lang/pl_PL.ini index ae9b9f240a..6977d3d527 100644 --- a/assets/lang/pl_PL.ini +++ b/assets/lang/pl_PL.ini @@ -343,6 +343,7 @@ Off = Wyłączone Prev = Poprzedni Prevent loading overlays = Zapobiegaj ładowaniu nakładek Random = Przypadkowy +Remote debugger = Zdalny debuger Replace textures = Podmiana tekstur Replacement texture load speed = Prędkość ładowania zamiennych tekstur Reset = Reset diff --git a/assets/lang/pt_BR.ini b/assets/lang/pt_BR.ini index f8740a147c..1217a5dfac 100644 --- a/assets/lang/pt_BR.ini +++ b/assets/lang/pt_BR.ini @@ -370,6 +370,7 @@ Off = Desligado Prev = Anterior Prevent loading overlays = Impedir as sobreposições do carregamento Random = Aleatório +Remote debugger = Depurador remoto Replace textures = Substituir texturas Replacement texture load speed = Velocidade do carregamento da substituição das texturas Reset = Resetar diff --git a/assets/lang/pt_PT.ini b/assets/lang/pt_PT.ini index 1955b00dd1..b5dc45c7bb 100644 --- a/assets/lang/pt_PT.ini +++ b/assets/lang/pt_PT.ini @@ -366,6 +366,7 @@ Off = Off Prev = Anterior Prevent loading overlays = Prevent loading overlays Random = Aleatório +Remote debugger = Depurador remoto Replace textures = Substituir texturas Replacement texture load speed = Replacement texture load speed Reset = Reiniciar diff --git a/assets/lang/ro_RO.ini b/assets/lang/ro_RO.ini index 76b8967d70..3fe9112da4 100644 --- a/assets/lang/ro_RO.ini +++ b/assets/lang/ro_RO.ini @@ -343,6 +343,7 @@ Off = Off Prev = Previous Prevent loading overlays = Prevent loading overlays Random = Random +Remote debugger = Debuger la distanță Replace textures = Replace textures Replacement texture load speed = Replacement texture load speed Reset = Reset diff --git a/assets/lang/ru_RU.ini b/assets/lang/ru_RU.ini index 90fbdd0009..f49900e7fe 100644 --- a/assets/lang/ru_RU.ini +++ b/assets/lang/ru_RU.ini @@ -342,6 +342,7 @@ Off = Выкл. Prev = Предыдущий Prevent loading overlays = Запретить загрузку оверлеев Random = Случайный +Remote debugger = Удаленный отладчик Replace textures = Подменять текстуры Replacement texture load speed = Скорость загрузки заменяющей текстуры Reset = Сбросить diff --git a/assets/lang/sv_SE.ini b/assets/lang/sv_SE.ini index d0577897bb..5bf90dc62e 100644 --- a/assets/lang/sv_SE.ini +++ b/assets/lang/sv_SE.ini @@ -342,6 +342,7 @@ Off = Av Prev = Föregående Prevent loading overlays = Prevent loading overlays Random = Slumpa +Remote debugger = Fjärrdebugger Replace textures = Ersätt texturer Replacement texture load speed = Laddningshastighet för ersättningstexturer Reset = Nollställ diff --git a/assets/lang/tg_PH.ini b/assets/lang/tg_PH.ini index c2e88c3251..3cae863e99 100644 --- a/assets/lang/tg_PH.ini +++ b/assets/lang/tg_PH.ini @@ -343,6 +343,7 @@ Off = Nakapatay Prev = Nagdaan Prevent loading overlays = Prevent loading overlays Random = Random +Remote debugger = Дебагери дарои Replace textures = Palitan ang mga textures Replacement texture load speed = Replacement texture load speed Reset = Ulitin diff --git a/assets/lang/th_TH.ini b/assets/lang/th_TH.ini index 46ec128d49..3680045e5f 100644 --- a/assets/lang/th_TH.ini +++ b/assets/lang/th_TH.ini @@ -356,6 +356,7 @@ Prev = ถอยกลับ Prevent loading overlays = ป้องกันการโหลดซ้อนทับ PRX = ไฟล์ PRX Random = สุ่ม +Remote debugger = ตัวดีบักระยะไกล Replace textures = แทนที่เท็คเจอร์จากแหล่งที่เก็บข้อมูล Replacement texture load speed = ความเร็วในการโหลดไฟล์เท็คเจอร์แพ็ค Reset = คืนค่า diff --git a/assets/lang/tr_TR.ini b/assets/lang/tr_TR.ini index 15ee922177..eea6a2f907 100644 --- a/assets/lang/tr_TR.ini +++ b/assets/lang/tr_TR.ini @@ -344,6 +344,7 @@ Off = Kapalı Prev = Önceki Prevent loading overlays = Kaplamaların yüklenmesini önle Random = Rastgele +Remote debugger = Uzaktan hata ayıklayıcı Replace textures = Dokuları Değiştir Replacement texture load speed = Yedek doku yükleme hızı Reset = Sıfırla diff --git a/assets/lang/uk_UA.ini b/assets/lang/uk_UA.ini index 5a6f97624e..04ef70ca95 100644 --- a/assets/lang/uk_UA.ini +++ b/assets/lang/uk_UA.ini @@ -342,6 +342,7 @@ Off = Вимкнути Prev = Попередній Prevent loading overlays = Prevent loading overlays Random = Випадковий +Remote debugger = Віддалений дебагер Replace textures = Заміна текстур Replacement texture load speed = Швидкість завантаження текстур заміни Reset = Скинути diff --git a/assets/lang/vi_VN.ini b/assets/lang/vi_VN.ini index f6c04ebc23..c4a7fac41b 100644 --- a/assets/lang/vi_VN.ini +++ b/assets/lang/vi_VN.ini @@ -342,6 +342,7 @@ Off = Off Prev = Trở lại Prevent loading overlays = Prevent loading overlays Random = Ngẫu nhiên +Remote debugger = Bộ gỡ lỗi từ xa Replace textures = Thay thế textures Replacement texture load speed = Replacement texture load speed Reset = Reset diff --git a/assets/lang/zh_CN.ini b/assets/lang/zh_CN.ini index ca4a4f258c..7cb8a165ed 100644 --- a/assets/lang/zh_CN.ini +++ b/assets/lang/zh_CN.ini @@ -342,6 +342,7 @@ Off = 关闭 Prev = 之前 Prevent loading overlays = 防止加载重叠 Random = 随机 +Remote debugger = 远程调试器 Replace textures = 纹理替换 Replacement texture load speed = 替换纹理加载速度 Reset = 重置 diff --git a/assets/lang/zh_TW.ini b/assets/lang/zh_TW.ini index 6471b3bc43..1741fe4002 100644 --- a/assets/lang/zh_TW.ini +++ b/assets/lang/zh_TW.ini @@ -342,6 +342,7 @@ Off = 關閉 Prev = 上一個 Prevent loading overlays = 防止載入重疊 Random = 隨機 +Remote debugger = 遠程除錯器 Replace textures = 取代紋理 Replacement texture load speed = 取代紋理載入速度 Reset = 重設 From 7a93d0d56cf758d832bc7da8b67323cc7d50b868 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Henrik=20Rydg=C3=A5rd?= Date: Sat, 23 Aug 2025 00:27:01 +0200 Subject: [PATCH 2/7] Remove unneeded assert that was causing nemo problems --- Core/MIPS/MIPSAnalyst.cpp | 2 -- 1 file changed, 2 deletions(-) diff --git a/Core/MIPS/MIPSAnalyst.cpp b/Core/MIPS/MIPSAnalyst.cpp index f0db53e7db..c7fed20c6b 100644 --- a/Core/MIPS/MIPSAnalyst.cpp +++ b/Core/MIPS/MIPSAnalyst.cpp @@ -1220,8 +1220,6 @@ skip: } void ForgetFunctions(u32 startAddr, u32 endAddr) { - _assert_(((startAddr | endAddr) & 3) == 0); - std::lock_guard guard(functions_lock); // It makes sense to forget functions as modules are unloaded but it breaks From f6050a442c961b7110f95f13573ea44269e73d5d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Henrik=20Rydg=C3=A5rd?= Date: Sun, 24 Aug 2025 10:26:36 +0200 Subject: [PATCH 3/7] Fix serving the remote debugger locally, add a setting for the auto-launcher --- Common/Net/HTTPServer.cpp | 2 +- Common/Net/HTTPServer.h | 4 ++-- Common/Thread/ThreadUtil.cpp | 1 + Core/Config.cpp | 1 + Core/Config.h | 3 ++- Core/WebServer.cpp | 45 +++++++++++++++++++++--------------- Core/WebServer.h | 1 + UI/DevScreens.cpp | 18 +++++++++++---- UI/DeveloperToolsScreen.cpp | 3 +++ 9 files changed, 52 insertions(+), 26 deletions(-) diff --git a/Common/Net/HTTPServer.cpp b/Common/Net/HTTPServer.cpp index 8b46331755..5729bb34b1 100644 --- a/Common/Net/HTTPServer.cpp +++ b/Common/Net/HTTPServer.cpp @@ -335,7 +335,7 @@ void Server::HandleRequest(const ServerRequest &request) { } void Server::HandleRequestDefault(const ServerRequest &request) { - if (request.resource() == nullptr) { + if (request.resource().empty()) { fallback_(request); return; } diff --git a/Common/Net/HTTPServer.h b/Common/Net/HTTPServer.h index be655fca38..4f117069ae 100644 --- a/Common/Net/HTTPServer.h +++ b/Common/Net/HTTPServer.h @@ -30,7 +30,7 @@ public: ServerRequest(int fd); ~ServerRequest(); - const char *resource() const { + std::string_view resource() const { return header_.resource; } @@ -76,7 +76,7 @@ public: virtual ~Server(); typedef std::function UrlHandlerFunc; - typedef std::map UrlHandlerMap; + typedef std::map> UrlHandlerMap; // Runs forever, serving request. If you want to do something else than serve pages, // better put this on a thread. Returns false if failed to start serving, never diff --git a/Common/Thread/ThreadUtil.cpp b/Common/Thread/ThreadUtil.cpp index 3e7a809e8b..e6e9c7314a 100644 --- a/Common/Thread/ThreadUtil.cpp +++ b/Common/Thread/ThreadUtil.cpp @@ -211,6 +211,7 @@ void AssertCurrentThreadName(const char *threadName) { #ifdef TLS_SUPPORTED if (strcmp(curThreadName, threadName) != 0) { ERROR_LOG(Log::System, "Thread name assert failed: Expected %s, was %s", threadName, curThreadName); + _dbg_assert_msg_(false, "Thread name assert failed: Expected %s, was %s", threadName, curThreadName); } #endif } diff --git a/Core/Config.cpp b/Core/Config.cpp index 511e2fb370..7c6b4d4fe6 100644 --- a/Core/Config.cpp +++ b/Core/Config.cpp @@ -300,6 +300,7 @@ static const ConfigSetting generalSettings[] = { ConfigSetting("RemoteShareOnStartup", &g_Config.bRemoteShareOnStartup, false, CfgFlag::DEFAULT), ConfigSetting("RemoteISOSubdir", &g_Config.sRemoteISOSubdir, "/", CfgFlag::DEFAULT), ConfigSetting("RemoteDebuggerOnStartup", &g_Config.bRemoteDebuggerOnStartup, false, CfgFlag::DEFAULT), + ConfigSetting("RemoteDebuggerLocal", &g_Config.bRemoteDebuggerLocal, false, CfgFlag::DEFAULT), ConfigSetting("RemoteTab", &g_Config.bRemoteTab, false, CfgFlag::DEFAULT), ConfigSetting("RemoteISOSharedDir", &g_Config.sRemoteISOSharedDir, "", CfgFlag::DEFAULT), ConfigSetting("RemoteISOShareType", &g_Config.iRemoteISOShareType, (int)RemoteISOShareType::RECENT, CfgFlag::DEFAULT), diff --git a/Core/Config.h b/Core/Config.h index efd69c9288..d3e42c8bbc 100644 --- a/Core/Config.h +++ b/Core/Config.h @@ -125,7 +125,7 @@ public: bool bAutoSaveSymbolMap; bool bCompressSymbols; bool bCacheFullIsoInRam; - int iRemoteISOPort; + int iRemoteISOPort; // Also used for serving a local remote debugger. std::string sLastRemoteISOServer; int iLastRemoteISOPort; bool bRemoteISOManual; @@ -134,6 +134,7 @@ public: std::string sRemoteISOSharedDir; int iRemoteISOShareType; bool bRemoteDebuggerOnStartup; + bool bRemoteDebuggerLocal; bool bRemoteTab; bool bMemStickInserted; int iMemStickSizeGB; diff --git a/Core/WebServer.cpp b/Core/WebServer.cpp index 1b6fe10c65..0c46659e69 100644 --- a/Core/WebServer.cpp +++ b/Core/WebServer.cpp @@ -170,7 +170,7 @@ static std::string RemotePathForRecent(const std::string &filename) { return std::string(); } -static Path LocalFromRemotePath(const std::string &path) { +static Path LocalFromRemotePath(const std::string_view &path) { switch ((RemoteISOShareType)g_Config.iRemoteISOShareType) { case RemoteISOShareType::RECENT: for (const std::string &filename : g_recentFiles.GetRecentFiles()) { @@ -281,7 +281,7 @@ static void HandleListing(const http::ServerRequest &request) { { std::vector entries; - std::string resource = request.resource(); + std::string resource(request.resource()); Path localDir = LocalFromRemotePath(resource); File::GetFilesInDir(localDir, &entries); @@ -308,12 +308,13 @@ static void HandleListing(const http::ServerRequest &request) { static bool ServeDebuggerFile(const http::ServerRequest &request) { // Skip the slash at the start of the resource path. - const char *filename = request.resource() + 1; - if (strstr(filename, "..") != nullptr) + std::string_view filename = request.resource().substr(1); + if (filename.find("..") != std::string_view::npos) return false; size_t size; - uint8_t *data = g_VFS.ReadFile(filename, &size); + // TODO: ReadFile should take a string_view. + uint8_t *data = g_VFS.ReadFile(std::string(filename).c_str(), &size); if (!data) return false; @@ -351,10 +352,24 @@ static void HandleFallback(const http::ServerRequest &request) { AndroidJNIThreadContext jniContext; + if ((serverFlags & (int)WebServerFlags::DEBUGGER) != 0) { + if (request.resource() == "/debugger/") { + RedirectToDebugger(request); + return; + } + + // Actually serve debugger files. + if (startsWith(request.resource(), "/debugger/")) { + if (ServeDebuggerFile(request)) { + return; + } + } + } + if (serverFlags & (int)WebServerFlags::DISCS) { - std::string resource = request.resource(); + std::string_view resource = request.resource(); Path localPath = LocalFromRemotePath(resource); - INFO_LOG(Log::Loader, "Serving %s from %s", resource.c_str(), localPath.c_str()); + INFO_LOG(Log::Loader, "Serving %.*s from %s", (int)resource.size(), resource.data(), localPath.c_str()); if (!localPath.empty()) { if (File::IsDirectory(localPath)) { HandleListing(request); @@ -365,16 +380,6 @@ static void HandleFallback(const http::ServerRequest &request) { } } - if ((serverFlags & (int)WebServerFlags::DEBUGGER) != 0) { - if (!strcmp(request.resource(), "/debugger/")) { - RedirectToDebugger(request); - return; - } - - if (startsWith(request.resource(), "/debugger/") && ServeDebuggerFile(request)) - return; - } - static const std::string payload = "404 not found\r\n"; request.WriteHttpResponseHeader("1.0", 404, payload.size(), "text/plain"); request.Out()->Push(payload); @@ -410,7 +415,7 @@ static void ExecuteWebServer() { auto http = new http::Server(new NewThreadExecutor()); http->RegisterHandler("/", &HandleListing); - // This lists all the (current) recent ISOs. + // This lists all the (current) recent ISOs. It also handles the debugger, which is very ugly. http->SetFallbackHandler(&HandleFallback); http->RegisterHandler("/debugger", &ForwardDebuggerRequest); @@ -501,3 +506,7 @@ void ShutdownWebServer() { serverThread.join(); serverStatus = ServerStatus::STOPPED; } + +bool WebServerRunning(WebServerFlags flags) { + return RetrieveStatus() == ServerStatus::RUNNING && (serverFlags & (int)flags) != 0; +} diff --git a/Core/WebServer.h b/Core/WebServer.h index 0e9f6abe34..cd0d2cc3ec 100644 --- a/Core/WebServer.h +++ b/Core/WebServer.h @@ -32,6 +32,7 @@ bool StartWebServer(WebServerFlags flags); bool StopWebServer(WebServerFlags flags); bool WebServerStopping(WebServerFlags flags); bool WebServerStopped(WebServerFlags flags); +bool WebServerRunning(WebServerFlags flags); void ShutdownWebServer(); bool RemoteISOFileSupported(const std::string &filename); diff --git a/UI/DevScreens.cpp b/UI/DevScreens.cpp index a9df67251c..f1af96eba6 100644 --- a/UI/DevScreens.cpp +++ b/UI/DevScreens.cpp @@ -53,6 +53,7 @@ #include "Common/StringUtils.h" #include "Common/GPU/ShaderWriter.h" +#include "Core/WebServer.h" #include "Core/MemMap.h" #include "Core/Config.h" #include "Core/ConfigValues.h" @@ -156,10 +157,19 @@ void DevMenuScreen::CreatePopupContents(UI::ViewGroup *parent) { return UI::EVENT_DONE; }); - items->Add(new Choice(dev->T("Remote debugger")))->OnClick.Add([](UI::EventParams &e) { - System_LaunchUrl(LaunchUrlType::BROWSER_URL, "http://ppsspp-debugger.unknownbrackets.org/cpu"); // NOTE: https doesn't work - return UI::EVENT_DONE; - }); + if (WebServerRunning(WebServerFlags::DEBUGGER)) { + items->Add(new Choice(dev->T("Remote debugger")))->OnClick.Add([](UI::EventParams &e) { + int port = g_Config.iRemoteISOPort; // Also used for serving a local remote debugger. + if (g_Config.bRemoteDebuggerLocal) { + char uri[64]; + snprintf(uri, sizeof(uri), "http://localhost:%d/debugger/", port); + System_LaunchUrl(LaunchUrlType::BROWSER_URL, uri); + } else { + System_LaunchUrl(LaunchUrlType::BROWSER_URL, "http://ppsspp-debugger.unknownbrackets.org/cpu"); // NOTE: https doesn't work + } + return UI::EVENT_DONE; + }); + } items->Add(new Choice(sy->T("Developer Tools")))->OnClick.Handle(this, &DevMenuScreen::OnDeveloperTools); diff --git a/UI/DeveloperToolsScreen.cpp b/UI/DeveloperToolsScreen.cpp index 457b9708e5..ee4e363aa6 100644 --- a/UI/DeveloperToolsScreen.cpp +++ b/UI/DeveloperToolsScreen.cpp @@ -170,6 +170,9 @@ void DeveloperToolsScreen::CreateGeneralTab(UI::LinearLayout *list) { list->Add(allowDebugger)->OnClick.Handle(this, &DeveloperToolsScreen::OnRemoteDebugger); allowDebugger->SetEnabledPtr(&canAllowDebugger_); + CheckBox *localDebugger = list->Add(new CheckBox(&g_Config.bRemoteDebuggerLocal, dev->T("Use locally hosted debugger"))); + localDebugger->SetEnabledPtr(&allowDebugger_); + list->Add(new Choice(dev->T("GPI/GPO switches/LEDs")))->OnClick.Add([=](UI::EventParams &e) { screenManager()->push(new GPIGPOScreen(dev->T("GPI/GPO switches/LEDs"))); return UI::EVENT_DONE; From a107d75e38fa9040892da4255bbf959ea4296f5e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Henrik=20Rydg=C3=A5rd?= Date: Sun, 24 Aug 2025 10:27:01 +0200 Subject: [PATCH 4/7] Fix lifecycle-notification assert problem (was called from wrong thread) --- Core/Core.cpp | 3 +++ Core/System.cpp | 4 ++-- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/Core/Core.cpp b/Core/Core.cpp index e7a256b281..e7112c24e6 100644 --- a/Core/Core.cpp +++ b/Core/Core.cpp @@ -26,6 +26,7 @@ #include "Common/Profiler/Profiler.h" #include "Common/GraphicsContext.h" +#include "Common/Thread/ThreadUtil.h" #include "Common/Log.h" #include "Core/Core.h" #include "Core/Config.h" @@ -143,6 +144,8 @@ void Core_ListenLifecycle(CoreLifecycleFunc func) { } void Core_NotifyLifecycle(CoreLifecycle stage) { + AssertCurrentThreadName("EmuThread"); + if (stage == CoreLifecycle::STARTING) { Core_ResetException(); } diff --git a/Core/System.cpp b/Core/System.cpp index 627c4c686d..39292b3cc3 100644 --- a/Core/System.cpp +++ b/Core/System.cpp @@ -585,6 +585,8 @@ bool PSP_InitStart(const CoreParameter &coreParam) { _assert_msg_(!g_loadingThread.joinable(), "%s", coreParam.fileToStart.c_str()); + Core_NotifyLifecycle(CoreLifecycle::STARTING); + g_loadingThread = std::thread([error_string]() { SetCurrentThreadName("ExecLoader"); @@ -592,8 +594,6 @@ bool PSP_InitStart(const CoreParameter &coreParam) { NOTICE_LOG(Log::Boot, "PPSSPP %s", PPSSPP_GIT_VERSION); - Core_NotifyLifecycle(CoreLifecycle::STARTING); - Path filename = g_CoreParameter.fileToStart; FileLoader *loadedFile = ResolveFileLoaderTarget(ConstructFileLoader(filename)); From 58198dae6c4768420d0ca0867448fec04b5511f9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Henrik=20Rydg=C3=A5rd?= Date: Sun, 24 Aug 2025 10:35:28 +0200 Subject: [PATCH 5/7] Bump langtool cargo.lock, update comment --- Tools/langtool/Cargo.lock | 47 ++++++++++++++++++++------------------- UI/DevScreens.cpp | 1 + 2 files changed, 25 insertions(+), 23 deletions(-) diff --git a/Tools/langtool/Cargo.lock b/Tools/langtool/Cargo.lock index eacaba3f89..ee3aa8f6f9 100644 --- a/Tools/langtool/Cargo.lock +++ b/Tools/langtool/Cargo.lock @@ -114,9 +114,9 @@ checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a" [[package]] name = "bitflags" -version = "2.9.2" +version = "2.9.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6a65b545ab31d687cff52899d4890855fec459eb6afe0da6417b8a18da87aa29" +checksum = "34efbcccd345379ca2868b2b2c9d3782e9cc58ba87bc7d79d5b53d9c9ae6f25d" [[package]] name = "block" @@ -138,9 +138,9 @@ checksum = "d71b6127be86fdcfddb610f7182ac57211d4b18a3e9c82eb2d17662f2227ad6a" [[package]] name = "cc" -version = "1.2.33" +version = "1.2.34" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3ee0f8803222ba5a7e2777dd72ca451868909b1ac410621b676adf07280e9b5f" +checksum = "42bc4aea80032b7bf409b0bc7ccad88853858911b7713a8062fdc0623867bedc" dependencies = [ "shlex", ] @@ -336,9 +336,9 @@ checksum = "00b0228411908ca8685dba7fc2cdd70ec9990a6e753e89b6ac91a84c40fbaf4b" [[package]] name = "form_urlencoded" -version = "1.2.1" +version = "1.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e13624c2627564efccf4934284bdd98cbaa14e79b0b5a141218e507b3a823456" +checksum = "cb4cb245038516f5f85277875cdaa4f7d2c9a0fa0468de06ed190163b1581fcf" dependencies = [ "percent-encoding", ] @@ -671,9 +671,9 @@ dependencies = [ [[package]] name = "idna" -version = "1.0.3" +version = "1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "686f825264d630750a544639377bae737628043f20d38bbc029e8f29ea968a7e" +checksum = "3b0875f23caa03898994f6ddc501886a45c7d3d62d04d2d90788d47be1b1e4de" dependencies = [ "idna_adapter", "smallvec", @@ -692,9 +692,9 @@ dependencies = [ [[package]] name = "indexmap" -version = "2.10.0" +version = "2.11.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fe4cd85333e22411419a0bcae1297d25e58c9443848b11dc6a86fefe8c78a661" +checksum = "f2481980430f9f78649238835720ddccc57e52df14ffce1c6f37391d61b563e9" dependencies = [ "equivalent", "hashbrown", @@ -702,11 +702,11 @@ dependencies = [ [[package]] name = "io-uring" -version = "0.7.9" +version = "0.7.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d93587f37623a1a17d94ef2bc9ada592f5465fe7732084ab7beefabe5c77c0c4" +checksum = "046fa2d4d00aea763528b4950358d0ead425372445dc8ff86312b3c69ff7727b" dependencies = [ - "bitflags 2.9.2", + "bitflags 2.9.3", "cfg-if", "libc", ] @@ -936,7 +936,7 @@ version = "0.10.73" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8505734d46c8ab1e19a1dce3aef597ad87dcb4c37e7188231769bd6bd51cebf8" dependencies = [ - "bitflags 2.9.2", + "bitflags 2.9.3", "cfg-if", "foreign-types", "libc", @@ -986,9 +986,9 @@ dependencies = [ [[package]] name = "percent-encoding" -version = "2.3.1" +version = "2.3.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e3148f5046208a5d56bcfc03053e3ca6334e51da8dfb19b6cdc8b306fae3283e" +checksum = "9b4f627cb1b25917193a259e49bdad08f671f8d9708acfd5fe0a8c1455d87220" [[package]] name = "petgraph" @@ -1119,7 +1119,7 @@ version = "1.0.8" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "11181fbabf243db407ef8df94a6ce0b2f9a733bd8be4ad02b4eda9602296cac8" dependencies = [ - "bitflags 2.9.2", + "bitflags 2.9.3", "errno", "libc", "linux-raw-sys", @@ -1186,7 +1186,7 @@ version = "2.11.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "897b2245f0b511c87893af39b033e5ca9cce68824c4d7e7630b5a1d339658d02" dependencies = [ - "bitflags 2.9.2", + "bitflags 2.9.3", "core-foundation", "core-foundation-sys", "libc", @@ -1347,7 +1347,7 @@ version = "0.6.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3c879d448e9d986b661742763247d3693ed13609438cf3d006f51f5368a5ba6b" dependencies = [ - "bitflags 2.9.2", + "bitflags 2.9.3", "core-foundation", "system-configuration-sys", ] @@ -1476,7 +1476,7 @@ version = "0.6.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "adc82fd73de2a9722ac5da747f12383d2bfdb93591ee6c58486e0097890f05f2" dependencies = [ - "bitflags 2.9.2", + "bitflags 2.9.3", "bytes", "futures-util", "http", @@ -1551,13 +1551,14 @@ checksum = "8ecb6da28b8a351d773b68d5825ac39017e680750f980f3a1a85cd8dd28a47c1" [[package]] name = "url" -version = "2.5.4" +version = "2.5.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "32f8b686cadd1473f4bd0117a5d28d36b1ade384ea9b5069a1c40aefed7fda60" +checksum = "08bc136a29a3d1758e07a9cca267be308aeebf5cfd5a10f3f67ab2097683ef5b" dependencies = [ "form_urlencoded", "idna", "percent-encoding", + "serde", ] [[package]] @@ -1970,7 +1971,7 @@ version = "0.39.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6f42320e61fe2cfd34354ecb597f86f413484a798ba44a8ca1165c58d42da6c1" dependencies = [ - "bitflags 2.9.2", + "bitflags 2.9.3", ] [[package]] diff --git a/UI/DevScreens.cpp b/UI/DevScreens.cpp index f1af96eba6..5ea9925d0c 100644 --- a/UI/DevScreens.cpp +++ b/UI/DevScreens.cpp @@ -161,6 +161,7 @@ void DevMenuScreen::CreatePopupContents(UI::ViewGroup *parent) { items->Add(new Choice(dev->T("Remote debugger")))->OnClick.Add([](UI::EventParams &e) { int port = g_Config.iRemoteISOPort; // Also used for serving a local remote debugger. if (g_Config.bRemoteDebuggerLocal) { + // TODO: Need to modify this URL to add /cpu when we upgrade to the latest version of the web debugger. char uri[64]; snprintf(uri, sizeof(uri), "http://localhost:%d/debugger/", port); System_LaunchUrl(LaunchUrlType::BROWSER_URL, uri); From 7315e7a2a919ebf032589d84253c7b5ef5a68395 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Henrik=20Rydg=C3=A5rd?= Date: Sun, 24 Aug 2025 10:38:28 +0200 Subject: [PATCH 6/7] Add translations for the new setting (AI) --- UI/DeveloperToolsScreen.cpp | 2 +- assets/lang/ar_AE.ini | 1 + assets/lang/az_AZ.ini | 1 + assets/lang/be_BY.ini | 1 + assets/lang/bg_BG.ini | 1 + assets/lang/ca_ES.ini | 1 + assets/lang/cz_CZ.ini | 1 + assets/lang/da_DK.ini | 1 + assets/lang/de_DE.ini | 1 + assets/lang/dr_ID.ini | 1 + assets/lang/en_US.ini | 1 + assets/lang/es_ES.ini | 1 + assets/lang/es_LA.ini | 1 + assets/lang/fa_IR.ini | 1 + assets/lang/fi_FI.ini | 1 + assets/lang/fr_FR.ini | 1 + assets/lang/gl_ES.ini | 1 + assets/lang/gr_EL.ini | 1 + assets/lang/he_IL.ini | 1 + assets/lang/he_IL_invert.ini | 1 + assets/lang/hr_HR.ini | 1 + assets/lang/hu_HU.ini | 1 + assets/lang/id_ID.ini | 1 + assets/lang/it_IT.ini | 1 + assets/lang/ja_JP.ini | 1 + assets/lang/jv_ID.ini | 1 + assets/lang/ko_KR.ini | 1 + assets/lang/ku_SO.ini | 1 + assets/lang/lo_LA.ini | 1 + assets/lang/lt-LT.ini | 1 + assets/lang/ms_MY.ini | 1 + assets/lang/nl_NL.ini | 1 + assets/lang/no_NO.ini | 1 + assets/lang/pl_PL.ini | 1 + assets/lang/pt_BR.ini | 1 + assets/lang/pt_PT.ini | 1 + assets/lang/ro_RO.ini | 1 + assets/lang/ru_RU.ini | 1 + assets/lang/sv_SE.ini | 1 + assets/lang/tg_PH.ini | 1 + assets/lang/th_TH.ini | 1 + assets/lang/tr_TR.ini | 1 + assets/lang/uk_UA.ini | 1 + assets/lang/vi_VN.ini | 1 + assets/lang/zh_CN.ini | 1 + assets/lang/zh_TW.ini | 1 + 46 files changed, 46 insertions(+), 1 deletion(-) diff --git a/UI/DeveloperToolsScreen.cpp b/UI/DeveloperToolsScreen.cpp index ee4e363aa6..cc7b5a884b 100644 --- a/UI/DeveloperToolsScreen.cpp +++ b/UI/DeveloperToolsScreen.cpp @@ -170,7 +170,7 @@ void DeveloperToolsScreen::CreateGeneralTab(UI::LinearLayout *list) { list->Add(allowDebugger)->OnClick.Handle(this, &DeveloperToolsScreen::OnRemoteDebugger); allowDebugger->SetEnabledPtr(&canAllowDebugger_); - CheckBox *localDebugger = list->Add(new CheckBox(&g_Config.bRemoteDebuggerLocal, dev->T("Use locally hosted debugger"))); + CheckBox *localDebugger = list->Add(new CheckBox(&g_Config.bRemoteDebuggerLocal, dev->T("Use locally hosted remote debugger"))); localDebugger->SetEnabledPtr(&allowDebugger_); list->Add(new Choice(dev->T("GPI/GPO switches/LEDs")))->OnClick.Add([=](UI::EventParams &e) { diff --git a/assets/lang/ar_AE.ini b/assets/lang/ar_AE.ini index 279d960f48..01e789ce12 100644 --- a/assets/lang/ar_AE.ini +++ b/assets/lang/ar_AE.ini @@ -373,6 +373,7 @@ Toggle Freeze = ‎تفعيل الإيقاف Touchscreen Test = إختبار لمس الشاشة Ubershaders = Ubershaders Use FFMPEG for all compressed audio = Use FFMPEG for all compressed audio +Use locally hosted remote debugger = استخدم المصحح البعيد المستضاف محليًا Use the old sceAtrac implementation = Use the old sceAtrac implementation Vertex = Vertex VFPU = VFPU diff --git a/assets/lang/az_AZ.ini b/assets/lang/az_AZ.ini index d51001f134..06717974e2 100644 --- a/assets/lang/az_AZ.ini +++ b/assets/lang/az_AZ.ini @@ -365,6 +365,7 @@ Toggle Freeze = Toggle freeze Touchscreen Test = Touchscreen test Ubershaders = Ubershaders Use FFMPEG for all compressed audio = Use FFMPEG for all compressed audio +Use locally hosted remote debugger = Yerli host edilmiş uzaqdan debuqer istifadə edin Use the old sceAtrac implementation = Use the old sceAtrac implementation Vertex = Vertex VFPU = VFPU diff --git a/assets/lang/be_BY.ini b/assets/lang/be_BY.ini index 2da00c6f9d..43d38551a8 100644 --- a/assets/lang/be_BY.ini +++ b/assets/lang/be_BY.ini @@ -365,6 +365,7 @@ Toggle Freeze = Toggle freeze Touchscreen Test = Touchscreen test Ubershaders = Убершэйдары Use FFMPEG for all compressed audio = Use FFMPEG for all compressed audio +Use locally hosted remote debugger = Выкарыстоўвайце лакальна размешчаны аддалены адладчык Use the old sceAtrac implementation = Use the old sceAtrac implementation Vertex = Вяршыня VFPU = VFPU diff --git a/assets/lang/bg_BG.ini b/assets/lang/bg_BG.ini index a45d0b800d..b9583a297a 100644 --- a/assets/lang/bg_BG.ini +++ b/assets/lang/bg_BG.ini @@ -365,6 +365,7 @@ Toggle Freeze = Toggle freeze Touchscreen Test = Touchscreen test Ubershaders = Ubershaders Use FFMPEG for all compressed audio = Use FFMPEG for all compressed audio +Use locally hosted remote debugger = Използвайте локално хостван отдалечен дебъгър Use the old sceAtrac implementation = Use the old sceAtrac implementation Vertex = Vertex VFPU = VFPU diff --git a/assets/lang/ca_ES.ini b/assets/lang/ca_ES.ini index 917c6c5a82..10d18ad5fc 100644 --- a/assets/lang/ca_ES.ini +++ b/assets/lang/ca_ES.ini @@ -365,6 +365,7 @@ Toggle Freeze = Commuta la imatge Touchscreen Test = Touchscreen test Ubershaders = Ubershaders Use FFMPEG for all compressed audio = Use FFMPEG for all compressed audio +Use locally hosted remote debugger = Utilitza el depurador remot allotjat localment Use the old sceAtrac implementation = Use the old sceAtrac implementation Vertex = Vertex VFPU = VFPU diff --git a/assets/lang/cz_CZ.ini b/assets/lang/cz_CZ.ini index da9f0d7c8f..f3b845d028 100644 --- a/assets/lang/cz_CZ.ini +++ b/assets/lang/cz_CZ.ini @@ -365,6 +365,7 @@ Toggle Freeze = Přepnout zamrznutí Touchscreen Test = Touchscreen test Ubershaders = Ubershaders Use FFMPEG for all compressed audio = Use FFMPEG for all compressed audio +Use locally hosted remote debugger = Použijte místně hostovaný vzdálený debugger Use the old sceAtrac implementation = Use the old sceAtrac implementation Vertex = Vertex VFPU = VFPU diff --git a/assets/lang/da_DK.ini b/assets/lang/da_DK.ini index 8528d1f39c..073188648b 100644 --- a/assets/lang/da_DK.ini +++ b/assets/lang/da_DK.ini @@ -365,6 +365,7 @@ Toggle Freeze = Skift freeze Touchscreen Test = Touchscreen test Ubershaders = Ubershaders Use FFMPEG for all compressed audio = Use FFMPEG for all compressed audio +Use locally hosted remote debugger = Brug lokalt hostet fjernfejlsøger Use the old sceAtrac implementation = Use the old sceAtrac implementation Vertex = Vertex VFPU = VFPU diff --git a/assets/lang/de_DE.ini b/assets/lang/de_DE.ini index d398776d26..a625e47ad9 100644 --- a/assets/lang/de_DE.ini +++ b/assets/lang/de_DE.ini @@ -358,6 +358,7 @@ Toggle Freeze = Einfrieren umschalten Touchscreen Test = Berührungsbildschirm-Test Ubershaders = Uberschattierer Use FFMPEG for all compressed audio = FFMPEG für jedes komprimierte Audio verwenden +Use locally hosted remote debugger = Verwenden Sie einen lokal gehosteten Remote-Debugger Use the old sceAtrac implementation = Die alte sceAtrac-Implementierung verwenden Vertex = Vertex VFPU = VFPU diff --git a/assets/lang/dr_ID.ini b/assets/lang/dr_ID.ini index e39b9e33db..42587f203c 100644 --- a/assets/lang/dr_ID.ini +++ b/assets/lang/dr_ID.ini @@ -365,6 +365,7 @@ Toggle Freeze = Toggle freeze Touchscreen Test = Touchscreen test Ubershaders = Ubershaders Use FFMPEG for all compressed audio = Use FFMPEG for all compressed audio +Use locally hosted remote debugger = Gunakan pengurai jarak jauh yang dihosting secara lokal Use the old sceAtrac implementation = Use the old sceAtrac implementation Vertex = Vertex VFPU = VFPU diff --git a/assets/lang/en_US.ini b/assets/lang/en_US.ini index 5c20c6e8db..caabdaaab4 100644 --- a/assets/lang/en_US.ini +++ b/assets/lang/en_US.ini @@ -389,6 +389,7 @@ Toggle Freeze = Toggle freeze Touchscreen Test = Touchscreen test Ubershaders = Ubershaders Use FFMPEG for all compressed audio = Use FFMPEG for all compressed audio +Use locally hosted remote debugger = Use locally hosted remote debugger Use the old sceAtrac implementation = Use the old sceAtrac implementation Vertex = Vertex VFPU = VFPU diff --git a/assets/lang/es_ES.ini b/assets/lang/es_ES.ini index e4179eee6e..8032146d29 100644 --- a/assets/lang/es_ES.ini +++ b/assets/lang/es_ES.ini @@ -366,6 +366,7 @@ Toggle Freeze = Parar/Reanudar imagen Touchscreen Test = Test de pantalla táctil Ubershaders = Ubershaders Use FFMPEG for all compressed audio = Usar FFMPEG para todo el audio comprimido +Use locally hosted remote debugger = Usar depurador remoto alojado localmente Use the old sceAtrac implementation = Usar la antigua implementación de sceAtrac Vertex = Vértices VFPU = VFPU diff --git a/assets/lang/es_LA.ini b/assets/lang/es_LA.ini index 48e4c59715..d18b72482f 100644 --- a/assets/lang/es_LA.ini +++ b/assets/lang/es_LA.ini @@ -365,6 +365,7 @@ Toggle Freeze = Parar/Reanudar imagen Touchscreen Test = Probar pantalla táctil Ubershaders = Ubershaders Use FFMPEG for all compressed audio = Use FFMPEG for all compressed audio +Use locally hosted remote debugger = Utiliza el depurador remoto alojado localmente Use the old sceAtrac implementation = Use the old sceAtrac implementation Vertex = Vertex VFPU = VFPU diff --git a/assets/lang/fa_IR.ini b/assets/lang/fa_IR.ini index d690fda141..9bf1ca4298 100644 --- a/assets/lang/fa_IR.ini +++ b/assets/lang/fa_IR.ini @@ -365,6 +365,7 @@ Toggle Freeze = Toggle freeze Touchscreen Test = Touchscreen test Ubershaders = Ubershaders Use FFMPEG for all compressed audio = Use FFMPEG for all compressed audio +Use locally hosted remote debugger = از اشکال‌زدا از راه دور میزبان محلی استفاده کنید Use the old sceAtrac implementation = Use the old sceAtrac implementation Vertex = Vertex VFPU = VFPU diff --git a/assets/lang/fi_FI.ini b/assets/lang/fi_FI.ini index 1cbc978a77..0c488d361d 100644 --- a/assets/lang/fi_FI.ini +++ b/assets/lang/fi_FI.ini @@ -365,6 +365,7 @@ Toggle Freeze = Toggle freeze Touchscreen Test = Touchscreen test Ubershaders = Ubershaders Use FFMPEG for all compressed audio = Use FFMPEG for all compressed audio +Use locally hosted remote debugger = Käytä paikallisesti isännöityä etädebuggeria Use the old sceAtrac implementation = Use the old sceAtrac implementation Vertex = Vertex VFPU = VFPU diff --git a/assets/lang/fr_FR.ini b/assets/lang/fr_FR.ini index 7ccad20bdf..00b14d6377 100644 --- a/assets/lang/fr_FR.ini +++ b/assets/lang/fr_FR.ini @@ -365,6 +365,7 @@ Toggle Freeze = Geler/Dégeler l'image Touchscreen Test = Test de l'écran tactile Ubershaders = Ubershaders Use FFMPEG for all compressed audio = Use FFMPEG for all compressed audio +Use locally hosted remote debugger = Utilisez le débogueur distant hébergé localement Use the old sceAtrac implementation = Use the old sceAtrac implementation Vertex = Vertex VFPU = VFPU diff --git a/assets/lang/gl_ES.ini b/assets/lang/gl_ES.ini index a557699d83..8e1f90f97f 100644 --- a/assets/lang/gl_ES.ini +++ b/assets/lang/gl_ES.ini @@ -365,6 +365,7 @@ Toggle Freeze = Parar/Reanudar imaxe Touchscreen Test = Touchscreen test Ubershaders = Ubershaders Use FFMPEG for all compressed audio = Use FFMPEG for all compressed audio +Use locally hosted remote debugger = Usa o depurador remoto aloxado localmente Use the old sceAtrac implementation = Use the old sceAtrac implementation Vertex = Vertex VFPU = VFPU diff --git a/assets/lang/gr_EL.ini b/assets/lang/gr_EL.ini index 98eaafe5fa..b1c6052549 100644 --- a/assets/lang/gr_EL.ini +++ b/assets/lang/gr_EL.ini @@ -365,6 +365,7 @@ Toggle Freeze = Πάγωμα Εναλαγής Touchscreen Test = Touchscreen test Ubershaders = Ubershaders Use FFMPEG for all compressed audio = Use FFMPEG for all compressed audio +Use locally hosted remote debugger = Χρησιμοποιήστε τον απομακρυσμένο αποσφαλματωτή που φιλοξενείται τοπικά Use the old sceAtrac implementation = Use the old sceAtrac implementation Vertex = Vertex VFPU = VFPU diff --git a/assets/lang/he_IL.ini b/assets/lang/he_IL.ini index 4d1b28eb5e..2134845181 100644 --- a/assets/lang/he_IL.ini +++ b/assets/lang/he_IL.ini @@ -365,6 +365,7 @@ Toggle Freeze = Toggle freeze Touchscreen Test = Touchscreen test Ubershaders = Ubershaders Use FFMPEG for all compressed audio = Use FFMPEG for all compressed audio +Use locally hosted remote debugger = השתמש במד debugguer מרחוק המארח מקומית Use the old sceAtrac implementation = Use the old sceAtrac implementation Vertex = Vertex VFPU = VFPU diff --git a/assets/lang/he_IL_invert.ini b/assets/lang/he_IL_invert.ini index 9c8c9d7682..39da063877 100644 --- a/assets/lang/he_IL_invert.ini +++ b/assets/lang/he_IL_invert.ini @@ -365,6 +365,7 @@ Toggle Freeze = Toggle freeze Touchscreen Test = Touchscreen test Ubershaders = Ubershaders Use FFMPEG for all compressed audio = Use FFMPEG for all compressed audio +Use locally hosted remote debugger = השתמש במנוע דיבוג מרוחק שמאוחסן מקומית Use the old sceAtrac implementation = Use the old sceAtrac implementation Vertex = Vertex VFPU = VFPU diff --git a/assets/lang/hr_HR.ini b/assets/lang/hr_HR.ini index c7173febfc..db61ff72ee 100644 --- a/assets/lang/hr_HR.ini +++ b/assets/lang/hr_HR.ini @@ -365,6 +365,7 @@ Toggle Freeze = Uključi zamrzavanje Touchscreen Test = Touchscreen test Ubershaders = Ubershaders Use FFMPEG for all compressed audio = Use FFMPEG for all compressed audio +Use locally hosted remote debugger = Koristite lokalno hostani daljinski debager Use the old sceAtrac implementation = Use the old sceAtrac implementation Vertex = Vertex VFPU = VFPU diff --git a/assets/lang/hu_HU.ini b/assets/lang/hu_HU.ini index 66fe97ba39..5f74a1fa17 100644 --- a/assets/lang/hu_HU.ini +++ b/assets/lang/hu_HU.ini @@ -365,6 +365,7 @@ Toggle Freeze = Fagyasztás ki/bekapcsolása Touchscreen Test = Érintőképernyő teszt Ubershaders = Ubershaderek Use FFMPEG for all compressed audio = Use FFMPEG for all compressed audio +Use locally hosted remote debugger = Helyben tárolt távoli hibakeresőt használjon Use the old sceAtrac implementation = Use the old sceAtrac implementation Vertex = Vertex VFPU = VFPU diff --git a/assets/lang/id_ID.ini b/assets/lang/id_ID.ini index 1bd4bbc43e..50417fb87b 100644 --- a/assets/lang/id_ID.ini +++ b/assets/lang/id_ID.ini @@ -365,6 +365,7 @@ Toggle Freeze = Alihkan pembekuan Touchscreen Test = Tes layar sentuh Ubershaders = Ubershaders Use FFMPEG for all compressed audio = Use FFMPEG for all compressed audio +Use locally hosted remote debugger = Gunakan pengurai jarak jauh yang dihosting secara lokal Use the old sceAtrac implementation = Use the old sceAtrac implementation Vertex = Vertex VFPU = VFPU diff --git a/assets/lang/it_IT.ini b/assets/lang/it_IT.ini index f339b64755..112c0cf0a2 100644 --- a/assets/lang/it_IT.ini +++ b/assets/lang/it_IT.ini @@ -365,6 +365,7 @@ Toggle Freeze = Attiva/Disattiva Congelamento Touchscreen Test = Test del Touchscreen Ubershaders = Ubershader Use FFMPEG for all compressed audio = Use FFMPEG for all compressed audio +Use locally hosted remote debugger = Usa il debugger remoto ospitato localmente Use the old sceAtrac implementation = Use the old sceAtrac implementation Vertex = Vertex VFPU = VFPU diff --git a/assets/lang/ja_JP.ini b/assets/lang/ja_JP.ini index 58b28cdb2b..facc76d9f3 100644 --- a/assets/lang/ja_JP.ini +++ b/assets/lang/ja_JP.ini @@ -365,6 +365,7 @@ Toggle Freeze = フリーズを切り替える Touchscreen Test = タッチスクリーンのテスト Ubershaders = Uber Shaders Use FFMPEG for all compressed audio = すべての圧縮オーディオにFFMPEGを使用する +Use locally hosted remote debugger = ローカルホストされたリモートデバッガを使用する Use the old sceAtrac implementation = 古いsceAtrac実装を使用する Vertex = 頂点 VFPU = VFPU diff --git a/assets/lang/jv_ID.ini b/assets/lang/jv_ID.ini index c3a8f41102..bc1299e69f 100644 --- a/assets/lang/jv_ID.ini +++ b/assets/lang/jv_ID.ini @@ -365,6 +365,7 @@ Toggle Freeze = Pilian Beku Touchscreen Test = Touchscreen test Ubershaders = Ubershaders Use FFMPEG for all compressed audio = Use FFMPEG for all compressed audio +Use locally hosted remote debugger = Gunakake debugger jarak jauh sing dihosting lokal Use the old sceAtrac implementation = Use the old sceAtrac implementation Vertex = Vertex VFPU = VFPU diff --git a/assets/lang/ko_KR.ini b/assets/lang/ko_KR.ini index 4fd5a622c0..2d0d7c0ace 100644 --- a/assets/lang/ko_KR.ini +++ b/assets/lang/ko_KR.ini @@ -365,6 +365,7 @@ Toggle Freeze = 프리징 토글 Touchscreen Test = 터치화면 테스트 Ubershaders = 우버셰이더 Use FFMPEG for all compressed audio = 모든 압축 오디오에 FFMPEG 사용 +Use locally hosted remote debugger = 로컬 호스팅된 원격 디버거 사용 Use the old sceAtrac implementation = 이전 sceAtrac 구현 사용 Vertex = 꼭짓점 VFPU = VFPU diff --git a/assets/lang/ku_SO.ini b/assets/lang/ku_SO.ini index c5b4975a37..f52c7405cb 100644 --- a/assets/lang/ku_SO.ini +++ b/assets/lang/ku_SO.ini @@ -379,6 +379,7 @@ Toggle Freeze = Toggle freeze Touchscreen Test = Touchscreen test Ubershaders = Ubershaders Use FFMPEG for all compressed audio = Use FFMPEG for all compressed audio +Use locally hosted remote debugger = Bikarhênê debuggery dûr hostkirî ya herêmî Use the old sceAtrac implementation = Use the old sceAtrac implementation Vertex = Vertex VFPU = VFPU diff --git a/assets/lang/lo_LA.ini b/assets/lang/lo_LA.ini index d9764451c0..003e9915c7 100644 --- a/assets/lang/lo_LA.ini +++ b/assets/lang/lo_LA.ini @@ -365,6 +365,7 @@ Toggle Freeze = ປຸ່ມແຊ່ແຂງ Touchscreen Test = Touchscreen test Ubershaders = Ubershaders Use FFMPEG for all compressed audio = Use FFMPEG for all compressed audio +Use locally hosted remote debugger = ໃຊ້ສ່ອງແຊ່ລະດູເທີຂໍ້ສອບຖ່າຍໃນບໍລິສັດ Use the old sceAtrac implementation = Use the old sceAtrac implementation Vertex = Vertex VFPU = VFPU diff --git a/assets/lang/lt-LT.ini b/assets/lang/lt-LT.ini index 3501cf512e..6f96fc5f45 100644 --- a/assets/lang/lt-LT.ini +++ b/assets/lang/lt-LT.ini @@ -365,6 +365,7 @@ Toggle Freeze = Toggle freeze Touchscreen Test = Touchscreen test Ubershaders = Ubershaders Use FFMPEG for all compressed audio = Use FFMPEG for all compressed audio +Use locally hosted remote debugger = Naudokite vietiniu mastu talpinamu nuotoliniu derinimo priemone Use the old sceAtrac implementation = Use the old sceAtrac implementation Vertex = Vertex VFPU = VFPU diff --git a/assets/lang/ms_MY.ini b/assets/lang/ms_MY.ini index b874e4a113..ed1954a082 100644 --- a/assets/lang/ms_MY.ini +++ b/assets/lang/ms_MY.ini @@ -365,6 +365,7 @@ Toggle Freeze = Toggle freeze Touchscreen Test = Touchscreen test Ubershaders = Ubershaders Use FFMPEG for all compressed audio = Use FFMPEG for all compressed audio +Use locally hosted remote debugger = Gunakan penyahpepijat jauh yang dihoskan secara tempatan Use the old sceAtrac implementation = Use the old sceAtrac implementation Vertex = Vertex VFPU = VFPU diff --git a/assets/lang/nl_NL.ini b/assets/lang/nl_NL.ini index 6ec5477af6..d3e6fa63d3 100644 --- a/assets/lang/nl_NL.ini +++ b/assets/lang/nl_NL.ini @@ -365,6 +365,7 @@ Toggle Freeze = Bevriezen in-/uitschakelen Touchscreen Test = Touchscreen test Ubershaders = Ubershaders Use FFMPEG for all compressed audio = Use FFMPEG for all compressed audio +Use locally hosted remote debugger = Gebruik lokaal gehoste externe debugger Use the old sceAtrac implementation = Use the old sceAtrac implementation Vertex = Vertex VFPU = VFPU diff --git a/assets/lang/no_NO.ini b/assets/lang/no_NO.ini index f261921c4a..28d39cf728 100644 --- a/assets/lang/no_NO.ini +++ b/assets/lang/no_NO.ini @@ -365,6 +365,7 @@ Toggle Freeze = Toggle freeze Touchscreen Test = Touchscreen test Ubershaders = Ubershaders Use FFMPEG for all compressed audio = Use FFMPEG for all compressed audio +Use locally hosted remote debugger = Bruk lokalt vertet fjernfeilsøker Use the old sceAtrac implementation = Use the old sceAtrac implementation Vertex = Vertex VFPU = VFPU diff --git a/assets/lang/pl_PL.ini b/assets/lang/pl_PL.ini index 6977d3d527..3be9fc351a 100644 --- a/assets/lang/pl_PL.ini +++ b/assets/lang/pl_PL.ini @@ -366,6 +366,7 @@ Toggle Freeze = Wł./Wył. zamrożenie Touchscreen Test = Test ekranu dotykowego Ubershaders = Ubershadery Use FFMPEG for all compressed audio = Używaj FFMPEG dla każdego skompresowanego audio +Use locally hosted remote debugger = Użyj lokalnie hostowanego zdalnego debugera Use the old sceAtrac implementation = Użyj starej implementacji sceAtrac Vertex = Wierzchołka VFPU = VFPU diff --git a/assets/lang/pt_BR.ini b/assets/lang/pt_BR.ini index 1217a5dfac..afa6c3fd61 100644 --- a/assets/lang/pt_BR.ini +++ b/assets/lang/pt_BR.ini @@ -391,6 +391,7 @@ Toggle Freeze = Alternar congelamento Touchscreen Test = Teste do Touchscreen Ubershaders = Ubershaders Use FFMPEG for all compressed audio = Usar FFMPEG para todo o aúdio comprimido +Use locally hosted remote debugger = Use o depurador remoto hospedado localmente Use the old sceAtrac implementation = Usar a implementação antiga do sceAtrac Vertex = Vértice VFPU = VFPU diff --git a/assets/lang/pt_PT.ini b/assets/lang/pt_PT.ini index b5dc45c7bb..2f875046fa 100644 --- a/assets/lang/pt_PT.ini +++ b/assets/lang/pt_PT.ini @@ -389,6 +389,7 @@ Toggle Freeze = Alternar congelamento Touchscreen Test = Teste do ecrã Ubershaders = Ubershaders Use FFMPEG for all compressed audio = Use FFMPEG for all compressed audio +Use locally hosted remote debugger = Utilize o depurador remoto hospedado localmente Use the old sceAtrac implementation = Use the old sceAtrac implementation Vertex = Vértice VFPU = VFPU diff --git a/assets/lang/ro_RO.ini b/assets/lang/ro_RO.ini index 3fe9112da4..722c5b1982 100644 --- a/assets/lang/ro_RO.ini +++ b/assets/lang/ro_RO.ini @@ -366,6 +366,7 @@ Toggle Freeze = Toggle freeze Touchscreen Test = Touchscreen test Ubershaders = Ubershaders Use FFMPEG for all compressed audio = Use FFMPEG for all compressed audio +Use locally hosted remote debugger = Folosește debugger-ul remote găzduit local Use the old sceAtrac implementation = Use the old sceAtrac implementation Vertex = Vertex VFPU = VFPU diff --git a/assets/lang/ru_RU.ini b/assets/lang/ru_RU.ini index f49900e7fe..b776de67d4 100644 --- a/assets/lang/ru_RU.ini +++ b/assets/lang/ru_RU.ini @@ -365,6 +365,7 @@ Toggle Freeze = Запустить/остановить Touchscreen Test = Тест сенсорного экрана Ubershaders = Убершейдеры Use FFMPEG for all compressed audio = Использовать FFMPEG для всего сжатого аудио +Use locally hosted remote debugger = Используйте локально хостируемый удаленный отладчик Use the old sceAtrac implementation = Использовать старую реализацию sceAtrac Vertex = Вершина VFPU = VFPU diff --git a/assets/lang/sv_SE.ini b/assets/lang/sv_SE.ini index 5bf90dc62e..2cc3b8a352 100644 --- a/assets/lang/sv_SE.ini +++ b/assets/lang/sv_SE.ini @@ -365,6 +365,7 @@ Toggle Freeze = Växla frysning Touchscreen Test = Touchskärm-test Ubershaders = Ubershaders Use FFMPEG for all compressed audio = Använd FFMPEG för allt komprimerat ljud +Use locally hosted remote debugger = Använd lokalt hostad fjärrfelsökare Use the old sceAtrac implementation = Använd den gamla implementation av sceAtrac Vertex = Vertex VFPU = VFPU diff --git a/assets/lang/tg_PH.ini b/assets/lang/tg_PH.ini index 3cae863e99..ffdcbcf62a 100644 --- a/assets/lang/tg_PH.ini +++ b/assets/lang/tg_PH.ini @@ -366,6 +366,7 @@ Toggle Freeze = I-Toggle freeze Touchscreen Test = I-test and touchscreen Ubershaders = Ubershaders Use FFMPEG for all compressed audio = Use FFMPEG for all compressed audio +Use locally hosted remote debugger = Истифодаи debugger-и дурдаст, ки маҳаллист Use the old sceAtrac implementation = Use the old sceAtrac implementation Vertex = Vertex VFPU = VFPU diff --git a/assets/lang/th_TH.ini b/assets/lang/th_TH.ini index 3680045e5f..090a600cb6 100644 --- a/assets/lang/th_TH.ini +++ b/assets/lang/th_TH.ini @@ -382,6 +382,7 @@ Toggle Freeze = ปุ่มแช่แข็ง Touchscreen Test = ทดสอบหน้าจอสัมผัส Ubershaders = อูเบอร์เฉดเดอร์ Use FFMPEG for all compressed audio = ใช้ FFMPEG สำหรับเสียงที่ถูกบีบอัดมาทั้งหมด +Use locally hosted remote debugger = ใช้ตัวดีบักระยะไกลที่โฮสต์ในท้องถิ่น Use the old sceAtrac implementation = ใช้ระบบการถอดรหัสโค้ดเสียง sceAtrac แบบเก่า Vertex = เวอร์เท็ค Vulkan = วัลแคน diff --git a/assets/lang/tr_TR.ini b/assets/lang/tr_TR.ini index eea6a2f907..f56deca738 100644 --- a/assets/lang/tr_TR.ini +++ b/assets/lang/tr_TR.ini @@ -367,6 +367,7 @@ Toggle Freeze = Donmayı Aç/Kapa Touchscreen Test = Dokunmatik ekran testi Ubershaders = Aşırı Gölgelendiriciler Use FFMPEG for all compressed audio = Tüm sıkıştırılmış sesler için FFMPEG kullan +Use locally hosted remote debugger = Yerel olarak barındırılan uzaktan hata ayıklayıcıyı kullanın Use the old sceAtrac implementation = Eski sceAtrac uygulamasını kullan Vertex = Vertex VFPU = VFPU diff --git a/assets/lang/uk_UA.ini b/assets/lang/uk_UA.ini index 04ef70ca95..34e47ea6eb 100644 --- a/assets/lang/uk_UA.ini +++ b/assets/lang/uk_UA.ini @@ -365,6 +365,7 @@ Toggle Freeze = Запустити/Зупинити Touchscreen Test = Тест сенсорного екрану Ubershaders = Убершейдери Use FFMPEG for all compressed audio = Use FFMPEG for all compressed audio +Use locally hosted remote debugger = Використовуйте віддалений відладчик, розташований локально Use the old sceAtrac implementation = Використати стару реалізацію sceAtrac Vertex = Вершина VFPU = VFPU diff --git a/assets/lang/vi_VN.ini b/assets/lang/vi_VN.ini index c4a7fac41b..2a2a2974f1 100644 --- a/assets/lang/vi_VN.ini +++ b/assets/lang/vi_VN.ini @@ -365,6 +365,7 @@ Toggle Freeze = Chuyển qua chế độ đóng băng Touchscreen Test = Touchscreen test Ubershaders = Ubershaders Use FFMPEG for all compressed audio = Use FFMPEG for all compressed audio +Use locally hosted remote debugger = Sử dụng trình gỡ lỗi từ xa được lưu trữ tại địa phương Use the old sceAtrac implementation = Use the old sceAtrac implementation Vertex = Vertex VFPU = VFPU diff --git a/assets/lang/zh_CN.ini b/assets/lang/zh_CN.ini index 7cb8a165ed..76893dc307 100644 --- a/assets/lang/zh_CN.ini +++ b/assets/lang/zh_CN.ini @@ -365,6 +365,7 @@ Toggle Freeze = 切换冻结 Touchscreen Test = 触屏测试 Ubershaders = 超着色器 (消耗少量性能,并减少卡顿) Use FFMPEG for all compressed audio = 使用 FFMPEG 处理所有压缩音频 +Use locally hosted remote debugger = 使用本地托管的远程调试器 Use the old sceAtrac implementation = 使用旧版 sceAtrac 功能 Vertex = 顶点着色器 VFPU = VFPU diff --git a/assets/lang/zh_TW.ini b/assets/lang/zh_TW.ini index 1741fe4002..d6668f6a0b 100644 --- a/assets/lang/zh_TW.ini +++ b/assets/lang/zh_TW.ini @@ -365,6 +365,7 @@ Toggle Freeze = 切換凍結開關 Touchscreen Test = 觸控式螢幕測試 Ubershaders = 超級著色器 Use FFMPEG for all compressed audio = 使用 FFMPEG 處理所有壓縮音訊 +Use locally hosted remote debugger = 使用本地托管的遠端除錯器 Use the old sceAtrac implementation = 使用舊版 sceAtrac 功能 Vertex = 頂點 VFPU = VFPU From 93638c882615e4e18689c155c1dd6dcecd2d7f02 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Henrik=20Rydg=C3=A5rd?= Date: Sun, 24 Aug 2025 15:46:35 +0200 Subject: [PATCH 7/7] Test fix --- Common/Thread/ThreadUtil.cpp | 2 +- Core/Core.cpp | 2 -- headless/Headless.cpp | 2 ++ 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/Common/Thread/ThreadUtil.cpp b/Common/Thread/ThreadUtil.cpp index e6e9c7314a..e842a03124 100644 --- a/Common/Thread/ThreadUtil.cpp +++ b/Common/Thread/ThreadUtil.cpp @@ -209,7 +209,7 @@ void SetCurrentThreadNameThroughException(const char *threadName) { void AssertCurrentThreadName(const char *threadName) { #ifdef TLS_SUPPORTED - if (strcmp(curThreadName, threadName) != 0) { + if (curThreadName && strcmp(curThreadName, threadName) != 0) { ERROR_LOG(Log::System, "Thread name assert failed: Expected %s, was %s", threadName, curThreadName); _dbg_assert_msg_(false, "Thread name assert failed: Expected %s, was %s", threadName, curThreadName); } diff --git a/Core/Core.cpp b/Core/Core.cpp index e7112c24e6..26a54992e7 100644 --- a/Core/Core.cpp +++ b/Core/Core.cpp @@ -144,8 +144,6 @@ void Core_ListenLifecycle(CoreLifecycleFunc func) { } void Core_NotifyLifecycle(CoreLifecycle stage) { - AssertCurrentThreadName("EmuThread"); - if (stage == CoreLifecycle::STARTING) { Core_ResetException(); } diff --git a/headless/Headless.cpp b/headless/Headless.cpp index 352b397c8a..3fa6094274 100644 --- a/headless/Headless.cpp +++ b/headless/Headless.cpp @@ -289,6 +289,8 @@ std::vector ReadFromListFile(const std::string &listFilename) { char temp[2048]{}; if (listFilename == "-") { + // If you get stuck here in the debugger, you accidentally passed '@-' on the command line, meaning we expect + // a list of files on stdin. while (scanf("%2047s", temp) == 1) testFilenames.push_back(temp); } else {