keepcalculator

06 Numbers and Powers

Proton Experimental Fixes Rare Prefix Bug That Could Hide Controllers

Card No. 06·64659 · Updated · Standard formula, shown below

Proton Experimental, Valve’s compatibility layer for running Windows games on Linux, recently received a fix for a rare prefix bug that could cause game controllers to become invisible to games. The bug, which manifested under specific conditions involving the Wine prefix directory structure, could prevent controllers from being detected even when they were properly connected and recognized by the system. The fix, included in the latest Proton Experimental update, resolves the underlying path-handling issue and restores normal controller detection for affected users.

What Is Proton and What Does Proton Experimental Do?

Proton is a compatibility layer developed by Valve, built on top of Wine and other open-source projects, that allows Windows-only games to run on Linux, particularly through the Steam client. It translates Windows API calls into Linux equivalents and includes additional components like DXVK for Direct3D 9/10/11 to Vulkan, and VKD3D-Proton for Direct3D 12. Proton Experimental is a rolling-release branch that receives frequent updates, often including the latest fixes and features before they are merged into the stable Proton release. It is designed for users who want the most current improvements and are willing to accept a slightly higher risk of regressions.

The Rare Prefix Bug: What Exactly Was Wrong?

The bug was related to how Proton handles the Wine prefix—a directory that contains a virtual Windows environment, including the registry, system files, and installed applications. In certain scenarios, particularly when a game or tool created a prefix with a non-standard path or when the prefix was moved or symlinked, Proton’s controller detection code would fail to locate the correct virtual device path. This caused the controller to be absent from the game’s input device list, even though the operating system and Steam itself could see it.

The issue was described as “rare” because it required a specific combination of prefix configuration and system setup to trigger. Most users never encountered it, but for those who did, the result was frustrating: a controller that worked in the Steam interface but was completely ignored by the game. The fix involved correcting the way Proton resolves the prefix’s device directory, ensuring that the virtual joystick and gamepad devices are properly exposed to the game.

How the Fix Works

The patch, submitted by a Valve developer, modifies the Wine source code that Proton uses to enumerate input devices. Specifically, it changes how the `winebus` driver (which handles gamepad and joystick input in Wine) constructs the path to the virtual device nodes within the prefix. Previously, the path was built using a relative location that could break if the prefix was not in the expected place. The fix uses an absolute path derived from the prefix’s actual location, making the detection robust against unusual prefix setups.

For users, the fix is transparent: after updating to the latest Proton Experimental, the bug is gone. No user action is required beyond ensuring the update is installed. If you were affected, you should now see your controller appear in games that previously ignored it.

How to Update to Proton Experimental

If you want to get this fix, you need to be on the Proton Experimental branch. Here’s how to ensure you have it:

  • Open Steam and go to your Library.
  • In the top-left, click on “Steam” and select “Settings”.
  • Go to the “Compatibility” tab.
  • Under “Enable Steam Play for all other titles”, select “Proton Experimental” from the drop-down menu.
  • Alternatively, for a specific game, right-click it, go to “Properties”, then “Compatibility”, and check “Force the use of a specific Steam Play compatibility tool” and select “Proton Experimental”.

Once selected, Steam will automatically download the latest version of Proton Experimental if you have it set to update automatically. You can also force a check by restarting Steam or switching between compatibility tools and back.

Common Problems and Misconceptions

One common misconception is that this bug was caused by Steam Input or the controller itself. In reality, the issue was purely within Proton’s handling of the Wine prefix—Steam Input and the system-level controller detection were working correctly. Another misconception is that this fix is only relevant for users with unusual prefix configurations; while those users are the most likely to have been affected, the fix also hardens the code against future edge cases.

If you are still experiencing controller issues after updating, consider these steps:

  • Verify that the controller is recognized in Steam’s controller settings (Steam > Settings > Controller).
  • Try a different USB port or re-pair a Bluetooth controller.
  • Check if the game has its own controller configuration that might be overriding Steam Input.
  • Try running the game with Proton GE (GloriousEggroll) as an alternative, which sometimes includes additional fixes.

Comparison: Proton Experimental vs. Stable vs. GE

Proton Experimental is not the only option. The stable Proton branch is more thoroughly tested but lags behind on the latest fixes. Proton GE, a community build, often includes experimental patches and media codecs that Valve’s official builds lack. For users who rely on controller support, the Experimental branch is generally a good choice because it gets fixes like this one quickly. However, if you prefer maximum stability and don’t need the latest features, the stable branch is fine. Proton GE is a middle ground, but it’s not officially supported by Valve, so you need to install it manually.

Safety and Best Practices

When using Proton Experimental, it’s a good idea to keep your system and graphics drivers up to date, as Proton relies on them for optimal performance. Also, be aware that Experimental builds may occasionally introduce new bugs. If a game stops working after an update, you can switch back to a previous Proton version (like Proton 9.0 or a specific GE build) for that game. To do this, go to the game’s Properties > Compatibility and select a different tool. This is a safe and reversible process—your game saves and settings are not affected by changing the compatibility tool.

Frequently Asked Questions

Will this fix make my controller work in all games?

No, this fix addresses a specific prefix-related bug. If a game has its own controller support issues or requires a specific controller configuration, you may still need to adjust settings or use Steam Input to map buttons. The fix ensures that controllers are correctly detected, but it doesn’t guarantee that every game will have perfect controller support.

How do I know if I was affected by this bug?

If you had a controller that worked in Steam’s Big Picture mode or in the Steam interface but was not recognized by a game, and you had a non-standard Wine prefix (e.g., a game installed on a separate drive with a custom prefix path), you might have been affected. After updating to Proton Experimental, test the game again—if the controller now works, that was the bug.

Is Proton Experimental safe to use for all games?

Generally yes, but because it’s a rolling release, it may occasionally have regressions. It’s recommended for users who want the latest fixes and are comfortable with occasional issues. For critical gaming sessions, you might prefer the stable branch, but for most users, Experimental is fine.

Can I use this fix on Steam Deck?

Yes, the Steam Deck runs on Linux and uses Proton by default. The fix is included in Proton Experimental, which you can select in the game’s compatibility settings on the Deck. The same steps apply.

Do I need to clear any cache or delete my prefix after updating?

No, the fix works without requiring you to delete or recreate your Wine prefix. The change is in the code that reads the prefix, so it applies immediately after the update. However, if a game still doesn’t detect your controller, you can try verifying the game files or restarting Steam.

What if I don’t use Steam? Can I get this fix?

This fix is specific to Proton, which is integrated into Steam. If you use plain Wine or other compatibility layers, you would need to wait for the equivalent fix to be merged into those projects. The underlying Wine patch may eventually be upstreamed, but there’s no timeline for that.

Related

Method: the standard formula for this calculation, rounded as each result states. See how the calculators work or report an error.

More cards in this drawer

The whole Numbers and Powers drawer →