diff options
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 |
commit | 622ee3112677cff4d09d451dfd87b800e07a41e6 (patch) | |
tree | 1d3d373eea4a11df48281987a3734f4c33c9a344 | |
parent | b31244ebf6d1ba0194bb3f5450b4ede598dc0a37 (diff) |
wc90.c: added save state support (nw)
-rw-r--r-- | src/mame/drivers/wc90.c | 30 | ||||
-rw-r--r-- | src/mame/includes/wc90.h | 48 | ||||
-rw-r--r-- | src/mame/video/wc90.c | 8 |
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]); |