diff options
author | 2012-09-04 17:10:48 +0000 | |
---|---|---|
committer | 2012-09-04 17:10:48 +0000 | |
commit | b56467bbb6ad927917ea06be486d645b93b32a2a (patch) | |
tree | 4e0c7ed763dc9e96d112230daf218f13510a5125 /src | |
parent | 95431b690eab63b2e80271011eb647f5579e26ae (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.c | 23 | ||||
-rw-r--r-- | src/mame/drivers/namcos2.c | 109 | ||||
-rw-r--r-- | src/mame/drivers/namcos21.c | 6 | ||||
-rw-r--r-- | src/mame/includes/namcoic.h | 7 | ||||
-rw-r--r-- | src/mame/includes/namcos2.h | 107 | ||||
-rw-r--r-- | src/mame/video/namcos2.c | 206 |
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; } |