bsnes-plus
bsnes-plus copied to clipboard
Rudra no Hihou - Fast-forward messes with graphics
In Rudra no Hihou, if you fast-forward while speaking to an NPC or taking action in battle, the graphics get flickery and sometimes a little messy. When you stop fast-forwarding, the problem vanishes immediately. This will occur with or without a translation patch and on a verified good dump of the game.
This could have something to do with the high resolution mode the game uses for its text. I haven't tested other high-res games to see if they're affected.
Using 64-bit bsnes-plus. Version from July 14, 2018. Video driver is OpenGL.
Probably related to 441de3b40f9146c8ef147bbb6d6c5df0bab2b401 which was a fix for a similar issue with mixed high/low resolution lines in Marvelous. I'll check it out.
I've confirmed it happens whenever text shows on screen (including in the battles). The text that displays when you enter an area (the area's name) will trigger the fast-forward glitch as well. With that in mind, I assume the problem occurs in all games that use high-res mode.
It seems to be game-dependent from the (limited) number of games I've tested with so far, but at least with Rudra it currently also only appears to have issues for a single frame after high-res is either enabled or disabled (whereas prior to the commit I mentioned earlier it would be displaying issues continuously until you let go of the fast forward button).
Basically, the root of the issue is that whenever the screen is split between low and high res modes (like it is here) all the low-res lines have to be horizontally doubled, and since fast-forward also enables frameskip, care has to be taken to avoid doubling the same lines multiple times before a new frame is actually rendered. I think for some reason, when high res is either enabled or disabled sometimes the renderer doesn't correctly recognize the change until the following (rendered) frame so there is still sometimes visible weirdness. I'm seeing if there's a way to easily adjust the pixel doubling to correctly handle screen mode changes like that.