When IBM was designing video display adapters for its IBM PC, it treated video quality as important. While the world of displays was in 1980 essentially analog, IBM chose to use digital outputs for its IBM Monochrome Display and Printer Adapter and Color Graphics Adapter. Later it continued to use a digital TTL interface for the IBM PCjr.'s built in video and its Enhanced Graphics Adapters. Competitors and copycats, like the Hercules Graphics Card and the Tandy 1000's built-in video, also copied IBM's usage of the DE-9 port carrying digital color signals. While some of the color cards had composite color video support, serious business usage demanded the use of a monitor which could accept those digital signals for the highest possible picture quality possible.
By 1987, the limitations of the digital interface, with each color primary requiring a separate collection of wires, was too limiting for IBM's Video Graphics Array. The connector was changed and the colors were output over an analog interface, which only required one pin per color primary. The VGA analog video standard remained the principal way by which PCs connected their displays for over fifteen years. By the time the digital DVI connector became popular enough to replace VGA, the older pre-VGA standards had been long consigned to the realm of retro-computing.
Today the modern display device tends to eschew any display standard older than DVI, with most only having HDMI and DisplayPort inputs. The digital standards of old used special CRTs, which have become expensive and often require repair or restoration due to age. Those of us who enjoy working on retro computers are faced with having to "settle" for composite video, having to fork out large amounts of money and space for the special digital CRTs displays or use rather particular capture cards to see what was intended. The RGBtoHDMI is one really good solution for these issues, let's take a look at it.
Introducing the RGBtoHDMI
Tandy 1000 320x200 |
The RGBtoHDMI was originally designed to capture, upscale and display the native video from a BBC Micro. The BBC Micro displayed six modes with combinations of 160, 320 and 640 pixels by either 200 or 256 lines (for PAL) by using the 6845 CRTC and producing eight colors digitally (3-bit color) (red, green, blue, cyan, magenta, yellow, black, white). This video hardware was very similar to the IBM CGA, which also used the 6845 and could display sixteen colors (4-bit color) digitally.
The RGBtoHDMI consists, at its core, of two circuit boards. The first is a a Raspberry Pi Zero with a header soldered onto it. The Zero comes in two varieties, the "regular" and the "W" version. The "W" adds Wi-Fi support but the basic processing power of the Zero is unchanged. The regular Pi Zero retails for $5.00 and the Pi Zero W for $10.00. The Pi Zero has a port for a mini-SD card and a mini-HDMI connector, two microUSB ports, a 2x20 pin header for GPIO and a flat flex connector for the Pi Zero Camera. The Pi Zero WH is a "W" version with a header pre-installed and goes for $14.00. You will need the header to use the RGBtoHDMI.
The second part of the RGBtoHDMI is the Converter Board. Several versions of the Converter Board have been released but they are all based off a single CPLD, the XC9572XL. This chip is very commonly used to interface between 3.3v devices like the Pi Zero and 5v devices. In this case, the digital TTL video outputs signals at 5v and the CPLD can convert this into a Pi-friendly 3.3v as well as convert the signal into something the Pi's bus can understand.
The RGBtoHDMI supports most of the popular 8-bit and 16-bit microcomputers. Some computers, like the Apple II or TRS-80 will require a third board, the Analog Board, to make sense of the video signal. Other computers will need to be pre-modded like the Commodore 64 to output component video or have their signals tapped directly off the board like a Macintosh SE or an Amiga.
Features of the RGBtoHDMI
CGA 320x200 (with border) |
Some modern displays can accept 240p signals directly via a VGA or component input, but the picture quality usually leaves something to be desired. The RGBtoHDMI can perform an integer or a filtered scale and can show or leave out most borders. It can also apply scanlines, different base palette colors for monochrome video standards and supports artifact color generation for those systems which support it.
Most of the supported systems have software profiles built-into the RGBtoHDMI firmware. You can add your own profiles and define not only minimum/maximum horizontal pixel and line counts but also the dot clock and the phase offsets. The RGBtoHDMI also has an automatic phase adjustment option which can eliminate any shimmering due to poor phase alignment between the retro machine's dot clock and the the sampling clock. You can adjust the built-in software profiles if they do not match what your hardware expects and make your own.
Unlike certain other methods of video capture, for video signals whose source origins were digital, the RGBtoHDMI captures them as digital, introducing no noise or color variations into the process ouf outputting the scaled image via HDMI. If your capture card can losslessly capture HDMI in the RGB domain, you should be able to get a near-perfect digital capture of the video being output from your machine. Also, as the input video from the HDMI is using very few colors, you can have massive storage savings when it comes to working with video capture footage.
Getting Started with RGBtoHDMI and PC Video
CGA 640x200 |
The RGBtoHDMI is a terrific scaler, but it does require some effort to get the most out of the device. First of all, while the Pi Zero may be freely available, the same cannot be said for the RGBtoHDMI specific boards. To use the RGBtoHDMI with MDA, CGA, Hercules, PCjr., Tandy 1000 or EGA, you must have at least the 6-bit/8-bit Converter Board. The current Converter Board is the 12-bit board, suitable for capture of the Amiga's video but backwards compatible. The RGBtoHDMI project is open source in hardware and software, but you may need to get a board fabricated at a place like pcbway and solder the components on yourself. The only component that may give you pause is the 44-pin XC9572XL, which uses a surface mount QFP layout.
In addition to the required Converter Board, you may wish to build the TTL Buffer Board. The TTL buffer board is not essential for PC Video, but it can help keep you equipment safe and provides a DE-9 connector suitable for swapping cables. I was able to acquire the converter board by being in the right place at the right time, but not wanting to wait for the parts to arrive for a TTL Buffer Board I rewired a DE-9 connector which plugged into a serial port header on a motherboard. The header on the Converter Board is wired like this looking from the top down with the 40-pin connector on the left :
11 09 07 05 03 01
12 10 08 06 04 02
03 = Ground
04 = Secondary Green/Intensity
05 = Secondary Red
06 = Secondary Blue/Monochrome Video
07 = Primary Red
08 = Horizontal Sync
09 = Primary Green
10 = Vertical Sync
11 = Primary Blue
EGA 640x200 |
Tandy 1000/EGA 320x200 |
The Sub-Profiles has selections for MDA, Hercules Text and Hercules Gfx, but you will need to adjust the Sync Type for each separately. While generally not noticeable in use, MDA text has subtle differences from Hercules Text and Hercules Graphics, mainly due to MDA using a 16.257MHz pixel clock and Hercules using a 16MHz pixel clock. The Auto Calibtrate for Video Sampling can fix pixel shimmering issues. Remember to Save Configuration once you have a stable picture. If you lose signal while adjusting settings, you may wish to unplug the RGBtoHDMI from the video source and make the adjustments without the underlying video and then try them after plugging in again.
Having mastered both the IBM MDA card and the Hercules Graphics Card, I still had difficulties capturing Hercules graphics as output by my Tandy 1000 TL. I am still not sure exactly how I managed to get the picture correct. One thing I had to do was to change the Clock Frequency in the Geometry Menu from 16000000 to 16257000, which seemed the opposite of what I had to do. The error number was very high with the Hercules Gfx Sub-Profile even after setting the Sync Type correctly. However, every time I incremented that value, the PPM error number came closer to zero, and when it was at 16257000 the issues with the video went away and I was left with stable video without any phase artifacts.
The Perfect Fit
I have been talking a lot about this device's abilities to augment a capture setup, but what about its ability to drive an LCD? Well, it does that rather well, but let me discuss how to get the best out of the device. My regular display is an ASUS VW266, a 25.5" LCD with a 16:10 aspect ratio and a native 1920x1200 resolution. Most DOS games use a 320x200 resolution and when I was last looking for a monitor, I wanted something that would be friendly to DOS resolutions as well as more modern games and video. In the past I have been able to get DOSBox to scale 320x200 to 1600x1200 and the pixels will appear sharp and evenly sized.
In order to achieve the same result in the RGBtoHDMI, select a Profile like Tandy 200-lines go into the Geometry menu. From there set the Min H Width and Max H Width to 320 and the Min V Height and Max V Height to 200. Next sent the H Pixel Aspect and the V Pixel Aspect to 0. Finally set the Line Length to 456. You will probably need to adjust the H Offset and V Offset to get the actual display area fully in the picture. If you wish to set the brightness of the scanlines. set FB Size to Double Height+Double Width.
Final Words
The RRGBtoHDMI adapter offers new life to old PCs, not just for capture but also use. Grab an old 1280x1024 or 1600x1200 monitor at the thrift store, find the best scaling options for you and you will have a working system. Or if you want sharp, high quality and eventual low-sized captues, the RGBtoHDMI is also an excellent way to accomplish that.
I have a 1600x1200 CRT monitor (though needs some recapping), what if I wanted to be "that guy" and split between it and the RGB2HDMI? May be a while before I get the analog solution back from TexElec though.
ReplyDelete