feat(menu): add a 1280x720 output resolution #1641

Open
bronze-ff wants to merge 1 commit from bronze-ff/feat/output-720p into main
bronze-ff commented 2026-11-10 11:53:35 +00:00 (Migrated from github.com)

Summary

Addresses the 1280×720 request in #1299, tracked in #1007. Add 1280x720 to Graphics → Output resolution. This sets the full docked frame, including the HUD and text, through the existing output-size path. Like the other output choices, it applies after a restart.

The new choice appears before 1920x1080 but is saved as output_res=5, so existing saved values keep their meaning. HOS_OUTPUT_RES=5 also works as a one-run override.

Validation

  • The expanded output-resolution fixture fails on main because the host rejects saved mode 5. It passes with this change for saved 720p, the environment override, menu order, render-size labels, handheld mode and existing output modes.
  • Output-resolution, render-target pool, widescreen geometry, menu restart and upscaler tests passed on Windows and Linux. Both changed translation units passed Windows syntax checks.
  • These tests use synthetic settings and do not run the game or measure performance.
## Summary Addresses the 1280×720 request in #1299, tracked in #1007. Add **1280x720** to **Graphics → Output resolution**. This sets the full docked frame, including the HUD and text, through the existing output-size path. Like the other output choices, it applies after a restart. The new choice appears before 1920x1080 but is saved as `output_res=5`, so existing saved values keep their meaning. `HOS_OUTPUT_RES=5` also works as a one-run override. ## Validation - The expanded output-resolution fixture fails on `main` because the host rejects saved mode 5. It passes with this change for saved 720p, the environment override, menu order, render-size labels, handheld mode and existing output modes. - Output-resolution, render-target pool, widescreen geometry, menu restart and upscaler tests passed on Windows and Linux. Both changed translation units passed Windows syntax checks. - These tests use synthetic settings and do not run the game or measure performance.
hckrman101 (Migrated from github.com) approved these changes 2026-11-10 16:40:12 +00:00
hckrman101 (Migrated from github.com) left a comment

Looks good. The new entry is appended as id 5 so saved values keep their meaning, kOutputOrder puts it first in the menu, hos_output_size/output_mode/names[] are all extended consistently, and the docs, readme, hint text and test cases (saved 5, env override, handheld fallback, menu stepping, 640x360 label) match the code. CI is green.

Heads-up only: #1670 (5K output) also takes output_res id 5, so whichever lands second needs to renumber.

Looks good. The new entry is appended as id 5 so saved values keep their meaning, kOutputOrder puts it first in the menu, hos_output_size/output_mode/names[] are all extended consistently, and the docs, readme, hint text and test cases (saved 5, env override, handheld fallback, menu stepping, 640x360 label) match the code. CI is green. Heads-up only: #1670 (5K output) also takes output_res id 5, so whichever lands second needs to renumber.
hckrman101 commented 2026-11-10 17:04:24 +00:00 (Migrated from github.com)

Let's actually wait on #1670, they will make a separate PR which changes the system for resolution, then we can easily add resolutions later

Let's actually wait on https://git.magicbean.dev/MagicBeanDev/Hookshot/pulls/1670, they will make a separate PR which changes the system for resolution, then we can easily add resolutions later
hckrman101 commented 2026-11-10 17:50:00 +00:00 (Migrated from github.com)

Heads-up: this conflicts with main now (a lot landed today). Could you merge main into the branch (or rebase) and resolve the conflicts? Thanks!

Heads-up: this conflicts with main now (a lot landed today). Could you merge main into the branch (or rebase) and resolve the conflicts? Thanks!
Joey-Magnus (Migrated from github.com) reviewed 2026-11-11 21:46:04 +00:00
Joey-Magnus (Migrated from github.com) left a comment

I'd close this. Since #1814, main saves Output resolution as a size (output_res=1280x720), and parse_output/hos_output_parse accept any size down to 640x360. So 1280x720 already works from hookshot_options.ini and shows as the custom choice in the menu. The numeric scheme here also clashes with main: kOutputs in vk_menu.cpp now has six entries, and an old saved 5 parses as 5120x2880 (added by #1670), so this PR's output_res=5 and HOS_OUTPUT_RES=5 would open the wrong mode. The menu also sorts the choices by size now (step_output_choice), so kOutputOrder is gone.

If a 720p entry is still wanted in the list itself, it's a one-line addition of {1280, 720} to kOutputs plus an extended test case. That's better as a fresh PR than a rebase of this one.

I'd close this. Since #1814, main saves Output resolution as a size (`output_res=1280x720`), and `parse_output`/`hos_output_parse` accept any size down to 640x360. So 1280x720 already works from hookshot_options.ini and shows as the custom choice in the menu. The numeric scheme here also clashes with main: `kOutputs` in vk_menu.cpp now has six entries, and an old saved `5` parses as 5120x2880 (added by #1670), so this PR's `output_res=5` and `HOS_OUTPUT_RES=5` would open the wrong mode. The menu also sorts the choices by size now (`step_output_choice`), so `kOutputOrder` is gone. If a 720p entry is still wanted in the list itself, it's a one-line addition of `{1280, 720}` to `kOutputs` plus an extended test case. That's better as a fresh PR than a rebase of this one.
hckrman101 commented 2026-11-11 22:03:25 +00:00 (Migrated from github.com)

Yes let's use the new system. We can still add 720p as an option, but using new system

Yes let's use the new system. We can still add 720p as an option, but using new system
Commenting is not possible because the repository is archived.
No description provided.