badlands.cpp: make bootlegs to actually boot (nw)

This commit is contained in:
angelosa 2017-05-03 04:50:30 +02:00
parent 5a1b1f94ac
commit fc688b9fa8

View File

@ -421,9 +421,12 @@ ADDRESS_MAP_END
static INPUT_PORTS_START( badlands ) static INPUT_PORTS_START( badlands )
PORT_START("FE4000") /* fe4000 */ PORT_START("FE4000") /* fe4000 */
PORT_BIT( 0x000f, IP_ACTIVE_LOW, IPT_UNUSED ) PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_UNKNOWN ) // old steering wheels
PORT_BIT( 0x0010, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(1) PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_UNKNOWN ) // old gas pedals
PORT_BIT( 0x0020, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(2) PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_UNKNOWN ) // freeze-step
PORT_BIT( 0x0008, IP_ACTIVE_LOW, IPT_UNKNOWN ) // freeze
PORT_BIT( 0x0010, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(1) PORT_NAME("P1 Start / Fire")
PORT_BIT( 0x0020, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(2) PORT_NAME("P2 Start / Fire")
PORT_BIT( 0x0040, IP_ACTIVE_HIGH, IPT_CUSTOM ) PORT_VBLANK("screen") PORT_BIT( 0x0040, IP_ACTIVE_HIGH, IPT_CUSTOM ) PORT_VBLANK("screen")
PORT_SERVICE( 0x0080, IP_ACTIVE_LOW ) PORT_SERVICE( 0x0080, IP_ACTIVE_LOW )
PORT_BIT( 0xff00, IP_ACTIVE_LOW, IPT_UNUSED ) PORT_BIT( 0xff00, IP_ACTIVE_LOW, IPT_UNUSED )
@ -447,8 +450,8 @@ static INPUT_PORTS_START( badlands )
PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_SPECIAL ) /* self test */ PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_SPECIAL ) /* self test */
PORT_START("PEDALS") /* fake for pedals */ PORT_START("PEDALS") /* fake for pedals */
PORT_BIT( 0x0001, IP_ACTIVE_HIGH, IPT_BUTTON1 ) PORT_PLAYER(1) PORT_BIT( 0x0001, IP_ACTIVE_HIGH, IPT_BUTTON1 ) PORT_PLAYER(1) PORT_NAME("P1 Pedal")
PORT_BIT( 0x0002, IP_ACTIVE_HIGH, IPT_BUTTON1 ) PORT_PLAYER(2) PORT_BIT( 0x0002, IP_ACTIVE_HIGH, IPT_BUTTON1 ) PORT_PLAYER(2) PORT_NAME("P2 Pedal")
PORT_BIT( 0xfffc, IP_ACTIVE_HIGH, IPT_UNUSED ) PORT_BIT( 0xfffc, IP_ACTIVE_HIGH, IPT_UNUSED )
INPUT_PORTS_END INPUT_PORTS_END
@ -645,11 +648,11 @@ static ADDRESS_MAP_START( bootleg_map, AS_PROGRAM, 16, badlands_state )
AM_RANGE(0x400008, 0x400009) AM_READ(badlandsb_unk_r ) AM_RANGE(0x400008, 0x400009) AM_READ(badlandsb_unk_r )
AM_RANGE(0x4000fe, 0x4000ff) AM_READ(badlandsb_unk_r ) AM_RANGE(0x4000fe, 0x4000ff) AM_READ(badlandsb_unk_r )
AM_RANGE(0xfc0000, 0xfc0001) AM_READ(badlandsb_unk_r ) AM_RANGE(0xfc0000, 0xfc0001) AM_READ(badlandsb_unk_r ) // sound comms?
AM_RANGE(0xfe4000, 0xfe4001) AM_READ(badlandsb_unk_r ) AM_RANGE(0xfe4000, 0xfe4001) AM_READ_PORT("FE4000")
AM_RANGE(0xfe4004, 0xfe4005) AM_READ(badlandsb_unk_r ) AM_RANGE(0xfe4004, 0xfe4005) AM_READ_PORT("P1")
AM_RANGE(0xfe4006, 0xfe4007) AM_READ(badlandsb_unk_r ) AM_RANGE(0xfe4006, 0xfe4007) AM_READ_PORT("P2")
AM_RANGE(0xfd0000, 0xfd1fff) AM_DEVREADWRITE8("eeprom", atari_eeprom_device, read, write, 0x00ff) AM_RANGE(0xfd0000, 0xfd1fff) AM_DEVREADWRITE8("eeprom", atari_eeprom_device, read, write, 0x00ff)
@ -665,9 +668,24 @@ static ADDRESS_MAP_START( bootleg_map, AS_PROGRAM, 16, badlands_state )
ADDRESS_MAP_END ADDRESS_MAP_END
static INPUT_PORTS_START( badlandsb ) static INPUT_PORTS_START( badlandsb )
PORT_INCLUDE( badlands ) PORT_INCLUDE( badlands )
PORT_START("P1")
PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_2WAY PORT_PLAYER(1)
PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_2WAY PORT_PLAYER(1)
PORT_BIT( 0xfffc, IP_ACTIVE_LOW, IPT_UNKNOWN )
PORT_START("P2")
PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_2WAY PORT_PLAYER(2)
PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_2WAY PORT_PLAYER(2)
PORT_BIT( 0xfffc, IP_ACTIVE_LOW, IPT_UNKNOWN )
PORT_MODIFY("FE6000")
PORT_BIT( 0xffff, IP_ACTIVE_LOW, IPT_UNUSED )
PORT_MODIFY("FE6002")
PORT_BIT( 0xffff, IP_ACTIVE_LOW, IPT_UNUSED )
PORT_MODIFY("AUDIO") /* audio port */ PORT_MODIFY("AUDIO") /* audio port */
PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_UNUSED ) PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_UNUSED )
PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNUSED ) PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNUSED )
@ -707,7 +725,7 @@ static MACHINE_CONFIG_START( badlandsb, badlands_state )
/* basic machine hardware */ /* basic machine hardware */
MCFG_CPU_ADD("maincpu", M68000, XTAL_28MHz/4) /* Divisor estimated */ MCFG_CPU_ADD("maincpu", M68000, XTAL_28MHz/4) /* Divisor estimated */
MCFG_CPU_PROGRAM_MAP(bootleg_map) MCFG_CPU_PROGRAM_MAP(bootleg_map)
MCFG_CPU_VBLANK_INT_DRIVER("screen", badlands_state, vblank_int) MCFG_CPU_VBLANK_INT_DRIVER("screen", badlands_state, irq1_line_hold) //vblank_int)
// MCFG_CPU_ADD("audiocpu", Z80, XTAL_20MHz/12) /* Divisor estimated */ // MCFG_CPU_ADD("audiocpu", Z80, XTAL_20MHz/12) /* Divisor estimated */
// MCFG_CPU_PROGRAM_MAP(bootleg_soundmap) // MCFG_CPU_PROGRAM_MAP(bootleg_soundmap)