Skip to content

docs(readme): the option table lists every row of the menu - #2105

Merged
hckrman101 merged 1 commit into
NotRexed:mainfrom
jarynclouatre:docs/readme-menu-rows
Nov 12, 2026
Merged

hckrman101 merged 1 commit into
NotRexed:mainfrom
jarynclouatre:docs/readme-menu-rows

Conversation

@jarynclouatre

@jarynclouatre jarynclouatre commented Nov 11, 2026 •

Copy link
Copy Markdown
Contributor

Four rows of the Insert menu had no line in the readme's option table and are not mentioned anywhere else in it: Ultrawide menus, Mesh shaders, Discord status (on by default), and the Controls page's Button prompts. Button prompts is the row that picks the button icons the game shows, which is what the reporters of #1907, #1622 and #1655 were looking for.

Each now has a line with its choices and default as the menu has them, and a short note under the table taken from the menu's own help texts. Layout preset's line says it is on the Controls page.

tests/test_readme_menu_rows.py (new) reads the rows from gpu/vk/vk_menu.cpp and the table from readme.md. Every row of the Graphics, Audio, Gameplay and Controls tabs and of the Controls page must have a line, every line must be a row the menu has, and they must be in the menu's order. The Debug tab's lines at the end of the table (Debug tools and its Developer rows) are left out of the check.

Rebased on main fce5345. Main has given these docs most of what the first version added (HDR contrast, VRAM budget, Frame generation by, the new order, Menu shortcut's Esc), and the Graphics tab now has section titles, so the update is smaller: lines and notes for Ultrawide menus, Mesh shaders, Discord status and Button prompts, a line for Compact menu key, and the test skips the section titles (rows with heading set). Button prompts' note says it changes while the game runs since #2366, Auto follows the controller, and a restart is asked only when the prompt files could not all be found. docs/development.md says a new row needs its readme line.

Testing (Linux): the new test fails on main's readme, naming the five rows with no line and the order, and passes with this change. test_camera_speed.py and test_stick_dead_zone.py, which also read the readme, pass. Docs only otherwise.

@Joey-Magnus Joey-Magnus left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks, this fills a real gap: Button prompts is exactly what #1907/#1622/#1655 were asking about, and a check that keeps the readme's table in step with vk_menu.cpp is worth having. The four new lines match the menu at your base: the choices, the defaults (wide_menus = 1, mesh_mode = 0, discord = 1, prompts = 0) and mesh_shaders= in hookshot_options.ini all check out. The branch is 41 commits behind main, though, and main has moved in ways that break it:

blocking tests/test_readme_menu_rows.py: I merged the branch with current origin/main (no textual conflicts) and the new test fails twice. Rows added to the menu since your base have no line: HDR contrast (#2342), VRAM budget (#1859) and Frame generation by (#2118). The order check also fails, because the Graphics tab now has Frame generation and Frame pacing after V-Sync … HDR contrast, not before V-Sync. This is the drift the test is meant to catch, so after a rebase please add those three lines (choices and defaults from their tx_* and opts defaults) and move the Frame generation/Frame pacing lines to match.

should fix readme.md:327 and readme.md:408-410: since #2366 (merged today), a change of Button prompts shows while the game runs. host/prompts.c rewrites the loaded prompts, and the menu asks for a restart only when not every live part was found (hos_prompts_live_parts() != HOS_PROMPTS_LIVE_ALL). "(on the Controls page; after a restart)" and "A change applies after a restart" are now wrong for the usual case. Something like "applies at once; after a restart if the game's icons could not all be found" would match #2366. Please also re-check the Auto sentence against #2366's description of how Auto now follows the controller.

minor: this check makes every future PR that adds a menu row also add a readme line. That's good, but contributors will only find out when CI goes red. A sentence in CONTRIBUTING.md or docs/development.md (where menu rows are described) saying so would save a round trip.

The CI failures on this run (test_vcore_fs_open, test_vcore_video_acquire: env_on undeclared) come from your base and were fixed on main by #2380, so a rebase clears them too.

@jarynclouatre

Copy link
Copy Markdown
Contributor Author

Thanks. Rebased on main (463eab1) and done in 8bbf69c:

  • Lines for HDR contrast, VRAM budget and Frame generation by, plus Compact menu key, which main added after your merge. Frame generation and Frame pacing now sit after Render resolution, where the menu has them. Menu shortcut lists the Esc choice.
  • Button prompts: the table no longer says "after a restart", and the note says a change shows while the game runs, a text on screen keeps its old icons until it is shown again, and a restart is asked only when the prompt files could not all be found. Auto now says it changes with the first controller while the game runs (live_face in host/prompts.c).
  • docs/development.md, under "The options file", says a new row needs its readme line and names the test.

test_readme_menu_rows.py passes on this head, and fails on main's readme naming the eight rows with no line.

@Joey-Magnus Joey-Magnus left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The red CI isn't this PR's: I ran the suite on its base with and without it, and the same 3 tests fail both ways; the appimage failure was apt. But merged onto today's main, the new tests/test_readme_menu_rows.py fails, so merging would turn main red. Four rows were added since: HDR contrast, VRAM budget, Frame generation by and Compact menu key. Frame generation and Frame pacing also moved below VRAM budget. A rebase that adds those rows and reorders the lines should do it. The guard test itself is a good idea.

@jarynclouatre

Copy link
Copy Markdown
Contributor Author

Rebased on current main (fce5345) and force-pushed. The README conflict came from main reordering the table and adding section titles; the branch now adds only what is still missing (Ultrawide menus, Mesh shaders, Discord status, Button prompts, Compact menu key), and the test skips the section-title rows. The test fails on main's README and passes here. Description updated.

Five rows of the Insert menu had no line in the readme's option table: Ultrawide menus, Mesh shaders, Discord
status (on by default), Compact menu key and the Controls page's Button prompts, the row that chooses the button
icons the game shows. Each gets its line, with its choices and default as the menu has them, and all but
Compact menu key a note below the table. Layout preset's line says it is on the Controls page.

tests/test_readme_menu_rows.py reads the menu's rows from gpu/vk/vk_menu.cpp and the table from readme.md: every row
of the Graphics, Audio, Gameplay and Controls tabs and of the Controls page has a line, every line is a row the menu
has, and they are in the menu's order. The Graphics tab's section titles and the Debug tab's lines at the end of
the table (Debug tools and its Developer rows) are left out of the check. docs/development.md says a new row needs
its readme line.
@jarynclouatre

Copy link
Copy Markdown
Contributor Author

Rebased on current main (51da046). Main now describes Button prompts and the two language rows itself, so the branch keeps only the rows still missing from the table (Ultrawide menus, Mesh shaders, Discord status, Button prompts and Compact menu key in the table) and their notes. The test passes on the rebased branch.

@Joey-Magnus Joey-Magnus left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Both points from my earlier reviews are fixed. The branch is on current main and only adds the lines that are still missing. The Button prompts text matches #2366's live switching. docs/development.md now tells people that a new row needs its readme line.

I merged it into current main and tests/test_readme_menu_rows.py passes. I checked the new lines against vk_menu.cpp and vk_menu.h: Ultrawide menus defaults to wide_menus = 1 (Centred, blurred sides), Mesh shaders is Automatic/Native/Compute after a restart, Discord status is on by default, and Compact menu key is Right Shift or Right Ctrl.

One thing for the maintainers: once this lands, every open PR that adds a menu row needs a readme line, or this test fails. I checked two. With #1979 (Sharpening method) merged on top, it fails. With #2261 (Item wheel) it passes, because that PR already adds its line. #2151's rows will need the same check after its rebase.

@hckrman101
hckrman101 merged commit cf2e156 into NotRexed:main Nov 12, 2026
13 checks passed
Joey-Magnus added a commit to Joey-Magnus/Hookshot that referenced this pull request Nov 12, 2026
… check reads docs/user/settings.md

Conflicts, and how each was resolved:

- readme.md: kept this branch's front page. NotRexed#2105's new option table lines
  (Ultrawide menus, Mesh shaders, Discord status, Button prompts, Compact menu key)
  were already rows in docs/user/settings.md; its Mesh shaders and Discord status
  notes went into those rows. NotRexed#2592's note on mods with tables for several game
  versions went to docs/user/mods.md, NotRexed#1630's RX_VK_PROGRAM_CACHE_ZSTD to
  docs/dev/switches.md.
- docs/development.md (deleted here): NotRexed#2825's RX_VK_MIRROR_TRIM and NotRexed#2826's
  RX_VK_EVICT_EXCESS to switches.md; NotRexed#2105's rule that a new menu row needs a line
  in the option table to CONTRIBUTING.md's code conventions, naming settings.md.

tests/test_readme_menu_rows.py (NotRexed#2105) is now tests/test_settings_menu_rows.py and
reads settings.md's per-tab tables instead of the readme's single table. Its five
checks are kept (every row has a line, every line is a row, the menu's order, four
cells with choices and a default), and it now also holds the Motion and Controls
pages' tables to their rows and order, since settings.md lists them.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-authored-by: Cursor <cursoragent@cursor.com>
nullifyshot added a commit to nullifyshot/Hookshot that referenced this pull request Nov 12, 2026
…adme check passes

NotRexed#2827 added the Gameplay tab's Skip opening row and NotRexed#2105 made the readme's
option table list every row of the menu; they merged close together, so
tests/test_readme_menu_rows.py fails on main with "menu rows with no line in
readme.md's option table: Skip opening".

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
nullifyshot added a commit to nullifyshot/Hookshot that referenced this pull request Nov 12, 2026
…adme check passes

NotRexed#2827 added the Gameplay tab's Skip opening row and NotRexed#2105 made the readme's
option table list every row of the menu; they merged close together, so
tests/test_readme_menu_rows.py fails on main with "menu rows with no line in
readme.md's option table: Skip opening".

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants