Which cg_fov should I use?
OpenMOHAA's cg_fov is a 4:3 number that the game widens for your monitor, so the same value looks wider on a wider screen. Pick your resolution and the Volute FOV you played with to get the matching value. Guard allows 65 to 80.58, and the picture may be at most 98° wide on any screen, so ultrawide monitors get a lower maximum.
Your setup
Use this
cg_fov80.58
Real width at min (65)
80.7° = Volute 80.7
Max allowed on this screen
80.58 = 97.0° wide, Volute 97.0
Vertical view
51° – 65° same on every monitor
Quick table for your monitor
| Volute | OpenMOHAA cg_fov | Note |
|---|
Common monitors
| Resolution | Aspect | Volute 76 | Volute 80 | Volute 91 | Volute 97 |
|---|
* Outside the allowed range for that resolution. Values below 65 mean the screen is already wider than that Volute FOV at the minimum, so use 65. Values above the maximum for that screen are not possible, so use the maximum. Screens marked none are too wide for any cg_fov: play at a 16:9 resolution.
The formula
OpenMOHAA keeps the vertical view fixed and stretches the picture sideways to fill your screen (the usual "Hor+" behaviour). cg_fov is the horizontal angle the picture would have on a 4:3 monitor, so the real width depends on how much wider than 4:3 your screen is. With your resolution written as \(w \times h\), that stretch factor is
\[ k = \frac{w / h}{4 / 3} = 0.75 \cdot \frac{w}{h} \]It is \(1\) on 4:3, \(1.333\) on 16:9, \(1.778\) on 21:9 (2560 × 1080) and \(2.667\) on 32:9.
What a cg_fov really shows
Half the view is a right triangle, so the tangent of the half-angle scales with \(k\):
\[ \text{width} = 2 \arctan\!\left( \tan\frac{\texttt{cg\_fov}}{2} \cdot k \right) \]Example on 1920 × 1080: \(k = 1.333\), so cg_fov 80.58 gives \(2 \arctan(\tan 40.29^\circ \times 1.333) = 97.0^\circ\). That is why 80.58 equals Volute 97 on a 16:9 screen.
From a Volute FOV to cg_fov
Volute's number is the real width you saw, so solve the same equation the other way round. This is what the converter above computes:
\[ \texttt{cg\_fov} = 2 \arctan\!\left( \frac{\tan(\text{Volute} / 2)}{k} \right) \]On a 4:3 screen \(k = 1\) and cg_fov is simply the Volute value.
Guard's maximum for your screen
Guard allows at most 98° of real width, and never more than cg_fov 80.58. Put 98 into the formula above and keep the smaller of the two:
\[ \texttt{cg\_fov}_{\max} = \min\!\left( 80.58,\; 2 \arctan\!\left( \frac{\tan(98^\circ / 2)}{k} \right) \right) \]On 16:9 the second term is 81.6, so the 80.58 cap wins and nothing changes for you. On 2560 × 1080 it is 65.81 and on 3440 × 1440 it is 65.40, which is what Guard flags against and what its Clean cfg button writes.
Why 32:9 has no allowed value
OpenMOHAA does not accept a cg_fov below 65: it resets anything lower to 65 on the next frame. At 32:9, \(k = 2.667\), so even the minimum shows \(2 \arctan(\tan 32.5^\circ \times 2.667) = 119^\circ\), well past Guard's 98°. The only way to play on such a screen is a 16:9 resolution.
Vertical view
The vertical angle uses the 4:3 factor instead of \(k\) and therefore does not depend on your screen:
\[ \text{height} = 2 \arctan\!\left( \tan\frac{\texttt{cg\_fov}}{2} \cdot \frac{3}{4} \right) \]That is 51° at cg_fov 65 and 65° at 80.58 on every monitor, which is why the numbers above only ever talk about width.