diff --git a/src/mame/drivers/acefruit.c b/src/mame/drivers/acefruit.c index 81e014332e9..fa1dba98e59 100644 --- a/src/mame/drivers/acefruit.c +++ b/src/mame/drivers/acefruit.c @@ -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(); 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 */ diff --git a/src/mame/drivers/acommand.c b/src/mame/drivers/acommand.c index a74d03e7970..0193600f5d9 100644 --- a/src/mame/drivers/acommand.c +++ b/src/mame/drivers/acommand.c @@ -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(); + 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 diff --git a/src/mame/drivers/argus.c b/src/mame/drivers/argus.c index 86b9cce6cd9..52f03beec0f 100644 --- a/src/mame/drivers/argus.c +++ b/src/mame/drivers/argus.c @@ -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 diff --git a/src/mame/drivers/bagman.c b/src/mame/drivers/bagman.c index 24ec0db64c0..2c17970b398 100644 --- a/src/mame/drivers/bagman.c +++ b/src/mame/drivers/bagman.c @@ -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 */ diff --git a/src/mame/drivers/balsente.c b/src/mame/drivers/balsente.c index 4e2c8e536cb..3090369a3bf 100644 --- a/src/mame/drivers/balsente.c +++ b/src/mame/drivers/balsente.c @@ -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) diff --git a/src/mame/drivers/bestleag.c b/src/mame/drivers/bestleag.c index 52a75f07c44..28022592991 100644 --- a/src/mame/drivers/bestleag.c +++ b/src/mame/drivers/bestleag.c @@ -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(); - 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") diff --git a/src/mame/drivers/bloodbro.c b/src/mame/drivers/bloodbro.c index 1aee4bfd6fb..81dc3a3acfe 100644 --- a/src/mame/drivers/bloodbro.c +++ b/src/mame/drivers/bloodbro.c @@ -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) diff --git a/src/mame/drivers/centiped.c b/src/mame/drivers/centiped.c index 1318a574f93..f6f95e4a89d 100644 --- a/src/mame/drivers/centiped.c +++ b/src/mame/drivers/centiped.c @@ -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 diff --git a/src/mame/drivers/clshroad.c b/src/mame/drivers/clshroad.c index 513ac4bd800..852c0c8b3c5 100644 --- a/src/mame/drivers/clshroad.c +++ b/src/mame/drivers/clshroad.c @@ -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) diff --git a/src/mame/drivers/cshooter.c b/src/mame/drivers/cshooter.c index 73a1113b3aa..00eb128d5fe 100644 --- a/src/mame/drivers/cshooter.c +++ b/src/mame/drivers/cshooter.c @@ -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;imachine->generic.spriteram_size;i+=4) + for(i=0;ispriteram_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 diff --git a/src/mame/drivers/darkhors.c b/src/mame/drivers/darkhors.c index 1edfd53ba8a..af58d2654aa 100644 --- a/src/mame/drivers/darkhors.c +++ b/src/mame/drivers/darkhors.c @@ -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(); + 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! diff --git a/src/mame/drivers/darkmist.c b/src/mame/drivers/darkmist.c index 6a8e59bb172..65335bd5cff 100644 --- a/src/mame/drivers/darkmist.c +++ b/src/mame/drivers/darkmist.c @@ -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 diff --git a/src/mame/drivers/dcon.c b/src/mame/drivers/dcon.c index 1ce136cbcf6..a845ed91b89 100644 --- a/src/mame/drivers/dcon.c +++ b/src/mame/drivers/dcon.c @@ -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) diff --git a/src/mame/drivers/deadang.c b/src/mame/drivers/deadang.c index d21e58a82a4..e0b9bf9d612 100644 --- a/src/mame/drivers/deadang.c +++ b/src/mame/drivers/deadang.c @@ -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) diff --git a/src/mame/drivers/deco_mlc.c b/src/mame/drivers/deco_mlc.c index 5f654ee2fa4..8ad2ecff583 100644 --- a/src/mame/drivers/deco_mlc.c +++ b/src/mame/drivers/deco_mlc.c @@ -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(); + 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) diff --git a/src/mame/drivers/exidy440.c b/src/mame/drivers/exidy440.c index d34b583d389..0405cb4838e 100644 --- a/src/mame/drivers/exidy440.c +++ b/src/mame/drivers/exidy440.c @@ -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) diff --git a/src/mame/drivers/expro02.c b/src/mame/drivers/expro02.c index ee823d39b40..9967fd7ad99 100644 --- a/src/mame/drivers/expro02.c +++ b/src/mame/drivers/expro02.c @@ -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") diff --git a/src/mame/drivers/fantland.c b/src/mame/drivers/fantland.c index d4cfd042d15..f81831d8b01 100644 --- a/src/mame/drivers/fantland.c +++ b/src/mame/drivers/fantland.c @@ -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(); + 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(); + 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(); + 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(); + 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 diff --git a/src/mame/drivers/feversoc.c b/src/mame/drivers/feversoc.c index 274aaf7a5fc..0f247669874 100644 --- a/src/mame/drivers/feversoc.c +++ b/src/mame/drivers/feversoc.c @@ -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(); + 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) diff --git a/src/mame/drivers/firefox.c b/src/mame/drivers/firefox.c index 35422e1b604..a0037d2b5d4 100644 --- a/src/mame/drivers/firefox.c +++ b/src/mame/drivers/firefox.c @@ -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) diff --git a/src/mame/drivers/flower.c b/src/mame/drivers/flower.c index 43a17adac6f..680bebc12d0 100644 --- a/src/mame/drivers/flower.c +++ b/src/mame/drivers/flower.c @@ -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) diff --git a/src/mame/drivers/foodf.c b/src/mame/drivers/foodf.c index e89cd3eaac5..62887775194 100644 --- a/src/mame/drivers/foodf.c +++ b/src/mame/drivers/foodf.c @@ -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) diff --git a/src/mame/drivers/galastrm.c b/src/mame/drivers/galastrm.c index 0e5ff3de8a3..0bf0f3d5720 100644 --- a/src/mame/drivers/galastrm.c +++ b/src/mame/drivers/galastrm.c @@ -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. */ diff --git a/src/mame/drivers/galpanic.c b/src/mame/drivers/galpanic.c index 328312103ef..ccdb9804e36 100644 --- a/src/mame/drivers/galpanic.c +++ b/src/mame/drivers/galpanic.c @@ -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") diff --git a/src/mame/drivers/gladiatr.c b/src/mame/drivers/gladiatr.c index 36643020bf4..25732696e23 100644 --- a/src/mame/drivers/gladiatr.c +++ b/src/mame/drivers/gladiatr.c @@ -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) diff --git a/src/mame/drivers/goodejan.c b/src/mame/drivers/goodejan.c index d0084a4ddb7..015a87562d5 100644 --- a/src/mame/drivers/goodejan.c +++ b/src/mame/drivers/goodejan.c @@ -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 diff --git a/src/mame/drivers/gottlieb.c b/src/mame/drivers/gottlieb.c index 6dcf2583b00..87d5284a04e 100644 --- a/src/mame/drivers/gottlieb.c +++ b/src/mame/drivers/gottlieb.c @@ -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 */ diff --git a/src/mame/drivers/gridlee.c b/src/mame/drivers/gridlee.c index f17c3d1dc20..c5b9ab53624 100644 --- a/src/mame/drivers/gridlee.c +++ b/src/mame/drivers/gridlee.c @@ -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) diff --git a/src/mame/drivers/groundfx.c b/src/mame/drivers/groundfx.c index af9b73258e4..13ec4134a1f 100644 --- a/src/mame/drivers/groundfx.c +++ b/src/mame/drivers/groundfx.c @@ -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") diff --git a/src/mame/drivers/gunbustr.c b/src/mame/drivers/gunbustr.c index 5bf0277964b..8646f9992ab 100644 --- a/src/mame/drivers/gunbustr.c +++ b/src/mame/drivers/gunbustr.c @@ -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") diff --git a/src/mame/drivers/igs017.c b/src/mame/drivers/igs017.c index f4b7e4c21e7..b200e56bf53 100644 --- a/src/mame/drivers/igs017.c +++ b/src/mame/drivers/igs017.c @@ -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(); + return state->spriteram[offset]; } static WRITE16_HANDLER( spriteram_lsb_w ) { + igs017_state *state = space->machine->driver_data(); 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(); + 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 ) diff --git a/src/mame/drivers/jrpacman.c b/src/mame/drivers/jrpacman.c index f044a5c3d28..36d0286a3ef 100644 --- a/src/mame/drivers/jrpacman.c +++ b/src/mame/drivers/jrpacman.c @@ -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 */ diff --git a/src/mame/drivers/kingdrby.c b/src/mame/drivers/kingdrby.c index da65ca2646a..80f37276e7c 100644 --- a/src/mame/drivers/kingdrby.c +++ b/src/mame/drivers/kingdrby.c @@ -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(); + 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") diff --git a/src/mame/drivers/limenko.c b/src/mame/drivers/limenko.c index 5c305f0f383..af435f1e5ef 100644 --- a/src/mame/drivers/limenko.c +++ b/src/mame/drivers/limenko.c @@ -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(); 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) diff --git a/src/mame/drivers/lordgun.c b/src/mame/drivers/lordgun.c index bd89474208f..85b22b07fab 100644 --- a/src/mame/drivers/lordgun.c +++ b/src/mame/drivers/lordgun.c @@ -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) diff --git a/src/mame/drivers/magmax.c b/src/mame/drivers/magmax.c index 2bf2e02220b..01750079938 100644 --- a/src/mame/drivers/magmax.c +++ b/src/mame/drivers/magmax.c @@ -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") diff --git a/src/mame/drivers/mcr3.c b/src/mame/drivers/mcr3.c index b66239bfc31..0be91107a75 100644 --- a/src/mame/drivers/mcr3.c +++ b/src/mame/drivers/mcr3.c @@ -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 diff --git a/src/mame/drivers/mcr68.c b/src/mame/drivers/mcr68.c index bafc55b2140..0a15eecf701 100644 --- a/src/mame/drivers/mcr68.c +++ b/src/mame/drivers/mcr68.c @@ -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) diff --git a/src/mame/drivers/meadows.c b/src/mame/drivers/meadows.c index 8e42a499c09..80017bff239 100644 --- a/src/mame/drivers/meadows.c +++ b/src/mame/drivers/meadows.c @@ -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) diff --git a/src/mame/drivers/megasys1.c b/src/mame/drivers/megasys1.c index 25d2dd402eb..da1843d13e2 100644 --- a/src/mame/drivers/megasys1.c +++ b/src/mame/drivers/megasys1.c @@ -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(); + 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(); + if (offset < 0x800/2) COMBINE_DATA(&state->spriteram[offset]); } static DRIVER_INIT( soldamj ) diff --git a/src/mame/drivers/mirax.c b/src/mame/drivers/mirax.c index f18f2d0fc29..3fc274bd2db 100644 --- a/src/mame/drivers/mirax.c +++ b/src/mame/drivers/mirax.c @@ -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(); + 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) diff --git a/src/mame/drivers/mustache.c b/src/mame/drivers/mustache.c index 386eaf5dd09..f1c99a4ef6d 100644 --- a/src/mame/drivers/mustache.c +++ b/src/mame/drivers/mustache.c @@ -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 diff --git a/src/mame/drivers/mystwarr.c b/src/mame/drivers/mystwarr.c index ae4e4f88164..be791f0c864 100644 --- a/src/mame/drivers/mystwarr.c +++ b/src/mame/drivers/mystwarr.c @@ -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(); 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(); 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(); 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(); 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) diff --git a/src/mame/drivers/namcona1.c b/src/mame/drivers/namcona1.c index 68e79528926..64c5c5d3320 100644 --- a/src/mame/drivers/namcona1.c +++ b/src/mame/drivers/namcona1.c @@ -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(); 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 diff --git a/src/mame/drivers/namcos22.c b/src/mame/drivers/namcos22.c index 6e4815b0610..15ea5218678 100644 --- a/src/mame/drivers/namcos22.c +++ b/src/mame/drivers/namcos22.c @@ -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) diff --git a/src/mame/drivers/namcos86.c b/src/mame/drivers/namcos86.c index 00278fae0f1..f746c91d3ba 100644 --- a/src/mame/drivers/namcos86.c +++ b/src/mame/drivers/namcos86.c @@ -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) diff --git a/src/mame/drivers/ninjakd2.c b/src/mame/drivers/ninjakd2.c index 41b924ce055..9c1657ed022 100644 --- a/src/mame/drivers/ninjakd2.c +++ b/src/mame/drivers/ninjakd2.c @@ -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 diff --git a/src/mame/drivers/nmk16.c b/src/mame/drivers/nmk16.c index 428d97749f7..281e035fa34 100644 --- a/src/mame/drivers/nmk16.c +++ b/src/mame/drivers/nmk16.c @@ -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 */ diff --git a/src/mame/drivers/nova2001.c b/src/mame/drivers/nova2001.c index 42f197e4027..0d1ab245eae 100644 --- a/src/mame/drivers/nova2001.c +++ b/src/mame/drivers/nova2001.c @@ -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) diff --git a/src/mame/drivers/panicr.c b/src/mame/drivers/panicr.c index 9eebcfb3d23..b5ce0deab63 100644 --- a/src/mame/drivers/panicr.c +++ b/src/mame/drivers/panicr.c @@ -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(); - 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) diff --git a/src/mame/drivers/pcktgal.c b/src/mame/drivers/pcktgal.c index 2cdad474992..b64516812e3 100644 --- a/src/mame/drivers/pcktgal.c +++ b/src/mame/drivers/pcktgal.c @@ -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 */ diff --git a/src/mame/drivers/pengo.c b/src/mame/drivers/pengo.c index 1164bb4e910..f8e464cffe0 100644 --- a/src/mame/drivers/pengo.c +++ b/src/mame/drivers/pengo.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) diff --git a/src/mame/drivers/pingpong.c b/src/mame/drivers/pingpong.c index 5bd1eb0151f..a4b8c2343e5 100644 --- a/src/mame/drivers/pingpong.c +++ b/src/mame/drivers/pingpong.c @@ -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") diff --git a/src/mame/drivers/pitnrun.c b/src/mame/drivers/pitnrun.c index 0281fef5e47..95ca55a5c5c 100644 --- a/src/mame/drivers/pitnrun.c +++ b/src/mame/drivers/pitnrun.c @@ -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) diff --git a/src/mame/drivers/pokechmp.c b/src/mame/drivers/pokechmp.c index 0ea9015e40b..1d53a2236a4 100644 --- a/src/mame/drivers/pokechmp.c +++ b/src/mame/drivers/pokechmp.c @@ -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) diff --git a/src/mame/drivers/popeye.c b/src/mame/drivers/popeye.c index 32ecad14cc1..c07244f878e 100644 --- a/src/mame/drivers/popeye.c +++ b/src/mame/drivers/popeye.c @@ -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) diff --git a/src/mame/drivers/portrait.c b/src/mame/drivers/portrait.c index 7be4e45ffe7..334bb87d875 100644 --- a/src/mame/drivers/portrait.c +++ b/src/mame/drivers/portrait.c @@ -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 // ? diff --git a/src/mame/drivers/powerins.c b/src/mame/drivers/powerins.c index 54b394fe559..2d7a4cb3ba0 100644 --- a/src/mame/drivers/powerins.c +++ b/src/mame/drivers/powerins.c @@ -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 ) diff --git a/src/mame/drivers/psikyo.c b/src/mame/drivers/psikyo.c index 58c0b3fbc52..795c2b14869 100644 --- a/src/mame/drivers/psikyo.c +++ b/src/mame/drivers/psikyo.c @@ -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 diff --git a/src/mame/drivers/psychic5.c b/src/mame/drivers/psychic5.c index 1213f74cbae..b1022feae10 100644 --- a/src/mame/drivers/psychic5.c +++ b/src/mame/drivers/psychic5.c @@ -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) diff --git a/src/mame/drivers/pturn.c b/src/mame/drivers/pturn.c index 60f3381b5ad..c9bd088c240 100644 --- a/src/mame/drivers/pturn.c +++ b/src/mame/drivers/pturn.c @@ -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(); - 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) diff --git a/src/mame/drivers/quizdna.c b/src/mame/drivers/quizdna.c index 003e693f018..ccd5021f2c8 100644 --- a/src/mame/drivers/quizdna.c +++ b/src/mame/drivers/quizdna.c @@ -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 diff --git a/src/mame/drivers/r2dx_v33.c b/src/mame/drivers/r2dx_v33.c index 408eaa6796b..e063f65e6c8 100644 --- a/src/mame/drivers/r2dx_v33.c +++ b/src/mame/drivers/r2dx_v33.c @@ -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(); + 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 */ diff --git a/src/mame/drivers/realbrk.c b/src/mame/drivers/realbrk.c index bb460a52727..089b9f0ce32 100644 --- a/src/mame/drivers/realbrk.c +++ b/src/mame/drivers/realbrk.c @@ -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) diff --git a/src/mame/drivers/renegade.c b/src/mame/drivers/renegade.c index 64cafe34698..de4667fb649 100644 --- a/src/mame/drivers/renegade.c +++ b/src/mame/drivers/renegade.c @@ -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) diff --git a/src/mame/drivers/rollrace.c b/src/mame/drivers/rollrace.c index 09bbde55c46..95fdf0b99eb 100644 --- a/src/mame/drivers/rollrace.c +++ b/src/mame/drivers/rollrace.c @@ -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) diff --git a/src/mame/drivers/rpunch.c b/src/mame/drivers/rpunch.c index 3137a0624e0..61714c5aad9 100644 --- a/src/mame/drivers/rpunch.c +++ b/src/mame/drivers/rpunch.c @@ -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) diff --git a/src/mame/drivers/sengokmj.c b/src/mame/drivers/sengokmj.c index 25e2307f7e7..e41d39bfbad 100644 --- a/src/mame/drivers/sengokmj.c +++ b/src/mame/drivers/sengokmj.c @@ -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 diff --git a/src/mame/drivers/shangkid.c b/src/mame/drivers/shangkid.c index 9603849b09d..04fc0fa69bb 100644 --- a/src/mame/drivers/shangkid.c +++ b/src/mame/drivers/shangkid.c @@ -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 /***************************************************************************************/ diff --git a/src/mame/drivers/sigmab98.c b/src/mame/drivers/sigmab98.c index 855512c71e0..6e881785d27 100644 --- a/src/mame/drivers/sigmab98.c +++ b/src/mame/drivers/sigmab98.c @@ -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(); + 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(); 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(); 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(); 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(); 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(); 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(); // 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(); // 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(); // 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; diff --git a/src/mame/drivers/simpl156.c b/src/mame/drivers/simpl156.c index e5dcee4c237..14801706e35 100644 --- a/src/mame/drivers/simpl156.c +++ b/src/mame/drivers/simpl156.c @@ -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(); + return state->spriteram[offset] ^ 0xffff0000; } static WRITE32_HANDLER( simpl156_spriteram_w ) { + simpl156_state *state = space->machine->driver_data(); 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) diff --git a/src/mame/drivers/snowbros.c b/src/mame/drivers/snowbros.c index d770fea0ce7..ac741ca3074 100644 --- a/src/mame/drivers/snowbros.c +++ b/src/mame/drivers/snowbros.c @@ -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 */ diff --git a/src/mame/drivers/spdodgeb.c b/src/mame/drivers/spdodgeb.c index 8d08d3bb179..947bf8efb97 100644 --- a/src/mame/drivers/spdodgeb.c +++ b/src/mame/drivers/spdodgeb.c @@ -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 diff --git a/src/mame/drivers/speedbal.c b/src/mame/drivers/speedbal.c index c6256e08fb6..b034712cbe5 100644 --- a/src/mame/drivers/speedbal.c +++ b/src/mame/drivers/speedbal.c @@ -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 ) diff --git a/src/mame/drivers/stadhero.c b/src/mame/drivers/stadhero.c index 4e7940912e2..1133ea25e3b 100644 --- a/src/mame/drivers/stadhero.c +++ b/src/mame/drivers/stadhero.c @@ -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 /******************************************************************************/ diff --git a/src/mame/drivers/strnskil.c b/src/mame/drivers/strnskil.c index 5435d439472..c71396a28db 100644 --- a/src/mame/drivers/strnskil.c +++ b/src/mame/drivers/strnskil.c @@ -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) diff --git a/src/mame/drivers/superchs.c b/src/mame/drivers/superchs.c index 9dd13d2a164..3b027ca2a92 100644 --- a/src/mame/drivers/superchs.c +++ b/src/mame/drivers/superchs.c @@ -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) diff --git a/src/mame/drivers/superqix.c b/src/mame/drivers/superqix.c index e69a1d17f08..54b1f6534f4 100644 --- a/src/mame/drivers/superqix.c +++ b/src/mame/drivers/superqix.c @@ -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 diff --git a/src/mame/drivers/suprloco.c b/src/mame/drivers/suprloco.c index 25f7baa4052..1990073a239 100644 --- a/src/mame/drivers/suprloco.c +++ b/src/mame/drivers/suprloco.c @@ -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") diff --git a/src/mame/drivers/suprridr.c b/src/mame/drivers/suprridr.c index 03c03bac42b..169f7901f18 100644 --- a/src/mame/drivers/suprridr.c +++ b/src/mame/drivers/suprridr.c @@ -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") diff --git a/src/mame/drivers/system1.c b/src/mame/drivers/system1.c index 823ded5d0c7..93e9eb4521a 100644 --- a/src/mame/drivers/system1.c +++ b/src/mame/drivers/system1.c @@ -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) diff --git a/src/mame/drivers/taito_f3.c b/src/mame/drivers/taito_f3.c index 7d1ac9a8f29..04e5bd4b601 100644 --- a/src/mame/drivers/taito_f3.c +++ b/src/mame/drivers/taito_f3.c @@ -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) diff --git a/src/mame/drivers/tankbust.c b/src/mame/drivers/tankbust.c index b9f382af997..55c3bd34eb4 100644 --- a/src/mame/drivers/tankbust.c +++ b/src/mame/drivers/tankbust.c @@ -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") diff --git a/src/mame/drivers/tatsumi.c b/src/mame/drivers/tatsumi.c index 3d47d441c3d..73dc00500ea 100644 --- a/src/mame/drivers/tatsumi.c +++ b/src/mame/drivers/tatsumi.c @@ -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(); return state->spriteram[offset]; } +static WRITE16_HANDLER(cyclwarr_sprite_w) { + tatsumi_state *state = space->machine->driver_data(); 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 */ diff --git a/src/mame/drivers/tecmo.c b/src/mame/drivers/tecmo.c index fd0c624bd21..46b2095c749 100644 --- a/src/mame/drivers/tecmo.c +++ b/src/mame/drivers/tecmo.c @@ -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") diff --git a/src/mame/drivers/tecmo16.c b/src/mame/drivers/tecmo16.c index 38b43c2dc32..aa296b98e86 100644 --- a/src/mame/drivers/tecmo16.c +++ b/src/mame/drivers/tecmo16.c @@ -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) diff --git a/src/mame/drivers/tehkanwc.c b/src/mame/drivers/tehkanwc.c index 5fc93c76738..92b638d07f9 100644 --- a/src/mame/drivers/tehkanwc.c +++ b/src/mame/drivers/tehkanwc.c @@ -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 */ diff --git a/src/mame/drivers/terracre.c b/src/mame/drivers/terracre.c index 02a124c51a8..44d27428e97 100644 --- a/src/mame/drivers/terracre.c +++ b/src/mame/drivers/terracre.c @@ -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") diff --git a/src/mame/drivers/thedeep.c b/src/mame/drivers/thedeep.c index e03c4d147cd..170ca244f38 100644 --- a/src/mame/drivers/thedeep.c +++ b/src/mame/drivers/thedeep.c @@ -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 */ diff --git a/src/mame/drivers/timelimt.c b/src/mame/drivers/timelimt.c index 1ffe50c5587..c5ba5fa266d 100644 --- a/src/mame/drivers/timelimt.c +++ b/src/mame/drivers/timelimt.c @@ -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") diff --git a/src/mame/drivers/tmnt.c b/src/mame/drivers/tmnt.c index 098a327a0b3..af4c29c2f58 100644 --- a/src/mame/drivers/tmnt.c +++ b/src/mame/drivers/tmnt.c @@ -130,7 +130,7 @@ static READ16_HANDLER( k053245_scattered_word_r ) tmnt_state *state = space->machine->driver_data(); 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(); - 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 diff --git a/src/mame/drivers/tryout.c b/src/mame/drivers/tryout.c index a4f862a3724..8201f1f7603 100644 --- a/src/mame/drivers/tryout.c +++ b/src/mame/drivers/tryout.c @@ -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") diff --git a/src/mame/drivers/tsamurai.c b/src/mame/drivers/tsamurai.c index 85730daf45a..f1c1b4ca5e0 100644 --- a/src/mame/drivers/tsamurai.c +++ b/src/mame/drivers/tsamurai.c @@ -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 diff --git a/src/mame/drivers/undrfire.c b/src/mame/drivers/undrfire.c index df262eef5ad..e5ee55f205b 100644 --- a/src/mame/drivers/undrfire.c +++ b/src/mame/drivers/undrfire.c @@ -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) diff --git a/src/mame/drivers/unico.c b/src/mame/drivers/unico.c index 81705250cd6..0cd52931733 100644 --- a/src/mame/drivers/unico.c +++ b/src/mame/drivers/unico.c @@ -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 diff --git a/src/mame/drivers/vball.c b/src/mame/drivers/vball.c index dc5d617fd09..a9ac5b501d5 100644 --- a/src/mame/drivers/vball.c +++ b/src/mame/drivers/vball.c @@ -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") diff --git a/src/mame/drivers/vigilant.c b/src/mame/drivers/vigilant.c index cac0a7df7ef..5910bc838ec 100644 --- a/src/mame/drivers/vigilant.c +++ b/src/mame/drivers/vigilant.c @@ -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 diff --git a/src/mame/drivers/vulgus.c b/src/mame/drivers/vulgus.c index a1a3e98bd88..5721a0243e7 100644 --- a/src/mame/drivers/vulgus.c +++ b/src/mame/drivers/vulgus.c @@ -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 diff --git a/src/mame/drivers/wc90.c b/src/mame/drivers/wc90.c index a2b7dbc3424..f32557bbad3 100644 --- a/src/mame/drivers/wc90.c +++ b/src/mame/drivers/wc90.c @@ -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") diff --git a/src/mame/drivers/wc90b.c b/src/mame/drivers/wc90b.c index 347f273d9ce..c290e02f8df 100644 --- a/src/mame/drivers/wc90b.c +++ b/src/mame/drivers/wc90b.c @@ -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 diff --git a/src/mame/drivers/wecleman.c b/src/mame/drivers/wecleman.c index 2d14f1c4afb..c262213266b 100644 --- a/src/mame/drivers/wecleman.c +++ b/src/mame/drivers/wecleman.c @@ -524,7 +524,7 @@ static ADDRESS_MAP_START( wecleman_map, ADDRESS_SPACE_PROGRAM, 16 ) AM_RANGE(0x108000, 0x108fff) AM_RAM_WRITE(wecleman_txtram_w) AM_BASE_MEMBER(wecleman_state, txtram) // Text Layer AM_RANGE(0x110000, 0x110fff) AM_RAM_WRITE(wecleman_paletteram16_SSSSBBBBGGGGRRRR_word_w) AM_BASE_GENERIC(paletteram) AM_RANGE(0x124000, 0x127fff) AM_RAM AM_SHARE("share1") // Shared with main CPU - AM_RANGE(0x130000, 0x130fff) AM_RAM AM_BASE_GENERIC(spriteram) // Sprites + AM_RANGE(0x130000, 0x130fff) AM_RAM AM_BASE_MEMBER(wecleman_state, spriteram) // Sprites AM_RANGE(0x140000, 0x140001) AM_WRITE(wecleman_soundlatch_w) // To sound CPU AM_RANGE(0x140002, 0x140003) AM_WRITE(selected_ip_w) // Selects accelerator / wheel / .. AM_RANGE(0x140004, 0x140005) AM_WRITE(irqctrl_w) // Main CPU controls the other CPUs @@ -555,7 +555,7 @@ static ADDRESS_MAP_START( hotchase_map, ADDRESS_SPACE_PROGRAM, 16 ) AM_RANGE(0x103000, 0x10301f) AM_DEVWRITE8("k051316_2", k051316_ctrl_w, 0x00ff) // Foreground Ctrl AM_RANGE(0x110000, 0x111fff) AM_RAM_WRITE(hotchase_paletteram16_SBGRBBBBGGGGRRRR_word_w) AM_BASE_GENERIC(paletteram) AM_RANGE(0x120000, 0x123fff) AM_RAM AM_SHARE("share1") // Shared with sub CPU - AM_RANGE(0x130000, 0x130fff) AM_RAM AM_BASE_GENERIC(spriteram) // Sprites + AM_RANGE(0x130000, 0x130fff) AM_RAM AM_BASE_MEMBER(wecleman_state, spriteram) // Sprites // Input Ports: AM_RANGE(0x140000, 0x140001) AM_WRITE(hotchase_soundlatch_w) // To sound CPU AM_RANGE(0x140002, 0x140003) AM_WRITE(selected_ip_w) // Selects accelerator / wheel / diff --git a/src/mame/drivers/wiping.c b/src/mame/drivers/wiping.c index ce32465344b..8f5004500eb 100644 --- a/src/mame/drivers/wiping.c +++ b/src/mame/drivers/wiping.c @@ -90,7 +90,7 @@ static ADDRESS_MAP_START( main_map, ADDRESS_SPACE_PROGRAM, 8 ) AM_RANGE(0x0000, 0x5fff) AM_ROM AM_RANGE(0x8000, 0x83ff) AM_BASE_MEMBER(wiping_state, videoram) AM_RANGE(0x8400, 0x87ff) AM_BASE_MEMBER(wiping_state, colorram) - AM_RANGE(0x8800, 0x88ff) AM_BASE_SIZE_GENERIC(spriteram) + AM_RANGE(0x8800, 0x88ff) AM_BASE_SIZE_MEMBER(wiping_state, spriteram, spriteram_size) AM_RANGE(0x8000, 0x8bff) AM_RAM AM_RANGE(0x9000, 0x93ff) AM_READWRITE(shared1_r,shared1_w) AM_BASE_MEMBER(wiping_state, sharedram1) AM_RANGE(0x9800, 0x9bff) AM_READWRITE(shared2_r,shared2_w) AM_BASE_MEMBER(wiping_state, sharedram2) diff --git a/src/mame/drivers/wiz.c b/src/mame/drivers/wiz.c index 2e4c38fe852..d8c115b63f6 100644 --- a/src/mame/drivers/wiz.c +++ b/src/mame/drivers/wiz.c @@ -221,12 +221,12 @@ static ADDRESS_MAP_START( main_map, ADDRESS_SPACE_PROGRAM, 8 ) AM_RANGE(0xd000, 0xd3ff) AM_BASE_MEMBER(wiz_state, videoram2) /* Fallthrough */ AM_RANGE(0xd400, 0xd7ff) AM_BASE_MEMBER(wiz_state, colorram2) AM_RANGE(0xd800, 0xd83f) AM_BASE_MEMBER(wiz_state, attributesram2) - AM_RANGE(0xd840, 0xd85f) AM_BASE_GENERIC(spriteram2) AM_SIZE_GENERIC(spriteram) + AM_RANGE(0xd840, 0xd85f) AM_BASE_MEMBER(wiz_state, spriteram2) AM_SIZE_MEMBER(wiz_state, spriteram) AM_RANGE(0xd000, 0xd85f) AM_RAM AM_RANGE(0xe000, 0xe3ff) AM_BASE_MEMBER(wiz_state, videoram) /* Fallthrough */ AM_RANGE(0xe400, 0xe7ff) AM_RAM AM_RANGE(0xe800, 0xe83f) AM_BASE_MEMBER(wiz_state, attributesram) - AM_RANGE(0xe840, 0xe85f) AM_BASE_GENERIC(spriteram) + AM_RANGE(0xe840, 0xe85f) AM_BASE_MEMBER(wiz_state, spriteram) AM_RANGE(0xe000, 0xe85f) AM_RAM AM_RANGE(0xf000, 0xf000) AM_READ_PORT("DSW0") AM_RANGE(0xf000, 0xf000) AM_RAM AM_BASE_MEMBER(wiz_state, sprite_bank) diff --git a/src/mame/drivers/xain.c b/src/mame/drivers/xain.c index e7da803a06a..3efd374613a 100644 --- a/src/mame/drivers/xain.c +++ b/src/mame/drivers/xain.c @@ -404,7 +404,7 @@ static ADDRESS_MAP_START( main_map, ADDRESS_SPACE_PROGRAM, 8 ) AM_RANGE(0x2000, 0x27ff) AM_RAM_WRITE(xain_charram_w) AM_BASE_MEMBER(xain_state, charram) AM_RANGE(0x2800, 0x2fff) AM_RAM_WRITE(xain_bgram1_w) AM_BASE_MEMBER(xain_state, bgram1) AM_RANGE(0x3000, 0x37ff) AM_RAM_WRITE(xain_bgram0_w) AM_BASE_MEMBER(xain_state, bgram0) - AM_RANGE(0x3800, 0x397f) AM_RAM AM_BASE_SIZE_GENERIC(spriteram) + AM_RANGE(0x3800, 0x397f) AM_RAM AM_BASE_SIZE_MEMBER(xain_state, spriteram, spriteram_size) AM_RANGE(0x3a00, 0x3a00) AM_READ_PORT("P1") AM_RANGE(0x3a00, 0x3a01) AM_WRITE(xain_scrollxP1_w) AM_RANGE(0x3a01, 0x3a01) AM_READ_PORT("P2") diff --git a/src/mame/drivers/xorworld.c b/src/mame/drivers/xorworld.c index f12dc1ec120..b25e171c910 100644 --- a/src/mame/drivers/xorworld.c +++ b/src/mame/drivers/xorworld.c @@ -78,7 +78,7 @@ static ADDRESS_MAP_START( xorworld_map, ADDRESS_SPACE_PROGRAM, 16 ) AM_RANGE(0xa0000a, 0xa0000b) AM_DEVWRITE("eeprom", eeprom_serial_clock_w) AM_RANGE(0xa0000c, 0xa0000d) AM_DEVWRITE("eeprom", eeprom_data_w) AM_RANGE(0xffc000, 0xffc7ff) AM_RAM_WRITE(xorworld_videoram16_w) AM_BASE_MEMBER(xorworld_state, videoram) - AM_RANGE(0xffc800, 0xffc87f) AM_RAM AM_BASE_GENERIC(spriteram) + AM_RANGE(0xffc800, 0xffc87f) AM_RAM AM_BASE_MEMBER(xorworld_state, spriteram) AM_RANGE(0xffc880, 0xffc881) AM_WRITENOP AM_RANGE(0xffc882, 0xffc883) AM_WRITENOP AM_RANGE(0xffc884, 0xffffff) AM_RAM diff --git a/src/mame/drivers/zaccaria.c b/src/mame/drivers/zaccaria.c index 1a82c3a236c..d6aaae50f4d 100644 --- a/src/mame/drivers/zaccaria.c +++ b/src/mame/drivers/zaccaria.c @@ -264,8 +264,8 @@ static ADDRESS_MAP_START( main_map, ADDRESS_SPACE_PROGRAM, 8 ) AM_RANGE(0x6400, 0x6407) AM_READ(zaccaria_prot1_r) AM_RANGE(0x6000, 0x67ff) AM_WRITE(zaccaria_videoram_w) AM_BASE_MEMBER(zaccaria_state, videoram) /* 6400-67ff is 4 bits wide */ AM_RANGE(0x6800, 0x683f) AM_WRITE(zaccaria_attributes_w) AM_BASE_MEMBER(zaccaria_state, attributesram) - AM_RANGE(0x6840, 0x685f) AM_RAM AM_BASE_GENERIC(spriteram) - AM_RANGE(0x6881, 0x68c0) AM_RAM AM_BASE_GENERIC(spriteram2) + AM_RANGE(0x6840, 0x685f) AM_RAM AM_BASE_MEMBER(zaccaria_state, spriteram) + AM_RANGE(0x6881, 0x68c0) AM_RAM AM_BASE_MEMBER(zaccaria_state, spriteram2) AM_RANGE(0x6c00, 0x6c00) AM_WRITE(zaccaria_flip_screen_x_w) AM_RANGE(0x6c01, 0x6c01) AM_WRITE(zaccaria_flip_screen_y_w) AM_RANGE(0x6c02, 0x6c02) AM_WRITENOP /* sound reset */ diff --git a/src/mame/includes/argus.h b/src/mame/includes/argus.h index 82920fb0754..6732644d8fb 100644 --- a/src/mame/includes/argus.h +++ b/src/mame/includes/argus.h @@ -33,6 +33,8 @@ public: UINT8 valtric_unknown; UINT8 butasan_unknown; int mosaic; + UINT8 *spriteram; + size_t spriteram_size; }; diff --git a/src/mame/includes/bagman.h b/src/mame/includes/bagman.h index 54927198c75..95e9af30017 100644 --- a/src/mame/includes/bagman.h +++ b/src/mame/includes/bagman.h @@ -24,6 +24,8 @@ public: UINT8 outvalue[8]; tilemap_t *bg_tilemap; + UINT8 *spriteram; + size_t spriteram_size; }; diff --git a/src/mame/includes/balsente.h b/src/mame/includes/balsente.h index 8adbf6f41e7..7901a457b6a 100644 --- a/src/mame/includes/balsente.h +++ b/src/mame/includes/balsente.h @@ -122,6 +122,7 @@ public: UINT8 *sprite_bank[2]; UINT8 palettebank_vis; + UINT8 *spriteram; }; diff --git a/src/mame/includes/bloodbro.h b/src/mame/includes/bloodbro.h index a1bac9abb9a..608807c8b7a 100644 --- a/src/mame/includes/bloodbro.h +++ b/src/mame/includes/bloodbro.h @@ -11,6 +11,8 @@ public: tilemap_t *bg_tilemap; tilemap_t *fg_tilemap; tilemap_t *tx_tilemap; + UINT16 *spriteram; + size_t spriteram_size; }; diff --git a/src/mame/includes/centiped.h b/src/mame/includes/centiped.h index 3bad0b8e8c3..1fdab1c2639 100644 --- a/src/mame/includes/centiped.h +++ b/src/mame/includes/centiped.h @@ -21,6 +21,7 @@ public: tilemap_t *bg_tilemap; UINT8 bullsdrt_sprites_bank; UINT8 penmask[64]; + UINT8 *spriteram; }; diff --git a/src/mame/includes/cischeat.h b/src/mame/includes/cischeat.h index 5fcdae3208c..1c85907d38b 100644 --- a/src/mame/includes/cischeat.h +++ b/src/mame/includes/cischeat.h @@ -30,6 +30,7 @@ public: UINT8 drawmode_table[16]; int debugsprites; int show_unknown; + UINT16 *spriteram; }; diff --git a/src/mame/includes/clshroad.h b/src/mame/includes/clshroad.h index 23a8fd922a9..312cabaa7bf 100644 --- a/src/mame/includes/clshroad.h +++ b/src/mame/includes/clshroad.h @@ -10,6 +10,8 @@ public: tilemap_t *tilemap_0a; tilemap_t *tilemap_0b; tilemap_t *tilemap_1; + UINT8 *spriteram; + size_t spriteram_size; }; diff --git a/src/mame/includes/darkmist.h b/src/mame/includes/darkmist.h index ede6bd7b49f..18ff45d312c 100644 --- a/src/mame/includes/darkmist.h +++ b/src/mame/includes/darkmist.h @@ -12,6 +12,8 @@ public: tilemap_t *bgtilemap; tilemap_t *fgtilemap; tilemap_t *txtilemap; + UINT8 *spriteram; + size_t spriteram_size; }; diff --git a/src/mame/includes/dcon.h b/src/mame/includes/dcon.h index 64d0bf0bcc0..ffbda5c3d93 100644 --- a/src/mame/includes/dcon.h +++ b/src/mame/includes/dcon.h @@ -16,6 +16,8 @@ public: UINT16 enable; int gfx_bank_select; int last_gfx_bank; + UINT16 *spriteram; + size_t spriteram_size; }; diff --git a/src/mame/includes/deadang.h b/src/mame/includes/deadang.h index bd72972581d..1b8500fde4c 100644 --- a/src/mame/includes/deadang.h +++ b/src/mame/includes/deadang.h @@ -13,6 +13,7 @@ public: tilemap_t *text_layer; int deadangle_tilebank; int deadangle_oldtilebank; + UINT16 *spriteram; }; diff --git a/src/mame/includes/deco_mlc.h b/src/mame/includes/deco_mlc.h index 6111b9b17f7..1dbbe97a35f 100644 --- a/src/mame/includes/deco_mlc.h +++ b/src/mame/includes/deco_mlc.h @@ -15,6 +15,8 @@ public: UINT32 *mlc_clip_ram; UINT32 colour_mask; UINT32 *mlc_buffered_spriteram; + UINT32 *spriteram; + size_t spriteram_size; }; diff --git a/src/mame/includes/exidy440.h b/src/mame/includes/exidy440.h index bb186b23ff8..fce8836767c 100644 --- a/src/mame/includes/exidy440.h +++ b/src/mame/includes/exidy440.h @@ -29,6 +29,7 @@ public: UINT8 firq_select; UINT8 palettebank_io; UINT8 palettebank_vis; + UINT8 *spriteram; }; diff --git a/src/mame/includes/fantland.h b/src/mame/includes/fantland.h index e311ec9848b..7fcd683c99d 100644 --- a/src/mame/includes/fantland.h +++ b/src/mame/includes/fantland.h @@ -25,6 +25,8 @@ public: device_t *msm2; device_t *msm3; device_t *msm4; + UINT8 *spriteram; + UINT8 *spriteram2; }; diff --git a/src/mame/includes/flower.h b/src/mame/includes/flower.h index 256a8a05ea3..6d0bc5f2668 100644 --- a/src/mame/includes/flower.h +++ b/src/mame/includes/flower.h @@ -1,5 +1,15 @@ #include "devlegcy.h" +class flower_state : public driver_device +{ +public: + flower_state(running_machine &machine, const driver_device_config_base &config) + : driver_device(machine, config) { } + + UINT8 *spriteram; +}; + + /*----------- defined in audio/flower.c -----------*/ WRITE8_DEVICE_HANDLER( flower_sound1_w ); diff --git a/src/mame/includes/foodf.h b/src/mame/includes/foodf.h index 2f2bb9ed65d..aee4cc0a00f 100644 --- a/src/mame/includes/foodf.h +++ b/src/mame/includes/foodf.h @@ -22,6 +22,7 @@ public: UINT8 playfield_flip; UINT8 whichport; + UINT16 *spriteram; }; diff --git a/src/mame/includes/galastrm.h b/src/mame/includes/galastrm.h index 4582cc5bca2..b938224a420 100644 --- a/src/mame/includes/galastrm.h +++ b/src/mame/includes/galastrm.h @@ -33,6 +33,8 @@ public: int rsyb; int rsxoffs; int rsyoffs; + UINT32 *spriteram; + size_t spriteram_size; }; diff --git a/src/mame/includes/galpanic.h b/src/mame/includes/galpanic.h index 41caff51a3c..8307a9dcf03 100644 --- a/src/mame/includes/galpanic.h +++ b/src/mame/includes/galpanic.h @@ -8,6 +8,8 @@ public: UINT16 *fgvideoram; size_t fgvideoram_size; bitmap_t *sprites_bitmap; + UINT16 *spriteram; + size_t spriteram_size; }; diff --git a/src/mame/includes/gladiatr.h b/src/mame/includes/gladiatr.h index b85b4e38072..0fa343e366e 100644 --- a/src/mame/includes/gladiatr.h +++ b/src/mame/includes/gladiatr.h @@ -24,6 +24,7 @@ public: tilemap_t *bg_tilemap; int fg_tile_bank; int bg_tile_bank; + UINT8 *spriteram; }; /*----------- defined in video/gladiatr.c -----------*/ diff --git a/src/mame/includes/gottlieb.h b/src/mame/includes/gottlieb.h index a8c91582880..01c83be3b8c 100644 --- a/src/mame/includes/gottlieb.h +++ b/src/mame/includes/gottlieb.h @@ -57,6 +57,7 @@ public: UINT8 transparent0; tilemap_t *bg_tilemap; double weights[4]; + UINT8 *spriteram; }; diff --git a/src/mame/includes/gridlee.h b/src/mame/includes/gridlee.h index cdfae0f8887..ee2345ffa3f 100644 --- a/src/mame/includes/gridlee.h +++ b/src/mame/includes/gridlee.h @@ -39,6 +39,7 @@ public: UINT8 cocktail_flip; UINT8 *local_videoram; UINT8 palettebank_vis; + UINT8 *spriteram; }; diff --git a/src/mame/includes/groundfx.h b/src/mame/includes/groundfx.h index d3622350aac..fd9938e45b3 100644 --- a/src/mame/includes/groundfx.h +++ b/src/mame/includes/groundfx.h @@ -21,6 +21,8 @@ public: struct tempsprite *spritelist; UINT16 rotate_ctrl[8]; rectangle hack_cliprect; + UINT32 *spriteram; + size_t spriteram_size; }; diff --git a/src/mame/includes/gunbustr.h b/src/mame/includes/gunbustr.h index e35f14121fa..d1ea9734b01 100644 --- a/src/mame/includes/gunbustr.h +++ b/src/mame/includes/gunbustr.h @@ -18,6 +18,8 @@ public: UINT32 *ram; struct tempsprite *spritelist; UINT32 mem[2]; + UINT32 *spriteram; + size_t spriteram_size; }; diff --git a/src/mame/includes/lordgun.h b/src/mame/includes/lordgun.h index d7dab5f262c..0e9e58434f4 100644 --- a/src/mame/includes/lordgun.h +++ b/src/mame/includes/lordgun.h @@ -41,6 +41,8 @@ public: tilemap_t *tilemap_2; tilemap_t *tilemap_3; bitmap_t *bitmaps[5]; + UINT16 *spriteram; + size_t spriteram_size; }; diff --git a/src/mame/includes/magmax.h b/src/mame/includes/magmax.h index 65c6df4ba51..8d14d9ea0b8 100644 --- a/src/mame/includes/magmax.h +++ b/src/mame/includes/magmax.h @@ -15,6 +15,8 @@ public: UINT16 *scroll_y; int flipscreen; UINT32 *prom_tab; + UINT16 *spriteram; + size_t spriteram_size; }; diff --git a/src/mame/includes/mcr3.h b/src/mame/includes/mcr3.h index 5a5d90b6b9d..6da8b50e4e0 100644 --- a/src/mame/includes/mcr3.h +++ b/src/mame/includes/mcr3.h @@ -5,6 +5,8 @@ public: : driver_device(machine, config) { } UINT8 *videoram; + UINT8 *spriteram; + size_t spriteram_size; }; diff --git a/src/mame/includes/mcr68.h b/src/mame/includes/mcr68.h index 350228fa942..586ea44789d 100644 --- a/src/mame/includes/mcr68.h +++ b/src/mame/includes/mcr68.h @@ -37,6 +37,8 @@ public: attotime m6840_internal_counter_period; tilemap_t *bg_tilemap; tilemap_t *fg_tilemap; + UINT16 *spriteram; + size_t spriteram_size; }; diff --git a/src/mame/includes/meadows.h b/src/mame/includes/meadows.h index ed24458fc92..6f5d966abef 100644 --- a/src/mame/includes/meadows.h +++ b/src/mame/includes/meadows.h @@ -28,6 +28,7 @@ public: UINT8 _0c02; UINT8 _0c03; tilemap_t *bg_tilemap; + UINT8 *spriteram; }; diff --git a/src/mame/includes/megasys1.h b/src/mame/includes/megasys1.h index c1361742050..2ca9de2b208 100644 --- a/src/mame/includes/megasys1.h +++ b/src/mame/includes/megasys1.h @@ -20,6 +20,16 @@ ***************************************************************************/ +class megasys1_state : public driver_device +{ +public: + megasys1_state(running_machine &machine, const driver_device_config_base &config) + : driver_device(machine, config) { } + + UINT16 *spriteram; +}; + + /*----------- defined in video/megasys1.c -----------*/ /* Variables */ diff --git a/src/mame/includes/mustache.h b/src/mame/includes/mustache.h index 3c6ab9d464e..2ecb9d0b560 100644 --- a/src/mame/includes/mustache.h +++ b/src/mame/includes/mustache.h @@ -8,6 +8,8 @@ public: emu_timer *clear_irq_timer; tilemap_t *bg_tilemap; int control_byte; + UINT8 *spriteram; + size_t spriteram_size; }; diff --git a/src/mame/includes/mystwarr.h b/src/mame/includes/mystwarr.h index 617abf11011..92bb13ed901 100644 --- a/src/mame/includes/mystwarr.h +++ b/src/mame/includes/mystwarr.h @@ -18,6 +18,7 @@ public: int roz_rombank; tilemap_t *ult_936_tilemap; UINT16 clip; + UINT16 *spriteram; }; diff --git a/src/mame/includes/namcona1.h b/src/mame/includes/namcona1.h index 3f45b3d3722..0c3922147df 100644 --- a/src/mame/includes/namcona1.h +++ b/src/mame/includes/namcona1.h @@ -5,6 +5,7 @@ public: : driver_device(machine, config) { } UINT16 *videoram; + UINT16 *spriteram; }; diff --git a/src/mame/includes/namcos22.h b/src/mame/includes/namcos22.h index f8ef2bccb73..2211f905935 100644 --- a/src/mame/includes/namcos22.h +++ b/src/mame/includes/namcos22.h @@ -29,6 +29,16 @@ extern enum namcos22_gametype #define NAMCOS22_PALETTE_SIZE 0x8000 +class namcos22_state : public driver_device +{ +public: + namcos22_state(running_machine &machine, const driver_device_config_base &config) + : driver_device(machine, config) { } + + UINT32 *spriteram; +}; + + /*----------- defined in video/namcos22.c -----------*/ extern UINT32 *namcos22_cgram; diff --git a/src/mame/includes/namcos86.h b/src/mame/includes/namcos86.h index b63d32d2c75..b509b7e1bf5 100644 --- a/src/mame/includes/namcos86.h +++ b/src/mame/includes/namcos86.h @@ -1,3 +1,13 @@ +class namcos86_state : public driver_device +{ +public: + namcos86_state(running_machine &machine, const driver_device_config_base &config) + : driver_device(machine, config) { } + + UINT8 *spriteram; +}; + + /*----------- defined in video/namcos86.c -----------*/ extern UINT8 *rthunder_videoram1, *rthunder_videoram2, *rthunder_spriteram; diff --git a/src/mame/includes/ninjakd2.h b/src/mame/includes/ninjakd2.h index 1f28212ded8..263af5afa8b 100644 --- a/src/mame/includes/ninjakd2.h +++ b/src/mame/includes/ninjakd2.h @@ -27,6 +27,7 @@ public: UINT8* robokid_bg0_videoram; UINT8* robokid_bg1_videoram; UINT8* robokid_bg2_videoram; + UINT8 *spriteram; }; diff --git a/src/mame/includes/nmk16.h b/src/mame/includes/nmk16.h index 63d201bda26..855da9814ad 100644 --- a/src/mame/includes/nmk16.h +++ b/src/mame/includes/nmk16.h @@ -35,6 +35,8 @@ public: UINT8 scroll[4]; UINT8 scroll_2[4]; UINT16 vscroll[4]; + UINT8 *spriteram; + size_t spriteram_size; }; diff --git a/src/mame/includes/nova2001.h b/src/mame/includes/nova2001.h index f8f4eb8368e..3306068d7c2 100644 --- a/src/mame/includes/nova2001.h +++ b/src/mame/includes/nova2001.h @@ -9,6 +9,7 @@ public: UINT8 *bg_videoram; tilemap_t *bg_tilemap; tilemap_t *fg_tilemap; + UINT8 *spriteram; }; diff --git a/src/mame/includes/pcktgal.h b/src/mame/includes/pcktgal.h index 94790915411..b1908c91fb8 100644 --- a/src/mame/includes/pcktgal.h +++ b/src/mame/includes/pcktgal.h @@ -8,6 +8,8 @@ public: int msm5205next; int toggle; tilemap_t *bg_tilemap; + UINT8 *spriteram; + size_t spriteram_size; }; diff --git a/src/mame/includes/pingpong.h b/src/mame/includes/pingpong.h index aa4c336571e..180411d5e44 100644 --- a/src/mame/includes/pingpong.h +++ b/src/mame/includes/pingpong.h @@ -9,6 +9,8 @@ public: UINT8 *videoram; UINT8 *colorram; tilemap_t *bg_tilemap; + UINT8 *spriteram; + size_t spriteram_size; }; diff --git a/src/mame/includes/pitnrun.h b/src/mame/includes/pitnrun.h index 0e74035e25f..2ff11599812 100644 --- a/src/mame/includes/pitnrun.h +++ b/src/mame/includes/pitnrun.h @@ -23,6 +23,8 @@ public: bitmap_t *tmp_bitmap[4]; tilemap_t *bg; tilemap_t *fg; + UINT8 *spriteram; + size_t spriteram_size; }; diff --git a/src/mame/includes/pokechmp.h b/src/mame/includes/pokechmp.h index 23da86c4b50..642025dd72e 100644 --- a/src/mame/includes/pokechmp.h +++ b/src/mame/includes/pokechmp.h @@ -6,6 +6,8 @@ public: UINT8 *videoram; tilemap_t *bg_tilemap; + UINT8 *spriteram; + size_t spriteram_size; }; diff --git a/src/mame/includes/popeye.h b/src/mame/includes/popeye.h index 8781a552295..85b362d5fcc 100644 --- a/src/mame/includes/popeye.h +++ b/src/mame/includes/popeye.h @@ -18,6 +18,8 @@ public: UINT8 bitmap_type; tilemap_t *fg_tilemap; UINT8 lastflip; + UINT8 *spriteram; + size_t spriteram_size; }; diff --git a/src/mame/includes/portrait.h b/src/mame/includes/portrait.h index 4f8860785e7..61ad92b9781 100644 --- a/src/mame/includes/portrait.h +++ b/src/mame/includes/portrait.h @@ -9,6 +9,8 @@ public: int scroll; tilemap_t *foreground; tilemap_t *background; + UINT8 *spriteram; + size_t spriteram_size; }; diff --git a/src/mame/includes/powerins.h b/src/mame/includes/powerins.h index 285cd11dbf8..76d370b07e6 100644 --- a/src/mame/includes/powerins.h +++ b/src/mame/includes/powerins.h @@ -12,6 +12,7 @@ public: tilemap_t *tilemap_0; tilemap_t *tilemap_1; int tile_bank; + UINT16 *spriteram; }; diff --git a/src/mame/includes/psikyo.h b/src/mame/includes/psikyo.h index a0a2f6925bb..e3dbf5538bf 100644 --- a/src/mame/includes/psikyo.h +++ b/src/mame/includes/psikyo.h @@ -26,6 +26,8 @@ public: tilemap_t *tilemap_1_size0, *tilemap_1_size1, *tilemap_1_size2, *tilemap_1_size3; int tilemap_0_bank, tilemap_1_bank; int ka302c_banking; + UINT32 *spriteram; + size_t spriteram_size; /* misc */ UINT8 soundlatch; diff --git a/src/mame/includes/psychic5.h b/src/mame/includes/psychic5.h index f333d7e25dc..bef480936c1 100644 --- a/src/mame/includes/psychic5.h +++ b/src/mame/includes/psychic5.h @@ -24,6 +24,8 @@ public: int sx1; int sy1; int sy2; + UINT8 *spriteram; + size_t spriteram_size; }; diff --git a/src/mame/includes/quizdna.h b/src/mame/includes/quizdna.h index 03264dcb3f1..b2cd4a1bcc9 100644 --- a/src/mame/includes/quizdna.h +++ b/src/mame/includes/quizdna.h @@ -11,6 +11,8 @@ public: UINT8 bg_xscroll[2]; int flipscreen; int video_enable; + UINT8 *spriteram; + size_t spriteram_size; }; diff --git a/src/mame/includes/realbrk.h b/src/mame/includes/realbrk.h index 4a565485557..ac0098b4505 100644 --- a/src/mame/includes/realbrk.h +++ b/src/mame/includes/realbrk.h @@ -18,6 +18,7 @@ public: tilemap_t *tilemap_0; tilemap_t *tilemap_1; tilemap_t *tilemap_2; + UINT16 *spriteram; }; diff --git a/src/mame/includes/renegade.h b/src/mame/includes/renegade.h index cdc766a24fb..6078b28384d 100644 --- a/src/mame/includes/renegade.h +++ b/src/mame/includes/renegade.h @@ -34,6 +34,7 @@ public: INT32 scrollx; tilemap_t *bg_tilemap; tilemap_t *fg_tilemap; + UINT8 *spriteram; }; diff --git a/src/mame/includes/rollrace.h b/src/mame/includes/rollrace.h index a6ee42d1104..c131fa7e265 100644 --- a/src/mame/includes/rollrace.h +++ b/src/mame/includes/rollrace.h @@ -15,6 +15,8 @@ public: int ra_flipy; int ra_flipx; int ra_spritebank; + UINT8 *spriteram; + size_t spriteram_size; }; diff --git a/src/mame/includes/rpunch.h b/src/mame/includes/rpunch.h index cd5b9d63007..7f153fb565d 100644 --- a/src/mame/includes/rpunch.h +++ b/src/mame/includes/rpunch.h @@ -18,6 +18,7 @@ public: emu_timer *crtc_timer; UINT8 bins; UINT8 gins; + UINT16 *spriteram; }; diff --git a/src/mame/includes/shangkid.h b/src/mame/includes/shangkid.h index 9af00cc2781..6ac114f632f 100644 --- a/src/mame/includes/shangkid.h +++ b/src/mame/includes/shangkid.h @@ -5,6 +5,7 @@ public: : driver_device(machine, config) { } UINT8 *videoram; + UINT8 *spriteram; }; diff --git a/src/mame/includes/simpl156.h b/src/mame/includes/simpl156.h index 71230c7805e..8bdbb377af4 100644 --- a/src/mame/includes/simpl156.h +++ b/src/mame/includes/simpl156.h @@ -23,6 +23,8 @@ public: UINT16 * pf2_rowscroll; UINT32 * mainram; UINT32 * systemram; + UINT32 *spriteram; + size_t spriteram_size; /* devices */ required_device maincpu; diff --git a/src/mame/includes/spdodgeb.h b/src/mame/includes/spdodgeb.h index 7e05bad67af..67f96f0c4cb 100644 --- a/src/mame/includes/spdodgeb.h +++ b/src/mame/includes/spdodgeb.h @@ -27,6 +27,8 @@ public: int sprite_palbank; tilemap_t *bg_tilemap; int lastscroll; + UINT8 *spriteram; + size_t spriteram_size; }; diff --git a/src/mame/includes/speedbal.h b/src/mame/includes/speedbal.h index 643bc9d09f1..25f9a843552 100644 --- a/src/mame/includes/speedbal.h +++ b/src/mame/includes/speedbal.h @@ -8,6 +8,8 @@ public: UINT8 *foreground_videoram; tilemap_t *bg_tilemap; tilemap_t *fg_tilemap; + UINT8 *spriteram; + size_t spriteram_size; }; diff --git a/src/mame/includes/stadhero.h b/src/mame/includes/stadhero.h index 938875e0cbf..6c818329480 100644 --- a/src/mame/includes/stadhero.h +++ b/src/mame/includes/stadhero.h @@ -11,6 +11,7 @@ public: tilemap_t *pf1_tilemap; tilemap_t *pf2_tilemap; int flipscreen; + UINT16 *spriteram; }; diff --git a/src/mame/includes/strnskil.h b/src/mame/includes/strnskil.h index c42707018df..934a5c9f978 100644 --- a/src/mame/includes/strnskil.h +++ b/src/mame/includes/strnskil.h @@ -8,6 +8,8 @@ public: UINT8 *xscroll; UINT8 scrl_ctrl; tilemap_t *bg_tilemap; + UINT8 *spriteram; + size_t spriteram_size; }; diff --git a/src/mame/includes/superchs.h b/src/mame/includes/superchs.h index 188beacf1b6..dc803576b90 100644 --- a/src/mame/includes/superchs.h +++ b/src/mame/includes/superchs.h @@ -20,6 +20,8 @@ public: int steer; struct tempsprite *spritelist; UINT32 mem[2]; + UINT32 *spriteram; + size_t spriteram_size; }; diff --git a/src/mame/includes/superqix.h b/src/mame/includes/superqix.h index f7cd04f0e00..28e52f45d2c 100644 --- a/src/mame/includes/superqix.h +++ b/src/mame/includes/superqix.h @@ -30,6 +30,8 @@ public: int show_bitmap; tilemap_t *bg_tilemap; int last_power[2]; + UINT8 *spriteram; + size_t spriteram_size; }; diff --git a/src/mame/includes/suprloco.h b/src/mame/includes/suprloco.h index 034fb5a062c..10da30163fe 100644 --- a/src/mame/includes/suprloco.h +++ b/src/mame/includes/suprloco.h @@ -8,6 +8,8 @@ public: UINT8 *scrollram; tilemap_t *bg_tilemap; int control; + UINT8 *spriteram; + size_t spriteram_size; }; diff --git a/src/mame/includes/suprridr.h b/src/mame/includes/suprridr.h index 3a044071c96..17755f38bd7 100644 --- a/src/mame/includes/suprridr.h +++ b/src/mame/includes/suprridr.h @@ -19,6 +19,7 @@ public: tilemap_t *bg_tilemap_noscroll; UINT8 flipx; UINT8 flipy; + UINT8 *spriteram; }; diff --git a/src/mame/includes/system1.h b/src/mame/includes/system1.h index e935d38fdab..fde3b9dcd62 100644 --- a/src/mame/includes/system1.h +++ b/src/mame/includes/system1.h @@ -24,6 +24,7 @@ public: UINT8 videoram_bank; tilemap_t *tilemap_page[8]; UINT8 tilemap_pages; + UINT8 *spriteram; }; diff --git a/src/mame/includes/taito_f3.h b/src/mame/includes/taito_f3.h index 94957783ce9..92097957cd8 100644 --- a/src/mame/includes/taito_f3.h +++ b/src/mame/includes/taito_f3.h @@ -46,6 +46,8 @@ public: : driver_device(machine, config) { } UINT32 *videoram; + UINT32 *spriteram; + size_t spriteram_size; }; diff --git a/src/mame/includes/tankbust.h b/src/mame/includes/tankbust.h index c1cfc4e565f..ca2b57dd77f 100644 --- a/src/mame/includes/tankbust.h +++ b/src/mame/includes/tankbust.h @@ -15,6 +15,8 @@ public: tilemap_t *txt_tilemap; UINT8 xscroll[2]; UINT8 yscroll[2]; + UINT8 *spriteram; + size_t spriteram_size; }; diff --git a/src/mame/includes/tatsumi.h b/src/mame/includes/tatsumi.h index bdba61cca80..93173b1fc73 100644 --- a/src/mame/includes/tatsumi.h +++ b/src/mame/includes/tatsumi.h @@ -47,6 +47,7 @@ public: UINT8 roundupt_crt_selected_reg; UINT8 roundupt_crt_reg[64]; UINT8* shadow_pen_array; + UINT16 *spriteram; }; diff --git a/src/mame/includes/tecmo.h b/src/mame/includes/tecmo.h index 29b69a74647..ad42ee45f40 100644 --- a/src/mame/includes/tecmo.h +++ b/src/mame/includes/tecmo.h @@ -16,6 +16,8 @@ public: tilemap_t *bg_tilemap; UINT8 fgscroll[3]; UINT8 bgscroll[3]; + UINT8 *spriteram; + size_t spriteram_size; }; diff --git a/src/mame/includes/tecmo16.h b/src/mame/includes/tecmo16.h index 88383a84fbe..bdd219f9631 100644 --- a/src/mame/includes/tecmo16.h +++ b/src/mame/includes/tecmo16.h @@ -23,6 +23,8 @@ public: UINT16 scroll2_y_w; UINT16 scroll_char_x_w; UINT16 scroll_char_y_w; + UINT16 *spriteram; + size_t spriteram_size; }; diff --git a/src/mame/includes/tehkanwc.h b/src/mame/includes/tehkanwc.h index f82ff007e48..04f2f7984cf 100644 --- a/src/mame/includes/tehkanwc.h +++ b/src/mame/includes/tehkanwc.h @@ -16,6 +16,8 @@ public: UINT8 led1; tilemap_t *bg_tilemap; tilemap_t *fg_tilemap; + UINT8 *spriteram; + size_t spriteram_size; }; diff --git a/src/mame/includes/terracre.h b/src/mame/includes/terracre.h index fd131bdb527..efeeef415d0 100644 --- a/src/mame/includes/terracre.h +++ b/src/mame/includes/terracre.h @@ -13,6 +13,7 @@ public: UINT16 yscroll; tilemap_t *background; tilemap_t *foreground; + UINT16 *spriteram; }; diff --git a/src/mame/includes/thedeep.h b/src/mame/includes/thedeep.h index dfa52d8b5a3..1ec6868a027 100644 --- a/src/mame/includes/thedeep.h +++ b/src/mame/includes/thedeep.h @@ -1,3 +1,14 @@ +class thedeep_state : public driver_device +{ +public: + thedeep_state(running_machine &machine, const driver_device_config_base &config) + : driver_device(machine, config) { } + + UINT8 *spriteram; + size_t spriteram_size; +}; + + /*----------- defined in video/thedeep.c -----------*/ extern UINT8 *thedeep_vram_0, *thedeep_vram_1; diff --git a/src/mame/includes/timelimt.h b/src/mame/includes/timelimt.h index 89cb452d84b..d808ae6bf56 100644 --- a/src/mame/includes/timelimt.h +++ b/src/mame/includes/timelimt.h @@ -12,6 +12,8 @@ public: int scrolly; tilemap_t *bg_tilemap; tilemap_t *fg_tilemap; + UINT8 *spriteram; + size_t spriteram_size; }; diff --git a/src/mame/includes/tmnt.h b/src/mame/includes/tmnt.h index 6ea7d9c55a8..2ba6d488714 100644 --- a/src/mame/includes/tmnt.h +++ b/src/mame/includes/tmnt.h @@ -12,6 +12,7 @@ public: // UINT16 * paletteram; // currently this uses generic palette handling // UINT8 * nvram; // currently cuebrick uses generic nvram handling // UINT8 * cuebrick_nvram; + UINT16 *spriteram; /* video-related */ int layer_colorbase[3], sprite_colorbase; diff --git a/src/mame/includes/tryout.h b/src/mame/includes/tryout.h index 2d75f6e05b1..0b6d509355c 100644 --- a/src/mame/includes/tryout.h +++ b/src/mame/includes/tryout.h @@ -11,6 +11,8 @@ public: UINT8 vram_bank; UINT8 *vram; UINT8 *vram_gfx; + UINT8 *spriteram; + UINT8 *spriteram2; }; diff --git a/src/mame/includes/tsamurai.h b/src/mame/includes/tsamurai.h index 953e652e4b1..29ea6cccf07 100644 --- a/src/mame/includes/tsamurai.h +++ b/src/mame/includes/tsamurai.h @@ -20,6 +20,7 @@ public: int flicker; int vsgongf_color; int key_count; + UINT8 *spriteram; }; diff --git a/src/mame/includes/undrfire.h b/src/mame/includes/undrfire.h index a60d90c6079..a514d3413bc 100644 --- a/src/mame/includes/undrfire.h +++ b/src/mame/includes/undrfire.h @@ -22,6 +22,8 @@ public: struct tempsprite *spritelist; UINT16 rotate_ctrl[8]; UINT8 dislayer[6]; + UINT32 *spriteram; + size_t spriteram_size; }; diff --git a/src/mame/includes/unico.h b/src/mame/includes/unico.h index 33fee35bfea..98ac37cf69b 100644 --- a/src/mame/includes/unico.h +++ b/src/mame/includes/unico.h @@ -11,6 +11,8 @@ public: tilemap_t *tilemap[3]; int sprites_scrolldx; int sprites_scrolldy; + UINT16 *spriteram; + size_t spriteram_size; }; diff --git a/src/mame/includes/vball.h b/src/mame/includes/vball.h index 6f3bba4cdc2..33b92a10914 100644 --- a/src/mame/includes/vball.h +++ b/src/mame/includes/vball.h @@ -15,6 +15,8 @@ public: int vb_bgprombank; int vb_spprombank; tilemap_t *bg_tilemap; + UINT8 *spriteram; + size_t spriteram_size; }; diff --git a/src/mame/includes/vigilant.h b/src/mame/includes/vigilant.h index cb47b90ae5b..1b708a6bc7e 100644 --- a/src/mame/includes/vigilant.h +++ b/src/mame/includes/vigilant.h @@ -13,6 +13,8 @@ public: int rear_disable; int rear_refresh; bitmap_t *bg_bitmap; + UINT8 *spriteram; + size_t spriteram_size; }; diff --git a/src/mame/includes/vulgus.h b/src/mame/includes/vulgus.h index 38181f32c5e..0106e6d8ac4 100644 --- a/src/mame/includes/vulgus.h +++ b/src/mame/includes/vulgus.h @@ -11,6 +11,8 @@ public: int palette_bank; tilemap_t *fg_tilemap; tilemap_t *bg_tilemap; + UINT8 *spriteram; + size_t spriteram_size; }; diff --git a/src/mame/includes/wc90.h b/src/mame/includes/wc90.h index e3a0b7b3e23..c8fa1f0243a 100644 --- a/src/mame/includes/wc90.h +++ b/src/mame/includes/wc90.h @@ -22,6 +22,8 @@ public: tilemap_t *tx_tilemap; tilemap_t *fg_tilemap; tilemap_t *bg_tilemap; + UINT8 *spriteram; + size_t spriteram_size; }; diff --git a/src/mame/includes/wc90b.h b/src/mame/includes/wc90b.h index 69ef1e860b7..3b5b8f9aecb 100644 --- a/src/mame/includes/wc90b.h +++ b/src/mame/includes/wc90b.h @@ -17,6 +17,8 @@ public: tilemap_t *tx_tilemap; tilemap_t *fg_tilemap; tilemap_t *bg_tilemap; + UINT8 *spriteram; + size_t spriteram_size; }; diff --git a/src/mame/includes/wecleman.h b/src/mame/includes/wecleman.h index ba580f28256..1aaacdd139f 100644 --- a/src/mame/includes/wecleman.h +++ b/src/mame/includes/wecleman.h @@ -36,6 +36,7 @@ public: pen_t black_pen; struct sprite *sprite_list; struct sprite **spr_ptr_list; + UINT16 *spriteram; }; diff --git a/src/mame/includes/wiping.h b/src/mame/includes/wiping.h index 9e8d91c623e..e921c8e4da1 100644 --- a/src/mame/includes/wiping.h +++ b/src/mame/includes/wiping.h @@ -10,6 +10,8 @@ public: UINT8 *colorram; int flipscreen; UINT8 *soundregs; + UINT8 *spriteram; + size_t spriteram_size; }; diff --git a/src/mame/includes/wiz.h b/src/mame/includes/wiz.h index 95a3b709e2a..a1f60badfc7 100644 --- a/src/mame/includes/wiz.h +++ b/src/mame/includes/wiz.h @@ -18,6 +18,9 @@ public: UINT8 char_bank[2]; UINT8 palbank[2]; int palette_bank; + UINT8 *spriteram; + UINT8 *spriteram2; + size_t spriteram_size; }; diff --git a/src/mame/includes/xain.h b/src/mame/includes/xain.h index c8f171e644f..b5f2ce2c84d 100644 --- a/src/mame/includes/xain.h +++ b/src/mame/includes/xain.h @@ -29,6 +29,8 @@ public: UINT8 scrollyP0[2]; UINT8 scrollxP1[2]; UINT8 scrollyP1[2]; + UINT8 *spriteram; + size_t spriteram_size; }; diff --git a/src/mame/includes/xorworld.h b/src/mame/includes/xorworld.h index 1509adbbf24..0468e557b5d 100644 --- a/src/mame/includes/xorworld.h +++ b/src/mame/includes/xorworld.h @@ -6,6 +6,7 @@ public: UINT16 *videoram; tilemap_t *bg_tilemap; + UINT16 *spriteram; }; diff --git a/src/mame/includes/zaccaria.h b/src/mame/includes/zaccaria.h index 7fa40ca35e2..8a69ac0b0ef 100644 --- a/src/mame/includes/zaccaria.h +++ b/src/mame/includes/zaccaria.h @@ -13,6 +13,8 @@ public: UINT8 *videoram; UINT8 *attributesram; tilemap_t *bg_tilemap; + UINT8 *spriteram; + UINT8 *spriteram2; }; diff --git a/src/mame/video/argus.c b/src/mame/video/argus.c index 6b7a0fde27d..6cb377d9755 100644 --- a/src/mame/video/argus.c +++ b/src/mame/video/argus.c @@ -855,11 +855,11 @@ static void argus_bg0_scroll_handle(running_machine *machine) static void argus_draw_sprites(running_machine *machine, bitmap_t *bitmap, const rectangle *cliprect, int priority) { argus_state *state = machine->driver_data(); - UINT8 *spriteram = machine->generic.spriteram.u8; + UINT8 *spriteram = state->spriteram; int offs; /* Draw the sprites */ - for (offs = 0; offs < machine->generic.spriteram_size; offs += 16) + for (offs = 0; offs < state->spriteram_size; offs += 16) { if (!(spriteram[offs+15] == 0 && spriteram[offs+11] == 0xf0)) { @@ -988,11 +988,11 @@ static void valtric_draw_mosaic(screen_device &screen, bitmap_t *bitmap, const r static void valtric_draw_sprites(running_machine *machine, bitmap_t *bitmap, const rectangle *cliprect) { argus_state *state = machine->driver_data(); - UINT8 *spriteram = machine->generic.spriteram.u8; + UINT8 *spriteram = state->spriteram; int offs; /* Draw the sprites */ - for (offs = 0; offs < machine->generic.spriteram_size; offs += 16) + for (offs = 0; offs < state->spriteram_size; offs += 16) { if (!(spriteram[offs+15] == 0 && spriteram[offs+11] == 0xf0)) { @@ -1028,11 +1028,11 @@ static void valtric_draw_sprites(running_machine *machine, bitmap_t *bitmap, con static void butasan_draw_sprites(running_machine *machine, bitmap_t *bitmap, const rectangle *cliprect) { argus_state *state = machine->driver_data(); - UINT8 *spriteram = machine->generic.spriteram.u8; + UINT8 *spriteram = state->spriteram; int offs; /* Draw the sprites */ - for (offs = 0; offs < machine->generic.spriteram_size; offs += 16) + for (offs = 0; offs < state->spriteram_size; offs += 16) { int sx, sy, tile, flipx, flipy, color; int fx, fy; @@ -1144,12 +1144,12 @@ static void butasan_log_vram(running_machine *machine) if (input_code_pressed(machine, KEYCODE_M)) { - UINT8 *spriteram = machine->generic.spriteram.u8; + UINT8 *spriteram = state->spriteram; int i; logerror("\nSprite RAM\n"); logerror("---------------------------------------\n"); logerror(" +0 +1 +2 +3 +4 +5 +6 +7 +8 +9 +a +b +c +d +e +f\n"); - for (offs = 0; offs < machine->generic.spriteram_size; offs += 16) + for (offs = 0; offs < state->spriteram_size; offs += 16) { for (i = 0; i < 16; i++) { diff --git a/src/mame/video/bagman.c b/src/mame/video/bagman.c index e16d29c30ae..50c1b3a0ef1 100644 --- a/src/mame/video/bagman.c +++ b/src/mame/video/bagman.c @@ -113,10 +113,11 @@ VIDEO_START( bagman ) static void draw_sprites(running_machine *machine, bitmap_t *bitmap, const rectangle *cliprect) { - UINT8 *spriteram = machine->generic.spriteram.u8; + bagman_state *state = machine->driver_data(); + UINT8 *spriteram = state->spriteram; int offs; - for (offs = machine->generic.spriteram_size - 4;offs >= 0;offs -= 4) + for (offs = state->spriteram_size - 4;offs >= 0;offs -= 4) { int sx,sy,flipx,flipy; diff --git a/src/mame/video/balsente.c b/src/mame/video/balsente.c index 65c9ca4faa8..0a60eac6998 100644 --- a/src/mame/video/balsente.c +++ b/src/mame/video/balsente.c @@ -222,7 +222,7 @@ SCREEN_UPDATE( balsente ) /* draw the sprite images */ for (i = 0; i < 40; i++) - draw_one_sprite(screen->machine, bitmap, cliprect, &screen->machine->generic.spriteram.u8[(0xe0 + i * 4) & 0xff]); + draw_one_sprite(screen->machine, bitmap, cliprect, &state->spriteram[(0xe0 + i * 4) & 0xff]); return 0; } diff --git a/src/mame/video/bloodbro.c b/src/mame/video/bloodbro.c index 2bfb12a041e..96c1c07a49b 100644 --- a/src/mame/video/bloodbro.c +++ b/src/mame/video/bloodbro.c @@ -147,9 +147,10 @@ WRITE16_HANDLER( bloodbro_txvideoram_w ) static void bloodbro_draw_sprites(running_machine *machine, bitmap_t *bitmap, const rectangle *cliprect) { - UINT16 *spriteram16 = machine->generic.spriteram.u16; + bloodbro_state *state = machine->driver_data(); + UINT16 *spriteram16 = state->spriteram; int offs; - for (offs = 0;offs < machine->generic.spriteram_size/2;offs += 4) + for (offs = 0;offs < state->spriteram_size/2;offs += 4) { int sx,sy,x,y,width,height,attributes,tile_number,color,flipx,flipy,pri_mask; @@ -195,11 +196,12 @@ static void bloodbro_draw_sprites(running_machine *machine, bitmap_t *bitmap, co static void weststry_draw_sprites(running_machine *machine, bitmap_t *bitmap, const rectangle *cliprect) { - UINT16 *spriteram16 = machine->generic.spriteram.u16; + bloodbro_state *state = machine->driver_data(); + UINT16 *spriteram16 = state->spriteram; int offs; /* TODO: the last two entries are not sprites - control registers? */ - for (offs = 0;offs < machine->generic.spriteram_size/2 - 8;offs += 4) + for (offs = 0;offs < state->spriteram_size/2 - 8;offs += 4) { int data = spriteram16[offs+2]; int data0 = spriteram16[offs+0]; diff --git a/src/mame/video/centiped.c b/src/mame/video/centiped.c index e718d60ee71..db193a7bcab 100644 --- a/src/mame/video/centiped.c +++ b/src/mame/video/centiped.c @@ -432,7 +432,7 @@ WRITE8_HANDLER( mazeinv_paletteram_w ) SCREEN_UPDATE( centiped ) { centiped_state *state = screen->machine->driver_data(); - UINT8 *spriteram = screen->machine->generic.spriteram.u8; + UINT8 *spriteram = state->spriteram; rectangle spriteclip = *cliprect; int offs; @@ -464,7 +464,7 @@ SCREEN_UPDATE( centiped ) SCREEN_UPDATE( warlords ) { centiped_state *state = screen->machine->driver_data(); - UINT8 *spriteram = screen->machine->generic.spriteram.u8; + UINT8 *spriteram = state->spriteram; int upright_mode = input_port_read(screen->machine, "IN0") & 0x80; int offs; @@ -510,7 +510,7 @@ SCREEN_UPDATE( warlords ) SCREEN_UPDATE( bullsdrt ) { centiped_state *state = screen->machine->driver_data(); - UINT8 *spriteram = screen->machine->generic.spriteram.u8; + UINT8 *spriteram = state->spriteram; rectangle spriteclip = *cliprect; int offs; @@ -545,7 +545,7 @@ SCREEN_UPDATE( bullsdrt ) SCREEN_UPDATE( milliped ) { centiped_state *state = screen->machine->driver_data(); - UINT8 *spriteram = screen->machine->generic.spriteram.u8; + UINT8 *spriteram = state->spriteram; rectangle spriteclip = *cliprect; int offs; diff --git a/src/mame/video/cischeat.c b/src/mame/video/cischeat.c index adfec382b37..9f0a9d96d53 100644 --- a/src/mame/video/cischeat.c +++ b/src/mame/video/cischeat.c @@ -237,7 +237,7 @@ VIDEO_START( cischeat ) state->shift_ret = 1; - machine->generic.spriteram.u16 = &state->ram[0x8000/2]; + state->spriteram = &state->ram[0x8000/2]; create_tilemaps(machine); state->tmap[0] = state->tilemap[0][0][0]; @@ -956,7 +956,7 @@ static void cischeat_draw_sprites(running_machine *machine, bitmap_t *bitmap , c int min_priority, max_priority, high_sprites; - UINT16 *source = machine->generic.spriteram.u16; + UINT16 *source = state->spriteram; const UINT16 *finish = source + 0x1000/2; @@ -1112,7 +1112,7 @@ static void bigrun_draw_sprites(running_machine *machine, bitmap_t *bitmap , con int min_priority, max_priority, high_sprites; - UINT16 *source = machine->generic.spriteram.u16; + UINT16 *source = state->spriteram; const UINT16 *finish = source + 0x1000/2; /* Move the priority values in place */ diff --git a/src/mame/video/clshroad.c b/src/mame/video/clshroad.c index e77f7765dc5..d8453b2d9f1 100644 --- a/src/mame/video/clshroad.c +++ b/src/mame/video/clshroad.c @@ -288,10 +288,11 @@ Offset: Format: Value: static void draw_sprites(running_machine *machine, bitmap_t *bitmap, const rectangle *cliprect) { - UINT8 *spriteram = machine->generic.spriteram.u8; + clshroad_state *state = machine->driver_data(); + UINT8 *spriteram = state->spriteram; int i; - for (i = 0; i < machine->generic.spriteram_size ; i += 8) + for (i = 0; i < state->spriteram_size ; i += 8) { int y = 240 - spriteram[i+1]; int code = (spriteram[i+3] & 0x3f) + (spriteram[i+2] << 6); diff --git a/src/mame/video/darkmist.c b/src/mame/video/darkmist.c index 0974a29ec61..c1d99e69eeb 100644 --- a/src/mame/video/darkmist.c +++ b/src/mame/video/darkmist.c @@ -130,7 +130,7 @@ VIDEO_START(darkmist) SCREEN_UPDATE( darkmist) { darkmist_state *state = screen->machine->driver_data(); - UINT8 *spriteram = screen->machine->generic.spriteram.u8; + UINT8 *spriteram = state->spriteram; #define DM_GETSCROLL(n) (((state->scroll[(n)]<<1)&0xff) + ((state->scroll[(n)]&0x80)?1:0) +( ((state->scroll[(n)-1]<<4) | (state->scroll[(n)-1]<<12) )&0xff00)) @@ -163,7 +163,7 @@ SCREEN_UPDATE( darkmist) */ int i,fx,fy,tile,palette; - for(i=0;imachine->generic.spriteram_size;i+=32) + for(i=0;ispriteram_size;i+=32) { fy=spriteram[i+1]&0x40; fx=spriteram[i+1]&0x80; diff --git a/src/mame/video/dcon.c b/src/mame/video/dcon.c index ed36610618c..e2d52e787f5 100644 --- a/src/mame/video/dcon.c +++ b/src/mame/video/dcon.c @@ -153,7 +153,8 @@ VIDEO_START( dcon ) static void draw_sprites(running_machine* machine, bitmap_t *bitmap,const rectangle *cliprect) { - UINT16 *spriteram16 = machine->generic.spriteram.u16; + dcon_state *state = machine->driver_data(); + UINT16 *spriteram16 = state->spriteram; int offs,fx,fy,x,y,color,sprite; int dx,dy,ax,ay,inc,pri_mask = 0; diff --git a/src/mame/video/deadang.c b/src/mame/video/deadang.c index 1da8a531177..70c1281417a 100644 --- a/src/mame/video/deadang.c +++ b/src/mame/video/deadang.c @@ -89,7 +89,8 @@ VIDEO_START( deadang ) static void draw_sprites(running_machine *machine, bitmap_t *bitmap, const rectangle *cliprect) { - UINT16 *spriteram16 = machine->generic.spriteram.u16; + deadang_state *state = machine->driver_data(); + UINT16 *spriteram16 = state->spriteram; int offs,fx,fy,x,y,color,sprite,pri; for (offs = 0; offs<0x800/2; offs+=4) diff --git a/src/mame/video/deco_mlc.c b/src/mame/video/deco_mlc.c index 661fdc5f237..a70b8192757 100644 --- a/src/mame/video/deco_mlc.c +++ b/src/mame/video/deco_mlc.c @@ -517,7 +517,7 @@ SCREEN_EOF( mlc ) lookup table. Without buffering incorrect one frame glitches are seen in several places, especially in Hoops. */ - memcpy(state->mlc_buffered_spriteram, machine->generic.spriteram.u32, 0x3000); + memcpy(state->mlc_buffered_spriteram, state->spriteram, 0x3000); } SCREEN_UPDATE( mlc ) diff --git a/src/mame/video/exidy440.c b/src/mame/video/exidy440.c index 6cb50ce0cd0..604f2bfe026 100644 --- a/src/mame/video/exidy440.c +++ b/src/mame/video/exidy440.c @@ -172,8 +172,9 @@ READ8_HANDLER( exidy440_vertical_pos_r ) WRITE8_HANDLER( exidy440_spriteram_w ) { + exidy440_state *state = space->machine->driver_data(); space->machine->primary_screen->update_partial(space->machine->primary_screen->vpos()); - space->machine->generic.spriteram.u8[offset] = data; + state->spriteram[offset] = data; } @@ -312,7 +313,7 @@ static void draw_sprites(screen_device &screen, bitmap_t *bitmap, const rectangl int count = 0; /* draw the sprite images, checking for collisions along the way */ - UINT8 *sprite = screen.machine->generic.spriteram.u8 + (SPRITE_COUNT - 1) * 4; + UINT8 *sprite = state->spriteram + (SPRITE_COUNT - 1) * 4; for (i = 0; i < SPRITE_COUNT; i++, sprite -= 4) { diff --git a/src/mame/video/fantland.c b/src/mame/video/fantland.c index 4f2dd9fcf98..c304101b503 100644 --- a/src/mame/video/fantland.c +++ b/src/mame/video/fantland.c @@ -63,10 +63,11 @@ static void draw_sprites(running_machine *machine, bitmap_t *bitmap,const rectangle *cliprect) { - UINT8 *spriteram_2 = machine->generic.spriteram2.u8; - UINT8 *indx_ram = machine->generic.spriteram.u8 + 0x2000, // this ram contains indexes into offs_ram - *offs_ram = machine->generic.spriteram.u8 + 0x2400, // this ram contains x,y offsets or indexes into spriteram_2 - *ram = machine->generic.spriteram.u8, // current sprite pointer in spriteram + fantland_state *state = machine->driver_data(); + UINT8 *spriteram_2 = state->spriteram2; + UINT8 *indx_ram = state->spriteram + 0x2000, // this ram contains indexes into offs_ram + *offs_ram = state->spriteram + 0x2400, // this ram contains x,y offsets or indexes into spriteram_2 + *ram = state->spriteram, // current sprite pointer in spriteram *ram2 = indx_ram; // current sprite pointer in indx_ram // wheelrun is the only game with a smaller visible area diff --git a/src/mame/video/flower.c b/src/mame/video/flower.c index b7deca62b3e..6dd2a1b796e 100644 --- a/src/mame/video/flower.c +++ b/src/mame/video/flower.c @@ -30,8 +30,9 @@ PALETTE_INIT( flower ) static void draw_sprites(running_machine *machine, bitmap_t *bitmap, const rectangle *cliprect ) { + flower_state *state = machine->driver_data(); const gfx_element *gfx = machine->gfx[1]; - UINT8 *source = machine->generic.spriteram.u8 + 0x200; + UINT8 *source = state->spriteram + 0x200; UINT8 *finish = source - 0x200; source -= 8; diff --git a/src/mame/video/foodf.c b/src/mame/video/foodf.c index cb49982c317..dbfd470f0c1 100644 --- a/src/mame/video/foodf.c +++ b/src/mame/video/foodf.c @@ -120,7 +120,7 @@ SCREEN_UPDATE( foodf ) int offs; const gfx_element *gfx = screen->machine->gfx[1]; bitmap_t *priority_bitmap = screen->machine->priority_bitmap; - UINT16 *spriteram16 = screen->machine->generic.spriteram.u16; + UINT16 *spriteram16 = state->spriteram; /* first draw the playfield opaquely */ tilemap_draw(bitmap, cliprect, state->playfield_tilemap, TILEMAP_DRAW_OPAQUE, 0); diff --git a/src/mame/video/galastrm.c b/src/mame/video/galastrm.c index d8ceeb71b4b..10c3c741aa6 100644 --- a/src/mame/video/galastrm.c +++ b/src/mame/video/galastrm.c @@ -89,7 +89,7 @@ Heavy use is made of sprite zooming. static void draw_sprites_pre(running_machine *machine, int x_offs, int y_offs) { galastrm_state *state = machine->driver_data(); - UINT32 *spriteram32 = machine->generic.spriteram.u32; + UINT32 *spriteram32 = state->spriteram; UINT16 *spritemap = (UINT16 *)machine->region("user1")->base(); int offs, data, tilenum, color, flipx, flipy; int x, y, priority, dblsize, curx, cury; @@ -102,7 +102,7 @@ static void draw_sprites_pre(running_machine *machine, int x_offs, int y_offs) while processing sprite ram and then draw them all at the end */ state->sprite_ptr_pre = state->spritelist; - for (offs = (machine->generic.spriteram_size/4-4);offs >= 0;offs -= 4) + for (offs = (state->spriteram_size/4-4);offs >= 0;offs -= 4) { data = spriteram32[offs+0]; flipx = (data & 0x00800000) >> 23; diff --git a/src/mame/video/galpanic.c b/src/mame/video/galpanic.c index 3cfbee5a5de..c4e9fa99bda 100644 --- a/src/mame/video/galpanic.c +++ b/src/mame/video/galpanic.c @@ -47,11 +47,12 @@ WRITE16_HANDLER( galpanic_paletteram_w ) static void comad_draw_sprites(running_machine *machine, bitmap_t *bitmap, const rectangle *cliprect) { - UINT16 *spriteram16 = machine->generic.spriteram.u16; + galpanic_state *state = machine->driver_data(); + UINT16 *spriteram16 = state->spriteram; int offs; int sx=0, sy=0; - for (offs = 0;offs < machine->generic.spriteram_size/2;offs += 4) + for (offs = 0;offs < state->spriteram_size/2;offs += 4) { int code,color,flipx,flipy; diff --git a/src/mame/video/gladiatr.c b/src/mame/video/gladiatr.c index bf1d547cb59..8e144e442d8 100644 --- a/src/mame/video/gladiatr.c +++ b/src/mame/video/gladiatr.c @@ -212,7 +212,7 @@ static void draw_sprites(running_machine *machine, bitmap_t *bitmap, const recta {0x0,0x1}, {0x2,0x3}, }; - UINT8 *src = &machine->generic.spriteram.u8[offs + (state->sprite_buffer << 7)]; + UINT8 *src = &state->spriteram[offs + (state->sprite_buffer << 7)]; int attributes = src[0x800]; int size = (attributes & 0x10) >> 4; int bank = (attributes & 0x01) + ((attributes & 0x02) ? state->sprite_bank : 0); diff --git a/src/mame/video/gottlieb.c b/src/mame/video/gottlieb.c index da2b65f7142..d0de8864504 100644 --- a/src/mame/video/gottlieb.c +++ b/src/mame/video/gottlieb.c @@ -216,7 +216,7 @@ VIDEO_START( screwloo ) static void draw_sprites(running_machine *machine, bitmap_t *bitmap, const rectangle *cliprect) { gottlieb_state *state = machine->driver_data(); - UINT8 *spriteram = machine->generic.spriteram.u8; + UINT8 *spriteram = state->spriteram; rectangle clip = *cliprect; int offs; diff --git a/src/mame/video/gridlee.c b/src/mame/video/gridlee.c index c761d0fe5f8..5833beb4b23 100644 --- a/src/mame/video/gridlee.c +++ b/src/mame/video/gridlee.c @@ -163,7 +163,7 @@ SCREEN_UPDATE( gridlee ) gfx = screen->machine->region("gfx1")->base(); for (i = 0; i < 32; i++) { - UINT8 *sprite = screen->machine->generic.spriteram.u8 + i * 4; + UINT8 *sprite = state->spriteram + i * 4; UINT8 *src; int image = sprite[0]; int ypos = sprite[2] + 17 + GRIDLEE_VBEND; diff --git a/src/mame/video/groundfx.c b/src/mame/video/groundfx.c index 928bcbc36e6..44c9d266ea7 100644 --- a/src/mame/video/groundfx.c +++ b/src/mame/video/groundfx.c @@ -66,7 +66,7 @@ Heavy use is made of sprite zooming. static void draw_sprites(running_machine *machine, bitmap_t *bitmap,const rectangle *cliprect,int do_hack,int x_offs,int y_offs) { groundfx_state *state = machine->driver_data(); - UINT32 *spriteram32 = machine->generic.spriteram.u32; + UINT32 *spriteram32 = state->spriteram; UINT16 *spritemap = (UINT16 *)machine->region("user1")->base(); int offs, data, tilenum, color, flipx, flipy; int x, y, priority, dblsize, curx, cury; @@ -80,7 +80,7 @@ static void draw_sprites(running_machine *machine, bitmap_t *bitmap,const rectan while processing sprite ram and then draw them all at the end */ struct tempsprite *sprite_ptr = state->spritelist; - for (offs = (machine->generic.spriteram_size/4-4);offs >= 0;offs -= 4) + for (offs = (state->spriteram_size/4-4);offs >= 0;offs -= 4) { data = spriteram32[offs+0]; flipx = (data & 0x00800000) >> 23; diff --git a/src/mame/video/gunbustr.c b/src/mame/video/gunbustr.c index ea513074855..758561644ef 100644 --- a/src/mame/video/gunbustr.c +++ b/src/mame/video/gunbustr.c @@ -59,7 +59,7 @@ Heavy use is made of sprite zooming. static void draw_sprites(running_machine *machine, bitmap_t *bitmap,const rectangle *cliprect,const int *primasks,int x_offs,int y_offs) { gunbustr_state *state = machine->driver_data(); - UINT32 *spriteram32 = machine->generic.spriteram.u32; + UINT32 *spriteram32 = state->spriteram; UINT16 *spritemap = (UINT16 *)machine->region("user1")->base(); int offs, data, tilenum, color, flipx, flipy; int x, y, priority, dblsize, curx, cury; @@ -72,7 +72,7 @@ static void draw_sprites(running_machine *machine, bitmap_t *bitmap,const rectan while processing sprite ram and then draw them all at the end */ struct tempsprite *sprite_ptr = state->spritelist; - for (offs = (machine->generic.spriteram_size/4-4);offs >= 0;offs -= 4) + for (offs = (state->spriteram_size/4-4);offs >= 0;offs -= 4) { data = spriteram32[offs+0]; flipx = (data & 0x00800000) >> 23; diff --git a/src/mame/video/lordgun.c b/src/mame/video/lordgun.c index f3150f05b3a..5ab8886e3b4 100644 --- a/src/mame/video/lordgun.c +++ b/src/mame/video/lordgun.c @@ -283,8 +283,9 @@ void lordgun_update_gun(running_machine *machine, int i) static void draw_sprites(running_machine *machine, bitmap_t *bitmap, const rectangle *cliprect) { - UINT16 *s = machine->generic.spriteram.u16; - UINT16 *end = machine->generic.spriteram.u16 + machine->generic.spriteram_size/2; + lordgun_state *state = machine->driver_data(); + UINT16 *s = state->spriteram; + UINT16 *end = state->spriteram + state->spriteram_size/2; for ( ; s < end; s += 8/2 ) { diff --git a/src/mame/video/magmax.c b/src/mame/video/magmax.c index c3c1ca6d696..14cb3f15f4d 100644 --- a/src/mame/video/magmax.c +++ b/src/mame/video/magmax.c @@ -88,7 +88,7 @@ SCREEN_UPDATE( magmax ) { magmax_state *state = screen->machine->driver_data(); UINT16 *videoram = state->videoram; - UINT16 *spriteram16 = screen->machine->generic.spriteram.u16; + UINT16 *spriteram16 = state->spriteram; int offs; /* bit 2 flip screen */ @@ -173,7 +173,7 @@ SCREEN_UPDATE( magmax ) } /* draw the sprites */ - for (offs = 0; offs < screen->machine->generic.spriteram_size/2; offs += 4) + for (offs = 0; offs < state->spriteram_size/2; offs += 4) { int sx, sy; diff --git a/src/mame/video/mcr3.c b/src/mame/video/mcr3.c index c6d766cbe0b..609922fc4bd 100644 --- a/src/mame/video/mcr3.c +++ b/src/mame/video/mcr3.c @@ -228,13 +228,14 @@ WRITE8_HANDLER( spyhunt_scroll_value_w ) static void mcr3_update_sprites(running_machine *machine, bitmap_t *bitmap, const rectangle *cliprect, int color_mask, int code_xor, int dx, int dy) { - UINT8 *spriteram = machine->generic.spriteram.u8; + mcr3_state *state = machine->driver_data(); + UINT8 *spriteram = state->spriteram; int offs; bitmap_fill(machine->priority_bitmap, cliprect, 1); /* loop over sprite RAM */ - for (offs = machine->generic.spriteram_size - 4; offs >= 0; offs -= 4) + for (offs = state->spriteram_size - 4; offs >= 0; offs -= 4) { int code, color, flipx, flipy, sx, sy, flags; diff --git a/src/mame/video/mcr68.c b/src/mame/video/mcr68.c index 8e9d330996e..7cae605c004 100644 --- a/src/mame/video/mcr68.c +++ b/src/mame/video/mcr68.c @@ -197,10 +197,11 @@ WRITE16_HANDLER( zwackery_videoram_w ) WRITE16_HANDLER( zwackery_spriteram_w ) { + mcr68_state *state = space->machine->driver_data(); /* yech -- Zwackery relies on the upper 8 bits of a spriteram read being $ff! */ /* to make this happen we always write $ff in the upper 8 bits */ - COMBINE_DATA(&space->machine->generic.spriteram.u16[offset]); - space->machine->generic.spriteram.u16[offset] |= 0xff00; + COMBINE_DATA(&state->spriteram[offset]); + state->spriteram[offset] |= 0xff00; } @@ -215,7 +216,7 @@ static void mcr68_update_sprites(running_machine *machine, bitmap_t *bitmap, con { mcr68_state *state = machine->driver_data(); rectangle sprite_clip = machine->primary_screen->visible_area(); - UINT16 *spriteram16 = machine->generic.spriteram.u16; + UINT16 *spriteram16 = state->spriteram; int offs; /* adjust for clipping */ @@ -226,7 +227,7 @@ static void mcr68_update_sprites(running_machine *machine, bitmap_t *bitmap, con bitmap_fill(machine->priority_bitmap,&sprite_clip,1); /* loop over sprite RAM */ - for (offs = machine->generic.spriteram_size / 2 - 4;offs >= 0;offs -= 4) + for (offs = state->spriteram_size / 2 - 4;offs >= 0;offs -= 4) { int code, color, flipx, flipy, x, y, flags; @@ -267,13 +268,14 @@ static void mcr68_update_sprites(running_machine *machine, bitmap_t *bitmap, con static void zwackery_update_sprites(running_machine *machine, bitmap_t *bitmap, const rectangle *cliprect, int priority) { - UINT16 *spriteram16 = machine->generic.spriteram.u16; + mcr68_state *state = machine->driver_data(); + UINT16 *spriteram16 = state->spriteram; int offs; bitmap_fill(machine->priority_bitmap,cliprect,1); /* loop over sprite RAM */ - for (offs = machine->generic.spriteram_size / 2 - 4;offs >= 0;offs -= 4) + for (offs = state->spriteram_size / 2 - 4;offs >= 0;offs -= 4) { int code, color, flipx, flipy, x, y, flags; diff --git a/src/mame/video/meadows.c b/src/mame/video/meadows.c index 41ce2abb021..7a2cb85e2af 100644 --- a/src/mame/video/meadows.c +++ b/src/mame/video/meadows.c @@ -65,8 +65,9 @@ WRITE8_HANDLER( meadows_videoram_w ) WRITE8_HANDLER( meadows_spriteram_w ) { + meadows_state *state = space->machine->driver_data(); space->machine->primary_screen->update_now(); - space->machine->generic.spriteram.u8[offset] = data; + state->spriteram[offset] = data; } @@ -79,7 +80,8 @@ WRITE8_HANDLER( meadows_spriteram_w ) static void draw_sprites(running_machine *machine, bitmap_t *bitmap, const rectangle *clip) { - UINT8 *spriteram = machine->generic.spriteram.u8; + meadows_state *state = machine->driver_data(); + UINT8 *spriteram = state->spriteram; int i; for (i = 0; i < 4; i++) diff --git a/src/mame/video/megasys1.c b/src/mame/video/megasys1.c index 956312b54d9..6dfb1cb9c20 100644 --- a/src/mame/video/megasys1.c +++ b/src/mame/video/megasys1.c @@ -244,9 +244,10 @@ static UINT16 *megasys1_buffer_objectram,*megasys1_buffer2_objectram,*megasys1_b VIDEO_START( megasys1 ) { + megasys1_state *state = machine->driver_data(); int i; - machine->generic.spriteram.u16 = &megasys1_ram[0x8000/2]; + state->spriteram = &megasys1_ram[0x8000/2]; megasys1_buffer_objectram = auto_alloc_array(machine, UINT16, 0x2000); megasys1_buffer_spriteram16 = auto_alloc_array(machine, UINT16, 0x2000); @@ -582,6 +583,7 @@ WRITE16_HANDLER( megasys1_vregs_D_w ) static void draw_sprites(running_machine *machine, bitmap_t *bitmap,const rectangle *cliprect) { + megasys1_state *state = machine->driver_data(); int color,code,sx,sy,flipx,flipy,attr,sprite,offs,color_mask; /* objram: 0x100*4 entries spritedata: 0x80 entries */ @@ -635,7 +637,7 @@ static void draw_sprites(running_machine *machine, bitmap_t *bitmap,const rectan } /* non Z hw */ else { - UINT16 *spriteram16 = machine->generic.spriteram.u16; + UINT16 *spriteram16 = state->spriteram; /* MS1-Z just draws Sprite Data, and in reverse order */ @@ -1033,13 +1035,14 @@ SCREEN_UPDATE( megasys1 ) SCREEN_EOF( megasys1 ) { + megasys1_state *state = machine->driver_data(); /* Sprite are TWO frames ahead, like NMK16 HW. */ //megasys1_objectram memcpy(megasys1_buffer2_objectram,megasys1_buffer_objectram, 0x2000); memcpy(megasys1_buffer_objectram, megasys1_objectram, 0x2000); //spriteram16 memcpy(megasys1_buffer2_spriteram16, megasys1_buffer_spriteram16, 0x2000); - memcpy(megasys1_buffer_spriteram16, machine->generic.spriteram.u16, 0x2000); + memcpy(megasys1_buffer_spriteram16, state->spriteram, 0x2000); } diff --git a/src/mame/video/mustache.c b/src/mame/video/mustache.c index 249f8a15b07..62b677a6275 100644 --- a/src/mame/video/mustache.c +++ b/src/mame/video/mustache.c @@ -106,10 +106,10 @@ static void draw_sprites(running_machine *machine, bitmap_t *bitmap, const recta rectangle clip = *cliprect; const gfx_element *gfx = machine->gfx[1]; const rectangle &visarea = machine->primary_screen->visible_area(); - UINT8 *spriteram = machine->generic.spriteram.u8; + UINT8 *spriteram = state->spriteram; int offs; - for (offs = 0;offs < machine->generic.spriteram_size;offs += 4) + for (offs = 0;offs < state->spriteram_size;offs += 4) { int sy = 240-spriteram[offs]; int sx = 240-spriteram[offs+3]; diff --git a/src/mame/video/namcona1.c b/src/mame/video/namcona1.c index 295a7273ee6..609c7113997 100644 --- a/src/mame/video/namcona1.c +++ b/src/mame/video/namcona1.c @@ -470,8 +470,9 @@ static void pdraw_tile(running_machine *machine, static void draw_sprites(running_machine *machine, bitmap_t *bitmap, const rectangle *cliprect) { + namcona1_state *state = machine->driver_data(); int which; - const UINT16 *source = machine->generic.spriteram.u16; + const UINT16 *source = state->spriteram; UINT16 sprite_control; UINT16 ypos,tile,color,xpos; int priority; diff --git a/src/mame/video/namcos1.c b/src/mame/video/namcos1.c index e91765901a0..59f4cfc3faf 100644 --- a/src/mame/video/namcos1.c +++ b/src/mame/video/namcos1.c @@ -164,8 +164,6 @@ VIDEO_START( namcos1 ) for (i = 0x0800;i < 0x1000;i++) machine->shadow_table[i] = i + 0x0800; - machine->generic.spriteram.u8 = &state->spriteram[0x800]; - memset(state->playfield_control, 0, sizeof(state->playfield_control)); state->copy_sprites = 0; } @@ -303,12 +301,13 @@ sprite format: static void draw_sprites(running_machine *machine, bitmap_t *bitmap, const rectangle *cliprect) { namcos1_state *state = machine->driver_data(); - const UINT8 *source = &machine->generic.spriteram.u8[0x0800-0x20]; /* the last is NOT a sprite */ - const UINT8 *finish = &machine->generic.spriteram.u8[0]; + UINT8 *spriteram = state->spriteram + 0x800; + const UINT8 *source = &spriteram[0x800-0x20]; /* the last is NOT a sprite */ + const UINT8 *finish = &spriteram[0]; gfx_element *gfx = machine->gfx[1]; - int sprite_xoffs = machine->generic.spriteram.u8[0x07f5] + ((machine->generic.spriteram.u8[0x07f4] & 1) << 8); - int sprite_yoffs = machine->generic.spriteram.u8[0x07f7]; + int sprite_xoffs = spriteram[0x07f5] + ((spriteram[0x07f4] & 1) << 8); + int sprite_yoffs = spriteram[0x07f7]; while (source >= finish) { @@ -379,7 +378,7 @@ SCREEN_UPDATE( namcos1 ) /* flip screen is embedded in the sprite control registers */ /* can't use flip_screen_set(screen->machine, ) because the visible area is asymmetrical */ - flip_screen_set_no_update(screen->machine, screen->machine->generic.spriteram.u8[0x07f6] & 1); + flip_screen_set_no_update(screen->machine, state->spriteram[0x0ff6] & 1); tilemap_set_flip_all(screen->machine,flip_screen_get(screen->machine) ? (TILEMAP_FLIPY | TILEMAP_FLIPX) : 0); @@ -446,7 +445,7 @@ SCREEN_EOF( namcos1 ) namcos1_state *state = machine->driver_data(); if (state->copy_sprites) { - UINT8 *spriteram = machine->generic.spriteram.u8; + UINT8 *spriteram = state->spriteram + 0x800; int i,j; for (i = 0;i < 0x800;i += 16) diff --git a/src/mame/video/namcos22.c b/src/mame/video/namcos22.c index bcc28d3992c..ae09b072b31 100644 --- a/src/mame/video/namcos22.c +++ b/src/mame/video/namcos22.c @@ -889,6 +889,7 @@ NewSceneNode( running_machine *machine, UINT32 zsortvalue24, SceneNodeType type static void RenderSprite(running_machine *machine, bitmap_t *bitmap, struct SceneNode *node ) { + namcos22_state *state = machine->driver_data(); int tile = node->data.sprite.tile; int col,row; int i = 0; @@ -903,7 +904,7 @@ static void RenderSprite(running_machine *machine, bitmap_t *bitmap, struct Scen } else { - code += nthword( &machine->generic.spriteram.u32[0x800/4], i+node->data.sprite.linkType*4 ); + code += nthword( &state->spriteram[0x800/4], i+node->data.sprite.linkType*4 ); } poly3d_Draw3dSprite( bitmap, @@ -1337,6 +1338,7 @@ DrawSpritesHelper( static void DrawSprites( running_machine *machine, bitmap_t *bitmap, const rectangle *cliprect ) { + namcos22_state *state = machine->driver_data(); /* // time crisis: 00980000: 00060000 000b0053 03000200 03000000 @@ -1405,7 +1407,7 @@ DrawSprites( running_machine *machine, bitmap_t *bitmap, const rectangle *clipre 0x9a0004: palette, C381 ZC (depth cueing) ... */ - UINT32 *spriteram32 = machine->generic.spriteram.u32; + UINT32 *spriteram32 = state->spriteram; int num_sprites = ((spriteram32[0x04/4]>>16)&0x3ff)+1; const UINT32 *pSource = &spriteram32[0x4000/4]; const UINT32 *pPal = &spriteram32[0x20000/4]; diff --git a/src/mame/video/namcos86.c b/src/mame/video/namcos86.c index ec66a62224b..4f2284cc784 100644 --- a/src/mame/video/namcos86.c +++ b/src/mame/video/namcos86.c @@ -127,6 +127,7 @@ static TILE_GET_INFO( get_tile_info3 ) { get_tile_info(machine,tileinfo,tile_ind VIDEO_START( namcos86 ) { + namcos86_state *state = machine->driver_data(); bg_tilemap[0] = tilemap_create(machine, get_tile_info0,tilemap_scan_rows,8,8,64,32); bg_tilemap[1] = tilemap_create(machine, get_tile_info1,tilemap_scan_rows,8,8,64,32); bg_tilemap[2] = tilemap_create(machine, get_tile_info2,tilemap_scan_rows,8,8,64,32); @@ -137,7 +138,7 @@ VIDEO_START( namcos86 ) tilemap_set_transparent_pen(bg_tilemap[2],7); tilemap_set_transparent_pen(bg_tilemap[3],7); - machine->generic.spriteram.u8 = rthunder_spriteram + 0x1800; + state->spriteram = rthunder_spriteram + 0x1800; } @@ -265,12 +266,13 @@ sprite format: static void draw_sprites(running_machine *machine, bitmap_t *bitmap, const rectangle *cliprect) { - const UINT8 *source = &machine->generic.spriteram.u8[0x0800-0x20]; /* the last is NOT a sprite */ - const UINT8 *finish = &machine->generic.spriteram.u8[0]; + namcos86_state *state = machine->driver_data(); + const UINT8 *source = &state->spriteram[0x0800-0x20]; /* the last is NOT a sprite */ + const UINT8 *finish = &state->spriteram[0]; gfx_element *gfx = machine->gfx[2]; - int sprite_xoffs = machine->generic.spriteram.u8[0x07f5] + ((machine->generic.spriteram.u8[0x07f4] & 1) << 8); - int sprite_yoffs = machine->generic.spriteram.u8[0x07f7]; + int sprite_xoffs = state->spriteram[0x07f5] + ((state->spriteram[0x07f4] & 1) << 8); + int sprite_yoffs = state->spriteram[0x07f7]; int bank_sprites = machine->gfx[2]->total_elements / 8; @@ -343,11 +345,12 @@ static void set_scroll(running_machine *machine, int layer) SCREEN_UPDATE( namcos86 ) { + namcos86_state *state = screen->machine->driver_data(); int layer; /* flip screen is embedded in the sprite control registers */ /* can't use flip_screen_set(screen->machine, ) because the visible area is asymmetrical */ - flip_screen_set_no_update(screen->machine, screen->machine->generic.spriteram.u8[0x07f6] & 1); + flip_screen_set_no_update(screen->machine, state->spriteram[0x07f6] & 1); tilemap_set_flip_all(screen->machine,flip_screen_get(screen->machine) ? (TILEMAP_FLIPY | TILEMAP_FLIPX) : 0); set_scroll(screen->machine, 0); set_scroll(screen->machine, 1); @@ -376,9 +379,10 @@ SCREEN_UPDATE( namcos86 ) SCREEN_EOF( namcos86 ) { + namcos86_state *state = machine->driver_data(); if (copy_sprites) { - UINT8 *spriteram = machine->generic.spriteram.u8; + UINT8 *spriteram = state->spriteram; int i,j; for (i = 0;i < 0x800;i += 16) diff --git a/src/mame/video/ninjakd2.c b/src/mame/video/ninjakd2.c index c21bc2caa99..f2746de52fe 100644 --- a/src/mame/video/ninjakd2.c +++ b/src/mame/video/ninjakd2.c @@ -367,7 +367,7 @@ static void draw_sprites(running_machine* machine, bitmap_t* bitmap) int const big_xshift = state->robokid_sprites ? 1 : 0; int const big_yshift = state->robokid_sprites ? 0 : 1; - UINT8* sprptr = &machine->generic.spriteram.u8[11]; + UINT8* sprptr = &state->spriteram[11]; int sprites_drawn = 0; // the sprite generator draws exactly 96 16x16 sprites per frame. When big diff --git a/src/mame/video/nova2001.c b/src/mame/video/nova2001.c index e66fd6cd067..d21ce582797 100644 --- a/src/mame/video/nova2001.c +++ b/src/mame/video/nova2001.c @@ -272,7 +272,8 @@ WRITE8_HANDLER( pkunwar_flipscreen_w ) static void nova2001_draw_sprites(running_machine *machine, bitmap_t *bitmap, const rectangle *cliprect ) { - UINT8 *spriteram = machine->generic.spriteram.u8; + nova2001_state *state = machine->driver_data(); + UINT8 *spriteram = state->spriteram; const gfx_element *gfx = machine->gfx[0]; int offs; @@ -309,7 +310,8 @@ static void nova2001_draw_sprites(running_machine *machine, bitmap_t *bitmap, co static void pkunwar_draw_sprites(running_machine *machine, bitmap_t *bitmap, const rectangle *cliprect ) { - UINT8 *spriteram = machine->generic.spriteram.u8; + nova2001_state *state = machine->driver_data(); + UINT8 *spriteram = state->spriteram; const gfx_element *gfx = machine->gfx[0]; int offs; diff --git a/src/mame/video/pcktgal.c b/src/mame/video/pcktgal.c index e8a423227f0..29172efcb6c 100644 --- a/src/mame/video/pcktgal.c +++ b/src/mame/video/pcktgal.c @@ -66,10 +66,11 @@ VIDEO_START( pcktgal ) static void draw_sprites(running_machine *machine, bitmap_t *bitmap, const rectangle *cliprect) { - UINT8 *spriteram = machine->generic.spriteram.u8; + pcktgal_state *state = machine->driver_data(); + UINT8 *spriteram = state->spriteram; int offs; - for (offs = 0;offs < machine->generic.spriteram_size;offs += 4) + for (offs = 0;offs < state->spriteram_size;offs += 4) { if (spriteram[offs] != 0xf8) { diff --git a/src/mame/video/pingpong.c b/src/mame/video/pingpong.c index 3013938bd13..34aade759d2 100644 --- a/src/mame/video/pingpong.c +++ b/src/mame/video/pingpong.c @@ -126,10 +126,11 @@ VIDEO_START( pingpong ) static void draw_sprites(running_machine *machine, bitmap_t *bitmap, const rectangle *cliprect ) { - UINT8 *spriteram = machine->generic.spriteram.u8; + pingpong_state *state = machine->driver_data(); + UINT8 *spriteram = state->spriteram; int offs; - for (offs = machine->generic.spriteram_size - 4;offs >= 0;offs -= 4) + for (offs = state->spriteram_size - 4;offs >= 0;offs -= 4) { int sx,sy,flipx,flipy,color,schar; diff --git a/src/mame/video/pitnrun.c b/src/mame/video/pitnrun.c index 0505345811b..a1727d09f1d 100644 --- a/src/mame/video/pitnrun.c +++ b/src/mame/video/pitnrun.c @@ -184,7 +184,8 @@ VIDEO_START(pitnrun) static void draw_sprites(running_machine *machine, bitmap_t *bitmap, const rectangle *cliprect ) { - UINT8 *spriteram = machine->generic.spriteram.u8; + pitnrun_state *state = machine->driver_data(); + UINT8 *spriteram = state->spriteram; int sx, sy, flipx, flipy, offs,pal; for (offs = 0 ; offs < 0x100; offs+=4) diff --git a/src/mame/video/pokechmp.c b/src/mame/video/pokechmp.c index 0637edb2514..d3875282e3c 100644 --- a/src/mame/video/pokechmp.c +++ b/src/mame/video/pokechmp.c @@ -40,10 +40,11 @@ VIDEO_START( pokechmp ) static void draw_sprites(running_machine *machine, bitmap_t *bitmap, const rectangle *cliprect) { - UINT8 *spriteram = machine->generic.spriteram.u8; + pokechmp_state *state = machine->driver_data(); + UINT8 *spriteram = state->spriteram; int offs; - for (offs = 0;offs < machine->generic.spriteram_size;offs += 4) + for (offs = 0;offs < state->spriteram_size;offs += 4) { if (spriteram[offs] != 0xf8) { diff --git a/src/mame/video/popeye.c b/src/mame/video/popeye.c index dc9da372fbb..17db7abe71f 100644 --- a/src/mame/video/popeye.c +++ b/src/mame/video/popeye.c @@ -320,10 +320,10 @@ static void draw_background(running_machine *machine, bitmap_t *bitmap, const re static void draw_sprites(running_machine *machine, bitmap_t *bitmap, const rectangle *cliprect) { popeye_state *state = machine->driver_data(); - UINT8 *spriteram = machine->generic.spriteram.u8; + UINT8 *spriteram = state->spriteram; int offs; - for (offs = 0;offs < machine->generic.spriteram_size;offs += 4) + for (offs = 0;offs < state->spriteram_size;offs += 4) { int code,color,flipx,flipy,sx,sy; diff --git a/src/mame/video/portrait.c b/src/mame/video/portrait.c index d4abb32c664..b5d2a682a15 100644 --- a/src/mame/video/portrait.c +++ b/src/mame/video/portrait.c @@ -132,7 +132,7 @@ PALETTE_INIT( portrait ) static void draw_sprites(running_machine *machine, bitmap_t *bitmap, const rectangle *cliprect) { portrait_state *state = machine->driver_data(); - UINT8 *source = machine->generic.spriteram.u8; + UINT8 *source = state->spriteram; UINT8 *finish = source + 0x200; while( source < finish ) @@ -155,7 +155,7 @@ static void draw_sprites(running_machine *machine, bitmap_t *bitmap, const recta if(attr & 0x08) sy |= 0x100; - sx += (source - machine->generic.spriteram.u8) - 8; + sx += (source - state->spriteram) - 8; sx &= 0x1ff; sy = (512 - 64) - sy; diff --git a/src/mame/video/powerins.c b/src/mame/video/powerins.c index fa96d281172..a1564fe8e92 100644 --- a/src/mame/video/powerins.c +++ b/src/mame/video/powerins.c @@ -265,8 +265,9 @@ Offset: Format: Value: static void draw_sprites(running_machine *machine, bitmap_t *bitmap,const rectangle *cliprect) { - UINT16 *source = machine->generic.spriteram.u16 + 0x8000/2; - UINT16 *finish = machine->generic.spriteram.u16 + 0x9000/2; + powerins_state *state = machine->driver_data(); + UINT16 *source = state->spriteram + 0x8000/2; + UINT16 *finish = state->spriteram + 0x9000/2; int screen_w = machine->primary_screen->width(); int screen_h = machine->primary_screen->height(); diff --git a/src/mame/video/psikyo.c b/src/mame/video/psikyo.c index 4cc10de5219..1786d3179f2 100644 --- a/src/mame/video/psikyo.c +++ b/src/mame/video/psikyo.c @@ -390,7 +390,7 @@ static void draw_sprites_bootleg( running_machine *machine, bitmap_t *bitmap, co static const int pri[] = { 0, 0xfc, 0xff, 0xff }; int offs; -// UINT16 *spritelist = (UINT16 *)(machine->generic.spriteram.u32 + 0x1800/4); +// UINT16 *spritelist = (UINT16 *)(state->spriteram + 0x1800/4); UINT16 *spritelist = (UINT16 *)(state->spritebuf2 + 0x1800 / 4); UINT8 *TILES = machine->region("spritelut")->base(); // Sprites LUT @@ -869,5 +869,5 @@ SCREEN_EOF( psikyo ) { psikyo_state *state = machine->driver_data(); memcpy(state->spritebuf2, state->spritebuf1, 0x2000); - memcpy(state->spritebuf1, machine->generic.spriteram.u32, 0x2000); + memcpy(state->spritebuf1, state->spriteram, 0x2000); } diff --git a/src/mame/video/psychic5.c b/src/mame/video/psychic5.c index 0c697c898f8..70325d13dc7 100644 --- a/src/mame/video/psychic5.c +++ b/src/mame/video/psychic5.c @@ -316,11 +316,12 @@ VIDEO_RESET( bombsa ) static void draw_sprites(running_machine *machine, bitmap_t *bitmap, const rectangle *cliprect) { - UINT8 *spriteram = machine->generic.spriteram.u8; + psychic5_state *state = machine->driver_data(); + UINT8 *spriteram = state->spriteram; int offs; /* Draw the sprites */ - for (offs = 0; offs < machine->generic.spriteram_size; offs += 16) + for (offs = 0; offs < state->spriteram_size; offs += 16) { int attr = spriteram[offs + 13]; int code = spriteram[offs + 14] | ((attr & 0xc0) << 2); @@ -370,7 +371,7 @@ static void draw_sprites(running_machine *machine, bitmap_t *bitmap, const recta static void draw_background(running_machine *machine, bitmap_t *bitmap, const rectangle *cliprect) { psychic5_state *state = machine->driver_data(); - UINT8 *spriteram = machine->generic.spriteram.u8; + UINT8 *spriteram = state->spriteram; rectangle clip = *cliprect; diff --git a/src/mame/video/quizdna.c b/src/mame/video/quizdna.c index 7890a751413..42f46f4bd44 100644 --- a/src/mame/video/quizdna.c +++ b/src/mame/video/quizdna.c @@ -141,10 +141,10 @@ WRITE8_HANDLER( paletteram_xBGR_RRRR_GGGG_BBBB_w ) static void draw_sprites(running_machine *machine, bitmap_t *bitmap, const rectangle *cliprect) { quizdna_state *state = machine->driver_data(); - UINT8 *spriteram = machine->generic.spriteram.u8; + UINT8 *spriteram = state->spriteram; int offs; - for (offs = 0; offsgeneric.spriteram_size; offs+=8) + for (offs = 0; offsspriteram_size; offs+=8) { int i; diff --git a/src/mame/video/realbrk.c b/src/mame/video/realbrk.c index 9275996efff..0001d4d0ef9 100644 --- a/src/mame/video/realbrk.c +++ b/src/mame/video/realbrk.c @@ -216,7 +216,7 @@ VIDEO_START(realbrk) static void draw_sprites(running_machine *machine, bitmap_t *bitmap,const rectangle *cliprect) { realbrk_state *state = machine->driver_data(); - UINT16 *spriteram16 = machine->generic.spriteram.u16; + UINT16 *spriteram16 = state->spriteram; int offs; int max_x = machine->primary_screen->width(); @@ -382,7 +382,8 @@ static void draw_sprites(running_machine *machine, bitmap_t *bitmap,const rectan /* layer : 0== bghighgeneric.spriteram.u16; + realbrk_state *state = machine->driver_data(); + UINT16 *spriteram16 = state->spriteram; int offs; int max_x = machine->primary_screen->width(); diff --git a/src/mame/video/renegade.c b/src/mame/video/renegade.c index 89feec3d9da..580b152f190 100644 --- a/src/mame/video/renegade.c +++ b/src/mame/video/renegade.c @@ -81,7 +81,8 @@ VIDEO_START( renegade ) static void draw_sprites(running_machine *machine, bitmap_t *bitmap, const rectangle *cliprect) { - UINT8 *source = machine->generic.spriteram.u8; + renegade_state *state = machine->driver_data(); + UINT8 *source = state->spriteram; UINT8 *finish = source + 96 * 4; while (source < finish) diff --git a/src/mame/video/rollrace.c b/src/mame/video/rollrace.c index 21628935523..82b269d7919 100644 --- a/src/mame/video/rollrace.c +++ b/src/mame/video/rollrace.c @@ -104,7 +104,7 @@ WRITE8_HANDLER( rollrace_flipx_w ) SCREEN_UPDATE( rollrace ) { rollrace_state *state = screen->machine->driver_data(); - UINT8 *spriteram = screen->machine->generic.spriteram.u8; + UINT8 *spriteram = state->spriteram; int offs; int sx, sy; int scroll; diff --git a/src/mame/video/rpunch.c b/src/mame/video/rpunch.c index 679a097841e..fa0330b76c3 100644 --- a/src/mame/video/rpunch.c +++ b/src/mame/video/rpunch.c @@ -204,7 +204,7 @@ WRITE16_HANDLER( rpunch_ins_w ) static void draw_sprites(running_machine *machine, bitmap_t *bitmap, const rectangle *cliprect, int start, int stop) { rpunch_state *state = machine->driver_data(); - UINT16 *spriteram16 = machine->generic.spriteram.u16; + UINT16 *spriteram16 = state->spriteram; int offs; start *= 4; diff --git a/src/mame/video/shangkid.c b/src/mame/video/shangkid.c index f1e9df52208..cc430df18f1 100644 --- a/src/mame/video/shangkid.c +++ b/src/mame/video/shangkid.c @@ -177,10 +177,11 @@ static void draw_sprite(running_machine *machine, const UINT8 *source, bitmap_t static void shangkid_draw_sprites(running_machine *machine, bitmap_t *bitmap, const rectangle *cliprect) { + shangkid_state *state = machine->driver_data(); const UINT8 *source, *finish; - finish = machine->generic.spriteram.u8; - source = machine->generic.spriteram.u8+0x200; + finish = state->spriteram; + source = state->spriteram+0x200; while( source>finish ){ source -= 8; draw_sprite(machine, source, bitmap,cliprect ); diff --git a/src/mame/video/simpl156.c b/src/mame/video/simpl156.c index 99342a85905..38ce3e32184 100644 --- a/src/mame/video/simpl156.c +++ b/src/mame/video/simpl156.c @@ -38,7 +38,8 @@ x = xpos its the same sprite chip Data East used on many, many 16-bit era titles */ static void draw_sprites( running_machine *machine, bitmap_t *bitmap,const rectangle *cliprect ) { - UINT32 *spriteram = machine->generic.spriteram.u32; + simpl156_state *state = machine->driver_data(); + UINT32 *spriteram = state->spriteram; int offs; //FIXME: flip_screen_x should not be written! diff --git a/src/mame/video/spdodgeb.c b/src/mame/video/spdodgeb.c index 7dfeea7749f..19e19e2fa0b 100644 --- a/src/mame/video/spdodgeb.c +++ b/src/mame/video/spdodgeb.c @@ -154,7 +154,7 @@ WRITE8_HANDLER( spdodgeb_videoram_w ) static void draw_sprites(running_machine *machine, bitmap_t *bitmap, const rectangle *cliprect ) { spdodgeb_state *state = machine->driver_data(); - UINT8 *spriteram = machine->generic.spriteram.u8; + UINT8 *spriteram = state->spriteram; const gfx_element *gfx = machine->gfx[1]; UINT8 *src; int i; @@ -164,7 +164,7 @@ static void draw_sprites(running_machine *machine, bitmap_t *bitmap, const recta /* 240-SY Z|F|CLR|WCH WHICH SX xxxxxxxx x|x|xxx|xxx xxxxxxxx xxxxxxxx */ - for (i = 0;i < machine->generic.spriteram_size;i += 4) + for (i = 0;i < state->spriteram_size;i += 4) { int attr = src[i+1]; int which = src[i+2]+((attr & 0x07)<<8); diff --git a/src/mame/video/speedbal.c b/src/mame/video/speedbal.c index c9476075c1b..f3d212a501b 100644 --- a/src/mame/video/speedbal.c +++ b/src/mame/video/speedbal.c @@ -86,12 +86,13 @@ WRITE8_HANDLER( speedbal_background_videoram_w ) static void draw_sprites(running_machine *machine, bitmap_t *bitmap, const rectangle *cliprect) { - UINT8 *spriteram = machine->generic.spriteram.u8; + speedbal_state *state = machine->driver_data(); + UINT8 *spriteram = state->spriteram; int x,y,code,color,offset,flipx,flipy; /* Drawing sprites: 64 in total */ - for (offset = 0;offset < machine->generic.spriteram_size;offset += 4) + for (offset = 0;offset < state->spriteram_size;offset += 4) { if(!(spriteram[offset + 2] & 0x80)) continue; diff --git a/src/mame/video/stadhero.c b/src/mame/video/stadhero.c index b5863d7f957..1f08c91a47b 100644 --- a/src/mame/video/stadhero.c +++ b/src/mame/video/stadhero.c @@ -18,7 +18,7 @@ static void draw_sprites(running_machine *machine, bitmap_t *bitmap,const rectangle *cliprect,int pri_mask,int pri_val) { stadhero_state *state = machine->driver_data(); - UINT16 *spriteram16 = machine->generic.spriteram.u16; + UINT16 *spriteram16 = state->spriteram; int offs; for (offs = 0;offs < 0x400;offs += 4) diff --git a/src/mame/video/strnskil.c b/src/mame/video/strnskil.c index 0ae414acb8b..26ebea0bfee 100644 --- a/src/mame/video/strnskil.c +++ b/src/mame/video/strnskil.c @@ -83,7 +83,8 @@ VIDEO_START( strnskil ) static void draw_sprites(running_machine *machine, bitmap_t *bitmap, const rectangle *cliprect) { - UINT8 *spriteram = machine->generic.spriteram.u8; + strnskil_state *state = machine->driver_data(); + UINT8 *spriteram = state->spriteram; int offs; for (offs = 0x60; offs < 0x100; offs += 4) diff --git a/src/mame/video/superchs.c b/src/mame/video/superchs.c index 2f9d3c34e8b..03f6122a6c7 100644 --- a/src/mame/video/superchs.c +++ b/src/mame/video/superchs.c @@ -57,7 +57,7 @@ Heavy use is made of sprite zooming. static void draw_sprites(running_machine *machine, bitmap_t *bitmap,const rectangle *cliprect,const int *primasks,int x_offs,int y_offs) { superchs_state *state = machine->driver_data(); - UINT32 *spriteram32 = machine->generic.spriteram.u32; + UINT32 *spriteram32 = state->spriteram; UINT16 *spritemap = (UINT16 *)machine->region("user1")->base(); int offs, data, tilenum, color, flipx, flipy; int x, y, priority, dblsize, curx, cury; @@ -70,7 +70,7 @@ static void draw_sprites(running_machine *machine, bitmap_t *bitmap,const rectan while processing sprite ram and then draw them all at the end */ struct tempsprite *sprite_ptr = state->spritelist; - for (offs = (machine->generic.spriteram_size/4-4);offs >= 0;offs -= 4) + for (offs = (state->spriteram_size/4-4);offs >= 0;offs -= 4) { data = spriteram32[offs+0]; flipx = (data & 0x00800000) >> 23; diff --git a/src/mame/video/superqix.c b/src/mame/video/superqix.c index 55612c92841..890711bbc9a 100644 --- a/src/mame/video/superqix.c +++ b/src/mame/video/superqix.c @@ -171,10 +171,11 @@ WRITE8_HANDLER( superqix_0410_w ) static void pbillian_draw_sprites(running_machine *machine, bitmap_t *bitmap, const rectangle *cliprect ) { - UINT8 *spriteram = machine->generic.spriteram.u8; + superqix_state *state = machine->driver_data(); + UINT8 *spriteram = state->spriteram; int offs; - for (offs = 0; offs < machine->generic.spriteram_size; offs += 4) + for (offs = 0; offs < state->spriteram_size; offs += 4) { int attr = spriteram[offs + 3]; int code = ((spriteram[offs] & 0xfc) >> 2) + 64 * (attr & 0x0f); @@ -198,10 +199,11 @@ static void pbillian_draw_sprites(running_machine *machine, bitmap_t *bitmap, co static void superqix_draw_sprites(running_machine *machine, bitmap_t *bitmap,const rectangle *cliprect) { - UINT8 *spriteram = machine->generic.spriteram.u8; + superqix_state *state = machine->driver_data(); + UINT8 *spriteram = state->spriteram; int offs; - for (offs = 0; offs < machine->generic.spriteram_size; offs += 4) + for (offs = 0; offs < state->spriteram_size; offs += 4) { int attr = spriteram[offs + 3]; int code = spriteram[offs] + 256 * (attr & 0x01); diff --git a/src/mame/video/suprloco.c b/src/mame/video/suprloco.c index 2d5716ca384..47491dfb1a5 100644 --- a/src/mame/video/suprloco.c +++ b/src/mame/video/suprloco.c @@ -190,7 +190,7 @@ static void draw_sprite(running_machine *machine, bitmap_t *bitmap,const rectang short skip; /* bytes to skip before drawing each row (can be negative) */ - spr_reg = machine->generic.spriteram.u8 + 0x10 * spr_number; + spr_reg = state->spriteram + 0x10 * spr_number; src = spr_reg[SPR_GFXOFS_LO] + (spr_reg[SPR_GFXOFS_HI] << 8); skip = spr_reg[SPR_SKIP_LO] + (spr_reg[SPR_SKIP_HI] << 8); @@ -256,13 +256,14 @@ 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) { + suprloco_state *state = machine->driver_data(); int spr_number; UINT8 *spr_reg; - for (spr_number = 0;spr_number < (machine->generic.spriteram_size >> 4);spr_number++) + for (spr_number = 0;spr_number < (state->spriteram_size >> 4);spr_number++) { - spr_reg = machine->generic.spriteram.u8 + 0x10 * spr_number; + spr_reg = state->spriteram + 0x10 * spr_number; if (spr_reg[SPR_X] != 0xff) draw_sprite(machine, bitmap, cliprect, spr_number); } diff --git a/src/mame/video/suprridr.c b/src/mame/video/suprridr.c index ee55fc18587..b4bbd3d8836 100644 --- a/src/mame/video/suprridr.c +++ b/src/mame/video/suprridr.c @@ -169,7 +169,7 @@ WRITE8_HANDLER( suprridr_fgram_w ) SCREEN_UPDATE( suprridr ) { suprridr_state *state = screen->machine->driver_data(); - UINT8 *spriteram = screen->machine->generic.spriteram.u8; + UINT8 *spriteram = state->spriteram; rectangle subclip; int i; const rectangle &visarea = screen->visible_area(); diff --git a/src/mame/video/system1.c b/src/mame/video/system1.c index 71fd04f9afc..cd0b37b2af2 100644 --- a/src/mame/video/system1.c +++ b/src/mame/video/system1.c @@ -366,7 +366,7 @@ static void draw_sprites(running_machine *machine, bitmap_t *bitmap, const recta system1_state *state = machine->driver_data(); UINT32 gfxbanks = machine->region("sprites")->bytes() / 0x8000; const UINT8 *gfxbase = machine->region("sprites")->base(); - UINT8 *spriteram = machine->generic.spriteram.u8; + UINT8 *spriteram = state->spriteram; int flipscreen = flip_screen_get(machine); int spritenum; diff --git a/src/mame/video/taito_f3.c b/src/mame/video/taito_f3.c index 8a9a5a720c2..f54eb214af6 100644 --- a/src/mame/video/taito_f3.c +++ b/src/mame/video/taito_f3.c @@ -579,25 +579,27 @@ static TILE_GET_INFO( get_tile_info_pixel ) SCREEN_EOF( f3 ) { + taito_f3_state *state = machine->driver_data(); if (sprite_lag==2) { if (machine->video().skip_this_frame() == 0) { get_sprite_info(machine, spriteram32_buffered); } - memcpy(spriteram32_buffered,machine->generic.spriteram.u32,machine->generic.spriteram_size); + memcpy(spriteram32_buffered,state->spriteram,state->spriteram_size); } else if (sprite_lag==1) { if (machine->video().skip_this_frame() == 0) { - get_sprite_info(machine, machine->generic.spriteram.u32); + get_sprite_info(machine, state->spriteram); } } } VIDEO_START( f3 ) { + taito_f3_state *state = machine->driver_data(); const struct F3config *pCFG=&f3_config_table[0]; int width, height, i; @@ -695,8 +697,8 @@ VIDEO_START( f3 ) machine->gfx[2]->color_granularity=16; flipscreen = 0; - memset(spriteram32_buffered,0,machine->generic.spriteram_size); - memset(machine->generic.spriteram.u32,0,machine->generic.spriteram_size); + memset(spriteram32_buffered,0,state->spriteram_size); + memset(state->spriteram,0,state->spriteram_size); state_save_register_global_array(machine, f3_control_0); state_save_register_global_array(machine, f3_control_1); @@ -3233,6 +3235,7 @@ static void draw_sprites(running_machine *machine, bitmap_t *bitmap, const recta SCREEN_UPDATE( f3 ) { + taito_f3_state *state = screen->machine->driver_data(); UINT32 sy_fix[5],sx_fix[5]; f3_skip_this_frame=0; @@ -3273,7 +3276,7 @@ SCREEN_UPDATE( f3 ) /* sprites */ if (sprite_lag==0) - get_sprite_info(screen->machine, screen->machine->generic.spriteram.u32); + get_sprite_info(screen->machine, state->spriteram); /* Update sprite buffer */ draw_sprites(screen->machine, bitmap,cliprect); diff --git a/src/mame/video/tankbust.c b/src/mame/video/tankbust.c index 98fac6862ac..f1a6db3902b 100644 --- a/src/mame/video/tankbust.c +++ b/src/mame/video/tankbust.c @@ -189,10 +189,11 @@ spriteram format (4 bytes per sprite): static void draw_sprites(running_machine *machine, bitmap_t *bitmap, const rectangle *cliprect) { - UINT8 *spriteram = machine->generic.spriteram.u8; + tankbust_state *state = machine->driver_data(); + UINT8 *spriteram = state->spriteram; int offs; - for (offs = 0; offs < machine->generic.spriteram_size; offs += 4) + for (offs = 0; offs < state->spriteram_size; offs += 4) { int code,color,sx,sy,flipx,flipy; diff --git a/src/mame/video/tatsumi.c b/src/mame/video/tatsumi.c index 0a1939a9921..545f003f2eb 100644 --- a/src/mame/video/tatsumi.c +++ b/src/mame/video/tatsumi.c @@ -528,7 +528,7 @@ static void mycopyrozbitmap_core(bitmap_t *bitmap,bitmap_t *srcbitmap, static void draw_sprites(running_machine *machine, bitmap_t *bitmap, const rectangle *cliprect, int write_priority_only, int rambank) { tatsumi_state *state = machine->driver_data(); - UINT16 *spriteram16 = machine->generic.spriteram.u16; + UINT16 *spriteram16 = state->spriteram; int offs,fx,x,y,color; int w,h,index,lines,scale,rotate; UINT8 *src1, *src2; diff --git a/src/mame/video/tecmo.c b/src/mame/video/tecmo.c index 0d586c21eb4..b512da68193 100644 --- a/src/mame/video/tecmo.c +++ b/src/mame/video/tecmo.c @@ -172,7 +172,7 @@ WRITE8_HANDLER( tecmo_flipscreen_w ) static void draw_sprites(running_machine *machine, bitmap_t *bitmap,const rectangle *cliprect) { tecmo_state *state = machine->driver_data(); - UINT8 *spriteram = machine->generic.spriteram.u8; + UINT8 *spriteram = state->spriteram; int offs; static const UINT8 layout[8][8] = { @@ -186,7 +186,7 @@ static void draw_sprites(running_machine *machine, bitmap_t *bitmap,const rectan {42,43,46,47,58,59,62,63} }; - for (offs = machine->generic.spriteram_size-8;offs >= 0;offs -= 8) + for (offs = state->spriteram_size-8;offs >= 0;offs -= 8) { int flags = spriteram[offs+3]; int priority = flags>>6; diff --git a/src/mame/video/tecmo16.c b/src/mame/video/tecmo16.c index 58b97cd2982..91ed2d83aa4 100644 --- a/src/mame/video/tecmo16.c +++ b/src/mame/video/tecmo16.c @@ -335,7 +335,7 @@ static void blendbitmaps(running_machine *machine, static void draw_sprites(running_machine *machine, bitmap_t *bitmap_bg, bitmap_t *bitmap_fg, bitmap_t *bitmap_sp, const rectangle *cliprect) { tecmo16_state *state = machine->driver_data(); - UINT16 *spriteram16 = machine->generic.spriteram.u16; + UINT16 *spriteram16 = state->spriteram; int offs; static const UINT8 layout[8][8] = { @@ -351,7 +351,7 @@ static void draw_sprites(running_machine *machine, bitmap_t *bitmap_bg, bitmap_t bitmap_t *bitmap = bitmap_bg; - for (offs = machine->generic.spriteram_size/2 - 8;offs >= 0;offs -= 8) + for (offs = state->spriteram_size/2 - 8;offs >= 0;offs -= 8) { if (spriteram16[offs] & 0x04) /* enable */ { diff --git a/src/mame/video/tehkanwc.c b/src/mame/video/tehkanwc.c index a89d341dd40..bf783ee2f97 100644 --- a/src/mame/video/tehkanwc.c +++ b/src/mame/video/tehkanwc.c @@ -133,10 +133,11 @@ static void gridiron_draw_led(running_machine *machine, bitmap_t *bitmap, const static void draw_sprites(running_machine *machine, bitmap_t *bitmap, const rectangle *cliprect) { - UINT8 *spriteram = machine->generic.spriteram.u8; + tehkanwc_state *state = machine->driver_data(); + UINT8 *spriteram = state->spriteram; int offs; - for (offs = 0;offs < machine->generic.spriteram_size;offs += 4) + for (offs = 0;offs < state->spriteram_size;offs += 4) { int attr = spriteram[offs + 1]; int code = spriteram[offs] + ((attr & 0x08) << 5); diff --git a/src/mame/video/terracre.c b/src/mame/video/terracre.c index 72b821cbc71..8e5287cf7a8 100644 --- a/src/mame/video/terracre.c +++ b/src/mame/video/terracre.c @@ -33,9 +33,10 @@ TILE_GET_INFO( get_fg_tile_info ) static void draw_sprites(running_machine *machine, bitmap_t *bitmap, const rectangle *cliprect ) { + terracre_state *state = machine->driver_data(); const UINT8 *spritepalettebank = machine->region("user1")->base(); const gfx_element *pGfx = machine->gfx[2]; - const UINT16 *pSource = machine->generic.spriteram.u16; + const UINT16 *pSource = state->spriteram; int i; int transparent_pen; diff --git a/src/mame/video/thedeep.c b/src/mame/video/thedeep.c index 4baa5ba0930..bb2d2b87162 100644 --- a/src/mame/video/thedeep.c +++ b/src/mame/video/thedeep.c @@ -153,7 +153,8 @@ Offset: Bits: Value: static void draw_sprites(running_machine *machine, bitmap_t *bitmap, const rectangle *cliprect) { - UINT8 *s = machine->generic.spriteram.u8, *end = s + machine->generic.spriteram_size; + thedeep_state *state = machine->driver_data(); + UINT8 *s = state->spriteram, *end = s + state->spriteram_size; while (s < end) { diff --git a/src/mame/video/timelimt.c b/src/mame/video/timelimt.c index cfb73fbf3dc..f06fdc15bc8 100644 --- a/src/mame/video/timelimt.c +++ b/src/mame/video/timelimt.c @@ -118,10 +118,11 @@ WRITE8_HANDLER( timelimt_scroll_y_w ) static void draw_sprites(running_machine *machine, bitmap_t *bitmap, const rectangle *cliprect) { - UINT8 *spriteram = machine->generic.spriteram.u8; + timelimt_state *state = machine->driver_data(); + UINT8 *spriteram = state->spriteram; int offs; - for( offs = machine->generic.spriteram_size; offs >= 0; offs -= 4 ) + for( offs = state->spriteram_size; offs >= 0; offs -= 4 ) { int sy = 240 - spriteram[offs]; int sx = spriteram[offs+3]; diff --git a/src/mame/video/tryout.c b/src/mame/video/tryout.c index 7c51c67ae71..582947e0440 100644 --- a/src/mame/video/tryout.c +++ b/src/mame/video/tryout.c @@ -184,8 +184,9 @@ VIDEO_START( tryout ) static void draw_sprites(running_machine *machine, bitmap_t *bitmap,const rectangle *cliprect) { - UINT8 *spriteram = machine->generic.spriteram.u8; - UINT8 *spriteram_2 = machine->generic.spriteram2.u8; + tryout_state *state = machine->driver_data(); + UINT8 *spriteram = state->spriteram; + UINT8 *spriteram_2 = state->spriteram2; int offs,fx,fy,x,y,color,sprite,inc; for (offs = 0;offs < 0x7f;offs += 4) diff --git a/src/mame/video/tsamurai.c b/src/mame/video/tsamurai.c index 8a6a0a46985..c93a243b5f8 100644 --- a/src/mame/video/tsamurai.c +++ b/src/mame/video/tsamurai.c @@ -146,7 +146,7 @@ WRITE8_HANDLER( tsamurai_fg_colorram_w ) static void draw_sprites(running_machine *machine, bitmap_t *bitmap, const rectangle *cliprect ) { tsamurai_state *state = machine->driver_data(); - UINT8 *spriteram = machine->generic.spriteram.u8; + UINT8 *spriteram = state->spriteram; gfx_element *gfx = machine->gfx[2]; const UINT8 *source = spriteram+32*4-4; const UINT8 *finish = spriteram; /* ? */ diff --git a/src/mame/video/undrfire.c b/src/mame/video/undrfire.c index 0bbe1443356..0c0766c4176 100644 --- a/src/mame/video/undrfire.c +++ b/src/mame/video/undrfire.c @@ -67,7 +67,7 @@ Heavy use is made of sprite zooming. static void draw_sprites(running_machine *machine, bitmap_t *bitmap,const rectangle *cliprect,const int *primasks,int x_offs,int y_offs) { undrfire_state *state = machine->driver_data(); - UINT32 *spriteram32 = machine->generic.spriteram.u32; + UINT32 *spriteram32 = state->spriteram; UINT16 *spritemap = (UINT16 *)machine->region("user1")->base(); int offs, data, tilenum, color, flipx, flipy; int x, y, priority, dblsize, curx, cury; @@ -80,7 +80,7 @@ static void draw_sprites(running_machine *machine, bitmap_t *bitmap,const rectan while processing sprite ram and then draw them all at the end */ struct tempsprite *sprite_ptr = state->spritelist; - for (offs = (machine->generic.spriteram_size/4-4);offs >= 0;offs -= 4) + for (offs = (state->spriteram_size/4-4);offs >= 0;offs -= 4) { data = spriteram32[offs+0]; flipx = (data & 0x00800000) >> 23; @@ -211,7 +211,7 @@ logerror("Sprite number %04x had %02x invalid chunks\n",tilenum,bad_chunks); static void draw_sprites_cbombers(running_machine *machine, bitmap_t *bitmap,const rectangle *cliprect,const int *primasks,int x_offs,int y_offs) { undrfire_state *state = machine->driver_data(); - UINT32 *spriteram32 = machine->generic.spriteram.u32; + UINT32 *spriteram32 = state->spriteram; UINT16 *spritemap = (UINT16 *)machine->region("user1")->base(); UINT8 *spritemapHibit = (UINT8 *)machine->region("user2")->base(); @@ -226,7 +226,7 @@ static void draw_sprites_cbombers(running_machine *machine, bitmap_t *bitmap,con while processing sprite ram and then draw them all at the end */ struct tempsprite *sprite_ptr = state->spritelist; - for (offs = (machine->generic.spriteram_size/4-4);offs >= 0;offs -= 4) + for (offs = (state->spriteram_size/4-4);offs >= 0;offs -= 4) { data = spriteram32[offs+0]; flipx = (data & 0x00800000) >> 23; diff --git a/src/mame/video/unico.c b/src/mame/video/unico.c index 83f21ec3122..449362fc3e9 100644 --- a/src/mame/video/unico.c +++ b/src/mame/video/unico.c @@ -224,11 +224,11 @@ VIDEO_START( zeropnt2 ) static void unico_draw_sprites(running_machine *machine, bitmap_t *bitmap,const rectangle *cliprect) { unico_state *state = machine->driver_data(); - UINT16 *spriteram16 = machine->generic.spriteram.u16; + UINT16 *spriteram16 = state->spriteram; int offs; /* Draw them backwards, for pdrawgfx */ - for ( offs = (machine->generic.spriteram_size-8)/2; offs >= 0 ; offs -= 8/2 ) + for ( offs = (state->spriteram_size-8)/2; offs >= 0 ; offs -= 8/2 ) { int x, startx, endx, incx; @@ -279,11 +279,11 @@ static void unico_draw_sprites(running_machine *machine, bitmap_t *bitmap,const static void zeropnt2_draw_sprites(running_machine *machine, bitmap_t *bitmap,const rectangle *cliprect) { unico_state *state = machine->driver_data(); - UINT32 *spriteram32 = machine->generic.spriteram.u32; + UINT32 *spriteram32 = (UINT32 *)state->spriteram; int offs; /* Draw them backwards, for pdrawgfx */ - for ( offs = (machine->generic.spriteram_size-8)/4; offs >= 0 ; offs -= 8/4 ) + for ( offs = (state->spriteram_size-8)/4; offs >= 0 ; offs -= 8/4 ) { int x, startx, endx, incx; diff --git a/src/mame/video/vball.c b/src/mame/video/vball.c index 608ddd9983f..1448be46a0f 100644 --- a/src/mame/video/vball.c +++ b/src/mame/video/vball.c @@ -116,14 +116,15 @@ void vb_mark_all_dirty( running_machine *machine ) static void draw_sprites(running_machine *machine, bitmap_t *bitmap, const rectangle *cliprect) { + vball_state *state = machine->driver_data(); const gfx_element *gfx = machine->gfx[1]; - UINT8 *src = machine->generic.spriteram.u8; + UINT8 *src = state->spriteram; int i; /* 240-Y S|X|CLR|WCH WHICH 240-X xxxxxxxx x|x|xxx|xxx xxxxxxxx xxxxxxxx */ - for (i = 0;i < machine->generic.spriteram_size;i += 4) + for (i = 0;i < state->spriteram_size;i += 4) { int attr = src[i+1]; int which = src[i+2]+((attr & 0x07)<<8); diff --git a/src/mame/video/vigilant.c b/src/mame/video/vigilant.c index 94b1899c6f5..3f97ddb8e4b 100644 --- a/src/mame/video/vigilant.c +++ b/src/mame/video/vigilant.c @@ -239,10 +239,11 @@ static void draw_background(running_machine *machine, bitmap_t *bitmap, const re static void draw_sprites(running_machine *machine, bitmap_t *bitmap,const rectangle *cliprect) { - UINT8 *spriteram = machine->generic.spriteram.u8; + vigilant_state *state = machine->driver_data(); + UINT8 *spriteram = state->spriteram; int offs; - for (offs = 0;offs < machine->generic.spriteram_size;offs += 8) + for (offs = 0;offs < state->spriteram_size;offs += 8) { int code,color,sx,sy,flipx,flipy,h,y; diff --git a/src/mame/video/vulgus.c b/src/mame/video/vulgus.c index 8c0a8050000..200e881446a 100644 --- a/src/mame/video/vulgus.c +++ b/src/mame/video/vulgus.c @@ -173,11 +173,12 @@ WRITE8_HANDLER( vulgus_palette_bank_w ) static void draw_sprites(running_machine *machine, bitmap_t *bitmap,const rectangle *cliprect) { - UINT8 *spriteram = machine->generic.spriteram.u8; + vulgus_state *state = machine->driver_data(); + UINT8 *spriteram = state->spriteram; int offs; - for (offs = machine->generic.spriteram_size - 4;offs >= 0;offs -= 4) + for (offs = state->spriteram_size - 4;offs >= 0;offs -= 4) { int code,i,col,sx,sy,dir; diff --git a/src/mame/video/wc90.c b/src/mame/video/wc90.c index 8299f2ad97a..15b5136ddb2 100644 --- a/src/mame/video/wc90.c +++ b/src/mame/video/wc90.c @@ -317,11 +317,12 @@ static const draw_sprites_func draw_sprites_proc[16] = { static void draw_sprites(running_machine *machine, bitmap_t *bitmap, const rectangle *cliprect, int priority ) { - UINT8 *spriteram = machine->generic.spriteram.u8; + wc90_state *state = machine->driver_data(); + UINT8 *spriteram = state->spriteram; int offs, sx,sy, flags, which; /* draw all visible sprites of specified priority */ - for (offs = 0;offs < machine->generic.spriteram_size;offs += 16){ + for (offs = 0;offs < state->spriteram_size;offs += 16){ int bank = spriteram[offs+0]; if ( ( bank >> 4 ) == priority ) { diff --git a/src/mame/video/wc90b.c b/src/mame/video/wc90b.c index 7377c57f9f3..df6e42f3f3b 100644 --- a/src/mame/video/wc90b.c +++ b/src/mame/video/wc90b.c @@ -100,11 +100,12 @@ WRITE8_HANDLER( wc90b_txvideoram_w ) static void draw_sprites(running_machine *machine, bitmap_t *bitmap, const rectangle *cliprect, int priority ) { - UINT8 *spriteram = machine->generic.spriteram.u8; + wc90b_state *state = machine->driver_data(); + UINT8 *spriteram = state->spriteram; int offs, sx, sy; /* draw all visible sprites of specified priority */ - for ( offs = machine->generic.spriteram_size - 8 ; offs >= 0 ; offs -= 8 ) + for ( offs = state->spriteram_size - 8 ; offs >= 0 ; offs -= 8 ) { if ( ( ~( spriteram[offs+3] >> 7 ) & 1 ) == priority ) { diff --git a/src/mame/video/wecleman.c b/src/mame/video/wecleman.c index 917757ac3b6..bcb0ddde3fa 100644 --- a/src/mame/video/wecleman.c +++ b/src/mame/video/wecleman.c @@ -80,7 +80,7 @@ static void get_sprite_info(running_machine *machine) UINT8 *base_gfx = machine->region("gfx1")->base(); int gfx_max = machine->region("gfx1")->bytes(); - UINT16 *source = machine->generic.spriteram.u16; + UINT16 *source = state->spriteram; struct sprite *sprite = state->sprite_list; struct sprite *finish = state->sprite_list + NUM_SPRITES; diff --git a/src/mame/video/wiping.c b/src/mame/video/wiping.c index 7a8c4a9a7d9..f22287868d0 100644 --- a/src/mame/video/wiping.c +++ b/src/mame/video/wiping.c @@ -89,7 +89,7 @@ WRITE8_HANDLER( wiping_flipscreen_w ) SCREEN_UPDATE( wiping ) { wiping_state *state = screen->machine->driver_data(); - UINT8 *spriteram = screen->machine->generic.spriteram.u8; + UINT8 *spriteram = state->spriteram; int offs; for (offs = 0x3ff; offs > 0; offs--) diff --git a/src/mame/video/wiz.c b/src/mame/video/wiz.c index eefb08db21b..6f99a6f218c 100644 --- a/src/mame/video/wiz.c +++ b/src/mame/video/wiz.c @@ -197,7 +197,7 @@ static void draw_sprites(running_machine *machine, bitmap_t *bitmap, wiz_state *state = machine->driver_data(); int offs; - for (offs = machine->generic.spriteram_size - 4;offs >= 0;offs -= 4) + for (offs = state->spriteram_size - 4;offs >= 0;offs -= 4) { int sx,sy; @@ -225,8 +225,8 @@ SCREEN_UPDATE( kungfut ) bitmap_fill(bitmap,cliprect,state->bgpen); draw_background(screen->machine, bitmap, cliprect, 2 + state->char_bank[0] , 0); draw_foreground(screen->machine, bitmap, cliprect, 0); - draw_sprites(screen->machine, bitmap, cliprect, screen->machine->generic.spriteram2.u8, 4); - draw_sprites(screen->machine, bitmap, cliprect, screen->machine->generic.spriteram.u8 , 5); + draw_sprites(screen->machine, bitmap, cliprect, state->spriteram2, 4); + draw_sprites(screen->machine, bitmap, cliprect, state->spriteram , 5); return 0; } @@ -244,8 +244,8 @@ SCREEN_UPDATE( wiz ) bank = 7 + *state->sprite_bank; - draw_sprites(screen->machine, bitmap, visible_area, screen->machine->generic.spriteram2.u8, 6); - draw_sprites(screen->machine, bitmap, visible_area, screen->machine->generic.spriteram.u8 , bank); + draw_sprites(screen->machine, bitmap, visible_area, state->spriteram2, 6); + draw_sprites(screen->machine, bitmap, visible_area, state->spriteram , bank); return 0; } @@ -256,7 +256,7 @@ SCREEN_UPDATE( stinger ) bitmap_fill(bitmap,cliprect,state->bgpen); draw_background(screen->machine, bitmap, cliprect, 2 + state->char_bank[0], 1); draw_foreground(screen->machine, bitmap, cliprect, 1); - draw_sprites(screen->machine, bitmap, cliprect, screen->machine->generic.spriteram2.u8, 4); - draw_sprites(screen->machine, bitmap, cliprect, screen->machine->generic.spriteram.u8 , 5); + draw_sprites(screen->machine, bitmap, cliprect, state->spriteram2, 4); + draw_sprites(screen->machine, bitmap, cliprect, state->spriteram , 5); return 0; } diff --git a/src/mame/video/xain.c b/src/mame/video/xain.c index 959b585a38d..2ea784e7e69 100644 --- a/src/mame/video/xain.c +++ b/src/mame/video/xain.c @@ -174,10 +174,11 @@ WRITE8_HANDLER( xain_flipscreen_w ) static void draw_sprites(running_machine *machine, bitmap_t *bitmap,const rectangle *cliprect) { - UINT8 *spriteram = machine->generic.spriteram.u8; + xain_state *state = machine->driver_data(); + UINT8 *spriteram = state->spriteram; int offs; - for (offs = 0; offs < machine->generic.spriteram_size;offs += 4) + for (offs = 0; offs < state->spriteram_size;offs += 4) { int sx,sy,flipx,flipy; int attr = spriteram[offs+1]; diff --git a/src/mame/video/xorworld.c b/src/mame/video/xorworld.c index 45f4f7b0d20..7a776032244 100644 --- a/src/mame/video/xorworld.c +++ b/src/mame/video/xorworld.c @@ -98,7 +98,8 @@ VIDEO_START( xorworld ) static void draw_sprites(running_machine *machine, bitmap_t *bitmap, const rectangle *cliprect ) { - UINT16 *spriteram16 = machine->generic.spriteram.u16; + xorworld_state *state = machine->driver_data(); + UINT16 *spriteram16 = state->spriteram; int i; for (i = 0; i < 0x40; i += 2) diff --git a/src/mame/video/zaccaria.c b/src/mame/video/zaccaria.c index 3376cc4a27a..eb62adf08a3 100644 --- a/src/mame/video/zaccaria.c +++ b/src/mame/video/zaccaria.c @@ -250,9 +250,9 @@ SCREEN_UPDATE( zaccaria ) // 3 layers of sprites, each with their own palette and priorities // Not perfect yet, does spriteram(1) layer have a priority bit somewhere? - draw_sprites(screen->machine,bitmap,cliprect,screen->machine->generic.spriteram2.u8,2,1); - draw_sprites(screen->machine,bitmap,cliprect,screen->machine->generic.spriteram.u8,1,0); - draw_sprites(screen->machine,bitmap,cliprect,screen->machine->generic.spriteram2.u8+0x20,0,1); + draw_sprites(screen->machine,bitmap,cliprect,state->spriteram2,2,1); + draw_sprites(screen->machine,bitmap,cliprect,state->spriteram,1,0); + draw_sprites(screen->machine,bitmap,cliprect,state->spriteram2+0x20,0,1); return 0; }