diff --git a/src/emu/video/generic.c b/src/emu/video/generic.c index 2b085fb3c2b..30874b4d325 100644 --- a/src/emu/video/generic.c +++ b/src/emu/video/generic.c @@ -706,6 +706,20 @@ WRITE8_HANDLER( paletteram_BBGGRRII_w ) pal4bit(((data >> 4) & 0x0c) | i)); } +/*------------------------------------------------- + II-BB-GG-RR writes +-------------------------------------------------*/ + +WRITE8_HANDLER( paletteram_IIBBGGRR_w ) +{ + int i = (data >> 6) & 3; + + paletteram[offset] = data; + palette_set_color_rgb(space->machine, offset, pal4bit(((data << 2) & 0x0c) | i), + pal4bit(((data >> 0) & 0x0c) | i), + pal4bit(((data >> 2) & 0x0c) | i)); +} + /*************************************************************************** diff --git a/src/emu/video/generic.h b/src/emu/video/generic.h index fdc35f9da16..4219cab4146 100644 --- a/src/emu/video/generic.h +++ b/src/emu/video/generic.h @@ -145,6 +145,7 @@ PALETTE_INIT( RRRRR_GGGGGG_BBBBB ); WRITE8_HANDLER( paletteram_BBGGGRRR_w ); WRITE8_HANDLER( paletteram_RRRGGGBB_w ); WRITE8_HANDLER( paletteram_BBGGRRII_w ); +WRITE8_HANDLER( paletteram_IIBBGGRR_w ); /* 4-4-4 RGB palette write handlers */ WRITE8_HANDLER( paletteram_xxxxBBBBGGGGRRRR_le_w ); diff --git a/src/mame/drivers/senjyo.c b/src/mame/drivers/senjyo.c index 6363556f62f..b35e269f2b4 100644 --- a/src/mame/drivers/senjyo.c +++ b/src/mame/drivers/senjyo.c @@ -98,84 +98,56 @@ static WRITE8_HANDLER( flip_screen_w ) flip_screen_set(space->machine, data); } -static WRITE8_HANDLER( paletteram_IIBBGGRR_w ) -{ - int r,g,b,i; - - paletteram[offset] = data; - - i = (data >> 6) & 0x03; - /* red component */ - r = (data << 2) & 0x0c; - if (r) r |= i; - /* green component */ - g = (data >> 0) & 0x0c; - if (g) g |= i; - /* blue component */ - b = (data >> 2) & 0x0c; - if (b) b |= i; - - palette_set_color_rgb(space->machine,offset,pal4bit(r),pal4bit(g),pal4bit(b)); -} - - - -static ADDRESS_MAP_START( readmem, ADDRESS_SPACE_PROGRAM, 8 ) - AM_RANGE(0x0000, 0x7fff) AM_READ(SMH_ROM) - AM_RANGE(0x8000, 0x97ff) AM_READ(SMH_RAM) - AM_RANGE(0x9800, 0x987f) AM_READ(SMH_RAM) - AM_RANGE(0x9c00, 0x9dff) AM_READ(SMH_RAM) - AM_RANGE(0x9e00, 0x9e3f) AM_READ(SMH_RAM) - AM_RANGE(0xa000, 0xa7ff) AM_READ(SMH_RAM) - AM_RANGE(0xa800, 0xafff) AM_READ(SMH_RAM) - AM_RANGE(0xb000, 0xb7ff) AM_READ(SMH_RAM) - AM_RANGE(0xb800, 0xbbff) AM_READ(SMH_RAM) - AM_RANGE(0xd000, 0xd000) AM_READ_PORT("P1") +static ADDRESS_MAP_START( senjyo_map, ADDRESS_SPACE_PROGRAM, 8 ) + AM_RANGE(0x0000, 0x7fff) AM_ROM + AM_RANGE(0x8000, 0x8fff) AM_RAM + AM_RANGE(0x9000, 0x93ff) AM_RAM_WRITE(senjyo_fgvideoram_w) AM_BASE(&senjyo_fgvideoram) + AM_RANGE(0x9400, 0x97ff) AM_RAM_WRITE(senjyo_fgcolorram_w) AM_BASE(&senjyo_fgcolorram) + AM_RANGE(0x9800, 0x987f) AM_RAM AM_BASE(&spriteram) AM_SIZE(&spriteram_size) + AM_RANGE(0x9c00, 0x9dff) AM_RAM_WRITE(paletteram_IIBBGGRR_w) AM_BASE(&paletteram) + AM_RANGE(0x9e00, 0x9e1f) AM_RAM AM_BASE(&senjyo_fgscroll) + AM_RANGE(0x9e20, 0x9e21) AM_RAM AM_BASE(&senjyo_scrolly3) +/* AM_RANGE(0x9e22, 0x9e23) height of the layer (Senjyo only, fixed at 0x380) */ + AM_RANGE(0x9e25, 0x9e25) AM_RAM AM_BASE(&senjyo_scrollx3) + AM_RANGE(0x9e27, 0x9e27) AM_RAM_WRITE(senjyo_bgstripes_w) AM_BASE(&senjyo_bgstripesram) /* controls width of background stripes */ + AM_RANGE(0x9e28, 0x9e29) AM_RAM AM_BASE(&senjyo_scrolly2) +/* AM_RANGE(0x9e2a, 0x9e2b) height of the layer (Senjyo only, fixed at 0x200) */ + AM_RANGE(0x9e2d, 0x9e2d) AM_RAM AM_BASE(&senjyo_scrollx2) + AM_RANGE(0x9e30, 0x9e31) AM_RAM AM_BASE(&senjyo_scrolly1) +/* AM_RANGE(0x9e32, 0x9e33) height of the layer (Senjyo only, fixed at 0x100) */ + AM_RANGE(0x9e35, 0x9e35) AM_RAM AM_BASE(&senjyo_scrollx1) +/* AM_RANGE(0x9e38, 0x9e38) probably radar y position (Senjyo only, fixed at 0x61) */ +/* AM_RANGE(0x9e3d, 0x9e3d) probably radar x position (Senjyo only, 0x00/0xc0 depending on screen flip) */ + AM_RANGE(0x9e00, 0x9e3f) AM_RAM + AM_RANGE(0xa000, 0xa7ff) AM_RAM_WRITE(senjyo_bg3videoram_w) AM_BASE(&senjyo_bg3videoram) + AM_RANGE(0xa800, 0xafff) AM_RAM_WRITE(senjyo_bg2videoram_w) AM_BASE(&senjyo_bg2videoram) + AM_RANGE(0xb000, 0xb7ff) AM_RAM_WRITE(senjyo_bg1videoram_w) AM_BASE(&senjyo_bg1videoram) + AM_RANGE(0xb800, 0xbbff) AM_RAM AM_BASE(&senjyo_radarram) + AM_RANGE(0xd000, 0xd000) AM_READ_PORT("P1") AM_WRITE(flip_screen_w) AM_RANGE(0xd001, 0xd001) AM_READ_PORT("P2") AM_RANGE(0xd002, 0xd002) AM_READ_PORT("SYSTEM") - AM_RANGE(0xd004, 0xd004) AM_READ_PORT("DSW1") + AM_RANGE(0xd004, 0xd004) AM_READ_PORT("DSW1") AM_DEVWRITE("z80pio", z80pio_p_w) AM_RANGE(0xd005, 0xd005) AM_READ_PORT("DSW2") ADDRESS_MAP_END -static ADDRESS_MAP_START( writemem, ADDRESS_SPACE_PROGRAM, 8 ) - AM_RANGE(0x0000, 0x7fff) AM_WRITE(SMH_ROM) - AM_RANGE(0x8000, 0x8fff) AM_WRITE(SMH_RAM) - AM_RANGE(0x9000, 0x93ff) AM_WRITE(senjyo_fgvideoram_w) AM_BASE(&senjyo_fgvideoram) - AM_RANGE(0x9400, 0x97ff) AM_WRITE(senjyo_fgcolorram_w) AM_BASE(&senjyo_fgcolorram) - AM_RANGE(0x9800, 0x987f) AM_WRITE(SMH_RAM) AM_BASE(&spriteram) AM_SIZE(&spriteram_size) - AM_RANGE(0x9c00, 0x9dff) AM_WRITE(paletteram_IIBBGGRR_w) AM_BASE(&paletteram) - AM_RANGE(0x9e00, 0x9e1f) AM_WRITE(SMH_RAM) AM_BASE(&senjyo_fgscroll) - AM_RANGE(0x9e20, 0x9e21) AM_WRITE(SMH_RAM) AM_BASE(&senjyo_scrolly3) -/* { 0x9e22, 0x9e23, height of the layer (Senjyo only, fixed at 0x380) */ - AM_RANGE(0x9e25, 0x9e25) AM_WRITE(SMH_RAM) AM_BASE(&senjyo_scrollx3) - AM_RANGE(0x9e27, 0x9e27) AM_WRITE(senjyo_bgstripes_w) AM_BASE(&senjyo_bgstripesram) /* controls width of background stripes */ - AM_RANGE(0x9e28, 0x9e29) AM_WRITE(SMH_RAM) AM_BASE(&senjyo_scrolly2) -/* { 0x9e2a, 0x9e2b, height of the layer (Senjyo only, fixed at 0x200) */ - AM_RANGE(0x9e2d, 0x9e2d) AM_WRITE(SMH_RAM) AM_BASE(&senjyo_scrollx2) - AM_RANGE(0x9e30, 0x9e31) AM_WRITE(SMH_RAM) AM_BASE(&senjyo_scrolly1) -/* { 0x9e32, 0x9e33, height of the layer (Senjyo only, fixed at 0x100) */ - AM_RANGE(0x9e35, 0x9e35) AM_WRITE(SMH_RAM) AM_BASE(&senjyo_scrollx1) -/* { 0x9e38, 0x9e38, probably radar y position (Senjyo only, fixed at 0x61) */ -/* { 0x9e3d, 0x9e3d, probably radar x position (Senjyo only, 0x00/0xc0 depending on screen flip) */ -AM_RANGE(0x9e00, 0x9e3f) AM_WRITE(SMH_RAM) - AM_RANGE(0xa000, 0xa7ff) AM_WRITE(senjyo_bg3videoram_w) AM_BASE(&senjyo_bg3videoram) - AM_RANGE(0xa800, 0xafff) AM_WRITE(senjyo_bg2videoram_w) AM_BASE(&senjyo_bg2videoram) - AM_RANGE(0xb000, 0xb7ff) AM_WRITE(senjyo_bg1videoram_w) AM_BASE(&senjyo_bg1videoram) - AM_RANGE(0xb800, 0xbbff) AM_WRITE(SMH_RAM) AM_BASE(&senjyo_radarram) - AM_RANGE(0xd000, 0xd000) AM_WRITE(flip_screen_w) - AM_RANGE(0xd004, 0xd004) AM_DEVWRITE("z80pio", z80pio_p_w) -ADDRESS_MAP_END +static WRITE8_DEVICE_HANDLER( pio_w ) +{ + if (offset & 1) + z80pio_c_w(device, (offset >> 1) & 1, data); + else + z80pio_d_w(device, (offset >> 1) & 1, data); +} -static ADDRESS_MAP_START( sound_readmem, ADDRESS_SPACE_PROGRAM, 8 ) - AM_RANGE(0x0000, 0x3fff) AM_READ(SMH_ROM) - AM_RANGE(0x4000, 0x43ff) AM_READ(SMH_RAM) -ADDRESS_MAP_END +static READ8_DEVICE_HANDLER( pio_r ) +{ + return (offset & 1) ? z80pio_c_r(device, (offset >> 1) & 1) : z80pio_d_r(device, (offset >> 1) & 1); +} -static ADDRESS_MAP_START( sound_writemem, ADDRESS_SPACE_PROGRAM, 8 ) - AM_RANGE(0x0000, 0x3fff) AM_WRITE(SMH_ROM) - AM_RANGE(0x4000, 0x43ff) AM_WRITE(SMH_RAM) +static ADDRESS_MAP_START( senjyo_sound_map, ADDRESS_SPACE_PROGRAM, 8 ) + AM_RANGE(0x0000, 0x3fff) AM_ROM + AM_RANGE(0x4000, 0x43ff) AM_RAM AM_RANGE(0x8000, 0x8000) AM_DEVWRITE("sn1", sn76496_w) AM_RANGE(0x9000, 0x9000) AM_DEVWRITE("sn2", sn76496_w) AM_RANGE(0xa000, 0xa000) AM_DEVWRITE("sn3", sn76496_w) @@ -186,6 +158,12 @@ static ADDRESS_MAP_START( sound_writemem, ADDRESS_SPACE_PROGRAM, 8 ) #endif ADDRESS_MAP_END +static ADDRESS_MAP_START( senjyo_sound_io_map, ADDRESS_SPACE_IO, 8 ) + ADDRESS_MAP_GLOBAL_MASK(0xff) + AM_RANGE(0x00, 0x03) AM_DEVREADWRITE("z80pio", pio_r, pio_w) + AM_RANGE(0x08, 0x0b) AM_DEVREADWRITE("z80ctc", z80ctc_r, z80ctc_w) +ADDRESS_MAP_END + /* For the bootleg */ /* are scroll registers 1+2 linked on the bootleg?, only one copy is written */ @@ -201,46 +179,41 @@ static WRITE8_HANDLER(starforb_scrollx2) senjyo_scrollx1[offset] = data; } - -static ADDRESS_MAP_START( starforb_writemem, ADDRESS_SPACE_PROGRAM, 8 ) - AM_RANGE(0x0000, 0x7fff) AM_WRITE(SMH_ROM) - AM_RANGE(0x8000, 0x8fff) AM_WRITE(SMH_RAM) - AM_RANGE(0x9000, 0x93ff) AM_WRITE(senjyo_fgvideoram_w) AM_BASE(&senjyo_fgvideoram) - AM_RANGE(0x9400, 0x97ff) AM_WRITE(senjyo_fgcolorram_w) AM_BASE(&senjyo_fgcolorram) - AM_RANGE(0x9800, 0x987f) AM_WRITE(SMH_RAM) AM_BASE(&spriteram) AM_SIZE(&spriteram_size) - AM_RANGE(0x9c00, 0x9dff) AM_WRITE(paletteram_IIBBGGRR_w) AM_BASE(&paletteram) - +static ADDRESS_MAP_START( starforb_map, ADDRESS_SPACE_PROGRAM, 8 ) + AM_RANGE(0x0000, 0x7fff) AM_ROM + AM_RANGE(0x8000, 0x8fff) AM_RAM + AM_RANGE(0x9000, 0x93ff) AM_RAM_WRITE(senjyo_fgvideoram_w) AM_BASE(&senjyo_fgvideoram) + AM_RANGE(0x9400, 0x97ff) AM_RAM_WRITE(senjyo_fgcolorram_w) AM_BASE(&senjyo_fgcolorram) + AM_RANGE(0x9800, 0x987f) AM_RAM AM_BASE(&spriteram) AM_SIZE(&spriteram_size) + AM_RANGE(0x9c00, 0x9dff) AM_RAM_WRITE(paletteram_IIBBGGRR_w) AM_BASE(&paletteram) /* The format / use of the ram here is different on the bootleg */ - AM_RANGE(0x9e20, 0x9e21) AM_WRITE(SMH_RAM) AM_BASE(&senjyo_scrolly3) - AM_RANGE(0x9e25, 0x9e25) AM_WRITE(SMH_RAM) AM_BASE(&senjyo_scrollx3) - AM_RANGE(0x9e30, 0x9e31) AM_WRITE(starforb_scrolly2) AM_BASE(&senjyo_scrolly2) // ok - AM_RANGE(0x9e35, 0x9e35) AM_WRITE(starforb_scrollx2) AM_BASE(&senjyo_scrollx2) // ok - AM_RANGE(0x9e00, 0x9e3f) AM_WRITE(SMH_RAM) + AM_RANGE(0x9e20, 0x9e21) AM_RAM AM_BASE(&senjyo_scrolly3) + AM_RANGE(0x9e25, 0x9e25) AM_RAM AM_BASE(&senjyo_scrollx3) + AM_RANGE(0x9e30, 0x9e31) AM_RAM_WRITE(starforb_scrolly2) AM_BASE(&senjyo_scrolly2) // ok + AM_RANGE(0x9e35, 0x9e35) AM_RAM_WRITE(starforb_scrollx2) AM_BASE(&senjyo_scrollx2) // ok + AM_RANGE(0x9e00, 0x9e3f) AM_RAM - AM_RANGE(0xa000, 0xa7ff) AM_WRITE(senjyo_bg3videoram_w) AM_BASE(&senjyo_bg3videoram) - AM_RANGE(0xa800, 0xafff) AM_WRITE(senjyo_bg2videoram_w) AM_BASE(&senjyo_bg2videoram) - AM_RANGE(0xb000, 0xb7ff) AM_WRITE(senjyo_bg1videoram_w) AM_BASE(&senjyo_bg1videoram) - AM_RANGE(0xb800, 0xbbff) AM_WRITE(SMH_RAM) AM_BASE(&senjyo_radarram) - AM_RANGE(0xd000, 0xd000) AM_WRITE(flip_screen_w) - AM_RANGE(0xd004, 0xd004) AM_DEVWRITE("z80pio", z80pio_p_w) + AM_RANGE(0xa000, 0xa7ff) AM_RAM_WRITE(senjyo_bg3videoram_w) AM_BASE(&senjyo_bg3videoram) + AM_RANGE(0xa800, 0xafff) AM_RAM_WRITE(senjyo_bg2videoram_w) AM_BASE(&senjyo_bg2videoram) + AM_RANGE(0xb000, 0xb7ff) AM_RAM_WRITE(senjyo_bg1videoram_w) AM_BASE(&senjyo_bg1videoram) + AM_RANGE(0xb800, 0xbbff) AM_RAM AM_BASE(&senjyo_radarram) + AM_RANGE(0xd000, 0xd000) AM_READ_PORT("P1") AM_WRITE(flip_screen_w) + AM_RANGE(0xd001, 0xd001) AM_READ_PORT("P2") + AM_RANGE(0xd002, 0xd002) AM_READ_PORT("SYSTEM") + AM_RANGE(0xd004, 0xd004) AM_READ_PORT("DSW1") AM_DEVWRITE("z80pio", z80pio_p_w) + AM_RANGE(0xd005, 0xd005) AM_READ_PORT("DSW2") /* these aren't used / written, left here to make sure memory is allocated */ - AM_RANGE(0xfe00, 0xfe1f) AM_WRITE(SMH_RAM) AM_BASE(&senjyo_fgscroll) - AM_RANGE(0xfe27, 0xfe27) AM_WRITE(senjyo_bgstripes_w) AM_BASE(&senjyo_bgstripesram) /* controls width of background stripes */ - AM_RANGE(0xfe28, 0xfe29) AM_WRITE(SMH_RAM) AM_BASE(&senjyo_scrolly1) - AM_RANGE(0xfe2d, 0xfe2d) AM_WRITE(SMH_RAM) AM_BASE(&senjyo_scrollx1) + AM_RANGE(0xfe00, 0xfe1f) AM_RAM AM_BASE(&senjyo_fgscroll) + AM_RANGE(0xfe27, 0xfe27) AM_RAM_WRITE(senjyo_bgstripes_w) AM_BASE(&senjyo_bgstripesram) /* controls width of background stripes */ + AM_RANGE(0xfe28, 0xfe29) AM_RAM AM_BASE(&senjyo_scrolly1) + AM_RANGE(0xfe2d, 0xfe2d) AM_RAM AM_BASE(&senjyo_scrollx1) ADDRESS_MAP_END -static ADDRESS_MAP_START( starforb_sound_readmem, ADDRESS_SPACE_PROGRAM, 8 ) - AM_RANGE(0x0000, 0x3fff) AM_READ(SMH_ROM) - AM_RANGE(0x4000, 0x43ff) AM_READ(SMH_RAM) - AM_RANGE(0xf000, 0xffff) AM_READ(SMH_RAM) -ADDRESS_MAP_END - -static ADDRESS_MAP_START( starforb_sound_writemem, ADDRESS_SPACE_PROGRAM, 8 ) - AM_RANGE(0x0000, 0x3fff) AM_WRITE(SMH_ROM) - AM_RANGE(0x4000, 0x43ff) AM_WRITE(SMH_RAM) +static ADDRESS_MAP_START( starforb_sound_map, ADDRESS_SPACE_PROGRAM, 8 ) + AM_RANGE(0x0000, 0x3fff) AM_ROM + AM_RANGE(0x4000, 0x43ff) AM_RAM AM_RANGE(0x8000, 0x8000) AM_DEVWRITE("sn1", sn76496_w) AM_RANGE(0x9000, 0x9000) AM_DEVWRITE("sn2", sn76496_w) AM_RANGE(0xa000, 0xa000) AM_DEVWRITE("sn3", sn76496_w) @@ -249,30 +222,9 @@ static ADDRESS_MAP_START( starforb_sound_writemem, ADDRESS_SPACE_PROGRAM, 8 ) AM_RANGE(0xe000, 0xe000) AM_WRITE(unknown) AM_RANGE(0xf000, 0xf000) AM_WRITE(unknown) #endif - - AM_RANGE(0xf000, 0xffff) AM_WRITE(SMH_RAM) + AM_RANGE(0xf000, 0xffff) AM_RAM ADDRESS_MAP_END -static WRITE8_DEVICE_HANDLER( pio_w ) -{ - if (offset & 1) - z80pio_c_w(device, (offset >> 1) & 1, data); - else - z80pio_d_w(device, (offset >> 1) & 1, data); -} - -static READ8_DEVICE_HANDLER( pio_r ) -{ - return (offset & 1) ? z80pio_c_r(device, (offset >> 1) & 1) : z80pio_d_r(device, (offset >> 1) & 1); -} - -static ADDRESS_MAP_START( sound_io_map, ADDRESS_SPACE_IO, 8 ) - ADDRESS_MAP_GLOBAL_MASK(0xff) - AM_RANGE(0x00, 0x03) AM_DEVREADWRITE("z80pio", pio_r, pio_w) - AM_RANGE(0x08, 0x0b) AM_DEVREADWRITE("z80ctc", z80ctc_r, z80ctc_w) -ADDRESS_MAP_END - - static INPUT_PORTS_START( senjyo ) PORT_START("P1") @@ -596,13 +548,13 @@ static MACHINE_DRIVER_START( senjyo ) /* basic machine hardware */ MDRV_CPU_ADD("maincpu", Z80, 4000000) /* 4 MHz? */ - MDRV_CPU_PROGRAM_MAP(readmem,writemem) + MDRV_CPU_PROGRAM_MAP(senjyo_map,0) MDRV_CPU_VBLANK_INT("screen", senjyo_interrupt) MDRV_CPU_ADD("sub", Z80, 2000000) /* 2 MHz? */ MDRV_CPU_CONFIG(senjyo_daisy_chain) - MDRV_CPU_PROGRAM_MAP(sound_readmem,sound_writemem) - MDRV_CPU_IO_MAP(sound_io_map,0) + MDRV_CPU_PROGRAM_MAP(senjyo_sound_map,0) + MDRV_CPU_IO_MAP(senjyo_sound_io_map,0) MDRV_MACHINE_RESET(senjyo) @@ -646,10 +598,10 @@ static MACHINE_DRIVER_START( starforb ) /* basic machine hardware */ MDRV_IMPORT_FROM(senjyo) MDRV_CPU_MODIFY("maincpu") - MDRV_CPU_PROGRAM_MAP(readmem,starforb_writemem) + MDRV_CPU_PROGRAM_MAP(starforb_map,0) MDRV_CPU_MODIFY("sub") - MDRV_CPU_PROGRAM_MAP(starforb_sound_readmem,starforb_sound_writemem) + MDRV_CPU_PROGRAM_MAP(starforb_sound_map,0) MACHINE_DRIVER_END diff --git a/src/mame/drivers/seta2.c b/src/mame/drivers/seta2.c index 8e4287cff71..9922c6c6809 100644 --- a/src/mame/drivers/seta2.c +++ b/src/mame/drivers/seta2.c @@ -556,34 +556,24 @@ static WRITE16_HANDLER( grdians_lockout_w ) // popmessage("%04X", data & 0xffff); } -static ADDRESS_MAP_START( grdians_readmem, ADDRESS_SPACE_PROGRAM, 16 ) - AM_RANGE(0x000000, 0x1fffff) AM_READ(SMH_ROM ) // ROM - AM_RANGE(0x200000, 0x20ffff) AM_READ(SMH_RAM ) // RAM - AM_RANGE(0x304000, 0x30ffff) AM_READ(SMH_RAM ) // ? seems tile data +static ADDRESS_MAP_START( grdians_map, ADDRESS_SPACE_PROGRAM, 16 ) + AM_RANGE(0x000000, 0x1fffff) AM_ROM // ROM + AM_RANGE(0x200000, 0x20ffff) AM_RAM // RAM + AM_RANGE(0x304000, 0x30ffff) AM_RAM // ? seems tile data AM_RANGE(0x600000, 0x600001) AM_READ_PORT("DSW1") // DSW 1 AM_RANGE(0x600002, 0x600003) AM_READ_PORT("DSW2") // DSW 2 AM_RANGE(0x700000, 0x700001) AM_READ_PORT("P1") // P1 AM_RANGE(0x700002, 0x700003) AM_READ_PORT("P2") // P2 AM_RANGE(0x700004, 0x700005) AM_READ_PORT("SYSTEM") // Coins - AM_RANGE(0x70000c, 0x70000d) AM_READ(watchdog_reset16_r ) // Watchdog - AM_RANGE(0xb00000, 0xb03fff) AM_DEVREAD("x1", seta_sound_word_r ) // Sound - AM_RANGE(0xc00000, 0xc3ffff) AM_READ(SMH_RAM ) // Sprites - AM_RANGE(0xc40000, 0xc4ffff) AM_READ(SMH_RAM ) // Palette - AM_RANGE(0xfffc00, 0xffffff) AM_READ(SMH_RAM ) // TMP68301 Registers -ADDRESS_MAP_END - -static ADDRESS_MAP_START( grdians_writemem, ADDRESS_SPACE_PROGRAM, 16 ) - AM_RANGE(0x000000, 0x1fffff) AM_WRITE(SMH_ROM ) // ROM - AM_RANGE(0x200000, 0x20ffff) AM_WRITE(SMH_RAM ) // RAM - AM_RANGE(0x304000, 0x30ffff) AM_WRITE(SMH_RAM ) // ? seems tile data - AM_RANGE(0x800000, 0x800001) AM_WRITE(grdians_lockout_w ) - AM_RANGE(0xb00000, 0xb03fff) AM_DEVWRITE("x1", seta_sound_word_w ) // Sound - AM_RANGE(0xc00000, 0xc3ffff) AM_WRITE(SMH_RAM) AM_BASE(&spriteram16) AM_SIZE(&spriteram_size ) // Sprites - AM_RANGE(0xc40000, 0xc4ffff) AM_WRITE(paletteram16_xRRRRRGGGGGBBBBB_word_w) AM_BASE(&paletteram16 ) // Palette - AM_RANGE(0xc50000, 0xc5ffff) AM_WRITE(SMH_RAM ) // cleared - AM_RANGE(0xc60000, 0xc6003f) AM_WRITE(seta2_vregs_w) AM_BASE(&seta2_vregs ) // Video Registers - AM_RANGE(0xe00010, 0xe0001f) AM_WRITE(seta2_sound_bank_w ) // Samples Banks - AM_RANGE(0xfffc00, 0xffffff) AM_WRITE(tmp68301_regs_w) AM_BASE(&tmp68301_regs ) // TMP68301 Registers + AM_RANGE(0x70000c, 0x70000d) AM_READ(watchdog_reset16_r) // Watchdog + AM_RANGE(0x800000, 0x800001) AM_WRITE(grdians_lockout_w) + AM_RANGE(0xb00000, 0xb03fff) AM_DEVREADWRITE("x1", seta_sound_word_r,seta_sound_word_w) // Sound + AM_RANGE(0xc00000, 0xc3ffff) AM_RAM AM_BASE(&spriteram16) AM_SIZE(&spriteram_size) // Sprites + AM_RANGE(0xc40000, 0xc4ffff) AM_RAM_WRITE(paletteram16_xRRRRRGGGGGBBBBB_word_w) AM_BASE(&paletteram16) // Palette + AM_RANGE(0xc50000, 0xc5ffff) AM_RAM // cleared + AM_RANGE(0xc60000, 0xc6003f) AM_WRITE(seta2_vregs_w) AM_BASE(&seta2_vregs) // Video Registers + AM_RANGE(0xe00010, 0xe0001f) AM_WRITE(seta2_sound_bank_w) // Samples Banks + AM_RANGE(0xfffc00, 0xffffff) AM_RAM_WRITE(tmp68301_regs_w) AM_BASE(&tmp68301_regs) // TMP68301 Registers ADDRESS_MAP_END /*************************************************************************** @@ -626,10 +616,10 @@ static WRITE16_HANDLER( gundamex_eeprom_w ) eeprom_set_cs_line((data & 0x4) ? CLEAR_LINE : ASSERT_LINE); } -static ADDRESS_MAP_START( gundamex_readmem, ADDRESS_SPACE_PROGRAM, 16 ) - AM_RANGE(0x000000, 0x1fffff) AM_READ(SMH_ROM ) // ROM - AM_RANGE(0x200000, 0x20ffff) AM_READ(SMH_RAM ) // RAM - AM_RANGE(0x500000, 0x57ffff) AM_READ(SMH_ROM ) // ROM +static ADDRESS_MAP_START( gundamex_map, ADDRESS_SPACE_PROGRAM, 16 ) + AM_RANGE(0x000000, 0x1fffff) AM_ROM // ROM + AM_RANGE(0x200000, 0x20ffff) AM_RAM // RAM + AM_RANGE(0x500000, 0x57ffff) AM_ROM // ROM AM_RANGE(0x600000, 0x600001) AM_READ_PORT("DSW1") // DSW 1 AM_RANGE(0x600002, 0x600003) AM_READ_PORT("DSW2") // DSW 2 AM_RANGE(0x700000, 0x700001) AM_READ_PORT("P1") // P1 @@ -637,25 +627,18 @@ static ADDRESS_MAP_START( gundamex_readmem, ADDRESS_SPACE_PROGRAM, 16 ) AM_RANGE(0x700004, 0x700005) AM_READ_PORT("SYSTEM") // Coins AM_RANGE(0x700008, 0x700009) AM_READ_PORT("IN0") // P1 AM_RANGE(0x70000a, 0x70000b) AM_READ_PORT("IN1") // P2 - AM_RANGE(0xb00000, 0xb03fff) AM_DEVREAD("x1", seta_sound_word_r ) // Sound - AM_RANGE(0xfffd0a, 0xfffd0b) AM_READ(gundamex_eeprom_r ) // parallel data register + AM_RANGE(0x70000c, 0x70000d) AM_WRITE(watchdog_reset16_w) + AM_RANGE(0x800000, 0x800001) AM_WRITE(grdians_lockout_w) + AM_RANGE(0xb00000, 0xb03fff) AM_DEVREADWRITE("x1", seta_sound_word_r,seta_sound_word_w) // Sound + AM_RANGE(0xc00000, 0xc3ffff) AM_RAM AM_BASE(&spriteram16) AM_SIZE(&spriteram_size) // Sprites + AM_RANGE(0xc40000, 0xc4ffff) AM_RAM_WRITE(paletteram16_xRRRRRGGGGGBBBBB_word_w) AM_BASE(&paletteram16 ) // Palette + AM_RANGE(0xc50000, 0xc5ffff) AM_RAM // cleared + AM_RANGE(0xc60000, 0xc6003f) AM_WRITE(seta2_vregs_w) AM_BASE(&seta2_vregs) // Video Registers + AM_RANGE(0xe00010, 0xe0001f) AM_WRITE(seta2_sound_bank_w) // Samples Banks + AM_RANGE(0xfffd0a, 0xfffd0b) AM_READWRITE(gundamex_eeprom_r,gundamex_eeprom_w) // parallel data register + AM_RANGE(0xfffc00, 0xffffff) AM_RAM_WRITE(tmp68301_regs_w) AM_BASE(&tmp68301_regs) // TMP68301 Registers ADDRESS_MAP_END -static ADDRESS_MAP_START( gundamex_writemem, ADDRESS_SPACE_PROGRAM, 16 ) - AM_RANGE(0x000000, 0x1fffff) AM_WRITE(SMH_ROM ) // ROM - AM_RANGE(0x200000, 0x20ffff) AM_WRITE(SMH_RAM ) // RAM - AM_RANGE(0x500000, 0x57ffff) AM_WRITE(SMH_ROM ) // ROM - AM_RANGE(0x70000c, 0x70000d) AM_WRITE(watchdog_reset16_w ) - AM_RANGE(0x800000, 0x800001) AM_WRITE(grdians_lockout_w ) - AM_RANGE(0xb00000, 0xb03fff) AM_DEVWRITE("x1", seta_sound_word_w ) // Sound - AM_RANGE(0xc00000, 0xc3ffff) AM_WRITE(SMH_RAM) AM_BASE(&spriteram16) AM_SIZE(&spriteram_size ) // Sprites - AM_RANGE(0xc40000, 0xc4ffff) AM_WRITE(paletteram16_xRRRRRGGGGGBBBBB_word_w) AM_BASE(&paletteram16 ) // Palette - AM_RANGE(0xc50000, 0xc5ffff) AM_WRITE(SMH_RAM ) // cleared - AM_RANGE(0xc60000, 0xc6003f) AM_WRITE(seta2_vregs_w) AM_BASE(&seta2_vregs ) // Video Registers - AM_RANGE(0xe00010, 0xe0001f) AM_WRITE(seta2_sound_bank_w ) // Samples Banks - AM_RANGE(0xfffd0a, 0xfffd0b) AM_WRITE(gundamex_eeprom_w ) // parallel data register - AM_RANGE(0xfffc00, 0xffffff) AM_WRITE(tmp68301_regs_w) AM_BASE(&tmp68301_regs ) // TMP68301 Registers -ADDRESS_MAP_END /*************************************************************************** Wakakusamonogatari Mahjong Yonshimai @@ -667,47 +650,51 @@ static READ16_HANDLER( mj4simai_p1_r ) { switch (keyboard_row) { - case 0x01: return input_port_read(space->machine, "KEY0"); - case 0x02: return input_port_read(space->machine, "KEY1"); - case 0x04: return input_port_read(space->machine, "KEY2"); - case 0x08: return input_port_read(space->machine, "KEY3"); - case 0x10: return input_port_read(space->machine, "KEY4"); + case 0x01: return input_port_read(space->machine, "P1_KEY0"); + case 0x02: return input_port_read(space->machine, "P1_KEY1"); + case 0x04: return input_port_read(space->machine, "P1_KEY2"); + case 0x08: return input_port_read(space->machine, "P1_KEY3"); + case 0x10: return input_port_read(space->machine, "P1_KEY4"); default: logerror("p1_r with keyboard_row = %02x\n",keyboard_row); return 0xffff; } } +static READ16_HANDLER( mj4simai_p2_r ) +{ + switch (keyboard_row) + { + case 0x01: return input_port_read(space->machine, "P2_KEY0"); + case 0x02: return input_port_read(space->machine, "P2_KEY1"); + case 0x04: return input_port_read(space->machine, "P2_KEY2"); + case 0x08: return input_port_read(space->machine, "P2_KEY3"); + case 0x10: return input_port_read(space->machine, "P2_KEY4"); + default: logerror("p2_r with keyboard_row = %02x\n",keyboard_row); return 0xffff; + } +} + static WRITE16_HANDLER( mj4simai_keyboard_w ) { if (ACCESSING_BITS_0_7) keyboard_row = data & 0xff; } -static ADDRESS_MAP_START( mj4simai_readmem, ADDRESS_SPACE_PROGRAM, 16 ) - AM_RANGE(0x000000, 0x1fffff) AM_READ(SMH_ROM ) // ROM - AM_RANGE(0x200000, 0x20ffff) AM_READ(SMH_RAM ) // RAM - AM_RANGE(0x600000, 0x600001) AM_READ(mj4simai_p1_r ) // P1 - AM_RANGE(0x600002, 0x600003) AM_READ(mj4simai_p1_r ) // P2, but I'm using P1 again - AM_RANGE(0x600006, 0x600007) AM_READ(watchdog_reset16_r ) // Watchdog +static ADDRESS_MAP_START( mj4simai_map, ADDRESS_SPACE_PROGRAM, 16 ) + AM_RANGE(0x000000, 0x1fffff) AM_ROM // ROM + AM_RANGE(0x200000, 0x20ffff) AM_RAM // RAM + AM_RANGE(0x600000, 0x600001) AM_READ(mj4simai_p1_r) // P1 + AM_RANGE(0x600002, 0x600003) AM_READ(mj4simai_p2_r) // P2 + AM_RANGE(0x600004, 0x600005) AM_WRITE(mj4simai_keyboard_w) // select keyboard row to read + AM_RANGE(0x600006, 0x600007) AM_READ(watchdog_reset16_r) // Watchdog AM_RANGE(0x600100, 0x600101) AM_READ_PORT("SYSTEM") // + AM_RANGE(0x600200, 0x600201) AM_WRITENOP // Leds? Coins? AM_RANGE(0x600300, 0x600301) AM_READ_PORT("DSW1") // DSW 1 AM_RANGE(0x600302, 0x600303) AM_READ_PORT("DSW2") // DSW 2 - AM_RANGE(0xb00000, 0xb03fff) AM_DEVREAD("x1", seta_sound_word_r ) // Sound - AM_RANGE(0xc00000, 0xc3ffff) AM_READ(SMH_RAM ) // Sprites - AM_RANGE(0xc40000, 0xc4ffff) AM_READ(SMH_RAM ) // Palette - AM_RANGE(0xfffc00, 0xffffff) AM_READ(SMH_RAM ) // TMP68301 Registers -ADDRESS_MAP_END - -static ADDRESS_MAP_START( mj4simai_writemem, ADDRESS_SPACE_PROGRAM, 16 ) - AM_RANGE(0x000000, 0x1fffff) AM_WRITE(SMH_ROM ) // ROM - AM_RANGE(0x200000, 0x20ffff) AM_WRITE(SMH_RAM ) // RAM - AM_RANGE(0x600004, 0x600005) AM_WRITE(mj4simai_keyboard_w ) // select keyboard row to read - AM_RANGE(0x600200, 0x600201) AM_WRITE(SMH_NOP ) // Leds? Coins? - AM_RANGE(0x600300, 0x60030f) AM_WRITE(seta2_sound_bank_w ) // Samples Banks - AM_RANGE(0xb00000, 0xb03fff) AM_DEVWRITE("x1", seta_sound_word_w ) // Sound - AM_RANGE(0xc00000, 0xc3ffff) AM_WRITE(SMH_RAM) AM_BASE(&spriteram16) AM_SIZE(&spriteram_size ) // Sprites - AM_RANGE(0xc40000, 0xc4ffff) AM_WRITE(paletteram16_xRRRRRGGGGGBBBBB_word_w) AM_BASE(&paletteram16 ) // Palette - AM_RANGE(0xc60000, 0xc6003f) AM_WRITE(seta2_vregs_w) AM_BASE(&seta2_vregs ) // Video Registers - AM_RANGE(0xfffc00, 0xffffff) AM_WRITE(tmp68301_regs_w) AM_BASE(&tmp68301_regs ) // TMP68301 Registers + AM_RANGE(0x600300, 0x60030f) AM_WRITE(seta2_sound_bank_w) // Samples Banks + AM_RANGE(0xb00000, 0xb03fff) AM_DEVREADWRITE("x1", seta_sound_word_r,seta_sound_word_w) // Sound + AM_RANGE(0xc00000, 0xc3ffff) AM_RAM AM_BASE(&spriteram16) AM_SIZE(&spriteram_size) // Sprites + AM_RANGE(0xc40000, 0xc4ffff) AM_RAM_WRITE(paletteram16_xRRRRRGGGGGBBBBB_word_w) AM_BASE(&paletteram16) // Palette + AM_RANGE(0xc60000, 0xc6003f) AM_WRITE(seta2_vregs_w) AM_BASE(&seta2_vregs) // Video Registers + AM_RANGE(0xfffc00, 0xffffff) AM_RAM_WRITE(tmp68301_regs_w) AM_BASE(&tmp68301_regs) // TMP68301 Registers ADDRESS_MAP_END @@ -715,31 +702,22 @@ ADDRESS_MAP_END Kosodate Quiz My Angel ***************************************************************************/ -static ADDRESS_MAP_START( myangel_readmem, ADDRESS_SPACE_PROGRAM, 16 ) - AM_RANGE(0x000000, 0x1fffff) AM_READ(SMH_ROM ) // ROM - AM_RANGE(0x200000, 0x20ffff) AM_READ(SMH_RAM ) // RAM +static ADDRESS_MAP_START( myangel_map, ADDRESS_SPACE_PROGRAM, 16 ) + AM_RANGE(0x000000, 0x1fffff) AM_ROM // ROM + AM_RANGE(0x200000, 0x20ffff) AM_RAM // RAM AM_RANGE(0x700000, 0x700001) AM_READ_PORT("P1") // P1 AM_RANGE(0x700002, 0x700003) AM_READ_PORT("P2") // P2 AM_RANGE(0x700004, 0x700005) AM_READ_PORT("SYSTEM") // Coins - AM_RANGE(0x700006, 0x700007) AM_READ(watchdog_reset16_r ) // Watchdog + AM_RANGE(0x700006, 0x700007) AM_READ(watchdog_reset16_r) // Watchdog + AM_RANGE(0x700200, 0x700201) AM_WRITENOP // Leds? Coins? AM_RANGE(0x700300, 0x700301) AM_READ_PORT("DSW1") // DSW 1 AM_RANGE(0x700302, 0x700303) AM_READ_PORT("DSW2") // DSW 2 - AM_RANGE(0xb00000, 0xb03fff) AM_DEVREAD("x1", seta_sound_word_r ) // Sound - AM_RANGE(0xc00000, 0xc3ffff) AM_READ(SMH_RAM ) // Sprites - AM_RANGE(0xc40000, 0xc4ffff) AM_READ(SMH_RAM ) // Palette - AM_RANGE(0xfffc00, 0xffffff) AM_READ(SMH_RAM ) // TMP68301 Registers -ADDRESS_MAP_END - -static ADDRESS_MAP_START( myangel_writemem, ADDRESS_SPACE_PROGRAM, 16 ) - AM_RANGE(0x000000, 0x1fffff) AM_WRITE(SMH_ROM ) // ROM - AM_RANGE(0x200000, 0x20ffff) AM_WRITE(SMH_RAM ) // RAM - AM_RANGE(0x700200, 0x700201) AM_WRITE(SMH_NOP ) // Leds? Coins? - AM_RANGE(0x700310, 0x70031f) AM_WRITE(seta2_sound_bank_w ) // Samples Banks - AM_RANGE(0xb00000, 0xb03fff) AM_DEVWRITE("x1", seta_sound_word_w ) // Sound - AM_RANGE(0xc00000, 0xc3ffff) AM_WRITE(SMH_RAM) AM_BASE(&spriteram16) AM_SIZE(&spriteram_size ) // Sprites - AM_RANGE(0xc40000, 0xc4ffff) AM_WRITE(paletteram16_xRRRRRGGGGGBBBBB_word_w) AM_BASE(&paletteram16 ) // Palette - AM_RANGE(0xc60000, 0xc6003f) AM_WRITE(seta2_vregs_w) AM_BASE(&seta2_vregs ) // Video Registers - AM_RANGE(0xfffc00, 0xffffff) AM_WRITE(tmp68301_regs_w) AM_BASE(&tmp68301_regs ) // TMP68301 Registers + AM_RANGE(0x700310, 0x70031f) AM_WRITE(seta2_sound_bank_w) // Samples Banks + AM_RANGE(0xb00000, 0xb03fff) AM_DEVREADWRITE("x1", seta_sound_word_r,seta_sound_word_w) // Sound + AM_RANGE(0xc00000, 0xc3ffff) AM_RAM AM_BASE(&spriteram16) AM_SIZE(&spriteram_size) // Sprites + AM_RANGE(0xc40000, 0xc4ffff) AM_RAM_WRITE(paletteram16_xRRRRRGGGGGBBBBB_word_w) AM_BASE(&paletteram16) // Palette + AM_RANGE(0xc60000, 0xc6003f) AM_WRITE(seta2_vregs_w) AM_BASE(&seta2_vregs) // Video Registers + AM_RANGE(0xfffc00, 0xffffff) AM_RAM_WRITE(tmp68301_regs_w) AM_BASE(&tmp68301_regs) // TMP68301 Registers ADDRESS_MAP_END @@ -747,31 +725,22 @@ ADDRESS_MAP_END Kosodate Quiz My Angel 2 ***************************************************************************/ -static ADDRESS_MAP_START( myangel2_readmem, ADDRESS_SPACE_PROGRAM, 16 ) - AM_RANGE(0x000000, 0x1fffff) AM_READ(SMH_ROM ) // ROM - AM_RANGE(0x200000, 0x20ffff) AM_READ(SMH_RAM ) // RAM +static ADDRESS_MAP_START( myangel2_map, ADDRESS_SPACE_PROGRAM, 16 ) + AM_RANGE(0x000000, 0x1fffff) AM_ROM // ROM + AM_RANGE(0x200000, 0x20ffff) AM_RAM // RAM AM_RANGE(0x600000, 0x600001) AM_READ_PORT("P1") // P1 AM_RANGE(0x600002, 0x600003) AM_READ_PORT("P2") // P2 AM_RANGE(0x600004, 0x600005) AM_READ_PORT("SYSTEM") // Coins - AM_RANGE(0x600006, 0x600007) AM_READ(watchdog_reset16_r ) // Watchdog + AM_RANGE(0x600006, 0x600007) AM_READ(watchdog_reset16_r) // Watchdog + AM_RANGE(0x600200, 0x600201) AM_WRITENOP // Leds? Coins? AM_RANGE(0x600300, 0x600301) AM_READ_PORT("DSW1") // DSW 1 AM_RANGE(0x600302, 0x600303) AM_READ_PORT("DSW2") // DSW 2 - AM_RANGE(0xb00000, 0xb03fff) AM_DEVREAD("x1", seta_sound_word_r ) // Sound - AM_RANGE(0xd00000, 0xd3ffff) AM_READ(SMH_RAM ) // Sprites - AM_RANGE(0xd40000, 0xd4ffff) AM_READ(SMH_RAM ) // Palette - AM_RANGE(0xfffc00, 0xffffff) AM_READ(SMH_RAM ) // TMP68301 Registers -ADDRESS_MAP_END - -static ADDRESS_MAP_START( myangel2_writemem, ADDRESS_SPACE_PROGRAM, 16 ) - AM_RANGE(0x000000, 0x1fffff) AM_WRITE(SMH_ROM ) // ROM - AM_RANGE(0x200000, 0x20ffff) AM_WRITE(SMH_RAM ) // RAM - AM_RANGE(0x600200, 0x600201) AM_WRITE(SMH_NOP ) // Leds? Coins? - AM_RANGE(0x600300, 0x60030f) AM_WRITE(seta2_sound_bank_w ) // Samples Banks - AM_RANGE(0xb00000, 0xb03fff) AM_DEVWRITE("x1", seta_sound_word_w ) // Sound - AM_RANGE(0xd00000, 0xd3ffff) AM_WRITE(SMH_RAM) AM_BASE(&spriteram16) AM_SIZE(&spriteram_size ) // Sprites - AM_RANGE(0xd40000, 0xd4ffff) AM_WRITE(paletteram16_xRRRRRGGGGGBBBBB_word_w) AM_BASE(&paletteram16 ) // Palette - AM_RANGE(0xd60000, 0xd6003f) AM_WRITE(seta2_vregs_w) AM_BASE(&seta2_vregs ) // Video Registers - AM_RANGE(0xfffc00, 0xffffff) AM_WRITE(tmp68301_regs_w) AM_BASE(&tmp68301_regs ) // TMP68301 Registers + AM_RANGE(0x600300, 0x60030f) AM_WRITE(seta2_sound_bank_w) // Samples Banks + AM_RANGE(0xb00000, 0xb03fff) AM_DEVREADWRITE("x1", seta_sound_word_r,seta_sound_word_w) // Sound + AM_RANGE(0xd00000, 0xd3ffff) AM_RAM AM_BASE(&spriteram16) AM_SIZE(&spriteram_size) // Sprites + AM_RANGE(0xd40000, 0xd4ffff) AM_RAM_WRITE(paletteram16_xRRRRRGGGGGBBBBB_word_w) AM_BASE(&paletteram16) // Palette + AM_RANGE(0xd60000, 0xd6003f) AM_WRITE(seta2_vregs_w) AM_BASE(&seta2_vregs ) // Video Registers + AM_RANGE(0xfffc00, 0xffffff) AM_RAM_WRITE(tmp68301_regs_w) AM_BASE(&tmp68301_regs) // TMP68301 Registers ADDRESS_MAP_END @@ -801,32 +770,22 @@ static WRITE16_HANDLER( pzlbowl_coin_counter_w ) } } -static ADDRESS_MAP_START( pzlbowl_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(0x400300, 0x400301) AM_READ_PORT("DSW1") // DSW 1 - AM_RANGE(0x400302, 0x400303) AM_READ_PORT("DSW2") // DSW 2 - AM_RANGE(0x500000, 0x500001) AM_READ_PORT("P1") // P1 - AM_RANGE(0x500002, 0x500003) AM_READ_PORT("P2") // P2 - AM_RANGE(0x500004, 0x500005) AM_READ(pzlbowl_coins_r ) // Coins + Protection? - AM_RANGE(0x500006, 0x500007) AM_READ(watchdog_reset16_r ) // Watchdog - AM_RANGE(0x700000, 0x700001) AM_READ(pzlbowl_protection_r ) // Protection - AM_RANGE(0x800000, 0x83ffff) AM_READ(SMH_RAM ) // Sprites - AM_RANGE(0x840000, 0x84ffff) AM_READ(SMH_RAM ) // Palette - AM_RANGE(0x900000, 0x903fff) AM_DEVREAD("x1", seta_sound_word_r ) // Sound - AM_RANGE(0xfffc00, 0xffffff) AM_READ(SMH_RAM ) // TMP68301 Registers -ADDRESS_MAP_END - -static ADDRESS_MAP_START( pzlbowl_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(0x400300, 0x40030f) AM_WRITE(seta2_sound_bank_w ) // Samples Banks - AM_RANGE(0x500004, 0x500005) AM_WRITE(pzlbowl_coin_counter_w ) // Coins Counter - AM_RANGE(0x800000, 0x83ffff) AM_WRITE(SMH_RAM) AM_BASE(&spriteram16) AM_SIZE(&spriteram_size ) // Sprites - AM_RANGE(0x840000, 0x84ffff) AM_WRITE(paletteram16_xRRRRRGGGGGBBBBB_word_w) AM_BASE(&paletteram16 ) // Palette - AM_RANGE(0x860000, 0x86003f) AM_WRITE(seta2_vregs_w) AM_BASE(&seta2_vregs ) // Video Registers - AM_RANGE(0x900000, 0x903fff) AM_DEVWRITE("x1", seta_sound_word_w ) // Sound - AM_RANGE(0xfffc00, 0xffffff) AM_WRITE(tmp68301_regs_w) AM_BASE(&tmp68301_regs ) // TMP68301 Registers +static ADDRESS_MAP_START( pzlbowl_map, ADDRESS_SPACE_PROGRAM, 16 ) + AM_RANGE(0x000000, 0x0fffff) AM_ROM // ROM + AM_RANGE(0x200000, 0x20ffff) AM_RAM // RAM + AM_RANGE(0x400300, 0x400301) AM_READ_PORT("DSW1") // DSW 1 + AM_RANGE(0x400302, 0x400303) AM_READ_PORT("DSW2") // DSW 2 + AM_RANGE(0x400300, 0x40030f) AM_WRITE(seta2_sound_bank_w) // Samples Banks + AM_RANGE(0x500000, 0x500001) AM_READ_PORT("P1") // P1 + AM_RANGE(0x500002, 0x500003) AM_READ_PORT("P2") // P2 + AM_RANGE(0x500004, 0x500005) AM_READWRITE(pzlbowl_coins_r,pzlbowl_coin_counter_w) // Coins + Protection? + AM_RANGE(0x500006, 0x500007) AM_READ(watchdog_reset16_r) // Watchdog + AM_RANGE(0x700000, 0x700001) AM_READ(pzlbowl_protection_r) // Protection + AM_RANGE(0x800000, 0x83ffff) AM_RAM AM_BASE(&spriteram16) AM_SIZE(&spriteram_size) // Sprites + AM_RANGE(0x840000, 0x84ffff) AM_RAM_WRITE(paletteram16_xRRRRRGGGGGBBBBB_word_w) AM_BASE(&paletteram16) // Palette + AM_RANGE(0x860000, 0x86003f) AM_WRITE(seta2_vregs_w) AM_BASE(&seta2_vregs) // Video Registers + AM_RANGE(0x900000, 0x903fff) AM_DEVREADWRITE("x1", seta_sound_word_r,seta_sound_word_w) // Sound + AM_RANGE(0xfffc00, 0xffffff) AM_RAM_WRITE(tmp68301_regs_w) AM_BASE(&tmp68301_regs) // TMP68301 Registers ADDRESS_MAP_END @@ -834,36 +793,24 @@ ADDRESS_MAP_END Penguin Bros ***************************************************************************/ -static ADDRESS_MAP_START( penbros_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, 0x23ffff) AM_READ(SMH_RAM ) // RAM - AM_RANGE(0x300000, 0x30ffff) AM_READ(SMH_RAM ) // RAM +static ADDRESS_MAP_START( penbros_map, ADDRESS_SPACE_PROGRAM, 16 ) + AM_RANGE(0x000000, 0x0fffff) AM_ROM // ROM + AM_RANGE(0x200000, 0x20ffff) AM_RAM // RAM + AM_RANGE(0x210000, 0x23ffff) AM_RAM // RAM + AM_RANGE(0x300000, 0x30ffff) AM_RAM // RAM AM_RANGE(0x500300, 0x500301) AM_READ_PORT("DSW1") // DSW 1 AM_RANGE(0x500302, 0x500303) AM_READ_PORT("DSW2") // DSW 2 + AM_RANGE(0x500300, 0x50030f) AM_WRITE(seta2_sound_bank_w) // Samples Banks AM_RANGE(0x600000, 0x600001) AM_READ_PORT("P1") // P1 AM_RANGE(0x600002, 0x600003) AM_READ_PORT("P2") // P2 AM_RANGE(0x600004, 0x600005) AM_READ_PORT("SYSTEM") // Coins - AM_RANGE(0x600006, 0x600007) AM_READ(watchdog_reset16_r ) // Watchdog -// AM_RANGE(0x700000, 0x700001) AM_READ(pzlbowl_protection_r ) // Protection - AM_RANGE(0xb00000, 0xb3ffff) AM_READ(SMH_RAM ) // Sprites - AM_RANGE(0xb40000, 0xb4ffff) AM_READ(SMH_RAM ) // Palette - AM_RANGE(0xa00000, 0xa03fff) AM_DEVREAD("x1", seta_sound_word_r ) // Sound - AM_RANGE(0xfffc00, 0xffffff) AM_READ(SMH_RAM ) // TMP68301 Registers -ADDRESS_MAP_END - -static ADDRESS_MAP_START( penbros_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(0x300000, 0x30ffff) AM_WRITE(SMH_RAM ) // RAM - AM_RANGE(0x210000, 0x23ffff) AM_WRITE(SMH_RAM ) // RAM - AM_RANGE(0x500300, 0x50030f) AM_WRITE(seta2_sound_bank_w ) // Samples Banks - AM_RANGE(0x600004, 0x600005) AM_WRITE(pzlbowl_coin_counter_w ) // Coins Counter - AM_RANGE(0xb00000, 0xb3ffff) AM_WRITE(SMH_RAM) AM_BASE(&spriteram16) AM_SIZE(&spriteram_size ) // Sprites - AM_RANGE(0xb40000, 0xb4ffff) AM_WRITE(paletteram16_xRRRRRGGGGGBBBBB_word_w) AM_BASE(&paletteram16 ) // Palette - AM_RANGE(0xb60000, 0xb6003f) AM_WRITE(seta2_vregs_w) AM_BASE(&seta2_vregs ) // Video Registers - AM_RANGE(0xa00000, 0xa03fff) AM_DEVWRITE("x1", seta_sound_word_w ) // Sound - AM_RANGE(0xfffc00, 0xffffff) AM_WRITE(tmp68301_regs_w) AM_BASE(&tmp68301_regs ) // TMP68301 Registers + AM_RANGE(0x600004, 0x600005) AM_WRITE(pzlbowl_coin_counter_w) // Coins Counter + AM_RANGE(0x600006, 0x600007) AM_READ(watchdog_reset16_r) // Watchdog +// AM_RANGE(0x700000, 0x700001) AM_READ(pzlbowl_protection_r) // Protection + AM_RANGE(0xb00000, 0xb3ffff) AM_RAM AM_BASE(&spriteram16) AM_SIZE(&spriteram_size) // Sprites + AM_RANGE(0xb40000, 0xb4ffff) AM_RAM_WRITE(paletteram16_xRRRRRGGGGGBBBBB_word_w) AM_BASE(&paletteram16) // Palette + AM_RANGE(0xa00000, 0xa03fff) AM_DEVREADWRITE("x1", seta_sound_word_r,seta_sound_word_w) // Sound + AM_RANGE(0xfffc00, 0xffffff) AM_RAM_WRITE(tmp68301_regs_w) AM_BASE(&tmp68301_regs) // TMP68301 Registers ADDRESS_MAP_END @@ -909,7 +856,7 @@ static ADDRESS_MAP_START( samshoot_map, ADDRESS_SPACE_PROGRAM, 16 ) AM_RANGE( 0x900000, 0x903fff ) AM_DEVREADWRITE( "x1", seta_sound_word_r, seta_sound_word_w ) // Sound AM_RANGE( 0xfffd0a, 0xfffd0b ) AM_READ_PORT("DSW2") // parallel data register (DSW 2) - AM_RANGE( 0xfffc00, 0xffffff ) AM_READWRITE( SMH_RAM, tmp68301_regs_w) AM_BASE(&tmp68301_regs ) // TMP68301 Registers + AM_RANGE( 0xfffc00, 0xffffff ) AM_RAM_WRITE( tmp68301_regs_w) AM_BASE(&tmp68301_regs ) // TMP68301 Registers ADDRESS_MAP_END @@ -1439,7 +1386,7 @@ static INPUT_PORTS_START( mj4simai ) PORT_BIT( 0x0080, IP_ACTIVE_LOW, IPT_UNKNOWN ) PORT_BIT( 0xff00, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_START("KEY0") // $600000(0) + PORT_START("P1_KEY0") // $600000(0) PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_MAHJONG_A ) PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_MAHJONG_E ) PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_MAHJONG_I ) @@ -1448,7 +1395,7 @@ static INPUT_PORTS_START( mj4simai ) PORT_BIT( 0x0020, IP_ACTIVE_LOW, IPT_START1 ) PORT_BIT( 0xffc0, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_START("KEY1") // $600000(1) + PORT_START("P1_KEY1") // $600000(1) PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_MAHJONG_B ) PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_MAHJONG_F ) PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_MAHJONG_J ) @@ -1457,7 +1404,7 @@ static INPUT_PORTS_START( mj4simai ) PORT_BIT( 0x0020, IP_ACTIVE_LOW, IPT_MAHJONG_BET ) PORT_BIT( 0xffc0, IP_ACTIVE_LOW, IPT_UNKNOWN) - PORT_START("KEY2") // $600000(2) + PORT_START("P1_KEY2") // $600000(2) PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_MAHJONG_C ) PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_MAHJONG_G ) PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_MAHJONG_K ) @@ -1465,14 +1412,14 @@ static INPUT_PORTS_START( mj4simai ) PORT_BIT( 0x0010, IP_ACTIVE_LOW, IPT_MAHJONG_RON ) PORT_BIT( 0xffe0, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_START("KEY3") // $600000(3) + PORT_START("P1_KEY3") // $600000(3) PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_MAHJONG_D ) PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_MAHJONG_H ) PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_MAHJONG_L ) PORT_BIT( 0x0008, IP_ACTIVE_LOW, IPT_MAHJONG_PON ) PORT_BIT( 0xfff0, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_START("KEY4") // $600000(4) + PORT_START("P1_KEY4") // $600000(4) PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_MAHJONG_LAST_CHANCE ) PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_MAHJONG_SCORE ) PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_MAHJONG_DOUBLE_UP ) @@ -1481,6 +1428,49 @@ static INPUT_PORTS_START( mj4simai ) PORT_BIT( 0x0020, IP_ACTIVE_LOW, IPT_MAHJONG_SMALL ) PORT_BIT( 0x00c0, IP_ACTIVE_LOW, IPT_UNUSED ) PORT_BIT( 0xff00, IP_ACTIVE_LOW, IPT_UNKNOWN ) + + PORT_START("P2_KEY0") // $600000(0) + PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_MAHJONG_A ) PORT_PLAYER(2) + PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_MAHJONG_E ) PORT_PLAYER(2) + PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_MAHJONG_I ) PORT_PLAYER(2) + PORT_BIT( 0x0008, IP_ACTIVE_LOW, IPT_MAHJONG_M ) PORT_PLAYER(2) + PORT_BIT( 0x0010, IP_ACTIVE_LOW, IPT_MAHJONG_KAN ) PORT_PLAYER(2) + PORT_BIT( 0x0020, IP_ACTIVE_LOW, IPT_START2 ) + PORT_BIT( 0xffc0, IP_ACTIVE_LOW, IPT_UNKNOWN ) + + PORT_START("P2_KEY1") // $600000(1) + PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_MAHJONG_B ) PORT_PLAYER(2) + PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_MAHJONG_F ) PORT_PLAYER(2) + PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_MAHJONG_J ) PORT_PLAYER(2) + PORT_BIT( 0x0008, IP_ACTIVE_LOW, IPT_MAHJONG_N ) PORT_PLAYER(2) + PORT_BIT( 0x0010, IP_ACTIVE_LOW, IPT_MAHJONG_REACH ) PORT_PLAYER(2) + PORT_BIT( 0x0020, IP_ACTIVE_LOW, IPT_MAHJONG_BET ) PORT_PLAYER(2) + PORT_BIT( 0xffc0, IP_ACTIVE_LOW, IPT_UNKNOWN) + + PORT_START("P2_KEY2") // $600000(2) + PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_MAHJONG_C ) PORT_PLAYER(2) + PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_MAHJONG_G ) PORT_PLAYER(2) + PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_MAHJONG_K ) PORT_PLAYER(2) + PORT_BIT( 0x0008, IP_ACTIVE_LOW, IPT_MAHJONG_CHI ) PORT_PLAYER(2) + PORT_BIT( 0x0010, IP_ACTIVE_LOW, IPT_MAHJONG_RON ) PORT_PLAYER(2) + PORT_BIT( 0xffe0, IP_ACTIVE_LOW, IPT_UNKNOWN ) + + PORT_START("P2_KEY3") // $600000(3) + PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_MAHJONG_D ) PORT_PLAYER(2) + PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_MAHJONG_H ) PORT_PLAYER(2) + PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_MAHJONG_L ) PORT_PLAYER(2) + PORT_BIT( 0x0008, IP_ACTIVE_LOW, IPT_MAHJONG_PON ) PORT_PLAYER(2) + PORT_BIT( 0xfff0, IP_ACTIVE_LOW, IPT_UNKNOWN ) + + PORT_START("P2_KEY4") // $600000(4) + PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_MAHJONG_LAST_CHANCE ) PORT_PLAYER(2) + PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_MAHJONG_SCORE ) PORT_PLAYER(2) + PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_MAHJONG_DOUBLE_UP ) PORT_PLAYER(2) + PORT_BIT( 0x0008, IP_ACTIVE_LOW, IPT_MAHJONG_FLIP_FLOP ) PORT_PLAYER(2) + PORT_BIT( 0x0010, IP_ACTIVE_LOW, IPT_MAHJONG_BIG ) PORT_PLAYER(2) + PORT_BIT( 0x0020, IP_ACTIVE_LOW, IPT_MAHJONG_SMALL ) PORT_PLAYER(2) + PORT_BIT( 0x00c0, IP_ACTIVE_LOW, IPT_UNUSED ) + PORT_BIT( 0xff00, IP_ACTIVE_LOW, IPT_UNKNOWN ) INPUT_PORTS_END @@ -2284,7 +2274,7 @@ static MACHINE_DRIVER_START( mj4simai ) /* basic machine hardware */ MDRV_CPU_ADD("maincpu",M68000,50000000/3) /* !! TMP68301 @ 16.666666MHz !! */ - MDRV_CPU_PROGRAM_MAP(mj4simai_readmem,mj4simai_writemem) + MDRV_CPU_PROGRAM_MAP(mj4simai_map,0) MDRV_CPU_VBLANK_INT("screen", seta2_interrupt) MDRV_MACHINE_RESET( tmp68301 ) @@ -2318,7 +2308,7 @@ static MACHINE_DRIVER_START( gundamex ) /* basic machine hardware */ MDRV_IMPORT_FROM(mj4simai) MDRV_CPU_MODIFY("maincpu") - MDRV_CPU_PROGRAM_MAP(gundamex_readmem,gundamex_writemem) + MDRV_CPU_PROGRAM_MAP(gundamex_map,0) MDRV_NVRAM_HANDLER(93C46_gundamex) @@ -2331,7 +2321,7 @@ static MACHINE_DRIVER_START( grdians ) MDRV_IMPORT_FROM(mj4simai) MDRV_CPU_MODIFY("maincpu") - MDRV_CPU_PROGRAM_MAP(grdians_readmem,grdians_writemem) + MDRV_CPU_PROGRAM_MAP(grdians_map,0) /* video hardware */ MDRV_SCREEN_MODIFY("screen") @@ -2344,7 +2334,7 @@ static MACHINE_DRIVER_START( myangel ) /* basic machine hardware */ MDRV_IMPORT_FROM(mj4simai) MDRV_CPU_MODIFY("maincpu") - MDRV_CPU_PROGRAM_MAP(myangel_readmem,myangel_writemem) + MDRV_CPU_PROGRAM_MAP(myangel_map,0) /* video hardware */ MDRV_SCREEN_MODIFY("screen") @@ -2359,7 +2349,7 @@ static MACHINE_DRIVER_START( myangel2 ) /* basic machine hardware */ MDRV_IMPORT_FROM(mj4simai) MDRV_CPU_MODIFY("maincpu") - MDRV_CPU_PROGRAM_MAP(myangel2_readmem,myangel2_writemem) + MDRV_CPU_PROGRAM_MAP(myangel2_map,0) /* video hardware */ MDRV_SCREEN_MODIFY("screen") @@ -2374,7 +2364,7 @@ static MACHINE_DRIVER_START( pzlbowl ) /* basic machine hardware */ MDRV_IMPORT_FROM(mj4simai) MDRV_CPU_MODIFY("maincpu") - MDRV_CPU_PROGRAM_MAP(pzlbowl_readmem,pzlbowl_writemem) + MDRV_CPU_PROGRAM_MAP(pzlbowl_map,0) /* video hardware */ MDRV_SCREEN_MODIFY("screen") @@ -2387,7 +2377,7 @@ static MACHINE_DRIVER_START( penbros ) /* basic machine hardware */ MDRV_IMPORT_FROM(mj4simai) MDRV_CPU_MODIFY("maincpu") - MDRV_CPU_PROGRAM_MAP(penbros_readmem,penbros_writemem) + MDRV_CPU_PROGRAM_MAP(penbros_map,0) /* video hardware */ MDRV_SCREEN_MODIFY("screen") diff --git a/src/mame/drivers/sfkick.c b/src/mame/drivers/sfkick.c index ad9554b4c59..ee7b17cc45c 100644 --- a/src/mame/drivers/sfkick.c +++ b/src/mame/drivers/sfkick.c @@ -92,24 +92,24 @@ static void sfkick_remap_banks(running_machine *machine) case 0: /* bios */ { UINT8 *mem = memory_region(machine, "bios"); - memory_set_bankptr (machine, 1, mem); - memory_set_bankptr (machine,2, mem+0x2000); + memory_set_bankptr(machine,1, mem); + memory_set_bankptr(machine,2, mem+0x2000); } break; case 1: /* ext rom */ { UINT8 *mem = memory_region(machine, "extrom"); - memory_set_bankptr (machine,1, mem+0x4000); - memory_set_bankptr (machine,2, mem+0x6000); + memory_set_bankptr(machine,1, mem+0x4000); + memory_set_bankptr(machine,2, mem+0x6000); } break; case 2: /* banked */ { UINT8 *mem = memory_region(machine, "banked"); - memory_set_bankptr (machine,1, mem+0x2000*sfkick_bank[0]); - memory_set_bankptr (machine,2, mem+0x2000*sfkick_bank[1]); + memory_set_bankptr(machine,1, mem+0x2000*sfkick_bank[0]); + memory_set_bankptr(machine,2, mem+0x2000*sfkick_bank[1]); } break; @@ -128,8 +128,8 @@ static void sfkick_remap_banks(running_machine *machine) case 0: /* bios - upper part */ { UINT8 *mem = memory_region(machine, "bios"); - memory_set_bankptr (machine,3, mem+0x4000); - memory_set_bankptr (machine,4, mem+0x6000); + memory_set_bankptr(machine,3, mem+0x4000); + memory_set_bankptr(machine,4, mem+0x6000); } break; @@ -145,8 +145,8 @@ static void sfkick_remap_banks(running_machine *machine) case 2: /* banked */ { UINT8 *mem = memory_region(machine, "banked"); - memory_set_bankptr (machine,3, mem+0x2000*sfkick_bank[2]); - memory_set_bankptr (machine,4, mem+0x2000*sfkick_bank[3]); + memory_set_bankptr(machine,3, mem+0x2000*sfkick_bank[2]); + memory_set_bankptr(machine,4, mem+0x2000*sfkick_bank[3]); } break; } @@ -174,8 +174,8 @@ static void sfkick_remap_banks(running_machine *machine) case 2: /* banked */ { UINT8 *mem = memory_region(machine, "banked"); - memory_set_bankptr (machine,5, mem+0x2000*sfkick_bank[4]); - memory_set_bankptr (machine,6, mem+0x2000*sfkick_bank[5]); + memory_set_bankptr(machine,5, mem+0x2000*sfkick_bank[4]); + memory_set_bankptr(machine,6, mem+0x2000*sfkick_bank[5]); } break; } @@ -195,8 +195,8 @@ static void sfkick_remap_banks(running_machine *machine) case 2: /* banked */ { UINT8 *mem = memory_region(machine, "banked"); - memory_set_bankptr (machine,7, mem+0x2000*sfkick_bank[6]); - memory_set_bankptr (machine,8, mem+0x2000*sfkick_bank[7]); + memory_set_bankptr(machine,7, mem+0x2000*sfkick_bank[6]); + memory_set_bankptr(machine,8, mem+0x2000*sfkick_bank[7]); } break; @@ -293,25 +293,22 @@ static WRITE8_HANDLER(page3_w) } } -static ADDRESS_MAP_START (readmem, ADDRESS_SPACE_PROGRAM, 8) - AM_RANGE( 0x0000, 0x1fff) AM_READ( SMH_BANK(1) ) - AM_RANGE( 0x2000, 0x3fff) AM_READ( SMH_BANK(2) ) - AM_RANGE( 0x4000, 0x5fff) AM_READ( SMH_BANK(3) ) - AM_RANGE( 0x6000, 0x7fff) AM_READ( SMH_BANK(4) ) - AM_RANGE( 0x8000, 0x9fff) AM_READ( SMH_BANK(5) ) - AM_RANGE( 0xa000, 0xbfff) AM_READ( SMH_BANK(6) ) - AM_RANGE( 0xc000, 0xdfff) AM_READ( SMH_BANK(7) ) - AM_RANGE( 0xe000, 0xffff) AM_READ( SMH_BANK(8) ) -ADDRESS_MAP_END - -static ADDRESS_MAP_START( writemem , ADDRESS_SPACE_PROGRAM, 8) +static ADDRESS_MAP_START( sfkick_map, ADDRESS_SPACE_PROGRAM, 8) + AM_RANGE( 0x0000, 0x1fff) AM_ROMBANK(1) + AM_RANGE( 0x2000, 0x3fff) AM_ROMBANK(2) + AM_RANGE( 0x4000, 0x5fff) AM_ROMBANK(3) + AM_RANGE( 0x6000, 0x7fff) AM_ROMBANK(4) + AM_RANGE( 0x8000, 0x9fff) AM_ROMBANK(5) + AM_RANGE( 0xa000, 0xbfff) AM_ROMBANK(6) + AM_RANGE( 0xc000, 0xdfff) AM_ROMBANK(7) + AM_RANGE( 0xe000, 0xffff) AM_ROMBANK(8) AM_RANGE( 0x0000, 0x3fff) AM_WRITE( page0_w ) AM_RANGE( 0x4000, 0x7fff) AM_WRITE( page1_w ) AM_RANGE( 0x8000, 0xbfff) AM_WRITE( page2_w ) AM_RANGE( 0xc000, 0xffff) AM_WRITE( page3_w ) ADDRESS_MAP_END -static ADDRESS_MAP_START (main_io, ADDRESS_SPACE_IO, 8) +static ADDRESS_MAP_START( sfkick_io_map, ADDRESS_SPACE_IO, 8) ADDRESS_MAP_UNMAP_HIGH ADDRESS_MAP_GLOBAL_MASK(0xff) AM_RANGE( 0xa0, 0xa7) AM_WRITE( soundlatch_w ) @@ -322,12 +319,12 @@ static ADDRESS_MAP_START (main_io, ADDRESS_SPACE_IO, 8) AM_RANGE( 0xa8, 0xab) AM_DEVREADWRITE("ppi8255", ppi8255_r, ppi8255_w) ADDRESS_MAP_END -static ADDRESS_MAP_START( sound_mem, ADDRESS_SPACE_PROGRAM, 8 ) +static ADDRESS_MAP_START( sfkick_sound_map, ADDRESS_SPACE_PROGRAM, 8 ) AM_RANGE(0x0000, 0x7fff) AM_ROM AM_RANGE(0xc000, 0xc7ff) AM_RAM ADDRESS_MAP_END -static ADDRESS_MAP_START (sound_io, ADDRESS_SPACE_IO, 8) +static ADDRESS_MAP_START( sfkick_sound_io_map, ADDRESS_SPACE_IO, 8) ADDRESS_MAP_GLOBAL_MASK(0xff) AM_RANGE(0x00, 0x00) AM_READ(soundlatch_r) AM_RANGE(0x04, 0x05) AM_DEVREADWRITE("ym1", ym2203_r, ym2203_w) @@ -460,15 +457,15 @@ static const ym2203_interface ym2203_config = static MACHINE_DRIVER_START( sfkick ) MDRV_CPU_ADD("maincpu",Z80,MASTER_CLOCK/6) - MDRV_CPU_PROGRAM_MAP(readmem,writemem) - MDRV_CPU_IO_MAP(main_io,0) + MDRV_CPU_PROGRAM_MAP(sfkick_map,0) + MDRV_CPU_IO_MAP(sfkick_io_map,0) MDRV_CPU_VBLANK_INT_HACK(sfkick_interrupt,262) MDRV_QUANTUM_TIME(HZ(60000)) MDRV_CPU_ADD("soundcpu",Z80,MASTER_CLOCK/6) - MDRV_CPU_PROGRAM_MAP(sound_mem,0) - MDRV_CPU_IO_MAP(sound_io,0) + MDRV_CPU_PROGRAM_MAP(sfkick_sound_map,0) + MDRV_CPU_IO_MAP(sfkick_sound_io_map,0) MDRV_SCREEN_ADD("screen", RASTER) MDRV_SCREEN_REFRESH_RATE(60) diff --git a/src/mame/drivers/shangha3.c b/src/mame/drivers/shangha3.c index ab3c5c9de86..46bc4c2bee1 100644 --- a/src/mame/drivers/shangha3.c +++ b/src/mame/drivers/shangha3.c @@ -56,13 +56,13 @@ static READ16_HANDLER( shangha3_prot_r ) static int count; static const int result[] = { 0x0,0x1,0x3,0x7,0xf,0xe,0xc,0x8,0x0}; -logerror("PC %04x: read 20004e\n",cpu_get_pc(space->cpu)); + logerror("PC %04x: read 20004e\n",cpu_get_pc(space->cpu)); return result[count++ % 9]; } static WRITE16_HANDLER( shangha3_prot_w ) { -logerror("PC %04x: write %02x to 20004e\n",cpu_get_pc(space->cpu),data); + logerror("PC %04x: write %02x to 20004e\n",cpu_get_pc(space->cpu),data); } @@ -126,89 +126,62 @@ static WRITE16_HANDLER( heberpop_sound_command_w ) -static ADDRESS_MAP_START( shangha3_readmem, ADDRESS_SPACE_PROGRAM, 16 ) - AM_RANGE(0x000000, 0x07ffff) AM_READ(SMH_ROM) - AM_RANGE(0x100000, 0x100fff) AM_READ(SMH_RAM) +static ADDRESS_MAP_START( shangha3_map, ADDRESS_SPACE_PROGRAM, 16 ) + AM_RANGE(0x000000, 0x07ffff) AM_ROM + AM_RANGE(0x100000, 0x100fff) AM_RAM_WRITE(paletteram16_RRRRRGGGGGBBBBBx_word_w) AM_BASE(&paletteram16) AM_RANGE(0x200000, 0x200001) AM_READ_PORT("INPUTS") AM_RANGE(0x200002, 0x200003) AM_READ_PORT("SYSTEM") - AM_RANGE(0x20001e, 0x20001f) AM_DEVREAD8("ay", ay8910_r, 0x00ff) - AM_RANGE(0x20004e, 0x20004f) AM_READ(shangha3_prot_r) - AM_RANGE(0x20006e, 0x20006f) AM_DEVREAD8("oki", okim6295_r, 0x00ff) - AM_RANGE(0x300000, 0x30ffff) AM_READ(SMH_RAM) -ADDRESS_MAP_END - -static ADDRESS_MAP_START( shangha3_writemem, ADDRESS_SPACE_PROGRAM, 16 ) - AM_RANGE(0x000000, 0x07ffff) AM_WRITE(SMH_ROM) - AM_RANGE(0x100000, 0x100fff) AM_WRITE(paletteram16_RRRRRGGGGGBBBBBx_word_w) AM_BASE(&paletteram16) AM_RANGE(0x200008, 0x200009) AM_WRITE(shangha3_blitter_go_w) AM_RANGE(0x20000a, 0x20000b) AM_WRITENOP /* irq ack? */ AM_RANGE(0x20000c, 0x20000d) AM_WRITE(shangha3_coinctrl_w) + AM_RANGE(0x20001e, 0x20001f) AM_DEVREAD8("ay", ay8910_r, 0x00ff) AM_RANGE(0x20002e, 0x20002f) AM_DEVWRITE8("ay", ay8910_data_w, 0x00ff) AM_RANGE(0x20003e, 0x20003f) AM_DEVWRITE8("ay", ay8910_address_w, 0x00ff) - AM_RANGE(0x20004e, 0x20004f) AM_WRITE(shangha3_prot_w) - AM_RANGE(0x20006e, 0x20006f) AM_DEVWRITE8("oki", okim6295_w, 0x00ff) - AM_RANGE(0x300000, 0x30ffff) AM_WRITE(SMH_RAM) AM_BASE(&shangha3_ram) AM_SIZE(&shangha3_ram_size) /* gfx & work ram */ + AM_RANGE(0x20004e, 0x20004f) AM_READWRITE(shangha3_prot_r,shangha3_prot_w) + AM_RANGE(0x20006e, 0x20006f) AM_DEVREADWRITE8("oki", okim6295_r,okim6295_w, 0x00ff) + AM_RANGE(0x300000, 0x30ffff) AM_RAM AM_BASE(&shangha3_ram) AM_SIZE(&shangha3_ram_size) /* gfx & work ram */ AM_RANGE(0x340000, 0x340001) AM_WRITE(shangha3_flipscreen_w) AM_RANGE(0x360000, 0x360001) AM_WRITE(shangha3_gfxlist_addr_w) ADDRESS_MAP_END - -static ADDRESS_MAP_START( heberpop_readmem, ADDRESS_SPACE_PROGRAM, 16 ) - AM_RANGE(0x000000, 0x0fffff) AM_READ(SMH_ROM) - AM_RANGE(0x100000, 0x100fff) AM_READ(SMH_RAM) +static ADDRESS_MAP_START( heberpop_map, ADDRESS_SPACE_PROGRAM, 16 ) + AM_RANGE(0x000000, 0x0fffff) AM_ROM + AM_RANGE(0x100000, 0x100fff) AM_RAM_WRITE(paletteram16_RRRRRGGGGGBBBBBx_word_w) AM_BASE(&paletteram16) AM_RANGE(0x200000, 0x200001) AM_READ_PORT("INPUTS") AM_RANGE(0x200002, 0x200003) AM_READ_PORT("SYSTEM") AM_RANGE(0x200004, 0x200005) AM_READ_PORT("DSW") - AM_RANGE(0x300000, 0x30ffff) AM_READ(SMH_RAM) - AM_RANGE(0x800000, 0xb7ffff) AM_READ(heberpop_gfxrom_r) -ADDRESS_MAP_END - -static ADDRESS_MAP_START( heberpop_writemem, ADDRESS_SPACE_PROGRAM, 16 ) - AM_RANGE(0x000000, 0x0fffff) AM_WRITE(SMH_ROM) - AM_RANGE(0x100000, 0x100fff) AM_WRITE(paletteram16_RRRRRGGGGGBBBBBx_word_w) AM_BASE(&paletteram16) AM_RANGE(0x200008, 0x200009) AM_WRITE(shangha3_blitter_go_w) AM_RANGE(0x20000a, 0x20000b) AM_WRITENOP /* irq ack? */ AM_RANGE(0x20000c, 0x20000d) AM_WRITE(heberpop_coinctrl_w) AM_RANGE(0x20000e, 0x20000f) AM_WRITE(heberpop_sound_command_w) - AM_RANGE(0x300000, 0x30ffff) AM_WRITE(SMH_RAM) AM_BASE(&shangha3_ram) AM_SIZE(&shangha3_ram_size) /* gfx & work ram */ + AM_RANGE(0x300000, 0x30ffff) AM_RAM AM_BASE(&shangha3_ram) AM_SIZE(&shangha3_ram_size) /* gfx & work ram */ AM_RANGE(0x340000, 0x340001) AM_WRITE(shangha3_flipscreen_w) AM_RANGE(0x360000, 0x360001) AM_WRITE(shangha3_gfxlist_addr_w) -ADDRESS_MAP_END - -static ADDRESS_MAP_START( blocken_readmem, ADDRESS_SPACE_PROGRAM, 16 ) - AM_RANGE(0x000000, 0x0fffff) AM_READ(SMH_ROM) - AM_RANGE(0x100000, 0x100001) AM_READ_PORT("INPUTS") - AM_RANGE(0x100002, 0x100003) AM_READ_PORT("SYSTEM") - AM_RANGE(0x100004, 0x100005) AM_READ_PORT("DSW") - AM_RANGE(0x200000, 0x200fff) AM_READ(SMH_RAM) - AM_RANGE(0x300000, 0x30ffff) AM_READ(SMH_RAM) AM_RANGE(0x800000, 0xb7ffff) AM_READ(heberpop_gfxrom_r) ADDRESS_MAP_END -static ADDRESS_MAP_START( blocken_writemem, ADDRESS_SPACE_PROGRAM, 16 ) - AM_RANGE(0x000000, 0x0fffff) AM_WRITE(SMH_ROM) +static ADDRESS_MAP_START( blocken_map, ADDRESS_SPACE_PROGRAM, 16 ) + AM_RANGE(0x000000, 0x0fffff) AM_ROM + AM_RANGE(0x100000, 0x100001) AM_READ_PORT("INPUTS") + AM_RANGE(0x100002, 0x100003) AM_READ_PORT("SYSTEM") + AM_RANGE(0x100004, 0x100005) AM_READ_PORT("DSW") AM_RANGE(0x100008, 0x100009) AM_WRITE(shangha3_blitter_go_w) AM_RANGE(0x10000a, 0x10000b) AM_WRITENOP /* irq ack? */ AM_RANGE(0x10000c, 0x10000d) AM_WRITE(blocken_coinctrl_w) AM_RANGE(0x10000e, 0x10000f) AM_WRITE(heberpop_sound_command_w) - AM_RANGE(0x200000, 0x200fff) AM_WRITE(paletteram16_RRRRRGGGGGBBBBBx_word_w) AM_BASE(&paletteram16) - AM_RANGE(0x300000, 0x30ffff) AM_WRITE(SMH_RAM) AM_BASE(&shangha3_ram) AM_SIZE(&shangha3_ram_size) /* gfx & work ram */ + AM_RANGE(0x200000, 0x200fff) AM_RAM_WRITE(paletteram16_RRRRRGGGGGBBBBBx_word_w) AM_BASE(&paletteram16) + AM_RANGE(0x300000, 0x30ffff) AM_RAM AM_BASE(&shangha3_ram) AM_SIZE(&shangha3_ram_size) /* gfx & work ram */ AM_RANGE(0x340000, 0x340001) AM_WRITE(shangha3_flipscreen_w) AM_RANGE(0x360000, 0x360001) AM_WRITE(shangha3_gfxlist_addr_w) + AM_RANGE(0x800000, 0xb7ffff) AM_READ(heberpop_gfxrom_r) ADDRESS_MAP_END -static ADDRESS_MAP_START( heberpop_sound_readmem, ADDRESS_SPACE_PROGRAM, 8 ) - AM_RANGE(0x0000, 0xf7ff) AM_READ(SMH_ROM) - AM_RANGE(0xf800, 0xffff) AM_READ(SMH_RAM) +static ADDRESS_MAP_START( heberpop_sound_map, ADDRESS_SPACE_PROGRAM, 8 ) + AM_RANGE(0x0000, 0xf7ff) AM_ROM + AM_RANGE(0xf800, 0xffff) AM_RAM ADDRESS_MAP_END -static ADDRESS_MAP_START( heberpop_sound_writemem, ADDRESS_SPACE_PROGRAM, 8 ) - AM_RANGE(0x0000, 0xf7ff) AM_WRITE(SMH_ROM) - AM_RANGE(0xf800, 0xffff) AM_WRITE(SMH_RAM) -ADDRESS_MAP_END - - static ADDRESS_MAP_START( heberpop_sound_io_map, ADDRESS_SPACE_IO, 8 ) ADDRESS_MAP_GLOBAL_MASK(0xff) AM_RANGE(0x00, 0x03) AM_DEVREADWRITE("ym", ym3438_r, ym3438_w) @@ -507,11 +480,11 @@ static MACHINE_DRIVER_START( shangha3 ) /* basic machine hardware */ MDRV_CPU_ADD("maincpu", M68000, 8000000) - MDRV_CPU_PROGRAM_MAP(shangha3_readmem,shangha3_writemem) + MDRV_CPU_PROGRAM_MAP(shangha3_map,0) MDRV_CPU_VBLANK_INT("screen", irq4_line_hold) /* video hardware */ - MDRV_VIDEO_ATTRIBUTES(VIDEO_HAS_SHADOWS ) + MDRV_VIDEO_ATTRIBUTES(VIDEO_HAS_SHADOWS) MDRV_SCREEN_ADD("screen", RASTER) MDRV_SCREEN_REFRESH_RATE(60) @@ -543,11 +516,11 @@ static MACHINE_DRIVER_START( heberpop ) /* basic machine hardware */ MDRV_CPU_ADD("maincpu", M68000, 8000000) - MDRV_CPU_PROGRAM_MAP(heberpop_readmem,heberpop_writemem) + MDRV_CPU_PROGRAM_MAP(heberpop_map,0) MDRV_CPU_VBLANK_INT("screen", irq4_line_hold) MDRV_CPU_ADD("audiocpu", Z80, 6000000) /* 6 MHz ??? */ - MDRV_CPU_PROGRAM_MAP(heberpop_sound_readmem,heberpop_sound_writemem) + MDRV_CPU_PROGRAM_MAP(heberpop_sound_map,0) MDRV_CPU_IO_MAP(heberpop_sound_io_map,0) /* NMI triggered by YM3438 */ /* video hardware */ @@ -584,11 +557,11 @@ static MACHINE_DRIVER_START( blocken ) /* basic machine hardware */ MDRV_CPU_ADD("maincpu", M68000, 8000000) - MDRV_CPU_PROGRAM_MAP(blocken_readmem,blocken_writemem) + MDRV_CPU_PROGRAM_MAP(blocken_map,0) MDRV_CPU_VBLANK_INT("screen", irq4_line_hold) MDRV_CPU_ADD("audiocpu", Z80, 6000000) /* 6 MHz ??? */ - MDRV_CPU_PROGRAM_MAP(heberpop_sound_readmem,heberpop_sound_writemem) + MDRV_CPU_PROGRAM_MAP(heberpop_sound_map,0) MDRV_CPU_IO_MAP(heberpop_sound_io_map,0) /* NMI triggered by YM3438 */ /* video hardware */ @@ -698,6 +671,7 @@ static DRIVER_INIT( shangha3 ) { shangha3_do_shadows = 1; } + static DRIVER_INIT( heberpop ) { shangha3_do_shadows = 0;