Previous 199869 Revisions Next

r36636 Wednesday 25th March, 2015 at 18:00:50 UTC by Osso
powerins.c, ppmast93.c: added save state support (nw)
[src/mame/drivers]powerins.c ppmast93.c
[src/mame/includes]powerins.h
[src/mame/video]powerins.c

trunk/src/mame/drivers/powerins.c
r245147r245148
4343***************************************************************************/
4444
4545
46WRITE16_MEMBER(powerins_state::powerins_okibank_w)
46WRITE16_MEMBER(powerins_state::okibank_w)
4747{
4848   if (ACCESSING_BITS_0_7)
4949   {
r245147r245148
5858   }
5959}
6060
61WRITE16_MEMBER(powerins_state::powerins_soundlatch_w)
61WRITE16_MEMBER(powerins_state::soundlatch_w)
6262{
6363   if (ACCESSING_BITS_0_7)
6464      soundlatch_byte_w(space, 0, data & 0xff);
r245147r245148
7676   AM_RANGE(0x100002, 0x100003) AM_READ_PORT("P1_P2")
7777   AM_RANGE(0x100008, 0x100009) AM_READ_PORT("DSW1")
7878   AM_RANGE(0x10000a, 0x10000b) AM_READ_PORT("DSW2")
79   AM_RANGE(0x100014, 0x100015) AM_WRITE(powerins_flipscreen_w)                                // Flip Screen
79   AM_RANGE(0x100014, 0x100015) AM_WRITE(flipscreen_w)                                // Flip Screen
8080   AM_RANGE(0x100016, 0x100017) AM_WRITENOP                                                    // ? always 1
81   AM_RANGE(0x100018, 0x100019) AM_WRITE(powerins_tilebank_w)                                  // Tiles Banking (VRAM 0)
82   AM_RANGE(0x10001e, 0x10001f) AM_WRITE(powerins_soundlatch_w)                                // Sound Latch
83   AM_RANGE(0x100030, 0x100031) AM_WRITE(powerins_okibank_w)                                   // Sound
81   AM_RANGE(0x100018, 0x100019) AM_WRITE(tilebank_w)                                  // Tiles Banking (VRAM 0)
82   AM_RANGE(0x10001e, 0x10001f) AM_WRITE(soundlatch_w)                                // Sound Latch
83   AM_RANGE(0x100030, 0x100031) AM_WRITE(okibank_w)                                   // Sound
8484   AM_RANGE(0x120000, 0x120fff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette")   // Palette
8585   AM_RANGE(0x130000, 0x130007) AM_RAM AM_SHARE("vctrl_0")                             // VRAM 0 Control
86   AM_RANGE(0x140000, 0x143fff) AM_RAM_WRITE(powerins_vram_0_w) AM_SHARE("vram_0")     // VRAM 0
87   AM_RANGE(0x170000, 0x170fff) AM_RAM_WRITE(powerins_vram_1_w) AM_SHARE("vram_1")     // VRAM 1
88   AM_RANGE(0x171000, 0x171fff) AM_WRITE(powerins_vram_1_w)                                    // Mirror of VRAM 1?
86   AM_RANGE(0x140000, 0x143fff) AM_RAM_WRITE(vram_0_w) AM_SHARE("vram_0")     // VRAM 0
87   AM_RANGE(0x170000, 0x170fff) AM_RAM_WRITE(vram_1_w) AM_SHARE("vram_1")     // VRAM 1
88   AM_RANGE(0x171000, 0x171fff) AM_WRITE(vram_1_w)                                    // Mirror of VRAM 1?
8989   AM_RANGE(0x180000, 0x18ffff) AM_RAM AM_SHARE("spriteram")                                   // RAM + Sprites
9090ADDRESS_MAP_END
9191
r245147r245148
9696   AM_RANGE(0x100002, 0x100003) AM_READ_PORT("P1_P2")
9797   AM_RANGE(0x100008, 0x100009) AM_READ_PORT("DSW1")
9898   AM_RANGE(0x10000a, 0x10000b) AM_READ_PORT("DSW2")
99   AM_RANGE(0x100014, 0x100015) AM_WRITE(powerins_flipscreen_w)                                // Flip Screen
99   AM_RANGE(0x100014, 0x100015) AM_WRITE(flipscreen_w)                                // Flip Screen
100100   AM_RANGE(0x100016, 0x100017) AM_WRITENOP                                                    // ? always 1
101   AM_RANGE(0x100018, 0x100019) AM_WRITE(powerins_tilebank_w)                                  // Tiles Banking (VRAM 0)
101   AM_RANGE(0x100018, 0x100019) AM_WRITE(tilebank_w)                                  // Tiles Banking (VRAM 0)
102102   AM_RANGE(0x10001e, 0x10001f) AM_WRITENOP                                                    // Sound Latch, NOPed since there is no sound cpu
103   AM_RANGE(0x100030, 0x100031) AM_WRITE(powerins_okibank_w)                                   // Sound
103   AM_RANGE(0x100030, 0x100031) AM_WRITE(okibank_w)                                   // Sound
104104   AM_RANGE(0x10003e, 0x10003f) AM_DEVREADWRITE8("oki1", okim6295_device, read, write, 0x00ff)     // (used by powerina)
105105   AM_RANGE(0x120000, 0x120fff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette")   // Palette
106106   AM_RANGE(0x130000, 0x130007) AM_RAM AM_SHARE("vctrl_0")                             // VRAM 0 Control
107   AM_RANGE(0x140000, 0x143fff) AM_RAM_WRITE(powerins_vram_0_w) AM_SHARE("vram_0")     // VRAM 0
108   AM_RANGE(0x170000, 0x170fff) AM_RAM_WRITE(powerins_vram_1_w) AM_SHARE("vram_1")     // VRAM 1
109   AM_RANGE(0x171000, 0x171fff) AM_WRITE(powerins_vram_1_w)                                    // Mirror of VRAM 1?
107   AM_RANGE(0x140000, 0x143fff) AM_RAM_WRITE(vram_0_w) AM_SHARE("vram_0")     // VRAM 0
108   AM_RANGE(0x170000, 0x170fff) AM_RAM_WRITE(vram_1_w) AM_SHARE("vram_1")     // VRAM 1
109   AM_RANGE(0x171000, 0x171fff) AM_WRITE(vram_1_w)                                    // Mirror of VRAM 1?
110110   AM_RANGE(0x180000, 0x18ffff) AM_RAM AM_SHARE("spriteram")                                   // RAM + Sprites
111111ADDRESS_MAP_END
112112
r245147r245148
311311
312312***************************************************************************/
313313
314void powerins_state::machine_reset()
314void powerins_state::machine_start()
315315{
316   m_oki_bank = -1;    // samples bank "unitialised"
316   save_item(NAME(m_oki_bank));
317317}
318318
319WRITE_LINE_MEMBER(powerins_state::irqhandler)
319void powerins_state::machine_reset()
320320{
321   m_soundcpu->set_input_line(0, state ? ASSERT_LINE : CLEAR_LINE);
321   m_oki_bank = -1;    // samples bank "uninitialised"
322322}
323323
324324static MACHINE_CONFIG_START( powerins, powerins_state )
r245147r245148
339339   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
340340   MCFG_SCREEN_SIZE(320, 256)
341341   MCFG_SCREEN_VISIBLE_AREA(0, 320-1, 0+16, 256-16-1)
342   MCFG_SCREEN_UPDATE_DRIVER(powerins_state, screen_update_powerins)
342   MCFG_SCREEN_UPDATE_DRIVER(powerins_state, screen_update)
343343   MCFG_SCREEN_PALETTE("palette")
344344
345345   MCFG_GFXDECODE_ADD("gfxdecode", "palette", powerins)
r245147r245148
357357   MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.15)
358358
359359   MCFG_SOUND_ADD("ym2203", YM2203, 12000000 / 8)
360   MCFG_YM2203_IRQ_HANDLER(WRITELINE(powerins_state, irqhandler))
360   MCFG_YM2203_IRQ_HANDLER(INPUTLINE("soundcpu", 0))
361361   MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 2.0)
362362
363363   MCFG_DEVICE_ADD("nmk112", NMK112, 0)
r245147r245148
701701
702702
703703/* all supported sets give a 93.10.20 date */
704GAME( 1993, powerins,  0,        powerins, powerins, driver_device, 0, ROT0, "Atlus", "Power Instinct (USA)", 0 )
705GAME( 1993, powerinsj, powerins, powerins, powerinj, driver_device, 0, ROT0, "Atlus", "Gouketsuji Ichizoku (Japan)", 0 )
706GAME( 1993, powerinsa, powerins, powerina, powerins, driver_device, 0, ROT0, "bootleg", "Power Instinct (USA, bootleg set 1)", 0 )
707GAME( 1993, powerinsb, powerins, powerinb, powerins, driver_device, 0, ROT0, "bootleg", "Power Instinct (USA, bootleg set 2)", 0 )
704GAME( 1993, powerins,  0,        powerins, powerins, driver_device, 0, ROT0, "Atlus", "Power Instinct (USA)", GAME_SUPPORTS_SAVE )
705GAME( 1993, powerinsj, powerins, powerins, powerinj, driver_device, 0, ROT0, "Atlus", "Gouketsuji Ichizoku (Japan)", GAME_SUPPORTS_SAVE )
706GAME( 1993, powerinsa, powerins, powerina, powerins, driver_device, 0, ROT0, "bootleg", "Power Instinct (USA, bootleg set 1)", GAME_SUPPORTS_SAVE )
707GAME( 1993, powerinsb, powerins, powerinb, powerins, driver_device, 0, ROT0, "bootleg", "Power Instinct (USA, bootleg set 2)", GAME_SUPPORTS_SAVE )
trunk/src/mame/drivers/ppmast93.c
r245147r245148
131131
132132#include "emu.h"
133133#include "cpu/z80/z80.h"
134#include "sound/3812intf.h"
135134#include "sound/2413intf.h"
136135#include "sound/dac.h"
137136
r245147r245148
141140public:
142141   ppmast93_state(const machine_config &mconfig, device_type type, const char *tag)
143142      : driver_device(mconfig, type, tag),
144      m_bgram(*this, "bgram"),
145      m_fgram(*this, "fgram"),
146143      m_maincpu(*this, "maincpu"),
147144      m_dac(*this, "dac"),
148      m_gfxdecode(*this, "gfxdecode") { }
145      m_ymsnd(*this, "ymsnd"),
146      m_gfxdecode(*this, "gfxdecode"),
147      m_bgram(*this, "bgram"),
148      m_fgram(*this, "fgram") { }
149149
150   tilemap_t *m_fg_tilemap;
151   tilemap_t *m_bg_tilemap;
152   required_shared_ptr<UINT8> m_bgram;
153   required_shared_ptr<UINT8> m_fgram;
154   DECLARE_WRITE8_MEMBER(ppmast93_fgram_w);
155   DECLARE_WRITE8_MEMBER(ppmast93_bgram_w);
156   DECLARE_WRITE8_MEMBER(ppmast93_port4_w);
157   DECLARE_WRITE8_MEMBER(ppmast_sound_w);
158   TILE_GET_INFO_MEMBER(get_ppmast93_bg_tile_info);
159   TILE_GET_INFO_MEMBER(get_ppmast93_fg_tile_info);
160   virtual void video_start();
161   UINT32 screen_update_ppmast93(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
162150   required_device<cpu_device> m_maincpu;
163151   required_device<dac_device> m_dac;
152   required_device<ym2413_device> m_ymsnd;
164153   required_device<gfxdecode_device> m_gfxdecode;
165};
166154
155   required_shared_ptr<UINT8> m_bgram;
156   required_shared_ptr<UINT8> m_fgram;
167157
158   tilemap_t *m_fg_tilemap;
159   tilemap_t *m_bg_tilemap;
160   
161   DECLARE_WRITE8_MEMBER(fgram_w);
162   DECLARE_WRITE8_MEMBER(bgram_w);
163   DECLARE_WRITE8_MEMBER(port4_w);
164   DECLARE_WRITE8_MEMBER(sound_w);
165   
166   TILE_GET_INFO_MEMBER(get_bg_tile_info);
167   TILE_GET_INFO_MEMBER(get_fg_tile_info);
168   
169   virtual void machine_start();
170   virtual void video_start();
171   
172   UINT32 screen_update(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
173};
168174
169175
170WRITE8_MEMBER(ppmast93_state::ppmast93_fgram_w)
176void ppmast93_state::machine_start()
171177{
178   membank("cpubank")->configure_entries(0, 8, memregion("maincpu")->base(), 0x4000);
179}
180
181WRITE8_MEMBER(ppmast93_state::fgram_w)
182{
172183   m_fgram[offset] = data;
173184   m_fg_tilemap->mark_tile_dirty(offset/2);
174185}
175186
176WRITE8_MEMBER(ppmast93_state::ppmast93_bgram_w)
187WRITE8_MEMBER(ppmast93_state::bgram_w)
177188{
178189   m_bgram[offset] = data;
179190   m_bg_tilemap->mark_tile_dirty(offset/2);
180191}
181192
182WRITE8_MEMBER(ppmast93_state::ppmast93_port4_w)
193WRITE8_MEMBER(ppmast93_state::port4_w)
183194{
184   UINT8 *rom = memregion("maincpu")->base();
185   int bank;
186
187195   coin_counter_w(machine(), 0, data & 0x08);
188196   coin_counter_w(machine(), 1, data & 0x10);
189197
190   bank = data & 0x07;
191   membank("bank1")->set_base(&rom[0x10000+(bank*0x4000)]);
198   membank("cpubank")->set_entry(data & 0x07);
192199}
193200
194201static ADDRESS_MAP_START( ppmast93_cpu1_map, AS_PROGRAM, 8, ppmast93_state )
195   AM_RANGE(0x0000, 0x7fff) AM_ROM AM_WRITENOP AM_REGION("maincpu", 0x10000)
196   AM_RANGE(0x8000, 0xbfff) AM_ROMBANK("bank1")
197   AM_RANGE(0xd000, 0xd7ff) AM_RAM_WRITE(ppmast93_bgram_w) AM_SHARE("bgram")
202   AM_RANGE(0x0000, 0x7fff) AM_ROM AM_WRITENOP
203   AM_RANGE(0x8000, 0xbfff) AM_ROMBANK("cpubank")
204   AM_RANGE(0xd000, 0xd7ff) AM_RAM_WRITE(bgram_w) AM_SHARE("bgram")
198205   AM_RANGE(0xd800, 0xdfff) AM_WRITENOP
199   AM_RANGE(0xf000, 0xf7ff) AM_RAM_WRITE(ppmast93_fgram_w) AM_SHARE("fgram")
206   AM_RANGE(0xf000, 0xf7ff) AM_RAM_WRITE(fgram_w) AM_SHARE("fgram")
200207   AM_RANGE(0xf800, 0xffff) AM_RAM
201208ADDRESS_MAP_END
202209
203210static ADDRESS_MAP_START( ppmast93_cpu1_io, AS_IO, 8, ppmast93_state )
204211   ADDRESS_MAP_GLOBAL_MASK(0xff)
205   AM_RANGE(0x00, 0x00) AM_READ_PORT("P1")
212   AM_RANGE(0x00, 0x00) AM_READ_PORT("P1") AM_WRITE(soundlatch_byte_w)
206213   AM_RANGE(0x02, 0x02) AM_READ_PORT("P2")
207   AM_RANGE(0x04, 0x04) AM_READ_PORT("SYSTEM")
214   AM_RANGE(0x04, 0x04) AM_READ_PORT("SYSTEM") AM_WRITE(port4_w)
208215   AM_RANGE(0x06, 0x06) AM_READ_PORT("DSW1")
209216   AM_RANGE(0x08, 0x08) AM_READ_PORT("DSW2")
210
211   AM_RANGE(0x00, 0x00) AM_WRITE(soundlatch_byte_w)
212   AM_RANGE(0x04, 0x04) AM_WRITE(ppmast93_port4_w)
213217ADDRESS_MAP_END
214218
215219static ADDRESS_MAP_START( ppmast93_cpu2_map, AS_PROGRAM, 8, ppmast93_state )
r245147r245148
219223ADDRESS_MAP_END
220224
221225
222WRITE8_MEMBER(ppmast93_state::ppmast_sound_w)
226WRITE8_MEMBER(ppmast93_state::sound_w)
223227{
224228   switch(offset&0xff)
225229   {
226230      case 0:
227      case 1: machine().device<ym2413_device>("ymsnd")->write(space,offset,data); break;
231      case 1: m_ymsnd->write(space,offset,data); break;
228232      case 2: m_dac->write_unsigned8(data);break;
229233      default: logerror("%x %x - %x\n",offset,data,space.device().safe_pcbase());
230234   }
231235}
232236
233237static ADDRESS_MAP_START( ppmast93_cpu2_io, AS_IO, 8, ppmast93_state )
234      AM_RANGE(0x0000, 0xffff) AM_ROM AM_WRITE(ppmast_sound_w) AM_REGION("sub", 0x20000)
238      AM_RANGE(0x0000, 0xffff) AM_ROM AM_WRITE(sound_w) AM_REGION("sub", 0x20000)
235239ADDRESS_MAP_END
236240
237241static INPUT_PORTS_START( ppmast93 )
r245147r245148
332336   GFXDECODE_ENTRY( "gfx1", 0, tiles8x8_layout, 0, 16 )
333337GFXDECODE_END
334338
335TILE_GET_INFO_MEMBER(ppmast93_state::get_ppmast93_bg_tile_info)
339TILE_GET_INFO_MEMBER(ppmast93_state::get_bg_tile_info)
336340{
337341   int code = (m_bgram[tile_index*2+1] << 8) | m_bgram[tile_index*2];
338342   SET_TILE_INFO_MEMBER(0,
r245147r245148
341345         0);
342346}
343347
344TILE_GET_INFO_MEMBER(ppmast93_state::get_ppmast93_fg_tile_info)
348TILE_GET_INFO_MEMBER(ppmast93_state::get_fg_tile_info)
345349{
346350   int code = (m_fgram[tile_index*2+1] << 8) | m_fgram[tile_index*2];
347351   SET_TILE_INFO_MEMBER(0,
r245147r245148
352356
353357void ppmast93_state::video_start()
354358{
355   m_bg_tilemap = &machine().tilemap().create(m_gfxdecode, tilemap_get_info_delegate(FUNC(ppmast93_state::get_ppmast93_bg_tile_info),this),TILEMAP_SCAN_ROWS,8,8,32, 32);
356   m_fg_tilemap = &machine().tilemap().create(m_gfxdecode, tilemap_get_info_delegate(FUNC(ppmast93_state::get_ppmast93_fg_tile_info),this),TILEMAP_SCAN_ROWS,8,8,32, 32);
359   m_bg_tilemap = &machine().tilemap().create(m_gfxdecode, tilemap_get_info_delegate(FUNC(ppmast93_state::get_bg_tile_info),this),TILEMAP_SCAN_ROWS,8,8,32, 32);
360   m_fg_tilemap = &machine().tilemap().create(m_gfxdecode, tilemap_get_info_delegate(FUNC(ppmast93_state::get_fg_tile_info),this),TILEMAP_SCAN_ROWS,8,8,32, 32);
357361
358362   m_fg_tilemap->set_transparent_pen(0);
359363}
360364
361UINT32 ppmast93_state::screen_update_ppmast93(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
365UINT32 ppmast93_state::screen_update(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
362366{
363367   m_bg_tilemap->draw(screen, bitmap, cliprect, 0,0);
364368   m_fg_tilemap->draw(screen, bitmap, cliprect, 0,0);
r245147r245148
370374   MCFG_CPU_ADD("maincpu", Z80,5000000)         /* 5 MHz */
371375   MCFG_CPU_PROGRAM_MAP(ppmast93_cpu1_map)
372376   MCFG_CPU_IO_MAP(ppmast93_cpu1_io)
373   MCFG_CPU_VBLANK_INT_DRIVER("screen", ppmast93_state, irq0_line_hold)
377   MCFG_CPU_VBLANK_INT_DRIVER("screen", ppmast93_state, irq0_line_hold)
374378
375379   MCFG_CPU_ADD("sub", Z80,5000000)         /* 5 MHz */
376380   MCFG_CPU_PROGRAM_MAP(ppmast93_cpu2_map)
r245147r245148
383387   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
384388   MCFG_SCREEN_SIZE(256, 256)
385389   MCFG_SCREEN_VISIBLE_AREA(0, 256-1, 0, 256-1)
386   MCFG_SCREEN_UPDATE_DRIVER(ppmast93_state, screen_update_ppmast93)
390   MCFG_SCREEN_UPDATE_DRIVER(ppmast93_state, screen_update)
387391   MCFG_SCREEN_PALETTE("palette")
388392
389393   MCFG_GFXDECODE_ADD("gfxdecode", "palette", ppmast93)
r245147r245148
402406MACHINE_CONFIG_END
403407
404408ROM_START( ppmast93 )
405   ROM_REGION( 0x30000, "maincpu", 0 )
406   ROM_LOAD( "2.up7", 0x10000, 0x20000, CRC(8854d8db) SHA1(9d93ddfb44d533772af6519747a6cb50b42065cd) )
409   ROM_REGION( 0x20000, "maincpu", 0 )
410   ROM_LOAD( "2.up7", 0x00000, 0x20000, CRC(8854d8db) SHA1(9d93ddfb44d533772af6519747a6cb50b42065cd) )
407411
408412   ROM_REGION( 0x30000, "sub", 0 )
409413   ROM_LOAD( "1.ue7", 0x10000, 0x20000, CRC(8e26939e) SHA1(e62441e523f5be6a3889064cc5e0f44545260e93) )
r245147r245148
418422   ROM_LOAD( "prom1.ug26", 0x200, 0x100, CRC(d979c64e) SHA1(172c9579013d58e35a5b4f732e360811ac36295e) )
419423ROM_END
420424
421GAME( 1993, ppmast93, 0, ppmast93, ppmast93, driver_device, 0, ROT0, "Electronic Devices S.R.L.", "Ping Pong Masters '93", GAME_IMPERFECT_SOUND )
425GAME( 1993, ppmast93, 0, ppmast93, ppmast93, driver_device, 0, ROT0, "Electronic Devices S.R.L.", "Ping Pong Masters '93", GAME_IMPERFECT_SOUND | GAME_SUPPORTS_SAVE )
trunk/src/mame/includes/powerins.h
r245147r245148
66   powerins_state(const machine_config &mconfig, device_type type, const char *tag)
77      : driver_device(mconfig, type, tag),
88      m_maincpu(*this, "maincpu"),
9      m_soundcpu(*this, "soundcpu"),
9      m_gfxdecode(*this, "gfxdecode"),
10      m_screen(*this, "screen"),
11      m_palette(*this, "palette"),
1012      m_vctrl_0(*this, "vctrl_0"),
1113      m_vram_0(*this, "vram_0"),
1214      m_vram_1(*this, "vram_1"),
13      m_spriteram(*this, "spriteram"),
14      m_gfxdecode(*this, "gfxdecode"),
15      m_screen(*this, "screen"),
16      m_palette(*this, "palette")
17      { }
15      m_spriteram(*this, "spriteram")   { }
1816
1917
2018   required_device<cpu_device> m_maincpu;
21   optional_device<cpu_device> m_soundcpu;
19   required_device<gfxdecode_device> m_gfxdecode;
20   required_device<screen_device> m_screen;
21   required_device<palette_device> m_palette;
22
2223   required_shared_ptr<UINT16> m_vctrl_0;
2324   required_shared_ptr<UINT16> m_vram_0;
2425   required_shared_ptr<UINT16> m_vram_1;
2526   required_shared_ptr<UINT16> m_spriteram;
26   required_device<gfxdecode_device> m_gfxdecode;
27   required_device<screen_device> m_screen;
28   required_device<palette_device> m_palette;
2927
30   UINT16 *m_vctrl_1;
3128   tilemap_t *m_tilemap_0;
3229   tilemap_t *m_tilemap_1;
3330   int m_oki_bank;
3431   int m_tile_bank;
35   DECLARE_WRITE16_MEMBER(powerins_okibank_w);
36   DECLARE_WRITE16_MEMBER(powerins_soundlatch_w);
32
33   DECLARE_WRITE16_MEMBER(okibank_w);
34   DECLARE_WRITE16_MEMBER(soundlatch_w);
35   DECLARE_WRITE16_MEMBER(flipscreen_w);
36   DECLARE_WRITE16_MEMBER(tilebank_w);
37   DECLARE_WRITE16_MEMBER(vram_0_w);
38   DECLARE_WRITE16_MEMBER(vram_1_w);
3739   DECLARE_READ8_MEMBER(powerinb_fake_ym2203_r);
38   DECLARE_WRITE16_MEMBER(powerins_flipscreen_w);
39   DECLARE_WRITE16_MEMBER(powerins_tilebank_w);
40   DECLARE_WRITE16_MEMBER(powerins_vram_0_w);
41   DECLARE_WRITE16_MEMBER(powerins_vram_1_w);
40
4241   TILE_GET_INFO_MEMBER(get_tile_info_0);
43   TILEMAP_MAPPER_MEMBER(powerins_get_memory_offset_0);
4442   TILE_GET_INFO_MEMBER(get_tile_info_1);
43   TILEMAP_MAPPER_MEMBER(get_memory_offset_0);
44   
45   virtual void machine_start();
4546   virtual void machine_reset();
4647   virtual void video_start();
47   UINT32 screen_update_powerins(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
48   
49   UINT32 screen_update(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
4850   void draw_sprites(bitmap_ind16 &bitmap,const rectangle &cliprect);
49   DECLARE_WRITE_LINE_MEMBER(irqhandler);
5051};
trunk/src/mame/video/powerins.c
r245147r245148
1212        W           shows layer 2
1313        A           shows the sprites
1414
15        Keys can be used togheter!
15        Keys can be used together!
1616
1717        [ 2 Scrolling Layers ]
1818
r245147r245148
4848***************************************************************************/
4949
5050
51WRITE16_MEMBER(powerins_state::powerins_flipscreen_w)
51WRITE16_MEMBER(powerins_state::flipscreen_w)
5252{
5353   if (ACCESSING_BITS_0_7) flip_screen_set(data & 1 );
5454}
5555
56WRITE16_MEMBER(powerins_state::powerins_tilebank_w)
56WRITE16_MEMBER(powerins_state::tilebank_w)
5757{
5858   if (ACCESSING_BITS_0_7)
5959   {
r245147r245148
105105         0);
106106}
107107
108WRITE16_MEMBER(powerins_state::powerins_vram_0_w)
108WRITE16_MEMBER(powerins_state::vram_0_w)
109109{
110110   COMBINE_DATA(&m_vram_0[offset]);
111111   m_tilemap_0->mark_tile_dirty(offset);
112112}
113113
114TILEMAP_MAPPER_MEMBER(powerins_state::powerins_get_memory_offset_0)
114TILEMAP_MAPPER_MEMBER(powerins_state::get_memory_offset_0)
115115{
116116   return  (col * TILES_PER_PAGE_Y) +
117117
r245147r245148
144144         0);
145145}
146146
147WRITE16_MEMBER(powerins_state::powerins_vram_1_w)
147WRITE16_MEMBER(powerins_state::vram_1_w)
148148{
149149   COMBINE_DATA(&m_vram_1[offset]);
150150   m_tilemap_1->mark_tile_dirty(offset);
r245147r245148
157157/***************************************************************************
158158
159159
160                                Vh_Start
160                                video_start
161161
162162
163163***************************************************************************/
164164
165165void powerins_state::video_start()
166166{
167   m_tilemap_0 = &machine().tilemap().create(m_gfxdecode, tilemap_get_info_delegate(FUNC(powerins_state::get_tile_info_0),this),tilemap_mapper_delegate(FUNC(powerins_state::powerins_get_memory_offset_0),this),16,16,DIM_NX_0, DIM_NY_0 );
167   m_tilemap_0 = &machine().tilemap().create(m_gfxdecode, tilemap_get_info_delegate(FUNC(powerins_state::get_tile_info_0),this),tilemap_mapper_delegate(FUNC(powerins_state::get_memory_offset_0),this),16,16,DIM_NX_0, DIM_NY_0 );
168168   m_tilemap_1 = &machine().tilemap().create(m_gfxdecode, tilemap_get_info_delegate(FUNC(powerins_state::get_tile_info_1),this),TILEMAP_SCAN_COLS,8,8,DIM_NX_1, DIM_NY_1 );
169169
170170   m_tilemap_0->set_scroll_rows(1);
r245147r245148
173173   m_tilemap_1->set_scroll_rows(1);
174174   m_tilemap_1->set_scroll_cols(1);
175175   m_tilemap_1->set_transparent_pen(15);
176   
177   save_item(NAME(m_tile_bank));
176178}
177179
178180
179
180
181
182
183181/***************************************************************************
184182
185183
r245147r245148
300298***************************************************************************/
301299
302300
303UINT32 powerins_state::screen_update_powerins(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
301UINT32 powerins_state::screen_update(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
304302{
305303   int layers_ctrl = -1;
306304


Previous 199869 Revisions Next


© 1997-2024 The MAME Team