Overview
Dynamic Input Textures allow texture packs to automatically display correct button prompts based on the user’s actual input device - showing keyboard keys, Xbox buttons, PlayStation buttons, or other controller types as appropriate.How It Works
The system replaces rectangular regions in game textures with input-specific button images. When you press ‘A’ on a Wiimote mapped to ‘X’ on an Xbox controller, the game will display an Xbox ‘X’ button instead of a generic ‘A’ prompt.Setup
Directory Structure
Game ID Naming
Folder names can be:- Complete Game ID:
SMNE01(New Super Mario Bros. Wii NTSC) - Region-agnostic ID:
SMN(New Super Mario Bros. Wii, all regions) - Any name with empty
GAMEID.txtfile underneath
Enable Custom Textures
Enable “Load Custom Textures” in Graphics Settings > Advanced tab for dynamic input textures to work.
JSON Configuration
Required Fields
string
required
Base texture PNG file containing regions to replace
object
required
Map of emulated devices to button regions
object
Map of host devices to button images (required if
default_host_controls not set)Global Fields
string
Output folder name (default:
<gameid>_Generated)boolean
Maintain button image aspect ratios (default:
true)object
Default device-to-image mappings applied to all textures
Complete Examples
Basic Configuration
Understanding Regions
Regions define rectangular areas in the base image to replace with button icons. Each region is an array of four coordinates:Multiple Regions
One button can replace multiple regions in the same texture:Emulated Device Names
GameCube Controllers
GCPad1,GCPad2,GCPad3,GCPad4
Wiimotes
Wiimote1,Wiimote2,Wiimote3,Wiimote4
Button Path Examples
D-Pad
D-Pad
Analog Sticks
Analog Sticks
Host Device Strings
Keyboard
Xbox Controllers
Wildcard (Any Device)
Gamepad button names use backticks:
`Button A`, `Button X`, etc.Image Requirements
Base Texture
- PNG format required
- Should be the game texture you’re modifying
- Can be upscaled or redrawn versions
Button Images
- PNG format required
- Transparent backgrounds recommended
- Will be scaled to fit regions (unless
preserve_aspect_ratio: true)
Creating a Pack
1
Dump Game Textures
Enable “Dump Textures” in Graphics Settings and play the game to capture textures with button prompts
2
Create Button Assets
Design PNG images for each button on each input device type you want to support
3
Identify Regions
Open base textures in an image editor and note the pixel coordinates of button prompt locations
4
Write Configuration
Create JSON file mapping emulated controls to regions and host controls to images
5
Test
Load the game with different controller types and verify correct button images appear
Troubleshooting
Textures Not Appearing
Textures Not Appearing
- Verify “Load Custom Textures” is enabled
- Check folder is named correctly (matching Game ID)
- Ensure JSON has no syntax errors
- Verify
output_textureskeys match actual game texture filenames
Images Stretched or Distorted
Images Stretched or Distorted
- Set
"preserve_aspect_ratio": true - Adjust region dimensions to match button image aspect ratios
- Ensure button PNGs are the correct resolution
Related Topics
Resource Packs
Package custom textures for distribution
Graphics Mods
Modify rendering behavior and effects