# Driving “Arcade CGA” monitor safely

I have some arcade machines which I build custom Linux PCs for. They all have 15khz monitors in them so I do some funky Linux stuff to output (what I think is) a correct signal to drive them.

This is the spec of the display:

                    Arcade CGA
640x240
Horizontal                Vertical

Scan Frequency: 15.725 KHz   Scan Frequency: 60.018 Hz
Scan Period: 63.6 µSec       Scan Period: 16.7 mSec
Active Video: 50.0 µSec      Active Video: 15.3 mSec
Video Delay: 11.9 µSec       Video Delay:  1.2 mSec
Sync Pulse: 4.7 µSec         Sync Pulse:  0.2 mSec
Resolution: 640              Resolution: 240
Clock Freq: 7.16 MHz


However, I run the game at 640x480. To do this I use a XFree86 Modeline, specifically this one:

Modeline "640x480" 12.324 640 648 706 784 480 483 489 524 interlace -Hsync -Vsync


If you're not familiar with modelines this is what the numbers mean, they translate to this:

Horizontal:
Width: 640
Sync start: 648
Sync end: 706
Sync total: 784

Vertical:
Height: 480
Sync start: 483
Sync end: 489
Sync total: 524

Pixel clock: 12.324MHz


Based on these numbers I can do some calculations to see what frequency the display is being driven at:

(12.324*1000000)/784 = 15719hz = 15.719kHz (horizontal refresh)
(12.324*1000000/(784*524) = 29.99Hz (vertical refresh)


Since this display needs to be run at 60Hz, I interlace the signal (interlace option in the modeline), which I understand effectively doubles the vertical refresh rate.

Based on the specs, does this output signal seem safe? Is there a better modeline I could use?

• Do you mean 'safe' as in 'not going to damage the monitor' or as in 'likely to produce a good display'? If the former, you're matching the refresh frequencies and I'm not aware of any other characteristic that could damage the monitor, but you might get an answer from someone more knowledgeable if you clarify this in your question. If the latter, this sounds like a Linux question not an electronics question? – nekomatic Sep 10 '14 at 13:44
• I meant 'safe' as in "won't make the chassis die". The other thing that gets me about the spec that I was given, is that the clock freq seems too low to drive a display at the given resolution. – Cameron Ball Sep 11 '14 at 1:00
• Arcade games very rarely used interlacing; they typically send 60 frames of 262 or 263 lines each. I wouldn't be surprised if some use 256 or 264 (slightly easier to generate, especially if the game needs an hsync/8 signal for anything). – supercat Oct 23 '14 at 20:16

This is basically a TV Video [SD] monitor. The first PCs used this 'resolution'. Treat it like composite video and you are good to go. NO, there is no better resolution possible

Interlacing actually halves the refresh rate. EG: 1st odd lines frame is 1/60 second, second even lines frame at 1/60 second; Complete frame is produced every 1/30 second. That's 30 Fps. Drop frame is common and is 29.97 Fps.

The most vulnerable part of a video monitor is the horizontal scan output driver. This drives the beam across the CRT and it is also used to generate the high voltage for the beam. There's a lot of power being put to work here. So, staying at the specified 15.7 kHz scan rate is going to keep your monitor happy.

Something that can burn out a monitor is losing the horizontal sync signal from the source. However, I've only observed this problem with genuine IBM monitors (and faithful clones). I saw a lot of other monitors get abused, and they all survived.

The 60 Hz vertical drive is a power circuit, too, but at a much lower frequency, it's a whole lot less likely to complain. The thing about the vertical frequency is that when you change it, the horizontal scan rate has to change with it, and so the problems show up in the horizontal circuits.

The video itself contains the highest frequencies of all, but the drive circuits for that are relatively low power, and all they do if overdriven is degrade the image.

• A well-designed monitor should generally have a horizontal circuit which is designed so that if the minimum horizontal period that can be endured continuously is Tmin and the maximum is Tmax, then any horizontal sync pulse which arrives within Tmin of the start of a sync will be ignored, and if/when Tmax has elapsed since the start of a sync, the monitor will pretend that it receives a pulse. Not all monitors do this, but those that do will be pretty much immune from damage due to an incorrect sync rate. – supercat Oct 23 '14 at 20:12