Custom configs for CRT using the built-in composite out
-
More Updates:
- neogeo now uses a scaling shader like pc engine.
- several now unnecessary files removed from the neogeo config folder. be sure to remove the "FB Alpha" folder inside "config_crt" (or the whole "config_crt" folder if is the only thing inside) in your neogeo config folder.
- updated pc engine shader because of an (almost imperceptible on crt) uneven scaling issue.
A small update with little visual benefits really, but helps maintain things clean.
Neogeo uses 2 resolutions and I created profiles for the games using the 320 px wide mode (those were less numerous, so less files to create), with this scaling shader those profiles became useless so it's safe to delete them, it shouldn't hurt leaving them there for now at least, but you'll only be wasting space (2808 bytes is nothing to scream about though). -
@chipsnblip That makes sense. I found the main GitHub page here for creating my own theme, but what setting where would I modify if my sole intention is to take an existing theme like pixel-tft and make it fit RE: the grid like you showed above? Is there a "universal size" adjustment to make to an existing theme setup that works in an overscan-esque fashion like that?
Cheers
-
@sakitoshi Hey just a quick question if you have a second, if I am adding a per-core change from the default retroarch.cfg, for example, adding some input lag reduction settings at the cost of performance but only on my NES core, do I only need to append that change to the "vanilla" retroarch.cfg file in each config/core folder, or does in need to be changed in all of the 720p overlay/1080p overlay/crt/HDMI variants thereof that you have made for each supported core under this setup?
If I am reading the config files correctly the way you have them written, it would seem like it needs to go in all of them? Or is the plain retroarch.cfg under SNES, for example, still loaded when I have used runcommand to point that system towards the retroarch_crt.cfg file?
-
@rc_cola it has to be in all the configuration variants (720p/1080p/crt/hdmi as you pointed out) as the scripts to change the settings copy those files over the retroarch.cfg file of each system.
to explain it more easily, when you select for example the "set_all_systems_hdmi" script it overwrites each system retroarch.cfg with the contents of the retroarch_hdmi.cfg file. -
@sakitoshi Thanks, that's what I already did, so glad to hear my (admittedly minimal) effort wasn't in vain.
One more thing, just an aside, I noticed your configs for the GBA don't include a retroarch_crt.cfg file in the to_configs folder: Is that intentional, that it is unnecessary to have a separate config for that as opposed to the other mobile platforms?
Thanks
-
@rc_cola none of the portables has a retroarch_crt.cfg as they have 3 custom modes (save for wonderswan/color that only have 2), retroarch_border.cfg, retroarch_fullscreen.cfg and retroarch_pixelperfect.cfg
if you have a retroarch_crt.cfg in a portable you can safely delete it since isn't used and is probably a leftover.
-
Can I just say, as my first post here, that your configs - Sakitoshi, are the reason I got back into the Pi and a CRT.
When I purchased my first Pi, the original 3, I just couldn't get a decent quality picture out of composite.
Now I have a 3+, and your configs, on my Sony 28" Trinitron it looks amazing for composite. I would love to see it in proper RGB Scart, so I have ordered a Pi2scart.
I have a couple of questions, if you don't mind.
Sega Megadrive(Genesis) didn't work, just went back to ES. So I hit a key, seconds after selecting a game, and changed the emulator to Picodrive, and now it works. Any idea why Genesis Plus, wouldn't work ?
Other emulators that don't work, just send me back to ES, are..
Game & Watch - none of these work, just straight back to ES.
Dreamcast - same as above.
Sega CD - same again, back to ES. 32x works, but again I have to quickly press a key and select Picodrive.Also, I can't get into Retroarch, when running any emulator. Before your configs, I could hold X + Option and Retroarch shows up, now it just exits.
And lastly, is there any way I can rotate the vertical games so they all display horizontally ? My Sony Trinitron, is just too big and heavy to rotate the whole TV, so I need everything to be horizontal.
Thanks for all your hard work, really appreciate it. -
@john_rm_70 thanks for the compliment, the raspi analog tv out is tricky to get right even though the image is very clean for being composite.
as you mention rgb scart I assume that you live in pal territory, my configs are designed only for ntsc. I don't know how good are my configs for pal since I'm from an ntsc country and the only crt tv I have isn't multi-norm.
that being said, the emulators should at least boot correctly.dreamcast and game and watch: my configs don't touch those systems, so if something is wrong isn't because of my configs. you should uninstall and reinstall those systems from the retropie menu, that should fix them.
megadrive/genesis/sega cd/32x: similar to above, you should uninstall and reinstall genesis plus gx, that should fix the emulator.
retroarch: my configs don't change key bindings, maybe your global retroarch.cfg (the one at configs/all) is wrong. try reseting it to default by replacing its contents with this https://retropie.org.uk/docs/RetroArch/
vertical games: games can be rotated from the retroarch menu like always, but dealing with them is out of the scope of this project. trying to scale arcade games to a consumer tv was already a stretch, but since many enjoy them (myself included) and wasn't that hard to do it decently, I did it anyway, but vertical games are another beast. -
Thanks for the reply.
I know I'm in PAL region, I wanted a good set of NTSC configs for 60hz games, thats why I chose yours. Most of my original hardware, NES, SNES, Megadrive, etc.. has been hardware modded for 60hz, so I wanted 60hz in my Pi emulators as well.I will try a re-install of those emulators. When I first installed them I installed them from binary, not source, so perhaps I will try source - for the latest versions.
I will look into the "Global" retroarch config. Before I installed your configs, I could press X + Option, and up popped Retroarch. But now it doesn't, it now closes retroarch and I'm back in emustation.Yeah, these vertical games could be a problem. I simply cannot rotate such a massive beast of a 28" Trinitron TV, that wouldn't work. So, I guess I will have to find a work-around for now. Tweaking every game by hand would take weeks, or more, so I will be happy for a kind of 1-size-fits-all setting.
Thanks. -
@john_rm_70 said in Custom configs for CRT using the built-in composite out:
Yeah, these vertical games could be a problem. I simply cannot rotate such a massive beast of a 28" Trinitron TV, that wouldn't work. So, I guess I will have to find a work-around for now. Tweaking every game by hand would take weeks, or more, so I will be happy for a kind of 1-size-fits-all setting.
regarding vertical-oriented arcade games, perhaps a modification of the crt-pi-configs by @dankcusions would be fitting for this project?
-
@chipsnblip said in Custom configs for CRT using the built-in composite out:
@john_rm_70 said in Custom configs for CRT using the built-in composite out:
Yeah, these vertical games could be a problem. I simply cannot rotate such a massive beast of a 28" Trinitron TV, that wouldn't work. So, I guess I will have to find a work-around for now. Tweaking every game by hand would take weeks, or more, so I will be happy for a kind of 1-size-fits-all setting.
regarding vertical-oriented arcade games, perhaps a modification of the crt-pi-configs by @dankcusions would be fitting for this project?
Thanks for the link, I will take a look.
-
Just thought I would post this here, incase there are some in the PAL region who might get the same problems as me.
After a complete fresh reinstall of Retropi, setup roms and retroarch, it still didn't work properly. After some hunting around the config files I managed to find this linesdtv_mode=0 #Enables NTSC 480i mode.
And I changed it to PAL like so
sdtv_mode=2 # For composite PAL.
And now Retroarch UI shows up in any Retroarch emulator when pressing X + Hotkey.
I guess my TV was going out of range when trying to bring up the Retroarch UI, so all I got was nothing, even though it was there - just not being displayed.One last thing, and I agree with previous poster youxia, the TV shader used, really ruins the image quality, too much blur for my tastes. Disabling the shader via Retroarch UI really looks soooo much better.
Really happy with the image quality now, can't wait to see true RGB scart, when my Pi2scart arrives.
All thanks to Sakitoshi, for starting this. Great work. -
@sakitoshi Hey man after some reading that lr-mgba has been adjusted to work in displaying Super Game Boy borders for the games that were enhanced with that, I was interested in switching to it as my core of choice for GB and GBC.
Any idea if this change from lr-gamebatte would mess with any of the runcommand or retroarch.cfg settings in your setup? For what it's worth, I already choose to use yours in fullscreen rather than overlay or pixelperfect mode, just preference.
-
@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).
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.