A groundbreaking new shader has been unveiled, promising to dramatically enhance motion clarity on contemporary displays, effectively circumventing the inherent drawbacks commonly associated with traditional black-frame insertion (BFI) techniques. This innovative shader, a collaborative masterpiece from display technology expert Mark Rejhon of BlurBusters fame and renowned graphics engineer Timothy Lottes, creator of the original FXAA shader and the esteemed crt-lottes shaders, leverages RetroArch’s recently implemented “subframe” shader capabilities. This allows it to operate at multiples of the standard content framerate, delivering an unparalleled visual experience for enthusiasts of classic gaming and beyond.
The introduction of this shader marks a significant leap forward in display fidelity, particularly for the burgeoning retro gaming community that cherishes the authentic visual feel of bygone eras. Modern liquid crystal display (LCD) and organic light-emitting diode (OLED) technologies, while offering numerous advantages like high resolution, vibrant colors, and deep blacks, often struggle with displaying smooth motion, especially for content originally designed for cathode ray tube (CRT) displays. This phenomenon, known as the "sample-and-hold" effect, occurs because each frame is held static on the screen until the next frame is drawn, causing motion blur perceived by the human eye. CRTs, by contrast, rendered images with a rapidly moving electron beam, creating an "impulse" display characteristic that resulted in inherently clear motion, even at lower refresh rates.
The Quest for Authentic Motion: From CRTs to BFI
For decades, engineers and enthusiasts have sought to replicate the pristine motion clarity of CRTs on modern flat-panel displays. The underlying challenge lies in the fundamental difference between how these display technologies render images. CRTs drew pixels sequentially, scanning a beam across the screen, with each pixel illuminated for only a fleeting moment. This "impulse" display characteristic meant that the eye tracked a moving object more accurately across the screen, reducing perceived blur. Modern LCDs and OLEDs, however, illuminate all pixels simultaneously for the duration of a frame, holding the image steady until the next frame is displayed. This "sample-and-hold" mechanism, while excellent for static images and power efficiency, introduces motion blur when objects move rapidly across the screen, as the eye attempts to track an object that is actually jumping between static positions.
Early attempts to mitigate this sample-and-hold blur on flat panels often involved techniques like Black Frame Insertion (BFI). BFI works by inserting a black frame between each displayed image frame. This brief period of darkness effectively resets the eye’s perception, mimicking the quick illumination and decay of a CRT pixel. While BFI can indeed improve motion clarity, it comes with several significant trade-offs. The most prominent is a substantial reduction in perceived brightness, as the display is essentially turned off for half of the time. This can make games or videos appear dim and less vibrant. Furthermore, BFI can introduce noticeable flicker, which some users find distracting or even fatiguing, leading to eye strain. In certain panel types, particularly older LCDs, the rapid on-off cycling can also exacerbate image persistence or "burn-in" issues due to voltage accumulation, although this is less of a concern with newer technologies like OLEDs.
The development of the CRT Beam Racing shader directly addresses these long-standing issues, offering a superior alternative to BFI by leveraging cutting-edge rendering techniques within the RetroArch emulation framework. RetroArch, a versatile frontend for emulators, game engines, and media players, has continuously pushed the boundaries of what is possible in digital preservation and enhancement, and this shader is a testament to its ongoing innovation.
The Innovation: Subframe Shader Capabilities and Beam Racing Simulation
The core of this groundbreaking development lies in RetroArch’s recently added "subframe" shader capabilities. Traditionally, shaders in emulation platforms operate on a per-frame basis, processing an entire image before it’s displayed. The subframe feature, however, allows shaders to render at a rate that is a multiple of the content’s native framerate, effectively breaking down each standard frame into several sub-frames. This capability is crucial for simulating the precise, sequential drawing method of a CRT.

Mark Rejhon, a recognized authority on display motion clarity and founder of BlurBusters, a resource dedicated to high-refresh-rate technology, conceived the fundamental principles behind simulating CRT motion without the traditional BFI drawbacks. Timothy Lottes, an NVIDIA veteran known for his pioneering work on Fast Approximate Anti-Aliasing (FXAA) and highly regarded CRT simulation shaders (crt-lottes), then translated these concepts into a practical, high-performance shader. The original Shadertoy implementation, available at www.shadertoy.com/view/XfKfWd, served as the proof of concept for this sophisticated rendering technique.
The CRT Beam Racing shader meticulously simulates the physical process of an electron beam scanning across a CRT screen. Instead of simply turning the screen black, it dynamically adjusts pixel brightness and timing across these subframes to mimic the beam’s movement. For instance, if a game runs at 60 frames per second on a 120 Hz monitor, the shader can render each game frame across two subframes. In each subframe, a simulated "beam" of light sweeps across the screen, illuminating pixels sequentially and then dimming them, much like a real CRT. This creates a virtual "rolling raster line" effect that the eye tracks, effectively converting the sample-and-hold display into an impulse-like one, but without the harsh flicker or severe brightness reduction of BFI.
Key Advantages Over Conventional BFI
The CRT Beam Racing shader offers a multitude of significant advantages over conventional BFI, positioning it as a superior solution for motion clarity:
- Elimination of Flicker: Unlike BFI, which introduces a noticeable on-off flicker by inserting black frames, the beam racing shader achieves motion clarity through a continuous, though dynamically varied, illumination. This results in a much smoother and more comfortable viewing experience, significantly reducing eye strain and fatigue often associated with BFI.
- Minimal Brightness Reduction: While there is a slight inherent reduction in overall brightness due to the dynamic pixel illumination, it is far less drastic than the typical 50% or more brightness loss experienced with BFI. Users can fine-tune the brightness-to-motion-clarity trade-off via runtime parameters, allowing for a more balanced and visually appealing image.
- Reduced Image Persistence Risk: The rapid, full-screen on/off cycling of BFI can, in some older or more susceptible flat panels, contribute to image persistence or temporary burn-in by causing voltage accumulation. The beam racing shader avoids this by maintaining a more consistent, albeit dynamically shifting, illumination pattern, thereby mitigating this risk. This is particularly beneficial for LCD users.
- Enhanced Compatibility with Modern Displays: The shader is designed to work seamlessly with high-refresh-rate monitors (120 Hz, 180 Hz, 240 Hz, etc.), leveraging their speed to create a convincing CRT effect. It is also particularly effective on OLED panels, which are inherently immune to image persistence issues related to flickering, making them ideal canvases for this technology.
- Dynamic Customization: The shader includes robust runtime parameters that allow users to meticulously tune the visual output. Adjustments for gamma ensure a neutral image free from unusual dark lines, while sliders for brightness/motion clarity trade-off enable personalized preferences. Specific values are even recommended: approximately 0.5 for 120 Hz monitors (2 subframes) and 0.7 for 240 Hz monitors (4 subframes), offering a starting point for optimal configuration.
Implementation and User Configuration
To experience this revolutionary shader, users must ensure they are running RetroArch 1.20.0 or a more recent version (any nightly build will suffice), as previous versions lack the essential Shader Sub-frames feature. The implementation process within RetroArch is designed to be straightforward for users familiar with the platform’s shader system.
Step-by-Step Guide for High-Refresh-Rate Monitors (120 Hz or higher):
- Update RetroArch: Verify that your RetroArch installation is version 1.20.0 or newer. If not, download the latest stable release or a recent nightly build from the official Libretro website.
- Ensure High Refresh Rate: Configure your display to operate at its highest available refresh rate (e.g., 120 Hz, 144 Hz, 240 Hz) through your operating system’s display settings or graphics card control panel.
- Download Shaders: Update your RetroArch assets and shader pack. The CRT Beam Racing shader is typically included in the
shaders_slangrepository. - Load Content: Launch any game or content within RetroArch.
- Access Quick Menu: Open the RetroArch Quick Menu (usually F1 on keyboard, or a mapped controller button).
- Navigate to Shaders: Go to
Shaders->Shader Presets. - Apply the Shader:
- You can navigate to
shaders_slang/presets/crt-beam-simulatorand select one of the pre-made presets (e.g.,crt-beamracing.slangp). - Alternatively, you can load it as the first pass in a custom shader chain:
- Set
Shader Passesto a value greater than 0. - Select
Shader Pass 0and thenLoad. - Navigate to
shaders_slang/crt/crt-beamracing.slangp(orcrt-beamracing-fast.slangpfor a lighter version) and select it. - If combining with other shaders (e.g., a CRT shader), ensure
crt-beamracingis the first shader in the chain (Shader Pass 0).
- Set
- You can navigate to
- Save Preset (Optional): Once configured, select
Save->Save Shader Preset Asto easily recall your settings for future use.
The shader is highly flexible and can be combined with other shader presets, such as your favorite CRT shaders, by simply prepending it to existing configurations. This modularity allows users to achieve a truly personalized visual aesthetic while benefiting from enhanced motion clarity.
Display-Specific Optimizations and Troubleshooting
Not all flat-panel monitors face the same risks regarding image persistence or exhibit identical visual characteristics. OLED panels, for example, are largely unaffected by the rapid on/off flickering that can cause issues in some LCDs, making them an excellent choice for this shader. Displays running at odd integer multiples of 60 Hz, such as 180 Hz, also offer unique compatibility advantages. For these specific displays, the shader includes a runtime parameter to disable the "cycle timing offset," which prevents the simulated raster line from rolling up the screen in an unintended manner. Additionally, another parameter allows users to adjust the precise position of this virtual raster line, enabling them to place it in the least obtrusive or most aesthetically pleasing spot for their individual setup.

Despite the shader’s robust design, technical challenges can arise. For users encountering issues, Mr. Rejhon has established a comprehensive FAQ and troubleshooting guide on his GitHub repository, accessible at https://github.com/blurbusters/crt-beam-simulator/issues/4. This resource provides detailed insights into common problems and their solutions. Furthermore, the broader Libretro community offers extensive support through its official Discord channels, Reddit forums, and dedicated Libretro forums, where experienced users and developers can provide assistance. A highly informative video from a display technologies expert, available at https://www.youtube.com/watch?v=PmXmr4Yiz_0, also provides a valuable visual demonstration and further explanation of the shader’s capabilities.
Broader Impact and Implications
The release of the CRT Beam Racing shader represents more than just a new visual effect; it signifies a pivotal moment in the ongoing pursuit of display perfection and the faithful preservation of retro gaming aesthetics.
For the Emulation Community: This shader significantly elevates the RetroArch experience, offering a level of motion clarity that was previously unattainable without substantial compromises. It reinforces RetroArch’s position as a leading innovator in the emulation space, continually pushing the boundaries of what is possible through software-driven enhancements. The collaboration between independent experts like Mark Rejhon and Timothy Lottes with the open-source Libretro team underscores the power of community-driven development in achieving high-fidelity results.
For Gaming Enthusiasts: Beyond retro gaming, the principles behind this shader could influence future display technologies and software implementations for modern games. The demand for clearer motion in fast-paced competitive gaming is constant, and techniques that minimize blur without sacrificing brightness or introducing flicker are invaluable. This shader provides a blueprint for achieving such clarity through intelligent subframe rendering.
For Display Technology: The success of this software-based approach may also prompt display manufacturers to consider integrating similar "impulse mode" capabilities directly into their hardware, optimized for various content types. While hardware solutions typically offer the highest fidelity, sophisticated software shaders like this demonstrate the potential for significant improvements through clever algorithm design, particularly on high-refresh-rate panels. The ability to precisely tune the balance between brightness and motion clarity, and to customize the visual characteristics of the simulated beam, offers an unprecedented level of control to the end-user, moving beyond one-size-fits-all display modes.
In conclusion, the CRT Beam Racing shader is a testament to ingenious engineering and a deep understanding of human visual perception and display technology. By skillfully replicating the impulse-driven nature of CRT displays through RetroArch’s subframe capabilities, Mark Rejhon and Timothy Lottes have delivered a transformative tool that finally allows modern flat panels to achieve authentic, flicker-free motion clarity. This innovation not only enriches the retro gaming experience but also sets a new standard for how we perceive and interact with moving images on our high-tech screens, bridging the gap between nostalgic aesthetics and cutting-edge display performance.
