• Login
  • Register
  • Dolphin Forums
  • Home
  • FAQ
  • Download
  • Wiki
  • Code


Dolphin, the GameCube and Wii emulator - Forums › Dolphin Emulator Discussion and Support › General Discussion v
« Previous 1 ... 17 18 19 20 21 ... 368 Next »

Nearest neighbor filtering?
View New Posts | View Today's Posts

Thread Rating:
  • 0 Vote(s) - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
Thread Modes
Nearest neighbor filtering?
12-31-2020, 07:10 PM
#1
TheLostSkeleton Offline
Junior Member
**
Posts: 7
Threads: 2
Joined: Apr 2018
I have a feeling this may have come up before on this forum, but is there any way to force nearest neighbor filtering in Dolphin? I don't want to touch the actual game textures, but I mean Dolphin's own video output. This is a bad example because it's a direct console screenshot and has color bleed, but, currently, if I set Dolphin to output at native resolution but put it in to full screen, it looks sort of like this:

[Image: egI6Tat.png]

When I want it to look like this:

[Image: ta539Fp.png]

I want crisp, clear, sharp pixels, even at full screen. I know there's also aspect ratio considerations here, but is there any way to get Dolphin to give me unfiltered output?
Find
Reply
12-31-2020, 09:57 PM (This post was last modified: 12-31-2020, 10:09 PM by MayImilae.)
#2
MayImilae Offline
Chronically Distracted
**********
Administrators
Posts: 4,598
Threads: 119
Joined: Mar 2011
So what you are asking for is integer scaling, or to be more precise, integer mapping of the game's 1x Native pixels to your display with precise accuracy so there is no blurring or scaling whatsoever. Well, it's very doable. However, before I go into detail on how to do this, I'm going to say that this doesn't matter very much on modern displays. Like, if you have a 4k panel, the sharpness difference between precise integer mapping versus not is basically irrelevant. Each of the game's 480p pixels will be placed on so many of your display pixels, that if it is aligned slightly off, it's very hard to tell. That said, if you have a lower resolution panel it can still matter, so, here are some possible options. Also I'm only going to be talking about fullscreen games for the moment.

Also this is assuming you have Crop enabled. Every game renders at slightly different resolutions, cause well, the output was a CRT, it all just worked, and they knew that those displays have excessive cropping so it didn't matter anyway. With Crop disabled, all of those pixels are rendered, and any attempt to integer map will fail, and fail in different ways in different titles. With Crop enabled it will match the 640x480 output the game expects, making this possible. ...probably. Crop tends to get broken a lot and I haven't tried it lately.

1. This is by far the easiest. Use Auto-Window Size and increase Dolphin's internal resolution till it almost fills your screen. Then turn off auto-window size and set it to 1x native. This will give you integer mapping to your display for 1x Native. And this is super easy and totally will work, you can even move the window around, it's fine! (just don't resize it or you have to restart the process) This is what I used to do if I want to run Dolphin at integer mapped 1x Native (now I have an 8k monitor and it totally doesn't matter anymore).

2. Set your display resolution to 640x480, and adjust your GPU drivers to integer scaling on the GPU. Then play Dolphin in fullscreen and it will be integer mapped to your display. This will depend on your exact drivers and your exact display, and there will likely be some small black bars on the top, but it's fine.

3. If you don't want to adjust your display resolution in your OS, you can use a GameINI to have Dolphin change your display resolution for you. However, this is quite a bit harder than the above option. If you are interested, well, here. So to do that, go to your global user directory, which is placed by default under Windows in [username]\Documents\Dolphin, open Config, and edit GFX.ini. Under "[Adapter]", add "FullscreenDisplayRes = 640x480" (no quotes of course). Then do everything with the GPU drivers and integer scaling I mentioned above.

So remember when I said fullscreen? Widescreen is... complicated. See, the GameCube and Wii technically run at exactly 640x528, with cropping horizontally for PAL or vertically for NTSC down to 640x480. For fullscreen games, 640x480 will map exactly perfectly. But for widescreen content... the resolution doesn't change. The GameCube and Wii use non-square pixels to achieve widescreen. Yeeaaaa it's impossible to exactly integer map 1x Native to modern square pixel displays. Options 2 and 3 above are completely impossible. However, since any modern display has way more pixels available to it, so while it won't be 100% integer mapped option 1 still works very very well and is nice and sharp. However, auto window resize will scale it assuming fullscreen, so you'll need to do an additional step and manually stretch the window horizontally until the widescreen game fills the window.
[Image: RPvlSEt.png]
AMD Threadripper Pro 5975WX PBO+200 | Asrock WRX80 Creator | NVIDIA GeForce RTX 4090 FE | 64GB DDR4-3600 Octo-Channel | Windows 11 22H2
MacBook Pro 14in | M1 Max (32 GPU Cores) | 64GB LPDDR5 6400 | macOS 12
Find
Reply
01-01-2021, 06:17 AM
#3
TheLostSkeleton Offline
Junior Member
**
Posts: 7
Threads: 2
Joined: Apr 2018
Trying your first method, and nope. 2x window and 1x internal resolution just filters the output still.

[Image: VegDQg2.png]

While I'm sure your complicated methods to put my entire operating system in to 640x480 might look more correct, I was hoping Dolphin would just have an option to turn window filtering off. A lot of emulators do.
Find
Reply
01-01-2021, 01:04 PM
#4
AnyOldName3 Offline
First Random post over 9000
*******
Posts: 3,526
Threads: 1
Joined: Feb 2012
A lot of other emulators were for consoles with such low-resolution video outputs that contemporary TVs wouldn't blur the output to the point pixel edges weren't visible. When game developers were making the games Dolphin can run, they were expecting them to run on CRTs of the same resolution (which at least blurred horizontally as they have scanlines rather than necessarily having pixels) or LCDs with higher resolution (which would normally apply nearest neighbour scaling, at least when the Wii was contemporary). That means there's a lot more stuff that's 'supposed' to be played with obvious pixels for other consoles than for GC & Wii, so it's a higher priority for other console emulators than it is for Dolphin.
OS: Windows 10 64 bit Professional
CPU: AMD Ryzen 5900X
RAM: 16GB
GPU: Radeon Vega 56
Find
Reply
« Next Oldest | Next Newest »


  • View a Printable Version
  • Subscribe to this thread
Forum Jump:


Users browsing this thread: 1 Guest(s)



Powered By MyBB | Theme by Fragma

Linear Mode
Threaded Mode