diff --git a/src/mame/drivers/mosaic.c b/src/mame/drivers/mosaic.c index 88b7e5d9e93..814c8d43471 100644 --- a/src/mame/drivers/mosaic.c +++ b/src/mame/drivers/mosaic.c @@ -88,16 +88,16 @@ READ8_MEMBER(mosaic_state::gfire2_protection_r) static ADDRESS_MAP_START( mosaic_map, AS_PROGRAM, 8, mosaic_state ) AM_RANGE(0x00000, 0x0ffff) AM_ROM AM_RANGE(0x20000, 0x21fff) AM_RAM - AM_RANGE(0x22000, 0x22fff) AM_RAM_WRITE(mosaic_bgvideoram_w) AM_SHARE("bgvideoram") - AM_RANGE(0x23000, 0x23fff) AM_RAM_WRITE(mosaic_fgvideoram_w) AM_SHARE("fgvideoram") + AM_RANGE(0x22000, 0x22fff) AM_RAM_WRITE(bgvideoram_w) AM_SHARE("bgvideoram") + AM_RANGE(0x23000, 0x23fff) AM_RAM_WRITE(fgvideoram_w) AM_SHARE("fgvideoram") AM_RANGE(0x24000, 0x241ff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette") ADDRESS_MAP_END static ADDRESS_MAP_START( gfire2_map, AS_PROGRAM, 8, mosaic_state ) AM_RANGE(0x00000, 0x0ffff) AM_ROM AM_RANGE(0x10000, 0x17fff) AM_RAM - AM_RANGE(0x22000, 0x22fff) AM_RAM_WRITE(mosaic_bgvideoram_w) AM_SHARE("bgvideoram") - AM_RANGE(0x23000, 0x23fff) AM_RAM_WRITE(mosaic_fgvideoram_w) AM_SHARE("fgvideoram") + AM_RANGE(0x22000, 0x22fff) AM_RAM_WRITE(bgvideoram_w) AM_SHARE("bgvideoram") + AM_RANGE(0x23000, 0x23fff) AM_RAM_WRITE(fgvideoram_w) AM_SHARE("fgvideoram") AM_RANGE(0x24000, 0x241ff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette") ADDRESS_MAP_END @@ -255,7 +255,7 @@ static MACHINE_CONFIG_START( mosaic, mosaic_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) MCFG_SCREEN_SIZE(64*8, 32*8) MCFG_SCREEN_VISIBLE_AREA(8*8, 48*8-1, 2*8, 30*8-1) - MCFG_SCREEN_UPDATE_DRIVER(mosaic_state, screen_update_mosaic) + MCFG_SCREEN_UPDATE_DRIVER(mosaic_state, screen_update) MCFG_SCREEN_PALETTE("palette") MCFG_GFXDECODE_ADD("gfxdecode", "palette", mosaic) @@ -338,6 +338,6 @@ ROM_END -GAME( 1990, mosaic, 0, mosaic, mosaic, driver_device, 0, ROT0, "Space", "Mosaic", 0 ) -GAME( 1990, mosaica, mosaic, mosaic, mosaic, driver_device, 0, ROT0, "Space (Fuuki license)", "Mosaic (Fuuki)", 0 ) -GAME( 1992, gfire2, 0, gfire2, gfire2, driver_device, 0, ROT0, "Topis Corp", "Golden Fire II", 0 ) +GAME( 1990, mosaic, 0, mosaic, mosaic, driver_device, 0, ROT0, "Space", "Mosaic", GAME_SUPPORTS_SAVE ) +GAME( 1990, mosaica, mosaic, mosaic, mosaic, driver_device, 0, ROT0, "Space (Fuuki license)", "Mosaic (Fuuki)", GAME_SUPPORTS_SAVE ) +GAME( 1992, gfire2, 0, gfire2, gfire2, driver_device, 0, ROT0, "Topis Corp", "Golden Fire II", GAME_SUPPORTS_SAVE ) diff --git a/src/mame/drivers/tagteam.c b/src/mame/drivers/tagteam.c index 402f110ac63..6a98b6dcf04 100644 --- a/src/mame/drivers/tagteam.c +++ b/src/mame/drivers/tagteam.c @@ -30,6 +30,12 @@ TODO: #include "sound/dac.h" #include "includes/tagteam.h" + +void tagteam_state::machine_start() +{ + save_item(NAME(m_sound_nmi_mask)); +} + WRITE8_MEMBER(tagteam_state::sound_command_w) { soundlatch_byte_w(space, offset, data); @@ -43,15 +49,15 @@ WRITE8_MEMBER(tagteam_state::irq_clear_w) static ADDRESS_MAP_START( main_map, AS_PROGRAM, 8, tagteam_state ) AM_RANGE(0x0000, 0x07ff) AM_RAM - AM_RANGE(0x2000, 0x2000) AM_READ_PORT("P2") AM_WRITE(tagteam_flipscreen_w) - AM_RANGE(0x2001, 0x2001) AM_READ_PORT("P1") AM_WRITE(tagteam_control_w) + AM_RANGE(0x2000, 0x2000) AM_READ_PORT("P2") AM_WRITE(flipscreen_w) + AM_RANGE(0x2001, 0x2001) AM_READ_PORT("P1") AM_WRITE(control_w) AM_RANGE(0x2002, 0x2002) AM_READ_PORT("DSW1") AM_WRITE(sound_command_w) AM_RANGE(0x2003, 0x2003) AM_READ_PORT("DSW2") AM_WRITE(irq_clear_w) - AM_RANGE(0x4000, 0x43ff) AM_READWRITE(tagteam_mirrorvideoram_r, tagteam_mirrorvideoram_w) - AM_RANGE(0x4400, 0x47ff) AM_READWRITE(tagteam_mirrorcolorram_r, tagteam_mirrorcolorram_w) + AM_RANGE(0x4000, 0x43ff) AM_READWRITE(mirrorvideoram_r, mirrorvideoram_w) + AM_RANGE(0x4400, 0x47ff) AM_READWRITE(mirrorcolorram_r, mirrorcolorram_w) AM_RANGE(0x4800, 0x4fff) AM_READONLY - AM_RANGE(0x4800, 0x4bff) AM_WRITE(tagteam_videoram_w) AM_SHARE("videoram") - AM_RANGE(0x4c00, 0x4fff) AM_WRITE(tagteam_colorram_w) AM_SHARE("colorram") + AM_RANGE(0x4800, 0x4bff) AM_WRITE(videoram_w) AM_SHARE("videoram") + AM_RANGE(0x4c00, 0x4fff) AM_WRITE(colorram_w) AM_SHARE("colorram") AM_RANGE(0x8000, 0xffff) AM_ROM ADDRESS_MAP_END @@ -218,7 +224,7 @@ static MACHINE_CONFIG_START( tagteam, tagteam_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(3072)) MCFG_SCREEN_SIZE(32*8, 32*8) MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 1*8, 31*8-1) - MCFG_SCREEN_UPDATE_DRIVER(tagteam_state, screen_update_tagteam) + MCFG_SCREEN_UPDATE_DRIVER(tagteam_state, screen_update) MCFG_SCREEN_PALETTE("palette") MCFG_GFXDECODE_ADD("gfxdecode", "palette", tagteam) @@ -304,5 +310,5 @@ ROM_END -GAME( 1983, bigprowr, 0, tagteam, bigprowr, driver_device, 0, ROT270, "Technos Japan", "The Big Pro Wrestling!", 0 ) -GAME( 1983, tagteam, bigprowr, tagteam, tagteam, driver_device, 0, ROT270, "Technos Japan (Data East license)", "Tag Team Wrestling", 0 ) +GAME( 1983, bigprowr, 0, tagteam, bigprowr, driver_device, 0, ROT270, "Technos Japan", "The Big Pro Wrestling!", GAME_SUPPORTS_SAVE ) +GAME( 1983, tagteam, bigprowr, tagteam, tagteam, driver_device, 0, ROT270, "Technos Japan (Data East license)", "Tag Team Wrestling", GAME_SUPPORTS_SAVE ) diff --git a/src/mame/drivers/taotaido.c b/src/mame/drivers/taotaido.c index 8bc824f0b85..47fe7c091e0 100644 --- a/src/mame/drivers/taotaido.c +++ b/src/mame/drivers/taotaido.c @@ -73,6 +73,12 @@ zooming might be wrong #define TAOTAIDO_SHOW_ALL_INPUTS 0 +void taotaido_state::machine_start() +{ + save_item(NAME(m_pending_command)); +} + + READ16_MEMBER(taotaido_state::pending_command_r) { /* Only bit 0 is tested */ @@ -90,7 +96,7 @@ WRITE16_MEMBER(taotaido_state::sound_command_w) } static ADDRESS_MAP_START( main_map, AS_PROGRAM, 16, taotaido_state ) AM_RANGE(0x000000, 0x0fffff) AM_ROM - AM_RANGE(0x800000, 0x803fff) AM_RAM_WRITE(taotaido_bgvideoram_w) AM_SHARE("bgram") // bg ram? + AM_RANGE(0x800000, 0x803fff) AM_RAM_WRITE(bgvideoram_w) AM_SHARE("bgram") // bg ram? AM_RANGE(0xa00000, 0xa01fff) AM_RAM AM_SHARE("spriteram") // sprite ram AM_RANGE(0xc00000, 0xc0ffff) AM_RAM AM_SHARE("spriteram2") // sprite tile lookup ram AM_RANGE(0xfe0000, 0xfeffff) AM_RAM // main ram @@ -106,10 +112,10 @@ static ADDRESS_MAP_START( main_map, AS_PROGRAM, 16, taotaido_state ) AM_RANGE(0xffff8e, 0xffff8f) AM_READ_PORT("JP") AM_RANGE(0xffffa0, 0xffffa1) AM_READ_PORT("P3") // used only by taotaida AM_RANGE(0xffffa2, 0xffffa3) AM_READ_PORT("P4") // used only by taotaida - AM_RANGE(0xffff00, 0xffff0f) AM_WRITE(taotaido_tileregs_w) + AM_RANGE(0xffff00, 0xffff0f) AM_WRITE(tileregs_w) AM_RANGE(0xffff10, 0xffff11) AM_WRITENOP // unknown AM_RANGE(0xffff20, 0xffff21) AM_WRITENOP // unknown - flip screen related - AM_RANGE(0xffff40, 0xffff47) AM_WRITE(taotaido_sprite_character_bank_select_w) + AM_RANGE(0xffff40, 0xffff47) AM_WRITE(sprite_character_bank_select_w) AM_RANGE(0xffffc0, 0xffffc1) AM_WRITE(sound_command_w) // seems right AM_RANGE(0xffffe0, 0xffffe1) AM_READ(pending_command_r) // guess - seems to be needed for all the sounds to work ADDRESS_MAP_END @@ -122,7 +128,7 @@ WRITE8_MEMBER(taotaido_state::pending_command_clear_w) m_pending_command = 0; } -WRITE8_MEMBER(taotaido_state::taotaido_sh_bankswitch_w) +WRITE8_MEMBER(taotaido_state::sh_bankswitch_w) { UINT8 *rom = memregion("audiocpu")->base() + 0x10000; @@ -138,7 +144,7 @@ ADDRESS_MAP_END static ADDRESS_MAP_START( sound_port_map, AS_IO, 8, taotaido_state ) ADDRESS_MAP_GLOBAL_MASK(0xff) AM_RANGE(0x00, 0x03) AM_DEVREADWRITE("ymsnd", ym2610_device, read, write) - AM_RANGE(0x04, 0x04) AM_WRITE(taotaido_sh_bankswitch_w) + AM_RANGE(0x04, 0x04) AM_WRITE(sh_bankswitch_w) AM_RANGE(0x08, 0x08) AM_WRITE(pending_command_clear_w) AM_RANGE(0x0c, 0x0c) AM_READ(soundlatch_byte_r) ADDRESS_MAP_END @@ -331,7 +337,7 @@ static INPUT_PORTS_START( taotaido6 ) INPUT_PORTS_END -static const gfx_layout taotaido_layout = +static const gfx_layout layout = { 16,16, RGN_FRAC(1,1), @@ -345,15 +351,10 @@ static const gfx_layout taotaido_layout = }; static GFXDECODE_START( taotaido ) - GFXDECODE_ENTRY( "gfx1", 0, taotaido_layout, 0x000, 256 ) /* sprites */ - GFXDECODE_ENTRY( "gfx2", 0, taotaido_layout, 0x300, 256 ) /* bg tiles */ + GFXDECODE_ENTRY( "gfx1", 0, layout, 0x000, 256 ) /* sprites */ + GFXDECODE_ENTRY( "gfx2", 0, layout, 0x300, 256 ) /* bg tiles */ GFXDECODE_END -WRITE_LINE_MEMBER(taotaido_state::irqhandler) -{ - m_audiocpu->set_input_line(0, state ? ASSERT_LINE : CLEAR_LINE); -} - static MACHINE_CONFIG_START( taotaido, taotaido_state ) @@ -373,15 +374,15 @@ static MACHINE_CONFIG_START( taotaido, taotaido_state ) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) MCFG_SCREEN_SIZE(40*8, 32*8) MCFG_SCREEN_VISIBLE_AREA(0*8, 40*8-1, 0*8, 28*8-1) - MCFG_SCREEN_UPDATE_DRIVER(taotaido_state, screen_update_taotaido) - MCFG_SCREEN_VBLANK_DRIVER(taotaido_state, screen_eof_taotaido) + MCFG_SCREEN_UPDATE_DRIVER(taotaido_state, screen_update) + MCFG_SCREEN_VBLANK_DRIVER(taotaido_state, screen_eof) MCFG_SCREEN_PALETTE("palette") MCFG_PALETTE_ADD("palette", 0x800) MCFG_PALETTE_FORMAT(xRRRRRGGGGGBBBBB) MCFG_DEVICE_ADD("vsystem_spr", VSYSTEM_SPR, 0) - MCFG_VSYSTEM_SPR_SET_TILE_INDIRECT( taotaido_state, taotaido_tile_callback ) + MCFG_VSYSTEM_SPR_SET_TILE_INDIRECT( taotaido_state, tile_callback ) MCFG_VSYSTEM_SPR_SET_GFXREGION(0) MCFG_VSYSTEM_SPR_GFXDECODE("gfxdecode") MCFG_VSYSTEM_SPR_PALETTE("palette") @@ -390,7 +391,7 @@ static MACHINE_CONFIG_START( taotaido, taotaido_state ) MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker") MCFG_SOUND_ADD("ymsnd", YM2610, 8000000) - MCFG_YM2610_IRQ_HANDLER(WRITELINE(taotaido_state, irqhandler)) + MCFG_YM2610_IRQ_HANDLER(INPUTLINE("audiocpu", 0)) MCFG_SOUND_ROUTE(0, "lspeaker", 0.25) MCFG_SOUND_ROUTE(0, "rspeaker", 0.25) MCFG_SOUND_ROUTE(1, "lspeaker", 1.0) @@ -470,6 +471,6 @@ ROM_START( taotaido3 ) ROM_LOAD( "u15.bin", 0x000000, 0x200000, CRC(e95823e9) SHA1(362583944ad4fdde4f9e29928cf34376c7ad931f) ) ROM_END -GAME( 1993, taotaido, 0, taotaido, taotaido, driver_device, 0, ROT0, "Video System Co.", "Tao Taido (2 button version)", GAME_NO_COCKTAIL ) -GAME( 1993, taotaidoa,taotaido, taotaido, taotaido6,driver_device, 0, ROT0, "Video System Co.", "Tao Taido (6 button version)", GAME_NO_COCKTAIL ) // maybe a prototype? has various debug features -GAME( 1993, taotaido3,taotaido, taotaido, taotaido3,driver_device, 0, ROT0, "Video System Co.", "Tao Taido (2/3 button version)", GAME_NO_COCKTAIL ) +GAME( 1993, taotaido, 0, taotaido, taotaido, driver_device, 0, ROT0, "Video System Co.", "Tao Taido (2 button version)", GAME_NO_COCKTAIL | GAME_SUPPORTS_SAVE ) +GAME( 1993, taotaidoa,taotaido, taotaido, taotaido6,driver_device, 0, ROT0, "Video System Co.", "Tao Taido (6 button version)", GAME_NO_COCKTAIL | GAME_SUPPORTS_SAVE ) // maybe a prototype? has various debug features +GAME( 1993, taotaido3,taotaido, taotaido, taotaido3,driver_device, 0, ROT0, "Video System Co.", "Tao Taido (2/3 button version)", GAME_NO_COCKTAIL | GAME_SUPPORTS_SAVE ) diff --git a/src/mame/includes/mosaic.h b/src/mame/includes/mosaic.h index 5bf7c799970..75c90a19f0b 100644 --- a/src/mame/includes/mosaic.h +++ b/src/mame/includes/mosaic.h @@ -9,15 +9,18 @@ class mosaic_state : public driver_device public: mosaic_state(const machine_config &mconfig, device_type type, const char *tag) : driver_device(mconfig, type, tag), - m_fgvideoram(*this, "fgvideoram"), - m_bgvideoram(*this, "bgvideoram"), m_maincpu(*this, "maincpu"), - m_gfxdecode(*this, "gfxdecode") { } + m_gfxdecode(*this, "gfxdecode"), + m_fgvideoram(*this, "fgvideoram"), + m_bgvideoram(*this, "bgvideoram") { } + /* devices */ + required_device m_maincpu; + required_device m_gfxdecode; + /* memory pointers */ required_shared_ptr m_fgvideoram; required_shared_ptr m_bgvideoram; -// UINT8 * m_paletteram; // currently this uses generic palette handling /* video-related */ tilemap_t *m_bg_tilemap; @@ -25,18 +28,20 @@ public: /* misc */ int m_prot_val; + DECLARE_WRITE8_MEMBER(protection_w); DECLARE_READ8_MEMBER(protection_r); DECLARE_WRITE8_MEMBER(gfire2_protection_w); DECLARE_READ8_MEMBER(gfire2_protection_r); - DECLARE_WRITE8_MEMBER(mosaic_fgvideoram_w); - DECLARE_WRITE8_MEMBER(mosaic_bgvideoram_w); + DECLARE_WRITE8_MEMBER(fgvideoram_w); + DECLARE_WRITE8_MEMBER(bgvideoram_w); + TILE_GET_INFO_MEMBER(get_fg_tile_info); TILE_GET_INFO_MEMBER(get_bg_tile_info); + virtual void machine_start(); virtual void machine_reset(); virtual void video_start(); - UINT32 screen_update_mosaic(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); - required_device m_maincpu; - required_device m_gfxdecode; + + UINT32 screen_update(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); }; diff --git a/src/mame/includes/tagteam.h b/src/mame/includes/tagteam.h index 84ea9fb73de..e112940b234 100644 --- a/src/mame/includes/tagteam.h +++ b/src/mame/includes/tagteam.h @@ -3,39 +3,46 @@ class tagteam_state : public driver_device public: tagteam_state(const machine_config &mconfig, device_type type, const char *tag) : driver_device(mconfig, type, tag), - m_videoram(*this, "videoram"), - m_colorram(*this, "colorram"), m_maincpu(*this, "maincpu"), m_audiocpu(*this, "audiocpu"), m_gfxdecode(*this, "gfxdecode"), - m_palette(*this, "palette") { } + m_palette(*this, "palette"), + m_videoram(*this, "videoram"), + m_colorram(*this, "colorram") { } - required_shared_ptr m_videoram; - required_shared_ptr m_colorram; - int m_palettebank; - tilemap_t *m_bg_tilemap; - - UINT8 m_sound_nmi_mask; - DECLARE_WRITE8_MEMBER(sound_command_w); - DECLARE_WRITE8_MEMBER(irq_clear_w); - DECLARE_WRITE8_MEMBER(sound_nmi_mask_w); - DECLARE_WRITE8_MEMBER(tagteam_videoram_w); - DECLARE_WRITE8_MEMBER(tagteam_colorram_w); - DECLARE_READ8_MEMBER(tagteam_mirrorvideoram_r); - DECLARE_READ8_MEMBER(tagteam_mirrorcolorram_r); - DECLARE_WRITE8_MEMBER(tagteam_mirrorvideoram_w); - DECLARE_WRITE8_MEMBER(tagteam_mirrorcolorram_w); - DECLARE_WRITE8_MEMBER(tagteam_control_w); - DECLARE_WRITE8_MEMBER(tagteam_flipscreen_w); - DECLARE_INPUT_CHANGED_MEMBER(coin_inserted); - TILE_GET_INFO_MEMBER(get_bg_tile_info); - virtual void video_start(); - DECLARE_PALETTE_INIT(tagteam); - UINT32 screen_update_tagteam(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); - INTERRUPT_GEN_MEMBER(sound_timer_irq); - void draw_sprites(bitmap_ind16 &bitmap, const rectangle &cliprect); required_device m_maincpu; required_device m_audiocpu; required_device m_gfxdecode; required_device m_palette; + + required_shared_ptr m_videoram; + required_shared_ptr m_colorram; + + int m_palettebank; + tilemap_t *m_bg_tilemap; + UINT8 m_sound_nmi_mask; + + DECLARE_WRITE8_MEMBER(sound_command_w); + DECLARE_WRITE8_MEMBER(irq_clear_w); + DECLARE_WRITE8_MEMBER(sound_nmi_mask_w); + DECLARE_WRITE8_MEMBER(videoram_w); + DECLARE_WRITE8_MEMBER(colorram_w); + DECLARE_READ8_MEMBER(mirrorvideoram_r); + DECLARE_READ8_MEMBER(mirrorcolorram_r); + DECLARE_WRITE8_MEMBER(mirrorvideoram_w); + DECLARE_WRITE8_MEMBER(mirrorcolorram_w); + DECLARE_WRITE8_MEMBER(control_w); + DECLARE_WRITE8_MEMBER(flipscreen_w); + + DECLARE_INPUT_CHANGED_MEMBER(coin_inserted); + INTERRUPT_GEN_MEMBER(sound_timer_irq); + + TILE_GET_INFO_MEMBER(get_bg_tile_info); + + virtual void machine_start(); + virtual void video_start(); + DECLARE_PALETTE_INIT(tagteam); + + UINT32 screen_update(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); + void draw_sprites(bitmap_ind16 &bitmap, const rectangle &cliprect); }; diff --git a/src/mame/includes/taotaido.h b/src/mame/includes/taotaido.h index effe660048d..56c75aa93a9 100644 --- a/src/mame/includes/taotaido.h +++ b/src/mame/includes/taotaido.h @@ -3,23 +3,26 @@ class taotaido_state : public driver_device public: taotaido_state(const machine_config &mconfig, device_type type, const char *tag) : driver_device(mconfig, type, tag), + m_maincpu(*this, "maincpu"), + m_audiocpu(*this, "audiocpu"), + m_gfxdecode(*this, "gfxdecode"), + m_spr(*this, "vsystem_spr"), m_spriteram(*this, "spriteram"), m_spriteram2(*this, "spriteram2"), m_scrollram(*this, "scrollram"), - m_bgram(*this, "bgram"), - m_spr(*this, "vsystem_spr"), - m_maincpu(*this, "maincpu"), - m_audiocpu(*this, "audiocpu"), - m_gfxdecode(*this, "gfxdecode") { } + m_bgram(*this, "bgram") { } + + required_device m_maincpu; + required_device m_audiocpu; + required_device m_gfxdecode; + required_device m_spr; - int m_pending_command; required_shared_ptr m_spriteram; required_shared_ptr m_spriteram2; required_shared_ptr m_scrollram; required_shared_ptr m_bgram; - required_device m_spr; - - UINT32 taotaido_tile_callback( UINT32 code ); + + int m_pending_command; UINT16 m_sprite_character_bank_select[8]; UINT16 m_video_bank_select[8]; tilemap_t *m_bg_tilemap; @@ -27,20 +30,22 @@ public: UINT16 *m_spriteram_older; UINT16 *m_spriteram2_old; UINT16 *m_spriteram2_older; + DECLARE_READ16_MEMBER(pending_command_r); DECLARE_WRITE16_MEMBER(sound_command_w); DECLARE_WRITE8_MEMBER(pending_command_clear_w); - DECLARE_WRITE8_MEMBER(taotaido_sh_bankswitch_w); - DECLARE_WRITE16_MEMBER(taotaido_sprite_character_bank_select_w); - DECLARE_WRITE16_MEMBER(taotaido_tileregs_w); - DECLARE_WRITE16_MEMBER(taotaido_bgvideoram_w); - TILE_GET_INFO_MEMBER(taotaido_bg_tile_info); - TILEMAP_MAPPER_MEMBER(taotaido_tilemap_scan_rows); + DECLARE_WRITE8_MEMBER(sh_bankswitch_w); + DECLARE_WRITE16_MEMBER(sprite_character_bank_select_w); + DECLARE_WRITE16_MEMBER(tileregs_w); + DECLARE_WRITE16_MEMBER(bgvideoram_w); + + TILE_GET_INFO_MEMBER(bg_tile_info); + TILEMAP_MAPPER_MEMBER(tilemap_scan_rows); + + virtual void machine_start(); virtual void video_start(); - UINT32 screen_update_taotaido(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); - void screen_eof_taotaido(screen_device &screen, bool state); - DECLARE_WRITE_LINE_MEMBER(irqhandler); - required_device m_maincpu; - required_device m_audiocpu; - required_device m_gfxdecode; + + UINT32 screen_update(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); + void screen_eof(screen_device &screen, bool state); + UINT32 tile_callback( UINT32 code ); }; diff --git a/src/mame/video/mosaic.c b/src/mame/video/mosaic.c index 9dfa24cbb53..7f1f64ba62f 100644 --- a/src/mame/video/mosaic.c +++ b/src/mame/video/mosaic.c @@ -1,6 +1,6 @@ /*************************************************************************** - video.c + mosaic.c Functions to emulate the video hardware of the machine. @@ -56,13 +56,13 @@ void mosaic_state::video_start() ***************************************************************************/ -WRITE8_MEMBER(mosaic_state::mosaic_fgvideoram_w) +WRITE8_MEMBER(mosaic_state::fgvideoram_w) { m_fgvideoram[offset] = data; m_fg_tilemap->mark_tile_dirty(offset / 2); } -WRITE8_MEMBER(mosaic_state::mosaic_bgvideoram_w) +WRITE8_MEMBER(mosaic_state::bgvideoram_w) { m_bgvideoram[offset] = data; m_bg_tilemap->mark_tile_dirty(offset / 2); @@ -70,7 +70,7 @@ WRITE8_MEMBER(mosaic_state::mosaic_bgvideoram_w) -UINT32 mosaic_state::screen_update_mosaic(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect) +UINT32 mosaic_state::screen_update(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect) { m_bg_tilemap->draw(screen, bitmap, cliprect, 0, 0); m_fg_tilemap->draw(screen, bitmap, cliprect, 0, 0); diff --git a/src/mame/video/tagteam.c b/src/mame/video/tagteam.c index db331d98d6a..b1d0c21a684 100644 --- a/src/mame/video/tagteam.c +++ b/src/mame/video/tagteam.c @@ -1,6 +1,6 @@ /*************************************************************************** - video.c + tagteam.c Functions to emulate the video hardware of the machine. @@ -42,19 +42,19 @@ PALETTE_INIT_MEMBER(tagteam_state, tagteam) } -WRITE8_MEMBER(tagteam_state::tagteam_videoram_w) +WRITE8_MEMBER(tagteam_state::videoram_w) { m_videoram[offset] = data; m_bg_tilemap->mark_tile_dirty(offset); } -WRITE8_MEMBER(tagteam_state::tagteam_colorram_w) +WRITE8_MEMBER(tagteam_state::colorram_w) { m_colorram[offset] = data; m_bg_tilemap->mark_tile_dirty(offset); } -READ8_MEMBER(tagteam_state::tagteam_mirrorvideoram_r) +READ8_MEMBER(tagteam_state::mirrorvideoram_r) { int x,y; @@ -66,7 +66,7 @@ READ8_MEMBER(tagteam_state::tagteam_mirrorvideoram_r) return m_videoram[offset]; } -READ8_MEMBER(tagteam_state::tagteam_mirrorcolorram_r) +READ8_MEMBER(tagteam_state::mirrorcolorram_r) { int x,y; @@ -78,7 +78,7 @@ READ8_MEMBER(tagteam_state::tagteam_mirrorcolorram_r) return m_colorram[offset]; } -WRITE8_MEMBER(tagteam_state::tagteam_mirrorvideoram_w) +WRITE8_MEMBER(tagteam_state::mirrorvideoram_w) { int x,y; @@ -87,10 +87,10 @@ WRITE8_MEMBER(tagteam_state::tagteam_mirrorvideoram_w) y = offset % 32; offset = 32 * y + x; - tagteam_videoram_w(space,offset,data); + videoram_w(space,offset,data); } -WRITE8_MEMBER(tagteam_state::tagteam_mirrorcolorram_w) +WRITE8_MEMBER(tagteam_state::mirrorcolorram_w) { int x,y; @@ -99,10 +99,10 @@ WRITE8_MEMBER(tagteam_state::tagteam_mirrorcolorram_w) y = offset % 32; offset = 32 * y + x; - tagteam_colorram_w(space,offset,data); + colorram_w(space,offset,data); } -WRITE8_MEMBER(tagteam_state::tagteam_control_w) +WRITE8_MEMBER(tagteam_state::control_w) { // d0-3: color for blank screen, applies to h/v borders too // (not implemented yet, and tagteam doesn't have a global screen on/off bit) @@ -111,7 +111,7 @@ WRITE8_MEMBER(tagteam_state::tagteam_control_w) m_palettebank = (data & 0x80) >> 7; } -WRITE8_MEMBER(tagteam_state::tagteam_flipscreen_w) +WRITE8_MEMBER(tagteam_state::flipscreen_w) { // d0: flip screen if (flip_screen() != (data &0x01)) @@ -137,6 +137,8 @@ void tagteam_state::video_start() { m_bg_tilemap = &machine().tilemap().create(m_gfxdecode, tilemap_get_info_delegate(FUNC(tagteam_state::get_bg_tile_info),this), TILEMAP_SCAN_ROWS_FLIP_X, 8, 8, 32, 32); + + save_item(NAME(m_palettebank)); } void tagteam_state::draw_sprites(bitmap_ind16 &bitmap, const rectangle &cliprect) @@ -183,7 +185,7 @@ void tagteam_state::draw_sprites(bitmap_ind16 &bitmap, const rectangle &cliprect } } -UINT32 tagteam_state::screen_update_tagteam(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect) +UINT32 tagteam_state::screen_update(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect) { m_bg_tilemap->draw(screen, bitmap, cliprect, 0, 0); draw_sprites(bitmap, cliprect); diff --git a/src/mame/video/taotaido.c b/src/mame/video/taotaido.c index 38753c270ff..df808169297 100644 --- a/src/mame/video/taotaido.c +++ b/src/mame/video/taotaido.c @@ -13,7 +13,7 @@ zooming might be wrong (only used on title logo?) #include "includes/taotaido.h" /* sprite tile codes 0x4000 - 0x7fff get remapped according to the content of these registers */ -WRITE16_MEMBER(taotaido_state::taotaido_sprite_character_bank_select_w) +WRITE16_MEMBER(taotaido_state::sprite_character_bank_select_w) { if(ACCESSING_BITS_8_15) m_sprite_character_bank_select[offset*2] = data >> 8; @@ -27,7 +27,7 @@ WRITE16_MEMBER(taotaido_state::taotaido_sprite_character_bank_select_w) /* the tilemap */ -WRITE16_MEMBER(taotaido_state::taotaido_tileregs_w) +WRITE16_MEMBER(taotaido_state::tileregs_w) { switch (offset) { @@ -52,13 +52,13 @@ WRITE16_MEMBER(taotaido_state::taotaido_tileregs_w) } } -WRITE16_MEMBER(taotaido_state::taotaido_bgvideoram_w) +WRITE16_MEMBER(taotaido_state::bgvideoram_w) { COMBINE_DATA(&m_bgram[offset]); m_bg_tilemap->mark_tile_dirty(offset); } -TILE_GET_INFO_MEMBER(taotaido_state::taotaido_bg_tile_info) +TILE_GET_INFO_MEMBER(taotaido_state::bg_tile_info) { int code = m_bgram[tile_index]&0x01ff; int bank = (m_bgram[tile_index]&0x0e00)>>9; @@ -72,14 +72,14 @@ TILE_GET_INFO_MEMBER(taotaido_state::taotaido_bg_tile_info) 0); } -TILEMAP_MAPPER_MEMBER(taotaido_state::taotaido_tilemap_scan_rows) +TILEMAP_MAPPER_MEMBER(taotaido_state::tilemap_scan_rows) { /* logical (col,row) -> memory offset */ return row*0x40 + (col&0x3f) + ((col&0x40)<<6); } -UINT32 taotaido_state::taotaido_tile_callback( UINT32 code ) +UINT32 taotaido_state::tile_callback( UINT32 code ) { code = m_spriteram2_older[code&0x7fff]; @@ -96,7 +96,7 @@ UINT32 taotaido_state::taotaido_tile_callback( UINT32 code ) void taotaido_state::video_start() { - m_bg_tilemap = &machine().tilemap().create(m_gfxdecode, tilemap_get_info_delegate(FUNC(taotaido_state::taotaido_bg_tile_info),this),tilemap_mapper_delegate(FUNC(taotaido_state::taotaido_tilemap_scan_rows),this),16,16,128,64); + m_bg_tilemap = &machine().tilemap().create(m_gfxdecode, tilemap_get_info_delegate(FUNC(taotaido_state::bg_tile_info),this),tilemap_mapper_delegate(FUNC(taotaido_state::tilemap_scan_rows),this),16,16,128,64); m_spriteram_old = auto_alloc_array(machine(), UINT16, 0x2000/2); m_spriteram_older = auto_alloc_array(machine(), UINT16, 0x2000/2); @@ -104,10 +104,12 @@ void taotaido_state::video_start() m_spriteram2_old = auto_alloc_array(machine(), UINT16, 0x10000/2); m_spriteram2_older = auto_alloc_array(machine(), UINT16, 0x10000/2); + save_item(NAME(m_sprite_character_bank_select)); + save_item(NAME(m_video_bank_select)); } -UINT32 taotaido_state::screen_update_taotaido(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect) +UINT32 taotaido_state::screen_update(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect) { // m_bg_tilemap->set_scrollx(0,(m_scrollram[0x380/2]>>4)); // the values put here end up being wrong every other frame // m_bg_tilemap->set_scrolly(0,(m_scrollram[0x382/2]>>4)); // the values put here end up being wrong every other frame @@ -133,7 +135,7 @@ UINT32 taotaido_state::screen_update_taotaido(screen_device &screen, bitmap_ind1 return 0; } -void taotaido_state::screen_eof_taotaido(screen_device &screen, bool state) +void taotaido_state::screen_eof(screen_device &screen, bool state) { // rising edge if (state)