From a91388839c03c90d453c1b98a0aef2f584668088 Mon Sep 17 00:00:00 2001 From: "R. Belmont" Date: Wed, 3 Mar 2010 04:30:23 +0000 Subject: [PATCH] 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". --- src/mame/drivers/namcos23.c | 35 ++++++++++++++++++++++++++--------- 1 file 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)