Project

General

Profile

Emulator Issues #9382

Textures get blurry in new super mario bros when changing IR

Added by mimimi over 4 years ago. Updated almost 3 years ago.

Status:
Accepted
Priority:
Normal
Assignee:
-
% Done:

0%

Operating system:
N/A
Issue type:
Bug
Milestone:
Regression:
No
Relates to usability:
No
Relates to performance:
No
Easy:
No
Relates to maintainability:
No
Regression start:
Fixed in:

Description

[Put Game Name here]
New Super Mario Bros (PAL Wii)

[Put Game ID here]
SMNP01

[Put MD5 Hash here]
Not related

[Description here]
Every time the internal resolution(IR) is changed, the 1024x1024 texture, which holds most of the elements on screen, will get rescaled. After a few times it will be blurry.

[Reproduction steps here]
- Set hotkey to increase and decrease the IR
- Start the game
- Get into any level
- Change the IR a few times with the hotkeys
- Many elements on screen will be blurry

[Versions here]
Dolphin 4.0-9019
It should be any version after the partial updates features was implemented in its current form.

[PC specs here]
not related here

[Anything else here]
See sceenhots, 1st one is after starting the game, the 2nd is after changing the IR a few times

SMNP01-3.png (1.71 MB) SMNP01-3.png How it's supposed to look mimimi, 02/26/2016 07:35 PM
SMNP01-4.png (1.58 MB) SMNP01-4.png How it looks after changing the IR mimimi, 02/26/2016 07:35 PM
5295
5296

History

#1 Updated by hosode over 4 years ago

Drawing the graphics involves all sorts of scaling and cacheing and the IR setting is right in the middle of everything.
To me (as non-developer) changing the IR mid-game sounds almost as intrusive as changing the CPU emulation core or the graphics backend mid-game. Anyone would understand that they would be... hard to implement. Yet the IR works pretty well in Dolphin. I mean, you have to often restart normal DirectX-based games only to change the resolution.

I don't know how many users have a real need to change the IR when playing? At least after finding out the sweet spots for the games that they play. Not saying that this isn't an issue at all. And I'm biased as a huge fan of the partial texture implementation, as it is now. I don't understand any of the wizardry behind it, though.

I still think it would be good enough to warn people by adding an OSD line "Changing the internal resolution mid-game can cause graphical glitches" when the hotkey is pressed. Just as we warn people to open the graphics settings when a game is running. Vs. mimimi writing huge amounts of code only to verify that the scaling of the textures is recalculated / maintained after the IR changes in a very limited (?) number of games.

#2 Updated by JosJuice over 4 years ago

Having an OSD message about changing the resolution causing problems isn't user friendly (and neither is the OSD message about not opening the settings).

#3 Updated by JMC4789 almost 3 years ago

I know this is probably still an issue, but, it seems as though changing the IR after the EFB Copies are generated would cause it to use EFB2RAM and thus, be lower resolution... is it even fixable?

#4 Updated by JMC4789 almost 3 years ago

  • Status changed from New to Working as intended

So I looked into the code a bit.

Changing the internal resolution clears our copies, right, so we have to fallback to what is in memory. The only thing in memory at that point would be the original version, all of our copies would be invalidated. Thus... this seems to be invalid.

Feel free to override me.

#5 Updated by phire almost 3 years ago

  • Status changed from Working as intended to Accepted

The original version in memory doesn't entirely exist, because the user is probably using efb2tex and any area replaced by efb copies will be blank.

What we do is resize the whole 1024x1024 resolution texture to the new size.

After several round trips (say 1x to 4x) the texture will get more and more blurry, way more blurry than 1x.

One possible fix would be to keep the original efb2tex copies around (whatever resolution they were copied at) and then reconstruct the partial efb copy from ram and these efb copies.

#6 Updated by JMC4789 almost 3 years ago

Thank you for the explanation, I guess I still don't know everything about this.

Also available in: Atom PDF