diff options
author | Ivan Vangelista <mesgnet@yahoo.it> | 2018-12-15 10:19:28 +0100 |
---|---|---|
committer | Ivan Vangelista <mesgnet@yahoo.it> | 2018-12-15 10:19:28 +0100 |
commit | f41b6e8d812103f7eb50dcaf35fdb83e9a3a5eff (patch) | |
tree | 3bcb96030998beb3f1ed285a5f66bcad8b66ee40 | |
parent | 5b11979627088442dec0e7807fed5f53c331b0d4 (diff) |
snesb.cpp: make spidrmnb boot. rushbeat refuses to cooperate (nw)
-rw-r--r-- | src/mame/drivers/snesb.cpp | 55 |
1 files changed, 53 insertions, 2 deletions
diff --git a/src/mame/drivers/snesb.cpp b/src/mame/drivers/snesb.cpp index 7eb81d905e4..f8f7db3ff64 100644 --- a/src/mame/drivers/snesb.cpp +++ b/src/mame/drivers/snesb.cpp @@ -701,6 +701,39 @@ static INPUT_PORTS_START( endless ) PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_COIN2 ) INPUT_PORTS_END +static INPUT_PORTS_START( spidrmnb ) + PORT_INCLUDE(snes_common) + + PORT_START("DSW1") + 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( 0x00, DEF_STR( 1C_1C ) ) /* duplicate setting */ + PORT_DIPSETTING( 0x06, DEF_STR( 1C_2C ) ) + PORT_DIPSETTING( 0x05, DEF_STR( 1C_3C ) ) + PORT_DIPSETTING( 0x04, DEF_STR( 1C_4C ) ) + PORT_DIPUNUSED( 0x08, IP_ACTIVE_LOW ) + PORT_DIPUNUSED( 0x10, IP_ACTIVE_LOW ) + PORT_DIPUNUSED( 0x20, IP_ACTIVE_LOW ) + PORT_DIPUNUSED( 0x40, IP_ACTIVE_LOW ) + PORT_DIPUNUSED( 0x80, IP_ACTIVE_LOW ) + + PORT_START("DSW2") + PORT_DIPUNUSED( 0x01, IP_ACTIVE_LOW ) + PORT_DIPUNUSED( 0x02, IP_ACTIVE_LOW ) + PORT_DIPUNUSED( 0x04, IP_ACTIVE_LOW ) + PORT_DIPUNUSED( 0x08, IP_ACTIVE_LOW ) + PORT_DIPUNUSED( 0x10, IP_ACTIVE_LOW ) + PORT_DIPUNUSED( 0x20, IP_ACTIVE_LOW ) + PORT_DIPUNUSED( 0x40, IP_ACTIVE_LOW ) + PORT_DIPUNUSED( 0x80, IP_ACTIVE_LOW ) + + PORT_START("COIN") + PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_COIN1 ) + PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_COIN2 ) +INPUT_PORTS_END MACHINE_CONFIG_START(snesb_state::kinstb) @@ -1109,7 +1142,11 @@ void snesb_state::init_rushbeat() } } - init_snes(); + // boot vector + dst[0xfffc] = 0x00; + dst[0xfffd] = 0x80; + + init_snes_hirom(); } void snesb_state::init_spidrmnb() @@ -1175,6 +1212,20 @@ void snesb_state::init_spidrmnb() } } + // boot vector + dst[0x7ffc] = 0x98; + dst[0x7ffd] = 0xff; + + m_shared_ram = std::make_unique<int8_t[]>(0x22); + m_shared_ram2 = std::make_unique<int8_t[]>(0x22); + m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0x781000, 0x781021, read8_delegate(FUNC(snesb_state::sharedram_r),this), write8_delegate(FUNC(snesb_state::sharedram_w),this)); + m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0x781200, 0x781221, read8_delegate(FUNC(snesb_state::sharedram2_r),this), write8_delegate(FUNC(snesb_state::sharedram2_w),this)); + + /* extra inputs */ + m_maincpu->space(AS_PROGRAM).install_read_handler(0x770071, 0x770071, read8_delegate(FUNC(snesb_state::snesb_dsw1_r),this)); + m_maincpu->space(AS_PROGRAM).install_read_handler(0x770073, 0x770073, read8_delegate(FUNC(snesb_state::snesb_dsw2_r),this)); + m_maincpu->space(AS_PROGRAM).install_read_handler(0x770079, 0x770079, read8_delegate(FUNC(snesb_state::snesb_coin_r),this)); + init_snes(); } @@ -1392,4 +1443,4 @@ GAME( 1997, sblast2b, 0, kinstb, sblast2b, snesb_state, init_sbl GAME( 1996, endless, 0, kinstb, endless, snesb_state, init_endless, ROT0, "bootleg", "Gundam Wing: Endless Duel (SNES bootleg)", MACHINE_IMPERFECT_SOUND | MACHINE_IMPERFECT_GRAPHICS ) GAME( 1996, legendsb, 0, kinstb, kinstb, snesb_state, init_legendsb, ROT0, "bootleg", "Legend (SNES bootleg)", MACHINE_IMPERFECT_SOUND | MACHINE_IMPERFECT_GRAPHICS ) GAME( 1997, rushbeat, 0, kinstb, kinstb, snesb_state, init_rushbeat, ROT0, "bootleg", "Rushing Beat (SNES bootleg)", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_SOUND | MACHINE_IMPERFECT_GRAPHICS ) -GAME( 1997, spidrmnb, 0, kinstb, kinstb, snesb_state, init_spidrmnb, ROT0, "bootleg", "Venom & Spider-Man - Separation Anxiety (SNES bootleg)", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_SOUND | MACHINE_IMPERFECT_GRAPHICS ) +GAME( 1997, spidrmnb, 0, kinstb, spidrmnb, snesb_state, init_spidrmnb, ROT0, "bootleg", "Venom & Spider-Man - Separation Anxiety (SNES bootleg)", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_SOUND | MACHINE_IMPERFECT_GRAPHICS ) |