Lewpy's 3dfx/Glideł Renderer
4. Description
5. Installation
6.1 Keys
6.2 Menu System
6.3 Miscellaneous Settings7. Problems
8. Greets
10. FAQ
Plugin Type | GPU |
Plugin Name | Lewpy's 3dfx/Glideł Renderer |
Plugin Version | 1.0.40 |
Date | 13/07/2002 |
Author | Lewpy (based on Tratax's Glide plugin) |
Only contact me about things to do with this plugin.
General enquiries about PSEmu Pro and requests for PSX BIOS's
will be ignored. Read the FAQ.
Before you think about reporting a bug, please check if there is an update for this driver. Try the PSEmu Pro homepage, ePSXe homepage, or my own Beta pages.
Email: psemu@arisen.demon.co.uk
Send me details of the problems you encounter with the following info:-
Most of this info can be automatically gathered using the button named Copy Info on the configuration screen of the plugin. Just press the button, and then paste into the mail message.
DO NOT include any screenshots!!!! If I need one, I may ask for one :) My mailbox does not need filling!!
*** READ THE VERSION NOTES FOR THE LATEST INFO ***
This plugin is for use only with freeware PSX emulators that use the PSEmu Pro
plugin system, and can not be used
in any other software.
This program is freeware and cannot be sold. Also this program
cannot be distributed without written permission. This program
cannot be used for any commercial purposes.
You may not reverse engineer, decompile, or disassemble the
enclosed software.
Authors are not responsible for any damages that this program may
cause, and are also not responsible for anything this plugin may be used for.
This is a hardware driver for 3dfx graphics accelerators. This
means it will NOT run on any other
manufacturer's 3D card.
It *requires* Glideł runtime libraries to be
installed for you 3dfx card.
Download them either from your card manufacturers web site, or
grab the 3dfx reference drivers from the 3dfx web site.
Note: this driver is optimised for the latest range of 3dfx cards. That is, it offers better visual quality on Voodoo˛, Banshee and Voodooł cards, and later. Voodooš cards and Voodoo Rush cards should work with the driver, but they will suffer some transparency problems compared to the newer cards.
Copy this plugin to "plugin" directory that
resides in PSEmu directory, or similar directory for other PSX emulators. Check
the emulators documentation for details.
Use Configuration in PSEmu to choose this plugin, and select the
resolution you want it to run in and alter any settings you wish. These settings can be changed at runtime as well.
Do not try to use this plugin with Impact! (the arcade emulator) as it is not designed to work with it, and will not work properly.
The actual keys are programmable. The ones listed below are the default settings.
DEL - Menu Scroll This key cycles through the available configuration items
END - Menu Toggle This key changes the configuration item between it's available settings
CTRL - Show VRAM This is really for my benefit :) It's not perfect, as it can't handle double buffer too well. BGR is also displayed as RGB :( Seems to be a Glide bug. Oh well. HANDY FEATURE: tapping this key will help clear the screen of any surplus graphics.
SHIFT - Show VRAM, with no rendering This is really for my benefit :) Needs to be pressed while you are already Showing VRAM, and then the hardware rendering is stopped, allowing clear view of VRAM.
The plugin supports the Screen Shot function, and will write a screen
shot to the sub-directory called "Snap". It will create the
sub-directory if it does not already exist, and the files will be named PSGLDxxx.bmp,
where xxx is a number from 1 to 999, automatically incremented to avoid
overwriting existing files.
Please refer to the emulator's documentation to find the correct key to activate
the Screen Shot function.
The Menu System is an On-Screen system: information is
displayed on the screen :)
There are two keys to use: one to select, one to activate.
The following options are available to play with:-
On-Screen Display | |
Off | No display [default] |
FPS | FPS is displayed |
FPS/PSX Mode | FPS and PSX Mode (NOT the 3dfx mode you are running) |
Full Info | Lots of information |
Description | The On-Screen Display provides
information to the user by means of an overlaid display in the top
left of the screen. The first two options are the most useful to most
people: Off and FPS. Off will give you the most speed, as the drawing technique of the display will actually slow down the emulator. FPS mode will provide you with the current speed of emulation (in Frames Per Second), plus some other bits of information, demonstrated and described below FPSxx/yy z s AM xx = current FPS - this will be coloured red if full software
rendering is being performed FPS and PSX Mode enables another line of information, which details the current PSX mode being emulated, as demonstrated and described below XXXxYYYIDRRP XXX = current PSX x resolution (width) Full Info adds some statistics for the rendered frame, which are self-explanatory. THIS SETTING REALLY SLOWS DOWN THE EMULATOR! RECOMMEND: Off or FPS |
Frame Skip | |
Off | Frame Skip not active [default] |
On | Frame Skip active |
Description | Frame Skipping is a technique for
improving the apparent speed of emulation, but it looses visual
quality. The effect is achieved by rendering fewer frames than are
actually drawn by the game. As implemented in this plugin, it is a
very simple system: if the system is running slower than the correct
emulation speed, the next frame will not be drawn. At most only one
frame will be skipped. Worst case, every other frame is skipped. This option can cause all kinds of graphical problems, especially with games running in interlaced display modes. If you are suffering from graphical problems, switch this option off. RECOMMEND: Off |
FrameRate Limit | |
Full-Rate | Game FPS limited to 60fps or 50fps, depending on System Type setting |
Half-Rate | Game FPS limited to 30fps or 25fps, depending on System Type setting |
Custom | Game FPS limited to user-definable limit |
Auto | Game FPS is automatically set according to PSX modes, ignoring the System Type setting [default] |
Description | This option sets the maximum speed
that the emulator will run a game at. It works in tandem with the System
Type setting below.
RECOMMEND: Auto |
System Type | |
NTSC | Sets the FPS limits to 60/30fps [default] |
PAL | Sets the FPS limits to 50/25fps |
Description | This setting defines the system type
of the emulator: PAL or NTSC. It is used by the FrameRate Limit
to decide what the actual maximum speed of a game should be. It is ignored if the FrameRate Limit is set to Auto. RECOMMEND: Your countries TV standard (PAL for UK, NTSC for USA, etc.) |
FrameCap Method | |
Old | Uses the old method of determining maximum frame-rate |
New | Use the new method of determining maximum frame-rate [default] |
Hybrid | Use the new method of determining maximum frame-rate, but with some tweaks |
Description | Most PSX emulators run PSX games as fast as
they possibly can, so if the game can be run faster than it should be,
it will be :) To make these games playable, the GPU plugin attempts to limit the speed of graphics updates, so that it matches the correct speed of the PSX. Old uses the original frame-capping algorithm I devised, which was simply to limit the page-flips to the correct frame-rate for the currently selected PSX display mode. This means for PAL: 25fps in non-interlaced modes (2 fields per frame), and 50fps in interlaced modes (1 field per frame); and for NTSC: 30fps in non-interlaced modes (2 fields per frame), and 60fps in interlaced modes (1 field per frame). The logic behind this is that there is little point updating a non-interlaced display more than 25fps, otherwise you effectively reduce the vertical resolution by half (fields are scanned twice per frame, using alternate scan-lines). But, unfortunately, there are a lot of PSX games that seem to do just that: run at 50/60fps in non-interlaced modes :( New takes a different approach, and limits the time between vertical interrupts to precisely 1/50th (or 1/60th for NTSC) of a second. The vertical interrupt is actually calculated by the main emulator, and signalled to the GPU plugin. In theory, this is the perfect solution .... except it relies on the main emulator to provide the vertical interrupts. It has been observed that the emulators often generate too many vertical interrupts per frame (i.e. 3 interrupts per non-interlaced frame, instead of 2, etc.) and this causes the game to actually generate a lower rate of frame updates (i.e. 50/3 = 16.667fps, instead of 50/2 = 25fps). It is clear that the emulator can far exceed this frame-rate, but there is some internal problem that maybe makes the game think it is taking too long to draw a frame: pure speculation here. But, even with this graphical drop in speed, the sound and everything else stays in proper synchronisation. Some games even flip between running too fast and running too slow. Hybrid modifies the behaviour of the New method slightly, and only allows a maximum of 2 vertical interrupts per frame. What this does is smoothes out the apparent frame-rate (can be seen in racing games such as Rage Racer and Ridge Racer Type 4), but it has a side effect: it tends to make the sound run too fast, as it is not correctly limiting the speed of the vertical interrupts :( RECOMMEND: New |
Draw Method | |
Bright | Bright display, but some colours not displayed correctly [default] |
Dim | Dim display, but colours displayed are correct relative intensities |
MultiPass | Bright display, correct relative intensities, better Alpha Blending accuracy, but slower (each poly is drawn twice) |
VSA-100 | Removed for now - not selectable |
Description | The PSX uses a different lighting
equation than 3dfx cards, which means an alteration is required to the
lighting equation inputs to achieve the correct colour balance. Bright boosts the lighting values on the primitives, to attempt to achieve the same lighting equation as the PSX. The problem is that the lighting values can saturate due to this boost, and then the lighting is distorted (bits are not as bright as they should be). In general, however, this looks the best. Dim does not boost the lighting values, but instead reduces the lighting on other non-light primitives. This has the effect of dimming the whole screen, but it keeps the lighting consistent with the real PSX. MultiPass achieves the correct PSX lighting equation by doing multiple passes on the required primitives, there by boosting their lighting without the saturation problem of the Bright setting. This is, however, considerably slower than the first two settings, as there are many many more internal state changes in the 3dfx hardware. VSA-100 would achieve the correct PSX lighting equation on VSA-100 hardware, if the Glide driver was not bugged. Due to the bug, this mode will not work. Since 3dfx is winding down, I doubt we will ever see this working. This is a crying shame, as it appears to work in their D3D & OpenGL drivers, just not Glideł. RECOMMEND: Bright |
Alpha Blending Mode | |
Basic | Transparent objects are drawn totally transparent |
Disabled | Transparent objects are not drawn transparent |
Advanced | Available on Voodoo˛ and later cards: Transparent objects drawn correctly [default] |
Description | The PSX supports alpha-blending for
primitives, which is controllable (on & off) per texel. To emulate
this correctly on 3dfx hardware, a feature added to Voodoo˛ and later
cards is required (i.e.. a feature not present on the original Voodoo
and Voodoo Rush). Basic does a basic implementation of the PSX alpha-blending, which does not support the per texel control. This means some objects will not be correctly displayed, and may be transparent when they shouldn't be. Disabled switches off all transparency. This is to help those that can't use the advanced option, and find out that some important object is transparent when it shouldn't be. Advanced implements correct PSX alpha-blending, complete with per texel control over the alpha-blending. If you can use it, use it! RECOMMEND: Advanced |
Bilinear Filtering | |
Disabled | Bilinear filtering off (standard PSX-style display) [default] |
Enabled | Bilinear filtering on (non-standard PSX-style display, has problems) |
Enabled w/o Sprites | Bilinear filtering on, but not on Sprites (non-standard PSX-style display, has problems) |
Description | Bilinear filtering is a technique
used in 3d graphics to reduce the pixelation of textures when viewed
close up (beyond one texel per pixel magnification). It calculates the
texture colour on each pixel drawn, by doing a weighted calculation of
the nearest 4 texels in the texture map. This effectively blurs the
texture, but reduces the pixelation. There is a problem with doing this to PSX textures: they are not designed for bilinear filtering, and this therefore causes problems on the edges of textures, where texels from neighbouring texture maps are accidentally used in the bilinear equation. Also, when displaying tiled backgrounds, noticeable lines appear between primitives, where the filtering is dis-jointed. Disabled does not use bilinear filtering. This is how a real PSX looks. Enabled implements bilinear filtering, however it will suffer from the above problems. Enabled w/o Sprites implements bilinear filtering on most of the PSX primitives, but not sprites. Sprites are used frequently in games to create a tiled background, and to display informational texts to the gamer. Preventing Sprites from being bilinear filtered helps reduce the problems detailed above. RECOMMEND: Off |
Alpha Testing | |
Normal | Alpha testing is done to an average value [default] |
Aggressive | Alpha testing is done to a more aggressive value |
Description | Alpha testing is used to
help eliminate the black borders around objects that can be produced
when using bilinear filtering on the PSX's chromakeyed textures. In
most cases, an average value for the alpha test function works 'best' [this is, of course, subjective, as with most
graphical phenomena], giving a trade-off between amount of visible
black and amount of real texture removed. Normal uses this average value for the alpha test function. Aggressive uses a value closer to the PSX's chromakey colour, thereby removing literally all the blackness around objects. The flip-side of this is that it also removes more of the real texture on the edge, as this part of the texture is 'contaminated' by the chromakey colour. However, this setting is very important in games that use MASK bits a lot (i.e. Silent Hill), as any bits of chromakey colour cause problems with any MASK bit blending operations. RECOMMEND: Normal |
FrameBuffer Access | |
Disabled | FrameBuffer writes ignored (could be faster in some games) |
Write | FrameBuffer writes are supported (Splash screens, etc.) [default] |
Read | FrameBuffer reads are supported (recursive texturing, screen storing, etc.) |
Read/Write | FrameBuffer reads and writes supported (see above descriptions) |
Description | On the PSX, it is very easy to send
images direct to the display screen, or read from the screen, just by
accessing to the
correct area of the VRAM. This can be used for recursive texturing
(using a previous [or current] frame as a texture for the current
frame], or for capturing a copy of the display for effects processing. Disabled does not emulate this kind of VRAM access, offering the most speed, but preventing certain types of displays appearing. Write offers support for direct writes to the the framebuffer. This kind of activity is mainly used for static splash-screens and MDECs, but can be used in other ways. This is generally fast enough that you don't notice it, except if the game accesses the framebuffer in a way which is hard to optimise emulation. Read offers support for reading back from the framebuffer. This is mainly used for recursive texturing (see above) and for copying the current framebuffer to another section of VRAM, for processing. This is _SLOW_, and you will notice it (generally as a pause), but it helps offer almost total emulation of PSX effects (yes, swirly-screen alert!). Read/Write offers support for both reading and writing to the framebuffer. See the descriptions above. RECOMMEND: Write |
Off-Screen Drawing | |
Disabled | Off-Screen Drawing ignored (could be faster in some games) |
Basic | Off-Screen Drawing supported, for those primitives determined to be non-visible (rendered textures, clears, etc.) [default] |
Extra | Off-Screen Drawing supported, with extra checks for recursive texturing |
Extra+FBR | Off-Screen Drawing supported, with extra checks for recursive texturing and a forced initial framebuffer read |
Full | Off-Screen Drawing supported, for all primitives |
Description | On the PSX, it is very easy to draw
primitives to areas of VRAM that are not actually being displayed.
These rendered images can then be re-used as textures that are
actually displayed on the screen. This is emulated by using software
routines to draw the primitives in the emulated PSX VRAM. Disabled does not use any software routines. This is the fastest option, but will not display some styles of PSX rendering. Basic uses software routines to render primitives that are determined not to be in the visible area of the PSX VRAM. Extra takes the off-screen drawing a step further, with another level of checking. If an attempt is made to use a display buffer as a texture, then full off-screen drawing will be enabled, but only for the necessary amount of time. As soon as recursive texturing stops, the off-screen drawing falls back to Basic mode. Extra+FBR is the same as Extra, but includes a framebuffer read at the start of full VRAM rendering, which is often necessary. This setting is designed for those that want swirly-screen effects, etc. but don't want framebuffer read access enabled all the time (note: designed with FFIX in mind!). Full draws all primitives in to PSX VRAM using software routines at all times. It's like running a software plugin at the same time, so is obvious very processor-intensive, and can slow down emulation by a very large amount. But, it allows literally all PSX rendering techniques to be emulated. RECOMMEND: Basic |
Polygon Mode | |
Textured | Objects drawn normally [default] |
Textured/WireFrame | Objects drawn normally, with Wire Frame super-imposed |
WireFrame | Objects drawn in Wire Frame only |
Description | A debugging feature that was left in
for public use! Textured mode is the normal rendering mode of the plugin. Texture/WireFrame mode adds a wire-frame outline of all primitives, as drawn, on top of the textured primitives. The wire-frame is in white. WireFrame mode only draws the primitives in wire-frame, with the correct texturing and lighting applied to the lines. RECOMMEND: Textured |
Texture Windows | |
Disabled | Disables the use of Texture Windows (worse graphical quality in some games) |
Enabled | Enable the use of Texture Windows (may impact performance) [default] |
Faked | Texture Windows are faked: no texture is draw, just a solid colour polygon. |
Description | Texture Windows is a feature of the
PSX that is very hard to emulate on standard PC hardware accelerators. Normal PSX texture pages are 256x256 texels in size. What a 'texture window' does is create a smaller texture area within the standard texture page, from which the primitives are actually rendered. This allows for texture wrapping a small area of a bigger texture over a primitive. To emulate this on standard PC hardware, the small texture area needs to be copied to its own texture, and then uploaded. If there are lots of texture windows used in a frame, each one from a different texture page or a different area of a texture page, then this can add up to a lot of individual textures, each one needing copied and uploaded. This can be very slow. Disabled switches off Texture Window support. Most games don't use the texture window feature of the PSX, but there is no extra overhead in leaving the emulation of the Texture Window enabled. The only reason to disabled texture windows is if a) enabling texture window emulation causes the plugin to crash (rare), or b) enabling texture window support makes the game too slow to be playable (i.e.. RRT4). Enabled switches on Texture Window support. This will give the correct display of all textures. Faked is a 'hack' to try to make those games that use texture windows, but run too slowly with texture window support enabled, look better than disabling texture window support. Instead of drawing a textured primitive with the wrong texture, it just draws a non-textured primitive with the correct lighting. It can look better. RECOMMEND: Enabled |
VSync | |
Disabled | Frame update is not synchronised to the vertical sync of the graphics card |
Enabled | Frame update is synchronised to the vertical sync of the graphics card [default] |
Description | Enables/Disables waiting for Vertical
Sync before flipping the display buffers. Disabling VSync will give an overall smoother game play, but a visible 'tear' in the display will be noticeable. Enabling VSync will give a cleaner display with no 'tears', but may not be as smooth. A 'tear' occurs when the front and back display buffer are switched while the front buffer was being scanned to the VDU. This creates a horizontal discontinuity in the displayed image, which makes the image look like it is torn in two. RECOMMEND: Enabled |
Banshee Code | |
Disabled | Disable Banshee-specific code [default] |
Enabled | Enable Banshee-specific code [a work around if you suffer crashes] |
Description | This options enables specific code
designed to work around a bug in old Banshee drivers which caused the
plugin to crash on start-up. It also employs a slightly different
colour blending arrangement in Glide, which may work around other bugs
in Glide drivers.
RECOMMEND: Disabled |
MDEC Format | |
Texture | MDECs are uploaded as a texture, then scaled to the screen [default] |
Direct Write | MDECs are uploaded directly to the screen buffer, with no scaling |
Description | Normally, the frame-buffer writes are
uploaded as textures and drawn straight to the screen, with bilinear
filtering. This fills the whole screen with the texture, and it is in
the correct proportion to the emulated PSX display. The side effect of this is that when displaying 24bit MDECs on old Voodoo cards (pre VSA-100 cards), the 24bit MDEC image must be reduced to a 16bit texture before being uploaded. This is then rendered to the Voodoo frame-buffer, which has a claimed 22bit effective colour depth. The reduction in colour depth results in a reduction in visual quality. Using the Direct Write method, the frame-buffer writes pixels are uploaded directly to the Voodoo frame-buffer, in full 24bit quality. This means that the only colour reduction is when the Voodoo card dithers the 24bit pixel to effective 22bit in its frame-buffer. Unfortunately, no scaling of the MDEC image is done, as this would be impractical. The MDEC is centred in the screen. Note: on VSA-100 hardware, which supports 32bit frame-buffers and textures, 24bit MDECs are automatically uploaded as 32bit textures, and the frame-buffer is automatically set to 32bit depth. This results in the best possible display of 24bit MDECs, with no loss of colour depth at any step of the rendering. RECOMMEND: Texture |
Experimental Flipping | |
Off | Disables experimental frame-flipping detection code [default] |
On | Enables experimental frame-flipping detection code - fixes Final Fantasy games, may cause problems in others |
Description | This is an experimental method
(i.e..
it may or may not work) of detecting the time at which the PSX
application switches between ('flips') using the frontbuffer
(the graphics that are displayed on the screen) and the backbuffer
(the area where graphics are drawn to, in preparation to be displayed on the next
'flip' of buffers). I had to make some modifications to the code that detects a 'flip' between buffers (non-trivial in a hardware GPU!!) so that the battle-menus in Final Fantasy games worked properly, and since I wasn't sure whether it would mess up other games, I made it a selectable option. So, if it messes up a games, you can disable it for that game. RECOMMEND: Off (On for Final Fantasy games) |
True Screen Sizing | |
Off | Disables true screen sizing code [default] |
On | Enables true screen sizing code |
Description | This is an attempt to
mimic a real TV set on the 3dfx card, complete with black boarders. This
allows the screen alignment functions in games to work, etc. Some may like it, some may hate it. We shall see :) RECOMMEND: Off |
FrontBuffer Rendering Fix | |
Off | Disables experimental frontbuffer rendering fix [default] |
On | Enables experimental frontbuffer rendering fix - fixes menus in NFS games, will probably cause problems in others |
Description | Some games (most notably Need For
Speed games) operate in double-buffered mode (as described above with
a front-buffer and back-buffer), but when they display a menu, they
stop flipping buffers and just render to the one buffer (the
frontbuffer). This is really quite crap, as far as graphical display
techniques goes, but we have no control over how the developers use
the GPU. This 'habit' of rendering direct to the
front-buffer is really a massive pain in the butt for hardware GPUs,
so I came up with a 'fix' which tries its best to detect
this behaviour and actually display the data for those menus. However,
because this is quite a major hack, it will probably cause problems in
other games, so this option should only be enable if you think you
need it (i.e.. NFS games, and maybe other games where you know menus,
etc. are missing).
RECOMMEND: Off (On for Need For Speed games) |
FF7 TextureWindow Fix | |
Off | Disables FF7 TextureWindow Fix [default] |
On | Enables FF7 TextureWindow Fix - fixes character dialogue boxes, etc in Final Fantasy 7, may cause problems in other games |
Description | Final Fantasy 7 seems to need a
special alignment fix to get Texture Windows implemented correctly.
This option enables an extra check/modification to the Texture Window
co-ordinates.
RECOMMEND: Off (On ONLY for Final Fantasy 7) |
Extreme Coord Fix | |
Disabled | Disables Extreme Coordinate fix |
Enabled | Enables Extreme Coordinate fix [default] |
Description | This enables checking for extreme
coordinates in primitives that are being rendered, and culling them if
found (i.e. they are not drawn). This resolves issues in some games
(Time Crisis, etc.) where at certain stages, objects seem to smear
across the scene, causing the view to be obscured. RECOMMEND: Enabled |
Force Screen Clear | |
Disabled | Normal screen clearing decision making [default] |
Enabled | Forces a full screen clear every frame |
Description | Allows you to force a screen clear every frame. Useful for games that consistently leave "left-over" bits of graphics to the around the outside of the current drawing area. RECOMMEND: Disabled |
Odd/Even Update | |
Disabled | Normal Odd/Even line status reporting [default] |
Enabled | Forced Odd/Even line status reporting |
Description | With this option enabled, the Odd/Even line status bit is toggled in non-interlaced modes. This resolves problems with one or two games (e.g. XMen Mutant Academy 2) RECOMMEND: Disabled |
Pure Software | |
Disabled | Normal rendering [default] |
Enabled | Pure Software rendering |
Description | If enabled, then the displayed rendering
will be done by the internal software routines only. The updating of the
display is done differently than normal, so this mode may make things
display correctly. RECOMMEND: Disabled |
Dithering | |
PSX Controlled | Normal dithering control [default] |
Forced | Dithering forced on at all times |
Description | This is purely a aesthetical choice. The PSX normally controls whether the GPU performs dithering on rendered primitives, but if you prefer more dithering then you can force dithering to be done all the time. RECOMMEND: PSX Controlled |
There are a few miscellaneous settings, which are not part of the menu system
Stored Configuration | There are 4 sets of configuration settings, which can be switched between |
3dfx Card | If you have multiple 3dfx cards in your system, you can choose which one is used by the emulator [currently unimplemented] |
Copy Info | This button copies your current plugin configuration (plus some system info) to the clipboard, so it an be pasted in to an email, etc. |
Resolution | This is the graphical resolution that the emulator will run at |
Refresh Rate | This is the graphical refresh rate that the emulator will run at [appears not to work!!] |
FSAA | If your card supports FSAA (ie.
cards based on VSA-100 chips), then you can choose the level of FSAA the
emulator will use (none, x2, x4, or x8). There is no way for your
selection to be checked if it s supported by your hardware, so don't
select a level that you know your hardware cannot perform. If these options are greyed out, then your card does not support them. |
FrameBuffer | If your card supports 32bit
rendering (ie. cards based on VSA-100 chips), then you can choose
between 16bit and 32bit rendering. If these options are greyed out, then your card does not support them. |
Textures | If your card supports 32bit
textures (ie. cards based on VSA-100 chips), then you can choose between
16bit and 32bit textures (only used when displaying 24bit MDECs). If these options are greyed out, then your card does not support them. |
Emulate Mask Bit | Enables emulation of the PSX MASK bit. This requires the use of the ZBuffer, so will slow down the emulation, and may offer less choices of resolution |
Enable Dynamic Caching | Enables Dynamic Caching of texture windows. This reserves a chunk of texture memory on the 3dfx card for the job, so may have an impact on the performance of older 3dfx cards (Voodoo, Voodoo˛, Voodoo Rush). Since this could affect plugin stability (i.e. it could make it crash), it is controllable for all 3dfx cards. It will significantly increase the performance of games that use extensive texture windows (Ridge Racer Type 4, for example). |
Custom FrameRate | Sets the Frame Rate that games are capped to when the Custom option is selected in the FrameRate Limit menu option |
The Key Configuration panel allows you to customise the keys used for the various runtime functions of the plugin, so that you can avoid clashes with keys that may be configured for other plugin's functions (such as the PAD plugin). There is also the following option
Enable Quick Configuration Hotkeys | Enables the hotkeys for switching configurations on-the-fly (i.e.. during a game). These are simply the keys 1, 2, 3, and 4. This option is here in case those keys clash with the keys you use for emulating the PSX gamepads. |
The TV Configuration panel allows you to customise the extents of the mimicked TV used with the True Screen Sizing option.
The Set Default button returns the currently selected stored configuration back to default values.
The Clone button allows you to copy the settings from the currently selected stored configuration to one (or multiple) of the other stored configurations.
For those of you incapable of reading the readme (but you wouldn't also be reading this, eh? ;) ), then the configuration panel is full of useful Tool Tips :)
Settings are stored in the Registry automatically, and are
loaded again at start-up.
Everything is stored under "HKEY_CURRENT_USER\Software\Vision Thing\PSEmu
Pro\GPU\LewGlide".
This means all emulators that use the plugin will share common settings.
Don't try and use this driver if you do not have a 3dfx
graphics card!!!
Also, make sure you have Glide3 installed: this will install a
file called GLIDE3X.DLL in your WINDOWS/SYSTEM
directory. If this driver is not present, expect it not to appear
in the list of plugins at all!
Really old 3dfx cards (mainly sent to developers early on) will not be able to run with this plugin. This is due to the plugin needing a texture palette, and the early 3dfx cards did not have this capability (Revision0 TMU's). I believe all production cards had later revision TMU's, so this should not affect 99.99% of people.
Greets to :-
IRC: mappy, moopy, stubbette, Ravian, Adept, Vastator, Gaffer,
Frenzy, Statix
IRCNet #coders, EFNet #3dfx, #PSEmu, & #ePSXe!
Duddie, Tratax, Kaz : where would we be without PSEmu Pro?
calb, Galtor, _demo_ : ePSXe is incredible!! great work guys :)
Pete "Dove" Bernert : where you find the time and energy for _all_
your plugins, I don't know!
RealLife(tm): Paul, Damian, Sarah (and all at Bizarre Creations),
Matt, Sue, Dunx, Tabs, Paula, Giles "Hoohah", Simon
"Delbert", Harry The Bastard, Jim, Rik, Pete.
* ver. 1.0.40 - 13.07.2002 - VSA-100 Blending Option I have managed to get the VSA-100 blending option working, thanks to having access to source code for the Glide3 driver (a big thanks to KoolSmoky & his Glide3 project at http://www.ve3d.com/koolsmoky/glide3x.html). I don't think it is perfect yet, but it is very promising as a way of getting near-perfect PSX colours on a Voodoo4/5. Let me know of any glitches. NOTE: This is only for Voodoo4/5 cards.
- New Clone Button There's a new button in the configuration panel: Clone. This allows all the settings from the currently selected stored configuration to be copied to one (or many) of the other stored configurations. Very handy if you want to have multiple configurations with only minor differences between them: set one up, copy to other configuration slots, and then slightly tweak the settings in the others. Helps eliminate human error when trying to manually copy settings.
- Automatic DMAChain handling Thanks to Pete, I have now implemented automatic handling of damaged or looping DMAChains. This means the DMA Chain option has been removed from the options menu. Hoorah.
- FF9 Slowdowns The software routines were kicking in on the Abilities and Status menus in FF9 when they weren't needed. Corrected this. Thanks to Goku7 for pointing this out.
- Spyro2/3 NTSC flickering These titles had flickering top and bottom borders, which is now corrected. This may well have affected other games too. Thanks to Zephon for help isolating the problem.
- Tales of Destiny 2 background bug Some of the backgrounds in ToD2 were smeared across the screen. This was caused by very large sprites being drawn: Pete had told me about this a while ago, I've just never got round to handling the situation :) Anyway, I've added code to correctly render large sprites. Thanks to fivefeet8 for help isolating the problem.
- FrameLimiter Bug If you set a custom frame-limit of 200Hz, and then set the limit back to automatic, the frame-rate would still be unlimited. This has been corrected. Thanks to fivefeet8 for bring this to my attention.
* ver. 1.0.39 - 09.06.2002 - Game slowdown problems Due to some changes in the last version, some games were slowing down or stuttering (eg. FF9 in battles, and Tekken3 in fights). I've resolved the problem, and also tidied up the highlighting of the FF9 battle menu, so dark boxes are no longer displayed around the HP and MP numbers. Thanks to Darkfalz and larry for informing me of the problem, and testing out the fix.
* ver. 1.0.38 - 08.06.2002 - Extra settings for VSA-100 based cards Voodoo4/5/6 owners can now select colour depth, texture depth, and FSAA level within the configuration panel. Each setting can be changed per stored config, so you can toggle between them in-game.
- Pure Software mode There is a new menu option to enable "pure software" mode. This effectively turns the GPU in to a software rendering GPU, but it's not that highly optimised. This is useful for situations where the hardware rendering has problems displaying some games correctly, and a software GPU can display it correctly. Also useful for on-the-fly comparisons of how much hardware rendering can improve the image quality of some PSX games, particularly the texturing detail in some 3d games.
- Dithering option You can now manually force the GPU to enable dithering at all times.
- Improved Software routines The software routines are now taken from PEOpS v1.6, so are significantly improved over the older routines I was using.
- System Dependencies removed v1.36 and v1.37 had some system DLL dependencies which meant they would not run (or even be listed in the emulator!) under Windows95 or WindowsNT4. I've removed these dependencies by loading the system DLLs dynamically, so the plugin should now work on those systems again.
- OnScreen Display tweak The current FPS value will be coloured red if full software rendering is being performed. This allows you to see at a glance if this is happening, and may explain why a game slows down at a certain point, and allows you to make educated tweaks to settings.
- Screen clearing tweak The algorithm for detecting whether freesize tiles are trying to clear the screen has been tweaked, so this may improve games that exhibit garbage, flickering, or hall-of-mirror effects.
- FF9/FBA Reading tweak Previous versions of the plugin used to crash at the start of FF9 if the FBA setting was set to enable reading. I've added a check for this, so hopefully this won't happen anymore. Thanks to RueGorE for reminding me of this problem :)
- FF7 Texture Window bug There was a bug in the last couple of versions that meant certain textures where not displayed quite right. I've corrected the problem, and all textures should be fine, as long as you enable the special "FF7 Texture Window" fix. Thanks to ultragunner for the heads-up on that one.
- MDEC bug There was a bug in the last couple of versions that meant certain MDECs were only displayed in the top-half of the screen, rather than fullscreen. This has been resolved.
- Re: Fixed Vertex bug Re-added the new code for sign-extending the vertices. Moral 1: check your #defines carefully ;) Moral 2: never doubt the almighty Pete ;)
* ver. 1.0.37 - 27.05.2002 - Short time coming :) Another version in under a week ;)
- Fixed MDEC bug A bug crept in due to the screen resizing code, meaning MDECs could be cut off in the lower right corner. This is now fixed. This could possibly have caused crashes in some games.
- Fixed Vertex bug I had changed the code to sign-extend the vertices, and it wasn't working right (it actually wasn't working at all!). Gone back to old code. Thanks to ffffff for bringing this to my attention (THPS2). Moral: never blindly accept code changes from other GPU coders ;) eh, Pete? ;)
- Fixed DOOM rendering engine Added a fix for DOOM rendering engine, where they render everything as textured lines with triangles. Yes, a direct port of the ray-cast engine! They rely on the pixel coverage rules of the PSX GPU, which gets broken when you scale the resolution with hardware accelerators. Added a work-around (related to Soul Edge fix).
- Attempted Dependency workaround The code I added for ToolTips placed a version requirement on the Common Controls DLL. If you used Windows95 or WindowsNT4, and was using the default Internet Explorer, your Common Controls DLL would have been too old, and my plugin would not have loaded (it wouldn't have listed in the emulator either). I've tried to break that dependency, so that all versions of the Common Controls DLL can be used, but it may well just crash on these older systems. Installing Internet Explorer v3 or above would resolve the issue.
* ver. 1.0.36 - 20.05.2002 - Long time coming :) This version has been a long, long, long time coming :) As such, a fair amount has changed that I've lost track of ... but I'll try and detail the major points as usual :)
- Tool Tip-tastic! I've gone over the GUI slightly, and removed the clunky Explain Setting button. Now the GUI is alive with context-sensitive Tool Tips, so just hover the mouse to get useful(?) information.
- ScreenSaver fix I've added code to automatically stop any screen saver for kicking in while using my plugin. This works for all OS's in the Windows9x family since Windows98 (inc. WindowsME), and all OS's in the WindowsNT family since Windows2000 (inc. WindowsXP). Previous OS's just don't support the necessary function :(
- VRAM Upload fix Corrected a small bug with uploading VRAM data partially via I/O and the remainder via DMA, while being close to the edge of VRAM.
- DMAChain fixes Added some small changes to the handling of DMAChains. Thanks to Pete for the information: some implemented, some ignored ;)
- COPY INFO improved Made some minor improvements to the output, plus it will now attempt to identify the version of ePSXe you are using, if you are using that emulator.
- Extreme Coord Fix option This option removes primitives that have extreme coordinates, and resolves problems in games such as Time Crisis, where objects blur across the screen and obscure the scene behind. Thanks to calb and Pete for this one :)
- Force Screen Clear option This option forces a full screen clear every frame. This may slow down most games, and cause certain games that rely on persistent images onscreen, but should resolve issues with games that leave "garbage" on the screen around the edges. This is a temporary solution to the problem, as really the "garbage" should be automatically "collected" and "disposed" of ;)
- True Screen Sizing option Experimental Screen Sizing is dead, long live True Screen Sizing!! ;) This is an attempt to correctly mimic a TV screen on the 3dfx card, so that the PSX display is in the correct ratio/position. Use the new TV Config panel to adjust the values of the "virtual" TV set.
- Vertex transformation re-done All vertex manipulation is now done using matrices. This rationalises and simplifies the operations that are taking place, and was brought on by the True Screen Sizing option. Hopefully this is no slower than the old code.
- Fix for Grandia Grandia's menus should display correctly if you set OSD to Extra or above. Thanks to Darkcloud for bringing the problem to my attention.
- Fix for Final Fantasy 7 I've worked around a slowdown issue to do with the hand pointer in some scenes. As long as the FF7 TextureWindow Fix is enabled, this workaround will kick in. Thanks to fivefeet8 for bringing this to my attention. (Note: Tifa's Limit Break slots don't rotate correctly).
- Fix for Persona 2 I've corrected a bug in the way I dealt with VRAM uploads within a DMA Chain. This should work correctly now for all games that do this. Thanks to Badaro & Darkcloud for help debugging the problem.
- Fix for Final Fantasy Tactics FFT should work better with my plugin now (world map, menus, etc.), but you will need OSD set to atleast Extra, and FBA set to Read/Write. A big thanks to Badaro for helping repair my FFT CD, and to EfrainMan for help debugging the problem.
- Fix for XMen Mutant Academy 2 I've added a new option (Odd/Even Update) which allows XMen Mutant Academy 2 to work with my plugin. Thanks to zeezee for help debugging this problem.
- Miscellaneous fixes Lots of fixes/changes have not been documented, due to memory leaks ;)
- Bugs I am sure there are some new ones :)
* ver. 1.0.35 - 01.08.2001 - Display bug fixed!!! Even though I was unable to purchase the game (it's not released in the UK and none of the import shops I tried had it), I've managed to fix the display bug in Xenogears :) This was causing occasional flickering screens. It's a generic fix, so may well help other games with similar display problems. I would like to thank Cloud Strife for providing me with the debug information I needed, and to Mark Fraser for trying to help me before.
- OnScreen Display Enhancement Shesh :) I got one report of the display appearing when it shouldn't, so I've but more checking around the code, to make sure the counter isn't a value it shouldn't be. Also, I've removed the Save Slot message, since the Save Slot picture support makes this obsolete.
* ver. 1.0.34 - 15.07.2001 - Save State Picture Support I've added full support for Save State pictures. You can see them, and it saves them too :)
- Tweaked Off-Screen Drawing Settings I've tweaked the detection of recursive texturing when OSD is set to EXTRA. It should have less false detections (slowdowns if set to EXTRA, massive pauses if set to EXTRA+FBR), and hopefully it doesn't miss what is trying to detect!
- OnScreen Display Enhancement If the OnScreen display is set to OFF, you get a 2 second message appear on-screen whenever you change the Save State slot or change the controller type. Unfortunately, there was a yet another bug in the last release, which meant after a while these messages would appear and then stay on screen. Whoops. REALLY fixed now :) .... I hope :)
- Improved Copy Info Output Includes detection of Windows XP, and DirectX 8.1. Also fixed the bug that meant the output was cropped if ePSXe CDRom was set to "First Cdrom".
- Tidier Glide shutdown I now clear both the front and rear Glide display buffers before I close down the Glide window, which helps keep the screen tidy if you are running dual monitors, like I do :) The 3dfx drivers are very poor at being used as a secondary display, and don't re-initialise the desktop after a Glide session :(
- Miscellaneous Fixes Not too many this release. Don't expect any compatibility improvements with games that were having trouble with the last release (i.e. Xenogears, etc.) :(
* ver. 1.0.33 - 06.05.2001 - FrameBuffer Access Improvements I've been working on fully emulating framebuffer access within my plugin. As such, "FrameBuffer Writes" is no more, and has been replaced by "FrameBuffer Access". This has 4 [obvious?] settings: Disabled, Write, Read, and Read/Write. This controls whether the plugin will emulate reads and/or writes directly to the 3dfx framebuffer. Writes are generally fast, reads are generally slow. Setting this to "Write" is the same as setting the old option to "Enabled". The new part is the "Read" option, and fans of the swirly effects in PSX games will love this setting ;) Related to Off-Screen Drawing.
- Off-Screen Drawing Improvements I've added two more options to off-screen drawing, to help support recursive texturing. The options have been renamed to: Disabled, Basic, Extra, and Full. Basic is the same as the old Enabled setting. Full offers full VRAM primitives, and Extra offers intelligent switching between the two settings. Read the setting description for more details. (eg. Extra allows the MG:S Codec screen to display the frequency, etc. correctly) Related to FrameBuffer Access. For FF9, try - FBA=WRITE, OSD=Extra+FBR. This is the best compromise, with swirly effect on entering a battle, and full recursive textured spell effects, but it does slow down battle FPS when those effects are active. And remember: you can always switch off the new functionality if you don't like it! Setting FBA=WRITE and OSD=BASIC will make it operate like the old plugins.
- 16Bit Texture ChromaKey bug fixed While working on the FrameBuffer Access improvements, I came across a bug with 16Bit textures and chromakey, where the STP bit was being incorrectly ignored. This is now fixed.
- OnScreen Display Enhancement If the OnScreen display is set to OFF, you get a 2 second message appear on-screen whenever you change the Save State slot or change the controller type. Unfortunately, there was a bug in the last release, which meant after a while these messages would appear and then stay on screen. Whoops. Fixed now :)
- New Explain Setting Button Another addition to the special "Super Lewpy Clunky GUI(tm)" suite! It's not quite tool-tips, but hey ;) Press the button and up comes the exact same text from this readme ... because too many people don't seem to RTFM ;)
- Improved Copy Info Output Now has a section for the ePSXe configuration. Might prove handy.
- Miscellaneous Fixes There's no doubt a few fixes which I've lost track of :)
* ver. 1.0.32 - 20.04.2001 - Removed 3 Options, Added 2 More I have removed the following redundant settings from the menus :-
BF - Adjust Sprites BF - Adjust Quads Texture Correction
The other two nominated candidates for removal (Banshee Code & MDEC Format), received a few emails in support, so I have left them in. One new option is called Alpha Testing. Read the description in the readme for more info, but it was mainly introduced to help with Silent Hill, which uses alpha blending and MASK bit a lot. If you play the game with this version of the plugin, you will see the difference :) It will also have an effect on other games when bilinear filtering is enabled, so see whether you prefer it :) The other new option is called Experimental Screen Sizing, which fixes the CODEC screen in Metal Gear: Solid. But it may mess up other games, so use with caution at the moment :)
- Crashing Bug nailed There was a nasty bug that caused the plugin to crash, which was mainly evident in FF9 (an evil little game for exposing GPU Bugs!!). This has been tracked down and squashed (with extreme prejudice!).
- MDECs + 3D Action improved Mainly for FF8, scenes with MDEC backgrounds and 3D rendering in the foreground should now display correctly.
- Fixed FF8 Intro I've fixed up the intro of FF8, so the horizontal lines are gone.
- Fix to Hybrid FrameCap Option I noticed that the HYBRID setting could cause MDECs to play at the wrong speed, so I've tweaked it to prevent this from happening (hopefully!).
- BOF4 Spell Effects These were not working properly, due to off-screen line drawing not working in my plugin. I've implemented this now, so the spell effects appear in their full glory :)
- OnScreen Display Enhancement If the OnScreen display is set to OFF, you get a 2 second message appear on-screen whenever you change the Save State slot or change the controller type.
- Front/Back Buffer Copying I investigated this, to help fix some flickering during transitions in FF8, but the speed penalty was prohibitive to its effectiveness :( I will carry on doing investigations, to see if something can be done that works reasonably well.
- Dino Crisis 2 I managed to get hold of this game, so investigated the transparent people bug. The game makes use of MASK bits and also texturing from a previous framebuffer. Although I don't support the latter operation, I have managed to tweak my plugin so an acceptable compromise is reached: the characters are non-transparent, but the motion blur effect is not done.
- Fixed STP bit in 16bit Textures I have been inverting the STP bit for _ages_ in 16bit textures, as a result of investigating alpha-blending problems. The problem I was investigating appears to have been fixed when I fixed the problems in the blending mode caching a few versions ago, so I've now corrected 16bit textures.
- Improved MASK bit emulation I've implemented the changes that Pete made recently. Silent Hill looks a lot better, but remember to play with the Alpha Testing option for that game. Thanks Pete :)
- Fixed Hall Of Mirrors bug in Tony Hawks Pro Skater 2 I noticed a Hall Of Mirrors clearing bug in THPS2, which I've resolved.
- Fixed Splash-Screens in Spiderman Some splash-screens, and the comic covers section, were not working, so I've fixed them up.
- Fixed Crash when Configuring for non-3dfx owners Well, they can't use my plugin anyway, but it doesn't crash now :)
- Fixed Bugs in 8Bit and 16Bit Texture Windows Found a couple of bugs in the creation of 8bit and 16bit texture windows, so that may fix up some graphics problems.
- Implemented true PSX PolyLines I've finally implemented proper polyline support in to my plugin, which should help out those games which use it.
- Miscellaneous Fixes There's no doubt a few fixes which I've lost track of :)
And I only stopped there because Feature Creep(tm) was setting in :)
* ver. 1.0.31 - 25.02.2001 - "Stop! .... Carry On" Crash Bug :) Woke up this morning to reports of a new crash bug in my last release :( If you stopped emulation (pressing ESC) and then continued, the plugin would crash :( I've traced the problem to an un-initialised pointer (doh!), that was introduced in v1.29 in the Copy Info functions. Should all be fixed now. Thanks to Elvis HUDRY, deryiu3, and clue1ess. P.s. I guess that title is lost on anyone who doesn't listen to Radio 1 in the afternoons :)
- VRAM Upload in DMAChain As Kazzuya and Pete have implemented, so have I: my plugin now supports the uploading of VRAM data in a DMA Chain. This should fix a couple of games. Again, thanks to Taka-san for his in-depth analysis of the problem, and his solution!
* ver. 1.0.30 - 24.02.2001 - Dynamic Texture Window Caching I've re-written parts of the code for handling the dynamic texture cache, and approached some things slightly differently. This has increased the robustness of the code, and therefore increased its stability ... a good thing :)
- Texture Bug There has been a long-standing texture bug, where the top most row of texels in a texture page has not been uploaded to VRAM correctly. I've finally looked into this, and corrected the fault.
* ver. 1.0.29 - 11.02.2001 - Dynamic Texture Window Caching There were some nasty bugs in the initialisation of the Dynamic Cache memory pool in the previous version, which could cause corrupt graphics and random crashes :( It's all fixed now [hopefully!!] :)
- FrameCap Method Option You can now control the method by which my plugin tries to limit the speed of a game. Read the Menu System descriptions in the readme file for full info.
- More Chrono Cross fixes 1) Save game screen is no longer corrupt and flickering 2) Status screen works and doesn't freeze the game (thanks Pete!) 3) Last frame of MDEC doesn't jitter :) subtle, but hey :)
- Texture Window improvements General improvements to the creation of texture window textures. Should help reduce corrupt graphics.
- Palette Bug fixed There was a palette bug in previous versions which would cause primitives to be 100% transparent. This has been fixed. This problem was most noticeable in certain XMen vs. Street Fighter scenes.
- Text File free with each Screen-Shot! Bargain of the century, roll-up roll-up :) The configuration of the plugin is written to a .txt file, with the same name as the screen-shot. Err, just like Pete's plugins do :) Useful for posting with screen-shots on web-sites, so people can see exactly what hardware it was taken on, and also how the plugin was configured. It's the same style as the COPY INFO button.
- DMAChain fix A small fix to the DMAChain handling routine, that should make it handle corrupt DMA Chains better. Thanks for the tip, Pete ;)
- Miscellaneous Fixes There are the usual bunch of miscellaneous fixes, which I loose track of :)
* ver. 1.0.28 - 27.01.2001 - Dynamic Texture Window Caching Finally, I've got my dynamic texture caching code stable enough to use :) This will make a _huge_ difference in the speed of some games, that make heavy use of texture windows (Ridge Racer Type 4 is a good example). This is enabled by default, switch it off only if it degrades the performance of other games, or if it causes fatal problems to the plugin :)
- Off-Screen Drawing Improvements There were a couple of Off-Screen Drawing problems in the previous release. The first one caused a performance slow-down in certain games (the underwater scene in Chrono Cross intro, and certain arenas in Soul Blade, are two examples). This has been fixed. The second problem was more serious, as it could cause the plugin to crash. This problem most noticeably occurred during certain spell effects in FF IX. Again, this has been fixed. Note: for FF IX, it is now safe to have Off-Screen Drawing and FrameBuffer Writes enabled in this version of the plugin. Make sure you also enable Experimental Flipping for Final Fantasy games, otherwise the battle menu will be incomplete.
- DMAChain Fix Option I have allowed user control of the DMA Chain fix, so that you can decide what level of checking is done. Read the configuration option notes to understand the options.
- Programmable Keys The keys used by the plugin in-game are now configurable. There is a new panel with the key functions listed, and a pull-down list of keys. Some of the key names are cryptic, as they are taken straight from programming descriptions, and I haven't had the time to tidy them up. I will go through and do this soon. Also, choosing some keys (i.e. Escape) is pretty stupid :) Note: you need to re-select the Enable HotKey setting, if you want it. It is now on the new Key Configuration panel.
- Rendering State Fix There was a slight glitch with the internal Rendering State caching, which caused a one primitive lag on certain state changes. This would cause certain primitives at certain points in certain games (i.e. could be anywhere in any game!!) to be rendered incorrectly. This was evident in a certain forest/swamp location in FF IX, where sprites were lit incorrectly, causing flickering dark patches on the screen.
- Miscellaneous Fixes There are the usual bunch of miscellaneous fixes, which I loose track of :)
- Configuration Hint You can change the configuration of my plugin without having to restart the emulator :) To do this, configure my plugin as normal. As long as you press the OK button on my configuration panel, the settings will be stored. When you return to the emulator configuration panel, click CANCEL. This will make the emulator think that nothing has changed, and it will be happy to allow you to start a game. In fact, the settings have been changed :)
* ver. 1.0.27 - 14.01.2001 - Final Fantasy IX Improvements I've made some improvements to Final Fantasy IX, namely - fixed spell special effects (although they may not look 100% right) - fixed highlight of character name in battle menu (very subtle! ;) The first fix is generic, so may improve other games too, because off-screen drawing has been vastly extended to include all primitives, with all blending modes, by using Pete's software routines.
- Chrono Cross Improvements Having finally gotten hold of Chrono Cross, I've fixed some problems exhibited by this game, namely - fixed underwater wave effect and character dialogue boxes (8bit/16bit texture windows were badly bugged ... badly un-implemented actually!!) - fixed black screen display at character name screen (some internal GPU status reporting was incorrect) Both of these fixes are generic, so may improve other games too. The texture window fix helps BOF4.
- Final Fantasy VII Fix I have implemented Pete's Final Fantasy VII Texture Window fix :) Enable this for Final Fantasy VII only. It messes up Final Fantasy IX.
- Bilinear Filtering Option I have implemented an option which disables bilinear filtering of sprites. This should improve games that use sprites for backgrounds (Final Fantasy, BOF, Chrono Cross, etc.) and for character text. It's a personal choice as to which you prefer. Note: due to this change, your current selection for bilinear filtering will be reversed (off for on, on for off), so reset your selection.
- Texture Window Option I have implemented an option which fakes texture windows. They are not drawn textured, but are drawn without the texture entirely (just the lighting is used to control the colour). This helps out games which run too slowly with texture windows enabled, but look awful with texture windows disabled (such as RRT4). This doesn't look brilliant, but at least it draws a solid object (useful for the road in RRT4!!!). This is a temporary measure until texture window support is implemented with no slowdown.
- New HotKeys Function You can now toggle between the 4 stored configurations at the touch of a button, on-the-fly (i.e. in game!!!). All you need to do is tick the Enable HotKeys box in the configuration panel, and then keys 1-4 on the keyboard will switch between configurations, even switching resolutions on-the-fly.
- New Set Default Button There is now a Set Default button on the configuration panel, which will set the current configuration to the default settings. Useful if you have been playing with settings and can't remember what the defaults are.
- Improved Windows Compatibility If you press ALT-TAB, or use another method to take the focus away from the emulator, the Glide screen will be closed and the desktop will become visible. Just ALT-TAB back to the emulator display window, and the Glide window will be re-opened. Note: emulation is NOT paused when you do this!!!
- Improved Copy Info The Copy Info button now includes even more information about the Operating System you are using, the amount of RAM you have, and the details of your processor (make/model/speed/number). Please use this function when making bug reports, as it really helps to see your system configuration.
- Improved Documentation I've gone through the options detailed in the readme document, and added descriptions and recommended settings against each option. Useful for both the newbie and the inquisitive ;)
* ver. 1.0.26 - 28.12.2000 - Final Fantasy IX Crash Fix I received Final Fantasy IX USA through the post today, and debugged what was going wrong. Hopefully, that is all sorted now, so you can re-enable FrameBuffer Writes in this game. Any more problems with this game, let me know. Again, this is a generic fix, so it may well help other games that were crashing before this version.
- FrontBuffer Rendering Fix There is now a new configuration called FrontBuffer Rendering Fix. This is designed primarily for the NFS games, where the menus were not visible up until now, but may work for other games. It is by no means perfect, and will cause display flickering as the menus are drawn, but something is better than nothing :)
- Screen-Shot Fix There was a bug when taking screen-shots on Voodoo4/5 cards, which I've now fixed.
- Improved Copy Info The Copy Info button now includes more information about the Operating System you are using, the amount of RAM you have, and the details of your processor (make/model/speed/number). Please use this function when making bug reports, as it really helps to see your system configuration.
* ver. 1.0.25 - 26.12.2000 - Merry Post-Christmas!!! I hope you all had a great Christmas, and best wishes for the New Year :)
- Blending Stage Caching There was a bug in the way blending stages were cached within the plugin. This was first brought to my attention by Pete Bernert, as there was a problem in one of the menu screens in BOF4. With Pete's help, I managed to remotely debug what was going wrong (DCC'ing back and forth between UK and Germany :). What I discovered was a bug which could be affecting all games, it just had surfaced in BOF4. All fixed now, so if something seemed strange before, it may well be fixed now ... fingers crossed :) Also fixes transparent characters in SmackDown 2, but enable Banshee Code in that game to avoid crashes in the cutscenes, although the graphics may get corrupted in those scenes: better than crashing though :) (thanks to BromanX for testing that for me).
- Impact! This plugin is not designed to work with Impact! I get enough emails about this that I thought I would add this statement.
* ver. 1.0.24 - 25.12.2000 - Merry Christmas - Again!!! Quick note to you all, to wish you all a Merry Christmas and a Happy New Year!
- FrameBuffer Write fix - Again!!! I introduced a simple, but nasty bug on last release, meaning that a lot of FrameBuffer Writes would not work :( Resolved it :)
* ver. 1.0.23 - 24.12.2000 - Merry Christmas!!! Quick note to you all, to wish you all a Merry Christmas and a Happy New Year!
- Support for Custom Refresh Rates I've added support for selecting the refresh rate of the display. It doesn't seem to work with my Voodoo5, but maybe it will work on other cards. PLEASE BE CAREFUL WITH THE REFRESH RATE YOU SELECT!!!
- Custom Frame-Cap Option I've changed the Unlimited FrameCap option to a custom one. Select the frame rate limit you want to set in the configuration panel, and select the CUSTOM option under FrameRate Limit configuration menu item. You can set the old Unlimited option by simply setting this to 200Hz :)
- FrameBuffer Write fix There was a bug in the frame-buffer write code, that meant some splash- screens were not shown in the last release. I've fixed this, so all should be back to normal. There is still a bug that seems to crash Final Fantasy IX, so please disable FrameBuffer Writes in that game for now :(
- Display of Analogue/Digital Pad mode I forgot to mention this last release, but if you set the OnScreen Display option to at least FPS, then you will see notification of what mode the Pad is in. An "A" will be shown for Analogue mode, and an "M" will be shown for "Mouse" mode. Nothing therefore means normal Digital mode :)
- Removed VSA-100 Draw Method I've disabled this, as it is not usable with current Voodoo4/5 drivers, and when it is usable, I need to spend some time tweaking it. It shouldn't really of been enabled in the last couple of releases :) We'll have to wait and see if the bug in the drivers is ever fixed :(
- Improved CopyInfo function This function now supports ePSXe better :)
* ver. 1.0.22 - 19.12.2000 - Startup crashing bug squashed!! :) The plugin no longer crashes with fast processors :) A bug in the MMX detection code I was using, so I re-wrote it using C++ structured exception-handling. Much cleaner, and above all it doesn't crash :)
- MASK Bit Optional Emulation of the MASK bit is now optional. This should return some speed, as the ZBuffer is no longer being used. It will also return any display resolutions that were lost with the previous release. This option can only be selected BEFORE running a game: it can't be changed "in-game".
- Integration of Pete's Improvements Hats off to Pete Bernert :) Integrated in the new co-ordinate wrapping code that Pete devised, and also the revised frame-limiting code. The frame-rate should always hover around the full-rate speed. I strongly advise setting the Frame-Rate option to AUTO to get the full benefits of the new code.
- Experimental Flipping code For all you Final Fantasy lovers out there ;) This option should fix missing display items (mainly battle menus) in the Final Fantasy series of games. Just in case it causes problems with other games, it's an option so you can just turn it off :)
* ver. 1.0.21 - 29.10.2000 - Voodoo4/5 Support The plugin will detect Voodoo4/5 cards, and automatically move in to 32-bit colour mode for better display quality. 24-bit MDECs are also automatically uploaded as 32-bit textures, again for better quality.
- MASK Bit Support The PSX MASK Bit is emulated, using the ZBuffer.
- Multiple Configurations The plugin now has 4 sets of configurations you can select in the configuration screen. On-The-Fly switching is not supported yet.
* ver. 1.0.19 - 11.07.2000 - Re-Compiled Re-Release Re-compiled with less optimised compiler options to prevent crashes when starting with a very fast processor (Coppermine, etc.)
* ver. 1.20.98 - 28.12.1999 - Miscellaneous The usual bunch of miscellaneous things that I forget about over the time between releases :) Plus a change in plugin version numbering which I soon changed back to the old method ;)
* ver. 1.0.19 - 22.5.1999 - More Linking Fun I've removed all MFC code from my plugin, so it has reduced in size and in complexity. It's quite hard to get past the MFC stuff in Visual C help system, and get to the core stuff: I wonder if Micro$oft did that deliberately? ;)
- Improved Bilinear Filtering I've had a good bash at improving Bilinear Filtering on my plugin. It's not perfect, but it is much better than before. There are a couple of new options for texture correction due to bilinear artefacts, so have a play with them (on a per-game basis). I now run my plugin with Bilinear Filtering on by default ;) NOTE: it will only look good if you set ALPHA BLENDING MODE to ADVANCED. If you can't select that option, then you won't be able to enjoy fully enhanced bilinear filtering :(
- Fixed a problem with FrameLimiter FrameLimiter only worked if you had the FPS counter on-screen. It now works all the time (thanks Pete! :)
- Primitive Fixes Put in a couple of "special case" scenarios for some primitives, to fix some funnies in some games.
- ReWrote Frame Uploading code Rewrote the code so that frames are uploaded in an overlapped fashion, so that bilinear filtering does not exhibit anomalies (ie. sharp transition lines across the screen). This is slower, but it looks nicer.
- Miscellaneous The usual bunch of miscellaneous things that I forget about over the time between releases :)
* ver. 1.0.18 - 25.4.1999 - Dynamic Linking All non-system dependencies are statically linked or dynamically loaded. This should reduce all dependency problems, and allow more meaningful error messages.
- Improved Texture Alignment Having gotten hold of some decent 2D games, I've managed to resolve some texture problems (which I call Texture Alignment). There is an option in the configuration menu to disable this, if you experience any problems with it. Note: it's not perfect yet, but it's better :)
- Improved Display Handling Code Yet again[!!] I've reviewed the display handling code. Hopefully now I've reduced the number of games that display nothing, or have violently flashing screens. If any games were bad before, please try them again and let me know if there is still problems. There is still a few problems with some screen sizing/positioning, which I am looking into.
- "Copy Info" Button on Configuration Screen A new button, that magically copies some useful information to the clipboard. Press the button, and then paste the clipboard into a mail message, giving lots of useful background information about your setup.
- Miscellaneous The usual bunch of miscellaneous things that I forget about over the time between releases :)
* ver. 1.0.17 - 7.3.1999 - Fixed Texture Window bug There was a nasty bug that could result in a crash in games that use 8-bit texture windows. Fixed.
- Fixed Alpha Blend bug I've revised the way one Alpha Blend mode was handled, so things should look better where it is used. It's still not 100% perfect, and I doubt it ever will be, due to single-pass limitations. Maybe I will offer the option of handling just this Alpha Blend mode as a two-pass operation in the future. Note: it was always 100% correct in MultiPass mode.
- Banshee Code option Since 3dfx have released updated Banshee drivers, this option allows Banshee-owner's to disable the Banshee-specific code in my driver. DO NOT disable this setting unless you are running Banshee drivers released this year: on older drivers, my plugin will crash as soon as you try to use it [known bug in the Banshee Glideł driver]. Good luck Banshee owners :)
* ver. 1.0.16 - 20.2.1999 - ***Prelimenary*** Texture Window support This build contains Texture Window support, but the Texture Windows are not properly cached yet. This means it will slow down games that heavily use Texture Windows, but it does substantially improve the visual quality of the game. Proper caching of the Texture Windows will be implemented in a future build.
- Revised Configuration Panel All configuration items can be configured via the Configuration Panel (ie. outside of a game).
- Change to InGame Configuration Menu Control As soon as you configure an item, the next press of the Menu Cycle key will exit the menu system.
- Control of System Type You can control the system type (NTSC/PAL), so that the frame rate limiters can be set to 60/30fps or 50/25fps, except ....
- New Limit Mode: Automatic This is an "experimental" mode, whereby the speed of the game is limited automatically by the plugin. It ignores all other user settings, and tries to work it all out for itself!
- Control of VSync VSync can be controlled from the configuration menu.
- Revised Display Setting Rewrote some of the display setting code, which hopefully reduces some of the flashing screens that affect some games.
- Revised FrameBuffer Writing Sequencing Changed the way framebuffer writes were handled, when they occur after a series of other framebuffer writes with an inbetween drawn primitive (you could call this "The Sandwich Effect" or something :). Previous to this, the last framebuffer write would cause the inbetween drawn primitives to be overwritten. This fixes some hidden menus, and such like, in some games.
- Banshee Again, I've fiddled around with the work-around code I have to use to get Banshee working. Hopefully, this stops any nasty side-effects like lockups. All problems should magically disappear when 3dfx release fixed drivers ....
- BlockFill Optimisation This was a last-minute optimisation I just thought of. It should speed up some games where there is blockfill to clear the screen and you are running in a high resolution. Hopefully this hasn't introduced any side-effects.
- Bugfixes A few miscellaneous bugfixes, that hopefully help out.
* ver. 1.0.15 Beta 12 - 3.1.1999 - New Configuration System The number of keys that I needed was getting too many, so I've re-designed the way runtime configuration is handled. Now, it basically takes only two keys to do all the configuration settings :) Settings are also stored/retrieved from the registry. That has interesting possibilities. NOTE: you will need to reselect your resolution setting, as I've re-arranged the storage of data in the registry.
*** BANSHEE OWNERS *** My plugin will try to use the Advanced Alpha Blending mode with your cards (because the Banshee Glide3 driver says it can support it). At this time, the support in the Banshee Glide3 driver is actualy broken (3dfx should fix this on the next release of driver). Until then, please change to one of the other settings to avoid screen problems (this should be stored in the registry, so it will happen only on initial startup).
- Frame Skip I've added a FrameSkip facility, accessable from the menu system. Only one frame in two is skipped, if things are running slow. The affect of this will vary from game to game, since some games depend more heavily on the GPU plugin than others.
- FrameRate Limiter There is now an option for a 200fps limit (basically no limit), if you want to run your games a stupid speeds.
- Changed Off-Screen Rendering a little I finished off my own basic poly drawer, as it was much quicker. Speeds up Crash Bandicoot 3, where Crash's shadow is continuously drawn offscreen, then textured on-screen.
- Optimised texture memory invalidation Something "Under The Hood". It's a "Good Thing" :)
- Re-wrote texture manipulation routines Some more hand-optimised assembler in action. Speeds things up.
- Re-wrote palette manipulation routines Even more hand-optimised assembler :) Speeds things up, and is more "Cache Friendly" (no more huge lookup tables).
- Implemented a WireFrame Mode For research, mainly ... but left in for a laugh :)
- Check the Menu System section for more details on the available configuration settings
* ver. 1.0.15 Beta 11 - 27.12.1998 - Optimised off-screen clearing This should speed games up a bit. Amount will vary from game to game.
- Fixed connected lines bug Connected lines was messed up in Beta 10, doing all kinds of weird stuff (didn't crash though).
- Implemented more basic off-screen rendering support, using Duddie's GPU code in the end :) In Beta 9/10, I added non-textured triangles. Now I've added Sprites. Although none are blended correctly yet, it's better to have something than nothing :) This means the skeletal menu in MediEvil is now visible: a personal crusade to get that going! :) None of the offscreen drawing (except clearing and copying) is optimised yet. This shouldn't affect too many things, since off-screen drawing is not all that common.
- Fixed potential lockups selecting BiLinear filtering, or doing a screenshot These were "interrupts" coming in and executing out-of-synch with the rest of the Glide rendering. Thay are now synched to the main flow of execution.
- New Banshee code Hopefully, this should improve matters for the Banshee owners. With the Banshee drivers being as painful as they have been, there is always a chance things actually get worse :( Since I don't have a Banshee, I can't check ... so please give feedback over this.
* ver. 1.0.15 Beta 10 - 25.12.1998 - Christmas Release Part II - Beta9 had a nasty bug which crept in at the last minute, which caused lots of crashes
- This is a bug-fix for Beta9
- Fix for DevKit problems
- Extra "work-around" for Banshee
- Implemented basic off-screen rendering support, using Duddie's GPU code in the end :)
- Fixed a crashing bug that prevented Crash Bandicoot 3 from running.
* ver. 1.0.15 Beta 9 - 24.12.1998 - Christmas Release - Happy Christmas everyone :)
- lots of things, and no time to write this :(
- See if you can notice the differences
* ver. 1.0.15 Beta 8 - 14.12.1998 - fixed a bug due to Tekken3 "fix" Fixed a bug whereby only some of the scene was being drawn in some games, such as GT. The whole scene is now drawn properly.
- Added a Frame-Rate Limiter Games are now capped at 60fps(-ish), PAL and NTSC. You can slow it down to 30fps by using the SHIFT key.
- Added multiple Display Modes Still playing around with the colour balance!! There are now 3 options. The latest option (Option 3) is the best, but it does slow down the update rate (depending on the game). Option 1 & 2 are the two options that have been available before: one bright, one dim. Select the one you prefer, which will probably vary from game to game.
- Small palette optimisation I added a small optimisation to the palette code. Not sure if this will really be noticable.
- Compiled under Visual C v6 SP1 seemed to stabalise Visual Studio 6, so took the update step. Seems pretty cool. Dunno if it's affected the speed of the code, but it has made the plugin bigger! You will need the latest Visual C runtime libraries (MSVCRT.DLL and MFC42.DLL), which are available from the PSEmu beta page.
* ver. 1.0.15 Beta 7 - 07.12.1998 - fixed the Tekken3 hang, we hope! Implemented a "fix" for the Tekken3 problem, thanks to the guys on IRC. Best bet is to advance to the next round by using the START button to skip over the end Replay and the "victory" animation of your character. I have noticed repeatable loops if the "victory" animation ends.
- fixed display modes some more Something that I overlooked in Kaz's code. Thanks to Kaz for putting me straight! I hope this helps GT NTSC display frames properly .... we shall see.
- fixed problem with DevMode Returned initialisation code back to how it was in v1.14, unless you have a Banshee in which case a little work-around is required until the Banshee Glide3 drivers are sorted!
- altered colour balance I'm messing with the colour balance again! Display has dimmed down again: this will allow the menus in Spyro to display the selected item properly (it didn't flash in previous beta's, due to colour clamping). This may result in another toggle key, to provide a nice, bright display most of the time, but if something isn't displaying right you can switch down to the more-compatible dimmer display while needed.
* ver. 1.0.15 Beta 6 - 29.11.1998 [2 Beta's in one day :)] - fixed another crashing bug Yep, yet another one squashed! This one was in some old code, that pre-dates my work :) Anyway, this lets the demo of MediEvil play, so I'm sure it will help other games as well.
- Messed up menu graphics in GT Corrected this. Probably helps other games as well.
- Messed up dialogue text in MediEvil No-one would have seen this yet :) Corrected this. Probably helps other games as well.
- Fixed Screen Scaling At last!! My screen resolutions are the same as Kaz's. No more dead area at the bottom of the screen!! Thanks to Kaz for his latest code for this.
Known Issues - Messed up graphics Skeletal menu at the start of MediEvil demo is not displaying right. This may affect other games too.
- Incorrect MDEC display I have heard reports of MDEC playing back in white, or really slowly. I am investigating this.
* ver. 1.0.15 Beta 5 - 29.11.1998 - fixed frame buffer writes Basically re-wrote the way frame buffer writes were handled, plus fixed 24bit MDEC support (re-wrote that really!). GT MDEC now displays properly (no flashing), but it does have rubbish in the "dead" area of the screen. This should also fix some crashes, since the previous code was trying to draw some "illegal" triangles that would have caused Glide3 to lock-up [see previous entries, it's all related!!]. Just to be safe, even the screen-writes are now clipped!! :)
Known Issues - Messed up menu graphics in GT Some menu graphics messed-up (illegible), such as the manufacturer select menu. This probably affects other games too.
- Messed up graphics in the "dead" areas of the screen Normally these are CLUTs being uploaded to the screen. Once I sort out correct screen scaling, these will all magically go away. At the moment, just take this to mean that my framebuffer writing code is working properly!
* ver. 1.0.15 Beta 4 - 26.11.1998 - fixed another crashing bug Another update, another crashing bug fixed! :) Hopefully, no more added! For those that want to know, it was a problem with Tiles that weren't being clipped. Now _everything_ is being clipped, and all seems to be more stable. I am sure there are still crashing bugs, so don't be surprised if it crashes :( This clears the lock-up in Glide3: I guess it was my fault, and I caused Glide3 to get it's knickers in a twist!
Known Issues - Flashing Displays Yup, some framewrites are not working quite right
- Messed up graphics in the "dead" areas of the screen Normally these are CLUTs being uploaded to the screen. Once I sort out correct screen scaling, these will all magically go away. At the moment, just take this to mean that my framebuffer writing code is working properly!
* ver. 1.0.15 Beta 3 - 24.11.1998 - fixed some more things to do with frame write uploads This clears up a corruption/crashing problem that I located
- removed some debug code This was forcing some default values (like fps counter), plus it prevented the frame delay "feature" from working. In fact, it would make some games run way too fast. Ooops.
Known Issues - I am trying to track down a lock-up within a Glide3 call. This is totally weird, and none of the debugging tools I have is helping :( Basically, this is crashing some games and I don't have a clue why!! This coding lark isn't fun sometimes :(
* ver. 1.0.15 Beta 2 - 19.11.1998 - fixed some things with frame write uploads This should clear up some splash screens. It also now means that some stuff gets uploaded (ie. drawn) off the bottom of the screen in the "dead" area. Really, that "dead" area shouldn't be there!! It will go once I get the display setting stiff working 100% right.
- removed the display clearing hack This was a nice idea, just not fully thought out!! This is what comes of coding late into the night!! :) I'll resolve the stray drawing another way, for now it just has to stay.
* ver. 1.0.15 Beta 1 - 17.11.1998 - fixed problems with 2D clipping There were a couple of issues here. Firstly, I forgot to clip lines :( This resulted in repeatative lockups within games. FIXED. Secondly, textures were "swimming" on the edge of the screen, where polys were getting cropped. That is to say, they were swimming _more_ than normal for a PSX!! :) Problem is related to the fact that the PSX doesn't do perspective-correct texture mapping. FIXED.
- got Banshee working!!! I've worked around bugs in the current 3dfx Banshee Glide3 driver, so hopefully all you Banshee owners will be pleased! :) There are still issues, but this will be resolved once 3dfx update the Banshee Glide3 driver, and it actually supports what it says it supports!!
- MDEC support!!! Full 16bit and 24bit MDEC support!! It may be slow in some cases :( But I'll work on that :) This also means that those splash screens and backdrops that were missing should now be working!
- Re-arranged keys This was to avoid clashes with other parts of the emulator (mainly the function keys), and also to match my Show VRAM to Kaz's :)
- Altered palette stuff Reduced the complexity of my palette caching routines, which hopefully should resolve some palette bugs. It may result in slightly slower overall speed, but I'll work on that in a different way in the future.
Things ToDo
- Find more Speed!! Of course! Where I can, I will. - Better support for Bilinear filtering Maybe. There is a few things I could try. If 3dfx actually put full support for their hardware in their drivers, the black edges that appear on alot of textures may well vanish (this is a ChromaKey/Bilinear clash that occurs in 3dfx hardware).
Known Issues
- I've got a hack in place to tidy up the bottom of the screen. This may possibly result in some weirdness in games I haven't been able to test with (something like a large black square covering part of the screen). It does effect the Tekken3 menu screen near the bottom, but that is easily outweighed by the reduction in rogue flashing bits on the screen in other games!!
* ver. 1.0.14 - 01.11.1998 - implemented 2D clipping against the viewport This fixes a hack that I had to introduce, so visual quality is up a bit It also seems to help speed
- tried to balance the lighting Display is a brighter now, with better balance between textured and non-textured surfaces. It's still not perfect, so I may implement a toggle-key in a future version
- loads of behind-the-scenes stuff that you probably won't notice :)
- maybe fixed problems with Banshee? Nope, it appears not :( Damn this is painful ... believe me, I am _trying_ to get my plugin to run on the Banshee.
- PLEASE RE-RUN THE CONFIG SCREEN AND SELECT A RESOLUTION!!! Things have changed slighty, so some of the higher resolutions will not be on offer. These seemed to be bugged anyway.
Things ToDo
- MDEC support!! Full support for direct writes to the framebuffer - Find more Speed!! Of course! Where I can, I will.
* ver. 1.0.12 - 29.10.1998 - added runtime keys as follows
SHIFT - Show VRAM This is really for my benefit :) It's not perfect, as it can't handle double buffer too well
- stream-lined colour support in primitives - added better palette caching - fixed screen resolutions: Tekken3 now scales correctly - cleaned-up init/shutdown code
Known Issues
- Doesn't work on Banshee :( I am investigating this .... - Funny display Try lowering the resolution. I believe this to be a Glide3 driver bug, so it may be fixed with improved drivers. If I can find a workaround (short of disabling problem resolutions), I will incorporate it. - Crashes in some games This is on the ToDo list, once I am happy the driver is pretty solid.
Things ToDo
- MDEC support!! Full support for direct writes to the framebuffer - Find more Speed!! Of course! Where I can, I will.
* ver. 1.0.11 - 22.10.1998 - added runtime keys as follows
F6 - Enable/Disable Bilinear filtering Default: Off Looks nice some of the time, but not all of the time. Now you can choose when and where.
F7 - Enable/Disable OnScreen display Default: Off Mainly for debugging, not too useful. I can't say whether the stats are 100% accurate.
F8 - Enable/Disable texture alpha blending Default: On This setting is for the older 3dfx cards: use this to disable alpha blending if you think some textures are being made transparent when they should be visible. Unfortunately, it will make textures that should be transparent visible. Sorry, it's one or the other :( For newer 3dfx cards, this key does nothing as it would gain you nothing (except an incorrect image).
- disabled the following configuration settings
Enable bilinear filtering Disable VSync Enable OnScreen display
They are now obsolete: use the runtime keys instead.
* ver. 1.0.10 - 21.10.1998 - first public release
Problem : Emulator crashes when trying to exit (Voodooł/Banshee users)
Solution :
Make sure you are not running the emulator at exactly the same resolution as your desktop. Also, setting your desktop to 32-bit colour may help.
This is a bug in the Voodooł/Banshee drivers.
Problem : "Mutual exclusion prohibits this" error message
Solution :
If it happens every time you run PSEmu,
then it is probably down to one of the following:-
1) You are running a background task/application that is hogging
the Voodoo card. Taskbar applications used to configure Direct3D
options can do this. Try stopping any that you have running in
turn until you find the one (if there is one) that is
interfering.
2) You have an OpenGL plugin in the plugins
directory, and you have installed the 3dfx OpenGL driver.
Unfortunately, due to the way PSEmu handles plugins (I guess),
the OpenGL plugin with 3dfx OpenGL
driver hogs the 3dfx card, so my plugin can't use it.
Try removing the 3dfx OpenGL driver, and only
put it back when you _really_ want to use it. If you are using
the OpenGL plugin more than my Glideł plugin,
then I need to do some serious work :(
"Mutual exclusion prohibits this" error is a new
"feature" of Glideł, designed to prevent program
contention. Previous versions of Glide did not handle
multi-tasking situations, which 3dfx have tried to address.
If this problem happens occasionally, it could be that a program you have previously run since last rebooting your PC did not close down cleanly, and has left Glide in a bad state. The only way around this is to reboot.
Problem : "VXD Error: expected v1.4 found v1.x" error message
Solution :
The file in question is FXMEMMAP.VXD.
What the error message means is this: Glide is loading, and
looking for the file it needs, FXMEMMAP.VXD. The
file it is finding is the wrong version: it is too old.
Therefore, Glide can't run :(
This can happen for a number of reasons, but the main reason is
due to stray copies of FXMEMMAP.VXD on the
computer, that are not getting updated when the main drivers are
getting updated.
A common place for an extra copy of FXMEMMAP.VXD
is in the WINDOWS directory (it should only be
in the WINDOWS\SYSTEM directory, and the WINDOWS
directory is checked first in the path). If you have a copy of FXMEMMAP.VXD
in the WINDOWS directory, rename it to FXMEMMAP.OLD
(you can search your entire hard-disks, and rename all copies
that are not in the WINDOWS\SYSTEM directory).
Then make sure the latest version of FXMEMMAP.VXD
is in the WINDOWS\SYSTEM directory (there should
already be a copy of the file there, so make sure it is
up-to-date ... the latest version is in the 3dfx driver archive
that you installed).
Once you are happy your problems are resolved, you may deleted
any FXMEMMAP.OLD files, as they are unnecessary
and are just taking up your hard disk space :)
Question : Does your plugin run with Glide Wrappers?
Answer :
I DO NOT support "Glide Wrappers", and I ignore all enquiries about them. Please DO NOT contact me about them. Just use another plugin that works with your card.