summaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
author Osso13 <mesgnet@yahoo.it>2015-01-20 18:17:40 +0100
committer Osso13 <mesgnet@yahoo.it>2015-01-20 18:17:40 +0100
commit2241d4ea94adda267eee610b96a8fbd5e415451c (patch)
tree28e325db78b5f0cb6427b16a3c1587c270b18af1
parentcd61a2736d8149f6640a5756b83caae55b7b07ae (diff)
paradise.c: added missing save state, fixes penky save state problem (nw)
-rw-r--r--src/mame/drivers/paradise.c8
-rw-r--r--src/mame/includes/paradise.h37
-rw-r--r--src/mame/video/paradise.c15
3 files changed, 34 insertions, 26 deletions
diff --git a/src/mame/drivers/paradise.c b/src/mame/drivers/paradise.c
index 3f8f0b35f40..44f24cfb47e 100644
--- a/src/mame/drivers/paradise.c
+++ b/src/mame/drivers/paradise.c
@@ -678,7 +678,7 @@ void paradise_state::machine_start()
save_item(NAME(m_palbank));
save_item(NAME(m_priority));
- save_item(NAME(irq_count));
+ save_item(NAME(m_irq_count));
}
void paradise_state::machine_reset()
@@ -686,14 +686,14 @@ void paradise_state::machine_reset()
m_palbank = 0;
m_priority = 0;
- irq_count = 0;
+ m_irq_count = 0;
}
INTERRUPT_GEN_MEMBER(paradise_state::paradise_irq)
{
- if (irq_count<300)
- irq_count++;
+ if (m_irq_count<300)
+ m_irq_count++;
else
m_maincpu->set_input_line(INPUT_LINE_IRQ0, HOLD_LINE);
}
diff --git a/src/mame/includes/paradise.h b/src/mame/includes/paradise.h
index 6c7e1fb95e3..44b8d916a41 100644
--- a/src/mame/includes/paradise.h
+++ b/src/mame/includes/paradise.h
@@ -5,17 +5,24 @@ class paradise_state : public driver_device
public:
paradise_state(const machine_config &mconfig, device_type type, const char *tag)
: driver_device(mconfig, type, tag),
+ m_maincpu(*this, "maincpu"),
+ m_oki2(*this, "oki2"),
+ m_gfxdecode(*this, "gfxdecode"),
+ m_screen(*this, "screen"),
+ m_palette(*this, "palette"),
m_vram_0(*this, "vram_0"),
m_vram_1(*this, "vram_1"),
m_vram_2(*this, "vram_2"),
m_videoram(*this, "videoram"),
m_paletteram(*this, "paletteram"),
- m_spriteram(*this, "spriteram"),
- m_maincpu(*this, "maincpu"),
- m_oki2(*this, "oki2"),
- m_gfxdecode(*this, "gfxdecode"),
- m_screen(*this, "screen"),
- m_palette(*this, "palette") { }
+ m_spriteram(*this, "spriteram") { }
+
+ /* devices */
+ required_device<cpu_device> m_maincpu;
+ optional_device<okim6295_device> m_oki2;
+ 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_vram_0;
@@ -29,13 +36,14 @@ public:
tilemap_t *m_tilemap_0;
tilemap_t *m_tilemap_1;
tilemap_t *m_tilemap_2;
+
bitmap_ind16 m_tmpbitmap;
UINT8 m_palbank;
UINT8 m_priority;
UINT8 m_pixbank;
int m_sprite_inc;
-
- int irq_count;
+ int m_irq_count;
+
DECLARE_WRITE8_MEMBER(paradise_rombank_w);
DECLARE_WRITE8_MEMBER(torus_coin_counter_w);
DECLARE_WRITE8_MEMBER(paradise_flipscreen_w);
@@ -48,24 +56,25 @@ public:
DECLARE_WRITE8_MEMBER(paradise_pixmap_w);
DECLARE_WRITE8_MEMBER(paradise_priority_w);
DECLARE_WRITE8_MEMBER(paradise_okibank_w);
+
DECLARE_DRIVER_INIT(torus);
DECLARE_DRIVER_INIT(paradise);
DECLARE_DRIVER_INIT(tgtball);
+
TILE_GET_INFO_MEMBER(get_tile_info_0);
TILE_GET_INFO_MEMBER(get_tile_info_1);
TILE_GET_INFO_MEMBER(get_tile_info_2);
+
virtual void machine_start();
virtual void machine_reset();
virtual void video_start();
+
UINT32 screen_update_paradise(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
UINT32 screen_update_torus(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
UINT32 screen_update_madball(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
+
INTERRUPT_GEN_MEMBER(paradise_irq);
+
void update_pix_palbank();
- void draw_sprites( bitmap_ind16 &bitmap, const rectangle &cliprect );
- required_device<cpu_device> m_maincpu;
- optional_device<okim6295_device> m_oki2;
- required_device<gfxdecode_device> m_gfxdecode;
- required_device<screen_device> m_screen;
- required_device<palette_device> m_palette;
+ void draw_sprites(bitmap_ind16 &bitmap, const rectangle &cliprect);
};
diff --git a/src/mame/video/paradise.c b/src/mame/video/paradise.c
index 62c5248910c..ed903d6a6b5 100644
--- a/src/mame/video/paradise.c
+++ b/src/mame/video/paradise.c
@@ -164,6 +164,7 @@ void paradise_state::video_start()
m_tilemap_2->set_transparent_pen(0xff);
save_item(NAME(m_tmpbitmap));
+ save_item(NAME(m_pixbank));
}
@@ -179,16 +180,14 @@ WRITE8_MEMBER(paradise_state::paradise_priority_w)
m_priority = data;
}
-void paradise_state::draw_sprites( bitmap_ind16 &bitmap, const rectangle &cliprect )
+void paradise_state::draw_sprites(bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- UINT8 *spriteram = m_spriteram;
- int i;
- for (i = 0; i < m_spriteram.bytes() ; i += m_sprite_inc)
+ for (int i = 0; i < m_spriteram.bytes() ; i += m_sprite_inc)
{
- int code = spriteram[i + 0];
- int x = spriteram[i + 1];
- int y = spriteram[i + 2] - 2;
- int attr = spriteram[i + 3];
+ int code = m_spriteram[i + 0];
+ int x = m_spriteram[i + 1];
+ int y = m_spriteram[i + 2] - 2;
+ int attr = m_spriteram[i + 3];
int flipx = 0; // ?
int flipy = 0;