mirror of
https://github.com/holub/mame
synced 2025-04-21 16:01:56 +03:00
seta : Cleanup Duplicates, Convert to unique_ptr when array size is >… (#3228)
* seta : Cleanup Duplicates, Convert to unique_ptr when array size is >=0x100 * seta : Fixes, More cleanups * seta : Fix compile * seta : Typo
This commit is contained in:
parent
9cd1af602e
commit
6f1b159630
@ -1577,11 +1577,11 @@ WRITE16_MEMBER(seta_state::sub_ctrl_w)
|
||||
break;
|
||||
|
||||
case 4/2: // not sure
|
||||
if (ACCESSING_BITS_0_7) if(m_soundlatch != nullptr) m_soundlatch->write(space, 0, data & 0xff);
|
||||
if (ACCESSING_BITS_0_7) if(m_soundlatch[0] != nullptr) m_soundlatch[0]->write(space, 0, data & 0xff);
|
||||
break;
|
||||
|
||||
case 6/2: // not sure
|
||||
if (ACCESSING_BITS_0_7) if(m_soundlatch2 != nullptr) m_soundlatch2->write(space, 0, data & 0xff);
|
||||
if (ACCESSING_BITS_0_7) if(m_soundlatch[1] != nullptr) m_soundlatch[1]->write(space, 0, data & 0xff);
|
||||
break;
|
||||
}
|
||||
|
||||
@ -1625,6 +1625,19 @@ WRITE_LINE_MEMBER(seta_state::screen_vblank_seta_buffer_sprites)
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
|
||||
VRAM Handler
|
||||
|
||||
*/
|
||||
template<int Layer>
|
||||
WRITE16_MEMBER(seta_state::vram_w)
|
||||
{
|
||||
COMBINE_DATA(&m_vram[Layer][offset]);
|
||||
m_tilemap[Layer][(offset >> 12) & 1]->mark_tile_dirty(offset & 0x7ff);
|
||||
}
|
||||
|
||||
|
||||
/***************************************************************************
|
||||
|
||||
|
||||
@ -1690,9 +1703,9 @@ ADDRESS_MAP_START(seta_state::tndrcade_map)
|
||||
AM_RANGE(0x200000, 0x200001) AM_WRITE(ipl1_ack_w)
|
||||
AM_RANGE(0x280000, 0x280001) AM_WRITENOP // ? 0 / 1 (sub cpu related?)
|
||||
AM_RANGE(0x300000, 0x300001) AM_WRITENOP // ? 0 / 1
|
||||
AM_RANGE(0x380000, 0x3803ff) AM_RAM AM_SHARE("paletteram") // Palette
|
||||
/**/AM_RANGE(0x400000, 0x400001) AM_WRITENOP // ? $4000
|
||||
/**/AM_RANGE(0x600000, 0x6005ff) AM_RAM AM_DEVREADWRITE("spritegen", seta001_device, spriteylow_r16, spriteylow_w16) // Sprites Y
|
||||
AM_RANGE(0x380000, 0x3803ff) AM_RAM AM_SHARE("paletteram1") // Palette
|
||||
AM_RANGE(0x400000, 0x400001) AM_WRITENOP // ? $4000
|
||||
AM_RANGE(0x600000, 0x6005ff) AM_RAM AM_DEVREADWRITE("spritegen", seta001_device, spriteylow_r16, spriteylow_w16) // Sprites Y
|
||||
AM_RANGE(0x600600, 0x600607) AM_RAM AM_DEVREADWRITE("spritegen", seta001_device, spritectrl_r16, spritectrl_w16)
|
||||
|
||||
AM_RANGE(0x800000, 0x800007) AM_WRITE(sub_ctrl_w) // Sub CPU Control?
|
||||
@ -1716,9 +1729,9 @@ ADDRESS_MAP_START(seta_state::downtown_map)
|
||||
AM_RANGE(0x400000, 0x400007) AM_WRITE(twineagl_tilebank_w) // special tile banking to animate water in twineagl
|
||||
AM_RANGE(0x500000, 0x500001) AM_WRITENOP // ?
|
||||
AM_RANGE(0x600000, 0x600003) AM_READ(seta_dsw_r) // DSW
|
||||
AM_RANGE(0x700000, 0x7003ff) AM_RAM AM_SHARE("paletteram") // Palette
|
||||
AM_RANGE(0x700000, 0x7003ff) AM_RAM AM_SHARE("paletteram1") // Palette
|
||||
AM_RANGE(0x800000, 0x800005) AM_WRITEONLY AM_SHARE("vctrl_0")// VRAM Ctrl
|
||||
AM_RANGE(0x900000, 0x903fff) AM_RAM_WRITE(seta_vram_0_w) AM_SHARE("vram_0") // VRAM
|
||||
AM_RANGE(0x900000, 0x903fff) AM_RAM_WRITE(vram_w<0>) AM_SHARE("vram_0") // VRAM
|
||||
AM_RANGE(0xa00000, 0xa00007) AM_WRITE(sub_ctrl_w) // Sub CPU Control?
|
||||
AM_RANGE(0xb00000, 0xb00fff) AM_READWRITE(sharedram_68000_r,sharedram_68000_w) // Shared RAM
|
||||
AM_RANGE(0xc00000, 0xc00001) AM_WRITENOP // ? $4000
|
||||
@ -1741,9 +1754,9 @@ ADDRESS_MAP_START(seta_state::calibr50_map)
|
||||
AM_RANGE(0x400000, 0x400001) AM_DEVREAD("watchdog", watchdog_timer_device, reset16_r)
|
||||
AM_RANGE(0x500000, 0x500001) AM_WRITENOP // ?
|
||||
AM_RANGE(0x600000, 0x600003) AM_READ(seta_dsw_r) // DSW
|
||||
AM_RANGE(0x700000, 0x7003ff) AM_RAM AM_SHARE("paletteram") // Palette
|
||||
AM_RANGE(0x700000, 0x7003ff) AM_RAM AM_SHARE("paletteram1") // Palette
|
||||
AM_RANGE(0x800000, 0x800005) AM_WRITEONLY AM_SHARE("vctrl_0")// VRAM Ctrl
|
||||
AM_RANGE(0x900000, 0x903fff) AM_RAM_WRITE(seta_vram_0_w) AM_SHARE("vram_0") // VRAM
|
||||
AM_RANGE(0x900000, 0x903fff) AM_RAM_WRITE(vram_w<0>) AM_SHARE("vram_0") // VRAM
|
||||
|
||||
AM_RANGE(0x904000, 0x904fff) AM_RAM //
|
||||
AM_RANGE(0xa00000, 0xa00001) AM_READ_PORT("P1") // X1-004
|
||||
@ -1752,12 +1765,12 @@ ADDRESS_MAP_START(seta_state::calibr50_map)
|
||||
AM_RANGE(0xa00010, 0xa00017) AM_DEVREAD8("upd4701", upd4701_device, read_xy, 0x00ff)
|
||||
AM_RANGE(0xa00018, 0xa00019) AM_DEVREAD8("upd4701", upd4701_device, reset_xy, 0x00ff)
|
||||
|
||||
/**/AM_RANGE(0xd00000, 0xd005ff) AM_RAM AM_DEVREADWRITE("spritegen", seta001_device, spriteylow_r16, spriteylow_w16) // Sprites Y
|
||||
AM_RANGE(0xd00000, 0xd005ff) AM_RAM AM_DEVREADWRITE("spritegen", seta001_device, spriteylow_r16, spriteylow_w16) // Sprites Y
|
||||
AM_RANGE(0xd00600, 0xd00607) AM_RAM AM_DEVREADWRITE("spritegen", seta001_device, spritectrl_r16, spritectrl_w16)
|
||||
AM_RANGE(0xe00000, 0xe03fff) AM_RAM AM_DEVREADWRITE("spritegen", seta001_device, spritecode_r16, spritecode_w16) // Sprites Code + X + Attr
|
||||
AM_RANGE(0xb00000, 0xb00001) AM_DEVREAD8("soundlatch2", generic_latch_8_device, read, 0x00ff) // From Sub CPU
|
||||
AM_RANGE(0xb00000, 0xb00001) AM_DEVWRITE8("soundlatch", generic_latch_8_device, write, 0x00ff) // To Sub CPU
|
||||
/**/AM_RANGE(0xc00000, 0xc00001) AM_RAM // ? $4000
|
||||
AM_RANGE(0xb00000, 0xb00001) AM_DEVWRITE8("soundlatch1", generic_latch_8_device, write, 0x00ff) // To Sub CPU
|
||||
AM_RANGE(0xc00000, 0xc00001) AM_RAM // ? $4000
|
||||
|
||||
AM_RANGE(0xff0000, 0xffffff) AM_RAM // RAM
|
||||
ADDRESS_MAP_END
|
||||
@ -1781,12 +1794,12 @@ READ16_MEMBER(seta_state::usclssic_dsw_r)
|
||||
|
||||
CUSTOM_INPUT_MEMBER(seta_state::usclssic_trackball_x_r)
|
||||
{
|
||||
return (m_usclssic_port_select ? m_track2_x : m_track1_x)->read();
|
||||
return m_track_x[m_usclssic_port_select ? 1 : 0]->read();
|
||||
}
|
||||
|
||||
CUSTOM_INPUT_MEMBER(seta_state::usclssic_trackball_y_r)
|
||||
{
|
||||
return (m_usclssic_port_select ? m_track2_y : m_track1_y)->read();
|
||||
return m_track_y[m_usclssic_port_select ? 1 : 0]->read();
|
||||
}
|
||||
|
||||
|
||||
@ -1813,19 +1826,19 @@ ADDRESS_MAP_START(seta_state::usclssic_map)
|
||||
AM_RANGE(0xff0000, 0xffffff) AM_RAM // RAM
|
||||
AM_RANGE(0x800000, 0x8005ff) AM_RAM AM_DEVREADWRITE("spritegen", seta001_device, spriteylow_r16, spriteylow_w16) // Sprites Y
|
||||
AM_RANGE(0x800600, 0x800607) AM_RAM AM_DEVREADWRITE("spritegen", seta001_device, spritectrl_r16, spritectrl_w16)
|
||||
/**/AM_RANGE(0x900000, 0x900001) AM_RAM // ? $4000
|
||||
AM_RANGE(0x900000, 0x900001) AM_RAM // ? $4000
|
||||
AM_RANGE(0xa00000, 0xa00005) AM_RAM AM_SHARE("vctrl_0") // VRAM Ctrl
|
||||
/**/AM_RANGE(0xb00000, 0xb003ff) AM_RAM AM_SHARE("paletteram") // Palette
|
||||
AM_RANGE(0xb00000, 0xb003ff) AM_RAM AM_SHARE("paletteram1") // Palette
|
||||
AM_RANGE(0xb40000, 0xb40007) AM_DEVREAD8("upd4701", upd4701_device, read_xy, 0x00ff)
|
||||
AM_RANGE(0xb40000, 0xb40001) AM_WRITE8(usclssic_lockout_w, 0x00ff) // Coin Lockout + Tiles Banking
|
||||
AM_RANGE(0xb4000a, 0xb4000b) AM_WRITE(ipl1_ack_w)
|
||||
AM_RANGE(0xb40010, 0xb40011) AM_READ_PORT("COINS") // Coins
|
||||
AM_RANGE(0xb40010, 0xb40011) AM_DEVWRITE8("soundlatch", generic_latch_8_device, write, 0x00ff) // To Sub CPU
|
||||
AM_RANGE(0xb40010, 0xb40011) AM_DEVWRITE8("soundlatch1", generic_latch_8_device, write, 0x00ff) // To Sub CPU
|
||||
AM_RANGE(0xb40018, 0xb4001f) AM_READ(usclssic_dsw_r) // 2 DSWs
|
||||
AM_RANGE(0xb40018, 0xb40019) AM_DEVWRITE("watchdog", watchdog_timer_device, reset16_w)
|
||||
AM_RANGE(0xb80000, 0xb80001) AM_READ(ipl2_ack_r)
|
||||
AM_RANGE(0xc00000, 0xc03fff) AM_RAM AM_DEVREADWRITE("spritegen", seta001_device, spritecode_r16, spritecode_w16) // Sprites Code + X + Attr
|
||||
AM_RANGE(0xd00000, 0xd03fff) AM_RAM_WRITE(seta_vram_0_w) AM_SHARE("vram_0") // VRAM
|
||||
AM_RANGE(0xd00000, 0xd03fff) AM_RAM_WRITE(vram_w<0>) AM_SHARE("vram_0") // VRAM
|
||||
AM_RANGE(0xd04000, 0xd04fff) AM_RAM //
|
||||
AM_RANGE(0xe00000, 0xe00fff) AM_RAM // NVRAM? (odd bytes)
|
||||
ADDRESS_MAP_END
|
||||
@ -1843,13 +1856,13 @@ ADDRESS_MAP_START(seta_state::atehate_map)
|
||||
AM_RANGE(0x300000, 0x300001) AM_WRITENOP // ? 0 (irq ack lev 2?)
|
||||
AM_RANGE(0x500000, 0x500001) AM_WRITENOP // ? (end of lev 1: bit 4 goes 1,0,1)
|
||||
AM_RANGE(0x600000, 0x600003) AM_READ(seta_dsw_r) // DSW
|
||||
AM_RANGE(0x700000, 0x7003ff) AM_RAM AM_SHARE("paletteram") // Palette
|
||||
AM_RANGE(0x700000, 0x7003ff) AM_RAM AM_SHARE("paletteram1") // Palette
|
||||
AM_RANGE(0xa00000, 0xa005ff) AM_RAM AM_DEVREADWRITE("spritegen", seta001_device, spriteylow_r16, spriteylow_w16) // Sprites Y
|
||||
AM_RANGE(0xa00600, 0xa00607) AM_RAM AM_DEVREADWRITE("spritegen", seta001_device, spritectrl_r16, spritectrl_w16)
|
||||
AM_RANGE(0xb00000, 0xb00001) AM_READ_PORT("P1") // P1
|
||||
AM_RANGE(0xb00002, 0xb00003) AM_READ_PORT("P2") // P2
|
||||
AM_RANGE(0xb00004, 0xb00005) AM_READ_PORT("COINS") // Coins
|
||||
/**/AM_RANGE(0xc00000, 0xc00001) AM_RAM // ? 0x4000
|
||||
AM_RANGE(0xc00000, 0xc00001) AM_RAM // ? 0x4000
|
||||
AM_RANGE(0xe00000, 0xe03fff) AM_RAM AM_DEVREADWRITE("spritegen", seta001_device, spritecode_r16, spritecode_w16) // Sprites Code + X + Attr
|
||||
ADDRESS_MAP_END
|
||||
|
||||
@ -1869,17 +1882,17 @@ ADDRESS_MAP_START(seta_state::blandia_map)
|
||||
AM_RANGE(0x500000, 0x500005) AM_RAM_WRITE(seta_vregs_w) AM_SHARE("vregs") // (gundhara) Coin Lockout + Video Registers
|
||||
AM_RANGE(0x600000, 0x600003) AM_READ(seta_dsw_r) // DSW
|
||||
AM_RANGE(0x700000, 0x7003ff) AM_RAM // (rezon,jjsquawk)
|
||||
AM_RANGE(0x700400, 0x700fff) AM_RAM AM_SHARE("paletteram") // Palette
|
||||
AM_RANGE(0x700400, 0x700fff) AM_RAM AM_SHARE("paletteram1") // Palette
|
||||
AM_RANGE(0x703c00, 0x7047ff) AM_RAM AM_SHARE("paletteram2") // 2nd Palette for the palette offset effect
|
||||
/**/AM_RANGE(0x800000, 0x8005ff) AM_RAM AM_DEVREADWRITE("spritegen", seta001_device, spriteylow_r16, spriteylow_w16) // Sprites Y
|
||||
AM_RANGE(0x800000, 0x8005ff) AM_RAM AM_DEVREADWRITE("spritegen", seta001_device, spriteylow_r16, spriteylow_w16) // Sprites Y
|
||||
AM_RANGE(0x800600, 0x800607) AM_RAM AM_DEVREADWRITE("spritegen", seta001_device, spritectrl_r16, spritectrl_w16)
|
||||
AM_RANGE(0x880000, 0x880001) AM_RAM // ? 0xc000
|
||||
AM_RANGE(0x900000, 0x903fff) AM_RAM AM_DEVREADWRITE("spritegen", seta001_device, spritecode_r16, spritecode_w16) // Sprites Code + X + Attr
|
||||
/**/AM_RANGE(0xa00000, 0xa00005) AM_RAM AM_SHARE("vctrl_0") // VRAM 0&1 Ctrl
|
||||
/**/AM_RANGE(0xa80000, 0xa80005) AM_RAM AM_SHARE("vctrl_2") // VRAM 2&3 Ctrl
|
||||
AM_RANGE(0xb00000, 0xb03fff) AM_RAM_WRITE(seta_vram_0_w) AM_SHARE("vram_0") // VRAM 0&1
|
||||
AM_RANGE(0xa00000, 0xa00005) AM_RAM AM_SHARE("vctrl_0") // VRAM 0&1 Ctrl
|
||||
AM_RANGE(0xa80000, 0xa80005) AM_RAM AM_SHARE("vctrl_1") // VRAM 2&3 Ctrl
|
||||
AM_RANGE(0xb00000, 0xb03fff) AM_RAM_WRITE(vram_w<0>) AM_SHARE("vram_0") // VRAM 0&1
|
||||
AM_RANGE(0xb04000, 0xb0ffff) AM_RAM // (jjsquawk)
|
||||
AM_RANGE(0xb80000, 0xb83fff) AM_RAM_WRITE(seta_vram_2_w) AM_SHARE("vram_2") // VRAM 2&3
|
||||
AM_RANGE(0xb80000, 0xb83fff) AM_RAM_WRITE(vram_w<1>) AM_SHARE("vram_1") // VRAM 2&3
|
||||
AM_RANGE(0xb84000, 0xb8ffff) AM_RAM // (jjsquawk)
|
||||
AM_RANGE(0xc00000, 0xc03fff) AM_DEVREADWRITE("x1snd", x1_010_device, word_r, word_w) // Sound
|
||||
AM_RANGE(0xd00000, 0xd00007) AM_WRITENOP // ?
|
||||
@ -1904,17 +1917,17 @@ ADDRESS_MAP_START(seta_state::blandiap_map)
|
||||
AM_RANGE(0x500000, 0x500005) AM_RAM_WRITE(seta_vregs_w) AM_SHARE("vregs") // (gundhara) Coin Lockout + Video Registers
|
||||
AM_RANGE(0x600000, 0x600003) AM_READ(seta_dsw_r) // DSW
|
||||
AM_RANGE(0x700000, 0x7003ff) AM_RAM // (rezon,jjsquawk)
|
||||
AM_RANGE(0x700400, 0x700fff) AM_RAM AM_SHARE("paletteram") // Palette
|
||||
AM_RANGE(0x700400, 0x700fff) AM_RAM AM_SHARE("paletteram1") // Palette
|
||||
AM_RANGE(0x703c00, 0x7047ff) AM_RAM AM_SHARE("paletteram2") // 2nd Palette for the palette offset effect
|
||||
AM_RANGE(0x800000, 0x803fff) AM_RAM_WRITE(seta_vram_0_w) AM_SHARE("vram_0") // VRAM 0&1
|
||||
AM_RANGE(0x800000, 0x803fff) AM_RAM_WRITE(vram_w<0>) AM_SHARE("vram_0") // VRAM 0&1
|
||||
AM_RANGE(0x804000, 0x80ffff) AM_RAM // (jjsquawk)
|
||||
AM_RANGE(0x880000, 0x883fff) AM_RAM_WRITE(seta_vram_2_w) AM_SHARE("vram_2") // VRAM 2&3
|
||||
AM_RANGE(0x880000, 0x883fff) AM_RAM_WRITE(vram_w<1>) AM_SHARE("vram_1") // VRAM 2&3
|
||||
AM_RANGE(0x884000, 0x88ffff) AM_RAM // (jjsquawk)
|
||||
/**/AM_RANGE(0x900000, 0x900005) AM_RAM AM_SHARE("vctrl_0") // VRAM 0&1 Ctrl
|
||||
/**/AM_RANGE(0x980000, 0x980005) AM_RAM AM_SHARE("vctrl_2") // VRAM 2&3 Ctrl
|
||||
/**/AM_RANGE(0xa00000, 0xa005ff) AM_RAM AM_DEVREADWRITE("spritegen", seta001_device, spriteylow_r16, spriteylow_w16) // Sprites Y
|
||||
AM_RANGE(0x900000, 0x900005) AM_RAM AM_SHARE("vctrl_0") // VRAM 0&1 Ctrl
|
||||
AM_RANGE(0x980000, 0x980005) AM_RAM AM_SHARE("vctrl_1") // VRAM 2&3 Ctrl
|
||||
AM_RANGE(0xa00000, 0xa005ff) AM_RAM AM_DEVREADWRITE("spritegen", seta001_device, spriteylow_r16, spriteylow_w16) // Sprites Y
|
||||
AM_RANGE(0xa00600, 0xa00607) AM_RAM AM_DEVREADWRITE("spritegen", seta001_device, spritectrl_r16, spritectrl_w16)
|
||||
/**/AM_RANGE(0xa80000, 0xa80001) AM_RAM // ? 0x4000
|
||||
AM_RANGE(0xa80000, 0xa80001) AM_RAM // ? 0x4000
|
||||
AM_RANGE(0xb00000, 0xb03fff) AM_RAM AM_DEVREADWRITE("spritegen", seta001_device, spritecode_r16, spritecode_w16) // Sprites Code + X + Attr
|
||||
AM_RANGE(0xc00000, 0xc03fff) AM_DEVREADWRITE("x1snd", x1_010_device, word_r, word_w) // Sound
|
||||
AM_RANGE(0xd00000, 0xd00007) AM_WRITENOP // ?
|
||||
@ -1975,17 +1988,17 @@ ADDRESS_MAP_START(seta_state::wrofaero_map)
|
||||
|
||||
AM_RANGE(0x600000, 0x600003) AM_READ(seta_dsw_r) // DSW
|
||||
AM_RANGE(0x700000, 0x7003ff) AM_RAM // (rezon,jjsquawk)
|
||||
AM_RANGE(0x700400, 0x700fff) AM_RAM AM_SHARE("paletteram") // Palette
|
||||
AM_RANGE(0x700400, 0x700fff) AM_RAM AM_SHARE("paletteram1") // Palette
|
||||
AM_RANGE(0x701000, 0x70ffff) AM_RAM //
|
||||
AM_RANGE(0x800000, 0x803fff) AM_RAM_WRITE(seta_vram_0_w) AM_SHARE("vram_0") // VRAM 0&1
|
||||
AM_RANGE(0x800000, 0x803fff) AM_RAM_WRITE(vram_w<0>) AM_SHARE("vram_0") // VRAM 0&1
|
||||
AM_RANGE(0x804000, 0x80ffff) AM_RAM // (jjsquawk)
|
||||
AM_RANGE(0x880000, 0x883fff) AM_RAM_WRITE(seta_vram_2_w) AM_SHARE("vram_2") // VRAM 2&3
|
||||
AM_RANGE(0x880000, 0x883fff) AM_RAM_WRITE(vram_w<1>) AM_SHARE("vram_1") // VRAM 2&3
|
||||
AM_RANGE(0x884000, 0x88ffff) AM_RAM // (jjsquawk)
|
||||
/**/AM_RANGE(0x900000, 0x900005) AM_RAM AM_SHARE("vctrl_0") // VRAM 0&1 Ctrl
|
||||
/**/AM_RANGE(0x980000, 0x980005) AM_RAM AM_SHARE("vctrl_2") // VRAM 2&3 Ctrl
|
||||
/**/AM_RANGE(0xa00000, 0xa005ff) AM_RAM AM_DEVREADWRITE("spritegen", seta001_device, spriteylow_r16, spriteylow_w16) // Sprites Y
|
||||
AM_RANGE(0x900000, 0x900005) AM_RAM AM_SHARE("vctrl_0") // VRAM 0&1 Ctrl
|
||||
AM_RANGE(0x980000, 0x980005) AM_RAM AM_SHARE("vctrl_1") // VRAM 2&3 Ctrl
|
||||
AM_RANGE(0xa00000, 0xa005ff) AM_RAM AM_DEVREADWRITE("spritegen", seta001_device, spriteylow_r16, spriteylow_w16) // Sprites Y
|
||||
AM_RANGE(0xa00600, 0xa00607) AM_RAM AM_DEVREADWRITE("spritegen", seta001_device, spritectrl_r16, spritectrl_w16)
|
||||
/**/AM_RANGE(0xa80000, 0xa80001) AM_RAM // ? 0x4000
|
||||
AM_RANGE(0xa80000, 0xa80001) AM_RAM // ? 0x4000
|
||||
AM_RANGE(0xb00000, 0xb03fff) AM_RAM AM_DEVREADWRITE("spritegen", seta001_device, spritecode_r16, spritecode_w16) // Sprites Code + X + Attr
|
||||
AM_RANGE(0xc00000, 0xc03fff) AM_DEVREADWRITE("x1snd", x1_010_device, word_r, word_w) // Sound
|
||||
#if __uPD71054_TIMER
|
||||
@ -2022,20 +2035,20 @@ ADDRESS_MAP_START(seta_state::zingzipbl_map)
|
||||
|
||||
//AM_RANGE(0x600000, 0x600003) AM_READ(seta_dsw_r) // DSW
|
||||
AM_RANGE(0x700000, 0x7003ff) AM_RAM // (rezon,jjsquawk)
|
||||
AM_RANGE(0x700400, 0x700fff) AM_RAM AM_SHARE("paletteram") // Palette
|
||||
AM_RANGE(0x700400, 0x700fff) AM_RAM AM_SHARE("paletteram1") // Palette
|
||||
AM_RANGE(0x701000, 0x70ffff) AM_RAM //
|
||||
AM_RANGE(0x800000, 0x803fff) AM_RAM_WRITE(seta_vram_0_w) AM_SHARE("vram_0") // VRAM 0&1
|
||||
AM_RANGE(0x800000, 0x803fff) AM_RAM_WRITE(vram_w<0>) AM_SHARE("vram_0") // VRAM 0&1
|
||||
AM_RANGE(0x804000, 0x80ffff) AM_RAM // (jjsquawk)
|
||||
AM_RANGE(0x880000, 0x883fff) AM_RAM_WRITE(seta_vram_2_w) AM_SHARE("vram_2") // VRAM 2&3
|
||||
AM_RANGE(0x880000, 0x883fff) AM_RAM_WRITE(vram_w<1>) AM_SHARE("vram_1") // VRAM 2&3
|
||||
AM_RANGE(0x884000, 0x88ffff) AM_RAM // (jjsquawk)
|
||||
/**/AM_RANGE(0x900000, 0x900005) AM_RAM AM_SHARE("vctrl_0") // VRAM 0&1 Ctrl
|
||||
AM_RANGE(0x900000, 0x900005) AM_RAM AM_SHARE("vctrl_0") // VRAM 0&1 Ctrl
|
||||
|
||||
AM_RANGE(0x902010, 0x902013) AM_READ(zingzipbl_unknown_r )
|
||||
|
||||
/**/AM_RANGE(0x980000, 0x980005) AM_RAM AM_SHARE("vctrl_2") // VRAM 2&3 Ctrl
|
||||
/**/AM_RANGE(0xa00000, 0xa005ff) AM_RAM AM_DEVREADWRITE("spritegen", seta001_device, spriteylow_r16, spriteylow_w16) // Sprites Y
|
||||
AM_RANGE(0x980000, 0x980005) AM_RAM AM_SHARE("vctrl_1") // VRAM 2&3 Ctrl
|
||||
AM_RANGE(0xa00000, 0xa005ff) AM_RAM AM_DEVREADWRITE("spritegen", seta001_device, spriteylow_r16, spriteylow_w16) // Sprites Y
|
||||
AM_RANGE(0xa00600, 0xa00607) AM_RAM AM_DEVREADWRITE("spritegen", seta001_device, spritectrl_r16, spritectrl_w16)
|
||||
/**/AM_RANGE(0xa80000, 0xa80001) AM_RAM // ? 0x4000
|
||||
AM_RANGE(0xa80000, 0xa80001) AM_RAM // ? 0x4000
|
||||
AM_RANGE(0xb00000, 0xb03fff) AM_RAM AM_DEVREADWRITE("spritegen", seta001_device, spritecode_r16, spritecode_w16) // Sprites Code + X + Attr
|
||||
AM_RANGE(0xc00000, 0xc03fff) AM_RAM // soundram on original
|
||||
#if __uPD71054_TIMER
|
||||
@ -2059,16 +2072,16 @@ ADDRESS_MAP_START(seta_state::jjsquawb_map)
|
||||
|
||||
AM_RANGE(0x600000, 0x600003) AM_READ(seta_dsw_r) // DSW
|
||||
AM_RANGE(0x700000, 0x70b3ff) AM_RAM // RZ: (rezon,jjsquawk)
|
||||
AM_RANGE(0x70b400, 0x70bfff) AM_RAM AM_SHARE("paletteram") // Palette
|
||||
AM_RANGE(0x70b400, 0x70bfff) AM_RAM AM_SHARE("paletteram1") // Palette
|
||||
AM_RANGE(0x70c000, 0x70ffff) AM_RAM //
|
||||
AM_RANGE(0x800000, 0x803fff) AM_RAM_WRITE(seta_vram_0_w) AM_SHARE("vram_0") // VRAM 0
|
||||
AM_RANGE(0x804000, 0x807fff) AM_RAM_WRITE(seta_vram_2_w) AM_SHARE("vram_2") // VRAM 2
|
||||
AM_RANGE(0x800000, 0x803fff) AM_RAM_WRITE(vram_w<0>) AM_SHARE("vram_0") // VRAM 0
|
||||
AM_RANGE(0x804000, 0x807fff) AM_RAM_WRITE(vram_w<1>) AM_SHARE("vram_1") // VRAM 2
|
||||
AM_RANGE(0x884000, 0x88ffff) AM_RAM // (jjsquawk)
|
||||
AM_RANGE(0x908000, 0x908005) AM_RAM AM_SHARE("vctrl_0") // VRAM 0&1 Ctrl
|
||||
AM_RANGE(0x909000, 0x909005) AM_RAM AM_SHARE("vctrl_2") // VRAM 2&3 Ctrl
|
||||
AM_RANGE(0x909000, 0x909005) AM_RAM AM_SHARE("vctrl_1") // VRAM 2&3 Ctrl
|
||||
AM_RANGE(0xa0a000, 0xa0a5ff) AM_RAM AM_DEVREADWRITE("spritegen", seta001_device, spriteylow_r16, spriteylow_w16) // RZ: Sprites Y
|
||||
AM_RANGE(0xa0a600, 0xa0a607) AM_RAM AM_DEVREADWRITE("spritegen", seta001_device, spritectrl_r16, spritectrl_w16)
|
||||
// AM_RANGE(0xa80000, 0xa80001) AM_RAM // ? 0x4000
|
||||
// AM_RANGE(0xa80000, 0xa80001) AM_RAM // ? 0x4000
|
||||
AM_RANGE(0xb0c000, 0xb0ffff) AM_RAM AM_DEVREADWRITE("spritegen", seta001_device, spritecode_r16, spritecode_w16) // RZ: Sprites Code + X + Attr
|
||||
AM_RANGE(0xc00000, 0xc03fff) AM_DEVREADWRITE("x1snd", x1_010_device, word_r, word_w) // Sound
|
||||
#if __uPD71054_TIMER
|
||||
@ -2098,10 +2111,10 @@ ADDRESS_MAP_START(seta_state::orbs_map)
|
||||
AM_RANGE(0x8000f0, 0x8000f1) AM_RAM // NVRAM
|
||||
AM_RANGE(0x800100, 0x8001ff) AM_RAM // NVRAM
|
||||
AM_RANGE(0xa00000, 0xa03fff) AM_DEVREADWRITE("x1snd", x1_010_device, word_r, word_w) // Sound
|
||||
AM_RANGE(0xb00000, 0xb003ff) AM_RAM AM_SHARE("paletteram") // Palette
|
||||
AM_RANGE(0xb00000, 0xb003ff) AM_RAM AM_SHARE("paletteram1") // Palette
|
||||
AM_RANGE(0xc00000, 0xc03fff) AM_RAM AM_DEVREADWRITE("spritegen", seta001_device, spritecode_r16, spritecode_w16) // Sprites Code + X + Attr
|
||||
/**/AM_RANGE(0xd00000, 0xd00001) AM_RAM // ? 0x4000
|
||||
/**/AM_RANGE(0xe00000, 0xe005ff) AM_RAM AM_DEVREADWRITE("spritegen", seta001_device, spriteylow_r16, spriteylow_w16) // Sprites Y
|
||||
AM_RANGE(0xd00000, 0xd00001) AM_RAM // ? 0x4000
|
||||
AM_RANGE(0xe00000, 0xe005ff) AM_RAM AM_DEVREADWRITE("spritegen", seta001_device, spriteylow_r16, spriteylow_w16) // Sprites Y
|
||||
AM_RANGE(0xe00600, 0xe00607) AM_RAM AM_DEVREADWRITE("spritegen", seta001_device, spritectrl_r16, spritectrl_w16)
|
||||
ADDRESS_MAP_END
|
||||
|
||||
@ -2179,10 +2192,10 @@ ADDRESS_MAP_START(seta_state::keroppi_map)
|
||||
AM_RANGE(0x900000, 0x900001) AM_WRITENOP // ?
|
||||
AM_RANGE(0x900002, 0x900003) AM_WRITE(keroppi_prize_w) //
|
||||
AM_RANGE(0xa00000, 0xa03fff) AM_DEVREADWRITE("x1snd", x1_010_device, word_r, word_w) // Sound
|
||||
AM_RANGE(0xb00000, 0xb003ff) AM_RAM AM_SHARE("paletteram") // Palette
|
||||
AM_RANGE(0xb00000, 0xb003ff) AM_RAM AM_SHARE("paletteram1") // Palette
|
||||
AM_RANGE(0xc00000, 0xc03fff) AM_RAM AM_DEVREADWRITE("spritegen", seta001_device, spritecode_r16, spritecode_w16) // Sprites Code + X + Attr
|
||||
/**/AM_RANGE(0xd00000, 0xd00001) AM_RAM // ? 0x4000
|
||||
/**/AM_RANGE(0xe00000, 0xe005ff) AM_RAM AM_DEVREADWRITE("spritegen", seta001_device, spriteylow_r16, spriteylow_w16) // Sprites Y
|
||||
AM_RANGE(0xd00000, 0xd00001) AM_RAM // ? 0x4000
|
||||
AM_RANGE(0xe00000, 0xe005ff) AM_RAM AM_DEVREADWRITE("spritegen", seta001_device, spriteylow_r16, spriteylow_w16) // Sprites Y
|
||||
AM_RANGE(0xe00600, 0xe00607) AM_RAM AM_DEVREADWRITE("spritegen", seta001_device, spritectrl_r16, spritectrl_w16)
|
||||
ADDRESS_MAP_END
|
||||
|
||||
@ -2210,10 +2223,10 @@ ADDRESS_MAP_START(seta_state::blockcar_map)
|
||||
AM_RANGE(0x500002, 0x500003) AM_READ_PORT("P2") // P2
|
||||
AM_RANGE(0x500004, 0x500005) AM_READ_PORT("COINS") // Coins
|
||||
AM_RANGE(0xa00000, 0xa03fff) AM_DEVREADWRITE("x1snd", x1_010_device, word_r, word_w) // Sound
|
||||
AM_RANGE(0xb00000, 0xb003ff) AM_RAM AM_SHARE("paletteram") // Palette
|
||||
AM_RANGE(0xb00000, 0xb003ff) AM_RAM AM_SHARE("paletteram1") // Palette
|
||||
AM_RANGE(0xc00000, 0xc03fff) AM_RAM AM_DEVREADWRITE("spritegen", seta001_device, spritecode_r16, spritecode_w16) // Sprites Code + X + Attr
|
||||
/**/AM_RANGE(0xd00000, 0xd00001) AM_RAM // ? 0x4000
|
||||
/**/AM_RANGE(0xe00000, 0xe005ff) AM_RAM AM_DEVREADWRITE("spritegen", seta001_device, spriteylow_r16, spriteylow_w16) // Sprites Y
|
||||
AM_RANGE(0xd00000, 0xd00001) AM_RAM // ? 0x4000
|
||||
AM_RANGE(0xe00000, 0xe005ff) AM_RAM AM_DEVREADWRITE("spritegen", seta001_device, spriteylow_r16, spriteylow_w16) // Sprites Y
|
||||
AM_RANGE(0xe00600, 0xe00607) AM_RAM AM_DEVREADWRITE("spritegen", seta001_device, spritectrl_r16, spritectrl_w16)
|
||||
ADDRESS_MAP_END
|
||||
|
||||
@ -2232,10 +2245,10 @@ ADDRESS_MAP_START(seta_state::blockcarb_map)
|
||||
AM_RANGE(0x500008, 0x500009) AM_DEVWRITE8("oki", okim6295_device, write, 0x00ff)
|
||||
//AM_RANGE(0x50000c, 0x50000d) // ??
|
||||
AM_RANGE(0xa00000, 0xa03fff) AM_NOP // Sound - not on this bootleg
|
||||
AM_RANGE(0xb00000, 0xb003ff) AM_RAM AM_SHARE("paletteram") // Palette
|
||||
AM_RANGE(0xb00000, 0xb003ff) AM_RAM AM_SHARE("paletteram1") // Palette
|
||||
AM_RANGE(0xc00000, 0xc03fff) AM_RAM AM_DEVREADWRITE("spritegen", seta001_device, spritecode_r16, spritecode_w16) // Sprites Code + X + Attr
|
||||
/**/AM_RANGE(0xd00000, 0xd00001) AM_RAM // ? 0x4000
|
||||
/**/AM_RANGE(0xe00000, 0xe005ff) AM_RAM AM_DEVREADWRITE("spritegen", seta001_device, spriteylow_r16, spriteylow_w16) // Sprites Y
|
||||
AM_RANGE(0xd00000, 0xd00001) AM_RAM // ? 0x4000
|
||||
AM_RANGE(0xe00000, 0xe005ff) AM_RAM AM_DEVREADWRITE("spritegen", seta001_device, spriteylow_r16, spriteylow_w16) // Sprites Y
|
||||
AM_RANGE(0xe00600, 0xe00607) AM_RAM AM_DEVREADWRITE("spritegen", seta001_device, spritectrl_r16, spritectrl_w16)
|
||||
ADDRESS_MAP_END
|
||||
|
||||
@ -2253,14 +2266,14 @@ ADDRESS_MAP_START(seta_state::daioh_map)
|
||||
AM_RANGE(0x500006, 0x500007) AM_READ_PORT("EXTRA") // Buttons 4,5,6
|
||||
AM_RANGE(0x600000, 0x600003) AM_READ(seta_dsw_r ) // DSW
|
||||
AM_RANGE(0x700000, 0x7003ff) AM_RAM
|
||||
AM_RANGE(0x700400, 0x700fff) AM_RAM AM_SHARE("paletteram") // Palette
|
||||
AM_RANGE(0x700400, 0x700fff) AM_RAM AM_SHARE("paletteram1") // Palette
|
||||
AM_RANGE(0x701000, 0x70ffff) AM_RAM //
|
||||
AM_RANGE(0x800000, 0x803fff) AM_RAM_WRITE(seta_vram_0_w) AM_SHARE("vram_0") // VRAM 0&1
|
||||
AM_RANGE(0x800000, 0x803fff) AM_RAM_WRITE(vram_w<0>) AM_SHARE("vram_0") // VRAM 0&1
|
||||
AM_RANGE(0x804000, 0x80ffff) AM_RAM //
|
||||
AM_RANGE(0x880000, 0x883fff) AM_RAM_WRITE(seta_vram_2_w) AM_SHARE("vram_2") // VRAM 2&3
|
||||
AM_RANGE(0x880000, 0x883fff) AM_RAM_WRITE(vram_w<1>) AM_SHARE("vram_1") // VRAM 2&3
|
||||
AM_RANGE(0x884000, 0x88ffff) AM_RAM //
|
||||
AM_RANGE(0x900000, 0x900005) AM_RAM AM_SHARE("vctrl_0") // VRAM 0&1 Ctrl
|
||||
AM_RANGE(0x980000, 0x980005) AM_RAM AM_SHARE("vctrl_2") // VRAM 2&3 Ctrl
|
||||
AM_RANGE(0x980000, 0x980005) AM_RAM AM_SHARE("vctrl_1") // VRAM 2&3 Ctrl
|
||||
AM_RANGE(0xa00000, 0xa005ff) AM_RAM AM_DEVREADWRITE("spritegen", seta001_device, spriteylow_r16, spriteylow_w16) // Sprites Y
|
||||
AM_RANGE(0xa00600, 0xa00607) AM_RAM AM_DEVREADWRITE("spritegen", seta001_device, spritectrl_r16, spritectrl_w16)
|
||||
|
||||
@ -2287,14 +2300,14 @@ ADDRESS_MAP_START(seta_state::daiohp_map)
|
||||
AM_RANGE(0x500006, 0x500007) AM_READ_PORT("EXTRA") // Buttons 4,5,6
|
||||
AM_RANGE(0x600000, 0x600003) AM_READ(seta_dsw_r ) // DSW
|
||||
AM_RANGE(0x700000, 0x7003ff) AM_RAM
|
||||
AM_RANGE(0x700400, 0x700fff) AM_RAM AM_SHARE("paletteram") // Palette
|
||||
AM_RANGE(0x700400, 0x700fff) AM_RAM AM_SHARE("paletteram1") // Palette
|
||||
AM_RANGE(0x701000, 0x70ffff) AM_RAM //
|
||||
AM_RANGE(0x800000, 0x803fff) AM_RAM_WRITE(seta_vram_0_w) AM_SHARE("vram_0") // VRAM 0&1
|
||||
AM_RANGE(0x800000, 0x803fff) AM_RAM_WRITE(vram_w<0>) AM_SHARE("vram_0") // VRAM 0&1
|
||||
AM_RANGE(0x804000, 0x80ffff) AM_RAM //
|
||||
AM_RANGE(0x880000, 0x883fff) AM_RAM_WRITE(seta_vram_2_w) AM_SHARE("vram_2") // VRAM 2&3
|
||||
AM_RANGE(0x880000, 0x883fff) AM_RAM_WRITE(vram_w<1>) AM_SHARE("vram_1") // VRAM 2&3
|
||||
AM_RANGE(0x884000, 0x88ffff) AM_RAM //
|
||||
AM_RANGE(0x900000, 0x900005) AM_RAM AM_SHARE("vctrl_0") // VRAM 0&1 Ctrl
|
||||
AM_RANGE(0x980000, 0x980005) AM_RAM AM_SHARE("vctrl_2") // VRAM 2&3 Ctrl
|
||||
AM_RANGE(0x980000, 0x980005) AM_RAM AM_SHARE("vctrl_1") // VRAM 2&3 Ctrl
|
||||
AM_RANGE(0xa00000, 0xa005ff) AM_RAM AM_DEVREADWRITE("spritegen", seta001_device, spriteylow_r16, spriteylow_w16) // Sprites Y
|
||||
AM_RANGE(0xa00600, 0xa00607) AM_RAM AM_DEVREADWRITE("spritegen", seta001_device, spritectrl_r16, spritectrl_w16)
|
||||
|
||||
@ -2321,16 +2334,16 @@ ADDRESS_MAP_START(seta_state::drgnunit_map)
|
||||
AM_RANGE(0x300000, 0x300001) AM_WRITENOP // ? IRQ Ack
|
||||
AM_RANGE(0x500000, 0x500001) AM_RAM_WRITE(seta_vregs_w) AM_SHARE("vregs") // Coin Lockout + Video Registers
|
||||
AM_RANGE(0x600000, 0x600003) AM_READ(seta_dsw_r) // DSW
|
||||
AM_RANGE(0x700000, 0x7003ff) AM_RAM AM_SHARE("paletteram") // Palette
|
||||
AM_RANGE(0x700000, 0x7003ff) AM_RAM AM_SHARE("paletteram1") // Palette
|
||||
AM_RANGE(0x800000, 0x800005) AM_RAM AM_SHARE("vctrl_0") // VRAM Ctrl
|
||||
AM_RANGE(0x900000, 0x903fff) AM_RAM_WRITE(seta_vram_0_w) AM_SHARE("vram_0") // VRAM
|
||||
AM_RANGE(0x900000, 0x903fff) AM_RAM_WRITE(vram_w<0>) AM_SHARE("vram_0") // VRAM
|
||||
AM_RANGE(0x904000, 0x90ffff) AM_WRITENOP // unused (qzkklogy)
|
||||
AM_RANGE(0xb00000, 0xb00001) AM_READ_PORT("P1") // P1
|
||||
AM_RANGE(0xb00002, 0xb00003) AM_READ_PORT("P2") // P2
|
||||
AM_RANGE(0xb00004, 0xb00005) AM_READ_PORT("COINS") // Coins
|
||||
AM_RANGE(0xb00006, 0xb00007) AM_READNOP // unused (qzkklogy)
|
||||
/**/AM_RANGE(0xc00000, 0xc00001) AM_RAM // ? $4000
|
||||
/**/AM_RANGE(0xd00000, 0xd005ff) AM_RAM AM_DEVREADWRITE("spritegen", seta001_device, spriteylow_r16, spriteylow_w16) // Sprites Y
|
||||
AM_RANGE(0xc00000, 0xc00001) AM_RAM // ? $4000
|
||||
AM_RANGE(0xd00000, 0xd005ff) AM_RAM AM_DEVREADWRITE("spritegen", seta001_device, spriteylow_r16, spriteylow_w16) // Sprites Y
|
||||
AM_RANGE(0xd00600, 0xd00607) AM_RAM AM_DEVREADWRITE("spritegen", seta001_device, spritectrl_r16, spritectrl_w16)
|
||||
AM_RANGE(0xe00000, 0xe03fff) AM_RAM AM_DEVREADWRITE("spritegen", seta001_device, spritecode_r16, spritecode_w16) // Sprites Code + X + Attr
|
||||
ADDRESS_MAP_END
|
||||
@ -2495,7 +2508,7 @@ ADDRESS_MAP_START(setaroul_state::setaroul_map)
|
||||
|
||||
AM_RANGE(0xdc0000, 0xdc3fff) AM_DEVREADWRITE("x1snd", x1_010_device, word_r, word_w) // Sound
|
||||
|
||||
AM_RANGE(0xe00000, 0xe03fff) AM_RAM_WRITE(seta_vram_0_w) AM_SHARE("vram_0")
|
||||
AM_RANGE(0xe00000, 0xe03fff) AM_RAM_WRITE(vram_w<0>) AM_SHARE("vram_0")
|
||||
AM_RANGE(0xe40000, 0xe40005) AM_RAM AM_SHARE("vctrl_0") // VRAM Ctrl
|
||||
AM_RANGE(0xf00000, 0xf03fff) AM_READWRITE(spritecode_r, spritecode_w)
|
||||
AM_RANGE(0xf40000, 0xf40bff) AM_WRITE(spriteylow_w)
|
||||
@ -2521,17 +2534,17 @@ ADDRESS_MAP_START(seta_state::extdwnhl_map)
|
||||
AM_RANGE(0x40000c, 0x40000d) AM_DEVREADWRITE("watchdog", watchdog_timer_device, reset16_r, reset16_w) // Watchdog (extdwnhl (R) & sokonuke (W) MUST RETURN $FFFF)
|
||||
AM_RANGE(0x500000, 0x500003) AM_RAM_WRITE(seta_vregs_w) AM_SHARE("vregs") // Coin Lockout + Video Registers
|
||||
AM_RANGE(0x500004, 0x500007) AM_NOP // IRQ Ack (extdwnhl (R) & sokonuke (W))
|
||||
AM_RANGE(0x600400, 0x600fff) AM_RAM AM_SHARE("paletteram") // Palette
|
||||
AM_RANGE(0x600400, 0x600fff) AM_RAM AM_SHARE("paletteram1") // Palette
|
||||
AM_RANGE(0x601000, 0x610bff) AM_RAM //
|
||||
AM_RANGE(0x800000, 0x803fff) AM_RAM_WRITE(seta_vram_0_w) AM_SHARE("vram_0") // VRAM 0&1
|
||||
AM_RANGE(0x800000, 0x803fff) AM_RAM_WRITE(vram_w<0>) AM_SHARE("vram_0") // VRAM 0&1
|
||||
AM_RANGE(0x804000, 0x80ffff) AM_RAM //
|
||||
AM_RANGE(0x880000, 0x883fff) AM_RAM_WRITE(seta_vram_2_w) AM_SHARE("vram_2") // VRAM 2&3
|
||||
AM_RANGE(0x880000, 0x883fff) AM_RAM_WRITE(vram_w<1>) AM_SHARE("vram_1") // VRAM 2&3
|
||||
AM_RANGE(0x884000, 0x88ffff) AM_RAM //
|
||||
/**/AM_RANGE(0x900000, 0x900005) AM_RAM AM_SHARE("vctrl_0") // VRAM 0&1 Ctrl
|
||||
/**/AM_RANGE(0x980000, 0x980005) AM_RAM AM_SHARE("vctrl_2") // VRAM 2&3 Ctrl
|
||||
/**/AM_RANGE(0xa00000, 0xa005ff) AM_RAM AM_DEVREADWRITE("spritegen", seta001_device, spriteylow_r16, spriteylow_w16) // Sprites Y
|
||||
AM_RANGE(0x900000, 0x900005) AM_RAM AM_SHARE("vctrl_0") // VRAM 0&1 Ctrl
|
||||
AM_RANGE(0x980000, 0x980005) AM_RAM AM_SHARE("vctrl_1") // VRAM 2&3 Ctrl
|
||||
AM_RANGE(0xa00000, 0xa005ff) AM_RAM AM_DEVREADWRITE("spritegen", seta001_device, spriteylow_r16, spriteylow_w16) // Sprites Y
|
||||
AM_RANGE(0xa00600, 0xa00607) AM_RAM AM_DEVREADWRITE("spritegen", seta001_device, spritectrl_r16, spritectrl_w16)
|
||||
/**/AM_RANGE(0xa80000, 0xa80001) AM_RAM // ? 0x4000
|
||||
AM_RANGE(0xa80000, 0xa80001) AM_RAM // ? 0x4000
|
||||
AM_RANGE(0xb00000, 0xb03fff) AM_RAM AM_DEVREADWRITE("spritegen", seta001_device, spritecode_r16, spritecode_w16) // Sprites Code + X + Attr
|
||||
AM_RANGE(0xb04000, 0xb13fff) AM_RAM //
|
||||
AM_RANGE(0xe00000, 0xe03fff) AM_DEVREADWRITE("x1snd", x1_010_device, word_r, word_w) // Sound
|
||||
@ -2554,14 +2567,14 @@ ADDRESS_MAP_START(seta_state::kamenrid_map)
|
||||
AM_RANGE(0x600004, 0x600005) AM_WRITE(ipl1_ack_w)
|
||||
AM_RANGE(0x600006, 0x600007) AM_WRITE(ipl2_ack_w)
|
||||
AM_RANGE(0x700000, 0x7003ff) AM_RAM // Palette RAM (tested)
|
||||
AM_RANGE(0x700400, 0x700fff) AM_RAM AM_SHARE("paletteram") // Palette
|
||||
AM_RANGE(0x700400, 0x700fff) AM_RAM AM_SHARE("paletteram1") // Palette
|
||||
AM_RANGE(0x701000, 0x703fff) AM_RAM // Palette
|
||||
AM_RANGE(0x800000, 0x803fff) AM_RAM_WRITE(seta_vram_0_w) AM_SHARE("vram_0") // VRAM 0&1
|
||||
AM_RANGE(0x800000, 0x803fff) AM_RAM_WRITE(vram_w<0>) AM_SHARE("vram_0") // VRAM 0&1
|
||||
AM_RANGE(0x804000, 0x807fff) AM_RAM // tested
|
||||
AM_RANGE(0x880000, 0x883fff) AM_RAM_WRITE(seta_vram_2_w) AM_SHARE("vram_2") // VRAM 2&3
|
||||
AM_RANGE(0x880000, 0x883fff) AM_RAM_WRITE(vram_w<1>) AM_SHARE("vram_1") // VRAM 2&3
|
||||
AM_RANGE(0x884000, 0x887fff) AM_RAM // tested
|
||||
AM_RANGE(0x900000, 0x900005) AM_RAM AM_SHARE("vctrl_0") // VRAM 0&1 Ctrl
|
||||
AM_RANGE(0x980000, 0x980005) AM_RAM AM_SHARE("vctrl_2") // VRAM 2&3 Ctrl
|
||||
AM_RANGE(0x980000, 0x980005) AM_RAM AM_SHARE("vctrl_1") // VRAM 2&3 Ctrl
|
||||
AM_RANGE(0xa00000, 0xa005ff) AM_RAM AM_DEVREADWRITE("spritegen", seta001_device, spriteylow_r16, spriteylow_w16) // Sprites Y
|
||||
AM_RANGE(0xa00600, 0xa00607) AM_RAM AM_DEVREADWRITE("spritegen", seta001_device, spritectrl_r16, spritectrl_w16)
|
||||
AM_RANGE(0xa80000, 0xa80001) AM_RAM // ? $4000
|
||||
@ -2583,11 +2596,11 @@ ADDRESS_MAP_START(seta_state::madshark_map)
|
||||
AM_RANGE(0x600000, 0x600005) AM_RAM_WRITE(seta_vregs_w) AM_SHARE("vregs") // ? Coin Lockout + Video Registers
|
||||
AM_RANGE(0x600004, 0x600005) AM_WRITE(ipl1_ack_w)
|
||||
AM_RANGE(0x600006, 0x600007) AM_WRITE(ipl2_ack_w)
|
||||
AM_RANGE(0x700400, 0x700fff) AM_RAM AM_SHARE("paletteram") // Palette
|
||||
AM_RANGE(0x800000, 0x803fff) AM_RAM_WRITE(seta_vram_0_w) AM_SHARE("vram_0") // VRAM 0&1
|
||||
AM_RANGE(0x880000, 0x883fff) AM_RAM_WRITE(seta_vram_2_w) AM_SHARE("vram_2") // VRAM 2&3
|
||||
AM_RANGE(0x700400, 0x700fff) AM_RAM AM_SHARE("paletteram1") // Palette
|
||||
AM_RANGE(0x800000, 0x803fff) AM_RAM_WRITE(vram_w<0>) AM_SHARE("vram_0") // VRAM 0&1
|
||||
AM_RANGE(0x880000, 0x883fff) AM_RAM_WRITE(vram_w<1>) AM_SHARE("vram_1") // VRAM 2&3
|
||||
AM_RANGE(0x900000, 0x900005) AM_RAM AM_SHARE("vctrl_0") // VRAM 0&1 Ctrl
|
||||
AM_RANGE(0x980000, 0x980005) AM_RAM AM_SHARE("vctrl_2") // VRAM 2&3 Ctrl
|
||||
AM_RANGE(0x980000, 0x980005) AM_RAM AM_SHARE("vctrl_1") // VRAM 2&3 Ctrl
|
||||
|
||||
AM_RANGE(0xa00000, 0xa005ff) AM_RAM AM_DEVREADWRITE("spritegen", seta001_device, spriteylow_r16, spriteylow_w16) // Sprites Y
|
||||
AM_RANGE(0xa00600, 0xa00607) AM_RAM AM_DEVREADWRITE("spritegen", seta001_device, spritectrl_r16, spritectrl_w16)
|
||||
@ -2623,14 +2636,14 @@ ADDRESS_MAP_START(seta_state::magspeed_map)
|
||||
AM_RANGE(0x600000, 0x600005) AM_WRITE(magspeed_lights_w) // Lights
|
||||
AM_RANGE(0x600006, 0x600007) AM_WRITENOP // ?
|
||||
AM_RANGE(0x700000, 0x7003ff) AM_RAM // Palette RAM (tested)
|
||||
AM_RANGE(0x700400, 0x700fff) AM_RAM AM_SHARE("paletteram") // Palette
|
||||
AM_RANGE(0x700400, 0x700fff) AM_RAM AM_SHARE("paletteram1") // Palette
|
||||
AM_RANGE(0x701000, 0x703fff) AM_RAM // Palette RAM (tested)
|
||||
AM_RANGE(0x800000, 0x803fff) AM_RAM_WRITE(seta_vram_0_w) AM_SHARE("vram_0") // VRAM 0&1
|
||||
AM_RANGE(0x800000, 0x803fff) AM_RAM_WRITE(vram_w<0>) AM_SHARE("vram_0") // VRAM 0&1
|
||||
AM_RANGE(0x804000, 0x807fff) AM_RAM // tested
|
||||
AM_RANGE(0x880000, 0x883fff) AM_RAM_WRITE(seta_vram_2_w) AM_SHARE("vram_2") // VRAM 2&3
|
||||
AM_RANGE(0x880000, 0x883fff) AM_RAM_WRITE(vram_w<1>) AM_SHARE("vram_1") // VRAM 2&3
|
||||
AM_RANGE(0x884000, 0x887fff) AM_RAM // tested
|
||||
AM_RANGE(0x900000, 0x900005) AM_RAM AM_SHARE("vctrl_0") // VRAM 0&1 Ctrl
|
||||
AM_RANGE(0x980000, 0x980005) AM_RAM AM_SHARE("vctrl_2") // VRAM 2&3 Ctrl
|
||||
AM_RANGE(0x980000, 0x980005) AM_RAM AM_SHARE("vctrl_1") // VRAM 2&3 Ctrl
|
||||
AM_RANGE(0xa00000, 0xa005ff) AM_RAM AM_DEVREADWRITE("spritegen", seta001_device, spriteylow_r16, spriteylow_w16) // Sprites Y
|
||||
AM_RANGE(0xa00600, 0xa00607) AM_RAM AM_DEVREADWRITE("spritegen", seta001_device, spritectrl_r16, spritectrl_w16)
|
||||
AM_RANGE(0xa80000, 0xa80001) AM_RAM // ? $4000
|
||||
@ -2660,10 +2673,10 @@ ADDRESS_MAP_START(seta_state::krzybowl_map)
|
||||
AM_RANGE(0x8000f0, 0x8000f1) AM_RAM // NVRAM
|
||||
AM_RANGE(0x800100, 0x8001ff) AM_RAM // NVRAM
|
||||
AM_RANGE(0xa00000, 0xa03fff) AM_DEVREADWRITE("x1snd", x1_010_device, word_r, word_w) // Sound
|
||||
AM_RANGE(0xb00000, 0xb003ff) AM_RAM AM_SHARE("paletteram") // Palette
|
||||
AM_RANGE(0xb00000, 0xb003ff) AM_RAM AM_SHARE("paletteram1") // Palette
|
||||
AM_RANGE(0xc00000, 0xc03fff) AM_RAM AM_DEVREADWRITE("spritegen", seta001_device, spritecode_r16, spritecode_w16) // Sprites Code + X + Attr
|
||||
/**/AM_RANGE(0xd00000, 0xd00001) AM_RAM // ? 0x4000
|
||||
/**/AM_RANGE(0xe00000, 0xe005ff) AM_RAM AM_DEVREADWRITE("spritegen", seta001_device, spriteylow_r16, spriteylow_w16) // Sprites Y
|
||||
AM_RANGE(0xd00000, 0xd00001) AM_RAM // ? 0x4000
|
||||
AM_RANGE(0xe00000, 0xe005ff) AM_RAM AM_DEVREADWRITE("spritegen", seta001_device, spriteylow_r16, spriteylow_w16) // Sprites Y
|
||||
AM_RANGE(0xe00600, 0xe00607) AM_RAM AM_DEVREADWRITE("spritegen", seta001_device, spritectrl_r16, spritectrl_w16)
|
||||
ADDRESS_MAP_END
|
||||
|
||||
@ -2696,15 +2709,15 @@ ADDRESS_MAP_START(seta_state::msgundam_map)
|
||||
AM_RANGE(0x400004, 0x400005) AM_WRITE(ipl2_ack_w) // Lev 4 IRQ Ack
|
||||
AM_RANGE(0x500000, 0x500005) AM_RAM_WRITE(msgundam_vregs_w) AM_SHARE("vregs") // Coin Lockout + Video Registers
|
||||
AM_RANGE(0x600000, 0x600003) AM_READ(seta_dsw_r) // DSW
|
||||
AM_RANGE(0x700400, 0x700fff) AM_RAM AM_SHARE("paletteram") // Palette
|
||||
AM_RANGE(0x700400, 0x700fff) AM_RAM AM_SHARE("paletteram1") // Palette
|
||||
AM_RANGE(0x800000, 0x8005ff) AM_RAM AM_DEVREADWRITE("spritegen", seta001_device, spriteylow_r16, spriteylow_w16) // Sprites Y
|
||||
AM_RANGE(0x800600, 0x800607) AM_RAM AM_DEVREADWRITE("spritegen", seta001_device, spritectrl_r16, spritectrl_w16)
|
||||
AM_RANGE(0x880000, 0x880001) AM_RAM // ? 0x4000
|
||||
AM_RANGE(0x900000, 0x903fff) AM_RAM AM_DEVREADWRITE("spritegen", seta001_device, spritecode_r16, spritecode_w16) // Sprites Code + X + Attr
|
||||
AM_RANGE(0xa00000, 0xa03fff) AM_RAM_WRITE(seta_vram_0_w) AM_SHARE("vram_0") // VRAM 0&1
|
||||
AM_RANGE(0xa80000, 0xa83fff) AM_RAM_WRITE(seta_vram_2_w) AM_SHARE("vram_2") // VRAM 2&3
|
||||
AM_RANGE(0xa00000, 0xa03fff) AM_RAM_WRITE(vram_w<0>) AM_SHARE("vram_0") // VRAM 0&1
|
||||
AM_RANGE(0xa80000, 0xa83fff) AM_RAM_WRITE(vram_w<1>) AM_SHARE("vram_1") // VRAM 2&3
|
||||
AM_RANGE(0xb00000, 0xb00005) AM_RAM AM_SHARE("vctrl_0") // VRAM 0&1 Ctrl
|
||||
AM_RANGE(0xb80000, 0xb80005) AM_RAM AM_SHARE("vctrl_2") // VRAM 2&3 Ctrl
|
||||
AM_RANGE(0xb80000, 0xb80005) AM_RAM AM_SHARE("vctrl_1") // VRAM 2&3 Ctrl
|
||||
AM_RANGE(0xc00000, 0xc03fff) AM_DEVREADWRITE("x1snd", x1_010_device, word_r, word_w) // Sound
|
||||
AM_RANGE(0xd00000, 0xd00007) AM_DEVREADWRITE8("pit", pit8254_device, read, write, 0x00ff)
|
||||
ADDRESS_MAP_END
|
||||
@ -2726,15 +2739,15 @@ ADDRESS_MAP_START(seta_state::oisipuzl_map)
|
||||
AM_RANGE(0x400000, 0x400001) AM_WRITENOP // ? IRQ Ack
|
||||
AM_RANGE(0x500000, 0x500005) AM_RAM_WRITE(seta_vregs_w) AM_SHARE("vregs") // Coin Lockout + Video Registers
|
||||
AM_RANGE(0x700000, 0x703fff) AM_DEVREADWRITE("x1snd", x1_010_device, word_r, word_w) // Sound
|
||||
AM_RANGE(0x800000, 0x803fff) AM_RAM_WRITE(seta_vram_0_w) AM_SHARE("vram_0") // VRAM 0&1
|
||||
AM_RANGE(0x880000, 0x883fff) AM_RAM_WRITE(seta_vram_2_w) AM_SHARE("vram_2") // VRAM 2&3
|
||||
/**/AM_RANGE(0x900000, 0x900005) AM_RAM AM_SHARE("vctrl_0") // VRAM 0&1 Ctrl
|
||||
/**/AM_RANGE(0x980000, 0x980005) AM_RAM AM_SHARE("vctrl_2") // VRAM 2&3 Ctrl
|
||||
/**/AM_RANGE(0xa00000, 0xa005ff) AM_RAM AM_DEVREADWRITE("spritegen", seta001_device, spriteylow_r16, spriteylow_w16) // Sprites Y
|
||||
AM_RANGE(0x800000, 0x803fff) AM_RAM_WRITE(vram_w<0>) AM_SHARE("vram_0") // VRAM 0&1
|
||||
AM_RANGE(0x880000, 0x883fff) AM_RAM_WRITE(vram_w<1>) AM_SHARE("vram_1") // VRAM 2&3
|
||||
AM_RANGE(0x900000, 0x900005) AM_RAM AM_SHARE("vctrl_0") // VRAM 0&1 Ctrl
|
||||
AM_RANGE(0x980000, 0x980005) AM_RAM AM_SHARE("vctrl_1") // VRAM 2&3 Ctrl
|
||||
AM_RANGE(0xa00000, 0xa005ff) AM_RAM AM_DEVREADWRITE("spritegen", seta001_device, spriteylow_r16, spriteylow_w16) // Sprites Y
|
||||
AM_RANGE(0xa00600, 0xa00607) AM_RAM AM_DEVREADWRITE("spritegen", seta001_device, spritectrl_r16, spritectrl_w16)
|
||||
/**/AM_RANGE(0xa80000, 0xa80001) AM_RAM // ? 0x4000
|
||||
AM_RANGE(0xa80000, 0xa80001) AM_RAM // ? 0x4000
|
||||
AM_RANGE(0xb00000, 0xb03fff) AM_RAM AM_DEVREADWRITE("spritegen", seta001_device, spritecode_r16, spritecode_w16) // Sprites Code + X + Attr
|
||||
AM_RANGE(0xc00400, 0xc00fff) AM_RAM AM_SHARE("paletteram") // Palette
|
||||
AM_RANGE(0xc00400, 0xc00fff) AM_RAM AM_SHARE("paletteram1") // Palette
|
||||
ADDRESS_MAP_END
|
||||
|
||||
|
||||
@ -2755,15 +2768,15 @@ ADDRESS_MAP_START(seta_state::triplfun_map)
|
||||
AM_RANGE(0x400000, 0x400001) AM_WRITENOP // ? IRQ Ack
|
||||
AM_RANGE(0x500000, 0x500005) AM_RAM_WRITE(seta_vregs_w) AM_SHARE("vregs") // Coin Lockout + Video Registers
|
||||
AM_RANGE(0x500006, 0x500007) AM_DEVREADWRITE8("oki", okim6295_device, read, write, 0x00ff) // tfun sound
|
||||
AM_RANGE(0x800000, 0x803fff) AM_RAM_WRITE(seta_vram_0_w) AM_SHARE("vram_0") // VRAM 0&1
|
||||
AM_RANGE(0x880000, 0x883fff) AM_RAM_WRITE(seta_vram_2_w) AM_SHARE("vram_2") // VRAM 2&3
|
||||
/**/AM_RANGE(0x900000, 0x900005) AM_RAM AM_SHARE("vctrl_0") // VRAM 0&1 Ctrl
|
||||
/**/AM_RANGE(0x980000, 0x980005) AM_RAM AM_SHARE("vctrl_2") // VRAM 2&3 Ctrl
|
||||
/**/AM_RANGE(0xa00000, 0xa005ff) AM_RAM AM_DEVREADWRITE("spritegen", seta001_device, spriteylow_r16, spriteylow_w16) // Sprites Y
|
||||
AM_RANGE(0x800000, 0x803fff) AM_RAM_WRITE(vram_w<0>) AM_SHARE("vram_0") // VRAM 0&1
|
||||
AM_RANGE(0x880000, 0x883fff) AM_RAM_WRITE(vram_w<1>) AM_SHARE("vram_1") // VRAM 2&3
|
||||
AM_RANGE(0x900000, 0x900005) AM_RAM AM_SHARE("vctrl_0") // VRAM 0&1 Ctrl
|
||||
AM_RANGE(0x980000, 0x980005) AM_RAM AM_SHARE("vctrl_1") // VRAM 2&3 Ctrl
|
||||
AM_RANGE(0xa00000, 0xa005ff) AM_RAM AM_DEVREADWRITE("spritegen", seta001_device, spriteylow_r16, spriteylow_w16) // Sprites Y
|
||||
AM_RANGE(0xa00600, 0xa00607) AM_RAM AM_DEVREADWRITE("spritegen", seta001_device, spritectrl_r16, spritectrl_w16)
|
||||
/**/AM_RANGE(0xa80000, 0xa80001) AM_RAM // ? 0x4000
|
||||
AM_RANGE(0xa80000, 0xa80001) AM_RAM // ? 0x4000
|
||||
AM_RANGE(0xb00000, 0xb03fff) AM_RAM AM_DEVREADWRITE("spritegen", seta001_device, spritecode_r16, spritecode_w16) // Sprites Code + X + Attr
|
||||
AM_RANGE(0xc00400, 0xc00fff) AM_RAM AM_SHARE("paletteram") // Palette
|
||||
AM_RANGE(0xc00400, 0xc00fff) AM_RAM AM_SHARE("paletteram1") // Palette
|
||||
ADDRESS_MAP_END
|
||||
|
||||
|
||||
@ -2803,10 +2816,10 @@ ADDRESS_MAP_START(seta_state::kiwame_map)
|
||||
AM_RANGE(0x000000, 0x07ffff) AM_ROM // ROM
|
||||
AM_RANGE(0x200000, 0x20ffff) AM_RAM AM_SHARE("nvram") // RAM
|
||||
AM_RANGE(0x800000, 0x803fff) AM_RAM AM_DEVREADWRITE("spritegen", seta001_device, spritecode_r16, spritecode_w16) // Sprites Code + X + Attr
|
||||
/**/AM_RANGE(0x900000, 0x900001) AM_RAM // ? 0x4000
|
||||
/**/AM_RANGE(0xa00000, 0xa005ff) AM_RAM AM_DEVREADWRITE("spritegen", seta001_device, spriteylow_r16, spriteylow_w16) // Sprites Y
|
||||
AM_RANGE(0x900000, 0x900001) AM_RAM // ? 0x4000
|
||||
AM_RANGE(0xa00000, 0xa005ff) AM_RAM AM_DEVREADWRITE("spritegen", seta001_device, spriteylow_r16, spriteylow_w16) // Sprites Y
|
||||
AM_RANGE(0xa00600, 0xa00607) AM_RAM AM_DEVREADWRITE("spritegen", seta001_device, spritectrl_r16, spritectrl_w16)
|
||||
AM_RANGE(0xb00000, 0xb003ff) AM_RAM AM_SHARE("paletteram") // Palette
|
||||
AM_RANGE(0xb00000, 0xb003ff) AM_RAM AM_SHARE("paletteram1") // Palette
|
||||
AM_RANGE(0xc00000, 0xc03fff) AM_DEVREADWRITE("x1snd", x1_010_device, word_r, word_w) // Sound
|
||||
AM_RANGE(0xd00000, 0xd00009) AM_READ(kiwame_input_r) // mahjong panel
|
||||
AM_RANGE(0xe00000, 0xe00003) AM_READ(seta_dsw_r) // DSW
|
||||
@ -2839,15 +2852,15 @@ ADDRESS_MAP_START(seta_state::thunderl_map)
|
||||
AM_RANGE(0x400000, 0x40ffff) AM_WRITE(thunderl_protection_w) // Protection (not in wits)
|
||||
AM_RANGE(0x500000, 0x500001) AM_RAM_WRITE(seta_vregs_w) AM_SHARE("vregs") // Coin Lockout
|
||||
AM_RANGE(0x600000, 0x600003) AM_READ(seta_dsw_r) // DSW
|
||||
AM_RANGE(0x700000, 0x7003ff) AM_RAM AM_SHARE("paletteram") // Palette
|
||||
AM_RANGE(0x700000, 0x7003ff) AM_RAM AM_SHARE("paletteram1") // Palette
|
||||
AM_RANGE(0xb00000, 0xb00001) AM_READ_PORT("P1") // P1
|
||||
AM_RANGE(0xb00002, 0xb00003) AM_READ_PORT("P2") // P2
|
||||
AM_RANGE(0xb00004, 0xb00005) AM_READ_PORT("COINS") // Coins
|
||||
AM_RANGE(0xb0000c, 0xb0000d) AM_READ(thunderl_protection_r ) // Protection (not in wits)
|
||||
AM_RANGE(0xb00008, 0xb00009) AM_READ_PORT("P3") // P3 (wits)
|
||||
AM_RANGE(0xb0000a, 0xb0000b) AM_READ_PORT("P4") // P4 (wits)
|
||||
/**/AM_RANGE(0xc00000, 0xc00001) AM_RAM // ? 0x4000
|
||||
/**/AM_RANGE(0xd00000, 0xd005ff) AM_RAM AM_DEVREADWRITE("spritegen", seta001_device, spriteylow_r16, spriteylow_w16) // Sprites Y
|
||||
AM_RANGE(0xc00000, 0xc00001) AM_RAM // ? 0x4000
|
||||
AM_RANGE(0xd00000, 0xd005ff) AM_RAM AM_DEVREADWRITE("spritegen", seta001_device, spriteylow_r16, spriteylow_w16) // Sprites Y
|
||||
AM_RANGE(0xd00600, 0xd00607) AM_RAM AM_DEVREADWRITE("spritegen", seta001_device, spritectrl_r16, spritectrl_w16)
|
||||
AM_RANGE(0xe00000, 0xe03fff) AM_RAM AM_DEVREADWRITE("spritegen", seta001_device, spritecode_r16, spritecode_w16) // Sprites Code + X + Attr
|
||||
AM_RANGE(0xe04000, 0xe07fff) AM_RAM // (wits)
|
||||
@ -2863,15 +2876,15 @@ ADDRESS_MAP_START(seta_state::thunderlbl_map)
|
||||
// AM_RANGE(0x400000, 0x40ffff) AM_WRITE(thunderl_protection_w) // Protection (not in wits)
|
||||
AM_RANGE(0x500000, 0x500001) AM_RAM_WRITE(seta_vregs_w) AM_SHARE("vregs") // Coin Lockout
|
||||
AM_RANGE(0x600000, 0x600003) AM_READ(seta_dsw_r) // DSW
|
||||
AM_RANGE(0x700000, 0x7003ff) AM_RAM AM_SHARE("paletteram") // Palette
|
||||
AM_RANGE(0x700000, 0x7003ff) AM_RAM AM_SHARE("paletteram1") // Palette
|
||||
AM_RANGE(0xb00000, 0xb00001) AM_READ_PORT("P1") // P1
|
||||
AM_RANGE(0xb00002, 0xb00003) AM_READ_PORT("P2") // P2
|
||||
AM_RANGE(0xb00004, 0xb00005) AM_READ_PORT("COINS") // Coins
|
||||
// AM_RANGE(0xb0000c, 0xb0000d) AM_READ(thunderl_protection_r ) // Protection (not in wits)
|
||||
AM_RANGE(0xb00008, 0xb00009) AM_READ_PORT("P3") AM_DEVWRITE8("soundlatch", generic_latch_8_device, write, 0xff00) // P3 (wits)
|
||||
AM_RANGE(0xb00008, 0xb00009) AM_READ_PORT("P3") AM_DEVWRITE8("soundlatch1", generic_latch_8_device, write, 0xff00) // P3 (wits)
|
||||
AM_RANGE(0xb0000a, 0xb0000b) AM_READ_PORT("P4") // P4 (wits)
|
||||
/**/AM_RANGE(0xc00000, 0xc00001) AM_RAM // ? 0x4000
|
||||
/**/AM_RANGE(0xd00000, 0xd005ff) AM_RAM AM_DEVREADWRITE("spritegen", seta001_device, spriteylow_r16, spriteylow_w16) // Sprites Y
|
||||
AM_RANGE(0xc00000, 0xc00001) AM_RAM // ? 0x4000
|
||||
AM_RANGE(0xd00000, 0xd005ff) AM_RAM AM_DEVREADWRITE("spritegen", seta001_device, spriteylow_r16, spriteylow_w16) // Sprites Y
|
||||
AM_RANGE(0xd00600, 0xd00607) AM_RAM AM_DEVREADWRITE("spritegen", seta001_device, spritectrl_r16, spritectrl_w16)
|
||||
AM_RANGE(0xe00000, 0xe03fff) AM_RAM AM_DEVREADWRITE("spritegen", seta001_device, spritecode_r16, spritecode_w16) // Sprites Code + X + Attr
|
||||
AM_RANGE(0xe04000, 0xe07fff) AM_RAM // (wits)
|
||||
@ -2890,16 +2903,16 @@ ADDRESS_MAP_START(seta_state::wiggie_map)
|
||||
AM_RANGE(0x400000, 0x40ffff) AM_WRITE(thunderl_protection_w) // Protection (not in wits)
|
||||
AM_RANGE(0x500000, 0x500001) AM_RAM_WRITE(seta_vregs_w) AM_SHARE("vregs") // Coin Lockout
|
||||
AM_RANGE(0x600000, 0x600003) AM_READ(seta_dsw_r) // DSW
|
||||
AM_RANGE(0x700000, 0x7003ff) AM_RAM AM_SHARE("paletteram") // Palette
|
||||
AM_RANGE(0x700000, 0x7003ff) AM_RAM AM_SHARE("paletteram1") // Palette
|
||||
AM_RANGE(0xb00000, 0xb00001) AM_READ_PORT("P1") // P1
|
||||
AM_RANGE(0xb00002, 0xb00003) AM_READ_PORT("P2") // P2
|
||||
AM_RANGE(0xb00004, 0xb00005) AM_READ_PORT("COINS") // Coins
|
||||
AM_RANGE(0xb0000c, 0xb0000d) AM_READ(thunderl_protection_r) // Protection (not in wits)
|
||||
AM_RANGE(0xb00008, 0xb00009) AM_READ_PORT("P3") // P3 (wits)
|
||||
AM_RANGE(0xb00008, 0xb00009) AM_DEVWRITE8("soundlatch", generic_latch_8_device, write, 0xff00)
|
||||
AM_RANGE(0xb00008, 0xb00009) AM_DEVWRITE8("soundlatch1", generic_latch_8_device, write, 0xff00)
|
||||
AM_RANGE(0xb0000a, 0xb0000b) AM_READ_PORT("P4") // P4 (wits)
|
||||
/**/AM_RANGE(0xc00000, 0xc00001) AM_RAM // ? 0x4000
|
||||
/**/AM_RANGE(0xd00000, 0xd005ff) AM_RAM AM_DEVREADWRITE("spritegen", seta001_device, spriteylow_r16, spriteylow_w16) // Sprites Y
|
||||
AM_RANGE(0xc00000, 0xc00001) AM_RAM // ? 0x4000
|
||||
AM_RANGE(0xd00000, 0xd005ff) AM_RAM AM_DEVREADWRITE("spritegen", seta001_device, spriteylow_r16, spriteylow_w16) // Sprites Y
|
||||
AM_RANGE(0xd00600, 0xd00607) AM_RAM AM_DEVREADWRITE("spritegen", seta001_device, spritectrl_r16, spritectrl_w16)
|
||||
AM_RANGE(0xe00000, 0xe03fff) AM_RAM AM_DEVREADWRITE("spritegen", seta001_device, spritecode_r16, spritecode_w16) // Sprites Code + X + Attr
|
||||
AM_RANGE(0xe04000, 0xe07fff) AM_RAM // (wits)
|
||||
@ -2909,7 +2922,7 @@ ADDRESS_MAP_START(seta_state::wiggie_sound_map)
|
||||
AM_RANGE(0x0000, 0x7fff) AM_ROM
|
||||
AM_RANGE(0x8000, 0x87ff) AM_RAM
|
||||
AM_RANGE(0x9800, 0x9800) AM_DEVREADWRITE("oki", okim6295_device, read, write)
|
||||
AM_RANGE(0xa000, 0xa000) AM_DEVREAD("soundlatch", generic_latch_8_device, read)
|
||||
AM_RANGE(0xa000, 0xa000) AM_DEVREAD("soundlatch1", generic_latch_8_device, read)
|
||||
ADDRESS_MAP_END
|
||||
|
||||
|
||||
@ -2920,7 +2933,7 @@ ADDRESS_MAP_END
|
||||
ADDRESS_MAP_START(seta_state::umanclub_map)
|
||||
AM_RANGE(0x000000, 0x03ffff) AM_ROM // ROM
|
||||
AM_RANGE(0x200000, 0x20ffff) AM_RAM // RAM
|
||||
AM_RANGE(0x300000, 0x3003ff) AM_RAM AM_SHARE("paletteram") // Palette
|
||||
AM_RANGE(0x300000, 0x3003ff) AM_RAM AM_SHARE("paletteram1") // Palette
|
||||
AM_RANGE(0x300400, 0x300fff) AM_RAM //
|
||||
AM_RANGE(0x400000, 0x400001) AM_READ_PORT("P1") // P1
|
||||
AM_RANGE(0x400002, 0x400003) AM_READ_PORT("P2") // P2
|
||||
@ -2931,7 +2944,7 @@ ADDRESS_MAP_START(seta_state::umanclub_map)
|
||||
AM_RANGE(0x600000, 0x600003) AM_READ(seta_dsw_r) // DSW
|
||||
AM_RANGE(0xa00000, 0xa005ff) AM_RAM AM_DEVREADWRITE("spritegen", seta001_device, spriteylow_r16, spriteylow_w16) // Sprites Y
|
||||
AM_RANGE(0xa00600, 0xa00607) AM_RAM AM_DEVREADWRITE("spritegen", seta001_device, spritectrl_r16, spritectrl_w16)
|
||||
/**/AM_RANGE(0xa80000, 0xa80001) AM_RAM // ? 0x4000
|
||||
AM_RANGE(0xa80000, 0xa80001) AM_RAM // ? 0x4000
|
||||
AM_RANGE(0xb00000, 0xb03fff) AM_RAM AM_DEVREADWRITE("spritegen", seta001_device, spritecode_r16, spritecode_w16) // Sprites Code + X + Attr
|
||||
AM_RANGE(0xc00000, 0xc03fff) AM_DEVREADWRITE("x1snd", x1_010_device, word_r, word_w) // Sound
|
||||
ADDRESS_MAP_END
|
||||
@ -2944,7 +2957,7 @@ ADDRESS_MAP_END
|
||||
WRITE8_MEMBER(seta_state::utoukond_sound_control_w)
|
||||
{
|
||||
if (!BIT(data, 6))
|
||||
m_soundlatch->acknowledge_w(space, 0, 0);
|
||||
m_soundlatch[0]->acknowledge_w(space, 0, 0);
|
||||
|
||||
// other bits used for banking? (low nibble seems to always be 2)
|
||||
}
|
||||
@ -2957,15 +2970,15 @@ ADDRESS_MAP_START(seta_state::utoukond_map)
|
||||
AM_RANGE(0x400004, 0x400005) AM_READ_PORT("COINS") // Coins
|
||||
AM_RANGE(0x500000, 0x500005) AM_RAM_WRITE(seta_vregs_w) AM_SHARE("vregs") // ? Coin Lockout + Video Registers
|
||||
AM_RANGE(0x600000, 0x600003) AM_READ(seta_dsw_r) // DSW
|
||||
AM_RANGE(0x700400, 0x700fff) AM_RAM AM_SHARE("paletteram") // Palette
|
||||
AM_RANGE(0x800000, 0x803fff) AM_RAM_WRITE(seta_vram_0_w) AM_SHARE("vram_0") // VRAM 0&1
|
||||
AM_RANGE(0x880000, 0x883fff) AM_RAM_WRITE(seta_vram_2_w) AM_SHARE("vram_2") // VRAM 2&3
|
||||
AM_RANGE(0x700400, 0x700fff) AM_RAM AM_SHARE("paletteram1") // Palette
|
||||
AM_RANGE(0x800000, 0x803fff) AM_RAM_WRITE(vram_w<0>) AM_SHARE("vram_0") // VRAM 0&1
|
||||
AM_RANGE(0x880000, 0x883fff) AM_RAM_WRITE(vram_w<1>) AM_SHARE("vram_1") // VRAM 2&3
|
||||
AM_RANGE(0x900000, 0x900005) AM_WRITEONLY AM_SHARE("vctrl_0")// VRAM 0&1 Ctrl
|
||||
AM_RANGE(0x980000, 0x980005) AM_WRITEONLY AM_SHARE("vctrl_2")// VRAM 2&3 Ctrl
|
||||
AM_RANGE(0x980000, 0x980005) AM_WRITEONLY AM_SHARE("vctrl_1")// VRAM 2&3 Ctrl
|
||||
AM_RANGE(0xa00000, 0xa005ff) AM_RAM AM_DEVREADWRITE("spritegen", seta001_device, spriteylow_r16, spriteylow_w16) // Sprites Y
|
||||
AM_RANGE(0xa00600, 0xa00607) AM_RAM AM_DEVREADWRITE("spritegen", seta001_device, spritectrl_r16, spritectrl_w16)
|
||||
AM_RANGE(0xb00000, 0xb03fff) AM_RAM AM_DEVREADWRITE("spritegen", seta001_device, spritecode_r16, spritecode_w16) // Sprites Code + X + Attr
|
||||
AM_RANGE(0xc00000, 0xc00001) AM_DEVWRITE8("soundlatch", generic_latch_8_device, write, 0x00ff)
|
||||
AM_RANGE(0xc00000, 0xc00001) AM_DEVWRITE8("soundlatch1", generic_latch_8_device, write, 0x00ff)
|
||||
AM_RANGE(0xe00000, 0xe00001) AM_WRITENOP // ? ack
|
||||
ADDRESS_MAP_END
|
||||
|
||||
@ -3001,7 +3014,7 @@ ADDRESS_MAP_START(seta_state::pairlove_map)
|
||||
AM_RANGE(0x500004, 0x500005) AM_READ_PORT("COINS") // Coins
|
||||
AM_RANGE(0x900000, 0x9001ff) AM_READWRITE(pairlove_prot_r,pairlove_prot_w)
|
||||
AM_RANGE(0xa00000, 0xa03fff) AM_DEVREADWRITE("x1snd", x1_010_device, word_r, word_w) // Sound
|
||||
AM_RANGE(0xb00000, 0xb00fff) AM_RAM AM_SHARE("paletteram") // Palette
|
||||
AM_RANGE(0xb00000, 0xb00fff) AM_RAM AM_SHARE("paletteram1") // Palette
|
||||
AM_RANGE(0xc00000, 0xc03fff) AM_RAM AM_DEVREADWRITE("spritegen", seta001_device, spritecode_r16, spritecode_w16) // Sprites Code + X + Attr
|
||||
AM_RANGE(0xd00000, 0xd00001) AM_RAM // ? 0x4000
|
||||
AM_RANGE(0xe00000, 0xe005ff) AM_RAM AM_DEVREADWRITE("spritegen", seta001_device, spriteylow_r16, spriteylow_w16) // Sprites Y
|
||||
@ -3023,13 +3036,13 @@ ADDRESS_MAP_START(seta_state::crazyfgt_map)
|
||||
AM_RANGE(0x610006, 0x610007) AM_WRITENOP
|
||||
AM_RANGE(0x620000, 0x620003) AM_WRITENOP // protection
|
||||
AM_RANGE(0x630000, 0x630003) AM_READ(seta_dsw_r)
|
||||
AM_RANGE(0x640400, 0x640fff) AM_WRITEONLY AM_SHARE("paletteram") // Palette
|
||||
AM_RANGE(0x640400, 0x640fff) AM_WRITEONLY AM_SHARE("paletteram1") // Palette
|
||||
AM_RANGE(0x650000, 0x650003) AM_DEVWRITE8("ymsnd", ym3812_device, write, 0x00ff)
|
||||
AM_RANGE(0x658000, 0x658001) AM_DEVWRITE8("oki", okim6295_device, write, 0x00ff)
|
||||
AM_RANGE(0x670000, 0x670001) AM_READNOP // watchdog?
|
||||
AM_RANGE(0x800000, 0x803fff) AM_WRITE(seta_vram_2_w) AM_SHARE("vram_2") // VRAM 2
|
||||
AM_RANGE(0x880000, 0x883fff) AM_WRITE(seta_vram_0_w) AM_SHARE("vram_0") // VRAM 0
|
||||
AM_RANGE(0x900000, 0x900005) AM_RAM AM_SHARE("vctrl_2") // VRAM 2&3 Ctrl
|
||||
AM_RANGE(0x800000, 0x803fff) AM_WRITE(vram_w<1>) AM_SHARE("vram_1") // VRAM 2
|
||||
AM_RANGE(0x880000, 0x883fff) AM_WRITE(vram_w<0>) AM_SHARE("vram_0") // VRAM 0
|
||||
AM_RANGE(0x900000, 0x900005) AM_RAM AM_SHARE("vctrl_1") // VRAM 2&3 Ctrl
|
||||
AM_RANGE(0x980000, 0x980005) AM_RAM AM_SHARE("vctrl_0") // VRAM 0&1 Ctrl
|
||||
AM_RANGE(0xa00000, 0xa005ff) AM_RAM AM_DEVREADWRITE("spritegen", seta001_device, spriteylow_r16, spriteylow_w16) // Sprites Y
|
||||
AM_RANGE(0xa00600, 0xa00607) AM_RAM AM_DEVREADWRITE("spritegen", seta001_device, spritectrl_r16, spritectrl_w16)
|
||||
@ -3216,7 +3229,7 @@ ADDRESS_MAP_START(jockeyc_state::jockeyc_map)
|
||||
AM_RANGE(0x900000, 0x903fff) AM_DEVREADWRITE("x1snd", x1_010_device, word_r, word_w) // Sound
|
||||
|
||||
AM_RANGE(0xa00000, 0xa00005) AM_WRITEONLY AM_SHARE("vctrl_0") // VRAM 0&1 Ctrl
|
||||
AM_RANGE(0xb00000, 0xb03fff) AM_RAM_WRITE(seta_vram_0_w) AM_SHARE("vram_0") // VRAM 0&1
|
||||
AM_RANGE(0xb00000, 0xb03fff) AM_RAM_WRITE(vram_w<0>) AM_SHARE("vram_0") // VRAM 0&1
|
||||
AM_RANGE(0xb04000, 0xb0ffff) AM_WRITENOP // likely left-over
|
||||
|
||||
AM_RANGE(0xc00000, 0xc00001) AM_RAM // ? 0x4000
|
||||
@ -3298,7 +3311,7 @@ ADDRESS_MAP_START(jockeyc_state::inttoote_map)
|
||||
AM_RANGE(0x900000, 0x903fff) AM_DEVREADWRITE("x1snd", x1_010_device, word_r, word_w) // Sound
|
||||
|
||||
AM_RANGE(0xa00000, 0xa00005) AM_WRITEONLY AM_SHARE("vctrl_0") // VRAM 0&1 Ctrl
|
||||
AM_RANGE(0xb00000, 0xb03fff) AM_RAM_WRITE(seta_vram_0_w) AM_SHARE("vram_0") // VRAM 0&1
|
||||
AM_RANGE(0xb00000, 0xb03fff) AM_RAM_WRITE(vram_w<0>) AM_SHARE("vram_0") // VRAM 0&1
|
||||
|
||||
AM_RANGE(0xc00000, 0xc00001) AM_RAM // ? 0x4000
|
||||
|
||||
@ -3340,7 +3353,7 @@ READ8_MEMBER(seta_state::ff_r){return 0xff;}
|
||||
ADDRESS_MAP_START(seta_state::tndrcade_sub_map)
|
||||
AM_RANGE(0x0000, 0x01ff) AM_RAM // RAM
|
||||
AM_RANGE(0x0800, 0x0800) AM_READ(ff_r) // ? (bits 0/1/2/3: 1 -> do test 0-ff/100-1e0/5001-57ff/banked rom)
|
||||
//AM_RANGE(0x0800, 0x0800) AM_DEVREAD("soundlatch", generic_latch_8_device, read) //
|
||||
//AM_RANGE(0x0800, 0x0800) AM_DEVREAD("soundlatch1", generic_latch_8_device, read) //
|
||||
//AM_RANGE(0x0801, 0x0801) AM_DEVREAD("soundlatch2", generic_latch_8_device, read) //
|
||||
AM_RANGE(0x1000, 0x1000) AM_READ_PORT("P1") // P1
|
||||
AM_RANGE(0x1000, 0x1000) AM_WRITE(sub_bankswitch_lockout_w) // ROM Bank + Coin Lockout
|
||||
@ -3361,7 +3374,7 @@ ADDRESS_MAP_END
|
||||
|
||||
ADDRESS_MAP_START(seta_state::twineagl_sub_map)
|
||||
AM_RANGE(0x0000, 0x01ff) AM_RAM // RAM
|
||||
AM_RANGE(0x0800, 0x0800) AM_DEVREAD("soundlatch", generic_latch_8_device, read) //
|
||||
AM_RANGE(0x0800, 0x0800) AM_DEVREAD("soundlatch1", generic_latch_8_device, read) //
|
||||
AM_RANGE(0x0801, 0x0801) AM_DEVREAD("soundlatch2", generic_latch_8_device, read) //
|
||||
AM_RANGE(0x1000, 0x1000) AM_READ_PORT("P1") // P1
|
||||
AM_RANGE(0x1000, 0x1000) AM_WRITE(sub_bankswitch_lockout_w) // ROM Bank + Coin Lockout
|
||||
@ -3403,7 +3416,7 @@ READ8_MEMBER(seta_state::downtown_ip_r)
|
||||
|
||||
ADDRESS_MAP_START(seta_state::downtown_sub_map)
|
||||
AM_RANGE(0x0000, 0x01ff) AM_RAM // RAM
|
||||
AM_RANGE(0x0800, 0x0800) AM_DEVREAD("soundlatch", generic_latch_8_device, read) //
|
||||
AM_RANGE(0x0800, 0x0800) AM_DEVREAD("soundlatch1", generic_latch_8_device, read) //
|
||||
AM_RANGE(0x0801, 0x0801) AM_DEVREAD("soundlatch2", generic_latch_8_device, read) //
|
||||
AM_RANGE(0x1000, 0x1007) AM_READ(downtown_ip_r) // Input Ports
|
||||
AM_RANGE(0x1000, 0x1000) AM_WRITE(sub_bankswitch_lockout_w) // ROM Bank + Coin Lockout
|
||||
@ -3431,7 +3444,7 @@ WRITE8_MEMBER(seta_state::calibr50_sub_bankswitch_w)
|
||||
|
||||
// Bit 3: NMICLR
|
||||
if (!BIT(data, 3))
|
||||
m_soundlatch->acknowledge_w(space, 0, 0);
|
||||
m_soundlatch[0]->acknowledge_w(space, 0, 0);
|
||||
|
||||
// Bit 2: IRQCLR
|
||||
if (!BIT(data, 2))
|
||||
@ -3442,13 +3455,13 @@ WRITE8_MEMBER(seta_state::calibr50_sub_bankswitch_w)
|
||||
|
||||
WRITE8_MEMBER(seta_state::calibr50_soundlatch2_w)
|
||||
{
|
||||
m_soundlatch2->write(space,0,data);
|
||||
m_soundlatch[1]->write(space,0,data);
|
||||
m_subcpu->spin_until_time(attotime::from_usec(50)); // Allow the other cpu to reply
|
||||
}
|
||||
|
||||
ADDRESS_MAP_START(seta_state::calibr50_sub_map)
|
||||
AM_RANGE(0x0000, 0x1fff) AM_DEVREADWRITE("x1snd", x1_010_device, read ,write) // Sound
|
||||
AM_RANGE(0x4000, 0x4000) AM_DEVREAD("soundlatch", generic_latch_8_device, read) // From Main CPU
|
||||
AM_RANGE(0x4000, 0x4000) AM_DEVREAD("soundlatch1", generic_latch_8_device, read) // From Main CPU
|
||||
AM_RANGE(0x4000, 0x4000) AM_WRITE(calibr50_sub_bankswitch_w) // Bankswitching
|
||||
AM_RANGE(0x8000, 0xbfff) AM_ROMBANK("subbank") // Banked ROM
|
||||
AM_RANGE(0xc000, 0xffff) AM_ROM // ROM
|
||||
@ -3462,7 +3475,7 @@ ADDRESS_MAP_END
|
||||
|
||||
ADDRESS_MAP_START(seta_state::metafox_sub_map)
|
||||
AM_RANGE(0x0000, 0x01ff) AM_RAM // RAM
|
||||
AM_RANGE(0x0800, 0x0800) AM_DEVREAD("soundlatch", generic_latch_8_device, read) //
|
||||
AM_RANGE(0x0800, 0x0800) AM_DEVREAD("soundlatch1", generic_latch_8_device, read) //
|
||||
AM_RANGE(0x0801, 0x0801) AM_DEVREAD("soundlatch2", generic_latch_8_device, read) //
|
||||
AM_RANGE(0x1000, 0x1000) AM_READ_PORT("COINS") // Coins
|
||||
AM_RANGE(0x1000, 0x1000) AM_WRITE(sub_bankswitch_lockout_w) // ROM Bank + Coin Lockout
|
||||
@ -3490,7 +3503,7 @@ ADDRESS_MAP_START(seta_state::utoukond_sound_io_map)
|
||||
ADDRESS_MAP_GLOBAL_MASK(0xff)
|
||||
AM_RANGE(0x00, 0x03) AM_DEVREADWRITE("ymsnd", ym3438_device, read, write)
|
||||
AM_RANGE(0x80, 0x80) AM_WRITE(utoukond_sound_control_w)
|
||||
AM_RANGE(0xc0, 0xc0) AM_DEVREAD("soundlatch", generic_latch_8_device, read)
|
||||
AM_RANGE(0xc0, 0xc0) AM_DEVREAD("soundlatch1", generic_latch_8_device, read)
|
||||
ADDRESS_MAP_END
|
||||
|
||||
|
||||
@ -7836,7 +7849,7 @@ MACHINE_CONFIG_START(seta_state::twineagl)
|
||||
/* sound hardware */
|
||||
MCFG_SPEAKER_STANDARD_MONO("mono")
|
||||
|
||||
MCFG_GENERIC_LATCH_8_ADD("soundlatch")
|
||||
MCFG_GENERIC_LATCH_8_ADD("soundlatch1")
|
||||
MCFG_GENERIC_LATCH_8_ADD("soundlatch2")
|
||||
|
||||
MCFG_SOUND_ADD("x1snd", X1_010, 16000000) /* 16 MHz */
|
||||
@ -7882,7 +7895,7 @@ MACHINE_CONFIG_START(seta_state::downtown)
|
||||
/* sound hardware */
|
||||
MCFG_SPEAKER_STANDARD_MONO("mono")
|
||||
|
||||
MCFG_GENERIC_LATCH_8_ADD("soundlatch")
|
||||
MCFG_GENERIC_LATCH_8_ADD("soundlatch1")
|
||||
MCFG_GENERIC_LATCH_8_ADD("soundlatch2")
|
||||
|
||||
MCFG_SOUND_ADD("x1snd", X1_010, 16000000) /* 16 MHz */
|
||||
@ -7966,7 +7979,7 @@ MACHINE_CONFIG_START(seta_state::usclssic)
|
||||
/* sound hardware */
|
||||
MCFG_SPEAKER_STANDARD_MONO("mono")
|
||||
|
||||
MCFG_GENERIC_LATCH_8_ADD("soundlatch")
|
||||
MCFG_GENERIC_LATCH_8_ADD("soundlatch1")
|
||||
MCFG_GENERIC_LATCH_DATA_PENDING_CB(INPUTLINE("sub", INPUT_LINE_NMI))
|
||||
MCFG_GENERIC_LATCH_SEPARATE_ACKNOWLEDGE(true)
|
||||
|
||||
@ -8024,7 +8037,7 @@ MACHINE_CONFIG_START(seta_state::calibr50)
|
||||
/* sound hardware */
|
||||
MCFG_SPEAKER_STANDARD_MONO("mono")
|
||||
|
||||
MCFG_GENERIC_LATCH_8_ADD("soundlatch")
|
||||
MCFG_GENERIC_LATCH_8_ADD("soundlatch1")
|
||||
MCFG_GENERIC_LATCH_DATA_PENDING_CB(INPUTLINE("sub", INPUT_LINE_NMI))
|
||||
MCFG_GENERIC_LATCH_SEPARATE_ACKNOWLEDGE(true)
|
||||
|
||||
@ -8074,7 +8087,7 @@ MACHINE_CONFIG_START(seta_state::metafox)
|
||||
/* sound hardware */
|
||||
MCFG_SPEAKER_STANDARD_MONO("mono")
|
||||
|
||||
MCFG_GENERIC_LATCH_8_ADD("soundlatch")
|
||||
MCFG_GENERIC_LATCH_8_ADD("soundlatch1")
|
||||
MCFG_GENERIC_LATCH_8_ADD("soundlatch2")
|
||||
|
||||
MCFG_SOUND_ADD("x1snd", X1_010, 16000000) /* 16 MHz */
|
||||
@ -8252,7 +8265,7 @@ ADDRESS_MAP_START(seta_state::blockcarb_sound_portmap)
|
||||
ADDRESS_MAP_UNMAP_HIGH
|
||||
ADDRESS_MAP_GLOBAL_MASK(0xff)
|
||||
// AM_RANGE(0x00, 0x01) AM_MIRROR(0x3e) AM_DEVREADWRITE("ymsnd", ym2151_device, read, write)
|
||||
// AM_RANGE(0xc0, 0xc0) AM_MIRROR(0x3f) AM_DEVREAD("soundlatch", generic_latch_8_device, read)
|
||||
// AM_RANGE(0xc0, 0xc0) AM_MIRROR(0x3f) AM_DEVREAD("soundlatch1", generic_latch_8_device, read)
|
||||
ADDRESS_MAP_END
|
||||
|
||||
MACHINE_CONFIG_START(seta_state::blockcarb)
|
||||
@ -9261,7 +9274,7 @@ ADDRESS_MAP_START(seta_state::thunderlbl_sound_portmap)
|
||||
ADDRESS_MAP_UNMAP_HIGH
|
||||
ADDRESS_MAP_GLOBAL_MASK(0xff)
|
||||
AM_RANGE(0x00, 0x01) AM_MIRROR(0x3e) AM_DEVREADWRITE("ymsnd", ym2151_device, read, write)
|
||||
AM_RANGE(0xc0, 0xc0) AM_MIRROR(0x3f) AM_DEVREAD("soundlatch", generic_latch_8_device, read)
|
||||
AM_RANGE(0xc0, 0xc0) AM_MIRROR(0x3f) AM_DEVREAD("soundlatch1", generic_latch_8_device, read)
|
||||
ADDRESS_MAP_END
|
||||
|
||||
|
||||
@ -9283,7 +9296,7 @@ MACHINE_CONFIG_START(seta_state::thunderlbl)
|
||||
MCFG_YM2151_ADD("ymsnd", 10000000/2)
|
||||
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0)
|
||||
|
||||
MCFG_GENERIC_LATCH_8_ADD("soundlatch")
|
||||
MCFG_GENERIC_LATCH_8_ADD("soundlatch1")
|
||||
MCFG_GENERIC_LATCH_DATA_PENDING_CB(INPUTLINE("audiocpu", 0))
|
||||
MACHINE_CONFIG_END
|
||||
|
||||
@ -9322,7 +9335,7 @@ MACHINE_CONFIG_START(seta_state::wiggie)
|
||||
MCFG_OKIM6295_ADD("oki", 1000000, PIN7_HIGH)
|
||||
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0)
|
||||
|
||||
MCFG_GENERIC_LATCH_8_ADD("soundlatch")
|
||||
MCFG_GENERIC_LATCH_8_ADD("soundlatch1")
|
||||
MCFG_GENERIC_LATCH_DATA_PENDING_CB(INPUTLINE("audiocpu", 0))
|
||||
MACHINE_CONFIG_END
|
||||
|
||||
@ -9438,7 +9451,7 @@ MACHINE_CONFIG_START(seta_state::utoukond)
|
||||
/* sound hardware */
|
||||
MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker")
|
||||
|
||||
MCFG_GENERIC_LATCH_8_ADD("soundlatch")
|
||||
MCFG_GENERIC_LATCH_8_ADD("soundlatch1")
|
||||
MCFG_GENERIC_LATCH_DATA_PENDING_CB(INPUTLINE("audiocpu", 0))
|
||||
MCFG_GENERIC_LATCH_SEPARATE_ACKNOWLEDGE(true)
|
||||
|
||||
@ -11769,6 +11782,10 @@ WRITE16_MEMBER(seta_state::downtown_protection_w)
|
||||
DRIVER_INIT_MEMBER(seta_state,downtown)
|
||||
{
|
||||
DRIVER_INIT_CALL(bank6502);
|
||||
|
||||
m_downtown_protection = make_unique_clear<uint16_t[]>(0x200/2);
|
||||
save_pointer(NAME(m_downtown_protection.get()),0x200/2);
|
||||
|
||||
m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0x200000, 0x2001ff, read16_delegate(FUNC(seta_state::downtown_protection_r),this), write16_delegate(FUNC(seta_state::downtown_protection_w),this));
|
||||
}
|
||||
|
||||
@ -11877,6 +11894,14 @@ DRIVER_INIT_MEMBER(seta_state,rezon)
|
||||
m_maincpu->space(AS_PROGRAM).nop_read(0x500006, 0x500007); // irq ack?
|
||||
}
|
||||
|
||||
DRIVER_INIT_MEMBER(seta_state,pairlove)
|
||||
{
|
||||
m_pairslove_protram = make_unique_clear<uint16_t[]>(0x200/2);
|
||||
m_pairslove_protram_old = make_unique_clear<uint16_t[]>(0x200/2);
|
||||
save_pointer(NAME(m_pairslove_protram.get()), 0x200/2);
|
||||
save_pointer(NAME(m_pairslove_protram_old.get()), 0x200/2);
|
||||
}
|
||||
|
||||
DRIVER_INIT_MEMBER(seta_state,wiggie)
|
||||
{
|
||||
uint8_t *src;
|
||||
@ -11979,7 +12004,7 @@ GAME( 1992, rezont, rezon, rezon, rezont, seta_state, rezon,
|
||||
|
||||
GAME( 1991, stg, 0, drgnunit, stg, seta_state, 0, ROT270, "Athena / Tecmo", "Strike Gunner S.T.G", 0 )
|
||||
|
||||
GAME( 1991, pairlove, 0, pairlove, pairlove, seta_state, 0, ROT270, "Athena", "Pairs Love", 0 )
|
||||
GAME( 1991, pairlove, 0, pairlove, pairlove, seta_state, pairlove, ROT270, "Athena", "Pairs Love", 0 )
|
||||
|
||||
GAME( 1992, blandia, 0, blandia, blandia, seta_state, blandia, ROT0, "Allumer", "Blandia", MACHINE_IMPERFECT_GRAPHICS )
|
||||
GAME( 1992, blandiap, blandia, blandiap, blandia, seta_state, 0, ROT0, "Allumer", "Blandia (prototype)", MACHINE_IMPERFECT_GRAPHICS )
|
||||
|
@ -45,30 +45,24 @@ public:
|
||||
m_subcpu(*this,"sub"),
|
||||
m_seta001(*this, "spritegen"),
|
||||
m_x1(*this, "x1snd"),
|
||||
m_soundlatch(*this, "soundlatch"),
|
||||
m_soundlatch2(*this, "soundlatch2"),
|
||||
m_soundlatch(*this, "soundlatch%u", 1),
|
||||
m_upd4701(*this, "upd4701"),
|
||||
m_buttonmux(*this, "buttonmux"),
|
||||
m_adc(*this, "adc"),
|
||||
m_dsw(*this, "DSW"),
|
||||
m_rot(*this, {"ROT1", "ROT2"}),
|
||||
m_rot(*this, "ROT%u", 1),
|
||||
m_gun_inputs(*this, {"GUNX1", "GUNY1", "GUNX2", "GUNY2"}),
|
||||
m_p1(*this, "P1"),
|
||||
m_p2(*this, "P2"),
|
||||
m_coins(*this, "COINS"),
|
||||
m_extra_port(*this, "EXTRA"),
|
||||
m_track1_x(*this, "TRACK1_X"),
|
||||
m_track1_y(*this, "TRACK1_Y"),
|
||||
m_track2_x(*this, "TRACK2_X"),
|
||||
m_track2_y(*this, "TRACK2_Y"),
|
||||
m_track_x(*this, "TRACK%u_X", 1),
|
||||
m_track_y(*this, "TRACK%u_Y", 1),
|
||||
m_sharedram(*this,"sharedram"),
|
||||
m_vregs(*this,"vregs"),
|
||||
m_vram_0(*this,"vram_0"),
|
||||
m_vctrl_0(*this,"vctrl_0"),
|
||||
m_vram_2(*this,"vram_2"),
|
||||
m_vctrl_2(*this,"vctrl_2"),
|
||||
m_paletteram(*this,"paletteram"),
|
||||
m_paletteram2(*this,"paletteram2"),
|
||||
m_vram(*this,"vram_%u", 0),
|
||||
m_vctrl(*this,"vctrl_%u", 0),
|
||||
m_paletteram(*this,"paletteram%u", 1),
|
||||
m_subbank(*this,"subbank"),
|
||||
m_gfxdecode(*this, "gfxdecode"),
|
||||
m_palette(*this, "palette") { }
|
||||
@ -78,8 +72,7 @@ public:
|
||||
optional_device<cpu_device> m_subcpu;
|
||||
required_device<seta001_device> m_seta001;
|
||||
optional_device<x1_010_device> m_x1;
|
||||
optional_device<generic_latch_8_device> m_soundlatch;
|
||||
optional_device<generic_latch_8_device> m_soundlatch2;
|
||||
optional_device_array<generic_latch_8_device, 2> m_soundlatch;
|
||||
optional_device<upd4701_device> m_upd4701;
|
||||
optional_device<hc157_device> m_buttonmux;
|
||||
optional_device<adc083x_device> m_adc;
|
||||
@ -91,19 +84,14 @@ public:
|
||||
optional_ioport m_p2;
|
||||
optional_ioport m_coins;
|
||||
optional_ioport m_extra_port;
|
||||
optional_ioport m_track1_x;
|
||||
optional_ioport m_track1_y;
|
||||
optional_ioport m_track2_x;
|
||||
optional_ioport m_track2_y;
|
||||
optional_ioport_array<2> m_track_x;
|
||||
optional_ioport_array<2> m_track_y;
|
||||
|
||||
optional_shared_ptr<uint8_t> m_sharedram;
|
||||
optional_shared_ptr<uint16_t> m_vregs;
|
||||
optional_shared_ptr<uint16_t> m_vram_0;
|
||||
optional_shared_ptr<uint16_t> m_vctrl_0;
|
||||
optional_shared_ptr<uint16_t> m_vram_2;
|
||||
optional_shared_ptr<uint16_t> m_vctrl_2;
|
||||
optional_shared_ptr<uint16_t> m_paletteram;
|
||||
optional_shared_ptr<uint16_t> m_paletteram2;
|
||||
optional_shared_ptr_array<uint16_t, 2> m_vram;
|
||||
optional_shared_ptr_array<uint16_t, 2> m_vctrl;
|
||||
optional_shared_ptr_array<uint16_t, 2> m_paletteram;
|
||||
|
||||
optional_memory_bank m_subbank;
|
||||
|
||||
@ -111,10 +99,7 @@ public:
|
||||
required_device<palette_device> m_palette;
|
||||
|
||||
int m_tiles_offset;
|
||||
tilemap_t *m_tilemap_0;
|
||||
tilemap_t *m_tilemap_1; // Layer 0
|
||||
tilemap_t *m_tilemap_2;
|
||||
tilemap_t *m_tilemap_3; // Layer 1
|
||||
tilemap_t *m_tilemap[2][2]; // Max 2 Layers, 2 Tilemap banks for each layers
|
||||
int m_tilemaps_flip;
|
||||
int m_samples_bank;
|
||||
int m_color_mode_shift;
|
||||
@ -137,16 +122,15 @@ public:
|
||||
|
||||
uint16_t m_magspeed_lights[3];
|
||||
|
||||
uint16_t m_pairslove_protram[0x200];
|
||||
uint16_t m_pairslove_protram_old[0x200];
|
||||
uint16_t m_downtown_protection[0x200/2];
|
||||
std::unique_ptr<uint16_t[]> m_pairslove_protram;
|
||||
std::unique_ptr<uint16_t[]> m_pairslove_protram_old;
|
||||
std::unique_ptr<uint16_t[]> m_downtown_protection;
|
||||
|
||||
uint16_t m_kiwame_row_select;
|
||||
|
||||
DECLARE_READ16_MEMBER(metafox_protection_r);
|
||||
DECLARE_WRITE16_MEMBER(seta_vregs_w);
|
||||
DECLARE_WRITE16_MEMBER(seta_vram_0_w);
|
||||
DECLARE_WRITE16_MEMBER(seta_vram_2_w);
|
||||
template<int Layer> DECLARE_WRITE16_MEMBER(vram_w);
|
||||
DECLARE_WRITE16_MEMBER(twineagl_tilebank_w);
|
||||
DECLARE_WRITE16_MEMBER(timer_regs_w);
|
||||
DECLARE_READ16_MEMBER(sharedram_68000_r);
|
||||
@ -200,12 +184,9 @@ public:
|
||||
DECLARE_DRIVER_INIT(blandia);
|
||||
DECLARE_DRIVER_INIT(kiwame);
|
||||
DECLARE_DRIVER_INIT(eightfrc);
|
||||
TILE_GET_INFO_MEMBER(twineagl_get_tile_info_0);
|
||||
TILE_GET_INFO_MEMBER(twineagl_get_tile_info_1);
|
||||
TILE_GET_INFO_MEMBER(get_tile_info_0);
|
||||
TILE_GET_INFO_MEMBER(get_tile_info_1);
|
||||
TILE_GET_INFO_MEMBER(get_tile_info_2);
|
||||
TILE_GET_INFO_MEMBER(get_tile_info_3);
|
||||
DECLARE_DRIVER_INIT(pairlove);
|
||||
template<int Offset> TILE_GET_INFO_MEMBER(twineagl_get_tile_info);
|
||||
template<int Layer, int Offset> TILE_GET_INFO_MEMBER(get_tile_info);
|
||||
DECLARE_VIDEO_START(seta_no_layers);
|
||||
DECLARE_VIDEO_START(kyustrkr_no_layers);
|
||||
DECLARE_VIDEO_START(twineagl_1_layer);
|
||||
@ -244,8 +225,6 @@ public:
|
||||
TIMER_DEVICE_CALLBACK_MEMBER(calibr50_interrupt);
|
||||
TIMER_DEVICE_CALLBACK_MEMBER(crazyfgt_interrupt);
|
||||
void seta_coin_lockout_w(int data);
|
||||
inline void twineagl_tile_info( tile_data &tileinfo, int tile_index, int offset );
|
||||
inline void get_tile_info( tile_data &tileinfo, int tile_index, int layer, int offset );
|
||||
void set_pens();
|
||||
void usclssic_set_pens();
|
||||
void draw_tilemap_palette_effect(bitmap_ind16 &bitmap, const rectangle &cliprect, tilemap_t *tilemap, int scrollx, int scrolly, int gfxnum, int flipscreen);
|
||||
|
@ -371,9 +371,10 @@ Offset + 0x4:
|
||||
|
||||
***************************************************************************/
|
||||
|
||||
inline void seta_state::twineagl_tile_info( tile_data &tileinfo, int tile_index, int offset )
|
||||
template<int Offset>
|
||||
TILE_GET_INFO_MEMBER(seta_state::twineagl_get_tile_info)
|
||||
{
|
||||
uint16_t *vram = m_vram_0 + offset;
|
||||
uint16_t *vram = m_vram[0] + Offset;
|
||||
uint16_t code = vram[ tile_index ];
|
||||
uint16_t attr = vram[ tile_index + 0x800 ];
|
||||
if ((code & 0x3e00) == 0x3e00)
|
||||
@ -381,15 +382,12 @@ inline void seta_state::twineagl_tile_info( tile_data &tileinfo, int tile_index,
|
||||
SET_TILE_INFO_MEMBER(1, (code & 0x3fff), attr & 0x1f, TILE_FLIPXY((code & 0xc000) >> 14) );
|
||||
}
|
||||
|
||||
TILE_GET_INFO_MEMBER(seta_state::twineagl_get_tile_info_0){ twineagl_tile_info(tileinfo, tile_index, 0x0000 ); }
|
||||
TILE_GET_INFO_MEMBER(seta_state::twineagl_get_tile_info_1){ twineagl_tile_info(tileinfo, tile_index, 0x1000 ); }
|
||||
|
||||
|
||||
inline void seta_state::get_tile_info( tile_data &tileinfo, int tile_index, int layer, int offset )
|
||||
template<int Layer, int Offset>
|
||||
TILE_GET_INFO_MEMBER(seta_state::get_tile_info)
|
||||
{
|
||||
int gfx = 1 + layer;
|
||||
uint16_t *vram = (layer == 0) ? m_vram_0 + offset : m_vram_2 + offset;
|
||||
uint16_t *vctrl = (layer == 0) ? m_vctrl_0 : m_vctrl_2;
|
||||
int gfx = 1 + Layer;
|
||||
uint16_t *vram = m_vram[Layer] + Offset;
|
||||
uint16_t *vctrl = m_vctrl[Layer];
|
||||
uint16_t code = vram[ tile_index ];
|
||||
uint16_t attr = vram[ tile_index + 0x800 ];
|
||||
|
||||
@ -399,35 +397,12 @@ inline void seta_state::get_tile_info( tile_data &tileinfo, int tile_index, int
|
||||
}
|
||||
else
|
||||
{
|
||||
popmessage("Missing Color Mode = 1 for Layer = %d. Contact MAMETesters.",layer);
|
||||
popmessage("Missing Color Mode = 1 for Layer = %d. Contact MAMETesters.",Layer);
|
||||
}
|
||||
|
||||
SET_TILE_INFO_MEMBER(gfx, m_tiles_offset + (code & 0x3fff), attr & 0x1f, TILE_FLIPXY((code & 0xc000) >> 14) );
|
||||
}
|
||||
|
||||
TILE_GET_INFO_MEMBER(seta_state::get_tile_info_0){ get_tile_info(tileinfo, tile_index, 0, 0x0000 ); }
|
||||
TILE_GET_INFO_MEMBER(seta_state::get_tile_info_1){ get_tile_info(tileinfo, tile_index, 0, 0x1000 ); }
|
||||
TILE_GET_INFO_MEMBER(seta_state::get_tile_info_2){ get_tile_info(tileinfo, tile_index, 1, 0x0000 ); }
|
||||
TILE_GET_INFO_MEMBER(seta_state::get_tile_info_3){ get_tile_info(tileinfo, tile_index, 1, 0x1000 ); }
|
||||
|
||||
|
||||
WRITE16_MEMBER(seta_state::seta_vram_0_w)
|
||||
{
|
||||
COMBINE_DATA(&m_vram_0[offset]);
|
||||
if (offset & 0x1000)
|
||||
m_tilemap_1->mark_tile_dirty(offset & 0x7ff);
|
||||
else
|
||||
m_tilemap_0->mark_tile_dirty(offset & 0x7ff);
|
||||
}
|
||||
|
||||
WRITE16_MEMBER(seta_state::seta_vram_2_w)
|
||||
{
|
||||
COMBINE_DATA(&m_vram_2[offset]);
|
||||
if (offset & 0x1000)
|
||||
m_tilemap_3->mark_tile_dirty(offset & 0x7ff);
|
||||
else
|
||||
m_tilemap_2->mark_tile_dirty(offset & 0x7ff);
|
||||
}
|
||||
|
||||
WRITE16_MEMBER(seta_state::twineagl_tilebank_w)
|
||||
{
|
||||
@ -453,31 +428,30 @@ VIDEO_START_MEMBER(seta_state,seta_2_layers)
|
||||
at any given time */
|
||||
|
||||
/* layer 0 */
|
||||
m_tilemap_0 = &machine().tilemap().create(
|
||||
*m_gfxdecode, tilemap_get_info_delegate(FUNC(seta_state::get_tile_info_0),this), TILEMAP_SCAN_ROWS,
|
||||
m_tilemap[0][0] = &machine().tilemap().create(
|
||||
*m_gfxdecode, tilemap_get_info_delegate(&seta_state::get_tile_info<0, 0x0000>, "layer1_bank0", this), TILEMAP_SCAN_ROWS,
|
||||
16,16, 64,32 );
|
||||
|
||||
m_tilemap_1 = &machine().tilemap().create(
|
||||
*m_gfxdecode, tilemap_get_info_delegate(FUNC(seta_state::get_tile_info_1),this), TILEMAP_SCAN_ROWS,
|
||||
m_tilemap[0][1] = &machine().tilemap().create(
|
||||
*m_gfxdecode, tilemap_get_info_delegate(&seta_state::get_tile_info<0, 0x1000>, "layer1_bank1", this), TILEMAP_SCAN_ROWS,
|
||||
16,16, 64,32 );
|
||||
|
||||
|
||||
/* layer 1 */
|
||||
m_tilemap_2 = &machine().tilemap().create(
|
||||
*m_gfxdecode, tilemap_get_info_delegate(FUNC(seta_state::get_tile_info_2),this), TILEMAP_SCAN_ROWS,
|
||||
m_tilemap[1][0] = &machine().tilemap().create(
|
||||
*m_gfxdecode, tilemap_get_info_delegate(&seta_state::get_tile_info<1, 0x0000>, "layer2_bank0", this), TILEMAP_SCAN_ROWS,
|
||||
16,16, 64,32 );
|
||||
|
||||
m_tilemap_3 = &machine().tilemap().create(
|
||||
*m_gfxdecode, tilemap_get_info_delegate(FUNC(seta_state::get_tile_info_3),this), TILEMAP_SCAN_ROWS,
|
||||
m_tilemap[1][1] = &machine().tilemap().create(
|
||||
*m_gfxdecode, tilemap_get_info_delegate(&seta_state::get_tile_info<1, 0x1000>, "layer2_bank1", this), TILEMAP_SCAN_ROWS,
|
||||
16,16, 64,32 );
|
||||
|
||||
m_tilemaps_flip = 0;
|
||||
m_color_mode_shift = 3;
|
||||
|
||||
m_tilemap_0->set_transparent_pen(0);
|
||||
m_tilemap_1->set_transparent_pen(0);
|
||||
m_tilemap_2->set_transparent_pen(0);
|
||||
m_tilemap_3->set_transparent_pen(0);
|
||||
for (int layer = 0; layer < 2; layer++)
|
||||
for (int bank = 0; bank < 2; bank++)
|
||||
m_tilemap[layer][bank]->set_transparent_pen(0);
|
||||
}
|
||||
|
||||
VIDEO_START_MEMBER(seta_state,oisipuzl_2_layers)
|
||||
@ -499,18 +473,18 @@ VIDEO_START_MEMBER(seta_state,seta_1_layer)
|
||||
at any given time */
|
||||
|
||||
/* layer 0 */
|
||||
m_tilemap_0 = &machine().tilemap().create(
|
||||
*m_gfxdecode, tilemap_get_info_delegate(FUNC(seta_state::get_tile_info_0),this), TILEMAP_SCAN_ROWS,
|
||||
m_tilemap[0][0] = &machine().tilemap().create(
|
||||
*m_gfxdecode, tilemap_get_info_delegate(&seta_state::get_tile_info<0, 0x0000>, "layer1_bank0", this), TILEMAP_SCAN_ROWS,
|
||||
16,16, 64,32 );
|
||||
|
||||
m_tilemap_1 = &machine().tilemap().create(
|
||||
*m_gfxdecode, tilemap_get_info_delegate(FUNC(seta_state::get_tile_info_1),this), TILEMAP_SCAN_ROWS,
|
||||
m_tilemap[0][1] = &machine().tilemap().create(
|
||||
*m_gfxdecode, tilemap_get_info_delegate(&seta_state::get_tile_info<0, 0x1000>, "layer1_bank1", this), TILEMAP_SCAN_ROWS,
|
||||
16,16, 64,32 );
|
||||
|
||||
m_color_mode_shift = 4;
|
||||
|
||||
m_tilemap_0->set_transparent_pen(0);
|
||||
m_tilemap_1->set_transparent_pen(0);
|
||||
|
||||
for (int bank = 0; bank < 2; bank++)
|
||||
m_tilemap[0][bank]->set_transparent_pen(0);
|
||||
}
|
||||
|
||||
VIDEO_START_MEMBER(setaroul_state,setaroul_1_layer)
|
||||
@ -538,16 +512,16 @@ VIDEO_START_MEMBER(seta_state,twineagl_1_layer)
|
||||
at any given time */
|
||||
|
||||
/* layer 0 */
|
||||
m_tilemap_0 = &machine().tilemap().create(
|
||||
*m_gfxdecode, tilemap_get_info_delegate(FUNC(seta_state::twineagl_get_tile_info_0),this), TILEMAP_SCAN_ROWS,
|
||||
m_tilemap[0][0] = &machine().tilemap().create(
|
||||
*m_gfxdecode, tilemap_get_info_delegate(FUNC(seta_state::twineagl_get_tile_info<0x0000>),this), TILEMAP_SCAN_ROWS,
|
||||
16,16, 64,32 );
|
||||
|
||||
m_tilemap_1 = &machine().tilemap().create(
|
||||
*m_gfxdecode, tilemap_get_info_delegate(FUNC(seta_state::twineagl_get_tile_info_1),this), TILEMAP_SCAN_ROWS,
|
||||
m_tilemap[0][1] = &machine().tilemap().create(
|
||||
*m_gfxdecode, tilemap_get_info_delegate(FUNC(seta_state::twineagl_get_tile_info<0x1000>),this), TILEMAP_SCAN_ROWS,
|
||||
16,16, 64,32 );
|
||||
|
||||
m_tilemap_0->set_transparent_pen(0);
|
||||
m_tilemap_1->set_transparent_pen(0);
|
||||
|
||||
for (int bank = 0; bank < 2; bank++)
|
||||
m_tilemap[0][bank]->set_transparent_pen(0);
|
||||
}
|
||||
|
||||
SETA001_SPRITE_GFXBANK_CB_MEMBER(seta_state::setac_gfxbank_callback)
|
||||
@ -561,10 +535,10 @@ SETA001_SPRITE_GFXBANK_CB_MEMBER(seta_state::setac_gfxbank_callback)
|
||||
/* NO layers, only sprites */
|
||||
VIDEO_START_MEMBER(seta_state,seta_no_layers)
|
||||
{
|
||||
m_tilemap_0 = nullptr;
|
||||
m_tilemap_1 = nullptr;
|
||||
m_tilemap_2 = nullptr;
|
||||
m_tilemap_3 = nullptr;
|
||||
m_tilemap[0][0] = nullptr;
|
||||
m_tilemap[0][1] = nullptr;
|
||||
m_tilemap[1][0] = nullptr;
|
||||
m_tilemap[1][1] = nullptr;
|
||||
|
||||
m_tilemaps_flip = 0;
|
||||
|
||||
@ -733,9 +707,9 @@ void seta_state::set_pens()
|
||||
{
|
||||
offs_t i;
|
||||
|
||||
for (i = 0; i < m_paletteram.bytes() / 2; i++)
|
||||
for (i = 0; i < m_paletteram[0].bytes() / 2; i++)
|
||||
{
|
||||
uint16_t data = m_paletteram[i];
|
||||
uint16_t data = m_paletteram[0][i];
|
||||
|
||||
rgb_t color = rgb_t(pal5bit(data >> 10), pal5bit(data >> 5), pal5bit(data >> 0));
|
||||
|
||||
@ -745,18 +719,18 @@ void seta_state::set_pens()
|
||||
m_palette->set_pen_color(i, color);
|
||||
}
|
||||
|
||||
if(m_paletteram2 != nullptr)
|
||||
if(m_paletteram[1] != nullptr)
|
||||
{
|
||||
for (i = 0; i < m_paletteram2.bytes() / 2; i++)
|
||||
for (i = 0; i < m_paletteram[1].bytes() / 2; i++)
|
||||
{
|
||||
uint16_t data = m_paletteram2[i];
|
||||
uint16_t data = m_paletteram[1][i];
|
||||
|
||||
rgb_t color = rgb_t(pal5bit(data >> 10), pal5bit(data >> 5), pal5bit(data >> 0));
|
||||
|
||||
if (m_palette->indirect_entries() != 0)
|
||||
m_palette->set_indirect_color(i + m_paletteram.bytes() / 2, color);
|
||||
m_palette->set_indirect_color(i + m_paletteram[0].bytes() / 2, color);
|
||||
else
|
||||
m_palette->set_pen_color(i + m_paletteram.bytes() / 2, color);
|
||||
m_palette->set_pen_color(i + m_paletteram[0].bytes() / 2, color);
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -768,7 +742,7 @@ void seta_state::usclssic_set_pens()
|
||||
|
||||
for (i = 0; i < 0x200; i++)
|
||||
{
|
||||
uint16_t data = m_paletteram[i];
|
||||
uint16_t data = m_paletteram[0][i];
|
||||
|
||||
rgb_t color = rgb_t(pal5bit(data >> 10), pal5bit(data >> 5), pal5bit(data >> 0));
|
||||
|
||||
@ -854,7 +828,8 @@ uint32_t seta_state::screen_update_seta_no_layers(screen_device &screen, bitmap_
|
||||
void seta_state::seta_layers_update(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect, int sprite_bank_size, int sprite_setac )
|
||||
{
|
||||
int layers_ctrl = -1;
|
||||
int enab_0, enab_1, x_0, x_1=0, y_0, y_1=0;
|
||||
int bank[2], x[2], y[2];
|
||||
int layer;
|
||||
|
||||
int order = 0;
|
||||
int flip = m_seta001->is_flipped();
|
||||
@ -864,20 +839,16 @@ void seta_state::seta_layers_update(screen_device &screen, bitmap_ind16 &bitmap,
|
||||
|
||||
// check tilemaps color modes
|
||||
|
||||
if(m_current_tilemap_mode[0] != (m_vctrl_0[ 4/2 ] & 0x10))
|
||||
for (layer = 0; layer < 2; layer++)
|
||||
{
|
||||
m_current_tilemap_mode[0] = m_vctrl_0[ 4/2 ] & 0x10;
|
||||
m_tilemap_0->mark_all_dirty();
|
||||
m_tilemap_1->mark_all_dirty();
|
||||
}
|
||||
|
||||
if(m_tilemap_2 != nullptr && m_tilemap_3 != nullptr)
|
||||
{
|
||||
if(m_current_tilemap_mode[1] != (m_vctrl_2[ 4/2 ] & 0x10))
|
||||
if(m_tilemap[layer][0])
|
||||
{
|
||||
m_current_tilemap_mode[1] = m_vctrl_2[ 4/2 ] & 0x10;
|
||||
m_tilemap_2->mark_all_dirty();
|
||||
m_tilemap_3->mark_all_dirty();
|
||||
if(m_current_tilemap_mode[layer] != (m_vctrl[layer][ 4/2 ] & 0x10))
|
||||
{
|
||||
m_current_tilemap_mode[layer] = m_vctrl[layer][ 4/2 ] & 0x10;
|
||||
for (int bank = 0; bank < 2; bank++)
|
||||
m_tilemap[layer][bank]->mark_all_dirty();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@ -885,60 +856,50 @@ void seta_state::seta_layers_update(screen_device &screen, bitmap_ind16 &bitmap,
|
||||
|
||||
machine().tilemap().set_flip_all(flip ? (TILEMAP_FLIPX|TILEMAP_FLIPY) : 0 );
|
||||
|
||||
x_0 = m_vctrl_0[ 0/2 ];
|
||||
y_0 = m_vctrl_0[ 2/2 ];
|
||||
enab_0 = m_vctrl_0[ 4/2 ];
|
||||
|
||||
/* Only one tilemap per layer is enabled! */
|
||||
m_tilemap_0->enable((!(enab_0 & 0x0008)) /*&& (enab_0 & 0x0001)*/ );
|
||||
m_tilemap_1->enable(( (enab_0 & 0x0008)) /*&& (enab_0 & 0x0001)*/ );
|
||||
|
||||
/* the hardware wants different scroll values when flipped */
|
||||
|
||||
/* bg x scroll flip
|
||||
metafox 0000 025d = 0, $400-$1a3 = $400 - $190 - $13
|
||||
eightfrc ffe8 0272
|
||||
fff0 0260 = -$10, $400-$190 -$10
|
||||
ffe8 0272 = -$18, $400-$190 -$18 + $1a */
|
||||
|
||||
x_0 += 0x10 - m_global_offsets->tilemap_offs[flip ? 1 : 0];
|
||||
y_0 -= (256 - vis_dimy)/2;
|
||||
if (flip)
|
||||
for (layer = 0; layer < 2; layer++)
|
||||
{
|
||||
x_0 = -x_0 - 512;
|
||||
y_0 = y_0 - vis_dimy;
|
||||
}
|
||||
|
||||
m_tilemap_0->set_scrollx(0, x_0);
|
||||
m_tilemap_1->set_scrollx(0, x_0);
|
||||
m_tilemap_0->set_scrolly(0, y_0);
|
||||
m_tilemap_1->set_scrolly(0, y_0);
|
||||
|
||||
if (m_tilemap_2)
|
||||
{
|
||||
x_1 = m_vctrl_2[ 0/2 ];
|
||||
y_1 = m_vctrl_2[ 2/2 ];
|
||||
enab_1 = m_vctrl_2[ 4/2 ];
|
||||
|
||||
m_tilemap_2->enable((!(enab_1 & 0x0008)) /*&& (enab_1 & 0x0001)*/ );
|
||||
m_tilemap_3->enable(( (enab_1 & 0x0008)) /*&& (enab_1 & 0x0001)*/ );
|
||||
|
||||
x_1 += 0x10 - m_global_offsets->tilemap_offs[flip ? 1 : 0];
|
||||
y_1 -= (256 - vis_dimy)/2;
|
||||
if (flip)
|
||||
if (m_tilemap[layer][0])
|
||||
{
|
||||
x_1 = -x_1 - 512;
|
||||
y_1 = y_1 - vis_dimy;
|
||||
x[layer] = m_vctrl[layer][ 0/2 ];
|
||||
y[layer] = m_vctrl[layer][ 2/2 ];
|
||||
bank[layer] = m_vctrl[layer][ 4/2 ];
|
||||
bank[layer] = (bank[layer] & 0x0008) ? 1 : 0; /*&& (bank[layer] & 0x0001)*/
|
||||
|
||||
/* Select tilemap bank, Only one tilemap bank per layer is enabled */
|
||||
m_tilemap[layer][0]->enable((!bank[layer]));
|
||||
m_tilemap[layer][1]->enable(( bank[layer]));
|
||||
|
||||
/* the hardware wants different scroll values when flipped */
|
||||
|
||||
/* bg x scroll flip
|
||||
metafox 0000 025d = 0, $400-$1a3 = $400 - $190 - $13
|
||||
eightfrc ffe8 0272
|
||||
fff0 0260 = -$10, $400-$190 -$10
|
||||
ffe8 0272 = -$18, $400-$190 -$18 + $1a */
|
||||
|
||||
x[layer] += 0x10 - m_global_offsets->tilemap_offs[flip ? 1 : 0];
|
||||
y[layer] -= (256 - vis_dimy)/2;
|
||||
if (flip)
|
||||
{
|
||||
x[layer] = -x[layer] - 512;
|
||||
y[layer] = y[layer] - vis_dimy;
|
||||
}
|
||||
|
||||
m_tilemap[layer][0]->set_scrollx(0, x[layer]);
|
||||
m_tilemap[layer][1]->set_scrollx(0, x[layer]);
|
||||
m_tilemap[layer][0]->set_scrolly(0, y[layer]);
|
||||
m_tilemap[layer][1]->set_scrolly(0, y[layer]);
|
||||
}
|
||||
else
|
||||
{
|
||||
x[layer] = 0;
|
||||
y[layer] = 0;
|
||||
}
|
||||
|
||||
m_tilemap_2->set_scrollx(0, x_1);
|
||||
m_tilemap_3->set_scrollx(0, x_1);
|
||||
m_tilemap_2->set_scrolly(0, y_1);
|
||||
m_tilemap_3->set_scrolly(0, y_1);
|
||||
|
||||
order = m_vregs[ 2/2 ];
|
||||
}
|
||||
|
||||
if (m_tilemap[1][0])
|
||||
order = m_vregs[ 2/2 ];
|
||||
|
||||
|
||||
#ifdef MAME_DEBUG
|
||||
if (screen.machine().input().code_pressed(KEYCODE_Z))
|
||||
@ -948,10 +909,10 @@ if (screen.machine().input().code_pressed(KEYCODE_Z))
|
||||
if (screen.machine().input().code_pressed(KEYCODE_A)) msk |= 8;
|
||||
if (msk != 0) layers_ctrl &= msk;
|
||||
|
||||
if (m_tilemap_2)
|
||||
if (m_tilemap[1][0])
|
||||
popmessage("VR:%04X-%04X-%04X L0:%04X L1:%04X",
|
||||
m_vregs[0], m_vregs[1], m_vregs[2], m_vctrl_0[4/2], m_vctrl_2[4/2]);
|
||||
else if (m_tilemap_0) popmessage("L0:%04X", m_vctrl_0[4/2]);
|
||||
m_vregs[0], m_vregs[1], m_vregs[2], m_vctrl[0][4/2], m_vctrl[1][4/2]);
|
||||
else if (m_tilemap[0][0]) popmessage("L0:%04X", m_vctrl[0][4/2]);
|
||||
}
|
||||
#endif
|
||||
|
||||
@ -959,10 +920,9 @@ if (screen.machine().input().code_pressed(KEYCODE_Z))
|
||||
|
||||
if (order & 1) // swap the layers?
|
||||
{
|
||||
if (m_tilemap_2)
|
||||
if (m_tilemap[1][bank[1]])
|
||||
{
|
||||
if (layers_ctrl & 2) m_tilemap_2->draw(screen, bitmap, cliprect, TILEMAP_DRAW_OPAQUE, 0);
|
||||
if (layers_ctrl & 2) m_tilemap_3->draw(screen, bitmap, cliprect, TILEMAP_DRAW_OPAQUE, 0);
|
||||
if (layers_ctrl & 2) m_tilemap[1][bank[1]]->draw(screen, bitmap, cliprect, TILEMAP_DRAW_OPAQUE, 0);
|
||||
}
|
||||
|
||||
if (order & 2) // layer-sprite priority?
|
||||
@ -974,8 +934,7 @@ if (screen.machine().input().code_pressed(KEYCODE_Z))
|
||||
popmessage("Missing palette effect. Contact MAMETesters.");
|
||||
}
|
||||
|
||||
if (layers_ctrl & 1) m_tilemap_0->draw(screen, bitmap, cliprect, 0, 0);
|
||||
if (layers_ctrl & 1) m_tilemap_1->draw(screen, bitmap, cliprect, 0, 0);
|
||||
if (layers_ctrl & 1) m_tilemap[0][bank[0]]->draw(screen, bitmap, cliprect, 0, 0);
|
||||
}
|
||||
else
|
||||
{
|
||||
@ -984,31 +943,22 @@ if (screen.machine().input().code_pressed(KEYCODE_Z))
|
||||
popmessage("Missing palette effect. Contact MAMETesters.");
|
||||
}
|
||||
|
||||
if (layers_ctrl & 1) m_tilemap_0->draw(screen, bitmap, cliprect, 0, 0);
|
||||
if (layers_ctrl & 1) m_tilemap_1->draw(screen, bitmap, cliprect, 0, 0);
|
||||
if (layers_ctrl & 1) m_tilemap[0][bank[0]]->draw(screen, bitmap, cliprect, 0, 0);
|
||||
|
||||
if (layers_ctrl & 8) m_seta001->draw_sprites(screen, bitmap,cliprect,sprite_bank_size, sprite_setac);
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
if (layers_ctrl & 1) m_tilemap_0->draw(screen, bitmap, cliprect, TILEMAP_DRAW_OPAQUE, 0);
|
||||
if (layers_ctrl & 1) m_tilemap_1->draw(screen, bitmap, cliprect, TILEMAP_DRAW_OPAQUE, 0);
|
||||
if (layers_ctrl & 1) m_tilemap[0][bank[0]]->draw(screen, bitmap, cliprect, TILEMAP_DRAW_OPAQUE, 0);
|
||||
|
||||
if (order & 2) // layer-sprite priority?
|
||||
{
|
||||
if (layers_ctrl & 8) m_seta001->draw_sprites(screen, bitmap,cliprect,sprite_bank_size, sprite_setac);
|
||||
|
||||
if((order & 4) && m_paletteram2 != nullptr)
|
||||
if((order & 4) && m_paletteram[1] != nullptr)
|
||||
{
|
||||
if(m_tilemap_2->enabled())
|
||||
{
|
||||
draw_tilemap_palette_effect(bitmap, cliprect, m_tilemap_2, x_1, y_1, 2 + ((m_vctrl_2[ 4/2 ] & 0x10) >> m_color_mode_shift), flip);
|
||||
}
|
||||
else
|
||||
{
|
||||
draw_tilemap_palette_effect(bitmap, cliprect, m_tilemap_3, x_1, y_1, 2 + ((m_vctrl_2[ 4/2 ] & 0x10) >> m_color_mode_shift), flip);
|
||||
}
|
||||
draw_tilemap_palette_effect(bitmap, cliprect, m_tilemap[1][bank[1]], x[1], y[1], 2 + ((m_vctrl[1][ 4/2 ] & 0x10) >> m_color_mode_shift), flip);
|
||||
}
|
||||
else
|
||||
{
|
||||
@ -1017,25 +967,17 @@ if (screen.machine().input().code_pressed(KEYCODE_Z))
|
||||
popmessage("Missing palette effect. Contact MAMETesters.");
|
||||
}
|
||||
|
||||
if (m_tilemap_2)
|
||||
if (m_tilemap[1][bank[1]])
|
||||
{
|
||||
if (layers_ctrl & 2) m_tilemap_2->draw(screen, bitmap, cliprect, 0, 0);
|
||||
if (layers_ctrl & 2) m_tilemap_3->draw(screen, bitmap, cliprect, 0, 0);
|
||||
if (layers_ctrl & 2) m_tilemap[1][bank[1]]->draw(screen, bitmap, cliprect, 0, 0);
|
||||
}
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
if((order & 4) && m_paletteram2 != nullptr)
|
||||
if((order & 4) && m_paletteram[1] != nullptr)
|
||||
{
|
||||
if(m_tilemap_2->enabled())
|
||||
{
|
||||
draw_tilemap_palette_effect(bitmap, cliprect, m_tilemap_2, x_1, y_1, 2 + ((m_vctrl_2[ 4/2 ] & 0x10) >> m_color_mode_shift), flip);
|
||||
}
|
||||
else
|
||||
{
|
||||
draw_tilemap_palette_effect(bitmap, cliprect, m_tilemap_3, x_1, y_1, 2 + ((m_vctrl_2[ 4/2 ] & 0x10) >> m_color_mode_shift), flip);
|
||||
}
|
||||
draw_tilemap_palette_effect(bitmap, cliprect, m_tilemap[1][bank[1]], x[1], y[1], 2 + ((m_vctrl[1][ 4/2 ] & 0x10) >> m_color_mode_shift), flip);
|
||||
}
|
||||
else
|
||||
{
|
||||
@ -1044,10 +986,9 @@ if (screen.machine().input().code_pressed(KEYCODE_Z))
|
||||
popmessage("Missing palette effect. Contact MAMETesters.");
|
||||
}
|
||||
|
||||
if (m_tilemap_2)
|
||||
if (m_tilemap[1][bank[1]])
|
||||
{
|
||||
if (layers_ctrl & 2) m_tilemap_2->draw(screen, bitmap, cliprect, 0, 0);
|
||||
if (layers_ctrl & 2) m_tilemap_3->draw(screen, bitmap, cliprect, 0, 0);
|
||||
if (layers_ctrl & 2) m_tilemap[1][bank[1]]->draw(screen, bitmap, cliprect, 0, 0);
|
||||
}
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user