Is /Win64 protected from X360ce?

Hello,

I’ve been trying to use X360ce to enable a couple non-Xbox controllers for the editor. My problem doesn’t seem to have been documented before.

When I run x360ce_x64.exe inside of …/Engine/Binaries/Win64, it opens but the controller tabs remain blank and it never generates the .INI file it normally does.

What’s strange is that if I create a new folder inside of /Win64 (or outside of it) and run X360ce there, it works as expected. If I create a new folder inside of /Binaries, copy just UE4Editor.exe and x360ce_x64.exe and run it, it works as expected. But as soon as I add the rest of the contents of /Win64 to my new folder, it stops functioning. It’s as if there’s something included in /Win64 that’s stopping X360ce from creating an .INI or something.

I have enabled all permissions for both /Win64 and x360ce_x64.exe.

Any advice would be appreciated. Thank you,

Flynn

1 Like

Just started playing with that as well. The same symptoms here, UE4.22.2

What I did to solve that:

  • Copy x360ce.exe into a separate directory
  • Let it create xinput1_3.dll
  • Do some customization, which gets written to the x360ce.ini file
  • Copy xinput1_3.dll and x360ce.ini to “…\Engine\Binaries\Win64” directory

After this, I could do a quick test with a mapping to left thumbstick only. The event did get fired in my quick Blueprint test.

Not yet done full testing with all mappings…

Update

Doing more research leads me to the UE4 Raw Input Plugin

I did give it a quick try as well with my old Bullfrog SL-6540 Gamepad. Basic test for axis mapping works.
Also here, not yet done full testing.

But this looks promising and seems to be the “Unreal way” to deal with different devices.

1 Like

Thank you so much, @MC1RScorpion and @herb64 !!! I couldn’t figure out why the x360ce file was not generating the xinput1_3.dll and x360ce.ini files as before. Perhaps it’s because there are so many .exe files in Unreal’s Win64 folder it confuses the application.

The solution, as herb64 described, is to put the x360.exe file into a new empty folder anywhere on your drive, double click x360.exe to launch, then when prompted, create the xinput1_3.dll and let it search for settings for your controller. Customize if desired and finally press Save. Then close the application and paste the contents of that new folder (x360ce_64.exe, xinput1_3.dll, and x360ce.ini) inside the C:\Program Files\Epic Games\UE_(YourVersion)\Engine\Binaries\Win64 folder. Now simply launch Unreal Engine and you are good to go!! :smiley:

1 Like

UPDATE 06-28-2024: Unfortunately, the older version of x360ce NO LONGER WORKS in Unreal 5.4.2. Unreal 5.3.2 is the last version that works correctly with the method described above (using the older 3.2.10.82 version of x360ce).

In Unreal 5.4.2, you must now use the 4.17.15.0 (or newer) version of x360ce, which must be launched separately and left running in the background (this means you no longer need to paste any files into the UnrealEditor.exe directory).

This new version does work, but you may need to manually re-assign controller buttons (for some reason, my Logitech Rumblepad 2 did NOT load the correct configuration by default, whereas in the older 3.2.10.82 version, it loaded correctly every time).

The above info is based on my own testing alone, so if anyone else has actually succeeded in getting the older 3.2.10.82 version of x360ce to work with Unreal 5.4.2, please do share! :slight_smile:

You can always fall back on DS4 Windows. It enables controllers in unreal for playstation and xbox

1 Like

Thanks, I haven’t tried that emulator before. It seems to work similar to the newer version of x360ce, since it has to be open and running in the background. It’s too bad Unreal has no native support for regular Direct Input controllers, other than by using the Raw Input plugin or the Game Input plugin.