Added save states to igs011.c (nw)

This commit is contained in:
Ivan Vangelista 2014-08-28 15:58:47 +00:00
parent 817f57e908
commit 1bd10fada8

View File

@ -76,7 +76,6 @@ struct blitter_t
depth,
pen,
flags;
};
class igs011_state : public driver_device
@ -85,16 +84,24 @@ public:
igs011_state(const machine_config &mconfig, device_type type, const char *tag)
: driver_device(mconfig, type, tag),
m_maincpu(*this, "maincpu"),
m_priority_ram(*this, "priority_ram"),
m_vbowl_trackball(*this, "vbowl_trackball"),
m_oki(*this, "oki"),
m_screen(*this, "screen"),
m_palette(*this, "palette"),
m_priority_ram(*this, "priority_ram"),
m_vbowl_trackball(*this, "vbowl_trackball"),
m_generic_paletteram_16(*this, "paletteram") { }
/* devices */
required_device<cpu_device> m_maincpu;
optional_device<okim6295_device> m_oki;
required_device<screen_device> m_screen;
required_device<palette_device> m_palette;
/* memory pointers */
required_shared_ptr<UINT16> m_priority_ram;
optional_shared_ptr<UINT16> m_vbowl_trackball;
required_shared_ptr<UINT16> m_generic_paletteram_16;
UINT8 *m_layer[8];
UINT16 m_priority;
UINT8 m_lhb2_pen_hi;
@ -209,6 +216,7 @@ public:
TIMER_DEVICE_CALLBACK_MEMBER(lev5_timer_irq_cb);
TIMER_DEVICE_CALLBACK_MEMBER(lhb_timer_irq_cb);
TIMER_DEVICE_CALLBACK_MEMBER(lev3_timer_irq_cb);
virtual void machine_start();
virtual void video_start();
UINT32 screen_update_igs011(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
void screen_eof_vbowl(screen_device &screen, bool state);
@ -225,10 +233,6 @@ public:
void ryukobou_decrypt();
void lhb2_decrypt_gfx();
void drgnwrld_gfx_decrypt();
optional_device<okim6295_device> m_oki;
required_device<screen_device> m_screen;
required_device<palette_device> m_palette;
required_shared_ptr<UINT16> m_generic_paletteram_16;
};
@ -266,14 +270,25 @@ WRITE16_MEMBER(igs011_state::igs011_priority_w)
void igs011_state::video_start()
{
int i;
for (i = 0; i < 8; i++)
for (int i = 0; i < 8; i++)
{
m_layer[i] = auto_alloc_array(machine(), UINT8, 512 * 256);
save_pointer(NAME(m_layer[i]), 512 * 256, i);
}
m_lhb2_pen_hi = 0;
save_item(NAME(m_priority));
save_item(NAME(m_lhb2_pen_hi));
save_item(NAME(m_blitter.x));
save_item(NAME(m_blitter.y));
save_item(NAME(m_blitter.w));
save_item(NAME(m_blitter.h));
save_item(NAME(m_blitter.gfx_lo));
save_item(NAME(m_blitter.gfx_hi));
save_item(NAME(m_blitter.depth));
save_item(NAME(m_blitter.pen));
save_item(NAME(m_blitter.flags));
}
UINT32 igs011_state::screen_update_igs011(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
@ -572,6 +587,28 @@ WRITE16_MEMBER(igs011_state::igs011_blit_flags_w)
***************************************************************************/
void igs011_state::machine_start()
{
save_item(NAME(m_igs_dips_sel));
save_item(NAME(m_igs_input_sel));
save_item(NAME(m_igs_hopper));
save_item(NAME(m_prot1));
save_item(NAME(m_prot1_swap));
save_item(NAME(m_prot1_addr));
save_item(NAME(m_prot2));
save_item(NAME(m_igs012_prot));
save_item(NAME(m_igs012_prot_swap));
save_item(NAME(m_igs012_prot_mode));
save_item(NAME(m_igs003_reg));
save_item(NAME(m_lhb_irq_enable));
save_item(NAME(m_igs003_prot_hold));
save_item(NAME(m_igs003_prot_x));
save_item(NAME(m_igs003_prot_y));
save_item(NAME(m_igs003_prot_z));
save_item(NAME(m_igs003_prot_h1));
save_item(NAME(m_igs003_prot_h2));
}
// Inputs
@ -4747,20 +4784,20 @@ ROM_END
***************************************************************************/
GAME( 1997, drgnwrld, 0, drgnwrld, drgnwrld, igs011_state, drgnwrld, ROT0, "IGS", "Dragon World (World, V040O)", 0 )
GAME( 1995, drgnwrldv30, drgnwrld, drgnwrld, drgnwrld, igs011_state, drgnwrldv30, ROT0, "IGS", "Dragon World (World, V030O)", 0 )
GAME( 1995, drgnwrldv21, drgnwrld, drgnwrld_igs012, drgnwrld, igs011_state, drgnwrldv21, ROT0, "IGS", "Dragon World (World, V021O)", 0 )
GAME( 1995, drgnwrldv21j, drgnwrld, drgnwrld_igs012, drgnwrldj, igs011_state, drgnwrldv21j, ROT0, "IGS / Alta", "Zhong Guo Long (Japan, V021J)", 0 )
GAME( 1995, drgnwrldv20j, drgnwrld, drgnwrld_igs012, drgnwrldj, igs011_state, drgnwrldv20j, ROT0, "IGS / Alta", "Zhong Guo Long (Japan, V020J)", 0 )
GAME( 1995, drgnwrldv10c, drgnwrld, drgnwrld, drgnwrldc, igs011_state, drgnwrldv10c, ROT0, "IGS", "Zhong Guo Long (China, V010C)", 0 )
GAME( 1995, drgnwrldv11h, drgnwrld, drgnwrld, drgnwrldc, igs011_state, drgnwrldv11h, ROT0, "IGS", "Dong Fang Zhi Zhu (Hong Kong, V011H)", 0 )
GAME( 1995, lhb, 0, lhb, lhb, igs011_state, lhb, ROT0, "IGS", "Long Hu Bang (China, V035C)", 0 )
GAME( 1995, lhbv33c, lhb, lhb, lhb, igs011_state, lhbv33c, ROT0, "IGS", "Long Hu Bang (China, V033C)", 0 )
GAME( 1995, dbc, lhb, lhb, lhb, igs011_state, dbc, ROT0, "IGS", "Da Ban Cheng (Hong Kong, V027H)", 0 )
GAME( 1995, ryukobou, lhb, lhb, lhb, igs011_state, ryukobou, ROT0, "IGS / Alta", "Mahjong Ryukobou (Japan, V030J)", 0 )
GAME( 1996, lhb2, 0, lhb2, lhb2, igs011_state, lhb2, ROT0, "IGS", "Long Hu Bang II (Hong Kong, V185H)", 0 )
GAME( 1996, xymg, 0, xymg, xymg, igs011_state, xymg, ROT0, "IGS", "Xing Yun Man Guan (China, V651C)", 0 )
GAME( 1996, wlcc, xymg, wlcc, wlcc, igs011_state, wlcc, ROT0, "IGS", "Wan Li Chang Cheng (China, V638C)", 0 )
GAME( 1996, vbowl, 0, vbowl, vbowl, igs011_state, vbowl, ROT0, "IGS", "Virtua Bowling (World, V101XCM)", GAME_IMPERFECT_SOUND )
GAME( 1996, vbowlj, vbowl, vbowl, vbowlj, igs011_state, vbowlj, ROT0, "IGS / Alta", "Virtua Bowling (Japan, V100JCM)", GAME_IMPERFECT_SOUND )
GAME( 1998, nkishusp, lhb2, nkishusp, nkishusp, igs011_state, nkishusp, ROT0, "IGS / Alta", "Mahjong Nenrikishu SP (Japan, V250J)", 0 )
GAME( 1997, drgnwrld, 0, drgnwrld, drgnwrld, igs011_state, drgnwrld, ROT0, "IGS", "Dragon World (World, V040O)", GAME_SUPPORTS_SAVE )
GAME( 1995, drgnwrldv30, drgnwrld, drgnwrld, drgnwrld, igs011_state, drgnwrldv30, ROT0, "IGS", "Dragon World (World, V030O)", GAME_SUPPORTS_SAVE )
GAME( 1995, drgnwrldv21, drgnwrld, drgnwrld_igs012, drgnwrld, igs011_state, drgnwrldv21, ROT0, "IGS", "Dragon World (World, V021O)", GAME_SUPPORTS_SAVE )
GAME( 1995, drgnwrldv21j, drgnwrld, drgnwrld_igs012, drgnwrldj, igs011_state, drgnwrldv21j, ROT0, "IGS / Alta", "Zhong Guo Long (Japan, V021J)", GAME_SUPPORTS_SAVE )
GAME( 1995, drgnwrldv20j, drgnwrld, drgnwrld_igs012, drgnwrldj, igs011_state, drgnwrldv20j, ROT0, "IGS / Alta", "Zhong Guo Long (Japan, V020J)", GAME_SUPPORTS_SAVE )
GAME( 1995, drgnwrldv10c, drgnwrld, drgnwrld, drgnwrldc, igs011_state, drgnwrldv10c, ROT0, "IGS", "Zhong Guo Long (China, V010C)", GAME_SUPPORTS_SAVE )
GAME( 1995, drgnwrldv11h, drgnwrld, drgnwrld, drgnwrldc, igs011_state, drgnwrldv11h, ROT0, "IGS", "Dong Fang Zhi Zhu (Hong Kong, V011H)", GAME_SUPPORTS_SAVE )
GAME( 1995, lhb, 0, lhb, lhb, igs011_state, lhb, ROT0, "IGS", "Long Hu Bang (China, V035C)", GAME_SUPPORTS_SAVE )
GAME( 1995, lhbv33c, lhb, lhb, lhb, igs011_state, lhbv33c, ROT0, "IGS", "Long Hu Bang (China, V033C)", GAME_SUPPORTS_SAVE )
GAME( 1995, dbc, lhb, lhb, lhb, igs011_state, dbc, ROT0, "IGS", "Da Ban Cheng (Hong Kong, V027H)", GAME_SUPPORTS_SAVE )
GAME( 1995, ryukobou, lhb, lhb, lhb, igs011_state, ryukobou, ROT0, "IGS / Alta", "Mahjong Ryukobou (Japan, V030J)", GAME_SUPPORTS_SAVE )
GAME( 1996, lhb2, 0, lhb2, lhb2, igs011_state, lhb2, ROT0, "IGS", "Long Hu Bang II (Hong Kong, V185H)", GAME_SUPPORTS_SAVE )
GAME( 1996, xymg, 0, xymg, xymg, igs011_state, xymg, ROT0, "IGS", "Xing Yun Man Guan (China, V651C)", GAME_SUPPORTS_SAVE )
GAME( 1996, wlcc, xymg, wlcc, wlcc, igs011_state, wlcc, ROT0, "IGS", "Wan Li Chang Cheng (China, V638C)", GAME_SUPPORTS_SAVE )
GAME( 1996, vbowl, 0, vbowl, vbowl, igs011_state, vbowl, ROT0, "IGS", "Virtua Bowling (World, V101XCM)", GAME_IMPERFECT_SOUND | GAME_SUPPORTS_SAVE)
GAME( 1996, vbowlj, vbowl, vbowl, vbowlj, igs011_state, vbowlj, ROT0, "IGS / Alta", "Virtua Bowling (Japan, V100JCM)", GAME_IMPERFECT_SOUND | GAME_SUPPORTS_SAVE)
GAME( 1998, nkishusp, lhb2, nkishusp, nkishusp, igs011_state, nkishusp, ROT0, "IGS / Alta", "Mahjong Nenrikishu SP (Japan, V250J)", GAME_SUPPORTS_SAVE )