mirror of
https://github.com/holub/mame
synced 2025-05-28 08:33:05 +03:00
Convert a number of drivers to use their own private spriteram instead
of the generic one. Only drivers needing buffered spriteram should use the shared generic version for now. [Atari Ace]
This commit is contained in:
parent
b859b40788
commit
3c3c5163f5
@ -14,6 +14,17 @@ Inputs and Dip Switches by Stephh
|
||||
|
||||
#include "sidewndr.lh"
|
||||
|
||||
|
||||
class acefruit_state : public driver_device
|
||||
{
|
||||
public:
|
||||
acefruit_state(running_machine &machine, const driver_device_config_base &config)
|
||||
: driver_device(machine, config) { }
|
||||
|
||||
UINT8 *spriteram;
|
||||
};
|
||||
|
||||
|
||||
static UINT8 *colorram;
|
||||
static UINT8 *videoram;
|
||||
|
||||
@ -63,6 +74,7 @@ static INTERRUPT_GEN( acefruit_vblank )
|
||||
|
||||
static SCREEN_UPDATE( acefruit )
|
||||
{
|
||||
acefruit_state *state = screen->machine->driver_data<acefruit_state>();
|
||||
int startrow = cliprect->min_y / 8;
|
||||
int endrow = cliprect->max_y / 8;
|
||||
int row;
|
||||
@ -94,7 +106,7 @@ static SCREEN_UPDATE( acefruit )
|
||||
|
||||
for( x = 0; x < 16; x++ )
|
||||
{
|
||||
int sprite = ( screen->machine->generic.spriteram.u8[ ( spriteindex / 64 ) % 6 ] & 0xf ) ^ 0xf;
|
||||
int sprite = ( state->spriteram[ ( spriteindex / 64 ) % 6 ] & 0xf ) ^ 0xf;
|
||||
const UINT8 *gfxdata = gfx_element_get_data(gfx, sprite);
|
||||
|
||||
for( y = 0; y < 8; y++ )
|
||||
@ -270,7 +282,7 @@ static ADDRESS_MAP_START( acefruit_map, ADDRESS_SPACE_PROGRAM, 8 )
|
||||
AM_RANGE(0x8005, 0x8005) AM_READ_PORT("IN5")
|
||||
AM_RANGE(0x8006, 0x8006) AM_READ_PORT("IN6")
|
||||
AM_RANGE(0x8007, 0x8007) AM_READ_PORT("IN7")
|
||||
AM_RANGE(0x6000, 0x6005) AM_RAM AM_BASE_GENERIC(spriteram)
|
||||
AM_RANGE(0x6000, 0x6005) AM_RAM AM_BASE_MEMBER(acefruit_state, spriteram)
|
||||
AM_RANGE(0xa000, 0xa001) AM_WRITE(acefruit_lamp_w)
|
||||
AM_RANGE(0xa002, 0xa003) AM_WRITE(acefruit_coin_w)
|
||||
AM_RANGE(0xa004, 0xa004) AM_WRITE(acefruit_solenoid_w)
|
||||
@ -548,7 +560,7 @@ static GFXDECODE_START( acefruit )
|
||||
GFXDECODE_ENTRY( "gfx1", 0x1800, charlayout, 8, 4 )
|
||||
GFXDECODE_END
|
||||
|
||||
static MACHINE_CONFIG_START( acefruit, driver_device )
|
||||
static MACHINE_CONFIG_START( acefruit, acefruit_state )
|
||||
|
||||
/* basic machine hardware */
|
||||
MCFG_CPU_ADD("maincpu", Z80, 2500000) /* 2.5MHz */
|
||||
|
@ -76,6 +76,8 @@ public:
|
||||
UINT16 *ac_devram;
|
||||
UINT16 ufo_sw1;
|
||||
UINT16 ufo_sw2;
|
||||
UINT16 *spriteram;
|
||||
size_t spriteram_size;
|
||||
};
|
||||
|
||||
|
||||
@ -110,10 +112,11 @@ static TILE_GET_INFO( ac_get_tx_tile_info )
|
||||
|
||||
static void draw_sprites(running_machine *machine, bitmap_t *bitmap, const rectangle *cliprect, int priority, int pri_mask)
|
||||
{
|
||||
UINT16 *spriteram16 = machine->generic.spriteram.u16;
|
||||
acommand_state *state = machine->driver_data<acommand_state>();
|
||||
UINT16 *spriteram16 = state->spriteram;
|
||||
int offs;
|
||||
|
||||
for (offs = 0;offs < machine->generic.spriteram_size/2;offs += 8)
|
||||
for (offs = 0;offs < state->spriteram_size/2;offs += 8)
|
||||
{
|
||||
if (!(spriteram16[offs+0] & 0x1000))
|
||||
{
|
||||
@ -456,7 +459,7 @@ static ADDRESS_MAP_START( acommand_map, ADDRESS_SPACE_PROGRAM, 16 )
|
||||
AM_RANGE(0x0b0000, 0x0b3fff) AM_RAM_WRITE(ac_txvram_w) AM_BASE_MEMBER(acommand_state, ac_txvram)
|
||||
AM_RANGE(0x0b8000, 0x0bffff) AM_RAM_WRITE(paletteram16_RRRRGGGGBBBBRGBx_word_w) AM_BASE_GENERIC(paletteram)
|
||||
AM_RANGE(0x0f0000, 0x0f7fff) AM_RAM
|
||||
AM_RANGE(0x0f8000, 0x0f8fff) AM_RAM AM_BASE_SIZE_GENERIC(spriteram)
|
||||
AM_RANGE(0x0f8000, 0x0f8fff) AM_RAM AM_BASE_SIZE_MEMBER(acommand_state, spriteram, spriteram_size)
|
||||
AM_RANGE(0x0f9000, 0x0fffff) AM_RAM
|
||||
AM_RANGE(0x100000, 0x1000ff) AM_READ(ac_devices_r) AM_WRITE(ac_devices_w) AM_BASE_MEMBER(acommand_state, ac_devram)
|
||||
ADDRESS_MAP_END
|
||||
|
@ -199,7 +199,7 @@ static ADDRESS_MAP_START( argus_map, ADDRESS_SPACE_PROGRAM, 8 )
|
||||
AM_RANGE(0xd000, 0xd7ff) AM_READWRITE(argus_txram_r, argus_txram_w) AM_BASE_MEMBER(argus_state, txram)
|
||||
AM_RANGE(0xd800, 0xdfff) AM_READWRITE(argus_bg1ram_r, argus_bg1ram_w) AM_BASE_MEMBER(argus_state, bg1ram)
|
||||
AM_RANGE(0xe000, 0xf1ff) AM_RAM
|
||||
AM_RANGE(0xf200, 0xf7ff) AM_RAM AM_BASE_SIZE_GENERIC(spriteram)
|
||||
AM_RANGE(0xf200, 0xf7ff) AM_RAM AM_BASE_SIZE_MEMBER(argus_state, spriteram, spriteram_size)
|
||||
AM_RANGE(0xf800, 0xffff) AM_RAM
|
||||
ADDRESS_MAP_END
|
||||
|
||||
@ -223,7 +223,7 @@ static ADDRESS_MAP_START( valtric_map, ADDRESS_SPACE_PROGRAM, 8 )
|
||||
AM_RANGE(0xd000, 0xd7ff) AM_READWRITE(argus_txram_r, argus_txram_w) AM_BASE_MEMBER(argus_state, txram)
|
||||
AM_RANGE(0xd800, 0xdfff) AM_READWRITE(argus_bg1ram_r, argus_bg1ram_w) AM_BASE_MEMBER(argus_state, bg1ram)
|
||||
AM_RANGE(0xe000, 0xf1ff) AM_RAM
|
||||
AM_RANGE(0xf200, 0xf7ff) AM_RAM AM_BASE_SIZE_GENERIC(spriteram)
|
||||
AM_RANGE(0xf200, 0xf7ff) AM_RAM AM_BASE_SIZE_MEMBER(argus_state, spriteram, spriteram_size)
|
||||
AM_RANGE(0xf800, 0xffff) AM_RAM
|
||||
ADDRESS_MAP_END
|
||||
|
||||
@ -250,7 +250,7 @@ static ADDRESS_MAP_START( butasan_map, ADDRESS_SPACE_PROGRAM, 8 )
|
||||
AM_RANGE(0xc800, 0xcfff) AM_READWRITE(argus_paletteram_r, butasan_paletteram_w) AM_BASE_MEMBER(argus_state, paletteram)
|
||||
AM_RANGE(0xd000, 0xdfff) AM_READWRITE(butasan_pagedram_r, butasan_pagedram_w)
|
||||
AM_RANGE(0xe000, 0xefff) AM_RAM
|
||||
AM_RANGE(0xf000, 0xf67f) AM_RAM AM_BASE_SIZE_GENERIC(spriteram)
|
||||
AM_RANGE(0xf000, 0xf67f) AM_RAM AM_BASE_SIZE_MEMBER(argus_state, spriteram, spriteram_size)
|
||||
AM_RANGE(0xf680, 0xffff) AM_RAM
|
||||
ADDRESS_MAP_END
|
||||
|
||||
|
@ -122,7 +122,7 @@ static ADDRESS_MAP_START( main_map, ADDRESS_SPACE_PROGRAM, 8 )
|
||||
AM_RANGE(0xa001, 0xa002) AM_WRITE(bagman_flipscreen_w)
|
||||
AM_RANGE(0xa003, 0xa003) AM_WRITEONLY AM_BASE_MEMBER(bagman_state, video_enable)
|
||||
AM_RANGE(0xc000, 0xffff) AM_ROM /* Super Bagman only */
|
||||
AM_RANGE(0x9800, 0x981f) AM_WRITEONLY AM_BASE_SIZE_GENERIC(spriteram) /* hidden portion of color RAM */
|
||||
AM_RANGE(0x9800, 0x981f) AM_WRITEONLY AM_BASE_SIZE_MEMBER(bagman_state, spriteram, spriteram_size) /* hidden portion of color RAM */
|
||||
/* here only to initialize the pointer, */
|
||||
/* writes are handled by bagman_colorram_w */
|
||||
AM_RANGE(0xa800, 0xa805) AM_DEVWRITE("tmsprom", bagman_ls259_w) /* TMS5110 driving state machine */
|
||||
@ -144,7 +144,7 @@ static ADDRESS_MAP_START( pickin_map, ADDRESS_SPACE_PROGRAM, 8 )
|
||||
AM_RANGE(0x7000, 0x77ff) AM_RAM
|
||||
AM_RANGE(0x8800, 0x8bff) AM_RAM_WRITE(bagman_videoram_w) AM_BASE_MEMBER(bagman_state, videoram)
|
||||
AM_RANGE(0x9800, 0x9bff) AM_RAM_WRITE(bagman_colorram_w) AM_BASE_MEMBER(bagman_state, colorram)
|
||||
AM_RANGE(0x9800, 0x981f) AM_WRITEONLY AM_BASE_SIZE_GENERIC(spriteram) /* hidden portion of color RAM */
|
||||
AM_RANGE(0x9800, 0x981f) AM_WRITEONLY AM_BASE_SIZE_MEMBER(bagman_state, spriteram, spriteram_size) /* hidden portion of color RAM */
|
||||
/* here only to initialize the pointer, */
|
||||
/* writes are handled by bagman_colorram_w */
|
||||
AM_RANGE(0x9c00, 0x9fff) AM_WRITENOP /* written to, but unused */
|
||||
|
@ -243,7 +243,7 @@ DIP locations verified for:
|
||||
*************************************/
|
||||
|
||||
static ADDRESS_MAP_START( cpu1_map, ADDRESS_SPACE_PROGRAM, 8 )
|
||||
AM_RANGE(0x0000, 0x07ff) AM_RAM AM_BASE_GENERIC(spriteram)
|
||||
AM_RANGE(0x0000, 0x07ff) AM_RAM AM_BASE_MEMBER(balsente_state, spriteram)
|
||||
AM_RANGE(0x0800, 0x7fff) AM_RAM_WRITE(balsente_videoram_w) AM_BASE_MEMBER(balsente_state, videoram)
|
||||
AM_RANGE(0x8000, 0x8fff) AM_RAM_WRITE(balsente_paletteram_w) AM_BASE_GENERIC(paletteram)
|
||||
AM_RANGE(0x9000, 0x9007) AM_WRITE(balsente_adc_select_w)
|
||||
|
@ -36,6 +36,8 @@ public:
|
||||
tilemap_t *tx_tilemap;
|
||||
tilemap_t *bg_tilemap;
|
||||
tilemap_t *fg_tilemap;
|
||||
UINT16 *spriteram;
|
||||
size_t spriteram_size;
|
||||
};
|
||||
|
||||
|
||||
@ -108,7 +110,7 @@ Note: sprite chip is different than the other Big Striker sets and they
|
||||
static void draw_sprites(running_machine *machine, bitmap_t *bitmap, const rectangle *cliprect)
|
||||
{
|
||||
bestleag_state *state = machine->driver_data<bestleag_state>();
|
||||
UINT16 *spriteram16 = machine->generic.spriteram.u16;
|
||||
UINT16 *spriteram16 = state->spriteram;
|
||||
|
||||
/*
|
||||
|
||||
@ -118,7 +120,7 @@ static void draw_sprites(running_machine *machine, bitmap_t *bitmap, const recta
|
||||
|
||||
int offs;
|
||||
|
||||
for (offs = 0x16/2;offs < machine->generic.spriteram_size/2;offs += 4)
|
||||
for (offs = 0x16/2;offs < state->spriteram_size/2;offs += 4)
|
||||
{
|
||||
int code = spriteram16[offs+3] & 0xfff;
|
||||
int color = (spriteram16[offs+2] & 0xf000) >> 12;
|
||||
@ -233,7 +235,7 @@ static ADDRESS_MAP_START( bestleag_map, ADDRESS_SPACE_PROGRAM, 16 )
|
||||
AM_RANGE(0x0f0000, 0x0f3fff) AM_RAM_WRITE(bestleag_txram_w) AM_BASE_MEMBER(bestleag_state, txram)
|
||||
AM_RANGE(0x0f8000, 0x0f800b) AM_RAM AM_BASE_MEMBER(bestleag_state, vregs)
|
||||
AM_RANGE(0x100000, 0x100fff) AM_RAM_WRITE(paletteram16_RRRRGGGGBBBBRGBx_word_w) AM_BASE_GENERIC(paletteram)
|
||||
AM_RANGE(0x200000, 0x200fff) AM_RAM AM_BASE_SIZE_GENERIC(spriteram)
|
||||
AM_RANGE(0x200000, 0x200fff) AM_RAM AM_BASE_SIZE_MEMBER(bestleag_state, spriteram, spriteram_size)
|
||||
AM_RANGE(0x300010, 0x300011) AM_READ_PORT("SYSTEM")
|
||||
AM_RANGE(0x300012, 0x300013) AM_READ_PORT("P1")
|
||||
AM_RANGE(0x300014, 0x300015) AM_READ_PORT("P2")
|
||||
|
@ -118,7 +118,7 @@ DIP locations verified for:
|
||||
static ADDRESS_MAP_START( bloodbro_map, ADDRESS_SPACE_PROGRAM, 16 )
|
||||
AM_RANGE(0x000000, 0x07ffff) AM_ROM
|
||||
AM_RANGE(0x080000, 0x08afff) AM_RAM
|
||||
AM_RANGE(0x08b000, 0x08bfff) AM_RAM AM_BASE_SIZE_GENERIC(spriteram)
|
||||
AM_RANGE(0x08b000, 0x08bfff) AM_RAM AM_BASE_SIZE_MEMBER(bloodbro_state, spriteram, spriteram_size)
|
||||
AM_RANGE(0x08c000, 0x08c3ff) AM_RAM_WRITE(bloodbro_bgvideoram_w) AM_BASE_MEMBER(bloodbro_state, bgvideoram)
|
||||
AM_RANGE(0x08c400, 0x08cfff) AM_RAM
|
||||
AM_RANGE(0x08d000, 0x08d3ff) AM_RAM_WRITE(bloodbro_fgvideoram_w) AM_BASE_MEMBER(bloodbro_state, fgvideoram)
|
||||
@ -140,7 +140,7 @@ ADDRESS_MAP_END
|
||||
static ADDRESS_MAP_START( weststry_map, ADDRESS_SPACE_PROGRAM, 16 )
|
||||
AM_RANGE(0x000000, 0x07ffff) AM_ROM
|
||||
AM_RANGE(0x080000, 0x08afff) AM_RAM
|
||||
AM_RANGE(0x08b000, 0x08bfff) AM_RAM AM_BASE_SIZE_GENERIC(spriteram)
|
||||
AM_RANGE(0x08b000, 0x08bfff) AM_RAM AM_BASE_SIZE_MEMBER(bloodbro_state, spriteram, spriteram_size)
|
||||
AM_RANGE(0x08c000, 0x08c3ff) AM_RAM_WRITE(bloodbro_bgvideoram_w) AM_BASE_MEMBER(bloodbro_state, bgvideoram)
|
||||
AM_RANGE(0x08c400, 0x08cfff) AM_RAM
|
||||
AM_RANGE(0x08d000, 0x08d3ff) AM_RAM_WRITE(bloodbro_fgvideoram_w) AM_BASE_MEMBER(bloodbro_state, fgvideoram)
|
||||
|
@ -690,7 +690,7 @@ static ADDRESS_MAP_START( centiped_map, ADDRESS_SPACE_PROGRAM, 8 )
|
||||
ADDRESS_MAP_GLOBAL_MASK(0x3fff)
|
||||
AM_RANGE(0x0000, 0x03ff) AM_RAM AM_BASE_MEMBER(centiped_state, rambase)
|
||||
AM_RANGE(0x0400, 0x07bf) AM_RAM_WRITE(centiped_videoram_w) AM_BASE_MEMBER(centiped_state, videoram)
|
||||
AM_RANGE(0x07c0, 0x07ff) AM_RAM AM_BASE_GENERIC(spriteram)
|
||||
AM_RANGE(0x07c0, 0x07ff) AM_RAM AM_BASE_MEMBER(centiped_state, spriteram)
|
||||
AM_RANGE(0x0800, 0x0800) AM_READ_PORT("DSW1") /* DSW1 */
|
||||
AM_RANGE(0x0801, 0x0801) AM_READ_PORT("DSW2") /* DSW2 */
|
||||
AM_RANGE(0x0c00, 0x0c00) AM_READ(centiped_IN0_r) /* IN0 */
|
||||
@ -715,7 +715,7 @@ static ADDRESS_MAP_START( centipdb_map, ADDRESS_SPACE_PROGRAM, 8 )
|
||||
ADDRESS_MAP_GLOBAL_MASK(0x7fff)
|
||||
AM_RANGE(0x0000, 0x03ff) AM_MIRROR(0x4000) AM_RAM
|
||||
AM_RANGE(0x0400, 0x07bf) AM_MIRROR(0x4000) AM_RAM_WRITE(centiped_videoram_w) AM_BASE_MEMBER(centiped_state, videoram)
|
||||
AM_RANGE(0x07c0, 0x07ff) AM_MIRROR(0x4000) AM_RAM AM_BASE_GENERIC(spriteram)
|
||||
AM_RANGE(0x07c0, 0x07ff) AM_MIRROR(0x4000) AM_RAM AM_BASE_MEMBER(centiped_state, spriteram)
|
||||
AM_RANGE(0x0800, 0x0800) AM_MIRROR(0x4000) AM_READ_PORT("DSW1") /* DSW1 */
|
||||
AM_RANGE(0x0801, 0x0801) AM_MIRROR(0x4000) AM_READ_PORT("DSW2") /* DSW2 */
|
||||
AM_RANGE(0x0c00, 0x0c00) AM_MIRROR(0x4000) AM_READ(centiped_IN0_r) /* IN0 */
|
||||
@ -751,7 +751,7 @@ static ADDRESS_MAP_START( milliped_map, ADDRESS_SPACE_PROGRAM, 8 )
|
||||
AM_RANGE(0x0400, 0x040f) AM_DEVREADWRITE("pokey", pokey_r, pokey_w)
|
||||
AM_RANGE(0x0800, 0x080f) AM_DEVREADWRITE("pokey2", pokey_r, pokey_w)
|
||||
AM_RANGE(0x1000, 0x13bf) AM_RAM_WRITE(centiped_videoram_w) AM_BASE_MEMBER(centiped_state, videoram)
|
||||
AM_RANGE(0x13c0, 0x13ff) AM_RAM AM_BASE_GENERIC(spriteram)
|
||||
AM_RANGE(0x13c0, 0x13ff) AM_RAM AM_BASE_MEMBER(centiped_state, spriteram)
|
||||
AM_RANGE(0x2000, 0x2000) AM_READ(centiped_IN0_r)
|
||||
AM_RANGE(0x2001, 0x2001) AM_READ(milliped_IN1_r)
|
||||
AM_RANGE(0x2010, 0x2010) AM_READ(milliped_IN2_r)
|
||||
@ -782,7 +782,7 @@ static ADDRESS_MAP_START( warlords_map, ADDRESS_SPACE_PROGRAM, 8 )
|
||||
ADDRESS_MAP_GLOBAL_MASK(0x7fff)
|
||||
AM_RANGE(0x0000, 0x03ff) AM_RAM
|
||||
AM_RANGE(0x0400, 0x07bf) AM_RAM_WRITE(centiped_videoram_w) AM_BASE_MEMBER(centiped_state, videoram)
|
||||
AM_RANGE(0x07c0, 0x07ff) AM_RAM AM_BASE_GENERIC(spriteram)
|
||||
AM_RANGE(0x07c0, 0x07ff) AM_RAM AM_BASE_MEMBER(centiped_state, spriteram)
|
||||
AM_RANGE(0x0800, 0x0800) AM_READ_PORT("DSW1") /* DSW1 */
|
||||
AM_RANGE(0x0801, 0x0801) AM_READ_PORT("DSW2") /* DSW2 */
|
||||
AM_RANGE(0x0c00, 0x0c00) AM_READ_PORT("IN0") /* IN0 */
|
||||
@ -809,7 +809,7 @@ static ADDRESS_MAP_START( mazeinv_map, ADDRESS_SPACE_PROGRAM, 8 )
|
||||
AM_RANGE(0x0400, 0x040f) AM_DEVREADWRITE("pokey", pokey_r, pokey_w)
|
||||
AM_RANGE(0x0800, 0x080f) AM_DEVREADWRITE("pokey2", pokey_r, pokey_w)
|
||||
AM_RANGE(0x1000, 0x13bf) AM_RAM_WRITE(centiped_videoram_w) AM_BASE_MEMBER(centiped_state, videoram)
|
||||
AM_RANGE(0x13c0, 0x13ff) AM_RAM AM_BASE_GENERIC(spriteram)
|
||||
AM_RANGE(0x13c0, 0x13ff) AM_RAM AM_BASE_MEMBER(centiped_state, spriteram)
|
||||
AM_RANGE(0x2000, 0x2000) AM_READ_PORT("IN0")
|
||||
AM_RANGE(0x2001, 0x2001) AM_READ_PORT("IN1")
|
||||
AM_RANGE(0x2010, 0x2010) AM_READ_PORT("IN2")
|
||||
@ -853,7 +853,7 @@ static ADDRESS_MAP_START( bullsdrt_map, ADDRESS_SPACE_PROGRAM, 8 )
|
||||
AM_RANGE(0x1500, 0x1500) AM_MIRROR(0x6000) AM_WRITE(watchdog_reset_w)
|
||||
AM_RANGE(0x1580, 0x1580) AM_MIRROR(0x6000) AM_NOP
|
||||
AM_RANGE(0x1800, 0x1bbf) AM_MIRROR(0x6000) AM_WRITE(centiped_videoram_w) AM_BASE_MEMBER(centiped_state, videoram)
|
||||
AM_RANGE(0x1bc0, 0x1bff) AM_MIRROR(0x6000) AM_RAM AM_BASE_GENERIC(spriteram)
|
||||
AM_RANGE(0x1bc0, 0x1bff) AM_MIRROR(0x6000) AM_RAM AM_BASE_MEMBER(centiped_state, spriteram)
|
||||
AM_RANGE(0x1c00, 0x1fff) AM_MIRROR(0x6000) AM_RAM
|
||||
AM_RANGE(0x2000, 0x2fff) AM_ROM
|
||||
AM_RANGE(0x4000, 0x4fff) AM_ROM
|
||||
|
@ -42,7 +42,7 @@ static ADDRESS_MAP_START( clshroad_map, ADDRESS_SPACE_PROGRAM, 8 )
|
||||
AM_RANGE(0x8000, 0x95ff) AM_RAM
|
||||
AM_RANGE(0x9600, 0x97ff) AM_RAM AM_SHARE("share1")
|
||||
AM_RANGE(0x9800, 0x9dff) AM_RAM
|
||||
AM_RANGE(0x9e00, 0x9fff) AM_RAM AM_BASE_SIZE_GENERIC(spriteram)
|
||||
AM_RANGE(0x9e00, 0x9fff) AM_RAM AM_BASE_SIZE_MEMBER(clshroad_state, spriteram, spriteram_size)
|
||||
AM_RANGE(0xa001, 0xa001) AM_WRITENOP // ? Interrupt related
|
||||
AM_RANGE(0xa004, 0xa004) AM_WRITE(clshroad_flipscreen_w)
|
||||
AM_RANGE(0xa100, 0xa107) AM_READ(clshroad_input_r)
|
||||
|
@ -100,6 +100,8 @@ public:
|
||||
UINT8 *mainram;
|
||||
int coin_stat;
|
||||
int counter;
|
||||
UINT8 *spriteram;
|
||||
size_t spriteram_size;
|
||||
};
|
||||
|
||||
|
||||
@ -170,9 +172,9 @@ static SCREEN_UPDATE(cshooter)
|
||||
|
||||
//sprites
|
||||
{
|
||||
UINT8 *spriteram = screen->machine->generic.spriteram.u8;
|
||||
UINT8 *spriteram = state->spriteram;
|
||||
int i;
|
||||
for(i=0;i<screen->machine->generic.spriteram_size;i+=4)
|
||||
for(i=0;i<state->spriteram_size;i+=4)
|
||||
{
|
||||
if(spriteram[i+3]!=0)
|
||||
{
|
||||
@ -330,7 +332,7 @@ static ADDRESS_MAP_START( airraid_map, ADDRESS_SPACE_PROGRAM, 8 )
|
||||
AM_RANGE(0xdc00, 0xdc1f) AM_RAM //video registers
|
||||
AM_RANGE(0xde00, 0xde0f) AM_READWRITE(seibu_sound_comms_r,seibu_sound_comms_w)
|
||||
AM_RANGE(0xe000, 0xfdff) AM_RAM AM_BASE_MEMBER(cshooter_state, mainram)
|
||||
AM_RANGE(0xfe00, 0xffff) AM_RAM AM_BASE_SIZE_GENERIC(spriteram)
|
||||
AM_RANGE(0xfe00, 0xffff) AM_RAM AM_BASE_SIZE_MEMBER(cshooter_state, spriteram, spriteram_size)
|
||||
ADDRESS_MAP_END
|
||||
|
||||
|
||||
|
@ -79,6 +79,7 @@ public:
|
||||
UINT32 input_sel;
|
||||
UINT32* jclub2_tileram;
|
||||
int jclub2_gfx_index;
|
||||
UINT32 *spriteram;
|
||||
};
|
||||
|
||||
|
||||
@ -127,8 +128,9 @@ static WRITE32_HANDLER( darkhors_tmapram2_w )
|
||||
|
||||
static void draw_sprites(running_machine *machine, bitmap_t *bitmap, const rectangle *cliprect)
|
||||
{
|
||||
UINT32 *s = machine->generic.spriteram.u32;
|
||||
UINT32 *end = machine->generic.spriteram.u32 + 0x02000/4;
|
||||
darkhors_state *state = machine->driver_data<darkhors_state>();
|
||||
UINT32 *s = state->spriteram;
|
||||
UINT32 *end = state->spriteram + 0x02000/4;
|
||||
|
||||
for ( ; s < end; s += 8/4 )
|
||||
{
|
||||
@ -324,7 +326,7 @@ static ADDRESS_MAP_START( darkhors_map, ADDRESS_SPACE_PROGRAM, 32 )
|
||||
AM_RANGE(0x86c000, 0x86ffff) AM_RAM_WRITE(darkhors_tmapram_w) AM_BASE_MEMBER(darkhors_state, tmapram)
|
||||
AM_RANGE(0x870000, 0x873fff) AM_RAM_WRITE(darkhors_tmapram2_w) AM_BASE_MEMBER(darkhors_state, tmapram2)
|
||||
AM_RANGE(0x874000, 0x87dfff) AM_RAM
|
||||
AM_RANGE(0x87e000, 0x87ffff) AM_RAM AM_BASE_GENERIC(spriteram)
|
||||
AM_RANGE(0x87e000, 0x87ffff) AM_RAM AM_BASE_MEMBER(darkhors_state, spriteram)
|
||||
AM_RANGE(0x880000, 0x89ffff) AM_WRITE(paletteram32_xBBBBBGGGGGRRRRR_dword_w) AM_BASE_GENERIC(paletteram)
|
||||
AM_RANGE(0x8a0000, 0x8bffff) AM_WRITEONLY // this should still be palette ram!
|
||||
AM_RANGE(0x8c0120, 0x8c012f) AM_WRITEONLY AM_BASE_MEMBER(darkhors_state, tmapscroll)
|
||||
@ -355,7 +357,7 @@ static ADDRESS_MAP_START( jclub2_map, ADDRESS_SPACE_PROGRAM, 32 )
|
||||
AM_RANGE(0x580400, 0x580403) AM_READ_PORT("580400")
|
||||
AM_RANGE(0x580420, 0x580423) AM_READ_PORT("580420")
|
||||
|
||||
AM_RANGE(0x800000, 0x87ffff) AM_RAM AM_BASE_GENERIC(spriteram)
|
||||
AM_RANGE(0x800000, 0x87ffff) AM_RAM AM_BASE_MEMBER(darkhors_state, spriteram)
|
||||
|
||||
AM_RANGE(0x880000, 0x89ffff) AM_WRITE(paletteram32_xBBBBBGGGGGRRRRR_dword_w) AM_BASE_GENERIC(paletteram)
|
||||
AM_RANGE(0x8a0000, 0x8bffff) AM_WRITEONLY // this should still be palette ram!
|
||||
|
@ -68,7 +68,7 @@ static ADDRESS_MAP_START( memmap, ADDRESS_SPACE_PROGRAM, 8 )
|
||||
AM_RANGE(0xd683, 0xd683) AM_WRITE(t5182_sharedram_semaphore_main_release_w)
|
||||
AM_RANGE(0xd800, 0xdfff) AM_RAM AM_BASE_MEMBER(darkmist_state, videoram)
|
||||
AM_RANGE(0xe000, 0xefff) AM_RAM AM_BASE_MEMBER(darkmist_state, workram)
|
||||
AM_RANGE(0xf000, 0xffff) AM_RAM AM_BASE_SIZE_GENERIC(spriteram)
|
||||
AM_RANGE(0xf000, 0xffff) AM_RAM AM_BASE_SIZE_MEMBER(darkmist_state, spriteram, spriteram_size)
|
||||
ADDRESS_MAP_END
|
||||
|
||||
|
||||
|
@ -29,7 +29,7 @@ static ADDRESS_MAP_START( dcon_map, ADDRESS_SPACE_PROGRAM, 16 )
|
||||
AM_RANGE(0x8d000, 0x8d7ff) AM_RAM_WRITE(dcon_midground_w) AM_BASE_MEMBER(dcon_state, mid_data)
|
||||
AM_RANGE(0x8d800, 0x8e7ff) AM_RAM_WRITE(dcon_text_w) AM_BASE_MEMBER(dcon_state, textram)
|
||||
AM_RANGE(0x8e800, 0x8f7ff) AM_RAM_WRITE(paletteram16_xBBBBBGGGGGRRRRR_word_w) AM_BASE_GENERIC(paletteram)
|
||||
AM_RANGE(0x8f800, 0x8ffff) AM_RAM AM_BASE_SIZE_GENERIC(spriteram)
|
||||
AM_RANGE(0x8f800, 0x8ffff) AM_RAM AM_BASE_SIZE_MEMBER(dcon_state, spriteram, spriteram_size)
|
||||
AM_RANGE(0x9d000, 0x9d7ff) AM_WRITE(dcon_gfxbank_w)
|
||||
|
||||
AM_RANGE(0xa0000, 0xa000d) AM_READWRITE(seibu_main_word_r, seibu_main_word_w)
|
||||
|
@ -59,7 +59,7 @@ static READ16_HANDLER( ghunter_trackball_high_r )
|
||||
|
||||
static ADDRESS_MAP_START( main_map, ADDRESS_SPACE_PROGRAM, 16 )
|
||||
AM_RANGE(0x00000, 0x037ff) AM_RAM
|
||||
AM_RANGE(0x03800, 0x03fff) AM_RAM AM_BASE_GENERIC(spriteram)
|
||||
AM_RANGE(0x03800, 0x03fff) AM_RAM AM_BASE_MEMBER(deadang_state, spriteram)
|
||||
AM_RANGE(0x04000, 0x04fff) AM_RAM AM_SHARE("share1")
|
||||
AM_RANGE(0x05000, 0x05fff) AM_WRITEONLY
|
||||
AM_RANGE(0x06000, 0x0600f) AM_READWRITE(seibu_main_word_r, seibu_main_word_w)
|
||||
|
@ -222,7 +222,8 @@ static WRITE32_HANDLER( mlc_irq_w )
|
||||
|
||||
static READ32_HANDLER(mlc_spriteram_r)
|
||||
{
|
||||
return space->machine->generic.spriteram.u32[offset]&0xffff;
|
||||
deco_mlc_state *state = space->machine->driver_data<deco_mlc_state>();
|
||||
return state->spriteram[offset]&0xffff;
|
||||
}
|
||||
|
||||
static READ32_HANDLER(mlc_vram_r)
|
||||
@ -267,7 +268,7 @@ static ADDRESS_MAP_START( decomlc_map, ADDRESS_SPACE_PROGRAM, 32 )
|
||||
AM_RANGE(0x0200078, 0x020007f) AM_READ(test2_r) AM_MIRROR(0xff000000)
|
||||
AM_RANGE(0x0200000, 0x020007f) AM_WRITE(mlc_irq_w) AM_BASE_MEMBER(deco_mlc_state, irq_ram) AM_MIRROR(0xff000000)
|
||||
AM_RANGE(0x0200080, 0x02000ff) AM_RAM AM_BASE_MEMBER(deco_mlc_state, mlc_clip_ram) AM_MIRROR(0xff000000)
|
||||
AM_RANGE(0x0204000, 0x0206fff) AM_RAM_READ(mlc_spriteram_r) AM_BASE_SIZE_GENERIC(spriteram) AM_MIRROR(0xff000000)
|
||||
AM_RANGE(0x0204000, 0x0206fff) AM_RAM_READ(mlc_spriteram_r) AM_BASE_SIZE_MEMBER(deco_mlc_state, spriteram, spriteram_size) AM_MIRROR(0xff000000)
|
||||
AM_RANGE(0x0280000, 0x029ffff) AM_RAM_READ(mlc_vram_r) AM_BASE_MEMBER(deco_mlc_state, mlc_vram) AM_MIRROR(0xff000000)
|
||||
AM_RANGE(0x0300000, 0x0307fff) AM_RAM_WRITE(avengrs_palette_w) AM_BASE_GENERIC(paletteram) AM_MIRROR(0xff000000)
|
||||
AM_RANGE(0x0400000, 0x0400003) AM_READ_PORT("INPUTS") AM_MIRROR(0xff000000)
|
||||
|
@ -473,7 +473,7 @@ static MACHINE_RESET( exidy440 )
|
||||
|
||||
static ADDRESS_MAP_START( exidy440_map, ADDRESS_SPACE_PROGRAM, 8 )
|
||||
AM_RANGE(0x0000, 0x1fff) AM_RAM AM_BASE_MEMBER(exidy440_state, imageram)
|
||||
AM_RANGE(0x2000, 0x209f) AM_RAM_WRITE(exidy440_spriteram_w) AM_BASE_GENERIC(spriteram)
|
||||
AM_RANGE(0x2000, 0x209f) AM_RAM_WRITE(exidy440_spriteram_w) AM_BASE_MEMBER(exidy440_state, spriteram)
|
||||
AM_RANGE(0x20a0, 0x29ff) AM_RAM
|
||||
AM_RANGE(0x2a00, 0x2aff) AM_READWRITE(exidy440_videoram_r, exidy440_videoram_w)
|
||||
AM_RANGE(0x2b00, 0x2b00) AM_READ(exidy440_vertical_pos_r)
|
||||
|
@ -159,6 +159,8 @@ public:
|
||||
|
||||
UINT16 vram_0_bank_num;
|
||||
UINT16 vram_1_bank_num;
|
||||
UINT8 *spriteram;
|
||||
size_t spriteram_size;
|
||||
};
|
||||
|
||||
|
||||
@ -385,7 +387,7 @@ static ADDRESS_MAP_START( galsnew_map, ADDRESS_SPACE_PROGRAM, 16 )
|
||||
|
||||
AM_RANGE(0x680000, 0x68001f) AM_RAM_WRITE(kaneko16_layers_0_regs_w) AM_BASE(&kaneko16_layers_0_regs) // sprite regs? tileregs?
|
||||
|
||||
AM_RANGE(0x700000, 0x700fff) AM_RAM AM_BASE_SIZE_GENERIC(spriteram) // sprites? 0x72f words tested
|
||||
AM_RANGE(0x700000, 0x700fff) AM_RAM AM_BASE_SIZE_MEMBER(expro02_state, spriteram, spriteram_size) // sprites? 0x72f words tested
|
||||
|
||||
AM_RANGE(0x780000, 0x78001f) AM_RAM_WRITE(kaneko16_sprites_regs_w) AM_BASE(&kaneko16_sprites_regs) // sprite regs? tileregs?
|
||||
|
||||
@ -419,7 +421,7 @@ static ADDRESS_MAP_START( fantasia_map, ADDRESS_SPACE_PROGRAM, 16 )
|
||||
AM_RANGE(0x583000, 0x583fff) AM_RAM AM_BASE(&kaneko16_vscroll_0) //
|
||||
AM_RANGE(0x600000, 0x600fff) AM_RAM_WRITE(galsnew_paletteram_w) AM_BASE_GENERIC(paletteram) // palette?
|
||||
AM_RANGE(0x680000, 0x68001f) AM_RAM_WRITE(kaneko16_layers_0_regs_w) AM_BASE(&kaneko16_layers_0_regs) // sprite regs? tileregs?
|
||||
AM_RANGE(0x700000, 0x700fff) AM_RAM AM_BASE_SIZE_GENERIC(spriteram) // sprites? 0x72f words tested
|
||||
AM_RANGE(0x700000, 0x700fff) AM_RAM AM_BASE_SIZE_MEMBER(expro02_state, spriteram, spriteram_size) // sprites? 0x72f words tested
|
||||
AM_RANGE(0x780000, 0x78001f) AM_RAM_WRITE(kaneko16_sprites_regs_w) AM_BASE(&kaneko16_sprites_regs) // sprite regs? tileregs?
|
||||
AM_RANGE(0x800000, 0x800001) AM_READ_PORT("DSW1")
|
||||
AM_RANGE(0x800002, 0x800003) AM_READ_PORT("DSW2")
|
||||
|
@ -93,19 +93,22 @@ static WRITE16_HANDLER( fantland_soundlatch_16_w )
|
||||
|
||||
static READ16_HANDLER( spriteram_16_r )
|
||||
{
|
||||
UINT8 *spriteram = space->machine->generic.spriteram.u8;
|
||||
fantland_state *state = space->machine->driver_data<fantland_state>();
|
||||
UINT8 *spriteram = state->spriteram;
|
||||
return spriteram[2 * offset + 0] | (spriteram[2 * offset + 1] << 8);
|
||||
}
|
||||
|
||||
static READ16_HANDLER( spriteram2_16_r )
|
||||
{
|
||||
UINT8 *spriteram_2 = space->machine->generic.spriteram2.u8;
|
||||
fantland_state *state = space->machine->driver_data<fantland_state>();
|
||||
UINT8 *spriteram_2 = state->spriteram2;
|
||||
return spriteram_2[2 * offset + 0] | (spriteram_2[2 * offset + 1] << 8);
|
||||
}
|
||||
|
||||
static WRITE16_HANDLER( spriteram_16_w )
|
||||
{
|
||||
UINT8 *spriteram = space->machine->generic.spriteram.u8;
|
||||
fantland_state *state = space->machine->driver_data<fantland_state>();
|
||||
UINT8 *spriteram = state->spriteram;
|
||||
if (ACCESSING_BITS_0_7)
|
||||
spriteram[2 * offset + 0] = data;
|
||||
if (ACCESSING_BITS_8_15)
|
||||
@ -114,7 +117,8 @@ static WRITE16_HANDLER( spriteram_16_w )
|
||||
|
||||
static WRITE16_HANDLER( spriteram2_16_w )
|
||||
{
|
||||
UINT8 *spriteram_2 = space->machine->generic.spriteram2.u8;
|
||||
fantland_state *state = space->machine->driver_data<fantland_state>();
|
||||
UINT8 *spriteram_2 = state->spriteram2;
|
||||
if (ACCESSING_BITS_0_7)
|
||||
spriteram_2[2 * offset + 0] = data;
|
||||
if (ACCESSING_BITS_8_15)
|
||||
@ -130,8 +134,8 @@ static ADDRESS_MAP_START( fantland_map, ADDRESS_SPACE_PROGRAM, 16 )
|
||||
AM_RANGE( 0xa3000, 0xa3001 ) AM_READ_PORT("a3000") AM_WRITE( fantland_nmi_enable_16_w )
|
||||
AM_RANGE( 0xa3002, 0xa3003 ) AM_READ_PORT("a3002") AM_WRITE( fantland_soundlatch_16_w )
|
||||
|
||||
AM_RANGE( 0xa4000, 0xa67ff ) AM_READWRITE( spriteram_16_r, spriteram_16_w ) AM_BASE_GENERIC( spriteram )
|
||||
AM_RANGE( 0xc0000, 0xcffff ) AM_READWRITE( spriteram2_16_r, spriteram2_16_w ) AM_BASE_GENERIC( spriteram2 )
|
||||
AM_RANGE( 0xa4000, 0xa67ff ) AM_READWRITE( spriteram_16_r, spriteram_16_w ) AM_BASE_MEMBER(fantland_state, spriteram)
|
||||
AM_RANGE( 0xc0000, 0xcffff ) AM_READWRITE( spriteram2_16_r, spriteram2_16_w ) AM_BASE_MEMBER(fantland_state, spriteram2)
|
||||
|
||||
AM_RANGE( 0xe0000, 0xfffff ) AM_ROM
|
||||
ADDRESS_MAP_END
|
||||
@ -152,8 +156,8 @@ static ADDRESS_MAP_START( galaxygn_map, ADDRESS_SPACE_PROGRAM, 8 )
|
||||
AM_RANGE( 0x53002, 0x53002 ) AM_READ_PORT("DSW1") AM_WRITE( fantland_soundlatch_w )
|
||||
AM_RANGE( 0x53003, 0x53003 ) AM_READ_PORT("P2")
|
||||
|
||||
AM_RANGE( 0x54000, 0x567ff ) AM_RAM AM_BASE_GENERIC( spriteram )
|
||||
AM_RANGE( 0x60000, 0x6ffff ) AM_RAM AM_BASE_GENERIC( spriteram2 )
|
||||
AM_RANGE( 0x54000, 0x567ff ) AM_RAM AM_BASE_MEMBER(fantland_state, spriteram)
|
||||
AM_RANGE( 0x60000, 0x6ffff ) AM_RAM AM_BASE_MEMBER(fantland_state, spriteram2)
|
||||
|
||||
AM_RANGE( 0x70000, 0x7ffff ) AM_ROM
|
||||
AM_RANGE( 0xf0000, 0xfffff ) AM_ROM
|
||||
@ -244,14 +248,14 @@ static ADDRESS_MAP_START( borntofi_map, ADDRESS_SPACE_PROGRAM, 8 )
|
||||
AM_RANGE( 0x53002, 0x53002 ) AM_READ_PORT( "DSW" ) AM_WRITE( fantland_soundlatch_w )
|
||||
AM_RANGE( 0x53003, 0x53003 ) AM_READ_PORT( "Controls" )
|
||||
|
||||
AM_RANGE( 0x54000, 0x567ff ) AM_RAM AM_BASE_GENERIC( spriteram )
|
||||
AM_RANGE( 0x54000, 0x567ff ) AM_RAM AM_BASE_MEMBER(fantland_state, spriteram)
|
||||
|
||||
AM_RANGE( 0x57000, 0x57000 ) AM_READ_PORT( "P1 Lightgun Y" )
|
||||
AM_RANGE( 0x57001, 0x57001 ) AM_READ_PORT( "P1 Lightgun X" )
|
||||
AM_RANGE( 0x57002, 0x57002 ) AM_READ_PORT( "P2 Lightgun Y" )
|
||||
AM_RANGE( 0x57003, 0x57003 ) AM_READ_PORT( "P2 Lightgun X" )
|
||||
|
||||
AM_RANGE( 0x60000, 0x6ffff ) AM_RAM AM_BASE_GENERIC( spriteram2 )
|
||||
AM_RANGE( 0x60000, 0x6ffff ) AM_RAM AM_BASE_MEMBER(fantland_state, spriteram2)
|
||||
|
||||
AM_RANGE( 0x70000, 0x7ffff ) AM_ROM
|
||||
AM_RANGE( 0xf0000, 0xfffff ) AM_ROM
|
||||
@ -275,8 +279,8 @@ static ADDRESS_MAP_START( wheelrun_map, ADDRESS_SPACE_PROGRAM, 8 )
|
||||
AM_RANGE(0x53002, 0x53002) AM_READ_PORT( "53002" ) AM_WRITE( fantland_soundlatch_w )
|
||||
AM_RANGE(0x53003, 0x53003) AM_READ_PORT( "53003" ) AM_WRITENOP
|
||||
|
||||
AM_RANGE(0x54000, 0x567ff) AM_RAM AM_BASE_GENERIC(spriteram )
|
||||
AM_RANGE(0x60000, 0x6ffff) AM_RAM AM_BASE_GENERIC(spriteram2 )
|
||||
AM_RANGE(0x54000, 0x567ff) AM_RAM AM_BASE_MEMBER(fantland_state, spriteram)
|
||||
AM_RANGE(0x60000, 0x6ffff) AM_RAM AM_BASE_MEMBER(fantland_state, spriteram2)
|
||||
|
||||
AM_RANGE(0xf0000, 0xfffff) AM_ROM
|
||||
ADDRESS_MAP_END
|
||||
|
@ -71,6 +71,7 @@ public:
|
||||
: driver_device(machine, config) { }
|
||||
|
||||
UINT16 x;
|
||||
UINT32 *spriteram;
|
||||
};
|
||||
|
||||
|
||||
@ -83,7 +84,8 @@ static VIDEO_START( feversoc )
|
||||
|
||||
static SCREEN_UPDATE( feversoc )
|
||||
{
|
||||
UINT32 *spriteram32 = screen->machine->generic.spriteram.u32;
|
||||
feversoc_state *state = screen->machine->driver_data<feversoc_state>();
|
||||
UINT32 *spriteram32 = state->spriteram;
|
||||
int offs,spr_offs,colour,sx,sy,h,w,dx,dy;
|
||||
|
||||
bitmap_fill(bitmap, cliprect, screen->machine->pens[0]); //black pen
|
||||
@ -161,7 +163,7 @@ static WRITE32_HANDLER( output_w )
|
||||
static ADDRESS_MAP_START( feversoc_map, ADDRESS_SPACE_PROGRAM, 32 )
|
||||
AM_RANGE(0x00000000, 0x0003ffff) AM_ROM
|
||||
AM_RANGE(0x02000000, 0x0203dfff) AM_RAM //work ram
|
||||
AM_RANGE(0x0203e000, 0x0203ffff) AM_RAM AM_BASE_GENERIC(spriteram)
|
||||
AM_RANGE(0x0203e000, 0x0203ffff) AM_RAM AM_BASE_MEMBER(feversoc_state, spriteram)
|
||||
AM_RANGE(0x06000000, 0x06000003) AM_WRITE(output_w)
|
||||
AM_RANGE(0x06000004, 0x06000007) AM_WRITENOP //???
|
||||
AM_RANGE(0x06000008, 0x0600000b) AM_READ(in0_r)
|
||||
|
@ -55,6 +55,7 @@ public:
|
||||
UINT8 sound_to_main_flag;
|
||||
UINT8 main_to_sound_flag;
|
||||
int sprite_bank;
|
||||
UINT8 *spriteram;
|
||||
};
|
||||
|
||||
|
||||
@ -191,7 +192,7 @@ static SCREEN_UPDATE( firefox )
|
||||
|
||||
for( sprite = 0; sprite < 32; sprite++ )
|
||||
{
|
||||
UINT8 *sprite_data = screen->machine->generic.spriteram.u8 + ( 0x200 * state->sprite_bank ) + ( sprite * 16 );
|
||||
UINT8 *sprite_data = state->spriteram + ( 0x200 * state->sprite_bank ) + ( sprite * 16 );
|
||||
int flags = sprite_data[ 0 ];
|
||||
int y = sprite_data[ 1 ] + ( 256 * ( ( flags >> 0 ) & 1 ) );
|
||||
int x = sprite_data[ 2 ] + ( 256 * ( ( flags >> 1 ) & 1 ) );
|
||||
@ -489,7 +490,7 @@ static MACHINE_START( firefox )
|
||||
static ADDRESS_MAP_START( main_map, ADDRESS_SPACE_PROGRAM, 8)
|
||||
AM_RANGE(0x0000, 0x0fff) AM_RAM
|
||||
AM_RANGE(0x1000, 0x1fff) AM_RAM_WRITE(tileram_w) AM_BASE_MEMBER(firefox_state, tileram)
|
||||
AM_RANGE(0x2000, 0x27ff) AM_RAM AM_BASE_GENERIC(spriteram)
|
||||
AM_RANGE(0x2000, 0x27ff) AM_RAM AM_BASE_MEMBER(firefox_state, spriteram)
|
||||
AM_RANGE(0x2800, 0x2aff) AM_RAM_WRITE(sprite_palette_w) AM_BASE_MEMBER(firefox_state, sprite_palette)
|
||||
AM_RANGE(0x2b00, 0x2b00) AM_MIRROR(0x04ff) AM_WRITE(firefox_objram_bank_w)
|
||||
AM_RANGE(0x2c00, 0x2eff) AM_RAM_WRITE(tile_palette_w) AM_BASE_MEMBER(firefox_state, tile_palette)
|
||||
|
@ -117,7 +117,7 @@ static ADDRESS_MAP_START( flower_cpu1_2, ADDRESS_SPACE_PROGRAM, 8 )
|
||||
AM_RANGE(0xa103, 0xa103) AM_READ_PORT("IN1CPU0")
|
||||
AM_RANGE(0xa400, 0xa400) AM_WRITE(sound_command_w)
|
||||
AM_RANGE(0xc000, 0xddff) AM_SHARE("share1") AM_RAM
|
||||
AM_RANGE(0xde00, 0xdfff) AM_SHARE("share2") AM_RAM AM_BASE_GENERIC(spriteram)
|
||||
AM_RANGE(0xde00, 0xdfff) AM_SHARE("share2") AM_RAM AM_BASE_MEMBER(flower_state, spriteram)
|
||||
AM_RANGE(0xe000, 0xe7ff) AM_SHARE("share3") AM_RAM_WRITE(flower_textram_w) AM_BASE(&flower_textram)
|
||||
AM_RANGE(0xe000, 0xefff) AM_SHARE("share4") AM_RAM //only cleared?
|
||||
AM_RANGE(0xf000, 0xf1ff) AM_SHARE("share5") AM_RAM_WRITE(flower_bg0ram_w) AM_BASE(&flower_bg0ram)
|
||||
@ -238,7 +238,7 @@ static INTERRUPT_GEN( flower_cpu0_interrupt )
|
||||
cpu_set_input_line(device, 0, ASSERT_LINE);
|
||||
}
|
||||
|
||||
static MACHINE_CONFIG_START( flower, driver_device )
|
||||
static MACHINE_CONFIG_START( flower, flower_state )
|
||||
|
||||
/* basic machine hardware */
|
||||
MCFG_CPU_ADD("maincpu", Z80,8000000)
|
||||
|
@ -216,7 +216,7 @@ static ADDRESS_MAP_START( main_map, ADDRESS_SPACE_PROGRAM, 16 )
|
||||
AM_RANGE(0x000000, 0x00ffff) AM_MIRROR(0x3e0000) AM_ROM
|
||||
AM_RANGE(0x014000, 0x014fff) AM_MIRROR(0x3e3000) AM_RAM
|
||||
AM_RANGE(0x018000, 0x018fff) AM_MIRROR(0x3e3000) AM_RAM
|
||||
AM_RANGE(0x01c000, 0x01c0ff) AM_MIRROR(0x3e3f00) AM_RAM AM_BASE_GENERIC(spriteram)
|
||||
AM_RANGE(0x01c000, 0x01c0ff) AM_MIRROR(0x3e3f00) AM_RAM AM_BASE_MEMBER(foodf_state, spriteram)
|
||||
AM_RANGE(0x800000, 0x8007ff) AM_MIRROR(0x03f800) AM_RAM_WRITE(atarigen_playfield_w) AM_BASE_MEMBER(foodf_state, playfield)
|
||||
AM_RANGE(0x900000, 0x9001ff) AM_MIRROR(0x03fe00) AM_DEVREADWRITE8_MODERN("nvram", x2212_device, read, write, 0x00ff)
|
||||
AM_RANGE(0x940000, 0x940007) AM_MIRROR(0x023ff8) AM_READ(analog_r)
|
||||
|
@ -175,7 +175,7 @@ static WRITE32_HANDLER( galastrm_adstick_ctrl_w )
|
||||
static ADDRESS_MAP_START( galastrm_map, ADDRESS_SPACE_PROGRAM, 32 )
|
||||
AM_RANGE(0x000000, 0x0fffff) AM_ROM
|
||||
AM_RANGE(0x200000, 0x21ffff) AM_RAM AM_BASE_MEMBER(galastrm_state, ram) /* main CPUA ram */
|
||||
AM_RANGE(0x300000, 0x303fff) AM_RAM AM_BASE_SIZE_GENERIC(spriteram)
|
||||
AM_RANGE(0x300000, 0x303fff) AM_RAM AM_BASE_SIZE_MEMBER(galastrm_state, spriteram, spriteram_size)
|
||||
AM_RANGE(0x400000, 0x400003) AM_READ_PORT("IN0")
|
||||
AM_RANGE(0x400004, 0x400007) AM_READ_PORT("IN1")
|
||||
AM_RANGE(0x400000, 0x400007) AM_WRITE(galastrm_input_w) /* eerom etc. */
|
||||
|
@ -252,7 +252,7 @@ static ADDRESS_MAP_START( comad_map, ADDRESS_SPACE_PROGRAM, 16 )
|
||||
AM_RANGE(0x500000, 0x51ffff) AM_RAM AM_BASE_MEMBER(galpanic_state, fgvideoram) AM_SIZE_MEMBER(galpanic_state, fgvideoram_size)
|
||||
AM_RANGE(0x520000, 0x53ffff) AM_RAM_WRITE(galpanic_bgvideoram_w) AM_BASE_MEMBER(galpanic_state, bgvideoram) /* + work RAM */
|
||||
AM_RANGE(0x600000, 0x6007ff) AM_RAM_WRITE(galpanic_paletteram_w) AM_BASE_GENERIC(paletteram) /* 1024 colors, but only 512 seem to be used */
|
||||
AM_RANGE(0x700000, 0x700fff) AM_RAM AM_BASE_SIZE_GENERIC(spriteram)
|
||||
AM_RANGE(0x700000, 0x700fff) AM_RAM AM_BASE_SIZE_MEMBER(galpanic_state, spriteram, spriteram_size)
|
||||
AM_RANGE(0x800000, 0x800001) AM_READ_PORT("DSW1_P1")
|
||||
AM_RANGE(0x800002, 0x800003) AM_READ_PORT("DSW2_P2")
|
||||
AM_RANGE(0x800004, 0x800005) AM_READ_PORT("SYSTEM")
|
||||
@ -271,7 +271,7 @@ static ADDRESS_MAP_START( fantsia2_map, ADDRESS_SPACE_PROGRAM, 16 )
|
||||
AM_RANGE(0x500000, 0x51ffff) AM_RAM AM_BASE_MEMBER(galpanic_state, fgvideoram) AM_SIZE_MEMBER(galpanic_state, fgvideoram_size)
|
||||
AM_RANGE(0x520000, 0x53ffff) AM_RAM_WRITE(galpanic_bgvideoram_w) AM_BASE_MEMBER(galpanic_state, bgvideoram) /* + work RAM */
|
||||
AM_RANGE(0x600000, 0x6007ff) AM_RAM_WRITE(galpanic_paletteram_w) AM_BASE_GENERIC(paletteram) /* 1024 colors, but only 512 seem to be used */
|
||||
AM_RANGE(0x700000, 0x700fff) AM_RAM AM_BASE_SIZE_GENERIC(spriteram)
|
||||
AM_RANGE(0x700000, 0x700fff) AM_RAM AM_BASE_SIZE_MEMBER(galpanic_state, spriteram, spriteram_size)
|
||||
AM_RANGE(0x800000, 0x800001) AM_READ_PORT("DSW1_P1")
|
||||
AM_RANGE(0x800002, 0x800003) AM_READ_PORT("DSW2_P2")
|
||||
AM_RANGE(0x800004, 0x800005) AM_READ_PORT("SYSTEM")
|
||||
@ -292,7 +292,7 @@ static ADDRESS_MAP_START( galhustl_map, ADDRESS_SPACE_PROGRAM, 16 )
|
||||
AM_RANGE(0x600000, 0x6007ff) AM_RAM_WRITE(galpanic_paletteram_w) AM_BASE_GENERIC(paletteram) /* 1024 colors, but only 512 seem to be used */
|
||||
AM_RANGE(0x600800, 0x600fff) AM_RAM // writes only 1?
|
||||
AM_RANGE(0x680000, 0x68001f) AM_RAM // regs?
|
||||
AM_RANGE(0x700000, 0x700fff) AM_RAM AM_BASE_SIZE_GENERIC(spriteram)
|
||||
AM_RANGE(0x700000, 0x700fff) AM_RAM AM_BASE_SIZE_MEMBER(galpanic_state, spriteram, spriteram_size)
|
||||
AM_RANGE(0x780000, 0x78001f) AM_RAM // regs?
|
||||
AM_RANGE(0x800000, 0x800001) AM_READ_PORT("DSW1_P1")
|
||||
AM_RANGE(0x800002, 0x800003) AM_READ_PORT("DSW2_P2")
|
||||
@ -317,7 +317,7 @@ static ADDRESS_MAP_START( zipzap_map, ADDRESS_SPACE_PROGRAM, 16 )
|
||||
AM_RANGE(0x580000, 0x583fff) AM_RAM_WRITE(galpanic_bgvideoram_mirror_w)
|
||||
AM_RANGE(0x600000, 0x600fff) AM_RAM_WRITE(galpanic_paletteram_w) AM_BASE_GENERIC(paletteram) /* 1024 colors, but only 512 seem to be used */
|
||||
AM_RANGE(0x680000, 0x68001f) AM_RAM
|
||||
AM_RANGE(0x700000, 0x700fff) AM_RAM AM_BASE_SIZE_GENERIC(spriteram)
|
||||
AM_RANGE(0x700000, 0x700fff) AM_RAM AM_BASE_SIZE_MEMBER(galpanic_state, spriteram, spriteram_size)
|
||||
AM_RANGE(0x701000, 0x71ffff) AM_RAM
|
||||
AM_RANGE(0x780000, 0x78001f) AM_RAM
|
||||
AM_RANGE(0x800000, 0x800001) AM_READ_PORT("DSW1_P1")
|
||||
@ -338,7 +338,7 @@ static ADDRESS_MAP_START( supmodel_map, ADDRESS_SPACE_PROGRAM, 16 )
|
||||
// AM_RANGE(0x580000, 0x583fff) AM_RAM_WRITE(galpanic_bgvideoram_mirror_w) // can't be right, causes half the display to vanish at times!
|
||||
AM_RANGE(0x600000, 0x600fff) AM_RAM_WRITE(galpanic_paletteram_w) AM_BASE_GENERIC(paletteram) /* 1024 colors, but only 512 seem to be used */
|
||||
AM_RANGE(0x680000, 0x68001f) AM_RAM
|
||||
AM_RANGE(0x700000, 0x700fff) AM_RAM AM_BASE_SIZE_GENERIC(spriteram)
|
||||
AM_RANGE(0x700000, 0x700fff) AM_RAM AM_BASE_SIZE_MEMBER(galpanic_state, spriteram, spriteram_size)
|
||||
AM_RANGE(0x780000, 0x78001f) AM_RAM
|
||||
AM_RANGE(0x800000, 0x800001) AM_READ_PORT("DSW1_P1")
|
||||
AM_RANGE(0x800002, 0x800003) AM_READ_PORT("DSW2_P2")
|
||||
|
@ -376,7 +376,7 @@ static MACHINE_RESET( ppking )
|
||||
|
||||
static ADDRESS_MAP_START( ppking_cpu1_map, ADDRESS_SPACE_PROGRAM, 8 )
|
||||
AM_RANGE(0x0000, 0xbfff) AM_ROM
|
||||
AM_RANGE(0xc000, 0xcbff) AM_RAM AM_BASE_GENERIC(spriteram)
|
||||
AM_RANGE(0xc000, 0xcbff) AM_RAM AM_BASE_MEMBER(gladiatr_state, spriteram)
|
||||
AM_RANGE(0xcc00, 0xcfff) AM_WRITE(ppking_video_registers_w)
|
||||
AM_RANGE(0xd000, 0xd7ff) AM_RAM_WRITE(gladiatr_paletteram_w) AM_BASE_GENERIC(paletteram)
|
||||
AM_RANGE(0xd800, 0xdfff) AM_RAM_WRITE(gladiatr_videoram_w) AM_BASE_MEMBER(gladiatr_state, videoram)
|
||||
@ -414,7 +414,7 @@ ADDRESS_MAP_END
|
||||
static ADDRESS_MAP_START( gladiatr_cpu1_map, ADDRESS_SPACE_PROGRAM, 8 )
|
||||
AM_RANGE(0x0000, 0x5fff) AM_ROM
|
||||
AM_RANGE(0x6000, 0xbfff) AM_ROMBANK("bank1")
|
||||
AM_RANGE(0xc000, 0xcbff) AM_RAM AM_BASE_GENERIC(spriteram)
|
||||
AM_RANGE(0xc000, 0xcbff) AM_RAM AM_BASE_MEMBER(gladiatr_state, spriteram)
|
||||
AM_RANGE(0xcc00, 0xcfff) AM_WRITE(gladiatr_video_registers_w)
|
||||
AM_RANGE(0xd000, 0xd7ff) AM_RAM_WRITE(gladiatr_paletteram_w) AM_BASE_GENERIC(paletteram)
|
||||
AM_RANGE(0xd800, 0xdfff) AM_RAM_WRITE(gladiatr_videoram_w) AM_BASE_MEMBER(gladiatr_state, videoram)
|
||||
|
@ -64,6 +64,7 @@ public:
|
||||
: driver_device(machine, config) { }
|
||||
|
||||
UINT16 mux_data;
|
||||
UINT8 *spriteram;
|
||||
};
|
||||
|
||||
|
||||
@ -110,7 +111,7 @@ static ADDRESS_MAP_START( goodejan_map, ADDRESS_SPACE_PROGRAM, 16 )
|
||||
/*Guess: these two aren't used/initialized at all.*/
|
||||
AM_RANGE(0x0e000, 0x0e7ff) AM_RAM_WRITE(seibucrtc_sc1vram_w) AM_BASE(&seibucrtc_sc1vram)
|
||||
AM_RANGE(0x0e800, 0x0efff) AM_RAM_WRITE(seibucrtc_sc2vram_w) AM_BASE(&seibucrtc_sc2vram)
|
||||
AM_RANGE(0x0f800, 0x0ffff) AM_RAM AM_BASE_GENERIC(spriteram)
|
||||
AM_RANGE(0x0f800, 0x0ffff) AM_RAM AM_BASE_MEMBER(goodejan_state, spriteram)
|
||||
AM_RANGE(0xc0000, 0xfffff) AM_ROM
|
||||
ADDRESS_MAP_END
|
||||
|
||||
|
@ -701,7 +701,7 @@ static INTERRUPT_GEN( gottlieb_interrupt )
|
||||
static ADDRESS_MAP_START( reactor_map, ADDRESS_SPACE_PROGRAM, 8 )
|
||||
ADDRESS_MAP_GLOBAL_MASK(0xffff)
|
||||
AM_RANGE(0x0000, 0x1fff) AM_RAM
|
||||
AM_RANGE(0x2000, 0x20ff) AM_MIRROR(0x0f00) AM_WRITEONLY AM_BASE_GENERIC(spriteram) /* FRSEL */
|
||||
AM_RANGE(0x2000, 0x20ff) AM_MIRROR(0x0f00) AM_WRITEONLY AM_BASE_MEMBER(gottlieb_state, spriteram) /* FRSEL */
|
||||
AM_RANGE(0x3000, 0x33ff) AM_MIRROR(0x0c00) AM_RAM_WRITE(gottlieb_videoram_w) AM_BASE_MEMBER(gottlieb_state, videoram) /* BRSEL */
|
||||
AM_RANGE(0x4000, 0x4fff) AM_RAM_WRITE(gottlieb_charram_w) AM_BASE_MEMBER(gottlieb_state, charram) /* BOJRSEL1 */
|
||||
/* AM_RANGE(0x5000, 0x5fff) AM_WRITE() */ /* BOJRSEL2 */
|
||||
@ -724,7 +724,7 @@ static ADDRESS_MAP_START( gottlieb_map, ADDRESS_SPACE_PROGRAM, 8 )
|
||||
AM_RANGE(0x0000, 0x0fff) AM_RAM AM_SHARE("nvram")
|
||||
AM_RANGE(0x1000, 0x1fff) AM_RAM AM_REGION("maincpu", 0x1000) /* or ROM */
|
||||
AM_RANGE(0x2000, 0x2fff) AM_RAM AM_REGION("maincpu", 0x2000) /* or ROM */
|
||||
AM_RANGE(0x3000, 0x30ff) AM_MIRROR(0x0700) AM_WRITEONLY AM_BASE_GENERIC(spriteram) /* FRSEL */
|
||||
AM_RANGE(0x3000, 0x30ff) AM_MIRROR(0x0700) AM_WRITEONLY AM_BASE_MEMBER(gottlieb_state, spriteram) /* FRSEL */
|
||||
AM_RANGE(0x3800, 0x3bff) AM_MIRROR(0x0400) AM_RAM_WRITE(gottlieb_videoram_w) AM_BASE_MEMBER(gottlieb_state, videoram) /* BRSEL */
|
||||
AM_RANGE(0x4000, 0x4fff) AM_RAM_WRITE(gottlieb_charram_w) AM_BASE_MEMBER(gottlieb_state, charram) /* BOJRSEL1 */
|
||||
AM_RANGE(0x5000, 0x501f) AM_MIRROR(0x07e0) AM_WRITE(gottlieb_paletteram_w) AM_BASE_GENERIC(paletteram) /* COLSEL */
|
||||
|
@ -307,7 +307,7 @@ static WRITE8_HANDLER( gridlee_coin_counter_w )
|
||||
|
||||
/* CPU 1 read addresses */
|
||||
static ADDRESS_MAP_START( cpu1_map, ADDRESS_SPACE_PROGRAM, 8 )
|
||||
AM_RANGE(0x0000, 0x07ff) AM_RAM AM_BASE_GENERIC(spriteram)
|
||||
AM_RANGE(0x0000, 0x07ff) AM_RAM AM_BASE_MEMBER(gridlee_state, spriteram)
|
||||
AM_RANGE(0x0800, 0x7fff) AM_RAM_WRITE(gridlee_videoram_w) AM_BASE_MEMBER(gridlee_state, videoram)
|
||||
AM_RANGE(0x9000, 0x9000) AM_WRITE(led_0_w)
|
||||
AM_RANGE(0x9010, 0x9010) AM_WRITE(led_1_w)
|
||||
|
@ -218,7 +218,7 @@ static WRITE32_HANDLER( motor_control_w )
|
||||
static ADDRESS_MAP_START( groundfx_map, ADDRESS_SPACE_PROGRAM, 32 )
|
||||
AM_RANGE(0x000000, 0x1fffff) AM_ROM
|
||||
AM_RANGE(0x200000, 0x21ffff) AM_RAM AM_BASE_MEMBER(groundfx_state, ram) /* main CPUA ram */
|
||||
AM_RANGE(0x300000, 0x303fff) AM_RAM AM_BASE_SIZE_GENERIC(spriteram) /* sprite ram */
|
||||
AM_RANGE(0x300000, 0x303fff) AM_RAM AM_BASE_SIZE_MEMBER(groundfx_state, spriteram, spriteram_size) /* sprite ram */
|
||||
AM_RANGE(0x400000, 0x400003) AM_WRITE(motor_control_w) /* gun vibration */
|
||||
AM_RANGE(0x500000, 0x500003) AM_READ_PORT("BUTTONS")
|
||||
AM_RANGE(0x500004, 0x500007) AM_READ_PORT("SYSTEM")
|
||||
|
@ -194,7 +194,7 @@ static WRITE32_HANDLER( gunbustr_gun_w )
|
||||
static ADDRESS_MAP_START( gunbustr_map, ADDRESS_SPACE_PROGRAM, 32 )
|
||||
AM_RANGE(0x000000, 0x0fffff) AM_ROM
|
||||
AM_RANGE(0x200000, 0x21ffff) AM_RAM AM_BASE_MEMBER(gunbustr_state, ram) /* main CPUA ram */
|
||||
AM_RANGE(0x300000, 0x301fff) AM_RAM AM_BASE_SIZE_GENERIC(spriteram) /* Sprite ram */
|
||||
AM_RANGE(0x300000, 0x301fff) AM_RAM AM_BASE_SIZE_MEMBER(gunbustr_state, spriteram, spriteram_size) /* Sprite ram */
|
||||
AM_RANGE(0x380000, 0x380003) AM_WRITE(motor_control_w) /* motor, lamps etc. */
|
||||
AM_RANGE(0x390000, 0x3907ff) AM_RAM AM_SHARE("f3_shared") /* Sound shared ram */
|
||||
AM_RANGE(0x400000, 0x400003) AM_READ_PORT("P1_P2")
|
||||
|
@ -75,6 +75,7 @@ public:
|
||||
UINT8 scramble_data;
|
||||
int irq1_enable;
|
||||
int irq2_enable;
|
||||
UINT8 *spriteram;
|
||||
};
|
||||
|
||||
|
||||
@ -161,12 +162,14 @@ static WRITE16_HANDLER( bg_lsb_w )
|
||||
|
||||
static READ16_HANDLER( spriteram_lsb_r )
|
||||
{
|
||||
return space->machine->generic.spriteram.u8[offset];
|
||||
igs017_state *state = space->machine->driver_data<igs017_state>();
|
||||
return state->spriteram[offset];
|
||||
}
|
||||
static WRITE16_HANDLER( spriteram_lsb_w )
|
||||
{
|
||||
igs017_state *state = space->machine->driver_data<igs017_state>();
|
||||
if (ACCESSING_BITS_0_7)
|
||||
space->machine->generic.spriteram.u8[offset] = data;
|
||||
state->spriteram[offset] = data;
|
||||
}
|
||||
|
||||
|
||||
@ -262,8 +265,9 @@ static void draw_sprite(running_machine *machine, bitmap_t *bitmap,const rectang
|
||||
|
||||
static void draw_sprites(running_machine *machine, bitmap_t *bitmap,const rectangle *cliprect)
|
||||
{
|
||||
UINT8 *s = machine->generic.spriteram.u8;
|
||||
UINT8 *end = machine->generic.spriteram.u8 + 0x800;
|
||||
igs017_state *state = machine->driver_data<igs017_state>();
|
||||
UINT8 *s = state->spriteram;
|
||||
UINT8 *end = state->spriteram + 0x800;
|
||||
|
||||
for ( ; s < end; s += 8 )
|
||||
{
|
||||
@ -1140,7 +1144,7 @@ static READ8_HANDLER( input_r )
|
||||
static ADDRESS_MAP_START( iqblocka_io, ADDRESS_SPACE_IO, 8 )
|
||||
AM_RANGE( 0x0000, 0x003f ) AM_RAM // internal regs
|
||||
|
||||
AM_RANGE( 0x1000, 0x17ff ) AM_RAM AM_BASE_GENERIC( spriteram )
|
||||
AM_RANGE( 0x1000, 0x17ff ) AM_RAM AM_BASE_MEMBER(igs017_state, spriteram)
|
||||
AM_RANGE( 0x1800, 0x1bff ) AM_RAM_WRITE( paletteram_xRRRRRGGGGGBBBBB_le_w ) AM_BASE_GENERIC(paletteram)
|
||||
AM_RANGE( 0x1c00, 0x1fff ) AM_RAM
|
||||
|
||||
@ -1272,7 +1276,7 @@ static ADDRESS_MAP_START( mgcs, ADDRESS_SPACE_PROGRAM, 16 )
|
||||
AM_RANGE( 0x300000, 0x303fff ) AM_RAM
|
||||
AM_RANGE( 0x49c000, 0x49c003 ) AM_WRITE( mgcs_magic_w )
|
||||
AM_RANGE( 0x49c002, 0x49c003 ) AM_READ ( mgcs_magic_r )
|
||||
AM_RANGE( 0xa02000, 0xa02fff ) AM_READWRITE( spriteram_lsb_r, spriteram_lsb_w ) AM_BASE_GENERIC( spriteram )
|
||||
AM_RANGE( 0xa02000, 0xa02fff ) AM_READWRITE( spriteram_lsb_r, spriteram_lsb_w ) AM_BASE_MEMBER(igs017_state, spriteram)
|
||||
AM_RANGE( 0xa03000, 0xa037ff ) AM_RAM_WRITE( mgcs_paletteram_xRRRRRGGGGGBBBBB_w ) AM_BASE_GENERIC( paletteram )
|
||||
AM_RANGE( 0xa04020, 0xa04027 ) AM_DEVREAD8( "ppi8255", ppi8255_r, 0x00ff )
|
||||
AM_RANGE( 0xa04024, 0xa04025 ) AM_WRITE( video_disable_lsb_w )
|
||||
@ -1373,7 +1377,7 @@ static READ16_HANDLER( sdmg2_magic_r )
|
||||
static ADDRESS_MAP_START( sdmg2, ADDRESS_SPACE_PROGRAM, 16 )
|
||||
AM_RANGE(0x000000, 0x07ffff) AM_ROM
|
||||
AM_RANGE(0x1f0000, 0x1fffff) AM_RAM
|
||||
AM_RANGE(0x202000, 0x202fff) AM_READWRITE( spriteram_lsb_r, spriteram_lsb_w ) AM_BASE_GENERIC( spriteram )
|
||||
AM_RANGE(0x202000, 0x202fff) AM_READWRITE( spriteram_lsb_r, spriteram_lsb_w ) AM_BASE_MEMBER(igs017_state, spriteram)
|
||||
AM_RANGE(0x203000, 0x2037ff) AM_RAM_WRITE( sdmg2_paletteram_xRRRRRGGGGGBBBBB_w ) AM_BASE_GENERIC( paletteram )
|
||||
AM_RANGE(0x204020, 0x204027) AM_DEVREAD8( "ppi8255", ppi8255_r, 0x00ff )
|
||||
AM_RANGE(0x204024, 0x204025) AM_WRITE( video_disable_lsb_w )
|
||||
@ -1496,7 +1500,7 @@ static ADDRESS_MAP_START( mgdha_map, ADDRESS_SPACE_PROGRAM, 16 )
|
||||
AM_RANGE(0x600000, 0x603fff) AM_RAM
|
||||
AM_RANGE(0x876000, 0x876003) AM_WRITE( mgdha_magic_w )
|
||||
AM_RANGE(0x876002, 0x876003) AM_READ ( mgdha_magic_r )
|
||||
AM_RANGE(0xa02000, 0xa02fff) AM_READWRITE( spriteram_lsb_r, spriteram_lsb_w ) AM_BASE_GENERIC( spriteram )
|
||||
AM_RANGE(0xa02000, 0xa02fff) AM_READWRITE( spriteram_lsb_r, spriteram_lsb_w ) AM_BASE_MEMBER(igs017_state, spriteram)
|
||||
AM_RANGE(0xa03000, 0xa037ff) AM_RAM_WRITE( sdmg2_paletteram_xRRRRRGGGGGBBBBB_w ) AM_BASE_GENERIC( paletteram )
|
||||
// AM_RANGE(0xa04014, 0xa04015) // written with FF at boot
|
||||
AM_RANGE(0xa04020, 0xa04027) AM_DEVREAD8( "ppi8255", ppi8255_r, 0x00ff )
|
||||
|
@ -104,6 +104,19 @@
|
||||
#include "sound/namco.h"
|
||||
|
||||
|
||||
class jrpacman_state : public driver_device
|
||||
{
|
||||
public:
|
||||
jrpacman_state(running_machine &machine, const driver_device_config_base &config)
|
||||
: driver_device(machine, config) { }
|
||||
|
||||
UINT8 *spriteram;
|
||||
UINT8 *spriteram2;
|
||||
size_t spriteram_size;
|
||||
};
|
||||
|
||||
|
||||
|
||||
static WRITE8_HANDLER( jrpacman_interrupt_vector_w )
|
||||
{
|
||||
cpu_set_input_line_vector(space->machine->device("maincpu"), 0, data);
|
||||
@ -122,14 +135,14 @@ static ADDRESS_MAP_START( main_map, ADDRESS_SPACE_PROGRAM, 8 )
|
||||
AM_RANGE(0x0000, 0x3fff) AM_ROM
|
||||
AM_RANGE(0x4000, 0x47ff) AM_RAM_WRITE(jrpacman_videoram_w) AM_BASE(&pacman_videoram)
|
||||
AM_RANGE(0x4800, 0x4fef) AM_RAM
|
||||
AM_RANGE(0x4ff0, 0x4fff) AM_RAM AM_BASE_SIZE_GENERIC(spriteram)
|
||||
AM_RANGE(0x4ff0, 0x4fff) AM_RAM AM_BASE_SIZE_MEMBER(jrpacman_state, spriteram, spriteram_size)
|
||||
AM_RANGE(0x5000, 0x503f) AM_READ_PORT("P1")
|
||||
AM_RANGE(0x5000, 0x5000) AM_WRITE(interrupt_enable_w)
|
||||
AM_RANGE(0x5001, 0x5001) AM_DEVWRITE("namco", pacman_sound_enable_w)
|
||||
AM_RANGE(0x5003, 0x5003) AM_WRITE(pacman_flipscreen_w)
|
||||
AM_RANGE(0x5040, 0x507f) AM_READ_PORT("P2")
|
||||
AM_RANGE(0x5040, 0x505f) AM_DEVWRITE("namco", pacman_sound_w)
|
||||
AM_RANGE(0x5060, 0x506f) AM_WRITEONLY AM_BASE_GENERIC(spriteram2)
|
||||
AM_RANGE(0x5060, 0x506f) AM_WRITEONLY AM_BASE_MEMBER(jrpacman_state, spriteram2)
|
||||
AM_RANGE(0x5070, 0x5070) AM_WRITE(pengo_palettebank_w)
|
||||
AM_RANGE(0x5071, 0x5071) AM_WRITE(pengo_colortablebank_w)
|
||||
AM_RANGE(0x5073, 0x5073) AM_WRITE(jrpacman_bgpriority_w)
|
||||
@ -263,7 +276,7 @@ static const namco_interface namco_config =
|
||||
*
|
||||
*************************************/
|
||||
|
||||
static MACHINE_CONFIG_START( jrpacman, driver_device )
|
||||
static MACHINE_CONFIG_START( jrpacman, jrpacman_state )
|
||||
|
||||
/* basic machine hardware */
|
||||
MCFG_CPU_ADD("maincpu", Z80, 18432000/6) /* 3.072 MHz */
|
||||
|
@ -88,6 +88,7 @@ public:
|
||||
UINT8 p1_hopper;
|
||||
UINT8 p2_hopper;
|
||||
UINT8 mux_data;
|
||||
UINT8 *spriteram;
|
||||
};
|
||||
|
||||
|
||||
@ -159,7 +160,8 @@ static VIDEO_START(kingdrby)
|
||||
|
||||
static void draw_sprites(running_machine *machine, bitmap_t *bitmap, const rectangle *cliprect)
|
||||
{
|
||||
UINT8 *spriteram = machine->generic.spriteram.u8;
|
||||
kingdrby_state *state = machine->driver_data<kingdrby_state>();
|
||||
UINT8 *spriteram = state->spriteram;
|
||||
int count = 0;
|
||||
|
||||
/*sprites not fully understood.*/
|
||||
@ -388,7 +390,7 @@ static ADDRESS_MAP_START( slave_map, ADDRESS_SPACE_PROGRAM, 8 )
|
||||
AM_RANGE(0x5000, 0x5003) AM_DEVREADWRITE("ppi8255_0", ppi8255_r, ppi8255_w) /* I/O Ports */
|
||||
AM_RANGE(0x6000, 0x6003) AM_DEVREADWRITE("ppi8255_1", ppi8255_r, ppi8255_w) /* I/O Ports */
|
||||
AM_RANGE(0x7000, 0x73ff) AM_RAM AM_SHARE("share1")
|
||||
AM_RANGE(0x7400, 0x74ff) AM_RAM AM_BASE_GENERIC(spriteram)
|
||||
AM_RANGE(0x7400, 0x74ff) AM_RAM AM_BASE_MEMBER(kingdrby_state, spriteram)
|
||||
AM_RANGE(0x7600, 0x7600) AM_DEVWRITE("crtc", mc6845_address_w)
|
||||
AM_RANGE(0x7601, 0x7601) AM_DEVREADWRITE("crtc", mc6845_register_r, mc6845_register_w)
|
||||
AM_RANGE(0x7801, 0x780f) AM_WRITE(led_array_w)
|
||||
@ -408,7 +410,7 @@ static ADDRESS_MAP_START( slave_1986_map, ADDRESS_SPACE_PROGRAM, 8 )
|
||||
AM_RANGE(0x5000, 0x5003) AM_DEVREADWRITE("ppi8255_0", ppi8255_r, ppi8255_w) /* I/O Ports */
|
||||
// AM_RANGE(0x6000, 0x6003) AM_DEVREADWRITE("ppi8255_1", ppi8255_r, ppi8255_w) /* I/O Ports */
|
||||
AM_RANGE(0x7000, 0x73ff) AM_RAM AM_SHARE("share1")
|
||||
AM_RANGE(0x7400, 0x74ff) AM_RAM AM_BASE_GENERIC(spriteram)
|
||||
AM_RANGE(0x7400, 0x74ff) AM_RAM AM_BASE_MEMBER(kingdrby_state, spriteram)
|
||||
AM_RANGE(0x7600, 0x7600) AM_DEVWRITE("crtc", mc6845_address_w)
|
||||
AM_RANGE(0x7601, 0x7601) AM_DEVREADWRITE("crtc", mc6845_register_r, mc6845_register_w)
|
||||
AM_RANGE(0x7800, 0x7800) AM_READ_PORT("KEY0")
|
||||
|
@ -29,6 +29,19 @@
|
||||
#include "sound/okim6295.h"
|
||||
#include "cpu/mcs51/mcs51.h"
|
||||
|
||||
|
||||
class limenko_state : public driver_device
|
||||
{
|
||||
public:
|
||||
limenko_state(running_machine &machine, const driver_device_config_base &config)
|
||||
: driver_device(machine, config) { }
|
||||
|
||||
UINT32 *spriteram;
|
||||
UINT32 *spriteram2;
|
||||
size_t spriteram_size;
|
||||
};
|
||||
|
||||
|
||||
static tilemap_t *bg_tilemap, *md_tilemap, *fg_tilemap;
|
||||
static UINT32 *bg_videoram, *md_videoram, *fg_videoram, *limenko_videoreg;
|
||||
|
||||
@ -99,6 +112,7 @@ static CUSTOM_INPUT( spriteram_bit_r )
|
||||
|
||||
static WRITE32_HANDLER( spriteram_buffer_w )
|
||||
{
|
||||
limenko_state *state = space->machine->driver_data<limenko_state>();
|
||||
rectangle clip;
|
||||
clip.min_x = 0;
|
||||
clip.max_x = 383;
|
||||
@ -114,12 +128,12 @@ static WRITE32_HANDLER( spriteram_buffer_w )
|
||||
if(spriteram_bit)
|
||||
{
|
||||
// draw the sprites to the frame buffer
|
||||
draw_sprites(space->machine,space->machine->generic.spriteram2.u32,&clip,prev_sprites_count);
|
||||
draw_sprites(space->machine,state->spriteram2,&clip,prev_sprites_count);
|
||||
}
|
||||
else
|
||||
{
|
||||
// draw the sprites to the frame buffer
|
||||
draw_sprites(space->machine,space->machine->generic.spriteram.u32,&clip,prev_sprites_count);
|
||||
draw_sprites(space->machine,state->spriteram,&clip,prev_sprites_count);
|
||||
}
|
||||
|
||||
// buffer the next number of sprites to draw
|
||||
@ -136,8 +150,8 @@ static ADDRESS_MAP_START( limenko_map, ADDRESS_SPACE_PROGRAM, 32 )
|
||||
AM_RANGE(0x80000000, 0x80007fff) AM_RAM_WRITE(fg_videoram_w) AM_BASE(&fg_videoram)
|
||||
AM_RANGE(0x80008000, 0x8000ffff) AM_RAM_WRITE(md_videoram_w) AM_BASE(&md_videoram)
|
||||
AM_RANGE(0x80010000, 0x80017fff) AM_RAM_WRITE(bg_videoram_w) AM_BASE(&bg_videoram)
|
||||
AM_RANGE(0x80018000, 0x80018fff) AM_RAM AM_BASE_SIZE_GENERIC(spriteram)
|
||||
AM_RANGE(0x80019000, 0x80019fff) AM_RAM AM_BASE_GENERIC(spriteram2)
|
||||
AM_RANGE(0x80018000, 0x80018fff) AM_RAM AM_BASE_SIZE_MEMBER(limenko_state, spriteram, spriteram_size)
|
||||
AM_RANGE(0x80019000, 0x80019fff) AM_RAM AM_BASE_MEMBER(limenko_state, spriteram2)
|
||||
AM_RANGE(0x8001c000, 0x8001dfff) AM_RAM_WRITE(limenko_paletteram_w) AM_BASE_GENERIC(paletteram)
|
||||
AM_RANGE(0x8001e000, 0x8001ebff) AM_RAM // ? not used
|
||||
AM_RANGE(0x8001ffec, 0x8001ffff) AM_RAM AM_BASE(&limenko_videoreg)
|
||||
@ -163,8 +177,8 @@ static ADDRESS_MAP_START( spotty_map, ADDRESS_SPACE_PROGRAM, 32 )
|
||||
AM_RANGE(0x80000000, 0x80007fff) AM_RAM_WRITE(fg_videoram_w) AM_BASE(&fg_videoram)
|
||||
AM_RANGE(0x80008000, 0x8000ffff) AM_RAM_WRITE(md_videoram_w) AM_BASE(&md_videoram)
|
||||
AM_RANGE(0x80010000, 0x80017fff) AM_RAM_WRITE(bg_videoram_w) AM_BASE(&bg_videoram)
|
||||
AM_RANGE(0x80018000, 0x80018fff) AM_RAM AM_BASE_SIZE_GENERIC(spriteram)
|
||||
AM_RANGE(0x80019000, 0x80019fff) AM_RAM AM_BASE_GENERIC(spriteram2)
|
||||
AM_RANGE(0x80018000, 0x80018fff) AM_RAM AM_BASE_SIZE_MEMBER(limenko_state, spriteram, spriteram_size)
|
||||
AM_RANGE(0x80019000, 0x80019fff) AM_RAM AM_BASE_MEMBER(limenko_state, spriteram2)
|
||||
AM_RANGE(0x8001c000, 0x8001dfff) AM_RAM_WRITE(limenko_paletteram_w) AM_BASE_GENERIC(paletteram)
|
||||
AM_RANGE(0x8001e000, 0x8001ebff) AM_RAM // ? not used
|
||||
AM_RANGE(0x8001ffec, 0x8001ffff) AM_RAM AM_BASE(&limenko_videoreg)
|
||||
@ -640,7 +654,7 @@ GFXDECODE_END
|
||||
*****************************************************************************************************/
|
||||
|
||||
|
||||
static MACHINE_CONFIG_START( limenko, driver_device )
|
||||
static MACHINE_CONFIG_START( limenko, limenko_state )
|
||||
MCFG_CPU_ADD("maincpu", E132XN, 20000000*4) /* 4x internal multiplier */
|
||||
MCFG_CPU_PROGRAM_MAP(limenko_map)
|
||||
MCFG_CPU_IO_MAP(limenko_io_map)
|
||||
@ -665,7 +679,7 @@ static MACHINE_CONFIG_START( limenko, driver_device )
|
||||
/* sound hardware */
|
||||
MACHINE_CONFIG_END
|
||||
|
||||
static MACHINE_CONFIG_START( spotty, driver_device )
|
||||
static MACHINE_CONFIG_START( spotty, limenko_state )
|
||||
MCFG_CPU_ADD("maincpu", GMS30C2232, 20000000) /* 20 MHz, no internal multiplier */
|
||||
MCFG_CPU_PROGRAM_MAP(spotty_map)
|
||||
MCFG_CPU_IO_MAP(spotty_io_map)
|
||||
|
@ -277,7 +277,7 @@ static ADDRESS_MAP_START( lordgun_map, ADDRESS_SPACE_PROGRAM, 16 )
|
||||
AM_RANGE(0x315000, 0x317fff) AM_RAM //
|
||||
AM_RANGE(0x318000, 0x319fff) AM_RAM_WRITE(lordgun_vram_3_w) AM_BASE_MEMBER(lordgun_state, vram_3) // DISPLAY
|
||||
AM_RANGE(0x31c000, 0x31c7ff) AM_RAM AM_BASE_MEMBER(lordgun_state, scrollram) // LINE
|
||||
AM_RANGE(0x400000, 0x4007ff) AM_RAM AM_BASE_SIZE_GENERIC(spriteram) // ANIMATOR
|
||||
AM_RANGE(0x400000, 0x4007ff) AM_RAM AM_BASE_SIZE_MEMBER(lordgun_state, spriteram, spriteram_size) // ANIMATOR
|
||||
AM_RANGE(0x500000, 0x500fff) AM_RAM_WRITE(lordgun_paletteram_w) AM_BASE_GENERIC(paletteram)
|
||||
AM_RANGE(0x502000, 0x502001) AM_WRITEONLY AM_BASE_MEMBER(lordgun_state, scroll_x_0)
|
||||
AM_RANGE(0x502200, 0x502201) AM_WRITEONLY AM_BASE_MEMBER(lordgun_state, scroll_x_1)
|
||||
@ -309,7 +309,7 @@ static ADDRESS_MAP_START( aliencha_map, ADDRESS_SPACE_PROGRAM, 16 )
|
||||
AM_RANGE(0x315000, 0x317fff) AM_RAM //
|
||||
AM_RANGE(0x318000, 0x319fff) AM_RAM_WRITE(lordgun_vram_3_w) AM_BASE_MEMBER(lordgun_state, vram_3) // TEXT
|
||||
AM_RANGE(0x31c000, 0x31c7ff) AM_RAM AM_BASE_MEMBER(lordgun_state, scrollram) // LINE OFFSET
|
||||
AM_RANGE(0x400000, 0x4007ff) AM_RAM AM_BASE_SIZE_GENERIC(spriteram) // ANIMATE
|
||||
AM_RANGE(0x400000, 0x4007ff) AM_RAM AM_BASE_SIZE_MEMBER(lordgun_state, spriteram, spriteram_size) // ANIMATE
|
||||
AM_RANGE(0x500000, 0x500fff) AM_RAM_WRITE(lordgun_paletteram_w) AM_BASE_GENERIC(paletteram)
|
||||
AM_RANGE(0x502000, 0x502001) AM_WRITEONLY AM_BASE_MEMBER(lordgun_state, scroll_x_0)
|
||||
AM_RANGE(0x502200, 0x502201) AM_WRITEONLY AM_BASE_MEMBER(lordgun_state, scroll_x_1)
|
||||
|
@ -208,7 +208,7 @@ static ADDRESS_MAP_START( magmax_map, ADDRESS_SPACE_PROGRAM, 16 )
|
||||
AM_RANGE(0x000000, 0x013fff) AM_ROM
|
||||
AM_RANGE(0x018000, 0x018fff) AM_RAM
|
||||
AM_RANGE(0x020000, 0x0207ff) AM_RAM AM_BASE_MEMBER(magmax_state, videoram)
|
||||
AM_RANGE(0x028000, 0x0281ff) AM_RAM AM_BASE_SIZE_GENERIC(spriteram)
|
||||
AM_RANGE(0x028000, 0x0281ff) AM_RAM AM_BASE_SIZE_MEMBER(magmax_state, spriteram, spriteram_size)
|
||||
AM_RANGE(0x030000, 0x030001) AM_READ_PORT("P1")
|
||||
AM_RANGE(0x030002, 0x030003) AM_READ_PORT("P2")
|
||||
AM_RANGE(0x030004, 0x030005) AM_READ_PORT("SYSTEM")
|
||||
|
@ -499,7 +499,7 @@ static ADDRESS_MAP_START( mcrmono_map, ADDRESS_SPACE_PROGRAM, 8 )
|
||||
ADDRESS_MAP_UNMAP_HIGH
|
||||
AM_RANGE(0x0000, 0xdfff) AM_ROM
|
||||
AM_RANGE(0xe000, 0xe7ff) AM_RAM AM_SHARE("nvram")
|
||||
AM_RANGE(0xe800, 0xe9ff) AM_RAM AM_BASE_SIZE_GENERIC(spriteram)
|
||||
AM_RANGE(0xe800, 0xe9ff) AM_RAM AM_BASE_SIZE_MEMBER(mcr3_state, spriteram, spriteram_size)
|
||||
AM_RANGE(0xea00, 0xebff) AM_RAM
|
||||
AM_RANGE(0xec00, 0xec7f) AM_MIRROR(0x0380) AM_WRITE(mcr3_paletteram_w) AM_BASE_GENERIC(paletteram)
|
||||
AM_RANGE(0xf000, 0xf7ff) AM_RAM_WRITE(mcr3_videoram_w) AM_BASE_MEMBER(mcr3_state, videoram)
|
||||
@ -535,7 +535,7 @@ static ADDRESS_MAP_START( spyhunt_map, ADDRESS_SPACE_PROGRAM, 8 )
|
||||
AM_RANGE(0xe000, 0xe7ff) AM_RAM_WRITE(spyhunt_videoram_w) AM_BASE_MEMBER(mcr3_state, videoram)
|
||||
AM_RANGE(0xe800, 0xebff) AM_MIRROR(0x0400) AM_RAM_WRITE(spyhunt_alpharam_w) AM_BASE(&spyhunt_alpharam)
|
||||
AM_RANGE(0xf000, 0xf7ff) AM_RAM AM_SHARE("nvram")
|
||||
AM_RANGE(0xf800, 0xf9ff) AM_RAM AM_BASE_SIZE_GENERIC(spriteram)
|
||||
AM_RANGE(0xf800, 0xf9ff) AM_RAM AM_BASE_SIZE_MEMBER(mcr3_state, spriteram, spriteram_size)
|
||||
AM_RANGE(0xfa00, 0xfa7f) AM_MIRROR(0x0180) AM_WRITE(mcr3_paletteram_w) AM_BASE_GENERIC(paletteram)
|
||||
ADDRESS_MAP_END
|
||||
|
||||
|
@ -313,7 +313,7 @@ static ADDRESS_MAP_START( mcr68_map, ADDRESS_SPACE_PROGRAM, 16 )
|
||||
AM_RANGE(0x060000, 0x063fff) AM_RAM
|
||||
AM_RANGE(0x070000, 0x070fff) AM_RAM_WRITE(mcr68_videoram_w) AM_BASE_MEMBER(mcr68_state, videoram)
|
||||
AM_RANGE(0x071000, 0x071fff) AM_RAM
|
||||
AM_RANGE(0x080000, 0x080fff) AM_RAM AM_BASE_SIZE_GENERIC(spriteram)
|
||||
AM_RANGE(0x080000, 0x080fff) AM_RAM AM_BASE_SIZE_MEMBER(mcr68_state, spriteram, spriteram_size)
|
||||
AM_RANGE(0x090000, 0x09007f) AM_WRITE(mcr68_paletteram_w) AM_BASE_GENERIC(paletteram)
|
||||
AM_RANGE(0x0a0000, 0x0a000f) AM_READWRITE(mcr68_6840_upper_r, mcr68_6840_upper_w)
|
||||
AM_RANGE(0x0b0000, 0x0bffff) AM_WRITE(watchdog_reset16_w)
|
||||
@ -341,7 +341,7 @@ static ADDRESS_MAP_START( zwackery_map, ADDRESS_SPACE_PROGRAM, 16 )
|
||||
AM_RANGE(0x10c000, 0x10c007) AM_DEVREADWRITE8("pia2", pia6821_r, pia6821_w, 0x00ff)
|
||||
AM_RANGE(0x800000, 0x800fff) AM_RAM_WRITE(zwackery_videoram_w) AM_BASE_MEMBER(mcr68_state, videoram)
|
||||
AM_RANGE(0x802000, 0x803fff) AM_RAM_WRITE(zwackery_paletteram_w) AM_BASE_GENERIC(paletteram)
|
||||
AM_RANGE(0xc00000, 0xc00fff) AM_RAM_WRITE(zwackery_spriteram_w) AM_BASE_SIZE_GENERIC(spriteram)
|
||||
AM_RANGE(0xc00000, 0xc00fff) AM_RAM_WRITE(zwackery_spriteram_w) AM_BASE_SIZE_MEMBER(mcr68_state, spriteram, spriteram_size)
|
||||
ADDRESS_MAP_END
|
||||
|
||||
|
||||
@ -363,7 +363,7 @@ static ADDRESS_MAP_START( pigskin_map, ADDRESS_SPACE_PROGRAM, 16 )
|
||||
AM_RANGE(0x100000, 0x100fff) AM_RAM_WRITE(mcr68_videoram_w) AM_BASE_MEMBER(mcr68_state, videoram)
|
||||
AM_RANGE(0x120000, 0x120001) AM_READWRITE(pigskin_protection_r, pigskin_protection_w)
|
||||
AM_RANGE(0x140000, 0x143fff) AM_RAM
|
||||
AM_RANGE(0x160000, 0x1607ff) AM_RAM AM_BASE_SIZE_GENERIC(spriteram)
|
||||
AM_RANGE(0x160000, 0x1607ff) AM_RAM AM_BASE_SIZE_MEMBER(mcr68_state, spriteram, spriteram_size)
|
||||
AM_RANGE(0x180000, 0x18000f) AM_READWRITE(mcr68_6840_upper_r, mcr68_6840_upper_w)
|
||||
AM_RANGE(0x1a0000, 0x1affff) AM_WRITE(archrivl_control_w)
|
||||
AM_RANGE(0x1e0000, 0x1effff) AM_READ_PORT("IN0")
|
||||
@ -385,7 +385,7 @@ static ADDRESS_MAP_START( trisport_map, ADDRESS_SPACE_PROGRAM, 16 )
|
||||
AM_RANGE(0x0a0000, 0x0affff) AM_READ_PORT("DSW")
|
||||
AM_RANGE(0x100000, 0x103fff) AM_RAM AM_SHARE("nvram")
|
||||
AM_RANGE(0x120000, 0x12007f) AM_WRITE(mcr68_paletteram_w) AM_BASE_GENERIC(paletteram)
|
||||
AM_RANGE(0x140000, 0x1407ff) AM_RAM AM_BASE_SIZE_GENERIC(spriteram)
|
||||
AM_RANGE(0x140000, 0x1407ff) AM_RAM AM_BASE_SIZE_MEMBER(mcr68_state, spriteram, spriteram_size)
|
||||
AM_RANGE(0x160000, 0x160fff) AM_RAM_WRITE(mcr68_videoram_w) AM_BASE_MEMBER(mcr68_state, videoram)
|
||||
AM_RANGE(0x180000, 0x18000f) AM_READWRITE(mcr68_6840_upper_r, mcr68_6840_upper_w)
|
||||
AM_RANGE(0x1a0000, 0x1affff) AM_WRITE(archrivl_control_w)
|
||||
|
@ -346,7 +346,7 @@ static ADDRESS_MAP_START( meadows_main_map, ADDRESS_SPACE_PROGRAM, 8 )
|
||||
AM_RANGE(0x0c02, 0x0c02) AM_READ(hsync_chain_r)
|
||||
AM_RANGE(0x0c03, 0x0c03) AM_READ_PORT("DSW")
|
||||
AM_RANGE(0x0c00, 0x0c03) AM_WRITE(meadows_audio_w)
|
||||
AM_RANGE(0x0d00, 0x0d0f) AM_WRITE(meadows_spriteram_w) AM_BASE_GENERIC(spriteram)
|
||||
AM_RANGE(0x0d00, 0x0d0f) AM_WRITE(meadows_spriteram_w) AM_BASE_MEMBER(meadows_state, spriteram)
|
||||
AM_RANGE(0x0e00, 0x0eff) AM_RAM
|
||||
AM_RANGE(0x1000, 0x1bff) AM_ROM
|
||||
AM_RANGE(0x1c00, 0x1fff) AM_RAM_WRITE(meadows_videoram_w) AM_BASE_MEMBER(meadows_state, videoram)
|
||||
@ -359,7 +359,7 @@ static ADDRESS_MAP_START( bowl3d_main_map, ADDRESS_SPACE_PROGRAM, 8 )
|
||||
AM_RANGE(0x0c02, 0x0c02) AM_READ(hsync_chain_r)
|
||||
AM_RANGE(0x0c03, 0x0c03) AM_READ_PORT("DSW")
|
||||
AM_RANGE(0x0c00, 0x0c03) AM_WRITE(meadows_audio_w)
|
||||
AM_RANGE(0x0d00, 0x0d0f) AM_WRITE(meadows_spriteram_w) AM_BASE_GENERIC(spriteram)
|
||||
AM_RANGE(0x0d00, 0x0d0f) AM_WRITE(meadows_spriteram_w) AM_BASE_MEMBER(meadows_state, spriteram)
|
||||
AM_RANGE(0x0e00, 0x0eff) AM_RAM
|
||||
AM_RANGE(0x1000, 0x1bff) AM_ROM
|
||||
AM_RANGE(0x1c00, 0x1fff) AM_RAM_WRITE(meadows_videoram_w) AM_BASE_MEMBER(meadows_state, videoram)
|
||||
|
@ -1455,7 +1455,7 @@ static const ym2151_interface ym2151_config =
|
||||
megasys1_sound_irq
|
||||
};
|
||||
|
||||
static MACHINE_CONFIG_START( system_A, driver_device )
|
||||
static MACHINE_CONFIG_START( system_A, megasys1_state )
|
||||
|
||||
/* basic machine hardware */
|
||||
MCFG_CPU_ADD("maincpu", M68000, SYS_A_CPU_CLOCK) /* 6MHz verified */
|
||||
@ -1520,7 +1520,7 @@ static MACHINE_CONFIG_DERIVED( system_B, system_A )
|
||||
MACHINE_CONFIG_END
|
||||
|
||||
|
||||
static MACHINE_CONFIG_START( system_Bbl, driver_device )
|
||||
static MACHINE_CONFIG_START( system_Bbl, megasys1_state )
|
||||
|
||||
/* basic machine hardware */
|
||||
MCFG_CPU_ADD("maincpu", M68000, SYS_B_CPU_CLOCK)
|
||||
@ -1592,7 +1592,7 @@ MACHINE_CONFIG_END
|
||||
***************************************************************************/
|
||||
|
||||
|
||||
static MACHINE_CONFIG_START( system_D, driver_device )
|
||||
static MACHINE_CONFIG_START( system_D, megasys1_state )
|
||||
|
||||
/* basic machine hardware */
|
||||
MCFG_CPU_ADD("maincpu", M68000, SYS_D_CPU_CLOCK) /* 8MHz */
|
||||
@ -1654,7 +1654,7 @@ static const ym2203_interface ym2203_config =
|
||||
irq_handler
|
||||
};
|
||||
|
||||
static MACHINE_CONFIG_START( system_Z, driver_device )
|
||||
static MACHINE_CONFIG_START( system_Z, megasys1_state )
|
||||
|
||||
/* basic machine hardware */
|
||||
MCFG_CPU_ADD("maincpu", M68000, SYS_A_CPU_CLOCK) /* 6MHz (12MHz / 2) */
|
||||
@ -3794,11 +3794,13 @@ static DRIVER_INIT( rodlandj )
|
||||
|
||||
static READ16_HANDLER( soldamj_spriteram16_r )
|
||||
{
|
||||
return space->machine->generic.spriteram.u16[offset];
|
||||
megasys1_state *state = space->machine->driver_data<megasys1_state>();
|
||||
return state->spriteram[offset];
|
||||
}
|
||||
static WRITE16_HANDLER( soldamj_spriteram16_w )
|
||||
{
|
||||
if (offset < 0x800/2) COMBINE_DATA(&space->machine->generic.spriteram.u16[offset]);
|
||||
megasys1_state *state = space->machine->driver_data<megasys1_state>();
|
||||
if (offset < 0x800/2) COMBINE_DATA(&state->spriteram[offset]);
|
||||
}
|
||||
|
||||
static DRIVER_INIT( soldamj )
|
||||
|
@ -74,6 +74,17 @@ The End
|
||||
#include "deprecat.h"
|
||||
#include "sound/ay8910.h"
|
||||
|
||||
|
||||
class mirax_state : public driver_device
|
||||
{
|
||||
public:
|
||||
mirax_state(running_machine &machine, const driver_device_config_base &config)
|
||||
: driver_device(machine, config) { }
|
||||
|
||||
UINT8 *spriteram;
|
||||
};
|
||||
|
||||
|
||||
static UINT8 nAyCtrl, nAyData;
|
||||
static UINT8 nmi_mask;
|
||||
static UINT8 *videoram;
|
||||
@ -85,7 +96,8 @@ static VIDEO_START(mirax)
|
||||
|
||||
static void draw_sprites(running_machine *machine, bitmap_t *bitmap, const rectangle *cliprect)
|
||||
{
|
||||
UINT8 *spriteram = machine->generic.spriteram.u8;
|
||||
mirax_state *state = machine->driver_data<mirax_state>();
|
||||
UINT8 *spriteram = state->spriteram;
|
||||
int count;
|
||||
|
||||
for(count=0;count<0x200;count+=4)
|
||||
@ -208,7 +220,7 @@ static ADDRESS_MAP_START( mirax_main_map, ADDRESS_SPACE_PROGRAM, 8 )
|
||||
AM_RANGE(0x0000, 0xbfff) AM_ROM
|
||||
AM_RANGE(0xc800, 0xd7ff) AM_RAM
|
||||
AM_RANGE(0xe000, 0xe3ff) AM_RAM AM_BASE(&videoram)
|
||||
AM_RANGE(0xe800, 0xe9ff) AM_RAM AM_BASE_GENERIC(spriteram)
|
||||
AM_RANGE(0xe800, 0xe9ff) AM_RAM AM_BASE_MEMBER(mirax_state, spriteram)
|
||||
AM_RANGE(0xea00, 0xea3f) AM_RAM AM_BASE(&colorram) //per-column color + bank bits for the videoram
|
||||
AM_RANGE(0xf000, 0xf000) AM_READ_PORT("P1")
|
||||
AM_RANGE(0xf100, 0xf100) AM_READ_PORT("P2")
|
||||
@ -376,7 +388,7 @@ static INTERRUPT_GEN( mirax_vblank_irq )
|
||||
cpu_set_input_line(device, INPUT_LINE_NMI, PULSE_LINE);
|
||||
}
|
||||
|
||||
static MACHINE_CONFIG_START( mirax, driver_device )
|
||||
static MACHINE_CONFIG_START( mirax, mirax_state )
|
||||
MCFG_CPU_ADD("maincpu", Z80, 12000000/4) // ceramic potted module, encrypted z80
|
||||
MCFG_CPU_PROGRAM_MAP(mirax_main_map)
|
||||
MCFG_CPU_VBLANK_INT("screen",mirax_vblank_irq)
|
||||
|
@ -69,7 +69,7 @@ static ADDRESS_MAP_START( memmap, ADDRESS_SPACE_PROGRAM, 8 )
|
||||
AM_RANGE(0xd804, 0xd804) AM_READ_PORT("DSWB")
|
||||
AM_RANGE(0xd806, 0xd806) AM_WRITE(mustache_scroll_w)
|
||||
AM_RANGE(0xd807, 0xd807) AM_WRITE(mustache_video_control_w)
|
||||
AM_RANGE(0xe800, 0xefff) AM_WRITEONLY AM_BASE_SIZE_GENERIC(spriteram)
|
||||
AM_RANGE(0xe800, 0xefff) AM_WRITEONLY AM_BASE_SIZE_MEMBER(mustache_state, spriteram, spriteram_size)
|
||||
AM_RANGE(0xf000, 0xffff) AM_RAM
|
||||
ADDRESS_MAP_END
|
||||
|
||||
|
@ -231,8 +231,9 @@ static WRITE16_HANDLER( irq_ack_w )
|
||||
/* of RAM, but they put 0x10000 there. The CPU can access them all. */
|
||||
static READ16_HANDLER( K053247_scattered_word_r )
|
||||
{
|
||||
mystwarr_state *state = space->machine->driver_data<mystwarr_state>();
|
||||
if (offset & 0x0078)
|
||||
return space->machine->generic.spriteram.u16[offset];
|
||||
return state->spriteram[offset];
|
||||
else
|
||||
{
|
||||
offset = (offset & 0x0007) | ((offset & 0x7f80) >> 4);
|
||||
@ -242,10 +243,11 @@ static READ16_HANDLER( K053247_scattered_word_r )
|
||||
|
||||
static WRITE16_HANDLER( K053247_scattered_word_w )
|
||||
{
|
||||
mystwarr_state *state = space->machine->driver_data<mystwarr_state>();
|
||||
if (offset & 0x0078)
|
||||
{
|
||||
// mame_printf_debug("spr write %x to %x (PC=%x)\n", data, offset, cpu_get_pc(space->cpu));
|
||||
COMBINE_DATA(space->machine->generic.spriteram.u16+offset);
|
||||
COMBINE_DATA(state->spriteram+offset);
|
||||
}
|
||||
else
|
||||
{
|
||||
@ -260,7 +262,7 @@ static WRITE16_HANDLER( K053247_scattered_word_w )
|
||||
static ADDRESS_MAP_START( mystwarr_map, ADDRESS_SPACE_PROGRAM, 16 )
|
||||
AM_RANGE(0x000000, 0x1fffff) AM_ROM // main program
|
||||
AM_RANGE(0x200000, 0x20ffff) AM_RAM AM_BASE_MEMBER(mystwarr_state, gx_workram)
|
||||
AM_RANGE(0x400000, 0x40ffff) AM_READWRITE(K053247_scattered_word_r,K053247_scattered_word_w) AM_BASE_GENERIC(spriteram)
|
||||
AM_RANGE(0x400000, 0x40ffff) AM_READWRITE(K053247_scattered_word_r,K053247_scattered_word_w) AM_BASE_MEMBER(mystwarr_state, spriteram)
|
||||
AM_RANGE(0x480000, 0x4800ff) AM_WRITE(K055555_word_w)
|
||||
AM_RANGE(0x482000, 0x48200f) AM_READ(K055673_rom_word_r)
|
||||
AM_RANGE(0x482010, 0x48201f) AM_WRITE(K053247_reg_word_w)
|
||||
@ -384,8 +386,9 @@ ADDRESS_MAP_END
|
||||
// Martial Champion specific interfaces
|
||||
static READ16_HANDLER( K053247_martchmp_word_r )
|
||||
{
|
||||
mystwarr_state *state = space->machine->driver_data<mystwarr_state>();
|
||||
if (offset & 0x0018)
|
||||
return space->machine->generic.spriteram.u16[offset];
|
||||
return state->spriteram[offset];
|
||||
else
|
||||
{
|
||||
offset = (offset & 0x0007) | ((offset & 0x1fe0) >> 2);
|
||||
@ -395,9 +398,10 @@ static READ16_HANDLER( K053247_martchmp_word_r )
|
||||
|
||||
static WRITE16_HANDLER( K053247_martchmp_word_w )
|
||||
{
|
||||
mystwarr_state *state = space->machine->driver_data<mystwarr_state>();
|
||||
if (offset & 0x0018)
|
||||
{
|
||||
COMBINE_DATA(space->machine->generic.spriteram.u16+offset);
|
||||
COMBINE_DATA(state->spriteram+offset);
|
||||
}
|
||||
else
|
||||
{
|
||||
@ -458,7 +462,7 @@ static ADDRESS_MAP_START( martchmp_map, ADDRESS_SPACE_PROGRAM, 16 )
|
||||
AM_RANGE(0x41a000, 0x41a001) AM_WRITE(sound_irq_w)
|
||||
AM_RANGE(0x41c000, 0x41c01f) AM_WRITE(K053252_word_w) // CCU
|
||||
AM_RANGE(0x41e000, 0x41e007) AM_WRITE(K056832_b_word_w) // VSCCS
|
||||
AM_RANGE(0x480000, 0x483fff) AM_READWRITE(K053247_martchmp_word_r,K053247_martchmp_word_w) AM_BASE_GENERIC(spriteram) // sprite RAM
|
||||
AM_RANGE(0x480000, 0x483fff) AM_READWRITE(K053247_martchmp_word_r,K053247_martchmp_word_w) AM_BASE_MEMBER(mystwarr_state, spriteram) // sprite RAM
|
||||
AM_RANGE(0x600000, 0x601fff) AM_RAM_WRITE(paletteram16_xrgb_word_be_w) AM_BASE_GENERIC(paletteram) // palette RAM
|
||||
AM_RANGE(0x680000, 0x681fff) AM_READWRITE(K056832_ram_word_r,K056832_ram_word_w) // tilemap RAM
|
||||
AM_RANGE(0x682000, 0x683fff) AM_READWRITE(K056832_ram_word_r,K056832_ram_word_w) // tilemap RAM mirror read/write (essential)
|
||||
@ -477,7 +481,7 @@ ADDRESS_MAP_END
|
||||
/* Ultimate Battler Dadandarn */
|
||||
static ADDRESS_MAP_START( dadandrn_map, ADDRESS_SPACE_PROGRAM, 16 )
|
||||
AM_RANGE(0x000000, 0x1fffff) AM_ROM // main program and data ROM
|
||||
AM_RANGE(0x400000, 0x40ffff) AM_READWRITE(K053247_scattered_word_r,K053247_scattered_word_w) AM_BASE_GENERIC(spriteram)
|
||||
AM_RANGE(0x400000, 0x40ffff) AM_READWRITE(K053247_scattered_word_r,K053247_scattered_word_w) AM_BASE_MEMBER(mystwarr_state, spriteram)
|
||||
AM_RANGE(0x410000, 0x411fff) AM_READWRITE(K056832_ram_word_r,K056832_ram_word_w) // tilemap RAM
|
||||
AM_RANGE(0x412000, 0x413fff) AM_READWRITE(K056832_ram_word_r,K056832_ram_word_w) // tilemap RAM mirror read/write (essential)
|
||||
AM_RANGE(0x420000, 0x421fff) AM_RAM_WRITE(paletteram16_xrgb_word_be_w) AM_BASE_GENERIC(paletteram)
|
||||
@ -525,7 +529,7 @@ ADDRESS_MAP_END
|
||||
// c00000 = 936 tiles (7fffff window)
|
||||
static ADDRESS_MAP_START( gaiapols_map, ADDRESS_SPACE_PROGRAM, 16 )
|
||||
AM_RANGE(0x000000, 0x2fffff) AM_ROM // main program
|
||||
AM_RANGE(0x400000, 0x40ffff) AM_READWRITE(K053247_scattered_word_r,K053247_scattered_word_w) AM_BASE_GENERIC(spriteram)
|
||||
AM_RANGE(0x400000, 0x40ffff) AM_READWRITE(K053247_scattered_word_r,K053247_scattered_word_w) AM_BASE_MEMBER(mystwarr_state, spriteram)
|
||||
AM_RANGE(0x410000, 0x411fff) AM_READWRITE(K056832_ram_word_r,K056832_ram_word_w) // tilemap RAM
|
||||
AM_RANGE(0x412000, 0x413fff) AM_READWRITE(K056832_ram_word_r,K056832_ram_word_w) // tilemap RAM mirror read / write (essential)
|
||||
AM_RANGE(0x420000, 0x421fff) AM_RAM_WRITE(paletteram16_xrgb_word_be_w) AM_BASE_GENERIC(paletteram)
|
||||
|
@ -498,6 +498,7 @@ static READ16_HANDLER( namcona1_vreg_r )
|
||||
|
||||
static int transfer_dword( running_machine *machine, UINT32 dest, UINT32 source )
|
||||
{
|
||||
namcona1_state *state = machine->driver_data<namcona1_state>();
|
||||
UINT16 data;
|
||||
address_space *space = cputag_get_address_space(machine, "maincpu", ADDRESS_SPACE_PROGRAM);
|
||||
|
||||
@ -532,7 +533,7 @@ static int transfer_dword( running_machine *machine, UINT32 dest, UINT32 source
|
||||
}
|
||||
else if( dest>=0xfff000 && dest<0x1000000 )
|
||||
{
|
||||
space->machine->generic.spriteram.u16[(dest-0xfff000)/2] = data;
|
||||
state->spriteram[(dest-0xfff000)/2] = data;
|
||||
}
|
||||
else
|
||||
{
|
||||
@ -754,7 +755,7 @@ static ADDRESS_MAP_START( namcona1_main_map, ADDRESS_SPACE_PROGRAM, 16 )
|
||||
AM_RANGE(0xff0000, 0xffbfff) AM_READWRITE(namcona1_videoram_r, namcona1_videoram_w) AM_BASE_MEMBER(namcona1_state, videoram)
|
||||
AM_RANGE(0xffd000, 0xffdfff) AM_RAM /* unknown */
|
||||
AM_RANGE(0xffe000, 0xffefff) AM_RAM AM_BASE(&namcona1_scroll) /* scroll registers */
|
||||
AM_RANGE(0xfff000, 0xffffff) AM_RAM AM_BASE_GENERIC(spriteram) /* spriteram */
|
||||
AM_RANGE(0xfff000, 0xffffff) AM_RAM AM_BASE_MEMBER(namcona1_state, spriteram) /* spriteram */
|
||||
ADDRESS_MAP_END
|
||||
|
||||
|
||||
@ -776,7 +777,7 @@ static ADDRESS_MAP_START( namcona2_main_map, ADDRESS_SPACE_PROGRAM, 16 )
|
||||
AM_RANGE(0xff0000, 0xffbfff) AM_READWRITE(namcona1_videoram_r, namcona1_videoram_w) AM_BASE_MEMBER(namcona1_state, videoram)
|
||||
AM_RANGE(0xffd000, 0xffdfff) AM_RAM /* unknown */
|
||||
AM_RANGE(0xffe000, 0xffefff) AM_RAM AM_BASE(&namcona1_scroll) /* scroll registers */
|
||||
AM_RANGE(0xfff000, 0xffffff) AM_RAM AM_BASE_GENERIC(spriteram) /* spriteram */
|
||||
AM_RANGE(0xfff000, 0xffffff) AM_RAM AM_BASE_MEMBER(namcona1_state, spriteram) /* spriteram */
|
||||
ADDRESS_MAP_END
|
||||
|
||||
|
||||
|
@ -2465,7 +2465,7 @@ static ADDRESS_MAP_START( namcos22s_am, ADDRESS_SPACE_PROGRAM, 32 )
|
||||
AM_RANGE(0x8a0000, 0x8a000f) AM_RAM AM_BASE(&namcos22_tilemapattr)
|
||||
AM_RANGE(0x900000, 0x90ffff) AM_RAM AM_BASE(&namcos22_vics_data)
|
||||
AM_RANGE(0x940000, 0x94007f) AM_RAM AM_BASE(&namcos22_vics_control)
|
||||
AM_RANGE(0x980000, 0x9affff) AM_RAM AM_BASE_GENERIC(spriteram) /* C374 */
|
||||
AM_RANGE(0x980000, 0x9affff) AM_RAM AM_BASE_MEMBER(namcos22_state, spriteram) /* C374 */
|
||||
AM_RANGE(0xa04000, 0xa0bfff) AM_READ(namcos22_mcuram_r) AM_WRITE(namcos22_mcuram_w) AM_BASE(&namcos22_shareram) /* COM RAM */
|
||||
AM_RANGE(0xc00000, 0xc1ffff) AM_READ(namcos22_dspram_r) AM_WRITE(namcos22_dspram_w) AM_BASE(&namcos22_polygonram)
|
||||
AM_RANGE(0xe00000, 0xe3ffff) AM_RAM /* workram */
|
||||
@ -2868,7 +2868,7 @@ static INTERRUPT_GEN( mcu_interrupt )
|
||||
}
|
||||
}
|
||||
|
||||
static MACHINE_CONFIG_START( namcos22s, driver_device )
|
||||
static MACHINE_CONFIG_START( namcos22s, namcos22_state )
|
||||
MCFG_CPU_ADD("maincpu", M68EC020,SS22_MASTER_CLOCK/2)
|
||||
MCFG_CPU_PROGRAM_MAP(namcos22s_am)
|
||||
MCFG_CPU_VBLANK_INT_HACK(namcos22s_interrupt,2)
|
||||
@ -3284,7 +3284,7 @@ static MACHINE_RESET(namcos22)
|
||||
InitDSP(machine, 0);
|
||||
}
|
||||
|
||||
static MACHINE_CONFIG_START( namcos22, driver_device )
|
||||
static MACHINE_CONFIG_START( namcos22, namcos22_state )
|
||||
MCFG_CPU_ADD("maincpu", M68020,SS22_MASTER_CLOCK/2) /* 25 MHz? */
|
||||
MCFG_CPU_PROGRAM_MAP(namcos22_am)
|
||||
MCFG_CPU_VBLANK_INT_HACK(namcos22_interrupt,2)
|
||||
|
@ -994,7 +994,7 @@ static const namco_interface namco_config =
|
||||
};
|
||||
|
||||
|
||||
static MACHINE_CONFIG_START( hopmappy, driver_device )
|
||||
static MACHINE_CONFIG_START( hopmappy, namcos86_state )
|
||||
|
||||
/* basic machine hardware */
|
||||
MCFG_CPU_ADD("cpu1", M6809, 49152000/32)
|
||||
|
@ -389,7 +389,7 @@ static ADDRESS_MAP_START( ninjakd2_main_cpu, ADDRESS_SPACE_PROGRAM, 8 )
|
||||
AM_RANGE(0xd000, 0xd7ff) AM_RAM_WRITE(ninjakd2_fgvideoram_w) AM_BASE_MEMBER(ninjakd2_state, fg_videoram)
|
||||
AM_RANGE(0xd800, 0xdfff) AM_RAM_WRITE(ninjakd2_bgvideoram_w) AM_BASE_MEMBER(ninjakd2_state, bg_videoram)
|
||||
AM_RANGE(0xe000, 0xf9ff) AM_RAM
|
||||
AM_RANGE(0xfa00, 0xffff) AM_RAM AM_BASE_GENERIC(spriteram)
|
||||
AM_RANGE(0xfa00, 0xffff) AM_RAM AM_BASE_MEMBER(ninjakd2_state, spriteram)
|
||||
ADDRESS_MAP_END
|
||||
|
||||
|
||||
@ -397,7 +397,7 @@ static ADDRESS_MAP_START( mnight_main_cpu, ADDRESS_SPACE_PROGRAM, 8 )
|
||||
AM_RANGE(0x0000, 0x7fff) AM_ROM
|
||||
AM_RANGE(0x8000, 0xbfff) AM_ROMBANK("bank1")
|
||||
AM_RANGE(0xc000, 0xd9ff) AM_RAM
|
||||
AM_RANGE(0xda00, 0xdfff) AM_RAM AM_BASE_GENERIC(spriteram)
|
||||
AM_RANGE(0xda00, 0xdfff) AM_RAM AM_BASE_MEMBER(ninjakd2_state, spriteram)
|
||||
AM_RANGE(0xe000, 0xe7ff) AM_RAM_WRITE(ninjakd2_bgvideoram_w) AM_BASE_MEMBER(ninjakd2_state, bg_videoram)
|
||||
AM_RANGE(0xe800, 0xefff) AM_RAM_WRITE(ninjakd2_fgvideoram_w) AM_BASE_MEMBER(ninjakd2_state, fg_videoram)
|
||||
AM_RANGE(0xf000, 0xf5ff) AM_RAM_WRITE(paletteram_RRRRGGGGBBBBxxxx_be_w) AM_BASE_GENERIC(paletteram)
|
||||
@ -438,7 +438,7 @@ static ADDRESS_MAP_START( robokid_main_cpu, ADDRESS_SPACE_PROGRAM, 8 )
|
||||
AM_RANGE(0xdf00, 0xdf04) AM_WRITE(robokid_bg2_ctrl_w) // scroll + enable
|
||||
AM_RANGE(0xdf05, 0xdf05) AM_WRITE(robokid_bg2_bank_w)
|
||||
AM_RANGE(0xe000, 0xf9ff) AM_RAM
|
||||
AM_RANGE(0xfa00, 0xffff) AM_RAM AM_BASE_GENERIC(spriteram)
|
||||
AM_RANGE(0xfa00, 0xffff) AM_RAM AM_BASE_MEMBER(ninjakd2_state, spriteram)
|
||||
ADDRESS_MAP_END
|
||||
|
||||
|
||||
@ -465,7 +465,7 @@ static ADDRESS_MAP_START( omegaf_main_cpu, ADDRESS_SPACE_PROGRAM, 8 )
|
||||
AM_RANGE(0xd000, 0xd7ff) AM_RAM_WRITE(ninjakd2_fgvideoram_w) AM_BASE_MEMBER(ninjakd2_state, fg_videoram)
|
||||
AM_RANGE(0xd800, 0xdfff) AM_RAM_WRITE(paletteram_RRRRGGGGBBBBxxxx_be_w) AM_BASE_GENERIC(paletteram)
|
||||
AM_RANGE(0xe000, 0xf9ff) AM_RAM
|
||||
AM_RANGE(0xfa00, 0xffff) AM_RAM AM_BASE_GENERIC(spriteram)
|
||||
AM_RANGE(0xfa00, 0xffff) AM_RAM AM_BASE_MEMBER(ninjakd2_state, spriteram)
|
||||
ADDRESS_MAP_END
|
||||
|
||||
|
||||
|
@ -889,7 +889,7 @@ static ADDRESS_MAP_START( tdragon_map, ADDRESS_SPACE_PROGRAM, 16 )
|
||||
AM_RANGE(0x000000, 0x03ffff) AM_ROM
|
||||
AM_RANGE(0x044022, 0x044023) AM_READNOP /* No Idea */
|
||||
// AM_RANGE(0x0b0000, 0x0b7fff) AM_RAM /* Work RAM */
|
||||
// AM_RANGE(0x0b8000, 0x0b8fff) AM_RAM AM_BASE_SIZE_GENERIC(spriteram) /* Sprite RAM */
|
||||
// AM_RANGE(0x0b8000, 0x0b8fff) AM_RAM AM_BASE_SIZE_MEMBER(nmk16_state, spriteram, spriteram_size) /* Sprite RAM */
|
||||
// AM_RANGE(0x0b9000, 0x0bdfff) AM_RAM AM_BASE(&nmk16_mcu_work_ram) /* Work RAM */
|
||||
// AM_RANGE(0x0be000, 0x0befff) AM_READWRITE(mcu_shared_r,tdragon_mcu_shared_w) AM_BASE(&nmk16_mcu_shared_ram) /* Work RAM */
|
||||
// AM_RANGE(0x0bf000, 0x0bffff) AM_RAM /* Work RAM */
|
||||
|
@ -180,7 +180,7 @@ static ADDRESS_MAP_START( nova2001_map, ADDRESS_SPACE_PROGRAM, 8 )
|
||||
AM_RANGE(0x0000, 0x7fff) AM_ROM
|
||||
AM_RANGE(0xa000, 0xa7ff) AM_RAM_WRITE(nova2001_fg_videoram_w) AM_BASE_MEMBER(nova2001_state, fg_videoram)
|
||||
AM_RANGE(0xa800, 0xafff) AM_RAM_WRITE(nova2001_bg_videoram_w) AM_BASE_MEMBER(nova2001_state, bg_videoram)
|
||||
AM_RANGE(0xb000, 0xb7ff) AM_RAM AM_BASE_GENERIC(spriteram)
|
||||
AM_RANGE(0xb000, 0xb7ff) AM_RAM AM_BASE_MEMBER(nova2001_state, spriteram)
|
||||
AM_RANGE(0xb800, 0xbfff) AM_WRITE(nova2001_flipscreen_w)
|
||||
AM_RANGE(0xc000, 0xc000) AM_DEVREADWRITE("ay1", ay8910_r, ay8910_data_w)
|
||||
AM_RANGE(0xc001, 0xc001) AM_DEVREADWRITE("ay2", ay8910_r, ay8910_data_w)
|
||||
@ -207,7 +207,7 @@ static ADDRESS_MAP_START( ninjakun_cpu1_map, ADDRESS_SPACE_PROGRAM, 8 )
|
||||
AM_RANGE(0xa003, 0xa003) AM_WRITE(pkunwar_flipscreen_w)
|
||||
AM_RANGE(0xc000, 0xc7ff) AM_RAM_WRITE(nova2001_fg_videoram_w) AM_BASE_MEMBER(nova2001_state, fg_videoram) AM_SHARE("share1")
|
||||
AM_RANGE(0xc800, 0xcfff) AM_READWRITE(ninjakun_bg_videoram_r, ninjakun_bg_videoram_w) AM_BASE_MEMBER(nova2001_state, bg_videoram) AM_SHARE("share2")
|
||||
AM_RANGE(0xd000, 0xd7ff) AM_RAM AM_BASE_GENERIC(spriteram) AM_SHARE("share3")
|
||||
AM_RANGE(0xd000, 0xd7ff) AM_RAM AM_BASE_MEMBER(nova2001_state, spriteram) AM_SHARE("share3")
|
||||
AM_RANGE(0xd800, 0xd9ff) AM_RAM_WRITE(ninjakun_paletteram_w) AM_BASE_GENERIC(paletteram) AM_SHARE("share4")
|
||||
AM_RANGE(0xe000, 0xe3ff) AM_RAM AM_SHARE("share5")
|
||||
AM_RANGE(0xe400, 0xe7ff) AM_RAM AM_SHARE("share6")
|
||||
@ -235,7 +235,7 @@ ADDRESS_MAP_END
|
||||
|
||||
static ADDRESS_MAP_START( pkunwar_map, ADDRESS_SPACE_PROGRAM, 8 )
|
||||
AM_RANGE(0x0000, 0x7fff) AM_ROM
|
||||
AM_RANGE(0x8000, 0x87ff) AM_RAM AM_BASE_GENERIC(spriteram)
|
||||
AM_RANGE(0x8000, 0x87ff) AM_RAM AM_BASE_MEMBER(nova2001_state, spriteram)
|
||||
AM_RANGE(0x8800, 0x8fff) AM_RAM_WRITE(nova2001_bg_videoram_w) AM_BASE_MEMBER(nova2001_state, bg_videoram)
|
||||
AM_RANGE(0xa000, 0xa001) AM_DEVWRITE("ay1", ay8910_address_data_w)
|
||||
AM_RANGE(0xa001, 0xa001) AM_DEVREAD("ay1", ay8910_r)
|
||||
@ -253,7 +253,7 @@ ADDRESS_MAP_END
|
||||
|
||||
static ADDRESS_MAP_START( raiders5_cpu1_map, ADDRESS_SPACE_PROGRAM, 8 )
|
||||
AM_RANGE(0x0000, 0x7fff) AM_ROM
|
||||
AM_RANGE(0x8000, 0x87ff) AM_RAM AM_BASE_GENERIC(spriteram)
|
||||
AM_RANGE(0x8000, 0x87ff) AM_RAM AM_BASE_MEMBER(nova2001_state, spriteram)
|
||||
AM_RANGE(0x8800, 0x8fff) AM_RAM_WRITE(nova2001_fg_videoram_w) AM_BASE_MEMBER(nova2001_state, fg_videoram)
|
||||
AM_RANGE(0x9000, 0x97ff) AM_READWRITE(ninjakun_bg_videoram_r, ninjakun_bg_videoram_w) AM_BASE_MEMBER(nova2001_state, bg_videoram)
|
||||
AM_RANGE(0xa000, 0xa000) AM_WRITE(nova2001_scroll_x_w)
|
||||
|
@ -77,6 +77,7 @@ public:
|
||||
tilemap_t *txttilemap;
|
||||
UINT8 *scrollram;
|
||||
UINT8 *mainram;
|
||||
UINT8 *spriteram;
|
||||
};
|
||||
|
||||
|
||||
@ -188,7 +189,7 @@ static WRITE8_HANDLER(t5182shared_w)
|
||||
|
||||
static ADDRESS_MAP_START( panicr_map, ADDRESS_SPACE_PROGRAM, 8 )
|
||||
AM_RANGE(0x00000, 0x01fff) AM_RAM AM_BASE_MEMBER(panicr_state, mainram)
|
||||
AM_RANGE(0x02000, 0x02fff) AM_RAM AM_BASE_GENERIC(spriteram)
|
||||
AM_RANGE(0x02000, 0x02fff) AM_RAM AM_BASE_MEMBER(panicr_state, spriteram)
|
||||
AM_RANGE(0x03000, 0x03fff) AM_RAM
|
||||
AM_RANGE(0x08000, 0x0bfff) AM_RAM AM_REGION("user3", 0) //attribue map ?
|
||||
AM_RANGE(0x0c000, 0x0cfff) AM_RAM AM_BASE_MEMBER(panicr_state, videoram)
|
||||
@ -218,7 +219,7 @@ static VIDEO_START( panicr )
|
||||
static void draw_sprites(running_machine *machine, bitmap_t *bitmap,const rectangle *cliprect )
|
||||
{
|
||||
panicr_state *state = machine->driver_data<panicr_state>();
|
||||
UINT8 *spriteram = machine->generic.spriteram.u8;
|
||||
UINT8 *spriteram = state->spriteram;
|
||||
int offs,flipx,flipy,x,y,color,sprite;
|
||||
|
||||
for (offs = 0; offs<0x1000; offs+=16)
|
||||
|
@ -73,7 +73,7 @@ static READ8_DEVICE_HANDLER( pcktgal_adpcm_reset_r )
|
||||
static ADDRESS_MAP_START( pcktgal_map, ADDRESS_SPACE_PROGRAM, 8 )
|
||||
AM_RANGE(0x0000, 0x07ff) AM_RAM
|
||||
AM_RANGE(0x0800, 0x0fff) AM_RAM_WRITE(pcktgal_videoram_w) AM_BASE_MEMBER(pcktgal_state, videoram)
|
||||
AM_RANGE(0x1000, 0x11ff) AM_RAM AM_BASE_SIZE_GENERIC(spriteram)
|
||||
AM_RANGE(0x1000, 0x11ff) AM_RAM AM_BASE_SIZE_MEMBER(pcktgal_state, spriteram, spriteram_size)
|
||||
AM_RANGE(0x1800, 0x1800) AM_READ_PORT("P1")
|
||||
AM_RANGE(0x1801, 0x1801) AM_WRITE(pcktgal_flipscreen_w)
|
||||
/* 1800 - 0x181f are unused BAC-06 registers, see video/dec0.c */
|
||||
|
@ -68,6 +68,19 @@
|
||||
#include "sound/namco.h"
|
||||
|
||||
|
||||
class pengo_state : public driver_device
|
||||
{
|
||||
public:
|
||||
pengo_state(running_machine &machine, const driver_device_config_base &config)
|
||||
: driver_device(machine, config) { }
|
||||
|
||||
UINT8 *spriteram;
|
||||
UINT8 *spriteram2;
|
||||
size_t spriteram_size;
|
||||
};
|
||||
|
||||
|
||||
|
||||
|
||||
/*************************************
|
||||
*
|
||||
@ -101,9 +114,9 @@ static ADDRESS_MAP_START( pengo_map, ADDRESS_SPACE_PROGRAM, 8 )
|
||||
AM_RANGE(0x8000, 0x83ff) AM_RAM_WRITE(pacman_videoram_w) AM_BASE(&pacman_videoram) /* video and color RAM, scratchpad RAM, sprite codes */
|
||||
AM_RANGE(0x8400, 0x87ff) AM_RAM_WRITE(pacman_colorram_w) AM_BASE(&pacman_colorram)
|
||||
AM_RANGE(0x8800, 0x8fef) AM_RAM
|
||||
AM_RANGE(0x8ff0, 0x8fff) AM_RAM AM_BASE_SIZE_GENERIC(spriteram)
|
||||
AM_RANGE(0x8ff0, 0x8fff) AM_RAM AM_BASE_SIZE_MEMBER(pengo_state, spriteram, spriteram_size)
|
||||
AM_RANGE(0x9000, 0x901f) AM_DEVWRITE("namco", pacman_sound_w)
|
||||
AM_RANGE(0x9020, 0x902f) AM_WRITEONLY AM_BASE_GENERIC(spriteram2)
|
||||
AM_RANGE(0x9020, 0x902f) AM_WRITEONLY AM_BASE_MEMBER(pengo_state, spriteram2)
|
||||
AM_RANGE(0x9000, 0x903f) AM_READ_PORT("DSW1")
|
||||
AM_RANGE(0x9040, 0x907f) AM_READ_PORT("DSW0")
|
||||
AM_RANGE(0x9040, 0x9040) AM_WRITE(interrupt_enable_w)
|
||||
@ -123,9 +136,9 @@ static ADDRESS_MAP_START( jrpacmbl_map, ADDRESS_SPACE_PROGRAM, 8 )
|
||||
AM_RANGE(0x0000, 0x7fff) AM_ROM
|
||||
AM_RANGE(0x8000, 0x87ff) AM_RAM_WRITE(jrpacman_videoram_w) AM_BASE(&pacman_videoram)
|
||||
AM_RANGE(0x8800, 0x8fef) AM_RAM
|
||||
AM_RANGE(0x8ff0, 0x8fff) AM_RAM AM_BASE_SIZE_GENERIC(spriteram)
|
||||
AM_RANGE(0x8ff0, 0x8fff) AM_RAM AM_BASE_SIZE_MEMBER(pengo_state, spriteram, spriteram_size)
|
||||
AM_RANGE(0x9000, 0x901f) AM_DEVWRITE("namco", pacman_sound_w)
|
||||
AM_RANGE(0x9020, 0x902f) AM_WRITEONLY AM_BASE_GENERIC(spriteram2)
|
||||
AM_RANGE(0x9020, 0x902f) AM_WRITEONLY AM_BASE_MEMBER(pengo_state, spriteram2)
|
||||
AM_RANGE(0x9030, 0x9030) AM_WRITE(jrpacman_scroll_w)
|
||||
AM_RANGE(0x9040, 0x904f) AM_READ_PORT("DSW")
|
||||
AM_RANGE(0x9040, 0x9040) AM_WRITE(interrupt_enable_w)
|
||||
@ -344,7 +357,7 @@ static const namco_interface namco_config =
|
||||
*
|
||||
*************************************/
|
||||
|
||||
static MACHINE_CONFIG_START( pengo, driver_device )
|
||||
static MACHINE_CONFIG_START( pengo, pengo_state )
|
||||
|
||||
/* basic machine hardware */
|
||||
MCFG_CPU_ADD("maincpu", Z80, MASTER_CLOCK/6)
|
||||
|
@ -94,7 +94,7 @@ static ADDRESS_MAP_START( pingpong_map, ADDRESS_SPACE_PROGRAM, 8 )
|
||||
AM_RANGE(0x8000, 0x83ff) AM_RAM_WRITE(pingpong_colorram_w) AM_BASE_MEMBER(pingpong_state, colorram)
|
||||
AM_RANGE(0x8400, 0x87ff) AM_RAM_WRITE(pingpong_videoram_w) AM_BASE_MEMBER(pingpong_state, videoram)
|
||||
AM_RANGE(0x9000, 0x9002) AM_RAM
|
||||
AM_RANGE(0x9003, 0x9052) AM_RAM AM_BASE_SIZE_GENERIC(spriteram)
|
||||
AM_RANGE(0x9003, 0x9052) AM_RAM AM_BASE_SIZE_MEMBER(pingpong_state, spriteram, spriteram_size)
|
||||
AM_RANGE(0x9053, 0x97ff) AM_RAM
|
||||
AM_RANGE(0xa800, 0xa800) AM_READ_PORT("SYSTEM")
|
||||
AM_RANGE(0xa880, 0xa880) AM_READ_PORT("INPUTS")
|
||||
@ -115,7 +115,7 @@ static ADDRESS_MAP_START( merlinmm_map, ADDRESS_SPACE_PROGRAM, 8 )
|
||||
AM_RANGE(0x8000, 0x83ff) AM_RAM_WRITE(pingpong_colorram_w) AM_BASE_MEMBER(pingpong_state, colorram)
|
||||
AM_RANGE(0x8400, 0x87ff) AM_RAM_WRITE(pingpong_videoram_w) AM_BASE_MEMBER(pingpong_state, videoram)
|
||||
AM_RANGE(0x9000, 0x9002) AM_RAM
|
||||
AM_RANGE(0x9003, 0x9052) AM_RAM AM_BASE_SIZE_GENERIC(spriteram)
|
||||
AM_RANGE(0x9003, 0x9052) AM_RAM AM_BASE_SIZE_MEMBER(pingpong_state, spriteram, spriteram_size)
|
||||
AM_RANGE(0x9053, 0x97ff) AM_RAM
|
||||
AM_RANGE(0xa000, 0xa000) AM_WRITE(coin_w) /* irq enables */
|
||||
AM_RANGE(0xa000, 0xa000) AM_READ_PORT("IN0")
|
||||
|
@ -97,7 +97,7 @@ static ADDRESS_MAP_START( pitnrun_map, ADDRESS_SPACE_PROGRAM, 8 )
|
||||
AM_RANGE(0x8000, 0x87ff) AM_RAM
|
||||
AM_RANGE(0x8800, 0x8fff) AM_RAM_WRITE(pitnrun_videoram_w) AM_BASE_MEMBER(pitnrun_state, videoram)
|
||||
AM_RANGE(0x9000, 0x9fff) AM_RAM_WRITE(pitnrun_videoram2_w) AM_BASE_MEMBER(pitnrun_state, videoram2)
|
||||
AM_RANGE(0xa000, 0xa0ff) AM_RAM AM_BASE_SIZE_GENERIC(spriteram)
|
||||
AM_RANGE(0xa000, 0xa0ff) AM_RAM AM_BASE_SIZE_MEMBER(pitnrun_state, spriteram, spriteram_size)
|
||||
AM_RANGE(0xa800, 0xa800) AM_READ_PORT("SYSTEM")
|
||||
AM_RANGE(0xa800, 0xa807) AM_WRITENOP /* Analog Sound */
|
||||
AM_RANGE(0xb000, 0xb000) AM_READ_PORT("DSW") AM_WRITE(nmi_enable_w)
|
||||
|
@ -108,7 +108,7 @@ static WRITE8_HANDLER( pokechmp_paletteram_w )
|
||||
static ADDRESS_MAP_START( pokechmp_map, ADDRESS_SPACE_PROGRAM, 8 )
|
||||
AM_RANGE(0x0000, 0x07ff) AM_RAM
|
||||
AM_RANGE(0x0800, 0x0fff) AM_RAM_WRITE(pokechmp_videoram_w) AM_BASE_MEMBER(pokechmp_state, videoram)
|
||||
AM_RANGE(0x1000, 0x11ff) AM_RAM AM_BASE_SIZE_GENERIC(spriteram)
|
||||
AM_RANGE(0x1000, 0x11ff) AM_RAM AM_BASE_SIZE_MEMBER(pokechmp_state, spriteram, spriteram_size)
|
||||
|
||||
AM_RANGE(0x1800, 0x1800) AM_READ_PORT("P1")
|
||||
AM_RANGE(0x1801, 0x1801) AM_WRITE(pokechmp_flipscreen_w)
|
||||
|
@ -69,7 +69,7 @@ static ADDRESS_MAP_START( skyskipr_map, ADDRESS_SPACE_PROGRAM, 8 )
|
||||
AM_RANGE(0x8000, 0x87ff) AM_RAM
|
||||
AM_RANGE(0x8c00, 0x8c02) AM_RAM AM_BASE_MEMBER(popeye_state, background_pos)
|
||||
AM_RANGE(0x8c03, 0x8c03) AM_RAM AM_BASE_MEMBER(popeye_state, palettebank)
|
||||
AM_RANGE(0x8c04, 0x8e7f) AM_RAM AM_BASE_SIZE_GENERIC(spriteram)
|
||||
AM_RANGE(0x8c04, 0x8e7f) AM_RAM AM_BASE_SIZE_MEMBER(popeye_state, spriteram, spriteram_size)
|
||||
AM_RANGE(0x8e80, 0x8fff) AM_RAM
|
||||
AM_RANGE(0xa000, 0xa3ff) AM_WRITE(popeye_videoram_w) AM_BASE_MEMBER(popeye_state, videoram)
|
||||
AM_RANGE(0xa400, 0xa7ff) AM_WRITE(popeye_colorram_w) AM_BASE_MEMBER(popeye_state, colorram)
|
||||
@ -83,7 +83,7 @@ static ADDRESS_MAP_START( popeye_map, ADDRESS_SPACE_PROGRAM, 8 )
|
||||
AM_RANGE(0x8800, 0x8bff) AM_RAM
|
||||
AM_RANGE(0x8c00, 0x8c02) AM_RAM AM_BASE_MEMBER(popeye_state, background_pos)
|
||||
AM_RANGE(0x8c03, 0x8c03) AM_RAM AM_BASE_MEMBER(popeye_state, palettebank)
|
||||
AM_RANGE(0x8c04, 0x8e7f) AM_RAM AM_BASE_SIZE_GENERIC(spriteram)
|
||||
AM_RANGE(0x8c04, 0x8e7f) AM_RAM AM_BASE_SIZE_MEMBER(popeye_state, spriteram, spriteram_size)
|
||||
AM_RANGE(0x8e80, 0x8fff) AM_RAM
|
||||
AM_RANGE(0xa000, 0xa3ff) AM_WRITE(popeye_videoram_w) AM_BASE_MEMBER(popeye_state, videoram)
|
||||
AM_RANGE(0xa400, 0xa7ff) AM_WRITE(popeye_colorram_w) AM_BASE_MEMBER(popeye_state, colorram)
|
||||
@ -96,7 +96,7 @@ static ADDRESS_MAP_START( popeyebl_map, ADDRESS_SPACE_PROGRAM, 8 )
|
||||
AM_RANGE(0x8000, 0x87ff) AM_RAM
|
||||
AM_RANGE(0x8c00, 0x8c02) AM_RAM AM_BASE_MEMBER(popeye_state, background_pos)
|
||||
AM_RANGE(0x8c03, 0x8c03) AM_RAM AM_BASE_MEMBER(popeye_state, palettebank)
|
||||
AM_RANGE(0x8c04, 0x8e7f) AM_RAM AM_BASE_SIZE_GENERIC(spriteram)
|
||||
AM_RANGE(0x8c04, 0x8e7f) AM_RAM AM_BASE_SIZE_MEMBER(popeye_state, spriteram, spriteram_size)
|
||||
AM_RANGE(0x8e80, 0x8fff) AM_RAM
|
||||
AM_RANGE(0xa000, 0xa3ff) AM_WRITE(popeye_videoram_w) AM_BASE_MEMBER(popeye_state, videoram)
|
||||
AM_RANGE(0xa400, 0xa7ff) AM_WRITE(popeye_colorram_w) AM_BASE_MEMBER(popeye_state, colorram)
|
||||
|
@ -122,7 +122,7 @@ static ADDRESS_MAP_START( portrait_map, ADDRESS_SPACE_PROGRAM, 8 )
|
||||
AM_RANGE(0x0000, 0x7fff) AM_ROM
|
||||
AM_RANGE(0x8000, 0x87ff) AM_RAM_WRITE(portrait_bgvideo_write) AM_BASE_MEMBER(portrait_state, bgvideoram)
|
||||
AM_RANGE(0x8800, 0x8fff) AM_RAM_WRITE(portrait_fgvideo_write) AM_BASE_MEMBER(portrait_state, fgvideoram)
|
||||
AM_RANGE(0x9000, 0x91ff) AM_RAM AM_BASE_SIZE_GENERIC(spriteram)
|
||||
AM_RANGE(0x9000, 0x91ff) AM_RAM AM_BASE_SIZE_MEMBER(portrait_state, spriteram, spriteram_size)
|
||||
AM_RANGE(0x9200, 0x97ff) AM_RAM
|
||||
AM_RANGE(0xa000, 0xa000) AM_WRITE(soundlatch_w)
|
||||
AM_RANGE(0xa010, 0xa010) AM_WRITENOP // ?
|
||||
|
@ -88,7 +88,7 @@ static ADDRESS_MAP_START( powerins_map, ADDRESS_SPACE_PROGRAM, 16 )
|
||||
AM_RANGE(0x140000, 0x143fff) AM_RAM_WRITE(powerins_vram_0_w) AM_BASE_MEMBER(powerins_state, vram_0) // VRAM 0
|
||||
AM_RANGE(0x170000, 0x170fff) AM_RAM_WRITE(powerins_vram_1_w) AM_BASE_MEMBER(powerins_state, vram_1) // VRAM 1
|
||||
AM_RANGE(0x171000, 0x171fff) AM_WRITE(powerins_vram_1_w) // Mirror of VRAM 1?
|
||||
AM_RANGE(0x180000, 0x18ffff) AM_RAM AM_BASE_GENERIC(spriteram) // RAM + Sprites
|
||||
AM_RANGE(0x180000, 0x18ffff) AM_RAM AM_BASE_MEMBER(powerins_state, spriteram) // RAM + Sprites
|
||||
ADDRESS_MAP_END
|
||||
|
||||
/* powerina: same as the original one but without the sound cpu (and inferior sound HW) */
|
||||
@ -109,7 +109,7 @@ static ADDRESS_MAP_START( powerina_map, ADDRESS_SPACE_PROGRAM, 16 )
|
||||
AM_RANGE(0x140000, 0x143fff) AM_RAM_WRITE(powerins_vram_0_w) AM_BASE_MEMBER(powerins_state, vram_0) // VRAM 0
|
||||
AM_RANGE(0x170000, 0x170fff) AM_RAM_WRITE(powerins_vram_1_w) AM_BASE_MEMBER(powerins_state, vram_1) // VRAM 1
|
||||
AM_RANGE(0x171000, 0x171fff) AM_WRITE(powerins_vram_1_w) // Mirror of VRAM 1?
|
||||
AM_RANGE(0x180000, 0x18ffff) AM_RAM AM_BASE_GENERIC(spriteram) // RAM + Sprites
|
||||
AM_RANGE(0x180000, 0x18ffff) AM_RAM AM_BASE_MEMBER(powerins_state, spriteram) // RAM + Sprites
|
||||
ADDRESS_MAP_END
|
||||
|
||||
static ADDRESS_MAP_START( powerins_sound_map, ADDRESS_SPACE_PROGRAM, 8 )
|
||||
|
@ -319,7 +319,7 @@ static WRITE32_HANDLER( paletteram32_xRRRRRGGGGGBBBBB_dword_w )
|
||||
|
||||
static ADDRESS_MAP_START( psikyo_map, ADDRESS_SPACE_PROGRAM, 32 )
|
||||
AM_RANGE(0x000000, 0x0fffff) AM_ROM // ROM (not all used)
|
||||
AM_RANGE(0x400000, 0x401fff) AM_RAM AM_BASE_SIZE_GENERIC(spriteram) // Sprites, buffered by two frames (list buffered + fb buffered)
|
||||
AM_RANGE(0x400000, 0x401fff) AM_RAM AM_BASE_SIZE_MEMBER(psikyo_state, spriteram, spriteram_size) // Sprites, buffered by two frames (list buffered + fb buffered)
|
||||
AM_RANGE(0x600000, 0x601fff) AM_RAM_WRITE(paletteram32_xRRRRRGGGGGBBBBB_dword_w) AM_BASE_GENERIC(paletteram) // Palette
|
||||
AM_RANGE(0x800000, 0x801fff) AM_RAM_WRITE(psikyo_vram_0_w) AM_BASE_MEMBER(psikyo_state, vram_0) // Layer 0
|
||||
AM_RANGE(0x802000, 0x803fff) AM_RAM_WRITE(psikyo_vram_1_w) AM_BASE_MEMBER(psikyo_state, vram_1) // Layer 1
|
||||
@ -368,7 +368,7 @@ static ADDRESS_MAP_START( psikyo_bootleg_map, ADDRESS_SPACE_PROGRAM, 32 )
|
||||
AM_RANGE(0x000000, 0x0fffff) AM_ROM // ROM (not all used)
|
||||
AM_RANGE(0x200000, 0x200fff) AM_RAM AM_BASE_MEMBER(psikyo_state, bootleg_spritebuffer) // RAM (it copies the spritelist here, the HW probably doesn't have automatic buffering like the originals?
|
||||
|
||||
AM_RANGE(0x400000, 0x401fff) AM_RAM AM_BASE_SIZE_GENERIC(spriteram) // Sprites, buffered by two frames (list buffered + fb buffered)
|
||||
AM_RANGE(0x400000, 0x401fff) AM_RAM AM_BASE_SIZE_MEMBER(psikyo_state, spriteram, spriteram_size) // Sprites, buffered by two frames (list buffered + fb buffered)
|
||||
AM_RANGE(0x600000, 0x601fff) AM_RAM_WRITE(paletteram32_xRRRRRGGGGGBBBBB_dword_w) AM_BASE_GENERIC(paletteram) // Palette
|
||||
AM_RANGE(0x800000, 0x801fff) AM_RAM_WRITE(psikyo_vram_0_w) AM_BASE_MEMBER(psikyo_state, vram_0) // Layer 0
|
||||
AM_RANGE(0x802000, 0x803fff) AM_RAM_WRITE(psikyo_vram_1_w) AM_BASE_MEMBER(psikyo_state, vram_1) // Layer 1
|
||||
|
@ -418,7 +418,7 @@ static ADDRESS_MAP_START( psychic5_main_map, ADDRESS_SPACE_PROGRAM, 8 )
|
||||
AM_RANGE(0xf004, 0xf004) AM_NOP // ???
|
||||
AM_RANGE(0xf005, 0xf005) AM_READNOP AM_WRITE(psychic5_title_screen_w)
|
||||
AM_RANGE(0xf006, 0xf1ff) AM_NOP
|
||||
AM_RANGE(0xf200, 0xf7ff) AM_RAM AM_BASE_SIZE_GENERIC(spriteram)
|
||||
AM_RANGE(0xf200, 0xf7ff) AM_RAM AM_BASE_SIZE_MEMBER(psychic5_state, spriteram, spriteram_size)
|
||||
AM_RANGE(0xf800, 0xffff) AM_RAM
|
||||
ADDRESS_MAP_END
|
||||
|
||||
@ -448,7 +448,7 @@ static ADDRESS_MAP_START( bombsa_main_map, ADDRESS_SPACE_PROGRAM, 8 )
|
||||
AM_RANGE(0xd005, 0xd005) AM_WRITE(bombsa_unknown_w) // ?
|
||||
|
||||
AM_RANGE(0xd000, 0xd1ff) AM_RAM
|
||||
AM_RANGE(0xd200, 0xd7ff) AM_RAM AM_BASE_SIZE_GENERIC(spriteram)
|
||||
AM_RANGE(0xd200, 0xd7ff) AM_RAM AM_BASE_SIZE_MEMBER(psychic5_state, spriteram, spriteram_size)
|
||||
AM_RANGE(0xd800, 0xdfff) AM_RAM
|
||||
|
||||
AM_RANGE(0xe000, 0xffff) AM_READWRITE(psychic5_paged_ram_r, bombsa_paged_ram_w)
|
||||
|
@ -96,6 +96,8 @@ public:
|
||||
int bgcolor;
|
||||
int nmi_main;
|
||||
int nmi_sub;
|
||||
UINT8 *spriteram;
|
||||
size_t spriteram_size;
|
||||
};
|
||||
|
||||
|
||||
@ -148,7 +150,7 @@ static VIDEO_START(pturn)
|
||||
static SCREEN_UPDATE(pturn)
|
||||
{
|
||||
pturn_state *state = screen->machine->driver_data<pturn_state>();
|
||||
UINT8 *spriteram = screen->machine->generic.spriteram.u8;
|
||||
UINT8 *spriteram = state->spriteram;
|
||||
int offs;
|
||||
int sx, sy;
|
||||
int flipx, flipy;
|
||||
@ -312,7 +314,7 @@ static ADDRESS_MAP_START( main_map, ADDRESS_SPACE_PROGRAM, 8 )
|
||||
AM_RANGE(0xe400, 0xe400) AM_WRITE(fgpalette_w)
|
||||
AM_RANGE(0xe800, 0xe800) AM_WRITE(sound_w)
|
||||
|
||||
AM_RANGE(0xf000, 0xf0ff) AM_RAM AM_BASE_SIZE_GENERIC(spriteram)
|
||||
AM_RANGE(0xf000, 0xf0ff) AM_RAM AM_BASE_SIZE_MEMBER(pturn_state, spriteram, spriteram_size)
|
||||
|
||||
AM_RANGE(0xf400, 0xf400) AM_WRITE(bg_scrollx_w)
|
||||
|
||||
|
@ -36,7 +36,7 @@ static ADDRESS_MAP_START( quizdna_map, ADDRESS_SPACE_PROGRAM, 8 )
|
||||
AM_RANGE(0x8000, 0x9fff) AM_WRITE(quizdna_fg_ram_w)
|
||||
AM_RANGE(0xa000, 0xbfff) AM_WRITE(quizdna_bg_ram_w)
|
||||
AM_RANGE(0xc000, 0xdfff) AM_RAM
|
||||
AM_RANGE(0xe000, 0xe1ff) AM_RAM AM_BASE_SIZE_GENERIC(spriteram)
|
||||
AM_RANGE(0xe000, 0xe1ff) AM_RAM AM_BASE_SIZE_MEMBER(quizdna_state, spriteram, spriteram_size)
|
||||
AM_RANGE(0xe200, 0xefff) AM_RAM
|
||||
AM_RANGE(0xf000, 0xffff) AM_RAM_WRITE(paletteram_xBGR_RRRR_GGGG_BBBB_w) AM_BASE_GENERIC(paletteram)
|
||||
ADDRESS_MAP_END
|
||||
@ -48,7 +48,7 @@ static ADDRESS_MAP_START( gekiretu_map, ADDRESS_SPACE_PROGRAM, 8 )
|
||||
AM_RANGE(0xa000, 0xbfff) AM_WRITE(quizdna_bg_ram_w)
|
||||
AM_RANGE(0xc000, 0xdfff) AM_RAM
|
||||
AM_RANGE(0xe000, 0xefff) AM_RAM_WRITE(paletteram_xBGR_RRRR_GGGG_BBBB_w) AM_BASE_GENERIC(paletteram)
|
||||
AM_RANGE(0xf000, 0xf1ff) AM_RAM AM_BASE_SIZE_GENERIC(spriteram)
|
||||
AM_RANGE(0xf000, 0xf1ff) AM_RAM AM_BASE_SIZE_MEMBER(quizdna_state, spriteram, spriteram_size)
|
||||
AM_RANGE(0xf200, 0xffff) AM_RAM
|
||||
ADDRESS_MAP_END
|
||||
|
||||
|
@ -24,6 +24,17 @@ Then it puts settings at 0x9e08 and 0x9e0a (bp 91acb)
|
||||
#include "sound/okim6295.h"
|
||||
#include "includes/raiden2.h"
|
||||
|
||||
|
||||
class r2dx_v33_state : public driver_device
|
||||
{
|
||||
public:
|
||||
r2dx_v33_state(running_machine &machine, const driver_device_config_base &config)
|
||||
: driver_device(machine, config) { }
|
||||
|
||||
UINT16 *spriteram;
|
||||
};
|
||||
|
||||
|
||||
static UINT16 *seibu_crtc_regs;
|
||||
static UINT16 *bg_vram,*md_vram,*fg_vram,*tx_vram;
|
||||
static tilemap_t *bg_tilemap,*md_tilemap,*fg_tilemap,*tx_tilemap;
|
||||
@ -71,7 +82,8 @@ static TILE_GET_INFO( get_tx_tile_info )
|
||||
/* copied from Legionnaire */
|
||||
static void draw_sprites(running_machine *machine, bitmap_t *bitmap,const rectangle *cliprect,int pri)
|
||||
{
|
||||
UINT16 *spriteram16 = machine->generic.spriteram.u16;
|
||||
r2dx_v33_state *state = machine->driver_data<r2dx_v33_state>();
|
||||
UINT16 *spriteram16 = state->spriteram;
|
||||
int offs,fx,fy,x,y,color,sprite;
|
||||
// int cur_pri;
|
||||
int dx,dy,ax,ay;
|
||||
@ -373,7 +385,7 @@ static ADDRESS_MAP_START( rdx_v33_map, ADDRESS_SPACE_PROGRAM, 16 )
|
||||
AM_RANGE(0x00800, 0x00fff) AM_RAM // copies eeprom here?
|
||||
AM_RANGE(0x01000, 0x0bfff) AM_RAM
|
||||
|
||||
AM_RANGE(0x0c000, 0x0c7ff) AM_RAM AM_BASE_GENERIC(spriteram)
|
||||
AM_RANGE(0x0c000, 0x0c7ff) AM_RAM AM_BASE_MEMBER(r2dx_v33_state, spriteram)
|
||||
AM_RANGE(0x0c800, 0x0cfff) AM_RAM
|
||||
AM_RANGE(0x0d000, 0x0d7ff) AM_RAM_WRITE(rdx_bg_vram_w) AM_BASE(&bg_vram)
|
||||
AM_RANGE(0x0d800, 0x0dfff) AM_RAM_WRITE(rdx_md_vram_w) AM_BASE(&md_vram)
|
||||
@ -446,7 +458,7 @@ static ADDRESS_MAP_START( nzerotea_map, ADDRESS_SPACE_PROGRAM, 16 )
|
||||
AM_RANGE(0x00800, 0x00fff) AM_RAM
|
||||
AM_RANGE(0x01000, 0x0bfff) AM_RAM
|
||||
|
||||
AM_RANGE(0x0c000, 0x0c7ff) AM_RAM AM_BASE_GENERIC(spriteram)
|
||||
AM_RANGE(0x0c000, 0x0c7ff) AM_RAM AM_BASE_MEMBER(r2dx_v33_state, spriteram)
|
||||
AM_RANGE(0x0c800, 0x0cfff) AM_RAM
|
||||
AM_RANGE(0x0d000, 0x0d7ff) AM_RAM_WRITE(rdx_bg_vram_w) AM_BASE(&bg_vram)
|
||||
AM_RANGE(0x0d800, 0x0dfff) AM_RAM_WRITE(rdx_md_vram_w) AM_BASE(&md_vram)
|
||||
@ -639,7 +651,7 @@ static INPUT_PORTS_START( nzerotea )
|
||||
INPUT_PORTS_END
|
||||
|
||||
|
||||
static MACHINE_CONFIG_START( rdx_v33, driver_device )
|
||||
static MACHINE_CONFIG_START( rdx_v33, r2dx_v33_state )
|
||||
|
||||
/* basic machine hardware */
|
||||
MCFG_CPU_ADD("maincpu", V33, 32000000/2 ) // ?
|
||||
@ -671,7 +683,7 @@ static MACHINE_CONFIG_START( rdx_v33, driver_device )
|
||||
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.5)
|
||||
MACHINE_CONFIG_END
|
||||
|
||||
static MACHINE_CONFIG_START( nzerotea, driver_device )
|
||||
static MACHINE_CONFIG_START( nzerotea, r2dx_v33_state )
|
||||
|
||||
/* basic machine hardware */
|
||||
MCFG_CPU_ADD("maincpu", V33,XTAL_32MHz/2) /* verified on pcb */
|
||||
|
@ -160,7 +160,7 @@ static WRITE16_HANDLER( backup_ram_w )
|
||||
/*Basic memory map for this HW*/
|
||||
static ADDRESS_MAP_START( base_mem, ADDRESS_SPACE_PROGRAM, 16 )
|
||||
AM_RANGE(0x000000, 0x0fffff) AM_ROM // ROM
|
||||
AM_RANGE(0x200000, 0x203fff) AM_RAM AM_BASE_GENERIC(spriteram) // Sprites
|
||||
AM_RANGE(0x200000, 0x203fff) AM_RAM AM_BASE_MEMBER(realbrk_state, spriteram) // Sprites
|
||||
AM_RANGE(0x400000, 0x40ffff) AM_RAM_WRITE(paletteram16_xBBBBBGGGGGRRRRR_word_w) AM_BASE_GENERIC(paletteram ) // Palette
|
||||
AM_RANGE(0x600000, 0x601fff) AM_RAM_WRITE(realbrk_vram_0_w) AM_BASE_MEMBER(realbrk_state, vram_0 ) // Background (0)
|
||||
AM_RANGE(0x602000, 0x603fff) AM_RAM_WRITE(realbrk_vram_1_w) AM_BASE_MEMBER(realbrk_state, vram_1 ) // Background (1)
|
||||
|
@ -674,7 +674,7 @@ static WRITE8_HANDLER( renegade_coin_counter_w )
|
||||
static ADDRESS_MAP_START( renegade_map, ADDRESS_SPACE_PROGRAM, 8 )
|
||||
AM_RANGE(0x0000, 0x17ff) AM_RAM
|
||||
AM_RANGE(0x1800, 0x1fff) AM_RAM_WRITE(renegade_videoram2_w) AM_BASE_MEMBER(renegade_state, videoram2)
|
||||
AM_RANGE(0x2000, 0x27ff) AM_RAM AM_BASE_GENERIC(spriteram)
|
||||
AM_RANGE(0x2000, 0x27ff) AM_RAM AM_BASE_MEMBER(renegade_state, spriteram)
|
||||
AM_RANGE(0x2800, 0x2fff) AM_RAM_WRITE(renegade_videoram_w) AM_BASE_MEMBER(renegade_state, videoram)
|
||||
AM_RANGE(0x3000, 0x30ff) AM_RAM_WRITE(paletteram_xxxxBBBBGGGGRRRR_split1_w) AM_BASE_GENERIC(paletteram)
|
||||
AM_RANGE(0x3100, 0x31ff) AM_RAM_WRITE(paletteram_xxxxBBBBGGGGRRRR_split2_w) AM_BASE_GENERIC(paletteram2)
|
||||
|
@ -33,7 +33,7 @@ static ADDRESS_MAP_START( rollrace_map, ADDRESS_SPACE_PROGRAM, 8 )
|
||||
AM_RANGE(0xe400, 0xe47f) AM_RAM AM_BASE_MEMBER(rollrace_state, colorram)
|
||||
AM_RANGE(0xe800, 0xe800) AM_WRITE(soundlatch_w)
|
||||
AM_RANGE(0xec00, 0xec0f) AM_NOP /* Analog sound effects ?? ec00 sound enable ?*/
|
||||
AM_RANGE(0xf000, 0xf0ff) AM_RAM AM_BASE_SIZE_GENERIC(spriteram)
|
||||
AM_RANGE(0xf000, 0xf0ff) AM_RAM AM_BASE_SIZE_MEMBER(rollrace_state, spriteram, spriteram_size)
|
||||
AM_RANGE(0xf400, 0xf400) AM_WRITE(rollrace_backgroundcolor_w)
|
||||
AM_RANGE(0xf800, 0xf800) AM_READ_PORT("P1")
|
||||
AM_RANGE(0xf801, 0xf801) AM_READ_PORT("P2") AM_WRITE(rollrace_bkgpen_w)
|
||||
|
@ -227,7 +227,7 @@ static ADDRESS_MAP_START( main_map, ADDRESS_SPACE_PROGRAM, 16 )
|
||||
ADDRESS_MAP_GLOBAL_MASK(0xfffff)
|
||||
AM_RANGE(0x000000, 0x03ffff) AM_ROM
|
||||
AM_RANGE(0x040000, 0x04ffff) AM_RAM AM_BASE_MEMBER(rpunch_state, bitmapram) AM_SIZE_MEMBER(rpunch_state, bitmapram_size)
|
||||
AM_RANGE(0x060000, 0x060fff) AM_RAM AM_BASE_GENERIC(spriteram)
|
||||
AM_RANGE(0x060000, 0x060fff) AM_RAM AM_BASE_MEMBER(rpunch_state, spriteram)
|
||||
AM_RANGE(0x080000, 0x083fff) AM_RAM_WRITE(rpunch_videoram_w) AM_BASE_MEMBER(rpunch_state, videoram)
|
||||
AM_RANGE(0x0a0000, 0x0a07ff) AM_RAM_WRITE(paletteram16_xRRRRRGGGGGBBBBB_word_w) AM_BASE_GENERIC(paletteram)
|
||||
AM_RANGE(0x0c0000, 0x0c0007) AM_WRITE(rpunch_scrollreg_w)
|
||||
|
@ -67,6 +67,7 @@ public:
|
||||
|
||||
UINT16 sengokumj_mux_data;
|
||||
UINT8 hopper_io;
|
||||
UINT8 *spriteram;
|
||||
};
|
||||
|
||||
|
||||
@ -122,7 +123,7 @@ static ADDRESS_MAP_START( sengokmj_map, ADDRESS_SPACE_PROGRAM, 16 )
|
||||
AM_RANGE(0x0d000, 0x0d7ff) AM_RAM_WRITE(seibucrtc_sc2vram_w) AM_BASE(&seibucrtc_sc2vram)
|
||||
AM_RANGE(0x0d800, 0x0e7ff) AM_RAM_WRITE(seibucrtc_sc3vram_w) AM_BASE(&seibucrtc_sc3vram)
|
||||
AM_RANGE(0x0e800, 0x0f7ff) AM_RAM_WRITE(paletteram16_xBBBBBGGGGGRRRRR_word_w) AM_BASE_GENERIC(paletteram)
|
||||
AM_RANGE(0x0f800, 0x0ffff) AM_RAM AM_BASE_GENERIC(spriteram)
|
||||
AM_RANGE(0x0f800, 0x0ffff) AM_RAM AM_BASE_MEMBER(sengokmj_state, spriteram)
|
||||
AM_RANGE(0xc0000, 0xfffff) AM_ROM
|
||||
ADDRESS_MAP_END
|
||||
|
||||
|
@ -249,7 +249,7 @@ static ADDRESS_MAP_START( chinhero_main_map, ADDRESS_SPACE_PROGRAM, 8 )
|
||||
AM_RANGE(0xc000, 0xc002) AM_WRITEONLY AM_BASE(&shangkid_videoreg)
|
||||
AM_RANGE(0xd000, 0xdfff) AM_RAM_WRITE(shangkid_videoram_w) AM_BASE_MEMBER(shangkid_state, videoram) AM_SHARE("share1")
|
||||
AM_RANGE(0xe000, 0xfdff) AM_RAM AM_SHARE("share2")
|
||||
AM_RANGE(0xfe00, 0xffff) AM_RAM AM_BASE_GENERIC(spriteram) AM_SHARE("share3")
|
||||
AM_RANGE(0xfe00, 0xffff) AM_RAM AM_BASE_MEMBER(shangkid_state, spriteram) AM_SHARE("share3")
|
||||
ADDRESS_MAP_END
|
||||
|
||||
static ADDRESS_MAP_START( shangkid_main_map, ADDRESS_SPACE_PROGRAM, 8 )
|
||||
@ -270,7 +270,7 @@ static ADDRESS_MAP_START( shangkid_main_map, ADDRESS_SPACE_PROGRAM, 8 )
|
||||
AM_RANGE(0xc000, 0xc002) AM_WRITEONLY AM_BASE(&shangkid_videoreg)
|
||||
AM_RANGE(0xd000, 0xdfff) AM_RAM_WRITE(shangkid_videoram_w) AM_BASE_MEMBER(shangkid_state, videoram) AM_SHARE("share1")
|
||||
AM_RANGE(0xe000, 0xfdff) AM_RAM AM_SHARE("share2")
|
||||
AM_RANGE(0xfe00, 0xffff) AM_RAM AM_BASE_GENERIC(spriteram) AM_SHARE("share3")
|
||||
AM_RANGE(0xfe00, 0xffff) AM_RAM AM_BASE_MEMBER(shangkid_state, spriteram) AM_SHARE("share3")
|
||||
ADDRESS_MAP_END
|
||||
|
||||
/***************************************************************************************/
|
||||
|
@ -96,6 +96,18 @@ Notes:
|
||||
#include "machine/nvram.h"
|
||||
#include "machine/ticket.h"
|
||||
|
||||
|
||||
class sigmab98_state : public driver_device
|
||||
{
|
||||
public:
|
||||
sigmab98_state(running_machine &machine, const driver_device_config_base &config)
|
||||
: driver_device(machine, config) { }
|
||||
|
||||
UINT8 *spriteram;
|
||||
size_t spriteram_size;
|
||||
};
|
||||
|
||||
|
||||
/***************************************************************************
|
||||
|
||||
Video
|
||||
@ -140,8 +152,9 @@ Notes:
|
||||
|
||||
static void draw_sprites(running_machine *machine, bitmap_t *bitmap, const rectangle *cliprect, int pri_mask)
|
||||
{
|
||||
UINT8 *end = machine->generic.spriteram.u8 - 0x10;
|
||||
UINT8 *s = end + machine->generic.spriteram_size;
|
||||
sigmab98_state *state = machine->driver_data<sigmab98_state>();
|
||||
UINT8 *end = state->spriteram - 0x10;
|
||||
UINT8 *s = end + state->spriteram_size;
|
||||
|
||||
for ( ; s != end; s -= 0x10 )
|
||||
{
|
||||
@ -418,7 +431,7 @@ static ADDRESS_MAP_START( gegege_mem_map, ADDRESS_SPACE_PROGRAM, 8 )
|
||||
AM_RANGE( 0x0000, 0x7fff ) AM_ROM
|
||||
AM_RANGE( 0x8000, 0x9fff ) AM_ROMBANK("rombank")
|
||||
|
||||
AM_RANGE( 0xa000, 0xafff ) AM_RAM AM_BASE_SIZE_GENERIC(spriteram)
|
||||
AM_RANGE( 0xa000, 0xafff ) AM_RAM AM_BASE_SIZE_MEMBER(sigmab98_state, spriteram, spriteram_size)
|
||||
|
||||
AM_RANGE( 0xc000, 0xc1ff ) AM_RAM_WRITE(paletteram_xRRRRRGGGGGBBBBB_be_w) AM_BASE_GENERIC(paletteram)
|
||||
|
||||
@ -805,6 +818,7 @@ static READ8_HANDLER( haekaka_vblank_r )
|
||||
|
||||
static READ8_HANDLER( haekaka_b000_r )
|
||||
{
|
||||
sigmab98_state *state = space->machine->driver_data<sigmab98_state>();
|
||||
switch (rombank)
|
||||
{
|
||||
case 0x10: // ROM
|
||||
@ -827,7 +841,7 @@ static READ8_HANDLER( haekaka_b000_r )
|
||||
|
||||
case 0x65: // SPRITERAM
|
||||
if (offset < 0x1000)
|
||||
return space->machine->generic.spriteram.u8[offset];
|
||||
return state->spriteram[offset];
|
||||
|
||||
case 0x67: // PALETTERAM + TABLE? + REGS
|
||||
if (offset < 0x200)
|
||||
@ -843,12 +857,13 @@ static READ8_HANDLER( haekaka_b000_r )
|
||||
|
||||
static WRITE8_HANDLER( haekaka_b000_w )
|
||||
{
|
||||
sigmab98_state *state = space->machine->driver_data<sigmab98_state>();
|
||||
switch (rombank)
|
||||
{
|
||||
case 0x65: // SPRITERAM
|
||||
if (offset < 0x1000)
|
||||
{
|
||||
space->machine->generic.spriteram.u8[offset] = data;
|
||||
state->spriteram[offset] = data;
|
||||
return;
|
||||
}
|
||||
break;
|
||||
@ -929,6 +944,7 @@ ADDRESS_MAP_END
|
||||
// rombank
|
||||
static WRITE8_HANDLER( itazuram_rombank_w )
|
||||
{
|
||||
sigmab98_state *state = space->machine->driver_data<sigmab98_state>();
|
||||
if (offset == 0)
|
||||
{
|
||||
reg = data;
|
||||
@ -945,8 +961,8 @@ static WRITE8_HANDLER( itazuram_rombank_w )
|
||||
case 0x11: // 3800 IS ROM
|
||||
memory_set_bankptr(space->machine, "rombank0", rom + 0x4c00);
|
||||
memory_set_bankptr(space->machine, "rombank1", rom + 0x5c00);
|
||||
memory_set_bankptr(space->machine, "sprbank0", space->machine->generic.spriteram.u8 + 0x1000*4); // scratch
|
||||
memory_set_bankptr(space->machine, "sprbank1", space->machine->generic.spriteram.u8 + 0x1000*4); // scratch
|
||||
memory_set_bankptr(space->machine, "sprbank0", state->spriteram + 0x1000*4); // scratch
|
||||
memory_set_bankptr(space->machine, "sprbank1", state->spriteram + 0x1000*4); // scratch
|
||||
break;
|
||||
|
||||
default:
|
||||
@ -961,8 +977,8 @@ static WRITE8_HANDLER( itazuram_rombank_w )
|
||||
case 0x14: // 3800 IS ROM
|
||||
memory_set_bankptr(space->machine, "rombank0", rom + 0x8000);
|
||||
memory_set_bankptr(space->machine, "rombank1", rom + 0x9000);
|
||||
memory_set_bankptr(space->machine, "sprbank0", space->machine->generic.spriteram.u8 + 0x1000*4); // scratch
|
||||
memory_set_bankptr(space->machine, "sprbank1", space->machine->generic.spriteram.u8 + 0x1000*4); // scratch
|
||||
memory_set_bankptr(space->machine, "sprbank0", state->spriteram + 0x1000*4); // scratch
|
||||
memory_set_bankptr(space->machine, "sprbank1", state->spriteram + 0x1000*4); // scratch
|
||||
break;
|
||||
|
||||
default:
|
||||
@ -977,31 +993,31 @@ static WRITE8_HANDLER( itazuram_rombank_w )
|
||||
case 0x0f: // 3800 IS ROM
|
||||
memory_set_bankptr(space->machine, "rombank0", rom + 0x3400);
|
||||
memory_set_bankptr(space->machine, "rombank1", rom + 0x4400);
|
||||
memory_set_bankptr(space->machine, "sprbank0", space->machine->generic.spriteram.u8 + 0x1000*4); // scratch
|
||||
memory_set_bankptr(space->machine, "sprbank1", space->machine->generic.spriteram.u8 + 0x1000*4); // scratch
|
||||
memory_set_bankptr(space->machine, "sprbank0", state->spriteram + 0x1000*4); // scratch
|
||||
memory_set_bankptr(space->machine, "sprbank1", state->spriteram + 0x1000*4); // scratch
|
||||
break;
|
||||
|
||||
case 0x12: // 3800 IS ROM
|
||||
memory_set_bankptr(space->machine, "rombank0", rom + 0x6400);
|
||||
memory_set_bankptr(space->machine, "rombank1", rom + 0x7400);
|
||||
memory_set_bankptr(space->machine, "sprbank0", space->machine->generic.spriteram.u8 + 0x1000*4); // scratch
|
||||
memory_set_bankptr(space->machine, "sprbank1", space->machine->generic.spriteram.u8 + 0x1000*4); // scratch
|
||||
memory_set_bankptr(space->machine, "sprbank0", state->spriteram + 0x1000*4); // scratch
|
||||
memory_set_bankptr(space->machine, "sprbank1", state->spriteram + 0x1000*4); // scratch
|
||||
break;
|
||||
|
||||
// used in test mode:
|
||||
// case 0x5c: memory_set_bankptr(space->machine, "rombank", rom + 0x400 + 0x0000); break; // 3800 IS RAM! (8000 bytes)
|
||||
|
||||
case 0x5e: // 3800 IS RAM! (1404 bytes)
|
||||
memory_set_bankptr(space->machine, "rombank0", space->machine->generic.spriteram.u8 + 0x1000*1);
|
||||
memory_set_bankptr(space->machine, "sprbank0", space->machine->generic.spriteram.u8 + 0x1000*1);
|
||||
memory_set_bankptr(space->machine, "rombank1", space->machine->generic.spriteram.u8 + 0x1000*2);
|
||||
memory_set_bankptr(space->machine, "sprbank1", space->machine->generic.spriteram.u8 + 0x1000*2);
|
||||
memory_set_bankptr(space->machine, "rombank0", state->spriteram + 0x1000*1);
|
||||
memory_set_bankptr(space->machine, "sprbank0", state->spriteram + 0x1000*1);
|
||||
memory_set_bankptr(space->machine, "rombank1", state->spriteram + 0x1000*2);
|
||||
memory_set_bankptr(space->machine, "sprbank1", state->spriteram + 0x1000*2);
|
||||
break;
|
||||
|
||||
case 0x6c: // 3800 IS RAM! (1000 bytes) - SPRITERAM
|
||||
memory_set_bankptr(space->machine, "rombank0", space->machine->generic.spriteram.u8);
|
||||
memory_set_bankptr(space->machine, "sprbank0", space->machine->generic.spriteram.u8);
|
||||
// memory_set_bankptr(space->machine, "sprbank1", space->machine->generic.spriteram.u8 + 0x1000*4); // scratch
|
||||
memory_set_bankptr(space->machine, "rombank0", state->spriteram);
|
||||
memory_set_bankptr(space->machine, "sprbank0", state->spriteram);
|
||||
// memory_set_bankptr(space->machine, "sprbank1", state->spriteram + 0x1000*4); // scratch
|
||||
break;
|
||||
|
||||
default:
|
||||
@ -1016,8 +1032,8 @@ static WRITE8_HANDLER( itazuram_rombank_w )
|
||||
case 0x14: // 3800 IS ROM
|
||||
memory_set_bankptr(space->machine, "rombank0", rom + 0x8800);
|
||||
memory_set_bankptr(space->machine, "rombank1", rom + 0x9800);
|
||||
memory_set_bankptr(space->machine, "sprbank0", space->machine->generic.spriteram.u8 + 0x1000*4); // scratch
|
||||
memory_set_bankptr(space->machine, "sprbank1", space->machine->generic.spriteram.u8 + 0x1000*4); // scratch
|
||||
memory_set_bankptr(space->machine, "sprbank0", state->spriteram + 0x1000*4); // scratch
|
||||
memory_set_bankptr(space->machine, "sprbank1", state->spriteram + 0x1000*4); // scratch
|
||||
break;
|
||||
|
||||
default:
|
||||
@ -1280,6 +1296,7 @@ static READ8_HANDLER( tdoboon_rambank_r )
|
||||
|
||||
static READ8_HANDLER( tdoboon_c000_r )
|
||||
{
|
||||
sigmab98_state *state = space->machine->driver_data<sigmab98_state>();
|
||||
switch (rombank)
|
||||
{
|
||||
case 0x10: // ROM
|
||||
@ -1302,7 +1319,7 @@ static READ8_HANDLER( tdoboon_c000_r )
|
||||
|
||||
case 0x64: // SPRITERAM
|
||||
if (offset < 0x1000)
|
||||
return space->machine->generic.spriteram.u8[offset];
|
||||
return state->spriteram[offset];
|
||||
break;
|
||||
|
||||
case 0x66: // PALETTERAM + TABLE?
|
||||
@ -1322,12 +1339,13 @@ static READ8_HANDLER( tdoboon_c000_r )
|
||||
|
||||
static WRITE8_HANDLER( tdoboon_c000_w )
|
||||
{
|
||||
sigmab98_state *state = space->machine->driver_data<sigmab98_state>();
|
||||
switch (rombank)
|
||||
{
|
||||
case 0x64: // SPRITERAM
|
||||
if (offset < 0x1000)
|
||||
{
|
||||
space->machine->generic.spriteram.u8[offset] = data;
|
||||
state->spriteram[offset] = data;
|
||||
return;
|
||||
}
|
||||
break;
|
||||
@ -1530,7 +1548,7 @@ static INTERRUPT_GEN( gegege_vblank_interrupt )
|
||||
cpu_set_input_line_and_vector(device, 0, HOLD_LINE, 0x5a);
|
||||
}
|
||||
|
||||
static MACHINE_CONFIG_START( gegege, driver_device )
|
||||
static MACHINE_CONFIG_START( gegege, sigmab98_state )
|
||||
MCFG_CPU_ADD("maincpu", Z80, 10000000) // !! TAXAN KY-80, clock @X1? !!
|
||||
MCFG_CPU_PROGRAM_MAP(gegege_mem_map)
|
||||
MCFG_CPU_IO_MAP(gegege_io_map)
|
||||
@ -1584,7 +1602,7 @@ static MACHINE_RESET( sammymdl )
|
||||
cpu_set_reg(machine->device("maincpu"), Z80_PC, 0x400); // code starts at 400 ??? (000 = cart header)
|
||||
}
|
||||
|
||||
static MACHINE_CONFIG_START( sammymdl, driver_device )
|
||||
static MACHINE_CONFIG_START( sammymdl, sigmab98_state )
|
||||
MCFG_CPU_ADD("maincpu", Z80, XTAL_20MHz / 2) // !! KL5C80A120FP @ 10MHz? (actually 4 times faster than Z80) !!
|
||||
MCFG_CPU_PROGRAM_MAP( animalc_map )
|
||||
MCFG_CPU_IO_MAP( animalc_io )
|
||||
@ -1898,16 +1916,17 @@ ROM_END
|
||||
|
||||
static DRIVER_INIT( animalc )
|
||||
{
|
||||
sigmab98_state *state = machine->driver_data<sigmab98_state>();
|
||||
// RAM banks
|
||||
UINT8 *bankedram = auto_alloc_array(machine, UINT8, 0x1000 * 5);
|
||||
memory_configure_bank(machine, "rambank", 0, 1, nvram, 0x1000);
|
||||
memory_configure_bank(machine, "rambank", 1, 4, bankedram, 0x1000);
|
||||
memory_set_bank(machine, "rambank", 0);
|
||||
|
||||
machine->generic.spriteram.u8 = auto_alloc_array(machine, UINT8, 0x1000 * 5);
|
||||
memset(machine->generic.spriteram.u8, 0, 0x1000 * 5);
|
||||
machine->generic.spriteram_size = 0x1000;
|
||||
memory_configure_bank(machine, "sprbank", 0, 5, machine->generic.spriteram.u8, 0x1000);
|
||||
state->spriteram = auto_alloc_array(machine, UINT8, 0x1000 * 5);
|
||||
memset(state->spriteram, 0, 0x1000 * 5);
|
||||
state->spriteram_size = 0x1000;
|
||||
memory_configure_bank(machine, "sprbank", 0, 5, state->spriteram, 0x1000);
|
||||
memory_set_bank(machine, "sprbank", 0);
|
||||
}
|
||||
|
||||
@ -1935,6 +1954,7 @@ ROM_END
|
||||
|
||||
static DRIVER_INIT( itazuram )
|
||||
{
|
||||
sigmab98_state *state = machine->driver_data<sigmab98_state>();
|
||||
// ROM banks
|
||||
UINT8 *rom = machine->region("maincpu")->base();
|
||||
memory_set_bankptr(machine, "rombank0", rom + 0x3400);
|
||||
@ -1947,11 +1967,11 @@ static DRIVER_INIT( itazuram )
|
||||
memory_set_bankptr(machine, "palbank", machine->generic.paletteram.u8);
|
||||
rambank = 0x64;
|
||||
|
||||
machine->generic.spriteram.u8 = auto_alloc_array(machine, UINT8, 0x1000 * 5);
|
||||
memset(machine->generic.spriteram.u8, 0, 0x1000 * 5);
|
||||
machine->generic.spriteram_size = 0x1000;
|
||||
memory_set_bankptr(machine, "sprbank0", machine->generic.spriteram.u8 + 0x1000*4); // scratch
|
||||
memory_set_bankptr(machine, "sprbank1", machine->generic.spriteram.u8 + 0x1000*4); // scratch
|
||||
state->spriteram = auto_alloc_array(machine, UINT8, 0x1000 * 5);
|
||||
memset(state->spriteram, 0, 0x1000 * 5);
|
||||
state->spriteram_size = 0x1000;
|
||||
memory_set_bankptr(machine, "sprbank0", state->spriteram + 0x1000*4); // scratch
|
||||
memory_set_bankptr(machine, "sprbank1", state->spriteram + 0x1000*4); // scratch
|
||||
}
|
||||
|
||||
/***************************************************************************
|
||||
@ -2050,13 +2070,14 @@ ROM_END
|
||||
|
||||
static DRIVER_INIT( haekaka )
|
||||
{
|
||||
sigmab98_state *state = machine->driver_data<sigmab98_state>();
|
||||
// RAM banks
|
||||
machine->generic.paletteram.u8 = auto_alloc_array(machine, UINT8, 0x200);
|
||||
memset(machine->generic.paletteram.u8, 0, 0x200);
|
||||
|
||||
machine->generic.spriteram.u8 = auto_alloc_array(machine, UINT8, 0x1000);
|
||||
memset(machine->generic.spriteram.u8, 0, 0x1000);
|
||||
machine->generic.spriteram_size = 0x1000;
|
||||
state->spriteram = auto_alloc_array(machine, UINT8, 0x1000);
|
||||
memset(state->spriteram, 0, 0x1000);
|
||||
state->spriteram_size = 0x1000;
|
||||
|
||||
rombank = 0x65;
|
||||
rambank = 0x53;
|
||||
|
@ -186,15 +186,17 @@ static WRITE32_HANDLER( simpl156_eeprom_w )
|
||||
|
||||
static READ32_HANDLER( simpl156_spriteram_r )
|
||||
{
|
||||
return space->machine->generic.spriteram.u32[offset] ^ 0xffff0000;
|
||||
simpl156_state *state = space->machine->driver_data<simpl156_state>();
|
||||
return state->spriteram[offset] ^ 0xffff0000;
|
||||
}
|
||||
|
||||
static WRITE32_HANDLER( simpl156_spriteram_w )
|
||||
{
|
||||
simpl156_state *state = space->machine->driver_data<simpl156_state>();
|
||||
data &= 0x0000ffff;
|
||||
mem_mask &= 0x0000ffff;
|
||||
|
||||
COMBINE_DATA(&space->machine->generic.spriteram.u32[offset]);
|
||||
COMBINE_DATA(&state->spriteram[offset]);
|
||||
}
|
||||
|
||||
|
||||
@ -249,7 +251,7 @@ static WRITE32_HANDLER( simpl156_pf2_rowscroll_w )
|
||||
static ADDRESS_MAP_START( joemacr_map, ADDRESS_SPACE_PROGRAM, 32 )
|
||||
AM_RANGE(0x000000, 0x07ffff) AM_ROM
|
||||
AM_RANGE(0x100000, 0x107fff) AM_READWRITE(simpl156_mainram_r, simpl156_mainram_w) AM_BASE_MEMBER(simpl156_state, mainram) // main ram
|
||||
AM_RANGE(0x110000, 0x111fff) AM_READWRITE(simpl156_spriteram_r, simpl156_spriteram_w) AM_BASE_SIZE_GENERIC(spriteram)
|
||||
AM_RANGE(0x110000, 0x111fff) AM_READWRITE(simpl156_spriteram_r, simpl156_spriteram_w) AM_BASE_SIZE_MEMBER(simpl156_state, spriteram, spriteram_size)
|
||||
AM_RANGE(0x120000, 0x120fff) AM_READWRITE(simpl156_palette_r, simpl156_palette_w)
|
||||
AM_RANGE(0x130000, 0x130003) AM_READWRITE(simpl156_system_r, simpl156_eeprom_w)
|
||||
AM_RANGE(0x140000, 0x14001f) AM_DEVREADWRITE("deco_custom", deco16ic_pf12_control_dword_r, deco16ic_pf12_control_dword_w)
|
||||
@ -273,7 +275,7 @@ static ADDRESS_MAP_START( chainrec_map, ADDRESS_SPACE_PROGRAM, 32 )
|
||||
AM_RANGE(0x201000, 0x201fff) AM_RAM AM_BASE_MEMBER(simpl156_state, systemram) // work ram (32-bit)
|
||||
AM_RANGE(0x3c0000, 0x3c0003) AM_DEVREADWRITE8_MODERN("okimusic", okim6295_device, read, write, 0x000000ff)
|
||||
AM_RANGE(0x400000, 0x407fff) AM_READWRITE(simpl156_mainram_r, simpl156_mainram_w) AM_BASE_MEMBER(simpl156_state, mainram) // main ram?
|
||||
AM_RANGE(0x410000, 0x411fff) AM_READWRITE(simpl156_spriteram_r, simpl156_spriteram_w) AM_BASE_SIZE_GENERIC(spriteram)
|
||||
AM_RANGE(0x410000, 0x411fff) AM_READWRITE(simpl156_spriteram_r, simpl156_spriteram_w) AM_BASE_SIZE_MEMBER(simpl156_state, spriteram, spriteram_size)
|
||||
AM_RANGE(0x420000, 0x420fff) AM_READWRITE(simpl156_palette_r,simpl156_palette_w)
|
||||
AM_RANGE(0x430000, 0x430003) AM_READWRITE(simpl156_system_r,simpl156_eeprom_w)
|
||||
AM_RANGE(0x440000, 0x44001f) AM_DEVREADWRITE("deco_custom", deco16ic_pf12_control_dword_r, deco16ic_pf12_control_dword_w)
|
||||
@ -294,7 +296,7 @@ static ADDRESS_MAP_START( magdrop_map, ADDRESS_SPACE_PROGRAM, 32 )
|
||||
AM_RANGE(0x201000, 0x201fff) AM_RAM AM_BASE_MEMBER(simpl156_state, systemram) // work ram (32-bit)
|
||||
AM_RANGE(0x340000, 0x340003) AM_DEVREADWRITE8_MODERN("okimusic", okim6295_device, read, write, 0x000000ff)
|
||||
AM_RANGE(0x380000, 0x387fff) AM_READWRITE(simpl156_mainram_r, simpl156_mainram_w) AM_BASE_MEMBER(simpl156_state, mainram) // main ram?
|
||||
AM_RANGE(0x390000, 0x391fff) AM_READWRITE(simpl156_spriteram_r, simpl156_spriteram_w) AM_BASE_SIZE_GENERIC(spriteram)
|
||||
AM_RANGE(0x390000, 0x391fff) AM_READWRITE(simpl156_spriteram_r, simpl156_spriteram_w) AM_BASE_SIZE_MEMBER(simpl156_state, spriteram, spriteram_size)
|
||||
AM_RANGE(0x3a0000, 0x3a0fff) AM_READWRITE(simpl156_palette_r,simpl156_palette_w)
|
||||
AM_RANGE(0x3b0000, 0x3b0003) AM_READWRITE(simpl156_system_r,simpl156_eeprom_w)
|
||||
AM_RANGE(0x3c0000, 0x3c001f) AM_DEVREADWRITE("deco_custom", deco16ic_pf12_control_dword_r, deco16ic_pf12_control_dword_w)
|
||||
@ -315,7 +317,7 @@ static ADDRESS_MAP_START( magdropp_map, ADDRESS_SPACE_PROGRAM, 32 )
|
||||
AM_RANGE(0x201000, 0x201fff) AM_RAM AM_BASE_MEMBER(simpl156_state, systemram) // work ram (32-bit)
|
||||
AM_RANGE(0x4c0000, 0x4c0003) AM_DEVREADWRITE8_MODERN("okimusic", okim6295_device, read, write, 0x000000ff)
|
||||
AM_RANGE(0x680000, 0x687fff) AM_READWRITE(simpl156_mainram_r, simpl156_mainram_w) AM_BASE_MEMBER(simpl156_state, mainram) // main ram?
|
||||
AM_RANGE(0x690000, 0x691fff) AM_READWRITE(simpl156_spriteram_r, simpl156_spriteram_w) AM_BASE_SIZE_GENERIC(spriteram)
|
||||
AM_RANGE(0x690000, 0x691fff) AM_READWRITE(simpl156_spriteram_r, simpl156_spriteram_w) AM_BASE_SIZE_MEMBER(simpl156_state, spriteram, spriteram_size)
|
||||
AM_RANGE(0x6a0000, 0x6a0fff) AM_READWRITE(simpl156_palette_r,simpl156_palette_w)
|
||||
AM_RANGE(0x6b0000, 0x6b0003) AM_READWRITE(simpl156_system_r,simpl156_eeprom_w)
|
||||
AM_RANGE(0x6c0000, 0x6c001f) AM_DEVREADWRITE("deco_custom", deco16ic_pf12_control_dword_r, deco16ic_pf12_control_dword_w)
|
||||
@ -335,7 +337,7 @@ static ADDRESS_MAP_START( mitchell156_map, ADDRESS_SPACE_PROGRAM, 32 )
|
||||
AM_RANGE(0x100000, 0x100003) AM_DEVREADWRITE8_MODERN("okisfx", okim6295_device, read, write, 0x000000ff)
|
||||
AM_RANGE(0x140000, 0x140003) AM_DEVREADWRITE8_MODERN("okimusic", okim6295_device, read, write, 0x000000ff)
|
||||
AM_RANGE(0x180000, 0x187fff) AM_READWRITE(simpl156_mainram_r, simpl156_mainram_w) AM_BASE_MEMBER(simpl156_state, mainram) // main ram
|
||||
AM_RANGE(0x190000, 0x191fff) AM_READWRITE(simpl156_spriteram_r, simpl156_spriteram_w) AM_BASE_SIZE_GENERIC(spriteram)
|
||||
AM_RANGE(0x190000, 0x191fff) AM_READWRITE(simpl156_spriteram_r, simpl156_spriteram_w) AM_BASE_SIZE_MEMBER(simpl156_state, spriteram, spriteram_size)
|
||||
AM_RANGE(0x1a0000, 0x1a0fff) AM_READWRITE(simpl156_palette_r,simpl156_palette_w)
|
||||
AM_RANGE(0x1b0000, 0x1b0003) AM_READWRITE(simpl156_system_r,simpl156_eeprom_w)
|
||||
AM_RANGE(0x1c0000, 0x1c001f) AM_DEVREADWRITE("deco_custom", deco16ic_pf12_control_dword_r, deco16ic_pf12_control_dword_w)
|
||||
|
@ -84,6 +84,8 @@ public:
|
||||
int sb3_music_is_playing;
|
||||
int sb3_music;
|
||||
UINT8 semicom_prot_offset;
|
||||
UINT8 *spriteram;
|
||||
size_t spriteram_size;
|
||||
};
|
||||
|
||||
|
||||
@ -278,7 +280,7 @@ static ADDRESS_MAP_START( wintbob_map, ADDRESS_SPACE_PROGRAM, 16 )
|
||||
AM_RANGE(0x500002, 0x500003) AM_READ_PORT("DSW2")
|
||||
AM_RANGE(0x500004, 0x500005) AM_READ_PORT("SYSTEM")
|
||||
AM_RANGE(0x600000, 0x6001ff) AM_RAM_WRITE(paletteram16_xBBBBBGGGGGRRRRR_word_w) AM_BASE_GENERIC(paletteram)
|
||||
AM_RANGE(0x700000, 0x701fff) AM_RAM AM_BASE_SIZE_GENERIC(spriteram)
|
||||
AM_RANGE(0x700000, 0x701fff) AM_RAM AM_BASE_SIZE_MEMBER(snowbros_state, spriteram, spriteram_size)
|
||||
AM_RANGE(0x800000, 0x800001) AM_WRITE(snowbros_irq4_ack_w) /* IRQ 4 acknowledge */
|
||||
AM_RANGE(0x900000, 0x900001) AM_WRITE(snowbros_irq3_ack_w) /* IRQ 3 acknowledge */
|
||||
AM_RANGE(0xa00000, 0xa00001) AM_WRITE(snowbros_irq2_ack_w) /* IRQ 2 acknowledge */
|
||||
@ -299,7 +301,7 @@ static ADDRESS_MAP_START( honeydol_map, ADDRESS_SPACE_PROGRAM, 16 )
|
||||
AM_RANGE(0x900002, 0x900003) AM_READ_PORT("DSW2")
|
||||
AM_RANGE(0x900004, 0x900005) AM_READ_PORT("SYSTEM")
|
||||
AM_RANGE(0xa00000, 0xa007ff) AM_RAM_WRITE(paletteram16_xBBBBBGGGGGRRRRR_word_w) AM_BASE_GENERIC(paletteram)
|
||||
AM_RANGE(0xb00000, 0xb01fff) AM_RAM AM_BASE_SIZE_GENERIC(spriteram)
|
||||
AM_RANGE(0xb00000, 0xb01fff) AM_RAM AM_BASE_SIZE_MEMBER(snowbros_state, spriteram, spriteram_size)
|
||||
ADDRESS_MAP_END
|
||||
|
||||
static ADDRESS_MAP_START( honeydol_sound_map, ADDRESS_SPACE_PROGRAM, 8 )
|
||||
@ -336,7 +338,7 @@ static ADDRESS_MAP_START( twinadv_map, ADDRESS_SPACE_PROGRAM, 16 )
|
||||
AM_RANGE(0x500002, 0x500003) AM_READ_PORT("DSW2")
|
||||
AM_RANGE(0x500004, 0x500005) AM_READ_PORT("SYSTEM")
|
||||
AM_RANGE(0x600000, 0x6001ff) AM_RAM_WRITE(paletteram16_xBBBBBGGGGGRRRRR_word_w) AM_BASE_GENERIC(paletteram)
|
||||
AM_RANGE(0x700000, 0x701fff) AM_RAM AM_BASE_SIZE_GENERIC(spriteram)
|
||||
AM_RANGE(0x700000, 0x701fff) AM_RAM AM_BASE_SIZE_MEMBER(snowbros_state, spriteram, spriteram_size)
|
||||
AM_RANGE(0x800000, 0x800001) AM_WRITE(snowbros_irq4_ack_w) /* IRQ 4 acknowledge */
|
||||
AM_RANGE(0x900000, 0x900001) AM_WRITE(snowbros_irq3_ack_w) /* IRQ 3 acknowledge */
|
||||
AM_RANGE(0xa00000, 0xa00001) AM_WRITE(snowbros_irq2_ack_w) /* IRQ 2 acknowledge */
|
||||
@ -511,7 +513,7 @@ static ADDRESS_MAP_START( snowbros3_map, ADDRESS_SPACE_PROGRAM, 16 )
|
||||
AM_RANGE( 0x500002, 0x500003) AM_READ_PORT("DSW2")
|
||||
AM_RANGE( 0x500004, 0x500005) AM_READ_PORT("SYSTEM")
|
||||
AM_RANGE( 0x600000, 0x6003ff) AM_RAM_WRITE(paletteram16_xBBBBBGGGGGRRRRR_word_w) AM_BASE_GENERIC (paletteram)
|
||||
AM_RANGE( 0x700000, 0x7021ff) AM_RAM AM_BASE_SIZE_GENERIC(spriteram)
|
||||
AM_RANGE( 0x700000, 0x7021ff) AM_RAM AM_BASE_SIZE_MEMBER(snowbros_state, spriteram, spriteram_size)
|
||||
AM_RANGE(0x800000, 0x800001) AM_WRITE(snowbros_irq4_ack_w) /* IRQ 4 acknowledge */
|
||||
AM_RANGE(0x900000, 0x900001) AM_WRITE(snowbros_irq3_ack_w) /* IRQ 3 acknowledge */
|
||||
AM_RANGE(0xa00000, 0xa00001) AM_WRITE(snowbros_irq2_ack_w) /* IRQ 2 acknowledge */
|
||||
|
@ -252,7 +252,7 @@ static READ8_HANDLER( port_0_r )
|
||||
|
||||
static ADDRESS_MAP_START( spdodgeb_map, ADDRESS_SPACE_PROGRAM, 8 )
|
||||
AM_RANGE(0x0000, 0x0fff) AM_RAM
|
||||
AM_RANGE(0x1000, 0x10ff) AM_WRITEONLY AM_BASE_SIZE_GENERIC(spriteram)
|
||||
AM_RANGE(0x1000, 0x10ff) AM_WRITEONLY AM_BASE_SIZE_MEMBER(spdodgeb_state, spriteram, spriteram_size)
|
||||
AM_RANGE(0x2000, 0x2fff) AM_RAM_WRITE(spdodgeb_videoram_w) AM_BASE_MEMBER(spdodgeb_state, videoram)
|
||||
AM_RANGE(0x3000, 0x3000) AM_READ(port_0_r) //AM_WRITENOP
|
||||
AM_RANGE(0x3001, 0x3001) AM_READ_PORT("DSW") //AM_WRITENOP
|
||||
|
@ -72,7 +72,7 @@ static ADDRESS_MAP_START( main_cpu_map, ADDRESS_SPACE_PROGRAM, 8 )
|
||||
AM_RANGE(0xe800, 0xefff) AM_RAM_WRITE(speedbal_foreground_videoram_w) AM_BASE_MEMBER(speedbal_state, foreground_videoram)
|
||||
AM_RANGE(0xf000, 0xf5ff) AM_RAM_WRITE(paletteram_RRRRGGGGBBBBxxxx_be_w) AM_BASE_GENERIC(paletteram)
|
||||
AM_RANGE(0xf600, 0xfeff) AM_RAM AM_SHARE("nvram")
|
||||
AM_RANGE(0xff00, 0xffff) AM_RAM AM_BASE_SIZE_GENERIC(spriteram)
|
||||
AM_RANGE(0xff00, 0xffff) AM_RAM AM_BASE_SIZE_MEMBER(speedbal_state, spriteram, spriteram_size)
|
||||
ADDRESS_MAP_END
|
||||
|
||||
static ADDRESS_MAP_START( main_cpu_io_map, ADDRESS_SPACE_IO, 8 )
|
||||
|
@ -62,7 +62,7 @@ static ADDRESS_MAP_START( main_map, ADDRESS_SPACE_PROGRAM, 16 )
|
||||
AM_RANGE(0x30c000, 0x30c00b) AM_READWRITE(stadhero_control_r, stadhero_control_w)
|
||||
AM_RANGE(0x310000, 0x3107ff) AM_RAM_WRITE(paletteram16_xxxxBBBBGGGGRRRR_word_w) AM_BASE_GENERIC(paletteram)
|
||||
AM_RANGE(0xff8000, 0xffbfff) AM_RAM /* Main ram */
|
||||
AM_RANGE(0xffc000, 0xffc7ff) AM_MIRROR(0x000800) AM_RAM AM_BASE_GENERIC(spriteram)
|
||||
AM_RANGE(0xffc000, 0xffc7ff) AM_MIRROR(0x000800) AM_RAM AM_BASE_MEMBER(stadhero_state, spriteram)
|
||||
ADDRESS_MAP_END
|
||||
|
||||
/******************************************************************************/
|
||||
|
@ -98,7 +98,7 @@ ADDRESS_MAP_END
|
||||
|
||||
static ADDRESS_MAP_START( strnskil_map2, ADDRESS_SPACE_PROGRAM, 8 )
|
||||
AM_RANGE(0x0000, 0x5fff) AM_ROM
|
||||
AM_RANGE(0xc000, 0xc7ff) AM_RAM AM_BASE_SIZE_GENERIC(spriteram)
|
||||
AM_RANGE(0xc000, 0xc7ff) AM_RAM AM_BASE_SIZE_MEMBER(strnskil_state, spriteram, spriteram_size)
|
||||
AM_RANGE(0xc800, 0xcfff) AM_RAM AM_SHARE("share1")
|
||||
|
||||
AM_RANGE(0xd801, 0xd801) AM_DEVWRITE("sn1", sn76496_w)
|
||||
|
@ -229,7 +229,7 @@ static WRITE32_HANDLER( superchs_stick_w )
|
||||
static ADDRESS_MAP_START( superchs_map, ADDRESS_SPACE_PROGRAM, 32 )
|
||||
AM_RANGE(0x000000, 0x0fffff) AM_ROM
|
||||
AM_RANGE(0x100000, 0x11ffff) AM_RAM AM_BASE_MEMBER(superchs_state, ram)
|
||||
AM_RANGE(0x140000, 0x141fff) AM_RAM AM_BASE_SIZE_GENERIC(spriteram)
|
||||
AM_RANGE(0x140000, 0x141fff) AM_RAM AM_BASE_SIZE_MEMBER(superchs_state, spriteram, spriteram_size)
|
||||
AM_RANGE(0x180000, 0x18ffff) AM_DEVREADWRITE("tc0480scp", tc0480scp_long_r, tc0480scp_long_w)
|
||||
AM_RANGE(0x1b0000, 0x1b002f) AM_DEVREADWRITE("tc0480scp", tc0480scp_ctrl_long_r, tc0480scp_ctrl_long_w)
|
||||
AM_RANGE(0x200000, 0x20ffff) AM_RAM AM_BASE_MEMBER(superchs_state, shared_ram)
|
||||
|
@ -577,7 +577,7 @@ static MACHINE_START( pbillian )
|
||||
static ADDRESS_MAP_START( main_map, ADDRESS_SPACE_PROGRAM, 8 )
|
||||
AM_RANGE(0x0000, 0x7fff) AM_ROM
|
||||
AM_RANGE(0x8000, 0xbfff) AM_ROMBANK("bank1")
|
||||
AM_RANGE(0xe000, 0xe0ff) AM_RAM AM_BASE_SIZE_GENERIC(spriteram)
|
||||
AM_RANGE(0xe000, 0xe0ff) AM_RAM AM_BASE_SIZE_MEMBER(superqix_state, spriteram, spriteram_size)
|
||||
AM_RANGE(0xe100, 0xe7ff) AM_RAM
|
||||
AM_RANGE(0xe800, 0xefff) AM_RAM_WRITE(superqix_videoram_w) AM_BASE_MEMBER(superqix_state, videoram)
|
||||
AM_RANGE(0xf000, 0xffff) AM_RAM
|
||||
|
@ -29,7 +29,7 @@ static WRITE8_HANDLER( suprloco_soundport_w )
|
||||
static ADDRESS_MAP_START( main_map, ADDRESS_SPACE_PROGRAM, 8 )
|
||||
AM_RANGE(0x0000, 0x7fff) AM_ROM
|
||||
AM_RANGE(0x8000, 0xbfff) AM_ROM
|
||||
AM_RANGE(0xc000, 0xc1ff) AM_RAM AM_BASE_SIZE_GENERIC(spriteram)
|
||||
AM_RANGE(0xc000, 0xc1ff) AM_RAM AM_BASE_SIZE_MEMBER(suprloco_state, spriteram, spriteram_size)
|
||||
AM_RANGE(0xc800, 0xc800) AM_READ_PORT("SYSTEM")
|
||||
AM_RANGE(0xd000, 0xd000) AM_READ_PORT("P1")
|
||||
AM_RANGE(0xd800, 0xd800) AM_READ_PORT("P2")
|
||||
|
@ -167,7 +167,7 @@ static ADDRESS_MAP_START( main_map, ADDRESS_SPACE_PROGRAM, 8 )
|
||||
AM_RANGE(0x8800, 0x8bff) AM_RAM_WRITE(suprridr_bgram_w) AM_BASE_MEMBER(suprridr_state, bgram)
|
||||
AM_RANGE(0x9000, 0x97ff) AM_RAM_WRITE(suprridr_fgram_w) AM_BASE_MEMBER(suprridr_state, fgram)
|
||||
AM_RANGE(0x9800, 0x983f) AM_RAM
|
||||
AM_RANGE(0x9840, 0x987f) AM_RAM AM_BASE_GENERIC(spriteram)
|
||||
AM_RANGE(0x9840, 0x987f) AM_RAM AM_BASE_MEMBER(suprridr_state, spriteram)
|
||||
AM_RANGE(0x9880, 0x9bff) AM_RAM
|
||||
AM_RANGE(0xa000, 0xa000) AM_READ_PORT("INPUTS")
|
||||
AM_RANGE(0xa800, 0xa800) AM_READ_PORT("SYSTEM")
|
||||
|
@ -714,7 +714,7 @@ static ADDRESS_MAP_START( system1_map, ADDRESS_SPACE_PROGRAM, 8 )
|
||||
AM_RANGE(0x0000, 0x7fff) AM_ROM
|
||||
AM_RANGE(0x8000, 0xbfff) AM_ROMBANK("bank1")
|
||||
AM_RANGE(0xc000, 0xcfff) AM_RAM AM_BASE_MEMBER(system1_state, ram)
|
||||
AM_RANGE(0xd000, 0xd7ff) AM_RAM AM_BASE_GENERIC(spriteram)
|
||||
AM_RANGE(0xd000, 0xd7ff) AM_RAM AM_BASE_MEMBER(system1_state, spriteram)
|
||||
AM_RANGE(0xd800, 0xdfff) AM_RAM_WRITE(system1_paletteram_w) AM_BASE_GENERIC(paletteram)
|
||||
AM_RANGE(0xe000, 0xefff) AM_READWRITE(system1_videoram_r, system1_videoram_w)
|
||||
AM_RANGE(0xf000, 0xf3ff) AM_READWRITE(system1_mixer_collision_r, system1_mixer_collision_w)
|
||||
@ -731,7 +731,7 @@ static ADDRESS_MAP_START( nobo_map, ADDRESS_SPACE_PROGRAM, 8 )
|
||||
AM_RANGE(0xc400, 0xc7ff) AM_WRITE(system1_mixer_collision_reset_w)
|
||||
AM_RANGE(0xc800, 0xcbff) AM_READWRITE(system1_sprite_collision_r, system1_sprite_collision_w)
|
||||
AM_RANGE(0xcc00, 0xcfff) AM_WRITE(system1_sprite_collision_reset_w)
|
||||
AM_RANGE(0xd000, 0xd7ff) AM_RAM AM_BASE_GENERIC(spriteram)
|
||||
AM_RANGE(0xd000, 0xd7ff) AM_RAM AM_BASE_MEMBER(system1_state, spriteram)
|
||||
AM_RANGE(0xd800, 0xdfff) AM_RAM_WRITE(system1_paletteram_w) AM_BASE_GENERIC(paletteram)
|
||||
AM_RANGE(0xe000, 0xefff) AM_READWRITE(system1_videoram_r, system1_videoram_w)
|
||||
AM_RANGE(0xf000, 0xffff) AM_RAM AM_BASE_MEMBER(system1_state, ram)
|
||||
|
@ -155,7 +155,7 @@ static ADDRESS_MAP_START( f3_map, ADDRESS_SPACE_PROGRAM, 32 )
|
||||
AM_RANGE(0x400000, 0x41ffff) AM_MIRROR(0x20000) AM_RAM AM_BASE(&f3_ram)
|
||||
AM_RANGE(0x440000, 0x447fff) AM_RAM_WRITE(f3_palette_24bit_w) AM_BASE_GENERIC(paletteram)
|
||||
AM_RANGE(0x4a0000, 0x4a001f) AM_READWRITE(f3_control_r, f3_control_w)
|
||||
AM_RANGE(0x600000, 0x60ffff) AM_RAM AM_BASE_SIZE_GENERIC(spriteram)
|
||||
AM_RANGE(0x600000, 0x60ffff) AM_RAM AM_BASE_SIZE_MEMBER(taito_f3_state, spriteram, spriteram_size)
|
||||
AM_RANGE(0x610000, 0x61bfff) AM_RAM_WRITE(f3_pf_data_w) AM_BASE(&f3_pf_data)
|
||||
AM_RANGE(0x61c000, 0x61dfff) AM_RAM_WRITE(f3_videoram_w) AM_BASE_MEMBER(taito_f3_state, videoram)
|
||||
AM_RANGE(0x61e000, 0x61ffff) AM_RAM_WRITE(f3_vram_w) AM_BASE(&f3_vram)
|
||||
|
@ -186,7 +186,7 @@ static ADDRESS_MAP_START( main_map, ADDRESS_SPACE_PROGRAM, 8 )
|
||||
AM_RANGE(0xc000, 0xc7ff) AM_READWRITE(tankbust_background_videoram_r, tankbust_background_videoram_w) AM_BASE_MEMBER(tankbust_state, videoram)
|
||||
AM_RANGE(0xc800, 0xcfff) AM_READWRITE(tankbust_background_colorram_r, tankbust_background_colorram_w) AM_BASE_MEMBER(tankbust_state, colorram)
|
||||
AM_RANGE(0xd000, 0xd7ff) AM_READWRITE(tankbust_txtram_r, tankbust_txtram_w) AM_BASE_MEMBER(tankbust_state, txtram)
|
||||
AM_RANGE(0xd800, 0xd8ff) AM_RAM AM_BASE_SIZE_GENERIC(spriteram)
|
||||
AM_RANGE(0xd800, 0xd8ff) AM_RAM AM_BASE_SIZE_MEMBER(tankbust_state, spriteram, spriteram_size)
|
||||
AM_RANGE(0xe000, 0xe007) AM_READWRITE(debug_output_area_r, tankbust_e0xx_w)
|
||||
AM_RANGE(0xe800, 0xe800) AM_READ_PORT("INPUTS") AM_WRITE(tankbust_yscroll_w)
|
||||
AM_RANGE(0xe801, 0xe801) AM_READ_PORT("SYSTEM")
|
||||
|
@ -168,8 +168,10 @@ static WRITE16_HANDLER(cyclwarr_cpu_bb_w)
|
||||
}
|
||||
|
||||
static READ16_HANDLER(cyclwarr_palette_r) { return space->machine->generic.paletteram.u16[offset]; }
|
||||
static READ16_HANDLER(cyclwarr_sprite_r) { return space->machine->generic.spriteram.u16[offset]; }
|
||||
static WRITE16_HANDLER(cyclwarr_sprite_w) { COMBINE_DATA(&space->machine->generic.spriteram.u16[offset]); }
|
||||
static READ16_HANDLER(cyclwarr_sprite_r) {
|
||||
tatsumi_state *state = space->machine->driver_data<tatsumi_state>(); return state->spriteram[offset]; }
|
||||
static WRITE16_HANDLER(cyclwarr_sprite_w) {
|
||||
tatsumi_state *state = space->machine->driver_data<tatsumi_state>(); COMBINE_DATA(&state->spriteram[offset]); }
|
||||
|
||||
static WRITE16_HANDLER(bigfight_a20000_w)
|
||||
{
|
||||
@ -226,7 +228,7 @@ ADDRESS_MAP_END
|
||||
static ADDRESS_MAP_START( apache3_68000_map, ADDRESS_SPACE_PROGRAM, 16 )
|
||||
AM_RANGE(0x00000, 0x7ffff) AM_ROM
|
||||
AM_RANGE(0x80000, 0x83fff) AM_RAM AM_BASE_MEMBER(tatsumi_state, _68k_ram)
|
||||
AM_RANGE(0x90000, 0x93fff) AM_RAM AM_BASE_GENERIC(spriteram)
|
||||
AM_RANGE(0x90000, 0x93fff) AM_RAM AM_BASE_MEMBER(tatsumi_state, spriteram)
|
||||
AM_RANGE(0x9a000, 0x9a1ff) AM_WRITE(tatsumi_sprite_control_w) AM_BASE_MEMBER(tatsumi_state, sprite_control_ram)
|
||||
AM_RANGE(0xa0000, 0xa0001) AM_WRITE(apache3_rotate_w) // /BNKCS
|
||||
AM_RANGE(0xb0000, 0xb0001) AM_WRITE(apache3_z80_ctrl_w)
|
||||
@ -271,7 +273,7 @@ ADDRESS_MAP_END
|
||||
static ADDRESS_MAP_START( roundup5_68000_map, ADDRESS_SPACE_PROGRAM, 16 )
|
||||
AM_RANGE(0x00000, 0x7ffff) AM_ROM
|
||||
AM_RANGE(0x80000, 0x83fff) AM_RAM AM_BASE_MEMBER(tatsumi_state, _68k_ram)
|
||||
AM_RANGE(0x90000, 0x93fff) AM_RAM AM_BASE_GENERIC(spriteram)
|
||||
AM_RANGE(0x90000, 0x93fff) AM_RAM AM_BASE_MEMBER(tatsumi_state, spriteram)
|
||||
AM_RANGE(0x9a000, 0x9a1ff) AM_WRITE(tatsumi_sprite_control_w) AM_BASE_MEMBER(tatsumi_state, sprite_control_ram)
|
||||
AM_RANGE(0xa0000, 0xa0fff) AM_RAM AM_BASE_MEMBER(tatsumi_state, roundup_r_ram) // Road control data
|
||||
AM_RANGE(0xb0000, 0xb0fff) AM_RAM AM_BASE_MEMBER(tatsumi_state, roundup_p_ram) // Road pixel data
|
||||
@ -309,7 +311,7 @@ static ADDRESS_MAP_START( cyclwarr_68000a_map, ADDRESS_SPACE_PROGRAM, 16 )
|
||||
AM_RANGE(0x0b9002, 0x0b9009) AM_READ(cyclwarr_input_r) /* Coins, P1 input, P2 input, dip 3 */
|
||||
AM_RANGE(0x0ba000, 0x0ba007) AM_READ(cyclwarr_input2_r) /* Dip 1, Dip 2, P3 input, P4 input */
|
||||
AM_RANGE(0x0ba008, 0x0ba009) AM_READWRITE(cyclwarr_control_r, cyclwarr_control_w)
|
||||
AM_RANGE(0x0c0000, 0x0c3fff) AM_READWRITE(cyclwarr_sprite_r, cyclwarr_sprite_w) AM_BASE_GENERIC(spriteram)
|
||||
AM_RANGE(0x0c0000, 0x0c3fff) AM_READWRITE(cyclwarr_sprite_r, cyclwarr_sprite_w) AM_BASE_MEMBER(tatsumi_state, spriteram)
|
||||
AM_RANGE(0x0ca000, 0x0ca1ff) AM_WRITE(tatsumi_sprite_control_w) AM_BASE_MEMBER(tatsumi_state, sprite_control_ram)
|
||||
AM_RANGE(0x0d0000, 0x0d3fff) AM_READWRITE(cyclwarr_palette_r, paletteram16_xRRRRRGGGGGBBBBB_word_w) AM_BASE_GENERIC(paletteram)
|
||||
AM_RANGE(0x140000, 0x1bffff) AM_ROMBANK("bank2") /* CPU B ROM */
|
||||
@ -365,7 +367,7 @@ static ADDRESS_MAP_START( bigfight_68000a_map, ADDRESS_SPACE_PROGRAM, 16 )
|
||||
AM_RANGE(0x0b9002, 0x0b9009) AM_READ(cyclwarr_input_r) /* Coins, P1 input, P2 input, dip 3 */
|
||||
AM_RANGE(0x0ba000, 0x0ba007) AM_READ(cyclwarr_input2_r) /* Dip 1, Dip 2, P3 input, P4 input */
|
||||
AM_RANGE(0x0ba008, 0x0ba009) AM_READWRITE(cyclwarr_control_r, cyclwarr_control_w)
|
||||
AM_RANGE(0x0c0000, 0x0c3fff) AM_READWRITE(cyclwarr_sprite_r, cyclwarr_sprite_w) AM_BASE_GENERIC(spriteram)
|
||||
AM_RANGE(0x0c0000, 0x0c3fff) AM_READWRITE(cyclwarr_sprite_r, cyclwarr_sprite_w) AM_BASE_MEMBER(tatsumi_state, spriteram)
|
||||
AM_RANGE(0x0ca000, 0x0ca1ff) AM_WRITE(tatsumi_sprite_control_w) AM_BASE_MEMBER(tatsumi_state, sprite_control_ram)
|
||||
AM_RANGE(0x0d0000, 0x0d3fff) AM_READWRITE(cyclwarr_palette_r, paletteram16_xRRRRRGGGGGBBBBB_word_w) AM_BASE_GENERIC(paletteram)
|
||||
AM_RANGE(0x100000, 0x17ffff) AM_ROMBANK("bank2") /* CPU A ROM */
|
||||
|
@ -139,7 +139,7 @@ static ADDRESS_MAP_START( rygar_map, ADDRESS_SPACE_PROGRAM, 8 )
|
||||
AM_RANGE(0xd000, 0xd7ff) AM_RAM_WRITE(tecmo_txvideoram_w) AM_BASE_MEMBER(tecmo_state, txvideoram)
|
||||
AM_RANGE(0xd800, 0xdbff) AM_RAM_WRITE(tecmo_fgvideoram_w) AM_BASE_MEMBER(tecmo_state, fgvideoram)
|
||||
AM_RANGE(0xdc00, 0xdfff) AM_RAM_WRITE(tecmo_bgvideoram_w) AM_BASE_MEMBER(tecmo_state, bgvideoram)
|
||||
AM_RANGE(0xe000, 0xe7ff) AM_RAM AM_BASE_SIZE_GENERIC(spriteram)
|
||||
AM_RANGE(0xe000, 0xe7ff) AM_RAM AM_BASE_SIZE_MEMBER(tecmo_state, spriteram, spriteram_size)
|
||||
AM_RANGE(0xe800, 0xefff) AM_RAM_WRITE(paletteram_xxxxBBBBRRRRGGGG_be_w) AM_BASE_GENERIC(paletteram)
|
||||
AM_RANGE(0xf000, 0xf7ff) AM_ROMBANK("bank1")
|
||||
AM_RANGE(0xf800, 0xf800) AM_READ_PORT("JOY1")
|
||||
@ -168,7 +168,7 @@ static ADDRESS_MAP_START( gemini_map, ADDRESS_SPACE_PROGRAM, 8 )
|
||||
AM_RANGE(0xd800, 0xdbff) AM_RAM_WRITE(tecmo_fgvideoram_w) AM_BASE_MEMBER(tecmo_state, fgvideoram)
|
||||
AM_RANGE(0xdc00, 0xdfff) AM_RAM_WRITE(tecmo_bgvideoram_w) AM_BASE_MEMBER(tecmo_state, bgvideoram)
|
||||
AM_RANGE(0xe000, 0xe7ff) AM_RAM_WRITE(paletteram_xxxxBBBBRRRRGGGG_be_w) AM_BASE_GENERIC(paletteram)
|
||||
AM_RANGE(0xe800, 0xefff) AM_RAM AM_BASE_SIZE_GENERIC(spriteram)
|
||||
AM_RANGE(0xe800, 0xefff) AM_RAM AM_BASE_SIZE_MEMBER(tecmo_state, spriteram, spriteram_size)
|
||||
AM_RANGE(0xf000, 0xf7ff) AM_ROMBANK("bank1")
|
||||
AM_RANGE(0xf800, 0xf800) AM_READ_PORT("JOY1")
|
||||
AM_RANGE(0xf801, 0xf801) AM_READ_PORT("BUTTONS1")
|
||||
@ -195,7 +195,7 @@ static ADDRESS_MAP_START( silkworm_map, ADDRESS_SPACE_PROGRAM, 8 )
|
||||
AM_RANGE(0xc400, 0xc7ff) AM_RAM_WRITE(tecmo_fgvideoram_w) AM_BASE_MEMBER(tecmo_state, fgvideoram)
|
||||
AM_RANGE(0xc800, 0xcfff) AM_RAM_WRITE(tecmo_txvideoram_w) AM_BASE_MEMBER(tecmo_state, txvideoram)
|
||||
AM_RANGE(0xd000, 0xdfff) AM_RAM
|
||||
AM_RANGE(0xe000, 0xe7ff) AM_RAM AM_BASE_SIZE_GENERIC(spriteram)
|
||||
AM_RANGE(0xe000, 0xe7ff) AM_RAM AM_BASE_SIZE_MEMBER(tecmo_state, spriteram, spriteram_size)
|
||||
AM_RANGE(0xe800, 0xefff) AM_RAM_WRITE(paletteram_xxxxBBBBRRRRGGGG_be_w) AM_BASE_GENERIC(paletteram)
|
||||
AM_RANGE(0xf000, 0xf7ff) AM_ROMBANK("bank1")
|
||||
AM_RANGE(0xf800, 0xf800) AM_READ_PORT("JOY1")
|
||||
|
@ -52,7 +52,7 @@ static ADDRESS_MAP_START( fstarfrc_map, ADDRESS_SPACE_PROGRAM, 16 )
|
||||
AM_RANGE(0x121000, 0x1217ff) AM_RAM_WRITE(tecmo16_videoram2_w) AM_BASE_MEMBER(tecmo16_state, videoram2)
|
||||
AM_RANGE(0x121800, 0x121fff) AM_RAM_WRITE(tecmo16_colorram2_w) AM_BASE_MEMBER(tecmo16_state, colorram2)
|
||||
AM_RANGE(0x122000, 0x127fff) AM_RAM /* work area */
|
||||
AM_RANGE(0x130000, 0x130fff) AM_RAM AM_BASE_SIZE_GENERIC(spriteram)
|
||||
AM_RANGE(0x130000, 0x130fff) AM_RAM AM_BASE_SIZE_MEMBER(tecmo16_state, spriteram, spriteram_size)
|
||||
AM_RANGE(0x140000, 0x141fff) AM_RAM_WRITE(paletteram16_xxxxBBBBGGGGRRRR_word_w) AM_BASE_GENERIC(paletteram)
|
||||
AM_RANGE(0x150000, 0x150001) AM_WRITE(tecmo16_flipscreen_w)
|
||||
AM_RANGE(0x150010, 0x150011) AM_WRITE(tecmo16_sound_command_w)
|
||||
@ -75,7 +75,7 @@ static ADDRESS_MAP_START( ginkun_map, ADDRESS_SPACE_PROGRAM, 16 )
|
||||
AM_RANGE(0x122000, 0x122fff) AM_RAM_WRITE(tecmo16_videoram2_w) AM_BASE_MEMBER(tecmo16_state, videoram2)
|
||||
AM_RANGE(0x123000, 0x123fff) AM_RAM_WRITE(tecmo16_colorram2_w) AM_BASE_MEMBER(tecmo16_state, colorram2)
|
||||
AM_RANGE(0x124000, 0x124fff) AM_RAM /* extra RAM for Riot */
|
||||
AM_RANGE(0x130000, 0x130fff) AM_RAM AM_BASE_SIZE_GENERIC(spriteram)
|
||||
AM_RANGE(0x130000, 0x130fff) AM_RAM AM_BASE_SIZE_MEMBER(tecmo16_state, spriteram, spriteram_size)
|
||||
AM_RANGE(0x140000, 0x141fff) AM_RAM_WRITE(paletteram16_xxxxBBBBGGGGRRRR_word_w) AM_BASE_GENERIC(paletteram)
|
||||
AM_RANGE(0x150000, 0x150001) AM_WRITE(tecmo16_flipscreen_w)
|
||||
AM_RANGE(0x150010, 0x150011) AM_WRITE(tecmo16_sound_command_w)
|
||||
|
@ -226,7 +226,7 @@ static ADDRESS_MAP_START( main_mem, ADDRESS_SPACE_PROGRAM, 8 )
|
||||
AM_RANGE(0xd800, 0xddff) AM_RAM_WRITE(paletteram_xxxxBBBBGGGGRRRR_be_w) AM_SHARE("share4") AM_BASE_GENERIC(paletteram)
|
||||
AM_RANGE(0xde00, 0xdfff) AM_RAM AM_SHARE("share5") /* unused part of the palette RAM, I think? Gridiron uses it */
|
||||
AM_RANGE(0xe000, 0xe7ff) AM_RAM_WRITE(tehkanwc_videoram2_w) AM_SHARE("share6") AM_BASE_MEMBER(tehkanwc_state, videoram2)
|
||||
AM_RANGE(0xe800, 0xebff) AM_RAM AM_SHARE("share7") AM_BASE_SIZE_GENERIC(spriteram) /* sprites */
|
||||
AM_RANGE(0xe800, 0xebff) AM_RAM AM_SHARE("share7") AM_BASE_SIZE_MEMBER(tehkanwc_state, spriteram, spriteram_size) /* sprites */
|
||||
AM_RANGE(0xec00, 0xec01) AM_RAM_WRITE(tehkanwc_scroll_x_w)
|
||||
AM_RANGE(0xec02, 0xec02) AM_RAM_WRITE(tehkanwc_scroll_y_w)
|
||||
AM_RANGE(0xf800, 0xf801) AM_READWRITE(tehkanwc_track_0_r, tehkanwc_track_0_reset_w) /* track 0 x/y */
|
||||
|
@ -199,7 +199,7 @@ static MACHINE_START( amazon )
|
||||
|
||||
static ADDRESS_MAP_START( terracre_map, ADDRESS_SPACE_PROGRAM, 16 )
|
||||
AM_RANGE(0x000000, 0x01ffff) AM_ROM
|
||||
AM_RANGE(0x020000, 0x0201ff) AM_RAM AM_BASE_GENERIC(spriteram)
|
||||
AM_RANGE(0x020000, 0x0201ff) AM_RAM AM_BASE_MEMBER(terracre_state, spriteram)
|
||||
AM_RANGE(0x020200, 0x021fff) AM_RAM
|
||||
AM_RANGE(0x022000, 0x022fff) AM_WRITE(amazon_background_w) AM_BASE_MEMBER(terracre_state, amazon_videoram)
|
||||
AM_RANGE(0x023000, 0x023fff) AM_RAM
|
||||
@ -216,7 +216,7 @@ ADDRESS_MAP_END
|
||||
|
||||
static ADDRESS_MAP_START( amazon_map, ADDRESS_SPACE_PROGRAM, 16 )
|
||||
AM_RANGE(0x000000, 0x01ffff) AM_ROM
|
||||
AM_RANGE(0x040000, 0x0401ff) AM_RAM AM_BASE_GENERIC(spriteram)
|
||||
AM_RANGE(0x040000, 0x0401ff) AM_RAM AM_BASE_MEMBER(terracre_state, spriteram)
|
||||
AM_RANGE(0x040200, 0x040fff) AM_RAM
|
||||
AM_RANGE(0x042000, 0x042fff) AM_WRITE(amazon_background_w) AM_BASE_MEMBER(terracre_state, amazon_videoram)
|
||||
AM_RANGE(0x044000, 0x044001) AM_READ_PORT("IN0")
|
||||
|
@ -163,7 +163,7 @@ static ADDRESS_MAP_START( main_map, ADDRESS_SPACE_PROGRAM, 8 )
|
||||
AM_RANGE(0xe00c, 0xe00c) AM_WRITE(thedeep_sound_w ) // To Sound CPU
|
||||
AM_RANGE(0xe100, 0xe100) AM_WRITE(thedeep_e100_w ) // ?
|
||||
AM_RANGE(0xe210, 0xe213) AM_WRITEONLY AM_BASE(&thedeep_scroll ) // Scroll
|
||||
AM_RANGE(0xe400, 0xe7ff) AM_RAM AM_BASE_SIZE_GENERIC(spriteram) // Sprites
|
||||
AM_RANGE(0xe400, 0xe7ff) AM_RAM AM_BASE_SIZE_MEMBER(thedeep_state, spriteram, spriteram_size) // Sprites
|
||||
AM_RANGE(0xe800, 0xefff) AM_RAM_WRITE(thedeep_vram_1_w) AM_BASE(&thedeep_vram_1 ) // Text Layer
|
||||
AM_RANGE(0xf000, 0xf7ff) AM_RAM_WRITE(thedeep_vram_0_w) AM_BASE(&thedeep_vram_0 ) // Background Layer
|
||||
AM_RANGE(0xf800, 0xf83f) AM_RAM AM_BASE(&thedeep_scroll2 ) // Column Scroll
|
||||
@ -349,7 +349,7 @@ static INTERRUPT_GEN( thedeep_interrupt )
|
||||
}
|
||||
}
|
||||
|
||||
static MACHINE_CONFIG_START( thedeep, driver_device )
|
||||
static MACHINE_CONFIG_START( thedeep, thedeep_state )
|
||||
|
||||
/* basic machine hardware */
|
||||
MCFG_CPU_ADD("maincpu", Z80, XTAL_12MHz/2) /* verified on pcb */
|
||||
|
@ -48,7 +48,7 @@ static ADDRESS_MAP_START( main_map, ADDRESS_SPACE_PROGRAM, 8 )
|
||||
AM_RANGE(0x8000, 0x87ff) AM_RAM /* ram */
|
||||
AM_RANGE(0x8800, 0x8bff) AM_RAM_WRITE(timelimt_videoram_w) AM_BASE_MEMBER(timelimt_state, videoram) /* video ram */
|
||||
AM_RANGE(0x9000, 0x97ff) AM_RAM_WRITE(timelimt_bg_videoram_w) AM_BASE_MEMBER(timelimt_state, bg_videoram) AM_SIZE_MEMBER(timelimt_state, bg_videoram_size)/* background ram */
|
||||
AM_RANGE(0x9800, 0x98ff) AM_RAM AM_BASE_SIZE_GENERIC(spriteram) /* sprite ram */
|
||||
AM_RANGE(0x9800, 0x98ff) AM_RAM AM_BASE_SIZE_MEMBER(timelimt_state, spriteram, spriteram_size) /* sprite ram */
|
||||
AM_RANGE(0xa000, 0xa000) AM_READ_PORT("INPUTS")
|
||||
AM_RANGE(0xa800, 0xa800) AM_READ_PORT("SYSTEM")
|
||||
AM_RANGE(0xb000, 0xb000) AM_READ_PORT("DSW")
|
||||
|
@ -130,7 +130,7 @@ static READ16_HANDLER( k053245_scattered_word_r )
|
||||
tmnt_state *state = space->machine->driver_data<tmnt_state>();
|
||||
|
||||
if (offset & 0x0031)
|
||||
return space->machine->generic.spriteram.u16[offset];
|
||||
return state->spriteram[offset];
|
||||
else
|
||||
{
|
||||
offset = ((offset & 0x000e) >> 1) | ((offset & 0x1fc0) >> 3);
|
||||
@ -142,7 +142,7 @@ static WRITE16_HANDLER( k053245_scattered_word_w )
|
||||
{
|
||||
tmnt_state *state = space->machine->driver_data<tmnt_state>();
|
||||
|
||||
COMBINE_DATA(space->machine->generic.spriteram.u16 + offset);
|
||||
COMBINE_DATA(state->spriteram + offset);
|
||||
|
||||
if (!(offset & 0x0031))
|
||||
{
|
||||
@ -684,7 +684,7 @@ static ADDRESS_MAP_START( lgtnfght_main_map, ADDRESS_SPACE_PROGRAM, 16 )
|
||||
AM_RANGE(0x0a0020, 0x0a0023) AM_DEVREAD8("k053260", punkshot_sound_r, 0x00ff) /* K053260 */
|
||||
AM_RANGE(0x0a0020, 0x0a0021) AM_DEVWRITE8("k053260", k053260_w, 0x00ff)
|
||||
AM_RANGE(0x0a0028, 0x0a0029) AM_WRITE(watchdog_reset16_w)
|
||||
AM_RANGE(0x0b0000, 0x0b3fff) AM_READWRITE(k053245_scattered_word_r, k053245_scattered_word_w) AM_BASE_GENERIC(spriteram)
|
||||
AM_RANGE(0x0b0000, 0x0b3fff) AM_READWRITE(k053245_scattered_word_r, k053245_scattered_word_w) AM_BASE_MEMBER(tmnt_state, spriteram)
|
||||
AM_RANGE(0x0c0000, 0x0c001f) AM_READWRITE(k053244_word_noA1_r, k053244_word_noA1_w)
|
||||
AM_RANGE(0x0e0000, 0x0e001f) AM_DEVWRITE("k053251", k053251_lsb_w)
|
||||
AM_RANGE(0x100000, 0x107fff) AM_READWRITE(k052109_word_noA12_r, k052109_word_noA12_w)
|
||||
@ -703,7 +703,7 @@ static ADDRESS_MAP_START( blswhstl_main_map, ADDRESS_SPACE_PROGRAM, 16 )
|
||||
AM_RANGE(0x000000, 0x07ffff) AM_ROM
|
||||
AM_RANGE(0x180000, 0x183fff) AM_DEVREADWRITE("k052109", k052109_word_r, k052109_word_w)
|
||||
AM_RANGE(0x204000, 0x207fff) AM_RAM /* main RAM */
|
||||
AM_RANGE(0x300000, 0x303fff) AM_READWRITE(k053245_scattered_word_r, k053245_scattered_word_w) AM_BASE_GENERIC(spriteram)
|
||||
AM_RANGE(0x300000, 0x303fff) AM_READWRITE(k053245_scattered_word_r, k053245_scattered_word_w) AM_BASE_MEMBER(tmnt_state, spriteram)
|
||||
AM_RANGE(0x400000, 0x400fff) AM_RAM_WRITE(paletteram16_xBBBBBGGGGGRRRRR_word_w) AM_BASE_GENERIC(paletteram)
|
||||
AM_RANGE(0x500000, 0x50003f) AM_DEVREADWRITE("k054000", k054000_lsb_r, k054000_lsb_w)
|
||||
AM_RANGE(0x680000, 0x68001f) AM_READWRITE(k053244_word_noA1_r, k053244_word_noA1_w)
|
||||
@ -746,7 +746,7 @@ static WRITE16_HANDLER( k053251_glfgreat_w )
|
||||
static ADDRESS_MAP_START( glfgreat_main_map, ADDRESS_SPACE_PROGRAM, 16 )
|
||||
AM_RANGE(0x000000, 0x03ffff) AM_ROM
|
||||
AM_RANGE(0x100000, 0x103fff) AM_RAM /* main RAM */
|
||||
AM_RANGE(0x104000, 0x107fff) AM_READWRITE(k053245_scattered_word_r, k053245_scattered_word_w) AM_BASE_GENERIC(spriteram)
|
||||
AM_RANGE(0x104000, 0x107fff) AM_READWRITE(k053245_scattered_word_r, k053245_scattered_word_w) AM_BASE_MEMBER(tmnt_state, spriteram)
|
||||
AM_RANGE(0x108000, 0x108fff) AM_RAM_WRITE(paletteram16_xBBBBBGGGGGRRRRR_word_w) AM_BASE_GENERIC(paletteram)
|
||||
AM_RANGE(0x10c000, 0x10cfff) AM_DEVREADWRITE("k053936", k053936_linectrl_r, k053936_linectrl_w) /* 053936? */
|
||||
AM_RANGE(0x110000, 0x11001f) AM_WRITE(k053244_word_noA1_w) /* duplicate! */
|
||||
@ -770,7 +770,7 @@ ADDRESS_MAP_END
|
||||
static ADDRESS_MAP_START( prmrsocr_main_map, ADDRESS_SPACE_PROGRAM, 16 )
|
||||
AM_RANGE(0x000000, 0x07ffff) AM_ROM
|
||||
AM_RANGE(0x100000, 0x103fff) AM_RAM /* main RAM */
|
||||
AM_RANGE(0x104000, 0x107fff) AM_READWRITE(k053245_scattered_word_r, k053245_scattered_word_w) AM_BASE_GENERIC(spriteram)
|
||||
AM_RANGE(0x104000, 0x107fff) AM_READWRITE(k053245_scattered_word_r, k053245_scattered_word_w) AM_BASE_MEMBER(tmnt_state, spriteram)
|
||||
AM_RANGE(0x108000, 0x108fff) AM_RAM_WRITE(paletteram16_xBBBBBGGGGGRRRRR_word_w) AM_BASE_GENERIC(paletteram)
|
||||
AM_RANGE(0x10c000, 0x10cfff) AM_DEVREADWRITE("k053936", k053936_linectrl_r, k053936_linectrl_w)
|
||||
AM_RANGE(0x110000, 0x11001f) AM_WRITE(k053244_word_noA1_w) /* duplicate! */
|
||||
@ -800,7 +800,7 @@ INLINE UINT32 tmnt2_get_word( running_machine *machine, UINT32 addr )
|
||||
else if (addr >= 0x104000 / 2 && addr <= 0x107fff / 2)
|
||||
return(state->sunset_104000[addr - 0x104000 / 2]);
|
||||
else if (addr >= 0x180000 / 2 && addr <= 0x183fff / 2)
|
||||
return(machine->generic.spriteram.u16[addr - 0x180000 / 2]);
|
||||
return(state->spriteram[addr - 0x180000 / 2]);
|
||||
return 0;
|
||||
}
|
||||
|
||||
@ -811,7 +811,7 @@ static void tmnt2_put_word( address_space *space, UINT32 addr, UINT16 data )
|
||||
UINT32 offs;
|
||||
if (addr >= 0x180000 / 2 && addr <= 0x183fff / 2)
|
||||
{
|
||||
space->machine->generic.spriteram.u16[addr - 0x180000 / 2] = data;
|
||||
state->spriteram[addr - 0x180000 / 2] = data;
|
||||
offs = addr - 0x180000 / 2;
|
||||
if (!(offs & 0x0031))
|
||||
{
|
||||
@ -1036,7 +1036,7 @@ static ADDRESS_MAP_START( tmnt2_main_map, ADDRESS_SPACE_PROGRAM, 16 )
|
||||
AM_RANGE(0x000000, 0x0fffff) AM_ROM AM_BASE_MEMBER(tmnt_state, tmnt2_rom)
|
||||
AM_RANGE(0x104000, 0x107fff) AM_RAM AM_BASE_MEMBER(tmnt_state, sunset_104000) /* main RAM */
|
||||
AM_RANGE(0x140000, 0x140fff) AM_RAM_WRITE(paletteram16_xBBBBBGGGGGRRRRR_word_w) AM_BASE_GENERIC(paletteram)
|
||||
AM_RANGE(0x180000, 0x183fff) AM_RAM_WRITE(k053245_scattered_word_w) AM_BASE_GENERIC(spriteram) // k053245_scattered_word_r
|
||||
AM_RANGE(0x180000, 0x183fff) AM_RAM_WRITE(k053245_scattered_word_w) AM_BASE_MEMBER(tmnt_state, spriteram) // k053245_scattered_word_r
|
||||
AM_RANGE(0x1c0000, 0x1c0001) AM_READ_PORT("P1")
|
||||
AM_RANGE(0x1c0002, 0x1c0003) AM_READ_PORT("P2")
|
||||
AM_RANGE(0x1c0004, 0x1c0005) AM_READ_PORT("P3")
|
||||
@ -1062,7 +1062,7 @@ static ADDRESS_MAP_START( ssriders_main_map, ADDRESS_SPACE_PROGRAM, 16 )
|
||||
AM_RANGE(0x000000, 0x0bffff) AM_ROM
|
||||
AM_RANGE(0x104000, 0x107fff) AM_RAM /* main RAM */
|
||||
AM_RANGE(0x140000, 0x140fff) AM_RAM_WRITE(paletteram16_xBBBBBGGGGGRRRRR_word_w) AM_BASE_GENERIC(paletteram)
|
||||
AM_RANGE(0x180000, 0x183fff) AM_READWRITE(k053245_scattered_word_r, k053245_scattered_word_w) AM_BASE_GENERIC(spriteram)
|
||||
AM_RANGE(0x180000, 0x183fff) AM_READWRITE(k053245_scattered_word_r, k053245_scattered_word_w) AM_BASE_MEMBER(tmnt_state, spriteram)
|
||||
AM_RANGE(0x1c0000, 0x1c0001) AM_READ_PORT("P1")
|
||||
AM_RANGE(0x1c0002, 0x1c0003) AM_READ_PORT("P2")
|
||||
AM_RANGE(0x1c0004, 0x1c0005) AM_READ_PORT("P3")
|
||||
@ -1089,7 +1089,7 @@ static ADDRESS_MAP_START( sunsetbl_main_map, ADDRESS_SPACE_PROGRAM, 16 )
|
||||
AM_RANGE(0x104000, 0x107fff) AM_RAM /* main RAM */
|
||||
AM_RANGE(0x14c000, 0x14cfff) AM_RAM_WRITE(paletteram16_xBBBBBGGGGGRRRRR_word_w) AM_BASE_GENERIC(paletteram)
|
||||
AM_RANGE(0x14e700, 0x14e71f) AM_DEVWRITE("k053251", k053251_lsb_w)
|
||||
AM_RANGE(0x180000, 0x183fff) AM_READWRITE(k053245_scattered_word_r, k053245_scattered_word_w) AM_BASE_GENERIC(spriteram)
|
||||
AM_RANGE(0x180000, 0x183fff) AM_READWRITE(k053245_scattered_word_r, k053245_scattered_word_w) AM_BASE_MEMBER(tmnt_state, spriteram)
|
||||
AM_RANGE(0x184000, 0x18ffff) AM_RAM
|
||||
AM_RANGE(0x1c0300, 0x1c0301) AM_WRITE(ssriders_1c0300_w)
|
||||
AM_RANGE(0x1c0400, 0x1c0401) AM_WRITENOP
|
||||
|
@ -57,8 +57,8 @@ static ADDRESS_MAP_START( main_cpu, ADDRESS_SPACE_PROGRAM, 8 )
|
||||
AM_RANGE(0x1000, 0x17ff) AM_RAM_WRITE(tryout_videoram_w) AM_BASE_MEMBER(tryout_state, videoram)
|
||||
AM_RANGE(0x2000, 0x3fff) AM_ROMBANK("bank1")
|
||||
AM_RANGE(0x4000, 0xbfff) AM_ROM
|
||||
AM_RANGE(0xc800, 0xc87f) AM_RAM AM_BASE_GENERIC(spriteram)
|
||||
AM_RANGE(0xcc00, 0xcc7f) AM_RAM AM_BASE_GENERIC(spriteram2)
|
||||
AM_RANGE(0xc800, 0xc87f) AM_RAM AM_BASE_MEMBER(tryout_state, spriteram)
|
||||
AM_RANGE(0xcc00, 0xcc7f) AM_RAM AM_BASE_MEMBER(tryout_state, spriteram2)
|
||||
AM_RANGE(0xd000, 0xd7ff) AM_READWRITE(tryout_vram_r, tryout_vram_w)
|
||||
AM_RANGE(0xe000, 0xe000) AM_READ_PORT("DSW")
|
||||
AM_RANGE(0xe001, 0xe001) AM_READ_PORT("P1")
|
||||
|
@ -132,7 +132,7 @@ static ADDRESS_MAP_START( main_map, ADDRESS_SPACE_PROGRAM, 8 )
|
||||
AM_RANGE(0xe400, 0xe43f) AM_RAM_WRITE(tsamurai_fg_colorram_w) AM_BASE_MEMBER(tsamurai_state, colorram)
|
||||
AM_RANGE(0xe440, 0xe7ff) AM_RAM
|
||||
AM_RANGE(0xe800, 0xefff) AM_RAM_WRITE(tsamurai_bg_videoram_w) AM_BASE_MEMBER(tsamurai_state, bg_videoram)
|
||||
AM_RANGE(0xf000, 0xf3ff) AM_RAM AM_BASE_GENERIC(spriteram)
|
||||
AM_RANGE(0xf000, 0xf3ff) AM_RAM AM_BASE_MEMBER(tsamurai_state, spriteram)
|
||||
|
||||
AM_RANGE(0xf400, 0xf400) AM_WRITENOP
|
||||
AM_RANGE(0xf401, 0xf401) AM_WRITE(sound_command1_w)
|
||||
@ -165,7 +165,7 @@ static ADDRESS_MAP_START( m660_map, ADDRESS_SPACE_PROGRAM, 8 )
|
||||
AM_RANGE(0xe400, 0xe43f) AM_RAM_WRITE(tsamurai_fg_colorram_w) AM_BASE_MEMBER(tsamurai_state, colorram)
|
||||
AM_RANGE(0xe440, 0xe7ff) AM_RAM
|
||||
AM_RANGE(0xe800, 0xefff) AM_RAM_WRITE(tsamurai_bg_videoram_w) AM_BASE_MEMBER(tsamurai_state, bg_videoram)
|
||||
AM_RANGE(0xf000, 0xf3ff) AM_RAM AM_BASE_GENERIC(spriteram)
|
||||
AM_RANGE(0xf000, 0xf3ff) AM_RAM AM_BASE_MEMBER(tsamurai_state, spriteram)
|
||||
|
||||
AM_RANGE(0xf400, 0xf400) AM_WRITENOP/* This is always written with F401, F402 & F403 data */
|
||||
AM_RANGE(0xf401, 0xf401) AM_WRITE(sound_command3_w)
|
||||
@ -326,7 +326,7 @@ static ADDRESS_MAP_START( vsgongf_map, ADDRESS_SPACE_PROGRAM, 8 )
|
||||
AM_RANGE(0xa100, 0xa100) AM_READ(vsgongf_a100_r) /* protection */
|
||||
AM_RANGE(0xc000, 0xc7ff) AM_RAM /* work ram */
|
||||
AM_RANGE(0xe000, 0xe3ff) AM_RAM_WRITE(tsamurai_fg_videoram_w) AM_BASE_MEMBER(tsamurai_state, videoram)
|
||||
AM_RANGE(0xe400, 0xe43f) AM_RAM AM_BASE_GENERIC(spriteram)
|
||||
AM_RANGE(0xe400, 0xe43f) AM_RAM AM_BASE_MEMBER(tsamurai_state, spriteram)
|
||||
AM_RANGE(0xe440, 0xe47b) AM_RAM
|
||||
AM_RANGE(0xe800, 0xe800) AM_WRITE(vsgongf_sound_command_w)
|
||||
AM_RANGE(0xec00, 0xec06) AM_WRITEONLY
|
||||
|
@ -465,7 +465,7 @@ static WRITE32_HANDLER( cbombers_adc_w )
|
||||
static ADDRESS_MAP_START( undrfire_map, ADDRESS_SPACE_PROGRAM, 32 )
|
||||
AM_RANGE(0x000000, 0x1fffff) AM_ROM
|
||||
AM_RANGE(0x200000, 0x21ffff) AM_RAM AM_BASE_MEMBER(undrfire_state, ram)
|
||||
AM_RANGE(0x300000, 0x303fff) AM_RAM AM_BASE_SIZE_GENERIC(spriteram)
|
||||
AM_RANGE(0x300000, 0x303fff) AM_RAM AM_BASE_SIZE_MEMBER(undrfire_state, spriteram, spriteram_size)
|
||||
// AM_RANGE(0x304000, 0x304003) AM_RAM // debugging - doesn't change ???
|
||||
// AM_RANGE(0x304400, 0x304403) AM_RAM // debugging - doesn't change ???
|
||||
AM_RANGE(0x400000, 0x400003) AM_WRITE(motor_control_w) /* gun vibration */
|
||||
@ -486,7 +486,7 @@ ADDRESS_MAP_END
|
||||
static ADDRESS_MAP_START( cbombers_cpua_map, ADDRESS_SPACE_PROGRAM, 32 )
|
||||
AM_RANGE(0x000000, 0x1fffff) AM_ROM
|
||||
AM_RANGE(0x200000, 0x21ffff) AM_RAM
|
||||
AM_RANGE(0x300000, 0x303fff) AM_RAM AM_BASE_SIZE_GENERIC(spriteram)
|
||||
AM_RANGE(0x300000, 0x303fff) AM_RAM AM_BASE_SIZE_MEMBER(undrfire_state, spriteram, spriteram_size)
|
||||
AM_RANGE(0x400000, 0x400003) AM_WRITE(cbombers_cpua_ctrl_w)
|
||||
AM_RANGE(0x500000, 0x500007) AM_READWRITE(undrfire_input_r, undrfire_input_w)
|
||||
AM_RANGE(0x600000, 0x600007) AM_READWRITE(cbombers_adc_r, cbombers_adc_w)
|
||||
|
@ -73,7 +73,7 @@ static ADDRESS_MAP_START( burglarx_map, ADDRESS_SPACE_PROGRAM, 16 )
|
||||
AM_RANGE(0x8001e0, 0x8001e1) AM_WRITENOP // IRQ Ack
|
||||
AM_RANGE(0x904000, 0x90ffff) AM_RAM_WRITE(unico_vram_w) AM_BASE_MEMBER(unico_state, vram) // Layers 1, 2, 0
|
||||
AM_RANGE(0x920000, 0x923fff) AM_RAM // ? 0
|
||||
AM_RANGE(0x930000, 0x9307ff) AM_RAM AM_BASE_SIZE_GENERIC(spriteram) // Sprites
|
||||
AM_RANGE(0x930000, 0x9307ff) AM_RAM AM_BASE_SIZE_MEMBER(unico_state, spriteram, spriteram_size) // Sprites
|
||||
AM_RANGE(0x940000, 0x947fff) AM_RAM_WRITE(unico_palette_w) AM_BASE_GENERIC(paletteram) // Palette
|
||||
ADDRESS_MAP_END
|
||||
|
||||
@ -161,7 +161,7 @@ static ADDRESS_MAP_START( zeropnt_map, ADDRESS_SPACE_PROGRAM, 16 )
|
||||
AM_RANGE(0x8001e0, 0x8001e1) AM_WRITEONLY // ? IRQ Ack
|
||||
AM_RANGE(0x904000, 0x90ffff) AM_RAM_WRITE(unico_vram_w) AM_BASE_MEMBER(unico_state, vram) // Layers 1, 2, 0
|
||||
AM_RANGE(0x920000, 0x923fff) AM_RAM // ? 0
|
||||
AM_RANGE(0x930000, 0x9307ff) AM_RAM AM_BASE_SIZE_GENERIC(spriteram) // Sprites
|
||||
AM_RANGE(0x930000, 0x9307ff) AM_RAM AM_BASE_SIZE_MEMBER(unico_state, spriteram, spriteram_size) // Sprites
|
||||
AM_RANGE(0x940000, 0x947fff) AM_RAM_WRITE(unico_palette_w) AM_BASE_GENERIC(paletteram) // Palette
|
||||
ADDRESS_MAP_END
|
||||
|
||||
@ -234,7 +234,7 @@ static ADDRESS_MAP_START( zeropnt2_map, ADDRESS_SPACE_PROGRAM, 32 )
|
||||
AM_RANGE(0x8001f0, 0x8001f3) AM_DEVWRITE("eeprom", zeropnt2_eeprom_w) // EEPROM
|
||||
AM_RANGE(0x904000, 0x90ffff) AM_RAM_WRITE(unico_vram32_w) AM_BASE_MEMBER(unico_state, vram32) // Layers 1, 2, 0
|
||||
AM_RANGE(0x920000, 0x923fff) AM_RAM // ? 0
|
||||
AM_RANGE(0x930000, 0x9307ff) AM_RAM AM_BASE_SIZE_GENERIC(spriteram) // Sprites
|
||||
AM_RANGE(0x930000, 0x9307ff) AM_RAM AM_BASE_SIZE_MEMBER(unico_state, spriteram, spriteram_size) // Sprites
|
||||
AM_RANGE(0x940000, 0x947fff) AM_RAM_WRITE(unico_palette32_w) AM_BASE_GENERIC(paletteram ) // Palette
|
||||
AM_RANGE(0xfe0000, 0xffffff) AM_RAM // RAM
|
||||
ADDRESS_MAP_END
|
||||
|
@ -212,7 +212,7 @@ static WRITE8_HANDLER(vb_scrollx_lo_w)
|
||||
//Cheaters note: Scores are stored in ram @ 0x57-0x58 (though the space is used for other things between matches)
|
||||
static ADDRESS_MAP_START( main_map, ADDRESS_SPACE_PROGRAM, 8 )
|
||||
AM_RANGE(0x0000, 0x07ff) AM_RAM
|
||||
AM_RANGE(0x0800, 0x08ff) AM_RAM AM_BASE_SIZE_GENERIC(spriteram)
|
||||
AM_RANGE(0x0800, 0x08ff) AM_RAM AM_BASE_SIZE_MEMBER(vball_state, spriteram, spriteram_size)
|
||||
AM_RANGE(0x1000, 0x1000) AM_READ_PORT("P1")
|
||||
AM_RANGE(0x1001, 0x1001) AM_READ_PORT("P2")
|
||||
AM_RANGE(0x1002, 0x1002) AM_READ_PORT("SYSTEM")
|
||||
|
@ -64,7 +64,7 @@ static WRITE8_HANDLER( kikcubic_coin_w )
|
||||
static ADDRESS_MAP_START( vigilant_map, ADDRESS_SPACE_PROGRAM, 8 )
|
||||
AM_RANGE(0x8000, 0xbfff) AM_ROMBANK("bank1") /* Fallthrough */
|
||||
AM_RANGE(0x0000, 0x7fff) AM_ROM
|
||||
AM_RANGE(0xc020, 0xc0df) AM_RAM AM_BASE_SIZE_GENERIC(spriteram)
|
||||
AM_RANGE(0xc020, 0xc0df) AM_RAM AM_BASE_SIZE_MEMBER(vigilant_state, spriteram, spriteram_size)
|
||||
AM_RANGE(0xc800, 0xcfff) AM_RAM_WRITE(vigilant_paletteram_w) AM_BASE_GENERIC(paletteram)
|
||||
AM_RANGE(0xd000, 0xdfff) AM_RAM AM_BASE_MEMBER(vigilant_state, videoram)
|
||||
AM_RANGE(0xe000, 0xefff) AM_RAM
|
||||
@ -85,7 +85,7 @@ ADDRESS_MAP_END
|
||||
static ADDRESS_MAP_START( kikcubic_map, ADDRESS_SPACE_PROGRAM, 8 )
|
||||
AM_RANGE(0x8000, 0xbfff) AM_ROMBANK("bank1") /* Fallthrough */
|
||||
AM_RANGE(0x0000, 0x7fff) AM_ROM
|
||||
AM_RANGE(0xc000, 0xc0ff) AM_RAM AM_BASE_SIZE_GENERIC(spriteram)
|
||||
AM_RANGE(0xc000, 0xc0ff) AM_RAM AM_BASE_SIZE_MEMBER(vigilant_state, spriteram, spriteram_size)
|
||||
AM_RANGE(0xc800, 0xcaff) AM_RAM_WRITE(vigilant_paletteram_w) AM_BASE_GENERIC(paletteram)
|
||||
AM_RANGE(0xd000, 0xdfff) AM_RAM AM_BASE_MEMBER(vigilant_state, videoram)
|
||||
AM_RANGE(0xe000, 0xffff) AM_RAM
|
||||
|
@ -67,7 +67,7 @@ static ADDRESS_MAP_START( main_map, ADDRESS_SPACE_PROGRAM, 8 )
|
||||
AM_RANGE(0xc804, 0xc804) AM_WRITE(vulgus_c804_w)
|
||||
AM_RANGE(0xc805, 0xc805) AM_WRITE(vulgus_palette_bank_w)
|
||||
AM_RANGE(0xc902, 0xc903) AM_RAM AM_BASE_MEMBER(vulgus_state, scroll_high)
|
||||
AM_RANGE(0xcc00, 0xcc7f) AM_RAM AM_BASE_SIZE_GENERIC(spriteram)
|
||||
AM_RANGE(0xcc00, 0xcc7f) AM_RAM AM_BASE_SIZE_MEMBER(vulgus_state, spriteram, spriteram_size)
|
||||
AM_RANGE(0xd000, 0xd7ff) AM_RAM_WRITE(vulgus_fgvideoram_w) AM_BASE_MEMBER(vulgus_state, fgvideoram)
|
||||
AM_RANGE(0xd800, 0xdfff) AM_RAM_WRITE(vulgus_bgvideoram_w) AM_BASE_MEMBER(vulgus_state, bgvideoram)
|
||||
AM_RANGE(0xe000, 0xefff) AM_RAM
|
||||
|
@ -143,7 +143,7 @@ ADDRESS_MAP_END
|
||||
static ADDRESS_MAP_START( wc90_map_2, ADDRESS_SPACE_PROGRAM, 8 )
|
||||
AM_RANGE(0x0000, 0xbfff) AM_ROM
|
||||
AM_RANGE(0xc000, 0xcfff) AM_RAM
|
||||
AM_RANGE(0xd000, 0xd7ff) AM_RAM AM_BASE_SIZE_GENERIC(spriteram)
|
||||
AM_RANGE(0xd000, 0xd7ff) AM_RAM AM_BASE_SIZE_MEMBER(wc90_state, spriteram, spriteram_size)
|
||||
AM_RANGE(0xd800, 0xdfff) AM_RAM
|
||||
AM_RANGE(0xe000, 0xe7ff) AM_RAM_WRITE(paletteram_xxxxBBBBRRRRGGGG_be_w) AM_BASE_GENERIC(paletteram)
|
||||
AM_RANGE(0xf000, 0xf7ff) AM_ROMBANK("bank2")
|
||||
|
@ -163,7 +163,7 @@ ADDRESS_MAP_END
|
||||
static ADDRESS_MAP_START( wc90b_map2, ADDRESS_SPACE_PROGRAM, 8 )
|
||||
AM_RANGE(0x0000, 0xbfff) AM_ROM
|
||||
AM_RANGE(0xc000, 0xcfff) AM_RAM
|
||||
AM_RANGE(0xd000, 0xd7ff) AM_RAM AM_BASE_SIZE_GENERIC(spriteram)
|
||||
AM_RANGE(0xd000, 0xd7ff) AM_RAM AM_BASE_SIZE_MEMBER(wc90b_state, spriteram, spriteram_size)
|
||||
AM_RANGE(0xd800, 0xdfff) AM_RAM
|
||||
AM_RANGE(0xe000, 0xe7ff) AM_RAM_WRITE(paletteram_xxxxBBBBGGGGRRRR_be_w) AM_BASE_GENERIC(paletteram)
|
||||
AM_RANGE(0xe800, 0xefff) AM_ROM
|
||||
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue
Block a user