Previous 199869 Revisions Next

r32175 Thursday 18th September, 2014 at 13:29:30 UTC by David Haywood
use standard video code in new raiden 2/dx / zt sets (nw)
[src/mame/drivers]r2dx_v33.c
[src/mame/includes]raiden2.h

trunk/src/mame/drivers/r2dx_v33.c
r32174r32175
2121#include "includes/raiden2.h"
2222
2323
24class r2dx_v33_state : public driver_device
24class r2dx_v33_state : public raiden2_state
2525{
2626public:
2727   r2dx_v33_state(const machine_config &mconfig, device_type type, const char *tag)
28      : driver_device(mconfig, type, tag),
29      m_spriteram(*this, "spriteram"),
30      m_bg_vram(*this, "bg_vram"),
31      m_md_vram(*this, "md_vram"),
32      m_fg_vram(*this, "fg_vram"),
33      m_tx_vram(*this, "tx_vram"),
34      m_maincpu(*this, "maincpu"),
35      m_seibu_sound(*this, "seibu_sound"),
36      m_eeprom(*this, "eeprom"),
37      m_gfxdecode(*this, "gfxdecode"),
38      m_palette(*this, "palette") { }
28      : raiden2_state(mconfig, type, tag),
29      m_eeprom(*this, "eeprom")
30   { }
3931
40   required_shared_ptr<UINT16> m_spriteram;
41   required_shared_ptr<UINT16> m_bg_vram;
42   required_shared_ptr<UINT16> m_md_vram;
43   required_shared_ptr<UINT16> m_fg_vram;
44   required_shared_ptr<UINT16> m_tx_vram;
45
46   required_device<cpu_device> m_maincpu;
47   optional_device<seibu_sound_device> m_seibu_sound;
4832   optional_device<eeprom_serial_93cxx_device> m_eeprom;
49   required_device<gfxdecode_device> m_gfxdecode;
50   required_device<palette_device> m_palette;
5133
34
5235   DECLARE_WRITE16_MEMBER(rdx_bg_vram_w);
5336   DECLARE_WRITE16_MEMBER(rdx_md_vram_w);
5437   DECLARE_WRITE16_MEMBER(rdx_fg_vram_w);
r32174r32175
6750   DECLARE_DRIVER_INIT(rdx_v33);
6851   DECLARE_DRIVER_INIT(nzerotea);
6952   DECLARE_DRIVER_INIT(zerotm2k);
70   TILE_GET_INFO_MEMBER(get_bg_tile_info);
71   TILE_GET_INFO_MEMBER(get_md_tile_info);
72   TILE_GET_INFO_MEMBER(get_fg_tile_info);
73   TILE_GET_INFO_MEMBER(get_tx_tile_info);
7453
75   tilemap_t *m_bg_tilemap;
76   tilemap_t *m_md_tilemap;
77   tilemap_t *m_fg_tilemap;
78   tilemap_t *m_tx_tilemap;
79   virtual void video_start();
54
8055   UINT32 screen_update_rdx_v33(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
8156   INTERRUPT_GEN_MEMBER(rdx_v33_interrupt);
8257   void draw_sprites(bitmap_ind16 &bitmap,const rectangle &cliprect,int pri);
8358};
8459
8560
86TILE_GET_INFO_MEMBER(r2dx_v33_state::get_bg_tile_info)
87{
88   int tile = m_bg_vram[tile_index];
89   int color = (tile>>12)&0xf;
90
91   tile &= 0xfff;
92
93   SET_TILE_INFO_MEMBER(1,tile + 0x0000,color,0);
94}
95
96TILE_GET_INFO_MEMBER(r2dx_v33_state::get_md_tile_info)
97{
98   int tile = m_md_vram[tile_index];
99   int color = (tile>>12)&0xf;
100
101   tile &= 0xfff;
102
103   SET_TILE_INFO_MEMBER(2,tile + 0x2000,color,0);
104}
105
106TILE_GET_INFO_MEMBER(r2dx_v33_state::get_fg_tile_info)
107{
108   int tile = m_fg_vram[tile_index];
109   int color = (tile>>12)&0xf;
110
111   tile &= 0xfff;
112
113   SET_TILE_INFO_MEMBER(3,tile + 0x1000,color,0);
114}
115
116TILE_GET_INFO_MEMBER(r2dx_v33_state::get_tx_tile_info)
117{
118   int tile = m_tx_vram[tile_index];
119   int color = (tile>>12)&0xf;
120
121   tile &= 0xfff;
122
123   SET_TILE_INFO_MEMBER(4,tile,color,0);
124}
125
126/* copied from Legionnaire */
127void r2dx_v33_state::draw_sprites(bitmap_ind16 &bitmap,const rectangle &cliprect,int pri)
128{
129   UINT16 *spriteram16 = m_spriteram;
130   int offs,fx,fy,x,y,color,sprite;
131//  int cur_pri;
132   int dx,dy,ax,ay;
133
134   for (offs = 0x400-4;offs >= 0;offs -= 4)
135   {
136      UINT16 data = spriteram16[offs];
137      //if (!(data &0x8000)) continue;
138
139      //cur_pri = (spriteram16[offs+1] & 0xc000) >> 14;
140      //if (cur_pri!=pri) continue;
141
142      sprite = spriteram16[offs+1];
143
144      //sprite &= 0x7fff;
145      //if(data & 0x8000) sprite |= 0x4000;
146      //if(spriteram16[offs+3] & 0x8000) sprite |= 0x8000;//tile banking?,used in Denjin Makai
147
148      y = spriteram16[offs+3];
149      x = spriteram16[offs+2];
150
151      x&=0xfff;
152      y&=0xfff;
153
154      if (x&0x8000) x-=0x10000;
155      if (y&0x8000) y-=0x10000;
156
157      color = (data &0x3f);
158      fx =  (data &0x8000) >> 15;
159      fy =  (data &0x0800) >> 11;
160      dx = ((data &0x0700) >> 8)  + 1;
161      dy = ((data &0x7000) >> 12) + 1;
162
163      if (!fx)
164      {
165         if(!fy)
166         {
167            for (ax=0; ax<dx; ax++)
168               for (ay=0; ay<dy; ay++)
169               {
170                  m_gfxdecode->gfx(0)->transpen(bitmap,cliprect,
171                  sprite++,
172                  color,fx,fy,x+ax*16,y+ay*16,15);
173               }
174         }
175         else
176         {
177            for (ax=0; ax<dx; ax++)
178               for (ay=0; ay<dy; ay++)
179               {
180                  m_gfxdecode->gfx(0)->transpen(bitmap,cliprect,
181                  sprite++,
182                  color,fx,fy,x+ax*16,y+(dy-ay-1)*16,15);
183               }
184         }
185      }
186      else
187      {
188         if(!fy)
189         {
190            for (ax=0; ax<dx; ax++)
191               for (ay=0; ay<dy; ay++)
192               {
193                  m_gfxdecode->gfx(0)->transpen(bitmap,cliprect,
194                  sprite++,
195                  color,fx,fy,x+(dx-ax-1)*16,y+ay*16,15);
196               }
197         }
198         else
199         {
200            for (ax=0; ax<dx; ax++)
201               for (ay=0; ay<dy; ay++)
202               {
203                  m_gfxdecode->gfx(0)->transpen(bitmap,cliprect,
204                  sprite++,
205                  color,fx,fy,x+(dx-ax-1)*16,y+(dy-ay-1)*16,15);
206               }
207         }
208      }
209   }
210}
211
212void r2dx_v33_state::video_start()
213{
214   m_bg_tilemap = &machine().tilemap().create(m_gfxdecode, tilemap_get_info_delegate(FUNC(r2dx_v33_state::get_bg_tile_info),this), TILEMAP_SCAN_ROWS,16,16,32,32);
215   m_md_tilemap = &machine().tilemap().create(m_gfxdecode, tilemap_get_info_delegate(FUNC(r2dx_v33_state::get_md_tile_info),this), TILEMAP_SCAN_ROWS,16,16,32,32);
216   m_fg_tilemap = &machine().tilemap().create(m_gfxdecode, tilemap_get_info_delegate(FUNC(r2dx_v33_state::get_fg_tile_info),this), TILEMAP_SCAN_ROWS,16,16,32,32);
217   m_tx_tilemap = &machine().tilemap().create(m_gfxdecode, tilemap_get_info_delegate(FUNC(r2dx_v33_state::get_tx_tile_info),this), TILEMAP_SCAN_ROWS,8, 8, 64,32);
218
219   m_bg_tilemap->set_transparent_pen(15);
220   m_md_tilemap->set_transparent_pen(15);
221   m_fg_tilemap->set_transparent_pen(15);
222   m_tx_tilemap->set_transparent_pen(15);
223}
224
225UINT32 r2dx_v33_state::screen_update_rdx_v33(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
226{
227   bitmap.fill(m_palette->black_pen(), cliprect);
228
229   m_bg_tilemap->draw(screen, bitmap, cliprect, 0, 0);
230   m_md_tilemap->draw(screen, bitmap, cliprect, 0, 0);
231   m_fg_tilemap->draw(screen, bitmap, cliprect, 0, 0);
232
233   draw_sprites(bitmap,cliprect,0);
234
235   m_tx_tilemap->draw(screen, bitmap, cliprect, 0, 0);
236
237   /* debug DMA processing */
238   if(0)
239   {
240      static UINT32 src_addr = 0x100000;
241      static int frame;
242      address_space &space = m_maincpu->space(AS_PROGRAM);
243
244      //if(machine().input().code_pressed_once(KEYCODE_A))
245      //  src_addr+=0x800;
246
247      //if(machine().input().code_pressed_once(KEYCODE_S))
248      //  src_addr-=0x800;
249
250      frame++;
251
252      popmessage("%08x 0",src_addr);
253
254      //if(machine().input().code_pressed_once(KEYCODE_Z))
255      if(frame == 5)
256      {
257         int i,data;
258         static UINT8 *rom = memregion("mainprg")->base();
259
260         for(i=0;i<0x800;i+=2)
261         {
262            data = rom[src_addr+i+0];
263            space.write_byte(i+0xd000+0, data);
264            data = rom[src_addr+i+1];
265            space.write_byte(i+0xd000+1, data);
266         }
267
268         popmessage("%08x 1",src_addr);
269         m_bg_tilemap->mark_all_dirty();
270         frame = 0;
271         src_addr+=0x800;
272      }
273   }
274   return 0;
275}
276
27761WRITE16_MEMBER(r2dx_v33_state::rdx_v33_eeprom_w)
27862{
27963   if (ACCESSING_BITS_0_7)
r32174r32175
327111   mcu_prog_offs = data;
328112}
329113
330WRITE16_MEMBER(r2dx_v33_state::rdx_bg_vram_w)
331{
332   COMBINE_DATA(&m_bg_vram[offset]);
333   m_bg_tilemap->mark_tile_dirty(offset);
334}
335
336WRITE16_MEMBER(r2dx_v33_state::rdx_md_vram_w)
337{
338   COMBINE_DATA(&m_md_vram[offset]);
339   m_md_tilemap->mark_tile_dirty(offset);
340}
341
342WRITE16_MEMBER(r2dx_v33_state::rdx_fg_vram_w)
343{
344   COMBINE_DATA(&m_fg_vram[offset]);
345   m_fg_tilemap->mark_tile_dirty(offset);
346}
347
348WRITE16_MEMBER(r2dx_v33_state::rdx_tx_vram_w)
349{
350   COMBINE_DATA(&m_tx_vram[offset]);
351   m_tx_tilemap->mark_tile_dirty(offset);
352}
353
354114READ16_MEMBER(r2dx_v33_state::rdx_v33_unknown_r)
355115{
356116   return machine().rand();
r32174r32175
428188   AM_RANGE(0x00800, 0x00fff) AM_RAM // copies eeprom here?
429189   AM_RANGE(0x01000, 0x0bfff) AM_RAM
430190
431   AM_RANGE(0x0c000, 0x0c7ff) AM_RAM AM_SHARE("spriteram")
191   AM_RANGE(0x0c000, 0x0c7ff) AM_RAM AM_SHARE("sprites")
432192   AM_RANGE(0x0c800, 0x0cfff) AM_RAM
433   AM_RANGE(0x0d000, 0x0d7ff) AM_RAM_WRITE(rdx_bg_vram_w) AM_SHARE("bg_vram")
434   AM_RANGE(0x0d800, 0x0dfff) AM_RAM_WRITE(rdx_md_vram_w) AM_SHARE("md_vram")
435   AM_RANGE(0x0e000, 0x0e7ff) AM_RAM_WRITE(rdx_fg_vram_w) AM_SHARE("fg_vram")
436   AM_RANGE(0x0e800, 0x0f7ff) AM_RAM_WRITE(rdx_tx_vram_w) AM_SHARE("tx_vram")
193   AM_RANGE(0x0d000, 0x0d7ff) AM_RAM_WRITE(raiden2_background_w) AM_SHARE("back_data")
194   AM_RANGE(0x0d800, 0x0dfff) AM_RAM_WRITE(raiden2_foreground_w) AM_SHARE("fore_data")
195   AM_RANGE(0x0e000, 0x0e7ff) AM_RAM_WRITE(raiden2_midground_w)  AM_SHARE("mid_data")
196   AM_RANGE(0x0e800, 0x0f7ff) AM_RAM_WRITE(raiden2_text_w) AM_SHARE("text_data")
437197   AM_RANGE(0x0f800, 0x0ffff) AM_RAM /* Stack area */
438198   AM_RANGE(0x10000, 0x1efff) AM_RAM
439199   AM_RANGE(0x1f000, 0x1ffff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette")
r32174r32175
502262   AM_RANGE(0x00800, 0x00fff) AM_RAM
503263   AM_RANGE(0x01000, 0x0bfff) AM_RAM
504264
505   AM_RANGE(0x0c000, 0x0c7ff) AM_RAM AM_SHARE("spriteram")
265   AM_RANGE(0x0c000, 0x0c7ff) AM_RAM AM_SHARE("sprites")
506266   AM_RANGE(0x0c800, 0x0cfff) AM_RAM
507   AM_RANGE(0x0d000, 0x0d7ff) AM_RAM_WRITE(rdx_bg_vram_w) AM_SHARE("bg_vram")
508   AM_RANGE(0x0d800, 0x0dfff) AM_RAM_WRITE(rdx_md_vram_w) AM_SHARE("md_vram")
509   AM_RANGE(0x0e000, 0x0e7ff) AM_RAM_WRITE(rdx_fg_vram_w) AM_SHARE("fg_vram")
510   AM_RANGE(0x0e800, 0x0f7ff) AM_RAM_WRITE(rdx_tx_vram_w) AM_SHARE("tx_vram")
267   AM_RANGE(0x0d000, 0x0d7ff) AM_RAM_WRITE(raiden2_background_w) AM_SHARE("back_data")
268   AM_RANGE(0x0d800, 0x0dfff) AM_RAM_WRITE(raiden2_foreground_w) AM_SHARE("fore_data")
269   AM_RANGE(0x0e000, 0x0e7ff) AM_RAM_WRITE(raiden2_midground_w)  AM_SHARE("mid_data")
270   AM_RANGE(0x0e800, 0x0f7ff) AM_RAM_WRITE(raiden2_text_w) AM_SHARE("text_data")
511271   AM_RANGE(0x0f800, 0x0ffff) AM_RAM /* Stack area */
512272   AM_RANGE(0x10000, 0x1efff) AM_RAM
513273   AM_RANGE(0x1f000, 0x1ffff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette")
r32174r32175
561321};
562322
563323static GFXDECODE_START( rdx_v33 )
564   GFXDECODE_ENTRY( "gfx3", 0x00000, rdx_v33_spritelayout, 0x000, 0x40 )
565   GFXDECODE_ENTRY( "gfx2", 0x00000, rdx_v33_tilelayout,   0x400, 0x10 )
324   GFXDECODE_ENTRY( "gfx1", 0x00000, rdx_v33_charlayout,   0x700, 128 )
325   GFXDECODE_ENTRY( "gfx2", 0x00000, rdx_v33_tilelayout,   0x400, 128 )
326   GFXDECODE_ENTRY( "gfx3", 0x00000, rdx_v33_spritelayout, 0x000, 4096 )
566327   GFXDECODE_ENTRY( "gfx2", 0x00000, rdx_v33_tilelayout,   0x500, 0x10 )
567328   GFXDECODE_ENTRY( "gfx2", 0x00000, rdx_v33_tilelayout,   0x600, 0x10 )
568   GFXDECODE_ENTRY( "gfx1", 0x00000, rdx_v33_charlayout,   0x700, 0x10 )
569329   GFXDECODE_ENTRY( "gfx1", 0x00000, rdx_v33_tilelayout,   0x700, 0x10 ) // debugging, to be removed
570330GFXDECODE_END
571331
r32174r32175
705465
706466   MCFG_EEPROM_SERIAL_93C46_ADD("eeprom")
707467
708   /* video hardware */
709468   MCFG_SCREEN_ADD("screen", RASTER)
710   MCFG_SCREEN_REFRESH_RATE(60)
711   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */)
712   MCFG_SCREEN_SIZE(64*8, 64*8)
713   MCFG_SCREEN_VISIBLE_AREA(0*8, 40*8-1, 0*8, 30*8-1)
714   MCFG_SCREEN_UPDATE_DRIVER(r2dx_v33_state, screen_update_rdx_v33)
715   MCFG_SCREEN_PALETTE("palette")
469   MCFG_SCREEN_VIDEO_ATTRIBUTES(VIDEO_UPDATE_AFTER_VBLANK)
470   MCFG_SCREEN_REFRESH_RATE(55.47)    /* verified on pcb */
471   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(500) /* not accurate */)
472   MCFG_SCREEN_SIZE(44*8, 34*8)
473   MCFG_SCREEN_VISIBLE_AREA(0*8, 40*8-1, 0, 30*8-1)
474   MCFG_SCREEN_UPDATE_DRIVER(raiden2_state, screen_update_raiden2)
716475
717476   MCFG_GFXDECODE_ADD("gfxdecode", "palette", rdx_v33)
718477   MCFG_PALETTE_ADD("palette", 2048)
719478   MCFG_PALETTE_FORMAT(xBBBBBGGGGGRRRRR)
720479
480   MCFG_VIDEO_START_OVERRIDE(raiden2_state,raiden2)
481
721482   /* sound hardware */
722483   MCFG_SPEAKER_STANDARD_MONO("mono")
723484
r32174r32175
735496   //  SEIBU2_RAIDEN2_SOUND_SYSTEM_CPU(14318180/4)
736497   SEIBU_NEWZEROTEAM_SOUND_SYSTEM_CPU(14318180/4)
737498
738   /* video hardware */
739499   MCFG_SCREEN_ADD("screen", RASTER)
740500   MCFG_SCREEN_VIDEO_ATTRIBUTES(VIDEO_UPDATE_AFTER_VBLANK)
741501   MCFG_SCREEN_REFRESH_RATE(55.47)    /* verified on pcb */
742   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate *//2)
743   MCFG_SCREEN_SIZE(64*8, 64*8)
744   MCFG_SCREEN_VISIBLE_AREA(0*8, 40*8-1, 0, 32*8-1)
745   MCFG_SCREEN_UPDATE_DRIVER(r2dx_v33_state, screen_update_rdx_v33)
746   MCFG_SCREEN_PALETTE("palette")
502   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(500) /* not accurate */)
503   MCFG_SCREEN_SIZE(44*8, 34*8)
504   MCFG_SCREEN_VISIBLE_AREA(0*8, 40*8-1, 0, 30*8-1)
505   MCFG_SCREEN_UPDATE_DRIVER(raiden2_state, screen_update_raiden2)
747506
748507   MCFG_GFXDECODE_ADD("gfxdecode", "palette", rdx_v33)
749508   MCFG_PALETTE_ADD("palette", 2048)
750509   MCFG_PALETTE_FORMAT(xBBBBBGGGGGRRRRR)
751510
511   MCFG_VIDEO_START_OVERRIDE(raiden2_state,raiden2)
512
752513   /* sound hardware */
753514//  SEIBU_SOUND_SYSTEM_YM2151_RAIDEN2_INTERFACE(28636360/8,28636360/28,1,2)
754515   SEIBU_SOUND_SYSTEM_YM3812_INTERFACE(14318180/4,1320000)
r32174r32175
758519
759520DRIVER_INIT_MEMBER(r2dx_v33_state,rdx_v33)
760521{
522   init_blending(raiden_blended_colors);
523   static const int spri[5] = { 0, 1, 2, 3, -1 };
524   cur_spri = spri;
525
761526   membank("bank1")->configure_entries(0, 0x40, memregion("mainprg")->base(), 0x10000);
762527   membank("bank2")->configure_entries(0, 0x40, memregion("mainprg")->base(), 0x10000);
763528
r32174r32175
782547
783548DRIVER_INIT_MEMBER(r2dx_v33_state,nzerotea)
784549{
550   init_blending(raiden_blended_colors);
551   static const int spri[5] = { 0, 1, 2, 3, -1 };
552   cur_spri = spri;
553
785554   membank("bank1")->configure_entries(0, 2, memregion("mainprg")->base(), 0x20000);
786555
787556   zeroteam_decrypt_sprites(machine());
r32174r32175
791560
792561DRIVER_INIT_MEMBER(r2dx_v33_state,zerotm2k)
793562{
563   init_blending(raiden_blended_colors);
564   static const int spri[5] = { 0, 1, 2, 3, -1 };
565   cur_spri = spri;
566
794567   membank("bank1")->configure_entries(0, 2, memregion("mainprg")->base(), 0x20000);
795568
796569   // sprites are NOT encrypted
r32174r32175
879652   ROM_REGION( 0x400000, "gfx2", 0 ) /* background gfx */
880653   ROM_LOAD( "bg.612", 0x000000, 0x400000, CRC(162c61e9) SHA1(bd0a6a29804b84196ba6bf3402e9f30a25da9269) )
881654
882   ROM_REGION( 0x800000, "gfx3", 0 ) /* sprite gfx (encrypted) */
655   ROM_REGION( 0x800000, "gfx3", 0 ) /* sprite gfx (encrypted) */ // roughly 1/4 of the rom does not decrypt properly with the R2 keys?
883656   ROM_LOAD32_WORD( "obj1.724", 0x000000, 0x400000, CRC(7d218985) SHA1(777241a533defcbea3d7e735f309478d260bad52) )
884657   ROM_LOAD32_WORD( "obj2.725", 0x000002, 0x400000, CRC(b09434d9) SHA1(da75252b7693ab791fece4c10b8a4910edb76c88) )
885658
r32174r32175
949722   ROM_LOAD( "mt28f400b1.u0619", 0x100000, 0x080000, CRC(266acee6) SHA1(2a9da66c313a7536c7fb393134b9df0bb122cb2b) ) /* SMT rom, PCB silkscreened BG3 */
950723   /* PCB has an unpopulated socket rom space for a LH535A00D at u0615 for alt BG3 location */
951724
952   ROM_REGION( 0x800000, "gfx3", 0 ) /* sprite gfx (encrypted) */
725   ROM_REGION( 0x800000, "gfx3", 0 ) /* sprite gfx (NOT encrypted) */
953726   ROM_LOAD32_WORD( "musha_obj-1a.u0729", 0x000000, 0x200000, CRC(9b2cf68c) SHA1(cd8cb277091bfa125fd0f68410de39f72f1c7047) ) /* PCB silkscreened OBJ1 */
954727   ROM_LOAD32_WORD( "musha_obj-2a.u0730", 0x000002, 0x200000, CRC(fcabee05) SHA1(b2220c0311b3bd2fd44fb56fff7c27bed0816fe9) ) /* PCB silkscreened OBJ2 */
955728   /* PCB has unpopulated rom space for two SMT roms at u0734 & u0736 for alt OBJ1 & OBJ2 locations) */
trunk/src/mame/includes/raiden2.h
r32174r32175
6969   UINT16 *back_data, *fore_data, *mid_data, *text_data; // private buffers, allocated in init
7070   required_shared_ptr<UINT16> sprites;
7171   required_device<cpu_device> m_maincpu;
72   required_device<seibu_sound_device> m_seibu_sound;
72   optional_device<seibu_sound_device> m_seibu_sound;
7373   required_device<gfxdecode_device> m_gfxdecode;
7474   required_device<palette_device> m_palette;
7575
r32174r32175
231231   void init_blending(const UINT16 *table);
232232
233233   bitmap_ind16 tile_buffer, sprite_buffer;
234   required_device<raiden2cop_device> m_raiden2cop;
234   optional_device<raiden2cop_device> m_raiden2cop;
235235
236236protected:
237237   virtual void machine_start();

Previous 199869 Revisions Next


© 1997-2024 The MAME Team