I finally got my scanlines! After going deep down the rabbit hole of RGB, VGA666, hdmi_timings, and runcommands for Raspberry Pi, I believe this is as close as you can get to native modes with a Raspberry Pi and a 31KHz CRT monitor (ViewSonic G225f).
It uses CRT SwitchRes options in the Retroarch config to detect the native resolution for each game and sets the hdmi_timings accordingly. It runs at double the native refresh rate for the 31 KHz monitor, and sets the pixel clock as close as the Pi 3b+ will support. The SwitchRes code seems to have trouble returning EmulationStation to the proper resolution on game exit, so I had to create a runcommand-onend.sh script to reset the hdmi-timings.
Having gone through all that, I’m not sure whether I actually like it better than the higher resolutions. The scan lines are a little more defined than I think they would be on a native system, but I’ll give it some time to see.
I’ll make a post later in the Pi forum with all the details if you want to try this yourself.
Next step - light gun!
Sent from my iPhone using Tapatalk