summaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
author Ivan Vangelista <mesgnet@yahoo.it>2015-02-04 18:02:55 +0100
committer Ivan Vangelista <mesgnet@yahoo.it>2015-02-04 18:02:55 +0100
commitaf3895e1a55c8b62f82c4b530505313339798e9e (patch)
tree3f26b0e3f966292ba17f8c9fb5e12b3f1cedbc5b
parent644a4c5875a444b40d9a64ab7ba154f24c1381e7 (diff)
bloodbro.c: added save state support (nw)
-rw-r--r--src/mame/drivers/bloodbro.c22
-rw-r--r--src/mame/includes/bloodbro.h25
-rw-r--r--src/mame/video/bloodbro.c9
3 files changed, 32 insertions, 24 deletions
diff --git a/src/mame/drivers/bloodbro.c b/src/mame/drivers/bloodbro.c
index 1dd41ca3e63..350ef8a414c 100644
--- a/src/mame/drivers/bloodbro.c
+++ b/src/mame/drivers/bloodbro.c
@@ -131,11 +131,11 @@ static ADDRESS_MAP_START( common_map, AS_PROGRAM, 16, bloodbro_state )
AM_RANGE(0x000000, 0x07ffff) AM_ROM
AM_RANGE(0x080000, 0x08afff) AM_RAM
AM_RANGE(0x08b000, 0x08bfff) AM_RAM AM_SHARE("spriteram")
- AM_RANGE(0x08c000, 0x08c3ff) AM_RAM_WRITE(bloodbro_bgvideoram_w) AM_SHARE("bgvideoram")
+ AM_RANGE(0x08c000, 0x08c3ff) AM_RAM_WRITE(bgvideoram_w) AM_SHARE("bgvideoram")
AM_RANGE(0x08c400, 0x08cfff) AM_RAM
- AM_RANGE(0x08d000, 0x08d3ff) AM_RAM_WRITE(bloodbro_fgvideoram_w) AM_SHARE("fgvideoram")
+ AM_RANGE(0x08d000, 0x08d3ff) AM_RAM_WRITE(fgvideoram_w) AM_SHARE("fgvideoram")
AM_RANGE(0x08d400, 0x08d7ff) AM_RAM
- AM_RANGE(0x08d800, 0x08dfff) AM_RAM_WRITE(bloodbro_txvideoram_w) AM_SHARE("txvideoram")
+ AM_RANGE(0x08d800, 0x08dfff) AM_RAM_WRITE(txvideoram_w) AM_SHARE("txvideoram")
AM_RANGE(0x08e000, 0x08e7ff) AM_RAM
AM_RANGE(0x08e800, 0x08f7ff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette")
AM_RANGE(0x08f800, 0x08ffff) AM_RAM
@@ -163,11 +163,11 @@ static ADDRESS_MAP_START( weststry_map, AS_PROGRAM, 16, bloodbro_state )
AM_RANGE(0x000000, 0x07ffff) AM_ROM
AM_RANGE(0x080000, 0x08afff) AM_RAM
AM_RANGE(0x08b000, 0x08bfff) AM_RAM AM_SHARE("spriteram")
- AM_RANGE(0x08c000, 0x08c3ff) AM_RAM_WRITE(bloodbro_bgvideoram_w) AM_SHARE("bgvideoram")
+ AM_RANGE(0x08c000, 0x08c3ff) AM_RAM_WRITE(bgvideoram_w) AM_SHARE("bgvideoram")
AM_RANGE(0x08c400, 0x08cfff) AM_RAM
- AM_RANGE(0x08d000, 0x08d3ff) AM_RAM_WRITE(bloodbro_fgvideoram_w) AM_SHARE("fgvideoram")
+ AM_RANGE(0x08d000, 0x08d3ff) AM_RAM_WRITE(fgvideoram_w) AM_SHARE("fgvideoram")
AM_RANGE(0x08d400, 0x08d7ff) AM_RAM
- AM_RANGE(0x08d800, 0x08dfff) AM_RAM_WRITE(bloodbro_txvideoram_w) AM_SHARE("txvideoram")
+ AM_RANGE(0x08d800, 0x08dfff) AM_RAM_WRITE(txvideoram_w) AM_SHARE("txvideoram")
AM_RANGE(0x08e000, 0x08ffff) AM_RAM
AM_RANGE(0x0c1000, 0x0c1001) AM_READ_PORT("DSW")
AM_RANGE(0x0c1002, 0x0c1003) AM_READ_PORT("IN0")
@@ -663,8 +663,8 @@ ROM_END
/* Game Drivers */
-GAME( 1990, bloodbro, 0, bloodbro, bloodbro, driver_device, 0, ROT0, "TAD Corporation", "Blood Bros. (set 1)", GAME_NO_COCKTAIL )
-GAME( 1990, bloodbroa,bloodbro, bloodbro, bloodbro, driver_device, 0, ROT0, "TAD Corporation", "Blood Bros. (set 2)", GAME_NO_COCKTAIL )
-GAME( 1990, bloodbrob,bloodbro, bloodbro, bloodbro, driver_device, 0, ROT0, "TAD Corporation", "Blood Bros. (set 3)", GAME_NO_COCKTAIL )
-GAME( 1990, weststry, bloodbro, weststry, weststry, driver_device, 0, ROT0, "bootleg (Datsu)", "West Story (bootleg of Blood Bros.)", GAME_NO_COCKTAIL | GAME_NO_SOUND )
-GAME( 1990, skysmash, 0, skysmash, skysmash, driver_device, 0, ROT270, "Nihon System", "Sky Smasher", 0 )
+GAME( 1990, bloodbro, 0, bloodbro, bloodbro, driver_device, 0, ROT0, "TAD Corporation", "Blood Bros. (set 1)", GAME_NO_COCKTAIL | GAME_SUPPORTS_SAVE )
+GAME( 1990, bloodbroa,bloodbro, bloodbro, bloodbro, driver_device, 0, ROT0, "TAD Corporation", "Blood Bros. (set 2)", GAME_NO_COCKTAIL | GAME_SUPPORTS_SAVE )
+GAME( 1990, bloodbrob,bloodbro, bloodbro, bloodbro, driver_device, 0, ROT0, "TAD Corporation", "Blood Bros. (set 3)", GAME_NO_COCKTAIL | GAME_SUPPORTS_SAVE )
+GAME( 1990, weststry, bloodbro, weststry, weststry, driver_device, 0, ROT0, "bootleg (Datsu)", "West Story (bootleg of Blood Bros.)", GAME_NO_COCKTAIL | GAME_NO_SOUND | GAME_SUPPORTS_SAVE )
+GAME( 1990, skysmash, 0, skysmash, skysmash, driver_device, 0, ROT270, "Nihon System", "Sky Smasher", 0 | GAME_SUPPORTS_SAVE )
diff --git a/src/mame/includes/bloodbro.h b/src/mame/includes/bloodbro.h
index 5832fe3cfc3..3287986704b 100644
--- a/src/mame/includes/bloodbro.h
+++ b/src/mame/includes/bloodbro.h
@@ -3,14 +3,18 @@ class bloodbro_state : public driver_device
public:
bloodbro_state(const machine_config &mconfig, device_type type, const char *tag)
: driver_device(mconfig, type, tag),
+ m_maincpu(*this, "maincpu"),
+ m_gfxdecode(*this, "gfxdecode"),
+ m_palette(*this, "palette"),
m_spriteram(*this, "spriteram"),
m_bgvideoram(*this, "bgvideoram"),
m_fgvideoram(*this, "fgvideoram"),
- m_txvideoram(*this, "txvideoram"),
- m_maincpu(*this, "maincpu"),
- m_gfxdecode(*this, "gfxdecode"),
- m_palette(*this, "palette") { }
+ m_txvideoram(*this, "txvideoram") { }
+ required_device<cpu_device> m_maincpu;
+ required_device<gfxdecode_device> m_gfxdecode;
+ required_device<palette_device> m_palette;
+
required_shared_ptr<UINT16> m_spriteram;
required_shared_ptr<UINT16> m_bgvideoram;
required_shared_ptr<UINT16> m_fgvideoram;
@@ -18,25 +22,26 @@ public:
UINT16 m_scrollram[6];
UINT16 m_layer_en;
+
tilemap_t *m_bg_tilemap;
tilemap_t *m_fg_tilemap;
tilemap_t *m_tx_tilemap;
- DECLARE_WRITE16_MEMBER(bloodbro_bgvideoram_w);
- DECLARE_WRITE16_MEMBER(bloodbro_fgvideoram_w);
- DECLARE_WRITE16_MEMBER(bloodbro_txvideoram_w);
+ DECLARE_WRITE16_MEMBER(bgvideoram_w);
+ DECLARE_WRITE16_MEMBER(fgvideoram_w);
+ DECLARE_WRITE16_MEMBER(txvideoram_w);
DECLARE_WRITE16_MEMBER(layer_en_w);
DECLARE_WRITE16_MEMBER(layer_scroll_w);
+
TILE_GET_INFO_MEMBER(get_bg_tile_info);
TILE_GET_INFO_MEMBER(get_fg_tile_info);
TILE_GET_INFO_MEMBER(get_tx_tile_info);
+
virtual void video_start();
+
UINT32 screen_update_bloodbro(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
UINT32 screen_update_weststry(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
UINT32 screen_update_skysmash(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
void bloodbro_draw_sprites(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
void weststry_draw_sprites(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
- required_device<cpu_device> m_maincpu;
- required_device<gfxdecode_device> m_gfxdecode;
- required_device<palette_device> m_palette;
};
diff --git a/src/mame/video/bloodbro.c b/src/mame/video/bloodbro.c
index d8cbf566f04..0676cd22f05 100644
--- a/src/mame/video/bloodbro.c
+++ b/src/mame/video/bloodbro.c
@@ -61,6 +61,9 @@ void bloodbro_state::video_start()
m_fg_tilemap->set_transparent_pen(15);
m_tx_tilemap->set_transparent_pen(15);
+
+ save_item(NAME(m_scrollram));
+ save_item(NAME(m_layer_en));
}
@@ -71,19 +74,19 @@ void bloodbro_state::video_start()
***************************************************************************/
-WRITE16_MEMBER(bloodbro_state::bloodbro_bgvideoram_w)
+WRITE16_MEMBER(bloodbro_state::bgvideoram_w)
{
COMBINE_DATA(&m_bgvideoram[offset]);
m_bg_tilemap->mark_tile_dirty(offset);
}
-WRITE16_MEMBER(bloodbro_state::bloodbro_fgvideoram_w)
+WRITE16_MEMBER(bloodbro_state::fgvideoram_w)
{
COMBINE_DATA(&m_fgvideoram[offset]);
m_fg_tilemap->mark_tile_dirty(offset);
}
-WRITE16_MEMBER(bloodbro_state::bloodbro_txvideoram_w)
+WRITE16_MEMBER(bloodbro_state::txvideoram_w)
{
COMBINE_DATA(&m_txvideoram[offset]);
m_tx_tilemap->mark_tile_dirty(offset);