Custom configs for CRT using the built-in composite out
-
@rc_cola for what I've seen mGBA super gameboy support is nice, but aside from the border it doesn't offer anything that gambatte doesn't have and if fact, in its actual form, offers less (gambatte offers multiple palette options and even custom palettes that I'm using to imitate the original gameboy's colors).
having said that I'll see if I can do something to make mGBA play nice with my configurations. -
@Sakitoshi said in Custom configs for CRT using the built-in composite out:
aside from the border it doesn't offer anything that gambatte doesn't have
You're forgetting the more advanced Super GameBoy color palettes. The games that utilize this feature are capable of displaying up to 16 pre-programmed colors, rather than the usual five available for selection, making the end result much closer to a GameBoy Color title. One of the best examples of this is 'Donkey Kong '94' as seen below.
-
I've been trying to get things working since yesterday but it seems an improvement in one area really hurts others. So far I'm having to use SDTV mode 1 because 16 makes everything totally unreadable and like a complete mess. for some reason colors are also extremely oversaturated. I have no idea why.
-
The low value sdtv_modes, sdtv_mode=0/1/2 etc.. are for interlace. So 480i output, which looks better - text-wise- than progressive modes, but worse for emulation because of the flickering. The higher sdtv_modes, 16/18 are progressive, so 240p.
You can make progressive text look better like so, adding this to the config.framebuffer_width=320
framebuffer_height=240It will be huge, but readable. Emulationstation, will always look bad in progressive, unless you get a low res theme.
I too, noticed the increased saturation in progressive modes. I simply adjust my CRT TV colour settings while a colourful game is running. -
@Sakitoshi I must commend you on this work. For over two years I've had my Raspberry Pi and wanted to Retro-game on it. I had installed Retropie and used it on a 16:9 LCD much to my dislike and I never really got into gaming because it really didn't remind me of when I was a kid at an actual arcade or even gaming on a TV through composite. I didn't have the money for a Retrotink and finally came across people using a 3.5mm RCA adapter and composite out. I used your Github page and the forum article here to get it up and going and I must say this is finally very true to how I remember these games! I have only two small issues.
1> Some games although near perfect the edges of the screen extend off the viewable area on my Toshiba TV. How do I correct this? do I have to actually change the v-size/h-size on my TV (quite annoying as I need to get into the secret service menu for that tv) or do I do it in the Retroarch settings somehow (I changed a bunch of settings in settings -> video but it didn't seem to do anything).
2> Some of my ultra favorite games are in Mame2003 and unfortunately they are vertical games like Ms Pacman / Dig Dug / Pengo to name a few. These appear quite distorted with the default settings. I put in a custom config for these roms that allowed rotation then I set the aspect ratio to 4:3 in retroarch menus. It fills the screen and turning my 14" on its side is super close to perfect EXCEPT again it chops off the left and right (errr top / bottom I suppose theoretically) of the screen so I can't use the games properly. I guess this kind of has to do with item one since it's the same issue.
3> Weird but when I tip my 14" tv on its side I get weird magnetic color distortions in one more more corners. I suppose standard tv's aren't meant to be tipped on their side like this. Ideas for a fix? My guess is its some weird electron gun issue but dunno.
(Retropie Linux retropie 4.14.70-v7+ #1144 SMP Tue Sep 18 17:34:46 BST 2018 armv7l)
-
@ScanLines said in Custom configs for CRT using the built-in composite out:
1> Some games although near perfect the edges of the screen extend off the viewable area on my Toshiba TV. How do I correct this? do I have to actually change the v-size/h-size on my TV (quite annoying as I need to get into the secret service menu for that tv) or do I do it in the Retroarch settings somehow (I changed a bunch of settings in settings -> video but it didn't seem to do anything).
He uses a custom config that overrides retroarch's standard config.
If you look inside the "to_configs" folder, inside the original download, then "arcade", open retroarch.cfg and you will see the followingrgui_config_directory = "/opt/retropie/configs/arcade/config_crt"
video_shader_dir = "/opt/retropie/configs/arcade/config_crt"
aspect_ratio_index = "22"
video_shader_enable = "true"
video_shader = "/opt/retropie/emulators/retroarch/shader/tvout/tvout_smart_align.glslp"
custom_viewport_width = "640"
custom_viewport_height = "512"
custom_viewport_x = "36"
custom_viewport_y = "-16"
#include "/opt/retropie/configs/all/retroarch.cfg"You could change
aspect_ratio_index = "22"
to any of these - "19 "= Config, "20" = 1:1 PAR, "21" = Core Provided, while he uses "22" = Custom Viewport.
I would try "20", first. That works well with vertical games. If not, you can do it in Retroarch's menu, under the "Video" section.
I would also try this for PAL region,custom_viewport_width = "720"
custom_viewport_height = "576"
custom_viewport_x = "0"
custom_viewport_y = "0"or this for NTSC
custom_viewport_width = "720"
custom_viewport_height = "480"
custom_viewport_x = "0"
custom_viewport_y = "0"This is subjective, but I think the shader ruins the image quality. You get some weird blurs in areas of the screen. You can remove it by changing these
video_shader_enable = "true"
video_shader = "/opt/retropie/emulators/retroarch/shader/tvout/tvout_smart_align.glslp"to
video_shader_enable = "false"
video_shader = ""save it. Then do the same for the file "retroarch_crt.cfg". Then copy them over to the Pi, reboot and test. Obviously keep the original downloads for backup, incase it didn't work for you.
I gave up on vertical games running vertical. I just rotated them to horizontal, since my TV is 30", so it's big enough to still be big enough to enjoy. Only downside is the scanlines are horizontal, so pacman never looks quite the same as it did in the arcade. -
@ScanLines said in Custom configs for CRT using the built-in composite out:
3> Weird but when I tip my 14" tv on its side I get weird magnetic color distortions in one more more corners. I suppose standard tv's aren't meant to be tipped on their side like this. Ideas for a fix? My guess is its some weird electron gun issue but dunno.
i have seen this issue pop up occasionally on from lurking on reddit's crtgaming group, it's just the tube needing to degauss.
let it rest without power for 10-15 minutes both before and after rotating it and it will degauss fully during power up (though it may take a few power cycles, or an external degauss coil/wand for the purity issues to disappear completely).
-
@chipsnblip I never really thought of that. The degaussing usually happens at power on and I'm flipping it after that. Thanks guy. One less problem .Now just to tackle the overscan issue with it chopping off about 10px on most sides in all emulators and the ES menu. Im just worried playing with it willy-nilly like I'm going to ruin the image and end up with doubled pixels/blurriness.
-
@ScanLines said in Custom configs for CRT using the built-in composite out:
Im just worried playing with it willy-nilly like I'm going to ruin the image and end up with doubled pixels/blurriness.
for that i can recommend loading a 240p test suite rom, and from the tv service menu adjust the horizontal/vertical size & position etc. if you have access to those settings.
just be sure to write down the original values.don't worry you're not really dealing with pixels, just adjust the raster image until it looks good to your eyes. expect to lose some of the image to the overscan area, most games back then were designed with this in mind.
i like to position it so the outer grid lines so they are barely out of view, but it really comes down to personal preference.
if there are elements of your ES theme that aren't right, you can clone the theme and customize it.here's some shots of my meager 13" toshiba tv/dvd combo:
far from perfect, but having grown up playing these systems on a cheap 1970's tube using an RF connector to me this looks freakin' fantastic :)
-
@chipsnblip Is there a way to private message on this forum? I am hoping to glean some info on your setup. I will download that 240p test suite tonight, I am certain there is stretching going on that is causing shimmer. Was hoping to get your retroarch settings to see if mine are similar. I suspect I have something messed up. I may have to dig out my Commodore 1702 monitor as I believe it has analogue controls for H/V sizes and positions the Toshiba does in the service menu but it's clunky.
-
@ScanLines sure, feel free to send a private message or an email (chipsnblip at gmail)
-
@ghrayfahx use the provided setting in the to_config.txt file, 480i is the best way to make the text readable inside emulationstation, the scripts inside to_config/all will automatically
switch to 240p while booting a game.
the color issue isn't an issue, the tv-out shader applies gamma correction so the games are displayed identical to how real hardware does, as emulationstation doesn't has this gamma correction applied it can look off. this is also why you shouldn't disable the shaders despite the comments of other people.@ScanLines
1- games of what platform? arcade games will never display correctly because arcade monitors are adjusted to display everything perfectly depending on the game, something that can't be done here were I have to go for a "one size fits everything" approach.
I visually verified (say, played the same game on real hardware and later retropie on the same tv) almost all the other platforms and the overscan is as close as it can be. so if something is cut off then it is supposed to look like that.2- see the above answer, you can try and play around with the settings, but vertical games are not currently supported and I don't think I can do something about it to make them look nice without disturbing the current configuration that works well with horizontal games.
Also as a general reminder for everyone, these configs are designed for NTSC only, I don't have a PAL TV to tweak the setting for it, so I don't know how good/bad works on PAL.
-
@chipsnblip So the link that you sent me in a PM (is what ended up fixing it. I am using a very current build and indeed all my .cfg files had an aspect ratio of 22 not 23. I went through and manually changed it in the _crt.cfg and regular .cfg files from aspect ratio 22 to 23 and boom fixed! everything is lining up nicely and the world is a better place.
I am still going to try to tackle the vertical titles. If set the screen rotation 180 and set the AR to 3:4 its pretty passable but then there is definitely some cut off on left/right (top bottom on physical screen). I wonder if I can state overscan values for individual rom cfgs?!
Some screenshots showing some grids and diagonal lines that used to be horrendous are now pixel perfect:
Closeup showing diagonal that had terrible pixel doubling before now perfect.
Fullscreen view of Toshiba TV.
Save room in Super Metroid (SNES). Crisp as hell for composite. Best $12 I ever spent. 😊😊😊😊😊 -
@ScanLines I'm updating the configs right now, they changed the numbers of aspect_ratio_index in retroarch 1.7.4 for no good reason and messed up the configurations of everyone in the process.
retroarch is a fine product but sometimes is like they sabotage themselves with those stupid changes. -
@Sakitoshi Could you write an bash installer script that checks for the retroarch --version and changes the AR accordingly?
-
@ScanLines said in Custom configs for CRT using the built-in composite out:
@Sakitoshi Could you write an bash installer script that checks for the retroarch --version and changes the AR accordingly?
if it helps, you can change them all at once with this one-liner:
find /opt/retropie/configs/ -maxdepth 2 -type f -name "retroarch*.cfg" -print0 | xargs -0 sed -i 's/aspect_ratio_index = \"22\"/aspect_ratio_index = \"23\"/g'
-
I managed to put together a script to deal with the aspect_ratio_index change automatically. it detects the installed retroarch version and changes the setting accordingly.
-
@Sakitoshi Thank you for the reply. See thread comment below, all good now!!! I play the #&$! out of so many titles last night after it was fixed. Finally my Rpi3/Retropie is getting used now, I totally couldn't deal with it on a LCD.
-
Will this method you created here also work through an HDMI to VGA adapter? https://www.amazon.com/gp/product/B016HL4CAY/ref=oh_aui_detailpage_o00_s00?ie=UTF8&psc=1
I have my retropie hooked up to a CRT monitor using HDMI to VGA. Also, will this project you created allow the emulators to switch the resolution to the same original resolution of whatever game I'm playing? Is there any way your method would scale the games while still giving me scanlines? For instance, I get what I'd call perfect scaling with genesis games due to the original console resolution being so close to 320x240.
Gensis: https://i.postimg.cc/jqnk7Tt9/DSCPDC-0001-BURST20181219131847883.jpgBut SNES, NES, and other systems I get a cropped image
SNES: https://i.postimg.cc/GL2fbYNb/DSCPDC-0001-BURST20181219132533014.jpg
NES: https://i.postimg.cc/4GSLzYqh/DSCPDC-0000-BURST20181219132410894.jpgHeck, I would even love to play GBA/GBC with scanlines https://i.postimg.cc/sjk4bhC6/DSCPDC-0001-BURST20181219132717501.jpg, but the cropped image just kills it. And I don't want to use shader scanlines it just doesn't work for me at a low resolution. In fact, the scanlines shader in retroarch doesn't give me scanlines at all. Honestly, I just want to get my Retropie the way I want it so I can start enjoying some games. After all, I recently bought a CRT monitor, HDMI to VGA adapter, and even a desk. to place my retropie and CRT monitor on. I'm exhausted and just want to enjoy my pi. I want to enyjoy these retrogames the way they were meant to be played and after seeing scanlines I can't go back to a pixelated LCD.
-
@Sakitoshi Hi, I finally got around to trying these configs but ran into an issue straight away.
I flashed a new official image on an RPi 3B+ (with a NTSC CRT TV via composite) and then followed your "how to use" instructions from github.
Copied all the stuff into respective directories + config.txt.Now when I try to start a game I get "syntax error at line 13 of configuration file / ?_dialog dlg_parse_rc" message.
Game starts but with no display ( I can hear the music playing thou)Any ideas?
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.