Here is the readme. Click here to scroll down to the new features in this version
XGl200 0.02f a.k.a. Scott's Glide Wrapper
------------------
In case you don't know, this is a program that emulates 3dfx
hardware by translating Glide (3dfx's proprietary programming
interface) calls into Direct3D calls.
I'm developing this on a system with a G200, so results are
probably best on that card. However, I have heard that this
wrapper works well on ATI Rage Pro, Rage 128, and TNT cards
as well.
Usage (Be sure to read this!)
------------------
Just copy the file glide2x.dll to somewhere in your path.
Alternatively, copy the file to the game directory (e.g.,
the same directory as ultra.exe in the case of UltraHLE).
You must also copy the configurator.exe file to somewhere.
The location is not critical, but you MUST run it before
using the wrapper, and you must rerun it for every new
version of the wrapper.
Testing
------------------
I have only tested this on my home system:
PII-400
G200
DirectX 6.0
Win98
Games:
Perfect:
None :-)
Almost perfect:
Croc - Legent of the Gobbos
Need for Speed 2
UltraHLE /w Mario 64
UltraHLE /w Quake 64
UltraHLE /w Zelda 64
UltraHLE /w Bomberman Hero
Very playable:
UltraHLE /w Doom 64 (very dark)
UltraHLE /w StarFox
UltraHLE /w WaveRace
Playable, but a little slow:
UltraHLE /w Goldeneye
UltraHLE /w Mario Kart
Playable, but ugly:
NBA Live 98
Unplayable:
Unreal (this game has become unplayable recently...
I don't know why, but at least it's a low-priority
game)
These are the only games I have to try it with, but let me know
if you have different results!
Source code
---------------------
Licensed under the Library GNU license agreement. See below for details.
If you want to help develop, I'm not really interested in a partner,
but if you fix a nasty bug, let me know and I'll be sure to
include it.
You need VC++ 6.0 and the Glide 2.0 SDK to compile the source.
Specifically, you need the files: sst1vod.h, glideutl.h, glidesys.h,
glide.h, and 3dfx.h.
Credits
---------------------
Massive credits go to Khalid Shaikh of the DirectGlide wrapper and
Let of the Glid3D wrapper. A number of times I got past sticky points
by glancing at (or sometimes cut & pasting from :-) these guy's code.
Other credits go to (for spotting bugs and other stuff):
Mark Bridgett For the awesome XGl200 logo!
Norman Jonas For some great programming tips
"ClideMan" For the great idea of using execute buffers
Wes Harris For bug reports and moral support
Rene Gollent For some great help
Les Ramer For some performance tips
Richard R. For more performance tips
Ryu ChongJin For pointing out a subtle bug
"Sifun" For showing me how to disable
the cursor
and many more... (don't feel bad if I forgot you, I just have a bad memory)!
Configuration
---------------------
You can set various tweaks with the configuration tool
Please select your card under "Card Model" for the optimum
configuration. If you don't see your card, please select
default, and let me know so I can add your card to the list!
VSync:
Tells the card whether to wait for a vertical refresh before
swapping buffers. May be faster in off position, but ugly
"tearing" may result.
Antialiasing:
May result in smoother appearance, but will be much slower,
and only supported by some cards.
Texture clamp mode:
Try selecting "alternate" if characters seem to have
duplicate
features (i.e., Link has three mouths).
Z-Buffer:
Can be used to reduce "out of order polygon" problems. For
example,
the pathways in Zelda may flash. The default for your card should
work best, but you might want to play around. G200 owners, please
enable "32 bit zbuffer" in Matrox Display Properties for best
results!
AlphaOps/ColorOps:
Only for the advanced user. Gray checkboxes mean "use
defaults". For
those of you who are wondering, if the intro Mario has a black head,
unselect D3DTOP_ADD to get it looking correctly... and be sure to let
me
know what configuration you're using, so I can add that to the list!
The other checkboxes may or may not fix other blending problems.
FPS Count:
Makes a cute little FPS meter in the corner of the screen. It actually
decreases performance slightly, so only use it for comparison.
Process Priority:
Really, this is only for UltraHLE, although it may work for other
games.
Set to High or Realtime to boost the priority of UltraHLE, hence
increasing
it's speed (and decreasing the sound skipping).
Buffering:
Triple is fastest if you have an 8+ meg card, but it might not be
compatible
with some games. Set to double if you're having problems.
Card model:
Select your card from the list to load the optimum settings. The
database will
be expanded in the future, especially with input from you guys! If you
would
like to see an addition, and you know the best settings for that card,
let me
know and I'll add it to the list.
Emulated Texture Memory:
Sets the amount of memory the program thinks the card has. A good
setting
is half the total amount of video RAM. Some games seem to have trouble
using
more than 4 megs. I doubt that there is much of a performance increase
beyond that anyway.
Logging:
This setting should not matter much. If your glide.log file is filling
up
to megabyte size with error messages, drop me a line with the messages
you're
getting so I can attempt to fix them. In the meantime, you can disable
the
logging so your game doesn't grind to a halt.
ATI Text Fix:
Enable a workaround to make text visible on the ATI cards in Zelda. May
make
the game ugly in other parts, though. I don't know of a way to truly
fix it,
since their driver is broken.
Caveats
---------------------
Obviously, this is a work in progress.
Many color/texture blending modes are not supported.
You must have a hardware accelerator.
The wrapper will create a glide.log file in one of your directories. It shouldn't get too
big unless you play for hours on end :-).
You'll quickly find out any other problems I forgot to mention :-).
Contacting me
---------------------
The best way is email, at [email protected]. You may also visit my web page
at http://wwwcsif.cs.ucdavis.edu/~cutler (check out the programming section).
You may also visit www.glideunderground.com for updates.
Version Log
---------------------
0.01 First versioned release
0.01a Multi-resolution support
Performance enhancements
More color modes (Mario Kart fixes)
0.01b Color mode fixes (Zelda fixes)
Capability checking and logging
0.01c (beta) Mario cart fixes
0.01d (beta) Zelda text fixes for TNT and ATI cards
0.01e Performance enhancements
Official release of 0.01c-0.01d features
0.01f Performance enhancements
Zbuffer fixes, enhancements (water in Mario now correct)
0.01g Zelda button text fixes
Screenshots now work in UltraHLE
NBA Live 98 almost works
0.01h Mario Kart fixes
0.02 New configuration utility
0.02a Fixed bug in config utility
0.02b NFS2 SE now working again
Performance enhancements
0.02c More performance
Broke NFS2, sorry :-(.
0.02d NFS2 working again :-)
Added FPS counter and priority setting to config util
Color blending fixes
0.02e Configurator additions
Now correctly exits the window, so you may save games
to a file properly in UltraHLE
0.02f Croc - Legend of the Gobbos working almost
perfectly
Fixed Z-buffer and color keying because of it (so other
games may start working).
Zelda text workaround on Rage cards
License
---------------------
Copyright (C) 1998-1999 Scott Cutler
This library is free software; you can redistribute it and/or
modify it under the terms of the GNU Library General Public
License as published by the Free Software Foundation; either
version 2 of the License, or (at your option) any later version.
This library is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
Library General Public License for more details.
You should have received a copy of the GNU Library General Public
License along with this library; if not, write to the Free
Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA