Eight Ball Deluxe Version 2.0 additional notes
----------------------------------------------


What's New?
------------

There are several important differences between the way the original Eight
Ball Deluxe worked, and this new Version 2.0.  These are:

   o   SVGA Support
   o   Use of EMS rather than XMS as in the original version.


Norton Anti-Virus
-----------------

Avoid any TSR's that are not absolutely necessary.  For example, some versions
of the Norton Anti-Virus memory resident program are incompatible with
Eight Ball Deluxe 2.0 and prevent it from running.


Speeding up CD performance
--------------------------

With DOS 6.2, MicroSoft began including a version of Smartdrive capable of
CD-ROM's, thus greatly accelerating data reads.

If you are using DOS 6.2 or higher, include C:\DOS\SMARTDRV.EXE in your
autoexec.bat file.  This will allow you to move from the Cafe to the
Playfield and back much quicker.

Make sure you place it on a line below the line that includes 'MSCDEX'.

For more information, please refer to your MS-DOS manual.


SVGA Support
-------------

First of all, what is SVGA?

The 'S' in SVGA stands for Super.  Super as in more, better, and higher.
That is to say as in high resolutions, better color support,
and more headaches.  While there are no real standards for SuperVGA, there
are several modes that are present on most SVGA cards most of the
time (see the note below for an explanation).  These modes include 
640X480, 800X600 and 1024X768. 
Unfortunately, that is where the similarities end.  Almost every card has
its own way of accessing these SuperVGA modes, and until recently it was
almost impossible to support them all.  Then came VESA.

   Note:  VGA cards have their own memory onboard which is used for storing
   images while they are displayed on the screen.  The card must have enough
   RAM to support the video mode you are trying to display, hence you could
   not use 1024 X 768 X 256 Color mode (which requires 786,432 Bytes of Video
   RAM) on a VGA board with only .5 Meg (or 512,000 Bytes) of Video Ram.

Alright then, what is VESA?

VESA is really the Video Electronics Standards Association.  The VESA
commitee is in the business of creating standards.  You may have heard talk
about the VESA Local Bus found on many newer machines, or of VESA VGA cards.
Well, this simply means that the card or motherboard in question supports
one of the VESA defined standards.

In our case we are interested in the VESA SVGA standard which finally allows
programmers to worry about writing games, rather than worry about supporting
every manufacturers video card independantly.  In essence the VESA standard
makes it possible to write one program that will run on any SVGA card as
long as there is an appropriate VESA driver available.

Where do I get a VESA driver?

There are two somewhat different answers to this question, and they depend
on the manufacturer of your video card.  Newer cards often have VESA support
built right into them so you do not have to do anything special to make
VESA support available.  Other manufacturers choose to support VESA through
a TSR (Terminate and Stay Resident program, typically envoked from 
AUTOEXEC.BAT) or through a Device Driver (envoked from your CONFIG.SYS)

If you do not know whether you have VESA support available, you can simply
run Eight Ball Deluxe, and switch to the settings screen by clicking on the
backbox of the pinball machine (refer to manual).  One of the new options
you will find there is the resolution option.  If you can get to resolutions
other than 320 X 240 (the default, and also the resolution used in V1.0) by
clicking on the arrow buttons beside the resolution then you have VESA
already running and don't need to do anything other than enjoy your game.
You can also skip past the rest of this section.

If, however, you do not see any other options, you must make the VESA
driver active before the new SVGA modes will become available to you.  Most
manufacturers include a VESA driver on the disk that is shipped with the
video card (often the same disk that also contained the Windows driver for 
your video card, although that varies from manufacturere to manufacturer).
Unfortunately, different manufacturers have different names for their
drivers, so you should refer to your documentation, but typically the VESA
driver is named something like VESA, VESADRV, VVESA.

If you can not locate the driver for your particular card, we have also 
included on disk 1 of V2.0 an excellent public domain program called
UNIVESA written by David Kendall.  This program supports many different
video cards, and will attempt to act as a VESA driver for any card you
may have, frequently with great success.  If that still does not help, you
will have to contact your manufacturer or retailer for help because
without an appropriate VESA driver there is unfortunately nothing anyone, 
including our Tech Support department, can do.

Once you have located your VESA driver,   you must make it available to
the game.  The easiest way to do this is to automatically envoke it during
startup.  To do this you must do one of two things:

   If your VESA Driver is a Dos Device Driver (ie. it has the suffix .SYS)

      Envoke it in your config.sys file (refer to Sample Setup below).

      ie. DEVICEHIGH = D:\PATH\DRIVER.SYS

   If you VESA driver is an Executable file (ie. .EXE or .COM)

      Envoke it in your autoexec.bat file (refer to Sample Setup below).

      ie. LH D:\PATH\DRIVER.EXE    (or .COM as appropriate)

   Where D is the drive your driver resides on;  PATH is the directory
   path to it and DRIVER is the name of the driver you found.

Is that all there is to it?

Well, not quite.  There is one other thing you need to know about VESA
drivers and that is the Version number.  Version 1.0 is the oldest, and
least capable version.  Newer versions support such things as scrolling
and virtual screens which make programming a little easier, but are
not always properly supported - especially in early versions of a new
revision.  If you experience problems in SuperVGA modes after running
your VESA driver, try using the oldvesa command line option (see 
discussion below) to remove some of the reliance on the driver and
shift it to the game.  You might experience slightly jerkier motion -
especially while scrolling - but it will work just great!


EMS Memory vs. XMS Memory
--------------------------

What are the different kinds of Memory?

There are several blocks of memory in your computer.  Some are dedicated
to particular hardware (such as Video RAM) while others are integral to
the operation of the computer (Main Memory).

One of the types of memory your computer has is memory over the 640K boundry
which defines the end of Main Memory.  The name given to this memory depends
on how your computer is configured to use it.

Typically this memory is accessed through one of two standards:

EMS (Expanded) memory is handled through EMM386.EXE and is generally
quicker to access memory through.

XMS (Extended) memory is handled through HIMEM.SYS and is handled quite
differently.  It's main disadvantage (from the perspective of Eight
Ball Deluxe) is that it slows the game down.

What kind of Memory do I need?

Eight Ball Deluxe 1.0 used XMS (Extended) memory for operation.  This
new version 2.0 uses EMS (Expanded) memory.  

How do I configure my EMS?    

To make EMS accessible you must have loaded an EMS handler.  The most common
one is EMM386.EXE which you will find distributed with both DOS and Windows.
A popular alternative is QEMM which is a seperate commercial package.  You
should refer to the documentation for your EMS handler for proper
installation, but a typical reference to it might be as follows:

   DEVICE = C:\DOS\EMM386.EXE 2000

Where C: is the name of the drive your Handler is on.  DOS can be replaced
by any path leading to it, and 2000 tells your handler to allocate 2000 K
of EMS memory, if that much is available.  This line, or something like it
must be present in your CONFIG.SYS file for Eight Ball Deluxe V2.0 to 
function.  (Refer to Example Setup below)

How much memory do I need?

To run Eight Ball Deluxe V2.0 successfully you need to have at least 520K
of Main Memory and an additional 1800K of EMS.  If you do not want
Soundblaster support, or do not have a Soundblaster or compatible card
installed you will only require 1200K of EMS.  However, please note that
you have to start the game with the "NOSB" parameter if you do have a
SoundBlaster or compatible present.  Otherwise you will see an error
message about insufficient Memory available.


New Options:
------------

oldvesa

   This commands instructs EBD V2.0 to use only V1.0 VESA driver commands
   to maximize compatability with all VESA drivers.  There are certain
   VESA drivers out there that claim to be V1.1 that are actually V1.0
   or that do not implement V1.1 features completely.
   
   If you experience erratic behavior, see confused graphics, or have
   problems scrolling, try using this command.  If it still does not
   work, you probably have a very old version of you VESA driver.  It
   might be a good idea to get an update or use a universal VESA driver.
   (see section above "Where do I get a VESA driver?")

vesascrolling

   EBD V2.0 uses hardware scrolling even in SuperVGA modes for best speed
   and performance.  Unfortunately, there are some cards that are not
   standard enough for this to cause problems.  If you experience problems
   scrolling in SVGA, you can use this option to force the program to scroll
   using the VESA driver.  This should afford greater compatability
   especially for older cards.


Important note for ATI and possibly other SoundBlaster compatible cards
-----------------------------------------------------------------------

The ATI Stereo VGA/FX video/sound card which is SoundBlaster compatible has a
special feature called Buffering. This is to improve sound quality, but
unfortunately, it requires close attention of the CPU, which has to wait for
the card to accept new sample data. This feature dramatically slows down
game play. You can check this when running the game and turning off and on
the sound using the 'A' key.
In the setup program of the card (usually \vgautil\vinstall.exe) is an option
to turn this feature off. The sound will still work but may be a bit 'clicky'.
This may also improve performance of some of your other software, which may
suffer from this problem as well.

Sometimes ATI Stereo VGA/FX card and possibly other cards as well hang up
internally. You have to reset the card using a program that should come with
your sound card. In the case of the ATI card it usually is c:\sfx\reset.exe.


Error Messages
--------------

If the installation is incomplete, or after installation one or more
files are accidentally deleted, the program will exit and a message will
appear. If the first message is a filename, you should reinstall
Eight Ball Deluxe. Simply install Eight Ball Deluxe on top of the directory
where it was installed before.

Other messages:

Not enough memory available:

   Eight Ball Deluxe needs about 580Kb of conventional memory to run.
   Some drivers or tsr's which are loaded in config.sys/autoexec.bat take 
   away too much conventional memory. If you have DOS 5 or higher and are 
   not familiar with loading devices and tsr's into upper memory, please 
   refer to your DOS manual to help you set up your system more efficiently. 
   Take a look at the system setup example at the end of this file.
   If you still can't run Eight Ball Deluxe, take out some of the device
   drivers and tsr's until you can run successfully.

Allocation failure:

   There are several memory allocation failure messages. Most of the time 
   this is a result of not having enough conventional memory available.


VGA Problems
------------

On some older VGA boards connected to a monochrome VGA monitor the screen may
appear black and stays black when starting up Eight Ball Deluxe. In that case,
try typing 'mode co80' before you run Eight Ball Deluxe again, which should
switch your VGA card into color mode.  Press 'ESC' several times to return
to DOS.  Your screen should return to normal.

Some VGA cards do this even when it's connected to a color monitor.

Some really old VGA cards won't work at all, these are not 100% VGA compatible.
Refer to your VGA manual for switches/jumpers, try every possible setting as
long as your VGA manual indicates that what you're doing is safe! Also, turn
your computer OFF and UNPLUG it BEFORE you open your computer to look for
jumpers!

VGA boards are usually normal AT boards that go into an AT slot. Because of 
this all VGA graphic changes slow down the system. This in combination with a 
slower computer such as a 386 SX/16, may sometimes result in choppy animated
graphics.  This may show up when you flip the flippers. What the program does 
in that case is cut the frame rate to a lower rate so that the actual 
gamespeed remains the same.

Make sure the memory caches and the wait states of your system are set up
properly, refer to the manual of your motherboard. This is important if you 
want your system to run at its fastest.


Special Options
---------------

You can start 8BALLDLX using extra parameters, in any order as many as 
you like:

nosb                - ignore soundblaster
nosound             - no sound at all (speaker can be re-enabled in cafe)
notitles            - omit start up screens
nomouse             - ignore mouse
pause               - pause after execution
ball1/ball2/ball3   - use ball size
-nxxx               - Near data xxx Kb
-fxxx               - Far data xxx Kb
-exxx               - EMS xxx Kb
nudgexxxx           - Configure the nodge keys (default zZ/?)
oldvesa             - use old vesa version
vesascrolling       - vesa driver for scrolling instead of hardware


System Setup Example (DOS 5 or higher)
--------------------

config.sys:

   DOS = HIGH, UMB
   Device = c:\dos\himem.sys
   Device = c:\dos\emm386.exe 2048

autoexec.bat:

   LoadHigh c:\dos\smartdrv.exe

The important part is the 'DOS = HIGH, UMB' which tells the system to load
DOS in high memory and to use Upper Memory for DeviceHigh and LoadHigh.
In this case himem.sys provides XMS and High Memory, and emm386.exe provides 
Upper Memory.


