Lag problem on pokemon ultra moon

So I am using an older version to speedrun and I get lag frame while a fight end or entering an area. Posting this here to see if there’s anything wrong with my citra.

System Information

  • Operating System: Windows 10 Pro 64 Bit
  • CPU: Intel Core I7-10750
  • GPU: GTX 1650 TI
  • Citra Version (found in title bar): Citra Nightly 1568
  • Game: Pokémon ultra moon

Diagnostic Log
citra_log.txt (4.0 KB)

We don’t provide support with old Citra builds. However, what you’re experiencing is almost definitely CRO loading/unloading related. Pokemon games abuse CRO loading on essentially every transition (CROs are essentially the 3DS equivalent of a Windows DLL file). When they get reloaded, they most likely get reJITed every time. This causes a small stutter, even on the most recent builds, no matter how great your hardware is. In the future, we will perhaps find a way to cache these in some way. But for now, this isn’t completely solvable.

1 Like

I’m actually experiencing the same on android. To bypass it I tend to set speed limit to 101% instead of the default 100% (difference is negligible in-game, and the audio doesn’t stutter anymore). Only issue is that in some sections of the game you get this slight static with the audio. It’s why I’m now trying to find a way to bind the speed limit to a button so that I can change it at will without having to open settings every time I hear static. Or increase audio speed to 101%…somehow (audio stretching is also an alternative when playing at 101% speed…but it sounds like crap).
You’re on pc, right? You should already have a toggable keyboard combination that allows you to switch between 100 speed limit and an alternate 200%. Try changing the 200% to 101% and see how it works in-game. It’s a bit annoying to have to constantly switch between the two but it’s the only workaround I’ve found to the pre and post lag in battle.

We’ve observed this behavior as well. This is completely tied to Audio Stretching. Setting your emulation speed to higher or lower than 100% will activate Audio Stretching’s logic to activate or deactivate as needed. This is why your 101% is essentially the same thing. We’re not entirely sure why this happens yet. So it will need to be looked into.

Ah, I see, so it’s nothing that can be fixed on my end. Well thanks for letting me know anyway.