summaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
author AJR <ajrhacker@users.noreply.github.com>2017-06-12 00:13:20 -0400
committer AJR <ajrhacker@users.noreply.github.com>2017-06-12 18:48:57 -0400
commit607f89615dcd27c72ead380130ccd5d4d2a7f249 (patch)
tree58eeb95b9fda73b283437c8b5024fb38e67249a8
parent5e187101d4991945bac2419663f3073699fe6fa2 (diff)
taito_en: Use MB8421 for communication RAM
-rw-r--r--src/mame/audio/taito_en.cpp29
-rw-r--r--src/mame/audio/taito_en.h4
-rw-r--r--src/mame/drivers/galastrm.cpp2
-rw-r--r--src/mame/drivers/groundfx.cpp2
-rw-r--r--src/mame/drivers/gunbustr.cpp2
-rw-r--r--src/mame/drivers/superchs.cpp2
-rw-r--r--src/mame/drivers/taito_f3.cpp2
-rw-r--r--src/mame/drivers/taitojc.cpp29
-rw-r--r--src/mame/drivers/undrfire.cpp4
-rw-r--r--src/mame/includes/taitojc.h4
10 files changed, 12 insertions, 68 deletions
diff --git a/src/mame/audio/taito_en.cpp b/src/mame/audio/taito_en.cpp
index 0988cb60b8a..9c93d26d784 100644
--- a/src/mame/audio/taito_en.cpp
+++ b/src/mame/audio/taito_en.cpp
@@ -25,7 +25,6 @@ taito_en_device::taito_en_device(const machine_config &mconfig, const char *tag,
m_ensoniq(*this, "ensoniq"),
m_duart68681(*this, "duart68681"),
m_mb87078(*this, "mb87078"),
- m_snd_shared_ram(*this, ":snd_shared"),
m_es5510_dol_latch(0),
m_es5510_dil_latch(0),
m_es5510_dadr_latch(0),
@@ -80,30 +79,6 @@ void taito_en_device::device_reset()
*
*************************************/
-READ8_MEMBER( taito_en_device::en_68000_share_r )
-{
- switch (offset & 3)
- {
- case 0: return (m_snd_shared_ram[offset/4]&0xff000000)>>24;
- case 1: return (m_snd_shared_ram[offset/4]&0x00ff0000)>>16;
- case 2: return (m_snd_shared_ram[offset/4]&0x0000ff00)>>8;
- case 3: return (m_snd_shared_ram[offset/4]&0x000000ff)>>0;
- }
-
- return 0;
-}
-
-WRITE8_MEMBER( taito_en_device::en_68000_share_w )
-{
- switch (offset & 3)
- {
- case 0: m_snd_shared_ram[offset/4] = (m_snd_shared_ram[offset/4]&0x00ffffff)|(data<<24);
- case 1: m_snd_shared_ram[offset/4] = (m_snd_shared_ram[offset/4]&0xff00ffff)|(data<<16);
- case 2: m_snd_shared_ram[offset/4] = (m_snd_shared_ram[offset/4]&0xffff00ff)|(data<<8);
- case 3: m_snd_shared_ram[offset/4] = (m_snd_shared_ram[offset/4]&0xffffff00)|(data<<0);
- }
-}
-
WRITE16_MEMBER( taito_en_device::en_es5505_bank_w )
{
uint32_t max_banks_this_game = (memregion(":ensoniq.0")->bytes()/0x200000)-1;
@@ -221,7 +196,7 @@ WRITE16_MEMBER( taito_en_device::es5510_dsp_w )
static ADDRESS_MAP_START( en_sound_map, AS_PROGRAM, 16, taito_en_device )
AM_RANGE(0x000000, 0x00ffff) AM_RAM AM_MIRROR(0x30000) AM_SHARE("share1")
- AM_RANGE(0x140000, 0x140fff) AM_READWRITE8(en_68000_share_r, en_68000_share_w, 0xff00)
+ AM_RANGE(0x140000, 0x140fff) AM_DEVREADWRITE8("dpram", mb8421_device, right_r, right_w, 0xff00)
AM_RANGE(0x200000, 0x20001f) AM_DEVREADWRITE("ensoniq", es5505_device, read, write)
AM_RANGE(0x260000, 0x2601ff) AM_READWRITE(es5510_dsp_r, es5510_dsp_w) //todo: hook up cpu/es5510
AM_RANGE(0x280000, 0x28001f) AM_DEVREADWRITE8("duart68681", mc68681_device, read, write, 0x00ff)
@@ -305,6 +280,8 @@ MACHINE_CONFIG_MEMBER( taito_en_device::device_add_mconfig )
MCFG_DEVICE_ADD("mb87078", MB87078, 0)
MCFG_MB87078_GAIN_CHANGED_CB(WRITE8(taito_en_device, mb87078_gain_changed))
+ MCFG_DEVICE_ADD("dpram", MB8421, 0) // host accesses this from the other side
+
/* sound hardware */
MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker")
MCFG_SOUND_ADD("ensoniq", ES5505, XTAL_30_4761MHz / 2)
diff --git a/src/mame/audio/taito_en.h b/src/mame/audio/taito_en.h
index 0fe2d50dee6..f4a1ae3824a 100644
--- a/src/mame/audio/taito_en.h
+++ b/src/mame/audio/taito_en.h
@@ -14,6 +14,7 @@
#include "sound/es5506.h"
#include "machine/mc68681.h"
#include "machine/mb87078.h"
+#include "machine/mb8421.h"
class taito_en_device : public device_t
@@ -21,8 +22,6 @@ class taito_en_device : public device_t
public:
taito_en_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
- DECLARE_READ8_MEMBER( en_68000_share_r );
- DECLARE_WRITE8_MEMBER( en_68000_share_w );
DECLARE_WRITE16_MEMBER( en_es5505_bank_w );
DECLARE_WRITE8_MEMBER( en_volume_w );
@@ -42,7 +41,6 @@ private:
required_device<es5505_device> m_ensoniq;
required_device<mc68681_device> m_duart68681;
required_device<mb87078_device> m_mb87078;
- required_shared_ptr<uint32_t> m_snd_shared_ram;
//todo: hook up cpu/es5510
uint16_t m_es5510_dsp_ram[0x200];
diff --git a/src/mame/drivers/galastrm.cpp b/src/mame/drivers/galastrm.cpp
index 4309d745833..b6dd127ef72 100644
--- a/src/mame/drivers/galastrm.cpp
+++ b/src/mame/drivers/galastrm.cpp
@@ -141,7 +141,7 @@ static ADDRESS_MAP_START( galastrm_map, AS_PROGRAM, 32, galastrm_state )
AM_RANGE(0x400000, 0x400007) AM_DEVREADWRITE8("tc0510nio", tc0510nio_device, read, write, 0xffffffff)
AM_RANGE(0x40fff0, 0x40fff3) AM_WRITENOP
AM_RANGE(0x500000, 0x500007) AM_READWRITE(galastrm_adstick_ctrl_r, galastrm_adstick_ctrl_w)
- AM_RANGE(0x600000, 0x6007ff) AM_RAM AM_SHARE("snd_shared") /* Sound shared ram */
+ AM_RANGE(0x600000, 0x6007ff) AM_DEVREADWRITE8("taito_en:dpram", mb8421_device, left_r, left_w, 0xffffffff) /* Sound shared ram */
AM_RANGE(0x800000, 0x80ffff) AM_DEVREADWRITE("tc0480scp", tc0480scp_device, long_r, long_w) /* tilemaps */
AM_RANGE(0x830000, 0x83002f) AM_DEVREADWRITE("tc0480scp", tc0480scp_device, ctrl_long_r, ctrl_long_w)
AM_RANGE(0x900000, 0x900003) AM_WRITE(galastrm_palette_w) /* TC0110PCR */
diff --git a/src/mame/drivers/groundfx.cpp b/src/mame/drivers/groundfx.cpp
index e7d589c8878..34ca7fa2787 100644
--- a/src/mame/drivers/groundfx.cpp
+++ b/src/mame/drivers/groundfx.cpp
@@ -163,7 +163,7 @@ static ADDRESS_MAP_START( groundfx_map, AS_PROGRAM, 32, groundfx_state )
AM_RANGE(0x400000, 0x400003) AM_WRITE(motor_control_w) /* gun vibration */
AM_RANGE(0x500000, 0x500007) AM_DEVREADWRITE8("tc0510nio", tc0510nio_device, read, write, 0xffffffff)
AM_RANGE(0x600000, 0x600003) AM_READWRITE(adc_r, adc_w)
- AM_RANGE(0x700000, 0x7007ff) AM_RAM AM_SHARE("snd_shared")
+ AM_RANGE(0x700000, 0x7007ff) AM_DEVREADWRITE8("taito_en:dpram", mb8421_device, left_r, left_w, 0xffffffff)
AM_RANGE(0x800000, 0x80ffff) AM_DEVREADWRITE("tc0480scp", tc0480scp_device, long_r, long_w) /* tilemaps */
AM_RANGE(0x830000, 0x83002f) AM_DEVREADWRITE("tc0480scp", tc0480scp_device, ctrl_long_r, ctrl_long_w) // debugging
AM_RANGE(0x900000, 0x90ffff) AM_DEVREADWRITE("tc0100scn", tc0100scn_device, long_r, long_w) /* 6bpp tilemaps */
diff --git a/src/mame/drivers/gunbustr.cpp b/src/mame/drivers/gunbustr.cpp
index 1fea54047d7..eb683567825 100644
--- a/src/mame/drivers/gunbustr.cpp
+++ b/src/mame/drivers/gunbustr.cpp
@@ -120,7 +120,7 @@ static ADDRESS_MAP_START( gunbustr_map, AS_PROGRAM, 32, gunbustr_state )
AM_RANGE(0x200000, 0x21ffff) AM_RAM AM_SHARE("ram") /* main CPUA ram */
AM_RANGE(0x300000, 0x301fff) AM_RAM AM_SHARE("spriteram") /* Sprite ram */
AM_RANGE(0x380000, 0x380003) AM_WRITE(motor_control_w) /* motor, lamps etc. */
- AM_RANGE(0x390000, 0x3907ff) AM_RAM AM_SHARE("snd_shared") /* Sound shared ram */
+ AM_RANGE(0x390000, 0x3907ff) AM_DEVREADWRITE8("taito_en:dpram", mb8421_device, left_r, left_w, 0xffffffff) /* Sound shared ram */
AM_RANGE(0x400000, 0x400007) AM_DEVREADWRITE8("tc0510nio", tc0510nio_device, read, write, 0xffffffff)
AM_RANGE(0x500000, 0x500003) AM_READWRITE(gunbustr_gun_r, gunbustr_gun_w) /* gun coord read */
AM_RANGE(0x800000, 0x80ffff) AM_DEVREADWRITE("tc0480scp", tc0480scp_device, long_r, long_w)
diff --git a/src/mame/drivers/superchs.cpp b/src/mame/drivers/superchs.cpp
index 7a89a17cb83..6143e1d68dc 100644
--- a/src/mame/drivers/superchs.cpp
+++ b/src/mame/drivers/superchs.cpp
@@ -139,7 +139,7 @@ static ADDRESS_MAP_START( superchs_map, AS_PROGRAM, 32, superchs_state )
AM_RANGE(0x200000, 0x20ffff) AM_RAM AM_SHARE("shared_ram")
AM_RANGE(0x240000, 0x240003) AM_WRITE(cpua_ctrl_w)
AM_RANGE(0x280000, 0x287fff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette")
- AM_RANGE(0x2c0000, 0x2c07ff) AM_RAM AM_SHARE("snd_shared")
+ AM_RANGE(0x2c0000, 0x2c07ff) AM_DEVREADWRITE8("taito_en:dpram", mb8421_device, left_r, left_w, 0xffffffff)
AM_RANGE(0x300000, 0x300007) AM_DEVREADWRITE8("tc0510nio", tc0510nio_device, read, write, 0xffffffff)
AM_RANGE(0x340000, 0x340003) AM_READWRITE(superchs_stick_r, superchs_stick_w) /* stick int request */
ADDRESS_MAP_END
diff --git a/src/mame/drivers/taito_f3.cpp b/src/mame/drivers/taito_f3.cpp
index 4b5a8c1d904..e15eef1a01b 100644
--- a/src/mame/drivers/taito_f3.cpp
+++ b/src/mame/drivers/taito_f3.cpp
@@ -201,7 +201,7 @@ static ADDRESS_MAP_START( f3_map, AS_PROGRAM, 32, taito_f3_state )
AM_RANGE(0x630000, 0x63ffff) AM_READWRITE16(f3_pivot_r,f3_pivot_w,0xffffffff) //AM_SHARE("f3_pivot_ram")
AM_RANGE(0x660000, 0x66000f) AM_WRITE16(f3_control_0_w,0xffffffff)
AM_RANGE(0x660010, 0x66001f) AM_WRITE16(f3_control_1_w,0xffffffff)
- AM_RANGE(0xc00000, 0xc007ff) AM_RAM AM_SHARE("snd_shared")
+ AM_RANGE(0xc00000, 0xc007ff) AM_DEVREADWRITE8("taito_en:dpram", mb8421_device, left_r, left_w, 0xffffffff)
AM_RANGE(0xc80000, 0xc80003) AM_WRITE(f3_sound_reset_0_w)
AM_RANGE(0xc80100, 0xc80103) AM_WRITE(f3_sound_reset_1_w)
ADDRESS_MAP_END
diff --git a/src/mame/drivers/taitojc.cpp b/src/mame/drivers/taitojc.cpp
index da3aedfb670..f0d8a625da3 100644
--- a/src/mame/drivers/taitojc.cpp
+++ b/src/mame/drivers/taitojc.cpp
@@ -587,33 +587,6 @@ WRITE8_MEMBER(taitojc_state::mcu_comm_w)
}
}
-READ32_MEMBER(taitojc_state::snd_share_r)
-{
- switch (offset & 3)
- {
- case 0: return (m_snd_shared_ram[(offset/4)] << 0) & 0xff000000;
- case 1: return (m_snd_shared_ram[(offset/4)] << 8) & 0xff000000;
- case 2: return (m_snd_shared_ram[(offset/4)] << 16) & 0xff000000;
- case 3: return (m_snd_shared_ram[(offset/4)] << 24) & 0xff000000;
- }
-
- return 0;
-}
-
-WRITE32_MEMBER(taitojc_state::snd_share_w)
-{
- if (ACCESSING_BITS_24_31)
- {
- switch (offset & 3)
- {
- case 0: m_snd_shared_ram[(offset/4)] &= ~0xff000000; m_snd_shared_ram[(offset/4)] |= (data >> 0 & 0xff000000); break;
- case 1: m_snd_shared_ram[(offset/4)] &= ~0x00ff0000; m_snd_shared_ram[(offset/4)] |= (data >> 8 & 0x00ff0000); break;
- case 2: m_snd_shared_ram[(offset/4)] &= ~0x0000ff00; m_snd_shared_ram[(offset/4)] |= (data >> 16 & 0x0000ff00); break;
- case 3: m_snd_shared_ram[(offset/4)] &= ~0x000000ff; m_snd_shared_ram[(offset/4)] |= (data >> 24 & 0x000000ff); break;
- }
- }
-}
-
READ8_MEMBER(taitojc_state::jc_pcbid_r)
{
@@ -658,7 +631,7 @@ static ADDRESS_MAP_START( taitojc_map, AS_PROGRAM, 32, taitojc_state )
AM_RANGE(0x06600000, 0x0660001f) AM_DEVREADWRITE8("tc0640fio", tc0640fio_device, read, write, 0xff000000)
AM_RANGE(0x0660004c, 0x0660004f) AM_WRITE_PORT("EEPROMOUT")
AM_RANGE(0x06800000, 0x06800003) AM_WRITE8(jc_irq_unk_w, 0x00ff0000)
- AM_RANGE(0x06a00000, 0x06a01fff) AM_READWRITE(snd_share_r, snd_share_w) AM_SHARE("snd_shared")
+ AM_RANGE(0x06a00000, 0x06a01fff) AM_DEVREADWRITE8("taito_en:dpram", mb8421_device, left_r, left_w, 0xff000000)
AM_RANGE(0x06c00000, 0x06c0001f) AM_READWRITE8(jc_lan_r, jc_lan_w, 0x00ff0000)
AM_RANGE(0x08000000, 0x080fffff) AM_RAM AM_SHARE("main_ram")
AM_RANGE(0x10001ff8, 0x10001ffb) AM_READ16(dsp_to_main_7fe_r, 0xffff0000)
diff --git a/src/mame/drivers/undrfire.cpp b/src/mame/drivers/undrfire.cpp
index fe69201c5b7..0be89ac8e45 100644
--- a/src/mame/drivers/undrfire.cpp
+++ b/src/mame/drivers/undrfire.cpp
@@ -408,7 +408,7 @@ static ADDRESS_MAP_START( undrfire_map, AS_PROGRAM, 32, undrfire_state )
AM_RANGE(0x400000, 0x400003) AM_WRITE(motor_control_w) /* gun vibration */
AM_RANGE(0x500000, 0x500007) AM_DEVREADWRITE8("tc0510nio", tc0510nio_device, read, write, 0xffffffff)
AM_RANGE(0x600000, 0x600007) AM_READWRITE(unknown_hardware_r, unknown_int_req_w) /* int request for unknown hardware */
- AM_RANGE(0x700000, 0x7007ff) AM_RAM AM_SHARE("snd_shared")
+ AM_RANGE(0x700000, 0x7007ff) AM_DEVREADWRITE8("taito_en:dpram", mb8421_device, left_r, left_w, 0xffffffff)
AM_RANGE(0x800000, 0x80ffff) AM_DEVREADWRITE("tc0480scp", tc0480scp_device, long_r, long_w) /* tilemaps */
AM_RANGE(0x830000, 0x83002f) AM_DEVREADWRITE("tc0480scp", tc0480scp_device, ctrl_long_r, ctrl_long_w)
AM_RANGE(0x900000, 0x90ffff) AM_DEVREADWRITE("tc0100scn", tc0100scn_device, long_r, long_w) /* 6bpp tilemaps */
@@ -427,7 +427,7 @@ static ADDRESS_MAP_START( cbombers_cpua_map, AS_PROGRAM, 32, undrfire_state )
AM_RANGE(0x400000, 0x400003) AM_WRITE(cbombers_cpua_ctrl_w)
AM_RANGE(0x500000, 0x500007) AM_DEVREADWRITE8("tc0510nio", tc0510nio_device, read, write, 0xffffffff)
AM_RANGE(0x600000, 0x600007) AM_READ(cbombers_adc_r) AM_WRITE8(cbombers_adc_w,0xffffffff)
- AM_RANGE(0x700000, 0x7007ff) AM_RAM AM_SHARE("snd_shared")
+ AM_RANGE(0x700000, 0x7007ff) AM_DEVREADWRITE8("taito_en:dpram", mb8421_device, left_r, left_w, 0xffffffff)
AM_RANGE(0x800000, 0x80ffff) AM_DEVREADWRITE("tc0480scp", tc0480scp_device, long_r, long_w) /* tilemaps */
AM_RANGE(0x830000, 0x83002f) AM_DEVREADWRITE("tc0480scp", tc0480scp_device, ctrl_long_r, ctrl_long_w)
AM_RANGE(0x900000, 0x90ffff) AM_DEVREADWRITE("tc0100scn", tc0100scn_device, long_r, long_w) /* 6bpp tilemaps */
diff --git a/src/mame/includes/taitojc.h b/src/mame/includes/taitojc.h
index a2ca0a71585..c01f0b4376a 100644
--- a/src/mame/includes/taitojc.h
+++ b/src/mame/includes/taitojc.h
@@ -21,7 +21,6 @@ public:
m_gfx2(*this, "gfx2"),
m_vram(*this, "vram"),
m_objlist(*this, "objlist"),
- m_snd_shared_ram(*this, "snd_shared"),
m_main_ram(*this, "main_ram"),
m_dsp_shared_ram(*this, "dsp_shared"),
m_palette_ram(*this, "palette_ram"),
@@ -44,7 +43,6 @@ public:
required_shared_ptr<uint32_t> m_vram;
required_shared_ptr<uint32_t> m_objlist;
- required_shared_ptr<uint32_t> m_snd_shared_ram;
required_shared_ptr<uint32_t> m_main_ram;
required_shared_ptr<uint16_t> m_dsp_shared_ram;
required_shared_ptr<uint32_t> m_palette_ram;
@@ -84,8 +82,6 @@ public:
DECLARE_READ8_MEMBER(mcu_comm_r);
DECLARE_WRITE8_MEMBER(mcu_comm_w);
- DECLARE_READ32_MEMBER(snd_share_r);
- DECLARE_WRITE32_MEMBER(snd_share_w);
DECLARE_READ8_MEMBER(jc_pcbid_r);
DECLARE_READ8_MEMBER(jc_lan_r);
DECLARE_WRITE8_MEMBER(jc_lan_w);