feat(graphics): extend the FOV slider to 300 percent #199
No reviewers
Labels
No labels
area/accessibility
area/audio
area/input
area/install
area/menu
area/renderer
area/saves
area/upscaling
good first issue
gpu/amd
gpu/igpu
gpu/intel
gpu/nvidia
help wanted
kind
bug
kind
chore
kind
docs
kind
feature
kind
performance
kind
question
needs measurements
platform/linux
platform/steam-deck
platform/windows
preview
priority
critical
priority
high
priority
low
status
blocked
status
confirmed
status
duplicate
status
invalid
status
needs-info
status
wontfix
testing wanted
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set
Reference
MagicBeanDev/Longshot!199
Loading…
Reference in a new issue
No description provided.
Delete branch "brunobaccari/Longshot:feat/longshot-fov-range-300"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Why
Players who want a wider gameplay view currently reach the slider's limit at 150%. This extends the existing Field of view control to 300% and places it under Graphics.
What changed
host/oot_fov.c. Preserve default 100%, the savedfield_of_viewkey, option ID, the 5–140 degree angular clamp, gameplay camera ownership and event-camera exclusion.Flags and settings
field_of_viewNo new environment variable, option ID, save format or renderer interface.
Measurements
main:
514591a3(2026-11-13)this PR: feat/longshot-fov-range-300 @
e2e7f320Hardware: Windows 11 Pro, Ryzen 5 3600, 64 GB RAM, Radeon RX 5500 XT 8 GB / AMD 26.10.1.
Scene and settings for current runtime comparison: pending. The intended comparison is Kokiri Forest with identical save/camera, 1920×1080 native, upscaler/FG/V-Sync off, uncapped, audio 0, visible NoActivate window.
Method: read-only API/Git review identifies current head
e2e7f320on main514591a3. Its three topic patches match the previously checked3439a77aseries (git range-diff); the intervening main change updates Discord links. The earlier focused checks below retain their original commit identities. No new suite, build or gameplay result is claimed. Full current-head suite, application build and interleaved gameplay measurements remain pending; shared build/GPU resources are reserved for the separate PR200 validation.514591a3e2e7f320d9648863translation failure is recorded below3439a77aand an earlier 76aad7d2 run had 7 passed / 1 baseline failureHistorical evidence only: main
0c74253dand FOV446c856ehad two interleaved 600-frame windows each at FOV 100%. Median run FPS was 21.3899 / 21.8349; the baseline runs varied 11.6%, so no gain, regression or zero-cost conclusion was established. The four runs are retained indocs/tested-configurations.md. Main has since changed GPU occlusion handling; these results do not validate the present commits.Testing
Tested: Current read-only Git/API verification confirms
e2e7f320on514591a3, with all three topic patches unchanged from3439a77a. The current diff remains seven files, 17 insertions and 9 deletions;git diff --checkand merge simulation pass. No source test, application build or game session was started for this metadata update.Earlier rebase checkpoint at
3439a77a: all three remote topic commits frombd8912e7were rebased ontod9648863. The README conflict retains upstream HDR/AMD FSR 4 documentation and the Graphics FOV row. The menu header retains upstream Damage taken and the FOV default/range comment. The later mouse and controller-layout fixes are included unchanged. The final diff is still seven files, 17 insertions and 9 deletions.git diff --checkpasses; local merge simulation againstd9648863has no conflicts. An independent source review found no issue in the conflict resolution.At intermediate head
76aad7d2, eight serial Windows checks completed: seven passed (damage_debug_menu,framegen_preset,menu_keys,oot_damage,oot_fov,option_ids,readme_menu_rows), andmenu_i18nfailed because the PT-BR table still contains an old Debug help key. The same assertion was independently reproduced using the exact four required blobs from both maind906c8f4and then-current maind9648863: four unit tests passed and one failed in each. The translation key ends inown speed., while the current menu help ends inown speed and damage.. No translation or assertion was changed by this FOV PR.After incorporating the final upstream controller-layout fix,
3439a77apassed all four repeated/new checks:framegen_preset,oot_fov,pad_layout, andreadme_menu_rows(4 passed, 0 failed, 0 skipped in 74 s, serial Windows run). The prior eight-check run took 271 s while the manual Launcher preparation was active. These elapsed times are test-run durations, not game performance measurements.Reproduce focused checks using Builder Python and llvm-mingw with
LONGSHOT_MINGWandRX_CPMconfigured:python -I -B tests/run_all.py --jobs 1 oot_fov readme_menu_rows menu_keys option_ids framegen_preset menu_i18n damage_debug_menu oot_damage pad_layout.Earlier completed suite, explicitly at
4e0d71f9: 492 passed, 4 failed, 33 skipped in 883 s. All four failure names reproduced on clean mainf647a072:nx2/test_nup_paths.pyneeds Windows symlink privilege 1314;test_bug_report.pyrejects byte0xe3in an OS diagnostic as UTF-8;test_check_third_party.pyfails its authored clean-tree fixture;test_release.pyneeds OpenSSL and encounters a non-Win32 git-cliff fixture plus a CRLF/LF assertion. These are historical baseline results, not a current-main reproduction or a clean pass.Earlier Linux focal validation at
4e0d71f9passed in disposable Alpine 3.22 containers (GCC/G++ 14.2.0, Python 3.12.16): the FOV Python/C fixture, menu-key fixture, and object compilation of actualhost/oot_fov.cwith official runtime headers generated by the existing helper. FOV source and those fixtures remain unchanged. No full Linux application or gameplay validation is claimed.Not tested: Focused checks, full suite and complete Windows application/renderer build at current
e2e7f320; current gameplay at 100/150/200/300%, reset, event cameras, aiming/zoom at 300%; new interleaved measurements/screenshots. Earlier full-suite/build attempts at5844f707were stopped to yield resources to the user's manual Launcher build; its processes were left untouched. Only lightweight serial checks were run at the earlier named checkpoints, without game assets or GPU; none were rerun for this metadata update. Earlier visible FOV/event-camera checks at446c856eare historical.Needs other testers: None. Author validation remains incomplete; no external testing is requested. The PR remains WIP until the pending author checks and measurements listed above are completed.
Screenshots
Historical captures only; new captures from the rebased build are pending.
Risk and rollback
High FOV values cause strong peripheral distortion and may increase rendering work. The percentage multiplies the native vertical angle subject to the retained 140-degree ceiling. Select 100% to restore the native gameplay angle on the next update. Revert the topic commits to restore the old range and location; no save migration or assets change.
Reviewer notes
Start at
hos_oot_fov()and the Graphics row ingpu/vk/vk_menu.cpp. The diff contains only the existing FOV feature and its documentation/tests; upstream Damage taken, HDR/FSR 4, mouse and controller-layout behavior is preserved. The earlier push of3439a77aused an explicit lease for remotebd8912e7; this metadata update does not push or alter the currente2e7f320head.Issues
Player-requested camera adjustment; no issue is closed.
Checklist
For everyone
type(scope): description).main. —514591a3, verified by API/Git on 2026-11-13.python -I -B tests/run_all.pyrun and passing (any failure that also fails onmainis named above). — Not run on this head; earlier 492/4/33 and baseline reproductions are identified above.third_party/untouched (a new folder with aPROVENANCE.mdinstead).If applicable
Assisted-by:/Co-Authored-By:trailers.docs/tested-configurations.mdfor each measured run. — Four historical runs, explicitly identified.tests/that reads changed source updated in this PR, not weakened.Ran the full Windows suite: 482 passed, 7 failed, 33 skipped, with source and fixture hashes unchanged. Baseline reproductions and the passing serial cleanup recheck are documented in the description. The actual changed host C also compiled on Linux. Release builds and in-game measurements are still in progress; this remains WIP.
The complete Windows standalone build linked the executable and Vulkan renderer with zero failures. The actual changed host translation unit also compiled on Linux; this is not a full Linux application or GPU run. Main has advanced only in README/CONTRIBUTING since the named build base; the final rebase is pending while the current runtime comparison is preserved. A warmed Kokiri baseline image is attached. Scripted, visible in-game comparisons are in progress; WIP remains until the repeated measurements and FOV captures are complete.
WIP: feat(graphics): extend the FOV slider to 300 percentto feat(graphics): extend the FOV slider to 300 percent6af043c32232227d8fb3feat(graphics): extend the FOV slider to 300 percentto WIP: feat(graphics): extend the FOV slider to 300 percent73e84b49b1f4213d2d4bf4213d2d4b4e0d71f9f4Rebased all three topic commits onto main
f647a072, preserving the upstream HDR text and every existing tested-configuration row while resolving the two documentation conflicts. Remote updates used explicit expected-head leases. Seven focused checks pass on4e0d71f9. The description now separates historical evidence from current validation; WIP is restored until the current full suite, builds and visible game comparison are completed.4e0d71f9f45844f7071dRebased onto main
fbd42024as5844f707without conflicts; the topic diff remains seven files. The prior full Windows run at4e0d71f9completed with 492 passed, 4 failed and 33 skips; all four failure names reproduced on clean main with the same causes, now described in Testing. Linux FOV/menu fixtures and actual host-unit compilation passed, and those sources are unchanged in this rebase. A new full run and builds are in progress because the new upstream renderer change must be present on both sides of the runtime comparison. WIP remains.The new validation attempt and shared development build were deliberately interrupted to give the user manual Launcher build exclusive resources. Only the validation process trees were stopped; their logs and partial files are preserved, and the user build was left untouched. This interruption is not a test failure or a completed current-head suite. Rebase and prior completed evidence are unchanged; WIP remains until validation can resume.
WIP: feat(graphics): extend the FOV slider to 300 percentto feat(graphics): extend the FOV slider to 300 percent5844f7071dbd8912e78abd8912e78a3439a77ae7feat(graphics): extend the FOV slider to 300 percentto WIP: feat(graphics): extend the FOV slider to 300 percentRebased the three existing topic commits from
bd8912e7onto maind9648863; published head3439a77awith an explicit expected-head force-with-lease. Resolved README.md and gpu/vk/vk_menu.h by retaining upstream HDR/AMD FSR 4 and Damage taken content alongside the FOV change. The later mouse and controller-layout fixes are also preserved. The diff remains 7 files, 17 insertions and 9 deletions; diff --check and local merge simulation pass, and Forgejo confirmed no merge conflicts after the push.Validation: the intermediate 76aad7d2 run completed with 7 checks passed and menu_i18n failed. That stale PT-BR Debug help key reproduces independently on current main
d9648863(4 unit tests passed, 1 failed). After the final rebase, all 4 selected checks passed: framegen_preset, oot_fov, pad_layout and readme_menu_rows.Full current-head suite, application build and gameplay measurements remain pending. The user's manual Launcher preparation was preserved; no full build, game or GPU test was started for this rebase. The description distinguishes these checks from older suite/runtime evidence, and WIP remains appropriate until current author validation is completed.
WIP: feat(graphics): extend the FOV slider to 300 percentto feat(graphics): extend the FOV slider to 300 percentfeat(graphics): extend the FOV slider to 300 percentto WIP: feat(graphics): extend the FOV slider to 300 percentWIP: feat(graphics): extend the FOV slider to 300 percentto feat(graphics): extend the FOV slider to 300 percentfeat(graphics): extend the FOV slider to 300 percentto WIP: feat(graphics): extend the FOV slider to 300 percentDescription check follow-up: corrected the Needs other testers field to the required None form because validation is still the author's work, with no external test request. Restored WIP status and kept every pending checkbox unchanged: current-head full suite, gameplay, measurements, screenshots and complete platform build validation are still pending. No source, commit, test result or measurement changed. This metadata edit retriggers only the PR-description workflow; no build or GPU run was started.
WIP: feat(graphics): extend the FOV slider to 300 percentto feat(graphics): extend the FOV slider to 300 percent3439a77ae7e2e7f3205dfeat(graphics): extend the FOV slider to 300 percentto WIP: feat(graphics): extend the FOV slider to 300 percentWIP: feat(graphics): extend the FOV slider to 300 percentto feat(graphics): extend the FOV slider to 300 percentView command line instructions
Checkout
From your project repository, check out a new branch and test the changes.