trunk/src/mame/video/k051316.c
| r30872 | r30873 | |
| 109 | 109 | m_dx(0), |
| 110 | 110 | m_dy(0), |
| 111 | 111 | m_wrap(0), |
| 112 | | m_pen_is_mask(false), |
| 113 | 112 | m_pixels_per_byte(2), // 4bpp layout is default |
| 114 | | m_transparent_pen(0) |
| 113 | m_layermask(0) |
| 115 | 114 | { |
| 116 | 115 | } |
| 117 | 116 | |
| r30872 | r30873 | |
| 163 | 162 | m_tmap = &machine().tilemap().create(*this, tilemap_get_info_delegate(FUNC(k051316_device::get_tile_info),this), TILEMAP_SCAN_ROWS, 16, 16, 32, 32); |
| 164 | 163 | m_ram.resize_and_clear(0x800); |
| 165 | 164 | |
| 166 | | if (!m_pen_is_mask) |
| 167 | | m_tmap->set_transparent_pen(m_transparent_pen); |
| 168 | | else |
| 165 | if (m_layermask) |
| 169 | 166 | { |
| 170 | 167 | m_tmap->map_pens_to_layer(0, 0, 0, TILEMAP_PIXEL_LAYER1); |
| 171 | | m_tmap->map_pens_to_layer(0, m_transparent_pen, m_transparent_pen, TILEMAP_PIXEL_LAYER0); |
| 168 | m_tmap->map_pens_to_layer(0, m_layermask, m_layermask, TILEMAP_PIXEL_LAYER0); |
| 172 | 169 | } |
| 170 | else |
| 171 | m_tmap->set_transparent_pen(0); |
| 173 | 172 | |
| 174 | 173 | // bind callbacks |
| 175 | 174 | m_k051316_cb.bind_relative_to(*owner()); |
trunk/src/mame/video/k051316.h
| r30872 | r30873 | |
| 15 | 15 | #define MCFG_K051316_BPP(_bpp) \ |
| 16 | 16 | k051316_device::set_bpp(*device, _bpp); |
| 17 | 17 | |
| 18 | | #define MCFG_K051316_SETUP_PENS(_mask, _pen) \ |
| 19 | | k051316_device::set_pens(*device, _mask, _pen); |
| 18 | #define MCFG_K051316_LAYER_MASK(_mask) \ |
| 19 | k051316_device::set_layermask(*device, _mask); |
| 20 | 20 | |
| 21 | 21 | #define MCFG_K051316_WRAP(_wrap) \ |
| 22 | 22 | k051316_device::set_wrap(*device, _wrap); |
| r30872 | r30873 | |
| 41 | 41 | static void set_k051316_callback(device_t &device, k051316_cb_delegate callback) { downcast<k051316_device &>(device).m_k051316_cb = callback; } |
| 42 | 42 | static void set_wrap(device_t &device, int wrap) { downcast<k051316_device &>(device).m_wrap = wrap; } |
| 43 | 43 | static void set_bpp(device_t &device, int bpp); |
| 44 | | static void set_pens(device_t &device, bool mask, int transp) |
| 45 | | { |
| 46 | | k051316_device &dev = downcast<k051316_device &>(device); |
| 47 | | dev.m_pen_is_mask = mask; |
| 48 | | dev.m_transparent_pen = transp; |
| 49 | | } |
| 44 | static void set_layermask(device_t &device, int mask) { downcast<k051316_device &>(device).m_layermask = mask; } |
| 50 | 45 | static void set_offsets(device_t &device, int x_offset, int y_offset) |
| 51 | 46 | { |
| 52 | 47 | k051316_device &dev = downcast<k051316_device &>(device); |
| r30872 | r30873 | |
| 74 | 69 | void wraparound_enable(int status); |
| 75 | 70 | |
| 76 | 71 | void mark_gfx_dirty(offs_t byteoffset) { gfx(0)->mark_dirty(byteoffset * m_pixels_per_byte / (16 * 16)); } |
| 72 | void mark_tmap_dirty() { m_tmap->mark_all_dirty(); } |
| 77 | 73 | |
| 78 | 74 | protected: |
| 79 | 75 | // device-level overrides |
| r30872 | r30873 | |
| 91 | 87 | |
| 92 | 88 | int m_dx, m_dy; |
| 93 | 89 | int m_wrap; |
| 94 | | bool m_pen_is_mask; |
| 95 | 90 | int m_pixels_per_byte; |
| 96 | | int m_transparent_pen; |
| 91 | int m_layermask; |
| 97 | 92 | k051316_cb_delegate m_k051316_cb; |
| 98 | 93 | |
| 99 | 94 | TILE_GET_INFO_MEMBER(get_tile_info); |
trunk/src/mame/video/tail2nos.c
| r30872 | r30873 | |
| 155 | 155 | { |
| 156 | 156 | if (m_video_enable) |
| 157 | 157 | { |
| 158 | | m_k051316->zoom_draw(screen, bitmap, cliprect, 0, 0); |
| 158 | m_k051316->zoom_draw(screen, bitmap, cliprect, TILEMAP_DRAW_OPAQUE, 0); |
| 159 | 159 | draw_sprites(bitmap, cliprect); |
| 160 | 160 | m_bg_tilemap->draw(screen, bitmap, cliprect, 0, 0); |
| 161 | 161 | } |
trunk/src/mame/video/overdriv.c
| r30872 | r30873 | |
| 57 | 57 | |
| 58 | 58 | screen.priority().fill(0, cliprect); |
| 59 | 59 | |
| 60 | | m_k051316_1->zoom_draw(screen, bitmap, cliprect, 0, 0); |
| 60 | m_k051316_1->zoom_draw(screen, bitmap, cliprect, TILEMAP_DRAW_OPAQUE, 0); |
| 61 | 61 | m_k051316_2->zoom_draw(screen, bitmap, cliprect, 0, 1); |
| 62 | 62 | |
| 63 | 63 | m_k053246->k053247_sprites_draw( bitmap,cliprect); |
trunk/src/mame/video/ultraman.c
| r30872 | r30873 | |
| 83 | 83 | if (m_bank0 != ((data & 0x02) >> 1)) |
| 84 | 84 | { |
| 85 | 85 | m_bank0 = (data & 0x02) >> 1; |
| 86 | | machine().tilemap().mark_all_dirty(); /* should mark only zoom0 */ |
| 86 | m_k051316_1->mark_tmap_dirty(); |
| 87 | 87 | } |
| 88 | 88 | |
| 89 | 89 | m_k051316_2->wraparound_enable(data & 0x04); |
| r30872 | r30873 | |
| 91 | 91 | if (m_bank1 != ((data & 0x08) >> 3)) |
| 92 | 92 | { |
| 93 | 93 | m_bank1 = (data & 0x08) >> 3; |
| 94 | | machine().tilemap().mark_all_dirty(); /* should mark only zoom1 */ |
| 94 | m_k051316_2->mark_tmap_dirty(); |
| 95 | 95 | } |
| 96 | 96 | |
| 97 | 97 | m_k051316_3->wraparound_enable(data & 0x10); |
| r30872 | r30873 | |
| 99 | 99 | if (m_bank2 != ((data & 0x20) >> 5)) |
| 100 | 100 | { |
| 101 | 101 | m_bank2 = (data & 0x20) >> 5; |
| 102 | | machine().tilemap().mark_all_dirty(); /* should mark only zoom2 */ |
| 102 | m_k051316_3->mark_tmap_dirty(); |
| 103 | 103 | } |
| 104 | 104 | |
| 105 | 105 | coin_counter_w(machine(), 0, data & 0x40); |
| r30872 | r30873 | |
| 117 | 117 | |
| 118 | 118 | UINT32 ultraman_state::screen_update_ultraman(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect) |
| 119 | 119 | { |
| 120 | | m_k051316_3->zoom_draw(screen, bitmap, cliprect, 0, 0); |
| 120 | m_k051316_3->zoom_draw(screen, bitmap, cliprect, TILEMAP_DRAW_OPAQUE, 0); |
| 121 | 121 | m_k051316_2->zoom_draw(screen, bitmap, cliprect, 0, 0); |
| 122 | 122 | m_k051960->k051960_sprites_draw(bitmap, cliprect, screen.priority(), 0, 0); |
| 123 | 123 | m_k051316_1->zoom_draw(screen, bitmap, cliprect, 0, 0); |
trunk/src/mame/drivers/chqflag.c
| r30872 | r30873 | |
| 336 | 336 | |
| 337 | 337 | MCFG_DEVICE_ADD("k051316_1", K051316, 0) |
| 338 | 338 | MCFG_GFX_PALETTE("palette") |
| 339 | | MCFG_K051316_BPP(4) |
| 340 | 339 | MCFG_K051316_OFFSETS(7, 0) |
| 341 | 340 | MCFG_K051316_CB(chqflag_state, zoom_callback_1) |
| 342 | 341 | |
| 343 | 342 | MCFG_DEVICE_ADD("k051316_2", K051316, 0) |
| 344 | 343 | MCFG_GFX_PALETTE("palette") |
| 345 | 344 | MCFG_K051316_BPP(8) |
| 346 | | MCFG_K051316_SETUP_PENS(true, 0xc0) |
| 345 | MCFG_K051316_LAYER_MASK(0xc0) |
| 347 | 346 | MCFG_K051316_WRAP(1) |
| 348 | 347 | MCFG_K051316_CB(chqflag_state, zoom_callback_2) |
| 349 | 348 | |
trunk/src/mame/drivers/ultraman.c
| r30872 | r30873 | |
| 213 | 213 | |
| 214 | 214 | MCFG_DEVICE_ADD("k051316_1", K051316, 0) |
| 215 | 215 | MCFG_GFX_PALETTE("palette") |
| 216 | | MCFG_K051316_BPP(4) |
| 217 | 216 | MCFG_K051316_OFFSETS(8, 0) |
| 218 | 217 | MCFG_K051316_CB(ultraman_state, zoom_callback_1) |
| 219 | 218 | |
| 220 | 219 | MCFG_DEVICE_ADD("k051316_2", K051316, 0) |
| 221 | 220 | MCFG_GFX_PALETTE("palette") |
| 222 | | MCFG_K051316_BPP(4) |
| 223 | 221 | MCFG_K051316_OFFSETS(8, 0) |
| 224 | 222 | MCFG_K051316_CB(ultraman_state, zoom_callback_2) |
| 225 | 223 | |
| 226 | 224 | MCFG_DEVICE_ADD("k051316_3", K051316, 0) |
| 227 | 225 | MCFG_GFX_PALETTE("palette") |
| 228 | | MCFG_K051316_BPP(4) |
| 229 | | MCFG_K051316_SETUP_PENS(true, 0) |
| 230 | 226 | MCFG_K051316_OFFSETS(8, 0) |
| 231 | 227 | MCFG_K051316_CB(ultraman_state, zoom_callback_3) |
| 232 | 228 | |
trunk/src/mame/drivers/overdriv.c
| r30872 | r30873 | |
| 335 | 335 | |
| 336 | 336 | MCFG_DEVICE_ADD("k051316_1", K051316, 0) |
| 337 | 337 | MCFG_GFX_PALETTE("palette") |
| 338 | | MCFG_K051316_BPP(4) |
| 339 | 338 | MCFG_K051316_OFFSETS(14, -1) |
| 340 | 339 | MCFG_K051316_WRAP(1) |
| 341 | | MCFG_K051316_SETUP_PENS(true, 0) |
| 342 | 340 | MCFG_K051316_CB(overdriv_state, zoom_callback_1) |
| 343 | 341 | |
| 344 | 342 | MCFG_DEVICE_ADD("k051316_2", K051316, 0) |
| 345 | 343 | MCFG_GFX_PALETTE("palette") |
| 346 | | MCFG_K051316_BPP(4) |
| 347 | 344 | MCFG_K051316_OFFSETS(15, 1) |
| 348 | 345 | MCFG_K051316_CB(overdriv_state, zoom_callback_2) |
| 349 | 346 | |
trunk/src/mame/drivers/wecleman.c
| r30872 | r30873 | |
| 1140 | 1140 | |
| 1141 | 1141 | MCFG_DEVICE_ADD("k051316_1", K051316, 0) |
| 1142 | 1142 | MCFG_GFX_PALETTE("palette") |
| 1143 | | MCFG_K051316_BPP(4) |
| 1144 | 1143 | MCFG_K051316_OFFSETS(-0xb0 / 2, -16) |
| 1145 | 1144 | MCFG_K051316_WRAP(1) |
| 1146 | 1145 | MCFG_K051316_CB(wecleman_state, hotchase_zoom_callback_1) |
| 1147 | 1146 | |
| 1148 | 1147 | MCFG_DEVICE_ADD("k051316_2", K051316, 0) |
| 1149 | 1148 | MCFG_GFX_PALETTE("palette") |
| 1150 | | MCFG_K051316_BPP(4) |
| 1151 | 1149 | MCFG_K051316_OFFSETS(-0xb0 / 2, -16) |
| 1152 | 1150 | MCFG_K051316_CB(wecleman_state, hotchase_zoom_callback_2) |
| 1153 | 1151 | |