Mupen64plus Next - Performance Issues?

I was testing Battle for Naboo game (and some others too) and it runs slow at around 40fps on a 4790K, I know it can run faster because when I fast forward it goes up to 100fps. I tried with all possible settings, starting with Fullspeed framerate and ending with CountPerOp. Max Performance on nvidia panel. I share my settings.

Some settings also don’t seem to work, like 3point filtering or MSAA.

mupen64plus-169screensize = "640x360"
mupen64plus-43screensize = "640x480"
mupen64plus-alt-map = "False"
mupen64plus-aspect = "4:3"
mupen64plus-astick-deadzone = "15"
mupen64plus-astick-sensitivity = "100"
mupen64plus-BilinearMode = "3point"
mupen64plus-CorrectTexrectCoords = "Off"
mupen64plus-CountPerOp = "2"
mupen64plus-cpucore = "dynamic_recompiler"
mupen64plus-CropMode = "Off"
mupen64plus-d-cbutton = "C3"
mupen64plus-EnableCopyColorToRDRAM = "Async"
mupen64plus-EnableCopyDepthToRDRAM = "Software"
mupen64plus-EnableFBEmulation = "True"
mupen64plus-EnableFragmentDepthWrite = "True"
mupen64plus-EnableHWLighting = "True"
mupen64plus-EnableLegacyBlending = "False"
mupen64plus-EnableLODEmulation = "False"
mupen64plus-EnableNativeResTexrects = "False"
mupen64plus-EnableOv = "Enabled"
mupen64plus-EnableOverscan = "Enabled"
mupen64plus-EnableShadersStorage = "True"
mupen64plus-EnableTextureCache = "True"
mupen64plus-FrameDuping = "False"
mupen64plus-Framerate = "Fullspeed"
mupen64plus-FXAA = "0"
mupen64plus-l-cbutton = "C2"
mupen64plus-MaxTxCacheSize = "8000"
mupen64plus-MultiSampling = "8"
mupen64plus-NoiseEmulation = "True"
mupen64plus-OverscanBottom = "0"
mupen64plus-OverscanLeft = "0"
mupen64plus-OverscanRight = "0"
mupen64plus-OverscanTop = "0"
mupen64plus-pak1 = "rumble"
mupen64plus-pak2 = "rumble"
mupen64plus-pak3 = "memory"
mupen64plus-pak4 = "memory"
mupen64plus-r-cbutton = "C1"
mupen64plus-rspmode = "HLE"
mupen64plus-txEnhancementMode = "As Is"
mupen64plus-txFilterIgnoreBG = "True"
mupen64plus-txFilterMode = "Smooth filtering 4"
mupen64plus-txHiresEnable = "False"
mupen64plus-txHiresFullAlphaChannel = "False"
mupen64plus-u-cbutton = "C4"
mupen64plus-virefresh = "2200"

You’re using an old version.

Those options require restarting the core.

The game runs fast for me even with older hardware than that, but most N64 games have kinda choppy frame rate (even on original hardware).

My version is from 9th of September. I tested yesterday a few hours in a row so I did restart several times. I just found the culprit for the speed issues is the shader crt-royale-320-svideo, even the vanilla preset, it slows down the game to 50fps (on my rig) when using the 480p output. 480p triggers the interlacing but this is unrelated to the issue (I resized to HD within the shader to work around that), it also slows down to 40fps when using 1080p output in core options.

I can fast forward to double the speed so it’s not a performance issue. Anyway, 3point filtering is not working for me so I’m not sure if it’s only me or someone can confirm.

My bad, I read “CropMode” and I thought, “hey, that was renamed to Overscan!”

3point filtering is working for me:

I think the performance issue was related to this: https://github.com/libretro/RetroArch/issues/1962 After some testing I fixed it by disabling Hard GPU Sync.

3 point filtering doesn’t work on my end, it pixelates the texture (as no filtering), can you share the core options? it might be clashing with some other setting.

I see, I don’t disable composition. By the way, I’m on Linux.

Sure:

mupen64plus-169screensize = "640x360"
mupen64plus-43screensize = "1920x1440"
mupen64plus-alt-map = "True"
mupen64plus-aspect = "4:3"
mupen64plus-astick-deadzone = "15"
mupen64plus-astick-sensitivity = "100"
mupen64plus-BackgroundMode = "OnePiece"
mupen64plus-BilinearMode = "3point"
mupen64plus-CorrectTexrectCoords = "Off"
mupen64plus-CountPerOp = "0"
mupen64plus-cpucore = "dynamic_recompiler"
mupen64plus-CropMode = "Off"
mupen64plus-d-cbutton = "C3"
mupen64plus-EnableCopyColorToRDRAM = "Async"
mupen64plus-EnableCopyDepthToRDRAM = "Software"
mupen64plus-EnableEnhancedHighResStorage = "False"
mupen64plus-EnableEnhancedTextureStorage = "False"
mupen64plus-EnableFBEmulation = "True"
mupen64plus-EnableFragmentDepthWrite = "True"
mupen64plus-EnableHWLighting = "False"
mupen64plus-EnableLegacyBlending = "False"
mupen64plus-EnableLODEmulation = "True"
mupen64plus-EnableNativeResTexrects = "False"
mupen64plus-EnableOverscan = "Disabled"
mupen64plus-EnableShadersStorage = "True"
mupen64plus-EnableTextureCache = "True"
mupen64plus-FrameDuping = "True"
mupen64plus-Framerate = "Original"
mupen64plus-FXAA = "0"
mupen64plus-l-cbutton = "C2"
mupen64plus-MaxTxCacheSize = "8000"
mupen64plus-MultiSampling = "16"
mupen64plus-NoiseEmulation = "True"
mupen64plus-OverscanBottom = "0"
mupen64plus-OverscanLeft = "0"
mupen64plus-OverscanRight = "0"
mupen64plus-OverscanTop = "0"
mupen64plus-pak1 = "memory"
mupen64plus-pak2 = "none"
mupen64plus-pak3 = "none"
mupen64plus-pak4 = "none"
mupen64plus-r-cbutton = "C1"
mupen64plus-rspmode = "HLE"
mupen64plus-txEnhancementMode = "None"
mupen64plus-txFilterIgnoreBG = "True"
mupen64plus-txFilterMode = "None"
mupen64plus-txHiresEnable = "False"
mupen64plus-txHiresFullAlphaChannel = "False"
mupen64plus-u-cbutton = "C4"
mupen64plus-virefresh = "Auto"
1 Like

Thank you. It was mupen64plus-EnableLODEmulation, I searched in libretro’s documentation as well as in master’s so I assumed it referred to LOD objects in distance. 3point filtering requires it enabled though.

2 Likes

Somewhat related:

When a game has FPS drops in some areas, but fast-forward exceeds 60FPS, then this usually means that the game on the original hardware would have the same FPS drops.

Yes, that’s why my tests with the emulated CPU overclocking settings, but after the “Hard GPU Sync” fix so far I haven’t found the need for those, only Fullspeed fps is on now.