AV:Open Source Scan Converter (OSSC)

The Open Source Scan Converter is a zero lag upscaler. At the moment, it is by far the sharpest way to play your analog consoles via HDMI, offering tons of options, 2x 480p (960p) and up to 5x 240p (1080p). It's only shortcoming is it's not compatible with all TVs in every mode, but it's still an excellent choice.

OSSC Info

 * Announced: 2014
 * Released: 2016
 * Inputs: SCART, Component and VGA.
 * Input Resolutions: 240p, 480i and 480p are supported across all inputs.
 * Supported Signals All inputs support RGBs, YPbPr and RGsB. VGA also supports RGBHV.
 * Link to purchase from official distributor: https://videogameperfection.com/products/open-source-scan-converter/
 * OSSC Firmware: http://www.infocult.com/m/ossc/fw/

How The OSSC Works
Using the OSSC is as simple as plugging in your consoles, turning on the device and setting your input. The OSSC is able to achieve "zero lag" scaling, by not buffering video at all. Instead, it simply multiplies the signal that it receives by 2-5 times the original size. When you first power on a brand new OSSC (or flash the firmware), its default settings are a good place to start and this is generally referred to as "generic mode". Each console outputs a very unique resolution though and many consoles have multiple unique signals. If you'd like to scale it in a way that's sharper, you'll need to multiply that exact signal to a round number. The OSSC has the ability to do this, but you'll need to set the options manually. Also, there's something called "phase" that's different on every individual console + cable scenario that needs to be manually set. Think of this is tuning in a radio station on an old radio to lock onto the strongest signal. Most importantly though, once you've dialed in all the correct settings, you can save them to one of 15 profile slots, which now means changing consoles is simply a menu setting away!

How to get the correct information to feed the OSSC for each console
The be honest, this is incredibly tricky and involves using specialized test equipment. It's pretty much the same thing you'd go through when trying to do direct RGB capture with an analog capture card.

Lucky for us, there's people dedicated to providing this information who are constantly contributing the proper settings. Here's a few of my favorites:

OSSC Wiki: http://junkerhq.net/xrgb/index.php?title=Optimal\_timings FirebrandX Optical Timings:  http://www.firebrandx.com/osscprofiles.html R3 Wiki:  http://r3.fyi/

How to enter the custom information into the OSSC
There's a few ways you can accomplish this. First, you can manually enter the settings into the OSSC using the remote control. This is super tedious and there's better options - Only do this if there's no other choice in the moment.

Next, you can manually enter all of the information into a website created by paulb\_nl's that lets you save your settings to a file that can be flashed to a MicroSD card: http://pbnl.byethost7.com/ossc/profiles

By far, the easiest way to enter custom profiles is to download the ones FirebrandX has spent the past few years painstakingly tweaking, then make your own "profile pack". Basically, download the profile pack, pick your favorite 15, upload them to Paul's website, arrange them in whatever order you want and create a bin file from it. Then just flash an SD card with the bin and load it into the OSSC.

FirebrandX's videos do an excellent job explaining all the more in-depth, advanced methods, if you'd like to learn more about the whole process: https://youtu.be/48FOtofdyxE

Once you've gotten your OSSC set up with all the profiles you'll be using, getting a pixel-perfect scale is as easy as selecting the console name from the on-screen display.

A note about 256-wide resolutions on the OSSC
Here's a trick that gets 256-wide pixel profiles very close to the "perfect" CRT aspect ratio with optimal timings...but only in 1080p5x mode, not in lower resolutions. The pictures below are examples of two resolutions showing different aspect ratio modes and each have a version of the 8:7 square pixel capture stretched horizontally to 112.75% to match the original aspect ratio of a CRT.

After dialing in 256-width optimal timings, you'll end up with a picture that's much too narrow. You could set the aspect ratio to "generic 4:3" to stretch it, but you’ll end up with a look that’s pretty much the same as the generic mode. A better method with 256 resolution games could achieve both a sharp look and an aspect ratio that's close to what you'd see on a CRT, but only in higher resolutions. To accomplish this, load the 256 profile, then go back into the output menu. Then find the setting listed as 256x240 aspect. Then, change it from the default square pixel aspect ratio (8:7 for SNES) and set that to 4:3.

As you can see in the above pictures, in 720p output (3x), you'll end up with an aspect ratio that's much too wide and the narrow 8:7 is actually closer to what you'd see on a CRT. In 1080p 5x modes, changing that setting to 4:3 results in an aspect ratio that's a really close match to the original. The reason this occurs, is because in this mode the horizontal resolution is integer-scaled one more than the vertical. That's also the reason the sharpness is retained, as it's still a perfect integer scale, so you'll still get all the benefits of the optimal timings. The 6x horizontal by 5x vertical is really close, but someday a 4K scaler that can do 8x horizontal by 7x vertical would actually result in a perfect aspect ratio. Unfortunately, 1080p5x appears to be the least compatible of the OSSC's output modes, with many displays not able to interpret the signal at all, especially from the SNES.