hrydgard / ppsspp

A PSP emulator for Android, Windows, Mac and Linux, written in C++. Want to contribute? Join us on Discord at https://discord.gg/5NJB6dD or just send pull requests / issues. For discussion use the forums at forums.ppsspp.org.
https://www.ppsspp.org
Other
11.41k stars 2.19k forks source link

Bounty Hounds - FMV audio stuttering/FPS mismatch #19557

Open SeongGino opened 3 weeks ago

SeongGino commented 3 weeks ago

Game or games this happens in

ULUS-10161 - Bounty Hounds

What area of the game / PPSSPP

When any FMV is being played, the emulated target framerate appears to be unstable and audio stuttering occurs (even when normal gameplay seems to be just fine) - usually the expected framerate (the right side of the frames-per-second counter when Show FPS is enabled) will change between ~41-45, and the actual framerate doesn't catch up, causing a lower speed percentage and the aforementioned audio stuttering. It's enough to trigger the "try enabling frameskip" frontend notification, but even that isn't enough to smooth over video playback.

It happens with any FMV, even as soon as the intro videos, and with both a compressed .cso and an uncompressed .iso dump of the game on otherwise fairly fast storage. It can even be observed on PC (Linux/Ryzen 5 5600/RTX 3060ti/both emu and game run off an SSD), albeit to a less obvious extent.

On a side note, trying to enable the speed toggle on the Android device (as listed in attached hardware info) while in certain parts of the game--title screen and some cutscenes--will cause PPSSPP to use an obscene amount of memory and eventually cause an out-of-memory crash. This is without Cache full ISO in RAM being enabled and without a texture pack or texture dumping enabled, for the record.

What should happen

FMVs should be played smoothly and the emulator should be able to match its framerate without audio stutter or false bad performance flagging. Preferably, turning on speed toggle shouldn't cause memory leakage and crash the emulator in the process on the title

Logs

No response

Platform

Android

Mobile device model or graphics card (GPU)

Retroid Pocket 4 (Base, non-Pro), Mali-G68 MP4

PPSSPP version affected

v1.17.1-1250-g049dd8bb7

Last working version

No response

Graphics backend (3D API)

Vulkan

Checklist

hrydgard commented 3 weeks ago

Wonder if this is similar to #8991 which we worked around in #19450 with a compat.ini flag... The memory leak is probably something different though, that doesn't sound good at all.

SeongGino commented 2 weeks ago

If the referenced commit is supposed to help, it doesn't seem to do a lot, unfortunately! (Observed with 1.18.1) The problem persists across both OGL and Vulkan backends. Since this is android, just modifying the compat.ini to check would be difficult without rebuilding the whole application.

hrydgard commented 2 weeks ago

@SeongGino you can actually put a separate compat.ini file in /PSP/SYSTEM for experiments. It will be merged with the one from assets.

SeongGino commented 1 week ago

@hrydgard Thanks for the heads up! Only just got around to trying it; unfortunately, while the second intro FMV shows a bit of artifacting that doesn't otherwise appear (which I assume is the UseFFMPEGFindStreamInfo hack taking effect), the issue is still there. Audio stuttering just enough that PPSSPP still pops up a frameskip advisory notification. This doesn't happen with other games with FMVs and otherwise the same settings, so it still eludes me what could be the cause.