Bottom Line Up Front (BLUF)
Double input occurs when a PC game (such as EA Sports FC, Rocket League, or Elden Ring) detects both your physical DirectInput gamepad and XOutput’s virtual Xbox 360 controller simultaneously, registering every button press twice and assigning you to Player 2. The official, permanent solution is Nefarius HidHide, a kernel-level upper filter driver that conceals your physical gamepad from all Windows applications while whitelisting XOutput. Setup takes 3 minutes: 1) Install HidHide and reboot; 2) Add XOutput.exe to the Applications whitelist; 3) Check your physical controller under Devices; and 4) Toggle “Enable device hiding” on.
Understanding Double Input — Why PC Games Register Ghost Controllers
When you configure XOutput, it does not overwrite or replace your physical gamepad driver. Instead, it relies on ViGEmBus to create an entirely new, secondary virtual Xbox 360 controller in Windows.
Older games only queried one input API. However, modern game engines (including EA’s Frostbite, Unreal Engine 5, and Unity) query both legacy DirectInput and modern XInput APIs simultaneously to maximize plug-and-play controller compatibility.
When you press a physical button (such as ‘A’), two separate input events fire at the exact same millisecond:
- The game engine reads the raw DirectInput signal from your physical hardware.
- XOutput intercepts that signal, translates it, and ViGEmBus broadcasts the XInput signal from the virtual Xbox 360 controller.
The game engine obediently executes both actions, resulting in classic double-input symptoms: menu selections skip two rows at a time, character selection screens assign you to “Player 2” (see our Controller Detected as Player 2 Fix), or tackling/passing triggers twice in sports titles.
What Is HidHide and How Does Kernel Device Cloaking Work
HidHide is an open-source Windows kernel-mode filter driver developed by Benjamin Höglinger-Stelzer (Nefarius). It attaches directly to the top of the Windows Human Interface Device (HID) driver stack as an Upper Filter Driver.
Instead of altering hardware firmware or hacking game files, HidHide intercepts all operating system requests to enumerate USB HID devices. If the requesting process is XOutput.exe, HidHide permits the raw controller data to pass through. If the requesting process is a game, launcher, or web browser, HidHide intercepts the query and reports that no physical controller exists.
Step 1 — Download and Install Nefarius HidHide
HidHide requires an active installation of ViGEmBus. If you have not yet set up ViGEmBus, complete our ViGEmBus Installation Walkthrough first.
- Download the certified installer:
HidHideMSI.msi(version 1.5.230.0) from our verified downloads portal or directly from the official Nefarius GitHub Releases. - Right-click the MSI file and choose Install (or execute with Administrator rights). Accept the license terms and keep the default destination folder intact.
- Crucial Requirement: Restart Your PC. Like all kernel filter drivers, Windows cannot inject HidHide into the HIDClass driver stack until a full system reboot occurs. Skipping this restart is the primary reason users report that device hiding “fails to work.”
Step 2 — Whitelist XOutput in the Applications Tab
The whitelist tells HidHide which applications are authorized to pierce through the cloaking barrier and read your raw physical gamepad:
- Open your Windows Start Menu, search for HidHide Configuration Client, right-click it, and select Run as administrator.
- Navigate to the Applications tab (indicated by the checklist icon).
- Click the + (Plus) button at the bottom right.
- In the file browser, navigate to your permanent XOutput directory (e.g.,
C:\Tools\XOutput\) and selectXOutput.exe. - Confirm that
XOutput.exeappears in the whitelist table with an active checkmark.
Step 3 — Cloak Your Physical Controller in the Devices Tab
Now that XOutput has clearance to see all hardware, you must instruct HidHide to conceal your physical gamepad from every other application:
- Switch to the Devices tab (represented by the gamepad icon) in the HidHide Configuration Client.
- Locate your physical controller in the listed device tree. It will typically be labeled with its hardware name (e.g., “Generic USB Joystick”, “PLAYSTATION(R)3 Controller”, or the manufacturer VID/PID).
- Check the box beside your physical controller. A red padlock icon will appear next to the device entry, indicating it is marked for cloaking.
- Crucial Warning: DO NOT check the box next to “Xbox 360 Controller for Windows” (the virtual device created by ViGEmBus). Checking the virtual controller will cloak it from games, rendering your controller completely invisible!
- At the bottom of the window, ensure the “Enable device hiding” checkbox is checked (the padlock icon at the bottom right will show as locked).
Step 4 — Verify Single-Controller Input in Windows and Games
Before opening your game, perform this quick 30-second verification test to confirm device hiding is functioning correctly:
- Launch
XOutput.exeas Administrator. Click Start on your controller profile. Notice that XOutput reads your button presses and stick movements normally because it is whitelisted. - Press
Windows Key + R, typejoy.cpl, and press Enter to open the native Windows Game Controllers window. - Inspect the list: You should now see EXACTLY ONE device listed: “Controller (XBOX 360 For Windows)”. Your original physical gamepad should be completely absent from this list.
- Launch your game (e.g., EA Sports FC 24/25, Rocket League, or Forza). Navigate the main menus. Single directional presses will now move strictly one slot at a time, and the phantom “Player 2” split will be permanently resolved.
Troubleshooting Common HidHide Issues and Boundary Cases
If you encounter unexpected behavior after configuring HidHide, work through these verified diagnostic solutions:
Issue 1 — Controller Disappears Completely (Even from XOutput)
Root Cause: XOutput is not properly whitelisted, or you moved the XOutput.exe file after adding it. Alternatively, you checked both the physical controller and the virtual Xbox 360 controller in the Devices tab.
Fix: Open HidHide Configuration Client, uncheck “Enable device hiding”, delete the old entry in the Applications tab, re-add XOutput.exe using its current path, uncheck any Xbox 360 virtual device in Devices, and re-enable hiding.
Issue 2 — Double Input Persists in EA Sports FC or Steam Games
Root Cause: Steam Input is creating a third virtual controller layer. When Steam Input is active, Steam detects the virtual Xbox 360 controller and re-maps it again.
Fix: In Steam, right-click your game → Properties → Controller → set “Override for [Game]” to Disable Steam Input. Consult our XOutput Not Working Guide for game-specific launcher configurations.
Issue 3 — Emergency Safe Mode Reset (Accidental Keyboard/Mouse Hiding)
If you accidentally checked your USB mouse or keyboard in the Devices list and lost input control: 1) Boot Windows into Safe Mode (holding Shift while clicking Restart); 2) Open Command Prompt as Administrator; 3) Execute sc config HidHide start= disabled; 4) Reboot into normal Windows, open HidHide, uncheck your mouse/keyboard, and re-enable the service.
When HidHide Is Not the Solution — Other Double Input Causes
While HidHide resolves the classic physical-plus-virtual hardware duplicate, certain symptoms resemble double input but stem from different technical faults:
- Character Creeping or Spinning Camera: If your character continues walking or menus scroll continuously without any button press, this is analog stick drift, not double input. Resolve it by configuring a 5% to 8% deadzone using our Stick Drift & Deadzone Guide.
- Two Physical Controllers for Local Co-Op: If you are configuring two physical controllers for local multiplayer, do not hide both into Controller 1. In XOutput, click “Add controller” twice to create Controller 1 and Controller 2 independently.
- DirectInput Protocol Incompatibility: If a 2026 title refuses to register inputs at all, the game engine does not listen for DirectInput signals. Review our DirectInput vs XInput Explainer to understand how modern APIs function.
Frequently Asked Questions About HidHide and XOutput
Do I always need to run HidHide whenever I use XOutput?
Not necessarily. Older PC games and most retro emulators (like PCSX2 or RPCS3) only listen to whichever device you explicitly assign in their settings. However, for modern AAA titles like EA Sports FC, Rocket League, and Forza, HidHide is essential to prevent simultaneous API double polling.
Is HidHide safe and digitally signed for Windows 11 24H2?
Yes. HidHide is an open-source driver developed by Nefarius and signed with a valid Microsoft WHQL certificate. It runs seamlessly on Windows 11 23H2 and 24H2 with Memory Integrity (HVCI) and Secure Boot active. It contains zero adware or telemetry.
Can I use HidHide alongside DS4Windows or DualSenseX?
Yes. HidHide is the universal standard hiding filter for all PC controller tools. Both DS4Windows and DualSenseX officially recommend and integrate with HidHide. Simply add their executables to the Applications whitelist alongside XOutput.
Can HidHide trigger anti-cheat bans in multiplayer games?
No. HidHide operates entirely within the standard Windows HIDClass filter driver stack. It does not hook game processes, inject DLLs, or modify game memory. Anti-cheat engines (including Easy Anti-Cheat, BattlEye, and EA Anticheat) see only the legitimate virtual Xbox 360 controller.
