I recently bought an Xperia Z2 and tried out Retroarch. A weird issue happens with all cores where the game will get lower framerate and sluggish sound when the game is idling. Whenever I touch the screen again, the framerate rises back up to 60fps. If I keep a finger on the screen at all times, the framerate stays at a stable 60fps. Anyone know how to fix this? Only other emulator I’ve tried is Drastic DS emulator and this issue does not happen within that app.
It’s very likely a result of aggressive power-saving settings, possibly beyond your control. The way many emulators function, they work really hard to do the calculations to emulate a single frame–which usually takes a scant few milliseconds–then they sit and idle until time to display that frame, after which they start working on the next frame. That idle time can trick some devices into thinking they can power down to save juice. Touching your screen is likely keeping that from happening.
Drastic may be doing something fancy to avoid that behavior entirely, or it may be as simple as sending fake touch events all the time. I guess you could ask Exophase how he handles it…
I figured it was something like that. Any way to fake inputs? I don’t want to install a new rom but I’ll be rooting eventually so some xposed module maybe? I did read about some similar issue someone had with the mupen64 app and someone uploaded a modified apk that simulated a constant touch input to fix the issue… If I’m not mistaken.
From what I’m seeing online, it doesn’t look like you can spam fake touch events on non-rooted phones, which is going to make that a suboptimal solution for us. I asked Exophase about it and he says there’s nothing specific that they’re doing in Drastic, so it’s probably just a matter of it being demanding enough that the device never gets the opportunity to try and clock down.
That said, does it exhibit this behavior with all cores? Could you try it with mupen64plus set to interpreter core in the core options? There’s also a developer option for a CPU frequency overlay that could tell us whether it’s actually clocking down or something else going wrong.
So far I’ve tried a couple of the SNES cores, all GBA cores and Mupen64plus. It happens with every core. When setting mupen to pure interpreter it SEEMS to at least wait for a few seconds longer before it’s clocking down (assuming that’s what’s going on) but that might just be me imagining it.
Such an annoying problem to have with such a fancy phone. The battery life is very good, and I’m guessing that’s partially because of this downclock feature. The only games I’m planning to play on it are various RPGs where I’m not going to be button mashing oviously.
I think I fixed the issue by rooting my device, installing xposed and an app that let me assign various cpu profiles on a per-app basis. I made a retroarch profile with a performance governor and the games seems to run stable now.
Nice! I’m glad to hear you got it worked out. It’s unfortunate you had to root just for that, though…
I was planning to root eventually anyway, but it still sucks that I had to resort to using a CPU tool to fix this. I think the app overrides my phone’s default CPU behavior and I get the feel that it has reduced battery life some even with a few tweaks within the app, though I haven’t really tested enough to be sure of this at all. But I’m glad I can finally use this wonderful emulator properly on my phone. Time to play some FF6 on my toilet!
lol the future is now!