So things like Star Ocean work, and game memcpy()'s to GPU work.
This will make game start on mobile a bit slower, though. And there could
still be bugs so leaving as an option, but seems pretty stable. Didn't
realize it wasn't enabled by default.
Looks like this'll be the ticket for scePsmfPlayer, which has different
functionality in different versions (including when and how end of video
is flagged, which FF2 depends on.)
Now let's see what versions are out there.
This way all instances are a lot easier to search for (was trying to find
where we were writing an incorrect value to v0, turns out to be callback
related of course.)
The game calls scePsmfGetEPWithTimestamp(), but without any chapters.
This means nothing is written to its pointer. But it takes the value
there anyway.
It happens that the value there is 0, but only because something wrote it
to the stack before the call. It seems like scePsmfVerifyPsmf() is the
one writing it, since it has a different value shortly before that call.
So, as a workaround, just write some 0s into the stack. Games without
bugs should not care. Hard to predict what will happen to another buggy
game.