summaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
author Ivan Vangelista <mesgnet@yahoo.it>2015-02-19 18:27:23 +0100
committer Ivan Vangelista <mesgnet@yahoo.it>2015-02-19 18:27:23 +0100
commit5757cf2ee70c80c0a62f214bbad8302cab7e3210 (patch)
treee25b01d523c274e3e78dc0c8eeca975363ae92a0
parente2f3d705d8bb58771f448302345bc8c36e038da1 (diff)
skyarmy.c, skydiver.c: added save state support (nw)
-rw-r--r--src/mame/audio/skydiver.c2
-rw-r--r--src/mame/drivers/skyarmy.c84
-rw-r--r--src/mame/drivers/skydiver.c48
-rw-r--r--src/mame/includes/skydiver.h52
-rw-r--r--src/mame/video/skydiver.c45
5 files changed, 126 insertions, 105 deletions
diff --git a/src/mame/audio/skydiver.c b/src/mame/audio/skydiver.c
index 6090095fcc6..a7d24349660 100644
--- a/src/mame/audio/skydiver.c
+++ b/src/mame/audio/skydiver.c
@@ -43,7 +43,7 @@ static const discrete_lfsr_desc skydiver_lfsr =
DISCRETE_SOUND_START(skydiver)
/************************************************/
- /* skydiver Effects Relataive Gain Table */
+ /* skydiver Effects Relative Gain Table */
/* */
/* Effect V-ampIn Gain ratio Relative */
/* Note 3.8 3.8/260.5 1000.0 */
diff --git a/src/mame/drivers/skyarmy.c b/src/mame/drivers/skyarmy.c
index c29b24848e1..1487a130244 100644
--- a/src/mame/drivers/skyarmy.c
+++ b/src/mame/drivers/skyarmy.c
@@ -34,46 +34,59 @@ class skyarmy_state : public driver_device
public:
skyarmy_state(const machine_config &mconfig, device_type type, const char *tag)
: driver_device(mconfig, type, tag),
+ m_maincpu(*this, "maincpu"),
+ m_gfxdecode(*this, "gfxdecode"),
+ m_palette(*this, "palette"),
m_videoram(*this, "videoram"),
m_colorram(*this, "colorram"),
m_spriteram(*this, "spriteram"),
- m_scrollram(*this, "scrollram"),
- m_maincpu(*this, "maincpu"),
- m_gfxdecode(*this, "gfxdecode"),
- m_palette(*this, "palette") { }
+ m_scrollram(*this, "scrollram") { }
+
+ required_device<cpu_device> m_maincpu;
+ required_device<gfxdecode_device> m_gfxdecode;
+ required_device<palette_device> m_palette;
required_shared_ptr<UINT8> m_videoram;
required_shared_ptr<UINT8> m_colorram;
required_shared_ptr<UINT8> m_spriteram;
required_shared_ptr<UINT8> m_scrollram;
+
tilemap_t* m_tilemap;
int m_nmi;
- DECLARE_WRITE8_MEMBER(skyarmy_flip_screen_x_w);
- DECLARE_WRITE8_MEMBER(skyarmy_flip_screen_y_w);
- DECLARE_WRITE8_MEMBER(skyarmy_videoram_w);
- DECLARE_WRITE8_MEMBER(skyarmy_colorram_w);
+
+ DECLARE_WRITE8_MEMBER(flip_screen_x_w);
+ DECLARE_WRITE8_MEMBER(flip_screen_y_w);
+ DECLARE_WRITE8_MEMBER(videoram_w);
+ DECLARE_WRITE8_MEMBER(colorram_w);
DECLARE_WRITE8_MEMBER(nmi_enable_w);
- TILE_GET_INFO_MEMBER(get_skyarmy_tile_info);
+
+ TILE_GET_INFO_MEMBER(get_tile_info);
+
+ virtual void machine_start();
virtual void video_start();
DECLARE_PALETTE_INIT(skyarmy);
- UINT32 screen_update_skyarmy(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
- INTERRUPT_GEN_MEMBER(skyarmy_nmi_source);
- required_device<cpu_device> m_maincpu;
- required_device<gfxdecode_device> m_gfxdecode;
- required_device<palette_device> m_palette;
+
+ UINT32 screen_update(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
+
+ INTERRUPT_GEN_MEMBER(nmi_source);
};
-WRITE8_MEMBER(skyarmy_state::skyarmy_flip_screen_x_w)
+void skyarmy_state::machine_start()
+{
+ save_item(NAME(m_nmi));
+}
+
+WRITE8_MEMBER(skyarmy_state::flip_screen_x_w)
{
flip_screen_x_set(data & 0x01);
}
-WRITE8_MEMBER(skyarmy_state::skyarmy_flip_screen_y_w)
+WRITE8_MEMBER(skyarmy_state::flip_screen_y_w)
{
flip_screen_y_set(data & 0x01);
}
-TILE_GET_INFO_MEMBER(skyarmy_state::get_skyarmy_tile_info)
+TILE_GET_INFO_MEMBER(skyarmy_state::get_tile_info)
{
int code = m_videoram[tile_index];
int attr = BITSWAP8(m_colorram[tile_index], 7, 6, 5, 4, 3, 0, 1, 2) & 7;
@@ -81,13 +94,13 @@ TILE_GET_INFO_MEMBER(skyarmy_state::get_skyarmy_tile_info)
SET_TILE_INFO_MEMBER(0, code, attr, 0);
}
-WRITE8_MEMBER(skyarmy_state::skyarmy_videoram_w)
+WRITE8_MEMBER(skyarmy_state::videoram_w)
{
m_videoram[offset] = data;
m_tilemap->mark_tile_dirty(offset);
}
-WRITE8_MEMBER(skyarmy_state::skyarmy_colorram_w)
+WRITE8_MEMBER(skyarmy_state::colorram_w)
{
m_colorram[offset] = data;
m_tilemap->mark_tile_dirty(offset);
@@ -124,14 +137,13 @@ PALETTE_INIT_MEMBER(skyarmy_state, skyarmy)
void skyarmy_state::video_start()
{
- m_tilemap = &machine().tilemap().create(m_gfxdecode, tilemap_get_info_delegate(FUNC(skyarmy_state::get_skyarmy_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
+ m_tilemap = &machine().tilemap().create(m_gfxdecode, tilemap_get_info_delegate(FUNC(skyarmy_state::get_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
m_tilemap->set_scroll_cols(32);
}
-UINT32 skyarmy_state::screen_update_skyarmy(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
+UINT32 skyarmy_state::screen_update(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- UINT8 *spriteram = m_spriteram;
int sx, sy, flipx, flipy, offs,pal;
int i;
@@ -142,15 +154,15 @@ UINT32 skyarmy_state::screen_update_skyarmy(screen_device &screen, bitmap_ind16
for (offs = 0 ; offs < 0x40; offs+=4)
{
- pal = BITSWAP8(spriteram[offs+2], 7, 6, 5, 4, 3, 0, 1, 2) & 7;
+ pal = BITSWAP8(m_spriteram[offs+2], 7, 6, 5, 4, 3, 0, 1, 2) & 7;
- sx = spriteram[offs+3];
- sy = 240-(spriteram[offs]+1);
- flipy = (spriteram[offs+1]&0x80)>>7;
- flipx = (spriteram[offs+1]&0x40)>>6;
+ sx = m_spriteram[offs+3];
+ sy = 240-(m_spriteram[offs]+1);
+ flipy = (m_spriteram[offs+1]&0x80)>>7;
+ flipx = (m_spriteram[offs+1]&0x40)>>6;
m_gfxdecode->gfx(1)->transpen(bitmap,cliprect,
- spriteram[offs+1]&0x3f,
+ m_spriteram[offs+1]&0x3f,
pal,
flipx,flipy,
sx,sy,0);
@@ -159,7 +171,7 @@ UINT32 skyarmy_state::screen_update_skyarmy(screen_device &screen, bitmap_ind16
return 0;
}
-INTERRUPT_GEN_MEMBER(skyarmy_state::skyarmy_nmi_source)
+INTERRUPT_GEN_MEMBER(skyarmy_state::nmi_source)
{
if(m_nmi) device.execute().set_input_line(INPUT_LINE_NMI, PULSE_LINE);
}
@@ -174,8 +186,8 @@ WRITE8_MEMBER(skyarmy_state::nmi_enable_w)
static ADDRESS_MAP_START( skyarmy_map, AS_PROGRAM, 8, skyarmy_state )
AM_RANGE(0x0000, 0x7fff) AM_ROM
AM_RANGE(0x8000, 0x87ff) AM_RAM
- AM_RANGE(0x8800, 0x8fff) AM_RAM_WRITE(skyarmy_videoram_w) AM_SHARE("videoram") /* Video RAM */
- AM_RANGE(0x9000, 0x93ff) AM_RAM_WRITE(skyarmy_colorram_w) AM_SHARE("colorram") /* Color RAM */
+ AM_RANGE(0x8800, 0x8fff) AM_RAM_WRITE(videoram_w) AM_SHARE("videoram") /* Video RAM */
+ AM_RANGE(0x9000, 0x93ff) AM_RAM_WRITE(colorram_w) AM_SHARE("colorram") /* Color RAM */
AM_RANGE(0x9800, 0x983f) AM_RAM AM_SHARE("spriteram") /* Sprites */
AM_RANGE(0x9840, 0x985f) AM_RAM AM_SHARE("scrollram") /* Scroll RAM */
AM_RANGE(0xa000, 0xa000) AM_READ_PORT("DSW")
@@ -183,8 +195,8 @@ static ADDRESS_MAP_START( skyarmy_map, AS_PROGRAM, 8, skyarmy_state )
AM_RANGE(0xa002, 0xa002) AM_READ_PORT("P2")
AM_RANGE(0xa003, 0xa003) AM_READ_PORT("SYSTEM")
AM_RANGE(0xa004, 0xa004) AM_WRITE(nmi_enable_w) // ???
- AM_RANGE(0xa005, 0xa005) AM_WRITE(skyarmy_flip_screen_x_w)
- AM_RANGE(0xa006, 0xa006) AM_WRITE(skyarmy_flip_screen_y_w)
+ AM_RANGE(0xa005, 0xa005) AM_WRITE(flip_screen_x_w)
+ AM_RANGE(0xa006, 0xa006) AM_WRITE(flip_screen_y_w)
AM_RANGE(0xa007, 0xa007) AM_WRITENOP
ADDRESS_MAP_END
@@ -286,7 +298,7 @@ static MACHINE_CONFIG_START( skyarmy, skyarmy_state )
MCFG_CPU_PROGRAM_MAP(skyarmy_map)
MCFG_CPU_IO_MAP(skyarmy_io_map)
MCFG_CPU_VBLANK_INT_DRIVER("screen", skyarmy_state, irq0_line_hold)
- MCFG_CPU_PERIODIC_INT_DRIVER(skyarmy_state, skyarmy_nmi_source, 650) /* Hz */
+ MCFG_CPU_PERIODIC_INT_DRIVER(skyarmy_state, nmi_source, 650) /* Hz */
/* video hardware */
MCFG_SCREEN_ADD("screen", RASTER)
@@ -294,7 +306,7 @@ static MACHINE_CONFIG_START( skyarmy, skyarmy_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,1*8,31*8-1)
- MCFG_SCREEN_UPDATE_DRIVER(skyarmy_state, screen_update_skyarmy)
+ MCFG_SCREEN_UPDATE_DRIVER(skyarmy_state, screen_update)
MCFG_SCREEN_PALETTE("palette")
MCFG_GFXDECODE_ADD("gfxdecode", "palette", skyarmy)
@@ -327,4 +339,4 @@ ROM_START( skyarmy )
ROM_LOAD( "a6.bin", 0x0000, 0x0020, CRC(c721220b) SHA1(61b3320fb616c0600d56840cb6438616c7e0c6eb) )
ROM_END
-GAME( 1982, skyarmy, 0, skyarmy, skyarmy, driver_device, 0, ROT90, "Shoei", "Sky Army", GAME_NO_COCKTAIL )
+GAME( 1982, skyarmy, 0, skyarmy, skyarmy, driver_device, 0, ROT90, "Shoei", "Sky Army", GAME_NO_COCKTAIL | GAME_SUPPORTS_SAVE )
diff --git a/src/mame/drivers/skydiver.c b/src/mame/drivers/skydiver.c
index ff8cf4fd74c..daecc753651 100644
--- a/src/mame/drivers/skydiver.c
+++ b/src/mame/drivers/skydiver.c
@@ -11,7 +11,7 @@
* There is a problem with coin input not starting when in demo mode.
* The NMI interrupt needs to be more accurate, to do 32V, adjusted
to VBLANK. This also affects sound.
- * The cuurent value of 5 interrupts per frame, works pretty good,
+ * The current value of 5 interrupts per frame, works pretty good,
but is not 100% accurate timing wise.
****************************************************************************
@@ -139,13 +139,13 @@ PALETTE_INIT_MEMBER(skydiver_state, skydiver)
*
*************************************/
-WRITE8_MEMBER(skydiver_state::skydiver_nmion_w)
+WRITE8_MEMBER(skydiver_state::nmion_w)
{
m_nmion = offset;
}
-INTERRUPT_GEN_MEMBER(skydiver_state::skydiver_interrupt)
+INTERRUPT_GEN_MEMBER(skydiver_state::interrupt)
{
/* Convert range data to divide value and write to sound */
address_space &space = m_maincpu->space(AS_PROGRAM);
@@ -167,12 +167,12 @@ INTERRUPT_GEN_MEMBER(skydiver_state::skydiver_interrupt)
*
*************************************/
-WRITE8_MEMBER(skydiver_state::skydiver_sound_enable_w)
+WRITE8_MEMBER(skydiver_state::sound_enable_w)
{
m_discrete->write(space, SKYDIVER_SOUND_EN, offset);
}
-WRITE8_MEMBER(skydiver_state::skydiver_whistle_w)
+WRITE8_MEMBER(skydiver_state::whistle_w)
{
m_discrete->write(space, NODE_RELATIVE(SKYDIVER_WHISTLE1_EN, (offset >> 1)), offset & 0x01);
}
@@ -187,22 +187,22 @@ WRITE8_MEMBER(skydiver_state::skydiver_whistle_w)
static ADDRESS_MAP_START( skydiver_map, AS_PROGRAM, 8, skydiver_state )
ADDRESS_MAP_GLOBAL_MASK(0x7fff)
- AM_RANGE(0x0000, 0x007f) AM_MIRROR(0x4300) AM_READWRITE(skydiver_wram_r, skydiver_wram_w)
+ AM_RANGE(0x0000, 0x007f) AM_MIRROR(0x4300) AM_READWRITE(wram_r, wram_w)
AM_RANGE(0x0080, 0x00ff) AM_MIRROR(0x4000) AM_RAM /* RAM B1 */
- AM_RANGE(0x0400, 0x07ff) AM_MIRROR(0x4000) AM_RAM_WRITE(skydiver_videoram_w) AM_SHARE("videoram") /* RAMs K1,M1,P1,J1,N1,K/L1,L1,H/J1 */
- AM_RANGE(0x0800, 0x0801) AM_MIRROR(0x47f0) AM_WRITE(skydiver_lamp_s_w)
- AM_RANGE(0x0802, 0x0803) AM_MIRROR(0x47f0) AM_WRITE(skydiver_lamp_k_w)
- AM_RANGE(0x0804, 0x0805) AM_MIRROR(0x47f0) AM_WRITE(skydiver_start_lamp_1_w)
- AM_RANGE(0x0806, 0x0807) AM_MIRROR(0x47f0) AM_WRITE(skydiver_start_lamp_2_w)
- AM_RANGE(0x0808, 0x0809) AM_MIRROR(0x47f0) AM_WRITE(skydiver_lamp_y_w)
- AM_RANGE(0x080a, 0x080b) AM_MIRROR(0x47f0) AM_WRITE(skydiver_lamp_d_w)
- AM_RANGE(0x080c, 0x080d) AM_MIRROR(0x47f0) AM_WRITE(skydiver_sound_enable_w)
- // AM_RANGE(0x1000, 0x1001) AM_MIRROR(0x47f0) AM_WRITE(skydiver_jump1_lamps_w)
- AM_RANGE(0x1002, 0x1003) AM_MIRROR(0x47f0) AM_WRITE(skydiver_coin_lockout_w)
- // AM_RANGE(0x1006, 0x1007) AM_MIRROR(0x47f0) AM_WRITE(skydiver_jump2_lamps_w)
- AM_RANGE(0x1008, 0x100b) AM_MIRROR(0x47f0) AM_WRITE(skydiver_whistle_w)
- AM_RANGE(0x100c, 0x100d) AM_MIRROR(0x47f0) AM_WRITE(skydiver_nmion_w)
- AM_RANGE(0x100e, 0x100f) AM_MIRROR(0x47f0) AM_WRITE(skydiver_width_w)
+ AM_RANGE(0x0400, 0x07ff) AM_MIRROR(0x4000) AM_RAM_WRITE(videoram_w) AM_SHARE("videoram") /* RAMs K1,M1,P1,J1,N1,K/L1,L1,H/J1 */
+ AM_RANGE(0x0800, 0x0801) AM_MIRROR(0x47f0) AM_WRITE(lamp_s_w)
+ AM_RANGE(0x0802, 0x0803) AM_MIRROR(0x47f0) AM_WRITE(lamp_k_w)
+ AM_RANGE(0x0804, 0x0805) AM_MIRROR(0x47f0) AM_WRITE(start_lamp_1_w)
+ AM_RANGE(0x0806, 0x0807) AM_MIRROR(0x47f0) AM_WRITE(start_lamp_2_w)
+ AM_RANGE(0x0808, 0x0809) AM_MIRROR(0x47f0) AM_WRITE(lamp_y_w)
+ AM_RANGE(0x080a, 0x080b) AM_MIRROR(0x47f0) AM_WRITE(lamp_d_w)
+ AM_RANGE(0x080c, 0x080d) AM_MIRROR(0x47f0) AM_WRITE(sound_enable_w)
+ // AM_RANGE(0x1000, 0x1001) AM_MIRROR(0x47f0) AM_WRITE(jump1_lamps_w)
+ AM_RANGE(0x1002, 0x1003) AM_MIRROR(0x47f0) AM_WRITE(coin_lockout_w)
+ // AM_RANGE(0x1006, 0x1007) AM_MIRROR(0x47f0) AM_WRITE(jump2_lamps_w)
+ AM_RANGE(0x1008, 0x100b) AM_MIRROR(0x47f0) AM_WRITE(whistle_w)
+ AM_RANGE(0x100c, 0x100d) AM_MIRROR(0x47f0) AM_WRITE(nmion_w)
+ AM_RANGE(0x100e, 0x100f) AM_MIRROR(0x47f0) AM_WRITE(width_w)
AM_RANGE(0x1800, 0x1800) AM_MIRROR(0x47e0) AM_READ_PORT("IN0")
AM_RANGE(0x1801, 0x1801) AM_MIRROR(0x47e0) AM_READ_PORT("IN1")
AM_RANGE(0x1802, 0x1802) AM_MIRROR(0x47e0) AM_READ_PORT("IN2")
@@ -217,7 +217,7 @@ static ADDRESS_MAP_START( skydiver_map, AS_PROGRAM, 8, skydiver_state )
AM_RANGE(0x180b, 0x180b) AM_MIRROR(0x47e4) AM_READ_PORT("IN11")
AM_RANGE(0x1810, 0x1810) AM_MIRROR(0x47e4) AM_READ_PORT("IN12")
AM_RANGE(0x1811, 0x1811) AM_MIRROR(0x47e4) AM_READ_PORT("IN13")
- AM_RANGE(0x2000, 0x201f) AM_MIRROR(0x47e0) AM_READ(watchdog_reset_r) AM_WRITE(skydiver_2000_201F_w)
+ AM_RANGE(0x2000, 0x201f) AM_MIRROR(0x47e0) AM_READ(watchdog_reset_r) AM_WRITE(_2000_201F_w)
AM_RANGE(0x2800, 0x2fff) AM_MIRROR(0x4000) AM_ROM
AM_RANGE(0x3000, 0x37ff) AM_MIRROR(0x4000) AM_ROM
AM_RANGE(0x3800, 0x3fff) AM_ROM
@@ -375,7 +375,7 @@ static MACHINE_CONFIG_START( skydiver, skydiver_state )
/* basic machine hardware */
MCFG_CPU_ADD("maincpu", M6800,MASTER_CLOCK/16) /* ???? */
MCFG_CPU_PROGRAM_MAP(skydiver_map)
- MCFG_CPU_PERIODIC_INT_DRIVER(skydiver_state, skydiver_interrupt, 5*60)
+ MCFG_CPU_PERIODIC_INT_DRIVER(skydiver_state, interrupt, 5*60)
MCFG_WATCHDOG_VBLANK_INIT(8) // 128V clocks the same as VBLANK
@@ -385,7 +385,7 @@ static MACHINE_CONFIG_START( skydiver, skydiver_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */)
MCFG_SCREEN_SIZE(32*8, 32*8)
MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 0*8, 28*8-1)
- MCFG_SCREEN_UPDATE_DRIVER(skydiver_state, screen_update_skydiver)
+ MCFG_SCREEN_UPDATE_DRIVER(skydiver_state, screen_update)
MCFG_SCREEN_PALETTE("palette")
MCFG_GFXDECODE_ADD("gfxdecode", "palette", skydiver)
@@ -432,4 +432,4 @@ ROM_END
*
*************************************/
-GAMEL(1978, skydiver, 0, skydiver, skydiver, driver_device, 0, ROT0, "Atari", "Sky Diver", 0, layout_skydiver )
+GAMEL(1978, skydiver, 0, skydiver, skydiver, driver_device, 0, ROT0, "Atari", "Sky Diver", GAME_SUPPORTS_SAVE, layout_skydiver )
diff --git a/src/mame/includes/skydiver.h b/src/mame/includes/skydiver.h
index d706c078e80..d7a446e32ea 100644
--- a/src/mame/includes/skydiver.h
+++ b/src/mame/includes/skydiver.h
@@ -24,43 +24,49 @@ class skydiver_state : public driver_device
public:
skydiver_state(const machine_config &mconfig, device_type type, const char *tag)
: driver_device(mconfig, type, tag),
- m_videoram(*this, "videoram") ,
m_maincpu(*this, "maincpu"),
m_discrete(*this, "discrete"),
m_gfxdecode(*this, "gfxdecode"),
- m_palette(*this, "palette") { }
+ m_palette(*this, "palette"),
+ m_videoram(*this, "videoram") { }
+
+ required_device<cpu_device> m_maincpu;
+ required_device<discrete_device> m_discrete;
+ required_device<gfxdecode_device> m_gfxdecode;
+ required_device<palette_device> m_palette;
required_shared_ptr<UINT8> m_videoram;
+
int m_nmion;
tilemap_t *m_bg_tilemap;
int m_width;
- DECLARE_WRITE8_MEMBER(skydiver_nmion_w);
- DECLARE_WRITE8_MEMBER(skydiver_videoram_w);
- DECLARE_READ8_MEMBER(skydiver_wram_r);
- DECLARE_WRITE8_MEMBER(skydiver_wram_w);
- DECLARE_WRITE8_MEMBER(skydiver_width_w);
- DECLARE_WRITE8_MEMBER(skydiver_coin_lockout_w);
- DECLARE_WRITE8_MEMBER(skydiver_start_lamp_1_w);
- DECLARE_WRITE8_MEMBER(skydiver_start_lamp_2_w);
- DECLARE_WRITE8_MEMBER(skydiver_lamp_s_w);
- DECLARE_WRITE8_MEMBER(skydiver_lamp_k_w);
- DECLARE_WRITE8_MEMBER(skydiver_lamp_y_w);
- DECLARE_WRITE8_MEMBER(skydiver_lamp_d_w);
- DECLARE_WRITE8_MEMBER(skydiver_2000_201F_w);
- DECLARE_WRITE8_MEMBER(skydiver_sound_enable_w);
- DECLARE_WRITE8_MEMBER(skydiver_whistle_w);
+ DECLARE_WRITE8_MEMBER(nmion_w);
+ DECLARE_WRITE8_MEMBER(videoram_w);
+ DECLARE_READ8_MEMBER(wram_r);
+ DECLARE_WRITE8_MEMBER(wram_w);
+ DECLARE_WRITE8_MEMBER(width_w);
+ DECLARE_WRITE8_MEMBER(coin_lockout_w);
+ DECLARE_WRITE8_MEMBER(start_lamp_1_w);
+ DECLARE_WRITE8_MEMBER(start_lamp_2_w);
+ DECLARE_WRITE8_MEMBER(lamp_s_w);
+ DECLARE_WRITE8_MEMBER(lamp_k_w);
+ DECLARE_WRITE8_MEMBER(lamp_y_w);
+ DECLARE_WRITE8_MEMBER(lamp_d_w);
+ DECLARE_WRITE8_MEMBER(_2000_201F_w);
+ DECLARE_WRITE8_MEMBER(sound_enable_w);
+ DECLARE_WRITE8_MEMBER(whistle_w);
+
TILE_GET_INFO_MEMBER(get_tile_info);
+
virtual void machine_reset();
virtual void video_start();
DECLARE_PALETTE_INIT(skydiver);
- UINT32 screen_update_skydiver(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
- INTERRUPT_GEN_MEMBER(skydiver_interrupt);
+
+ UINT32 screen_update(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
void draw_sprites(bitmap_ind16 &bitmap, const rectangle &cliprect);
- required_device<cpu_device> m_maincpu;
- required_device<discrete_device> m_discrete;
- required_device<gfxdecode_device> m_gfxdecode;
- required_device<palette_device> m_palette;
+
+ INTERRUPT_GEN_MEMBER(interrupt);
};
/*----------- defined in audio/skydiver.c -----------*/
diff --git a/src/mame/video/skydiver.c b/src/mame/video/skydiver.c
index 255a7d0eabb..4ce15fb6d40 100644
--- a/src/mame/video/skydiver.c
+++ b/src/mame/video/skydiver.c
@@ -14,18 +14,18 @@ void skydiver_state::machine_reset()
address_space &space = m_maincpu->space(AS_PROGRAM);
/* reset all latches */
- skydiver_start_lamp_1_w(space, 0, 0);
- skydiver_start_lamp_2_w(space, 0, 0);
- skydiver_lamp_s_w(space, 0, 0);
- skydiver_lamp_k_w(space, 0, 0);
- skydiver_lamp_y_w(space, 0, 0);
- skydiver_lamp_d_w(space, 0, 0);
+ start_lamp_1_w(space, 0, 0);
+ start_lamp_2_w(space, 0, 0);
+ lamp_s_w(space, 0, 0);
+ lamp_k_w(space, 0, 0);
+ lamp_y_w(space, 0, 0);
+ lamp_d_w(space, 0, 0);
output_set_value("lampi", 0);
output_set_value("lampv", 0);
output_set_value("lampe", 0);
output_set_value("lampr", 0);
- skydiver_width_w(space, 0, 0);
- skydiver_coin_lockout_w(space, 0, 0);
+ width_w(space, 0, 0);
+ coin_lockout_w(space, 0, 0);
}
@@ -52,6 +52,9 @@ TILE_GET_INFO_MEMBER(skydiver_state::get_tile_info)
void skydiver_state::video_start()
{
m_bg_tilemap = &machine().tilemap().create(m_gfxdecode, tilemap_get_info_delegate(FUNC(skydiver_state::get_tile_info),this),TILEMAP_SCAN_ROWS,8,8,32,32);
+
+ save_item(NAME(m_nmion));
+ save_item(NAME(m_width));
}
@@ -61,68 +64,68 @@ void skydiver_state::video_start()
*
*************************************/
-WRITE8_MEMBER(skydiver_state::skydiver_videoram_w)
+WRITE8_MEMBER(skydiver_state::videoram_w)
{
m_videoram[offset] = data;
m_bg_tilemap->mark_tile_dirty(offset);
}
-READ8_MEMBER(skydiver_state::skydiver_wram_r)
+READ8_MEMBER(skydiver_state::wram_r)
{
return m_videoram[offset | 0x380];
}
-WRITE8_MEMBER(skydiver_state::skydiver_wram_w)
+WRITE8_MEMBER(skydiver_state::wram_w)
{
m_videoram[offset | 0x0380] = data;
}
-WRITE8_MEMBER(skydiver_state::skydiver_width_w)
+WRITE8_MEMBER(skydiver_state::width_w)
{
m_width = offset;
}
-WRITE8_MEMBER(skydiver_state::skydiver_coin_lockout_w)
+WRITE8_MEMBER(skydiver_state::coin_lockout_w)
{
coin_lockout_global_w(machine(), !offset);
}
-WRITE8_MEMBER(skydiver_state::skydiver_start_lamp_1_w)
+WRITE8_MEMBER(skydiver_state::start_lamp_1_w)
{
set_led_status(machine(), 0, offset);
}
-WRITE8_MEMBER(skydiver_state::skydiver_start_lamp_2_w)
+WRITE8_MEMBER(skydiver_state::start_lamp_2_w)
{
set_led_status(machine(), 1, offset);
}
-WRITE8_MEMBER(skydiver_state::skydiver_lamp_s_w)
+WRITE8_MEMBER(skydiver_state::lamp_s_w)
{
output_set_value("lamps", offset);
}
-WRITE8_MEMBER(skydiver_state::skydiver_lamp_k_w)
+WRITE8_MEMBER(skydiver_state::lamp_k_w)
{
output_set_value("lampk", offset);
}
-WRITE8_MEMBER(skydiver_state::skydiver_lamp_y_w)
+WRITE8_MEMBER(skydiver_state::lamp_y_w)
{
output_set_value("lampy", offset);
}
-WRITE8_MEMBER(skydiver_state::skydiver_lamp_d_w)
+WRITE8_MEMBER(skydiver_state::lamp_d_w)
{
output_set_value("lampd", offset);
}
-WRITE8_MEMBER(skydiver_state::skydiver_2000_201F_w)
+WRITE8_MEMBER(skydiver_state::_2000_201F_w)
{
int bit = offset & 0x01;
@@ -198,7 +201,7 @@ void skydiver_state::draw_sprites(bitmap_ind16 &bitmap, const rectangle &cliprec
}
-UINT32 skydiver_state::screen_update_skydiver(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
+UINT32 skydiver_state::screen_update(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
m_bg_tilemap->draw(screen, bitmap, cliprect, 0,0);