PS1/2 [TUT] Quick 240p emulation guide

SG854

Hi
Member
Joined
Feb 17, 2017
Messages
4,213
Trophies
1
XP
5,400
Country
Fiji
Yes, at least the later ones were targeting sRGB which is defined to use gamma 2.2 (with a 'black compensation' curve characteristic near black). See: https://en.wikipedia.org/wiki/SRGB

Also, btw - if you ever want to create another lut that might move you closer to CRT characteristics, see if you can pick bt1886 as a gamma target an are able to set the black level to 0.01cd/m2 fixed (Important to get a shape of the bt1886 curve that will probably resemble your CRTs gamma curve a little more). Also check, where the Curve lands at the high end. Should be slightly above 2.4. You could also experiment with setting deeper black levels. Just know that at infinite black, the bt1886 curve becomes 2.4 PLG (= flat).
I checked what the curve would look like with Black at 0.01 nits in HCFR and it starts at 2.22 and ends at 2.35

I was reading through the bt.1886 paper and there is an alternate EOTF to match a CRT better, that's different then the 2.4 absolute with a input offset. So two EOTFs are defined in the paper.

https://www.itu.int/dms_pubrec/itu-r/rec/bt/R-REC-BT.1886-0-201103-I!!PDF-E.pdf


Under Annex 1 is the traditional bt.1886 you know. Where on a 0 nit black display like an OLED will result in a flat 2.4 gamma. But the paper states that this does match a CRT.

What we want is what's under appendix 1 (informative). EOTF-CRT matching. The math formula though is beyond me.



I'm too lazy to measure my own CRT so I got some one else's measurements. If you read post #33 someone has provided measurements of a raw BVM.

https://www.avsforum.com/threads/ho...ion-can-lead-to-crushed-blacks.1409045/page-2


If you know how to use HCFR or any software that calculates gamma and input all those numbers the average comes out to 2.16. Rounded up is 2.2. And if you look at the curve on a graph it's quite sloppy not at all like bt.1886 with 0.01 nits as the black level.
 
Last edited by SG854,
  • Like
Reactions: notimp

notimp

Well-Known Member
OP
Member
Joined
Sep 18, 2007
Messages
5,782
Trophies
1
XP
4,363
Country
Laos
Thank you. :) And yes, I know how to use HCFR. :)

edit: Plotted the two curves Zoyd provided for the SONY BVM:

2.2:
6yGueuH.png
2.4:
DAMuILi.png
 
Last edited by notimp,

SG854

Hi
Member
Joined
Feb 17, 2017
Messages
4,213
Trophies
1
XP
5,400
Country
Fiji
Thank you. :) And yes, I know how to use HCFR. :)

edit: Plotted the two curves Zoyd provided for the SONY BVM:

2.2:
6yGueuH.png
2.4:
DAMuILi.png
The top graph is exactly how my CRT measures. I think that's why it looks contrasty. It hits between a 2.4 and 2.5 gamma coming out of black. That low end is important for a contrasty look.

You can probably recreate that on a OLED by using the 20 point gamma controls. But you'll need to create a 3D Lut to match the smpte-c or ebu phosphors of a crt. And maybe even raise the black level to 0.01 to have the same level of contrast. But probably not since you want those deep blacks.

Combine that with a newer LG OLED with black frame insertion that gets image persistence down to 4ms with Kurozumi Shader (the closest Shader the mimicks a high end Sony trinitron) and you'll a close to CRT experience as you can get that'll match what delelopers used, like what the developers of Final Fantasy 7 saw when they made their game on a Sony BVM CRT.

The monitor on the bottom right looks like a Sony BVM 1911. An older model that does SD only. And was most likely used for color correcting since they produce a very color accurate image. I have the one that came after that does SD and HD and also supports a switchable mode between rec.601 and rec.709.

31c190a85c24be5c7ba29f79c73bc80c.jpg


It matches the one in this picture. It has a pullout draw where you can adjust Convergence and Geometry. The one I have is the newer one that has no pull out draw and does those adjustments with a digital menu.
$_57.JPG
 
Last edited by SG854,
  • Like
Reactions: notimp

notimp

Well-Known Member
OP
Member
Joined
Sep 18, 2007
Messages
5,782
Trophies
1
XP
4,363
Country
Laos
Just a quick half OT on OSSC settings and Nintendo Wii based SNES emulation in 240p.

I'm playing through Famicom Detective Club Part II (SNES) currently - using the following Wii and OSSC settings:

Wii: 480p (4:3), Retroarch version from Superrsonic ( https://old.reddit.com/r/WiiHacks/comments/g5b8rc/a_mod_of_retroarch_with_autoresolution_switching/ ), auto resolution switching on, Deflicker on, Dither on, Trap filter on, texture scaling and menu scaling: point. Input options: Stick sensitivity raised to 310 - for the nunchuck stick to register a bit more naturally. This retroarch build gives you 240p output. (Which the OSSC is able to linedouble (scale) 5x)

Those are basically the settings to get a very decent looking 240p (approximately ;) ) signal out of the Wii, over component. Deflicker, Dither, and Trap filter all make sure, that the Wiis softening filter isnt enabled, that there are less analog artifacts in the component cable signal, and dithering just "rounds off" the resulting image (gives it a more pleasant look as far as I'm concernet).

OSSC settings:
- 5x resolution scale
- output resolution for 5x scale 1600x1200 (all other resolutions are too wide on Snes games == changes image width on an LG OLED, its not exactly 4:3 but a little wider, but I actually like it more than the exact scale (I would get with 4x resolution scale))
- full/limited rgb mismatch - so have the OSSC output RGB (= full rgb) and the TV expect limited range. This oversaturates the colors in the image (and crushes (= makes them black) colors very close to black - but with the SNES color pallet usually you arent getting crushed colors, just a saturation boost, by intentionally misconfiguring it that way.
- scanlines down to 6% (looks best, better than scanlines off)
- rec709 enabled (not 601) - this is subjective - resulted in more pleasing colors in that game. Not sure which one is correct with the Wii and that retroarch build
(Same goes with output from the Wii ScummVM build btw., there 709 is correct for sure. :) )
- All other settings left at generic 4:3 defaults.

LG Oled:
Super Resolution: low (slight blur and the edgesharpening filter)

The resulting image looks great. On an OLED.

Also Famicom Detective Club Part II (SNES) is pretty darn great as well. game wasnt bad to begin with, then suddenly it kicks into high gear and rulorz supremely. :) (Might take 3 hours or so until you get to this point.) So a definite recommendation to check it out from my side. :)


For people reading this without having read the rest of the thread - this is about how to get good quality pixel art images on a current generation TV. Wii with that version of RA installed allows you to output the original progressive resolution of games via component, OSSC upscales it cleanly by 5x (1080p equivalent output), allows you to add scanlines (with very low intensity), and play with color profiles (rec 601, vs rec 709, only a slight color shift -- and in my case set up a full/limited mismatch for a saturation boost). Resulting in an image, that otherwise you would only get on the TV using a PC, and playing around with softwarefilters, to get it anywhere near that decent looking. Wii can be used for emulation and clean 240p output via component.

Looks like this once set up:
4SUVkMv.jpg


edit: Phone camera didnt hit the autofocus correctly, so the image is more blurry - but trust me - it looks good.. ;)

edit2: Here are two better ones (more in focus) to gage subjective image quality:
PmzGhcG.jpg

7pX5rWk.jpg


edit3: Just tested mGBA (standalone) on the Wii, and can confirm, that it is able to run Final Fantasy VI in fullspeed (retroarch mGBA core on the wii can not), it also has a 240p option, so yay! :)

Best settings for OSSC luckily are the same as above - so I dont need to do a seperate writeup. :)

Images for a subjective assesment:
9SIAaHa.jpg

GXg8LMx.jpg

SGXrSOk.jpg


Sadly its not possible to configure the Wiimote in a nunchuck configuration as it is (by default in Retroarch), but mGBA standalone supports the Wii classic controller, so that works as well.. :) (Analog stick already is mapped to emulate the digipad.)
 
Last edited by notimp,

notimp

Well-Known Member
OP
Member
Joined
Sep 18, 2007
Messages
5,782
Trophies
1
XP
4,363
Country
Laos
[TUT] OSSC setup tutorial for new users (and 240p (-ish) content).

240p (-ish) content is content from 240p to 263p (maybe even more) that can be displayed by the OSSC at 5x scaling. :)

Had to write a tutorial on that, as setup is still a little complicated and I hadnt done a write up yet. I'll also go over one option in the Wii version of Retroarch (the one with 240p auto switching (see: h**ps://old.reddit.com/r/WiiHacks/comments/g5b8rc/a_mod_of_retroarch_with_autoresolution_switching/ )), namely "Trap filter" (in this reatroarch version most games benefit from having Deflicker and Dither in Video options enabled, but Trap filter is optional.)

Everything else is general OSSC setup stuff (with 240p content in mind).

1. First adjust the default profile
When firing up the OSSC for the first time imho four things should be changed in the default profile.
- Set scanlines to horizontal
- Set scanlines to on (25% intensity or so - so you see that they are on and dont forget it)
and
- in profile options set an auto time out for the displays backlight (the one on the OSSC itself, 3 seconds or so and or the display to turn off after a while - that way the display isnt bright and white all the time.)

Save that as profile 0, and never save over it again. ;) Thats your reset profile.

2. Create 240p profiles
Make sure you have a 240p source connected to your OSSC and it feeding 240p to the OSSC. (On the Wii f.e. install the linked version of retroarch, and enable auto resolution switching, and set the resolution to a 240p type resolution (that retroarch version then will switch image width based on the system - its all described in the reddit thread linked above)).

- Turn down scanlines to 6% (you'll most often use them at 6% or 12% with the settings we'll come to in this thread.)
- Set the default scaling for 240p signals in output options to 5x (and make sure, that you are in 5x scaling mode. :) )
- Set the resolution for 5x scaling to 1600x1200 (1920x1080 cuts of top and bottom, and 1920x1200 widens the image - if 1600x1200 doesnt work on your TV/monitor, pick 1920x1080.)
- Set color range in Input settings to rec709 (optional - we'll come to that later)
- Make sure color range in output is still set to full RGB and not YCbCr or DVI

Save that as profile 1.

Then

save the same as profile 2.

Now go into sampling options and advanced timings and set h.samplerate for the 1600x240 resolution (that will be active, because you are feeding 240p content) to 1950, because:

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.
src: https://junkerhq.net/xrgb/index.php/OSSC

If your TV stays blacked out while you are doing that (doesnt display an image, even after a few seconds of waiting), first solve that by increasing h.samplerate again (press right on the remote), then try switching output resolution to 1920x1200, then switch back to adjust h.samplerate, and see if you can reach 1950 now (If you save it once (later), its then saved for all 5x output resolutions).

If you dont succeed, your TV might not be compatible with that h.samplerate - simply skip that step, turn off the OSSC (and back on again if you like ;) ) and consider yourself done. And sorry for profiles 1 and 2 now being the same in your case. :) You can do what you like with profile 2 and use it for something else.. :)

If you succeeded in setting h.samplerate to 1950, go back to output, make sure 5x output resolution is set to 1600x1200 (or1920x1080 if your TV or monitor wasnt compatible with 1600x1200 in the testing before) - (the image should now switch to that resolution, with h.samplerate 1950 still active - if the screen turns black at that point and doesnt come back on turn off the OSSC and also consider yourself done. :) ).

If setting h.samplerate to 1950 (for the 240p signal) and switching to 1600x1200 (or 1920x1080) succeeded - go to profile management and save that profile as profile 1.

Profiles 1 and 2 should now only differ in h.samplerate - everything else on them still should be the same.

Congratulations, you are done. :)

3. Enjoy all the options you are having now.

:)

Dont you worry, I'll illustrate them right here and now. ;)



All of the following is said with a Gamma 2.2 profile on your TV/monitor in mind. Thats what any gaming mode on a TV would use, or any professional sRGB monitor, and what would be considered the default gamma setting for gaming - usually. (The exception would be if you are gaming in a dark room, in which case, your TV or monitor settings would maybe have been tuned to use (PLG, so flat ;) ) Gamma 2.4, in which case, you can also try the following settings, but your image will be darker and more saturated to begin with.).

On the LG Oled every 'Image enhancer', except 'Super Resolution: low' has been disabled.

Image source in the following examples is a Wii, conected to the OSSC via component.


Lets start with my preferred setting for Pixel Art, featuring color range mismatch. :)

Settings: Signal 240p, OSSC set to scale it by 5x to 1600x1200, OSSC set to output Full RGB (output settings), TV set to expect a limited (not full) signal range, input settings on the OSSC set to rec709 (even if the signal most likely is rec601), horizontal scanlines active at 12% intensity, trap filter in Retroarch Wii enabled (video options in Retroarch on Wii, Deflicker and Dither also enabled in the same options). (= profile 1 you've set up above):

VhBkSVV.jpg


Now to what does what. :) Setting the Full RGB and TV expects limited mismatch oversaturates the colors (and also will crush (= make black) near blacks) -- but it looks good. :) Enabling rec709 in input settings, will brighten (make them a little colder) skintones, and most memory colors (image looks brighter and less saturated on some colors :) ), this goes together well with trap filter enabled in Retroarch Wii, which seems to add white to certain contours (or brighten them) almost like a sharpening filter but without distorting pixel transitions (the image gets more pop and looks less flat - works well with most games).

Here are the same settings with trap filter disabled:
MrHnC4O.jpg


Here are the same settings with trap filter disabled and color range on the OSSC set to rec601 (which most likely is correct) (trap filter mostly works with rec709 enabled, with rec601 it looks mostly off anyhow - so it stays disabled):

iFEuvMD.jpg


And here is the correctly set up image, as per the AV standard. :) rec601 set in input settings on the OSSC, trap filter off, OSSC output color range still at Full RGB, but TV set to expect a full RGB signal. (So color range mismatch removed.):

88fTG7Q.jpg


As you can see, the colors are much more muted now. :) (Less saturated.)


Lets do that again. :)

Everything the same as above, only scanlines now at 6% intensity and a different game. :) (Scanlines will stay at 6% intensity from now on for the rest of the images in this thread, just fyi. :) )


Settings: Signal 240p, OSSC set to scale it by 5x to 1600x1200, OSSC set to output Full RGB (output settings), TV set to expect a limited (not full) signal range, input settings on the OSSC set to rec709 (even if the signal most likely is rec601), horizontal scanlines active at 6% intensity, trap filter in Retroarch Wii enabled (video options in Retroarch on Wii, Deflicker and Dither also enabled in the same options). (= profile 1 you've set up above):

jO96bVs.jpg


Here the same with Trap filter disabled:

Chrono Trigger always looks better with Trap filter disabled, btw - so consider that an optional setting! It has to do with the whiter contures that make the image less flat looking adding more "dimensionality" that crashes with the artstyle and your sense of foreground and background.
In this game I always leave it off.

NZbP1ws.jpg


Here with trap filter disabled and input color range set to rec601 (probably the correct one):

pDcEEka.jpg


And here with the image set up correctly as per standard. Input options set to rec601, trap filter off, OSSC still set to output full RGB, and the TV now set to expect a full RGB image:

V7XAyg2.jpg


And again the image becomes less saturated.


Lets do that again, with a last set of images - those especially benefit from Full RGB/limited mismatch, rec709 on and trap filter on.

Settings: Signal 240p, OSSC set to scale it by 5x to 1600x1200, OSSC set to output Full RGB (output settings), TV set to expect a limited (not full) signal range, input settings on the OSSC set to rec709 (even if the signal most likely is rec601), horizontal scanlines active at 6% intensity, trap filter in Retroarch Wii enabled (video options in Retroarch on Wii, Deflicker and Dither also enabled in the same options). (= profile 1 you've set up above):

ESav6gj.jpg


Same with trap filter off:

zHxMPfa.jpg


Same with trap filter off and input set to rec602 (probably correct):

XWYuxc7.jpg


And same with trap filter off, input set to rec 602, OSSC set to output full RGB, but TV set to full signal range, so the correct settings as by AV standards:

71dJ0eO.jpg


And again, the image is less saturated, but this time we also see more details in the background - because we arent crushing near blacks anymore. :) (crushing = makeing them black).
--

Last comparison is

OSSC profile 1 vs profile 2 in my preferred setting (so the one for the first image in all three comparisons so far) - and the only thing thats changing here is aspect ratio.

So we set profile 1 up to have "true" 4:3 aspect ratio (only affecting 5x 240p scaling btw - all other scaling modes are still at default), and left profile 2 at OSSC default 5x scaling, which is a little wider.

The game is Famicom Detective Club Part II on the SNES, and this one actually profits from a wider than 4:3 aspect ratio. (The art assets and the font do).

So here is profile 1 (true 4:3)

0t6I7yp.jpg


vs profile 2 (a little wider than 4:3, and the default OSSC 5x scaling, 4x and below on the OSSC always scale to correct (f.e. 4:3) aspect ratios, out of the box, the h.samplerate change only has to be done on the 5x scaling resolutions (what we did on profile 1)):

7i0mcC4.jpg


So thats it - thats my OSSC setup guide and image comparison section. Without even mentioning the words "optimal timings" once. ;) (Everything left at default timings wise (at Generic 4:3 output) - except h.samplerate in that one instance.. ;) )

Hope you can draw something useful out of that. :)

Me loves my OSSC and Wii combo, thats all.. ;)

edit: Just one more tip - if the OSSC/TV/retroarch starts to show a white transparent layer in front of your game, or a slim white border on the right site of the image, switch OSSC profile to profile 0 (load it), then load profile 2, and then either stay on profile 2, or load profile 1.
That behavior started on my Oled when I saved the h.samplerate changed profile 1 to a profile slot, and its fixed, by loading profile 0. Loading profile 2, then 1 solves the small white bar issue on profile 1.



edit2: Oh, one more important step. :)
I just saw on the photos above, that the image wasnt centered anymore after the h.samplerate modification. So adjust for that in h.backporch - this way:

Have a 240p source playing, load profile 1, make sure that you are in 5x mode.

The math goes as follows:

Starting h.samplerate was 2046, we reduced that to 1950, so

2046 - 1950 = 96
96/2 = 48

So reduce h.backporch by 48. Then save as profile 1.

Chrono Trigger then still isnt perfectly centered, so you could adjust h.backporch even further, but that is the correction towards the OSSC default setting - according to the math. ;)

Adjusting h.backporch just moves the entire image horizontally. :)



edit3: Proof of correct colors:
;)
(Video not made by me.. ;) )
 
Last edited by notimp,
General chit-chat
Help Users
    kenenthk @ kenenthk: Can we name future babies due to covid