Death to generic spriteram.

This commit is contained in:
Aaron Giles 2012-03-08 09:54:00 +00:00
parent bd1935c924
commit 1b3a299c0d
39 changed files with 165 additions and 159 deletions

View File

@ -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);

View File

@ -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
};

View File

@ -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));

View File

@ -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")

View File

@ -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)

View File

@ -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 ?

View File

@ -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<galpani3_state>();
/* 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<sknsspr_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]

View File

@ -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);

View File

@ -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)

View File

@ -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])

View File

@ -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

View File

@ -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<class _BitmapClass>
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 */

View File

@ -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<pacman_state>();
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)

View File

@ -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)

View File

@ -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

View File

@ -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

View File

@ -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 */

View File

@ -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

View File

@ -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;

View File

@ -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;

View File

@ -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;

View File

@ -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

View File

@ -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<UINT8> m_spriteram;
};

View File

@ -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<cpu_device> m_maincpu;
optional_shared_ptr<UINT16> m_spriteram;
};

View File

@ -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 */

View File

@ -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<cpu_device> m_maincpu;
required_device<z80_device> m_maincpu;
required_shared_ptr<UINT8> m_spriteram;
};

View File

@ -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<UINT8> m_spriteram;
optional_shared_ptr<UINT8> m_spriteram2;
optional_shared_ptr<UINT8> m_s2650_spriteram;
};

View File

@ -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;

View File

@ -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<deco16ic_device> m_deco_tilegen1;
required_shared_ptr<UINT16> m_spriteram;
optional_shared_ptr<UINT16> m_spriteram2;
};

View File

@ -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<cpu_device> m_maincpu;
required_shared_ptr<UINT32> m_spriteram;
};

View File

@ -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<UINT16> m_spriteram;
optional_shared_ptr<UINT16> m_spriteram2;
};
WRITE16_HANDLER( tetrisp2_systemregs_w );

View File

@ -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<bosco_state>();
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];

View File

@ -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<galaxian_state>();
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)

View File

@ -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<kaneko16_state>();
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];

View File

@ -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<mcr_state>();
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<mcr_state>();
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;

View File

@ -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<pacman_state>();
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,

View File

@ -33,11 +33,11 @@ SCREEN_UPDATE_RGB32( sshangha )
{
sshangha_state *state = screen.machine().driver_data<sshangha_state>();
screen.machine().device<decospr_device>("spritegen1")->draw_sprites(bitmap, cliprect, screen.machine().generic.spriteram.u16, 0x800, true);
screen.machine().device<decospr_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<decospr_device>("spritegen2")->draw_sprites(bitmap, cliprect, screen.machine().generic.spriteram2.u16, 0x800, true);
if (state->m_spriteram2 != NULL)
screen.machine().device<decospr_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<decospr_device>("spritegen2")->inefficient_copy_sprite_bitmap(bitmap, cliprect, 0x0000, 0x0000, 0, 0x1ff);
screen.machine().device<decospr_device>("spritegen1")->inefficient_copy_sprite_bitmap(bitmap, cliprect, 0x0000, 0x0200, 0, 0x1ff);

View File

@ -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;

View File

@ -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;
}