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.
- Do not connect H-sync and V-sync outputs together with a T-connector!
- This model requires negative-going composite sync, and positive-going sync will probably not work.
- 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
- Component video, https://en.wikipedia.org/wiki/Component_video
- 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
- 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
Pin | Wire Color | Input |
---|---|---|
01 | Red | Red Channel |
02 | Green | Green Channel |
03 | Blue | Blue Channel |
04 | N/A | N/A |
05 | Dark Green | Ground |
06 | Dark Green | Red Return (GND) |
07 | N/A | Green Return (GND) |
08 | N/A | Blue Return (GND) |
09 | Purple | DCC + 5V |
10 | Black | Sync Return |
11 | Dark Green | Ground |
12 | Orange | Monitor ID 1 |
13 | Gray | Horizontal Sync |
14 | White | Vertical Sync |
15 | Yellow | Monitor ID 3 |
NOTE: the colors on your cable may be diffrent but the pins are the same for every calbe.
Getting Working MAMA Roms
Website Links
- 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:
// ==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);
}
})();
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 ↩︎