summaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
author Ivan Vangelista <mesgnet@yahoo.it>2015-02-16 18:07:02 +0100
committer Ivan Vangelista <mesgnet@yahoo.it>2015-02-16 18:07:02 +0100
commit622ee3112677cff4d09d451dfd87b800e07a41e6 (patch)
tree1d3d373eea4a11df48281987a3734f4c33c9a344
parentb31244ebf6d1ba0194bb3f5450b4ede598dc0a37 (diff)
wc90.c: added save state support (nw)
-rw-r--r--src/mame/drivers/wc90.c30
-rw-r--r--src/mame/includes/wc90.h48
-rw-r--r--src/mame/video/wc90.c8
3 files changed, 45 insertions, 41 deletions
diff --git a/src/mame/drivers/wc90.c b/src/mame/drivers/wc90.c
index a6ceee3543e..75dd4c15a23 100644
--- a/src/mame/drivers/wc90.c
+++ b/src/mame/drivers/wc90.c
@@ -55,7 +55,7 @@ Press one of the start buttons to exit.
* *
*****************************
-There is known to be a Pacman hack running on this hardware. It was done by Mike C. and isn't ment
+There is known to be a Pacman hack running on this hardware. It was done by Mike C. and isn't meant
for inclusion in MAME. However the roms with checksums are listed below to prevent it being added
as a newly "found" game:
@@ -79,7 +79,7 @@ voice.ic82 CRC32 abc61f3d SHA1 c6f123d16a26c4d77c635617dd97bb4b906c463a
#include "includes/wc90.h"
-WRITE8_MEMBER(wc90_state::wc90_bankswitch_w)
+WRITE8_MEMBER(wc90_state::bankswitch_w)
{
int bankaddress;
UINT8 *RAM = memregion("maincpu")->base();
@@ -89,7 +89,7 @@ WRITE8_MEMBER(wc90_state::wc90_bankswitch_w)
membank("bank1")->set_base(&RAM[bankaddress] );
}
-WRITE8_MEMBER(wc90_state::wc90_bankswitch1_w)
+WRITE8_MEMBER(wc90_state::bankswitch1_w)
{
int bankaddress;
UINT8 *RAM = memregion("sub")->base();
@@ -99,7 +99,7 @@ WRITE8_MEMBER(wc90_state::wc90_bankswitch1_w)
membank("bank2")->set_base(&RAM[bankaddress] );
}
-WRITE8_MEMBER(wc90_state::wc90_sound_command_w)
+WRITE8_MEMBER(wc90_state::sound_command_w)
{
soundlatch_byte_w(space, offset, data);
m_audiocpu->set_input_line(INPUT_LINE_NMI, PULSE_LINE);
@@ -110,11 +110,11 @@ WRITE8_MEMBER(wc90_state::wc90_sound_command_w)
static ADDRESS_MAP_START( wc90_map_1, AS_PROGRAM, 8, wc90_state )
AM_RANGE(0x0000, 0x7fff) AM_ROM
AM_RANGE(0x8000, 0x9fff) AM_RAM /* Main RAM */
- AM_RANGE(0xa000, 0xafff) AM_RAM_WRITE(wc90_fgvideoram_w) AM_SHARE("fgvideoram") /* fg video ram */
+ AM_RANGE(0xa000, 0xafff) AM_RAM_WRITE(fgvideoram_w) AM_SHARE("fgvideoram") /* fg video ram */
AM_RANGE(0xb000, 0xbfff) AM_RAM
- AM_RANGE(0xc000, 0xcfff) AM_RAM_WRITE(wc90_bgvideoram_w) AM_SHARE("bgvideoram")
+ AM_RANGE(0xc000, 0xcfff) AM_RAM_WRITE(bgvideoram_w) AM_SHARE("bgvideoram")
AM_RANGE(0xd000, 0xdfff) AM_RAM
- AM_RANGE(0xe000, 0xefff) AM_RAM_WRITE(wc90_txvideoram_w) AM_SHARE("txvideoram") /* tx video ram */
+ AM_RANGE(0xe000, 0xefff) AM_RAM_WRITE(txvideoram_w) AM_SHARE("txvideoram") /* tx video ram */
AM_RANGE(0xf000, 0xf7ff) AM_ROMBANK("bank1")
AM_RANGE(0xf800, 0xfbff) AM_RAM AM_SHARE("share1")
AM_RANGE(0xfc00, 0xfc00) AM_READ_PORT("P1")
@@ -134,9 +134,9 @@ static ADDRESS_MAP_START( wc90_map_1, AS_PROGRAM, 8, wc90_state )
AM_RANGE(0xfc43, 0xfc43) AM_WRITEONLY AM_SHARE("scroll2yhi")
AM_RANGE(0xfc46, 0xfc46) AM_WRITEONLY AM_SHARE("scroll2xlo")
AM_RANGE(0xfc47, 0xfc47) AM_WRITEONLY AM_SHARE("scroll2xhi")
- AM_RANGE(0xfcc0, 0xfcc0) AM_WRITE(wc90_sound_command_w)
+ AM_RANGE(0xfcc0, 0xfcc0) AM_WRITE(sound_command_w)
AM_RANGE(0xfcd0, 0xfcd0) AM_WRITE(watchdog_reset_w)
- AM_RANGE(0xfce0, 0xfce0) AM_WRITE(wc90_bankswitch_w)
+ AM_RANGE(0xfce0, 0xfce0) AM_WRITE(bankswitch_w)
ADDRESS_MAP_END
static ADDRESS_MAP_START( wc90_map_2, AS_PROGRAM, 8, wc90_state )
@@ -147,7 +147,7 @@ static ADDRESS_MAP_START( wc90_map_2, AS_PROGRAM, 8, wc90_state )
AM_RANGE(0xe000, 0xe7ff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette")
AM_RANGE(0xf000, 0xf7ff) AM_ROMBANK("bank2")
AM_RANGE(0xf800, 0xfbff) AM_RAM AM_SHARE("share1")
- AM_RANGE(0xfc00, 0xfc00) AM_WRITE(wc90_bankswitch1_w)
+ AM_RANGE(0xfc00, 0xfc00) AM_WRITE(bankswitch1_w)
AM_RANGE(0xfc01, 0xfc01) AM_WRITE(watchdog_reset_w)
ADDRESS_MAP_END
@@ -316,7 +316,7 @@ static MACHINE_CONFIG_START( wc90, wc90_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, 2*8, 30*8-1)
- MCFG_SCREEN_UPDATE_DRIVER(wc90_state, screen_update_wc90)
+ MCFG_SCREEN_UPDATE_DRIVER(wc90_state, screen_update)
MCFG_SCREEN_PALETTE("palette")
MCFG_GFXDECODE_ADD("gfxdecode", "palette", wc90)
@@ -472,7 +472,7 @@ ROM_START( wc90t )
ROM_LOAD( "ic82_06.bin", 0x00000, 0x20000, CRC(2fd692ed) SHA1(0273dc39181504320bec0187d074b2f86c821508) )
ROM_END
-GAME( 1989, wc90, 0, wc90, wc90, driver_device, 0, ROT0, "Tecmo", "Tecmo World Cup '90 (World)", GAME_IMPERFECT_SOUND | GAME_NO_COCKTAIL )
-GAME( 1989, wc90a, wc90, wc90, wc90, driver_device, 0, ROT0, "Tecmo", "Tecmo World Cup '90 (Euro set 1)", GAME_IMPERFECT_SOUND | GAME_NO_COCKTAIL )
-GAME( 1989, wc90b, wc90, wc90, wc90, driver_device, 0, ROT0, "Tecmo", "Tecmo World Cup '90 (Euro set 2)", GAME_IMPERFECT_SOUND | GAME_NO_COCKTAIL )
-GAME( 1989, wc90t, wc90, wc90t,wc90, driver_device, 0, ROT0, "Tecmo", "Tecmo World Cup '90 (trackball set 1)", GAME_IMPERFECT_SOUND | GAME_NO_COCKTAIL )
+GAME( 1989, wc90, 0, wc90, wc90, driver_device, 0, ROT0, "Tecmo", "Tecmo World Cup '90 (World)", GAME_IMPERFECT_SOUND | GAME_NO_COCKTAIL | GAME_SUPPORTS_SAVE )
+GAME( 1989, wc90a, wc90, wc90, wc90, driver_device, 0, ROT0, "Tecmo", "Tecmo World Cup '90 (Euro set 1)", GAME_IMPERFECT_SOUND | GAME_NO_COCKTAIL | GAME_SUPPORTS_SAVE )
+GAME( 1989, wc90b, wc90, wc90, wc90, driver_device, 0, ROT0, "Tecmo", "Tecmo World Cup '90 (Euro set 2)", GAME_IMPERFECT_SOUND | GAME_NO_COCKTAIL | GAME_SUPPORTS_SAVE )
+GAME( 1989, wc90t, wc90, wc90t,wc90, driver_device, 0, ROT0, "Tecmo", "Tecmo World Cup '90 (trackball set 1)", GAME_IMPERFECT_SOUND | GAME_NO_COCKTAIL | GAME_SUPPORTS_SAVE )
diff --git a/src/mame/includes/wc90.h b/src/mame/includes/wc90.h
index 06ca8b7764a..f8cc077c37e 100644
--- a/src/mame/includes/wc90.h
+++ b/src/mame/includes/wc90.h
@@ -5,6 +5,11 @@ class wc90_state : public driver_device
public:
wc90_state(const machine_config &mconfig, device_type type, const char *tag)
: driver_device(mconfig, type, tag),
+ m_maincpu(*this, "maincpu"),
+ m_audiocpu(*this, "audiocpu"),
+ m_gfxdecode(*this, "gfxdecode"),
+ m_palette(*this, "palette"),
+ m_sprgen(*this, "spritegen"),
m_fgvideoram(*this, "fgvideoram"),
m_bgvideoram(*this, "bgvideoram"),
m_txvideoram(*this, "txvideoram"),
@@ -20,15 +25,15 @@ public:
m_scroll1yhi(*this, "scroll1yhi"),
m_scroll2ylo(*this, "scroll2ylo"),
m_scroll2yhi(*this, "scroll2yhi"),
- m_spriteram(*this, "spriteram"),
- m_maincpu(*this, "maincpu"),
- m_audiocpu(*this, "audiocpu"),
- m_gfxdecode(*this, "gfxdecode"),
- m_palette(*this, "palette"),
- m_sprgen(*this, "spritegen")
+ m_spriteram(*this, "spriteram")
{ }
-
+
+ required_device<cpu_device> m_maincpu;
+ required_device<cpu_device> m_audiocpu;
+ required_device<gfxdecode_device> m_gfxdecode;
+ required_device<palette_device> m_palette;
+ required_device<tecmo_spr_device> m_sprgen;
required_shared_ptr<UINT8> m_fgvideoram;
required_shared_ptr<UINT8> m_bgvideoram;
@@ -45,29 +50,28 @@ public:
required_shared_ptr<UINT8> m_scroll1yhi;
required_shared_ptr<UINT8> m_scroll2ylo;
required_shared_ptr<UINT8> m_scroll2yhi;
+ required_shared_ptr<UINT8> m_spriteram;
+
tilemap_t *m_tx_tilemap;
tilemap_t *m_fg_tilemap;
tilemap_t *m_bg_tilemap;
- required_shared_ptr<UINT8> m_spriteram;
- DECLARE_WRITE8_MEMBER(wc90_bankswitch_w);
- DECLARE_WRITE8_MEMBER(wc90_bankswitch1_w);
- DECLARE_WRITE8_MEMBER(wc90_sound_command_w);
- DECLARE_WRITE8_MEMBER(wc90_bgvideoram_w);
- DECLARE_WRITE8_MEMBER(wc90_fgvideoram_w);
- DECLARE_WRITE8_MEMBER(wc90_txvideoram_w);
+
+ DECLARE_WRITE8_MEMBER(bankswitch_w);
+ DECLARE_WRITE8_MEMBER(bankswitch1_w);
+ DECLARE_WRITE8_MEMBER(sound_command_w);
+ DECLARE_WRITE8_MEMBER(bgvideoram_w);
+ DECLARE_WRITE8_MEMBER(fgvideoram_w);
+ DECLARE_WRITE8_MEMBER(txvideoram_w);
+ DECLARE_WRITE_LINE_MEMBER(irqhandler);
+
TILE_GET_INFO_MEMBER(get_bg_tile_info);
TILE_GET_INFO_MEMBER(get_fg_tile_info);
TILE_GET_INFO_MEMBER(get_tx_tile_info);
TILE_GET_INFO_MEMBER(track_get_bg_tile_info);
TILE_GET_INFO_MEMBER(track_get_fg_tile_info);
+
virtual void video_start();
DECLARE_VIDEO_START(wc90t);
- UINT32 screen_update_wc90(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
-
- DECLARE_WRITE_LINE_MEMBER(irqhandler);
- required_device<cpu_device> m_maincpu;
- required_device<cpu_device> m_audiocpu;
- required_device<gfxdecode_device> m_gfxdecode;
- required_device<palette_device> m_palette;
- required_device<tecmo_spr_device> m_sprgen;
+
+ UINT32 screen_update(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
diff --git a/src/mame/video/wc90.c b/src/mame/video/wc90.c
index cc696794d9e..4765220df49 100644
--- a/src/mame/video/wc90.c
+++ b/src/mame/video/wc90.c
@@ -94,19 +94,19 @@ VIDEO_START_MEMBER(wc90_state,wc90t)
***************************************************************************/
-WRITE8_MEMBER(wc90_state::wc90_bgvideoram_w)
+WRITE8_MEMBER(wc90_state::bgvideoram_w)
{
m_bgvideoram[offset] = data;
m_bg_tilemap->mark_tile_dirty(offset & 0x7ff);
}
-WRITE8_MEMBER(wc90_state::wc90_fgvideoram_w)
+WRITE8_MEMBER(wc90_state::fgvideoram_w)
{
m_fgvideoram[offset] = data;
m_fg_tilemap->mark_tile_dirty(offset & 0x7ff);
}
-WRITE8_MEMBER(wc90_state::wc90_txvideoram_w)
+WRITE8_MEMBER(wc90_state::txvideoram_w)
{
m_txvideoram[offset] = data;
m_tx_tilemap->mark_tile_dirty(offset & 0x7ff);
@@ -121,7 +121,7 @@ WRITE8_MEMBER(wc90_state::wc90_txvideoram_w)
***************************************************************************/
-UINT32 wc90_state::screen_update_wc90(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
+UINT32 wc90_state::screen_update(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
m_bg_tilemap->set_scrollx(0,m_scroll2xlo[0] + 256 * m_scroll2xhi[0]);
m_bg_tilemap->set_scrolly(0,m_scroll2ylo[0] + 256 * m_scroll2yhi[0]);