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 TV’s in every mode, but it’s still an excellent choice and what I recommend to all retro-gaming videophiles!

OSSC Info:
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 (avoid low-quality knockoffs!):  https://videogameperfection.com/products/open-source-scan-converter/

Tools for Firmware Updates:
OSSC Firmware:  https://www.niksula.hut.fi/~mhiienka/ossc/fw/
2GB MicroSD:  https://amzn.to/2ENDuIU
SD Formatter:  https://www.sdcard.org/downloads/formatter/eula_windows/index.html
Win32 Disk Imager:  https://sourceforge.net/projects/win32diskimager/

 

Using the OSSC is as simple as plugging in your consoles, turning on the device and setting your input.  That’s it!  If you’d like to dial in a sharper image, you check the above video, which shows you how to update the firmware and load custom profiles for each console!  More information on all of this is below as well!

How The OSSC Works (short-short version):

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), it’s 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 an oscilloscope.  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.  The above video details all of this process and it’s much easier than it sounds!

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!  I truly think it’s worth the effort for all enthusiasts to spend time getting the setup right, as you will notice a difference in quality.  One trick:  Use the 240p Test Suite’s checkerboard pattern to set phase, just like described in the video capture section.

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.  Click on each for full-sized views, then scroll down for the explanation:

720p3x Example 1080p5x Example

As demonstrated in the video at the top of this page, 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 256×240 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.

So, if 1080p5x works so well, why didn’t I include this in the above “getting started” video?  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.  I didn’t want to add another five minutes to the video to discuss something that many people won’t be able to take advantage of, as I was afraid it would just end up confusing things.  My hope is that enthusiasts will read this page and find this trick, while causal gamers will probably just stick to running the OSSC in generic mode anyway.

 

At the moment, I’d call the OSSC a “mature” product that can definitely be relied on.  I’ll update this page as more enhancements and how-to guides are posted, but what’s here should be good enough to get you started!

 

Feel free to check out the front page for news articles keeping you in the loop of everything going on in the retro gaming scene!  If you’re here as part of the RGB Guide, please move along to getting your SCART RGB cable into your display.