Previous 199869 Revisions Next

r35064 Monday 16th February, 2015 at 17:07:02 UTC by Osso
wc90.c: added save state support (nw)
[src/mame/drivers]wc90.c
[src/mame/includes]wc90.h
[src/mame/video]wc90.c

trunk/src/mame/drivers/wc90.c
r243575r243576
5555*                           *
5656*****************************
5757
58There is known to be a Pacman hack running on this hardware.  It was done by Mike C. and isn't ment
58There is known to be a Pacman hack running on this hardware.  It was done by Mike C. and isn't meant
5959for inclusion in MAME.  However the roms with checksums are listed below to prevent it being added
6060as a newly "found" game:
6161
r243575r243576
7979#include "includes/wc90.h"
8080
8181
82WRITE8_MEMBER(wc90_state::wc90_bankswitch_w)
82WRITE8_MEMBER(wc90_state::bankswitch_w)
8383{
8484   int bankaddress;
8585   UINT8 *RAM = memregion("maincpu")->base();
r243575r243576
8989   membank("bank1")->set_base(&RAM[bankaddress] );
9090}
9191
92WRITE8_MEMBER(wc90_state::wc90_bankswitch1_w)
92WRITE8_MEMBER(wc90_state::bankswitch1_w)
9393{
9494   int bankaddress;
9595   UINT8 *RAM = memregion("sub")->base();
r243575r243576
9999   membank("bank2")->set_base(&RAM[bankaddress] );
100100}
101101
102WRITE8_MEMBER(wc90_state::wc90_sound_command_w)
102WRITE8_MEMBER(wc90_state::sound_command_w)
103103{
104104   soundlatch_byte_w(space, offset, data);
105105   m_audiocpu->set_input_line(INPUT_LINE_NMI, PULSE_LINE);
r243575r243576
110110static ADDRESS_MAP_START( wc90_map_1, AS_PROGRAM, 8, wc90_state )
111111   AM_RANGE(0x0000, 0x7fff) AM_ROM
112112   AM_RANGE(0x8000, 0x9fff) AM_RAM     /* Main RAM */
113   AM_RANGE(0xa000, 0xafff) AM_RAM_WRITE(wc90_fgvideoram_w) AM_SHARE("fgvideoram") /* fg video ram */
113   AM_RANGE(0xa000, 0xafff) AM_RAM_WRITE(fgvideoram_w) AM_SHARE("fgvideoram") /* fg video ram */
114114   AM_RANGE(0xb000, 0xbfff) AM_RAM
115   AM_RANGE(0xc000, 0xcfff) AM_RAM_WRITE(wc90_bgvideoram_w) AM_SHARE("bgvideoram")
115   AM_RANGE(0xc000, 0xcfff) AM_RAM_WRITE(bgvideoram_w) AM_SHARE("bgvideoram")
116116   AM_RANGE(0xd000, 0xdfff) AM_RAM
117   AM_RANGE(0xe000, 0xefff) AM_RAM_WRITE(wc90_txvideoram_w) AM_SHARE("txvideoram") /* tx video ram */
117   AM_RANGE(0xe000, 0xefff) AM_RAM_WRITE(txvideoram_w) AM_SHARE("txvideoram") /* tx video ram */
118118   AM_RANGE(0xf000, 0xf7ff) AM_ROMBANK("bank1")
119119   AM_RANGE(0xf800, 0xfbff) AM_RAM AM_SHARE("share1")
120120   AM_RANGE(0xfc00, 0xfc00) AM_READ_PORT("P1")
r243575r243576
134134   AM_RANGE(0xfc43, 0xfc43) AM_WRITEONLY AM_SHARE("scroll2yhi")
135135   AM_RANGE(0xfc46, 0xfc46) AM_WRITEONLY AM_SHARE("scroll2xlo")
136136   AM_RANGE(0xfc47, 0xfc47) AM_WRITEONLY AM_SHARE("scroll2xhi")
137   AM_RANGE(0xfcc0, 0xfcc0) AM_WRITE(wc90_sound_command_w)
137   AM_RANGE(0xfcc0, 0xfcc0) AM_WRITE(sound_command_w)
138138   AM_RANGE(0xfcd0, 0xfcd0) AM_WRITE(watchdog_reset_w)
139   AM_RANGE(0xfce0, 0xfce0) AM_WRITE(wc90_bankswitch_w)
139   AM_RANGE(0xfce0, 0xfce0) AM_WRITE(bankswitch_w)
140140ADDRESS_MAP_END
141141
142142static ADDRESS_MAP_START( wc90_map_2, AS_PROGRAM, 8, wc90_state )
r243575r243576
147147   AM_RANGE(0xe000, 0xe7ff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette")
148148   AM_RANGE(0xf000, 0xf7ff) AM_ROMBANK("bank2")
149149   AM_RANGE(0xf800, 0xfbff) AM_RAM AM_SHARE("share1")
150   AM_RANGE(0xfc00, 0xfc00) AM_WRITE(wc90_bankswitch1_w)
150   AM_RANGE(0xfc00, 0xfc00) AM_WRITE(bankswitch1_w)
151151   AM_RANGE(0xfc01, 0xfc01) AM_WRITE(watchdog_reset_w)
152152ADDRESS_MAP_END
153153
r243575r243576
316316   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
317317   MCFG_SCREEN_SIZE(32*8, 32*8)
318318   MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1)
319   MCFG_SCREEN_UPDATE_DRIVER(wc90_state, screen_update_wc90)
319   MCFG_SCREEN_UPDATE_DRIVER(wc90_state, screen_update)
320320   MCFG_SCREEN_PALETTE("palette")
321321
322322   MCFG_GFXDECODE_ADD("gfxdecode", "palette", wc90)
r243575r243576
472472   ROM_LOAD( "ic82_06.bin",  0x00000, 0x20000, CRC(2fd692ed) SHA1(0273dc39181504320bec0187d074b2f86c821508) )
473473ROM_END
474474
475GAME( 1989, wc90,  0,    wc90, wc90, driver_device, 0, ROT0, "Tecmo", "Tecmo World Cup '90 (World)", GAME_IMPERFECT_SOUND | GAME_NO_COCKTAIL )
476GAME( 1989, wc90a, wc90, wc90, wc90, driver_device, 0, ROT0, "Tecmo", "Tecmo World Cup '90 (Euro set 1)", GAME_IMPERFECT_SOUND | GAME_NO_COCKTAIL )
477GAME( 1989, wc90b, wc90, wc90, wc90, driver_device, 0, ROT0, "Tecmo", "Tecmo World Cup '90 (Euro set 2)", GAME_IMPERFECT_SOUND | GAME_NO_COCKTAIL )
478GAME( 1989, wc90t, wc90, wc90t,wc90, driver_device, 0, ROT0, "Tecmo", "Tecmo World Cup '90 (trackball set 1)", GAME_IMPERFECT_SOUND | GAME_NO_COCKTAIL )
475GAME( 1989, wc90,  0,    wc90, wc90, driver_device, 0, ROT0, "Tecmo", "Tecmo World Cup '90 (World)", GAME_IMPERFECT_SOUND | GAME_NO_COCKTAIL | GAME_SUPPORTS_SAVE )
476GAME( 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 )
477GAME( 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 )
478GAME( 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 )
trunk/src/mame/includes/wc90.h
r243575r243576
55public:
66   wc90_state(const machine_config &mconfig, device_type type, const char *tag)
77      : driver_device(mconfig, type, tag),
8      m_maincpu(*this, "maincpu"),
9      m_audiocpu(*this, "audiocpu"),
10      m_gfxdecode(*this, "gfxdecode"),
11      m_palette(*this, "palette"),
12      m_sprgen(*this, "spritegen"),
813      m_fgvideoram(*this, "fgvideoram"),
914      m_bgvideoram(*this, "bgvideoram"),
1015      m_txvideoram(*this, "txvideoram"),
r243575r243576
2025      m_scroll1yhi(*this, "scroll1yhi"),
2126      m_scroll2ylo(*this, "scroll2ylo"),
2227      m_scroll2yhi(*this, "scroll2yhi"),
23      m_spriteram(*this, "spriteram"),
24      m_maincpu(*this, "maincpu"),
25      m_audiocpu(*this, "audiocpu"),
26      m_gfxdecode(*this, "gfxdecode"),
27      m_palette(*this, "palette"),
28      m_sprgen(*this, "spritegen")
28      m_spriteram(*this, "spriteram")
2929   { }
3030
31   
32   required_device<cpu_device> m_maincpu;
33   required_device<cpu_device> m_audiocpu;
34   required_device<gfxdecode_device> m_gfxdecode;
35   required_device<palette_device> m_palette;
36   required_device<tecmo_spr_device> m_sprgen;
3137
32
3338   required_shared_ptr<UINT8> m_fgvideoram;
3439   required_shared_ptr<UINT8> m_bgvideoram;
3540   required_shared_ptr<UINT8> m_txvideoram;
r243575r243576
4550   required_shared_ptr<UINT8> m_scroll1yhi;
4651   required_shared_ptr<UINT8> m_scroll2ylo;
4752   required_shared_ptr<UINT8> m_scroll2yhi;
53   required_shared_ptr<UINT8> m_spriteram;
54   
4855   tilemap_t *m_tx_tilemap;
4956   tilemap_t *m_fg_tilemap;
5057   tilemap_t *m_bg_tilemap;
51   required_shared_ptr<UINT8> m_spriteram;
52   DECLARE_WRITE8_MEMBER(wc90_bankswitch_w);
53   DECLARE_WRITE8_MEMBER(wc90_bankswitch1_w);
54   DECLARE_WRITE8_MEMBER(wc90_sound_command_w);
55   DECLARE_WRITE8_MEMBER(wc90_bgvideoram_w);
56   DECLARE_WRITE8_MEMBER(wc90_fgvideoram_w);
57   DECLARE_WRITE8_MEMBER(wc90_txvideoram_w);
58
59   DECLARE_WRITE8_MEMBER(bankswitch_w);
60   DECLARE_WRITE8_MEMBER(bankswitch1_w);
61   DECLARE_WRITE8_MEMBER(sound_command_w);
62   DECLARE_WRITE8_MEMBER(bgvideoram_w);
63   DECLARE_WRITE8_MEMBER(fgvideoram_w);
64   DECLARE_WRITE8_MEMBER(txvideoram_w);
65   DECLARE_WRITE_LINE_MEMBER(irqhandler);
66   
5867   TILE_GET_INFO_MEMBER(get_bg_tile_info);
5968   TILE_GET_INFO_MEMBER(get_fg_tile_info);
6069   TILE_GET_INFO_MEMBER(get_tx_tile_info);
6170   TILE_GET_INFO_MEMBER(track_get_bg_tile_info);
6271   TILE_GET_INFO_MEMBER(track_get_fg_tile_info);
72   
6373   virtual void video_start();
6474   DECLARE_VIDEO_START(wc90t);
65   UINT32 screen_update_wc90(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
66
67   DECLARE_WRITE_LINE_MEMBER(irqhandler);
68   required_device<cpu_device> m_maincpu;
69   required_device<cpu_device> m_audiocpu;
70   required_device<gfxdecode_device> m_gfxdecode;
71   required_device<palette_device> m_palette;
72   required_device<tecmo_spr_device> m_sprgen;
75   
76   UINT32 screen_update(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
7377};
trunk/src/mame/video/wc90.c
r243575r243576
9494
9595***************************************************************************/
9696
97WRITE8_MEMBER(wc90_state::wc90_bgvideoram_w)
97WRITE8_MEMBER(wc90_state::bgvideoram_w)
9898{
9999   m_bgvideoram[offset] = data;
100100   m_bg_tilemap->mark_tile_dirty(offset & 0x7ff);
101101}
102102
103WRITE8_MEMBER(wc90_state::wc90_fgvideoram_w)
103WRITE8_MEMBER(wc90_state::fgvideoram_w)
104104{
105105   m_fgvideoram[offset] = data;
106106   m_fg_tilemap->mark_tile_dirty(offset & 0x7ff);
107107}
108108
109WRITE8_MEMBER(wc90_state::wc90_txvideoram_w)
109WRITE8_MEMBER(wc90_state::txvideoram_w)
110110{
111111   m_txvideoram[offset] = data;
112112   m_tx_tilemap->mark_tile_dirty(offset & 0x7ff);
r243575r243576
121121***************************************************************************/
122122
123123
124UINT32 wc90_state::screen_update_wc90(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
124UINT32 wc90_state::screen_update(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
125125{
126126   m_bg_tilemap->set_scrollx(0,m_scroll2xlo[0] + 256 * m_scroll2xhi[0]);
127127   m_bg_tilemap->set_scrolly(0,m_scroll2ylo[0] + 256 * m_scroll2yhi[0]);


Previous 199869 Revisions Next


© 1997-2024 The MAME Team