(I’ve had some discussions on the discord server about this, but I’m hoping someone here knows more.)
I’m trying to improve the dosbox-svn core by making it run in sync with the front-end (that is, make it emulate one frame per retro_run()
call, which is how cores should behave in general.) However, dosbox being a PC emulator means it needs to run at 70FPS in some cases, since 70Hz is a common VGA refresh rate. Other frame rates are also possible (DOS games love to set custom VGA modes.) Example:
retro_system_av_info info;
retro_get_system_av_info(&info);
info.timing.fps = 70;
environ_cb(RETRO_ENVIRONMENT_SET_SYSTEM_AV_INFO , &info);
However, RA will disable vsync when doing that. What I would have expected is that it runs the core at the requested frame rate with vsync and then drop extra frames on 60Hz displays.
Is this a RA bug? If it’s intended behavior, is there a way to convince RA to do vsync?