mirror of
https://github.com/holub/mame
synced 2025-06-06 12:53:46 +03:00
Memory maps merges for the following drivers:
* senjyo.c * seta2.c * sfkick.c * shangha3.c Properly hooked-up player 2 mahjong panel in mj4simai Moved paletteram_IIBBGGRR_w() from senjyo.c to emu/video/generic.c =================================== I'm not sure if sfkick.c memory map is 100% correct, needs double checking (it's the same on MSX MESS driver) Also anybody is interested in rewrite senjyo.c driver from scratch? ;P
This commit is contained in:
parent
25bff72fe9
commit
7fd66deda9
@ -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));
|
||||
}
|
||||
|
||||
|
||||
|
||||
/***************************************************************************
|
||||
|
@ -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 );
|
||||
|
@ -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
|
||||
|
||||
|
||||
|
@ -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")
|
||||
|
@ -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)
|
||||
|
@ -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;
|
||||
|
Loading…
Reference in New Issue
Block a user