Nearest Neighbor filter

Found a bug? Please report it, but remember to follow the bug reporting guidelines.
Missing a sane feature? Let us know!
But please do NOT request ports to other systems.

Moderator: ZSNES Mods

Post Reply
Conveyer
New Member
Posts: 3
Joined: Mon Sep 21, 2009 2:59 am

Nearest Neighbor filter

Post by Conveyer »

I like to use the Nearest Neighbor pixel scaling algorithm (also known as "unfiltered".) I searched the forums about this topic, and I learned that the problem is with my GPU and/or its driver settings. However, I looked in my video settings, and there simply was no option to turn off interpolating filtering. (If you're wondering, I use a laptop, and my GPU is part of the Intel Chipset Family 945.) Yes, I have the latest driver and yes, I've looked carefully. There is no option.

It scales correctly at 2x, and if I turn on hq4x and turn off GUI filtering, the GUI is scaled correctly up to 4x. (But, of course, the game is then filtered to hq4x, which is not what I want.)

Every other emulator I've ever used has included a software option for Nearest Neighbor. The above issues indicate to me (as a college junior majoring in computer science) that the problem would be easy to fix, but I apologize if I am being presumptuous, as I have little knowledge of ZSNES's source code.

I do not know how many other people have this problem, as I do have an unusual GPU, but in addition to solving my problem, I believe that including it as a software option would make it easier for the many other users who do not know to change their GPU settings.
byuu

Post by byuu »

ZSNES uses DirectDraw, which has no way to specify the upsampling mode. On XP and earlier, drivers seem to use bilinear, and on Vista and later, they tend to use point. But it varies.

Only way to make it an option would be to rewrite the video driver to Direct3D, which won't be happening soon. You may have luck with the DR video modes in the mean-time.
Conveyer
New Member
Posts: 3
Joined: Mon Sep 21, 2009 2:59 am

Post by Conveyer »

byuu wrote:ZSNES uses DirectDraw, which has no way to specify the upsampling mode. On XP and earlier, drivers seem to use bilinear, and on Vista and later, they tend to use point. But it varies.

Only way to make it an option would be to rewrite the video driver to Direct3D, which won't be happening soon. You may have luck with the DR video modes in the mean-time.
Yes, I understand the situation. And yes, I use a DR mode.

Although I know it is not the most efficient solution, what I am asking for is a software implementation of the Nearest Neighbor algorithm.
grinvader
ZSNES Shake Shake Prinny
Posts: 5632
Joined: Wed Jul 28, 2004 4:15 pm
Location: PAL50, dood !

Post by grinvader »

If disabling all filters in a D* mode doesn't work, just use another emulator that has it.
皆黙って俺について来い!!

Code: Select all

<jmr> bsnes has the most accurate wiki page but it takes forever to load (or something)
Pantheon: Gideon Zhi | CaitSith2 | Nach | kode54
paulguy
Zealot
Posts: 1076
Joined: Sat Jul 02, 2005 2:01 am
Contact:

Post by paulguy »

Can't you disable hardware acceleration in the Advanced display properties?
byuu

Post by byuu »

I am asking for is a software implementation of the Nearest Neighbor algorithm.
I see. I was under the impression the DR modes were software upsampled, even without an active filter. At least, they never appear blurry like the R modes. But if they are for you, it is what it is :/

EDIT: ah, I see now. It's a 2x software filter only. So 3x+ gets blurry.
Conveyer
New Member
Posts: 3
Joined: Mon Sep 21, 2009 2:59 am

Post by Conveyer »

@grinvader:

That is a good idea, but I have more severe issues with SNES9x. I have not tried BSNES, but I will. However, I have no trouble emulating NES, GBA, or PS1, so the fact that two different popular SNES emulators fail me in different ways is somewhat surprising to me. This is a little off-topic, however.

@paulguy

I have looked carefully, and I cannot find such an option in ZSNES or my driver card settings. I'm not sure which one you meant, but it's not in either, to the best of my attempts to find it.

@byuu

That is correct. I apologize if I explained it poorly.

The weird thing, as I mentioned above, is that if I turn on the hq4x filter and select the option "Turn off GUI filtering" in GUI Options, then the GUI looks exactly what I want it to look like; scaled up to Nearest Neighbor 4x through software. However, the game is then filtered by hq4x, which is not my desire.

For this reason, it seems to me that it would not be difficult for the developers to add an option to turn on software NN3x/4x filtering. In addition to helping people in my predicament, it would make it easier for other users who can change their driver settings but don't want to or don't know how to to enable NN4x filtering. Also, many people without gaming PCs have awesome processors and poor video cards.

Please consider adding an option for software NN4x filtering in the next release. I posted this as a feature request, not a request for help troubleshooting (although I definitely appreciate everyone's help!) because I already searched the forum for related topics and came to understand that there was no solution that would work for me.

I do recognize that I'm coming in here and asking you to do me a favor for free, which naturally makes me feel like a bit of a jerk. I do appreciate everyone's work on ZSNES and I have used it happily for years and will continue to use it happily even if this feature is not implemented. If you can't, I understand.
Post Reply