I own an Blissbox. It has 4 ports and works as a USB hub.

The problem? Well, the first problem is that they all have the same ID and name as default
so windows might add them in any order it likes, making it a pain in the arse to configure
the joystick ports as they switch order on each restart.

To fix that, you first need to update the blissbox with another firmware that both gives them
separated IDs and names. See here: http://atarigalore.wix.com/4play

Now, once that is done, if you start the Game Controllers app (Set up USB Game Controllers) in Windows,
they might appear in different order at each restart anyway. This is normally not a problem but
some applications applies the joysticks in the order they appear in this list and not by their
names. An example of this is MAME.

In other words, even if you configure Joy1 and Joy2 etc, the next restart, Joy1 might have become
Joy3 or something, because of the order in the Game Controllers list.

This program takes care of that problem. It does this by
Delete all ports except Port 1
Run a hardware rescan, adding back the others (they then appear below Port 1)
Delete all ports except Port 1 and 2
Rescan again, adding ports 3 and 4 to the bottom of the list.
Delete all ports except Port 1, 2 and 3.
Rescan again. Now, only Port 4 should be added back to the bottom of the list.

The joystick ports are now in order.

Please note that this program works just as well without a blissbox. All you need is more then 2 game
controllers that you want to control the order of.

-> How to set it up? <--

Run Tur-Game_Controller_Order.exe as an administrator and it will guide you in setting up the Settings.ini
file that matches your system. Once a Settings.ini file exists, it will no longer ask any questions
and just reorder the ports silently.

You may want to disable UAC on your cabinet if you want to autostart it as administrator on reboot.
Right click it, select Properties / Compatibility / Run this program as an administrator.

If you run it without arguments, it will always use Settings.ini, but you can have more then one
if you need to call for a different reordering by specifying a different .ini file as the one and only
argument when running it. For example:
Tur-Game_Controller_Order.exe Settings2.ini

If Settings2.ini does not exist, it will help you set it up. If it does exist, it will just run the reorder.

--------------

If you want to create Settings.ini manually instead, 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 yours might need to look different.

Open a CMD prompt as administrator and go to where you extracted this script.
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 can now enable them again if you want. 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-Devcon_Game_Controller_Order.exe as an administrator
and they should vanish and reappear in the correct order (1-4).




