Nintendo 64 Anti-Aliasing Hack :: RGB304 / MY LIFE IN GAMING

– N64 fans have long wished for solutions to the console’s infamous blur. We’ve previously shown what’s possible through the magic of the Ultra HDMI, an HDMI mod that has the ability to reverse the N64’s inherently blurred image. But more recently, there’s been a bit of excitement over the discovery that N64 anti-aliasing can be removed without any modifications to the console. An alternative to the Ultra HDMI? Well, not exactly. Let’s take a look at what’s really going on. (theme music) (upbeat rock music) – Anti-aliasing is generally considered to be a welcome improvement to image quality in modern games, but the N64’s lower resolution graphics are arguably poorly represented by a generous smear. Scanline separation on a high quality CRT may help smooth over the flaws, but if you’re playing your N64 on an HDTV, it’s actually pretty tough to get some decent results, even with RGB mods and high quality video scalers. But then there’s the Ultra HDMI. With the right settings, this modification does an excellent job of approximating the PVM look, but you can also play with clean, sharp pixels. Either way, you can also use a mind-blowing feature called VI De-Blur, which cleans up the image significantly. A few months after we released our N64 episode of the RGB Master Class, we heard that the brilliant minds over at the Assembler Games forums had made an exciting discovery, that N64 anti-aliasing on 3D graphics can sometimes be removed with nothing more than a GameShark. If you’re not familiar, a Gameshark is a cheat device that alters how memory addresses operate during gameplay. By identifying the temporary location of the values written to the VI or “video interface” register, a code can be entered to change or turn off certain graphics functions. With this discovery, there seems to be a bit of confusion. Some are hailing the GameShark is an alternative to the Ultra HDMI. But the truth is, both devices do something completely different, and provide different results. – The N64’s blur is a multi-step process, but let’s boil it down to two broader steps. In general terms, basic anti-aliasing and other filters are first applied to the 3D graphics. Then, before the final output, everything is smeared a bit in the horizontal axis. Quake 64’s option to turn off filters, gives us a rare look at what could have been. Other games simply didn’t do this. What the GameShark codes do is similar to the Quake option, they remove parts of the first step. Even though the Ultra HDMI pulls digital video and audio from the N64, it doesn’t have the means to mess with game code. On the flipside, the Ultra HDMI can do something that the GameShark cannot? it can reverse the secondary blur in most games through an image processing technique called deconvolution. I know I’ve said it before, but it looks like freaking witchcraft! I just can’t believe it works. So as you can see, these are separate processes performing different functions, not at all the same thing. If you had to pick one, which would you prefer? I personally think there’s absolutely no benefit to the secondary blur, so I love what the Ultra HDMI does. The primary anti-aliasing, that’s what the GameShark deals with, doesn’t offend me at all… and I even think it kinda helps a bit. But it’s best to evaluate the result on a game-by-game basis. Remember, at the end of the day, we’re dealing with low resolution 3D graphics and there’s only so much we can do without emulation. And depending on your preferences, maybe you don’t want to see 2D games and 3d games represented the same way. Also note that GameShark codes cannot improve the clarity of 2D graphics like the Ultra HDMI can. Of course, both devices can team up to truly obliterate the blur once and for all. Texture filtering aside, this is kinda like giving your N64 games a PS1-styled makeover. Whether it’s for the best is for you to decide. Note that the codes may leave behind a strong dithered effect, which is perhaps a bit too much when combined the de-blur. You can see how dithering and anti-aliasing combine to create a sort of shading. The raw dithered effect is much less noticeable over analog, and the overall perception is quite a bit different on a CRT. Needless to say, preferences are going to vary wildly. CRT fans will probably get the most enjoyment out of these hacks. It’s worth noting that the de-blur function is not inherent to the Ultra HDMI, because it does not interfere with the rendering pipeline. In fact, work has been done on performing a similar function with RGB kits. It’s theoretically possible that a de-blur function could even be built into N64RGB boards in the future. So PVM fans in particular should definitely pay attention to ongoing developments. GameShark is of course an unlicensed device, and developers tried to block its use. Ideally, look for later GameSharks? identifiable by sparkles or something. There should be a sticker on the back indicating the version, with 3.3 being the final revision. The GameShark has to be set to certain keycode groups to force game compatibility. If you’re having trouble getting it to boot, try using an older game, like GoldenEye or Mario 64. Then change the key group to match your game? Google N64 GameShark key groups if you aren’t sure. Unfortunately, each time you select an alternate group, it’s good for only one bootup, so it’s a huge hassle. At least the GameShark codes themselves are stored in memory. But if you’re looking for something simpler… the GameShark isn’t the only device that let’s you tweak the video interface. (retro action music) – If you enjoy using flash carts to play ROMs on real hardware, you’re in luck. Assembler Games member Saturnu has released a universal patching software that can manipulate the video table inside of a ROM and the routine that sets VI registers. You can add commands to the BAT file to specify what effects you want on or off. We were unable to come up with any combination of effects that wouldn’t leave a strong dither over the whole screen when anti-aliasing was removed. But like Try pointed out, this is not nearly as noticeable on a CRT, Another forum member, Poregon, ran this tool over the entire N64 library and archived the patches with his preferred settings. You can use these to create patched ROMs yourself, with software like Lunar IPS, or apply IPS patches using the Everdrive 64’s patching function. You can also use the 64 Drive by Marshall of Retroactive, the creator of the Ultra HDMI. Before you dive in head first, please be warned that using an actual GameShark with an Everdrive 64 might damage your equipment, but that’s redundant anyway thanks to the Everdrive’s built-in GameShark engine. Some people even wish that the N64’s texture filtering could be removed, but as far as we know, the only known method for doing that is through emulation. It’s also theoretically possible that disabling VI functions could bring framerate improvements, but this doesn’t yet work with the current generation of codes or patches. Codes and patches are discovered through software, including certain emulators, which allow the viewing and alteration of memory addresses. But whether it’s possible depends on how each game passes these values into the system’s GPU. Because of this, don’t expect to see simple GameShark codes for every game, since the GameShark can only alter values in RAM. We were even warned that at least one particular VI register flag shouldn’t be tinkered with, or else it’s possible you could damage your system. All of that is kind of over our heads, so if you’re like us, you’ll have to hope that someone has already developed codes and patches for specific versions of your favorite games. The original source for codes and information is the thread on Assembler Games forums, but if you’re looking for more organized information, forum member Poregon has started compiling patches on his own website. Also keep an eye on the developing page for the subject at for further information and links to code databases. (credit music)


Add a Comment

Your email address will not be published. Required fields are marked *