Pete's Soft driver for PSX emus
-------------------------------
 
Well, in early '99 I started to code my own PSX GPU, because
I wanted to play Breath of Fire 3 on my PC, and at this time 
all of the PSEmu Pro plugins could not handle the game without 
showing severe glitches.

So I leeched Duddie's public SoftGPU sources and tried to
understand how the psx gpu is working, digging my way through 
Duddie's code. After a while I decided to switch to the OpenGL 
API, hoping I would get speed and graphical improvements... 
and after several versions it worked really nice :)

Of course you have to do some trade-offs when you try to 
emulate the psx gpu with an hardware accellerated API like
OpenGL or D3D... there are some things a psx game coder can
do with the real gpu which are _not_ nice ;(

Well, in the past I told users reporting strange displays or
missing menus to try the Kazz SoftGPU. As a software gpu it
has certain advantages to get the more weird gpu stuff right.
Sadly enough, Kazz never 'finished' the plugin (mmm... 
sometimes I wonder if an emu could ever be finished :) missing
certain psx features like polylines or texture tiles (texture
windows).

So, after releasing version 1.33 of my gpu plugins, I decided
to create my most compatible psx gpu plugin ever. I took my d3d
sources and mixed them with the soft gpu funcs I did over a year
ago... and now, after some weeks, I can proudly present Pete's
SoftGPU :)

If you are encountering gpu bugs using my ogl/d3d plugins with a
game, try this soft one... it doesn't look as nice as the hw
accelerated ports, and of course it's not as fast, but it
should be showing any splash screen, any menu and any funny
gfx effect... if it doesn't, you can blame the main emu core :)

----------------------------------------------------------------------------

Requirements:

Any 2 MB video card which can handle DirectDraw with 16 bit color
depth should work fine... only 16 and 32 bit color depths are 
supported, if you are using a 24 bit desktop, switch to a fullscreen
mode because in Window mode you will get funny colors.

Note: some (older) gfx cards can't handle the 16 bit mode properly
(screwed display), you have to use the 32 bit mode if that's happening.

While the gfx card doesn't make much a difference with the SoftGPU,
your cpu power will be most important... I have a P3 550, and most
games are running at full speed... some others need the frame skipping
option to run fast, though.

Mmm... and if you want to use an add-on gfx card like the Voodoo 2, you will
need at least DirectX 6 installed (dunno, if a V2 card will work with the
gpu anyway, because it doesn't use buffer flipping).

----------------------------------------------------------------------------

Configuration:

The SoftGPU has not much options... because it doesn't need them :)

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.

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
crashes or something like that... yup, sorry

If you want speed (who doesn't): the 16 bit color modes are faster 
than the 32 bit ones... and with this SoftGpu you will _not_ get
a better image quality by choosing 32 Bit modes, so I really suggest
to use 16 bit colors.

Enabling "unstreched display" will show the unstreched psx display
centered inside the window.


2) 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 you just type in a FPS rate that suits you. 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.


3) 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
----
<F8>   save psx vram as a bitmap to the 'Snap' sub directory - 
       if you want to mail me a snapshot, please ask before
       doing it...

<ALT>+<ENTER> switch between window/fullscreen mode

<INSERT> show/hide the gpu version (if no FPS is displayed) or an help text
(if the FPS menu is displayed)

<DEL>  show/hide FPS and option menu

  How it works: Hit <DEL> and the Framerate und the menu will appear. It
  looks like: 'FPS XXXX.X   FL< FS  GF A'  

  What does it all mean? Here's the legend:

  FPS: frames per second, higher means better :)
  FL : Frame rate limiter
  FS : Frame skipping
  GF : Game fixes
  A/M: Analog pad mode/PSX Mouse mode... that's an information from the emu core, telling you if the pad emulation is doing Mouse mode ('M'), Analog mode ('A') or Digital mode (no 'A' and no 'M')

  If a '*' character is beneath an option, the option is active, otherwise
  inactive. 
  There is a '<' character you can move with the <PAGE UP> or <PAGE DOWN> keys
  toward an option you want to toggle. 
  Just hit the <END>/<HOME> 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 <DEL> again.
  I don't store changed options permanently, you have to do that still in the
  main configuration dialog.


----------------------------------------------------------------------------

Some tips:

- use a 16 bit desktop color depth if you want to play in Window mode
  or use a 16 bit fullscreen mode to get higher speed
- activating the frame skipping option may be causing glitches...
  turn it off before sending me mails.
- on nVidia cards you will notice blurred (or 'smoothed') screens.
  Well, some people enjoy that, others do not. You can turn off the
  auto-smoothing by disabling hardware accelerated DirectDraw. Go
  to the DirectX applet in your Windows Control Panel, start it and
  select the DirectDraw tab. Here you can turn acceleration off...
  the GPU will become slightly slower, though. And don't forget
  to re-activate the DD option, else you will have troubles to
  start DirectX based PC games.


As always: mail me your results :) But NO bitmaps before asking me 
first...

----------------------------------------------------------------------------

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.

----------------------------------------------------------------------------
 

