Nestopia UE core and auto-switch refresh rate for PAL 50Hz

Hi,

I’m currently trying to get Retroarch to auto-switch monitor resolution to 50hz when I’m starting a PAL NES game using the Nestopia UE core. I’m currently running Retroarch x64 nightly 2016-11-17 on Windows 10 x64. I’ve installed the NstDatabase.xml and I can see that it gets picked up in the console log. Here’s what happens when I try to launch SMB1 PAL:

RetroArch [libretro INFO] :: [Nestopia]: Machine is PAL. RetroArch [INFO] :: Skipping SRAM load… RetroArch [INFO] :: Version of libretro API: 1 RetroArch [INFO] :: Compiled against API: 1 RetroArch [INFO] :: Set audio input rate to: 44100.00 Hz. RetroArch [INFO] :: Timings deviate too much. Will not adjust. (Display = 59.94 Hz, Game = 50.00 Hz) RetroArch [INFO] :: Found shader “C:\Emulation\Emulators\RetroArch\shaders\retroarch.cgp” RetroArch [INFO] :: Video @ fullscreen RetroArch [INFO] :: Found GL context: wgl RetroArch [INFO] :: Detecting screen resolution 3840x2160. RetroArch [INFO] :: Setting fullscreen to 3840x2160 @ 60Hz on device \.\DISPLAY1. RetroArch [INFO] :: [WGL]: wglSwapInterval(1) RetroArch [INFO] :: [GL]: Vendor: NVIDIA Corporation, Renderer: GeForce GTX 1080/PCIe/SSE2. RetroArch [INFO] :: [GL]: Version: 4.5.0 NVIDIA 375.70. RetroArch [INFO] :: [GL]: Using ARB_sync to reduce latency.

  • Why does it say: “Timings deviate too much. Will not adjust.” ??? It’s quite clear that my display is running on 60hz, and the game is 50hz. ???
  • Why does it say: “Setting fullscreen to 3840x2160 @ 60Hz on device \.\DISPLAY1.” <— I don’t want it to change to 60Hz!!! I want 50Hz!!!

As we all know, running 50Hz PAL games in 60Hz causes tearing and stuttering. Why is this not working? Is there some special hidden configuration value that I have missed???

-Eicar

1 Like

Does your display support 50 hz? RetroArch tries to match to the refresh rate of your display.

If you’re using exclusive (that is, non-windowed) fullscreen, you can try setting video_refresh_rate = “50.0” and RetroArch will try to change your monitor to use that refresh rate, as long as it’s supported by your OS/hardware.

As far as i can tell, RA is unable to automatically switch resolutions or refresh rates.

Correct, it won’t automatically switch, but you should be able to force a switch in some circumstances.

Ahh, Ok.

Yes, my monitor supports 50Hz. At least I’m able to select 50Hz in the windows 10 display settings. Running Retroarch in 50Hz (video_refresh_rate=50) works, however I still feel that there’s something wrong with the setup. I can swear that there’s more stuttering in SMB1 running it in 50Hz. I’ve already checked both that my monitor and retroarch is set to 50Hz, still something feels wrong.

It’s a bit sad that retroarch is not able to do the switch automatically. I have a mix of PAL/NTSC NES games and the PAL games must be run in 50Hz or else the sound/speed is messed up.

You might be able to get it working through GroovyMAME, which is built around forcing games’ native resolution and refresh rates (i’m not sure if you can do just the refresh rate and not the resolution, but it seems likely). That functionality is currently being merged into mainline MAME, as well, I think.

Can retroarch automatically change the refresh rate depending on NTSC/PAL region in 2021?

True reason of this topic/request - ability to smooth (no-tearing) scroll, which is avaliable ONLY when physical refresh rate corresponding with emulator output.

When emulating NTSC 60Hz mode - preferred physical refresh rate = 60Hz or multiple value (like 120Hz) When emulating PAL/Dendy 50Hz mode - preferred physical refresh rate = 50Hz or multiple value (like 100Hz) This settings + vsync gives true smooth scrolling.

Nestopia-win32 had “auto” refresh rate function in fullscreen depending of region. For NTSC emulator try to set 60 or 120 Hz, prefer higher value if hardware supported it. For PAL/Dendy emulator try to set 50 or 100 Hz, prefer higher value if hardware supported it:

This feature was added to puNES/QT (linux and winD3D/OpenGL) in lastest commits: punesemu/puNES@7666b72 punesemu/puNES@232380e punesemu/puNES@4ee0839

It have “Adapt Refresh Rate to the Region” checkbox: For NTSC emulator try to set 60 or 120 Hz, prefer lower value, if hardware supported it. For PAL/Dendy emulator try to set 50 or 100 Hz, prefer lower value, if hardware supported it.

Also, it was added to Mesen fork by mkwong98: mkwong98/Mesen@708a13b

It works very well.

This feature will be very useful for all systems, not for NES-only.

Could possibly work with an override. E.g make a directory with PAL roms, save override, edit cfg and enter line about refresh rate /custom 50 Hz resolution.