summaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
author R. Belmont <rb6502@users.noreply.github.com>2010-03-03 04:30:23 +0000
committer R. Belmont <rb6502@users.noreply.github.com>2010-03-03 04:30:23 +0000
commita91388839c03c90d453c1b98a0aef2f584668088 (patch)
tree921e91d588c924df71a6598beefbc1748ed1fee7
parent4a8d5a8ecc4ea74a5d51da3ba08dbfb2b470e24d (diff)
namcos23: working inputs for TC2 test mode [R. Belmont]
Give it a few seconds for the H8s to boot and sync up and then inputs will navigate the test menus. up/down is up/down, spacebar is "enter".
-rw-r--r--src/mame/drivers/namcos23.c35
1 files changed, 26 insertions, 9 deletions
diff --git a/src/mame/drivers/namcos23.c b/src/mame/drivers/namcos23.c
index e86709b3961..0d57d70e554 100644
--- a/src/mame/drivers/namcos23.c
+++ b/src/mame/drivers/namcos23.c
@@ -1301,6 +1301,7 @@ static READ16_HANDLER(s23_ctl_16_r)
switch(offset) {
// dips ?
// 0100 set freezes gorgon
+ // 0080 is service mode for gorgon
// 0004 unset freezes ss23 at the boot level
// 0002 unset skips the post on ss23
case 1: return 0x0004;
@@ -1671,6 +1672,19 @@ static INPUT_PORTS_START( ss23 )
PORT_BIT( 0x001, IP_ACTIVE_LOW, IPT_START2 )
PORT_BIT( 0xffe, IP_ACTIVE_LOW, IPT_UNKNOWN )
+ PORT_START("TC2P0")
+ PORT_BIT(0x03, IP_ACTIVE_LOW, IPT_UNKNOWN )
+ PORT_BIT(0x04, IP_ACTIVE_LOW, IPT_COIN1 )
+ PORT_BIT(0x08, IP_ACTIVE_LOW, IPT_UNKNOWN )
+ PORT_BIT(0x10, IP_ACTIVE_LOW, IPT_SERVICE1 )
+ PORT_BIT(0x20, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN )
+ PORT_BIT(0x40, IP_ACTIVE_LOW, IPT_JOYSTICK_UP )
+ PORT_BIT(0x80, IP_ACTIVE_LOW, IPT_BUTTON3 )
+
+ PORT_START("TC2P1")
+ PORT_BIT(0x01, IP_ACTIVE_LOW, IPT_BUTTON1 ) // gun trigger
+ PORT_BIT(0x02, IP_ACTIVE_LOW, IPT_BUTTON2 ) // foot pedal
+ PORT_BIT(0xfc, IP_ACTIVE_LOW, IPT_UNKNOWN )
INPUT_PORTS_END
@@ -1753,14 +1767,17 @@ static WRITE8_HANDLER( s23_iob_p4_w )
static READ8_HANDLER(iob_r)
{
- return 0xff;
+ return mame_rand(space->machine);
}
/* H8/3334 (Namco C78) I/O board MCU */
static ADDRESS_MAP_START( s23iobrdmap, ADDRESS_SPACE_PROGRAM, 8 )
AM_RANGE(0x0000, 0x1fff) AM_ROM AM_REGION("ioboard", 0)
- AM_RANGE(0x6000, 0x6003) AM_READ( iob_r )
- AM_RANGE(0x7000, 0x700f) AM_RAM // probably actually the digital inputs, but ignore for now
+ AM_RANGE(0x6000, 0x6000) AM_READ_PORT("TC2P0") // 0-3 = coin connect, 0-5 = test 0-6 = down select, 0-7 = up select, 0-8 = enter
+ AM_RANGE(0x6001, 0x6001) AM_READ_PORT("TC2P1") // 1-1 = gun trigger 1-2 = foot pedal
+ AM_RANGE(0x6002, 0x6003) AM_READ( iob_r )
+ AM_RANGE(0x7000, 0x700f) AM_READ( iob_r )
+
AM_RANGE(0xc000, 0xf7ff) AM_RAM
ADDRESS_MAP_END
@@ -1869,8 +1886,8 @@ static MACHINE_DRIVER_START( gorgon )
MDRV_SCREEN_REFRESH_RATE(S23_VSYNC1)
MDRV_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500)) // Not in any way accurate
MDRV_SCREEN_FORMAT(BITMAP_FORMAT_INDEXED16)
- MDRV_SCREEN_SIZE(48*16, 30*16)
- MDRV_SCREEN_VISIBLE_AREA(0, 48*16-1, 0, 30*16-1)
+ MDRV_SCREEN_SIZE(640, 480)
+ MDRV_SCREEN_VISIBLE_AREA(0, 639, 0, 479)
MDRV_PALETTE_LENGTH(0x8000)
@@ -1914,8 +1931,8 @@ static MACHINE_DRIVER_START( s23 )
MDRV_SCREEN_REFRESH_RATE(S23_VSYNC1)
MDRV_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500)) // Not in any way accurate
MDRV_SCREEN_FORMAT(BITMAP_FORMAT_INDEXED16)
- MDRV_SCREEN_SIZE(48*16, 30*16)
- MDRV_SCREEN_VISIBLE_AREA(0, 48*16-1, 0, 30*16-1)
+ MDRV_SCREEN_SIZE(640, 480)
+ MDRV_SCREEN_VISIBLE_AREA(0, 639, 0, 479)
MDRV_PALETTE_LENGTH(0x8000)
@@ -1955,8 +1972,8 @@ static MACHINE_DRIVER_START( ss23 )
MDRV_SCREEN_REFRESH_RATE(S23_VSYNC1)
MDRV_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500)) // Not in any way accurate
MDRV_SCREEN_FORMAT(BITMAP_FORMAT_INDEXED16)
- MDRV_SCREEN_SIZE(48*16, 30*16)
- MDRV_SCREEN_VISIBLE_AREA(0, 48*16-1, 0, 30*16-1)
+ MDRV_SCREEN_SIZE(640, 480)
+ MDRV_SCREEN_VISIBLE_AREA(0, 639, 0, 479)
MDRV_PALETTE_LENGTH(0x8000)