The quest for pristine motion clarity in digital displays has reached a significant milestone with the release of RetroArch 1.20.0, which introduces a groundbreaking shader developed through a collaboration between Mark Rejhon of BlurBusters and renowned graphics programmer Timothy Lottes, creator of the original FXAA and crt-lottes shaders. Leveraging RetroArch’s newly implemented "subframe" shader capabilities, this innovative tool operates at multiples of standard content framerates, offering a sophisticated alternative to traditional Black-Frame Insertion (BFI) techniques.
The software architecture behind this development addresses long-standing compromises in display technology, specifically targeting the motion blur inherent in sample-and-hold displays like modern LCDs and OLEDs. By executing multiple render passes within a single frame interval, the shader simulates the physical behavior of cathode-ray tube (CRT) beam scanning without imposing the severe luminance penalties and visual artifacts typically associated with conventional BFI implementations.
Main Facts and Technical Overview
The newly integrated shader, formally titled the CRT beam simulator and available in the shaders_slang/presets/crt-beam-simulator directory, represents a convergence of display hardware physics and software-based post-processing. Its original Shadertoy implementation laid the groundwork for a Slang-format adaptation optimized for Libretro-compliant frontends.
To utilize the feature, users must operate RetroArch version 1.20.0 or a contemporary nightly build, as previous iterations lack the foundational Shader Sub-frames architecture required to process frame multiples. The system is engineered primarily for high-refresh-rate monitors operating at 120 Hz, 240 Hz, or higher. When deployed, the shader processes intermediate sub-frames, effectively breaking up the continuous sample-and-hold persistence that causes motion smearing on fast-moving objects.
Operating parameters within the shader allow for granular calibration based on hardware specifications. Users can adjust gamma curves to achieve a neutral image profile, mitigating dark-line artifacts while balancing peak luminance against motion resolution. According to configuration guidelines, a subframe multiplier setting of approximately 0.5 yields optimal results on 120 Hz displays utilizing two subframes, whereas a value closer to 0.7 is recommended for 240 Hz panels operating on four subframes. Furthermore, the architecture supports preset stacking, enabling users to prepend the beam simulation shader to existing CRT filter presets seamlessly.
Background Context: The Persistence Problem in Modern Displays
The introduction of the subframe shader arrives against a backdrop of decades-long evolution in display technology. When the consumer electronics industry transitioned en masse from CRT monitors to flat-panel liquid-crystal displays (LCDs) and later organic light-emitting diodes (OLEDs), viewers gained significant advantages in terms of physical depth, power efficiency, and static resolution. However, this transition introduced a severe side effect known as sample-and-hold blur.
Unlike CRTs, where phosphors are illuminated momentarily by a sweeping electron beam before immediately fading, flat-panel displays maintain a static image for the entire duration of a refresh cycle. While this eliminates flicker, the human eye tracks moving objects across a stationary field of light, resulting in perceptual motion blur on the retina. To combat this, manufacturers and software developers experimented with Black-Frame Insertion, a technique that periodically blanks the screen to reset retinal persistence.

Traditional BFI implementations, however, suffer from notable drawbacks, including severe drops in perceived brightness, visible flicker at lower refresh rates, and compatibility issues with variable refresh rate (VRR) technologies. The collaboration between BlurBusters—an organization dedicated to display motion research—and Timothy Lottes sought to bypass these hardware-level limitations through intelligent software subframe manipulation within emulation environments.
Chronology of Development and Implementation
The genesis of the CRT beam simulator can be traced through public repositories and community development logs leading up to the 1.20.0 release of RetroArch.
Initial prototyping began as an experimental Shadertoy project, hosted publicly at www.shadertoy.com/view/XfKfWd, where graphic developers tested the viability of rendering simulated raster sweeps at fractional frame intervals. As the computational capacity of consumer graphics hardware scaled—particularly with the widespread adoption of high-refresh-rate gaming monitors exceeding 144 Hz—the feasibility of running multiple shader passes per frame became viable.
The Libretro development team subsequently introduced the "Shader Sub-frames" feature into the core RetroArch pipeline during late 2024 and early 2025. This addition provided the necessary API hooks for shaders to access and manipulate sub-frame timing data. Capitalizing on these architectural updates, Rejhon and Lottes adapted their Shadertoy prototype into the Slang shader language native to RetroArch.
With the launch of RetroArch 1.20.0 in early 2025, the shader transitioned from experimental status to a fully integrated feature set, accompanied by pre-made preset configurations, runtime parameter controls, and comprehensive documentation hosted via GitHub repositories and community support channels.
Supporting Data and Hardware Compatibility
Implementing high-frequency subframe shaders requires specific hardware parameters to function correctly without introducing secondary visual anomalies. Displays must support high refresh rates—ideally 120 Hz or greater—to accommodate the computational division of frames into subframes (e.g., two subframes at 120 Hz or four subframes at 240 Hz).
A critical engineering consideration addressed in the shader’s design is the phenomenon of voltage accumulation and image persistence. Certain flat-panel displays running at specific refresh rates risk long-term degradation or visual unevenness when subjected to constant raster-line flickering. OLED panels, due to their distinct organic emissive properties, are inherently immune to this specific form of voltage-induced burn-in accumulation. Similarly, monitors operating at non-integer multiples of 60 Hz—such as 180 Hz—can experience rolling artifacts if synchronization is mismanaged.
To mitigate these hardware-specific variables, the developers incorporated dedicated runtime parameters:

- Cycle Timing Offset Disablement: Users running on OLEDs or non-standard refresh rates can disable cycle timing to halt the simulated raster line from rolling vertically across the screen.
- Raster Line Positioning: Operators can manually reposition the simulated beam scan line to the least obtrusive vertical coordinate for their specific display configuration.
- Gamma and Luminance Sliders: Fine-tuning controls allow users to calibrate black levels and prevent unwanted scanline intensity banding.
Official Responses and Community Engagement
The release of the CRT beam simulator has drawn significant attention from both retro gaming enthusiasts and display technology analysts. Mark Rejhon, speaking through BlurBusters documentation channels, emphasized that the shader is designed to bridge the gap between vintage display motion characteristics and modern high-fidelity flat panels without requiring specialized, expensive hardware modifications.
To support the deployment of the shader, the development team established robust troubleshooting frameworks. An active FAQ and issue-tracking repository hosted on GitHub (https://github.com/blurbusters/crt-beam-simulator/issues/4) provides direct technical support for edge-case compatibility problems. Furthermore, community support channels across the Libretro forums, Reddit, and Discord have been mobilized to assist users with preset configurations and hardware calibration.
Prominent figures within the display analysis community have also evaluated the technology. Educational demonstrations, including detailed technical breakdowns published on video platforms such as YouTube, have highlighted the shader’s ability to replicate the motion clarity of professional-grade Sony BVM/PVM CRT monitors on mainstream consumer OLED displays.
Broader Impact and Implications for Retro Gaming
The integration of the BlurBusters CRT beam simulator into RetroArch 1.20.0 marks a maturation point for software-based display emulation. For decades, emulation software focused primarily on color accuracy, geometric distortion, and scanline overlays via static textures. While these methods successfully emulated the aesthetic appearance of classic arcade and console hardware, they failed to replicate the dynamic temporal response—the actual sensation of motion—experienced on original CRT displays.
By tackling temporal resolution alongside spatial resolution, the new shader alters the fidelity standard for emulation frontends. Users running classic content designed around 60Hz interlaced or progressive CRT timings can now experience motion cadence that mirrors original hardware, significantly reducing eye tracking blur during high-speed scrolling sequences in platformers, shoot-’em-ups, and fighting games.
From an industry perspective, the collaboration demonstrates the viability of leveraging open-source emulation platforms as testing grounds for advanced display algorithms. As consumer display technology continues to push toward higher refresh rates and faster pixel response times, software-level solutions developed by community-driven partnerships like Libretro and BlurBusters offer immediate, accessible enhancements that bypass the limitations of locked proprietary firmware.
Users encountering difficulties during setup are encouraged to consult the official documentation, verify their RetroArch build version, and utilize community support networks for troubleshooting guidance.
