ACE COMBAT™ 7: SKIES UNKNOWN Guide

Native Flightstick Configuration for ACE COMBAT™ 7: SKIES UNKNOWN

Native Flightstick Configuration

Overview

Configure almost any flightstick or HOTAS without extra software, using undocumented tools built into the gameAce Combat 7 is a great game, but its roots as a console game that was ported to PC are evident. One of the most common complaints in the Steam forums is the lack of HOTAS/flightstick support outside a couple of branded accessories at the game’s launch. While support for other HOTAS/flightstick controllers was soon added in a game update, the fix was not well publicized and these controllers are not configurable through the game menus. This guide is an attempt to simply and clearly demonstrate how to to configure most HOTAS/flightstick controllers by editing the input.ini file. This method is safe – it cannot cause any system issues (it is not a registry edit), it does not trigger multiplayer cheat detection, and it does not interfere with any mods.

Preparation

IMPORTANT: Many (but not all) users need to set the Steam Input Per Game setting to Forced OFF for this method to work. Right click the game in the Steam Games library and go to Properties. Then set the Steam Input Per Game setting to Forced OFF.

If you previously had x360CE installed and applied to this game, you can get odd binding issues with this method. Be sure to remove any x360CE files in the AC7 working directory.
[link]

Be sure your stick is plugged in and powered on if necessary, and start the game. If it works, you can still use this guide to configure controls the way YOU want them. If it does not work continue to the next section.

Configuration

Exit the game and navigate to the input.ini file at C:Users[username]AppDataLocalBANDAI NAMCO EntertainmentACE COMBAT 7Config, You should see something like this:

[Joystick-001B045E-0000-0000-0000-504944564944]
ProductName=SideWinder Force Feedback 2 Joystick
Flight_Gun=
Flight_Missile=
Flight_Weapon=
.
.
.
and about 40 or so additional parameters that are blank after the “equals” sign..

The game is at least acknowledging the joystick, and you just need to add values for each parameter.

First make a backup of the existing input.ini, just in case something goes wrong and you need it back. You can just make a copy, and name it something like “input.ini.orig”. If you mess up the new one, you can delete it, then rename your backup by removing “.orig”.

Open the input.ini with a text editor, like Notepad, and type or paste values to assign buttons and axes to the functions you want. Initially you can just paste the values below over the existing values in input.ini. For most sticks it works right out of the box, but you can adjust the values to match your play style. My stick has only 8 buttons, so if you have more you can fill in those blanks.

Note for X56 users: MR.120 has helpfully provided a numeric profile link here: [link]

Flight_Gun=Button1
Flight_Missile=Button2
Flight_Weapon=Button6
Flight_Target=Button3
Flight_Radar=Button5
Flight_Flare=Button4
Flight_View=
Flight_AccelerationDeceleration=Button8
Flight_AutoPilot=Button7
Flight_Pause=
Flight_HatSwitchUp=
Flight_HatSwitchDown=
Flight_HatSwitchLeft=
Flight_HatSwitchRight=
Flight_Pitch=Y:R
Flight_Roll=X
Flight_Yaw=Rz
Flight_Throttle=Slider1
Flight_CameraPitch=POV_U1 + POV_D1:R
Flight_CameraYaw=POV_R1 + POV_L1:R
UI_B=Button2
UI_A=Button1
UI_X=Button3
UI_Y=Button4
UI_LB=POV_L1
UI_RB=POV_R1
UI_LT=POV_U1
UI_RT=POV_D1
UI_LeftStickPress=Button5
UI_RightStickPress=Button6
UI_DPadUp=
UI_DPadDown=
UI_DPadLeft=
UI_DPadRight=
UI_LeftStickUp=Y:N
UI_LeftStickDown=Y:P
UI_LeftStickLeft=X:N
UI_LeftStickRight=X:P
UI_RightStickUp=
UI_RightStickDown=
UI_RightStickLeft=
UI_RightStickRight=
UI_Menu=Button7

Play around with the assignments to map the functions to the controls you want. I always make a backup of the latest working input.ini by adding an extension to the filename (e.g. rename input.ini to input.ini.bak2) so if i mess up too much I can just go back to the last one that worked by removing the extension.

Additional POV hat information

I found additional instruction for the POV hat here: [link]

Note that for the flight camera, these settings work only absolute, so by using the POV hat switch you look full up, full down, full left and full right. Also, the Flight_HatSwitch* settings are intentionally blank on mine, so in multiplayer I don’t send message every time I press the hat switch.

The remaining text is copied from the link above. I have not personally tried this setup to make the POV hat act relative rather than absolute.

“For relative look around with HAT switch it is lite more complicated.
You will need 3th party softwares vJoy and FreePIE. Set up vJoy in Input.ini file
[Joystick-BEAD1234-0000-0000-0000-504944564944]
ProductName=vJoy Device

Flight_CameraPitch=Ry
Flight_CameraYaw=Rx

and
run this sript in FreePIE.

if starting:
system.setThreadTiming(TimingTypes.HighresSystemTimer)
system.threadExecutionInterval = 10
x = 0
y = 0
deltax = 200
deltay = 200
if joystick[1].pov[0] == 0:
y = y+deltay
if abs(y) > vJoy[0].axisMax:
y = vJoy[0].axisMax * y / abs(y)
elif joystick[1].pov[0]==4500:
x = x+deltax
if abs(x) > vJoy[0].axisMax:
x = vJoy[0].axisMax * x / abs(x)
y = y+deltay
if abs(y) > vJoy[0].axisMax:
y = vJoy[0].axisMax * y / abs(y)
elif joystick[1].pov[0]==9000:
x = x+deltax
if abs(x) > vJoy[0].axisMax:
x = vJoy[0].axisMax * x / abs(x)
elif joystick[1].pov[0]==13500:
x = x+deltax
if abs(x) > vJoy[0].axisMax:
x = vJoy[0].axisMax * x / abs(x)
y = y-deltax
if abs(y) > vJoy[0].axisMax:
y = vJoy[0].axisMax * y / abs(y)
elif joystick[1].pov[0]==18000:
y = y-deltay
if abs(y) > vJoy[0].axisMax:
y = vJoy[0].axisMax * y / abs(y)
elif joystick[1].pov[0]==22500:
x = x-deltax
if abs(x) > vJoy[0].axisMax:
x = vJoy[0].axisMax * x / abs(x)
y = y-deltay
if abs(y) > vJoy[0].axisMax:
y = vJoy[0].axisMax * y / abs(y)
elif joystick[1].pov[0]==27000:
x = x-deltax
if abs(x) > vJoy[0].axisMax:
x = vJoy[0].axisMax * x / abs(x)
elif joystick[1].pov[0]==31500:
x = x-deltax
if abs(x) > vJoy[0].axisMax:
x = vJoy[0].axisMax * x / abs(x)
y = y+deltay
if abs(y) > vJoy[0].axisMax:
y = vJoy[0].axisMax * y / abs(y)
else:
x = x
y = y

vJoy[0].rx = x
vJoy[0].ry = y

center = joystick[1].getDown(9)

if center:
x = 0
y = 0

diagnostics.watch(vJoy[0].rx)
diagnostics.watch(vJoy[0].ry)
diagnostics.watch(joystick[1].pov[0])
diagnostics.watch(joystick[1].getDown(9))

The script would need to be tuned out. It’s just the first attempt.”

Closing Words

Using the joystick to navigate menus can be clunky, and the game UI still shows Xbox controller icons for functions. For example, the UI may say “Press A for this action”, but you may not remember which button you assigned for A. To get around this, I usually connect my Xbox One controller at the same time. I have never had any issues, using the joystick to actually play and using the controller for menus, replay camera controls, etc.

If you are interested in using TrackIR, check out this guide as well:
[link]

I hope you find this guide helpful Feel free to share any suggestions, tips, tricks, and your configurations in the comments.

Credits

Thank you to LOGIRich, author of this Reddit post on which this guide is based:

Logitech/Saitek Sticks and HOTAS now supported on PC – plus details of Extreme 3D Pro fix from acecombat

Also thank you to steam users Det.Bullock, lubomart/ bingbean, -bZ-CapStar362, and MR.120
for additional help and insights.

SteamSolo.com