libretro / flycast

Flycast is a multiplatform Sega Dreamcast emulator. NOTE: No longer actively developed, use upstream repo for libretro from now on - https://github.com/flyinghead/flycast
http://reicast.com
GNU General Public License v2.0
152 stars 77 forks source link

Atomis Metal Slug 6 run too fast #1181

Closed rtomasa closed 1 year ago

rtomasa commented 1 year ago

Hi,

I'm developing a new libretro frontend and while testing mslug6.zip I found out that while the core reports running at 60 fps, the game is running way fast at 120 fps internally. Is this a bug, or something that could be amended via some configuration?

BTW I'm running in Pi4 64 bits OpenGL ES 3.0

Best Regards

flyinghead commented 1 year ago

This repository is no longer used. Report issues upstream: https://github.com/flyinghead/flycast/issues

That being said, the issue you're likely facing is that this game renders at 30 FPS in game, and at 60 FPS in the menus.

rtomasa commented 1 year ago

Ohh sorry, I will use the upstream for new issues. Thanks for the info. I have a question on the same. If the game/core reports 60Hz/fps, how is it expected to slowdown the same? Not sure how RetroArch is able to run it at normal speed. I never found a game changing the framerate in game.

flyinghead commented 1 year ago

By default the core always reports 60 Hz, but the game may render at a lower FPS. There's a core option that attempts to detect the real frame rate and reports it to the frontend: reicast_detect_vsync_swap_interval.

Games may render at any FPS and it's common to temporarily have very low FPS (<10) during loading phases.

rtomasa commented 1 year ago

Sorry, I've realised that it was my bad actually. I was using an old core compilation where reicast_detect_vsync_swap_interval was not implemented. Same happen when reviewing the code because I downloaded this repository instead of the upstream one (probably my compilation was based on this one).

Now I was successfully able to enable that option and now I can see the core reporting the new geometry and refresh rate in SET_SYSTEM_AV_INFO so that now I can manage the same properly.

Thanks a lot for you support, really appreciated. Closing this issue