   MAMEjoy: MAME with GrIP Support And Also Other Controller Enahncements
 --------------------------------------------------------------------------

What exactly does this add these days?
For GrIP (Gravis Xterminator, GamepadPro, Stinger):
 - Analog support should work (i.e., the analog pad on the Xterminator
   should work smoothly)
 - Fixes annoying (but harmless) crashes upon exiting that occur on a few 
   systems.
 - Produces a "grip.out" file that shows the state of your joysticks and 
   is useful for debugging.
 - Includes a grip.gll file, in case you don't have one around.
 - Pentium-optimized, and stronger optimizations in general.

Plus, in this version:
 - Ability to turn auto-centering on and off from the Analog Control menu,
   thanks to Andy and his OptiMame.
 - The option to choose which analog joystick axis corresponds to which 
   analog axis in the game. Thus, you can swap the analog X and Y axes,
   or use the flippers and throttle on the Xterminator (or an inferior 
   controller) as true analog controls. To use this, select the menu 
   option "Analog Axes" and use left and right to select the axis. Only
   available analog axes will show up. "default" chooses the first analog
   stick. (These settings aren't saved...)
 - Debug output is created for all joysticks, in "joy.out".
 - If an invalid joystick name is entered, the user is asked for a valid
   one, with a menu (like with sound).
 - Unsigned axes (such as throttles, commonly) are fixed in MAME.
 - A held-down button will not mess up the joystick settings process.
 - Some more small Allegro fixes, such as in the axis names.
 - The mouse buttons can be toggled to be either distinct buttons or
   to duplicate Joystick 1's buttons. This is an option in the Analog Axis
   menu. That should make things easier for people who want the mouse to
   work with their default assignments.
 - The mouse axes can be set from the Analog Axis menu to map to any
   player and axis. This helps in two particular situations: It allows you
   to rotate the mouse and swap the X and Y axes, and it lets people build
   2-players controls that physically connect to the mouse X and Y axes.
 - Allows you to save all of the analog settings, at least globally.
   They are then automatically reloaded on startup.
 - (*) Support for a second mouse is enabled. Simply plug the mouse in (*after*
   Windows has booted up, so it doesn't grab the secodn mouse too) and load the
   second mouse driver. There are versions for both serial and ps/2 ports. This
   support was provided by Andy in Opti-MAME. (You may want to look at that, too,
   if you're interested in this). The mouse drivers are in the "mouse"
   subdirectory.
 - (*) A hackish workaround for the sample reporting problem. Should work with
   all the frontends and still be able to verify samples with things like 
   ClearMame.
 - (*) Compiled with Allegro WIP 3.9.28.
 - (*) Fixed a silly problem witht he M92 names.
 
 (* means newer)
 
Feedback from people with real GrIP multiport boxes or Stingers would still
be great. In addition, any differences between this and the standard MAME 
are nice to know about. I'd really love to hear from people using the analog 
enhancements.

The official MAME readmes are included; you should look at them if you never
have. In any case, this is NOT the official MAME, and please do not bug the
official MAME team about issues with it. In accordance with the license,
the sources should be available wherever the binaries are.

GrIP devices include the Gravis GamepadPro, Xterminator, and Stinger. The
library GRIP.GLL is needed in either the MAME directory or somewhere in the
path. It is included in the standard Gravis drivers, but one version is 
included here as well. Start MAME by using the "-joy grip" option. For
some games, "-joy grip4" might be better; it restricts the digital pad to
tighter four-directional motion. (This is a notorious problem with both
the Xterminator and the GamepadPro in some games).

All controls on the devices should be supported. The names should also be
accurately fetched from the GrIP driver. I have only one GrIP controller
myself, but it should work with several at once.

I would, of course, appreciate any feedback on this. My e-mail address
is rjr@mit.edu. (I was previously not including it, but two things are
different now. First, since support is included in the standard MAME, anyone
using this is actually testing and such. Second, I received a very nice 
e-mail from someone.) In any feedback (well, email, at least), it would be 
nice to include the grip.out debug file that is generated.


Hope this works for some people. Good luck.


(Building: Make the modification described in the mamegripdiff.txt file. Compile
the modified Allegro library. You are now set to compile MAME. The binary here was
compiled with gcc 2.95.1 using pentium optimization and a bunch of optimization
flags. Note that you do NOT need to do this just to play MAME.)


 - Rob
 November 14, 1999
 