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".
This commit is contained in:
R. Belmont 2010-03-03 04:30:23 +00:00
parent 4a8d5a8ecc
commit a91388839c

View File

@ -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)