mirror of
https://github.com/holub/mame
synced 2025-04-24 17:30:55 +03:00
more legionna function movement (nw)
This commit is contained in:
parent
062528e4a5
commit
65ccfef3e6
@ -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 )
|
||||
|
@ -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);
|
||||
|
||||
|
@ -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);
|
||||
}
|
||||
|
@ -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<raiden2cop_device> m_raiden2cop;
|
||||
|
||||
|
@ -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<legionna_state>();
|
||||
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<legionna_state>();
|
||||
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)
|
||||
|
Loading…
Reference in New Issue
Block a user