Atari 2600 (lr-stella) + crt-pi.glslp shader or similar
-
I am experiencing an issue with the lr-stella emulator specifically.
-
I have noticed this for a while but was not sure if it was just how it used to be or an emulator problem. But in many games some "sprite" elements (such as the ghosts in pac-man) will flicker. They flicker so fast that it doesnt affect gameplay but still I am now thinking this is an emulator problem. I also tried updating to the latest lr-stella from sources but the issue persists.
-
Now what I am noticing is that not only do some of them flicker, but when you have a crt-pi shader enabled they completely stop drawing. And some additional sprites also do not draw but only when at certain locations on the screen. E.g. if you play frogger on the 2600 with crt-pi-curvature.glslp active your frog, some cars, and some logs, will phase in and out and go completely invisible depending on where they are on the screen.
Sound familiar to anyone else?
-
-
@alturis flickering isnt an emulator problem. It is an atari 2600 problem. An accurate emulator is going to act exactly like the real system. As far as the crt-pi issue i am not at home to test and speak on.
-
@alturis From the Atari 2600 Pac-Man wikipedia page:
Pac-Man and ghost characters were implemented using the 2600's two Player objects, with one being used for Pac-Man and the other being used for all four ghosts, with the result that each ghost only appears once out of every four frames, which creates a flickering effect.
-
@dudleydes Bleeding edge tech of its time. :)
-
Atari game developers really worked every angle to get games to work around limitations. Some awesome history available if you enjoy reading technical manuals. 😎
Can’t verify your findings on my setup regarding crt-pi. I don’t use curvature myself. But changing the shader doesn’t replicate your problem here.
-
This is my exact cfg if anyone spots anything:
# Settings made here will only override settings in the global retroarch.cfg if placed above the #include line input_remapping_directory = "/opt/retropie/configs/atari2600/" video_shader_enable = "true" video_shader = "~/.config/retroarch/shaders/crt-pi-curvature.glslp" input_overlay = /opt/retropie/emulators/retroarch/overlays/arcade-bezels/tv.cfg input_overlay_enable = true input_overlay_opacity = 1.000000 input_overlay_scale = 1.000000 #include "/opt/retropie/configs/all/retroarch.cfg"
-
It actually only seems to affect certain games.
The ones I have confirmed:
- The bullets in Space Invaders
- Various objects in Frogger
- Yar's Revenge - bullets and the band and lots of stuff
- Dig Dug
-
@alturis I can confirm that. The crt-pi-curvature shader makes the normally flickering objects "blink" in and out much more slowly, making them invisible for long periods.
This effect doesn't occur with @ghogan42's zfast_crt_curve shader.
-
@clyde Excellent thank you! Will give that a try.
-
@clyde said in Atari 2600 (lr-stella) + crt-pi.glslp shader or similar:
This effect doesn't occur with @ghogan42's zfast_crt_curve shader.
Hmm... That doesn't seem to be what I am seeing in my tests. I tried both zfast_crt_curve and zfast_crt_standard and both demonstrate the same issues with frogger elements disappearing.
Edit: Wait actually something is wrong in the way that the shader is being selected in my tests. After opening the in game menus to see what shader I had active it was still using the crt-pi version. Then manually switching to zfast fixed it yes. My bad. I will figure out what the deal is with my options setup and switch to those across the board. Thank you!
-
Hmm.... this is totally confusing me. I now cannot figure out why it is launching and loading the wrong shader.
My dev/shm/runcommand.log shows that it is loading the .cfg that it should be
/opt/retropie/configs/atari2600/retroarch.cfg
Executing: /opt/retropie/emulators/retroarch/bin/retroarch -L /opt/retropie/libretrocores/lr-stella/stella_libretro.so --config /opt/retropie/configs/atari2600/retroarch.cfg "/home/pi/RetroPie/roms/atari2600/Adventure (1980) (Atari).bin" --appendconfig /dev/shm/retroarch.cfg
Which specifies it should use the zfast_crt shader:
video_shader = "~/.config/retroarch/shaders/zfast_crt_curve.glslp"
Yet in game it is still actively using crt-pi-curvature when I check in the menus. Cannot see how that could be possible.
-
@alturis Have you by any chance saved a game override in addition to the core config? See Config Hierarchy.
-
@clyde said in Atari 2600 (lr-stella) + crt-pi.glslp shader or similar:
@alturis Have you by any chance saved a game override in addition to the core config? See Config Hierarchy.
Nope. My atari2600 roms folder has no .cfg files in it at all. I have even installed locate, updated the db, and searched for al cases of atari2600 and there are no other .cfg files with that name in it other than the one I expect.
-
Totally baffled by this still. I even ran a grep of the entirety of /opt /dev /home /etc for anything containing 'crt-pi-curvature' and its only finding it in the places I already know about or unrelating things like the shader glslp files themselves.
I even tried using the in-game menu to change to zfast then saved that as the core default and still each time I re-open an atari2600 game it is back to crt-pi-curvature.glsl in shader pass 0
Stumped. ;(
-
@alturis I think i figured it out. In my grep results I overlooked it because it was hidden as a glslp entry within the shaders/presets/Stella folder
So basically I had an entry in that folder called <rom_name_I_was_testing>.glslp that was still referring to the crt-pi-curvature.hlsl and it was using that instead of the core settings.
-
@alturis said in Atari 2600 (lr-stella) + crt-pi.glslp shader or similar:
@clyde said in Atari 2600 (lr-stella) + crt-pi.glslp shader or similar:
@alturis Have you by any chance saved a game override in addition to the core config? See Config Hierarchy.
Nope. My atari2600 roms folder has no .cfg files in it at all. I have even installed locate, updated the db, and searched for al cases of atari2600 and there are no other .cfg files with that name in it other than the one I expect.
game overrides are not stored in rom folder. they would be in (from memory) /opt/retropie/configs/all/retroarch/config/ (somewhere in here)
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.