Previous 199869 Revisions Next

r36163 Sunday 1st March, 2015 at 12:52:07 UTC by David Haywood
hng64, some code refactor, going to try a few things in a bit (nw)
[src/mame/drivers]hng64.c
[src/mame/includes]hng64.h
[src/mame/video]hng64.c

trunk/src/mame/drivers/hng64.c
r244674r244675
11731173<ElSemi> 0xBF800000-0xBF808000 S-RAM
11741174<ElSemi> 0x60000000-0x60001000 Comm dualport ram
11751175*/
1176
1177WRITE32_MEMBER(hng64_state::hng64_vregs_w)
1178{
1179//   printf("hng64_vregs_w %02x, %08x %08x\n", offset * 4, data, mem_mask);
1180   COMBINE_DATA(&m_videoregs[offset]);
1181}
1182
11761183static ADDRESS_MAP_START( hng_map, AS_PROGRAM, 32, hng64_state )
11771184
11781185   AM_RANGE(0x00000000, 0x00ffffff) AM_RAM AM_SHARE("mainram")
r244674r244675
11961203   AM_RANGE(0x2000e400, 0x2000efff) AM_WRITE(hng64_sprite_clear_odd_w)
11971204   AM_RANGE(0x20010000, 0x20010013) AM_RAM AM_SHARE("spriteregs")
11981205   AM_RANGE(0x20100000, 0x2017ffff) AM_RAM_WRITE(hng64_videoram_w) AM_SHARE("videoram")    // Tilemap
1199   AM_RANGE(0x20190000, 0x20190037) AM_RAM AM_SHARE("videoregs")
1206   AM_RANGE(0x20190000, 0x20190037) AM_RAM_WRITE(hng64_vregs_w) AM_SHARE("videoregs")
12001207   AM_RANGE(0x20200000, 0x20203fff) AM_RAM_WRITE(hng64_pal_w) AM_SHARE("paletteram")
12011208   AM_RANGE(0x20208000, 0x2020805f) AM_READWRITE(tcram_r, tcram_w) AM_SHARE("tcram")   // Transition Control
12021209   AM_RANGE(0x20300000, 0x203001ff) AM_RAM_WRITE(dl_w) AM_SHARE("dl")  // 3d Display List
r244674r244675
19021909
19031910   m_comm_rom = memregion("user2")->base();
19041911   m_comm_ram = auto_alloc_array(machine(),UINT8,0x10000);
1912
1913
1914   for (int i = 0; i < 0x38 / 4; i++)
1915   {
1916      m_videoregs[i] = 0xdeadbeef;
1917   }
1918     
19051919}
19061920
19071921
trunk/src/mame/includes/hng64.h
r244674r244675
9797
9898   UINT8 m_screen_dis;
9999
100   tilemap_t *m_tilemap0_8x8;
101   tilemap_t *m_tilemap1_8x8;
102   tilemap_t *m_tilemap2_8x8;
103   tilemap_t *m_tilemap3_8x8;
100   struct hng64_tilemap {
101      tilemap_t *m_tilemap_8x8;
102      tilemap_t *m_tilemap_16x16;
103      tilemap_t *m_tilemap_16x16_alt;
104   };
104105
105   tilemap_t *m_tilemap0_16x16;
106   tilemap_t *m_tilemap1_16x16;
107   tilemap_t *m_tilemap2_16x16;
108   tilemap_t *m_tilemap3_16x16;
106   hng64_tilemap m_tilemap[4];
109107
110   tilemap_t *m_tilemap0_16x16_alt;
111   tilemap_t *m_tilemap1_16x16_alt;
112   tilemap_t *m_tilemap2_16x16_alt;
113   tilemap_t *m_tilemap3_16x16_alt;
114
115108   UINT8 m_additive_tilemap_debug;
116109
117110   // 3d display buffers
r244674r244675
121114
122115   UINT32 m_old_animmask;
123116   UINT32 m_old_animbits;
124   UINT16 m_old_tileflags0;
125   UINT16 m_old_tileflags1;
126   UINT16 m_old_tileflags2;
127   UINT16 m_old_tileflags3;
117   UINT16 m_old_tileflags[4];
128118
129119   UINT32 m_dls[2][0x81];
130120
r244674r244675
166156   DECLARE_READ32_MEMBER(unk_vreg_r);
167157   DECLARE_WRITE32_MEMBER(hng64_soundram_w);
168158   DECLARE_READ32_MEMBER(hng64_soundram_r);
159   DECLARE_WRITE32_MEMBER(hng64_vregs_w);
169160
170161   // not actually used, but left in code so you can turn it and see the (possibly undesired?) behavior, see notes in memory map
171162   DECLARE_WRITE32_MEMBER(hng64_soundram2_w);
trunk/src/mame/video/hng64.c
r244674r244675
99
1010static void hng64_mark_all_tiles_dirty( hng64_state *state, int tilemap )
1111{
12   if (tilemap == 0)
13   {
14      state->m_tilemap0_8x8->mark_all_dirty();
15      state->m_tilemap0_16x16->mark_all_dirty();
16      state->m_tilemap0_16x16_alt->mark_all_dirty();
17   }
18   else if (tilemap == 1)
19   {
20      state->m_tilemap1_8x8->mark_all_dirty();
21      state->m_tilemap1_16x16->mark_all_dirty();
22      state->m_tilemap1_16x16_alt->mark_all_dirty();
23   }
24   else if (tilemap == 2)
25   {
26      state->m_tilemap2_8x8->mark_all_dirty();
27      state->m_tilemap2_16x16->mark_all_dirty();
28      state->m_tilemap2_16x16_alt->mark_all_dirty();
29   }
30   else if (tilemap == 3)
31   {
32      state->m_tilemap3_8x8->mark_all_dirty();
33      state->m_tilemap3_16x16->mark_all_dirty();
34      state->m_tilemap3_16x16_alt->mark_all_dirty();
35   }
12   state->m_tilemap[tilemap].m_tilemap_8x8->mark_all_dirty();
13   state->m_tilemap[tilemap].m_tilemap_16x16->mark_all_dirty();
14   state->m_tilemap[tilemap].m_tilemap_16x16_alt->mark_all_dirty();
3615}
3716
3817static void hng64_mark_tile_dirty( hng64_state *state, int tilemap, int tile_index )
3918{
40   if (tilemap == 0)
41   {
42      state->m_tilemap0_8x8->mark_tile_dirty(tile_index);
43      state->m_tilemap0_16x16->mark_tile_dirty(tile_index);
44      state->m_tilemap0_16x16_alt->mark_tile_dirty(tile_index);
45   }
46   else if (tilemap == 1)
47   {
48      state->m_tilemap1_8x8->mark_tile_dirty(tile_index);
49      state->m_tilemap1_16x16->mark_tile_dirty(tile_index);
50      state->m_tilemap1_16x16_alt->mark_tile_dirty(tile_index);
51   }
52   else if (tilemap == 2)
53   {
54      state->m_tilemap2_8x8->mark_tile_dirty(tile_index);
55      state->m_tilemap2_16x16->mark_tile_dirty(tile_index);
56      state->m_tilemap2_16x16_alt->mark_tile_dirty(tile_index);
57   }
58   else if (tilemap == 3)
59   {
60      state->m_tilemap3_8x8->mark_tile_dirty(tile_index);
61      state->m_tilemap3_16x16->mark_tile_dirty(tile_index);
62      state->m_tilemap3_16x16_alt->mark_tile_dirty(tile_index);
63   }
19   state->m_tilemap[tilemap].m_tilemap_8x8->mark_tile_dirty(tile_index);
20   state->m_tilemap[tilemap].m_tilemap_16x16->mark_tile_dirty(tile_index);
21   state->m_tilemap[tilemap].m_tilemap_16x16_alt->mark_tile_dirty(tile_index);
6422}
6523
6624
r244674r244675
913871   {
914872      scrollbase = (hng64_videoregs[0x04]&0x3fff0000)>>16;
915873      tileregs   = (hng64_videoregs[0x02]&0xffff0000)>>16;
916
917      if (global_dimensions==0)
918      {
919         if (tileregs&0x0200)    tilemap = state->m_tilemap0_16x16;
920         else tilemap = state->m_tilemap0_8x8;
921      }
922      else
923      {
924         if (tileregs&0x0200)    tilemap = state->m_tilemap0_16x16_alt;
925         else tilemap = state->m_tilemap0_8x8; // _alt
926      }
927874   }
928875   else if (tm==1)
929876   {
930877      scrollbase = (hng64_videoregs[0x04]&0x00003fff)>>0;
931878      tileregs   = (hng64_videoregs[0x02]&0x0000ffff)>>0;
932
933      if (global_dimensions==0)
934      {
935         if (tileregs&0x0200)    tilemap = state->m_tilemap1_16x16;
936         else tilemap = state->m_tilemap1_8x8;
937      }
938      else
939      {
940         if (tileregs&0x0200)    tilemap = state->m_tilemap1_16x16_alt;
941         else tilemap = state->m_tilemap1_8x8; // _alt
942      }
943879   }
944880   else if (tm==2)
945881   {
946882      scrollbase = (hng64_videoregs[0x05]&0x3fff0000)>>16;
947883      tileregs   = (hng64_videoregs[0x03]&0xffff0000)>>16;
948
949      if (global_dimensions==0)
950      {
951         if (tileregs&0x0200)    tilemap = state->m_tilemap2_16x16;
952         else tilemap = state->m_tilemap2_8x8;
953      }
954      else
955      {
956         if (tileregs&0x0200)    tilemap = state->m_tilemap2_16x16_alt;
957         else tilemap = state->m_tilemap2_8x8; // _alt
958      }
959884   }
960885   else if (tm==3)
961886   {
962887      scrollbase = (hng64_videoregs[0x05]&0x00003fff)>>0;
963888      tileregs   = (hng64_videoregs[0x03]&0x0000ffff)>>0;
889   }
964890
965      if (global_dimensions==0)
966      {
967         if (tileregs&0x0200)    tilemap = state->m_tilemap3_16x16;
968         else tilemap = state->m_tilemap3_8x8;
969      }
970      else
971      {
972         if (tileregs&0x0200)    tilemap = state->m_tilemap3_16x16_alt;
973         else tilemap = state->m_tilemap3_8x8; // _alt
974      }
891   if (global_dimensions==0)
892   {
893      if (tileregs&0x0200)    tilemap = state->m_tilemap[tm].m_tilemap_16x16;
894      else tilemap = state->m_tilemap[tm].m_tilemap_8x8;
975895   }
896   else
897   {
898      if (tileregs&0x0200)    tilemap = state->m_tilemap[tm].m_tilemap_16x16_alt;
899      else tilemap = state->m_tilemap[tm].m_tilemap_8x8; // _alt
900   }
976901
977902   // xrally's pink tilemaps make me think this is a tilemap enable bit.
978903   // fatfurwa makes me think otherwise.
979   //if (!(tileregs & 0x0040)) return;
904//   if (!(tileregs & 0x0040)) return;
980905
981906   // set the transmask so our manual copy is correct
982907   if (tileregs & 0x0400)
r244674r244675
13111236    // 0940 - samurai shodown 64
13121237    // 0880 - buriki
13131238
1314    // mmmm dbr? ??e? ????
1239    // mmmm dbrz zzzz zzzz
13151240    // m = mosaic related?
13161241    //  -- they seem to enable mosaic at the same time as rowscroll in several cases (floor in buriki / ff)
13171242    //     and also on the rotating logo in buriki.. does it cause some kind of aliasing side-effect, or.. ?
13181243    // r = tile size (seems correct)
13191244    // b = 4bpp/8bpp (seems correct) (beast busters, samsh64, sasm64 2, xrally switch it for some screens)
13201245    // d = line (floor) mode - buriki, fatafurwa, some backgrounds in ss64_2
1321    // e = enable according to sams64_2 debug mode, buriki and xrally.. but NOT fatal fury :-(
1246    // z = z depth? tilemaps might also be affected by min / max clip values somewhere? (debug layer on buriki has priority 0x020, which would be highest)
13221247
13231248
13241249 */
r244674r244675
13341259   UINT32 *hng64_tcram = m_tcram;
13351260   UINT32 animmask;
13361261   UINT32 animbits;
1337   UINT16 tileflags0, tileflags1;
1338   UINT16 tileflags2, tileflags3;
1262   UINT16 tileflags[4];
13391263
13401264#if 0
13411265   // press in sams64_2 attract mode for a nice debug screen from the game
r244674r244675
13561280
13571281   animmask = hng64_videoregs[0x0b];
13581282   animbits = hng64_videoregs[0x0c];
1359   tileflags0 = hng64_videoregs[0x02]>>16;
1360   tileflags1 = hng64_videoregs[0x02]&0xffff;
1361   tileflags2 = hng64_videoregs[0x03]>>16;
1362   tileflags3 = hng64_videoregs[0x03]&0xffff;
1283   tileflags[0] = hng64_videoregs[0x02]>>16;
1284   tileflags[1] = hng64_videoregs[0x02]&0xffff;
1285   tileflags[2] = hng64_videoregs[0x03]>>16;
1286   tileflags[3] = hng64_videoregs[0x03]&0xffff;
13631287
13641288   /* if the auto-animation mask or bits have changed search for tiles using them and mark as dirty */
13651289   if ((m_old_animmask != animmask) || (m_old_animbits != animbits))
r244674r244675
13891313      m_old_animbits = animbits;
13901314   }
13911315
1392   if ((m_old_tileflags0&IMPORTANT_DIRTY_TILEFLAG_MASK)!=(tileflags0&IMPORTANT_DIRTY_TILEFLAG_MASK))
1316   for (int i = 0; i < 4; i++)
13931317   {
1394      hng64_mark_all_tiles_dirty(this, 0);
1395      m_old_tileflags0 = tileflags0;
1318      if ((m_old_tileflags[i]&IMPORTANT_DIRTY_TILEFLAG_MASK)!=(tileflags[i]&IMPORTANT_DIRTY_TILEFLAG_MASK))
1319      {
1320         hng64_mark_all_tiles_dirty(this, i);
1321         m_old_tileflags[i] = tileflags[i];
1322      }
13961323   }
13971324
1398   if ((m_old_tileflags1&IMPORTANT_DIRTY_TILEFLAG_MASK)!=(tileflags1&IMPORTANT_DIRTY_TILEFLAG_MASK))
1399   {
1400      hng64_mark_all_tiles_dirty(this, 1);
1401      m_old_tileflags1 = tileflags1;
1402   }
14031325
1404   if ((m_old_tileflags2&IMPORTANT_DIRTY_TILEFLAG_MASK)!=(tileflags2&IMPORTANT_DIRTY_TILEFLAG_MASK))
1405   {
1406      hng64_mark_all_tiles_dirty(this, 2);
1407      m_old_tileflags2 = tileflags2;
1408   }
1409
1410   if ((m_old_tileflags3&IMPORTANT_DIRTY_TILEFLAG_MASK)!=(tileflags3&IMPORTANT_DIRTY_TILEFLAG_MASK))
1411   {
1412      hng64_mark_all_tiles_dirty(this, 3);
1413      m_old_tileflags3 = tileflags3;
1414   }
1415
1416   // mark all frames as dirty if for some reason we don't trust the above code
1417   //hng64_mark_all_tiles_dirty(this, 0);
1418   //hng64_mark_all_tiles_dirty(this, 1);
1419   //hng64_mark_all_tiles_dirty(this, 2);
1420   //hng64_mark_all_tiles_dirty(this, 3);
1421
14221326   hng64_drawtilemap(screen,bitmap,cliprect, 3);
14231327   hng64_drawtilemap(screen,bitmap,cliprect, 2);
14241328   hng64_drawtilemap(screen,bitmap,cliprect, 1);
r244674r244675
14551359   if (0)
14561360      popmessage("%08x %08x %08x %08x %08x", m_spriteregs[0], m_spriteregs[1], m_spriteregs[2], m_spriteregs[3], m_spriteregs[4]);
14571361
1458   if (0)
1459   popmessage("%08x %08x TR(%04x %04x %04x %04x) SB(%04x %04x %04x %04x) %08x %08x %08x %08x %08x AA(%08x %08x) %08x %08x",
1362   if (1)
1363   popmessage("%08x %08x TR(%04x %04x %04x %04x) SB(%04x %04x %04x %04x) %08x %08x %08x %08x %08x AA(%08x %08x) %08x",
14601364      hng64_videoregs[0x00],
14611365      hng64_videoregs[0x01],
1462   (hng64_videoregs[0x02]>>16)&0xf9ff, // ----  bits we're sure about are masked out
1463   (hng64_videoregs[0x02]>>0)&0xf9ff,  //  ss64_2 debug mode indicates that 0x0040 is enable!
1464   (hng64_videoregs[0x03]>>16)&0xf9ff, //   buriki agrees (debug data on text layer) xrally agress (pink layer)
1465   (hng64_videoregs[0x03]>>0)&0xf9ff,  //   fatal fury doesn't (all backgrounds have it set) joy
1366   (hng64_videoregs[0x02]>>16)&0x01ff, // ----  bits we're sure about are masked out
1367   (hng64_videoregs[0x02]>>0)&0x01ff,  //  ss64_2 debug mode indicates that 0x0040 is enable!
1368   (hng64_videoregs[0x03]>>16)&0x01ff, //   buriki agrees (debug data on text layer) xrally agress (pink layer)
1369   (hng64_videoregs[0x03]>>0)&0x01ff,  //   fatal fury doesn't (all backgrounds have it set) joy
14661370   (hng64_videoregs[0x04]>>16)&0xffff,
14671371   (hng64_videoregs[0x04]>>0)&0xffff,
14681372   (hng64_videoregs[0x05]>>16)&0xffff,
r244674r244675
14741378      hng64_videoregs[0x0a],
14751379      hng64_videoregs[0x0b],
14761380      hng64_videoregs[0x0c],
1477      hng64_videoregs[0x0d],
1478      hng64_videoregs[0x0e]);
1381      hng64_videoregs[0x0d]);
14791382
14801383   if (0)
14811384   popmessage("3D: %08x %08x %08x %08x : %08x %08x %08x %08x : %08x %08x %08x %08x",
r244674r244675
15471450
15481451   m_old_animmask = -1;
15491452   m_old_animbits = -1;
1550   m_old_tileflags0 = -1;
1551   m_old_tileflags1 = -1;
1552   m_old_tileflags2 = -1;
1553   m_old_tileflags3 = -1;
1453   m_old_tileflags[0] = -1;
1454   m_old_tileflags[1] = -1;
1455   m_old_tileflags[2] = -1;
1456   m_old_tileflags[3] = -1;
15541457
1555   m_tilemap0_8x8       = &machine().tilemap().create(m_gfxdecode, tilemap_get_info_delegate(FUNC(hng64_state::get_hng64_tile0_8x8_info),this),   TILEMAP_SCAN_ROWS,  8,   8, 128, 128); /* 128x128x4 = 0x10000 */
1556   m_tilemap0_16x16     = &machine().tilemap().create(m_gfxdecode, tilemap_get_info_delegate(FUNC(hng64_state::get_hng64_tile0_16x16_info),this), TILEMAP_SCAN_ROWS,  16, 16, 128, 128); /* 128x128x4 = 0x10000 */
1557   m_tilemap0_16x16_alt = &machine().tilemap().create(m_gfxdecode, tilemap_get_info_delegate(FUNC(hng64_state::get_hng64_tile0_16x16_info),this), TILEMAP_SCAN_ROWS,  16, 16, 256,  64); /* 128x128x4 = 0x10000 */
1458   m_tilemap[0].m_tilemap_8x8       = &machine().tilemap().create(m_gfxdecode, tilemap_get_info_delegate(FUNC(hng64_state::get_hng64_tile0_8x8_info),this),   TILEMAP_SCAN_ROWS,  8,   8, 128, 128); /* 128x128x4 = 0x10000 */
1459   m_tilemap[0].m_tilemap_16x16     = &machine().tilemap().create(m_gfxdecode, tilemap_get_info_delegate(FUNC(hng64_state::get_hng64_tile0_16x16_info),this), TILEMAP_SCAN_ROWS,  16, 16, 128, 128); /* 128x128x4 = 0x10000 */
1460   m_tilemap[0].m_tilemap_16x16_alt = &machine().tilemap().create(m_gfxdecode, tilemap_get_info_delegate(FUNC(hng64_state::get_hng64_tile0_16x16_info),this), TILEMAP_SCAN_ROWS,  16, 16, 256,  64); /* 128x128x4 = 0x10000 */
15581461
1559   m_tilemap1_8x8       = &machine().tilemap().create(m_gfxdecode, tilemap_get_info_delegate(FUNC(hng64_state::get_hng64_tile1_8x8_info),this),   TILEMAP_SCAN_ROWS,  8,   8, 128, 128); /* 128x128x4 = 0x10000 */
1560   m_tilemap1_16x16     = &machine().tilemap().create(m_gfxdecode, tilemap_get_info_delegate(FUNC(hng64_state::get_hng64_tile1_16x16_info),this), TILEMAP_SCAN_ROWS,  16, 16, 128, 128); /* 128x128x4 = 0x10000 */
1561   m_tilemap1_16x16_alt = &machine().tilemap().create(m_gfxdecode, tilemap_get_info_delegate(FUNC(hng64_state::get_hng64_tile1_16x16_info),this), TILEMAP_SCAN_ROWS,  16, 16, 256,  64); /* 128x128x4 = 0x10000 */
1462   m_tilemap[1].m_tilemap_8x8       = &machine().tilemap().create(m_gfxdecode, tilemap_get_info_delegate(FUNC(hng64_state::get_hng64_tile1_8x8_info),this),   TILEMAP_SCAN_ROWS,  8,   8, 128, 128); /* 128x128x4 = 0x10000 */
1463   m_tilemap[1].m_tilemap_16x16     = &machine().tilemap().create(m_gfxdecode, tilemap_get_info_delegate(FUNC(hng64_state::get_hng64_tile1_16x16_info),this), TILEMAP_SCAN_ROWS,  16, 16, 128, 128); /* 128x128x4 = 0x10000 */
1464   m_tilemap[1].m_tilemap_16x16_alt = &machine().tilemap().create(m_gfxdecode, tilemap_get_info_delegate(FUNC(hng64_state::get_hng64_tile1_16x16_info),this), TILEMAP_SCAN_ROWS,  16, 16, 256,  64); /* 128x128x4 = 0x10000 */
15621465
1563   m_tilemap2_8x8       = &machine().tilemap().create(m_gfxdecode, tilemap_get_info_delegate(FUNC(hng64_state::get_hng64_tile2_8x8_info),this),   TILEMAP_SCAN_ROWS,  8,   8, 128, 128); /* 128x128x4 = 0x10000 */
1564   m_tilemap2_16x16     = &machine().tilemap().create(m_gfxdecode, tilemap_get_info_delegate(FUNC(hng64_state::get_hng64_tile2_16x16_info),this), TILEMAP_SCAN_ROWS,  16, 16, 128, 128); /* 128x128x4 = 0x10000 */
1565   m_tilemap2_16x16_alt = &machine().tilemap().create(m_gfxdecode, tilemap_get_info_delegate(FUNC(hng64_state::get_hng64_tile2_16x16_info),this), TILEMAP_SCAN_ROWS,  16, 16, 256,  64); /* 128x128x4 = 0x10000 */
1466   m_tilemap[2].m_tilemap_8x8       = &machine().tilemap().create(m_gfxdecode, tilemap_get_info_delegate(FUNC(hng64_state::get_hng64_tile2_8x8_info),this),   TILEMAP_SCAN_ROWS,  8,   8, 128, 128); /* 128x128x4 = 0x10000 */
1467   m_tilemap[2].m_tilemap_16x16     = &machine().tilemap().create(m_gfxdecode, tilemap_get_info_delegate(FUNC(hng64_state::get_hng64_tile2_16x16_info),this), TILEMAP_SCAN_ROWS,  16, 16, 128, 128); /* 128x128x4 = 0x10000 */
1468   m_tilemap[2].m_tilemap_16x16_alt = &machine().tilemap().create(m_gfxdecode, tilemap_get_info_delegate(FUNC(hng64_state::get_hng64_tile2_16x16_info),this), TILEMAP_SCAN_ROWS,  16, 16, 256,  64); /* 128x128x4 = 0x10000 */
15661469
1567   m_tilemap3_8x8       = &machine().tilemap().create(m_gfxdecode, tilemap_get_info_delegate(FUNC(hng64_state::get_hng64_tile3_8x8_info),this),   TILEMAP_SCAN_ROWS,  8,   8, 128, 128); /* 128x128x4 = 0x10000 */
1568   m_tilemap3_16x16     = &machine().tilemap().create(m_gfxdecode, tilemap_get_info_delegate(FUNC(hng64_state::get_hng64_tile3_16x16_info),this), TILEMAP_SCAN_ROWS,  16, 16, 128, 128); /* 128x128x4 = 0x10000 */
1569   m_tilemap3_16x16_alt = &machine().tilemap().create(m_gfxdecode, tilemap_get_info_delegate(FUNC(hng64_state::get_hng64_tile3_16x16_info),this), TILEMAP_SCAN_ROWS,  16, 16, 256,  64); /* 128x128x4 = 0x10000 */
1470   m_tilemap[3].m_tilemap_8x8       = &machine().tilemap().create(m_gfxdecode, tilemap_get_info_delegate(FUNC(hng64_state::get_hng64_tile3_8x8_info),this),   TILEMAP_SCAN_ROWS,  8,   8, 128, 128); /* 128x128x4 = 0x10000 */
1471   m_tilemap[3].m_tilemap_16x16     = &machine().tilemap().create(m_gfxdecode, tilemap_get_info_delegate(FUNC(hng64_state::get_hng64_tile3_16x16_info),this), TILEMAP_SCAN_ROWS,  16, 16, 128, 128); /* 128x128x4 = 0x10000 */
1472   m_tilemap[3].m_tilemap_16x16_alt = &machine().tilemap().create(m_gfxdecode, tilemap_get_info_delegate(FUNC(hng64_state::get_hng64_tile3_16x16_info),this), TILEMAP_SCAN_ROWS,  16, 16, 256,  64); /* 128x128x4 = 0x10000 */
15701473
1571   m_tilemap0_8x8->set_transparent_pen(0);
1572   m_tilemap0_16x16->set_transparent_pen(0);
1573   m_tilemap0_16x16_alt->set_transparent_pen(0);
1474   for (int i = 0; i < 4; i++)
1475   {
1476      m_tilemap[i].m_tilemap_8x8->set_transparent_pen(0);
1477      m_tilemap[i].m_tilemap_16x16->set_transparent_pen(0);
1478      m_tilemap[i].m_tilemap_16x16_alt->set_transparent_pen(0);
1479   }
15741480
1575   m_tilemap1_8x8->set_transparent_pen(0);
1576   m_tilemap1_16x16->set_transparent_pen(0);
1577   m_tilemap1_16x16_alt->set_transparent_pen(0);
1578
1579   m_tilemap2_8x8->set_transparent_pen(0);
1580   m_tilemap2_16x16->set_transparent_pen(0);
1581   m_tilemap2_16x16_alt->set_transparent_pen(0);
1582
1583   m_tilemap3_8x8->set_transparent_pen(0);
1584   m_tilemap3_16x16->set_transparent_pen(0);
1585   m_tilemap3_16x16_alt->set_transparent_pen(0);
1586
15871481   // Debug switch, turn on / off additive blending on a per-tilemap basis
15881482   m_additive_tilemap_debug = 0;
15891483


Previous 199869 Revisions Next


© 1997-2024 The MAME Team