Previous 199869 Revisions Next

r35302 Thursday 26th February, 2015 at 17:02:46 UTC by Osso
vulgus.c: added save state support (nw)
[src/mame/drivers]vulgus.c
[src/mame/includes]vulgus.h
[src/mame/video]vulgus.c

trunk/src/mame/drivers/vulgus.c
r243813r243814
4747#include "includes/vulgus.h"
4848
4949
50INTERRUPT_GEN_MEMBER(vulgus_state::vulgus_vblank_irq)
50INTERRUPT_GEN_MEMBER(vulgus_state::vblank_irq)
5151{
5252   device.execute().set_input_line_and_vector(0, HOLD_LINE, 0xd7); /* RST 10h - vblank */
5353}
r243813r243814
6262   AM_RANGE(0xc800, 0xc800) AM_WRITE(soundlatch_byte_w)
6363   AM_RANGE(0xc801, 0xc801) AM_WRITENOP // ?
6464   AM_RANGE(0xc802, 0xc803) AM_RAM AM_SHARE("scroll_low")
65   AM_RANGE(0xc804, 0xc804) AM_WRITE(vulgus_c804_w)
66   AM_RANGE(0xc805, 0xc805) AM_WRITE(vulgus_palette_bank_w)
65   AM_RANGE(0xc804, 0xc804) AM_WRITE(c804_w)
66   AM_RANGE(0xc805, 0xc805) AM_WRITE(palette_bank_w)
6767   AM_RANGE(0xc902, 0xc903) AM_RAM AM_SHARE("scroll_high")
6868   AM_RANGE(0xcc00, 0xcc7f) AM_RAM AM_SHARE("spriteram")
69   AM_RANGE(0xd000, 0xd7ff) AM_RAM_WRITE(vulgus_fgvideoram_w) AM_SHARE("fgvideoram")
70   AM_RANGE(0xd800, 0xdfff) AM_RAM_WRITE(vulgus_bgvideoram_w) AM_SHARE("bgvideoram")
69   AM_RANGE(0xd000, 0xd7ff) AM_RAM_WRITE(fgvideoram_w) AM_SHARE("fgvideoram")
70   AM_RANGE(0xd800, 0xdfff) AM_RAM_WRITE(bgvideoram_w) AM_SHARE("bgvideoram")
7171   AM_RANGE(0xe000, 0xefff) AM_RAM
7272ADDRESS_MAP_END
7373
r243813r243814
213213   /* basic machine hardware */
214214   MCFG_CPU_ADD("maincpu", Z80, XTAL_12MHz/4)  /* 3 MHz */
215215   MCFG_CPU_PROGRAM_MAP(main_map)
216   MCFG_CPU_VBLANK_INT_DRIVER("screen", vulgus_state, vulgus_vblank_irq)
216   MCFG_CPU_VBLANK_INT_DRIVER("screen", vulgus_state, vblank_irq)
217217
218218   MCFG_CPU_ADD("audiocpu", Z80, XTAL_12MHz/4) /* 3 MHz */
219219   MCFG_CPU_PROGRAM_MAP(sound_map)
r243813r243814
225225   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
226226   MCFG_SCREEN_SIZE(32*8, 32*8)
227227   MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1)
228   MCFG_SCREEN_UPDATE_DRIVER(vulgus_state, screen_update_vulgus)
228   MCFG_SCREEN_UPDATE_DRIVER(vulgus_state, screen_update)
229229   MCFG_SCREEN_PALETTE("palette")
230230
231231   MCFG_GFXDECODE_ADD("gfxdecode", "palette", vulgus)
r243813r243814
371371
372372
373373
374GAME( 1984, vulgus,  0,      vulgus, vulgus, driver_device, 0, ROT270, "Capcom", "Vulgus (set 1)", 0 )
375GAME( 1984, vulgusa, vulgus, vulgus, vulgus, driver_device, 0, ROT90,  "Capcom", "Vulgus (set 2)", 0 )
376GAME( 1984, vulgusj, vulgus, vulgus, vulgus, driver_device, 0, ROT270, "Capcom", "Vulgus (Japan?)", 0 )
374GAME( 1984, vulgus,  0,      vulgus, vulgus, driver_device, 0, ROT270, "Capcom", "Vulgus (set 1)", GAME_SUPPORTS_SAVE )
375GAME( 1984, vulgusa, vulgus, vulgus, vulgus, driver_device, 0, ROT90,  "Capcom", "Vulgus (set 2)", GAME_SUPPORTS_SAVE )
376GAME( 1984, vulgusj, vulgus, vulgus, vulgus, driver_device, 0, ROT270, "Capcom", "Vulgus (Japan?)", GAME_SUPPORTS_SAVE )
trunk/src/mame/includes/vulgus.h
r243813r243814
2424   required_device<cpu_device> m_audiocpu;
2525   required_device<gfxdecode_device> m_gfxdecode;
2626   required_device<palette_device> m_palette;
27
2728   required_shared_ptr<UINT8> m_scroll_low;
2829   required_shared_ptr<UINT8> m_scroll_high;
2930   required_shared_ptr<UINT8> m_spriteram;
r243813r243814
3334   int m_palette_bank;
3435   tilemap_t *m_fg_tilemap;
3536   tilemap_t *m_bg_tilemap;
36   DECLARE_WRITE8_MEMBER(vulgus_fgvideoram_w);
37   DECLARE_WRITE8_MEMBER(vulgus_bgvideoram_w);
38   DECLARE_WRITE8_MEMBER(vulgus_c804_w);
39   DECLARE_WRITE8_MEMBER(vulgus_palette_bank_w);
37
38   DECLARE_WRITE8_MEMBER(fgvideoram_w);
39   DECLARE_WRITE8_MEMBER(bgvideoram_w);
40   DECLARE_WRITE8_MEMBER(c804_w);
41   DECLARE_WRITE8_MEMBER(palette_bank_w);
42
4043   TILE_GET_INFO_MEMBER(get_fg_tile_info);
4144   TILE_GET_INFO_MEMBER(get_bg_tile_info);
45
4246   virtual void video_start();
4347   DECLARE_PALETTE_INIT(vulgus);
44   UINT32 screen_update_vulgus(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
45   INTERRUPT_GEN_MEMBER(vulgus_vblank_irq);
48
49   UINT32 screen_update(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
4650   void draw_sprites(bitmap_ind16 &bitmap,const rectangle &cliprect);
51   
52   INTERRUPT_GEN_MEMBER(vblank_irq);
4753};
trunk/src/mame/video/vulgus.c
r243813r243814
113113   m_bg_tilemap = &machine().tilemap().create(m_gfxdecode, tilemap_get_info_delegate(FUNC(vulgus_state::get_bg_tile_info),this),TILEMAP_SCAN_COLS,16,16,32,32);
114114
115115   m_fg_tilemap->configure_groups(*m_gfxdecode->gfx(0), 47);
116   
117   save_item(NAME(m_palette_bank));
116118}
117119
118120
r243813r243814
122124
123125***************************************************************************/
124126
125WRITE8_MEMBER(vulgus_state::vulgus_fgvideoram_w)
127WRITE8_MEMBER(vulgus_state::fgvideoram_w)
126128{
127129   m_fgvideoram[offset] = data;
128130   m_fg_tilemap->mark_tile_dirty(offset & 0x3ff);
129131}
130132
131WRITE8_MEMBER(vulgus_state::vulgus_bgvideoram_w)
133WRITE8_MEMBER(vulgus_state::bgvideoram_w)
132134{
133135   m_bgvideoram[offset] = data;
134136   m_bg_tilemap->mark_tile_dirty(offset & 0x3ff);
135137}
136138
137139
138WRITE8_MEMBER(vulgus_state::vulgus_c804_w)
140WRITE8_MEMBER(vulgus_state::c804_w)
139141{
140142   /* bits 0 and 1 are coin counters */
141143   coin_counter_w(machine(), 0, data & 0x01);
r243813r243814
146148}
147149
148150
149WRITE8_MEMBER(vulgus_state::vulgus_palette_bank_w)
151WRITE8_MEMBER(vulgus_state::palette_bank_w)
150152{
151153   if (m_palette_bank != (data & 3))
152154   {
r243813r243814
194196   }
195197}
196198
197UINT32 vulgus_state::screen_update_vulgus(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
199UINT32 vulgus_state::screen_update(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
198200{
199201   m_bg_tilemap->set_scrollx(0, m_scroll_low[1] + 256 * m_scroll_high[1]);
200202   m_bg_tilemap->set_scrolly(0, m_scroll_low[0] + 256 * m_scroll_high[0]);


Previous 199869 Revisions Next


© 1997-2024 The MAME Team