Upscaling and Anti-Aliasing Options and Controls Tab: Controller Layouts and Button Mapping #804
Labels
No labels
accessibility
autorelease: pending
autorelease: tagged
bug
dependencies
documentation
duplicate
enhancement
github_actions
good first issue
help wanted
invalid
question
testing wanted
wontfix
No milestone
No assignees
1 participant
Due date
No due date set.
Dependencies
No dependencies set
Reference
MagicBeanDev/Hookshot#804
Loading…
Reference in a new issue
No description provided.
Delete branch "%!s()"
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?
The idea
<html> <html><head></head>Upscaling and Anti-Aliasing Options
The current
Upscalingsetting only offersOff,Catmull-RomandLanczos. It would be great to expand this section with modern upscaling and anti-aliasing technologies, giving users more control over image quality, performance and visual clarity.The goal is to provide different solutions depending on the user's GPU, allowing NVIDIA and AMD users to benefit from their respective technologies.
Proposed options
Upscaler selection:
Off (Native Resolution).
Catmull-Rom.
Lanczos.
NVIDIA DLSS Super Resolution.
NVIDIA DLAA (Deep Learning Anti-Aliasing).
AMD FSR 3.1.6.
AMD FSR 4.1.2.
Upscaling Quality / Preset:
When supported by the selected upscaler, provide the following options:
Native AA (1.0x).
Quality.
Balanced.
Performance.
Ultra Performance.
Native Anti-Aliasing options:
DLAA: Use NVIDIA's Deep Learning Anti-Aliasing at native resolution, focusing on image quality and reducing jagged edges rather than increasing FPS.
FSR Native AA: Use AMD's native-resolution anti-aliasing mode (1.0x scaling) to improve image stability and reduce aliasing without rendering at a lower resolution.
Additional behaviour and considerations
Keep
Sharpnessas an independent setting, allowing users to fine-tune the final image regardless of the selected upscaler.Preserve the existing Catmull-Rom and Lanczos options as lightweight alternatives.
Automatically detect GPU and driver compatibility. Unsupported options should be disabled or hidden rather than causing rendering errors.
Where supported, allow FSR 4.1.2 to be selected, with FSR 3.1.6 available as an alternative when the hardware or driver does not support the newer version.
When DLSS or FSR is active, the selected quality preset should determine the internal rendering resolution. Avoid applying the existing manual resolution scaling on top of the upscaler, which could result in unnecessary double scaling.
Temporal upscaling requires the appropriate rendering information, such as depth buffers, motion vectors and temporal jitter, to be provided by the Vulkan renderer.
The intention is to give users access to modern reconstruction technologies while retaining the existing scaling methods as fallbacks.
Controls Tab: Controller Layouts and Button Mapping
The Controls tab should provide a more complete input configuration experience, allowing users to select their preferred controller layout or keyboard configuration.
In addition to individual button and key rebinding, it would be useful to introduce predefined input profiles for the most common controller layouts.
1. Input Layout Presets
Add a
Controller Layoutselector with the following profiles:Original (Nintendo / Switch): Preserve the original Nintendo button arrangement.
Bottom: B
Right: A
Top: X
Left: Y
Xbox: Use the standard Xbox button arrangement.
Bottom: A
Right: B
Top: Y
Left: X
PlayStation: Provide the familiar PlayStation button arrangement and symbols.
Bottom: Cross (X)
Right: Circle (O)
Top: Triangle (△)
Left: Square (□)
Keyboard & Mouse: Display keyboard and mouse bindings instead of controller button labels. Preserve the existing keyboard defaults, such as WASD for movement and the arrow keys for camera controls, while allowing the user to rebind individual actions.
Custom: Allow users to define their own button arrangement without being restricted to the predefined layouts.
2. Button Mapping and Rebinding
The Controls page should display the available game actions alongside their assigned inputs.
Suggested layout:
Game Action | Gamepad Input | Keyboard / Mouse Input -- | -- | -- Movement | D-pad / Left Stick | WASD Camera | Right Stick | Arrow Keys Action / Confirm | Configurable | Configurable Cancel / Back | Configurable | Configurable Other game actions | Configurable | ConfigurableEach input should be individually configurable.
Selecting an input and pressing the desired controller button or keyboard key should assign it to that action.
Prevent accidental duplicate assignments, using the existing swap behaviour where appropriate.
Allow users to clear an assignment and restore the default configuration.
Preserve independent controller and keyboard bindings.
3. Interface and Visual Feedback
Display the appropriate button symbols depending on the selected layout: Nintendo, Xbox or PlayStation.
Update the button labels and visual prompts throughout the Controls interface to match the selected controller profile.
For Keyboard & Mouse, show the actual assigned keys instead of controller symbols.
Clearly highlight the currently selected action and its assigned input.
Keep the existing visual style of the redesigned Options menu, including its gold selection highlights and detail panel.
4. Configuration and Persistence
Save the selected controller layout and custom bindings in
hookshot_options.ini.Changing between predefined layouts should apply the corresponding mapping without unexpectedly destroying the user's custom configuration.
Allow users to switch between layouts at any time.
Keep the selected layout and individual bindings after restarting the game.
The idea is to make controller configuration more intuitive, especially for players coming from Xbox or PlayStation, while preserving the original Nintendo controls and providing complete keyboard customization.
This should build on the existing input rebinding and controller layout work introduced in PRs #350 and #372, extending it with PlayStation support and a more complete Keyboard & Mouse profile.
</html> </html>Anything else
No response
Incredible; if this menu were implemented, it would easily be the most beautiful and usable menu of all—highly recommended.
Thanks for the idea. Feature requests are now collected in #1007, which lists this one with a link back here, so closing it in favour of that list (this is not a decision against the idea).