Next Generation Emulation banner

X360ce and Chrome HTML5 gamepad compatibility

9K views 21 replies 3 participants last post by  resolutespider5 
#1 ·
Hi,

Current developing a web based application, using Google Chrome, that uses the HTML5 gamepad API. An Xbox 360 wireless controller on a Windows & 64-bit system currently issues commands to the application.

I see from the installation notes that normally X360CE should be installed in the game directory where it is to be used, so that the XInput.dll file is picked up by the game?

I have a Saitek X52 Pro controller that I would love to have working in my application.

Has anyone been successful in using the generated files from X360CE within a HTML5 application - for example I would not know how to name or where to store the generated files so that they are picked up successfully by Chrome.

Many thanks for any pointers/advice.
 
#3 ·
I've tested this out a bit. I found three tests on the Internet.

1. http://www.html5rocks.com/en/tutorials/doodles/gamepad/

2. http://www.scirra.com/forum/help-test-the-new-gamepad-object_topic49061.html

3. http://www.raymondcamden.com/index....rome-Got-a-joystick-Check-out-the-Gamepad-API

With Chrome, x360ce was placed in the folder with chrome.exe, which is in C:\Program Files (x86)\Google\Chrome\Application on my system. It passed test 1 ok, but test 2 and 3 failed. It used and needed x360ce to pass test 1.

I also tested the Firefox nightly build 11, from 2011, and it didn't need x360ce to run test 1 and test 2 successfully . Test 3 failed again. It wouldn't load x360ce, but DInput worked on test 1 and 2.
 
#4 ·
Thanks Squall-Leonh@rt, resolutespider5 for coming back to me.

@resolutespider5 - I've come across those links in my research too. There is a very nice gamepad library here which I'm using in my application, currently working with an Xbox 360 wireless controller:


https://github.com/kallaspriit/HTML5-JavaScript-Gamepad-Controller-Library


Currently this library does not work with my Saitek X52 Pro so hence looking at X360CE to provide the wrapper.

There exists already an XInput1_3.dll file in the \Chrome\Application folder, so would you know if I overwrite, rename this with the .dll generated by X360CE, or does X360CE update this existing file?

Many thanks.
 
#6 ·
@grumpybeard

Well it should be an easy matter to install x360ce on your system to use your Saitek X52 Pro. Please post on this thread if you can get your app to work.

On my system there wasn't a system xinput1_3.dll in the Chrome\Application folder. But there is in the Chrome\Application\30.0.1599.69 and Chrome\Application\30.0.1599.101 folders. So it wasn't necessary to overwrite or rename at all.
 
#7 ·
@resolutespider5

Thanks for the tips, however I could not get it to work.

First I tried by placing X360CE.EXE in the Chrome\Application\30.0.1599.101 folder and executing. Recognised my Saitek X52. Looking on the Controller 1 tab I had a red square status, but tabbing to the Saitek X52 tab any inputs were recognised. There is an XInput1_3.dll in this chrome folder, but the timestamp does not reflect today, dont know if thats a problem. So after saving and closing X360CE I relaunch Chrome and execute some online gamepad tests, such as:



http://html5gamepad.com/
http://www.html5rocks.com/en/tutorials/doodles/gamepad/


The first link is the one I often use to test with my XBOX360 wireless. With the Saitek nothing, no response. Also tried the X360CE presets "gamepad" and "flightstick".

I then try by placeing X360CE in the Chrome\Application folder, where Chrome.exe resides. I can execute X360CE.exe once, every time after that I get the following dump: Note that launching Chrome dumps too when accessing any of the web pages that try to access the gamepad api (any other pages are fine). Dump resolved by removing all X360CE files from chrome application folder.


Code:
Problem signature:
  Problem Event Name:    CLR20r3
  Problem Signature 01:    x360ce.exe
  Problem Signature 02:    2.1.2.191
  Problem Signature 03:    5179426e
  Problem Signature 04:    x360ce
  Problem Signature 05:    2.1.2.191
  Problem Signature 06:    5179426e
  Problem Signature 07:    59
  Problem Signature 08:    e
  Problem Signature 09:    System.AccessViolationException
  OS Version:    6.1.7601.2.1.0.256.48
  Locale ID:    2057
  Additional Information 1:    0a9e
  Additional Information 2:    0a9e372d3b4ad19135b953a78882e789
  Additional Information 3:    0a9e
  Additional Information 4:    0a9e372d3b4ad19135b953a78882e789

Grateful for any pointers where I am going wrong.
 
#8 ·
Just to add, if I keep X360CE.EXE and X360.ini in the /Chrome/Application folder, but remove the XInput1_3.dll file that X360CE.EXE creates from this folder, then Chrome works fine with the gamepad test links. I am sure this is obvious to you guys far more familiar with the setup than me, just wanted to provided for extra info.

I am sure that I must be setting up X360CE incorrectly - instructions say to place X360CE in the application folder where the application EXE resides, so Chrome\Application, but if I allow X360CE to create the XInput1_3.dll in this folder then Chrome crashes. If I say "no" to creation of .dll then does X360CE need to be pointed to the existing XInput1_3.dll file that resides further in Chrome\Application\30.0.1599.101?

I'm sure it must work, just a matter of setup, as I came across this thread on the OpenROV forum indicating success with Chrome, will post a thread enquiring when signup verified:

http://openrov.com/forum/topics/make-non-xbox-360-gamepads-work-with-openrov-cockpit
 
#11 ·
@grumpybeard

1. Just to be clear, I have only tried putting the x360ce files in Chrome\Application folder. Please follow my example. Have you overwritten the system xinput1_3.dll with the x360ce one? DO NOT PUT x360ce in the Chrome\Application\30.0.1599.69 and Chrome\Application\30.0.1599.101 folders.

2. You must get a green square for your controller to be set up correctly. See http://ngemu.com/threads/tutorial-by-resolutespider5.155011/ for a description on how to get this. Not surprising no response if you controller did not get a green square. It does not matter if your controller is detected on the "saitex x52" tab.

3. Both of those links work on my system with x360ce installed. You need to press a button on your controller first.

4. "Just to add, if I keep X360CE.EXE and X360.ini in the /Chrome/Application folder, but remove the XInput1_3.dll file that X360CE.EXE creates from this folder, then Chrome works fine with the gamepad test links". Do you mean that the gamepad tests work? If so probably because you put x360ce in the Chrome\Application\30.0.1599.101 folder.

5. "I can execute X360CE.exe once, every time after that I get the following dump: Note that launching Chrome dumps too when accessing any of the web pages that try to access the gamepad api (any other pages are fine)." Check all system requirements in http://ngemu.com/threads/what-is-x360ce-and-how-to-use-it.154965/ . Redownloading requirements wont hurt.

Also, please use the x360ce library from http://code.google.com/p/x360ce/downloads/list . Please confirm you are using a R766 or R789 32-bit library. DO NOT USE THE LIBRARY GENERATED BY THE APP, IT COULD BE THE CAUSE OF YOUR PROBLEMS!!! Read http://ngemu.com/threads/x360ce-libraries-tutorial-by-resolutespider5.155310/ if you want to know how.
 
#12 ·
Hi,

Appreciate the help. One step closer, I now have a green light on the "Controller 1" tab, to confirm:

1. Rechecking necessary X360CE pre-requisite requirements as per http://ngemu.com/threads/what-is-x360ce-and-how-to-use-it.154965/
2. I DO NOT have any X360CE files in the in the Chrome\Application\30.0.1599.69 and Chrome\Application\30.0.1599.101 folders.
3. The Xinput1_3.dll file in the Chrome\Application\30.0.1599.69 and Chrome\Application\30.0.1599.101 folders are the original (non-X360CE) files.
4. I have X360CE.EXE placed in the /Chrome/Application folder.
5. I have downloaded X360CE library X360ce_lib32_r766 and placed the xinput1_3.dll and x360ce_gdb files from that downloaded library into folder /Chrome/Application where Chrome.exe resides.
6. I execute X360CE.EXE. I see a Saitek X52 Pro tab and see a response to stick axis/button movements.
7. After mapping X52 buttons/axis to 360 I get a green Controller 1 tab. Pressing buttons/axis movement on the Saitek is acknowledged with the graphical X360 controller representation.
8. Launching X360CE/Chrome was issuing the message "Configuration file version does not match x360ce version". I resolved by placing "
Version=1" in the X360CE.ini file. The message is no longer issued. I do not know if there is a preferable way to resolve this?


However upon re-launching Chrome and executing the gamepad tests previously posted I DO NOT get any gamepad response recognised. I think I am nearly there, last step of the puzzle to resolve hopefully. Thanks again.
 
#13 ·
OK you're definitely making progress! Thanks for following my advice.

8. Launching X360CE/Chrome was issuing the message "Configuration file version does not match x360ce version". I resolved by placing "
Version=1" in the X360CE.ini file. The message is no longer issued. I do not know if there is a preferable way to resolve this?


Not to my knowledge. When the app is updated this will not be necessary. I don't understand the requirement really.


One thing I was wondering is that you need to press the buttons on your controller for it to be recognised, it doesn't happen until you do this for some reason, on my system at least.

The main thing to find out is if x360ce dll is being loaded. If so it should make a beep sound when you first press a button on the controller.

Another way is, in the app (x360ce.exe), to go to options > enable console. The console window should pop up. Then close the app, the console should close. Now when you start chrome go to the test page, e.g. http://html5gamepad.com/. hopefully a beep sound should ring and the console window should pop up. This will signify x360ce library has been loaded. Press a button on your controller, should be recognised.

Does this happen? It does on mine.
 
#14 ·
Hi,

I'm aware you need to press a button in order to activate the gamepad API - I need to do this for my Xbox 360 wireless controller too.

Thanks for the tip on enabling the console. See the console output below. Good news is confirmation X360CE is being picked up by Chrome. However it would seem it is picking up xinput1_3.dll from windows/system32? Does the same happen for you, and if so how did you get around it.

Text Font Monochrome Black-and-white
 
#16 ·
Just got it working - I had mapped some buttons/axis from my Saitek. Having a play around I mapped a Saitek button to 360 button A (green) and it kicked into life. Now getting responses from the HTML5 Gamepad tester, very pleased to be looking forward to working with my drone control application using the Saitek this week.

THANK-YOU very very much resolutespider5 for bearing with me and my questions and failures whilst getting this up and running, you are a star!
 
#18 ·
Just to confirm, after installing on a second PC, within minutes I had Chrome responding to a Saitek X52 Pro inputs using X360CE on Windows 7 - steps as follows:


1. Ensure the prerequisites: http://ngemu.com/threads/what-is-x360ce-and-how-to-use-it.154965/
2. In Chrome/Applications I placed the x360ce.gdb and xinput1_3.dll files from the x360ce_lib32_r766 zip available at https://code.google.com/p/x360ce/downloads/list. Fundamental to grab the 32-bit version (lib32).
3. Downloaded x360ce.App-2.1.2.191 and placed X360CE.EXE in Chrome/Applications.
4. Updated Version=1 to the Options section of the X360CE.ini file to prevent the "configuration version" issue described earlier (although please note this may be installation issue with me).
5. In X360CE.exe configuration gui mapped Saitek X52 Pro buttons/axis to Xbox buttons/axis. Save and exit.
6. Launched http://html5gamepad.com/ to test. Press a Saitek button mapped to an Xbox button to launch gamepad api.

Thanks again to resolutespider5 for great and speedy responses. Paypal donation made.
 
#19 ·
Hi,

After months of X360ce working perfectly with Chrome I now have issues, perhaps related to Chrome update?

Where before when Saitek X52 plugged in (and no other) only one controller of Xbox 360 type registered (as per resolutespider5 screenshot above). Now I get two controllers registered.

Any ideas?

 
#20 ·
Just to add, in reference to the above screenshot showing two controllers. If I move the throttle it only shows as Axis 2 on Controller 2 Saitek X52.

If I twist the flight stick (separate unit) it shows as axis 2 on controller 1 (Xbox 360) and Axis 5 on Controller 2 (Saitek X52).
 
#22 ·
Hi

Try adding HookCOM=1 to the [InputHook] section of x360ce.ini.

Whats happening is chrome is getting input both as DInput (Saitek X52) + XInput through x360ce (x360 controller). HookCOM blocks the DInput from registering.

Alternatively, disable x360ce and you should just get DInput (saitek X52)

More info at http://ngemu.com/threads/various-x360ce-guides-by-resolutespider5.156807/#post-2119670

Just to add, in reference to the above screenshot showing two controllers. If I move the throttle it only shows as Axis 2 on Controller 2 Saitek X52.
Maybe hhis suggests you have not set up the controller profile correctly. See http://ngemu.com/threads/tutorial-by-resolutespider5.155011/

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

(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 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. 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.
 
#21 ·
OK, after rolling back Chrome from 34.0.1847.116 to 33.0.1750.154 my Saitek controller now only shows as one device, not two, and works as before.

I would appreciate any insight/feedback into why Chrome might be showing the Saitek as two devices now (bug fixed, bug introduced, X360CE config or software issue?).

Many thanks.
 
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