mirror of
https://github.com/holub/mame
synced 2025-05-30 01:23:07 +03:00
sidearms.c: added save state support (nw)
This commit is contained in:
parent
8be8760ea2
commit
ad1ba6b1a2
@ -46,7 +46,7 @@ void sidearms_state::machine_start()
|
||||
membank("bank1")->configure_entries(0, 16, memregion("maincpu")->base() + 0x8000, 0x4000);
|
||||
}
|
||||
|
||||
WRITE8_MEMBER(sidearms_state::sidearms_bankswitch_w)
|
||||
WRITE8_MEMBER(sidearms_state::bankswitch_w)
|
||||
{
|
||||
membank("bank1")->set_entry(data & 0x07);
|
||||
}
|
||||
@ -71,17 +71,17 @@ static ADDRESS_MAP_START( sidearms_map, AS_PROGRAM, 8, sidearms_state )
|
||||
AM_RANGE(0xc000, 0xc3ff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette")
|
||||
AM_RANGE(0xc400, 0xc7ff) AM_RAM_DEVWRITE("palette", palette_device, write_ext) AM_SHARE("palette_ext")
|
||||
AM_RANGE(0xc800, 0xc800) AM_READ_PORT("SYSTEM") AM_WRITE(soundlatch_byte_w)
|
||||
AM_RANGE(0xc801, 0xc801) AM_READ_PORT("P1") AM_WRITE(sidearms_bankswitch_w)
|
||||
AM_RANGE(0xc801, 0xc801) AM_READ_PORT("P1") AM_WRITE(bankswitch_w)
|
||||
AM_RANGE(0xc802, 0xc802) AM_READ_PORT("P2") AM_WRITE(watchdog_reset_w)
|
||||
AM_RANGE(0xc803, 0xc803) AM_READ_PORT("DSW0")
|
||||
AM_RANGE(0xc804, 0xc804) AM_READ_PORT("DSW1") AM_WRITE(sidearms_c804_w)
|
||||
AM_RANGE(0xc805, 0xc805) AM_READ_PORT("DSW2") AM_WRITE(sidearms_star_scrollx_w)
|
||||
AM_RANGE(0xc806, 0xc806) AM_WRITE(sidearms_star_scrolly_w)
|
||||
AM_RANGE(0xc804, 0xc804) AM_READ_PORT("DSW1") AM_WRITE(c804_w)
|
||||
AM_RANGE(0xc805, 0xc805) AM_READ_PORT("DSW2") AM_WRITE(star_scrollx_w)
|
||||
AM_RANGE(0xc806, 0xc806) AM_WRITE(star_scrolly_w)
|
||||
AM_RANGE(0xc808, 0xc809) AM_WRITEONLY AM_SHARE("bg_scrollx")
|
||||
AM_RANGE(0xc80a, 0xc80b) AM_WRITEONLY AM_SHARE("bg_scrolly")
|
||||
AM_RANGE(0xc80c, 0xc80c) AM_WRITE(sidearms_gfxctrl_w) /* background and sprite enable */
|
||||
AM_RANGE(0xd000, 0xd7ff) AM_RAM_WRITE(sidearms_videoram_w) AM_SHARE("videoram")
|
||||
AM_RANGE(0xd800, 0xdfff) AM_RAM_WRITE(sidearms_colorram_w) AM_SHARE("colorram")
|
||||
AM_RANGE(0xc80c, 0xc80c) AM_WRITE(gfxctrl_w) /* background and sprite enable */
|
||||
AM_RANGE(0xd000, 0xd7ff) AM_RAM_WRITE(videoram_w) AM_SHARE("videoram")
|
||||
AM_RANGE(0xd800, 0xdfff) AM_RAM_WRITE(colorram_w) AM_SHARE("colorram")
|
||||
AM_RANGE(0xe000, 0xefff) AM_RAM
|
||||
AM_RANGE(0xf000, 0xffff) AM_RAM AM_SHARE("spriteram")
|
||||
ADDRESS_MAP_END
|
||||
@ -95,16 +95,16 @@ static ADDRESS_MAP_START( turtship_map, AS_PROGRAM, 8, sidearms_state )
|
||||
AM_RANGE(0xe400, 0xe7ff) AM_RAM_DEVWRITE("palette", palette_device, write_ext) AM_SHARE("palette_ext")
|
||||
AM_RANGE(0xe800, 0xe807) AM_READ(turtship_ports_r)
|
||||
AM_RANGE(0xe800, 0xe800) AM_WRITE(soundlatch_byte_w)
|
||||
AM_RANGE(0xe801, 0xe801) AM_WRITE(sidearms_bankswitch_w)
|
||||
AM_RANGE(0xe801, 0xe801) AM_WRITE(bankswitch_w)
|
||||
AM_RANGE(0xe802, 0xe802) AM_WRITE(watchdog_reset_w)
|
||||
AM_RANGE(0xe804, 0xe804) AM_WRITE(sidearms_c804_w)
|
||||
AM_RANGE(0xe805, 0xe805) AM_WRITE(sidearms_star_scrollx_w)
|
||||
AM_RANGE(0xe806, 0xe806) AM_WRITE(sidearms_star_scrolly_w)
|
||||
AM_RANGE(0xe804, 0xe804) AM_WRITE(c804_w)
|
||||
AM_RANGE(0xe805, 0xe805) AM_WRITE(star_scrollx_w)
|
||||
AM_RANGE(0xe806, 0xe806) AM_WRITE(star_scrolly_w)
|
||||
AM_RANGE(0xe808, 0xe809) AM_WRITEONLY AM_SHARE("bg_scrollx")
|
||||
AM_RANGE(0xe80a, 0xe80b) AM_WRITEONLY AM_SHARE("bg_scrolly")
|
||||
AM_RANGE(0xe80c, 0xe80c) AM_WRITE(sidearms_gfxctrl_w) /* background and sprite enable */
|
||||
AM_RANGE(0xf000, 0xf7ff) AM_RAM_WRITE(sidearms_videoram_w) AM_SHARE("videoram")
|
||||
AM_RANGE(0xf800, 0xffff) AM_RAM_WRITE(sidearms_colorram_w) AM_SHARE("colorram")
|
||||
AM_RANGE(0xe80c, 0xe80c) AM_WRITE(gfxctrl_w) /* background and sprite enable */
|
||||
AM_RANGE(0xf000, 0xf7ff) AM_RAM_WRITE(videoram_w) AM_SHARE("videoram")
|
||||
AM_RANGE(0xf800, 0xffff) AM_RAM_WRITE(colorram_w) AM_SHARE("colorram")
|
||||
ADDRESS_MAP_END
|
||||
|
||||
static ADDRESS_MAP_START( sidearms_sound_map, AS_PROGRAM, 8, sidearms_state )
|
||||
@ -139,17 +139,17 @@ static ADDRESS_MAP_START( whizz_map, AS_PROGRAM, 8, sidearms_state )
|
||||
AM_RANGE(0xc801, 0xc801) AM_READ_PORT("DSW1") AM_WRITE(whizz_bankswitch_w)
|
||||
AM_RANGE(0xc802, 0xc802) AM_READ_PORT("DSW2") AM_WRITE(watchdog_reset_w)
|
||||
AM_RANGE(0xc803, 0xc803) AM_READ_PORT("IN0") AM_WRITENOP
|
||||
AM_RANGE(0xc804, 0xc804) AM_READ_PORT("IN1") AM_WRITE(sidearms_c804_w)
|
||||
AM_RANGE(0xc804, 0xc804) AM_READ_PORT("IN1") AM_WRITE(c804_w)
|
||||
AM_RANGE(0xc805, 0xc805) AM_READ_PORT("IN2") AM_WRITENOP
|
||||
AM_RANGE(0xc806, 0xc806) AM_READ_PORT("IN3")
|
||||
AM_RANGE(0xc807, 0xc807) AM_READ_PORT("IN4")
|
||||
AM_RANGE(0xc808, 0xc809) AM_WRITEONLY AM_SHARE("bg_scrollx")
|
||||
AM_RANGE(0xc80a, 0xc80b) AM_WRITEONLY AM_SHARE("bg_scrolly")
|
||||
AM_RANGE(0xe805, 0xe805) AM_WRITE(sidearms_star_scrollx_w)
|
||||
AM_RANGE(0xe806, 0xe806) AM_WRITE(sidearms_star_scrolly_w)
|
||||
AM_RANGE(0xc80c, 0xc80c) AM_WRITE(sidearms_gfxctrl_w)
|
||||
AM_RANGE(0xd000, 0xd7ff) AM_RAM_WRITE(sidearms_videoram_w) AM_SHARE("videoram")
|
||||
AM_RANGE(0xd800, 0xdfff) AM_RAM_WRITE(sidearms_colorram_w) AM_SHARE("colorram")
|
||||
AM_RANGE(0xe805, 0xe805) AM_WRITE(star_scrollx_w)
|
||||
AM_RANGE(0xe806, 0xe806) AM_WRITE(star_scrolly_w)
|
||||
AM_RANGE(0xc80c, 0xc80c) AM_WRITE(gfxctrl_w)
|
||||
AM_RANGE(0xd000, 0xd7ff) AM_RAM_WRITE(videoram_w) AM_SHARE("videoram")
|
||||
AM_RANGE(0xd800, 0xdfff) AM_RAM_WRITE(colorram_w) AM_SHARE("colorram")
|
||||
AM_RANGE(0xe000, 0xefff) AM_RAM
|
||||
AM_RANGE(0xf000, 0xffff) AM_RAM AM_SHARE("spriteram")
|
||||
ADDRESS_MAP_END
|
||||
@ -580,11 +580,6 @@ static GFXDECODE_START( turtship )
|
||||
GFXDECODE_ENTRY( "gfx3", 0, spritelayout, 512, 16 ) /* colors 512-767 */
|
||||
GFXDECODE_END
|
||||
|
||||
/* handler called by the 2203 emulator when the internal timers cause an IRQ */
|
||||
WRITE_LINE_MEMBER( sidearms_state::irqhandler )
|
||||
{
|
||||
m_audiocpu->set_input_line(0, state ? ASSERT_LINE : CLEAR_LINE);
|
||||
}
|
||||
|
||||
static MACHINE_CONFIG_START( sidearms, sidearms_state )
|
||||
|
||||
@ -604,7 +599,7 @@ static MACHINE_CONFIG_START( sidearms, sidearms_state )
|
||||
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */)
|
||||
MCFG_SCREEN_SIZE(64*8, 32*8)
|
||||
MCFG_SCREEN_VISIBLE_AREA(8*8, (64-8)*8-1, 2*8, 30*8-1 )
|
||||
MCFG_SCREEN_UPDATE_DRIVER(sidearms_state, screen_update_sidearms)
|
||||
MCFG_SCREEN_UPDATE_DRIVER(sidearms_state, screen_update)
|
||||
MCFG_SCREEN_VBLANK_DEVICE("spriteram", buffered_spriteram8_device, vblank_copy_rising)
|
||||
MCFG_SCREEN_PALETTE("palette")
|
||||
|
||||
@ -617,7 +612,7 @@ static MACHINE_CONFIG_START( sidearms, sidearms_state )
|
||||
MCFG_SPEAKER_STANDARD_MONO("mono")
|
||||
|
||||
MCFG_SOUND_ADD("ym1", YM2203, 4000000)
|
||||
MCFG_YM2203_IRQ_HANDLER(WRITELINE(sidearms_state, irqhandler))
|
||||
MCFG_YM2203_IRQ_HANDLER(INPUTLINE("audiocpu", 0))
|
||||
MCFG_SOUND_ROUTE(0, "mono", 0.15)
|
||||
MCFG_SOUND_ROUTE(1, "mono", 0.15)
|
||||
MCFG_SOUND_ROUTE(2, "mono", 0.15)
|
||||
@ -650,7 +645,7 @@ static MACHINE_CONFIG_START( turtship, sidearms_state )
|
||||
MCFG_SCREEN_SIZE(64*8, 32*8)
|
||||
MCFG_SCREEN_VISIBLE_AREA(8*8, (64-8)*8-1, 2*8, 30*8-1 )
|
||||
MCFG_SCREEN_VBLANK_DEVICE("spriteram", buffered_spriteram8_device, vblank_copy_rising)
|
||||
MCFG_SCREEN_UPDATE_DRIVER(sidearms_state, screen_update_sidearms)
|
||||
MCFG_SCREEN_UPDATE_DRIVER(sidearms_state, screen_update)
|
||||
MCFG_SCREEN_PALETTE("palette")
|
||||
|
||||
MCFG_GFXDECODE_ADD("gfxdecode", "palette", turtship)
|
||||
@ -662,7 +657,7 @@ static MACHINE_CONFIG_START( turtship, sidearms_state )
|
||||
MCFG_SPEAKER_STANDARD_MONO("mono")
|
||||
|
||||
MCFG_SOUND_ADD("ym1", YM2203, 4000000)
|
||||
MCFG_YM2203_IRQ_HANDLER(WRITELINE(sidearms_state, irqhandler))
|
||||
MCFG_YM2203_IRQ_HANDLER(INPUTLINE("audiocpu", 0))
|
||||
MCFG_SOUND_ROUTE(0, "mono", 0.15)
|
||||
MCFG_SOUND_ROUTE(1, "mono", 0.15)
|
||||
MCFG_SOUND_ROUTE(2, "mono", 0.15)
|
||||
@ -697,7 +692,7 @@ static MACHINE_CONFIG_START( whizz, sidearms_state )
|
||||
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */)
|
||||
MCFG_SCREEN_SIZE(64*8, 32*8)
|
||||
MCFG_SCREEN_VISIBLE_AREA(8*8, (64-8)*8-1, 2*8, 30*8-1 )
|
||||
MCFG_SCREEN_UPDATE_DRIVER(sidearms_state, screen_update_sidearms)
|
||||
MCFG_SCREEN_UPDATE_DRIVER(sidearms_state, screen_update)
|
||||
MCFG_SCREEN_VBLANK_DEVICE("spriteram", buffered_spriteram8_device, vblank_copy_rising)
|
||||
MCFG_SCREEN_PALETTE("palette")
|
||||
|
||||
@ -1148,17 +1143,17 @@ DRIVER_INIT_MEMBER(sidearms_state,whizz)
|
||||
|
||||
// date string is at 0xaa2 in 'rom 03' it does not appear to be displayed
|
||||
|
||||
GAME( 1986, sidearms, 0, sidearms, sidearms, sidearms_state, sidearms, ROT0, "Capcom", "Side Arms - Hyper Dyne (World, 861129)", GAME_IMPERFECT_GRAPHICS )
|
||||
GAME( 1986, sidearmsu, sidearms, sidearms, sidearms, sidearms_state, sidearms, ROT0, "Capcom (Romstar license)", "Side Arms - Hyper Dyne (US, 861202)", GAME_IMPERFECT_GRAPHICS )
|
||||
GAME( 1986, sidearmsur1,sidearms, sidearms, sidearms, sidearms_state, sidearms, ROT0, "Capcom (Romstar license)", "Side Arms - Hyper Dyne (US, 861128)", GAME_IMPERFECT_GRAPHICS )
|
||||
GAME( 1986, sidearmsj, sidearms, sidearms, sidearms, sidearms_state, sidearms, ROT0, "Capcom", "Side Arms - Hyper Dyne (Japan, 861128)", GAME_IMPERFECT_GRAPHICS )
|
||||
GAME( 1986, sidearms, 0, sidearms, sidearms, sidearms_state, sidearms, ROT0, "Capcom", "Side Arms - Hyper Dyne (World, 861129)", GAME_IMPERFECT_GRAPHICS | GAME_SUPPORTS_SAVE )
|
||||
GAME( 1986, sidearmsu, sidearms, sidearms, sidearms, sidearms_state, sidearms, ROT0, "Capcom (Romstar license)", "Side Arms - Hyper Dyne (US, 861202)", GAME_IMPERFECT_GRAPHICS | GAME_SUPPORTS_SAVE )
|
||||
GAME( 1986, sidearmsur1,sidearms, sidearms, sidearms, sidearms_state, sidearms, ROT0, "Capcom (Romstar license)", "Side Arms - Hyper Dyne (US, 861128)", GAME_IMPERFECT_GRAPHICS | GAME_SUPPORTS_SAVE )
|
||||
GAME( 1986, sidearmsj, sidearms, sidearms, sidearms, sidearms_state, sidearms, ROT0, "Capcom", "Side Arms - Hyper Dyne (Japan, 861128)", GAME_IMPERFECT_GRAPHICS | GAME_SUPPORTS_SAVE )
|
||||
|
||||
GAME( 1988, turtship, 0, turtship, turtship, sidearms_state, turtship, ROT0, "Philko (Sharp Image license)", "Turtle Ship (North America)", 0 )
|
||||
GAME( 1988, turtshipj,turtship, turtship, turtship, sidearms_state, turtship, ROT0, "Philko (Pacific Games license)", "Turtle Ship (Japan)", 0 )
|
||||
GAME( 1988, turtshipk,turtship, turtship, turtship, sidearms_state, turtship, ROT0, "Philko", "Turtle Ship (Korea)", 0 )
|
||||
GAME( 1988, turtship, 0, turtship, turtship, sidearms_state, turtship, ROT0, "Philko (Sharp Image license)", "Turtle Ship (North America)", GAME_SUPPORTS_SAVE )
|
||||
GAME( 1988, turtshipj,turtship, turtship, turtship, sidearms_state, turtship, ROT0, "Philko (Pacific Games license)", "Turtle Ship (Japan)", GAME_SUPPORTS_SAVE )
|
||||
GAME( 1988, turtshipk,turtship, turtship, turtship, sidearms_state, turtship, ROT0, "Philko", "Turtle Ship (Korea)", GAME_SUPPORTS_SAVE )
|
||||
|
||||
GAME( 1989, dyger, 0, turtship, dyger, sidearms_state, dyger, ROT270, "Philko", "Dyger (Korea set 1)", 0 )
|
||||
GAME( 1989, dygera, dyger, turtship, dyger, sidearms_state, dyger, ROT270, "Philko", "Dyger (Korea set 2)", 0 )
|
||||
GAME( 1989, dyger, 0, turtship, dyger, sidearms_state, dyger, ROT270, "Philko", "Dyger (Korea set 1)", GAME_SUPPORTS_SAVE )
|
||||
GAME( 1989, dygera, dyger, turtship, dyger, sidearms_state, dyger, ROT270, "Philko", "Dyger (Korea set 2)", GAME_SUPPORTS_SAVE )
|
||||
|
||||
GAME( 1989, twinfalc, 0, whizz, whizz, sidearms_state, whizz, ROT0, "Philko (Poara Enterprises license)", "Twin Falcons", 0 )
|
||||
GAME( 1989, whizz, twinfalc, whizz, whizz, sidearms_state, whizz, ROT0, "Philko", "Whizz", 0 )
|
||||
GAME( 1989, twinfalc, 0, whizz, whizz, sidearms_state, whizz, ROT0, "Philko (Poara Enterprises license)", "Twin Falcons", GAME_SUPPORTS_SAVE )
|
||||
GAME( 1989, whizz, twinfalc, whizz, whizz, sidearms_state, whizz, ROT0, "Philko", "Whizz", GAME_SUPPORTS_SAVE )
|
||||
|
@ -16,8 +16,6 @@ public:
|
||||
m_colorram(*this, "colorram"),
|
||||
m_ports(*this, ports) { }
|
||||
|
||||
int m_gameid;
|
||||
|
||||
required_device<cpu_device> m_maincpu;
|
||||
required_device<cpu_device> m_audiocpu;
|
||||
required_device<gfxdecode_device> m_gfxdecode;
|
||||
@ -32,6 +30,8 @@ public:
|
||||
DECLARE_IOPORT_ARRAY(ports);
|
||||
optional_ioport_array<5> m_ports;
|
||||
|
||||
int m_gameid;
|
||||
|
||||
UINT8 *m_tilerom;
|
||||
tilemap_t *m_bg_tilemap;
|
||||
tilemap_t *m_fg_tilemap;
|
||||
@ -47,28 +47,32 @@ public:
|
||||
UINT32 m_vcount_191;
|
||||
UINT32 m_latch_374;
|
||||
|
||||
DECLARE_WRITE8_MEMBER(sidearms_bankswitch_w);
|
||||
DECLARE_WRITE8_MEMBER(bankswitch_w);
|
||||
DECLARE_WRITE8_MEMBER(videoram_w);
|
||||
DECLARE_WRITE8_MEMBER(colorram_w);
|
||||
DECLARE_WRITE8_MEMBER(c804_w);
|
||||
DECLARE_WRITE8_MEMBER(gfxctrl_w);
|
||||
DECLARE_WRITE8_MEMBER(star_scrollx_w);
|
||||
DECLARE_WRITE8_MEMBER(star_scrolly_w);
|
||||
|
||||
DECLARE_READ8_MEMBER(turtship_ports_r);
|
||||
|
||||
DECLARE_WRITE8_MEMBER(whizz_bankswitch_w);
|
||||
DECLARE_WRITE8_MEMBER(sidearms_videoram_w);
|
||||
DECLARE_WRITE8_MEMBER(sidearms_colorram_w);
|
||||
DECLARE_WRITE8_MEMBER(sidearms_c804_w);
|
||||
DECLARE_WRITE8_MEMBER(sidearms_gfxctrl_w);
|
||||
DECLARE_WRITE8_MEMBER(sidearms_star_scrollx_w);
|
||||
DECLARE_WRITE8_MEMBER(sidearms_star_scrolly_w);
|
||||
|
||||
DECLARE_DRIVER_INIT(dyger);
|
||||
DECLARE_DRIVER_INIT(sidearms);
|
||||
DECLARE_DRIVER_INIT(whizz);
|
||||
DECLARE_DRIVER_INIT(turtship);
|
||||
virtual void machine_start();
|
||||
virtual void video_start();
|
||||
|
||||
TILE_GET_INFO_MEMBER(get_sidearms_bg_tile_info);
|
||||
TILE_GET_INFO_MEMBER(get_philko_bg_tile_info);
|
||||
TILE_GET_INFO_MEMBER(get_fg_tile_info);
|
||||
TILEMAP_MAPPER_MEMBER(sidearms_tilemap_scan);
|
||||
virtual void machine_start();
|
||||
virtual void video_start();
|
||||
UINT32 screen_update_sidearms(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
|
||||
DECLARE_WRITE_LINE_MEMBER(irqhandler);
|
||||
TILEMAP_MAPPER_MEMBER(tilemap_scan);
|
||||
|
||||
UINT32 screen_update(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
|
||||
void draw_sprites_region(bitmap_ind16 &bitmap, const rectangle &cliprect, int start_offset, int end_offset );
|
||||
void sidearms_draw_starfield( bitmap_ind16 &bitmap );
|
||||
void draw_starfield( bitmap_ind16 &bitmap );
|
||||
void draw_sprites(bitmap_ind16 &bitmap, const rectangle &cliprect);
|
||||
};
|
||||
|
@ -1,6 +1,6 @@
|
||||
/***************************************************************************
|
||||
|
||||
video.c
|
||||
sidearms.c
|
||||
|
||||
Functions to emulate the video hardware of the machine.
|
||||
|
||||
@ -9,19 +9,19 @@
|
||||
#include "emu.h"
|
||||
#include "includes/sidearms.h"
|
||||
|
||||
WRITE8_MEMBER(sidearms_state::sidearms_videoram_w)
|
||||
WRITE8_MEMBER(sidearms_state::videoram_w)
|
||||
{
|
||||
m_videoram[offset] = data;
|
||||
m_fg_tilemap->mark_tile_dirty(offset);
|
||||
}
|
||||
|
||||
WRITE8_MEMBER(sidearms_state::sidearms_colorram_w)
|
||||
WRITE8_MEMBER(sidearms_state::colorram_w)
|
||||
{
|
||||
m_colorram[offset] = data;
|
||||
m_fg_tilemap->mark_tile_dirty(offset);
|
||||
}
|
||||
|
||||
WRITE8_MEMBER(sidearms_state::sidearms_c804_w)
|
||||
WRITE8_MEMBER(sidearms_state::c804_w)
|
||||
{
|
||||
/* bits 0 and 1 are coin counters */
|
||||
coin_counter_w(machine(), 0, data & 0x01);
|
||||
@ -65,13 +65,13 @@ WRITE8_MEMBER(sidearms_state::sidearms_c804_w)
|
||||
}
|
||||
}
|
||||
|
||||
WRITE8_MEMBER(sidearms_state::sidearms_gfxctrl_w)
|
||||
WRITE8_MEMBER(sidearms_state::gfxctrl_w)
|
||||
{
|
||||
m_objon = data & 0x01;
|
||||
m_bgon = data & 0x02;
|
||||
}
|
||||
|
||||
WRITE8_MEMBER(sidearms_state::sidearms_star_scrollx_w)
|
||||
WRITE8_MEMBER(sidearms_state::star_scrollx_w)
|
||||
{
|
||||
UINT32 last_state = m_hcount_191;
|
||||
|
||||
@ -83,7 +83,7 @@ WRITE8_MEMBER(sidearms_state::sidearms_star_scrollx_w)
|
||||
m_hflop_74a_n ^= 1;
|
||||
}
|
||||
|
||||
WRITE8_MEMBER(sidearms_state::sidearms_star_scrolly_w)
|
||||
WRITE8_MEMBER(sidearms_state::star_scrolly_w)
|
||||
{
|
||||
m_vcount_191++;
|
||||
m_vcount_191 &= 0xff;
|
||||
@ -125,7 +125,7 @@ TILE_GET_INFO_MEMBER(sidearms_state::get_fg_tile_info)
|
||||
SET_TILE_INFO_MEMBER(0, code, color, 0);
|
||||
}
|
||||
|
||||
TILEMAP_MAPPER_MEMBER(sidearms_state::sidearms_tilemap_scan)
|
||||
TILEMAP_MAPPER_MEMBER(sidearms_state::tilemap_scan)
|
||||
{
|
||||
/* logical (col,row) -> memory offset */
|
||||
int offset = ((row << 7) + col) << 1;
|
||||
@ -140,14 +140,14 @@ void sidearms_state::video_start()
|
||||
|
||||
if (!m_gameid)
|
||||
{
|
||||
m_bg_tilemap = &machine().tilemap().create(m_gfxdecode, tilemap_get_info_delegate(FUNC(sidearms_state::get_sidearms_bg_tile_info),this), tilemap_mapper_delegate(FUNC(sidearms_state::sidearms_tilemap_scan),this),
|
||||
m_bg_tilemap = &machine().tilemap().create(m_gfxdecode, tilemap_get_info_delegate(FUNC(sidearms_state::get_sidearms_bg_tile_info),this), tilemap_mapper_delegate(FUNC(sidearms_state::tilemap_scan),this),
|
||||
32, 32, 128, 128);
|
||||
|
||||
m_bg_tilemap->set_transparent_pen(15);
|
||||
}
|
||||
else
|
||||
{
|
||||
m_bg_tilemap = &machine().tilemap().create(m_gfxdecode, tilemap_get_info_delegate(FUNC(sidearms_state::get_philko_bg_tile_info),this), tilemap_mapper_delegate(FUNC(sidearms_state::sidearms_tilemap_scan),this), 32, 32, 128, 128);
|
||||
m_bg_tilemap = &machine().tilemap().create(m_gfxdecode, tilemap_get_info_delegate(FUNC(sidearms_state::get_philko_bg_tile_info),this), tilemap_mapper_delegate(FUNC(sidearms_state::tilemap_scan),this), 32, 32, 128, 128);
|
||||
}
|
||||
|
||||
m_fg_tilemap = &machine().tilemap().create(m_gfxdecode, tilemap_get_info_delegate(FUNC(sidearms_state::get_fg_tile_info),this), TILEMAP_SCAN_ROWS,
|
||||
@ -159,6 +159,16 @@ void sidearms_state::video_start()
|
||||
m_latch_374 = m_vcount_191 = m_hcount_191 = 0;
|
||||
|
||||
m_flipon = m_charon = m_staron = m_objon = m_bgon = 0;
|
||||
|
||||
save_item(NAME(m_bgon));
|
||||
save_item(NAME(m_objon));
|
||||
save_item(NAME(m_staron));
|
||||
save_item(NAME(m_charon));
|
||||
save_item(NAME(m_flipon));
|
||||
save_item(NAME(m_hflop_74a_n));
|
||||
save_item(NAME(m_hcount_191));
|
||||
save_item(NAME(m_vcount_191));
|
||||
save_item(NAME(m_latch_374));
|
||||
}
|
||||
|
||||
void sidearms_state::draw_sprites_region(bitmap_ind16 &bitmap, const rectangle &cliprect, int start_offset, int end_offset )
|
||||
@ -193,7 +203,7 @@ void sidearms_state::draw_sprites_region(bitmap_ind16 &bitmap, const rectangle &
|
||||
}
|
||||
}
|
||||
|
||||
void sidearms_state::sidearms_draw_starfield( bitmap_ind16 &bitmap )
|
||||
void sidearms_state::draw_starfield( bitmap_ind16 &bitmap )
|
||||
{
|
||||
int x, y, i;
|
||||
UINT32 hadd_283, vadd_283, _hflop_74a_n, _hcount_191, _vcount_191;
|
||||
@ -329,9 +339,9 @@ void sidearms_state::draw_sprites(bitmap_ind16 &bitmap, const rectangle &cliprec
|
||||
}
|
||||
}
|
||||
|
||||
UINT32 sidearms_state::screen_update_sidearms(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
|
||||
UINT32 sidearms_state::screen_update(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
|
||||
{
|
||||
sidearms_draw_starfield(bitmap);
|
||||
draw_starfield(bitmap);
|
||||
|
||||
m_bg_tilemap->set_scrollx(0, m_bg_scrollx[0] + (m_bg_scrollx[1] << 8 & 0xf00));
|
||||
m_bg_tilemap->set_scrolly(0, m_bg_scrolly[0] + (m_bg_scrolly[1] << 8 & 0xf00));
|
||||
|
Loading…
Reference in New Issue
Block a user