Read the mamegrip.txt file for full details.

This is only necessary to play witht he source code.

In the file src/msdos/config.c , towards the beginning, you need to add
two lines. Change:

	{ "gamepadpro",		JOY_TYPE_GAMEPAD_PRO },
	{ "sneslpt1",		JOY_TYPE_SNESPAD_LPT1 },

to:

	{ "gamepadpro",		JOY_TYPE_GAMEPAD_PRO },
	{ "grip",   		JOY_TYPE_GRIP },
	{ "grip4",   		JOY_TYPE_GRIP4 },
	{ "sneslpt1",		JOY_TYPE_SNESPAD_LPT1 },


If desired, you can also use the following quick hack to attempt to
use analog controls for the analog device (as in the Xterminator). I
have better code, but I'd rather not bother polishing it off if MAME
team is going to do it also anyway. The other possibility is to 
change the Allegro source to make it detect analog sticks first. I'm
mostly waiting for the official fixes at this point.

If you'd like to fix the Sidewinder problems, you have to change the
src\dos\sw.c file in Allegro. Replace the "read_sidewinder" function
with one from the last stable Allegro, 3.11.

In src\msdos\input.c, replace:

void osd_analogjoy_read(int player,int *analog_x, int *analog_y)
{
	*analog_x = *analog_y = 0;

	/* is there an analog joystick at all? */
	if (player+1 > num_joysticks || joystick == JOY_TYPE_NONE)
		return;

	*analog_x = joy[player].stick[0].axis[0].pos;
	*analog_y = joy[player].stick[0].axis[1].pos;
}

with:

void osd_analogjoy_read(int player,int *analog_x, int *analog_y)
{
	int i, stick;
	
	*analog_x = *analog_y = 0;
	
	/* is there an analog joystick at all? */
	if (player+1 > num_joysticks || joystick == JOY_TYPE_NONE)
		return;
	/***rjr*** at least try to find an analog control */
	i = 0;
	for (stick = 0; stick < joy[player].num_sticks; stick++)
	{
		if (joy[player].stick[stick].flags & JOYFLAG_ANALOG)
		{
			i = stick;
			break;
		}
	}
	*analog_x = joy[player].stick[i].axis[0].pos;
	*analog_y = joy[player].stick[i].axis[1].pos;
}



fix.txt and fix2.txt also contain other source code fixes...

