From 87181350318d9d2b7c3a086c5ff59f2e166f5e23 Mon Sep 17 00:00:00 2001 From: AJR Date: Tue, 12 Jun 2018 14:15:39 -0400 Subject: rescraid: Regression fix (nw) --- src/mame/drivers/balsente.cpp | 29 ++++++++++++++++++++++++----- src/mame/includes/balsente.h | 5 +++++ src/mame/machine/balsente.cpp | 11 +++++++++++ 3 files changed, 40 insertions(+), 5 deletions(-) diff --git a/src/mame/drivers/balsente.cpp b/src/mame/drivers/balsente.cpp index bb2a511ce09..396eabee072 100644 --- a/src/mame/drivers/balsente.cpp +++ b/src/mame/drivers/balsente.cpp @@ -245,7 +245,7 @@ DIP locations verified for: * *************************************/ -void balsente_state::cpu1_map(address_map &map) +void balsente_state::cpu1_base_map(address_map &map) { map(0x0000, 0x07ff).ram().share("spriteram"); map(0x0800, 0x7fff).ram().w(FUNC(balsente_state::videoram_w)).share("videoram"); @@ -266,12 +266,23 @@ void balsente_state::cpu1_map(address_map &map) map(0x9903, 0x9903).portr("IN1").nopw(); map(0x9a00, 0x9a03).r(FUNC(balsente_state::random_num_r)); map(0x9a04, 0x9a05).rw(FUNC(balsente_state::m6850_r), FUNC(balsente_state::m6850_w)); - map(0x9b00, 0x9bff).rw("nov0", FUNC(x2212_device::read), FUNC(x2212_device::write)); - map(0x9c00, 0x9cff).rw("nov1", FUNC(x2212_device::read), FUNC(x2212_device::write)); map(0xa000, 0xbfff).bankr("bank1"); map(0xc000, 0xffff).bankr("bank2"); } +void balsente_state::cpu1_map(address_map &map) +{ + cpu1_base_map(map); + map(0x9b00, 0x9bff).rw("nov0", FUNC(x2212_device::read), FUNC(x2212_device::write)); + map(0x9c00, 0x9cff).rw("nov1", FUNC(x2212_device::read), FUNC(x2212_device::write)); +} + +void balsente_state::cpu1_smudge_map(address_map &map) +{ + cpu1_base_map(map); + map(0x9b00, 0x9bff).rw(FUNC(balsente_state::novram_8bit_r), FUNC(balsente_state::novram_8bit_w)); +} + /************************************* @@ -1394,6 +1405,14 @@ MACHINE_CONFIG_START(balsente_state::shrike) MACHINE_CONFIG_END +MACHINE_CONFIG_START(balsente_state::rescraid) + balsente(config); + + MCFG_DEVICE_MODIFY("maincpu") + MCFG_DEVICE_PROGRAM_MAP(cpu1_smudge_map) +MACHINE_CONFIG_END + + /************************************* * @@ -2454,9 +2473,9 @@ GAME( 1986, spiker3, spiker, balsente, spiker, balsente_state, init_spiker GAME( 1986, stompin, 0, balsente, stompin, balsente_state, init_stompin, ROT0, "Bally/Sente", "Stompin' (4/4/86)", MACHINE_SUPPORTS_SAVE ) /* Board: A084-91889-A000 (Not a cartridge, but dedicated board) */ -GAME( 1987, rescraid, 0, balsente, rescraid, balsente_state, init_rescraid, ROT0, "Bally Midway", "Rescue Raider (5/11/87) (non-cartridge)", MACHINE_SUPPORTS_SAVE ) +GAME( 1987, rescraid, 0, rescraid, rescraid, balsente_state, init_rescraid, ROT0, "Bally Midway", "Rescue Raider (5/11/87) (non-cartridge)", MACHINE_SUPPORTS_SAVE ) /* Board: Unknown */ GAME( 1986, shrike, 0, shrike, shrike, balsente_state, init_shrike, ROT0, "Bally/Sente", "Shrike Avenger (prototype)", MACHINE_SUPPORTS_SAVE ) -GAME( 1987, rescraida, rescraid, balsente, rescraid, balsente_state, init_rescraid, ROT0, "Bally Midway", "Rescue Raider (stand-alone)", MACHINE_SUPPORTS_SAVE ) +GAME( 1987, rescraida, rescraid, rescraid, rescraid, balsente_state, init_rescraid, ROT0, "Bally Midway", "Rescue Raider (stand-alone)", MACHINE_SUPPORTS_SAVE ) GAME( 1985, teamht, 0, balsente, teamht, balsente_state, init_teamht, ROT0, "Bally/Sente", "Team Hat Trick", MACHINE_SUPPORTS_SAVE ) diff --git a/src/mame/includes/balsente.h b/src/mame/includes/balsente.h index 14f8385e972..a467a2357ab 100644 --- a/src/mame/includes/balsente.h +++ b/src/mame/includes/balsente.h @@ -57,6 +57,7 @@ public: { } void shrike(machine_config &config); + void rescraid(machine_config &config); void balsente(machine_config &config); DECLARE_CUSTOM_INPUT_MEMBER(nstocker_bits_r); void init_otwalls(); @@ -97,6 +98,8 @@ private: DECLARE_WRITE_LINE_MEMBER(out5_w); DECLARE_WRITE_LINE_MEMBER(out6_w); DECLARE_WRITE_LINE_MEMBER(nvrecall_w); + DECLARE_READ8_MEMBER(novram_8bit_r); + DECLARE_WRITE8_MEMBER(novram_8bit_w); DECLARE_READ8_MEMBER(m6850_r); DECLARE_WRITE8_MEMBER(m6850_w); DECLARE_READ8_MEMBER(m6850_sound_r); @@ -151,7 +154,9 @@ private: CEM3394_EXT_INPUT(noise_gen_4); CEM3394_EXT_INPUT(noise_gen_5); + void cpu1_base_map(address_map &map); void cpu1_map(address_map &map); + void cpu1_smudge_map(address_map &map); void cpu2_io_map(address_map &map); void cpu2_map(address_map &map); void shrike68k_map(address_map &map); diff --git a/src/mame/machine/balsente.cpp b/src/mame/machine/balsente.cpp index d1d2740071f..2800bf4a941 100644 --- a/src/mame/machine/balsente.cpp +++ b/src/mame/machine/balsente.cpp @@ -316,6 +316,17 @@ WRITE_LINE_MEMBER(balsente_state::nvrecall_w) m_novram[1]->recall(!state); } +READ8_MEMBER(balsente_state::novram_8bit_r) +{ + return (m_novram[0]->read(space, offset) & 0x0f) | (m_novram[1]->read(space, offset) << 4); +} + +WRITE8_MEMBER(balsente_state::novram_8bit_w) +{ + m_novram[0]->write(space, offset, data & 0x0f); + m_novram[1]->write(space, offset, data >> 4); +} + /************************************* -- cgit v1.2.3