glN64 v0.4.1 Released
Monday, August 18, 2003

This is a small update to glN64 that fixes some annoying bugs that were left in the last version. Some people may still have problems running it in Project64, I'm still working on the cause for that.

Here's what's new:

  • Fixed a problem involving status bars and GeForces
  • Fixed a bug that occured when taking a screenshot when hardware framebuffer textures were enabled
  • Fixed a bug in the texture cache that could cause slow speed, and eventual freezing
  • Fixed a bug that caused refresh rates not to be saved
  • Removed some debugging code left in the texture cache that was causing a loss in speed
  • Improved microcode detection, there should be fewer unknown microcode errors now
  • Added an option for dithered alpha since it's slow on some Radeons, and fine on others
  • Added detection and adjustment for the 1964 toolbar

Get the new version from the download section.


  glN64 v0.4 Released
Tuesday, August 12, 2003

glN64 v0.4 is finally ready to be released to the public. As many of you know this version has Radeon support, as well as the new hardware frame buffer textures. I'd like to give a special thanks to Clements, who has been helping me beta test glN64. Since I no longer have a GeForce card in my development machine, this version wouldn't be compatible with GeForce cards without his help. Thanks Clements!

Here's a quick list of what's new in this release:

  • Shortened the name (I got tired of all the typing )
  • Rewrote ~80% of the plugin
  • Added hardware framebuffer textures (still experimental)
  • Recompiled combine modes are now cached
  • Greatly improved non-GeForce combiner
  • Slightly improved GeForce combiner
  • Combiner compilers are now automatically selected
  • Added support for line drawing microcodes (Line3D, L3DEX, and L3DEX2)
  • Added support for Diddy Kong Racing/Jet Force Gemini/Mickey's Speedway microcodes
  • Added partial support for sprite microcodes (S2DEX and S2DEX2)
  • Added support for Perfect Dark microcode
  • Changed microcode detection method
  • Added internal near-clipping for NoN (non near-clipping) microcodes
  • Added smarter depth buffer clearing
  • Added support for screenshot saving
  • Added selectable texture bit depth
  • Moved configuration from an INI file to the registry
  • And many other changes as a result of the rewrite...

You can find v0.4, along with the source, in the download section.


  glNintendo64() v0.3.1
Saturday, March 1, 2003

Thanks to some feedback from Clements on EmuTalk, I discovered a couple bugs that were causing several games to crash, so here's a quick update remedy the situation.


  glNintendo64() v0.3 Finally Out!
Friday, February 28, 2003

Well, I've finally gotten around to getting glN64() ready to release. This v0.3 is a big step up from v0.2, lots of new stuff working. Check out the download page for a list of what's new. A couple big things about this release is that it's the first one I'm releasing the source with, and it's also the first version to support non-GeForce cards (it should work with any OpenGL 1.4 compatible card, but since I don't have another card to test with...).

Anyway, enough talk, go ahead and download the new version!


  glNintendo64() Status Update
Monday, February 10, 2003

I've been quiet for far too long now - I've given little pieces of info on EmuTalk, but it's time I gave an official status update. I am still working on the plugin, but development has slowed due to work and college. I had hoped to get a release out during Christmas break, but I ended up going on a trip to Mexico instead...

So much of glN64() has changed, I'm not sure where to begin. I have been trying to keep a bit of a log, so I guess I'll use that (although it's not very complete):

  • First open source release
  • Rewrote combiner (twice)
  • New combiner translates N64 combine modes instead of using a lookup table
  • Enables and disables texture stages based on if combiner uses them
  • Now only enables alpha testing for threshold mode, not dithered
  • Added fullscreen support
  • Added 16-bit color support
  • Added support for second texture unit
  • Added support for F3DEX2 ForceMatrix
  • Added support for changing light color with MoveWord in F3DEX2
  • Added support for texture coordinate shifts
  • Added support for S2DEX BG_Copy command
  • Added support for fog (still a tad buggy)
  • Added partial support for ModifyVtx
  • Added very hacked in partial support for dithered alpha testing
  • Added more error checking in LoadTile and LoadBlock
  • Added partial support for noise in combiner
  • Added 2xSAI texture filtering
  • Added partial support for forced blender modes
  • Fixed stupid palette selection bug
  • Fixed problems caused by not using the tile specified in TexRect
  • Fixed a bug that caused the color buffer to be cleared along with the depth buffer
  • Changed back to glDrawArrays() from glDrawElements()
  • Improved TexRect texture coordinate generation (again)
  • Improved texture size computation, should be nearly always correct now
  • Improved CRC checking in texture cache, it's much more accurate (and effective) now
  • Removed limit on number of textures that can be cached (limited by size instead)
  • Improved OpenGL state management (slight speed improvement)
  • Improved display list culling (should cull more unneeded dlists now)
  • Many other fixes, tweaks, and additions that I've forgotten about over the months...

Here are a few shots from the latest build. The first one shows the dissolve effect in Mario 64 (hard to see in a still shot), the next one is of the Zelda 64 Nintendo screen showing some very advanced blending, next is Yoshi creaming the stupid yellow thing in Smash Brothers, and finally a shot of Episode 1 Racer.

Note that 2xSAI is enabled in all these shots, it doesn't make a big difference, but it is noticable - especially in higher resolutions.

There are still several things I'd like to get done for version 0.3, but since it's been so long since I've released I'm thinking of just releasing a beta WIP version in the mean-time.