Next Generation Emulation banner

1 - 15 of 15 Posts

·
I mustache you a queshtion
Joined
·
1,972 Posts
Discussion Starter #1 (Edited)
x360ce App Tutorial
by ResoluteSpider5 v7 May 2014


x360ce Libraries Tutorial at http://ngemu.com/threads/x360ce-libraries-tutorial-by-resolutespider5.155310/

Other x360ce Guides at http://ngemu.com/threads/various-x360ce-guides-by-resolutespider5.156807/

XBox360 Controller Emulator, or x360ce, is a program that allows DInput (DirectInput) only controllers (i.e. most gamepads, joysticks, steering wheels, etc.) to be used with XInput-only games and applications.

1. Background
2. Procedure
3. Uninstalling x360ce
4. Controller Troubleshooting
5. Other Troubleshooting
6. Renaming xinput1_3.dll
7. Input Hooking
8. x360ce Requirements
9. Other Links
1. Background

Originally USB PC controllers only supported DInput (DirectInput). DInput is the part of DirectX responsible for input from controllers, keyboards and mice. See http://en.wikipedia.org/wiki/DirectInput

When Microsoft introduced the XBOX 360 controller, they made it PC compatible, but they also made it support a new input method named XInput, which was also made a part of DirectX. The XBOX 360 controller also supports DInput (DirectInput), but support is limited in some respects: most importantly the left and right analog trigger buttons act as a single axis under DInput.

But the problems started when many games became only compatible with XInput controllers, and not with DInput controllers. But with x360ce, you can make DInput controllers work with XInput-only games, meaning that do not have to use an XBOX 360 controller.

Some third party controllers now support both DInput and XInput, and with them x360ce should be unnecessary. Some current games, and many older games, are still DInput compatible, or support both DInput and XInput, and again x360ce should be unnecessary.

To see which games need x360ce, look at the game compatibility matrix at http://www.logitech.com/en-gb/game-gear/articles/compatible-gamepad-games . Games needing x360ce are ones that are “No” for DirectInput, but are “Yes” for XInput. For games that don't support either type of controller, you can still use a keyboard emulator (see troubleshooting below).

2. Procedure

a) Check the “Requirements” section at the end of tutorial, they must be fulfilled.

b) Most PC controllers are HID-compliant, so are plug and play; but you might have to manually install a driver to get all of your controllers features, such as rumble. Go to your controller's manufacturer's website to see if any are available. Also, console controllers may need a manually-installed driver. The Pinnacle Game Profiler supports a lot of console controllers, but is not free.

c) It is best to test and calibrate your controller before using x360ce. Press Start Orb, and search for joy.cpl > Properties, to test and calibrate your controller. Or else go to Control Panel\Hardware and Sound\Devices and Printers. Right click on your controller > game controller settings > Properties.

d) Go to http://code.google.com/p/x360ce/downloads/list and download the latest version of x360ce.App-x.x.x.xxx.zip. Unzip to get x360ce.exe. x360ce.exe (x360ce App) is the program that creates xinput1_3.dll (x360ce Library), and creates and edits x360ce.ini (x360ce Configuration file). It only creates them if they are not found in the folder. The Configuration file contains settings for the Library. The App does not need to be running, or present, for x360ce to work, only the Library and Configuration files.

e) Find the main game executable by examining the shortcut properties of the game. Another way is, while playing a game, press CTRL-ALT-DELETE > Start Task Manager > Applications > right-click icon of game > go to process. For example, with “Grand Theft Auto IV”, it's GTAIV.exe.

f) Copy x360ce.exe to the main game executable's folder. With Steam distributed games, this is often something like “C:\Program Files(x86)\Steam\steamapps\common\game_name\binaries”. But with games using Valve's Source engine, x360ce must go in the folder containing inputsystem.dll. A list of games using Source is at http://en.wikipedia.org/wiki/Category:Source_engine_games

g) Make sure your controller is plugged in, and you are connected to the Internet. Open x360ce.exe, and click yes to create xinput1_3.dll and x360ce.ini. In the next dialog, make sure “Search automatically for settings”, and “Search the Internet” come up, and then click next. This can find settings for your controller. Then click “Finish”.

h) On the Controller 1 tab: if there is a grey or red square next to Controller 1, your controller is not detected, or is misconfigured. See the “Controller Troubleshooting” section of this guide.

i) On the Controller 1 tab: if there is a green square next to Controller 1, your controller has been recognised. Test your setup. When you press a button on your controller, a green indicator should light on the picture of an XBOX 360 controller. If it is wrong, edit it with the pulldown selector for each button. See the “Controller Troubleshooting” section of this guide if you have problems.

j) After your controller has been tested, go to Setting Database > My Settings tab, and press Save. This will save your SID (Settings Identifier) for your controller to an Internet database, so you can download it in future.

k) On the Controller 1 > Advanced tab you can make further adjustments to things like DeadZone and and Anti-DeadZone if needed. On the Controller 1 > Force Feedback tab you can make changes to Force Feedback (rumble) if needed. On the Controller 1 > Controller Product Name tab you can find information about your particular controller. On the Options tab there are various options you can set.

l) Check the “Troubleshooting” sections if you have problems. Check ”Renaming xinput1_3.dll” section, certain games need xinput1_3.dll to be renamed. Check the “Input Hooking” section, some games need this. For extra help, see the help section inside x360ce.exe, and the links at the end of this guide.

m) Then close x360ce.exe, and click yes to save any changes. You can then use x360ce for your game, but controllers may have to be enabled within the game itself.

n) The xinput1_3.dll (Library) created by x360ce.exe (App) may need to be upgraded. My x360ce Libraries Tutorial explains how.

o) If you appreciate x360ce you should donate at http://code.google.com/p/x360ce/
http://code.google.com/p/x360ce/
3. Uninstalling x360ce

Delete or rename xinput1_3.dll in the game's executable folder. You can also delete other x360ce files like x360ce.exe and x360ce.ini.

4. Controller Troubleshooting in x360ce App

In the App (x360ce.exe), on the Controller 1 tab, there is a square left to words “Controller 1”.

(a) If there is a GREY SQUARE, and the picture of a XBOX 360 controller is greyed, your controller has not been detected.

(b) If there is a RED SQUARE, and the picture of a XBOX 360 controller is greyed, your controller has been detected, but there is a problem.

(c) If there is a GREEN SQUARE, and the picture of a XBOX 360 controller is coloured, your controller has been detected and configured, but it might be wrongly configured.
  • If you have a grey or red square: try Control Panel Game Controllers. Exit x360ce.exe. Press the Start Orb, and search for joy.cpl to run CP Game Controllers. If no controllers are listed in “Installed Game Controllers”, a device driver may need to be installed, or the controller is not plugged in properly. In CP Game Controllers, press Advanced. Select your preferred device, if more than one is listed, by clicking the down arrow. Press OK. Then in CP Game Controllers, select a controller, and press Properties to test and calibrate your controller. Then press OK. Then press OK to exit CP Game Controllers. Then restart x360ce.exe.
  • If you have a grey square, exit x360ce.exe. Unplug your controller, then plug it back in, maybe through a different USB plug. Also, rebooting your computer might help. A device driver may be needed. Then run Control Panel Game Controllers, see above for what to do. Then restart x360ce.exe.
  • If you have a red square, make sure you are using a 32-bit (x86) Library (xinput1_3.dll), like the one generated by the App (x360ce.exe). The App CANNOT use a 64-bit (x64) Library.
  • If you have a red square, go to Controller 1 > Advanced and make sure Pass Through is NOT ticked. If it is, untick it and press Save.
  • If you have a red square, try loading a different controller setting. First try a Preset Controller Settings. Go to Controller 1 > General, and press the downward arrow next to Presets at the bottom of the screen. Select your controller if its listed, and the press Load, followed by Save. If your controller is not listed in the Preset Controller Settings, go to Settings Database > Global Setttings > Sort by users. Select another SID (Settings Identifier) with a lot of users, and press Load. If you get a green square, test your setup, see below.
  • If you get a green square, test your setup. When you press a button on your controller, a green indicator should light on the picture of an XBOX 360 controller. If it is wrong, edit it with the pulldown selector for each button. There is also [record] to record a button. If it is very wrong, try loading a different controller setting, see above for details. When it is correct, go to Setting Database > My Settings tab, and press Save. This will save your SID (Settings Identifier) for your controller to an Internet database, so you can download it in future.
  • Check only Controller 1 has a green square, unless the game accepts more than one controller. With Controllers 2-4, go to Controller x > Advanced and make sure Pass Through IS ticked, if any of them are green.
5. Other Troubleshooting

First check the controller is set up in the x360ce App correctly. See “Controller Troubleshooting” section.

If the controller is fine in the x360ce App, but not recognised in the game, check the Game Compatibility List
  • Some games need a HookMask. See the “InputHook” section. Normal Games need HookCOM. Compatibility Games need HookCOM, HookDI and HookPIDVID.
  • Certain games need xinput1_3.dll to be renamed. See the ”Renaming xinput1_3.dll” section.
  • Some games do not support x360ce. In this case you could use a keyboard emulator such as JoyToKey, Xpadder or Logitech Profiler (Logitech controllers only).
  • Games which include 32 and 64-bit binaries, like WarFrame and Outlast, need a 64-bit x360ce Library if running the 64-bit binary.
Otherwise:
  • Check x360ce is in the game's main executable folder (except for games using Valve's Source engine, see above).
  • Check that controllers are enabled in the game. Usually from within the game, or possibly from the game's configuration program or file: if not found, try the game's manual or readme, or Google.
  • Check the game supports controllers. In this case you could use a keyboard emulator such as JoyToKey, Xpadder or Logitech Profiler (Logitech controllers only).
Other problems:
  • If (a) Controller maps correctly in x360ce App, but not in the game, or (b) you have ghosted input in the game, you probably need to set HookCOM. See “Input Hooking” section.
  • “MSVCRxx0.dll was not found” error: ensure all MS Visual C++ Redistributables are installed, see “Requirements” section.
  • “Configuration file version does not match x360ce version” error: add Version=1 to the [Options] section of x360.ini.
  • “x360ce is misconfigurated or device is not connected” error occurs if you don't plug your controller in with a game. To suppress, add Continue=1 to the [Options] section of x360.ini (Library R742 and later).
  • Other problems: reread the above tutorial, try the links below, or Google. You could start a thread at the forum. If no solution is found you could report it to issues at http://code.google.com/p/x360ce/issues/list
6. Renaming xinput1_3.dll

Note: some games require you to rename xinput1_3.dll, to either xinput1_2.dll, xinput1_1.dll or xinput9_1_0.dll. See the Game Compatibility List for which games need this. The easiest way to do this is within x360ce.exe. Go to Options > Installed Files, and tick the boxes needed.

7. Input Hooking

Input Hooking [InputHook] is a hook system for replacing some controller data from the system with fake data, which is then supplied to the game. Input Hooking is necessary for some games.

With x360ce Library R574 and later, HookMode was removed. It was replaced by HookMask. The current x360ce App (2.1.2.191) includes Library R584 (3.4.0.584) , so uses HookMask. See x360ce Introduction to Input Hooking [InputHook]

If you use the x360ce Game Database file (x360ce.gdb, R578 onwards), and the game is present in it, HookMasks should be automatic. See x360ce Libraries Tutorial

Otherwise, to implement a HookMask, edit x360ce.ini with a text editor, for example Notepad, and replace the [InputHook] section with:

[InputHook]
HookLL=0
HookCOM=1
HookSA=0
HookWT=0
HookDI=0
HookPIDVID=0
HookName=0

To enable a HookMask, change the above values to equal one, in accordance with the new Game Compatibility List. For example, with “Assassin's Creed”, make sure HookCOM, HookDI, HookPIDVID and HookName are enabled (=1), as in the following:

[InputHook]
HookLL=0
HookCOM=1
HookSA=0
HookWT=0
HookDI=1
HookPIDVID=1
HookName=1
  • The old HookMode=0 (Disabled) is like disabling all hooks. The old HookMode=1 (Normal) is like enabling HookCOM. The old HookMode=2 (Compatibility) is like HookCOM, HookDI and HookPIDVID enabled. The old HookMode=3 (Full or All) is like HookCOM, HookDI, HookPIDVID and HookName enabled. So far, only “Beat Hazard” titles needs HookSA enabled; so far, only “Gears of War” needs HookWT enabled. Note: prior to R604, HookPIDVID was titled HookVIDPID. Note: HookLL was included in HookModes 1, 2 and 3, from R553 onwards.
  • x360ce Libraries earlier than R574 are unsupported and not recommended. But if you use them, use HookMode instead. For most games Normal (HookMode=1) is recommended. Compatibility (HookMode=2) replaces additional data. Full or All (HookMode=3) also changes the name of controller to "XBOX 360 Controller (for Windows)". Disabled (HookMode=0) disables InputHook. To change the HookMode within x360ce.exe, go to Options > InputHook > HookMode, and select from Normal, Compatibility, Full, or Disabled. Then exit x360ce.exe, saving the setting.
8. x360ce Requirements
  • MS Windows XP SP3, or later. With all Service Packs and updates.
  • MS Visual C++ Redistributable 2012 Update 4 and 2010 SP1. Install the x86 version for 32-bit Windows; and both the x86 AND x64 versions for 64-bit Windows. If missing, you will get “MSVCRxx0.dll was not found”.
  • DirectX 9.0c . Needed for ALL Windows versions, but install .NET first.
9. Other Links
 

Attachments

·
Premium Member
Joined
·
5,057 Posts
:) A future version of the App will generate a GDB binary ini the common app data directory (all users local data on xp, program data on vista/7) and the Xinput wrapper will seek out this file and apply correct compatiblity settings.

The wrapper side of things is complete atleast!.
 

·
Registered
Joined
·
1,062 Posts
In the new download, I see x360ce.ini, x360ce.exe, xinput1_3.dll, dinput8.dll, and x360ce.gdb. Do they all still go in the game's main directory or can it all be controlled from one place now? Elaborate on the dinput.dll and x360ce.gdb please.

Also, will this be able to be used with the PS3 controllers?
 

·
I mustache you a queshtion
Joined
·
1,972 Posts
Discussion Starter #6

·
Registered
Joined
·
1,062 Posts
oh ok, thanks. i've just been using the dll's from the libraries version because I though that was the update when using the x360ce.App-2.1.2.190.zip download and I just started seeing those extra files recently.

Every function within the dualshock 3 works with this (wireless, pressure sensitivity, home button, 6-axis)?
 

·
Registered
Joined
·
1,062 Posts
Oh, nevermind then. For some reason I thought I could just plug one in and x360ce would make it work :p
 

·
I mustache you a queshtion
Joined
·
1,972 Posts
Discussion Starter #10 (Edited)
Well it's all pretty confusing! Mainly thanks to M$ creating two standards. Basically x360ce is about converting DirectInput controllers > XInput controllers.

But it seems that PS3 controllers have no native DirectInput support. So in that case you'd have to use the motioninjoy driver, to get anywhere on the PC.

In that case you'd might not need to bother with x360ce, as the motioninjoy driver seems to add support for both DirectInput games and XInput games, through a switchable option. See http://img585.imageshack.us/img585/9272/motioninjoy.png

How good the motioninjoy driver is at this is something I don't know. What does seem strange is that it seems to need to be online to be active, although the forum seems to suggest there is also an offline version.

Also, at the forum some people seem to be complaining about problems caused by the motioninjoy driver, but whether this is their fault I don't really know. While the x360ce seems a pretty good emulator.

In summary: maybe using PS3 controllers on the PC is a bad idea? I'm sure many would probably disagree with this, and they might be right.

p.s. There's a good article about the difference between DirectInput and XInput at http://pinnaclegameprofiler.com/forum/showthread.php?22133-Guide-Xinput-and-DirectInput

EDIT
People moaning about motioninjoy at http://forums.anandtech.com/showthread.php?t=2223087 . Some people hate it.

EDIT 2
A better alternative to motioninjoy might be the Pinnacle Game Profiler at http://pinnaclegameprofiler.com/ . It provides DirectInput support for many types of controllers such as Xbox 360, PS3 SixAxis, Wiimote, original Xbox, PS2, Playstation (some of these will need a USB adapter.) I think it also provides XInput support and keyboard emulation. But you have to pay for it. I haven't tried it though, so I'm not too sure about it.
 

·
I mustache you a queshtion
Joined
·
1,972 Posts
Discussion Starter #12 (Edited)
I've made some minor changes to my tutorial, including adding a troubleshooting section. I hope this helps.
[highlight]
Made changes to the InputHook section. :???:[/highlight]
 

·
I mustache you a queshtion
Joined
·
1,972 Posts
Discussion Starter #13 (Edited)
Fixed: HOOK_VIDPID changed to HOOK_PIDVID

HookVIDPID was changed to HookPIDVID R604 onwards, but I didn't notice. Sorry for any confusion caused. :(

A few other minor changes...

HOOK_PIDVID and HOOK_DI have been changed to HookPIDVID and HookDI.
 

·
Registered
Joined
·
1 Posts
HI, i need help !!
I bought dark souls 2 scholar of the first sin, and i try everything to make my controller work with it but nothing .. :( I try a lot of versions of x360ce buuuuut it doesnt change anything in the game. what could i do ??

Any help is welcome .
Thanks a lot !!
 
1 - 15 of 15 Posts
Top