Dolphin, the GameCube and Wii emulator - Forums

Full Version: Feature request: advanced texture upscaling filters
You're currently viewing a stripped down version of our content. View the full version with proper formatting.
Such feature was added to Citra emulator a while ago and it's pretty neat. I think it would make a nice addition to dolphin as well! In a way, it's an easier for end user alternative for custom textures.

Some more specific ideas on implementation and UI:
1. Turned on/off with a checkbox
2. Mainly controlled by two drop-downs: scaling method and scaling factor (upmost element: default to internal resolution multiplier)
3. Extra option: ability to upscale in separate thread. Leads to textures changing while potentially visible but (mostly) prevents stutter when game loads textures
I've long desired this feature because I thought it'd be really useful. Hearing about Citra gave me even more interest in seeing it implemented.

I'm working on something else that also seemed to provide a way to do texture filtering. So I tried adding a rough pass and was disappointed by the results.

I thought it might be my implementation but I looked at other solutions and came to the same conclusion. My implementation might be incorrect but in general, it's just not very good in terms of improvements. These implementations were more impressive before the era of AI upscaling. Now you're much better off running this through one of those solutions.

Anyway, here's a quick comparison of one of my best examples. I say best because in general there was little to no perceivable improvement. Blurry text is really the main time you will notice it.

That doesn't mean it won't eventually make it into Dolphin, I just don't feel a lot of motivation to put it in as I once did. I'd rather implement a workflow similar to AutoCrispy but where we automatically reload the textures once the process is finished.
(12-19-2020, 03:43 AM)iwubcode Wrote: [ -> ]I've long desired this feature because I thought it'd be really useful.  Hearing about Citra gave me even more interest in seeing it implemented.

I'm working on something else that also seemed to provide a way to do texture filtering.  So I tried adding a rough pass and was disappointed by the results.

I thought it might be my implementation but I looked at other solutions and came to the same conclusion.  My implementation might be incorrect but in general, it's just not very good in terms of improvements.  These implementations were more impressive before the era of AI upscaling.  Now you're much better off running this through one of those solutions.

Anyway, here's a quick comparison of one of my best examples.  I say best because in general there was little to no perceivable improvement.  Blurry text is really the main time you will notice it.

That doesn't mean it won't eventually make it into Dolphin, I just don't feel a lot of motivation to put it in as I once did.  I'd rather implement a workflow similar to AutoCrispy but where we automatically reload the textures once the process is finished.
From what I've seen in Citra, it heavily depends on game that's being upscaled. Some get much better look, some don't scale well. In addition, it might take few different algorithms to find the best result.


In the end, integrating some slow-but-good upscaling tool might also be a solution or an addition to quick-and-dirty filtering one, I guess. Great to know that it was both considered and tested!
I'd also be interested in seeing this implemented.

iwubcode, can you comment on what scaling algorithm was used in your example?
(12-19-2020, 07:00 AM)v1993 Wrote: [ -> ]From what I've seen in Citra, it heavily depends on game that's being upscaled. Some get much better look, some don't scale well. In addition, it might take few different algorithms to find the best result.

In the end, integrating some slow-but-good upscaling tool might also be a solution or an addition to quick-and-dirty filtering one, I guess. Great to know that it was both considered and tested!

Very good points on both accounts. As a general comment, I hope you didn't take my response the wrong way, I'd love to see this in Dolphin but just personally I'm not as interested in implementing it as I once was.

(12-19-2020, 08:24 AM)Kolano Wrote: [ -> ]iwubcode, can you comment on what scaling algorithm was used in your example?

I used xBRZ. I ported that over from Citra and also ported scaleforce / scalefish though that I think I have a bug in that as it seemed to be worse visually in everything I tried.