summaryrefslogtreecommitdiffstatshomepage
path: root/src
diff options
context:
space:
mode:
author Aaron Giles <aaron@aarongiles.com>2012-09-04 17:10:48 +0000
committer Aaron Giles <aaron@aarongiles.com>2012-09-04 17:10:48 +0000
commitb56467bbb6ad927917ea06be486d645b93b32a2a (patch)
tree4e0c7ed763dc9e96d112230daf218f13510a5125 /src
parent95431b690eab63b2e80271011eb647f5579e26ae (diff)
Some Namco System 2 cleanups, removing the need for
AM_BASE/_SIZE_LEGACY. Also moved some handlers and statics into the state class.
Diffstat (limited to 'src')
-rw-r--r--src/mame/drivers/namcoic.c23
-rw-r--r--src/mame/drivers/namcos2.c109
-rw-r--r--src/mame/drivers/namcos21.c6
-rw-r--r--src/mame/includes/namcoic.h7
-rw-r--r--src/mame/includes/namcos2.h107
-rw-r--r--src/mame/video/namcos2.c206
6 files changed, 227 insertions, 231 deletions
diff --git a/src/mame/drivers/namcoic.c b/src/mame/drivers/namcoic.c
index 8b5e89f6dfd..639adb7ae39 100644
--- a/src/mame/drivers/namcoic.c
+++ b/src/mame/drivers/namcoic.c
@@ -416,13 +416,13 @@ static void zdrawgfxzoom(
}
void
-namcos2_draw_sprites(running_machine &machine, bitmap_ind16 &bitmap, const rectangle &cliprect, int pri, int control )
+namcos2_state::draw_sprites(bitmap_ind16 &bitmap, const rectangle &cliprect, int pri, int control )
{
int offset = (control & 0x000f) * (128*4);
int loop;
if( pri==0 )
{
- machine.priority_bitmap.fill(0, cliprect );
+ machine().priority_bitmap.fill(0, cliprect );
}
for( loop=0; loop < 128; loop++ )
{
@@ -447,12 +447,12 @@ namcos2_draw_sprites(running_machine &machine, bitmap_ind16 &bitmap, const recta
* Sprite colour index D04-D07
* Sprite Size X D10-D15
*/
- int word3 = namcos2_sprite_ram[offset+(loop*4)+3];
+ int word3 = m_spriteram[offset+(loop*4)+3];
if( (word3&0xf)==pri )
{
- int word0 = namcos2_sprite_ram[offset+(loop*4)+0];
- int word1 = namcos2_sprite_ram[offset+(loop*4)+1];
- int offset4 = namcos2_sprite_ram[offset+(loop*4)+2];
+ int word0 = m_spriteram[offset+(loop*4)+0];
+ int word1 = m_spriteram[offset+(loop*4)+1];
+ int offset4 = m_spriteram[offset+(loop*4)+2];
int sizey=((word0>>10)&0x3f)+1;
int sizex=(word3>>10)&0x3f;
@@ -472,7 +472,7 @@ namcos2_draw_sprites(running_machine &machine, bitmap_ind16 &bitmap, const recta
int scaley = (sizey<<16)/((word0&0x0200)?0x20:0x10);
if(scalex && scaley)
{
- gfx_element *gfx = machine.gfx[rgn];
+ gfx_element *gfx = machine().gfx[rgn];
if( (word0&0x0200)==0 )
gfx_element_set_source_clip(gfx, (word1&0x0001) ? 16 : 0, 16, (word1&0x0002) ? 16 : 0, 16);
@@ -495,8 +495,7 @@ namcos2_draw_sprites(running_machine &machine, bitmap_ind16 &bitmap, const recta
}
} /* namcos2_draw_sprites */
-void
-namcos2_draw_sprites_metalhawk(running_machine &machine, bitmap_ind16 &bitmap, const rectangle &cliprect, int pri )
+void namcos2_state::draw_sprites_metalhawk(bitmap_ind16 &bitmap, const rectangle &cliprect, int pri )
{
/**
* word#0
@@ -528,12 +527,12 @@ namcos2_draw_sprites_metalhawk(running_machine &machine, bitmap_ind16 &bitmap, c
* --------xxxx---- color
* x--------------- unknown
*/
- const UINT16 *pSource = namcos2_sprite_ram;
+ const UINT16 *pSource = m_spriteram;
rectangle rect;
int loop;
if( pri==0 )
{
- machine.priority_bitmap.fill(0, cliprect );
+ machine().priority_bitmap.fill(0, cliprect );
}
for( loop=0; loop < 128; loop++ )
{
@@ -606,7 +605,7 @@ namcos2_draw_sprites_metalhawk(running_machine &machine, bitmap_ind16 &bitmap, c
zdrawgfxzoom(
bitmap,
rect,
- machine.gfx[0],
+ machine().gfx[0],
sprn, color,
flipx,flipy,
sx,sy,
diff --git a/src/mame/drivers/namcos2.c b/src/mame/drivers/namcos2.c
index ea3ae16108b..ae2628d638a 100644
--- a/src/mame/drivers/namcos2.c
+++ b/src/mame/drivers/namcos2.c
@@ -467,53 +467,6 @@ $a00000 checks have been seen on the Final Lap boards.
/*************************************************************/
/* 68000/6809/63705 Shared memory area - DUAL PORT Memory */
/*************************************************************/
-class namcos2_state : public driver_device
-{
-public:
- namcos2_state(const machine_config &mconfig, device_type type, const char *tag)
- : driver_device(mconfig, type, tag)
- { }
- DECLARE_READ16_MEMBER(namcos2_68k_dpram_word_r);
- DECLARE_WRITE16_MEMBER(namcos2_68k_dpram_word_w);
- DECLARE_READ8_MEMBER(namcos2_dpram_byte_r);
- DECLARE_WRITE8_MEMBER(namcos2_dpram_byte_w);
- DECLARE_DRIVER_INIT(cosmogng);
- DECLARE_DRIVER_INIT(sgunner2);
- DECLARE_DRIVER_INIT(kyukaidk);
- DECLARE_DRIVER_INIT(bubbletr);
- DECLARE_DRIVER_INIT(suzuk8h2);
- DECLARE_DRIVER_INIT(burnforc);
- DECLARE_DRIVER_INIT(gollygho);
- DECLARE_DRIVER_INIT(rthun2j);
- DECLARE_DRIVER_INIT(sws);
- DECLARE_DRIVER_INIT(finehour);
- DECLARE_DRIVER_INIT(finallap);
- DECLARE_DRIVER_INIT(dirtfoxj);
- DECLARE_DRIVER_INIT(marvlanj);
- DECLARE_DRIVER_INIT(sws92);
- DECLARE_DRIVER_INIT(dsaber);
- DECLARE_DRIVER_INIT(assault);
- DECLARE_DRIVER_INIT(mirninja);
- DECLARE_DRIVER_INIT(finalap2);
- DECLARE_DRIVER_INIT(valkyrie);
- DECLARE_DRIVER_INIT(fourtrax);
- DECLARE_DRIVER_INIT(finalap3);
- DECLARE_DRIVER_INIT(luckywld);
- DECLARE_DRIVER_INIT(assaultj);
- DECLARE_DRIVER_INIT(dsaberj);
- DECLARE_DRIVER_INIT(suzuka8h);
- DECLARE_DRIVER_INIT(phelios);
- DECLARE_DRIVER_INIT(sws93);
- DECLARE_DRIVER_INIT(metlhawk);
- DECLARE_DRIVER_INIT(sws92g);
- DECLARE_DRIVER_INIT(assaultp_hack);
- DECLARE_DRIVER_INIT(assaultp);
- DECLARE_DRIVER_INIT(ordyne);
- DECLARE_DRIVER_INIT(marvland);
- DECLARE_DRIVER_INIT(rthun2);
-};
-
-static UINT8 *namcos2_dpram; /* 2Kx8 */
static void
GollyGhostUpdateLED_c4( int data )
@@ -574,16 +527,16 @@ GollyGhostUpdateDiorama_c0( int data )
}
}
-READ16_MEMBER(namcos2_state::namcos2_68k_dpram_word_r)
+READ16_MEMBER(namcos2_state::dpram_word_r)
{
- return namcos2_dpram[offset];
+ return m_dpram[offset];
}
-WRITE16_MEMBER(namcos2_state::namcos2_68k_dpram_word_w)
+WRITE16_MEMBER(namcos2_state::dpram_word_w)
{
if( ACCESSING_BITS_0_7 )
{
- namcos2_dpram[offset] = data&0xff;
+ m_dpram[offset] = data&0xff;
if( namcos2_gametype==NAMCOS2_GOLLY_GHOST )
{
@@ -608,14 +561,14 @@ WRITE16_MEMBER(namcos2_state::namcos2_68k_dpram_word_w)
}
-READ8_MEMBER(namcos2_state::namcos2_dpram_byte_r)
+READ8_MEMBER(namcos2_state::dpram_byte_r)
{
- return namcos2_dpram[offset];
+ return m_dpram[offset];
}
-WRITE8_MEMBER(namcos2_state::namcos2_dpram_byte_w)
+WRITE8_MEMBER(namcos2_state::dpram_byte_w)
{
- namcos2_dpram[offset] = data;
+ m_dpram[offset] = data;
}
/*************************************************************/
@@ -638,9 +591,9 @@ static ADDRESS_MAP_START( namcos2_68k_default_cpu_board_am, AS_PROGRAM, 16, namc
AM_RANGE(0x200000, 0x3fffff) AM_READ_LEGACY(namcos2_68k_data_rom_r)
AM_RANGE(0x400000, 0x41ffff) AM_READWRITE_LEGACY(namco_tilemapvideoram16_r,namco_tilemapvideoram16_w)
AM_RANGE(0x420000, 0x42003f) AM_READWRITE_LEGACY(namco_tilemapcontrol16_r,namco_tilemapcontrol16_w)
- AM_RANGE(0x440000, 0x44ffff) AM_READWRITE_LEGACY(namcos2_68k_video_palette_r,namcos2_68k_video_palette_w) AM_BASE_LEGACY(&namcos2_68k_palette_ram) AM_SIZE_LEGACY(&namcos2_68k_palette_size)
- AM_RANGE(0x460000, 0x460fff) AM_READWRITE(namcos2_68k_dpram_word_r,namcos2_68k_dpram_word_w)
- AM_RANGE(0x468000, 0x468fff) AM_READWRITE(namcos2_68k_dpram_word_r,namcos2_68k_dpram_word_w) /* mirror */
+ AM_RANGE(0x440000, 0x44ffff) AM_READWRITE(paletteram_word_r,paletteram_word_w) AM_SHARE("paletteram")
+ AM_RANGE(0x460000, 0x460fff) AM_READWRITE(dpram_word_r,dpram_word_w)
+ AM_RANGE(0x468000, 0x468fff) AM_READWRITE(dpram_word_r,dpram_word_w) /* mirror */
AM_RANGE(0x480000, 0x483fff) AM_READWRITE_LEGACY(namcos2_68k_serial_comms_ram_r,namcos2_68k_serial_comms_ram_w) AM_BASE_LEGACY(&namcos2_68k_serial_comms_ram)
AM_RANGE(0x4a0000, 0x4a000f) AM_READWRITE_LEGACY(namcos2_68k_serial_comms_ctrl_r,namcos2_68k_serial_comms_ctrl_w)
ADDRESS_MAP_END
@@ -648,10 +601,10 @@ ADDRESS_MAP_END
/*************************************************************/
static ADDRESS_MAP_START( common_default_am, AS_PROGRAM, 16, namcos2_state )
- AM_RANGE(0xc00000, 0xc03fff) AM_READWRITE_LEGACY(namcos2_sprite_ram_r,namcos2_sprite_ram_w) AM_BASE_LEGACY(&namcos2_sprite_ram)
+ AM_RANGE(0xc00000, 0xc03fff) AM_READWRITE(spriteram_word_r, spriteram_word_w) AM_SHARE("spriteram")
AM_RANGE(0xc40000, 0xc40001) AM_READWRITE_LEGACY(namcos2_gfx_ctrl_r,namcos2_gfx_ctrl_w)
- AM_RANGE(0xc80000, 0xc9ffff) AM_READWRITE_LEGACY(namcos2_68k_roz_ram_r,namcos2_68k_roz_ram_w) AM_BASE_LEGACY(&namcos2_68k_roz_ram)
- AM_RANGE(0xcc0000, 0xcc000f) AM_READWRITE_LEGACY(namcos2_68k_roz_ctrl_r,namcos2_68k_roz_ctrl_w)
+ AM_RANGE(0xc80000, 0xc9ffff) AM_READWRITE(rozram_word_r,rozram_word_w) AM_SHARE("rozram")
+ AM_RANGE(0xcc0000, 0xcc000f) AM_READWRITE(roz_ctrl_word_r, roz_ctrl_word_w)
AM_RANGE(0xd00000, 0xd0000f) AM_READWRITE_LEGACY(namcos2_68k_key_r,namcos2_68k_key_w)
AM_IMPORT_FROM( namcos2_68k_default_cpu_board_am )
ADDRESS_MAP_END
@@ -676,7 +629,7 @@ ADDRESS_MAP_END
static ADDRESS_MAP_START( common_finallap_am, AS_PROGRAM, 16, namcos2_state )
AM_RANGE(0x300000, 0x33ffff) AM_READ_LEGACY(namcos2_flap_prot_r)
- AM_RANGE(0x800000, 0x80ffff) AM_READ_LEGACY(namcos2_sprite_ram_r) AM_WRITE_LEGACY(namcos2_sprite_ram_w) AM_BASE_LEGACY(&namcos2_sprite_ram)
+ AM_RANGE(0x800000, 0x80ffff) AM_READWRITE(spriteram_word_r, spriteram_word_w) AM_SHARE("spriteram")
AM_RANGE(0x840000, 0x840001) AM_READ_LEGACY(namcos2_gfx_ctrl_r) AM_WRITE_LEGACY(namcos2_gfx_ctrl_w)
AM_RANGE(0x880000, 0x89ffff) AM_READ_LEGACY(namco_road16_r) AM_WRITE_LEGACY(namco_road16_w)
AM_RANGE(0x8c0000, 0x8c0001) AM_WRITENOP
@@ -725,7 +678,7 @@ ADDRESS_MAP_END
/*************************************************************/
static ADDRESS_MAP_START( common_metlhawk_am, AS_PROGRAM, 16, namcos2_state )
- AM_RANGE(0xc00000, 0xc03fff) AM_READWRITE_LEGACY(namcos2_sprite_ram_r,namcos2_sprite_ram_w) AM_BASE_LEGACY(&namcos2_sprite_ram) \
+ AM_RANGE(0xc00000, 0xc03fff) AM_READWRITE(spriteram_word_r, spriteram_word_w) AM_SHARE("spriteram") \
AM_RANGE(0xc40000, 0xc4ffff) AM_READWRITE_LEGACY(namco_rozvideoram16_r,namco_rozvideoram16_w) \
AM_RANGE(0xd00000, 0xd0001f) AM_READWRITE_LEGACY(namco_rozcontrol16_r,namco_rozcontrol16_w) \
AM_RANGE(0xe00000, 0xe00001) AM_READWRITE_LEGACY(namcos2_gfx_ctrl_r,namcos2_gfx_ctrl_w) /* ??? */ \
@@ -785,8 +738,8 @@ static ADDRESS_MAP_START( sound_default_am, AS_PROGRAM, 8, namcos2_state )
AM_RANGE(0x0000, 0x3fff) AM_ROMBANK("bank6") /* banked */
AM_RANGE(0x4000, 0x4001) AM_DEVREADWRITE_LEGACY("ymsnd", ym2151_r,ym2151_w)
AM_RANGE(0x5000, 0x6fff) AM_DEVREADWRITE_LEGACY("c140", c140_r,c140_w)
- AM_RANGE(0x7000, 0x77ff) AM_READWRITE(namcos2_dpram_byte_r,namcos2_dpram_byte_w) AM_BASE_LEGACY(&namcos2_dpram)
- AM_RANGE(0x7800, 0x7fff) AM_READWRITE(namcos2_dpram_byte_r,namcos2_dpram_byte_w) /* mirror */
+ AM_RANGE(0x7000, 0x77ff) AM_READWRITE(dpram_byte_r,dpram_byte_w) AM_SHARE("dpram")
+ AM_RANGE(0x7800, 0x7fff) AM_READWRITE(dpram_byte_r,dpram_byte_w) /* mirror */
AM_RANGE(0x8000, 0x9fff) AM_RAM
AM_RANGE(0xa000, 0xbfff) AM_WRITENOP /* Amplifier enable on 1st write */
AM_RANGE(0xc000, 0xc001) AM_WRITE_LEGACY(namcos2_sound_bankselect_w)
@@ -817,7 +770,7 @@ static ADDRESS_MAP_START( mcu_default_am, AS_PROGRAM, 8, namcos2_state )
AM_RANGE(0x3001, 0x3001) AM_READ_PORT("MCUDI1")
AM_RANGE(0x3002, 0x3002) AM_READ_PORT("MCUDI2")
AM_RANGE(0x3003, 0x3003) AM_READ_PORT("MCUDI3")
- AM_RANGE(0x5000, 0x57ff) AM_READWRITE(namcos2_dpram_byte_r,namcos2_dpram_byte_w) AM_BASE_LEGACY(&namcos2_dpram)
+ AM_RANGE(0x5000, 0x57ff) AM_READWRITE(dpram_byte_r,dpram_byte_w) AM_SHARE("dpram")
AM_RANGE(0x6000, 0x6fff) AM_READNOP /* watchdog */
AM_RANGE(0x8000, 0xffff) AM_ROM
ADDRESS_MAP_END
@@ -1680,13 +1633,11 @@ static MACHINE_CONFIG_START( default, namcos2_state )
MCFG_SCREEN_REFRESH_RATE( (49152000.0 / 8) / (384 * 264) )
MCFG_SCREEN_SIZE(384, 264)
MCFG_SCREEN_VISIBLE_AREA(0*8, 36*8-1, 0*8, 28*8-1)
- MCFG_SCREEN_UPDATE_STATIC(namcos2_default)
+ MCFG_SCREEN_UPDATE_DRIVER(namcos2_state, screen_update)
MCFG_GFXDECODE(namcos2)
MCFG_PALETTE_LENGTH(0x2000)
- MCFG_VIDEO_START(namcos2)
-
MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker")
MCFG_SOUND_ADD("c140", C140, C140_SOUND_CLOCK) /* 21.333kHz */
@@ -1756,13 +1707,11 @@ static MACHINE_CONFIG_START( gollygho, namcos2_state )
MCFG_SCREEN_REFRESH_RATE( (49152000.0 / 8) / (384 * 264) )
MCFG_SCREEN_SIZE(384, 264)
MCFG_SCREEN_VISIBLE_AREA(0*8, 36*8-1, 0*8, 28*8-1)
- MCFG_SCREEN_UPDATE_STATIC(namcos2_default)
+ MCFG_SCREEN_UPDATE_DRIVER(namcos2_state, screen_update)
MCFG_GFXDECODE(namcos2)
MCFG_PALETTE_LENGTH(0x2000)
- MCFG_VIDEO_START(namcos2)
-
MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker")
MCFG_SOUND_ADD("c140", C140, C140_SOUND_CLOCK) /* 21.333kHz */
@@ -1805,12 +1754,12 @@ static MACHINE_CONFIG_START( finallap, namcos2_state )
MCFG_SCREEN_REFRESH_RATE( (49152000.0 / 8) / (384 * 264) )
MCFG_SCREEN_SIZE(384, 264)
MCFG_SCREEN_VISIBLE_AREA(0*8, 36*8-1, 0*8, 28*8-1)
- MCFG_SCREEN_UPDATE_STATIC(finallap)
+ MCFG_SCREEN_UPDATE_DRIVER(namcos2_state, screen_update_finallap)
MCFG_GFXDECODE(finallap)
MCFG_PALETTE_LENGTH(0x2000)
- MCFG_VIDEO_START(finallap)
+ MCFG_VIDEO_START_OVERRIDE(namcos2_state, video_start_finallap)
MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker")
@@ -1854,12 +1803,12 @@ static MACHINE_CONFIG_START( sgunner, namcos2_state )
MCFG_SCREEN_REFRESH_RATE( (49152000.0 / 8) / (384 * 264) )
MCFG_SCREEN_SIZE(384, 264)
MCFG_SCREEN_VISIBLE_AREA(0*8, 36*8-1, 0*8, 28*8-1)
- MCFG_SCREEN_UPDATE_STATIC(sgunner)
+ MCFG_SCREEN_UPDATE_DRIVER(namcos2_state, screen_update_sgunner)
MCFG_GFXDECODE(sgunner)
MCFG_PALETTE_LENGTH(0x2000)
- MCFG_VIDEO_START(sgunner)
+ MCFG_VIDEO_START_OVERRIDE(namcos2_state, video_start_sgunner)
MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker")
@@ -1903,12 +1852,12 @@ static MACHINE_CONFIG_START( luckywld, namcos2_state )
MCFG_SCREEN_REFRESH_RATE( (49152000.0 / 8) / (384 * 264) )
MCFG_SCREEN_SIZE(384, 264)
MCFG_SCREEN_VISIBLE_AREA(0*8, 36*8-1, 0*8, 28*8-1)
- MCFG_SCREEN_UPDATE_STATIC(luckywld)
+ MCFG_SCREEN_UPDATE_DRIVER(namcos2_state, screen_update_luckywld)
MCFG_GFXDECODE(luckywld)
MCFG_PALETTE_LENGTH(0x2000)
- MCFG_VIDEO_START(luckywld)
+ MCFG_VIDEO_START_OVERRIDE(namcos2_state, video_start_luckywld)
MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker")
@@ -1952,12 +1901,12 @@ static MACHINE_CONFIG_START( metlhawk, namcos2_state )
MCFG_SCREEN_REFRESH_RATE( (49152000.0 / 8) / (384 * 264) )
MCFG_SCREEN_SIZE(384, 264)
MCFG_SCREEN_VISIBLE_AREA(0*8, 36*8-1, 0*8, 28*8-1)
- MCFG_SCREEN_UPDATE_STATIC(metlhawk)
+ MCFG_SCREEN_UPDATE_DRIVER(namcos2_state, screen_update_metlhawk)
MCFG_GFXDECODE(metlhawk)
MCFG_PALETTE_LENGTH(0x2000)
- MCFG_VIDEO_START(metlhawk)
+ MCFG_VIDEO_START_OVERRIDE(namcos2_state, video_start_metlhawk)
MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker")
diff --git a/src/mame/drivers/namcos21.c b/src/mame/drivers/namcos21.c
index 243e06c5437..3c2a22ddc8d 100644
--- a/src/mame/drivers/namcos21.c
+++ b/src/mame/drivers/namcos21.c
@@ -1090,7 +1090,7 @@ READ16_MEMBER(namcos21_state::NAMCO_C139_SCI_register_r){ return 0; }
static ADDRESS_MAP_START( namcos21_68k_master, AS_PROGRAM, 16, namcos21_state )
AM_RANGE(0x000000, 0x0fffff) AM_ROM
AM_RANGE(0x100000, 0x10ffff) AM_RAM /* private work RAM */
- AM_RANGE(0x180000, 0x183fff) AM_READWRITE_LEGACY(NAMCOS2_68K_eeprom_R,NAMCOS2_68K_eeprom_W)// AM_BASE_LEGACY(&namcos2_eeprom) AM_SIZE_LEGACY(&namcos2_eeprom_size)
+ AM_RANGE(0x180000, 0x183fff) AM_READWRITE_LEGACY(NAMCOS2_68K_eeprom_R,NAMCOS2_68K_eeprom_W)
AM_RANGE(0x1c0000, 0x1fffff) AM_READWRITE_LEGACY(namcos2_68k_master_C148_r,namcos2_68k_master_C148_w)
NAMCO21_68K_COMMON
ADDRESS_MAP_END
@@ -1320,7 +1320,7 @@ WRITE16_MEMBER(namcos21_state::winrun_dspcomram_control_w)
static ADDRESS_MAP_START( am_master_winrun, AS_PROGRAM, 16, namcos21_state )
AM_RANGE(0x000000, 0x03ffff) AM_ROM
AM_RANGE(0x100000, 0x10ffff) AM_RAM /* work RAM */
- AM_RANGE(0x180000, 0x183fff) AM_READWRITE_LEGACY(NAMCOS2_68K_eeprom_R,NAMCOS2_68K_eeprom_W)// AM_BASE_LEGACY(&namcos2_eeprom) AM_SIZE_LEGACY(&namcos2_eeprom_size)
+ AM_RANGE(0x180000, 0x183fff) AM_READWRITE_LEGACY(NAMCOS2_68K_eeprom_R,NAMCOS2_68K_eeprom_W)
AM_RANGE(0x1c0000, 0x1fffff) AM_READWRITE_LEGACY(namcos2_68k_master_C148_r,namcos2_68k_master_C148_w)
AM_RANGE(0x250000, 0x25ffff) AM_RAM AM_SHARE("winrun_polydata")
AM_RANGE(0x260000, 0x26ffff) AM_RAM /* unused? */
@@ -1429,7 +1429,7 @@ ADDRESS_MAP_END
static ADDRESS_MAP_START( driveyes_68k_master, AS_PROGRAM, 16, namcos21_state )
AM_RANGE(0x000000, 0x03ffff) AM_ROM
AM_RANGE(0x100000, 0x10ffff) AM_RAM /* private work RAM */
- AM_RANGE(0x180000, 0x183fff) AM_READWRITE_LEGACY(NAMCOS2_68K_eeprom_R,NAMCOS2_68K_eeprom_W)// AM_BASE_LEGACY(&namcos2_eeprom) AM_SIZE_LEGACY(&namcos2_eeprom_size)
+ AM_RANGE(0x180000, 0x183fff) AM_READWRITE_LEGACY(NAMCOS2_68K_eeprom_R,NAMCOS2_68K_eeprom_W)
AM_RANGE(0x1c0000, 0x1fffff) AM_READWRITE_LEGACY(namcos2_68k_master_C148_r,namcos2_68k_master_C148_w)
AM_RANGE(0x250000, 0x25ffff) AM_RAM AM_SHARE("winrun_polydata")
AM_RANGE(0x280000, 0x281fff) AM_WRITE(winrun_dspbios_w) AM_SHARE("winrun_dspbios")
diff --git a/src/mame/includes/namcoic.h b/src/mame/includes/namcoic.h
index 2f841bb920e..57b59abf993 100644
--- a/src/mame/includes/namcoic.h
+++ b/src/mame/includes/namcoic.h
@@ -111,13 +111,6 @@ READ32_HANDLER( namco_tilemapcontrol32_le_r );
WRITE32_HANDLER( namco_tilemapcontrol32_le_w );
/***********************************************************************************/
-
-/* Namco System II Sprite Rendering */
-void namcos2_draw_sprites( running_machine &machine, bitmap_ind16 &bitmap, const rectangle &cliprect, int pri, int control );
-
-void namcos2_draw_sprites_metalhawk( running_machine &machine, bitmap_ind16 &bitmap, const rectangle &cliprect, int pri );
-
-/***********************************************************************************/
/* C355 Motion Object Emulation */
/* for palXOR, supply either 0x0 (normal) or 0xf (palette mapping reversed) */
diff --git a/src/mame/includes/namcos2.h b/src/mame/includes/namcos2.h
index 68b4c6b4d71..9a694e3d56c 100644
--- a/src/mame/includes/namcos2.h
+++ b/src/mame/includes/namcos2.h
@@ -85,28 +85,106 @@ enum
NAMCOFL_FINAL_LAP_R
};
+class namcos2_state : public driver_device
+{
+public:
+ namcos2_state(const machine_config &mconfig, device_type type, const char *tag)
+ : driver_device(mconfig, type, tag),
+ m_dpram(*this, "dpram"),
+ m_spriteram(*this, "spriteram"),
+ m_paletteram(*this, "paletteram"),
+ m_rozram(*this, "rozram")
+ { }
+ DECLARE_READ16_MEMBER(dpram_word_r);
+ DECLARE_WRITE16_MEMBER(dpram_word_w);
+ DECLARE_READ8_MEMBER(dpram_byte_r);
+ DECLARE_WRITE8_MEMBER(dpram_byte_w);
+ DECLARE_DRIVER_INIT(cosmogng);
+ DECLARE_DRIVER_INIT(sgunner2);
+ DECLARE_DRIVER_INIT(kyukaidk);
+ DECLARE_DRIVER_INIT(bubbletr);
+ DECLARE_DRIVER_INIT(suzuk8h2);
+ DECLARE_DRIVER_INIT(burnforc);
+ DECLARE_DRIVER_INIT(gollygho);
+ DECLARE_DRIVER_INIT(rthun2j);
+ DECLARE_DRIVER_INIT(sws);
+ DECLARE_DRIVER_INIT(finehour);
+ DECLARE_DRIVER_INIT(finallap);
+ DECLARE_DRIVER_INIT(dirtfoxj);
+ DECLARE_DRIVER_INIT(marvlanj);
+ DECLARE_DRIVER_INIT(sws92);
+ DECLARE_DRIVER_INIT(dsaber);
+ DECLARE_DRIVER_INIT(assault);
+ DECLARE_DRIVER_INIT(mirninja);
+ DECLARE_DRIVER_INIT(finalap2);
+ DECLARE_DRIVER_INIT(valkyrie);
+ DECLARE_DRIVER_INIT(fourtrax);
+ DECLARE_DRIVER_INIT(finalap3);
+ DECLARE_DRIVER_INIT(luckywld);
+ DECLARE_DRIVER_INIT(assaultj);
+ DECLARE_DRIVER_INIT(dsaberj);
+ DECLARE_DRIVER_INIT(suzuka8h);
+ DECLARE_DRIVER_INIT(phelios);
+ DECLARE_DRIVER_INIT(sws93);
+ DECLARE_DRIVER_INIT(metlhawk);
+ DECLARE_DRIVER_INIT(sws92g);
+ DECLARE_DRIVER_INIT(assaultp_hack);
+ DECLARE_DRIVER_INIT(assaultp);
+ DECLARE_DRIVER_INIT(ordyne);
+ DECLARE_DRIVER_INIT(marvland);
+ DECLARE_DRIVER_INIT(rthun2);
+
+ virtual void video_start();
+ void video_start_finallap();
+ void video_start_luckywld();
+ void video_start_metlhawk();
+ void video_start_sgunner();
+
+ UINT32 screen_update(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
+ UINT32 screen_update_finallap(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
+ UINT32 screen_update_luckywld(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
+ UINT32 screen_update_metlhawk(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
+ UINT32 screen_update_sgunner(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
+
+ DECLARE_READ16_MEMBER( paletteram_word_r );
+ DECLARE_WRITE16_MEMBER( paletteram_word_w );
+ DECLARE_READ16_MEMBER( spriteram_word_r );
+ DECLARE_WRITE16_MEMBER( spriteram_word_w );
+ DECLARE_READ16_MEMBER( rozram_word_r );
+ DECLARE_WRITE16_MEMBER( rozram_word_w );
+ DECLARE_READ16_MEMBER( roz_ctrl_word_r );
+ DECLARE_WRITE16_MEMBER( roz_ctrl_word_w );
+
+ void update_palette();
+ void apply_clip( rectangle &clip, const rectangle &cliprect );
+ void draw_roz(bitmap_ind16 &bitmap, const rectangle &cliprect);
+ void draw_sprites(bitmap_ind16 &bitmap, const rectangle &cliprect, int pri, int control );
+ void draw_sprites_metalhawk(bitmap_ind16 &bitmap, const rectangle &cliprect, int pri );
+ UINT16 get_palette_register( int which );
+
+ required_shared_ptr<UINT8> m_dpram; /* 2Kx8 */
+ optional_shared_ptr<UINT16> m_spriteram;
+ required_shared_ptr<UINT16> m_paletteram;
+ optional_shared_ptr<UINT16> m_rozram;
+
+ UINT16 m_roz_ctrl[0x8];
+ tilemap_t *m_tilemap_roz;
+
+};
+
/*----------- defined in video/namcos2.c -----------*/
#define NAMCOS21_NUM_COLORS 0x8000
VIDEO_START( namcos2 );
-SCREEN_UPDATE_IND16( namcos2_default );
VIDEO_START( finallap );
-SCREEN_UPDATE_IND16( finallap );
VIDEO_START( luckywld );
-SCREEN_UPDATE_IND16( luckywld );
VIDEO_START( metlhawk );
-SCREEN_UPDATE_IND16( metlhawk );
VIDEO_START( sgunner );
-SCREEN_UPDATE_IND16( sgunner );
-
-extern UINT16 *namcos2_sprite_ram;
-WRITE16_HANDLER( namcos2_sprite_ram_w );
-READ16_HANDLER( namcos2_sprite_ram_r );
int namcos2_GetPosIrqScanline( running_machine &machine );
@@ -116,24 +194,13 @@ READ16_HANDLER( namcos2_gfx_ctrl_r );
/**************************************************************/
/* Shared video palette function handlers */
/**************************************************************/
-READ16_HANDLER( namcos2_68k_video_palette_r );
-WRITE16_HANDLER( namcos2_68k_video_palette_w );
#define VIRTUAL_PALETTE_BANKS 30
-extern UINT16 *namcos2_68k_palette_ram;
-extern size_t namcos2_68k_palette_size;
/**************************************************************/
/* ROZ - Rotate & Zoom memory function handlers */
/**************************************************************/
-WRITE16_HANDLER( namcos2_68k_roz_ctrl_w );
-READ16_HANDLER( namcos2_68k_roz_ctrl_r );
-
-WRITE16_HANDLER( namcos2_68k_roz_ram_w );
-READ16_HANDLER( namcos2_68k_roz_ram_r );
-extern UINT16 *namcos2_68k_roz_ram;
-
/*----------- defined in machine/namcos2.c -----------*/
extern void (*namcos2_kickstart)(running_machine &machine, int internal);
diff --git a/src/mame/video/namcos2.c b/src/mame/video/namcos2.c
index 9a0b3f8d680..53f64f8572e 100644
--- a/src/mame/video/namcos2.c
+++ b/src/mame/video/namcos2.c
@@ -5,15 +5,6 @@
#include "includes/namcos2.h"
#include "includes/namcoic.h"
-UINT16 *namcos2_sprite_ram;
-UINT16 *namcos2_68k_palette_ram;
-size_t namcos2_68k_palette_size;
-//size_t namcos2_68k_roz_ram_size;
-UINT16 *namcos2_68k_roz_ram;
-
-static UINT16 namcos2_68k_roz_ctrl[0x8];
-static tilemap_t *tilemap_roz;
-
static void
TilemapCB( running_machine &machine, UINT16 code, int *tile, int *mask )
{
@@ -58,7 +49,7 @@ WRITE16_HANDLER( namcos2_gfx_ctrl_w )
static TILE_GET_INFO( get_tile_info_roz )
{
- int tile = namcos2_68k_roz_ram[tile_index];
+ int tile = machine.driver_data<namcos2_state>()->m_rozram[tile_index];
SET_TILE_INFO(3,tile,0/*color*/,0);
} /* get_tile_info_roz */
@@ -244,24 +235,23 @@ DrawRozHelper(
}
} /* DrawRozHelper */
-static void
-DrawROZ(bitmap_ind16 &bitmap,const rectangle &cliprect)
+void namcos2_state::draw_roz(bitmap_ind16 &bitmap, const rectangle &cliprect)
{
const int xoffset = 38,yoffset = 0;
struct RozParam rozParam;
rozParam.color = (namcos2_gfx_ctrl & 0x0f00);
- rozParam.incxx = (INT16)namcos2_68k_roz_ctrl[0];
- rozParam.incxy = (INT16)namcos2_68k_roz_ctrl[1];
- rozParam.incyx = (INT16)namcos2_68k_roz_ctrl[2];
- rozParam.incyy = (INT16)namcos2_68k_roz_ctrl[3];
- rozParam.startx = (INT16)namcos2_68k_roz_ctrl[4];
- rozParam.starty = (INT16)namcos2_68k_roz_ctrl[5];
+ rozParam.incxx = (INT16)m_roz_ctrl[0];
+ rozParam.incxy = (INT16)m_roz_ctrl[1];
+ rozParam.incyx = (INT16)m_roz_ctrl[2];
+ rozParam.incyy = (INT16)m_roz_ctrl[3];
+ rozParam.startx = (INT16)m_roz_ctrl[4];
+ rozParam.starty = (INT16)m_roz_ctrl[5];
rozParam.size = 2048;
rozParam.wrap = 1;
- switch( namcos2_68k_roz_ctrl[7] )
+ switch( m_roz_ctrl[7] )
{
case 0x4400: /* (2048x2048) */
break;
@@ -292,28 +282,28 @@ DrawROZ(bitmap_ind16 &bitmap,const rectangle &cliprect)
rozParam.incyx<<=8;
rozParam.incyy<<=8;
- DrawRozHelper( bitmap, tilemap_roz, cliprect, &rozParam );
+ DrawRozHelper( bitmap, m_tilemap_roz, cliprect, &rozParam );
}
-READ16_HANDLER(namcos2_68k_roz_ctrl_r)
+READ16_MEMBER(namcos2_state::roz_ctrl_word_r)
{
- return namcos2_68k_roz_ctrl[offset];
+ return m_roz_ctrl[offset];
}
-WRITE16_HANDLER( namcos2_68k_roz_ctrl_w )
+WRITE16_MEMBER( namcos2_state::roz_ctrl_word_w )
{
- COMBINE_DATA(&namcos2_68k_roz_ctrl[offset]);
+ COMBINE_DATA(&m_roz_ctrl[offset]);
}
-READ16_HANDLER( namcos2_68k_roz_ram_r )
+READ16_MEMBER( namcos2_state::rozram_word_r )
{
- return namcos2_68k_roz_ram[offset];
+ return m_rozram[offset];
}
-WRITE16_HANDLER( namcos2_68k_roz_ram_w )
+WRITE16_MEMBER( namcos2_state::rozram_word_w )
{
- COMBINE_DATA(&namcos2_68k_roz_ram[offset]);
- tilemap_roz->mark_tile_dirty(offset);
+ COMBINE_DATA(&m_rozram[offset]);
+ m_tilemap_roz->mark_tile_dirty(offset);
// if( space->machine().input().code_pressed(KEYCODE_Q) )
// {
// debugger_break(space->machine());
@@ -322,14 +312,13 @@ WRITE16_HANDLER( namcos2_68k_roz_ram_w )
/**************************************************************************/
-static UINT16
-GetPaletteRegister( int which )
+inline UINT16 namcos2_state::get_palette_register( int which )
{
- const UINT16 *source = &namcos2_68k_palette_ram[0x3000/2];
+ const UINT16 *source = &m_paletteram[0x3000/2];
return ((source[which*2]&0xff)<<8) | (source[which*2+1]&0xff);
}
-READ16_HANDLER( namcos2_68k_video_palette_r )
+READ16_MEMBER( namcos2_state::paletteram_word_r )
{
if( (offset&0x1800) == 0x1800 )
{
@@ -339,10 +328,10 @@ READ16_HANDLER( namcos2_68k_video_palette_r )
/* registers 6,7: unmapped? */
if (offset > 0x180b) return 0xff;
}
- return namcos2_68k_palette_ram[offset];
+ return m_paletteram[offset];
} /* namcos2_68k_video_palette_r */
-WRITE16_HANDLER( namcos2_68k_video_palette_w )
+WRITE16_MEMBER( namcos2_state::paletteram_word_w )
{
if( (offset&0x1800) == 0x1800 )
{
@@ -366,14 +355,14 @@ WRITE16_HANDLER( namcos2_68k_video_palette_w )
luckywld: $00E8 at titlescreen, $00A0 in game and $0118 if in tunnel
suzuka8h1/2: $00E8 and $00A0 */
case 0x1808: case 0x1809:
- // if (data^namcos2_68k_palette_ram[offset]) printf("%04X\n",data<<((~offset&1)<<3)|namcos2_68k_palette_ram[offset^1]<<((offset&1)<<3));
+ // if (data^m_paletteram[offset]) printf("%04X\n",data<<((~offset&1)<<3)|m_paletteram[offset^1]<<((offset&1)<<3));
break;
/* register 5: POSIRQ scanline (only 8 bits used) */
/*case 0x180a:*/ case 0x180b:
- if (data^namcos2_68k_palette_ram[offset]) {
- namcos2_68k_palette_ram[offset] = data;
- namcos2_adjust_posirq_timer(space->machine(),namcos2_GetPosIrqScanline(space->machine()));
+ if (data^m_paletteram[offset]) {
+ m_paletteram[offset] = data;
+ namcos2_adjust_posirq_timer(machine(),namcos2_GetPosIrqScanline(machine()));
}
break;
@@ -381,11 +370,11 @@ WRITE16_HANDLER( namcos2_68k_video_palette_w )
default: break;
}
- namcos2_68k_palette_ram[offset] = data;
+ m_paletteram[offset] = data;
}
else
{
- COMBINE_DATA(&namcos2_68k_palette_ram[offset]);
+ COMBINE_DATA(&m_paletteram[offset]);
}
} /* namcos2_68k_video_palette_w */
@@ -393,11 +382,11 @@ WRITE16_HANDLER( namcos2_68k_video_palette_w )
int
namcos2_GetPosIrqScanline( running_machine &machine )
{
- return (GetPaletteRegister(5) - 32) & 0xff;
+ return (machine.driver_data<namcos2_state>()->get_palette_register(5) - 32) & 0xff;
} /* namcos2_GetPosIrqScanline */
-static void
-UpdatePalette( running_machine &machine )
+inline void
+namcos2_state::update_palette()
{
int bank;
for( bank=0; bank<0x20; bank++ )
@@ -407,14 +396,14 @@ UpdatePalette( running_machine &machine )
int i;
for( i=0; i<256; i++ )
{
- int r = namcos2_68k_palette_ram[offset | 0x0000] & 0x00ff;
- int g = namcos2_68k_palette_ram[offset | 0x0800] & 0x00ff;
- int b = namcos2_68k_palette_ram[offset | 0x1000] & 0x00ff;
- palette_set_color(machine,pen++,MAKE_RGB(r,g,b));
+ int r = m_paletteram[offset | 0x0000] & 0x00ff;
+ int g = m_paletteram[offset | 0x0800] & 0x00ff;
+ int b = m_paletteram[offset | 0x1000] & 0x00ff;
+ palette_set_color(machine(),pen++,MAKE_RGB(r,g,b));
offset++;
}
}
-} /* UpdatePalette */
+} /* update_palette */
/**************************************************************************/
@@ -429,48 +418,47 @@ DrawSpriteInit( running_machine &machine )
}
}
-WRITE16_HANDLER( namcos2_sprite_ram_w )
+WRITE16_MEMBER( namcos2_state::spriteram_word_w )
{
- COMBINE_DATA(&namcos2_sprite_ram[offset]);
+ COMBINE_DATA(&m_spriteram[offset]);
}
-READ16_HANDLER( namcos2_sprite_ram_r )
+READ16_MEMBER( namcos2_state::spriteram_word_r )
{
- return namcos2_sprite_ram[offset];
+ return m_spriteram[offset];
}
/**************************************************************************/
-VIDEO_START( namcos2 )
+void namcos2_state::video_start()
{
- namco_tilemap_init(machine,2,machine.root_device().memregion("gfx4")->base(),TilemapCB);
- tilemap_roz = tilemap_create(machine, get_tile_info_roz,tilemap_scan_rows,8,8,256,256);
- tilemap_roz->set_transparent_pen(0xff);
- DrawSpriteInit(machine);
+ namco_tilemap_init(machine(), 2, memregion("gfx4")->base(), TilemapCB);
+ m_tilemap_roz = tilemap_create(machine(), get_tile_info_roz,tilemap_scan_rows,8,8,256,256);
+ m_tilemap_roz->set_transparent_pen(0xff);
+ DrawSpriteInit(machine());
}
-static void
-ApplyClip( rectangle &clip, const rectangle &cliprect )
+void namcos2_state::apply_clip( rectangle &clip, const rectangle &cliprect )
{
- clip.min_x = GetPaletteRegister(0) - 0x4a;
- clip.max_x = GetPaletteRegister(1) - 0x4a - 1;
- clip.min_y = GetPaletteRegister(2) - 0x21;
- clip.max_y = GetPaletteRegister(3) - 0x21 - 1;
+ clip.min_x = get_palette_register(0) - 0x4a;
+ clip.max_x = get_palette_register(1) - 0x4a - 1;
+ clip.min_y = get_palette_register(2) - 0x21;
+ clip.max_y = get_palette_register(3) - 0x21 - 1;
/* intersect with master clip rectangle */
clip &= cliprect;
-} /* ApplyClip */
+} /* apply_clip */
-SCREEN_UPDATE_IND16( namcos2_default )
+UINT32 namcos2_state::screen_update(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
rectangle clip;
int pri;
- UpdatePalette(screen.machine());
- bitmap.fill(get_black_pen(screen.machine()), cliprect );
- ApplyClip( clip, cliprect );
+ update_palette();
+ bitmap.fill(get_black_pen(machine()), cliprect );
+ apply_clip( clip, cliprect );
/* HACK: enable ROZ layer only if it has priority > 0 */
- tilemap_roz->enable((namcos2_gfx_ctrl & 0x7000) ? 1 : 0);
+ m_tilemap_roz->enable((namcos2_gfx_ctrl & 0x7000) ? 1 : 0);
for( pri=0; pri<16; pri++ )
{
@@ -480,9 +468,9 @@ SCREEN_UPDATE_IND16( namcos2_default )
if( ((namcos2_gfx_ctrl & 0x7000) >> 12)==pri/2 )
{
- DrawROZ(bitmap,clip);
+ draw_roz(bitmap,clip);
}
- namcos2_draw_sprites(screen.machine(), bitmap, clip, pri/2, namcos2_gfx_ctrl );
+ draw_sprites(bitmap, clip, pri/2, namcos2_gfx_ctrl );
}
}
return 0;
@@ -490,21 +478,21 @@ SCREEN_UPDATE_IND16( namcos2_default )
/**************************************************************************/
-VIDEO_START( finallap )
+void namcos2_state::video_start_finallap()
{
- namco_tilemap_init(machine,2,machine.root_device().memregion("gfx4")->base(),TilemapCB);
- DrawSpriteInit(machine);
- namco_road_init(machine, 3);
+ namco_tilemap_init(machine(),2,memregion("gfx4")->base(),TilemapCB);
+ DrawSpriteInit(machine());
+ namco_road_init(machine(), 3);
}
-SCREEN_UPDATE_IND16( finallap )
+UINT32 namcos2_state::screen_update_finallap(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
rectangle clip;
int pri;
- UpdatePalette(screen.machine());
- bitmap.fill(get_black_pen(screen.machine()), cliprect );
- ApplyClip( clip, cliprect );
+ update_palette();
+ bitmap.fill(get_black_pen(machine()), cliprect );
+ apply_clip( clip, cliprect );
for( pri=0; pri<16; pri++ )
{
@@ -512,36 +500,36 @@ SCREEN_UPDATE_IND16( finallap )
{
namco_tilemap_draw( bitmap, clip, pri/2 );
}
- namco_road_draw(screen.machine(), bitmap,clip,pri );
- namcos2_draw_sprites(screen.machine(), bitmap,clip,pri,namcos2_gfx_ctrl );
+ namco_road_draw(machine(), bitmap,clip,pri );
+ draw_sprites(bitmap,clip,pri,namcos2_gfx_ctrl );
}
return 0;
}
/**************************************************************************/
-VIDEO_START( luckywld )
+void namcos2_state::video_start_luckywld()
{
- namco_tilemap_init(machine,2,machine.root_device().memregion("gfx4")->base(),TilemapCB);
- namco_obj_init( machine, 0, 0x0, NULL );
+ namco_tilemap_init(machine(),2,memregion("gfx4")->base(),TilemapCB);
+ namco_obj_init( machine(), 0, 0x0, NULL );
if( namcos2_gametype==NAMCOS2_LUCKY_AND_WILD )
{
- namco_roz_init( machine, 1, "gfx5" );
+ namco_roz_init( machine(), 1, "gfx5" );
}
if( namcos2_gametype!=NAMCOS2_STEEL_GUNNER_2 )
{
- namco_road_init(machine, 3);
+ namco_road_init(machine(), 3);
}
} /* luckywld */
-SCREEN_UPDATE_IND16( luckywld )
+UINT32 namcos2_state::screen_update_luckywld(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
rectangle clip;
int pri;
- UpdatePalette(screen.machine());
- bitmap.fill(get_black_pen(screen.machine()), cliprect );
- ApplyClip( clip, cliprect );
+ update_palette();
+ bitmap.fill(get_black_pen(machine()), cliprect );
+ apply_clip( clip, cliprect );
for( pri=0; pri<16; pri++ )
{
@@ -549,37 +537,37 @@ SCREEN_UPDATE_IND16( luckywld )
{
namco_tilemap_draw( bitmap, clip, pri/2 );
}
- namco_road_draw(screen.machine(), bitmap,clip,pri );
+ namco_road_draw(machine(), bitmap,clip,pri );
if( namcos2_gametype==NAMCOS2_LUCKY_AND_WILD )
{
namco_roz_draw( bitmap, clip, pri );
}
- namco_obj_draw(screen.machine(), bitmap, clip, pri );
+ namco_obj_draw(machine(), bitmap, clip, pri );
}
return 0;
}
/**************************************************************************/
-VIDEO_START( sgunner )
+void namcos2_state::video_start_sgunner()
{
- namco_tilemap_init(machine,2,machine.root_device().memregion("gfx4")->base(),TilemapCB);
- namco_obj_init( machine, 0, 0x0, NULL );
+ namco_tilemap_init(machine(),2,memregion("gfx4")->base(),TilemapCB);
+ namco_obj_init( machine(), 0, 0x0, NULL );
}
-SCREEN_UPDATE_IND16( sgunner )
+UINT32 namcos2_state::screen_update_sgunner(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
rectangle clip;
int pri;
- UpdatePalette(screen.machine());
- bitmap.fill(get_black_pen(screen.machine()), cliprect );
- ApplyClip( clip, cliprect );
+ update_palette();
+ bitmap.fill(get_black_pen(machine()), cliprect );
+ apply_clip( clip, cliprect );
for( pri=0; pri<8; pri++ )
{
namco_tilemap_draw( bitmap, clip, pri );
- namco_obj_draw(screen.machine(), bitmap, clip, pri );
+ namco_obj_draw(machine(), bitmap, clip, pri );
}
return 0;
}
@@ -587,20 +575,20 @@ SCREEN_UPDATE_IND16( sgunner )
/**************************************************************************/
-VIDEO_START( metlhawk )
+void namcos2_state::video_start_metlhawk()
{
- namco_tilemap_init(machine,2,machine.root_device().memregion("gfx4")->base(),TilemapCB);
- namco_roz_init( machine, 1, "gfx5" );
+ namco_tilemap_init(machine(),2,memregion("gfx4")->base(),TilemapCB);
+ namco_roz_init( machine(), 1, "gfx5" );
}
-SCREEN_UPDATE_IND16( metlhawk )
+UINT32 namcos2_state::screen_update_metlhawk(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
rectangle clip;
int pri;
- UpdatePalette(screen.machine());
- bitmap.fill(get_black_pen(screen.machine()), cliprect );
- ApplyClip( clip, cliprect );
+ update_palette();
+ bitmap.fill(get_black_pen(machine()), cliprect );
+ apply_clip( clip, cliprect );
for( pri=0; pri<16; pri++ )
{
@@ -609,7 +597,7 @@ SCREEN_UPDATE_IND16( metlhawk )
namco_tilemap_draw( bitmap, clip, pri/2 );
}
namco_roz_draw( bitmap, clip, pri );
- namcos2_draw_sprites_metalhawk(screen.machine(), bitmap,clip,pri );
+ draw_sprites_metalhawk(bitmap,clip,pri );
}
return 0;
}