trunk/src/mame/video/konicdev.c
| r21008 | r21009 | |
| 10144 | 10144 | |
| 10145 | 10145 | int layer_size; |
| 10146 | 10146 | int roz_size; |
| 10147 | int txt_mem_offset; |
| 10148 | int roz_mem_offset; |
| 10147 | 10149 | }; |
| 10148 | 10150 | |
| 10149 | 10151 | |
| r21008 | r21009 | |
| 10201 | 10203 | |
| 10202 | 10204 | TILEMAP_MAPPER_MEMBER(k001604_device::k001604_scan_layer_8x8_0_size0) |
| 10203 | 10205 | { |
| 10206 | k001604_state *k001604 = k001604_get_safe_token(this); |
| 10207 | |
| 10204 | 10208 | /* logical (col,row) -> memory offset */ |
| 10205 | | return (row * 128) + col; |
| 10209 | return (row * 128) + col + k001604->txt_mem_offset; |
| 10206 | 10210 | } |
| 10207 | 10211 | |
| 10208 | 10212 | TILEMAP_MAPPER_MEMBER(k001604_device::k001604_scan_layer_8x8_0_size1) |
| 10209 | 10213 | { |
| 10214 | k001604_state *k001604 = k001604_get_safe_token(this); |
| 10215 | |
| 10210 | 10216 | /* logical (col,row) -> memory offset */ |
| 10211 | | return (row * 256) + col; |
| 10217 | return (row * 256) + col + k001604->txt_mem_offset; |
| 10212 | 10218 | } |
| 10213 | 10219 | |
| 10214 | 10220 | TILEMAP_MAPPER_MEMBER(k001604_device::k001604_scan_layer_8x8_1_size0) |
| 10215 | 10221 | { |
| 10222 | k001604_state *k001604 = k001604_get_safe_token(this); |
| 10223 | |
| 10216 | 10224 | /* logical (col,row) -> memory offset */ |
| 10217 | | return (row * 128) + col + 64; |
| 10225 | return (row * 128) + col + 64 + k001604->txt_mem_offset; |
| 10218 | 10226 | } |
| 10219 | 10227 | |
| 10220 | 10228 | TILEMAP_MAPPER_MEMBER(k001604_device::k001604_scan_layer_8x8_1_size1) |
| 10221 | 10229 | { |
| 10222 | | /* logical (col,row) -> memory offset */ |
| 10223 | | return (row * 256) + col + 64; |
| 10224 | | } |
| 10230 | k001604_state *k001604 = k001604_get_safe_token(this); |
| 10225 | 10231 | |
| 10226 | | TILEMAP_MAPPER_MEMBER(k001604_device::slrasslt_scan_layer_8x8_0_size0) |
| 10227 | | { |
| 10228 | 10232 | /* logical (col,row) -> memory offset */ |
| 10229 | | return (row * 128) + col + 16384; |
| 10233 | return (row * 256) + col + 64 + k001604->txt_mem_offset; |
| 10230 | 10234 | } |
| 10231 | 10235 | |
| 10232 | | TILEMAP_MAPPER_MEMBER(k001604_device::slrasslt_scan_layer_8x8_1_size0) |
| 10233 | | { |
| 10234 | | /* logical (col,row) -> memory offset */ |
| 10235 | | return (row * 128) + col + 64 + 16384; |
| 10236 | | } |
| 10237 | | |
| 10238 | 10236 | TILEMAP_MAPPER_MEMBER(k001604_device::k001604_scan_layer_roz_128) |
| 10239 | 10237 | { |
| 10238 | k001604_state *k001604 = k001604_get_safe_token(this); |
| 10239 | |
| 10240 | 10240 | /* logical (col,row) -> memory offset */ |
| 10241 | | return (row * 128) + col; |
| 10241 | return (row * 128) + col + k001604->roz_mem_offset; |
| 10242 | 10242 | } |
| 10243 | 10243 | |
| 10244 | 10244 | TILEMAP_MAPPER_MEMBER(k001604_device::k001604_scan_layer_roz_256) |
| 10245 | 10245 | { |
| 10246 | k001604_state *k001604 = k001604_get_safe_token(this); |
| 10247 | |
| 10246 | 10248 | /* logical (col,row) -> memory offset */ |
| 10247 | | return (row * 256) + col + 128; |
| 10249 | return (row * 256) + col + 128 + k001604->roz_mem_offset; |
| 10248 | 10250 | } |
| 10249 | 10251 | |
| 10250 | 10252 | TILE_GET_INFO_MEMBER(k001604_device::k001604_tile_info_layer_8x8) |
| r21008 | r21009 | |
| 10269 | 10271 | UINT32 val = k001604->tile_ram[tile_index]; |
| 10270 | 10272 | int flags = 0; |
| 10271 | 10273 | int color = (val >> 17) & 0x1f; |
| 10272 | | int tile = val & 0x7ff; |
| 10274 | int tile = k001604->roz_size ? (val & 0x7ff) : (val & 0x1fff); |
| 10273 | 10275 | |
| 10274 | 10276 | if (val & 0x400000) |
| 10275 | 10277 | flags |= TILE_FLIPX; |
| r21008 | r21009 | |
| 10545 | 10547 | k001604->layer_size = intf->layer_size; // 0 -> width = 128 tiles, 1 -> width = 256 tiles |
| 10546 | 10548 | k001604->roz_size = intf->roz_size; // 0 -> 8x8, 1 -> 16x16 |
| 10547 | 10549 | |
| 10550 | k001604->txt_mem_offset = intf->txt_mem_offset; |
| 10551 | k001604->roz_mem_offset = intf->roz_mem_offset; |
| 10552 | |
| 10548 | 10553 | k001604->gfx_index[0] = intf->gfx_index_1; |
| 10549 | 10554 | k001604->gfx_index[1] = intf->gfx_index_2; |
| 10550 | 10555 | |
| r21008 | r21009 | |
| 10554 | 10559 | |
| 10555 | 10560 | /* create tilemaps */ |
| 10556 | 10561 | roz_tile_size = k001604->roz_size ? 16 : 8; |
| 10557 | | if (!intf->is_slrasslt) |
| 10562 | |
| 10563 | if (k001604->layer_size) |
| 10558 | 10564 | { |
| 10559 | | if (k001604->layer_size) |
| 10560 | | { |
| 10561 | | k001604->layer_8x8[0] = &machine().tilemap().create(tilemap_get_info_delegate(FUNC(k001604_device::k001604_tile_info_layer_8x8),this), tilemap_mapper_delegate(FUNC(k001604_device::k001604_scan_layer_8x8_0_size1),this), 8, 8, 64, 64); |
| 10562 | | k001604->layer_8x8[1] = &machine().tilemap().create(tilemap_get_info_delegate(FUNC(k001604_device::k001604_tile_info_layer_8x8),this), tilemap_mapper_delegate(FUNC(k001604_device::k001604_scan_layer_8x8_1_size1),this), 8, 8, 64, 64); |
| 10565 | k001604->layer_8x8[0] = &machine().tilemap().create(tilemap_get_info_delegate(FUNC(k001604_device::k001604_tile_info_layer_8x8),this), tilemap_mapper_delegate(FUNC(k001604_device::k001604_scan_layer_8x8_0_size1),this), 8, 8, 64, 64); |
| 10566 | k001604->layer_8x8[1] = &machine().tilemap().create(tilemap_get_info_delegate(FUNC(k001604_device::k001604_tile_info_layer_8x8),this), tilemap_mapper_delegate(FUNC(k001604_device::k001604_scan_layer_8x8_1_size1),this), 8, 8, 64, 64); |
| 10563 | 10567 | |
| 10564 | | k001604->layer_roz = &machine().tilemap().create(tilemap_get_info_delegate(FUNC(k001604_device::k001604_tile_info_layer_roz),this), tilemap_mapper_delegate(FUNC(k001604_device::k001604_scan_layer_roz_256),this), roz_tile_size, roz_tile_size, 128, 64); |
| 10565 | | } |
| 10566 | | else |
| 10567 | | { |
| 10568 | | k001604->layer_8x8[0] = &machine().tilemap().create(tilemap_get_info_delegate(FUNC(k001604_device::k001604_tile_info_layer_8x8),this), tilemap_mapper_delegate(FUNC(k001604_device::k001604_scan_layer_8x8_0_size0),this), 8, 8, 64, 64); |
| 10569 | | k001604->layer_8x8[1] = &machine().tilemap().create(tilemap_get_info_delegate(FUNC(k001604_device::k001604_tile_info_layer_8x8),this), tilemap_mapper_delegate(FUNC(k001604_device::k001604_scan_layer_8x8_1_size0),this), 8, 8, 64, 64); |
| 10570 | | |
| 10571 | | k001604->layer_roz = &machine().tilemap().create(tilemap_get_info_delegate(FUNC(k001604_device::k001604_tile_info_layer_roz),this), tilemap_mapper_delegate(FUNC(k001604_device::k001604_scan_layer_roz_128),this), roz_tile_size, roz_tile_size, 128, 64); |
| 10572 | | } |
| 10568 | k001604->layer_roz = &machine().tilemap().create(tilemap_get_info_delegate(FUNC(k001604_device::k001604_tile_info_layer_roz),this), tilemap_mapper_delegate(FUNC(k001604_device::k001604_scan_layer_roz_256),this), roz_tile_size, roz_tile_size, 128, 64); |
| 10573 | 10569 | } |
| 10574 | | else /* slrasslt has shifted tilemaps (but only has k001604->layer_size = 0) */ |
| 10570 | else |
| 10575 | 10571 | { |
| 10576 | | k001604->layer_8x8[0] = &machine().tilemap().create(tilemap_get_info_delegate(FUNC(k001604_device::k001604_tile_info_layer_8x8),this), tilemap_mapper_delegate(FUNC(k001604_device::slrasslt_scan_layer_8x8_0_size0),this), 8, 8, 64, 64); |
| 10577 | | k001604->layer_8x8[1] = &machine().tilemap().create(tilemap_get_info_delegate(FUNC(k001604_device::k001604_tile_info_layer_8x8),this), tilemap_mapper_delegate(FUNC(k001604_device::slrasslt_scan_layer_8x8_1_size0),this), 8, 8, 64, 64); |
| 10572 | k001604->layer_8x8[0] = &machine().tilemap().create(tilemap_get_info_delegate(FUNC(k001604_device::k001604_tile_info_layer_8x8),this), tilemap_mapper_delegate(FUNC(k001604_device::k001604_scan_layer_8x8_0_size0),this), 8, 8, 64, 64); |
| 10573 | k001604->layer_8x8[1] = &machine().tilemap().create(tilemap_get_info_delegate(FUNC(k001604_device::k001604_tile_info_layer_8x8),this), tilemap_mapper_delegate(FUNC(k001604_device::k001604_scan_layer_8x8_1_size0),this), 8, 8, 64, 64); |
| 10578 | 10574 | |
| 10579 | 10575 | k001604->layer_roz = &machine().tilemap().create(tilemap_get_info_delegate(FUNC(k001604_device::k001604_tile_info_layer_roz),this), tilemap_mapper_delegate(FUNC(k001604_device::k001604_scan_layer_roz_128),this), roz_tile_size, roz_tile_size, 128, 64); |
| 10580 | 10576 | } |
trunk/src/mame/drivers/gticlub.c
| r21008 | r21009 | |
| 777 | 777 | { |
| 778 | 778 | 1, 2, /* gfx index 1 & 2 */ |
| 779 | 779 | 1, 1, /* layer_size, roz_size */ |
| 780 | | 0 /* slrasslt hack */ |
| 780 | 0, /* text layer mem offset */ |
| 781 | 0, /* roz layer mem offset */ |
| 781 | 782 | }; |
| 782 | 783 | |
| 783 | 784 | static const k001604_interface slrasslt_k001604_intf = |
| 784 | 785 | { |
| 785 | 786 | 1, 2, /* gfx index 1 & 2 */ |
| 786 | 787 | 0, 0, /* layer_size, roz_size */ |
| 787 | | 1 /* slrasslt hack */ |
| 788 | 16384, /* text layer mem offset */ |
| 789 | 0, /* roz layer mem offset */ |
| 788 | 790 | }; |
| 789 | 791 | |
| 790 | 792 | static const k001604_interface hangplt_k001604_intf_l = |
| 791 | 793 | { |
| 792 | 794 | 1, 2, /* gfx index 1 & 2 */ |
| 793 | 795 | 0, 1, /* layer_size, roz_size */ |
| 794 | | 0 /* slrasslt hack */ |
| 796 | 0, /* text layer mem offset */ |
| 797 | 16384, /* roz layer mem offset */ |
| 795 | 798 | }; |
| 796 | 799 | |
| 797 | 800 | static const k001604_interface hangplt_k001604_intf_r = |
| 798 | 801 | { |
| 799 | 802 | 3, 4, /* gfx index 1 & 2 */ |
| 800 | 803 | 0, 1, /* layer_size, roz_size */ |
| 801 | | 0 /* slrasslt hack */ |
| 804 | 0, /* text layer mem offset */ |
| 805 | 16384, /* roz layer mem offset */ |
| 802 | 806 | }; |
| 803 | 807 | |
| 804 | 808 | |