-
Notifications
You must be signed in to change notification settings - Fork 6
Troubleshooting
This page covers common problems and their solutions. If your issue is not listed here, check the GitHub Issues page.
Symptoms: The Devices page is empty. The Dashboard shows "0 / 0 devices online."
Solutions:
- Check your USB connection. Try a different USB port, preferably one directly on your computer rather than through a hub.
- Try a different cable. Some cables are charge-only and do not carry data.
- Check that SDL3.dll is present in the same folder as PadForge.exe. If it is missing, re-extract the PadForge zip file.
- Restart PadForge. Some devices are only detected during startup or device refresh.
- Check Windows Device Manager. Make sure Windows itself recognizes the device (look under "Human Interface Devices" or "Sound, video and game controllers").
- Bluetooth controllers: Make sure the controller is paired and connected in Windows Bluetooth settings before starting PadForge.
Symptoms: You have created a virtual controller slot and assigned a device, but games do not detect the virtual controller.
Solutions:
- Install ViGEmBus. Xbox 360 and DualShock 4 output types require the ViGEmBus driver. Go to Settings and click Install next to ViGEmBus.
- Install vJoy. The vJoy output type requires the vJoy driver. Install it from the Settings page.
- Install Windows MIDI Services. The MIDI output type requires Windows MIDI Services. Install it from the Settings page.
- Make sure the slot is enabled. The power icon on the Dashboard slot card should be green, not red.
- Make sure the engine is running. The engine status on the Dashboard should show "Running" with a green power icon.
- Restart the game. Some games only scan for controllers at startup.
- Check the game's input settings. Some games need you to manually select or enable the controller in their settings menu.
Symptoms: Every button press registers twice. Menus scroll too fast. The game shows two controllers.
Solutions:
- Install HidHide. Go to Settings and install HidHide. This driver hides your physical controller from games so they only see the PadForge virtual controller.
- Restart the game after installing HidHide.
- Check the game's controller settings. Some games let you disable specific controllers. Disable the physical one and keep the virtual one.
Symptoms: vJoy virtual controllers do not appear in games or joy.cpl (Windows Game Controllers).
Solutions:
- Run PadForge as administrator. vJoy device management requires elevated privileges. If PadForge did not prompt for admin on startup, right-click PadForge.exe and select "Run as administrator."
- Check the vJoy driver on the Settings page. Make sure it shows "Installed."
-
Verify in joy.cpl. Press Win+R, type
joy.cpl, and press Enter. You should see your vJoy controllers listed. - Restart PadForge if you just installed the vJoy driver. The driver may need a fresh start to initialize properly.
Symptoms: No vibration from your physical controller when games send force feedback.
Solutions:
- Check the Force Feedback tab. Make sure Overall Gain is above 0%.
- Check per-motor strength. Both the left motor and right motor strength sliders should be above 0%.
- Click Test Rumble on the Force Feedback tab to verify your controller supports vibration.
- Make sure a device is assigned to the slot and is connected (green status dot).
- Check if the game sends rumble. Not all games use force feedback. Try a different game to verify.
- Close other controller software (like Steam's controller configuration) that might be intercepting rumble commands.
Symptoms: The emulator does not receive gyroscope or accelerometer data from PadForge.
Solutions:
- Enable the DSU server. On the Dashboard, check "Enable DSU motion server (cemuhook)" and verify the status shows "Running."
- Check the port. The default port is 26760. Make sure the port in PadForge matches the port configured in your emulator.
-
Use the correct address. If the emulator is on the same computer, use
127.0.0.1as the server address. - Check your controller. Not all controllers have motion sensors. Check the Devices page to see if your controller lists gyro/accel capabilities. Supported controllers include DualSense, DualShock 4, Switch Pro Controller, and Switch 2 Pro Controller.
- Check slot position. The DSU protocol only supports 4 slots. Your motion-capable device must be assigned to one of the first 4 virtual controller slots.
- Check your firewall. Make sure UDP port 26760 (or your custom port) is not blocked.
Symptoms: Changes revert after restarting PadForge. The settings file does not update.
Solutions:
- Click Save on the Settings page. Some changes require a manual save.
- Check file permissions. Make sure PadForge has write access to its settings folder. The file path is shown on the Settings page.
- Try Reset to Defaults. On the Settings page, click "Reset to Defaults" to create a fresh configuration file. Then reconfigure your settings.
-
Check the settings folder. Click "Open Folder" on the Settings page and verify the
PadForge.xmlfile exists and is not read-only. - Antivirus interference. Some antivirus software may block PadForge from writing files. Add an exception for PadForge's folder.
Symptoms: PadForge is using a significant percentage of CPU, causing fans to spin up or other applications to slow down.
Solutions:
- Increase the polling interval. Go to Settings > Input Engine and increase the polling interval. The default is 1ms (~1000 Hz), which provides the best responsiveness but uses more CPU. Try 4ms (~250 Hz) or 8ms (~125 Hz) for casual use.
- Disable polling on focus loss. If you only need PadForge active while its window is open, uncheck "Continue polling when window loses focus" in Settings.
- Reduce virtual controller count. Each active slot adds some processing overhead. Remove slots you are not using.
Symptoms: Controller behaves unexpectedly, especially Switch Pro Controller or Switch 2 Pro Controller. Controller is not detected or rumble stops working.
Solutions:
- Disable Steam Input for the specific controller. In Steam, go to Settings > Controller and turn off the relevant controller support option.
- Close Steam entirely if you are not using it. Steam can exclusively lock certain controller interfaces, preventing PadForge from accessing them.
- Switch 2 Pro Controller specifically: Steam may lock the WinUSB interface that PadForge needs for initialization. Close Steam before connecting the controller, or disable Steam's Switch controller support.
Symptoms: Buttons do not match their expected positions. Some buttons trigger two inputs or produce no input at all. D-pad and face buttons may work but shoulder buttons, triggers, or stick clicks do not.
Solutions:
- Enable Force Raw Joystick Mode. On the Devices page, select the problematic device and enable Force raw joystick mode in the Input Mode section. This bypasses SDL3's gamepad remapping and reads the raw joystick indices directly.
- Record mappings manually. With force raw mode enabled, auto-mapping is not available. Use the Record buttons on the Button and Axis Mappings tab to map each button individually.
-
Check in joy.cpl. Press Win+R, type
joy.cpl, and verify your controller's buttons work correctly there. If they do, force raw mode should fix the issue in PadForge. - Known affected devices: DualShock 3 (with DsHidMini in SDF mode), certain third-party controllers with non-standard HID report layouts.
Symptoms: Mouse buttons don't register on the Devices page. Mouse movement is too subtle to see. Mouse axes can't be recorded via the Record button.
Solutions:
- Mouse buttons not registering: This was fixed in a recent update. Make sure you are running the latest version of PadForge.
- Mouse movement barely visible: Mouse axes show relative deltas (movement since last poll), not absolute positions. Fast mouse movements will show larger axis values. The movement is amplified internally so it registers clearly.
- Recording mouse axes: When recording a mapping for a mouse axis, simply move the mouse in the desired direction. PadForge detects mouse axes instantly — no need to hold the movement like with a joystick.
- Input consumption safety: PadForge does not automatically consume mouse or keyboard inputs when you assign them to a slot. You must manually enable "Consume mapped inputs" or "Hide from games" if you want input hiding, and PadForge will warn you about the risks before enabling.
| Problem | First Thing to Try |
|---|---|
| No devices | Check USB connection and cable |
| No virtual controller | Install ViGEmBus, vJoy, or Windows MIDI Services |
| Double input | Install HidHide |
| No rumble | Check Force Feedback tab, gain > 0 |
| No motion in emulator | Enable DSU server, check port |
| Settings lost | Click Save on Settings page |
| High CPU | Increase polling interval |
| Steam conflict | Disable Steam Input or close Steam |
| Wrong button mapping | Enable "Force raw joystick mode" on Devices page |
| Web controller disconnected | Check network and firewall |
| Stick drift after calibration | Use center offset calibration |
| Mouse buttons not registering | Update to latest PadForge version |
| No MIDI output | Install Windows MIDI Services, check port selection |
| Mouse axes won't record | Move mouse — detection is instant, no hold needed |
| Sensitivity curve has no effect | Check correct axis (X vs Y), verify preset is not Linear |
| Keyboard+Mouse not working | Check slot type, add mappings, check anti-cheat |
Symptoms: Buttons map to wrong outputs. Some buttons trigger two inputs. Shoulder buttons, triggers, or stick clicks produce no input.
Cause: SDL3's built-in gamepad mapping doesn't match your device's HID report layout (common with DualShock 3 + DsHidMini, or certain third-party controllers).
Solution:
- Go to the Devices page
- Select the problematic device
- In the Input Mode section, enable Force raw joystick mode
- Go to the Mappings tab and manually record each button
- Auto-mapping is not available in raw mode, but raw button indices will be correct
Symptoms: The browser shows "Disconnected" or cannot reach the web controller URL.
Solutions:
- Ensure PadForge's web controller is enabled on the Dashboard
- Check that both devices are on the same local network (Wi-Fi)
- Verify the port (default 8080) is not blocked by Windows Firewall
- Try a different port in Settings if 8080 is in use
- Use landscape orientation — the controller requires it
Symptoms: A MIDI virtual controller slot is active, but no MIDI messages are being received by your DAW, synthesizer, or other MIDI application.
Solutions:
- Install Windows MIDI Services. MIDI output requires Windows MIDI Services to be installed. Go to Settings and click Install next to Windows MIDI Services.
- Check the MIDI port selection. On the MIDI slot's configuration bar, open the port dropdown and verify a valid MIDI port is selected. If the list is empty, you may need to install a virtual MIDI loopback driver (such as loopMIDI) or connect a hardware MIDI device.
- Refresh the port list. Click the port dropdown to refresh it — new ports are detected each time the dropdown opens.
- Check the receiving application. Make sure your DAW or MIDI application is listening on the same port that PadForge is sending to.
- Make sure the engine is running. The engine must be running and the slot must be enabled (green power icon) for MIDI messages to be sent.
- Check channel and velocity. Verify the MIDI channel (1--16) matches what your receiving application expects.
Symptoms: You have set a sensitivity curve but stick or trigger output does not seem affected.
Solutions:
- Check the correct axis. For sticks, sensitivity curves are set independently for X and Y. Make sure you are editing the curve on the axis that corresponds to the direction you are testing (X for horizontal, Y for vertical).
- Check the preset. If the preset is set to "Linear," no modification is applied — the output matches input 1:1. Select a different preset (such as Smooth, Aggressive, or S-Curve) or add custom control points.
- Try the reset button. Click the reset button next to the sensitivity preset dropdown to restore the curve to Linear, then apply a new preset to verify the curve editor is working.
- Check dead zone interaction. The sensitivity curve only applies to input that passes the dead zone. If your dead zone is set very high, there may not be enough remaining range for the curve to have a noticeable effect.
- Check that you are editing the correct axis. Sticks have independent curves for X (horizontal) and Y (vertical). Make sure you are adjusting the curve on the axis that matches the direction you are testing.
- Check per-direction max range. If individual axis directions have different max range values, the curve may behave differently in each direction. Review the per-direction max range settings on the Sticks tab.
- Check dead zone shape. Non-default dead zone shapes (such as Axial, Hybrid, or Sloped) may affect how the sensitivity curve interacts with dead zone processing. Try switching to the default (Scaled Radial) to isolate the issue.
Symptoms: A Keyboard+Mouse slot is active but key presses or mouse movement do not appear in games or other applications.
Solutions:
- Ensure the slot type is set to Keyboard+Mouse. Check the Dashboard card and verify the Keyboard+Mouse icon is selected (fully opaque).
- Map keys and buttons. Go to the Mappings tab and assign physical controller buttons to keyboard keys or mouse buttons. Without mappings, no output is produced.
- Check mouse sensitivity. Mouse movement from stick input is relative (not absolute). If movement seems too slow or too fast, adjust the sensitivity in the Sticks tab or in the macro action settings.
- Anti-cheat software. Some games with anti-cheat systems (such as EAC, BattlEye, or Vanguard) may block simulated keyboard and mouse input. This is a limitation of the anti-cheat, not PadForge.
- Make sure the engine is running. The engine must be running and the slot must be enabled (green power icon) for any output to be sent.
Symptoms: The stick drifts even after setting dead zones.
Solution: Use center offset calibration:
- Go to the Sticks tab
- Leave the stick at rest (do not touch it)
- Click Calibrate Center
- PadForge measures the actual rest position and applies an offset so the dead zone is centered correctly
- Settings — Configure engine and drivers
- Driver Management — Install required drivers
- Dashboard — Check engine and driver status
- Devices — Verify device detection
- Force Feedback — Configure rumble
- DSU Motion Server — Configure motion data