Pete's DirectSound Audio driver for freeware psx emus
-----------------------------------------------------------------------------------------
 
My Midas spu plugin had reached a dead end, there were
too many limitations with the Midas library, so I've decided
to make a new spu plugin which uses DirectSound (Windows-
version) and the OSS interface (Linux-version).

In the first (not released) version of the new spu plugin I just replaced
the Midas library with my own mixing/streaming functions, 
the second version (only released to a few emu authors) was a complete
rewrite using a new thread execution method, but I didn't like it very much,
it was too complicated to get the right timing with that.

Well, so I've started again from the scratch... new mixer, new adsr func,
new reverb stuff, some (badly done) frequency modulation and
noise emulation... and it seems to work :)

There are still some issues, of course, but many bugs from the
Midas plugin are fixed now.

Very important: the DSound plugin relies heavily on the new
spu interfaces (supported by all newer freeware psx emus),
the old PSEmu Pro interface is supported, but many effects
will be missing... better use my Midas plugin with PSEmu Pro. 

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

Requirements:

DirectSound, and a sound card which can do 44100 stereo 
16 Bit sample playing.

And of course a fast enuff pc to run the psx games at the
"right" speed (50 or 60 fps). That's very important for
XA audio, otherwise there will be cracks and/or noise.
Use the "fps limitation" option of the gpu plugin to
play your games at the right speed!

Installation:
Just copy the file spuPeteDSound.dll into your \plugin(s) directory, 
(in FPSE \plugin\psemu), that's all.

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

Configuration:

There ain't much options in the DSound plugin... only
a rough volume control, an option to turn off XA music and
some misc special options.

I've tried to combine a relative large sound buffer with
a technique to get short reaction times... the result should
be no stuttering when the emu gets very busy (for example
while heavily accessing the cdrom drive), but also no delays
when starting to play a sound sample. Well, at least it
works fine on my system :)

Some advice: My spu is supporting the spu irq function,
so you should turn off the "SPU irq hack" in ePSXe with
most games. If you are using another psx emu, you should
also look if there is a special "spu irq" option. 


1) Volume
-----------------

You can choose between "Low", "Medium", "Loud" or "Loudest"
depending on your speakers.
Of couse you can also adjust the volume with the Windows
sound mixer ;P

2.) XA Audio
-------------------

If a game needs to play XA for compatibility, but if it is sounding 
horrible, you can turn it off... yup. It's _not_ the same option as 
the one in the main emulator: you can just disable the XA audio 
output! If XA is enabled in the main emu, XA audio data will still 
be decoded... you just can't  hear it anymore.

As mentioned, the XA decoding is done by the main emu, so if 
there are bugs (unwanted noise even if the game speed is right),
send a mail to the main emu team, not to my mail address ;)

If you are playing XA at the wrong speed (not using the
fps limitation of the gpu plugin), you will get some noise,
because XA will get cut off. Or you enable the "XA pitch" option,
that way all XA sounds will get played, but at an higher pitch
(I call that the "Mickey Mouse" effect :)

3.) Misc
-------------------

- "Slow Timer Updates": a compatibility mode which is needed
  on some systems (mostly w2k ones), to fix stuttering effects.
  Enable it only if you are having such problems, that mode
  will need more cpu power.

- "SPU IRQ queue": an option for playing Metal Gear Solid...
  you also have to disable any main emu SPU IRQ hacks.
  For more details check out the version.txt file (version 1.11)

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

Conclusion:

If you want something to be done right, better do it yourself :)

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.

