mirror of
https://github.com/holub/mame
synced 2025-05-22 13:48:55 +03:00
Death to generic spriteram.
This commit is contained in:
parent
bd1935c924
commit
1b3a299c0d
@ -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);
|
||||
|
||||
|
@ -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
|
||||
};
|
||||
|
@ -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));
|
||||
|
@ -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")
|
||||
|
@ -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)
|
||||
|
@ -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 ?
|
||||
|
@ -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]
|
||||
|
@ -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);
|
||||
|
||||
|
@ -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)
|
||||
|
@ -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])
|
||||
|
@ -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
|
||||
|
@ -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 */
|
||||
|
@ -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)
|
||||
|
@ -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)
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|
@ -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 */
|
||||
|
@ -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
|
||||
|
@ -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;
|
||||
|
@ -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;
|
||||
|
@ -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;
|
||||
|
@ -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
|
||||
|
@ -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;
|
||||
};
|
||||
|
||||
|
||||
|
@ -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;
|
||||
};
|
||||
|
||||
|
||||
|
@ -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 */
|
||||
|
@ -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;
|
||||
};
|
||||
|
||||
|
||||
|
@ -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;
|
||||
};
|
||||
|
||||
|
||||
|
@ -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;
|
||||
|
@ -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;
|
||||
};
|
||||
|
||||
|
||||
|
@ -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;
|
||||
};
|
||||
|
||||
|
||||
|
@ -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 );
|
||||
|
@ -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];
|
||||
|
@ -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)
|
||||
|
@ -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];
|
||||
|
@ -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;
|
||||
|
||||
|
@ -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,
|
||||
|
@ -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);
|
||||
|
@ -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;
|
||||
|
@ -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;
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user