Ragin64

N64 Emulation Guide for ATI Rage 128 video cards

Models using Rage 128 chip:
All-in-Wonder 128
All-in-Wonder 128 Pro™
Mobility M4
Rage Fury™
Rage Fury Pro™
Rage Fury MAXX™
Rage Magnum
Rage Mobility 128
Xpert 128
Xpert 99
Xpert 2000
Xpert 2000 Pro™

» ATI Product page
Original article written Jan. 15, 2002 by zAlbee.
Updated July 5, 2002 by zAlbee.
Updated Nov. 29, 2004 by zAlbee. Scroll to the bottom to see the final changes and updated conclusion.


If you are like me, and have one of these ATI cards, you've likely been pissed off trying to get N64 emulators to cooperate with it. And the drivers -- they do nothing!!! If you haven't had problems... well you're lucky =D. At any rate, here's a guide I wrote up to save fellow Rage128 users from some pain.

My system:

Celeron 566 o/c 708 MHz
128 mb sdram
Sound Blaster PCI 128
ATi Rage Fury Pro (32MB) AGP 4x --> most important

Windows 98 (first ed.), DirectX 8.0

The video card is the most important part of your configuration; it is responsible for most problems that people experience. Why? N64 games are heavy on realtime 3D rendering (unlike the FMV's you see in Playstation games like FF7, those are pre-rendered). To produce the 3D graphics of an N64, the emulator authors have to deal with different texture methods/modes and lighting techniques. Unfortunately there are so many video cards out there, and they all vary in their support of the 3D API's (eg. OpenGL, Direct3D, Glide) and the various techniques employed in those API's. In short, what works on one video card might not work on another. But you say other 3D games like Quake don't have any problems! Well, most retail games on the market will have had hours of testing and debugging on different hardware. Unfortunately emulators are often written by a single programmer (sometimes 2-3) and they simply don't have the resources for this kind of extensive debugging.

So... what does work on this ATI chip?


Best emulated graphics with an ATI Rage 128 ..... UltraHLE (SupraHLE) + XGL200. The first N64 emulator to come out is still an excellent one. Thanks to its high level emulation, it sports great speed (faster than Project64), but as a side effect, it supports few games (although it has improved with newer INI's and the introduction of SupraHLE, a modified (hacked) version). The success of this emulator depends on the Glide wrapper you use. After a lot of experimenting, I've found that Scott Cutler's XGL200 0.04a works flawlessly with my Rage Fury. eVoodoo works very well too, and is sometimes faster, but it has a splash screen that can be annoying.

Quick Link:
» SupraHLE homepage

Note: You must install into a directory that has no spaces in the name.

Recommended config:

SupraHLE 1.1.1
- XGL200
  - select Card Model: "ATI Rage 128"
  - Process Priority: "Realtime"
  - "ATI Text Fix": off

Result: many games run perfectly (Mario, Mariokart, Zelda OoT, StarFox) -- but many do not. That brings us to...


Best emulator for games not supported by SupraHLE. Yikes, there are a lot of these new emulators lately. 1964, Apollo, Daedulus, Project64, TR64... All these emulators are polished, have high game-compatibility, and support the Zilmar plugin spec. That is, they all use video plugins that handle the video (sound plugins for sound, etc) and these plugins are interchangeable between the emu's. This is good and bad. Good - because you can combine the best of the video plugins with the best of the core emulators, etc. Bad - because none of the video plugins are designed for the Rage128, instead they are for TNT2, GeForce, Radeon, etc.

The effect is graphics that are playable, but sometimes ugly. However, out of them all, I like Project64 the best. It also has the best video plugin - Jabo's Direct3D7 1.40. With a bit of tweaking, you can get the graphics to look pretty decent.

Quick Links:
» Project64 homepage
» 1964 homepage

» Glide64 homepage
» eVoodoo homepage

Note: Install eVoodoo (glide3x.dll) into the emulator's main directory.

Recommended "alternate" config:

Project 64 1.40
- Jabo's Direct3D7 1.40
  - 640x480x32 --> ATI cards run better in 32bit colour
  - Triple Buffer
  - Texture format: 16 and 32 bpp
  - Enable display list culling
  - Change blending mode if invalid for video card: depends on game

  You can leave the other options as default (or experiment =).

However: You still can't get it to look as good as the GeForce. For example, in some games, the 3d models are not coloured completely (Mario, Smash, Zelda) resulting in characters with white "splotches" (this is the problem with "constants"). A different problem involves entire sprites turning completely black or white at random intervals. These intervals usually are temporary (walls in Goldeneye), may flash intermittently (racers in Mariokart), or may just stay permanently (Lakitu cameraman in Mario64).

FYI, here is an excerpt from the Project64 1.1 Readme (the card is classified under bad video hardware, but are they talking about the Rage128 Pro or the older Rage Pro (completely different chip)?):

ATI Rage Pro - It doesn't support constants, yet it does multi-texturing, this card looks very bad as a result.

Later, in 1.4 they are nicer about it, maybe they even fixed some problems with it =):

ATI Rage Pro - It doesn't support constants well, it does support multitexturing though.


 UPDATE (JUL.5.2002) - New Glide 64 video plugin!
On January 2, 2002, Dave released the first working version (0.01) of his Glide64 plugin. It is a Zilmar-spec plugin and uses the Glide API. If you were paying attention you'd notice that Glide is also in use by the highly recommended SupraHLE! No wonder this plugin was widely anticipated by Voodoo and older video card owners alike. So why is this update so late? (this is just history, you can skip the next paragraph.)

Well SupraHLE uses Glide 2x, but Glide64 uses Glide 3x. When Dave started writing the plugin, there was no Glide wrapper for Glide 3x... In fact, after his Jan.19 release of version 0.03, the author announced, and I quote "Glide64 does NOT and never will support glide wrappers." Of course I tried wrappers anyways, and they didn't work. Well I was certainly disheartened. But starting Apr.14, that all changed! eVoodoo3 was created for the sole purpose of Glide64 0.1 compatibility. Since then many new versions of both have been released and are making it easier for Rage128 cards (and Voodoos of course) to run Project64 (in fact, the newest eVoodoo versions are also starting to support PC games that use Glide). I have to thank Nephalim for emailing me this info... I had given up on the Glide 64 plugin after version 0.03.

Does Glide64 work? Hell yes! You need the newest version of eVoodoo XP 3. Graphic quality is now much better with Project64. No more white splotches or constant texture problems. I'm still testing it, but it seems to work just as well as SupraHLE, although it still suffers from the slow speed of PJ64. I'm gonna stick with Project64 1.40 for the core soley because I haven't tried any other cores.... There's also a new version (PJ 1.5 beta), but the only difference is added N64 cheats. [ UPDATE (Nov.29.2004) - Project64 1.5 final (non-beta) is in fact a real update, that includes those cheats, plus many more important changes, eg. the new Jabo's Direct3D6 1.50 plugin.] You could also try 1964 with these plugins.

 NEW  Recommended "alternate" config:

Project 64 1.40
- Glide64 0.253
- eVoodoo 3.25 (newer than 3.2)
  - i haven't toyed around with enough options yet =P



Screenshots - (with ATI Rage Fury)

 UPDATE (JUL.5.2002)  - some screenshots added for PJ w/ Glide 64. More on the way.

  Ultra/SupraHLE Project 64 - Jabo's D3D 1.4 PJ with Glide64
Mario 64
Runs perfectly on UltraHLE

Hmmm... looks kinda like Mario Bros. 3

Works

Lights, camera, action! (note shadows)

Too many lights! I'm blind!

Lighting is fixed, Lakitu is normal again

Nice transparencies. [5 stars to go!]

Black black coin...
what happened to my face?

Ahhh... much better.
 
Smash Bros. (not playable)



Grrr.... whoever caused me these
bandages shall pay!

All characters have working textures.
But now Pikachu has no limbs! Argh!
MarioKart 64
Runs excellently on both emu's,
slightly better on HLE

Yoshi's the best =)
PJ bug: sometimes character turns white.
F-Zero X (not playable)



Excellent, except vehicle polygons are
invisible (all you see is a shadow).
StarFox 64
Runs superbly
 

Title texture doesn't appear,
but the sprites are fine.

KABOOM!

Gameplay is smooth on both.
Mario Party 2 (not playable)



No, this game isn't called Pirate Land
- it's Mario Party 2!
(not playable)



The BEST party game. Runs perfect.
(not playable)



Text is crystal clear (Wow ATi actually did
something better than the other cards!)
Goldeneye
Good graphics. Crashes randomly.
 

Textures disappear randomly
(not depicted here).
Perfect Dark (not playable)



One sweet FPS.
(not playable)



Looks good. Menu's not perfect, but meh.
Runs too slow on my vid card.



Screenshots/Final Remarks: As you can see, for all of the games depicted above, at least one of SupraHLE or PJ64 run it with high-quality graphics (except Smash Bros.). As a general rule, for games that play on BOTH emu's, SupraHLE graphics are better (virtually no bugs) AND faster. Fast speed is important since it allows for sound that is less choppy -- I find PJ64's sound quite irritating. YET - generally, if it ONLY plays on PJ64, the graphics also run close to perfect (if a bit slow). It seems that Project64 has more (graphics) bugs with the older games than the newer ones. Fortunately for older games, just use SupraHLE.

 UPDATE (JUL.5.2002)   So after Glide64, what's changed? Not much really. The speed factor still puts SupraHLE on top. And when that doesn't work, THEN you can use Project 64 and Glide 64, but now the graphics will work just as well as any other card's! Sweet.

Concluding.... Well that's all I have to offer. Maybe one day a plugin specific for ATI will be created. Maybe SupraHLE will be dramatically improved. Maybe I'll just get a GeForce3 =D. But for the time being the SupraHLE 1.1.1 + Project64 1.40 combo is fairly potent [for quality, not speed =( ]; once you figure out the config and settings for each emu/game, you're all set.


 UPDATE (NOV.29.2004)   A lot has progressed in N64 emulation during the past 2 years. The Glide64 project was dropped by Dave, but continued by Gonetz. Glide64 0.7 ME SP8 is now the latest version, with more supported features than before, such as the framebuffer. A new Glide3 wrapper written by Hacktarux supports this, and is now included with Glide64 (did not test with Rage). eVoodoo was not updated, but still works. Project64 has been updated to an official 1.5 and SP1 patch. 1964 has also emerged as an excellent and fast emulator (version 0.99).

Newest Final Recommendation - Please Read
Use 1964 (computers < 1 GHz) or Project64 (>1 GHz) with the Glide64 plugin and either glide wrapper. 1964 is quite a bit faster than Project64, but has similar compatibility. I was able to play BanjoKazooie at full speed 640x480 with only my 708MHz Celeron. I can now rest assured that this is the final answer for Rage128 users, and I no longer need to suggest SupraHLE. Meanwhile, I have a newer Athlon 1800 with a Radeon 8500 which is fantastic. Cheers =).




zAlbee, July 5, 2002.
Comments? Corrections? Email me at albz@intricus.net


N64 Emu Guide | PJ64 Guide