RGB2HDMI: an open source project on github that can deal with multiple video signals (from the early to late 80's mostly, sadly, no DOS VGA stuff) and send it to HDMI with lag below 1 frame (around a quarter frame iirc). It has tons of parameters to fine tune the stability and appearance of the signal. It can do both integer multiplication on your modern screen or soft/hard interpolation depeding on your preferences. It's a really well designed project.
project page: https://github.com/IanSB/RGBtoHDMI
I heard about it from Adrian Black when he put out his June 2021 video on implementing this on a Mac Classic:
There are faster, neater ways of doing this compared with what I ultimately chose, but I don't have ALL the equipment and ALL the know how. Still, I:
-got the gerbers (I used the 8/6 bit board + PC TTL extender so I went with a DB9 CGA/EGA style female connector on the extender board)
-ordered the PCBs from JLCPCB
-ordered the parts from mouser.ca including the Xilinx CPLD which is why this project works, the pi alone wouldn't be able to drive this fast enough - wasn't an exact match but was slightly better rated for temperature or something minor
-was extremely lucky to find a Pi Zero in a store in my province; overpriced, but better than nothing
Next step was to add a set of 4 wires directly on the crimp casing of the video wires that go directly on the analog board: BLK, WHT, VIO and GRY
I don't have millions of cabling options on hand, so I had to make do with a series of dupont connector wires (4 sets long of 4 of them to be able to fish them out the security hole, I'm ashamed to admit):
Gameplay footage:
After doing all this, bad news: the already slightly unstable video signal for my Classic has gotten noticeably worse. I can tamper this problem a bit by lowering the brightness of the CRT screen, but it's still there. The analog board will definitely need a recap in the near future.
A stark reminder that CRTs are on borrowed time in a long term perspective, and the RGB2HDMI is a super tool to have as a backup option!
Last edited: