Works now (nw)

This commit is contained in:
Olivier Galibert 2018-08-03 06:39:23 +02:00
parent d6d228f5f1
commit 6418d11c73
12 changed files with 69 additions and 112 deletions

View File

@ -170,18 +170,18 @@ IRQ_CALLBACK_MEMBER(seibu_sound_device::im0_vector_cb)
} }
WRITE8_MEMBER( seibu_sound_device::irq_clear_w ) void seibu_sound_device::irq_clear_w(u8)
{ {
/* 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);
} }
WRITE8_MEMBER( seibu_sound_device::rst10_ack_w ) void seibu_sound_device::rst10_ack_w(u8)
{ {
/* Unused for now */ /* Unused for now */
} }
WRITE8_MEMBER( seibu_sound_device::rst18_ack_w ) void seibu_sound_device::rst18_ack_w(u8)
{ {
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);
} }
READ8_MEMBER( seibu_sound_device::ym_r ) u8 seibu_sound_device::ym_r(offs_t offset)
{ {
return m_ym_read_cb(offset); return m_ym_read_cb(offset);
} }
WRITE8_MEMBER( seibu_sound_device::ym_w ) void seibu_sound_device::ym_w(offs_t offset, u8 data)
{ {
m_ym_write_cb(offset, data); m_ym_write_cb(offset, data);
} }
WRITE8_MEMBER( seibu_sound_device::bank_w ) void seibu_sound_device::bank_w(u8 data)
{ {
if (m_rom_bank.found()) if (m_rom_bank.found())
m_rom_bank->set_entry(data & 1); m_rom_bank->set_entry(data & 1);
} }
WRITE8_MEMBER( seibu_sound_device::coin_w ) void seibu_sound_device::coin_w(u8 data)
{ {
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);
} }
READ8_MEMBER( seibu_sound_device::soundlatch_r ) u8 seibu_sound_device::soundlatch_r(offs_t offset)
{ {
return m_main2sub[offset]; return m_main2sub[offset];
} }
READ8_MEMBER( seibu_sound_device::main_data_pending_r ) u8 seibu_sound_device::main_data_pending_r()
{ {
return m_sub2main_pending ? 1 : 0; return m_sub2main_pending ? 1 : 0;
} }
WRITE8_MEMBER( seibu_sound_device::main_data_w ) void seibu_sound_device::main_data_w(offs_t offset, u8 data)
{ {
m_sub2main[offset] = data; m_sub2main[offset] = data;
} }
WRITE8_MEMBER( seibu_sound_device::pending_w ) void seibu_sound_device::pending_w(u8)
{ {
/* just a guess */ /* just a guess */
m_main2sub_pending = 0; m_main2sub_pending = 0;
m_sub2main_pending = 1; m_sub2main_pending = 1;
} }
READ8_MEMBER( seibu_sound_device::main_r ) u8 seibu_sound_device::main_r(offs_t offset)
{ {
//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 @@ READ8_MEMBER( seibu_sound_device::main_r )
} }
} }
WRITE8_MEMBER( seibu_sound_device::main_w ) void seibu_sound_device::main_w(offs_t offset, u8 data)
{ {
switch (offset) switch (offset)
{ {
@ -275,7 +275,7 @@ WRITE8_MEMBER( seibu_sound_device::main_w )
} }
// used only by NMK16 bootlegs // used only by NMK16 bootlegs
WRITE16_MEMBER( seibu_sound_device::main_mustb_w ) void seibu_sound_device::main_mustb_w(offs_t, u16 data, u16 mem_mask)
{ {
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
{ {
} }
READ8_MEMBER(sei80bu_device::data_r) u8 sei80bu_device::data_r(offs_t offset)
{ {
u16 a = offset; u16 a = offset;
u8 src = read_byte(offset); u8 src = read_byte(offset);
@ -335,7 +335,7 @@ READ8_MEMBER(sei80bu_device::data_r)
return src; return src;
} }
READ8_MEMBER(sei80bu_device::opcode_r) u8 sei80bu_device::opcode_r(offs_t offset)
{ {
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()
} }
} }
WRITE8_MEMBER( seibu_adpcm_device::adr_w ) void seibu_adpcm_device::adr_w(offs_t offset, u8 data)
{ {
if (m_stream) if (m_stream)
m_stream->update(); m_stream->update();
@ -422,7 +422,7 @@ WRITE8_MEMBER( seibu_adpcm_device::adr_w )
} }
} }
WRITE8_MEMBER( seibu_adpcm_device::ctl_w ) void seibu_adpcm_device::ctl_w(u8 data)
{ {
// 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)); }
DECLARE_READ8_MEMBER( main_r ); u8 main_r(offs_t offset);
DECLARE_WRITE8_MEMBER( main_w ); void main_w(offs_t offset, u8 data);
DECLARE_WRITE16_MEMBER( main_mustb_w ); void main_mustb_w(offs_t, u16 data, u16 mem_mask);
DECLARE_WRITE8_MEMBER( irq_clear_w ); void irq_clear_w(u8);
DECLARE_WRITE8_MEMBER( rst10_ack_w ); void rst10_ack_w(u8);
DECLARE_WRITE8_MEMBER( rst18_ack_w ); void rst18_ack_w(u8);
DECLARE_READ8_MEMBER( ym_r ); u8 ym_r(offs_t offset);
DECLARE_WRITE8_MEMBER( ym_w ); void ym_w(offs_t offset, u8 data);
DECLARE_WRITE8_MEMBER( bank_w ); void bank_w(u8 data);
DECLARE_WRITE8_MEMBER( coin_w ); void coin_w(u8 data);
WRITE_LINE_MEMBER( fm_irqhandler ); WRITE_LINE_MEMBER( fm_irqhandler );
DECLARE_READ8_MEMBER( soundlatch_r ); u8 soundlatch_r(offs_t offset);
DECLARE_READ8_MEMBER( main_data_pending_r ); u8 main_data_pending_r();
DECLARE_WRITE8_MEMBER( main_data_w ); void main_data_w(offs_t offset, u8 data);
DECLARE_WRITE8_MEMBER( pending_w ); void pending_w(u8);
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);
DECLARE_READ8_MEMBER(data_r); u8 data_r(offs_t offset);
DECLARE_READ8_MEMBER(opcode_r); u8 opcode_r(offs_t offset);
protected: protected:
// device-level overrides // device-level overrides
@ -134,8 +134,8 @@ public:
~seibu_adpcm_device() {} ~seibu_adpcm_device() {}
void decrypt(); void decrypt();
DECLARE_WRITE8_MEMBER( adr_w ); void adr_w(offs_t offset, u8 data);
DECLARE_WRITE8_MEMBER( ctl_w ); void ctl_w(u8 data);
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));
} }
WRITE8_MEMBER(bloodbro_state::weststry_soundlatch_w) void bloodbro_state::weststry_soundlatch_w(offs_t offset, u8 data)
{ {
m_seibu_sound->main_w(space, offset, data, mem_mask); m_seibu_sound->main_w(offset, data);
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)
WRITE16_MEMBER(cabal_state::sound_irq_trigger_word_w) void cabal_state::sound_irq_trigger_word_w(offs_t, u16 data, u16 mem_mask)
{ {
if (ACCESSING_BITS_0_7) if (ACCESSING_BITS_0_7)
m_seibu_sound->main_w(space, 4, data & 0x00ff); m_seibu_sound->main_w(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 @@
/***************************************************************************/ /***************************************************************************/
READ8_MEMBER(dcon_state::sdgndmps_sound_comms_r) u8 dcon_state::sdgndmps_sound_comms_r(offs_t offset)
{ {
// 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(space, offset); return m_seibu_sound->main_r(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
/*****************************************************************************/ /*****************************************************************************/
READ8_MEMBER(legionna_state::denjinmk_sound_comms_r) u8 legionna_state::denjinmk_sound_comms_r(offs_t offset)
{ {
// 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(space, (offset >> 1) & 7); return m_seibu_sound->main_r((offset >> 1) & 7);
} }
void legionna_state::legionna_cop_map(address_map &map) void legionna_state::legionna_cop_map(address_map &map)
@ -189,12 +189,8 @@ 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](address_space &space, offs_t offset, u8 mem_mask) { [this](offs_t offset) { return m_seibu_sound->main_r(offset >> 1); },
return m_seibu_sound->main_r(space, offset >> 1, mem_mask); [this](offs_t offset, u8 data) { m_seibu_sound->main_w(offset >> 1, data); }).umask16(0x00ff);
},
[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");
@ -223,12 +219,8 @@ 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](address_space &space, offs_t offset, u8 mem_mask) { [this](offs_t offset) { return m_seibu_sound->main_r(offset >> 1); },
return m_seibu_sound->main_r(space, offset >> 1, mem_mask); [this](offs_t offset, u8 data) { m_seibu_sound->main_w(offset >> 1, data); }).umask16(0x00ff);
},
[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");
@ -247,12 +239,8 @@ 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](address_space &space, offs_t offset, u8 mem_mask) { [this](offs_t offset) { return m_seibu_sound->main_r(offset >> 1); },
return m_seibu_sound->main_r(space, offset >> 1, mem_mask); [this](offs_t offset, u8 data) { m_seibu_sound->main_w(offset >> 1, data); }).umask16(0x00ff);
},
[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");
@ -306,10 +294,7 @@ 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", .lw8("seibu_sound_w", [this](offs_t offset, u8 data) { m_seibu_sound->main_w(offset >> 1, data); }).umask16(0x00ff);
[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");
@ -337,12 +322,8 @@ 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](address_space &space, offs_t offset, u8 mem_mask) { [this](offs_t offset) { return m_seibu_sound->main_r(offset >> 1); },
return m_seibu_sound->main_r(space, offset >> 1, mem_mask); [this](offs_t offset, u8 data) { m_seibu_sound->main_w(offset >> 1, data); }).umask16(0x00ff);
},
[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");
@ -368,12 +349,8 @@ 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](address_space &space, offs_t offset, u8 mem_mask) { [this](offs_t offset) { return m_seibu_sound->main_r(offset >> 1); },
return m_seibu_sound->main_r(space, offset >> 1, mem_mask); [this](offs_t offset, u8 data) { m_seibu_sound->main_w(offset >> 1, data); }).umask16(0x00ff);
},
[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");
@ -413,12 +390,8 @@ 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](address_space &space, offs_t offset, u8 mem_mask) { [this](offs_t offset) { return m_seibu_sound->main_r(offset >> 1); },
return m_seibu_sound->main_r(space, offset >> 1, mem_mask); [this](offs_t offset, u8 data) { m_seibu_sound->main_w(offset >> 1, data); }).umask16(0x00ff);
},
[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,12 +493,8 @@ 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](address_space &space, offs_t offset, u8 mem_mask) { [this](offs_t offset) { return m_seibu_sound->main_r(offset >> 1); },
return m_seibu_sound->main_r(space, offset >> 1, mem_mask); [this](offs_t offset, u8 data) { m_seibu_sound->main_w(offset >> 1, data); }).umask16(0x00ff);
},
[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,12 +973,8 @@ 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](address_space &space, offs_t offset, u8 mem_mask) { [this](offs_t offset) { return m_seibu_sound->main_r(offset >> 1); },
return m_seibu_sound->main_r(space, offset >> 1, mem_mask); [this](offs_t offset, u8 data) { m_seibu_sound->main_w(offset >> 1, data); }).umask16(0x00ff);
},
[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");
@ -1022,12 +1018,8 @@ 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](address_space &space, offs_t offset, u8 mem_mask) { [this](offs_t offset) { return m_seibu_sound->main_r(offset >> 1); },
return m_seibu_sound->main_r(space, offset >> 1, mem_mask); [this](offs_t offset, u8 data) { m_seibu_sound->main_w(offset >> 1, data); }).umask16(0x00ff);
},
[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");
@ -1060,12 +1052,8 @@ 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](address_space &space, offs_t offset, u8 mem_mask) { [this](offs_t offset) { return m_seibu_sound->main_r(offset >> 1); },
return m_seibu_sound->main_r(space, offset >> 1, mem_mask); [this](offs_t offset, u8 data) { m_seibu_sound->main_w(offset >> 1, data); }).umask16(0x00ff);
},
[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);
DECLARE_WRITE8_MEMBER(weststry_soundlatch_w); void weststry_soundlatch_w(offs_t offset, u8 data);
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
DECLARE_WRITE16_MEMBER(sound_irq_trigger_word_w); void sound_irq_trigger_word_w(offs_t, u16 data, u16 mem_mask);
// 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;
DECLARE_READ8_MEMBER(sdgndmps_sound_comms_r); u8 sdgndmps_sound_comms_r(offs_t offset);
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);
DECLARE_READ8_MEMBER(denjinmk_sound_comms_r); u8 denjinmk_sound_comms_r(offs_t offset);
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);