--[ 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. --[ Manual creation of Settings.ini (advanced) ]-------------- If you want to create Settings.ini manually instead (why?), you can: The Example_Settings.ini file looks something like this by default: [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 Note that this is from me and my BlissBox and yours might need to look different. Open a CMD prompt as administrator and go to where you extracted this program. Depending on your OS type, you need to type devcon32 or devcon64. I use devcon64 in this example. NOTE: This is for Windows 10. You might need different devcons... (?!) Type: devcon64 status *game* This should give you a list looking like this: F:\Slask>devcon64 status *game* HID\VID_16D0&PID_0A60&COL01\7&36C5045&0&0000 Name: HID-compliant game controller Driver is running. HID\VID_16D0&PID_0A61&COL01\7&3B53A0FD&0&0000 Name: HID-compliant game controller Driver is running. HID\VID_16D0&PID_0A62&COL01\7&EB6D9B3&0&0000 Name: HID-compliant game controller Driver is running. HID\VID_16D0&PID_0A63&COL01\7&3009178F&0&0000 Name: HID-compliant game controller Driver is running. 4 matching device(s) found. Open up the Game Controllers GUI in Windows so you see it at the same time. The interesting part in the list above is the ID. For the first one, we use only this part: VID_16D0&PID_0A60&COL01 We want to encase that so it looks like this "*VID_16D0&PID_0A60&COL01*" Now type, depending on your IDs above: devcon64 disable "*VID_16D0&PID_0A60&COL01*" Take a look in the Game Controllers window which port disapeared. Then you know which port had that ID. Take that ID and enter it into the corresponding "Port" in the Settings.ini (without the "**") Example: Port1=VID_16D0&PID_0A60&COL01 Now disable the next one in your list and see which port vanishes from the Game Controllers list. Add that as well. When all 4 ports are gone, you should have 4 ports setup in Settings.ini. You must now enable them again. Enter them one by one like this: devcon64 enable "*VID_16D0&PID_0A60&COL01*" They should all pop back again (Probably in the wrong order. Thats OK.) Now save the Settings.ini file and run Tur-Game_Controller_Order.exe as an administrator and they should vanish and reappear in the correct order (1-4).