summaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
author Osso <mesgnet@yahoo.it>2014-12-30 20:09:54 +0100
committer Osso <mesgnet@yahoo.it>2014-12-30 20:09:54 +0100
commitb328aebce8a170a114e5dc55a9694d16713c7829 (patch)
tree202994de83b5649fbc2b9c40d51dcdba1063f763
parent207718b436c2b8ef7786cab4bf801e5f14b4d5b8 (diff)
zaccaria.c, zac2650.c: added save state support (nw)
-rw-r--r--src/mame/drivers/zac2650.c6
-rw-r--r--src/mame/drivers/zaccaria.c109
-rw-r--r--src/mame/includes/zac2650.h15
-rw-r--r--src/mame/includes/zaccaria.h83
-rw-r--r--src/mame/video/zac2650.c11
-rw-r--r--src/mame/video/zaccaria.c10
6 files changed, 137 insertions, 97 deletions
diff --git a/src/mame/drivers/zac2650.c b/src/mame/drivers/zac2650.c
index 45d523dc476..0f4b9155e8a 100644
--- a/src/mame/drivers/zac2650.c
+++ b/src/mame/drivers/zac2650.c
@@ -315,6 +315,6 @@ ROM_START( dodgem )
ROM_END
-GAMEL(1979?,tinv2650, 0, tinvader, tinvader, driver_device, 0, ROT270, "Zaccaria / Zelco", "The Invaders", GAME_IMPERFECT_SOUND, layout_tinv2650 )
-GAME( 1979?,sia2650, tinv2650, tinvader, sinvader, driver_device, 0, ROT270, "bootleg (Sidam)", "Super Invader Attack (bootleg of The Invaders)", GAME_IMPERFECT_SOUND ) // 1980?
-GAME( 1979, dodgem, 0, tinvader, dodgem, driver_device, 0, ROT0, "Zaccaria", "Dodgem", GAME_IMPERFECT_SOUND )
+GAMEL(1979?,tinv2650, 0, tinvader, tinvader, driver_device, 0, ROT270, "Zaccaria / Zelco", "The Invaders", GAME_IMPERFECT_SOUND | GAME_SUPPORTS_SAVE, layout_tinv2650 )
+GAME( 1979?,sia2650, tinv2650, tinvader, sinvader, driver_device, 0, ROT270, "bootleg (Sidam)", "Super Invader Attack (bootleg of The Invaders)", GAME_IMPERFECT_SOUND | GAME_SUPPORTS_SAVE ) // 1980?
+GAME( 1979, dodgem, 0, tinvader, dodgem, driver_device, 0, ROT0, "Zaccaria", "Dodgem", GAME_IMPERFECT_SOUND | GAME_SUPPORTS_SAVE )
diff --git a/src/mame/drivers/zaccaria.c b/src/mame/drivers/zaccaria.c
index d00716d7703..18280228bed 100644
--- a/src/mame/drivers/zaccaria.c
+++ b/src/mame/drivers/zaccaria.c
@@ -40,15 +40,33 @@ Notes:
#include "emu.h"
#include "cpu/z80/z80.h"
#include "cpu/m6800/m6800.h"
-#include "machine/6821pia.h"
#include "machine/i8255.h"
-#include "sound/ay8910.h"
-#include "sound/dac.h"
-#include "sound/tms5220.h"
#include "includes/zaccaria.h"
-WRITE8_MEMBER(zaccaria_state::zaccaria_dsw_sel_w)
+void zaccaria_state::machine_start()
+{
+ save_item(NAME(m_dsw_sel));
+ save_item(NAME(m_active_8910));
+ save_item(NAME(m_port0a));
+ save_item(NAME(m_acs));
+ save_item(NAME(m_last_port0b));
+ save_item(NAME(m_toggle));
+ save_item(NAME(m_nmi_mask));
+}
+
+void zaccaria_state::machine_reset()
+{
+ m_dsw_sel = 0;
+ m_active_8910 = 0;
+ m_port0a = 0;
+ m_acs = 0;
+ m_last_port0b = 0;
+ m_toggle = 0;
+ m_nmi_mask = 0;
+}
+
+WRITE8_MEMBER(zaccaria_state::dsw_sel_w)
{
switch (data & 0xf0)
{
@@ -70,7 +88,7 @@ WRITE8_MEMBER(zaccaria_state::zaccaria_dsw_sel_w)
}
}
-READ8_MEMBER(zaccaria_state::zaccaria_dsw_r)
+READ8_MEMBER(zaccaria_state::dsw_r)
{
return m_dsw_port[m_dsw_sel]->read();
}
@@ -94,37 +112,37 @@ WRITE8_MEMBER(zaccaria_state::ay8910_port0a_w)
/* 150 below to scale to volume 100 */
v = (150 * table[ba]) / (4700 + table[ba]);
//printf("dac1w %02d %04d\n", ba, v);
- machine().device<ay8910_device>("ay2")->set_volume(1, v);
+ m_ay2->set_volume(1, v);
}
-WRITE_LINE_MEMBER(zaccaria_state::zaccaria_irq0a)
+WRITE_LINE_MEMBER(zaccaria_state::irq0a)
{
m_audiocpu->set_input_line(INPUT_LINE_NMI, state ? ASSERT_LINE : CLEAR_LINE);
}
-WRITE_LINE_MEMBER(zaccaria_state::zaccaria_irq0b)
+WRITE_LINE_MEMBER(zaccaria_state::irq0b)
{
m_audiocpu->set_input_line(0, state ? ASSERT_LINE : CLEAR_LINE);
}
-READ8_MEMBER(zaccaria_state::zaccaria_port0a_r)
+READ8_MEMBER(zaccaria_state::port0a_r)
{
- return machine().device<ay8910_device>((m_active_8910 == 0) ? "ay1" : "ay2")->data_r(space, 0);
+ return (m_active_8910 == 0) ? m_ay1->data_r(space, 0) : m_ay2->data_r(space, 0);
}
-WRITE8_MEMBER(zaccaria_state::zaccaria_port0a_w)
+WRITE8_MEMBER(zaccaria_state::port0a_w)
{
m_port0a = data;
}
-WRITE8_MEMBER(zaccaria_state::zaccaria_port0b_w)
+WRITE8_MEMBER(zaccaria_state::port0b_w)
{
/* bit 1 goes to 8910 #0 BDIR pin */
if ((m_last_port0b & 0x02) == 0x02 && (data & 0x02) == 0x00)
{
/* bit 0 goes to the 8910 #0 BC1 pin */
- machine().device<ay8910_device>("ay1")->data_address_w(space, m_last_port0b, m_port0a);
+ m_ay1->data_address_w(space, m_last_port0b, m_port0a);
}
else if ((m_last_port0b & 0x02) == 0x00 && (data & 0x02) == 0x02)
{
@@ -136,7 +154,7 @@ WRITE8_MEMBER(zaccaria_state::zaccaria_port0b_w)
if ((m_last_port0b & 0x08) == 0x08 && (data & 0x08) == 0x00)
{
/* bit 2 goes to the 8910 #1 BC1 pin */
- machine().device<ay8910_device>("ay2")->data_address_w(space, m_last_port0b >> 2, m_port0a);
+ m_ay2->data_address_w(space, m_last_port0b >> 2, m_port0a);
}
else if ((m_last_port0b & 0x08) == 0x00 && (data & 0x08) == 0x08)
{
@@ -148,22 +166,18 @@ WRITE8_MEMBER(zaccaria_state::zaccaria_port0b_w)
m_last_port0b = data;
}
-INTERRUPT_GEN_MEMBER(zaccaria_state::zaccaria_cb1_toggle)
+INTERRUPT_GEN_MEMBER(zaccaria_state::cb1_toggle)
{
- pia6821_device *pia0 = machine().device<pia6821_device>("pia0");
-
- pia0->cb1_w(m_toggle & 1);
+ m_pia->cb1_w(m_toggle & 1);
m_toggle ^= 1;
}
-WRITE8_MEMBER(zaccaria_state::zaccaria_port1b_w)
+WRITE8_MEMBER(zaccaria_state::port1b_w)
{
- tms5220_device *tms5220 = machine().device<tms5220_device>("tms");
-
// bit 0 = /RS
- tms5220->rsq_w((data >> 0) & 0x01);
+ m_tms->rsq_w((data >> 0) & 0x01);
// bit 1 = /WS
- tms5220->wsq_w((data >> 1) & 0x01);
+ m_tms->wsq_w((data >> 1) & 0x01);
// bit 3 = "ACS" (goes, inverted, to input port 6 bit 3)
m_acs = ~data & 0x08;
@@ -181,8 +195,7 @@ WRITE8_MEMBER(zaccaria_state::sound_command_w)
WRITE8_MEMBER(zaccaria_state::sound1_command_w)
{
- pia6821_device *pia0 = machine().device<pia6821_device>("pia0");
- pia0->ca1_w(data & 0x80);
+ m_pia->ca1_w(data & 0x80);
soundlatch2_byte_w(space, 0, data);
}
@@ -194,7 +207,7 @@ WRITE8_MEMBER(zaccaria_state::mc1408_data_w)
GAME_EXTERN(monymony);
-READ8_MEMBER(zaccaria_state::zaccaria_prot1_r)
+READ8_MEMBER(zaccaria_state::prot1_r)
{
switch (offset)
{
@@ -214,7 +227,7 @@ READ8_MEMBER(zaccaria_state::zaccaria_prot1_r)
}
}
-READ8_MEMBER(zaccaria_state::zaccaria_prot2_r)
+READ8_MEMBER(zaccaria_state::prot2_r)
{
switch (offset)
{
@@ -249,18 +262,18 @@ WRITE8_MEMBER(zaccaria_state::nmi_mask_w)
static ADDRESS_MAP_START( main_map, AS_PROGRAM, 8, zaccaria_state )
AM_RANGE(0x0000, 0x5fff) AM_ROM
AM_RANGE(0x6000, 0x63ff) AM_READONLY
- AM_RANGE(0x6400, 0x6407) AM_READ(zaccaria_prot1_r)
- AM_RANGE(0x6000, 0x67ff) AM_WRITE(zaccaria_videoram_w) AM_SHARE("videoram") /* 6400-67ff is 4 bits wide */
- AM_RANGE(0x6800, 0x683f) AM_WRITE(zaccaria_attributes_w) AM_SHARE("attributesram")
+ AM_RANGE(0x6400, 0x6407) AM_READ(prot1_r)
+ AM_RANGE(0x6000, 0x67ff) AM_WRITE(videoram_w) AM_SHARE("videoram") /* 6400-67ff is 4 bits wide */
+ AM_RANGE(0x6800, 0x683f) AM_WRITE(attributes_w) AM_SHARE("attributesram")
AM_RANGE(0x6840, 0x685f) AM_RAM AM_SHARE("spriteram")
AM_RANGE(0x6881, 0x68c0) AM_RAM AM_SHARE("spriteram2")
- AM_RANGE(0x6c00, 0x6c00) AM_WRITE(zaccaria_flip_screen_x_w)
- AM_RANGE(0x6c01, 0x6c01) AM_WRITE(zaccaria_flip_screen_y_w)
+ AM_RANGE(0x6c00, 0x6c00) AM_WRITE(flip_screen_x_w)
+ AM_RANGE(0x6c01, 0x6c01) AM_WRITE(flip_screen_y_w)
AM_RANGE(0x6c02, 0x6c02) AM_WRITENOP /* sound reset */
AM_RANGE(0x6c06, 0x6c06) AM_WRITE(coin_w)
AM_RANGE(0x6c07, 0x6c07) AM_WRITE(nmi_mask_w)
- AM_RANGE(0x6c00, 0x6c07) AM_READ(zaccaria_prot2_r)
- AM_RANGE(0x6e00, 0x6e00) AM_READWRITE(zaccaria_dsw_r, sound_command_w)
+ AM_RANGE(0x6c00, 0x6c07) AM_READ(prot2_r)
+ AM_RANGE(0x6e00, 0x6e00) AM_READWRITE(dsw_r, sound_command_w)
AM_RANGE(0x7000, 0x77ff) AM_RAM
AM_RANGE(0x7800, 0x7803) AM_DEVREADWRITE("ppi8255", i8255_device, read, write)
AM_RANGE(0x7c00, 0x7c00) AM_READ(watchdog_reset_r)
@@ -511,7 +524,7 @@ static MACHINE_CONFIG_START( zaccaria, zaccaria_state )
MCFG_CPU_ADD("audiocpu", M6802,XTAL_3_579545MHz) /* verified on pcb */
MCFG_CPU_PROGRAM_MAP(sound_map_1)
- MCFG_CPU_PERIODIC_INT_DRIVER(zaccaria_state, zaccaria_cb1_toggle, (double)XTAL_3_579545MHz/4096)
+ MCFG_CPU_PERIODIC_INT_DRIVER(zaccaria_state, cb1_toggle, (double)XTAL_3_579545MHz/4096)
MCFG_QUANTUM_TIME(attotime::from_hz(1000000))
MCFG_CPU_ADD("audio2", M6802,XTAL_3_579545MHz) /* verified on pcb */
@@ -522,19 +535,19 @@ static MACHINE_CONFIG_START( zaccaria, zaccaria_state )
MCFG_I8255_IN_PORTA_CB(IOPORT("P1"))
MCFG_I8255_IN_PORTB_CB(IOPORT("P2"))
MCFG_I8255_IN_PORTC_CB(IOPORT("SYSTEM"))
- MCFG_I8255_OUT_PORTC_CB(WRITE8(zaccaria_state, zaccaria_dsw_sel_w))
+ MCFG_I8255_OUT_PORTC_CB(WRITE8(zaccaria_state, dsw_sel_w))
MCFG_DEVICE_ADD( "pia0", PIA6821, 0)
- MCFG_PIA_READPA_HANDLER(READ8(zaccaria_state, zaccaria_port0a_r))
- MCFG_PIA_WRITEPA_HANDLER(WRITE8(zaccaria_state, zaccaria_port0a_w))
- MCFG_PIA_WRITEPB_HANDLER(WRITE8(zaccaria_state, zaccaria_port0b_w))
- MCFG_PIA_IRQA_HANDLER(WRITELINE(zaccaria_state, zaccaria_irq0a))
- MCFG_PIA_IRQB_HANDLER(WRITELINE(zaccaria_state, zaccaria_irq0b))
+ MCFG_PIA_READPA_HANDLER(READ8(zaccaria_state, port0a_r))
+ MCFG_PIA_WRITEPA_HANDLER(WRITE8(zaccaria_state, port0a_w))
+ MCFG_PIA_WRITEPB_HANDLER(WRITE8(zaccaria_state, port0b_w))
+ MCFG_PIA_IRQA_HANDLER(WRITELINE(zaccaria_state, irq0a))
+ MCFG_PIA_IRQB_HANDLER(WRITELINE(zaccaria_state, irq0b))
MCFG_DEVICE_ADD( "pia1", PIA6821, 0)
MCFG_PIA_READPA_HANDLER(DEVREAD8("tms", tms5220_device, status_r))
MCFG_PIA_WRITEPA_HANDLER(DEVWRITE8("tms", tms5220_device, data_w))
- MCFG_PIA_WRITEPB_HANDLER(WRITE8(zaccaria_state,zaccaria_port1b_w))
+ MCFG_PIA_WRITEPB_HANDLER(WRITE8(zaccaria_state,port1b_w))
/* video hardware */
MCFG_SCREEN_ADD("screen", RASTER)
@@ -542,7 +555,7 @@ static MACHINE_CONFIG_START( zaccaria, zaccaria_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
MCFG_SCREEN_SIZE(32*8, 32*8)
MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1)
- MCFG_SCREEN_UPDATE_DRIVER(zaccaria_state, screen_update_zaccaria)
+ MCFG_SCREEN_UPDATE_DRIVER(zaccaria_state, screen_update)
MCFG_SCREEN_PALETTE("palette")
MCFG_GFXDECODE_ADD("gfxdecode", "palette", zaccaria)
@@ -726,7 +739,7 @@ ROM_END
-GAME( 1983, monymony, 0, zaccaria, monymony, driver_device, 0, ROT90, "Zaccaria", "Money Money", GAME_IMPERFECT_SOUND )
-GAME( 1984, jackrabt, 0, zaccaria, jackrabt, driver_device, 0, ROT90, "Zaccaria", "Jack Rabbit (set 1)", GAME_IMPERFECT_SOUND )
-GAME( 1984, jackrabt2, jackrabt, zaccaria, jackrabt, driver_device, 0, ROT90, "Zaccaria", "Jack Rabbit (set 2)", GAME_IMPERFECT_SOUND )
-GAME( 1984, jackrabts, jackrabt, zaccaria, jackrabt, driver_device, 0, ROT90, "Zaccaria", "Jack Rabbit (special)", GAME_IMPERFECT_SOUND )
+GAME( 1983, monymony, 0, zaccaria, monymony, driver_device, 0, ROT90, "Zaccaria", "Money Money", GAME_IMPERFECT_SOUND | GAME_SUPPORTS_SAVE )
+GAME( 1984, jackrabt, 0, zaccaria, jackrabt, driver_device, 0, ROT90, "Zaccaria", "Jack Rabbit (set 1)", GAME_IMPERFECT_SOUND | GAME_SUPPORTS_SAVE )
+GAME( 1984, jackrabt2, jackrabt, zaccaria, jackrabt, driver_device, 0, ROT90, "Zaccaria", "Jack Rabbit (set 2)", GAME_IMPERFECT_SOUND | GAME_SUPPORTS_SAVE )
+GAME( 1984, jackrabts, jackrabt, zaccaria, jackrabt, driver_device, 0, ROT90, "Zaccaria", "Jack Rabbit (special)", GAME_IMPERFECT_SOUND | GAME_SUPPORTS_SAVE )
diff --git a/src/mame/includes/zac2650.h b/src/mame/includes/zac2650.h
index 69e0291feea..8ae5ebd076e 100644
--- a/src/mame/includes/zac2650.h
+++ b/src/mame/includes/zac2650.h
@@ -5,28 +5,31 @@ class zac2650_state : public driver_device
public:
zac2650_state(const machine_config &mconfig, device_type type, const char *tag)
: driver_device(mconfig, type, tag),
- m_videoram(*this, "videoram"),
- m_s2636_0_ram(*this, "s2636_0_ram"),
m_maincpu(*this, "maincpu"),
m_s2636(*this, "s2636"),
m_gfxdecode(*this, "gfxdecode"),
m_screen(*this, "screen"),
- m_palette(*this, "palette") { }
-
- required_shared_ptr<UINT8> m_videoram;
- required_shared_ptr<UINT8> m_s2636_0_ram;
+ m_palette(*this, "palette"),
+ m_videoram(*this, "videoram"),
+ m_s2636_0_ram(*this, "s2636_0_ram") { }
+ /* devices */
required_device<cpu_device> m_maincpu;
required_device<s2636_device> m_s2636;
required_device<gfxdecode_device> m_gfxdecode;
required_device<screen_device> m_screen;
required_device<palette_device> m_palette;
+
+ /* memory pointers */
+ required_shared_ptr<UINT8> m_videoram;
+ required_shared_ptr<UINT8> m_s2636_0_ram;
bitmap_ind16 m_bitmap;
bitmap_ind16 m_spritebitmap;
int m_CollisionBackground;
int m_CollisionSprite;
tilemap_t *m_bg_tilemap;
+
DECLARE_WRITE8_MEMBER(tinvader_sound_w);
DECLARE_WRITE8_MEMBER(tinvader_videoram_w);
DECLARE_READ8_MEMBER(zac_s2636_r);
diff --git a/src/mame/includes/zaccaria.h b/src/mame/includes/zaccaria.h
index badeb324d82..c83a6dd23f8 100644
--- a/src/mame/includes/zaccaria.h
+++ b/src/mame/includes/zaccaria.h
@@ -1,21 +1,50 @@
+#include "machine/6821pia.h"
+#include "sound/ay8910.h"
#include "sound/dac.h"
+#include "sound/tms5220.h"
class zaccaria_state : public driver_device
{
public:
zaccaria_state(const machine_config &mconfig, device_type type, const char *tag)
: driver_device(mconfig, type, tag),
- m_videoram(*this, "videoram"),
- m_attributesram(*this, "attributesram"),
- m_spriteram(*this, "spriteram"),
- m_spriteram2(*this, "spriteram2"),
m_maincpu(*this, "maincpu"),
m_audiocpu(*this, "audiocpu"),
m_audio2(*this, "audio2"),
+ m_pia(*this, "pia0"),
m_dac2(*this, "dac2"),
+ m_ay1(*this, "ay1"),
+ m_ay2(*this, "ay2"),
+ m_tms(*this, "tms"),
m_gfxdecode(*this, "gfxdecode"),
m_palette(*this, "palette"),
+ m_videoram(*this, "videoram"),
+ m_attributesram(*this, "attributesram"),
+ m_spriteram(*this, "spriteram"),
+ m_spriteram2(*this, "spriteram2"),
m_dsw_port(*this, "DSW") { }
+
+
+
+ /* devices */
+ required_device<cpu_device> m_maincpu;
+ required_device<cpu_device> m_audiocpu;
+ required_device<cpu_device> m_audio2;
+ required_device<pia6821_device> m_pia;
+ required_device<dac_device> m_dac2;
+ required_device<ay8910_device> m_ay1;
+ required_device<ay8910_device> m_ay2;
+ required_device<tms5220_device> m_tms;
+ required_device<gfxdecode_device> m_gfxdecode;
+ required_device<palette_device> m_palette;
+
+ /* memory pointers */
+ required_shared_ptr<UINT8> m_videoram;
+ required_shared_ptr<UINT8> m_attributesram;
+ required_shared_ptr<UINT8> m_spriteram;
+ required_shared_ptr<UINT8> m_spriteram2;
+
+ required_ioport_array<3> m_dsw_port;
int m_dsw_sel;
int m_active_8910;
@@ -23,45 +52,37 @@ public:
int m_acs;
int m_last_port0b;
int m_toggle;
- required_shared_ptr<UINT8> m_videoram;
- required_shared_ptr<UINT8> m_attributesram;
tilemap_t *m_bg_tilemap;
- required_shared_ptr<UINT8> m_spriteram;
- required_shared_ptr<UINT8> m_spriteram2;
UINT8 m_nmi_mask;
- DECLARE_READ8_MEMBER(zaccaria_dsw_r);
+
+ DECLARE_READ8_MEMBER(dsw_r);
DECLARE_WRITE8_MEMBER(sound_command_w);
DECLARE_WRITE8_MEMBER(sound1_command_w);
- DECLARE_READ8_MEMBER(zaccaria_prot1_r);
- DECLARE_READ8_MEMBER(zaccaria_prot2_r);
+ DECLARE_READ8_MEMBER(prot1_r);
+ DECLARE_READ8_MEMBER(prot2_r);
DECLARE_WRITE8_MEMBER(coin_w);
DECLARE_WRITE8_MEMBER(nmi_mask_w);
- DECLARE_WRITE8_MEMBER(zaccaria_videoram_w);
- DECLARE_WRITE8_MEMBER(zaccaria_attributes_w);
- DECLARE_WRITE8_MEMBER(zaccaria_flip_screen_x_w);
- DECLARE_WRITE8_MEMBER(zaccaria_flip_screen_y_w);
+ DECLARE_WRITE8_MEMBER(videoram_w);
+ DECLARE_WRITE8_MEMBER(attributes_w);
+ DECLARE_WRITE8_MEMBER(flip_screen_x_w);
+ DECLARE_WRITE8_MEMBER(flip_screen_y_w);
DECLARE_CUSTOM_INPUT_MEMBER(acs_r);
- DECLARE_WRITE8_MEMBER(zaccaria_dsw_sel_w);
+ DECLARE_WRITE8_MEMBER(dsw_sel_w);
DECLARE_WRITE8_MEMBER(ay8910_port0a_w);
- DECLARE_WRITE_LINE_MEMBER(zaccaria_irq0a);
- DECLARE_WRITE_LINE_MEMBER(zaccaria_irq0b);
- DECLARE_READ8_MEMBER(zaccaria_port0a_r);
- DECLARE_WRITE8_MEMBER(zaccaria_port0a_w);
- DECLARE_WRITE8_MEMBER(zaccaria_port0b_w);
- DECLARE_WRITE8_MEMBER(zaccaria_port1b_w);
+ DECLARE_WRITE_LINE_MEMBER(irq0a);
+ DECLARE_WRITE_LINE_MEMBER(irq0b);
+ DECLARE_READ8_MEMBER(port0a_r);
+ DECLARE_WRITE8_MEMBER(port0a_w);
+ DECLARE_WRITE8_MEMBER(port0b_w);
+ DECLARE_WRITE8_MEMBER(port1b_w);
DECLARE_WRITE8_MEMBER(mc1408_data_w);
TILE_GET_INFO_MEMBER(get_tile_info);
+ virtual void machine_start();
+ virtual void machine_reset();
virtual void video_start();
DECLARE_PALETTE_INIT(zaccaria);
- UINT32 screen_update_zaccaria(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
- INTERRUPT_GEN_MEMBER(zaccaria_cb1_toggle);
+ UINT32 screen_update(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
+ INTERRUPT_GEN_MEMBER(cb1_toggle);
INTERRUPT_GEN_MEMBER(vblank_irq);
void draw_sprites(bitmap_ind16 &bitmap,const rectangle &cliprect,UINT8 *spriteram,int color,int section);
- required_device<cpu_device> m_maincpu;
- required_device<cpu_device> m_audiocpu;
- required_device<cpu_device> m_audio2;
- required_device<dac_device> m_dac2;
- required_device<gfxdecode_device> m_gfxdecode;
- required_device<palette_device> m_palette;
- required_ioport_array<3> m_dsw_port;
};
diff --git a/src/mame/video/zac2650.c b/src/mame/video/zac2650.c
index 6eae2678f1c..c4adb273f56 100644
--- a/src/mame/video/zac2650.c
+++ b/src/mame/video/zac2650.c
@@ -16,8 +16,7 @@
WRITE8_MEMBER(zac2650_state::tinvader_videoram_w)
{
- UINT8 *videoram = m_videoram;
- videoram[offset] = data;
+ m_videoram[offset] = data;
m_bg_tilemap->mark_tile_dirty(offset);
}
@@ -111,8 +110,7 @@ int zac2650_state::SpriteCollision(int first,int second)
TILE_GET_INFO_MEMBER(zac2650_state::get_bg_tile_info)
{
- UINT8 *videoram = m_videoram;
- int code = videoram[tile_index];
+ int code = m_videoram[tile_index];
SET_TILE_INFO_MEMBER(0, code, 0, 0);
}
@@ -127,6 +125,11 @@ void zac2650_state::video_start()
m_gfxdecode->gfx(1)->set_source(m_s2636_0_ram);
m_gfxdecode->gfx(2)->set_source(m_s2636_0_ram);
+
+ save_item(NAME(m_bitmap));
+ save_item(NAME(m_spritebitmap));
+ save_item(NAME(m_CollisionBackground));
+ save_item(NAME(m_CollisionSprite));
}
void zac2650_state::draw_sprites(bitmap_ind16 &bitmap, const rectangle &cliprect)
diff --git a/src/mame/video/zaccaria.c b/src/mame/video/zaccaria.c
index 10eea74d5f9..87c0e1acbd2 100644
--- a/src/mame/video/zaccaria.c
+++ b/src/mame/video/zaccaria.c
@@ -142,13 +142,13 @@ void zaccaria_state::video_start()
***************************************************************************/
-WRITE8_MEMBER(zaccaria_state::zaccaria_videoram_w)
+WRITE8_MEMBER(zaccaria_state::videoram_w)
{
m_videoram[offset] = data;
m_bg_tilemap->mark_tile_dirty(offset & 0x3ff);
}
-WRITE8_MEMBER(zaccaria_state::zaccaria_attributes_w)
+WRITE8_MEMBER(zaccaria_state::attributes_w)
{
if (offset & 1)
{
@@ -166,12 +166,12 @@ WRITE8_MEMBER(zaccaria_state::zaccaria_attributes_w)
m_attributesram[offset] = data;
}
-WRITE8_MEMBER(zaccaria_state::zaccaria_flip_screen_x_w)
+WRITE8_MEMBER(zaccaria_state::flip_screen_x_w)
{
flip_screen_x_set(data & 1);
}
-WRITE8_MEMBER(zaccaria_state::zaccaria_flip_screen_y_w)
+WRITE8_MEMBER(zaccaria_state::flip_screen_y_w)
{
flip_screen_y_set(data & 1);
}
@@ -236,7 +236,7 @@ void zaccaria_state::draw_sprites(bitmap_ind16 &bitmap,const rectangle &cliprect
}
}
-UINT32 zaccaria_state::screen_update_zaccaria(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
+UINT32 zaccaria_state::screen_update(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
m_bg_tilemap->draw(screen, bitmap, cliprect, 0,0);