Jump to content
(Public Beta) HyperSpin 2 is now available for everyone ×

Tur-Game Controller Order 1.5


Turranius

Recommended Posts

Posted

File Name: Tur-Game Controller Order 1.5

File Submitter: Turranius

File Submitted: 23 Feb 2016

File Category: Other

Credits: Turranius


--[ Purpose ]-------------------------------------------------
Controls the order the controllers appear in the "Game Controllers" list in Windows.

 

--[ Reason ]--------------------------------------------------

 

The order they appear in are used in some emulators and games to define the order they should be used.
For example, the top one in the list is Joy1. Second one Joy2 etc.

 

Problem here is threefold.
1: The list is not always the same after a restart so you have to remap all your controllers in the emulators
that use this setup.
2: If you plug in another controller, it will (most of the time) not go to the end of the list but in the
middle somewhere, messing up the order of the other controllers.
3: Even if everything is as you think it should be, your first joystick might be called Joy3 in the
games/emulators and it just looks ugly =)

 

--[ Usage ]---------------------------------------------------

 

Connect all the controllers that you want to have a permanent location in the list.
Run "Tur-Game_Controller_Order.exe" as administrator and it will list all the controllers and ask
you, one by one which location it should have in the list (basically, where you want it to appear. 1 = top)

 

That will create a Settings.ini file. If that file exists the next time you run it, it will simply
go through the controllers and reorder them, silently. Remove or rename Settings.ini to get it to run
again.

 

You can also create more then one Settings.ini file if you have different setups. Simply specify which
.ini file it should work with when running it, for example "Tur-Game_Controller_Order.exe Settings2.ini"

 

By default, when you run it with a Settings.ini present, it will just run once and exit, but you can have
it running all the time, checking the order every few seconds or so. This is good if you have some controllers
plugged in some of the time but want to be able to plug in others without them appearing in the middle of the
list. Edit Settings.ini and change DaemonMode=False to True.
DaemonModeDelay= is how many seconds to wait between each check. 5-10 seconds is a good value IMO.

 

--[ Notes for BlissBox users ]--------------------------------

 

If you own a BlissBox you must update the firmware first so the ports get unique HIDs and names.
See here: http://atarigalore.wix.com/4play
They should appear as 4-Play_port1 to port4 (at least at the time of writing. As long as they are unique
its OK.)

 

--[ Limitations ]---------------------------------------------

 

One big limitation is this. Say you have 3 controllers connected that are Joy1, Joy2 and Joy3 in the
emulators/games. If you unplug the first controller in the list (Joy1), the others will shift up and Joy2
will become Joy1 etc. There is no way around that at the moment, except for creating a dummy Joy1 controller
to put at the top of the list. I have yet to figure that one out easely.
Always keep your permanetly connected controllers at the top of the list to overcome this.

 

--[ Other hints ]---------------------------------------------

 

You must set UAC to "Never Notify" if you want this program to run on startup automatically as its
running as a local administrator. You also can not just make a shortcut to your Startup folder for it
as windows will not allow it. In the "Extras" folder you'll find a small VBS script that just runs it
from the same location as the exe, so copy the VBS to where you have Tur-Game_Controller_Order.exe
and make a shortcut to the VBS file to your Startup folder in Windows.

 

Any controllers connected that are NOT in the Settings.ini file when you run it will automatically go
to the end of the list.

 

I include a program called "List_Controllers.exe" as well. This only lists all the connected controllers
and the HID for it. You can use this if you want to add a controller to an already existing Settings.ini
file. Just copy the HID shown into Settings.ini.

 

When manually editing Settings.ini, make sure the ports start with Port1, Port2 and there are no gaps in the
numbering.



Click here to download this file

Mame related stuff: FTP: grandis.nu, port 21, user:misc, pass:misc

http://grandis.nu/software

Tur-Matcher - Match your roms/media/XML files.
Another Idle Volume Adjuster - Automatically control the volume.
How to: Use MAME Extras as material for HyperPause
How to: Use eXoDOS 2.0 as material for HyperPause

Posted

Sounds great!

 

I have always had problems with controller mapping in xpadder when I have 2 usb nes controllers always connected and a two DS3 contorllers that always get mapped as controller #1 when I power it on.

A29ly0W.png

Posted

It works just fine =). Just plug in any controllers you want to use and let it run for the first time (No Settings.ini file exists) so you can define where you want your joysticks.

 

Of course, if you have, for example,

Controller 1

Controller 2

Controller 3

in your Game Controllers list and unplug Controller 1, Controller 2 will become Joy1 instead of Joy2. The only way to solve that would be to create a fake "Controller 1" joystick to take the place of the one you disconnected, but I've yet to find out how to do that...

 

As far as the "Windows 10 puts the controllers in random order on each startup" problem, that seems to be solved in the big update last year that brought Windows 10 to Version 1511 (Check winver) but I've yet to verify that 100% yet.

 

Also, this program only sorts the controllers when you run it right now. I'm playing with letting it run all the time and every <definable> seconds, check if any game controllers have been plugged in or out. If it has, run the reordering again.

That way, if you have permanent joysticks connected and plug in or out anything else, they will never take the spot of the joysticks that you have defined in Settings.ini. That is, without having to rerun the program again (which you'd have to do with 1.4)

Hope I can get that into 1.5 =)

 

Example config for next version (hopefully)

[Game Ports]
Port1=VID_16D0&PID_0A60&COL01
Port2=VID_16D0&PID_0A61&COL01
Port3=VID_16D0&PID_0A62&COL01
Port4=VID_16D0&PID_0A63&COL01
Port5=VID_046D&PID_C218

[Daemon Settings]
DaemonMode=FALSE
DaemonModeDelay=10

Mame related stuff: FTP: grandis.nu, port 21, user:misc, pass:misc

http://grandis.nu/software

Tur-Matcher - Match your roms/media/XML files.
Another Idle Volume Adjuster - Automatically control the volume.
How to: Use MAME Extras as material for HyperPause
How to: Use eXoDOS 2.0 as material for HyperPause

Posted

Got a 1.5 beta 1 if anyone care to test it. When creating the Settings.ini, it will add the new daemon mode settings. Its False by default so just change to True to try that.

http://grandis.nu:81/software/Tur-Game_Controller_Order/Beta

Mame related stuff: FTP: grandis.nu, port 21, user:misc, pass:misc

http://grandis.nu/software

Tur-Matcher - Match your roms/media/XML files.
Another Idle Volume Adjuster - Automatically control the volume.
How to: Use MAME Extras as material for HyperPause
How to: Use eXoDOS 2.0 as material for HyperPause

Posted

Not much response, so I guess 1.5 is either working fine or nobody cares =) Here it is in any case.

 

Edit: Grab 1.5 again if you were quick. Sneaky little update...

Mame related stuff: FTP: grandis.nu, port 21, user:misc, pass:misc

http://grandis.nu/software

Tur-Matcher - Match your roms/media/XML files.
Another Idle Volume Adjuster - Automatically control the volume.
How to: Use MAME Extras as material for HyperPause
How to: Use eXoDOS 2.0 as material for HyperPause

Posted

Hehe, thats OK. No rush.

 

I fixed a little more errors that crept into version 1.5, so if you've downloaded it already, check the .exe properties and make sure the File version is 1.5.0.3. Download again if not. No big things so you'll probably not notice anyway, but still.

Mame related stuff: FTP: grandis.nu, port 21, user:misc, pass:misc

http://grandis.nu/software

Tur-Matcher - Match your roms/media/XML files.
Another Idle Volume Adjuster - Automatically control the volume.
How to: Use MAME Extras as material for HyperPause
How to: Use eXoDOS 2.0 as material for HyperPause

Posted

I made a sneak update to 1.5 again. I just added a small VBS file that runs the exe file. If you plan on having it autostart with windows, you need to run the VBS file instead of the exe directly as Windows does no allow you to run programs "as administrator" in the windows startup...

 

Readme updated

 


You must set UAC to "Never Notify" if you want this program to run on startup automatically as its
running as a local administrator. You also can not just make a shortcut to your Startup folder for it
as windows will not allow it. In the "Extras" folder you'll find a small VBS script that just runs it
from the same location as the exe, so copy the VBS to where you have Tur-Game_Controller_Order.exe
and make a shortcut to the VBS file to your Startup folder in Windows.

Mame related stuff: FTP: grandis.nu, port 21, user:misc, pass:misc

http://grandis.nu/software

Tur-Matcher - Match your roms/media/XML files.
Another Idle Volume Adjuster - Automatically control the volume.
How to: Use MAME Extras as material for HyperPause
How to: Use eXoDOS 2.0 as material for HyperPause

Posted

I made a sneak update to 1.5 again. I just added a small VBS file that runs the exe file. If you plan on having it autostart with windows, you need to run the VBS file instead of the exe directly as Windows does no allow you to run programs "as administrator" in the windows startup...

 

Readme updated

 

thanks for the tip. i hope my system will be ok soon

  • 3 months later...
Posted

Hello Turranius. I've been using this and your Tur-matcher program for the last couple weeks. Great stuff. I do have a couple issues to report.

 

1. Controllers are not enabled until maybe 1minute after power on. My computer boots in 8 seconds so it is quite a wait. 

2. The controller order still gets switched around for me randomly every few power cycles. I noticed your config file names my controllers as follows...

 

@USB\VID_045E&PID_028E&IG_00

@USB\VID_045E&PID_028E&IG_03

 
I don't know what the 'IG_00' portion refers to and was wondering if its possible that it gets switched around? Below is another unique ID for my controllers which always stays static. I think they are parent IDs, or bus ids...I don't have my computer in front of me to check. Would these work instead? I tried manually editing your config file but it still switched my controller order so im not sure if that simple config edit is supposed to work. 
 
@USB\VID_045E&PID_028E\0D7539E

@USB\VID_045E&PID_028E\0D75227

 

My setup:

*Windows 8.1

*SSD hard drive

*Two xbox 360 wired controllers

Posted

Thanks for the feedback!

 

1: Hm, There are no delays in the startup of the program. There is a delay in daemon mode of course (since you can specify this in the ini file), but it still does one check at startup... No idea right now to be honest. Does it start and just sit there for a minute at boot? You say "Controllers are not enabled", but do you mean "Controllers are not reordered"? It does not enable/disable controllers. If you do not see your controllers within the first minute of startup, it has nothing to do with this program =)

 

Are any of your harddrives powered down during boot? I've noticed that the rescanning of hardware that the devcon program uses sometimes halt while it powers on all the powered down harddrives, which takes a few seconds longer.

 

2: That is strange. Not noticed it myself but I do not have xbox360 controllers. Yes, just changing the Settings.ini should be all you need.

 

In either case, if you want to use other values then the ones the program finds automatically, you'll need to follow the section in the readme for setting up your own settings.ini. Look for "Manual creation of Settings.ini (advanced)"

 

Basically, when running "devcon64 status *game*", you need to find something unique in the output to use for each controller.

Hopefully it shows @USB\VID_045E&PID_028E\0D7539E or the other which you know are unique. If it does not, then devcon does not see those values and can't use them.. I am forced to use what devcon provides.

 

But try reading the Readme for that section and it should be pretty self explaining.

 

Regarding what IG_00 refers to, that is what the program read when running "devcon64 status *game*" for the first time so I guess you will see the same thing when running it manually...

Mame related stuff: FTP: grandis.nu, port 21, user:misc, pass:misc

http://grandis.nu/software

Tur-Matcher - Match your roms/media/XML files.
Another Idle Volume Adjuster - Automatically control the volume.
How to: Use MAME Extras as material for HyperPause
How to: Use eXoDOS 2.0 as material for HyperPause

Posted

While playing around with it today and rewriting some parts, I noticed that some controllers does not reappear when I issue a rescan from devcon. Seems some controllers require a restart when removed.

This is my Saitek X52 Pro Flight Control System.

devcon64.exe remove "*VID_06A3&PID_0762*"
HID\VID_06A3&PID_0762\6&27412FC9&7&0000                     : Removed on reboot
USB\VID_06A3&PID_0762\5&DC4A972&0&5                         : Removed on reboot
The 2 device(s) are ready to be removed. To remove the devices, reboot the system.
I actually have to disconnect it and reconnect it for it to come back, or restart.

My "Controller (Xbox One For Windows)" controller does not say it needs a reboot, but it still does not come back on a rescan.

devcon64.exe remove "*VID_045E&PID_02FF*"
HID\VID_045E&PID_02FF&IG_00\7&2B4916A7&3&0000               : Removed
USB\VID_045E&PID_02FF&IG_00\00&00&00006B65CA8BED7E          : Removed
2 device(s) were removed.
The Logitech Rumblepad 2 USB controller and the 4 ports on the Blissbox does come back as they should on a remove and rescan. Also PS3 controllers works fine.

This causes a whole new load of headache for this program. If you have a controller connected that does not like to come back after being removed and hardware re-scanned, you can not use this program at all. Very annoying.

I might have to put i a little test procedure the first time you run it to remove all ports and add them all back to make sure your controllers are compatible.

Feels like I should just toss it in the trash though. I'm too dependent on what Microsoft's devcon command can do. The only reason I wrote this crap was because I noticed I could rearrange the controllers order by removing them and re-scanning hardware with devcon..

Mame related stuff: FTP: grandis.nu, port 21, user:misc, pass:misc

http://grandis.nu/software

Tur-Matcher - Match your roms/media/XML files.
Another Idle Volume Adjuster - Automatically control the volume.
How to: Use MAME Extras as material for HyperPause
How to: Use eXoDOS 2.0 as material for HyperPause

Posted

I've put 1.6 in the beta folder ( http://grandis.nu:81/software/Tur-Game_Controller_Order/Beta ). On first run, it will verify that it can remove and readd all controllers. It also allows you to specify your own HID etc during setup and is a bit more explained on how you can test this yourself.

Also, if it can not find a name for a controller in the registry, it will now use the name that the devcon command uses (which is usually not the same as is displayed in the Game Controllers window). Looks a lot better then "Unknown" which is was previously called.

Mame related stuff: FTP: grandis.nu, port 21, user:misc, pass:misc

http://grandis.nu/software

Tur-Matcher - Match your roms/media/XML files.
Another Idle Volume Adjuster - Automatically control the volume.
How to: Use MAME Extras as material for HyperPause
How to: Use eXoDOS 2.0 as material for HyperPause

  • 2 years later...

Archived

This topic is now archived and is closed to further replies.

×
×
  • Create New...