The Holy Grail: What is the right way to use a CRT television?

even at 240px height, bilinear will add some blurring but not much.

Yeah, it looks to me like maybe the Nvidia binary driver has some secret sauce for talking to the TV-out chip. Are you sure that it puts out the actual res with the binary driver and not 480i regardless of what you feed it? That’s all I could ever get my svideo-out to do, though this was on an old Ati/radeon.

It’s difficult to tell what the S-Video output is actually outputting as the television doesn’t report the resolution and my eyes are my only tool for discerning any differences. It appears as though it is, but I could certainly be wrong. I think I might make separate versions of my test image (http://eightvirtues.com/lakka/NTSC,%20640x480.png) for each resolution I test to see if there is any aliasing, which would be a clue that some kind of hardware scaling is occurring.

According to xrandr (and my experimentations) the only modes that work with TV-0 (my S-Video output) are 1024x768, 800x600, 720x480, 640x480 and 640x400. From what I read online, 720x480 is the maximum resolution that can be sent over S-Video, so if true the higher resolution modes of 800x600 and 1024x768 may be being downscaled by hardware. It’s also possible that 720x480 is being downscaled to 640x480. When using RetroArch at 720x480 with full overscan the games appear to be perfectly proportional relative to the CRT TV bezel (tested with Contra and SMB), so this may be a good mode to go with from this point onward if in fact it is not possible to output at 240p.

When running 480i (which I plan to do now unless additional experimentation or information yields other possibilities) is there a shader than can simulate 240p, or is my only recourse a hardware solution? At this point I’m becoming so frustrated that I’m considering planning a Kickstarter to create a hardware device specifically to convert a DVI/HDMI signal to 240p, as it seems such a thing is so niche that existing devices are no longer being produced and difficult to find second-hand. If I find an acceptable solution I’m going to make a tutorial/writeup and video (part VI of my arcade cabinet build videos on YouTube) so others may benefit.

[edit] An odd quirk I forgot to add: Apparently the ~/.nvidia-settings-rc configuration file does not get its overscan settings applied if /etc/X11/xorg.conf does not exist, so I’ve started using xorg.conf again just for that purpose. Failure to use full overscan (max value = 25) results in heavy aliasing of my test image, so maximizing overscan is necessary for an accurate image.

AFAIK, SDTVs can only do 480 lines when interlaced, which is why the “240p” mode exists at all (that is, it’s the only way to get 60 fps out of an NTSC signal). So, yeah, my guess is that you’re always getting 480i out of your card.

Currently, the best/easiest way to get an emulator running native res onto a CRT TV is VGA, which can be converted to SCART or YpPbPr. No CRT TVs (that I know of) supported native DVI/HDMI while also supporting native “240p”. The Sony Wega models with HDMI/DVI ports deinterlaced/line-doubled those images, just like a flat-panel would.

The other easy option is a hacked Wii, which can output “240p” over YpPbPr (or SCART if you don’t mind doing going through some effort).

Would a scan converter like this one be of any use?

I don’t know if it will output 240p, but it does accept a D-Sub/VGA input, which would at least give me greater control over the resolutions and refresh rates since the TV out is so limited.

This page got me started:

http://scanlines.hazard-city.de/

Hmm, I’m not sure but I think it just does what your vid card’s TV-out does, which is takes whatever res you give it and then crunches it down to NTSC-compatible 480i.

This is unacceptable. Is there a dedicated device to convert VGA, DVI or HDMI to 240p that is still being produced? If not, we all need to band together and Kickstart the thing, making it completely open as well so anyone can fabricate one themselves in the future. I’m dead serious, so let me know what you (or anyone else reading this) thinks about the idea. It should be a terribly inexpensive and simple device, one would think (I’m not an electrical engineer or computer scientist).

It looks like the Extron Emotia series is what you want: http://retrorgb.com/emotia.html

These things used to cost thousands of dollars, though, so dunno if cloning them is a feasible option.

I have been obsessing over this same issue for the past week and I have managed to get very close and cost effective with one minor issue. As seen here in this video: https://youtu.be/VLBHWZV1dZ4

I get the vertical scrolling I cant get rid of.

I am using this HDMI to component converter:https://www.radioshack.com/products/radioshack-hdmi-to-component-converter?variant=5717010885 and a raspberry pi 3 to push 240p over hdmi.

It actually works and converts the digital signal to analog. I have been messing with the hdmi_modes in the config.txt file and managed to get a 240p signal over hdmi. I needed to set the ratio in lakka/retroarch to 4:1 but It gives natural rich scanlines and looks right. It appears smaller and centered at first. The only issue is that I have the vertical scrolling I cant seem to get rid as seen in the video. If anyone has any ideas how to solve it. There is no framebuffer settings so the picture is really sharp and clear.

If someone can help fix this, we can have 240p over hdmi with component for cheap. I also used the 480i hdmi modes but they flicker a bit and I cant get any shaders/scanlines to look right so i’m going for try 240p now. This 240p mode has no flicker and looks sharp and so much better then the 480i hdmi_mode.

I have a feeling if someone can help figure out the correct “hdmi_timings” or “hdmi_cvt” it might fix that issue, but i am really mot sure.

All I did was add: hdmi_group=1 hdmi_mode=8

to the config.txt to get this far. I tried adding “hdmi_timings=320 1 16 30 34 240 1 2 3 22 0 0 0 60 0 6400000 1 #240p” from a setting I found online but I don’t think it’s working. I am not sure if the hdmi_timings or hdmi_cvt even apply to hdmi_group=1.

I think that’s typically a sync issue. Not sure how you would deal with it. Otherwise, looks great!

[QUOTE=hunterk;41297]It looks like the Extron Emotia series is what you want: http://retrorgb.com/emotia.html[/QUOTE]

The Emotia was replaced by the VSC 500 and VSC 700/700D models. I’ve searched for the discontinued Emotia models and can’t find them second-hand. According to http://scanlines.hazard-city.de/ the VSC models require an additional component (an “RGB interface”) to output 240p, as they natively output only 480i. I don’t fully understand what the author means, but here’s the gist:

The Extron VSC series was the successor to the Emotia series. … They also offer several anti-flicker settings, one even mimicking a 240p output, but in all cases, their output signal stays at 480i. … And second the 480i output can be changed to 240p by adding a RGB interface.

Most the RGB interfaces have a set of BNC outputs for running long cables and one or more HD15 VGA input to connect a local source. Just put the RGB interface between your source and the UVC/Emotia and shift the signal using the centering controls. This will oh-so magically increase the sharpness of your output a lot!

I can find a VSC 500 on ebay for about $50 and apparently the lower-end Extron RGB interfaces start at $20, which is awesome IF THAT SHIT WORKS. :slight_smile:

I’m hoping it won’t have to come to that. Also I like what tekn0 is cooking. I found this HDMI to composite converter also on the radioshack site:

Couldn’t find a similar product for S-Video, though.

On a slightly different note, I found RetroArch’s performance lacking on Linux Mint 17.3 with MATE and the binary NVIDIA driver (I know; ironic), so I reinstalled Lakka. Everything’s good, short of 240p, however I have no idea despite insane research how to disable overscan compensation. There’s no X11, xrandr, nvidia-settings, only KMS. Does anyone know if it’s possible to enable full overscan using only kernel parameters and nouveau?

[edit] I just pulled the trigger on a used/tested VSC 500 on eBay for a smooth $29 with free shipping. Will report back with findings and screenshots, assuming the results are worth looking at.

[QUOTE=kevinfishburne;41326]Also I like what tekn0 is cooking. I found this HDMI to composite converter also on the radioshack site:

Couldn’t find a similar product for S-Video, though. [/QUOTE]

I actually got both of them. The composite looks like shit in comparison to the component. The component feels very RGB’ish. The picture is sharp and crisp in comparison.

If i can somehow solve the sync issue the converter will be gold. As the pi3 is the perfect 2d 8bit/16bit box.

Thanks hunterk. Do you think it might be something that is fixable at the driver level? Or would I need to mod the hardware?

It is so close to working for only $40! :slight_smile:

Yeah, dunno. The first place to check would be your HDMI settings.

Did you try with custom mode like :

hdmi_cvt=768 240 60 1 0 0 0

“The one you’re probably interested in is the custom resolution config file, where you can modify the following line to set up your output resolution - it does look like you’re limited to 240p @ 60fps, but the horizontal resolution can be anything you want up to 1920x240: hdmi_cvt=768 240 60 1 0 0 0”.

Source

@gouchi oh man, that video/description is a good find! I might have to switch my cab over to an rpi3 from my shitty old Atom board, which can’t manage full speed on PS1, CPS3, Mortal Kombat, etc.

Does anyone know how/if an rpi3 handles Killer Instinct?

[QUOTE=hunterk;41365]@gouchi oh man, that video/description is a good find! I might have to switch my cab over to an rpi3 from my shitty old Atom board, which can’t manage full speed on PS1, CPS3, Mortal Kombat, etc.

Does anyone know how/if an rpi3 handles Killer Instinct?[/QUOTE]

I am trying to test this for you now. But I am unable to get chd’s to load.

i believe i can get the chds to load in mame2003 (they need to be in ROMDIR/romname/romname.zip eg ROMDIR/kinst/kinst.zip - obviously you also need a valid game rom in the ROMDIR also) but either they’re not the right ‘version’ or CHD support is broken in that core… the game loads up with a coloured screen but gets stuck, and i think i scanned the chds and they said they were the wrong version, but i couldn’t find any others.

Yeah, I think they might only work in mame2010 and up. No worries, guys. Thanks for the effort :slight_smile:

I get the same issue in lakka. Just a blue screen. I also tried retropie with no luck. I had my dir structure like this.

Roms/mame/kinst.zip Roms/mame/kinst/kinst.chd

I also googled around and found some threads about people saying chds dont run well. But then I see videos of people running street fighter 3 on their pi’s and I thought this was a chd.

[QUOTE=tekn0;41428]I get the same issue in lakka. Just a blue screen. I also tried retropie with no luck. I had my dir structure like this.

Roms/mame/kinst.zip Roms/mame/kinst/kinst.chd

I also googled around and found some threads about people saying chds dont run well. But then I see videos of people running street fighter 3 on their pi’s and I thought this was a chd.[/QUOTE] yeah you can run SFIII using fba-libretro (lr-fba-next in retropie) and it doesn’t need a CHD. i think a lot of games in FBA are hacked so they don’t need a CHD to run.

i’m not convinced mame2003 doesn’t support CHDs/kinst as i could never find the right versions of the CHDs according to my dat file. even the ones in my 0.78 romset were wrong, and all the chds i find online are the wrong version also.

in any case, there’s preliminary support for it in FBA latest so hopefully FBA eventually runs it fully :slight_smile: