| Main > Main Forum |
| improving 4-way play |
| (1/1) |
| elsie:
Let me start by saying that I am very new to mame, and currently only have an analog joystick, so what I am saying may be old news and/or may not apply to those with 8 way joysticks. For those who may not be familiar, Mame maps an analog joystick (maybe all joysticks) into a 9x9 map. A typical 8 way map would look like 777888999 777888999 777888999 444555666 444555666 444555666 111222333 111222333 111222333 Where 7 is the direction up-left, 8 is up, 9 is up-right, etc. and 5 is neutral. This map is basically fine for 8 way. However, for 4-way games the default "sticky" map is s8888888s 4s88888s6 44s888s66 444555666 444555666 444555666 44s222s66 4s22222s4 s2222222s With the sticky map, when the joystick hits an "s" direction, it retains the previous direction in which it was pointed. For example, if the joystick was pointed all the way up at an "8" in the top row, and then moved all the way to the upper right corner to the "s", the sticky default would be for you to continue moving up. This, IMHO, is the primary difficulty in playing 4 way with a non 4-way joystick. In my personal experience, if I am playing a 4 way game, and have the joystck in the "8" direction, and then move it to the upper-right corner, my intention is actually to change direction to "6", not continue moving towards "8" That being said, I have made a minor mod to the input.c routine in mame to allow for an additional "direction" in the joystick_map. This direction is "c" for change, and it behaves exactly the opposite of "s". Currently, "c" can only go in the 4 corners of the map, and causes a change of direction when the joystick hits that position as described below: Corner the "c" is in Previous Direction New Direction Upper Left Up Left Upper Left Left Up Upper Right Up Right Upper Right Right Up Lower Left Down Left Lower Left Left Down Lower Right Down Right Lower Right Right Down If "c" is found anywhere other than the 4 corners, it will behave as a sticky "s" direction. To use this, you need to download the mame development environment (really easy) here http://mamedev.org/tools/ and the source code here http://mamedev.org/release.html then replace src\emu\input.c with the one attached (note, you must rename input.txt to input.c) and follow these compile directions from mamedev.org/tools Open up a command-line window. First, ensure that the mingw/bin directory is part of your search path. Do that by typing: set path=%PATH%;mingw\bin Next, switch to the directory where the MAME sources live: cd mame-source-path And then execute mingw32-make to build it: mingw32-make Wait a while, and you will have a fully built MAME executable. To use the change directions, run "mame -joystick -joystick_map c8888888c.4488.4448.4445" Please let me know if it is helpful and/or you have any problems with it |
| Navigation |
| Message Index |