Posted February 11, 2021
Hello fellow pirates,
Recently I picked up a Logitech X56 HOTAS controller and a sweet stand. Of COURSE I wanted to play Edge of Chaos with this rig! Who wouldn't?
Unfortunately, it's hard to get modern hardware to work with the older games. I ran into lots of frustration, but I am happy to report: EVERYTHING WORKS NOW. It took me two days, and lots of research.
Here are the four biggest problems I had and how I solved them.
* SYMPTOM: Game recognizes throttle but not joystick.
* SYMPTOM: Mapped buttons on the stick/throttle don't register while in flight.
* SYMPTOM: Throttle or Stick appear to be sending random keypresses during play, screwing everything up
* SYMPTOM: After accidentally switching out from the game to the desktop, the game only shows a black screen and will not resume.
Here we go!
-------------------------------------------------------------
SYMPTOM: Game recognizes throttle but not joystick. Additionally, moving the throttle forward or backward would result in steering the ship in weird directions.
The problem: Older games don't always recognize joysticks as being joysticks and throttles as being throttles. They can get confused as to which is which. This results in the analog controls of a throttle being interpreted as the analog of a stick.
FAILED ATTEMPTS:
* Tried setting the stick as the primary controller in Windows USB Controller options. Nope.
* Tried switching stick and throttle to different USB ports. Nope.
* Tried uninstalling and reinstalling driver. Nope.
* Tried upgrading Logitech driver and software. Nope.
WORKING SOLUTION: Create new device mappings in IW2 ini files
It turns out that EoC can recognize multiple joysticks at a time and can map the controls however you like. It numbers analog controls as Joystick1 and Joystick2. The issue is that the throttle has been mapped to Joystick1, but all the throttle controls in the game are set up to respond to Joystick2. We can change that.
* From your GOG Games install folder, go to ../Independence War II Edge of Chaos/config
* Copy the file default.ini to x56.ini
* Edit X56.ini, changing references of Joystick1 to Joystick2 and vice-versa.
* At the top of X56.ini, look for the name section and change the name to "X56"
* Save your changes
* Launch EoC, go into Options -> Controls, then select your X56 profile
Now take your ship for a drive. The stick should be your flight direction and your throttle should control your speed. If not, you may have other controllers (game pads, anything with an analog stick or slider) plugged in that are being picked up instead. Try unplugging other controllers, rebooting, and launch again.
Once you can steer, accelerate, and stop with your HOTAS, congratulations!
Use the Logitech profile configuration program to map your X56 buttons and switches to your preference.
-------------------------------------------------------------
SYMPTOM: Mapped buttons on the stick/throttle don't register while in flight. Control presses do, however, register wile testing in the Logitech profile configuration program.
This is (I think) another hardware mapping issue. Your HOTAS appears to older games as if it is a keyboard, plus your actual keyboard appears as a keyboard, and the game can't talk to two keyboards at the same time. It picks one and sticks with it. Sadly, it picked the wrong one.
ATTEMPTED SOLUTIONS:
* Edit X56.ini file (see above) using "Keyboard2" instead of "Keyboard". Nope. Shot in the dark. Oh well.
* Turned wireless keyboard off using physical switch on the keyboard. Nope.
* Disconnected batteries in wireless keyboard. Nope.
* Unplugged keyboard wireless receiver from hub. Not.... quite.
WORKING SOLUTION:
This seems to be related to the order in which Windows detects and implements hardware. There is probably some registry editing magic that can do this, but I didn't want to go there.
* Unplug the keyboard wireless receiver, leaving the HOTAS plugged in
* Reboot
* At login prompt, re-plug in the receiver
* Launch Logitech Profile Configuration and send the profile to the HOTAS
* Launch EoC and fly around.
I also, for good measure, put the keyboard receiver on a USB slot that was after the ones my HOTAS was plugged into, that is: farthest USB 2.0 slot from the blue USB 3.0 slots. That may or may not have been a factor. I don't know the ins and outs of USB device enumeration.
-------------------------------------------------------------
SYMPTOM: Throttle or Stick appear to be sending random keypresses during play, screwing everything up
Sometimes this is called "ghost keys". You'll be flying along and suddenly your cargo jettisons. Or autopilot decides to come on. Or the game hops to the desktop and shows the Start menu, as if you hit the Windows key.
You can also see this in the Logitech Profile Configuration app. Go into the Programming tab and select one of the controllers. Wiggle it around for a minute, then take your hands off, sit back and watch the display. As buttons get "pressed", the display will light up correspondingly. I did this with my throttle, and it was constantly flicking switches and pressing buttons. Fortunately the stick was quiet.
ATTEMPTED SOLUTIONS:
* Switched plugs to another USB port on the motherboard. Nope.
* Switched plugs to ports on an external powered USB hub. Nope. (There is a lot of speculation that powered hubs are more stable for these devices. This is the common solution on the web, and it was really frustrating that this didn't work for me!)
WORKING SOLUTION:
* Switched to an Anker 4 port unpowered aluminum hub.
I can only conclude that some USB hubs are better than others. I liked the heft and design of this port when I bought it. I guess the insides are good quality too.
After switching USB ports around, I ran into the above problem of mapped buttons not working. Eventually I settled on having my HOTAS and the keyboard wireless receiver plugged into the external, unpowered port. It's working fine.
Mostly.
-------------------------------------------------------------
SYMPTOM: After accidentally switching out from the game to the desktop, the game only shows a black screen and will not resume.
I still occasionally got ghost keys from the controller, so in the middle of a mission I would get kicked out to the desktop. The game was basically over at that point.
ATTEMPTED SOLUTIONS:
My tactic here was to try to get EoC to run in windowed mode. My reasoning was basically that if it's running in a window all the time anyway, then switching to a new window shouldn't crash it. Easier said than done.
* Go into EoC graphic options and set Windowed mode. Nope. Doesn't exist.
* Go into game shortcut properties in Windows and set "Always render in window" flag. Nope. Doesn't exist.
* Maybe something in the video adapter driver? Nope, nope, nope.
WORKING SOLUTION:
Download and configure DxWnd, an open source wrapper for intercepting DirectX graphic calls and mapping them to a window. https://sourceforge.net/projects/dxwnd/ Oh boy, did I ever love this. Open source wins again.
A little experimentation has me running at full resolution in a desktop window.... and even in full screen mode that doesn't crash when I ALT-Tab away! It's freaking great.
EDIT: One issue I've run into with DXWin: the Mods and Saves folders are not recognized when running through this wrapper. The mods I can live without, but no saves? Oh no! I'll post when I figure out a fix for this issue.
EDIT EDIT: The save/mod folder issue appears when I turn on the Fake CD Drive option. If I turn it off, everything is fine. Hooray!
-------------------------------------------------------------
CONCLUSION
I hope this helped you out. It took a lot of experimentation and a few leaps of faith. But I can tell you that with perseverance and a little insight as to how hardware works, you really can get your high-end HOTAS working on this fabulous game.
Recently I picked up a Logitech X56 HOTAS controller and a sweet stand. Of COURSE I wanted to play Edge of Chaos with this rig! Who wouldn't?
Unfortunately, it's hard to get modern hardware to work with the older games. I ran into lots of frustration, but I am happy to report: EVERYTHING WORKS NOW. It took me two days, and lots of research.
Here are the four biggest problems I had and how I solved them.
* SYMPTOM: Game recognizes throttle but not joystick.
* SYMPTOM: Mapped buttons on the stick/throttle don't register while in flight.
* SYMPTOM: Throttle or Stick appear to be sending random keypresses during play, screwing everything up
* SYMPTOM: After accidentally switching out from the game to the desktop, the game only shows a black screen and will not resume.
Here we go!
-------------------------------------------------------------
SYMPTOM: Game recognizes throttle but not joystick. Additionally, moving the throttle forward or backward would result in steering the ship in weird directions.
The problem: Older games don't always recognize joysticks as being joysticks and throttles as being throttles. They can get confused as to which is which. This results in the analog controls of a throttle being interpreted as the analog of a stick.
FAILED ATTEMPTS:
* Tried setting the stick as the primary controller in Windows USB Controller options. Nope.
* Tried switching stick and throttle to different USB ports. Nope.
* Tried uninstalling and reinstalling driver. Nope.
* Tried upgrading Logitech driver and software. Nope.
WORKING SOLUTION: Create new device mappings in IW2 ini files
It turns out that EoC can recognize multiple joysticks at a time and can map the controls however you like. It numbers analog controls as Joystick1 and Joystick2. The issue is that the throttle has been mapped to Joystick1, but all the throttle controls in the game are set up to respond to Joystick2. We can change that.
* From your GOG Games install folder, go to ../Independence War II Edge of Chaos/config
* Copy the file default.ini to x56.ini
* Edit X56.ini, changing references of Joystick1 to Joystick2 and vice-versa.
* At the top of X56.ini, look for the name section and change the name to "X56"
* Save your changes
* Launch EoC, go into Options -> Controls, then select your X56 profile
Now take your ship for a drive. The stick should be your flight direction and your throttle should control your speed. If not, you may have other controllers (game pads, anything with an analog stick or slider) plugged in that are being picked up instead. Try unplugging other controllers, rebooting, and launch again.
Once you can steer, accelerate, and stop with your HOTAS, congratulations!
Use the Logitech profile configuration program to map your X56 buttons and switches to your preference.
-------------------------------------------------------------
SYMPTOM: Mapped buttons on the stick/throttle don't register while in flight. Control presses do, however, register wile testing in the Logitech profile configuration program.
This is (I think) another hardware mapping issue. Your HOTAS appears to older games as if it is a keyboard, plus your actual keyboard appears as a keyboard, and the game can't talk to two keyboards at the same time. It picks one and sticks with it. Sadly, it picked the wrong one.
ATTEMPTED SOLUTIONS:
* Edit X56.ini file (see above) using "Keyboard2" instead of "Keyboard". Nope. Shot in the dark. Oh well.
* Turned wireless keyboard off using physical switch on the keyboard. Nope.
* Disconnected batteries in wireless keyboard. Nope.
* Unplugged keyboard wireless receiver from hub. Not.... quite.
WORKING SOLUTION:
This seems to be related to the order in which Windows detects and implements hardware. There is probably some registry editing magic that can do this, but I didn't want to go there.
* Unplug the keyboard wireless receiver, leaving the HOTAS plugged in
* Reboot
* At login prompt, re-plug in the receiver
* Launch Logitech Profile Configuration and send the profile to the HOTAS
* Launch EoC and fly around.
I also, for good measure, put the keyboard receiver on a USB slot that was after the ones my HOTAS was plugged into, that is: farthest USB 2.0 slot from the blue USB 3.0 slots. That may or may not have been a factor. I don't know the ins and outs of USB device enumeration.
-------------------------------------------------------------
SYMPTOM: Throttle or Stick appear to be sending random keypresses during play, screwing everything up
Sometimes this is called "ghost keys". You'll be flying along and suddenly your cargo jettisons. Or autopilot decides to come on. Or the game hops to the desktop and shows the Start menu, as if you hit the Windows key.
You can also see this in the Logitech Profile Configuration app. Go into the Programming tab and select one of the controllers. Wiggle it around for a minute, then take your hands off, sit back and watch the display. As buttons get "pressed", the display will light up correspondingly. I did this with my throttle, and it was constantly flicking switches and pressing buttons. Fortunately the stick was quiet.
ATTEMPTED SOLUTIONS:
* Switched plugs to another USB port on the motherboard. Nope.
* Switched plugs to ports on an external powered USB hub. Nope. (There is a lot of speculation that powered hubs are more stable for these devices. This is the common solution on the web, and it was really frustrating that this didn't work for me!)
WORKING SOLUTION:
* Switched to an Anker 4 port unpowered aluminum hub.
I can only conclude that some USB hubs are better than others. I liked the heft and design of this port when I bought it. I guess the insides are good quality too.
After switching USB ports around, I ran into the above problem of mapped buttons not working. Eventually I settled on having my HOTAS and the keyboard wireless receiver plugged into the external, unpowered port. It's working fine.
Mostly.
-------------------------------------------------------------
SYMPTOM: After accidentally switching out from the game to the desktop, the game only shows a black screen and will not resume.
I still occasionally got ghost keys from the controller, so in the middle of a mission I would get kicked out to the desktop. The game was basically over at that point.
ATTEMPTED SOLUTIONS:
My tactic here was to try to get EoC to run in windowed mode. My reasoning was basically that if it's running in a window all the time anyway, then switching to a new window shouldn't crash it. Easier said than done.
* Go into EoC graphic options and set Windowed mode. Nope. Doesn't exist.
* Go into game shortcut properties in Windows and set "Always render in window" flag. Nope. Doesn't exist.
* Maybe something in the video adapter driver? Nope, nope, nope.
WORKING SOLUTION:
Download and configure DxWnd, an open source wrapper for intercepting DirectX graphic calls and mapping them to a window. https://sourceforge.net/projects/dxwnd/ Oh boy, did I ever love this. Open source wins again.
A little experimentation has me running at full resolution in a desktop window.... and even in full screen mode that doesn't crash when I ALT-Tab away! It's freaking great.
EDIT: One issue I've run into with DXWin: the Mods and Saves folders are not recognized when running through this wrapper. The mods I can live without, but no saves? Oh no! I'll post when I figure out a fix for this issue.
EDIT EDIT: The save/mod folder issue appears when I turn on the Fake CD Drive option. If I turn it off, everything is fine. Hooray!
-------------------------------------------------------------
CONCLUSION
I hope this helped you out. It took a lot of experimentation and a few leaps of faith. But I can tell you that with perseverance and a little insight as to how hardware works, you really can get your high-end HOTAS working on this fabulous game.
Post edited February 26, 2021 by LongTailGamer