Overview
Greetings Aces. I have spent two days getting my new TrackIR 5 head tracker to work with Ace Combat™ 7, a game that does not (and probably never will) support it – along with a joystick that it also doesn’t immediately support right out the gate. I finally found something that worked for me so I figured I would share the love in case it works for you! Note that if you get this working for this game, it will probably work for just about any other game. Ace Combat™ 7 just happens to be a game that really benefits from the addition of this feature (if not for “high level play” then at least for immersion). Anyway, are you ready to write a check your body can’t cash? If so, then it’s time to enter the danger zone.
Overview
Ace Combat™ 7 is an arcade-style flight action series with deep roots in console gaming. As such, it’s not surprising that TrackIR – generally considered a “simulator” game peripheral – is not supported. The way around this is by basically tricking Ace Combat™ 7 into thinking our tracked head movements are the right analog stick of an Xbox 360 controller, lol.
You will need to install the following: TrackIR, VJoy, FreePIE, x360ce (plus Steam and the game, obviously). I have made sure to either mention or show in the screenshots the version of the software I am using at the time of making this guide, so if you are having difficulty, the version of the software you are using may be the culprit. I have no affiliation with any of the developers of these programs nor do I really know how any of them work, so if you follow this guide and still run into issues I may not be able to help much – but still feel free to leave a comment. Getting all this to work was kind of like black magic for me, but I learned a lot along the way.
I have also made another version of this guide as a general-purpose Steam guide (not specific to just this game), so hopefully it can aid the wider Steam audience. Thanks to Nocturnalverse for the suggestion! Here’s the guide.
I am running Ace Combat™ 7 via Steam on a Sager Windows 10 model P770Z-G laptop with an i7-4790K 4.0GHz CPU, 32GB of Kingston DDR3 RAM, and an NVIDIA GeForce GTX 980M GPU.
I didn’t figure all this out on my own, so here is credit where credit is due:
- Joystick configuration (without mapping software) by deathspeed – I used this guide to remap the Input.ini file and get my Microsoft Sidewinder Force Feedback 2 working before I got my TrackIR. If you don’t have TrackIR but still want your “non-supported” joystick to work with Ace Combat™ 7, this may work for you!
- Using TrackIR with Rocket League – most of this guide was taken from his guide (with tweaks where necessary) so huge shout-out to Zyrjello! I found Zyrjello’s guide by a comment on this YouTube video so shout-out to https://www.youtube.com/channel/UCW927SVFHDv0HfOhPkQ88MA on YouTube as well.
- [Tutorial] How to use TrackIR/FreeTrack/FaceTrackNoIR with YSFlight (forum.ysfhq.com)[forum.ysfhq.com] – the code needed to translate the TrackIR data into something usable.
- sontran20 made this video demonstrating wirelessly sending head movements from a cell phone using SmoothTrack to OpenTrack and have it directly sent to x360ce if you’re interested.
With that out of the way, let’s begin!
1. TrackIR
The first step is to set up TrackIR. Attach the tracker to a headset or hat, download the latest version of the software from [link], connect the IR camera to the computer (along with the TrackClip Pro if you have it), and run the software.
If you have a TrackClip Pro, select that option in the TrackIR software. If all goes well, you should see the 3D view tracking your head movements in this window.
You can mess with things like deadzone, sensitivity, etc. in this software but I won’t cover that here. Next, we need a program that will make these head tracker inputs usable for our purposes.
2. vJoy
vJoy is “a device driver that bridges the gap between any device that is not a joystick and an application that requires a joystick.”
Download and install vJoy from [link]
Once installed, run the vJoy configuration executable vJoyConf.exe
Although it’s possible that you only need the Rx and Ry axes, I played it safe by leaving all the settings on. You should be good to go if your settings look like mine in the window shown, with “vJoyDevice: 1” active and “Enable vJoy” checked.
3. FreePIE
FreePIE (Programmable Input Emulator) is a C# utility for bridging and emulating input devices. We will be using it to run code I found online that takes the head tracking input from the TrackIR software and translates it into joystick movement for VJoy.
Download it from here: [link]
Before we can use it, though, you need to make a file with code for FreePIE to use. To do this, open a simple text editor such as notepad and type the following:
Save it as a python file, something like “trackir-rightstick.py” (shout-out to Zyrjello’s guide). If you don’t know how to save it as a python file, make sure Windows is showing file extensions[www.thewindowsclub.com] so you can save it with the .py suffix.
After you have made the python file, run FreePIE.
Go to File > Open > select the python file you made (after opening it once, you can go to File > Recent Files so you don’t have to find it every time). The code should appear.
Next go to Script > Run script (or press F5).
If no error appears, you should be good, but there is a quick way to make sure…
When you installed vJoy, the vJoy Monitor should have been installed with it.
Open the monitor (JoyMonitor.exe)
When you open it, this is what you should see. You’ll know everything is functioning properly up to this point if the red bars representing the Rx and Ry values move as your head moves – this means that the head movements from TrackIR are successfully being translated into the virtual controller!
4. x360ce
x360ce aka “Xbox 360 Controller Emulator” allows various controller devices to be combined and turned into one virtual Xbox 360 controller – so the TrackIR head tracker + joystick appear to the computer as one single Xbox 360 controller rather than two separate devices.
This is where my guide diverges from the others I’ve found, the reason being most other guides seemed to be using versions 3.2 or lower. I couldn’t get it working until I tried using version 4+.
Download x360ce from here: [link] and extract it somewhere safe. I believe in older versions of the software you had to place the x360ce.exe file in the game’s directory, but that isn’t necessary for the version I’m using. Run “x360ce.exe” as an administrator:
When you load x360ce for the first time the input options will probably be greyed out.
Click “Add Game…” > add Ace Combat™ 7. You’ll know you successfully added it if it shows up on the “Games” tab and in the “Game:” drop-down menu at the top.
If you are unsure of where Ace Combat™ 7 is located, in the steam library you can right-click the game > Properties > Local Files tab > Browse Local Files… for example, my game is located in D:SteamLibrarysteamappscommonACE COMBAT 7.
Now that you have added Ace Combat™ 7, x360ce creates a unique profile for the game.
Next, go to the “Controller 1” tab, then click on the “Add…” button
(not to be confused with the “Add Game…” button!)
Here you should see the various input devices connected to your PC. Add the vJoy device (this is your TrackIR) and your joystick (my joystick is the SideWinder Force Feedback 2):
You can now map the emulated controller’s buttons.
There are three main ways to map your buttons:
- Manually input buttons by selecting the drop-down menu next to a controller button and selecting the input button/axis name from a list
- In the same drop-down menu you can select “Record”, which then lets you press the button on your joystick that you want to assign to the corresponding xbox button
- Select the “Auto” button at the bottom of the screen to automatically map every button
You’ll probably end up doing a combination of all three, but you should probably start with “Auto” because it erases manually remapped buttons.
The joystick is mostly up to personal preference and is something you’ll probably want to alt-tab between the game and x360ce to get just how you like it.
For the TrackIR (vJoy Device), all you need to worry about is mapping “Stick Axis X” to “Axis 4” and “Stick Axis Y” to “Axis 5”. If all goes well, the right joystick will move as your head moves!
Finally, check “Enable 2 Mapped Devices (Combine)” which makes the emulated Xbox 360 Controller a device that Steam can recognize.
5. Steam Input
Aaand this is where it all finally comes together.
In Steam, go to your library and right-click Ace Combat™ 7 > Properties:
In the game’s properties window, make sure that “Enable the Steam Overlay while in-game” is checked and that “Use your global Steam Input settings” is selected. Then select “Close.”
Next, go to Steam > Settings > Controller > General Controller Settings:
Make sure that Xbox configuration support is checked on.
The emulated Xbox 360 controller from x360ce should appear here as “Xbox 360 Controller”. If you want to verify that it’s the right one you can select the 360 controller > Define Layout:
you should see some telltale signs that this Xbox 360 controller is actually your joystick and TrackIR (such as if you select an option and it reacts to your head movement). select cancel and back out without saving changes. Exit the Controller Settings.
Next, go to View > Big Picture Mode.
In Big Picture Mode, go to your library > play Ace Combat™ 7. Once the game starts, open the Steam Overlay (Shift+Tab by default) > Controller Configuration > depending on whether or not you have another controller plugged in, you may need to select “Switch Controller” and manually choose the Xbox 360 Controller:
Now for the moment of truth. In Ace Combat™ 7, start a free mission > free flight and sortie so you can just fly around without distraction. If head tracking with TrackIR and your joystick are working, congratulations, the hard part is over!
Finally, you’re almost ready to take to the skies. The only thing left to do now is tweak the controls using Steam Input. In game, press Shift+Tab once again to enter the Steam overlay > select Controller Configuration > here you can tweak the inputs:
This has importance in Ace Combat™ 7: Skies Unknown because there are at least three actions (Autopilot, Flares, and Type-A High-G Turns) requiring two buttons to be pressed simultaneously.
This can be problematic if, for example, you configured yaw to be on the rotational Z axis. However, to activate autopilot you need to press Left Bumper and Right Bumper at the same time – something that is easy if they’re two separate buttons on a controller, but something which is impossible if assigned to two opposite directions on the same axis of a joystick! With Steam Input you can configure a button to emulate pressing both bumper buttons at the same time.
Another useful tip for Steam Input, which is useful if you have a joystick with limited buttons, is to set up activators to do things like double press, long press, chorded presses, etc. For example, I have my controls configured so that pressing and holding a button initiates a High-G Turn, but double pressing it quickly changes the camera view. If you are interested in learning more about Steam Input’s Activators, here’s a link with more info.
Summary
… and voilà – the game thinks you’re playing the game with just a regular old Xbox 360 controller, but in reality you could be playing with any theoretical combination, such as an infrared head tracker, HOTAS joystick, pedals, steering wheel, guitar hero guitar, joy-cons, arcade fight sticks, Dance Dance Revolution pad, lightgun, etc. The sky really is the limit.
Well I hope this helped somebody. I hope you haven’t lost that loving feeling because now you can buzz the tower to your heart’s content, and you can be my wingman anytime.