Supported Input Devices
Ryujinx supports a wide range of input devices:Game Controllers
Xbox, PlayStation, Nintendo, and generic controllers
Keyboard & Mouse
Full keyboard mapping with mouse support
Touch Input
Touch screen emulation for compatible displays
Motion Controls
Gyroscope and accelerometer emulation
Controller Types
Ryujinx emulates all official Nintendo Switch controller configurations:Nintendo Switch Controllers
- Pro Controller
- Joy-Con Pair
- Handheld
- Single Joy-Con
Pro Controller
The standard full-featured controller:- Full button layout
- Dual analog sticks
- Built-in motion controls
- HD rumble support
- Most compatible with games
Pro Controller mode is recommended for most games and works with any modern gamepad.
Controller Type Configuration
Input Mapping
Ryujinx provides a comprehensive input configuration menu:Configurable Inputs
Face Buttons
A, B, X, Y buttons with custom mapping
D-Pad
Up, Down, Left, Right directional pad
Shoulder Buttons
L, R, ZL, ZR triggers and bumpers
Analog Sticks
Left and right stick with deadzone control
System Buttons
Home, Capture, Plus, Minus buttons
Stick Clicks
L3/R3 stick press actions
Button Mapping Process
- Open Options → Settings → Input
- Select your controller or create new profile
- Choose controller type (Pro Controller recommended)
- Click on a button to remap it
- Press the desired button/key on your input device
- Save the configuration
Ryujinx automatically detects most controllers. If your controller isn’t recognized, try connecting it in a different USB port or checking for driver updates.
Keyboard and Mouse Support
Full keyboard and mouse input is supported:Keyboard Mapping
- Any Key Assignment: Map any keyboard key to any Switch button
- Multiple Keys: Assign multiple keyboard keys to the same button if desired
- Modifier Support: Use with Shift, Ctrl, Alt combinations
- Layout Independent: Works with any keyboard layout
Mouse Support
| Feature | Description |
|---|---|
| Motion Controls | Mouse movement can emulate gyro motion |
| Button Mapping | Mouse buttons can be mapped to controller buttons |
| Touch Emulation | Mouse clicks can emulate touch screen input |
| Camera Control | Mouse can control right stick for camera |
Keyboard and mouse is excellent for games that don’t rely heavily on motion controls. First-person games often work particularly well.
Motion Controls
Motion control support varies by input method:Native Motion Support
DualShock 4
PlayStation 4 controllers have built-in gyroscopes that Ryujinx can use directly
DualSense
PlayStation 5 controllers offer excellent motion sensor support
Nintendo Pro Controller
Official Switch Pro Controllers have native motion support
Joy-Cons
Real Joy-Cons connected via Bluetooth provide authentic motion
Motion Control Helpers
For controllers without native motion:- CemuHook Protocol
- DS4Windows
- BetterJoy
- Mouse Motion
CemuHook Protocol
Ryujinx supports the CemuHook motion protocol:- DSU (DualShock UDP) servers
- Phone apps (use your phone as a motion controller)
- Third-party motion solutions
CemuHook allows you to use your smartphone as a motion controller by installing a compatible app.
Input Configuration
The input configuration system is highly flexible:Configuration Features
| Feature | Description |
|---|---|
| Profiles | Save multiple input configurations |
| Per-Game Settings | Different controls for different games |
| Deadzone Control | Adjust stick sensitivity |
| Trigger Threshold | Configure analog trigger activation point |
| Rumble Strength | Adjust vibration intensity |
| Motion Sensitivity | Fine-tune gyro responsiveness |
Deadzone Configuration
Deadzones prevent stick drift by ignoring small movements. If your controller has drift, increase the deadzone.
- Inner Deadzone: Minimum movement to register
- Outer Deadzone: Maximum movement range
- Per-stick Configuration: Different settings for each analog stick
Touch Screen Support
Emulates the Switch’s capacitive touch screen:Mouse Touch
Click and drag with mouse to emulate finger touches
Touchscreen Display
Use actual touch screens on compatible devices
Touch Features
- Multi-touch Support: Multiple simultaneous touch points
- Gesture Recognition: Swipes, pinches, and drags
- Pressure Sensitivity: Emulates touch pressure when supported
- Touch Coordinates: Accurate position mapping
SDL3 Integration
Ryujinx uses SDL3 for cross-platform input handling:SDL3 Advantages
- Broad Compatibility: Supports hundreds of controller models
- Hot-plugging: Connect/disconnect controllers during gameplay
- Automatic Mapping: Database of controller layouts
- Cross-platform: Consistent behavior on Windows, Linux, macOS
Gamepad Features
Modern gamepad features supported:| Feature | Support Status |
|---|---|
| HD Rumble | Emulated via standard rumble |
| Analog Triggers | Full analog support (Xbox triggers, etc.) |
| Button Pressure | Supported if hardware provides it |
| LED Control | Player indicator LEDs on compatible controllers |
While Ryujinx emulates HD Rumble, standard rumble motors can’t reproduce the fine haptic detail of real Joy-Cons.
Multi-Controller Support
Play multiplayer games with multiple controllers:- Up to 8 Players: Full 8-player local multiplayer support
- Mixed Input Types: Combine controllers and keyboards
- Independent Configuration: Each player can have unique settings
- Handheld + Controllers: One player on handheld, others on separate controllers
Input Manager
The input system architecture:Input Pipeline
- Input Device → Physical controller/keyboard/mouse
- SDL3 Driver → Raw input capture
- Input Manager → Maps to Switch controller
- NpadManager → Emulated controller state
- Game → Receives input as if from real Switch
Technical Details
Key source locations:- Input Core:
src/Ryujinx.Input/ - SDL3 Driver:
src/Ryujinx.Input.SDL3/ - HLE Input:
src/Ryujinx.Input/HLE/ - Motion Controls:
src/Ryujinx.Input/Motion/ - Configuration:
src/Ryujinx.Common/Configuration/Hid/
Troubleshooting
Controller not detected
Controller not detected
- Reconnect the controller
- Check USB connection or Bluetooth pairing
- Try a different USB port
- Update controller firmware and drivers
- Check if SDL3 recognizes it (test with SDL3 tools)
Buttons mapped incorrectly
Buttons mapped incorrectly
Motion controls not working
Motion controls not working
- Verify your controller has a gyroscope
- Enable CemuHook/DSU if needed
- Check DS4Windows/BetterJoy is running
- Test with a game that obviously uses motion
- Increase motion sensitivity in settings
Stick drift or unresponsive sticks
Stick drift or unresponsive sticks
- Increase deadzone in input settings
- Clean controller analog sticks
- Calibrate controller in system settings
- Test controller in other applications
- May need controller hardware repair
Rumble not working
Rumble not working
- Check rumble is enabled in settings
- Adjust rumble strength (may be set to 0)
- Verify controller supports vibration
- Some games don’t use rumble extensively
The input system receives regular updates to support new controllers and improve compatibility. Report any issues on the Ryujinx repository.