Next Generation Emulation banner

Report game compatibility here.

124K views 270 replies 102 participants last post by  adearya0207 
#1 · (Edited)
For games NOT listed in the Game Compatibility List

As of r574, compatibility is very different, this thread will be for reporting which hookmasks work for which games, how to use the hookmasks and I will compile a list of games already included in the GDB and link each post for each game in the list.

HookMode is removed entirely as of r574!.

Some games do not require a hookmask for some reason, but others do, particularly those that use unusual methods for detecting Xbox360 pads or support both Xinput and DirectInput pads(these are usually requiring HookCOM).


X360CE.GDB
In the GDB file, the HookMasks (HookMask=) are written using a combination of these hex values

  • LoadLibrary(HookLL) = 0x00000001;
  • COM(HookCOM) = 0x00000002;
  • SetupAPI (HookSA) = 0x00000020;
  • WinVerifyTrust(HookWT) = 0x01000000
  • DirectInput (HookDI) = 0x00000004;
  • ProductID/VendorID (HookPIDVID) = 0x00000008;
  • Spoof name (HookName) = 0x00000010;
Hookmask 0x0100003F enables all of the above for example.
Typically, only a single value will be required in the GDB.

There are also some other values that are really only useful to the developers such as

  • Stop hooking(HOOKSTOP) = 0x02000000;
  • Disable (HOOKDISABLE) = 0x80000000;
X360CE.INI
In the INI, they are entered under the [InputHook] section as

  • HookLL=(0/1)
  • HookCOM=(0/1)
  • HookSA=(0/1)
  • HookWT=(0/1)
  • HOOKDI=(0/1)
  • HOOKPIDVID=(0/1)
  • HookName=(0/1)
Whilst you can just enable all 4 and forget it, it is advised to only use one of the first 3 at a time, with the 4th (HookWT) only being used specifically in games that require it, we will not simply enable all modes for a game in the GDB without significant proof (and self replication) of it being required as this may introduce undesired behavior
Don't hesitate to report if you find any games that crash with all them set, it would be good if it could eventually default to all on and be done with it.
See the thread rules below for further information.

HookCOM
Games that support both Direct and X Input API's may end up displaying both controllers in game, resulting in ghosted input or being able to start a 2 player game using a single control (SF4/SSF4 and DMC for example). HookCOM allows the game to mask the controller's directinput capabilities, which is advised by microsoft themselves on TechNet. HookCOM is the method required in most cases of games not working.​
HookLL
Many XACT games (that is, the Xbox360/PC cross platform games) require HookLL to run properly. As they do not load the xinput runtime directly, Dinput8 wrapper is required to redirect back to the local X360CE binary instead of loading the default xinput1/9_x binary.
HookSA
This enables the hooking of SetupAPI, only the BeatHazard titles are known to require it thus far, so it should almost never be needed.
HookWT
This enables the hooking of WinVerifyTrust. This is required for games which utilise WVT for Process Integrity checking.
Only Gears of War is known to use it at this point, so it should almost never be needed.
HOOKDI
This allows the wrapper to trick some games that detect the controller GUID via DirectInput, The first Assassins Creed is one such title.​
HOOKPIDVID
This works in conjunction with FakePID= and FakeVID=
Without these, it defaults to the Wired Xbox 360 Controller which are 0x28E and 0x45E respectively.
HookName
This allows x360ce to return a different oemname than that of the controller installed. For instance, in Assassins Creed it changes the name of the xinput device to Xbox 360 Controller. While this is generally not required for functionality, the game mini ninja's is known to check for "Xbox 360 Controller" in the registry and will not work if the name is anything else.
Some games will work even without any of the above set, It would be good to know these as well.

Thread Rules:

  1. This thread is specifically for reporting games found to be compatible.
  2. When reporting game compatibility, the HookMask(s) used, full game title and executable name are required for adding to the GDB.
  3. If you find a game crashing that is listed in the second post, its likely not the wrapper, but an issue with your controllers drivers - particularly if it uses an obscure (probably bad) Force Feedback driver. Start your own thread or report the issue to the issue tracker.
  4. If a game is not working with any settings, start a thread of your own or report it to the issue tracker.
  5. Do not post in this thread about a game already listed unless you have evidence that settings provided by the original reporter are wrong.
 
See less See more
#2 · (Edited)
Does my game use XInput? Is it 32-bit or 64-bit? What xinput dll filename does it need?

This is how you can find out, for games not on the Game Compatibility List.

1. CTRL-ALT-DEL > Task Manager > Right click on application name > Select "Go To Process" to get name of process.
2. NB If 32-bit will have " *32" besides process image name, and needs 32-bit x360ce. Otherwise will need 64-bit x360ce.
3. In Task Manager > Performance Tab > Click on "Resource Monitor" to bring up Resource Monitor.
4. In Resorce Manager click on CPU tab. Locate name of process under "Processes" and click box to select.
5. Go to Associated Modules. Click on Module Name to sort alphabetically. Scroll down to see if any "C:\Windows\System32\xinput*.dll" are loaded. Note xinput dll name, and check it is in Windows\System32.
6. NB In "Resource Manager > CPU > Associated Modules" there may be two scroll bars, you have to scroll using both of these.





If you require additional help and information, please read the
x360ce Libraries Tutorial by resolutespider5
 
#3 ·
Mini Ninjas requires a rename to be an XBOX 360 pad in the registry and then it works with whatever the default hook mode was.

Split/Second should work out of the box.
 
#4 · (Edited)
Bastion works with HookMode=Normal, no HookMask, and with no renaming of xinput1_3.dll. Tested with x360ce.App-2.1.2.190. My x360ce.ini file InputHook section read:

[InputHook]
HookMode=1
HookLL=0
HookCOM=0
HookSA=0
HookWT=0

You need to enable controllers: in the game go to Help & Options > Controls > click on the gamepad icon.

I can confirm that Grand Theft Auto IV doesn't need a HookMask, as it worked with the above ini. Everything as in Bastion.

One question I've got: if a game needs a HookMask, what is the best HookMode to run it under?
[highlight]
Thanks for the info. Just to clarify, Bastion and GTAIV are fine with the following InputHook

[InputHook]
HookLL=0
HookCOM=0
HookSA=0
HookWT=0
HOOK_DI=0
HOOK_VIDPID=0

Also, both work with:
[InputHook]
HookLL=1
HookCOM=1
HookSA=1
HookWT=1
HOOK_DI=1
HOOK_VIDPID=1
[/highlight]
 
#6 · (Edited)
Bastion works with HookMode=Normal, no HookMask, and with no renaming of xinput1_3.dll. Tested with x360ce.App-2.1.2.190. My x360ce.ini file InputHook section read:

[InputHook]
HookMode=1
HookLL=0
HookCOM=0
HookSA=0
HookWT=0

You need to enable controllers: in the game go to Help & Options > Controls > click on the gamepad icon.

I can confirm that Grand Theft Auto IV doesn't need a HookMask, as it worked with the above ini. Everything as in Bastion.

One question I've got: if a game needs a HookMask, what is the best HookMode to run it under?
Useless, HookMode=X was removed in r574
HOOK_NAME work with conjunction with HOOK_DI, in GetDeviceInfo method, GetProperty method and DirectInput enumeration callback, ie. it have limited functionality. I must know what API Mini Ninja's use to hook it... Maybe RegistryAPI ? (RegQueryValue).

For clarity old HookMode states (HookLL was added in r553 to all states):
Code:
HookMode==1 -> HOOK_LL | HOOK_COM
HookMode==2 -> HOOK_LL | HOOK_COM | HOOK_VIDPID | HOOK_DI
HookMode==3 -> HOOK_LL | HOOK_COM | HOOK_VIDPID | HOOK_DI | HOOK_NAME
HookMode> 3 -> HOOK_LL | HOOK_COM | HOOK_VIDPID | HOOK_DI | HOOK_NAME | HOOK_STOP
 
#10 · (Edited)
Seems "Mini Ninja's" check for "*xbox*" in pad name inside DirectInput enumeration callback, so it should work with HOOK_DI | HOOK_NAME.

EDIT: or not... I see that current HOOK_DI code is forcing VIDPID to Microsoft one, always... This need to be changed.
PS: Also VIDPID is incorrect name somekind, it should be PIDVID ...
PS2: Interesting: DirectInput device GUIDs have always last part "504944564944", if you write this bytes binary you get "PIDVID" in ANSI. Also Instance GUIDs have a "444553540000" this is "DEST" and null padding.
 
#13 · (Edited)
X360CE.GDB
In the GDB file, the HookMasks (HookMask=) are written using a combination of these hex values

  • LoadLibrary(HookLL) = 0x00000001;
  • COM(HookCOM) = 0x00000002;
  • SetupAPI (HookSA) = 0x00000020;
  • WinVerifyTrust(HookWT) = 0x01000000
  • HOOK_DI = 0x00000004;
  • HOOK_PIDVID = 0x00000008;
Hookmask 0x01000032 enables all of the above for example.
Shouldnt that be 0x0100002F ?
 
#18 ·
I've been testing HookMasks a bit with R629, and have noticed when I have the following HookMask in the x360ce.ini file:

[InputHook]
HookLL=1
HookCOM=1
HookSA=1
HookWT=1
HOOK_DI=1
HOOK_PIDVID=1

the HookMask in the log file is only 0x01000023, i.e HookDI and HookPIDVID are not being set. But with the following HookMask in the x360ce.ini file:

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

the HookMask sets up correctly, i.e. 0x0100002F.

It seems that having underscores in the name of the hooks stops them from being set.
 
#20 ·
Game: FlatOut Ultimate Carnage
Version: File 1.0.0.1
Executable: fouc.exe (through launcher.exe)
My system: Dell Inspiron 15R SE (7520), Intel i7-3612QM, 8GB RAM, 2GB AMD Radeon HD 7730M / Intel HD 4000 graphics, 1920 x 1080 screen, 1 TB hard disk. MS Win7 Home Premium SP1 64-bit, DirectX 9.0c / 11, MS Visual C++ 2010/12 Re-distributable x86/x64, MS .Net Framework 4.5
Controller: Saitek P380 Controller.
Controller Driver: HID compliant game controller MS 21/06/2006 6.1.7601.17514
x360ce library: R642 32-bit (3.4.0.642)
x360ce library filename: xinput1_3.dll
[InputHook]
HookLL=0
HookCOM=1
HookSA=0
HookWT=0
HookDI=0
HookPIDVID=0
HookName=0
Comments: Needs HookCOM. Also works with all hooks enabled, i.e. HookMask=0x0100003F
 
#21 ·
Game: Bastion
Version: File 1.0.0.0
Executable: bastion.exe
My system: Dell Inspiron 15R SE (7520), Intel i7-3612QM, 8GB RAM, 2GB AMD Radeon HD 7730M / Intel HD 4000 graphics, 1920 x 1080 screen, 1 TB hard disk. MS Win7 Home Premium SP1 64-bit, DirectX 9.0c / 11, MS Visual C++ 2010/12 Re-distributable x86/x64, MS .Net Framework 4.5
Controller: Saitek P380 Controller.
Controller Driver: HID compliant game controller MS 21/06/2006 6.1.7601.17514
x360ce library: R642 32-bit (3.4.0.642)
x360ce library filename: xinput1_3.dll
[InputHook]
HookLL=0
HookCOM=0
HookSA=0
HookWT=0
HookDI=0
HookPIDVID=0
HookName=0
Comments: Resubmitted with extra details. No HookMask needed. Also works with all hooks enabled, i.e. HookMask=0x0100003F
 
#22 ·
Game: Grand Theft Auto IV
Version: File 1.0.7.0
Executable: GTAIV.exe
My system: Dell Inspiron 15R SE (7520), Intel i7-3612QM, 8GB RAM, 2GB AMD Radeon HD 7730M / Intel HD 4000 graphics, 1920 x 1080 screen, 1 TB hard disk. MS Win7 Home Premium SP1 64-bit, DirectX 9.0c / 11, MS Visual C++ 2010/12 Re-distributable x86/x64, MS .Net Framework 4.5
Controller: Saitek P380 Controller.
Controller Driver: HID compliant game controller MS 21/06/2006 6.1.7601.17514
x360ce library: R642 32-bit (3.4.0.642)
x360ce library filename: xinput1_3.dll
[InputHook]
HookLL=0
HookCOM=0
HookSA=0
HookWT=0
HookDI=0
HookPIDVID=0
HookName=0
Comments: Resubmitted with extra details. No HookMask needed. Also works with all hooks enabled, i.e. HookMask=0x0100003F
 
#23 ·
Game: FlatOut Ultimate Carnage
Version: File 1.0.0.1
Executable: fouc.exe (through launcher.exe)
My system: Dell Inspiron 15R SE (7520), Intel i7-3612QM, 8GB RAM, 2GB AMD Radeon HD 7730M / Intel HD 4000 graphics, 1920 x 1080 screen, 1 TB hard disk. MS Win7 Home Premium SP1 64-bit, DirectX 9.0c / 11, MS Visual C++ 2010/12 Re-distributable x86/x64, MS .Net Framework 4.5
Controller: Saitek P380 Controller.
Controller Driver: HID compliant game controller MS 21/06/2006 6.1.7601.17514
x360ce library: R642 32-bit (3.4.0.642)
x360ce library filename: xinput1_3.dll
[InputHook]
HookLL=0
HookCOM=1
HookSA=0
HookWT=0
HookDI=0
HookPIDVID=0
HookName=0
Comments: Needs HookCOM. Also works with all hooks enabled, i.e. HookMask=0x0100003F

how is that P380 working for you?

because the P480 is having all sorts of problems with one of our users, his rumble only works properly in x360ce.exe and actually crashes in dinput8.dll when quitting games or the xinput sdk samples,
if he uses the 2007 windows cabinet driver it crashes HID.dll on exit
 
#24 ·
how is that P380 working for you?
Its working really well. It's a pretty basic controller, but it does the job. It doesnt have rumble. I haven't had any crashes due to using it. Every game so far runs perfectly with x360ce and it.

I did have problems with x360ce 32bit library R604, but thats only one.

It has no drivers on the saitek website, probably because it lacks rumble.

Driver is MS 21/06/2006

hidclass.sys 6.1.7601.17514 Win7sp1_rtm.101119-850.
hidparse.sys 6.1.7601.16385 win7sp1_rtm.090713-1255
hidusb.sys 6.1.7601.17514 Win7sp1_rtm.101119-850

I can send you the files if you like.

I'll tell you a weird thing about GTA4. I have a laptop, and I bought a wireless mouse to play it with, as I only like the gamepad when driving. But when I tried to use it there was an incredible amount of lag, and it was basically unplayable. But if I plug in the saitek it runs like normal! No idea why.
 
#26 ·
GTA4's lag is known xD, its a really bad game.
Whats really weird:

gta4 : runs fairly smoothly on laptop
Gta4 + gamepad + x360ce: runs fairly smoothly
Gta4 + wireless mouse: very choppy, unplayable
gta4 + wireless mouse + gamepad+ x360ce: runs fairly smoothly:???:

Not really worried about this though. Just glad i have my gamepad and x360ce;)
 
This is an older thread, you may not receive a response, and could be reviving an old thread. Please consider creating a new thread.
Top