MiSTer-devel / Atari7800_MiSTer

Atari 7800 for MiSTer
Other
10 stars 13 forks source link

Feature Request: Optional Buffer Mode for 2600 games. #16

Closed SegaSnatcher closed 2 years ago

SegaSnatcher commented 2 years ago

Now that 2600 and 7800 cores are combined I think it would be very handy for the core to provide a buffer option for 2600 games that change lines on the fly. Sure, one could just switch to vsync_mode= 0 or 1, but since 7800 games and most 2600 games don't switch lines on the fly it doesn't seem like we should have to sacrifice latency by keeping a full frame buffer on all the time just for the few problematic 2600 games that cause sync issues.

So, it would be nice to simply flip a switch in the core when running those 2600 games that don't have a fixed number of lines drawn to the screen. I was hoping the new VRR option would fix that, but unfortunately it doesn't, at least not on the LG C1.

birdybro commented 2 years ago

In the meanwhile using a MiSTeralt#.ini should suffice. Just make a copy of your MiSTer.ini and name it MiSTer_alt_1.ini and while in the core switch to that ini by holding Back and pressing Left in the OSD. I keep a spare alternate ini for the purpose of switching to vsync_adjust=0 on the fly if there are compatibility issues with a core. Holding Back and pressing Right in the menu will set you back to the default MiSTer.ini.

https://mister-devel.github.io/MkDocs_MiSTer/basics/hotkey/#with-the-osd-open-in-any-core

Kitrinx commented 2 years ago

This is built into the framework. Use frame stabilization or vsync_adjust=0;

SegaSnatcher commented 2 years ago

Frame Stabilization is enabled, but I still lose sync sometimes for example when AT-AT gets destroyed in Empire Strikes back.

I guess I'll just do an alt ini and set it up for vsyc_adjust = 0 or 1 like BirdyBro recommended since this feature request seems off the table.

Kitrinx commented 2 years ago

An additional internal buffer won't have any different effect than the framebuffer's buffer. It will still have a different framerate which will agitate vsync_adjust=2. It would just be doing the same thing the vsync_adjust options are doing.

SegaSnatcher commented 2 years ago

Gotcha, thanks for the clarification, appreciate it.