N64:N64blur

agizmo

Many Nintendo 64 games use software to add a blurring effect, presumably to smooth out the jagged, low-resolution 3D graphics. This seemed to do a great job back in 1996, when almost everyone played on a CRT with composite video. This blurring effect sometimes doesn't scale well to modern TV's and luckily, people figured out ways to turn if off on most games, if desired.

This page is a culmination of work done by many different people in the retro gaming community; The picture below is a result of their work and the improvements that can be made in these games (click the picture for a full-sized view). Also, see the video next to it from My Life In Gaming that does an excellent job explaining everything!



https://www.youtube.com/embed/QDiHgKil8AQ

Introduction:
As explained in the My Life in Gaming video above, there are two different smoothing processing occurring to the video output of the Nintendo 64. First, anti-aliasing, dither filtering, and other adjustments are applied to the image by the RCP (Reality Co-Processor) based on the value set in VI_CONTROL_REG register. . Finally, the Nintendo 64 interpolates the image’s horizontal axis from 320 to 640. This effectively applies a smoothing filter to the image.

Remove Horizontal Blur
At this time, there is no known way to disable the Nintendo 64 horizontal image interpolation through software or hardware mods. Products like Retroactive’s UltraHDMI, Pixel FX’s N64Digital, and Tim Worthington’s N64RGB have “deblur” features that adjust their horizontal sampling to compensate for the interpolation. The OSSC can be configured with optimal timings to generate similar results.

Remove filters with software:
People on the Assemblergames forum found a way to use Gameshark codes to turn off software anti-aliasing in a similar manner to the way Quake does it. These codes can be implemented on original cartridges by using a Gameshark, however newer versions of the Gameshark are required (you can upgrade old versions with this method). If you own a ROM cart, you can download patches from Poregon's website and either use software such as Lunar IPS to patch the rom, or use your romcart's software to toggle them on or off before starting a game. This is much easier then manually entering each code and very convenient. These patches are also available in Smokemonster's rompacks: http://n64.poregon.com/shared/

Auto-Patcher
saturnu also created a patcher, currently on version 0.4.0: https://assemblergames.org/viewtopic.php?t=22454&start=180#p330133

Technical Information:
Here are links to more technical information about how these blur filters work and how to discover patches yourself.

xdaniel and saturnu both posted good explanations of how the Game Shark codes work and how to find them yourself: https://assemblergames.org/viewtopic.php?t=22454&start=100#p330049 https://assemblergames.org/viewtopic.php?t=22454&start=100#p330052

saturnu sent this tutorial for gscc, which I think is the software the Game Shark people use to find the temp framebuffer readouts of the VI-Register values, that are rewritten. His post on Assemblergames describes the VI-Register but is missing how to find these values in in the rdram memory: http://doc.kodewerx.org/hacking\_n64.html#using\_gs\_gscc

Marshall (the creator of the UltraHDMI mod) chimed in with details about how the anti-aliasing works and how it interacts with both the software and hardware 'de-blur' mods: http://retroactive.be/forum/viewtopic.php?f=8&t=7&start=360#p784