summaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
author Manuel Abadia <manuelab@mamedev.org>2008-05-17 08:49:24 +0000
committer Manuel Abadia <manuelab@mamedev.org>2008-05-17 08:49:24 +0000
commit976ceb91137873c94b5854f21c261bfaf7160435 (patch)
tree525236f335c939d2af7e2e84c2d6fce7cbfea3fb
parent5c0e90290171748831c0dcd41f04e0abe242e9e2 (diff)
Added wheel support by Mirko Mattioli. However what he calls shift gear is the brake. AFAIK world rally in non joystick version has:
- a wheel - 2 analog pedals (acceleration, brake) - gear shift Currently if you use the analog controls, it takes a lot of time to accelerate and there is no gear shift mapped. I have sent an email to Mirko so probably he will figure out the missing bits of non joystick mode.
-rw-r--r--src/mame/drivers/wrally.c18
1 files changed, 16 insertions, 2 deletions
diff --git a/src/mame/drivers/wrally.c b/src/mame/drivers/wrally.c
index 7f5ad260ee0..7e1d7e94395 100644
--- a/src/mame/drivers/wrally.c
+++ b/src/mame/drivers/wrally.c
@@ -80,6 +80,17 @@ Palette related:
* 2xMS6264A-20NC (8KB SRAM) @ C8 & C9 (palette RAM (xxxxBBBBRRRRGGGG))
* 2x74HCT273 (octal D-Type flip-flop with clear) @ B8 & B9 (connected to RGB output)
+Controls related: (added by Mirko Mattioli)
+=================
+On the real PCB the optical wheel encoder is connected to 74LS169 ICs (@A16 and @A17)
+via a flip-flop IC mounted in the steering wheel assembly. As a result, the output
+of the flip-flop generates a signal that contains the information about the steering
+direction; this signal is routed to pin #1 (U/D) at ICs A16 and A17 (high when turn
+left and low when turn right). The second signal of the optical encoder goes directly
+to pin #2 (CLK) at ICs A16 and A17 and it is a clock for the 74LS169 ICs; this clock
+frequency is proportional to the movements of the steering wheel: fast movements
+produces a high clock frequency, slow movements a low freq.
+
***************************************************************************/
#include "driver.h"
@@ -206,8 +217,11 @@ PORT_START /* INPUTS, COINSW & STARTSW */
PORT_BIT( 0x4000, IP_ACTIVE_LOW, IPT_START1 )
PORT_BIT( 0x8000, IP_ACTIVE_LOW, IPT_START2 )
-PORT_START /* Wheel control? */
- PORT_BIT( 0xffff, IP_ACTIVE_LOW, IPT_UNKNOWN ) /* not implemented */
+PORT_START /* Wheel control */
+ PORT_BIT( 0xff00, 0x0000, IPT_DIAL ) PORT_SENSITIVITY(70) PORT_KEYDELTA(10) PORT_CODE_DEC(KEYCODE_RIGHT) PORT_CODE_INC(KEYCODE_LEFT)
+ PORT_BIT( 0x00ff, IP_ACTIVE_LOW, IPT_UNKNOWN )
+ PORT_BIT( 0x0010, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(1)
+ PORT_BIT( 0x0010, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(1)
PORT_START /* INPUTS, TEST & SERVICE */
PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_SERVICE1 )