Mapped player 2 inputs and buttons 4-6 in Mortal Kombat 3

(bootleg of Megadrive version) [Mariusz Wojcieszek].

New games promoted from NOT_WORKING
-----------------------------------
Mortal Kombat 3 (bootleg of Megadrive version) 
 [Mariusz Wojcieszek, Patrick McCarron, Smitdogg, The Dumping Union]
This commit is contained in:
mariuszw1 2010-02-14 20:40:06 +00:00
parent 977896a710
commit 0d57ebf87d
3 changed files with 62 additions and 36 deletions

View File

@ -154,39 +154,6 @@ ROM_START( mk3ghw ) // roms are scrambled, we take care of the address descrambl
ROM_CONTINUE( 0x300000, 0x040000)
ROM_END
static INPUT_PORTS_START(mk3ghw)
PORT_INCLUDE( md_common )
PORT_MODIFY("PAD1") /* Joypad 1 (3 button + start) NOT READ DIRECTLY */
PORT_BIT( 0x0010, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(1) // a
PORT_BIT( 0x0020, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(1) // b
PORT_BIT( 0x0040, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER(1) // c
PORT_BIT( 0x0080, IP_ACTIVE_LOW, IPT_START1 ) // start
PORT_MODIFY("PAD2") /* Joypad 2 (3 button + start) NOT READ DIRECTLY - not used */
PORT_BIT( 0x00ff, IP_ACTIVE_LOW, IPT_UNUSED )
PORT_START("IN0")
PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_COIN1 ) PORT_IMPULSE(1)
PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_COIN2 ) PORT_IMPULSE(1)
PORT_DIPNAME( 0x04, 0x04, DEF_STR( Coinage ) )
PORT_DIPSETTING( 0x00, DEF_STR( 3C_1C ) )
PORT_DIPSETTING( 0x04, DEF_STR( 1C_2C ) )
PORT_BIT( 0xf8, 0x00, IPT_UNUSED )
PORT_START("IN1")
PORT_DIPUNKNOWN( 0x01, 0x00 )
PORT_DIPUNKNOWN( 0x02, 0x00 )
PORT_DIPUNKNOWN( 0x04, 0x00 )
PORT_DIPUNKNOWN( 0x08, 0x00 )
PORT_DIPUNKNOWN( 0x10, 0x00 )
PORT_DIPUNKNOWN( 0x20, 0x00 )
PORT_DIPNAME( 0x40, 0x40, DEF_STR( Demo_Sounds ) )
PORT_DIPSETTING( 0x00, DEF_STR( Off ) )
PORT_DIPSETTING( 0x40, DEF_STR( On ) )
PORT_DIPUNKNOWN( 0x80, 0x00 )
INPUT_PORTS_END
// this should be correct, the areas of the rom that differ to the original
// after this decode look like intentional changes
static DRIVER_INIT( mk3ghw )
@ -233,8 +200,8 @@ static DRIVER_INIT( mk3ghw )
ROM[7] = 0x02;
ROM[6] = 0x10;
memory_install_read_port(cputag_get_address_space(machine, "maincpu", ADDRESS_SPACE_PROGRAM), 0x770070, 0x770071, 0, 0, "IN0");
memory_install_read_port(cputag_get_address_space(machine, "maincpu", ADDRESS_SPACE_PROGRAM), 0x770072, 0x770073, 0, 0, "IN1");
memory_install_read_port(cputag_get_address_space(machine, "maincpu", ADDRESS_SPACE_PROGRAM), 0x770070, 0x770071, 0, 0, "DSWA");
memory_install_read_port(cputag_get_address_space(machine, "maincpu", ADDRESS_SPACE_PROGRAM), 0x770072, 0x770073, 0, 0, "DSWB");
}

View File

@ -1606,6 +1606,61 @@ INPUT_PORTS_START( ssf2ghw )
// PORT_DIPSETTING( 0x00, "10 (Fastest)" )
INPUT_PORTS_END
static INPUT_PORTS_START(mk3ghw)
PORT_INCLUDE( md_common )
PORT_MODIFY("PAD1")
PORT_BIT( 0x0010, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(1)
PORT_BIT( 0x0020, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER(1)
PORT_BIT( 0x0040, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(1)
PORT_BIT( 0x0080, IP_ACTIVE_LOW, IPT_START1 )
PORT_MODIFY("PAD2")
PORT_BIT( 0x0010, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(2)
PORT_BIT( 0x0020, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER(2)
PORT_BIT( 0x0040, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(2)
PORT_BIT( 0x0080, IP_ACTIVE_LOW, IPT_START2 )
PORT_START("EXTRA1") /* Extra buttons for Joypad 1 (6 button + start + mode) NOT READ DIRECTLY */
PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_BUTTON6 ) PORT_PLAYER(1)
PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_BUTTON5 ) PORT_PLAYER(1)
PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_BUTTON4 ) PORT_PLAYER(1)
PORT_BIT( 0x0008, IP_ACTIVE_LOW, IPT_UNUSED )
PORT_START("EXTRA2") /* Extra buttons for Joypad 2 (6 button + start + mode) NOT READ DIRECTLY */
PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_BUTTON6 ) PORT_PLAYER(2)
PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_BUTTON5 ) PORT_PLAYER(2)
PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_BUTTON4 ) PORT_PLAYER(2)
PORT_BIT( 0x0008, IP_ACTIVE_LOW, IPT_UNUSED )
PORT_START("IN0")
PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_COIN1 ) PORT_IMPULSE(1)
PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_COIN2 ) PORT_IMPULSE(1)
PORT_START("DSWA")
PORT_DIPNAME( 0x07, 0x07, DEF_STR( Coinage ) )
PORT_DIPSETTING( 0x01, DEF_STR( 4C_1C ) )
PORT_DIPSETTING( 0x02, DEF_STR( 3C_1C ) )
PORT_DIPSETTING( 0x03, DEF_STR( 2C_1C ) )
PORT_DIPSETTING( 0x07, DEF_STR( 1C_1C ) )
PORT_DIPSETTING( 0x06, DEF_STR( 1C_2C ) )
PORT_DIPSETTING( 0x05, DEF_STR( 1C_3C ) )
PORT_DIPSETTING( 0x04, DEF_STR( 1C_4C ) )
PORT_BIT( 0xf8, 0x00, IPT_UNUSED )
PORT_START("DSWB")
PORT_DIPUNKNOWN( 0x01, 0x00 )
PORT_DIPUNKNOWN( 0x02, 0x00 )
PORT_DIPUNKNOWN( 0x04, 0x00 )
PORT_DIPUNKNOWN( 0x08, 0x00 )
PORT_DIPUNKNOWN( 0x10, 0x00 )
PORT_DIPUNKNOWN( 0x20, 0x00 )
PORT_DIPNAME( 0x40, 0x40, DEF_STR( Demo_Sounds ) )
PORT_DIPSETTING( 0x00, DEF_STR( Off ) )
PORT_DIPSETTING( 0x40, DEF_STR( On ) )
PORT_DIPUNKNOWN( 0x80, 0x00 )
INPUT_PORTS_END
INPUT_PORTS_START( aladbl )
PORT_INCLUDE( md_common )
@ -1654,6 +1709,9 @@ static void megadrive_init_io(running_machine *machine)
if (ipt == INPUT_PORTS_NAME(ssf2ghw))
init_megadri6_io(machine);
if (ipt == INPUT_PORTS_NAME(mk3ghw))
init_megadri6_io(machine);
}
static void megadrive_reset_io(running_machine *machine)
@ -6302,7 +6360,7 @@ static void megadriv_init_common(running_machine *machine)
m68k_set_tas_callback(devtag_get_device(machine, "maincpu"), megadriv_tas_callback);
if ((ipt == INPUT_PORTS_NAME(megadri6)) || (ipt == INPUT_PORTS_NAME(ssf2ghw)))
if ((ipt == INPUT_PORTS_NAME(megadri6)) || (ipt == INPUT_PORTS_NAME(ssf2ghw)) || (ipt == INPUT_PORTS_NAME(mk3ghw)))
{
megadrive_io_read_data_port_ptr = megadrive_io_read_data_port_6button;
megadrive_io_write_data_port_ptr = megadrive_io_write_data_port_6button;

View File

@ -15,6 +15,7 @@ INPUT_PORTS_EXTERN( megadriv );
INPUT_PORTS_EXTERN( aladbl );
INPUT_PORTS_EXTERN( megadri6 );
INPUT_PORTS_EXTERN( ssf2ghw );
INPUT_PORTS_EXTERN( mk3ghw );
INPUT_PORTS_EXTERN( megdsvp );
MACHINE_DRIVER_EXTERN( megadriv_timers );