diff --git a/src/emu/machine.c b/src/emu/machine.c index 60a5e7eca37..f4a493688d6 100644 --- a/src/emu/machine.c +++ b/src/emu/machine.c @@ -253,6 +253,7 @@ void running_machine::start() m_render = auto_alloc(*this, render_manager(*this)); generic_machine_init(*this); generic_sound_init(*this); + generic_video_init(*this); // allocate a soft_reset timer m_soft_reset_timer = m_scheduler.timer_alloc(timer_expired_delegate(FUNC(running_machine::soft_reset), this)); @@ -286,9 +287,6 @@ void running_machine::start() memory_init(*this); watchdog_init(*this); - // must happen after memory_init because this relies on generic.spriteram - generic_video_init(*this); - // allocate the gfx elements prior to device initialization gfx_init(*this); diff --git a/src/emu/machine.h b/src/emu/machine.h index acdeb0f29f2..1f064c00448 100644 --- a/src/emu/machine.h +++ b/src/emu/machine.h @@ -263,10 +263,6 @@ private: // holds generic pointers that are commonly used struct generic_pointers { - generic_ptr spriteram; // spriteram - UINT32 spriteram_size; - generic_ptr spriteram2; // secondary spriteram - UINT32 spriteram2_size; generic_ptr paletteram; // palette RAM generic_ptr paletteram2; // secondary palette RAM }; diff --git a/src/emu/video/bufsprite.h b/src/emu/video/bufsprite.h index 44bad367f9f..0fc174f4f04 100644 --- a/src/emu/video/bufsprite.h +++ b/src/emu/video/bufsprite.h @@ -115,7 +115,6 @@ protected: // first-time setup virtual void device_start() { - printf("tag=%s spriteram=%p size=%d\n", tag(), (void *)m_spriteram, UINT32(m_spriteram.bytes())); if (m_spriteram != NULL) { m_buffered.resize(m_spriteram.bytes() / sizeof(_Type)); diff --git a/src/mame/drivers/expro02.c b/src/mame/drivers/expro02.c index b2fc395fa30..8fad27f572c 100644 --- a/src/mame/drivers/expro02.c +++ b/src/mame/drivers/expro02.c @@ -161,8 +161,6 @@ public: UINT16 m_vram_0_bank_num; UINT16 m_vram_1_bank_num; - //UINT8 *m_spriteram; - //size_t m_spriteram_size; }; @@ -389,7 +387,7 @@ static ADDRESS_MAP_START( galsnew_map, AS_PROGRAM, 16 ) AM_RANGE(0x680000, 0x68001f) AM_RAM_WRITE(kaneko16_layers_0_regs_w) AM_BASE_MEMBER(expro02_state, m_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_SHARE("spriteram") // sprites? 0x72f words tested AM_RANGE(0x780000, 0x78001f) AM_RAM_WRITE(kaneko16_sprites_regs_w) AM_BASE_MEMBER(expro02_state, m_sprites_regs) // sprite regs? tileregs? @@ -423,7 +421,7 @@ static ADDRESS_MAP_START( fantasia_map, AS_PROGRAM, 16 ) AM_RANGE(0x583000, 0x583fff) AM_RAM AM_BASE_MEMBER(expro02_state, m_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_MEMBER(expro02_state, m_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_SHARE("spriteram") // sprites? 0x72f words tested AM_RANGE(0x780000, 0x78001f) AM_RAM_WRITE(kaneko16_sprites_regs_w) AM_BASE_MEMBER(expro02_state, m_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/galaxian.c b/src/mame/drivers/galaxian.c index ad315571411..0e59a014872 100644 --- a/src/mame/drivers/galaxian.c +++ b/src/mame/drivers/galaxian.c @@ -1362,7 +1362,7 @@ static ADDRESS_MAP_START( galaxian_map_base, AS_PROGRAM, 8 ) AM_RANGE(0x0000, 0x3fff) AM_ROM AM_RANGE(0x4000, 0x43ff) AM_MIRROR(0x0400) AM_RAM AM_RANGE(0x5000, 0x53ff) AM_MIRROR(0x0400) AM_RAM_WRITE(galaxian_videoram_w) AM_BASE_MEMBER(galaxian_state, m_videoram) - AM_RANGE(0x5800, 0x58ff) AM_MIRROR(0x0700) AM_RAM_WRITE(galaxian_objram_w) AM_BASE_GENERIC(spriteram) + AM_RANGE(0x5800, 0x58ff) AM_MIRROR(0x0700) AM_RAM_WRITE(galaxian_objram_w) AM_SHARE("spriteram") AM_RANGE(0x6000, 0x6000) AM_MIRROR(0x07ff) AM_READ_PORT("IN0") AM_RANGE(0x6000, 0x6001) AM_MIRROR(0x07f8) AM_WRITE(start_lamp_w) AM_RANGE(0x6002, 0x6002) AM_MIRROR(0x07f8) AM_WRITE(coin_lock_w) @@ -1397,7 +1397,7 @@ static ADDRESS_MAP_START( mooncrst_map_base, AS_PROGRAM, 8 ) AM_RANGE(0x0000, 0x3fff) AM_ROM AM_RANGE(0x8000, 0x83ff) AM_MIRROR(0x0400) AM_RAM AM_RANGE(0x9000, 0x93ff) AM_MIRROR(0x0400) AM_RAM_WRITE(galaxian_videoram_w) AM_BASE_MEMBER(galaxian_state, m_videoram) - AM_RANGE(0x9800, 0x98ff) AM_MIRROR(0x0700) AM_RAM_WRITE(galaxian_objram_w) AM_BASE_GENERIC(spriteram) + AM_RANGE(0x9800, 0x98ff) AM_MIRROR(0x0700) AM_RAM_WRITE(galaxian_objram_w) AM_SHARE("spriteram") AM_RANGE(0xa000, 0xa000) AM_MIRROR(0x07ff) AM_READ_PORT("IN0") AM_RANGE(0xa000, 0xa002) AM_MIRROR(0x07f8) AM_WRITE(galaxian_gfxbank_w) AM_RANGE(0xa003, 0xa003) AM_MIRROR(0x07f8) AM_WRITE(coin_count_0_w) @@ -1429,7 +1429,7 @@ static ADDRESS_MAP_START( dambustr_map, AS_PROGRAM, 8 ) // AM_RANGE(0x8001, 0x8001) AM_WRITE(dambustr_bg_split_line_w) AM_RANGE(0xc000, 0xc3ff) AM_MIRROR(0x0400) AM_RAM AM_RANGE(0xd000, 0xd3ff) AM_MIRROR(0x0400) AM_RAM_WRITE(galaxian_videoram_w) AM_BASE_MEMBER(galaxian_state, m_videoram) - AM_RANGE(0xd800, 0xd8ff) AM_MIRROR(0x0700) AM_RAM_WRITE(galaxian_objram_w) AM_BASE_GENERIC(spriteram) + AM_RANGE(0xd800, 0xd8ff) AM_MIRROR(0x0700) AM_RAM_WRITE(galaxian_objram_w) AM_SHARE("spriteram") AM_RANGE(0xe000, 0xe000) AM_MIRROR(0x07ff) AM_READ_PORT("IN0") AM_RANGE(0xe004, 0xe007) AM_MIRROR(0x07f8) AM_WRITE(galaxian_lfo_freq_w) AM_RANGE(0xe800, 0xe800) AM_MIRROR(0x07ff) AM_READ_PORT("IN1") @@ -1451,7 +1451,7 @@ static ADDRESS_MAP_START( theend_map, AS_PROGRAM, 8 ) AM_RANGE(0x0000, 0x3fff) AM_ROM AM_RANGE(0x4000, 0x47ff) AM_RAM AM_RANGE(0x4800, 0x4bff) AM_MIRROR(0x0400) AM_RAM_WRITE(galaxian_videoram_w) AM_BASE_MEMBER(galaxian_state, m_videoram) - AM_RANGE(0x5000, 0x50ff) AM_MIRROR(0x0700) AM_RAM_WRITE(galaxian_objram_w) AM_BASE_GENERIC(spriteram) + AM_RANGE(0x5000, 0x50ff) AM_MIRROR(0x0700) AM_RAM_WRITE(galaxian_objram_w) AM_SHARE("spriteram") AM_RANGE(0x6801, 0x6801) AM_MIRROR(0x07f8) AM_WRITE(irq_enable_w) AM_RANGE(0x6802, 0x6802) AM_MIRROR(0x07f8) AM_WRITE(coin_count_0_w) AM_RANGE(0x6803, 0x6803) AM_MIRROR(0x07f8) AM_WRITE(scramble_background_enable_w) @@ -1470,7 +1470,7 @@ static ADDRESS_MAP_START( scobra_map, AS_PROGRAM, 8 ) AM_RANGE(0x0000, 0x7fff) AM_ROM AM_RANGE(0x8000, 0x87ff) AM_MIRROR(0x4000) AM_RAM AM_RANGE(0x8800, 0x8bff) AM_MIRROR(0x4400) AM_RAM_WRITE(galaxian_videoram_w) AM_BASE_MEMBER(galaxian_state, m_videoram) - AM_RANGE(0x9000, 0x90ff) AM_MIRROR(0x4700) AM_RAM_WRITE(galaxian_objram_w) AM_BASE_GENERIC(spriteram) + AM_RANGE(0x9000, 0x90ff) AM_MIRROR(0x4700) AM_RAM_WRITE(galaxian_objram_w) AM_SHARE("spriteram") AM_RANGE(0x9800, 0x9803) AM_MIRROR(0x47fc) AM_DEVREADWRITE("ppi8255_0", ppi8255_r, ppi8255_w) AM_RANGE(0xa000, 0xa003) AM_MIRROR(0x47fc) AM_DEVREADWRITE("ppi8255_1", ppi8255_r, ppi8255_w) AM_RANGE(0xa801, 0xa801) AM_MIRROR(0x47f8) AM_WRITE(irq_enable_w) @@ -1496,7 +1496,7 @@ static ADDRESS_MAP_START( anteateruk_map, AS_PROGRAM, 8 ) AM_RANGE(0x1005, 0x1005) AM_MIRROR(0x01f8) //POUT2 AM_RANGE(0x1006, 0x1006) AM_MIRROR(0x01f8) AM_WRITE(galaxian_flip_screen_x_w) AM_RANGE(0x1007, 0x1007) AM_MIRROR(0x01f8) AM_WRITE(galaxian_flip_screen_y_w) - AM_RANGE(0x1200, 0x12ff) AM_MIRROR(0x0100) AM_RAM_WRITE(galaxian_objram_w) AM_BASE_GENERIC(spriteram) + AM_RANGE(0x1200, 0x12ff) AM_MIRROR(0x0100) AM_RAM_WRITE(galaxian_objram_w) AM_SHARE("spriteram") AM_RANGE(0x1400, 0x1400) AM_MIRROR(0x03ff) AM_READ(watchdog_reset_r) AM_RANGE(0x4000, 0xbfff) AM_ROM AM_RANGE(0xc000, 0xc003) AM_MIRROR(0x3efc) AM_DEVREADWRITE("ppi8255_1", ppi8255_r, ppi8255_w) @@ -1509,7 +1509,7 @@ static ADDRESS_MAP_START( anteaterg_map, AS_PROGRAM, 8 ) AM_RANGE(0x0000, 0x03ff) AM_ROM AM_RANGE(0x0400, 0x0bff) AM_RAM AM_RANGE(0x0c00, 0x0fff) AM_RAM_WRITE(galaxian_videoram_w) AM_BASE_MEMBER(galaxian_state, m_videoram) - AM_RANGE(0x2000, 0x20ff) AM_MIRROR(0x0300) AM_RAM_WRITE(galaxian_objram_w) AM_BASE_GENERIC(spriteram) + AM_RANGE(0x2000, 0x20ff) AM_MIRROR(0x0300) AM_RAM_WRITE(galaxian_objram_w) AM_SHARE("spriteram") AM_RANGE(0x2400, 0x2403) AM_MIRROR(0x01fc) AM_DEVREADWRITE("ppi8255_1", ppi8255_r, ppi8255_w) AM_RANGE(0x2601, 0x2601) AM_MIRROR(0x01f8) AM_WRITE(irq_enable_w) AM_RANGE(0x2602, 0x2602) AM_MIRROR(0x01f8) AM_WRITE(coin_count_0_w) @@ -1532,7 +1532,7 @@ static ADDRESS_MAP_START( frogger_map, AS_PROGRAM, 8 ) AM_RANGE(0x8000, 0x87ff) AM_RAM AM_RANGE(0x8800, 0x8800) AM_MIRROR(0x07ff) AM_READ(watchdog_reset_r) AM_RANGE(0xa800, 0xabff) AM_MIRROR(0x0400) AM_RAM_WRITE(galaxian_videoram_w) AM_BASE_MEMBER(galaxian_state, m_videoram) - AM_RANGE(0xb000, 0xb0ff) AM_MIRROR(0x0700) AM_RAM_WRITE(galaxian_objram_w) AM_BASE_GENERIC(spriteram) + AM_RANGE(0xb000, 0xb0ff) AM_MIRROR(0x0700) AM_RAM_WRITE(galaxian_objram_w) AM_SHARE("spriteram") AM_RANGE(0xb808, 0xb808) AM_MIRROR(0x07e3) AM_WRITE(irq_enable_w) AM_RANGE(0xb80c, 0xb80c) AM_MIRROR(0x07e3) AM_WRITE(galaxian_flip_screen_y_w) AM_RANGE(0xb810, 0xb810) AM_MIRROR(0x07e3) AM_WRITE(galaxian_flip_screen_x_w) @@ -1548,7 +1548,7 @@ static ADDRESS_MAP_START( turtles_map, AS_PROGRAM, 8 ) AM_RANGE(0x0000, 0x7fff) AM_ROM AM_RANGE(0x8000, 0x87ff) AM_MIRROR(0x4000) AM_RAM AM_RANGE(0x9000, 0x93ff) AM_MIRROR(0x4400) AM_RAM_WRITE(galaxian_videoram_w) AM_BASE_MEMBER(galaxian_state, m_videoram) - AM_RANGE(0x9800, 0x98ff) AM_MIRROR(0x4700) AM_RAM_WRITE(galaxian_objram_w) AM_BASE_GENERIC(spriteram) + AM_RANGE(0x9800, 0x98ff) AM_MIRROR(0x4700) AM_RAM_WRITE(galaxian_objram_w) AM_SHARE("spriteram") AM_RANGE(0xa000, 0xa000) AM_MIRROR(0x47c7) AM_WRITE(scramble_background_red_w) AM_RANGE(0xa008, 0xa008) AM_MIRROR(0x47c7) AM_WRITE(irq_enable_w) AM_RANGE(0xa010, 0xa010) AM_MIRROR(0x47c7) AM_WRITE(galaxian_flip_screen_y_w) @@ -1569,7 +1569,7 @@ static ADDRESS_MAP_START( sfx_map, AS_PROGRAM, 8 ) AM_RANGE(0x0000, 0x3fff) AM_ROM AM_RANGE(0x4000, 0x47ff) AM_RAM AM_RANGE(0x4800, 0x4bff) AM_MIRROR(0x0400) AM_RAM_WRITE(galaxian_videoram_w) AM_BASE_MEMBER(galaxian_state, m_videoram) - AM_RANGE(0x5000, 0x50ff) AM_MIRROR(0x0700) AM_RAM_WRITE(galaxian_objram_w) AM_BASE_GENERIC(spriteram) + AM_RANGE(0x5000, 0x50ff) AM_MIRROR(0x0700) AM_RAM_WRITE(galaxian_objram_w) AM_SHARE("spriteram") AM_RANGE(0x6800, 0x6800) AM_MIRROR(0x07f8) AM_WRITE(scramble_background_red_w) AM_RANGE(0x6801, 0x6801) AM_MIRROR(0x07f8) AM_WRITE(irq_enable_w) AM_RANGE(0x6802, 0x6802) AM_MIRROR(0x07f8) AM_WRITE(coin_count_0_w) @@ -1598,7 +1598,7 @@ static ADDRESS_MAP_START( jumpbug_map, AS_PROGRAM, 8 ) AM_RANGE(0x0000, 0x3fff) AM_ROM AM_RANGE(0x4000, 0x47ff) AM_RAM AM_RANGE(0x4800, 0x4bff) AM_MIRROR(0x0400) AM_RAM_WRITE(galaxian_videoram_w) AM_BASE_MEMBER(galaxian_state, m_videoram) - AM_RANGE(0x5000, 0x50ff) AM_MIRROR(0x0700) AM_RAM_WRITE(galaxian_objram_w) AM_BASE_GENERIC(spriteram) + AM_RANGE(0x5000, 0x50ff) AM_MIRROR(0x0700) AM_RAM_WRITE(galaxian_objram_w) AM_SHARE("spriteram") AM_RANGE(0x5800, 0x5800) AM_MIRROR(0x00ff) AM_DEVWRITE("aysnd", ay8910_data_w) AM_RANGE(0x5900, 0x5900) AM_MIRROR(0x00ff) AM_DEVWRITE("aysnd", ay8910_address_w) AM_RANGE(0x6000, 0x6000) AM_MIRROR(0x07ff) AM_READ_PORT("IN0") @@ -1620,7 +1620,7 @@ static ADDRESS_MAP_START( frogf_map, AS_PROGRAM, 8 ) AM_RANGE(0x0000, 0x3fff) AM_ROM AM_RANGE(0x8000, 0x87ff) AM_RAM AM_RANGE(0x8800, 0x8bff) AM_MIRROR(0x0400) AM_RAM_WRITE(galaxian_videoram_w) AM_BASE_MEMBER(galaxian_state, m_videoram) - AM_RANGE(0x9000, 0x90ff) AM_MIRROR(0x0700) AM_RAM_WRITE(galaxian_objram_w) AM_BASE_GENERIC(spriteram) + AM_RANGE(0x9000, 0x90ff) AM_MIRROR(0x0700) AM_RAM_WRITE(galaxian_objram_w) AM_SHARE("spriteram") AM_RANGE(0xa802, 0xa802) AM_MIRROR(0x07f1) AM_WRITE(galaxian_flip_screen_x_w) AM_RANGE(0xa804, 0xa804) AM_MIRROR(0x07f1) AM_WRITE(irq_enable_w) AM_RANGE(0xa806, 0xa806) AM_MIRROR(0x07f1) AM_WRITE(galaxian_flip_screen_y_w) @@ -1637,7 +1637,7 @@ static ADDRESS_MAP_START( mshuttle_map, AS_PROGRAM, 8 ) AM_RANGE(0x0000, 0x7fff) AM_ROM AM_RANGE(0x8000, 0x83ff) AM_RAM AM_RANGE(0x9000, 0x93ff) AM_MIRROR(0x0400) AM_RAM_WRITE(galaxian_videoram_w) AM_BASE_MEMBER(galaxian_state, m_videoram) - AM_RANGE(0x9800, 0x98ff) AM_MIRROR(0x0700) AM_RAM_WRITE(galaxian_objram_w) AM_BASE_GENERIC(spriteram) + AM_RANGE(0x9800, 0x98ff) AM_MIRROR(0x0700) AM_RAM_WRITE(galaxian_objram_w) AM_SHARE("spriteram") AM_RANGE(0xa000, 0xa000) AM_READ_PORT("IN0") AM_RANGE(0xa000, 0xa000) AM_WRITE(irq_enable_w) AM_RANGE(0xa001, 0xa001) AM_WRITE(galaxian_stars_enable_w) diff --git a/src/mame/drivers/galpani2.c b/src/mame/drivers/galpani2.c index 3a1e0dad22a..f5e92436fe5 100644 --- a/src/mame/drivers/galpani2.c +++ b/src/mame/drivers/galpani2.c @@ -296,7 +296,7 @@ static ADDRESS_MAP_START( galpani2_mem1, AS_PROGRAM, 16 ) AM_RANGE(0x100000, 0x10ffff) AM_RAM AM_BASE_MEMBER(galpani2_state, m_ram) // Work RAM AM_RANGE(0x110000, 0x11000f) AM_RAM // ? corrupted? stack dumper on POST failure, pc+sr on gp2se AM_RANGE(0x300000, 0x301fff) AM_RAM // ? - AM_RANGE(0x302000, 0x303fff) AM_RAM AM_BASE_SIZE_GENERIC(spriteram) // Sprites + AM_RANGE(0x302000, 0x303fff) AM_RAM AM_SHARE("spriteram") // Sprites AM_RANGE(0x304000, 0x30401f) AM_RAM_WRITE(kaneko16_sprites_regs_w) AM_BASE_MEMBER(galpani2_state, m_sprites_regs) // Sprites Regs AM_RANGE(0x308000, 0x308001) AM_WRITENOP // ? 0 at startup AM_RANGE(0x30c000, 0x30c001) AM_WRITENOP // ? hblank effect ? diff --git a/src/mame/drivers/galpani3.c b/src/mame/drivers/galpani3.c index 809ae9773b2..0d8083881d5 100644 --- a/src/mame/drivers/galpani3.c +++ b/src/mame/drivers/galpani3.c @@ -72,6 +72,7 @@ class galpani3_state : public kaneko16_state public: galpani3_state(const machine_config &mconfig, device_type type, const char *tag) : kaneko16_state(mconfig, type, tag), + m_sprite_bitmap_1(1024, 1024), m_maincpu(*this,"maincpu") { } @@ -103,10 +104,9 @@ public: UINT16* m_framebuffer1_bright1; UINT16* m_framebuffer1_bright2; UINT16 *m_sprregs; - UINT16 *m_spriteram; - UINT32 *m_spriteram32; - UINT32 *m_spc_regs; - bitmap_ind16 *m_sprite_bitmap_1; + UINT32 m_spriteram32[0x4000/4]; + UINT32 m_spc_regs[0x40/4]; + bitmap_ind16 m_sprite_bitmap_1; UINT16 *m_mcu_ram; UINT16 m_mcu_com[4]; int m_regs1_i; @@ -151,11 +151,6 @@ static VIDEO_START(galpani3) { galpani3_state *state = machine.driver_data(); /* so we can use suprnova.c */ - state->m_spriteram32 = auto_alloc_array(machine, UINT32, 0x4000/4); - machine.generic.spriteram_size = 0x4000; - state->m_spc_regs = auto_alloc_array(machine, UINT32, 0x40/4); - - state->m_sprite_bitmap_1 = auto_bitmap_ind16_alloc(machine,1024,1024); state->m_spritegen = machine.device("spritegen"); state->m_spritegen->skns_sprite_kludge(0,0); @@ -352,14 +347,14 @@ static SCREEN_UPDATE_RGB32(galpani3) } } - state->m_sprite_bitmap_1->fill(0x0000, cliprect); + state->m_sprite_bitmap_1.fill(0x0000, cliprect); - state->m_spritegen->skns_draw_sprites(screen.machine(), *state->m_sprite_bitmap_1, cliprect, state->m_spriteram32, screen.machine().generic.spriteram_size, screen.machine().region("gfx1")->base(), screen.machine().region ("gfx1")->bytes(), state->m_spc_regs ); + state->m_spritegen->skns_draw_sprites(screen.machine(), state->m_sprite_bitmap_1, cliprect, &state->m_spriteram32[0], 0x4000, screen.machine().region("gfx1")->base(), screen.machine().region ("gfx1")->bytes(), state->m_spc_regs ); // ignoring priority bits for now.. for (y=0;y<240;y++) { - src1 = &state->m_sprite_bitmap_1->pix16(y); + src1 = &state->m_sprite_bitmap_1.pix16(y); dst = &bitmap.pix32(y); for (x=0;x<320;x++) @@ -874,7 +869,7 @@ static ADDRESS_MAP_START( galpani3_map, AS_PROGRAM, 16 ) AM_RANGE(0x200000, 0x20ffff) AM_RAM // area [B] - Work RAM AM_RANGE(0x280000, 0x287fff) AM_RAM_WRITE(paletteram16_xGGGGGRRRRRBBBBB_word_w) AM_BASE_GENERIC(paletteram) // area [A] - palette for sprites - AM_RANGE(0x300000, 0x303fff) AM_RAM_WRITE(galpani3_suprnova_sprite32_w) AM_BASE_MEMBER(galpani3_state, m_spriteram) + AM_RANGE(0x300000, 0x303fff) AM_RAM_WRITE(galpani3_suprnova_sprite32_w) AM_SHARE("spriteram") AM_RANGE(0x380000, 0x38003f) AM_RAM_WRITE(galpani3_suprnova_sprite32regs_w) AM_BASE_MEMBER(galpani3_state, m_sprregs) AM_RANGE(0x400000, 0x40ffff) AM_RAM AM_BASE_MEMBER(galpani3_state, m_mcu_ram) // area [C] diff --git a/src/mame/drivers/jchan.c b/src/mame/drivers/jchan.c index 506e338e62c..d92d6011db4 100644 --- a/src/mame/drivers/jchan.c +++ b/src/mame/drivers/jchan.c @@ -335,7 +335,6 @@ static VIDEO_START(jchan) state->m_sprite_ram32_1 = auto_alloc_array(machine, UINT32, 0x4000/4); state->m_sprite_ram32_2 = auto_alloc_array(machine, UINT32, 0x4000/4); - machine.generic.spriteram_size = 0x4000; state->m_sprite_regs32_1 = auto_alloc_array(machine, UINT32, 0x40/4); state->m_sprite_regs32_2 = auto_alloc_array(machine, UINT32, 0x40/4); diff --git a/src/mame/drivers/jrpacman.c b/src/mame/drivers/jrpacman.c index e7b9a9a6ec2..ff4c7b760d1 100644 --- a/src/mame/drivers/jrpacman.c +++ b/src/mame/drivers/jrpacman.c @@ -136,14 +136,14 @@ static ADDRESS_MAP_START( main_map, AS_PROGRAM, 8 ) AM_RANGE(0x0000, 0x3fff) AM_ROM AM_RANGE(0x4000, 0x47ff) AM_RAM_WRITE(jrpacman_videoram_w) AM_BASE_MEMBER(jrpacman_state, m_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_SHARE("spriteram") AM_RANGE(0x5000, 0x503f) AM_READ_PORT("P1") AM_RANGE(0x5000, 0x5000) AM_WRITE(irq_mask_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_SHARE("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) diff --git a/src/mame/drivers/kaneko16.c b/src/mame/drivers/kaneko16.c index 26c31fad978..9d6a531f7ea 100644 --- a/src/mame/drivers/kaneko16.c +++ b/src/mame/drivers/kaneko16.c @@ -371,7 +371,7 @@ static WRITE16_HANDLER( kaneko16_eeprom_w ) static ADDRESS_MAP_START( berlwall, AS_PROGRAM, 16 ) AM_RANGE(0x000000, 0x03ffff) AM_ROM // ROM AM_RANGE(0x200000, 0x20ffff) AM_RAM // Work RAM - AM_RANGE(0x30e000, 0x30ffff) AM_RAM AM_BASE_SIZE_GENERIC(spriteram) // Sprites + AM_RANGE(0x30e000, 0x30ffff) AM_RAM AM_SHARE("spriteram") // Sprites AM_RANGE(0x400000, 0x400fff) AM_RAM_WRITE(paletteram16_xGGGGGRRRRRBBBBB_word_w) AM_BASE_GENERIC(paletteram) // Palette // AM_RANGE(0x480000, 0x480001) AM_RAM // ? AM_RANGE(0x500000, 0x500001) AM_READWRITE(kaneko16_bg15_reg_r, kaneko16_bg15_reg_w) AM_BASE_MEMBER(kaneko16_state, m_bg15_reg) // High Color Background @@ -428,7 +428,7 @@ static ADDRESS_MAP_START( bakubrkr, AS_PROGRAM, 16 ) AM_RANGE(0x581000, 0x581fff) AM_RAM_WRITE(kaneko16_vram_2_w) AM_BASE_MEMBER(kaneko16_state, m_vram[2]) // AM_RANGE(0x582000, 0x582fff) AM_RAM AM_BASE_MEMBER(kaneko16_state, m_vscroll[3]) // AM_RANGE(0x583000, 0x583fff) AM_RAM AM_BASE_MEMBER(kaneko16_state, m_vscroll[2]) // - AM_RANGE(0x600000, 0x601fff) AM_RAM AM_BASE_SIZE_GENERIC(spriteram) // Sprites + AM_RANGE(0x600000, 0x601fff) AM_RAM AM_SHARE("spriteram") // Sprites AM_RANGE(0x700000, 0x700fff) AM_RAM_WRITE(paletteram16_xGGGGGRRRRRBBBBB_word_w) AM_BASE_GENERIC(paletteram) // Palette AM_RANGE(0x800000, 0x80001f) AM_RAM_WRITE(kaneko16_layers_0_regs_w) AM_BASE_MEMBER(kaneko16_state, m_layers_0_regs) // Layers 0 Regs AM_RANGE(0x900000, 0x90001f) AM_RAM_WRITE(kaneko16_sprites_regs_w) AM_BASE_MEMBER(kaneko16_state, m_sprites_regs ) // Sprites Regs @@ -454,7 +454,7 @@ static ADDRESS_MAP_START( blazeon, AS_PROGRAM, 16 ) AM_RANGE(0x601000, 0x601fff) AM_RAM_WRITE(kaneko16_vram_0_w) AM_BASE_MEMBER(kaneko16_state, m_vram[0]) // AM_RANGE(0x602000, 0x602fff) AM_RAM AM_BASE_MEMBER(kaneko16_state, m_vscroll[1]) // AM_RANGE(0x603000, 0x603fff) AM_RAM AM_BASE_MEMBER(kaneko16_state, m_vscroll[0]) // - AM_RANGE(0x700000, 0x700fff) AM_RAM AM_BASE_SIZE_GENERIC(spriteram) // Sprites + AM_RANGE(0x700000, 0x700fff) AM_RAM AM_SHARE("spriteram") // Sprites AM_RANGE(0x800000, 0x80001f) AM_RAM_WRITE(kaneko16_layers_0_regs_w) AM_BASE_MEMBER(kaneko16_state, m_layers_0_regs) // Layers 0 Regs AM_RANGE(0x900000, 0x90001f) AM_RAM_WRITE(kaneko16_sprites_regs_w) AM_BASE_MEMBER(kaneko16_state, m_sprites_regs) // Sprites Regs #1 AM_RANGE(0x980000, 0x98001f) AM_RAM // Sprites Regs #2 @@ -514,7 +514,7 @@ static ADDRESS_MAP_START( bloodwar, AS_PROGRAM, 16 ) AM_RANGE(0x2c0000, 0x2c0001) AM_WRITE(toybox_mcu_com2_w) AM_RANGE(0x2d0000, 0x2d0001) AM_WRITE(toybox_mcu_com3_w) AM_RANGE(0x300000, 0x30ffff) AM_RAM_WRITE(paletteram16_xGGGGGRRRRRBBBBB_word_w) AM_BASE_GENERIC(paletteram) // Palette - AM_RANGE(0x400000, 0x401fff) AM_RAM AM_BASE_SIZE_GENERIC(spriteram) // Sprites + AM_RANGE(0x400000, 0x401fff) AM_RAM AM_SHARE("spriteram") // Sprites AM_RANGE(0x500000, 0x500fff) AM_RAM_WRITE(kaneko16_vram_1_w) AM_BASE_MEMBER(kaneko16_state, m_vram[1]) // Layers 0 AM_RANGE(0x501000, 0x501fff) AM_RAM_WRITE(kaneko16_vram_0_w) AM_BASE_MEMBER(kaneko16_state, m_vram[0]) // AM_RANGE(0x502000, 0x502fff) AM_RAM AM_BASE_MEMBER(kaneko16_state, m_vscroll[1]) // @@ -576,7 +576,7 @@ static ADDRESS_MAP_START( bonkadv, AS_PROGRAM, 16 ) AM_RANGE(0x2c0000, 0x2c0001) AM_WRITE(toybox_mcu_com2_w) AM_RANGE(0x2d0000, 0x2d0001) AM_WRITE(toybox_mcu_com3_w) AM_RANGE(0x300000, 0x30ffff) AM_RAM_WRITE(paletteram16_xGGGGGRRRRRBBBBB_word_w) AM_BASE_GENERIC(paletteram) // Palette - AM_RANGE(0x400000, 0x401fff) AM_RAM AM_BASE_SIZE_GENERIC(spriteram) // Sprites + AM_RANGE(0x400000, 0x401fff) AM_RAM AM_SHARE("spriteram") // Sprites AM_RANGE(0x500000, 0x500fff) AM_RAM_WRITE(kaneko16_vram_1_w) AM_BASE_MEMBER(kaneko16_state, m_vram[1]) // Layers 0 AM_RANGE(0x501000, 0x501fff) AM_RAM_WRITE(kaneko16_vram_0_w) AM_BASE_MEMBER(kaneko16_state, m_vram[0]) // AM_RANGE(0x502000, 0x502fff) AM_RAM AM_BASE_MEMBER(kaneko16_state, m_vscroll[1]) // @@ -657,7 +657,7 @@ static ADDRESS_MAP_START( gtmr_map, AS_PROGRAM, 16 ) AM_RANGE(0x300000, 0x30ffff) AM_RAM_WRITE(paletteram16_xGGGGGRRRRRBBBBB_word_w) AM_BASE_GENERIC(paletteram) // Palette AM_RANGE(0x310000, 0x327fff) AM_RAM // - AM_RANGE(0x400000, 0x401fff) AM_RAM AM_BASE_SIZE_GENERIC(spriteram) // Sprites + AM_RANGE(0x400000, 0x401fff) AM_RAM AM_SHARE("spriteram") // Sprites AM_RANGE(0x500000, 0x500fff) AM_RAM_WRITE(kaneko16_vram_1_w) AM_BASE_MEMBER(kaneko16_state, m_vram[1]) // Layers 0 AM_RANGE(0x501000, 0x501fff) AM_RAM_WRITE(kaneko16_vram_0_w) AM_BASE_MEMBER(kaneko16_state, m_vram[0]) // @@ -733,7 +733,7 @@ static ADDRESS_MAP_START( gtmr2_map, AS_PROGRAM, 16 ) AM_RANGE(0x300000, 0x30ffff) AM_RAM_WRITE(paletteram16_xGGGGGRRRRRBBBBB_word_w) AM_BASE_GENERIC(paletteram) // Palette AM_RANGE(0x310000, 0x327fff) AM_RAM // - AM_RANGE(0x400000, 0x401fff) AM_RAM AM_BASE_SIZE_GENERIC(spriteram) // Sprites + AM_RANGE(0x400000, 0x401fff) AM_RAM AM_SHARE("spriteram") // Sprites AM_RANGE(0x500000, 0x500fff) AM_RAM_WRITE(kaneko16_vram_1_w) AM_BASE_MEMBER(kaneko16_state, m_vram[1]) // Layers 0 AM_RANGE(0x501000, 0x501fff) AM_RAM_WRITE(kaneko16_vram_0_w) AM_BASE_MEMBER(kaneko16_state, m_vram[0]) // @@ -787,7 +787,7 @@ static ADDRESS_MAP_START( mgcrystl, AS_PROGRAM, 16 ) AM_RANGE(0x681000, 0x681fff) AM_RAM_WRITE(kaneko16_vram_2_w) AM_BASE_MEMBER(kaneko16_state, m_vram[2]) // AM_RANGE(0x682000, 0x682fff) AM_RAM AM_BASE_MEMBER(kaneko16_state, m_vscroll[3]) // AM_RANGE(0x683000, 0x683fff) AM_RAM AM_BASE_MEMBER(kaneko16_state, m_vscroll[2]) // - AM_RANGE(0x700000, 0x701fff) AM_RAM AM_BASE_SIZE_GENERIC(spriteram) // Sprites + AM_RANGE(0x700000, 0x701fff) AM_RAM AM_SHARE("spriteram") // Sprites AM_RANGE(0x800000, 0x80001f) AM_RAM_WRITE(kaneko16_layers_0_regs_w) AM_BASE_MEMBER(kaneko16_state, m_layers_0_regs) // Layers 0 Regs AM_RANGE(0x900000, 0x90001f) AM_RAM_WRITE(kaneko16_sprites_regs_w) AM_BASE_MEMBER(kaneko16_state, m_sprites_regs) // Sprites Regs AM_RANGE(0xb00000, 0xb0001f) AM_RAM_WRITE(kaneko16_layers_1_regs_w) AM_BASE_MEMBER(kaneko16_state, m_layers_1_regs) // Layers 1 Regs @@ -849,7 +849,7 @@ static ADDRESS_MAP_START( shogwarr, AS_PROGRAM, 16 ) AM_RANGE(0x380000, 0x380fff) AM_RAM_WRITE(paletteram16_xGGGGGRRRRRBBBBB_word_w) AM_BASE_GENERIC(paletteram) // Palette AM_RANGE(0x400000, 0x400001) AM_DEVREADWRITE8_MODERN("oki1", okim6295_device, read, write, 0x00ff) // Samples AM_RANGE(0x480000, 0x480001) AM_DEVREADWRITE8_MODERN("oki2", okim6295_device, read, write, 0x00ff) - AM_RANGE(0x580000, 0x581fff) AM_RAM AM_BASE_SIZE_GENERIC(spriteram) // Sprites + AM_RANGE(0x580000, 0x581fff) AM_RAM AM_SHARE("spriteram") // Sprites AM_RANGE(0x600000, 0x600fff) AM_RAM_WRITE(kaneko16_vram_1_w) AM_BASE_MEMBER(kaneko16_state, m_vram[1]) // Layers 0 AM_RANGE(0x601000, 0x601fff) AM_RAM_WRITE(kaneko16_vram_0_w) AM_BASE_MEMBER(kaneko16_state, m_vram[0]) AM_RANGE(0x602000, 0x602fff) AM_RAM AM_BASE_MEMBER(kaneko16_state, m_vscroll[1]) diff --git a/src/mame/drivers/mcr.c b/src/mame/drivers/mcr.c index ce114cd6a06..76a0116232c 100644 --- a/src/mame/drivers/mcr.c +++ b/src/mame/drivers/mcr.c @@ -283,10 +283,6 @@ #include "emu.h" -#include "cpu/z80/z80.h" -#include "machine/z80ctc.h" -#include "machine/z80pio.h" -#include "machine/z80sio.h" #include "audio/mcr.h" #include "sound/samples.h" #include "machine/nvram.h" @@ -644,7 +640,7 @@ static ADDRESS_MAP_START( cpu_90009_map, AS_PROGRAM, 8 ) ADDRESS_MAP_UNMAP_HIGH AM_RANGE(0x0000, 0x6fff) AM_ROM AM_RANGE(0x7000, 0x77ff) AM_MIRROR(0x0800) AM_RAM AM_SHARE("nvram") - AM_RANGE(0xf000, 0xf1ff) AM_MIRROR(0x0200) AM_RAM AM_BASE_SIZE_GENERIC(spriteram) + AM_RANGE(0xf000, 0xf1ff) AM_MIRROR(0x0200) AM_RAM AM_SHARE("spriteram") AM_RANGE(0xf400, 0xf41f) AM_MIRROR(0x03e0) AM_WRITE(paletteram_xxxxRRRRBBBBGGGG_split1_w) AM_BASE_GENERIC(paletteram) AM_RANGE(0xf800, 0xf81f) AM_MIRROR(0x03e0) AM_WRITE(paletteram_xxxxRRRRBBBBGGGG_split2_w) AM_BASE_GENERIC(paletteram2) AM_RANGE(0xfc00, 0xffff) AM_RAM_WRITE(mcr_90009_videoram_w) AM_BASE_MEMBER(mcr_state, m_videoram) @@ -673,7 +669,7 @@ static ADDRESS_MAP_START( cpu_90010_map, AS_PROGRAM, 8 ) ADDRESS_MAP_UNMAP_HIGH AM_RANGE(0x0000, 0xbfff) AM_ROM AM_RANGE(0xc000, 0xc7ff) AM_MIRROR(0x1800) AM_RAM AM_SHARE("nvram") - AM_RANGE(0xe000, 0xe1ff) AM_MIRROR(0x1600) AM_RAM AM_BASE_SIZE_GENERIC(spriteram) + AM_RANGE(0xe000, 0xe1ff) AM_MIRROR(0x1600) AM_RAM AM_SHARE("spriteram") AM_RANGE(0xe800, 0xefff) AM_MIRROR(0x1000) AM_RAM_WRITE(mcr_90010_videoram_w) AM_BASE_MEMBER(mcr_state, m_videoram) ADDRESS_MAP_END @@ -700,7 +696,7 @@ static ADDRESS_MAP_START( cpu_91490_map, AS_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_MIRROR(0x0200) AM_RAM AM_BASE_SIZE_GENERIC(spriteram) + AM_RANGE(0xe800, 0xe9ff) AM_MIRROR(0x0200) AM_RAM AM_SHARE("spriteram") AM_RANGE(0xf000, 0xf7ff) AM_RAM_WRITE(mcr_91490_videoram_w) AM_BASE_MEMBER(mcr_state, m_videoram) AM_RANGE(0xf800, 0xf87f) AM_MIRROR(0x0780) AM_WRITE(mcr_91490_paletteram_w) AM_BASE_GENERIC(paletteram) ADDRESS_MAP_END diff --git a/src/mame/drivers/namcoic.c b/src/mame/drivers/namcoic.c index ca1895b9fe1..1c740a14756 100644 --- a/src/mame/drivers/namcoic.c +++ b/src/mame/drivers/namcoic.c @@ -620,6 +620,7 @@ namcos2_draw_sprites_metalhawk(running_machine &machine, bitmap_ind16 &bitmap, c /**************************************************************************************/ static UINT16 mSpritePos[4]; +static UINT16 *m_spriteram; WRITE16_HANDLER( namco_spritepos16_w ) { @@ -715,7 +716,7 @@ template static void draw_spriteC355(running_machine &machine, _BitmapClass &bitmap, const rectangle &cliprect, const UINT16 *pSource, int pri, int zpos ) { - UINT16 *spriteram16 = machine.generic.spriteram.u16; + UINT16 *spriteram16 = m_spriteram; unsigned screen_height_remaining, screen_width_remaining; unsigned source_height_remaining, source_width_remaining; int hpos,vpos; @@ -908,8 +909,8 @@ namco_obj_init( running_machine &machine, int gfxbank, int palXOR, int (*codeToT { mpCodeToTile = DefaultCodeToTile; } - machine.generic.spriteram.u16 = auto_alloc_array(machine, UINT16, 0x20000/2); - memset( machine.generic.spriteram.u16, 0, 0x20000 ); /* needed for Nebulas Ray */ + m_spriteram = auto_alloc_array(machine, UINT16, 0x20000/2); + memset( m_spriteram, 0, 0x20000 ); /* needed for Nebulas Ray */ memset( mSpritePos,0x00,sizeof(mSpritePos) ); } /* namcosC355_init */ @@ -942,11 +943,11 @@ namco_obj_draw(running_machine &machine, bitmap_ind16 &bitmap, const rectangle & } // if( offs==0 ) { /* boot */ - DrawObjectList(machine, bitmap,cliprect,pri,&machine.generic.spriteram.u16[0x02000/2], &machine.generic.spriteram.u16[0x00000/2] ); + DrawObjectList(machine, bitmap,cliprect,pri,&m_spriteram[0x02000/2], &m_spriteram[0x00000/2] ); } // else { - DrawObjectList(machine, bitmap,cliprect,pri,&machine.generic.spriteram.u16[0x14000/2], &machine.generic.spriteram.u16[0x10000/2] ); + DrawObjectList(machine, bitmap,cliprect,pri,&m_spriteram[0x14000/2], &m_spriteram[0x10000/2] ); } } /* namco_obj_draw */ @@ -960,27 +961,27 @@ namco_obj_draw(running_machine &machine, bitmap_rgb32 &bitmap, const rectangle & } // if( offs==0 ) { /* boot */ - DrawObjectList(machine, bitmap,cliprect,pri,&machine.generic.spriteram.u16[0x02000/2], &machine.generic.spriteram.u16[0x00000/2] ); + DrawObjectList(machine, bitmap,cliprect,pri,&m_spriteram[0x02000/2], &m_spriteram[0x00000/2] ); } // else { - DrawObjectList(machine, bitmap,cliprect,pri,&machine.generic.spriteram.u16[0x14000/2], &machine.generic.spriteram.u16[0x10000/2] ); + DrawObjectList(machine, bitmap,cliprect,pri,&m_spriteram[0x14000/2], &m_spriteram[0x10000/2] ); } } /* namco_obj_draw */ WRITE16_HANDLER( namco_obj16_w ) { - COMBINE_DATA( &space->machine().generic.spriteram.u16[offset] ); + COMBINE_DATA( &m_spriteram[offset] ); } /* namco_obj16_w */ READ16_HANDLER( namco_obj16_r ) { - return space->machine().generic.spriteram.u16[offset]; + return m_spriteram[offset]; } /* namco_obj16_r */ WRITE32_HANDLER( namco_obj32_w ) { - UINT16 *spriteram16 = space->machine().generic.spriteram.u16; + UINT16 *spriteram16 = m_spriteram; UINT32 v; offset *= 2; v = (spriteram16[offset]<<16)|spriteram16[offset+1]; @@ -991,14 +992,14 @@ WRITE32_HANDLER( namco_obj32_w ) READ32_HANDLER( namco_obj32_r ) { - UINT16 *spriteram16 = space->machine().generic.spriteram.u16; + UINT16 *spriteram16 = m_spriteram; offset *= 2; return (spriteram16[offset]<<16)|spriteram16[offset+1]; } /* namco_obj32_r */ WRITE32_HANDLER( namco_obj32_le_w ) { - UINT16 *spriteram16 = space->machine().generic.spriteram.u16; + UINT16 *spriteram16 = m_spriteram; UINT32 v; offset *= 2; v = (spriteram16[offset+1]<<16)|spriteram16[offset]; @@ -1009,7 +1010,7 @@ WRITE32_HANDLER( namco_obj32_le_w ) READ32_HANDLER( namco_obj32_le_r ) { - UINT16 *spriteram16 = space->machine().generic.spriteram.u16; + UINT16 *spriteram16 = m_spriteram; offset *= 2; return (spriteram16[offset+1]<<16)|spriteram16[offset]; } /* namco_obj32_r */ diff --git a/src/mame/drivers/pacman.c b/src/mame/drivers/pacman.c index 92ea3655eb6..d1ed4c5ae2f 100644 --- a/src/mame/drivers/pacman.c +++ b/src/mame/drivers/pacman.c @@ -506,10 +506,11 @@ static WRITE8_HANDLER( alibaba_sound_w ) { /* since the sound region in Ali Baba is not contiguous, translate the offset into the 0-0x1f range */ + pacman_state *state = space->machine().driver_data(); if (offset < 0x10) pacman_sound_w(space->machine().device("namco"), offset, data); else if (offset < 0x20) - space->machine().generic.spriteram2.u8[offset - 0x10] = data; + state->m_spriteram2[offset - 0x10] = data; else pacman_sound_w(space->machine().device("namco"), offset - 0x10, data); } @@ -889,7 +890,7 @@ static ADDRESS_MAP_START( pacman_map, AS_PROGRAM, 8 ) AM_RANGE(0x4400, 0x47ff) AM_MIRROR(0xa000) AM_RAM_WRITE(pacman_colorram_w) AM_BASE_MEMBER(pacman_state, m_colorram) AM_RANGE(0x4800, 0x4bff) AM_MIRROR(0xa000) AM_READ(pacman_read_nop) AM_WRITENOP AM_RANGE(0x4c00, 0x4fef) AM_MIRROR(0xa000) AM_RAM - AM_RANGE(0x4ff0, 0x4fff) AM_MIRROR(0xa000) AM_RAM AM_BASE_SIZE_GENERIC(spriteram) + AM_RANGE(0x4ff0, 0x4fff) AM_MIRROR(0xa000) AM_RAM AM_SHARE("spriteram") AM_RANGE(0x5000, 0x5000) AM_MIRROR(0xaf38) AM_WRITE(irq_mask_w) AM_RANGE(0x5001, 0x5001) AM_MIRROR(0xaf38) AM_DEVWRITE("namco", pacman_sound_enable_w) AM_RANGE(0x5002, 0x5002) AM_MIRROR(0xaf38) AM_WRITENOP @@ -898,7 +899,7 @@ static ADDRESS_MAP_START( pacman_map, AS_PROGRAM, 8 ) AM_RANGE(0x5006, 0x5006) AM_MIRROR(0xaf38) AM_WRITENOP // AM_WRITE(pacman_coin_lockout_global_w) AM_RANGE(0x5007, 0x5007) AM_MIRROR(0xaf38) AM_WRITE(pacman_coin_counter_w) AM_RANGE(0x5040, 0x505f) AM_MIRROR(0xaf00) AM_DEVWRITE("namco", pacman_sound_w) - AM_RANGE(0x5060, 0x506f) AM_MIRROR(0xaf00) AM_WRITEONLY AM_BASE_GENERIC(spriteram2) + AM_RANGE(0x5060, 0x506f) AM_MIRROR(0xaf00) AM_WRITEONLY AM_SHARE("spriteram2") AM_RANGE(0x5070, 0x507f) AM_MIRROR(0xaf00) AM_WRITENOP AM_RANGE(0x5080, 0x5080) AM_MIRROR(0xaf3f) AM_WRITENOP AM_RANGE(0x50c0, 0x50c0) AM_MIRROR(0xaf3f) AM_WRITE(watchdog_reset_w) @@ -916,7 +917,7 @@ static ADDRESS_MAP_START( birdiy_map, AS_PROGRAM, 8 ) AM_RANGE(0x4400, 0x47ff) AM_MIRROR(0xa000) AM_RAM_WRITE(pacman_colorram_w) AM_BASE_MEMBER(pacman_state, m_colorram) // AM_RANGE(0x4800, 0x4bff) AM_MIRROR(0xa000) AM_READ(pacman_read_nop) AM_WRITENOP AM_RANGE(0x4c00, 0x4fef) AM_MIRROR(0xa000) AM_RAM - AM_RANGE(0x4ff0, 0x4fff) AM_MIRROR(0xa000) AM_RAM AM_BASE_SIZE_GENERIC(spriteram) + AM_RANGE(0x4ff0, 0x4fff) AM_MIRROR(0xa000) AM_RAM AM_SHARE("spriteram") AM_RANGE(0x5001, 0x5001) AM_MIRROR(0xaf38) AM_WRITE(irq_mask_w) // AM_RANGE(0x5001, 0x5001) AM_MIRROR(0xaf38) AM_DEVWRITE("namco", pacman_sound_enable_w) // AM_RANGE(0x5002, 0x5002) AM_MIRROR(0xaf38) AM_WRITENOP @@ -925,7 +926,7 @@ static ADDRESS_MAP_START( birdiy_map, AS_PROGRAM, 8 ) // AM_RANGE(0x5006, 0x5006) AM_MIRROR(0xaf38) AM_WRITENOP // AM_WRITE(pacman_coin_lockout_global_w) AM_RANGE(0x5007, 0x5007) AM_MIRROR(0xaf38) AM_WRITE(pacman_coin_counter_w) AM_RANGE(0x5080, 0x509f) AM_MIRROR(0xaf00) AM_DEVWRITE("namco", pacman_sound_w) - AM_RANGE(0x50a0, 0x50af) AM_MIRROR(0xaf00) AM_WRITEONLY AM_BASE_GENERIC(spriteram2) + AM_RANGE(0x50a0, 0x50af) AM_MIRROR(0xaf00) AM_WRITEONLY AM_SHARE("spriteram2") // AM_RANGE(0x5070, 0x507f) AM_MIRROR(0xaf00) AM_WRITENOP // AM_RANGE(0x5080, 0x5080) AM_MIRROR(0xaf3f) AM_WRITENOP AM_RANGE(0x50c0, 0x50c0) AM_MIRROR(0xaf3f) AM_WRITE(watchdog_reset_w) @@ -940,7 +941,7 @@ static ADDRESS_MAP_START( mspacman_map, AS_PROGRAM, 8 ) AM_RANGE(0x4400, 0x47ff) AM_MIRROR(0xa000) AM_RAM_WRITE(pacman_colorram_w) AM_BASE_MEMBER(pacman_state, m_colorram) AM_RANGE(0x4800, 0x4bff) AM_MIRROR(0xa000) AM_READ(pacman_read_nop) AM_WRITENOP AM_RANGE(0x4c00, 0x4fef) AM_MIRROR(0xa000) AM_RAM - AM_RANGE(0x4ff0, 0x4fff) AM_MIRROR(0xa000) AM_RAM AM_BASE_SIZE_GENERIC(spriteram) + AM_RANGE(0x4ff0, 0x4fff) AM_MIRROR(0xa000) AM_RAM AM_SHARE("spriteram") AM_RANGE(0x5000, 0x5000) AM_MIRROR(0xaf38) AM_WRITE(irq_mask_w) AM_RANGE(0x5001, 0x5001) AM_MIRROR(0xaf38) AM_DEVWRITE("namco", pacman_sound_enable_w) AM_RANGE(0x5002, 0x5002) AM_MIRROR(0xaf38) AM_WRITENOP @@ -949,7 +950,7 @@ static ADDRESS_MAP_START( mspacman_map, AS_PROGRAM, 8 ) AM_RANGE(0x5006, 0x5006) AM_MIRROR(0xaf38) AM_WRITE(pacman_coin_lockout_global_w) AM_RANGE(0x5007, 0x5007) AM_MIRROR(0xaf38) AM_WRITE(pacman_coin_counter_w) AM_RANGE(0x5040, 0x505f) AM_MIRROR(0xaf00) AM_DEVWRITE("namco", pacman_sound_w) - AM_RANGE(0x5060, 0x506f) AM_MIRROR(0xaf00) AM_WRITEONLY AM_BASE_GENERIC(spriteram2) + AM_RANGE(0x5060, 0x506f) AM_MIRROR(0xaf00) AM_WRITEONLY AM_SHARE("spriteram2") AM_RANGE(0x5070, 0x507f) AM_MIRROR(0xaf00) AM_WRITENOP AM_RANGE(0x5080, 0x5080) AM_MIRROR(0xaf3f) AM_WRITENOP AM_RANGE(0x50c0, 0x50c0) AM_MIRROR(0xaf3f) AM_WRITE(watchdog_reset_w) @@ -980,7 +981,7 @@ static ADDRESS_MAP_START( woodpek_map, AS_PROGRAM, 8 ) AM_RANGE(0x4400, 0x47ff) AM_MIRROR(0xa000) AM_RAM_WRITE(pacman_colorram_w) AM_BASE_MEMBER(pacman_state, m_colorram) AM_RANGE(0x4800, 0x4bff) AM_MIRROR(0xa000) AM_READ(pacman_read_nop) AM_WRITENOP AM_RANGE(0x4c00, 0x4fef) AM_MIRROR(0xa000) AM_RAM - AM_RANGE(0x4ff0, 0x4fff) AM_MIRROR(0xa000) AM_RAM AM_BASE_SIZE_GENERIC(spriteram) + AM_RANGE(0x4ff0, 0x4fff) AM_MIRROR(0xa000) AM_RAM AM_SHARE("spriteram") AM_RANGE(0x5000, 0x5000) AM_MIRROR(0xaf38) AM_WRITE(irq_mask_w) AM_RANGE(0x5001, 0x5001) AM_MIRROR(0xaf38) AM_DEVWRITE("namco", pacman_sound_enable_w) AM_RANGE(0x5002, 0x5002) AM_MIRROR(0xaf38) AM_WRITENOP @@ -989,7 +990,7 @@ static ADDRESS_MAP_START( woodpek_map, AS_PROGRAM, 8 ) AM_RANGE(0x5006, 0x5006) AM_MIRROR(0xaf38) AM_WRITENOP // AM_WRITE(pacman_coin_lockout_global_w) AM_RANGE(0x5007, 0x5007) AM_MIRROR(0xaf38) AM_WRITE(pacman_coin_counter_w) AM_RANGE(0x5040, 0x505f) AM_MIRROR(0xaf00) AM_DEVWRITE("namco", pacman_sound_w) - AM_RANGE(0x5060, 0x506f) AM_MIRROR(0xaf00) AM_WRITEONLY AM_BASE_GENERIC(spriteram2) + AM_RANGE(0x5060, 0x506f) AM_MIRROR(0xaf00) AM_WRITEONLY AM_SHARE("spriteram2") AM_RANGE(0x5070, 0x507f) AM_MIRROR(0xaf00) AM_WRITENOP AM_RANGE(0x5080, 0x5080) AM_MIRROR(0xaf3f) AM_WRITENOP AM_RANGE(0x50c0, 0x50c0) AM_MIRROR(0xaf3f) AM_WRITE(watchdog_reset_w) @@ -1007,14 +1008,14 @@ static ADDRESS_MAP_START( alibaba_map, AS_PROGRAM, 8 ) AM_RANGE(0x4400, 0x47ff) AM_MIRROR(0xa000) AM_RAM_WRITE(pacman_colorram_w) AM_BASE_MEMBER(pacman_state, m_colorram) AM_RANGE(0x4800, 0x4bff) AM_MIRROR(0xa000) AM_READ(pacman_read_nop) AM_WRITENOP AM_RANGE(0x4c00, 0x4eef) AM_MIRROR(0xa000) AM_RAM - AM_RANGE(0x4ef0, 0x4eff) AM_MIRROR(0xa000) AM_RAM AM_BASE_SIZE_GENERIC(spriteram) + AM_RANGE(0x4ef0, 0x4eff) AM_MIRROR(0xa000) AM_RAM AM_SHARE("spriteram") AM_RANGE(0x4f00, 0x4fff) AM_MIRROR(0xa000) AM_RAM AM_RANGE(0x5000, 0x5000) AM_MIRROR(0xaf38) AM_WRITE(watchdog_reset_w) AM_RANGE(0x5004, 0x5005) AM_MIRROR(0xaf38) AM_WRITE(pacman_leds_w) AM_RANGE(0x5006, 0x5006) AM_MIRROR(0xaf38) AM_WRITE(pacman_coin_lockout_global_w) AM_RANGE(0x5007, 0x5007) AM_MIRROR(0xaf38) AM_WRITE(pacman_coin_counter_w) AM_RANGE(0x5040, 0x506f) AM_MIRROR(0xaf00) AM_WRITE(alibaba_sound_w) /* the sound region is not contiguous */ - AM_RANGE(0x5060, 0x506f) AM_MIRROR(0xaf00) AM_WRITEONLY AM_BASE_GENERIC(spriteram2) /* actually at 5050-505f, here to point to free RAM */ + AM_RANGE(0x5060, 0x506f) AM_MIRROR(0xaf00) AM_WRITEONLY AM_SHARE("spriteram2") /* actually at 5050-505f, here to point to free RAM */ AM_RANGE(0x5070, 0x507f) AM_MIRROR(0xaf00) AM_WRITENOP AM_RANGE(0x5080, 0x5080) AM_MIRROR(0xaf3f) AM_WRITENOP AM_RANGE(0x50c0, 0x50c0) AM_MIRROR(0xaf00) AM_DEVWRITE("namco", pacman_sound_enable_w) @@ -1038,7 +1039,7 @@ static ADDRESS_MAP_START( dremshpr_map, AS_PROGRAM, 8 ) AM_RANGE(0x4000, 0x43ff) AM_MIRROR(0xa000) AM_RAM_WRITE(pacman_videoram_w) AM_BASE_MEMBER(pacman_state, m_videoram) AM_RANGE(0x4400, 0x47ff) AM_MIRROR(0xa000) AM_RAM_WRITE(pacman_colorram_w) AM_BASE_MEMBER(pacman_state, m_colorram) AM_RANGE(0x4800, 0x4fef) AM_MIRROR(0xa000) AM_RAM - AM_RANGE(0x4ff0, 0x4fff) AM_MIRROR(0xa000) AM_RAM AM_BASE_SIZE_GENERIC(spriteram) + AM_RANGE(0x4ff0, 0x4fff) AM_MIRROR(0xa000) AM_RAM AM_SHARE("spriteram") AM_RANGE(0x5000, 0x5000) AM_MIRROR(0xaf38) AM_WRITE(irq_mask_w) // AM_RANGE(0x5001, 0x5001) AM_MIRROR(0xaf38) AM_DEVWRITE("namco", pacman_sound_enable_w) AM_RANGE(0x5002, 0x5002) AM_MIRROR(0xaf38) AM_WRITENOP /* unknown */ @@ -1047,7 +1048,7 @@ static ADDRESS_MAP_START( dremshpr_map, AS_PROGRAM, 8 ) AM_RANGE(0x5006, 0x5006) AM_MIRROR(0xaf38) AM_WRITENOP // AM_WRITE(pacman_coin_lockout_global_w) AM_RANGE(0x5007, 0x5007) AM_MIRROR(0xaf38) AM_WRITE(pacman_coin_counter_w) // AM_RANGE(0x5040, 0x505f) AM_MIRROR(0xaf00) AM_DEVWRITE("namco", pacman_sound_w) - AM_RANGE(0x5060, 0x506f) AM_MIRROR(0xaf00) AM_WRITEONLY AM_BASE_GENERIC(spriteram2) + AM_RANGE(0x5060, 0x506f) AM_MIRROR(0xaf00) AM_WRITEONLY AM_SHARE("spriteram2") AM_RANGE(0x5070, 0x507f) AM_MIRROR(0xaf00) AM_WRITENOP AM_RANGE(0x5080, 0x5080) AM_MIRROR(0xaf3f) AM_WRITENOP AM_RANGE(0x50c0, 0x50c0) AM_MIRROR(0xaf3f) AM_WRITE(watchdog_reset_w) @@ -1069,7 +1070,7 @@ static ADDRESS_MAP_START( epos_map, AS_PROGRAM, 8 ) AM_RANGE(0x4400, 0x47ff) AM_MIRROR(0xa000) AM_RAM_WRITE(pacman_colorram_w) AM_BASE_MEMBER(pacman_state, m_colorram) AM_RANGE(0x4800, 0x4bff) AM_MIRROR(0xa000) AM_READ(pacman_read_nop) AM_WRITENOP AM_RANGE(0x4c00, 0x4fef) AM_MIRROR(0xa000) AM_RAM - AM_RANGE(0x4ff0, 0x4fff) AM_MIRROR(0xa000) AM_RAM AM_BASE_SIZE_GENERIC(spriteram) + AM_RANGE(0x4ff0, 0x4fff) AM_MIRROR(0xa000) AM_RAM AM_SHARE("spriteram") AM_RANGE(0x5000, 0x5000) AM_MIRROR(0xaf38) AM_WRITE(irq_mask_w) AM_RANGE(0x5001, 0x5001) AM_MIRROR(0xaf38) AM_DEVWRITE("namco", pacman_sound_enable_w) AM_RANGE(0x5002, 0x5002) AM_MIRROR(0xaf38) AM_WRITENOP @@ -1078,7 +1079,7 @@ static ADDRESS_MAP_START( epos_map, AS_PROGRAM, 8 ) AM_RANGE(0x5006, 0x5006) AM_MIRROR(0xaf38) AM_WRITENOP // AM_WRITE(pacman_coin_lockout_global_w) AM_RANGE(0x5007, 0x5007) AM_MIRROR(0xaf38) AM_WRITE(pacman_coin_counter_w) AM_RANGE(0x5040, 0x505f) AM_MIRROR(0xaf00) AM_DEVWRITE("namco", pacman_sound_w) - AM_RANGE(0x5060, 0x506f) AM_MIRROR(0xaf00) AM_WRITEONLY AM_BASE_GENERIC(spriteram2) + AM_RANGE(0x5060, 0x506f) AM_MIRROR(0xaf00) AM_WRITEONLY AM_SHARE("spriteram2") AM_RANGE(0x5070, 0x507f) AM_MIRROR(0xaf00) AM_WRITENOP AM_RANGE(0x5080, 0x5080) AM_MIRROR(0xaf3f) AM_WRITENOP AM_RANGE(0x50c0, 0x50c0) AM_MIRROR(0xaf3f) AM_WRITE(watchdog_reset_w) @@ -1094,7 +1095,7 @@ static ADDRESS_MAP_START( s2650games_map, AS_PROGRAM, 8 ) AM_RANGE(0x1000, 0x13ff) AM_MIRROR(0xe000) AM_WRITE(s2650games_colorram_w) AM_BASE_MEMBER(pacman_state, m_colorram) AM_RANGE(0x1400, 0x141f) AM_MIRROR(0xe000) AM_WRITE(s2650games_scroll_w) AM_RANGE(0x1420, 0x148f) AM_MIRROR(0xe000) AM_WRITEONLY - AM_RANGE(0x1490, 0x149f) AM_MIRROR(0xe000) AM_WRITEONLY AM_BASE_MEMBER(pacman_state, m_s2650games_spriteram) + AM_RANGE(0x1490, 0x149f) AM_MIRROR(0xe000) AM_WRITEONLY AM_SHARE("s2650_spriteram") AM_RANGE(0x14a0, 0x14bf) AM_MIRROR(0xe000) AM_WRITE(s2650games_tilesbank_w) AM_BASE_MEMBER(pacman_state, m_s2650games_tileram) AM_RANGE(0x14c0, 0x14ff) AM_MIRROR(0xe000) AM_WRITEONLY AM_RANGE(0x1500, 0x1502) AM_MIRROR(0xe000) AM_WRITENOP @@ -1102,7 +1103,7 @@ static ADDRESS_MAP_START( s2650games_map, AS_PROGRAM, 8 ) AM_RANGE(0x1504, 0x1506) AM_MIRROR(0xe000) AM_WRITENOP AM_RANGE(0x1507, 0x1507) AM_MIRROR(0xe000) AM_WRITE(pacman_coin_counter_w) AM_RANGE(0x1508, 0x155f) AM_MIRROR(0xe000) AM_WRITEONLY - AM_RANGE(0x1560, 0x156f) AM_MIRROR(0xe000) AM_WRITEONLY AM_BASE_GENERIC(spriteram2) + AM_RANGE(0x1560, 0x156f) AM_MIRROR(0xe000) AM_WRITEONLY AM_SHARE("spriteram2") AM_RANGE(0x1570, 0x157f) AM_MIRROR(0xe000) AM_WRITEONLY AM_RANGE(0x1586, 0x1587) AM_MIRROR(0xe000) AM_WRITENOP AM_RANGE(0x15c0, 0x15c0) AM_MIRROR(0xe000) AM_WRITE(watchdog_reset_w) @@ -1112,7 +1113,7 @@ static ADDRESS_MAP_START( s2650games_map, AS_PROGRAM, 8 ) AM_RANGE(0x1580, 0x1580) AM_MIRROR(0xe000) AM_READ_PORT("DSW0") AM_RANGE(0x1800, 0x1bff) AM_MIRROR(0xe000) AM_WRITE(s2650games_videoram_w) AM_BASE_MEMBER(pacman_state, m_videoram) AM_RANGE(0x1c00, 0x1fef) AM_MIRROR(0xe000) AM_RAM - AM_RANGE(0x1ff0, 0x1fff) AM_MIRROR(0xe000) AM_WRITEONLY AM_BASE_SIZE_GENERIC(spriteram) + AM_RANGE(0x1ff0, 0x1fff) AM_MIRROR(0xe000) AM_WRITEONLY AM_SHARE("spriteram") AM_RANGE(0x2000, 0x2fff) AM_MIRROR(0x8000) AM_ROMBANK("bank2") AM_RANGE(0x4000, 0x4fff) AM_MIRROR(0x8000) AM_ROMBANK("bank3") AM_RANGE(0x6000, 0x6fff) AM_MIRROR(0x8000) AM_ROMBANK("bank4") @@ -1173,7 +1174,7 @@ static ADDRESS_MAP_START( mschamp_map, AS_PROGRAM, 8 ) AM_RANGE(0x4400, 0x47ff) AM_MIRROR(0xa000) AM_RAM_WRITE(pacman_colorram_w) AM_BASE_MEMBER(pacman_state, m_colorram) AM_RANGE(0x4800, 0x4bff) AM_MIRROR(0xa000) AM_READ(pacman_read_nop) AM_WRITENOP AM_RANGE(0x4c00, 0x4fef) AM_MIRROR(0xa000) AM_RAM - AM_RANGE(0x4ff0, 0x4fff) AM_MIRROR(0xa000) AM_RAM AM_BASE_SIZE_GENERIC(spriteram) + AM_RANGE(0x4ff0, 0x4fff) AM_MIRROR(0xa000) AM_RAM AM_SHARE("spriteram") AM_RANGE(0x5000, 0x5000) AM_MIRROR(0xaf38) AM_WRITE(irq_mask_w) AM_RANGE(0x5001, 0x5001) AM_MIRROR(0xaf38) AM_DEVWRITE("namco", pacman_sound_enable_w) AM_RANGE(0x5002, 0x5002) AM_MIRROR(0xaf38) AM_WRITENOP @@ -1182,7 +1183,7 @@ static ADDRESS_MAP_START( mschamp_map, AS_PROGRAM, 8 ) AM_RANGE(0x5006, 0x5006) AM_MIRROR(0xaf38) AM_WRITENOP // AM_WRITE(pacman_coin_lockout_global_w) AM_RANGE(0x5007, 0x5007) AM_MIRROR(0xaf38) AM_WRITE(pacman_coin_counter_w) AM_RANGE(0x5040, 0x505f) AM_MIRROR(0xaf00) AM_DEVWRITE("namco", pacman_sound_w) - AM_RANGE(0x5060, 0x506f) AM_MIRROR(0xaf00) AM_WRITEONLY AM_BASE_GENERIC(spriteram2) + AM_RANGE(0x5060, 0x506f) AM_MIRROR(0xaf00) AM_WRITEONLY AM_SHARE("spriteram2") AM_RANGE(0x5070, 0x507f) AM_MIRROR(0xaf00) AM_WRITENOP AM_RANGE(0x5080, 0x5080) AM_MIRROR(0xaf3f) AM_WRITENOP AM_RANGE(0x50c0, 0x50c0) AM_MIRROR(0xaf3f) AM_WRITE(watchdog_reset_w) @@ -1200,7 +1201,7 @@ static ADDRESS_MAP_START( crushs_map, AS_PROGRAM, 8 ) AM_RANGE(0x4400, 0x47ff) AM_MIRROR(0xa000) AM_RAM_WRITE(pacman_colorram_w) AM_BASE_MEMBER(pacman_state, m_colorram) AM_RANGE(0x4800, 0x4bff) AM_MIRROR(0xa000) AM_READ(pacman_read_nop) AM_WRITENOP AM_RANGE(0x4c00, 0x4fef) AM_MIRROR(0xa000) AM_RAM - AM_RANGE(0x4ff0, 0x4fff) AM_MIRROR(0xa000) AM_RAM AM_BASE_SIZE_GENERIC(spriteram) + AM_RANGE(0x4ff0, 0x4fff) AM_MIRROR(0xa000) AM_RAM AM_SHARE("spriteram") AM_RANGE(0x5000, 0x5000) AM_MIRROR(0xaf38) AM_WRITE(irq_mask_w) AM_RANGE(0x5001, 0x5001) AM_MIRROR(0xaf38) AM_DEVWRITE("namco", pacman_sound_enable_w) AM_RANGE(0x5002, 0x5002) AM_MIRROR(0xaf38) AM_WRITENOP @@ -1209,7 +1210,7 @@ static ADDRESS_MAP_START( crushs_map, AS_PROGRAM, 8 ) AM_RANGE(0x5006, 0x5006) AM_MIRROR(0xaf38) AM_WRITENOP // AM_WRITE(pacman_coin_lockout_global_w) AM_RANGE(0x5007, 0x5007) AM_MIRROR(0xaf38) AM_WRITE(pacman_coin_counter_w) AM_RANGE(0x5040, 0x505f) AM_MIRROR(0xaf00) AM_WRITENOP // doesn't use pacman sound hw - AM_RANGE(0x5060, 0x506f) AM_MIRROR(0xaf00) AM_WRITEONLY AM_BASE_GENERIC(spriteram2) + AM_RANGE(0x5060, 0x506f) AM_MIRROR(0xaf00) AM_WRITEONLY AM_SHARE("spriteram2") AM_RANGE(0x5070, 0x507f) AM_MIRROR(0xaf00) AM_WRITENOP AM_RANGE(0x5080, 0x5080) AM_MIRROR(0xaf3f) AM_WRITENOP AM_RANGE(0x50c0, 0x50c0) AM_MIRROR(0xaf3f) AM_WRITE(watchdog_reset_w) diff --git a/src/mame/drivers/pengo.c b/src/mame/drivers/pengo.c index 65f11beea1f..2b278373f0d 100644 --- a/src/mame/drivers/pengo.c +++ b/src/mame/drivers/pengo.c @@ -122,9 +122,9 @@ static ADDRESS_MAP_START( pengo_map, AS_PROGRAM, 8 ) AM_RANGE(0x8000, 0x83ff) AM_RAM_WRITE(pacman_videoram_w) AM_BASE_MEMBER(pengo_state, m_videoram) /* video and color RAM, scratchpad RAM, sprite codes */ AM_RANGE(0x8400, 0x87ff) AM_RAM_WRITE(pacman_colorram_w) AM_BASE_MEMBER(pengo_state, m_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_SHARE("spriteram") 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_SHARE("spriteram2") AM_RANGE(0x9000, 0x903f) AM_READ_PORT("DSW1") AM_RANGE(0x9040, 0x907f) AM_READ_PORT("DSW0") AM_RANGE(0x9040, 0x9040) AM_WRITE(irq_mask_w) @@ -144,9 +144,9 @@ static ADDRESS_MAP_START( jrpacmbl_map, AS_PROGRAM, 8 ) AM_RANGE(0x0000, 0x7fff) AM_ROM AM_RANGE(0x8000, 0x87ff) AM_RAM_WRITE(jrpacman_videoram_w) AM_BASE_MEMBER(pengo_state, m_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_SHARE("spriteram") 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_SHARE("spriteram2") AM_RANGE(0x9030, 0x9030) AM_WRITE(jrpacman_scroll_w) AM_RANGE(0x9040, 0x904f) AM_READ_PORT("DSW") AM_RANGE(0x9040, 0x9040) AM_WRITE(irq_mask_w) diff --git a/src/mame/drivers/sshangha.c b/src/mame/drivers/sshangha.c index 7d519d78228..5a5850e828b 100644 --- a/src/mame/drivers/sshangha.c +++ b/src/mame/drivers/sshangha.c @@ -173,10 +173,10 @@ static ADDRESS_MAP_START( sshangha_map, AS_PROGRAM, 16 ) AM_RANGE(0x320002, 0x320005) AM_WRITENOP AM_RANGE(0x320006, 0x320007) AM_READNOP //irq ack - AM_RANGE(0x340000, 0x340fff) AM_RAM AM_BASE_GENERIC(spriteram) + AM_RANGE(0x340000, 0x340fff) AM_RAM AM_SHARE("spriteram") AM_RANGE(0x350000, 0x350001) AM_READ(deco_71_r) AM_RANGE(0x350000, 0x350007) AM_WRITENOP - AM_RANGE(0x360000, 0x360fff) AM_RAM AM_BASE_GENERIC(spriteram2) + AM_RANGE(0x360000, 0x360fff) AM_RAM AM_SHARE("spriteram2") AM_RANGE(0x370000, 0x370001) AM_READ(deco_71_r) AM_RANGE(0x370000, 0x370007) AM_WRITENOP @@ -213,7 +213,7 @@ static ADDRESS_MAP_START( sshanghb_map, AS_PROGRAM, 16 ) AM_RANGE(0x380c00, 0x380fff) AM_RAM_WRITE(paletteram16_xbgr_word_be_tilelow_w) AM_BASE_MEMBER(sshangha_state, m_tile_paletteram1) AM_RANGE(0x381000, 0x383fff) AM_RAM // unused palette area - AM_RANGE(0x3c0000, 0x3c0fff) AM_RAM AM_BASE_GENERIC(spriteram) // bootleg spriteram + AM_RANGE(0x3c0000, 0x3c0fff) AM_RAM AM_SHARE("spriteram") // bootleg spriteram AM_RANGE(0xfec000, 0xff3fff) AM_RAM AM_RANGE(0xff4000, 0xff47ff) AM_RAM ADDRESS_MAP_END diff --git a/src/mame/drivers/stepstag.c b/src/mame/drivers/stepstag.c index 0627979c516..ec20d90e259 100644 --- a/src/mame/drivers/stepstag.c +++ b/src/mame/drivers/stepstag.c @@ -59,7 +59,7 @@ static READ16_HANDLER( unknown_read_0xffff00 ) static ADDRESS_MAP_START( stepstag_map, AS_PROGRAM, 16 ) AM_RANGE(0x000000, 0x0fffff) AM_ROM - AM_RANGE(0x100000, 0x103fff) AM_RAM AM_BASE_SIZE_GENERIC(spriteram) // Object RAM + AM_RANGE(0x100000, 0x103fff) AM_RAM AM_SHARE("spriteram") // Object RAM AM_RANGE(0x104000, 0x107fff) AM_RAM // Spare Object RAM AM_RANGE(0x108000, 0x10ffff) AM_RAM // Work RAM AM_RANGE(0x200000, 0x23ffff) AM_READWRITE8(tetrisp2_priority_r, rockn_priority_w, 0x00ff) // Priority diff --git a/src/mame/drivers/suprnova.c b/src/mame/drivers/suprnova.c index 25388fd63f2..60361e9ec1b 100644 --- a/src/mame/drivers/suprnova.c +++ b/src/mame/drivers/suprnova.c @@ -695,7 +695,7 @@ static ADDRESS_MAP_START( skns_map, AS_PROGRAM, 32 ) AM_RANGE(0x00c00000, 0x00c00003) AM_DEVREADWRITE8("ymz", ymz280b_r, ymz280b_w, 0xffff0000) /* ymz280_w (sound) */ AM_RANGE(0x01000000, 0x0100000f) AM_DEVREADWRITE8_MODERN("rtc", msm6242_device, read, write, 0xffffffff) AM_RANGE(0x01800000, 0x01800003) AM_WRITE(skns_hit2_w) - AM_RANGE(0x02000000, 0x02003fff) AM_RAM AM_BASE_SIZE_GENERIC(spriteram) /* sprite ram */ + AM_RANGE(0x02000000, 0x02003fff) AM_RAM AM_SHARE("spriteram") /* sprite ram */ AM_RANGE(0x02100000, 0x0210003f) AM_RAM AM_BASE_MEMBER(skns_state, m_spc_regs) /* sprite registers */ AM_RANGE(0x02400000, 0x0240007f) AM_RAM_WRITE(skns_v3_regs_w) AM_BASE_MEMBER(skns_state, m_v3_regs) /* tilemap registers */ AM_RANGE(0x02500000, 0x02503fff) AM_RAM_WRITE(skns_tilemapA_w) AM_BASE_MEMBER(skns_state, m_tilemapA_ram) /* tilemap A */ diff --git a/src/mame/drivers/tetrisp2.c b/src/mame/drivers/tetrisp2.c index 71fd69700b3..7cfb469b971 100644 --- a/src/mame/drivers/tetrisp2.c +++ b/src/mame/drivers/tetrisp2.c @@ -296,7 +296,7 @@ static WRITE16_HANDLER( tetrisp2_coincounter_w ) static ADDRESS_MAP_START( tetrisp2_map, AS_PROGRAM, 16 ) AM_RANGE(0x000000, 0x0fffff) AM_ROM // ROM - AM_RANGE(0x100000, 0x103fff) AM_RAM AM_BASE_SIZE_GENERIC(spriteram) // Object RAM + AM_RANGE(0x100000, 0x103fff) AM_RAM AM_SHARE("spriteram") // Object RAM AM_RANGE(0x104000, 0x107fff) AM_RAM // Spare Object RAM AM_RANGE(0x108000, 0x10ffff) AM_RAM // Work RAM AM_RANGE(0x200000, 0x23ffff) AM_READWRITE8(tetrisp2_priority_r, tetrisp2_priority_w, 0x00ff) @@ -353,7 +353,7 @@ static WRITE16_HANDLER( nndmseal_b20000_w ) static ADDRESS_MAP_START( nndmseal_map, AS_PROGRAM, 16 ) AM_RANGE(0x000000, 0x07ffff) AM_ROM - AM_RANGE(0x100000, 0x103fff) AM_RAM AM_BASE_SIZE_GENERIC(spriteram) // Object RAM + AM_RANGE(0x100000, 0x103fff) AM_RAM AM_SHARE("spriteram") // Object RAM AM_RANGE(0x104000, 0x107fff) AM_RAM // Spare Object RAM AM_RANGE(0x108000, 0x10ffff) AM_RAM // Work RAM AM_RANGE(0x200000, 0x23ffff) AM_WRITE8(tetrisp2_priority_w, 0x00ff) // Priority @@ -399,7 +399,7 @@ ADDRESS_MAP_END static ADDRESS_MAP_START( rockn1_map, AS_PROGRAM, 16 ) AM_RANGE(0x000000, 0x0fffff) AM_ROM // ROM - AM_RANGE(0x100000, 0x103fff) AM_RAM AM_BASE_SIZE_GENERIC(spriteram) // Object RAM + AM_RANGE(0x100000, 0x103fff) AM_RAM AM_SHARE("spriteram") // Object RAM AM_RANGE(0x104000, 0x107fff) AM_RAM // Spare Object RAM AM_RANGE(0x108000, 0x10ffff) AM_RAM // Work RAM AM_RANGE(0x200000, 0x23ffff) AM_READWRITE8(tetrisp2_priority_r, rockn_priority_w, 0x00ff) // Priority @@ -433,7 +433,7 @@ ADDRESS_MAP_END static ADDRESS_MAP_START( rockn2_map, AS_PROGRAM, 16 ) AM_RANGE(0x000000, 0x0fffff) AM_ROM // ROM - AM_RANGE(0x100000, 0x103fff) AM_RAM AM_BASE_SIZE_GENERIC(spriteram) // Object RAM + AM_RANGE(0x100000, 0x103fff) AM_RAM AM_SHARE("spriteram") // Object RAM AM_RANGE(0x104000, 0x107fff) AM_RAM // Spare Object RAM AM_RANGE(0x108000, 0x10ffff) AM_RAM // Work RAM AM_RANGE(0x200000, 0x23ffff) AM_READWRITE8(tetrisp2_priority_r, rockn_priority_w, 0x00ff) // Priority @@ -467,7 +467,7 @@ ADDRESS_MAP_END static ADDRESS_MAP_START( rocknms_main_map, AS_PROGRAM, 16 ) AM_RANGE(0x000000, 0x0fffff) AM_ROM // ROM - AM_RANGE(0x100000, 0x103fff) AM_RAM AM_BASE_SIZE_GENERIC(spriteram) // Object RAM + AM_RANGE(0x100000, 0x103fff) AM_RAM AM_SHARE("spriteram") // Object RAM AM_RANGE(0x104000, 0x107fff) AM_RAM // Spare Object RAM AM_RANGE(0x108000, 0x10ffff) AM_RAM // Work RAM AM_RANGE(0x200000, 0x23ffff) AM_READWRITE8(tetrisp2_priority_r, rockn_priority_w, 0x00ff) // Priority @@ -502,7 +502,7 @@ ADDRESS_MAP_END static ADDRESS_MAP_START( rocknms_sub_map, AS_PROGRAM, 16 ) AM_RANGE(0x000000, 0x0fffff) AM_ROM // ROM - AM_RANGE(0x100000, 0x103fff) AM_RAM AM_BASE_SIZE_GENERIC(spriteram2) // Object RAM + AM_RANGE(0x100000, 0x103fff) AM_RAM AM_SHARE("spriteram2") // Object RAM AM_RANGE(0x104000, 0x107fff) AM_RAM // Spare Object RAM AM_RANGE(0x108000, 0x10ffff) AM_RAM // Work RAM AM_RANGE(0x200000, 0x23ffff) AM_RAM_WRITE(rocknms_sub_priority_w) AM_BASE_MEMBER(tetrisp2_state, m_rocknms_sub_priority) // Priority diff --git a/src/mame/includes/commando.h b/src/mame/includes/commando.h index 98d27d6c333..eb5bb02e78d 100644 --- a/src/mame/includes/commando.h +++ b/src/mame/includes/commando.h @@ -18,7 +18,6 @@ public: UINT8 * m_colorram; UINT8 * m_videoram2; UINT8 * m_colorram2; -// UINT8 * m_spriteram; // currently this uses generic buffered_spriteram /* video-related */ tilemap_t *m_bg_tilemap; diff --git a/src/mame/includes/contra.h b/src/mame/includes/contra.h index b63847157b4..99086871eb8 100644 --- a/src/mame/includes/contra.h +++ b/src/mame/includes/contra.h @@ -21,7 +21,6 @@ public: UINT8 * m_fg_cram; UINT8 * m_tx_vram; UINT8 * m_tx_cram; - // this driver also uses a large generic spriteram region... /* video-related */ tilemap_t *m_bg_tilemap; diff --git a/src/mame/includes/exedexes.h b/src/mame/includes/exedexes.h index b3f2e323924..60d346ea9d6 100644 --- a/src/mame/includes/exedexes.h +++ b/src/mame/includes/exedexes.h @@ -19,7 +19,6 @@ public: UINT8 * m_bg_scroll; UINT8 * m_nbg_yscroll; UINT8 * m_nbg_xscroll; -// UINT8 * m_spriteram; // currently this uses generic buffered_spriteram /* video-related */ tilemap_t *m_bg_tilemap; diff --git a/src/mame/includes/galaga.h b/src/mame/includes/galaga.h index 9aa1ba9714a..32b9680179d 100644 --- a/src/mame/includes/galaga.h +++ b/src/mame/includes/galaga.h @@ -65,6 +65,10 @@ public: UINT8 *m_bosco_radarx; UINT8 *m_bosco_radary; + + UINT8 *m_spriteram; + UINT8 *m_spriteram2; + UINT32 m_spriteram_size; }; class digdug_state : public galaga_state diff --git a/src/mame/includes/galaxian.h b/src/mame/includes/galaxian.h index 35c1ee8f5a2..457ad57057e 100644 --- a/src/mame/includes/galaxian.h +++ b/src/mame/includes/galaxian.h @@ -36,7 +36,8 @@ class galaxian_state : public driver_device { public: galaxian_state(const machine_config &mconfig, device_type type, const char *tag) - : driver_device(mconfig, type, tag) { } + : driver_device(mconfig, type, tag), + m_spriteram(*this, "spriteram") { } UINT8 *m_videoram; int m_counter_74ls161[2]; @@ -75,6 +76,7 @@ public: UINT8 m_stars_blink_state; rgb_t m_bullet_color[8]; UINT8 m_gfxbank[5]; + required_shared_ptr m_spriteram; }; diff --git a/src/mame/includes/kaneko16.h b/src/mame/includes/kaneko16.h index 90c444f01dd..24ceb3a0678 100644 --- a/src/mame/includes/kaneko16.h +++ b/src/mame/includes/kaneko16.h @@ -73,7 +73,8 @@ class kaneko16_state : public driver_device public: kaneko16_state(const machine_config &mconfig, device_type type, const char *tag) : driver_device(mconfig, type, tag), - m_maincpu(*this,"maincpu") + m_maincpu(*this, "maincpu"), + m_spriteram(*this, "spriteram") { } UINT16 *m_mcu_ram; @@ -108,6 +109,7 @@ public: bitmap_ind16 m_sprites_bitmap; required_device m_maincpu; + optional_shared_ptr m_spriteram; }; diff --git a/src/mame/includes/lastduel.h b/src/mame/includes/lastduel.h index 855032ad8ee..0ca25c128e9 100644 --- a/src/mame/includes/lastduel.h +++ b/src/mame/includes/lastduel.h @@ -20,7 +20,6 @@ public: UINT16 * m_vram; UINT16 * m_scroll1; UINT16 * m_scroll2; -// UINT16 * m_spriteram; // this currently uses generic buffered spriteram UINT16 * m_paletteram; /* video-related */ diff --git a/src/mame/includes/mcr.h b/src/mame/includes/mcr.h index 0c87ce53a99..80aeae772c9 100644 --- a/src/mame/includes/mcr.h +++ b/src/mame/includes/mcr.h @@ -4,6 +4,7 @@ **************************************************************************/ +#include "cpu/z80/z80.h" #include "cpu/z80/z80daisy.h" #include "machine/z80ctc.h" #include "machine/z80pio.h" @@ -18,12 +19,13 @@ class mcr_state : public driver_device public: mcr_state(const machine_config &mconfig, device_type type, const char *tag) : driver_device(mconfig, type, tag), - m_maincpu(*this,"maincpu") - { } + m_maincpu(*this, "maincpu"), + m_spriteram(*this, "spriteram") { } UINT8 *m_videoram; - required_device m_maincpu; + required_device m_maincpu; + required_shared_ptr m_spriteram; }; diff --git a/src/mame/includes/pacman.h b/src/mame/includes/pacman.h index f87f5e77bab..dc1d9faf179 100644 --- a/src/mame/includes/pacman.h +++ b/src/mame/includes/pacman.h @@ -8,7 +8,10 @@ class pacman_state : public driver_device { public: pacman_state(const machine_config &mconfig, device_type type, const char *tag) - : driver_device(mconfig, type, tag) { } + : driver_device(mconfig, type, tag), + m_spriteram(*this, "spriteram"), + m_spriteram2(*this, "spriteram2"), + m_s2650_spriteram(*this, "s2650_spriteram") { } UINT8 m_cannonb_bit_to_read; int m_mystery; @@ -18,7 +21,6 @@ public: UINT8 m_rocktrv2_question_bank; UINT8 *m_videoram; UINT8 *m_colorram; - UINT8 *m_s2650games_spriteram; UINT8 *m_s2650games_tileram; tilemap_t *m_bg_tilemap; UINT8 m_charbank; @@ -30,6 +32,9 @@ public: int m_xoffsethack; UINT8 m_inv_spr; UINT8 m_irq_mask; + optional_shared_ptr m_spriteram; + optional_shared_ptr m_spriteram2; + optional_shared_ptr m_s2650_spriteram; }; diff --git a/src/mame/includes/psikyo.h b/src/mame/includes/psikyo.h index b5cc64f7679..890316318f2 100644 --- a/src/mame/includes/psikyo.h +++ b/src/mame/includes/psikyo.h @@ -18,8 +18,6 @@ public: UINT32 * m_spritebuf2; UINT32 * m_bootleg_spritebuffer; // UINT32 * m_paletteram; // currently this uses generic palette handling -// UINT32 * m_spriteram; // currently this uses generic buffered spriteram -// size_t m_spriteram_size; /* video-related */ tilemap_t *m_tilemap_0_size0; diff --git a/src/mame/includes/sshangha.h b/src/mame/includes/sshangha.h index 73f04f1796b..adfbbca7478 100644 --- a/src/mame/includes/sshangha.h +++ b/src/mame/includes/sshangha.h @@ -5,7 +5,9 @@ class sshangha_state : public driver_device public: sshangha_state(const machine_config &mconfig, device_type type, const char *tag) : driver_device(mconfig, type, tag), - m_deco_tilegen1(*this, "tilegen1") + m_deco_tilegen1(*this, "tilegen1"), + m_spriteram(*this, "spriteram"), + m_spriteram2(*this, "spriteram2") { } UINT16 *m_prot_data; @@ -21,6 +23,8 @@ public: UINT16* m_tile_paletteram2; required_device m_deco_tilegen1; + required_shared_ptr m_spriteram; + optional_shared_ptr m_spriteram2; }; diff --git a/src/mame/includes/suprnova.h b/src/mame/includes/suprnova.h index de97ee783bf..95b8bb6a715 100644 --- a/src/mame/includes/suprnova.h +++ b/src/mame/includes/suprnova.h @@ -19,7 +19,8 @@ class skns_state : public driver_device public: skns_state(const machine_config &mconfig, device_type type, const char *tag) : driver_device(mconfig, type, tag), - m_maincpu(*this,"maincpu") + m_maincpu(*this,"maincpu"), + m_spriteram(*this,"spriteram") { } sknsspr_device* m_spritegen; @@ -67,6 +68,7 @@ public: UINT8 m_region; required_device m_maincpu; + required_shared_ptr m_spriteram; }; diff --git a/src/mame/includes/tetrisp2.h b/src/mame/includes/tetrisp2.h index 5f0e226bd71..67c79b12587 100644 --- a/src/mame/includes/tetrisp2.h +++ b/src/mame/includes/tetrisp2.h @@ -2,7 +2,9 @@ class tetrisp2_state : public driver_device { public: tetrisp2_state(const machine_config &mconfig, device_type type, const char *tag) - : driver_device(mconfig, type, tag) { } + : driver_device(mconfig, type, tag), + m_spriteram(*this, "spriteram"), + m_spriteram2(*this, "spriteram2") { } UINT16 m_systemregs[0x10]; UINT16 *m_vram_bg; @@ -37,6 +39,8 @@ public: tilemap_t *m_tilemap_sub_bg; tilemap_t *m_tilemap_sub_fg; tilemap_t *m_tilemap_sub_rot; + required_shared_ptr m_spriteram; + optional_shared_ptr m_spriteram2; }; WRITE16_HANDLER( tetrisp2_systemregs_w ); diff --git a/src/mame/video/bosco.c b/src/mame/video/bosco.c index bcc1654c16c..9737e41aab5 100644 --- a/src/mame/video/bosco.c +++ b/src/mame/video/bosco.c @@ -135,9 +135,9 @@ VIDEO_START( bosco ) state->m_bg_tilemap->set_scrolldx(3,3); - machine.generic.spriteram_size = 0x0c; - machine.generic.spriteram.u8 = state->m_videoram + 0x03d4; - machine.generic.spriteram2.u8 = machine.generic.spriteram.u8 + 0x0800; + state->m_spriteram = state->m_videoram + 0x03d4; + state->m_spriteram_size = 0x0c; + state->m_spriteram2 = state->m_spriteram + 0x0800; state->m_bosco_radarx = state->m_videoram + 0x03f0; state->m_bosco_radary = state->m_bosco_radarx + 0x0800; @@ -191,11 +191,12 @@ WRITE8_HANDLER( bosco_starclr_w ) static void draw_sprites(running_machine &machine, bitmap_ind16 &bitmap, const rectangle &cliprect ) { - UINT8 *spriteram = machine.generic.spriteram.u8; - UINT8 *spriteram_2 = machine.generic.spriteram2.u8; + bosco_state *state = machine.driver_data(); + UINT8 *spriteram = state->m_spriteram; + UINT8 *spriteram_2 = state->m_spriteram2; int offs; - for (offs = 0;offs < machine.generic.spriteram_size;offs += 2) + for (offs = 0;offs < state->m_spriteram_size;offs += 2) { int sx = spriteram[offs + 1] - 1; int sy = 240 - spriteram_2[offs]; diff --git a/src/mame/video/galaxian.c b/src/mame/video/galaxian.c index 62f2e127744..01788a62939 100644 --- a/src/mame/video/galaxian.c +++ b/src/mame/video/galaxian.c @@ -462,11 +462,11 @@ SCREEN_UPDATE_RGB32( galaxian ) state->m_bg_tilemap->draw(bitmap, cliprect, 0, 0); /* render the sprites next */ - sprites_draw(screen.machine(), bitmap, cliprect, &screen.machine().generic.spriteram.u8[0x40]); + sprites_draw(screen.machine(), bitmap, cliprect, &state->m_spriteram[0x40]); /* if we have bullets to draw, render them following */ if (state->m_draw_bullet_ptr != NULL) - bullets_draw(screen.machine(), bitmap, cliprect, &screen.machine().generic.spriteram.u8[0x60]); + bullets_draw(screen.machine(), bitmap, cliprect, &state->m_spriteram[0x60]); return 0; } @@ -477,7 +477,8 @@ SCREEN_UPDATE_RGB32( zigzag ) SCREEN_UPDATE32_CALL(galaxian); /* zigzag has an extra sprite generator instead of bullets (note: ideally, this should be rendered in parallel) */ - sprites_draw(screen.machine(), bitmap, cliprect, &screen.machine().generic.spriteram.u8[0x60]); + galaxian_state *state = screen.machine().driver_data(); + sprites_draw(screen.machine(), bitmap, cliprect, &state->m_spriteram[0x60]); return 0; } @@ -497,7 +498,7 @@ static TILE_GET_INFO( bg_get_tile_info ) UINT8 x = tile_index & 0x1f; UINT16 code = videoram[tile_index]; - UINT8 attrib = machine.generic.spriteram.u8[x*2+1]; + UINT8 attrib = state->m_spriteram[x*2+1]; UINT8 color = attrib & 7; if (state->m_extend_tile_info_ptr != NULL) @@ -527,7 +528,7 @@ WRITE8_HANDLER( galaxian_objram_w ) space->machine().primary_screen->update_now(); /* store the data */ - space->machine().generic.spriteram.u8[offset] = data; + state->m_spriteram[offset] = data; /* the first $40 bytes affect the tilemap */ if (offset < 0x40) diff --git a/src/mame/video/kaneko16.c b/src/mame/video/kaneko16.c index bf64bbd7ae7..193839f90fe 100644 --- a/src/mame/video/kaneko16.c +++ b/src/mame/video/kaneko16.c @@ -371,13 +371,13 @@ Offset: Format: Value: static int kaneko16_parse_sprite_type012(running_machine &machine, int i, struct tempsprite *s) { kaneko16_state *state = machine.driver_data(); - UINT16 *spriteram16 = machine.generic.spriteram.u16; + UINT16 *spriteram16 = state->m_spriteram; int attr, xoffs, offs; if (state->m_sprite_type == 2) offs = i * 16/2 + 0x8/2; else offs = i * 8/2; - if (offs >= (machine.generic.spriteram_size/2)) return -1; + if (offs >= (state->m_spriteram.bytes()/2)) return -1; attr = spriteram16[offs + 0]; s->code = spriteram16[offs + 1]; diff --git a/src/mame/video/mcr.c b/src/mame/video/mcr.c index 34abc8ab8f5..c9da45dc14e 100644 --- a/src/mame/video/mcr.c +++ b/src/mame/video/mcr.c @@ -257,12 +257,13 @@ WRITE8_HANDLER( mcr_91490_videoram_w ) static void render_sprites_91399(running_machine &machine, bitmap_ind16 &bitmap, const rectangle &cliprect) { - UINT8 *spriteram = machine.generic.spriteram.u8; + mcr_state *state = machine.driver_data(); + UINT8 *spriteram = state->m_spriteram; const gfx_element *gfx = machine.gfx[1]; int offs; /* render the sprites into the bitmap, ORing together */ - for (offs = 0; offs < machine.generic.spriteram_size; offs += 4) + for (offs = 0; offs < state->m_spriteram.bytes(); offs += 4) { int code, x, y, sx, sy, hflip, vflip; @@ -329,12 +330,13 @@ static void render_sprites_91399(running_machine &machine, bitmap_ind16 &bitmap, static void render_sprites_91464(running_machine &machine, bitmap_ind16 &bitmap, const rectangle &cliprect, int primask, int sprmask, int colormask) { - UINT8 *spriteram = machine.generic.spriteram.u8; + mcr_state *state = machine.driver_data(); + UINT8 *spriteram = state->m_spriteram; const gfx_element *gfx = machine.gfx[1]; int offs; /* render the sprites into the bitmap, working from topmost to bottommost */ - for (offs = machine.generic.spriteram_size - 4; offs >= 0; offs -= 4) + for (offs = state->m_spriteram.bytes() - 4; offs >= 0; offs -= 4) { int code, color, x, y, sx, sy, hflip, vflip; diff --git a/src/mame/video/pacman.c b/src/mame/video/pacman.c index 673e699ae3d..eb289ce3d5a 100644 --- a/src/mame/video/pacman.c +++ b/src/mame/video/pacman.c @@ -221,10 +221,10 @@ SCREEN_UPDATE_IND16( pacman ) else state->m_bg_tilemap->draw(bitmap, cliprect, TILEMAP_DRAW_OPAQUE,0); - if( screen.machine().generic.spriteram_size ) + if( state->m_spriteram != NULL ) { - UINT8 *spriteram = screen.machine().generic.spriteram.u8; - UINT8 *spriteram_2 = screen.machine().generic.spriteram2.u8; + UINT8 *spriteram = state->m_spriteram; + UINT8 *spriteram_2 = state->m_spriteram2; int offs; rectangle spriteclip(2*8, 34*8-1, 0*8, 28*8-1); @@ -232,7 +232,7 @@ SCREEN_UPDATE_IND16( pacman ) /* Draw the sprites. Note that it is important to draw them exactly in this */ /* order, to have the correct priorities. */ - for (offs = screen.machine().generic.spriteram_size - 2;offs > 2*2;offs -= 2) + for (offs = state->m_spriteram.bytes() - 2;offs > 2*2;offs -= 2) { int color; int sx,sy; @@ -414,13 +414,13 @@ VIDEO_START( s2650games ) SCREEN_UPDATE_IND16( s2650games ) { pacman_state *state = screen.machine().driver_data(); - UINT8 *spriteram = screen.machine().generic.spriteram.u8; - UINT8 *spriteram_2 = screen.machine().generic.spriteram2.u8; + UINT8 *spriteram = state->m_spriteram; + UINT8 *spriteram_2 = state->m_spriteram2; int offs; state->m_bg_tilemap->draw(bitmap, cliprect, 0,0); - for (offs = screen.machine().generic.spriteram_size - 2;offs > 2*2;offs -= 2) + for (offs = state->m_spriteram.bytes() - 2;offs > 2*2;offs -= 2) { int color; int sx,sy; @@ -432,7 +432,7 @@ SCREEN_UPDATE_IND16( s2650games ) /* TODO: ?? */ drawgfx_transmask(bitmap,cliprect,screen.machine().gfx[1], - (spriteram[offs] >> 2) | ((state->m_s2650games_spriteram[offs] & 3) << 6), + (spriteram[offs] >> 2) | ((state->m_s2650_spriteram[offs] & 3) << 6), color, spriteram[offs] & 1,spriteram[offs] & 2, sx,sy, @@ -452,7 +452,7 @@ SCREEN_UPDATE_IND16( s2650games ) /* TODO: ?? */ drawgfx_transmask(bitmap,cliprect,screen.machine().gfx[1], - (spriteram[offs] >> 2) | ((state->m_s2650games_spriteram[offs] & 3)<<6), + (spriteram[offs] >> 2) | ((state->m_s2650_spriteram[offs] & 3)<<6), color, spriteram[offs] & 1,spriteram[offs] & 2, sx,sy + state->m_xoffsethack, diff --git a/src/mame/video/sshangha.c b/src/mame/video/sshangha.c index 51881b8686c..e81b13f20d8 100644 --- a/src/mame/video/sshangha.c +++ b/src/mame/video/sshangha.c @@ -33,11 +33,11 @@ SCREEN_UPDATE_RGB32( sshangha ) { sshangha_state *state = screen.machine().driver_data(); - screen.machine().device("spritegen1")->draw_sprites(bitmap, cliprect, screen.machine().generic.spriteram.u16, 0x800, true); + screen.machine().device("spritegen1")->draw_sprites(bitmap, cliprect, state->m_spriteram, 0x800, true); // I'm pretty sure only the original has the 2nd spriteram, used for the Japanese text on the 2nd scene (non-scrolling text) in the intro of the quest (3rd in JPN) mode - if (screen.machine().generic.spriteram2.u16) - screen.machine().device("spritegen2")->draw_sprites(bitmap, cliprect, screen.machine().generic.spriteram2.u16, 0x800, true); + if (state->m_spriteram2 != NULL) + screen.machine().device("spritegen2")->draw_sprites(bitmap, cliprect, state->m_spriteram2, 0x800, true); screen.machine().tilemap().set_flip_all(flip_screen_x_get(screen.machine()) ? (TILEMAP_FLIPY | TILEMAP_FLIPX) : 0); @@ -57,7 +57,7 @@ SCREEN_UPDATE_RGB32( sshangha ) deco16ic_tilemap_1_draw(state->m_deco_tilegen1, bitmap, cliprect, 0, 0); } - if (screen.machine().generic.spriteram2.u16) + if (state->m_spriteram2 != NULL) screen.machine().device("spritegen2")->inefficient_copy_sprite_bitmap(bitmap, cliprect, 0x0000, 0x0000, 0, 0x1ff); screen.machine().device("spritegen1")->inefficient_copy_sprite_bitmap(bitmap, cliprect, 0x0000, 0x0200, 0, 0x1ff); diff --git a/src/mame/video/suprnova.c b/src/mame/video/suprnova.c index 0075a74b7ad..d1839e6a423 100644 --- a/src/mame/video/suprnova.c +++ b/src/mame/video/suprnova.c @@ -631,7 +631,7 @@ SCREEN_UPDATE_RGB32(skns) state->m_sprite_bitmap.fill(0x0000, cliprect); if (state->m_alt_enable_sprites) - state->m_spritegen->skns_draw_sprites(screen.machine(), state->m_sprite_bitmap, cliprect, screen.machine().generic.spriteram.u32, screen.machine().generic.spriteram_size, screen.machine().region("gfx1")->base(), screen.machine().region ("gfx1")->bytes(), state->m_spc_regs ); + state->m_spritegen->skns_draw_sprites(screen.machine(), state->m_sprite_bitmap, cliprect, state->m_spriteram, state->m_spriteram.bytes(), screen.machine().region("gfx1")->base(), screen.machine().region ("gfx1")->bytes(), state->m_spc_regs ); return 0; diff --git a/src/mame/video/tetrisp2.c b/src/mame/video/tetrisp2.c index 7f4efd4a29e..cfd33d14859 100644 --- a/src/mame/video/tetrisp2.c +++ b/src/mame/video/tetrisp2.c @@ -541,7 +541,7 @@ SCREEN_UPDATE_IND16( tetrisp2 ) else if (asc_pri == 2) state->m_tilemap_fg->draw(bitmap, cliprect, 0, 1 << 2); - tetrisp2_draw_sprites(screen.machine(), bitmap, screen.machine().priority_bitmap, cliprect, state->m_priority, screen.machine().generic.spriteram.u16, screen.machine().generic.spriteram_size, 0, (state->m_systemregs[0x00] & 0x02)); + tetrisp2_draw_sprites(screen.machine(), bitmap, screen.machine().priority_bitmap, cliprect, state->m_priority, state->m_spriteram, state->m_spriteram.bytes(), 0, (state->m_systemregs[0x00] & 0x02)); return 0; } @@ -626,7 +626,7 @@ SCREEN_UPDATE_IND16( rockntread ) else if (asc_pri == 2) state->m_tilemap_fg->draw(bitmap, cliprect, 0, 1 << 2); - tetrisp2_draw_sprites(screen.machine(), bitmap, screen.machine().priority_bitmap,cliprect, state->m_priority, screen.machine().generic.spriteram.u16, screen.machine().generic.spriteram_size, 0, (state->m_systemregs[0x00] & 0x02)); + tetrisp2_draw_sprites(screen.machine(), bitmap, screen.machine().priority_bitmap,cliprect, state->m_priority, state->m_spriteram, state->m_spriteram.bytes(), 0, (state->m_systemregs[0x00] & 0x02)); return 0; } @@ -688,7 +688,7 @@ SCREEN_UPDATE_RGB32( rocknms_left ) else if (asc_pri == 2) state->m_tilemap_sub_fg->draw(bitmap, cliprect, 0, 1 << 2); - tetrisp2_draw_sprites(screen.machine(), bitmap, screen.machine().priority_bitmap,cliprect, state->m_priority, screen.machine().generic.spriteram2.u16, screen.machine().generic.spriteram2_size, 4, (state->m_systemregs[0x00] & 0x02)); + tetrisp2_draw_sprites(screen.machine(), bitmap, screen.machine().priority_bitmap,cliprect, state->m_priority, state->m_spriteram2, state->m_spriteram2.bytes(), 4, (state->m_systemregs[0x00] & 0x02)); return 0; } @@ -749,7 +749,7 @@ SCREEN_UPDATE_RGB32( rocknms_right ) else if (asc_pri == 2) state->m_tilemap_fg->draw(bitmap, cliprect, 0, 1 << 2); - tetrisp2_draw_sprites(screen.machine(), bitmap, screen.machine().priority_bitmap,cliprect, state->m_priority, screen.machine().generic.spriteram.u16, screen.machine().generic.spriteram_size, 0, (state->m_systemregs[0x00] & 0x02)); + tetrisp2_draw_sprites(screen.machine(), bitmap, screen.machine().priority_bitmap,cliprect, state->m_priority, state->m_spriteram, state->m_spriteram.bytes(), 0, (state->m_systemregs[0x00] & 0x02)); return 0; }