Future of CRT simulation

From Emulation General Wiki
Jump to navigation Jump to search
Back to ↩Shaders, presets, and filters
Shaders and filters Shader presets Future of CRT simulation Shaders on real CRTs

You'd need a refresh rate of 3.68MHz to simulate an electron beam sweeping across a 240p ntsc image pixel by pixel. ~14.4KHz to do it line by line.[1]

EmuVR rooms

CRT shader development continues to evolve rapidly, with active contributions from communities around RetroArch, CRT-Guest shaders, Sony Megatron presets, and Blur Busters–led temporal simulation research. While a physically exact CRT model would require impractically high MHz-class refresh rates, modern approaches instead rely on perceptual and temporal approximations that reproduce the visual and motion characteristics of cathode-ray displays within the limits of consumer hardware.

The CRT Electron Beam Simulator exemplifies this approach. Rather than simulating individual pixel emission times, it operates at the scanline-band level, using Shader Sub-frames to subdivide each display refresh into multiple temporal passes. On a 240 Hz display, for example, 60Hz content can be rendered using four subframes per refresh, producing a moving bright band with realistic phosphor persistence and decay. This closely matches the perceptual result of a real CRT's ~15.7 kHz horizontal scan rate without requiring per-pixel MHz-scale timing.

This technique exploits the human visual system's integration of light over time: as long as the timing of illumination and decay is sufficiently accurate, the illusion of a continuously sweeping electron beam is preserved. Higher refresh rates (240–480 Hz and beyond) further reduce artifacts such as banding and improve smoothness, but are not strictly required to achieve convincing CRT-like motion clarity. As a result, modern CRT beam simulation represents a feasible GPU-accelerated compromise, trading unattainable physical precision for perceptually accurate impulsed motion on flat-panel displays, especially when paired with OLED response times, 4K+ video resolution, HDR output, and spatial CRT shaders.

Ongoing and anticipated developments include:

  • Enhanced temporal simulation – Continued refinement of electron-beam and rolling-raster shaders introduced in 2024–2025, with ongoing work to reduce banding, chroma ghosting, and color artifacts. Experimental VRR-compatible strobing aims to further improve 60 Hz legacy content on high-refresh displays without harsh flicker.
  • Improved CRT characteristic modeling – More accurate simulation of real-world display variance, including phosphor persistence and glow, halation, convergence errors, beam focus, curvature, and analog signal artifacts (composite, S-Video, RF). Updated CRT-Guest and Sony Megatron variants incorporate subpixel-accurate masks, higher TVL emulation, and HDR inverse tone mapping for use on modern OLED and Mini-LED panels.
  • Simulation of other retro display technologies – Beyond CRTs, research has been announced into plasma display emulation (targeted for late 2025), using frame-stacked temporal dithering to recreate the subfield drive behavior and motion characteristics of early-2000s plasma televisions, particularly for seventh-generation console content.
  • Broader integration and accessibility – Increasing support for CRT and display simulation across ReShade, standalone applications (e.g., ShaderBeam desktop overlays), video players, and hardware scalers such as the RetroTINK 4K, PixelFX Morph 4K, and RetroTINK 5X-Pro, extending these techniques beyond traditional emulation environments.

Game Room Simulation

[edit | edit source]

Future is already here thanks to Game Room Simulation projects.

Full Signal & Cable Emulation

[edit | edit source]
For signal simulation shaders (which shouldn't be confused with full signal and cable emulation mentioned here), see Shaders and filters#NTSC.
For the Analog Output Bottleneck in Software Emulation, see Displays#The Analog Output Bottleneck in Software Emulation.
For Deinterlacing with CRT simulation, see Deinterlacing#CRT Simulation.

While most modern CRT shader development has focused on display simulation (beam behavior, scanlines, phosphor masks, HDR, and motion), a parallel line of research emphasizes an earlier stage of the historical pipeline: the analog video signal itself. A prominent example of this philosophy is the work of the Clock Signal, which advocates modeling the entire analog signal chain before display simulation. Traditional shader pipelines generally assume that the emulator's framebuffer represents the final “ground truth” image and apply CRT simulation as a post-processing stage (more sophisticated ones bridge this gap by incorporating NTSC Filters to simulate signal degradation). The Clock Signal approach challenges this assumption by arguing that the framebuffer was never the final image in real hardware. Instead, it was merely the input to a long chain of signal generation, encoding, transmission, and decoding stages that significantly shaped the final picture.

In real hardware, the image pipeline was:

Framebuffer → Video encoder → Analog transmission → Cable artifacts → Display decoder → CRT physics → Human perception

Modern emulation typically skips the signal generation and transmission stages and jumps directly from framebuffer to CRT shader. The Clock Signal approach instead proposes that authentic reproduction requires simulating:

  • NTSC/PAL encoding and decoding
  • Composite, S-Video, component, or RF bandwidth limits
  • Luma/chroma cross-talk and color bleed
  • Analog noise and impedance mismatch
  • Cable quality and filtering characteristics

This reframes CRT shaders as only one stage of a larger reconstruction process.

Why Signal Simulation Matters

Many visual characteristics historically attributed solely to CRT displays were actually introduced before the signal reached the screen:

  • Composite encoding blended dithering into gradients.
  • Chroma bandwidth limits softened pixel edges.
  • Cable and connector imperfections subtly blurred and filtered the image.
  • Decoder filters shaped color separation and edge detail.

Because these transformations occurred before the CRT, display-only shaders cannot fully reproduce them without explicitly modeling the signal stage.

This distinction explains why:

  • 240p console graphics often appear too sharp when only CRT shaders are used.
  • Dithering patterns fail to blend correctly without composite filtering.
  • UI text and sprites may appear noisier or harsher than remembered.

Signal simulation therefore complements CRT display simulation rather than replacing it.

Complementary Pipeline Model

The emerging consensus in advanced emulation is that a complete perceptual pipeline may eventually include both stages:

  1. Accurate framebuffer generation and scaling
  2. Analog signal and cable simulation (NTSC/PAL filters)
  3. Display simulation (CRT shaders, masks, beam, HDR)
  4. Temporal simulation (beam racing/rolling raster)

In this model, post-processing shaders become part of a layered reconstruction rather than a single all-in-one effect. As shader frameworks and reusable pipelines continue to mature, signal-stage modeling is expected to become more common, future shader presets may increasingly ship as multi-stage pipelines. This shift further reinforces the evolving view that accurate emulation extends beyond the framebuffer, toward reproducing the entire historical viewing pipeline from digital rendering to human perception.

Mixed-mode consoles and resolution switching

Signal-level modeling becomes especially important for mixed-mode systems that dynamically switch between 240p and 480i, such as many 5th-generation consoles. In real hardware, these mode changes were not discrete framebuffer events but changes in the timing and structure of the analog video signal itself.

Games frequently switched modes between scenes, for example:

Scene Mode
Gameplay 240p
Menus 480i
World map 480i
Inventory 480i
Cutscenes 240p or 480i

Because these transitions occur at the signal and timing level, they involve:

  • Field cadence and interlace behavior
  • Sync timing and blanking changes
  • Vertical filtering differences between progressive and interlaced output
  • Analog decoder behavior during mode transitions

Traditional post-processing CRT shaders operate on a finished framebuffer and therefore cannot accurately model the temporal and electrical characteristics of these real-time mode switches. Time-domain signal simulation, by contrast, naturally reproduces how displays handled interlaced fields, progressive scanlines, and rapid resolution changes within the same title. This makes signal-stage emulation particularly valuable for consoles known for frequent 240p/480i switching. But there is a catch;

The "Receiver Gap" - Virtual Decoders and Standardized Interfaces

While signal-level emulation accurately models the output of the console and the cable, a significant hurdle remains: the virtualization of the receiver. In a physical hardware setup, the CRT television is not a passive filter; it is an active decoder that must physically "lock onto" the incoming analog sync. Modern emulation typically treats the CRT as a static post-processing effect, which creates a logical disconnect during complex signal changes like resolution switching or interlacing transitions.

The current challenge is twofold:

  • Active Decoding: A truly accurate simulation requires an emulated "Virtual CRT Decoder" that reacts to timing shifts, sync-loss, and field cadence in real-time, rather than just applying a mask to a finished frame.
  • Host Communication: For users seeking "pixel-perfect" or frequency-matched output (using tools like CRT Emudriver), the emulator needs a way to communicate these signal changes directly to the host's video driver and display hardware.

Currently, most emulator projects must "reinvent the wheel" to handle these complex display behaviors. There is a growing argument for an open-source, standardized "Virtual CRT" API—analogous to the librashader project. Such a framework would allow:

  1. System Developers to focus solely on emulating the console's signal generation and cable artifacts.
  2. Display Developers to create modular, highly accurate "Virtual TV" decoders that handle sync, geometry, and phosphor behavior.
  3. Cross-Platform Consistency where the "handshake" between the emulated signal and the virtual display is handled by a dedicated, reusable layer.

By decoupling the display logic from the core emulator, the scene could achieve a level of temporal accuracy that covers not just how the game looks, but how the entire analog chain behaves during the transitions and "mixed-mode" signals common in the 5th and 6th console generations. This would effectively move the "display" out of the emulator and into a dedicated, reactive simulation layer.

Librashader demonstration
Main article: Shaders,_presets,_and_filters#Emulator support

Librashader is a complete reimplementation of the RetroArch slang shader pipeline that allows standalone emulators to easily and optionally implement support for RetroArch-style shaders and shader presets.

This effort is a complete reimplementation of a shader pipeline that should be compatible with all shaders in slang-shaders, including the preset parser, the shader preprocessor, and SPIR-V translation, as well as runtime implementations for Direct3D 11, OpenGL, and Vulkan. To be clear, librashader does not “rip out” the shader parts of RetroArch and just repackage it up, but is a complete reimplementation with a fully documented Rust API that exposes every part of the pipeline.

You can find librashader on GitHub.

Phosphor Mask Emulation

[edit | edit source]

At the frontier of CRT shader development has been phosphor mask emulation. As stated previously, there are three overarching mask types: aperture grilles, shadow masks and slot masks. Aperture grilles were used primarily by Sony TVs, professional displays and PC monitors (with a few other brands such as Mitsubishi releasing their own version after Sony's Trinitron patent expired in the late 90's), shadow masks by the majority of PC CRT monitors from the late 80's onwards, and slot masks by just about every non-Sony consumer-level CRT TV, the vast majority of arcade monitors, and very early home computer/PC monitors. A key part of CRT emulation, then, depends on accurately replicating the look of these masks. Modern shaders like Sony Megatron or CRT-Guest-Advanced allow precise tuning to match specific displays.

However, even within each of these mask types, there is a lot of variance, as some CRTs were much sharper and were able to resolve a lot more detail than others. This is encapsulated in a specification known as TVL, or television lines, defined as the number of vertical white lines a mask can resolve along the horizontal dimension in a stretch equal to the height of the tube's viewable area (this means TVL is calculated by measuring the screen's height, then counting the number of resolved lines across a horizontal span equal to that height, not across the entire length of the screen). A higher TVL count is the result of higher phosphor density and results in a sharper, more detailed image, as well as more prominent scanlines in low-res content. Most consumer-level CRTs had a relatively low TVL count, whereas professional monitors such as Sony's PVM and BVM series had much higher TVL. In PC monitors, the usual specification to determine sharpness was instead dot pitch, or the distance between two phosphors of the same color. The lower the dot pitch, the sharper the monitor and the more detail it could resolve.

Taking into account the three mask types and the variance in TVL and dot pitch, then, along with many other variables, it is no wonder no two CRTs looked alike.

Electron Beam vs. BFI and Rolling Scanline Simulation

[edit | edit source]

The CRT Electron Beam Simulator (also known as CRT Beam Simulator or "beam racing" simulation) is a real-time temporal shader initially released in late 2024 by Mark Rejhon of Blur Busters in collaboration with Timothy Lottes. It operates as a refresh-cycle shader, utilizing multiple subframe passes per display refresh to accurately simulate a CRT's electron beam scanning the screen line-by-line (rolling raster). This includes realistic per-pixel phosphor persistence, variable decay rates, and brightness redistribution, delivering superior motion clarity for low-framerate content (e.g., 60 fps retro games) on high-refresh-rate displays (120 Hz minimum, 240 Hz+ recommended, ideally OLED for perfect blacks and wide color gamut).[2] Unlike traditional black frame insertion (BFI), which causes harsh large-area flicker by alternating full bright and black frames, the Beam Simulator produces a rolling bright band with soft phosphor fade-out, ensuring light emits from some part of the screen at all times for a more natural CRT-like impulsing, reduced eyestrain, and higher average brightness. It excels at stacking with spatial CRT shaders (e.g., shadow mask, aperture grille, scanlines) for comprehensive visual authenticity. The shader functions independently of content framerate, handling non-integer refresh ratios effectively. Developments through 2025 included artifact reductions (banding, chroma ghosting), improved color handling, integration into RetroArch, ShaderBeam (a desktop overlay app released December 2025), TestUFO demos from BlurBusters, and experimental VRR support. Planned future work includes plasma display simulation. In RetroArch, the CRT Beam Simulator presets (via subframe shaders) are considered the premier software solution, outperforming hardware BFI (e.g., DyAc, ULMB), software BFI (RetroArch built-in BFI solution), and the Rolling Scanline Simulation (mentioned below)—requiring only a high-refresh-rate display.[3]

  • Go to Settings → Video → Synchronization and enable V-Sync, and the “Shader Sub-frames” option that matches your monitor's refresh rate. Disable Sync to exact content framerate.
  • You can find the shader in the preset and/or subframe-bfi directory, named “crt-beam-simulator-xxx.slangp”.

The Rolling Scanline Simulation (introduced in RetroArch around 2023–2024) is a simpler driver-level feature employing a scrolling scissor rectangle to produce a basic rolling band effect, offering moderate motion clarity improvements but lacking advanced phosphor physics.[4]

Feature Rolling Scanline Simulation CRT Electron Beam Simulator
Implementation Driver-level scrolling scissor rectangle Advanced GPU temporal shader with subframe passes
Simulation Accuracy Basic rolling band (crude rolling BFI) Full electron beam + per-pixel phosphor persistence/decay
Motion Clarity Moderate improvement over sample-and-hold Excellent; near-real CRT impulsing for low-fps content
Flicker Harsher, more noticeable Softer, reduced eyestrain; light always emitting somewhere
Brightness Retention Lower average brightness Higher; variable per-pixel handling
Artifacts Visible tearing/boundaries possible Minimal (further reduced in 2025 updates); tunable
Stacking with Spatial Shaders Limited compatibility Excellent; designed for combination (masks, scanlines)
GPU Overhead Low Higher (requires capable GPU for high refresh rates)
Recommended Display Any high-refresh 240 Hz+ OLED ideal
Status in RetroArch Legacy feature (separate from subframe shaders) Flagship; requires Shader Sub-frames enabled
Best For Quick, lightweight rolling effect Authentic CRT-like motion clarity on modern displays
Motion Blur Reduction for 60fps Content (Simulated CRT)[5]
Host Refresh Rate Scanning Ratio Blur Reduction Effective Persistence (MPRT)
120 Hz 2:1 ~50% 8.33 ms
240 Hz 4:1 ~75% 4.17 ms
360 Hz 6:1 ~83.3% 2.78 ms
480 Hz 8:1 ~87.5% 2.08 ms
600 Hz 10:1 ~90% 1.67 ms
References and implementations

Display Hardware Requirements

[edit | edit source]

Future of the display technology is crucial for CRT simulation.

File:Information icon.svg This section is not a marketing push for "bleeding edge" hardware or an endorsement of hyperconsumerism. The requirements listed below are based on the objective mathematical and physical limitations of mapping analog phosphors to fixed-pixel digital grids. You do not need to spend thousands of dollars to enjoy retro games. If you find the "Shader Craze" too expensive or complex, the most authentic (and often cheapest) solution is to find a used Consumer SDTV or EDTV on the local second-hand market. However, if choosing the CRT route, do not confuse a standard TV with:
  • VGA CRT Monitors: Designed for high-resolution PCs; they do not produce the consumer "TV look."
  • HD CRTs: Late-era tubes that process signals digitally, causing input lag and ruining the 240p "scanline" effect.
  • Pro/High-TVL Monitors (BVM/PVM): Professional studio equipment that is currently overpriced due to hype and offers a clinical, sharp image rather than the nostalgic consumer look.
Recommended Host Display Characteristics

To maximize CRT shader fidelity, the following monitor features are desirable:

Mask-Induced Brightness & HDR

Shaders:

Subpixel mask simulation works by "blacking out" a massive percentage (60–80%) of the host display's surface area to create the gaps between phosphors. This creates a severe Luminance Penalty that SDR displays usually cannot overcome. HDR displays could be very useful for shaders, because HDR-compatible CRT shaders are designed to emulate the visual characteristics of professional and consumer CRT displays (e.g., aperture grille, slot mask, and dot mask patterns) on modern HDR-capable panels. Examples include the Sony Megatron HDR preset for libretro and related ports. When properly implemented, HDR expands the dynamic range available to CRT shaders, allowing higher peak brightness for simulated phosphors while preserving deep black levels between scanlines and mask gaps. This can significantly improve perceptual realism compared to SDR-only implementations.

Hardware Tier Actual Sustained Output Mask Strength Perceived Luminance
Budget SDR ~250 nits 75% Mask ~62 nits (Very Dim)
DisplayHDR 400 320 nits 75% Mask ~80 nits (Muddy)
DisplayHDR 600 350 nits 75% Mask ~87 nits (Flat)
DisplayHDR 1000 600 nits 80% Mask (Heavy) ~120 nits (CRT Target)
DisplayHDR 1400 900 nits 80% Mask (Heavy) ~180 nits (Vivid)
True Black (OLED) ~250 nits 80% Mask (Heavy) ~80 nits*

Note: OLED panels cannot sustain very bright full-screen white due to power and longevity limits. However, because each pixel emits its own light and can turn completely off, the infinite contrast ratio dramatically increases perceived brightness in mixed scenes. In practice, ~100 nits on OLED can appear comparable to ~200 nits on LCD when using CRT shaders or other content with significant dark areas.

Key Mechanism:

  • SDR Base: Retro games are rendered in SDR with limited dynamic range (typically 8-bit color, ~100–200 nits peak).
  • CRT Shader Application: The shader applies scanlines, beam dynamics, phosphor glow, convergence error, and mask patterns. Advanced shaders may use subpixel-aware rendering and require configuration of the host panel's subpixel layout (e.g., RGB, BGR, WRGB).
  • HDR Conversion: HDR-compatible shaders map SDR output into HDR space using techniques similar to inverse tone mapping, expanding highlight intensity and contrast while maintaining a CRT-like average picture level. See High dynamic range for more details on HDR and VESA DisplayHDR Standards for certification levels.
The Contrast Problem (Peak Brightness vs. Black Floor)

While high peak and sustained brightness is required to overcome the Luminance Penalty of the mask, brightness alone is insufficient for a realistic image. Authentic CRT simulation requires high Dynamic Range—the ability to display a piercingly bright phosphor immediately adjacent to a pitch-black scanline gap.

  • Standard LCDs (Edge-lit/Global Dimming): Increasing backlight brightness to 1000 nits globally raises the "black floor." This causes the black gaps between scanlines and mask phosphors to glow, resulting in a "washed out" or "milky" image.
  • Local Dimming (Mini-LED/FALD): These displays use hundreds or thousands of dimming zones. While they allow for high peaks and deep blacks in large areas, the zones are often too large to dim individual scanlines, which can lead to "blooming" or "haloing" around the simulated bright beam.
  • Per-Pixel Emission (OLED/Micro-LED): This is the ideal hardware for CRT shaders. Because each pixel is its own light source, the display can output high nits for a "lit" phosphor and 0 nits for the "black" gap directly next to it. This creates the "infinite contrast" necessary to mimic the sharp, physical transitions of an electron beam hitting a phosphor.

A high nit rating on a display without local dimming or per-pixel control only improves Average Picture Level (APL); it does not improve the Internal Contrast of the shader's mask and scanlines.

The Math of the Triad
Subpixel budget for mask simulation

A standard RGB triad (one Red, Green, and Blue phosphor group) requires a minimum of 3 horizontal host pixels (one per color subpixel) plus at least 1 pixel of black space (the mask/gap or shadow mask aperture) to maintain color purity, prevent subpixel bleeding, and avoid chromatic artifacts (typically unwanted magenta/green fringing) when mapping to an LCD's fixed RGB subpixel layout.

This establishes a hard 4-pixel horizontal budget per simulated triad as the absolute minimum for functional, accurate simulation without severe false colors, excessive blur, or Moiré interference between the emulated mask and the display's physical structure. Below this threshold, shaders cannot reliably align the simulated phosphors, leading to unacceptable degradation.

The maximum theoretical authentic TVL (Television Lines, roughly proportional to distinguishable vertical black/white line pairs per picture height) is therefore gated by:

Host Horizontal Resolution ÷ 4 = Maximum Simulated Triads (baseline for basic aperture grille or simple shadow mask emulation)

Vertical integer scaling is an independent constraint focused on scanline stability—it does not guarantee correct horizontal triad mapping, and horizontal triad size/pixels-per-triad does not directly influence vertical scanline behavior or integer scaling requirements. Simulating 480-line content is more demanding than 240p because vertical resolution doubles, but horizontal phosphor spacing (and thus triad density) must remain physically consistent for realism. Vertical scaling (scanline alignment/thickness) and horizontal triad density (mask/phosphor fidelity) must be evaluated separately.

Non-integer vertical scaling worsens instability in interlaced content (e.g., shimmer or field incoherence), while integer scaling improves coherence—but horizontal pixel budget still caps maximum achievable mask fidelity.

The vertical scanline system and horizontal phosphor mask/triad system operate largely independently in advanced shaders:

  • Vertical axis (scanlines): Controlled by parameters such as scanline thickness/strength, beam distribution profile, vertical bloom/deconvergence, and sampling/filtering methods (e.g., integer-like modulation, multi-tap filters, or bob/deinterlacing for 240p/480i content). Integer vertical scaling from core output to display ensures even gaps and thickness without shimmer or crawl. Scanline visibility and smoothness depend on host pixels allocated vertically per original scanline—typically targeting 4–10+ pixels per scanline (or more at 4K/8K) for realistic beam glow, halation, and black gaps without aliasing.
  • Horizontal axis (triads/mask): Focused solely on subpixel/phosphor layout (aperture grille stripes, shadow mask dots, slot mask rectangles). Increasing pixels per triad/group (e.g., 4 → 8–12+) adjusts mask pitch for better TVL (horizontal resolution feel), color purity, brightness/contrast realism, and moiré reduction—but it has no direct impact on vertical scanline drawing, thickness, or spacing. The mask pattern tiles horizontally and repeats vertically without coupling to scanline parameters in most implementations.

While the two axes are technically decoupled, many users stylistically match effective scales (e.g., triad width ≈ scanline thickness in pixels) for visual harmony—especially when downscaling or at lower resolutions—to avoid mismatched "blocky phosphors with razor-thin lines" or vice versa. This is a subjective tuning choice, not a shader requirement.

Integer Scaling & Alignment (The Subpixel Budget)

Authentic CRT simulation requires sufficient host pixels to reconstruct both the vertical scanline structure (even thickness, no crawl/shimmer) and the horizontal phosphor mask (color purity, realistic dot/slot/stripe pitch). As noted in Late Analog eras, 240p can be approximated at lower resolutions, but true subpixel-accurate emulation is limited by the host pixel budget. Integer vertical scaling ensures stable line multiplication but does not ensure accurate RGB triad/phosphor mapping.

Vertical Scaling Only
Below 4K, SDTV (480-line) mask simulation often requires compromises in triad accuracy, phosphor brightness, color purity, or scanline stability. At 8K, most such trade-offs disappear.
Host Resolution 240p Content 480i/480p Content
1080p 4.5× (Non-integer)
Requires interpolation; prone to shimmer/uneven lines.
2.25× (Non-integer)
Uneven lines; heavy interpolation required.
1440p (Integer)
Stable scanlines; convincing beam shaping.
(Integer)
Stable lines, but coarse beam/scanline resolution.
4K (2160p) (Integer)
Excellent beam and scanline modulation.
4.5× (Non-integer)
Needs advanced scanline compensation.
5K (2880p) 12× (Integer)
High overhead; good and sharp scanline definition.
(Integer)
Stable lines; good enough balance for high-fidelity 480p.
8K (4320p) 18× (Integer)
Excellent vertical fidelity; near "analog" look.
(Integer)
Superior beam and phosphor mask resolution.
448i and 480i scaling factors assume full-frame reconstruction, integer results (e.g., 6×, 9×) provide stable scanlines and subpixel-accurate phosphor mask simulation. Many PS2 titles output 448 lines (e.g., 512x448), scaling this to fill the host height results in non-integer shimmer, PCSX2 may use integer overscale or padding to treat the signal as 480p on framebuffer output. This centers the 448 lines within a 480-line integer grid, sacrificing a small amount of screen area for perfect scanline alignment.

At and above, scanline thickness and beam modulation become convincingly stable. Below this threshold, variations in line thickness and "shimmer" (especially during vertical scrolling) are more noticeable to the eye.

Horizontal Budget for Realistic Phosphor Fidelity

While the 4-pixel minimum ensures basic functionality, advanced shaders (e.g., CRT-Royale, CRT-Guest-Advanced and variants in RetroArch) routinely allocate 6+ pixels per effective triad/group (often 8–12+ for slot masks) to achieve convincing realism (finer sub-pixel detail). Horizontal triad size does not couple directly to vertical scanline parameters—each axis is tuned independently, though users may stylistically match effective scales for visual harmony.

Mask Type Requirements
Using more than the "4-pixel minimum" allows rounded phosphors, proper bloom/halation, subpixel convergence, and effective TVL without purity loss, but it demands higher host resolutions to maintain fine pitch and avoid coarse appearance.
Mask Type Recommended Pixels per Group Characteristics & Requirements
Aperture Grille 4–6 pixels Vertical RGB stripes (e.g., Trinitron). Works well at 4–6 pixels per group—sharp.
Shadow Mask 6–8+ pixels Triangular dot triads, typical of PC CRT monitors. Usually 4–8+ pixels; needs ~6+ for complex dot patterns (e.g., EDP variants) to avoid moiré or unrealistic tightness.
Slot Mask 8–12+ pixels Staggered rectangular slots, common in consumer TVs/arcades. Frequently requires 8–12+ pixels per group (or per slot cycle) to render authentic staggered grids, vertical ties/crosshairs, realistic brightness (slots block more light), and phosphor shapes without blockiness or dimming.
Horizontal Resolution and Phosphor Fidelity (Approximate Max Simulated Triads)
In practice, shader parameters (e.g., mask type, triad size, slot width, or num_triads_desired) let users target specific budgets. Start with the 4-pixel minimum for stability, then increase to 6–12+ (especially for slot masks). At lower host display resolution, favor simpler masks (aperture grille)/accept reduced Triads.
Host Resolution Pixels per Triad ~Total Triads
1080p
(1920px)
4 ~480
6 ~320
1440p
(2560px)
6 ~427
8 ~320
4K
(3840px)
8 ~480
12 ~320
8K
(7680px)
8 ~960
12 ~640
The Scale Problem ("Bricks" vs. "Texture"), Horizontal Resolution vs. Phosphor Fidelity

Increasing pixels-per-triad provides the math needed for complex masks, but on large modern displays (e.g., a 65" TV), it introduces a physical scaling hurdle. At 12 pixels per triad on a 4K screen, you only have ~320 triads. On a 56.7" wide (65" class) panel, each "phosphor" becomes roughly 4.5mm wide—nearly 5x larger than a real CRT's phosphor.

This causes three distinct visual failures at 4K:

  1. Massive Phosphors: Instead of a fine grain, you see "Lego-like" colored rectangles.
  2. Aggressive Screen Door: The black gap between triads becomes a visible vertical bar (up to 1.5mm wide), creating a distracting mesh.
  3. Obvious Staggering: The "slot" pattern's brick-like layout becomes too coarse to blend, looking like digital art rather than a physical screen.

At 8K, these same 12-pixel triads are physically halved in size. With ~640 triads, the density finally becomes high enough for the human eye to perceive the mask as texture rather than geometry, effectively reaching "Retina" levels for CRT emulation.

Host Resolution px/t Budget Screen Size Eff. Triads & Category Phys. Width
1. NATIVE HARDWARE (Reference)
CRT: Pro BVM Native 20" ~800+
Pro BVM Tier
~0.25 mm
CRT: Consumer Native 28" ~300-450
Consumer Tier
~0.60-0.85 mm
2. EMULATED/SIMULATED SETUPS (Modern Displays)
4K (UHD) 4 px 27" (Mon) 960
(Pro BVM Tier)
~0.62 mm
8K (UHD-2) 8 px 65" (TV) ~1.50 mm
4K (UHD) 6 px 32" (Mon) 640
(High-End PVM Tier)
~1.11 mm
1600p 4 px 18" (Laptop) ~0.61 mm
1440p 4 px 27" (Mon) ~0.93 mm
8K (UHD-2) 12 px 65" (TV) ~2.25 mm
1080p 4 px 24" (Mon) 480
(Mid-Range PVM)
~1.10 mm
4K (UHD) 8 px 27" (Mon) ~1.25 mm
4K (UHD) 8 px 65" (TV) ~3.00 mm
1440p 6 px 27" (Mon) 320 – 427
(Consumer TV Tier)
~1.40 mm
3.2K 8 px 16" (Laptop) ~0.86 mm
1080p 6 px 24" (Mon) ~1.65 mm
1440p 8 px 27" (Mon) ~1.85 mm
High TVL vs Low TVL (Sharpness vs Authenticity Preference)
Low TVL vs High TVL

High TVL (typically 600–800+ simulated lines, common in aperture grille PVM/BVM emulation) is not inherently "better"—it depends on the target aesthetic and hardware constraints. High-TVL settings deliver razor-sharp phosphor separation, pronounced scanlines, and clinical pixel definition that mimics professional broadcast monitors (e.g., Sony PVM/BVM series). This creates strong black gaps, high perceived detail, and "barcode" scanline visibility even from a distance—ideal for users prioritizing reference-grade clarity, pixel-perfect alignment, and modern "pop" on HDR OLED/Mini-LED panels. Advanced shaders like CRT-Guest-Advanced, CRT-Royale, or Sony Megatron HDR excel here at 4K/8K, where extra horizontal pixels support fine triad pitches without excessive coarseness.

Low-TVL settings (~300–450 simulated lines, emulating typical consumer shadow mask or slot mask CRTs) prioritize period authenticity over sharpness. Most '80s/'90s/'00s developers balanced pixel art and games on average living-room/arcade consumer sets, where coarser phosphor triads, wider beam spots, and natural blending softened jagged edges, reduced visible black voids, and produced a glowy, organic "mess" with less harsh separation. Pixels blend into subtle gradients, halation feels more diffuse, and scanlines are subtler or mixed with the mask—creating the cozy, forgiving look many remember from childhood TVs rather than studio references.

Common preferences in the emulation community:

  • High TVL → Favored for "pro" look, strong contrast punch, and modern HDR compensation (e.g., piercing phosphors next to deep blacks).
  • Low TVL → Preferred for "soulful" consumer authenticity, better blending on pixel art, and avoiding over-sharpened artifacts (e.g., unnatural barcodes or clinical separation that devs never targeted).

Neither is objectively superior—high TVL can feel "too sharp" or artificial on retro content (turning soft sprites into hard edges), while low TVL may appear "muddy" or dim without HDR headroom. Many users tune TVL dynamically (e.g., 300–400 for 240p and 480p/480i/SDTV consumer vibe, 600+ for PVM sharpness) or choose mask type accordingly:

  • Aperture grille → Often high-TVL friendly (sharp stripes, visible scanlines).
  • Shadow/slot mask → Benefits more from low-TVL for realistic dot/staggered blending and reduced moiré.

Ultimately, test both on your display: high TVL shines on high-density HDR setups with per-pixel control, but low TVL often captures the "real-world" CRT experience most players actually had.

Host Display Hadware Characteristics and Limitations

OLED panels are often preferred for HDR CRT shader use due to per-pixel contrast. However, trade-offs must be considered. In practice, LCD panels may provide more geometrically accurate mask alignment, but OLED panels generally provide superior perceptual black depth and phosphor separation.

Category OLED/RGB QD-OLED LCD (IPS/TN/VA/Mini-LED)
Native Contrast & Black Level Near-infinite contrast; true per-pixel black (0 nits). Ideal for deep scanline gaps and mask separation. Lower native contrast; blacks appear dark gray in dark environments. VA improves contrast but may crush near-black detail.
Black Uniformity (Full Screen) No backlight bleed; highly uniform black field. Some panels may exhibit minor near-black vertical banding at very low grayscale levels (1–5%). May exhibit backlight bleed, IPS glow, dirty screen effect (DSE), or uneven luminance across the panel.
Subpixel Geometry (Mask Alignment) QD-OLED (triangular RGB) and WOLED (WRGB/WBGR) layouts do not match classic RGB stripe CRT assumptions. Subpixel-accurate mask alignment is geometrically imperfect even at integer scaling. The newest generation of panels has finally adopted a linear RGB layout though. Standard RGB stripe layouts allow predictable subpixel mask alignment and more accurate aperture grille/triad simulation.
Mask-Induced Brightness Compensation HDR headroom can restore perceived luminance after 60–80% mask multiplication, but high APL scenes may trigger Automatic Brightness Limiting (ABL). Higher sustained full-field brightness helps compensate for heavy mask multiplication. No ABL behavior.
Sustained Full-Field Brightness Typically lower during large bright scenes due to ABL and thermal limits. Generally higher sustained brightness, especially on high-end IPS and Mini-LED panels.
HDR Peak Brightness (Small Window) Strong small-window peaks enhance phosphor highlight simulation and bloom effects. High-end Mini-LED panels may exceed OLED in peak luminance, beneficial for extreme highlight simulation.
Local Dimming/Haloing Behavior RGB QD-OLED per-pixel emission eliminates halo artifacts around simulated phosphor highlights. FALD/Mini-LED dimming zones cannot operate at subpixel precision; haloing and zone transitions may occur around bright elements.
Pixel Response Time Near-instant response (~0.1 ms range) closely approximates impulse behavior; beneficial for beam simulation and rolling scanline techniques. Very good on modern IPS/TN. May exhibit overshoot artifacts depending on overdrive tuning.
CRT Electron Beam Simulator (Subframe Beam Racing) Excellent platform due to instantaneous pixel response and perfect blacks. ABL interaction may slightly reduce large-area brightness during bright rolling bands. 240 Hz+ strongly recommended. Works effectively on high-refresh panels. No ABL interaction, but elevated black floor reduces perceived phosphor fade depth. Motion clarity depends on panel response and overdrive tuning.
BFI/Rolling Scanline (Non-Temporal) Very clear due to fast response, but brightness loss compounds ABL limitations. Brightness reduction significant; motion clarity dependent on strobe implementation and panel speed.
Viewing Angle Stability Excellent viewing angles; minimal gamma or color shift preserves mask contrast across the screen. IPS: good. TN: significant gamma shift. VA: moderate shift. Off-axis viewing may distort mask contrast perception.
Near-Black Detail Stability Very deep blacks; some panels may show near-black dithering instability or slight luminance flashing in extremely dark content. LCD panels generally maintain stable low-level luminance but with elevated black floor.
Burn-In/Image Retention Risk Static mask patterns, scanlines, and retro HUD elements may increase long-term burn-in risk with extended high-brightness use. No permanent image retention risk from static shader elements.
Subpixel Text/UI Rendering Non-RGB stripe layouts may introduce minor chromatic fringing in fine emulator UI text. RGB stripe layout maintains predictable subpixel rendering behavior.

Note: When using OLED panels, configure the shader for the panel's subpixel layout (e.g., RGB for QD-OLED, WBGR/WRGB for WOLED) to minimize chromatic artifacts.

Hardware scalers

[edit | edit source]
Main article: FPGA
Main article: MiSTer
  • RetroTINK 4K: It has direct hardware integration of the 2024–2025 electron beam/raster simulation (via firmware updates adding "CRT Beam" blending mode in BFI, with adjustable phosphor glow and beam steepness). It also features highly refined spatial effects like energy-conserving scanlines, spatial redistribution masks, and high-TVL phosphor emulation, pushing hardware-based CRT looks closer to top-tier software shaders.
  • PixelFX Morph 4K: As a direct competitor to the RetroTINK 4K, it explicitly advertises "dynamic scanlines with CRT beam simulation" alongside high-resolution slot/shadowmask shaders, BFI, and HDR support. This makes it a prime example of broader hardware integration of temporal (beam) and spatial (mask/scanline) CRT effects outside of pure software/emulation pipelines.
  • RetroTINK 5X-Pro: While older (2021 release), it remains relevant with excellent built-in post-processing filters/presets simulating various CRT types (shadow mask, aperture grille, slot mask, PVM-style), scanlines, and gamma adjustments. It doesn't have the full electron beam simulation of the 4K models, but its filters are often praised as a benchmark for hardware CRT emulation and are still widely used.
  • MiSTerCast: MiSTer accessory/streaming device.
  • See http://scanlines.hazard-city.de/

Display-Level Temporal Technologies

[edit | edit source]

In parallel with software-based CRT beam and phosphor simulation, display manufacturers are beginning to reintroduce impulse-style motion behavior at the hardware level. A notable example is NVIDIA G-SYNC Pulsar (announced 2024), a next-generation variable-refresh strobing technology designed to improve motion clarity for low- and variable-framerate content on modern LCD and OLED panels.

Unlike traditional global black frame insertion (BFI), Pulsar employs content-adaptive, rolling strobe illumination synchronized with VRR, allowing impulse-style presentation without the severe flicker, brightness loss, or VRR incompatibility associated with earlier strobing modes (e.g., ULMB, DyAc). This makes it particularly relevant for retro and emulated content that runs at 60 Hz or other low, fixed framerates on high-refresh displays.

While G-SYNC Pulsar is not a CRT simulation—it does not model electron beam raster physics, per-pixel phosphor persistence, decay curves, scanline brightness redistribution, or mask structure—it addresses the same fundamental limitation of sample-and-hold displays: motion blur caused by long frame visibility. In this sense, Pulsar represents a hardware-level analogue to software-based temporal solutions such as the CRT Electron Beam Simulator.

Looking forward, technologies like Pulsar are expected to complement, rather than replace, advanced CRT shaders: hardware impulsing can provide a cleaner temporal foundation, while software shaders supply spatial effects (scanlines, masks), phosphor behavior, color handling, and signal artifacts. Combined with 240–480 Hz displays, OLED pixel response, VRR, HDR, and beam/phosphor simulation, these developments further narrow the gap between modern flat panels and authentic CRT motion characteristics.

See also
NVIDIA G-SYNC Pulsar overview

AI-powered filters

[edit | edit source]
New Nvidia app features AI-powered filters
Nvidia FreeStyle
What are the requirements to enable RTX Dynamic Vibrance?

AI-powered filters are a new technology with the potential to further improve the emulation experience. These filters use machine learning to automatically enhance the visuals of content. Nvidia recently release their new Nvidia App[6] which comes with new AI-powered filters called "Nvidia FreeStyle". Notable examples include RTX Dynamic Vibrance, an AI-powered dynamic image enhancement that avoids color crashing and RTX HDR, an AI-powered inverse tone mapping filter. AI-powered filters offer exciting possibilities for the future of emulation. As the technology matures, expect even more advanced features and use cases to emerge, further improving the way we experience various content such as classic video games.

References

[edit | edit source]