Best way to output SCART (RGB) from Pi 3?
-
I ordered the PI2SCART. I'm going to start reading and researching the best boot/config.txt settings people are using for a 240p/480i RGB monitor and will post back here!
Anybody know of any good low-res themes which would look good at that size? How would the RetroPie config/setup menus look at that size? Are they still readable?
-
@Dochartaigh said in Best way to output SCART (RGB) from Pi 3?:
PVM-20N2U
i cant help you here but i would like to say you are one lucky dude on the sweet hookup. please do report your thoughts on how it is when you get it all running good.
-
@Dochartaigh said in Best way to output SCART (RGB) from Pi 3?:
I ordered the PI2SCART. I'm going to start reading and researching the best boot/config.txt settings people are using for a 240p/480i RGB monitor and will post back here!
Anybody know of any good low-res themes which would look good at that size? How would the RetroPie config/setup menus look at that size? Are they still readable?
Sorry about the slow reply. PI2SCART is the best option so far. Read more on the support for PI2SCART on RetroRgb and the official creator/reseller site.
I don't know about any good low-res themes. Maybe @Rookervik know something About that.
I don't have a CRT setup myself but im i big nerd when it comes to retro gaming so i read and watch all sorts of retro articles and youtube channels 😀
-
I have hooked up my RPi3 to several CRTs (PVM-1454QM, Commodore 1084s, Sony and Philips TVs) through SCART RGB. At first I bought an HDMI-VGA converter and a UMSA VGA adapter but that sort of converter (HDMI-VGA) introduces a slight lag so I ordered a kit for a Gert VGA adapter, which is plugged on the GPIO interface and, still coupled with the UMSA, got no lag at all. In both ways the visual end result is stunning, I own both a japanese Mega Drive and a PC Engine and, to my eyes, there's no difference between the picture generated by the PI and the real thing. Of course I spent a lot of time to tweak the config.txt file in order to get the appropriate resolution, I must say that it is much easier with the HDMI-VGA converter (just put H-res, V-res and frame rate) rather than the Gert-VGA because a lot of parameters are needed (front porch, back porch, pixel clock etc.), there's little information on the internet and so, for me, it was a matter of trial and error. Please keep in mind the you can only set one resolution in the config.txt (e.g. 320x240) so you have to play with the "custom_viewport" parameters in retroarch to fit different resolution and sometimes this is not the best way. PC Engine, for example, has a resolution of 256x239, when you set this resolution in the viewport and config.txt is set to 320x240 you end up with black bars on left and right side. The only solution I come up with is to have different micro-sd card with different resolution set on the config.txt file.
-
@maxriptide said in Best way to output SCART (RGB) from Pi 3?:
it is much easier with the HDMI-VGA converter (just put H-res, V-res and frame rate) rather than the Gert-VGA because a lot of parameters are needed (front porch, back porch,
Thanks for letting me know it'll look beautiful! That's what I'm looking for. I just wish I had two PVM/RGB monitors side by side to compare the console to the Pi version ;)
For the settings in the config.txt, this is what Arcade Forge says to use for the PI2SCART (which i don't know is anywhere close to the parameters you're using for the Gert-VGA):
disable_audio_dither=1 dtparam=audio=on dtoverlay=vga666 enable_dpi_lcd=1 display_default_lcd=1 dpi_group=2 dpi_mode=87 hdmi_timings=320 1 16 30 34 240 1 2 3 22 0 0 0 60 0 6400000 1 #240p
The above looks like it would give you 240p which is 320x240 pixels. I'm most concerned with NES, SNES, and Sega Genesis. Those resolutions are (as found, very confusingly, on the web):
NES: 256x240 pixels (not even 240p)
SNES/Super Famicom: 512 pixels X 448 max, most games were 256x240, which was cropped on a 4:3 monitor to 256x224? ...is NES above cropped as well?
Sega Genesis / Mega Drive: 320x224 (which is that its cropped/overscan? resolution, so the native/true resolution is 320x240 i.e. 240p?)
So basically, if the resolution is set to 240p (320x240), there's nothing built into RetroPie/EmulationStarion/ReroArch (when outputting VGA/RGB/SCART signal) that would stretch those above resolutions to fill a 4:3 screen? Would I really need 3x SD cards loaded with RetroPie to get the correct 4:3 ratio on this PVM monitor for those 3x systems? I'm not familiar with what the
custom_viewport
option does as I've never messed around with that...I hope this doesn't get that difficult....All I would like is the image to fill the tiny 4:3 CRT screen! -
@Dochartaigh Could this not be configured using a custom config for every emulator in the runcommand before you start a game for that particular system?
-
@Dochartaigh
The config.txt I use is very similar to the one you posted apart for slightly different hdmi_timings.
Once the PI resolution is set there is no way (or none that I know of...) to stretch a lower resolution to fill a 4:3 screen if you want a pixel-perfect image. If you want to display SNES and NES fullscreen you have to set 256x240 on config.txt and the TV/monitor will "analogically" stretch the image horizontally to fill the screen.I tried to take some picture of my PVM hooked up to a real MegaDrive and to a RPi3 running retropie. The pictures don't do justice to the real image, it's really hard to photograph a CRT!
RPi3-Retropie:
MegaDrive:
-
@Rion said in Best way to output SCART (RGB) from Pi 3?:
@Dochartaigh Could this not be configured using a custom config for every emulator in the runcommand before you start a game for that particular system?
I really don't know - that's why I'm turning to the forum for help! All I want is to have whatever game I load fit to the 4:3 ratio TV's screen.
@maxriptide said in Best way to output SCART (RGB) from Pi 3?:
Once the PI resolution is set there is no way (or none that I know of...) to stretch a lower resolution to fill a 4:3 screen if you want a pixel-perfect image. If you want to display SNES and NES fullscreen you have to set 256x240 on config.txt and the TV/monitor will "analogically" stretch the image horizontally to fill the screen.
Thanks for the pics. I'm not looking for pixel perfect at all - even on my PVM monitor I have to mess with the V and H space to get it to fit to screen perfectly (which I'm assuming is slightly stretching the image). What was wrong with the "custom_viewport" settings you used? What would you suggest for the easiest way to get each system (in my case NES, SNES, Genesis, and Arcade) to stretch to that 4:3 monitor? (with hopefully no large area of unused pixels around the edges - I do like edge to edge so it fills the screen).
-
@HiScoreBob Posted a great guide and comparison screenshots using the far more superior Pi2Scart from Arcadeforge.net on the libretro forums.
-
@Rion said in Best way to output SCART (RGB) from Pi 3?:
@HiScoreBob Posted a great guide and comparison screenshots using the far more superior Pi2Scart from Arcadeforge.net on the libretro forums.
how can PI2SCART be "far more superior" when I get the exact same image quality of a real Mega Drive?
-
@maxriptide The comparison was to show the difference in video output quality using the onboard pi composite RCA vs Pi2Scart.
-
@Dochartaigh said in Best way to output SCART (RGB) from Pi 3?:
What would you suggest for the easiest way to get each system (in my case NES, SNES, Genesis, and Arcade) to stretch to that 4:3 monitor?
The only way I can think of, is to set the PI to a 480i resolution, then in the retroarch.cfg in each single emulator set video_scale_integer = "false"
and video_smooth = "true", doing so, every game, no matter the original resolution, will be stretched to 640x480 filling the screen. The downside of it is that you'll get a manipulated image not different than the one you get hooking up the PI to an hdmi monitor or tv. Worse than that, in a 15KHz monitor (as a PVM/BVM is) this resolution (640x480) will be interlaced so the screen will be flickery.
I think that the only point of using a 15 Khz CRT monitors is to feed them with an RGB progressive signal (240p or 224p) so that the games may be displayed in their full glory as they were meant to be displayed by their programmers.
Personally, I'd go with the multiple SD solution, you could have one for Mega Drive and another one for NES and SNES switching them before turning the PI on.
As regards Arcade games, the situation is even worse since the arcade games have a lot of different native resolutions (320x240; 288x240; 256x224; 320x224 ; 384x224 and others). -
@Rion OK, I got it, composite video output is really awful
-
@Dochartaigh said in Best way to output SCART (RGB) from Pi 3?:
What was wrong with the "custom_viewport" settings you used?
There is nothing wrong with the custom_viewport setting I used, it is the solution I come up with to display different systems using a fixed resolution in the config.txt. Resolutions lower than the config.txt can be "framed" inside that one, I sketched the following image to explain this
So, let's say you set 320x240 in the config.txt and you want to display SNES games (256x224), you have to edit the SNES retroarch.cfg file adding the following lines:
custom_viewport_width = "256"
custom_viewport_height = "224"and, if needed, custom_viewport_x and custom_viewport_y to center the image. As I wrote before, the final image will have black borders, that may be thin or thick depending on the h-size and v-size settings on your monitor.
-
Thanks for the diagram.
Is there really no "fit to screen" setting anywhere?
Via HDMI, which is set to 1080p (1920x1080), how does every single system properly stretch top to bottom (with of course black bars on the left and right since 1080p is widescreen/16:9, and these systems are mostly 4:3 ratio), without doing anything special to the setup files. Same thing happens when my system config.txt is set to 720p - and it does all this automatically. Is it a function of a modern flat-screen LCD TV and that's why these CRT's can't do that without complex settings?
I'm just not understanding what the problem is....
-
@Dochartaigh I think that's the Pi/retroarch video scaler's doing, similar to what was mentioned a few posts back about the integer scale.
That's the video renderer scaling the image to fill the 1920x1080 pixels based on the source image. You may get artifacts and it won't be quite perfect.
What you are looking for is getting the Pi to only output exactly the pixels you want and get the PVM to do the scaling (well, to just tender that image on its full screen).
Sorry if it isn't clear, writing on my phone.
-
@pjft said in Best way to output SCART (RGB) from Pi 3?:
@Dochartaigh I think that's the Pi/retroarch video scaler's doing, similar to what was mentioned a few posts back about the integer scale.
That way you get lots of flickering thought they said because of the progressive signal (or not at the right hZ frequency or something?) - that wouldn't be good.
I am looking for NES, SNES, and Genesis, mostly, but I also LOVE arcade game too (and Doom and Quake through Ports, and The 7th Guest through ScummVM, bunch of MS-DOS games) so even the multiple SD card solution which was mentioned won't work for arcade games with all those resolutions which were listed as well...
-
Right - I was exactly not suggesting that. I was answering to your question around "Via HDMI, which is set to 1080p (1920x1080), how does every single system properly stretch top to bottom (with of course black bars on the left and right since 1080p is widescreen/16:9, and these systems are mostly 4:3 ratio), without doing anything special to the setup files". That's because of the software scaler from RetroArch. It has nothing to do with the TV.
-
This post is deleted! -
@Dochartaigh said in Best way to output SCART (RGB) from Pi 3?:
Via HDMI, which is set to 1080p (1920x1080), how does every single system properly stretch top to bottom (with of course black bars on the left and right since 1080p is widescreen/16:9, and these systems are mostly 4:3 ratio), without doing anything special to the setup files. Same thing happens when my system config.txt is set to 720p - and it does all this automatically. Is it a function of a modern flat-screen LCD TV and that's why these CRT's can't do that without complex settings?
It's a matter of math.
I'll try to explain it but English is not my mother language so sorry if I don't make myself clear.In order to make an image fit a screen bigger (in terms of pixels) than the image itself, the CPU has to perform an interpolation, a mathematical algorithm which spreads out the original pixels into a bigger "surface" and generates new pixels in order to fill the blank spaces.
If you have a small image, let's say 256x224, and want to display it onto a big screen, let's say 1280x720, the interpolation algorithm has a really great number of blank pixels to fill (as you can see in the following image):The algorithm will "create" all the new pixels and you'll get this:
if you don't like pixel look you may also want to use a bilinear filtering algorithm which smooths out the edges by blurring the image:
Instead, when you want to resize an image into a "surface" only slightly bigger than the image itself (e.g. from 256x224 to 320x240), the interpolation algorithm has very few blank pixels to fill:
the algorithm will not be able to generate a perfect slightly-bigger copy of the original image and artifacts will be present:
please take a look at the text characters at the bottom of the image and at the jagged lines of the writing "super mario world" which are are not uniformly shaped. And it gets even worse watching a scrolling background!
I hope I made myself clear :-)
A final note: I know that this is the retropie forum and we are supposed to talk only about retropie and Raspberry PI but the solution to your problem may be using a different machine. A softmodded PAL Nintendo Wii coupled with a SCART RGB cable with WiiMednafen installed is perfectly capable to display all the 16-bit consoles in their fullscreen glory on your PVM without any artifacts and without the need to fiddle with config files and video hardware add-ons.
Contributions to the project are always appreciated, so if you would like to support us with a donation you can do so here.
Hosting provided by Mythic-Beasts. See the Hosting Information page for more information.