mirror of
https://github.com/holub/mame
synced 2025-04-25 09:50:04 +03:00
limenko.c, lordgun.c: added save state support (nw)
This commit is contained in:
parent
b55b45a5a9
commit
e3f6b06fdd
@ -34,18 +34,25 @@ class limenko_state : public driver_device
|
|||||||
public:
|
public:
|
||||||
limenko_state(const machine_config &mconfig, device_type type, const char *tag)
|
limenko_state(const machine_config &mconfig, device_type type, const char *tag)
|
||||||
: driver_device(mconfig, type, tag),
|
: driver_device(mconfig, type, tag),
|
||||||
|
m_maincpu(*this, "maincpu"),
|
||||||
|
m_oki(*this, "oki"),
|
||||||
|
m_qs1000(*this, "qs1000"),
|
||||||
|
m_gfxdecode(*this, "gfxdecode"),
|
||||||
|
m_palette(*this, "palette"),
|
||||||
m_mainram(*this, "mainram"),
|
m_mainram(*this, "mainram"),
|
||||||
m_fg_videoram(*this, "fg_videoram"),
|
m_fg_videoram(*this, "fg_videoram"),
|
||||||
m_md_videoram(*this, "md_videoram"),
|
m_md_videoram(*this, "md_videoram"),
|
||||||
m_bg_videoram(*this, "bg_videoram"),
|
m_bg_videoram(*this, "bg_videoram"),
|
||||||
m_spriteram(*this, "spriteram"),
|
m_spriteram(*this, "spriteram"),
|
||||||
m_spriteram2(*this, "spriteram2"),
|
m_spriteram2(*this, "spriteram2"),
|
||||||
m_videoreg(*this, "videoreg"),
|
m_videoreg(*this, "videoreg") { }
|
||||||
m_maincpu(*this, "maincpu"),
|
|
||||||
m_oki(*this, "oki"),
|
|
||||||
m_gfxdecode(*this, "gfxdecode"),
|
|
||||||
m_palette(*this, "palette") { }
|
|
||||||
|
|
||||||
|
required_device<cpu_device> m_maincpu;
|
||||||
|
optional_device<okim6295_device> m_oki;
|
||||||
|
optional_device<qs1000_device> m_qs1000;
|
||||||
|
required_device<gfxdecode_device> m_gfxdecode;
|
||||||
|
required_device<palette_device> m_palette;
|
||||||
|
|
||||||
required_shared_ptr<UINT32> m_mainram;
|
required_shared_ptr<UINT32> m_mainram;
|
||||||
required_shared_ptr<UINT32> m_fg_videoram;
|
required_shared_ptr<UINT32> m_fg_videoram;
|
||||||
required_shared_ptr<UINT32> m_md_videoram;
|
required_shared_ptr<UINT32> m_md_videoram;
|
||||||
@ -53,14 +60,17 @@ public:
|
|||||||
required_shared_ptr<UINT32> m_spriteram;
|
required_shared_ptr<UINT32> m_spriteram;
|
||||||
required_shared_ptr<UINT32> m_spriteram2;
|
required_shared_ptr<UINT32> m_spriteram2;
|
||||||
required_shared_ptr<UINT32> m_videoreg;
|
required_shared_ptr<UINT32> m_videoreg;
|
||||||
|
|
||||||
tilemap_t *m_bg_tilemap;
|
tilemap_t *m_bg_tilemap;
|
||||||
tilemap_t *m_md_tilemap;
|
tilemap_t *m_md_tilemap;
|
||||||
tilemap_t *m_fg_tilemap;
|
tilemap_t *m_fg_tilemap;
|
||||||
|
|
||||||
int m_spriteram_bit;
|
int m_spriteram_bit;
|
||||||
bitmap_ind16 m_sprites_bitmap;
|
bitmap_ind16 m_sprites_bitmap;
|
||||||
bitmap_ind8 m_sprites_bitmap_pri;
|
bitmap_ind8 m_sprites_bitmap_pri;
|
||||||
int m_prev_sprites_count;
|
int m_prev_sprites_count;
|
||||||
UINT8 m_spotty_sound_cmd;
|
UINT8 m_spotty_sound_cmd;
|
||||||
|
|
||||||
DECLARE_WRITE32_MEMBER(limenko_coincounter_w);
|
DECLARE_WRITE32_MEMBER(limenko_coincounter_w);
|
||||||
DECLARE_WRITE32_MEMBER(bg_videoram_w);
|
DECLARE_WRITE32_MEMBER(bg_videoram_w);
|
||||||
DECLARE_WRITE32_MEMBER(md_videoram_w);
|
DECLARE_WRITE32_MEMBER(md_videoram_w);
|
||||||
@ -75,29 +85,28 @@ public:
|
|||||||
DECLARE_READ32_MEMBER(legendoh_speedup_r);
|
DECLARE_READ32_MEMBER(legendoh_speedup_r);
|
||||||
DECLARE_READ32_MEMBER(sb2003_speedup_r);
|
DECLARE_READ32_MEMBER(sb2003_speedup_r);
|
||||||
DECLARE_READ32_MEMBER(spotty_speedup_r);
|
DECLARE_READ32_MEMBER(spotty_speedup_r);
|
||||||
DECLARE_CUSTOM_INPUT_MEMBER(spriteram_bit_r);
|
|
||||||
|
|
||||||
DECLARE_READ8_MEMBER(qs1000_p1_r);
|
DECLARE_READ8_MEMBER(qs1000_p1_r);
|
||||||
DECLARE_WRITE8_MEMBER(qs1000_p1_w);
|
DECLARE_WRITE8_MEMBER(qs1000_p1_w);
|
||||||
DECLARE_WRITE8_MEMBER(qs1000_p2_w);
|
DECLARE_WRITE8_MEMBER(qs1000_p2_w);
|
||||||
DECLARE_WRITE8_MEMBER(qs1000_p3_w);
|
DECLARE_WRITE8_MEMBER(qs1000_p3_w);
|
||||||
|
|
||||||
|
DECLARE_CUSTOM_INPUT_MEMBER(spriteram_bit_r);
|
||||||
|
|
||||||
DECLARE_DRIVER_INIT(common);
|
DECLARE_DRIVER_INIT(common);
|
||||||
DECLARE_DRIVER_INIT(sb2003);
|
DECLARE_DRIVER_INIT(sb2003);
|
||||||
DECLARE_DRIVER_INIT(dynabomb);
|
DECLARE_DRIVER_INIT(dynabomb);
|
||||||
DECLARE_DRIVER_INIT(legendoh);
|
DECLARE_DRIVER_INIT(legendoh);
|
||||||
DECLARE_DRIVER_INIT(spotty);
|
DECLARE_DRIVER_INIT(spotty);
|
||||||
|
|
||||||
TILE_GET_INFO_MEMBER(get_bg_tile_info);
|
TILE_GET_INFO_MEMBER(get_bg_tile_info);
|
||||||
TILE_GET_INFO_MEMBER(get_md_tile_info);
|
TILE_GET_INFO_MEMBER(get_md_tile_info);
|
||||||
TILE_GET_INFO_MEMBER(get_fg_tile_info);
|
TILE_GET_INFO_MEMBER(get_fg_tile_info);
|
||||||
|
|
||||||
virtual void video_start();
|
virtual void video_start();
|
||||||
UINT32 screen_update_limenko(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
|
UINT32 screen_update_limenko(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
|
||||||
void draw_single_sprite(bitmap_ind16 &dest_bmp,const rectangle &clip,gfx_element *gfx,UINT32 code,UINT32 color,int flipx,int flipy,int sx,int sy,int priority);
|
void draw_single_sprite(bitmap_ind16 &dest_bmp,const rectangle &clip,gfx_element *gfx,UINT32 code,UINT32 color,int flipx,int flipy,int sx,int sy,int priority);
|
||||||
void draw_sprites(UINT32 *sprites, const rectangle &cliprect, int count);
|
void draw_sprites(UINT32 *sprites, const rectangle &cliprect, int count);
|
||||||
void copy_sprites(bitmap_ind16 &bitmap, bitmap_ind16 &sprites_bitmap, bitmap_ind8 &priority_bitmap, const rectangle &cliprect);
|
void copy_sprites(bitmap_ind16 &bitmap, bitmap_ind16 &sprites_bitmap, bitmap_ind8 &priority_bitmap, const rectangle &cliprect);
|
||||||
required_device<cpu_device> m_maincpu;
|
|
||||||
optional_device<okim6295_device> m_oki;
|
|
||||||
required_device<gfxdecode_device> m_gfxdecode;
|
|
||||||
required_device<palette_device> m_palette;
|
|
||||||
};
|
};
|
||||||
|
|
||||||
/*****************************************************************************************************
|
/*****************************************************************************************************
|
||||||
@ -165,10 +174,8 @@ WRITE32_MEMBER(limenko_state::spriteram_buffer_w)
|
|||||||
|
|
||||||
WRITE32_MEMBER(limenko_state::limenko_soundlatch_w)
|
WRITE32_MEMBER(limenko_state::limenko_soundlatch_w)
|
||||||
{
|
{
|
||||||
qs1000_device *qs1000 = machine().device<qs1000_device>("qs1000");
|
|
||||||
|
|
||||||
soundlatch_byte_w(space, 0, data >> 16);
|
soundlatch_byte_w(space, 0, data >> 16);
|
||||||
qs1000->set_irq(ASSERT_LINE);
|
m_qs1000->set_irq(ASSERT_LINE);
|
||||||
|
|
||||||
machine().scheduler().boost_interleave(attotime::zero, attotime::from_usec(100));
|
machine().scheduler().boost_interleave(attotime::zero, attotime::from_usec(100));
|
||||||
}
|
}
|
||||||
@ -198,12 +205,10 @@ WRITE8_MEMBER(limenko_state::qs1000_p3_w)
|
|||||||
// ...x .... - ?
|
// ...x .... - ?
|
||||||
// ..x. .... - /IRQ clear
|
// ..x. .... - /IRQ clear
|
||||||
|
|
||||||
qs1000_device *qs1000 = machine().device<qs1000_device>("qs1000");
|
|
||||||
|
|
||||||
membank("qs1000:bank")->set_entry(data & 0x07);
|
membank("qs1000:bank")->set_entry(data & 0x07);
|
||||||
|
|
||||||
if (!BIT(data, 5))
|
if (!BIT(data, 5))
|
||||||
qs1000->set_irq(CLEAR_LINE);
|
m_qs1000->set_irq(CLEAR_LINE);
|
||||||
}
|
}
|
||||||
|
|
||||||
/*****************************************************************************************************
|
/*****************************************************************************************************
|
||||||
@ -500,6 +505,9 @@ void limenko_state::video_start()
|
|||||||
|
|
||||||
m_sprites_bitmap.allocate(384,240);
|
m_sprites_bitmap.allocate(384,240);
|
||||||
m_sprites_bitmap_pri.allocate(384,240);
|
m_sprites_bitmap_pri.allocate(384,240);
|
||||||
|
|
||||||
|
save_item(NAME(m_spriteram_bit));
|
||||||
|
save_item(NAME(m_prev_sprites_count));
|
||||||
}
|
}
|
||||||
|
|
||||||
UINT32 limenko_state::screen_update_limenko(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
|
UINT32 limenko_state::screen_update_limenko(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
|
||||||
@ -1138,12 +1146,14 @@ DRIVER_INIT_MEMBER(limenko_state,spotty)
|
|||||||
m_maincpu->space(AS_PROGRAM).install_read_handler(0x6626c, 0x6626f, read32_delegate(FUNC(limenko_state::spotty_speedup_r), this));
|
m_maincpu->space(AS_PROGRAM).install_read_handler(0x6626c, 0x6626f, read32_delegate(FUNC(limenko_state::spotty_speedup_r), this));
|
||||||
|
|
||||||
m_spriteram_bit = 1;
|
m_spriteram_bit = 1;
|
||||||
|
|
||||||
|
save_item(NAME(m_spotty_sound_cmd));
|
||||||
}
|
}
|
||||||
|
|
||||||
GAME( 2000, dynabomb, 0, limenko, sb2003, limenko_state, dynabomb, ROT0, "Limenko", "Dynamite Bomber (Korea, Rev 1.5)", GAME_IMPERFECT_SOUND )
|
GAME( 2000, dynabomb, 0, limenko, sb2003, limenko_state, dynabomb, ROT0, "Limenko", "Dynamite Bomber (Korea, Rev 1.5)", GAME_IMPERFECT_SOUND | GAME_SUPPORTS_SAVE )
|
||||||
GAME( 2000, legendoh, 0, limenko, legendoh, limenko_state, legendoh, ROT0, "Limenko", "Legend of Heroes", GAME_IMPERFECT_SOUND )
|
GAME( 2000, legendoh, 0, limenko, legendoh, limenko_state, legendoh, ROT0, "Limenko", "Legend of Heroes", GAME_IMPERFECT_SOUND | GAME_SUPPORTS_SAVE )
|
||||||
GAME( 2003, sb2003, 0, limenko, sb2003, limenko_state, sb2003, ROT0, "Limenko", "Super Bubble 2003 (World, Ver 1.0)", GAME_IMPERFECT_SOUND )
|
GAME( 2003, sb2003, 0, limenko, sb2003, limenko_state, sb2003, ROT0, "Limenko", "Super Bubble 2003 (World, Ver 1.0)", GAME_IMPERFECT_SOUND | GAME_SUPPORTS_SAVE )
|
||||||
GAME( 2003, sb2003a, sb2003, limenko, sb2003, limenko_state, sb2003, ROT0, "Limenko", "Super Bubble 2003 (Asia, Ver 1.0)", GAME_IMPERFECT_SOUND )
|
GAME( 2003, sb2003a, sb2003, limenko, sb2003, limenko_state, sb2003, ROT0, "Limenko", "Super Bubble 2003 (Asia, Ver 1.0)", GAME_IMPERFECT_SOUND | GAME_SUPPORTS_SAVE )
|
||||||
|
|
||||||
// this game only use the same graphics chip used in limenko's system
|
// this game only uses the same graphics chip used in Limenko's system
|
||||||
GAME( 2001, spotty, 0, spotty, spotty, limenko_state, spotty, ROT0, "Prince Co.", "Spotty (Ver. 2.0.2)", GAME_NO_SOUND )
|
GAME( 2001, spotty, 0, spotty, spotty, limenko_state, spotty, ROT0, "Prince Co.", "Spotty (Ver. 2.0.2)", GAME_NO_SOUND | GAME_SUPPORTS_SAVE )
|
||||||
|
@ -47,6 +47,7 @@ Notes:
|
|||||||
#include "sound/ymf278b.h"
|
#include "sound/ymf278b.h"
|
||||||
#include "includes/lordgun.h"
|
#include "includes/lordgun.h"
|
||||||
|
|
||||||
|
|
||||||
/***************************************************************************
|
/***************************************************************************
|
||||||
|
|
||||||
Memory Maps - Main
|
Memory Maps - Main
|
||||||
@ -59,15 +60,15 @@ WRITE16_MEMBER(lordgun_state::lordgun_protection_w)
|
|||||||
{
|
{
|
||||||
case 0x00/2: // increment counter
|
case 0x00/2: // increment counter
|
||||||
{
|
{
|
||||||
m_lordgun_protection_data++;
|
m_protection_data++;
|
||||||
m_lordgun_protection_data &= 0x1f;
|
m_protection_data &= 0x1f;
|
||||||
|
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
case 0xc0/2: // reset protection device
|
case 0xc0/2: // reset protection device
|
||||||
{
|
{
|
||||||
m_lordgun_protection_data = 0;
|
m_protection_data = 0;
|
||||||
|
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
@ -80,22 +81,22 @@ READ16_MEMBER(lordgun_state::lordgun_protection_r)
|
|||||||
{
|
{
|
||||||
case 0x40/2: // bitswap and xor counter
|
case 0x40/2: // bitswap and xor counter
|
||||||
{
|
{
|
||||||
UINT8 x = m_lordgun_protection_data;
|
UINT8 x = m_protection_data;
|
||||||
|
|
||||||
m_lordgun_protection_data = ((( x >> 0) | ( x >> 1)) & 1) << 4;
|
m_protection_data = ((( x >> 0) | ( x >> 1)) & 1) << 4;
|
||||||
m_lordgun_protection_data |= ((~x >> 2) & 1) << 3;
|
m_protection_data |= ((~x >> 2) & 1) << 3;
|
||||||
m_lordgun_protection_data |= (((~x >> 4) | ( x >> 0)) & 1) << 2;
|
m_protection_data |= (((~x >> 4) | ( x >> 0)) & 1) << 2;
|
||||||
m_lordgun_protection_data |= (( x >> 3) & 1) << 1;
|
m_protection_data |= (( x >> 3) & 1) << 1;
|
||||||
m_lordgun_protection_data |= (((~x >> 0) | ( x >> 2)) & 1) << 0;
|
m_protection_data |= (((~x >> 0) | ( x >> 2)) & 1) << 0;
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
case 0x80/2: // return value if conditions are met
|
case 0x80/2: // return value if conditions are met
|
||||||
{
|
{
|
||||||
if ((m_lordgun_protection_data & 0x11) == 0x01) return 0x10;
|
if ((m_protection_data & 0x11) == 0x01) return 0x10;
|
||||||
if ((m_lordgun_protection_data & 0x06) == 0x02) return 0x10;
|
if ((m_protection_data & 0x06) == 0x02) return 0x10;
|
||||||
if ((m_lordgun_protection_data & 0x09) == 0x08) return 0x10;
|
if ((m_protection_data & 0x09) == 0x08) return 0x10;
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
@ -110,7 +111,7 @@ WRITE16_MEMBER(lordgun_state::aliencha_protection_w)
|
|||||||
{
|
{
|
||||||
case 0xc0/2: // reset protection device
|
case 0xc0/2: // reset protection device
|
||||||
{
|
{
|
||||||
m_lordgun_protection_data = 0;
|
m_protection_data = 0;
|
||||||
|
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
@ -123,30 +124,30 @@ READ16_MEMBER(lordgun_state::aliencha_protection_r)
|
|||||||
{
|
{
|
||||||
case 0x00/2: // de-increment counter
|
case 0x00/2: // de-increment counter
|
||||||
{
|
{
|
||||||
m_lordgun_protection_data--;
|
m_protection_data--;
|
||||||
m_lordgun_protection_data &= 0x1f;
|
m_protection_data &= 0x1f;
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
case 0x40/2: // bitswap and xor counter
|
case 0x40/2: // bitswap and xor counter
|
||||||
{
|
{
|
||||||
UINT8 x = m_lordgun_protection_data;
|
UINT8 x = m_protection_data;
|
||||||
|
|
||||||
m_lordgun_protection_data = (((x >> 3) ^ (x >> 2)) & 1) << 4;
|
m_protection_data = (((x >> 3) ^ (x >> 2)) & 1) << 4;
|
||||||
m_lordgun_protection_data |= (((x >> 2) ^ (x >> 1)) & 1) << 3;
|
m_protection_data |= (((x >> 2) ^ (x >> 1)) & 1) << 3;
|
||||||
m_lordgun_protection_data |= (((x >> 1) ^ (x >> 0)) & 1) << 2;
|
m_protection_data |= (((x >> 1) ^ (x >> 0)) & 1) << 2;
|
||||||
m_lordgun_protection_data |= (((x >> 4) ^ (x >> 0)) & 1) << 1;
|
m_protection_data |= (((x >> 4) ^ (x >> 0)) & 1) << 1;
|
||||||
m_lordgun_protection_data |= (((x >> 4) ^ (x >> 3)) & 1) << 0;
|
m_protection_data |= (((x >> 4) ^ (x >> 3)) & 1) << 0;
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
case 0x80/2: // return value if conditions are met
|
case 0x80/2: // return value if conditions are met
|
||||||
{
|
{
|
||||||
if ((m_lordgun_protection_data & 0x11) == 0x00) return 0x20;
|
if ((m_protection_data & 0x11) == 0x00) return 0x20;
|
||||||
if ((m_lordgun_protection_data & 0x06) != 0x06) return 0x20;
|
if ((m_protection_data & 0x06) != 0x06) return 0x20;
|
||||||
if ((m_lordgun_protection_data & 0x18) == 0x00) return 0x20;
|
if ((m_protection_data & 0x18) == 0x00) return 0x20;
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
@ -622,6 +623,13 @@ INPUT_PORTS_END
|
|||||||
|
|
||||||
***************************************************************************/
|
***************************************************************************/
|
||||||
|
|
||||||
|
void lordgun_state::machine_start()
|
||||||
|
{
|
||||||
|
save_item(NAME(m_protection_data));
|
||||||
|
save_item(NAME(m_priority));
|
||||||
|
save_item(NAME(m_whitescreen));
|
||||||
|
}
|
||||||
|
|
||||||
static MACHINE_CONFIG_START( lordgun, lordgun_state )
|
static MACHINE_CONFIG_START( lordgun, lordgun_state )
|
||||||
MCFG_CPU_ADD("maincpu", M68000, XTAL_20MHz / 2)
|
MCFG_CPU_ADD("maincpu", M68000, XTAL_20MHz / 2)
|
||||||
MCFG_CPU_PROGRAM_MAP(lordgun_map)
|
MCFG_CPU_PROGRAM_MAP(lordgun_map)
|
||||||
@ -1027,13 +1035,12 @@ ROM_END
|
|||||||
|
|
||||||
***************************************************************************/
|
***************************************************************************/
|
||||||
|
|
||||||
DRIVER_INIT_MEMBER(lordgun_state,lordgun)
|
DRIVER_INIT_MEMBER(lordgun_state, lordgun)
|
||||||
{
|
{
|
||||||
int i;
|
|
||||||
UINT16 *rom = (UINT16 *)memregion("maincpu")->base();
|
UINT16 *rom = (UINT16 *)memregion("maincpu")->base();
|
||||||
int rom_size = 0x100000;
|
int rom_size = 0x100000;
|
||||||
|
|
||||||
for(i = 0; i < rom_size/2; i++)
|
for(int i = 0; i < rom_size/2; i++)
|
||||||
{
|
{
|
||||||
UINT16 x = rom[i];
|
UINT16 x = rom[i];
|
||||||
|
|
||||||
@ -1042,6 +1049,21 @@ DRIVER_INIT_MEMBER(lordgun_state,lordgun)
|
|||||||
|
|
||||||
rom[i] = x;
|
rom[i] = x;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
save_item(NAME(m_old));
|
||||||
|
|
||||||
|
for (int i = 0; i < 2; i++)
|
||||||
|
{
|
||||||
|
save_item(NAME(m_gun[i].scr_x), i);
|
||||||
|
save_item(NAME(m_gun[i].scr_y), i);
|
||||||
|
save_item(NAME(m_gun[i].hw_x), i);
|
||||||
|
save_item(NAME(m_gun[i].hw_y), i);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
DRIVER_INIT_MEMBER(lordgun_state, aliencha)
|
||||||
|
{
|
||||||
|
save_item(NAME(m_aliencha_dip_sel));
|
||||||
}
|
}
|
||||||
|
|
||||||
/***************************************************************************
|
/***************************************************************************
|
||||||
@ -1050,6 +1072,6 @@ DRIVER_INIT_MEMBER(lordgun_state,lordgun)
|
|||||||
|
|
||||||
***************************************************************************/
|
***************************************************************************/
|
||||||
|
|
||||||
GAME( 1994, lordgun, 0, lordgun, lordgun, lordgun_state, lordgun, ROT0, "IGS", "Lord of Gun (USA)", GAME_IMPERFECT_GRAPHICS )
|
GAME( 1994, lordgun, 0, lordgun, lordgun, lordgun_state, lordgun, ROT0, "IGS", "Lord of Gun (USA)", GAME_IMPERFECT_GRAPHICS | GAME_SUPPORTS_SAVE )
|
||||||
GAME( 1994, aliencha, 0, aliencha, aliencha, driver_device, 0, ROT0, "IGS", "Alien Challenge (World)", 0 )
|
GAME( 1994, aliencha, 0, aliencha, aliencha, driver_device, 0, ROT0, "IGS", "Alien Challenge (World)", GAME_SUPPORTS_SAVE )
|
||||||
GAME( 1994, alienchac, aliencha, aliencha, aliencha, driver_device, 0, ROT0, "IGS", "Alien Challenge (China)", 0 )
|
GAME( 1994, alienchac, aliencha, aliencha, aliencha, driver_device, 0, ROT0, "IGS", "Alien Challenge (China)", GAME_SUPPORTS_SAVE )
|
||||||
|
@ -17,12 +17,6 @@ class lordgun_state : public driver_device
|
|||||||
public:
|
public:
|
||||||
lordgun_state(const machine_config &mconfig, device_type type, const char *tag)
|
lordgun_state(const machine_config &mconfig, device_type type, const char *tag)
|
||||||
: driver_device(mconfig, type, tag),
|
: driver_device(mconfig, type, tag),
|
||||||
m_priority_ram(*this, "priority_ram"),
|
|
||||||
m_scrollram(*this, "scrollram"),
|
|
||||||
m_spriteram(*this, "spriteram"),
|
|
||||||
m_vram(*this, "vram"),
|
|
||||||
m_scroll_x(*this, "scroll_x"),
|
|
||||||
m_scroll_y(*this, "scroll_y") ,
|
|
||||||
m_maincpu(*this, "maincpu"),
|
m_maincpu(*this, "maincpu"),
|
||||||
m_soundcpu(*this, "soundcpu"),
|
m_soundcpu(*this, "soundcpu"),
|
||||||
m_oki(*this, "oki"),
|
m_oki(*this, "oki"),
|
||||||
@ -30,24 +24,39 @@ public:
|
|||||||
m_gfxdecode(*this, "gfxdecode"),
|
m_gfxdecode(*this, "gfxdecode"),
|
||||||
m_screen(*this, "screen"),
|
m_screen(*this, "screen"),
|
||||||
m_palette(*this, "palette"),
|
m_palette(*this, "palette"),
|
||||||
m_generic_paletteram_16(*this, "paletteram") { }
|
m_generic_paletteram_16(*this, "paletteram"),
|
||||||
|
m_priority_ram(*this, "priority_ram"),
|
||||||
|
m_scrollram(*this, "scrollram"),
|
||||||
|
m_spriteram(*this, "spriteram"),
|
||||||
|
m_vram(*this, "vram"),
|
||||||
|
m_scroll_x(*this, "scroll_x"),
|
||||||
|
m_scroll_y(*this, "scroll_y") { }
|
||||||
|
|
||||||
|
required_device<cpu_device> m_maincpu;
|
||||||
|
required_device<cpu_device> m_soundcpu;
|
||||||
|
required_device<okim6295_device> m_oki;
|
||||||
|
required_device<eeprom_serial_93cxx_device> m_eeprom;
|
||||||
|
required_device<gfxdecode_device> m_gfxdecode;
|
||||||
|
required_device<screen_device> m_screen;
|
||||||
|
required_device<palette_device> m_palette;
|
||||||
|
|
||||||
|
required_shared_ptr<UINT16> m_generic_paletteram_16;
|
||||||
required_shared_ptr<UINT16> m_priority_ram;
|
required_shared_ptr<UINT16> m_priority_ram;
|
||||||
required_shared_ptr<UINT16> m_scrollram;
|
required_shared_ptr<UINT16> m_scrollram;
|
||||||
required_shared_ptr<UINT16> m_spriteram;
|
required_shared_ptr<UINT16> m_spriteram;
|
||||||
|
required_shared_ptr_array<UINT16, 4> m_vram;
|
||||||
|
required_shared_ptr_array<UINT16, 4> m_scroll_x;
|
||||||
|
required_shared_ptr_array<UINT16, 4> m_scroll_y;
|
||||||
|
|
||||||
UINT8 m_old;
|
UINT8 m_old;
|
||||||
UINT8 m_aliencha_dip_sel;
|
UINT8 m_aliencha_dip_sel;
|
||||||
UINT16 m_priority;
|
UINT16 m_priority;
|
||||||
required_shared_ptr_array<UINT16, 4> m_vram;
|
|
||||||
required_shared_ptr_array<UINT16, 4> m_scroll_x;
|
|
||||||
required_shared_ptr_array<UINT16, 4> m_scroll_y;
|
|
||||||
int m_whitescreen;
|
int m_whitescreen;
|
||||||
lordgun_gun_data m_gun[2];
|
lordgun_gun_data m_gun[2];
|
||||||
tilemap_t *m_tilemap[4];
|
tilemap_t *m_tilemap[4];
|
||||||
bitmap_ind16 *m_bitmaps[5];
|
bitmap_ind16 *m_bitmaps[5];
|
||||||
|
|
||||||
UINT16 m_lordgun_protection_data;
|
UINT16 m_protection_data;
|
||||||
DECLARE_WRITE16_MEMBER(lordgun_protection_w);
|
DECLARE_WRITE16_MEMBER(lordgun_protection_w);
|
||||||
DECLARE_READ16_MEMBER(lordgun_protection_r);
|
DECLARE_READ16_MEMBER(lordgun_protection_r);
|
||||||
DECLARE_WRITE16_MEMBER(aliencha_protection_w);
|
DECLARE_WRITE16_MEMBER(aliencha_protection_w);
|
||||||
@ -71,26 +80,24 @@ public:
|
|||||||
DECLARE_READ8_MEMBER(aliencha_dip_r);
|
DECLARE_READ8_MEMBER(aliencha_dip_r);
|
||||||
DECLARE_WRITE8_MEMBER(aliencha_dip_w);
|
DECLARE_WRITE8_MEMBER(aliencha_dip_w);
|
||||||
DECLARE_WRITE8_MEMBER(lordgun_okibank_w);
|
DECLARE_WRITE8_MEMBER(lordgun_okibank_w);
|
||||||
|
|
||||||
|
DECLARE_DRIVER_INIT(aliencha);
|
||||||
DECLARE_DRIVER_INIT(lordgun);
|
DECLARE_DRIVER_INIT(lordgun);
|
||||||
|
|
||||||
TILE_GET_INFO_MEMBER(get_tile_info_0);
|
TILE_GET_INFO_MEMBER(get_tile_info_0);
|
||||||
TILE_GET_INFO_MEMBER(get_tile_info_1);
|
TILE_GET_INFO_MEMBER(get_tile_info_1);
|
||||||
TILE_GET_INFO_MEMBER(get_tile_info_2);
|
TILE_GET_INFO_MEMBER(get_tile_info_2);
|
||||||
TILE_GET_INFO_MEMBER(get_tile_info_3);
|
TILE_GET_INFO_MEMBER(get_tile_info_3);
|
||||||
|
|
||||||
|
virtual void machine_start();
|
||||||
virtual void video_start();
|
virtual void video_start();
|
||||||
|
|
||||||
UINT32 screen_update_lordgun(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
|
UINT32 screen_update_lordgun(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
|
||||||
inline void get_tile_info(tile_data &tileinfo, tilemap_memory_index tile_index, int _N_);
|
inline void get_tile_info(tile_data &tileinfo, tilemap_memory_index tile_index, int _N_);
|
||||||
inline void lordgun_vram_w(offs_t offset, UINT16 data, UINT16 mem_mask, int _N_);
|
inline void lordgun_vram_w(offs_t offset, UINT16 data, UINT16 mem_mask, int _N_);
|
||||||
void lorddgun_calc_gun_scr(int i);
|
void lorddgun_calc_gun_scr(int i);
|
||||||
void lordgun_update_gun(int i);
|
void lordgun_update_gun(int i);
|
||||||
void draw_sprites(bitmap_ind16 &bitmap, const rectangle &cliprect);
|
void draw_sprites(bitmap_ind16 &bitmap, const rectangle &cliprect);
|
||||||
required_device<cpu_device> m_maincpu;
|
|
||||||
required_device<cpu_device> m_soundcpu;
|
|
||||||
required_device<okim6295_device> m_oki;
|
|
||||||
required_device<eeprom_serial_93cxx_device> m_eeprom;
|
|
||||||
required_device<gfxdecode_device> m_gfxdecode;
|
|
||||||
required_device<screen_device> m_screen;
|
|
||||||
required_device<palette_device> m_palette;
|
|
||||||
required_shared_ptr<UINT16> m_generic_paletteram_16;
|
|
||||||
};
|
};
|
||||||
|
|
||||||
/*----------- defined in video/lordgun.c -----------*/
|
/*----------- defined in video/lordgun.c -----------*/
|
||||||
|
Loading…
Reference in New Issue
Block a user