Previous 199869 Revisions Next

r39875 Wednesday 22nd July, 2015 at 18:25:46 UTC by Osso
namcona1.c: added save state support (nw)
[src/emu/sound]c140.c c140.h
[src/mame/drivers]namcona1.c
[src/mame/includes]namcona1.h
[src/mame/video]namcona1.c

trunk/src/emu/sound/c140.c
r248386r248387
134134   /* allocate a pair of buffers to mix into - 1 second's worth should be more than enough */
135135   m_mixer_buffer_left = auto_alloc_array(machine(), INT16, 2 * m_sample_rate);
136136   m_mixer_buffer_right = m_mixer_buffer_left + m_sample_rate;
137   
138   save_item(NAME(m_REG));
139   
140   for (int i = 0; i < C140_MAX_VOICE; i++)
141   {   
142      save_item(NAME(m_voi[i].ptoffset), i);
143      save_item(NAME(m_voi[i].pos), i);
144      save_item(NAME(m_voi[i].key), i);
145      save_item(NAME(m_voi[i].lastdt), i);
146      save_item(NAME(m_voi[i].prevdt), i);
147      save_item(NAME(m_voi[i].dltdt), i);
148      save_item(NAME(m_voi[i].rvol), i);
149      save_item(NAME(m_voi[i].lvol), i);
150      save_item(NAME(m_voi[i].frequency), i);
151      save_item(NAME(m_voi[i].bank), i);
152      save_item(NAME(m_voi[i].mode), i);
153      save_item(NAME(m_voi[i].sample_start), i);
154      save_item(NAME(m_voi[i].sample_end), i);
155      save_item(NAME(m_voi[i].sample_loop), i);
156   }
137157}
138158
139159
trunk/src/emu/sound/c140.h
r248386r248387
5151      sample_end(0),
5252      sample_loop(0) {}
5353
54   long    ptoffset;
55   long    pos;
56   long    key;
54   INT32    ptoffset;
55   INT32    pos;
56   INT32    key;
5757   //--work
58   long    lastdt;
59   long    prevdt;
60   long    dltdt;
58   INT32    lastdt;
59   INT32    prevdt;
60   INT32    dltdt;
6161   //--reg
62   long    rvol;
63   long    lvol;
64   long    frequency;
65   long    bank;
66   long    mode;
62   INT32    rvol;
63   INT32    lvol;
64   INT32    frequency;
65   INT32    bank;
66   INT32    mode;
6767
68   long    sample_start;
69   long    sample_end;
70   long    sample_loop;
68   INT32    sample_start;
69   INT32    sample_end;
70   INT32    sample_loop;
7171};
7272
7373
trunk/src/mame/drivers/namcona1.c
r248386r248387
319319   }
320320   if( dest>=0xf00000 && dest<0xf02000 )
321321   {
322      namcona1_paletteram_w(space, (dest-0xf00000)/2, data, 0xffff );
322      paletteram_w(space, (dest-0xf00000)/2, data, 0xffff );
323323   }
324324   else if( dest>=0xf40000 && dest<0xf80000 )
325325   {
326      namcona1_gfxram_w(space, (dest-0xf40000)/2, data, 0xffff );
326      gfxram_w(space, (dest-0xf40000)/2, data, 0xffff );
327327   }
328328   else if( dest>=0xff0000 && dest<0xffc000 )
329329   {
330      namcona1_videoram_w(space, (dest-0xff0000)/2, data, 0xffff );
330      videoram_w(space, (dest-0xff0000)/2, data, 0xffff );
331331   }
332332   else if( dest>=0xfff000 && dest<0x1000000 )
333333   {
r248386r248387
412412   }
413413} /* blit_setup */
414414
415void namcona1_state::namcona1_blit()
415void namcona1_state::blit()
416416{
417417   int src0 = m_vreg[0x0];
418418   int src1 = m_vreg[0x1];
r248386r248387
487487         src_offset = 0;
488488      }
489489   }
490} /* namcona1_blit */
490} /* blit */
491491
492WRITE16_MEMBER(namcona1_state::namcona1_vreg_w)
492WRITE16_MEMBER(namcona1_state::vreg_w)
493493{
494494   COMBINE_DATA( &m_vreg[offset] );
495495
496496   switch( offset )
497497   {
498498   case 0x18/2:
499      namcona1_blit();
499      blit();
500500      /* see also 0x1e */
501501      break;
502502
r248386r248387
505505      /* interrupt enable mask; 0 enables INT level */
506506      break;
507507   }
508} /* namcona1_vreg_w */
508} /* vreg_w */
509509
510510/***************************************************************/
511511
r248386r248387
546546   AM_RANGE(0xc00000, 0xdfffff) AM_ROM AM_REGION("maincpu", 0)  // code
547547   AM_RANGE(0xe00000, 0xe00fff) AM_DEVREADWRITE8("eeprom", eeprom_parallel_28xx_device, read, write, 0x00ff)
548548   AM_RANGE(0xe40000, 0xe4000f) AM_READWRITE(custom_key_r, custom_key_w)
549   AM_RANGE(0xefff00, 0xefffff) AM_RAM_WRITE(namcona1_vreg_w) AM_SHARE("vreg")
550   AM_RANGE(0xf00000, 0xf01fff) AM_RAM_WRITE(namcona1_paletteram_w) AM_SHARE("paletteram")
551   AM_RANGE(0xf40000, 0xf7ffff) AM_READWRITE(namcona1_gfxram_r, namcona1_gfxram_w) AM_SHARE("cgram")
552   AM_RANGE(0xff0000, 0xffbfff) AM_RAM_WRITE(namcona1_videoram_w) AM_SHARE("videoram")
549   AM_RANGE(0xefff00, 0xefffff) AM_RAM_WRITE(vreg_w) AM_SHARE("vreg")
550   AM_RANGE(0xf00000, 0xf01fff) AM_RAM_WRITE(paletteram_w) AM_SHARE("paletteram")
551   AM_RANGE(0xf40000, 0xf7ffff) AM_READWRITE(gfxram_r, gfxram_w) AM_SHARE("cgram")
552   AM_RANGE(0xff0000, 0xffbfff) AM_RAM_WRITE(videoram_w) AM_SHARE("videoram")
553553   AM_RANGE(0xffd000, 0xffdfff) AM_RAM /* unknown */
554554   AM_RANGE(0xffe000, 0xffefff) AM_RAM AM_SHARE("scroll")      /* scroll registers */
555555   AM_RANGE(0xfff000, 0xffffff) AM_RAM AM_SHARE("spriteram")           /* spriteram */
r248386r248387
694694   m_maskrom = (UINT16 *)memregion("maskrom")->base();
695695   m_mEnableInterrupts = 0;
696696   m_c140->set_base(m_workram);
697   
698   save_item(NAME(m_mEnableInterrupts));
699   save_item(NAME(m_count));
700   save_item(NAME(m_mcu_mailbox));
701   save_item(NAME(m_mcu_port4));
702   save_item(NAME(m_mcu_port5));
703   save_item(NAME(m_mcu_port6));
704   save_item(NAME(m_mcu_port8));
697705}
698706
699707// the MCU boots the 68000
r248386r248387
893901//                 IRQ 1 =>
894902//                 IRQ 2 =>
895903
896TIMER_DEVICE_CALLBACK_MEMBER(namcona1_state::namcona1_interrupt)
904TIMER_DEVICE_CALLBACK_MEMBER(namcona1_state::interrupt)
897905{
898906   int scanline = param;
899907   int enabled = m_mEnableInterrupts ? ~m_vreg[0x1a/2] : 0;
r248386r248387
933941   MCFG_CPU_PROGRAM_MAP(namcona1_mcu_map)
934942   MCFG_CPU_IO_MAP( namcona1_mcu_io_map)
935943
936   MCFG_TIMER_DRIVER_ADD_SCANLINE("scan_main", namcona1_state, namcona1_interrupt, "screen", 0, 1)
944   MCFG_TIMER_DRIVER_ADD_SCANLINE("scan_main", namcona1_state, interrupt, "screen", 0, 1)
937945
938946   MCFG_EEPROM_2816_ADD("eeprom")
939947
r248386r248387
943951   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */)
944952   MCFG_SCREEN_SIZE(38*8, 32*8)
945953   MCFG_SCREEN_VISIBLE_AREA(8, 38*8-1-8, 4*8, 32*8-1)
946   MCFG_SCREEN_UPDATE_DRIVER(namcona1_state, screen_update_namcona1)
954   MCFG_SCREEN_UPDATE_DRIVER(namcona1_state, screen_update)
947955   MCFG_SCREEN_PALETTE("palette")
948956
949957   MCFG_PALETTE_ADD("palette", 0x2000)
r248386r248387
9921000DRIVER_INIT_MEMBER(namcona1_state,numanath)  { m_gametype = NAMCO_NUMANATH; }
9931001DRIVER_INIT_MEMBER(namcona1_state,quiztou)   { m_gametype = NAMCO_QUIZTOU; }
9941002DRIVER_INIT_MEMBER(namcona1_state,swcourt)   { m_gametype = NAMCO_SWCOURT; }
995DRIVER_INIT_MEMBER(namcona1_state,tinklpit)  { m_gametype = NAMCO_TINKLPIT; }
1003DRIVER_INIT_MEMBER(namcona1_state,tinklpit)  { m_gametype = NAMCO_TINKLPIT; save_item(NAME(m_keyval)); }
9961004DRIVER_INIT_MEMBER(namcona1_state,xday2)     { m_gametype = NAMCO_XDAY2; }
9971005
9981006ROM_START( bkrtmaq )
r248386r248387
13011309ROM_END
13021310
13031311// NA-1 (C69 MCU)
1304GAME( 1992, bkrtmaq,    0,        namcona1w, namcona1_quiz, namcona1_state,bkrtmaq,  ROT0, "Namco", "Bakuretsu Quiz Ma-Q Dai Bouken (Japan)", 0 )
1305GAME( 1992, cgangpzl,   0,        namcona1w, namcona1_joy, namcona1_state, cgangpzl, ROT0, "Namco", "Cosmo Gang the Puzzle (US)", 0 )
1306GAME( 1992, cgangpzlj,  cgangpzl, namcona1w, namcona1_joy, namcona1_state, cgangpzl, ROT0, "Namco", "Cosmo Gang the Puzzle (Japan)", 0 )
1307GAME( 1992, exvania,    0,        namcona1,  namcona1_joy, namcona1_state, exbania,  ROT0, "Namco", "Exvania (World)", 0 )
1308GAME( 1992, exvaniaj,   exvania,  namcona1,  namcona1_joy, namcona1_state, exbania,  ROT0, "Namco", "Exvania (Japan)", 0 )
1309GAME( 1992, fghtatck,   0,        namcona1,  namcona1_joy, namcona1_state, fa,       ROT90,"Namco", "Fighter & Attacker (US)", 0 )
1310GAME( 1992, fa,         fghtatck, namcona1,  namcona1_joy, namcona1_state, fa,       ROT90,"Namco", "F/A (Japan)", 0 )
1311GAME( 1992, swcourt,    0,        namcona1w, namcona1_joy, namcona1_state, swcourt,  ROT0, "Namco", "Super World Court (World)", 0 )
1312GAME( 1992, swcourtj,   swcourt,  namcona1w, namcona1_joy, namcona1_state, swcourt,  ROT0, "Namco", "Super World Court (Japan)", 0 )
1313GAME( 1993, emeraldaj,  emeralda, namcona1w, namcona1_joy, namcona1_state, emeraldj, ROT0, "Namco", "Emeraldia (Japan Version B)", 0 ) /* Parent is below on NA-2 Hardware */
1314GAME( 1993, emeraldaja, emeralda, namcona1w, namcona1_joy, namcona1_state, emeraldj, ROT0, "Namco", "Emeraldia (Japan)", 0 ) /* Parent is below on NA-2 Hardware */
1315GAME( 1993, tinklpit,   0,        namcona1w, namcona1_joy, namcona1_state, tinklpit, ROT0, "Namco", "Tinkle Pit (Japan)", 0 )
1312GAME( 1992, bkrtmaq,    0,        namcona1w, namcona1_quiz, namcona1_state,bkrtmaq,  ROT0, "Namco", "Bakuretsu Quiz Ma-Q Dai Bouken (Japan)", GAME_SUPPORTS_SAVE )
1313GAME( 1992, cgangpzl,   0,        namcona1w, namcona1_joy, namcona1_state, cgangpzl, ROT0, "Namco", "Cosmo Gang the Puzzle (US)", GAME_SUPPORTS_SAVE )
1314GAME( 1992, cgangpzlj,  cgangpzl, namcona1w, namcona1_joy, namcona1_state, cgangpzl, ROT0, "Namco", "Cosmo Gang the Puzzle (Japan)", GAME_SUPPORTS_SAVE )
1315GAME( 1992, exvania,    0,        namcona1,  namcona1_joy, namcona1_state, exbania,  ROT0, "Namco", "Exvania (World)", GAME_SUPPORTS_SAVE )
1316GAME( 1992, exvaniaj,   exvania,  namcona1,  namcona1_joy, namcona1_state, exbania,  ROT0, "Namco", "Exvania (Japan)", GAME_SUPPORTS_SAVE )
1317GAME( 1992, fghtatck,   0,        namcona1,  namcona1_joy, namcona1_state, fa,       ROT90,"Namco", "Fighter & Attacker (US)", GAME_SUPPORTS_SAVE )
1318GAME( 1992, fa,         fghtatck, namcona1,  namcona1_joy, namcona1_state, fa,       ROT90,"Namco", "F/A (Japan)", GAME_SUPPORTS_SAVE )
1319GAME( 1992, swcourt,    0,        namcona1w, namcona1_joy, namcona1_state, swcourt,  ROT0, "Namco", "Super World Court (World)", GAME_SUPPORTS_SAVE )
1320GAME( 1992, swcourtj,   swcourt,  namcona1w, namcona1_joy, namcona1_state, swcourt,  ROT0, "Namco", "Super World Court (Japan)", GAME_SUPPORTS_SAVE )
1321GAME( 1993, emeraldaj,  emeralda, namcona1w, namcona1_joy, namcona1_state, emeraldj, ROT0, "Namco", "Emeraldia (Japan Version B)", GAME_SUPPORTS_SAVE ) /* Parent is below on NA-2 Hardware */
1322GAME( 1993, emeraldaja, emeralda, namcona1w, namcona1_joy, namcona1_state, emeraldj, ROT0, "Namco", "Emeraldia (Japan)", GAME_SUPPORTS_SAVE ) /* Parent is below on NA-2 Hardware */
1323GAME( 1993, tinklpit,   0,        namcona1w, namcona1_joy, namcona1_state, tinklpit, ROT0, "Namco", "Tinkle Pit (Japan)", GAME_SUPPORTS_SAVE )
13161324
13171325// NA-2 (C70 MCU)
1318GAME( 1992, knckhead,   0,        namcona2,  namcona1_joy, namcona1_state, knckhead, ROT0, "Namco", "Knuckle Heads (World)", 0 )
1319GAME( 1992, knckheadj,  knckhead, namcona2,  namcona1_joy, namcona1_state, knckhead, ROT0, "Namco", "Knuckle Heads (Japan)", 0 )
1320GAME( 1992, knckheadjp, knckhead, namcona2,  namcona1_joy, namcona1_state, knckhead, ROT0, "Namco", "Knuckle Heads (Japan, Prototype?)", 0 )
1321GAME( 1993, emeralda,   0,        namcona2,  namcona1_joy, namcona1_state, emeralda, ROT0, "Namco", "Emeraldia (World)", 0 )
1322GAME( 1993, numanath,   0,        namcona2,  namcona1_joy, namcona1_state, numanath, ROT0, "Namco", "Numan Athletics (World)", 0 )
1323GAME( 1993, numanathj,  numanath, namcona2,  namcona1_joy, namcona1_state, numanath, ROT0, "Namco", "Numan Athletics (Japan)", 0 )
1324GAME( 1993, quiztou,    0,        namcona2,  namcona1_quiz, namcona1_state,quiztou,  ROT0, "Namco", "Nettou! Gekitou! Quiztou!! (Japan)", 0 )
1325GAME( 1995, xday2,      0,        namcona2,  namcona1_joy, namcona1_state, xday2,    ROT0, "Namco", "X-Day 2 (Japan)", GAME_IMPERFECT_GRAPHICS )
1326GAME( 1992, knckhead,   0,        namcona2,  namcona1_joy, namcona1_state, knckhead, ROT0, "Namco", "Knuckle Heads (World)", GAME_SUPPORTS_SAVE )
1327GAME( 1992, knckheadj,  knckhead, namcona2,  namcona1_joy, namcona1_state, knckhead, ROT0, "Namco", "Knuckle Heads (Japan)", GAME_SUPPORTS_SAVE )
1328GAME( 1992, knckheadjp, knckhead, namcona2,  namcona1_joy, namcona1_state, knckhead, ROT0, "Namco", "Knuckle Heads (Japan, Prototype?)", GAME_SUPPORTS_SAVE )
1329GAME( 1993, emeralda,   0,        namcona2,  namcona1_joy, namcona1_state, emeralda, ROT0, "Namco", "Emeraldia (World)", GAME_SUPPORTS_SAVE )
1330GAME( 1993, numanath,   0,        namcona2,  namcona1_joy, namcona1_state, numanath, ROT0, "Namco", "Numan Athletics (World)", GAME_SUPPORTS_SAVE )
1331GAME( 1993, numanathj,  numanath, namcona2,  namcona1_joy, namcona1_state, numanath, ROT0, "Namco", "Numan Athletics (Japan)", GAME_SUPPORTS_SAVE )
1332GAME( 1993, quiztou,    0,        namcona2,  namcona1_quiz, namcona1_state,quiztou,  ROT0, "Namco", "Nettou! Gekitou! Quiztou!! (Japan)", GAME_SUPPORTS_SAVE )
1333GAME( 1995, xday2,      0,        namcona2,  namcona1_joy, namcona1_state, xday2,    ROT0, "Namco", "X-Day 2 (Japan)", GAME_IMPERFECT_GRAPHICS | GAME_SUPPORTS_SAVE )
trunk/src/mame/includes/namcona1.h
r248386r248387
8585
8686   DECLARE_READ16_MEMBER(custom_key_r);
8787   DECLARE_WRITE16_MEMBER(custom_key_w);
88   DECLARE_WRITE16_MEMBER(namcona1_vreg_w);
88   DECLARE_WRITE16_MEMBER(vreg_w);
8989   DECLARE_READ16_MEMBER(mcu_mailbox_r);
9090   DECLARE_WRITE16_MEMBER(mcu_mailbox_w_68k);
9191   DECLARE_WRITE16_MEMBER(mcu_mailbox_w_mcu);
r248386r248387
105105   void simulate_mcu();
106106   void write_version_info();
107107   int transfer_dword(UINT32 dest, UINT32 source);
108   void namcona1_blit();
108   void blit();
109109   void UpdatePalette(int offset);
110   DECLARE_WRITE16_MEMBER(namcona1_videoram_w);
111   DECLARE_WRITE16_MEMBER(namcona1_paletteram_w);
112   DECLARE_READ16_MEMBER(namcona1_gfxram_r);
113   DECLARE_WRITE16_MEMBER(namcona1_gfxram_w);
110   DECLARE_WRITE16_MEMBER(videoram_w);
111   DECLARE_WRITE16_MEMBER(paletteram_w);
112   DECLARE_READ16_MEMBER(gfxram_r);
113   DECLARE_WRITE16_MEMBER(gfxram_w);
114114   void pdraw_tile( screen_device &screen, bitmap_ind16 &dest_bmp, const rectangle &clip, UINT32 code, int color,
115115      int sx, int sy, int flipx, int flipy, int priority, int bShadow, int bOpaque, int gfx_region );
116116   void draw_sprites(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
117117   void draw_background(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect, int which, int primask );
118118   DECLARE_READ16_MEMBER(snd_r);
119119   DECLARE_WRITE16_MEMBER(snd_w);
120
120121   DECLARE_DRIVER_INIT(bkrtmaq);
121122   DECLARE_DRIVER_INIT(quiztou);
122123   DECLARE_DRIVER_INIT(emeralda);
r248386r248387
129130   DECLARE_DRIVER_INIT(xday2);
130131   DECLARE_DRIVER_INIT(exbania);
131132   DECLARE_DRIVER_INIT(emeraldj);
133   virtual void machine_start();
134   virtual void machine_reset();
135   virtual void video_start();
136
132137   TILE_GET_INFO_MEMBER(tilemap_get_info0);
133138   TILE_GET_INFO_MEMBER(tilemap_get_info1);
134139   TILE_GET_INFO_MEMBER(tilemap_get_info2);
135140   TILE_GET_INFO_MEMBER(tilemap_get_info3);
136141   TILE_GET_INFO_MEMBER(roz_get_info);
137   virtual void machine_start();
138   virtual void machine_reset();
139   virtual void video_start();
140   UINT32 screen_update_namcona1(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
141   TIMER_DEVICE_CALLBACK_MEMBER(namcona1_interrupt);
142142
143   UINT32 screen_update(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
144
145   TIMER_DEVICE_CALLBACK_MEMBER(interrupt);
146   void postload();
147
143148private:
144149   void tilemap_get_info(tile_data &tileinfo, int tile_index, const UINT16 *tilemap_videoram, bool use_4bpp_gfx);
145150};
trunk/src/mame/video/namcona1.c
r248386r248387
3636
3737TILE_GET_INFO_MEMBER(namcona1_state::tilemap_get_info0)
3838{
39   UINT16 *videoram = m_videoram;
40   tilemap_get_info(tileinfo,tile_index,0*0x1000+videoram,m_vreg[0xbc/2]&1);
39   tilemap_get_info(tileinfo,tile_index,0*0x1000+m_videoram,m_vreg[0xbc/2]&1);
4140}
4241
4342TILE_GET_INFO_MEMBER(namcona1_state::tilemap_get_info1)
4443{
45   UINT16 *videoram = m_videoram;
46   tilemap_get_info(tileinfo,tile_index,1*0x1000+videoram,m_vreg[0xbc/2]&2);
44   tilemap_get_info(tileinfo,tile_index,1*0x1000+m_videoram,m_vreg[0xbc/2]&2);
4745}
4846
4947TILE_GET_INFO_MEMBER(namcona1_state::tilemap_get_info2)
5048{
51   UINT16 *videoram = m_videoram;
52   tilemap_get_info(tileinfo,tile_index,2*0x1000+videoram,m_vreg[0xbc/2]&4);
49   tilemap_get_info(tileinfo,tile_index,2*0x1000+m_videoram,m_vreg[0xbc/2]&4);
5350}
5451
5552TILE_GET_INFO_MEMBER(namcona1_state::tilemap_get_info3)
5653{
57   UINT16 *videoram = m_videoram;
58   tilemap_get_info(tileinfo,tile_index,3*0x1000+videoram,m_vreg[0xbc/2]&8);
54   tilemap_get_info(tileinfo,tile_index,3*0x1000+m_videoram,m_vreg[0xbc/2]&8);
5955}
6056
6157TILE_GET_INFO_MEMBER(namcona1_state::roz_get_info)
r248386r248387
8278
8379/*************************************************************************/
8480
85WRITE16_MEMBER(namcona1_state::namcona1_videoram_w)
81WRITE16_MEMBER(namcona1_state::videoram_w)
8682{
87   UINT16 *videoram = m_videoram;
88   COMBINE_DATA( &videoram[offset] );
83   COMBINE_DATA( &m_videoram[offset] );
8984   if( offset<0x8000/2 )
9085   {
9186      m_bg_tilemap[offset/0x1000]->mark_tile_dirty(offset&0xfff);
r248386r248387
9489   {
9590      m_bg_tilemap[4]->mark_all_dirty();
9691   }
97} /* namcona1_videoram_w */
92} /* videoram_w */
9893
9994/*************************************************************************/
10095
r248386r248387
113108   m_palette->set_pen_color(offset+0x1000, r, g, b);
114109
115110   m_palette->set_pen_color(offset, pal5bit(data >> 10), pal5bit(data >> 5), pal5bit(data >> 0));
116} /* namcona1_paletteram_w */
111}
117112
118WRITE16_MEMBER(namcona1_state::namcona1_paletteram_w)
113WRITE16_MEMBER(namcona1_state::paletteram_w)
119114{
120115   COMBINE_DATA( &m_paletteram[offset] );
121116   if( m_vreg[0x8e/2] )
r248386r248387
129124}
130125
131126
132READ16_MEMBER(namcona1_state::namcona1_gfxram_r)
127READ16_MEMBER(namcona1_state::gfxram_r)
133128{
134129   UINT16 type = m_vreg[0x0c/2];
135130   if( type == 0x03 )
r248386r248387
145140      return m_cgram[offset];
146141   }
147142   return 0x0000;
148} /* namcona1_gfxram_r */
143} /* gfxram_r */
149144
150WRITE16_MEMBER(namcona1_state::namcona1_gfxram_w)
145WRITE16_MEMBER(namcona1_state::gfxram_w)
151146{
152147   UINT16 type = m_vreg[0x0c/2];
153148   UINT16 old_word;
r248386r248387
174169         m_gfxdecode->gfx(1)->mark_dirty(offset/0x20);
175170      }
176171   }
177} /* namcona1_gfxram_w */
172} /* gfxram_w */
178173
179174void namcona1_state::video_start()
180175{
r248386r248387
190185   m_shaperam.resize(0x8000);
191186
192187   m_gfxdecode->gfx(2)->set_source(&m_shaperam[0]);
193} /* namcona1_vh_start */
188   
189   save_item(NAME(m_shaperam));
190   save_item(NAME(m_palette_is_dirty));
191   
192   machine().save().register_postload(save_prepost_delegate(FUNC(namcona1_state::postload), this));
193} /* video_start */
194194
195void namcona1_state::postload()
196{
197   for (int i = 0; i < 3; i++)
198      m_gfxdecode->gfx(i)->mark_all_dirty();
199}
200
201
195202/*************************************************************************/
196203
197204void namcona1_state::pdraw_tile(
r248386r248387
510517   }
511518} /* draw_background */
512519
513UINT32 namcona1_state::screen_update_namcona1(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
520UINT32 namcona1_state::screen_update(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
514521{
515522   int which;
516523   int priority;


Previous 199869 Revisions Next


© 1997-2024 The MAME Team