trunk/src/mame/video/hng64.c
| r244674 | r244675 | |
| 9 | 9 | |
| 10 | 10 | static void hng64_mark_all_tiles_dirty( hng64_state *state, int tilemap ) |
| 11 | 11 | { |
| 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(); |
| 36 | 15 | } |
| 37 | 16 | |
| 38 | 17 | static void hng64_mark_tile_dirty( hng64_state *state, int tilemap, int tile_index ) |
| 39 | 18 | { |
| 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); |
| 64 | 22 | } |
| 65 | 23 | |
| 66 | 24 | |
| r244674 | r244675 | |
| 913 | 871 | { |
| 914 | 872 | scrollbase = (hng64_videoregs[0x04]&0x3fff0000)>>16; |
| 915 | 873 | 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 | | } |
| 927 | 874 | } |
| 928 | 875 | else if (tm==1) |
| 929 | 876 | { |
| 930 | 877 | scrollbase = (hng64_videoregs[0x04]&0x00003fff)>>0; |
| 931 | 878 | 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 | | } |
| 943 | 879 | } |
| 944 | 880 | else if (tm==2) |
| 945 | 881 | { |
| 946 | 882 | scrollbase = (hng64_videoregs[0x05]&0x3fff0000)>>16; |
| 947 | 883 | 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 | | } |
| 959 | 884 | } |
| 960 | 885 | else if (tm==3) |
| 961 | 886 | { |
| 962 | 887 | scrollbase = (hng64_videoregs[0x05]&0x00003fff)>>0; |
| 963 | 888 | tileregs = (hng64_videoregs[0x03]&0x0000ffff)>>0; |
| 889 | } |
| 964 | 890 | |
| 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; |
| 975 | 895 | } |
| 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 | } |
| 976 | 901 | |
| 977 | 902 | // xrally's pink tilemaps make me think this is a tilemap enable bit. |
| 978 | 903 | // fatfurwa makes me think otherwise. |
| 979 | | //if (!(tileregs & 0x0040)) return; |
| 904 | // if (!(tileregs & 0x0040)) return; |
| 980 | 905 | |
| 981 | 906 | // set the transmask so our manual copy is correct |
| 982 | 907 | if (tileregs & 0x0400) |
| r244674 | r244675 | |
| 1311 | 1236 | // 0940 - samurai shodown 64 |
| 1312 | 1237 | // 0880 - buriki |
| 1313 | 1238 | |
| 1314 | | // mmmm dbr? ??e? ???? |
| 1239 | // mmmm dbrz zzzz zzzz |
| 1315 | 1240 | // m = mosaic related? |
| 1316 | 1241 | // -- they seem to enable mosaic at the same time as rowscroll in several cases (floor in buriki / ff) |
| 1317 | 1242 | // and also on the rotating logo in buriki.. does it cause some kind of aliasing side-effect, or.. ? |
| 1318 | 1243 | // r = tile size (seems correct) |
| 1319 | 1244 | // b = 4bpp/8bpp (seems correct) (beast busters, samsh64, sasm64 2, xrally switch it for some screens) |
| 1320 | 1245 | // 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) |
| 1322 | 1247 | |
| 1323 | 1248 | |
| 1324 | 1249 | */ |
| r244674 | r244675 | |
| 1334 | 1259 | UINT32 *hng64_tcram = m_tcram; |
| 1335 | 1260 | UINT32 animmask; |
| 1336 | 1261 | UINT32 animbits; |
| 1337 | | UINT16 tileflags0, tileflags1; |
| 1338 | | UINT16 tileflags2, tileflags3; |
| 1262 | UINT16 tileflags[4]; |
| 1339 | 1263 | |
| 1340 | 1264 | #if 0 |
| 1341 | 1265 | // press in sams64_2 attract mode for a nice debug screen from the game |
| r244674 | r244675 | |
| 1356 | 1280 | |
| 1357 | 1281 | animmask = hng64_videoregs[0x0b]; |
| 1358 | 1282 | 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; |
| 1363 | 1287 | |
| 1364 | 1288 | /* if the auto-animation mask or bits have changed search for tiles using them and mark as dirty */ |
| 1365 | 1289 | if ((m_old_animmask != animmask) || (m_old_animbits != animbits)) |
| r244674 | r244675 | |
| 1389 | 1313 | m_old_animbits = animbits; |
| 1390 | 1314 | } |
| 1391 | 1315 | |
| 1392 | | if ((m_old_tileflags0&IMPORTANT_DIRTY_TILEFLAG_MASK)!=(tileflags0&IMPORTANT_DIRTY_TILEFLAG_MASK)) |
| 1316 | for (int i = 0; i < 4; i++) |
| 1393 | 1317 | { |
| 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 | } |
| 1396 | 1323 | } |
| 1397 | 1324 | |
| 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 | | } |
| 1403 | 1325 | |
| 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 | | |
| 1422 | 1326 | hng64_drawtilemap(screen,bitmap,cliprect, 3); |
| 1423 | 1327 | hng64_drawtilemap(screen,bitmap,cliprect, 2); |
| 1424 | 1328 | hng64_drawtilemap(screen,bitmap,cliprect, 1); |
| r244674 | r244675 | |
| 1455 | 1359 | if (0) |
| 1456 | 1360 | popmessage("%08x %08x %08x %08x %08x", m_spriteregs[0], m_spriteregs[1], m_spriteregs[2], m_spriteregs[3], m_spriteregs[4]); |
| 1457 | 1361 | |
| 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", |
| 1460 | 1364 | hng64_videoregs[0x00], |
| 1461 | 1365 | 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 |
| 1466 | 1370 | (hng64_videoregs[0x04]>>16)&0xffff, |
| 1467 | 1371 | (hng64_videoregs[0x04]>>0)&0xffff, |
| 1468 | 1372 | (hng64_videoregs[0x05]>>16)&0xffff, |
| r244674 | r244675 | |
| 1474 | 1378 | hng64_videoregs[0x0a], |
| 1475 | 1379 | hng64_videoregs[0x0b], |
| 1476 | 1380 | hng64_videoregs[0x0c], |
| 1477 | | hng64_videoregs[0x0d], |
| 1478 | | hng64_videoregs[0x0e]); |
| 1381 | hng64_videoregs[0x0d]); |
| 1479 | 1382 | |
| 1480 | 1383 | if (0) |
| 1481 | 1384 | popmessage("3D: %08x %08x %08x %08x : %08x %08x %08x %08x : %08x %08x %08x %08x", |
| r244674 | r244675 | |
| 1547 | 1450 | |
| 1548 | 1451 | m_old_animmask = -1; |
| 1549 | 1452 | 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; |
| 1554 | 1457 | |
| 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 */ |
| 1558 | 1461 | |
| 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 */ |
| 1562 | 1465 | |
| 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 */ |
| 1566 | 1469 | |
| 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 */ |
| 1570 | 1473 | |
| 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 | } |
| 1574 | 1480 | |
| 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 | | |
| 1587 | 1481 | // Debug switch, turn on / off additive blending on a per-tilemap basis |
| 1588 | 1482 | m_additive_tilemap_debug = 0; |
| 1589 | 1483 | |