Pi4 Retrotink Resolution Change runcommand problem.
-
I'm testing out the Pi4 using a Retrotink Ultimate to output component to a CRT. I'm using a set of config files put together by a reddit user (u/ErantyInt) who makes a full Retropie image to make it easy to set up.
I've found a strange problem that I was wondering if anyone else had noticed. when using this setup on a 2GB Pi4. ES boots up and displays fine. The main problem seems to be when the runcommand script tries to change the screen resolution.
When launching a ROM, the runcommand changes the resolution with one of two commands depending on the ROM/emulator:
vcgencmd hdmi_timings 1600 1 85 157 192 240 1 4 3 15 0 0 0 60 0 32000000 1 > /dev/null
tvservice -e "DMT 87" > /dev/null
fbset -depth 24 && fbset -depth 24 -xres 1600 -yres 240 > /dev/nullvcgencmd hdmi_timings 320 1 23 30 34 240 1 4 3 15 1 0 0 60 0 6400000 1 > /dev/null
tvservice -e "DMT 87" > /dev/null
fbset -depth 24 && fbset -depth 24 -xres 320 -yres 240 > /dev/nullBasically, when the resolution is changed to the 1600x240 setting, there's a black screen and nothing happens. Sending "tvservice -s" once or twice then records the resolution change (first time says 320x240, the emulation station rsetting, then second and subsequent time(s) 1600x240) and the screen eventually comes on. If its left by itself, nothing happens - you must send a tvservice command to make the tv image update.
After that, everything works fine, even switching back to 320x240 to return to ES. Anyone have any idea why this is happening or how to fix it?
The one emulator which DOESNT exhibit the behavior is mupen64, (the non-lr version); which happily selects and displays the correct resolution with no problems. Several menu items in retropie-setup (when launched from ES) also need to be "woken up" with a tvservice-s prod. There was an error in dev/shm/runcommand which I've pasted below.
Pi Model or other hardware: 4B
Power Supply used: Offical Pi4 cable
RetroPie Version Used: 4.5.2
Built From: Buster lite (no desktop) install, then fkms branch of Retropie manual install.Log found in /dev/shm/runcommand.log: [E] Failed to power on HDMI with explicit settings (DMT mode 87) ioctl FBIOPUT_VSCREENINFO: Invalid argument
-
First of all, the PI4 is not supported fully by RetroPie at this moment. Seconds, the
fbset
ortvservice
are not going to work reliably on a(f)kms
enabled PI, so issues like this are likely to come up until the resolution switching code is tuned/changed to the new video system. -
@mitu Thanks for your reply! That's good to know, I was just wondering if I was missing something obvious. The tvservice poke is a decent enough workaround at the moment anyway. Cheers :)
-
@jamesfarnhamlong I'm also looking forward to using my RetroTink Ultimate with Pi 4, at some point. Please keep us in the loop with what you're exploring. For now I have it working great with my 3B+ and Lakka, but of course I'm and getting antsy (or greedy?) to get back to RetroPie and the games the 4 is "unlocking" for us. I'd certainly hope the RT can be in the mix.
-
Sadly, the Ultimate is kind of end-of-life (https://www.retrotink.com/blog/retrotink-ultimate-where-is-it) as far as production goes.
-
@mitu Yeah I saw that, though I'm not sure if that will affect it being operational with the Pi4. In a brief chat with Mike I think he mentioned something about a "bug". Don't think I really followed up for an explanation.
edit - That's positive if you assume a "bug" is something that's known and possible to work on, or work around :) Negative if it's not really a "bug" :(
-
@mitu At the same time, he has been talking about a hdmi to analog solution that's lag free.
-
@jamesfarnhamlong Just a hint - whenever
fbset
is used, change the-depth 24
parameter with-depth 32
and see if the resolutions switching improves. -
@mitu Thanks for your help! That seemed to make the problem worse however, as then the resolution wouldn't switch at all. It's definitely narrowed the problem down to probably fbset however, so it's good to know! It's probably the limits of where the retrotink will go moving forward, as you said.
-
@ohmycommodore From what I've tried out, systems where the resolution is the same as ES (probably 320x240) are fine, it's only when the resolution needs to switch that the problem occurs. You can definitely try it out and just send that command to clear out the frame buffer if you get stuck at any point. The one or two N64 games I tried worked really well, as well as psx games with enhanced resolution and the older systems with one or two frames of runahead.
I'd be interested in seeing how RT works with Pi4 and Lakka though. I haven't used it much as I have all my PSX games in chd and didn't really want to change them all over.
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.