It tries to emulate a CRT all the way down to the electron beam and the individual red, green, and blue phosphors. It simulates the beam scanning across the screen, 240p and 480i raster modes, phosphor persistence, glow, bloom, convergence, composite-video artifacts, and curved glass.
It’s built natively using Swift and Metal and is hyper optimized for Apple Silicon, so it runs like butter. Video frames stay on the GPU, and the expensive CRT reconstruction only runs when a new video frame arrives.
You can choose between aperture grille, slot mask, and shadow mask phosphors. You can also switch between RGB, S-Video, NTSC, and PAL signals, along with consumer TV, Trinitron, and studio-monitor profiles.
Parts of the renderer are based on CRT-Guest-Advanced HD, which I adapted to native Metal and expanded with beam timing, individual phosphor masks, HDR output, direct video playback, and a bunch of Apple Silicon specific optimizations.
I’ve always found it odd that we have great CRT shaders for retro emulation but not for viewing old videos the way they were meant to be watched, and I’m really happy I managed to make this a reality.
Would love to get feedback, especially from people who know CRTs well. It’s 100% free and open source.
theandrewbailey•16h ago
JoAz111•15h ago