Pete's D3D driver for PSX emus ------------------------------ Mmm... what to say? If my OpenGL driver doesn't work well with your gfx card, try this D3D port :) Enjoy! ---------------------------------------------------------------------------- Requirements: DirectX 7 installed. Without DX7 you will prolly not even see my plugin in the emu plugin selection window. Note: replace 'DirectX 7' with 'DirectX 6' in case you are using my D3DSX6 plugin :) The plugin needs a card with hardware 3d acceleration. The D3D software mode is not supported. The plugin can use secondary devices (add-on cards like the Voodoo2... mmm... but prolly the DX6 plugin will be working better with V2 cards :P). ---------------------------------------------------------------------------- Configuration: As with my OpenGL plugin, take yourself some time to test different settings, you can use my PSSwitch configuration tool to store game configurations for PSEmu Pro. Here is the list of the available settings and their baddies and gooddies... 0) Rendering device -------------------- If you have more than one gfx card installed (I have for example a GeForce and Voodoo3 PCI), you can select the card you want to use with the "Select device" button. Some add-on cards (V2) will only work with 'Fullscreen flipping' enabled, but be aware, that this option can cause flickering with some games. 1) Resolution & Colors ----------------------- Well, that section should be self-explaining. Please note: some cards (like the 3dfx V2/V3) can't do a 32 bit color depth, or rendering in a window (V2). Selecting an option which your card can't handle will cause error message boxes or missing textures or crashes... yup, sorry 2) Texture quality ------------------- Basically there are 16 bit textures and 32 bit textures. * 'don't care': it's the first matching texture type your card can offer... most time it will be the same as "4-4-4-4" textures. * 'R4 G4 B4 A4': Every color info has 4 bits, so texture colors are not as fine (the real psx can use 5 color bits), but most cards should be working with that texture type. * 'R5 G5 B5 A1': texture colors are fine in that mode. With OpenGL that mode is showing black rects with 'Alpha Multipass' enabled, but I can use color keying with d3d for transparency, so it's a good choice for many cards. * 'R8 G8 B8 A8': Best colors your PC can offer, at the cost of speed and vram. If game speed is OK with that mode on your PC, use it! Not possible with 3dfx V2/V3 cards, though. Hint: 16 bit textures don't need as much vram as 32 bit textures, so if your card has just 16 MB (or less), stick to 4-4-4-4 or 5-5-5-1 3) Caching type ---------------- There are 4 different caching types. Well, the pal texture caching is just a hack in this version, you can try it, but I don't think it will work right all the time. Better try one of the following modes: Standard: will be the slowest mode, lotta vram uploading will occur. Heavy: better caching, but also more resources needed. There will be some games which will be fastest with heavy caching, but still I prefer the next mode: Dynamic: tries to do the best caching, limited only by your cards vram. Dynamic caching is my most advanced caching type, it will reduce ugly texture gaps, improve texture filtering and speed up games using lotta texture palettes. The only drawback: it will cost more cpu time, so it's possible that a game will be faster with heavy caching. Well, the choice is yours :) 4) Bilinear filtering ---------------------- Give it a try... the real PSX doesn't support BF, so there will be some glitches if you turn BF on. Several games will look nicer... there are two filtering modes... the Extended mode is slightly slower, but even better with most games (be sure to use 'Dynamic caching' with extended filtering). If you want you can also try both filtering modes without sprite filtering. Some game text will be much better readable, but some games will look weird if everything but sprites are smoothed. 5) Framerate limit/Frame skipping ---------------------------------- You can activate FPS limitation if your game is running to fast. You can use "Auto detect FPS limit", if you are not sure, what limit would be best to use or just type in a FPS rate. PAL games use 50 FPS, non-PAL games 60 FPS. And if things are getting too slow... you can try Frame skipping. Tip: you can also try to turn on both... You can also enable the in-game menu right from the game start (showing the fps and let you change some gpu options while playing). Of course you still can use the "DEL" key for showing/hiding the menu. 6) Offscreen Drawing ---------------------- There are now (1.48 or newer) 5 different OD modes... OD is used to detect drawings which are outside the front/backbuffer, doing such stuff in software (or by tweaking polygon coords). 0 (none): fastest mode, glitches in splash screens/game gfx can happen 1 (minimum): takes care of most splash screens 2 (standard): does an easy check, if software drawing is needed 3 (enhanced): does a more complicated check for soft drawing 4 (extended): does the "enhanced" check, and adds some additional buffer swap (can cause flickering with some games) 7) Framebuffer textures ---------------------- To get whirling screen effects and motion blurring, there are two ways to go: a) set framebuffer textures to emulated vram, enable full vram primitives and offscreen drawing or b) disable full vram primitives and set framebuffer textures to 'gfx card buffer). (a) will work on every system, but it will be very slow. (b) will prolly work only with certain gfx cards with a good speed (GeForce :) Well, ppl with slower cpus and/or gfx cards can use "black framebuffer textures", this option will be very fast, but, of course, the special effect will not appear! 8) Advanced blending --------------------- To get perfect lighting, you should enable this mode. Some cards (3dfx again) can't do this in hardware (you will get no textures if you try), activate the "software" mode instead. The software mode can cause some wrong double-blended areas, though, and it is slower. If you don't mind the better lighting, you can also turn AB off, of course. Some games are really looking better using AB (Spyro!), try it yourself... 9) Alpha MultiPass ------------------- Draws opaque texture pixels the way it should be. Of course it could be a bit slower. But not much :) 10) Mask bit ------------ A really rarely used ability by the real PSX is the usage of mask bits to avoid drawing into some parts of the screen. Well, to increase compatibility you can turn the mask bit emulation on, but as far as I know only Silent Hill is really needing it. If you activate it, 3D glasses should also work, because my mask bit functions are using the ZBuffer. Well, but if your game doesn't need the mask detection (and most games do not!), turn it off to get more available texture vram. 11) Color dithering ------------------- If you are using just 16Bit colors (or if you have to use it because you have an older 3DFX card), you can enhance shaded objects by turning on color dithering. If you are using a 32 bit color resolution there is no need for dithering. 12) Unfiltered framebuffer updates ---------------------------------- MDECs and such will be bilinear filtered be default. The 'unfiltered' mode is faster, though (and some ppl think, it is even looking better ;) 13) Full vram primitives ------------------------ If you activate this option the internal soft gpu will paint every polygon, etc. into the gpu vram. That's helpful if you want to see most of the fancy psx effects, but also _very_ slow. Usually turn it off. Oh, yes, and you have to activate 'standard' or 'extended' OD to get it to work. 14) Special game fixes ------------------------ Some gfx glitches are caused by the main emu core or because I've not found out (yet) how certain things are activated on a real psx gpu. But you can minimize bad effects with certain games by using the internal gpu patches.... push the "..." button to see (and activate) the list of available fixes. Keys ---- save screenshot to 'Snap' sub directory + switch between window/fullscreen mode + dunno... but it's slow ;) show/hide the gpu version (if no FPS is displayed) or an help text (if the FPS menu is displayed) show/hide FPS and option menu How it works: Hit and the Framerate und the menu will appear. It looks like: 'FPS XXXX.X FL< FS OD AM FI DI TW AB FB GF DI :) * A' What does it all mean? Here's the legend: FPS: frames per second, higher means better :) FL : Frame rate limiter FS : Frame skipping OD : Offscreen drawing (none, minimum, standard, enhanced, extended) AM : Alpha multipass FI : Filtering (none, standard, extended, standard without sprites, extended w/o sprites) FV : Full vram primitives AB : Advanced blending (off, software, hardware) FB : Frontbuffer texture (emulated vram, black, gfx card buffer) GF : Special game fixes DI : Dithering :) : Smiley: mmm... not used with d3d yet, I think * : Shining sun... "Hardware" Advanced blending is activated and supported nicely with your card A : Analog pad mode activated (otherwise the emu is using a digital pad mode) M : PSX Mouse mode activated (otherwise the emu is using a digital pad mode) < : Arrow for selecting Below every option there is a small box, if the box is filled the option is active, empty box means inactive. There is a small arrow you can move with the or keys to an option you want to toggle. Just hit the / key to switch the selected option on or off. Changes will be done immediatly, you can see how the framerate is affected if an option is on or off. If you have found a setting that suits your game just hide the menu by pressing again. I don't store changed options permanently, you have to do that still in the main configuration dialog. ---------------------------------------------------------------------------- Some tips: The best mode for my V3: 800x600 16 bit 5-5-5-1 textures All texture options: on Dynamic caching Offscreen drawing: extended Advanced blending: off Color dithering: on Alpha multipass: on Mask bit detection: on The best mode for my GeForce: 800x600 32 bit 8-8-8-8 textures All texture options: on Dynamic caching Offscreen drawing: extended Advanced blending: Hardware Color dithering: off Alpha multipass: on Mask bit detection: on Mail me your results :) ---------------------------------------------------------------------------- For version infos read the "version.txt" file. Have fun! Pete Bernert EMail: BlackDove@addcom.de Web: http://home.t-online.de/home/PeteBernert ---------------------------------------------------------------------------- Disclaimer/Licence: 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 will be used for. ----------------------------------------------------------------------------