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 640×480. 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?
Best Answer
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.