Difference between revisions of "OSSC"
(85 intermediate revisions by 8 users not shown) | |||
Line 1: | Line 1: | ||
+ | [[File:Ossc-logo-small.png]] | ||
+ | [[File:Ossc-front-small-1.jpg|300px|thumb|right|OSSC front (v1.6 and earlier)]] | ||
+ | [[File:Ossc-back-small-1.jpg|300px|thumb|right|OSSC back (v1.6 and earlier)]] | ||
+ | [[File:Ossc_v1.7.jpg|300px|thumb|right|OSSC (v1.7)]] | ||
+ | |||
== Introduction == | == Introduction == | ||
− | + | The '''O'''pen '''S'''ource '''S'''can '''C'''onverter is a low-latency video digitizer and scan converter designed primarily for connecting retro video game consoles and home computers to modern displays. It converts analog RGB or component video signals into a digital format, and doubles (or triples) the scanlines of a single frame if necessary to generate a valid mode for digital TVs or monitors. | |
− | The board and firmware | + | The board and firmware originated as a homebrew project in 2015. The primary goal of the OSSC project was to create a scan converter with minimal latency and reasonable cost, which could also be assembled by hand. Output image quality and features have also been important targets as long as they didn't contradict with the project's primary goals. |
− | Due to interest in the | + | Due to interest in the retro gaming community, both DIY kits and pre-assembled boards were first released to the public during early 2016. The firmware of the system is open source (hence the name) and new features can be added as time goes on. |
− | If you're new to the | + | If you're new to the OSSC and scalers/processors in general, you may wish to start with the quick start guide [https://www.videogameperfection.com/support-files/ossc-quickstart.pdf here.] |
+ | |||
+ | There's now also an excellent getting started video tutorial, kindly created by RetroRGB, [https://www.youtube.com/watch?v=vHqT1God9vk that you can view here.] | ||
=== Features === | === Features === | ||
* Detection and digitization of various analog SDTV/EDTV/HDTV/PC modes | * Detection and digitization of various analog SDTV/EDTV/HDTV/PC modes | ||
− | * | + | * Line double support for 240p, 480i, 288p, 576i, 384p, 480p, 576p |
− | * | + | * Line3x/4x/5x/6x support for 240p/288p with different sampling modes |
* Very low latency (less than 2 input scanlines) | * Very low latency (less than 2 input scanlines) | ||
− | * Fast "deinterlace" for 480i/576i | + | * Fast "deinterlace" for 480i/576i and 960i/1080i |
* Fast recover from input video mode change (e.g. 240p<->480i) | * Fast recover from input video mode change (e.g. 240p<->480i) | ||
* All video processing done in RGB domain - no conversion to YCbCr | * All video processing done in RGB domain - no conversion to YCbCr | ||
Line 32: | Line 39: | ||
[[File:ossc_diy_front.jpg|frameless|DIY board (front)]][[File:ossc_diy_back.jpg|frameless|DIY board (back)]][[File:ossc_diy_contents.jpg|frameless|DIY kit contents]] | [[File:ossc_diy_front.jpg|frameless|DIY board (front)]][[File:ossc_diy_back.jpg|frameless|DIY board (back)]][[File:ossc_diy_contents.jpg|frameless|DIY kit contents]] | ||
− | DIY kits contain a selection of special parts required for building | + | DIY kits contain a selection of special parts required for building an OSSC board. Common components such as SMD resistors/capacitors need to be ordered separately from electronics wholesalers (e.g. Mouser). Kits are available to buy worldwide from [https://www.videogameperfection.com/product-cat/diy-modding-parts/ VideoGamePerfection.com] |
− | [ | + | [http://www.infocult.com/m/ossc/diy-v1.3/ Assembly instructions for v1.3 kit] |
− | [ | + | [http://www.infocult.com/m/ossc/diy-v1.5/ Assembly instructions for v1.5 kit] |
+ | [https://github.com/marqs85/ossc_pcb Assembly instructions for v1.6 kit] | ||
==== Pre-assembled board ==== | ==== Pre-assembled board ==== | ||
− | Pre-assembled boards | + | Pre-assembled boards are manufactured and sold worldwide by: |
+ | |||
+ | {| style="text-align:center;" | ||
+ | ! scope="col" width="220px" |[https://www.videogameperfection.com/products/open-source-converter/ VideoGamePerfection.com] | ||
+ | ! scope="col" width="220px" |[https://www.amazon.com/dp/B07QF95QP3 Kaico International] | ||
+ | |- | ||
+ | |[[File:Ossc-logo-small.png|180px|link=]] | ||
+ | |[[File:Kaico_OSSC_Logo.png|180px|link=]] | ||
+ | |- | ||
+ | |[https://videogameperfection.com/support-files/OSSC-V1.7-bom.xls List of components (v1.7)] | ||
+ | |[https://kaicolabs.com/wp-content/uploads/2021/11/OSSC-v1.6-BOM.xls List of components (v1.6)] | ||
+ | |} | ||
+ | |||
+ | Note - micompuTer removed as they are not an approved reseller and may be selling units incompatible with recent firmware updates.<br> | ||
+ | Note - Mallee Technologies removed due to their website being down for several months (no longer trading?) | ||
+ | |||
+ | As the project is open, board and selected parts can be customized by resellers. All listed sellers are encouraged to provide their list of components to improve transparency. Links to reference BOM are provided for comparison below so that buyers can check beforehand how much there are deviations which could affect performance or compatibility. | ||
+ | |||
+ | * [https://github.com/marqs85/ossc_pcb/raw/v1.6/bom/bom_full.xls Reference BOM (v1.6)] | ||
+ | * [https://github.com/marqs85/ossc_pcb/raw/v1.8/doc/bom_full.xls Reference BOM (v1.7 & v1.8)] | ||
+ | |||
+ | ==== Board version and firmware compatibility ==== | ||
+ | |||
+ | PCB revisions up to v1.7 support v0.xx series firmware as-is. It is possible to modify them to additionally support v1.xx series firmware. Instructions and more details are found in [https://videogameperfection.com/forums/topic/ossc-v1-xx-series-beta-firmware/ this] forum thread. | ||
+ | |||
+ | PCB revision v1.8 is only compatible with v1.xx series firmware. Downgrading to v0.xx results to malfunctioning input detection, but does not brick the board. | ||
=== More information & discussion === | === More information & discussion === | ||
Line 47: | Line 80: | ||
* [http://retrogaming.hazard-city.de/ossc.html Review by Fudoh] | * [http://retrogaming.hazard-city.de/ossc.html Review by Fudoh] | ||
* [https://docs.google.com/spreadsheets/d/1XZkAdRE3U-5xIQallsNger6ZSSiG4qmpMC1d3XJIKbU/edit#gid=0 Console compatibility spreadsheet] | * [https://docs.google.com/spreadsheets/d/1XZkAdRE3U-5xIQallsNger6ZSSiG4qmpMC1d3XJIKbU/edit#gid=0 Console compatibility spreadsheet] | ||
+ | |||
+ | == Power == | ||
+ | |||
+ | OSSC requires an external DC power supply. A unit that outputs 5 volts DC with at least 1 Amp will work. The tip must be 2.1 x 5.5mm and centre positive. Suitable power supplies can be purchased from [https://www.videogameperfection.com/products/replacement-psu-for-ossc/ VideoGamePerfection.com] or from any good electronics retailer. | ||
+ | |||
+ | If desired, a USB to Barrel Jack adapter can be used. This will function correctly as long as the USB port or charger used in conjunction with OSSC outputs at least 1 amp of current. Such adapters can often be found on [https://www.amazon.co.uk/Barrel-Jack-Adapter-USB-5-5mm/dp/B00LX8MULA Amazon] or other popular retailers. | ||
+ | |||
+ | Do not use a power supply rated for AC output, or a power supply rated higher than 5 volts DC, doing so can damage the OSSC (especially v1.6 and earlier which have limited protection). | ||
+ | |||
+ | Using a supply that provides less than one amp of current may cause the OSSC to reset, especially when outputting at higher resolutions. You can however, safely use a PSU rated at least one amp or higher. | ||
== AV inputs == | == AV inputs == | ||
=== AV1 (RGB-SCART) === | === AV1 (RGB-SCART) === | ||
− | + | This input supports video in '''RGBS''', '''RGsB''' (sync on green) and '''YPbPr''' formats. Composite video, luma or composite sync can be used as a sync source in RGBS mode. External sync splitters or boosters are generally not required or recommended as there is a built-in sync filter & separator in the ADC frontend. The sync input has 75 ohm termination, so a TTL-level sync signal should not be directly connected to the OSSC in order to avoid unnecessarily stressing the source console and/or OSSC. A 470 ohm series resistor on the console side of the cable is generally a good solution when using cables which are wired for the TTL-level sync output of a console. The video inputs also have standard 75 ohm termination, so arcade boards may need extra resistors on the cable when connected directly without using a Supergun. | |
− | This input supports video in '''RGBS''', '''RGsB''' (sync on green) and '''YPbPr''' formats. Composite video, luma or | ||
=== AV2 (Component) === | === AV2 (Component) === | ||
− | + | The AV2 input is a set of three RCA connectors which supports both component video ('''YPbPr''') and RGB ('''RGsB''' format). | |
− | |||
=== AV3 (VGA) === | === AV3 (VGA) === | ||
− | + | The AV3 input is a VGA/HD-15 connector which supports video in '''RGBHV''', '''RGBS''' (pin 13), '''RGsB''' and '''YPbPr''' formats. RGBHV and RGBS modes require clean TTL-level sync signals and cannot extract sync from composite video or luma. AV3 is best suited for high-quality input sources as video LPF functionality is limited (the AV1 and AV2 inputs are routed through a dedicated LPF chip). Therefore, it is generally recommended to connect older consoles and arcade boards to these other inputs. | |
− | VGA/HD-15 | ||
== AV outputs == | == AV outputs == | ||
− | === HDMI (DIY boards) === | + | === HDMI (DIY boards, v1.6 and newer pre-assembled boards) === |
− | DIY boards contain a HDMI connector which is used to transmit video data in 24bit RGB format. Digital audio output is | + | DIY and newer pre-assembled boards contain a HDMI connector which is used to transmit video data in 24bit RGB format. Digital audio output is available on v1.6->, while it can be added via an add-on board for earlier boards (see below) . Currents up to 200mA can be safely supplied via DDC 5V power pin to external devices such as active cables. |
− | === DVI-D (pre-assembled boards) === | + | === DVI-D (v1.5 and earlier pre-assembled boards) === |
− | + | First revisions of pre-assembled boards came with DVI-D connector due to connector robustness and HDMI licencing worries. Functionality is otherwise similar, and it is possible to use a DVI-to-HDMI cable or adapter to connect to a HDMI display. Analog output pins of DVI are not used, so it is not possible to connect to a VGA monitor via a passive DVI-to-VGA cable or adapter (an active adapter is required instead, see below). | |
=== AV1 audio === | === AV1 audio === | ||
− | Analog audio from SCART input is bypassed to a 3.5mm stereo output jack next to video output connector. | + | Analog audio from SCART input is bypassed to a 3.5mm stereo output jack next to video output connector. On v1.6-> boards the jack alternatively functions as AV2 audio input, selectable via a miniature switch. |
+ | |||
+ | === [Optional] Digital audio output for v1.5 and earlier boards === | ||
+ | |||
+ | Borti4938 has created an add-on board that implements audio digitization and integration into HDMI output, which neither are natively supported by earlier OSSC boards. Both SCART input and 3.5mm connector (normally output) can be used as audio input, but it is highly recommended to have only either one of those connected at time since they are wired together internally. | ||
− | + | All v1.5 and earlier OSSC boards are compatible with the mod (with ''-aud'' firmware), but required installation effort depends on OSSC/mod PCB versions. More information is found at the [https://github.com/borti4938/Audio4OSSC Github] page of the mod. | |
− | + | === [Optional] Analogue output === | |
− | + | The OSSC does not come with an analogue video output, however this can be added easily by using a simple DVI or HDMI to VGA adapter. See [[analogue video output options for OSSC]] for more information. | |
== Basic usage == | == Basic usage == | ||
Line 88: | Line 132: | ||
[[File:ossc_remote2.jpg|frame|Default remote control keymap]] | [[File:ossc_remote2.jpg|frame|Default remote control keymap]] | ||
− | The OSSC is available with a pre-programmed infrared remote. This is optional, and can be replaced with a suitable learning remote if desired (see [[#Remote_control_setup|Remote control setup]]). | + | The OSSC is available with a pre-programmed infrared remote. This is optional, and can be replaced with a suitable programmable/learning remote if desired (see [[#Remote_control_setup|Remote control setup]]). |
* 0-9: Selects AV source and input format. See remote picture on the side for reference. | * 0-9: Selects AV source and input format. See remote picture on the side for reference. | ||
Line 96: | Line 140: | ||
* UP/DOWN: Selects next/previous menu option | * UP/DOWN: Selects next/previous menu option | ||
* LEFT/RIGHT: Option value -/+ | * LEFT/RIGHT: Option value -/+ | ||
− | * INFO: Displays extra information on video source processing | + | * INFO: Displays extra information on video source processing. Top row shows current profile and current video mode preset. Bottom row shows accurate timing data from FPGA: lines per frame, p/i status, special processing (indicated by *) and cycles per frame (divide 27000000 by it to get Hz), |
* LCD_BACKLIGHT: Turns on-board character LCD backlight off/on | * LCD_BACKLIGHT: Turns on-board character LCD backlight off/on | ||
* SCANLINE_MODE: Hotkey for selecting next "Scanlines" option value | * SCANLINE_MODE: Hotkey for selecting next "Scanlines" option value | ||
* SCANLINE_TYPE: Hotkey for selecting next "Scanline type" option value | * SCANLINE_TYPE: Hotkey for selecting next "Scanline type" option value | ||
* SCANLINE_INT+/-: Hotkeys for adjusting scanline strength | * SCANLINE_INT+/-: Hotkeys for adjusting scanline strength | ||
− | * LINEMULT_MODE: Hotkey for | + | * LINEMULT_MODE: Hotkey for selecting line multiplication mode for current video mode |
+ | * SAMP_PHASE+/-: Hotkey for sampling phase adjustment | ||
+ | * PROFILE_LOAD: Hotkey for quickloading a profile. Press again to enable selection of profiles 10 and higher | ||
=== PCB buttons === | === PCB buttons === | ||
Line 112: | Line 158: | ||
* Green: Power on. Light off when IR remote code detected | * Green: Power on. Light off when IR remote code detected | ||
* Red: Unstable sync when alight. | * Red: Unstable sync when alight. | ||
+ | |||
+ | NOTE: on v1.7 or earlier boards modified to support v1.xx series firmware, sync instability in encoded in green LED. | ||
== Settings == | == Settings == | ||
Line 125: | Line 173: | ||
* '''16MHz (EDTV)''': 16MHz bandwidth – suitable for 480p etc. EDTV formats | * '''16MHz (EDTV)''': 16MHz bandwidth – suitable for 480p etc. EDTV formats | ||
* '''9MHz (SDTV)''': 9MHz bandwidth – suitable for 240p, 480i etc. SDTV formats | * '''9MHz (SDTV)''': 9MHz bandwidth – suitable for 240p, 480i etc. SDTV formats | ||
+ | |||
+ | ==== Reverse LPF ==== | ||
+ | (found under Post-proc on v0.xx firmware) | ||
+ | ''Compensates unintended LPF/bleeding caused by sub-optimal video DAC (e.g. 1st rev SNES consoles) or long cables.'' | ||
+ | * '''0-31''': Reverse LPF strength. '''[default=0]''' | ||
==== YPbPr input Color Space ==== | ==== YPbPr input Color Space ==== | ||
Line 130: | Line 183: | ||
* '''Rec. 601''': Input is assumed to be in Rec. 601 format, which is generally true for SD video '''[default]''' | * '''Rec. 601''': Input is assumed to be in Rec. 601 format, which is generally true for SD video '''[default]''' | ||
* '''Rec. 709''': Input is assumed to be in Rec. 709 format, which is generally true for HD video | * '''Rec. 709''': Input is assumed to be in Rec. 709 format, which is generally true for HD video | ||
+ | * '''Auto''': Rec. 601 is used for SD input, Rec. 709 for HD (720p and higher) | ||
==== R/Pr / G/Y / B/Pb offset ==== | ==== R/Pr / G/Y / B/Pb offset ==== | ||
− | + | Fine-adjustment of Red/Pr / G/Y / B/Pb channel offset (brightness) | |
* '''0-255''': '''[default=127]''' | * '''0-255''': '''[default=127]''' | ||
Line 139: | Line 193: | ||
==== R/Pr / G/Y / B/Pb gain ==== | ==== R/Pr / G/Y / B/Pb gain ==== | ||
− | + | Fine-adjustment of Red/Pr / G/Y / B/Pb channel gain (contrast) | |
* '''0-255''': '''[default=26]''' | * '''0-255''': '''[default=26]''' | ||
+ | |||
+ | ==== Pre-ADC Gain ==== | ||
+ | |||
+ | Coarse-adjustment of Red/Pr / G/Y / B/Pb channel gain (contrast). Need to decreased with certain sources with higher than nominal video levels (e.g. 1-CHIP SNES consoles) to avoid clipping | ||
+ | |||
+ | * '''0-15''': '''[default=8]''' | ||
+ | |||
+ | ==== Clamp/ALC offset ==== | ||
+ | |||
+ | Allows clamp and ALC start position adjustment from the default value. Can help with certain sources if the brigthness is uneven across a scanline. | ||
+ | |||
+ | * '''-100-100''': '''[default=0]''' | ||
+ | |||
+ | ==== ALC V filter ==== | ||
+ | |||
+ | ALV vertical filter coefficient. Reduce from default if line/field tilt occurs. | ||
+ | |||
+ | * '''1-1024 lines''': '''[default=1024 lines]''' | ||
+ | |||
+ | ==== ALC H filter ==== | ||
+ | |||
+ | ALV horizontal filter coefficient (duration for which ALC is applied after clamp). | ||
+ | |||
+ | * '''2-256 pixels''': '''[default=16 pixels]''' | ||
+ | |||
+ | ==== Lumacode ==== | ||
+ | (only on v1.xx firmware) | ||
+ | ''Enables [https://github.com/c0pperdragon/LumaCode/wiki/Overview Lumacode] decoding for selected system. A Lumacode source is connected to Y RCA jack and uses AV2_RGsB logical input. You need to additionally use optimized mode configured for the target system (especially H.samplerate), and possibly adjust phase and G/Y offset to get colors right.'' | ||
+ | * '''Off''': Lumacode decoding disabled '''[default]''' | ||
+ | * '''C64''': Lumacode decoding enabled for C64. Use 384col preset with H. samplerate of 504 for PAL C64 or 512/520 (depending on VIC-II mode) for NTSC | ||
+ | * '''Spectrum''': Lumacode decoding enabled for ZX Spectrum. Use 384col preset with H. samplerate of 448 (?). | ||
+ | * '''Coleco / MSX''': Lumacode decoding enabled for Colecovision / MSX. Use 256col preset with H. samplerate of 342. | ||
+ | * '''NES''': Lumacode decoding enabled for NES. Use 256col preset with Line2x/5x mode. | ||
=== Sampling opt. === | === Sampling opt. === | ||
− | |||
− | |||
− | |||
==== 480p in sampler ==== | ==== 480p in sampler ==== | ||
''Controls the sampling mode when 525-line progressive signal (“480p”) is detected at input'' | ''Controls the sampling mode when 525-line progressive signal (“480p”) is detected at input'' | ||
− | * '''Auto''': | + | * '''Auto''': “VESA 640x480@60”-mode is selected when hsync length exceeds 3us, otherwise “DTV 480p”-mode is selected '''[default]''' |
* '''DTV 480p''': Input is sampled at 858 samples per line, typically associated with 720x480 mode (CEA-861 spec.) used by DTV/DVD equipment and newer game consoles. This option forces the sampling mode for all inputs, which may be required for optimal image quality when e.g. Dreamcast with a VGA module is connected to RGBHV input. | * '''DTV 480p''': Input is sampled at 858 samples per line, typically associated with 720x480 mode (CEA-861 spec.) used by DTV/DVD equipment and newer game consoles. This option forces the sampling mode for all inputs, which may be required for optimal image quality when e.g. Dreamcast with a VGA module is connected to RGBHV input. | ||
* '''VESA 640x480@60''': Input is sampled at 800 samples per line, typically associated with VESA 640x480@60Hz mode used by PCs. This option forces the sampling mode for all inputs. | * '''VESA 640x480@60''': Input is sampled at 800 samples per line, typically associated with VESA 640x480@60Hz mode used by PCs. This option forces the sampling mode for all inputs. | ||
+ | * '''PSP 480x272''': Applies suitable sampling settings for PSP. | ||
+ | |||
+ | ==== 400p in sampler ==== | ||
+ | ''Controls the sampling mode when 449-line progressive signal (“400p”) is detected at input'' | ||
+ | * '''VGA 640x400@70''': Input is sampled at 800 samples per line, typically associated with VGA Mode 13h '''[default]''' | ||
+ | * '''VGA 720x400@70''': Input is sampled at 900 samples per line, typically associated with VGA Mode 3+/7+ | ||
+ | |||
+ | ==== Allow TVP HPLL2x ==== | ||
+ | (on v1.11+ firmware found under Compatiblity opt) | ||
+ | ''Controls whether video digitizer H-PLL uses 2x sampling clock internally on supported video modes.'' | ||
+ | * '''On''': Enables 2x H-PLL, generally reducing jitter at the price of inaccurate sampling phase due to internal bug. '''[default v0.xx]''' | ||
+ | * '''Off''': Disables 2x H-PLL, which might help with Line5x stability. '''[default v1.11+]''' | ||
+ | |||
+ | ==== Allow upsample2x ==== | ||
+ | ''Controls whether 2x samplerate is used instead of pixel repetition in certain modes, e.g. 384pX2, 480pX2, 480iX3, 480iX4, 960iX2.'' | ||
+ | * '''On''': 2x samplerate is used to double output horizontal resolution, which may be useful with sources that use off-spec horizontal rate. Alternatively, the option can be used to generate slightly more analog-esque (i.e. less pixellated) picture. | ||
+ | * '''Off''': Pixel repetition is used to double output horizontal resolution, which regenerates source image most faithfully if sampling matches dot clock. '''[default]''' | ||
==== Advanced timing tweaker ==== | ==== Advanced timing tweaker ==== | ||
− | ''Allows | + | ''Allows fine-tuning of sampling/output parameters. Results greatly depend on displays - generally only position (backporch) adjustments are highly compatible. Efficient use requires knowledge of input and output hardware connected to OSSC. Video mode to edit (default is current mode) is selected via LEFT/RIGHT keys, after which tweaker is accessed via OK key. For more information, see the link below.'' |
[[Optimal timings]] | [[Optimal timings]] | ||
===== Horizontal samplerate ===== | ===== Horizontal samplerate ===== | ||
− | ''Sets how many samples ADC take each scanline (=between 2 hsync | + | ''Sets how many samples ADC take each scanline (=between 2 consecutive hsync pulses). Mainly usable for console-specific fine-tuning in 320x240 / 256x240 optim. modes.'' |
− | ===== Horizontal sync length ===== | + | ===== H. s.rate frac ===== |
− | ''Sets | + | ''Fine-tune fractional H.samplerate adjustment for optimized modes. Value set is a target - closest effective value is automatically selected since actual samplerate resolution (between 1/6 and 1) depends on line multiplication mode.'' |
+ | |||
+ | ===== Horizontal/Vertical sync length ===== | ||
+ | ''Sets output sync lengths, which by default are set to match expected input sync lengths. Usually no need to modify.'' | ||
+ | |||
+ | ===== Horizontal/Vertical backporch length ===== | ||
+ | ''Sets output backporch lengths, which by default are set to match expected input backporch lengths. Effectively adjusts image position.'' | ||
===== Horizontal/Vertical active length ===== | ===== Horizontal/Vertical active length ===== | ||
− | ''Sets the area which is marked as active in output signal. | + | ''Sets the area which is marked as active in output signal. Enables image size adjustments on compatible displays.'' |
+ | |||
+ | ===== Horizontal border ===== | ||
+ | (renamed and moved here from v0.xx firmware) | ||
+ | * '''0-255 pixels''': Controls the size of a mask (border) generated around the picture in horizontal direction (1-pixel steps). Can be used to mask areas which would get hidden in the overscan region of CRT TVs. '''[default=0]''' | ||
+ | |||
+ | ===== Vertical border ===== | ||
+ | (renamed and moved here from v0.xx firmware) | ||
+ | * '''0-63 pixels''': Controls the size of a mask (border) generated around the picture in vertical direction (1-pixel steps). Can be used to mask areas which would get hidden in the overscan region of CRT TVs. '''[default=0]''' | ||
− | ===== | + | ===== Sampling phase ===== |
− | '' | + | * '''0-347 deg''': Selects the phase of regenerated pixel clock (=position where each sample is taken). When output rate matches the input DAC rate (PC graphics modes, newer consoles, 2 last linetriple modes), it is important to adjust sampling phase for optimal quality. This setting should be adjusted only after adjusting sync and video LPF since they can alter the relative position of video and sync signals. Can be also adjusted with remote hotkeys while tweaking other sampling settings '''[default=180deg]''' |
=== Sync opt. === | === Sync opt. === | ||
Line 175: | Line 290: | ||
==== Analog sync LPF ==== | ==== Analog sync LPF ==== | ||
''Low-pass filter selection for analog sync signals (SCART and component inputs plus VGA input in RGsB mode). Required if there is noise or glitches on the sync line.'' | ''Low-pass filter selection for analog sync signals (SCART and component inputs plus VGA input in RGsB mode). Required if there is noise or glitches on the sync line.'' | ||
− | * ''' | + | * '''2.5MHz''': Highest filtering – recommended for sources that do not provide clean sync. '''[default]''' |
− | * '''33MHz''': Lowest filtering | + | * '''10MHz''': Medium filtering. |
− | * ''' | + | * '''33MHz''': Lowest filtering. |
− | * ''' | + | * '''Off''': Sync is not filtered before processing. |
+ | |||
+ | ==== Analog STC LPF ==== | ||
+ | ''Low-pass filter selection for analog sync tip clamp (SCART and component inputs plus VGA input in RGsB mode). Stronger LPF improves robustness if significant undershoot is present on sync, but may lead to mode detection issues with HDTV signals.'' | ||
+ | * '''4.8MHz (HDTV/PC)''': Lowest filtering – recommended for sources with clean sync. '''[default]''' | ||
+ | * '''0.5MHz (SDTV)''': Highest filtering – recommended for SD sources which have undershoot on sync edge. | ||
+ | * '''1.7MHz (EDTV)''': Medium filtering. | ||
==== Analog sync Vth ==== | ==== Analog sync Vth ==== | ||
Line 199: | Line 320: | ||
''Defines when PLL coast (current freq. freeze) is deactivated. Higher than default value needed with some sources (e.g. MD) for stable sync.'' | ''Defines when PLL coast (current freq. freeze) is deactivated. Higher than default value needed with some sources (e.g. MD) for stable sync.'' | ||
* '''0-5 lines''': Number of scanlines after vsync at when coast is deactivated. '''[default=0]''' | * '''0-5 lines''': Number of scanlines after vsync at when coast is deactivated. '''[default=0]''' | ||
+ | |||
+ | ==== ADC PLL BW ==== | ||
+ | ''Selects bandwidth for video ADC PLL. Higher bandwidth results to lower sampling jitter at the cost of increased pixel clock jitter which some displays do not tolerate well. Reduce if video/audio cutouts occur.'' | ||
+ | * '''High''': High bandwidth: prioritizes picture quality. Highly recommended when Lumacode is used or if the display has no issues processing the signal. '''[default]''' | ||
+ | * '''Medium''': Medium bandwidth: tradeoff between quality and compatibility. This has been the fixed value on v0.xx and v1.0x firmwares. | ||
+ | * '''Low''': Low bandwidth: prioritizes display compatibility. | ||
+ | * '''Ultra low''': Ultra low bandwidth: use as last resort to resolve potential audio/video cutouts. High sampling jitter. | ||
+ | |||
+ | ==== FPGA PLL BW ==== | ||
+ | ''Selects bandwidth for FPGA PLL.'' | ||
+ | * '''High''': High bandwidth. '''[default]''' | ||
+ | * '''Low''': Low bandwidth. May improve pixel clock quality without affecting sampling stability. | ||
=== Output opt. === | === Output opt. === | ||
− | ==== 240p/288p | + | ==== 240p/288p proc ==== |
− | ''Controls | + | ''Controls line multiplication setting for 240p/288p modes. NOTE: 3x/4x/5x do not generate standard 720p/960p/1080p/1200p CEA/VESA modes (total lines, pixels per line), so they are generally accepted only by monitors and not by many consumer TVs.'' |
− | * ''' | + | * '''Passthru''': Only digitization is applied |
− | * ''' | + | * '''Line2x''': Linedoubled 480p output. '''[default]''' |
+ | * '''Line3x''': Linetripled 720p output. | ||
+ | * '''Line4x''': 960p output. | ||
+ | * '''Line5x''': 1080p/1200p output depending on ''Line5x format'' setting | ||
+ | * '''Line6x''': 1440p 4:3 output (only available on v1.xx firmware) | ||
− | ==== | + | ==== 384p/400p proc ==== |
− | ''Controls the sampling and pixel clock multiplication mode for | + | ''Controls line multiplication setting for 384p/400p modes'' |
− | * '''Generic 16:9''': Uses full horizontal sample rate without pixel multiplication, resulting to fully utilized 1280x720/864 output (16:9 aspect). Useful if connected to a CRT via DVI->VGA converter. | + | * '''Passthru''': Only digitization is applied |
− | * '''Generic 4:3''': Uses 3/4 of full horizontal sample rate without pixel multiplication, resulting to 960x720/864 effective area of 1280x720/864 output (4:3 aspect). | + | * '''Line2x''': Linedoubled 1024x768 output. '''[default]''' |
+ | * '''Line2x 240x360''': Linedoubled 720p output mainly targeted for GBI | ||
+ | * '''Line3x 240x360''': Linetripled 1080p output mainly targeted for GBI | ||
+ | * '''Line3x Generic''': 1600x1200 mode for 400p input. Not guaranteed to work due to pixel clock exceeding recommended HW limits | ||
+ | |||
+ | ==== 480i/576i proc ==== | ||
+ | ''Controls line multiplication setting for 480i/576i modes'' | ||
+ | * '''Passthru''': Only digitization is applied, deinterlacing will be handled by display. Generally results to higher quality picture at the price of added latency. | ||
+ | * '''Line2x (bob)''': Linedoubled 480p/576p output. '''[default]''' | ||
+ | * '''Line3x (laced)''': Linetripled 1440i/1728i output. | ||
+ | * '''Line4x (bob)''': Linequadrupled 960p/1152p output. | ||
+ | |||
+ | '''Beware of using the OSSCs Line2x (bob) or Line4x (bob) deinterlacing modes on sources that display static graphics or text for a long period of time.''' The OSSCs deinterlacer produces a constant flickering effect. This can cause image retention/burn in to occur faster than normal. | ||
+ | |||
+ | ==== 480p/576p proc ==== | ||
+ | ''Controls line multiplication setting for 480p/576p modes'' | ||
+ | * '''Passthru''': Only digitization is applied. '''[default]''' | ||
+ | * '''Line2x''': Linedoubled 960p/1152p output. | ||
+ | * '''Line3x Generic''': 1920x1440 output with pixel repetition. | ||
+ | |||
+ | ==== 960i/1080i proc ==== | ||
+ | ''Controls line multiplication setting for 960i/1080i modes'' | ||
+ | * '''Passthru''': Only digitization is applied, deinterlacing will be handled by display. Generally results to higher quality picture at the price of added latency. | ||
+ | * '''Line2x (bob)''': Linedoubled 1280x960/1920x1080 output. '''[default]''' | ||
+ | |||
+ | '''Beware of using the OSSCs Line2x (bob) deinterlacing mode on sources that display static graphics or text for a long period of time.''' The OSSCs deinterlacer produces a constant flickering effect. This can cause image retention/burn in to occur faster than normal. | ||
+ | |||
+ | ==== Passthru mode ==== | ||
+ | (only on v1.xx firmware) | ||
+ | ''Controls the sampling and pixel clock multiplication mode for passthru.'' | ||
+ | * '''Normal''': Standard sampling rate with most compatible output. '''[default]''' | ||
+ | * '''High samplerate''': Higher samplerate for for SDTV/EDTV sources. | ||
+ | * '''512x240 optim.''': Optimal sampling rate with output horizontal multiplied by 3. For CRTs and compatible downstream processors only. | ||
+ | * '''384x240 optim.''': Optimal sampling rate with output horizontal multiplied by 4. For CRTs and compatible downstream processors only. | ||
+ | * '''320x240 optim.''': Optimal sampling rate with output horizontal multiplied by 5. For CRTs and compatible downstream processors only. | ||
+ | * '''256x240 optim.''': Optimal sampling rate with output horizontal multiplied by 6. For CRTs and compatible downstream processors only. | ||
+ | |||
+ | ==== Line2x mode ==== | ||
+ | ''Controls the sampling and pixel clock multiplication mode for line2x.'' | ||
+ | * '''Generic 4:3''': Uses full horizontal sample rate without pixel multiplication, resulting to 720x480/576 output (4:3 aspect). '''[default]''' | ||
+ | * '''512x240 optim.''': For advanced users only - requires clock and phase adjustments. Uses a sampling rate which matches the DAC rate of 682 dots per line used by some classic consoles (e.g. SNES hi-res) in 512 mode, resulting to pixel-perfect digitization. Output is pixel-multiplied by 2 in horizontal direction, resulting to 1024x480 effective area of 1024x480 output. Note: If picture jitters when this mode is selected, adjust sampling phase until sweet spot is achieved. | ||
+ | * '''384x240 optim.''': For advanced users only - requires clock and phase adjustments. Uses a sampling rate which matches the DAC rate of 512 dots per line used by some systems (e.g. CPS2) in 384x240 mode, resulting to pixel-perfect digitization. | ||
+ | * '''320x240 optim.''': For advanced users only - requires clock and phase adjustments. Uses a sampling rate which matches the DAC rate of 426 dots per line used by some classic consoles (e.g. several PSX games) in 320x240 mode, resulting to pixel-perfect digitization. Output is pixel-multiplied by 2 in horizontal direction, resulting to 640x480 effective area of 640x480 output. Note: If picture jitters when this mode is selected, adjust sampling phase until sweet spot is achieved. | ||
+ | * '''256x240 optim.''': For advanced users only - requires clock and phase adjustments. Uses a sampling rate which matches the DAC rate of 341 dots per line used by various classic consoles (e.g. NES, SNES) in 256x240 mode, resulting to pixel-perfect digitization. Output is pixel-multiplied in horizontal direction, resulting to 768x480 or 512x480 (depending on ''256x240 aspect'' setting) effective area of 768x480 output. Note: If picture jitters when this mode is selected, adjust sampling phase until sweet spot is achieved. | ||
+ | |||
+ | ==== Line3x mode ==== | ||
+ | ''Controls the sampling and pixel clock multiplication mode for line3x.'' | ||
+ | * '''Generic 16:9''': Uses full horizontal sample rate without pixel multiplication, resulting to fully utilized 1280x720/864 output (16:9 aspect). Useful if connected to a CRT via DVI->VGA converter. | ||
+ | * '''Generic 4:3''': Uses 3/4 of full horizontal sample rate without pixel multiplication, resulting to 960x720/864 effective area of 1280x720/864 output (4:3 aspect). '''[default]''' | ||
+ | * '''512x240 optim.''': For advanced users only - requires clock and phase adjustments. Uses a sampling rate which matches the DAC rate of 682 dots per line used by some classic consoles (e.g. SNES hi-res) in 512 mode, resulting to pixel-perfect digitization. Output is pixel-multiplied by 2 in horizontal direction, resulting to 1024x720 effective area of 1024x720 output. Note: If picture jitters when this mode is selected, adjust sampling phase until sweet spot is achieved. | ||
+ | * '''384x240 optim.''': For advanced users only - requires clock and phase adjustments. Uses a sampling rate which matches the DAC rate of 512 dots per line used by some systems (e.g. CPS2) in 384x240 mode, resulting to pixel-perfect digitization. | ||
* '''320x240 optim.''': For advanced users only - requires clock and phase adjustments. Uses a sampling rate which matches the DAC rate of 426 dots per line used by some classic consoles (e.g. several PSX games) in 320x240 mode, resulting to pixel-perfect digitization. Output is pixel-multiplied by 3 in horizontal direction, resulting to 960x720 effective area of 1280x720 output. Note: If picture jitters when this mode is selected, adjust sampling phase until sweet spot is achieved. | * '''320x240 optim.''': For advanced users only - requires clock and phase adjustments. Uses a sampling rate which matches the DAC rate of 426 dots per line used by some classic consoles (e.g. several PSX games) in 320x240 mode, resulting to pixel-perfect digitization. Output is pixel-multiplied by 3 in horizontal direction, resulting to 960x720 effective area of 1280x720 output. Note: If picture jitters when this mode is selected, adjust sampling phase until sweet spot is achieved. | ||
− | * '''256x240 optim.''': For advanced users only - requires clock and phase adjustments. Uses a sampling rate which matches the DAC rate of 341 dots per line used by various classic consoles (e.g. NES, SNES) in 256x240 mode, resulting to pixel-perfect digitization. Output is pixel-multiplied by 4 in horizontal direction, resulting to | + | * '''256x240 optim.''': For advanced users only - requires clock and phase adjustments. Uses a sampling rate which matches the DAC rate of 341 dots per line used by various classic consoles (e.g. NES, SNES) in 256x240 mode, resulting to pixel-perfect digitization. Output is pixel-multiplied in horizontal direction, resulting to 1024x720 or 768x720 (depending on ''256x240 aspect'' setting) effective area of 1280x720 output. Note: If picture jitters when this mode is selected, adjust sampling phase until sweet spot is achieved. |
+ | |||
+ | ==== Line4x mode ==== | ||
+ | ''Controls the sampling and pixel clock multiplication mode for line4x.'' | ||
+ | * '''Generic 4:3''': Uses full horizontal sample rate without pixel multiplication, resulting to 1280x960/1152 output (4:3 aspect). '''[default]''' | ||
+ | * '''512x240 optim.''': For advanced users only - requires clock and phase adjustments. Uses a sampling rate which matches the DAC rate of 682 dots per line used by some classic consoles (e.g. SNES hi-res) in 512 mode, resulting to pixel-perfect digitization. Output is pixel-multiplied by 2 in horizontal direction, resulting to 1024x960 effective area of 1024x960 output. Note: If picture jitters when this mode is selected, adjust sampling phase until sweet spot is achieved. | ||
+ | * '''384x240 optim.''': For advanced users only - requires clock and phase adjustments. Uses a sampling rate which matches the DAC rate of 512 dots per line used by some systems (e.g. CPS2) in 384x240 mode, resulting to pixel-perfect digitization. | ||
+ | * '''320x240 optim.''': For advanced users only - requires clock and phase adjustments. Uses a sampling rate which matches the DAC rate of 426 dots per line used by some classic consoles (e.g. several PSX games) in 320x240 mode, resulting to pixel-perfect digitization. Output is pixel-multiplied by 4 in horizontal direction, resulting to 1280x960 effective area of 1280x960 output. Note: If picture jitters when this mode is selected, adjust sampling phase until sweet spot is achieved. | ||
+ | * '''256x240 optim.''': For advanced users only - requires clock and phase adjustments. Uses a sampling rate which matches the DAC rate of 341 dots per line used by various classic consoles (e.g. NES, SNES) in 256x240 mode, resulting to pixel-perfect digitization. Output is pixel-multiplied in horizontal direction, resulting to 1280x960 or 1024x960 (depending on ''256x240 aspect'' setting) effective area of 1280x960 output. Note: If picture jitters when this mode is selected, adjust sampling phase until sweet spot is achieved. | ||
− | ==== | + | ==== Line5x mode ==== |
− | ''Controls | + | ''Controls the sampling and pixel clock multiplication mode for line5x.'' |
− | * ''' | + | * '''Generic 4:3''': Uses full horizontal sample rate without pixel multiplication, resulting to 1600x1080/1200 output (4:3 aspect). '''[default]''' |
− | * ''' | + | * '''512x240 optim.''': For advanced users only - requires clock and phase adjustments. Uses a sampling rate which matches the DAC rate of 682 dots per line used by some classic consoles (e.g. SNES hi-res) in 512 mode, resulting to pixel-perfect digitization. Output is pixel-multiplied by 3 in horizontal direction, resulting to 1536x1080/1200 effective area of 1080p/1200p output. Note: If picture jitters when this mode is selected, adjust sampling phase until sweet spot is achieved. |
+ | * '''384x240 optim.''': For advanced users only - requires clock and phase adjustments. Uses a sampling rate which matches the DAC rate of 512 dots per line used by some systems (e.g. CPS2) in 384x240 mode, resulting to pixel-perfect digitization. | ||
+ | * '''320x240 optim.''': For advanced users only - requires clock and phase adjustments. Uses a sampling rate which matches the DAC rate of 426 dots per line used by some classic consoles (e.g. several PSX games) in 320x240 mode, resulting to pixel-perfect digitization. Output is pixel-multiplied by 5 in horizontal direction, resulting to 1600x1080/1200 effective area of 1080p/1200p output. Note: If picture jitters when this mode is selected, adjust sampling phase until sweet spot is achieved. | ||
+ | * '''256x240 optim.''': For advanced users only - requires clock and phase adjustments. Uses a sampling rate which matches the DAC rate of 341 dots per line used by various classic consoles (e.g. NES, SNES) in 256x240 mode, resulting to pixel-perfect digitization. Output is pixel-multiplied in horizontal direction, resulting to 1536x1080/1200 or 1280x1080/1200 (depending on ''256x240 aspect'' setting) effective area of 1080p/1200p output. Note: If picture jitters when this mode is selected, adjust sampling phase until sweet spot is achieved. | ||
− | ==== | + | ==== Line6x mode ==== |
− | ''Controls | + | (only on v1.xx firmware) |
− | * ''' | + | ''Controls the sampling and pixel clock multiplication mode for line6x.'' |
− | * ''' | + | * '''Generic 4:3''': Uses full horizontal sample rate without pixel multiplication (aside from TX pixel repetition), resulting to 1920x1440 output (4:3 aspect). '''[default]''' |
+ | * '''512x240 optim.''': For advanced users only - requires clock and phase adjustments. Uses a sampling rate which matches the DAC rate of 682 dots per line used by some classic consoles (e.g. SNES hi-res) in 512 mode, resulting to pixel-perfect digitization. Output is pixel-multiplied by 4 in horizontal direction, resulting to 2048x1440 effective area of 2048x1440 output. Note: If picture jitters when this mode is selected, adjust sampling phase until sweet spot is achieved. | ||
+ | * '''384x240 optim.''': For advanced users only - requires clock and phase adjustments. Uses a sampling rate which matches the DAC rate of 512 dots per line used by some systems (e.g. CPS2) in 384x240 mode, resulting to pixel-perfect digitization. | ||
+ | * '''320x240 optim.''': For advanced users only - requires clock and phase adjustments. Uses a sampling rate which matches the DAC rate of 426 dots per line used by some classic consoles (e.g. several PSX games) in 320x240 mode, resulting to pixel-perfect digitization. Output is pixel-multiplied by 6 in horizontal direction, resulting to 1920x1440 effective area of 1920x1440 output. Note: If picture jitters when this mode is selected, adjust sampling phase until sweet spot is achieved. | ||
+ | * '''256x240 optim.''': For advanced users only - requires clock and phase adjustments. Uses a sampling rate which matches the DAC rate of 341 dots per line used by various classic consoles (e.g. NES, SNES) in 256x240 mode, resulting to pixel-perfect digitization. Output is pixel-multiplied in horizontal direction, resulting to 2048x1440 or 1536x1440 (depending on ''256x240 aspect'' setting) effective area of 2048x1440 output. Note: If picture jitters when this mode is selected, adjust sampling phase until sweet spot is achieved. | ||
+ | |||
+ | Using properly rated HDMI/DVI cables for Line5x mode is essential. Note that this mode is also incompatible with certain HDMI splitters. For some devices/displays, tweaking of the advanced timing options may be necessary. For example, on the VP50 Pro video processor, you should use H. Samplerate 2057 and H. Backporch 255 on the OSSC. | ||
+ | |||
+ | ==== Line5x format ==== | ||
+ | ''Selects the output format of line5x.'' | ||
+ | * '''1920x1080''': 1080-line output, which crops a few active lines from top and bottom of incoming video signal. '''[default]''' | ||
+ | * '''1600x1200''': 1200-line output that displays all active lines of incoming video signal. | ||
+ | * '''1920x1200''': 1200-line output that displays all active lines of incoming video signal. | ||
+ | |||
+ | Note - When using Line 5x mode, if your display can tolerate it, adjust h.samplerate to 1950 using the [http://junkerhq.net/xrgb/index.php?title=OSSC#Advanced_timing_tweaker Advanced Timing Tweaker]. This will help correct the image aspect ratio. | ||
+ | |||
+ | ==== 256x240 aspect ==== | ||
+ | ''Selects the output aspect for 256x240 optim. mode.'' | ||
+ | * '''Pseudo 4:3 DAR''': Integer-multiplication is handled so that target aspect is close to 4:3. '''[default]''' | ||
+ | * '''1:1 PAR''': Maintains square pixel aspect ratio. | ||
==== TX mode ==== | ==== TX mode ==== | ||
''Sets the output TX mode.'' | ''Sets the output TX mode.'' | ||
− | * '''HDMI''': auxiliary HDMI packets | + | * '''HDMI (RGB)''': 24-bit full-range RGB output with audio and auxiliary Infoframe packets. '''[default for v1.6-> and DIY boards]''' |
− | * '''DVI''': | + | * '''HDMI (YCbCr444)''': 24-bit YCbCr 4:4:4 (Rec. 601) output with audio and auxiliary Infoframe packets. Recommended for displays which do not support RGB in full-range. |
+ | * '''DVI''': 24-bit full-range RGB output. Required if target display does not support HDMI. '''[default for DVI boards]''' | ||
− | ==== | + | ==== HDMI ITC ==== |
− | ''Sets the | + | ''Sets IT content flag in AVI Infoframe when in HDMI TX mode.'' |
+ | * '''Off''': No indication about content type. '''[default]''' | ||
+ | * '''On''': Output is flagged as IT Content, hinting the dispaly that video filtering should not be applied and that source is in sRGB color space (and in full-range format). May reduce delay or change picture processing on certain displays. | ||
+ | |||
+ | ==== HDMI HDR flag ==== | ||
+ | (only on v1.xx firmware) | ||
+ | ''Setups HDR Infoframe to indicate HDR output with HLG gamma when in HDMI TX mode.'' | ||
+ | * '''Off''': Default SDR output. '''[default]''' | ||
+ | * '''On''': Output is flagged as HDR HLG. Gamma response is not corrected so some accuracy is lost. | ||
+ | |||
+ | ==== HDMI VRR flag ==== | ||
+ | (only on v1.xx firmware) | ||
+ | ''Setups VRR metadata to spoof VRR output (vertical blank is not extended dynamically).'' | ||
+ | * '''Off''': No VRR metadata sent. '''[default]''' | ||
+ | * '''On''': Freesync infoframe sent. | ||
− | === | + | === Scanline opt. === |
==== Scanlines ==== | ==== Scanlines ==== | ||
Line 238: | Line 470: | ||
* '''Off''': No scanlines drawn '''[default]''' | * '''Off''': No scanlines drawn '''[default]''' | ||
* '''Auto''': Horizontal scanlines are drawn for 240p/288p sources, alternating scanlines are enabled for 480i/576i, no scanlines for other sources | * '''Auto''': Horizontal scanlines are drawn for 240p/288p sources, alternating scanlines are enabled for 480i/576i, no scanlines for other sources | ||
− | * ''' | + | * '''On''': Scanlines are drawn for every source according to "Scanline type" option |
− | ==== | + | ==== Sl. strength ==== |
* '''6-100%''': Strength of the emulated scanlines '''[default=6%]''' | * '''6-100%''': Strength of the emulated scanlines '''[default=6%]''' | ||
− | ==== | + | ==== Sl. hybrid str ==== |
− | * ''' | + | * '''0-175%''': Strength of hybrid/blend effect (depedence of the pixel that is overlayed) in scanlines '''[default=0%]''' |
− | * ''' | + | |
− | * ''' | + | ==== Sl. method ==== |
+ | ''Selects the method how scanlines are generated'' | ||
+ | * '''Multiplication''': Scanline is generated by multiplying source RGB value '''[default]''' | ||
+ | * '''Subtraction''': Scanline is generated by subtracting from source RGB value | ||
+ | |||
+ | ==== Sl. alternating ==== | ||
+ | ''Controls whether scanline position alternates along with fields of interlaced sources'' | ||
+ | * '''Off''': Scanlines are always mapped to same output lines. | ||
+ | * '''On''': Position is tied to field which shows as alternating position in output. Useful for reducing flicker. '''[default]''' | ||
− | ==== | + | ==== Sl. alignment ==== |
* '''Top''': Scanline is drawn on top position of every group of output lines formed from a single input line. '''[default]''' | * '''Top''': Scanline is drawn on top position of every group of output lines formed from a single input line. '''[default]''' | ||
* '''Bottom''': Scanline is drawn on bottom position of every group of output lines formed from a single input line. | * '''Bottom''': Scanline is drawn on bottom position of every group of output lines formed from a single input line. | ||
− | ==== | + | ==== (Sl. alt interval) ==== |
− | * ''' | + | (only on v0.xx firmware. Can be substituted on v1.xx via custom scanlines and custom H/V interval) |
+ | ''Controls whether scanlines are drawn at alternative interval'' | ||
+ | * '''Off''': Standard interval is used. '''[default]''' | ||
+ | * '''On''': Scanline overlay is drawn on top on every other input line. Useful for sources which are pre-linemultiplied and then further multiplied by OSSC. | ||
− | ==== | + | ==== Scanline type ==== |
− | * '''0- | + | * '''Horizontal''': Scanlines are drawn on every other (passthru & line2x modes), every third (line3x), every 2 out of 4 (line4x) or every 2 out of 5 (line5x) output lines. '''[default]''' |
+ | * '''Vertical''': Scanlines are drawn on every other output column. | ||
+ | * '''Horiz. + Vert.''': Combination of horizontal and vertical mode. | ||
+ | * '''Custom''': Scanlines are drawn accoring to line-wise and column-wise strength set under Custom Sl. | ||
+ | |||
+ | ==== Custom Sl. ==== | ||
+ | ''Enables separate setting of each overlay line and column (line strength takes priority on pixels where it is >0%). To check how many sub-lines and -columns are in each mode, refer to [[Optimal timings#Horizontal multiplication factors]].'' | ||
+ | |||
+ | ===== H. interval ===== | ||
+ | (only on v1.xx firmware) | ||
+ | ''Horizontal interval of custom scanlines.'' | ||
+ | * '''Auto''': Interval is automatically calculated based on horizontal multiplication. '''[default]''' | ||
+ | * '''value''': Manually selected interval. | ||
+ | |||
+ | ===== V. interval ===== | ||
+ | (only on v1.xx firmware) | ||
+ | ''Vertical interval of custom scanlines.'' | ||
+ | * '''Auto''': Interval is automatically calculated based on vertical multiplication. '''[default]''' | ||
+ | * '''value''': Manually selected interval. | ||
+ | |||
+ | ===== Sub-line M str ===== | ||
+ | ''Strength for Mth sub-line, 0% disables line overlay.'' | ||
+ | |||
+ | ===== Sub-column N str ===== | ||
+ | ''Strength for Nth sub-column, 0% disables column overlay.'' | ||
+ | |||
+ | === Post-proc. === | ||
+ | |||
+ | ==== (Horizontal mask) ==== | ||
+ | (moved under Sampling opt on v1.xx firmware) | ||
+ | |||
+ | ==== (Vertical mask) ==== | ||
+ | (moved under Sampling opt on v1.xx firmware) | ||
+ | |||
+ | ==== Shadow mask ==== | ||
+ | (only on v1.xx firmware) | ||
+ | ''Enables a mask pattern imitating CRT shadow mask.'' | ||
+ | * '''Off''': Mask pattern disabled. '''[default]''' | ||
+ | * '''A-Grille''': Mask imitating aperture grille found in Trinitron monitors. | ||
+ | * '''TV''': Mask imitating shadow mask in consumer TVs. | ||
+ | * '''PVM''': Mask imitating Sony PVM series. | ||
+ | |||
+ | ==== Border color ==== | ||
+ | (Mask color in v0.xx firmware) | ||
+ | ''Sets border color'' | ||
+ | * '''Black|Blue|Green|Cyan|Red|Magenta|Yellow|White''': Border color. '''[default=Black]''' | ||
+ | |||
+ | ==== Mask brightness ==== | ||
+ | ''Sets mask brightness (only effective is color is set to non-black). Could be used as a precaution with self-emissive displays to avoid uneven wear.'' | ||
+ | * '''0-15''': Mask brightness level. '''[default=0]''' | ||
+ | |||
+ | ==== (Reverse LPF) ==== | ||
+ | (moved under Video in proc on v1.xx firmware) | ||
+ | |||
+ | ==== (DIY latency tester) ==== | ||
+ | (only on v0.xx firmware) | ||
+ | |||
+ | [[OSSC latency tester]] | ||
+ | |||
+ | === Compatibility === | ||
+ | |||
+ | Options that may need to be set to achieve compatibility with certain sources / displays. '''Do not enable unless absolutely required''', since they come with downsides. | ||
+ | |||
+ | ==== Full TX setup ==== | ||
+ | ''Sets whether TX initialization is done every time a video mode changes.'' | ||
+ | * '''Off''': TX is kept on during mode changes. '''[default]''' | ||
+ | * '''On''': TX is reinitialized when input/output mode changes, resulting to a short blank. Needed if display permanently loses sync / picture position during video mode changes. | ||
+ | |||
+ | ==== (AV3 interlacefix) ==== | ||
+ | (only on v0.xx firmware) | ||
+ | ''Sets whether internal sampling rate is kept minimal with 480i/576i modes.'' | ||
+ | * '''Off''': Internal sampling rate of 480i/576i is doubled to minimize jitter and generate optimal pclk input for FPGA PLL. '''[default]''' | ||
+ | * '''On''': Internal sampling rate of 480i/576i is not doubled, improving interlace detection via AV3 when sync edges are not perfectly aligned. | ||
+ | |||
+ | ==== AV3 use alt. RGB ==== | ||
+ | ''Selects whether alternative RGB and audio inputs are used with AV3 RGBHV and RGBS modes. Together with a small [[OSSC AV3 use AV1 RGB mod|HW modification]], Taito F3 etc. problematic systems can be connected to AV1.'' | ||
+ | * '''Off''': AV3 mode uses AV3 RGB and audio inputs. '''[default]''' | ||
+ | * '''AV1''': AV3 mode uses AV1 RGB and audio inputs. | ||
+ | * '''AV2''': AV3 mode uses AV2 RGB and audio inputs. | ||
+ | |||
+ | ==== Default HDMI VIC ==== | ||
+ | ''Selects Video Format Identification Code (VIC) which is indicated on HDMI AVI Infoframe for preset modes which do not have VIC specificed. Can be used to work around devices (switches/displays) that do not accept default VIC (0) indicating unknown mode.'' | ||
+ | * '''0-31''': VIC value. Try setting 2 (480p60) with problematic sinks. '''[default=0]''' | ||
+ | |||
+ | ==== (Panasonic hack) ==== | ||
+ | (only on v0.xx firmware) | ||
+ | ''Signal hack which improves line count tolerance with certain Panasonic TVs. Useful for Neo-Geo and PSX 288p in line2x mode.'' | ||
+ | * '''Off''': Disabled.'''[default]''' | ||
+ | * '''On''': Data enable signal is cut short on last active line in line2x mode. | ||
=== Audio options (available in ''-aud'' firmware) === | === Audio options (available in ''-aud'' firmware) === | ||
Line 268: | Line 599: | ||
* '''On''': Swap left/right audio channels. | * '''On''': Swap left/right audio channels. | ||
− | === | + | ==== Mono mode ==== |
− | + | (only on v1.xx firmware) | |
+ | * '''Off''': Normal stereo output. '''[default]''' | ||
+ | * '''On''': Audio channels are summed into mono which is output on both L and R channels. | ||
+ | |||
+ | ==== Pre-ADC gain ==== | ||
+ | ''Volume gain adjustment before audio is digitized. Can be used to compensate level differences between sources.'' | ||
+ | * '''-12-+12dB''': Gain. '''[default=0dB]''' | ||
+ | |||
+ | === Settings opt. === | ||
+ | |||
+ | Global settings (not part of profile, but saved when a profile is saved/loaded) | ||
+ | |||
+ | ==== Load profile ==== | ||
+ | ''Loads profile-specific settings (including adv. timing parameters) from a selected profile slot (0-9). This profile slot will be subsequently loaded on startup.'' | ||
+ | |||
+ | ==== Save profile ==== | ||
+ | ''Saves profile-specific settings (including adv. timing parameters) to a selected profile slot (0-9). This profile slot will be subsequently loaded on startup.'' | ||
+ | |||
+ | ==== Reset settings ==== | ||
+ | ''Resets current profile to default values without saving it.'' | ||
+ | |||
+ | ==== Link prof->input ==== | ||
+ | ''A target input can be set for current profile. Any time the profile is manually loaded, corresponding input is selected automatically.'' | ||
+ | |||
+ | ==== Link input->prof ==== | ||
+ | ''When enabled, each logical input tracks which profile was used last and it is automatically loaded when input is selected manually.'' | ||
+ | |||
+ | ==== Initial input ==== | ||
+ | ''Sets the input which is automatically activated when device is powered on. If "last used" is selected, id is saved every time input is switched (adding a minor delay) and is automatically selected next time OSSC is powered on. Test pattern is diplayed regardless of initial input setting until sync is detected on the respective input.'' | ||
+ | |||
+ | ==== Autodetect input ==== | ||
+ | ''Selects whether inputs are scanned to automatically detect active source. Scanning continues until sync is detected or timeout is met. Scanning can be (re)started by pressing RIGHT on the remote.'' | ||
+ | * '''Off''': Do not autodetect source. '''[default]''' | ||
+ | * '''Current input''': Scan different input modes on current physical input to autodetect source. | ||
+ | * '''All inputs''': Scan different input modes across all physical inputs to autodetect source. | ||
+ | |||
+ | ==== Auto AV1 Y/Gs ==== | ||
+ | Selects whether automatic input detection should select RGsB or YPbPr mode when sync is detected on Y/Gs line on AV1. | ||
+ | * '''RGsB''': RGsB mode is selected. '''[default]''' | ||
+ | * '''YPbPr''': YPbPr mode is selected. | ||
+ | |||
+ | ==== Auto AV2 Y/Gs ==== | ||
+ | Selects whether automatic input detection should select RGsB or YPbPr mode when sync is detected on Y/Gs line on AV2. | ||
+ | * '''RGsB''': RGsB mode is selected. | ||
+ | * '''YPbPr''': YPbPr mode is selected. '''[default]''' | ||
+ | |||
+ | ==== Auto AV3 Y/Gs ==== | ||
+ | Selects whether automatic input detection should select RGsB or YPbPr mode when sync is detected on Y/Gs line on AV3. | ||
+ | * '''RGsB''': RGsB mode is selected. '''[default]''' | ||
+ | * '''YPbPr''': YPbPr mode is selected. | ||
+ | |||
+ | ==== LCD BL timeout ==== | ||
+ | ''Sets backlight timeout for on-board character LCD. When enabled, backlight is automatically is turned off automatically when in main screen and no input from user has received for the set time'' | ||
+ | |||
+ | ==== OSD ==== | ||
+ | Selects whether OSD rendering is enabled and in which mode. When enabled, Navigation OSD is permanently visible when menu is active and a status OSD is temporarily displayed when input video mode changes. | ||
+ | * '''Off''': OSD is not displayed. | ||
+ | * '''Full''': Full OSD is displayed. '''[default]''' | ||
+ | * '''Simple''': Simple OSD is displayed. | ||
+ | |||
+ | ==== OSD status display ==== | ||
+ | Selects how long updated video parameters are shown on the status OSD. | ||
+ | * '''2s''': status shown for 2 seconds. | ||
+ | * '''5s''': status shown for 5 seconds. '''[default]''' | ||
+ | * '''10s''': status shown for 10 seconds. | ||
+ | * '''Off''': Status is not displayed. | ||
+ | |||
+ | ==== Phase hotkey ==== | ||
+ | (only on v1.xx firmware) | ||
+ | Selects if remote hotkey for phase control is enabled. Disabled by default since keycodes conflict with volume control of some Yamaha AVRs. | ||
+ | * '''Off''': Phase control keys disabled. '''[default]''' | ||
+ | * '''On''': Phase control keys enabled. | ||
+ | |||
+ | ==== Import settings ==== | ||
+ | Imports profiles made using [http://pbnl.byethost7.com/ossc/profiles/ this] web app which are stored on a SD card. | ||
− | === | + | ==== Export settings ==== |
− | '' | + | Export settings to SD card for copying into another board or as a backup. WARNING: SD card is formatted during operation so existing data is lost. Two different format options are selectable: |
+ | * '''FAT16''': Card is formatted as FAT16 and .bin file containing the settings is generated on the root of the card. The .bin file can be imported into the web app. | ||
+ | * '''RAW''': Settings are stored in raw format into the card, suitable for a direct import on another OSSC. | ||
− | === | + | ==== Fw. update ==== |
− | + | See the dedicated section on the bottom. | |
== Compatibility and special configuration == | == Compatibility and special configuration == | ||
− | We encourage the community to add sections under each system instead of having an enormous table here. That way we can have more detailed and specific information on a per system basis, and here links to all the systems tested so far. | + | We encourage the community to add sections under each system instead of having an enormous table here. That way we can have more detailed and specific information on a per system basis, and here links to all the systems tested so far. A link to a summary page of potentially incompatible systems is found at the end of the list. |
=== Home consoles === | === Home consoles === | ||
+ | * Atari [[2600]] | ||
+ | * Atari 5200 | ||
* Atari [[Jaguar]] | * Atari [[Jaguar]] | ||
* Microsoft [[Xbox]] | * Microsoft [[Xbox]] | ||
* Microsoft [[Xbox 360]] | * Microsoft [[Xbox 360]] | ||
* NEC [[PC Engine]] | * NEC [[PC Engine]] | ||
− | * Nintendo [[N64]] | + | * Nintendo [[N64|64]] |
− | * Nintendo [[NES | NES / Famicom]] | + | * Nintendo [[NES|NES / Famicom]] |
* Nintendo [[Gamecube]] | * Nintendo [[Gamecube]] | ||
− | * Nintendo [[Super NES | Super NES / Super Famicom]] | + | * Nintendo [[Super NES|Super NES / Super Famicom]] |
* Nintendo [[Wii]] | * Nintendo [[Wii]] | ||
* Sega [[Dreamcast]] | * Sega [[Dreamcast]] | ||
− | * Sega [[Sega Genesis |Genesis / | + | * Sega [[Sega Genesis|Genesis / Mega Drive]] |
* Sega [[Master System]] | * Sega [[Master System]] | ||
* Sega [[Saturn]] | * Sega [[Saturn]] | ||
− | * Sony [[Playstation]] | + | * SNK [[Neo Geo AES|Neo Geo]] |
− | * Sony [[Playstation 2]] | + | * Sony [[Playstation|PlayStation]] |
+ | * Sony [[Playstation 2|PlayStation 2]] | ||
+ | * Sony [[Playstation Portable|PlayStation Portable]] | ||
=== Computers === | === Computers === | ||
+ | * [[Atari 8-bit family]] | ||
* Commodore [[Amiga]] | * Commodore [[Amiga]] | ||
− | * Commodore [[C64]] | + | * Commodore [[C64|64]] |
− | * Sinclair [[Spectrum]] | + | * MGT [[Sam Coupé]] |
+ | * MSX | ||
+ | * Sinclair [[Spectrum|ZX Spectrum]] | ||
+ | * Sinclair [[Sinclair QL|QL]] | ||
=== Arcade Boards === | === Arcade Boards === | ||
Line 322: | Line 737: | ||
* Toaplan [[V1]] | * Toaplan [[V1]] | ||
* Toaplan [[V2]] | * Toaplan [[V2]] | ||
+ | |||
+ | [[OSSC potential incompatibilities]] | ||
+ | |||
+ | See also [[Optimal timings]]. | ||
+ | |||
+ | === Televisions, Monitors, Processors etc === | ||
+ | |||
+ | The community is constantly testing displays and related hardware with OSSC. While it is an insurmountable challenge to test every display, the data that's been collected is nevertheless often useful. Initially this data was saved in a Google Docs spreadsheet, but for a more permanent record I'm starting a page here. | ||
+ | |||
+ | [[OSSC Display Compatibility]] | ||
+ | |||
+ | [https://www.videogameperfection.com/forums/topic/tv-compatibility/ TV compatibility thread] | ||
== Remote control setup == | == Remote control setup == | ||
− | In addition to the included remote control, it is possible to program OSSC to detect infrared signals from any remote which uses common NEC IR protocol. This is useful | + | In addition to the included remote control, it is possible to program the OSSC to detect infrared signals from any remote which uses the common NEC IR protocol. This is useful if one wants to minimize the number of remote controls in their living room or if the included remote gets lost. Many TV remotes have optional controls for a DVD player or VCR which may be used for controlling the OSSC. Also, most AV receiver remotes allow controlling other devices (not just devices made by the same manufacturer), so it's possible to control the OSSC with a suitable manufacturer code. |
+ | |||
+ | To configure the OSSC for a new infrared remote, find a suitable manufacturer code (e.g. from Toshiba, NEC etc.) so that the OSSC's green LED blinks when a remote button is pressed. Now, power cycle the OSSC while holding BTN1 on the OSSC's PCB. A target function name (e.g. "MENU") will then be displayed on the OSCC's LCD screen. Press the corresponding key on the remote control, if the OSSC receives the code correctly you will be prompted to confirm the new code. Press the same key again to confirm, or BTN0 on the OSSC's PCB to go to the previous key. If you press BTN0 when configuring the first key, the default keymaps will be loaded. | ||
− | + | Once all remote control keys/buttons are programmed, the new keymap will be saved and the OSSC will return to normal operation. | |
[[OSSC_L336|L336 remote keycodes]] | [[OSSC_L336|L336 remote keycodes]] | ||
Line 337: | Line 766: | ||
=== Philips Pronto === | === Philips Pronto === | ||
− | For IR codes and related files for Philips Pronto and compatible remotes, see [[OSSC | + | For IR codes and related files for the Philips Pronto and compatible remotes, see [[Philips_Pronto|this page]]. |
+ | |||
+ | === LIRC/WinLIRC === | ||
+ | |||
+ | LIRC is a package that allows you to decode and send infra-red signals from your Linux or Windows PC. The Linux version can be found [http://www.lirc.org/ here], while the Windows version can be found [http://winlirc.sourceforge.net/ here]. | ||
+ | |||
+ | Using a compatible IR transmitter and the LIRC software, you can program a blank Chunghop L336 remote or any similar remote for use with the OSSC. [[OSSC LIRC Script|See this page]] for an example LIRC script for programming the Chunghop remote. | ||
== Known issues / limitations == | == Known issues / limitations == | ||
− | * interlaced content via | + | * interlaced content via AV3 in RGBHV/RGBS mode requires a hack to work (TVP7002 issue). V1.xx series firmware has a robust solution for this. |
− | * 240p | + | * 240p systems/games using ''even'' field indicator such as Chrono Cross (PSX) or G Darius (arcade) require a hack to work via AV1/2 (TVP7002 issue). OSSC input must be pre-selected and not changed with such games. V1.xx series firmware is more robust with respect to this issue. |
− | + | ||
+ | See also [[OSSC potential incompatibilities]]. | ||
== Firmware update == | == Firmware update == | ||
− | Firmware [ | + | Firmware images for [http://www.infocult.com/m/ossc/fw/ v0.xx series]. Since v0.74, a few firmware variants with following suffixes are available: |
− | * '''-aud''': | + | * '''-aud''': Audio-enabled firmware for v1.6-> boards and earlier boards with audio add-on board installed |
* '''-jp''': Japanese translation | * '''-jp''': Japanese translation | ||
− | * '''-aud_jp''': | + | * '''-aud_jp''': Audio + Japanese translation |
− | FW update requires a microSD card (>2GB SDHC/SDXC cards supported from fw. 0.74 onwards) and a program to write the binary file as a disk image to the card (Win32 Disk Imager, dd etc.). The card can be then inserted to OSSC, after which the update process can be started by selecting the update option from the menu and following on-screen instructions. When update is complete, power should be turned off and SD card removed. New fw is activated when system is powered on next time. | + | Firmware images for [http://www.infocult.com/m/ossc/fw/v1-series/ v1.xx series]. Only a single variant is available. |
+ | |||
+ | FW update requires a microSD card (>2GB SDHC/SDXC cards supported from fw. 0.74 onwards) and a program to write the binary file as a disk image to the card (Win32 Disk Imager, dd etc.). The card can be then inserted to OSSC, after which the update process can be started by selecting the update option from the menu and following on-screen instructions. When update is complete, power should be turned off and SD card removed. New fw is activated when system is powered on next time. Profiles and general settings (under "Setting opt") are not generally compatible between different firmware versions. | ||
See also - [http://www.videogameperfection.com/2016/04/21/ossc-firmware-update-tutorial/ Video tutorial on updating the firmware using Windows]. | See also - [http://www.videogameperfection.com/2016/04/21/ossc-firmware-update-tutorial/ Video tutorial on updating the firmware using Windows]. | ||
+ | |||
+ | Firmware updates can be prepared on Windows, Mac and Linux computers by using the [https://etcher.io/ Etcher software]. You may need to rename the firmware file, changing the file extension from ".bin" to ".img". | ||
=== Firmware update via JTAG === | === Firmware update via JTAG === | ||
Line 361: | Line 801: | ||
== Firmware changelog and roadmap == | == Firmware changelog and roadmap == | ||
− | === v0.74 === | + | === v1.11 === |
+ | * Extend Lumacode support to NES | ||
+ | * Add 480p/576p Line3x mode | ||
+ | * Restore settings export function | ||
+ | * Add display compatibility options (ADC/FPGA PLL BW, HPLL2x) | ||
+ | |||
+ | === Older versions === | ||
+ | <div class="mw-collapsible mw-collapsed"> | ||
+ | |||
+ | ==== v1.10 ==== | ||
+ | * Added support for Lumacode | ||
+ | * Added HDMI VRR flag option | ||
+ | * Reduced sampling jitter on optimized modes | ||
+ | * Fixed sync drop issue with some sources like MSX | ||
+ | * Fixed auto input detection loop | ||
+ | * High/optimal sampling rate modes added for passthru | ||
+ | |||
+ | ==== v1.09 ==== | ||
+ | * Sync processing and preset improvements | ||
+ | |||
+ | ==== v1.08 ==== | ||
+ | * First stable release for v1.xx series | ||
+ | |||
+ | ==== v1.01-1.07 ==== | ||
+ | * Beta releases for v1.xx series | ||
+ | |||
+ | ==== v0.90 ==== | ||
+ | * Settings import/export fixes | ||
+ | |||
+ | ==== v0.89 ==== | ||
+ | * Added profile export feature | ||
+ | * Minor bug fixes | ||
+ | |||
+ | ==== v0.88 ==== | ||
+ | * Fixed profile import issue | ||
+ | |||
+ | ==== v0.87 ==== | ||
+ | * New OSD | ||
+ | * Mode preset selection improvements | ||
+ | ** Selection made independent of physical input | ||
+ | ** 480p preset defined by hsync length in auto mode | ||
+ | ** Added 720p_50, 1080i_50 and 1080p_50 presets | ||
+ | * Minor clamp/alc related improvements | ||
+ | |||
+ | ==== v0.86 ==== | ||
+ | * Analog frontend updates | ||
+ | ** Add STC LPF option | ||
+ | ** Added clamp/ALC options | ||
+ | * Compatibility updates | ||
+ | ** Improved 576p / 800x600 detection | ||
+ | ** Updated AV3 alternative RGB compatibility option | ||
+ | ** Added 480x272 sampling mode for PSP | ||
+ | ** Optimizations to support higher pixel clock output | ||
+ | |||
+ | ==== v0.85 ==== | ||
+ | * Simple OSD implementation | ||
+ | * Mask color setting added | ||
+ | * FPGA timing improvements | ||
+ | |||
+ | ==== v0.84 ==== | ||
+ | * Added 384x240 optimized mode | ||
+ | * Fixed audio infoframe content to comply with HDMI spec | ||
+ | * Improved 400p support | ||
+ | * Added default HDMI VIC compatibility option | ||
+ | * Remote hotkey and display improvements | ||
+ | ** Enabled quick loading of profiles 10+ | ||
+ | ** Print profile quickload status | ||
+ | ** Enabled sampling phase adjustment while in menus | ||
+ | * Added "Panasonic hack" for improving line count tolerance with line2x (certain Panasonic TVs only) | ||
+ | * HDMI AVI Infoframe VIC assigned for passthru modes (improved compatibility with Denon AVRs etc.) | ||
+ | * Added compatibility option for AV3 to use AV1 RGB and audio (enables Taito F3 AV1 connection with a small HW mod) | ||
+ | * Initconfig and profile versions made independent of fw version | ||
+ | * H. samplerate fine-tuning made more intuitive | ||
+ | |||
+ | ==== v0.83 ==== | ||
+ | * Scanline updates and fixes | ||
+ | ** Overlay pattern customization feature | ||
+ | ** Fixed non-alternating mode with line4x interlace sources | ||
+ | ** Added half-interval option for pre-linedoubled sources | ||
+ | * Adv. timing option updates | ||
+ | ** Sampling phase made mode-specific | ||
+ | ** Horizontal samplerate fine-tune for optimized modes | ||
+ | * Video and audio TX parameters tweaked | ||
+ | ** Set optimal video clock level | ||
+ | ** Disable audio copyright flag | ||
+ | ** YCbCr444 TX mode added | ||
+ | * Auto YPbPr CSC option added | ||
+ | * Fixed profile load not reading data from last mode presets | ||
+ | * Enabled 35MHz video LPF for 720p & 1080i in auto mode | ||
+ | |||
+ | ==== v0.82 ==== | ||
+ | * automatic input detection feature added | ||
+ | * profile import feature with naming support added | ||
+ | * number of profile slots increased to 15 | ||
+ | * GBI 360p presets added | ||
+ | * 512x240 optimized mode added | ||
+ | * some adv. timing parameter limits increased | ||
+ | |||
+ | ==== v0.81 ==== | ||
+ | * multiplication-based scanline method added | ||
+ | * hybrid scanline option added | ||
+ | * 640x400 preset mode added | ||
+ | * option for linking input to profile added | ||
+ | * LCD backlight timeout option added | ||
+ | * H.mask range increased | ||
+ | * Infoscreen display updated | ||
+ | * fixed applying of some power-on default values | ||
+ | * fixed optimized mode mask and position inaccuracies | ||
+ | * pre-ADC video gain setting added | ||
+ | |||
+ | ==== v0.80 ==== | ||
+ | * PCM1862 audio ADC parameters corrected (fixes audio quality issues with certain systems, e.g. some Mega drive and Sega Saturn units) | ||
+ | * audio gain setting added (pre-ADC, +-12dB range) | ||
+ | * video test pattern updated (32 step grayramp) | ||
+ | * profile link option added (allows binding a profile to each logical input) | ||
+ | |||
+ | ==== v0.79 ==== | ||
+ | * DIY latency tester | ||
+ | * Reverse LPF feature added | ||
+ | |||
+ | ==== v0.78 ==== | ||
+ | * Added support for PCM1862 audio ADC (pcb v1.6) | ||
+ | * Added "Allow upsample2x" option to replace pixel repetition in certain modes | ||
+ | * Enabled line2x selection for 640x512 (X68k) | ||
+ | * A number of minor bugfixes | ||
+ | |||
+ | ==== v0.77 ==== | ||
+ | * Sync processing rewritten, fixing interlace detection issues etc. | ||
+ | * Mask brightness range increased | ||
+ | * Line2x optimized modes added | ||
+ | * 480i/576i Line3x and Line4x modes added | ||
+ | * HDMI IT content option added | ||
+ | * Some compatibility options added | ||
+ | |||
+ | ==== v0.76 ==== | ||
+ | * Line4x and Line5x implemented | ||
+ | * 960i and 1080i support added | ||
+ | * Dedicated line multiplication settings for each mode group | ||
+ | * Passthru option added for all mode groups | ||
+ | * 4:3 / 8:7 aspect selection for 256x240 mode | ||
+ | * Overlay mask placement fixed | ||
+ | * Mask brightness control added | ||
+ | * Fixed phase shift issue on optimized modes | ||
+ | * Increased IR receiver tolerance | ||
+ | |||
+ | ==== v0.75 ==== | ||
+ | * Added support for up to 10 profiles (incl. menu settings and adv. timing parameters) | ||
+ | * Remote hotkey added for quick profile loading | ||
+ | * Remote hotkeys added for sampling phase adjustment | ||
+ | * Improve remote keymap customization procedure | ||
+ | * Default analog sync LPF set to max | ||
+ | * Diy-audio fw: default TX_mode set to HDMI | ||
+ | * Optionally track last used input and restore it on powerup | ||
+ | |||
+ | ==== v0.74 ==== | ||
* New SD card controller supporting SDHC/SDXC cards | * New SD card controller supporting SDHC/SDXC cards | ||
* Official fw image for boards with diy-audio | * Official fw image for boards with diy-audio | ||
* Alternative fw images with menus translated into Japanese | * Alternative fw images with menus translated into Japanese | ||
− | === v0.73 === | + | ==== v0.73 ==== |
* Fixed adv. timing tweaker using previous values when updating parameters | * Fixed adv. timing tweaker using previous values when updating parameters | ||
* Added "Hsync tolerance" option to fix detection of certain Neo-Geo models | * Added "Hsync tolerance" option to fix detection of certain Neo-Geo models | ||
− | === v0.72 === | + | ==== v0.72 ==== |
* Some scanline rendering issues fixed | * Some scanline rendering issues fixed | ||
* Initial input option added | * Initial input option added | ||
Line 377: | Line 971: | ||
* Sync filtering improvements | * Sync filtering improvements | ||
− | === v0.71 === | + | ==== v0.71 ==== |
* Interlace passthrough | * Interlace passthrough | ||
* 480p/576p lineX2 | * 480p/576p lineX2 | ||
* Alternating scanlines | * Alternating scanlines | ||
− | === v0.70 === | + | ==== v0.70 ==== |
* YPbPr support for SCART and VGA | * YPbPr support for SCART and VGA | ||
* Dedicated buttons for each input mode | * Dedicated buttons for each input mode | ||
Line 394: | Line 988: | ||
* Tweaked generic linetriple parameters for correct aspect ratio | * Tweaked generic linetriple parameters for correct aspect ratio | ||
− | === v0.69 === | + | ==== v0.69 ==== |
* Default fw on 1st batch of pre-assembled boards | * Default fw on 1st batch of pre-assembled boards | ||
+ | </div> | ||
=== Scheduled improvements === | === Scheduled improvements === | ||
− | |||
− | |||
=== Other feature requests === | === Other feature requests === | ||
− | |||
* Field offset adjustment for interlaced sources | * Field offset adjustment for interlaced sources | ||
− | + | * Scale2x/Super Eagle style graphics filters | |
− | * Scale2x/Super Eagle style graphics filters | + | * De-dither filter for composite style faux transparencies |
− | * De-dither filter for composite style faux transparencies | ||
* 480p -> 2x240p (duplicate every other line to bypass interpolation for e.g. GC GB player) | * 480p -> 2x240p (duplicate every other line to bypass interpolation for e.g. GC GB player) | ||
− | * | + | * S-Video/Composite support (impossible without additional hardware) |
− | + | ||
− | + | == Ideas for alternative firmwares == | |
− | * | + | |
− | * | + | OSSC hw is capable of executing some other functions as well its main scanconversion task. Below is a list of ideas which are implementable with OSSC hw (possibly with small amount of extra hw), but may not be integrated to mainline fw due to technical or other reasons |
+ | |||
+ | * Configurable video / sync generator (see [[OSSC display test suite]]) | ||
+ | * 480i/p -> 240p downconverter | ||
== Info for developers == | == Info for developers == | ||
* [https://github.com/marqs85/ossc github repository] | * [https://github.com/marqs85/ossc github repository] |
Latest revision as of 19:36, 16 July 2024
Contents
- 1 Introduction
- 2 Power
- 3 AV inputs
- 4 AV outputs
- 5 Basic usage
- 6 Settings
- 6.1 Video in proc
- 6.2 Sampling opt.
- 6.3 Sync opt.
- 6.4 Output opt.
- 6.4.1 240p/288p proc
- 6.4.2 384p/400p proc
- 6.4.3 480i/576i proc
- 6.4.4 480p/576p proc
- 6.4.5 960i/1080i proc
- 6.4.6 Passthru mode
- 6.4.7 Line2x mode
- 6.4.8 Line3x mode
- 6.4.9 Line4x mode
- 6.4.10 Line5x mode
- 6.4.11 Line6x mode
- 6.4.12 Line5x format
- 6.4.13 256x240 aspect
- 6.4.14 TX mode
- 6.4.15 HDMI ITC
- 6.4.16 HDMI HDR flag
- 6.4.17 HDMI VRR flag
- 6.5 Scanline opt.
- 6.6 Post-proc.
- 6.7 Compatibility
- 6.8 Audio options (available in -aud firmware)
- 6.9 Settings opt.
- 6.9.1 Load profile
- 6.9.2 Save profile
- 6.9.3 Reset settings
- 6.9.4 Link prof->input
- 6.9.5 Link input->prof
- 6.9.6 Initial input
- 6.9.7 Autodetect input
- 6.9.8 Auto AV1 Y/Gs
- 6.9.9 Auto AV2 Y/Gs
- 6.9.10 Auto AV3 Y/Gs
- 6.9.11 LCD BL timeout
- 6.9.12 OSD
- 6.9.13 OSD status display
- 6.9.14 Phase hotkey
- 6.9.15 Import settings
- 6.9.16 Export settings
- 6.9.17 Fw. update
- 7 Compatibility and special configuration
- 8 Remote control setup
- 9 Known issues / limitations
- 10 Firmware update
- 11 Firmware changelog and roadmap
- 11.1 v1.11
- 11.2 Older versions
- 11.2.1 v1.10
- 11.2.2 v1.09
- 11.2.3 v1.08
- 11.2.4 v1.01-1.07
- 11.2.5 v0.90
- 11.2.6 v0.89
- 11.2.7 v0.88
- 11.2.8 v0.87
- 11.2.9 v0.86
- 11.2.10 v0.85
- 11.2.11 v0.84
- 11.2.12 v0.83
- 11.2.13 v0.82
- 11.2.14 v0.81
- 11.2.15 v0.80
- 11.2.16 v0.79
- 11.2.17 v0.78
- 11.2.18 v0.77
- 11.2.19 v0.76
- 11.2.20 v0.75
- 11.2.21 v0.74
- 11.2.22 v0.73
- 11.2.23 v0.72
- 11.2.24 v0.71
- 11.2.25 v0.70
- 11.2.26 v0.69
- 11.3 Scheduled improvements
- 11.4 Other feature requests
- 12 Ideas for alternative firmwares
- 13 Info for developers
Introduction
The Open Source Scan Converter is a low-latency video digitizer and scan converter designed primarily for connecting retro video game consoles and home computers to modern displays. It converts analog RGB or component video signals into a digital format, and doubles (or triples) the scanlines of a single frame if necessary to generate a valid mode for digital TVs or monitors.
The board and firmware originated as a homebrew project in 2015. The primary goal of the OSSC project was to create a scan converter with minimal latency and reasonable cost, which could also be assembled by hand. Output image quality and features have also been important targets as long as they didn't contradict with the project's primary goals.
Due to interest in the retro gaming community, both DIY kits and pre-assembled boards were first released to the public during early 2016. The firmware of the system is open source (hence the name) and new features can be added as time goes on.
If you're new to the OSSC and scalers/processors in general, you may wish to start with the quick start guide here.
There's now also an excellent getting started video tutorial, kindly created by RetroRGB, that you can view here.
Features
- Detection and digitization of various analog SDTV/EDTV/HDTV/PC modes
- Line double support for 240p, 480i, 288p, 576i, 384p, 480p, 576p
- Line3x/4x/5x/6x support for 240p/288p with different sampling modes
- Very low latency (less than 2 input scanlines)
- Fast "deinterlace" for 480i/576i and 960i/1080i
- Fast recover from input video mode change (e.g. 240p<->480i)
- All video processing done in RGB domain - no conversion to YCbCr
- Video and sync LPF for less-than optimal input signals
- Multiple inputs supporting various formats (see below)
- Full-range 24-bit RGB output through DVI/HDMI
- Emulated scanlines with configurable strength and position
- Configurable mask for overscan area
- Selectable sampling configuration for 480p input: DTV-480p or VGA 640x480
- Selectable CSC configuration for YPbPr source: Rec. 601 or Rec. 709
Board versions and availability
DIY kit
DIY kits contain a selection of special parts required for building an OSSC board. Common components such as SMD resistors/capacitors need to be ordered separately from electronics wholesalers (e.g. Mouser). Kits are available to buy worldwide from VideoGamePerfection.com
Assembly instructions for v1.3 kit Assembly instructions for v1.5 kit Assembly instructions for v1.6 kit
Pre-assembled board
Pre-assembled boards are manufactured and sold worldwide by:
VideoGamePerfection.com | Kaico International |
---|---|
List of components (v1.7) | List of components (v1.6) |
Note - micompuTer removed as they are not an approved reseller and may be selling units incompatible with recent firmware updates.
Note - Mallee Technologies removed due to their website being down for several months (no longer trading?)
As the project is open, board and selected parts can be customized by resellers. All listed sellers are encouraged to provide their list of components to improve transparency. Links to reference BOM are provided for comparison below so that buyers can check beforehand how much there are deviations which could affect performance or compatibility.
Board version and firmware compatibility
PCB revisions up to v1.7 support v0.xx series firmware as-is. It is possible to modify them to additionally support v1.xx series firmware. Instructions and more details are found in this forum thread.
PCB revision v1.8 is only compatible with v1.xx series firmware. Downgrading to v0.xx results to malfunctioning input detection, but does not brick the board.
More information & discussion
Power
OSSC requires an external DC power supply. A unit that outputs 5 volts DC with at least 1 Amp will work. The tip must be 2.1 x 5.5mm and centre positive. Suitable power supplies can be purchased from VideoGamePerfection.com or from any good electronics retailer.
If desired, a USB to Barrel Jack adapter can be used. This will function correctly as long as the USB port or charger used in conjunction with OSSC outputs at least 1 amp of current. Such adapters can often be found on Amazon or other popular retailers.
Do not use a power supply rated for AC output, or a power supply rated higher than 5 volts DC, doing so can damage the OSSC (especially v1.6 and earlier which have limited protection).
Using a supply that provides less than one amp of current may cause the OSSC to reset, especially when outputting at higher resolutions. You can however, safely use a PSU rated at least one amp or higher.
AV inputs
AV1 (RGB-SCART)
This input supports video in RGBS, RGsB (sync on green) and YPbPr formats. Composite video, luma or composite sync can be used as a sync source in RGBS mode. External sync splitters or boosters are generally not required or recommended as there is a built-in sync filter & separator in the ADC frontend. The sync input has 75 ohm termination, so a TTL-level sync signal should not be directly connected to the OSSC in order to avoid unnecessarily stressing the source console and/or OSSC. A 470 ohm series resistor on the console side of the cable is generally a good solution when using cables which are wired for the TTL-level sync output of a console. The video inputs also have standard 75 ohm termination, so arcade boards may need extra resistors on the cable when connected directly without using a Supergun.
AV2 (Component)
The AV2 input is a set of three RCA connectors which supports both component video (YPbPr) and RGB (RGsB format).
AV3 (VGA)
The AV3 input is a VGA/HD-15 connector which supports video in RGBHV, RGBS (pin 13), RGsB and YPbPr formats. RGBHV and RGBS modes require clean TTL-level sync signals and cannot extract sync from composite video or luma. AV3 is best suited for high-quality input sources as video LPF functionality is limited (the AV1 and AV2 inputs are routed through a dedicated LPF chip). Therefore, it is generally recommended to connect older consoles and arcade boards to these other inputs.
AV outputs
HDMI (DIY boards, v1.6 and newer pre-assembled boards)
DIY and newer pre-assembled boards contain a HDMI connector which is used to transmit video data in 24bit RGB format. Digital audio output is available on v1.6->, while it can be added via an add-on board for earlier boards (see below) . Currents up to 200mA can be safely supplied via DDC 5V power pin to external devices such as active cables.
DVI-D (v1.5 and earlier pre-assembled boards)
First revisions of pre-assembled boards came with DVI-D connector due to connector robustness and HDMI licencing worries. Functionality is otherwise similar, and it is possible to use a DVI-to-HDMI cable or adapter to connect to a HDMI display. Analog output pins of DVI are not used, so it is not possible to connect to a VGA monitor via a passive DVI-to-VGA cable or adapter (an active adapter is required instead, see below).
AV1 audio
Analog audio from SCART input is bypassed to a 3.5mm stereo output jack next to video output connector. On v1.6-> boards the jack alternatively functions as AV2 audio input, selectable via a miniature switch.
[Optional] Digital audio output for v1.5 and earlier boards
Borti4938 has created an add-on board that implements audio digitization and integration into HDMI output, which neither are natively supported by earlier OSSC boards. Both SCART input and 3.5mm connector (normally output) can be used as audio input, but it is highly recommended to have only either one of those connected at time since they are wired together internally.
All v1.5 and earlier OSSC boards are compatible with the mod (with -aud firmware), but required installation effort depends on OSSC/mod PCB versions. More information is found at the Github page of the mod.
[Optional] Analogue output
The OSSC does not come with an analogue video output, however this can be added easily by using a simple DVI or HDMI to VGA adapter. See analogue video output options for OSSC for more information.
Basic usage
Remote control
The OSSC is available with a pre-programmed infrared remote. This is optional, and can be replaced with a suitable programmable/learning remote if desired (see Remote control setup).
- 0-9: Selects AV source and input format. See remote picture on the side for reference.
- MENU: Activates/deactivates menu at on-board character LCD display
- OK: Selects sub-menu or function
- BACK: Returns to previous menu level or from info page to normal source display page
- UP/DOWN: Selects next/previous menu option
- LEFT/RIGHT: Option value -/+
- INFO: Displays extra information on video source processing. Top row shows current profile and current video mode preset. Bottom row shows accurate timing data from FPGA: lines per frame, p/i status, special processing (indicated by *) and cycles per frame (divide 27000000 by it to get Hz),
- LCD_BACKLIGHT: Turns on-board character LCD backlight off/on
- SCANLINE_MODE: Hotkey for selecting next "Scanlines" option value
- SCANLINE_TYPE: Hotkey for selecting next "Scanline type" option value
- SCANLINE_INT+/-: Hotkeys for adjusting scanline strength
- LINEMULT_MODE: Hotkey for selecting line multiplication mode for current video mode
- SAMP_PHASE+/-: Hotkey for sampling phase adjustment
- PROFILE_LOAD: Hotkey for quickloading a profile. Press again to enable selection of profiles 10 and higher
PCB buttons
- BTN0: Next input/mode
- BTN1: Select between scanlines off/auto/manual
Status LEDs
- Green: Power on. Light off when IR remote code detected
- Red: Unstable sync when alight.
NOTE: on v1.7 or earlier boards modified to support v1.xx series firmware, sync instability in encoded in green LED.
Settings
Video in proc
Video LPF
Video low-pass filter. Filters out high-frequency noise on video, and can reduce jitter when sampling clock does not match input video dot clock rate (e.g. older consoles in linedouble mode). NOTE: The last 3 settings are not effective with VGA input in RGBHV/RGBS mode.
- Auto: Suitable LPF is automatically selected based on input source and video mode [default]
- Off: LPF is disabled.
- 95MHz (HDTV II): 95MHz bandwidth – suitable for 1080p
- 35MHz (HDTV I): 35MHz bandwidth – suitable for 720p
- 16MHz (EDTV): 16MHz bandwidth – suitable for 480p etc. EDTV formats
- 9MHz (SDTV): 9MHz bandwidth – suitable for 240p, 480i etc. SDTV formats
Reverse LPF
(found under Post-proc on v0.xx firmware) Compensates unintended LPF/bleeding caused by sub-optimal video DAC (e.g. 1st rev SNES consoles) or long cables.
- 0-31: Reverse LPF strength. [default=0]
YPbPr input Color Space
Controls YPbPr->RGB colorspace conversion coefficients.
- Rec. 601: Input is assumed to be in Rec. 601 format, which is generally true for SD video [default]
- Rec. 709: Input is assumed to be in Rec. 709 format, which is generally true for HD video
- Auto: Rec. 601 is used for SD input, Rec. 709 for HD (720p and higher)
R/Pr / G/Y / B/Pb offset
Fine-adjustment of Red/Pr / G/Y / B/Pb channel offset (brightness)
- 0-255: [default=127]
R/Pr / G/Y / B/Pb gain
Fine-adjustment of Red/Pr / G/Y / B/Pb channel gain (contrast)
- 0-255: [default=26]
Pre-ADC Gain
Coarse-adjustment of Red/Pr / G/Y / B/Pb channel gain (contrast). Need to decreased with certain sources with higher than nominal video levels (e.g. 1-CHIP SNES consoles) to avoid clipping
- 0-15: [default=8]
Clamp/ALC offset
Allows clamp and ALC start position adjustment from the default value. Can help with certain sources if the brigthness is uneven across a scanline.
- -100-100: [default=0]
ALC V filter
ALV vertical filter coefficient. Reduce from default if line/field tilt occurs.
- 1-1024 lines: [default=1024 lines]
ALC H filter
ALV horizontal filter coefficient (duration for which ALC is applied after clamp).
- 2-256 pixels: [default=16 pixels]
Lumacode
(only on v1.xx firmware) Enables Lumacode decoding for selected system. A Lumacode source is connected to Y RCA jack and uses AV2_RGsB logical input. You need to additionally use optimized mode configured for the target system (especially H.samplerate), and possibly adjust phase and G/Y offset to get colors right.
- Off: Lumacode decoding disabled [default]
- C64: Lumacode decoding enabled for C64. Use 384col preset with H. samplerate of 504 for PAL C64 or 512/520 (depending on VIC-II mode) for NTSC
- Spectrum: Lumacode decoding enabled for ZX Spectrum. Use 384col preset with H. samplerate of 448 (?).
- Coleco / MSX: Lumacode decoding enabled for Colecovision / MSX. Use 256col preset with H. samplerate of 342.
- NES: Lumacode decoding enabled for NES. Use 256col preset with Line2x/5x mode.
Sampling opt.
480p in sampler
Controls the sampling mode when 525-line progressive signal (“480p”) is detected at input
- Auto: “VESA 640x480@60”-mode is selected when hsync length exceeds 3us, otherwise “DTV 480p”-mode is selected [default]
- DTV 480p: Input is sampled at 858 samples per line, typically associated with 720x480 mode (CEA-861 spec.) used by DTV/DVD equipment and newer game consoles. This option forces the sampling mode for all inputs, which may be required for optimal image quality when e.g. Dreamcast with a VGA module is connected to RGBHV input.
- VESA 640x480@60: Input is sampled at 800 samples per line, typically associated with VESA 640x480@60Hz mode used by PCs. This option forces the sampling mode for all inputs.
- PSP 480x272: Applies suitable sampling settings for PSP.
400p in sampler
Controls the sampling mode when 449-line progressive signal (“400p”) is detected at input
- VGA 640x400@70: Input is sampled at 800 samples per line, typically associated with VGA Mode 13h [default]
- VGA 720x400@70: Input is sampled at 900 samples per line, typically associated with VGA Mode 3+/7+
Allow TVP HPLL2x
(on v1.11+ firmware found under Compatiblity opt) Controls whether video digitizer H-PLL uses 2x sampling clock internally on supported video modes.
- On: Enables 2x H-PLL, generally reducing jitter at the price of inaccurate sampling phase due to internal bug. [default v0.xx]
- Off: Disables 2x H-PLL, which might help with Line5x stability. [default v1.11+]
Allow upsample2x
Controls whether 2x samplerate is used instead of pixel repetition in certain modes, e.g. 384pX2, 480pX2, 480iX3, 480iX4, 960iX2.
- On: 2x samplerate is used to double output horizontal resolution, which may be useful with sources that use off-spec horizontal rate. Alternatively, the option can be used to generate slightly more analog-esque (i.e. less pixellated) picture.
- Off: Pixel repetition is used to double output horizontal resolution, which regenerates source image most faithfully if sampling matches dot clock. [default]
Advanced timing tweaker
Allows fine-tuning of sampling/output parameters. Results greatly depend on displays - generally only position (backporch) adjustments are highly compatible. Efficient use requires knowledge of input and output hardware connected to OSSC. Video mode to edit (default is current mode) is selected via LEFT/RIGHT keys, after which tweaker is accessed via OK key. For more information, see the link below.
Horizontal samplerate
Sets how many samples ADC take each scanline (=between 2 consecutive hsync pulses). Mainly usable for console-specific fine-tuning in 320x240 / 256x240 optim. modes.
H. s.rate frac
Fine-tune fractional H.samplerate adjustment for optimized modes. Value set is a target - closest effective value is automatically selected since actual samplerate resolution (between 1/6 and 1) depends on line multiplication mode.
Horizontal/Vertical sync length
Sets output sync lengths, which by default are set to match expected input sync lengths. Usually no need to modify.
Horizontal/Vertical backporch length
Sets output backporch lengths, which by default are set to match expected input backporch lengths. Effectively adjusts image position.
Horizontal/Vertical active length
Sets the area which is marked as active in output signal. Enables image size adjustments on compatible displays.
Horizontal border
(renamed and moved here from v0.xx firmware)
- 0-255 pixels: Controls the size of a mask (border) generated around the picture in horizontal direction (1-pixel steps). Can be used to mask areas which would get hidden in the overscan region of CRT TVs. [default=0]
Vertical border
(renamed and moved here from v0.xx firmware)
- 0-63 pixels: Controls the size of a mask (border) generated around the picture in vertical direction (1-pixel steps). Can be used to mask areas which would get hidden in the overscan region of CRT TVs. [default=0]
Sampling phase
- 0-347 deg: Selects the phase of regenerated pixel clock (=position where each sample is taken). When output rate matches the input DAC rate (PC graphics modes, newer consoles, 2 last linetriple modes), it is important to adjust sampling phase for optimal quality. This setting should be adjusted only after adjusting sync and video LPF since they can alter the relative position of video and sync signals. Can be also adjusted with remote hotkeys while tweaking other sampling settings [default=180deg]
Sync opt.
Analog sync LPF
Low-pass filter selection for analog sync signals (SCART and component inputs plus VGA input in RGsB mode). Required if there is noise or glitches on the sync line.
- 2.5MHz: Highest filtering – recommended for sources that do not provide clean sync. [default]
- 10MHz: Medium filtering.
- 33MHz: Lowest filtering.
- Off: Sync is not filtered before processing.
Analog STC LPF
Low-pass filter selection for analog sync tip clamp (SCART and component inputs plus VGA input in RGsB mode). Stronger LPF improves robustness if significant undershoot is present on sync, but may lead to mode detection issues with HDTV signals.
- 4.8MHz (HDTV/PC): Lowest filtering – recommended for sources with clean sync. [default]
- 0.5MHz (SDTV): Highest filtering – recommended for SD sources which have undershoot on sync edge.
- 1.7MHz (EDTV): Medium filtering.
Analog sync Vth
Sets the sync slicer threshold. May help with dropouts as the last resort - sync LPF and coast settings should be tested through first.
- 0-350mV: threshold voltage. [default=124mV]
Hsync tolerance
Sets tolerance for hsync period variation outside of vsync. Needs to be increased from default to allow detection of some consoles like certain Neo Geo models. H-PLL coast also needs to be increased to enable stable output with these problematic sources.
- 0-39.2us: max. allowed period variance. [default=0.92us]
Vsync threshold
Sets delay threshold for extracting vsync from csync. The value should be higher than hsync length but lower that actual vsync length. Useful setting for Taito F2/F3 arcade boards
- 1.5-30.7us: delay threshold. [default=10.4us]
H-PLL Pre-Coast
Defines when PLL coast (current freq. freeze) is activated. Higher than default value needed with some sources (e.g. MD) for stable sync.
- 0-5 lines: Number of scanlines before vsync at when coast is activated. [default=1]
H-PLL Post-Coast
Defines when PLL coast (current freq. freeze) is deactivated. Higher than default value needed with some sources (e.g. MD) for stable sync.
- 0-5 lines: Number of scanlines after vsync at when coast is deactivated. [default=0]
ADC PLL BW
Selects bandwidth for video ADC PLL. Higher bandwidth results to lower sampling jitter at the cost of increased pixel clock jitter which some displays do not tolerate well. Reduce if video/audio cutouts occur.
- High: High bandwidth: prioritizes picture quality. Highly recommended when Lumacode is used or if the display has no issues processing the signal. [default]
- Medium: Medium bandwidth: tradeoff between quality and compatibility. This has been the fixed value on v0.xx and v1.0x firmwares.
- Low: Low bandwidth: prioritizes display compatibility.
- Ultra low: Ultra low bandwidth: use as last resort to resolve potential audio/video cutouts. High sampling jitter.
FPGA PLL BW
Selects bandwidth for FPGA PLL.
- High: High bandwidth. [default]
- Low: Low bandwidth. May improve pixel clock quality without affecting sampling stability.
Output opt.
240p/288p proc
Controls line multiplication setting for 240p/288p modes. NOTE: 3x/4x/5x do not generate standard 720p/960p/1080p/1200p CEA/VESA modes (total lines, pixels per line), so they are generally accepted only by monitors and not by many consumer TVs.
- Passthru: Only digitization is applied
- Line2x: Linedoubled 480p output. [default]
- Line3x: Linetripled 720p output.
- Line4x: 960p output.
- Line5x: 1080p/1200p output depending on Line5x format setting
- Line6x: 1440p 4:3 output (only available on v1.xx firmware)
384p/400p proc
Controls line multiplication setting for 384p/400p modes
- Passthru: Only digitization is applied
- Line2x: Linedoubled 1024x768 output. [default]
- Line2x 240x360: Linedoubled 720p output mainly targeted for GBI
- Line3x 240x360: Linetripled 1080p output mainly targeted for GBI
- Line3x Generic: 1600x1200 mode for 400p input. Not guaranteed to work due to pixel clock exceeding recommended HW limits
480i/576i proc
Controls line multiplication setting for 480i/576i modes
- Passthru: Only digitization is applied, deinterlacing will be handled by display. Generally results to higher quality picture at the price of added latency.
- Line2x (bob): Linedoubled 480p/576p output. [default]
- Line3x (laced): Linetripled 1440i/1728i output.
- Line4x (bob): Linequadrupled 960p/1152p output.
Beware of using the OSSCs Line2x (bob) or Line4x (bob) deinterlacing modes on sources that display static graphics or text for a long period of time. The OSSCs deinterlacer produces a constant flickering effect. This can cause image retention/burn in to occur faster than normal.
480p/576p proc
Controls line multiplication setting for 480p/576p modes
- Passthru: Only digitization is applied. [default]
- Line2x: Linedoubled 960p/1152p output.
- Line3x Generic: 1920x1440 output with pixel repetition.
960i/1080i proc
Controls line multiplication setting for 960i/1080i modes
- Passthru: Only digitization is applied, deinterlacing will be handled by display. Generally results to higher quality picture at the price of added latency.
- Line2x (bob): Linedoubled 1280x960/1920x1080 output. [default]
Beware of using the OSSCs Line2x (bob) deinterlacing mode on sources that display static graphics or text for a long period of time. The OSSCs deinterlacer produces a constant flickering effect. This can cause image retention/burn in to occur faster than normal.
Passthru mode
(only on v1.xx firmware) Controls the sampling and pixel clock multiplication mode for passthru.
- Normal: Standard sampling rate with most compatible output. [default]
- High samplerate: Higher samplerate for for SDTV/EDTV sources.
- 512x240 optim.: Optimal sampling rate with output horizontal multiplied by 3. For CRTs and compatible downstream processors only.
- 384x240 optim.: Optimal sampling rate with output horizontal multiplied by 4. For CRTs and compatible downstream processors only.
- 320x240 optim.: Optimal sampling rate with output horizontal multiplied by 5. For CRTs and compatible downstream processors only.
- 256x240 optim.: Optimal sampling rate with output horizontal multiplied by 6. For CRTs and compatible downstream processors only.
Line2x mode
Controls the sampling and pixel clock multiplication mode for line2x.
- Generic 4:3: Uses full horizontal sample rate without pixel multiplication, resulting to 720x480/576 output (4:3 aspect). [default]
- 512x240 optim.: For advanced users only - requires clock and phase adjustments. Uses a sampling rate which matches the DAC rate of 682 dots per line used by some classic consoles (e.g. SNES hi-res) in 512 mode, resulting to pixel-perfect digitization. Output is pixel-multiplied by 2 in horizontal direction, resulting to 1024x480 effective area of 1024x480 output. Note: If picture jitters when this mode is selected, adjust sampling phase until sweet spot is achieved.
- 384x240 optim.: For advanced users only - requires clock and phase adjustments. Uses a sampling rate which matches the DAC rate of 512 dots per line used by some systems (e.g. CPS2) in 384x240 mode, resulting to pixel-perfect digitization.
- 320x240 optim.: For advanced users only - requires clock and phase adjustments. Uses a sampling rate which matches the DAC rate of 426 dots per line used by some classic consoles (e.g. several PSX games) in 320x240 mode, resulting to pixel-perfect digitization. Output is pixel-multiplied by 2 in horizontal direction, resulting to 640x480 effective area of 640x480 output. Note: If picture jitters when this mode is selected, adjust sampling phase until sweet spot is achieved.
- 256x240 optim.: For advanced users only - requires clock and phase adjustments. Uses a sampling rate which matches the DAC rate of 341 dots per line used by various classic consoles (e.g. NES, SNES) in 256x240 mode, resulting to pixel-perfect digitization. Output is pixel-multiplied in horizontal direction, resulting to 768x480 or 512x480 (depending on 256x240 aspect setting) effective area of 768x480 output. Note: If picture jitters when this mode is selected, adjust sampling phase until sweet spot is achieved.
Line3x mode
Controls the sampling and pixel clock multiplication mode for line3x.
- Generic 16:9: Uses full horizontal sample rate without pixel multiplication, resulting to fully utilized 1280x720/864 output (16:9 aspect). Useful if connected to a CRT via DVI->VGA converter.
- Generic 4:3: Uses 3/4 of full horizontal sample rate without pixel multiplication, resulting to 960x720/864 effective area of 1280x720/864 output (4:3 aspect). [default]
- 512x240 optim.: For advanced users only - requires clock and phase adjustments. Uses a sampling rate which matches the DAC rate of 682 dots per line used by some classic consoles (e.g. SNES hi-res) in 512 mode, resulting to pixel-perfect digitization. Output is pixel-multiplied by 2 in horizontal direction, resulting to 1024x720 effective area of 1024x720 output. Note: If picture jitters when this mode is selected, adjust sampling phase until sweet spot is achieved.
- 384x240 optim.: For advanced users only - requires clock and phase adjustments. Uses a sampling rate which matches the DAC rate of 512 dots per line used by some systems (e.g. CPS2) in 384x240 mode, resulting to pixel-perfect digitization.
- 320x240 optim.: For advanced users only - requires clock and phase adjustments. Uses a sampling rate which matches the DAC rate of 426 dots per line used by some classic consoles (e.g. several PSX games) in 320x240 mode, resulting to pixel-perfect digitization. Output is pixel-multiplied by 3 in horizontal direction, resulting to 960x720 effective area of 1280x720 output. Note: If picture jitters when this mode is selected, adjust sampling phase until sweet spot is achieved.
- 256x240 optim.: For advanced users only - requires clock and phase adjustments. Uses a sampling rate which matches the DAC rate of 341 dots per line used by various classic consoles (e.g. NES, SNES) in 256x240 mode, resulting to pixel-perfect digitization. Output is pixel-multiplied in horizontal direction, resulting to 1024x720 or 768x720 (depending on 256x240 aspect setting) effective area of 1280x720 output. Note: If picture jitters when this mode is selected, adjust sampling phase until sweet spot is achieved.
Line4x mode
Controls the sampling and pixel clock multiplication mode for line4x.
- Generic 4:3: Uses full horizontal sample rate without pixel multiplication, resulting to 1280x960/1152 output (4:3 aspect). [default]
- 512x240 optim.: For advanced users only - requires clock and phase adjustments. Uses a sampling rate which matches the DAC rate of 682 dots per line used by some classic consoles (e.g. SNES hi-res) in 512 mode, resulting to pixel-perfect digitization. Output is pixel-multiplied by 2 in horizontal direction, resulting to 1024x960 effective area of 1024x960 output. Note: If picture jitters when this mode is selected, adjust sampling phase until sweet spot is achieved.
- 384x240 optim.: For advanced users only - requires clock and phase adjustments. Uses a sampling rate which matches the DAC rate of 512 dots per line used by some systems (e.g. CPS2) in 384x240 mode, resulting to pixel-perfect digitization.
- 320x240 optim.: For advanced users only - requires clock and phase adjustments. Uses a sampling rate which matches the DAC rate of 426 dots per line used by some classic consoles (e.g. several PSX games) in 320x240 mode, resulting to pixel-perfect digitization. Output is pixel-multiplied by 4 in horizontal direction, resulting to 1280x960 effective area of 1280x960 output. Note: If picture jitters when this mode is selected, adjust sampling phase until sweet spot is achieved.
- 256x240 optim.: For advanced users only - requires clock and phase adjustments. Uses a sampling rate which matches the DAC rate of 341 dots per line used by various classic consoles (e.g. NES, SNES) in 256x240 mode, resulting to pixel-perfect digitization. Output is pixel-multiplied in horizontal direction, resulting to 1280x960 or 1024x960 (depending on 256x240 aspect setting) effective area of 1280x960 output. Note: If picture jitters when this mode is selected, adjust sampling phase until sweet spot is achieved.
Line5x mode
Controls the sampling and pixel clock multiplication mode for line5x.
- Generic 4:3: Uses full horizontal sample rate without pixel multiplication, resulting to 1600x1080/1200 output (4:3 aspect). [default]
- 512x240 optim.: For advanced users only - requires clock and phase adjustments. Uses a sampling rate which matches the DAC rate of 682 dots per line used by some classic consoles (e.g. SNES hi-res) in 512 mode, resulting to pixel-perfect digitization. Output is pixel-multiplied by 3 in horizontal direction, resulting to 1536x1080/1200 effective area of 1080p/1200p output. Note: If picture jitters when this mode is selected, adjust sampling phase until sweet spot is achieved.
- 384x240 optim.: For advanced users only - requires clock and phase adjustments. Uses a sampling rate which matches the DAC rate of 512 dots per line used by some systems (e.g. CPS2) in 384x240 mode, resulting to pixel-perfect digitization.
- 320x240 optim.: For advanced users only - requires clock and phase adjustments. Uses a sampling rate which matches the DAC rate of 426 dots per line used by some classic consoles (e.g. several PSX games) in 320x240 mode, resulting to pixel-perfect digitization. Output is pixel-multiplied by 5 in horizontal direction, resulting to 1600x1080/1200 effective area of 1080p/1200p output. Note: If picture jitters when this mode is selected, adjust sampling phase until sweet spot is achieved.
- 256x240 optim.: For advanced users only - requires clock and phase adjustments. Uses a sampling rate which matches the DAC rate of 341 dots per line used by various classic consoles (e.g. NES, SNES) in 256x240 mode, resulting to pixel-perfect digitization. Output is pixel-multiplied in horizontal direction, resulting to 1536x1080/1200 or 1280x1080/1200 (depending on 256x240 aspect setting) effective area of 1080p/1200p output. Note: If picture jitters when this mode is selected, adjust sampling phase until sweet spot is achieved.
Line6x mode
(only on v1.xx firmware) Controls the sampling and pixel clock multiplication mode for line6x.
- Generic 4:3: Uses full horizontal sample rate without pixel multiplication (aside from TX pixel repetition), resulting to 1920x1440 output (4:3 aspect). [default]
- 512x240 optim.: For advanced users only - requires clock and phase adjustments. Uses a sampling rate which matches the DAC rate of 682 dots per line used by some classic consoles (e.g. SNES hi-res) in 512 mode, resulting to pixel-perfect digitization. Output is pixel-multiplied by 4 in horizontal direction, resulting to 2048x1440 effective area of 2048x1440 output. Note: If picture jitters when this mode is selected, adjust sampling phase until sweet spot is achieved.
- 384x240 optim.: For advanced users only - requires clock and phase adjustments. Uses a sampling rate which matches the DAC rate of 512 dots per line used by some systems (e.g. CPS2) in 384x240 mode, resulting to pixel-perfect digitization.
- 320x240 optim.: For advanced users only - requires clock and phase adjustments. Uses a sampling rate which matches the DAC rate of 426 dots per line used by some classic consoles (e.g. several PSX games) in 320x240 mode, resulting to pixel-perfect digitization. Output is pixel-multiplied by 6 in horizontal direction, resulting to 1920x1440 effective area of 1920x1440 output. Note: If picture jitters when this mode is selected, adjust sampling phase until sweet spot is achieved.
- 256x240 optim.: For advanced users only - requires clock and phase adjustments. Uses a sampling rate which matches the DAC rate of 341 dots per line used by various classic consoles (e.g. NES, SNES) in 256x240 mode, resulting to pixel-perfect digitization. Output is pixel-multiplied in horizontal direction, resulting to 2048x1440 or 1536x1440 (depending on 256x240 aspect setting) effective area of 2048x1440 output. Note: If picture jitters when this mode is selected, adjust sampling phase until sweet spot is achieved.
Using properly rated HDMI/DVI cables for Line5x mode is essential. Note that this mode is also incompatible with certain HDMI splitters. For some devices/displays, tweaking of the advanced timing options may be necessary. For example, on the VP50 Pro video processor, you should use H. Samplerate 2057 and H. Backporch 255 on the OSSC.
Line5x format
Selects the output format of line5x.
- 1920x1080: 1080-line output, which crops a few active lines from top and bottom of incoming video signal. [default]
- 1600x1200: 1200-line output that displays all active lines of incoming video signal.
- 1920x1200: 1200-line output that displays all active lines of incoming video signal.
Note - When using Line 5x mode, if your display can tolerate it, adjust h.samplerate to 1950 using the Advanced Timing Tweaker. This will help correct the image aspect ratio.
256x240 aspect
Selects the output aspect for 256x240 optim. mode.
- Pseudo 4:3 DAR: Integer-multiplication is handled so that target aspect is close to 4:3. [default]
- 1:1 PAR: Maintains square pixel aspect ratio.
TX mode
Sets the output TX mode.
- HDMI (RGB): 24-bit full-range RGB output with audio and auxiliary Infoframe packets. [default for v1.6-> and DIY boards]
- HDMI (YCbCr444): 24-bit YCbCr 4:4:4 (Rec. 601) output with audio and auxiliary Infoframe packets. Recommended for displays which do not support RGB in full-range.
- DVI: 24-bit full-range RGB output. Required if target display does not support HDMI. [default for DVI boards]
HDMI ITC
Sets IT content flag in AVI Infoframe when in HDMI TX mode.
- Off: No indication about content type. [default]
- On: Output is flagged as IT Content, hinting the dispaly that video filtering should not be applied and that source is in sRGB color space (and in full-range format). May reduce delay or change picture processing on certain displays.
HDMI HDR flag
(only on v1.xx firmware) Setups HDR Infoframe to indicate HDR output with HLG gamma when in HDMI TX mode.
- Off: Default SDR output. [default]
- On: Output is flagged as HDR HLG. Gamma response is not corrected so some accuracy is lost.
HDMI VRR flag
(only on v1.xx firmware) Setups VRR metadata to spoof VRR output (vertical blank is not extended dynamically).
- Off: No VRR metadata sent. [default]
- On: Freesync infoframe sent.
Scanline opt.
Scanlines
Controls whether emulated scanlines are drawn on top of the picture
- Off: No scanlines drawn [default]
- Auto: Horizontal scanlines are drawn for 240p/288p sources, alternating scanlines are enabled for 480i/576i, no scanlines for other sources
- On: Scanlines are drawn for every source according to "Scanline type" option
Sl. strength
- 6-100%: Strength of the emulated scanlines [default=6%]
Sl. hybrid str
- 0-175%: Strength of hybrid/blend effect (depedence of the pixel that is overlayed) in scanlines [default=0%]
Sl. method
Selects the method how scanlines are generated
- Multiplication: Scanline is generated by multiplying source RGB value [default]
- Subtraction: Scanline is generated by subtracting from source RGB value
Sl. alternating
Controls whether scanline position alternates along with fields of interlaced sources
- Off: Scanlines are always mapped to same output lines.
- On: Position is tied to field which shows as alternating position in output. Useful for reducing flicker. [default]
Sl. alignment
- Top: Scanline is drawn on top position of every group of output lines formed from a single input line. [default]
- Bottom: Scanline is drawn on bottom position of every group of output lines formed from a single input line.
(Sl. alt interval)
(only on v0.xx firmware. Can be substituted on v1.xx via custom scanlines and custom H/V interval) Controls whether scanlines are drawn at alternative interval
- Off: Standard interval is used. [default]
- On: Scanline overlay is drawn on top on every other input line. Useful for sources which are pre-linemultiplied and then further multiplied by OSSC.
Scanline type
- Horizontal: Scanlines are drawn on every other (passthru & line2x modes), every third (line3x), every 2 out of 4 (line4x) or every 2 out of 5 (line5x) output lines. [default]
- Vertical: Scanlines are drawn on every other output column.
- Horiz. + Vert.: Combination of horizontal and vertical mode.
- Custom: Scanlines are drawn accoring to line-wise and column-wise strength set under Custom Sl.
Custom Sl.
Enables separate setting of each overlay line and column (line strength takes priority on pixels where it is >0%). To check how many sub-lines and -columns are in each mode, refer to Optimal timings#Horizontal multiplication factors.
H. interval
(only on v1.xx firmware) Horizontal interval of custom scanlines.
- Auto: Interval is automatically calculated based on horizontal multiplication. [default]
- value: Manually selected interval.
V. interval
(only on v1.xx firmware) Vertical interval of custom scanlines.
- Auto: Interval is automatically calculated based on vertical multiplication. [default]
- value: Manually selected interval.
Sub-line M str
Strength for Mth sub-line, 0% disables line overlay.
Sub-column N str
Strength for Nth sub-column, 0% disables column overlay.
Post-proc.
(Horizontal mask)
(moved under Sampling opt on v1.xx firmware)
(Vertical mask)
(moved under Sampling opt on v1.xx firmware)
Shadow mask
(only on v1.xx firmware) Enables a mask pattern imitating CRT shadow mask.
- Off: Mask pattern disabled. [default]
- A-Grille: Mask imitating aperture grille found in Trinitron monitors.
- TV: Mask imitating shadow mask in consumer TVs.
- PVM: Mask imitating Sony PVM series.
Border color
(Mask color in v0.xx firmware) Sets border color
- Black|Blue|Green|Cyan|Red|Magenta|Yellow|White: Border color. [default=Black]
Mask brightness
Sets mask brightness (only effective is color is set to non-black). Could be used as a precaution with self-emissive displays to avoid uneven wear.
- 0-15: Mask brightness level. [default=0]
(Reverse LPF)
(moved under Video in proc on v1.xx firmware)
(DIY latency tester)
(only on v0.xx firmware)
Compatibility
Options that may need to be set to achieve compatibility with certain sources / displays. Do not enable unless absolutely required, since they come with downsides.
Full TX setup
Sets whether TX initialization is done every time a video mode changes.
- Off: TX is kept on during mode changes. [default]
- On: TX is reinitialized when input/output mode changes, resulting to a short blank. Needed if display permanently loses sync / picture position during video mode changes.
(AV3 interlacefix)
(only on v0.xx firmware) Sets whether internal sampling rate is kept minimal with 480i/576i modes.
- Off: Internal sampling rate of 480i/576i is doubled to minimize jitter and generate optimal pclk input for FPGA PLL. [default]
- On: Internal sampling rate of 480i/576i is not doubled, improving interlace detection via AV3 when sync edges are not perfectly aligned.
AV3 use alt. RGB
Selects whether alternative RGB and audio inputs are used with AV3 RGBHV and RGBS modes. Together with a small HW modification, Taito F3 etc. problematic systems can be connected to AV1.
- Off: AV3 mode uses AV3 RGB and audio inputs. [default]
- AV1: AV3 mode uses AV1 RGB and audio inputs.
- AV2: AV3 mode uses AV2 RGB and audio inputs.
Default HDMI VIC
Selects Video Format Identification Code (VIC) which is indicated on HDMI AVI Infoframe for preset modes which do not have VIC specificed. Can be used to work around devices (switches/displays) that do not accept default VIC (0) indicating unknown mode.
- 0-31: VIC value. Try setting 2 (480p60) with problematic sinks. [default=0]
(Panasonic hack)
(only on v0.xx firmware) Signal hack which improves line count tolerance with certain Panasonic TVs. Useful for Neo-Geo and PSX 288p in line2x mode.
- Off: Disabled.[default]
- On: Data enable signal is cut short on last active line in line2x mode.
Audio options (available in -aud firmware)
Down-sampling
- 2x (fs = 48kHz): Downsample 24bit/96kHz audio signal from audio ACD to 24bit/48kHz for best compatibility. [default]
- Off (fs = 96kHz): Do not downsample digitized audio signal.
Swap left/right
- Off: Do not swap audio channels. [default]
- On: Swap left/right audio channels.
Mono mode
(only on v1.xx firmware)
- Off: Normal stereo output. [default]
- On: Audio channels are summed into mono which is output on both L and R channels.
Pre-ADC gain
Volume gain adjustment before audio is digitized. Can be used to compensate level differences between sources.
- -12-+12dB: Gain. [default=0dB]
Settings opt.
Global settings (not part of profile, but saved when a profile is saved/loaded)
Load profile
Loads profile-specific settings (including adv. timing parameters) from a selected profile slot (0-9). This profile slot will be subsequently loaded on startup.
Save profile
Saves profile-specific settings (including adv. timing parameters) to a selected profile slot (0-9). This profile slot will be subsequently loaded on startup.
Reset settings
Resets current profile to default values without saving it.
Link prof->input
A target input can be set for current profile. Any time the profile is manually loaded, corresponding input is selected automatically.
Link input->prof
When enabled, each logical input tracks which profile was used last and it is automatically loaded when input is selected manually.
Initial input
Sets the input which is automatically activated when device is powered on. If "last used" is selected, id is saved every time input is switched (adding a minor delay) and is automatically selected next time OSSC is powered on. Test pattern is diplayed regardless of initial input setting until sync is detected on the respective input.
Autodetect input
Selects whether inputs are scanned to automatically detect active source. Scanning continues until sync is detected or timeout is met. Scanning can be (re)started by pressing RIGHT on the remote.
- Off: Do not autodetect source. [default]
- Current input: Scan different input modes on current physical input to autodetect source.
- All inputs: Scan different input modes across all physical inputs to autodetect source.
Auto AV1 Y/Gs
Selects whether automatic input detection should select RGsB or YPbPr mode when sync is detected on Y/Gs line on AV1.
- RGsB: RGsB mode is selected. [default]
- YPbPr: YPbPr mode is selected.
Auto AV2 Y/Gs
Selects whether automatic input detection should select RGsB or YPbPr mode when sync is detected on Y/Gs line on AV2.
- RGsB: RGsB mode is selected.
- YPbPr: YPbPr mode is selected. [default]
Auto AV3 Y/Gs
Selects whether automatic input detection should select RGsB or YPbPr mode when sync is detected on Y/Gs line on AV3.
- RGsB: RGsB mode is selected. [default]
- YPbPr: YPbPr mode is selected.
LCD BL timeout
Sets backlight timeout for on-board character LCD. When enabled, backlight is automatically is turned off automatically when in main screen and no input from user has received for the set time
OSD
Selects whether OSD rendering is enabled and in which mode. When enabled, Navigation OSD is permanently visible when menu is active and a status OSD is temporarily displayed when input video mode changes.
- Off: OSD is not displayed.
- Full: Full OSD is displayed. [default]
- Simple: Simple OSD is displayed.
OSD status display
Selects how long updated video parameters are shown on the status OSD.
- 2s: status shown for 2 seconds.
- 5s: status shown for 5 seconds. [default]
- 10s: status shown for 10 seconds.
- Off: Status is not displayed.
Phase hotkey
(only on v1.xx firmware) Selects if remote hotkey for phase control is enabled. Disabled by default since keycodes conflict with volume control of some Yamaha AVRs.
- Off: Phase control keys disabled. [default]
- On: Phase control keys enabled.
Import settings
Imports profiles made using this web app which are stored on a SD card.
Export settings
Export settings to SD card for copying into another board or as a backup. WARNING: SD card is formatted during operation so existing data is lost. Two different format options are selectable:
- FAT16: Card is formatted as FAT16 and .bin file containing the settings is generated on the root of the card. The .bin file can be imported into the web app.
- RAW: Settings are stored in raw format into the card, suitable for a direct import on another OSSC.
Fw. update
See the dedicated section on the bottom.
Compatibility and special configuration
We encourage the community to add sections under each system instead of having an enormous table here. That way we can have more detailed and specific information on a per system basis, and here links to all the systems tested so far. A link to a summary page of potentially incompatible systems is found at the end of the list.
Home consoles
- Atari 2600
- Atari 5200
- Atari Jaguar
- Microsoft Xbox
- Microsoft Xbox 360
- NEC PC Engine
- Nintendo 64
- Nintendo NES / Famicom
- Nintendo Gamecube
- Nintendo Super NES / Super Famicom
- Nintendo Wii
- Sega Dreamcast
- Sega Genesis / Mega Drive
- Sega Master System
- Sega Saturn
- SNK Neo Geo
- Sony PlayStation
- Sony PlayStation 2
- Sony PlayStation Portable
Computers
- Atari 8-bit family
- Commodore Amiga
- Commodore 64
- MGT Sam Coupé
- MSX
- Sinclair ZX Spectrum
- Sinclair QL
Arcade Boards
- Capcom CPS-II
- Data East Caveman Ninja Hardware
- Irem M92
- Nintendo Playchoice 10
- Namco Gaplus
- Sega Model 2
- Seibu SPI
- SNK Hal 21
- SNK Neo Geo MVS
- Sony ZN-1
- Taito F2
- Taito FX-1B
- Taito F3
- Toaplan V1
- Toaplan V2
OSSC potential incompatibilities
See also Optimal timings.
Televisions, Monitors, Processors etc
The community is constantly testing displays and related hardware with OSSC. While it is an insurmountable challenge to test every display, the data that's been collected is nevertheless often useful. Initially this data was saved in a Google Docs spreadsheet, but for a more permanent record I'm starting a page here.
Remote control setup
In addition to the included remote control, it is possible to program the OSSC to detect infrared signals from any remote which uses the common NEC IR protocol. This is useful if one wants to minimize the number of remote controls in their living room or if the included remote gets lost. Many TV remotes have optional controls for a DVD player or VCR which may be used for controlling the OSSC. Also, most AV receiver remotes allow controlling other devices (not just devices made by the same manufacturer), so it's possible to control the OSSC with a suitable manufacturer code.
To configure the OSSC for a new infrared remote, find a suitable manufacturer code (e.g. from Toshiba, NEC etc.) so that the OSSC's green LED blinks when a remote button is pressed. Now, power cycle the OSSC while holding BTN1 on the OSSC's PCB. A target function name (e.g. "MENU") will then be displayed on the OSCC's LCD screen. Press the corresponding key on the remote control, if the OSSC receives the code correctly you will be prompted to confirm the new code. Press the same key again to confirm, or BTN0 on the OSSC's PCB to go to the previous key. If you press BTN0 when configuring the first key, the default keymaps will be loaded.
Once all remote control keys/buttons are programmed, the new keymap will be saved and the OSSC will return to normal operation.
Logitech Harmony
See this page for a tutorial on using the Logitech Harmony with the OSSC.
Philips Pronto
For IR codes and related files for the Philips Pronto and compatible remotes, see this page.
LIRC/WinLIRC
LIRC is a package that allows you to decode and send infra-red signals from your Linux or Windows PC. The Linux version can be found here, while the Windows version can be found here.
Using a compatible IR transmitter and the LIRC software, you can program a blank Chunghop L336 remote or any similar remote for use with the OSSC. See this page for an example LIRC script for programming the Chunghop remote.
Known issues / limitations
- interlaced content via AV3 in RGBHV/RGBS mode requires a hack to work (TVP7002 issue). V1.xx series firmware has a robust solution for this.
- 240p systems/games using even field indicator such as Chrono Cross (PSX) or G Darius (arcade) require a hack to work via AV1/2 (TVP7002 issue). OSSC input must be pre-selected and not changed with such games. V1.xx series firmware is more robust with respect to this issue.
See also OSSC potential incompatibilities.
Firmware update
Firmware images for v0.xx series. Since v0.74, a few firmware variants with following suffixes are available:
- -aud: Audio-enabled firmware for v1.6-> boards and earlier boards with audio add-on board installed
- -jp: Japanese translation
- -aud_jp: Audio + Japanese translation
Firmware images for v1.xx series. Only a single variant is available.
FW update requires a microSD card (>2GB SDHC/SDXC cards supported from fw. 0.74 onwards) and a program to write the binary file as a disk image to the card (Win32 Disk Imager, dd etc.). The card can be then inserted to OSSC, after which the update process can be started by selecting the update option from the menu and following on-screen instructions. When update is complete, power should be turned off and SD card removed. New fw is activated when system is powered on next time. Profiles and general settings (under "Setting opt") are not generally compatible between different firmware versions.
See also - Video tutorial on updating the firmware using Windows.
Firmware updates can be prepared on Windows, Mac and Linux computers by using the Etcher software. You may need to rename the firmware file, changing the file extension from ".bin" to ".img".
Firmware update via JTAG
Firmware can also be updated via the JTAG connector and a suitable programmer such as the terasIC USB Blaster. A tutorial on how to do this is available here.
Firmware changelog and roadmap
v1.11
- Extend Lumacode support to NES
- Add 480p/576p Line3x mode
- Restore settings export function
- Add display compatibility options (ADC/FPGA PLL BW, HPLL2x)
Older versions
v1.10
- Added support for Lumacode
- Added HDMI VRR flag option
- Reduced sampling jitter on optimized modes
- Fixed sync drop issue with some sources like MSX
- Fixed auto input detection loop
- High/optimal sampling rate modes added for passthru
v1.09
- Sync processing and preset improvements
v1.08
- First stable release for v1.xx series
v1.01-1.07
- Beta releases for v1.xx series
v0.90
- Settings import/export fixes
v0.89
- Added profile export feature
- Minor bug fixes
v0.88
- Fixed profile import issue
v0.87
- New OSD
- Mode preset selection improvements
- Selection made independent of physical input
- 480p preset defined by hsync length in auto mode
- Added 720p_50, 1080i_50 and 1080p_50 presets
- Minor clamp/alc related improvements
v0.86
- Analog frontend updates
- Add STC LPF option
- Added clamp/ALC options
- Compatibility updates
- Improved 576p / 800x600 detection
- Updated AV3 alternative RGB compatibility option
- Added 480x272 sampling mode for PSP
- Optimizations to support higher pixel clock output
v0.85
- Simple OSD implementation
- Mask color setting added
- FPGA timing improvements
v0.84
- Added 384x240 optimized mode
- Fixed audio infoframe content to comply with HDMI spec
- Improved 400p support
- Added default HDMI VIC compatibility option
- Remote hotkey and display improvements
- Enabled quick loading of profiles 10+
- Print profile quickload status
- Enabled sampling phase adjustment while in menus
- Added "Panasonic hack" for improving line count tolerance with line2x (certain Panasonic TVs only)
- HDMI AVI Infoframe VIC assigned for passthru modes (improved compatibility with Denon AVRs etc.)
- Added compatibility option for AV3 to use AV1 RGB and audio (enables Taito F3 AV1 connection with a small HW mod)
- Initconfig and profile versions made independent of fw version
- H. samplerate fine-tuning made more intuitive
v0.83
- Scanline updates and fixes
- Overlay pattern customization feature
- Fixed non-alternating mode with line4x interlace sources
- Added half-interval option for pre-linedoubled sources
- Adv. timing option updates
- Sampling phase made mode-specific
- Horizontal samplerate fine-tune for optimized modes
- Video and audio TX parameters tweaked
- Set optimal video clock level
- Disable audio copyright flag
- YCbCr444 TX mode added
- Auto YPbPr CSC option added
- Fixed profile load not reading data from last mode presets
- Enabled 35MHz video LPF for 720p & 1080i in auto mode
v0.82
- automatic input detection feature added
- profile import feature with naming support added
- number of profile slots increased to 15
- GBI 360p presets added
- 512x240 optimized mode added
- some adv. timing parameter limits increased
v0.81
- multiplication-based scanline method added
- hybrid scanline option added
- 640x400 preset mode added
- option for linking input to profile added
- LCD backlight timeout option added
- H.mask range increased
- Infoscreen display updated
- fixed applying of some power-on default values
- fixed optimized mode mask and position inaccuracies
- pre-ADC video gain setting added
v0.80
- PCM1862 audio ADC parameters corrected (fixes audio quality issues with certain systems, e.g. some Mega drive and Sega Saturn units)
- audio gain setting added (pre-ADC, +-12dB range)
- video test pattern updated (32 step grayramp)
- profile link option added (allows binding a profile to each logical input)
v0.79
- DIY latency tester
- Reverse LPF feature added
v0.78
- Added support for PCM1862 audio ADC (pcb v1.6)
- Added "Allow upsample2x" option to replace pixel repetition in certain modes
- Enabled line2x selection for 640x512 (X68k)
- A number of minor bugfixes
v0.77
- Sync processing rewritten, fixing interlace detection issues etc.
- Mask brightness range increased
- Line2x optimized modes added
- 480i/576i Line3x and Line4x modes added
- HDMI IT content option added
- Some compatibility options added
v0.76
- Line4x and Line5x implemented
- 960i and 1080i support added
- Dedicated line multiplication settings for each mode group
- Passthru option added for all mode groups
- 4:3 / 8:7 aspect selection for 256x240 mode
- Overlay mask placement fixed
- Mask brightness control added
- Fixed phase shift issue on optimized modes
- Increased IR receiver tolerance
v0.75
- Added support for up to 10 profiles (incl. menu settings and adv. timing parameters)
- Remote hotkey added for quick profile loading
- Remote hotkeys added for sampling phase adjustment
- Improve remote keymap customization procedure
- Default analog sync LPF set to max
- Diy-audio fw: default TX_mode set to HDMI
- Optionally track last used input and restore it on powerup
v0.74
- New SD card controller supporting SDHC/SDXC cards
- Official fw image for boards with diy-audio
- Alternative fw images with menus translated into Japanese
v0.73
- Fixed adv. timing tweaker using previous values when updating parameters
- Added "Hsync tolerance" option to fix detection of certain Neo-Geo models
v0.72
- Some scanline rendering issues fixed
- Initial input option added
- Advanced timing tweaker - position, samplerate etc. adjusments
- R/G/B gain and offset control
- Sync filtering improvements
v0.71
- Interlace passthrough
- 480p/576p lineX2
- Alternating scanlines
v0.70
- YPbPr support for SCART and VGA
- Dedicated buttons for each input mode
- New menu structure
- Fix scanline idx and load of some settings
- Option to reset settings to defaults
- Extra remote shortcuts (scanline type, linemult mode)
- New options: ALC, Vsync threshold
- Automatic scanline mode (240p/288p)
- Reset line counters when changing input to avoid false mode detection
- Tweaked generic linetriple parameters for correct aspect ratio
v0.69
- Default fw on 1st batch of pre-assembled boards
Scheduled improvements
Other feature requests
- Field offset adjustment for interlaced sources
- Scale2x/Super Eagle style graphics filters
- De-dither filter for composite style faux transparencies
- 480p -> 2x240p (duplicate every other line to bypass interpolation for e.g. GC GB player)
- S-Video/Composite support (impossible without additional hardware)
Ideas for alternative firmwares
OSSC hw is capable of executing some other functions as well its main scanconversion task. Below is a list of ideas which are implementable with OSSC hw (possibly with small amount of extra hw), but may not be integrated to mainline fw due to technical or other reasons
- Configurable video / sync generator (see OSSC display test suite)
- 480i/p -> 240p downconverter