Class CRTSettings
Project defaults for the CRT display simulation.
Inherited Members
Namespace: Scylla.TextMode
Assembly: ScyllaTextMode.dll
Syntax
[Serializable]
public class CRTSettings
Remarks
These are plain values because the CRT types live in their own assembly. A CRT driver that follows the project defaults reads its quality tier and readability clamp from here, and a driver with no preset of its own starts from the preset named here. The HDR mask values and the beam simulator depend on the player's display, so they suit a user config file better than a preset.
Fields
BeamAntiRetention
Whether the sweep drifts slowly against the display when the refresh rate is an even multiple of the CRT rate, which keeps an LCD from retaining a pattern.
Declaration
[Tooltip("Lets the beam simulator's sweep drift slowly against the display, which keeps an LCD from retaining a pattern. Can be turned off on OLED displays.")]
public bool BeamAntiRetention
Field Value
| Type | Description |
|---|---|
| bool |
BeamCRTRate
Refresh rate of the simulated CRT in hertz. The display needs at least twice this rate.
Declaration
[Tooltip("Refresh rate of the simulated CRT. The display needs at least twice this rate for the beam simulator to run.")]
[Range(24, 240)]
public float BeamCRTRate
Field Value
| Type | Description |
|---|---|
| float |
BeamGain
Share of the picture's brightness the beam simulator gives off on average. 0 picks 0.5 below 200 Hz and 0.7 above.
Declaration
[Tooltip("How bright the picture stays with the beam simulator, from 0 to 1. Higher is brighter with more motion blur. 0 picks a value for the display: 0.5 below 200 Hz, 0.7 above.")]
[Range(0, 1)]
public float BeamGain
Field Value
| Type | Description |
|---|---|
| float |
BeamRefreshRate
Display refresh rate for the beam simulator in hertz, for displays that report it wrongly. 0 uses the rate the display reports.
Declaration
[Tooltip("The display's refresh rate for the beam simulator. 0 uses the rate the display reports; set it by hand for a display that reports it wrongly.")]
[Range(0, 1000)]
public float BeamRefreshRate
Field Value
| Type | Description |
|---|---|
| float |
BeamScanDirection
Direction in which the beam sweeps the tube: 0 the whole tube at once, 1 top to bottom, 2 bottom to top.
Declaration
[Tooltip("Direction of the beam simulator's sweep. 0 lights the whole tube at once, 1 sweeps from top to bottom like a CRT, 2 from bottom to top.")]
[Range(0, 2)]
public int BeamScanDirection
Field Value
| Type | Description |
|---|---|
| int |
BeamSimulation
Whether the beam simulator runs: on displays at twice the CRT rate or more, it lights only the part of the picture the beam is drawing, which brings back a CRT's motion clarity. The picture flickers at the CRT rate, so it is off by default.
Declaration
[Tooltip("Lights only the part of the picture the beam is drawing on each display refresh, for the sharp motion of a real CRT. Needs a display at 120 Hz or more, vSync on and variable refresh rate off. The picture flickers at the CRT rate and gets darker. Warning: flickering images can affect people with photosensitive epilepsy. Reduce Motion keeps it off.")]
public bool BeamSimulation
Field Value
| Type | Description |
|---|---|
| bool |
DEFAULT_BEAM_CRT_RATE
Default refresh rate of the simulated CRT for the beam simulator, in hertz.
Declaration
public const float DEFAULT_BEAM_CRT_RATE = 60
Field Value
| Type | Description |
|---|---|
| float |
DEFAULT_BEAM_SCAN_DIRECTION
Default beam scan direction index (top to bottom).
Declaration
public const int DEFAULT_BEAM_SCAN_DIRECTION = 1
Field Value
| Type | Description |
|---|---|
| int |
DEFAULT_CRT_PRESET
Name of the preset used when none is configured.
Declaration
public const string DEFAULT_CRT_PRESET = "Standard Terminal"
Field Value
| Type | Description |
|---|---|
| string |
DEFAULT_HDR_MASK_BRIGHTNESS
Default HDR mask brightness calibration, which leaves the brightness as computed.
Declaration
public const float DEFAULT_HDR_MASK_BRIGHTNESS = 1
Field Value
| Type | Description |
|---|---|
| float |
DEFAULT_MAX_DELTA_TIME
Default clamp for the phosphor time step, in seconds.
Declaration
public const float DEFAULT_MAX_DELTA_TIME = 0.1
Field Value
| Type | Description |
|---|---|
| float |
DEFAULT_QUALITY_TIER
Default quality tier index (Medium).
Declaration
public const int DEFAULT_QUALITY_TIER = 1
Field Value
| Type | Description |
|---|---|
| int |
DefaultPreset
Name of the preset a CRT driver starts from when it has none assigned.
Declaration
[Tooltip("Name of the CRT preset a CRT component starts from when it has none of its own.")]
public string DefaultPreset
Field Value
| Type | Description |
|---|---|
| string |
HDRHeadroom
Manual HDR headroom, peak luminance over paper white, for displays that report it wrongly. 0 uses what the display reports.
Declaration
[Tooltip("How many times brighter than paper white the display can go. 0 uses what the display reports; set it by hand for a display that reports it wrongly.")]
[Range(0, 16)]
public float HDRHeadroom
Field Value
| Type | Description |
|---|---|
| float |
HDRMask
Whether CRT presets that ask for HDR mask mode may use it. Turning it off keeps the normal mask on every display.
Declaration
[Tooltip("When enabled, CRT presets that ask for it show the phosphor mask at full strength on an HDR display, with the brightness recovered from the display's headroom. Turn it off to keep the normal mask everywhere.")]
public bool HDRMask
Field Value
| Type | Description |
|---|---|
| bool |
HDRMaskBrightness
Brightness calibration for HDR mask mode: 1 leaves the brightness as computed.
Declaration
[Tooltip("Brightness of the picture in HDR mask mode. 1 keeps it as computed from the display; lower it if the picture looks too bright on this display, raise it if it looks too dim.")]
[Range(0.25, 2)]
public float HDRMaskBrightness
Field Value
| Type | Description |
|---|---|
| float |
MAX_BEAM_CRT_RATE
Highest refresh rate of the simulated CRT, in hertz.
Declaration
public const float MAX_BEAM_CRT_RATE = 240
Field Value
| Type | Description |
|---|---|
| float |
MAX_BEAM_REFRESH_RATE
Highest manual display refresh rate for the beam simulator, in hertz.
Declaration
public const float MAX_BEAM_REFRESH_RATE = 1000
Field Value
| Type | Description |
|---|---|
| float |
MAX_BEAM_SCAN_DIRECTION
Highest beam scan direction index (bottom to top).
Declaration
public const int MAX_BEAM_SCAN_DIRECTION = 2
Field Value
| Type | Description |
|---|---|
| int |
MAX_HDR_HEADROOM
Largest manual HDR headroom, peak luminance over paper white.
Declaration
public const float MAX_HDR_HEADROOM = 16
Field Value
| Type | Description |
|---|---|
| float |
MAX_HDR_MASK_BRIGHTNESS
Largest HDR mask brightness calibration.
Declaration
public const float MAX_HDR_MASK_BRIGHTNESS = 2
Field Value
| Type | Description |
|---|---|
| float |
MAX_MAX_DELTA_TIME
Largest value of the phosphor time step clamp, in seconds.
Declaration
public const float MAX_MAX_DELTA_TIME = 1
Field Value
| Type | Description |
|---|---|
| float |
MAX_QUALITY_TIER
Highest quality tier index (High).
Declaration
public const int MAX_QUALITY_TIER = 2
Field Value
| Type | Description |
|---|---|
| int |
MIN_BEAM_CRT_RATE
Lowest refresh rate of the simulated CRT, in hertz.
Declaration
public const float MIN_BEAM_CRT_RATE = 24
Field Value
| Type | Description |
|---|---|
| float |
MIN_HDR_MASK_BRIGHTNESS
Smallest HDR mask brightness calibration.
Declaration
public const float MIN_HDR_MASK_BRIGHTNESS = 0.25
Field Value
| Type | Description |
|---|---|
| float |
MIN_MAX_DELTA_TIME
Smallest value of the phosphor time step clamp, in seconds.
Declaration
public const float MIN_MAX_DELTA_TIME = 0.02
Field Value
| Type | Description |
|---|---|
| float |
MaxDeltaTime
Longest time step the phosphor simulation takes in one frame, in seconds.
Declaration
[Tooltip("Longest time step the phosphor afterglow advances by in one frame, in seconds. Keeps a loading hitch from wiping the afterglow in one step.")]
[Range(0.02, 1)]
public float MaxDeltaTime
Field Value
| Type | Description |
|---|---|
| float |
QualityTier
Default quality tier: 0 Low, 1 Medium, 2 High.
Declaration
[Tooltip("Default quality of the CRT. 0 is Low (one pass, for mobile and handheld devices), 1 is Medium (adds phosphor persistence and glow), 2 is High (adds halation and a per-channel beam).")]
[Range(0, 2)]
public int QualityTier
Field Value
| Type | Description |
|---|---|
| int |
ReadabilityClamp
Whether CRT drivers limit the settings that cost legibility by default.
Declaration
[Tooltip("When enabled, CRT components limit softness, curvature, glow and afterglow so text stays easy to read.")]
public bool ReadabilityClamp
Field Value
| Type | Description |
|---|---|
| bool |