(edit by Moderator magge:)
New Guide/Tutorial Thread:
This thread is fairly outdated and just a reference now; a refactored version was created with all available tools and steps under the following link:
[Tutorial] Windowed Fullscreen, Borderless or Fake-Fullscreen for FAF Supreme Commander
Outdated Guide Below:
(/edit end)
All of this applies if you have either a single monitor or more than one monitor.
This guide will go over how to setup a fullsreen script that both makes your FA run in windowed full screen (AKA: fake-fullscreen)
There are two versions of the script depending on your monitor setup.
I’ll just give you the baseline and then step by step it so you can meet your needs.
(Single monitor (at any resolution) example first)
- run a test game of FA and go into graphic settings and set the resolution to « windowed » (you may now exit FA)
- download and install AutoHotkey (when it is done installing don't run, there's nothing to run. Just close the installer)
- hit Win+"R"
- type "shell:startup"
- in the folder that opens right click go to "New" -> "AutohotkeyScript" this should create a new ahk file. (You can name it fullscreenScript or something similar)
Open this file with notepad or notepad++ (or equivalent basic text editor)
paste this (this is the script you will have to adapt to suit your needs)
#NoEnv
SendMode Input
SetWorkingDir %A_ScriptDir%
#Persistent
procName := "ForgedAlliance.exe"
SetTimer, CheckProc, 2000
Return
CheckProc:
If (!ProcessExist(procName))
Return
WinGet Style, Style, % "ahk_exe " procName
If (Style & 0xC40000)
{
WinSet, Style, -0xC40000, % "ahk_exe " procName
WinMinimize , % "ahk_exe " procName
WinMaximize, % "ahk_exe " procName
}
Return
ProcessExist(exeName)
{
Process, Exist, %exeName%
return !!ERRORLEVEL
}
return
- You’re done! you can either restart the computer or double click the file
- (Optional although strongly recommended, especially if you have two monitors) add « UI Party » in the mod vault and enable it by hosting a test game with it (you’ll have to configure UI Party)
(Example with two 1080p monitors that are ordered left to right you’ll need to adapt the pixel sizes if your monitors are a different resolution than 1080p, note that FA is now a window so it can’t stretch it’s bottom border two different amounts, if you have different resolution monitors one of the two monitors will not be completely filled.)
#NoEnv
SendMode Input
SetWorkingDir %A_ScriptDir%
#Persistent
procName := "ForgedAlliance.exe"
SetTimer, CheckProc, 2000
Return
CheckProc:
If (!ProcessExist(procName))
Return
WinGet Style, Style, % "ahk_exe " procName
If (Style & 0xC40000)
{
WinSet, Style, -0xC40000, % "ahk_exe " procName ; remove the titlebar and border(s)
WinMove, % "ahk_exe " procName , , 0, 0, 3840, 1080 ; move the window to 0,0 and resize it to fit across 2 monitors.
WinMaximize, % "ahk_exe " procName
WinRestore, % "ahk_exe " procName
}
Return
ProcessExist(exeName)
{
Process, Exist, %exeName%
return !!ERRORLEVEL
}
return
what’s the Linux step by step
Well the whole core optimisation thing is moot since Linux abstracts away threads and doesn’t « order » them or « start a process on a specific thread ». The overhead and prioritazation are also moot because you’re not emulating a full windows, just the parts you need, and lastly the windowed is moot because the emulation plus whatever DE you have basically kinda result in the same result. There’s only the multiple monitor thing I would be curious to know how to do.
Hope this helps thousands of people!