summaryrefslogtreecommitdiffstatshomepage
path: root/src/mame/drivers/mystwarr.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/mame/drivers/mystwarr.cpp')
-rw-r--r--src/mame/drivers/mystwarr.cpp36
1 files changed, 29 insertions, 7 deletions
diff --git a/src/mame/drivers/mystwarr.cpp b/src/mame/drivers/mystwarr.cpp
index a9229f5adbf..ccf8a2721c7 100644
--- a/src/mame/drivers/mystwarr.cpp
+++ b/src/mame/drivers/mystwarr.cpp
@@ -566,7 +566,7 @@ WRITE8_MEMBER(mystwarr_state::sound_ctrl_w)
quite similar to xexex/gijoe/asterix's sound.
*/
-void mystwarr_state::martchmp_sound_map(address_map &map)
+void mystwarr_state::mystwarr_sound_map(address_map &map)
{
map(0x0000, 0x7fff).rom();
map(0x8000, 0xbfff).bankr("z80bank");
@@ -574,6 +574,22 @@ void mystwarr_state::martchmp_sound_map(address_map &map)
map(0xc000, 0xdfff).ram();
map(0xe000, 0xe22f).rw(m_k054539_1, FUNC(k054539_device::read), FUNC(k054539_device::write));
map(0xe230, 0xe3ff).ram();
+ map(0xe400, 0xe62f).rw(m_k054539_2, FUNC(k054539_device::read), FUNC(k054539_device::write));
+ map(0xe630, 0xe7ff).ram();
+ map(0xf000, 0xf003).m(m_k054321, FUNC(k054321_device::sound_map));
+ map(0xf800, 0xf800).w(FUNC(mystwarr_state::sound_ctrl_w));
+ map(0xfff0, 0xfff3).nopw(); // unknown write
+}
+
+
+void mystwarr_state::martchmp_sound_map(address_map &map)
+{
+ map(0x0000, 0x7fff).rom();
+ map(0x8000, 0xbfff).bankr("z80bank");
+ map(0x0000, 0xbfff).nopw();
+ map(0xc000, 0xdfff).ram();
+ map(0xe000, 0xe22f).rw("k054539", FUNC(k054539_device::read), FUNC(k054539_device::write));
+ map(0xe230, 0xe3ff).ram();
map(0xe400, 0xe62f).noprw();
map(0xe630, 0xe7ff).ram();
map(0xf000, 0xf003).m(m_k054321, FUNC(k054321_device::sound_map));
@@ -582,10 +598,9 @@ void mystwarr_state::martchmp_sound_map(address_map &map)
}
-void mystwarr_state::mystwarr_sound_map(address_map &map)
+void mystwarr_state::mystwarr_k054539_map(address_map &map)
{
- martchmp_sound_map(map);
- map(0xe400, 0xe62f).rw(m_k054539_2, FUNC(k054539_device::read), FUNC(k054539_device::write));
+ map(0x000000, 0x3fffff).rom().region("k054539", 0);
}
@@ -908,9 +923,10 @@ MACHINE_RESET_MEMBER(mystwarr_state,metamrph)
MACHINE_RESET_MEMBER(mystwarr_state,martchmp)
{
int i;
+ k054539_device *k054539 = subdevice<k054539_device>("k054539");
// boost voice(chip 0 channel 4-7)
- for (i=4; i<=7; i++) m_k054539_1->set_gain(i, 1.4);
+ for (i=4; i<=7; i++) k054539->set_gain(i, 1.4);
}
MACHINE_RESET_MEMBER(mystwarr_state,gaiapols)
@@ -980,13 +996,13 @@ void mystwarr_state::mystwarr(machine_config &config)
K054321(config, m_k054321, "lspeaker", "rspeaker");
K054539(config, m_k054539_1, XTAL(18'432'000));
- m_k054539_1->set_device_rom_tag("k054539");
+ m_k054539_1->set_addrmap(0, &mystwarr_state::mystwarr_k054539_map);
m_k054539_1->timer_handler().set(FUNC(mystwarr_state::k054539_nmi_gen));
m_k054539_1->add_route(0, "rspeaker", 1.0); /* stereo channels are inverted */
m_k054539_1->add_route(1, "lspeaker", 1.0);
K054539(config, m_k054539_2, XTAL(18'432'000));
- m_k054539_2->set_device_rom_tag("k054539");
+ m_k054539_2->set_addrmap(0, &mystwarr_state::mystwarr_k054539_map);
m_k054539_2->add_route(0, "rspeaker", 1.0); /* stereo channels are inverted */
m_k054539_2->add_route(1, "lspeaker", 1.0);
}
@@ -1134,7 +1150,13 @@ void mystwarr_state::martchmp(machine_config &config)
m_k055673->set_sprite_callback(FUNC(mystwarr_state::martchmp_sprite_callback), this);
m_k055673->set_config("gfx2", K055673_LAYOUT_GX, -58, -23);
+ config.device_remove("k054539_1");
config.device_remove("k054539_2");
+
+ k054539_device &k054539(K054539(config, "k054539", XTAL(18'432'000)));
+ k054539.timer_handler().set(FUNC(mystwarr_state::k054539_nmi_gen));
+ k054539.add_route(0, "rspeaker", 1.0); /* stereo channels are inverted */
+ k054539.add_route(1, "lspeaker", 1.0);
}
/**********************************************************************************/