Previous 199869 Revisions Next

r35307 Thursday 26th February, 2015 at 17:56:12 UTC by Osso
wc90b: added save state support (nw)
[src/mame/drivers]wc90b.c
[src/mame/includes]wc90b.h
[src/mame/video]wc90b.c

trunk/src/mame/drivers/wc90b.c
r243818r243819
9696#define MSM5205_CLOCK XTAL_384kHz
9797
9898
99WRITE8_MEMBER(wc90b_state::wc90b_bankswitch_w)
99WRITE8_MEMBER(wc90b_state::bankswitch_w)
100100{
101101   membank("mainbank")->set_entry(data >> 3);
102102}
103103
104WRITE8_MEMBER(wc90b_state::wc90b_bankswitch1_w)
104WRITE8_MEMBER(wc90b_state::bankswitch1_w)
105105{
106106   membank("subbank")->set_entry(data >> 3);
107107}
108108
109WRITE8_MEMBER(wc90b_state::wc90b_sound_command_w)
109WRITE8_MEMBER(wc90b_state::sound_command_w)
110110{
111111   soundlatch_byte_w(space, offset, data);
112112   m_audiocpu->set_input_line(0, HOLD_LINE);
r243818r243819
127127static ADDRESS_MAP_START( wc90b_map1, AS_PROGRAM, 8, wc90b_state )
128128   AM_RANGE(0x0000, 0x7fff) AM_ROM
129129   AM_RANGE(0x8000, 0x9fff) AM_RAM /* Main RAM */
130   AM_RANGE(0xa000, 0xafff) AM_RAM_WRITE(wc90b_fgvideoram_w) AM_SHARE("fgvideoram")
131   AM_RANGE(0xc000, 0xcfff) AM_RAM_WRITE(wc90b_bgvideoram_w) AM_SHARE("bgvideoram")
132   AM_RANGE(0xe000, 0xefff) AM_RAM_WRITE(wc90b_txvideoram_w) AM_SHARE("txvideoram")
130   AM_RANGE(0xa000, 0xafff) AM_RAM_WRITE(fgvideoram_w) AM_SHARE("fgvideoram")
131   AM_RANGE(0xc000, 0xcfff) AM_RAM_WRITE(bgvideoram_w) AM_SHARE("bgvideoram")
132   AM_RANGE(0xe000, 0xefff) AM_RAM_WRITE(txvideoram_w) AM_SHARE("txvideoram")
133133   AM_RANGE(0xf000, 0xf7ff) AM_ROMBANK("mainbank")
134134   AM_RANGE(0xf800, 0xfbff) AM_RAM AM_SHARE("share1")
135   AM_RANGE(0xfc00, 0xfc00) AM_WRITE(wc90b_bankswitch_w)
136   AM_RANGE(0xfd00, 0xfd00) AM_WRITE(wc90b_sound_command_w)
135   AM_RANGE(0xfc00, 0xfc00) AM_WRITE(bankswitch_w)
136   AM_RANGE(0xfd00, 0xfd00) AM_WRITE(sound_command_w)
137137   AM_RANGE(0xfd04, 0xfd04) AM_WRITEONLY AM_SHARE("scroll1y")
138138   AM_RANGE(0xfd06, 0xfd06) AM_WRITEONLY AM_SHARE("scroll1x")
139139   AM_RANGE(0xfd08, 0xfd08) AM_WRITEONLY AM_SHARE("scroll2y")
r243818r243819
154154   AM_RANGE(0xe800, 0xefff) AM_ROM
155155   AM_RANGE(0xf000, 0xf7ff) AM_ROMBANK("subbank")
156156   AM_RANGE(0xf800, 0xfbff) AM_RAM AM_SHARE("share1")
157   AM_RANGE(0xfc00, 0xfc00) AM_WRITE(wc90b_bankswitch1_w)
157   AM_RANGE(0xfc00, 0xfc00) AM_WRITE(bankswitch1_w)
158158ADDRESS_MAP_END
159159
160160static ADDRESS_MAP_START( sound_cpu, AS_PROGRAM, 8, wc90b_state )
r243818r243819
325325   membank("mainbank")->configure_entries(0, 32, memregion("maincpu")->base() + 0x10000, 0x800);
326326   membank("subbank")->configure_entries(0, 32, memregion("sub")->base() + 0x10000, 0x800);
327327   membank("audiobank")->configure_entries(0, 2, memregion("audiocpu")->base() + 0x8000, 0x4000);
328   
329   save_item(NAME(m_msm5205next));
330   save_item(NAME(m_toggle));
328331}
329332
330333
r243818r243819
349352   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
350353   MCFG_SCREEN_SIZE(32*8, 32*8)
351354   MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1)
352   MCFG_SCREEN_UPDATE_DRIVER(wc90b_state, screen_update_wc90b)
355   MCFG_SCREEN_UPDATE_DRIVER(wc90b_state, screen_update)
353356   MCFG_SCREEN_PALETTE("palette")
354357
355358   MCFG_GFXDECODE_ADD("gfxdecode", "palette", wc90b)
r243818r243819
507510ROM_END
508511
509512
510GAME( 1989, wc90b1, wc90, wc90b, wc90b, driver_device, 0, ROT0, "bootleg", "Euro League (Italian hack of Tecmo World Cup '90)", GAME_NO_COCKTAIL | GAME_IMPERFECT_SOUND )
511GAME( 1989, wc90b2, wc90, wc90b, wc90b, driver_device, 0, ROT0, "bootleg", "Worldcup '90", GAME_NO_COCKTAIL | GAME_IMPERFECT_SOUND )
512GAME( 1989, wc90ba, wc90, wc90b, wc90b, driver_device, 0, ROT0, "bootleg", "Euro League (Italian hack of Temco World Cup '90 - alt version)", GAME_NO_COCKTAIL | GAME_IMPERFECT_SOUND )
513GAME( 1989, wc90b1, wc90, wc90b, wc90b, driver_device, 0, ROT0, "bootleg", "Euro League (Italian hack of Tecmo World Cup '90)", GAME_NO_COCKTAIL | GAME_IMPERFECT_SOUND | GAME_SUPPORTS_SAVE )
514GAME( 1989, wc90b2, wc90, wc90b, wc90b, driver_device, 0, ROT0, "bootleg", "Worldcup '90", GAME_NO_COCKTAIL | GAME_IMPERFECT_SOUND | GAME_SUPPORTS_SAVE )
515GAME( 1989, wc90ba, wc90, wc90b, wc90b, driver_device, 0, ROT0, "bootleg", "Euro League (Italian hack of Temco World Cup '90 - alt version)", GAME_NO_COCKTAIL | GAME_IMPERFECT_SOUND | GAME_SUPPORTS_SAVE )
trunk/src/mame/includes/wc90b.h
r243818r243819
55public:
66   wc90b_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_msm(*this, "msm"),
11      m_gfxdecode(*this, "gfxdecode"),
12      m_palette(*this, "palette"),
813      m_fgvideoram(*this, "fgvideoram"),
914      m_bgvideoram(*this, "bgvideoram"),
1015      m_txvideoram(*this, "txvideoram"),
r243818r243819
1318      m_scroll1y(*this, "scroll1y"),
1419      m_scroll2y(*this, "scroll2y"),
1520      m_scroll_x_lo(*this, "scroll_x_lo"),
16      m_spriteram(*this, "spriteram"),
17      m_maincpu(*this, "maincpu"),
18      m_audiocpu(*this, "audiocpu"),
19      m_msm(*this, "msm"),
20      m_gfxdecode(*this, "gfxdecode"),
21      m_palette(*this, "palette") { }
21      m_spriteram(*this, "spriteram") { }
2222
23   int m_msm5205next;
24   int m_toggle;
23   required_device<cpu_device> m_maincpu;
24   required_device<cpu_device> m_audiocpu;
25   required_device<msm5205_device> m_msm;
26   required_device<gfxdecode_device> m_gfxdecode;
27   required_device<palette_device> m_palette;
28
2529   required_shared_ptr<UINT8> m_fgvideoram;
2630   required_shared_ptr<UINT8> m_bgvideoram;
2731   required_shared_ptr<UINT8> m_txvideoram;
r243818r243819
3034   required_shared_ptr<UINT8> m_scroll1y;
3135   required_shared_ptr<UINT8> m_scroll2y;
3236   required_shared_ptr<UINT8> m_scroll_x_lo;
37   required_shared_ptr<UINT8> m_spriteram;
38
3339   tilemap_t *m_tx_tilemap;
3440   tilemap_t *m_fg_tilemap;
3541   tilemap_t *m_bg_tilemap;
36   required_shared_ptr<UINT8> m_spriteram;
37   DECLARE_WRITE8_MEMBER(wc90b_bankswitch_w);
38   DECLARE_WRITE8_MEMBER(wc90b_bankswitch1_w);
39   DECLARE_WRITE8_MEMBER(wc90b_sound_command_w);
42   int m_msm5205next;
43   int m_toggle;
44
45   DECLARE_WRITE8_MEMBER(bankswitch_w);
46   DECLARE_WRITE8_MEMBER(bankswitch1_w);
47   DECLARE_WRITE8_MEMBER(sound_command_w);
4048   DECLARE_WRITE8_MEMBER(adpcm_data_w);
41   DECLARE_WRITE8_MEMBER(wc90b_bgvideoram_w);
42   DECLARE_WRITE8_MEMBER(wc90b_fgvideoram_w);
43   DECLARE_WRITE8_MEMBER(wc90b_txvideoram_w);
49   DECLARE_WRITE8_MEMBER(bgvideoram_w);
50   DECLARE_WRITE8_MEMBER(fgvideoram_w);
51   DECLARE_WRITE8_MEMBER(txvideoram_w);
4452   DECLARE_WRITE8_MEMBER(adpcm_control_w);
53   DECLARE_WRITE_LINE_MEMBER(adpcm_int);
54   
4555   TILE_GET_INFO_MEMBER(get_bg_tile_info);
4656   TILE_GET_INFO_MEMBER(get_fg_tile_info);
4757   TILE_GET_INFO_MEMBER(get_tx_tile_info);
58   
4859   virtual void machine_start();
4960   virtual void video_start();
50   UINT32 screen_update_wc90b(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
61   
62   UINT32 screen_update(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
5163   void draw_sprites(bitmap_ind16 &bitmap, const rectangle &cliprect, int priority );
52   DECLARE_WRITE_LINE_MEMBER(adpcm_int);
53   required_device<cpu_device> m_maincpu;
54   required_device<cpu_device> m_audiocpu;
55   required_device<msm5205_device> m_msm;
56   required_device<gfxdecode_device> m_gfxdecode;
57   required_device<palette_device> m_palette;
5864};
trunk/src/mame/video/wc90b.c
r243818r243819
6262
6363***************************************************************************/
6464
65WRITE8_MEMBER(wc90b_state::wc90b_bgvideoram_w)
65WRITE8_MEMBER(wc90b_state::bgvideoram_w)
6666{
6767   m_bgvideoram[offset] = data;
6868   m_bg_tilemap->mark_tile_dirty(offset & 0x7ff);
6969}
7070
71WRITE8_MEMBER(wc90b_state::wc90b_fgvideoram_w)
71WRITE8_MEMBER(wc90b_state::fgvideoram_w)
7272{
7373   m_fgvideoram[offset] = data;
7474   m_fg_tilemap->mark_tile_dirty(offset & 0x7ff);
7575}
7676
77WRITE8_MEMBER(wc90b_state::wc90b_txvideoram_w)
77WRITE8_MEMBER(wc90b_state::txvideoram_w)
7878{
7979   m_txvideoram[offset] = data;
8080   m_tx_tilemap->mark_tile_dirty(offset & 0x7ff);
r243818r243819
121121   }
122122}
123123
124UINT32 wc90b_state::screen_update_wc90b(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
124UINT32 wc90b_state::screen_update(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
125125{
126126   m_bg_tilemap->set_scrollx(0,8 * (m_scroll2x[0] & 0x7f) + 256 - 4 + (m_scroll_x_lo[0] & 0x07));
127127   m_bg_tilemap->set_scrolly(0,m_scroll2y[0] + 1 + ((m_scroll2x[0] & 0x80) ? 256 : 0));


Previous 199869 Revisions Next


© 1997-2024 The MAME Team