The NEW Build Your Own Arcade Controls

Main => Driving & Racing Cabinets => Topic started by: Fursphere on July 23, 2013, 11:44:35 pm

Title: Joystick / GamePad RegHacking
Post by: Fursphere on July 23, 2013, 11:44:35 pm
At least one member here (MartinJames) has one (two actually!).  Hopefully he'll be along and give his thoughts.

I don't have experience with them, but the issue that usually comes up with non-Logitech wheels is the inability to switch from combined/separate pedals on the fly.   This is only really an issue with fairly old PC games and Demul emulator.

Demul emulator for Naomi & Atomiswave games (Crazy Taxi, Jambo Safari, Maximum Speed, etc) requires the pedals to be combined.  You can still change the pedals manually before launching the emulator, but most of us launch games from a front-end and it's nice to have it be automatic, which Logitech profiler does.

Model 2 requires the pedals to be marked separate.  MAME, Supermodel and most newer PC games can work either way.

I'm probably switching to an Immersion arcade PCB in the next few months, so I'll be addressing the same issue.
There should be some workaround like having an autohotkey script change the setting or mapping the pedals to a virtual gamepad joystick.
I'm pretty sure that I'll come up with something given enough time to work on it.

As I was reading your post, something clicked.

Where does windows store these settings?  Pedals combined, pedals separated?  99% chance its in the registry.  Find the keys (I can help), export the keys, then write a simple script / batch file to import the appropriate reg key before the game starts.

There are lots of tools out there to scan the registry for changes based on application input.  When I get my wheel hooked up, I'll work on this.

Point is - those settings are stored somewhere.  We just need to find where.  :D

From: http://forum.arcadecontrols.com/index.php/topic,133538.0.html (http://forum.arcadecontrols.com/index.php/topic,133538.0.html)

I decided to start a fresh thread, instead of hijacking the other one.  I have some results already.

This is the program I used - http://www.nirsoft.net/utils/reg_file_from_application.html (http://www.nirsoft.net/utils/reg_file_from_application.html)

I set the program to monitor "c:\windows\system32\rundll32.exe" (this was determined by comparing the list of available programs to monitor with the game controllers properties window open, then closed - rundll32.exe was the odd ball)

I plugged in my Logitech F310 Gamepad, set it in DirectInput mode, and when to the properties window where I could select "Swap D-Pad and Left Mini Joystick" check box back and forth.

When I click the "Swap D-Pad and Left Mini Joystick" check box, it creates this registry key:

Quote
[HKEY_CURRENT_USER\Software\Logitech\Gaming Software\GlobalDeviceSettings\DualAction]
"AnalogAxisMode"=dword:00000000

When I uncheck the box, the key disappears.  (key and dword value)

Checking the "swap joysticks - enable swap mode" creates this key:

Quote
[HKEY_CURRENT_USER\Software\Logitech\Gaming Software\GlobalDeviceSettings\DualAction]
"GoofyModeEnable"=dword:00000001

Unchecking the box deletes the key and dword value.

If BOTH check boxes are checked you get

Quote
[HKEY_CURRENT_USER\Software\Logitech\Gaming Software\GlobalDeviceSettings\DualAction]
"AnalogAxisMode"=dword:00000000
"GoofyModeEnable"=dword:00000001

Just wanted to post that to show what you get.

So there you have it. 

Now... you'll have to apply this same process to whatever joystick you're trying to figure out, because the names of the keys and values will be different.

Then follow these steps to automate this:  http://support.microsoft.com/kb/310516 (http://support.microsoft.com/kb/310516)  (I can probably come up with a better tutorial for this down the road too...   give me some time)