feat(menu): localize UI overlays and startup screen into 16 languages #2417

Closed
oscarlosu-lab wants to merge 1 commit from oscarlosu-lab/main into main
oscarlosu-lab commented 2026-11-11 18:07:14 +00:00 (Migrated from github.com)

Players running the game in non-English languages currently see the pause menu (F1 / Insert / Esc), startup preparation banner, and debug overlays in English. This PR localizes Hookshot's Vulkan UI overlays and startup preparation screen into all 16 game languages matching the console's language selection.

What changed

  • gpu/vk/vk_menu_lang.h: Added i18n::Lang mapping for all 16 Switch language codes (en-US, en-GB, fr, fr-CA, de, it, es, es-419, pt-BR, nl, pl, ru, ja, ko, zh-Hans, zh-Hant), oe: language hook setter, fallback LANG / LC_ALL / Windows UI locale detection, and thread-safe active-language state (init(), state_ready(), set_active_lang(), current_lang()).
  • gpu/vk/vk_menu_i18n.h: Added hash-indexed static translation catalog (i18n::tr) covering menu tabs, rows, hints, dialogs, startup/preparation screen, and debug overlays (including #2378 / #1859 strings), plus pattern/unit translator (i18n::tr_dyn) for dynamic values (%d nits, countdowns, key/device labels) using %n end-of-string checks so unrelated numeric labels (such as speed multipliers or volumes) are not misparsed.
  • gpu/vk/vk_imgui.h, gpu/vk/vk_imgui.cpp: Merged script-specific CJK/Cyrillic/extended Latin glyph ranges when loading fonts and wired language-aware glyph rebuilding when active language changes.
  • gpu/vk/vk_menu.cpp: Switched rendered labels, descriptions, tooltips, notifications, and startup text through i18n::tr / i18n::tr_dyn, keeping option keys and .ini storage identifiers in English.
  • docs/development.md: Documented RX_VK_UI_LANG override behavior.
  • tests/test_menu_i18n.py, tests/test_menu_tune.py: Added standalone C++20 test suite covering all 16 languages, fallback/restart state behavior, and dynamic formatter edge cases, and updated test_menu_tune.py to match localized prompt lookups.

Screenshots (1280x720 Vulkan capture)

Language / Scenario Screenshot
Long strings (de, Medium menu_size=2) German Medium 1280x720
Smallest menu size (de, Small menu_size=1) German Small 1280x720
Cyrillic (ru, Medium) Russian Medium 1280x720
CJK (ja) Japanese CJK 1280x720
CJK (zh-Hans) Simplified Chinese CJK 1280x720
Startup preparation (draw_startup, de / ja / ru) Startup German 1280x720 Startup Japanese 1280x720 Startup Russian 1280x720

Fallback and switches

  • When no font covers the language's script (no CJK system font), the UI falls back to English and logs it instead of drawing missing glyphs. RX_VK_UI_FONT=<ttf/ttc> points it at a font; RX_VK_UI_LANG=<code> overrides the language. Both are in docs/development.md.
  • Rebased onto eaef1460: #2177's Graphics section headings are in the catalog in all 16 languages.

Checks

  • python -I -B tests/test_menu_i18n.py -> OK (16 languages verified)
  • python -I -B tests/run_all.py menu prompt font utf8 run_all_declarations nup_read_name bake_portability -> 28 passed, 0 failed, 0 skipped (Windows, clang++ from llvm-mingw)
Players running the game in non-English languages currently see the pause menu (`F1` / `Insert` / `Esc`), startup preparation banner, and debug overlays in English. This PR localizes Hookshot's Vulkan UI overlays and startup preparation screen into all 16 game languages matching the console's language selection. ### What changed - **[gpu/vk/vk_menu_lang.h](gpu/vk/vk_menu_lang.h)**: Added `i18n::Lang` mapping for all 16 Switch language codes (`en-US`, `en-GB`, `fr`, `fr-CA`, `de`, `it`, `es`, `es-419`, `pt-BR`, `nl`, `pl`, `ru`, `ja`, `ko`, `zh-Hans`, `zh-Hant`), `oe: language` hook setter, fallback `LANG` / `LC_ALL` / Windows UI locale detection, and thread-safe active-language state (`init()`, `state_ready()`, `set_active_lang()`, `current_lang()`). - **[gpu/vk/vk_menu_i18n.h](gpu/vk/vk_menu_i18n.h)**: Added hash-indexed static translation catalog (`i18n::tr`) covering menu tabs, rows, hints, dialogs, startup/preparation screen, and debug overlays (including `#2378` / `#1859` strings), plus pattern/unit translator (`i18n::tr_dyn`) for dynamic values (`%d nits`, countdowns, key/device labels) using `%n` end-of-string checks so unrelated numeric labels (such as speed multipliers or volumes) are not misparsed. - **[gpu/vk/vk_imgui.h](gpu/vk/vk_imgui.h), [gpu/vk/vk_imgui.cpp](gpu/vk/vk_imgui.cpp)**: Merged script-specific CJK/Cyrillic/extended Latin glyph ranges when loading fonts and wired language-aware glyph rebuilding when active language changes. - **[gpu/vk/vk_menu.cpp](gpu/vk/vk_menu.cpp)**: Switched rendered labels, descriptions, tooltips, notifications, and startup text through `i18n::tr` / `i18n::tr_dyn`, keeping option keys and `.ini` storage identifiers in English. - **[docs/development.md](docs/development.md)**: Documented `RX_VK_UI_LANG` override behavior. - **[tests/test_menu_i18n.py](tests/test_menu_i18n.py), [tests/test_menu_tune.py](tests/test_menu_tune.py)**: Added standalone C++20 test suite covering all 16 languages, fallback/restart state behavior, and dynamic formatter edge cases, and updated `test_menu_tune.py` to match localized prompt lookups. ### Screenshots (1280x720 Vulkan capture) | Language / Scenario | Screenshot | |---|---| | Long strings (`de`, Medium `menu_size=2`) | ![German Medium 1280x720](https://gist.githubusercontent.com/oscarlosu-lab/b17a862de67d0534131cf4e9f8e258a4/raw/01_de_medium_1280x720.png) | | Smallest menu size (`de`, Small `menu_size=1`) | ![German Small 1280x720](https://gist.githubusercontent.com/oscarlosu-lab/b17a862de67d0534131cf4e9f8e258a4/raw/02_de_small_1280x720.png) | | Cyrillic (`ru`, Medium) | ![Russian Medium 1280x720](https://gist.githubusercontent.com/oscarlosu-lab/b17a862de67d0534131cf4e9f8e258a4/raw/03_ru_medium_1280x720.png) | | CJK (`ja`) | ![Japanese CJK 1280x720](https://gist.githubusercontent.com/oscarlosu-lab/b17a862de67d0534131cf4e9f8e258a4/raw/04_ja_cjk_1280x720.png) | | CJK (`zh-Hans`) | ![Simplified Chinese CJK 1280x720](https://gist.githubusercontent.com/oscarlosu-lab/b17a862de67d0534131cf4e9f8e258a4/raw/05_zh_hans_cjk_1280x720.png) | | Startup preparation (`draw_startup`, `de` / `ja` / `ru`) | ![Startup German 1280x720](https://gist.githubusercontent.com/oscarlosu-lab/b17a862de67d0534131cf4e9f8e258a4/raw/07_startup_de_1280x720.png) ![Startup Japanese 1280x720](https://gist.githubusercontent.com/oscarlosu-lab/b17a862de67d0534131cf4e9f8e258a4/raw/08_startup_ja_1280x720.png) ![Startup Russian 1280x720](https://gist.githubusercontent.com/oscarlosu-lab/b17a862de67d0534131cf4e9f8e258a4/raw/09_startup_ru_1280x720.png) | ### Fallback and switches - When no font covers the language's script (no CJK system font), the UI falls back to English and logs it instead of drawing missing glyphs. `RX_VK_UI_FONT=<ttf/ttc>` points it at a font; `RX_VK_UI_LANG=<code>` overrides the language. Both are in docs/development.md. - Rebased onto eaef1460: #2177's Graphics section headings are in the catalog in all 16 languages. ### Checks - `python -I -B tests/test_menu_i18n.py` -> OK (16 languages verified) - `python -I -B tests/run_all.py menu prompt font utf8 run_all_declarations nup_read_name bake_portability` -> 28 passed, 0 failed, 0 skipped (Windows, `clang++` from `llvm-mingw`)
Joey-Magnus (Migrated from github.com) requested changes 2026-11-11 20:08:28 +00:00
Joey-Magnus (Migrated from github.com) left a comment

Translating the menu and the start-up screen is a real gain for players who don't read English, and keeping the .ini keys and the strings the tests inspect in English was the right call. I covered the language detection, the font fallback, the glyph prebaking and the tests. I spot-checked the catalog but didn't review the 16 languages' wording. The vk_menu.cpp checks pass at this head on Linux (51), and the branch merges cleanly with main.

  • blocking The new tests/test_menu_i18n.py fails on Windows CI (Python source checks (windows-2022, part 1/2)). The fixture is built with -Werror (line 442), and the Windows CRT marks std::fopen (gpu/vk/vk_menu_lang.h:93) and std::getenv (lines 117 and 121) deprecated. Main fixed the same thing for another test in #2397 by putting #define _CRT_SECURE_NO_WARNINGS at the top of the fixture source. Adding -D_CRT_SECURE_NO_WARNINGS to the compile line would work too. Part 2/2's failure (test_native_astc_texture_count.py) is the one #2397 fixed, and goes away on rebase.
  • should fix CJK languages on a PC without a CJK font. merge_language_fallbacks (gpu/vk/vk_imgui.cpp) looks for system fonts: Windows' Yu Gothic, Malgun, YaHei or JhengHei, and Noto CJK or a few others on Linux. If none is found, it only logs no system CJK font found (line 215), but i18n::tr still returns the Japanese, Korean or Chinese strings. The menu is then drawn in glyphs the font doesn't have, which is worse than today's English. This will happen on any Linux system without Noto CJK or one of the listed fonts at those exact paths: minimal installs, and possibly SteamOS, which I haven't checked. The Linux list also only looks at fixed paths, so a font installed elsewhere, or found only through fontconfig, is missed. When the probe glyph still isn't in the font after the merge, fall back to English for the UI: set the active language to kEnUS and log it. The game's own font may already cover CJK when it's used, which the needs() check handles.
  • should fix Two new switches, RX_VK_UI_LANG (vk_menu_lang.h:117) and RX_VK_UI_FONT (vk_imgui.cpp:132), aren't documented. CONTRIBUTING asks for a row next to RX_VK_UI_GAME_FONT in docs/development.md.
  • should fix Screenshots. This is entirely on-screen, and German, French and Russian strings are much longer than English, so clipping in the rows, prompt bar and help box is the main risk. RX_VK_SHOTS, or even a phone photo, would do. A long-string language (de or ru), a CJK one, and the start-up screen at 1280x720 and at the smallest Menu size would cover it.
  • question vk_menu_i18n.h:662 and :714: the description says the active language is "thread-safe atomic", but state_lang()/state_ready() are plain statics, initialised on first use. next_buf() hands out a shared 16-slot ring with a non-atomic pos. As far as I can tell every caller runs on the thread that draws the menu, so this is fine today. Please either make the comment and description match, or make them atomic or thread_local so a later caller on another thread can't corrupt the strings.
  • question bake_some() (vk_imgui.cpp:484): for CJK, prebake_extra holds every distinct character of the translated catalog, likely several hundred. Each prebake frame then rasterizes all of them for one font size, during play before the menu is first opened. Did you see a frame-time spike on the start-up screen or in the first minutes with ja or zh-Hans? On a Steam Deck that could be noticeable. Spreading the extra glyphs over a few frames would bound it.
  • minor The PR description has broken escape sequences in the language list (^[n-US, ests/...).
Translating the menu and the start-up screen is a real gain for players who don't read English, and keeping the `.ini` keys and the strings the tests inspect in English was the right call. I covered the language detection, the font fallback, the glyph prebaking and the tests. I spot-checked the catalog but didn't review the 16 languages' wording. The `vk_menu.cpp` checks pass at this head on Linux (51), and the branch merges cleanly with main. - **blocking** The new `tests/test_menu_i18n.py` fails on Windows CI (*Python source checks (windows-2022, part 1/2)*). The fixture is built with `-Werror` (line 442), and the Windows CRT marks `std::fopen` (`gpu/vk/vk_menu_lang.h:93`) and `std::getenv` (lines 117 and 121) deprecated. Main fixed the same thing for another test in #2397 by putting `#define _CRT_SECURE_NO_WARNINGS` at the top of the fixture source. Adding `-D_CRT_SECURE_NO_WARNINGS` to the compile line would work too. Part 2/2's failure (`test_native_astc_texture_count.py`) is the one #2397 fixed, and goes away on rebase. - **should fix** CJK languages on a PC without a CJK font. `merge_language_fallbacks` (`gpu/vk/vk_imgui.cpp`) looks for system fonts: Windows' Yu Gothic, Malgun, YaHei or JhengHei, and Noto CJK or a few others on Linux. If none is found, it only logs `no system CJK font found` (line 215), but `i18n::tr` still returns the Japanese, Korean or Chinese strings. The menu is then drawn in glyphs the font doesn't have, which is worse than today's English. This will happen on any Linux system without Noto CJK or one of the listed fonts at those exact paths: minimal installs, and possibly SteamOS, which I haven't checked. The Linux list also only looks at fixed paths, so a font installed elsewhere, or found only through fontconfig, is missed. When the probe glyph still isn't in the font after the merge, fall back to English for the UI: set the active language to `kEnUS` and log it. The game's own font may already cover CJK when it's used, which the `needs()` check handles. - **should fix** Two new switches, `RX_VK_UI_LANG` (`vk_menu_lang.h:117`) and `RX_VK_UI_FONT` (`vk_imgui.cpp:132`), aren't documented. CONTRIBUTING asks for a row next to `RX_VK_UI_GAME_FONT` in `docs/development.md`. - **should fix** Screenshots. This is entirely on-screen, and German, French and Russian strings are much longer than English, so clipping in the rows, prompt bar and help box is the main risk. `RX_VK_SHOTS`, or even a phone photo, would do. A long-string language (de or ru), a CJK one, and the start-up screen at 1280x720 and at the smallest Menu size would cover it. - **question** `vk_menu_i18n.h:662` and `:714`: the description says the active language is "thread-safe atomic", but `state_lang()`/`state_ready()` are plain statics, initialised on first use. `next_buf()` hands out a shared 16-slot ring with a non-atomic `pos`. As far as I can tell every caller runs on the thread that draws the menu, so this is fine today. Please either make the comment and description match, or make them atomic or `thread_local` so a later caller on another thread can't corrupt the strings. - **question** `bake_some()` (`vk_imgui.cpp:484`): for CJK, `prebake_extra` holds every distinct character of the translated catalog, likely several hundred. Each prebake frame then rasterizes all of them for one font size, during play before the menu is first opened. Did you see a frame-time spike on the start-up screen or in the first minutes with `ja` or `zh-Hans`? On a Steam Deck that could be noticeable. Spreading the extra glyphs over a few frames would bound it. - **minor** The PR description has broken escape sequences in the language list (`^[n-US`, ` ests/...`).
oscarlosu-lab commented 2026-11-11 21:25:50 +00:00 (Migrated from github.com)

Thanks for the thorough review @Joey-Magnus! All requested changes have been addressed and rebased onto the latest main:

  1. Header ordering & active language state (vk_imgui.cpp / vk_menu_lang.h): Moved state_lang(), state_ready(), init(), set_active_lang(), set_lang_for_test(), and current_lang() (plus <atomic>) into gpu/vk/vk_menu_lang.h so vk_imgui.cpp compiles cleanly without forward-declaration issues, and wired active_ui_lang() consistently.
  2. Upstream rebase & new strings: Rebased onto origin/main (including #2378, #1859, and #2197) and added 16-language translations for Restart needed, Compact, Full menu, Right Shift, and 2.2 GB (4GB preset).
  3. Tests: Updated tests/test_menu_tune.py assertions for localized prompts, added coverage in tests/test_menu_i18n.py (including set_active_lang(i18n::kJa) fallback behavior and #2378/#1859 translations). python -I -B tests/run_all.py menu prompt font utf8 run_all_declarations nup_read_name bake_portability passes 28 passed, 0 failed, 0 skipped on Windows (llvm-mingw).
  4. Screenshots (1280x720, Vulkan capture):

(Fixed markdown escaping in the PR body as well.)

Thanks for the thorough review @Joey-Magnus! All requested changes have been addressed and rebased onto the latest `main`: 1. **Header ordering & active language state (`vk_imgui.cpp` / `vk_menu_lang.h`)**: Moved `state_lang()`, `state_ready()`, `init()`, `set_active_lang()`, `set_lang_for_test()`, and `current_lang()` (plus `<atomic>`) into `gpu/vk/vk_menu_lang.h` so `vk_imgui.cpp` compiles cleanly without forward-declaration issues, and wired `active_ui_lang()` consistently. 2. **Upstream rebase & new strings**: Rebased onto `origin/main` (including `#2378`, `#1859`, and `#2197`) and added 16-language translations for `Restart needed`, `Compact`, `Full menu`, `Right Shift`, and `2.2 GB (4GB preset)`. 3. **Tests**: Updated `tests/test_menu_tune.py` assertions for localized prompts, added coverage in `tests/test_menu_i18n.py` (including `set_active_lang(i18n::kJa)` fallback behavior and `#2378`/`#1859` translations). `python -I -B tests/run_all.py menu prompt font utf8 run_all_declarations nup_read_name bake_portability` passes **28 passed, 0 failed, 0 skipped** on Windows (`llvm-mingw`). 4. **Screenshots (`1280x720`, Vulkan capture)**: - Long strings (`de`, Medium `menu_size=2` & Audio tab): [de Medium](https://gist.githubusercontent.com/oscarlosu-lab/b17a862de67d0534131cf4e9f8e258a4/raw/01_de_medium_1280x720.png), [de Audio tab](https://gist.githubusercontent.com/oscarlosu-lab/b17a862de67d0534131cf4e9f8e258a4/raw/06_de_audio_tab_1280x720.png) - Smallest Menu size (`de`, Small `menu_size=1`): [de Small](https://gist.githubusercontent.com/oscarlosu-lab/b17a862de67d0534131cf4e9f8e258a4/raw/02_de_small_1280x720.png) - Cyrillic (`ru`): [ru Medium](https://gist.githubusercontent.com/oscarlosu-lab/b17a862de67d0534131cf4e9f8e258a4/raw/03_ru_medium_1280x720.png) - CJK (`ja` & `zh-Hans`): [ja CJK](https://gist.githubusercontent.com/oscarlosu-lab/b17a862de67d0534131cf4e9f8e258a4/raw/04_ja_cjk_1280x720.png), [zh-Hans CJK](https://gist.githubusercontent.com/oscarlosu-lab/b17a862de67d0534131cf4e9f8e258a4/raw/05_zh_hans_cjk_1280x720.png) - Startup preparation screen (`draw_startup`): [startup de](https://gist.githubusercontent.com/oscarlosu-lab/b17a862de67d0534131cf4e9f8e258a4/raw/07_startup_de_1280x720.png), [startup ja](https://gist.githubusercontent.com/oscarlosu-lab/b17a862de67d0534131cf4e9f8e258a4/raw/08_startup_ja_1280x720.png), [startup ru](https://gist.githubusercontent.com/oscarlosu-lab/b17a862de67d0534131cf4e9f8e258a4/raw/09_startup_ru_1280x720.png) *(Fixed markdown escaping in the PR body as well.)*
Joey-Magnus (Migrated from github.com) reviewed 2026-11-11 21:26:45 +00:00
Joey-Magnus (Migrated from github.com) left a comment

It needs a rebase (vk_menu.cpp/vk_imgui.cpp changed in #2378, #1859 and #2342). Windows part 1 fails on this PR's own tests/test_menu_i18n.py: -Werror plus the CRT's fopen/getenv deprecation needs _CRT_SECURE_NO_WARNINGS. Part 2 is main's old ASTC failure.

Also:

  • With no CJK system font, the menu draws missing glyphs instead of falling back to English.
  • The two new switches are undocumented, and there are no screenshots.
  • If #2435 lands first, the new "Keyboard" prompt value and hints need translating.
It needs a rebase (`vk_menu.cpp`/`vk_imgui.cpp` changed in #2378, #1859 and #2342). Windows part 1 fails on this PR's own `tests/test_menu_i18n.py`: `-Werror` plus the CRT's `fopen`/`getenv` deprecation needs `_CRT_SECURE_NO_WARNINGS`. Part 2 is main's old ASTC failure. Also: - With no CJK system font, the menu draws missing glyphs instead of falling back to English. - The two new switches are undocumented, and there are no screenshots. - If #2435 lands first, the new "Keyboard" prompt value and hints need translating.
hckrman101 commented 2026-11-11 22:17:25 +00:00 (Migrated from github.com)

This now conflicts with main in gpu/vk/vk_menu.cpp, tests/test_menu_tune.py. Could you merge main into the branch (or rebase) when you get a chance? I'll take another look once it's up to date.

This now conflicts with main in `gpu/vk/vk_menu.cpp`, `tests/test_menu_tune.py`. Could you merge main into the branch (or rebase) when you get a chance? I'll take another look once it's up to date.
oscarlosu-lab commented 2026-11-11 22:56:27 +00:00 (Migrated from github.com)

Rebased onto eaef1460 (#2177's Graphics sections included: their five headings are in the catalog in all 16 languages) and pushed as 192f79fc. Status of the review points:

  • Windows CI: the fixture defines _CRT_SECURE_NO_WARNINGS, as #2397 did (tests/test_menu_i18n.py).
  • No CJK font: when no font covers the language's script, the UI falls back to English and logs it, instead of drawing missing glyphs (vk_imgui.cpp merge_language_fallbacks). RX_VK_UI_FONT=<ttf/ttc> points it at a font.
  • Switches: RX_VK_UI_LANG and RX_VK_UI_FONT are in docs/development.md.
  • Screenshots: in the description (de Medium/Small, ru, ja, zh-Hans, and the start-up screen in de/ja/ru).
  • #2435: if it lands first I'll add its Keyboard texts in the same catalog.

Local checks with llvm-mingw's clang++: test_menu_i18n (16 languages), test_menu_sections, test_menu_tune, test_pipeline_share, and run_all.py's menu/prompt/font/utf8 groups pass.

Rebased onto eaef1460 (#2177's Graphics sections included: their five headings are in the catalog in all 16 languages) and pushed as 192f79fc. Status of the review points: - Windows CI: the fixture defines `_CRT_SECURE_NO_WARNINGS`, as #2397 did (tests/test_menu_i18n.py). - No CJK font: when no font covers the language's script, the UI falls back to English and logs it, instead of drawing missing glyphs (vk_imgui.cpp `merge_language_fallbacks`). `RX_VK_UI_FONT=<ttf/ttc>` points it at a font. - Switches: `RX_VK_UI_LANG` and `RX_VK_UI_FONT` are in docs/development.md. - Screenshots: in the description (de Medium/Small, ru, ja, zh-Hans, and the start-up screen in de/ja/ru). - #2435: if it lands first I'll add its Keyboard texts in the same catalog. Local checks with llvm-mingw's clang++: test_menu_i18n (16 languages), test_menu_sections, test_menu_tune, test_pipeline_share, and run_all.py's menu/prompt/font/utf8 groups pass.
oscarlosu-lab commented 2026-11-11 23:14:48 +00:00 (Migrated from github.com)

Note on the current CI failures on 192f79fc — none of them are from this PR (tests/test_menu_i18n.py, test_menu_tune.py, test_pipeline_share.py, Python source checks (ubuntu-24.04, part 1/2), Windows Vulkan, Hookshot Builder, appimage, dav1d, and SPIR-V fixtures all passed):

  • Python source checks (ubuntu-24.04, part 2/2): fails only in tests/test_env_on.py (HOS_FPS_LOG in host/oot_high_fps.c:15, from 8fcc8c22 / #2470; 221 passed, 1 failed).
  • Python source checks (windows-2022, part 1/2): fails in tests/test_env_on.py (upstream #2470), tests/test_pcache_header_read.py (fopen under -Werror,-Wdeprecated-declarations, upstream #2488), and tests/test_driver_faults.py (Assertion failed: most > 1 timing flake under Windows runner load; passed in Ubuntu part 2/2).
  • Python source checks (windows-2022, part 2/2): fails only in tests/test_psychov35.py (std::scanf under -Werror,-Wdeprecated-declarations, missing _CRT_SECURE_NO_WARNINGS, upstream #2481).

Happy to rebase again once main picks up those fixes.

Note on the current CI failures on `192f79fc` — none of them are from this PR (`tests/test_menu_i18n.py`, `test_menu_tune.py`, `test_pipeline_share.py`, `Python source checks (ubuntu-24.04, part 1/2)`, Windows Vulkan, `Hookshot Builder`, `appimage`, `dav1d`, and `SPIR-V fixtures` all passed): - `Python source checks (ubuntu-24.04, part 2/2)`: fails only in `tests/test_env_on.py` (`HOS_FPS_LOG` in `host/oot_high_fps.c:15`, from `8fcc8c22` / #2470; `221 passed, 1 failed`). - `Python source checks (windows-2022, part 1/2)`: fails in `tests/test_env_on.py` (upstream #2470), `tests/test_pcache_header_read.py` (`fopen` under `-Werror,-Wdeprecated-declarations`, upstream #2488), and `tests/test_driver_faults.py` (`Assertion failed: most > 1` timing flake under Windows runner load; passed in Ubuntu `part 2/2`). - `Python source checks (windows-2022, part 2/2)`: fails only in `tests/test_psychov35.py` (`std::scanf` under `-Werror,-Wdeprecated-declarations`, missing `_CRT_SECURE_NO_WARNINGS`, upstream #2481). Happy to rebase again once `main` picks up those fixes.
github-sync closed this pull request 2026-11-12 06:23:09 +00:00
Owner

@oscarlosu-lab commented on GitHub · 2026-11-12 05:58 UTC · original

#1864 landed with the same system, so this branch is superseded. What #1864 lacked (the start-up screen and FPS counter in the menu's language, and English where no font draws a script) is in #2679, rebuilt on #1864's tables. Thanks for the review, Joey-Magnus.

> [@oscarlosu-lab](https://github.com/oscarlosu-lab) commented on GitHub · 2026-11-12 05:58 UTC · [original](https://github.com/NotRexed/Hookshot/pull/2417#issuecomment-6815968461) #1864 landed with the same system, so this branch is superseded. What #1864 lacked (the start-up screen and FPS counter in the menu's language, and English where no font draws a script) is in #2679, rebuilt on #1864's tables. Thanks for the review, Joey-Magnus. <!-- github-sync:c:6815968461 -->
Commenting is not possible because the repository is archived.
No description provided.