--------------------------------------------------------------------------
                           XPac: A Pac-Man emulator

            Copyright (C) 1999 Mike Sweetser.  All Rights Reserved.
--------------------------------------------------------------------------


------------------------
XPac Contact information
------------------------

Author      : Mike Sweetser (mikesweetser@uswest.net)
Distribution: http://unistork.simplenet.com/poochie/xpac123.zip
This application uses source code from Mini-Pac.
Mini-Pac is copyright (c) 1999 by Mike Balfour (mab22@po.cwru.edu).



----------
What's New
----------
Beta 1.23 - "1-2-3"
* Decided to go with codenames for the different betas, which are
related to Sean Waltman's different nicknames throughout the years.
I also retroactively assigned nicknames.
* Cleaned up the Pac-Man Plus code, moving it to its own source file
and using external definitions.  This makes the code look better and
makes it a LOT easier to debug.
* Finally added DIP switch support.
* After a lot of hard work and all that, added joystick support.  It's
not 100% but will be improved.

Beta 1.2 - "The Kid":
* Thanks to MAME, the Pac-Man Plus ROMs now work.  The decryption 
worked perfectly, and it turns out the game ROMs were encrypted, not
the graphics.
* Changed the GUI around a bit, grouping the different games together
in frames (Pac-Man, Ms. Pac-Man, Pac-Man clones and other games).
* Tried to add Ponpoko support but the graphics are seriously messed
up.  Will look into MAME for info on code, similar to Pac-Man Plus.

Beta 1.1 - "Lightning":
* Changed the radio buttons to push buttons because I liked the look 
better.
* Tried to add support for Pac-Man Plus, but apparently the ROMs are
decoded differently than Pac-Man's are, so nothing for the moment.
* Added support for the modified Pac-Man ROMs.
* Added support for Hangly.
* Added support for Puckman.
* Added support for Ms. Pac Attack.
* Added a nice sound effect to the GUI. :)
* Added menus.  File->Exit will quit the program (novel idea) and 
Help->About XPac will bring up an about box whenever I get around to
it.
* Tried to add support for The Globe, but it doesn't work for some
reason.  Will look into it.
* Added support for the Japanese Pac-Man ROMs, following the rewrite of 
the graphics loader.  This also helps other games run, such as...
* Added support for Piranha.
* Added support for Crush Roller.  10th game! :)
* Tried to add support for Ponpoko, but the graphics and DIP switches
are different and need to be reprogrammed in the emulator.
* Added an about box.  Try rightclicking in it. :)

Beta 1.0:
* Supports Namco and Midway Pac-Man and Ms. Pac-Man.

-----------------------------
Current Working Pac-Man Games
-----------------------------
Pac-Man (Namco) - Beta 1.0
Pac-Man (Midway) - Beta 1.0
Ms. Pac-Man - Beta 1.0
Pac-Man (modified) - Beta 1.1
Hangly - Beta 1.1
Puckman - Beta 1.1
Ms. Pac Attack - Beta 1.1
Pac-Man (Japanese) - Beta 1.1
Piranha - Beta 1.1
Crush Roller - Beta 1.1
Pac-Man Plus - Beta 1.2

-----------------
Non-Working Games
-----------------
The Globe (no idea)

------------------
XPac Documentation
------------------

XPac is an extended version of Mike Balfour's Mini-Pac Pac-Man emulator.  The
goal is to provide source code that demonstrates how to accomplish emulation
using DirectX, DirectSound, and C++.  The code that is present should be
sufficient to demonstrate *how* to accomplish a full emulation, with some
added features, such as DIP switch support, joystick support, and selection
of games.

Note:  XPac is an emulator; consequently, it will not function without
the appropriate ROMs.  DO NOT EMAIL ME ABOUT THE ROMS.  

XPac expects the ROMs to be uncompressed and in the same directory as
the XPac executable.  ZIPPED ROMS WILL NOT WORK.

How to use XPac:

Keys
----
ESC                     Exit
LEFT ARROW		Move Left
RIGHT ARROW		Move Right
UP ARROW		Move Up
DOWN ARROW		Move Down
'1'                     Start a one-player game
'2'                     Start a two-player game
'3'                     Insert a coin
'R'                     Reset the emulation
'U'                     Unthrottle (only while held down)

-------------
Building XPac
-------------

Hopefully you won't find it very difficult to build XPac, but I'm
anticipating one or two problems, so I'll try to answer them here.

1)  Make sure you have the DirectX SDK installed.  Without it, you will
have a difficult time building the executable.

2)  I've only compiled this with MS Visual C++.  I don't know what happens
if you try to build it with other compilers.

3)  Make sure that the DirectX library and include directories appear
*before* any MS Visual C++ directories in Tools/Options/Directories.  The
newer Visual C++ installations include out-of-date versions of the DirectX
libraries and include files, so you need to be certain that you're linking
in exactly what you expect.

4)  Be certain to include "ddraw.lib", "dsound.lib", and "dxguid.lib" in
your project.  You'll get some link errors if you don't.

5)  Don't forget to include MZ80.obj as well.

Everything else should compile and build without any problems, I hope.


-------
Credits
-------

XPac is copyright (c) 1999 Mike Sweetser.  All rights reserved.

Multi-Z80 CPU emulator by Neil Bradley (neil@synthcom.com)
Distribution: ftp://ftp.synthcom.com/pub/emulators/cpu/makez80.zip (latest)

---------------
Acknowledgments
---------------
This emulator is dedicated to the memory of Owen Hart, whom died on
May 23rd, 1999 at the WWF Over The Edge pay-per-view.  Rest in peace,
Owen.  

Thanks to the WWF's X-Pac for the name of this emu. :)

Thanks to Mike Balfour for some of the code in this emu from his Mini-Pac
emulator, and to Neil Bradley for the MZ80 emulator.

Thanks to the entire MAME team.
