diff --git a/src/mame/drivers/seta.c b/src/mame/drivers/seta.c index bd3ddc376af..fbb9e8dbd17 100644 --- a/src/mame/drivers/seta.c +++ b/src/mame/drivers/seta.c @@ -1445,25 +1445,6 @@ static const ym3438_interface utoukond_ym3438_intf = ***************************************************************************/ -/* - - Mirror RAM - -*/ -static UINT16 *mirror_ram; - -static READ16_HANDLER( mirror_ram_r ) -{ - return mirror_ram[offset]; -} - -static WRITE16_HANDLER( mirror_ram_w ) -{ - COMBINE_DATA(&mirror_ram[offset]); -// logerror("PC %06X - Mirror RAM Written: %04X <- %04X\n", cpu_get_pc(space->cpu), offset*2, data); -} - - /* @@ -1588,30 +1569,19 @@ static VIDEO_EOF( seta_buffer_sprites ) writing to sharedram! */ -static ADDRESS_MAP_START( tndrcade_readmem, ADDRESS_SPACE_PROGRAM, 16 ) - AM_RANGE(0x000000, 0x07ffff) AM_READ(SMH_ROM ) // ROM - AM_RANGE(0x380000, 0x3803ff) AM_READ(SMH_RAM ) // Palette -/**/AM_RANGE(0x400000, 0x400001) AM_READ(SMH_RAM ) // ? $4000 -/**/AM_RANGE(0x600000, 0x600607) AM_READ(SMH_RAM ) // Sprites Y - AM_RANGE(0xa00000, 0xa00fff) AM_READ(sharedram_68000_r ) // Shared RAM - AM_RANGE(0xc00000, 0xc03fff) AM_READ(SMH_RAM ) // Sprites Code + X + Attr - AM_RANGE(0xe00000, 0xe03fff) AM_READ(SMH_RAM ) // RAM (Mirrored?) - AM_RANGE(0xffc000, 0xffffff) AM_READ(mirror_ram_r ) // RAM (Mirrored?) -ADDRESS_MAP_END - -static ADDRESS_MAP_START( tndrcade_writemem, ADDRESS_SPACE_PROGRAM, 16 ) - AM_RANGE(0x000000, 0x07ffff) AM_WRITE(SMH_ROM ) // ROM - AM_RANGE(0x200000, 0x200001) AM_WRITE(SMH_NOP ) // ? 0 - AM_RANGE(0x280000, 0x280001) AM_WRITE(SMH_NOP ) // ? 0 / 1 (sub cpu related?) - AM_RANGE(0x300000, 0x300001) AM_WRITE(SMH_NOP ) // ? 0 / 1 - AM_RANGE(0x380000, 0x3803ff) AM_WRITE(SMH_RAM) AM_BASE(&paletteram16 ) AM_SIZE(&seta_paletteram_size) // Palette - AM_RANGE(0x400000, 0x400001) AM_WRITE(SMH_RAM ) // ? $4000 - AM_RANGE(0x600000, 0x600607) AM_WRITE(SMH_RAM) AM_BASE(&spriteram16 ) // Sprites Y - AM_RANGE(0x800000, 0x800007) AM_WRITE(sub_ctrl_w ) // Sub CPU Control? - AM_RANGE(0xa00000, 0xa00fff) AM_WRITE(sharedram_68000_w ) // Shared RAM - AM_RANGE(0xc00000, 0xc03fff) AM_WRITE(SMH_RAM) AM_BASE(&spriteram16_2 ) // Sprites Code + X + Attr - AM_RANGE(0xe00000, 0xe03fff) AM_WRITE(SMH_RAM) AM_BASE(&mirror_ram ) // RAM (Mirrored?) - AM_RANGE(0xffc000, 0xffffff) AM_WRITE(mirror_ram_w ) // RAM (Mirrored?) +static ADDRESS_MAP_START( tndrcade_map, ADDRESS_SPACE_PROGRAM, 16 ) + AM_RANGE(0x000000, 0x07ffff) AM_ROM // ROM + AM_RANGE(0x200000, 0x200001) AM_WRITENOP // ? 0 + 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_BASE(&paletteram16) AM_SIZE(&seta_paletteram_size) // Palette +/**/AM_RANGE(0x400000, 0x400001) AM_WRITENOP // ? $4000 +/**/AM_RANGE(0x600000, 0x600607) AM_RAM AM_BASE(&spriteram16) // Sprites Y + AM_RANGE(0x800000, 0x800007) AM_WRITE(sub_ctrl_w) // Sub CPU Control? + AM_RANGE(0xa00000, 0xa00fff) AM_READWRITE(sharedram_68000_r,sharedram_68000_w) // Shared RAM + AM_RANGE(0xc00000, 0xc03fff) AM_RAM AM_BASE(&spriteram16_2) // Sprites Code + X + Attr + AM_RANGE(0xe00000, 0xe03fff) AM_RAM AM_SHARE(1) // RAM (Mirrored?) + AM_RANGE(0xffc000, 0xffffff) AM_RAM AM_SHARE(1) // RAM (Mirrored?) ADDRESS_MAP_END @@ -1620,36 +1590,23 @@ ADDRESS_MAP_END (with slight variations, and Meta Fox protection hooked in) ***************************************************************************/ -static ADDRESS_MAP_START( downtown_readmem, ADDRESS_SPACE_PROGRAM, 16 ) - AM_RANGE(0x000000, 0x09ffff) AM_READ(SMH_ROM ) // ROM - AM_RANGE(0x100000, 0x103fff) AM_DEVREAD("x1", seta_sound_word_r ) // Sound - AM_RANGE(0x200000, 0x200001) AM_READ(SMH_NOP ) // watchdog? (twineagl) - AM_RANGE(0x600000, 0x600003) AM_READ(seta_dsw_r ) // DSW - AM_RANGE(0x700000, 0x7003ff) AM_READ(SMH_RAM ) // Palette - AM_RANGE(0x900000, 0x901fff) AM_READ(SMH_RAM ) // VRAM - AM_RANGE(0x902000, 0x903fff) AM_READ(SMH_RAM ) // VRAM - AM_RANGE(0xb00000, 0xb00fff) AM_READ(sharedram_68000_r ) // Shared RAM - AM_RANGE(0xd00000, 0xd003ff) AM_READ(SMH_RAM ) // Sprites Y - AM_RANGE(0xe00000, 0xe03fff) AM_READ(SMH_RAM ) // Sprites Code + X + Attr - AM_RANGE(0xf00000, 0xffffff) AM_READ(SMH_RAM ) // RAM -ADDRESS_MAP_END - -static ADDRESS_MAP_START( downtown_writemem, ADDRESS_SPACE_PROGRAM, 16 ) - AM_RANGE(0x000000, 0x09ffff) AM_WRITE(SMH_ROM ) // ROM - AM_RANGE(0x100000, 0x103fff) AM_DEVWRITE("x1", seta_sound_word_w ) // Sound - AM_RANGE(0x200000, 0x200001) AM_WRITE(SMH_NOP ) // watchdog? - AM_RANGE(0x300000, 0x300001) AM_WRITE(SMH_NOP ) // IRQ enable/acknowledge? - AM_RANGE(0x400000, 0x400007) AM_WRITE(twineagl_tilebank_w ) // special tile banking to animate water in twineagl - AM_RANGE(0x500000, 0x500001) AM_WRITE(SMH_NOP ) // ? - AM_RANGE(0x700000, 0x7003ff) AM_WRITE(SMH_RAM) AM_BASE(&paletteram16 ) AM_SIZE(&seta_paletteram_size) // Palette - AM_RANGE(0x800000, 0x800005) AM_WRITE(SMH_RAM) AM_BASE(&seta_vctrl_0 ) // VRAM Ctrl - AM_RANGE(0x900000, 0x903fff) AM_WRITE(seta_vram_0_w) AM_BASE(&seta_vram_0 ) // VRAM - AM_RANGE(0xa00000, 0xa00007) AM_WRITE(sub_ctrl_w ) // Sub CPU Control? - AM_RANGE(0xb00000, 0xb00fff) AM_WRITE(sharedram_68000_w ) // Shared RAM - AM_RANGE(0xc00000, 0xc00001) AM_WRITE(SMH_RAM ) // ? $4000 - AM_RANGE(0xd00000, 0xd00607) AM_WRITE(SMH_RAM) AM_BASE(&spriteram16 ) // Sprites Y - AM_RANGE(0xe00000, 0xe03fff) AM_WRITE(SMH_RAM) AM_BASE(&spriteram16_2 ) // Sprites Code + X + Attr - AM_RANGE(0xf00000, 0xffffff) AM_WRITE(SMH_RAM ) // RAM +static ADDRESS_MAP_START( downtown_map, ADDRESS_SPACE_PROGRAM, 16 ) + AM_RANGE(0x000000, 0x09ffff) AM_ROM // ROM + AM_RANGE(0x100000, 0x103fff) AM_DEVREADWRITE("x1", seta_sound_word_r,seta_sound_word_w) // Sound + AM_RANGE(0x200000, 0x200001) AM_NOP // watchdog? (twineagl) + AM_RANGE(0x300000, 0x300001) AM_WRITENOP // IRQ enable/acknowledge? + 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_BASE(&paletteram16) AM_SIZE(&seta_paletteram_size) // Palette + AM_RANGE(0x800000, 0x800005) AM_WRITEONLY AM_BASE(&seta_vctrl_0)// VRAM Ctrl + AM_RANGE(0x900000, 0x903fff) AM_RAM_WRITE(seta_vram_0_w) AM_BASE(&seta_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 + AM_RANGE(0xd00000, 0xd00607) AM_RAM AM_BASE(&spriteram16) // Sprites Y + AM_RANGE(0xe00000, 0xe03fff) AM_RAM AM_BASE(&spriteram16_2) // Sprites Code + X + Attr + AM_RANGE(0xf00000, 0xffffff) AM_RAM // RAM ADDRESS_MAP_END @@ -1690,39 +1647,26 @@ static WRITE16_HANDLER( calibr50_soundlatch_w ) } } -static ADDRESS_MAP_START( calibr50_readmem, ADDRESS_SPACE_PROGRAM, 16 ) - AM_RANGE(0x000000, 0x09ffff) AM_READ(SMH_ROM ) // ROM - AM_RANGE(0xff0000, 0xffffff) AM_READ(SMH_RAM ) // RAM - AM_RANGE(0x100000, 0x100007) AM_READ(SMH_NOP ) // ? (same as a00010-a00017?) - AM_RANGE(0x200000, 0x200fff) AM_READ(SMH_RAM ) // NVRAM - AM_RANGE(0x300000, 0x300001) AM_READ(SMH_NOP ) // ? (value's read but not used) - AM_RANGE(0x400000, 0x400001) AM_READ(watchdog_reset16_r ) // Watchdog - AM_RANGE(0x600000, 0x600003) AM_READ(seta_dsw_r ) // DSW - AM_RANGE(0x700000, 0x7003ff) AM_READ(SMH_RAM ) // Palette - AM_RANGE(0x900000, 0x901fff) AM_READ(SMH_RAM ) // VRAM - AM_RANGE(0x902000, 0x903fff) AM_READ(SMH_RAM ) // VRAM - AM_RANGE(0x904000, 0x904fff) AM_READ(SMH_RAM ) // - AM_RANGE(0xa00000, 0xa00019) AM_READ(calibr50_ip_r ) // Input Ports -/**/AM_RANGE(0xd00000, 0xd00607) AM_READ(SMH_RAM ) // Sprites Y - AM_RANGE(0xe00000, 0xe03fff) AM_READ(SMH_RAM ) // Sprites Code + X + Attr - AM_RANGE(0xb00000, 0xb00001) AM_READ(soundlatch2_word_r ) // From Sub CPU -/**/AM_RANGE(0xc00000, 0xc00001) AM_READ(SMH_RAM ) // ? $4000 -ADDRESS_MAP_END +static ADDRESS_MAP_START( calibr50_map, ADDRESS_SPACE_PROGRAM, 16 ) + AM_RANGE(0x000000, 0x09ffff) AM_ROM // ROM + AM_RANGE(0xff0000, 0xffffff) AM_RAM // RAM + AM_RANGE(0x100000, 0x100007) AM_READNOP // ? (same as a00010-a00017?) + AM_RANGE(0x200000, 0x200fff) AM_RAM // NVRAM + AM_RANGE(0x300000, 0x300001) AM_READNOP // ? (value's read but not used) + AM_RANGE(0x300000, 0x300001) AM_WRITENOP // ? (random value) + AM_RANGE(0x400000, 0x400001) AM_READ(watchdog_reset16_r) // Watchdog + AM_RANGE(0x500000, 0x500001) AM_WRITENOP // ? + AM_RANGE(0x600000, 0x600003) AM_READ(seta_dsw_r) // DSW + AM_RANGE(0x700000, 0x7003ff) AM_RAM AM_BASE(&paletteram16) AM_SIZE(&seta_paletteram_size) // Palette + AM_RANGE(0x800000, 0x800005) AM_WRITEONLY AM_BASE(&seta_vctrl_0)// VRAM Ctrl + AM_RANGE(0x900000, 0x903fff) AM_RAM_WRITE(seta_vram_0_w) AM_BASE(&seta_vram_0) // VRAM -static ADDRESS_MAP_START( calibr50_writemem, ADDRESS_SPACE_PROGRAM, 16 ) - AM_RANGE(0x000000, 0x09ffff) AM_WRITE(SMH_ROM ) // ROM - AM_RANGE(0xff0000, 0xffffff) AM_WRITE(SMH_RAM ) // RAM - AM_RANGE(0x200000, 0x200fff) AM_WRITE(SMH_RAM ) // NVRAM - AM_RANGE(0x300000, 0x300001) AM_WRITE(SMH_NOP ) // ? (random value) - AM_RANGE(0x500000, 0x500001) AM_WRITE(SMH_NOP ) // ? - AM_RANGE(0x700000, 0x7003ff) AM_WRITE(SMH_RAM) AM_BASE(&paletteram16 ) AM_SIZE(&seta_paletteram_size) // Palette - AM_RANGE(0x800000, 0x800005) AM_WRITE(SMH_RAM) AM_BASE(&seta_vctrl_0 ) // VRAM Ctrl - AM_RANGE(0x900000, 0x903fff) AM_WRITE(seta_vram_0_w) AM_BASE(&seta_vram_0 ) // VRAM - AM_RANGE(0x904000, 0x904fff) AM_WRITE(SMH_RAM ) // - AM_RANGE(0xd00000, 0xd00607) AM_WRITE(SMH_RAM) AM_BASE(&spriteram16 ) // Sprites Y - AM_RANGE(0xe00000, 0xe03fff) AM_WRITE(SMH_RAM) AM_BASE(&spriteram16_2 ) // Sprites Code + X + Attr - AM_RANGE(0xb00000, 0xb00001) AM_WRITE(calibr50_soundlatch_w ) // To Sub CPU - AM_RANGE(0xc00000, 0xc00001) AM_WRITE(SMH_RAM ) // ? $4000 + AM_RANGE(0x904000, 0x904fff) AM_RAM // + AM_RANGE(0xa00000, 0xa00019) AM_READ(calibr50_ip_r) // Input Ports +/**/AM_RANGE(0xd00000, 0xd00607) AM_RAM AM_BASE(&spriteram16) // Sprites Y + AM_RANGE(0xe00000, 0xe03fff) AM_RAM AM_BASE(&spriteram16_2) // Sprites Code + X + Attr + AM_RANGE(0xb00000, 0xb00001) AM_READWRITE(soundlatch2_word_r,calibr50_soundlatch_w) // From Sub CPU +/**/AM_RANGE(0xc00000, 0xc00001) AM_RAM // ? $4000 ADDRESS_MAP_END @@ -1782,126 +1726,81 @@ static WRITE16_HANDLER( usclssic_lockout_w ) } -static ADDRESS_MAP_START( usclssic_readmem, ADDRESS_SPACE_PROGRAM, 16 ) - AM_RANGE(0x000000, 0x07ffff) AM_READ(SMH_ROM ) // ROM - AM_RANGE(0xff0000, 0xffffff) AM_READ(SMH_RAM ) // RAM - AM_RANGE(0x800000, 0x800607) AM_READ(SMH_RAM ) // Sprites Y -/**/AM_RANGE(0x900000, 0x900001) AM_READ(SMH_RAM ) // ? - AM_RANGE(0xa00000, 0xa00005) AM_READ(SMH_RAM ) // VRAM Ctrl -/**/AM_RANGE(0xb00000, 0xb003ff) AM_READ(SMH_RAM ) // Palette - AM_RANGE(0xb40000, 0xb40003) AM_READ(usclssic_trackball_x_r ) // TrackBall X - AM_RANGE(0xb40004, 0xb40007) AM_READ(usclssic_trackball_y_r ) // TrackBall Y + Buttons +static ADDRESS_MAP_START( usclssic_map, ADDRESS_SPACE_PROGRAM, 16 ) + AM_RANGE(0x000000, 0x07ffff) AM_ROM // ROM + AM_RANGE(0xff0000, 0xffffff) AM_RAM // RAM + AM_RANGE(0x800000, 0x800607) AM_RAM AM_BASE(&spriteram16) // Sprites Y +/**/AM_RANGE(0x900000, 0x900001) AM_RAM // ? $4000 + AM_RANGE(0xa00000, 0xa00005) AM_RAM AM_BASE(&seta_vctrl_0) // VRAM Ctrl +/**/AM_RANGE(0xb00000, 0xb003ff) AM_RAM AM_BASE(&paletteram16) AM_SIZE(&seta_paletteram_size) // Palette + AM_RANGE(0xb40000, 0xb40003) AM_READ(usclssic_trackball_x_r) // TrackBall X + AM_RANGE(0xb40000, 0xb40001) AM_WRITE(usclssic_lockout_w) // Coin Lockout + Tiles Banking + AM_RANGE(0xb40004, 0xb40007) AM_READ(usclssic_trackball_y_r) // TrackBall Y + Buttons + AM_RANGE(0xb4000a, 0xb4000b) AM_WRITENOP // ? (value's not important. In lev2&6) AM_RANGE(0xb40010, 0xb40011) AM_READ_PORT("COINS") // Coins - AM_RANGE(0xb40018, 0xb4001f) AM_READ(usclssic_dsw_r ) // 2 DSWs - AM_RANGE(0xb80000, 0xb80001) AM_READ(SMH_NOP ) // watchdog (value is discarded)? - AM_RANGE(0xc00000, 0xc03fff) AM_READ(SMH_RAM ) // Sprites Code + X + Attr - AM_RANGE(0xd00000, 0xd01fff) AM_READ(SMH_RAM ) // VRAM - AM_RANGE(0xd02000, 0xd03fff) AM_READ(SMH_RAM ) // VRAM - AM_RANGE(0xd04000, 0xd04fff) AM_READ(SMH_RAM ) // - AM_RANGE(0xe00000, 0xe00fff) AM_READ(SMH_RAM ) // NVRAM? (odd bytes) + AM_RANGE(0xb40010, 0xb40011) AM_WRITE(calibr50_soundlatch_w) // To Sub CPU + AM_RANGE(0xb40018, 0xb4001f) AM_READ(usclssic_dsw_r) // 2 DSWs + AM_RANGE(0xb40018, 0xb40019) AM_WRITE(watchdog_reset16_w) // Watchdog + AM_RANGE(0xb80000, 0xb80001) AM_READNOP // Watchdog (value is discarded)? + AM_RANGE(0xc00000, 0xc03fff) AM_RAM AM_BASE(&spriteram16_2) // Sprites Code + X + Attr + AM_RANGE(0xd00000, 0xd03fff) AM_RAM_WRITE(seta_vram_0_w) AM_BASE(&seta_vram_0) // VRAM + AM_RANGE(0xd04000, 0xd04fff) AM_RAM // + AM_RANGE(0xe00000, 0xe00fff) AM_RAM // NVRAM? (odd bytes) ADDRESS_MAP_END -static ADDRESS_MAP_START( usclssic_writemem, ADDRESS_SPACE_PROGRAM, 16 ) - AM_RANGE(0x000000, 0x07ffff) AM_WRITE(SMH_ROM ) // ROM - AM_RANGE(0xff0000, 0xffffff) AM_WRITE(SMH_RAM ) // RAM - AM_RANGE(0x800000, 0x800607) AM_WRITE(SMH_RAM) AM_BASE(&spriteram16 ) // Sprites Y - AM_RANGE(0x900000, 0x900001) AM_WRITE(SMH_RAM ) // ? $4000 - AM_RANGE(0xa00000, 0xa00005) AM_WRITE(SMH_RAM) AM_BASE(&seta_vctrl_0 ) // VRAM Ctrl - AM_RANGE(0xb00000, 0xb003ff) AM_WRITE(SMH_RAM) AM_BASE(&paletteram16 ) AM_SIZE(&seta_paletteram_size) // Palette - AM_RANGE(0xb40000, 0xb40001) AM_WRITE(usclssic_lockout_w ) // Coin Lockout + Tiles Banking - AM_RANGE(0xb40010, 0xb40011) AM_WRITE(calibr50_soundlatch_w ) // To Sub CPU - AM_RANGE(0xb40018, 0xb40019) AM_WRITE(watchdog_reset16_w ) // Watchdog - AM_RANGE(0xb4000a, 0xb4000b) AM_WRITE(SMH_NOP ) // ? (value's not important. In lev2&6) - AM_RANGE(0xc00000, 0xc03fff) AM_WRITE(SMH_RAM) AM_BASE(&spriteram16_2 ) // Sprites Code + X + Attr - AM_RANGE(0xd00000, 0xd03fff) AM_WRITE(seta_vram_0_w) AM_BASE(&seta_vram_0 ) // VRAM - AM_RANGE(0xd04000, 0xd04fff) AM_WRITE(SMH_RAM ) // - AM_RANGE(0xe00000, 0xe00fff) AM_WRITE(SMH_RAM ) // NVRAM? (odd bytes) -ADDRESS_MAP_END - - /*************************************************************************** Athena no Hatena? ***************************************************************************/ -static ADDRESS_MAP_START( atehate_readmem, ADDRESS_SPACE_PROGRAM, 16 ) - AM_RANGE(0x000000, 0x0fffff) AM_READ(SMH_ROM ) // ROM - AM_RANGE(0x900000, 0x9fffff) AM_READ(SMH_RAM ) // RAM - AM_RANGE(0x100000, 0x103fff) AM_DEVREAD("x1", seta_sound_word_r ) // Sound - AM_RANGE(0x600000, 0x600003) AM_READ(seta_dsw_r ) // DSW - AM_RANGE(0x700000, 0x7003ff) AM_READ(SMH_RAM ) // Palette - AM_RANGE(0xa00000, 0xa00607) AM_READ(SMH_RAM ) // Sprites Y +static ADDRESS_MAP_START( atehate_map, ADDRESS_SPACE_PROGRAM, 16 ) + AM_RANGE(0x000000, 0x0fffff) AM_ROM // ROM + AM_RANGE(0x900000, 0x9fffff) AM_RAM // RAM + AM_RANGE(0x100000, 0x103fff) AM_DEVREADWRITE("x1", seta_sound_word_r,seta_sound_word_w) // Sound + AM_RANGE(0x200000, 0x200001) AM_WRITENOP // ? watchdog ? + 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_BASE(&paletteram16) AM_SIZE(&seta_paletteram_size) // Palette + AM_RANGE(0xa00000, 0xa00607) AM_RAM AM_BASE(&spriteram16) // Sprites Y 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_READ(SMH_RAM ) // ? 0x4000 - AM_RANGE(0xe00000, 0xe03fff) AM_READ(SMH_RAM ) // Sprites Code + X + Attr +/**/AM_RANGE(0xc00000, 0xc00001) AM_RAM // ? 0x4000 + AM_RANGE(0xe00000, 0xe03fff) AM_RAM AM_BASE(&spriteram16_2) // Sprites Code + X + Attr ADDRESS_MAP_END -static ADDRESS_MAP_START( atehate_writemem, ADDRESS_SPACE_PROGRAM, 16 ) - AM_RANGE(0x000000, 0x0fffff) AM_WRITE(SMH_ROM ) // ROM - AM_RANGE(0x900000, 0x9fffff) AM_WRITE(SMH_RAM ) // RAM - AM_RANGE(0x100000, 0x103fff) AM_DEVWRITE("x1", seta_sound_word_w ) // Sound - AM_RANGE(0x200000, 0x200001) AM_WRITE(SMH_NOP ) // ? watchdog ? - AM_RANGE(0x300000, 0x300001) AM_WRITE(SMH_NOP ) // ? 0 (irq ack lev 2?) - AM_RANGE(0x500000, 0x500001) AM_WRITE(SMH_NOP ) // ? (end of lev 1: bit 4 goes 1,0,1) - AM_RANGE(0x700000, 0x7003ff) AM_WRITE(SMH_RAM) AM_BASE(&paletteram16 ) AM_SIZE(&seta_paletteram_size) // Palette - AM_RANGE(0xa00000, 0xa00607) AM_WRITE(SMH_RAM) AM_BASE(&spriteram16 ) // Sprites Y - AM_RANGE(0xc00000, 0xc00001) AM_WRITE(SMH_RAM ) // ? 0x4000 - AM_RANGE(0xe00000, 0xe03fff) AM_WRITE(SMH_RAM) AM_BASE(&spriteram16_2 ) // Sprites Code + X + Attr -ADDRESS_MAP_END /*************************************************************************** Blandia ***************************************************************************/ -static ADDRESS_MAP_START( blandia_readmem, ADDRESS_SPACE_PROGRAM, 16 ) - AM_RANGE(0x000000, 0x1fffff) AM_READ(SMH_ROM ) // ROM (up to 2MB) - AM_RANGE(0x200000, 0x20ffff) AM_READ(SMH_RAM ) // RAM (main ram for zingzip, wrofaero writes to 20f000-20ffff) - AM_RANGE(0x210000, 0x21ffff) AM_READ(SMH_RAM ) // RAM (gundhara) - AM_RANGE(0x300000, 0x30ffff) AM_READ(SMH_RAM ) // RAM (wrofaero only?) - AM_RANGE(0x500000, 0x500005) AM_READ(SMH_RAM ) // (gundhara) +static ADDRESS_MAP_START( blandia_map, ADDRESS_SPACE_PROGRAM, 16 ) + AM_RANGE(0x000000, 0x1fffff) AM_ROM // ROM (up to 2MB) + AM_RANGE(0x200000, 0x20ffff) AM_RAM // RAM (main ram for zingzip, wrofaero writes to 20f000-20ffff) + AM_RANGE(0x210000, 0x21ffff) AM_RAM // RAM (gundhara) + AM_RANGE(0x300000, 0x30ffff) AM_RAM // RAM (wrofaero only?) AM_RANGE(0x400000, 0x400001) AM_READ_PORT("P1") // P1 AM_RANGE(0x400002, 0x400003) AM_READ_PORT("P2") // P2 AM_RANGE(0x400004, 0x400005) AM_READ_PORT("COINS") // Coins - AM_RANGE(0x600000, 0x600003) AM_READ(seta_dsw_r ) // DSW - AM_RANGE(0x700000, 0x7003ff) AM_READ(SMH_RAM ) // (rezon,jjsquawk) - AM_RANGE(0x700400, 0x700fff) AM_READ(SMH_RAM ) // Palette - AM_RANGE(0x701000, 0x70ffff) AM_READ(SMH_RAM ) // -/**/AM_RANGE(0x800000, 0x800607) AM_READ(SMH_RAM ) // Sprites Y - AM_RANGE(0x880000, 0x880001) AM_READ(SMH_RAM ) // ? 0xc000 - AM_RANGE(0x900000, 0x903fff) AM_READ(SMH_RAM ) // Sprites Code + X + Attr -/**/AM_RANGE(0xa00000, 0xa00005) AM_READ(SMH_RAM ) // VRAM 0&1 Ctrl -/**/AM_RANGE(0xa80000, 0xa80005) AM_READ(SMH_RAM ) // VRAM 2&3 Ctrl - AM_RANGE(0xb00000, 0xb03fff) AM_READ(SMH_RAM ) // VRAM 0&1 - AM_RANGE(0xb04000, 0xb0ffff) AM_READ(SMH_RAM ) // (jjsquawk) - AM_RANGE(0xb80000, 0xb83fff) AM_READ(SMH_RAM ) // VRAM 2&3 - AM_RANGE(0xb84000, 0xb8ffff) AM_READ(SMH_RAM ) // (jjsquawk) - AM_RANGE(0xc00000, 0xc03fff) AM_DEVREAD("x1", seta_sound_word_r ) // Sound -ADDRESS_MAP_END - -static ADDRESS_MAP_START( blandia_writemem, ADDRESS_SPACE_PROGRAM, 16 ) - AM_RANGE(0x000000, 0x1fffff) AM_WRITE(SMH_ROM ) // ROM (up to 2MB) - AM_RANGE(0x200000, 0x20ffff) AM_WRITE(SMH_RAM ) // RAM - AM_RANGE(0x210000, 0x21ffff) AM_WRITE(SMH_RAM ) // RAM (gundhara) - AM_RANGE(0x300000, 0x30ffff) AM_WRITE(SMH_RAM ) // RAM (wrofaero only?) - AM_RANGE(0x500000, 0x500005) AM_WRITE(seta_vregs_w) AM_BASE(&seta_vregs ) // Coin Lockout + Video Registers - AM_RANGE(0x700000, 0x7003ff) AM_WRITE(SMH_RAM ) // (rezon,jjsquawk) - AM_RANGE(0x700400, 0x700fff) AM_WRITE(SMH_RAM) AM_BASE(&paletteram16 ) AM_SIZE(&seta_paletteram_size) // Palette - AM_RANGE(0x701000, 0x70ffff) AM_WRITE(SMH_RAM ) // - AM_RANGE(0x800000, 0x800607) AM_WRITE(SMH_RAM) AM_BASE(&spriteram16 ) // Sprites Y - AM_RANGE(0x880000, 0x880001) AM_WRITE(SMH_RAM ) // ? 0xc000 - AM_RANGE(0x900000, 0x903fff) AM_WRITE(SMH_RAM) AM_BASE(&spriteram16_2 ) // Sprites Code + X + Attr - AM_RANGE(0xa00000, 0xa00005) AM_WRITE(SMH_RAM) AM_BASE(&seta_vctrl_0 ) // VRAM 0&1 Ctrl - AM_RANGE(0xa80000, 0xa80005) AM_WRITE(SMH_RAM) AM_BASE(&seta_vctrl_2 ) // VRAM 2&3 Ctrl - AM_RANGE(0xb00000, 0xb03fff) AM_WRITE(seta_vram_0_w) AM_BASE(&seta_vram_0 ) // VRAM 0 - AM_RANGE(0xb04000, 0xb0ffff) AM_WRITE(SMH_RAM ) // (jjsquawk) - AM_RANGE(0xb80000, 0xb83fff) AM_WRITE(seta_vram_2_w) AM_BASE(&seta_vram_2 ) // VRAM 2 - AM_RANGE(0xb84000, 0xb8ffff) AM_WRITE(SMH_RAM ) // (jjsquawk) - AM_RANGE(0xc00000, 0xc03fff) AM_DEVWRITE("x1", seta_sound_word_w ) // Sound - AM_RANGE(0xd00000, 0xd00007) AM_WRITE(SMH_NOP ) // ? - AM_RANGE(0xe00000, 0xe00001) AM_WRITE(SMH_NOP ) // ? VBlank IRQ Ack - AM_RANGE(0xf00000, 0xf00001) AM_WRITE(SMH_NOP ) // ? Sound IRQ Ack + AM_RANGE(0x500000, 0x500005) AM_RAM_WRITE(seta_vregs_w) AM_BASE(&seta_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_BASE(&paletteram16) AM_SIZE(&seta_paletteram_size) // Palette + AM_RANGE(0x701000, 0x70ffff) AM_RAM // +/**/AM_RANGE(0x800000, 0x800607) AM_RAM AM_BASE(&spriteram16) // Sprites Y + AM_RANGE(0x880000, 0x880001) AM_RAM // ? 0xc000 + AM_RANGE(0x900000, 0x903fff) AM_RAM AM_BASE(&spriteram16_2) // Sprites Code + X + Attr +/**/AM_RANGE(0xa00000, 0xa00005) AM_RAM AM_BASE(&seta_vctrl_0) // VRAM 0&1 Ctrl +/**/AM_RANGE(0xa80000, 0xa80005) AM_RAM AM_BASE(&seta_vctrl_2) // VRAM 2&3 Ctrl + AM_RANGE(0xb00000, 0xb03fff) AM_RAM_WRITE(seta_vram_0_w) AM_BASE(&seta_vram_0) // VRAM 0&1 + AM_RANGE(0xb04000, 0xb0ffff) AM_RAM // (jjsquawk) + AM_RANGE(0xb80000, 0xb83fff) AM_RAM_WRITE(seta_vram_2_w) AM_BASE(&seta_vram_2) // VRAM 2&3 + AM_RANGE(0xb84000, 0xb8ffff) AM_RAM // (jjsquawk) + AM_RANGE(0xc00000, 0xc03fff) AM_DEVREADWRITE("x1", seta_sound_word_r,seta_sound_word_w) // Sound + AM_RANGE(0xd00000, 0xd00007) AM_WRITENOP // ? + AM_RANGE(0xe00000, 0xe00001) AM_WRITENOP // ? VBlank IRQ Ack + AM_RANGE(0xf00000, 0xf00001) AM_WRITENOP // ? Sound IRQ Ack ADDRESS_MAP_END @@ -1910,53 +1809,32 @@ ADDRESS_MAP_END (with slight variations) ***************************************************************************/ -static ADDRESS_MAP_START( blandiap_readmem, ADDRESS_SPACE_PROGRAM, 16 ) - AM_RANGE(0x000000, 0x1fffff) AM_READ(SMH_ROM ) // ROM (up to 2MB) - AM_RANGE(0x200000, 0x20ffff) AM_READ(SMH_RAM ) // RAM (main ram for zingzip, wrofaero writes to 20f000-20ffff) - AM_RANGE(0x210000, 0x21ffff) AM_READ(SMH_RAM ) // RAM (gundhara) - AM_RANGE(0x300000, 0x30ffff) AM_READ(SMH_RAM ) // RAM (wrofaero only?) - AM_RANGE(0x500000, 0x500005) AM_READ(SMH_RAM ) // (gundhara) +static ADDRESS_MAP_START( blandiap_map, ADDRESS_SPACE_PROGRAM, 16 ) + AM_RANGE(0x000000, 0x1fffff) AM_ROM // ROM (up to 2MB) + AM_RANGE(0x200000, 0x20ffff) AM_RAM // RAM (main ram for zingzip, wrofaero writes to 20f000-20ffff) + AM_RANGE(0x210000, 0x21ffff) AM_RAM // RAM (gundhara) + AM_RANGE(0x300000, 0x30ffff) AM_RAM // RAM (wrofaero only?) AM_RANGE(0x400000, 0x400001) AM_READ_PORT("P1") // P1 AM_RANGE(0x400002, 0x400003) AM_READ_PORT("P2") // P2 AM_RANGE(0x400004, 0x400005) AM_READ_PORT("COINS") // Coins - AM_RANGE(0x600000, 0x600003) AM_READ(seta_dsw_r ) // DSW - AM_RANGE(0x700000, 0x7003ff) AM_READ(SMH_RAM ) // (rezon,jjsquawk) - AM_RANGE(0x700400, 0x700fff) AM_READ(SMH_RAM ) // Palette - AM_RANGE(0x701000, 0x70ffff) AM_READ(SMH_RAM ) // - AM_RANGE(0x800000, 0x803fff) AM_READ(SMH_RAM ) // VRAM 0&1 - AM_RANGE(0x804000, 0x80ffff) AM_READ(SMH_RAM ) // (jjsquawk) - AM_RANGE(0x880000, 0x883fff) AM_READ(SMH_RAM ) // VRAM 2&3 - AM_RANGE(0x884000, 0x88ffff) AM_READ(SMH_RAM ) // (jjsquawk) -/**/AM_RANGE(0x900000, 0x900005) AM_READ(SMH_RAM ) // VRAM 0&1 Ctrl -/**/AM_RANGE(0x980000, 0x980005) AM_READ(SMH_RAM ) // VRAM 2&3 Ctrl -/**/AM_RANGE(0xa00000, 0xa00607) AM_READ(SMH_RAM ) // Sprites Y -/**/AM_RANGE(0xa80000, 0xa80001) AM_READ(SMH_RAM ) // ? 0x4000 - AM_RANGE(0xb00000, 0xb03fff) AM_READ(SMH_RAM ) // Sprites Code + X + Attr - AM_RANGE(0xc00000, 0xc03fff) AM_DEVREAD("x1", seta_sound_word_r ) // Sound -ADDRESS_MAP_END - -static ADDRESS_MAP_START( blandiap_writemem, ADDRESS_SPACE_PROGRAM, 16 ) - AM_RANGE(0x000000, 0x1fffff) AM_WRITE(SMH_ROM ) // ROM (up to 2MB) - AM_RANGE(0x200000, 0x20ffff) AM_WRITE(SMH_RAM ) // RAM - AM_RANGE(0x210000, 0x21ffff) AM_WRITE(SMH_RAM ) // RAM (gundhara) - AM_RANGE(0x300000, 0x30ffff) AM_WRITE(SMH_RAM ) // RAM (wrofaero only?) - AM_RANGE(0x500000, 0x500005) AM_WRITE(seta_vregs_w) AM_BASE(&seta_vregs ) // Coin Lockout + Video Registers - AM_RANGE(0x700000, 0x7003ff) AM_WRITE(SMH_RAM ) // (rezon,jjsquawk) - AM_RANGE(0x700400, 0x700fff) AM_WRITE(SMH_RAM) AM_BASE(&paletteram16 ) AM_SIZE(&seta_paletteram_size) // Palette - AM_RANGE(0x701000, 0x70ffff) AM_WRITE(SMH_RAM ) // - AM_RANGE(0x800000, 0x803fff) AM_WRITE(seta_vram_0_w) AM_BASE(&seta_vram_0 ) // VRAM 0 - AM_RANGE(0x804000, 0x80ffff) AM_WRITE(SMH_RAM ) // (jjsquawk) - AM_RANGE(0x880000, 0x883fff) AM_WRITE(seta_vram_2_w) AM_BASE(&seta_vram_2 ) // VRAM 2 - AM_RANGE(0x884000, 0x88ffff) AM_WRITE(SMH_RAM ) // (jjsquawk) - AM_RANGE(0x900000, 0x900005) AM_WRITE(SMH_RAM) AM_BASE(&seta_vctrl_0 ) // VRAM 0&1 Ctrl - AM_RANGE(0x980000, 0x980005) AM_WRITE(SMH_RAM) AM_BASE(&seta_vctrl_2 ) // VRAM 2&3 Ctrl - AM_RANGE(0xa00000, 0xa00607) AM_WRITE(SMH_RAM) AM_BASE(&spriteram16 ) // Sprites Y - AM_RANGE(0xa80000, 0xa80001) AM_WRITE(SMH_RAM ) // ? 0x4000 - AM_RANGE(0xb00000, 0xb03fff) AM_WRITE(SMH_RAM) AM_BASE(&spriteram16_2 ) // Sprites Code + X + Attr - AM_RANGE(0xc00000, 0xc03fff) AM_DEVWRITE("x1", seta_sound_word_w ) // Sound - AM_RANGE(0xd00000, 0xd00007) AM_WRITE(SMH_NOP ) // ? - AM_RANGE(0xe00000, 0xe00001) AM_WRITE(SMH_NOP ) // ? VBlank IRQ Ack - AM_RANGE(0xf00000, 0xf00001) AM_WRITE(SMH_NOP ) // ? Sound IRQ Ack + AM_RANGE(0x500000, 0x500005) AM_RAM_WRITE(seta_vregs_w) AM_BASE(&seta_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_BASE(&paletteram16) AM_SIZE(&seta_paletteram_size) // Palette + AM_RANGE(0x701000, 0x70ffff) AM_RAM // + AM_RANGE(0x800000, 0x803fff) AM_RAM_WRITE(seta_vram_0_w) AM_BASE(&seta_vram_0) // VRAM 0&1 + AM_RANGE(0x804000, 0x80ffff) AM_RAM // (jjsquawk) + AM_RANGE(0x880000, 0x883fff) AM_RAM_WRITE(seta_vram_2_w) AM_BASE(&seta_vram_2) // VRAM 2&3 + AM_RANGE(0x884000, 0x88ffff) AM_RAM // (jjsquawk) +/**/AM_RANGE(0x900000, 0x900005) AM_RAM AM_BASE(&seta_vctrl_0) // VRAM 0&1 Ctrl +/**/AM_RANGE(0x980000, 0x980005) AM_RAM AM_BASE(&seta_vctrl_2) // VRAM 2&3 Ctrl +/**/AM_RANGE(0xa00000, 0xa00607) AM_RAM AM_BASE(&spriteram16) // Sprites Y +/**/AM_RANGE(0xa80000, 0xa80001) AM_RAM // ? 0x4000 + AM_RANGE(0xb00000, 0xb03fff) AM_RAM AM_BASE(&spriteram16_2) // Sprites Code + X + Attr + AM_RANGE(0xc00000, 0xc03fff) AM_DEVREADWRITE("x1", seta_sound_word_r,seta_sound_word_w) // Sound + AM_RANGE(0xd00000, 0xd00007) AM_WRITENOP // ? + AM_RANGE(0xe00000, 0xe00001) AM_WRITENOP // ? VBlank IRQ Ack + AM_RANGE(0xf00000, 0xf00001) AM_WRITENOP // ? Sound IRQ Ack ADDRESS_MAP_END @@ -2008,208 +1886,148 @@ static WRITE16_HANDLER( zombraid_gun_w ) old_clock = data & 1; } -static ADDRESS_MAP_START( wrofaero_readmem, ADDRESS_SPACE_PROGRAM, 16 ) - AM_RANGE(0x000000, 0x1fffff) AM_READ(SMH_ROM ) // ROM (up to 2MB) - AM_RANGE(0x200000, 0x20ffff) AM_READ(SMH_RAM ) // RAM (main ram for zingzip, wrofaero writes to 20f000-20ffff) - AM_RANGE(0x210000, 0x21ffff) AM_READ(SMH_RAM ) // RAM (gundhara) - AM_RANGE(0x300000, 0x30ffff) AM_READ(SMH_RAM ) // RAM (wrofaero only?) - AM_RANGE(0x500000, 0x500005) AM_READ(SMH_RAM ) // (gundhara) +static ADDRESS_MAP_START( wrofaero_map, ADDRESS_SPACE_PROGRAM, 16 ) + AM_RANGE(0x000000, 0x1fffff) AM_ROM // ROM (up to 2MB) + AM_RANGE(0x200000, 0x20ffff) AM_RAM AM_BASE(&seta_workram) // RAM (pointer for zombraid crosshair hack) + AM_RANGE(0x210000, 0x21ffff) AM_RAM // RAM (gundhara) + AM_RANGE(0x300000, 0x30ffff) AM_RAM // RAM (wrofaero only?) AM_RANGE(0x400000, 0x400001) AM_READ_PORT("P1") // P1 AM_RANGE(0x400002, 0x400003) AM_READ_PORT("P2") // P2 AM_RANGE(0x400004, 0x400005) AM_READ_PORT("COINS") // Coins - AM_RANGE(0x600000, 0x600003) AM_READ(seta_dsw_r ) // DSW - AM_RANGE(0x700000, 0x7003ff) AM_READ(SMH_RAM ) // (rezon,jjsquawk) - AM_RANGE(0x700400, 0x700fff) AM_READ(SMH_RAM ) // Palette - AM_RANGE(0x701000, 0x70ffff) AM_READ(SMH_RAM ) // - AM_RANGE(0x800000, 0x803fff) AM_READ(SMH_RAM ) // VRAM 0&1 - AM_RANGE(0x804000, 0x80ffff) AM_READ(SMH_RAM ) // (jjsquawk) - AM_RANGE(0x880000, 0x883fff) AM_READ(SMH_RAM ) // VRAM 2&3 - AM_RANGE(0x884000, 0x88ffff) AM_READ(SMH_RAM ) // (jjsquawk) -/**/AM_RANGE(0x900000, 0x900005) AM_READ(SMH_RAM ) // VRAM 0&1 Ctrl -/**/AM_RANGE(0x980000, 0x980005) AM_READ(SMH_RAM ) // VRAM 2&3 Ctrl -/**/AM_RANGE(0xa00000, 0xa00607) AM_READ(SMH_RAM ) // Sprites Y -/**/AM_RANGE(0xa80000, 0xa80001) AM_READ(SMH_RAM ) // ? 0x4000 - AM_RANGE(0xb00000, 0xb03fff) AM_READ(SMH_RAM ) // Sprites Code + X + Attr - AM_RANGE(0xc00000, 0xc03fff) AM_DEVREAD("x1", seta_sound_word_r ) // Sound + AM_RANGE(0x500000, 0x500005) AM_RAM_WRITE(seta_vregs_w) AM_BASE(&seta_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_BASE(&paletteram16) AM_SIZE(&seta_paletteram_size) // Palette + AM_RANGE(0x701000, 0x70ffff) AM_RAM // + AM_RANGE(0x800000, 0x803fff) AM_RAM_WRITE(seta_vram_0_w) AM_BASE(&seta_vram_0) // VRAM 0&1 + AM_RANGE(0x804000, 0x80ffff) AM_RAM // (jjsquawk) + AM_RANGE(0x880000, 0x883fff) AM_RAM_WRITE(seta_vram_2_w) AM_BASE(&seta_vram_2) // VRAM 2&3 + AM_RANGE(0x884000, 0x88ffff) AM_RAM // (jjsquawk) +/**/AM_RANGE(0x900000, 0x900005) AM_RAM AM_BASE(&seta_vctrl_0) // VRAM 0&1 Ctrl +/**/AM_RANGE(0x980000, 0x980005) AM_RAM AM_BASE(&seta_vctrl_2) // VRAM 2&3 Ctrl +/**/AM_RANGE(0xa00000, 0xa00607) AM_RAM AM_BASE(&spriteram16) // Sprites Y +/**/AM_RANGE(0xa80000, 0xa80001) AM_RAM // ? 0x4000 + AM_RANGE(0xb00000, 0xb03fff) AM_RAM AM_BASE(&spriteram16_2) // Sprites Code + X + Attr + AM_RANGE(0xc00000, 0xc03fff) AM_DEVREADWRITE("x1", seta_sound_word_r,seta_sound_word_w) // Sound +#if __uPD71054_TIMER + AM_RANGE(0xd00000, 0xd00007) AM_WRITE(timer_regs_w) // ? +#else + AM_RANGE(0xd00000, 0xd00007) AM_WRITENOP // ? +#endif + AM_RANGE(0xe00000, 0xe00001) AM_WRITENOP // ? VBlank IRQ Ack + AM_RANGE(0xf00000, 0xf00001) AM_WRITENOP // ? Sound IRQ Ack ADDRESS_MAP_END -static ADDRESS_MAP_START( wrofaero_writemem, ADDRESS_SPACE_PROGRAM, 16 ) - AM_RANGE(0x000000, 0x1fffff) AM_WRITE(SMH_ROM ) // ROM (up to 2MB) - AM_RANGE(0x200000, 0x20ffff) AM_WRITE(SMH_RAM) AM_BASE(&seta_workram ) // RAM (pointer for zombraid crosshair hack) - AM_RANGE(0x210000, 0x21ffff) AM_WRITE(SMH_RAM ) // RAM (gundhara) - AM_RANGE(0x300000, 0x30ffff) AM_WRITE(SMH_RAM ) // RAM (wrofaero only?) - AM_RANGE(0x500000, 0x500005) AM_WRITE(seta_vregs_w) AM_BASE(&seta_vregs ) // Coin Lockout + Video Registers - AM_RANGE(0x700000, 0x7003ff) AM_WRITE(SMH_RAM ) // (rezon,jjsquawk) - AM_RANGE(0x700400, 0x700fff) AM_WRITE(SMH_RAM) AM_BASE(&paletteram16 ) AM_SIZE(&seta_paletteram_size) // Palette - AM_RANGE(0x701000, 0x70ffff) AM_WRITE(SMH_RAM ) // - AM_RANGE(0x800000, 0x803fff) AM_WRITE(seta_vram_0_w) AM_BASE(&seta_vram_0 ) // VRAM 0 - AM_RANGE(0x804000, 0x80ffff) AM_WRITE(SMH_RAM ) // (jjsquawk) - AM_RANGE(0x880000, 0x883fff) AM_WRITE(seta_vram_2_w) AM_BASE(&seta_vram_2 ) // VRAM 2 - AM_RANGE(0x884000, 0x88ffff) AM_WRITE(SMH_RAM ) // (jjsquawk) - AM_RANGE(0x900000, 0x900005) AM_WRITE(SMH_RAM) AM_BASE(&seta_vctrl_0 ) // VRAM 0&1 Ctrl - AM_RANGE(0x980000, 0x980005) AM_WRITE(SMH_RAM) AM_BASE(&seta_vctrl_2 ) // VRAM 2&3 Ctrl - AM_RANGE(0xa00000, 0xa00607) AM_WRITE(SMH_RAM) AM_BASE(&spriteram16 ) // Sprites Y - AM_RANGE(0xa80000, 0xa80001) AM_WRITE(SMH_RAM ) // ? 0x4000 - AM_RANGE(0xb00000, 0xb03fff) AM_WRITE(SMH_RAM) AM_BASE(&spriteram16_2 ) // Sprites Code + X + Attr - AM_RANGE(0xc00000, 0xc03fff) AM_DEVWRITE("x1", seta_sound_word_w ) // Sound -#if __uPD71054_TIMER - AM_RANGE(0xd00000, 0xd00007) AM_WRITE(timer_regs_w ) // ? -#else - AM_RANGE(0xd00000, 0xd00007) AM_WRITE(SMH_NOP ) // ? -#endif - AM_RANGE(0xe00000, 0xe00001) AM_WRITE(SMH_NOP ) // ? VBlank IRQ Ack - AM_RANGE(0xf00000, 0xf00001) AM_WRITE(SMH_NOP ) // ? Sound IRQ Ack -ADDRESS_MAP_END +static ADDRESS_MAP_START( jjsquawb_map, ADDRESS_SPACE_PROGRAM, 16 ) + AM_RANGE(0x000000, 0x1fffff) AM_ROM // ROM (up to 2MB) + AM_RANGE(0x200000, 0x20ffff) AM_RAM AM_BASE(&seta_workram) // RAM (pointer for zombraid crosshair hack) + AM_RANGE(0x210000, 0x21ffff) AM_RAM // RAM (gundhara) + AM_RANGE(0x300000, 0x30ffff) AM_RAM // RAM (wrofaero only?) + AM_RANGE(0x400000, 0x400001) AM_READ_PORT("P1") // P1 + AM_RANGE(0x400002, 0x400003) AM_READ_PORT("P2") // P2 + AM_RANGE(0x400004, 0x400005) AM_READ_PORT("COINS") // Coins + AM_RANGE(0x500000, 0x500005) AM_RAM_WRITE(seta_vregs_w) AM_BASE(&seta_vregs) // (gundhara) Coin Lockout + Video Registers -static ADDRESS_MAP_START( jjsquawb_writemem, ADDRESS_SPACE_PROGRAM, 16 ) - AM_RANGE(0x000000, 0x1fffff) AM_WRITE(SMH_ROM ) // ROM (up to 2MB) - AM_RANGE(0x200000, 0x20ffff) AM_WRITE(SMH_RAM) AM_BASE(&seta_workram ) // RAM (pointer for zombraid crosshair hack) - AM_RANGE(0x210000, 0x21ffff) AM_WRITE(SMH_RAM ) // RAM (gundhara) - AM_RANGE(0x300000, 0x30ffff) AM_WRITE(SMH_RAM ) // RAM (wrofaero only?) - AM_RANGE(0x500000, 0x500005) AM_WRITE(seta_vregs_w) AM_BASE(&seta_vregs ) // Coin Lockout + Video Registers - AM_RANGE(0x700000, 0x70b3ff) AM_WRITE(SMH_RAM ) // RZ: (rezon,jjsquawk) - AM_RANGE(0x70b400, 0x70bfff) AM_WRITE(SMH_RAM) AM_BASE(&paletteram16 ) AM_SIZE(&seta_paletteram_size) // Palette - AM_RANGE(0x70c000, 0x70ffff) AM_WRITE(SMH_RAM ) // - AM_RANGE(0x800000, 0x803fff) AM_WRITE(seta_vram_0_w) AM_BASE(&seta_vram_0 ) // VRAM 0 - AM_RANGE(0x804000, 0x807fff) AM_WRITE(seta_vram_2_w) AM_BASE(&seta_vram_2 ) // VRAM 2 - AM_RANGE(0x884000, 0x88ffff) AM_WRITE(SMH_RAM ) // (jjsquawk) - AM_RANGE(0x908000, 0x908005) AM_WRITE(SMH_RAM) AM_BASE(&seta_vctrl_0 ) // VRAM 0&1 Ctrl - AM_RANGE(0x909000, 0x909005) AM_WRITE(SMH_RAM) AM_BASE(&seta_vctrl_2 ) // VRAM 2&3 Ctrl - AM_RANGE(0xa0a000, 0xa0a607) AM_WRITE(SMH_RAM) AM_BASE(&spriteram16 ) // RZ: Sprites Y - AM_RANGE(0xa80000, 0xa80001) AM_WRITE(SMH_RAM ) // ? 0x4000 - AM_RANGE(0xb0c000, 0xb0ffff) AM_WRITE(SMH_RAM) AM_BASE(&spriteram16_2 ) // RZ: Sprites Code + X + Attr - AM_RANGE(0xc00000, 0xc03fff) AM_DEVWRITE("x1", seta_sound_word_w ) // Sound + 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_BASE(&paletteram16 ) AM_SIZE(&seta_paletteram_size) // Palette + AM_RANGE(0x70c000, 0x70ffff) AM_RAM // + AM_RANGE(0x800000, 0x803fff) AM_RAM_WRITE(seta_vram_0_w) AM_BASE(&seta_vram_0) // VRAM 0 + AM_RANGE(0x804000, 0x807fff) AM_RAM_WRITE(seta_vram_2_w) AM_BASE(&seta_vram_2) // VRAM 2 + AM_RANGE(0x884000, 0x88ffff) AM_RAM // (jjsquawk) +/**/AM_RANGE(0x900000, 0x900005) AM_RAM AM_BASE(&seta_vctrl_0) // VRAM 0&1 Ctrl +/**/AM_RANGE(0x980000, 0x980005) AM_RAM AM_BASE(&seta_vctrl_2) // VRAM 2&3 Ctrl +/**/AM_RANGE(0xa0a000, 0xa0a607) AM_RAM AM_BASE(&spriteram16) // RZ: Sprites Y +/**/AM_RANGE(0xa80000, 0xa80001) AM_RAM // ? 0x4000 + AM_RANGE(0xb0c000, 0xb0ffff) AM_RAM AM_BASE(&spriteram16_2) // RZ: Sprites Code + X + Attr + AM_RANGE(0xc00000, 0xc03fff) AM_DEVREADWRITE("x1", seta_sound_word_r,seta_sound_word_w) // Sound #if __uPD71054_TIMER - AM_RANGE(0xd00000, 0xd00007) AM_WRITE(timer_regs_w ) // ? + AM_RANGE(0xd00000, 0xd00007) AM_WRITE(timer_regs_w) // ? #else - AM_RANGE(0xd00000, 0xd00007) AM_WRITE(SMH_NOP ) // ? + AM_RANGE(0xd00000, 0xd00007) AM_WRITENOP // ? #endif - AM_RANGE(0xe00000, 0xe00001) AM_WRITE(SMH_NOP ) // ? VBlank IRQ Ack - AM_RANGE(0xf00000, 0xf00001) AM_WRITE(SMH_NOP ) // ? Sound IRQ Ack + AM_RANGE(0xe00000, 0xe00001) AM_WRITENOP // ? VBlank IRQ Ack + AM_RANGE(0xf00000, 0xf00001) AM_WRITENOP // ? Sound IRQ Ack ADDRESS_MAP_END /*************************************************************************** - orbs + Orbs ***************************************************************************/ -static ADDRESS_MAP_START( orbs_readmem, ADDRESS_SPACE_PROGRAM, 16 ) - AM_RANGE(0x000000, 0x07ffff) AM_READ(SMH_ROM ) // ROM - AM_RANGE(0xf00000, 0xf0ffff) AM_READ(SMH_RAM ) // RAM - AM_RANGE(0x100000, 0x100001) AM_READ(SMH_NOP ) // ? - AM_RANGE(0x200000, 0x200001) AM_READ(SMH_NOP ) // ? - AM_RANGE(0x300000, 0x300003) AM_READ(seta_dsw_r ) // DSW +static ADDRESS_MAP_START( orbs_map, ADDRESS_SPACE_PROGRAM, 16 ) + AM_RANGE(0x000000, 0x07ffff) AM_ROM // ROM + AM_RANGE(0xf00000, 0xf0ffff) AM_RAM // RAM + AM_RANGE(0x100000, 0x100001) AM_READNOP // ? + AM_RANGE(0x200000, 0x200001) AM_READNOP // ? + AM_RANGE(0x300000, 0x300003) AM_READ(seta_dsw_r) // DSW + AM_RANGE(0x400000, 0x400001) AM_WRITENOP // ? AM_RANGE(0x500000, 0x500001) AM_READ_PORT("P1") // P1 AM_RANGE(0x500002, 0x500003) AM_READ_PORT("P2") // P2 AM_RANGE(0x500004, 0x500005) AM_READ_PORT("COINS") // Coins //AM_RANGE(0x600000, 0x60000f) AM_READ(krzybowl_input_r ) // P1 - AM_RANGE(0x8000f0, 0x8000f1) AM_READ(SMH_RAM ) // NVRAM - AM_RANGE(0x800100, 0x8001ff) AM_READ(SMH_RAM ) // NVRAM - AM_RANGE(0xa00000, 0xa03fff) AM_DEVREAD("x1", seta_sound_word_r ) // Sound - AM_RANGE(0xb00000, 0xb003ff) AM_READ(SMH_RAM ) // Palette - AM_RANGE(0xc00000, 0xc03fff) AM_READ(SMH_RAM ) // Sprites Code + X + Attr -/**/AM_RANGE(0xd00000, 0xd00001) AM_READ(SMH_RAM ) // ? 0x4000 -/**/AM_RANGE(0xe00000, 0xe00607) AM_READ(SMH_RAM ) // Sprites Y + AM_RANGE(0x8000f0, 0x8000f1) AM_RAM // NVRAM + AM_RANGE(0x800100, 0x8001ff) AM_RAM // NVRAM + AM_RANGE(0xa00000, 0xa03fff) AM_DEVREADWRITE("x1", seta_sound_word_r,seta_sound_word_w) // Sound + AM_RANGE(0xb00000, 0xb003ff) AM_RAM AM_BASE(&paletteram16) AM_SIZE(&seta_paletteram_size) // Palette + AM_RANGE(0xc00000, 0xc03fff) AM_RAM AM_BASE(&spriteram16_2) // Sprites Code + X + Attr +/**/AM_RANGE(0xd00000, 0xd00001) AM_RAM // ? 0x4000 +/**/AM_RANGE(0xe00000, 0xe00607) AM_RAM AM_BASE(&spriteram16) // Sprites Y ADDRESS_MAP_END -static ADDRESS_MAP_START( orbs_writemem, ADDRESS_SPACE_PROGRAM, 16 ) - AM_RANGE(0x000000, 0x07ffff) AM_WRITE(SMH_ROM ) // ROM - AM_RANGE(0xf00000, 0xf0ffff) AM_WRITE(SMH_RAM ) // RAM - AM_RANGE(0x400000, 0x400001) AM_WRITE(SMH_NOP ) // ? - AM_RANGE(0x8000f0, 0x8000f1) AM_WRITE(SMH_RAM ) // NVRAM - AM_RANGE(0x800100, 0x8001ff) AM_WRITE(SMH_RAM ) // NVRAM - AM_RANGE(0xa00000, 0xa03fff) AM_DEVWRITE("x1", seta_sound_word_w ) // Sound - AM_RANGE(0xb00000, 0xb003ff) AM_WRITE(SMH_RAM) AM_BASE(&paletteram16 ) AM_SIZE(&seta_paletteram_size) // Palette - AM_RANGE(0xc00000, 0xc03fff) AM_WRITE(SMH_RAM) AM_BASE(&spriteram16_2 ) // Sprites Code + X + Attr - AM_RANGE(0xd00000, 0xd00001) AM_WRITE(SMH_RAM ) // ? 0x4000 - AM_RANGE(0xe00000, 0xe00607) AM_WRITE(SMH_RAM) AM_BASE(&spriteram16 ) // Sprites Y -ADDRESS_MAP_END - - /*************************************************************************** Block Carnival ***************************************************************************/ /* similar to krzybowl */ -static ADDRESS_MAP_START( blockcar_readmem, ADDRESS_SPACE_PROGRAM, 16 ) - AM_RANGE(0x000000, 0x03ffff) AM_READ(SMH_ROM ) // ROM - AM_RANGE(0xf00000, 0xf03fff) AM_READ(SMH_RAM ) // RAM - AM_RANGE(0xf04000, 0xf041ff) AM_READ(SMH_RAM ) // Backup RAM? - AM_RANGE(0xf05000, 0xf050ff) AM_READ(SMH_RAM ) // Backup RAM? - AM_RANGE(0x300000, 0x300003) AM_READ(seta_dsw_r ) // DSW +static ADDRESS_MAP_START( blockcar_map, ADDRESS_SPACE_PROGRAM, 16 ) + AM_RANGE(0x000000, 0x03ffff) AM_ROM // ROM + AM_RANGE(0xf00000, 0xf03fff) AM_RAM // RAM + AM_RANGE(0xf04000, 0xf041ff) AM_RAM // Backup RAM? + AM_RANGE(0xf05000, 0xf050ff) AM_RAM // Backup RAM? + AM_RANGE(0x100000, 0x100001) AM_WRITENOP // ? 1 (start of interrupts, main loop: watchdog?) + AM_RANGE(0x200000, 0x200001) AM_WRITENOP // ? 0/1 (IRQ acknowledge?) + AM_RANGE(0x300000, 0x300003) AM_READ(seta_dsw_r) // DSW + AM_RANGE(0x400000, 0x400001) AM_RAM_WRITE(seta_vregs_w) AM_BASE(&seta_vregs) // Coin Lockout + Sound Enable (bit 4?) AM_RANGE(0x500000, 0x500001) AM_READ_PORT("P1") // P1 AM_RANGE(0x500002, 0x500003) AM_READ_PORT("P2") // P2 AM_RANGE(0x500004, 0x500005) AM_READ_PORT("COINS") // Coins - AM_RANGE(0xa00000, 0xa03fff) AM_DEVREAD("x1", seta_sound_word_r ) // Sound - AM_RANGE(0xb00000, 0xb003ff) AM_READ(SMH_RAM ) // Palette - AM_RANGE(0xc00000, 0xc03fff) AM_READ(SMH_RAM ) // Sprites Code + X + Attr -/**/AM_RANGE(0xd00000, 0xd00001) AM_READ(SMH_RAM ) // ? 0x4000 -/**/AM_RANGE(0xe00000, 0xe00607) AM_READ(SMH_RAM ) // Sprites Y + AM_RANGE(0xa00000, 0xa03fff) AM_DEVREADWRITE("x1", seta_sound_word_r,seta_sound_word_w) // Sound + AM_RANGE(0xb00000, 0xb003ff) AM_RAM AM_BASE(&paletteram16) AM_SIZE(&seta_paletteram_size) // Palette + AM_RANGE(0xc00000, 0xc03fff) AM_RAM AM_BASE(&spriteram16_2) // Sprites Code + X + Attr +/**/AM_RANGE(0xd00000, 0xd00001) AM_RAM // ? 0x4000 +/**/AM_RANGE(0xe00000, 0xe00607) AM_RAM AM_BASE(&spriteram16) // Sprites Y ADDRESS_MAP_END -static ADDRESS_MAP_START( blockcar_writemem, ADDRESS_SPACE_PROGRAM, 16 ) - AM_RANGE(0x000000, 0x03ffff) AM_WRITE(SMH_ROM ) // ROM - AM_RANGE(0xf00000, 0xf03fff) AM_WRITE(SMH_RAM ) // RAM - AM_RANGE(0xf04000, 0xf041ff) AM_WRITE(SMH_RAM ) // Backup RAM? - AM_RANGE(0xf05000, 0xf050ff) AM_WRITE(SMH_RAM ) // Backup RAM? - AM_RANGE(0x100000, 0x100001) AM_WRITE(SMH_NOP ) // ? 1 (start of interrupts, main loop: watchdog?) - AM_RANGE(0x200000, 0x200001) AM_WRITE(SMH_NOP ) // ? 0/1 (IRQ acknowledge?) - AM_RANGE(0x400000, 0x400001) AM_WRITE(seta_vregs_w) AM_BASE(&seta_vregs ) // Coin Lockout + Sound Enable (bit 4?) - AM_RANGE(0xa00000, 0xa03fff) AM_DEVWRITE("x1", seta_sound_word_w ) // Sound - AM_RANGE(0xb00000, 0xb003ff) AM_WRITE(SMH_RAM) AM_BASE(&paletteram16 ) AM_SIZE(&seta_paletteram_size) // Palette - AM_RANGE(0xc00000, 0xc03fff) AM_WRITE(SMH_RAM) AM_BASE(&spriteram16_2 ) // Sprites Code + X + Attr - AM_RANGE(0xd00000, 0xd00001) AM_WRITE(SMH_RAM ) // ? 0x4000 - AM_RANGE(0xe00000, 0xe00607) AM_WRITE(SMH_RAM) AM_BASE(&spriteram16 ) // Sprites Y -ADDRESS_MAP_END - - /*************************************************************************** Daioh ***************************************************************************/ -static ADDRESS_MAP_START( daioh_readmem, ADDRESS_SPACE_PROGRAM, 16 ) - AM_RANGE(0x000000, 0x0fffff) AM_READ(SMH_ROM ) // ROM - AM_RANGE(0x100000, 0x10ffff) AM_READ(SMH_RAM ) // RAM +static ADDRESS_MAP_START( daioh_map, ADDRESS_SPACE_PROGRAM, 16 ) + AM_RANGE(0x000000, 0x0fffff) AM_ROM // ROM + AM_RANGE(0x100000, 0x10ffff) AM_RAM // RAM AM_RANGE(0x400000, 0x400001) AM_READ_PORT("P1") // P1 AM_RANGE(0x400002, 0x400003) AM_READ_PORT("P2") // P2 AM_RANGE(0x400004, 0x400005) AM_READ_PORT("COINS") // Coins + AM_RANGE(0x500000, 0x500005) AM_RAM_WRITE(seta_vregs_w) AM_BASE(&seta_vregs) // Coin Lockout + Video Registers 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_READ(SMH_RAM ) - AM_RANGE(0x700400, 0x700fff) AM_READ(SMH_RAM ) // Palette - AM_RANGE(0x701000, 0x70ffff) AM_READ(SMH_RAM ) - AM_RANGE(0x800000, 0x803fff) AM_READ(SMH_RAM ) // VRAM 0&1 - AM_RANGE(0x804000, 0x80ffff) AM_READ(SMH_RAM ) // - AM_RANGE(0x880000, 0x883fff) AM_READ(SMH_RAM ) // VRAM 2&3 - AM_RANGE(0x884000, 0x88ffff) AM_READ(SMH_RAM ) // - AM_RANGE(0x900000, 0x900005) AM_READ(SMH_RAM ) // VRAM 0&1 Ctrl - AM_RANGE(0x980000, 0x980005) AM_READ(SMH_RAM ) // VRAM 2&3 Ctrl - AM_RANGE(0xa00000, 0xa00607) AM_READ(SMH_RAM ) // Sprites Y - AM_RANGE(0xa80000, 0xa80001) AM_READ(SMH_RAM ) // ? 0x4000 - AM_RANGE(0xb00000, 0xb03fff) AM_READ(SMH_RAM ) // Sprites Code + X + Attr - AM_RANGE(0xb04000, 0xb13fff) AM_READ(SMH_RAM ) // - AM_RANGE(0xc00000, 0xc03fff) AM_DEVREAD("x1", seta_sound_word_r ) // Sound -ADDRESS_MAP_END - -static ADDRESS_MAP_START( daioh_writemem, ADDRESS_SPACE_PROGRAM, 16 ) - AM_RANGE(0x000000, 0x0fffff) AM_WRITE(SMH_ROM ) // ROM - AM_RANGE(0x100000, 0x10ffff) AM_WRITE(SMH_RAM ) // RAM - AM_RANGE(0x500000, 0x500005) AM_WRITE(seta_vregs_w) AM_BASE(&seta_vregs ) // Coin Lockout + Video Registers - AM_RANGE(0x700000, 0x7003ff) AM_WRITE(SMH_RAM ) - AM_RANGE(0x700400, 0x700fff) AM_WRITE(SMH_RAM) AM_BASE(&paletteram16 ) AM_SIZE(&seta_paletteram_size) // Palette - AM_RANGE(0x701000, 0x70ffff) AM_WRITE(SMH_RAM ) // - AM_RANGE(0x800000, 0x803fff) AM_WRITE(seta_vram_0_w) AM_BASE(&seta_vram_0 ) // VRAM 0 - AM_RANGE(0x804000, 0x80ffff) AM_WRITE(SMH_RAM ) // - AM_RANGE(0x880000, 0x883fff) AM_WRITE(seta_vram_2_w) AM_BASE(&seta_vram_2 ) // VRAM 2 - AM_RANGE(0x884000, 0x88ffff) AM_WRITE(SMH_RAM ) // - AM_RANGE(0x900000, 0x900005) AM_WRITE(SMH_RAM) AM_BASE(&seta_vctrl_0 ) // VRAM 0&1 Ctrl - AM_RANGE(0x980000, 0x980005) AM_WRITE(SMH_RAM) AM_BASE(&seta_vctrl_2 ) // VRAM 2&3 Ctrl - AM_RANGE(0xa00000, 0xa00607) AM_WRITE(SMH_RAM) AM_BASE(&spriteram16 ) // Sprites Y - AM_RANGE(0xa80000, 0xa80001) AM_WRITE(SMH_RAM ) // ? 0x4000 - AM_RANGE(0xb00000, 0xb03fff) AM_WRITE(SMH_RAM) AM_BASE(&spriteram16_2 ) // Sprites Code + X + Attr - AM_RANGE(0xb04000, 0xb13fff) AM_WRITE(SMH_RAM ) // - AM_RANGE(0xc00000, 0xc03fff) AM_DEVWRITE("x1", seta_sound_word_w ) // Sound - AM_RANGE(0xe00000, 0xe00001) AM_WRITE(SMH_NOP ) // + AM_RANGE(0x700000, 0x7003ff) AM_RAM + AM_RANGE(0x700400, 0x700fff) AM_RAM AM_BASE(&paletteram16) AM_SIZE(&seta_paletteram_size) // Palette + AM_RANGE(0x701000, 0x70ffff) AM_RAM // + AM_RANGE(0x800000, 0x803fff) AM_RAM_WRITE(seta_vram_0_w) AM_BASE(&seta_vram_0 ) // VRAM 0&1 + AM_RANGE(0x804000, 0x80ffff) AM_RAM // + AM_RANGE(0x880000, 0x883fff) AM_RAM_WRITE(seta_vram_2_w) AM_BASE(&seta_vram_2 ) // VRAM 2&3 + AM_RANGE(0x884000, 0x88ffff) AM_RAM // + AM_RANGE(0x900000, 0x900005) AM_RAM AM_BASE(&seta_vctrl_0) // VRAM 0&1 Ctrl + AM_RANGE(0x980000, 0x980005) AM_RAM AM_BASE(&seta_vctrl_2) // VRAM 2&3 Ctrl + AM_RANGE(0xa00000, 0xa00607) AM_RAM AM_BASE(&spriteram16 ) // Sprites Y + AM_RANGE(0xa80000, 0xa80001) AM_RAM // ? 0x4000 + AM_RANGE(0xb00000, 0xb03fff) AM_RAM AM_BASE(&spriteram16_2 ) // Sprites Code + X + Attr + AM_RANGE(0xb04000, 0xb13fff) AM_RAM + AM_RANGE(0xc00000, 0xc03fff) AM_DEVREADWRITE("x1", seta_sound_word_r,seta_sound_word_w) // Sound + AM_RANGE(0xe00000, 0xe00001) AM_WRITENOP // ADDRESS_MAP_END @@ -2217,39 +2035,26 @@ ADDRESS_MAP_END Dragon Unit, Quiz Kokology, Quiz Kokology 2, Strike Gunner ***************************************************************************/ -static ADDRESS_MAP_START( drgnunit_readmem, ADDRESS_SPACE_PROGRAM, 16 ) - AM_RANGE(0x000000, 0x0bffff) AM_READ(SMH_ROM ) // ROM - AM_RANGE(0xf00000, 0xf0ffff) AM_READ(SMH_RAM ) // RAM (qzkklogy) - AM_RANGE(0xffc000, 0xffffff) AM_READ(SMH_RAM ) // RAM (drgnunit,stg) - AM_RANGE(0x100000, 0x103fff) AM_DEVREAD("x1", seta_sound_word_r ) // Sound - AM_RANGE(0x600000, 0x600003) AM_READ(seta_dsw_r ) // DSW - AM_RANGE(0x700000, 0x7003ff) AM_READ(SMH_RAM ) // Palette - AM_RANGE(0x900000, 0x901fff) AM_READ(SMH_RAM ) // VRAM - AM_RANGE(0x902000, 0x903fff) AM_READ(SMH_RAM ) // VRAM +static ADDRESS_MAP_START( drgnunit_map, ADDRESS_SPACE_PROGRAM, 16 ) + AM_RANGE(0x000000, 0x0bffff) AM_ROM // ROM + AM_RANGE(0xf00000, 0xf0ffff) AM_RAM // RAM (qzkklogy) + AM_RANGE(0xffc000, 0xffffff) AM_RAM // RAM (drgnunit,stg) + AM_RANGE(0x100000, 0x103fff) AM_DEVREADWRITE("x1", seta_sound_word_r,seta_sound_word_w) // Sound + AM_RANGE(0x200000, 0x200001) AM_WRITENOP // Watchdog + AM_RANGE(0x300000, 0x300001) AM_WRITENOP // ? IRQ Ack + AM_RANGE(0x500000, 0x500001) AM_RAM_WRITE(seta_vregs_w) AM_BASE(&seta_vregs) // Coin Lockout + Video Registers + AM_RANGE(0x600000, 0x600003) AM_READ(seta_dsw_r) // DSW + AM_RANGE(0x700000, 0x7003ff) AM_RAM AM_BASE(&paletteram16) AM_SIZE(&seta_paletteram_size) // Palette + AM_RANGE(0x800000, 0x800005) AM_RAM AM_BASE(&seta_vctrl_0) // VRAM Ctrl + AM_RANGE(0x900000, 0x903fff) AM_RAM_WRITE(seta_vram_0_w) AM_BASE(&seta_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_READ(SMH_NOP ) // unused (qzkklogy) -/**/AM_RANGE(0xc00000, 0xc00001) AM_READ(SMH_RAM ) // ? $4000 -/**/AM_RANGE(0xd00000, 0xd00607) AM_READ(SMH_RAM ) // Sprites Y - AM_RANGE(0xe00000, 0xe03fff) AM_READ(SMH_RAM ) // Sprites Code + X + Attr -ADDRESS_MAP_END - -static ADDRESS_MAP_START( drgnunit_writemem, ADDRESS_SPACE_PROGRAM, 16 ) - AM_RANGE(0x000000, 0x0bffff) AM_WRITE(SMH_ROM ) // ROM - AM_RANGE(0xf00000, 0xf0ffff) AM_WRITE(SMH_RAM ) // RAM (qzkklogy) - AM_RANGE(0xffc000, 0xffffff) AM_WRITE(SMH_RAM ) // RAM (drgnunit,stg) - AM_RANGE(0x100000, 0x103fff) AM_DEVWRITE("x1", seta_sound_word_w ) // Sound - AM_RANGE(0x200000, 0x200001) AM_WRITE(SMH_NOP ) // Watchdog - AM_RANGE(0x300000, 0x300001) AM_WRITE(SMH_NOP ) // ? IRQ Ack - AM_RANGE(0x500000, 0x500001) AM_WRITE(seta_vregs_w) AM_BASE(&seta_vregs ) // Coin Lockout + Video Registers - AM_RANGE(0x700000, 0x7003ff) AM_WRITE(SMH_RAM) AM_BASE(&paletteram16 ) AM_SIZE(&seta_paletteram_size) // Palette - AM_RANGE(0x800000, 0x800005) AM_WRITE(SMH_RAM) AM_BASE(&seta_vctrl_0 ) // VRAM Ctrl - AM_RANGE(0x900000, 0x903fff) AM_WRITE(seta_vram_0_w) AM_BASE(&seta_vram_0 ) // VRAM - AM_RANGE(0x904000, 0x90ffff) AM_WRITE(SMH_NOP ) // unused (qzkklogy) - AM_RANGE(0xc00000, 0xc00001) AM_WRITE(SMH_RAM ) // ? $4000 - AM_RANGE(0xd00000, 0xd00607) AM_WRITE(SMH_RAM) AM_BASE(&spriteram16 ) // Sprites Y - AM_RANGE(0xe00000, 0xe03fff) AM_WRITE(SMH_RAM) AM_BASE(&spriteram16_2 ) // Sprites Code + X + Attr + AM_RANGE(0xb00006, 0xb00007) AM_READNOP // unused (qzkklogy) +/**/AM_RANGE(0xc00000, 0xc00001) AM_RAM // ? $4000 +/**/AM_RANGE(0xd00000, 0xd00607) AM_RAM AM_BASE(&spriteram16) // Sprites Y + AM_RANGE(0xe00000, 0xe03fff) AM_RAM AM_BASE(&spriteram16_2) // Sprites Code + X + Attr ADDRESS_MAP_END @@ -2257,151 +2062,98 @@ ADDRESS_MAP_END Extreme Downhill / Sokonuke ***************************************************************************/ -static ADDRESS_MAP_START( extdwnhl_readmem, ADDRESS_SPACE_PROGRAM, 16 ) - AM_RANGE(0x000000, 0x0fffff) AM_READ(SMH_ROM ) // ROM - AM_RANGE(0x200000, 0x20ffff) AM_READ(SMH_RAM ) // RAM - AM_RANGE(0x210000, 0x21ffff) AM_READ(SMH_RAM ) // RAM - AM_RANGE(0x220000, 0x23ffff) AM_READ(SMH_RAM ) // RAM (sokonuke) +static ADDRESS_MAP_START( extdwnhl_map, ADDRESS_SPACE_PROGRAM, 16 ) + AM_RANGE(0x000000, 0x0fffff) AM_ROM // ROM + AM_RANGE(0x200000, 0x20ffff) AM_RAM // RAM + AM_RANGE(0x210000, 0x21ffff) AM_RAM // RAM + AM_RANGE(0x220000, 0x23ffff) AM_RAM // RAM (sokonuke) AM_RANGE(0x400000, 0x400001) AM_READ_PORT("P1") // P1 AM_RANGE(0x400002, 0x400003) AM_READ_PORT("P2") // P2 AM_RANGE(0x400004, 0x400005) AM_READ_PORT("COINS") // Coins - AM_RANGE(0x400008, 0x40000b) AM_READ(seta_dsw_r ) // DSW - AM_RANGE(0x40000c, 0x40000d) AM_READ(watchdog_reset16_r ) // Watchdog (extdwnhl, MUST RETURN $FFFF) - AM_RANGE(0x500004, 0x500007) AM_READ(SMH_NOP ) // IRQ Ack (extdwnhl) - AM_RANGE(0x600400, 0x600fff) AM_READ(SMH_RAM ) // Palette - AM_RANGE(0x601000, 0x610bff) AM_READ(SMH_RAM ) // - AM_RANGE(0x800000, 0x803fff) AM_READ(SMH_RAM ) // VRAM 0&1 - AM_RANGE(0x804000, 0x80ffff) AM_READ(SMH_RAM ) // - AM_RANGE(0x880000, 0x883fff) AM_READ(SMH_RAM ) // VRAM 2&3 - AM_RANGE(0x884000, 0x88ffff) AM_READ(SMH_RAM ) // -/**/AM_RANGE(0x900000, 0x900005) AM_READ(SMH_RAM ) // VRAM 0&1 Ctrl -/**/AM_RANGE(0x980000, 0x980005) AM_READ(SMH_RAM ) // VRAM 2&3 Ctrl -/**/AM_RANGE(0xa00000, 0xa00607) AM_READ(SMH_RAM ) // Sprites Y -/**/AM_RANGE(0xa80000, 0xa80001) AM_READ(SMH_RAM ) // ? 0x4000 - AM_RANGE(0xb00000, 0xb03fff) AM_READ(SMH_RAM ) // Sprites Code + X + Attr - AM_RANGE(0xb04000, 0xb13fff) AM_READ(SMH_RAM ) // - AM_RANGE(0xe00000, 0xe03fff) AM_DEVREAD("x1", seta_sound_word_r ) // Sound + AM_RANGE(0x400008, 0x40000b) AM_READ(seta_dsw_r) // DSW + AM_RANGE(0x40000c, 0x40000d) AM_READWRITE(watchdog_reset16_r,watchdog_reset16_w) // Watchdog (extdwnhl (R) & sokonuke (W) MUST RETURN $FFFF) + AM_RANGE(0x500000, 0x500003) AM_RAM_WRITE(seta_vregs_w) AM_BASE(&seta_vregs) // Coin Lockout + Video Registers + AM_RANGE(0x500004, 0x500007) AM_NOP // IRQ Ack (extdwnhl (R) & sokonuke (W)) + AM_RANGE(0x600400, 0x600fff) AM_RAM AM_BASE(&paletteram16) AM_SIZE(&seta_paletteram_size) // Palette + AM_RANGE(0x601000, 0x610bff) AM_RAM // + AM_RANGE(0x800000, 0x803fff) AM_RAM_WRITE(seta_vram_0_w) AM_BASE(&seta_vram_0) // VRAM 0&1 + AM_RANGE(0x804000, 0x80ffff) AM_RAM // + AM_RANGE(0x880000, 0x883fff) AM_RAM_WRITE(seta_vram_2_w) AM_BASE(&seta_vram_2) // VRAM 2&3 + AM_RANGE(0x884000, 0x88ffff) AM_RAM // +/**/AM_RANGE(0x900000, 0x900005) AM_RAM AM_BASE(&seta_vctrl_0) // VRAM 0&1 Ctrl +/**/AM_RANGE(0x980000, 0x980005) AM_RAM AM_BASE(&seta_vctrl_2) // VRAM 2&3 Ctrl +/**/AM_RANGE(0xa00000, 0xa00607) AM_RAM AM_BASE(&spriteram16) // Sprites Y +/**/AM_RANGE(0xa80000, 0xa80001) AM_RAM // ? 0x4000 + AM_RANGE(0xb00000, 0xb03fff) AM_RAM AM_BASE(&spriteram16_2) // Sprites Code + X + Attr + AM_RANGE(0xb04000, 0xb13fff) AM_RAM // + AM_RANGE(0xe00000, 0xe03fff) AM_DEVREADWRITE("x1", seta_sound_word_r,seta_sound_word_w) // Sound ADDRESS_MAP_END -static ADDRESS_MAP_START( extdwnhl_writemem, ADDRESS_SPACE_PROGRAM, 16 ) - AM_RANGE(0x000000, 0x0fffff) AM_WRITE(SMH_ROM ) // ROM - AM_RANGE(0x200000, 0x20ffff) AM_WRITE(SMH_RAM ) // RAM - AM_RANGE(0x210000, 0x21ffff) AM_WRITE(SMH_RAM ) // RAM - AM_RANGE(0x220000, 0x23ffff) AM_WRITE(SMH_RAM ) // RAM (sokonuke) - AM_RANGE(0x40000c, 0x40000d) AM_WRITE(watchdog_reset16_w ) // Watchdog (sokonuke) - AM_RANGE(0x500000, 0x500003) AM_WRITE(seta_vregs_w) AM_BASE(&seta_vregs ) // Coin Lockout + Video Registers - AM_RANGE(0x500004, 0x500007) AM_WRITE(SMH_NOP ) // IRQ Ack (sokonuke) - AM_RANGE(0x600400, 0x600fff) AM_WRITE(SMH_RAM) AM_BASE(&paletteram16 ) AM_SIZE(&seta_paletteram_size) // Palette - AM_RANGE(0x601000, 0x610bff) AM_WRITE(SMH_RAM ) // - AM_RANGE(0x800000, 0x803fff) AM_WRITE(seta_vram_0_w) AM_BASE(&seta_vram_0 ) // VRAM 0 - AM_RANGE(0x804000, 0x80ffff) AM_WRITE(SMH_RAM ) // - AM_RANGE(0x880000, 0x883fff) AM_WRITE(seta_vram_2_w) AM_BASE(&seta_vram_2 ) // VRAM 2 - AM_RANGE(0x884000, 0x88ffff) AM_WRITE(SMH_RAM ) // - AM_RANGE(0x900000, 0x900005) AM_WRITE(SMH_RAM) AM_BASE(&seta_vctrl_0 ) // VRAM 0&1 Ctrl - AM_RANGE(0x980000, 0x980005) AM_WRITE(SMH_RAM) AM_BASE(&seta_vctrl_2 ) // VRAM 2&3 Ctrl - AM_RANGE(0xa00000, 0xa00607) AM_WRITE(SMH_RAM) AM_BASE(&spriteram16 ) // Sprites Y - AM_RANGE(0xa80000, 0xa80001) AM_WRITE(SMH_RAM ) // ? 0x4000 - AM_RANGE(0xb00000, 0xb03fff) AM_WRITE(SMH_RAM) AM_BASE(&spriteram16_2 ) // Sprites Code + X + Attr - AM_RANGE(0xb04000, 0xb13fff) AM_WRITE(SMH_RAM ) // - AM_RANGE(0xe00000, 0xe03fff) AM_DEVWRITE("x1", seta_sound_word_w ) // Sound -ADDRESS_MAP_END /*************************************************************************** (Kamen) Masked Riders Club Battle Race / Mad Shark ***************************************************************************/ -static ADDRESS_MAP_START( kamenrid_readmem, ADDRESS_SPACE_PROGRAM, 16 ) - AM_RANGE(0x000000, 0x07ffff) AM_READ(SMH_ROM ) // ROM - AM_RANGE(0x200000, 0x20ffff) AM_READ(SMH_RAM ) // ROM +static ADDRESS_MAP_START( kamenrid_map, ADDRESS_SPACE_PROGRAM, 16 ) + AM_RANGE(0x000000, 0x07ffff) AM_ROM // ROM + AM_RANGE(0x200000, 0x20ffff) AM_RAM // RAM AM_RANGE(0x500000, 0x500001) AM_READ_PORT("P1") // P1 AM_RANGE(0x500002, 0x500003) AM_READ_PORT("P2") // P2 - AM_RANGE(0x500004, 0x500007) AM_READ(seta_dsw_r ) // DSW + AM_RANGE(0x500004, 0x500007) AM_READ(seta_dsw_r) // DSW AM_RANGE(0x500008, 0x500009) AM_READ_PORT("COINS") // Coins - AM_RANGE(0x50000c, 0x50000d) AM_READ(watchdog_reset16_r ) // xx Watchdog? - AM_RANGE(0x700000, 0x7003ff) AM_READ(SMH_RAM ) // Palette - AM_RANGE(0x700400, 0x700fff) AM_READ(SMH_RAM ) // Palette - AM_RANGE(0x701000, 0x703fff) AM_READ(SMH_RAM ) // Palette - AM_RANGE(0x800000, 0x801fff) AM_READ(SMH_RAM ) // VRAM 0 - AM_RANGE(0x802000, 0x803fff) AM_READ(SMH_RAM ) // VRAM 1 - AM_RANGE(0x804000, 0x807fff) AM_READ(SMH_RAM ) // tested - AM_RANGE(0x880000, 0x881fff) AM_READ(SMH_RAM ) // VRAM 2 - AM_RANGE(0x882000, 0x883fff) AM_READ(SMH_RAM ) // VRAM 3 - AM_RANGE(0x884000, 0x887fff) AM_READ(SMH_RAM ) // tested - AM_RANGE(0xa00000, 0xa00607) AM_READ(SMH_RAM ) // Sprites Y - AM_RANGE(0xb00000, 0xb03fff) AM_READ(SMH_RAM ) // Sprites Code + X + Attr - AM_RANGE(0xb04000, 0xb07fff) AM_READ(SMH_RAM ) // tested - AM_RANGE(0xd00000, 0xd03fff) AM_DEVREAD("x1", seta_sound_word_r ) // Sound -ADDRESS_MAP_END - -static ADDRESS_MAP_START( kamenrid_writemem, ADDRESS_SPACE_PROGRAM, 16 ) - AM_RANGE(0x000000, 0x07ffff) AM_WRITE(SMH_ROM ) // ROM - AM_RANGE(0x200000, 0x20ffff) AM_WRITE(SMH_RAM ) // ROM - AM_RANGE(0x50000c, 0x50000d) AM_WRITE(watchdog_reset16_w ) // Watchdog (sokonuke) - AM_RANGE(0x600000, 0x600005) AM_WRITE(seta_vregs_w) AM_BASE(&seta_vregs ) // ? Coin Lockout + Video Registers - AM_RANGE(0x600006, 0x600007) AM_WRITE(SMH_NOP ) // ? - AM_RANGE(0x700000, 0x7003ff) AM_WRITE(SMH_RAM ) // Palette RAM (tested) - AM_RANGE(0x700400, 0x700fff) AM_WRITE(SMH_RAM) AM_BASE(&paletteram16 ) AM_SIZE(&seta_paletteram_size) // Palette - AM_RANGE(0x701000, 0x703fff) AM_WRITE(SMH_RAM ) // Palette - AM_RANGE(0x800000, 0x803fff) AM_WRITE(seta_vram_0_w) AM_BASE(&seta_vram_0 ) // VRAM 0 - AM_RANGE(0x804000, 0x807fff) AM_WRITE(SMH_RAM ) // tested - AM_RANGE(0x880000, 0x883fff) AM_WRITE(seta_vram_2_w) AM_BASE(&seta_vram_2 ) // VRAM 2 - AM_RANGE(0x884000, 0x887fff) AM_WRITE(SMH_RAM ) // tested - AM_RANGE(0x900000, 0x900005) AM_WRITE(SMH_RAM) AM_BASE(&seta_vctrl_0 ) // VRAM 0&1 Ctrl - AM_RANGE(0x980000, 0x980005) AM_WRITE(SMH_RAM) AM_BASE(&seta_vctrl_2 ) // VRAM 2&3 Ctrl - AM_RANGE(0xa00000, 0xa00607) AM_WRITE(SMH_RAM) AM_BASE(&spriteram16 ) // Sprites Y - AM_RANGE(0xa80000, 0xa80001) AM_WRITE(SMH_RAM ) // ? $4000 - AM_RANGE(0xb00000, 0xb03fff) AM_WRITE(SMH_RAM) AM_BASE(&spriteram16_2 ) // Sprites Code + X + Attr - AM_RANGE(0xb04000, 0xb07fff) AM_WRITE(SMH_RAM) // tested + AM_RANGE(0x50000c, 0x50000d) AM_READWRITE(watchdog_reset16_r,watchdog_reset16_w) // xx Watchdog? (sokonuke) + AM_RANGE(0x600000, 0x600005) AM_RAM_WRITE(seta_vregs_w) AM_BASE(&seta_vregs) // ? Coin Lockout + Video Registers + AM_RANGE(0x600006, 0x600007) AM_WRITENOP // ? + AM_RANGE(0x700000, 0x7003ff) AM_RAM // Palette RAM (tested) + AM_RANGE(0x700400, 0x700fff) AM_RAM AM_BASE(&paletteram16) AM_SIZE(&seta_paletteram_size) // Palette + AM_RANGE(0x701000, 0x703fff) AM_RAM // Palette + AM_RANGE(0x800000, 0x803fff) AM_RAM_WRITE(seta_vram_0_w) AM_BASE(&seta_vram_0 ) // VRAM 0&1 + AM_RANGE(0x804000, 0x807fff) AM_RAM // tested + AM_RANGE(0x880000, 0x883fff) AM_RAM_WRITE(seta_vram_2_w) AM_BASE(&seta_vram_2 ) // VRAM 2&3 + AM_RANGE(0x884000, 0x887fff) AM_RAM // tested + AM_RANGE(0x900000, 0x900005) AM_RAM AM_BASE(&seta_vctrl_0) // VRAM 0&1 Ctrl + AM_RANGE(0x980000, 0x980005) AM_RAM AM_BASE(&seta_vctrl_2) // VRAM 2&3 Ctrl + AM_RANGE(0xa00000, 0xa00607) AM_RAM AM_BASE(&spriteram16) // Sprites Y + AM_RANGE(0xa80000, 0xa80001) AM_RAM // ? $4000 + AM_RANGE(0xb00000, 0xb03fff) AM_RAM AM_BASE(&spriteram16_2) // Sprites Code + X + Attr + AM_RANGE(0xb04000, 0xb07fff) AM_RAM // tested #if __uPD71054_TIMER - AM_RANGE(0xc00000, 0xc00007) AM_WRITE(timer_regs_w ) // ? + AM_RANGE(0xc00000, 0xc00007) AM_WRITE(timer_regs_w) // ? #else - AM_RANGE(0xc00000, 0xc00007) AM_WRITE(SMH_NOP ) // ? + AM_RANGE(0xc00000, 0xc00007) AM_WRITENOP // ? #endif - AM_RANGE(0xd00000, 0xd03fff) AM_DEVWRITE("x1", seta_sound_word_w ) // Sound + AM_RANGE(0xd00000, 0xd03fff) AM_DEVREADWRITE("x1", seta_sound_word_r,seta_sound_word_w) // Sound ADDRESS_MAP_END -/* almast identical to kamenrid */ -static ADDRESS_MAP_START( madshark_readmem, ADDRESS_SPACE_PROGRAM, 16 ) - AM_RANGE(0x000000, 0x0fffff) AM_READ(SMH_ROM ) // ROM - AM_RANGE(0x200000, 0x20ffff) AM_READ(SMH_RAM ) // ROM +/* almost identical to kamenrid */ +static ADDRESS_MAP_START( madshark_map, ADDRESS_SPACE_PROGRAM, 16 ) + AM_RANGE(0x000000, 0x0fffff) AM_ROM // ROM + AM_RANGE(0x200000, 0x20ffff) AM_RAM // RAM AM_RANGE(0x500000, 0x500001) AM_READ_PORT("P1") // P1 AM_RANGE(0x500002, 0x500003) AM_READ_PORT("P2") // P2 AM_RANGE(0x500004, 0x500005) AM_READ_PORT("COINS") // Coins - AM_RANGE(0x500008, 0x50000b) AM_READ(seta_dsw_r ) // DSW - AM_RANGE(0x700400, 0x700fff) AM_READ(SMH_RAM ) // Palette - AM_RANGE(0x800000, 0x801fff) AM_READ(SMH_RAM ) // VRAM 0 - AM_RANGE(0x802000, 0x803fff) AM_READ(SMH_RAM ) // VRAM 1 - AM_RANGE(0x880000, 0x881fff) AM_READ(SMH_RAM ) // VRAM 2 - AM_RANGE(0x882000, 0x883fff) AM_READ(SMH_RAM ) // VRAM 3 - AM_RANGE(0xa00000, 0xa00607) AM_READ(SMH_RAM ) // Sprites Y - AM_RANGE(0xb00000, 0xb03fff) AM_READ(SMH_RAM ) // Sprites Code + X + Attr - AM_RANGE(0xd00000, 0xd03fff) AM_DEVREAD("x1", seta_sound_word_r ) // Sound -ADDRESS_MAP_END + AM_RANGE(0x500008, 0x50000b) AM_READ(seta_dsw_r) // DSW + AM_RANGE(0x50000c, 0x50000d) AM_WRITE(watchdog_reset16_w) // Watchdog + AM_RANGE(0x600000, 0x600005) AM_RAM_WRITE(seta_vregs_w) AM_BASE(&seta_vregs) // ? Coin Lockout + Video Registers + AM_RANGE(0x600006, 0x600007) AM_WRITENOP // ? + AM_RANGE(0x700400, 0x700fff) AM_RAM AM_BASE(&paletteram16) AM_SIZE(&seta_paletteram_size) // Palette + AM_RANGE(0x800000, 0x803fff) AM_RAM_WRITE(seta_vram_0_w) AM_BASE(&seta_vram_0) // VRAM 0&1 + AM_RANGE(0x880000, 0x883fff) AM_RAM_WRITE(seta_vram_2_w) AM_BASE(&seta_vram_2) // VRAM 2&3 + AM_RANGE(0x900000, 0x900005) AM_RAM AM_BASE(&seta_vctrl_0) // VRAM 0&1 Ctrl + AM_RANGE(0x980000, 0x980005) AM_RAM AM_BASE(&seta_vctrl_2) // VRAM 2&3 Ctrl -static ADDRESS_MAP_START( madshark_writemem, ADDRESS_SPACE_PROGRAM, 16 ) - AM_RANGE(0x000000, 0x0fffff) AM_WRITE(SMH_ROM ) // ROM - AM_RANGE(0x200000, 0x20ffff) AM_WRITE(SMH_RAM ) // ROM - AM_RANGE(0x50000c, 0x50000d) AM_WRITE(watchdog_reset16_w ) // Watchdog - AM_RANGE(0x600000, 0x600005) AM_WRITE(seta_vregs_w) AM_BASE(&seta_vregs ) // ? Coin Lockout + Video Registers - AM_RANGE(0x600006, 0x600007) AM_WRITE(SMH_NOP ) // ? - AM_RANGE(0x700400, 0x700fff) AM_WRITE(SMH_RAM) AM_BASE(&paletteram16 ) AM_SIZE(&seta_paletteram_size) // Palette - AM_RANGE(0x800000, 0x803fff) AM_WRITE(seta_vram_0_w) AM_BASE(&seta_vram_0 ) // VRAM 0 - AM_RANGE(0x880000, 0x883fff) AM_WRITE(seta_vram_2_w) AM_BASE(&seta_vram_2 ) // VRAM 2 - AM_RANGE(0x900000, 0x900005) AM_WRITE(SMH_RAM) AM_BASE(&seta_vctrl_0 ) // VRAM 0&1 Ctrl - AM_RANGE(0x980000, 0x980005) AM_WRITE(SMH_RAM) AM_BASE(&seta_vctrl_2 ) // VRAM 2&3 Ctrl - AM_RANGE(0xa00000, 0xa00607) AM_WRITE(SMH_RAM) AM_BASE(&spriteram16 ) // Sprites Y - AM_RANGE(0xa80000, 0xa80001) AM_WRITE(SMH_RAM ) // ? $4000 - AM_RANGE(0xb00000, 0xb03fff) AM_WRITE(SMH_RAM) AM_BASE(&spriteram16_2 ) // Sprites Code + X + Attr + AM_RANGE(0xa00000, 0xa00607) AM_RAM AM_BASE(&spriteram16) // Sprites Y + AM_RANGE(0xa80000, 0xa80001) AM_RAM // ? $4000 + AM_RANGE(0xb00000, 0xb03fff) AM_RAM AM_BASE(&spriteram16_2) // Sprites Code + X + Attr #if __uPD71054_TIMER - AM_RANGE(0xc00000, 0xc00007) AM_WRITE(timer_regs_w ) // ? + AM_RANGE(0xc00000, 0xc00007) AM_WRITE(timer_regs_w) // ? #else - AM_RANGE(0xc00000, 0xc00007) AM_WRITE(SMH_NOP ) // ? + AM_RANGE(0xc00000, 0xc00007) AM_WRITENOP // ? #endif - AM_RANGE(0xd00000, 0xd03fff) AM_DEVWRITE("x1", seta_sound_word_w ) // Sound + AM_RANGE(0xd00000, 0xd03fff) AM_DEVREADWRITE("x1", seta_sound_word_r,seta_sound_word_w) // Sound ADDRESS_MAP_END - /*************************************************************************** Krazy Bowl ***************************************************************************/ @@ -2430,36 +2182,24 @@ static READ16_HANDLER( krzybowl_input_r ) } } -static ADDRESS_MAP_START( krzybowl_readmem, ADDRESS_SPACE_PROGRAM, 16 ) - AM_RANGE(0x000000, 0x07ffff) AM_READ(SMH_ROM ) // ROM - AM_RANGE(0xf00000, 0xf0ffff) AM_READ(SMH_RAM ) // RAM - AM_RANGE(0x100000, 0x100001) AM_READ(SMH_NOP ) // ? - AM_RANGE(0x200000, 0x200001) AM_READ(SMH_NOP ) // ? - AM_RANGE(0x300000, 0x300003) AM_READ(seta_dsw_r ) // DSW +static ADDRESS_MAP_START( krzybowl_map, ADDRESS_SPACE_PROGRAM, 16 ) + AM_RANGE(0x000000, 0x07ffff) AM_ROM // ROM + AM_RANGE(0xf00000, 0xf0ffff) AM_RAM // RAM + AM_RANGE(0x100000, 0x100001) AM_READNOP // ? + AM_RANGE(0x200000, 0x200001) AM_READNOP // ? + AM_RANGE(0x300000, 0x300003) AM_READ(seta_dsw_r) // DSW + AM_RANGE(0x400000, 0x400001) AM_WRITENOP // ? AM_RANGE(0x500000, 0x500001) AM_READ_PORT("P1") // P1 AM_RANGE(0x500002, 0x500003) AM_READ_PORT("P2") // P2 AM_RANGE(0x500004, 0x500005) AM_READ_PORT("COINS") // Coins - AM_RANGE(0x600000, 0x60000f) AM_READ(krzybowl_input_r ) // P1 - AM_RANGE(0x8000f0, 0x8000f1) AM_READ(SMH_RAM ) // NVRAM - AM_RANGE(0x800100, 0x8001ff) AM_READ(SMH_RAM ) // NVRAM - AM_RANGE(0xa00000, 0xa03fff) AM_DEVREAD("x1", seta_sound_word_r ) // Sound - AM_RANGE(0xb00000, 0xb003ff) AM_READ(SMH_RAM ) // Palette - AM_RANGE(0xc00000, 0xc03fff) AM_READ(SMH_RAM ) // Sprites Code + X + Attr -/**/AM_RANGE(0xd00000, 0xd00001) AM_READ(SMH_RAM ) // ? 0x4000 -/**/AM_RANGE(0xe00000, 0xe00607) AM_READ(SMH_RAM ) // Sprites Y -ADDRESS_MAP_END - -static ADDRESS_MAP_START( krzybowl_writemem, ADDRESS_SPACE_PROGRAM, 16 ) - AM_RANGE(0x000000, 0x07ffff) AM_WRITE(SMH_ROM ) // ROM - AM_RANGE(0xf00000, 0xf0ffff) AM_WRITE(SMH_RAM ) // RAM - AM_RANGE(0x400000, 0x400001) AM_WRITE(SMH_NOP ) // ? - AM_RANGE(0x8000f0, 0x8000f1) AM_WRITE(SMH_RAM ) // NVRAM - AM_RANGE(0x800100, 0x8001ff) AM_WRITE(SMH_RAM ) // NVRAM - AM_RANGE(0xa00000, 0xa03fff) AM_DEVWRITE("x1", seta_sound_word_w ) // Sound - AM_RANGE(0xb00000, 0xb003ff) AM_WRITE(SMH_RAM) AM_BASE(&paletteram16 ) AM_SIZE(&seta_paletteram_size) // Palette - AM_RANGE(0xc00000, 0xc03fff) AM_WRITE(SMH_RAM) AM_BASE(&spriteram16_2 ) // Sprites Code + X + Attr - AM_RANGE(0xd00000, 0xd00001) AM_WRITE(SMH_RAM ) // ? 0x4000 - AM_RANGE(0xe00000, 0xe00607) AM_WRITE(SMH_RAM) AM_BASE(&spriteram16 ) // Sprites Y + AM_RANGE(0x600000, 0x60000f) AM_READ(krzybowl_input_r) // P1 + AM_RANGE(0x8000f0, 0x8000f1) AM_RAM // NVRAM + AM_RANGE(0x800100, 0x8001ff) AM_RAM // NVRAM + AM_RANGE(0xa00000, 0xa03fff) AM_DEVREADWRITE("x1", seta_sound_word_r,seta_sound_word_w) // Sound + AM_RANGE(0xb00000, 0xb003ff) AM_RAM AM_BASE(&paletteram16) AM_SIZE(&seta_paletteram_size) // Palette + AM_RANGE(0xc00000, 0xc03fff) AM_RAM AM_BASE(&spriteram16_2) // Sprites Code + X + Attr +/**/AM_RANGE(0xd00000, 0xd00001) AM_RAM // ? 0x4000 +/**/AM_RANGE(0xe00000, 0xe00607) AM_RAM AM_BASE(&spriteram16) // Sprites Y ADDRESS_MAP_END @@ -2480,139 +2220,88 @@ static WRITE16_HANDLER( msgundam_vregs_w ) /* Mirror RAM is necessary or startup, to clear Work RAM after the test */ -static ADDRESS_MAP_START( msgundam_readmem, ADDRESS_SPACE_PROGRAM, 16 ) - AM_RANGE(0x000000, 0x07ffff) AM_READ(SMH_ROM ) // ROM - AM_RANGE(0x100000, 0x1fffff) AM_READ(SMH_ROM ) // ROM - AM_RANGE(0x200000, 0x20ffff) AM_READ(SMH_RAM ) // RAM +static ADDRESS_MAP_START( msgundam_map, ADDRESS_SPACE_PROGRAM, 16 ) + AM_RANGE(0x000000, 0x07ffff) AM_ROM // ROM + AM_RANGE(0x100000, 0x1fffff) AM_ROM // ROM + AM_RANGE(0x200000, 0x20ffff) AM_RAM AM_MIRROR(0x40000) // RAM AM_RANGE(0x400000, 0x400001) AM_READ_PORT("P1") // P1 AM_RANGE(0x400002, 0x400003) AM_READ_PORT("P2") // P2 AM_RANGE(0x400004, 0x400005) AM_READ_PORT("COINS") // Coins - AM_RANGE(0x600000, 0x600003) AM_READ(seta_dsw_r ) // DSW - AM_RANGE(0x700400, 0x700fff) AM_READ(SMH_RAM ) // Palette - AM_RANGE(0x800000, 0x800607) AM_READ(SMH_RAM ) // Sprites Y - AM_RANGE(0x900000, 0x903fff) AM_READ(SMH_RAM ) // Sprites Code + X + Attr - AM_RANGE(0xa00000, 0xa03fff) AM_READ(SMH_RAM ) // VRAM 0&1 - AM_RANGE(0xa80000, 0xa83fff) AM_READ(SMH_RAM ) // VRAM 2&3 - AM_RANGE(0xb00000, 0xb00005) AM_READ(SMH_RAM ) // VRAM 0&1 Ctrl - AM_RANGE(0xb80000, 0xb80005) AM_READ(SMH_RAM ) // VRAM 1&2 Ctrl - AM_RANGE(0xc00000, 0xc03fff) AM_DEVREAD("x1", seta_sound_word_r ) // Sound -ADDRESS_MAP_END - -static ADDRESS_MAP_START( msgundam_writemem, ADDRESS_SPACE_PROGRAM, 16 ) - AM_RANGE(0x000000, 0x07ffff) AM_WRITE(SMH_ROM ) // ROM - AM_RANGE(0x100000, 0x1fffff) AM_WRITE(SMH_ROM ) // ROM - AM_RANGE(0x200000, 0x20ffff) AM_WRITE(SMH_RAM) AM_BASE(&mirror_ram ) // RAM - AM_RANGE(0x210000, 0x21ffff) AM_WRITE(mirror_ram_w ) // Mirrored RAM - AM_RANGE(0x220000, 0x22ffff) AM_WRITE(mirror_ram_w ) - AM_RANGE(0x230000, 0x23ffff) AM_WRITE(mirror_ram_w ) - AM_RANGE(0x240000, 0x24ffff) AM_WRITE(mirror_ram_w ) - AM_RANGE(0x400000, 0x400001) AM_WRITE(SMH_NOP ) // Lev 2 IRQ Ack - AM_RANGE(0x400004, 0x400005) AM_WRITE(SMH_NOP ) // Lev 4 IRQ Ack - AM_RANGE(0x500000, 0x500005) AM_WRITE(msgundam_vregs_w) AM_BASE(&seta_vregs ) // Coin Lockout + Video Registers - AM_RANGE(0x700400, 0x700fff) AM_WRITE(SMH_RAM) AM_BASE(&paletteram16 ) AM_SIZE(&seta_paletteram_size) // Palette - AM_RANGE(0x800000, 0x800607) AM_WRITE(SMH_RAM) AM_BASE(&spriteram16 ) // Sprites Y - AM_RANGE(0x880000, 0x880001) AM_WRITE(SMH_RAM ) // ? 0x4000 - AM_RANGE(0x900000, 0x903fff) AM_WRITE(SMH_RAM) AM_BASE(&spriteram16_2 ) // Sprites Code + X + Attr - AM_RANGE(0xa00000, 0xa03fff) AM_WRITE(seta_vram_0_w) AM_BASE(&seta_vram_0 ) // VRAM 0 - AM_RANGE(0xa80000, 0xa83fff) AM_WRITE(seta_vram_2_w) AM_BASE(&seta_vram_2 ) // VRAM 2 - AM_RANGE(0xb00000, 0xb00005) AM_WRITE(SMH_RAM) AM_BASE(&seta_vctrl_0 ) // VRAM 0&1 Ctrl - AM_RANGE(0xb80000, 0xb80005) AM_WRITE(SMH_RAM) AM_BASE(&seta_vctrl_2 ) // VRAM 2&3 Ctrl - AM_RANGE(0xc00000, 0xc03fff) AM_DEVWRITE("x1", seta_sound_word_w ) // Sound + AM_RANGE(0x400000, 0x400001) AM_WRITENOP // Lev 2 IRQ Ack + AM_RANGE(0x400004, 0x400005) AM_WRITENOP // Lev 4 IRQ Ack + AM_RANGE(0x500000, 0x500005) AM_RAM_WRITE(msgundam_vregs_w) AM_BASE(&seta_vregs) // Coin Lockout + Video Registers + AM_RANGE(0x600000, 0x600003) AM_READ(seta_dsw_r) // DSW + AM_RANGE(0x700400, 0x700fff) AM_RAM AM_BASE(&paletteram16) AM_SIZE(&seta_paletteram_size) // Palette + AM_RANGE(0x800000, 0x800607) AM_RAM AM_BASE(&spriteram16) // Sprites Y + AM_RANGE(0x880000, 0x880001) AM_RAM // ? 0x4000 + AM_RANGE(0x900000, 0x903fff) AM_RAM AM_BASE(&spriteram16_2) // Sprites Code + X + Attr + AM_RANGE(0xa00000, 0xa03fff) AM_RAM_WRITE(seta_vram_0_w) AM_BASE(&seta_vram_0) // VRAM 0&1 + AM_RANGE(0xa80000, 0xa83fff) AM_RAM_WRITE(seta_vram_2_w) AM_BASE(&seta_vram_2) // VRAM 2&3 + AM_RANGE(0xb00000, 0xb00005) AM_RAM AM_BASE(&seta_vctrl_0) // VRAM 0&1 Ctrl + AM_RANGE(0xb80000, 0xb80005) AM_RAM AM_BASE(&seta_vctrl_2) // VRAM 2&3 Ctrl + AM_RANGE(0xc00000, 0xc03fff) AM_DEVREADWRITE("x1", seta_sound_word_r,seta_sound_word_w) // Sound #if __uPD71054_TIMER - AM_RANGE(0xd00000, 0xd00007) AM_WRITE(timer_regs_w ) // ? + AM_RANGE(0xd00000, 0xd00007) AM_WRITE(timer_regs_w) // ? #else - AM_RANGE(0xd00000, 0xd00007) AM_WRITE(SMH_NOP ) // ? + AM_RANGE(0xd00000, 0xd00007) AM_WRITENOP // ? #endif ADDRESS_MAP_END - - /*************************************************************************** Oishii Puzzle ***************************************************************************/ /* similar to wrofaero */ - -static ADDRESS_MAP_START( oisipuzl_readmem, ADDRESS_SPACE_PROGRAM, 16 ) - AM_RANGE(0x000000, 0x07ffff) AM_READ(SMH_ROM ) // ROM - AM_RANGE(0x100000, 0x17ffff) AM_READ(SMH_ROM ) // ROM - AM_RANGE(0x200000, 0x20ffff) AM_READ(SMH_RAM ) // RAM - AM_RANGE(0x300000, 0x300003) AM_READ(seta_dsw_r ) // DSW +static ADDRESS_MAP_START( oisipuzl_map, ADDRESS_SPACE_PROGRAM, 16 ) + AM_RANGE(0x000000, 0x07ffff) AM_ROM // ROM + AM_RANGE(0x100000, 0x17ffff) AM_ROM // ROM + AM_RANGE(0x200000, 0x20ffff) AM_RAM // RAM + AM_RANGE(0x300000, 0x300003) AM_READ(seta_dsw_r) // DSW AM_RANGE(0x400000, 0x400001) AM_READ_PORT("P1") // P1 AM_RANGE(0x400002, 0x400003) AM_READ_PORT("P2") // P2 AM_RANGE(0x400004, 0x400005) AM_READ_PORT("COINS") // Coins - AM_RANGE(0x700000, 0x703fff) AM_DEVREAD("x1", seta_sound_word_r ) // Sound - AM_RANGE(0x800000, 0x803fff) AM_READ(SMH_RAM ) // VRAM 0&1 - AM_RANGE(0x880000, 0x883fff) AM_READ(SMH_RAM ) // VRAM 2&3 -/**/AM_RANGE(0x900000, 0x900005) AM_READ(SMH_RAM ) // VRAM 0&1 Ctrl -/**/AM_RANGE(0x980000, 0x980005) AM_READ(SMH_RAM ) // VRAM 2&3 Ctrl -/**/AM_RANGE(0xa00000, 0xa00607) AM_READ(SMH_RAM ) // Sprites Y -/**/AM_RANGE(0xa80000, 0xa80001) AM_READ(SMH_RAM ) // ? 0x4000 - AM_RANGE(0xb00000, 0xb03fff) AM_READ(SMH_RAM ) // Sprites Code + X + Attr - AM_RANGE(0xc00400, 0xc00fff) AM_READ(SMH_RAM ) // Palette + AM_RANGE(0x400000, 0x400001) AM_WRITENOP // ? IRQ Ack + AM_RANGE(0x500000, 0x500005) AM_RAM_WRITE(seta_vregs_w) AM_BASE(&seta_vregs) // Coin Lockout + Video Registers + AM_RANGE(0x700000, 0x703fff) AM_DEVREADWRITE("x1", seta_sound_word_r,seta_sound_word_w) // Sound + AM_RANGE(0x800000, 0x803fff) AM_RAM_WRITE(seta_vram_0_w) AM_BASE(&seta_vram_0) // VRAM 0&1 + AM_RANGE(0x880000, 0x883fff) AM_RAM_WRITE(seta_vram_2_w) AM_BASE(&seta_vram_2) // VRAM 2&3 +/**/AM_RANGE(0x900000, 0x900005) AM_RAM AM_BASE(&seta_vctrl_0) // VRAM 0&1 Ctrl +/**/AM_RANGE(0x980000, 0x980005) AM_RAM AM_BASE(&seta_vctrl_2) // VRAM 2&3 Ctrl +/**/AM_RANGE(0xa00000, 0xa00607) AM_RAM AM_BASE(&spriteram16) // Sprites Y +/**/AM_RANGE(0xa80000, 0xa80001) AM_RAM // ? 0x4000 + AM_RANGE(0xb00000, 0xb03fff) AM_RAM AM_BASE(&spriteram16_2) // Sprites Code + X + Attr + AM_RANGE(0xc00400, 0xc00fff) AM_RAM AM_BASE(&paletteram16) AM_SIZE(&seta_paletteram_size) // Palette ADDRESS_MAP_END -static ADDRESS_MAP_START( oisipuzl_writemem, ADDRESS_SPACE_PROGRAM, 16 ) - AM_RANGE(0x000000, 0x07ffff) AM_WRITE(SMH_ROM ) // ROM - AM_RANGE(0x100000, 0x17ffff) AM_WRITE(SMH_ROM ) // ROM - AM_RANGE(0x200000, 0x20ffff) AM_WRITE(SMH_RAM ) // RAM - AM_RANGE(0x400000, 0x400001) AM_WRITE(SMH_NOP ) // ? IRQ Ack - AM_RANGE(0x500000, 0x500005) AM_WRITE(seta_vregs_w) AM_BASE(&seta_vregs ) // Coin Lockout + Video Registers - AM_RANGE(0x700000, 0x703fff) AM_DEVWRITE("x1", seta_sound_word_w ) // Sound - AM_RANGE(0x800000, 0x803fff) AM_WRITE(seta_vram_0_w) AM_BASE(&seta_vram_0 ) // VRAM 0 - AM_RANGE(0x880000, 0x883fff) AM_WRITE(seta_vram_2_w) AM_BASE(&seta_vram_2 ) // VRAM 2 - AM_RANGE(0x900000, 0x900005) AM_WRITE(SMH_RAM) AM_BASE(&seta_vctrl_0 ) // VRAM 0&1 Ctrl - AM_RANGE(0x980000, 0x980005) AM_WRITE(SMH_RAM) AM_BASE(&seta_vctrl_2 ) // VRAM 2&3 Ctrl - AM_RANGE(0xa00000, 0xa00607) AM_WRITE(SMH_RAM) AM_BASE(&spriteram16 ) // Sprites Y - AM_RANGE(0xa80000, 0xa80001) AM_WRITE(SMH_RAM ) // ? 0x4000 - AM_RANGE(0xb00000, 0xb03fff) AM_WRITE(SMH_RAM) AM_BASE(&spriteram16_2 ) // Sprites Code + X + Attr - AM_RANGE(0xc00400, 0xc00fff) AM_WRITE(SMH_RAM) AM_BASE(&paletteram16 ) AM_SIZE(&seta_paletteram_size) // Palette -ADDRESS_MAP_END /*************************************************************************** Triple Fun ***************************************************************************/ -/* the same as oisipuzl with the sound system replaced */ +/* Same as oisipuzl but with the sound system replaced */ -static ADDRESS_MAP_START( triplfun_readmem, ADDRESS_SPACE_PROGRAM, 16 ) - AM_RANGE(0x000000, 0x07ffff) AM_READ(SMH_ROM ) // ROM - AM_RANGE(0x100000, 0x17ffff) AM_READ(SMH_ROM ) // ROM - AM_RANGE(0x200000, 0x20ffff) AM_READ(SMH_RAM ) // RAM - AM_RANGE(0x300000, 0x300003) AM_READ(seta_dsw_r ) // DSW +static ADDRESS_MAP_START( triplfun_map, ADDRESS_SPACE_PROGRAM, 16 ) + AM_RANGE(0x000000, 0x07ffff) AM_ROM // ROM + AM_RANGE(0x100000, 0x17ffff) AM_ROM // ROM + AM_RANGE(0x200000, 0x20ffff) AM_RAM // RAM + AM_RANGE(0x300000, 0x300003) AM_READ(seta_dsw_r) // DSW AM_RANGE(0x400000, 0x400001) AM_READ_PORT("P1") // P1 AM_RANGE(0x400002, 0x400003) AM_READ_PORT("P2") // P2 AM_RANGE(0x400004, 0x400005) AM_READ_PORT("COINS") // Coins - AM_RANGE(0x500006, 0x500007) AM_DEVREAD8("oki", okim6295_r, 0x00ff) // tfun sound - AM_RANGE(0x700000, 0x703fff) AM_READ(SMH_RAM ) // old sound - AM_RANGE(0x800000, 0x803fff) AM_READ(SMH_RAM ) // VRAM 0&1 - AM_RANGE(0x880000, 0x883fff) AM_READ(SMH_RAM ) // VRAM 2&3 -/**/AM_RANGE(0x900000, 0x900005) AM_READ(SMH_RAM ) // VRAM 0&1 Ctrl -/**/AM_RANGE(0x980000, 0x980005) AM_READ(SMH_RAM ) // VRAM 2&3 Ctrl -/**/AM_RANGE(0xa00000, 0xa00607) AM_READ(SMH_RAM ) // Sprites Y -/**/AM_RANGE(0xa80000, 0xa80001) AM_READ(SMH_RAM ) // ? 0x4000 - AM_RANGE(0xb00000, 0xb03fff) AM_READ(SMH_RAM ) // Sprites Code + X + Attr - AM_RANGE(0xc00400, 0xc00fff) AM_READ(SMH_RAM ) // Palette + AM_RANGE(0x400000, 0x400001) AM_WRITENOP // ? IRQ Ack + AM_RANGE(0x500000, 0x500005) AM_RAM_WRITE(seta_vregs_w) AM_BASE(&seta_vregs) // Coin Lockout + Video Registers + AM_RANGE(0x500006, 0x500007) AM_DEVREADWRITE8("oki", okim6295_r,okim6295_w, 0x00ff) // tfun sound + AM_RANGE(0x800000, 0x803fff) AM_RAM_WRITE(seta_vram_0_w) AM_BASE(&seta_vram_0) // VRAM 0&1 + AM_RANGE(0x880000, 0x883fff) AM_RAM_WRITE(seta_vram_2_w) AM_BASE(&seta_vram_2) // VRAM 2&3 +/**/AM_RANGE(0x900000, 0x900005) AM_RAM AM_BASE(&seta_vctrl_0) // VRAM 0&1 Ctrl +/**/AM_RANGE(0x980000, 0x980005) AM_RAM AM_BASE(&seta_vctrl_2) // VRAM 2&3 Ctrl +/**/AM_RANGE(0xa00000, 0xa00607) AM_RAM AM_BASE(&spriteram16) // Sprites Y +/**/AM_RANGE(0xa80000, 0xa80001) AM_RAM // ? 0x4000 + AM_RANGE(0xb00000, 0xb03fff) AM_RAM AM_BASE(&spriteram16_2) // Sprites Code + X + Attr + AM_RANGE(0xc00400, 0xc00fff) AM_RAM AM_BASE(&paletteram16) AM_SIZE(&seta_paletteram_size) // Palette ADDRESS_MAP_END -static ADDRESS_MAP_START( triplfun_writemem, ADDRESS_SPACE_PROGRAM, 16 ) - AM_RANGE(0x000000, 0x07ffff) AM_WRITE(SMH_ROM ) // ROM - AM_RANGE(0x100000, 0x17ffff) AM_WRITE(SMH_ROM ) // ROM - AM_RANGE(0x200000, 0x20ffff) AM_WRITE(SMH_RAM ) // RAM - AM_RANGE(0x400000, 0x400001) AM_WRITE(SMH_NOP ) // ? IRQ Ack - AM_RANGE(0x500000, 0x500005) AM_WRITE(seta_vregs_w) AM_BASE(&seta_vregs ) // Coin Lockout + Video Registers - AM_RANGE(0x500006, 0x500007) AM_DEVWRITE8("oki", okim6295_w, 0x00ff) // tfun sound - AM_RANGE(0x700000, 0x703fff) AM_WRITE(SMH_RAM ) // old sound - AM_RANGE(0x800000, 0x803fff) AM_WRITE(seta_vram_0_w) AM_BASE(&seta_vram_0 ) // VRAM 0 - AM_RANGE(0x880000, 0x883fff) AM_WRITE(seta_vram_2_w) AM_BASE(&seta_vram_2 ) // VRAM 2 - AM_RANGE(0x900000, 0x900005) AM_WRITE(SMH_RAM) AM_BASE(&seta_vctrl_0 ) // VRAM 0&1 Ctrl - AM_RANGE(0x980000, 0x980005) AM_WRITE(SMH_RAM) AM_BASE(&seta_vctrl_2 ) // VRAM 2&3 Ctrl - AM_RANGE(0xa00000, 0xa00607) AM_WRITE(SMH_RAM) AM_BASE(&spriteram16 ) // Sprites Y - AM_RANGE(0xa80000, 0xa80001) AM_WRITE(SMH_RAM ) // ? 0x4000 - AM_RANGE(0xb00000, 0xb03fff) AM_WRITE(SMH_RAM) AM_BASE(&spriteram16_2 ) // Sprites Code + X + Attr - AM_RANGE(0xc00400, 0xc00fff) AM_WRITE(SMH_RAM) AM_BASE(&paletteram16 ) AM_SIZE(&seta_paletteram_size) // Palette -ADDRESS_MAP_END /*************************************************************************** Pro Mahjong Kiwame @@ -2653,28 +2342,17 @@ static READ16_HANDLER( kiwame_input_r ) } } -static ADDRESS_MAP_START( kiwame_readmem, ADDRESS_SPACE_PROGRAM, 16 ) - AM_RANGE(0x000000, 0x07ffff) AM_READ(SMH_ROM ) // ROM - AM_RANGE(0x200000, 0x20ffff) AM_READ(SMH_RAM ) // RAM - AM_RANGE(0xfffc00, 0xffffff) AM_READ(kiwame_nvram_r ) // NVRAM + Regs ? - AM_RANGE(0x800000, 0x803fff) AM_READ(SMH_RAM ) // Sprites Code + X + Attr -/**/AM_RANGE(0x900000, 0x900001) AM_READ(SMH_RAM ) // ? 0x4000 -/**/AM_RANGE(0xa00000, 0xa00607) AM_READ(SMH_RAM ) // Sprites Y - AM_RANGE(0xb00000, 0xb003ff) AM_READ(SMH_RAM ) // Palette - AM_RANGE(0xc00000, 0xc03fff) AM_DEVREAD("x1", seta_sound_word_r ) // Sound - AM_RANGE(0xd00000, 0xd00009) AM_READ(kiwame_input_r ) - AM_RANGE(0xe00000, 0xe00003) AM_READ(seta_dsw_r ) // DSW -ADDRESS_MAP_END - -static ADDRESS_MAP_START( kiwame_writemem, ADDRESS_SPACE_PROGRAM, 16 ) - AM_RANGE(0x000000, 0x07ffff) AM_WRITE(SMH_ROM ) // ROM - AM_RANGE(0x200000, 0x20ffff) AM_WRITE(SMH_RAM ) // RAM - AM_RANGE(0xfffc00, 0xffffff) AM_WRITE(kiwame_nvram_w) AM_BASE(&kiwame_nvram ) // NVRAM + Regs ? - AM_RANGE(0x800000, 0x803fff) AM_WRITE(SMH_RAM) AM_BASE(&spriteram16_2 ) // Sprites Code + X + Attr - AM_RANGE(0x900000, 0x900001) AM_WRITE(SMH_RAM ) // ? 0x4000 - AM_RANGE(0xa00000, 0xa00607) AM_WRITE(SMH_RAM) AM_BASE(&spriteram16 ) // Sprites Y - AM_RANGE(0xb00000, 0xb003ff) AM_WRITE(SMH_RAM) AM_BASE(&paletteram16 ) AM_SIZE(&seta_paletteram_size) // Palette - AM_RANGE(0xc00000, 0xc03fff) AM_DEVWRITE("x1", seta_sound_word_w ) // Sound +static ADDRESS_MAP_START( kiwame_map, ADDRESS_SPACE_PROGRAM, 16 ) + AM_RANGE(0x000000, 0x07ffff) AM_ROM // ROM + AM_RANGE(0x200000, 0x20ffff) AM_RAM // RAM + AM_RANGE(0xfffc00, 0xffffff) AM_READWRITE(kiwame_nvram_r,kiwame_nvram_w) AM_BASE(&kiwame_nvram) // NVRAM + Regs ? + AM_RANGE(0x800000, 0x803fff) AM_RAM AM_BASE(&spriteram16_2) // Sprites Code + X + Attr +/**/AM_RANGE(0x900000, 0x900001) AM_RAM // ? 0x4000 +/**/AM_RANGE(0xa00000, 0xa00607) AM_RAM AM_BASE(&spriteram16) // Sprites Y + AM_RANGE(0xb00000, 0xb003ff) AM_RAM AM_BASE(&paletteram16) AM_SIZE(&seta_paletteram_size) // Palette + AM_RANGE(0xc00000, 0xc03fff) AM_DEVREADWRITE("x1", seta_sound_word_r,seta_sound_word_w) // Sound + AM_RANGE(0xd00000, 0xd00009) AM_READ(kiwame_input_r) // mahjong panel + AM_RANGE(0xe00000, 0xe00003) AM_READ(seta_dsw_r) // DSW ADDRESS_MAP_END @@ -2694,38 +2372,28 @@ static WRITE16_HANDLER( thunderl_protection_w ) /* Similar to downtown etc. */ -static ADDRESS_MAP_START( thunderl_readmem, ADDRESS_SPACE_PROGRAM, 16 ) - AM_RANGE(0x000000, 0x00ffff) AM_READ(SMH_ROM ) // ROM - AM_RANGE(0xffc000, 0xffffff) AM_READ(SMH_RAM ) // RAM - AM_RANGE(0x100000, 0x103fff) AM_DEVREAD("x1", seta_sound_word_r ) // Sound - AM_RANGE(0x600000, 0x600003) AM_READ(seta_dsw_r ) // DSW - AM_RANGE(0x700000, 0x7003ff) AM_READ(SMH_RAM ) // Palette +static ADDRESS_MAP_START( thunderl_map, ADDRESS_SPACE_PROGRAM, 16 ) + AM_RANGE(0x000000, 0x00ffff) AM_ROM // ROM + AM_RANGE(0xffc000, 0xffffff) AM_RAM // RAM + AM_RANGE(0x100000, 0x103fff) AM_DEVREADWRITE("x1", seta_sound_word_r,seta_sound_word_w) // Sound + AM_RANGE(0x200000, 0x200001) AM_WRITENOP // ? + AM_RANGE(0x300000, 0x300001) AM_WRITENOP // ? + AM_RANGE(0x400000, 0x40ffff) AM_WRITE(thunderl_protection_w) // Protection (not in wits) + AM_RANGE(0x500000, 0x500001) AM_RAM_WRITE(seta_vregs_w) AM_BASE(&seta_vregs ) // Coin Lockout + AM_RANGE(0x600000, 0x600003) AM_READ(seta_dsw_r) // DSW + AM_RANGE(0x700000, 0x7003ff) AM_RAM AM_BASE(&paletteram16) AM_SIZE(&seta_paletteram_size) // 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_READ(SMH_RAM ) // ? 0x4000 -/**/AM_RANGE(0xd00000, 0xd00607) AM_READ(SMH_RAM ) // Sprites Y - AM_RANGE(0xe00000, 0xe03fff) AM_READ(SMH_RAM ) // Sprites Code + X + Attr - AM_RANGE(0xe04000, 0xe07fff) AM_READ(SMH_RAM ) // (wits) +/**/AM_RANGE(0xc00000, 0xc00001) AM_RAM // ? 0x4000 +/**/AM_RANGE(0xd00000, 0xd00607) AM_RAM AM_BASE(&spriteram16) // Sprites Y + AM_RANGE(0xe00000, 0xe03fff) AM_RAM AM_BASE(&spriteram16_2) // Sprites Code + X + Attr + AM_RANGE(0xe04000, 0xe07fff) AM_RAM // (wits) ADDRESS_MAP_END -static ADDRESS_MAP_START( thunderl_writemem, ADDRESS_SPACE_PROGRAM, 16 ) - AM_RANGE(0x000000, 0x00ffff) AM_WRITE(SMH_ROM ) // ROM - AM_RANGE(0xffc000, 0xffffff) AM_WRITE(SMH_RAM ) // RAM - AM_RANGE(0x100000, 0x103fff) AM_DEVWRITE("x1", seta_sound_word_w ) // Sound - AM_RANGE(0x200000, 0x200001) AM_WRITE(SMH_NOP ) // ? - AM_RANGE(0x300000, 0x300001) AM_WRITE(SMH_NOP ) // ? - AM_RANGE(0x400000, 0x40ffff) AM_WRITE(thunderl_protection_w ) // Protection (not in wits) - AM_RANGE(0x500000, 0x500001) AM_WRITE(seta_vregs_w) AM_BASE(&seta_vregs ) // Coin Lockout - AM_RANGE(0x700000, 0x7003ff) AM_WRITE(SMH_RAM) AM_BASE(&paletteram16 ) AM_SIZE(&seta_paletteram_size) // Palette - AM_RANGE(0xc00000, 0xc00001) AM_WRITE(SMH_RAM ) // ? 0x4000 - AM_RANGE(0xd00000, 0xd00607) AM_WRITE(SMH_RAM) AM_BASE(&spriteram16 ) // Sprites Y - AM_RANGE(0xe00000, 0xe03fff) AM_WRITE(SMH_RAM) AM_BASE(&spriteram16_2 ) // Sprites Code + X + Attr - AM_RANGE(0xe04000, 0xe07fff) AM_WRITE(SMH_RAM ) // (wits) -ADDRESS_MAP_END /*************************************************************************** Wiggie Waggie @@ -2745,82 +2413,57 @@ static WRITE16_HANDLER( wiggie_soundlatch_w ) } -static ADDRESS_MAP_START( wiggie_readmem, ADDRESS_SPACE_PROGRAM, 16 ) - AM_RANGE(0x000000, 0x00ffff) AM_READ(SMH_ROM ) // ROM - AM_RANGE(0xffc000, 0xffffff) AM_READ(SMH_RAM ) // RAM - AM_RANGE(0x600000, 0x600003) AM_READ(seta_dsw_r ) // DSW - AM_RANGE(0x700000, 0x7003ff) AM_READ(SMH_RAM ) // Palette +static ADDRESS_MAP_START( wiggie_map, ADDRESS_SPACE_PROGRAM, 16 ) + AM_RANGE(0x000000, 0x01ffff) AM_ROM // ROM + AM_RANGE(0xffc000, 0xffffff) AM_RAM // RAM + AM_RANGE(0x200000, 0x200001) AM_WRITENOP // ? + AM_RANGE(0x300000, 0x300001) AM_WRITENOP // ? + AM_RANGE(0x400000, 0x40ffff) AM_WRITE(thunderl_protection_w) // Protection (not in wits) + AM_RANGE(0x500000, 0x500001) AM_RAM_WRITE(seta_vregs_w) AM_BASE(&seta_vregs) // Coin Lockout + AM_RANGE(0x600000, 0x600003) AM_READ(seta_dsw_r) // DSW + AM_RANGE(0x700000, 0x7003ff) AM_RAM AM_BASE(&paletteram16) AM_SIZE(&seta_paletteram_size) // 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(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_READ(SMH_RAM ) // ? 0x4000 -/**/AM_RANGE(0xd00000, 0xd00607) AM_READ(SMH_RAM ) // Sprites Y - AM_RANGE(0xe00000, 0xe03fff) AM_READ(SMH_RAM ) // Sprites Code + X + Attr - AM_RANGE(0xe04000, 0xe07fff) AM_READ(SMH_RAM ) // (wits) +/**/AM_RANGE(0xc00000, 0xc00001) AM_RAM // ? 0x4000 +/**/AM_RANGE(0xd00000, 0xd00607) AM_RAM AM_BASE(&spriteram16) // Sprites Y + AM_RANGE(0xe00000, 0xe03fff) AM_RAM AM_BASE(&spriteram16_2) // Sprites Code + X + Attr + AM_RANGE(0xe04000, 0xe07fff) AM_RAM // (wits) ADDRESS_MAP_END -static ADDRESS_MAP_START( wiggie_writemem, ADDRESS_SPACE_PROGRAM, 16 ) - AM_RANGE(0x000000, 0x00ffff) AM_WRITE(SMH_ROM ) // ROM - AM_RANGE(0xffc000, 0xffffff) AM_WRITE(SMH_RAM ) // RAM - AM_RANGE(0x200000, 0x200001) AM_WRITE(SMH_NOP ) // ? - AM_RANGE(0x300000, 0x300001) AM_WRITE(SMH_NOP ) // ? - AM_RANGE(0x400000, 0x40ffff) AM_WRITE(thunderl_protection_w ) // Protection (not in wits) - AM_RANGE(0x500000, 0x500001) AM_WRITE(seta_vregs_w) AM_BASE(&seta_vregs ) // Coin Lockout - AM_RANGE(0x700000, 0x7003ff) AM_WRITE(SMH_RAM) AM_BASE(&paletteram16 ) AM_SIZE(&seta_paletteram_size) // Palette - AM_RANGE(0xc00000, 0xc00001) AM_WRITE(SMH_RAM ) // ? 0x4000 - AM_RANGE(0xd00000, 0xd00607) AM_WRITE(SMH_RAM) AM_BASE(&spriteram16 ) // Sprites Y - AM_RANGE(0xe00000, 0xe03fff) AM_WRITE(SMH_RAM) AM_BASE(&spriteram16_2 ) // Sprites Code + X + Attr - AM_RANGE(0xe04000, 0xe07fff) AM_WRITE(SMH_RAM ) // (wits) -ADDRESS_MAP_END - -static ADDRESS_MAP_START( wiggie_sound_readmem, ADDRESS_SPACE_PROGRAM, 8 ) - AM_RANGE(0x0000, 0x7fff) AM_READ(SMH_ROM) - AM_RANGE(0x8000, 0x87ff) AM_READ(SMH_RAM) - AM_RANGE(0x9800, 0x9800) AM_DEVREAD("oki", okim6295_r) +static ADDRESS_MAP_START( wiggie_sound_map, ADDRESS_SPACE_PROGRAM, 8 ) + AM_RANGE(0x0000, 0x7fff) AM_ROM + AM_RANGE(0x8000, 0x87ff) AM_RAM + AM_RANGE(0x9800, 0x9800) AM_DEVREADWRITE("oki", okim6295_r,okim6295_w) AM_RANGE(0xa000, 0xa000) AM_READ(wiggie_soundlatch_r) ADDRESS_MAP_END -static ADDRESS_MAP_START( wiggie_sound_writemem, ADDRESS_SPACE_PROGRAM, 8 ) - AM_RANGE(0x0000, 0x7fff) AM_WRITE(SMH_ROM) - AM_RANGE(0x8000, 0x87ff) AM_WRITE(SMH_RAM) - AM_RANGE(0x9800, 0x9800) AM_DEVWRITE("oki", okim6295_w) -ADDRESS_MAP_END /*************************************************************************** Ultraman Club / SD Gundam Neo Battling ***************************************************************************/ -static ADDRESS_MAP_START( umanclub_readmem, ADDRESS_SPACE_PROGRAM, 16 ) - AM_RANGE(0x000000, 0x03ffff) AM_READ(SMH_ROM ) // ROM - AM_RANGE(0x200000, 0x20ffff) AM_READ(SMH_RAM ) // RAM - AM_RANGE(0x300000, 0x3003ff) AM_READ(SMH_RAM ) // Palette - AM_RANGE(0x300400, 0x300fff) AM_READ(SMH_RAM ) // +static ADDRESS_MAP_START( umanclub_map, ADDRESS_SPACE_PROGRAM, 16 ) + AM_RANGE(0x000000, 0x03ffff) AM_ROM // ROM + AM_RANGE(0x200000, 0x20ffff) AM_RAM // RAM + AM_RANGE(0x300000, 0x3003ff) AM_RAM AM_BASE(&paletteram16) AM_SIZE(&seta_paletteram_size) // 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 AM_RANGE(0x400004, 0x400005) AM_READ_PORT("COINS") // Coins - AM_RANGE(0x600000, 0x600003) AM_READ(seta_dsw_r ) // DSW - AM_RANGE(0xa00000, 0xa00607) AM_READ(SMH_RAM ) // Sprites Y -/**/AM_RANGE(0xa80000, 0xa80001) AM_READ(SMH_RAM ) // ? 0x4000 - AM_RANGE(0xb00000, 0xb03fff) AM_READ(SMH_RAM ) // Sprites Code + X + Attr - AM_RANGE(0xc00000, 0xc03fff) AM_DEVREAD("x1", seta_sound_word_r ) // Sound + AM_RANGE(0x400000, 0x400001) AM_WRITENOP // ? (end of lev 2) + AM_RANGE(0x400004, 0x400005) AM_WRITENOP // ? (end of lev 2) + AM_RANGE(0x500000, 0x500001) AM_RAM_WRITE(seta_vregs_w) AM_BASE(&seta_vregs ) // Coin Lockout + Video Registers + AM_RANGE(0x600000, 0x600003) AM_READ(seta_dsw_r) // DSW + AM_RANGE(0xa00000, 0xa00607) AM_RAM AM_BASE(&spriteram16) // Sprites Y +/**/AM_RANGE(0xa80000, 0xa80001) AM_RAM // ? 0x4000 + AM_RANGE(0xb00000, 0xb03fff) AM_RAM AM_BASE(&spriteram16_2) // Sprites Code + X + Attr + AM_RANGE(0xc00000, 0xc03fff) AM_DEVREADWRITE("x1", seta_sound_word_r,seta_sound_word_w) // Sound ADDRESS_MAP_END -static ADDRESS_MAP_START( umanclub_writemem, ADDRESS_SPACE_PROGRAM, 16 ) - AM_RANGE(0x000000, 0x03ffff) AM_WRITE(SMH_ROM ) // ROM - AM_RANGE(0x200000, 0x20ffff) AM_WRITE(SMH_RAM ) // RAM - AM_RANGE(0x300000, 0x3003ff) AM_WRITE(SMH_RAM) AM_BASE(&paletteram16 ) AM_SIZE(&seta_paletteram_size) // Palette - AM_RANGE(0x300400, 0x300fff) AM_WRITE(SMH_RAM ) // - AM_RANGE(0x400000, 0x400001) AM_WRITE(SMH_NOP ) // ? (end of lev 2) - AM_RANGE(0x400004, 0x400005) AM_WRITE(SMH_NOP ) // ? (end of lev 2) - AM_RANGE(0x500000, 0x500001) AM_WRITE(seta_vregs_w) AM_BASE(&seta_vregs ) // Coin Lockout + Video Registers - AM_RANGE(0xa00000, 0xa00607) AM_WRITE(SMH_RAM) AM_BASE(&spriteram16 ) // Sprites Y - AM_RANGE(0xa80000, 0xa80001) AM_WRITE(SMH_RAM ) // ? 0x4000 - AM_RANGE(0xb00000, 0xb03fff) AM_WRITE(SMH_RAM) AM_BASE(&spriteram16_2 ) // Sprites Code + X + Attr - AM_RANGE(0xc00000, 0xc03fff) AM_DEVWRITE("x1", seta_sound_word_w ) // Sound -ADDRESS_MAP_END /*************************************************************************** Ultra Toukond Densetsu @@ -2835,37 +2478,161 @@ static WRITE16_HANDLER( utoukond_soundlatch_w ) } } -static ADDRESS_MAP_START( utoukond_readmem, ADDRESS_SPACE_PROGRAM, 16 ) - AM_RANGE(0x000000, 0x0fffff) AM_READ(SMH_ROM ) // ROM - AM_RANGE(0x200000, 0x20ffff) AM_READ(SMH_RAM ) // ROM +static ADDRESS_MAP_START( utoukond_map, ADDRESS_SPACE_PROGRAM, 16 ) + AM_RANGE(0x000000, 0x0fffff) AM_ROM // ROM + AM_RANGE(0x200000, 0x20ffff) AM_RAM // RAM AM_RANGE(0x400000, 0x400001) AM_READ_PORT("P1") // P1 AM_RANGE(0x400002, 0x400003) AM_READ_PORT("P2") // P2 AM_RANGE(0x400004, 0x400005) AM_READ_PORT("COINS") // Coins - AM_RANGE(0x600000, 0x600003) AM_READ(seta_dsw_r ) // DSW - AM_RANGE(0x700400, 0x700fff) AM_READ(SMH_RAM ) // Palette - AM_RANGE(0x800000, 0x801fff) AM_READ(SMH_RAM ) // VRAM 0 - AM_RANGE(0x802000, 0x803fff) AM_READ(SMH_RAM ) // VRAM 1 - AM_RANGE(0x880000, 0x881fff) AM_READ(SMH_RAM ) // VRAM 2 - AM_RANGE(0x882000, 0x883fff) AM_READ(SMH_RAM ) // VRAM 3 - AM_RANGE(0xa00000, 0xa00607) AM_READ(SMH_RAM ) // Sprites Y - AM_RANGE(0xb00000, 0xb03fff) AM_READ(SMH_RAM ) // Sprites Code + X + Attr + AM_RANGE(0x500000, 0x500005) AM_RAM_WRITE(seta_vregs_w) AM_BASE(&seta_vregs) // ? Coin Lockout + Video Registers + AM_RANGE(0x600000, 0x600003) AM_READ(seta_dsw_r) // DSW + AM_RANGE(0x700400, 0x700fff) AM_RAM AM_BASE(&paletteram16) AM_SIZE(&seta_paletteram_size) // Palette + AM_RANGE(0x800000, 0x803fff) AM_RAM_WRITE(seta_vram_0_w) AM_BASE(&seta_vram_0) // VRAM 0&1 + AM_RANGE(0x880000, 0x883fff) AM_RAM_WRITE(seta_vram_2_w) AM_BASE(&seta_vram_2) // VRAM 2&3 + AM_RANGE(0x900000, 0x900005) AM_WRITEONLY AM_BASE(&seta_vctrl_0)// VRAM 0&1 Ctrl + AM_RANGE(0x980000, 0x980005) AM_WRITEONLY AM_BASE(&seta_vctrl_2)// VRAM 2&3 Ctrl + AM_RANGE(0xa00000, 0xa00607) AM_RAM AM_BASE(&spriteram16) // Sprites Y + AM_RANGE(0xb00000, 0xb03fff) AM_RAM AM_BASE(&spriteram16_2) // Sprites Code + X + Attr + AM_RANGE(0xc00000, 0xc00001) AM_WRITE(utoukond_soundlatch_w) // To Sound CPU (cause an IRQ) + AM_RANGE(0xe00000, 0xe00001) AM_WRITENOP // ? ack ADDRESS_MAP_END -static ADDRESS_MAP_START( utoukond_writemem, ADDRESS_SPACE_PROGRAM, 16 ) - AM_RANGE(0x000000, 0x0fffff) AM_WRITE(SMH_ROM ) // ROM - AM_RANGE(0x200000, 0x20ffff) AM_WRITE(SMH_RAM ) // ROM - AM_RANGE(0x500000, 0x500005) AM_WRITE(seta_vregs_w) AM_BASE(&seta_vregs ) // ? Coin Lockout + Video Registers - AM_RANGE(0x700400, 0x700fff) AM_WRITE(SMH_RAM) AM_BASE(&paletteram16 ) AM_SIZE(&seta_paletteram_size) // Palette - AM_RANGE(0x800000, 0x803fff) AM_WRITE(seta_vram_0_w) AM_BASE(&seta_vram_0 ) // VRAM 0 - AM_RANGE(0x880000, 0x883fff) AM_WRITE(seta_vram_2_w) AM_BASE(&seta_vram_2 ) // VRAM 2 - AM_RANGE(0x900000, 0x900005) AM_WRITE(SMH_RAM) AM_BASE(&seta_vctrl_0 ) // VRAM 0&1 Ctrl - AM_RANGE(0x980000, 0x980005) AM_WRITE(SMH_RAM) AM_BASE(&seta_vctrl_2 ) // VRAM 2&3 Ctrl - AM_RANGE(0xa00000, 0xa00607) AM_WRITE(SMH_RAM) AM_BASE(&spriteram16 ) // Sprites Y - AM_RANGE(0xb00000, 0xb03fff) AM_WRITE(SMH_RAM) AM_BASE(&spriteram16_2 ) // Sprites Code + X + Attr - AM_RANGE(0xc00000, 0xc00001) AM_WRITE(utoukond_soundlatch_w ) // To Sound CPU (cause an IRQ) - AM_RANGE(0xe00000, 0xe00001) AM_WRITE(SMH_NOP ) // ? ack +/*************************************************************************** + Pairs Love +***************************************************************************/ + +static UINT16 pairslove_protram[0x200]; +static UINT16 pairslove_protram_old[0x200]; + +static READ16_HANDLER( pairlove_prot_r ) +{ + int retdata; + retdata = pairslove_protram[offset]; + //mame_printf_debug("pairs love protection? read %06x %04x %04x\n",cpu_get_pc(space->cpu), offset,retdata); + pairslove_protram[offset]=pairslove_protram_old[offset]; + return retdata; +} + +static WRITE16_HANDLER( pairlove_prot_w ) +{ +// mame_printf_debug("pairs love protection? write %06x %04x %04x\n",cpu_get_pc(space->cpu), offset,data); + pairslove_protram_old[offset]=pairslove_protram[offset]; + pairslove_protram[offset]=data; +} + +static ADDRESS_MAP_START( pairlove_map, ADDRESS_SPACE_PROGRAM, 16 ) + AM_RANGE(0x000000, 0x03ffff) AM_ROM // ROM + AM_RANGE(0x100000, 0x100001) AM_WRITENOP // ? 1 (start of interrupts, main loop: watchdog?) + AM_RANGE(0x200000, 0x200001) AM_WRITENOP // ? 0/1 (IRQ acknowledge?) + AM_RANGE(0x300000, 0x300003) AM_READ(seta_dsw_r) // DSW + AM_RANGE(0x400000, 0x400001) AM_RAM_WRITE(seta_vregs_w) AM_BASE(&seta_vregs) // Coin Lockout + Sound Enable (bit 4?) + AM_RANGE(0x500000, 0x500001) AM_READ_PORT("P1") // P1 + AM_RANGE(0x500002, 0x500003) AM_READ_PORT("P2") // P2 + 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("x1", seta_sound_word_r,seta_sound_word_w) // Sound + AM_RANGE(0xb00000, 0xb00fff) AM_RAM AM_BASE(&paletteram16) AM_SIZE(&seta_paletteram_size) // Palette + AM_RANGE(0xc00000, 0xc03fff) AM_RAM AM_BASE(&spriteram16_2) // Sprites Code + X + Attr + AM_RANGE(0xd00000, 0xd00001) AM_RAM // ? 0x4000 + AM_RANGE(0xe00000, 0xe00607) AM_RAM AM_BASE(&spriteram16) // Sprites Y + AM_RANGE(0xf00000, 0xf0ffff) AM_RAM // RAM ADDRESS_MAP_END + +/*************************************************************************** + Crazy Fight +***************************************************************************/ + +static ADDRESS_MAP_START( crazyfgt_map, ADDRESS_SPACE_PROGRAM, 16 ) + AM_RANGE(0x000000, 0x07ffff) AM_ROM + AM_RANGE(0x400000, 0x40ffff) AM_RAM + AM_RANGE(0x610000, 0x610001) AM_READ_PORT("COINS") + AM_RANGE(0x610002, 0x610003) AM_READ_PORT("UNK") + AM_RANGE(0x610004, 0x610005) AM_READ_PORT("INPUT") + 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_WRITE(SMH_RAM) AM_BASE(&paletteram16 ) AM_SIZE(&seta_paletteram_size) // Palette + AM_RANGE(0x650000, 0x650003) AM_DEVWRITE8("ym", ym3812_w, 0x00ff) + AM_RANGE(0x658000, 0x658001) AM_DEVWRITE8("oki", okim6295_w, 0x00ff) + AM_RANGE(0x670000, 0x670001) AM_READNOP // watchdog? + AM_RANGE(0x800000, 0x803fff) AM_WRITE(seta_vram_2_w) AM_BASE(&seta_vram_2) // VRAM 2 + AM_RANGE(0x880000, 0x883fff) AM_WRITE(seta_vram_0_w) AM_BASE(&seta_vram_0) // VRAM 0 + AM_RANGE(0x900000, 0x900005) AM_RAM AM_BASE(&seta_vctrl_2) // VRAM 2&3 Ctrl + AM_RANGE(0x980000, 0x980005) AM_RAM AM_BASE(&seta_vctrl_0) // VRAM 0&1 Ctrl + AM_RANGE(0xa00000, 0xa00607) AM_RAM AM_BASE(&spriteram16) // Sprites Y + AM_RANGE(0xa80000, 0xa80001) AM_WRITENOP // ? 0x4000 + AM_RANGE(0xb00000, 0xb03fff) AM_RAM AM_BASE(&spriteram16_2) // Sprites Code + X + Attr +ADDRESS_MAP_END + + +/*************************************************************************** + International Toote +***************************************************************************/ + +static READ16_HANDLER( inttoote_dsw_r ) +{ + int shift = offset * 4; + return ((((input_port_read(space->machine, "DSW1") >> shift) & 0xf)) << 0) | + ((((input_port_read(space->machine, "DSW2_3") >> shift) & 0xf)) << 4) | + ((((input_port_read(space->machine, "DSW2_3") >> (shift+8)) & 0xf)) << 8) ; +} + +static UINT16 *inttoote_key_select; +static READ16_HANDLER( inttoote_key_r ) +{ + switch( *inttoote_key_select ) + { + case 0x08: return input_port_read(space->machine, "BET0"); + case 0x10: return input_port_read(space->machine, "BET1"); + case 0x20: return input_port_read(space->machine, "BET2"); + case 0x40: return input_port_read(space->machine, "BET3"); + case 0x80: return input_port_read(space->machine, "BET4"); + } + logerror("%06X: unknown read, select = %04x\n",cpu_get_pc(space->cpu),*inttoote_key_select); + return 0xffff; +} + +static UINT16 *inttoote_700000; +static READ16_HANDLER( inttoote_700000_r ) +{ + return inttoote_700000[offset] & 0x3f; +} + +static ADDRESS_MAP_START( inttoote_map, ADDRESS_SPACE_PROGRAM, 16 ) + AM_RANGE(0x000000, 0x1fffff) AM_ROM // ROM (up to 2MB) + + AM_RANGE(0x200000, 0x200001) AM_READWRITE(inttoote_key_r, SMH_RAM) AM_BASE(&inttoote_key_select) + AM_RANGE(0x200002, 0x200003) AM_READ_PORT("P1") + AM_RANGE(0x200010, 0x200011) AM_READ_PORT("P2") AM_WRITENOP + + AM_RANGE(0x300000, 0x300001) AM_WRITE(watchdog_reset16_w) // Watchdog + + AM_RANGE(0x300010, 0x300011) AM_WRITENOP // lev1 ack + AM_RANGE(0x300020, 0x300021) AM_WRITENOP // lev2 ack + AM_RANGE(0x300040, 0x300041) AM_WRITENOP // lev4 ack + AM_RANGE(0x300060, 0x300061) AM_WRITENOP // lev6 ack + + AM_RANGE(0x500000, 0x500003) AM_READ(inttoote_dsw_r) // DSW x 3 + + AM_RANGE(0x700000, 0x700101) AM_READWRITE(inttoote_700000_r,SMH_RAM) AM_BASE(&inttoote_700000) + + AM_RANGE(0x800000, 0x80001f) AM_DEVREADWRITE8("rtc", msm6242_r, msm6242_w, 0x00ff) // 6242RTC + + AM_RANGE(0x900000, 0x903fff) AM_DEVREADWRITE( "x1", seta_sound_word_r, seta_sound_word_w ) // Sound + + AM_RANGE(0xa00000, 0xa00005) AM_WRITE(SMH_RAM) AM_BASE(&seta_vctrl_0 ) // VRAM 0&1 Ctrl + AM_RANGE(0xb00000, 0xb03fff) AM_READWRITE(SMH_RAM,seta_vram_0_w) AM_BASE(&seta_vram_0 ) // VRAM 0&1 + + AM_RANGE(0xc00000, 0xc00001) AM_RAM // ? 0x4000 + + AM_RANGE(0xd00000, 0xd00607) AM_RAM AM_BASE(&spriteram16 ) // Sprites Y + AM_RANGE(0xe00000, 0xe03fff) AM_RAM AM_BASE(&spriteram16_2 ) // Sprites Code + X + Attr + + AM_RANGE(0xffc000, 0xffffff) AM_RAM // RAM +ADDRESS_MAP_END + + /*************************************************************************** @@ -3071,151 +2838,6 @@ static ADDRESS_MAP_START( utoukond_sound_io_map, ADDRESS_SPACE_IO, 8 ) AM_RANGE(0xc0, 0xc0) AM_READ(soundlatch_r) ADDRESS_MAP_END -static UINT16 pairslove_protram[0x200]; -static UINT16 pairslove_protram_old[0x200]; - -static READ16_HANDLER( pairlove_prot_r ) -{ - int retdata; - retdata = pairslove_protram[offset]; - //mame_printf_debug("pairs love protection? read %06x %04x %04x\n",cpu_get_pc(space->cpu), offset,retdata); - pairslove_protram[offset]=pairslove_protram_old[offset]; - return retdata; -} - -static WRITE16_HANDLER( pairlove_prot_w ) -{ -// mame_printf_debug("pairs love protection? write %06x %04x %04x\n",cpu_get_pc(space->cpu), offset,data); - pairslove_protram_old[offset]=pairslove_protram[offset]; - pairslove_protram[offset]=data; -} - -/*************************************************************************** - Pairs Love -***************************************************************************/ - -static ADDRESS_MAP_START( pairlove_readmem, ADDRESS_SPACE_PROGRAM, 16 ) - AM_RANGE(0x000000, 0x03ffff) AM_READ(SMH_ROM ) // ROM - AM_RANGE(0x300000, 0x300003) AM_READ(seta_dsw_r ) // DSW - AM_RANGE(0x500000, 0x500001) AM_READ_PORT("P1") // P1 - AM_RANGE(0x500002, 0x500003) AM_READ_PORT("P2") // P2 - AM_RANGE(0x500004, 0x500005) AM_READ_PORT("COINS") // Coins - AM_RANGE(0x900000, 0x9001ff) AM_READ(pairlove_prot_r) - AM_RANGE(0xa00000, 0xa03fff) AM_DEVREAD("x1", seta_sound_word_r ) // Sound - AM_RANGE(0xb00000, 0xb00fff) AM_READ(SMH_RAM ) // Palette - AM_RANGE(0xc00000, 0xc03fff) AM_READ(SMH_RAM ) // Sprites Code + X + Attr - AM_RANGE(0xd00000, 0xd00001) AM_READ(SMH_RAM ) // ? 0x4000 - AM_RANGE(0xe00000, 0xe00607) AM_READ(SMH_RAM ) // Sprites Y - AM_RANGE(0xf00000, 0xf0ffff) AM_READ(SMH_RAM ) // RAM -ADDRESS_MAP_END - -static ADDRESS_MAP_START( pairlove_writemem, ADDRESS_SPACE_PROGRAM, 16 ) - AM_RANGE(0x000000, 0x03ffff) AM_WRITE(SMH_ROM ) // ROM - AM_RANGE(0x100000, 0x100001) AM_WRITE(SMH_NOP ) // ? 1 (start of interrupts, main loop: watchdog?) - AM_RANGE(0x200000, 0x200001) AM_WRITE(SMH_NOP ) // ? 0/1 (IRQ acknowledge?) - AM_RANGE(0x400000, 0x400001) AM_WRITE(seta_vregs_w) AM_BASE(&seta_vregs ) // Coin Lockout + Sound Enable (bit 4?) - AM_RANGE(0x900000, 0x9001ff) AM_WRITE(pairlove_prot_w) - AM_RANGE(0xa00000, 0xa03fff) AM_DEVWRITE("x1", seta_sound_word_w ) // Sound - AM_RANGE(0xb00000, 0xb00fff) AM_WRITE(SMH_RAM) AM_BASE(&paletteram16 ) AM_SIZE(&seta_paletteram_size) // Palette - AM_RANGE(0xc00000, 0xc03fff) AM_WRITE(SMH_RAM) AM_BASE(&spriteram16_2 ) // Sprites Code + X + Attr - AM_RANGE(0xd00000, 0xd00001) AM_WRITE(SMH_RAM ) // ? 0x4000 - AM_RANGE(0xe00000, 0xe00607) AM_WRITE(SMH_RAM) AM_BASE(&spriteram16 ) // Sprites Y - AM_RANGE(0xf00000, 0xf0ffff) AM_WRITE(SMH_RAM ) // RAM -ADDRESS_MAP_END - - -/*************************************************************************** - Crazy Fight -***************************************************************************/ - -static ADDRESS_MAP_START( crazyfgt_map, ADDRESS_SPACE_PROGRAM, 16 ) - AM_RANGE(0x000000, 0x07ffff) AM_ROM - AM_RANGE(0x400000, 0x40ffff) AM_RAM - AM_RANGE(0x610000, 0x610001) AM_READ_PORT("COINS") - AM_RANGE(0x610002, 0x610003) AM_READ_PORT("UNK") - AM_RANGE(0x610004, 0x610005) AM_READ_PORT("INPUT") - 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_WRITE(SMH_RAM) AM_BASE(&paletteram16 ) AM_SIZE(&seta_paletteram_size) // Palette - AM_RANGE(0x650000, 0x650003) AM_DEVWRITE8("ym", ym3812_w, 0x00ff) - AM_RANGE(0x658000, 0x658001) AM_DEVWRITE8("oki", okim6295_w, 0x00ff) - AM_RANGE(0x670000, 0x670001) AM_READNOP // watchdog? - AM_RANGE(0x800000, 0x803fff) AM_WRITE(seta_vram_2_w) AM_BASE(&seta_vram_2) // VRAM 2 - AM_RANGE(0x880000, 0x883fff) AM_WRITE(seta_vram_0_w) AM_BASE(&seta_vram_0) // VRAM 0 - AM_RANGE(0x900000, 0x900005) AM_RAM AM_BASE(&seta_vctrl_2) // VRAM 2&3 Ctrl - AM_RANGE(0x980000, 0x980005) AM_RAM AM_BASE(&seta_vctrl_0) // VRAM 0&1 Ctrl - AM_RANGE(0xa00000, 0xa00607) AM_RAM AM_BASE(&spriteram16) // Sprites Y - AM_RANGE(0xa80000, 0xa80001) AM_WRITENOP // ? 0x4000 - AM_RANGE(0xb00000, 0xb03fff) AM_RAM AM_BASE(&spriteram16_2) // Sprites Code + X + Attr -ADDRESS_MAP_END - -/*************************************************************************** - International Toote -***************************************************************************/ - -static READ16_HANDLER( inttoote_dsw_r ) -{ - int shift = offset * 4; - return ((((input_port_read(space->machine, "DSW1") >> shift) & 0xf)) << 0) | - ((((input_port_read(space->machine, "DSW2_3") >> shift) & 0xf)) << 4) | - ((((input_port_read(space->machine, "DSW2_3") >> (shift+8)) & 0xf)) << 8) ; -} - -static UINT16 *inttoote_key_select; -static READ16_HANDLER( inttoote_key_r ) -{ - switch( *inttoote_key_select ) - { - case 0x08: return input_port_read(space->machine, "BET0"); - case 0x10: return input_port_read(space->machine, "BET1"); - case 0x20: return input_port_read(space->machine, "BET2"); - case 0x40: return input_port_read(space->machine, "BET3"); - case 0x80: return input_port_read(space->machine, "BET4"); - } - logerror("%06X: unknown read, select = %04x\n",cpu_get_pc(space->cpu),*inttoote_key_select); - return 0xffff; -} - -static UINT16 *inttoote_700000; -static READ16_HANDLER( inttoote_700000_r ) -{ - return inttoote_700000[offset] & 0x3f; -} - -static ADDRESS_MAP_START( inttoote_map, ADDRESS_SPACE_PROGRAM, 16 ) - AM_RANGE(0x000000, 0x1fffff) AM_ROM // ROM (up to 2MB) - - AM_RANGE(0x200000, 0x200001) AM_READWRITE(inttoote_key_r, SMH_RAM) AM_BASE(&inttoote_key_select) - AM_RANGE(0x200002, 0x200003) AM_READ_PORT("P1") - AM_RANGE(0x200010, 0x200011) AM_READ_PORT("P2") AM_WRITENOP - - AM_RANGE(0x300000, 0x300001) AM_WRITE(watchdog_reset16_w) // Watchdog - - AM_RANGE(0x300010, 0x300011) AM_WRITENOP // lev1 ack - AM_RANGE(0x300020, 0x300021) AM_WRITENOP // lev2 ack - AM_RANGE(0x300040, 0x300041) AM_WRITENOP // lev4 ack - AM_RANGE(0x300060, 0x300061) AM_WRITENOP // lev6 ack - - AM_RANGE(0x500000, 0x500003) AM_READ(inttoote_dsw_r) // DSW x 3 - - AM_RANGE(0x700000, 0x700101) AM_READWRITE(inttoote_700000_r,SMH_RAM) AM_BASE(&inttoote_700000) - - AM_RANGE(0x800000, 0x80001f) AM_DEVREADWRITE8("rtc", msm6242_r, msm6242_w, 0x00ff) // 6242RTC - - AM_RANGE(0x900000, 0x903fff) AM_DEVREADWRITE( "x1", seta_sound_word_r, seta_sound_word_w ) // Sound - - AM_RANGE(0xa00000, 0xa00005) AM_WRITE(SMH_RAM) AM_BASE(&seta_vctrl_0 ) // VRAM 0&1 Ctrl - AM_RANGE(0xb00000, 0xb03fff) AM_READWRITE(SMH_RAM,seta_vram_0_w) AM_BASE(&seta_vram_0 ) // VRAM 0&1 - - AM_RANGE(0xc00000, 0xc00001) AM_RAM // ? 0x4000 - - AM_RANGE(0xd00000, 0xd00607) AM_RAM AM_BASE(&spriteram16 ) // Sprites Y - AM_RANGE(0xe00000, 0xe03fff) AM_RAM AM_BASE(&spriteram16_2 ) // Sprites Code + X + Attr - - AM_RANGE(0xffc000, 0xffffff) AM_RAM // RAM -ADDRESS_MAP_END - /*************************************************************************** @@ -6764,7 +6386,7 @@ static MACHINE_DRIVER_START( tndrcade ) /* basic machine hardware */ MDRV_CPU_ADD("maincpu", M68000, 16000000/2) /* 8 MHz */ - MDRV_CPU_PROGRAM_MAP(tndrcade_readmem,tndrcade_writemem) + MDRV_CPU_PROGRAM_MAP(tndrcade_map,0) MDRV_CPU_VBLANK_INT("screen", irq2_line_hold) MDRV_CPU_ADD("sub", M65C02, 16000000/8) /* 2 MHz */ @@ -6799,7 +6421,6 @@ static MACHINE_DRIVER_START( tndrcade ) MACHINE_DRIVER_END - /*************************************************************************** Twin Eagle ***************************************************************************/ @@ -6814,7 +6435,7 @@ static MACHINE_DRIVER_START( twineagl ) /* basic machine hardware */ MDRV_CPU_ADD("maincpu", M68000, 16000000/2) /* 8 MHz */ - MDRV_CPU_PROGRAM_MAP(downtown_readmem,downtown_writemem) + MDRV_CPU_PROGRAM_MAP(downtown_map,0) MDRV_CPU_VBLANK_INT("screen", irq3_line_hold) MDRV_CPU_ADD("sub", M65C02, 16000000/8) /* 2 MHz */ @@ -6845,7 +6466,6 @@ static MACHINE_DRIVER_START( twineagl ) MACHINE_DRIVER_END - /*************************************************************************** DownTown ***************************************************************************/ @@ -6856,7 +6476,7 @@ static MACHINE_DRIVER_START( downtown ) /* basic machine hardware */ MDRV_CPU_ADD("maincpu", M68000, XTAL_16MHz/2) /* verified on pcb */ - MDRV_CPU_PROGRAM_MAP(downtown_readmem,downtown_writemem) + MDRV_CPU_PROGRAM_MAP(downtown_map,0) MDRV_CPU_VBLANK_INT_HACK(seta_interrupt_1_and_2,SETA_INTERRUPTS_NUM) MDRV_CPU_ADD("sub", M65C02, XTAL_16MHz/8) /* verified on pcb */ @@ -6887,7 +6507,6 @@ static MACHINE_DRIVER_START( downtown ) MACHINE_DRIVER_END - /*************************************************************************** U.S. Classic ***************************************************************************/ @@ -6916,7 +6535,7 @@ static MACHINE_DRIVER_START( usclssic ) /* basic machine hardware */ MDRV_CPU_ADD("maincpu", M68000, 16000000/2) /* 8 MHz */ - MDRV_CPU_PROGRAM_MAP(usclssic_readmem,usclssic_writemem) + MDRV_CPU_PROGRAM_MAP(usclssic_map,0) MDRV_CPU_VBLANK_INT_HACK(calibr50_interrupt,calibr50_INTERRUPTS_NUM) MDRV_CPU_ADD("sub", M65C02, 16000000/8) /* 2 MHz */ @@ -6963,7 +6582,7 @@ static MACHINE_DRIVER_START( calibr50 ) /* basic machine hardware */ MDRV_CPU_ADD("maincpu", M68000, 16000000/2) /* 8 MHz */ - MDRV_CPU_PROGRAM_MAP(calibr50_readmem,calibr50_writemem) + MDRV_CPU_PROGRAM_MAP(calibr50_map,0) MDRV_CPU_VBLANK_INT_HACK(calibr50_interrupt,calibr50_INTERRUPTS_NUM) MDRV_CPU_ADD("sub", M65C02, 16000000/8) /* 2 MHz */ @@ -7007,7 +6626,7 @@ static MACHINE_DRIVER_START( metafox ) /* basic machine hardware */ MDRV_CPU_ADD("maincpu", M68000, 16000000/2) /* 8 MHz */ - MDRV_CPU_PROGRAM_MAP(downtown_readmem,downtown_writemem) + MDRV_CPU_PROGRAM_MAP(downtown_map,0) MDRV_CPU_VBLANK_INT("screen", irq3_line_hold) MDRV_CPU_ADD("sub", M65C02, 16000000/8) /* 2 MHz */ @@ -7038,10 +6657,6 @@ static MACHINE_DRIVER_START( metafox ) MACHINE_DRIVER_END - - - - /*************************************************************************** Athena no Hatena? ***************************************************************************/ @@ -7050,7 +6665,7 @@ static MACHINE_DRIVER_START( atehate ) /* basic machine hardware */ MDRV_CPU_ADD("maincpu", M68000, 16000000) /* 16 MHz */ - MDRV_CPU_PROGRAM_MAP(atehate_readmem,atehate_writemem) + MDRV_CPU_PROGRAM_MAP(atehate_map,0) MDRV_CPU_VBLANK_INT_HACK(seta_interrupt_1_and_2,SETA_INTERRUPTS_NUM) /* video hardware */ @@ -7091,8 +6706,7 @@ static MACHINE_DRIVER_START( blandia ) /* basic machine hardware */ MDRV_CPU_ADD("maincpu", M68000, 16000000) /* 16 MHz */ - MDRV_CPU_PROGRAM_MAP(blandia_readmem,blandia_writemem) - + MDRV_CPU_PROGRAM_MAP(blandia_map,0) MDRV_CPU_VBLANK_INT_HACK(seta_interrupt_2_and_4,SETA_INTERRUPTS_NUM) /* video hardware */ @@ -7124,7 +6738,7 @@ static MACHINE_DRIVER_START( blandiap ) /* basic machine hardware */ MDRV_CPU_ADD("maincpu", M68000, 16000000) /* 16 MHz */ - MDRV_CPU_PROGRAM_MAP(blandiap_readmem,blandiap_writemem) + MDRV_CPU_PROGRAM_MAP(blandiap_map,0) MDRV_CPU_VBLANK_INT_HACK(seta_interrupt_2_and_4,SETA_INTERRUPTS_NUM) /* video hardware */ @@ -7161,7 +6775,7 @@ static MACHINE_DRIVER_START( blockcar ) /* basic machine hardware */ MDRV_CPU_ADD("maincpu", M68000, 16000000/2) /* 8 MHz */ - MDRV_CPU_PROGRAM_MAP(blockcar_readmem,blockcar_writemem) + MDRV_CPU_PROGRAM_MAP(blockcar_map,0) MDRV_CPU_VBLANK_INT("screen", irq3_line_hold) /* video hardware */ @@ -7196,7 +6810,7 @@ static MACHINE_DRIVER_START( daioh ) /* basic machine hardware */ MDRV_CPU_ADD("maincpu", M68000, 16000000) /* 16 MHz */ - MDRV_CPU_PROGRAM_MAP(daioh_readmem,daioh_writemem) + MDRV_CPU_PROGRAM_MAP(daioh_map,0) MDRV_CPU_VBLANK_INT_HACK(seta_interrupt_1_and_2,SETA_INTERRUPTS_NUM) /* video hardware */ @@ -7236,7 +6850,7 @@ static MACHINE_DRIVER_START( drgnunit ) /* basic machine hardware */ MDRV_CPU_ADD("maincpu", M68000, 16000000/2) /* 8 MHz */ - MDRV_CPU_PROGRAM_MAP(drgnunit_readmem,drgnunit_writemem) + MDRV_CPU_PROGRAM_MAP(drgnunit_map,0) MDRV_CPU_VBLANK_INT_HACK(seta_interrupt_1_and_2,SETA_INTERRUPTS_NUM) /* video hardware */ @@ -7270,7 +6884,7 @@ static MACHINE_DRIVER_START( qzkklgy2 ) /* basic machine hardware */ MDRV_CPU_ADD("maincpu", M68000, 16000000) /* 16 MHz */ - MDRV_CPU_PROGRAM_MAP(drgnunit_readmem,drgnunit_writemem) + MDRV_CPU_PROGRAM_MAP(drgnunit_map,0) MDRV_CPU_VBLANK_INT_HACK(seta_interrupt_1_and_2,SETA_INTERRUPTS_NUM) /* video hardware */ @@ -7306,7 +6920,7 @@ static MACHINE_DRIVER_START( eightfrc ) /* basic machine hardware */ MDRV_CPU_ADD("maincpu", M68000, 16000000) /* 16 MHz */ - MDRV_CPU_PROGRAM_MAP(wrofaero_readmem,wrofaero_writemem) + MDRV_CPU_PROGRAM_MAP(wrofaero_map,0) MDRV_CPU_VBLANK_INT_HACK(seta_interrupt_1_and_2,SETA_INTERRUPTS_NUM) /* video hardware */ @@ -7346,7 +6960,7 @@ static MACHINE_DRIVER_START( extdwnhl ) /* basic machine hardware */ MDRV_CPU_ADD("maincpu", M68000, 16000000) /* 16 MHz */ - MDRV_CPU_PROGRAM_MAP(extdwnhl_readmem,extdwnhl_writemem) + MDRV_CPU_PROGRAM_MAP(extdwnhl_map,0) MDRV_CPU_VBLANK_INT_HACK(seta_interrupt_1_and_2,SETA_INTERRUPTS_NUM) /* video hardware */ @@ -7398,7 +7012,7 @@ static MACHINE_DRIVER_START( gundhara ) /* basic machine hardware */ MDRV_CPU_ADD("maincpu", M68000, 16000000) /* 16 MHz */ - MDRV_CPU_PROGRAM_MAP(wrofaero_readmem,wrofaero_writemem) + MDRV_CPU_PROGRAM_MAP(wrofaero_map,0) #if __uPD71054_TIMER // MDRV_CPU_VBLANK_INT("screen", wrofaero_interrupt) MDRV_CPU_VBLANK_INT_HACK(seta_interrupt_1_and_2,SETA_INTERRUPTS_NUM) @@ -7447,7 +7061,7 @@ static MACHINE_DRIVER_START( jjsquawk ) /* basic machine hardware */ MDRV_CPU_ADD("maincpu", M68000, 16000000) /* 16 MHz */ - MDRV_CPU_PROGRAM_MAP(wrofaero_readmem,wrofaero_writemem) + MDRV_CPU_PROGRAM_MAP(wrofaero_map,0) MDRV_CPU_VBLANK_INT_HACK(seta_interrupt_1_and_2,SETA_INTERRUPTS_NUM) /* video hardware */ @@ -7478,7 +7092,7 @@ static MACHINE_DRIVER_START( jjsquawb ) /* basic machine hardware */ MDRV_CPU_ADD("maincpu", M68000, 16000000) /* 16 MHz */ - MDRV_CPU_PROGRAM_MAP(wrofaero_readmem,jjsquawb_writemem) + MDRV_CPU_PROGRAM_MAP(jjsquawb_map,0) MDRV_CPU_VBLANK_INT_HACK(seta_interrupt_1_and_2,SETA_INTERRUPTS_NUM) /* video hardware */ @@ -7514,7 +7128,7 @@ static MACHINE_DRIVER_START( kamenrid ) /* basic machine hardware */ MDRV_CPU_ADD("maincpu", M68000, 16000000) /* 16 MHz */ - MDRV_CPU_PROGRAM_MAP(kamenrid_readmem,kamenrid_writemem) + MDRV_CPU_PROGRAM_MAP(kamenrid_map,0) MDRV_CPU_VBLANK_INT("screen", wrofaero_interrupt) #if __uPD71054_TIMER @@ -7554,7 +7168,7 @@ static MACHINE_DRIVER_START( orbs ) /* basic machine hardware */ MDRV_CPU_ADD("maincpu", M68000, 14318180/2) /* 7.143 MHz */ - MDRV_CPU_PROGRAM_MAP(orbs_readmem,orbs_writemem) + MDRV_CPU_PROGRAM_MAP(orbs_map,0) MDRV_CPU_VBLANK_INT_HACK(seta_interrupt_1_and_2,SETA_INTERRUPTS_NUM) /* video hardware */ @@ -7589,7 +7203,7 @@ static MACHINE_DRIVER_START( krzybowl ) /* basic machine hardware */ MDRV_CPU_ADD("maincpu", M68000, 16000000) /* 16 MHz */ - MDRV_CPU_PROGRAM_MAP(krzybowl_readmem,krzybowl_writemem) + MDRV_CPU_PROGRAM_MAP(krzybowl_map,0) MDRV_CPU_VBLANK_INT_HACK(seta_interrupt_1_and_2,SETA_INTERRUPTS_NUM) /* video hardware */ @@ -7625,7 +7239,7 @@ static MACHINE_DRIVER_START( madshark ) /* basic machine hardware */ MDRV_CPU_ADD("maincpu", M68000, 16000000) /* 16 MHz */ - MDRV_CPU_PROGRAM_MAP(madshark_readmem,madshark_writemem) + MDRV_CPU_PROGRAM_MAP(madshark_map,0) MDRV_CPU_VBLANK_INT("screen", wrofaero_interrupt) #if __uPD71054_TIMER @@ -7667,7 +7281,7 @@ static MACHINE_DRIVER_START( msgundam ) /* basic machine hardware */ MDRV_CPU_ADD("maincpu", M68000, 16000000) /* 16 MHz */ - MDRV_CPU_PROGRAM_MAP(msgundam_readmem,msgundam_writemem) + MDRV_CPU_PROGRAM_MAP(msgundam_map,0) #if __uPD71054_TIMER MDRV_CPU_VBLANK_INT("screen", wrofaero_interrupt) #else @@ -7712,7 +7326,7 @@ static MACHINE_DRIVER_START( oisipuzl ) /* basic machine hardware */ MDRV_CPU_ADD("maincpu", M68000, 16000000) /* 16 MHz */ - MDRV_CPU_PROGRAM_MAP(oisipuzl_readmem,oisipuzl_writemem) + MDRV_CPU_PROGRAM_MAP(oisipuzl_map,0) MDRV_CPU_VBLANK_INT_HACK(seta_interrupt_1_and_2,SETA_INTERRUPTS_NUM) /* video hardware */ @@ -7748,7 +7362,7 @@ static MACHINE_DRIVER_START( triplfun ) /* basic machine hardware */ MDRV_CPU_ADD("maincpu", M68000, 16000000) /* 16 MHz */ - MDRV_CPU_PROGRAM_MAP(triplfun_readmem,triplfun_writemem) + MDRV_CPU_PROGRAM_MAP(triplfun_map,0) MDRV_CPU_VBLANK_INT("screen", irq3_line_hold) /* video hardware */ @@ -7782,7 +7396,7 @@ static MACHINE_DRIVER_START( kiwame ) /* basic machine hardware */ MDRV_CPU_ADD("maincpu", M68000, 16000000) /* 16 MHz */ - MDRV_CPU_PROGRAM_MAP(kiwame_readmem,kiwame_writemem) + MDRV_CPU_PROGRAM_MAP(kiwame_map,0) MDRV_CPU_VBLANK_INT("screen", irq1_line_hold)/* lev 1-7 are the same. WARNING: the interrupt table is written to. */ @@ -7821,7 +7435,7 @@ static MACHINE_DRIVER_START( rezon ) /* basic machine hardware */ MDRV_CPU_ADD("maincpu", M68000, 16000000) /* 16 MHz */ - MDRV_CPU_PROGRAM_MAP(wrofaero_readmem,wrofaero_writemem) + MDRV_CPU_PROGRAM_MAP(wrofaero_map,0) MDRV_CPU_VBLANK_INT_HACK(seta_interrupt_1_and_2,SETA_INTERRUPTS_NUM) /* video hardware */ @@ -7859,7 +7473,7 @@ static MACHINE_DRIVER_START( thunderl ) /* basic machine hardware */ MDRV_CPU_ADD("maincpu", M68000, 16000000/2) /* 8 MHz */ - MDRV_CPU_PROGRAM_MAP(thunderl_readmem,thunderl_writemem) + MDRV_CPU_PROGRAM_MAP(thunderl_map,0) MDRV_CPU_VBLANK_INT("screen", irq2_line_hold) /* video hardware */ @@ -7890,11 +7504,11 @@ static MACHINE_DRIVER_START( wiggie ) /* basic machine hardware */ MDRV_CPU_ADD("maincpu", M68000, 16000000/2) /* 8 MHz */ - MDRV_CPU_PROGRAM_MAP(wiggie_readmem,wiggie_writemem) + MDRV_CPU_PROGRAM_MAP(wiggie_map,0) MDRV_CPU_VBLANK_INT("screen", irq2_line_hold) MDRV_CPU_ADD("audiocpu", Z80, 16000000/4) /* 4 MHz */ - MDRV_CPU_PROGRAM_MAP(wiggie_sound_readmem,wiggie_sound_writemem) + MDRV_CPU_PROGRAM_MAP(wiggie_sound_map,0) /* video hardware */ MDRV_SCREEN_ADD("screen", RASTER) @@ -7923,7 +7537,7 @@ static MACHINE_DRIVER_START( wits ) /* basic machine hardware */ MDRV_CPU_ADD("maincpu", M68000, 16000000/2) /* 8 MHz */ - MDRV_CPU_PROGRAM_MAP(thunderl_readmem,thunderl_writemem) + MDRV_CPU_PROGRAM_MAP(thunderl_map,0) MDRV_CPU_VBLANK_INT("screen", irq2_line_hold) /* video hardware */ @@ -7950,7 +7564,6 @@ static MACHINE_DRIVER_START( wits ) MACHINE_DRIVER_END - /*************************************************************************** Ultraman Club / SD Gundam Neo Battling ***************************************************************************/ @@ -7959,7 +7572,7 @@ static MACHINE_DRIVER_START( umanclub ) /* basic machine hardware */ MDRV_CPU_ADD("maincpu", M68000, 16000000) /* 16 MHz */ - MDRV_CPU_PROGRAM_MAP(umanclub_readmem,umanclub_writemem) + MDRV_CPU_PROGRAM_MAP(umanclub_map,0) MDRV_CPU_VBLANK_INT("screen", irq3_line_hold) /* video hardware */ @@ -7994,7 +7607,7 @@ static MACHINE_DRIVER_START( utoukond ) /* basic machine hardware */ MDRV_CPU_ADD("maincpu", M68000, 16000000) /* 16 MHz */ - MDRV_CPU_PROGRAM_MAP(utoukond_readmem,utoukond_writemem) + MDRV_CPU_PROGRAM_MAP(utoukond_map,0) MDRV_CPU_VBLANK_INT_HACK(seta_interrupt_1_and_2,SETA_INTERRUPTS_NUM) MDRV_CPU_ADD("audiocpu", Z80, 16000000/4) /* 4 MHz */ @@ -8038,7 +7651,7 @@ static MACHINE_DRIVER_START( wrofaero ) /* basic machine hardware */ MDRV_CPU_ADD("maincpu", M68000, 16000000) /* 16 MHz */ - MDRV_CPU_PROGRAM_MAP(wrofaero_readmem,wrofaero_writemem) + MDRV_CPU_PROGRAM_MAP(wrofaero_map,0) #if __uPD71054_TIMER MDRV_CPU_VBLANK_INT("screen", wrofaero_interrupt) #else @@ -8088,7 +7701,7 @@ static MACHINE_DRIVER_START( zingzip ) /* basic machine hardware */ MDRV_CPU_ADD("maincpu", M68000, 16000000) /* 16 MHz */ - MDRV_CPU_PROGRAM_MAP(wrofaero_readmem,wrofaero_writemem) + MDRV_CPU_PROGRAM_MAP(wrofaero_map,0) MDRV_CPU_VBLANK_INT("screen", irq3_line_hold) /* video hardware */ @@ -8123,7 +7736,7 @@ static MACHINE_DRIVER_START( pairlove ) /* basic machine hardware */ MDRV_CPU_ADD("maincpu", M68000, 16000000/2) /* 8 MHz */ - MDRV_CPU_PROGRAM_MAP(pairlove_readmem,pairlove_writemem) + MDRV_CPU_PROGRAM_MAP(pairlove_map,0) MDRV_CPU_VBLANK_INT_HACK(seta_interrupt_1_and_2,SETA_INTERRUPTS_NUM) /* video hardware */