Partially revert 09466d3382 due to crashes (nw)

This commit is contained in:
AJR 2018-08-02 18:11:28 -04:00
parent 781f17725a
commit 88943f6dfc
12 changed files with 112 additions and 69 deletions

View File

@ -170,18 +170,18 @@ IRQ_CALLBACK_MEMBER(seibu_sound_device::im0_vector_cb)
} }
void seibu_sound_device::irq_clear_w(u8) WRITE8_MEMBER( seibu_sound_device::irq_clear_w )
{ {
/* Denjin Makai and SD Gundam doesn't like this, it's tied to the rst18 ack ONLY so it could be related to it. */ /* Denjin Makai and SD Gundam doesn't like this, it's tied to the rst18 ack ONLY so it could be related to it. */
//update_irq_lines(VECTOR_INIT); //update_irq_lines(VECTOR_INIT);
} }
void seibu_sound_device::rst10_ack_w(u8) WRITE8_MEMBER( seibu_sound_device::rst10_ack_w )
{ {
/* Unused for now */ /* Unused for now */
} }
void seibu_sound_device::rst18_ack_w(u8) WRITE8_MEMBER( seibu_sound_device::rst18_ack_w )
{ {
update_irq_lines(RST18_CLEAR); update_irq_lines(RST18_CLEAR);
} }
@ -191,51 +191,51 @@ WRITE_LINE_MEMBER( seibu_sound_device::fm_irqhandler )
update_irq_lines(state ? RST10_ASSERT : RST10_CLEAR); update_irq_lines(state ? RST10_ASSERT : RST10_CLEAR);
} }
u8 seibu_sound_device::ym_r(offs_t offset) READ8_MEMBER( seibu_sound_device::ym_r )
{ {
return m_ym_read_cb(offset); return m_ym_read_cb(offset);
} }
void seibu_sound_device::ym_w(offs_t offset, u8 data) WRITE8_MEMBER( seibu_sound_device::ym_w )
{ {
m_ym_write_cb(offset, data); m_ym_write_cb(offset, data);
} }
void seibu_sound_device::bank_w(u8 data) WRITE8_MEMBER( seibu_sound_device::bank_w )
{ {
if (m_rom_bank.found()) if (m_rom_bank.found())
m_rom_bank->set_entry(data & 1); m_rom_bank->set_entry(data & 1);
} }
void seibu_sound_device::coin_w(u8 data) WRITE8_MEMBER( seibu_sound_device::coin_w )
{ {
machine().bookkeeping().coin_counter_w(0, data & 1); machine().bookkeeping().coin_counter_w(0, data & 1);
machine().bookkeeping().coin_counter_w(1, data & 2); machine().bookkeeping().coin_counter_w(1, data & 2);
} }
u8 seibu_sound_device::soundlatch_r(offs_t offset) READ8_MEMBER( seibu_sound_device::soundlatch_r )
{ {
return m_main2sub[offset]; return m_main2sub[offset];
} }
u8 seibu_sound_device::main_data_pending_r() READ8_MEMBER( seibu_sound_device::main_data_pending_r )
{ {
return m_sub2main_pending ? 1 : 0; return m_sub2main_pending ? 1 : 0;
} }
void seibu_sound_device::main_data_w(offs_t offset, u8 data) WRITE8_MEMBER( seibu_sound_device::main_data_w )
{ {
m_sub2main[offset] = data; m_sub2main[offset] = data;
} }
void seibu_sound_device::pending_w(u8) WRITE8_MEMBER( seibu_sound_device::pending_w )
{ {
/* just a guess */ /* just a guess */
m_main2sub_pending = 0; m_main2sub_pending = 0;
m_sub2main_pending = 1; m_sub2main_pending = 1;
} }
u8 seibu_sound_device::main_r(offs_t offset) READ8_MEMBER( seibu_sound_device::main_r )
{ {
//logerror("%s: seibu_main_r(%x)\n",machine().describe_context(),offset); //logerror("%s: seibu_main_r(%x)\n",machine().describe_context(),offset);
switch (offset) switch (offset)
@ -251,7 +251,7 @@ u8 seibu_sound_device::main_r(offs_t offset)
} }
} }
void seibu_sound_device::main_w(offs_t offset, u8 data) WRITE8_MEMBER( seibu_sound_device::main_w )
{ {
switch (offset) switch (offset)
{ {
@ -275,7 +275,7 @@ void seibu_sound_device::main_w(offs_t offset, u8 data)
} }
// used only by NMK16 bootlegs // used only by NMK16 bootlegs
void seibu_sound_device::main_mustb_w(offs_t, u16 data, u16 mem_mask) WRITE16_MEMBER( seibu_sound_device::main_mustb_w )
{ {
if (ACCESSING_BITS_0_7) if (ACCESSING_BITS_0_7)
m_main2sub[0] = data & 0xff; m_main2sub[0] = data & 0xff;
@ -318,7 +318,7 @@ sei80bu_device::sei80bu_device(const machine_config &mconfig, const char *tag, d
{ {
} }
u8 sei80bu_device::data_r(offs_t offset) READ8_MEMBER(sei80bu_device::data_r)
{ {
u16 a = offset; u16 a = offset;
u8 src = read_byte(offset); u8 src = read_byte(offset);
@ -335,7 +335,7 @@ u8 sei80bu_device::data_r(offs_t offset)
return src; return src;
} }
u8 sei80bu_device::opcode_r(offs_t offset) READ8_MEMBER(sei80bu_device::opcode_r)
{ {
u16 a = offset; u16 a = offset;
u8 src = read_byte(offset); u8 src = read_byte(offset);
@ -406,7 +406,7 @@ void seibu_adpcm_device::decrypt()
} }
} }
void seibu_adpcm_device::adr_w(offs_t offset, u8 data) WRITE8_MEMBER( seibu_adpcm_device::adr_w )
{ {
if (m_stream) if (m_stream)
m_stream->update(); m_stream->update();
@ -422,7 +422,7 @@ void seibu_adpcm_device::adr_w(offs_t offset, u8 data)
} }
} }
void seibu_adpcm_device::ctl_w(u8 data) WRITE8_MEMBER( seibu_adpcm_device::ctl_w )
{ {
// sequence is 00 02 01 each time. // sequence is 00 02 01 each time.
if (m_stream) if (m_stream)

View File

@ -51,21 +51,21 @@ public:
template<class Object> devcb_base &set_ym_read_callback(Object &&object) { return m_ym_read_cb.set_callback(std::forward<Object>(object)); } template<class Object> devcb_base &set_ym_read_callback(Object &&object) { return m_ym_read_cb.set_callback(std::forward<Object>(object)); }
template<class Object> devcb_base &set_ym_write_callback(Object &&object) { return m_ym_write_cb.set_callback(std::forward<Object>(object)); } template<class Object> devcb_base &set_ym_write_callback(Object &&object) { return m_ym_write_cb.set_callback(std::forward<Object>(object)); }
u8 main_r(offs_t offset); DECLARE_READ8_MEMBER( main_r );
void main_w(offs_t offset, u8 data); DECLARE_WRITE8_MEMBER( main_w );
void main_mustb_w(offs_t, u16 data, u16 mem_mask); DECLARE_WRITE16_MEMBER( main_mustb_w );
void irq_clear_w(u8); DECLARE_WRITE8_MEMBER( irq_clear_w );
void rst10_ack_w(u8); DECLARE_WRITE8_MEMBER( rst10_ack_w );
void rst18_ack_w(u8); DECLARE_WRITE8_MEMBER( rst18_ack_w );
u8 ym_r(offs_t offset); DECLARE_READ8_MEMBER( ym_r );
void ym_w(offs_t offset, u8 data); DECLARE_WRITE8_MEMBER( ym_w );
void bank_w(u8 data); DECLARE_WRITE8_MEMBER( bank_w );
void coin_w(u8 data); DECLARE_WRITE8_MEMBER( coin_w );
WRITE_LINE_MEMBER( fm_irqhandler ); WRITE_LINE_MEMBER( fm_irqhandler );
u8 soundlatch_r(offs_t offset); DECLARE_READ8_MEMBER( soundlatch_r );
u8 main_data_pending_r(); DECLARE_READ8_MEMBER( main_data_pending_r );
void main_data_w(offs_t offset, u8 data); DECLARE_WRITE8_MEMBER( main_data_w );
void pending_w(u8); DECLARE_WRITE8_MEMBER( pending_w );
IRQ_CALLBACK_MEMBER(im0_vector_cb); IRQ_CALLBACK_MEMBER(im0_vector_cb);
@ -113,8 +113,8 @@ class sei80bu_device : public device_t, public device_rom_interface
public: public:
sei80bu_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); sei80bu_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
u8 data_r(offs_t offset); DECLARE_READ8_MEMBER(data_r);
u8 opcode_r(offs_t offset); DECLARE_READ8_MEMBER(opcode_r);
protected: protected:
// device-level overrides // device-level overrides
@ -134,8 +134,8 @@ public:
~seibu_adpcm_device() {} ~seibu_adpcm_device() {}
void decrypt(); void decrypt();
void adr_w(offs_t offset, u8 data); DECLARE_WRITE8_MEMBER( adr_w );
void ctl_w(u8 data); DECLARE_WRITE8_MEMBER( ctl_w );
protected: protected:
// device-level overrides // device-level overrides

View File

@ -184,9 +184,9 @@ void bloodbro_state::skysmash_map(address_map &map)
map(0xc0000, 0xc004f).rw("crtc", FUNC(seibu_crtc_device::read_alt), FUNC(seibu_crtc_device::write_alt)); map(0xc0000, 0xc004f).rw("crtc", FUNC(seibu_crtc_device::read_alt), FUNC(seibu_crtc_device::write_alt));
} }
void bloodbro_state::weststry_soundlatch_w(offs_t offset, u8 data) WRITE8_MEMBER(bloodbro_state::weststry_soundlatch_w)
{ {
m_seibu_sound->main_w(offset, data); m_seibu_sound->main_w(space, offset, data, mem_mask);
if (offset == 1) if (offset == 1)
m_audiocpu->set_input_line(0, ASSERT_LINE); m_audiocpu->set_input_line(0, ASSERT_LINE);

View File

@ -86,10 +86,10 @@ WRITE16_MEMBER(cabal_state::cabalbl_sndcmd_w)
void cabal_state::sound_irq_trigger_word_w(offs_t, u16 data, u16 mem_mask) WRITE16_MEMBER(cabal_state::sound_irq_trigger_word_w)
{ {
if (ACCESSING_BITS_0_7) if (ACCESSING_BITS_0_7)
m_seibu_sound->main_w(4, data & 0x00ff); m_seibu_sound->main_w(space, 4, data & 0x00ff);
/* spin for a while to let the Z80 read the command, otherwise coins "stick" */ /* spin for a while to let the Z80 read the command, otherwise coins "stick" */
m_maincpu->spin_until_time(attotime::from_usec(50)); m_maincpu->spin_until_time(attotime::from_usec(50));

View File

@ -29,13 +29,13 @@
/***************************************************************************/ /***************************************************************************/
u8 dcon_state::sdgndmps_sound_comms_r(offs_t offset) READ8_MEMBER(dcon_state::sdgndmps_sound_comms_r)
{ {
// Routine at 134C sends no sound commands if lowest bit is 0 // Routine at 134C sends no sound commands if lowest bit is 0
if (offset == 5) // ($a000a) if (offset == 5) // ($a000a)
return 1; return 1;
return m_seibu_sound->main_r(offset); return m_seibu_sound->main_r(space, offset);
} }
void dcon_state::dcon_map(address_map &map) void dcon_state::dcon_map(address_map &map)

View File

@ -94,13 +94,13 @@ Preliminary COP MCU memory map
/*****************************************************************************/ /*****************************************************************************/
u8 legionna_state::denjinmk_sound_comms_r(offs_t offset) READ8_MEMBER(legionna_state::denjinmk_sound_comms_r)
{ {
// Routine at 5FDC spins indefinitely until the lowest bit becomes 1 // Routine at 5FDC spins indefinitely until the lowest bit becomes 1
if (offset == 10) // ($100714) if (offset == 10) // ($100714)
return 1; return 1;
return m_seibu_sound->main_r((offset >> 1) & 7); return m_seibu_sound->main_r(space, (offset >> 1) & 7);
} }
void legionna_state::legionna_cop_map(address_map &map) void legionna_state::legionna_cop_map(address_map &map)
@ -189,8 +189,12 @@ void legionna_state::legionna_map(address_map &map)
map(0x100600, 0x10064f).rw(m_crtc, FUNC(seibu_crtc_device::read), FUNC(seibu_crtc_device::write)); map(0x100600, 0x10064f).rw(m_crtc, FUNC(seibu_crtc_device::read), FUNC(seibu_crtc_device::write));
map(0x100680, 0x100681).nopw(); // irq ack? map(0x100680, 0x100681).nopw(); // irq ack?
map(0x100700, 0x10071f).lrw8("seibu_sound_rw", map(0x100700, 0x10071f).lrw8("seibu_sound_rw",
[this](offs_t offset) { return m_seibu_sound->main_r(offset >> 1); }, [this](address_space &space, offs_t offset, u8 mem_mask) {
[this](offs_t offset, u8 data) { m_seibu_sound->main_w(offset >> 1, data); }).umask16(0x00ff); return m_seibu_sound->main_r(space, offset >> 1, mem_mask);
},
[this](address_space &space, offs_t offset, u8 data, u8 mem_mask) {
m_seibu_sound->main_w(space, offset >> 1, data, mem_mask);
}).umask16(0x00ff);
map(0x100740, 0x100741).portr("DSW1"); map(0x100740, 0x100741).portr("DSW1");
map(0x100744, 0x100745).portr("PLAYERS12"); map(0x100744, 0x100745).portr("PLAYERS12");
map(0x100748, 0x100749).portr("PLAYERS34"); map(0x100748, 0x100749).portr("PLAYERS34");
@ -219,8 +223,12 @@ void legionna_state::heatbrl_map(address_map &map)
map(0x100748, 0x100749).portr("PLAYERS34"); map(0x100748, 0x100749).portr("PLAYERS34");
map(0x10074c, 0x10074d).portr("SYSTEM"); map(0x10074c, 0x10074d).portr("SYSTEM");
map(0x1007c0, 0x1007df).lrw8("seibu_sound_rw", map(0x1007c0, 0x1007df).lrw8("seibu_sound_rw",
[this](offs_t offset) { return m_seibu_sound->main_r(offset >> 1); }, [this](address_space &space, offs_t offset, u8 mem_mask) {
[this](offs_t offset, u8 data) { m_seibu_sound->main_w(offset >> 1, data); }).umask16(0x00ff); return m_seibu_sound->main_r(space, offset >> 1, mem_mask);
},
[this](address_space &space, offs_t offset, u8 data, u8 mem_mask) {
m_seibu_sound->main_w(space, offset >> 1, data, mem_mask);
}).umask16(0x00ff);
map(0x100800, 0x100fff).ram(); // .w(FUNC(legionna_state::legionna_background_w)).share("back_data"); map(0x100800, 0x100fff).ram(); // .w(FUNC(legionna_state::legionna_background_w)).share("back_data");
map(0x101000, 0x1017ff).ram(); // .w(FUNC(legionna_state::legionna_foreground_w).share("fore_data"); map(0x101000, 0x1017ff).ram(); // .w(FUNC(legionna_state::legionna_foreground_w).share("fore_data");
map(0x101800, 0x101fff).ram(); // .w(FUNC(legionna_state::legionna_midground_w).share("mid_data"); map(0x101800, 0x101fff).ram(); // .w(FUNC(legionna_state::legionna_midground_w).share("mid_data");
@ -239,8 +247,12 @@ void legionna_state::godzilla_map(address_map &map)
map(0x100600, 0x10064f).rw(m_crtc, FUNC(seibu_crtc_device::read), FUNC(seibu_crtc_device::write)); map(0x100600, 0x10064f).rw(m_crtc, FUNC(seibu_crtc_device::read), FUNC(seibu_crtc_device::write));
map(0x100680, 0x100681).nopw(); // irq ack? map(0x100680, 0x100681).nopw(); // irq ack?
map(0x100700, 0x10071f).lrw8("seibu_sound_rw", map(0x100700, 0x10071f).lrw8("seibu_sound_rw",
[this](offs_t offset) { return m_seibu_sound->main_r(offset >> 1); }, [this](address_space &space, offs_t offset, u8 mem_mask) {
[this](offs_t offset, u8 data) { m_seibu_sound->main_w(offset >> 1, data); }).umask16(0x00ff); return m_seibu_sound->main_r(space, offset >> 1, mem_mask);
},
[this](address_space &space, offs_t offset, u8 data, u8 mem_mask) {
m_seibu_sound->main_w(space, offset >> 1, data, mem_mask);
}).umask16(0x00ff);
map(0x100740, 0x100741).portr("DSW1"); map(0x100740, 0x100741).portr("DSW1");
map(0x100744, 0x100745).portr("PLAYERS12"); map(0x100744, 0x100745).portr("PLAYERS12");
map(0x100748, 0x100749).portr("PLAYERS34"); map(0x100748, 0x100749).portr("PLAYERS34");
@ -294,7 +306,10 @@ void legionna_state::denjinmk_map(address_map &map)
map(0x100600, 0x10064f).rw(m_crtc, FUNC(seibu_crtc_device::read), FUNC(seibu_crtc_device::write)); map(0x100600, 0x10064f).rw(m_crtc, FUNC(seibu_crtc_device::read), FUNC(seibu_crtc_device::write));
map(0x100680, 0x100681).nopw(); // irq ack? map(0x100680, 0x100681).nopw(); // irq ack?
map(0x100700, 0x10071f).r(FUNC(legionna_state::denjinmk_sound_comms_r)) map(0x100700, 0x10071f).r(FUNC(legionna_state::denjinmk_sound_comms_r))
.lw8("seibu_sound_w", [this](offs_t offset, u8 data) { m_seibu_sound->main_w(offset >> 1, data); }).umask16(0x00ff); .lw8("seibu_sound_w",
[this](address_space &space, offs_t offset, u8 data, u8 mem_mask) {
m_seibu_sound->main_w(space, offset >> 1, data, mem_mask);
}).umask16(0x00ff);
map(0x100740, 0x100741).portr("DSW1"); map(0x100740, 0x100741).portr("DSW1");
map(0x100744, 0x100745).portr("PLAYERS12"); map(0x100744, 0x100745).portr("PLAYERS12");
map(0x100748, 0x100749).portr("PLAYERS34"); map(0x100748, 0x100749).portr("PLAYERS34");
@ -322,8 +337,12 @@ void legionna_state::grainbow_map(address_map &map)
map(0x100600, 0x10064f).rw(m_crtc, FUNC(seibu_crtc_device::read), FUNC(seibu_crtc_device::write)); map(0x100600, 0x10064f).rw(m_crtc, FUNC(seibu_crtc_device::read), FUNC(seibu_crtc_device::write));
map(0x100680, 0x100681).nopw(); // irq ack? map(0x100680, 0x100681).nopw(); // irq ack?
map(0x100700, 0x10071f).lrw8("seibu_sound_rw", map(0x100700, 0x10071f).lrw8("seibu_sound_rw",
[this](offs_t offset) { return m_seibu_sound->main_r(offset >> 1); }, [this](address_space &space, offs_t offset, u8 mem_mask) {
[this](offs_t offset, u8 data) { m_seibu_sound->main_w(offset >> 1, data); }).umask16(0x00ff); return m_seibu_sound->main_r(space, offset >> 1, mem_mask);
},
[this](address_space &space, offs_t offset, u8 data, u8 mem_mask) {
m_seibu_sound->main_w(space, offset >> 1, data, mem_mask);
}).umask16(0x00ff);
map(0x100740, 0x100741).portr("DSW1"); map(0x100740, 0x100741).portr("DSW1");
map(0x100744, 0x100745).portr("PLAYERS12"); map(0x100744, 0x100745).portr("PLAYERS12");
map(0x100748, 0x100749).portr("PLAYERS34"); map(0x100748, 0x100749).portr("PLAYERS34");
@ -349,8 +368,12 @@ void legionna_state::cupsoc_map(address_map &map)
map(0x100600, 0x10064f).rw(m_crtc, FUNC(seibu_crtc_device::read), FUNC(seibu_crtc_device::write)); map(0x100600, 0x10064f).rw(m_crtc, FUNC(seibu_crtc_device::read), FUNC(seibu_crtc_device::write));
map(0x100680, 0x100681).nopw(); // irq ack? map(0x100680, 0x100681).nopw(); // irq ack?
map(0x100700, 0x10071f).lrw8("seibu_sound_rw", map(0x100700, 0x10071f).lrw8("seibu_sound_rw",
[this](offs_t offset) { return m_seibu_sound->main_r(offset >> 1); }, [this](address_space &space, offs_t offset, u8 mem_mask) {
[this](offs_t offset, u8 data) { m_seibu_sound->main_w(offset >> 1, data); }).umask16(0x00ff); return m_seibu_sound->main_r(space, offset >> 1, mem_mask);
},
[this](address_space &space, offs_t offset, u8 data, u8 mem_mask) {
m_seibu_sound->main_w(space, offset >> 1, data, mem_mask);
}).umask16(0x00ff);
map(0x100740, 0x100741).portr("DSW1"); map(0x100740, 0x100741).portr("DSW1");
map(0x100744, 0x100745).portr("PLAYERS12"); map(0x100744, 0x100745).portr("PLAYERS12");
map(0x100748, 0x100749).portr("PLAYERS34"); map(0x100748, 0x100749).portr("PLAYERS34");
@ -390,8 +413,12 @@ void legionna_state::cupsocs_map(address_map &map)
map(0x10070c, 0x10070d).portr("SYSTEM"); map(0x10070c, 0x10070d).portr("SYSTEM");
map(0x10071c, 0x10071d).portr("DSW2"); map(0x10071c, 0x10071d).portr("DSW2");
map(0x100740, 0x10075f).lrw8("seibu_sound_rw", map(0x100740, 0x10075f).lrw8("seibu_sound_rw",
[this](offs_t offset) { return m_seibu_sound->main_r(offset >> 1); }, [this](address_space &space, offs_t offset, u8 mem_mask) {
[this](offs_t offset, u8 data) { m_seibu_sound->main_w(offset >> 1, data); }).umask16(0x00ff); return m_seibu_sound->main_r(space, offset >> 1, mem_mask);
},
[this](address_space &space, offs_t offset, u8 data, u8 mem_mask) {
m_seibu_sound->main_w(space, offset >> 1, data, mem_mask);
}).umask16(0x00ff);
map(0x100800, 0x100fff).ram(); // .w(FUNC(legionna_state::legionna_background_w)).share("back_data"); map(0x100800, 0x100fff).ram(); // .w(FUNC(legionna_state::legionna_background_w)).share("back_data");
map(0x101000, 0x1017ff).ram(); // .w(FUNC(legionna_state::legionna_foreground_w).share("fore_data"); map(0x101000, 0x1017ff).ram(); // .w(FUNC(legionna_state::legionna_foreground_w).share("fore_data");
map(0x101800, 0x101fff).ram(); // .w(FUNC(legionna_state::legionna_midground_w).share("mid_data"); map(0x101800, 0x101fff).ram(); // .w(FUNC(legionna_state::legionna_midground_w).share("mid_data");

View File

@ -493,8 +493,12 @@ void r2dx_v33_state::nzeroteam_base_map(address_map &map)
// map(0x00762, 0x00763).r(FUNC(r2dx_v33_state::nzerotea_unknown_r)); // map(0x00762, 0x00763).r(FUNC(r2dx_v33_state::nzerotea_unknown_r));
map(0x00780, 0x0079f).lrw8("seibu_sound_rw", map(0x00780, 0x0079f).lrw8("seibu_sound_rw",
[this](offs_t offset) { return m_seibu_sound->main_r(offset >> 1); }, [this](address_space &space, offs_t offset, u8 mem_mask) {
[this](offs_t offset, u8 data) { m_seibu_sound->main_w(offset >> 1, data); }).umask16(0x00ff); return m_seibu_sound->main_r(space, offset >> 1, mem_mask);
},
[this](address_space &space, offs_t offset, u8 data, u8 mem_mask) {
m_seibu_sound->main_w(space, offset >> 1, data, mem_mask);
}).umask16(0x00ff);
map(0x00800, 0x00fff).ram(); map(0x00800, 0x00fff).ram();
map(0x01000, 0x0bfff).ram(); map(0x01000, 0x0bfff).ram();

View File

@ -973,8 +973,12 @@ void raiden2_state::raiden2_mem(address_map &map)
map(0x0068e, 0x0068f).nopw(); //irq ack / sprite buffering? map(0x0068e, 0x0068f).nopw(); //irq ack / sprite buffering?
map(0x00700, 0x0071f).lrw8("seibu_sound_rw", map(0x00700, 0x0071f).lrw8("seibu_sound_rw",
[this](offs_t offset) { return m_seibu_sound->main_r(offset >> 1); }, [this](address_space &space, offs_t offset, u8 mem_mask) {
[this](offs_t offset, u8 data) { m_seibu_sound->main_w(offset >> 1, data); }).umask16(0x00ff); return m_seibu_sound->main_r(space, offset >> 1, mem_mask);
},
[this](address_space &space, offs_t offset, u8 data, u8 mem_mask) {
m_seibu_sound->main_w(space, offset >> 1, data, mem_mask);
}).umask16(0x00ff);
map(0x00740, 0x00741).portr("DSW"); map(0x00740, 0x00741).portr("DSW");
map(0x00744, 0x00745).portr("P1_P2"); map(0x00744, 0x00745).portr("P1_P2");
@ -1018,8 +1022,12 @@ void raiden2_state::zeroteam_mem(address_map &map)
map(0x0068e, 0x0068f).nopw(); // irq ack / sprite buffering? map(0x0068e, 0x0068f).nopw(); // irq ack / sprite buffering?
map(0x00700, 0x0071f).lrw8("seibu_sound_rw", map(0x00700, 0x0071f).lrw8("seibu_sound_rw",
[this](offs_t offset) { return m_seibu_sound->main_r(offset >> 1); }, [this](address_space &space, offs_t offset, u8 mem_mask) {
[this](offs_t offset, u8 data) { m_seibu_sound->main_w(offset >> 1, data); }).umask16(0x00ff); return m_seibu_sound->main_r(space, offset >> 1, mem_mask);
},
[this](address_space &space, offs_t offset, u8 data, u8 mem_mask) {
m_seibu_sound->main_w(space, offset >> 1, data, mem_mask);
}).umask16(0x00ff);
map(0x00740, 0x00741).portr("DSW"); map(0x00740, 0x00741).portr("DSW");
map(0x00744, 0x00745).portr("P1_P2"); map(0x00744, 0x00745).portr("P1_P2");
@ -1052,8 +1060,12 @@ void raiden2_state::xsedae_mem(address_map &map)
map(0x0068e, 0x0068f).nopw(); //irq ack / sprite buffering? map(0x0068e, 0x0068f).nopw(); //irq ack / sprite buffering?
map(0x00700, 0x0071f).lrw8("seibu_sound_rw", map(0x00700, 0x0071f).lrw8("seibu_sound_rw",
[this](offs_t offset) { return m_seibu_sound->main_r(offset >> 1); }, [this](address_space &space, offs_t offset, u8 mem_mask) {
[this](offs_t offset, u8 data) { m_seibu_sound->main_w(offset >> 1, data); }).umask16(0x00ff); return m_seibu_sound->main_r(space, offset >> 1, mem_mask);
},
[this](address_space &space, offs_t offset, u8 data, u8 mem_mask) {
m_seibu_sound->main_w(space, offset >> 1, data, mem_mask);
}).umask16(0x00ff);
map(0x00740, 0x00741).portr("DSW"); map(0x00740, 0x00741).portr("DSW");
map(0x00744, 0x00745).portr("P1_P2"); map(0x00744, 0x00745).portr("P1_P2");

View File

@ -48,7 +48,7 @@ public:
DECLARE_WRITE16_MEMBER(layer_en_w); DECLARE_WRITE16_MEMBER(layer_en_w);
DECLARE_WRITE16_MEMBER(layer_scroll_w); DECLARE_WRITE16_MEMBER(layer_scroll_w);
DECLARE_WRITE16_MEMBER(weststry_layer_scroll_w); DECLARE_WRITE16_MEMBER(weststry_layer_scroll_w);
void weststry_soundlatch_w(offs_t offset, u8 data); DECLARE_WRITE8_MEMBER(weststry_soundlatch_w);
DECLARE_WRITE_LINE_MEMBER(weststry_opl_irq_w); DECLARE_WRITE_LINE_MEMBER(weststry_opl_irq_w);
DECLARE_WRITE8_MEMBER(weststry_opl_w); DECLARE_WRITE8_MEMBER(weststry_opl_w);
DECLARE_WRITE8_MEMBER(weststry_soundnmi_ack_w); DECLARE_WRITE8_MEMBER(weststry_soundnmi_ack_w);

View File

@ -47,7 +47,7 @@ public:
DECLARE_WRITE16_MEMBER(text_videoram_w); DECLARE_WRITE16_MEMBER(text_videoram_w);
// cabal specific // cabal specific
void sound_irq_trigger_word_w(offs_t, u16 data, u16 mem_mask); DECLARE_WRITE16_MEMBER(sound_irq_trigger_word_w);
// cabalbl specific // cabalbl specific
DECLARE_WRITE16_MEMBER(cabalbl_sndcmd_w); DECLARE_WRITE16_MEMBER(cabalbl_sndcmd_w);

View File

@ -44,7 +44,7 @@ private:
uint16_t m_scroll_ram[6]; uint16_t m_scroll_ram[6];
uint16_t m_layer_en; uint16_t m_layer_en;
u8 sdgndmps_sound_comms_r(offs_t offset); DECLARE_READ8_MEMBER(sdgndmps_sound_comms_r);
DECLARE_WRITE16_MEMBER(layer_en_w); DECLARE_WRITE16_MEMBER(layer_en_w);
DECLARE_WRITE16_MEMBER(layer_scroll_w); DECLARE_WRITE16_MEMBER(layer_scroll_w);

View File

@ -80,7 +80,7 @@ private:
DECLARE_WRITE16_MEMBER(legionna_midground_w); DECLARE_WRITE16_MEMBER(legionna_midground_w);
DECLARE_WRITE16_MEMBER(legionna_foreground_w); DECLARE_WRITE16_MEMBER(legionna_foreground_w);
DECLARE_WRITE16_MEMBER(legionna_text_w); DECLARE_WRITE16_MEMBER(legionna_text_w);
u8 denjinmk_sound_comms_r(offs_t offset); DECLARE_READ8_MEMBER(denjinmk_sound_comms_r);
DECLARE_WRITE8_MEMBER(godzilla_oki_bank_w); DECLARE_WRITE8_MEMBER(godzilla_oki_bank_w);
DECLARE_WRITE16_MEMBER(denjinmk_setgfxbank); DECLARE_WRITE16_MEMBER(denjinmk_setgfxbank);
DECLARE_WRITE16_MEMBER(heatbrl_setgfxbank); DECLARE_WRITE16_MEMBER(heatbrl_setgfxbank);