Upscaling and Anti-Aliasing Options and Controls Tab: Controller Layouts and Button Mapping #804

Closed
opened 2026-11-08 22:03:23 +00:00 by Adri90vm · 2 comments
Adri90vm commented 2026-11-08 22:03:23 +00:00 (Migrated from github.com)

The idea

<html> <html><head></head>

Upscaling and Anti-Aliasing Options

The current Upscaling setting only offers Off, Catmull-Rom and Lanczos. 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 Sharpness as 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 Layout selector 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 | Configurable

Each 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> Image Image Image

Anything else

No response

### The idea <html> <body> <!--StartFragment--><html><head></head><body><h2><span>Upscaling and Anti-Aliasing Options</span></h2><p><span>The current </span><code><span>Upscaling</span></code><span> setting only offers </span><code><span>Off</span></code><span>, </span><code><span>Catmull-Rom</span></code><span> and </span><code><span>Lanczos</span></code><span>. 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.</span></p><p><span>The goal is to provide different solutions depending on the user's GPU, allowing NVIDIA and AMD users to benefit from their respective technologies.</span></p><h3><span>Proposed options</span></h3><p><strong><span>Upscaler selection:</span></strong></p><ul><li><p><span>Off (Native Resolution).</span></p></li><li><p><span>Catmull-Rom.</span></p></li><li><p><span>Lanczos.</span></p></li><li><p><span>NVIDIA DLSS Super Resolution.</span></p></li><li><p><span>NVIDIA DLAA (Deep Learning Anti-Aliasing).</span></p></li><li><p><span>AMD FSR 3.1.6.</span></p></li><li><p><span>AMD FSR 4.1.2.</span></p></li></ul><p><strong><span>Upscaling Quality / Preset:</span></strong></p><p><span>When supported by the selected upscaler, provide the following options:</span></p><ul><li><p><span>Native AA (1.0x).</span></p></li><li><p><span>Quality.</span></p></li><li><p><span>Balanced.</span></p></li><li><p><span>Performance.</span></p></li><li><p><span>Ultra Performance.</span></p></li></ul><p><strong><span>Native Anti-Aliasing options:</span></strong></p><ul><li><p><strong><span>DLAA:</span></strong><span> Use NVIDIA's Deep Learning Anti-Aliasing at native resolution, focusing on image quality and reducing jagged edges rather than increasing FPS.</span></p></li><li><p><strong><span>FSR Native AA:</span></strong><span> Use AMD's native-resolution anti-aliasing mode (1.0x scaling) to improve image stability and reduce aliasing without rendering at a lower resolution.</span></p></li></ul><h3><span>Additional behaviour and considerations</span></h3><ul><li><p><span>Keep </span><code><span>Sharpness</span></code><span> as an independent setting, allowing users to fine-tune the final image regardless of the selected upscaler.</span></p></li><li><p><span>Preserve the existing Catmull-Rom and Lanczos options as lightweight alternatives.</span></p></li><li><p><span>Automatically detect GPU and driver compatibility. Unsupported options should be disabled or hidden rather than causing rendering errors.</span></p></li><li><p><span>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.</span></p></li><li><p><span>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.</span></p></li><li><p><span>Temporal upscaling requires the appropriate rendering information, such as depth buffers, motion vectors and temporal jitter, to be provided by the Vulkan renderer.</span></p></li></ul><p><span>The intention is to give users access to modern reconstruction technologies while retaining the existing scaling methods as fallbacks.</span></p><div><hr></div><h2><span>Controls Tab: Controller Layouts and Button Mapping</span></h2><p><span>The Controls tab should provide a more complete input configuration experience, allowing users to select their preferred controller layout or keyboard configuration.</span></p><p><span>In addition to individual button and key rebinding, it would be useful to introduce predefined input profiles for the most common controller layouts.</span></p><h3><span>1. Input Layout Presets</span></h3><p><span>Add a </span><code><span>Controller Layout</span></code><span> selector with the following profiles:</span></p><ul><li><p><strong><span>Original (Nintendo / Switch):</span></strong><span> Preserve the original Nintendo button arrangement.</span></p><ul><li><p><span>Bottom: B</span></p></li><li><p><span>Right: A</span></p></li><li><p><span>Top: X</span></p></li><li><p><span>Left: Y</span></p></li></ul></li><li><p><strong><span>Xbox:</span></strong><span> Use the standard Xbox button arrangement.</span></p><ul><li><p><span>Bottom: A</span></p></li><li><p><span>Right: B</span></p></li><li><p><span>Top: Y</span></p></li><li><p><span>Left: X</span></p></li></ul></li><li><p><strong><span>PlayStation:</span></strong><span> Provide the familiar PlayStation button arrangement and symbols.</span></p><ul><li><p><span>Bottom: Cross (X)</span></p></li><li><p><span>Right: Circle (O)</span></p></li><li><p><span>Top: Triangle (△)</span></p></li><li><p><span>Left: Square (□)</span></p></li></ul></li><li><p><strong><span>Keyboard &amp; Mouse:</span></strong><span> 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.</span></p></li><li><p><strong><span>Custom:</span></strong><span> Allow users to define their own button arrangement without being restricted to the predefined layouts.</span></p></li></ul><h3><span>2. Button Mapping and Rebinding</span></h3><p><span>The Controls page should display the available game actions alongside their assigned inputs.</span></p><p><span>Suggested layout:</span></p> 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 | Configurable <p><span>Each input should be individually configurable.</span></p><ul><li><p><span>Selecting an input and pressing the desired controller button or keyboard key should assign it to that action.</span></p></li><li><p><span>Prevent accidental duplicate assignments, using the existing swap behaviour where appropriate.</span></p></li><li><p><span>Allow users to clear an assignment and restore the default configuration.</span></p></li><li><p><span>Preserve independent controller and keyboard bindings.</span></p></li></ul><h3><span>3. Interface and Visual Feedback</span></h3><ul><li><p><span>Display the appropriate button symbols depending on the selected layout: Nintendo, Xbox or PlayStation.</span></p></li><li><p><span>Update the button labels and visual prompts throughout the Controls interface to match the selected controller profile.</span></p></li><li><p><span>For Keyboard &amp; Mouse, show the actual assigned keys instead of controller symbols.</span></p></li><li><p><span>Clearly highlight the currently selected action and its assigned input.</span></p></li><li><p><span>Keep the existing visual style of the redesigned Options menu, including its gold selection highlights and detail panel.</span></p></li></ul><h3><span>4. Configuration and Persistence</span></h3><ul><li><p><span>Save the selected controller layout and custom bindings in </span><code><span>hookshot_options.ini</span></code><span>.</span></p></li><li><p><span>Changing between predefined layouts should apply the corresponding mapping without unexpectedly destroying the user's custom configuration.</span></p></li><li><p><span>Allow users to switch between layouts at any time.</span></p></li><li><p><span>Keep the selected layout and individual bindings after restarting the game.</span></p></li></ul><p><span>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.</span></p><p><span>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 &amp; Mouse profile.</span></p></body></html><!--EndFragment--> </body> </html> <img width="1672" height="941" alt="Image" src="https://github.com/user-attachments/assets/2d6e7ea3-2ad7-4fcf-b7d0-8a2aa4981b74" /> <img width="1672" height="941" alt="Image" src="https://github.com/user-attachments/assets/bad8f109-0759-4212-ad8f-d9c10ec56fca" /> <img width="1672" height="941" alt="Image" src="https://github.com/user-attachments/assets/9e2522e9-2617-46c1-9c4b-55b2a9412f4e" /> ### Anything else _No response_
Bilau commented 2026-11-08 23:03:21 +00:00 (Migrated from github.com)

Incredible; if this menu were implemented, it would easily be the most beautiful and usable menu of all—highly recommended.

Incredible; if this menu were implemented, it would easily be the most beautiful and usable menu of all—highly recommended.
NotRexed commented 2026-11-09 05:57:45 +00:00 (Migrated from github.com)

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).

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).
Commenting is not possible because the repository is archived.
No milestone
No assignees
1 participant
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set

Reference
MagicBeanDev/Hookshot#804
No description provided.