P.E.Op.S. PS2 CDVD emulation plugin
---------------------------------------------------------------------------

The P.E.Op.S. PS2 CDVD plugin is based on the P.E.Op.S. PSX 
CDR plugin which is based on Pete's CDR ASPI/IOCTL plugin
for Windows.

---------------------------------------------------------------------------
Introduction - 19.11.2003
----------------------------------------------------------------------------

PS2 emulation is growing. 

Oh, don't get me wrong, it will still need a lot of time until 
you can really play your favourite PS2 games on the PC (ehe... 
and I remember how I got flamed away nearly two years ago by 
die-hard know-it-alls when I predicted that it will need at 
least 'a couple of years' for 'playable' PS2 emulation).

But yeah, it is growing. Lotsa nice guys are spending their 
free time coding on PCSX2, for example. One of them is Shadow...
and he never gets tired to ask me for some PS2 plugins, ehe.

Well, what to say? Last week I had some free time as well,
Shadow asked for a CDVD plugin, and so I got to work. I took 
the P.E.Op.S. cdr sources, added the PCSX2 interface, changed 
some lines of code, asked a few stupid questions (hi to 
linuzappz), tested it with a few PS2 dvds and cds, and it was
done.

Of course it's not 100% complete. There are a few (but not 
important) things missing, more cd/dvd modes have to get
investigated and added, etc. But basically I hope it will
work just fine with the current PCSX2 version. So go on,
and give it a try :)

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

Requirements:

* A cdrom/dvd drive (yeah, you need a dvd drive to play dvds...
  no emails please telling me that your cd drive doesn't work
  correctly with dvds). 
* The ASPI layer with W9x/ME
* Nothing special with W2K/WXP
* Some PS2 cds/dvds. 

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

Installation: 

just copy the file cdvdPeops.dll into your PCSX2 \plugins 
directory, that's all.

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

Configuration (similar to the P.E.Op.S. psx cdr plugin):

You HAVE TO configure the plugin before you use
it the first time. There are only a few options
available:

0) Interface
-----------------

If you are using W9x/ME, you have to use the ASPI Interface.
If you are using NT/W2K/XP, you have the free choice:
ASPI (if it's installed), or IOCTL scsi commands.

1) Drive
--------------

Well, that's self-explaining. Just select the drive
you want to use. "NONE" is NO drive... you have to
select a real one.

2.) Caching
-------------------------------------

To get more speed, there are five caching modes:
None, Read ahead, Async, Thread and Smooth.

- 'None' is the slowest mode, but it should work on 
most drives.
- 'Read ahead' will read more sectors at once, speeding up
mdecs. There is a small chance that a few drives cannot
do it, so set it to 'None', if you are having troubles.
- The 'Async mode' will do read ahead and some additional 
'intelligent' asynchronous reads... that mode is recommended
with the ASPI interface, it can squeeze some more speed 
out of your drive :)
- The 'Thread mode' will speed up the IOCTL interfaces,
since that ones can't do real async reading. So, when
you are using W2K/XP, and you have no ASPI installed,
try this mode for best speed.
- Some drives will have speed problems reading ps2 
cds/dvds, this caching mode will try to solve such issues. 


Also available: an additional data cache option, which
will store up to 4 MBytes of already read sectors. This
can speed up certain games, which are re-reading the
same range of sectors again and again.


3.) Speed limitation
-------------------------------

Some drives will work better (less noisy and smoother)
if you limit the drive speed. Not all drives are supporting
the "set speed" command I am using, though.
If your drive doesn't support it, a message will be displayed
on startup. There are some tools in the net which will
offer the same function, prolly for a wider range of drives,
so you can also try one of them, if the plugin speed limit fails.


4.) Don't wait til drive is ready
-----------------------------------------------

By default my plugin is asking the cd/dvd drive on startup,
if its state is ready (that means: a cd is inserted and the 
drive can start reading).
A few drives will not answer that question (bah, bah, bah), 
and the screen will stay black... forever :)
If you are encoutering that problem, you can turn on the 
"Don't wait..." option, but be warned: it can cause problems
(blue screens, for example) if the plugin starts reading and
there is a problem with the drive...


5.) Check drive tray state
-----------------------------------------------
PCSX2 may ask the plugin if the tray is open or closed. If
this option is turned off, the plugion always will respond
"closed". If this option is enabled, the plugin will try
to ask the drive for the tray state. Since I couldn't test
this option yet, I suggest to leave it off (and honestly,
are you able to run a multi-dvd game which needs disc
changing right now in PCSX2?) :)


6.) Try again on reading error
-----------------------------------------------
It might happen that your drive can't read a certain sector at
the first time, if your cd/dvd is scratched. Therefore I've added
that option, by activating it you can tell the plugin to try it
up to 10 times again before reporting the read error to the
main emu.
If you want, you can also activate some error message box,
if a sector is not readable (just to inform you something is
going wrong).


7.) Use PPF patches (not available yet)
---------------------------------------

- TODO :)


8.) Subchannel reading (not available yet)
------------------------------------------

- MAYBE TODO :)

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

Conclusion:

You never ever can escape your Shadow ;)

For version infos read the "version.txt" file.

And, peops, have fun!

Pete Bernert

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

P.E.Op.S. page on sourceforge: https://sourceforge.net/projects/peops/

P.E.Op.S. developer:

Pete Bernert	http://www.pbernert.com
Lewpy			http://lewpy.psxemu.com/
lu_zero			http://brsk.virtualave.net/lu_zero/
linuzappz		http://www.pcsx.net
Darko Matesic	http://mrdario.tripod.com
syo				http://www.geocities.co.jp/SiliconValley-Bay/2072/

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

Disclaimer/Licence:

This plugin is under GPL... check out the license.txt file in the /src
directory for details.

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