Skip to content

Understanding CRT Displays for Retro Gmaings

This guide explores the critical aspects of synchronization and advanced techniques for enhancing CRT (Cathode Ray Tube) displays, with a focus on retro gaming. Understanding sync signals, different sync types, and methods to optimize visual quality can significantly improve the gaming experience on vintage displays.

Synchronization

Sync in CRT displays involves horizontal (HSync) and vertical (VSync) signals that control the timing of the electron beam, directing it to draw images line by line and frame by frame. These signals ensure the beam starts each line and frame correctly, maintaining image stability and preventing visual distortions.

Sync Types

Separate Sync

Uses separate wires for horizontal and vertical synchronization. When used in RGB (i.e., VGA) connections, five separate signals are sent: Red, Green, Blue, Horizontal Sync, and Vertical Sync.

Composite Sync

Combines horizontal and vertical synchronization onto one wire. When used in RGB connections, only four separate signals are sent: Red, Green, Blue, and Composite Sync.

Sync-on-Green (SOG)

Combines composite sync with the green signal in RGB. Only three signals are sent: Red, Green with Sync, and Blue. This synchronization system is used in - among other applications - many systems by Silicon Graphics and Sun Microsystems through a DB13W3 connector.

Sync-on-Luminance

Similar to sync-on-green, but combines sync with the luminance signal (Y) of a color system such as YPbPr and S-Video. This is the synchronization system normally used in home theater systems.

Sync-on-Composite

The connector carries a standard composite video signal along with the RGB components, for use with devices that cannot process RGB signals. For devices that do understand RGB, the sync component of that composite signal is used along with the color information from the RGB lines. This arrangement is found in the SCART connector in common use in Europe and some other PAL/SECAM areas.

Sync from VGA to BNC Cable with CRT Emudriver

Let's set a few things before starting to talk about this topic. We are talking about Sony PVM, more specifically model PVM-14M1J[1] There will be slight differences between certain PVM models, but most of the information will stay true for most models.

  1. Do not connect H-sync and V-sync outputs together with a T-connector!
  2. This model requires negative-going composite sync, and positive-going sync will probably not work.
  3. Setting the Composite Sync Option to true might be needed.

In general, there is no difference between PVMs and "regular" CRT monitors that use composite sync; both take negative-going sync. Monitors that use separate horizontal and vertical sync, however, do sometimes require specific sync polarities to activate certain video modes.

The PVM-14M1J is probably a pretty standard item in the lineup of Sony PVMs. I can't find any documentation on it specifically, but the 'M' indicates that it's a late '90s model (after '50', before early 2000s 'L'), the 1 indicates a particular variant of the model (often lower or higher TVL resolution), and the 'J' suffix indicates the country in which it was sold (Japan).

In particular, the PVM-14M2U will be very similar to this model: it's a US model within the same screen size and series.

On page 4 of that brochure, they give a specification for the sync input (applicable to all models in that brochure): 4Vp-p ±6dB, negative.

Note that this is pretty standard; any PVM that can take a CVBS ("composite") input must understand negative sync, because that's what CVBS signals use.

DO NOT JOIN H & V SYNC WITH A T-CONNECTOR. This drives one of your source outputs with another output, and it can damage the outputs or other parts of the source device.

This also will produce a sync that is so out of spec it may not work (though that depends on the display's sync recovery). This method of combining sync will drop all horizontal sync signals during the vertical sync interval, whereas in composite sync the horizontal sync signals suppress the vertical sync.

If you need to combine H/V sync in hardware, you need an active circuit to do this. A reasonable (if imperfect) hack is to use an XOR gate, but that's a topic for another day.

CRT Emudriver Composite Sync Option

The CRT Emudriver's composite sync[2] function is used to combine horizontal and vertical sync signals into a single composite sync signal. This is particularly useful when dealing with CRT monitors or televisions that only support a composite sync input, rather than separate sync signals.

Refrences
  1. Component video, https://en.wikipedia.org/wiki/Component_video
  2. CJS answer to my question at retrocomputing Link

Understanding Super Resolutions and Clock Speeds in CRT Displays

Retro gaming and computing enthusiasts often explore various techniques to enhance the visual quality of games and applications on CRT (Cathode Ray Tube) displays. Two key concepts in this endeavor are "super resolutions" and "clock speeds." This document aims to shed light on these terms and their significance in the retro gaming community.

Super Resolutions

Super resolutions refer to the practice of sending a higher resolution signal to a CRT display than what the content is originally intended to be viewed in. This method is particularly popular in retro gaming to improve the visual quality of games designed for lower resolutions.

How Super Resolutions Work

  • Higher Resolution Signal: A signal with a higher pixel count is sent to the CRT display. For example, instead of 320x240, a 2560x240 signal is used.
  • CRT Processing: CRT displays draw images with an electron beam, which "paints" the picture line by line. Unlike digital displays, CRTs don't have fixed pixels, allowing them to display a range of resolutions without native resolution constraints.
  • Visual Improvement: By sending a super resolution signal, the CRT's analog nature blends or omits the extra information. This can result in sharper images, better color reproduction, and a closer approximation to the original look of vintage games.

Clock Speeds

In the context of CRT displays and retro gaming, clock speed refers to the rate at which the display's electron beam is controlled to refresh the screen. This rate influences how accurately the CRT can display high-resolution signals.

Importance of Clock Speed

  • Electron Beam Control: The "clock speed" affects how quickly and precisely the electron beam can be steered across the CRT screen. This precision is crucial for displaying higher resolutions accurately.
  • Effect on Super Resolutions: The inherent limitations of a CRT's clock speed mean that there's a cap on how finely the display can render the details of a super resolution signal. Despite these limitations, creative use of super resolutions can still significantly enhance image quality.
  • Retro Gaming Application: Exploiting the clock speed and super resolutions allows retro gaming enthusiasts to experience games with improved clarity and authenticity on original hardware.

Conclusion

Super resolutions and clock speeds are key to understanding how retro gaming enthusiasts manipulate CRT displays to achieve the best possible visual experience. By leveraging the analog characteristics of CRT technology, it's possible to display vintage games and applications in ways that closely mimic their original appearance, often surpassing what's achievable with modern digital displays.

Remember, the specific outcomes of using super resolutions can vary based on the CRT display's capabilities, the signal being sent, and the original content's requirements. The exploration of these techniques is a testament to the ingenuity and passion of the retro gaming and computing communities.

Indepth Guide to Emulation on a CRT

Refrences
  1. What are Super Resulutions retrocomputinghttps://cdcruze.com/2019/03/retroarch-and-crt-emudriver-setup-guide/http://geedorah.com/eiusdemmodi/forum/viewtopic.php?pid=1009#p1009http://geedorah.com/eiusdemmodi/forum/viewtopic.php?pid=1052#p1052https://bytesnbits.co.uk/tampermonkey-emuparadise-download-fix/https://gist.github.com/infval/c69b479ff0bd590f2dd7e1975fe2fcadhttps://addons.mozilla.org/en-US/firefox/addon/tampermonkey/https://www.emuparadise.me/https://retrocomputing.stackexchange.com/questions/29902/understanding-the-need-for-positive-sync-polarities-in-sony-pvm-monitors?noredirect=1#comment106167_29902

Connecting The VGA Cable to The CRT

Here is a simple way to create a VGA to RGBHV cable. See Sync page for more details about outputing the correct sync for CRT's witout H(sync) & V(sync) inputs (only one SYNC input, usually PVM's).

VGA Pinout

PinWire ColorInput
01RedRed Channel
02GreenGreen Channel
03BlueBlue Channel
04N/AN/A
05Dark GreenGround
06Dark GreenRed Return (GND)
07N/AGreen Return (GND)
08N/ABlue Return (GND)
09PurpleDCC + 5V
10BlackSync Return
11Dark GreenGround
12OrangeMonitor ID 1
13GrayHorizontal Sync
14WhiteVertical Sync
15YellowMonitor ID 3

NOTE: the colors on your cable may be diffrent but the pins are the same for every calbe.

Getting Working MAMA Roms

  • Vimm's Lair, This vault contains every game ever released for twenty-seven classic systems.
  • Emuparadise, Thousands of ROMs for various systems available for download. It is mostly used for MAME and requires a browser extension to function properly.

Emuparadise Workaround

Download Tampermonkey (by Jan Biniok), create a new script, and paste the following:

js
// ==UserScript==
// @name         EmuParadise Download Workaround
// @version      1.2.3
// @description  Replaces the download button link with a working one
// @author       infval (Eptun)
// @match        https://www.emuparadise.me/*/*/*
// @grant        none
// ==/UserScript==

// https://www.reddit.com/r/Piracy/comments/968sm6/a_script_for_easy_downloading_of_emuparadise_roms/
(function() {
  'use strict';

  // Others: 50.7.189.186
  const ipDownload = "50.7.92.186";
  const urlFirstPart = "http://" + ipDownload + "/happyUUKAm8913lJJnckLiePutyNak/";

  var platform = document.URL.split("/")[3];

  if (platform == "Sega_Dreamcast_ISOs") {
    let downs = document.querySelectorAll("p > a[title^=Download]");
    for (let i = 0; i < downs.length; i++) {
      let findex = 9; // "Download X"
      let lindex = downs[i].title.lastIndexOf(" ISO");
      downs[i].href = urlFirstPart + "Dreamcast/" + downs[i].title.slice(findex, lindex);
    }
  }
  // match https://www.emuparadise.me/magazine-comic-guide-scans/%NAME%/%ID%
  else if (platform == "magazine-comic-guide-scans") {
    const webArchiveURL = "https://web.archive.org/web/2016/";

    let down = document.querySelectorAll("#content > p")[0];
    down.innerHTML = "Getting Download URL...";

    let req = new XMLHttpRequest();
    req.open('GET', webArchiveURL + document.URL, false);
    req.send(null);
    if (req.status == 200) {
      let lindex = req.responseText.indexOf("Size: ");
      let findex = req.responseText.lastIndexOf("http://", lindex);
      let urlLastPart = req.responseText.slice(findex, lindex).match(/\d+\.\d+\.\d+\.\d+\/(.*)"/)[1];
      urlLastPart = urlLastPart.replace(/ /g, "%20"); // encodeURI() changes #, e.g. Sonic - The Comic Issue No. 001 Scan
      down.innerHTML = "<a href=" + urlFirstPart + urlLastPart + ">Download</a>";
    }
    else {
      let info = document.querySelectorAll("#content > div[align=center]")[0];
      let filename = info.children[0].textContent.slice(0, -5); // "X Scan"
      let cat = {
           "Gaming Comics @ Emuparadise": "may/Comics/",
        "Gaming Magazines @ Emuparadise": "may/Mags/"
      }[info.children[1].textContent] || "";
      // URLs with # except The Adventures Of GamePro Issue
      down.innerHTML = "Error when getting URL: " + webArchiveURL + document.URL
        + "<div>Try "
        + "<a href=" + urlFirstPart + cat + encodeURIComponent(filename) + ".cbr" + ">cbr</a> or "
        + "<a href=" + urlFirstPart + cat + encodeURIComponent(filename) + ".rar" + ">rar</a>"
        + "</div>";
    }
  }
  else {
    let id = document.URL.split("/")[5];

    let downloadLink = document.getElementsByClassName("download-link")[0];
    let div = document.createElement("div");
    div.innerHTML = `<a target="_blank" href="/roms/get-download.php?gid=` + id
      + `&test=true" title="Download using the workaround script">Download using the workaround script</a>`;
    downloadLink.insertBefore(div, downloadLink.firstChild);
  }

})();

  1. PVM-14M2U ↩︎

  2. Composite Sync Support Added: In the updates listed for December 23, 2017 (CRT Emudriver 2.0 beta 12), it mentions that support for composite sync was added. This is significant as it means from this version onward, users could utilize composite sync, which simplifies the connection and configuration for monitors that require a single sync signal instead of separate horizontal and vertical syncs. Readme ↩︎