Secret of Mana 2 - Very strange blurry to sharp problem
Pi Model or other hardware: 3
Power Supply used: Original PSU for Raspberry Pi 3
RetroPie Version Used: 4.4.1
Built From: Pre made SD Image on RetroPie website
USB Devices connected: 2 Buffalo gamepads, 1 Arcade Stick, 1 wireless receiver
Controller used: ---
Error messages received: ---
File: /home/pi/RetroPi/roms/snes/Seiken Densetsu 3 (J) [T+Eng1.01_NCorlett+LNFT].smc
How to replicate the problem: Play until a text appears. Image stays sharp until in game text disappears.
I am currently at searching for details to optimize on my setup and just noticed a strange bug or problem. It seems to happen only with a single game: Secret of Mana 2. Everytime a text appears in game, the whole image gets sharp and if the text disappears, the whole image gets unsharp, like if there would be filter on it. I don't know if this problem only happens with this particular rom or translation. Would be glad if you could check this out, if the same problem happens.
- I tested this with other snes9x emulators on my system as well: lr-snes9x, lr-snes9x2010, lr-snes9x2005.
- Video mode is set to DMT-4, which is 640x480 matching my monitors resolution. RetroArch render res is 640x480.
- I use scanline.gl.sl
- Integer Scale: on, Threaded Video: Off
- Hacks (reduce slowdown, reduce flickering): disabled
Here are the original screenshots. As your image program could add blurring on its own, I also include a upscaled version with side by side comparison. Note, on the images here the effect seems just a little bit. But playing the game constantly switching from sharp to blurry image is very tedious. And it seems to be the only game in my big library to have this problem. Or it is a new problem and I don't know which games have it.
Looks like a shader or hack problem - can you try to reproduce the error without the shader or with the original ROM ?
i believe this game (and a few others on the SNES) use a higher resolution interlaced mode when displaying menus or certain other scenes. this possibly confuses shaders. i don't think this is solvable outside of not using a shader.
Ok, lets see how it is going:
- so my first test was with same rom on my pc with completely different emulator. No problem at this stage. But didn't pay much attention to the settings of the emulator
- next, retested it on Raspberry Pi with alternative rom versions: Original Japanese version and a bug fixed version of the above translation
At this stage, I think it is clear that the roms are fine.
- without a shader, the problem is gone
- different shader have more or less the same problem or are not much visible
Seems to be a general shader issue? Now it gets interesting...
- changing Shader Filter to "Nearest" (previously Linear) makes the image sharper and then there is no problem anymore, image with or without text boxes are the same now
So for me, I could live with that, but it seems to be a problem somewhere in the shader logic? Because this seems to happen with original game too and I didn't see any problem with my emulator (Mednaffe) on pc.
@dankcushions Oh, I was typing and didn't see your posting here. So, that would explain this issue. It is possible to use this with shader, but then image gets sharper than intended. But if this is the only solution, I would play it with Nearest filter instead without shader.
Is there a list for such games? And whats the best way to do exceptions and set different shader for single games?
Is there a list for such games?
just google for interlaced games for the console in question. eg http://nerdlypleasures.blogspot.com/2017/10/the-rise-of-interlacing-in-video-game.html
following that link, i should correct myself in saying that SOM may use a higher horizontal resolution, rather than an interlaced mode. still, the effect is the same; your shader is doing some sort of per-pixel shadow mask, but the game changes the amount of horizontal pixels, so it's going to look different in those scenes.
And whats the best way to do exceptions and set different shader for single games?
per game overrides.