summaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
author Ivan Vangelista <mesgnet@yahoo.it>2015-01-31 11:35:27 +0100
committer Ivan Vangelista <mesgnet@yahoo.it>2015-01-31 11:35:27 +0100
commita5f4f5cfb95a630d4a38ce341bf128f4ac0aeaca (patch)
treed303e743671a1bd588200166e5472c9ea5a66e78
parentc0c92d60b5170dd51c631185ad05d22eb37283ad (diff)
rollrace.c: added save state support, removed unneeded prefixes (nw)
-rw-r--r--src/mame/drivers/rollrace.c44
-rw-r--r--src/mame/includes/rollrace.h58
-rw-r--r--src/mame/video/rollrace.c66
3 files changed, 95 insertions, 73 deletions
diff --git a/src/mame/drivers/rollrace.c b/src/mame/drivers/rollrace.c
index cfe746e0ef2..e2601bd5a56 100644
--- a/src/mame/drivers/rollrace.c
+++ b/src/mame/drivers/rollrace.c
@@ -12,12 +12,28 @@ Issues:
#include "sound/ay8910.h"
#include "includes/rollrace.h"
-READ8_MEMBER(rollrace_state::ra_fake_d800_r)
+
+void rollrace_state::machine_start()
+{
+ save_item(NAME(m_charbank));
+ save_item(NAME(m_bkgpage));
+ save_item(NAME(m_bkgflip));
+ save_item(NAME(m_chrbank));
+ save_item(NAME(m_bkgpen));
+ save_item(NAME(m_bkgcol));
+ save_item(NAME(m_flipy));
+ save_item(NAME(m_flipx));
+ save_item(NAME(m_spritebank));
+ save_item(NAME(m_nmi_mask));
+ save_item(NAME(m_sound_nmi_mask));
+}
+
+READ8_MEMBER(rollrace_state::fake_d800_r)
{
return 0x51;
}
-WRITE8_MEMBER(rollrace_state::ra_fake_d800_w)
+WRITE8_MEMBER(rollrace_state::fake_d800_w)
{
/* logerror("d900: %02X\n",data);*/
}
@@ -38,24 +54,24 @@ static ADDRESS_MAP_START( rollrace_map, AS_PROGRAM, 8, rollrace_state )
AM_RANGE(0x8000, 0x9fff) AM_ROM /* only rollace2 */
AM_RANGE(0xc000, 0xcfff) AM_RAM
AM_RANGE(0xd806, 0xd806) AM_READNOP /* looks like a watchdog, bit4 checked*/
- AM_RANGE(0xd900, 0xd900) AM_READWRITE(ra_fake_d800_r,ra_fake_d800_w) /* protection ??*/
+ AM_RANGE(0xd900, 0xd900) AM_READWRITE(fake_d800_r,fake_d800_w) /* protection ??*/
AM_RANGE(0xe000, 0xe3ff) AM_RAM AM_SHARE("videoram")
AM_RANGE(0xe400, 0xe47f) AM_RAM AM_SHARE("colorram")
AM_RANGE(0xe800, 0xe800) AM_WRITE(soundlatch_byte_w)
AM_RANGE(0xec00, 0xec0f) AM_NOP /* Analog sound effects ?? ec00 sound enable ?*/
AM_RANGE(0xf000, 0xf0ff) AM_RAM AM_SHARE("spriteram")
- AM_RANGE(0xf400, 0xf400) AM_WRITE(rollrace_backgroundcolor_w)
+ AM_RANGE(0xf400, 0xf400) AM_WRITE(backgroundcolor_w)
AM_RANGE(0xf800, 0xf800) AM_READ_PORT("P1")
- AM_RANGE(0xf801, 0xf801) AM_READ_PORT("P2") AM_WRITE(rollrace_bkgpen_w)
- AM_RANGE(0xf802, 0xf802) AM_READ_PORT("SYSTEM") AM_WRITE(rollrace_backgroundpage_w)
- AM_RANGE(0xf803, 0xf803) AM_WRITE(rollrace_flipy_w)
+ AM_RANGE(0xf801, 0xf801) AM_READ_PORT("P2") AM_WRITE(bkgpen_w)
+ AM_RANGE(0xf802, 0xf802) AM_READ_PORT("SYSTEM") AM_WRITE(backgroundpage_w)
+ AM_RANGE(0xf803, 0xf803) AM_WRITE(flipy_w)
AM_RANGE(0xf804, 0xf804) AM_READ_PORT("DSW1")
AM_RANGE(0xf805, 0xf805) AM_READ_PORT("DSW2")
- AM_RANGE(0xfc00, 0xfc00) AM_WRITE(rollrace_flipx_w)
+ AM_RANGE(0xfc00, 0xfc00) AM_WRITE(flipx_w)
AM_RANGE(0xfc01, 0xfc01) AM_WRITE(nmi_mask_w)
AM_RANGE(0xfc02, 0xfc03) AM_WRITENOP /* coin counters */
- AM_RANGE(0xfc04, 0xfc05) AM_WRITE(rollrace_charbank_w)
- AM_RANGE(0xfc06, 0xfc06) AM_WRITE(rollrace_spritebank_w)
+ AM_RANGE(0xfc04, 0xfc05) AM_WRITE(charbank_w)
+ AM_RANGE(0xfc06, 0xfc06) AM_WRITE(spritebank_w)
ADDRESS_MAP_END
@@ -235,7 +251,7 @@ static MACHINE_CONFIG_START( rollrace, rollrace_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */)
MCFG_SCREEN_SIZE(256, 256)
MCFG_SCREEN_VISIBLE_AREA(16,255,16, 255-16)
- MCFG_SCREEN_UPDATE_DRIVER(rollrace_state, screen_update_rollrace)
+ MCFG_SCREEN_UPDATE_DRIVER(rollrace_state, screen_update)
MCFG_SCREEN_PALETTE("palette")
MCFG_GFXDECODE_ADD("gfxdecode", "palette", rollrace)
@@ -413,6 +429,6 @@ ROM_START( rollace2 )
ROM_END
-GAME( 1983, fightrol, 0, rollrace, rollrace, driver_device, 0, ROT270, "Kaneko (Taito license)", "Fighting Roller", GAME_IMPERFECT_SOUND )
-GAME( 1983, rollace, fightrol, rollrace, rollrace, driver_device, 0, ROT270, "Kaneko (Williams license)", "Roller Aces (set 1)", GAME_IMPERFECT_SOUND )
-GAME( 1983, rollace2, fightrol, rollace2, rollrace, driver_device, 0, ROT90, "Kaneko (Williams license)", "Roller Aces (set 2)", GAME_IMPERFECT_SOUND )
+GAME( 1983, fightrol, 0, rollrace, rollrace, driver_device, 0, ROT270, "Kaneko (Taito license)", "Fighting Roller", GAME_IMPERFECT_SOUND | GAME_SUPPORTS_SAVE )
+GAME( 1983, rollace, fightrol, rollrace, rollrace, driver_device, 0, ROT270, "Kaneko (Williams license)", "Roller Aces (set 1)", GAME_IMPERFECT_SOUND | GAME_SUPPORTS_SAVE )
+GAME( 1983, rollace2, fightrol, rollace2, rollrace, driver_device, 0, ROT90, "Kaneko (Williams license)", "Roller Aces (set 2)", GAME_IMPERFECT_SOUND | GAME_SUPPORTS_SAVE )
diff --git a/src/mame/includes/rollrace.h b/src/mame/includes/rollrace.h
index 123ef1feb86..ee8c3c1fc0c 100644
--- a/src/mame/includes/rollrace.h
+++ b/src/mame/includes/rollrace.h
@@ -3,44 +3,50 @@ class rollrace_state : public driver_device
public:
rollrace_state(const machine_config &mconfig, device_type type, const char *tag)
: driver_device(mconfig, type, tag),
- m_videoram(*this, "videoram"),
- m_colorram(*this, "colorram"),
- m_spriteram(*this, "spriteram"),
m_maincpu(*this, "maincpu"),
m_gfxdecode(*this, "gfxdecode"),
- m_palette(*this, "palette") { }
+ m_palette(*this, "palette"),
+ m_videoram(*this, "videoram"),
+ m_colorram(*this, "colorram"),
+ m_spriteram(*this, "spriteram") { }
+ 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;
- int m_ra_charbank[2];
- int m_ra_bkgpage;
- int m_ra_bkgflip;
- int m_ra_chrbank;
- int m_ra_bkgpen;
- int m_ra_bkgcol;
- int m_ra_flipy;
- int m_ra_flipx;
- int m_ra_spritebank;
required_shared_ptr<UINT8> m_spriteram;
+
+ int m_charbank[2];
+ int m_bkgpage;
+ int m_bkgflip;
+ int m_chrbank;
+ int m_bkgpen;
+ int m_bkgcol;
+ int m_flipy;
+ int m_flipx;
+ int m_spritebank;
UINT8 m_nmi_mask;
UINT8 m_sound_nmi_mask;
- DECLARE_READ8_MEMBER(ra_fake_d800_r);
- DECLARE_WRITE8_MEMBER(ra_fake_d800_w);
+
+ DECLARE_READ8_MEMBER(fake_d800_r);
+ DECLARE_WRITE8_MEMBER(fake_d800_w);
DECLARE_WRITE8_MEMBER(nmi_mask_w);
DECLARE_WRITE8_MEMBER(sound_nmi_mask_w);
- DECLARE_WRITE8_MEMBER(rollrace_charbank_w);
- DECLARE_WRITE8_MEMBER(rollrace_bkgpen_w);
- DECLARE_WRITE8_MEMBER(rollrace_spritebank_w);
- DECLARE_WRITE8_MEMBER(rollrace_backgroundpage_w);
- DECLARE_WRITE8_MEMBER(rollrace_backgroundcolor_w);
- DECLARE_WRITE8_MEMBER(rollrace_flipy_w);
- DECLARE_WRITE8_MEMBER(rollrace_flipx_w);
+ DECLARE_WRITE8_MEMBER(charbank_w);
+ DECLARE_WRITE8_MEMBER(bkgpen_w);
+ DECLARE_WRITE8_MEMBER(spritebank_w);
+ DECLARE_WRITE8_MEMBER(backgroundpage_w);
+ DECLARE_WRITE8_MEMBER(backgroundcolor_w);
+ DECLARE_WRITE8_MEMBER(flipy_w);
+ DECLARE_WRITE8_MEMBER(flipx_w);
+
DECLARE_PALETTE_INIT(rollrace);
- UINT32 screen_update_rollrace(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
+ virtual void machine_start();
+
+ UINT32 screen_update(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
+
INTERRUPT_GEN_MEMBER(vblank_irq);
INTERRUPT_GEN_MEMBER(sound_timer_irq);
- required_device<cpu_device> m_maincpu;
- required_device<gfxdecode_device> m_gfxdecode;
- required_device<palette_device> m_palette;
};
diff --git a/src/mame/video/rollrace.c b/src/mame/video/rollrace.c
index 43e53d60bb3..f648a440b61 100644
--- a/src/mame/video/rollrace.c
+++ b/src/mame/video/rollrace.c
@@ -53,47 +53,47 @@ PALETTE_INIT_MEMBER(rollrace_state, rollrace)
}
}
-WRITE8_MEMBER(rollrace_state::rollrace_charbank_w)
+WRITE8_MEMBER(rollrace_state::charbank_w)
{
- m_ra_charbank[offset&1] = data;
- m_ra_chrbank = m_ra_charbank[0] | (m_ra_charbank[1] << 1) ;
+ m_charbank[offset&1] = data;
+ m_chrbank = m_charbank[0] | (m_charbank[1] << 1) ;
}
-WRITE8_MEMBER(rollrace_state::rollrace_bkgpen_w)
+WRITE8_MEMBER(rollrace_state::bkgpen_w)
{
- m_ra_bkgpen = data;
+ m_bkgpen = data;
}
-WRITE8_MEMBER(rollrace_state::rollrace_spritebank_w)
+WRITE8_MEMBER(rollrace_state::spritebank_w)
{
- m_ra_spritebank = data;
+ m_spritebank = data;
}
-WRITE8_MEMBER(rollrace_state::rollrace_backgroundpage_w)
+WRITE8_MEMBER(rollrace_state::backgroundpage_w)
{
- m_ra_bkgpage = data & 0x1f;
- m_ra_bkgflip = ( data & 0x80 ) >> 7;
+ m_bkgpage = data & 0x1f;
+ m_bkgflip = ( data & 0x80 ) >> 7;
/* 0x80 flip vertical */
}
-WRITE8_MEMBER(rollrace_state::rollrace_backgroundcolor_w)
+WRITE8_MEMBER(rollrace_state::backgroundcolor_w)
{
- m_ra_bkgcol = data;
+ m_bkgcol = data;
}
-WRITE8_MEMBER(rollrace_state::rollrace_flipy_w)
+WRITE8_MEMBER(rollrace_state::flipy_w)
{
- m_ra_flipy = data & 0x01;
+ m_flipy = data & 0x01;
}
-WRITE8_MEMBER(rollrace_state::rollrace_flipx_w)
+WRITE8_MEMBER(rollrace_state::flipx_w)
{
- m_ra_flipx = data & 0x01;
+ m_flipx = data & 0x01;
}
-UINT32 rollrace_state::screen_update_rollrace(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
+UINT32 rollrace_state::screen_update(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
UINT8 *spriteram = m_spriteram;
int offs;
@@ -103,12 +103,12 @@ UINT32 rollrace_state::screen_update_rollrace(screen_device &screen, bitmap_ind1
const UINT8 *mem = memregion("user1")->base();
/* fill in background colour*/
- bitmap.fill(m_ra_bkgpen, cliprect);
+ bitmap.fill(m_bkgpen, cliprect);
/* draw road */
for (offs = 0x3ff; offs >= 0; offs--)
{
- if(!(m_ra_bkgflip))
+ if(!(m_bkgflip))
{
sy = ( 31 - offs / 32 ) ;
}
@@ -117,18 +117,18 @@ UINT32 rollrace_state::screen_update_rollrace(screen_device &screen, bitmap_ind1
sx = ( offs%32 ) ;
- if(m_ra_flipx)
+ if(m_flipx)
sx = 31-sx ;
- if(m_ra_flipy)
+ if(m_flipy)
sy = 31-sy ;
m_gfxdecode->gfx(RA_BGCHAR_BASE)->transpen(bitmap,
cliprect,
- mem[offs + ( m_ra_bkgpage * 1024 )]
- + ((( mem[offs + 0x4000 + ( m_ra_bkgpage * 1024 )] & 0xc0 ) >> 6 ) * 256 ) ,
- m_ra_bkgcol,
- m_ra_flipx,(m_ra_bkgflip^m_ra_flipy),
+ mem[offs + ( m_bkgpage * 1024 )]
+ + ((( mem[offs + 0x4000 + ( m_bkgpage * 1024 )] & 0xc0 ) >> 6 ) * 256 ) ,
+ m_bkgcol,
+ m_flipx,(m_bkgflip^m_flipy),
sx*8,sy*8,0);
@@ -148,9 +148,9 @@ UINT32 rollrace_state::screen_update_rollrace(screen_device &screen, bitmap_ind1
if(sx && sy)
{
- if(m_ra_flipx)
+ if(m_flipx)
sx = 224 - sx;
- if(m_ra_flipy)
+ if(m_flipy)
sy = 224 - sy;
if(spriteram[offs+1] & 0x80)
@@ -159,12 +159,12 @@ UINT32 rollrace_state::screen_update_rollrace(screen_device &screen, bitmap_ind1
bank = (( spriteram[offs+1] & 0x40 ) >> 6 ) ;
if(bank)
- bank += m_ra_spritebank;
+ bank += m_spritebank;
m_gfxdecode->gfx( RA_SP_BASE + bank )->transpen(bitmap,cliprect,
spriteram[offs+1] & 0x3f ,
spriteram[offs+2] & 0x1f,
- m_ra_flipx,!(s_flipy^m_ra_flipy),
+ m_flipx,!(s_flipy^m_flipy),
sx,sy,0);
}
}
@@ -181,17 +181,17 @@ UINT32 rollrace_state::screen_update_rollrace(screen_device &screen, bitmap_ind1
scroll = ( 8 * sy + m_colorram[2 * sx] ) % 256;
col = m_colorram[ sx * 2 + 1 ]&0x1f;
- if (!m_ra_flipy)
+ if (!m_flipy)
{
scroll = (248 - scroll) % 256;
}
- if (m_ra_flipx) sx = 31 - sx;
+ if (m_flipx) sx = 31 - sx;
- m_gfxdecode->gfx(RA_FGCHAR_BASE + m_ra_chrbank) ->transpen(bitmap,cliprect,
+ m_gfxdecode->gfx(RA_FGCHAR_BASE + m_chrbank) ->transpen(bitmap,cliprect,
m_videoram[ offs ] ,
col,
- m_ra_flipx,m_ra_flipy,
+ m_flipx,m_flipy,
8*sx,scroll,0);
}