Previous 199869 Revisions Next

r17640 Tuesday 4th September, 2012 at 17:10:48 UTC by Aaron Giles
Some Namco System 2 cleanups, removing the need for
AM_BASE/_SIZE_LEGACY. Also moved some handlers and
statics into the state class.
[src/mame/drivers]namcoic.c namcos2.c namcos21.c
[src/mame/includes]namcoic.h namcos2.h
[src/mame/video]namcos2.c

trunk/src/mame/includes/namcos2.h
r17639r17640
8585   NAMCOFL_FINAL_LAP_R
8686};
8787
88class namcos2_state : public driver_device
89{
90public:
91   namcos2_state(const machine_config &mconfig, device_type type, const char *tag)
92      : driver_device(mconfig, type, tag),
93        m_dpram(*this, "dpram"),
94        m_spriteram(*this, "spriteram"),
95        m_paletteram(*this, "paletteram"),
96        m_rozram(*this, "rozram")
97   { }
98   DECLARE_READ16_MEMBER(dpram_word_r);
99   DECLARE_WRITE16_MEMBER(dpram_word_w);
100   DECLARE_READ8_MEMBER(dpram_byte_r);
101   DECLARE_WRITE8_MEMBER(dpram_byte_w);
102   DECLARE_DRIVER_INIT(cosmogng);
103   DECLARE_DRIVER_INIT(sgunner2);
104   DECLARE_DRIVER_INIT(kyukaidk);
105   DECLARE_DRIVER_INIT(bubbletr);
106   DECLARE_DRIVER_INIT(suzuk8h2);
107   DECLARE_DRIVER_INIT(burnforc);
108   DECLARE_DRIVER_INIT(gollygho);
109   DECLARE_DRIVER_INIT(rthun2j);
110   DECLARE_DRIVER_INIT(sws);
111   DECLARE_DRIVER_INIT(finehour);
112   DECLARE_DRIVER_INIT(finallap);
113   DECLARE_DRIVER_INIT(dirtfoxj);
114   DECLARE_DRIVER_INIT(marvlanj);
115   DECLARE_DRIVER_INIT(sws92);
116   DECLARE_DRIVER_INIT(dsaber);
117   DECLARE_DRIVER_INIT(assault);
118   DECLARE_DRIVER_INIT(mirninja);
119   DECLARE_DRIVER_INIT(finalap2);
120   DECLARE_DRIVER_INIT(valkyrie);
121   DECLARE_DRIVER_INIT(fourtrax);
122   DECLARE_DRIVER_INIT(finalap3);
123   DECLARE_DRIVER_INIT(luckywld);
124   DECLARE_DRIVER_INIT(assaultj);
125   DECLARE_DRIVER_INIT(dsaberj);
126   DECLARE_DRIVER_INIT(suzuka8h);
127   DECLARE_DRIVER_INIT(phelios);
128   DECLARE_DRIVER_INIT(sws93);
129   DECLARE_DRIVER_INIT(metlhawk);
130   DECLARE_DRIVER_INIT(sws92g);
131   DECLARE_DRIVER_INIT(assaultp_hack);
132   DECLARE_DRIVER_INIT(assaultp);
133   DECLARE_DRIVER_INIT(ordyne);
134   DECLARE_DRIVER_INIT(marvland);
135   DECLARE_DRIVER_INIT(rthun2);
136   
137   virtual void video_start();
138   void video_start_finallap();
139   void video_start_luckywld();
140   void video_start_metlhawk();
141   void video_start_sgunner();
142
143   UINT32 screen_update(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
144   UINT32 screen_update_finallap(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
145   UINT32 screen_update_luckywld(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
146   UINT32 screen_update_metlhawk(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
147   UINT32 screen_update_sgunner(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
148   
149   DECLARE_READ16_MEMBER( paletteram_word_r );
150   DECLARE_WRITE16_MEMBER( paletteram_word_w );
151   DECLARE_READ16_MEMBER( spriteram_word_r );
152   DECLARE_WRITE16_MEMBER( spriteram_word_w );
153   DECLARE_READ16_MEMBER( rozram_word_r );
154   DECLARE_WRITE16_MEMBER( rozram_word_w );
155   DECLARE_READ16_MEMBER( roz_ctrl_word_r );
156   DECLARE_WRITE16_MEMBER( roz_ctrl_word_w );
157
158   void update_palette();
159   void apply_clip( rectangle &clip, const rectangle &cliprect );
160   void draw_roz(bitmap_ind16 &bitmap, const rectangle &cliprect);
161   void draw_sprites(bitmap_ind16 &bitmap, const rectangle &cliprect, int pri, int control );
162   void draw_sprites_metalhawk(bitmap_ind16 &bitmap, const rectangle &cliprect, int pri );
163   UINT16 get_palette_register( int which );
164
165   required_shared_ptr<UINT8> m_dpram;   /* 2Kx8 */
166   optional_shared_ptr<UINT16> m_spriteram;
167   required_shared_ptr<UINT16> m_paletteram;
168   optional_shared_ptr<UINT16> m_rozram;
169
170   UINT16 m_roz_ctrl[0x8];
171   tilemap_t *m_tilemap_roz;
172
173};
174
88175/*----------- defined in video/namcos2.c -----------*/
89176
90177#define NAMCOS21_NUM_COLORS 0x8000
91178
92179VIDEO_START( namcos2 );
93SCREEN_UPDATE_IND16( namcos2_default );
94180
95181VIDEO_START( finallap );
96SCREEN_UPDATE_IND16( finallap );
97182
98183VIDEO_START( luckywld );
99SCREEN_UPDATE_IND16( luckywld );
100184
101185VIDEO_START( metlhawk );
102SCREEN_UPDATE_IND16( metlhawk );
103186
104187VIDEO_START( sgunner );
105SCREEN_UPDATE_IND16( sgunner );
106188
107extern UINT16 *namcos2_sprite_ram;
108WRITE16_HANDLER( namcos2_sprite_ram_w );
109READ16_HANDLER( namcos2_sprite_ram_r );
110
111189int namcos2_GetPosIrqScanline( running_machine &machine );
112190
113191WRITE16_HANDLER( namcos2_gfx_ctrl_w );
r17639r17640
116194/**************************************************************/
117195/*  Shared video palette function handlers                    */
118196/**************************************************************/
119READ16_HANDLER( namcos2_68k_video_palette_r );
120WRITE16_HANDLER( namcos2_68k_video_palette_w );
121197
122198#define VIRTUAL_PALETTE_BANKS 30
123extern UINT16 *namcos2_68k_palette_ram;
124extern size_t namcos2_68k_palette_size;
125199
126200/**************************************************************/
127201/*  ROZ - Rotate & Zoom memory function handlers              */
128202/**************************************************************/
129203
130WRITE16_HANDLER( namcos2_68k_roz_ctrl_w );
131READ16_HANDLER( namcos2_68k_roz_ctrl_r );
132
133WRITE16_HANDLER( namcos2_68k_roz_ram_w );
134READ16_HANDLER( namcos2_68k_roz_ram_r );
135extern UINT16 *namcos2_68k_roz_ram;
136
137204/*----------- defined in machine/namcos2.c -----------*/
138205
139206extern void (*namcos2_kickstart)(running_machine &machine, int internal);
trunk/src/mame/includes/namcoic.h
r17639r17640
111111WRITE32_HANDLER( namco_tilemapcontrol32_le_w );
112112
113113/***********************************************************************************/
114
115/* Namco System II Sprite Rendering */
116void namcos2_draw_sprites( running_machine &machine, bitmap_ind16 &bitmap, const rectangle &cliprect, int pri, int control );
117
118void namcos2_draw_sprites_metalhawk( running_machine &machine, bitmap_ind16 &bitmap, const rectangle &cliprect, int pri );
119
120/***********************************************************************************/
121114/* C355 Motion Object Emulation */
122115
123116/* for palXOR, supply either 0x0 (normal) or 0xf (palette mapping reversed) */
trunk/src/mame/video/namcos2.c
r17639r17640
55#include "includes/namcos2.h"
66#include "includes/namcoic.h"
77
8UINT16 *namcos2_sprite_ram;
9UINT16 *namcos2_68k_palette_ram;
10size_t namcos2_68k_palette_size;
11//size_t namcos2_68k_roz_ram_size;
12UINT16 *namcos2_68k_roz_ram;
13
14static UINT16 namcos2_68k_roz_ctrl[0x8];
15static tilemap_t *tilemap_roz;
16
178static void
189TilemapCB( running_machine &machine, UINT16 code, int *tile, int *mask )
1910{
r17639r17640
5849
5950static TILE_GET_INFO( get_tile_info_roz )
6051{
61   int tile = namcos2_68k_roz_ram[tile_index];
52   int tile = machine.driver_data<namcos2_state>()->m_rozram[tile_index];
6253   SET_TILE_INFO(3,tile,0/*color*/,0);
6354} /* get_tile_info_roz */
6455
r17639r17640
244235   }
245236} /* DrawRozHelper */
246237
247static void
248DrawROZ(bitmap_ind16 &bitmap,const rectangle &cliprect)
238void namcos2_state::draw_roz(bitmap_ind16 &bitmap, const rectangle &cliprect)
249239{
250240   const int xoffset = 38,yoffset = 0;
251241   struct RozParam rozParam;
252242
253243   rozParam.color = (namcos2_gfx_ctrl & 0x0f00);
254   rozParam.incxx  = (INT16)namcos2_68k_roz_ctrl[0];
255   rozParam.incxy  = (INT16)namcos2_68k_roz_ctrl[1];
256   rozParam.incyx  = (INT16)namcos2_68k_roz_ctrl[2];
257   rozParam.incyy  = (INT16)namcos2_68k_roz_ctrl[3];
258   rozParam.startx = (INT16)namcos2_68k_roz_ctrl[4];
259   rozParam.starty = (INT16)namcos2_68k_roz_ctrl[5];
244   rozParam.incxx  = (INT16)m_roz_ctrl[0];
245   rozParam.incxy  = (INT16)m_roz_ctrl[1];
246   rozParam.incyx  = (INT16)m_roz_ctrl[2];
247   rozParam.incyy  = (INT16)m_roz_ctrl[3];
248   rozParam.startx = (INT16)m_roz_ctrl[4];
249   rozParam.starty = (INT16)m_roz_ctrl[5];
260250   rozParam.size = 2048;
261251   rozParam.wrap = 1;
262252
263253
264   switch( namcos2_68k_roz_ctrl[7] )
254   switch( m_roz_ctrl[7] )
265255   {
266256   case 0x4400: /* (2048x2048) */
267257      break;
r17639r17640
292282   rozParam.incyx<<=8;
293283   rozParam.incyy<<=8;
294284
295   DrawRozHelper( bitmap, tilemap_roz, cliprect, &rozParam );
285   DrawRozHelper( bitmap, m_tilemap_roz, cliprect, &rozParam );
296286}
297287
298READ16_HANDLER(namcos2_68k_roz_ctrl_r)
288READ16_MEMBER(namcos2_state::roz_ctrl_word_r)
299289{
300   return namcos2_68k_roz_ctrl[offset];
290   return m_roz_ctrl[offset];
301291}
302292
303WRITE16_HANDLER( namcos2_68k_roz_ctrl_w )
293WRITE16_MEMBER( namcos2_state::roz_ctrl_word_w )
304294{
305   COMBINE_DATA(&namcos2_68k_roz_ctrl[offset]);
295   COMBINE_DATA(&m_roz_ctrl[offset]);
306296}
307297
308READ16_HANDLER( namcos2_68k_roz_ram_r )
298READ16_MEMBER( namcos2_state::rozram_word_r )
309299{
310   return namcos2_68k_roz_ram[offset];
300   return m_rozram[offset];
311301}
312302
313WRITE16_HANDLER( namcos2_68k_roz_ram_w )
303WRITE16_MEMBER( namcos2_state::rozram_word_w )
314304{
315   COMBINE_DATA(&namcos2_68k_roz_ram[offset]);
316   tilemap_roz->mark_tile_dirty(offset);
305   COMBINE_DATA(&m_rozram[offset]);
306   m_tilemap_roz->mark_tile_dirty(offset);
317307//      if( space->machine().input().code_pressed(KEYCODE_Q) )
318308//      {
319309//          debugger_break(space->machine());
r17639r17640
322312
323313/**************************************************************************/
324314
325static UINT16
326GetPaletteRegister( int which )
315inline UINT16 namcos2_state::get_palette_register( int which )
327316{
328   const UINT16 *source = &namcos2_68k_palette_ram[0x3000/2];
317   const UINT16 *source = &m_paletteram[0x3000/2];
329318   return ((source[which*2]&0xff)<<8) | (source[which*2+1]&0xff);
330319}
331320
332READ16_HANDLER( namcos2_68k_video_palette_r )
321READ16_MEMBER( namcos2_state::paletteram_word_r )
333322{
334323   if( (offset&0x1800) == 0x1800 )
335324   {
r17639r17640
339328      /* registers 6,7: unmapped? */
340329      if (offset > 0x180b) return 0xff;
341330   }
342   return namcos2_68k_palette_ram[offset];
331   return m_paletteram[offset];
343332} /* namcos2_68k_video_palette_r */
344333
345WRITE16_HANDLER( namcos2_68k_video_palette_w )
334WRITE16_MEMBER( namcos2_state::paletteram_word_w )
346335{
347336   if( (offset&0x1800) == 0x1800 )
348337   {
r17639r17640
366355            luckywld:   $00E8 at titlescreen, $00A0 in game and $0118 if in tunnel
367356            suzuka8h1/2:    $00E8 and $00A0 */
368357         case 0x1808: case 0x1809:
369            // if (data^namcos2_68k_palette_ram[offset]) printf("%04X\n",data<<((~offset&1)<<3)|namcos2_68k_palette_ram[offset^1]<<((offset&1)<<3));
358            // if (data^m_paletteram[offset]) printf("%04X\n",data<<((~offset&1)<<3)|m_paletteram[offset^1]<<((offset&1)<<3));
370359            break;
371360
372361         /* register 5: POSIRQ scanline (only 8 bits used) */
373362         /*case 0x180a:*/ case 0x180b:
374            if (data^namcos2_68k_palette_ram[offset]) {
375               namcos2_68k_palette_ram[offset] = data;
376               namcos2_adjust_posirq_timer(space->machine(),namcos2_GetPosIrqScanline(space->machine()));
363            if (data^m_paletteram[offset]) {
364               m_paletteram[offset] = data;
365               namcos2_adjust_posirq_timer(machine(),namcos2_GetPosIrqScanline(machine()));
377366            }
378367            break;
379368
r17639r17640
381370         default: break;
382371      }
383372
384      namcos2_68k_palette_ram[offset] = data;
373      m_paletteram[offset] = data;
385374   }
386375   else
387376   {
388      COMBINE_DATA(&namcos2_68k_palette_ram[offset]);
377      COMBINE_DATA(&m_paletteram[offset]);
389378   }
390379} /* namcos2_68k_video_palette_w */
391380
r17639r17640
393382int
394383namcos2_GetPosIrqScanline( running_machine &machine )
395384{
396   return (GetPaletteRegister(5) - 32) & 0xff;
385   return (machine.driver_data<namcos2_state>()->get_palette_register(5) - 32) & 0xff;
397386} /* namcos2_GetPosIrqScanline */
398387
399static void
400UpdatePalette( running_machine &machine )
388inline void
389namcos2_state::update_palette()
401390{
402391   int bank;
403392   for( bank=0; bank<0x20; bank++ )
r17639r17640
407396      int i;
408397      for( i=0; i<256; i++ )
409398      {
410         int r = namcos2_68k_palette_ram[offset | 0x0000] & 0x00ff;
411         int g = namcos2_68k_palette_ram[offset | 0x0800] & 0x00ff;
412         int b = namcos2_68k_palette_ram[offset | 0x1000] & 0x00ff;
413         palette_set_color(machine,pen++,MAKE_RGB(r,g,b));
399         int r = m_paletteram[offset | 0x0000] & 0x00ff;
400         int g = m_paletteram[offset | 0x0800] & 0x00ff;
401         int b = m_paletteram[offset | 0x1000] & 0x00ff;
402         palette_set_color(machine(),pen++,MAKE_RGB(r,g,b));
414403         offset++;
415404      }
416405   }
417} /* UpdatePalette */
406} /* update_palette */
418407
419408/**************************************************************************/
420409
r17639r17640
429418   }
430419}
431420
432WRITE16_HANDLER( namcos2_sprite_ram_w )
421WRITE16_MEMBER( namcos2_state::spriteram_word_w )
433422{
434   COMBINE_DATA(&namcos2_sprite_ram[offset]);
423   COMBINE_DATA(&m_spriteram[offset]);
435424}
436425
437READ16_HANDLER( namcos2_sprite_ram_r )
426READ16_MEMBER( namcos2_state::spriteram_word_r )
438427{
439   return namcos2_sprite_ram[offset];
428   return m_spriteram[offset];
440429}
441430
442431/**************************************************************************/
443432
444VIDEO_START( namcos2 )
433void namcos2_state::video_start()
445434{
446   namco_tilemap_init(machine,2,machine.root_device().memregion("gfx4")->base(),TilemapCB);
447   tilemap_roz = tilemap_create(machine, get_tile_info_roz,tilemap_scan_rows,8,8,256,256);
448   tilemap_roz->set_transparent_pen(0xff);
449   DrawSpriteInit(machine);
435   namco_tilemap_init(machine(), 2, memregion("gfx4")->base(), TilemapCB);
436   m_tilemap_roz = tilemap_create(machine(), get_tile_info_roz,tilemap_scan_rows,8,8,256,256);
437   m_tilemap_roz->set_transparent_pen(0xff);
438   DrawSpriteInit(machine());
450439}
451440
452static void
453ApplyClip( rectangle &clip, const rectangle &cliprect )
441void namcos2_state::apply_clip( rectangle &clip, const rectangle &cliprect )
454442{
455   clip.min_x = GetPaletteRegister(0) - 0x4a;
456   clip.max_x = GetPaletteRegister(1) - 0x4a - 1;
457   clip.min_y = GetPaletteRegister(2) - 0x21;
458   clip.max_y = GetPaletteRegister(3) - 0x21 - 1;
443   clip.min_x = get_palette_register(0) - 0x4a;
444   clip.max_x = get_palette_register(1) - 0x4a - 1;
445   clip.min_y = get_palette_register(2) - 0x21;
446   clip.max_y = get_palette_register(3) - 0x21 - 1;
459447   /* intersect with master clip rectangle */
460448   clip &= cliprect;
461} /* ApplyClip */
449} /* apply_clip */
462450
463SCREEN_UPDATE_IND16( namcos2_default )
451UINT32 namcos2_state::screen_update(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
464452{
465453   rectangle clip;
466454   int pri;
467455
468   UpdatePalette(screen.machine());
469   bitmap.fill(get_black_pen(screen.machine()), cliprect );
470   ApplyClip( clip, cliprect );
456   update_palette();
457   bitmap.fill(get_black_pen(machine()), cliprect );
458   apply_clip( clip, cliprect );
471459
472460   /* HACK: enable ROZ layer only if it has priority > 0 */
473   tilemap_roz->enable((namcos2_gfx_ctrl & 0x7000) ? 1 : 0);
461   m_tilemap_roz->enable((namcos2_gfx_ctrl & 0x7000) ? 1 : 0);
474462
475463   for( pri=0; pri<16; pri++ )
476464   {
r17639r17640
480468
481469         if( ((namcos2_gfx_ctrl & 0x7000) >> 12)==pri/2 )
482470         {
483            DrawROZ(bitmap,clip);
471            draw_roz(bitmap,clip);
484472         }
485         namcos2_draw_sprites(screen.machine(), bitmap, clip, pri/2, namcos2_gfx_ctrl );
473         draw_sprites(bitmap, clip, pri/2, namcos2_gfx_ctrl );
486474      }
487475   }
488476   return 0;
r17639r17640
490478
491479/**************************************************************************/
492480
493VIDEO_START( finallap )
481void namcos2_state::video_start_finallap()
494482{
495   namco_tilemap_init(machine,2,machine.root_device().memregion("gfx4")->base(),TilemapCB);
496   DrawSpriteInit(machine);
497   namco_road_init(machine, 3);
483   namco_tilemap_init(machine(),2,memregion("gfx4")->base(),TilemapCB);
484   DrawSpriteInit(machine());
485   namco_road_init(machine(), 3);
498486}
499487
500SCREEN_UPDATE_IND16( finallap )
488UINT32 namcos2_state::screen_update_finallap(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
501489{
502490   rectangle clip;
503491   int pri;
504492
505   UpdatePalette(screen.machine());
506   bitmap.fill(get_black_pen(screen.machine()), cliprect );
507   ApplyClip( clip, cliprect );
493   update_palette();
494   bitmap.fill(get_black_pen(machine()), cliprect );
495   apply_clip( clip, cliprect );
508496
509497   for( pri=0; pri<16; pri++ )
510498   {
r17639r17640
512500      {
513501         namco_tilemap_draw( bitmap, clip, pri/2 );
514502      }
515      namco_road_draw(screen.machine(), bitmap,clip,pri );
516      namcos2_draw_sprites(screen.machine(), bitmap,clip,pri,namcos2_gfx_ctrl );
503      namco_road_draw(machine(), bitmap,clip,pri );
504      draw_sprites(bitmap,clip,pri,namcos2_gfx_ctrl );
517505   }
518506   return 0;
519507}
520508
521509/**************************************************************************/
522510
523VIDEO_START( luckywld )
511void namcos2_state::video_start_luckywld()
524512{
525   namco_tilemap_init(machine,2,machine.root_device().memregion("gfx4")->base(),TilemapCB);
526   namco_obj_init( machine, 0, 0x0, NULL );
513   namco_tilemap_init(machine(),2,memregion("gfx4")->base(),TilemapCB);
514   namco_obj_init( machine(), 0, 0x0, NULL );
527515   if( namcos2_gametype==NAMCOS2_LUCKY_AND_WILD )
528516   {
529      namco_roz_init( machine, 1, "gfx5" );
517      namco_roz_init( machine(), 1, "gfx5" );
530518   }
531519   if( namcos2_gametype!=NAMCOS2_STEEL_GUNNER_2 )
532520   {
533      namco_road_init(machine, 3);
521      namco_road_init(machine(), 3);
534522   }
535523} /* luckywld */
536524
537SCREEN_UPDATE_IND16( luckywld )
525UINT32 namcos2_state::screen_update_luckywld(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
538526{
539527   rectangle clip;
540528   int pri;
541529
542   UpdatePalette(screen.machine());
543   bitmap.fill(get_black_pen(screen.machine()), cliprect );
544   ApplyClip( clip, cliprect );
530   update_palette();
531   bitmap.fill(get_black_pen(machine()), cliprect );
532   apply_clip( clip, cliprect );
545533
546534   for( pri=0; pri<16; pri++ )
547535   {
r17639r17640
549537      {
550538         namco_tilemap_draw( bitmap, clip, pri/2 );
551539      }
552      namco_road_draw(screen.machine(), bitmap,clip,pri );
540      namco_road_draw(machine(), bitmap,clip,pri );
553541      if( namcos2_gametype==NAMCOS2_LUCKY_AND_WILD )
554542      {
555543         namco_roz_draw( bitmap, clip, pri );
556544      }
557      namco_obj_draw(screen.machine(), bitmap, clip, pri );
545      namco_obj_draw(machine(), bitmap, clip, pri );
558546   }
559547   return 0;
560548}
561549
562550/**************************************************************************/
563551
564VIDEO_START( sgunner )
552void namcos2_state::video_start_sgunner()
565553{
566   namco_tilemap_init(machine,2,machine.root_device().memregion("gfx4")->base(),TilemapCB);
567   namco_obj_init( machine, 0, 0x0, NULL );
554   namco_tilemap_init(machine(),2,memregion("gfx4")->base(),TilemapCB);
555   namco_obj_init( machine(), 0, 0x0, NULL );
568556}
569557
570SCREEN_UPDATE_IND16( sgunner )
558UINT32 namcos2_state::screen_update_sgunner(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
571559{
572560   rectangle clip;
573561   int pri;
574562
575   UpdatePalette(screen.machine());
576   bitmap.fill(get_black_pen(screen.machine()), cliprect );
577   ApplyClip( clip, cliprect );
563   update_palette();
564   bitmap.fill(get_black_pen(machine()), cliprect );
565   apply_clip( clip, cliprect );
578566
579567   for( pri=0; pri<8; pri++ )
580568   {
581569      namco_tilemap_draw( bitmap, clip, pri );
582      namco_obj_draw(screen.machine(), bitmap, clip, pri );
570      namco_obj_draw(machine(), bitmap, clip, pri );
583571   }
584572   return 0;
585573}
r17639r17640
587575
588576/**************************************************************************/
589577
590VIDEO_START( metlhawk )
578void namcos2_state::video_start_metlhawk()
591579{
592   namco_tilemap_init(machine,2,machine.root_device().memregion("gfx4")->base(),TilemapCB);
593   namco_roz_init( machine, 1, "gfx5" );
580   namco_tilemap_init(machine(),2,memregion("gfx4")->base(),TilemapCB);
581   namco_roz_init( machine(), 1, "gfx5" );
594582}
595583
596SCREEN_UPDATE_IND16( metlhawk )
584UINT32 namcos2_state::screen_update_metlhawk(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
597585{
598586   rectangle clip;
599587   int pri;
600588
601   UpdatePalette(screen.machine());
602   bitmap.fill(get_black_pen(screen.machine()), cliprect );
603   ApplyClip( clip, cliprect );
589   update_palette();
590   bitmap.fill(get_black_pen(machine()), cliprect );
591   apply_clip( clip, cliprect );
604592
605593   for( pri=0; pri<16; pri++ )
606594   {
r17639r17640
609597         namco_tilemap_draw( bitmap, clip, pri/2 );
610598      }
611599      namco_roz_draw( bitmap, clip, pri );
612      namcos2_draw_sprites_metalhawk(screen.machine(), bitmap,clip,pri );
600      draw_sprites_metalhawk(bitmap,clip,pri );
613601   }
614602   return 0;
615603}
trunk/src/mame/drivers/namcos21.c
r17639r17640
10901090static ADDRESS_MAP_START( namcos21_68k_master, AS_PROGRAM, 16, namcos21_state )
10911091   AM_RANGE(0x000000, 0x0fffff) AM_ROM
10921092   AM_RANGE(0x100000, 0x10ffff) AM_RAM /* private work RAM */
1093   AM_RANGE(0x180000, 0x183fff) AM_READWRITE_LEGACY(NAMCOS2_68K_eeprom_R,NAMCOS2_68K_eeprom_W)// AM_BASE_LEGACY(&namcos2_eeprom) AM_SIZE_LEGACY(&namcos2_eeprom_size)
1093   AM_RANGE(0x180000, 0x183fff) AM_READWRITE_LEGACY(NAMCOS2_68K_eeprom_R,NAMCOS2_68K_eeprom_W)
10941094   AM_RANGE(0x1c0000, 0x1fffff) AM_READWRITE_LEGACY(namcos2_68k_master_C148_r,namcos2_68k_master_C148_w)
10951095   NAMCO21_68K_COMMON
10961096ADDRESS_MAP_END
r17639r17640
13201320static ADDRESS_MAP_START( am_master_winrun, AS_PROGRAM, 16, namcos21_state )
13211321   AM_RANGE(0x000000, 0x03ffff) AM_ROM
13221322   AM_RANGE(0x100000, 0x10ffff) AM_RAM /* work RAM */
1323   AM_RANGE(0x180000, 0x183fff) AM_READWRITE_LEGACY(NAMCOS2_68K_eeprom_R,NAMCOS2_68K_eeprom_W)// AM_BASE_LEGACY(&namcos2_eeprom) AM_SIZE_LEGACY(&namcos2_eeprom_size)
1323   AM_RANGE(0x180000, 0x183fff) AM_READWRITE_LEGACY(NAMCOS2_68K_eeprom_R,NAMCOS2_68K_eeprom_W)
13241324   AM_RANGE(0x1c0000, 0x1fffff) AM_READWRITE_LEGACY(namcos2_68k_master_C148_r,namcos2_68k_master_C148_w)
13251325   AM_RANGE(0x250000, 0x25ffff) AM_RAM AM_SHARE("winrun_polydata")
13261326   AM_RANGE(0x260000, 0x26ffff) AM_RAM /* unused? */
r17639r17640
14291429static ADDRESS_MAP_START( driveyes_68k_master, AS_PROGRAM, 16, namcos21_state )
14301430   AM_RANGE(0x000000, 0x03ffff) AM_ROM
14311431   AM_RANGE(0x100000, 0x10ffff) AM_RAM /* private work RAM */
1432   AM_RANGE(0x180000, 0x183fff) AM_READWRITE_LEGACY(NAMCOS2_68K_eeprom_R,NAMCOS2_68K_eeprom_W)// AM_BASE_LEGACY(&namcos2_eeprom) AM_SIZE_LEGACY(&namcos2_eeprom_size)
1432   AM_RANGE(0x180000, 0x183fff) AM_READWRITE_LEGACY(NAMCOS2_68K_eeprom_R,NAMCOS2_68K_eeprom_W)
14331433   AM_RANGE(0x1c0000, 0x1fffff) AM_READWRITE_LEGACY(namcos2_68k_master_C148_r,namcos2_68k_master_C148_w)
14341434   AM_RANGE(0x250000, 0x25ffff) AM_RAM AM_SHARE("winrun_polydata")
14351435   AM_RANGE(0x280000, 0x281fff) AM_WRITE(winrun_dspbios_w) AM_SHARE("winrun_dspbios")
trunk/src/mame/drivers/namcoic.c
r17639r17640
416416}
417417
418418void
419namcos2_draw_sprites(running_machine &machine, bitmap_ind16 &bitmap, const rectangle &cliprect, int pri, int control )
419namcos2_state::draw_sprites(bitmap_ind16 &bitmap, const rectangle &cliprect, int pri, int control )
420420{
421421   int offset = (control & 0x000f) * (128*4);
422422   int loop;
423423   if( pri==0 )
424424   {
425      machine.priority_bitmap.fill(0, cliprect );
425      machine().priority_bitmap.fill(0, cliprect );
426426   }
427427   for( loop=0; loop < 128; loop++ )
428428   {
r17639r17640
447447        *   Sprite colour index         D04-D07
448448        *   Sprite Size X               D10-D15
449449        */
450      int word3 = namcos2_sprite_ram[offset+(loop*4)+3];
450      int word3 = m_spriteram[offset+(loop*4)+3];
451451      if( (word3&0xf)==pri )
452452      {
453         int word0 = namcos2_sprite_ram[offset+(loop*4)+0];
454         int word1 = namcos2_sprite_ram[offset+(loop*4)+1];
455         int offset4 = namcos2_sprite_ram[offset+(loop*4)+2];
453         int word0 = m_spriteram[offset+(loop*4)+0];
454         int word1 = m_spriteram[offset+(loop*4)+1];
455         int offset4 = m_spriteram[offset+(loop*4)+2];
456456
457457         int sizey=((word0>>10)&0x3f)+1;
458458         int sizex=(word3>>10)&0x3f;
r17639r17640
472472            int scaley = (sizey<<16)/((word0&0x0200)?0x20:0x10);
473473            if(scalex && scaley)
474474            {
475               gfx_element *gfx = machine.gfx[rgn];
475               gfx_element *gfx = machine().gfx[rgn];
476476
477477               if( (word0&0x0200)==0 )
478478                  gfx_element_set_source_clip(gfx, (word1&0x0001) ? 16 : 0, 16, (word1&0x0002) ? 16 : 0, 16);
r17639r17640
495495   }
496496} /* namcos2_draw_sprites */
497497
498void
499namcos2_draw_sprites_metalhawk(running_machine &machine, bitmap_ind16 &bitmap, const rectangle &cliprect, int pri )
498void namcos2_state::draw_sprites_metalhawk(bitmap_ind16 &bitmap, const rectangle &cliprect, int pri )
500499{
501500   /**
502501     * word#0
r17639r17640
528527     *  --------xxxx---- color
529528     *  x--------------- unknown
530529     */
531   const UINT16 *pSource = namcos2_sprite_ram;
530   const UINT16 *pSource = m_spriteram;
532531   rectangle rect;
533532   int loop;
534533   if( pri==0 )
535534   {
536      machine.priority_bitmap.fill(0, cliprect );
535      machine().priority_bitmap.fill(0, cliprect );
537536   }
538537   for( loop=0; loop < 128; loop++ )
539538   {
r17639r17640
606605         zdrawgfxzoom(
607606            bitmap,
608607            rect,
609            machine.gfx[0],
608            machine().gfx[0],
610609            sprn, color,
611610            flipx,flipy,
612611            sx,sy,
trunk/src/mame/drivers/namcos2.c
r17639r17640
467467/*************************************************************/
468468/* 68000/6809/63705 Shared memory area - DUAL PORT Memory    */
469469/*************************************************************/
470class namcos2_state : public driver_device
471{
472public:
473   namcos2_state(const machine_config &mconfig, device_type type, const char *tag)
474      : driver_device(mconfig, type, tag)
475   { }
476   DECLARE_READ16_MEMBER(namcos2_68k_dpram_word_r);
477   DECLARE_WRITE16_MEMBER(namcos2_68k_dpram_word_w);
478   DECLARE_READ8_MEMBER(namcos2_dpram_byte_r);
479   DECLARE_WRITE8_MEMBER(namcos2_dpram_byte_w);
480   DECLARE_DRIVER_INIT(cosmogng);
481   DECLARE_DRIVER_INIT(sgunner2);
482   DECLARE_DRIVER_INIT(kyukaidk);
483   DECLARE_DRIVER_INIT(bubbletr);
484   DECLARE_DRIVER_INIT(suzuk8h2);
485   DECLARE_DRIVER_INIT(burnforc);
486   DECLARE_DRIVER_INIT(gollygho);
487   DECLARE_DRIVER_INIT(rthun2j);
488   DECLARE_DRIVER_INIT(sws);
489   DECLARE_DRIVER_INIT(finehour);
490   DECLARE_DRIVER_INIT(finallap);
491   DECLARE_DRIVER_INIT(dirtfoxj);
492   DECLARE_DRIVER_INIT(marvlanj);
493   DECLARE_DRIVER_INIT(sws92);
494   DECLARE_DRIVER_INIT(dsaber);
495   DECLARE_DRIVER_INIT(assault);
496   DECLARE_DRIVER_INIT(mirninja);
497   DECLARE_DRIVER_INIT(finalap2);
498   DECLARE_DRIVER_INIT(valkyrie);
499   DECLARE_DRIVER_INIT(fourtrax);
500   DECLARE_DRIVER_INIT(finalap3);
501   DECLARE_DRIVER_INIT(luckywld);
502   DECLARE_DRIVER_INIT(assaultj);
503   DECLARE_DRIVER_INIT(dsaberj);
504   DECLARE_DRIVER_INIT(suzuka8h);
505   DECLARE_DRIVER_INIT(phelios);
506   DECLARE_DRIVER_INIT(sws93);
507   DECLARE_DRIVER_INIT(metlhawk);
508   DECLARE_DRIVER_INIT(sws92g);
509   DECLARE_DRIVER_INIT(assaultp_hack);
510   DECLARE_DRIVER_INIT(assaultp);
511   DECLARE_DRIVER_INIT(ordyne);
512   DECLARE_DRIVER_INIT(marvland);
513   DECLARE_DRIVER_INIT(rthun2);
514};
515470
516static UINT8 *namcos2_dpram;   /* 2Kx8 */
517
518471static void
519472GollyGhostUpdateLED_c4( int data )
520473{
r17639r17640
574527   }
575528}
576529
577READ16_MEMBER(namcos2_state::namcos2_68k_dpram_word_r)
530READ16_MEMBER(namcos2_state::dpram_word_r)
578531{
579   return namcos2_dpram[offset];
532   return m_dpram[offset];
580533}
581534
582WRITE16_MEMBER(namcos2_state::namcos2_68k_dpram_word_w)
535WRITE16_MEMBER(namcos2_state::dpram_word_w)
583536{
584537   if( ACCESSING_BITS_0_7 )
585538   {
586      namcos2_dpram[offset] = data&0xff;
539      m_dpram[offset] = data&0xff;
587540
588541      if( namcos2_gametype==NAMCOS2_GOLLY_GHOST )
589542      {
r17639r17640
608561}
609562
610563
611READ8_MEMBER(namcos2_state::namcos2_dpram_byte_r)
564READ8_MEMBER(namcos2_state::dpram_byte_r)
612565{
613   return namcos2_dpram[offset];
566   return m_dpram[offset];
614567}
615568
616WRITE8_MEMBER(namcos2_state::namcos2_dpram_byte_w)
569WRITE8_MEMBER(namcos2_state::dpram_byte_w)
617570{
618   namcos2_dpram[offset] = data;
571   m_dpram[offset] = data;
619572}
620573
621574/*************************************************************/
r17639r17640
638591   AM_RANGE(0x200000, 0x3fffff) AM_READ_LEGACY(namcos2_68k_data_rom_r)
639592   AM_RANGE(0x400000, 0x41ffff) AM_READWRITE_LEGACY(namco_tilemapvideoram16_r,namco_tilemapvideoram16_w)
640593   AM_RANGE(0x420000, 0x42003f) AM_READWRITE_LEGACY(namco_tilemapcontrol16_r,namco_tilemapcontrol16_w)
641   AM_RANGE(0x440000, 0x44ffff) AM_READWRITE_LEGACY(namcos2_68k_video_palette_r,namcos2_68k_video_palette_w) AM_BASE_LEGACY(&namcos2_68k_palette_ram) AM_SIZE_LEGACY(&namcos2_68k_palette_size)
642   AM_RANGE(0x460000, 0x460fff) AM_READWRITE(namcos2_68k_dpram_word_r,namcos2_68k_dpram_word_w)
643   AM_RANGE(0x468000, 0x468fff) AM_READWRITE(namcos2_68k_dpram_word_r,namcos2_68k_dpram_word_w) /* mirror */
594   AM_RANGE(0x440000, 0x44ffff) AM_READWRITE(paletteram_word_r,paletteram_word_w) AM_SHARE("paletteram")
595   AM_RANGE(0x460000, 0x460fff) AM_READWRITE(dpram_word_r,dpram_word_w)
596   AM_RANGE(0x468000, 0x468fff) AM_READWRITE(dpram_word_r,dpram_word_w) /* mirror */
644597   AM_RANGE(0x480000, 0x483fff) AM_READWRITE_LEGACY(namcos2_68k_serial_comms_ram_r,namcos2_68k_serial_comms_ram_w) AM_BASE_LEGACY(&namcos2_68k_serial_comms_ram)
645598   AM_RANGE(0x4a0000, 0x4a000f) AM_READWRITE_LEGACY(namcos2_68k_serial_comms_ctrl_r,namcos2_68k_serial_comms_ctrl_w)
646599ADDRESS_MAP_END
r17639r17640
648601/*************************************************************/
649602
650603static ADDRESS_MAP_START( common_default_am, AS_PROGRAM, 16, namcos2_state )
651   AM_RANGE(0xc00000, 0xc03fff) AM_READWRITE_LEGACY(namcos2_sprite_ram_r,namcos2_sprite_ram_w) AM_BASE_LEGACY(&namcos2_sprite_ram)
604   AM_RANGE(0xc00000, 0xc03fff) AM_READWRITE(spriteram_word_r, spriteram_word_w) AM_SHARE("spriteram")
652605   AM_RANGE(0xc40000, 0xc40001) AM_READWRITE_LEGACY(namcos2_gfx_ctrl_r,namcos2_gfx_ctrl_w)
653   AM_RANGE(0xc80000, 0xc9ffff) AM_READWRITE_LEGACY(namcos2_68k_roz_ram_r,namcos2_68k_roz_ram_w) AM_BASE_LEGACY(&namcos2_68k_roz_ram)
654   AM_RANGE(0xcc0000, 0xcc000f) AM_READWRITE_LEGACY(namcos2_68k_roz_ctrl_r,namcos2_68k_roz_ctrl_w)
606   AM_RANGE(0xc80000, 0xc9ffff) AM_READWRITE(rozram_word_r,rozram_word_w) AM_SHARE("rozram")
607   AM_RANGE(0xcc0000, 0xcc000f) AM_READWRITE(roz_ctrl_word_r, roz_ctrl_word_w)
655608   AM_RANGE(0xd00000, 0xd0000f) AM_READWRITE_LEGACY(namcos2_68k_key_r,namcos2_68k_key_w)
656609   AM_IMPORT_FROM( namcos2_68k_default_cpu_board_am )
657610ADDRESS_MAP_END
r17639r17640
676629
677630static ADDRESS_MAP_START( common_finallap_am, AS_PROGRAM, 16, namcos2_state )
678631   AM_RANGE(0x300000, 0x33ffff) AM_READ_LEGACY(namcos2_flap_prot_r)
679   AM_RANGE(0x800000, 0x80ffff) AM_READ_LEGACY(namcos2_sprite_ram_r) AM_WRITE_LEGACY(namcos2_sprite_ram_w) AM_BASE_LEGACY(&namcos2_sprite_ram)
632   AM_RANGE(0x800000, 0x80ffff) AM_READWRITE(spriteram_word_r, spriteram_word_w) AM_SHARE("spriteram")
680633   AM_RANGE(0x840000, 0x840001) AM_READ_LEGACY(namcos2_gfx_ctrl_r) AM_WRITE_LEGACY(namcos2_gfx_ctrl_w)
681634   AM_RANGE(0x880000, 0x89ffff) AM_READ_LEGACY(namco_road16_r) AM_WRITE_LEGACY(namco_road16_w)
682635   AM_RANGE(0x8c0000, 0x8c0001) AM_WRITENOP
r17639r17640
725678/*************************************************************/
726679
727680static ADDRESS_MAP_START( common_metlhawk_am, AS_PROGRAM, 16, namcos2_state )
728   AM_RANGE(0xc00000, 0xc03fff) AM_READWRITE_LEGACY(namcos2_sprite_ram_r,namcos2_sprite_ram_w) AM_BASE_LEGACY(&namcos2_sprite_ram) \
681   AM_RANGE(0xc00000, 0xc03fff) AM_READWRITE(spriteram_word_r, spriteram_word_w) AM_SHARE("spriteram") \
729682   AM_RANGE(0xc40000, 0xc4ffff) AM_READWRITE_LEGACY(namco_rozvideoram16_r,namco_rozvideoram16_w) \
730683   AM_RANGE(0xd00000, 0xd0001f) AM_READWRITE_LEGACY(namco_rozcontrol16_r,namco_rozcontrol16_w) \
731684   AM_RANGE(0xe00000, 0xe00001) AM_READWRITE_LEGACY(namcos2_gfx_ctrl_r,namcos2_gfx_ctrl_w) /* ??? */ \
r17639r17640
785738   AM_RANGE(0x0000, 0x3fff) AM_ROMBANK("bank6") /* banked */
786739   AM_RANGE(0x4000, 0x4001) AM_DEVREADWRITE_LEGACY("ymsnd", ym2151_r,ym2151_w)
787740   AM_RANGE(0x5000, 0x6fff) AM_DEVREADWRITE_LEGACY("c140", c140_r,c140_w)
788   AM_RANGE(0x7000, 0x77ff) AM_READWRITE(namcos2_dpram_byte_r,namcos2_dpram_byte_w) AM_BASE_LEGACY(&namcos2_dpram)
789   AM_RANGE(0x7800, 0x7fff) AM_READWRITE(namcos2_dpram_byte_r,namcos2_dpram_byte_w) /* mirror */
741   AM_RANGE(0x7000, 0x77ff) AM_READWRITE(dpram_byte_r,dpram_byte_w) AM_SHARE("dpram")
742   AM_RANGE(0x7800, 0x7fff) AM_READWRITE(dpram_byte_r,dpram_byte_w) /* mirror */
790743   AM_RANGE(0x8000, 0x9fff) AM_RAM
791744   AM_RANGE(0xa000, 0xbfff) AM_WRITENOP /* Amplifier enable on 1st write */
792745   AM_RANGE(0xc000, 0xc001) AM_WRITE_LEGACY(namcos2_sound_bankselect_w)
r17639r17640
817770   AM_RANGE(0x3001, 0x3001) AM_READ_PORT("MCUDI1")
818771   AM_RANGE(0x3002, 0x3002) AM_READ_PORT("MCUDI2")
819772   AM_RANGE(0x3003, 0x3003) AM_READ_PORT("MCUDI3")
820   AM_RANGE(0x5000, 0x57ff) AM_READWRITE(namcos2_dpram_byte_r,namcos2_dpram_byte_w) AM_BASE_LEGACY(&namcos2_dpram)
773   AM_RANGE(0x5000, 0x57ff) AM_READWRITE(dpram_byte_r,dpram_byte_w) AM_SHARE("dpram")
821774   AM_RANGE(0x6000, 0x6fff) AM_READNOP /* watchdog */
822775   AM_RANGE(0x8000, 0xffff) AM_ROM
823776ADDRESS_MAP_END
r17639r17640
16801633   MCFG_SCREEN_REFRESH_RATE( (49152000.0 / 8) / (384 * 264) )
16811634   MCFG_SCREEN_SIZE(384, 264)
16821635   MCFG_SCREEN_VISIBLE_AREA(0*8, 36*8-1, 0*8, 28*8-1)
1683   MCFG_SCREEN_UPDATE_STATIC(namcos2_default)
1636   MCFG_SCREEN_UPDATE_DRIVER(namcos2_state, screen_update)
16841637
16851638   MCFG_GFXDECODE(namcos2)
16861639   MCFG_PALETTE_LENGTH(0x2000)
16871640
1688   MCFG_VIDEO_START(namcos2)
1689
16901641   MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker")
16911642
16921643   MCFG_SOUND_ADD("c140", C140, C140_SOUND_CLOCK) /* 21.333kHz */
r17639r17640
17561707   MCFG_SCREEN_REFRESH_RATE( (49152000.0 / 8) / (384 * 264) )
17571708   MCFG_SCREEN_SIZE(384, 264)
17581709   MCFG_SCREEN_VISIBLE_AREA(0*8, 36*8-1, 0*8, 28*8-1)
1759   MCFG_SCREEN_UPDATE_STATIC(namcos2_default)
1710   MCFG_SCREEN_UPDATE_DRIVER(namcos2_state, screen_update)
17601711
17611712   MCFG_GFXDECODE(namcos2)
17621713   MCFG_PALETTE_LENGTH(0x2000)
17631714
1764   MCFG_VIDEO_START(namcos2)
1765
17661715   MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker")
17671716
17681717   MCFG_SOUND_ADD("c140", C140, C140_SOUND_CLOCK) /* 21.333kHz */
r17639r17640
18051754   MCFG_SCREEN_REFRESH_RATE( (49152000.0 / 8) / (384 * 264) )
18061755   MCFG_SCREEN_SIZE(384, 264)
18071756   MCFG_SCREEN_VISIBLE_AREA(0*8, 36*8-1, 0*8, 28*8-1)
1808   MCFG_SCREEN_UPDATE_STATIC(finallap)
1757   MCFG_SCREEN_UPDATE_DRIVER(namcos2_state, screen_update_finallap)
18091758
18101759   MCFG_GFXDECODE(finallap)
18111760   MCFG_PALETTE_LENGTH(0x2000)
18121761
1813   MCFG_VIDEO_START(finallap)
1762   MCFG_VIDEO_START_OVERRIDE(namcos2_state, video_start_finallap)
18141763
18151764   MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker")
18161765
r17639r17640
18541803   MCFG_SCREEN_REFRESH_RATE( (49152000.0 / 8) / (384 * 264) )
18551804   MCFG_SCREEN_SIZE(384, 264)
18561805   MCFG_SCREEN_VISIBLE_AREA(0*8, 36*8-1, 0*8, 28*8-1)
1857   MCFG_SCREEN_UPDATE_STATIC(sgunner)
1806   MCFG_SCREEN_UPDATE_DRIVER(namcos2_state, screen_update_sgunner)
18581807
18591808   MCFG_GFXDECODE(sgunner)
18601809   MCFG_PALETTE_LENGTH(0x2000)
18611810
1862   MCFG_VIDEO_START(sgunner)
1811   MCFG_VIDEO_START_OVERRIDE(namcos2_state, video_start_sgunner)
18631812
18641813   MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker")
18651814
r17639r17640
19031852   MCFG_SCREEN_REFRESH_RATE( (49152000.0 / 8) / (384 * 264) )
19041853   MCFG_SCREEN_SIZE(384, 264)
19051854   MCFG_SCREEN_VISIBLE_AREA(0*8, 36*8-1, 0*8, 28*8-1)
1906   MCFG_SCREEN_UPDATE_STATIC(luckywld)
1855   MCFG_SCREEN_UPDATE_DRIVER(namcos2_state, screen_update_luckywld)
19071856
19081857   MCFG_GFXDECODE(luckywld)
19091858   MCFG_PALETTE_LENGTH(0x2000)
19101859
1911   MCFG_VIDEO_START(luckywld)
1860   MCFG_VIDEO_START_OVERRIDE(namcos2_state, video_start_luckywld)
19121861
19131862   MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker")
19141863
r17639r17640
19521901   MCFG_SCREEN_REFRESH_RATE( (49152000.0 / 8) / (384 * 264) )
19531902   MCFG_SCREEN_SIZE(384, 264)
19541903   MCFG_SCREEN_VISIBLE_AREA(0*8, 36*8-1, 0*8, 28*8-1)
1955   MCFG_SCREEN_UPDATE_STATIC(metlhawk)
1904   MCFG_SCREEN_UPDATE_DRIVER(namcos2_state, screen_update_metlhawk)
19561905
19571906   MCFG_GFXDECODE(metlhawk)
19581907   MCFG_PALETTE_LENGTH(0x2000)
19591908
1960   MCFG_VIDEO_START(metlhawk)
1909   MCFG_VIDEO_START_OVERRIDE(namcos2_state, video_start_metlhawk)
19611910
19621911   MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker")
19631912

Previous 199869 Revisions Next


© 1997-2024 The MAME Team