summaryrefslogtreecommitdiffstatshomepage
path: root/src/mame/drivers/ms32.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/mame/drivers/ms32.cpp')
-rw-r--r--src/mame/drivers/ms32.cpp83
1 files changed, 44 insertions, 39 deletions
diff --git a/src/mame/drivers/ms32.cpp b/src/mame/drivers/ms32.cpp
index 4813b5c4f7b..ed7a3a9e9e7 100644
--- a/src/mame/drivers/ms32.cpp
+++ b/src/mame/drivers/ms32.cpp
@@ -405,7 +405,8 @@ WRITE32_MEMBER(ms32_state::ms32_irq5_guess_w)
}
static ADDRESS_MAP_START( f1superb_map, AS_PROGRAM, 32, ms32_state )
- AM_RANGE(0xfd0e0000, 0xfd0e0003) AM_READ(ms32_read_inputs3)
+ AM_RANGE(0xfd0d0000, 0xfd0d0003) AM_READ_PORT("DSW2") // MB-93159
+ AM_RANGE(0xfd0e0000, 0xfd0e0003) AM_READ(ms32_read_inputs3) AM_WRITENOP // writes 7-led seg at very least
AM_RANGE(0xfce00004, 0xfce00023) AM_RAM // regs?
AM_RANGE(0xfce00200, 0xfce0021f) AM_RAM // regs?
@@ -1169,55 +1170,44 @@ static INPUT_PORTS_START( wpksocv2 )
INPUT_PORTS_END
-static INPUT_PORTS_START( f1superb ) // Mostly wrong !
+static INPUT_PORTS_START( f1superb )
PORT_INCLUDE( ms32 )
PORT_MODIFY("INPUTS")
- PORT_BIT( 0x00000001, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(1)
- PORT_BIT( 0x00000002, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(1)
- PORT_BIT( 0x00000004, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER(1)
- PORT_BIT( 0x00000008, IP_ACTIVE_LOW, IPT_BUTTON4 ) PORT_PLAYER(1)
- PORT_BIT( 0x00000010, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(2)
- PORT_BIT( 0x00000020, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(2)
- PORT_BIT( 0x00000040, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER(2)
- PORT_BIT( 0x00000080, IP_ACTIVE_LOW, IPT_BUTTON4 ) PORT_PLAYER(2)
- PORT_BIT( 0x00000100, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(3)
- PORT_BIT( 0x00000200, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(3)
- PORT_BIT( 0x00000400, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER(3)
- PORT_BIT( 0x00000800, IP_ACTIVE_LOW, IPT_BUTTON4 ) PORT_PLAYER(3)
- PORT_BIT( 0x00001000, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(4)
- PORT_BIT( 0x00002000, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(4)
- PORT_BIT( 0x00004000, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER(4)
- PORT_BIT( 0x00008000, IP_ACTIVE_LOW, IPT_BUTTON4 ) PORT_PLAYER(4)
+ PORT_BIT( 0x00000001, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(1) PORT_NAME("P1 Shift")
+ PORT_BIT( 0x00000002, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(1) PORT_NAME("P1 Brake")
+ PORT_BIT( 0x0000fffc, IP_ACTIVE_LOW, IPT_UNUSED )
+ PORT_BIT( 0x00400000, IP_ACTIVE_LOW, IPT_UNUSED )
PORT_MODIFY("DSW")
- PORT_DIPUNKNOWN_DIPLOC( 0x00000001, 0x00000001, "SW2:8" )
- PORT_DIPUNKNOWN_DIPLOC( 0x00000002, 0x00000002, "SW2:7" )
- PORT_DIPUNKNOWN_DIPLOC( 0x00000004, 0x00000004, "SW2:6" )
- PORT_DIPUNKNOWN_DIPLOC( 0x00000008, 0x00000008, "SW2:5" )
- PORT_DIPUNKNOWN_DIPLOC( 0x00000010, 0x00000010, "SW2:4" )
- PORT_DIPUNKNOWN_DIPLOC( 0x00000020, 0x00000020, "SW2:3" )
- PORT_DIPUNKNOWN_DIPLOC( 0x00000040, 0x00000040, "SW2:2" )
- PORT_DIPUNKNOWN_DIPLOC( 0x00000080, 0x00000080, "SW2:1" )
-
- PORT_DIPUNKNOWN_DIPLOC( 0x00010000, 0x00010000, "SW3:8" )
- PORT_DIPUNKNOWN_DIPLOC( 0x00020000, 0x00020000, "SW3:7" )
- PORT_DIPUNKNOWN_DIPLOC( 0x00040000, 0x00040000, "SW3:6" )
- PORT_DIPUNKNOWN_DIPLOC( 0x00080000, 0x00080000, "SW3:5" )
- PORT_DIPUNKNOWN_DIPLOC( 0x00100000, 0x00100000, "SW3:4" )
- PORT_DIPUNKNOWN_DIPLOC( 0x00200000, 0x00200000, "SW3:3" )
- PORT_DIPUNKNOWN_DIPLOC( 0x00400000, 0x00400000, "SW3:2" )
- PORT_DIPUNKNOWN_DIPLOC( 0x00800000, 0x00800000, "SW3:1" )
-
- PORT_START("AN0") // Acceleration (wrong?)
- PORT_BIT( 0xff, 0x00, IPT_AD_STICK_Y ) PORT_SENSITIVITY(50) PORT_KEYDELTA(15) PORT_REVERSE PORT_PLAYER(1)
+ PORT_DIPUNUSED_DIPLOC( 0x00000001, 0x00000001, "SW2:8" )
+ PORT_DIPUNUSED_DIPLOC( 0x00000002, 0x00000002, "SW2:7" )
+ PORT_DIPNAME( 0x00000004, 0x00000004, DEF_STR( Demo_Sounds ) ) PORT_DIPLOCATION("SW2:6")
+ PORT_DIPSETTING( 0x00000000, DEF_STR( Off ) )
+ PORT_DIPSETTING( 0x00000004, DEF_STR( On ) )
+ PORT_DIPUNUSED_DIPLOC( 0x00000008, 0x00000008, "SW2:5" )
+ PORT_DIPNAME( 0x0030, 0x0030, DEF_STR( Difficulty ) ) PORT_DIPLOCATION("SW2:4,3")
+ PORT_DIPSETTING( 0x0000, DEF_STR( Easy ) )
+ PORT_DIPSETTING( 0x0030, DEF_STR( Normal ) )
+ PORT_DIPSETTING( 0x0010, DEF_STR( Hard ) )
+ PORT_DIPSETTING( 0x0020, DEF_STR( Hardest ) )
+ PORT_DIPNAME( 0x00c0, 0x0000, DEF_STR( Region ) ) PORT_DIPLOCATION("SW2:2,1")
+ PORT_DIPSETTING( 0x0080, DEF_STR( USA ) )
+ PORT_DIPSETTING( 0x0000, DEF_STR( Europe ) )
+// PORT_DIPSETTING( 0x0040, "Europe" )
+ PORT_DIPSETTING( 0x00c0, DEF_STR( Japan ) )
+ PORT_DIPUNUSED_DIPLOC( 0x00000100, 0x00000100, "SW1:8" )
+ PORT_DIPUNUSED_DIPLOC( 0x00000200, 0x00000200, "SW1:7" )
+ PORT_BIT( 0xffff0000, IP_ACTIVE_LOW, IPT_UNUSED )
+ PORT_START("AN0") // Acceleration
+ PORT_BIT( 0xff, 0x00, IPT_PEDAL ) PORT_MINMAX(0,0xff) PORT_SENSITIVITY(50) PORT_KEYDELTA(15) PORT_PLAYER(1)
PORT_START("AN1") // Steering
PORT_BIT( 0xff, 0x80, IPT_AD_STICK_X ) PORT_SENSITIVITY(50) PORT_KEYDELTA(15) PORT_PLAYER(1)
PORT_START("AN2?") // Shift + Brake
- PORT_DIPNAME( 0x80, 0x80, DEF_STR( Unknown ) )
+ PORT_DIPNAME( 0x80, 0x80, "Shift Brake" ) // ???
PORT_DIPSETTING( 0x80, DEF_STR( Off ) )
PORT_DIPSETTING( 0x00, DEF_STR( On ) )
PORT_DIPNAME( 0x40, 0x40, DEF_STR( Unknown ) )
@@ -1242,6 +1232,21 @@ static INPUT_PORTS_START( f1superb ) // Mostly wrong !
PORT_DIPSETTING( 0x01, DEF_STR( Off ) )
PORT_DIPSETTING( 0x00, DEF_STR( On ) )
+ PORT_START( "DSW2" )
+ PORT_DIPNAME( 0x01, 0x00, "Communication Mode" ) PORT_DIPLOCATION("SW3:1")
+ PORT_DIPSETTING( 0x00, "Master" )
+ PORT_DIPSETTING( 0x01, "Slave" )
+ PORT_DIPNAME( 0x0e, 0x00, "Car ID" ) PORT_DIPLOCATION("SW3:2,3,4")
+ PORT_DIPSETTING( 0x00, "1" )
+ PORT_DIPSETTING( 0x02, "2" )
+ PORT_DIPSETTING( 0x04, "3" )
+ PORT_DIPSETTING( 0x06, "4" )
+ PORT_DIPSETTING( 0x08, "5" )
+ PORT_DIPSETTING( 0x0a, "6" )
+ PORT_DIPSETTING( 0x0c, "7" )
+ PORT_DIPSETTING( 0x0e, "8" )
+ PORT_BIT( 0xffffff00, IP_ACTIVE_LOW, IPT_UNUSED )
+
INPUT_PORTS_END
/********** GFX DECODE **********/