diff --git a/src/mame/drivers/legionna.c b/src/mame/drivers/legionna.c index 484f9268eb4..3bb25f008a9 100644 --- a/src/mame/drivers/legionna.c +++ b/src/mame/drivers/legionna.c @@ -140,7 +140,11 @@ static ADDRESS_MAP_START( legionna_map, AS_PROGRAM, 16, legionna_state ) AM_RANGE(0x100000, 0x1003ff) AM_RAM AM_RANGE(0x100600, 0x10063f) AM_DEVREADWRITE("crtc", seibu_crtc_device, read, write) AM_RANGE(0x100700, 0x10071f) AM_READWRITE(sound_comms_r,sound_comms_w) - AM_RANGE(0x100400, 0x1007ff) AM_DEVREADWRITE("seibucop", seibu_cop_legacy_device, legionna_mcu_r, legionna_mcu_w) AM_SHARE("cop_mcu_ram") /* COP mcu */ + AM_RANGE(0x100740, 0x100741) AM_READ_PORT("DSW1") + AM_RANGE(0x100744, 0x100745) AM_READ_PORT("PLAYERS12") + AM_RANGE(0x100748, 0x100749) AM_READ_PORT("PLAYERS34") + AM_RANGE(0x10074c, 0x10074d) AM_READ_PORT("SYSTEM") + AM_RANGE(0x100400, 0x1007ff) AM_DEVREADWRITE("seibucop", seibu_cop_legacy_device, generic_cop_r, generic_cop_w) AM_SHARE("cop_mcu_ram") /* COP mcu */ AM_RANGE(0x101000, 0x1017ff) AM_RAM // _WRITE(legionna_background_w) AM_SHARE("back_data") AM_RANGE(0x101800, 0x101fff) AM_RAM // _WRITE(legionna_foreground_w) AM_SHARE("fore_data") AM_RANGE(0x102000, 0x1027ff) AM_RAM // _WRITE(legionna_midground_w) AM_SHARE("mid_data") @@ -156,9 +160,14 @@ static ADDRESS_MAP_START( heatbrl_map, AS_PROGRAM, 16, legionna_state ) AM_IMPORT_FROM( legionna_cop_mem ) AM_RANGE(0x000000, 0x07ffff) AM_ROM AM_RANGE(0x100000, 0x1003ff) AM_RAM + AM_RANGE(0x100470, 0x100471) AM_WRITE(heatbrl_setgfxbank) AM_RANGE(0x100640, 0x10068f) AM_DEVREADWRITE("crtc", seibu_crtc_device, read, write) + AM_RANGE(0x100740, 0x100741) AM_READ_PORT("DSW1") + AM_RANGE(0x100744, 0x100745) AM_READ_PORT("PLAYERS12") + AM_RANGE(0x100748, 0x100749) AM_READ_PORT("PLAYERS34") + AM_RANGE(0x10074c, 0x10074d) AM_READ_PORT("SYSTEM") AM_RANGE(0x1007c0, 0x1007df) AM_READWRITE(sound_comms_r,sound_comms_w) - AM_RANGE(0x100400, 0x1007ff) AM_DEVREADWRITE("seibucop", seibu_cop_legacy_device, heatbrl_mcu_r, heatbrl_mcu_w) AM_SHARE("cop_mcu_ram") /* COP mcu */ + AM_RANGE(0x100400, 0x1007ff) AM_DEVREADWRITE("seibucop", seibu_cop_legacy_device, generic_cop_r, generic_cop_w) AM_SHARE("cop_mcu_ram") /* COP mcu */ AM_RANGE(0x100800, 0x100fff) AM_RAM // _WRITE(legionna_background_w) AM_SHARE("back_data") AM_RANGE(0x101000, 0x1017ff) AM_RAM // _WRITE(legionna_foreground_w) AM_SHARE("fore_data") AM_RANGE(0x101800, 0x101fff) AM_RAM // _WRITE(legionna_midground_w) AM_SHARE("mid_data") @@ -172,9 +181,14 @@ static ADDRESS_MAP_START( godzilla_map, AS_PROGRAM, 16, legionna_state ) AM_IMPORT_FROM( legionna_cop_mem ) AM_RANGE(0x000000, 0x07ffff) AM_ROM AM_RANGE(0x100000, 0x1003ff) AM_RAM + AM_RANGE(0x100470, 0x100471) AM_WRITE(denjinmk_setgfxbank) AM_RANGE(0x100600, 0x10063f) AM_DEVREADWRITE("crtc", seibu_crtc_device, read, write) AM_RANGE(0x100700, 0x10071f) AM_READWRITE(sound_comms_r,sound_comms_w) - AM_RANGE(0x100400, 0x1007ff) AM_DEVREADWRITE("seibucop", seibu_cop_legacy_device, godzilla_mcu_r, godzilla_mcu_w) AM_SHARE("cop_mcu_ram") /* COP mcu */ + AM_RANGE(0x100740, 0x100741) AM_READ_PORT("DSW1") + AM_RANGE(0x100744, 0x100745) AM_READ_PORT("PLAYERS12") + AM_RANGE(0x100748, 0x100749) AM_READ_PORT("PLAYERS34") + AM_RANGE(0x10074c, 0x10074d) AM_READ_PORT("SYSTEM") + AM_RANGE(0x100400, 0x1007ff) AM_DEVREADWRITE("seibucop", seibu_cop_legacy_device, generic_cop_r, generic_cop_w) AM_SHARE("cop_mcu_ram") /* COP mcu */ AM_RANGE(0x100800, 0x100fff) AM_RAM AM_RANGE(0x101000, 0x1017ff) AM_RAM // _WRITE(legionna_background_w) AM_SHARE("back_data") AM_RANGE(0x101800, 0x101fff) AM_RAM // _WRITE(legionna_foreground_w) AM_SHARE("fore_data") @@ -202,9 +216,15 @@ static ADDRESS_MAP_START( denjinmk_map, AS_PROGRAM, 16, legionna_state ) AM_IMPORT_FROM( legionna_cop_mem ) AM_RANGE(0x000000, 0x0fffff) AM_ROM AM_RANGE(0x100000, 0x1003ff) AM_RAM + AM_RANGE(0x100470, 0x100471) AM_WRITE(denjinmk_setgfxbank) AM_RANGE(0x100600, 0x10063f) AM_DEVREADWRITE("crtc", seibu_crtc_device, read, write) AM_RANGE(0x100700, 0x10071f) AM_READWRITE(sound_comms_r,sound_comms_w) - AM_RANGE(0x100400, 0x1007ff) AM_DEVREADWRITE("seibucop", seibu_cop_legacy_device, denjinmk_mcu_r, denjinmk_mcu_w) AM_SHARE("cop_mcu_ram") /* COP mcu */ + AM_RANGE(0x100740, 0x100741) AM_READ_PORT("DSW1") + AM_RANGE(0x100744, 0x100745) AM_READ_PORT("PLAYERS12") + AM_RANGE(0x100748, 0x100749) AM_READ_PORT("PLAYERS34") + AM_RANGE(0x10074c, 0x10074d) AM_READ_PORT("SYSTEM") + AM_RANGE(0x10075c, 0x10075d) AM_READ_PORT("DSW2") + AM_RANGE(0x100400, 0x1007ff) AM_DEVREADWRITE("seibucop", seibu_cop_legacy_device, generic_cop_r, generic_cop_w) AM_SHARE("cop_mcu_ram") /* COP mcu */ AM_RANGE(0x100800, 0x100fff) AM_RAM AM_RANGE(0x101000, 0x1017ff) AM_RAM // _WRITE(legionna_background_w) AM_SHARE("back_data") AM_RANGE(0x101800, 0x101fff) AM_RAM // _WRITE(legionna_foreground_w) AM_SHARE("fore_data") @@ -224,7 +244,12 @@ static ADDRESS_MAP_START( grainbow_map, AS_PROGRAM, 16, legionna_state ) AM_RANGE(0x100000, 0x1003ff) AM_RAM AM_RANGE(0x100600, 0x10063f) AM_DEVREADWRITE("crtc", seibu_crtc_device, read, write) AM_RANGE(0x100700, 0x10071f) AM_READWRITE(sound_comms_r,sound_comms_w) - AM_RANGE(0x100400, 0x1007ff) AM_DEVREADWRITE("seibucop", seibu_cop_legacy_device, grainbow_mcu_r, grainbow_mcu_w) AM_SHARE("cop_mcu_ram") /* COP mcu */ + AM_RANGE(0x100740, 0x100741) AM_READ_PORT("DSW1") + AM_RANGE(0x100744, 0x100745) AM_READ_PORT("PLAYERS12") + AM_RANGE(0x100748, 0x100749) AM_READ_PORT("PLAYERS34") + AM_RANGE(0x10074c, 0x10074d) AM_READ_PORT("SYSTEM") + AM_RANGE(0x10075c, 0x10075d) AM_READ_PORT("DSW2") + AM_RANGE(0x100400, 0x1007ff) AM_DEVREADWRITE("seibucop", seibu_cop_legacy_device, generic_cop_r, generic_cop_w) AM_SHARE("cop_mcu_ram") /* COP mcu */ AM_RANGE(0x100800, 0x100fff) AM_RAM // _WRITE(legionna_background_w) AM_SHARE("back_data") AM_RANGE(0x101000, 0x1017ff) AM_RAM // _WRITE(legionna_foreground_w) AM_SHARE("fore_data") AM_RANGE(0x101800, 0x101fff) AM_RAM // _WRITE(legionna_midground_w) AM_SHARE("mid_data") @@ -243,7 +268,12 @@ static ADDRESS_MAP_START( cupsoc_mem, AS_PROGRAM, 16, legionna_state ) AM_RANGE(0x100000, 0x1003ff) AM_RAM AM_RANGE(0x100600, 0x10063f) AM_DEVREADWRITE("crtc", seibu_crtc_device, read, write) AM_RANGE(0x100700, 0x10071f) AM_READWRITE(sound_comms_r,sound_comms_w) - AM_RANGE(0x100400, 0x1007ff) AM_DEVREADWRITE("seibucop", seibu_cop_legacy_device, cupsoc_mcu_r,cupsoc_mcu_w) AM_SHARE("cop_mcu_ram") + AM_RANGE(0x100740, 0x100741) AM_READ_PORT("DSW1") + AM_RANGE(0x100744, 0x100745) AM_READ_PORT("PLAYERS12") + AM_RANGE(0x100748, 0x100749) AM_READ_PORT("PLAYERS34") + AM_RANGE(0x10074c, 0x10074d) AM_READ_PORT("SYSTEM") + AM_RANGE(0x10075c, 0x10075d) AM_READ_PORT("DSW2") + AM_RANGE(0x100400, 0x1007ff) AM_DEVREADWRITE("seibucop", seibu_cop_legacy_device, generic_cop_r,generic_cop_w) AM_SHARE("cop_mcu_ram") AM_RANGE(0x100800, 0x100fff) AM_RAM // _WRITE(legionna_background_w) AM_SHARE("back_data") AM_RANGE(0x101000, 0x1017ff) AM_RAM // _WRITE(legionna_foreground_w) AM_SHARE("fore_data") AM_RANGE(0x101800, 0x101fff) AM_RAM // _WRITE(legionna_midground_w) AM_SHARE("mid_data") @@ -265,8 +295,13 @@ static ADDRESS_MAP_START( cupsocs_mem, AS_PROGRAM, 16, legionna_state ) AM_RANGE(0x100000, 0x1003ff) AM_RAM AM_RANGE(0x100600, 0x10060f) AM_DEVREADWRITE("crtc", seibu_crtc_device, read, write)//? AM_RANGE(0x100640, 0x10067f) AM_DEVREADWRITE("crtc", seibu_crtc_device, read, write) + AM_RANGE(0x100700, 0x100701) AM_READ_PORT("DSW1") + AM_RANGE(0x100704, 0x100705) AM_READ_PORT("PLAYERS12") + AM_RANGE(0x100708, 0x100709) AM_READ_PORT("PLAYERS34") + AM_RANGE(0x10070c, 0x10070d) AM_READ_PORT("SYSTEM") + AM_RANGE(0x10071c, 0x10071d) AM_READ_PORT("DSW2") AM_RANGE(0x100740, 0x10075f) AM_READWRITE(sound_comms_r,sound_comms_w) - AM_RANGE(0x100400, 0x1007ff) AM_DEVREADWRITE("seibucop", seibu_cop_legacy_device, cupsocs_mcu_r,cupsocs_mcu_w) AM_SHARE("cop_mcu_ram") + AM_RANGE(0x100400, 0x1007ff) AM_DEVREADWRITE("seibucop", seibu_cop_legacy_device, generic_cop_r,generic_cop_w) AM_SHARE("cop_mcu_ram") AM_RANGE(0x100800, 0x100fff) AM_RAM // _WRITE(legionna_background_w) AM_SHARE("back_data") AM_RANGE(0x101000, 0x1017ff) AM_RAM // _WRITE(legionna_foreground_w) AM_SHARE("fore_data") AM_RANGE(0x101800, 0x101fff) AM_RAM // _WRITE(legionna_midground_w) AM_SHARE("mid_data") @@ -288,6 +323,10 @@ static ADDRESS_MAP_START( cupsocbl_mem, AS_PROGRAM, 16, legionna_state ) //AM_RANGE(0x100000, 0x1003ff) AM_RAM AM_RANGE(0x100600, 0x10060f) AM_DEVREADWRITE("crtc", seibu_crtc_device, read, write)//? AM_RANGE(0x100640, 0x10067f) AM_DEVREADWRITE("crtc", seibu_crtc_device, read, write) + AM_RANGE(0x100700, 0x100701) AM_READ_PORT("DSW1") + AM_RANGE(0x100704, 0x100705) AM_READ_PORT("PLAYERS12") + AM_RANGE(0x100708, 0x100709) AM_READ_PORT("PLAYERS34") + AM_RANGE(0x10070c, 0x10070d) AM_READ_PORT("SYSTEM") AM_RANGE(0x100000, 0x1007ff) AM_DEVREADWRITE("seibucop", seibu_cop_legacy_device, copdxbl_0_r,copdxbl_0_w) AM_SHARE("cop_mcu_ram") AM_RANGE(0x100800, 0x100fff) AM_RAM // _WRITE(legionna_background_w) AM_SHARE("back_data") AM_RANGE(0x101000, 0x1017ff) AM_RAM // _WRITE(legionna_foreground_w) AM_SHARE("fore_data") @@ -410,7 +449,7 @@ static INPUT_PORTS_START( legionna ) PORT_DIPSETTING( 0x0000, DEF_STR( Off ) ) PORT_DIPSETTING( 0x8000, DEF_STR( On ) ) - PORT_START("UNK") + PORT_START("PLAYERS34") PORT_BIT( 0xffff, IP_ACTIVE_LOW, IPT_UNKNOWN ) INPUT_PORTS_END @@ -600,6 +639,9 @@ static INPUT_PORTS_START( godzilla ) PORT_DIPNAME( 0x8000, 0x8000, DEF_STR( Free_Play ) ) PORT_DIPSETTING( 0x8000, DEF_STR( Off ) ) PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) + + PORT_START("PLAYERS34") + PORT_BIT( 0xffff, IP_ACTIVE_LOW, IPT_UNKNOWN ) INPUT_PORTS_END static INPUT_PORTS_START( grainbow ) diff --git a/src/mame/includes/legionna.h b/src/mame/includes/legionna.h index 62421624434..87aebf1e258 100644 --- a/src/mame/includes/legionna.h +++ b/src/mame/includes/legionna.h @@ -54,6 +54,9 @@ public: DECLARE_WRITE8_MEMBER(okim_rombank_w); DECLARE_READ16_MEMBER(sound_comms_r); DECLARE_WRITE16_MEMBER(sound_comms_w); + DECLARE_WRITE16_MEMBER(denjinmk_setgfxbank); + DECLARE_WRITE16_MEMBER(heatbrl_setgfxbank); + DECLARE_DRIVER_INIT(legiongfx); DECLARE_DRIVER_INIT(cupsoc_debug); DECLARE_DRIVER_INIT(cupsoc); @@ -87,6 +90,4 @@ public: }; -/*----------- defined in video/legionna.c -----------*/ -void heatbrl_setgfxbank(running_machine &machine, UINT16 data); -void denjinmk_setgfxbank(running_machine &machine, UINT16 data); + diff --git a/src/mame/machine/seicop.c b/src/mame/machine/seicop.c index 847213b6308..19d75df324c 100644 --- a/src/mame/machine/seicop.c +++ b/src/mame/machine/seicop.c @@ -2138,6 +2138,7 @@ READ16_MEMBER( seibu_cop_legacy_device::generic_cop_r ) WRITE16_MEMBER( seibu_cop_legacy_device::generic_cop_w ) { + COMBINE_DATA(&m_cop_mcu_ram[offset]); switch (offset) { @@ -2853,237 +2854,3 @@ WRITE16_MEMBER( seibu_cop_legacy_device::generic_cop_w ) } } } - -/********************************************************************************************** - Heated Barrel -**********************************************************************************************/ - -READ16_MEMBER( seibu_cop_legacy_device::heatbrl_mcu_r ) -{ - if(offset >= 0x340/2 && offset <= 0x34f/2) - { - static const char *const portnames[] = { "DSW1", "PLAYERS12", "PLAYERS34", "SYSTEM" }; - - return space.machine().root_device().ioport(portnames[(offset >> 1) & 3])->read(); - } - - return generic_cop_r(space, offset, mem_mask); -} - -WRITE16_MEMBER( seibu_cop_legacy_device::heatbrl_mcu_w ) -{ - COMBINE_DATA(&m_cop_mcu_ram[offset]); - - /* external pin register, used for banking */ - if(offset == 0x070/2) - { - heatbrl_setgfxbank(space.machine(), m_cop_mcu_ram[offset]); - return; - } - - if(offset == 0x200/2) //irq ack / sprite buffering? - return; - - - - generic_cop_w(space, offset, data, mem_mask); - -} - - -/********************************************************************************************** - Seibu Cup Soccer -**********************************************************************************************/ - -READ16_MEMBER( seibu_cop_legacy_device::cupsoc_mcu_r ) -{ - if(offset >= 0x340/2 && offset <= 0x34f/2) - { - static const char *const portnames[] = { "DSW1", "PLAYERS12", "PLAYERS34", "SYSTEM" }; - - return space.machine().root_device().ioport(portnames[(offset >> 1) & 3])->read(); - } - - if(offset == 0x35c/2) - { - return space.machine().root_device().ioport("DSW2")->read(); - } - - return generic_cop_r(space, offset, mem_mask); -} - -WRITE16_MEMBER( seibu_cop_legacy_device::cupsoc_mcu_w ) -{ - COMBINE_DATA(&m_cop_mcu_ram[offset]); - - if(offset == 0x280/2) //irq ack / sprite buffering? - return; - - generic_cop_w(space, offset, data, mem_mask); -} - -READ16_MEMBER( seibu_cop_legacy_device::cupsocs_mcu_r ) -{ - - if(offset >= 0x300/2 && offset <= 0x30f/2) - { - static const char *const portnames[] = { "DSW1", "PLAYERS12", "PLAYERS34", "SYSTEM" }; - - return space.machine().root_device().ioport(portnames[(offset >> 1) & 3])->read(); - } - - if(offset == 0x31c/2) - { - return space.machine().root_device().ioport("DSW2")->read(); - } - - return generic_cop_r(space, offset, mem_mask); -} - -WRITE16_MEMBER( seibu_cop_legacy_device::cupsocs_mcu_w ) -{ - COMBINE_DATA(&m_cop_mcu_ram[offset]); - - if(offset == 0x280/2) //irq ack / sprite buffering? - return; - - - generic_cop_w(space, offset, data, mem_mask); -} - -/********************************************************************************************** - Godzilla -**********************************************************************************************/ - -READ16_MEMBER( seibu_cop_legacy_device::godzilla_mcu_r ) -{ - - if(offset >= 0x340/2 && offset <= 0x34f/2) - { - static const char *const portnames[] = { "DSW1", "PLAYERS12", "PLAYERS34", "SYSTEM" }; - - return space.machine().root_device().ioport(portnames[(offset >> 1) & 3])->read(); - } - - return generic_cop_r(space, offset, mem_mask); -} - -WRITE16_MEMBER( seibu_cop_legacy_device::godzilla_mcu_w ) -{ - COMBINE_DATA(&m_cop_mcu_ram[offset]); - - if(offset == 0x070/2) - { - denjinmk_setgfxbank(space.machine(), m_cop_mcu_ram[offset]); - return; - } - - if(offset == 0x280/2) //irq ack / sprite buffering? - return; - - - generic_cop_w(space, offset, data, mem_mask); -} - -/********************************************************************************************** - Denjin Makai -**********************************************************************************************/ - -READ16_MEMBER( seibu_cop_legacy_device::denjinmk_mcu_r ) -{ - - if(offset >= 0x340/2 && offset <= 0x34f/2) - { - static const char *const portnames[] = { "DSW1", "PLAYERS12", "PLAYERS34", "SYSTEM" }; - - return space.machine().root_device().ioport(portnames[(offset >> 1) & 3])->read(); - } - - if(offset == 0x35c/2) - { - return space.machine().root_device().ioport("DSW2")->read(); - } - - return generic_cop_r(space, offset, mem_mask); -} - -WRITE16_MEMBER( seibu_cop_legacy_device::denjinmk_mcu_w ) -{ - COMBINE_DATA(&m_cop_mcu_ram[offset]); - - if(offset == 0x280/2) //irq ack / sprite buffering? - return; - - if(offset == 0x070/2) - { - denjinmk_setgfxbank(space.machine(), m_cop_mcu_ram[offset]); - return; - } - - - generic_cop_w(space, offset, data, mem_mask); -} - -/********************************************************************************************** - SD Gundam Sangokushi Rainbow Tairiku Senki -**********************************************************************************************/ - -READ16_MEMBER( seibu_cop_legacy_device::grainbow_mcu_r ) -{ - if(offset >= 0x340/2 && offset <= 0x34f/2) - { - static const char *const portnames[] = { "DSW1", "PLAYERS12", "PLAYERS34", "SYSTEM" }; - - return space.machine().root_device().ioport(portnames[(offset >> 1) & 3])->read(); - } - - if(offset == 0x35c/2) - { - return space.machine().root_device().ioport("DSW2")->read(); - } - - return generic_cop_r(space, offset, mem_mask); -} - - -WRITE16_MEMBER( seibu_cop_legacy_device::grainbow_mcu_w ) -{ - COMBINE_DATA(&m_cop_mcu_ram[offset]); - - if(offset == 0x280/2) //irq ack / sprite buffering? - return; - - - generic_cop_w(space, offset, data, mem_mask); -} - -/********************************************************************************************** - Legionnaire -**********************************************************************************************/ - - -READ16_MEMBER( seibu_cop_legacy_device::legionna_mcu_r ) -{ - - if(offset >= 0x340/2 && offset <= 0x34f/2) - { - static const char *const portnames[] = { "DSW1", "PLAYERS12", "UNK", "SYSTEM" }; - - return space.machine().root_device().ioport(portnames[(offset >> 1) & 3])->read(); - } - - return generic_cop_r(space, offset, mem_mask); -} - -WRITE16_MEMBER( seibu_cop_legacy_device::legionna_mcu_w ) -{ - COMBINE_DATA(&m_cop_mcu_ram[offset]); - - if(offset == 0x070/2) //external pin: puts bit 13 high, delay, reads 0x748, writes bit 13 low - return; - - if(offset == 0x280/2) //irq ack / sprite buffering? - return; - - generic_cop_w(space, offset, data, mem_mask); -} diff --git a/src/mame/machine/seicop.h b/src/mame/machine/seicop.h index 4fda3ddcf34..66c253467a8 100644 --- a/src/mame/machine/seicop.h +++ b/src/mame/machine/seicop.h @@ -29,21 +29,8 @@ seibu_cop_legacy_device(const machine_config &mconfig, const char *tag, device_t DECLARE_READ16_MEMBER( copdxbl_0_r ); DECLARE_WRITE16_MEMBER( copdxbl_0_w ); - DECLARE_READ16_MEMBER( heatbrl_mcu_r ); - DECLARE_WRITE16_MEMBER( heatbrl_mcu_w ); - DECLARE_READ16_MEMBER( cupsoc_mcu_r ); - DECLARE_WRITE16_MEMBER( cupsoc_mcu_w ); - DECLARE_READ16_MEMBER( cupsocs_mcu_r ); - DECLARE_WRITE16_MEMBER( cupsocs_mcu_w ); - DECLARE_READ16_MEMBER( godzilla_mcu_r ); - DECLARE_WRITE16_MEMBER( godzilla_mcu_w ); - DECLARE_READ16_MEMBER( denjinmk_mcu_r ); - DECLARE_WRITE16_MEMBER( denjinmk_mcu_w ); - DECLARE_READ16_MEMBER( grainbow_mcu_r ); - DECLARE_WRITE16_MEMBER( grainbow_mcu_w ); - DECLARE_READ16_MEMBER( legionna_mcu_r ); - DECLARE_WRITE16_MEMBER( legionna_mcu_w ); - + DECLARE_READ16_MEMBER( generic_cop_r ); + DECLARE_WRITE16_MEMBER( generic_cop_w ); protected: // device-level overrides virtual void device_config_complete(); @@ -76,8 +63,7 @@ private: void copd2_set_tabledata(UINT16 data); void cop_take_hit_box_params(UINT8 offs); UINT8 cop_calculate_collsion_detection(); - DECLARE_READ16_MEMBER( generic_cop_r ); - DECLARE_WRITE16_MEMBER( generic_cop_w ); + required_device m_raiden2cop; diff --git a/src/mame/video/legionna.c b/src/mame/video/legionna.c index a053d0e26bd..377ae152b2d 100644 --- a/src/mame/video/legionna.c +++ b/src/mame/video/legionna.c @@ -43,24 +43,22 @@ WRITE16_MEMBER(legionna_state::tile_scroll_w) tm->set_scrollx(0, data); } -void heatbrl_setgfxbank(running_machine &machine, UINT16 data) +WRITE16_MEMBER(legionna_state::heatbrl_setgfxbank) { - legionna_state *state = machine.driver_data(); - state->m_back_gfx_bank = (data &0x4000) >> 2; + m_back_gfx_bank = (data &0x4000) >> 2; } /*xxx- --- ---- ---- banking*/ -void denjinmk_setgfxbank(running_machine &machine, UINT16 data) +WRITE16_MEMBER(legionna_state::denjinmk_setgfxbank) { - legionna_state *state = machine.driver_data(); - state->m_fore_gfx_bank = (data &0x2000) >> 1;//??? - state->m_back_gfx_bank = (data &0x4000) >> 2; - state->m_mid_gfx_bank = (data &0x8000) >> 3;//??? + m_fore_gfx_bank = (data &0x2000) >> 1;//??? + m_back_gfx_bank = (data &0x4000) >> 2; + m_mid_gfx_bank = (data &0x8000) >> 3;//??? - state->m_background_layer->mark_all_dirty(); - state->m_foreground_layer->mark_all_dirty(); - state->m_midground_layer->mark_all_dirty(); - state->m_text_layer->mark_all_dirty(); + m_background_layer->mark_all_dirty(); + m_foreground_layer->mark_all_dirty(); + m_midground_layer->mark_all_dirty(); + m_text_layer->mark_all_dirty(); } WRITE16_MEMBER(legionna_state::videowrite_cb_w)