diff --git a/src/emu/cpu/tms32031/32031ops.c b/src/emu/cpu/tms32031/32031ops.c index dcc4142740a..81d470ff27e 100644 --- a/src/emu/cpu/tms32031/32031ops.c +++ b/src/emu/cpu/tms32031/32031ops.c @@ -120,8 +120,7 @@ inline void tms3203x_device::execute_one() m_icount -= 2; // 2 clocks per cycle m_pc++; #if (TMS_3203X_LOG_OPCODE_USAGE) - if (machine.primary_screen->frame_number() == 2003) - m_hits[op >> 21]++; + m_hits[op >> 21]++; #endif (this->*s_tms32031ops[op >> 21])(op); } diff --git a/src/emu/driver.c b/src/emu/driver.c index 6bb2a087846..4b812ab2db2 100644 --- a/src/emu/driver.c +++ b/src/emu/driver.c @@ -550,9 +550,9 @@ void driver_device::updateflip() machine().tilemap().set_flip_all((TILEMAP_FLIPX & m_flip_screen_x) | (TILEMAP_FLIPY & m_flip_screen_y)); // flip the visible area within the screen width/height - int width = machine().primary_screen->width(); - int height = machine().primary_screen->height(); - rectangle visarea = machine().primary_screen->visible_area(); + int width = m_screen->width(); + int height = m_screen->height(); + rectangle visarea = m_screen->visible_area(); if (m_flip_screen_x) { int temp = width - visarea.min_x - 1; @@ -567,8 +567,8 @@ void driver_device::updateflip() } // reconfigure the screen with the new visible area - attoseconds_t period = machine().primary_screen->frame_period().attoseconds; - machine().primary_screen->configure(width, height, visarea, period); + attoseconds_t period = m_screen->frame_period().attoseconds; + m_screen->configure(width, height, visarea, period); } diff --git a/src/emu/machine.h b/src/emu/machine.h index 11b2ed0f33a..292b8e3784b 100644 --- a/src/emu/machine.h +++ b/src/emu/machine.h @@ -302,7 +302,6 @@ public: const pen_t * pens; // remapped palette pen numbers colortable_t * colortable; // global colortable for remapping pen_t * shadow_table; // table for looking up a shadowed pen - bitmap_ind8 priority_bitmap; // priority bitmap // debugger-related information UINT32 debug_flags; // the current debug flags diff --git a/src/emu/machine/tc009xlvc.c b/src/emu/machine/tc009xlvc.c index c81cedf4f68..1b1172bdbb7 100644 --- a/src/emu/machine/tc009xlvc.c +++ b/src/emu/machine/tc009xlvc.c @@ -286,9 +286,9 @@ const address_space_config *tc0091lvc_device::memory_space_config(address_spacen } -void tc0091lvc_device::draw_sprites( running_machine &machine, bitmap_ind16 &bitmap, const rectangle &cliprect, UINT8 global_flip ) +void tc0091lvc_device::draw_sprites( screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect, UINT8 global_flip ) { - gfx_element *gfx = machine.gfx[1]; + gfx_element *gfx = screen.machine().gfx[1]; int count; for(count=0;count<0x3e7;count+=8) @@ -312,7 +312,7 @@ void tc0091lvc_device::draw_sprites( running_machine &machine, bitmap_ind16 &bit fy = !fy; } - pdrawgfx_transpen(bitmap,cliprect,gfx,spr_offs,col,fx,fy,x,y,machine.priority_bitmap,(col & 0x08) ? 0xaa : 0x00,0); + pdrawgfx_transpen(bitmap,cliprect,gfx,spr_offs,col,fx,fy,x,y,screen.priority(),(col & 0x08) ? 0xaa : 0x00,0); } } @@ -342,7 +342,7 @@ UINT32 tc0091lvc_device::screen_update(screen_device &screen, bitmap_ind16 &bitm res_x = (global_flip) ? 320-x : x; res_y = (global_flip) ? 256-y : y; - if(machine().primary_screen->visible_area().contains(res_x, res_y)) + if(screen.visible_area().contains(res_x, res_y)) bitmap.pix16(res_y, res_x) = screen.machine().pens[m_bitmap_ram[count]]; count++; @@ -371,11 +371,11 @@ UINT32 tc0091lvc_device::screen_update(screen_device &screen, bitmap_ind16 &bitm tx_tilemap->set_scrollx(0, (global_flip) ? -192 : 0); - machine().priority_bitmap.fill(0, cliprect); - bg1_tilemap->draw(bitmap, cliprect, 0,0); - bg0_tilemap->draw(bitmap, cliprect, 0,(m_vregs[4] & 0x8) ? 0 : 1); - draw_sprites(machine(), bitmap, cliprect, global_flip); - tx_tilemap->draw(bitmap, cliprect, 0,0); + screen.priority().fill(0, cliprect); + bg1_tilemap->draw(screen, bitmap, cliprect, 0,0); + bg0_tilemap->draw(screen, bitmap, cliprect, 0,(m_vregs[4] & 0x8) ? 0 : 1); + draw_sprites(screen, bitmap, cliprect, global_flip); + tx_tilemap->draw(screen, bitmap, cliprect, 0,0); } return 0; } diff --git a/src/emu/machine/tc009xlvc.h b/src/emu/machine/tc009xlvc.h index 857773c3d61..c6d0aa303de 100644 --- a/src/emu/machine/tc009xlvc.h +++ b/src/emu/machine/tc009xlvc.h @@ -66,7 +66,7 @@ public: int m_gfx_index; // for RAM tiles UINT32 screen_update(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); - void draw_sprites( running_machine &machine, bitmap_ind16 &bitmap, const rectangle &cliprect, UINT8 global_flip); + void draw_sprites( screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect, UINT8 global_flip); void screen_eof(void); protected: diff --git a/src/emu/screen.c b/src/emu/screen.c index a0ae215a644..8d15a98b460 100644 --- a/src/emu/screen.c +++ b/src/emu/screen.c @@ -287,6 +287,7 @@ void screen_device::device_start() m_bitmap[index].set_format(format(), texformat); register_screen_bitmap(m_bitmap[index]); } + register_screen_bitmap(m_priority); // allocate raw textures m_texture[0] = machine().render().texture_alloc(); diff --git a/src/emu/screen.h b/src/emu/screen.h index d278025e028..e188c61df2f 100644 --- a/src/emu/screen.h +++ b/src/emu/screen.h @@ -197,6 +197,7 @@ public: // information getters render_container &container() const { assert(m_container != NULL); return *m_container; } + bitmap_ind8 &priority() { return m_priority; } // dynamic configuration void configure(int width, int height, const rectangle &visarea, attoseconds_t frame_period); @@ -286,6 +287,7 @@ private: texture_format m_texformat; // texture format render_texture * m_texture[2]; // 2x textures for the screen bitmap screen_bitmap m_bitmap[2]; // 2x bitmaps for rendering + bitmap_ind8 m_priority; // priority bitmap bitmap_ind64 m_burnin; // burn-in bitmap UINT8 m_curbitmap; // current bitmap index UINT8 m_curtexture; // current texture index diff --git a/src/emu/tilemap.c b/src/emu/tilemap.c index 58a722ce97c..87104909033 100644 --- a/src/emu/tilemap.c +++ b/src/emu/tilemap.c @@ -905,9 +905,10 @@ UINT8 tilemap_t::tile_apply_bitmask(const UINT8 *maskdata, UINT32 x0, UINT32 y0, // and indexed drawing code //------------------------------------------------- -void tilemap_t::configure_blit_parameters(blit_parameters &blit, const rectangle &cliprect, UINT32 flags, UINT8 priority, UINT8 priority_mask) +void tilemap_t::configure_blit_parameters(blit_parameters &blit, bitmap_ind8 &priority_bitmap, const rectangle &cliprect, UINT32 flags, UINT8 priority, UINT8 priority_mask) { // set the target bitmap + blit.priority = &priority_bitmap; blit.cliprect = cliprect; // set the priority code and alpha @@ -949,7 +950,7 @@ void tilemap_t::configure_blit_parameters(blit_parameters &blit, const rectangle //------------------------------------------------- template -void tilemap_t::draw_common(_BitmapClass &dest, const rectangle &cliprect, UINT32 flags, UINT8 priority, UINT8 priority_mask) +void tilemap_t::draw_common(screen_device &screen, _BitmapClass &dest, const rectangle &cliprect, UINT32 flags, UINT8 priority, UINT8 priority_mask) { // skip if disabled if (!m_enable) @@ -958,13 +959,13 @@ void tilemap_t::draw_common(_BitmapClass &dest, const rectangle &cliprect, UINT3 g_profiler.start(PROFILER_TILEMAP_DRAW); // configure the blit parameters based on the input parameters blit_parameters blit; - configure_blit_parameters(blit, cliprect, flags, priority, priority_mask); + configure_blit_parameters(blit, screen.priority(), cliprect, flags, priority, priority_mask); // flush the dirty state to all tiles as appropriate realize_all_dirty_tiles(); - UINT32 width = machine().primary_screen->width(); - UINT32 height = machine().primary_screen->height(); + UINT32 width = screen.width(); + UINT32 height = screen.height(); // XY scrolling playfield if (m_scrollrows == 1 && m_scrollcols == 1) @@ -1054,11 +1055,11 @@ g_profiler.start(PROFILER_TILEMAP_DRAW); g_profiler.stop(); } -void tilemap_t::draw(bitmap_ind16 &dest, const rectangle &cliprect, UINT32 flags, UINT8 priority, UINT8 priority_mask) -{ draw_common(dest, cliprect, flags, priority, priority_mask); } +void tilemap_t::draw(screen_device &screen, bitmap_ind16 &dest, const rectangle &cliprect, UINT32 flags, UINT8 priority, UINT8 priority_mask) +{ draw_common(screen, dest, cliprect, flags, priority, priority_mask); } -void tilemap_t::draw(bitmap_rgb32 &dest, const rectangle &cliprect, UINT32 flags, UINT8 priority, UINT8 priority_mask) -{ draw_common(dest, cliprect, flags, priority, priority_mask); } +void tilemap_t::draw(screen_device &screen, bitmap_rgb32 &dest, const rectangle &cliprect, UINT32 flags, UINT8 priority, UINT8 priority_mask) +{ draw_common(screen, dest, cliprect, flags, priority, priority_mask); } //------------------------------------------------- @@ -1069,7 +1070,7 @@ void tilemap_t::draw(bitmap_rgb32 &dest, const rectangle &cliprect, UINT32 flags //------------------------------------------------- template -void tilemap_t::draw_roz_common(_BitmapClass &dest, const rectangle &cliprect, +void tilemap_t::draw_roz_common(screen_device &screen, _BitmapClass &dest, const rectangle &cliprect, UINT32 startx, UINT32 starty, int incxx, int incxy, int incyx, int incyy, bool wraparound, UINT32 flags, UINT8 priority, UINT8 priority_mask) { @@ -1086,14 +1087,14 @@ void tilemap_t::draw_roz_common(_BitmapClass &dest, const rectangle &cliprect, { set_scrollx(0, startx >> 16); set_scrolly(0, starty >> 16); - draw(dest, cliprect, flags, priority, priority_mask); + draw(screen, dest, cliprect, flags, priority, priority_mask); return; } g_profiler.start(PROFILER_TILEMAP_DRAW_ROZ); // configure the blit parameters blit_parameters blit; - configure_blit_parameters(blit, cliprect, flags, priority, priority_mask); + configure_blit_parameters(blit, screen.priority(), cliprect, flags, priority, priority_mask); // get the full pixmap for the tilemap pixmap(); @@ -1103,15 +1104,15 @@ g_profiler.start(PROFILER_TILEMAP_DRAW_ROZ); g_profiler.stop(); } -void tilemap_t::draw_roz(bitmap_ind16 &dest, const rectangle &cliprect, +void tilemap_t::draw_roz(screen_device &screen, bitmap_ind16 &dest, const rectangle &cliprect, UINT32 startx, UINT32 starty, int incxx, int incxy, int incyx, int incyy, bool wraparound, UINT32 flags, UINT8 priority, UINT8 priority_mask) -{ draw_roz_common(dest, cliprect, startx, starty, incxx, incxy, incyx, incyy, wraparound, flags, priority, priority_mask); } +{ draw_roz_common(screen, dest, cliprect, startx, starty, incxx, incxy, incyx, incyy, wraparound, flags, priority, priority_mask); } -void tilemap_t::draw_roz(bitmap_rgb32 &dest, const rectangle &cliprect, +void tilemap_t::draw_roz(screen_device &screen, bitmap_rgb32 &dest, const rectangle &cliprect, UINT32 startx, UINT32 starty, int incxx, int incxy, int incyx, int incyy, bool wraparound, UINT32 flags, UINT8 priority, UINT8 priority_mask) -{ draw_roz_common(dest, cliprect, startx, starty, incxx, incxy, incyx, incyy, wraparound, flags, priority, priority_mask); } +{ draw_roz_common(screen, dest, cliprect, startx, starty, incxx, incxy, incyx, incyy, wraparound, flags, priority, priority_mask); } //------------------------------------------------- @@ -1135,7 +1136,7 @@ void tilemap_t::draw_instance(_BitmapClass &dest, const blit_parameters &blit, i return; // look up priority and destination base addresses for y1 - bitmap_ind8 &priority_bitmap = machine().priority_bitmap; + bitmap_ind8 &priority_bitmap = *blit.priority; UINT8 *priority_baseaddr = &priority_bitmap.pix8(y1, xpos); typename _BitmapClass::pixel_t *dest_baseaddr = NULL; int dest_rowpixels = 0; @@ -1304,7 +1305,7 @@ void tilemap_t::draw_roz_core(_BitmapClass &destbitmap, const blit_parameters &b { // pre-cache all the inner loop values const rgb_t *clut = ((destbitmap.palette() != NULL) ? palette_entry_list_raw(destbitmap.palette()) : machine().pens) + (blit.tilemap_priority_code >> 16); - bitmap_ind8 &priority_bitmap = machine().priority_bitmap; + bitmap_ind8 &priority_bitmap = *blit.priority; const int xmask = m_pixmap.width() - 1; const int ymask = m_pixmap.height() - 1; const int widthshifted = m_pixmap.width() << 16; @@ -1471,7 +1472,8 @@ void tilemap_t::draw_debug(bitmap_rgb32 &dest, UINT32 scrollx, UINT32 scrolly) { // set up for the blit, using hard-coded parameters (no priority, etc) blit_parameters blit; - configure_blit_parameters(blit, dest.cliprect(), TILEMAP_DRAW_OPAQUE | TILEMAP_DRAW_ALL_CATEGORIES, 0, 0xff); + bitmap_ind8 dummy_priority; + configure_blit_parameters(blit, dummy_priority, dest.cliprect(), TILEMAP_DRAW_OPAQUE | TILEMAP_DRAW_ALL_CATEGORIES, 0, 0xff); // compute the effective scroll positions scrollx = m_width - scrollx % m_width; @@ -1664,9 +1666,6 @@ tilemap_manager::tilemap_manager(running_machine &machine) : m_machine(machine), m_instance(0) { - if (machine.primary_screen == NULL || machine.primary_screen->width() == 0) - return; - machine.primary_screen->register_screen_bitmap(machine.priority_bitmap); } diff --git a/src/emu/tilemap.h b/src/emu/tilemap.h index 0d95eaeee62..e40ea1434fa 100644 --- a/src/emu/tilemap.h +++ b/src/emu/tilemap.h @@ -628,10 +628,10 @@ public: void set_transmask(int group, UINT32 fgmask, UINT32 bgmask); // drawing - void draw(bitmap_ind16 &dest, const rectangle &cliprect, UINT32 flags, UINT8 priority, UINT8 priority_mask = 0xff); - void draw(bitmap_rgb32 &dest, const rectangle &cliprect, UINT32 flags, UINT8 priority, UINT8 priority_mask = 0xff); - void draw_roz(bitmap_ind16 &dest, const rectangle &cliprect, UINT32 startx, UINT32 starty, int incxx, int incxy, int incyx, int incyy, bool wraparound, UINT32 flags, UINT8 priority, UINT8 priority_mask = 0xff); - void draw_roz(bitmap_rgb32 &dest, const rectangle &cliprect, UINT32 startx, UINT32 starty, int incxx, int incxy, int incyx, int incyy, bool wraparound, UINT32 flags, UINT8 priority, UINT8 priority_mask = 0xff); + void draw(screen_device &screen, bitmap_ind16 &dest, const rectangle &cliprect, UINT32 flags, UINT8 priority = 0, UINT8 priority_mask = 0xff); + void draw(screen_device &screen, bitmap_rgb32 &dest, const rectangle &cliprect, UINT32 flags, UINT8 priority = 0, UINT8 priority_mask = 0xff); + void draw_roz(screen_device &screen, bitmap_ind16 &dest, const rectangle &cliprect, UINT32 startx, UINT32 starty, int incxx, int incxy, int incyx, int incyy, bool wraparound, UINT32 flags, UINT8 priority = 0, UINT8 priority_mask = 0xff); + void draw_roz(screen_device &screen, bitmap_rgb32 &dest, const rectangle &cliprect, UINT32 startx, UINT32 starty, int incxx, int incxy, int incyx, int incyy, bool wraparound, UINT32 flags, UINT8 priority = 0, UINT8 priority_mask = 0xff); void draw_debug(bitmap_rgb32 &dest, UINT32 scrollx, UINT32 scrolly); // mappers @@ -665,6 +665,7 @@ private: // blitting parameters for rendering struct blit_parameters { + bitmap_ind8 * priority; rectangle cliprect; UINT32 tilemap_priority_code; UINT8 mask; @@ -698,9 +699,9 @@ private: void tile_update(logical_index logindex, UINT32 col, UINT32 row); UINT8 tile_draw(const UINT8 *pendata, UINT32 x0, UINT32 y0, UINT32 palette_base, UINT8 category, UINT8 group, UINT8 flags, UINT8 pen_mask); UINT8 tile_apply_bitmask(const UINT8 *maskdata, UINT32 x0, UINT32 y0, UINT8 category, UINT8 flags); - void configure_blit_parameters(blit_parameters &blit, const rectangle &cliprect, UINT32 flags, UINT8 priority, UINT8 priority_mask); - template void draw_common(_BitmapClass &dest, const rectangle &cliprect, UINT32 flags, UINT8 priority, UINT8 priority_mask); - template void draw_roz_common(_BitmapClass &dest, const rectangle &cliprect, UINT32 startx, UINT32 starty, int incxx, int incxy, int incyx, int incyy, bool wraparound, UINT32 flags, UINT8 priority, UINT8 priority_mask); + void configure_blit_parameters(blit_parameters &blit, bitmap_ind8 &priority_bitmap, const rectangle &cliprect, UINT32 flags, UINT8 priority, UINT8 priority_mask); + template void draw_common(screen_device &screen, _BitmapClass &dest, const rectangle &cliprect, UINT32 flags, UINT8 priority, UINT8 priority_mask); + template void draw_roz_common(screen_device &screen, _BitmapClass &dest, const rectangle &cliprect, UINT32 startx, UINT32 starty, int incxx, int incxy, int incyx, int incyy, bool wraparound, UINT32 flags, UINT8 priority, UINT8 priority_mask); template void draw_instance(_BitmapClass &dest, const blit_parameters &blit, int xpos, int ypos); template void draw_roz_core(_BitmapClass &destbitmap, const blit_parameters &blit, UINT32 startx, UINT32 starty, int incxx, int incxy, int incyx, int incyy, bool wraparound); diff --git a/src/emu/video/k053250.c b/src/emu/video/k053250.c index 2184ededb2e..b3d6dc41fda 100644 --- a/src/emu/video/k053250.c +++ b/src/emu/video/k053250.c @@ -221,7 +221,7 @@ inline void k053250_device::pdraw_scanline32(bitmap_rgb32 &bitmap, const pen_t * #undef FIXPOINT_PRECISION_HALF } -void k053250_device::draw( bitmap_rgb32 &bitmap, const rectangle &cliprect, int colorbase, int flags, int priority ) +void k053250_device::draw( bitmap_rgb32 &bitmap, const rectangle &cliprect, int colorbase, int flags, bitmap_ind8 &priority_bitmap, int priority ) { UINT8 *pix_ptr; const pen_t *pal_base, *pal_ptr; @@ -414,7 +414,7 @@ void k053250_device::draw( bitmap_rgb32 &bitmap, const rectangle &cliprect, int priority : value to be written to the priority bitmap, no effect when equals 0 */ pdraw_scanline32(bitmap, pal_ptr, pix_ptr, cliprect, - line_pos, scroll, zoom, src_clipmask, src_wrapmask, orientation, machine().priority_bitmap, (UINT8)priority); + line_pos, scroll, zoom, src_clipmask, src_wrapmask, orientation, priority_bitmap, (UINT8)priority); // shift scanline position one virtual screen upward to render the wrapped end if necessary scroll -= dst_height; diff --git a/src/emu/video/k053250.h b/src/emu/video/k053250.h index 8c9d0fa18e3..7901d7e10fa 100644 --- a/src/emu/video/k053250.h +++ b/src/emu/video/k053250.h @@ -26,7 +26,7 @@ public: DECLARE_WRITE16_MEMBER(ram_w); DECLARE_READ16_MEMBER(rom_r); - void draw( bitmap_rgb32 &bitmap, const rectangle &cliprect, int colorbase, int flags, int priority ); + void draw( bitmap_rgb32 &bitmap, const rectangle &cliprect, int colorbase, int flags, bitmap_ind8 &priority_bitmap, int priority ); protected: virtual void device_start(); diff --git a/src/mame/drivers/1945kiii.c b/src/mame/drivers/1945kiii.c index 5b43956badb..14d1895162e 100644 --- a/src/mame/drivers/1945kiii.c +++ b/src/mame/drivers/1945kiii.c @@ -128,7 +128,7 @@ void k3_state::draw_sprites(bitmap_ind16 &bitmap, const rectangle &cliprect) UINT32 k3_state::screen_update_k3(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect) { - m_bg_tilemap->draw(bitmap, cliprect, 0, 0); + m_bg_tilemap->draw(screen, bitmap, cliprect, 0, 0); draw_sprites(bitmap, cliprect); return 0; } diff --git a/src/mame/drivers/3x3puzzl.c b/src/mame/drivers/3x3puzzl.c index 858930198a1..5ea3fdf3522 100644 --- a/src/mame/drivers/3x3puzzl.c +++ b/src/mame/drivers/3x3puzzl.c @@ -172,9 +172,9 @@ void _3x3puzzle_state::video_start() UINT32 _3x3puzzle_state::screen_update( screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect ) { - m_tilemap1->draw(bitmap, cliprect, 0, 1); - m_tilemap2->draw(bitmap, cliprect, 0, 2); - m_tilemap3->draw(bitmap, cliprect, 0, 3); + m_tilemap1->draw(screen, bitmap, cliprect, 0, 1); + m_tilemap2->draw(screen, bitmap, cliprect, 0, 2); + m_tilemap3->draw(screen, bitmap, cliprect, 0, 3); return 0; } diff --git a/src/mame/drivers/5clown.c b/src/mame/drivers/5clown.c index 5674b0e4078..cdd732ecffa 100644 --- a/src/mame/drivers/5clown.c +++ b/src/mame/drivers/5clown.c @@ -546,7 +546,7 @@ void _5clown_state::video_start() UINT32 _5clown_state::screen_update_fclown(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect) { - m_bg_tilemap->draw(bitmap, cliprect, 0, 0); + m_bg_tilemap->draw(screen, bitmap, cliprect, 0, 0); return 0; } diff --git a/src/mame/drivers/acommand.c b/src/mame/drivers/acommand.c index d9e4101aad1..5e667140621 100644 --- a/src/mame/drivers/acommand.c +++ b/src/mame/drivers/acommand.c @@ -260,9 +260,9 @@ void acommand_state::draw_led(bitmap_ind16 &bitmap, int x, int y,UINT8 value) UINT32 acommand_state::screen_update_acommand(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect) { - m_bg_tilemap->draw(bitmap, cliprect, 0,0); + m_bg_tilemap->draw(screen, bitmap, cliprect, 0,0); draw_sprites(bitmap,cliprect,0,0); - m_tx_tilemap->draw(bitmap, cliprect, 0,0); + m_tx_tilemap->draw(screen, bitmap, cliprect, 0,0); /*Order might be wrong,but these for sure are the led numbers tested*/ draw_led(bitmap, 0, 20, (m_led0 & 0x0f00) >> 8); diff --git a/src/mame/drivers/albazg.c b/src/mame/drivers/albazg.c index 54c955f155a..d5a7c32d943 100644 --- a/src/mame/drivers/albazg.c +++ b/src/mame/drivers/albazg.c @@ -101,7 +101,7 @@ void albazg_state::video_start() UINT32 albazg_state::screen_update_yumefuda(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect) { - m_bg_tilemap->draw(bitmap, cliprect, 0, 0); + m_bg_tilemap->draw(screen, bitmap, cliprect, 0, 0); return 0; } diff --git a/src/mame/drivers/avt.c b/src/mame/drivers/avt.c index aae829d7467..b72dc942bfa 100644 --- a/src/mame/drivers/avt.c +++ b/src/mame/drivers/avt.c @@ -526,7 +526,7 @@ UINT32 avt_state::screen_update_avt(screen_device &screen, bitmap_ind16 &bitmap, count++; } } - //m_bg_tilemap->draw(bitmap, cliprect, 0, 0); + //m_bg_tilemap->draw(screen, bitmap, cliprect, 0, 0); return 0; } diff --git a/src/mame/drivers/backfire.c b/src/mame/drivers/backfire.c index c76a6c76076..42d51609529 100644 --- a/src/mame/drivers/backfire.c +++ b/src/mame/drivers/backfire.c @@ -139,19 +139,19 @@ UINT32 backfire_state::screen_update_backfire_left(screen_device &screen, bitmap m_deco_tilegen1->pf_update(m_pf1_rowscroll, m_pf2_rowscroll); m_deco_tilegen2->pf_update(m_pf3_rowscroll, m_pf4_rowscroll); - machine().priority_bitmap.fill(0); + screen.priority().fill(0); bitmap.fill(0x100, cliprect); if (m_left_priority[0] == 0) { - m_deco_tilegen2->tilemap_1_draw(bitmap, cliprect, 0, 1); - m_deco_tilegen1->tilemap_1_draw(bitmap, cliprect, 0, 2); + m_deco_tilegen2->tilemap_1_draw(screen, bitmap, cliprect, 0, 1); + m_deco_tilegen1->tilemap_1_draw(screen, bitmap, cliprect, 0, 2); m_sprgen->draw_sprites(bitmap, cliprect, m_spriteram_1, 0x800); } else if (m_left_priority[0] == 2) { - m_deco_tilegen1->tilemap_1_draw(bitmap, cliprect, 0, 2); - m_deco_tilegen2->tilemap_1_draw(bitmap, cliprect, 0, 4); + m_deco_tilegen1->tilemap_1_draw(screen, bitmap, cliprect, 0, 2); + m_deco_tilegen2->tilemap_1_draw(screen, bitmap, cliprect, 0, 4); m_sprgen->draw_sprites(bitmap, cliprect, m_spriteram_1, 0x800); } else @@ -170,19 +170,19 @@ UINT32 backfire_state::screen_update_backfire_right(screen_device &screen, bitma m_deco_tilegen1->pf_update(m_pf1_rowscroll, m_pf2_rowscroll); m_deco_tilegen2->pf_update(m_pf3_rowscroll, m_pf4_rowscroll); - machine().priority_bitmap.fill(0); + screen.priority().fill(0); bitmap.fill(0x500, cliprect); if (m_right_priority[0] == 0) { - m_deco_tilegen2->tilemap_2_draw(bitmap, cliprect, 0, 1); - m_deco_tilegen1->tilemap_2_draw(bitmap, cliprect, 0, 2); + m_deco_tilegen2->tilemap_2_draw(screen, bitmap, cliprect, 0, 1); + m_deco_tilegen1->tilemap_2_draw(screen, bitmap, cliprect, 0, 2); m_sprgen2->draw_sprites(bitmap, cliprect, m_spriteram_2, 0x800); } else if (m_right_priority[0] == 2) { - m_deco_tilegen1->tilemap_2_draw(bitmap, cliprect, 0, 2); - m_deco_tilegen2->tilemap_2_draw(bitmap, cliprect, 0, 4); + m_deco_tilegen1->tilemap_2_draw(screen, bitmap, cliprect, 0, 2); + m_deco_tilegen2->tilemap_2_draw(screen, bitmap, cliprect, 0, 4); m_sprgen2->draw_sprites(bitmap, cliprect, m_spriteram_2, 0x800); } else @@ -528,10 +528,12 @@ static MACHINE_CONFIG_START( backfire, backfire_state ) MCFG_DECO16IC_SET_SCREEN("lscreen") MCFG_DEVICE_ADD("spritegen", DECO_SPRITE, 0) + MCFG_VIDEO_SET_SCREEN("lscreen") decospr_device::set_gfx_region(*device, 4); decospr_device::set_pri_callback(*device, backfire_pri_callback); MCFG_DEVICE_ADD("spritegen2", DECO_SPRITE, 0) + MCFG_VIDEO_SET_SCREEN("rscreen") decospr_device::set_gfx_region(*device, 5); decospr_device::set_pri_callback(*device, backfire_pri_callback); diff --git a/src/mame/drivers/bestleag.c b/src/mame/drivers/bestleag.c index 094e1322a07..83f2fe1d93a 100644 --- a/src/mame/drivers/bestleag.c +++ b/src/mame/drivers/bestleag.c @@ -187,10 +187,10 @@ UINT32 bestleag_state::screen_update_bestleag(screen_device &screen, bitmap_ind1 m_fg_tilemap->set_scrollx(0,m_vregs[0x08/2] & 0xfff8); m_fg_tilemap->set_scrolly(0,m_vregs[0x0a/2]); - m_bg_tilemap->draw(bitmap, cliprect, 0,0); - m_fg_tilemap->draw(bitmap, cliprect, 0,0); + m_bg_tilemap->draw(screen, bitmap, cliprect, 0,0); + m_fg_tilemap->draw(screen, bitmap, cliprect, 0,0); draw_sprites(bitmap,cliprect); - m_tx_tilemap->draw(bitmap, cliprect, 0,0); + m_tx_tilemap->draw(screen, bitmap, cliprect, 0,0); return 0; } @@ -203,10 +203,10 @@ UINT32 bestleag_state::screen_update_bestleaw(screen_device &screen, bitmap_ind1 m_fg_tilemap->set_scrollx(0,m_vregs[0x04/2]); m_fg_tilemap->set_scrolly(0,m_vregs[0x06/2]); - m_bg_tilemap->draw(bitmap, cliprect, 0,0); - m_fg_tilemap->draw(bitmap, cliprect, 0,0); + m_bg_tilemap->draw(screen, bitmap, cliprect, 0,0); + m_fg_tilemap->draw(screen, bitmap, cliprect, 0,0); draw_sprites(bitmap,cliprect); - m_tx_tilemap->draw(bitmap, cliprect, 0,0); + m_tx_tilemap->draw(screen, bitmap, cliprect, 0,0); return 0; } diff --git a/src/mame/drivers/blitz.c b/src/mame/drivers/blitz.c index b31d6654885..e68ab5cf879 100644 --- a/src/mame/drivers/blitz.c +++ b/src/mame/drivers/blitz.c @@ -364,7 +364,7 @@ void blitz_state::video_start() UINT32 blitz_state::screen_update_megadpkr(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect) { - m_bg_tilemap->draw(bitmap, cliprect, 0, 0); + m_bg_tilemap->draw(screen, bitmap, cliprect, 0, 0); return 0; } diff --git a/src/mame/drivers/bnstars.c b/src/mame/drivers/bnstars.c index 0e690ee0b44..0b22ddb16c5 100644 --- a/src/mame/drivers/bnstars.c +++ b/src/mame/drivers/bnstars.c @@ -159,9 +159,9 @@ public: UINT32 screen_update_bnstars_left(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); UINT32 screen_update_bnstars_right(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); TIMER_DEVICE_CALLBACK_MEMBER(ms32_interrupt); - void draw_roz(bitmap_ind16 &bitmap, const rectangle &cliprect, int priority, int chip); + void draw_roz(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect, int priority, int chip); void update_color(int color, int screen); - void draw_sprites(bitmap_ind16 &bitmap, const rectangle &cliprect, UINT32 *sprram_top, size_t sprram_size, int region); + void draw_sprites(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect, UINT32 *sprram_top, size_t sprram_size, int region); void irq_init(); void irq_raise(int level); IRQ_CALLBACK_MEMBER(irq_callback); @@ -238,7 +238,7 @@ WRITE32_MEMBER(bnstars_state::ms32_bg1_ram_w) /* ROZ Layers */ -void bnstars_state::draw_roz(bitmap_ind16 &bitmap, const rectangle &cliprect, int priority, int chip) +void bnstars_state::draw_roz(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect, int priority, int chip) { /* TODO: registers 0x40/4 / 0x44/4 and 0x50/4 / 0x54/4 are used, meaning unknown */ @@ -282,7 +282,7 @@ void bnstars_state::draw_roz(bitmap_ind16 &bitmap, const rectangle &cliprect, in if (incxx & 0x10000) incxx |= ~0x1ffff; if (incxy & 0x10000) incxy |= ~0x1ffff; - m_ms32_roz_tilemap->draw_roz(bitmap, &my_clip, + m_ms32_roz_tilemap->draw_roz(screen, bitmap, &my_clip, (start2x+startx+offsx)<<16, (start2y+starty+offsy)<<16, incxx<<8, incxy<<8, 0, 0, 1, // Wrap @@ -314,7 +314,7 @@ void bnstars_state::draw_roz(bitmap_ind16 &bitmap, const rectangle &cliprect, in if (incyy & 0x10000) incyy |= ~0x1ffff; if (incyx & 0x10000) incyx |= ~0x1ffff; - m_ms32_roz_tilemap[chip]->draw_roz(bitmap, cliprect, + m_ms32_roz_tilemap[chip]->draw_roz(screen, bitmap, cliprect, (startx+offsx)<<16, (starty+offsy)<<16, incxx<<8, incxy<<8, incyx<<8, incyy<<8, 1, // Wrap @@ -381,7 +381,7 @@ WRITE32_MEMBER(bnstars_state::ms32_pal1_ram_w) /* SPRITES based on tetrisp2 for now, readd priority bits later */ -void bnstars_state::draw_sprites(bitmap_ind16 &bitmap, const rectangle &cliprect, UINT32 *sprram_top, size_t sprram_size, int region) +void bnstars_state::draw_sprites(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect, UINT32 *sprram_top, size_t sprram_size, int region) { /*************************************************************************** @@ -502,7 +502,7 @@ void bnstars_state::draw_sprites(bitmap_ind16 &bitmap, const rectangle &cliprect color, flipx, flipy, sx,sy, - xzoom, yzoom, machine().priority_bitmap,pri_mask, 0); + xzoom, yzoom, screen.priority(),pri_mask, 0); } /* end sprite loop */ } @@ -540,45 +540,45 @@ void bnstars_state::video_start() UINT32 bnstars_state::screen_update_bnstars_left(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect) { - machine().priority_bitmap.fill(0, cliprect); + screen.priority().fill(0, cliprect); bitmap.fill(0, cliprect); /* bg color */ m_ms32_bg_tilemap[0]->set_scrollx(0, m_ms32_bg0_scroll[0x00/4] + m_ms32_bg0_scroll[0x08/4] + 0x10 ); m_ms32_bg_tilemap[0]->set_scrolly(0, m_ms32_bg0_scroll[0x0c/4] + m_ms32_bg0_scroll[0x14/4] ); - m_ms32_bg_tilemap[0]->draw(bitmap, cliprect, 0,1); + m_ms32_bg_tilemap[0]->draw(screen, bitmap, cliprect, 0,1); - draw_roz(bitmap,cliprect,2,0); + draw_roz(screen,bitmap,cliprect,2,0); m_ms32_tx_tilemap[0]->set_scrollx(0, m_ms32_tx0_scroll[0x00/4] + m_ms32_tx0_scroll[0x08/4] + 0x18); m_ms32_tx_tilemap[0]->set_scrolly(0, m_ms32_tx0_scroll[0x0c/4] + m_ms32_tx0_scroll[0x14/4]); - m_ms32_tx_tilemap[0]->draw(bitmap, cliprect, 0,4); + m_ms32_tx_tilemap[0]->draw(screen, bitmap, cliprect, 0,4); - draw_sprites(bitmap,cliprect, m_ms32_spram, 0x20000, 0); + draw_sprites(screen,bitmap,cliprect, m_ms32_spram, 0x20000, 0); return 0; } UINT32 bnstars_state::screen_update_bnstars_right(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect) { - machine().priority_bitmap.fill(0, cliprect); + screen.priority().fill(0, cliprect); bitmap.fill(0x8000+0, cliprect); /* bg color */ m_ms32_bg_tilemap[1]->set_scrollx(0, m_ms32_bg1_scroll[0x00/4] + m_ms32_bg1_scroll[0x08/4] + 0x10 ); m_ms32_bg_tilemap[1]->set_scrolly(0, m_ms32_bg1_scroll[0x0c/4] + m_ms32_bg1_scroll[0x14/4] ); - m_ms32_bg_tilemap[1]->draw(bitmap, cliprect, 0,1); + m_ms32_bg_tilemap[1]->draw(screen, bitmap, cliprect, 0,1); - draw_roz(bitmap,cliprect,2,1); + draw_roz(screen,bitmap,cliprect,2,1); m_ms32_tx_tilemap[1]->set_scrollx(0, m_ms32_tx1_scroll[0x00/4] + m_ms32_tx1_scroll[0x08/4] + 0x18); m_ms32_tx_tilemap[1]->set_scrolly(0, m_ms32_tx1_scroll[0x0c/4] + m_ms32_tx1_scroll[0x14/4]); - m_ms32_tx_tilemap[1]->draw(bitmap, cliprect, 0,4); + m_ms32_tx_tilemap[1]->draw(screen, bitmap, cliprect, 0,4); - draw_sprites(bitmap,cliprect, m_ms32_spram+(0x20000/4), 0x20000, 4); + draw_sprites(screen,bitmap,cliprect, m_ms32_spram+(0x20000/4), 0x20000, 4); return 0; } diff --git a/src/mame/drivers/cabaret.c b/src/mame/drivers/cabaret.c index 81cdd500d13..5a81e6d69d4 100644 --- a/src/mame/drivers/cabaret.c +++ b/src/mame/drivers/cabaret.c @@ -120,9 +120,9 @@ UINT32 cabaret_state::screen_update_cabaret(screen_device &screen, bitmap_ind16 { bitmap.fill(get_black_pen(machine()), cliprect); - m_bg_tilemap->draw(bitmap, cliprect, 0, 0); + m_bg_tilemap->draw(screen, bitmap, cliprect, 0, 0); - m_fg_tilemap->draw(bitmap, cliprect, 0, 0); + m_fg_tilemap->draw(screen, bitmap, cliprect, 0, 0); return 0; } diff --git a/src/mame/drivers/calorie.c b/src/mame/drivers/calorie.c index 104c184602b..c3ab0327766 100644 --- a/src/mame/drivers/calorie.c +++ b/src/mame/drivers/calorie.c @@ -158,12 +158,12 @@ UINT32 calorie_state::screen_update_calorie(screen_device &screen, bitmap_ind16 if (m_bg_bank & 0x10) { - m_bg_tilemap->draw(bitmap, cliprect, 0, 0); - m_fg_tilemap->draw(bitmap, cliprect, 0, 0); + m_bg_tilemap->draw(screen, bitmap, cliprect, 0, 0); + m_fg_tilemap->draw(screen, bitmap, cliprect, 0, 0); } else { - m_fg_tilemap->draw(bitmap, cliprect, TILEMAP_DRAW_OPAQUE, 0); + m_fg_tilemap->draw(screen, bitmap, cliprect, TILEMAP_DRAW_OPAQUE, 0); } diff --git a/src/mame/drivers/caswin.c b/src/mame/drivers/caswin.c index 3bce18a25e0..10dd1b18e31 100644 --- a/src/mame/drivers/caswin.c +++ b/src/mame/drivers/caswin.c @@ -118,7 +118,7 @@ void caswin_state::video_start() UINT32 caswin_state::screen_update_vvillage(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect) { - m_sc0_tilemap->draw(bitmap, cliprect, 0,0); + m_sc0_tilemap->draw(screen, bitmap, cliprect, 0,0); return 0; } diff --git a/src/mame/drivers/cb2001.c b/src/mame/drivers/cb2001.c index 83dfa1627e2..4b114060290 100644 --- a/src/mame/drivers/cb2001.c +++ b/src/mame/drivers/cb2001.c @@ -401,9 +401,9 @@ UINT32 cb2001_state::screen_update_cb2001(screen_device &screen, bitmap_rgb32 &b const rectangle visible2(0*8, (14+48)*8-1, 10*8, (10+7)*8-1); const rectangle visible3(0*8, (14+48)*8-1, 17*8, (17+7)*8-1); - m_reel1_tilemap->draw(bitmap, visible1, 0, 0); - m_reel2_tilemap->draw(bitmap, visible2, 0, 0); - m_reel3_tilemap->draw(bitmap, visible3, 0, 0); + m_reel1_tilemap->draw(screen, bitmap, visible1, 0, 0); + m_reel2_tilemap->draw(screen, bitmap, visible2, 0, 0); + m_reel3_tilemap->draw(screen, bitmap, visible3, 0, 0); } } diff --git a/src/mame/drivers/cball.c b/src/mame/drivers/cball.c index 4590f1e4e34..bcae43b16ff 100644 --- a/src/mame/drivers/cball.c +++ b/src/mame/drivers/cball.c @@ -70,7 +70,7 @@ void cball_state::video_start() UINT32 cball_state::screen_update_cball(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect) { /* draw playfield */ - m_bg_tilemap->draw(bitmap, cliprect, 0, 0); + m_bg_tilemap->draw(screen, bitmap, cliprect, 0, 0); /* draw sprite */ drawgfx_transpen(bitmap, cliprect, machine().gfx[1], diff --git a/src/mame/drivers/chanbara.c b/src/mame/drivers/chanbara.c index d7490d192b4..e011f694618 100644 --- a/src/mame/drivers/chanbara.c +++ b/src/mame/drivers/chanbara.c @@ -208,9 +208,9 @@ void chanbara_state::draw_sprites( bitmap_ind16 &bitmap, const rectangle &clipre UINT32 chanbara_state::screen_update_chanbara(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect) { m_bg2_tilemap->set_scrolly(0, m_scroll | (m_scrollhi << 8)); - m_bg2_tilemap->draw(bitmap, cliprect, 0, 0); + m_bg2_tilemap->draw(screen, bitmap, cliprect, 0, 0); draw_sprites(bitmap, cliprect); - m_bg_tilemap->draw(bitmap, cliprect, 0, 0); + m_bg_tilemap->draw(screen, bitmap, cliprect, 0, 0); return 0; } diff --git a/src/mame/drivers/chance32.c b/src/mame/drivers/chance32.c index 42bac3392e8..eee025d3f72 100644 --- a/src/mame/drivers/chance32.c +++ b/src/mame/drivers/chance32.c @@ -109,8 +109,8 @@ UINT32 chance32_state::screen_update_chance32(screen_device &screen, bitmap_ind1 m_fg_tilemap->set_scrollx(0, 352); m_fg_tilemap->set_scrolly(0, 160); - m_bg_tilemap->draw(bitmap, cliprect, 0, 0); - m_fg_tilemap->draw(bitmap, cliprect, 0, 0); + m_bg_tilemap->draw(screen, bitmap, cliprect, 0, 0); + m_fg_tilemap->draw(screen, bitmap, cliprect, 0, 0); return 0; } diff --git a/src/mame/drivers/cntsteer.c b/src/mame/drivers/cntsteer.c index 76480d47fe3..0535bf7555e 100644 --- a/src/mame/drivers/cntsteer.c +++ b/src/mame/drivers/cntsteer.c @@ -320,7 +320,7 @@ UINT32 cntsteer_state::screen_update_zerotrgt(screen_device &screen, bitmap_ind1 x = -256 - (m_scrollx | m_scrollx_hi); y = 256 + (m_scrolly | m_scrolly_hi); - m_bg_tilemap->draw_roz(bitmap, cliprect, + m_bg_tilemap->draw_roz(screen, bitmap, cliprect, (x << 16), (y << 16), p1, p2, p3, p4, @@ -329,7 +329,7 @@ UINT32 cntsteer_state::screen_update_zerotrgt(screen_device &screen, bitmap_ind1 } zerotrgt_draw_sprites(bitmap, cliprect); - m_fg_tilemap->draw(bitmap, cliprect, 0, 0); + m_fg_tilemap->draw(screen, bitmap, cliprect, 0, 0); return 0; } @@ -367,7 +367,7 @@ UINT32 cntsteer_state::screen_update_cntsteer(screen_device &screen, bitmap_ind1 x = 256 + (m_scrollx | m_scrollx_hi); y = 256 - (m_scrolly | m_scrolly_hi); - m_bg_tilemap->draw_roz(bitmap, cliprect, + m_bg_tilemap->draw_roz(screen, bitmap, cliprect, (x << 16), (y << 16), p1, p2, p3, p4, @@ -376,7 +376,7 @@ UINT32 cntsteer_state::screen_update_cntsteer(screen_device &screen, bitmap_ind1 } cntsteer_draw_sprites(bitmap, cliprect); - m_fg_tilemap->draw(bitmap, cliprect, 0, 0); + m_fg_tilemap->draw(screen, bitmap, cliprect, 0, 0); return 0; } diff --git a/src/mame/drivers/cobra.c b/src/mame/drivers/cobra.c index 96ab01b9089..fad41f77c2d 100644 --- a/src/mame/drivers/cobra.c +++ b/src/mame/drivers/cobra.c @@ -1008,7 +1008,7 @@ UINT32 cobra_state::screen_update_cobra(screen_device &screen, bitmap_rgb32 &bit if (m_has_psac) { m_k001604->draw_back_layer(bitmap, cliprect); - m_k001604->draw_front_layer(bitmap, cliprect); + m_k001604->draw_front_layer(screen, bitmap, cliprect); } m_renderer->display(&bitmap, cliprect); diff --git a/src/mame/drivers/coinmstr.c b/src/mame/drivers/coinmstr.c index 4bee8d86843..8cbfc61a701 100644 --- a/src/mame/drivers/coinmstr.c +++ b/src/mame/drivers/coinmstr.c @@ -925,7 +925,7 @@ void coinmstr_state::video_start() UINT32 coinmstr_state::screen_update_coinmstr(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect) { - m_bg_tilemap->draw(bitmap, cliprect, 0, 0); + m_bg_tilemap->draw(screen, bitmap, cliprect, 0, 0); return 0; } diff --git a/src/mame/drivers/cshooter.c b/src/mame/drivers/cshooter.c index 02daf09c604..41c3147fc7f 100644 --- a/src/mame/drivers/cshooter.c +++ b/src/mame/drivers/cshooter.c @@ -205,7 +205,7 @@ UINT32 cshooter_state::screen_update_cshooter(screen_device &screen, bitmap_ind1 //draw_sprites(bitmap, cliprect); - m_txtilemap->draw(bitmap, cliprect, 0,0); + m_txtilemap->draw(screen, bitmap, cliprect, 0,0); return 0; } @@ -226,7 +226,7 @@ UINT32 cshooter_state::screen_update_airraid(screen_device &screen, bitmap_ind16 draw_sprites(bitmap, cliprect); - m_txtilemap->draw(bitmap, cliprect, 0,0); + m_txtilemap->draw(screen, bitmap, cliprect, 0,0); return 0; } diff --git a/src/mame/drivers/cultures.c b/src/mame/drivers/cultures.c index 54ccbdf6814..21c5dd480b5 100644 --- a/src/mame/drivers/cultures.c +++ b/src/mame/drivers/cultures.c @@ -124,9 +124,9 @@ UINT32 cultures_state::screen_update_cultures(screen_device &screen, bitmap_ind1 m_bg1_tilemap->set_scrolly(0, (m_bg1_regs_y[2] << 8) + m_bg1_regs_y[0]); m_bg2_tilemap->set_scrolly(0, (m_bg2_regs_y[2] << 8) + m_bg2_regs_y[0]); - m_bg2_tilemap->draw(bitmap, cliprect, 0, 0); - m_bg0_tilemap->draw(bitmap, cliprect, 0, 0); - m_bg1_tilemap->draw(bitmap, cliprect, 0, 0); + m_bg2_tilemap->draw(screen, bitmap, cliprect, 0, 0); + m_bg0_tilemap->draw(screen, bitmap, cliprect, 0, 0); + m_bg1_tilemap->draw(screen, bitmap, cliprect, 0, 0); return 0; } diff --git a/src/mame/drivers/cybertnk.c b/src/mame/drivers/cybertnk.c index f47349abb55..e813a76ebb4 100644 --- a/src/mame/drivers/cybertnk.c +++ b/src/mame/drivers/cybertnk.c @@ -490,14 +490,14 @@ static UINT32 update_screen(screen_device &screen, bitmap_ind16 &bitmap, const r draw_road(screen,bitmap,cliprect,screen_shift, 0x00); - state->m_tilemap2_tilemap->draw(bitmap, cliprect, 0,0); - state->m_tilemap1_tilemap->draw(bitmap, cliprect, 0,0); + state->m_tilemap2_tilemap->draw(screen, bitmap, cliprect, 0,0); + state->m_tilemap1_tilemap->draw(screen, bitmap, cliprect, 0,0); draw_road(screen,bitmap,cliprect,screen_shift, 0x80); draw_sprites(screen,bitmap,cliprect,screen_shift); - state->m_tilemap0_tilemap->draw(bitmap, cliprect, 0,0); + state->m_tilemap0_tilemap->draw(screen, bitmap, cliprect, 0,0); return 0; diff --git a/src/mame/drivers/d9final.c b/src/mame/drivers/d9final.c index 1e5ceb287c5..6e5731f5f3c 100644 --- a/src/mame/drivers/d9final.c +++ b/src/mame/drivers/d9final.c @@ -71,7 +71,7 @@ void d9final_state::video_start() UINT32 d9final_state::screen_update_d9final(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect) { - m_sc0_tilemap->draw(bitmap, cliprect, 0,0); + m_sc0_tilemap->draw(screen, bitmap, cliprect, 0,0); return 0; } diff --git a/src/mame/drivers/dacholer.c b/src/mame/drivers/dacholer.c index 8c4c3b126ff..315bfe8780d 100644 --- a/src/mame/drivers/dacholer.c +++ b/src/mame/drivers/dacholer.c @@ -170,9 +170,9 @@ UINT32 dacholer_state::screen_update_dacholer(screen_device &screen, bitmap_ind1 m_bg_tilemap->set_scrolly(0, m_scroll_y); } - m_bg_tilemap->draw(bitmap, cliprect, 0, 0); + m_bg_tilemap->draw(screen, bitmap, cliprect, 0, 0); draw_sprites(bitmap, cliprect); - m_fg_tilemap->draw(bitmap, cliprect, 0, 0); + m_fg_tilemap->draw(screen, bitmap, cliprect, 0, 0); return 0; } diff --git a/src/mame/drivers/dblewing.c b/src/mame/drivers/dblewing.c index 6ea1cc0f369..01bfba7cc78 100644 --- a/src/mame/drivers/dblewing.c +++ b/src/mame/drivers/dblewing.c @@ -93,10 +93,10 @@ UINT32 dblewing_state::screen_update_dblewing(screen_device &screen, bitmap_ind1 m_deco_tilegen1->pf_update(m_pf1_rowscroll, m_pf2_rowscroll); bitmap.fill(0, cliprect); /* not Confirmed */ - machine().priority_bitmap.fill(0); + screen.priority().fill(0); - m_deco_tilegen1->tilemap_2_draw(bitmap, cliprect, 0, 2); - m_deco_tilegen1->tilemap_1_draw(bitmap, cliprect, 0, 4); + m_deco_tilegen1->tilemap_2_draw(screen, bitmap, cliprect, 0, 2); + m_deco_tilegen1->tilemap_1_draw(screen, bitmap, cliprect, 0, 4); m_sprgen->draw_sprites(bitmap, cliprect, m_spriteram, 0x400); return 0; } diff --git a/src/mame/drivers/ddayjlc.c b/src/mame/drivers/ddayjlc.c index 2d104ada03d..fe52b966cf7 100644 --- a/src/mame/drivers/ddayjlc.c +++ b/src/mame/drivers/ddayjlc.c @@ -392,7 +392,7 @@ void ddayjlc_state::video_start() UINT32 ddayjlc_state::screen_update_ddayjlc(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect) { UINT32 i; - m_bg_tilemap->draw(bitmap, cliprect, 0, 0); + m_bg_tilemap->draw(screen, bitmap, cliprect, 0, 0); for (i = 0; i < 0x400; i += 4) { diff --git a/src/mame/drivers/ddealer.c b/src/mame/drivers/ddealer.c index 644bf39f986..bc361adaf33 100644 --- a/src/mame/drivers/ddealer.c +++ b/src/mame/drivers/ddealer.c @@ -275,7 +275,7 @@ UINT32 ddealer_state::screen_update_ddealer(screen_device &screen, bitmap_ind16 { m_back_tilemap->set_scrollx(0, m_flipscreen ? -192 : -64); m_back_tilemap->set_flip(m_flipscreen ? TILEMAP_FLIPY | TILEMAP_FLIPX : 0); - m_back_tilemap->draw(bitmap, cliprect, 0, 0); + m_back_tilemap->draw(screen, bitmap, cliprect, 0, 0); /* the fg tilemap handling is a little hacky right now, i'm not sure if it should be a single tilemap with diff --git a/src/mame/drivers/deco156.c b/src/mame/drivers/deco156.c index 295bca8c94d..33e675c954b 100644 --- a/src/mame/drivers/deco156.c +++ b/src/mame/drivers/deco156.c @@ -82,14 +82,14 @@ UINT32 deco156_state::screen_update_wcvol95(screen_device &screen, bitmap_rgb32 //FIXME: flip_screen_x should not be written! flip_screen_set_no_update(1); - machine().priority_bitmap.fill(0); + screen.priority().fill(0); bitmap.fill(0); m_deco_tilegen1->pf_update(m_pf1_rowscroll, m_pf2_rowscroll); - m_deco_tilegen1->tilemap_2_draw(bitmap, cliprect, TILEMAP_DRAW_OPAQUE, 0); + m_deco_tilegen1->tilemap_2_draw(screen, bitmap, cliprect, TILEMAP_DRAW_OPAQUE, 0); m_sprgen->draw_sprites(bitmap, cliprect, m_spriteram, 0x800); - m_deco_tilegen1->tilemap_1_draw(bitmap, cliprect, 0, 0); + m_deco_tilegen1->tilemap_1_draw(screen, bitmap, cliprect, 0, 0); return 0; } diff --git a/src/mame/drivers/dreambal.c b/src/mame/drivers/dreambal.c index 3c20c749747..c5b6c68e82f 100644 --- a/src/mame/drivers/dreambal.c +++ b/src/mame/drivers/dreambal.c @@ -80,10 +80,10 @@ UINT32 dreambal_state::screen_update_dreambal(screen_device &screen, bitmap_ind1 m_deco_tilegen1->pf_update(NULL, NULL); bitmap.fill(0, cliprect); /* not Confirmed */ - machine().priority_bitmap.fill(0); + screen.priority().fill(0); - m_deco_tilegen1->tilemap_2_draw(bitmap, cliprect, 0, 2); - m_deco_tilegen1->tilemap_1_draw(bitmap, cliprect, 0, 4); + m_deco_tilegen1->tilemap_2_draw(screen, bitmap, cliprect, 0, 2); + m_deco_tilegen1->tilemap_1_draw(screen, bitmap, cliprect, 0, 4); return 0; } diff --git a/src/mame/drivers/dreamwld.c b/src/mame/drivers/dreamwld.c index 31f4da73aa9..f5d2e6489ed 100644 --- a/src/mame/drivers/dreamwld.c +++ b/src/mame/drivers/dreamwld.c @@ -393,8 +393,8 @@ UINT32 dreamwld_state::screen_update_dreamwld(screen_device &screen, bitmap_ind1 m_bg2_tilemap->mark_all_dirty(); } - tmptilemap0->draw(bitmap, cliprect, 0, 0); - tmptilemap1->draw(bitmap, cliprect, 0, 0); + tmptilemap0->draw(screen, bitmap, cliprect, 0, 0); + tmptilemap1->draw(screen, bitmap, cliprect, 0, 0); draw_sprites(bitmap, cliprect); diff --git a/src/mame/drivers/drtomy.c b/src/mame/drivers/drtomy.c index 6bd9f66b410..7084d903838 100644 --- a/src/mame/drivers/drtomy.c +++ b/src/mame/drivers/drtomy.c @@ -136,8 +136,8 @@ void drtomy_state::video_start() UINT32 drtomy_state::screen_update_drtomy(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect) { - m_tilemap_bg->draw(bitmap, cliprect, 0, 0); - m_tilemap_fg->draw(bitmap, cliprect, 0, 0); + m_tilemap_bg->draw(screen, bitmap, cliprect, 0, 0); + m_tilemap_fg->draw(screen, bitmap, cliprect, 0, 0); draw_sprites(bitmap, cliprect); return 0; } diff --git a/src/mame/drivers/drw80pkr.c b/src/mame/drivers/drw80pkr.c index 0d8029f2d46..cc2fb405cf8 100644 --- a/src/mame/drivers/drw80pkr.c +++ b/src/mame/drivers/drw80pkr.c @@ -343,7 +343,7 @@ void drw80pkr_state::video_start() UINT32 drw80pkr_state::screen_update_drw80pkr(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect) { - m_bg_tilemap->draw(bitmap, cliprect, 0, 0); + m_bg_tilemap->draw(screen, bitmap, cliprect, 0, 0); return 0; } diff --git a/src/mame/drivers/dunhuang.c b/src/mame/drivers/dunhuang.c index 83a9cda18a0..95656b9b89d 100644 --- a/src/mame/drivers/dunhuang.c +++ b/src/mame/drivers/dunhuang.c @@ -180,16 +180,16 @@ if (machine().input().code_pressed(KEYCODE_Z)) switch (m_layers) { case 0x04: // girl select: bg over fg - if (layers_ctrl & 2) m_tmap2->draw(bitmap, cliprect, TILEMAP_DRAW_OPAQUE, 0); - if (layers_ctrl & 1) m_tmap->draw(bitmap, cliprect, 0, 0); + if (layers_ctrl & 2) m_tmap2->draw(screen, bitmap, cliprect, TILEMAP_DRAW_OPAQUE, 0); + if (layers_ctrl & 1) m_tmap->draw(screen, bitmap, cliprect, 0, 0); break; case 0x05: // dips: must hide fg - if (layers_ctrl & 1) m_tmap->draw(bitmap, cliprect, TILEMAP_DRAW_OPAQUE, 0); + if (layers_ctrl & 1) m_tmap->draw(screen, bitmap, cliprect, TILEMAP_DRAW_OPAQUE, 0); break; case 0x07: // game,demo: fg over bg default: - if (layers_ctrl & 1) m_tmap->draw(bitmap, cliprect, TILEMAP_DRAW_OPAQUE, 0); - if (layers_ctrl & 2) m_tmap2->draw(bitmap, cliprect, 0, 0); + if (layers_ctrl & 1) m_tmap->draw(screen, bitmap, cliprect, TILEMAP_DRAW_OPAQUE, 0); + if (layers_ctrl & 2) m_tmap2->draw(screen, bitmap, cliprect, 0, 0); break; } diff --git a/src/mame/drivers/dynadice.c b/src/mame/drivers/dynadice.c index 720767dc5fe..468441f59fb 100644 --- a/src/mame/drivers/dynadice.c +++ b/src/mame/drivers/dynadice.c @@ -218,8 +218,8 @@ UINT32 dynadice_state::screen_update_dynadice(screen_device &screen, bitmap_ind1 { rectangle myclip = cliprect; myclip.max_x = 15; - m_bg_tilemap->draw(bitmap, cliprect, 0, 0); - m_top_tilemap->draw(bitmap, myclip, 0, 0); + m_bg_tilemap->draw(screen, bitmap, cliprect, 0, 0); + m_top_tilemap->draw(screen, bitmap, myclip, 0, 0); return 0; } diff --git a/src/mame/drivers/egghunt.c b/src/mame/drivers/egghunt.c index daaf1acb366..841af1e822b 100644 --- a/src/mame/drivers/egghunt.c +++ b/src/mame/drivers/egghunt.c @@ -187,7 +187,7 @@ void egghunt_state::video_start() UINT32 egghunt_state::screen_update_egghunt(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect) { - m_bg_tilemap->draw(bitmap, cliprect, 0, 0); + m_bg_tilemap->draw(screen, bitmap, cliprect, 0, 0); draw_sprites(bitmap, cliprect); return 0; } diff --git a/src/mame/drivers/ettrivia.c b/src/mame/drivers/ettrivia.c index 0ab84a5e031..9dfb7361ab8 100644 --- a/src/mame/drivers/ettrivia.c +++ b/src/mame/drivers/ettrivia.c @@ -266,8 +266,8 @@ void ettrivia_state::video_start() UINT32 ettrivia_state::screen_update_ettrivia(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect) { - m_bg_tilemap->draw(bitmap, cliprect, 0,0); - m_fg_tilemap->draw(bitmap, cliprect, 0,0); + m_bg_tilemap->draw(screen, bitmap, cliprect, 0,0); + m_fg_tilemap->draw(screen, bitmap, cliprect, 0,0); return 0; } diff --git a/src/mame/drivers/expro02.c b/src/mame/drivers/expro02.c index 4699b4f49f8..891b475ae09 100644 --- a/src/mame/drivers/expro02.c +++ b/src/mame/drivers/expro02.c @@ -240,16 +240,16 @@ UINT32 expro02_state::screen_update_galsnew(screen_device &screen, bitmap_ind16 int i; - machine().priority_bitmap.fill(0, cliprect); + screen.priority().fill(0, cliprect); m_view2_0->kaneko16_prepare(bitmap, cliprect); for ( i = 0; i < 8; i++ ) { - m_view2_0->render_tilemap_chip(bitmap,cliprect,i); + m_view2_0->render_tilemap_chip(screen,bitmap,cliprect,i); } - m_kaneko_spr->kaneko16_render_sprites(machine(),bitmap,cliprect, m_spriteram, m_spriteram.bytes()); + m_kaneko_spr->kaneko16_render_sprites(machine(),bitmap,cliprect, screen.priority(), m_spriteram, m_spriteram.bytes()); return 0; } diff --git a/src/mame/drivers/fcrash.c b/src/mame/drivers/fcrash.c index ed36b255fc8..da89b3e3f26 100644 --- a/src/mame/drivers/fcrash.c +++ b/src/mame/drivers/fcrash.c @@ -492,7 +492,7 @@ void cps_state::fcrash_update_transmasks() } } -void cps_state::fcrash_render_sprites( bitmap_ind16 &bitmap, const rectangle &cliprect ) +void cps_state::fcrash_render_sprites( screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect ) { int pos; int base = m_sprite_base / 2; @@ -523,27 +523,27 @@ void cps_state::fcrash_render_sprites( bitmap_ind16 &bitmap, const rectangle &cl ypos = 256 - ypos - 16; xpos = xpos + m_sprite_x_offset + 49; - pdrawgfx_transpen(bitmap, cliprect, machine().gfx[2], tileno, colour, flipx, flipy, xpos, ypos, machine().priority_bitmap, 0x02, 15); + pdrawgfx_transpen(bitmap, cliprect, machine().gfx[2], tileno, colour, flipx, flipy, xpos, ypos, screen.priority(), 0x02, 15); } } } -void cps_state::fcrash_render_layer( bitmap_ind16 &bitmap, const rectangle &cliprect, int layer, int primask ) +void cps_state::fcrash_render_layer( screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect, int layer, int primask ) { switch (layer) { case 0: - fcrash_render_sprites(bitmap, cliprect); + fcrash_render_sprites(screen, bitmap, cliprect); break; case 1: case 2: case 3: - m_bg_tilemap[layer - 1]->draw(bitmap, cliprect, TILEMAP_DRAW_LAYER1, primask); + m_bg_tilemap[layer - 1]->draw(screen, bitmap, cliprect, TILEMAP_DRAW_LAYER1, primask); break; } } -void cps_state::fcrash_render_high_layer( bitmap_ind16 &bitmap, const rectangle &cliprect, int layer ) +void cps_state::fcrash_render_high_layer( screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect, int layer ) { bitmap_ind16 dummy_bitmap; @@ -555,7 +555,7 @@ void cps_state::fcrash_render_high_layer( bitmap_ind16 &bitmap, const rectangle case 1: case 2: case 3: - m_bg_tilemap[layer - 1]->draw(dummy_bitmap, cliprect, TILEMAP_DRAW_LAYER0, 1); + m_bg_tilemap[layer - 1]->draw(screen, dummy_bitmap, cliprect, TILEMAP_DRAW_LAYER0, 1); break; } } @@ -637,28 +637,28 @@ UINT32 cps_state::screen_update_fcrash(screen_device &screen, bitmap_ind16 &bitm /* Blank screen */ bitmap.fill(0xbff, cliprect); - machine().priority_bitmap.fill(0, cliprect); + screen.priority().fill(0, cliprect); l0 = (layercontrol >> 0x06) & 03; l1 = (layercontrol >> 0x08) & 03; l2 = (layercontrol >> 0x0a) & 03; l3 = (layercontrol >> 0x0c) & 03; - fcrash_render_layer(bitmap, cliprect, l0, 0); + fcrash_render_layer(screen, bitmap, cliprect, l0, 0); if (l1 == 0) - fcrash_render_high_layer(bitmap, cliprect, l0); + fcrash_render_high_layer(screen, bitmap, cliprect, l0); - fcrash_render_layer(bitmap, cliprect, l1, 0); + fcrash_render_layer(screen, bitmap, cliprect, l1, 0); if (l2 == 0) - fcrash_render_high_layer(bitmap, cliprect, l1); + fcrash_render_high_layer(screen, bitmap, cliprect, l1); - fcrash_render_layer(bitmap, cliprect, l2, 0); + fcrash_render_layer(screen, bitmap, cliprect, l2, 0); if (l3 == 0) - fcrash_render_high_layer(bitmap, cliprect, l2); + fcrash_render_high_layer(screen, bitmap, cliprect, l2); - fcrash_render_layer(bitmap, cliprect, l3, 0); + fcrash_render_layer(screen, bitmap, cliprect, l3, 0); return 0; } diff --git a/src/mame/drivers/firefox.c b/src/mame/drivers/firefox.c index e879708bc52..1d39b2e540d 100644 --- a/src/mame/drivers/firefox.c +++ b/src/mame/drivers/firefox.c @@ -252,7 +252,7 @@ UINT32 firefox_state::screen_update_firefox(screen_device &screen, bitmap_rgb32 } } - m_bgtiles->draw(bitmap, cliprect, 0, 0 ); + m_bgtiles->draw(screen, bitmap, cliprect, 0, 0 ); return 0; } diff --git a/src/mame/drivers/flyball.c b/src/mame/drivers/flyball.c index b7649db90ad..525e8796db2 100644 --- a/src/mame/drivers/flyball.c +++ b/src/mame/drivers/flyball.c @@ -126,7 +126,7 @@ UINT32 flyball_state::screen_update_flyball(screen_device &screen, bitmap_ind16 m_tmap->mark_all_dirty(); /* draw playfield */ - m_tmap->draw(bitmap, cliprect, 0, 0); + m_tmap->draw(screen, bitmap, cliprect, 0, 0); /* draw pitcher */ drawgfx_transpen(bitmap, cliprect, machine().gfx[1], m_pitcher_pic ^ 0xf, 0, 1, 0, pitcherx, pitchery, 1); diff --git a/src/mame/drivers/fresh.c b/src/mame/drivers/fresh.c index 453bafe276b..254722884f3 100644 --- a/src/mame/drivers/fresh.c +++ b/src/mame/drivers/fresh.c @@ -180,8 +180,8 @@ void fresh_state::video_start() UINT32 fresh_state::screen_update_fresh(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect) { - m_bg_2_tilemap->draw(bitmap, cliprect, 0, 0); - m_bg_tilemap->draw(bitmap, cliprect, 0, 0); + m_bg_2_tilemap->draw(screen, bitmap, cliprect, 0, 0); + m_bg_tilemap->draw(screen, bitmap, cliprect, 0, 0); return 0; } diff --git a/src/mame/drivers/gal3.c b/src/mame/drivers/gal3.c index 8597b4cd185..85fec521d2a 100644 --- a/src/mame/drivers/gal3.c +++ b/src/mame/drivers/gal3.c @@ -207,14 +207,14 @@ UINT32 gal3_state::screen_update_gal3(screen_device &screen, bitmap_rgb32 &bitma for( pri=0; pridraw(bitmap, cliprect, TILEMAP_DRAW_OPAQUE, 0); + if (layers_ctrl & 1) m_bg1_tmap->draw(screen, bitmap, cliprect, TILEMAP_DRAW_OPAQUE, 0); else bitmap.fill(get_black_pen(machine()), cliprect); - if (layers_ctrl & 2) m_bg2_tmap->draw(bitmap, cliprect, 0, 0); - if (layers_ctrl & 4) m_bg3_tmap->draw(bitmap, cliprect, 0, 0); - if (layers_ctrl & 8) m_bg4_tmap->draw(bitmap, cliprect, 0, 0); + if (layers_ctrl & 2) m_bg2_tmap->draw(screen, bitmap, cliprect, 0, 0); + if (layers_ctrl & 4) m_bg3_tmap->draw(screen, bitmap, cliprect, 0, 0); + if (layers_ctrl & 8) m_bg4_tmap->draw(screen, bitmap, cliprect, 0, 0); - if (layers_ctrl & 16) m_fg_tmap->draw(bitmap, cliprect, 0, 0); + if (layers_ctrl & 16) m_fg_tmap->draw(screen, bitmap, cliprect, 0, 0); return 0; } diff --git a/src/mame/drivers/gluck2.c b/src/mame/drivers/gluck2.c index cbda3c36c67..7a99a216a00 100644 --- a/src/mame/drivers/gluck2.c +++ b/src/mame/drivers/gluck2.c @@ -265,7 +265,7 @@ void gluck2_state::video_start() UINT32 gluck2_state::screen_update_gluck2(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect) { - m_bg_tilemap->draw(bitmap, cliprect, 0, 0); + m_bg_tilemap->draw(screen, bitmap, cliprect, 0, 0); return 0; } diff --git a/src/mame/drivers/goldnpkr.c b/src/mame/drivers/goldnpkr.c index 2dd6299e65a..b4a0de25b2e 100644 --- a/src/mame/drivers/goldnpkr.c +++ b/src/mame/drivers/goldnpkr.c @@ -1144,7 +1144,7 @@ VIDEO_START_MEMBER(goldnpkr_state,wcrdxtnd) UINT32 goldnpkr_state::screen_update_goldnpkr(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect) { - m_bg_tilemap->draw(bitmap, cliprect, 0, 0); + m_bg_tilemap->draw(screen, bitmap, cliprect, 0, 0); return 0; } diff --git a/src/mame/drivers/good.c b/src/mame/drivers/good.c index b58bd97c09e..bb5b7850e88 100644 --- a/src/mame/drivers/good.c +++ b/src/mame/drivers/good.c @@ -100,8 +100,8 @@ void good_state::video_start() UINT32 good_state::screen_update_good(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect) { - m_bg_tilemap->draw(bitmap, cliprect, 0, 0); - m_fg_tilemap->draw(bitmap, cliprect, 0, 0); + m_bg_tilemap->draw(screen, bitmap, cliprect, 0, 0); + m_fg_tilemap->draw(screen, bitmap, cliprect, 0, 0); return 0; } diff --git a/src/mame/drivers/goodejan.c b/src/mame/drivers/goodejan.c index 83177c40022..aca07dca47c 100644 --- a/src/mame/drivers/goodejan.c +++ b/src/mame/drivers/goodejan.c @@ -350,13 +350,13 @@ UINT32 goodejan_state::screen_update_goodejan(screen_device &screen, bitmap_ind1 m_sc3_tilemap->set_scrollx(0, (0) & 0x1ff ); m_sc3_tilemap->set_scrolly(0, (0) & 0x1ff ); - if(SEIBU_CRTC_ENABLE_SC0) { m_sc0_tilemap->draw(bitmap, cliprect, 0,0); } + if(SEIBU_CRTC_ENABLE_SC0) { m_sc0_tilemap->draw(screen, bitmap, cliprect, 0,0); } if(SEIBU_CRTC_ENABLE_SPR) { draw_sprites(screen.machine(), bitmap,cliprect, 2); } - if(SEIBU_CRTC_ENABLE_SC2) { m_sc2_tilemap->draw(bitmap, cliprect, 0,0); } + if(SEIBU_CRTC_ENABLE_SC2) { m_sc2_tilemap->draw(screen, bitmap, cliprect, 0,0); } if(SEIBU_CRTC_ENABLE_SPR) { draw_sprites(screen.machine(), bitmap,cliprect, 1); } - if(SEIBU_CRTC_ENABLE_SC1) { m_sc1_tilemap->draw(bitmap, cliprect, 0,0); } + if(SEIBU_CRTC_ENABLE_SC1) { m_sc1_tilemap->draw(screen, bitmap, cliprect, 0,0); } if(SEIBU_CRTC_ENABLE_SPR) { draw_sprites(screen.machine(), bitmap,cliprect, 0); } - if(SEIBU_CRTC_ENABLE_SC3) { m_sc3_tilemap->draw(bitmap, cliprect, 0,0); } + if(SEIBU_CRTC_ENABLE_SC3) { m_sc3_tilemap->draw(screen, bitmap, cliprect, 0,0); } if(SEIBU_CRTC_ENABLE_SPR) { draw_sprites(screen.machine(), bitmap,cliprect, 3); } return 0; diff --git a/src/mame/drivers/gstream.c b/src/mame/drivers/gstream.c index d1892905c72..65854cc4cab 100644 --- a/src/mame/drivers/gstream.c +++ b/src/mame/drivers/gstream.c @@ -510,9 +510,9 @@ UINT32 gstream_state::screen_update_gstream(screen_device &screen, bitmap_ind16 m_tilemap2->set_scrollx(0, m_tmap2_scrollx >> 16); m_tilemap2->set_scrolly(0, m_tmap2_scrolly >> 16); - m_tilemap3->draw(bitmap, cliprect, 0, 0); - m_tilemap2->draw(bitmap, cliprect, 0, 0); - m_tilemap1->draw(bitmap, cliprect, 0, 0); + m_tilemap3->draw(screen, bitmap, cliprect, 0, 0); + m_tilemap2->draw(screen, bitmap, cliprect, 0, 0); + m_tilemap1->draw(screen, bitmap, cliprect, 0, 0); for (i = 0x0000 / 4; i < 0x4000 / 4; i += 4) { diff --git a/src/mame/drivers/gticlub.c b/src/mame/drivers/gticlub.c index 10bc2702a4b..bf03e536e56 100644 --- a/src/mame/drivers/gticlub.c +++ b/src/mame/drivers/gticlub.c @@ -870,7 +870,7 @@ UINT32 gticlub_state::screen_update_gticlub(screen_device &screen, bitmap_rgb32 K001005_draw(bitmap, cliprect); - k001604->draw_front_layer(bitmap, cliprect); + k001604->draw_front_layer(screen, bitmap, cliprect); #if 0 tick++; @@ -943,7 +943,7 @@ UINT32 gticlub_state::screen_update_hangplt(screen_device &screen, bitmap_rgb32 voodoo_update(voodoo, bitmap, cliprect); - k001604->draw_front_layer(bitmap, cliprect); + k001604->draw_front_layer(screen, bitmap, cliprect); } else if (strcmp(screen.tag(), ":rscreen") == 0) { @@ -954,7 +954,7 @@ UINT32 gticlub_state::screen_update_hangplt(screen_device &screen, bitmap_rgb32 voodoo_update(voodoo, bitmap, cliprect); - k001604->draw_front_layer(bitmap, cliprect); + k001604->draw_front_layer(screen, bitmap, cliprect); } draw_7segment_led(bitmap, 3, 3, gticlub_led_reg[0]); diff --git a/src/mame/drivers/headonb.c b/src/mame/drivers/headonb.c index bba6e99912f..48f4cc353ad 100644 --- a/src/mame/drivers/headonb.c +++ b/src/mame/drivers/headonb.c @@ -77,7 +77,7 @@ void headonb_state::video_start() UINT32 headonb_state::screen_update_headonb(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect) { - m_tilemap->draw(bitmap, cliprect, 0, 0); + m_tilemap->draw(screen, bitmap, cliprect, 0, 0); return 0; } diff --git a/src/mame/drivers/hitme.c b/src/mame/drivers/hitme.c index 8833b4fb389..7136261f33d 100644 --- a/src/mame/drivers/hitme.c +++ b/src/mame/drivers/hitme.c @@ -79,7 +79,7 @@ UINT32 hitme_state::screen_update_hitme(screen_device &screen, bitmap_ind16 &bit offs_t offs = 0; /* start by drawing the tilemap */ - m_tilemap->draw(bitmap, cliprect, 0, 0); + m_tilemap->draw(screen, bitmap, cliprect, 0, 0); /* now loop over and invert anything */ for (y = 0; y < 19; y++) @@ -114,7 +114,7 @@ UINT32 hitme_state::screen_update_hitme(screen_device &screen, bitmap_ind16 &bit UINT32 hitme_state::screen_update_barricad(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect) { - m_tilemap->draw(bitmap, cliprect, 0, 0); + m_tilemap->draw(screen, bitmap, cliprect, 0, 0); return 0; } diff --git a/src/mame/drivers/hornet.c b/src/mame/drivers/hornet.c index 90b93aefd3b..0cc79348827 100644 --- a/src/mame/drivers/hornet.c +++ b/src/mame/drivers/hornet.c @@ -454,7 +454,7 @@ UINT32 hornet_state::screen_update_hornet(screen_device &screen, bitmap_rgb32 &b voodoo_update(voodoo, bitmap, cliprect); - m_k037122_1->tile_draw(bitmap, cliprect); + m_k037122_1->tile_draw(screen, bitmap, cliprect); draw_7segment_led(bitmap, 3, 3, m_led_reg0); draw_7segment_led(bitmap, 9, 3, m_led_reg1); @@ -469,7 +469,7 @@ UINT32 hornet_state::screen_update_hornet_2board(screen_device &screen, bitmap_r voodoo_update(voodoo, bitmap, cliprect); /* TODO: tilemaps per screen */ - m_k037122_1->tile_draw(bitmap, cliprect); + m_k037122_1->tile_draw(screen, bitmap, cliprect); } else if (strcmp(screen.tag(), ":rscreen") == 0) { @@ -477,7 +477,7 @@ UINT32 hornet_state::screen_update_hornet_2board(screen_device &screen, bitmap_r voodoo_update(voodoo, bitmap, cliprect); /* TODO: tilemaps per screen */ - m_k037122_2->tile_draw(bitmap, cliprect); + m_k037122_2->tile_draw(screen, bitmap, cliprect); } draw_7segment_led(bitmap, 3, 3, m_led_reg0); diff --git a/src/mame/drivers/hvyunit.c b/src/mame/drivers/hvyunit.c index a854584b277..993f5916db8 100644 --- a/src/mame/drivers/hvyunit.c +++ b/src/mame/drivers/hvyunit.c @@ -185,7 +185,7 @@ UINT32 hvyunit_state::screen_update_hvyunit(screen_device &screen, bitmap_ind16 m_bg_tilemap->set_scrollx(0, ((m_port0_data & 0x40) << 2) + m_scrollx + SX_POS); // TODO m_bg_tilemap->set_scrolly(0, ((m_port0_data & 0x80) << 1) + m_scrolly + SY_POS); // TODO bitmap.fill(get_black_pen(machine()), cliprect); - m_bg_tilemap->draw(bitmap, cliprect, 0, 0); + m_bg_tilemap->draw(screen, bitmap, cliprect, 0, 0); m_pandora->update(bitmap, cliprect); return 0; diff --git a/src/mame/drivers/igs009.c b/src/mame/drivers/igs009.c index a5c4d122e7e..d097de6353a 100644 --- a/src/mame/drivers/igs009.c +++ b/src/mame/drivers/igs009.c @@ -330,19 +330,19 @@ UINT32 igs009_state::screen_update_jingbell(screen_device &screen, bitmap_ind16 if (rowenable==0) { // 0 and 1 are the same? or is there a global switchoff? - m_gp98_reel1_tilemap->draw(bitmap, clip, 0,0); + m_gp98_reel1_tilemap->draw(screen, bitmap, clip, 0,0); } else if (rowenable==1) { - m_gp98_reel2_tilemap->draw(bitmap, clip, 0,0); + m_gp98_reel2_tilemap->draw(screen, bitmap, clip, 0,0); } else if (rowenable==2) { - m_gp98_reel3_tilemap->draw(bitmap, clip, 0,0); + m_gp98_reel3_tilemap->draw(screen, bitmap, clip, 0,0); } else if (rowenable==3) { - m_gp98_reel4_tilemap->draw(bitmap, clip, 0,0); + m_gp98_reel4_tilemap->draw(screen, bitmap, clip, 0,0); } @@ -353,7 +353,7 @@ UINT32 igs009_state::screen_update_jingbell(screen_device &screen, bitmap_ind16 else bitmap.fill(get_black_pen(machine()), cliprect); - if (layers_ctrl & 2) m_fg_tilemap->draw(bitmap, cliprect, 0, 0); + if (layers_ctrl & 2) m_fg_tilemap->draw(screen, bitmap, cliprect, 0, 0); return 0; } diff --git a/src/mame/drivers/igs017.c b/src/mame/drivers/igs017.c index 08ec98c3f63..4870097712f 100644 --- a/src/mame/drivers/igs017.c +++ b/src/mame/drivers/igs017.c @@ -455,11 +455,11 @@ UINT32 igs017_state::screen_update_igs017(screen_device &screen, bitmap_ind16 &b if (m_video_disable) return 0; - if (layers_ctrl & 1) m_bg_tilemap->draw(bitmap, cliprect, TILEMAP_DRAW_OPAQUE, 0); + if (layers_ctrl & 1) m_bg_tilemap->draw(screen, bitmap, cliprect, TILEMAP_DRAW_OPAQUE, 0); if (layers_ctrl & 4) draw_sprites(bitmap, cliprect); - if (layers_ctrl & 2) m_fg_tilemap->draw(bitmap, cliprect, 0, 0); + if (layers_ctrl & 2) m_fg_tilemap->draw(screen, bitmap, cliprect, 0, 0); return 0; } diff --git a/src/mame/drivers/igs_m027.c b/src/mame/drivers/igs_m027.c index 3779605fe7e..28798b4f871 100644 --- a/src/mame/drivers/igs_m027.c +++ b/src/mame/drivers/igs_m027.c @@ -201,12 +201,12 @@ UINT32 igs_m027_state::screen_update_igs_majhong(screen_device &screen, bitmap_i bitmap.fill(get_black_pen(machine()), cliprect); //?????? - m_igs_bg_tilemap->draw(bitmap, cliprect, 0,0); + m_igs_bg_tilemap->draw(screen, bitmap, cliprect, 0,0); //CG?????? //?????? - m_igs_tx_tilemap->draw(bitmap, cliprect, 0,0); + m_igs_tx_tilemap->draw(screen, bitmap, cliprect, 0,0); //fprintf(stdout,"Video UPDATE OK!\n"); return 0; } diff --git a/src/mame/drivers/igspoker.c b/src/mame/drivers/igspoker.c index cb1c7f91088..d492ccb28d5 100644 --- a/src/mame/drivers/igspoker.c +++ b/src/mame/drivers/igspoker.c @@ -204,9 +204,9 @@ UINT32 igspoker_state::screen_update_igs_video(screen_device &screen, bitmap_ind bitmap.fill(get_black_pen(machine()), cliprect); // FIX: CSK227IT must have some way to disable background, or wrong gfx? - if (m_bg_enable) m_bg_tilemap->draw(bitmap, cliprect, 0, 0); + if (m_bg_enable) m_bg_tilemap->draw(screen, bitmap, cliprect, 0, 0); - m_fg_tilemap->draw(bitmap, cliprect, 0, 0); + m_fg_tilemap->draw(screen, bitmap, cliprect, 0, 0); return 0; } @@ -218,7 +218,7 @@ VIDEO_START_MEMBER(igspoker_state,cpokerpk) UINT32 igspoker_state::screen_update_cpokerpk(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect) { - m_fg_tilemap->draw(bitmap, cliprect, 0, 0); + m_fg_tilemap->draw(screen, bitmap, cliprect, 0, 0); return 0; } diff --git a/src/mame/drivers/jackie.c b/src/mame/drivers/jackie.c index 13de1f197b4..d206aabbb4a 100644 --- a/src/mame/drivers/jackie.c +++ b/src/mame/drivers/jackie.c @@ -224,15 +224,15 @@ UINT32 jackie_state::screen_update_jackie(screen_device &screen, bitmap_ind16 &b if (rowenable==0) { - m_reel1_tilemap->draw(bitmap, clip, 0,0); + m_reel1_tilemap->draw(screen, bitmap, clip, 0,0); } else if (rowenable==1) { - m_reel2_tilemap->draw(bitmap, clip, 0,0); + m_reel2_tilemap->draw(screen, bitmap, clip, 0,0); } else if (rowenable==2) { - m_reel3_tilemap->draw(bitmap, clip, 0,0); + m_reel3_tilemap->draw(screen, bitmap, clip, 0,0); } else if (rowenable==3) { @@ -241,7 +241,7 @@ UINT32 jackie_state::screen_update_jackie(screen_device &screen, bitmap_ind16 &b startclipmin+=1; } - m_fg_tilemap->draw(bitmap, cliprect, 0, 0); + m_fg_tilemap->draw(screen, bitmap, cliprect, 0, 0); return 0; } diff --git a/src/mame/drivers/jalmah.c b/src/mame/drivers/jalmah.c index 74f2e7fccd1..5de56427d74 100644 --- a/src/mame/drivers/jalmah.c +++ b/src/mame/drivers/jalmah.c @@ -209,10 +209,10 @@ public: UINT32 screen_update_urashima(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); TIMER_DEVICE_CALLBACK_MEMBER(jalmah_mcu_sim); void jalmah_priority_system(); - void draw_sc0_layer(bitmap_ind16 &bitmap, const rectangle &cliprect); - void draw_sc1_layer(bitmap_ind16 &bitmap, const rectangle &cliprect); - void draw_sc2_layer(bitmap_ind16 &bitmap, const rectangle &cliprect); - void draw_sc3_layer(bitmap_ind16 &bitmap, const rectangle &cliprect); + void draw_sc0_layer(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); + void draw_sc1_layer(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); + void draw_sc2_layer(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); + void draw_sc3_layer(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); void daireika_palette_dma(UINT16 val); void daireika_mcu_run(); void mjzoomin_mcu_run(); @@ -402,47 +402,47 @@ void jalmah_state::jalmah_priority_system() //popmessage("%02x %02x %02x %02x",m_sc0_prin,m_sc1_prin,m_sc2_prin,m_sc3_prin); } -void jalmah_state::draw_sc0_layer(bitmap_ind16 &bitmap, const rectangle &cliprect) +void jalmah_state::draw_sc0_layer(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect) { switch(m_jm_vregs[0] & 3) { - case 0: m_sc0_tilemap_0->draw(bitmap, cliprect, 0,0); break; - case 1: m_sc0_tilemap_1->draw(bitmap, cliprect, 0,0); break; - case 2: m_sc0_tilemap_2->draw(bitmap, cliprect, 0,0); break; - case 3: m_sc0_tilemap_3->draw(bitmap, cliprect, 0,0); break; + case 0: m_sc0_tilemap_0->draw(screen, bitmap, cliprect, 0,0); break; + case 1: m_sc0_tilemap_1->draw(screen, bitmap, cliprect, 0,0); break; + case 2: m_sc0_tilemap_2->draw(screen, bitmap, cliprect, 0,0); break; + case 3: m_sc0_tilemap_3->draw(screen, bitmap, cliprect, 0,0); break; } } -void jalmah_state::draw_sc1_layer(bitmap_ind16 &bitmap, const rectangle &cliprect) +void jalmah_state::draw_sc1_layer(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect) { switch(m_jm_vregs[1] & 3) { - case 0: m_sc1_tilemap_0->draw(bitmap, cliprect, 0,0); break; - case 1: m_sc1_tilemap_1->draw(bitmap, cliprect, 0,0); break; - case 2: m_sc1_tilemap_2->draw(bitmap, cliprect, 0,0); break; - case 3: m_sc1_tilemap_3->draw(bitmap, cliprect, 0,0); break; + case 0: m_sc1_tilemap_0->draw(screen, bitmap, cliprect, 0,0); break; + case 1: m_sc1_tilemap_1->draw(screen, bitmap, cliprect, 0,0); break; + case 2: m_sc1_tilemap_2->draw(screen, bitmap, cliprect, 0,0); break; + case 3: m_sc1_tilemap_3->draw(screen, bitmap, cliprect, 0,0); break; } } -void jalmah_state::draw_sc2_layer(bitmap_ind16 &bitmap, const rectangle &cliprect) +void jalmah_state::draw_sc2_layer(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect) { switch(m_jm_vregs[2] & 3) { - case 0: m_sc2_tilemap_0->draw(bitmap, cliprect, 0,0); break; - case 1: m_sc2_tilemap_1->draw(bitmap, cliprect, 0,0); break; - case 2: m_sc2_tilemap_2->draw(bitmap, cliprect, 0,0); break; - case 3: m_sc2_tilemap_3->draw(bitmap, cliprect, 0,0); break; + case 0: m_sc2_tilemap_0->draw(screen, bitmap, cliprect, 0,0); break; + case 1: m_sc2_tilemap_1->draw(screen, bitmap, cliprect, 0,0); break; + case 2: m_sc2_tilemap_2->draw(screen, bitmap, cliprect, 0,0); break; + case 3: m_sc2_tilemap_3->draw(screen, bitmap, cliprect, 0,0); break; } } -void jalmah_state::draw_sc3_layer(bitmap_ind16 &bitmap, const rectangle &cliprect) +void jalmah_state::draw_sc3_layer(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect) { switch(m_jm_vregs[3] & 3) { case 0: - case 1: m_sc3_tilemap_0->draw(bitmap, cliprect, 0,0); break; - case 2: m_sc3_tilemap_2->draw(bitmap, cliprect, 0,0); break; - case 3: m_sc3_tilemap_3->draw(bitmap, cliprect, 0,0); break; + case 1: m_sc3_tilemap_0->draw(screen, bitmap, cliprect, 0,0); break; + case 2: m_sc3_tilemap_2->draw(screen, bitmap, cliprect, 0,0); break; + case 3: m_sc3_tilemap_3->draw(screen, bitmap, cliprect, 0,0); break; } } @@ -497,10 +497,10 @@ UINT32 jalmah_state::screen_update_jalmah(screen_device &screen, bitmap_ind16 &b for(cur_prin=1;cur_prin<=0x8;cur_prin<<=1) { - if(cur_prin==m_sc0_prin) { draw_sc0_layer(bitmap,cliprect); } - if(cur_prin==m_sc1_prin) { draw_sc1_layer(bitmap,cliprect); } - if(cur_prin==m_sc2_prin) { draw_sc2_layer(bitmap,cliprect); } - if(cur_prin==m_sc3_prin) { draw_sc3_layer(bitmap,cliprect); } + if(cur_prin==m_sc0_prin) { draw_sc0_layer(screen,bitmap,cliprect); } + if(cur_prin==m_sc1_prin) { draw_sc1_layer(screen,bitmap,cliprect); } + if(cur_prin==m_sc2_prin) { draw_sc2_layer(screen,bitmap,cliprect); } + if(cur_prin==m_sc3_prin) { draw_sc3_layer(screen,bitmap,cliprect); } } return 0; @@ -516,8 +516,8 @@ UINT32 jalmah_state::screen_update_urashima(screen_device &screen, bitmap_ind16 m_sc3_tilemap_0->set_scrolly(0, jm_scrollram[7]); bitmap.fill(machine().pens[0x1ff], cliprect);//selectable by a ram address? - if(m_jm_vregs[0] & 1) { m_sc0_tilemap_0->draw(bitmap, cliprect, 0,0); } - if(m_jm_vregs[3] & 1) { m_sc3_tilemap_0->draw(bitmap, cliprect, 0,0); } + if(m_jm_vregs[0] & 1) { m_sc0_tilemap_0->draw(screen, bitmap, cliprect, 0,0); } + if(m_jm_vregs[3] & 1) { m_sc3_tilemap_0->draw(screen, bitmap, cliprect, 0,0); } return 0; } diff --git a/src/mame/drivers/jchan.c b/src/mame/drivers/jchan.c index 7922a8172a3..ee0cea27505 100644 --- a/src/mame/drivers/jchan.c +++ b/src/mame/drivers/jchan.c @@ -307,13 +307,13 @@ UINT32 jchan_state::screen_update_jchan(screen_device &screen, bitmap_ind16 &bit bitmap.fill(get_black_pen(machine()), cliprect); - machine().priority_bitmap.fill(0, cliprect); + screen.priority().fill(0, cliprect); m_view2_0->kaneko16_prepare(bitmap, cliprect); for ( int i = 0; i < 8; i++ ) { - m_view2_0->render_tilemap_chip(bitmap,cliprect,i); + m_view2_0->render_tilemap_chip(screen,bitmap,cliprect,i); } m_sprite_bitmap_1->fill(0x0000, cliprect); diff --git a/src/mame/drivers/jclub2.c b/src/mame/drivers/jclub2.c index b7617f9f9e1..f8f5893a38b 100644 --- a/src/mame/drivers/jclub2.c +++ b/src/mame/drivers/jclub2.c @@ -255,11 +255,11 @@ UINT32 darkhors_state::screen_update_darkhors(screen_device &screen, bitmap_ind1 m_tmap->set_scrollx(0, (m_tmapscroll[0] >> 16) - 5); m_tmap->set_scrolly(0, (m_tmapscroll[0] & 0xffff) - 0xff ); - if (layers_ctrl & 1) m_tmap->draw(bitmap, cliprect, TILEMAP_DRAW_OPAQUE, 0); + if (layers_ctrl & 1) m_tmap->draw(screen, bitmap, cliprect, TILEMAP_DRAW_OPAQUE, 0); m_tmap2->set_scrollx(0, (m_tmapscroll2[0] >> 16) - 5); m_tmap2->set_scrolly(0, (m_tmapscroll2[0] & 0xffff) - 0xff ); - if (layers_ctrl & 2) m_tmap2->draw(bitmap, cliprect, 0, 0); + if (layers_ctrl & 2) m_tmap2->draw(screen, bitmap, cliprect, 0, 0); if (layers_ctrl & 4) draw_sprites_darkhors(bitmap,cliprect); diff --git a/src/mame/drivers/jokrwild.c b/src/mame/drivers/jokrwild.c index 5afa6febd61..124eff357c0 100644 --- a/src/mame/drivers/jokrwild.c +++ b/src/mame/drivers/jokrwild.c @@ -165,7 +165,7 @@ void jokrwild_state::video_start() UINT32 jokrwild_state::screen_update_jokrwild(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect) { - m_bg_tilemap->draw(bitmap, cliprect, 0, 0); + m_bg_tilemap->draw(screen, bitmap, cliprect, 0, 0); return 0; } diff --git a/src/mame/drivers/jollyjgr.c b/src/mame/drivers/jollyjgr.c index 48bbe105a33..946e96fd454 100644 --- a/src/mame/drivers/jollyjgr.c +++ b/src/mame/drivers/jollyjgr.c @@ -507,11 +507,11 @@ UINT32 jollyjgr_state::screen_update_jollyjgr(screen_device &screen, bitmap_ind1 if(!(m_bitmap_disable)) draw_bitmap(bitmap); - m_bg_tilemap->draw(bitmap, cliprect, 0, 0); + m_bg_tilemap->draw(screen, bitmap, cliprect, 0, 0); } else { - m_bg_tilemap->draw(bitmap, cliprect, 0, 0); + m_bg_tilemap->draw(screen, bitmap, cliprect, 0, 0); if(!(m_bitmap_disable)) draw_bitmap(bitmap); diff --git a/src/mame/drivers/jubilee.c b/src/mame/drivers/jubilee.c index c2b50b96dd0..c677bf3fb44 100644 --- a/src/mame/drivers/jubilee.c +++ b/src/mame/drivers/jubilee.c @@ -140,7 +140,7 @@ void jubilee_state::video_start() UINT32 jubilee_state::screen_update_jubileep(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect) { - m_bg_tilemap->draw(bitmap, cliprect, 0, 0); + m_bg_tilemap->draw(screen, bitmap, cliprect, 0, 0); return 0; } diff --git a/src/mame/drivers/kingdrby.c b/src/mame/drivers/kingdrby.c index 17004b0cbb2..e3b8e7c9d41 100644 --- a/src/mame/drivers/kingdrby.c +++ b/src/mame/drivers/kingdrby.c @@ -244,10 +244,10 @@ UINT32 kingdrby_state::screen_update_kingdrby(screen_device &screen, bitmap_ind1 clip.set(visarea.min_x, 256, 192, visarea.max_y); /*TILEMAP_DRAW_CATEGORY + TILEMAP_DRAW_OPAQUE doesn't suit well?*/ - m_sc0_tilemap->draw(bitmap, cliprect, 0,0); + m_sc0_tilemap->draw(screen, bitmap, cliprect, 0,0); draw_sprites(bitmap,cliprect); - m_sc1_tilemap->draw(bitmap, cliprect, TILEMAP_DRAW_CATEGORY(1),0); - m_sc0w_tilemap->draw(bitmap, clip, 0,0); + m_sc1_tilemap->draw(screen, bitmap, cliprect, TILEMAP_DRAW_CATEGORY(1),0); + m_sc0w_tilemap->draw(screen, bitmap, clip, 0,0); return 0; } diff --git a/src/mame/drivers/koftball.c b/src/mame/drivers/koftball.c index f8b8d4c4ce9..b98785fcba4 100644 --- a/src/mame/drivers/koftball.c +++ b/src/mame/drivers/koftball.c @@ -100,8 +100,8 @@ void koftball_state::video_start() UINT32 koftball_state::screen_update_koftball(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect) { - m_tilemap_2->draw(bitmap, cliprect, 0, 0); - m_tilemap_1->draw(bitmap, cliprect, 0, 0); + m_tilemap_2->draw(screen, bitmap, cliprect, 0, 0); + m_tilemap_1->draw(screen, bitmap, cliprect, 0, 0); return 0; } diff --git a/src/mame/drivers/koikoi.c b/src/mame/drivers/koikoi.c index 074f8d57a10..67f82ce0b4b 100644 --- a/src/mame/drivers/koikoi.c +++ b/src/mame/drivers/koikoi.c @@ -147,7 +147,7 @@ void koikoi_state::video_start() UINT32 koikoi_state::screen_update_koikoi(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect) { - m_tmap->draw(bitmap, cliprect, 0, 0); + m_tmap->draw(screen, bitmap, cliprect, 0, 0); return 0; } diff --git a/src/mame/drivers/laserbat.c b/src/mame/drivers/laserbat.c index ce957faa8f7..f0cbb067f2f 100644 --- a/src/mame/drivers/laserbat.c +++ b/src/mame/drivers/laserbat.c @@ -495,7 +495,7 @@ UINT32 laserbat_state::screen_update_laserbat(screen_device &screen, bitmap_ind1 { int y; - m_bg_tilemap->draw(bitmap, cliprect, 0, 0); + m_bg_tilemap->draw(screen, bitmap, cliprect, 0, 0); /* update the S2636 chips */ bitmap_ind16 &s2636_1_bitmap = s2636_update(m_s2636_1, cliprect); diff --git a/src/mame/drivers/limenko.c b/src/mame/drivers/limenko.c index ce9b5b46874..83481fb4165 100644 --- a/src/mame/drivers/limenko.c +++ b/src/mame/drivers/limenko.c @@ -519,7 +519,7 @@ UINT32 limenko_state::screen_update_limenko(screen_device &screen, bitmap_ind16 { // m_videoreg[4] ???? It always has this value: 0xffeffff8 (2 signed bytes? values: -17 and -8 ?) - machine().priority_bitmap.fill(0, cliprect); + screen.priority().fill(0, cliprect); m_bg_tilemap->enable(m_videoreg[0] & 4); m_md_tilemap->enable(m_videoreg[0] & 2); @@ -533,12 +533,12 @@ UINT32 limenko_state::screen_update_limenko(screen_device &screen, bitmap_ind16 m_md_tilemap->set_scrollx(0, (m_videoreg[2] & 0xffff0000) >> 16); m_fg_tilemap->set_scrollx(0, (m_videoreg[1] & 0xffff0000) >> 16); - m_bg_tilemap->draw(bitmap, cliprect, 0,0); - m_md_tilemap->draw(bitmap, cliprect, 0,0); - m_fg_tilemap->draw(bitmap, cliprect, 0,1); + m_bg_tilemap->draw(screen, bitmap, cliprect, 0,0); + m_md_tilemap->draw(screen, bitmap, cliprect, 0,0); + m_fg_tilemap->draw(screen, bitmap, cliprect, 0,1); if(m_videoreg[0] & 8) - copy_sprites(bitmap, m_sprites_bitmap, machine().priority_bitmap, cliprect); + copy_sprites(bitmap, m_sprites_bitmap, screen.priority(), cliprect); return 0; } diff --git a/src/mame/drivers/looping.c b/src/mame/drivers/looping.c index 5dd303f7dc8..9a0c28e3566 100644 --- a/src/mame/drivers/looping.c +++ b/src/mame/drivers/looping.c @@ -312,7 +312,7 @@ void looping_state::draw_sprites(bitmap_ind16 &bitmap, const rectangle &cliprect UINT32 looping_state::screen_update_looping(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect) { - m_bg_tilemap->draw(bitmap, cliprect, 0, 0); + m_bg_tilemap->draw(screen, bitmap, cliprect, 0, 0); draw_sprites(bitmap, cliprect); return 0; diff --git a/src/mame/drivers/ltcasino.c b/src/mame/drivers/ltcasino.c index 6d0a8a6dc76..da3ee992720 100644 --- a/src/mame/drivers/ltcasino.c +++ b/src/mame/drivers/ltcasino.c @@ -640,7 +640,7 @@ GFXDECODE_END UINT32 ltcasino_state::screen_update_ltcasino(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect) { - m_tilemap->draw(bitmap, cliprect, 0,0); + m_tilemap->draw(screen, bitmap, cliprect, 0,0); return 0; } diff --git a/src/mame/drivers/luckgrln.c b/src/mame/drivers/luckgrln.c index be8d8d6b148..eb0b0074a1c 100644 --- a/src/mame/drivers/luckgrln.c +++ b/src/mame/drivers/luckgrln.c @@ -359,10 +359,10 @@ UINT32 luckgrln_state::screen_update_luckgrln(screen_device &screen, bitmap_ind1 #if 0 // treat bit as fg enable if (tileattr&0x04) { - if (bgenable==0) m_reel1_tilemap->draw(bitmap, clip, 0, 0); - if (bgenable==1) m_reel2_tilemap->draw(bitmap, clip, 0, 0); - if (bgenable==2) m_reel3_tilemap->draw(bitmap, clip, 0, 0); - if (bgenable==3) m_reel4_tilemap->draw(bitmap, clip, 0, 0); + if (bgenable==0) m_reel1_tilemap->draw(screen, bitmap, clip, 0, 0); + if (bgenable==1) m_reel2_tilemap->draw(screen, bitmap, clip, 0, 0); + if (bgenable==2) m_reel3_tilemap->draw(screen, bitmap, clip, 0, 0); + if (bgenable==3) m_reel4_tilemap->draw(screen, bitmap, clip, 0, 0); } if (tileattr&0x08) drawgfx_transpen(bitmap,clip,machine().gfx[region],tile,col,0,0,x*8,y*8, 0); @@ -372,10 +372,10 @@ UINT32 luckgrln_state::screen_update_luckgrln(screen_device &screen, bitmap_ind1 if (tileattr&0x04) { - if (bgenable==0) m_reel1_tilemap->draw(bitmap, clip, 0, 0); - if (bgenable==1) m_reel2_tilemap->draw(bitmap, clip, 0, 0); - if (bgenable==2) m_reel3_tilemap->draw(bitmap, clip, 0, 0); - if (bgenable==3) m_reel4_tilemap->draw(bitmap, clip, 0, 0); + if (bgenable==0) m_reel1_tilemap->draw(screen, bitmap, clip, 0, 0); + if (bgenable==1) m_reel2_tilemap->draw(screen, bitmap, clip, 0, 0); + if (bgenable==2) m_reel3_tilemap->draw(screen, bitmap, clip, 0, 0); + if (bgenable==3) m_reel4_tilemap->draw(screen, bitmap, clip, 0, 0); } if ((tileattr&0x08)) drawgfx_transpen(bitmap,clip,machine().gfx[region],tile,col,0,0,x*8,y*8, 0); diff --git a/src/mame/drivers/m14.c b/src/mame/drivers/m14.c index ee5921bbf26..ac6427116ee 100644 --- a/src/mame/drivers/m14.c +++ b/src/mame/drivers/m14.c @@ -136,7 +136,7 @@ void m14_state::video_start() UINT32 m14_state::screen_update_m14(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect) { - m_m14_tilemap->draw(bitmap, cliprect, 0, 0); + m_m14_tilemap->draw(screen, bitmap, cliprect, 0, 0); return 0; } diff --git a/src/mame/drivers/m63.c b/src/mame/drivers/m63.c index 454e95d2910..d4ef300f910 100644 --- a/src/mame/drivers/m63.c +++ b/src/mame/drivers/m63.c @@ -369,9 +369,9 @@ UINT32 m63_state::screen_update_m63(screen_device &screen, bitmap_ind16 &bitmap, for (col = 0; col < 32; col++) m_bg_tilemap->set_scrolly(col, m_scrollram[col * 8]); - m_bg_tilemap->draw(bitmap, cliprect, 0, 0); + m_bg_tilemap->draw(screen, bitmap, cliprect, 0, 0); draw_sprites(bitmap, cliprect); - m_fg_tilemap->draw(bitmap, cliprect, 0, 0); + m_fg_tilemap->draw(screen, bitmap, cliprect, 0, 0); return 0; } diff --git a/src/mame/drivers/magic10.c b/src/mame/drivers/magic10.c index 2b055f0b5d9..037de531d8a 100644 --- a/src/mame/drivers/magic10.c +++ b/src/mame/drivers/magic10.c @@ -214,9 +214,9 @@ UINT32 magic10_state::screen_update_magic10(screen_device &screen, bitmap_ind16 m_layer1_tilemap->set_scrolly(0, (m_vregs[0/2] - m_vregs[4/2])+0); m_layer1_tilemap->set_scrollx(0, (m_vregs[2/2] - m_vregs[6/2])+4); - m_layer0_tilemap->draw(bitmap, cliprect, 0, 0); - m_layer1_tilemap->draw(bitmap, cliprect, 0, 0); - m_layer2_tilemap->draw(bitmap, cliprect, 0, 0); + m_layer0_tilemap->draw(screen, bitmap, cliprect, 0, 0); + m_layer1_tilemap->draw(screen, bitmap, cliprect, 0, 0); + m_layer2_tilemap->draw(screen, bitmap, cliprect, 0, 0); return 0; } diff --git a/src/mame/drivers/magicfly.c b/src/mame/drivers/magicfly.c index 3c8c8b8953c..2aa35b70fd5 100644 --- a/src/mame/drivers/magicfly.c +++ b/src/mame/drivers/magicfly.c @@ -554,7 +554,7 @@ VIDEO_START_MEMBER(magicfly_state,7mezzo) UINT32 magicfly_state::screen_update_magicfly(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect) { - m_bg_tilemap->draw(bitmap, cliprect, 0, 0); + m_bg_tilemap->draw(screen, bitmap, cliprect, 0, 0); return 0; } diff --git a/src/mame/drivers/majorpkr.c b/src/mame/drivers/majorpkr.c index e3e369d1839..d8189fa943b 100644 --- a/src/mame/drivers/majorpkr.c +++ b/src/mame/drivers/majorpkr.c @@ -548,8 +548,8 @@ UINT32 majorpkr_state::screen_update_majorpkr(screen_device &screen, bitmap_ind1 custom_clip = cliprect; custom_clip.max_x -= 16; - m_bg_tilemap->draw(bitmap, custom_clip, 0, 0); - m_fg_tilemap->draw(bitmap, custom_clip, 0, 0); + m_bg_tilemap->draw(screen, bitmap, custom_clip, 0, 0); + m_fg_tilemap->draw(screen, bitmap, custom_clip, 0, 0); if (m_flip_state == 1) { diff --git a/src/mame/drivers/marinedt.c b/src/mame/drivers/marinedt.c index 1751abe96f3..ecbe427eea2 100644 --- a/src/mame/drivers/marinedt.c +++ b/src/mame/drivers/marinedt.c @@ -524,7 +524,7 @@ UINT32 marinedt_state::screen_update_marinedt(screen_device &screen, bitmap_ind1 int sx, sy; m_tile->fill(0); - m_tx_tilemap->draw(*m_tile, cliprect, 0, 0); + m_tx_tilemap->draw(screen, *m_tile, cliprect, 0, 0); m_obj1->fill(0); drawgfx_transpen(*m_obj1, m_obj1->cliprect(), machine().gfx[1], diff --git a/src/mame/drivers/mayumi.c b/src/mame/drivers/mayumi.c index ccd38fd938d..899635be249 100644 --- a/src/mame/drivers/mayumi.c +++ b/src/mame/drivers/mayumi.c @@ -78,7 +78,7 @@ WRITE8_MEMBER(mayumi_state::mayumi_videoram_w) UINT32 mayumi_state::screen_update_mayumi(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect) { - m_tilemap->draw(bitmap, cliprect, 0, 0); + m_tilemap->draw(screen, bitmap, cliprect, 0, 0); return 0; } diff --git a/src/mame/drivers/mgolf.c b/src/mame/drivers/mgolf.c index 71b53646433..bb4884694a0 100644 --- a/src/mame/drivers/mgolf.c +++ b/src/mame/drivers/mgolf.c @@ -80,7 +80,7 @@ UINT32 mgolf_state::screen_update_mgolf(screen_device &screen, bitmap_ind16 &bit int i; /* draw playfield */ - m_bg_tilemap->draw(bitmap, cliprect, 0, 0); + m_bg_tilemap->draw(screen, bitmap, cliprect, 0, 0); /* draw sprites */ for (i = 0; i < 2; i++) diff --git a/src/mame/drivers/midas.c b/src/mame/drivers/midas.c index 18136b1ef42..44de0ffe897 100644 --- a/src/mame/drivers/midas.c +++ b/src/mame/drivers/midas.c @@ -207,7 +207,7 @@ UINT32 midas_state::screen_update_midas(screen_device &screen, bitmap_ind16 &bit bitmap.fill(4095, cliprect); if (layers_ctrl & 2) draw_sprites(bitmap,cliprect); - if (layers_ctrl & 1) m_tmap->draw(bitmap, cliprect, 0, 0); + if (layers_ctrl & 1) m_tmap->draw(screen, bitmap, cliprect, 0, 0); return 0; } diff --git a/src/mame/drivers/mil4000.c b/src/mame/drivers/mil4000.c index 72285d9f7f7..8a9576ad690 100644 --- a/src/mame/drivers/mil4000.c +++ b/src/mame/drivers/mil4000.c @@ -210,10 +210,10 @@ void mil4000_state::video_start() UINT32 mil4000_state::screen_update_mil4000(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect) { - m_sc0_tilemap->draw(bitmap, cliprect, 0,0); - m_sc1_tilemap->draw(bitmap, cliprect, 0,0); - m_sc2_tilemap->draw(bitmap, cliprect, 0,0); - m_sc3_tilemap->draw(bitmap, cliprect, 0,0); + m_sc0_tilemap->draw(screen, bitmap, cliprect, 0,0); + m_sc1_tilemap->draw(screen, bitmap, cliprect, 0,0); + m_sc2_tilemap->draw(screen, bitmap, cliprect, 0,0); + m_sc3_tilemap->draw(screen, bitmap, cliprect, 0,0); return 0; } diff --git a/src/mame/drivers/miniboy7.c b/src/mame/drivers/miniboy7.c index c90ca649967..fcba3c47193 100644 --- a/src/mame/drivers/miniboy7.c +++ b/src/mame/drivers/miniboy7.c @@ -216,7 +216,7 @@ void miniboy7_state::video_start() UINT32 miniboy7_state::screen_update_miniboy7(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect) { - m_bg_tilemap->draw(bitmap, cliprect, 0, 0); + m_bg_tilemap->draw(screen, bitmap, cliprect, 0, 0); return 0; } diff --git a/src/mame/drivers/mirage.c b/src/mame/drivers/mirage.c index 47982087023..5379a4b8ac9 100644 --- a/src/mame/drivers/mirage.c +++ b/src/mame/drivers/mirage.c @@ -100,9 +100,9 @@ UINT32 miragemi_state::screen_update_mirage(screen_device &screen, bitmap_rgb32 bitmap.fill(256, cliprect); /* not verified */ - m_deco_tilegen1->tilemap_2_draw(bitmap, cliprect, TILEMAP_DRAW_OPAQUE, 0); + m_deco_tilegen1->tilemap_2_draw(screen, bitmap, cliprect, TILEMAP_DRAW_OPAQUE, 0); m_sprgen->inefficient_copy_sprite_bitmap(bitmap, cliprect, 0x0800, 0x0800, 0x200, 0x1ff); - m_deco_tilegen1->tilemap_1_draw(bitmap, cliprect, 0, 0); + m_deco_tilegen1->tilemap_1_draw(screen, bitmap, cliprect, 0, 0); m_sprgen->inefficient_copy_sprite_bitmap(bitmap, cliprect, 0x0000, 0x0800, 0x200, 0x1ff); return 0; diff --git a/src/mame/drivers/mogura.c b/src/mame/drivers/mogura.c index 33d9843884a..97c1e894155 100644 --- a/src/mame/drivers/mogura.c +++ b/src/mame/drivers/mogura.c @@ -95,12 +95,12 @@ UINT32 mogura_state::screen_update_mogura(screen_device &screen, bitmap_ind16 &b rectangle clip = visarea; clip.max_x = 256 - 1; m_tilemap->set_scrollx(0, 256); - m_tilemap->draw(bitmap, clip, 0, 0); + m_tilemap->draw(screen, bitmap, clip, 0, 0); clip.min_x = 256; clip.max_x = 512 - 1; m_tilemap->set_scrollx(0, -128); - m_tilemap->draw(bitmap, clip, 0, 0); + m_tilemap->draw(screen, bitmap, clip, 0, 0); return 0; } diff --git a/src/mame/drivers/mole.c b/src/mame/drivers/mole.c index 63aceb3f8b4..daf3900f49f 100644 --- a/src/mame/drivers/mole.c +++ b/src/mame/drivers/mole.c @@ -127,7 +127,7 @@ WRITE8_MEMBER(mole_state::mole_flipscreen_w) UINT32 mole_state::screen_update_mole(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect) { - m_bg_tilemap->draw(bitmap, cliprect, 0, 0); + m_bg_tilemap->draw(screen, bitmap, cliprect, 0, 0); return 0; } diff --git a/src/mame/drivers/mpu12wbk.c b/src/mame/drivers/mpu12wbk.c index 738a06e69a2..562419a5279 100644 --- a/src/mame/drivers/mpu12wbk.c +++ b/src/mame/drivers/mpu12wbk.c @@ -279,7 +279,7 @@ void mpu12wbk_state::video_start() UINT32 mpu12wbk_state::screen_update_mpu12wbk(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect) { - m_bg_tilemap->draw(bitmap, cliprect, 0, 0); + m_bg_tilemap->draw(screen, bitmap, cliprect, 0, 0); return 0; } diff --git a/src/mame/drivers/multfish.c b/src/mame/drivers/multfish.c index fbc84383aac..679a9d58ecb 100644 --- a/src/mame/drivers/multfish.c +++ b/src/mame/drivers/multfish.c @@ -303,7 +303,7 @@ UINT32 multfish_state::screen_update_multfish(screen_device &screen, bitmap_ind1 if (!m_disp_enable) return 0; /* Draw lower part of static tilemap (low pri tiles) */ - m_tilemap->draw(bitmap, cliprect, TILEMAP_DRAW_CATEGORY(1),0); + m_tilemap->draw(screen, bitmap, cliprect, TILEMAP_DRAW_CATEGORY(1),0); /* Setup the column scroll and draw the reels */ for (i=0;i<64;i++) @@ -311,10 +311,10 @@ UINT32 multfish_state::screen_update_multfish(screen_device &screen, bitmap_ind1 int colscroll = (m_vid[i*2] | m_vid[i*2+1] << 8); m_reel_tilemap->set_scrolly(i, colscroll ); } - m_reel_tilemap->draw(bitmap, cliprect, 0,0); + m_reel_tilemap->draw(screen, bitmap, cliprect, 0,0); /* Draw upper part of static tilemap (high pri tiles) */ - m_tilemap->draw(bitmap, cliprect, TILEMAP_DRAW_CATEGORY(0),0); + m_tilemap->draw(screen, bitmap, cliprect, TILEMAP_DRAW_CATEGORY(0),0); return 0; } diff --git a/src/mame/drivers/mwarr.c b/src/mame/drivers/mwarr.c index d5666a9a3d1..5fec9d1e5bf 100644 --- a/src/mame/drivers/mwarr.c +++ b/src/mame/drivers/mwarr.c @@ -102,7 +102,7 @@ public: virtual void machine_reset(); virtual void video_start(); UINT32 screen_update_mwarr(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); - void draw_sprites( bitmap_ind16 &bitmap, const rectangle &cliprect ); + void draw_sprites( screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect ); required_device m_maincpu; required_device m_oki2; }; @@ -408,7 +408,7 @@ void mwarr_state::video_start() save_item(NAME(m_sprites_buffer)); } -void mwarr_state::draw_sprites( bitmap_ind16 &bitmap, const rectangle &cliprect ) +void mwarr_state::draw_sprites( screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect ) { const UINT16 *source = m_sprites_buffer + 0x800 - 4; const UINT16 *finish = m_sprites_buffer; @@ -440,7 +440,7 @@ void mwarr_state::draw_sprites( bitmap_ind16 &bitmap, const rectangle &cliprect color, flipx,0, x,y+i*16, - machine().priority_bitmap,pri_mask,0 ); + screen.priority(),pri_mask,0 ); /* wrap around x */ pdrawgfx_transpen( bitmap, @@ -450,7 +450,7 @@ void mwarr_state::draw_sprites( bitmap_ind16 &bitmap, const rectangle &cliprect color, flipx,0, x-1024,y+i*16, - machine().priority_bitmap,pri_mask,0 ); + screen.priority(),pri_mask,0 ); /* wrap around y */ pdrawgfx_transpen( bitmap, @@ -460,7 +460,7 @@ void mwarr_state::draw_sprites( bitmap_ind16 &bitmap, const rectangle &cliprect color, flipx,0, x,y-512+i*16, - machine().priority_bitmap,pri_mask,0 ); + screen.priority(),pri_mask,0 ); /* wrap around x & y */ pdrawgfx_transpen( bitmap, @@ -470,7 +470,7 @@ void mwarr_state::draw_sprites( bitmap_ind16 &bitmap, const rectangle &cliprect color, flipx,0, x-1024,y-512+i*16, - machine().priority_bitmap,pri_mask,0 ); + screen.priority(),pri_mask,0 ); } } @@ -482,7 +482,7 @@ UINT32 mwarr_state::screen_update_mwarr(screen_device &screen, bitmap_ind16 &bit { int i; - machine().priority_bitmap.fill(0, cliprect); + screen.priority().fill(0, cliprect); if (BIT(m_vidattrram[6], 0)) { @@ -524,11 +524,11 @@ UINT32 mwarr_state::screen_update_mwarr(screen_device &screen, bitmap_ind16 &bit m_tx_tilemap->set_scrollx(0, m_vidattrram[0] + 16); m_tx_tilemap->set_scrolly(0, m_vidattrram[4] + 1); - m_bg_tilemap->draw(bitmap, cliprect, 0, 0x01); - m_mlow_tilemap->draw(bitmap, cliprect, 0, 0x02); - m_mhigh_tilemap->draw(bitmap, cliprect, 0, 0x04); - m_tx_tilemap->draw(bitmap, cliprect, 0, 0x10); - draw_sprites(bitmap, cliprect); + m_bg_tilemap->draw(screen, bitmap, cliprect, 0, 0x01); + m_mlow_tilemap->draw(screen, bitmap, cliprect, 0, 0x02); + m_mhigh_tilemap->draw(screen, bitmap, cliprect, 0, 0x04); + m_tx_tilemap->draw(screen, bitmap, cliprect, 0, 0x10); + draw_sprites(screen, bitmap, cliprect); return 0; } diff --git a/src/mame/drivers/namcoic.c b/src/mame/drivers/namcoic.c index 7d155486379..ca173364f53 100644 --- a/src/mame/drivers/namcoic.c +++ b/src/mame/drivers/namcoic.c @@ -95,7 +95,7 @@ void namcos2_shared_state::namco_tilemap_init( int gfxbank, void *maskBaseAddr, } /* namco_tilemap_init */ void -namco_tilemap_draw( bitmap_ind16 &bitmap, const rectangle &cliprect, int pri ) +namco_tilemap_draw( screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect, int pri ) { int i; for( i=0; i<6; i++ ) @@ -105,7 +105,7 @@ namco_tilemap_draw( bitmap_ind16 &bitmap, const rectangle &cliprect, int pri ) { int color = mTilemapInfo.control[0x30/2+i] & 0x07; mTilemapInfo.tmap[i]->set_palette_offset( color*256 ); - mTilemapInfo.tmap[i]->draw(bitmap,cliprect,0,0); + mTilemapInfo.tmap[i]->draw(screen, bitmap,cliprect,0,0); } } } /* namco_tilemap_draw */ @@ -272,6 +272,7 @@ WRITE32_HANDLER( namco_tilemapvideoram32_le_w ) /**************************************************************************************/ void namcos2_shared_state::zdrawgfxzoom( + screen_device &screen, bitmap_ind16 &dest_bmp,const rectangle &clip,gfx_element *gfx, UINT32 code,UINT32 color,int flipx,int flipy,int sx,int sy, int scalex, int scaley, int zpos ) @@ -344,7 +345,7 @@ void namcos2_shared_state::zdrawgfxzoom( if( ex>sx ) { /* skip if inner loop doesn't draw anything */ int y; - bitmap_ind8 &priority_bitmap = gfx->machine().priority_bitmap; + bitmap_ind8 &priority_bitmap = screen.priority(); if( priority_bitmap.valid() ) { for( y=sy; yset_source_clip(0, 32, 0, 32); zdrawgfxzoom( + screen, bitmap, cliprect, gfx, @@ -501,7 +504,7 @@ namcos2_state::draw_sprites(bitmap_ind16 &bitmap, const rectangle &cliprect, int } } /* namcos2_draw_sprites */ -void namcos2_state::draw_sprites_metalhawk(bitmap_ind16 &bitmap, const rectangle &cliprect, int pri ) +void namcos2_state::draw_sprites_metalhawk(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect, int pri ) { /** * word#0 @@ -538,7 +541,7 @@ void namcos2_state::draw_sprites_metalhawk(bitmap_ind16 &bitmap, const rectangle int loop; if( pri==0 ) { - machine().priority_bitmap.fill(0, cliprect ); + screen.priority().fill(0, cliprect ); } for( loop=0; loop < 128; loop++ ) { @@ -609,6 +612,7 @@ void namcos2_state::draw_sprites_metalhawk(bitmap_ind16 &bitmap, const rectangle rect.max_y += (tile&2)?16:0; } zdrawgfxzoom( + screen, bitmap, rect, machine().gfx[0], @@ -697,7 +701,7 @@ nth_byte32( const UINT32 *pSource, int which ) * 0x14000 sprite list (page1) */ template -void namcos2_shared_state::c355_obj_draw_sprite(_BitmapClass &bitmap, const rectangle &cliprect, const UINT16 *pSource, int pri, int zpos ) +void namcos2_shared_state::c355_obj_draw_sprite(screen_device &screen, _BitmapClass &bitmap, const rectangle &cliprect, const UINT16 *pSource, int pri, int zpos ) { UINT16 *spriteram16 = m_c355_obj_ram; unsigned screen_height_remaining, screen_width_remaining; @@ -848,6 +852,7 @@ void namcos2_shared_state::c355_obj_draw_sprite(_BitmapClass &bitmap, const rect if( (tile&0x8000)==0 ) { zdrawgfxzoom( + screen, bitmap, clip, machine().gfx[m_c355_obj_gfxbank], @@ -893,40 +898,40 @@ void namcos2_shared_state::c355_obj_init(int gfxbank, int pal_xor, c355_obj_code } template -void namcos2_shared_state::c355_obj_draw_list(_BitmapClass &bitmap, const rectangle &cliprect, int pri, const UINT16 *pSpriteList16, const UINT16 *pSpriteTable) +void namcos2_shared_state::c355_obj_draw_list(screen_device &screen, _BitmapClass &bitmap, const rectangle &cliprect, int pri, const UINT16 *pSpriteList16, const UINT16 *pSpriteTable) { int i; /* draw the sprites */ for( i=0; i<256; i++ ) { UINT16 which = pSpriteList16[i]; - c355_obj_draw_sprite(bitmap, cliprect, &pSpriteTable[(which&0xff)*8], pri, i ); + c355_obj_draw_sprite(screen, bitmap, cliprect, &pSpriteTable[(which&0xff)*8], pri, i ); if( which&0x100 ) break; } } -void namcos2_shared_state::c355_obj_draw(bitmap_ind16 &bitmap, const rectangle &cliprect, int pri) +void namcos2_shared_state::c355_obj_draw(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect, int pri) { // int offs = spriteram16[0x18000/2]; /* end-of-sprite-list */ if (pri == 0) - machine().priority_bitmap.fill(0, cliprect); + screen.priority().fill(0, cliprect); // if (offs == 0) // boot - c355_obj_draw_list(bitmap, cliprect, pri, &m_c355_obj_ram[0x02000/2], &m_c355_obj_ram[0x00000/2]); + c355_obj_draw_list(screen, bitmap, cliprect, pri, &m_c355_obj_ram[0x02000/2], &m_c355_obj_ram[0x00000/2]); // else - c355_obj_draw_list(bitmap, cliprect, pri, &m_c355_obj_ram[0x14000/2], &m_c355_obj_ram[0x10000/2]); + c355_obj_draw_list(screen, bitmap, cliprect, pri, &m_c355_obj_ram[0x14000/2], &m_c355_obj_ram[0x10000/2]); } -void namcos2_shared_state::c355_obj_draw(bitmap_rgb32 &bitmap, const rectangle &cliprect, int pri) +void namcos2_shared_state::c355_obj_draw(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect, int pri) { // int offs = spriteram16[0x18000/2]; /* end-of-sprite-list */ if (pri == 0) - machine().priority_bitmap.fill(0, cliprect); + screen.priority().fill(0, cliprect); // if (offs == 0) // boot - c355_obj_draw_list(bitmap, cliprect, pri, &m_c355_obj_ram[0x02000/2], &m_c355_obj_ram[0x00000/2]); + c355_obj_draw_list(screen, bitmap, cliprect, pri, &m_c355_obj_ram[0x02000/2], &m_c355_obj_ram[0x00000/2]); // else - c355_obj_draw_list(bitmap, cliprect, pri, &m_c355_obj_ram[0x14000/2], &m_c355_obj_ram[0x10000/2]); + c355_obj_draw_list(screen, bitmap, cliprect, pri, &m_c355_obj_ram[0x14000/2], &m_c355_obj_ram[0x10000/2]); } WRITE16_MEMBER( namcos2_shared_state::c355_obj_ram_w ) @@ -1114,7 +1119,7 @@ void namcos2_shared_state::c169_roz_unpack_params(const UINT16 *source, roz_para params.incyy <<= 8; } -void namcos2_shared_state::c169_roz_draw_helper(bitmap_ind16 &bitmap, tilemap_t &tmap, const rectangle &clip, const roz_parameters ¶ms) +void namcos2_shared_state::c169_roz_draw_helper(screen_device &screen, bitmap_ind16 &bitmap, tilemap_t &tmap, const rectangle &clip, const roz_parameters ¶ms) { if (m_gametype != NAMCOFL_SPEED_RACER && m_gametype != NAMCOFL_FINAL_LAP_R) { @@ -1151,6 +1156,7 @@ void namcos2_shared_state::c169_roz_draw_helper(bitmap_ind16 &bitmap, tilemap_t { tmap.set_palette_offset(params.color); tmap.draw_roz( + screen, bitmap, clip, params.startx, params.starty, @@ -1160,7 +1166,7 @@ void namcos2_shared_state::c169_roz_draw_helper(bitmap_ind16 &bitmap, tilemap_t } } -void namcos2_shared_state::c169_roz_draw_scanline(bitmap_ind16 &bitmap, int line, int which, int pri, const rectangle &cliprect) +void namcos2_shared_state::c169_roz_draw_scanline(screen_device &screen, bitmap_ind16 &bitmap, int line, int which, int pri, const rectangle &cliprect) { if (line >= cliprect.min_y && line <= cliprect.max_y) { @@ -1179,13 +1185,13 @@ void namcos2_shared_state::c169_roz_draw_scanline(bitmap_ind16 &bitmap, int line { rectangle clip(0, bitmap.width() - 1, line, line); clip &= cliprect; - c169_roz_draw_helper(bitmap, *m_c169_roz_tilemap[which], clip, params); + c169_roz_draw_helper(screen, bitmap, *m_c169_roz_tilemap[which], clip, params); } } } } -void namcos2_shared_state::c169_roz_draw(bitmap_ind16 &bitmap, const rectangle &cliprect, int pri) +void namcos2_shared_state::c169_roz_draw(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect, int pri) { int special = (m_gametype == NAMCOFL_SPEED_RACER || m_gametype == NAMCOFL_FINAL_LAP_R) ? 0 : 1; int mode = m_c169_roz_control[0]; // 0x8000 or 0x1000 @@ -1202,14 +1208,14 @@ void namcos2_shared_state::c169_roz_draw(bitmap_ind16 &bitmap, const rectangle & if (which == special && mode == 0x8000) { for (int line = 0; line < 224; line++) - c169_roz_draw_scanline(bitmap, line, which, pri, cliprect); + c169_roz_draw_scanline(screen, bitmap, line, which, pri, cliprect); } else { roz_parameters params; c169_roz_unpack_params(source, params); if (params.priority == pri) - c169_roz_draw_helper(bitmap, *m_c169_roz_tilemap[which], cliprect, params); + c169_roz_draw_helper(screen, bitmap, *m_c169_roz_tilemap[which], cliprect, params); } } } diff --git a/src/mame/drivers/namcos23.c b/src/mame/drivers/namcos23.c index ff5f2bcbcac..c2590e158f1 100644 --- a/src/mame/drivers/namcos23.c +++ b/src/mame/drivers/namcos23.c @@ -2162,7 +2162,7 @@ UINT32 namcos23_state::screen_update_s23(screen_device &screen, bitmap_rgb32 &bi m_bgtilemap->set_palette_offset(m_c404.palbase); if (m_c404.layer & 4) - m_bgtilemap->draw(bitmap, cliprect, 0, 0); + m_bgtilemap->draw(screen, bitmap, cliprect, 0, 0); return 0; } diff --git a/src/mame/drivers/ninjaw.c b/src/mame/drivers/ninjaw.c index 596b72c93e8..4331e846122 100644 --- a/src/mame/drivers/ninjaw.c +++ b/src/mame/drivers/ninjaw.c @@ -849,11 +849,8 @@ static MACHINE_CONFIG_START( ninjaw, ninjaw_state ) MCFG_TC0100SCN_ADD("tc0100scn_1", darius2_tc0100scn_intf_l) - MCFG_TC0100SCN_SET_SCREEN("lscreen") MCFG_TC0100SCN_ADD("tc0100scn_2", darius2_tc0100scn_intf_m) - MCFG_TC0100SCN_SET_SCREEN("mscreen") MCFG_TC0100SCN_ADD("tc0100scn_3", darius2_tc0100scn_intf_r) - MCFG_TC0100SCN_SET_SCREEN("rscreen") MCFG_TC0110PCR_ADD("tc0110pcr_1", darius2_tc0110pcr_intf_l) MCFG_TC0110PCR_ADD("tc0110pcr_2", darius2_tc0110pcr_intf_m) MCFG_TC0110PCR_ADD("tc0110pcr_3", darius2_tc0110pcr_intf_r) @@ -932,11 +929,8 @@ static MACHINE_CONFIG_START( darius2, ninjaw_state ) MCFG_TC0100SCN_ADD("tc0100scn_1", darius2_tc0100scn_intf_l) - MCFG_TC0100SCN_SET_SCREEN("lscreen") MCFG_TC0100SCN_ADD("tc0100scn_2", darius2_tc0100scn_intf_m) - MCFG_TC0100SCN_SET_SCREEN("mscreen") MCFG_TC0100SCN_ADD("tc0100scn_3", darius2_tc0100scn_intf_r) - MCFG_TC0100SCN_SET_SCREEN("rscreen") MCFG_TC0110PCR_ADD("tc0110pcr_1", darius2_tc0110pcr_intf_l) MCFG_TC0110PCR_ADD("tc0110pcr_2", darius2_tc0110pcr_intf_m) MCFG_TC0110PCR_ADD("tc0110pcr_3", darius2_tc0110pcr_intf_r) diff --git a/src/mame/drivers/nmg5.c b/src/mame/drivers/nmg5.c index bae42126c09..0bc8ee14aed 100644 --- a/src/mame/drivers/nmg5.c +++ b/src/mame/drivers/nmg5.c @@ -895,35 +895,35 @@ UINT32 nmg5_state::screen_update_nmg5(screen_device &screen, bitmap_ind16 &bitma m_fg_tilemap->set_scrolly(0, m_scroll_ram[1] + 9); m_fg_tilemap->set_scrollx(0, m_scroll_ram[0] - 1); - m_bg_tilemap->draw(bitmap, cliprect, 0, 0); + m_bg_tilemap->draw(screen, bitmap, cliprect, 0, 0); if (m_priority_reg == 0) { m_sprgen->draw_sprites(bitmap, cliprect, m_spriteram, 0x400); - m_fg_tilemap->draw(bitmap, cliprect, 0, 0); + m_fg_tilemap->draw(screen, bitmap, cliprect, 0, 0); draw_bitmap(bitmap); } else if (m_priority_reg == 1) { draw_bitmap(bitmap); m_sprgen->draw_sprites(bitmap, cliprect, m_spriteram, 0x400); - m_fg_tilemap->draw(bitmap, cliprect, 0, 0); + m_fg_tilemap->draw(screen, bitmap, cliprect, 0, 0); } else if (m_priority_reg == 2) { m_sprgen->draw_sprites(bitmap, cliprect, m_spriteram, 0x400); draw_bitmap(bitmap); - m_fg_tilemap->draw(bitmap, cliprect, 0, 0); + m_fg_tilemap->draw(screen, bitmap, cliprect, 0, 0); } else if (m_priority_reg == 3) { - m_fg_tilemap->draw(bitmap, cliprect, 0, 0); + m_fg_tilemap->draw(screen, bitmap, cliprect, 0, 0); m_sprgen->draw_sprites(bitmap, cliprect, m_spriteram, 0x400); draw_bitmap(bitmap); } else if (m_priority_reg == 7) { - m_fg_tilemap->draw(bitmap, cliprect, 0, 0); + m_fg_tilemap->draw(screen, bitmap, cliprect, 0, 0); draw_bitmap(bitmap); m_sprgen->draw_sprites(bitmap, cliprect, m_spriteram, 0x400); } diff --git a/src/mame/drivers/nsmpoker.c b/src/mame/drivers/nsmpoker.c index 7831879e7cc..00f2d66887b 100644 --- a/src/mame/drivers/nsmpoker.c +++ b/src/mame/drivers/nsmpoker.c @@ -133,7 +133,7 @@ void nsmpoker_state::video_start() UINT32 nsmpoker_state::screen_update_nsmpoker(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect) { - m_bg_tilemap->draw(bitmap, cliprect, 0, 0); + m_bg_tilemap->draw(screen, bitmap, cliprect, 0, 0); return 0; } diff --git a/src/mame/drivers/nwk-tr.c b/src/mame/drivers/nwk-tr.c index bab652ea325..84c90e98ca6 100644 --- a/src/mame/drivers/nwk-tr.c +++ b/src/mame/drivers/nwk-tr.c @@ -300,7 +300,7 @@ UINT32 nwktr_state::screen_update_nwktr(screen_device &screen, bitmap_rgb32 &bit const rectangle &visarea = screen.visible_area(); const rectangle tilemap_rect(visarea.min_x, visarea.max_x, visarea.min_y+16, visarea.max_y); - m_k001604->draw_front_layer(bitmap, tilemap_rect); + m_k001604->draw_front_layer(screen, bitmap, tilemap_rect); draw_7segment_led(bitmap, 3, 3, m_led_reg0); draw_7segment_led(bitmap, 9, 3, m_led_reg1); diff --git a/src/mame/drivers/olibochu.c b/src/mame/drivers/olibochu.c index efc56bcca9f..cad29ad373c 100644 --- a/src/mame/drivers/olibochu.c +++ b/src/mame/drivers/olibochu.c @@ -232,7 +232,7 @@ void olibochu_state::draw_sprites( bitmap_ind16 &bitmap, const rectangle &clipre UINT32 olibochu_state::screen_update_olibochu(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect) { - m_bg_tilemap->draw(bitmap, cliprect, 0, 0); + m_bg_tilemap->draw(screen, bitmap, cliprect, 0, 0); draw_sprites(bitmap, cliprect); return 0; } diff --git a/src/mame/drivers/onetwo.c b/src/mame/drivers/onetwo.c index bb59067e94d..81e2a9ea59e 100644 --- a/src/mame/drivers/onetwo.c +++ b/src/mame/drivers/onetwo.c @@ -107,7 +107,7 @@ void onetwo_state::video_start() UINT32 onetwo_state::screen_update_onetwo(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect) { - m_fg_tilemap->draw(bitmap, cliprect, 0, 0); + m_fg_tilemap->draw(screen, bitmap, cliprect, 0, 0); return 0; } diff --git a/src/mame/drivers/panicr.c b/src/mame/drivers/panicr.c index 84807b31e22..71d8a895311 100644 --- a/src/mame/drivers/panicr.c +++ b/src/mame/drivers/panicr.c @@ -254,9 +254,9 @@ UINT32 panicr_state::screen_update_panicr(screen_device &screen, bitmap_ind16 &b bitmap.fill(get_black_pen(machine()), cliprect); m_txttilemap->mark_all_dirty(); m_bgtilemap->set_scrollx(0, m_scrollx); - m_bgtilemap->draw(bitmap, cliprect, 0,0); + m_bgtilemap->draw(screen, bitmap, cliprect, 0,0); draw_sprites(bitmap,cliprect); - m_txttilemap->draw(bitmap, cliprect, 0,0); + m_txttilemap->draw(screen, bitmap, cliprect, 0,0); return 0; } diff --git a/src/mame/drivers/peplus.c b/src/mame/drivers/peplus.c index 242078a1b26..ca8c8b32aa8 100644 --- a/src/mame/drivers/peplus.c +++ b/src/mame/drivers/peplus.c @@ -991,7 +991,7 @@ void peplus_state::video_start() UINT32 peplus_state::screen_update_peplus(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect) { - m_bg_tilemap->draw(bitmap, cliprect, 0, 0); + m_bg_tilemap->draw(screen, bitmap, cliprect, 0, 0); return 0; } diff --git a/src/mame/drivers/pipeline.c b/src/mame/drivers/pipeline.c index 989f9b1ff95..1e005bfcbfb 100644 --- a/src/mame/drivers/pipeline.c +++ b/src/mame/drivers/pipeline.c @@ -141,8 +141,8 @@ void pipeline_state::video_start() UINT32 pipeline_state::screen_update_pipeline(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect) { - m_tilemap1->draw(bitmap, cliprect, 0,0); - m_tilemap2->draw(bitmap, cliprect, 0,0); + m_tilemap1->draw(screen, bitmap, cliprect, 0,0); + m_tilemap2->draw(screen, bitmap, cliprect, 0,0); return 0; } diff --git a/src/mame/drivers/pkscram.c b/src/mame/drivers/pkscram.c index 9b7d8c8df72..3f27a7cbe68 100644 --- a/src/mame/drivers/pkscram.c +++ b/src/mame/drivers/pkscram.c @@ -249,9 +249,9 @@ void pkscram_state::video_start() UINT32 pkscram_state::screen_update_pkscramble(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect) { - m_bg_tilemap->draw(bitmap, cliprect, 0,0); - m_md_tilemap->draw(bitmap, cliprect, 0,0); - m_fg_tilemap->draw(bitmap, cliprect, 0,0); + m_bg_tilemap->draw(screen, bitmap, cliprect, 0,0); + m_md_tilemap->draw(screen, bitmap, cliprect, 0,0); + m_fg_tilemap->draw(screen, bitmap, cliprect, 0,0); return 0; } diff --git a/src/mame/drivers/popobear.c b/src/mame/drivers/popobear.c index 1368bdc1c1a..759b39d06df 100644 --- a/src/mame/drivers/popobear.c +++ b/src/mame/drivers/popobear.c @@ -391,8 +391,8 @@ UINT32 popobear_state::screen_update_popobear(screen_device &screen, bitmap_ind1 m_bg_tilemap[3]->set_scrollx(0, vreg[0x09]); m_bg_tilemap[3]->set_scrolly(0, vreg[0x0a]); - if (enable3) m_bg_tilemap[3]->draw(bitmap, cliprect, 0, 0); - if (enable2) m_bg_tilemap[2]->draw(bitmap, cliprect, 0, 0); + if (enable3) m_bg_tilemap[3]->draw(screen, bitmap, cliprect, 0, 0); + if (enable2) m_bg_tilemap[2]->draw(screen, bitmap, cliprect, 0, 0); // the upper 2 tilemaps have a lineselect / linescroll logic @@ -411,14 +411,14 @@ UINT32 popobear_state::screen_update_popobear(screen_device &screen, bitmap_ind1 m_bg_tilemap[1]->set_scrollx(0,(val&0x00ff) | (upper << 8)); m_bg_tilemap[1]->set_scrolly(0,((val&0xff00)>>8)-line); - m_bg_tilemap[1]->draw(bitmap, clip, 0, 0); + m_bg_tilemap[1]->draw(screen, bitmap, clip, 0, 0); } } else if (enable1 != 0x00) { m_bg_tilemap[1]->set_scrollx(0, 0); m_bg_tilemap[1]->set_scrolly(0, 0); - m_bg_tilemap[1]->draw(bitmap, cliprect, 0, 0); + m_bg_tilemap[1]->draw(screen, bitmap, cliprect, 0, 0); } if (enable0 == 0x1f) @@ -436,14 +436,14 @@ UINT32 popobear_state::screen_update_popobear(screen_device &screen, bitmap_ind1 m_bg_tilemap[0]->set_scrollx(0,(val&0x00ff) | (upper << 8)); m_bg_tilemap[0]->set_scrolly(0,((val&0xff00)>>8)-line); - m_bg_tilemap[0]->draw(bitmap, clip, 0, 0); + m_bg_tilemap[0]->draw(screen, bitmap, clip, 0, 0); } } else if (enable0 != 0x00) { m_bg_tilemap[0]->set_scrollx(0, 0); m_bg_tilemap[0]->set_scrolly(0, 0); - m_bg_tilemap[0]->draw(bitmap, cliprect, 0, 0); + m_bg_tilemap[0]->draw(screen, bitmap, cliprect, 0, 0); } draw_sprites(bitmap,cliprect); diff --git a/src/mame/drivers/powerbal.c b/src/mame/drivers/powerbal.c index cac831a9968..30c2db3fb06 100644 --- a/src/mame/drivers/powerbal.c +++ b/src/mame/drivers/powerbal.c @@ -449,7 +449,7 @@ VIDEO_START_MEMBER(powerbal_state,powerbal) UINT32 powerbal_state::screen_update_powerbal(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect) { - m_bg_tilemap->draw(bitmap, cliprect, 0, 0); + m_bg_tilemap->draw(screen, bitmap, cliprect, 0, 0); draw_sprites_powerbal(bitmap, cliprect); return 0; } diff --git a/src/mame/drivers/ppmast93.c b/src/mame/drivers/ppmast93.c index 4cc1848a0dd..d4434216a54 100644 --- a/src/mame/drivers/ppmast93.c +++ b/src/mame/drivers/ppmast93.c @@ -360,8 +360,8 @@ void ppmast93_state::video_start() UINT32 ppmast93_state::screen_update_ppmast93(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect) { - m_bg_tilemap->draw(bitmap, cliprect, 0,0); - m_fg_tilemap->draw(bitmap, cliprect, 0,0); + m_bg_tilemap->draw(screen, bitmap, cliprect, 0,0); + m_fg_tilemap->draw(screen, bitmap, cliprect, 0,0); return 0; } diff --git a/src/mame/drivers/pturn.c b/src/mame/drivers/pturn.c index 16b8915ffcc..747fefa3217 100644 --- a/src/mame/drivers/pturn.c +++ b/src/mame/drivers/pturn.c @@ -176,7 +176,7 @@ UINT32 pturn_state::screen_update_pturn(screen_device &screen, bitmap_ind16 &bit int flipx, flipy; bitmap.fill(m_bgcolor, cliprect); - m_bgmap->draw(bitmap, cliprect, 0,0); + m_bgmap->draw(screen, bitmap, cliprect, 0,0); for ( offs = 0x80-4 ; offs >=0 ; offs -= 4) { sy=256-spriteram[offs]-16 ; @@ -207,7 +207,7 @@ UINT32 pturn_state::screen_update_pturn(screen_device &screen, bitmap_ind16 &bit sx,sy,0); } } - m_fgmap->draw(bitmap, cliprect, 0,0); + m_fgmap->draw(screen, bitmap, cliprect, 0,0); return 0; } diff --git a/src/mame/drivers/pzletime.c b/src/mame/drivers/pzletime.c index eb1eaaf2369..b8b000602cf 100644 --- a/src/mame/drivers/pzletime.c +++ b/src/mame/drivers/pzletime.c @@ -126,7 +126,7 @@ UINT32 pzletime_state::screen_update_pzletime(screen_device &screen, bitmap_ind1 } } - m_mid_tilemap->draw(bitmap, cliprect, 0, 0); + m_mid_tilemap->draw(screen, bitmap, cliprect, 0, 0); { UINT16 *spriteram = m_spriteram; @@ -148,9 +148,9 @@ UINT32 pzletime_state::screen_update_pzletime(screen_device &screen, bitmap_ind1 } } - m_txt_tilemap->draw(bitmap, cliprect, 0, 0); + m_txt_tilemap->draw(screen, bitmap, cliprect, 0, 0); if ((screen.frame_number() % 16) != 0) - m_txt_tilemap->draw(bitmap, cliprect, 1, 0); + m_txt_tilemap->draw(screen, bitmap, cliprect, 1, 0); return 0; } diff --git a/src/mame/drivers/quizpun2.c b/src/mame/drivers/quizpun2.c index 0db01bafa9f..994440ad403 100644 --- a/src/mame/drivers/quizpun2.c +++ b/src/mame/drivers/quizpun2.c @@ -174,11 +174,11 @@ UINT32 quizpun2_state::screen_update_quizpun2(screen_device &screen, bitmap_ind1 } #endif - if (layers_ctrl & 1) m_bg_tmap->draw(bitmap, cliprect, TILEMAP_DRAW_OPAQUE, 0); + if (layers_ctrl & 1) m_bg_tmap->draw(screen, bitmap, cliprect, TILEMAP_DRAW_OPAQUE, 0); else bitmap.fill(get_black_pen(machine()), cliprect); bitmap.fill(get_black_pen(machine()), cliprect); - if (layers_ctrl & 2) m_fg_tmap->draw(bitmap, cliprect, 0, 0); + if (layers_ctrl & 2) m_fg_tmap->draw(screen, bitmap, cliprect, 0, 0); return 0; } diff --git a/src/mame/drivers/quizshow.c b/src/mame/drivers/quizshow.c index 04b9f6c3337..549bdba0975 100644 --- a/src/mame/drivers/quizshow.c +++ b/src/mame/drivers/quizshow.c @@ -114,7 +114,7 @@ void quizshow_state::video_start() UINT32 quizshow_state::screen_update_quizshow(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect) { - m_tilemap->draw(bitmap, cliprect, TILEMAP_DRAW_OPAQUE, 0); + m_tilemap->draw(screen, bitmap, cliprect, TILEMAP_DRAW_OPAQUE, 0); return 0; } diff --git a/src/mame/drivers/r2dx_v33.c b/src/mame/drivers/r2dx_v33.c index ece6706f89c..2e599e815b4 100644 --- a/src/mame/drivers/r2dx_v33.c +++ b/src/mame/drivers/r2dx_v33.c @@ -220,13 +220,13 @@ UINT32 r2dx_v33_state::screen_update_rdx_v33(screen_device &screen, bitmap_ind16 { bitmap.fill(get_black_pen(machine()), cliprect); - m_bg_tilemap->draw(bitmap, cliprect, 0, 0); - m_md_tilemap->draw(bitmap, cliprect, 0, 0); - m_fg_tilemap->draw(bitmap, cliprect, 0, 0); + m_bg_tilemap->draw(screen, bitmap, cliprect, 0, 0); + m_md_tilemap->draw(screen, bitmap, cliprect, 0, 0); + m_fg_tilemap->draw(screen, bitmap, cliprect, 0, 0); draw_sprites(bitmap,cliprect,0); - m_tx_tilemap->draw(bitmap, cliprect, 0, 0); + m_tx_tilemap->draw(screen, bitmap, cliprect, 0, 0); /* debug DMA processing */ if(0) diff --git a/src/mame/drivers/rabbit.c b/src/mame/drivers/rabbit.c index 910e94c28f8..91c5998bda1 100644 --- a/src/mame/drivers/rabbit.c +++ b/src/mame/drivers/rabbit.c @@ -149,7 +149,7 @@ public: void draw_sprites(bitmap_ind16 &bitmap, const rectangle &cliprect ); void rabbit_clearspritebitmap( bitmap_ind16 &bitmap, const rectangle &cliprect ); void draw_sprite_bitmap( bitmap_ind16 &bitmap, const rectangle &cliprect ); - void rabbit_drawtilemap( bitmap_ind16 &bitmap, const rectangle &cliprect, int whichtilemap ); + void rabbit_drawtilemap( screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect, int whichtilemap ); void rabbit_do_blit(); required_device m_maincpu; required_device m_eeprom; @@ -450,7 +450,7 @@ each line represents the differences on each tilemap for unknown variables */ -void rabbit_state::rabbit_drawtilemap( bitmap_ind16 &bitmap, const rectangle &cliprect, int whichtilemap ) +void rabbit_state::rabbit_drawtilemap( screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect, int whichtilemap ) { INT32 startx, starty, incxx, incxy, incyx, incyy, tran; @@ -467,7 +467,7 @@ void rabbit_state::rabbit_drawtilemap( bitmap_ind16 &bitmap, const rectangle &cl startx/starty are also 16.16 scrolling */ - m_tilemap[whichtilemap]->draw_roz(bitmap, cliprect, startx << 12,starty << 12, + m_tilemap[whichtilemap]->draw_roz(screen, bitmap, cliprect, startx << 12,starty << 12, incxx << 5,incxy << 8,incyx << 8,incyy << 5, 1, /* wraparound */ tran ? 0 : TILEMAP_DRAW_OPAQUE,0); @@ -495,10 +495,10 @@ UINT32 rabbit_state::screen_update_rabbit(screen_device &screen, bitmap_ind16 &b /* prio isnt certain but seems to work.. */ for (prilevel = 0xf; prilevel >0; prilevel--) { - if (prilevel == ((m_tilemap_regs[3][0]&0x0f000000)>>24)) rabbit_drawtilemap(bitmap,cliprect, 3); - if (prilevel == ((m_tilemap_regs[2][0]&0x0f000000)>>24)) rabbit_drawtilemap(bitmap,cliprect, 2); - if (prilevel == ((m_tilemap_regs[1][0]&0x0f000000)>>24)) rabbit_drawtilemap(bitmap,cliprect, 1); - if (prilevel == ((m_tilemap_regs[0][0]&0x0f000000)>>24)) rabbit_drawtilemap(bitmap,cliprect, 0); + if (prilevel == ((m_tilemap_regs[3][0]&0x0f000000)>>24)) rabbit_drawtilemap(screen,bitmap,cliprect, 3); + if (prilevel == ((m_tilemap_regs[2][0]&0x0f000000)>>24)) rabbit_drawtilemap(screen,bitmap,cliprect, 2); + if (prilevel == ((m_tilemap_regs[1][0]&0x0f000000)>>24)) rabbit_drawtilemap(screen,bitmap,cliprect, 1); + if (prilevel == ((m_tilemap_regs[0][0]&0x0f000000)>>24)) rabbit_drawtilemap(screen,bitmap,cliprect, 0); if (prilevel == 0x09) // should it be selectable? { diff --git a/src/mame/drivers/raiden2.c b/src/mame/drivers/raiden2.c index f05a7585987..ef311c1cea0 100644 --- a/src/mame/drivers/raiden2.c +++ b/src/mame/drivers/raiden2.c @@ -1011,19 +1011,19 @@ UINT32 raiden2_state::screen_update_raiden2(screen_device &screen, bitmap_ind16 //if (!machine().input().code_pressed(KEYCODE_Q)) { if (!(raiden2_tilemap_enable & 1)) - background_layer->draw(bitmap, cliprect, 0, 0); + background_layer->draw(screen, bitmap, cliprect, 0, 0); } //if (!machine().input().code_pressed(KEYCODE_W)) { if (!(raiden2_tilemap_enable & 2)) - midground_layer->draw(bitmap, cliprect, 0, 0); + midground_layer->draw(screen, bitmap, cliprect, 0, 0); } //if (!machine().input().code_pressed(KEYCODE_E)) { if (!(raiden2_tilemap_enable & 4)) - foreground_layer->draw(bitmap, cliprect, 0, 0); + foreground_layer->draw(screen, bitmap, cliprect, 0, 0); } //if (!machine().input().code_pressed(KEYCODE_S)) @@ -1035,7 +1035,7 @@ UINT32 raiden2_state::screen_update_raiden2(screen_device &screen, bitmap_ind16 //if (!machine().input().code_pressed(KEYCODE_A)) { if (!(raiden2_tilemap_enable & 8)) - text_layer->draw(bitmap, cliprect, 0, 0); + text_layer->draw(screen, bitmap, cliprect, 0, 0); } return 0; diff --git a/src/mame/drivers/rmhaihai.c b/src/mame/drivers/rmhaihai.c index c8e9110d856..c47c4984c17 100644 --- a/src/mame/drivers/rmhaihai.c +++ b/src/mame/drivers/rmhaihai.c @@ -97,7 +97,7 @@ void rmhaihai_state::video_start() UINT32 rmhaihai_state::screen_update_rmhaihai(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect) { - m_bg_tilemap->draw(bitmap, cliprect, 0, 0); + m_bg_tilemap->draw(screen, bitmap, cliprect, 0, 0); return 0; } diff --git a/src/mame/drivers/safarir.c b/src/mame/drivers/safarir.c index ed874138eb1..527940785ce 100644 --- a/src/mame/drivers/safarir.c +++ b/src/mame/drivers/safarir.c @@ -204,8 +204,8 @@ UINT32 safarir_state::screen_update_safarir(screen_device &screen, bitmap_ind16 { m_bg_tilemap->set_scrollx(0, *m_bg_scroll); - m_bg_tilemap->draw(bitmap, cliprect, 0, 0); - m_fg_tilemap->draw(bitmap, cliprect, 0, 0); + m_bg_tilemap->draw(screen, bitmap, cliprect, 0, 0); + m_fg_tilemap->draw(screen, bitmap, cliprect, 0, 0); return 0; } diff --git a/src/mame/drivers/sandscrp.c b/src/mame/drivers/sandscrp.c index 762934b5194..53ff0d32d42 100644 --- a/src/mame/drivers/sandscrp.c +++ b/src/mame/drivers/sandscrp.c @@ -129,13 +129,13 @@ UINT32 sandscrp_state::screen_update_sandscrp(screen_device &screen, bitmap_ind1 int i; - machine().priority_bitmap.fill(0, cliprect); + screen.priority().fill(0, cliprect); m_view2_0->kaneko16_prepare(bitmap, cliprect); for ( i = 0; i < 8; i++ ) { - m_view2_0->render_tilemap_chip(bitmap,cliprect,i); + m_view2_0->render_tilemap_chip(screen,bitmap,cliprect,i); } // copy sprite bitmap to screen diff --git a/src/mame/drivers/sanremo.c b/src/mame/drivers/sanremo.c index b10b26ffa92..7a2f0a8724c 100644 --- a/src/mame/drivers/sanremo.c +++ b/src/mame/drivers/sanremo.c @@ -155,7 +155,7 @@ void sanremo_state::video_start() UINT32 sanremo_state::screen_update_sanremo(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect) { - m_bg_tilemap->draw(bitmap, cliprect, 0, 0); + m_bg_tilemap->draw(screen, bitmap, cliprect, 0, 0); return 0; } diff --git a/src/mame/drivers/sbowling.c b/src/mame/drivers/sbowling.c index 32e004acf96..e362e7f2178 100644 --- a/src/mame/drivers/sbowling.c +++ b/src/mame/drivers/sbowling.c @@ -121,7 +121,7 @@ WRITE8_MEMBER(sbowling_state::sbw_videoram_w) UINT32 sbowling_state::screen_update_sbowling(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect) { bitmap.fill(0x18, cliprect); - m_sb_tilemap->draw(bitmap, cliprect, 0, 0); + m_sb_tilemap->draw(screen, bitmap, cliprect, 0, 0); copybitmap_trans(bitmap, *m_tmpbitmap, 0, 0, 0, 0, cliprect, m_color_prom_address); return 0; } diff --git a/src/mame/drivers/sbrkout.c b/src/mame/drivers/sbrkout.c index 41aab321c6a..3a54cd662af 100644 --- a/src/mame/drivers/sbrkout.c +++ b/src/mame/drivers/sbrkout.c @@ -337,7 +337,7 @@ UINT32 sbrkout_state::screen_update_sbrkout(screen_device &screen, bitmap_ind16 UINT8 *videoram = m_videoram; int ball; - m_bg_tilemap->draw(bitmap, cliprect, 0, 0); + m_bg_tilemap->draw(screen, bitmap, cliprect, 0, 0); for (ball = 2; ball >= 0; ball--) { diff --git a/src/mame/drivers/seabattl.c b/src/mame/drivers/seabattl.c index 1f9d29a3a3a..e39151edd7d 100644 --- a/src/mame/drivers/seabattl.c +++ b/src/mame/drivers/seabattl.c @@ -163,8 +163,8 @@ UINT32 seabattl_state::screen_update_seabattl(screen_device &screen, bitmap_ind1 } // background (scr.sm.obj) - m_bg_tilemap->draw(bitmap, cliprect, 0, 0); - m_bg_tilemap->draw(m_collision_bg, cliprect, TILEMAP_DRAW_OPAQUE, 0); + m_bg_tilemap->draw(screen, bitmap, cliprect, 0, 0); + m_bg_tilemap->draw(screen, m_collision_bg, cliprect, TILEMAP_DRAW_OPAQUE, 0); // sprites (m.obj) for ( offset = 0; offset < 256; offset++ ) diff --git a/src/mame/drivers/segahang.c b/src/mame/drivers/segahang.c index 6838fe36ef6..fb508db8d74 100644 --- a/src/mame/drivers/segahang.c +++ b/src/mame/drivers/segahang.c @@ -125,7 +125,7 @@ WRITE8_MEMBER( segahang_state::video_lamps_w ) m_shadow = ~data & 0x40; // bit 4: enable display - m_segaic16vid->segaic16_set_display_enable(machine(), data & 0x10); + m_segaic16vid->segaic16_set_display_enable(*m_screen, data & 0x10); // bits 2 & 3: control the lamps set_led_status(machine(), 1, data & 0x08); @@ -409,7 +409,7 @@ INTERRUPT_GEN_MEMBER( segahang_state::i8751_main_cpu_vblank ) void segahang_state::machine_reset() { // reset misc components - m_segaic16vid->segaic16_tilemap_reset(machine(), 0); + m_segaic16vid->segaic16_tilemap_reset(*m_screen); // queue up a timer to either boost interleave or disable the MCU synchronize(TID_INIT_I8751); diff --git a/src/mame/drivers/segaorun.c b/src/mame/drivers/segaorun.c index e77dd283020..2c674ae89ee 100644 --- a/src/mame/drivers/segaorun.c +++ b/src/mame/drivers/segaorun.c @@ -396,7 +396,7 @@ WRITE8_MEMBER( segaorun_state::video_control_w ) // D1: (CONT) - affects sprite hardware // D0: Sound section reset (1= normal operation, 0= reset) - m_segaic16vid->segaic16_set_display_enable(machine(), data & 0x20); + m_segaic16vid->segaic16_set_display_enable(*m_screen, data & 0x20); m_adc_select = (data >> 2) & 7; m_soundcpu->set_input_line(INPUT_LINE_RESET, (data & 0x01) ? CLEAR_LINE : ASSERT_LINE); } @@ -543,7 +543,7 @@ void segaorun_state::machine_reset() // reset misc components if (m_custom_map != NULL) m_mapper->configure_explicit(m_custom_map); - m_segaic16vid->segaic16_tilemap_reset(machine(), 0); + m_segaic16vid->segaic16_tilemap_reset(*m_screen); // hook the RESET line, which resets CPU #1 m68k_set_reset_callback(m_maincpu, m68k_reset_callback); @@ -747,7 +747,7 @@ WRITE16_MEMBER( segaorun_state::shangon_custom_io_w ) // D7-D6: (ADC1-0) // D5: Screen display m_adc_select = (data >> 6) & 3; - m_segaic16vid->segaic16_set_display_enable(machine(), (data >> 5) & 1); + m_segaic16vid->segaic16_set_display_enable(*m_screen, (data >> 5) & 1); return; case 0x0020/2: diff --git a/src/mame/drivers/segas16a.c b/src/mame/drivers/segas16a.c index 0e933a7c9f0..58cfe847fef 100644 --- a/src/mame/drivers/segas16a.c +++ b/src/mame/drivers/segas16a.c @@ -240,7 +240,7 @@ WRITE8_MEMBER( segas16a_state::misc_control_w ) m_mcu->set_input_line(MCS51_INT1_LINE, (data & 0x40) ? CLEAR_LINE : ASSERT_LINE); // bit 4: enable display - m_segaic16vid->segaic16_set_display_enable(machine(), data & 0x10); + m_segaic16vid->segaic16_set_display_enable(*m_screen, data & 0x10); // bits 0 & 1: update coin counters coin_counter_w(machine(), 1, data & 0x02); @@ -500,7 +500,7 @@ WRITE8_MEMBER( segas16a_state::mcu_control_w ) // enable/disable the display if (data & 0x40) - m_segaic16vid->segaic16_set_display_enable(machine(), 1); + m_segaic16vid->segaic16_set_display_enable(*m_screen, 1); // apply an extra boost if the main CPU is just waking up if ((m_mcu_control ^ data) & 0x40) diff --git a/src/mame/drivers/segas16b.c b/src/mame/drivers/segas16b.c index 7e3686b96ec..c9515602758 100644 --- a/src/mame/drivers/segas16b.c +++ b/src/mame/drivers/segas16b.c @@ -1156,7 +1156,7 @@ WRITE16_MEMBER( segas16b_state::standard_io_w ) m_segaic16vid->segaic16_tilemap_set_flip(machine(), 0, data & 0x40); m_sprites->set_flip(data & 0x40); if (!m_disable_screen_blanking) - m_segaic16vid->segaic16_set_display_enable(machine(), data & 0x20); + m_segaic16vid->segaic16_set_display_enable(*m_screen, data & 0x20); set_led_status(machine(), 1, data & 0x08); set_led_status(machine(), 0, data & 0x04); coin_counter_w(machine(), 1, data & 0x02); @@ -1318,7 +1318,7 @@ void segas16b_state::machine_reset() synchronize(TID_INIT_I8751); // reset tilemap state - m_segaic16vid->segaic16_tilemap_reset(machine(), 0); + m_segaic16vid->segaic16_tilemap_reset(*m_screen); // configure sprite banks static const UINT8 default_banklist[] = { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15 }; @@ -7160,7 +7160,7 @@ INPUT_PORTS_END void isgsm_state::machine_reset() { - m_segaic16vid->segaic16_tilemap_reset(machine(), 0); + m_segaic16vid->segaic16_tilemap_reset(*m_screen); // configure sprite banks for (int i = 0; i < 16; i++) diff --git a/src/mame/drivers/segas18.c b/src/mame/drivers/segas18.c index 036a2f65128..10296f21aa7 100644 --- a/src/mame/drivers/segas18.c +++ b/src/mame/drivers/segas18.c @@ -205,7 +205,7 @@ void segas18_state::device_timer(emu_timer &timer, device_timer_id id, int param void segas18_state::machine_reset() { - m_segaic16vid->segaic16_tilemap_reset(machine(), 0); + m_segaic16vid->segaic16_tilemap_reset(*m_screen); m_vdp->device_reset_old(); @@ -319,7 +319,7 @@ WRITE16_MEMBER( segas18_state::io_chip_w ) // CNT register case 0x1c/2: - m_segaic16vid->segaic16_set_display_enable(machine(), data & 2); + m_segaic16vid->segaic16_set_display_enable(*m_screen, data & 2); if ((old ^ data) & 4) set_vdp_enable(data & 4); break; diff --git a/src/mame/drivers/segaxbd.c b/src/mame/drivers/segaxbd.c index 3ae081eb674..c8ee5ca57f4 100644 --- a/src/mame/drivers/segaxbd.c +++ b/src/mame/drivers/segaxbd.c @@ -479,7 +479,7 @@ WRITE16_MEMBER( segaxbd_state::iochip_0_w ) if (((oldval ^ data) & 0x40) && !(data & 0x40)) machine().watchdog_reset(); - m_segaic16vid->segaic16_set_display_enable(machine(), data & 0x20); + m_segaic16vid->segaic16_set_display_enable(*m_screen, data & 0x20); m_soundcpu->set_input_line(INPUT_LINE_RESET, (data & 0x01) ? CLEAR_LINE : ASSERT_LINE); if (m_soundcpu2 != NULL) @@ -670,7 +670,7 @@ READ8_MEMBER( segaxbd_state::sound_data_r ) void segaxbd_state::machine_reset() { - m_segaic16vid->segaic16_tilemap_reset(machine(), 0); + m_segaic16vid->segaic16_tilemap_reset(*m_screen); // hook the RESET line, which resets CPU #1 m68k_set_reset_callback(m_maincpu, &segaxbd_state::m68k_reset_callback); diff --git a/src/mame/drivers/segaybd.c b/src/mame/drivers/segaybd.c index 6734a5406d3..8fa694d33f5 100644 --- a/src/mame/drivers/segaybd.c +++ b/src/mame/drivers/segaybd.c @@ -204,7 +204,7 @@ WRITE16_MEMBER( segaybd_state::io_chip_w ) // D2 = YRES // D1-D0 = ADC0-1 // - m_segaic16vid->segaic16_set_display_enable(machine(), data & 0x80); + m_segaic16vid->segaic16_set_display_enable(*m_screen, data & 0x80); if (((old ^ data) & 0x20) && !(data & 0x20)) machine().watchdog_reset(); m_soundcpu->set_input_line(INPUT_LINE_RESET, (data & 0x10) ? CLEAR_LINE : ASSERT_LINE); diff --git a/src/mame/drivers/sengokmj.c b/src/mame/drivers/sengokmj.c index e6ed614a083..6e8ef16d989 100644 --- a/src/mame/drivers/sengokmj.c +++ b/src/mame/drivers/sengokmj.c @@ -311,13 +311,13 @@ UINT32 sengokmj_state::screen_update_sengokmj(screen_device &screen, bitmap_ind1 m_sc3_tilemap->set_scrollx(0, (128) & 0x1ff ); m_sc3_tilemap->set_scrolly(0, (0) & 0x1ff ); - if(SEIBU_CRTC_ENABLE_SC0) { m_sc0_tilemap->draw(bitmap, cliprect, 0,0); } + if(SEIBU_CRTC_ENABLE_SC0) { m_sc0_tilemap->draw(screen, bitmap, cliprect, 0,0); } if(SEIBU_CRTC_ENABLE_SPR) { draw_sprites(screen.machine(), bitmap,cliprect, 2); } - if(SEIBU_CRTC_ENABLE_SC2) { m_sc2_tilemap->draw(bitmap, cliprect, 0,0); } + if(SEIBU_CRTC_ENABLE_SC2) { m_sc2_tilemap->draw(screen, bitmap, cliprect, 0,0); } if(SEIBU_CRTC_ENABLE_SPR) { draw_sprites(screen.machine(), bitmap,cliprect, 1); } - if(SEIBU_CRTC_ENABLE_SC1) { m_sc1_tilemap->draw(bitmap, cliprect, 0,0); } + if(SEIBU_CRTC_ENABLE_SC1) { m_sc1_tilemap->draw(screen, bitmap, cliprect, 0,0); } if(SEIBU_CRTC_ENABLE_SPR) { draw_sprites(screen.machine(), bitmap,cliprect, 0); } - if(SEIBU_CRTC_ENABLE_SC3) { m_sc3_tilemap->draw(bitmap, cliprect, 0,0); } + if(SEIBU_CRTC_ENABLE_SC3) { m_sc3_tilemap->draw(screen, bitmap, cliprect, 0,0); } if(SEIBU_CRTC_ENABLE_SPR) { draw_sprites(screen.machine(), bitmap,cliprect, 3); } return 0; diff --git a/src/mame/drivers/sfbonus.c b/src/mame/drivers/sfbonus.c index 179eaf99f16..917e6d6dc5b 100644 --- a/src/mame/drivers/sfbonus.c +++ b/src/mame/drivers/sfbonus.c @@ -1019,38 +1019,38 @@ static void sfbonus_draw_reel_layer(screen_device &screen, bitmap_ind16 &bitmap, if (rowenable2==0) { - state->m_reel_tilemap->draw(*state->m_temp_reel_bitmap, clip, TILEMAP_DRAW_CATEGORY(catagory),3); + state->m_reel_tilemap->draw(screen, *state->m_temp_reel_bitmap, clip, TILEMAP_DRAW_CATEGORY(catagory),3); } if (rowenable==0) { - state->m_reel_tilemap->draw(*state->m_temp_reel_bitmap, clip, TILEMAP_DRAW_CATEGORY(catagory),3); + state->m_reel_tilemap->draw(screen, *state->m_temp_reel_bitmap, clip, TILEMAP_DRAW_CATEGORY(catagory),3); } if (rowenable2==0x1) { - state->m_reel2_tilemap->draw(*state->m_temp_reel_bitmap, clip, TILEMAP_DRAW_CATEGORY(catagory),2); + state->m_reel2_tilemap->draw(screen, *state->m_temp_reel_bitmap, clip, TILEMAP_DRAW_CATEGORY(catagory),2); } if (rowenable==0x1) { - state->m_reel2_tilemap->draw(*state->m_temp_reel_bitmap, clip, TILEMAP_DRAW_CATEGORY(catagory),2); + state->m_reel2_tilemap->draw(screen, *state->m_temp_reel_bitmap, clip, TILEMAP_DRAW_CATEGORY(catagory),2); } if (rowenable2==0x2) { - state->m_reel3_tilemap->draw(*state->m_temp_reel_bitmap, clip, TILEMAP_DRAW_CATEGORY(catagory),1); + state->m_reel3_tilemap->draw(screen, *state->m_temp_reel_bitmap, clip, TILEMAP_DRAW_CATEGORY(catagory),1); } if (rowenable==0x2) { - state->m_reel3_tilemap->draw(*state->m_temp_reel_bitmap, clip, TILEMAP_DRAW_CATEGORY(catagory),1); + state->m_reel3_tilemap->draw(screen, *state->m_temp_reel_bitmap, clip, TILEMAP_DRAW_CATEGORY(catagory),1); } if (rowenable2==0x3) { - state->m_reel4_tilemap->draw(*state->m_temp_reel_bitmap, clip, TILEMAP_DRAW_CATEGORY(catagory),4); + state->m_reel4_tilemap->draw(screen, *state->m_temp_reel_bitmap, clip, TILEMAP_DRAW_CATEGORY(catagory),4); } if (rowenable==0x3) { - state->m_reel4_tilemap->draw(*state->m_temp_reel_bitmap, clip, TILEMAP_DRAW_CATEGORY(catagory),4); + state->m_reel4_tilemap->draw(screen, *state->m_temp_reel_bitmap, clip, TILEMAP_DRAW_CATEGORY(catagory),4); } @@ -1104,7 +1104,7 @@ UINT32 sfbonus_state::screen_update_sfbonus(screen_device &screen, bitmap_ind16 scroll = front_rowscroll[(i*2)+0x000] | (front_rowscroll[(i*2)+0x001]<<8); m_tilemap->set_scrollx(i, scroll+globalxscroll ); } - m_tilemap->draw(bitmap, cliprect, 0,0); + m_tilemap->draw(screen, bitmap, cliprect, 0,0); { int y,x; diff --git a/src/mame/drivers/silvmil.c b/src/mame/drivers/silvmil.c index 3cbb86f47ac..39f1dc14c3c 100644 --- a/src/mame/drivers/silvmil.c +++ b/src/mame/drivers/silvmil.c @@ -153,8 +153,8 @@ void silvmil_state::video_start() UINT32 silvmil_state::screen_update_silvmil(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect) { - m_bg_layer->draw(bitmap, cliprect, 0, 0); - m_fg_layer->draw(bitmap, cliprect, 0, 0); + m_bg_layer->draw(screen, bitmap, cliprect, 0, 0); + m_fg_layer->draw(screen, bitmap, cliprect, 0, 0); m_sprgen->draw_sprites(bitmap, cliprect, m_spriteram, 0x400); return 0; } diff --git a/src/mame/drivers/skyarmy.c b/src/mame/drivers/skyarmy.c index bbd15b20e2c..b9c0c2fda3b 100644 --- a/src/mame/drivers/skyarmy.c +++ b/src/mame/drivers/skyarmy.c @@ -134,7 +134,7 @@ UINT32 skyarmy_state::screen_update_skyarmy(screen_device &screen, bitmap_ind16 for(i=0;i<0x20;i++) m_tilemap->set_scrolly(i,m_scrollram[i]); - m_tilemap->draw(bitmap, cliprect, 0,0); + m_tilemap->draw(screen, bitmap, cliprect, 0,0); for (offs = 0 ; offs < 0x40; offs+=4) { diff --git a/src/mame/drivers/skylncr.c b/src/mame/drivers/skylncr.c index 34be886a56e..5e08e946349 100644 --- a/src/mame/drivers/skylncr.c +++ b/src/mame/drivers/skylncr.c @@ -190,7 +190,7 @@ UINT32 skylncr_state::screen_update_skylncr(screen_device &screen, bitmap_ind16 int i; bitmap.fill(0, cliprect); - m_reel_1_tilemap->draw(bitmap, cliprect, 0, 0); + m_reel_1_tilemap->draw(screen, bitmap, cliprect, 0, 0); // are these hardcoded, or registers? const rectangle visible1(0*8, (20+48)*8-1, 4*8, (4+7)*8-1); @@ -204,12 +204,12 @@ UINT32 skylncr_state::screen_update_skylncr(screen_device &screen, bitmap_ind16 m_reel_4_tilemap->set_scrolly(i, m_reelscroll4[i]); } - m_reel_2_tilemap->draw(bitmap, visible1, 0, 0); - m_reel_3_tilemap->draw(bitmap, visible2, 0, 0); - m_reel_4_tilemap->draw(bitmap, visible3, 0, 0); + m_reel_2_tilemap->draw(screen, bitmap, visible1, 0, 0); + m_reel_3_tilemap->draw(screen, bitmap, visible2, 0, 0); + m_reel_4_tilemap->draw(screen, bitmap, visible3, 0, 0); - m_tmap->draw(bitmap, cliprect, 0, 0); + m_tmap->draw(screen, bitmap, cliprect, 0, 0); return 0; } diff --git a/src/mame/drivers/spoker.c b/src/mame/drivers/spoker.c index dd4b7ed36a9..b11c464b0b5 100644 --- a/src/mame/drivers/spoker.c +++ b/src/mame/drivers/spoker.c @@ -104,8 +104,8 @@ void spoker_state::video_start() UINT32 spoker_state::screen_update_spoker(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect) { bitmap.fill(get_black_pen(machine()), cliprect); - m_bg_tilemap->draw(bitmap, cliprect, 0, 0); - m_fg_tilemap->draw(bitmap, cliprect, 0, 0); + m_bg_tilemap->draw(screen, bitmap, cliprect, 0, 0); + m_fg_tilemap->draw(screen, bitmap, cliprect, 0, 0); return 0; } diff --git a/src/mame/drivers/spool99.c b/src/mame/drivers/spool99.c index 7024778d19c..e15d939176c 100644 --- a/src/mame/drivers/spool99.c +++ b/src/mame/drivers/spool99.c @@ -145,7 +145,7 @@ void spool99_state::video_start() UINT32 spool99_state::screen_update_spool99(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect) { - m_sc0_tilemap->draw(bitmap, cliprect, 0,0); + m_sc0_tilemap->draw(screen, bitmap, cliprect, 0,0); return 0; } diff --git a/src/mame/drivers/sshot.c b/src/mame/drivers/sshot.c index e58df1f9efd..f4a94819c9f 100644 --- a/src/mame/drivers/sshot.c +++ b/src/mame/drivers/sshot.c @@ -203,7 +203,7 @@ void supershot_state::video_start() UINT32 supershot_state::screen_update_supershot(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect) { - m_tilemap->draw(bitmap, cliprect, 0, 0); + m_tilemap->draw(screen, bitmap, cliprect, 0, 0); return 0; } diff --git a/src/mame/drivers/statriv2.c b/src/mame/drivers/statriv2.c index c789d2b0e62..6489db28ec6 100644 --- a/src/mame/drivers/statriv2.c +++ b/src/mame/drivers/statriv2.c @@ -203,7 +203,7 @@ UINT32 statriv2_state::screen_update_statriv2(screen_device &screen, bitmap_ind1 if (m_tms->screen_reset()) bitmap.fill(get_black_pen(machine()), cliprect); else - m_tilemap->draw(bitmap, cliprect, 0, 0); + m_tilemap->draw(screen, bitmap, cliprect, 0, 0); return 0; } diff --git a/src/mame/drivers/stuntair.c b/src/mame/drivers/stuntair.c index b7f40aad8d4..c4101b8a60a 100644 --- a/src/mame/drivers/stuntair.c +++ b/src/mame/drivers/stuntair.c @@ -219,12 +219,12 @@ UINT32 stuntair_state::screen_update_stuntair(screen_device &screen, bitmap_ind1 { m_bg_tilemap->set_scrollx(0, m_bg_xscroll); - m_bg_tilemap->draw(bitmap, cliprect, 0, 0); - m_fg_tilemap->draw(bitmap, cliprect, 0, TILEMAP_PIXEL_LAYER0); + m_bg_tilemap->draw(screen, bitmap, cliprect, 0, 0); + m_fg_tilemap->draw(screen, bitmap, cliprect, 0, TILEMAP_PIXEL_LAYER0); draw_sprites(bitmap, cliprect); - m_fg_tilemap->draw(bitmap, cliprect, 0, TILEMAP_PIXEL_LAYER1|TILEMAP_DRAW_OPAQUE); + m_fg_tilemap->draw(screen, bitmap, cliprect, 0, TILEMAP_PIXEL_LAYER1|TILEMAP_DRAW_OPAQUE); return 0; } diff --git a/src/mame/drivers/subsino.c b/src/mame/drivers/subsino.c index 65c6aa61b5c..02bb70907ce 100644 --- a/src/mame/drivers/subsino.c +++ b/src/mame/drivers/subsino.c @@ -504,7 +504,7 @@ VIDEO_START_MEMBER(subsino_state,stisub) UINT32 subsino_state::screen_update_subsino(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect) { bitmap.fill(0, cliprect); - m_tmap->draw(bitmap, cliprect, 0, 0); + m_tmap->draw(screen, bitmap, cliprect, 0, 0); return 0; } @@ -527,12 +527,12 @@ UINT32 subsino_state::screen_update_subsino_reels(screen_device &screen, bitmap_ const rectangle visible2(0*8, (14+48)*8-1, 10*8, (10+7)*8-1); const rectangle visible3(0*8, (14+48)*8-1, 18*8, (18+7)*8-1); - m_reel1_tilemap->draw(bitmap, visible1, 0, 0); - m_reel2_tilemap->draw(bitmap, visible2, 0, 0); - m_reel3_tilemap->draw(bitmap, visible3, 0, 0); + m_reel1_tilemap->draw(screen, bitmap, visible1, 0, 0); + m_reel2_tilemap->draw(screen, bitmap, visible2, 0, 0); + m_reel3_tilemap->draw(screen, bitmap, visible3, 0, 0); } - m_tmap->draw(bitmap, cliprect, 0, 0); + m_tmap->draw(screen, bitmap, cliprect, 0, 0); return 0; } @@ -563,12 +563,12 @@ UINT32 subsino_state::screen_update_stisub_reels(screen_device &screen, bitmap_i const rectangle visible2(0, 511, 88, 143); const rectangle visible3(0, 511, 144, 223); - m_reel1_tilemap->draw(bitmap, visible1, 0, 0); - m_reel2_tilemap->draw(bitmap, visible2, 0, 0); - m_reel3_tilemap->draw(bitmap, visible3, 0, 0); + m_reel1_tilemap->draw(screen, bitmap, visible1, 0, 0); + m_reel2_tilemap->draw(screen, bitmap, visible2, 0, 0); + m_reel3_tilemap->draw(screen, bitmap, visible3, 0, 0); } - m_tmap->draw(bitmap, cliprect, 0, 0); + m_tmap->draw(screen, bitmap, cliprect, 0, 0); return 0; } diff --git a/src/mame/drivers/subsino2.c b/src/mame/drivers/subsino2.c index 8bd23321056..fd0689b084c 100644 --- a/src/mame/drivers/subsino2.c +++ b/src/mame/drivers/subsino2.c @@ -733,7 +733,7 @@ UINT32 subsino2_state::screen_update_subsino2(screen_device &screen, bitmap_ind1 if ( reelwrap_y-1 <= visible.max_y ) tmp.max_y = reelwrap_y-1; l->tmap->set_scrolly(0, reelscroll_y); - l->tmap->draw(bitmap, tmp, 0, 0); + l->tmap->draw(screen, bitmap, tmp, 0, 0); tmp.max_y = visible.max_y; } @@ -743,7 +743,7 @@ UINT32 subsino2_state::screen_update_subsino2(screen_device &screen, bitmap_ind1 if ( reelwrap_y >= visible.min_y ) tmp.min_y = reelwrap_y; l->tmap->set_scrolly(0, -((reelwrap_y &0xff) | (reelscroll_y & 0x100))); - l->tmap->draw(bitmap, tmp, 0, 0); + l->tmap->draw(screen, bitmap, tmp, 0, 0); tmp.min_y = visible.min_y; } } @@ -751,11 +751,11 @@ UINT32 subsino2_state::screen_update_subsino2(screen_device &screen, bitmap_ind1 } else { - l->tmap->draw(bitmap, cliprect, 0, 0); + l->tmap->draw(screen, bitmap, cliprect, 0, 0); } } - if (layers_ctrl & 2) m_layers[1].tmap->draw(bitmap, cliprect, 0, 0); + if (layers_ctrl & 2) m_layers[1].tmap->draw(screen, bitmap, cliprect, 0, 0); // popmessage("scrl: %03x,%03x - %03x,%03x dis: %02x siz: %02x ctrl: %02x", m_layers[0].scroll_x,m_layers[0].scroll_y, m_layers[1].scroll_x,m_layers[1].scroll_y, m_ss9601_disable, m_ss9601_tilesize, m_ss9601_scrollctrl); diff --git a/src/mame/drivers/supercrd.c b/src/mame/drivers/supercrd.c index ab70d8493f9..52f3f870ac8 100644 --- a/src/mame/drivers/supercrd.c +++ b/src/mame/drivers/supercrd.c @@ -270,7 +270,7 @@ VIDEO_START_MEMBER(supercrd_state, supercrd) UINT32 supercrd_state::screen_update_supercrd(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect) { - m_bg_tilemap->draw(bitmap, cliprect, 0, 0); + m_bg_tilemap->draw(screen, bitmap, cliprect, 0, 0); return 0; } diff --git a/src/mame/drivers/superdq.c b/src/mame/drivers/superdq.c index 77ec3bfacf7..2cdb986f9e2 100644 --- a/src/mame/drivers/superdq.c +++ b/src/mame/drivers/superdq.c @@ -71,7 +71,7 @@ void superdq_state::video_start() UINT32 superdq_state::screen_update_superdq(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect) { - m_tilemap->draw(bitmap, cliprect, 0, 0); + m_tilemap->draw(screen, bitmap, cliprect, 0, 0); return 0; } diff --git a/src/mame/drivers/superwng.c b/src/mame/drivers/superwng.c index 0036a7c6ba4..8911cdd765e 100644 --- a/src/mame/drivers/superwng.c +++ b/src/mame/drivers/superwng.c @@ -117,18 +117,18 @@ void superwng_state::video_start() UINT32 superwng_state::screen_update_superwng(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect) { - m_bg_tilemap->draw(bitmap, cliprect, 0, 0); + m_bg_tilemap->draw(screen, bitmap, cliprect, 0, 0); rectangle tmp = cliprect; if (flip_screen()) { tmp.min_x += 32; - m_fg_tilemap->draw(bitmap, tmp, 0, 0); + m_fg_tilemap->draw(screen, bitmap, tmp, 0, 0); } else { tmp.max_x -= 32; - m_fg_tilemap->draw(bitmap, tmp, 0, 0); + m_fg_tilemap->draw(screen, bitmap, tmp, 0, 0); } //sprites diff --git a/src/mame/drivers/suprgolf.c b/src/mame/drivers/suprgolf.c index 2f0d271a885..2cb3b5e3bcb 100644 --- a/src/mame/drivers/suprgolf.c +++ b/src/mame/drivers/suprgolf.c @@ -139,7 +139,7 @@ UINT32 suprgolf_state::screen_update_suprgolf(screen_device &screen, bitmap_ind1 } } - m_tilemap->draw(bitmap, cliprect, 0,0); + m_tilemap->draw(screen, bitmap, cliprect, 0,0); return 0; } diff --git a/src/mame/drivers/tasman.c b/src/mame/drivers/tasman.c index 9887c8d56dc..67d3368973b 100644 --- a/src/mame/drivers/tasman.c +++ b/src/mame/drivers/tasman.c @@ -93,12 +93,12 @@ UINT32 kongambl_state::screen_update_kongambl(screen_device &screen, bitmap_ind1 #else bitmap.fill(0, cliprect); - machine().priority_bitmap.fill(0, cliprect); + screen.priority().fill(0, cliprect); - m_k056832->tilemap_draw(bitmap, cliprect, 3, 0, 0); - m_k056832->tilemap_draw(bitmap, cliprect, 2, 0, 0); - m_k056832->tilemap_draw(bitmap, cliprect, 1, 0, 0); - m_k056832->tilemap_draw(bitmap, cliprect, 0, 0, 0); + m_k056832->tilemap_draw(screen, bitmap, cliprect, 3, 0, 0); + m_k056832->tilemap_draw(screen, bitmap, cliprect, 2, 0, 0); + m_k056832->tilemap_draw(screen, bitmap, cliprect, 1, 0, 0); + m_k056832->tilemap_draw(screen, bitmap, cliprect, 0, 0, 0); #endif return 0; } diff --git a/src/mame/drivers/tattack.c b/src/mame/drivers/tattack.c index c4520f6a42c..0f95e1e5590 100644 --- a/src/mame/drivers/tattack.c +++ b/src/mame/drivers/tattack.c @@ -64,7 +64,7 @@ TILE_GET_INFO_MEMBER(tattack_state::get_tile_info) UINT32 tattack_state::screen_update_tattack(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect) { m_tmap->mark_all_dirty(); - m_tmap->draw(bitmap, cliprect, 0,0); + m_tmap->draw(screen, bitmap, cliprect, 0,0); return 0; } diff --git a/src/mame/drivers/tmspoker.c b/src/mame/drivers/tmspoker.c index 666a3c96a06..5cc9de48bf6 100644 --- a/src/mame/drivers/tmspoker.c +++ b/src/mame/drivers/tmspoker.c @@ -270,7 +270,7 @@ void tmspoker_state::video_start() UINT32 tmspoker_state::screen_update_tmspoker(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect) { - m_bg_tilemap->draw(bitmap, cliprect, 0, 0); + m_bg_tilemap->draw(screen, bitmap, cliprect, 0, 0); return 0; } diff --git a/src/mame/drivers/umipoker.c b/src/mame/drivers/umipoker.c index 678e7a2bcc5..56658f167ff 100644 --- a/src/mame/drivers/umipoker.c +++ b/src/mame/drivers/umipoker.c @@ -143,10 +143,10 @@ UINT32 umipoker_state::screen_update_umipoker(screen_device &screen, bitmap_ind1 bitmap.fill(get_black_pen(machine()), cliprect); - m_tilemap_0->draw(bitmap, cliprect, 0,0); - m_tilemap_1->draw(bitmap, cliprect, 0,0); - m_tilemap_2->draw(bitmap, cliprect, 0,0); - m_tilemap_3->draw(bitmap, cliprect, 0,0); + m_tilemap_0->draw(screen, bitmap, cliprect, 0,0); + m_tilemap_1->draw(screen, bitmap, cliprect, 0,0); + m_tilemap_2->draw(screen, bitmap, cliprect, 0,0); + m_tilemap_3->draw(screen, bitmap, cliprect, 0,0); return 0; } diff --git a/src/mame/drivers/videopkr.c b/src/mame/drivers/videopkr.c index d217404d7b6..964cc8fbba4 100644 --- a/src/mame/drivers/videopkr.c +++ b/src/mame/drivers/videopkr.c @@ -531,7 +531,7 @@ VIDEO_START_MEMBER(videopkr_state,vidadcba) UINT32 videopkr_state::screen_update_videopkr(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect) { m_bg_tilemap->mark_all_dirty(); - m_bg_tilemap->draw(bitmap, cliprect, 0, 0); + m_bg_tilemap->draw(screen, bitmap, cliprect, 0, 0); return 0; } diff --git a/src/mame/drivers/vlc.c b/src/mame/drivers/vlc.c index 36f77e33024..5e141b2f13a 100644 --- a/src/mame/drivers/vlc.c +++ b/src/mame/drivers/vlc.c @@ -304,7 +304,7 @@ UINT32 nevada_state::screen_update_nevada(screen_device &screen, bitmap_ind16 &b { // Todo /* - m_bg_tilemap->draw(bitmap, cliprect, 0, 0); + m_bg_tilemap->draw(screen, bitmap, cliprect, 0, 0); */ return 0; } diff --git a/src/mame/drivers/vroulet.c b/src/mame/drivers/vroulet.c index 7c48176c05b..69e86782a10 100644 --- a/src/mame/drivers/vroulet.c +++ b/src/mame/drivers/vroulet.c @@ -120,7 +120,7 @@ void vroulet_state::video_start() UINT32 vroulet_state::screen_update_vroulet(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect) { - m_bg_tilemap->draw(bitmap, cliprect, 0, 0); + m_bg_tilemap->draw(screen, bitmap, cliprect, 0, 0); drawgfx_transpen(bitmap, cliprect, machine().gfx[0], 0x320, 1, 0, 0, m_ball[1], m_ball[0] - 12, 0); return 0; diff --git a/src/mame/drivers/wallc.c b/src/mame/drivers/wallc.c index 8b9684a4d77..e28ae68fd10 100644 --- a/src/mame/drivers/wallc.c +++ b/src/mame/drivers/wallc.c @@ -158,7 +158,7 @@ void wallc_state::video_start() UINT32 wallc_state::screen_update_wallc(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect) { - m_bg_tilemap->draw(bitmap, cliprect, 0, 0); + m_bg_tilemap->draw(screen, bitmap, cliprect, 0, 0); return 0; } diff --git a/src/mame/drivers/warpsped.c b/src/mame/drivers/warpsped.c index b9887c393ff..59839bc7a2e 100644 --- a/src/mame/drivers/warpsped.c +++ b/src/mame/drivers/warpsped.c @@ -211,9 +211,9 @@ static void warpspeed_draw_circles(bitmap_ind16 &bitmap, warpspeed_state *state) UINT32 warpspeed_state::screen_update_warpspeed(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect) { - m_starfield_tilemap->draw(bitmap, cliprect, 0, 0); + m_starfield_tilemap->draw(screen, bitmap, cliprect, 0, 0); warpspeed_draw_circles(bitmap, this); - m_text_tilemap->draw(bitmap, cliprect, 0, 0); + m_text_tilemap->draw(screen, bitmap, cliprect, 0, 0); return 0; } diff --git a/src/mame/drivers/warriorb.c b/src/mame/drivers/warriorb.c index bc8747a42b6..67a6b66d25d 100644 --- a/src/mame/drivers/warriorb.c +++ b/src/mame/drivers/warriorb.c @@ -539,9 +539,7 @@ static MACHINE_CONFIG_START( darius2d, warriorb_state ) MCFG_TC0100SCN_ADD("tc0100scn_1", darius2d_tc0100scn_intf_l) - MCFG_TC0100SCN_SET_SCREEN("lscreen") MCFG_TC0100SCN_ADD("tc0100scn_2", darius2d_tc0100scn_intf_r) - MCFG_TC0100SCN_SET_SCREEN("rscreen") MCFG_TC0110PCR_ADD("tc0110pcr_1", darius2d_tc0110pcr_intf_l) MCFG_TC0110PCR_ADD("tc0110pcr_2", darius2d_tc0110pcr_intf_r) @@ -604,9 +602,7 @@ static MACHINE_CONFIG_START( warriorb, warriorb_state ) MCFG_TC0100SCN_ADD("tc0100scn_1", warriorb_tc0100scn_intf_l) - MCFG_TC0100SCN_SET_SCREEN("lscreen") MCFG_TC0100SCN_ADD("tc0100scn_2", warriorb_tc0100scn_intf_r) - MCFG_TC0100SCN_SET_SCREEN("rscreen") MCFG_TC0110PCR_ADD("tc0110pcr_1", darius2d_tc0110pcr_intf_l) MCFG_TC0110PCR_ADD("tc0110pcr_2", darius2d_tc0110pcr_intf_r) diff --git a/src/mame/drivers/wink.c b/src/mame/drivers/wink.c index 42fa84db4e7..115ea580e15 100644 --- a/src/mame/drivers/wink.c +++ b/src/mame/drivers/wink.c @@ -73,7 +73,7 @@ void wink_state::video_start() UINT32 wink_state::screen_update_wink(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect) { - m_bg_tilemap->draw(bitmap, cliprect, 0, 0); + m_bg_tilemap->draw(screen, bitmap, cliprect, 0, 0); return 0; } diff --git a/src/mame/drivers/witch.c b/src/mame/drivers/witch.c index 4055e430a94..d86107abaa8 100644 --- a/src/mame/drivers/witch.c +++ b/src/mame/drivers/witch.c @@ -808,10 +808,10 @@ UINT32 witch_state::screen_update_witch(screen_device &screen, bitmap_ind16 &bit - m_gfx1_tilemap->draw(bitmap, cliprect, 0,0); - m_gfx0a_tilemap->draw(bitmap, cliprect, 0,0); + m_gfx1_tilemap->draw(screen, bitmap, cliprect, 0,0); + m_gfx0a_tilemap->draw(screen, bitmap, cliprect, 0,0); draw_sprites(bitmap, cliprect); - m_gfx0b_tilemap->draw(bitmap, cliprect, 0,0); + m_gfx0b_tilemap->draw(screen, bitmap, cliprect, 0,0); return 0; } diff --git a/src/mame/drivers/zr107.c b/src/mame/drivers/zr107.c index 14dc056c824..4ee4fedff78 100644 --- a/src/mame/drivers/zr107.c +++ b/src/mame/drivers/zr107.c @@ -252,7 +252,7 @@ UINT32 zr107_state::screen_update_jetwave(screen_device &screen, bitmap_rgb32 &b K001005_draw(bitmap, cliprect); - m_k001604->draw_front_layer(bitmap, cliprect); + m_k001604->draw_front_layer(screen, bitmap, cliprect); draw_7segment_led(bitmap, 3, 3, m_led_reg0); draw_7segment_led(bitmap, 9, 3, m_led_reg1); @@ -298,9 +298,9 @@ UINT32 zr107_state::screen_update_zr107(screen_device &screen, bitmap_rgb32 &bit { bitmap.fill(machine().pens[0], cliprect); - m_k056832->tilemap_draw(bitmap, cliprect, 1, 0, 0); + m_k056832->tilemap_draw(screen, bitmap, cliprect, 1, 0, 0); K001005_draw(bitmap, cliprect); - m_k056832->tilemap_draw(bitmap, cliprect, 0, 0, 0); + m_k056832->tilemap_draw(screen, bitmap, cliprect, 0, 0, 0); draw_7segment_led(bitmap, 3, 3, m_led_reg0); draw_7segment_led(bitmap, 9, 3, m_led_reg1); diff --git a/src/mame/includes/aerofgt.h b/src/mame/includes/aerofgt.h index 5236b674ddc..c07c7ccde72 100644 --- a/src/mame/includes/aerofgt.h +++ b/src/mame/includes/aerofgt.h @@ -116,10 +116,10 @@ public: UINT32 screen_update_wbbc97(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect); void aerofgt_register_state_globals( ); void setbank( tilemap_t *tmap, int num, int bank ); - void aerfboo2_draw_sprites( bitmap_ind16 &bitmap, const rectangle &cliprect, int chip, int chip_disabled_pri ); - void pspikesb_draw_sprites( bitmap_ind16 &bitmap, const rectangle &cliprect ); - void spikes91_draw_sprites( bitmap_ind16 &bitmap, const rectangle &cliprect ); - void aerfboot_draw_sprites( bitmap_ind16 &bitmap, const rectangle &cliprect ); + void aerfboo2_draw_sprites( screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect, int chip, int chip_disabled_pri ); + void pspikesb_draw_sprites( screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect ); + void spikes91_draw_sprites( screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect ); + void aerfboot_draw_sprites( screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect ); void wbbc97_draw_bitmap( bitmap_rgb32 &bitmap ); DECLARE_WRITE_LINE_MEMBER(irqhandler); required_device m_maincpu; diff --git a/src/mame/includes/blmbycar.h b/src/mame/includes/blmbycar.h index fb22aed7212..584b845c362 100644 --- a/src/mame/includes/blmbycar.h +++ b/src/mame/includes/blmbycar.h @@ -51,6 +51,6 @@ public: DECLARE_MACHINE_START(watrball); DECLARE_MACHINE_RESET(watrball); UINT32 screen_update_blmbycar(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); - void draw_sprites( bitmap_ind16 &bitmap, const rectangle &cliprect ); + void draw_sprites( screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect ); required_device m_maincpu; }; diff --git a/src/mame/includes/bloodbro.h b/src/mame/includes/bloodbro.h index ba7d3c84cd1..3e0fd9e411e 100644 --- a/src/mame/includes/bloodbro.h +++ b/src/mame/includes/bloodbro.h @@ -32,7 +32,7 @@ public: UINT32 screen_update_bloodbro(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); UINT32 screen_update_weststry(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); UINT32 screen_update_skysmash(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); - void bloodbro_draw_sprites(bitmap_ind16 &bitmap, const rectangle &cliprect); - void weststry_draw_sprites(bitmap_ind16 &bitmap, const rectangle &cliprect); + void bloodbro_draw_sprites(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); + void weststry_draw_sprites(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); required_device m_maincpu; }; diff --git a/src/mame/includes/boogwing.h b/src/mame/includes/boogwing.h index 6719827526e..601c92f7ea7 100644 --- a/src/mame/includes/boogwing.h +++ b/src/mame/includes/boogwing.h @@ -58,7 +58,7 @@ public: DECLARE_DRIVER_INIT(boogwing); virtual void video_start(); UINT32 screen_update_boogwing(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect); - void mix_boogwing(bitmap_rgb32 &bitmap, const rectangle &cliprect); + void mix_boogwing(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect); DECLARE_READ16_MEMBER( boogwing_protection_region_0_104_r ); DECLARE_WRITE16_MEMBER( boogwing_protection_region_0_104_w ); diff --git a/src/mame/includes/cave.h b/src/mame/includes/cave.h index 74d28b36fbe..1b202b9f34b 100644 --- a/src/mame/includes/cave.h +++ b/src/mame/includes/cave.h @@ -219,4 +219,5 @@ public: private: inline void get_tile_info( tile_data &tileinfo, int tile_index, int GFX ); + inline void tilemap_draw( screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect, UINT32 flags, UINT32 priority, UINT32 priority2, int GFX ); }; diff --git a/src/mame/includes/cclimber.h b/src/mame/includes/cclimber.h index 4fcdeaf4538..fe9584706f0 100644 --- a/src/mame/includes/cclimber.h +++ b/src/mame/includes/cclimber.h @@ -75,9 +75,9 @@ public: UINT32 screen_update_toprollr(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); INTERRUPT_GEN_MEMBER(vblank_irq); void swimmer_set_background_pen(); - void draw_playfield(bitmap_ind16 &bitmap, const rectangle &cliprect); - void cclimber_draw_bigsprite(bitmap_ind16 &bitmap, const rectangle &cliprect); - void toprollr_draw_bigsprite(bitmap_ind16 &bitmap, const rectangle &cliprect); + void draw_playfield(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); + void cclimber_draw_bigsprite(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); + void toprollr_draw_bigsprite(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); void cclimber_draw_sprites(bitmap_ind16 &bitmap, const rectangle &cliprect, gfx_element *gfx); void toprollr_draw_sprites(bitmap_ind16 &bitmap, const rectangle &cliprect, gfx_element *gfx); void swimmer_draw_sprites(bitmap_ind16 &bitmap, const rectangle &cliprect, gfx_element *gfx); diff --git a/src/mame/includes/cninja.h b/src/mame/includes/cninja.h index 94fdffe3050..8484047ad3c 100644 --- a/src/mame/includes/cninja.h +++ b/src/mame/includes/cninja.h @@ -84,7 +84,7 @@ public: UINT32 screen_update_robocop2(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); UINT32 screen_update_mutantf(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect); TIMER_DEVICE_CALLBACK_MEMBER(interrupt_gen); - void cninjabl_draw_sprites( bitmap_ind16 &bitmap, const rectangle &cliprect ); + void cninjabl_draw_sprites( screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect ); DECLARE_READ16_MEMBER( sshangha_protection_region_6_146_r ); DECLARE_WRITE16_MEMBER( sshangha_protection_region_6_146_w ); diff --git a/src/mame/includes/combatsc.h b/src/mame/includes/combatsc.h index 20ff48338a2..eb76d43d675 100644 --- a/src/mame/includes/combatsc.h +++ b/src/mame/includes/combatsc.h @@ -94,6 +94,6 @@ public: UINT32 screen_update_combatsc(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); UINT32 screen_update_combatscb(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); void set_pens( ); - void draw_sprites( bitmap_ind16 &bitmap, const rectangle &cliprect, const UINT8 *source, int circuit, UINT32 pri_mask ); + void draw_sprites( bitmap_ind16 &bitmap, const rectangle &cliprect, const UINT8 *source, int circuit, bitmap_ind8 &priority_bitmap, UINT32 pri_mask ); void bootleg_draw_sprites( bitmap_ind16 &bitmap, const rectangle &cliprect, const UINT8 *source, int circuit ); }; diff --git a/src/mame/includes/contra.h b/src/mame/includes/contra.h index c1648a39eab..bc7e83a01f0 100644 --- a/src/mame/includes/contra.h +++ b/src/mame/includes/contra.h @@ -69,6 +69,6 @@ public: UINT32 screen_update_contra(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); INTERRUPT_GEN_MEMBER(contra_interrupt); void set_pens( ); - void draw_sprites(bitmap_ind16 &bitmap, const rectangle &cliprect, int bank ); + void draw_sprites(bitmap_ind16 &bitmap, const rectangle &cliprect, bitmap_ind8 &priority_bitmap, int bank ); required_device m_maincpu; }; diff --git a/src/mame/includes/cps1.h b/src/mame/includes/cps1.h index 41995d5784e..45b1ff4ccda 100644 --- a/src/mame/includes/cps1.h +++ b/src/mame/includes/cps1.h @@ -296,9 +296,9 @@ public: DECLARE_WRITE8_MEMBER(fcrash_msm5205_1_data_w); UINT32 screen_update_fcrash(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); void fcrash_update_transmasks(); - void fcrash_render_sprites(bitmap_ind16 &bitmap, const rectangle &cliprect); - void fcrash_render_layer(bitmap_ind16 &bitmap, const rectangle &cliprect, int layer, int primask); - void fcrash_render_high_layer(bitmap_ind16 &bitmap, const rectangle &cliprect, int layer); + void fcrash_render_sprites(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); + void fcrash_render_layer(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect, int layer, int primask); + void fcrash_render_high_layer(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect, int layer); void fcrash_build_palette(); @@ -311,12 +311,12 @@ public: void cps1_update_transmasks(); void cps1_build_palette(const UINT16* const palette_base); void cps1_find_last_sprite(); - void cps1_render_sprites(bitmap_ind16 &bitmap, const rectangle &cliprect); + void cps1_render_sprites(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); void cps2_find_last_sprite(); - void cps2_render_sprites(bitmap_ind16 &bitmap, const rectangle &cliprect, int *primasks); + void cps2_render_sprites(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect, int *primasks); void cps1_render_stars(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); - void cps1_render_layer(bitmap_ind16 &bitmap, const rectangle &cliprect, int layer, int primask); - void cps1_render_high_layer(bitmap_ind16 &bitmap, const rectangle &cliprect, int layer); + void cps1_render_layer(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect, int layer, int primask); + void cps1_render_high_layer(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect, int layer); void cps2_set_sprite_priorities(); void cps2_objram_latch(); UINT16 *cps2_objbase(); diff --git a/src/mame/includes/crshrace.h b/src/mame/includes/crshrace.h index 6c24f7fd4c3..c94145f0fbe 100644 --- a/src/mame/includes/crshrace.h +++ b/src/mame/includes/crshrace.h @@ -59,8 +59,8 @@ public: virtual void video_start(); UINT32 screen_update_crshrace(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); void screen_eof_crshrace(screen_device &screen, bool state); - void draw_bg( bitmap_ind16 &bitmap, const rectangle &cliprect ); - void draw_fg(bitmap_ind16 &bitmap, const rectangle &cliprect); + void draw_bg( screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect ); + void draw_fg(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); void crshrace_patch_code( UINT16 offset ); DECLARE_WRITE_LINE_MEMBER(irqhandler); required_device m_maincpu; diff --git a/src/mame/includes/dcon.h b/src/mame/includes/dcon.h index 34005339990..d24ece1ff9a 100644 --- a/src/mame/includes/dcon.h +++ b/src/mame/includes/dcon.h @@ -40,6 +40,6 @@ public: virtual void video_start(); UINT32 screen_update_dcon(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); UINT32 screen_update_sdgndmps(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); - void draw_sprites( bitmap_ind16 &bitmap,const rectangle &cliprect); + void draw_sprites( screen_device &screen, bitmap_ind16 &bitmap,const rectangle &cliprect); required_device m_maincpu; }; diff --git a/src/mame/includes/deadang.h b/src/mame/includes/deadang.h index b0bdc0ab122..ea0aa3ca3f1 100644 --- a/src/mame/includes/deadang.h +++ b/src/mame/includes/deadang.h @@ -37,7 +37,7 @@ public: UINT32 screen_update_deadang(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); TIMER_DEVICE_CALLBACK_MEMBER(deadang_main_scanline); TIMER_DEVICE_CALLBACK_MEMBER(deadang_sub_scanline); - void draw_sprites(bitmap_ind16 &bitmap, const rectangle &cliprect); + void draw_sprites(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); required_device m_maincpu; required_device m_subcpu; }; diff --git a/src/mame/includes/deco32.h b/src/mame/includes/deco32.h index 13a5ecdf5b9..af8e9295b66 100644 --- a/src/mame/includes/deco32.h +++ b/src/mame/includes/deco32.h @@ -144,7 +144,7 @@ public: TIMER_DEVICE_CALLBACK_MEMBER(interrupt_gen); TIMER_DEVICE_CALLBACK_MEMBER(lockload_vbl_irq); void updateAceRam(); - void mixDualAlphaSprites(bitmap_rgb32 &bitmap, const rectangle &cliprect, gfx_element *gfx0, gfx_element *gfx1, int mixAlphaTilemap); + void mixDualAlphaSprites(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect, gfx_element *gfx0, gfx_element *gfx1, int mixAlphaTilemap); UINT16 port_a_fghthist(int unused); UINT16 port_b_fghthist(int unused); diff --git a/src/mame/includes/deniam.h b/src/mame/includes/deniam.h index 6dad11d6d78..21d46c60a3a 100644 --- a/src/mame/includes/deniam.h +++ b/src/mame/includes/deniam.h @@ -64,7 +64,7 @@ public: virtual void video_start(); UINT32 screen_update_deniam(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); void deniam_common_init( ); - void draw_sprites( bitmap_ind16 &bitmap, const rectangle &cliprect ); + void draw_sprites( screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect ); void set_bg_page( int page, int value ); void set_fg_page( int page, int value ); DECLARE_WRITE_LINE_MEMBER(irqhandler); diff --git a/src/mame/includes/docastle.h b/src/mame/includes/docastle.h index 244f969dc92..e69b129d654 100644 --- a/src/mame/includes/docastle.h +++ b/src/mame/includes/docastle.h @@ -54,6 +54,6 @@ public: DECLARE_VIDEO_START(dorunrun); UINT32 screen_update_docastle(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); void video_start_common( UINT32 tile_transmask ); - void draw_sprites( bitmap_ind16 &bitmap, const rectangle &cliprect ); + void draw_sprites( screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect ); DECLARE_WRITE_LINE_MEMBER(idsoccer_adpcm_int); }; diff --git a/src/mame/includes/dooyong.h b/src/mame/includes/dooyong.h index 5ec78a536ab..d792438b3b1 100644 --- a/src/mame/includes/dooyong.h +++ b/src/mame/includes/dooyong.h @@ -93,8 +93,8 @@ public: UINT32 screen_update_popbingo(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); TIMER_DEVICE_CALLBACK_MEMBER(rshark_scanline); inline void dooyong_scroll8_w(offs_t offset, UINT8 data, UINT8 *scroll, tilemap_t *map); - void draw_sprites(bitmap_ind16 &bitmap, const rectangle &cliprect, int pollux_extensions); - void rshark_draw_sprites(bitmap_ind16 &bitmap, const rectangle &cliprect); + void draw_sprites(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect, int pollux_extensions); + void rshark_draw_sprites(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); DECLARE_WRITE_LINE_MEMBER(irqhandler_2203_1); DECLARE_WRITE_LINE_MEMBER(irqhandler_2203_2); required_device m_maincpu; diff --git a/src/mame/includes/f1gp.h b/src/mame/includes/f1gp.h index 7aebc5e1151..ea9f74802f1 100644 --- a/src/mame/includes/f1gp.h +++ b/src/mame/includes/f1gp.h @@ -95,7 +95,7 @@ public: UINT32 screen_update_f1gp(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); UINT32 screen_update_f1gpb(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); UINT32 screen_update_f1gp2(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); - void f1gpb_draw_sprites( bitmap_ind16 &bitmap,const rectangle &cliprect ); + void f1gpb_draw_sprites( screen_device &screen, bitmap_ind16 &bitmap,const rectangle &cliprect ); DECLARE_WRITE_LINE_MEMBER(irqhandler); required_device m_maincpu; }; diff --git a/src/mame/includes/fuukifg2.h b/src/mame/includes/fuukifg2.h index 23fdc5e99ea..be282fde655 100644 --- a/src/mame/includes/fuukifg2.h +++ b/src/mame/includes/fuukifg2.h @@ -57,7 +57,7 @@ public: inline void get_tile_info(tile_data &tileinfo, tilemap_memory_index tile_index, int _N_); inline void fuuki16_vram_w(offs_t offset, UINT16 data, UINT16 mem_mask, int _N_); void draw_sprites( screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect ); - void fuuki16_draw_layer( bitmap_ind16 &bitmap, const rectangle &cliprect, int i, int flag, int pri ); + void fuuki16_draw_layer( screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect, int i, int flag, int pri ); DECLARE_WRITE_LINE_MEMBER(soundirq); required_device m_oki; diff --git a/src/mame/includes/fuukifg3.h b/src/mame/includes/fuukifg3.h index 2dbbbbf46ef..629baaaaa7d 100644 --- a/src/mame/includes/fuukifg3.h +++ b/src/mame/includes/fuukifg3.h @@ -79,7 +79,7 @@ public: inline void get_tile_info4bpp(tile_data &tileinfo, tilemap_memory_index tile_index, int _N_); inline void fuuki32_vram_w(offs_t offset, UINT32 data, UINT32 mem_mask, int _N_); void draw_sprites( screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect ); - void fuuki32_draw_layer( bitmap_ind16 &bitmap, const rectangle &cliprect, int i, int flag, int pri ); + void fuuki32_draw_layer( screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect, int i, int flag, int pri ); DECLARE_WRITE_LINE_MEMBER(irqhandler); protected: diff --git a/src/mame/includes/gaelco.h b/src/mame/includes/gaelco.h index 1ea824e4881..2db7637d02a 100644 --- a/src/mame/includes/gaelco.h +++ b/src/mame/includes/gaelco.h @@ -43,6 +43,6 @@ public: DECLARE_VIDEO_START(maniacsq); UINT32 screen_update_bigkarnk(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); UINT32 screen_update_maniacsq(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); - void draw_sprites( bitmap_ind16 &bitmap, const rectangle &cliprect ); + void draw_sprites( screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect ); required_device m_maincpu; }; diff --git a/src/mame/includes/gaiden.h b/src/mame/includes/gaiden.h index b0437842b05..a05cbaafa63 100644 --- a/src/mame/includes/gaiden.h +++ b/src/mame/includes/gaiden.h @@ -90,7 +90,7 @@ public: UINT32 screen_update_gaiden(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect); UINT32 screen_update_drgnbowl(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); UINT32 screen_update_raiga(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect); - void drgnbowl_draw_sprites(bitmap_ind16 &bitmap, const rectangle &cliprect); + void drgnbowl_draw_sprites(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); void descramble_drgnbowl_gfx(); void descramble_mastninj_gfx(UINT8* src); void blendbitmaps(bitmap_rgb32 &dest,bitmap_ind16 &src1,bitmap_ind16 &src2,bitmap_ind16 &src3, diff --git a/src/mame/includes/galastrm.h b/src/mame/includes/galastrm.h index ac98b588643..680f95b023d 100644 --- a/src/mame/includes/galastrm.h +++ b/src/mame/includes/galastrm.h @@ -67,7 +67,7 @@ public: INTERRUPT_GEN_MEMBER(galastrm_interrupt); void galastrm_exit(); void draw_sprites_pre(int x_offs, int y_offs); - void draw_sprites(bitmap_ind16 &bitmap, const rectangle &cliprect, const int *primasks, int priority); + void draw_sprites(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect, const int *primasks, int priority); void tc0610_rotate_draw(bitmap_ind16 &bitmap, bitmap_ind16 &srcbitmap, const rectangle &clip); protected: diff --git a/src/mame/includes/galaxold.h b/src/mame/includes/galaxold.h index 8f4c2b9774e..7e6a32729a9 100644 --- a/src/mame/includes/galaxold.h +++ b/src/mame/includes/galaxold.h @@ -68,7 +68,7 @@ public: UINT8 m_background_red; UINT8 m_background_green; UINT8 m_background_blue; - void (galaxold_state::*m_draw_background)(bitmap_ind16 &bitmap, const rectangle &cliprect); /* function to call to draw the background */ + void (galaxold_state::*m_draw_background)(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); /* function to call to draw the background */ UINT16 m_rockclim_v; UINT16 m_rockclim_h; int m_dambustr_bg_split_line; @@ -201,7 +201,7 @@ public: void theend_draw_bullets(bitmap_ind16 &bitmap, const rectangle &cliprect, int offs, int x, int y); void mooncrst_modify_spritecode(UINT8 *spriteram, int *code, int *flipx, int *flipy, int offs); void batman2_modify_charcode(UINT16 *code, UINT8 x); - void rockclim_draw_background(bitmap_ind16 &bitmap, const rectangle &cliprect); + void rockclim_draw_background(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); void rockclim_modify_spritecode(UINT8 *spriteram, int *code, int *flipx, int *flipy, int offs); void harem_modify_spritecode(UINT8 *spriteram, int *code, int *flipx, int *flipy, int offs); void mooncrst_modify_charcode(UINT16 *code, UINT8 x); @@ -220,14 +220,14 @@ public: void scrambold_draw_bullets(bitmap_ind16 &bitmap, const rectangle &cliprect, int offs, int x, int y); void darkplnt_draw_bullets(bitmap_ind16 &bitmap, const rectangle &cliprect, int offs, int x, int y); void dambustr_draw_bullets(bitmap_ind16 &bitmap, const rectangle &cliprect, int offs, int x, int y); - void galaxold_draw_background(bitmap_ind16 &bitmap, const rectangle &cliprect); - void scrambold_draw_background(bitmap_ind16 &bitmap, const rectangle &cliprect); - void ad2083_draw_background(bitmap_ind16 &bitmap, const rectangle &cliprect); - void stratgyx_draw_background(bitmap_ind16 &bitmap, const rectangle &cliprect); - void minefld_draw_background(bitmap_ind16 &bitmap, const rectangle &cliprect); - void rescue_draw_background(bitmap_ind16 &bitmap, const rectangle &cliprect); - void mariner_draw_background(bitmap_ind16 &bitmap, const rectangle &cliprect); - void dambustr_draw_background(bitmap_ind16 &bitmap, const rectangle &cliprect); + void galaxold_draw_background(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); + void scrambold_draw_background(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); + void ad2083_draw_background(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); + void stratgyx_draw_background(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); + void minefld_draw_background(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); + void rescue_draw_background(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); + void mariner_draw_background(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); + void dambustr_draw_background(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); void dambustr_draw_upper_background(bitmap_ind16 &bitmap, const rectangle &cliprect); void galaxold_init_stars(int colors_offset); void plot_star(bitmap_ind16 &bitmap, int x, int y, int color, const rectangle &cliprect); diff --git a/src/mame/includes/gcpinbal.h b/src/mame/includes/gcpinbal.h index cd64885133d..cf9c03137c0 100644 --- a/src/mame/includes/gcpinbal.h +++ b/src/mame/includes/gcpinbal.h @@ -67,7 +67,7 @@ public: UINT32 screen_update_gcpinbal(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); INTERRUPT_GEN_MEMBER(gcpinbal_interrupt); void gcpinbal_core_vh_start( ); - void draw_sprites( bitmap_ind16 &bitmap, const rectangle &cliprect, int y_offs ); + void draw_sprites( screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect, int y_offs ); DECLARE_WRITE_LINE_MEMBER(gcp_adpcm_int); protected: diff --git a/src/mame/includes/groundfx.h b/src/mame/includes/groundfx.h index 1ba4e89de55..f467fbe0ff0 100644 --- a/src/mame/includes/groundfx.h +++ b/src/mame/includes/groundfx.h @@ -54,7 +54,7 @@ public: virtual void video_start(); UINT32 screen_update_groundfx(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); INTERRUPT_GEN_MEMBER(groundfx_interrupt); - void draw_sprites(bitmap_ind16 &bitmap,const rectangle &cliprect,int do_hack,int x_offs,int y_offs); + void draw_sprites(screen_device &screen, bitmap_ind16 &bitmap,const rectangle &cliprect,int do_hack,int x_offs,int y_offs); protected: diff --git a/src/mame/includes/gstriker.h b/src/mame/includes/gstriker.h index 567ca58a722..cf5ae3c624c 100644 --- a/src/mame/includes/gstriker.h +++ b/src/mame/includes/gstriker.h @@ -104,11 +104,11 @@ public: tilemap_t* VS920A_get_tilemap(int numchip); void VS920A_set_pal_base(int numchip, int pal_base); void VS920A_set_gfx_region(int numchip, int gfx_region); - void VS920A_draw(int numchip, bitmap_ind16& screen, const rectangle &cliprect, int priority); + void VS920A_draw(int numchip, screen_device &screen, bitmap_ind16& bitmap, const rectangle &cliprect, int priority); void MB60553_init(int numchips); void MB60553_set_pal_base(int numchip, int pal_base); void MB60553_set_gfx_region(int numchip, int gfx_region); - void MB60553_draw(int numchip, bitmap_ind16& screen, const rectangle &cliprect, int priority); + void MB60553_draw(int numchip, screen_device &screen, bitmap_ind16& bitmap, const rectangle &cliprect, int priority); tilemap_t* MB60553_get_tilemap(int numchip); void mcu_init( ); DECLARE_WRITE_LINE_MEMBER(gs_ym2610_irq); diff --git a/src/mame/includes/gunbustr.h b/src/mame/includes/gunbustr.h index 33a0e248562..a29431751d6 100644 --- a/src/mame/includes/gunbustr.h +++ b/src/mame/includes/gunbustr.h @@ -53,7 +53,7 @@ public: virtual void video_start(); UINT32 screen_update_gunbustr(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); INTERRUPT_GEN_MEMBER(gunbustr_interrupt); - void draw_sprites(bitmap_ind16 &bitmap,const rectangle &cliprect,const int *primasks,int x_offs,int y_offs); + void draw_sprites(screen_device &screen, bitmap_ind16 &bitmap,const rectangle &cliprect,const int *primasks,int x_offs,int y_offs); protected: virtual void device_timer(emu_timer &timer, device_timer_id id, int param, void *ptr); diff --git a/src/mame/includes/hcastle.h b/src/mame/includes/hcastle.h index 5ed82c31b75..42379502eee 100644 --- a/src/mame/includes/hcastle.h +++ b/src/mame/includes/hcastle.h @@ -65,7 +65,7 @@ public: virtual void palette_init(); UINT32 screen_update_hcastle(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); void set_pens(); - void draw_sprites(bitmap_ind16 &bitmap, const rectangle &cliprect, UINT8 *sbank, int bank ); + void draw_sprites(bitmap_ind16 &bitmap, const rectangle &cliprect, bitmap_ind8 &priority_bitmap, UINT8 *sbank, int bank ); DECLARE_WRITE_LINE_MEMBER(irqhandler); DECLARE_WRITE8_MEMBER(volume_callback); required_device m_maincpu; diff --git a/src/mame/includes/hyprduel.h b/src/mame/includes/hyprduel.h index cefd03639c6..d53a85ebb87 100644 --- a/src/mame/includes/hyprduel.h +++ b/src/mame/includes/hyprduel.h @@ -103,8 +103,8 @@ public: inline void hyprduel_vram_w( offs_t offset, UINT16 data, UINT16 mem_mask, int layer, UINT16 *vram ); void alloc_empty_tiles( ); void expand_gfx1(hyprduel_state &state); - void draw_sprites( bitmap_ind16 &bitmap, const rectangle &cliprect ); - void draw_layers( bitmap_ind16 &bitmap, const rectangle &cliprect, int pri, int layers_ctrl ); + void draw_sprites( screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect ); + void draw_layers( screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect, int pri, int layers_ctrl ); void dirty_tiles( int layer, UINT16 *vram ); void update_irq_state( ); inline int blt_read( const UINT8 *ROM, const int offs ); diff --git a/src/mame/includes/jackal.h b/src/mame/includes/jackal.h index 91ee4968da6..b2cd485598e 100644 --- a/src/mame/includes/jackal.h +++ b/src/mame/includes/jackal.h @@ -48,7 +48,7 @@ public: INTERRUPT_GEN_MEMBER(jackal_interrupt); void set_pens( ); void jackal_mark_tile_dirty( int offset ); - void draw_background( bitmap_ind16 &bitmap, const rectangle &cliprect ); + void draw_background( screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect ); void draw_sprites_region( bitmap_ind16 &bitmap, const rectangle &cliprect, const UINT8 *sram, int length, int bank ); void draw_sprites( bitmap_ind16 &bitmap, const rectangle &cliprect ); }; diff --git a/src/mame/includes/konamigx.h b/src/mame/includes/konamigx.h index 4b46e11d893..fc896404a27 100644 --- a/src/mame/includes/konamigx.h +++ b/src/mame/includes/konamigx.h @@ -112,8 +112,8 @@ public: void _gxcommoninitnosprites(running_machine &machine); void _gxcommoninit(running_machine &machine); DECLARE_READ32_MEMBER( k_6bpp_rom_long_r ); - void konamigx_mixer (running_machine &machine, bitmap_rgb32 &bitmap, const rectangle &cliprect,tilemap_t *sub1, int sub1flags,tilemap_t *sub2, int sub2flags,int mixerflags, bitmap_ind16 *extra_bitmap, int rushingheroes_hack); - void konamigx_mixer_draw(running_machine &machine, bitmap_rgb32 &bitmap, const rectangle &cliprect, + void konamigx_mixer (screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect,tilemap_t *sub1, int sub1flags,tilemap_t *sub2, int sub2flags,int mixerflags, bitmap_ind16 *extra_bitmap, int rushingheroes_hack); + void konamigx_mixer_draw(screen_device &Screen, bitmap_rgb32 &bitmap, const rectangle &cliprect, tilemap_t *sub1, int sub1flags, tilemap_t *sub2, int sub2flags, int mixerflags, bitmap_ind16 *extra_bitmap, int rushingheroes_hack, @@ -123,16 +123,16 @@ public: ); - void gx_draw_basic_tilemaps(running_machine &machine, bitmap_rgb32 &bitmap, const rectangle &cliprect, int mixerflags, int code); - void gx_draw_basic_extended_tilemaps_1(running_machine &machine, bitmap_rgb32 &bitmap, const rectangle &cliprect, int mixerflags, int code, tilemap_t *sub1, int sub1flags, int rushingheroes_hack, int offs); - void gx_draw_basic_extended_tilemaps_2(running_machine &machine, bitmap_rgb32 &bitmap, const rectangle &cliprect, int mixerflags, int code, tilemap_t *sub2, int sub2flags, bitmap_ind16 *extra_bitmap, int offs); + void gx_draw_basic_tilemaps(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect, int mixerflags, int code); + void gx_draw_basic_extended_tilemaps_1(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect, int mixerflags, int code, tilemap_t *sub1, int sub1flags, int rushingheroes_hack, int offs); + void gx_draw_basic_extended_tilemaps_2(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect, int mixerflags, int code, tilemap_t *sub2, int sub2flags, bitmap_ind16 *extra_bitmap, int offs); void konamigx_esc_alert(UINT32 *srcbase, int srcoffs, int count, int mode); void konamigx_precache_registers(void); void dmastart_callback(int data); - void konamigx_mixer_init(running_machine &machine, int objdma); + void konamigx_mixer_init(screen_device &screen, int objdma); void konamigx_objdma(void); @@ -190,12 +190,12 @@ extern UINT16 konamigx_wrport2; #define GXSUB_5BPP 0x05 // 32 colors #define GXSUB_8BPP 0x08 // 256 colors -void konamigx_mixer(running_machine &machine, bitmap_rgb32 &bitmap, const rectangle &cliprect, +void konamigx_mixer(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect, tilemap_t *sub1, int sub1flags, tilemap_t *sub2, int sub2flags, int mixerflags, bitmap_ind16* extra_bitmap, int rushingheroes_hack); -void konamigx_mixer_init(running_machine &machine, int objdma); +void konamigx_mixer_init(screen_device &screen, int objdma); void konamigx_mixer_primode(int mode); diff --git a/src/mame/includes/legionna.h b/src/mame/includes/legionna.h index 6d0c54e41fb..a786b591250 100644 --- a/src/mame/includes/legionna.h +++ b/src/mame/includes/legionna.h @@ -57,7 +57,7 @@ public: UINT32 screen_update_legionna(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); UINT32 screen_update_godzilla(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); UINT32 screen_update_grainbow(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); - void draw_sprites(bitmap_ind16 &bitmap,const rectangle &cliprect); + void draw_sprites(screen_device &screen, bitmap_ind16 &bitmap,const rectangle &cliprect); void descramble_legionnaire_gfx(UINT8* src); required_device m_maincpu; required_device m_audiocpu; diff --git a/src/mame/includes/lkage.h b/src/mame/includes/lkage.h index 979d58f38df..d685a89890d 100644 --- a/src/mame/includes/lkage.h +++ b/src/mame/includes/lkage.h @@ -87,6 +87,6 @@ public: virtual void video_start(); UINT32 screen_update_lkage(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); TIMER_CALLBACK_MEMBER(nmi_callback); - void draw_sprites( bitmap_ind16 &bitmap, const rectangle &cliprect ); + void draw_sprites( screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect ); DECLARE_WRITE_LINE_MEMBER(irqhandler); }; diff --git a/src/mame/includes/m107.h b/src/mame/includes/m107.h index 5ff571ee6a9..01cc8d844c8 100644 --- a/src/mame/includes/m107.h +++ b/src/mame/includes/m107.h @@ -55,8 +55,8 @@ public: virtual void video_start(); UINT32 screen_update_m107(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); TIMER_DEVICE_CALLBACK_MEMBER(m107_scanline_interrupt); - void draw_sprites(bitmap_ind16 &bitmap, const rectangle &cliprect); + void draw_sprites(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); void m107_update_scroll_positions(); - void m107_tilemap_draw(bitmap_ind16 &bitmap, const rectangle &cliprect, int laynum, int category,int opaque); - void m107_screenrefresh(bitmap_ind16 &bitmap, const rectangle &cliprect); + void m107_tilemap_draw(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect, int laynum, int category,int opaque); + void m107_screenrefresh(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); }; diff --git a/src/mame/includes/m57.h b/src/mame/includes/m57.h index 5666051c32d..c518eaf410f 100644 --- a/src/mame/includes/m57.h +++ b/src/mame/includes/m57.h @@ -22,7 +22,7 @@ public: virtual void video_start(); virtual void palette_init(); UINT32 screen_update_m57(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); - void draw_background(bitmap_ind16 &bitmap, const rectangle &cliprect); + void draw_background(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); void draw_sprites(bitmap_ind16 &bitmap, const rectangle &cliprect); required_device m_maincpu; }; diff --git a/src/mame/includes/m90.h b/src/mame/includes/m90.h index eaaf47ded2d..ed44e3675de 100644 --- a/src/mame/includes/m90.h +++ b/src/mame/includes/m90.h @@ -60,8 +60,8 @@ public: inline void get_tile_info(tile_data &tileinfo,int tile_index,int layer,int page_mask); inline void bomblord_get_tile_info(tile_data &tileinfo,int tile_index,int layer); inline void dynablsb_get_tile_info(tile_data &tileinfo,int tile_index,int layer); - void draw_sprites(bitmap_ind16 &bitmap,const rectangle &cliprect); - void bomblord_draw_sprites(bitmap_ind16 &bitmap,const rectangle &cliprect); - void dynablsb_draw_sprites(bitmap_ind16 &bitmap,const rectangle &cliprect); + void draw_sprites(screen_device &screen, bitmap_ind16 &bitmap,const rectangle &cliprect); + void bomblord_draw_sprites(screen_device &screen, bitmap_ind16 &bitmap,const rectangle &cliprect); + void dynablsb_draw_sprites(screen_device &screen, bitmap_ind16 &bitmap,const rectangle &cliprect); void markdirty(tilemap_t *tmap,int page,offs_t offset); }; diff --git a/src/mame/includes/m92.h b/src/mame/includes/m92.h index de8f2151eb2..fe3ac36c3d0 100644 --- a/src/mame/includes/m92.h +++ b/src/mame/includes/m92.h @@ -85,10 +85,10 @@ public: UINT32 screen_update_m92(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); UINT32 screen_update_ppan(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); TIMER_DEVICE_CALLBACK_MEMBER(m92_scanline_interrupt); - void draw_sprites(bitmap_ind16 &bitmap, const rectangle &cliprect); - void ppan_draw_sprites(bitmap_ind16 &bitmap, const rectangle &cliprect); + void draw_sprites(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); + void ppan_draw_sprites(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); void m92_update_scroll_positions(); - void m92_draw_tiles(bitmap_ind16 &bitmap,const rectangle &cliprect); + void m92_draw_tiles(screen_device &screen, bitmap_ind16 &bitmap,const rectangle &cliprect); void m92_sprite_interrupt(); optional_device m_oki; diff --git a/src/mame/includes/macrossp.h b/src/mame/includes/macrossp.h index d2d1f84b3e3..6126d2ebdfd 100644 --- a/src/mame/includes/macrossp.h +++ b/src/mame/includes/macrossp.h @@ -76,7 +76,7 @@ public: UINT32 screen_update_macrossp(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect); void screen_eof_macrossp(screen_device &screen, bool state); void draw_sprites(bitmap_rgb32 &bitmap, const rectangle &cliprect, int priority ); - void draw_layer( bitmap_rgb32 &bitmap, const rectangle &cliprect, int layer ); + void draw_layer( screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect, int layer ); void sortlayers(int *layer,int *pri); void update_colors( ); DECLARE_WRITE_LINE_MEMBER(irqhandler); diff --git a/src/mame/includes/madalien.h b/src/mame/includes/madalien.h index 998239a0bb2..61705de066f 100644 --- a/src/mame/includes/madalien.h +++ b/src/mame/includes/madalien.h @@ -67,9 +67,9 @@ public: DECLARE_PALETTE_INIT(madalien); UINT32 screen_update_madalien(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); inline int scan_helper(int col, int row, int section); - void draw_edges(bitmap_ind16 &bitmap, const rectangle &cliprect, int flip, int scroll_mode); + void draw_edges(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect, int flip, int scroll_mode); void draw_headlight(bitmap_ind16 &bitmap, const rectangle &cliprect, int flip); - void draw_foreground(bitmap_ind16 &bitmap, const rectangle &cliprect, int flip); + void draw_foreground(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect, int flip); inline UINT8 shift_common(UINT8 hi, UINT8 lo); required_device m_maincpu; required_device m_audiocpu; diff --git a/src/mame/includes/mcatadv.h b/src/mame/includes/mcatadv.h index 1199b3964cf..94469fad985 100644 --- a/src/mame/includes/mcatadv.h +++ b/src/mame/includes/mcatadv.h @@ -45,7 +45,7 @@ public: virtual void video_start(); UINT32 screen_update_mcatadv(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); void screen_eof_mcatadv(screen_device &screen, bool state); - void draw_sprites( bitmap_ind16 &bitmap, const rectangle &cliprect ); - void mcatadv_draw_tilemap_part( UINT16* current_scroll, UINT16* current_videoram1, int i, tilemap_t* current_tilemap, bitmap_ind16 &bitmap, const rectangle &cliprect ); + void draw_sprites( screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect ); + void mcatadv_draw_tilemap_part( screen_device &screen, UINT16* current_scroll, UINT16* current_videoram1, int i, tilemap_t* current_tilemap, bitmap_ind16 &bitmap, const rectangle &cliprect ); DECLARE_WRITE_LINE_MEMBER(sound_irq); }; diff --git a/src/mame/includes/mcr.h b/src/mame/includes/mcr.h index fc7ab75287a..a81202b1a57 100644 --- a/src/mame/includes/mcr.h +++ b/src/mame/includes/mcr.h @@ -116,8 +116,8 @@ public: DECLARE_WRITE8_MEMBER(ipu_break_changed); void mcr_set_color(int index, int data); void journey_set_color(int index, int data); - void render_sprites_91399(bitmap_ind16 &bitmap, const rectangle &cliprect); - void render_sprites_91464(bitmap_ind16 &bitmap, const rectangle &cliprect, int primask, int sprmask, int colormask); + void render_sprites_91399(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); + void render_sprites_91464(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect, int primask, int sprmask, int colormask); void mcr_init(int cpuboard, int vidboard, int ssioboard); }; diff --git a/src/mame/includes/mcr3.h b/src/mame/includes/mcr3.h index 2735ac3abf6..66a32459e43 100644 --- a/src/mame/includes/mcr3.h +++ b/src/mame/includes/mcr3.h @@ -65,6 +65,6 @@ public: DECLARE_PALETTE_INIT(spyhunt); UINT32 screen_update_mcr3(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); UINT32 screen_update_spyhunt(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); - void mcr3_update_sprites(bitmap_ind16 &bitmap, const rectangle &cliprect, int color_mask, int code_xor, int dx, int dy); + void mcr3_update_sprites(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect, int color_mask, int code_xor, int dx, int dy); void mcr_common_init(); }; diff --git a/src/mame/includes/mcr68.h b/src/mame/includes/mcr68.h index 6cfa5999f9b..f716f1aa877 100644 --- a/src/mame/includes/mcr68.h +++ b/src/mame/includes/mcr68.h @@ -110,8 +110,8 @@ public: DECLARE_WRITE8_MEMBER(zwackery_pia1_w); DECLARE_WRITE_LINE_MEMBER(zwackery_ca2_w); DECLARE_WRITE_LINE_MEMBER(zwackery_pia_irq); - void mcr68_update_sprites(bitmap_ind16 &bitmap, const rectangle &cliprect, int priority); - void zwackery_update_sprites(bitmap_ind16 &bitmap, const rectangle &cliprect, int priority); + void mcr68_update_sprites(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect, int priority); + void zwackery_update_sprites(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect, int priority); void mcr68_common_init(); void update_mcr68_interrupts(); inline void update_interrupts(); diff --git a/src/mame/includes/megasys1.h b/src/mame/includes/megasys1.h index 526103e22ba..ffeec011042 100644 --- a/src/mame/includes/megasys1.h +++ b/src/mame/includes/megasys1.h @@ -144,7 +144,7 @@ public: TIMER_DEVICE_CALLBACK_MEMBER(megasys1B_scanline); inline void scrollram_w(offs_t offset, UINT16 data, UINT16 mem_mask, int which); void create_tilemaps(); - void draw_sprites(bitmap_ind16 &bitmap,const rectangle &cliprect); + void draw_sprites(screen_device &screen, bitmap_ind16 &bitmap,const rectangle &cliprect); void rodlandj_gfx_unmangle(const char *region); void jitsupro_gfx_unmangle(const char *region); void stdragona_gfx_unmangle(const char *region); diff --git a/src/mame/includes/metro.h b/src/mame/includes/metro.h index 3b064da8a46..fcd2cf285db 100644 --- a/src/mame/includes/metro.h +++ b/src/mame/includes/metro.h @@ -191,11 +191,11 @@ public: IRQ_CALLBACK_MEMBER(metro_irq_callback); inline UINT8 get_tile_pix( UINT16 code, UINT8 x, UINT8 y, int big, UINT16 *pix ); inline void metro_vram_w( offs_t offset, UINT16 data, UINT16 mem_mask, int layer, UINT16 *vram ); - void metro_draw_sprites( bitmap_ind16 &bitmap, const rectangle &cliprect ); - void draw_layers( bitmap_ind16 &bitmap, const rectangle &cliprect, int pri, int layers_ctrl ); + void metro_draw_sprites( screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect ); + void draw_layers( screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect, int pri, int layers_ctrl ); inline int blt_read( const UINT8 *ROM, const int offs ); void metro_common( ); - void draw_tilemap( bitmap_ind16 &bitmap, const rectangle &cliprect, UINT32 flags, UINT32 pcode, + void draw_tilemap( screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect, UINT32 flags, UINT32 pcode, int sx, int sy, int wx, int wy, int big, UINT16 *tilemapram, int layer ); DECLARE_WRITE_LINE_MEMBER(blzntrnd_irqhandler); DECLARE_WRITE_LINE_MEMBER(ymf278b_interrupt); diff --git a/src/mame/includes/ms32.h b/src/mame/includes/ms32.h index dc1199543cd..058feff76a9 100644 --- a/src/mame/includes/ms32.h +++ b/src/mame/includes/ms32.h @@ -96,7 +96,7 @@ public: void irq_raise(int level); void update_color(int color); void draw_sprites(bitmap_ind16 &bitmap, bitmap_ind8 &bitmap_pri, const rectangle &cliprect, UINT16 *sprram_top, size_t sprram_size, int gfxnum, int reverseorder); - void draw_roz(bitmap_ind16 &bitmap, const rectangle &cliprect,int priority); + void draw_roz(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect,int priority); void configure_banks(); required_device m_maincpu; required_device m_audiocpu; diff --git a/src/mame/includes/namcoic.h b/src/mame/includes/namcoic.h index 2083933af76..3f12430b797 100644 --- a/src/mame/includes/namcoic.h +++ b/src/mame/includes/namcoic.h @@ -157,7 +157,7 @@ extern const device_type NAMCO_C45_ROAD; /*----------- defined in drivers/namcoic.c -----------*/ -void namco_tilemap_draw( bitmap_ind16 &bitmap, const rectangle &cliprect, int pri ); +void namco_tilemap_draw( screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect, int pri ); void namco_tilemap_invalidate( void ); DECLARE_READ32_HANDLER( namco_tilemapvideoram32_r ); diff --git a/src/mame/includes/namcos2.h b/src/mame/includes/namcos2.h index e735c783f2a..486876d939b 100644 --- a/src/mame/includes/namcos2.h +++ b/src/mame/includes/namcos2.h @@ -120,7 +120,7 @@ public: // C169 ROZ Layer Emulation public: void c169_roz_init(int gfxbank, const char *maskregion); - void c169_roz_draw(bitmap_ind16 &bitmap, const rectangle &cliprect, int pri); + void c169_roz_draw(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect, int pri); DECLARE_READ16_MEMBER( c169_roz_control_r ); DECLARE_WRITE16_MEMBER( c169_roz_control_w ); DECLARE_READ16_MEMBER( c169_roz_bank_r ); @@ -143,8 +143,8 @@ protected: int color, priority; }; void c169_roz_unpack_params(const UINT16 *source, roz_parameters ¶ms); - void c169_roz_draw_helper(bitmap_ind16 &bitmap, tilemap_t &tmap, const rectangle &clip, const roz_parameters ¶ms); - void c169_roz_draw_scanline(bitmap_ind16 &bitmap, int line, int which, int pri, const rectangle &cliprect); + void c169_roz_draw_helper(screen_device &screen, bitmap_ind16 &bitmap, tilemap_t &tmap, const rectangle &clip, const roz_parameters ¶ms); + void c169_roz_draw_scanline(screen_device &screen, bitmap_ind16 &bitmap, int line, int which, int pri, const rectangle &cliprect); void c169_roz_get_info(tile_data &tileinfo, int tile_index, int which); TILE_GET_INFO_MEMBER( c169_roz_get_info0 ); TILE_GET_INFO_MEMBER( c169_roz_get_info1 ); @@ -164,8 +164,8 @@ public: // for pal_xor, supply either 0x0 (normal) or 0xf (palette mapping reversed) void c355_obj_init(int gfxbank, int pal_xor, c355_obj_code2tile_delegate code2tile); int c355_obj_default_code2tile(int code); - void c355_obj_draw(bitmap_ind16 &bitmap, const rectangle &cliprect, int pri); - void c355_obj_draw(bitmap_rgb32 &bitmap, const rectangle &cliprect, int pri); + void c355_obj_draw(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect, int pri); + void c355_obj_draw(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect, int pri); DECLARE_READ16_MEMBER( c355_obj_ram_r ); DECLARE_WRITE16_MEMBER( c355_obj_ram_w ); DECLARE_READ16_MEMBER( c355_obj_position_r ); @@ -175,9 +175,9 @@ public: protected: // C355 Motion Object internals template - void c355_obj_draw_sprite(_BitmapClass &bitmap, const rectangle &cliprect, const UINT16 *pSource, int pri, int zpos); + void c355_obj_draw_sprite(screen_device &screen, _BitmapClass &bitmap, const rectangle &cliprect, const UINT16 *pSource, int pri, int zpos); template - void c355_obj_draw_list(_BitmapClass &bitmap, const rectangle &cliprect, int pri, const UINT16 *pSpriteList16, const UINT16 *pSpriteTable); + void c355_obj_draw_list(screen_device &screen, _BitmapClass &bitmap, const rectangle &cliprect, int pri, const UINT16 *pSpriteList16, const UINT16 *pSpriteTable); c355_obj_code2tile_delegate m_c355_obj_code2tile; int m_c355_obj_gfxbank; @@ -190,8 +190,8 @@ protected: public: // general - void zdrawgfxzoom(bitmap_ind16 &dest_bmp, const rectangle &clip, gfx_element *gfx, UINT32 code, UINT32 color, int flipx, int flipy, int sx, int sy, int scalex, int scaley, int zpos); - void zdrawgfxzoom(bitmap_rgb32 &dest_bmp, const rectangle &clip, gfx_element *gfx, UINT32 code, UINT32 color, int flipx, int flipy, int sx, int sy, int scalex, int scaley, int zpos); + void zdrawgfxzoom(screen_device &screen, bitmap_ind16 &dest_bmp, const rectangle &clip, gfx_element *gfx, UINT32 code, UINT32 color, int flipx, int flipy, int sx, int sy, int scalex, int scaley, int zpos); + void zdrawgfxzoom(screen_device &screen, bitmap_rgb32 &dest_bmp, const rectangle &clip, gfx_element *gfx, UINT32 code, UINT32 color, int flipx, int flipy, int sx, int sy, int scalex, int scaley, int zpos); INTERRUPT_GEN_MEMBER(namcos2_68k_master_vblank); INTERRUPT_GEN_MEMBER(namcos2_68k_slave_vblank); INTERRUPT_GEN_MEMBER(namcos2_68k_gpu_vblank); @@ -305,9 +305,9 @@ public: void draw_sprite_init(); void update_palette(); void apply_clip( rectangle &clip, const rectangle &cliprect ); - void draw_roz(bitmap_ind16 &bitmap, const rectangle &cliprect); - void draw_sprites(bitmap_ind16 &bitmap, const rectangle &cliprect, int pri, int control ); - void draw_sprites_metalhawk(bitmap_ind16 &bitmap, const rectangle &cliprect, int pri ); + void draw_roz(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); + void draw_sprites(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect, int pri, int control ); + void draw_sprites_metalhawk(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect, int pri ); UINT16 get_palette_register( int which ); int get_pos_irq_scanline() { return (get_palette_register(5) - 32) & 0xff; } diff --git a/src/mame/includes/nemesis.h b/src/mame/includes/nemesis.h index 8fa3cf3cf7d..e450024c219 100644 --- a/src/mame/includes/nemesis.h +++ b/src/mame/includes/nemesis.h @@ -101,7 +101,7 @@ public: TIMER_DEVICE_CALLBACK_MEMBER(konamigt_interrupt); TIMER_DEVICE_CALLBACK_MEMBER(gx400_interrupt); void nemesis_postload(); - void draw_sprites( bitmap_ind16 &bitmap, const rectangle &cliprect ); + void draw_sprites( screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect ); DECLARE_WRITE_LINE_MEMBER(sound_irq); DECLARE_WRITE8_MEMBER(volume_callback); }; diff --git a/src/mame/includes/nmk16.h b/src/mame/includes/nmk16.h index 051793cf0b7..d0e999e403f 100644 --- a/src/mame/includes/nmk16.h +++ b/src/mame/includes/nmk16.h @@ -182,8 +182,8 @@ public: int nmk16_bg_sprswap_tx_update(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect, int bittbl[8]); int nmk16_bg_sprswapflip_tx_update(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect, int bittbl[8]); int nmk16_complexbg_sprswap_tx_update(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect, int bittbl[8]); - void video_update(bitmap_ind16 &bitmap, const rectangle &cliprect,int dsw_flipscreen,int xoffset, int yoffset,int attr_mask); - void redhawki_video_update(bitmap_ind16 &bitmap, const rectangle &cliprect ); + void video_update(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect,int dsw_flipscreen,int xoffset, int yoffset,int attr_mask); + void redhawki_video_update(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect ); void mcu_run(UINT8 dsw_setting); UINT8 decode_byte(UINT8 src, const UINT8 *bitp); UINT32 bjtwin_address_map_bg0(UINT32 addr); diff --git a/src/mame/includes/othunder.h b/src/mame/includes/othunder.h index 3c0b743c97c..958fa3c9648 100644 --- a/src/mame/includes/othunder.h +++ b/src/mame/includes/othunder.h @@ -89,7 +89,7 @@ public: UINT32 screen_update_othunder(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); INTERRUPT_GEN_MEMBER(vblank_interrupt); void reset_sound_region(); - void draw_sprites( bitmap_ind16 &bitmap, const rectangle &cliprect, const int *primasks, int y_offs ); + void draw_sprites( screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect, const int *primasks, int y_offs ); void update_irq( ); DECLARE_WRITE_LINE_MEMBER(irqhandler); diff --git a/src/mame/includes/pacland.h b/src/mame/includes/pacland.h index 62164198a6d..59949057ff8 100644 --- a/src/mame/includes/pacland.h +++ b/src/mame/includes/pacland.h @@ -49,6 +49,6 @@ public: INTERRUPT_GEN_MEMBER(main_vblank_irq); INTERRUPT_GEN_MEMBER(mcu_vblank_irq); void switch_palette(); - void draw_sprites(bitmap_ind16 &bitmap, const rectangle &cliprect, int whichmask); - void draw_fg(bitmap_ind16 &bitmap, const rectangle &cliprect, int priority ); + void draw_sprites(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect, int whichmask); + void draw_fg(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect, int priority ); }; diff --git a/src/mame/includes/playmark.h b/src/mame/includes/playmark.h index 7c66b2af59d..6b9d3cca5eb 100644 --- a/src/mame/includes/playmark.h +++ b/src/mame/includes/playmark.h @@ -101,9 +101,9 @@ public: UINT32 screen_update_wbeachvl(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); UINT32 screen_update_excelsr(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); UINT32 screen_update_hrdtimes(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); - void draw_sprites( bitmap_ind16 &bitmap, const rectangle &cliprect, int codeshift ); - void bigtwinb_draw_sprites( bitmap_ind16 &bitmap, const rectangle &cliprect, int codeshift ); - void draw_bitmap( bitmap_ind16 &bitmap, const rectangle &cliprect ); + void draw_sprites( screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect, int codeshift ); + void bigtwinb_draw_sprites( screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect, int codeshift ); + void draw_bitmap( screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect ); UINT8 playmark_asciitohex(UINT8 data); required_device m_maincpu; optional_device m_audiocpu; diff --git a/src/mame/includes/psikyo.h b/src/mame/includes/psikyo.h index 206211d193d..ac181864824 100644 --- a/src/mame/includes/psikyo.h +++ b/src/mame/includes/psikyo.h @@ -98,8 +98,8 @@ public: void screen_eof_psikyo(screen_device &screen, bool state); TIMER_CALLBACK_MEMBER(psikyo_soundlatch_callback); void psikyo_switch_banks( int tmap, int bank ); - void draw_sprites( bitmap_ind16 &bitmap, const rectangle &cliprect, int trans_pen ); - void draw_sprites_bootleg( bitmap_ind16 &bitmap, const rectangle &cliprect, int trans_pen ); + void draw_sprites( screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect, int trans_pen ); + void draw_sprites_bootleg( screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect, int trans_pen ); int tilemap_width( int size ); void s1945_mcu_init( ); DECLARE_WRITE_LINE_MEMBER(irqhandler); diff --git a/src/mame/includes/psychic5.h b/src/mame/includes/psychic5.h index 2f6f00d3eb4..55fe17000b4 100644 --- a/src/mame/includes/psychic5.h +++ b/src/mame/includes/psychic5.h @@ -54,7 +54,7 @@ public: void psychic5_change_bg_palette(int color, int lo_offs, int hi_offs); void set_background_palette_intensity(); void draw_sprites(bitmap_rgb32 &bitmap, const rectangle &cliprect); - void draw_background(bitmap_rgb32 &bitmap, const rectangle &cliprect); + void draw_background(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect); DECLARE_WRITE_LINE_MEMBER(irqhandler); required_device m_maincpu; required_device m_audiocpu; diff --git a/src/mame/includes/punchout.h b/src/mame/includes/punchout.h index 24ccd25840c..984a461d92b 100644 --- a/src/mame/includes/punchout.h +++ b/src/mame/includes/punchout.h @@ -78,9 +78,9 @@ public: UINT32 screen_update_armwrest_top(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); UINT32 screen_update_armwrest_bottom(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); INTERRUPT_GEN_MEMBER(vblank_irq); - void draw_big_sprite(bitmap_ind16 &bitmap, const rectangle &cliprect, int palette); - void armwrest_draw_big_sprite(bitmap_ind16 &bitmap, const rectangle &cliprect, int palette); - void drawbs2(bitmap_ind16 &bitmap, const rectangle &cliprect); + void draw_big_sprite(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect, int palette); + void armwrest_draw_big_sprite(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect, int palette); + void drawbs2(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); void punchout_copy_top_palette(int bank); void punchout_copy_bot_palette(int bank); }; diff --git a/src/mame/includes/rallyx.h b/src/mame/includes/rallyx.h index f405c5d132f..50d4c6a72dc 100644 --- a/src/mame/includes/rallyx.h +++ b/src/mame/includes/rallyx.h @@ -80,8 +80,8 @@ public: void rallyx_video_start_common( ); void plot_star( bitmap_ind16 &bitmap, const rectangle &cliprect, int x, int y, int color ); void draw_stars( bitmap_ind16 &bitmap, const rectangle &cliprect ); - void rallyx_draw_sprites( bitmap_ind16 &bitmap, const rectangle &cliprect, int displacement ); - void locomotn_draw_sprites( bitmap_ind16 &bitmap, const rectangle &cliprect, int displacement ); + void rallyx_draw_sprites( screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect, int displacement ); + void locomotn_draw_sprites( screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect, int displacement ); void rallyx_draw_bullets( bitmap_ind16 &bitmap, const rectangle &cliprect, int transpen ); void jungler_draw_bullets( bitmap_ind16 &bitmap, const rectangle &cliprect, int transpen ); void locomotn_draw_bullets( bitmap_ind16 &bitmap, const rectangle &cliprect, int transpen ); diff --git a/src/mame/includes/shadfrce.h b/src/mame/includes/shadfrce.h index b9989a98650..e98d63c7971 100644 --- a/src/mame/includes/shadfrce.h +++ b/src/mame/includes/shadfrce.h @@ -50,7 +50,7 @@ public: UINT32 screen_update_shadfrce(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); void screen_eof_shadfrce(screen_device &screen, bool state); TIMER_DEVICE_CALLBACK_MEMBER(shadfrce_scanline); - void draw_sprites(bitmap_ind16 &bitmap, const rectangle &cliprect ); + void draw_sprites(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect ); required_device m_maincpu; required_device m_audiocpu; required_device m_oki; diff --git a/src/mame/includes/shootout.h b/src/mame/includes/shootout.h index 8401732817f..513d1c03327 100644 --- a/src/mame/includes/shootout.h +++ b/src/mame/includes/shootout.h @@ -29,7 +29,7 @@ public: virtual void palette_init(); UINT32 screen_update_shootout(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); UINT32 screen_update_shootouj(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); - void draw_sprites(bitmap_ind16 &bitmap, const rectangle &cliprect, int bank_bits ); + void draw_sprites(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect, int bank_bits ); DECLARE_WRITE_LINE_MEMBER(shootout_snd_irq); DECLARE_WRITE_LINE_MEMBER(shootout_snd2_irq); required_device m_maincpu; diff --git a/src/mame/includes/silkroad.h b/src/mame/includes/silkroad.h index 06950b734c3..bff0977e179 100644 --- a/src/mame/includes/silkroad.h +++ b/src/mame/includes/silkroad.h @@ -32,7 +32,7 @@ public: TILE_GET_INFO_MEMBER(get_fg3_tile_info); virtual void video_start(); UINT32 screen_update_silkroad(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); - void draw_sprites(bitmap_ind16 &bitmap, const rectangle &cliprect); + void draw_sprites(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); required_device m_maincpu; required_device m_oki1; }; diff --git a/src/mame/includes/slapshot.h b/src/mame/includes/slapshot.h index 57ce233f224..08231db769a 100644 --- a/src/mame/includes/slapshot.h +++ b/src/mame/includes/slapshot.h @@ -84,7 +84,7 @@ public: void screen_eof_taito_no_buffer(screen_device &screen, bool state); INTERRUPT_GEN_MEMBER(slapshot_interrupt); void reset_sound_region(); - void draw_sprites( bitmap_ind16 &bitmap, const rectangle &cliprect, int *primasks, int y_offset ); + void draw_sprites( screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect, int *primasks, int y_offset ); void taito_handle_sprite_buffering( ); void taito_update_sprites_active_area( ); DECLARE_WRITE_LINE_MEMBER(irqhandler); diff --git a/src/mame/includes/stfight.h b/src/mame/includes/stfight.h index 79f22ef60a6..ec1f05dee5c 100644 --- a/src/mame/includes/stfight.h +++ b/src/mame/includes/stfight.h @@ -72,8 +72,8 @@ public: INTERRUPT_GEN_MEMBER(stfight_vb_interrupt); DECLARE_WRITE8_MEMBER(stfight_adpcm_control_w); void set_pens(); - void draw_sprites(bitmap_ind16 &bitmap, const rectangle &cliprect); - void cshooter_draw_sprites(bitmap_ind16 &bitmap, const rectangle &cliprect); + void draw_sprites(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); + void cshooter_draw_sprites(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); DECLARE_WRITE_LINE_MEMBER(stfight_adpcm_int); /* diff --git a/src/mame/includes/superchs.h b/src/mame/includes/superchs.h index c4c53689f66..285c49d0e88 100644 --- a/src/mame/includes/superchs.h +++ b/src/mame/includes/superchs.h @@ -46,7 +46,7 @@ public: DECLARE_DRIVER_INIT(superchs); virtual void video_start(); UINT32 screen_update_superchs(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); - void draw_sprites(bitmap_ind16 &bitmap,const rectangle &cliprect,const int *primasks,int x_offs,int y_offs); + void draw_sprites(screen_device &screen, bitmap_ind16 &bitmap,const rectangle &cliprect,const int *primasks,int x_offs,int y_offs); required_device m_maincpu; required_device m_subcpu; required_device m_tc0480scp; diff --git a/src/mame/includes/taito_f2.h b/src/mame/includes/taito_f2.h index c67b8e27172..d964b31060b 100644 --- a/src/mame/includes/taito_f2.h +++ b/src/mame/includes/taito_f2.h @@ -171,12 +171,12 @@ public: INTERRUPT_GEN_MEMBER(taitof2_interrupt); void reset_driveout_sound_region(); void taitof2_core_vh_start (int sprite_type, int hide, int flip_hide ); - void draw_sprites( bitmap_ind16 &bitmap, const rectangle &cliprect, int *primasks, int uses_tc360_mixer ); + void draw_sprites( screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect, int *primasks, int uses_tc360_mixer ); void update_spritebanks( ); void taitof2_handle_sprite_buffering( ); void taitof2_update_sprites_active_area( ); - void draw_roz_layer( bitmap_ind16 &bitmap, const rectangle &cliprect, UINT32 priority); - void taito_f2_tc360_spritemixdraw(bitmap_ind16 &dest_bmp, const rectangle &clip, gfx_element *gfx, + void draw_roz_layer( screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect, UINT32 priority); + void taito_f2_tc360_spritemixdraw(screen_device &screen, bitmap_ind16 &dest_bmp, const rectangle &clip, gfx_element *gfx, UINT32 code, UINT32 color, int flipx, int flipy, int sx, int sy, int scalex, int scaley ); DECLARE_WRITE_LINE_MEMBER(irqhandler); diff --git a/src/mame/includes/taito_l.h b/src/mame/includes/taito_l.h index e4b74df404c..13d87908ba5 100644 --- a/src/mame/includes/taito_l.h +++ b/src/mame/includes/taito_l.h @@ -143,7 +143,7 @@ public: void taitol_bg19_m( int offset ); void taitol_char1a_m( int offset ); void taitol_obj1b_m( int offset ); - void draw_sprites( bitmap_ind16 &bitmap, const rectangle &cliprect ); + void draw_sprites( screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect ); void palette_notifier(int addr); void state_register( ); void taito_machine_reset(); diff --git a/src/mame/includes/taito_z.h b/src/mame/includes/taito_z.h index b4d482592a8..2743f0ab54e 100644 --- a/src/mame/includes/taito_z.h +++ b/src/mame/includes/taito_z.h @@ -112,12 +112,12 @@ public: UINT32 screen_update_racingb(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); INTERRUPT_GEN_MEMBER(sci_interrupt); void taitoz_postload(); - void contcirc_draw_sprites_16x8( bitmap_ind16 &bitmap, const rectangle &cliprect, int y_offs ); - void chasehq_draw_sprites_16x16( bitmap_ind16 &bitmap, const rectangle &cliprect, int y_offs ); - void bshark_draw_sprites_16x8( bitmap_ind16 &bitmap, const rectangle &cliprect, int y_offs ); - void sci_draw_sprites_16x8( bitmap_ind16 &bitmap, const rectangle &cliprect, int y_offs ); - void aquajack_draw_sprites_16x8(bitmap_ind16 &bitmap,const rectangle &cliprect,int y_offs); - void spacegun_draw_sprites_16x8(bitmap_ind16 &bitmap,const rectangle &cliprect,int y_offs); + void contcirc_draw_sprites_16x8( screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect, int y_offs ); + void chasehq_draw_sprites_16x16( screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect, int y_offs ); + void bshark_draw_sprites_16x8( screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect, int y_offs ); + void sci_draw_sprites_16x8( screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect, int y_offs ); + void aquajack_draw_sprites_16x8(screen_device &screen, bitmap_ind16 &bitmap,const rectangle &cliprect,int y_offs); + void spacegun_draw_sprites_16x8(screen_device &screen, bitmap_ind16 &bitmap,const rectangle &cliprect,int y_offs); void parse_cpu_control( ); void reset_sound_region( ); DECLARE_WRITE_LINE_MEMBER(irqhandler); diff --git a/src/mame/includes/tecmo.h b/src/mame/includes/tecmo.h index 96d85e27806..0284b60190c 100644 --- a/src/mame/includes/tecmo.h +++ b/src/mame/includes/tecmo.h @@ -54,7 +54,7 @@ public: DECLARE_MACHINE_RESET(rygar); DECLARE_VIDEO_START(tecmo); UINT32 screen_update_tecmo(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); - void draw_sprites(bitmap_ind16 &bitmap,const rectangle &cliprect); + void draw_sprites(screen_device &screen, bitmap_ind16 &bitmap,const rectangle &cliprect); DECLARE_WRITE_LINE_MEMBER(irqhandler); DECLARE_WRITE_LINE_MEMBER(tecmo_adpcm_int); required_device m_maincpu; diff --git a/src/mame/includes/toaplan1.h b/src/mame/includes/toaplan1.h index 572fffb0baa..54250edf4cf 100644 --- a/src/mame/includes/toaplan1.h +++ b/src/mame/includes/toaplan1.h @@ -157,7 +157,7 @@ public: void toaplan1_set_scrolls(); void register_common(); void toaplan1_log_vram(); - void draw_sprites(bitmap_ind16 &bitmap, const rectangle &cliprect ); + void draw_sprites(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect ); void demonwld_dsp(int enable); void toaplan1_driver_savestate(); void demonwld_driver_savestate(); diff --git a/src/mame/includes/topspeed.h b/src/mame/includes/topspeed.h index 361d9db7323..9760b10b7b9 100644 --- a/src/mame/includes/topspeed.h +++ b/src/mame/includes/topspeed.h @@ -76,7 +76,7 @@ public: INTERRUPT_GEN_MEMBER(topspeed_interrupt); INTERRUPT_GEN_MEMBER(topspeed_cpub_interrupt); void topspeed_postload(); - void draw_sprites( bitmap_ind16 &bitmap, const rectangle &cliprect ); + void draw_sprites( screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect ); void parse_control( ) /* assumes Z80 sandwiched between 68Ks */; void reset_sound_region( ); void topspeed_msm5205_clock(int chip); diff --git a/src/mame/includes/tumbleb.h b/src/mame/includes/tumbleb.h index 5e98bdb10c9..79f88ea677c 100644 --- a/src/mame/includes/tumbleb.h +++ b/src/mame/includes/tumbleb.h @@ -116,7 +116,7 @@ public: inline void get_fncywld_bg_tile_info( tile_data &tileinfo, int tile_index, int gfx_bank, UINT16 *gfx_base); inline void pangpang_get_bg_tile_info( tile_data &tileinfo, int tile_index, int gfx_bank, UINT16 *gfx_base ); inline void pangpang_get_bg2x_tile_info( tile_data &tileinfo, int tile_index, int gfx_bank, UINT16 *gfx_base ); - void tumbleb_draw_common(bitmap_ind16 &bitmap, const rectangle &cliprect, int pf1x_offs, int pf1y_offs, int pf2x_offs, int pf2y_offs); + void tumbleb_draw_common(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect, int pf1x_offs, int pf1y_offs, int pf2x_offs, int pf2y_offs); void tumbleb2_set_music_bank( int bank ); void tumbleb2_play_sound( okim6295_device *oki, int data ); void process_tumbleb2_music_command( okim6295_device *oki, int data ); diff --git a/src/mame/includes/twin16.h b/src/mame/includes/twin16.h index b7df998a069..3f58a9e26a0 100644 --- a/src/mame/includes/twin16.h +++ b/src/mame/includes/twin16.h @@ -75,8 +75,8 @@ public: TIMER_CALLBACK_MEMBER(twin16_sprite_tick); int twin16_set_sprite_timer( ); void twin16_spriteram_process( ); - void draw_sprites( bitmap_ind16 &bitmap ); - void draw_layer( bitmap_ind16 &bitmap, int opaque ); + void draw_sprites( screen_device &screen, bitmap_ind16 &bitmap ); + void draw_layer( screen_device &screen, bitmap_ind16 &bitmap, int opaque ); int twin16_spriteram_process_enable( ); void gfx_untangle( ); DECLARE_WRITE8_MEMBER(volume_callback); diff --git a/src/mame/includes/undrfire.h b/src/mame/includes/undrfire.h index 4cd3c1b0743..861bdefdcb8 100644 --- a/src/mame/includes/undrfire.h +++ b/src/mame/includes/undrfire.h @@ -65,8 +65,8 @@ public: UINT32 screen_update_undrfire(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); UINT32 screen_update_cbombers(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); INTERRUPT_GEN_MEMBER(undrfire_interrupt); - void draw_sprites(bitmap_ind16 &bitmap,const rectangle &cliprect,const int *primasks,int x_offs,int y_offs); - void draw_sprites_cbombers(bitmap_ind16 &bitmap,const rectangle &cliprect,const int *primasks,int x_offs,int y_offs); + void draw_sprites(screen_device &screen, bitmap_ind16 &bitmap,const rectangle &cliprect,const int *primasks,int x_offs,int y_offs); + void draw_sprites_cbombers(screen_device &screen, bitmap_ind16 &bitmap,const rectangle &cliprect,const int *primasks,int x_offs,int y_offs); protected: virtual void device_timer(emu_timer &timer, device_timer_id id, int param, void *ptr); diff --git a/src/mame/includes/unico.h b/src/mame/includes/unico.h index a9a41b93df2..5abb4a73199 100644 --- a/src/mame/includes/unico.h +++ b/src/mame/includes/unico.h @@ -48,8 +48,8 @@ public: DECLARE_VIDEO_START(zeropnt2); UINT32 screen_update_unico(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); UINT32 screen_update_zeropnt2(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); - void unico_draw_sprites(bitmap_ind16 &bitmap,const rectangle &cliprect); - void zeropnt2_draw_sprites(bitmap_ind16 &bitmap,const rectangle &cliprect); + void unico_draw_sprites(screen_device &screen, bitmap_ind16 &bitmap,const rectangle &cliprect); + void zeropnt2_draw_sprites(screen_device &screen, bitmap_ind16 &bitmap,const rectangle &cliprect); required_device m_maincpu; optional_device m_oki; optional_device m_eeprom; diff --git a/src/mame/includes/warriorb.h b/src/mame/includes/warriorb.h index 0412dc5606c..ff72e17d45a 100644 --- a/src/mame/includes/warriorb.h +++ b/src/mame/includes/warriorb.h @@ -63,7 +63,7 @@ public: UINT32 screen_update_warriorb_left(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); UINT32 screen_update_warriorb_right(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); void reset_sound_region(); - void draw_sprites( bitmap_ind16 &bitmap, const rectangle &cliprect, int x_offs, int y_offs ); + void draw_sprites( screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect, int x_offs, int y_offs ); UINT32 update_screen(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect, int xoffs, tc0100scn_device *tc0100scn); DECLARE_WRITE_LINE_MEMBER(irqhandler); }; diff --git a/src/mame/includes/wgp.h b/src/mame/includes/wgp.h index 3e622cf87d6..22eb08f61dc 100644 --- a/src/mame/includes/wgp.h +++ b/src/mame/includes/wgp.h @@ -92,8 +92,8 @@ public: void wgp_postload(); inline void common_get_piv_tile_info( tile_data &tileinfo, int tile_index, int num ); void wgp_core_vh_start( int piv_xoffs, int piv_yoffs ); - void draw_sprites( bitmap_ind16 &bitmap, const rectangle &cliprect, int y_offs ); - void wgp_piv_layer_draw( bitmap_ind16 &bitmap, const rectangle &cliprect, int layer, int flags, UINT32 priority ); + void draw_sprites( screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect, int y_offs ); + void wgp_piv_layer_draw( screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect, int layer, int flags, UINT32 priority ); void parse_control(); void reset_sound_region( ) /* assumes Z80 sandwiched between the 68Ks */; DECLARE_WRITE_LINE_MEMBER(irqhandler); diff --git a/src/mame/includes/yunsun16.h b/src/mame/includes/yunsun16.h index 88e62277568..71ab3764dc8 100644 --- a/src/mame/includes/yunsun16.h +++ b/src/mame/includes/yunsun16.h @@ -47,7 +47,7 @@ public: virtual void machine_reset(); virtual void video_start(); UINT32 screen_update_yunsun16(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); - void draw_sprites( bitmap_ind16 &bitmap, const rectangle &cliprect ); + void draw_sprites( screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect ); DECLARE_WRITE_LINE_MEMBER(soundirq); required_device m_maincpu; }; diff --git a/src/mame/video/1942.c b/src/mame/video/1942.c index 49e27df67db..46407a3adf7 100644 --- a/src/mame/video/1942.c +++ b/src/mame/video/1942.c @@ -230,8 +230,8 @@ void _1942_state::draw_sprites( bitmap_ind16 &bitmap, const rectangle &cliprect UINT32 _1942_state::screen_update_1942(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect) { - m_bg_tilemap->draw(bitmap, cliprect, 0, 0); + m_bg_tilemap->draw(screen, bitmap, cliprect, 0, 0); draw_sprites(bitmap, cliprect); - m_fg_tilemap->draw(bitmap, cliprect, 0, 0); + m_fg_tilemap->draw(screen, bitmap, cliprect, 0, 0); return 0; } diff --git a/src/mame/video/1943.c b/src/mame/video/1943.c index a4b5f6e980e..2a057037e09 100644 --- a/src/mame/video/1943.c +++ b/src/mame/video/1943.c @@ -251,7 +251,7 @@ UINT32 _1943_state::screen_update_1943(screen_device &screen, bitmap_ind16 &bitm m_bg_tilemap->set_scrolly(0, m_scrolly[0]); if (m_bg2_on) - m_bg2_tilemap->draw(bitmap, cliprect, 0, 0); + m_bg2_tilemap->draw(screen, bitmap, cliprect, 0, 0); else bitmap.fill(get_black_pen(machine()), cliprect); @@ -259,13 +259,13 @@ UINT32 _1943_state::screen_update_1943(screen_device &screen, bitmap_ind16 &bitm draw_sprites(bitmap, cliprect, 0); if (m_bg1_on) - m_bg_tilemap->draw(bitmap, cliprect, 0, 0); + m_bg_tilemap->draw(screen, bitmap, cliprect, 0, 0); if (m_obj_on) draw_sprites(bitmap, cliprect, 1); if (m_char_on) - m_fg_tilemap->draw(bitmap, cliprect, 0, 0); + m_fg_tilemap->draw(screen, bitmap, cliprect, 0, 0); return 0; } diff --git a/src/mame/video/40love.c b/src/mame/video/40love.c index 0e82f6f01c4..ecc721c8b5b 100644 --- a/src/mame/video/40love.c +++ b/src/mame/video/40love.c @@ -350,7 +350,7 @@ UINT32 fortyl_state::screen_update_fortyl(screen_device &screen, bitmap_ind16 &b draw_pixram(bitmap, cliprect); m_bg_tilemap->set_scrolldy(- m_video_ctrl[1] + 1, - m_video_ctrl[1] - 1 ); - m_bg_tilemap->draw(bitmap, cliprect, 0, 0); + m_bg_tilemap->draw(screen, bitmap, cliprect, 0, 0); draw_sprites(bitmap, cliprect); return 0; diff --git a/src/mame/video/4enraya.c b/src/mame/video/4enraya.c index 94229378a04..ee10eff5912 100644 --- a/src/mame/video/4enraya.c +++ b/src/mame/video/4enraya.c @@ -33,6 +33,6 @@ void _4enraya_state::video_start() UINT32 _4enraya_state::screen_update_4enraya(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect) { - m_bg_tilemap->draw(bitmap, cliprect, 0, 0); + m_bg_tilemap->draw(screen, bitmap, cliprect, 0, 0); return 0; } diff --git a/src/mame/video/88games.c b/src/mame/video/88games.c index d9b130530e8..d7c96d13b29 100644 --- a/src/mame/video/88games.c +++ b/src/mame/video/88games.c @@ -59,21 +59,21 @@ UINT32 _88games_state::screen_update_88games(screen_device &screen, bitmap_ind16 if (m_k88games_priority) { - m_k052109->tilemap_draw(bitmap, cliprect, 0, TILEMAP_DRAW_OPAQUE, 0); // tile 0 - m_k051960->k051960_sprites_draw(bitmap,cliprect, 1, 1); - m_k052109->tilemap_draw(bitmap, cliprect, 2, 0, 0); // tile 2 - m_k052109->tilemap_draw(bitmap, cliprect, 1, 0, 0); // tile 1 - m_k051960->k051960_sprites_draw(bitmap, cliprect, 0, 0); - m_k051316->zoom_draw(bitmap, cliprect, 0, 0); + m_k052109->tilemap_draw(screen, bitmap, cliprect, 0, TILEMAP_DRAW_OPAQUE, 0); // tile 0 + m_k051960->k051960_sprites_draw(bitmap, cliprect, screen.priority(), 1, 1); + m_k052109->tilemap_draw(screen, bitmap, cliprect, 2, 0, 0); // tile 2 + m_k052109->tilemap_draw(screen, bitmap, cliprect, 1, 0, 0); // tile 1 + m_k051960->k051960_sprites_draw(bitmap, cliprect, screen.priority(), 0, 0); + m_k051316->zoom_draw(screen, bitmap, cliprect, 0, 0); } else { - m_k052109->tilemap_draw(bitmap, cliprect, 2, TILEMAP_DRAW_OPAQUE, 0); // tile 2 - m_k051316->zoom_draw(bitmap, cliprect, 0, 0); - m_k051960->k051960_sprites_draw(bitmap, cliprect, 0, 0); - m_k052109->tilemap_draw(bitmap, cliprect, 1, 0, 0); // tile 1 - m_k051960->k051960_sprites_draw(bitmap, cliprect, 1, 1); - m_k052109->tilemap_draw(bitmap, cliprect, 0, 0, 0); // tile 0 + m_k052109->tilemap_draw(screen, bitmap, cliprect, 2, TILEMAP_DRAW_OPAQUE, 0); // tile 2 + m_k051316->zoom_draw(screen, bitmap, cliprect, 0, 0); + m_k051960->k051960_sprites_draw(bitmap, cliprect, screen.priority(), 0, 0); + m_k052109->tilemap_draw(screen, bitmap, cliprect, 1, 0, 0); // tile 1 + m_k051960->k051960_sprites_draw(bitmap, cliprect, screen.priority(), 1, 1); + m_k052109->tilemap_draw(screen, bitmap, cliprect, 0, 0, 0); // tile 0 } return 0; diff --git a/src/mame/video/aeroboto.c b/src/mame/video/aeroboto.c index ab8fa49e128..e81fd62e3ef 100644 --- a/src/mame/video/aeroboto.c +++ b/src/mame/video/aeroboto.c @@ -206,12 +206,12 @@ UINT32 aeroboto_state::screen_update_aeroboto(screen_device &screen, bitmap_ind1 // the playfield is part of a splitscreen and should not overlap with status display m_bg_tilemap->set_scrolly(0, *m_vscroll); - m_bg_tilemap->draw(bitmap, splitrect2, 0, 0); + m_bg_tilemap->draw(screen, bitmap, splitrect2, 0, 0); draw_sprites(bitmap, cliprect); // the status display behaves more closely to a 40-line splitscreen than an overlay m_bg_tilemap->set_scrolly(0, 0); - m_bg_tilemap->draw(bitmap, splitrect1, 0, 0); + m_bg_tilemap->draw(screen, bitmap, splitrect1, 0, 0); return 0; } diff --git a/src/mame/video/aerofgt.c b/src/mame/video/aerofgt.c index c03829d4478..24c8f4b0748 100644 --- a/src/mame/video/aerofgt.c +++ b/src/mame/video/aerofgt.c @@ -299,11 +299,11 @@ UINT32 aerofgt_state::screen_update_pspikes(screen_device &screen, bitmap_ind16 m_bg1_tilemap->set_scrollx((i + scrolly) & 0xff, m_rasterram[i]); m_bg1_tilemap->set_scrolly(0, scrolly); - machine().priority_bitmap.fill(0, cliprect); + screen.priority().fill(0, cliprect); - m_bg1_tilemap->draw(bitmap, cliprect, 0, 0); - m_spr_old->turbofrc_draw_sprites(m_spriteram3,m_spriteram3.bytes(),m_spritepalettebank, machine(), bitmap, cliprect, 0); - m_spr_old->turbofrc_draw_sprites(m_spriteram3,m_spriteram3.bytes(),m_spritepalettebank, machine(), bitmap, cliprect, 1); + m_bg1_tilemap->draw(screen, bitmap, cliprect, 0, 0); + m_spr_old->turbofrc_draw_sprites(m_spriteram3,m_spriteram3.bytes(),m_spritepalettebank, machine(), bitmap, cliprect, screen.priority(), 0); + m_spr_old->turbofrc_draw_sprites(m_spriteram3,m_spriteram3.bytes(),m_spritepalettebank, machine(), bitmap, cliprect, screen.priority(), 1); return 0; } @@ -315,17 +315,17 @@ UINT32 aerofgt_state::screen_update_karatblz(screen_device &screen, bitmap_ind16 m_bg2_tilemap->set_scrollx(0, m_bg2scrollx - 4); m_bg2_tilemap->set_scrolly(0, m_bg2scrolly); - machine().priority_bitmap.fill(0, cliprect); + screen.priority().fill(0, cliprect); - m_bg1_tilemap->draw(bitmap, cliprect, 0, 0); - m_bg2_tilemap->draw(bitmap, cliprect, 0, 0); + m_bg1_tilemap->draw(screen, bitmap, cliprect, 0, 0); + m_bg2_tilemap->draw(screen, bitmap, cliprect, 0, 0); /* we use the priority buffer so sprites are drawn front to back */ - m_spr_old2->turbofrc_draw_sprites(m_spriteram3+0x200,m_spriteram3.bytes()/2,m_spritepalettebank, machine(), bitmap, cliprect, 0); - m_spr_old2->turbofrc_draw_sprites(m_spriteram3+0x200,m_spriteram3.bytes()/2,m_spritepalettebank, machine(), bitmap, cliprect, 1); + m_spr_old2->turbofrc_draw_sprites(m_spriteram3+0x200,m_spriteram3.bytes()/2,m_spritepalettebank, machine(), bitmap, cliprect, screen.priority(), 0); + m_spr_old2->turbofrc_draw_sprites(m_spriteram3+0x200,m_spriteram3.bytes()/2,m_spritepalettebank, machine(), bitmap, cliprect, screen.priority(), 1); - m_spr_old->turbofrc_draw_sprites(m_spriteram3+0x000,m_spriteram3.bytes()/2,m_spritepalettebank, machine(), bitmap, cliprect, 0); - m_spr_old->turbofrc_draw_sprites(m_spriteram3+0x000,m_spriteram3.bytes()/2,m_spritepalettebank, machine(), bitmap, cliprect, 1); + m_spr_old->turbofrc_draw_sprites(m_spriteram3+0x000,m_spriteram3.bytes()/2,m_spritepalettebank, machine(), bitmap, cliprect, screen.priority(), 0); + m_spr_old->turbofrc_draw_sprites(m_spriteram3+0x000,m_spriteram3.bytes()/2,m_spritepalettebank, machine(), bitmap, cliprect, screen.priority(), 1); return 0; } @@ -341,17 +341,17 @@ UINT32 aerofgt_state::screen_update_spinlbrk(screen_device &screen, bitmap_ind16 m_bg2_tilemap->set_scrollx(0, m_bg2scrollx - 4); // m_bg2_tilemap->set_scrolly(0, m_bg2scrolly); - machine().priority_bitmap.fill(0, cliprect); + screen.priority().fill(0, cliprect); - m_bg1_tilemap->draw(bitmap, cliprect, 0, 0); - m_bg2_tilemap->draw(bitmap, cliprect, 0, 1); + m_bg1_tilemap->draw(screen, bitmap, cliprect, 0, 0); + m_bg2_tilemap->draw(screen, bitmap, cliprect, 0, 1); /* we use the priority buffer so sprites are drawn front to back */ - m_spr_old->turbofrc_draw_sprites(m_spriteram3+0x000,m_spriteram3.bytes()/2,m_spritepalettebank, machine(), bitmap, cliprect, 1); - m_spr_old->turbofrc_draw_sprites(m_spriteram3+0x000,m_spriteram3.bytes()/2,m_spritepalettebank, machine(), bitmap, cliprect, 0); + m_spr_old->turbofrc_draw_sprites(m_spriteram3+0x000,m_spriteram3.bytes()/2,m_spritepalettebank, machine(), bitmap, cliprect, screen.priority(), 1); + m_spr_old->turbofrc_draw_sprites(m_spriteram3+0x000,m_spriteram3.bytes()/2,m_spritepalettebank, machine(), bitmap, cliprect, screen.priority(), 0); - m_spr_old2->turbofrc_draw_sprites(m_spriteram3+0x200,m_spriteram3.bytes()/2,m_spritepalettebank, machine(), bitmap, cliprect, 1); - m_spr_old2->turbofrc_draw_sprites(m_spriteram3+0x200,m_spriteram3.bytes()/2,m_spritepalettebank, machine(), bitmap, cliprect, 0); + m_spr_old2->turbofrc_draw_sprites(m_spriteram3+0x200,m_spriteram3.bytes()/2,m_spritepalettebank, machine(), bitmap, cliprect, screen.priority(), 1); + m_spr_old2->turbofrc_draw_sprites(m_spriteram3+0x200,m_spriteram3.bytes()/2,m_spritepalettebank, machine(), bitmap, cliprect, screen.priority(), 0); return 0; } @@ -368,17 +368,17 @@ UINT32 aerofgt_state::screen_update_turbofrc(screen_device &screen, bitmap_ind16 m_bg2_tilemap->set_scrollx(0, m_bg2scrollx - 7); m_bg2_tilemap->set_scrolly(0, m_bg2scrolly + 2); - machine().priority_bitmap.fill(0, cliprect); + screen.priority().fill(0, cliprect); - m_bg1_tilemap->draw(bitmap, cliprect, 0, 0); - m_bg2_tilemap->draw(bitmap, cliprect, 0, 1); + m_bg1_tilemap->draw(screen, bitmap, cliprect, 0, 0); + m_bg2_tilemap->draw(screen, bitmap, cliprect, 0, 1); /* we use the priority buffer so sprites are drawn front to back */ - m_spr_old2->turbofrc_draw_sprites(m_spriteram3+0x200,m_spriteram3.bytes()/2,m_spritepalettebank, machine(), bitmap, cliprect, 0); //enemy - m_spr_old2->turbofrc_draw_sprites(m_spriteram3+0x200,m_spriteram3.bytes()/2,m_spritepalettebank, machine(), bitmap, cliprect, 1); //enemy + m_spr_old2->turbofrc_draw_sprites(m_spriteram3+0x200,m_spriteram3.bytes()/2,m_spritepalettebank, machine(), bitmap, cliprect, screen.priority(), 0); //enemy + m_spr_old2->turbofrc_draw_sprites(m_spriteram3+0x200,m_spriteram3.bytes()/2,m_spritepalettebank, machine(), bitmap, cliprect, screen.priority(), 1); //enemy - m_spr_old->turbofrc_draw_sprites(m_spriteram3+0x000,m_spriteram3.bytes()/2,m_spritepalettebank, machine(), bitmap, cliprect, 0); //ship - m_spr_old->turbofrc_draw_sprites(m_spriteram3+0x000,m_spriteram3.bytes()/2,m_spritepalettebank, machine(), bitmap, cliprect, 1); //intro + m_spr_old->turbofrc_draw_sprites(m_spriteram3+0x000,m_spriteram3.bytes()/2,m_spritepalettebank, machine(), bitmap, cliprect, screen.priority(), 0); //ship + m_spr_old->turbofrc_draw_sprites(m_spriteram3+0x000,m_spriteram3.bytes()/2,m_spritepalettebank, machine(), bitmap, cliprect, screen.priority(), 1); //intro return 0; } @@ -389,17 +389,17 @@ UINT32 aerofgt_state::screen_update_aerofgt(screen_device &screen, bitmap_ind16 m_bg2_tilemap->set_scrollx(0, m_rasterram[0x0200] - 20); m_bg2_tilemap->set_scrolly(0, m_bg2scrolly); - machine().priority_bitmap.fill(0, cliprect); + screen.priority().fill(0, cliprect); - m_bg1_tilemap->draw(bitmap, cliprect, 0, 0); + m_bg1_tilemap->draw(screen, bitmap, cliprect, 0, 0); - m_spr->draw_sprites(m_spriteram3, m_spriteram3.bytes(), machine(), bitmap, cliprect, 0x03, 0x00); - m_spr->draw_sprites(m_spriteram3, m_spriteram3.bytes(), machine(), bitmap, cliprect, 0x03, 0x01); + m_spr->draw_sprites(m_spriteram3, m_spriteram3.bytes(), screen, bitmap, cliprect, 0x03, 0x00); + m_spr->draw_sprites(m_spriteram3, m_spriteram3.bytes(), screen, bitmap, cliprect, 0x03, 0x01); - m_bg2_tilemap->draw(bitmap, cliprect, 0, 0); + m_bg2_tilemap->draw(screen, bitmap, cliprect, 0, 0); - m_spr->draw_sprites(m_spriteram3, m_spriteram3.bytes(), machine(), bitmap, cliprect, 0x03, 0x02); - m_spr->draw_sprites(m_spriteram3, m_spriteram3.bytes(), machine(), bitmap, cliprect, 0x03, 0x03); + m_spr->draw_sprites(m_spriteram3, m_spriteram3.bytes(), screen, bitmap, cliprect, 0x03, 0x02); + m_spr->draw_sprites(m_spriteram3, m_spriteram3.bytes(), screen, bitmap, cliprect, 0x03, 0x03); return 0; } @@ -447,7 +447,7 @@ WRITE16_MEMBER(aerofgt_state::wbbc97_bitmap_enable_w) } // BOOTLEG -void aerofgt_state::aerfboo2_draw_sprites( bitmap_ind16 &bitmap, const rectangle &cliprect, int chip, int chip_disabled_pri ) +void aerofgt_state::aerfboo2_draw_sprites( screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect, int chip, int chip_disabled_pri ) { int attr_start, base, first; @@ -519,7 +519,7 @@ void aerofgt_state::aerfboo2_draw_sprites( bitmap_ind16 &bitmap, const rectangle flipx,flipy, sx,sy, zoomx << 11, zoomy << 11, - machine().priority_bitmap,pri ? 0 : 2,15); + screen.priority(),pri ? 0 : 2,15); map_start++; } @@ -532,7 +532,7 @@ void aerofgt_state::aerfboo2_draw_sprites( bitmap_ind16 &bitmap, const rectangle } // BOOTLEG -void aerofgt_state::pspikesb_draw_sprites( bitmap_ind16 &bitmap, const rectangle &cliprect ) +void aerofgt_state::pspikesb_draw_sprites( screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect ) { int i; @@ -567,7 +567,7 @@ void aerofgt_state::pspikesb_draw_sprites( bitmap_ind16 &bitmap, const rectangle } // BOOTLEG -void aerofgt_state::spikes91_draw_sprites( bitmap_ind16 &bitmap, const rectangle &cliprect ) +void aerofgt_state::spikes91_draw_sprites( screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect ) { int i; UINT8 *lookup; @@ -609,7 +609,7 @@ void aerofgt_state::spikes91_draw_sprites( bitmap_ind16 &bitmap, const rectangle } // BOOTLEG -void aerofgt_state::aerfboot_draw_sprites( bitmap_ind16 &bitmap, const rectangle &cliprect ) +void aerofgt_state::aerfboot_draw_sprites( screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect ) { int attr_start, last; @@ -647,7 +647,7 @@ void aerofgt_state::aerfboot_draw_sprites( bitmap_ind16 &bitmap, const rectangle flipx,flipy, sx,sy, zoomx << 11,zoomy << 11, - machine().priority_bitmap,pri ? 0 : 2,15); + screen.priority(),pri ? 0 : 2,15); } @@ -685,7 +685,7 @@ void aerofgt_state::aerfboot_draw_sprites( bitmap_ind16 &bitmap, const rectangle flipx,flipy, sx,sy, zoomx << 11,zoomy << 11, - machine().priority_bitmap,pri ? 0 : 2,15); + screen.priority(),pri ? 0 : 2,15); } } @@ -721,8 +721,8 @@ UINT32 aerofgt_state::screen_update_pspikesb(screen_device &screen, bitmap_ind16 m_bg1_tilemap->set_scrollx((i + scrolly) & 0xff, m_rasterram[i] + 22); m_bg1_tilemap->set_scrolly(0, scrolly); - m_bg1_tilemap->draw(bitmap, cliprect, 0, 0); - pspikesb_draw_sprites(bitmap, cliprect); + m_bg1_tilemap->draw(screen, bitmap, cliprect, 0, 0); + pspikesb_draw_sprites(screen, bitmap, cliprect); return 0; } @@ -741,8 +741,8 @@ UINT32 aerofgt_state::screen_update_spikes91(screen_device &screen, bitmap_ind16 m_bg1_tilemap->set_scrollx((i + scrolly) & 0xff, m_rasterram[i + 0x01f0 / 2] + 0x96 + 0x16); m_bg1_tilemap->set_scrolly(0, scrolly); - m_bg1_tilemap->draw(bitmap, cliprect, 0, 0); - spikes91_draw_sprites(bitmap, cliprect); + m_bg1_tilemap->draw(screen, bitmap, cliprect, 0, 0); + spikes91_draw_sprites(screen, bitmap, cliprect); /* we could use a tilemap, but it's easier to just do it here */ count = 0; @@ -780,13 +780,13 @@ UINT32 aerofgt_state::screen_update_aerfboot(screen_device &screen, bitmap_ind16 m_bg2_tilemap->set_scrollx(0, m_bg2scrollx + 172); m_bg2_tilemap->set_scrolly(0, m_bg2scrolly + 2); - machine().priority_bitmap.fill(0, cliprect); + screen.priority().fill(0, cliprect); - m_bg1_tilemap->draw(bitmap, cliprect, 0, 0); - m_bg2_tilemap->draw(bitmap, cliprect, 0, 1); + m_bg1_tilemap->draw(screen, bitmap, cliprect, 0, 0); + m_bg2_tilemap->draw(screen, bitmap, cliprect, 0, 1); /* we use the priority buffer so sprites are drawn front to back */ - aerfboot_draw_sprites(bitmap, cliprect); + aerfboot_draw_sprites(screen, bitmap, cliprect); return 0; } @@ -804,16 +804,16 @@ UINT32 aerofgt_state::screen_update_aerfboo2(screen_device &screen, bitmap_ind16 m_bg2_tilemap->set_scrollx(0, m_bg2scrollx - 7); m_bg2_tilemap->set_scrolly(0, m_bg2scrolly + 2); - machine().priority_bitmap.fill(0, cliprect); + screen.priority().fill(0, cliprect); - m_bg1_tilemap->draw(bitmap, cliprect, 0, 0); - m_bg2_tilemap->draw(bitmap, cliprect, 0, 1); + m_bg1_tilemap->draw(screen, bitmap, cliprect, 0, 0); + m_bg2_tilemap->draw(screen, bitmap, cliprect, 0, 1); /* we use the priority buffer so sprites are drawn front to back */ - aerfboo2_draw_sprites(bitmap, cliprect, 1, -1); //ship - aerfboo2_draw_sprites(bitmap, cliprect, 1, 0); //intro - aerfboo2_draw_sprites(bitmap, cliprect, 0, -1); //enemy - aerfboo2_draw_sprites(bitmap, cliprect, 0, 0); //enemy + aerfboo2_draw_sprites(screen, bitmap, cliprect, 1, -1); //ship + aerfboo2_draw_sprites(screen, bitmap, cliprect, 1, 0); //intro + aerfboo2_draw_sprites(screen, bitmap, cliprect, 0, -1); //enemy + aerfboo2_draw_sprites(screen, bitmap, cliprect, 0, 0); //enemy return 0; } @@ -828,19 +828,19 @@ UINT32 aerofgt_state::screen_update_wbbc97(screen_device &screen, bitmap_rgb32 & m_bg1_tilemap->set_scrollx((i + scrolly) & 0xff, m_rasterram[i]); m_bg1_tilemap->set_scrolly(0, scrolly); - machine().priority_bitmap.fill(0, cliprect); + screen.priority().fill(0, cliprect); if (m_wbbc97_bitmap_enable) { wbbc97_draw_bitmap(bitmap); - m_bg1_tilemap->draw(bitmap, cliprect, 0, 0); + m_bg1_tilemap->draw(screen, bitmap, cliprect, 0, 0); } else { - m_bg1_tilemap->draw(bitmap, cliprect, TILEMAP_DRAW_OPAQUE, 0); + m_bg1_tilemap->draw(screen, bitmap, cliprect, TILEMAP_DRAW_OPAQUE, 0); } - m_spr_old->turbofrc_draw_sprites(m_spriteram3,m_spriteram3.bytes(),m_spritepalettebank, machine(), bitmap, cliprect, 0); - m_spr_old->turbofrc_draw_sprites(m_spriteram3,m_spriteram3.bytes(),m_spritepalettebank, machine(), bitmap, cliprect, 1); + m_spr_old->turbofrc_draw_sprites(m_spriteram3,m_spriteram3.bytes(),m_spritepalettebank, machine(), bitmap, cliprect, screen.priority(), 0); + m_spr_old->turbofrc_draw_sprites(m_spriteram3,m_spriteram3.bytes(),m_spritepalettebank, machine(), bitmap, cliprect, screen.priority(), 1); return 0; } diff --git a/src/mame/video/airbustr.c b/src/mame/video/airbustr.c index b5c43998982..355f23776af 100644 --- a/src/mame/video/airbustr.c +++ b/src/mame/video/airbustr.c @@ -126,8 +126,8 @@ void airbustr_state::video_start() UINT32 airbustr_state::screen_update_airbustr(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect) { - m_bg_tilemap->draw(bitmap, cliprect, 0, 0); - m_fg_tilemap->draw(bitmap, cliprect, 0, 0); + m_bg_tilemap->draw(screen, bitmap, cliprect, 0, 0); + m_fg_tilemap->draw(screen, bitmap, cliprect, 0, 0); // copy the sprite bitmap to the screen m_pandora->update(bitmap, cliprect); diff --git a/src/mame/video/ajax.c b/src/mame/video/ajax.c index 5a54faf25be..8466b0bb4a2 100644 --- a/src/mame/video/ajax.c +++ b/src/mame/video/ajax.c @@ -88,24 +88,24 @@ UINT32 ajax_state::screen_update_ajax(screen_device &screen, bitmap_ind16 &bitma { m_k052109->tilemap_update(); - machine().priority_bitmap.fill(0, cliprect); + screen.priority().fill(0, cliprect); bitmap.fill(get_black_pen(machine()), cliprect); - m_k052109->tilemap_draw(bitmap, cliprect, 2, 0, 1); + m_k052109->tilemap_draw(screen, bitmap, cliprect, 2, 0, 1); if (m_priority) { /* basic layer order is B, zoom, A, F */ - m_k051316->zoom_draw(bitmap, cliprect, 0, 4); - m_k052109->tilemap_draw(bitmap, cliprect, 1, 0, 2); + m_k051316->zoom_draw(screen, bitmap, cliprect, 0, 4); + m_k052109->tilemap_draw(screen, bitmap, cliprect, 1, 0, 2); } else { /* basic layer order is B, A, zoom, F */ - m_k052109->tilemap_draw(bitmap, cliprect, 1, 0, 2); - m_k051316->zoom_draw(bitmap, cliprect, 0, 4); + m_k052109->tilemap_draw(screen, bitmap, cliprect, 1, 0, 2); + m_k051316->zoom_draw(screen, bitmap, cliprect, 0, 4); } - m_k052109->tilemap_draw(bitmap, cliprect, 0, 0, 8); + m_k052109->tilemap_draw(screen, bitmap, cliprect, 0, 0, 8); - m_k051960->k051960_sprites_draw(bitmap, cliprect, -1, -1); + m_k051960->k051960_sprites_draw(bitmap, cliprect, screen.priority(), -1, -1); return 0; } diff --git a/src/mame/video/aliens.c b/src/mame/video/aliens.c index 6f481a1d7fd..1f73e03e31c 100644 --- a/src/mame/video/aliens.c +++ b/src/mame/video/aliens.c @@ -75,13 +75,13 @@ UINT32 aliens_state::screen_update_aliens(screen_device &screen, bitmap_ind16 &b { m_k052109->tilemap_update(); - machine().priority_bitmap.fill(0, cliprect); + screen.priority().fill(0, cliprect); bitmap.fill(m_layer_colorbase[1] * 16, cliprect); - m_k052109->tilemap_draw(bitmap, cliprect, 1, 0, 1); - m_k052109->tilemap_draw(bitmap, cliprect, 2, 0, 2); - m_k052109->tilemap_draw(bitmap, cliprect, 0, 0, 4); + m_k052109->tilemap_draw(screen, bitmap, cliprect, 1, 0, 1); + m_k052109->tilemap_draw(screen, bitmap, cliprect, 2, 0, 2); + m_k052109->tilemap_draw(screen, bitmap, cliprect, 0, 0, 4); - m_k051960->k051960_sprites_draw(bitmap, cliprect, -1, -1); + m_k051960->k051960_sprites_draw(bitmap, cliprect, screen.priority(), -1, -1); return 0; } diff --git a/src/mame/video/alpha68k.c b/src/mame/video/alpha68k.c index 8830e8875a3..616d5d09904 100644 --- a/src/mame/video/alpha68k.c +++ b/src/mame/video/alpha68k.c @@ -135,7 +135,7 @@ UINT32 alpha68k_state::screen_update_alpha68k_II(screen_device &screen, bitmap_i draw_sprites(bitmap, cliprect, 2, 0x0000, 0x0800); draw_sprites(bitmap, cliprect, 0, 0x0000, 0x07c0); //ZT - m_fix_tilemap->draw(bitmap, cliprect, 0, 0); + m_fix_tilemap->draw(screen, bitmap, cliprect, 0, 0); return 0; } @@ -299,7 +299,7 @@ UINT32 alpha68k_state::screen_update_alpha68k_V(screen_device &screen, bitmap_in draw_sprites_V(bitmap, cliprect, 0, 0x0000, 0x07c0, 0x8000, 0, 0x7fff); } - m_fix_tilemap->draw(bitmap, cliprect, 0, 0); + m_fix_tilemap->draw(screen, bitmap, cliprect, 0, 0); return 0; } @@ -319,7 +319,7 @@ UINT32 alpha68k_state::screen_update_alpha68k_V_sb(screen_device &screen, bitmap draw_sprites_V(bitmap, cliprect, 2, 0x0000, 0x0800, 0x4000, 0x8000, 0x3fff); draw_sprites_V(bitmap, cliprect, 0, 0x0000, 0x07c0, 0x4000, 0x8000, 0x3fff); - m_fix_tilemap->draw(bitmap, cliprect, 0, 0); + m_fix_tilemap->draw(screen, bitmap, cliprect, 0, 0); return 0; } diff --git a/src/mame/video/ampoker2.c b/src/mame/video/ampoker2.c index 41fcbb8ddbe..da7a1fb9aeb 100644 --- a/src/mame/video/ampoker2.c +++ b/src/mame/video/ampoker2.c @@ -159,6 +159,6 @@ VIDEO_START_MEMBER(ampoker2_state,sigma2k) UINT32 ampoker2_state::screen_update_ampoker2(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect) { - m_bg_tilemap->draw(bitmap, cliprect, 0, 0); + m_bg_tilemap->draw(screen, bitmap, cliprect, 0, 0); return 0; } diff --git a/src/mame/video/amspdwy.c b/src/mame/video/amspdwy.c index 0c3ae5428ae..984d64b0bc4 100644 --- a/src/mame/video/amspdwy.c +++ b/src/mame/video/amspdwy.c @@ -142,7 +142,7 @@ void amspdwy_state::draw_sprites( bitmap_ind16 &bitmap, const rectangle &cliprec UINT32 amspdwy_state::screen_update_amspdwy(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect) { - m_bg_tilemap->draw(bitmap, cliprect, 0, 0); + m_bg_tilemap->draw(screen, bitmap, cliprect, 0, 0); draw_sprites(bitmap, cliprect); return 0; } diff --git a/src/mame/video/angelkds.c b/src/mame/video/angelkds.c index 8cd1f0ab809..445a91e9f5b 100644 --- a/src/mame/video/angelkds.c +++ b/src/mame/video/angelkds.c @@ -258,23 +258,23 @@ UINT32 angelkds_state::screen_update_angelkds(screen_device &screen, bitmap_ind1 clip.set(8*0, 8*16-1, visarea.min_y, visarea.max_y); if ((m_layer_ctrl & 0x80) == 0x00) - m_bgtop_tilemap->draw(bitmap, clip, 0, 0); + m_bgtop_tilemap->draw(screen, bitmap, clip, 0, 0); draw_sprites(bitmap, clip, 0x80); if ((m_layer_ctrl & 0x20) == 0x00) - m_tx_tilemap->draw(bitmap, clip, 0, 0); + m_tx_tilemap->draw(screen, bitmap, clip, 0, 0); /* draw bottom of screen */ clip.set(8*16, 8*32-1, visarea.min_y, visarea.max_y); if ((m_layer_ctrl & 0x40) == 0x00) - m_bgbot_tilemap->draw(bitmap, clip, 0, 0); + m_bgbot_tilemap->draw(screen, bitmap, clip, 0, 0); draw_sprites(bitmap, clip, 0x40); if ((m_layer_ctrl & 0x20) == 0x00) - m_tx_tilemap->draw(bitmap, clip, 0, 0); + m_tx_tilemap->draw(screen, bitmap, clip, 0, 0); return 0; } diff --git a/src/mame/video/appoooh.c b/src/mame/video/appoooh.c index f26530423dd..5453c5d6448 100644 --- a/src/mame/video/appoooh.c +++ b/src/mame/video/appoooh.c @@ -264,10 +264,10 @@ void appoooh_state::robowres_draw_sprites( bitmap_ind16 &dest_bmp, const rectang UINT32 appoooh_state::screen_update_appoooh(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect) { - m_bg_tilemap->draw(bitmap, cliprect, 0, 0); + m_bg_tilemap->draw(screen, bitmap, cliprect, 0, 0); if (m_priority == 0) /* fg behind sprites */ - m_fg_tilemap->draw(bitmap, cliprect, 0, 0); + m_fg_tilemap->draw(screen, bitmap, cliprect, 0, 0); /* draw sprites */ if (m_priority == 1) @@ -286,17 +286,17 @@ UINT32 appoooh_state::screen_update_appoooh(screen_device &screen, bitmap_ind16 } if (m_priority != 0) /* fg in front of sprites */ - m_fg_tilemap->draw(bitmap, cliprect, 0, 0); + m_fg_tilemap->draw(screen, bitmap, cliprect, 0, 0); return 0; } UINT32 appoooh_state::screen_update_robowres(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect) { - m_bg_tilemap->draw(bitmap, cliprect, 0, 0); + m_bg_tilemap->draw(screen, bitmap, cliprect, 0, 0); if (m_priority == 0) /* fg behind sprites */ - m_fg_tilemap->draw(bitmap, cliprect, 0, 0); + m_fg_tilemap->draw(screen, bitmap, cliprect, 0, 0); /* draw sprites */ if (m_priority == 1) @@ -315,7 +315,7 @@ UINT32 appoooh_state::screen_update_robowres(screen_device &screen, bitmap_ind16 } if (m_priority != 0) /* fg in front of sprites */ - m_fg_tilemap->draw(bitmap, cliprect, 0, 0); + m_fg_tilemap->draw(screen, bitmap, cliprect, 0, 0); return 0; } diff --git a/src/mame/video/aquarium.c b/src/mame/video/aquarium.c index 1aa432386d2..b8e52a1e027 100644 --- a/src/mame/video/aquarium.c +++ b/src/mame/video/aquarium.c @@ -159,13 +159,13 @@ UINT32 aquarium_state::screen_update_aquarium(screen_device &screen, bitmap_ind1 m_txt_tilemap->set_scrollx(0, m_scroll[4]); m_txt_tilemap->set_scrolly(0, m_scroll[5]); - m_bak_tilemap->draw(bitmap, cliprect, 0, 0); - m_mid_tilemap->draw(bitmap, cliprect, 0, 0); + m_bak_tilemap->draw(screen, bitmap, cliprect, 0, 0); + m_mid_tilemap->draw(screen, bitmap, cliprect, 0, 0); draw_sprites(bitmap, cliprect, 16); - m_bak_tilemap->draw(bitmap, cliprect, 1, 0); - m_mid_tilemap->draw(bitmap, cliprect, 1, 0); - m_txt_tilemap->draw(bitmap, cliprect, 0, 0); + m_bak_tilemap->draw(screen, bitmap, cliprect, 1, 0); + m_mid_tilemap->draw(screen, bitmap, cliprect, 1, 0); + m_txt_tilemap->draw(screen, bitmap, cliprect, 0, 0); return 0; } diff --git a/src/mame/video/argus.c b/src/mame/video/argus.c index e6927115996..c3dfef88bb0 100644 --- a/src/mame/video/argus.c +++ b/src/mame/video/argus.c @@ -862,10 +862,10 @@ void argus_state::valtric_draw_mosaic(screen_device &screen, bitmap_rgb32 &bitma } if (m_mosaic==0) - m_bg1_tilemap->draw(bitmap, cliprect, 0, 0); + m_bg1_tilemap->draw(screen, bitmap, cliprect, 0, 0); else { - m_bg1_tilemap->draw(m_mosaicbitmap, cliprect, 0, 0); + m_bg1_tilemap->draw(screen, m_mosaicbitmap, cliprect, 0, 0); { int step=m_mosaic; UINT32 *dest; @@ -905,10 +905,10 @@ void argus_state::valtric_draw_mosaic(screen_device &screen, bitmap_rgb32 &bitma int step = 0x10 - (m_valtric_mosaic & 0x0f); if (step == 1) - m_bg1_tilemap->draw(bitmap, cliprect, 0, 0); + m_bg1_tilemap->draw(screen, bitmap, cliprect, 0, 0); else { - m_bg1_tilemap->draw(m_mosaicbitmap, cliprect, 0, 0); + m_bg1_tilemap->draw(screen, m_mosaicbitmap, cliprect, 0, 0); { UINT32 *dest; int x,y,xx,yy,c=0; @@ -1149,12 +1149,12 @@ UINT32 argus_state::screen_update_argus(screen_device &screen, bitmap_rgb32 &bit /* scroll BG0 and render tile at proper position */ argus_bg0_scroll_handle(); - m_bg0_tilemap->draw(bitmap, cliprect, 0, 0); + m_bg0_tilemap->draw(screen, bitmap, cliprect, 0, 0); argus_draw_sprites(bitmap, cliprect, 0); if (m_bg_status & 1) /* Backgound enable */ - m_bg1_tilemap->draw(bitmap, cliprect, 0, 0); + m_bg1_tilemap->draw(screen, bitmap, cliprect, 0, 0); argus_draw_sprites(bitmap, cliprect, 1); - m_tx_tilemap->draw(bitmap, cliprect, 0, 0); + m_tx_tilemap->draw(screen, bitmap, cliprect, 0, 0); return 0; } @@ -1167,7 +1167,7 @@ UINT32 argus_state::screen_update_valtric(screen_device &screen, bitmap_rgb32 &b else bitmap.fill(get_black_pen(machine()), cliprect); valtric_draw_sprites(bitmap, cliprect); - m_tx_tilemap->draw(bitmap, cliprect, 0, 0); + m_tx_tilemap->draw(screen, bitmap, cliprect, 0, 0); return 0; } @@ -1176,12 +1176,12 @@ UINT32 argus_state::screen_update_butasan(screen_device &screen, bitmap_rgb32 &b bg_setting(); if (m_bg_status & 1) /* Backgound enable */ - m_bg0_tilemap->draw(bitmap, cliprect, 0, 0); + m_bg0_tilemap->draw(screen, bitmap, cliprect, 0, 0); else bitmap.fill(get_black_pen(machine()), cliprect); - if (m_butasan_bg1_status & 1) m_bg1_tilemap->draw(bitmap, cliprect, 0, 0); + if (m_butasan_bg1_status & 1) m_bg1_tilemap->draw(screen, bitmap, cliprect, 0, 0); butasan_draw_sprites(bitmap, cliprect); - m_tx_tilemap->draw(bitmap, cliprect, 0, 0); + m_tx_tilemap->draw(screen, bitmap, cliprect, 0, 0); butasan_log_vram(); return 0; diff --git a/src/mame/video/arkanoid.c b/src/mame/video/arkanoid.c index 01dfee54f50..c37f08a0676 100644 --- a/src/mame/video/arkanoid.c +++ b/src/mame/video/arkanoid.c @@ -244,13 +244,13 @@ void arkanoid_state::draw_sprites( bitmap_ind16 &bitmap, const rectangle &clipre UINT32 arkanoid_state::screen_update_arkanoid(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect) { - m_bg_tilemap->draw(bitmap, cliprect, 0, 0); + m_bg_tilemap->draw(screen, bitmap, cliprect, 0, 0); draw_sprites(bitmap, cliprect); return 0; } UINT32 arkanoid_state::screen_update_hexa(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect) { - m_bg_tilemap->draw(bitmap, cliprect, 0, 0); + m_bg_tilemap->draw(screen, bitmap, cliprect, 0, 0); return 0; } diff --git a/src/mame/video/armedf.c b/src/mame/video/armedf.c index 53730a7f8b1..62b3108428c 100644 --- a/src/mame/video/armedf.c +++ b/src/mame/video/armedf.c @@ -386,19 +386,19 @@ UINT32 armedf_state::screen_update_armedf(screen_device &screen, bitmap_ind16 &b bitmap.fill(0xff, cliprect ); - m_tx_tilemap->draw(bitmap, cliprect, TILEMAP_DRAW_CATEGORY(1), 0); + m_tx_tilemap->draw(screen, bitmap, cliprect, TILEMAP_DRAW_CATEGORY(1), 0); - m_bg_tilemap->draw(bitmap, cliprect, 0, 0); + m_bg_tilemap->draw(screen, bitmap, cliprect, 0, 0); if (sprite_enable) draw_sprites(bitmap, cliprect, 2); - m_fg_tilemap->draw(bitmap, cliprect, 0, 0); + m_fg_tilemap->draw(screen, bitmap, cliprect, 0, 0); if (sprite_enable) draw_sprites(bitmap, cliprect, 1); - m_tx_tilemap->draw(bitmap, cliprect, TILEMAP_DRAW_CATEGORY(0), 0); + m_tx_tilemap->draw(screen, bitmap, cliprect, TILEMAP_DRAW_CATEGORY(0), 0); if (sprite_enable) draw_sprites(bitmap, cliprect, 0); diff --git a/src/mame/video/ashnojoe.c b/src/mame/video/ashnojoe.c index 5c219edfc7f..ad8a71e92b7 100644 --- a/src/mame/video/ashnojoe.c +++ b/src/mame/video/ashnojoe.c @@ -204,15 +204,15 @@ UINT32 ashnojoe_state::screen_update_ashnojoe(screen_device &screen, bitmap_ind1 flip_screen_set(m_tilemap_reg[0] & 1); if(m_tilemap_reg[0] & 0x02) - m_joetilemap7->draw(bitmap, cliprect, 0, 0); + m_joetilemap7->draw(screen, bitmap, cliprect, 0, 0); else - m_joetilemap6->draw(bitmap, cliprect, 0, 0); + m_joetilemap6->draw(screen, bitmap, cliprect, 0, 0); - m_joetilemap4->draw(bitmap, cliprect, 0, 0); - m_joetilemap2->draw(bitmap, cliprect, 0, 0); - m_joetilemap5->draw(bitmap, cliprect, 0, 0); - m_joetilemap3->draw(bitmap, cliprect, 0, 0); - m_joetilemap->draw(bitmap, cliprect, 0, 0); + m_joetilemap4->draw(screen, bitmap, cliprect, 0, 0); + m_joetilemap2->draw(screen, bitmap, cliprect, 0, 0); + m_joetilemap5->draw(screen, bitmap, cliprect, 0, 0); + m_joetilemap3->draw(screen, bitmap, cliprect, 0, 0); + m_joetilemap->draw(screen, bitmap, cliprect, 0, 0); return 0; } diff --git a/src/mame/video/asterix.c b/src/mame/video/asterix.c index 6885e53a831..820cb4b5b0a 100644 --- a/src/mame/video/asterix.c +++ b/src/mame/video/asterix.c @@ -93,17 +93,17 @@ UINT32 asterix_state::screen_update_asterix(screen_device &screen, bitmap_ind16 konami_sortlayers3(layer, m_layerpri); - machine().priority_bitmap.fill(0, cliprect); + screen.priority().fill(0, cliprect); bitmap.fill(0, cliprect); - m_k056832->tilemap_draw(bitmap, cliprect, layer[0], K056832_DRAW_FLAG_MIRROR, 1); - m_k056832->tilemap_draw(bitmap, cliprect, layer[1], K056832_DRAW_FLAG_MIRROR, 2); - m_k056832->tilemap_draw(bitmap, cliprect, layer[2], K056832_DRAW_FLAG_MIRROR, 4); + m_k056832->tilemap_draw(screen, bitmap, cliprect, layer[0], K056832_DRAW_FLAG_MIRROR, 1); + m_k056832->tilemap_draw(screen, bitmap, cliprect, layer[1], K056832_DRAW_FLAG_MIRROR, 2); + m_k056832->tilemap_draw(screen, bitmap, cliprect, layer[2], K056832_DRAW_FLAG_MIRROR, 4); /* this isn't supported anymore and it is unsure if still needed; keeping here for reference pdrawgfx_shadow_lowpri = 1; fix shadows in front of feet */ - m_k053244->k053245_sprites_draw(bitmap, cliprect); + m_k053244->k053245_sprites_draw(bitmap, cliprect, screen.priority()); - m_k056832->tilemap_draw(bitmap, cliprect, 2, K056832_DRAW_FLAG_MIRROR, 0); + m_k056832->tilemap_draw(screen, bitmap, cliprect, 2, K056832_DRAW_FLAG_MIRROR, 0); return 0; } diff --git a/src/mame/video/asuka.c b/src/mame/video/asuka.c index aef340c2046..01701f36614 100644 --- a/src/mame/video/asuka.c +++ b/src/mame/video/asuka.c @@ -26,17 +26,17 @@ UINT32 asuka_state::screen_update_asuka(screen_device &screen, bitmap_ind16 &bit layer[1] = layer[0] ^ 1; layer[2] = 2; - machine().priority_bitmap.fill(0, cliprect); + screen.priority().fill(0, cliprect); /* Ensure screen blanked even when bottom layer not drawn due to disable bit */ bitmap.fill(0, cliprect); - m_tc0100scn->tilemap_draw(bitmap, cliprect, layer[0], TILEMAP_DRAW_OPAQUE, 1); - m_tc0100scn->tilemap_draw(bitmap, cliprect, layer[1], 0, 2); - m_tc0100scn->tilemap_draw(bitmap, cliprect, layer[2], 0, 4); + m_tc0100scn->tilemap_draw(screen, bitmap, cliprect, layer[0], TILEMAP_DRAW_OPAQUE, 1); + m_tc0100scn->tilemap_draw(screen, bitmap, cliprect, layer[1], 0, 2); + m_tc0100scn->tilemap_draw(screen, bitmap, cliprect, layer[2], 0, 4); /* Sprites may be over or under top bg layer */ - m_pc090oj->draw_sprites(bitmap, cliprect, 2); + m_pc090oj->draw_sprites(bitmap, cliprect, screen.priority(), 2); return 0; } @@ -51,16 +51,16 @@ UINT32 asuka_state::screen_update_bonzeadv(screen_device &screen, bitmap_ind16 & layer[1] = layer[0] ^ 1; layer[2] = 2; - machine().priority_bitmap.fill(0, cliprect); + screen.priority().fill(0, cliprect); /* Ensure screen blanked even when bottom layer not drawn due to disable bit */ bitmap.fill(0, cliprect); - m_tc0100scn->tilemap_draw(bitmap, cliprect, layer[0], TILEMAP_DRAW_OPAQUE, 1); - m_tc0100scn->tilemap_draw(bitmap, cliprect, layer[1], 0, 2); - m_tc0100scn->tilemap_draw(bitmap, cliprect, layer[2], 0, 4); + m_tc0100scn->tilemap_draw(screen, bitmap, cliprect, layer[0], TILEMAP_DRAW_OPAQUE, 1); + m_tc0100scn->tilemap_draw(screen, bitmap, cliprect, layer[1], 0, 2); + m_tc0100scn->tilemap_draw(screen, bitmap, cliprect, layer[2], 0, 4); /* Sprites are always over both bg layers */ - m_pc090oj->draw_sprites(bitmap, cliprect, 0); + m_pc090oj->draw_sprites(bitmap, cliprect, screen.priority(), 0); return 0; } diff --git a/src/mame/video/atarig1.c b/src/mame/video/atarig1.c index dda5b6ec198..b366bca8027 100644 --- a/src/mame/video/atarig1.c +++ b/src/mame/video/atarig1.c @@ -131,13 +131,13 @@ void atarig1_state::scanline_update(screen_device &screen, int scanline) UINT32 atarig1_state::screen_update_atarig1(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect) { /* draw the playfield */ - m_playfield_tilemap->draw(bitmap, cliprect, 0, 0); + m_playfield_tilemap->draw(screen, bitmap, cliprect, 0, 0); /* copy the motion objects on top */ copybitmap_trans(bitmap, *atarirle_get_vram(m_rle, 0), 0, 0, 0, 0, cliprect, 0); /* add the alpha on top */ - m_alpha_tilemap->draw(bitmap, cliprect, 0, 0); + m_alpha_tilemap->draw(screen, bitmap, cliprect, 0, 0); return 0; } diff --git a/src/mame/video/atarig42.c b/src/mame/video/atarig42.c index f53ae649cf0..0647dc32cd6 100644 --- a/src/mame/video/atarig42.c +++ b/src/mame/video/atarig42.c @@ -159,18 +159,18 @@ void atarig42_state::scanline_update(screen_device &screen, int scanline) UINT32 atarig42_state::screen_update_atarig42(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect) { - bitmap_ind8 &priority_bitmap = machine().priority_bitmap; + bitmap_ind8 &priority_bitmap = screen.priority(); /* draw the playfield */ priority_bitmap.fill(0, cliprect); - m_playfield_tilemap->draw(bitmap, cliprect, 0, 0); - m_playfield_tilemap->draw(bitmap, cliprect, 1, 1); - m_playfield_tilemap->draw(bitmap, cliprect, 2, 2); - m_playfield_tilemap->draw(bitmap, cliprect, 3, 3); - m_playfield_tilemap->draw(bitmap, cliprect, 4, 4); - m_playfield_tilemap->draw(bitmap, cliprect, 5, 5); - m_playfield_tilemap->draw(bitmap, cliprect, 6, 6); - m_playfield_tilemap->draw(bitmap, cliprect, 7, 7); + m_playfield_tilemap->draw(screen, bitmap, cliprect, 0, 0); + m_playfield_tilemap->draw(screen, bitmap, cliprect, 1, 1); + m_playfield_tilemap->draw(screen, bitmap, cliprect, 2, 2); + m_playfield_tilemap->draw(screen, bitmap, cliprect, 3, 3); + m_playfield_tilemap->draw(screen, bitmap, cliprect, 4, 4); + m_playfield_tilemap->draw(screen, bitmap, cliprect, 5, 5); + m_playfield_tilemap->draw(screen, bitmap, cliprect, 6, 6); + m_playfield_tilemap->draw(screen, bitmap, cliprect, 7, 7); /* copy the motion objects on top */ { @@ -199,7 +199,7 @@ UINT32 atarig42_state::screen_update_atarig42(screen_device &screen, bitmap_ind1 } /* add the alpha on top */ - m_alpha_tilemap->draw(bitmap, cliprect, 0, 0); + m_alpha_tilemap->draw(screen, bitmap, cliprect, 0, 0); return 0; } diff --git a/src/mame/video/atarigt.c b/src/mame/video/atarigt.c index 703655019be..7c100498c7d 100644 --- a/src/mame/video/atarigt.c +++ b/src/mame/video/atarigt.c @@ -507,10 +507,10 @@ UINT32 atarigt_state::screen_update_atarigt(screen_device &screen, bitmap_rgb32 int x, y; /* draw the playfield */ - m_playfield_tilemap->draw(*m_pf_bitmap, cliprect, 0, 0); + m_playfield_tilemap->draw(screen, *m_pf_bitmap, cliprect, 0, 0); /* draw the alpha layer */ - m_alpha_tilemap->draw(*m_an_bitmap, cliprect, 0, 0); + m_alpha_tilemap->draw(screen, *m_an_bitmap, cliprect, 0, 0); /* cache pointers */ color_latch = m_colorram[0x30000/2]; diff --git a/src/mame/video/atarigx2.c b/src/mame/video/atarigx2.c index 890dd56d22d..bf34999e58d 100644 --- a/src/mame/video/atarigx2.c +++ b/src/mame/video/atarigx2.c @@ -167,18 +167,18 @@ void atarigx2_state::scanline_update(screen_device &screen, int scanline) UINT32 atarigx2_state::screen_update_atarigx2(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect) { - bitmap_ind8 &priority_bitmap = machine().priority_bitmap; + bitmap_ind8 &priority_bitmap = screen.priority(); /* draw the playfield */ priority_bitmap.fill(0, cliprect); - m_playfield_tilemap->draw(bitmap, cliprect, 0, 0); - m_playfield_tilemap->draw(bitmap, cliprect, 1, 1); - m_playfield_tilemap->draw(bitmap, cliprect, 2, 2); - m_playfield_tilemap->draw(bitmap, cliprect, 3, 3); - m_playfield_tilemap->draw(bitmap, cliprect, 4, 4); - m_playfield_tilemap->draw(bitmap, cliprect, 5, 5); - m_playfield_tilemap->draw(bitmap, cliprect, 6, 6); - m_playfield_tilemap->draw(bitmap, cliprect, 7, 7); + m_playfield_tilemap->draw(screen, bitmap, cliprect, 0, 0); + m_playfield_tilemap->draw(screen, bitmap, cliprect, 1, 1); + m_playfield_tilemap->draw(screen, bitmap, cliprect, 2, 2); + m_playfield_tilemap->draw(screen, bitmap, cliprect, 3, 3); + m_playfield_tilemap->draw(screen, bitmap, cliprect, 4, 4); + m_playfield_tilemap->draw(screen, bitmap, cliprect, 5, 5); + m_playfield_tilemap->draw(screen, bitmap, cliprect, 6, 6); + m_playfield_tilemap->draw(screen, bitmap, cliprect, 7, 7); /* copy the motion objects on top */ { @@ -202,7 +202,7 @@ UINT32 atarigx2_state::screen_update_atarigx2(screen_device &screen, bitmap_ind1 } /* add the alpha on top */ - m_alpha_tilemap->draw(bitmap, cliprect, 0, 0); + m_alpha_tilemap->draw(screen, bitmap, cliprect, 0, 0); return 0; } diff --git a/src/mame/video/atarisy1.c b/src/mame/video/atarisy1.c index 8782c30861b..79b2f02e50b 100644 --- a/src/mame/video/atarisy1.c +++ b/src/mame/video/atarisy1.c @@ -464,7 +464,7 @@ UINT32 atarisy1_state::screen_update_atarisy1(screen_device &screen, bitmap_ind1 m_mob->draw_async(cliprect); // draw the playfield - m_playfield_tilemap->draw(bitmap, cliprect, 0, 0); + m_playfield_tilemap->draw(screen, bitmap, cliprect, 0, 0); // draw and merge the MO bitmap_ind16 &mobitmap = m_mob->bitmap(); @@ -495,7 +495,7 @@ UINT32 atarisy1_state::screen_update_atarisy1(screen_device &screen, bitmap_ind1 } /* add the alpha on top */ - m_alpha_tilemap->draw(bitmap, cliprect, 0, 0); + m_alpha_tilemap->draw(screen, bitmap, cliprect, 0, 0); return 0; } diff --git a/src/mame/video/atarisy2.c b/src/mame/video/atarisy2.c index 0dcc74f7144..f4c7c02f44c 100644 --- a/src/mame/video/atarisy2.c +++ b/src/mame/video/atarisy2.c @@ -279,14 +279,14 @@ UINT32 atarisy2_state::screen_update_atarisy2(screen_device &screen, bitmap_ind1 m_mob->draw_async(cliprect); // reset priorities - bitmap_ind8 &priority_bitmap = machine().priority_bitmap; + bitmap_ind8 &priority_bitmap = screen.priority(); priority_bitmap.fill(0, cliprect); /* draw the playfield */ - m_playfield_tilemap->draw(bitmap, cliprect, 0, 0); - m_playfield_tilemap->draw(bitmap, cliprect, 1, 1); - m_playfield_tilemap->draw(bitmap, cliprect, 2, 2); - m_playfield_tilemap->draw(bitmap, cliprect, 3, 3); + m_playfield_tilemap->draw(screen, bitmap, cliprect, 0, 0); + m_playfield_tilemap->draw(screen, bitmap, cliprect, 1, 1); + m_playfield_tilemap->draw(screen, bitmap, cliprect, 2, 2); + m_playfield_tilemap->draw(screen, bitmap, cliprect, 3, 3); /* draw and merge the MO */ bitmap_ind16 &mobitmap = m_mob->bitmap(); @@ -316,6 +316,6 @@ UINT32 atarisy2_state::screen_update_atarisy2(screen_device &screen, bitmap_ind1 } /* add the alpha on top */ - m_alpha_tilemap->draw(bitmap, cliprect, 0, 0); + m_alpha_tilemap->draw(screen, bitmap, cliprect, 0, 0); return 0; } diff --git a/src/mame/video/atetris.c b/src/mame/video/atetris.c index 138e3c17507..6dd176ef30d 100644 --- a/src/mame/video/atetris.c +++ b/src/mame/video/atetris.c @@ -62,6 +62,6 @@ void atetris_state::video_start() UINT32 atetris_state::screen_update_atetris(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect) { - m_bg_tilemap->draw(bitmap, cliprect, 0,0); + m_bg_tilemap->draw(screen, bitmap, cliprect, 0,0); return 0; } diff --git a/src/mame/video/badlands.c b/src/mame/video/badlands.c index 40b7cfb68a1..9ba12abf52a 100644 --- a/src/mame/video/badlands.c +++ b/src/mame/video/badlands.c @@ -105,7 +105,7 @@ UINT32 badlands_state::screen_update_badlands(screen_device &screen, bitmap_ind1 m_mob->draw_async(cliprect); // draw the playfield - m_playfield_tilemap->draw(bitmap, cliprect, 0, 0); + m_playfield_tilemap->draw(screen, bitmap, cliprect, 0, 0); // draw and merge the MO bitmap_ind16 &mobitmap = m_mob->bitmap(); diff --git a/src/mame/video/bagman.c b/src/mame/video/bagman.c index e670f69cfa6..e103cbd2e0e 100644 --- a/src/mame/video/bagman.c +++ b/src/mame/video/bagman.c @@ -147,7 +147,7 @@ UINT32 bagman_state::screen_update_bagman(screen_device &screen, bitmap_ind16 &b if (*m_video_enable == 0) return 0; - m_bg_tilemap->draw(bitmap, cliprect, 0, 0); + m_bg_tilemap->draw(screen, bitmap, cliprect, 0, 0); draw_sprites(bitmap, cliprect); return 0; } diff --git a/src/mame/video/bankp.c b/src/mame/video/bankp.c index c3da6685fd4..f0f91706d78 100644 --- a/src/mame/video/bankp.c +++ b/src/mame/video/bankp.c @@ -177,20 +177,20 @@ UINT32 bankp_state::screen_update_bankp(screen_device &screen, bitmap_ind16 &bit switch (m_priority) { case 0: // combat hawk uses this - m_bg_tilemap->draw(bitmap, cliprect, TILEMAP_DRAW_OPAQUE, 0); - m_fg_tilemap->draw(bitmap, cliprect, 0, 0); + m_bg_tilemap->draw(screen, bitmap, cliprect, TILEMAP_DRAW_OPAQUE, 0); + m_fg_tilemap->draw(screen, bitmap, cliprect, 0, 0); break; case 1: - m_bg_tilemap->draw(bitmap, cliprect, TILEMAP_DRAW_OPAQUE, 0); - m_fg_tilemap->draw(bitmap, cliprect, 0, 0); + m_bg_tilemap->draw(screen, bitmap, cliprect, TILEMAP_DRAW_OPAQUE, 0); + m_fg_tilemap->draw(screen, bitmap, cliprect, 0, 0); break; case 2: - m_fg_tilemap->draw(bitmap, cliprect, TILEMAP_DRAW_OPAQUE, 0); - m_bg_tilemap->draw(bitmap, cliprect, 0, 0); + m_fg_tilemap->draw(screen, bitmap, cliprect, TILEMAP_DRAW_OPAQUE, 0); + m_bg_tilemap->draw(screen, bitmap, cliprect, 0, 0); break; case 3: - m_fg_tilemap->draw(bitmap, cliprect, TILEMAP_DRAW_OPAQUE, 0); // just a guess - m_bg_tilemap->draw(bitmap, cliprect, 0, 0); + m_fg_tilemap->draw(screen, bitmap, cliprect, TILEMAP_DRAW_OPAQUE, 0); // just a guess + m_bg_tilemap->draw(screen, bitmap, cliprect, 0, 0); break; } return 0; diff --git a/src/mame/video/baraduke.c b/src/mame/video/baraduke.c index 29505f7049a..d39eb90bb27 100644 --- a/src/mame/video/baraduke.c +++ b/src/mame/video/baraduke.c @@ -317,12 +317,12 @@ UINT32 baraduke_state::screen_update_baraduke(screen_device &screen, bitmap_ind1 else back = 0; - m_bg_tilemap[back]->draw(bitmap, cliprect, TILEMAP_DRAW_OPAQUE,0); + m_bg_tilemap[back]->draw(screen, bitmap, cliprect, TILEMAP_DRAW_OPAQUE,0); draw_sprites(bitmap,cliprect,0); - m_bg_tilemap[back ^ 1]->draw(bitmap, cliprect, 0,0); + m_bg_tilemap[back ^ 1]->draw(screen, bitmap, cliprect, 0,0); draw_sprites(bitmap,cliprect,1); - m_tx_tilemap->draw(bitmap, cliprect, 0,0); + m_tx_tilemap->draw(screen, bitmap, cliprect, 0,0); return 0; } diff --git a/src/mame/video/batman.c b/src/mame/video/batman.c index 43c156bf34c..98758f07c39 100644 --- a/src/mame/video/batman.c +++ b/src/mame/video/batman.c @@ -106,16 +106,16 @@ UINT32 batman_state::screen_update_batman(screen_device &screen, bitmap_ind16 &b m_vad->mob()->draw_async(cliprect); /* draw the playfield */ - bitmap_ind8 &priority_bitmap = machine().priority_bitmap; + bitmap_ind8 &priority_bitmap = screen.priority(); priority_bitmap.fill(0, cliprect); - m_vad->playfield()->draw(bitmap, cliprect, 0, 0x00); - m_vad->playfield()->draw(bitmap, cliprect, 1, 0x01); - m_vad->playfield()->draw(bitmap, cliprect, 2, 0x02); - m_vad->playfield()->draw(bitmap, cliprect, 3, 0x03); - m_vad->playfield2()->draw(bitmap, cliprect, 0, 0x80); - m_vad->playfield2()->draw(bitmap, cliprect, 1, 0x84); - m_vad->playfield2()->draw(bitmap, cliprect, 2, 0x88); - m_vad->playfield2()->draw(bitmap, cliprect, 3, 0x8c); + m_vad->playfield()->draw(screen, bitmap, cliprect, 0, 0x00); + m_vad->playfield()->draw(screen, bitmap, cliprect, 1, 0x01); + m_vad->playfield()->draw(screen, bitmap, cliprect, 2, 0x02); + m_vad->playfield()->draw(screen, bitmap, cliprect, 3, 0x03); + m_vad->playfield2()->draw(screen, bitmap, cliprect, 0, 0x80); + m_vad->playfield2()->draw(screen, bitmap, cliprect, 1, 0x84); + m_vad->playfield2()->draw(screen, bitmap, cliprect, 2, 0x88); + m_vad->playfield2()->draw(screen, bitmap, cliprect, 3, 0x8c); // draw and merge the MO bitmap_ind16 &mobitmap = m_vad->mob()->bitmap(); @@ -188,7 +188,7 @@ UINT32 batman_state::screen_update_batman(screen_device &screen, bitmap_ind16 &b } /* add the alpha on top */ - m_vad->alpha()->draw(bitmap, cliprect, 0, 0); + m_vad->alpha()->draw(screen, bitmap, cliprect, 0, 0); /* now go back and process the upper bit of MO priority */ for (const sparse_dirty_rect *rect = m_vad->mob()->first_dirty_rect(cliprect); rect != NULL; rect = rect->next()) diff --git a/src/mame/video/battlane.c b/src/mame/video/battlane.c index 3d5159f0f4d..fa5cfe6caa7 100644 --- a/src/mame/video/battlane.c +++ b/src/mame/video/battlane.c @@ -227,7 +227,7 @@ UINT32 battlane_state::screen_update_battlane(screen_device &screen, bitmap_ind1 { m_bg_tilemap->mark_all_dirty(); // HACK - m_bg_tilemap->draw(bitmap, cliprect, 0, 0); + m_bg_tilemap->draw(screen, bitmap, cliprect, 0, 0); draw_sprites(bitmap, cliprect); draw_fg_bitmap(bitmap); return 0; diff --git a/src/mame/video/battlex.c b/src/mame/video/battlex.c index 1dd69295421..5d1bdd80625 100644 --- a/src/mame/video/battlex.c +++ b/src/mame/video/battlex.c @@ -91,7 +91,7 @@ void battlex_state::draw_sprites( bitmap_ind16 &bitmap, const rectangle &cliprec UINT32 battlex_state::screen_update_battlex(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect) { m_bg_tilemap->set_scrollx(0, m_scroll_lsb | (m_scroll_msb << 8)); - m_bg_tilemap->draw(bitmap, cliprect, 0, 0); + m_bg_tilemap->draw(screen, bitmap, cliprect, 0, 0); draw_sprites(bitmap, cliprect); return 0; diff --git a/src/mame/video/battlnts.c b/src/mame/video/battlnts.c index 56d38ca6791..0d537101627 100644 --- a/src/mame/video/battlnts.c +++ b/src/mame/video/battlnts.c @@ -45,8 +45,8 @@ UINT32 battlnts_state::screen_update_battlnts(screen_device &screen, bitmap_ind1 { m_k007342->tilemap_update(); - m_k007342->tilemap_draw(bitmap, cliprect, 0, TILEMAP_DRAW_OPAQUE ,0); + m_k007342->tilemap_draw(screen, bitmap, cliprect, 0, TILEMAP_DRAW_OPAQUE ,0); m_k007420->sprites_draw(bitmap, cliprect, machine().gfx[1]); - m_k007342->tilemap_draw(bitmap, cliprect, 0, 1 | TILEMAP_DRAW_OPAQUE ,0); + m_k007342->tilemap_draw(screen, bitmap, cliprect, 0, 1 | TILEMAP_DRAW_OPAQUE ,0); return 0; } diff --git a/src/mame/video/bbusters.c b/src/mame/video/bbusters.c index 85d61e3fabe..f0ba676204f 100644 --- a/src/mame/video/bbusters.c +++ b/src/mame/video/bbusters.c @@ -270,12 +270,12 @@ UINT32 bbusters_state::screen_update_bbuster(screen_device &screen, bitmap_ind16 m_pf2_tilemap->set_scrollx(0, m_pf2_scroll_data[0]); m_pf2_tilemap->set_scrolly(0, m_pf2_scroll_data[1]); - m_pf2_tilemap->draw(bitmap, cliprect, 0, 0); + m_pf2_tilemap->draw(screen, bitmap, cliprect, 0, 0); //draw_sprites(machine(), bitmap, m_spriteram2->buffer(), 2, 0x8, 0x8); - m_pf1_tilemap->draw(bitmap, cliprect, 0, 0); + m_pf1_tilemap->draw(screen, bitmap, cliprect, 0, 0); draw_sprites(bitmap, m_spriteram2->buffer(), 2, 0, 0); draw_sprites(bitmap, m_spriteram->buffer(), 1, 0, 0); - m_fix_tilemap->draw(bitmap, cliprect, 0, 0); + m_fix_tilemap->draw(screen, bitmap, cliprect, 0, 0); return 0; } @@ -286,9 +286,9 @@ UINT32 bbusters_state::screen_update_mechatt(screen_device &screen, bitmap_ind16 m_pf2_tilemap->set_scrollx(0, m_pf2_scroll_data[0]); m_pf2_tilemap->set_scrolly(0, m_pf2_scroll_data[1]); - m_pf2_tilemap->draw(bitmap, cliprect, 0, 0); - m_pf1_tilemap->draw(bitmap, cliprect, 0, 0); + m_pf2_tilemap->draw(screen, bitmap, cliprect, 0, 0); + m_pf1_tilemap->draw(screen, bitmap, cliprect, 0, 0); draw_sprites(bitmap, m_spriteram->buffer(), 1, 0, 0); - m_fix_tilemap->draw(bitmap, cliprect, 0, 0); + m_fix_tilemap->draw(screen, bitmap, cliprect, 0, 0); return 0; } diff --git a/src/mame/video/bfm_adr2.c b/src/mame/video/bfm_adr2.c index 21eddb0c7bb..9afa31c96c0 100644 --- a/src/mame/video/bfm_adr2.c +++ b/src/mame/video/bfm_adr2.c @@ -233,8 +233,8 @@ UINT32 bfm_adder2_device::update_screen(screen_device &screen, bitmap_ind16 &bit const rectangle visible1(0, 400-1, 0, 280-1); //minx,maxx, miny,maxy - if (m_adder2_screen_page_reg & SL_DISPLAY) m_tilemap1->draw(bitmap, visible1, 0, 0); - else m_tilemap0->draw(bitmap, visible1, 0, 0); + if (m_adder2_screen_page_reg & SL_DISPLAY) m_tilemap1->draw(screen, bitmap, visible1, 0, 0); + else m_tilemap0->draw(screen, bitmap, visible1, 0, 0); return 0; } diff --git a/src/mame/video/bigstrkb.c b/src/mame/video/bigstrkb.c index fa33dfacaa1..b5a55fed31e 100644 --- a/src/mame/video/bigstrkb.c +++ b/src/mame/video/bigstrkb.c @@ -130,11 +130,11 @@ UINT32 bigstrkb_state::screen_update_bigstrkb(screen_device &screen, bitmap_ind1 m_tilemap3->set_scrollx(0, m_vidreg1[1]+(256-14)); m_tilemap3->set_scrolly(0, m_vidreg2[1]); - m_tilemap2->draw(bitmap, cliprect, 0,0); - m_tilemap3->draw(bitmap, cliprect, 0,0); + m_tilemap2->draw(screen, bitmap, cliprect, 0,0); + m_tilemap3->draw(screen, bitmap, cliprect, 0,0); draw_sprites(bitmap,cliprect); - m_tilemap->draw(bitmap, cliprect, 0,0); + m_tilemap->draw(screen, bitmap, cliprect, 0,0); // popmessage ("Regs %08x %08x %08x %08x",bsb_vidreg2[0],bsb_vidreg2[1],bsb_vidreg2[2],bsb_vidreg2[3]); return 0; diff --git a/src/mame/video/bionicc.c b/src/mame/video/bionicc.c index e2bbc32a2af..f09210ee942 100644 --- a/src/mame/video/bionicc.c +++ b/src/mame/video/bionicc.c @@ -229,11 +229,11 @@ void bionicc_state::draw_sprites( bitmap_ind16 &bitmap, const rectangle &cliprec UINT32 bionicc_state::screen_update_bionicc(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect) { bitmap.fill(get_black_pen(machine()), cliprect); - m_fg_tilemap->draw(bitmap, cliprect, 1 | TILEMAP_DRAW_LAYER1, 0); /* nothing in FRONT */ - m_bg_tilemap->draw(bitmap, cliprect, 0, 0); - m_fg_tilemap->draw(bitmap, cliprect, 0 | TILEMAP_DRAW_LAYER1, 0); + m_fg_tilemap->draw(screen, bitmap, cliprect, 1 | TILEMAP_DRAW_LAYER1, 0); /* nothing in FRONT */ + m_bg_tilemap->draw(screen, bitmap, cliprect, 0, 0); + m_fg_tilemap->draw(screen, bitmap, cliprect, 0 | TILEMAP_DRAW_LAYER1, 0); draw_sprites(bitmap, cliprect); - m_fg_tilemap->draw(bitmap, cliprect, 0 | TILEMAP_DRAW_LAYER0, 0); - m_tx_tilemap->draw(bitmap, cliprect, 0, 0); + m_fg_tilemap->draw(screen, bitmap, cliprect, 0 | TILEMAP_DRAW_LAYER0, 0); + m_tx_tilemap->draw(screen, bitmap, cliprect, 0, 0); return 0; } diff --git a/src/mame/video/bishi.c b/src/mame/video/bishi.c index 90a3feaa8a4..01b5e638f37 100644 --- a/src/mame/video/bishi.c +++ b/src/mame/video/bishi.c @@ -59,13 +59,13 @@ UINT32 bishi_state::screen_update_bishi(screen_device &screen, bitmap_rgb32 &bit konami_sortlayers4(layers, layerpri); - machine().priority_bitmap.fill(0, cliprect); + screen.priority().fill(0, cliprect); for (i = 0; i < 4; i++) { if (m_k055555->k055555_read_register(m_k055555, K55_INPUT_ENABLES) & enables[layers[i]]) { - m_k056832->tilemap_draw(bitmap, cliprect, layers[i], 0, 1 << i); + m_k056832->tilemap_draw(screen, bitmap, cliprect, layers[i], 0, 1 << i); } } return 0; diff --git a/src/mame/video/bking.c b/src/mame/video/bking.c index 04494e0cb3d..26e62372f6b 100644 --- a/src/mame/video/bking.c +++ b/src/mame/video/bking.c @@ -228,7 +228,7 @@ void bking_state::video_start() UINT32 bking_state::screen_update_bking(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect) { - m_bg_tilemap->draw(bitmap, cliprect, 0, 0); + m_bg_tilemap->draw(screen, bitmap, cliprect, 0, 0); /* draw the balls */ drawgfx_transpen(bitmap, cliprect, machine().gfx[2], @@ -290,7 +290,7 @@ void bking_state::screen_eof_bking(screen_device &screen, bool state) m_bg_tilemap->set_scrollx(0, flip_screen() ? -xld : xld); m_bg_tilemap->set_scrolly(0, flip_screen() ? -yld : yld); - m_bg_tilemap->draw(m_colmap_bg, rect, 0, 0); + m_bg_tilemap->draw(screen, m_colmap_bg, rect, 0, 0); m_bg_tilemap->set_scrollx(0, 0); m_bg_tilemap->set_scrolly(0, 0); diff --git a/src/mame/video/bladestl.c b/src/mame/video/bladestl.c index dda502c6690..cd8ae0a17a8 100644 --- a/src/mame/video/bladestl.c +++ b/src/mame/video/bladestl.c @@ -82,10 +82,10 @@ UINT32 bladestl_state::screen_update_bladestl(screen_device &screen, bitmap_ind1 m_k007342->tilemap_update(); - m_k007342->tilemap_draw(bitmap, cliprect, 1, TILEMAP_DRAW_OPAQUE ,0); + m_k007342->tilemap_draw(screen, bitmap, cliprect, 1, TILEMAP_DRAW_OPAQUE ,0); m_k007420->sprites_draw(bitmap, cliprect, machine().gfx[1]); - m_k007342->tilemap_draw(bitmap, cliprect, 1, 1 | TILEMAP_DRAW_OPAQUE ,0); - m_k007342->tilemap_draw(bitmap, cliprect, 0, 0 ,0); - m_k007342->tilemap_draw(bitmap, cliprect, 0, 1 ,0); + m_k007342->tilemap_draw(screen, bitmap, cliprect, 1, 1 | TILEMAP_DRAW_OPAQUE ,0); + m_k007342->tilemap_draw(screen, bitmap, cliprect, 0, 0 ,0); + m_k007342->tilemap_draw(screen, bitmap, cliprect, 0, 1 ,0); return 0; } diff --git a/src/mame/video/blktiger.c b/src/mame/video/blktiger.c index c96f9c3ad10..b71da9fb2ad 100644 --- a/src/mame/video/blktiger.c +++ b/src/mame/video/blktiger.c @@ -220,16 +220,16 @@ UINT32 blktiger_state::screen_update_blktiger(screen_device &screen, bitmap_ind1 bitmap.fill(1023, cliprect); if (m_bgon) - (m_screen_layout ? m_bg_tilemap8x4 : m_bg_tilemap4x8)->draw(bitmap, cliprect, TILEMAP_DRAW_LAYER1, 0); + (m_screen_layout ? m_bg_tilemap8x4 : m_bg_tilemap4x8)->draw(screen, bitmap, cliprect, TILEMAP_DRAW_LAYER1, 0); if (m_objon) draw_sprites(bitmap, cliprect); if (m_bgon) - (m_screen_layout ? m_bg_tilemap8x4 : m_bg_tilemap4x8)->draw(bitmap, cliprect, TILEMAP_DRAW_LAYER0, 0); + (m_screen_layout ? m_bg_tilemap8x4 : m_bg_tilemap4x8)->draw(screen, bitmap, cliprect, TILEMAP_DRAW_LAYER0, 0); if (m_chon) - m_tx_tilemap->draw(bitmap, cliprect, 0, 0); + m_tx_tilemap->draw(screen, bitmap, cliprect, 0, 0); return 0; } diff --git a/src/mame/video/blmbycar.c b/src/mame/video/blmbycar.c index 5abd340b47a..5df233e8bbd 100644 --- a/src/mame/video/blmbycar.c +++ b/src/mame/video/blmbycar.c @@ -157,7 +157,7 @@ void blmbycar_state::video_start() ***************************************************************************/ -void blmbycar_state::draw_sprites( bitmap_ind16 &bitmap, const rectangle &cliprect ) +void blmbycar_state::draw_sprites( screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect ) { UINT16 *source, *finish; @@ -196,7 +196,7 @@ void blmbycar_state::draw_sprites( bitmap_ind16 &bitmap, const rectangle &clipre 0x20 + (attr & 0xf), flipx, flipy, x, y, - machine().priority_bitmap, + screen.priority(), pri_mask,0); } } @@ -233,20 +233,20 @@ if (machine().input().code_pressed(KEYCODE_Z)) } #endif - machine().priority_bitmap.fill(0, cliprect); + screen.priority().fill(0, cliprect); if (layers_ctrl & 1) for (i = 0; i <= 1; i++) - m_tilemap_0->draw(bitmap, cliprect, i, i); + m_tilemap_0->draw(screen, bitmap, cliprect, i, i); else bitmap.fill(0, cliprect); if (layers_ctrl & 2) for (i = 0; i <= 1; i++) - m_tilemap_1->draw(bitmap, cliprect, i, i); + m_tilemap_1->draw(screen, bitmap, cliprect, i, i); if (layers_ctrl & 8) - draw_sprites(bitmap, cliprect); + draw_sprites(screen, bitmap, cliprect); return 0; } diff --git a/src/mame/video/blockade.c b/src/mame/video/blockade.c index 8489f3cc068..99fbd9c8e75 100644 --- a/src/mame/video/blockade.c +++ b/src/mame/video/blockade.c @@ -27,6 +27,6 @@ void blockade_state::video_start() UINT32 blockade_state::screen_update_blockade(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect) { - m_bg_tilemap->draw(bitmap, cliprect, 0, 0); + m_bg_tilemap->draw(screen, bitmap, cliprect, 0, 0); return 0; } diff --git a/src/mame/video/blockhl.c b/src/mame/video/blockhl.c index 657b22b718e..cefde4130be 100644 --- a/src/mame/video/blockhl.c +++ b/src/mame/video/blockhl.c @@ -53,14 +53,14 @@ void blockhl_state::video_start() UINT32 blockhl_state::screen_update_blockhl(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect) { - machine().priority_bitmap.fill(0, cliprect); + screen.priority().fill(0, cliprect); m_k052109->tilemap_update(); - m_k052109->tilemap_draw(bitmap, cliprect, 2, TILEMAP_DRAW_OPAQUE, 0); // tile 2 - m_k052109->tilemap_draw(bitmap, cliprect, 1, 0, 1); // tile 1 - m_k052109->tilemap_draw(bitmap, cliprect, 0, 0, 2); // tile 0 + m_k052109->tilemap_draw(screen, bitmap, cliprect, 2, TILEMAP_DRAW_OPAQUE, 0); // tile 2 + m_k052109->tilemap_draw(screen, bitmap, cliprect, 1, 0, 1); // tile 1 + m_k052109->tilemap_draw(screen, bitmap, cliprect, 0, 0, 2); // tile 0 - m_k051960->k051960_sprites_draw(bitmap, cliprect, 0, -1); + m_k051960->k051960_sprites_draw(bitmap, cliprect, screen.priority(), 0, -1); return 0; } diff --git a/src/mame/video/bloodbro.c b/src/mame/video/bloodbro.c index a73eb0b9027..a385d7118e0 100644 --- a/src/mame/video/bloodbro.c +++ b/src/mame/video/bloodbro.c @@ -142,7 +142,7 @@ WRITE16_MEMBER(bloodbro_state::bloodbro_txvideoram_w) -------X XXXXXXXX -------- YYYYYYYY */ -void bloodbro_state::bloodbro_draw_sprites(bitmap_ind16 &bitmap, const rectangle &cliprect) +void bloodbro_state::bloodbro_draw_sprites(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect) { UINT16 *spriteram16 = m_spriteram; int offs; @@ -175,7 +175,7 @@ void bloodbro_state::bloodbro_draw_sprites(bitmap_ind16 &bitmap, const rectangle color, flipx,flipy, flipx ? (sx + 16*(width-x)) : (sx + 16*x),flipy ? (sy + 16*(height-y)) : (sy + 16*y), - machine().priority_bitmap, + screen.priority(), pri_mask,15); } } @@ -190,7 +190,7 @@ void bloodbro_state::bloodbro_draw_sprites(bitmap_ind16 &bitmap, const rectangle -------X XXXXXXXX */ -void bloodbro_state::weststry_draw_sprites(bitmap_ind16 &bitmap, const rectangle &cliprect) +void bloodbro_state::weststry_draw_sprites(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect) { UINT16 *spriteram16 = m_spriteram; int offs; @@ -220,7 +220,7 @@ void bloodbro_state::weststry_draw_sprites(bitmap_ind16 &bitmap, const rectangle color, flipx,flipy, sx,sy, - machine().priority_bitmap, + screen.priority(), pri_mask,15); } } @@ -234,16 +234,16 @@ UINT32 bloodbro_state::screen_update_bloodbro(screen_device &screen, bitmap_ind1 m_fg_tilemap->set_scrollx(0,m_scrollram[2]); m_fg_tilemap->set_scrolly(0,m_scrollram[3]); - machine().priority_bitmap.fill(0, cliprect); + screen.priority().fill(0, cliprect); if(!(m_layer_en & 1)) - m_bg_tilemap->draw(bitmap, cliprect, 0,0); + m_bg_tilemap->draw(screen, bitmap, cliprect, 0,0); if(!(m_layer_en & 2)) - m_fg_tilemap->draw(bitmap, cliprect, 0,1); + m_fg_tilemap->draw(screen, bitmap, cliprect, 0,1); if(!(m_layer_en & 0x10)) - bloodbro_draw_sprites(bitmap,cliprect); + bloodbro_draw_sprites(screen, bitmap,cliprect); if(!(m_layer_en & 8)) - m_tx_tilemap->draw(bitmap, cliprect, 0,0); + m_tx_tilemap->draw(screen, bitmap, cliprect, 0,0); return 0; } @@ -254,12 +254,12 @@ UINT32 bloodbro_state::screen_update_weststry(screen_device &screen, bitmap_ind1 // m_fg_tilemap->set_scrollx(0,m_scroll[0x12]); // m_fg_tilemap->set_scrolly(0,m_scroll[0x13]); - machine().priority_bitmap.fill(0, cliprect); + screen.priority().fill(0, cliprect); - m_bg_tilemap->draw(bitmap, cliprect, 0,0); - m_fg_tilemap->draw(bitmap, cliprect, 0,1); - weststry_draw_sprites(bitmap,cliprect); - m_tx_tilemap->draw(bitmap, cliprect, 0,0); + m_bg_tilemap->draw(screen, bitmap, cliprect, 0,0); + m_fg_tilemap->draw(screen, bitmap, cliprect, 0,1); + weststry_draw_sprites(screen, bitmap,cliprect); + m_tx_tilemap->draw(screen, bitmap, cliprect, 0,0); return 0; } @@ -271,16 +271,16 @@ UINT32 bloodbro_state::screen_update_skysmash(screen_device &screen, bitmap_ind1 m_fg_tilemap->set_scrollx(0,m_scrollram[2]); m_fg_tilemap->set_scrolly(0,m_scrollram[3]); - machine().priority_bitmap.fill(0, cliprect); + screen.priority().fill(0, cliprect); if(!(m_layer_en & 1)) - m_bg_tilemap->draw(bitmap, cliprect, 0,0); + m_bg_tilemap->draw(screen, bitmap, cliprect, 0,0); if(!(m_layer_en & 2)) - m_fg_tilemap->draw(bitmap, cliprect, 0,1); + m_fg_tilemap->draw(screen, bitmap, cliprect, 0,1); if(!(m_layer_en & 0x10)) - bloodbro_draw_sprites(bitmap,cliprect); + bloodbro_draw_sprites(screen, bitmap,cliprect); if(!(m_layer_en & 8)) - m_tx_tilemap->draw(bitmap, cliprect, 0,0); + m_tx_tilemap->draw(screen, bitmap, cliprect, 0,0); return 0; } diff --git a/src/mame/video/blstroid.c b/src/mame/video/blstroid.c index b071adee709..e5798a645cc 100644 --- a/src/mame/video/blstroid.c +++ b/src/mame/video/blstroid.c @@ -140,7 +140,7 @@ UINT32 blstroid_state::screen_update_blstroid(screen_device &screen, bitmap_ind1 m_mob->draw_async(cliprect); /* draw the playfield */ - m_playfield_tilemap->draw(bitmap, cliprect, 0, 0); + m_playfield_tilemap->draw(screen, bitmap, cliprect, 0, 0); /* draw and merge the MO */ bitmap_ind16 &mobitmap = m_mob->bitmap(); diff --git a/src/mame/video/blueprnt.c b/src/mame/video/blueprnt.c index eaeda2fadb3..8e74dfc33eb 100644 --- a/src/mame/video/blueprnt.c +++ b/src/mame/video/blueprnt.c @@ -161,8 +161,8 @@ UINT32 blueprnt_state::screen_update_blueprnt(screen_device &screen, bitmap_ind1 m_bg_tilemap->set_scrolly(i, m_scrollram[30 - i]); bitmap.fill(get_black_pen(machine()), cliprect); - m_bg_tilemap->draw(bitmap, cliprect, 0, 0); + m_bg_tilemap->draw(screen, bitmap, cliprect, 0, 0); draw_sprites(bitmap, cliprect); - m_bg_tilemap->draw(bitmap, cliprect, 1, 0); + m_bg_tilemap->draw(screen, bitmap, cliprect, 1, 0); return 0; } diff --git a/src/mame/video/bogeyman.c b/src/mame/video/bogeyman.c index f2163ae83ad..099a469308b 100644 --- a/src/mame/video/bogeyman.c +++ b/src/mame/video/bogeyman.c @@ -142,8 +142,8 @@ void bogeyman_state::draw_sprites( bitmap_ind16 &bitmap, const rectangle &clipre UINT32 bogeyman_state::screen_update_bogeyman(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect) { - m_bg_tilemap->draw(bitmap, cliprect, 0, 0); + m_bg_tilemap->draw(screen, bitmap, cliprect, 0, 0); draw_sprites(bitmap, cliprect); - m_fg_tilemap->draw(bitmap, cliprect, 0, 0); + m_fg_tilemap->draw(screen, bitmap, cliprect, 0, 0); return 0; } diff --git a/src/mame/video/bombjack.c b/src/mame/video/bombjack.c index a8880767def..7abe5e0c317 100644 --- a/src/mame/video/bombjack.c +++ b/src/mame/video/bombjack.c @@ -126,8 +126,8 @@ void bombjack_state::draw_sprites( bitmap_ind16 &bitmap, const rectangle &clipre UINT32 bombjack_state::screen_update_bombjack(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect) { - m_bg_tilemap->draw(bitmap, cliprect, 0, 0); - m_fg_tilemap->draw(bitmap, cliprect, 0, 0); + m_bg_tilemap->draw(screen, bitmap, cliprect, 0, 0); + m_fg_tilemap->draw(screen, bitmap, cliprect, 0, 0); draw_sprites(bitmap, cliprect); return 0; } diff --git a/src/mame/video/boogwing.c b/src/mame/video/boogwing.c index 1c1fd330e3a..91404449df3 100644 --- a/src/mame/video/boogwing.c +++ b/src/mame/video/boogwing.c @@ -18,7 +18,7 @@ void boogwing_state::video_start() apparently priority is based on a PROM, that should be used if possible. */ -void boogwing_state::mix_boogwing(bitmap_rgb32 &bitmap, const rectangle &cliprect) +void boogwing_state::mix_boogwing(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect) { int y, x; const pen_t *paldata = machine().pens; @@ -30,7 +30,7 @@ void boogwing_state::mix_boogwing(bitmap_rgb32 &bitmap, const rectangle &cliprec sprite_bitmap1 = &m_sprgen1->get_sprite_temp_bitmap(); sprite_bitmap2 = &m_sprgen2->get_sprite_temp_bitmap(); - priority_bitmap = &machine().priority_bitmap; + priority_bitmap = &screen.priority(); UINT32* dstline; UINT16 *srcline1, *srcline2; @@ -191,39 +191,39 @@ UINT32 boogwing_state::screen_update_boogwing(screen_device &screen, bitmap_rgb3 /* Draw playfields */ bitmap.fill(machine().pens[0x400], cliprect); /* pen not confirmed */ - machine().priority_bitmap.fill(0); + screen.priority().fill(0); // bit&0x8 is definitely some kind of palette effect // bit&0x4 combines playfields if ((priority & 0x7) == 0x5) { - m_deco_tilegen1->tilemap_2_draw(bitmap, cliprect, TILEMAP_DRAW_OPAQUE, 0); - m_deco_tilegen2->tilemap_12_combine_draw(bitmap, cliprect, 0, 32); + m_deco_tilegen1->tilemap_2_draw(screen, bitmap, cliprect, TILEMAP_DRAW_OPAQUE, 0); + m_deco_tilegen2->tilemap_12_combine_draw(screen, bitmap, cliprect, 0, 32); } else if ((priority & 0x7) == 0x1 || (priority & 0x7) == 0x2) { - m_deco_tilegen2->tilemap_2_draw(bitmap, cliprect, TILEMAP_DRAW_OPAQUE, 0); - m_deco_tilegen1->tilemap_2_draw(bitmap, cliprect, 0, 8); - m_deco_tilegen2->tilemap_1_draw(bitmap, cliprect, 0, 32); + m_deco_tilegen2->tilemap_2_draw(screen, bitmap, cliprect, TILEMAP_DRAW_OPAQUE, 0); + m_deco_tilegen1->tilemap_2_draw(screen, bitmap, cliprect, 0, 8); + m_deco_tilegen2->tilemap_1_draw(screen, bitmap, cliprect, 0, 32); } else if ((priority & 0x7) == 0x3) { - m_deco_tilegen2->tilemap_2_draw(bitmap, cliprect, TILEMAP_DRAW_OPAQUE, 0); - m_deco_tilegen1->tilemap_2_draw(bitmap, cliprect, 0, 8); + m_deco_tilegen2->tilemap_2_draw(screen, bitmap, cliprect, TILEMAP_DRAW_OPAQUE, 0); + m_deco_tilegen1->tilemap_2_draw(screen, bitmap, cliprect, 0, 8); // This mode uses playfield 3 to shadow sprites & playfield 2 (instead of // regular alpha-blending, the destination is inverted). Not yet implemented. - // m_deco_tilegen1->tilemap_3_draw(bitmap, cliprect, TILEMAP_DRAW_ALPHA(0x80), 32); + // m_deco_tilegen1->tilemap_3_draw(screen, bitmap, cliprect, TILEMAP_DRAW_ALPHA(0x80), 32); } else { - m_deco_tilegen2->tilemap_2_draw(bitmap, cliprect, TILEMAP_DRAW_OPAQUE, 0); - m_deco_tilegen2->tilemap_1_draw(bitmap, cliprect, 0, 8); - m_deco_tilegen1->tilemap_2_draw(bitmap, cliprect, 0, 32); + m_deco_tilegen2->tilemap_2_draw(screen, bitmap, cliprect, TILEMAP_DRAW_OPAQUE, 0); + m_deco_tilegen2->tilemap_1_draw(screen, bitmap, cliprect, 0, 8); + m_deco_tilegen1->tilemap_2_draw(screen, bitmap, cliprect, 0, 32); } - mix_boogwing(bitmap,cliprect); + mix_boogwing(screen,bitmap,cliprect); - m_deco_tilegen1->tilemap_1_draw(bitmap, cliprect, 0, 0); + m_deco_tilegen1->tilemap_1_draw(screen, bitmap, cliprect, 0, 0); return 0; } diff --git a/src/mame/video/bosco.c b/src/mame/video/bosco.c index a0b4735f3c1..67093467e0a 100644 --- a/src/mame/video/bosco.c +++ b/src/mame/video/bosco.c @@ -289,14 +289,14 @@ UINT32 bosco_state::screen_update_bosco(screen_device &screen, bitmap_ind16 &bit bitmap.fill(get_black_pen(machine()), cliprect); draw_stars(bitmap,cliprect,flip_screen()); - m_bg_tilemap->draw(bitmap, bg_clip, 0,0); - m_fg_tilemap->draw(bitmap, fg_clip, 0,0); + m_bg_tilemap->draw(screen, bitmap, bg_clip, 0,0); + m_fg_tilemap->draw(screen, bitmap, fg_clip, 0,0); draw_sprites(bitmap,cliprect); /* draw the high priority characters */ - m_bg_tilemap->draw(bitmap, bg_clip, 1,0); - m_fg_tilemap->draw(bitmap, fg_clip, 1,0); + m_bg_tilemap->draw(screen, bitmap, bg_clip, 1,0); + m_fg_tilemap->draw(screen, bitmap, fg_clip, 1,0); draw_bullets(bitmap,cliprect); diff --git a/src/mame/video/bottom9.c b/src/mame/video/bottom9.c index 1d96daf807a..777f1c1a132 100644 --- a/src/mame/video/bottom9.c +++ b/src/mame/video/bottom9.c @@ -78,14 +78,14 @@ UINT32 bottom9_state::screen_update_bottom9(screen_device &screen, bitmap_ind16 bitmap.fill(m_layer_colorbase[1], cliprect); // if (m_video_enable) { - m_k051960->k051960_sprites_draw(bitmap, cliprect, 1, 1); - m_k051316->zoom_draw(bitmap, cliprect, 0, 0); - m_k051960->k051960_sprites_draw(bitmap, cliprect, 0, 0); - m_k052109->tilemap_draw(bitmap, cliprect, 2, 0, 0); + m_k051960->k051960_sprites_draw(bitmap, cliprect, screen.priority(), 1, 1); + m_k051316->zoom_draw(screen, bitmap, cliprect, 0, 0); + m_k051960->k051960_sprites_draw(bitmap, cliprect, screen.priority(), 0, 0); + m_k052109->tilemap_draw(screen, bitmap, cliprect, 2, 0, 0); /* note that priority 3 is opposite to the basic layer priority! */ /* (it IS used, but hopefully has no effect) */ - m_k051960->k051960_sprites_draw(bitmap, cliprect, 2, 3); - m_k052109->tilemap_draw(bitmap, cliprect, 1, 0, 0); + m_k051960->k051960_sprites_draw(bitmap, cliprect, screen.priority(), 2, 3); + m_k052109->tilemap_draw(screen, bitmap, cliprect, 1, 0, 0); } return 0; } diff --git a/src/mame/video/brkthru.c b/src/mame/video/brkthru.c index 8a7c0f69908..1f7264351e4 100644 --- a/src/mame/video/brkthru.c +++ b/src/mame/video/brkthru.c @@ -243,19 +243,19 @@ void brkthru_state::draw_sprites( bitmap_ind16 &bitmap, const rectangle &cliprec UINT32 brkthru_state::screen_update_brkthru(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect) { m_bg_tilemap->set_scrollx(0, m_bgscroll); - m_bg_tilemap->draw(bitmap, cliprect, TILEMAP_DRAW_OPAQUE, 0); + m_bg_tilemap->draw(screen, bitmap, cliprect, TILEMAP_DRAW_OPAQUE, 0); /* low priority sprites */ draw_sprites(bitmap, cliprect, 0x01); /* draw background over low priority sprites */ - m_bg_tilemap->draw(bitmap, cliprect, 0, 0); + m_bg_tilemap->draw(screen, bitmap, cliprect, 0, 0); /* high priority sprites */ draw_sprites(bitmap, cliprect, 0x09); /* fg layer */ - m_fg_tilemap->draw(bitmap, cliprect, 0, 0); + m_fg_tilemap->draw(screen, bitmap, cliprect, 0, 0); /* show_register(bitmap, 8, 8, (UINT32)m_flipscreen); */ diff --git a/src/mame/video/bsktball.c b/src/mame/video/bsktball.c index fa3f88fc0dc..e8da2faa185 100644 --- a/src/mame/video/bsktball.c +++ b/src/mame/video/bsktball.c @@ -50,7 +50,7 @@ void bsktball_state::draw_sprites( bitmap_ind16 &bitmap, const rectangle &clipr UINT32 bsktball_state::screen_update_bsktball(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect) { - m_bg_tilemap->draw(bitmap, cliprect, 0, 0); + m_bg_tilemap->draw(screen, bitmap, cliprect, 0, 0); draw_sprites(bitmap, cliprect); return 0; } diff --git a/src/mame/video/bwing.c b/src/mame/video/bwing.c index 2c70715fa19..cedc2bb5ad1 100644 --- a/src/mame/video/bwing.c +++ b/src/mame/video/bwing.c @@ -304,7 +304,7 @@ UINT32 bwing_state::screen_update_bwing(screen_device &screen, bitmap_ind16 &bit m_bgmap->set_scrollx(0, x); y = (m_sreg[1]<<4 & 0x300) + m_sreg[3]; m_bgmap->set_scrolly(0, y); - m_bgmap->draw(bitmap, cliprect, 0, 0); + m_bgmap->draw(screen, bitmap, cliprect, 0, 0); } else bitmap.fill(get_black_pen(machine()), cliprect); @@ -320,7 +320,7 @@ UINT32 bwing_state::screen_update_bwing(screen_device &screen, bitmap_ind16 &bit m_fgmap->set_scrollx(0, x); y = (m_sreg[1] << 8 & 0x300) + m_sreg[5]; m_fgmap->set_scrolly(0, y); - m_fgmap->draw(bitmap, cliprect, 0, 0); + m_fgmap->draw(screen, bitmap, cliprect, 0, 0); } // draw high priority sprites @@ -330,7 +330,7 @@ UINT32 bwing_state::screen_update_bwing(screen_device &screen, bitmap_ind16 &bit // if (m_mapmask & 4) { m_charmap->set_flip(m_mapflip); - m_charmap->draw(bitmap, cliprect, 0, 0); + m_charmap->draw(screen, bitmap, cliprect, 0, 0); } return 0; } diff --git a/src/mame/video/cabal.c b/src/mame/video/cabal.c index e0ed603dabc..c123891b0dc 100644 --- a/src/mame/video/cabal.c +++ b/src/mame/video/cabal.c @@ -138,8 +138,8 @@ void cabal_state::draw_sprites(bitmap_ind16 &bitmap, const rectangle &cliprect) UINT32 cabal_state::screen_update_cabal(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect) { - m_background_layer->draw(bitmap, cliprect, TILEMAP_DRAW_OPAQUE,0); + m_background_layer->draw(screen, bitmap, cliprect, TILEMAP_DRAW_OPAQUE,0); draw_sprites(bitmap,cliprect); - m_text_layer->draw(bitmap, cliprect, 0,0); + m_text_layer->draw(screen, bitmap, cliprect, 0,0); return 0; } diff --git a/src/mame/video/calomega.c b/src/mame/video/calomega.c index 882b7abdbbe..11827c27673 100644 --- a/src/mame/video/calomega.c +++ b/src/mame/video/calomega.c @@ -61,7 +61,7 @@ void calomega_state::video_start() UINT32 calomega_state::screen_update_calomega(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect) { - m_bg_tilemap->draw(bitmap, cliprect, 0, 0); + m_bg_tilemap->draw(screen, bitmap, cliprect, 0, 0); return 0; } diff --git a/src/mame/video/canyon.c b/src/mame/video/canyon.c index 25a96222b14..c7e608eadbe 100644 --- a/src/mame/video/canyon.c +++ b/src/mame/video/canyon.c @@ -69,7 +69,7 @@ void canyon_state::draw_bombs( bitmap_ind16 &bitmap, const rectangle &cliprect ) UINT32 canyon_state::screen_update_canyon(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect) { - m_bg_tilemap->draw(bitmap, cliprect, 0, 0); + m_bg_tilemap->draw(screen, bitmap, cliprect, 0, 0); draw_sprites(bitmap, cliprect); diff --git a/src/mame/video/carjmbre.c b/src/mame/video/carjmbre.c index a561743820f..69441087e76 100644 --- a/src/mame/video/carjmbre.c +++ b/src/mame/video/carjmbre.c @@ -111,7 +111,7 @@ UINT32 carjmbre_state::screen_update_carjmbre(screen_device &screen, bitmap_ind1 //-xxx---- unused //----xxxx colour - m_cj_tilemap->draw(bitmap, cliprect, 0, 0); + m_cj_tilemap->draw(screen, bitmap, cliprect, 0, 0); //spriteram[offs] //+0 y pos diff --git a/src/mame/video/cave.c b/src/mame/video/cave.c index 0ac8bf3fb37..ec5b0db095b 100644 --- a/src/mame/video/cave.c +++ b/src/mame/video/cave.c @@ -1402,14 +1402,13 @@ static void sprite_draw_donpachi_zbuf( running_machine &machine, int priority ) ***************************************************************************/ -INLINE void cave_tilemap_draw( - running_machine &machine, bitmap_ind16 &bitmap, const rectangle &cliprect, +inline void cave_state::tilemap_draw( + screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect, UINT32 flags, UINT32 priority, UINT32 priority2, int GFX ) { - cave_state *state = machine.driver_data(); - tilemap_t *TILEMAP = state->m_tilemap[GFX]; - UINT16 *VRAM = state->m_vram[GFX]; - UINT16 *VCTRL = state->m_vctrl[GFX]; + tilemap_t *TILEMAP = m_tilemap[GFX]; + UINT16 *VRAM = m_vram[GFX]; + UINT16 *VCTRL = m_vctrl[GFX]; int sx, sy, flipx, flipy, offs_x, offs_y, offs_row; /* Bail out if ... */ @@ -1423,21 +1422,21 @@ INLINE void cave_tilemap_draw( flipy = ~VCTRL[1] & 0x8000; TILEMAP->set_flip((flipx ? TILEMAP_FLIPX : 0) | (flipy ? TILEMAP_FLIPY : 0) ); - offs_x = state->m_layers_offs_x; - offs_y = state->m_layers_offs_y; + offs_x = m_layers_offs_x; + offs_y = m_layers_offs_y; - offs_row = flipy ? state->m_row_effect_offs_f : state->m_row_effect_offs_n; + offs_row = flipy ? m_row_effect_offs_f : m_row_effect_offs_n; /* An additional 8 pixel offset for layers with 8x8 tiles. Plus Layer 0 is displaced by 1 pixel wrt Layer 1, so is Layer 2 wrt Layer 1 */ - if (TILEMAP == state->m_tilemap[0]) offs_x -= (state->m_tiledim[0] ? 1 : (1 + 8)); - else if (TILEMAP == state->m_tilemap[1]) offs_x -= (state->m_tiledim[1] ? 2 : (2 + 8)); - else if (TILEMAP == state->m_tilemap[2]) offs_x -= (state->m_tiledim[2] ? 3 : (3 + 8)); - else if (TILEMAP == state->m_tilemap[3]) offs_x -= (state->m_tiledim[3] ? 4 : (4 + 8)); + if (TILEMAP == m_tilemap[0]) offs_x -= (m_tiledim[0] ? 1 : (1 + 8)); + else if (TILEMAP == m_tilemap[1]) offs_x -= (m_tiledim[1] ? 2 : (2 + 8)); + else if (TILEMAP == m_tilemap[2]) offs_x -= (m_tiledim[2] ? 3 : (3 + 8)); + else if (TILEMAP == m_tilemap[3]) offs_x -= (m_tiledim[3] ? 4 : (4 + 8)); - sx = VCTRL[0] - state->m_videoregs[0] + (flipx ? (offs_x + 2) : -offs_x); - sy = VCTRL[1] - state->m_videoregs[1] + (flipy ? (offs_y + 2) : -offs_y); + sx = VCTRL[0] - m_videoregs[0] + (flipx ? (offs_x + 2) : -offs_x); + sy = VCTRL[1] - m_videoregs[1] + (flipy ? (offs_y + 2) : -offs_y); if (VCTRL[1] & 0x4000) // row-select { @@ -1498,7 +1497,7 @@ INLINE void cave_tilemap_draw( clip.max_y = endline - 1; } - TILEMAP->draw(bitmap, clip, flags, priority); + TILEMAP->draw(screen, bitmap, clip, flags, priority); startline = endline; } @@ -1511,7 +1510,7 @@ INLINE void cave_tilemap_draw( TILEMAP->set_scrollx((line + sy) & 511, sx + VRAM[(0x1000+(((sy + offs_row + line) * 4) & 0x7ff)) / 2] ); TILEMAP->set_scrolly(0, sy); - TILEMAP->draw(bitmap, cliprect, flags, priority); + TILEMAP->draw(screen, bitmap, cliprect, flags, priority); } else { @@ -1520,7 +1519,7 @@ INLINE void cave_tilemap_draw( TILEMAP->set_scroll_cols(1); TILEMAP->set_scrollx(0, sx); TILEMAP->set_scrolly(0, sy); - TILEMAP->draw(bitmap, cliprect, flags, priority); + TILEMAP->draw(screen, bitmap, cliprect, flags, priority); } } @@ -1627,10 +1626,10 @@ UINT32 cave_state::screen_update_cave(screen_device &screen, bitmap_ind16 &bitma for (pri2 = 0; pri2 <= 3; pri2++) // priority of the whole layer { - if (layers_ctrl & (1 << (pri + 0))) cave_tilemap_draw(machine(), bitmap, cliprect, pri, 0, pri2, 0); - if (layers_ctrl & (1 << (pri + 4))) cave_tilemap_draw(machine(), bitmap, cliprect, pri, 0, pri2, 1); - if (layers_ctrl & (1 << (pri + 8))) cave_tilemap_draw(machine(), bitmap, cliprect, pri, 0, pri2, 2); - if (layers_ctrl & (1 << (pri + 12))) cave_tilemap_draw(machine(), bitmap, cliprect, pri, 0, pri2, 3); + if (layers_ctrl & (1 << (pri + 0))) tilemap_draw(screen, bitmap, cliprect, pri, 0, pri2, 0); + if (layers_ctrl & (1 << (pri + 4))) tilemap_draw(screen, bitmap, cliprect, pri, 0, pri2, 1); + if (layers_ctrl & (1 << (pri + 8))) tilemap_draw(screen, bitmap, cliprect, pri, 0, pri2, 2); + if (layers_ctrl & (1 << (pri + 12))) tilemap_draw(screen, bitmap, cliprect, pri, 0, pri2, 3); } } return 0; diff --git a/src/mame/video/cbasebal.c b/src/mame/video/cbasebal.c index 6f4a81d47cd..690994c2ec7 100644 --- a/src/mame/video/cbasebal.c +++ b/src/mame/video/cbasebal.c @@ -166,7 +166,7 @@ void cbasebal_state::draw_sprites( bitmap_ind16 &bitmap, const rectangle &clipre UINT32 cbasebal_state::screen_update_cbasebal(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect) { if (m_bg_on) - m_bg_tilemap->draw(bitmap, cliprect, 0, 0); + m_bg_tilemap->draw(screen, bitmap, cliprect, 0, 0); else bitmap.fill(768, cliprect); @@ -174,6 +174,6 @@ UINT32 cbasebal_state::screen_update_cbasebal(screen_device &screen, bitmap_ind1 draw_sprites(bitmap, cliprect); if (m_text_on) - m_fg_tilemap->draw(bitmap, cliprect, 0, 0); + m_fg_tilemap->draw(screen, bitmap, cliprect, 0, 0); return 0; } diff --git a/src/mame/video/cbuster.c b/src/mame/video/cbuster.c index f95b3fe07d1..fb09f3e52f2 100644 --- a/src/mame/video/cbuster.c +++ b/src/mame/video/cbuster.c @@ -59,23 +59,23 @@ UINT32 cbuster_state::screen_update_twocrude(screen_device &screen, bitmap_rgb32 m_deco_tilegen2->pf_update(m_pf3_rowscroll, m_pf4_rowscroll); /* Draw playfields & sprites */ - m_deco_tilegen2->tilemap_2_draw(bitmap, cliprect, TILEMAP_DRAW_OPAQUE, 0); + m_deco_tilegen2->tilemap_2_draw(screen, bitmap, cliprect, TILEMAP_DRAW_OPAQUE, 0); m_sprgen->inefficient_copy_sprite_bitmap(bitmap, cliprect, 0x0800, 0x0900, 0x100, 0x0ff); m_sprgen->inefficient_copy_sprite_bitmap(bitmap, cliprect, 0x0900, 0x0900, 0x500, 0x0ff); if (m_pri) { - m_deco_tilegen1->tilemap_2_draw(bitmap, cliprect, 0, 0); - m_deco_tilegen2->tilemap_1_draw(bitmap, cliprect, 0, 0); + m_deco_tilegen1->tilemap_2_draw(screen, bitmap, cliprect, 0, 0); + m_deco_tilegen2->tilemap_1_draw(screen, bitmap, cliprect, 0, 0); } else { - m_deco_tilegen2->tilemap_1_draw(bitmap, cliprect, 0, 0); - m_deco_tilegen1->tilemap_2_draw(bitmap, cliprect, 0, 0); + m_deco_tilegen2->tilemap_1_draw(screen, bitmap, cliprect, 0, 0); + m_deco_tilegen1->tilemap_2_draw(screen, bitmap, cliprect, 0, 0); } m_sprgen->inefficient_copy_sprite_bitmap(bitmap, cliprect, 0x0000, 0x0900, 0x100, 0x0ff); m_sprgen->inefficient_copy_sprite_bitmap(bitmap, cliprect, 0x0100, 0x0900, 0x500, 0x0ff); - m_deco_tilegen1->tilemap_1_draw(bitmap, cliprect, 0, 0); + m_deco_tilegen1->tilemap_1_draw(screen, bitmap, cliprect, 0, 0); return 0; } diff --git a/src/mame/video/cclimber.c b/src/mame/video/cclimber.c index 9e04814f7b9..1c60ddd391b 100644 --- a/src/mame/video/cclimber.c +++ b/src/mame/video/cclimber.c @@ -479,7 +479,7 @@ VIDEO_START_MEMBER(cclimber_state,toprollr) } -void cclimber_state::draw_playfield(bitmap_ind16 &bitmap, const rectangle &cliprect) +void cclimber_state::draw_playfield(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect) { int i; @@ -489,11 +489,11 @@ void cclimber_state::draw_playfield(bitmap_ind16 &bitmap, const rectangle &clipr for (i = 0; i < 32; i++) m_pf_tilemap->set_scrolly(i, m_column_scroll[i]); - m_pf_tilemap->draw(bitmap, cliprect, 0, 0); + m_pf_tilemap->draw(screen, bitmap, cliprect, 0, 0); } -void cclimber_state::cclimber_draw_bigsprite(bitmap_ind16 &bitmap, const rectangle &cliprect) +void cclimber_state::cclimber_draw_bigsprite(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect) { UINT8 x = m_bigsprite_control[3] - 8; UINT8 y = m_bigsprite_control[2]; @@ -514,11 +514,11 @@ void cclimber_state::cclimber_draw_bigsprite(bitmap_ind16 &bitmap, const rectang m_bs_tilemap->set_scrollx(0, x); m_bs_tilemap->set_scrolly(0, y); - m_bs_tilemap->draw(bitmap, cliprect, 0, 0); + m_bs_tilemap->draw(screen, bitmap, cliprect, 0, 0); } -void cclimber_state::toprollr_draw_bigsprite(bitmap_ind16 &bitmap, const rectangle &cliprect) +void cclimber_state::toprollr_draw_bigsprite(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect) { UINT8 x = m_bigsprite_control[3] - 8; UINT8 y = m_bigsprite_control[2]; @@ -530,7 +530,7 @@ void cclimber_state::toprollr_draw_bigsprite(bitmap_ind16 &bitmap, const rectang m_bs_tilemap->set_scrollx(0, x); m_bs_tilemap->set_scrolly(0, y); - m_bs_tilemap->draw(bitmap, cliprect, 0, 0); + m_bs_tilemap->draw(screen, bitmap, cliprect, 0, 0); } @@ -651,12 +651,12 @@ void cclimber_state::swimmer_draw_sprites(bitmap_ind16 &bitmap, const rectangle UINT32 cclimber_state::screen_update_cclimber(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect) { bitmap.fill(CCLIMBER_BG_PEN, cliprect); - draw_playfield(bitmap, cliprect); + draw_playfield(screen, bitmap, cliprect); /* draw the "big sprite" under the regular sprites */ if ((m_bigsprite_control[0] & 0x01)) { - cclimber_draw_bigsprite(bitmap, cliprect); + cclimber_draw_bigsprite(screen, bitmap, cliprect); cclimber_draw_sprites(bitmap, cliprect, machine().gfx[1]); } @@ -664,7 +664,7 @@ UINT32 cclimber_state::screen_update_cclimber(screen_device &screen, bitmap_ind1 else { cclimber_draw_sprites(bitmap, cliprect, machine().gfx[1]); - cclimber_draw_bigsprite(bitmap, cliprect); + cclimber_draw_bigsprite(screen, bitmap, cliprect); } return 0; @@ -685,12 +685,12 @@ UINT32 cclimber_state::screen_update_yamato(screen_device &screen, bitmap_ind16 bitmap.pix16(j, (i - 8) & 0xff) = pen; } - draw_playfield(bitmap, cliprect); + draw_playfield(screen, bitmap, cliprect); /* draw the "big sprite" under the regular sprites */ if ((m_bigsprite_control[0] & 0x01)) { - cclimber_draw_bigsprite(bitmap, cliprect); + cclimber_draw_bigsprite(screen, bitmap, cliprect); toprollr_draw_sprites(bitmap, cliprect, machine().gfx[1]); } @@ -698,7 +698,7 @@ UINT32 cclimber_state::screen_update_yamato(screen_device &screen, bitmap_ind16 else { toprollr_draw_sprites(bitmap, cliprect, machine().gfx[1]); - cclimber_draw_bigsprite(bitmap, cliprect); + cclimber_draw_bigsprite(screen, bitmap, cliprect); } return 0; @@ -737,12 +737,12 @@ UINT32 cclimber_state::screen_update_swimmer(screen_device &screen, bitmap_ind16 else bitmap.fill(CCLIMBER_BG_PEN, cliprect); - draw_playfield(bitmap, cliprect); + draw_playfield(screen, bitmap, cliprect); /* draw the "big sprite" under the regular sprites */ if ((m_bigsprite_control[0] & 0x01)) { - cclimber_draw_bigsprite(bitmap, cliprect); + cclimber_draw_bigsprite(screen, bitmap, cliprect); swimmer_draw_sprites(bitmap, cliprect, machine().gfx[1]); } @@ -750,7 +750,7 @@ UINT32 cclimber_state::screen_update_swimmer(screen_device &screen, bitmap_ind16 else { swimmer_draw_sprites(bitmap, cliprect, machine().gfx[1]); - cclimber_draw_bigsprite(bitmap, cliprect); + cclimber_draw_bigsprite(screen, bitmap, cliprect); } return 0; @@ -769,26 +769,26 @@ UINT32 cclimber_state::screen_update_toprollr(screen_device &screen, bitmap_ind1 m_toproller_bg_tilemap->set_flip((CCLIMBER_FLIP_X ? TILEMAP_FLIPX : 0) | (CCLIMBER_FLIP_Y ? TILEMAP_FLIPY : 0)); m_toproller_bg_tilemap->mark_all_dirty(); - m_toproller_bg_tilemap->draw(bitmap, scroll_area_clip, 0, 0); + m_toproller_bg_tilemap->draw(screen, bitmap, scroll_area_clip, 0, 0); /* draw the "big sprite" over the regular sprites */ if ((m_bigsprite_control[1] & 0x20)) { toprollr_draw_sprites(bitmap, scroll_area_clip, machine().gfx[1]); - toprollr_draw_bigsprite(bitmap, scroll_area_clip); + toprollr_draw_bigsprite(screen, bitmap, scroll_area_clip); } /* draw the "big sprite" under the regular sprites */ else { - toprollr_draw_bigsprite(bitmap, scroll_area_clip); + toprollr_draw_bigsprite(screen, bitmap, scroll_area_clip); toprollr_draw_sprites(bitmap, scroll_area_clip, machine().gfx[1]); } m_pf_tilemap->mark_all_dirty(); m_pf_tilemap->set_flip((CCLIMBER_FLIP_X ? TILEMAP_FLIPX : 0) | (CCLIMBER_FLIP_Y ? TILEMAP_FLIPY : 0)); - m_pf_tilemap->draw(bitmap, cliprect, 0, 0); + m_pf_tilemap->draw(screen, bitmap, cliprect, 0, 0); return 0; } diff --git a/src/mame/video/centiped.c b/src/mame/video/centiped.c index 8f75a98a8a8..d7a4f36aa4b 100644 --- a/src/mame/video/centiped.c +++ b/src/mame/video/centiped.c @@ -421,7 +421,7 @@ UINT32 centiped_state::screen_update_centiped(screen_device &screen, bitmap_ind1 int offs; /* draw the background */ - m_bg_tilemap->draw(bitmap, cliprect, 0, 0); + m_bg_tilemap->draw(screen, bitmap, cliprect, 0, 0); /* apply the sprite clip */ if (m_flipscreen) @@ -460,7 +460,7 @@ UINT32 centiped_state::screen_update_warlords(screen_device &screen, bitmap_ind1 } /* draw the background */ - m_bg_tilemap->draw(bitmap, cliprect, 0, 0); + m_bg_tilemap->draw(screen, bitmap, cliprect, 0, 0); /* draw the sprites */ for (offs = 0; offs < 0x10; offs++) @@ -498,7 +498,7 @@ UINT32 centiped_state::screen_update_bullsdrt(screen_device &screen, bitmap_ind1 int offs; /* draw the background */ - m_bg_tilemap->draw(bitmap, cliprect, 0, 0); + m_bg_tilemap->draw(screen, bitmap, cliprect, 0, 0); /* apply the sprite clip */ if (m_flipscreen) @@ -531,7 +531,7 @@ UINT32 centiped_state::screen_update_milliped(screen_device &screen, bitmap_ind1 int offs; /* draw the background */ - m_bg_tilemap->draw(bitmap, cliprect, 0, 0); + m_bg_tilemap->draw(screen, bitmap, cliprect, 0, 0); /* apply the sprite clip */ if (m_flipscreen) diff --git a/src/mame/video/chaknpop.c b/src/mame/video/chaknpop.c index 52fd2bfff58..8d9f9bc2b01 100644 --- a/src/mame/video/chaknpop.c +++ b/src/mame/video/chaknpop.c @@ -248,7 +248,7 @@ void chaknpop_state::draw_bitmap( bitmap_ind16 &bitmap, const rectangle &cliprec UINT32 chaknpop_state::screen_update_chaknpop(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect) { - m_tx_tilemap->draw(bitmap, cliprect, 0, 0); + m_tx_tilemap->draw(screen, bitmap, cliprect, 0, 0); draw_sprites(bitmap, cliprect); draw_bitmap(bitmap, cliprect); return 0; diff --git a/src/mame/video/champbas.c b/src/mame/video/champbas.c index b8e1903a184..0cb88ba3167 100644 --- a/src/mame/video/champbas.c +++ b/src/mame/video/champbas.c @@ -277,14 +277,14 @@ void champbas_state::exctsccr_draw_sprites( bitmap_ind16 &bitmap, const rectangl UINT32 champbas_state::screen_update_champbas(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect) { - m_bg_tilemap->draw(bitmap, cliprect, 0, 0); + m_bg_tilemap->draw(screen, bitmap, cliprect, 0, 0); champbas_draw_sprites(bitmap, cliprect); return 0; } UINT32 champbas_state::screen_update_exctsccr(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect) { - m_bg_tilemap->draw(bitmap, cliprect, 0, 0); + m_bg_tilemap->draw(screen, bitmap, cliprect, 0, 0); exctsccr_draw_sprites(bitmap, cliprect); return 0; } diff --git a/src/mame/video/cheekyms.c b/src/mame/video/cheekyms.c index 02654466af7..770ab40f26d 100644 --- a/src/mame/video/cheekyms.c +++ b/src/mame/video/cheekyms.c @@ -158,7 +158,7 @@ UINT32 cheekyms_state::screen_update_cheekyms(screen_device &screen, bitmap_ind1 draw_sprites(bitmap, cliprect, machine().gfx[1], flip); /* draw the tilemap to a temp bitmap */ - m_cm_tilemap->draw(*m_bitmap_buffer, cliprect, 0, 0); + m_cm_tilemap->draw(screen, *m_bitmap_buffer, cliprect, 0, 0); /* draw the tilemap to the final bitmap applying the scroll to the man character */ for (y = cliprect.min_y; y <= cliprect.max_y; y++) diff --git a/src/mame/video/chqflag.c b/src/mame/video/chqflag.c index 5de5a5220f3..f0ec0544959 100644 --- a/src/mame/video/chqflag.c +++ b/src/mame/video/chqflag.c @@ -70,10 +70,10 @@ UINT32 chqflag_state::screen_update_chqflag(screen_device &screen, bitmap_ind16 { bitmap.fill(0, cliprect); - m_k051316_2->zoom_draw(bitmap, cliprect, TILEMAP_DRAW_LAYER1, 0); - m_k051960->k051960_sprites_draw(bitmap, cliprect, 0, 0); - m_k051316_2->zoom_draw(bitmap, cliprect, TILEMAP_DRAW_LAYER0, 0); - m_k051960->k051960_sprites_draw(bitmap, cliprect, 1, 1); - m_k051316_1->zoom_draw(bitmap, cliprect, 0, 0); + m_k051316_2->zoom_draw(screen, bitmap, cliprect, TILEMAP_DRAW_LAYER1, 0); + m_k051960->k051960_sprites_draw(bitmap, cliprect, screen.priority(), 0, 0); + m_k051316_2->zoom_draw(screen, bitmap, cliprect, TILEMAP_DRAW_LAYER0, 0); + m_k051960->k051960_sprites_draw(bitmap, cliprect, screen.priority(), 1, 1); + m_k051316_1->zoom_draw(screen, bitmap, cliprect, 0, 0); return 0; } diff --git a/src/mame/video/circus.c b/src/mame/video/circus.c index 53029147380..cde0a801caf 100644 --- a/src/mame/video/circus.c +++ b/src/mame/video/circus.c @@ -109,7 +109,7 @@ void circus_state::circus_draw_fg( bitmap_ind16 &bitmap, const rectangle &clipre UINT32 circus_state::screen_update_circus(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect) { - m_bg_tilemap->draw(bitmap, cliprect, 0, 0); + m_bg_tilemap->draw(screen, bitmap, cliprect, 0, 0); circus_draw_fg(bitmap, cliprect); draw_sprite_collision(bitmap, cliprect); return 0; @@ -178,7 +178,7 @@ void circus_state::robotbwl_draw_ball( bitmap_ind16 &bitmap, const rectangle &cl UINT32 circus_state::screen_update_robotbwl(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect) { - m_bg_tilemap->draw(bitmap, cliprect, 0, 0); + m_bg_tilemap->draw(screen, bitmap, cliprect, 0, 0); robotbwl_draw_scoreboard(bitmap, cliprect); robotbwl_draw_bowling_alley(bitmap, cliprect); robotbwl_draw_ball(bitmap, cliprect); @@ -197,14 +197,14 @@ void circus_state::crash_draw_car( bitmap_ind16 &bitmap, const rectangle &clipre UINT32 circus_state::screen_update_crash(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect) { - m_bg_tilemap->draw(bitmap, cliprect, 0, 0); + m_bg_tilemap->draw(screen, bitmap, cliprect, 0, 0); crash_draw_car(bitmap, cliprect); return 0; } UINT32 circus_state::screen_update_ripcord(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect) { - m_bg_tilemap->draw(bitmap, cliprect, 0, 0); + m_bg_tilemap->draw(screen, bitmap, cliprect, 0, 0); draw_sprite_collision(bitmap, cliprect); return 0; } diff --git a/src/mame/video/circusc.c b/src/mame/video/circusc.c index 47067063459..8bee319e640 100644 --- a/src/mame/video/circusc.c +++ b/src/mame/video/circusc.c @@ -204,8 +204,8 @@ UINT32 circusc_state::screen_update_circusc(screen_device &screen, bitmap_ind16 m_bg_tilemap->set_scrolly(i, *m_scroll); bitmap.fill(0, cliprect); - m_bg_tilemap->draw(bitmap, cliprect, 1, 0); + m_bg_tilemap->draw(screen, bitmap, cliprect, 1, 0); draw_sprites(bitmap, cliprect); - m_bg_tilemap->draw(bitmap, cliprect, 0, 0); + m_bg_tilemap->draw(screen, bitmap, cliprect, 0, 0); return 0; } diff --git a/src/mame/video/cischeat.c b/src/mame/video/cischeat.c index 040b24427e2..db014180a50 100644 --- a/src/mame/video/cischeat.c +++ b/src/mame/video/cischeat.c @@ -98,7 +98,7 @@ Note: if MAME_DEBUG is defined, pressing Z or X with: #define cischeat_tmap_DRAW(_n_) \ if ( (m_tmap[_n_]) && (m_active_layers & (1 << _n_) ) ) \ { \ - m_tmap[_n_]->draw(bitmap, cliprect, flag, 0 ); \ + m_tmap[_n_]->draw(screen, bitmap, cliprect, flag, 0 ); \ flag = 0; \ } diff --git a/src/mame/video/citycon.c b/src/mame/video/citycon.c index f2c58666d26..a28797c6d85 100644 --- a/src/mame/video/citycon.c +++ b/src/mame/video/citycon.c @@ -152,8 +152,8 @@ UINT32 citycon_state::screen_update_citycon(screen_device &screen, bitmap_ind16 for (offs = 6; offs < 32; offs++) m_fg_tilemap->set_scrollx(offs, scroll); - m_bg_tilemap->draw(bitmap, cliprect, 0, 0); - m_fg_tilemap->draw(bitmap, cliprect, 0, 0); + m_bg_tilemap->draw(screen, bitmap, cliprect, 0, 0); + m_fg_tilemap->draw(screen, bitmap, cliprect, 0, 0); draw_sprites(bitmap, cliprect); return 0; } diff --git a/src/mame/video/cloak.c b/src/mame/video/cloak.c index 8457f183559..d905355398f 100644 --- a/src/mame/video/cloak.c +++ b/src/mame/video/cloak.c @@ -219,7 +219,7 @@ void cloak_state::draw_sprites(bitmap_ind16 &bitmap, const rectangle &cliprect) UINT32 cloak_state::screen_update_cloak(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect) { set_pens(); - m_bg_tilemap->draw(bitmap, cliprect, 0, 0); + m_bg_tilemap->draw(screen, bitmap, cliprect, 0, 0); draw_bitmap(bitmap, cliprect); draw_sprites(bitmap, cliprect); return 0; diff --git a/src/mame/video/clshroad.c b/src/mame/video/clshroad.c index 5ce1b83d1c1..32a5d735063 100644 --- a/src/mame/video/clshroad.c +++ b/src/mame/video/clshroad.c @@ -329,9 +329,9 @@ UINT32 clshroad_state::screen_update_clshroad(screen_device &screen, bitmap_ind1 m_tilemap_0a->set_scrollx(0, scrollx); m_tilemap_0b->set_scrollx(0, scrollx); - m_tilemap_0a->draw(bitmap, cliprect, 0,0); // Opaque - m_tilemap_0b->draw(bitmap, cliprect, 0,0); + m_tilemap_0a->draw(screen, bitmap, cliprect, 0,0); // Opaque + m_tilemap_0b->draw(screen, bitmap, cliprect, 0,0); draw_sprites(bitmap,cliprect); - m_tilemap_1->draw(bitmap, cliprect, 0,0); + m_tilemap_1->draw(screen, bitmap, cliprect, 0,0); return 0; } diff --git a/src/mame/video/cninja.c b/src/mame/video/cninja.c index ea1556d0fef..4c3648b3482 100644 --- a/src/mame/video/cninja.c +++ b/src/mame/video/cninja.c @@ -21,7 +21,7 @@ VIDEO_START_MEMBER(cninja_state,stoneage) /* The bootleg sprites are in a different format! */ -void cninja_state::cninjabl_draw_sprites( bitmap_ind16 &bitmap, const rectangle &cliprect ) +void cninja_state::cninjabl_draw_sprites( screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect ) { UINT16 *buffered_spriteram = m_spriteram->buffer(); int offs; @@ -110,7 +110,7 @@ void cninja_state::cninjabl_draw_sprites( bitmap_ind16 &bitmap, const rectangle colour, fx,fy, x,y + mult * multi, - machine().priority_bitmap,pri,0); + screen.priority(),pri,0); multi--; } @@ -129,14 +129,14 @@ UINT32 cninja_state::screen_update_cninja(screen_device &screen, bitmap_ind16 &b m_deco_tilegen2->pf_update(m_pf3_rowscroll, m_pf4_rowscroll); /* Draw playfields */ - machine().priority_bitmap.fill(0, cliprect); + screen.priority().fill(0, cliprect); bitmap.fill(512, cliprect); - m_deco_tilegen2->tilemap_2_draw(bitmap, cliprect, TILEMAP_DRAW_OPAQUE, 1); - m_deco_tilegen2->tilemap_1_draw(bitmap, cliprect, 0, 2); - m_deco_tilegen1->tilemap_2_draw(bitmap, cliprect, TILEMAP_DRAW_LAYER1, 2); - m_deco_tilegen1->tilemap_2_draw(bitmap, cliprect, TILEMAP_DRAW_LAYER0, 4); + m_deco_tilegen2->tilemap_2_draw(screen, bitmap, cliprect, TILEMAP_DRAW_OPAQUE, 1); + m_deco_tilegen2->tilemap_1_draw(screen, bitmap, cliprect, 0, 2); + m_deco_tilegen1->tilemap_2_draw(screen, bitmap, cliprect, TILEMAP_DRAW_LAYER1, 2); + m_deco_tilegen1->tilemap_2_draw(screen, bitmap, cliprect, TILEMAP_DRAW_LAYER0, 4); m_sprgen->draw_sprites(bitmap, cliprect, m_spriteram->buffer(), 0x400); - m_deco_tilegen1->tilemap_1_draw(bitmap, cliprect, 0, 0); + m_deco_tilegen1->tilemap_1_draw(screen, bitmap, cliprect, 0, 0); return 0; } @@ -154,14 +154,14 @@ UINT32 cninja_state::screen_update_cninjabl(screen_device &screen, bitmap_ind16 m_deco_tilegen2->pf_update(m_pf3_rowscroll, m_pf4_rowscroll); /* Draw playfields */ - machine().priority_bitmap.fill(0, cliprect); + screen.priority().fill(0, cliprect); bitmap.fill(512, cliprect); - m_deco_tilegen2->tilemap_2_draw(bitmap, cliprect, TILEMAP_DRAW_OPAQUE, 1); - m_deco_tilegen2->tilemap_1_draw(bitmap, cliprect, 0, 2); - m_deco_tilegen1->tilemap_2_draw(bitmap, cliprect, TILEMAP_DRAW_LAYER1, 2); - m_deco_tilegen1->tilemap_2_draw(bitmap, cliprect, TILEMAP_DRAW_LAYER0, 4); - cninjabl_draw_sprites(bitmap, cliprect); - m_deco_tilegen1->tilemap_1_draw(bitmap, cliprect, 0, 0); + m_deco_tilegen2->tilemap_2_draw(screen, bitmap, cliprect, TILEMAP_DRAW_OPAQUE, 1); + m_deco_tilegen2->tilemap_1_draw(screen, bitmap, cliprect, 0, 2); + m_deco_tilegen1->tilemap_2_draw(screen, bitmap, cliprect, TILEMAP_DRAW_LAYER1, 2); + m_deco_tilegen1->tilemap_2_draw(screen, bitmap, cliprect, TILEMAP_DRAW_LAYER0, 4); + cninjabl_draw_sprites(screen, bitmap, cliprect); + m_deco_tilegen1->tilemap_1_draw(screen, bitmap, cliprect, 0, 0); return 0; } @@ -174,13 +174,13 @@ UINT32 cninja_state::screen_update_edrandy(screen_device &screen, bitmap_ind16 & m_deco_tilegen1->pf_update(m_pf1_rowscroll, m_pf2_rowscroll); m_deco_tilegen2->pf_update(m_pf3_rowscroll, m_pf4_rowscroll); - machine().priority_bitmap.fill(0, cliprect); + screen.priority().fill(0, cliprect); bitmap.fill(0, cliprect); - m_deco_tilegen2->tilemap_2_draw(bitmap, cliprect, TILEMAP_DRAW_OPAQUE, 1); - m_deco_tilegen2->tilemap_1_draw(bitmap, cliprect, 0, 2); - m_deco_tilegen1->tilemap_2_draw(bitmap, cliprect, 0, 4); + m_deco_tilegen2->tilemap_2_draw(screen, bitmap, cliprect, TILEMAP_DRAW_OPAQUE, 1); + m_deco_tilegen2->tilemap_1_draw(screen, bitmap, cliprect, 0, 2); + m_deco_tilegen1->tilemap_2_draw(screen, bitmap, cliprect, 0, 4); m_sprgen->draw_sprites(bitmap, cliprect, m_spriteram->buffer(), 0x400); - m_deco_tilegen1->tilemap_1_draw(bitmap, cliprect, 0, 0); + m_deco_tilegen1->tilemap_1_draw(screen, bitmap, cliprect, 0, 0); return 0; } @@ -210,28 +210,28 @@ UINT32 cninja_state::screen_update_robocop2(screen_device &screen, bitmap_ind16 m_deco_tilegen2->pf_update(m_pf3_rowscroll, m_pf4_rowscroll); /* Draw playfields */ - machine().priority_bitmap.fill(0, cliprect); + screen.priority().fill(0, cliprect); bitmap.fill(0x200, cliprect); if ((priority & 4) == 0) - m_deco_tilegen2->tilemap_2_draw(bitmap, cliprect, TILEMAP_DRAW_OPAQUE, 1); + m_deco_tilegen2->tilemap_2_draw(screen, bitmap, cliprect, TILEMAP_DRAW_OPAQUE, 1); /* Switchable priority */ switch (priority & 0x8) { case 8: - m_deco_tilegen1->tilemap_2_draw(bitmap, cliprect, 0, 2); - m_deco_tilegen2->tilemap_1_draw(bitmap, cliprect, 0, 4); + m_deco_tilegen1->tilemap_2_draw(screen, bitmap, cliprect, 0, 2); + m_deco_tilegen2->tilemap_1_draw(screen, bitmap, cliprect, 0, 4); break; default: case 0: - m_deco_tilegen2->tilemap_1_draw(bitmap, cliprect, 0, 2); - m_deco_tilegen1->tilemap_2_draw(bitmap, cliprect, 0, 4); + m_deco_tilegen2->tilemap_1_draw(screen, bitmap, cliprect, 0, 2); + m_deco_tilegen1->tilemap_2_draw(screen, bitmap, cliprect, 0, 4); break; } m_sprgen->draw_sprites(bitmap, cliprect, m_spriteram->buffer(), 0x400); - m_deco_tilegen1->tilemap_1_draw(bitmap, cliprect, 0, 0); + m_deco_tilegen1->tilemap_1_draw(screen, bitmap, cliprect, 0, 0); return 0; } @@ -272,9 +272,9 @@ UINT32 cninja_state::screen_update_mutantf(screen_device &screen, bitmap_rgb32 & The other bits may control alpha blend on the 2nd sprite chip, or layer order. */ - m_deco_tilegen2->tilemap_2_draw(bitmap, cliprect, TILEMAP_DRAW_OPAQUE, 0); - m_deco_tilegen1->tilemap_2_draw(bitmap, cliprect, 0, 0); - m_deco_tilegen2->tilemap_1_draw(bitmap, cliprect, 0, 0); + m_deco_tilegen2->tilemap_2_draw(screen, bitmap, cliprect, TILEMAP_DRAW_OPAQUE, 0); + m_deco_tilegen1->tilemap_2_draw(screen, bitmap, cliprect, 0, 0); + m_deco_tilegen2->tilemap_1_draw(screen, bitmap, cliprect, 0, 0); if (priority & 1) @@ -287,6 +287,6 @@ UINT32 cninja_state::screen_update_mutantf(screen_device &screen, bitmap_rgb32 & m_sprgen2->inefficient_copy_sprite_bitmap(bitmap, cliprect, 0x0000, 0x0000, 1024+768, 0x0ff, 0x80); // fixed alpha of 0x80 for this layer? m_sprgen1->inefficient_copy_sprite_bitmap(bitmap, cliprect, 0x0000, 0x0000, 0x100, 0x1ff); } - m_deco_tilegen1->tilemap_1_draw(bitmap, cliprect, 0, 0); + m_deco_tilegen1->tilemap_1_draw(screen, bitmap, cliprect, 0, 0); return 0; } diff --git a/src/mame/video/combatsc.c b/src/mame/video/combatsc.c index f132d71233f..6a9be01c91a 100644 --- a/src/mame/video/combatsc.c +++ b/src/mame/video/combatsc.c @@ -379,13 +379,13 @@ WRITE8_MEMBER(combatsc_state::combatsc_scrollram_w) ***************************************************************************/ -void combatsc_state::draw_sprites( bitmap_ind16 &bitmap, const rectangle &cliprect, const UINT8 *source, int circuit, UINT32 pri_mask ) +void combatsc_state::draw_sprites( bitmap_ind16 &bitmap, const rectangle &cliprect, const UINT8 *source, int circuit, bitmap_ind8 &priority_bitmap, UINT32 pri_mask ) { k007121_device *k007121 = circuit ? m_k007121_2 : m_k007121_1; address_space &space = machine().driver_data()->generic_space(); int base_color = (circuit * 4) * 16 + (k007121->ctrlram_r(space, 6) & 0x10) * 2; - k007121->sprites_draw(bitmap, cliprect, machine().gfx[circuit], machine().colortable, source, base_color, 0, 0, pri_mask); + k007121->sprites_draw(bitmap, cliprect, machine().gfx[circuit], machine().colortable, source, base_color, 0, 0, priority_bitmap, pri_mask); } @@ -423,29 +423,29 @@ UINT32 combatsc_state::screen_update_combatsc(screen_device &screen, bitmap_ind1 m_bg_tilemap[0]->set_scrolly(0, m_k007121_1->ctrlram_r(space, 2)); m_bg_tilemap[1]->set_scrolly(0, m_k007121_2->ctrlram_r(space, 2)); - machine().priority_bitmap.fill(0, cliprect); + screen.priority().fill(0, cliprect); if (m_priority == 0) { - m_bg_tilemap[1]->draw(bitmap, cliprect, TILEMAP_DRAW_OPAQUE | 0, 4); - m_bg_tilemap[1]->draw(bitmap, cliprect, TILEMAP_DRAW_OPAQUE | 1, 8); - m_bg_tilemap[0]->draw(bitmap, cliprect, 0, 1); - m_bg_tilemap[0]->draw(bitmap, cliprect, 1, 2); + m_bg_tilemap[1]->draw(screen, bitmap, cliprect, TILEMAP_DRAW_OPAQUE | 0, 4); + m_bg_tilemap[1]->draw(screen, bitmap, cliprect, TILEMAP_DRAW_OPAQUE | 1, 8); + m_bg_tilemap[0]->draw(screen, bitmap, cliprect, 0, 1); + m_bg_tilemap[0]->draw(screen, bitmap, cliprect, 1, 2); /* we use the priority buffer so sprites are drawn front to back */ - draw_sprites(bitmap, cliprect, m_spriteram[1], 1, 0x0f00); - draw_sprites(bitmap, cliprect, m_spriteram[0], 0, 0x4444); + draw_sprites(bitmap, cliprect, m_spriteram[1], 1, screen.priority(), 0x0f00); + draw_sprites(bitmap, cliprect, m_spriteram[0], 0, screen.priority(), 0x4444); } else { - m_bg_tilemap[0]->draw(bitmap, cliprect, TILEMAP_DRAW_OPAQUE | 0, 1); - m_bg_tilemap[0]->draw(bitmap, cliprect, TILEMAP_DRAW_OPAQUE | 1, 2); - m_bg_tilemap[1]->draw(bitmap, cliprect, 1, 4); - m_bg_tilemap[1]->draw(bitmap, cliprect, 0, 8); + m_bg_tilemap[0]->draw(screen, bitmap, cliprect, TILEMAP_DRAW_OPAQUE | 0, 1); + m_bg_tilemap[0]->draw(screen, bitmap, cliprect, TILEMAP_DRAW_OPAQUE | 1, 2); + m_bg_tilemap[1]->draw(screen, bitmap, cliprect, 1, 4); + m_bg_tilemap[1]->draw(screen, bitmap, cliprect, 0, 8); /* we use the priority buffer so sprites are drawn front to back */ - draw_sprites(bitmap, cliprect, m_spriteram[1], 1, 0x0f00); - draw_sprites(bitmap, cliprect, m_spriteram[0], 0, 0x4444); + draw_sprites(bitmap, cliprect, m_spriteram[1], 1, screen.priority(), 0x0f00); + draw_sprites(bitmap, cliprect, m_spriteram[0], 0, screen.priority(), 0x4444); } if (m_k007121_1->ctrlram_r(space, 1) & 0x08) @@ -453,7 +453,7 @@ UINT32 combatsc_state::screen_update_combatsc(screen_device &screen, bitmap_ind1 for (i = 0; i < 32; i++) { m_textlayer->set_scrollx(i, m_scrollram0[0x20 + i] ? 0 : TILE_LINE_DISABLED); - m_textlayer->draw(bitmap, cliprect, 0, 0); + m_textlayer->draw(screen, bitmap, cliprect, 0, 0); } } @@ -563,19 +563,19 @@ UINT32 combatsc_state::screen_update_combatscb(screen_device &screen, bitmap_ind if (m_priority == 0) { - m_bg_tilemap[1]->draw(bitmap, cliprect, TILEMAP_DRAW_OPAQUE, 0); + m_bg_tilemap[1]->draw(screen, bitmap, cliprect, TILEMAP_DRAW_OPAQUE, 0); bootleg_draw_sprites(bitmap,cliprect, m_page[0], 0); - m_bg_tilemap[0]->draw(bitmap, cliprect, 0 ,0); + m_bg_tilemap[0]->draw(screen, bitmap, cliprect, 0 ,0); bootleg_draw_sprites(bitmap,cliprect, m_page[1], 1); } else { - m_bg_tilemap[0]->draw(bitmap, cliprect, TILEMAP_DRAW_OPAQUE, 0); + m_bg_tilemap[0]->draw(screen, bitmap, cliprect, TILEMAP_DRAW_OPAQUE, 0); bootleg_draw_sprites(bitmap,cliprect, m_page[0], 0); - m_bg_tilemap[1]->draw(bitmap, cliprect, 0, 0); + m_bg_tilemap[1]->draw(screen, bitmap, cliprect, 0, 0); bootleg_draw_sprites(bitmap,cliprect, m_page[1], 1); } - m_textlayer->draw(bitmap, cliprect, 0, 0); + m_textlayer->draw(screen, bitmap, cliprect, 0, 0); return 0; } diff --git a/src/mame/video/commando.c b/src/mame/video/commando.c index 4070f221481..e7096204382 100644 --- a/src/mame/video/commando.c +++ b/src/mame/video/commando.c @@ -119,8 +119,8 @@ void commando_state::draw_sprites( bitmap_ind16 &bitmap, const rectangle &clipre UINT32 commando_state::screen_update_commando(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect) { - m_bg_tilemap->draw(bitmap, cliprect, 0, 0); + m_bg_tilemap->draw(screen, bitmap, cliprect, 0, 0); draw_sprites(bitmap, cliprect); - m_fg_tilemap->draw(bitmap, cliprect, 0, 0); + m_fg_tilemap->draw(screen, bitmap, cliprect, 0, 0); return 0; } diff --git a/src/mame/video/compgolf.c b/src/mame/video/compgolf.c index 669b6afcb92..61a66aeb62c 100644 --- a/src/mame/video/compgolf.c +++ b/src/mame/video/compgolf.c @@ -121,8 +121,8 @@ UINT32 compgolf_state::screen_update_compgolf(screen_device &screen, bitmap_ind1 m_bg_tilemap->set_scrollx(0, scrollx); m_bg_tilemap->set_scrolly(0, scrolly); - m_bg_tilemap->draw(bitmap, cliprect, 0, 0); - m_text_tilemap->draw(bitmap, cliprect, 0, 0); + m_bg_tilemap->draw(screen, bitmap, cliprect, 0, 0); + m_text_tilemap->draw(screen, bitmap, cliprect, 0, 0); draw_sprites(bitmap, cliprect); return 0; } diff --git a/src/mame/video/contra.c b/src/mame/video/contra.c index 48a5b35e166..9ffe10b8482 100644 --- a/src/mame/video/contra.c +++ b/src/mame/video/contra.c @@ -281,7 +281,7 @@ WRITE8_MEMBER(contra_state::contra_K007121_ctrl_1_w) ***************************************************************************/ -void contra_state::draw_sprites(bitmap_ind16 &bitmap, const rectangle &cliprect, int bank ) +void contra_state::draw_sprites(bitmap_ind16 &bitmap, const rectangle &cliprect, bitmap_ind8 &priority_bitmap, int bank ) { k007121_device *k007121 = bank ? m_k007121_2 : m_k007121_1; address_space &space = machine().driver_data()->generic_space(); @@ -293,7 +293,7 @@ void contra_state::draw_sprites(bitmap_ind16 &bitmap, const rectangle &cliprect, else source = m_buffered_spriteram_2; - k007121->sprites_draw(bitmap, cliprect, machine().gfx[bank], machine().colortable, source, base_color, 40, 0, (UINT32)-1); + k007121->sprites_draw(bitmap, cliprect, machine().gfx[bank], machine().colortable, source, base_color, 40, 0, priority_bitmap, (UINT32)-1); } UINT32 contra_state::screen_update_contra(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect) @@ -318,10 +318,10 @@ UINT32 contra_state::screen_update_contra(screen_device &screen, bitmap_ind16 &b m_bg_tilemap->set_scrollx(0, ctrl_2_0 - 40); m_bg_tilemap->set_scrolly(0, ctrl_2_2); - m_bg_tilemap->draw(bitmap, bg_finalclip, 0 ,0); - m_fg_tilemap->draw(bitmap, fg_finalclip, 0 ,0); - draw_sprites(bitmap,cliprect, 0); - draw_sprites(bitmap,cliprect, 1); - m_tx_tilemap->draw(bitmap, tx_finalclip, 0 ,0); + m_bg_tilemap->draw(screen, bitmap, bg_finalclip, 0 ,0); + m_fg_tilemap->draw(screen, bitmap, fg_finalclip, 0 ,0); + draw_sprites(bitmap,cliprect, screen.priority(), 0); + draw_sprites(bitmap,cliprect, screen.priority(), 1); + m_tx_tilemap->draw(screen, bitmap, tx_finalclip, 0 ,0); return 0; } diff --git a/src/mame/video/cop01.c b/src/mame/video/cop01.c index f904d522913..f05089d6d80 100644 --- a/src/mame/video/cop01.c +++ b/src/mame/video/cop01.c @@ -205,9 +205,9 @@ UINT32 cop01_state::screen_update_cop01(screen_device &screen, bitmap_ind16 &bit m_bg_tilemap->set_scrollx(0, m_vreg[1] + 256 * (m_vreg[2] & 1)); m_bg_tilemap->set_scrolly(0, m_vreg[3]); - m_bg_tilemap->draw(bitmap, cliprect, TILEMAP_DRAW_LAYER1, 0); + m_bg_tilemap->draw(screen, bitmap, cliprect, TILEMAP_DRAW_LAYER1, 0); draw_sprites(bitmap, cliprect); - m_bg_tilemap->draw(bitmap, cliprect, TILEMAP_DRAW_LAYER0, 0); - m_fg_tilemap->draw(bitmap, cliprect, 0, 0 ); + m_bg_tilemap->draw(screen, bitmap, cliprect, TILEMAP_DRAW_LAYER0, 0); + m_fg_tilemap->draw(screen, bitmap, cliprect, 0, 0 ); return 0; } diff --git a/src/mame/video/cps1.c b/src/mame/video/cps1.c index c8b23076719..a13c6774d98 100644 --- a/src/mame/video/cps1.c +++ b/src/mame/video/cps1.c @@ -2282,7 +2282,7 @@ void cps_state::cps1_find_last_sprite() /* Find the offset of last sprite */ } -void cps_state::cps1_render_sprites( bitmap_ind16 &bitmap, const rectangle &cliprect ) +void cps_state::cps1_render_sprites( screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect ) { #define DRAWSPRITE(CODE,COLOR,FLIPX,FLIPY,SX,SY) \ { \ @@ -2292,14 +2292,14 @@ void cps_state::cps1_render_sprites( bitmap_ind16 &bitmap, const rectangle &clip CODE, \ COLOR, \ !(FLIPX),!(FLIPY), \ - 511-16-(SX),255-16-(SY), machine().priority_bitmap,0x02,15); \ + 511-16-(SX),255-16-(SY), screen.priority(),0x02,15); \ else \ pdrawgfx_transpen(bitmap,\ cliprect,machine().gfx[2], \ CODE, \ COLOR, \ FLIPX,FLIPY, \ - SX,SY, machine().priority_bitmap,0x02,15); \ + SX,SY, screen.priority(),0x02,15); \ } @@ -2515,7 +2515,7 @@ void cps_state::cps2_find_last_sprite() /* Find the offset of last sprite */ m_cps2_last_sprite_offset = m_cps2_obj_size / 2 - 4; } -void cps_state::cps2_render_sprites( bitmap_ind16 &bitmap, const rectangle &cliprect, int *primasks ) +void cps_state::cps2_render_sprites( screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect, int *primasks ) { #define DRAWSPRITE(CODE,COLOR,FLIPX,FLIPY,SX,SY) \ { \ @@ -2525,14 +2525,14 @@ void cps_state::cps2_render_sprites( bitmap_ind16 &bitmap, const rectangle &clip CODE, \ COLOR, \ !(FLIPX),!(FLIPY), \ - 511-16-(SX),255-16-(SY), machine().priority_bitmap,primasks[priority],15); \ + 511-16-(SX),255-16-(SY), screen.priority(),primasks[priority],15); \ else \ pdrawgfx_transpen(bitmap,\ cliprect,machine().gfx[2], \ CODE, \ COLOR, \ FLIPX,FLIPY, \ - SX,SY, machine().priority_bitmap,primasks[priority],15); \ + SX,SY, screen.priority(),primasks[priority],15); \ } int i; @@ -2727,22 +2727,22 @@ void cps_state::cps1_render_stars( screen_device &screen, bitmap_ind16 &bitmap, } -void cps_state::cps1_render_layer( bitmap_ind16 &bitmap, const rectangle &cliprect, int layer, int primask ) +void cps_state::cps1_render_layer( screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect, int layer, int primask ) { switch (layer) { case 0: - cps1_render_sprites(bitmap, cliprect); + cps1_render_sprites(screen, bitmap, cliprect); break; case 1: case 2: case 3: - m_bg_tilemap[layer - 1]->draw(bitmap, cliprect, TILEMAP_DRAW_LAYER1, primask); + m_bg_tilemap[layer - 1]->draw(screen, bitmap, cliprect, TILEMAP_DRAW_LAYER1, primask); break; } } -void cps_state::cps1_render_high_layer( bitmap_ind16 &bitmap, const rectangle &cliprect, int layer ) +void cps_state::cps1_render_high_layer( screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect, int layer ) { bitmap_ind16 dummy_bitmap; switch (layer) @@ -2753,7 +2753,7 @@ void cps_state::cps1_render_high_layer( bitmap_ind16 &bitmap, const rectangle &c case 1: case 2: case 3: - m_bg_tilemap[layer - 1]->draw(dummy_bitmap, cliprect, TILEMAP_DRAW_LAYER0, 1); + m_bg_tilemap[layer - 1]->draw(screen, dummy_bitmap, cliprect, TILEMAP_DRAW_LAYER0, 1); break; } } @@ -2833,26 +2833,26 @@ UINT32 cps_state::screen_update_cps1(screen_device &screen, bitmap_ind16 &bitmap l1 = (layercontrol >> 0x08) & 03; l2 = (layercontrol >> 0x0a) & 03; l3 = (layercontrol >> 0x0c) & 03; - machine().priority_bitmap.fill(0, cliprect); + screen.priority().fill(0, cliprect); if (m_cps_version == 1) { - cps1_render_layer(bitmap, cliprect, l0, 0); + cps1_render_layer(screen, bitmap, cliprect, l0, 0); if (l1 == 0) - cps1_render_high_layer(bitmap, cliprect, l0); /* prepare mask for sprites */ + cps1_render_high_layer(screen, bitmap, cliprect, l0); /* prepare mask for sprites */ - cps1_render_layer(bitmap, cliprect, l1, 0); + cps1_render_layer(screen, bitmap, cliprect, l1, 0); if (l2 == 0) - cps1_render_high_layer(bitmap, cliprect, l1); /* prepare mask for sprites */ + cps1_render_high_layer(screen, bitmap, cliprect, l1); /* prepare mask for sprites */ - cps1_render_layer(bitmap, cliprect, l2, 0); + cps1_render_layer(screen, bitmap, cliprect, l2, 0); if (l3 == 0) - cps1_render_high_layer(bitmap, cliprect, l2); /* prepare mask for sprites */ + cps1_render_high_layer(screen, bitmap, cliprect, l2); /* prepare mask for sprites */ - cps1_render_layer(bitmap, cliprect, l3, 0); + cps1_render_layer(screen, bitmap, cliprect, l3, 0); } else { @@ -2903,10 +2903,10 @@ if (0 && machine().input().code_pressed(KEYCODE_Z)) } } - cps1_render_layer(bitmap, cliprect, l0, 1); - cps1_render_layer(bitmap, cliprect, l1, 2); - cps1_render_layer(bitmap, cliprect, l2, 4); - cps2_render_sprites(bitmap, cliprect, primasks); + cps1_render_layer(screen, bitmap, cliprect, l0, 1); + cps1_render_layer(screen, bitmap, cliprect, l1, 2); + cps1_render_layer(screen, bitmap, cliprect, l2, 4); + cps2_render_sprites(screen, bitmap, cliprect, primasks); } return 0; diff --git a/src/mame/video/crbaloon.c b/src/mame/video/crbaloon.c index 9ebe2c9d778..5e91380a777 100644 --- a/src/mame/video/crbaloon.c +++ b/src/mame/video/crbaloon.c @@ -143,7 +143,7 @@ void crbaloon_state::draw_sprite_and_check_collision(bitmap_ind16 &bitmap) UINT32 crbaloon_state::screen_update_crbaloon(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect) { - m_bg_tilemap->draw(bitmap, cliprect, 0, 0); + m_bg_tilemap->draw(screen, bitmap, cliprect, 0, 0); draw_sprite_and_check_collision(bitmap); diff --git a/src/mame/video/crimfght.c b/src/mame/video/crimfght.c index ae77c138d7c..0b8eea2487a 100644 --- a/src/mame/video/crimfght.c +++ b/src/mame/video/crimfght.c @@ -77,11 +77,11 @@ UINT32 crimfght_state::screen_update_crimfght(screen_device &screen, bitmap_ind1 { m_k052109->tilemap_update(); - m_k052109->tilemap_draw(bitmap, cliprect, 1, TILEMAP_DRAW_OPAQUE, 0); - m_k051960->k051960_sprites_draw(bitmap, cliprect, 2, 2); - m_k052109->tilemap_draw(bitmap, cliprect, 2, 0, 0); - m_k051960->k051960_sprites_draw(bitmap, cliprect, 1, 1); - m_k052109->tilemap_draw(bitmap, cliprect, 0, 0, 0); - m_k051960->k051960_sprites_draw(bitmap, cliprect, 0, 0); + m_k052109->tilemap_draw(screen, bitmap, cliprect, 1, TILEMAP_DRAW_OPAQUE, 0); + m_k051960->k051960_sprites_draw(bitmap, cliprect, screen.priority(), 2, 2); + m_k052109->tilemap_draw(screen, bitmap, cliprect, 2, 0, 0); + m_k051960->k051960_sprites_draw(bitmap, cliprect, screen.priority(), 1, 1); + m_k052109->tilemap_draw(screen, bitmap, cliprect, 0, 0, 0); + m_k051960->k051960_sprites_draw(bitmap, cliprect, screen.priority(), 0, 0); return 0; } diff --git a/src/mame/video/crospang.c b/src/mame/video/crospang.c index 9a60600dda1..a0a871c0a97 100644 --- a/src/mame/video/crospang.c +++ b/src/mame/video/crospang.c @@ -112,8 +112,8 @@ void crospang_state::video_start() UINT32 crospang_state::screen_update_crospang(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect) { - m_bg_layer->draw(bitmap, cliprect, 0, 0); - m_fg_layer->draw(bitmap, cliprect, 0, 0); + m_bg_layer->draw(screen, bitmap, cliprect, 0, 0); + m_fg_layer->draw(screen, bitmap, cliprect, 0, 0); m_sprgen->draw_sprites(bitmap, cliprect, m_spriteram, 0x400); return 0; } diff --git a/src/mame/video/crshrace.c b/src/mame/video/crshrace.c index 4d1d6080a1f..bbe3d8de271 100644 --- a/src/mame/video/crshrace.c +++ b/src/mame/video/crshrace.c @@ -95,15 +95,15 @@ WRITE16_MEMBER(crshrace_state::crshrace_gfxctrl_w) ***************************************************************************/ -void crshrace_state::draw_bg( bitmap_ind16 &bitmap, const rectangle &cliprect ) +void crshrace_state::draw_bg( screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect ) { - m_tilemap2->draw(bitmap, cliprect, 0, 0); + m_tilemap2->draw(screen, bitmap, cliprect, 0, 0); } -void crshrace_state::draw_fg(bitmap_ind16 &bitmap, const rectangle &cliprect) +void crshrace_state::draw_fg(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect) { - m_k053936->zoom_draw(bitmap, cliprect, m_tilemap1, 0, 0, 1); + m_k053936->zoom_draw(screen, bitmap, cliprect, m_tilemap1, 0, 0, 1); } @@ -122,15 +122,15 @@ UINT32 crshrace_state::screen_update_crshrace(screen_device &screen, bitmap_ind1 switch (m_gfxctrl & 0xfb) { case 0x00: /* high score screen */ - m_spr->draw_sprites(m_spriteram->buffer(), 0x2000, machine(), bitmap, cliprect); - draw_bg(bitmap, cliprect); - draw_fg(bitmap, cliprect); + m_spr->draw_sprites(m_spriteram->buffer(), 0x2000, screen, bitmap, cliprect); + draw_bg(screen, bitmap, cliprect); + draw_fg(screen, bitmap, cliprect); break; case 0x01: case 0x02: - draw_bg(bitmap, cliprect); - draw_fg(bitmap, cliprect); - m_spr->draw_sprites(m_spriteram->buffer(), 0x2000, machine(), bitmap, cliprect); + draw_bg(screen, bitmap, cliprect); + draw_fg(screen, bitmap, cliprect); + m_spr->draw_sprites(m_spriteram->buffer(), 0x2000, screen, bitmap, cliprect); break; default: popmessage("gfxctrl = %02x", m_gfxctrl); diff --git a/src/mame/video/cyberbal.c b/src/mame/video/cyberbal.c index c86f9979f0a..03021715721 100644 --- a/src/mame/video/cyberbal.c +++ b/src/mame/video/cyberbal.c @@ -266,7 +266,7 @@ UINT32 cyberbal_state::update_one_screen(screen_device &screen, bitmap_ind16 &bi /* draw the playfield */ tilemap_t &curplayfield = index ? static_cast(m_playfield2_tilemap) : static_cast(m_playfield_tilemap); - curplayfield.draw(bitmap, cliprect, 0, 0); + curplayfield.draw(screen, bitmap, cliprect, 0, 0); /* draw and merge the MO */ bitmap_ind16 &mobitmap = curmob->bitmap(); @@ -287,7 +287,7 @@ UINT32 cyberbal_state::update_one_screen(screen_device &screen, bitmap_ind16 &bi /* add the alpha on top */ tilemap_t &curalpha = index ? static_cast(m_alpha2_tilemap) : static_cast(m_alpha_tilemap); - curalpha.draw(bitmap, cliprect, 0, 0); + curalpha.draw(screen, bitmap, cliprect, 0, 0); return 0; } diff --git a/src/mame/video/darius.c b/src/mame/video/darius.c index a932b0d726d..3fb1ddc530f 100644 --- a/src/mame/video/darius.c +++ b/src/mame/video/darius.c @@ -90,20 +90,20 @@ UINT32 darius_state::update_screen(screen_device &screen, bitmap_ind16 &bitmap, m_pc080sn->tilemap_update(); // draw bottom layer(always active) - m_pc080sn->tilemap_draw_offset(bitmap, cliprect, 0, TILEMAP_DRAW_OPAQUE, 0, -xoffs, 0); + m_pc080sn->tilemap_draw_offset(screen, bitmap, cliprect, 0, TILEMAP_DRAW_OPAQUE, 0, -xoffs, 0); /* Sprites can be under/over the layer below text layer */ draw_sprites(bitmap, cliprect, 0, xoffs, -8); // draw sprites with priority 0 which are under the mid layer // draw middle layer - m_pc080sn->tilemap_draw_offset(bitmap, cliprect, 1, 0, 0, -xoffs, 0); + m_pc080sn->tilemap_draw_offset(screen, bitmap, cliprect, 1, 0, 0, -xoffs, 0); draw_sprites(bitmap, cliprect, 1, xoffs, -8); // draw sprites with priority 1 which are over the mid layer /* top(text) layer is in fixed position */ m_fg_tilemap->set_scrollx(0, 0 + xoffs); m_fg_tilemap->set_scrolly(0, -8); - m_fg_tilemap->draw(bitmap, cliprect, 0, 0); + m_fg_tilemap->draw(screen, bitmap, cliprect, 0, 0); return 0; } diff --git a/src/mame/video/darkmist.c b/src/mame/video/darkmist.c index 78cb5a3afa6..7ae74cd55ff 100644 --- a/src/mame/video/darkmist.c +++ b/src/mame/video/darkmist.c @@ -142,10 +142,10 @@ UINT32 darkmist_state::screen_update_darkmist(screen_device &screen, bitmap_ind1 bitmap.fill(get_black_pen(machine()), cliprect); if(m_hw & DISPLAY_BG) - m_bgtilemap->draw(bitmap, cliprect, 0,0); + m_bgtilemap->draw(screen, bitmap, cliprect, 0,0); if(m_hw & DISPLAY_FG) - m_fgtilemap->draw(bitmap, cliprect, 0,0); + m_fgtilemap->draw(screen, bitmap, cliprect, 0,0); if(m_hw & DISPLAY_SPR) { @@ -191,7 +191,7 @@ UINT32 darkmist_state::screen_update_darkmist(screen_device &screen, bitmap_ind1 if(m_hw & DISPLAY_TXT) { m_txtilemap->mark_all_dirty(); - m_txtilemap->draw(bitmap, cliprect, 0,0); + m_txtilemap->draw(screen, bitmap, cliprect, 0,0); } diff --git a/src/mame/video/darkseal.c b/src/mame/video/darkseal.c index c54ad605820..0e38186c8d7 100644 --- a/src/mame/video/darkseal.c +++ b/src/mame/video/darkseal.c @@ -65,12 +65,12 @@ UINT32 darkseal_state::screen_update_darkseal(screen_device &screen, bitmap_ind1 m_deco_tilegen1->pf_update(m_pf1_rowscroll, m_pf1_rowscroll); m_deco_tilegen2->pf_update(m_pf3_rowscroll, m_pf3_rowscroll); - m_deco_tilegen2->tilemap_1_draw(bitmap, cliprect, 0, 0); - m_deco_tilegen2->tilemap_2_draw(bitmap, cliprect, 0, 0); + m_deco_tilegen2->tilemap_1_draw(screen, bitmap, cliprect, 0, 0); + m_deco_tilegen2->tilemap_2_draw(screen, bitmap, cliprect, 0, 0); - m_deco_tilegen1->tilemap_1_draw(bitmap, cliprect, 0, 0); + m_deco_tilegen1->tilemap_1_draw(screen, bitmap, cliprect, 0, 0); m_sprgen->draw_sprites(bitmap, cliprect, m_spriteram->buffer(), 0x400); - m_deco_tilegen1->tilemap_2_draw(bitmap, cliprect, 0, 0); + m_deco_tilegen1->tilemap_2_draw(screen, bitmap, cliprect, 0, 0); return 0; } diff --git a/src/mame/video/dassault.c b/src/mame/video/dassault.c index 54cf4e55fec..feed9bb6f69 100644 --- a/src/mame/video/dassault.c +++ b/src/mame/video/dassault.c @@ -88,17 +88,17 @@ UINT32 dassault_state::screen_update_dassault(screen_device &screen, bitmap_rgb3 m_deco_tilegen2->pf_update(0, m_pf4_rowscroll); /* Draw playfields/update priority bitmap */ - machine().priority_bitmap.fill(0, cliprect); + screen.priority().fill(0, cliprect); bitmap.fill(machine().pens[3072], cliprect); - m_deco_tilegen2->tilemap_2_draw(bitmap, cliprect, TILEMAP_DRAW_OPAQUE, 0); + m_deco_tilegen2->tilemap_2_draw(screen, bitmap, cliprect, TILEMAP_DRAW_OPAQUE, 0); /* The middle playfields can be swapped priority-wise */ if ((priority & 3) == 0) { mixdassaultlayer(bitmap, sprite_bitmap1, cliprect, 0x0600, 0x0600, 0x400, 0xff); // 1 - m_deco_tilegen1->tilemap_2_draw(bitmap, cliprect, 0, 2); // 2 + m_deco_tilegen1->tilemap_2_draw(screen, bitmap, cliprect, 0, 2); // 2 mixdassaultlayer(bitmap, sprite_bitmap1, cliprect, 0x0400, 0x0600, 0x400, 0xff); // 8 - m_deco_tilegen2->tilemap_1_draw(bitmap, cliprect, 0, 16); // 16 + m_deco_tilegen2->tilemap_1_draw(screen, bitmap, cliprect, 0, 16); // 16 mixdassaultlayer(bitmap, sprite_bitmap1, cliprect, 0x0200, 0x0600, 0x400, 0xff); // 32 mixdassaultlayer(bitmap, sprite_bitmap2, cliprect, 0x0000, 0x0000, 0x800, 0x80); // 64? mixdassaultlayer(bitmap, sprite_bitmap1, cliprect, 0x0000, 0x0600, 0x400, 0xff); // 128 @@ -107,19 +107,19 @@ UINT32 dassault_state::screen_update_dassault(screen_device &screen, bitmap_rgb3 else if ((priority & 3) == 1) { mixdassaultlayer(bitmap, sprite_bitmap1, cliprect, 0x0600, 0x0600, 0x400, 0xff); // 1 - m_deco_tilegen2->tilemap_1_draw(bitmap, cliprect, 0, 2); // 2 + m_deco_tilegen2->tilemap_1_draw(screen, bitmap, cliprect, 0, 2); // 2 mixdassaultlayer(bitmap, sprite_bitmap1, cliprect, 0x0400, 0x0600, 0x400, 0xff); // 8 mixdassaultlayer(bitmap, sprite_bitmap2, cliprect, 0x0000, 0x0000, 0x800, 0x80); // 16? mixdassaultlayer(bitmap, sprite_bitmap1, cliprect, 0x0200, 0x0600, 0x400, 0xff); // 32 - m_deco_tilegen1->tilemap_2_draw(bitmap, cliprect, 0, 64); // 64 + m_deco_tilegen1->tilemap_2_draw(screen, bitmap, cliprect, 0, 64); // 64 mixdassaultlayer(bitmap, sprite_bitmap1, cliprect, 0x0000, 0x0600, 0x400, 0xff); // 128 } else if ((priority & 3) == 3) { mixdassaultlayer(bitmap, sprite_bitmap1, cliprect, 0x0600, 0x0600, 0x400, 0xff); // 1 - m_deco_tilegen2->tilemap_1_draw(bitmap, cliprect, 0, 2); // 2 + m_deco_tilegen2->tilemap_1_draw(screen, bitmap, cliprect, 0, 2); // 2 mixdassaultlayer(bitmap, sprite_bitmap1, cliprect, 0x0400, 0x0600, 0x400, 0xff); // 8 - m_deco_tilegen1->tilemap_2_draw(bitmap, cliprect, 0, 16); // 16 + m_deco_tilegen1->tilemap_2_draw(screen, bitmap, cliprect, 0, 16); // 16 mixdassaultlayer(bitmap, sprite_bitmap1, cliprect, 0x0200, 0x0600, 0x400, 0xff); // 32 mixdassaultlayer(bitmap, sprite_bitmap2, cliprect, 0x0000, 0x0000, 0x800, 0x80); // 64? mixdassaultlayer(bitmap, sprite_bitmap1, cliprect, 0x0000, 0x0600, 0x400, 0xff); // 128 @@ -129,6 +129,6 @@ UINT32 dassault_state::screen_update_dassault(screen_device &screen, bitmap_rgb3 /* Unused */ } - m_deco_tilegen1->tilemap_1_draw(bitmap, cliprect, 0, 0); + m_deco_tilegen1->tilemap_1_draw(screen, bitmap, cliprect, 0, 0); return 0; } diff --git a/src/mame/video/dbz.c b/src/mame/video/dbz.c index 905393726fa..eb19d60d007 100644 --- a/src/mame/video/dbz.c +++ b/src/mame/video/dbz.c @@ -127,7 +127,7 @@ UINT32 dbz_state::screen_update_dbz(screen_device &screen, bitmap_ind16 &bitmap, konami_sortlayers5(layer, m_layerpri); - machine().priority_bitmap.fill(0, cliprect); + screen.priority().fill(0, cliprect); for (plane = 0; plane < 5; plane++) { @@ -145,11 +145,11 @@ UINT32 dbz_state::screen_update_dbz(screen_device &screen, bitmap_ind16 &bitmap, } if(layer[plane] == 4) - m_k053936_2->zoom_draw(bitmap, cliprect, m_bg1_tilemap, flag, pri, 1); + m_k053936_2->zoom_draw(screen, bitmap, cliprect, m_bg1_tilemap, flag, pri, 1); else if(layer[plane] == 5) - m_k053936_1->zoom_draw(bitmap, cliprect, m_bg2_tilemap, flag, pri, 1); + m_k053936_1->zoom_draw(screen, bitmap, cliprect, m_bg2_tilemap, flag, pri, 1); else - m_k056832->tilemap_draw(bitmap, cliprect, layer[plane], flag, pri); + m_k056832->tilemap_draw(screen, bitmap, cliprect, layer[plane], flag, pri); } m_k053246->k053247_sprites_draw( bitmap, cliprect); diff --git a/src/mame/video/dcon.c b/src/mame/video/dcon.c index f749d447bb5..4ebb638c548 100644 --- a/src/mame/video/dcon.c +++ b/src/mame/video/dcon.c @@ -112,7 +112,7 @@ void dcon_state::video_start() m_gfx_bank_select = 0; } -void dcon_state::draw_sprites( bitmap_ind16 &bitmap,const rectangle &cliprect) +void dcon_state::draw_sprites( screen_device &screen, bitmap_ind16 &bitmap,const rectangle &cliprect) { UINT16 *spriteram16 = m_spriteram; int offs,fx,fy,x,y,color,sprite; @@ -160,76 +160,76 @@ void dcon_state::draw_sprites( bitmap_ind16 &bitmap,const rectangle &cliprect) pdrawgfx_transpen(bitmap,cliprect,machine().gfx[4], sprite + inc, color,fx,fy,x+ax*16,y+ay*16, - machine().priority_bitmap,pri_mask,15); + screen.priority(),pri_mask,15); // wrap around y pdrawgfx_transpen(bitmap,cliprect,machine().gfx[4], sprite + inc, color,fx,fy,x+ax*16,y+ay*16 + 512, - machine().priority_bitmap,pri_mask,15); + screen.priority(),pri_mask,15); // wrap around y pdrawgfx_transpen(bitmap,cliprect,machine().gfx[4], sprite + inc, color,fx,fy,x+ax*16,y+ay*16 - 512, - machine().priority_bitmap,pri_mask,15); + screen.priority(),pri_mask,15); } else if (fx && !fy) { pdrawgfx_transpen(bitmap,cliprect,machine().gfx[4], sprite + inc, color,fx,fy,x+(dx-1-ax)*16,y+ay*16, - machine().priority_bitmap,pri_mask,15); + screen.priority(),pri_mask,15); // wrap around y pdrawgfx_transpen(bitmap,cliprect,machine().gfx[4], sprite + inc, color,fx,fy,x+(dx-1-ax)*16,y+ay*16 + 512, - machine().priority_bitmap,pri_mask,15); + screen.priority(),pri_mask,15); // wrap around y pdrawgfx_transpen(bitmap,cliprect,machine().gfx[4], sprite + inc, color,fx,fy,x+(dx-1-ax)*16,y+ay*16 - 512, - machine().priority_bitmap,pri_mask,15); + screen.priority(),pri_mask,15); } else if (!fx && fy) { pdrawgfx_transpen(bitmap,cliprect,machine().gfx[4], sprite + inc, color,fx,fy,x+ax*16,y+(dy-1-ay)*16, - machine().priority_bitmap,pri_mask,15); + screen.priority(),pri_mask,15); // wrap around y pdrawgfx_transpen(bitmap,cliprect,machine().gfx[4], sprite + inc, color,fx,fy,x+ax*16,y+(dy-1-ay)*16 + 512, - machine().priority_bitmap,pri_mask,15); + screen.priority(),pri_mask,15); // wrap around y pdrawgfx_transpen(bitmap,cliprect,machine().gfx[4], sprite + inc, color,fx,fy,x+ax*16,y+(dy-1-ay)*16 - 512, - machine().priority_bitmap,pri_mask,15); + screen.priority(),pri_mask,15); } else { pdrawgfx_transpen(bitmap,cliprect,machine().gfx[4], sprite + inc, color,fx,fy,x+(dx-1-ax)*16,y+(dy-1-ay)*16, - machine().priority_bitmap,pri_mask,15); + screen.priority(),pri_mask,15); // wrap around y pdrawgfx_transpen(bitmap,cliprect,machine().gfx[4], sprite + inc, color,fx,fy,x+(dx-1-ax)*16,y+(dy-1-ay)*16 + 512, - machine().priority_bitmap,pri_mask,15); + screen.priority(),pri_mask,15); // wrap around y pdrawgfx_transpen(bitmap,cliprect,machine().gfx[4], sprite + inc, color,fx,fy,x+(dx-1-ax)*16,y+(dy-1-ay)*16 - 512, - machine().priority_bitmap,pri_mask,15); + screen.priority(),pri_mask,15); } inc++; @@ -239,7 +239,7 @@ void dcon_state::draw_sprites( bitmap_ind16 &bitmap,const rectangle &cliprect) UINT32 dcon_state::screen_update_dcon(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect) { - machine().priority_bitmap.fill(0, cliprect); + screen.priority().fill(0, cliprect); /* Setup the tilemaps */ m_background_layer->set_scrollx(0, m_scroll_ram[0] ); @@ -250,28 +250,28 @@ UINT32 dcon_state::screen_update_dcon(screen_device &screen, bitmap_ind16 &bitma m_foreground_layer->set_scrolly(0, m_scroll_ram[5] ); if (!(m_layer_en & 1)) - m_background_layer->draw(bitmap, cliprect, 0,0); + m_background_layer->draw(screen, bitmap, cliprect, 0,0); else bitmap.fill(15, cliprect); /* Should always be black, not pen 15 */ if (!(m_layer_en & 2)) - m_midground_layer->draw(bitmap, cliprect, 0,1); + m_midground_layer->draw(screen, bitmap, cliprect, 0,1); if (!(m_layer_en & 4)) - m_foreground_layer->draw(bitmap, cliprect, 0,2); + m_foreground_layer->draw(screen, bitmap, cliprect, 0,2); if (!(m_layer_en & 8)) - m_text_layer->draw(bitmap, cliprect, 0,4); + m_text_layer->draw(screen, bitmap, cliprect, 0,4); if (!(m_layer_en & 0x10)) - draw_sprites(bitmap,cliprect); + draw_sprites(screen, bitmap,cliprect); return 0; } UINT32 dcon_state::screen_update_sdgndmps(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect) { - machine().priority_bitmap.fill(0, cliprect); + screen.priority().fill(0, cliprect); /* Gfx banking */ if (m_last_gfx_bank!=m_gfx_bank_select) @@ -291,21 +291,21 @@ UINT32 dcon_state::screen_update_sdgndmps(screen_device &screen, bitmap_ind16 &b m_text_layer->set_scrolly(0, /*m_scroll_ram[7] + */ 0 ); if (!(m_layer_en & 1)) - m_background_layer->draw(bitmap, cliprect, 0,0); + m_background_layer->draw(screen, bitmap, cliprect, 0,0); else bitmap.fill(15, cliprect); /* Should always be black, not pen 15 */ if (!(m_layer_en & 2)) - m_midground_layer->draw(bitmap, cliprect, 0,1); + m_midground_layer->draw(screen, bitmap, cliprect, 0,1); if (!(m_layer_en & 4)) - m_foreground_layer->draw(bitmap, cliprect, 0,2); + m_foreground_layer->draw(screen, bitmap, cliprect, 0,2); if (!(m_layer_en & 8)) - m_text_layer->draw(bitmap, cliprect, 0,4); + m_text_layer->draw(screen, bitmap, cliprect, 0,4); if (!(m_layer_en & 0x10)) - draw_sprites(bitmap,cliprect); + draw_sprites(screen, bitmap,cliprect); return 0; } diff --git a/src/mame/video/dday.c b/src/mame/video/dday.c index 9c3eefee6e1..72469d9805c 100644 --- a/src/mame/video/dday.c +++ b/src/mame/video/dday.c @@ -297,10 +297,10 @@ WRITE8_MEMBER(dday_state::dday_control_w) UINT32 dday_state::screen_update_dday(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect) { - m_bg_tilemap->draw(m_main_bitmap, cliprect, TILEMAP_DRAW_LAYER1, 0); - m_fg_tilemap->draw(m_main_bitmap, cliprect, 0, 0); - m_bg_tilemap->draw(m_main_bitmap, cliprect, TILEMAP_DRAW_LAYER0, 0); - m_text_tilemap->draw(m_main_bitmap, cliprect, 0, 0); + m_bg_tilemap->draw(screen, m_main_bitmap, cliprect, TILEMAP_DRAW_LAYER1, 0); + m_fg_tilemap->draw(screen, m_main_bitmap, cliprect, 0, 0); + m_bg_tilemap->draw(screen, m_main_bitmap, cliprect, TILEMAP_DRAW_LAYER0, 0); + m_text_tilemap->draw(screen, m_main_bitmap, cliprect, 0, 0); if (m_sl_enable) { diff --git a/src/mame/video/ddragon.c b/src/mame/video/ddragon.c index fd65ed18718..5c33fdd08ee 100644 --- a/src/mame/video/ddragon.c +++ b/src/mame/video/ddragon.c @@ -227,8 +227,8 @@ UINT32 ddragon_state::screen_update_ddragon(screen_device &screen, bitmap_ind16 m_bg_tilemap->set_scrollx(0, scrollx); m_bg_tilemap->set_scrolly(0, scrolly); - m_bg_tilemap->draw(bitmap, cliprect, 0,0); + m_bg_tilemap->draw(screen, bitmap, cliprect, 0,0); draw_sprites(bitmap, cliprect); - m_fg_tilemap->draw(bitmap, cliprect, 0, 0); + m_fg_tilemap->draw(screen, bitmap, cliprect, 0, 0); return 0; } diff --git a/src/mame/video/ddragon3.c b/src/mame/video/ddragon3.c index 53c0df07119..9d013937542 100644 --- a/src/mame/video/ddragon3.c +++ b/src/mame/video/ddragon3.c @@ -160,21 +160,21 @@ UINT32 ddragon3_state::screen_update_ddragon3(screen_device &screen, bitmap_ind1 if ((m_vreg & 0x60) == 0x40) { - m_bg_tilemap->draw(bitmap, cliprect, TILEMAP_DRAW_OPAQUE, 0); - m_fg_tilemap->draw(bitmap, cliprect, 0, 0); + m_bg_tilemap->draw(screen, bitmap, cliprect, TILEMAP_DRAW_OPAQUE, 0); + m_fg_tilemap->draw(screen, bitmap, cliprect, 0, 0); draw_sprites(bitmap, cliprect); } else if ((m_vreg & 0x60) == 0x60) { - m_fg_tilemap->draw(bitmap, cliprect, TILEMAP_DRAW_OPAQUE, 0); - m_bg_tilemap->draw(bitmap, cliprect, 0, 0); + m_fg_tilemap->draw(screen, bitmap, cliprect, TILEMAP_DRAW_OPAQUE, 0); + m_bg_tilemap->draw(screen, bitmap, cliprect, 0, 0); draw_sprites(bitmap, cliprect); } else { - m_bg_tilemap->draw(bitmap, cliprect, TILEMAP_DRAW_OPAQUE, 0); + m_bg_tilemap->draw(screen, bitmap, cliprect, TILEMAP_DRAW_OPAQUE, 0); draw_sprites(bitmap, cliprect); - m_fg_tilemap->draw(bitmap, cliprect, 0, 0); + m_fg_tilemap->draw(screen, bitmap, cliprect, 0, 0); } return 0; } @@ -188,14 +188,14 @@ UINT32 ddragon3_state::screen_update_ctribe(screen_device &screen, bitmap_ind16 if(m_vreg & 8) { - m_fg_tilemap->draw(bitmap, cliprect, TILEMAP_DRAW_OPAQUE, 0); + m_fg_tilemap->draw(screen, bitmap, cliprect, TILEMAP_DRAW_OPAQUE, 0); draw_sprites(bitmap, cliprect); - m_bg_tilemap->draw(bitmap, cliprect, 0, 0); + m_bg_tilemap->draw(screen, bitmap, cliprect, 0, 0); } else { - m_bg_tilemap->draw(bitmap, cliprect, TILEMAP_DRAW_OPAQUE, 0); - m_fg_tilemap->draw(bitmap, cliprect, 0, 0); + m_bg_tilemap->draw(screen, bitmap, cliprect, TILEMAP_DRAW_OPAQUE, 0); + m_fg_tilemap->draw(screen, bitmap, cliprect, 0, 0); draw_sprites(bitmap, cliprect); } return 0; diff --git a/src/mame/video/ddribble.c b/src/mame/video/ddribble.c index 19754342228..82f9f01ac66 100644 --- a/src/mame/video/ddribble.c +++ b/src/mame/video/ddribble.c @@ -255,9 +255,9 @@ UINT32 ddribble_state::screen_update_ddribble(screen_device &screen, bitmap_ind1 m_fg_tilemap->set_scrolly(0, m_vregs[0][0]); m_bg_tilemap->set_scrolly(0, m_vregs[1][0]); - m_bg_tilemap->draw(bitmap, cliprect, 0, 0); + m_bg_tilemap->draw(screen, bitmap, cliprect, 0, 0); draw_sprites(bitmap, cliprect, m_spriteram_1, 0x07d, 2, m_vregs[0][4] & 0x08); draw_sprites(bitmap, cliprect, m_spriteram_2, 0x140, 3, m_vregs[1][4] & 0x08); - m_fg_tilemap->draw(bitmap, cliprect, 0, 0); + m_fg_tilemap->draw(screen, bitmap, cliprect, 0, 0); return 0; } diff --git a/src/mame/video/deadang.c b/src/mame/video/deadang.c index 321d4214f2c..9aa1f662e0b 100644 --- a/src/mame/video/deadang.c +++ b/src/mame/video/deadang.c @@ -81,7 +81,7 @@ void deadang_state::video_start() m_text_layer->set_transparent_pen(15); } -void deadang_state::draw_sprites(bitmap_ind16 &bitmap, const rectangle &cliprect) +void deadang_state::draw_sprites(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect) { UINT16 *spriteram16 = m_spriteram; int offs,fx,fy,x,y,color,sprite,pri; @@ -119,7 +119,7 @@ void deadang_state::draw_sprites(bitmap_ind16 &bitmap, const rectangle &cliprect pdrawgfx_transpen(bitmap,cliprect,machine().gfx[1], sprite, color,fx,fy,x,y, - machine().priority_bitmap,pri,15); + screen.priority(),pri,15); } } @@ -149,11 +149,11 @@ UINT32 deadang_state::screen_update_deadang(screen_device &screen, bitmap_ind16 flip_screen_set(m_scroll_ram[0x34]&0x40 ); bitmap.fill(get_black_pen(machine()), cliprect); - machine().priority_bitmap.fill(0, cliprect); - m_pf3_layer->draw(bitmap, cliprect, 0,1); - m_pf1_layer->draw(bitmap, cliprect, 0,2); - m_pf2_layer->draw(bitmap, cliprect, 0,4); - if (!(m_scroll_ram[0x34]&0x10)) draw_sprites(bitmap,cliprect); - m_text_layer->draw(bitmap, cliprect, 0,0); + screen.priority().fill(0, cliprect); + m_pf3_layer->draw(screen, bitmap, cliprect, 0,1); + m_pf1_layer->draw(screen, bitmap, cliprect, 0,2); + m_pf2_layer->draw(screen, bitmap, cliprect, 0,4); + if (!(m_scroll_ram[0x34]&0x10)) draw_sprites(screen, bitmap,cliprect); + m_text_layer->draw(screen, bitmap, cliprect, 0,0); return 0; } diff --git a/src/mame/video/dec8.c b/src/mame/video/dec8.c index a89f1f89bad..94b3d3a4347 100644 --- a/src/mame/video/dec8.c +++ b/src/mame/video/dec8.c @@ -266,7 +266,7 @@ UINT32 dec8_state::screen_update_cobracom(screen_device &screen, bitmap_ind16 &b machine().device("spritegen")->draw_sprites(machine(), bitmap, cliprect, m_buffered_spriteram16, 0x04, 0x00, 0x03); m_tilegen2->deco_bac06_pf_draw(bitmap,cliprect,0, 0x00, 0x00, 0x00, 0x00); machine().device("spritegen")->draw_sprites(machine(), bitmap, cliprect, m_buffered_spriteram16, 0x04, 0x04, 0x03); - m_fix_tilemap->draw(bitmap, cliprect, 0, 0); + m_fix_tilemap->draw(screen, bitmap, cliprect, 0, 0); return 0; } @@ -303,7 +303,7 @@ UINT32 dec8_state::screen_update_ghostb(screen_device &screen, bitmap_ind16 &bit { m_tilegen1->deco_bac06_pf_draw(bitmap,cliprect,TILEMAP_DRAW_OPAQUE, 0x00, 0x00, 0x00, 0x00); machine().device("spritegen")->draw_sprites(machine(), bitmap, cliprect, m_buffered_spriteram16, 0x400, 0); - m_fix_tilemap->draw(bitmap, cliprect, 0, 0); + m_fix_tilemap->draw(screen, bitmap, cliprect, 0, 0); return 0; } @@ -339,7 +339,7 @@ UINT32 dec8_state::screen_update_oscar(screen_device &screen, bitmap_ind16 &bitm m_tilegen1->deco_bac06_pf_draw(bitmap,cliprect,TILEMAP_DRAW_OPAQUE, 0x00, 0x00, 0x00, 0x00); machine().device("spritegen")->draw_sprites(machine(), bitmap, cliprect, m_buffered_spriteram16, 0x00, 0x00, 0x0f); m_tilegen1->deco_bac06_pf_draw(bitmap,cliprect,0, 0x08,0x08,0x08,0x08); - m_fix_tilemap->draw(bitmap, cliprect, 0, 0); + m_fix_tilemap->draw(screen, bitmap, cliprect, 0, 0); return 0; } @@ -373,9 +373,9 @@ UINT32 dec8_state::screen_update_lastmisn(screen_device &screen, bitmap_ind16 &b m_bg_tilemap->set_scrollx(0, ((m_scroll2[0] << 8)+ m_scroll2[1])); m_bg_tilemap->set_scrolly(0, ((m_scroll2[2] << 8)+ m_scroll2[3])); - m_bg_tilemap->draw(bitmap, cliprect, 0, 0); + m_bg_tilemap->draw(screen, bitmap, cliprect, 0, 0); machine().device("spritegen")->draw_sprites(machine(), bitmap, cliprect, m_buffered_spriteram16, 0x400, 0); - m_fix_tilemap->draw(bitmap, cliprect, 0, 0); + m_fix_tilemap->draw(screen, bitmap, cliprect, 0, 0); return 0; } @@ -384,12 +384,12 @@ UINT32 dec8_state::screen_update_shackled(screen_device &screen, bitmap_ind16 &b m_bg_tilemap->set_scrollx(0, ((m_scroll2[0] << 8) + m_scroll2[1])); m_bg_tilemap->set_scrolly(0, ((m_scroll2[2] << 8) + m_scroll2[3])); - m_bg_tilemap->draw(bitmap, cliprect, TILEMAP_DRAW_LAYER1 | 0, 0); - m_bg_tilemap->draw(bitmap, cliprect, TILEMAP_DRAW_LAYER1 | 1, 0); - m_bg_tilemap->draw(bitmap, cliprect, TILEMAP_DRAW_LAYER0 | 0, 0); + m_bg_tilemap->draw(screen, bitmap, cliprect, TILEMAP_DRAW_LAYER1 | 0, 0); + m_bg_tilemap->draw(screen, bitmap, cliprect, TILEMAP_DRAW_LAYER1 | 1, 0); + m_bg_tilemap->draw(screen, bitmap, cliprect, TILEMAP_DRAW_LAYER0 | 0, 0); machine().device("spritegen")->draw_sprites(machine(), bitmap, cliprect, m_buffered_spriteram16, 0x400, 0); - m_bg_tilemap->draw(bitmap, cliprect, TILEMAP_DRAW_LAYER0 | 1, 0); - m_fix_tilemap->draw(bitmap, cliprect, 0, 0); + m_bg_tilemap->draw(screen, bitmap, cliprect, TILEMAP_DRAW_LAYER0 | 1, 0); + m_fix_tilemap->draw(screen, bitmap, cliprect, 0, 0); return 0; } @@ -455,11 +455,11 @@ UINT32 dec8_state::screen_update_srdarwin(screen_device &screen, bitmap_ind16 &b { m_bg_tilemap->set_scrollx(0, (m_scroll2[0] << 8) + m_scroll2[1]); - m_bg_tilemap->draw(bitmap, cliprect, TILEMAP_DRAW_LAYER1, 0); + m_bg_tilemap->draw(screen, bitmap, cliprect, TILEMAP_DRAW_LAYER1, 0); srdarwin_draw_sprites(bitmap, cliprect, 0); - m_bg_tilemap->draw(bitmap, cliprect, TILEMAP_DRAW_LAYER0, 0); + m_bg_tilemap->draw(screen, bitmap, cliprect, TILEMAP_DRAW_LAYER0, 0); srdarwin_draw_sprites(bitmap, cliprect, 1); - m_fix_tilemap->draw(bitmap, cliprect, 0, 0); + m_fix_tilemap->draw(screen, bitmap, cliprect, 0, 0); return 0; } @@ -513,11 +513,11 @@ UINT32 dec8_state::screen_update_gondo(screen_device &screen, bitmap_ind16 &bitm m_bg_tilemap->set_scrollx(0, ((m_scroll2[0] << 8) + m_scroll2[1])); m_bg_tilemap->set_scrolly(0, ((m_scroll2[2] << 8) + m_scroll2[3])); - m_bg_tilemap->draw(bitmap, cliprect, TILEMAP_DRAW_LAYER1, 0); + m_bg_tilemap->draw(screen, bitmap, cliprect, TILEMAP_DRAW_LAYER1, 0); machine().device("spritegen")->draw_sprites(machine(), bitmap, cliprect, m_buffered_spriteram16, 0x400, 2); - m_bg_tilemap->draw(bitmap, cliprect, TILEMAP_DRAW_LAYER0, 0); + m_bg_tilemap->draw(screen, bitmap, cliprect, TILEMAP_DRAW_LAYER0, 0); machine().device("spritegen")->draw_sprites(machine(), bitmap, cliprect, m_buffered_spriteram16, 0x400, 1); - m_fix_tilemap->draw(bitmap, cliprect, 0, 0); + m_fix_tilemap->draw(screen, bitmap, cliprect, 0, 0); return 0; } @@ -526,10 +526,10 @@ UINT32 dec8_state::screen_update_garyoret(screen_device &screen, bitmap_ind16 &b m_bg_tilemap->set_scrollx(0, ((m_scroll2[0] << 8) + m_scroll2[1])); m_bg_tilemap->set_scrolly(0, ((m_scroll2[2] << 8) + m_scroll2[3])); - m_bg_tilemap->draw(bitmap, cliprect, 0, 0); + m_bg_tilemap->draw(screen, bitmap, cliprect, 0, 0); machine().device("spritegen")->draw_sprites(machine(), bitmap, cliprect, m_buffered_spriteram16, 0x400, 0); - m_bg_tilemap->draw(bitmap, cliprect, 1, 0); - m_fix_tilemap->draw(bitmap, cliprect, 0, 0); + m_bg_tilemap->draw(screen, bitmap, cliprect, 1, 0); + m_fix_tilemap->draw(screen, bitmap, cliprect, 0, 0); return 0; } diff --git a/src/mame/video/deco16ic.c b/src/mame/video/deco16ic.c index a55884a37da..f29a72e2b9e 100644 --- a/src/mame/video/deco16ic.c +++ b/src/mame/video/deco16ic.c @@ -421,6 +421,7 @@ TILE_GET_INFO_MEMBER(deco16ic_device::get_pf1_tile_info_b) template void deco16ic_device::custom_tilemap_draw( + screen_device &screen, _BitmapClass &bitmap, const rectangle &cliprect, tilemap_t *tilemap0_8x8, @@ -501,9 +502,9 @@ void deco16ic_device::custom_tilemap_draw( if ((flags & TILEMAP_DRAW_OPAQUE) || (p & trans_mask)) { bitmap.pix(y, x) = machine().pens[p]; - if (machine().priority_bitmap.valid()) + if (screen.priority().valid()) { - UINT8 *pri = &machine().priority_bitmap.pix8(y); + UINT8 *pri = &screen.priority().pix8(y); pri[x] |= priority; } } @@ -875,60 +876,60 @@ void deco16ic_device::print_debug_info(bitmap_ind16 &bitmap) /*****************************************************************************************/ template -void deco16ic_device::tilemap_1_draw_common( _BitmapClass &bitmap, const rectangle &cliprect, int flags, UINT32 priority ) +void deco16ic_device::tilemap_1_draw_common( screen_device &screen, _BitmapClass &bitmap, const rectangle &cliprect, int flags, UINT32 priority ) { if (m_use_custom_pf1) { - custom_tilemap_draw(bitmap, cliprect, m_pf1_tilemap_8x8, m_pf1_tilemap_16x16, 0, 0, m_pf1_rowscroll_ptr, m_pf12_control[1], m_pf12_control[2], m_pf12_control[5] & 0xff, m_pf12_control[6] & 0xff, 0, 0, m_pf1_trans_mask, flags, priority, 0); + custom_tilemap_draw(screen, bitmap, cliprect, m_pf1_tilemap_8x8, m_pf1_tilemap_16x16, 0, 0, m_pf1_rowscroll_ptr, m_pf12_control[1], m_pf12_control[2], m_pf12_control[5] & 0xff, m_pf12_control[6] & 0xff, 0, 0, m_pf1_trans_mask, flags, priority, 0); } else { if (m_pf1_tilemap_8x8) - m_pf1_tilemap_8x8->draw(bitmap, cliprect, flags, priority); + m_pf1_tilemap_8x8->draw(screen, bitmap, cliprect, flags, priority); if (m_pf1_tilemap_16x16) - m_pf1_tilemap_16x16->draw(bitmap, cliprect, flags, priority); + m_pf1_tilemap_16x16->draw(screen, bitmap, cliprect, flags, priority); } } -void deco16ic_device::tilemap_1_draw( bitmap_ind16 &bitmap, const rectangle &cliprect, int flags, UINT32 priority ) -{ tilemap_1_draw_common(bitmap, cliprect, flags, priority); } +void deco16ic_device::tilemap_1_draw( screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect, int flags, UINT32 priority ) +{ tilemap_1_draw_common(screen, bitmap, cliprect, flags, priority); } -void deco16ic_device::tilemap_1_draw( bitmap_rgb32 &bitmap, const rectangle &cliprect, int flags, UINT32 priority ) -{ tilemap_1_draw_common(bitmap, cliprect, flags, priority); } +void deco16ic_device::tilemap_1_draw( screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect, int flags, UINT32 priority ) +{ tilemap_1_draw_common(screen, bitmap, cliprect, flags, priority); } template -void deco16ic_device::tilemap_2_draw_common(_BitmapClass &bitmap, const rectangle &cliprect, int flags, UINT32 priority) +void deco16ic_device::tilemap_2_draw_common(screen_device &screen, _BitmapClass &bitmap, const rectangle &cliprect, int flags, UINT32 priority) { if (m_use_custom_pf2) { - custom_tilemap_draw(bitmap, cliprect, m_pf2_tilemap_8x8, m_pf2_tilemap_16x16, 0, 0, m_pf2_rowscroll_ptr, m_pf12_control[3], m_pf12_control[4], m_pf12_control[5] >> 8, m_pf12_control[6] >> 8, 0, 0, m_pf2_trans_mask, flags, priority, 0); + custom_tilemap_draw(screen, bitmap, cliprect, m_pf2_tilemap_8x8, m_pf2_tilemap_16x16, 0, 0, m_pf2_rowscroll_ptr, m_pf12_control[3], m_pf12_control[4], m_pf12_control[5] >> 8, m_pf12_control[6] >> 8, 0, 0, m_pf2_trans_mask, flags, priority, 0); } else { if (m_pf2_tilemap_8x8) - m_pf2_tilemap_8x8->draw(bitmap, cliprect, flags, priority); + m_pf2_tilemap_8x8->draw(screen, bitmap, cliprect, flags, priority); if (m_pf2_tilemap_16x16) - m_pf2_tilemap_16x16->draw(bitmap, cliprect, flags, priority); + m_pf2_tilemap_16x16->draw(screen, bitmap, cliprect, flags, priority); } } -void deco16ic_device::tilemap_2_draw( bitmap_ind16 &bitmap, const rectangle &cliprect, int flags, UINT32 priority ) -{ tilemap_2_draw_common(bitmap, cliprect, flags, priority); } +void deco16ic_device::tilemap_2_draw( screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect, int flags, UINT32 priority ) +{ tilemap_2_draw_common(screen, bitmap, cliprect, flags, priority); } -void deco16ic_device::tilemap_2_draw( bitmap_rgb32 &bitmap, const rectangle &cliprect, int flags, UINT32 priority ) -{ tilemap_2_draw_common(bitmap, cliprect, flags, priority); } +void deco16ic_device::tilemap_2_draw( screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect, int flags, UINT32 priority ) +{ tilemap_2_draw_common(screen, bitmap, cliprect, flags, priority); } /*****************************************************************************************/ // Combines the output of two 4BPP tilemaps into an 8BPP tilemap -void deco16ic_device::tilemap_12_combine_draw(bitmap_ind16 &bitmap, const rectangle &cliprect, int flags, UINT32 priority, int is_tattoo) +void deco16ic_device::tilemap_12_combine_draw(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect, int flags, UINT32 priority, int is_tattoo) { - custom_tilemap_draw(bitmap, cliprect, 0, m_pf1_tilemap_16x16, 0, m_pf2_tilemap_16x16, m_pf1_rowscroll_ptr, m_pf12_control[1], m_pf12_control[2], m_pf12_control[5] & 0xff, m_pf12_control[6] & 0xff, 0xf, 4, 0xff, flags, priority, is_tattoo); + custom_tilemap_draw(screen, bitmap, cliprect, 0, m_pf1_tilemap_16x16, 0, m_pf2_tilemap_16x16, m_pf1_rowscroll_ptr, m_pf12_control[1], m_pf12_control[2], m_pf12_control[5] & 0xff, m_pf12_control[6] & 0xff, 0xf, 4, 0xff, flags, priority, is_tattoo); } -void deco16ic_device::tilemap_12_combine_draw(bitmap_rgb32 &bitmap, const rectangle &cliprect, int flags, UINT32 priority, int is_tattoo) +void deco16ic_device::tilemap_12_combine_draw(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect, int flags, UINT32 priority, int is_tattoo) { - custom_tilemap_draw(bitmap, cliprect, 0, m_pf1_tilemap_16x16, 0, m_pf2_tilemap_16x16, m_pf1_rowscroll_ptr, m_pf12_control[1], m_pf12_control[2], m_pf12_control[5] & 0xff, m_pf12_control[6] & 0xff, 0xf, 4, 0xff, flags, priority, is_tattoo); + custom_tilemap_draw(screen, bitmap, cliprect, 0, m_pf1_tilemap_16x16, 0, m_pf2_tilemap_16x16, m_pf1_rowscroll_ptr, m_pf12_control[1], m_pf12_control[2], m_pf12_control[5] & 0xff, m_pf12_control[6] & 0xff, 0xf, 4, 0xff, flags, priority, is_tattoo); } diff --git a/src/mame/video/deco16ic.h b/src/mame/video/deco16ic.h index 6be2141299b..8a2b8e633d0 100644 --- a/src/mame/video/deco16ic.h +++ b/src/mame/video/deco16ic.h @@ -65,17 +65,17 @@ public: void pf_update(const UINT16 *rowscroll_1_ptr, const UINT16 *rowscroll_2_ptr); template - void tilemap_1_draw_common(_BitmapClass &bitmap, const rectangle &cliprect, int flags, UINT32 priority); + void tilemap_1_draw_common(screen_device &screen, _BitmapClass &bitmap, const rectangle &cliprect, int flags, UINT32 priority); template - void tilemap_2_draw_common(_BitmapClass &bitmap, const rectangle &cliprect, int flags, UINT32 priority); - void tilemap_1_draw(bitmap_ind16 &bitmap, const rectangle &cliprect, int flags, UINT32 priority); - void tilemap_1_draw(bitmap_rgb32 &bitmap, const rectangle &cliprect, int flags, UINT32 priority); - void tilemap_2_draw(bitmap_ind16 &bitmap, const rectangle &cliprect, int flags, UINT32 priority); - void tilemap_2_draw(bitmap_rgb32 &bitmap, const rectangle &cliprect, int flags, UINT32 priority); + void tilemap_2_draw_common(screen_device &screen, _BitmapClass &bitmap, const rectangle &cliprect, int flags, UINT32 priority); + void tilemap_1_draw(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect, int flags, UINT32 priority); + void tilemap_1_draw(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect, int flags, UINT32 priority); + void tilemap_2_draw(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect, int flags, UINT32 priority); + void tilemap_2_draw(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect, int flags, UINT32 priority); /* used by boogwing, nitrobal */ - void tilemap_12_combine_draw(bitmap_ind16 &bitmap, const rectangle &cliprect, int flags, UINT32 priority, int is_tattoo = false); - void tilemap_12_combine_draw(bitmap_rgb32 &bitmap, const rectangle &cliprect, int flags, UINT32 priority, int is_tattoo = false); + void tilemap_12_combine_draw(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect, int flags, UINT32 priority, int is_tattoo = false); + void tilemap_12_combine_draw(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect, int flags, UINT32 priority, int is_tattoo = false); /* used by robocop2 */ void set_tilemap_colour_mask(int tmap, int mask); @@ -92,6 +92,7 @@ public: template void custom_tilemap_draw( + screen_device &screen, _BitmapClass &bitmap, const rectangle &cliprect, tilemap_t *tilemap0_8x8, diff --git a/src/mame/video/deco32.c b/src/mame/video/deco32.c index 7380dfc0c61..49d4166ad6f 100644 --- a/src/mame/video/deco32.c +++ b/src/mame/video/deco32.c @@ -569,7 +569,7 @@ UINT32 deco32_state::screen_update_captaven(screen_device &screen, bitmap_ind16 { machine().tilemap().set_flip_all(flip_screen() ? (TILEMAP_FLIPY | TILEMAP_FLIPX) : 0); - machine().priority_bitmap.fill(0, cliprect); + screen.priority().fill(0, cliprect); bitmap.fill(machine().pens[0x000], cliprect); // Palette index not confirmed m_deco_tilegen2->set_pf1_8bpp_mode(1); @@ -581,16 +581,16 @@ UINT32 deco32_state::screen_update_captaven(screen_device &screen, bitmap_ind16 if ((m_pri&1)==0) { - m_deco_tilegen2->tilemap_1_draw(bitmap, cliprect, 0, 1); - m_deco_tilegen1->tilemap_2_draw(bitmap, cliprect, 0, 2); + m_deco_tilegen2->tilemap_1_draw(screen, bitmap, cliprect, 0, 1); + m_deco_tilegen1->tilemap_2_draw(screen, bitmap, cliprect, 0, 2); } else { - m_deco_tilegen1->tilemap_2_draw(bitmap, cliprect, 0, 1); - m_deco_tilegen2->tilemap_1_draw(bitmap, cliprect, 0, 2); + m_deco_tilegen1->tilemap_2_draw(screen, bitmap, cliprect, 0, 1); + m_deco_tilegen2->tilemap_1_draw(screen, bitmap, cliprect, 0, 2); } - m_deco_tilegen1->tilemap_1_draw(bitmap, cliprect, 0, 4); + m_deco_tilegen1->tilemap_1_draw(screen, bitmap, cliprect, 0, 4); m_sprgen->set_alt_format(true); m_sprgen->draw_sprites(bitmap, cliprect, m_spriteram16_buffered, 0x400); @@ -607,9 +607,9 @@ UINT32 dragngun_state::screen_update_dragngun(screen_device &screen, bitmap_rgb3 //m_deco_tilegen1->set_pf3_8bpp_mode(1); // despite being 8bpp this doesn't require the same shifting as captaven, why not? - m_deco_tilegen2->tilemap_2_draw(bitmap, cliprect, 0, 0); // it uses pf3 in 8bpp mode instead, like captaven - m_deco_tilegen2->tilemap_1_draw(bitmap, cliprect, 0, 0); - m_deco_tilegen1->tilemap_2_draw(bitmap, cliprect, 0, 0); + m_deco_tilegen2->tilemap_2_draw(screen, bitmap, cliprect, 0, 0); // it uses pf3 in 8bpp mode instead, like captaven + m_deco_tilegen2->tilemap_1_draw(screen, bitmap, cliprect, 0, 0); + m_deco_tilegen1->tilemap_2_draw(screen, bitmap, cliprect, 0, 0); // zooming sprite draw is very slow, and sprites are buffered.. however, one of the levels attempts to use // partial updates for every line, which causes things to be very slow... the sprites appear to support @@ -626,7 +626,7 @@ UINT32 dragngun_state::screen_update_dragngun(screen_device &screen, bitmap_rgb3 rectangle clip(cliprect.min_x, cliprect.max_x, 8, 247); dragngun_draw_sprites(bitmap,clip,m_spriteram->buffer()); - m_deco_tilegen1->tilemap_1_draw(bitmap, clip, 0, 0); + m_deco_tilegen1->tilemap_1_draw(screen, bitmap, clip, 0, 0); } @@ -636,7 +636,7 @@ UINT32 dragngun_state::screen_update_dragngun(screen_device &screen, bitmap_rgb3 UINT32 deco32_state::screen_update_fghthist(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect) { - machine().priority_bitmap.fill(0, cliprect); + screen.priority().fill(0, cliprect); bitmap.fill(machine().pens[0x300], cliprect); // Palette index not confirmed m_deco_tilegen1->pf_update(m_pf1_rowscroll, m_pf2_rowscroll); @@ -645,24 +645,24 @@ UINT32 deco32_state::screen_update_fghthist(screen_device &screen, bitmap_rgb32 m_sprgen->draw_sprites(bitmap, cliprect, m_spriteram16_buffered, 0x800, true); /* Draw screen */ - m_deco_tilegen2->tilemap_2_draw(bitmap, cliprect, 0, 1); + m_deco_tilegen2->tilemap_2_draw(screen, bitmap, cliprect, 0, 1); if(m_pri&1) { - m_deco_tilegen1->tilemap_2_draw(bitmap, cliprect, 0, 2); + m_deco_tilegen1->tilemap_2_draw(screen, bitmap, cliprect, 0, 2); m_sprgen->inefficient_copy_sprite_bitmap(bitmap, cliprect, 0x0800, 0x0800, 1024, 0x1ff); - m_deco_tilegen2->tilemap_1_draw(bitmap, cliprect, 0, 4); + m_deco_tilegen2->tilemap_1_draw(screen, bitmap, cliprect, 0, 4); } else { - m_deco_tilegen2->tilemap_1_draw(bitmap, cliprect, 0, 2); + m_deco_tilegen2->tilemap_1_draw(screen, bitmap, cliprect, 0, 2); m_sprgen->inefficient_copy_sprite_bitmap(bitmap, cliprect, 0x0800, 0x0800, 1024, 0x1ff); - m_deco_tilegen1->tilemap_2_draw(bitmap, cliprect, 0, 4); + m_deco_tilegen1->tilemap_2_draw(screen, bitmap, cliprect, 0, 4); } m_sprgen->inefficient_copy_sprite_bitmap(bitmap, cliprect, 0x0000, 0x0800, 1024, 0x1ff); - m_deco_tilegen1->tilemap_1_draw(bitmap, cliprect, 0, 0); + m_deco_tilegen1->tilemap_1_draw(screen, bitmap, cliprect, 0, 0); return 0; } @@ -674,7 +674,7 @@ UINT32 deco32_state::screen_update_fghthist(screen_device &screen, bitmap_rgb32 blending support - it can't be done in-place on the final framebuffer without a lot of support bitmaps. */ -void deco32_state::mixDualAlphaSprites(bitmap_rgb32 &bitmap, const rectangle &cliprect, gfx_element *gfx0, gfx_element *gfx1, int mixAlphaTilemap) +void deco32_state::mixDualAlphaSprites(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect, gfx_element *gfx0, gfx_element *gfx1, int mixAlphaTilemap) { const pen_t *pens = machine().pens; const pen_t *pal0 = &pens[gfx0->colorbase()]; @@ -687,7 +687,7 @@ void deco32_state::mixDualAlphaSprites(bitmap_rgb32 &bitmap, const rectangle &cl /* Mix sprites into main bitmap, based on priority & alpha */ for (y=8; y<248; y++) { - UINT8* tilemapPri=&machine().priority_bitmap.pix8(y); + UINT8* tilemapPri=&screen.priority().pix8(y); UINT16* sprite0=&sprite0_mix_bitmap.pix16(y); UINT16* sprite1=&sprite1_mix_bitmap.pix16(y); UINT32* destLine=&bitmap.pix32(y); @@ -818,7 +818,7 @@ UINT32 deco32_state::screen_update_nslasher(screen_device &screen, bitmap_rgb32 if (m_ace_ram_dirty) updateAceRam(); - machine().priority_bitmap.fill(0, cliprect); + screen.priority().fill(0, cliprect); bitmap.fill(machine().pens[0x200], cliprect); @@ -836,32 +836,32 @@ UINT32 deco32_state::screen_update_nslasher(screen_device &screen, bitmap_rgb32 /* Draw playfields & sprites */ if (m_pri&2) { - m_deco_tilegen2->tilemap_12_combine_draw(bitmap, cliprect, 0, 1, 1); - m_deco_tilegen1->tilemap_2_draw(bitmap, cliprect, 0, 4); + m_deco_tilegen2->tilemap_12_combine_draw(screen, bitmap, cliprect, 0, 1, 1); + m_deco_tilegen1->tilemap_2_draw(screen, bitmap, cliprect, 0, 4); } else { - m_deco_tilegen2->tilemap_2_draw(bitmap, cliprect, 0, 1); + m_deco_tilegen2->tilemap_2_draw(screen, bitmap, cliprect, 0, 1); if (m_pri&1) { - m_deco_tilegen1->tilemap_2_draw(bitmap, cliprect, 0, 2); + m_deco_tilegen1->tilemap_2_draw(screen, bitmap, cliprect, 0, 2); if (alphaTilemap) - m_deco_tilegen2->tilemap_1_draw(*m_tilemap_alpha_bitmap, cliprect, 0, 4); + m_deco_tilegen2->tilemap_1_draw(screen, *m_tilemap_alpha_bitmap, cliprect, 0, 4); else - m_deco_tilegen2->tilemap_1_draw(bitmap, cliprect, 0, 4); + m_deco_tilegen2->tilemap_1_draw(screen, bitmap, cliprect, 0, 4); } else { - m_deco_tilegen2->tilemap_1_draw(bitmap, cliprect, 0, 2); + m_deco_tilegen2->tilemap_1_draw(screen, bitmap, cliprect, 0, 2); if (alphaTilemap) - m_deco_tilegen1->tilemap_2_draw(*m_tilemap_alpha_bitmap, cliprect, 0, 4); + m_deco_tilegen1->tilemap_2_draw(screen, *m_tilemap_alpha_bitmap, cliprect, 0, 4); else - m_deco_tilegen1->tilemap_2_draw(bitmap, cliprect, 0, 4); + m_deco_tilegen1->tilemap_2_draw(screen, bitmap, cliprect, 0, 4); } } - mixDualAlphaSprites(bitmap, cliprect, machine().gfx[3], machine().gfx[4], alphaTilemap); + mixDualAlphaSprites(screen, bitmap, cliprect, machine().gfx[3], machine().gfx[4], alphaTilemap); - m_deco_tilegen1->tilemap_1_draw(bitmap, cliprect, 0, 0); + m_deco_tilegen1->tilemap_1_draw(screen, bitmap, cliprect, 0, 0); return 0; } diff --git a/src/mame/video/decocass.c b/src/mame/video/decocass.c index 2265e22830c..fd7dec71b4a 100644 --- a/src/mame/video/decocass.c +++ b/src/mame/video/decocass.c @@ -741,7 +741,7 @@ UINT32 decocass_state::screen_update_decocass(screen_device &screen, bitmap_ind1 draw_edge(bitmap,cliprect,1,false); } } - m_fg_tilemap->draw(bitmap, cliprect, 0, 0); + m_fg_tilemap->draw(screen, bitmap, cliprect, 0, 0); draw_sprites(bitmap, cliprect, (m_color_center_bot >> 1) & 1, 0, 0, m_fgvideoram, 0x20); draw_missiles(bitmap, cliprect, 1, 0, m_colorram, 0x20); return 0; diff --git a/src/mame/video/decospr.c b/src/mame/video/decospr.c index a4308efbe9e..5879503383c 100644 --- a/src/mame/video/decospr.c +++ b/src/mame/video/decospr.c @@ -161,6 +161,7 @@ const device_type DECO_SPRITE = &device_creator; decospr_device::decospr_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock) : device_t(mconfig, DECO_SPRITE, "decospr_device", tag, owner, clock, "decospr", __FILE__), + device_video_interface(mconfig, *this), m_gfxregion(0), m_pricallback(NULL), m_colcallback(decospr_default_colour_callback), @@ -187,7 +188,7 @@ void decospr_device::device_reset() void decospr_device::alloc_sprite_bitmap() { - machine().primary_screen->register_screen_bitmap(m_sprite_bitmap); + m_screen->register_screen_bitmap(m_sprite_bitmap); } void decospr_device::set_pri_callback(decospr_priority_callback_func callback) @@ -246,7 +247,7 @@ void decospr_device::draw_sprites_common(_BitmapClass &bitmap, const rectangle & w = y & 0x0800; - if (!(flash && (machine().primary_screen->frame_number() & 1))) + if (!(flash && (m_screen->frame_number() & 1))) { x = spriteram[offs + 2]; @@ -348,7 +349,7 @@ void decospr_device::draw_sprites_common(_BitmapClass &bitmap, const rectangle & colour, fx,fy, x,ypos, - machine().priority_bitmap,pri,m_transpen); + m_screen->priority(),pri,m_transpen); else drawgfx_transpen(bitmap,cliprect,machine().gfx[m_gfxregion], sprite - multi * inc, @@ -367,7 +368,7 @@ void decospr_device::draw_sprites_common(_BitmapClass &bitmap, const rectangle & colour, fx,fy, x-16,ypos, - machine().priority_bitmap,pri,m_transpen); + m_screen->priority(),pri,m_transpen); else drawgfx_transpen(bitmap,cliprect,machine().gfx[m_gfxregion], (sprite - multi * inc)-mult2, @@ -417,7 +418,7 @@ void decospr_device::draw_sprites_common(_BitmapClass &bitmap, const rectangle & x = spriteram[offs+1]; - if (!((y&0x2000) && (machine().primary_screen->frame_number() & 1))) + if (!((y&0x2000) && (m_screen->frame_number() & 1))) { if (!m_sprite_bitmap.valid()) colour = (spriteram[offs+2] >>0) & 0x1f; @@ -472,7 +473,7 @@ void decospr_device::draw_sprites_common(_BitmapClass &bitmap, const rectangle & colour, fx,fy, x + mult * (w-xx),ypos, - machine().priority_bitmap,pri,m_transpen); + m_screen->priority(),pri,m_transpen); } ypos -= 512; // wrap-around y @@ -484,7 +485,7 @@ void decospr_device::draw_sprites_common(_BitmapClass &bitmap, const rectangle & colour, fx,fy, x + mult * (w-xx),ypos, - machine().priority_bitmap,pri,m_transpen); + m_screen->priority(),pri,m_transpen); } } diff --git a/src/mame/video/decospr.h b/src/mame/video/decospr.h index 6c1f554a338..767ea6a5981 100644 --- a/src/mame/video/decospr.h +++ b/src/mame/video/decospr.h @@ -2,7 +2,8 @@ typedef UINT16 (*decospr_priority_callback_func)(UINT16 pri); typedef UINT16 (*decospr_colour_callback_func)(UINT16 col); -class decospr_device : public device_t +class decospr_device : public device_t, + public device_video_interface { public: decospr_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock); diff --git a/src/mame/video/deniam.c b/src/mame/video/deniam.c index 737c3152e30..835899173cd 100644 --- a/src/mame/video/deniam.c +++ b/src/mame/video/deniam.c @@ -200,7 +200,7 @@ WRITE16_MEMBER(deniam_state::deniam_coinctrl_w) * c | ---------------- | zoomy like in System 16? * e | ---------------- | */ -void deniam_state::draw_sprites( bitmap_ind16 &bitmap, const rectangle &cliprect ) +void deniam_state::draw_sprites( screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect ) { int offs; UINT8 *gfx = memregion("gfx2")->base(); @@ -256,9 +256,9 @@ void deniam_state::draw_sprites( bitmap_ind16 &bitmap, const rectangle &cliprect { if (cliprect.contains(sx + x, y)) { - if ((machine().priority_bitmap.pix8(y, sx + x) & primask) == 0) + if ((screen.priority().pix8(y, sx + x) & primask) == 0) bitmap.pix16(y, sx + x) = color * 16 + (rom[i] & 0x0f); - machine().priority_bitmap.pix8(y, sx + x) = 8; + screen.priority().pix8(y, sx + x) = 8; } } x++; @@ -275,9 +275,9 @@ void deniam_state::draw_sprites( bitmap_ind16 &bitmap, const rectangle &cliprect { if (cliprect.contains(sx + x, y)) { - if ((machine().priority_bitmap.pix8(y, sx + x) & primask) == 0) + if ((screen.priority().pix8(y, sx + x) & primask) == 0) bitmap.pix16(y, sx + x) = color * 16+(rom[i] >> 4); - machine().priority_bitmap.pix8(y, sx + x) = 8; + screen.priority().pix8(y, sx + x) = 8; } } x++; @@ -298,9 +298,9 @@ void deniam_state::draw_sprites( bitmap_ind16 &bitmap, const rectangle &cliprect { if (cliprect.contains(sx + x, y)) { - if ((machine().priority_bitmap.pix8(y, sx + x) & primask) == 0) + if ((screen.priority().pix8(y, sx + x) & primask) == 0) bitmap.pix16(y, sx + x) = color * 16 + (rom[i] >> 4); - machine().priority_bitmap.pix8(y, sx + x) = 8; + screen.priority().pix8(y, sx + x) = 8; } } x++; @@ -317,9 +317,9 @@ void deniam_state::draw_sprites( bitmap_ind16 &bitmap, const rectangle &cliprect { if (cliprect.contains(sx + x, y)) { - if ((machine().priority_bitmap.pix8(y, sx + x) & primask) == 0) + if ((screen.priority().pix8(y, sx + x) & primask) == 0) bitmap.pix16(y, sx + x) = color * 16 + (rom[i] & 0x0f); - machine().priority_bitmap.pix8(y, sx + x) = 8; + screen.priority().pix8(y, sx + x) = 8; } } x++; @@ -385,12 +385,12 @@ UINT32 deniam_state::screen_update_deniam(screen_device &screen, bitmap_ind16 &b m_fg_tilemap->set_scrollx(0, fg_scrollx & 0x1ff); m_fg_tilemap->set_scrolly(0, fg_scrolly & 0x0ff); - machine().priority_bitmap.fill(0, cliprect); + screen.priority().fill(0, cliprect); - m_bg_tilemap->draw(bitmap, cliprect, 0, 1); - m_fg_tilemap->draw(bitmap, cliprect, 0, 2); - m_tx_tilemap->draw(bitmap, cliprect, 0, 4); + m_bg_tilemap->draw(screen, bitmap, cliprect, 0, 1); + m_fg_tilemap->draw(screen, bitmap, cliprect, 0, 2); + m_tx_tilemap->draw(screen, bitmap, cliprect, 0, 4); - draw_sprites(bitmap, cliprect); + draw_sprites(screen, bitmap, cliprect); return 0; } diff --git a/src/mame/video/dietgo.c b/src/mame/video/dietgo.c index 9c120805a22..150672b6e00 100644 --- a/src/mame/video/dietgo.c +++ b/src/mame/video/dietgo.c @@ -11,8 +11,8 @@ UINT32 dietgo_state::screen_update_dietgo(screen_device &screen, bitmap_ind16 &b bitmap.fill(256, cliprect); /* not verified */ - m_deco_tilegen1->tilemap_2_draw(bitmap, cliprect, TILEMAP_DRAW_OPAQUE, 0); - m_deco_tilegen1->tilemap_1_draw(bitmap, cliprect, 0, 0); + m_deco_tilegen1->tilemap_2_draw(screen, bitmap, cliprect, TILEMAP_DRAW_OPAQUE, 0); + m_deco_tilegen1->tilemap_1_draw(screen, bitmap, cliprect, 0, 0); m_sprgen->draw_sprites(bitmap, cliprect, m_spriteram, 0x400); return 0; diff --git a/src/mame/video/digdug.c b/src/mame/video/digdug.c index 527c48e35dd..f7608a65c5a 100644 --- a/src/mame/video/digdug.c +++ b/src/mame/video/digdug.c @@ -304,8 +304,8 @@ void digdug_state::draw_sprites(bitmap_ind16 &bitmap, const rectangle &cliprect UINT32 digdug_state::screen_update_digdug(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect) { - m_bg_tilemap->draw(bitmap, cliprect, 0,0); - m_fg_tilemap->draw(bitmap, cliprect, 0,0); + m_bg_tilemap->draw(screen, bitmap, cliprect, 0,0); + m_fg_tilemap->draw(screen, bitmap, cliprect, 0,0); draw_sprites(bitmap,cliprect); return 0; } diff --git a/src/mame/video/djboy.c b/src/mame/video/djboy.c index 9e5539df931..cc1e39b0b98 100644 --- a/src/mame/video/djboy.c +++ b/src/mame/video/djboy.c @@ -67,7 +67,7 @@ UINT32 djboy_state::screen_update_djboy(screen_device &screen, bitmap_ind16 &bit scroll = m_scrolly | ((m_videoreg & 0x20) << 3); m_background->set_scrolly(0, scroll); - m_background->draw(bitmap, cliprect, 0, 0); + m_background->draw(screen, bitmap, cliprect, 0, 0); m_pandora->update(bitmap, cliprect); return 0; diff --git a/src/mame/video/djmain.c b/src/mame/video/djmain.c index bd98051f942..1c36fab4bcd 100644 --- a/src/mame/video/djmain.c +++ b/src/mame/video/djmain.c @@ -176,7 +176,7 @@ UINT32 djmain_state::screen_update_djmain(screen_device &screen, bitmap_rgb32 &b else { if (enables & (K55_INP_VRAM_A << layer)) - m_k056832->tilemap_draw_dj(bitmap, cliprect, layer, 0, 1 << i); + m_k056832->tilemap_draw_dj(screen, bitmap, cliprect, layer, 0, 1 << i); } } return 0; diff --git a/src/mame/video/dkong.c b/src/mame/video/dkong.c index 5ef840162d5..c879296c1b3 100644 --- a/src/mame/video/dkong.c +++ b/src/mame/video/dkong.c @@ -979,12 +979,12 @@ UINT32 dkong_state::screen_update_dkong(screen_device &screen, bitmap_ind16 &bit case HARDWARE_TKG02: case HARDWARE_TKG04: check_palette(); - m_bg_tilemap->draw(bitmap, cliprect, 0, 0); + m_bg_tilemap->draw(screen, bitmap, cliprect, 0, 0); draw_sprites(bitmap, cliprect, 0x40, 1); break; case HARDWARE_TRS01: case HARDWARE_TRS02: - m_bg_tilemap->draw(bitmap, cliprect, 0, 0); + m_bg_tilemap->draw(screen, bitmap, cliprect, 0, 0); draw_sprites(bitmap, cliprect, 0x40, 1); radarscp_draw_background(this, bitmap, cliprect); break; @@ -998,7 +998,7 @@ UINT32 dkong_state::screen_update_pestplce(screen_device &screen, bitmap_ind16 & { int offs; - m_bg_tilemap->draw(bitmap, cliprect, 0, 0); + m_bg_tilemap->draw(screen, bitmap, cliprect, 0, 0); /* Draw the sprites. */ for (offs = 0;offs < m_sprite_ram.bytes();offs += 4) @@ -1017,7 +1017,7 @@ UINT32 dkong_state::screen_update_pestplce(screen_device &screen, bitmap_ind16 & UINT32 dkong_state::screen_update_spclforc(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect) { - m_bg_tilemap->draw(bitmap, cliprect, 0, 0); + m_bg_tilemap->draw(screen, bitmap, cliprect, 0, 0); /* it uses sprite_ram[offs + 2] & 0x10 for sprite bank */ draw_sprites(bitmap, cliprect, 0x10, 3); diff --git a/src/mame/video/docastle.c b/src/mame/video/docastle.c index fb0e41495c5..628d9fbe8fd 100644 --- a/src/mame/video/docastle.c +++ b/src/mame/video/docastle.c @@ -125,11 +125,11 @@ VIDEO_START_MEMBER(docastle_state,dorunrun) video_start_common(0xff00); } -void docastle_state::draw_sprites( bitmap_ind16 &bitmap, const rectangle &cliprect ) +void docastle_state::draw_sprites( screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect ) { int offs; - machine().priority_bitmap.fill(1); + screen.priority().fill(1); for (offs = m_spriteram.bytes() - 4; offs >= 0; offs -= 4) { @@ -202,7 +202,7 @@ void docastle_state::draw_sprites( bitmap_ind16 &bitmap, const rectangle &clipre color, flipx,flipy, sx,sy, - machine().priority_bitmap, + screen.priority(), 0x00,0x80ff); /* then draw the mask, behind the background but obscuring following sprites */ @@ -211,15 +211,15 @@ void docastle_state::draw_sprites( bitmap_ind16 &bitmap, const rectangle &clipre color, flipx,flipy, sx,sy, - machine().priority_bitmap, + screen.priority(), 0x02,0x7fff); } } UINT32 docastle_state::screen_update_docastle(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect) { - m_do_tilemap->draw(bitmap, cliprect, TILEMAP_DRAW_OPAQUE, 0); - draw_sprites(bitmap, cliprect); - m_do_tilemap->draw(bitmap, cliprect, TILEMAP_DRAW_LAYER0, 0); + m_do_tilemap->draw(screen, bitmap, cliprect, TILEMAP_DRAW_OPAQUE, 0); + draw_sprites(screen, bitmap, cliprect); + m_do_tilemap->draw(screen, bitmap, cliprect, TILEMAP_DRAW_LAYER0, 0); return 0; } diff --git a/src/mame/video/dogfgt.c b/src/mame/video/dogfgt.c index 87e9ca37e4d..fa0d7957663 100644 --- a/src/mame/video/dogfgt.c +++ b/src/mame/video/dogfgt.c @@ -218,7 +218,7 @@ UINT32 dogfgt_state::screen_update_dogfgt(screen_device &screen, bitmap_ind16 &b } - m_bg_tilemap->draw(bitmap, cliprect, 0, 0); + m_bg_tilemap->draw(screen, bitmap, cliprect, 0, 0); draw_sprites(bitmap, cliprect); diff --git a/src/mame/video/dooyong.c b/src/mame/video/dooyong.c index 3657c2e80e2..4b449a14bb1 100644 --- a/src/mame/video/dooyong.c +++ b/src/mame/video/dooyong.c @@ -334,7 +334,7 @@ TILE_GET_INFO_MEMBER(dooyong_state::get_tx_tile_info) } -void dooyong_state::draw_sprites(bitmap_ind16 &bitmap, const rectangle &cliprect, int pollux_extensions) +void dooyong_state::draw_sprites(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect, int pollux_extensions) { /* Sprites take 32 bytes each in memory: MSB LSB @@ -418,13 +418,13 @@ void dooyong_state::draw_sprites(bitmap_ind16 &bitmap, const rectangle &cliprect color, flipx, flipy, sx, sy + (16 * (flipy ? (height - y) : y)), - machine().priority_bitmap, + screen.priority(), pri, 15); } } } -void dooyong_state::rshark_draw_sprites(bitmap_ind16 &bitmap, const rectangle &cliprect) +void dooyong_state::rshark_draw_sprites(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect) { UINT16 *buffered_spriteram16 = m_spriteram16->buffer(); @@ -486,7 +486,7 @@ void dooyong_state::rshark_draw_sprites(bitmap_ind16 &bitmap, const rectangle &c color, flipx, flipy, _x, _y, - machine().priority_bitmap, + screen.priority(), pri, 15); code++; } @@ -499,61 +499,61 @@ void dooyong_state::rshark_draw_sprites(bitmap_ind16 &bitmap, const rectangle &c UINT32 dooyong_state::screen_update_lastday(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect) { bitmap.fill(get_black_pen(machine()), cliprect); - machine().priority_bitmap.fill(0, cliprect); + screen.priority().fill(0, cliprect); - m_bg_tilemap->draw(bitmap, cliprect, 0, 1); - m_fg_tilemap->draw(bitmap, cliprect, 0, 2); - m_tx_tilemap->draw(bitmap, cliprect, 0, 4); + m_bg_tilemap->draw(screen, bitmap, cliprect, 0, 1); + m_fg_tilemap->draw(screen, bitmap, cliprect, 0, 2); + m_tx_tilemap->draw(screen, bitmap, cliprect, 0, 4); if (!m_sprites_disabled) - draw_sprites(bitmap, cliprect, 0); + draw_sprites(screen, bitmap, cliprect, 0); return 0; } UINT32 dooyong_state::screen_update_gulfstrm(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect) { bitmap.fill(get_black_pen(machine()), cliprect); - machine().priority_bitmap.fill(0, cliprect); + screen.priority().fill(0, cliprect); - m_bg_tilemap->draw(bitmap, cliprect, 0, 1); - m_fg_tilemap->draw(bitmap, cliprect, 0, 2); - m_tx_tilemap->draw(bitmap, cliprect, 0, 4); + m_bg_tilemap->draw(screen, bitmap, cliprect, 0, 1); + m_fg_tilemap->draw(screen, bitmap, cliprect, 0, 2); + m_tx_tilemap->draw(screen, bitmap, cliprect, 0, 4); - draw_sprites(bitmap, cliprect, 1); + draw_sprites(screen, bitmap, cliprect, 1); return 0; } UINT32 dooyong_state::screen_update_pollux(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect) { bitmap.fill(get_black_pen(machine()), cliprect); - machine().priority_bitmap.fill(0, cliprect); + screen.priority().fill(0, cliprect); - m_bg_tilemap->draw(bitmap, cliprect, 0, 1); - m_fg_tilemap->draw(bitmap, cliprect, 0, 2); - m_tx_tilemap->draw(bitmap, cliprect, 0, 4); + m_bg_tilemap->draw(screen, bitmap, cliprect, 0, 1); + m_fg_tilemap->draw(screen, bitmap, cliprect, 0, 2); + m_tx_tilemap->draw(screen, bitmap, cliprect, 0, 4); - draw_sprites(bitmap, cliprect, 2); + draw_sprites(screen, bitmap, cliprect, 2); return 0; } UINT32 dooyong_state::screen_update_flytiger(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect) { bitmap.fill(get_black_pen(machine()), cliprect); - machine().priority_bitmap.fill(0, cliprect); + screen.priority().fill(0, cliprect); if (m_flytiger_pri) { - m_fg_tilemap->draw(bitmap, cliprect, 0, 1); - m_bg_tilemap->draw(bitmap, cliprect, 0, 2); + m_fg_tilemap->draw(screen, bitmap, cliprect, 0, 1); + m_bg_tilemap->draw(screen, bitmap, cliprect, 0, 2); } else { - m_bg_tilemap->draw(bitmap, cliprect, 0, 1); - m_fg_tilemap->draw(bitmap, cliprect, 0, 2); + m_bg_tilemap->draw(screen, bitmap, cliprect, 0, 1); + m_fg_tilemap->draw(screen, bitmap, cliprect, 0, 2); } - m_tx_tilemap->draw(bitmap, cliprect, 0, 4); + m_tx_tilemap->draw(screen, bitmap, cliprect, 0, 4); - draw_sprites(bitmap, cliprect, 4); + draw_sprites(screen, bitmap, cliprect, 4); return 0; } @@ -561,14 +561,14 @@ UINT32 dooyong_state::screen_update_flytiger(screen_device &screen, bitmap_ind16 UINT32 dooyong_state::screen_update_bluehawk(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect) { bitmap.fill(get_black_pen(machine()), cliprect); - machine().priority_bitmap.fill(0, cliprect); + screen.priority().fill(0, cliprect); - m_bg_tilemap->draw(bitmap, cliprect, 0, 1); - m_fg_tilemap->draw(bitmap, cliprect, 0, 2); - m_fg2_tilemap->draw(bitmap, cliprect, 0, 4); - m_tx_tilemap->draw(bitmap, cliprect, 0, 4); + m_bg_tilemap->draw(screen, bitmap, cliprect, 0, 1); + m_fg_tilemap->draw(screen, bitmap, cliprect, 0, 2); + m_fg2_tilemap->draw(screen, bitmap, cliprect, 0, 4); + m_tx_tilemap->draw(screen, bitmap, cliprect, 0, 4); - draw_sprites(bitmap, cliprect, 3); + draw_sprites(screen, bitmap, cliprect, 3); return 0; } @@ -576,35 +576,35 @@ UINT32 dooyong_state::screen_update_primella(screen_device &screen, bitmap_ind16 { bitmap.fill(get_black_pen(machine()), cliprect); - m_bg_tilemap->draw(bitmap, cliprect, 0, 0); - if (m_tx_pri) m_tx_tilemap->draw(bitmap, cliprect, 0, 0); - m_fg_tilemap->draw(bitmap, cliprect, 0, 0); - if (!m_tx_pri) m_tx_tilemap->draw(bitmap, cliprect, 0, 0); + m_bg_tilemap->draw(screen, bitmap, cliprect, 0, 0); + if (m_tx_pri) m_tx_tilemap->draw(screen, bitmap, cliprect, 0, 0); + m_fg_tilemap->draw(screen, bitmap, cliprect, 0, 0); + if (!m_tx_pri) m_tx_tilemap->draw(screen, bitmap, cliprect, 0, 0); return 0; } UINT32 dooyong_state::screen_update_rshark(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect) { bitmap.fill(get_black_pen(machine()), cliprect); - machine().priority_bitmap.fill(0, cliprect); + screen.priority().fill(0, cliprect); - m_bg_tilemap->draw(bitmap, cliprect, 0, 1); - m_bg2_tilemap->draw(bitmap, cliprect, 0, (m_rshark_pri ? 2 : 1)); - m_fg_tilemap->draw(bitmap, cliprect, 0, 2); - m_fg2_tilemap->draw(bitmap, cliprect, 0, 2); + m_bg_tilemap->draw(screen, bitmap, cliprect, 0, 1); + m_bg2_tilemap->draw(screen, bitmap, cliprect, 0, (m_rshark_pri ? 2 : 1)); + m_fg_tilemap->draw(screen, bitmap, cliprect, 0, 2); + m_fg2_tilemap->draw(screen, bitmap, cliprect, 0, 2); - rshark_draw_sprites(bitmap, cliprect); + rshark_draw_sprites(screen, bitmap, cliprect); return 0; } UINT32 dooyong_state::screen_update_popbingo(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect) { bitmap.fill(get_black_pen(machine()), cliprect); - machine().priority_bitmap.fill(0, cliprect); + screen.priority().fill(0, cliprect); - m_bg_tilemap->draw(bitmap, cliprect, 0, 1); + m_bg_tilemap->draw(screen, bitmap, cliprect, 0, 1); - rshark_draw_sprites(bitmap, cliprect); + rshark_draw_sprites(screen, bitmap, cliprect); return 0; } diff --git a/src/mame/video/dragrace.c b/src/mame/video/dragrace.c index 858f8a386dd..49677f115c1 100644 --- a/src/mame/video/dragrace.c +++ b/src/mame/video/dragrace.c @@ -66,7 +66,7 @@ UINT32 dragrace_state::screen_update_dragrace(screen_device &screen, bitmap_ind1 if (rect.min_y < y + 0) rect.min_y = y + 0; if (rect.max_y > y + 3) rect.max_y = y + 3; - m_bg_tilemap->draw(bitmap, rect, 0, 0); + m_bg_tilemap->draw(screen, bitmap, rect, 0, 0); } return 0; } diff --git a/src/mame/video/drgnmst.c b/src/mame/video/drgnmst.c index 86fb3ce4a8b..a8d7940a445 100644 --- a/src/mame/video/drgnmst.c +++ b/src/mame/video/drgnmst.c @@ -156,31 +156,31 @@ UINT32 drgnmst_state::screen_update_drgnmst(screen_device &screen, bitmap_ind16 case 0x2d9a: // fg unsure case 0x2440: // all ok case 0x245a: // fg unsure, title screen - m_fg_tilemap->draw(bitmap, cliprect, TILEMAP_DRAW_OPAQUE, 0); - m_md_tilemap->draw(bitmap, cliprect, 0, 0); - m_bg_tilemap->draw(bitmap, cliprect, 0, 0); + m_fg_tilemap->draw(screen, bitmap, cliprect, TILEMAP_DRAW_OPAQUE, 0); + m_md_tilemap->draw(screen, bitmap, cliprect, 0, 0); + m_bg_tilemap->draw(screen, bitmap, cliprect, 0, 0); break; case 0x23c0: // all ok - m_bg_tilemap->draw(bitmap, cliprect, TILEMAP_DRAW_OPAQUE, 0); - m_fg_tilemap->draw(bitmap, cliprect, 0, 0); - m_md_tilemap->draw(bitmap, cliprect, 0, 0); + m_bg_tilemap->draw(screen, bitmap, cliprect, TILEMAP_DRAW_OPAQUE, 0); + m_fg_tilemap->draw(screen, bitmap, cliprect, 0, 0); + m_md_tilemap->draw(screen, bitmap, cliprect, 0, 0); break; case 0x38da: // fg unsure case 0x215a: // fg unsure case 0x2140: // all ok - m_fg_tilemap->draw(bitmap, cliprect, TILEMAP_DRAW_OPAQUE, 0); - m_bg_tilemap->draw(bitmap, cliprect, 0, 0); - m_md_tilemap->draw(bitmap, cliprect, 0, 0); + m_fg_tilemap->draw(screen, bitmap, cliprect, TILEMAP_DRAW_OPAQUE, 0); + m_bg_tilemap->draw(screen, bitmap, cliprect, 0, 0); + m_md_tilemap->draw(screen, bitmap, cliprect, 0, 0); break; case 0x2d80: // all ok - m_md_tilemap->draw(bitmap, cliprect, TILEMAP_DRAW_OPAQUE, 0); - m_bg_tilemap->draw(bitmap, cliprect, 0, 0); - m_fg_tilemap->draw(bitmap, cliprect, 0, 0); + m_md_tilemap->draw(screen, bitmap, cliprect, TILEMAP_DRAW_OPAQUE, 0); + m_bg_tilemap->draw(screen, bitmap, cliprect, 0, 0); + m_fg_tilemap->draw(screen, bitmap, cliprect, 0, 0); break; default: - m_bg_tilemap->draw(bitmap, cliprect, TILEMAP_DRAW_OPAQUE, 0); - m_fg_tilemap->draw(bitmap, cliprect, 0, 0); - m_md_tilemap->draw(bitmap, cliprect, 0, 0); + m_bg_tilemap->draw(screen, bitmap, cliprect, TILEMAP_DRAW_OPAQUE, 0); + m_fg_tilemap->draw(screen, bitmap, cliprect, 0, 0); + m_md_tilemap->draw(screen, bitmap, cliprect, 0, 0); logerror ("unknown video priority regs %04x\n", m_vidregs2[0]); } diff --git a/src/mame/video/drmicro.c b/src/mame/video/drmicro.c index 29b695d2813..1913da365d5 100644 --- a/src/mame/video/drmicro.c +++ b/src/mame/video/drmicro.c @@ -118,8 +118,8 @@ UINT32 drmicro_state::screen_update_drmicro(screen_device &screen, bitmap_ind16 int chr, col, attr; int x, y, fx, fy; - m_bg1->draw(bitmap, cliprect, 0, 0); - m_bg2->draw(bitmap, cliprect, 0, 0); + m_bg1->draw(screen, bitmap, cliprect, 0, 0); + m_bg2->draw(screen, bitmap, cliprect, 0, 0); /* draw sprites */ for (g = 0; g < 2; g++) diff --git a/src/mame/video/dynduke.c b/src/mame/video/dynduke.c index 3abcb463c8c..56f44615bac 100644 --- a/src/mame/video/dynduke.c +++ b/src/mame/video/dynduke.c @@ -230,9 +230,9 @@ UINT32 dynduke_state::screen_update_dynduke(screen_device &screen, bitmap_ind16 draw_background(bitmap, cliprect,0x20); draw_sprites(bitmap,cliprect,2); - m_fg_layer->draw(bitmap, cliprect, 0,0); + m_fg_layer->draw(screen, bitmap, cliprect, 0,0); draw_sprites(bitmap,cliprect,3); - m_tx_layer->draw(bitmap, cliprect, 0,0); + m_tx_layer->draw(screen, bitmap, cliprect, 0,0); return 0; } diff --git a/src/mame/video/eprom.c b/src/mame/video/eprom.c index 0f7ece964b6..f74c7d2f693 100644 --- a/src/mame/video/eprom.c +++ b/src/mame/video/eprom.c @@ -212,7 +212,7 @@ UINT32 eprom_state::screen_update_eprom(screen_device &screen, bitmap_ind16 &bit m_mob->draw_async(cliprect); /* draw the playfield */ - m_playfield_tilemap->draw(bitmap, cliprect, 0, 0); + m_playfield_tilemap->draw(screen, bitmap, cliprect, 0, 0); // draw and merge the MO bitmap_ind16 &mobitmap = m_mob->bitmap(); @@ -319,7 +319,7 @@ UINT32 eprom_state::screen_update_eprom(screen_device &screen, bitmap_ind16 &bit } /* add the alpha on top */ - m_alpha_tilemap->draw(bitmap, cliprect, 0, 0); + m_alpha_tilemap->draw(screen, bitmap, cliprect, 0, 0); /* now go back and process the upper bit of MO priority */ for (const sparse_dirty_rect *rect = m_mob->first_dirty_rect(cliprect); rect != NULL; rect = rect->next()) @@ -359,7 +359,7 @@ UINT32 eprom_state::screen_update_guts(screen_device &screen, bitmap_ind16 &bitm m_mob->draw_async(cliprect); /* draw the playfield */ - m_playfield_tilemap->draw(bitmap, cliprect, 0, 0); + m_playfield_tilemap->draw(screen, bitmap, cliprect, 0, 0); // draw and merge the MO bitmap_ind16 &mobitmap = m_mob->bitmap(); @@ -385,7 +385,7 @@ UINT32 eprom_state::screen_update_guts(screen_device &screen, bitmap_ind16 &bitm } /* add the alpha on top */ - m_alpha_tilemap->draw(bitmap, cliprect, 0, 0); + m_alpha_tilemap->draw(screen, bitmap, cliprect, 0, 0); /* now go back and process the upper bit of MO priority */ for (const sparse_dirty_rect *rect = m_mob->first_dirty_rect(cliprect); rect != NULL; rect = rect->next()) diff --git a/src/mame/video/equites.c b/src/mame/video/equites.c index 871695e8301..f165bddb4f2 100644 --- a/src/mame/video/equites.c +++ b/src/mame/video/equites.c @@ -450,11 +450,11 @@ UINT32 equites_state::screen_update_equites(screen_device &screen, bitmap_ind16 { bitmap.fill(m_bgcolor, cliprect); - m_bg_tilemap->draw(bitmap, cliprect, 0, 0); + m_bg_tilemap->draw(screen, bitmap, cliprect, 0, 0); equites_draw_sprites(bitmap, cliprect); - m_fg_tilemap->draw(bitmap, cliprect, 0, 0); + m_fg_tilemap->draw(screen, bitmap, cliprect, 0, 0); return 0; } @@ -466,12 +466,12 @@ UINT32 equites_state::screen_update_splndrbt(screen_device &screen, bitmap_ind16 splndrbt_copy_bg(bitmap, cliprect); if (m_fg_char_bank) - m_fg_tilemap->draw(bitmap, cliprect, 0, 0); + m_fg_tilemap->draw(screen, bitmap, cliprect, 0, 0); splndrbt_draw_sprites(bitmap, cliprect); if (!m_fg_char_bank) - m_fg_tilemap->draw(bitmap, cliprect, 0, 0); + m_fg_tilemap->draw(screen, bitmap, cliprect, 0, 0); return 0; } diff --git a/src/mame/video/esd16.c b/src/mame/video/esd16.c index f8a4fc7666e..59cad14fc8b 100644 --- a/src/mame/video/esd16.c +++ b/src/mame/video/esd16.c @@ -166,7 +166,7 @@ UINT32 esd16_state::screen_update_hedpanic(screen_device &screen, bitmap_ind16 & { int layers_ctrl = -1; - machine().priority_bitmap.fill(0, cliprect); + screen.priority().fill(0, cliprect); #ifdef MAME_DEBUG if (machine().input().code_pressed(KEYCODE_Z)) @@ -185,13 +185,13 @@ if (machine().input().code_pressed(KEYCODE_Z)) { m_tilemap_0_16x16->set_scrollx(0, m_scroll_0[0]); m_tilemap_0_16x16->set_scrolly(0, m_scroll_0[1]); - m_tilemap_0_16x16->draw(bitmap, cliprect, 0, 0); + m_tilemap_0_16x16->draw(screen, bitmap, cliprect, 0, 0); } else { m_tilemap_0->set_scrollx(0, m_scroll_0[0]); m_tilemap_0->set_scrolly(0, m_scroll_0[1]); - m_tilemap_0->draw(bitmap, cliprect, 0, 0); + m_tilemap_0->draw(screen, bitmap, cliprect, 0, 0); } } else @@ -206,13 +206,13 @@ if (machine().input().code_pressed(KEYCODE_Z)) { m_tilemap_1_16x16->set_scrollx(0, m_scroll_1[0]); m_tilemap_1_16x16->set_scrolly(0, m_scroll_1[1]); - m_tilemap_1_16x16->draw(bitmap, cliprect, 0, 1); + m_tilemap_1_16x16->draw(screen, bitmap, cliprect, 0, 1); } else { m_tilemap_1->set_scrollx(0, m_scroll_1[0]); m_tilemap_1->set_scrolly(0, m_scroll_1[1]); - m_tilemap_1->draw(bitmap, cliprect, 0, 1); + m_tilemap_1->draw(screen, bitmap, cliprect, 0, 1); } } diff --git a/src/mame/video/espial.c b/src/mame/video/espial.c index b21ecb57ab2..e920dc18495 100644 --- a/src/mame/video/espial.c +++ b/src/mame/video/espial.c @@ -219,7 +219,7 @@ void espial_state::draw_sprites( bitmap_ind16 &bitmap, const rectangle &cliprect UINT32 espial_state::screen_update_espial(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect) { - m_bg_tilemap->draw(bitmap, cliprect, 0, 0); + m_bg_tilemap->draw(screen, bitmap, cliprect, 0, 0); draw_sprites(bitmap, cliprect); return 0; } diff --git a/src/mame/video/exedexes.c b/src/mame/video/exedexes.c index a80dcd39dba..45180152ea0 100644 --- a/src/mame/video/exedexes.c +++ b/src/mame/video/exedexes.c @@ -211,7 +211,7 @@ UINT32 exedexes_state::screen_update_exedexes(screen_device &screen, bitmap_ind1 if (m_sc2on) { m_bg_tilemap->set_scrollx(0, ((m_bg_scroll[1]) << 8) + m_bg_scroll[0]); - m_bg_tilemap->draw(bitmap, cliprect, 0, 0); + m_bg_tilemap->draw(screen, bitmap, cliprect, 0, 0); } else bitmap.fill(0, cliprect); @@ -222,13 +222,13 @@ UINT32 exedexes_state::screen_update_exedexes(screen_device &screen, bitmap_ind1 { m_fg_tilemap->set_scrollx(0, ((m_nbg_yscroll[1]) << 8) + m_nbg_yscroll[0]); m_fg_tilemap->set_scrolly(0, ((m_nbg_xscroll[1]) << 8) + m_nbg_xscroll[0]); - m_fg_tilemap->draw(bitmap, cliprect, 0, 0); + m_fg_tilemap->draw(screen, bitmap, cliprect, 0, 0); } draw_sprites(bitmap, cliprect, 0); if (m_chon) - m_tx_tilemap->draw(bitmap, cliprect, 0, 0); + m_tx_tilemap->draw(screen, bitmap, cliprect, 0, 0); return 0; } diff --git a/src/mame/video/exprraid.c b/src/mame/video/exprraid.c index 3feb6b16c74..afe67b14eec 100644 --- a/src/mame/video/exprraid.c +++ b/src/mame/video/exprraid.c @@ -128,9 +128,9 @@ void exprraid_state::draw_sprites( bitmap_ind16 &bitmap, const rectangle &clipre UINT32 exprraid_state::screen_update_exprraid(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect) { - m_bg_tilemap->draw(bitmap, cliprect, 0, 0); + m_bg_tilemap->draw(screen, bitmap, cliprect, 0, 0); draw_sprites(bitmap, cliprect); - m_bg_tilemap->draw(bitmap, cliprect, 1, 0); - m_fg_tilemap->draw(bitmap, cliprect, 0, 0); + m_bg_tilemap->draw(screen, bitmap, cliprect, 1, 0); + m_fg_tilemap->draw(screen, bitmap, cliprect, 0, 0); return 0; } diff --git a/src/mame/video/f1gp.c b/src/mame/video/f1gp.c index 6ffec4ed1ae..e1ba9eda21b 100644 --- a/src/mame/video/f1gp.c +++ b/src/mame/video/f1gp.c @@ -186,22 +186,22 @@ WRITE16_MEMBER(f1gp_state::f1gp2_gfxctrl_w) UINT32 f1gp_state::screen_update_f1gp(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect) { - machine().priority_bitmap.fill(0, cliprect); + screen.priority().fill(0, cliprect); - m_k053936->zoom_draw(bitmap, cliprect, m_roz_tilemap, 0, 0, 1); + m_k053936->zoom_draw(screen, bitmap, cliprect, m_roz_tilemap, 0, 0, 1); - m_fg_tilemap->draw(bitmap, cliprect, 0, 1); + m_fg_tilemap->draw(screen, bitmap, cliprect, 0, 1); /* quick kludge for "continue" screen priority */ if (m_gfxctrl == 0x00) { - m_spr_old->turbofrc_draw_sprites(m_spr1vram, m_spr1vram.bytes(), 0, machine(), bitmap, cliprect, 0x02); - m_spr_old2->turbofrc_draw_sprites(m_spr2vram, m_spr2vram.bytes(), 0, machine(), bitmap, cliprect, 0x02); + m_spr_old->turbofrc_draw_sprites(m_spr1vram, m_spr1vram.bytes(), 0, machine(), bitmap, cliprect, screen.priority(), 0x02); + m_spr_old2->turbofrc_draw_sprites(m_spr2vram, m_spr2vram.bytes(), 0, machine(), bitmap, cliprect, screen.priority(), 0x02); } else { - m_spr_old->turbofrc_draw_sprites(m_spr1vram, m_spr1vram.bytes(), 0, machine(), bitmap, cliprect, 0x00); - m_spr_old2->turbofrc_draw_sprites(m_spr2vram, m_spr2vram.bytes(), 0, machine(), bitmap, cliprect, 0x02); + m_spr_old->turbofrc_draw_sprites(m_spr1vram, m_spr1vram.bytes(), 0, machine(), bitmap, cliprect, screen.priority(), 0x00); + m_spr_old2->turbofrc_draw_sprites(m_spr2vram, m_spr2vram.bytes(), 0, machine(), bitmap, cliprect, screen.priority(), 0x02); } return 0; } @@ -216,19 +216,19 @@ UINT32 f1gp_state::screen_update_f1gp2(screen_device &screen, bitmap_ind16 &bitm switch (m_gfxctrl & 3) { case 0: - m_k053936->zoom_draw(bitmap, cliprect, m_roz_tilemap, TILEMAP_DRAW_OPAQUE, 0, 1); - m_spr->draw_sprites(m_spritelist, 0x2000, machine(), bitmap, cliprect); - m_fg_tilemap->draw(bitmap, cliprect, 0, 0); + m_k053936->zoom_draw(screen, bitmap, cliprect, m_roz_tilemap, TILEMAP_DRAW_OPAQUE, 0, 1); + m_spr->draw_sprites(m_spritelist, 0x2000, screen, bitmap, cliprect); + m_fg_tilemap->draw(screen, bitmap, cliprect, 0, 0); break; case 1: - m_k053936->zoom_draw(bitmap, cliprect, m_roz_tilemap, TILEMAP_DRAW_OPAQUE, 0, 1); - m_fg_tilemap->draw(bitmap, cliprect, 0, 0); - m_spr->draw_sprites(m_spritelist, 0x2000, machine(), bitmap, cliprect); + m_k053936->zoom_draw(screen, bitmap, cliprect, m_roz_tilemap, TILEMAP_DRAW_OPAQUE, 0, 1); + m_fg_tilemap->draw(screen, bitmap, cliprect, 0, 0); + m_spr->draw_sprites(m_spritelist, 0x2000, screen, bitmap, cliprect); break; case 2: - m_fg_tilemap->draw(bitmap, cliprect, TILEMAP_DRAW_OPAQUE, 0); - m_k053936->zoom_draw(bitmap, cliprect, m_roz_tilemap, 0, 0, 1); - m_spr->draw_sprites(m_spritelist, 0x2000, machine(), bitmap, cliprect); + m_fg_tilemap->draw(screen, bitmap, cliprect, TILEMAP_DRAW_OPAQUE, 0); + m_k053936->zoom_draw(screen, bitmap, cliprect, m_roz_tilemap, 0, 0, 1); + m_spr->draw_sprites(m_spritelist, 0x2000, screen, bitmap, cliprect); break; #ifdef MAME_DEBUG case 3: @@ -246,7 +246,7 @@ UINT32 f1gp_state::screen_update_f1gp2(screen_device &screen, bitmap_ind16 &bitm ***************************************************************************/ // BOOTLEG -void f1gp_state::f1gpb_draw_sprites( bitmap_ind16 &bitmap,const rectangle &cliprect ) +void f1gp_state::f1gpb_draw_sprites( screen_device &screen,bitmap_ind16 &bitmap,const rectangle &cliprect ) { UINT16 *spriteram = m_spriteram; int attr_start, start_offset = m_spriteram.bytes() / 2 - 4; @@ -299,7 +299,7 @@ void f1gp_state::f1gpb_draw_sprites( bitmap_ind16 &bitmap,const rectangle &clipr color, flipx,flipy, x,y, - machine().priority_bitmap, + screen.priority(), pri ? 0 : 0x2,15); // wrap around x @@ -308,7 +308,7 @@ void f1gp_state::f1gpb_draw_sprites( bitmap_ind16 &bitmap,const rectangle &clipr color, flipx,flipy, x - 512,y, - machine().priority_bitmap, + screen.priority(), pri ? 0 : 0x2,15); } } @@ -327,16 +327,16 @@ UINT32 f1gp_state::screen_update_f1gpb(screen_device &screen, bitmap_ind16 &bitm m_fg_tilemap->set_scrolly(0, m_fgregs[0] + 8); - machine().priority_bitmap.fill(0, cliprect); + screen.priority().fill(0, cliprect); - m_roz_tilemap->draw_roz(bitmap, cliprect, + m_roz_tilemap->draw_roz(screen, bitmap, cliprect, startx << 13, starty << 13, incxx << 5, incxy << 5, incyx << 5, incyy << 5, 1, 0, 0); - m_fg_tilemap->draw(bitmap, cliprect, 0, 1); + m_fg_tilemap->draw(screen, bitmap, cliprect, 0, 1); - f1gpb_draw_sprites(bitmap, cliprect); + f1gpb_draw_sprites(screen, bitmap, cliprect); return 0; } diff --git a/src/mame/video/fastfred.c b/src/mame/video/fastfred.c index cab386bcbf7..c529b3d5ab8 100644 --- a/src/mame/video/fastfred.c +++ b/src/mame/video/fastfred.c @@ -289,7 +289,7 @@ void fastfred_state::draw_sprites(bitmap_ind16 &bitmap, const rectangle &cliprec UINT32 fastfred_state::screen_update_fastfred(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect) { bitmap.fill(*m_background_color, cliprect); - m_bg_tilemap->draw(bitmap, cliprect, 0,0); + m_bg_tilemap->draw(screen, bitmap, cliprect, 0,0); draw_sprites(bitmap, cliprect); return 0; @@ -352,11 +352,11 @@ VIDEO_START_MEMBER(fastfred_state,imago) UINT32 fastfred_state::screen_update_imago(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect) { - m_web_tilemap->draw(bitmap, cliprect, 0,0); + m_web_tilemap->draw(screen, bitmap, cliprect, 0,0); galaxold_draw_stars(bitmap, cliprect); - m_bg_tilemap->draw(bitmap, cliprect, 0,0); + m_bg_tilemap->draw(screen, bitmap, cliprect, 0,0); draw_sprites(bitmap, cliprect); - m_fg_tilemap->draw(bitmap, cliprect, 0,0); + m_fg_tilemap->draw(screen, bitmap, cliprect, 0,0); return 0; } diff --git a/src/mame/video/fastlane.c b/src/mame/video/fastlane.c index 15030eb72bb..8a222a25d06 100644 --- a/src/mame/video/fastlane.c +++ b/src/mame/video/fastlane.c @@ -166,8 +166,8 @@ UINT32 fastlane_state::screen_update_fastlane(screen_device &screen, bitmap_ind1 m_layer0->set_scrolly(0, m_k007121->ctrlram_r(space, 2)); - m_layer0->draw(bitmap, finalclip0, 0, 0); - m_k007121->sprites_draw(bitmap, cliprect, machine().gfx[0], machine().colortable, m_spriteram, 0, 40, 0, (UINT32)-1); - m_layer1->draw(bitmap, finalclip1, 0, 0); + m_layer0->draw(screen, bitmap, finalclip0, 0, 0); + m_k007121->sprites_draw(bitmap, cliprect, machine().gfx[0], machine().colortable, m_spriteram, 0, 40, 0, screen.priority(), (UINT32)-1); + m_layer1->draw(screen, bitmap, finalclip1, 0, 0); return 0; } diff --git a/src/mame/video/fcombat.c b/src/mame/video/fcombat.c index 1cc41f1d123..337c280ee1b 100644 --- a/src/mame/video/fcombat.c +++ b/src/mame/video/fcombat.c @@ -141,7 +141,7 @@ UINT32 fcombat_state::screen_update_fcombat(screen_device &screen, bitmap_ind16 m_bgmap->set_scrollx(0, m_fcombat_sv - 24); m_bgmap->mark_all_dirty(); - m_bgmap->draw(bitmap, cliprect, 0, 0); + m_bgmap->draw(screen, bitmap, cliprect, 0, 0); //draw_background(bitmap, cliprect); /* draw sprites */ diff --git a/src/mame/video/finalizr.c b/src/mame/video/finalizr.c index 03ad4985fcf..1111dd1c767 100644 --- a/src/mame/video/finalizr.c +++ b/src/mame/video/finalizr.c @@ -89,7 +89,7 @@ UINT32 finalizr_state::screen_update_finalizr(screen_device &screen, bitmap_ind1 m_fg_tilemap->mark_all_dirty(); m_bg_tilemap->set_scrollx(0, *m_scroll - 32); - m_bg_tilemap->draw(bitmap, cliprect, 0, 0); + m_bg_tilemap->draw(screen, bitmap, cliprect, 0, 0); /* Draw the sprites. */ { @@ -215,7 +215,7 @@ UINT32 finalizr_state::screen_update_finalizr(screen_device &screen, bitmap_ind1 clip.min_x = visarea.min_x; clip.max_x = visarea.min_x + 31; m_fg_tilemap->set_scrolldx(0,-32); - m_fg_tilemap->draw(bitmap, clip, 0, 0); + m_fg_tilemap->draw(screen, bitmap, clip, 0, 0); } return 0; } diff --git a/src/mame/video/firetrap.c b/src/mame/video/firetrap.c index 06bb19a2138..3f8a4148251 100644 --- a/src/mame/video/firetrap.c +++ b/src/mame/video/firetrap.c @@ -262,9 +262,9 @@ void firetrap_state::draw_sprites( bitmap_ind16 &bitmap, const rectangle &clipre UINT32 firetrap_state::screen_update_firetrap(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect) { - m_bg2_tilemap->draw(bitmap, cliprect, 0, 0); - m_bg1_tilemap->draw(bitmap, cliprect, 0, 0); + m_bg2_tilemap->draw(screen, bitmap, cliprect, 0, 0); + m_bg1_tilemap->draw(screen, bitmap, cliprect, 0, 0); draw_sprites(bitmap, cliprect); - m_fg_tilemap->draw(bitmap, cliprect, 0, 0); + m_fg_tilemap->draw(screen, bitmap, cliprect, 0, 0); return 0; } diff --git a/src/mame/video/firetrk.c b/src/mame/video/firetrk.c index a0ef509a98b..fc3c35527a7 100644 --- a/src/mame/video/firetrk.c +++ b/src/mame/video/firetrk.c @@ -353,7 +353,7 @@ UINT32 firetrk_state::screen_update_firetrk(screen_device &screen, bitmap_ind16 m_tilemap2->set_scrolly(0, *m_scroll_y); bitmap.fill(0, cliprect); - m_tilemap1->draw(bitmap, playfield_window, 0, 0); + m_tilemap1->draw(screen, bitmap, playfield_window, 0, 0); firetrk_draw_car(bitmap, playfield_window, machine().gfx, 0, m_flash); firetrk_draw_car(bitmap, playfield_window, machine().gfx, 1, m_flash); draw_text(bitmap, cliprect, machine().gfx, m_alpha_num_ram + 0x00, 296, 0x10, 0x10); @@ -361,7 +361,7 @@ UINT32 firetrk_state::screen_update_firetrk(screen_device &screen, bitmap_ind16 if (cliprect.max_y == screen.visible_area().max_y) { - m_tilemap2->draw(m_helper1, playfield_window, 0, 0); + m_tilemap2->draw(screen, m_helper1, playfield_window, 0, 0); m_helper2.fill(0xff, playfield_window); firetrk_draw_car(m_helper2, playfield_window, machine().gfx, 0, FALSE); @@ -387,14 +387,14 @@ UINT32 firetrk_state::screen_update_superbug(screen_device &screen, bitmap_ind16 m_tilemap2->set_scrolly(0, *m_scroll_y); bitmap.fill(0, cliprect); - m_tilemap1->draw(bitmap, playfield_window, 0, 0); + m_tilemap1->draw(screen, bitmap, playfield_window, 0, 0); superbug_draw_car(bitmap, playfield_window, machine().gfx, m_flash); draw_text(bitmap, cliprect, machine().gfx, m_alpha_num_ram + 0x00, 296, 0x10, 0x10); draw_text(bitmap, cliprect, machine().gfx, m_alpha_num_ram + 0x10, 8, 0x10, 0x10); if (cliprect.max_y == screen.visible_area().max_y) { - m_tilemap2->draw(m_helper1, playfield_window, 0, 0); + m_tilemap2->draw(screen, m_helper1, playfield_window, 0, 0); m_helper2.fill(0xff, playfield_window); superbug_draw_car(m_helper2, playfield_window, machine().gfx, FALSE); @@ -416,7 +416,7 @@ UINT32 firetrk_state::screen_update_montecar(screen_device &screen, bitmap_ind16 m_tilemap2->set_scrolly(0, *m_scroll_y); bitmap.fill(0x2c, cliprect); - m_tilemap1->draw(bitmap, playfield_window, 0, 0); + m_tilemap1->draw(screen, bitmap, playfield_window, 0, 0); montecar_draw_car(bitmap, playfield_window, machine().gfx, 0, FALSE); montecar_draw_car(bitmap, playfield_window, machine().gfx, 1, FALSE); draw_text(bitmap, cliprect, machine().gfx, m_alpha_num_ram + 0x00, 24, 0x20, 0x08); @@ -424,7 +424,7 @@ UINT32 firetrk_state::screen_update_montecar(screen_device &screen, bitmap_ind16 if (cliprect.max_y == screen.visible_area().max_y) { - m_tilemap2->draw(m_helper1, playfield_window, 0, 0); + m_tilemap2->draw(screen, m_helper1, playfield_window, 0, 0); m_helper2.fill(0xff, playfield_window); montecar_draw_car(m_helper2, playfield_window, machine().gfx, 0, TRUE); diff --git a/src/mame/video/fitfight.c b/src/mame/video/fitfight.c index d95022afc14..70223235f91 100644 --- a/src/mame/video/fitfight.c +++ b/src/mame/video/fitfight.c @@ -127,7 +127,7 @@ UINT32 fitfight_state::screen_update_fitfight(screen_device &screen, bitmap_ind1 scrollbak = ((m_fof_a00000[0] & 0xffe0) >> 5); m_fof_bak_tilemap->set_scrollx(0, scrollbak ); m_fof_bak_tilemap->set_scrolly(0, m_fof_a00000[0] & 0xff); - m_fof_bak_tilemap->draw(bitmap, cliprect, 0, 0); + m_fof_bak_tilemap->draw(screen, bitmap, cliprect, 0, 0); draw_sprites(bitmap, cliprect, 0); @@ -144,11 +144,11 @@ UINT32 fitfight_state::screen_update_fitfight(screen_device &screen, bitmap_ind1 m_fof_mid_tilemap->set_scrollx(0, scrollmid ); m_fof_mid_tilemap->set_scrolly(0, m_fof_900000[0] & 0xff); // if (!machine().input().code_pressed(KEYCODE_F)) - m_fof_mid_tilemap->draw(bitmap, cliprect, 0, 0); + m_fof_mid_tilemap->draw(screen, bitmap, cliprect, 0, 0); draw_sprites(bitmap, cliprect, 1); - m_fof_txt_tilemap->draw(bitmap, cliprect, 0, 0); + m_fof_txt_tilemap->draw(screen, bitmap, cliprect, 0, 0); } /* popmessage ("Regs %04x %04x %04x %04x %04x %04x", m_fof_100000[0], m_fof_600000[0], m_fof_700000[0], diff --git a/src/mame/video/flkatck.c b/src/mame/video/flkatck.c index ac7984de225..cc7ee38a5c4 100644 --- a/src/mame/video/flkatck.c +++ b/src/mame/video/flkatck.c @@ -161,8 +161,8 @@ UINT32 flkatck_state::screen_update_flkatck(screen_device &screen, bitmap_ind16 clip[1] &= cliprect; /* draw the graphics */ - m_k007121_tilemap[0]->draw(bitmap, clip[0], 0, 0); - m_k007121->sprites_draw(bitmap, cliprect, machine().gfx[0], NULL, &m_k007121_ram[0x1000], 0, 40, 0, (UINT32)-1); - m_k007121_tilemap[1]->draw(bitmap, clip[1], 0, 0); + m_k007121_tilemap[0]->draw(screen, bitmap, clip[0], 0, 0); + m_k007121->sprites_draw(bitmap, cliprect, machine().gfx[0], NULL, &m_k007121_ram[0x1000], 0, 40, 0, screen.priority(), (UINT32)-1); + m_k007121_tilemap[1]->draw(screen, bitmap, clip[1], 0, 0); return 0; } diff --git a/src/mame/video/flower.c b/src/mame/video/flower.c index 45bee938d94..edf9b1f77f0 100644 --- a/src/mame/video/flower.c +++ b/src/mame/video/flower.c @@ -166,8 +166,8 @@ UINT32 flower_state::screen_update_flower(screen_device &screen, bitmap_ind16 &b m_bg0_tilemap->set_scrolly(0, m_bg0_scroll[0]+16); m_bg1_tilemap->set_scrolly(0, m_bg1_scroll[0]+16); - m_bg0_tilemap->draw(bitmap, cliprect, 0,0); - m_bg1_tilemap->draw(bitmap, cliprect, 0,0); + m_bg0_tilemap->draw(screen, bitmap, cliprect, 0,0); + m_bg1_tilemap->draw(screen, bitmap, cliprect, 0,0); draw_sprites(bitmap,cliprect); @@ -182,8 +182,8 @@ UINT32 flower_state::screen_update_flower(screen_device &screen, bitmap_ind16 &b myclip.max_x = cliprect.max_x; } - m_text_tilemap->draw(bitmap, cliprect, 0,0); - m_text_right_tilemap->draw(bitmap, myclip, 0,0); + m_text_tilemap->draw(screen, bitmap, cliprect, 0,0); + m_text_right_tilemap->draw(screen, bitmap, myclip, 0,0); return 0; } diff --git a/src/mame/video/flstory.c b/src/mame/video/flstory.c index 36ecfd3a099..9190d4f79ac 100644 --- a/src/mame/video/flstory.c +++ b/src/mame/video/flstory.c @@ -205,12 +205,12 @@ void flstory_state::flstory_draw_sprites( bitmap_ind16 &bitmap, const rectangle UINT32 flstory_state::screen_update_flstory(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect) { - m_bg_tilemap->draw(bitmap, cliprect, 0 | TILEMAP_DRAW_LAYER1, 0); - m_bg_tilemap->draw(bitmap, cliprect, 1 | TILEMAP_DRAW_LAYER1, 0); + m_bg_tilemap->draw(screen, bitmap, cliprect, 0 | TILEMAP_DRAW_LAYER1, 0); + m_bg_tilemap->draw(screen, bitmap, cliprect, 1 | TILEMAP_DRAW_LAYER1, 0); flstory_draw_sprites(bitmap, cliprect, 0x00); - m_bg_tilemap->draw(bitmap, cliprect, 0 | TILEMAP_DRAW_LAYER0, 0); + m_bg_tilemap->draw(screen, bitmap, cliprect, 0 | TILEMAP_DRAW_LAYER0, 0); flstory_draw_sprites(bitmap, cliprect, 0x80); - m_bg_tilemap->draw(bitmap, cliprect, 1 | TILEMAP_DRAW_LAYER0, 0); + m_bg_tilemap->draw(screen, bitmap, cliprect, 1 | TILEMAP_DRAW_LAYER0, 0); return 0; } @@ -260,18 +260,18 @@ void flstory_state::victnine_draw_sprites( bitmap_ind16 &bitmap, const rectangle UINT32 flstory_state::screen_update_victnine(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect) { - m_bg_tilemap->draw(bitmap, cliprect, 0, 0); + m_bg_tilemap->draw(screen, bitmap, cliprect, 0, 0); victnine_draw_sprites(bitmap, cliprect); return 0; } UINT32 flstory_state::screen_update_rumba(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect) { - m_bg_tilemap->draw(bitmap, cliprect, 0 | TILEMAP_DRAW_LAYER1, 0); - m_bg_tilemap->draw(bitmap, cliprect, 1 | TILEMAP_DRAW_LAYER1, 0); + m_bg_tilemap->draw(screen, bitmap, cliprect, 0 | TILEMAP_DRAW_LAYER1, 0); + m_bg_tilemap->draw(screen, bitmap, cliprect, 1 | TILEMAP_DRAW_LAYER1, 0); victnine_draw_sprites(bitmap, cliprect); - m_bg_tilemap->draw(bitmap, cliprect, 0 | TILEMAP_DRAW_LAYER0, 0); + m_bg_tilemap->draw(screen, bitmap, cliprect, 0 | TILEMAP_DRAW_LAYER0, 0); victnine_draw_sprites(bitmap, cliprect); - m_bg_tilemap->draw(bitmap, cliprect, 1 | TILEMAP_DRAW_LAYER0, 0); + m_bg_tilemap->draw(screen, bitmap, cliprect, 1 | TILEMAP_DRAW_LAYER0, 0); return 0; } diff --git a/src/mame/video/foodf.c b/src/mame/video/foodf.c index c6ead90b019..60330696f30 100644 --- a/src/mame/video/foodf.c +++ b/src/mame/video/foodf.c @@ -111,15 +111,15 @@ UINT32 foodf_state::screen_update_foodf(screen_device &screen, bitmap_ind16 &bit { int offs; gfx_element *gfx = machine().gfx[1]; - bitmap_ind8 &priority_bitmap = machine().priority_bitmap; + bitmap_ind8 &priority_bitmap = screen.priority(); UINT16 *spriteram16 = m_spriteram; /* first draw the playfield opaquely */ - m_playfield_tilemap->draw(bitmap, cliprect, TILEMAP_DRAW_OPAQUE, 0); + m_playfield_tilemap->draw(screen, bitmap, cliprect, TILEMAP_DRAW_OPAQUE, 0); /* then draw the non-transparent parts with a priority of 1 */ priority_bitmap.fill(0); - m_playfield_tilemap->draw(bitmap, cliprect, 0, 1); + m_playfield_tilemap->draw(screen, bitmap, cliprect, 0, 1); /* draw the motion objects front-to-back */ for (offs = 0x80-2; offs >= 0x20; offs -= 2) diff --git a/src/mame/video/freekick.c b/src/mame/video/freekick.c index 2622065036e..7f553a42489 100644 --- a/src/mame/video/freekick.c +++ b/src/mame/video/freekick.c @@ -130,21 +130,21 @@ void freekick_state::freekick_draw_sprites( bitmap_ind16 &bitmap, const rectangl UINT32 freekick_state::screen_update_gigas(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect) { - m_freek_tilemap->draw(bitmap, cliprect, 0, 0); + m_freek_tilemap->draw(screen, bitmap, cliprect, 0, 0); gigas_draw_sprites(bitmap, cliprect); return 0; } UINT32 freekick_state::screen_update_pbillrd(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect) { - m_freek_tilemap->draw(bitmap, cliprect, 0, 0); + m_freek_tilemap->draw(screen, bitmap, cliprect, 0, 0); pbillrd_draw_sprites(bitmap, cliprect); return 0; } UINT32 freekick_state::screen_update_freekick(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect) { - m_freek_tilemap->draw(bitmap, cliprect, 0, 0); + m_freek_tilemap->draw(screen, bitmap, cliprect, 0, 0); freekick_draw_sprites(bitmap, cliprect); return 0; } diff --git a/src/mame/video/fromanc2.c b/src/mame/video/fromanc2.c index 75354c27e03..f2ebb540f21 100644 --- a/src/mame/video/fromanc2.c +++ b/src/mame/video/fromanc2.c @@ -521,7 +521,7 @@ UINT32 fromanc2_state::screen_update_fromanc2_left(screen_device &screen, bitmap { m_tilemap[0][i]->set_scrollx(0, -m_scrollx[0][i]); m_tilemap[0][i]->set_scrolly(0, -m_scrolly[0][i]); - m_tilemap[0][i]->draw(bitmap, cliprect, 0, 0); + m_tilemap[0][i]->draw(screen, bitmap, cliprect, 0, 0); } } @@ -538,7 +538,7 @@ UINT32 fromanc2_state::screen_update_fromanc2_right(screen_device &screen, bitma { m_tilemap[1][i]->set_scrollx(0, -m_scrollx[1][i]); m_tilemap[1][i]->set_scrolly(0, -m_scrolly[1][i]); - m_tilemap[1][i]->draw(bitmap, cliprect, 0, 0); + m_tilemap[1][i]->draw(screen, bitmap, cliprect, 0, 0); } } diff --git a/src/mame/video/fromance.c b/src/mame/video/fromance.c index 44e62c22b97..619283dc7af 100644 --- a/src/mame/video/fromance.c +++ b/src/mame/video/fromance.c @@ -289,8 +289,8 @@ UINT32 fromance_state::screen_update_fromance(screen_device &screen, bitmap_ind1 m_fg_tilemap->set_scrollx(0, m_scrollx[1]); m_fg_tilemap->set_scrolly(0, m_scrolly[1]); - m_bg_tilemap->draw(bitmap, cliprect, 0, 0); - m_fg_tilemap->draw(bitmap, cliprect, 0, 0); + m_bg_tilemap->draw(screen, bitmap, cliprect, 0, 0); + m_fg_tilemap->draw(screen, bitmap, cliprect, 0, 0); return 0; } @@ -303,10 +303,10 @@ UINT32 fromance_state::screen_update_pipedrm(screen_device &screen, bitmap_ind16 m_bg_tilemap->set_scrolly(0, m_scrolly[1]); m_fg_tilemap->set_scrolly(0, m_scrolly[0]); - m_bg_tilemap->draw(bitmap, cliprect, 0, 0); - m_fg_tilemap->draw(bitmap, cliprect, 0, 0); + m_bg_tilemap->draw(screen, bitmap, cliprect, 0, 0); + m_fg_tilemap->draw(screen, bitmap, cliprect, 0, 0); - m_spr_old->turbofrc_draw_sprites((UINT16*)sram, m_spriteram.bytes(), 0, machine(), bitmap, cliprect, 0); - m_spr_old->turbofrc_draw_sprites((UINT16*)sram, m_spriteram.bytes(), 0, machine(), bitmap, cliprect, 1); + m_spr_old->turbofrc_draw_sprites((UINT16*)sram, m_spriteram.bytes(), 0, machine(), bitmap, cliprect, screen.priority(), 0); + m_spr_old->turbofrc_draw_sprites((UINT16*)sram, m_spriteram.bytes(), 0, machine(), bitmap, cliprect, screen.priority(), 1); return 0; } diff --git a/src/mame/video/funkybee.c b/src/mame/video/funkybee.c index 5fc0bcb5420..45c56349ce7 100644 --- a/src/mame/video/funkybee.c +++ b/src/mame/video/funkybee.c @@ -155,7 +155,7 @@ void funkybee_state::draw_columns( bitmap_ind16 &bitmap, const rectangle &clipre UINT32 funkybee_state::screen_update_funkybee(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect) { - m_bg_tilemap->draw(bitmap, cliprect, 0, 0); + m_bg_tilemap->draw(screen, bitmap, cliprect, 0, 0); draw_sprites(bitmap, cliprect); draw_columns(bitmap, cliprect); return 0; diff --git a/src/mame/video/funkyjet.c b/src/mame/video/funkyjet.c index d5293962815..6444faa1b8a 100644 --- a/src/mame/video/funkyjet.c +++ b/src/mame/video/funkyjet.c @@ -18,8 +18,8 @@ UINT32 funkyjet_state::screen_update_funkyjet(screen_device &screen, bitmap_ind1 m_deco_tilegen1->pf_update(m_pf1_rowscroll, m_pf2_rowscroll); bitmap.fill(768, cliprect); - m_deco_tilegen1->tilemap_2_draw(bitmap, cliprect, TILEMAP_DRAW_OPAQUE, 0); - m_deco_tilegen1->tilemap_1_draw(bitmap, cliprect, 0, 0); + m_deco_tilegen1->tilemap_2_draw(screen, bitmap, cliprect, TILEMAP_DRAW_OPAQUE, 0); + m_deco_tilegen1->tilemap_1_draw(screen, bitmap, cliprect, 0, 0); m_sprgen->draw_sprites(bitmap, cliprect, m_spriteram, 0x400); return 0; } diff --git a/src/mame/video/funworld.c b/src/mame/video/funworld.c index abd21a04580..cb06a1d003f 100644 --- a/src/mame/video/funworld.c +++ b/src/mame/video/funworld.c @@ -136,6 +136,6 @@ VIDEO_START_MEMBER(funworld_state,magicrd2) UINT32 funworld_state::screen_update_funworld(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect) { - m_bg_tilemap->draw(bitmap, cliprect, 0, 0); + m_bg_tilemap->draw(screen, bitmap, cliprect, 0, 0); return 0; } diff --git a/src/mame/video/fuukifg2.c b/src/mame/video/fuukifg2.c index f3058227e2a..4230233de80 100644 --- a/src/mame/video/fuukifg2.c +++ b/src/mame/video/fuukifg2.c @@ -137,7 +137,7 @@ void fuuki16_state::draw_sprites( screen_device &screen, bitmap_ind16 &bitmap, c { int offs; gfx_element *gfx = screen.machine().gfx[0]; - bitmap_ind8 &priority_bitmap = screen.machine().priority_bitmap; + bitmap_ind8 &priority_bitmap = screen.priority(); const rectangle &visarea = screen.visible_area(); UINT16 *spriteram16 = m_spriteram; int max_x = visarea.max_x + 1; @@ -262,18 +262,18 @@ if (screen.machine().input().code_pressed(KEYCODE_X)) ***************************************************************************/ /* Wrapper to handle bg and bg2 ttogether */ -void fuuki16_state::fuuki16_draw_layer( bitmap_ind16 &bitmap, const rectangle &cliprect, int i, int flag, int pri ) +void fuuki16_state::fuuki16_draw_layer( screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect, int i, int flag, int pri ) { int buffer = (m_vregs[0x1e / 2] & 0x40); switch( i ) { - case 2: if (buffer) m_tilemap[3]->draw(bitmap, cliprect, flag, pri); - else m_tilemap[2]->draw(bitmap, cliprect, flag, pri); + case 2: if (buffer) m_tilemap[3]->draw(screen, bitmap, cliprect, flag, pri); + else m_tilemap[2]->draw(screen, bitmap, cliprect, flag, pri); return; - case 1: m_tilemap[1]->draw(bitmap, cliprect, flag, pri); + case 1: m_tilemap[1]->draw(screen, bitmap, cliprect, flag, pri); return; - case 0: m_tilemap[0]->draw(bitmap, cliprect, flag, pri); + case 0: m_tilemap[0]->draw(screen, bitmap, cliprect, flag, pri); return; } } @@ -333,11 +333,11 @@ UINT32 fuuki16_state::screen_update_fuuki16(screen_device &screen, bitmap_ind16 /* Actually, bg colour is simply the last pen i.e. 0x1fff -pjp */ bitmap.fill((0x800 * 4) - 1, cliprect); - machine().priority_bitmap.fill(0, cliprect); + screen.priority().fill(0, cliprect); - fuuki16_draw_layer(bitmap, cliprect, tm_back, 0, 1); - fuuki16_draw_layer(bitmap, cliprect, tm_middle, 0, 2); - fuuki16_draw_layer(bitmap, cliprect, tm_front, 0, 4); + fuuki16_draw_layer(screen, bitmap, cliprect, tm_back, 0, 1); + fuuki16_draw_layer(screen, bitmap, cliprect, tm_middle, 0, 2); + fuuki16_draw_layer(screen, bitmap, cliprect, tm_front, 0, 4); draw_sprites(screen, bitmap, cliprect); diff --git a/src/mame/video/fuukifg3.c b/src/mame/video/fuukifg3.c index d7edc62b5f3..c5397c03d32 100644 --- a/src/mame/video/fuukifg3.c +++ b/src/mame/video/fuukifg3.c @@ -143,7 +143,7 @@ void fuuki32_state::draw_sprites( screen_device &screen, bitmap_ind16 &bitmap, c { int offs; gfx_element *gfx = screen.machine().gfx[0]; - bitmap_ind8 &priority_bitmap = screen.machine().priority_bitmap; + bitmap_ind8 &priority_bitmap = screen.priority(); const rectangle &visarea = screen.visible_area(); int max_x = visarea.max_x + 1; int max_y = visarea.max_y + 1; @@ -284,18 +284,18 @@ if (screen.machine().input().code_pressed(KEYCODE_X)) ***************************************************************************/ /* Wrapper to handle bg and bg2 ttogether */ -void fuuki32_state::fuuki32_draw_layer( bitmap_ind16 &bitmap, const rectangle &cliprect, int i, int flag, int pri ) +void fuuki32_state::fuuki32_draw_layer( screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect, int i, int flag, int pri ) { int buffer = ((m_vregs[0x1e / 4] & 0x0000ffff) & 0x40); switch( i ) { - case 2: if (buffer) m_tilemap[3]->draw(bitmap, cliprect, flag, pri); - else m_tilemap[2]->draw(bitmap, cliprect, flag, pri); + case 2: if (buffer) m_tilemap[3]->draw(screen, bitmap, cliprect, flag, pri); + else m_tilemap[2]->draw(screen, bitmap, cliprect, flag, pri); return; - case 1: m_tilemap[1]->draw(bitmap, cliprect, flag, pri); + case 1: m_tilemap[1]->draw(screen, bitmap, cliprect, flag, pri); return; - case 0: m_tilemap[0]->draw(bitmap, cliprect, flag, pri); + case 0: m_tilemap[0]->draw(screen, bitmap, cliprect, flag, pri); return; } } @@ -350,11 +350,11 @@ UINT32 fuuki32_state::screen_update_fuuki32(screen_device &screen, bitmap_ind16 /* The bg colour is the last pen i.e. 0x1fff */ bitmap.fill((0x800 * 4) - 1, cliprect); - machine().priority_bitmap.fill(0, cliprect); + screen.priority().fill(0, cliprect); - fuuki32_draw_layer(bitmap, cliprect, tm_back, 0, 1); - fuuki32_draw_layer(bitmap, cliprect, tm_middle, 0, 2); - fuuki32_draw_layer(bitmap, cliprect, tm_front, 0, 4); + fuuki32_draw_layer(screen, bitmap, cliprect, tm_back, 0, 1); + fuuki32_draw_layer(screen, bitmap, cliprect, tm_middle, 0, 2); + fuuki32_draw_layer(screen, bitmap, cliprect, tm_front, 0, 4); draw_sprites(screen, bitmap, cliprect); return 0; diff --git a/src/mame/video/gaelco.c b/src/mame/video/gaelco.c index af3750f75d2..d0e1ec98773 100644 --- a/src/mame/video/gaelco.c +++ b/src/mame/video/gaelco.c @@ -116,7 +116,7 @@ VIDEO_START_MEMBER(gaelco_state,maniacsq) 3 | xxxxxxxx xxxxxx-- | sprite code */ -void gaelco_state::draw_sprites( bitmap_ind16 &bitmap, const rectangle &cliprect ) +void gaelco_state::draw_sprites( screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect ) { int i, x, y, ex, ey; gfx_element *gfx = machine().gfx[0]; @@ -169,7 +169,7 @@ void gaelco_state::draw_sprites( bitmap_ind16 &bitmap, const rectangle &cliprect pdrawgfx_transpen(bitmap,cliprect,gfx,number + x_offset[ex] + y_offset[ey], color,xflip,yflip, sx-0x0f+x*8,sy+y*8, - machine().priority_bitmap,pri_mask,0); + screen.priority(),pri_mask,0); } } } @@ -189,22 +189,22 @@ UINT32 gaelco_state::screen_update_maniacsq(screen_device &screen, bitmap_ind16 m_tilemap[1]->set_scrolly(0, m_vregs[2]); m_tilemap[1]->set_scrollx(0, m_vregs[3]); - machine().priority_bitmap.fill(0, cliprect); + screen.priority().fill(0, cliprect); bitmap.fill(0, cliprect); - m_tilemap[1]->draw(bitmap, cliprect, 3, 0); - m_tilemap[0]->draw(bitmap, cliprect, 3, 0); + m_tilemap[1]->draw(screen, bitmap, cliprect, 3, 0); + m_tilemap[0]->draw(screen, bitmap, cliprect, 3, 0); - m_tilemap[1]->draw(bitmap, cliprect, 2, 1); - m_tilemap[0]->draw(bitmap, cliprect, 2, 1); + m_tilemap[1]->draw(screen, bitmap, cliprect, 2, 1); + m_tilemap[0]->draw(screen, bitmap, cliprect, 2, 1); - m_tilemap[1]->draw(bitmap, cliprect, 1, 2); - m_tilemap[0]->draw(bitmap, cliprect, 1, 2); + m_tilemap[1]->draw(screen, bitmap, cliprect, 1, 2); + m_tilemap[0]->draw(screen, bitmap, cliprect, 1, 2); - m_tilemap[1]->draw(bitmap, cliprect, 0, 4); - m_tilemap[0]->draw(bitmap, cliprect, 0, 4); + m_tilemap[1]->draw(screen, bitmap, cliprect, 0, 4); + m_tilemap[0]->draw(screen, bitmap, cliprect, 0, 4); - draw_sprites(bitmap, cliprect); + draw_sprites(screen, bitmap, cliprect); return 0; } @@ -216,33 +216,33 @@ UINT32 gaelco_state::screen_update_bigkarnk(screen_device &screen, bitmap_ind16 m_tilemap[1]->set_scrolly(0, m_vregs[2]); m_tilemap[1]->set_scrollx(0, m_vregs[3]); - machine().priority_bitmap.fill(0, cliprect); + screen.priority().fill(0, cliprect); bitmap.fill(0, cliprect); - m_tilemap[1]->draw(bitmap, cliprect, TILEMAP_DRAW_LAYER1 | 3, 0); - m_tilemap[0]->draw(bitmap, cliprect, TILEMAP_DRAW_LAYER1 | 3, 0); + m_tilemap[1]->draw(screen, bitmap, cliprect, TILEMAP_DRAW_LAYER1 | 3, 0); + m_tilemap[0]->draw(screen, bitmap, cliprect, TILEMAP_DRAW_LAYER1 | 3, 0); - m_tilemap[1]->draw(bitmap, cliprect, TILEMAP_DRAW_LAYER0 | 3, 1); - m_tilemap[0]->draw(bitmap, cliprect, TILEMAP_DRAW_LAYER0 | 3, 1); + m_tilemap[1]->draw(screen, bitmap, cliprect, TILEMAP_DRAW_LAYER0 | 3, 1); + m_tilemap[0]->draw(screen, bitmap, cliprect, TILEMAP_DRAW_LAYER0 | 3, 1); - m_tilemap[1]->draw(bitmap, cliprect, TILEMAP_DRAW_LAYER1 | 2, 1); - m_tilemap[0]->draw(bitmap, cliprect, TILEMAP_DRAW_LAYER1 | 2, 1); + m_tilemap[1]->draw(screen, bitmap, cliprect, TILEMAP_DRAW_LAYER1 | 2, 1); + m_tilemap[0]->draw(screen, bitmap, cliprect, TILEMAP_DRAW_LAYER1 | 2, 1); - m_tilemap[1]->draw(bitmap, cliprect, TILEMAP_DRAW_LAYER0 | 2, 2); - m_tilemap[0]->draw(bitmap, cliprect, TILEMAP_DRAW_LAYER0 | 2, 2); + m_tilemap[1]->draw(screen, bitmap, cliprect, TILEMAP_DRAW_LAYER0 | 2, 2); + m_tilemap[0]->draw(screen, bitmap, cliprect, TILEMAP_DRAW_LAYER0 | 2, 2); - m_tilemap[1]->draw(bitmap, cliprect, TILEMAP_DRAW_LAYER1 | 1, 2); - m_tilemap[0]->draw(bitmap, cliprect, TILEMAP_DRAW_LAYER1 | 1, 2); + m_tilemap[1]->draw(screen, bitmap, cliprect, TILEMAP_DRAW_LAYER1 | 1, 2); + m_tilemap[0]->draw(screen, bitmap, cliprect, TILEMAP_DRAW_LAYER1 | 1, 2); - m_tilemap[1]->draw(bitmap, cliprect, TILEMAP_DRAW_LAYER0 | 1, 4); - m_tilemap[0]->draw(bitmap, cliprect, TILEMAP_DRAW_LAYER0 | 1, 4); + m_tilemap[1]->draw(screen, bitmap, cliprect, TILEMAP_DRAW_LAYER0 | 1, 4); + m_tilemap[0]->draw(screen, bitmap, cliprect, TILEMAP_DRAW_LAYER0 | 1, 4); - m_tilemap[1]->draw(bitmap, cliprect, TILEMAP_DRAW_LAYER1 | 0, 4); - m_tilemap[0]->draw(bitmap, cliprect, TILEMAP_DRAW_LAYER1 | 0, 4); + m_tilemap[1]->draw(screen, bitmap, cliprect, TILEMAP_DRAW_LAYER1 | 0, 4); + m_tilemap[0]->draw(screen, bitmap, cliprect, TILEMAP_DRAW_LAYER1 | 0, 4); - m_tilemap[1]->draw(bitmap, cliprect, TILEMAP_DRAW_LAYER0 | 0, 8); - m_tilemap[0]->draw(bitmap, cliprect, TILEMAP_DRAW_LAYER0 | 0, 8); + m_tilemap[1]->draw(screen, bitmap, cliprect, TILEMAP_DRAW_LAYER0 | 0, 8); + m_tilemap[0]->draw(screen, bitmap, cliprect, TILEMAP_DRAW_LAYER0 | 0, 8); - draw_sprites(bitmap, cliprect); + draw_sprites(screen, bitmap, cliprect); return 0; } diff --git a/src/mame/video/gaelco2.c b/src/mame/video/gaelco2.c index 7e87a8a3d3d..bb4f354271b 100644 --- a/src/mame/video/gaelco2.c +++ b/src/mame/video/gaelco2.c @@ -451,8 +451,8 @@ UINT32 gaelco2_state::screen_update_gaelco2(screen_device &screen, bitmap_ind16 /* draw screen */ bitmap.fill(0, cliprect); - m_pant[1]->draw(bitmap, cliprect, 0, 0); - m_pant[0]->draw(bitmap, cliprect, 0, 0); + m_pant[1]->draw(screen, bitmap, cliprect, 0, 0); + m_pant[0]->draw(screen, bitmap, cliprect, 0, 0); draw_sprites(screen, bitmap, cliprect, 0, 0); return 0; } @@ -480,7 +480,7 @@ UINT32 gaelco2_state::dual_update(screen_device &screen, bitmap_ind16 &bitmap, c /* draw screen */ bitmap.fill(0, cliprect); - m_pant[index]->draw(bitmap, cliprect, 0, 0); + m_pant[index]->draw(screen, bitmap, cliprect, 0, 0); draw_sprites(screen,bitmap,cliprect, 0x8000 * index, 0); return 0; diff --git a/src/mame/video/gaiden.c b/src/mame/video/gaiden.c index 1ed6bd0e352..74e2f79e388 100644 --- a/src/mame/video/gaiden.c +++ b/src/mame/video/gaiden.c @@ -329,7 +329,7 @@ void gaiden_state::blendbitmaps(bitmap_rgb32 &dest,bitmap_ind16 &src1,bitmap_ind * |---------x------- | x position (high bit) */ -void gaiden_state::drgnbowl_draw_sprites(bitmap_ind16 &bitmap, const rectangle &cliprect) +void gaiden_state::drgnbowl_draw_sprites(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect) { UINT16 *spriteram = m_spriteram; int i, code, color, x, y, flipx, flipy, priority_mask; @@ -357,36 +357,36 @@ void gaiden_state::drgnbowl_draw_sprites(bitmap_ind16 &bitmap, const rectangle & code, machine().gfx[3]->colorbase() + color * machine().gfx[3]->granularity(), flipx,flipy,x,y, - machine().priority_bitmap, priority_mask,15); + screen.priority(), priority_mask,15); /* wrap x*/ pdrawgfx_transpen_raw(bitmap,cliprect,machine().gfx[3], code, machine().gfx[3]->colorbase() + color * machine().gfx[3]->granularity(), flipx,flipy,x-512,y, - machine().priority_bitmap, priority_mask,15); + screen.priority(), priority_mask,15); } } UINT32 gaiden_state::screen_update_gaiden(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect) { - machine().priority_bitmap.fill(0, cliprect); + screen.priority().fill(0, cliprect); m_tile_bitmap_bg.fill(0x200, cliprect); m_tile_bitmap_fg.fill(0, cliprect); m_sprite_bitmap.fill(0, cliprect); /* draw tilemaps into a 16-bit bitmap */ - m_background->draw(m_tile_bitmap_bg, cliprect, 0, 1); - m_foreground->draw(m_tile_bitmap_fg, cliprect, 0, 2); + m_background->draw(screen, m_tile_bitmap_bg, cliprect, 0, 1); + m_foreground->draw(screen, m_tile_bitmap_fg, cliprect, 0, 2); /* draw the blended tiles at a lower priority so sprites covered by them will still be drawn */ - m_foreground->draw(m_tile_bitmap_fg, cliprect, 1, 0); - m_text_layer->draw(m_tile_bitmap_fg, cliprect, 0, 4); + m_foreground->draw(screen, m_tile_bitmap_fg, cliprect, 1, 0); + m_text_layer->draw(screen, m_tile_bitmap_fg, cliprect, 0, 4); /* draw sprites into a 16-bit bitmap */ - gaiden_draw_sprites(machine(), m_tile_bitmap_bg, m_tile_bitmap_fg, m_sprite_bitmap, cliprect, m_spriteram, m_sprite_sizey, m_spr_offset_y, flip_screen()); + gaiden_draw_sprites(screen, m_tile_bitmap_bg, m_tile_bitmap_fg, m_sprite_bitmap, cliprect, m_spriteram, m_sprite_sizey, m_spr_offset_y, flip_screen()); /* mix & blend the tilemaps and sprites into a 32-bit bitmap */ blendbitmaps(bitmap, m_tile_bitmap_bg, m_tile_bitmap_fg, m_sprite_bitmap, 0, 0, cliprect); @@ -396,22 +396,22 @@ UINT32 gaiden_state::screen_update_gaiden(screen_device &screen, bitmap_rgb32 &b UINT32 gaiden_state::screen_update_raiga(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect) { - machine().priority_bitmap.fill(0, cliprect); + screen.priority().fill(0, cliprect); m_tile_bitmap_bg.fill(0x200, cliprect); m_tile_bitmap_fg.fill(0, cliprect); m_sprite_bitmap.fill(0, cliprect); /* draw tilemaps into a 16-bit bitmap */ - m_background->draw(m_tile_bitmap_bg, cliprect, 0, 1); - m_foreground->draw(m_tile_bitmap_fg, cliprect, 0, 2); + m_background->draw(screen, m_tile_bitmap_bg, cliprect, 0, 1); + m_foreground->draw(screen, m_tile_bitmap_fg, cliprect, 0, 2); /* draw the blended tiles at a lower priority so sprites covered by them will still be drawn */ - m_foreground->draw(m_tile_bitmap_fg, cliprect, 1, 0); - m_text_layer->draw(m_tile_bitmap_fg, cliprect, 0, 4); + m_foreground->draw(screen, m_tile_bitmap_fg, cliprect, 1, 0); + m_text_layer->draw(screen, m_tile_bitmap_fg, cliprect, 0, 4); /* draw sprites into a 16-bit bitmap */ - raiga_draw_sprites(machine(), m_tile_bitmap_bg, m_tile_bitmap_fg, m_sprite_bitmap, cliprect, m_spriteram, m_sprite_sizey, m_spr_offset_y, flip_screen()); + raiga_draw_sprites(screen, m_tile_bitmap_bg, m_tile_bitmap_fg, m_sprite_bitmap, cliprect, m_spriteram, m_sprite_sizey, m_spr_offset_y, flip_screen()); /* mix & blend the tilemaps and sprites into a 32-bit bitmap */ blendbitmaps(bitmap, m_tile_bitmap_bg, m_tile_bitmap_fg, m_sprite_bitmap, 0, 0, cliprect); @@ -420,11 +420,11 @@ UINT32 gaiden_state::screen_update_raiga(screen_device &screen, bitmap_rgb32 &bi UINT32 gaiden_state::screen_update_drgnbowl(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect) { - machine().priority_bitmap.fill(0, cliprect); + screen.priority().fill(0, cliprect); - m_background->draw(bitmap, cliprect, 0, 1); - m_foreground->draw(bitmap, cliprect, 0, 2); - m_text_layer->draw(bitmap, cliprect, 0, 4); - drgnbowl_draw_sprites(bitmap, cliprect); + m_background->draw(screen, bitmap, cliprect, 0, 1); + m_foreground->draw(screen, bitmap, cliprect, 0, 2); + m_text_layer->draw(screen, bitmap, cliprect, 0, 4); + drgnbowl_draw_sprites(screen, bitmap, cliprect); return 0; } diff --git a/src/mame/video/galaga.c b/src/mame/video/galaga.c index 2e41dfec33b..bb39ade3a51 100644 --- a/src/mame/video/galaga.c +++ b/src/mame/video/galaga.c @@ -561,7 +561,7 @@ UINT32 galaga_state::screen_update_galaga(screen_device &screen, bitmap_ind16 &b bitmap.fill(get_black_pen(machine()), cliprect); draw_stars(bitmap,cliprect); draw_sprites(bitmap,cliprect); - m_fg_tilemap->draw(bitmap, cliprect, 0,0); + m_fg_tilemap->draw(screen, bitmap, cliprect, 0,0); return 0; } diff --git a/src/mame/video/galastrm.c b/src/mame/video/galastrm.c index 49f45ca21f4..32ea3211f73 100644 --- a/src/mame/video/galastrm.c +++ b/src/mame/video/galastrm.c @@ -187,7 +187,7 @@ logerror("Sprite number %04x had %02x invalid chunks\n",tilenum,bad_chunks); } } -void galastrm_state::draw_sprites(bitmap_ind16 &bitmap, const rectangle &cliprect, const int *primasks, int priority) +void galastrm_state::draw_sprites(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect, const int *primasks, int priority) { struct tempsprite *sprite_ptr = m_sprite_ptr_pre; @@ -204,7 +204,7 @@ void galastrm_state::draw_sprites(bitmap_ind16 &bitmap, const rectangle &cliprec sprite_ptr->flipx,sprite_ptr->flipy, sprite_ptr->x,sprite_ptr->y, sprite_ptr->zoomx,sprite_ptr->zoomy, - machine().priority_bitmap,primasks[sprite_ptr->primask],0); + screen.priority(),primasks[sprite_ptr->primask],0); } } } @@ -432,7 +432,7 @@ UINT32 galastrm_state::screen_update_galastrm(screen_device &screen, bitmap_ind1 UINT8 pivlayer[3]; UINT16 priority; static const int primasks[4] = {0xfffc, 0xfff0, 0xff00, 0x0}; - bitmap_ind8 &priority_bitmap = machine().priority_bitmap; + bitmap_ind8 &priority_bitmap = screen.priority(); rectangle clip(0, screen.width() -1, 0, screen.height() -1); @@ -454,23 +454,23 @@ UINT32 galastrm_state::screen_update_galastrm(screen_device &screen, bitmap_ind1 priority_bitmap.fill(0, clip); m_tmpbitmaps.fill(0, clip); - m_tc0100scn->tilemap_draw(bitmap, cliprect, pivlayer[0], 0, 0); - m_tc0100scn->tilemap_draw(bitmap, cliprect, pivlayer[1], 0, 0); + m_tc0100scn->tilemap_draw(screen, bitmap, cliprect, pivlayer[0], 0, 0); + m_tc0100scn->tilemap_draw(screen, bitmap, cliprect, pivlayer[1], 0, 0); #if 0 if (layer[0]==0 && layer[1]==3 && layer[2]==2 && layer[3]==1) { - if (!machine().input().code_pressed(KEYCODE_Z)) m_tc0480scp->tilemap_draw(m_tmpbitmaps, clip, layer[0], 0, 1); - if (!machine().input().code_pressed(KEYCODE_X)) m_tc0480scp->tilemap_draw(m_tmpbitmaps, clip, layer[1], 0, 4); - if (!machine().input().code_pressed(KEYCODE_C)) m_tc0480scp->tilemap_draw(m_tmpbitmaps, clip, layer[2], 0, 4); - if (!machine().input().code_pressed(KEYCODE_V)) m_tc0480scp->tilemap_draw(m_tmpbitmaps, clip, layer[3], 0, 4); + if (!machine().input().code_pressed(KEYCODE_Z)) m_tc0480scp->tilemap_draw(screen, m_tmpbitmaps, clip, layer[0], 0, 1); + if (!machine().input().code_pressed(KEYCODE_X)) m_tc0480scp->tilemap_draw(screen, m_tmpbitmaps, clip, layer[1], 0, 4); + if (!machine().input().code_pressed(KEYCODE_C)) m_tc0480scp->tilemap_draw(screen, m_tmpbitmaps, clip, layer[2], 0, 4); + if (!machine().input().code_pressed(KEYCODE_V)) m_tc0480scp->tilemap_draw(screen, m_tmpbitmaps, clip, layer[3], 0, 4); } else { - if (!machine().input().code_pressed(KEYCODE_Z)) m_tc0480scp->tilemap_draw(m_tmpbitmaps, clip, layer[0], 0, 1); - if (!machine().input().code_pressed(KEYCODE_X)) m_tc0480scp->tilemap_draw(m_tmpbitmaps, clip, layer[1], 0, 2); - if (!machine().input().code_pressed(KEYCODE_C)) m_tc0480scp->tilemap_draw(m_tmpbitmaps, clip, layer[2], 0, 4); - if (!machine().input().code_pressed(KEYCODE_V)) m_tc0480scp->tilemap_draw(m_tmpbitmaps, clip, layer[3], 0, 8); + if (!machine().input().code_pressed(KEYCODE_Z)) m_tc0480scp->tilemap_draw(screen, m_tmpbitmaps, clip, layer[0], 0, 1); + if (!machine().input().code_pressed(KEYCODE_X)) m_tc0480scp->tilemap_draw(screen, m_tmpbitmaps, clip, layer[1], 0, 2); + if (!machine().input().code_pressed(KEYCODE_C)) m_tc0480scp->tilemap_draw(screen, m_tmpbitmaps, clip, layer[2], 0, 4); + if (!machine().input().code_pressed(KEYCODE_V)) m_tc0480scp->tilemap_draw(screen, m_tmpbitmaps, clip, layer[3], 0, 8); } if (layer[0]==3 && layer[1]==0 && layer[2]==1 && layer[3]==2) @@ -490,34 +490,34 @@ UINT32 galastrm_state::screen_update_galastrm(screen_device &screen, bitmap_ind1 } draw_sprites_pre(machine(), 42-X_OFFSET, -571+Y_OFFSET); - draw_sprites(machine(),m_tmpbitmaps,clip,primasks,1); + draw_sprites(screen,m_tmpbitmaps,clip,primasks,1); copybitmap_trans(bitmap,m_polybitmap,0,0, 0,0,cliprect,0); m_polybitmap->fill(0, clip); tc0610_rotate_draw(machine(),m_polybitmap,m_tmpbitmaps,cliprect); priority_bitmap.fill(0, cliprect); - draw_sprites(machine(),bitmap,cliprect,primasks,0); + draw_sprites(screen,bitmap,cliprect,primasks,0); - if (!machine().input().code_pressed(KEYCODE_B)) m_tc0480scp->tilemap_draw(bitmap, cliprect, layer[4], 0, 0); - if (!machine().input().code_pressed(KEYCODE_M)) m_tc0100scn->tilemap_draw(bitmap, cliprect, pivlayer[2], 0, 0); + if (!machine().input().code_pressed(KEYCODE_B)) m_tc0480scp->tilemap_draw(screen, bitmap, cliprect, layer[4], 0, 0); + if (!machine().input().code_pressed(KEYCODE_M)) m_tc0100scn->tilemap_draw(screen, bitmap, cliprect, pivlayer[2], 0, 0); #else if (layer[0]==0 && layer[1]==3 && layer[2]==2 && layer[3]==1) { - m_tc0480scp->tilemap_draw(m_tmpbitmaps, clip, layer[0], 0, 1); - m_tc0480scp->tilemap_draw(m_tmpbitmaps, clip, layer[1], 0, 4); - m_tc0480scp->tilemap_draw(m_tmpbitmaps, clip, layer[2], 0, 4); - m_tc0480scp->tilemap_draw(m_tmpbitmaps, clip, layer[3], 0, 4); + m_tc0480scp->tilemap_draw(screen, m_tmpbitmaps, clip, layer[0], 0, 1); + m_tc0480scp->tilemap_draw(screen, m_tmpbitmaps, clip, layer[1], 0, 4); + m_tc0480scp->tilemap_draw(screen, m_tmpbitmaps, clip, layer[2], 0, 4); + m_tc0480scp->tilemap_draw(screen, m_tmpbitmaps, clip, layer[3], 0, 4); } else { - m_tc0480scp->tilemap_draw(m_tmpbitmaps, clip, layer[0], 0, 1); - m_tc0480scp->tilemap_draw(m_tmpbitmaps, clip, layer[1], 0, 2); - m_tc0480scp->tilemap_draw(m_tmpbitmaps, clip, layer[2], 0, 4); - m_tc0480scp->tilemap_draw(m_tmpbitmaps, clip, layer[3], 0, 8); + m_tc0480scp->tilemap_draw(screen, m_tmpbitmaps, clip, layer[0], 0, 1); + m_tc0480scp->tilemap_draw(screen, m_tmpbitmaps, clip, layer[1], 0, 2); + m_tc0480scp->tilemap_draw(screen, m_tmpbitmaps, clip, layer[2], 0, 4); + m_tc0480scp->tilemap_draw(screen, m_tmpbitmaps, clip, layer[3], 0, 8); } if (layer[0]==3 && layer[1]==0 && layer[2]==1 && layer[3]==2) @@ -537,17 +537,17 @@ UINT32 galastrm_state::screen_update_galastrm(screen_device &screen, bitmap_ind1 } draw_sprites_pre(42-X_OFFSET, -571+Y_OFFSET); - draw_sprites(m_tmpbitmaps,clip,primasks,1); + draw_sprites(screen,m_tmpbitmaps,clip,primasks,1); copybitmap_trans(bitmap,m_polybitmap,0,0, 0,0,cliprect,0); m_polybitmap.fill(0, clip); tc0610_rotate_draw(m_polybitmap,m_tmpbitmaps,cliprect); priority_bitmap.fill(0, cliprect); - draw_sprites(bitmap,cliprect,primasks,0); + draw_sprites(screen,bitmap,cliprect,primasks,0); - m_tc0480scp->tilemap_draw(bitmap, cliprect, layer[4], 0, 0); - m_tc0100scn->tilemap_draw(bitmap, cliprect, pivlayer[2], 0, 0); + m_tc0480scp->tilemap_draw(screen, bitmap, cliprect, layer[4], 0, 0); + m_tc0100scn->tilemap_draw(screen, bitmap, cliprect, pivlayer[2], 0, 0); #endif return 0; diff --git a/src/mame/video/galaxia.c b/src/mame/video/galaxia.c index bf33793dbd5..1a7b4ce18c6 100644 --- a/src/mame/video/galaxia.c +++ b/src/mame/video/galaxia.c @@ -117,7 +117,7 @@ UINT32 galaxia_state::screen_update_galaxia(screen_device &screen, bitmap_ind16 bitmap.fill(0, cliprect); cvs_update_stars(bitmap, cliprect, STAR_PEN, 1); - m_bg_tilemap->draw(bitmap, cliprect, 0, 0); + m_bg_tilemap->draw(screen, bitmap, cliprect, 0, 0); for (y = cliprect.min_y; y <= cliprect.max_y; y++) { @@ -181,7 +181,7 @@ UINT32 galaxia_state::screen_update_astrowar(screen_device &screen, bitmap_ind16 bitmap.fill(0, cliprect); cvs_update_stars(bitmap, cliprect, STAR_PEN, 1); - m_bg_tilemap->draw(bitmap, cliprect, 0, 0); + m_bg_tilemap->draw(screen, bitmap, cliprect, 0, 0); copybitmap(m_temp_bitmap, bitmap, 0, 0, 0, 0, cliprect); for (y = cliprect.min_y; y <= cliprect.max_y; y++) diff --git a/src/mame/video/galaxian.c b/src/mame/video/galaxian.c index d1c30b91da7..010a1020c71 100644 --- a/src/mame/video/galaxian.c +++ b/src/mame/video/galaxian.c @@ -441,7 +441,7 @@ UINT32 galaxian_state::screen_update_galaxian(screen_device &screen, bitmap_rgb3 (this->*m_draw_background_ptr)(bitmap, cliprect); /* draw the tilemap characters over top */ - m_bg_tilemap->draw(bitmap, cliprect, 0, 0); + m_bg_tilemap->draw(screen, bitmap, cliprect, 0, 0); /* render the sprites next. Some custom pcbs (eg. zigzag, fantastc) have more than one sprite generator (ideally, this should be rendered in parallel) */ for (int i = 0; i < m_numspritegens; i++) diff --git a/src/mame/video/galaxold.c b/src/mame/video/galaxold.c index fb9016739e5..ea0ce07bb72 100644 --- a/src/mame/video/galaxold.c +++ b/src/mame/video/galaxold.c @@ -608,9 +608,9 @@ VIDEO_START_MEMBER(galaxold_state,batman2) -void galaxold_state::rockclim_draw_background(bitmap_ind16 &bitmap, const rectangle &cliprect) +void galaxold_state::rockclim_draw_background(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect) { - m_rockclim_tilemap->draw(bitmap, cliprect, 0,0); + m_rockclim_tilemap->draw(screen, bitmap, cliprect, 0,0); } void galaxold_state::rockclim_modify_spritecode(UINT8 *spriteram, int *code, int *flipx, int *flipy, int offs) @@ -1145,13 +1145,13 @@ void galaxold_state::dambustr_draw_bullets(bitmap_ind16 &bitmap, const rectangle /* background drawing functions */ -void galaxold_state::galaxold_draw_background(bitmap_ind16 &bitmap, const rectangle &cliprect) +void galaxold_state::galaxold_draw_background(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect) { /* plain black background */ bitmap.fill(0, cliprect); } -void galaxold_state::scrambold_draw_background(bitmap_ind16 &bitmap, const rectangle &cliprect) +void galaxold_state::scrambold_draw_background(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect) { if (m_background_enable) bitmap.fill(BACKGROUND_COLOR_BASE, cliprect); @@ -1159,14 +1159,14 @@ void galaxold_state::scrambold_draw_background(bitmap_ind16 &bitmap, const recta bitmap.fill(0, cliprect); } -void galaxold_state::ad2083_draw_background(bitmap_ind16 &bitmap, const rectangle &cliprect) +void galaxold_state::ad2083_draw_background(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect) { int color = (m_background_blue << 2) | (m_background_green << 1) | m_background_red; bitmap.fill(BACKGROUND_COLOR_BASE + color, cliprect); } -void galaxold_state::stratgyx_draw_background(bitmap_ind16 &bitmap, const rectangle &cliprect) +void galaxold_state::stratgyx_draw_background(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect) { UINT8 x; UINT8 *prom; @@ -1202,7 +1202,7 @@ void galaxold_state::stratgyx_draw_background(bitmap_ind16 &bitmap, const rectan } } -void galaxold_state::minefld_draw_background(bitmap_ind16 &bitmap, const rectangle &cliprect) +void galaxold_state::minefld_draw_background(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect) { if (m_background_enable) { @@ -1222,7 +1222,7 @@ void galaxold_state::minefld_draw_background(bitmap_ind16 &bitmap, const rectang bitmap.fill(0, cliprect); } -void galaxold_state::rescue_draw_background(bitmap_ind16 &bitmap, const rectangle &cliprect) +void galaxold_state::rescue_draw_background(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect) { if (m_background_enable) { @@ -1241,7 +1241,7 @@ void galaxold_state::rescue_draw_background(bitmap_ind16 &bitmap, const rectangl bitmap.fill(0, cliprect); } -void galaxold_state::mariner_draw_background(bitmap_ind16 &bitmap, const rectangle &cliprect) +void galaxold_state::mariner_draw_background(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect) { int base = BACKGROUND_COLOR_BASE; UINT8 x; @@ -1284,7 +1284,7 @@ void galaxold_state::mariner_draw_background(bitmap_ind16 &bitmap, const rectang } } -void galaxold_state::dambustr_draw_background(bitmap_ind16 &bitmap, const rectangle &cliprect) +void galaxold_state::dambustr_draw_background(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect) { int base = BACKGROUND_COLOR_BASE; int col1 = base + m_dambustr_bg_color_1; @@ -1710,7 +1710,7 @@ void galaxold_state::draw_sprites(bitmap_ind16 &bitmap, UINT8 *spriteram, size_t UINT32 galaxold_state::screen_update_galaxold(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect) { - (this->*m_draw_background)(bitmap, cliprect); + (this->*m_draw_background)(screen, bitmap, cliprect); if (m_stars_on) { @@ -1718,7 +1718,7 @@ UINT32 galaxold_state::screen_update_galaxold(screen_device &screen, bitmap_ind1 } - m_bg_tilemap->draw(bitmap, cliprect, 0, 0); + m_bg_tilemap->draw(screen, bitmap, cliprect, 0, 0); if (m_draw_bullets) { @@ -1741,7 +1741,7 @@ UINT32 galaxold_state::screen_update_dambustr(screen_device &screen, bitmap_ind1 int i, j; UINT8 color; - (this->*m_draw_background)(bitmap, cliprect); + (this->*m_draw_background)(screen, bitmap, cliprect); if (m_stars_on) { @@ -1751,7 +1751,7 @@ UINT32 galaxold_state::screen_update_dambustr(screen_device &screen, bitmap_ind1 /* save the background for drawing it again later, if background has priority over characters */ copybitmap(*m_dambustr_tmpbitmap, bitmap, 0, 0, 0, 0, m_dambustr_tmpbitmap->cliprect()); - m_bg_tilemap->draw(bitmap, cliprect, 0, 0); + m_bg_tilemap->draw(screen, bitmap, cliprect, 0, 0); if (m_draw_bullets) { @@ -1775,7 +1775,7 @@ UINT32 galaxold_state::screen_update_dambustr(screen_device &screen, bitmap_ind1 }; }; m_dambustr_tilemap2->mark_all_dirty(); - m_dambustr_tilemap2->draw(bitmap, cliprect, 0, 0); + m_dambustr_tilemap2->draw(screen, bitmap, cliprect, 0, 0); }; return 0; diff --git a/src/mame/video/galivan.c b/src/mame/video/galivan.c index f92efb7b159..6af321eb60b 100644 --- a/src/mame/video/galivan.c +++ b/src/mame/video/galivan.c @@ -340,19 +340,19 @@ UINT32 galivan_state::screen_update_galivan(screen_device &screen, bitmap_ind16 if (m_layers & 0x40) bitmap.fill(0, cliprect); else - m_bg_tilemap->draw(bitmap, cliprect, 0, 0); + m_bg_tilemap->draw(screen, bitmap, cliprect, 0, 0); if (m_layers & 0x20) { - m_tx_tilemap->draw(bitmap, cliprect, 0, 0); - m_tx_tilemap->draw(bitmap, cliprect, 1, 0); + m_tx_tilemap->draw(screen, bitmap, cliprect, 0, 0); + m_tx_tilemap->draw(screen, bitmap, cliprect, 1, 0); draw_sprites(bitmap, cliprect); } else { draw_sprites(bitmap, cliprect); - m_tx_tilemap->draw(bitmap, cliprect, 0, 0); - m_tx_tilemap->draw(bitmap, cliprect, 1, 0); + m_tx_tilemap->draw(screen, bitmap, cliprect, 0, 0); + m_tx_tilemap->draw(screen, bitmap, cliprect, 1, 0); } return 0; @@ -367,9 +367,9 @@ UINT32 galivan_state::screen_update_ninjemak(screen_device &screen, bitmap_ind16 if (m_ninjemak_dispdisable) bitmap.fill(0, cliprect); else - m_bg_tilemap->draw(bitmap, cliprect, 0, 0); + m_bg_tilemap->draw(screen, bitmap, cliprect, 0, 0); draw_sprites(bitmap, cliprect); - m_tx_tilemap->draw(bitmap, cliprect, 0, 0); + m_tx_tilemap->draw(screen, bitmap, cliprect, 0, 0); return 0; } diff --git a/src/mame/video/galpani2.c b/src/mame/video/galpani2.c index 125099bf1ec..67d95405dc0 100644 --- a/src/mame/video/galpani2.c +++ b/src/mame/video/galpani2.c @@ -149,7 +149,7 @@ if (machine().input().code_pressed(KEYCODE_Z)) #endif bitmap.fill(0, cliprect); - machine().priority_bitmap.fill(0, cliprect); + screen.priority().fill(0, cliprect); if (layers_ctrl & 0x1) { @@ -184,6 +184,6 @@ if (machine().input().code_pressed(KEYCODE_Z)) cliprect,0x4000 + 0); } - if (layers_ctrl & 0x8) m_kaneko_spr->kaneko16_render_sprites(machine(), bitmap, cliprect, m_spriteram, m_spriteram.bytes()); + if (layers_ctrl & 0x8) m_kaneko_spr->kaneko16_render_sprites(machine(), bitmap, cliprect, screen.priority(), m_spriteram, m_spriteram.bytes()); return 0; } diff --git a/src/mame/video/galspnbl.c b/src/mame/video/galspnbl.c index 21cfa32b883..f4dc77ac9f3 100644 --- a/src/mame/video/galspnbl.c +++ b/src/mame/video/galspnbl.c @@ -35,7 +35,7 @@ UINT32 galspnbl_state::screen_update_galspnbl(screen_device &screen, bitmap_ind1 draw_background(bitmap, cliprect); - galspnbl_draw_sprites(machine(), bitmap, cliprect, 0, m_spriteram, m_spriteram.bytes()); + galspnbl_draw_sprites(screen, bitmap, cliprect, 0, m_spriteram, m_spriteram.bytes()); for (offs = 0; offs < 0x1000 / 2; offs++) { @@ -59,6 +59,6 @@ UINT32 galspnbl_state::screen_update_galspnbl(screen_device &screen, bitmap_ind1 } } - galspnbl_draw_sprites(machine(), bitmap, cliprect, 1, m_spriteram, m_spriteram.bytes()); + galspnbl_draw_sprites(screen, bitmap, cliprect, 1, m_spriteram, m_spriteram.bytes()); return 0; } diff --git a/src/mame/video/gaplus.c b/src/mame/video/gaplus.c index e69ec5c933a..f429c10ddb8 100644 --- a/src/mame/video/gaplus.c +++ b/src/mame/video/gaplus.c @@ -310,13 +310,13 @@ UINT32 gaplus_state::screen_update_gaplus(screen_device &screen, bitmap_ind16 &b starfield_render(bitmap); /* draw the low priority characters */ - m_bg_tilemap->draw(bitmap, cliprect, 0,0); + m_bg_tilemap->draw(screen, bitmap, cliprect, 0,0); draw_sprites(bitmap, cliprect); /* draw the high priority characters */ /* (I don't know if this feature is used by Gaplus, but it's shown in the schematics) */ - m_bg_tilemap->draw(bitmap, cliprect, 1,0); + m_bg_tilemap->draw(screen, bitmap, cliprect, 1,0); return 0; } diff --git a/src/mame/video/gatron.c b/src/mame/video/gatron.c index e7320525af6..e876f6a9aba 100644 --- a/src/mame/video/gatron.c +++ b/src/mame/video/gatron.c @@ -50,7 +50,7 @@ void gatron_state::video_start() UINT32 gatron_state::screen_update_gat(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect) { - m_bg_tilemap->draw(bitmap, cliprect, 0, 0); + m_bg_tilemap->draw(screen, bitmap, cliprect, 0, 0); return 0; } diff --git a/src/mame/video/gauntlet.c b/src/mame/video/gauntlet.c index 0be815a33a0..18f5fa3a307 100644 --- a/src/mame/video/gauntlet.c +++ b/src/mame/video/gauntlet.c @@ -161,7 +161,7 @@ UINT32 gauntlet_state::screen_update_gauntlet(screen_device &screen, bitmap_ind1 m_mob->draw_async(cliprect); /* draw the playfield */ - m_playfield_tilemap->draw(bitmap, cliprect, 0, 0); + m_playfield_tilemap->draw(screen, bitmap, cliprect, 0, 0); /* draw and merge the MO */ bitmap_ind16 &mobitmap = m_mob->bitmap(); @@ -189,6 +189,6 @@ UINT32 gauntlet_state::screen_update_gauntlet(screen_device &screen, bitmap_ind1 } /* add the alpha on top */ - m_alpha_tilemap->draw(bitmap, cliprect, 0, 0); + m_alpha_tilemap->draw(screen, bitmap, cliprect, 0, 0); return 0; } diff --git a/src/mame/video/gberet.c b/src/mame/video/gberet.c index 040a8161138..d0dca51169e 100644 --- a/src/mame/video/gberet.c +++ b/src/mame/video/gberet.c @@ -163,9 +163,9 @@ void gberet_state::gberet_draw_sprites( bitmap_ind16 &bitmap, const rectangle &c UINT32 gberet_state::screen_update_gberet(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect) { - m_bg_tilemap->draw(bitmap, cliprect, TILEMAP_DRAW_OPAQUE | TILEMAP_DRAW_ALL_CATEGORIES, 0); + m_bg_tilemap->draw(screen, bitmap, cliprect, TILEMAP_DRAW_OPAQUE | TILEMAP_DRAW_ALL_CATEGORIES, 0); gberet_draw_sprites(bitmap, cliprect); - m_bg_tilemap->draw(bitmap, cliprect, 0, 0); + m_bg_tilemap->draw(screen, bitmap, cliprect, 0, 0); return 0; } @@ -215,8 +215,8 @@ void gberet_state::gberetb_draw_sprites( bitmap_ind16 &bitmap, const rectangle & UINT32 gberet_state::screen_update_gberetb(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect) { - m_bg_tilemap->draw(bitmap, cliprect, TILEMAP_DRAW_OPAQUE | TILEMAP_DRAW_ALL_CATEGORIES, 0); + m_bg_tilemap->draw(screen, bitmap, cliprect, TILEMAP_DRAW_OPAQUE | TILEMAP_DRAW_ALL_CATEGORIES, 0); gberetb_draw_sprites(bitmap, cliprect); - m_bg_tilemap->draw(bitmap, cliprect, 0, 0); + m_bg_tilemap->draw(screen, bitmap, cliprect, 0, 0); return 0; } diff --git a/src/mame/video/gbusters.c b/src/mame/video/gbusters.c index 0d155ca08b8..5710acb2bea 100644 --- a/src/mame/video/gbusters.c +++ b/src/mame/video/gbusters.c @@ -53,21 +53,21 @@ UINT32 gbusters_state::screen_update_gbusters(screen_device &screen, bitmap_ind1 /* sprite priority 3 = disable */ if (m_priority) { -// m_k051960->k051960_sprites_draw(bitmap, cliprect, 1, 1); /* are these used? */ - m_k052109->tilemap_draw(bitmap, cliprect, 2, TILEMAP_DRAW_OPAQUE, 0); - m_k051960->k051960_sprites_draw(bitmap, cliprect, 2, 2); - m_k052109->tilemap_draw(bitmap, cliprect, 1, 0, 0); - m_k051960->k051960_sprites_draw(bitmap, cliprect, 0, 0); - m_k052109->tilemap_draw(bitmap, cliprect, 0, 0, 0); +// m_k051960->k051960_sprites_draw(bitmap, cliprect, screen.priority(), 1, 1); /* are these used? */ + m_k052109->tilemap_draw(screen, bitmap, cliprect, 2, TILEMAP_DRAW_OPAQUE, 0); + m_k051960->k051960_sprites_draw(bitmap, cliprect, screen.priority(), 2, 2); + m_k052109->tilemap_draw(screen, bitmap, cliprect, 1, 0, 0); + m_k051960->k051960_sprites_draw(bitmap, cliprect, screen.priority(), 0, 0); + m_k052109->tilemap_draw(screen, bitmap, cliprect, 0, 0, 0); } else { -// m_k051960->k051960_sprites_draw(bitmap, cliprect, 1, 1); /* are these used? */ - m_k052109->tilemap_draw(bitmap, cliprect, 1, TILEMAP_DRAW_OPAQUE, 0); - m_k051960->k051960_sprites_draw(bitmap, cliprect, 2, 2); - m_k052109->tilemap_draw(bitmap, cliprect, 2, 0, 0); - m_k051960->k051960_sprites_draw(bitmap, cliprect, 0, 0); - m_k052109->tilemap_draw(bitmap, cliprect, 0, 0, 0); +// m_k051960->k051960_sprites_draw(bitmap, cliprect, screen.priority(), 1, 1); /* are these used? */ + m_k052109->tilemap_draw(screen, bitmap, cliprect, 1, TILEMAP_DRAW_OPAQUE, 0); + m_k051960->k051960_sprites_draw(bitmap, cliprect, screen.priority(), 2, 2); + m_k052109->tilemap_draw(screen, bitmap, cliprect, 2, 0, 0); + m_k051960->k051960_sprites_draw(bitmap, cliprect, screen.priority(), 0, 0); + m_k052109->tilemap_draw(screen, bitmap, cliprect, 0, 0, 0); } return 0; } diff --git a/src/mame/video/gcpinbal.c b/src/mame/video/gcpinbal.c index 7badfa32d81..75c5cb58e7c 100644 --- a/src/mame/video/gcpinbal.c +++ b/src/mame/video/gcpinbal.c @@ -163,7 +163,7 @@ WRITE16_MEMBER(gcpinbal_state::gcpinbal_ctrl_word_w) ****************************************************************/ -void gcpinbal_state::draw_sprites( bitmap_ind16 &bitmap, const rectangle &cliprect, int y_offs ) +void gcpinbal_state::draw_sprites( screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect, int y_offs ) { UINT16 *spriteram = m_spriteram; int offs, chain_pos; @@ -207,7 +207,7 @@ void gcpinbal_state::draw_sprites( bitmap_ind16 &bitmap, const rectangle &clipre col, flipx, flipy, curx,cury, - machine().priority_bitmap, + screen.priority(), priority ? 0xfc : 0xf0,0); code++; @@ -284,7 +284,7 @@ UINT32 gcpinbal_state::screen_update_gcpinbal(screen_device &screen, bitmap_ind1 m_tilemap[i]->set_scrolly(0, m_scrolly[i]); } - machine().priority_bitmap.fill(0, cliprect); + screen.priority().fill(0, cliprect); bitmap.fill(0, cliprect); layer[0] = 0; @@ -295,20 +295,20 @@ UINT32 gcpinbal_state::screen_update_gcpinbal(screen_device &screen, bitmap_ind1 #ifdef MAME_DEBUG if (m_dislayer[layer[0]] == 0) #endif - m_tilemap[layer[0]]->draw(bitmap, cliprect, TILEMAP_DRAW_OPAQUE, 1); + m_tilemap[layer[0]]->draw(screen, bitmap, cliprect, TILEMAP_DRAW_OPAQUE, 1); #ifdef MAME_DEBUG if (m_dislayer[layer[1]] == 0) #endif - m_tilemap[layer[1]]->draw(bitmap, cliprect, 0, 2); + m_tilemap[layer[1]]->draw(screen, bitmap, cliprect, 0, 2); #ifdef MAME_DEBUG if (m_dislayer[layer[2]] == 0) #endif - m_tilemap[layer[2]]->draw(bitmap, cliprect, 0, 4); + m_tilemap[layer[2]]->draw(screen, bitmap, cliprect, 0, 4); - draw_sprites(bitmap, cliprect, 16); + draw_sprites(screen, bitmap, cliprect, 16); #if 0 { diff --git a/src/mame/video/gijoe.c b/src/mame/video/gijoe.c index a1eac739cfd..3b8197cb317 100644 --- a/src/mame/video/gijoe.c +++ b/src/mame/video/gijoe.c @@ -156,12 +156,12 @@ UINT32 gijoe_state::screen_update_gijoe(screen_device &screen, bitmap_ind16 &bit konami_sortlayers4(layer, m_layer_pri); bitmap.fill(get_black_pen(machine()), cliprect); - machine().priority_bitmap.fill(0, cliprect); + screen.priority().fill(0, cliprect); - m_k056832->tilemap_draw(bitmap, cliprect, layer[0], 0, 1); - m_k056832->tilemap_draw(bitmap, cliprect, layer[1], 0, 2); - m_k056832->tilemap_draw(bitmap, cliprect, layer[2], 0, 4); - m_k056832->tilemap_draw(bitmap, cliprect, layer[3], 0, 8); + m_k056832->tilemap_draw(screen, bitmap, cliprect, layer[0], 0, 1); + m_k056832->tilemap_draw(screen, bitmap, cliprect, layer[1], 0, 2); + m_k056832->tilemap_draw(screen, bitmap, cliprect, layer[2], 0, 4); + m_k056832->tilemap_draw(screen, bitmap, cliprect, layer[3], 0, 8); m_k053246->k053247_sprites_draw( bitmap, cliprect); return 0; diff --git a/src/mame/video/ginganin.c b/src/mame/video/ginganin.c index c257f359e99..91506584960 100644 --- a/src/mame/video/ginganin.c +++ b/src/mame/video/ginganin.c @@ -271,16 +271,16 @@ if (machine().input().code_pressed(KEYCODE_Z)) if (layers_ctrl1 & 1) - m_bg_tilemap->draw(bitmap, cliprect, 0, 0); + m_bg_tilemap->draw(screen, bitmap, cliprect, 0, 0); else bitmap.fill(0, cliprect); if (layers_ctrl1 & 2) - m_fg_tilemap->draw(bitmap, cliprect, 0, 0); + m_fg_tilemap->draw(screen, bitmap, cliprect, 0, 0); if (layers_ctrl1 & 8) draw_sprites(bitmap, cliprect); if (layers_ctrl1 & 4) - m_tx_tilemap->draw(bitmap, cliprect, 0, 0); + m_tx_tilemap->draw(screen, bitmap, cliprect, 0, 0); return 0; } diff --git a/src/mame/video/gladiatr.c b/src/mame/video/gladiatr.c index 60e875b8e89..c91af823ac5 100644 --- a/src/mame/video/gladiatr.c +++ b/src/mame/video/gladiatr.c @@ -241,7 +241,7 @@ void gladiatr_state::draw_sprites(bitmap_ind16 &bitmap, const rectangle &cliprec UINT32 gladiatr_state::screen_update_ppking(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect) { - m_bg_tilemap->draw(bitmap, cliprect, 0,0); + m_bg_tilemap->draw(screen, bitmap, cliprect, 0,0); draw_sprites(bitmap,cliprect); /* the fg layer just selects the upper palette bank on underlying pixels */ @@ -288,9 +288,9 @@ UINT32 gladiatr_state::screen_update_gladiatr(screen_device &screen, bitmap_ind1 m_bg_tilemap->set_scrolly(0, m_bg_scrolly); m_fg_tilemap->set_scrolly(0, m_fg_scrolly); - m_bg_tilemap->draw(bitmap, cliprect, 0,0); + m_bg_tilemap->draw(screen, bitmap, cliprect, 0,0); draw_sprites(bitmap,cliprect); - m_fg_tilemap->draw(bitmap, cliprect, 0,0); + m_fg_tilemap->draw(screen, bitmap, cliprect, 0,0); } else bitmap.fill(get_black_pen(machine()), cliprect ); diff --git a/src/mame/video/glass.c b/src/mame/video/glass.c index 91977eba358..c5b10123b68 100644 --- a/src/mame/video/glass.c +++ b/src/mame/video/glass.c @@ -200,8 +200,8 @@ UINT32 glass_state::screen_update_glass(screen_device &screen, bitmap_ind16 &bit /* draw layers + sprites */ bitmap.fill(get_black_pen(machine()), cliprect); copybitmap(bitmap, *m_screen_bitmap, 0, 0, 0x18, 0x24, cliprect); - m_pant[1]->draw(bitmap, cliprect, 0, 0); - m_pant[0]->draw(bitmap, cliprect, 0, 0); + m_pant[1]->draw(screen, bitmap, cliprect, 0, 0); + m_pant[0]->draw(screen, bitmap, cliprect, 0, 0); draw_sprites(bitmap, cliprect); return 0; } diff --git a/src/mame/video/gng.c b/src/mame/video/gng.c index 2633d17e172..73ed35a80fa 100644 --- a/src/mame/video/gng.c +++ b/src/mame/video/gng.c @@ -134,9 +134,9 @@ void gng_state::draw_sprites( bitmap_ind16 &bitmap, const rectangle &cliprect ) UINT32 gng_state::screen_update_gng(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect) { - m_bg_tilemap->draw(bitmap, cliprect, TILEMAP_DRAW_LAYER1, 0); + m_bg_tilemap->draw(screen, bitmap, cliprect, TILEMAP_DRAW_LAYER1, 0); draw_sprites(bitmap, cliprect); - m_bg_tilemap->draw(bitmap, cliprect, TILEMAP_DRAW_LAYER0, 0); - m_fg_tilemap->draw(bitmap, cliprect, 0, 0); + m_bg_tilemap->draw(screen, bitmap, cliprect, TILEMAP_DRAW_LAYER0, 0); + m_fg_tilemap->draw(screen, bitmap, cliprect, 0, 0); return 0; } diff --git a/src/mame/video/goal92.c b/src/mame/video/goal92.c index 4e59ce5670e..7e13490fc21 100644 --- a/src/mame/video/goal92.c +++ b/src/mame/video/goal92.c @@ -160,20 +160,20 @@ UINT32 goal92_state::screen_update_goal92(screen_device &screen, bitmap_ind16 &b bitmap.fill(get_black_pen(machine()), cliprect); - m_bg_layer->draw(bitmap, cliprect, 0, 0); + m_bg_layer->draw(screen, bitmap, cliprect, 0, 0); draw_sprites(bitmap, cliprect, 2); if (!(m_fg_bank & 0xff)) draw_sprites(bitmap, cliprect, 1); - m_fg_layer->draw(bitmap, cliprect, 0, 0); + m_fg_layer->draw(screen, bitmap, cliprect, 0, 0); if(m_fg_bank & 0xff) draw_sprites(bitmap, cliprect, 1); draw_sprites(bitmap, cliprect, 0); draw_sprites(bitmap, cliprect, 3); - m_tx_layer->draw(bitmap, cliprect, 0, 0); + m_tx_layer->draw(screen, bitmap, cliprect, 0, 0); return 0; } diff --git a/src/mame/video/goindol.c b/src/mame/video/goindol.c index db5d7821bd6..7b8116eba6b 100644 --- a/src/mame/video/goindol.c +++ b/src/mame/video/goindol.c @@ -122,8 +122,8 @@ UINT32 goindol_state::screen_update_goindol(screen_device &screen, bitmap_ind16 m_fg_tilemap->set_scrollx(0, *m_fg_scrollx); m_fg_tilemap->set_scrolly(0, *m_fg_scrolly); - m_bg_tilemap->draw(bitmap, cliprect, 0, 0); - m_fg_tilemap->draw(bitmap, cliprect, 0, 0); + m_bg_tilemap->draw(screen, bitmap, cliprect, 0, 0); + m_fg_tilemap->draw(screen, bitmap, cliprect, 0, 0); draw_sprites(bitmap, cliprect, 1, m_spriteram); draw_sprites(bitmap, cliprect, 0, m_spriteram2); return 0; diff --git a/src/mame/video/goldstar.c b/src/mame/video/goldstar.c index 4c30539cfdf..776eb3f7fd5 100644 --- a/src/mame/video/goldstar.c +++ b/src/mame/video/goldstar.c @@ -370,9 +370,9 @@ UINT32 goldstar_state::screen_update_goldstar(screen_device &screen, bitmap_ind1 const rectangle visible2(0*8, (14+48)*8-1, 12*8, (12+7)*8-1); const rectangle visible3(0*8, (14+48)*8-1, 20*8, (20+7)*8-1); - m_reel1_tilemap->draw(bitmap, visible1, 0, 0); - m_reel2_tilemap->draw(bitmap, visible2, 0, 0); - m_reel3_tilemap->draw(bitmap, visible3, 0, 0); + m_reel1_tilemap->draw(screen, bitmap, visible1, 0, 0); + m_reel2_tilemap->draw(screen, bitmap, visible2, 0, 0); + m_reel3_tilemap->draw(screen, bitmap, visible3, 0, 0); } if (m_cm_enable_reg &0x04) @@ -389,7 +389,7 @@ UINT32 goldstar_state::screen_update_goldstar(screen_device &screen, bitmap_ind1 if (m_cm_enable_reg &0x02) { - m_fg_tilemap->draw(bitmap, cliprect, 0, 0); + m_fg_tilemap->draw(screen, bitmap, cliprect, 0, 0); } return 0; @@ -414,7 +414,7 @@ UINT32 goldstar_state::screen_update_bingowng(screen_device &screen, bitmap_ind1 const rectangle visible1(0*8, (14+48)*8-1, 3*8, (4+7)*8-1); - m_reel1_tilemap->draw(bitmap, visible1, 0, 0); + m_reel1_tilemap->draw(screen, bitmap, visible1, 0, 0); } if (m_cm_enable_reg &0x04) @@ -431,7 +431,7 @@ UINT32 goldstar_state::screen_update_bingowng(screen_device &screen, bitmap_ind1 if (m_cm_enable_reg &0x02) { - m_fg_tilemap->draw(bitmap, cliprect, 0, 0); + m_fg_tilemap->draw(screen, bitmap, cliprect, 0, 0); } return 0; @@ -463,9 +463,9 @@ UINT32 goldstar_state::screen_update_magical(screen_device &screen, bitmap_ind16 const rectangle visible1alt(0*8, (16+48)*8-1, 4*8, 16*8-1); const rectangle visible2alt(0*8, (16+48)*8-1, 16*8, 28*8-1); - m_reel1_tilemap->draw(bitmap, visible1alt, 0, 0); - m_reel2_tilemap->draw(bitmap, visible2alt, 0, 0); - //m_reel3_tilemap->draw(bitmap, &magical_visible3, 0, 0); + m_reel1_tilemap->draw(screen, bitmap, visible1alt, 0, 0); + m_reel2_tilemap->draw(screen, bitmap, visible2alt, 0, 0); + //m_reel3_tilemap->draw(screen, bitmap, &magical_visible3, 0, 0); } else { @@ -481,15 +481,15 @@ UINT32 goldstar_state::screen_update_magical(screen_device &screen, bitmap_ind16 const rectangle visible2(0*8, (14+48)*8-1, 12*8, (12+8)*8-1); const rectangle visible3(0*8, (14+48)*8-1, 20*8, (20+8)*8-1); - m_reel1_tilemap->draw(bitmap, visible1, 0, 0); - m_reel2_tilemap->draw(bitmap, visible2, 0, 0); - m_reel3_tilemap->draw(bitmap, visible3, 0, 0); + m_reel1_tilemap->draw(screen, bitmap, visible1, 0, 0); + m_reel2_tilemap->draw(screen, bitmap, visible2, 0, 0); + m_reel3_tilemap->draw(screen, bitmap, visible3, 0, 0); } } if (m_cm_enable_reg &0x02) { - m_fg_tilemap->draw(bitmap, cliprect, 0, 0); + m_fg_tilemap->draw(screen, bitmap, cliprect, 0, 0); } return 0; @@ -518,7 +518,7 @@ UINT32 goldstar_state::screen_update_unkch(screen_device &screen, bitmap_ind16 & // m_reel3_tilemap->set_scrolly(i, m_reel3_scroll[(i*2)+1]); } - m_reel1_tilemap->draw(bitmap, cliprect, 0, 0); + m_reel1_tilemap->draw(screen, bitmap, cliprect, 0, 0); } // or draw the reels normally? @@ -535,15 +535,15 @@ UINT32 goldstar_state::screen_update_unkch(screen_device &screen, bitmap_ind16 & const rectangle visible2(0*8, (14+48)*8-1, 10*8, (10+7)*8-1); const rectangle visible3(0*8, (14+48)*8-1, 17*8, (17+7)*8-1); - m_reel1_tilemap->draw(bitmap, visible1, 0, 0); - m_reel2_tilemap->draw(bitmap, visible2, 0, 0); - m_reel3_tilemap->draw(bitmap, visible3, 0, 0); + m_reel1_tilemap->draw(screen, bitmap, visible1, 0, 0); + m_reel2_tilemap->draw(screen, bitmap, visible2, 0, 0); + m_reel3_tilemap->draw(screen, bitmap, visible3, 0, 0); } } if (m_cm_enable_reg &0x02) { - m_fg_tilemap->draw(bitmap, cliprect, 0, 0); + m_fg_tilemap->draw(screen, bitmap, cliprect, 0, 0); } return 0; @@ -571,14 +571,14 @@ UINT32 goldstar_state::screen_update_cmast91(screen_device &screen, bitmap_ind16 const rectangle visible2(0*8, (14+48)*8-1, 11*8, (12+7)*8-1); /* 4 pixels less for reel2 */ const rectangle visible3(0*8, (14+48)*8-1, 19*8, (19+7)*8-1); /* 8 pixels less for reel3 */ - m_reel1_tilemap->draw(bitmap, visible1, 0, 0); - m_reel2_tilemap->draw(bitmap, visible2, 0, 0); - m_reel3_tilemap->draw(bitmap, visible3, 0, 0); + m_reel1_tilemap->draw(screen, bitmap, visible1, 0, 0); + m_reel2_tilemap->draw(screen, bitmap, visible2, 0, 0); + m_reel3_tilemap->draw(screen, bitmap, visible3, 0, 0); } if (m_cm_enable_reg &0x02) { - m_fg_tilemap->draw(bitmap, cliprect, 0, 0); + m_fg_tilemap->draw(screen, bitmap, cliprect, 0, 0); } return 0; @@ -606,9 +606,9 @@ UINT32 goldstar_state::screen_update_amcoe1a(screen_device &screen, bitmap_ind16 const rectangle visible2(0*8, (14+48)*8-1, 10*8, (10+6)*8-1); const rectangle visible3(0*8, (14+48)*8-1, 16*8, (16+6)*8-1); - m_reel1_tilemap->draw(bitmap, visible1, 0, 0); - m_reel2_tilemap->draw(bitmap, visible2, 0, 0); - m_reel3_tilemap->draw(bitmap, visible3, 0, 0); + m_reel1_tilemap->draw(screen, bitmap, visible1, 0, 0); + m_reel2_tilemap->draw(screen, bitmap, visible2, 0, 0); + m_reel3_tilemap->draw(screen, bitmap, visible3, 0, 0); } if (m_cm_enable_reg &0x04) @@ -618,7 +618,7 @@ UINT32 goldstar_state::screen_update_amcoe1a(screen_device &screen, bitmap_ind16 if (m_cm_enable_reg &0x02) { - m_fg_tilemap->draw(bitmap, cliprect, 0, 0); + m_fg_tilemap->draw(screen, bitmap, cliprect, 0, 0); } return 0; diff --git a/src/mame/video/gomoku.c b/src/mame/video/gomoku.c index e8cf30aefca..5e6df8613fb 100644 --- a/src/mame/video/gomoku.c +++ b/src/mame/video/gomoku.c @@ -222,6 +222,6 @@ UINT32 gomoku_state::screen_update_gomoku(screen_device &screen, bitmap_ind16 &b bitmap.fill(0x20); } - m_fg_tilemap->draw(bitmap, cliprect, 0, 0); + m_fg_tilemap->draw(screen, bitmap, cliprect, 0, 0); return 0; } diff --git a/src/mame/video/gotcha.c b/src/mame/video/gotcha.c index 46ce0442370..69ab6259bc6 100644 --- a/src/mame/video/gotcha.c +++ b/src/mame/video/gotcha.c @@ -100,8 +100,8 @@ WRITE16_MEMBER(gotcha_state::gotcha_scroll_w) UINT32 gotcha_state::screen_update_gotcha(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect) { - m_bg_tilemap->draw(bitmap, cliprect, 0, 0); - m_fg_tilemap->draw(bitmap, cliprect, 0, 0); + m_bg_tilemap->draw(screen, bitmap, cliprect, 0, 0); + m_fg_tilemap->draw(screen, bitmap, cliprect, 0, 0); m_sprgen->draw_sprites(bitmap, cliprect, m_spriteram, 0x400); return 0; } diff --git a/src/mame/video/gottlieb.c b/src/mame/video/gottlieb.c index dd98445dea9..7163155ae0a 100644 --- a/src/mame/video/gottlieb.c +++ b/src/mame/video/gottlieb.c @@ -239,7 +239,7 @@ UINT32 gottlieb_state::screen_update_gottlieb(screen_device &screen, bitmap_rgb3 { /* if the background has lower priority, render it first, else clear the screen */ if (!m_background_priority) - m_bg_tilemap->draw(bitmap, cliprect, TILEMAP_DRAW_OPAQUE, 0); + m_bg_tilemap->draw(screen, bitmap, cliprect, TILEMAP_DRAW_OPAQUE, 0); else bitmap.fill(machine().pens[0], cliprect); @@ -248,7 +248,7 @@ UINT32 gottlieb_state::screen_update_gottlieb(screen_device &screen, bitmap_rgb3 /* if the background has higher priority, render it now */ if (m_background_priority) - m_bg_tilemap->draw(bitmap, cliprect, 0, 0); + m_bg_tilemap->draw(screen, bitmap, cliprect, 0, 0); return 0; } diff --git a/src/mame/video/gotya.c b/src/mame/video/gotya.c index d3a017a5847..6b4b75bfd8f 100644 --- a/src/mame/video/gotya.c +++ b/src/mame/video/gotya.c @@ -173,7 +173,7 @@ void gotya_state::draw_status( bitmap_ind16 &bitmap, const rectangle &cliprect ) UINT32 gotya_state::screen_update_gotya(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect) { m_bg_tilemap->set_scrollx(0, -(*m_scroll + (m_scroll_bit_8 * 256)) - 2 * 8); - m_bg_tilemap->draw(bitmap, cliprect, 0, 0); + m_bg_tilemap->draw(screen, bitmap, cliprect, 0, 0); draw_sprites(bitmap, cliprect); draw_status(bitmap, cliprect); return 0; diff --git a/src/mame/video/gradius3.c b/src/mame/video/gradius3.c index 24625e09c1b..9574d982aab 100644 --- a/src/mame/video/gradius3.c +++ b/src/mame/video/gradius3.c @@ -130,20 +130,20 @@ UINT32 gradius3_state::screen_update_gradius3(screen_device &screen, bitmap_ind1 m_k052109->tilemap_update(); - machine().priority_bitmap.fill(0, cliprect); + screen.priority().fill(0, cliprect); if (m_priority == 0) { - m_k052109->tilemap_draw(bitmap, cliprect, 1, TILEMAP_DRAW_OPAQUE, 2); - m_k052109->tilemap_draw(bitmap, cliprect, 2, 0, 4); - m_k052109->tilemap_draw(bitmap, cliprect, 0, 0, 1); + m_k052109->tilemap_draw(screen, bitmap, cliprect, 1, TILEMAP_DRAW_OPAQUE, 2); + m_k052109->tilemap_draw(screen, bitmap, cliprect, 2, 0, 4); + m_k052109->tilemap_draw(screen, bitmap, cliprect, 0, 0, 1); } else { - m_k052109->tilemap_draw(bitmap, cliprect, 0, TILEMAP_DRAW_OPAQUE, 1); - m_k052109->tilemap_draw(bitmap, cliprect, 1, 0, 2); - m_k052109->tilemap_draw(bitmap, cliprect, 2, 0, 4); + m_k052109->tilemap_draw(screen, bitmap, cliprect, 0, TILEMAP_DRAW_OPAQUE, 1); + m_k052109->tilemap_draw(screen, bitmap, cliprect, 1, 0, 2); + m_k052109->tilemap_draw(screen, bitmap, cliprect, 2, 0, 4); } - m_k051960->k051960_sprites_draw(bitmap, cliprect, -1, -1); + m_k051960->k051960_sprites_draw(bitmap, cliprect, screen.priority(), -1, -1); return 0; } diff --git a/src/mame/video/groundfx.c b/src/mame/video/groundfx.c index d56a3a9fd8f..f24fb4ce399 100644 --- a/src/mame/video/groundfx.c +++ b/src/mame/video/groundfx.c @@ -58,7 +58,7 @@ Heavy use is made of sprite zooming. ***************************************************************/ -void groundfx_state::draw_sprites(bitmap_ind16 &bitmap,const rectangle &cliprect,int do_hack,int x_offs,int y_offs) +void groundfx_state::draw_sprites(screen_device &screen, bitmap_ind16 &bitmap,const rectangle &cliprect,int do_hack,int x_offs,int y_offs) { UINT32 *spriteram32 = m_spriteram; UINT16 *spritemap = (UINT16 *)memregion("user1")->base(); @@ -185,7 +185,7 @@ void groundfx_state::draw_sprites(bitmap_ind16 &bitmap,const rectangle &cliprect sprite_ptr->flipx,sprite_ptr->flipy, sprite_ptr->x,sprite_ptr->y, sprite_ptr->zoomx,sprite_ptr->zoomy, - machine().priority_bitmap,primasks[sprite_ptr->pri],0); + screen.priority(),primasks[sprite_ptr->pri],0); } } @@ -215,11 +215,11 @@ UINT32 groundfx_state::screen_update_groundfx(screen_device &screen, bitmap_ind1 pivlayer[1] = pivlayer[0]^1; pivlayer[2] = 2; - machine().priority_bitmap.fill(0, cliprect); + screen.priority().fill(0, cliprect); bitmap.fill(0, cliprect); /* wrong color? */ - m_tc0100scn->tilemap_draw(bitmap, cliprect, pivlayer[0], TILEMAP_DRAW_OPAQUE, 0); - m_tc0100scn->tilemap_draw(bitmap, cliprect, pivlayer[1], 0, 0); + m_tc0100scn->tilemap_draw(screen, bitmap, cliprect, pivlayer[0], TILEMAP_DRAW_OPAQUE, 0); + m_tc0100scn->tilemap_draw(screen, bitmap, cliprect, pivlayer[1], 0, 0); /* BIG HACK! @@ -240,28 +240,28 @@ UINT32 groundfx_state::screen_update_groundfx(screen_device &screen, bitmap_ind1 if (m_tc0100scn->long_r(space, 0x4090 / 4, 0xffffffff) || m_tc0480scp->long_r(space, 0x20 / 4, 0xffffffff) == 0x240866) /* Anything in text layer - really stupid hack */ { - m_tc0480scp->tilemap_draw(bitmap, cliprect, layer[1], 0, 2); - m_tc0480scp->tilemap_draw(bitmap, cliprect, layer[2], 0, 4); - m_tc0480scp->tilemap_draw(bitmap, cliprect, layer[3], 0, 8); + m_tc0480scp->tilemap_draw(screen, bitmap, cliprect, layer[1], 0, 2); + m_tc0480scp->tilemap_draw(screen, bitmap, cliprect, layer[2], 0, 4); + m_tc0480scp->tilemap_draw(screen, bitmap, cliprect, layer[3], 0, 8); - //m_tc0100scn->tilemap_draw(bitmap, cliprect, 0, pivlayer[2], 0, 0); + //m_tc0100scn->tilemap_draw(screen, bitmap, cliprect, 0, pivlayer[2], 0, 0); if (m_tc0480scp->long_r(space, 0x20 / 4, 0xffffffff) != 0x240866) /* Stupid hack for start of race */ - m_tc0480scp->tilemap_draw(bitmap, m_hack_cliprect, layer[0], 0, 0); - draw_sprites(bitmap, cliprect, 1, 44, -574); + m_tc0480scp->tilemap_draw(screen, bitmap, m_hack_cliprect, layer[0], 0, 0); + draw_sprites(screen, bitmap, cliprect, 1, 44, -574); } else { - m_tc0480scp->tilemap_draw(bitmap, cliprect, layer[0], 0, 1); - m_tc0480scp->tilemap_draw(bitmap, cliprect, layer[1], 0, 2); - m_tc0480scp->tilemap_draw(bitmap, cliprect, layer[2], 0, 4); - m_tc0480scp->tilemap_draw(bitmap, cliprect, layer[3], 0, 8); + m_tc0480scp->tilemap_draw(screen, bitmap, cliprect, layer[0], 0, 1); + m_tc0480scp->tilemap_draw(screen, bitmap, cliprect, layer[1], 0, 2); + m_tc0480scp->tilemap_draw(screen, bitmap, cliprect, layer[2], 0, 4); + m_tc0480scp->tilemap_draw(screen, bitmap, cliprect, layer[3], 0, 8); - m_tc0100scn->tilemap_draw(bitmap, cliprect, pivlayer[2], 0, 0); + m_tc0100scn->tilemap_draw(screen, bitmap, cliprect, pivlayer[2], 0, 0); - draw_sprites(bitmap, cliprect, 0, 44, -574); + draw_sprites(screen, bitmap, cliprect, 0, 44, -574); } - m_tc0480scp->tilemap_draw(bitmap, cliprect, layer[4], 0, 0); /* TC0480SCP text layer */ + m_tc0480scp->tilemap_draw(screen, bitmap, cliprect, layer[4], 0, 0); /* TC0480SCP text layer */ return 0; } diff --git a/src/mame/video/gstriker.c b/src/mame/video/gstriker.c index 635802b9862..13a028c6c57 100644 --- a/src/mame/video/gstriker.c +++ b/src/mame/video/gstriker.c @@ -80,11 +80,11 @@ void gstriker_state::VS920A_set_gfx_region(int numchip, int gfx_region) m_VS920A[numchip].gfx_region = gfx_region; } -void gstriker_state::VS920A_draw(int numchip, bitmap_ind16& screen, const rectangle &cliprect, int priority) +void gstriker_state::VS920A_draw(int numchip, screen_device &screen, bitmap_ind16& bitmap, const rectangle &cliprect, int priority) { m_VS920A_cur_chip = &m_VS920A[numchip]; - m_VS920A_cur_chip->tmap->draw(screen, cliprect, 0, priority); + m_VS920A_cur_chip->tmap->draw(screen, bitmap, cliprect, 0, priority); } @@ -232,7 +232,7 @@ void gstriker_state::MB60553_set_gfx_region(int numchip, int gfx_region) } /* THIS IS STILL WRONG! */ -void gstriker_state::MB60553_draw(int numchip, bitmap_ind16& screen, const rectangle &cliprect, int priority) +void gstriker_state::MB60553_draw(int numchip, screen_device &screen, bitmap_ind16& bitmap, const rectangle &cliprect, int priority) { int line; rectangle clip; @@ -262,7 +262,7 @@ void gstriker_state::MB60553_draw(int numchip, bitmap_ind16& screen, const recta clip.min_y = clip.max_y = line; - m_MB60553_cur_chip->tmap->draw_roz(screen, clip, startx<<12,starty<<12, + m_MB60553_cur_chip->tmap->draw_roz(screen, bitmap, clip, startx<<12,starty<<12, incxx,0,0,incyy, 1, 0,priority); @@ -335,13 +335,13 @@ UINT32 gstriker_state::screen_update_gstriker(screen_device &screen, bitmap_ind1 // Sandwitched screen/sprite0/score/sprite1. Surely wrong, probably // needs sprite orthogonality - MB60553_draw(0, bitmap,cliprect, 0); + MB60553_draw(0, screen, bitmap,cliprect, 0); - m_spr->draw_sprites(m_CG10103_vram, 0x2000, machine(), bitmap, cliprect, 0x2, 0x0); + m_spr->draw_sprites(m_CG10103_vram, 0x2000, screen, bitmap, cliprect, 0x2, 0x0); - VS920A_draw(0, bitmap, cliprect, 0); + VS920A_draw(0, screen, bitmap, cliprect, 0); - m_spr->draw_sprites(m_CG10103_vram, 0x2000, machine(), bitmap, cliprect, 0x2, 0x2); + m_spr->draw_sprites(m_CG10103_vram, 0x2000, screen, bitmap, cliprect, 0x2, 0x2); #if 0 popmessage("%04x %04x %04x %04x %04x %04x %04x %04x", diff --git a/src/mame/video/gsword.c b/src/mame/video/gsword.c index f924d9f0368..9eee9ce46ab 100644 --- a/src/mame/video/gsword.c +++ b/src/mame/video/gsword.c @@ -203,7 +203,7 @@ void gsword_state::draw_sprites(bitmap_ind16 &bitmap, const rectangle &cliprect) UINT32 gsword_state::screen_update_gsword(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect) { - m_bg_tilemap->draw(bitmap, cliprect, 0, 0); + m_bg_tilemap->draw(screen, bitmap, cliprect, 0, 0); draw_sprites(bitmap, cliprect); return 0; } diff --git a/src/mame/video/gumbo.c b/src/mame/video/gumbo.c index 9505b214fb3..b3c9cc476fc 100644 --- a/src/mame/video/gumbo.c +++ b/src/mame/video/gumbo.c @@ -39,7 +39,7 @@ void gumbo_state::video_start() UINT32 gumbo_state::screen_update_gumbo(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect) { - m_bg_tilemap->draw(bitmap, cliprect, 0, 0); - m_fg_tilemap->draw(bitmap, cliprect, 0, 0); + m_bg_tilemap->draw(screen, bitmap, cliprect, 0, 0); + m_fg_tilemap->draw(screen, bitmap, cliprect, 0, 0); return 0; } diff --git a/src/mame/video/gunbustr.c b/src/mame/video/gunbustr.c index 12d5dc0e801..62da4d57744 100644 --- a/src/mame/video/gunbustr.c +++ b/src/mame/video/gunbustr.c @@ -54,7 +54,7 @@ Heavy use is made of sprite zooming. ********************************************************/ -void gunbustr_state::draw_sprites(bitmap_ind16 &bitmap,const rectangle &cliprect,const int *primasks,int x_offs,int y_offs) +void gunbustr_state::draw_sprites(screen_device &screen, bitmap_ind16 &bitmap,const rectangle &cliprect,const int *primasks,int x_offs,int y_offs) { UINT32 *spriteram32 = m_spriteram; UINT16 *spritemap = (UINT16 *)memregion("user1")->base(); @@ -189,7 +189,7 @@ logerror("Sprite number %04x had %02x invalid chunks\n",tilenum,bad_chunks); sprite_ptr->flipx,sprite_ptr->flipy, sprite_ptr->x,sprite_ptr->y, sprite_ptr->zoomx,sprite_ptr->zoomy, - machine().priority_bitmap,sprite_ptr->primask,0); + screen.priority(),sprite_ptr->primask,0); } } @@ -214,25 +214,25 @@ UINT32 gunbustr_state::screen_update_gunbustr(screen_device &screen, bitmap_ind1 layer[3] = (priority & 0x000f) >> 0; /* tells us which is top */ layer[4] = 4; /* text layer always over bg layers */ - machine().priority_bitmap.fill(0, cliprect); + screen.priority().fill(0, cliprect); /* We have to assume 2nd to bottom layer is always underneath sprites as pdrawgfx cannot yet cope with more than 4 layers */ #ifdef MAME_DEBUG - if (!machine().input().code_pressed (KEYCODE_Z)) m_tc0480scp->tilemap_draw(bitmap, cliprect, layer[0],TILEMAP_DRAW_OPAQUE, 0); - if (!machine().input().code_pressed (KEYCODE_X)) m_tc0480scp->tilemap_draw(bitmap, cliprect, layer[1], 0, 1); - if (!machine().input().code_pressed (KEYCODE_C)) m_tc0480scp->tilemap_draw(bitmap, cliprect, layer[2], 0, 2); - if (!machine().input().code_pressed (KEYCODE_V)) m_tc0480scp->tilemap_draw(bitmap, cliprect, layer[3], 0, 4); - if (!machine().input().code_pressed (KEYCODE_B)) m_tc0480scp->tilemap_draw(bitmap, cliprect, layer[4], 0, 8); - if (!machine().input().code_pressed (KEYCODE_N)) draw_sprites(bitmap, cliprect, primasks, 48, -116); + if (!machine().input().code_pressed (KEYCODE_Z)) m_tc0480scp->tilemap_draw(screen, bitmap, cliprect, layer[0],TILEMAP_DRAW_OPAQUE, 0); + if (!machine().input().code_pressed (KEYCODE_X)) m_tc0480scp->tilemap_draw(screen, bitmap, cliprect, layer[1], 0, 1); + if (!machine().input().code_pressed (KEYCODE_C)) m_tc0480scp->tilemap_draw(screen, bitmap, cliprect, layer[2], 0, 2); + if (!machine().input().code_pressed (KEYCODE_V)) m_tc0480scp->tilemap_draw(screen, bitmap, cliprect, layer[3], 0, 4); + if (!machine().input().code_pressed (KEYCODE_B)) m_tc0480scp->tilemap_draw(screen, bitmap, cliprect, layer[4], 0, 8); + if (!machine().input().code_pressed (KEYCODE_N)) draw_sprites(screen, bitmap, cliprect, primasks, 48, -116); #else - m_tc0480scp->tilemap_draw(bitmap, cliprect, layer[0], TILEMAP_DRAW_OPAQUE, 0); - m_tc0480scp->tilemap_draw(bitmap, cliprect, layer[1], 0, 1); - m_tc0480scp->tilemap_draw(bitmap, cliprect, layer[2], 0, 2); - m_tc0480scp->tilemap_draw(bitmap, cliprect, layer[3], 0, 4); - m_tc0480scp->tilemap_draw(bitmap, cliprect, layer[4], 0, 8); /* text layer */ - draw_sprites(bitmap, cliprect, primasks, 48, -116); + m_tc0480scp->tilemap_draw(screen, bitmap, cliprect, layer[0], TILEMAP_DRAW_OPAQUE, 0); + m_tc0480scp->tilemap_draw(screen, bitmap, cliprect, layer[1], 0, 1); + m_tc0480scp->tilemap_draw(screen, bitmap, cliprect, layer[2], 0, 2); + m_tc0480scp->tilemap_draw(screen, bitmap, cliprect, layer[3], 0, 4); + m_tc0480scp->tilemap_draw(screen, bitmap, cliprect, layer[4], 0, 8); /* text layer */ + draw_sprites(screen, bitmap, cliprect, primasks, 48, -116); #endif return 0; } diff --git a/src/mame/video/gundealr.c b/src/mame/video/gundealr.c index 00ee53ea7cf..ce89cb5c6e8 100644 --- a/src/mame/video/gundealr.c +++ b/src/mame/video/gundealr.c @@ -125,7 +125,7 @@ WRITE8_MEMBER(gundealr_state::gundealr_flipscreen_w) UINT32 gundealr_state::screen_update_gundealr(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect) { - m_bg_tilemap->draw(bitmap, cliprect, 0, 0); - m_fg_tilemap->draw(bitmap, cliprect, 0, 0); + m_bg_tilemap->draw(screen, bitmap, cliprect, 0, 0); + m_fg_tilemap->draw(screen, bitmap, cliprect, 0, 0); return 0; } diff --git a/src/mame/video/gunsmoke.c b/src/mame/video/gunsmoke.c index efd4de60712..2339383dba7 100644 --- a/src/mame/video/gunsmoke.c +++ b/src/mame/video/gunsmoke.c @@ -172,7 +172,7 @@ UINT32 gunsmoke_state::screen_update_gunsmoke(screen_device &screen, bitmap_ind1 m_bg_tilemap->set_scrolly(0, m_scrolly[0]); if (m_bgon) - m_bg_tilemap->draw(bitmap, cliprect, 0, 0); + m_bg_tilemap->draw(screen, bitmap, cliprect, 0, 0); else bitmap.fill(get_black_pen(machine()), cliprect); @@ -180,7 +180,7 @@ UINT32 gunsmoke_state::screen_update_gunsmoke(screen_device &screen, bitmap_ind1 draw_sprites(bitmap, cliprect); if (m_chon) - m_fg_tilemap->draw(bitmap, cliprect, 0, 0); + m_fg_tilemap->draw(screen, bitmap, cliprect, 0, 0); return 0; } diff --git a/src/mame/video/gyruss.c b/src/mame/video/gyruss.c index 599f0acc316..ea8b7e368b3 100644 --- a/src/mame/video/gyruss.c +++ b/src/mame/video/gyruss.c @@ -155,9 +155,9 @@ UINT32 gyruss_state::screen_update_gyruss(screen_device &screen, bitmap_ind16 &b machine().tilemap().set_flip_all((*m_flipscreen & 0x01) ? (TILEMAP_FLIPX | TILEMAP_FLIPY) : 0); } - m_tilemap->draw(bitmap, cliprect, TILEMAP_DRAW_OPAQUE, 0); + m_tilemap->draw(screen, bitmap, cliprect, TILEMAP_DRAW_OPAQUE, 0); draw_sprites(bitmap, cliprect, machine().gfx); - m_tilemap->draw(bitmap, cliprect, 0, 0); + m_tilemap->draw(screen, bitmap, cliprect, 0, 0); return 0; } diff --git a/src/mame/video/hanaawas.c b/src/mame/video/hanaawas.c index bdda392993a..af32222ec7a 100644 --- a/src/mame/video/hanaawas.c +++ b/src/mame/video/hanaawas.c @@ -107,6 +107,6 @@ void hanaawas_state::video_start() UINT32 hanaawas_state::screen_update_hanaawas(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect) { - m_bg_tilemap->draw(bitmap, cliprect, 0, 0); + m_bg_tilemap->draw(screen, bitmap, cliprect, 0, 0); return 0; } diff --git a/src/mame/video/hcastle.c b/src/mame/video/hcastle.c index 187480060d5..c2c37ee6f9e 100644 --- a/src/mame/video/hcastle.c +++ b/src/mame/video/hcastle.c @@ -197,14 +197,14 @@ WRITE8_MEMBER(hcastle_state::hcastle_pf2_control_w) /*****************************************************************************/ -void hcastle_state::draw_sprites(bitmap_ind16 &bitmap, const rectangle &cliprect, UINT8 *sbank, int bank ) +void hcastle_state::draw_sprites(bitmap_ind16 &bitmap, const rectangle &cliprect, bitmap_ind8 &priority_bitmap, UINT8 *sbank, int bank ) { k007121_device *k007121 = bank ? m_k007121_2 : m_k007121_1; address_space &space = machine().driver_data()->generic_space(); int base_color = (k007121->ctrlram_r(space, 6) & 0x30) * 2; int bank_base = (bank == 0) ? 0x4000 * (m_gfx_bank & 1) : 0; - k007121->sprites_draw(bitmap, cliprect, machine().gfx[bank], machine().colortable, sbank, base_color, 0, bank_base, (UINT32)-1); + k007121->sprites_draw(bitmap, cliprect, machine().gfx[bank], machine().colortable, sbank, base_color, 0, bank_base, priority_bitmap, (UINT32)-1); } /*****************************************************************************/ @@ -250,17 +250,17 @@ UINT32 hcastle_state::screen_update_hcastle(screen_device &screen, bitmap_ind16 // if (ctrl_1_3 & 0x20) if ((m_gfx_bank & 0x04) == 0) { - m_bg_tilemap->draw(bitmap, cliprect, 0, 0); - draw_sprites(bitmap, cliprect, m_spriteram->buffer(), 0); - draw_sprites(bitmap, cliprect, m_spriteram2->buffer(), 1); - m_fg_tilemap->draw(bitmap, cliprect, 0, 0); + m_bg_tilemap->draw(screen, bitmap, cliprect, 0, 0); + draw_sprites(bitmap, cliprect, screen.priority(), m_spriteram->buffer(), 0); + draw_sprites(bitmap, cliprect, screen.priority(), m_spriteram2->buffer(), 1); + m_fg_tilemap->draw(screen, bitmap, cliprect, 0, 0); } else { - m_bg_tilemap->draw(bitmap, cliprect, 0, 0); - m_fg_tilemap->draw(bitmap, cliprect, 0, 0); - draw_sprites(bitmap, cliprect, m_spriteram->buffer(), 0); - draw_sprites(bitmap, cliprect, m_spriteram2->buffer(), 1); + m_bg_tilemap->draw(screen, bitmap, cliprect, 0, 0); + m_fg_tilemap->draw(screen, bitmap, cliprect, 0, 0); + draw_sprites(bitmap, cliprect, screen.priority(), m_spriteram->buffer(), 0); + draw_sprites(bitmap, cliprect, screen.priority(), m_spriteram2->buffer(), 1); } return 0; } diff --git a/src/mame/video/hexion.c b/src/mame/video/hexion.c index 00e67736eba..617bfe3695b 100644 --- a/src/mame/video/hexion.c +++ b/src/mame/video/hexion.c @@ -159,7 +159,7 @@ WRITE8_MEMBER(hexion_state::hexion_gfxrom_select_w) UINT32 hexion_state::screen_update_hexion(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect) { - m_bg_tilemap[1]->draw(bitmap, cliprect, 0,0); - m_bg_tilemap[0]->draw(bitmap, cliprect, 0,0); + m_bg_tilemap[1]->draw(screen, bitmap, cliprect, 0,0); + m_bg_tilemap[0]->draw(screen, bitmap, cliprect, 0,0); return 0; } diff --git a/src/mame/video/higemaru.c b/src/mame/video/higemaru.c index 657fa9bada9..8ab7445034a 100644 --- a/src/mame/video/higemaru.c +++ b/src/mame/video/higemaru.c @@ -142,7 +142,7 @@ void higemaru_state::draw_sprites( bitmap_ind16 &bitmap, const rectangle &clipre UINT32 higemaru_state::screen_update_higemaru(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect) { - m_bg_tilemap->draw(bitmap, cliprect, 0, 0); + m_bg_tilemap->draw(screen, bitmap, cliprect, 0, 0); draw_sprites(bitmap, cliprect); return 0; } diff --git a/src/mame/video/himesiki.c b/src/mame/video/himesiki.c index 88936e789cf..dab386b5313 100644 --- a/src/mame/video/himesiki.c +++ b/src/mame/video/himesiki.c @@ -116,7 +116,7 @@ UINT32 himesiki_state::screen_update_himesiki(screen_device &screen, bitmap_ind1 int x = -(m_scrollx[0] << 8 | m_scrollx[1]) & 0x1ff; m_bg_tilemap->set_scrolldx(x, x); - m_bg_tilemap->draw(bitmap, cliprect, TILEMAP_DRAW_OPAQUE, 0); + m_bg_tilemap->draw(screen, bitmap, cliprect, TILEMAP_DRAW_OPAQUE, 0); himesiki_draw_sprites(bitmap, cliprect); return 0; diff --git a/src/mame/video/hng64.c b/src/mame/video/hng64.c index eb35542917a..3b82aec7d31 100644 --- a/src/mame/video/hng64.c +++ b/src/mame/video/hng64.c @@ -206,9 +206,9 @@ static void pdrawgfxzoom_transpen_additive(bitmap_rgb32 &dest, const rectangle & * 0x0e0 in Samurai Shodown/Xrally games, 0x1c0 in all the others, zooming factor? */ -static void draw_sprites(running_machine &machine, bitmap_rgb32 &bitmap, const rectangle &cliprect) +static void draw_sprites(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect) { - hng64_state *state = machine.driver_data(); + hng64_state *state = screen.machine().driver_data(); gfx_element *gfx; UINT32 *source = state->m_spriteram; UINT32 *finish = state->m_spriteram + 0xc000/4; @@ -300,11 +300,11 @@ static void draw_sprites(running_machine &machine, bitmap_rgb32 &bitmap, const r if (state->m_spriteregs[0] & 0x00800000) //bpp switch { - gfx= machine.gfx[4]; + gfx= screen.machine().gfx[4]; } else { - gfx= machine.gfx[5]; + gfx= screen.machine().gfx[5]; tileno>>=1; pal&=0xf; } @@ -354,8 +354,8 @@ static void draw_sprites(running_machine &machine, bitmap_rgb32 &bitmap, const r if (!chaini) { - if (!blend) pdrawgfxzoom_transpen(bitmap,cliprect,gfx,tileno,pal,xflip,yflip,drawx,drawy,zoomx,zoomy/*0x10000*/,machine.priority_bitmap, 0,0); - else pdrawgfxzoom_transpen_additive(bitmap,cliprect,gfx,tileno,pal,xflip,yflip,drawx,drawy,zoomx,zoomy/*0x10000*/,machine.priority_bitmap, 0,0); + if (!blend) pdrawgfxzoom_transpen(bitmap,cliprect,gfx,tileno,pal,xflip,yflip,drawx,drawy,zoomx,zoomy/*0x10000*/,screen.priority(), 0,0); + else pdrawgfxzoom_transpen_additive(bitmap,cliprect,gfx,tileno,pal,xflip,yflip,drawx,drawy,zoomx,zoomy/*0x10000*/,screen.priority(), 0,0); tileno++; } else // inline chain mode, used by ss64 @@ -365,17 +365,17 @@ static void draw_sprites(running_machine &machine, bitmap_rgb32 &bitmap, const r if (state->m_spriteregs[0] & 0x00800000) //bpp switch { - gfx= machine.gfx[4]; + gfx= screen.machine().gfx[4]; } else { - gfx= machine.gfx[5]; + gfx= screen.machine().gfx[5]; tileno>>=1; pal&=0xf; } - if (!blend) pdrawgfxzoom_transpen(bitmap,cliprect,gfx,tileno,pal,xflip,yflip,drawx,drawy,zoomx,zoomy/*0x10000*/,machine.priority_bitmap, 0,0); - else pdrawgfxzoom_transpen_additive(bitmap,cliprect,gfx,tileno,pal,xflip,yflip,drawx,drawy,zoomx,zoomy/*0x10000*/,machine.priority_bitmap, 0,0); + if (!blend) pdrawgfxzoom_transpen(bitmap,cliprect,gfx,tileno,pal,xflip,yflip,drawx,drawy,zoomx,zoomy/*0x10000*/,screen.priority(), 0,0); + else pdrawgfxzoom_transpen_additive(bitmap,cliprect,gfx,tileno,pal,xflip,yflip,drawx,drawy,zoomx,zoomy/*0x10000*/,screen.priority(), 0,0); source +=8; } @@ -774,11 +774,11 @@ do { *(UINT32 *)dest = alpha_blend_r32(*(UINT32 *)dest, clut[INPUT_VAL], alpha); \ } while (0) -static void hng64_tilemap_draw_roz_core(running_machine& machine, tilemap_t *tmap, const blit_parameters *blit, +static void hng64_tilemap_draw_roz_core(screen_device &screen, tilemap_t *tmap, const blit_parameters *blit, UINT32 startx, UINT32 starty, int incxx, int incxy, int incyx, int incyy, int wraparound) { - const pen_t *clut = &machine.pens[blit->tilemap_priority_code >> 16]; - bitmap_ind8 &priority_bitmap = machine.priority_bitmap; + const pen_t *clut = &screen.machine().pens[blit->tilemap_priority_code >> 16]; + bitmap_ind8 &priority_bitmap = screen.priority(); bitmap_rgb32 &destbitmap = *blit->bitmap; bitmap_ind16 &srcbitmap = tmap->pixmap(); bitmap_ind8 &flagsmap = tmap->flagsmap(); @@ -951,7 +951,7 @@ static void hng64_tilemap_draw_roz_core(running_machine& machine, tilemap_t *tma -static void hng64_tilemap_draw_roz_primask(running_machine& machine, bitmap_rgb32 &dest, const rectangle &cliprect, tilemap_t *tmap, +static void hng64_tilemap_draw_roz_primask(screen_device &screen, bitmap_rgb32 &dest, const rectangle &cliprect, tilemap_t *tmap, UINT32 startx, UINT32 starty, int incxx, int incxy, int incyx, int incyy, int wraparound, UINT32 flags, UINT8 priority, UINT8 priority_mask, hng64trans_t drawformat) { @@ -974,23 +974,23 @@ g_profiler.start(PROFILER_TILEMAP_DRAW_ROZ); tmap->pixmap(); /* then do the roz copy */ - hng64_tilemap_draw_roz_core(machine, tmap, &blit, startx, starty, incxx, incxy, incyx, incyy, wraparound); + hng64_tilemap_draw_roz_core(screen, tmap, &blit, startx, starty, incxx, incxy, incyx, incyy, wraparound); g_profiler.stop(); } -INLINE void hng64_tilemap_draw_roz(running_machine& machine, bitmap_rgb32 &dest, const rectangle &cliprect, tilemap_t *tmap, +INLINE void hng64_tilemap_draw_roz(screen_device &screen, bitmap_rgb32 &dest, const rectangle &cliprect, tilemap_t *tmap, UINT32 startx, UINT32 starty, int incxx, int incxy, int incyx, int incyy, int wraparound, UINT32 flags, UINT8 priority, hng64trans_t drawformat) { - hng64_tilemap_draw_roz_primask(machine, dest, cliprect, tmap, startx, starty, incxx, incxy, incyx, incyy, wraparound, flags, priority, 0xff, drawformat); + hng64_tilemap_draw_roz_primask(screen, dest, cliprect, tmap, startx, starty, incxx, incxy, incyx, incyy, wraparound, flags, priority, 0xff, drawformat); } -static void hng64_drawtilemap(running_machine& machine, bitmap_rgb32 &bitmap, const rectangle &cliprect, int tm ) +static void hng64_drawtilemap(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect, int tm ) { - hng64_state *state = machine.driver_data(); + hng64_state *state = screen.machine().driver_data(); UINT32 *hng64_videoregs = state->m_videoregs; UINT32 *hng64_videoram = state->m_videoram; tilemap_t* tilemap = 0; @@ -1102,7 +1102,7 @@ static void hng64_drawtilemap(running_machine& machine, bitmap_rgb32 &bitmap, co INT32 ytopleft,ymiddle; int xinc,yinc; - const rectangle &visarea = machine.primary_screen->visible_area(); + const rectangle &visarea = screen.visible_area(); clip = visarea; if (global_tileregs&0x04000000) // globally selects alt scroll register layout??? @@ -1153,7 +1153,7 @@ static void hng64_drawtilemap(running_machine& machine, bitmap_rgb32 &bitmap, co xinc = (xmiddle - xtopleft) / 512; yinc = (ymiddle - ytopleft) / 512; - hng64_tilemap_draw_roz(machine, bitmap,clip,tilemap,xtopleft,ytopleft, + hng64_tilemap_draw_roz(screen, bitmap,clip,tilemap,xtopleft,ytopleft, xinc<<1,0,0,yinc<<1, 1, 0,0, debug_blend_enabled?HNG64_TILEMAP_ADDITIVE:HNG64_TILEMAP_NORMAL); @@ -1223,7 +1223,7 @@ static void hng64_drawtilemap(running_machine& machine, bitmap_rgb32 &bitmap, co bitmap_ind16 &bm = tilemap->pixmap(); int bmheight = bm.height(); int bmwidth = bm.width(); - const pen_t *paldata = machine.pens; + const pen_t *paldata = screen.machine().pens; UINT32* dstptr; UINT16* srcptr; int xx,yy; @@ -1264,7 +1264,7 @@ static void hng64_drawtilemap(running_machine& machine, bitmap_rgb32 &bitmap, co } else { - hng64_tilemap_draw_roz(machine, bitmap,cliprect,tilemap,xtopleft,ytopleft, + hng64_tilemap_draw_roz(screen, bitmap,cliprect,tilemap,xtopleft,ytopleft, xinc<<1,yinc2<<1,xinc2<<1,yinc<<1, 1, 0,0, debug_blend_enabled?HNG64_TILEMAP_ADDITIVE:HNG64_TILEMAP_NORMAL); @@ -1319,7 +1319,7 @@ static void hng64_drawtilemap(running_machine& machine, bitmap_rgb32 &bitmap, co bitmap_ind16 &bm = tilemap->pixmap(); int bmheight = bm.height(); int bmwidth = bm.width(); - const pen_t *paldata = machine.pens; + const pen_t *paldata = screen.machine().pens; UINT32* dstptr; UINT16* srcptr; int xx,yy; @@ -1357,7 +1357,7 @@ static void hng64_drawtilemap(running_machine& machine, bitmap_rgb32 &bitmap, co } else { - hng64_tilemap_draw_roz(machine, bitmap,cliprect,tilemap,xtopleft,ytopleft, + hng64_tilemap_draw_roz(screen, bitmap,cliprect,tilemap,xtopleft,ytopleft, xinc<<1,0,0,yinc<<1, 1, 0,0, debug_blend_enabled?HNG64_TILEMAP_ADDITIVE:HNG64_TILEMAP_NORMAL); @@ -1438,15 +1438,15 @@ UINT32 hng64_state::screen_update_hng64(screen_device &screen, bitmap_rgb32 &bit // press in sams64_2 attract mode for a nice debug screen from the game // not sure how functional it is, and it doesn't appear to test everything (rowscroll modes etc.) // but it could be useful - if ( machine().input().code_pressed_once(KEYCODE_L) ) + if ( screen.machine().input().code_pressed_once(KEYCODE_L) ) { address_space &space = m_maincpu->space(AS_PROGRAM); space.write_byte(0x2f27c8, 0x2); } #endif - bitmap.fill(hng64_tcram[0x50/4] & 0x10000 ? get_black_pen(machine()) : machine().pens[0], cliprect); //FIXME: Is the register correct? check with HW tests - machine().priority_bitmap.fill(0x00, cliprect); + bitmap.fill(hng64_tcram[0x50/4] & 0x10000 ? get_black_pen(screen.machine()) : screen.machine().pens[0], cliprect); //FIXME: Is the register correct? check with HW tests + screen.priority().fill(0x00, cliprect); if (m_screen_dis) return 0; @@ -1516,10 +1516,10 @@ UINT32 hng64_state::screen_update_hng64(screen_device &screen, bitmap_rgb32 &bit //hng64_mark_all_tiles_dirty(this, 2); //hng64_mark_all_tiles_dirty(this, 3); - hng64_drawtilemap(machine(),bitmap,cliprect, 3); - hng64_drawtilemap(machine(),bitmap,cliprect, 2); - hng64_drawtilemap(machine(),bitmap,cliprect, 1); - hng64_drawtilemap(machine(),bitmap,cliprect, 0); + hng64_drawtilemap(screen,bitmap,cliprect, 3); + hng64_drawtilemap(screen,bitmap,cliprect, 2); + hng64_drawtilemap(screen,bitmap,cliprect, 1); + hng64_drawtilemap(screen,bitmap,cliprect, 0); // 3d really shouldn't be last, but you don't see some cool stuff right now if it's put before sprites. { @@ -1543,7 +1543,7 @@ UINT32 hng64_state::screen_update_hng64(screen_device &screen, bitmap_rgb32 &bit //printf("NEW FRAME!\n"); /* Debug - ajg */ } - draw_sprites(machine(), bitmap,cliprect); + draw_sprites(screen, bitmap,cliprect); if(0) transition_control(machine(), bitmap, cliprect); diff --git a/src/mame/video/holeland.c b/src/mame/video/holeland.c index b18e98d75fe..9b0edc18097 100644 --- a/src/mame/video/holeland.c +++ b/src/mame/video/holeland.c @@ -181,15 +181,15 @@ void holeland_state::crzrally_draw_sprites( bitmap_ind16 &bitmap,const rectangle UINT32 holeland_state::screen_update_holeland(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect) { /*m_bg_tilemap->mark_all_dirty(); */ - m_bg_tilemap->draw(bitmap, cliprect, TILEMAP_DRAW_LAYER1, 0); + m_bg_tilemap->draw(screen, bitmap, cliprect, TILEMAP_DRAW_LAYER1, 0); holeland_draw_sprites(bitmap, cliprect); - m_bg_tilemap->draw(bitmap, cliprect, TILEMAP_DRAW_LAYER0, 0); + m_bg_tilemap->draw(screen, bitmap, cliprect, TILEMAP_DRAW_LAYER0, 0); return 0; } UINT32 holeland_state::screen_update_crzrally(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect) { - m_bg_tilemap->draw(bitmap, cliprect, 0, 0); + m_bg_tilemap->draw(screen, bitmap, cliprect, 0, 0); crzrally_draw_sprites(bitmap, cliprect); return 0; } diff --git a/src/mame/video/homedata.c b/src/mame/video/homedata.c index c00e25d7b99..f4c18535e03 100644 --- a/src/mame/video/homedata.c +++ b/src/mame/video/homedata.c @@ -829,8 +829,8 @@ UINT32 homedata_state::screen_update_mrokumei(screen_device &screen, bitmap_ind1 m_bg_tilemap[m_visible_page][0]->set_scrollx(0, m_vreg[0xc] << 1); - m_bg_tilemap[m_visible_page][0]->draw(bitmap, cliprect, 0, 0); - m_bg_tilemap[m_visible_page][1]->draw(bitmap, cliprect, 0, 0); + m_bg_tilemap[m_visible_page][0]->draw(screen, bitmap, cliprect, 0, 0); + m_bg_tilemap[m_visible_page][1]->draw(screen, bitmap, cliprect, 0, 0); return 0; } @@ -910,7 +910,7 @@ UINT32 homedata_state::screen_update_reikaids(screen_device &screen, bitmap_ind1 pri = (m_blitter_bank & 0x70) >> 4; for (i = 0; i < 4; i++) - m_bg_tilemap[m_visible_page][pritable[m_priority][pri][3 - i]]->draw(bitmap, cliprect, 0, 0); + m_bg_tilemap[m_visible_page][pritable[m_priority][pri][3 - i]]->draw(screen, bitmap, cliprect, 0, 0); return 0; } @@ -988,8 +988,8 @@ UINT32 homedata_state::screen_update_pteacher(screen_device &screen, bitmap_ind1 m_bg_tilemap[m_visible_page][0]->set_scrollx(0, scroll_high * 8 + scroll_low); m_bg_tilemap[m_visible_page][1]->set_scrollx(0, scroll_high * 8 + scroll_low); - m_bg_tilemap[m_visible_page][0]->draw(bitmap, cliprect, 0, 0); - m_bg_tilemap[m_visible_page][1]->draw(bitmap, cliprect, 0, 0); + m_bg_tilemap[m_visible_page][0]->draw(screen, bitmap, cliprect, 0, 0); + m_bg_tilemap[m_visible_page][1]->draw(screen, bitmap, cliprect, 0, 0); return 0; } diff --git a/src/mame/video/homerun.c b/src/mame/video/homerun.c index b12df85a1bf..60b466c9cab 100644 --- a/src/mame/video/homerun.c +++ b/src/mame/video/homerun.c @@ -142,7 +142,7 @@ UINT32 homerun_state::screen_update_homerun(screen_device &screen, bitmap_ind16 m_tilemap->set_scrolly(0, m_scrolly); m_tilemap->set_scrollx(0, m_scrollx); - m_tilemap->draw(bitmap, cliprect, 0, 0); + m_tilemap->draw(screen, bitmap, cliprect, 0, 0); draw_sprites(bitmap, cliprect); return 0; diff --git a/src/mame/video/hyperspt.c b/src/mame/video/hyperspt.c index e38b792b7fe..2fc83364c1a 100644 --- a/src/mame/video/hyperspt.c +++ b/src/mame/video/hyperspt.c @@ -180,7 +180,7 @@ UINT32 hyperspt_state::screen_update_hyperspt(screen_device &screen, bitmap_ind1 m_bg_tilemap->set_scrollx(row, scrollx); } - m_bg_tilemap->draw(bitmap, cliprect, 0, 0); + m_bg_tilemap->draw(screen, bitmap, cliprect, 0, 0); draw_sprites(bitmap, cliprect); return 0; } diff --git a/src/mame/video/hyprduel.c b/src/mame/video/hyprduel.c index 008ec2eaaef..dc213b1aab0 100644 --- a/src/mame/video/hyprduel.c +++ b/src/mame/video/hyprduel.c @@ -454,7 +454,7 @@ VIDEO_START_MEMBER(hyprduel_state,magerror_14220) /* Draw sprites */ -void hyprduel_state::draw_sprites( bitmap_ind16 &bitmap, const rectangle &cliprect ) +void hyprduel_state::draw_sprites( screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect ) { UINT8 *base_gfx4 = m_expanded_gfx1; UINT8 *base_gfx8 = memregion("gfx1")->base(); @@ -560,7 +560,7 @@ void hyprduel_state::draw_sprites( bitmap_ind16 &bitmap, const rectangle &clipre flipx, flipy, x, y, zoom, zoom, - machine().priority_bitmap,primask[pri], 255); + screen.priority(),primask[pri], 255); } else { @@ -576,7 +576,7 @@ void hyprduel_state::draw_sprites( bitmap_ind16 &bitmap, const rectangle &clipre flipx, flipy, x, y, zoom, zoom, - machine().priority_bitmap,primask[pri], 15); + screen.priority(),primask[pri], 15); } #if 0 { /* Display priority + zoom on each sprite */ @@ -624,7 +624,7 @@ WRITE16_MEMBER(hyprduel_state::hyprduel_scrollreg_init_w) } -void hyprduel_state::draw_layers( bitmap_ind16 &bitmap, const rectangle &cliprect, int pri, int layers_ctrl ) +void hyprduel_state::draw_layers( screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect, int pri, int layers_ctrl ) { UINT16 layers_pri = m_videoregs[0x10/2]; int layer; @@ -635,7 +635,7 @@ void hyprduel_state::draw_layers( bitmap_ind16 &bitmap, const rectangle &cliprec if ( pri == ((layers_pri >> (layer*2)) & 3) ) { if (layers_ctrl & (1 << layer)) // for debug - m_bg_tilemap[layer]->draw(bitmap, cliprect, 0, 1 << (3 - pri)); + m_bg_tilemap[layer]->draw(screen, bitmap, cliprect, 0, 1 << (3 - pri)); } } } @@ -693,7 +693,7 @@ UINT32 hyprduel_state::screen_update_hyprduel(screen_device &screen, bitmap_ind1 m_sprite_yoffs = m_videoregs[0x04 / 2] - screen.height() / 2 - m_sprite_yoffs_sub; /* The background color is selected by a register */ - machine().priority_bitmap.fill(0, cliprect); + screen.priority().fill(0, cliprect); bitmap.fill((m_videoregs[0x12 / 2] & 0x0fff) + 0x1000, cliprect); /* Screen Control Register: @@ -732,10 +732,10 @@ if (machine().input().code_pressed(KEYCODE_Z)) #endif for (pri = 3; pri >= 0; pri--) - draw_layers(bitmap, cliprect, pri, layers_ctrl); + draw_layers(screen, bitmap, cliprect, pri, layers_ctrl); if (layers_ctrl & 0x08) - draw_sprites(bitmap, cliprect); + draw_sprites(screen, bitmap, cliprect); return 0; } diff --git a/src/mame/video/inufuku.c b/src/mame/video/inufuku.c index ba9a817b9b5..0a7102a9aab 100644 --- a/src/mame/video/inufuku.c +++ b/src/mame/video/inufuku.c @@ -139,7 +139,7 @@ UINT32 inufuku_state::screen_update_inufuku(screen_device &screen, bitmap_ind16 int i; bitmap.fill(get_black_pen(machine()), cliprect); - machine().priority_bitmap.fill(0); + screen.priority().fill(0); if (m_bg_raster) { @@ -153,13 +153,13 @@ UINT32 inufuku_state::screen_update_inufuku(screen_device &screen, bitmap_ind16 m_bg_tilemap->set_scrollx(0, m_bg_scrollx); } m_bg_tilemap->set_scrolly(0, m_bg_scrolly); - m_bg_tilemap->draw(bitmap, cliprect, 0, 0); + m_bg_tilemap->draw(screen, bitmap, cliprect, 0, 0); m_tx_tilemap->set_scrollx(0, m_tx_scrollx); m_tx_tilemap->set_scrolly(0, m_tx_scrolly); - m_tx_tilemap->draw(bitmap, cliprect, 0, 4); + m_tx_tilemap->draw(screen, bitmap, cliprect, 0, 4); - m_spr->draw_sprites( m_spriteram1_old, m_spriteram1.bytes(), machine(), bitmap, cliprect ); + m_spr->draw_sprites( m_spriteram1_old, m_spriteram1.bytes(), screen, bitmap, cliprect ); return 0; } diff --git a/src/mame/video/iqblock.c b/src/mame/video/iqblock.c index 844e7539bc2..210d8fb6616 100644 --- a/src/mame/video/iqblock.c +++ b/src/mame/video/iqblock.c @@ -86,8 +86,8 @@ WRITE8_MEMBER(iqblock_state::iqblock_fgscroll_w) UINT32 iqblock_state::screen_update_iqblock(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect) { if (!m_videoenable) return 0; - m_fg_tilemap->draw(bitmap, cliprect, 0,0); - m_bg_tilemap->draw(bitmap, cliprect, 0,0); + m_fg_tilemap->draw(screen, bitmap, cliprect, 0,0); + m_bg_tilemap->draw(screen, bitmap, cliprect, 0,0); return 0; } diff --git a/src/mame/video/ironhors.c b/src/mame/video/ironhors.c index 8121387afde..7c1484c126a 100644 --- a/src/mame/video/ironhors.c +++ b/src/mame/video/ironhors.c @@ -240,7 +240,7 @@ UINT32 ironhors_state::screen_update_ironhors(screen_device &screen, bitmap_ind1 for (row = 0; row < 32; row++) m_bg_tilemap->set_scrollx(row, m_scroll[row]); - m_bg_tilemap->draw(bitmap, cliprect, 0, 0); + m_bg_tilemap->draw(screen, bitmap, cliprect, 0, 0); draw_sprites(bitmap, cliprect); return 0; } @@ -349,7 +349,7 @@ UINT32 ironhors_state::screen_update_farwest(screen_device &screen, bitmap_ind16 for (row = 0; row < 32; row++) m_bg_tilemap->set_scrollx(row, m_scroll[row]); - m_bg_tilemap->draw(bitmap, cliprect, 0, 0); + m_bg_tilemap->draw(screen, bitmap, cliprect, 0, 0); farwest_draw_sprites(bitmap, cliprect); return 0; } diff --git a/src/mame/video/jack.c b/src/mame/video/jack.c index ad6c214ea3c..73079338a30 100644 --- a/src/mame/video/jack.c +++ b/src/mame/video/jack.c @@ -99,7 +99,7 @@ void jack_state::jack_draw_sprites( bitmap_ind16 &bitmap, const rectangle &clipr UINT32 jack_state::screen_update_jack(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect) { - m_bg_tilemap->draw(bitmap, cliprect, 0, 0); + m_bg_tilemap->draw(screen, bitmap, cliprect, 0, 0); jack_draw_sprites(bitmap, cliprect); return 0; } @@ -108,7 +108,7 @@ UINT32 jack_state::screen_update_jack(screen_device &screen, bitmap_ind16 &bitma UINT32 jack_state::screen_update_striv(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect) { // no sprites - m_bg_tilemap->draw(bitmap, cliprect, 0, 0); + m_bg_tilemap->draw(screen, bitmap, cliprect, 0, 0); return 0; } @@ -219,7 +219,7 @@ void jack_state::joinem_draw_sprites( bitmap_ind16 &bitmap, const rectangle &cli UINT32 jack_state::screen_update_joinem(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect) { - m_bg_tilemap->draw(bitmap, cliprect, 0, 0); + m_bg_tilemap->draw(screen, bitmap, cliprect, 0, 0); joinem_draw_sprites(bitmap, cliprect); return 0; } diff --git a/src/mame/video/jackal.c b/src/mame/video/jackal.c index 5f222a57854..26455304437 100644 --- a/src/mame/video/jackal.c +++ b/src/mame/video/jackal.c @@ -77,7 +77,7 @@ void jackal_state::video_start() m_bg_tilemap = &machine().tilemap().create(tilemap_get_info_delegate(FUNC(jackal_state::get_bg_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 32, 32); } -void jackal_state::draw_background( bitmap_ind16 &bitmap, const rectangle &cliprect ) +void jackal_state::draw_background( screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect ) { UINT8 *RAM = memregion("master")->base(); int i; @@ -109,7 +109,7 @@ void jackal_state::draw_background( bitmap_ind16 &bitmap, const rectangle &clipr } } - m_bg_tilemap->draw(bitmap, cliprect, 0, 0); + m_bg_tilemap->draw(screen, bitmap, cliprect, 0, 0); } #define DRAW_SPRITE(bank, code, sx, sy) drawgfx_transpen(bitmap, cliprect, machine().gfx[bank], code, color, flipx, flipy, sx, sy, 0); @@ -221,7 +221,7 @@ void jackal_state::draw_sprites( bitmap_ind16 &bitmap, const rectangle &cliprect UINT32 jackal_state::screen_update_jackal(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect) { set_pens(); - draw_background(bitmap, cliprect); + draw_background(screen, bitmap, cliprect); draw_sprites(bitmap, cliprect); return 0; } diff --git a/src/mame/video/jailbrek.c b/src/mame/video/jailbrek.c index 6c15111cc7b..25326849435 100644 --- a/src/mame/video/jailbrek.c +++ b/src/mame/video/jailbrek.c @@ -116,7 +116,7 @@ UINT32 jailbrek_state::screen_update_jailbrek(screen_device &screen, bitmap_ind1 m_bg_tilemap->set_scrollx(i, ((m_scroll_x[i + 32] << 8) + m_scroll_x[i])); } - m_bg_tilemap->draw(bitmap, cliprect, 0, 0); + m_bg_tilemap->draw(screen, bitmap, cliprect, 0, 0); draw_sprites(bitmap, cliprect); return 0; } diff --git a/src/mame/video/k001604.c b/src/mame/video/k001604.c index 13a33344f12..5110d61b7ac 100644 --- a/src/mame/video/k001604.c +++ b/src/mame/video/k001604.c @@ -291,7 +291,7 @@ void k001604_device::draw_back_layer( bitmap_rgb32 &bitmap, const rectangle &cli } } -void k001604_device::draw_front_layer( bitmap_rgb32 &bitmap, const rectangle &cliprect ) +void k001604_device::draw_front_layer( screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect ) { m_layer_8x8[0]->set_scrollx(-cliprect.min_x); m_layer_8x8[0]->set_scrolly(-cliprect.min_y); @@ -300,7 +300,7 @@ void k001604_device::draw_front_layer( bitmap_rgb32 &bitmap, const rectangle &cl m_layer_8x8[1]->set_scrolly(-cliprect.min_y); //m_layer_8x8[1]->draw(bitmap, cliprect, 0,0); - m_layer_8x8[0]->draw(bitmap, cliprect, 0,0); + m_layer_8x8[0]->draw(screen, bitmap, cliprect, 0,0); } READ32_MEMBER( k001604_device::tile_r ) diff --git a/src/mame/video/k001604.h b/src/mame/video/k001604.h index 97e22464a83..c7a4b0134b4 100644 --- a/src/mame/video/k001604.h +++ b/src/mame/video/k001604.h @@ -22,7 +22,7 @@ public: ~k001604_device() {} void draw_back_layer( bitmap_rgb32 &bitmap, const rectangle &cliprect ); - void draw_front_layer( bitmap_rgb32 &bitmap, const rectangle &cliprect ); + void draw_front_layer( screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect ); DECLARE_WRITE32_MEMBER( tile_w ); DECLARE_READ32_MEMBER( tile_r ); DECLARE_WRITE32_MEMBER( char_w ); diff --git a/src/mame/video/k007121.c b/src/mame/video/k007121.c index 8918bc78055..d84520476df 100644 --- a/src/mame/video/k007121.c +++ b/src/mame/video/k007121.c @@ -224,10 +224,9 @@ WRITE8_MEMBER( k007121_device::ctrl_w ) */ void k007121_device::sprites_draw( bitmap_ind16 &bitmap, const rectangle &cliprect, gfx_element *gfx, colortable_t *ctable, - const UINT8 *source, int base_color, int global_x_offset, int bank_base, UINT32 pri_mask ) + const UINT8 *source, int base_color, int global_x_offset, int bank_base, bitmap_ind8 &priority_bitmap, UINT32 pri_mask ) { // gfx_element *gfx = gfxs[chip]; - bitmap_ind8 &priority_bitmap = gfx->machine().priority_bitmap; int flipscreen = m_flipscreen; int i, num, inc, offs[5]; int is_flakatck = (ctable == NULL); diff --git a/src/mame/video/k007121.h b/src/mame/video/k007121.h index 596903e0d53..4b1833c5a73 100644 --- a/src/mame/video/k007121.h +++ b/src/mame/video/k007121.h @@ -13,7 +13,7 @@ public: /* shall we move source in the interface? */ /* also notice that now we directly pass *gfx[chip] instead of **gfx !! */ - void sprites_draw( bitmap_ind16 &bitmap, const rectangle &cliprect, gfx_element *gfx, colortable_t *ctable, const UINT8 *source, int base_color, int global_x_offset, int bank_base, UINT32 pri_mask ); + void sprites_draw( bitmap_ind16 &bitmap, const rectangle &cliprect, gfx_element *gfx, colortable_t *ctable, const UINT8 *source, int base_color, int global_x_offset, int bank_base, bitmap_ind8 &priority_bitmap, UINT32 pri_mask ); protected: // device-level overrides diff --git a/src/mame/video/k007342.c b/src/mame/video/k007342.c index 9a17dc76f28..76015522b08 100644 --- a/src/mame/video/k007342.c +++ b/src/mame/video/k007342.c @@ -242,9 +242,9 @@ void k007342_device::tilemap_update( ) #endif } -void k007342_device::tilemap_draw( bitmap_ind16 &bitmap, const rectangle &cliprect, int num, int flags, UINT32 priority ) +void k007342_device::tilemap_draw( screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect, int num, int flags, UINT32 priority ) { - m_tilemap[num]->draw(bitmap, cliprect, flags, priority); + m_tilemap[num]->draw(screen, bitmap, cliprect, flags, priority); } int k007342_device::is_int_enabled( ) diff --git a/src/mame/video/k007342.h b/src/mame/video/k007342.h index 45f6f22b4d7..c4074cd4014 100644 --- a/src/mame/video/k007342.h +++ b/src/mame/video/k007342.h @@ -24,7 +24,7 @@ public: DECLARE_WRITE8_MEMBER( vreg_w ); void tilemap_update(); - void tilemap_draw(bitmap_ind16 &bitmap, const rectangle &cliprect, int num, int flags, UINT32 priority); + void tilemap_draw(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect, int num, int flags, UINT32 priority); int is_int_enabled(); protected: diff --git a/src/mame/video/k037122.c b/src/mame/video/k037122.c index 2d19817a955..b8805c194dc 100644 --- a/src/mame/video/k037122.c +++ b/src/mame/video/k037122.c @@ -104,7 +104,7 @@ TILE_GET_INFO_MEMBER(k037122_device::tile_info_layer1) } -void k037122_device::tile_draw( bitmap_rgb32 &bitmap, const rectangle &cliprect ) +void k037122_device::tile_draw( screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect ) { const rectangle &visarea = m_screen->visible_area(); @@ -112,13 +112,13 @@ void k037122_device::tile_draw( bitmap_rgb32 &bitmap, const rectangle &cliprect { m_layer[1]->set_scrolldx(visarea.min_x, visarea.min_x); m_layer[1]->set_scrolldy(visarea.min_y, visarea.min_y); - m_layer[1]->draw(bitmap, cliprect, 0, 0); + m_layer[1]->draw(screen, bitmap, cliprect, 0, 0); } else { m_layer[0]->set_scrolldx(visarea.min_x, visarea.min_x); m_layer[0]->set_scrolldy(visarea.min_y, visarea.min_y); - m_layer[0]->draw(bitmap, cliprect, 0, 0); + m_layer[0]->draw(screen, bitmap, cliprect, 0, 0); } } diff --git a/src/mame/video/k037122.h b/src/mame/video/k037122.h index 05d4117a1e7..5be964bf79c 100644 --- a/src/mame/video/k037122.h +++ b/src/mame/video/k037122.h @@ -11,7 +11,7 @@ public: static void static_set_gfx_index(device_t &device, int index) { downcast(device).m_gfx_index = index; } - void tile_draw( bitmap_rgb32 &bitmap, const rectangle &cliprect ); + void tile_draw( screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect ); DECLARE_READ32_MEMBER( sram_r ); DECLARE_WRITE32_MEMBER( sram_w ); DECLARE_READ32_MEMBER( char_r ); diff --git a/src/mame/video/k051316.c b/src/mame/video/k051316.c index c5ca810d6af..d9a9185eff2 100644 --- a/src/mame/video/k051316.c +++ b/src/mame/video/k051316.c @@ -272,7 +272,7 @@ void k051316_device::get_tile_info( tile_data &tileinfo, int tile_index ) TILE_GET_INFO_MEMBER(k051316_device::get_tile_info0) { get_tile_info(tileinfo, tile_index); } -void k051316_device::zoom_draw( bitmap_ind16 &bitmap, const rectangle &cliprect, int flags, UINT32 priority ) +void k051316_device::zoom_draw( screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect, int flags, UINT32 priority ) { UINT32 startx, starty; int incxx, incxy, incyx, incyy; @@ -290,7 +290,7 @@ void k051316_device::zoom_draw( bitmap_ind16 &bitmap, const rectangle &cliprect, startx -= (89 + m_xoffs) * incxx; starty -= (89 + m_xoffs) * incxy; - m_tmap->draw_roz(bitmap, cliprect, startx << 5,starty << 5, + m_tmap->draw_roz(screen, bitmap, cliprect, startx << 5,starty << 5, incxx << 5,incxy << 5,incyx << 5,incyy << 5, m_wrap, flags,priority); diff --git a/src/mame/video/k051316.h b/src/mame/video/k051316.h index 1e2792387a9..0a661db0bff 100644 --- a/src/mame/video/k051316.h +++ b/src/mame/video/k051316.h @@ -36,7 +36,7 @@ public: DECLARE_WRITE8_MEMBER( write ); DECLARE_READ8_MEMBER( rom_r ); DECLARE_WRITE8_MEMBER( ctrl_w ); - void zoom_draw(bitmap_ind16 &bitmap,const rectangle &cliprect,int flags,UINT32 priority); + void zoom_draw(screen_device &screen, bitmap_ind16 &bitmap,const rectangle &cliprect,int flags,UINT32 priority); void wraparound_enable(int status); protected: diff --git a/src/mame/video/k051960.c b/src/mame/video/k051960.c index 6ea37e5272a..2b15086ff33 100644 --- a/src/mame/video/k051960.c +++ b/src/mame/video/k051960.c @@ -387,7 +387,7 @@ WRITE16_MEMBER( k051960_device::k051937_word_w ) * Note that Aliens also uses the shadow bit to select the second sprite bank. */ -void k051960_device::k051960_sprites_draw( bitmap_ind16 &bitmap, const rectangle &cliprect, int min_priority, int max_priority ) +void k051960_device::k051960_sprites_draw( bitmap_ind16 &bitmap, const rectangle &cliprect, bitmap_ind8 &priority_bitmap, int min_priority, int max_priority ) { #define NUM_SPRITES 128 int offs, pri_code; @@ -505,7 +505,7 @@ void k051960_device::k051960_sprites_draw( bitmap_ind16 &bitmap, const rectangle color, flipx,flipy, sx & 0x1ff,sy, - machine().priority_bitmap,pri, + priority_bitmap,pri, drawmode_table,machine().shadow_table); else drawgfx_transtable(bitmap,cliprect,m_gfx, @@ -549,7 +549,7 @@ void k051960_device::k051960_sprites_draw( bitmap_ind16 &bitmap, const rectangle flipx,flipy, sx & 0x1ff,sy, (zw << 16) / 16,(zh << 16) / 16, - machine().priority_bitmap,pri, + priority_bitmap,pri, drawmode_table,machine().shadow_table); else drawgfxzoom_transtable(bitmap,cliprect,m_gfx, diff --git a/src/mame/video/k051960.h b/src/mame/video/k051960.h index f559f049d20..3148c4739dc 100644 --- a/src/mame/video/k051960.h +++ b/src/mame/video/k051960.h @@ -44,7 +44,7 @@ public: DECLARE_READ16_MEMBER( k051937_word_r ); DECLARE_WRITE16_MEMBER( k051937_word_w ); - void k051960_sprites_draw(bitmap_ind16 &bitmap, const rectangle &cliprect, int min_priority, int max_priority); + void k051960_sprites_draw(bitmap_ind16 &bitmap, const rectangle &cliprect, bitmap_ind8 &priority_bitmap, int min_priority, int max_priority); int k051960_is_irq_enabled(); int k051960_is_nmi_enabled(); void k051960_set_sprite_offsets(int dx, int dy); diff --git a/src/mame/video/k052109.c b/src/mame/video/k052109.c index 5c047264307..5c96a269929 100644 --- a/src/mame/video/k052109.c +++ b/src/mame/video/k052109.c @@ -656,9 +656,9 @@ if (machine().input().code_pressed(KEYCODE_F)) #endif } -void k052109_device::tilemap_draw( bitmap_ind16 &bitmap, const rectangle &cliprect, int tmap_num, UINT32 flags, UINT8 priority ) +void k052109_device::tilemap_draw( screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect, int tmap_num, UINT32 flags, UINT8 priority ) { - m_tilemap[tmap_num]->draw(bitmap, cliprect, flags, priority); + m_tilemap[tmap_num]->draw(screen, bitmap, cliprect, flags, priority); } int k052109_device::is_irq_enabled( ) diff --git a/src/mame/video/k052109.h b/src/mame/video/k052109.h index e3c45013145..e562c7af74a 100644 --- a/src/mame/video/k052109.h +++ b/src/mame/video/k052109.h @@ -57,7 +57,7 @@ public: int is_irq_enabled(); void set_layer_offsets(int layer, int dx, int dy); void tilemap_mark_dirty(int tmap_num); - void tilemap_draw(bitmap_ind16 &bitmap, const rectangle &cliprect, int tmap_num, UINT32 flags, UINT8 priority); + void tilemap_draw(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect, int tmap_num, UINT32 flags, UINT8 priority); protected: // device-level overrides diff --git a/src/mame/video/k053244_k053245.c b/src/mame/video/k053244_k053245.c index 07ad9ac0219..bb0937edd92 100644 --- a/src/mame/video/k053244_k053245.c +++ b/src/mame/video/k053244_k053245.c @@ -307,7 +307,7 @@ void k05324x_device::k05324x_set_z_rejection( int zcode ) * The rest of the sprite remains normal. */ -void k05324x_device::k053245_sprites_draw( bitmap_ind16 &bitmap, const rectangle &cliprect ) +void k05324x_device::k053245_sprites_draw( bitmap_ind16 &bitmap, const rectangle &cliprect, bitmap_ind8 &priority_bitmap ) { #define NUM_SPRITES 128 int offs, pri_code, i; @@ -523,7 +523,7 @@ void k05324x_device::k053245_sprites_draw( bitmap_ind16 &bitmap, const rectangle color, fx,fy, sx,sy, - machine().priority_bitmap,pri, + priority_bitmap,pri, drawmode_table,machine().shadow_table); } else @@ -534,7 +534,7 @@ void k05324x_device::k053245_sprites_draw( bitmap_ind16 &bitmap, const rectangle fx,fy, sx,sy, (zw << 16) / 16,(zh << 16) / 16, - machine().priority_bitmap,pri, + priority_bitmap,pri, drawmode_table,machine().shadow_table); } @@ -559,7 +559,7 @@ if (machine().input().code_pressed(KEYCODE_D)) /* Lethal Enforcers has 2 of these chips hooked up in parallel to give 6bpp gfx.. let's cheat a bit and make emulating it a little less messy by using a custom function instead */ -void k05324x_device::k053245_sprites_draw_lethal( bitmap_ind16 &bitmap, const rectangle &cliprect ) +void k05324x_device::k053245_sprites_draw_lethal( bitmap_ind16 &bitmap, const rectangle &cliprect, bitmap_ind8 &priority_bitmap ) { #define NUM_SPRITES 128 int offs, pri_code, i; @@ -771,7 +771,7 @@ void k05324x_device::k053245_sprites_draw_lethal( bitmap_ind16 &bitmap, const re color, fx,fy, sx,sy, - machine().priority_bitmap,pri, + priority_bitmap,pri, drawmode_table,machine().shadow_table); } else @@ -782,7 +782,7 @@ void k05324x_device::k053245_sprites_draw_lethal( bitmap_ind16 &bitmap, const re fx,fy, sx,sy, (zw << 16) / 16,(zh << 16) / 16, - machine().priority_bitmap,pri, + priority_bitmap,pri, drawmode_table,machine().shadow_table); } diff --git a/src/mame/video/k053244_k053245.h b/src/mame/video/k053244_k053245.h index 7f824bb7a18..b2f4d4d0872 100644 --- a/src/mame/video/k053244_k053245.h +++ b/src/mame/video/k053244_k053245.h @@ -40,8 +40,8 @@ public: DECLARE_READ16_MEMBER( k053244_word_r ); DECLARE_WRITE16_MEMBER( k053244_word_w ); void k053244_bankselect(int bank); /* used by TMNT2, Asterix and Premier Soccer for ROM testing */ - void k053245_sprites_draw(bitmap_ind16 &bitmap, const rectangle &cliprect); - void k053245_sprites_draw_lethal(bitmap_ind16 &bitmap, const rectangle &cliprect); /* for lethal enforcers */ + void k053245_sprites_draw(bitmap_ind16 &bitmap, const rectangle &cliprect, bitmap_ind8 &priority_bitmap); + void k053245_sprites_draw_lethal(bitmap_ind16 &bitmap, const rectangle &cliprect, bitmap_ind8 &priority_bitmap); /* for lethal enforcers */ void k053245_clear_buffer(); void k053245_update_buffer(); void k053245_set_sprite_offs(int offsx, int offsy); diff --git a/src/mame/video/k053246_k053247_k055673.h b/src/mame/video/k053246_k053247_k055673.h index f8256ed1ff0..61c15da6957 100644 --- a/src/mame/video/k053246_k053247_k055673.h +++ b/src/mame/video/k053246_k053247_k055673.h @@ -410,7 +410,7 @@ public: color, fx,fy, sx,sy, - machine().priority_bitmap,primask, + m_screen->priority(),primask, whichtable,machine().shadow_table); } else @@ -421,7 +421,7 @@ public: fx,fy, sx,sy, (zw << 16) >> 4,(zh << 16) >> 4, - machine().priority_bitmap,primask, + m_screen->priority(),primask, whichtable,machine().shadow_table); } @@ -434,7 +434,7 @@ public: color, fx,!fy, sx,sy, - machine().priority_bitmap,primask, + m_screen->priority(),primask, whichtable,machine().shadow_table); } else @@ -445,7 +445,7 @@ public: fx,!fy, sx,sy, (zw << 16) >> 4,(zh << 16) >> 4, - machine().priority_bitmap,primask, + m_screen->priority(),primask, whichtable,machine().shadow_table); } } diff --git a/src/mame/video/k053936.c b/src/mame/video/k053936.c index 841c30d9294..b7c7d1d6382 100644 --- a/src/mame/video/k053936.c +++ b/src/mame/video/k053936.c @@ -77,7 +77,7 @@ additional control from extra RAM: -static void K053936_zoom_draw(int chip,UINT16 *ctrl,UINT16 *linectrl, bitmap_ind16 &bitmap,const rectangle &cliprect,tilemap_t *tmap,int flags,UINT32 priority, int glfgreat_hack) +static void K053936_zoom_draw(int chip,UINT16 *ctrl,UINT16 *linectrl, screen_device &screen, bitmap_ind16 &bitmap,const rectangle &cliprect,tilemap_t *tmap,int flags,UINT32 priority, int glfgreat_hack) { if (!tmap) return; @@ -140,7 +140,7 @@ static void K053936_zoom_draw(int chip,UINT16 *ctrl,UINT16 *linectrl, bitmap_ind startx -= K053936_offset[chip][0] * incxx; starty -= K053936_offset[chip][0] * incxy; - tmap->draw_roz(bitmap, my_clip, startx << 5,starty << 5, + tmap->draw_roz(screen, bitmap, my_clip, startx << 5,starty << 5, incxx << 5,incxy << 5,0,0, K053936_wraparound[chip], flags,priority); @@ -169,7 +169,7 @@ static void K053936_zoom_draw(int chip,UINT16 *ctrl,UINT16 *linectrl, bitmap_ind startx -= K053936_offset[chip][0] * incxx; starty -= K053936_offset[chip][0] * incxy; - tmap->draw_roz(bitmap, cliprect, startx << 5,starty << 5, + tmap->draw_roz(screen, bitmap, cliprect, startx << 5,starty << 5, incxx << 5,incxy << 5,incyx << 5,incyy << 5, K053936_wraparound[chip], flags,priority); @@ -198,11 +198,11 @@ if (machine.input().code_pressed(KEYCODE_D)) } -void K053936_0_zoom_draw(bitmap_ind16 &bitmap,const rectangle &cliprect,tilemap_t *tmap,int flags,UINT32 priority, int glfgreat_hack) +void K053936_0_zoom_draw(screen_device &screen, bitmap_ind16 &bitmap,const rectangle &cliprect,tilemap_t *tmap,int flags,UINT32 priority, int glfgreat_hack) { UINT16 *ctrl = reinterpret_cast(tmap->machine().root_device().memshare("k053936_0_ctrl")->ptr()); UINT16 *linectrl = reinterpret_cast(tmap->machine().root_device().memshare("k053936_0_line")->ptr()); - K053936_zoom_draw(0,ctrl,linectrl,bitmap,cliprect,tmap,flags,priority, glfgreat_hack); + K053936_zoom_draw(0,ctrl,linectrl,screen,bitmap,cliprect,tmap,flags,priority, glfgreat_hack); } void K053936_wraparound_enable(int chip, int status) @@ -309,7 +309,7 @@ READ16_MEMBER( k053936_device::linectrl_r ) // there is another implementation of this in video/konamigx.c (!) // why? shall they be merged? -void k053936_device::zoom_draw( bitmap_ind16 &bitmap, const rectangle &cliprect, tilemap_t *tmap, int flags, UINT32 priority, int glfgreat_hack ) +void k053936_device::zoom_draw( screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect, tilemap_t *tmap, int flags, UINT32 priority, int glfgreat_hack ) { if (!tmap) return; @@ -374,7 +374,7 @@ void k053936_device::zoom_draw( bitmap_ind16 &bitmap, const rectangle &cliprect, startx -= m_xoff * incxx; starty -= m_xoff * incxy; - tmap->draw_roz(bitmap, my_clip, startx << 5,starty << 5, + tmap->draw_roz(screen, bitmap, my_clip, startx << 5,starty << 5, incxx << 5,incxy << 5,0,0, m_wrap, flags,priority); @@ -412,7 +412,7 @@ void k053936_device::zoom_draw( bitmap_ind16 &bitmap, const rectangle &cliprect, startx -= m_xoff * incxx; starty -= m_xoff * incxy; - tmap->draw_roz(bitmap, cliprect, startx << 5,starty << 5, + tmap->draw_roz(screen, bitmap, cliprect, startx << 5,starty << 5, incxx << 5,incxy << 5,incyx << 5,incyy << 5, m_wrap, flags,priority); diff --git a/src/mame/video/k053936.h b/src/mame/video/k053936.h index a1f8ca34683..6eae6e2455c 100644 --- a/src/mame/video/k053936.h +++ b/src/mame/video/k053936.h @@ -12,7 +12,7 @@ -void K053936_0_zoom_draw(bitmap_ind16 &bitmap,const rectangle &cliprect,tilemap_t *tmap,int flags,UINT32 priority, int glfgreat_hack); +void K053936_0_zoom_draw(screen_device &screen, bitmap_ind16 &bitmap,const rectangle &cliprect,tilemap_t *tmap,int flags,UINT32 priority, int glfgreat_hack); void K053936_wraparound_enable(int chip, int status); void K053936_set_offset(int chip, int xoffs, int yoffs); @@ -43,7 +43,7 @@ public: DECLARE_READ16_MEMBER( ctrl_r ); DECLARE_WRITE16_MEMBER( linectrl_w ); DECLARE_READ16_MEMBER( linectrl_r ); - void zoom_draw(bitmap_ind16 &bitmap, const rectangle &cliprect, tilemap_t *tmap, int flags, UINT32 priority, int glfgreat_hack); + void zoom_draw(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect, tilemap_t *tmap, int flags, UINT32 priority, int glfgreat_hack); // void wraparound_enable(int status); unused? // shall we merge this into the configuration intf? // void set_offset(int xoffs, int yoffs); unused? // shall we merge this into the configuration intf? diff --git a/src/mame/video/k054156_k054157_k056832.c b/src/mame/video/k054156_k054157_k056832.c index 2e716c8b197..4483b648d6d 100644 --- a/src/mame/video/k054156_k054157_k056832.c +++ b/src/mame/video/k054156_k054157_k056832.c @@ -1235,7 +1235,7 @@ WRITE32_MEMBER( k056832_device::b_long_w ) } template -int k056832_device::update_linemap( _BitmapClass &bitmap, int page, int flags ) +int k056832_device::update_linemap( screen_device &screen, _BitmapClass &bitmap, int page, int flags ) { if (m_page_tile_mode[page]) return(0); @@ -1264,7 +1264,7 @@ int k056832_device::update_linemap( _BitmapClass &bitmap, int page, int flags ) // force tilemap into a clean, static state // *really ugly but it minimizes alteration to tilemap.c memset(&zerorect, 0, sizeof(rectangle)); // zero dimension - tmap->draw(bitmap, zerorect, 0, 0); // dummy call to reset tile_dirty_map + tmap->draw(screen, bitmap, zerorect, 0, 0); // dummy call to reset tile_dirty_map xprmap.fill(0); // reset pixel transparency_bitmap; memset(xprdata, TILEMAP_PIXEL_LAYER0, 0x800); // reset tile transparency_data; } @@ -1356,7 +1356,7 @@ int k056832_device::update_linemap( _BitmapClass &bitmap, int page, int flags ) } template -void k056832_device::tilemap_draw_common( _BitmapClass &bitmap, const rectangle &cliprect, int layer, UINT32 flags, UINT32 priority ) +void k056832_device::tilemap_draw_common( screen_device &screen, _BitmapClass &bitmap, const rectangle &cliprect, int layer, UINT32 flags, UINT32 priority ) { UINT32 last_dx, last_visible, new_colorbase, last_active; int sx, sy, ay, tx, ty, width, height; @@ -1582,7 +1582,7 @@ printf("\nend\n"); m_active_layer = 0; } - if (update_linemap(bitmap, pageIndex, flags)) + if (update_linemap(screen, bitmap, pageIndex, flags)) continue; tmap = m_tilemap[pageIndex]; @@ -1668,7 +1668,7 @@ printf("\nend\n"); tmap->set_scrollx(0, dx); LINE_SHORTCIRCUIT: - tmap->draw(bitmap, drawrect, flags, priority); + tmap->draw(screen, bitmap, drawrect, flags, priority); } // end of line loop } // end of column loop @@ -1677,14 +1677,14 @@ printf("\nend\n"); m_active_layer = last_active; } // end of function -void k056832_device::tilemap_draw( bitmap_ind16 &bitmap, const rectangle &cliprect, int layer, UINT32 flags, UINT32 priority ) -{ tilemap_draw_common(bitmap, cliprect, layer, flags, priority); } +void k056832_device::tilemap_draw( screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect, int layer, UINT32 flags, UINT32 priority ) +{ tilemap_draw_common(screen, bitmap, cliprect, layer, flags, priority); } -void k056832_device::tilemap_draw( bitmap_rgb32 &bitmap, const rectangle &cliprect, int layer, UINT32 flags, UINT32 priority ) -{ tilemap_draw_common(bitmap, cliprect, layer, flags, priority); } +void k056832_device::tilemap_draw( screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect, int layer, UINT32 flags, UINT32 priority ) +{ tilemap_draw_common(screen, bitmap, cliprect, layer, flags, priority); } -void k056832_device::tilemap_draw_dj( bitmap_rgb32 &bitmap, const rectangle &cliprect, int layer, UINT32 flags, UINT32 priority ) +void k056832_device::tilemap_draw_dj( screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect, int layer, UINT32 flags, UINT32 priority ) { UINT32 last_dx, last_visible, new_colorbase, last_active; int sx, sy, ay, tx, ty, width, height; @@ -1863,7 +1863,7 @@ void k056832_device::tilemap_draw_dj( bitmap_rgb32 &bitmap, const rectangle &cli m_active_layer = 0; } - if (update_linemap(bitmap, pageIndex, flags)) + if (update_linemap(screen, bitmap, pageIndex, flags)) continue; tmap = m_tilemap[pageIndex]; @@ -1941,7 +1941,7 @@ void k056832_device::tilemap_draw_dj( bitmap_rgb32 &bitmap, const rectangle &cli tmap->set_scrollx(0, dx); LINE_SHORTCIRCUIT: - tmap->draw(bitmap, drawrect, flags, priority); + tmap->draw(screen, bitmap, drawrect, flags, priority); } // end of line loop } // end of column loop @@ -2194,7 +2194,7 @@ void k056832_device::altK056832_vh_start(running_machine &machine, const char *g -int k056832_device::altK056832_update_linemap(running_machine &machine, bitmap_rgb32 &bitmap, int page, int flags) +int k056832_device::altK056832_update_linemap(screen_device &screen, bitmap_rgb32 &bitmap, int page, int flags) { if (m_page_tile_mode[page]) return(0); if (!m_linemap_enabled) return(1); @@ -2222,7 +2222,7 @@ int k056832_device::altK056832_update_linemap(running_machine &machine, bitmap_r // force tilemap into a clean, static state // *really ugly but it minimizes alteration to tilemap.c memset (&zerorect, 0, sizeof(rectangle)); // zero dimension - tmap->draw(bitmap, zerorect, 0, 0); // dummy call to reset tile_dirty_map + tmap->draw(screen, bitmap, zerorect, 0, 0); // dummy call to reset tile_dirty_map xprmap.fill(0); // reset pixel transparency_bitmap; memset(xprdata, TILEMAP_PIXEL_LAYER0, 0x800); // reset tile transparency_data; } @@ -2311,7 +2311,7 @@ int k056832_device::altK056832_update_linemap(running_machine &machine, bitmap_r return(0); } -void k056832_device::m_tilemap_draw(running_machine &machine, bitmap_rgb32 &bitmap, const rectangle &cliprect, int layer, UINT32 flags, UINT32 priority) +void k056832_device::m_tilemap_draw(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect, int layer, UINT32 flags, UINT32 priority) { static int last_colorbase[K056832_PAGE_COUNT]; @@ -2511,7 +2511,7 @@ void k056832_device::m_tilemap_draw(running_machine &machine, bitmap_rgb32 &bitm else if (!pageIndex) m_active_layer = 0; - if (altK056832_update_linemap(machine, bitmap, pageIndex, flags)) continue; + if (altK056832_update_linemap(screen, bitmap, pageIndex, flags)) continue; tmap = m_tilemap[pageIndex]; tmap->set_scrolly(0, ay); @@ -2590,7 +2590,7 @@ void k056832_device::m_tilemap_draw(running_machine &machine, bitmap_rgb32 &bitm tmap->set_scrollx(0, dx); LINE_SHORTCIRCUIT: - tmap->draw(bitmap, drawrect, flags, priority); + tmap->draw(screen, bitmap, drawrect, flags, priority); } // end of line loop } // end of column loop diff --git a/src/mame/video/k054156_k054157_k056832.h b/src/mame/video/k054156_k054157_k056832.h index f9669292862..7b79e5f662f 100644 --- a/src/mame/video/k054156_k054157_k056832.h +++ b/src/mame/video/k054156_k054157_k056832.h @@ -87,9 +87,9 @@ public: DECLARE_WRITE8_MEMBER( b_w ); void mark_plane_dirty(int num); void mark_all_tilemaps_dirty(); - void tilemap_draw(bitmap_ind16 &bitmap, const rectangle &cliprect, int num, UINT32 flags, UINT32 priority); - void tilemap_draw(bitmap_rgb32 &bitmap, const rectangle &cliprect, int num, UINT32 flags, UINT32 priority); - void tilemap_draw_dj(bitmap_rgb32 &bitmap, const rectangle &cliprect, int layer, UINT32 flags, UINT32 priority); + void tilemap_draw(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect, int num, UINT32 flags, UINT32 priority); + void tilemap_draw(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect, int num, UINT32 flags, UINT32 priority); + void tilemap_draw_dj(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect, int layer, UINT32 flags, UINT32 priority); void set_layer_association(int status); int get_layer_association(); void set_layer_offs(int layer, int offsx, int offsy); @@ -206,10 +206,10 @@ private: int rom_read_b(int offset, int blksize, int blksize2, int zerosec); template - int update_linemap(_BitmapClass &bitmap, int page, int flags); + int update_linemap(screen_device &screen, _BitmapClass &bitmap, int page, int flags); template - void tilemap_draw_common(_BitmapClass &bitmap, const rectangle &cliprect, int layer, UINT32 flags, UINT32 priority); + void tilemap_draw_common(screen_device &screen, _BitmapClass &bitmap, const rectangle &cliprect, int layer, UINT32 flags, UINT32 priority); void create_gfx(running_machine &machine, const char *gfx_memory_region, int bpp, int big); void create_tilemaps(running_machine &machine); @@ -227,9 +227,9 @@ public: void K056832_set_k055555(k055555_device* mode); // k055555 hook - void m_tilemap_draw(running_machine &machine, bitmap_rgb32 &bitmap, const rectangle &cliprect, int num, UINT32 flags, UINT32 priority); + void m_tilemap_draw(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect, int num, UINT32 flags, UINT32 priority); private: - int altK056832_update_linemap(running_machine &machine, bitmap_rgb32 &bitmap, int page, int flags); + int altK056832_update_linemap(screen_device &screen, bitmap_rgb32 &bitmap, int page, int flags); }; diff --git a/src/mame/video/kaneko16.c b/src/mame/video/kaneko16.c index 5c5eaeb0299..0a3814cf7a1 100644 --- a/src/mame/video/kaneko16.c +++ b/src/mame/video/kaneko16.c @@ -46,15 +46,15 @@ UINT32 kaneko16_state::screen_update_common(screen_device &screen, bitmap_ind16 { int i; - machine().priority_bitmap.fill(0, cliprect); + screen.priority().fill(0, cliprect); if (m_view2_0) m_view2_0->kaneko16_prepare(bitmap, cliprect); if (m_view2_1) m_view2_1->kaneko16_prepare(bitmap, cliprect); for ( i = 0; i < 8; i++ ) { - if (m_view2_0) m_view2_0->render_tilemap_chip(bitmap,cliprect,i); - if (m_view2_1) m_view2_1->render_tilemap_chip_alt(bitmap,cliprect,i, VIEW2_2_pri); + if (m_view2_0) m_view2_0->render_tilemap_chip(screen,bitmap,cliprect,i); + if (m_view2_1) m_view2_1->render_tilemap_chip_alt(screen,bitmap,cliprect,i, VIEW2_2_pri); } return 0; @@ -72,7 +72,7 @@ UINT32 kaneko16_state::screen_update_kaneko16(screen_device &screen, bitmap_ind1 if (!m_disp_enable) return 0; screen_update_common(screen, bitmap, cliprect); - m_kaneko_spr->kaneko16_render_sprites(machine(),bitmap,cliprect, m_spriteram, m_spriteram.bytes()); + m_kaneko_spr->kaneko16_render_sprites(machine(),bitmap,cliprect, screen.priority(), m_spriteram, m_spriteram.bytes()); return 0; } @@ -195,6 +195,6 @@ UINT32 kaneko16_berlwall_state::screen_update_berlwall(screen_device &screen, bi if (!m_disp_enable) return 0; screen_update_common(screen, bitmap, cliprect); - m_kaneko_spr->kaneko16_render_sprites(machine(),bitmap,cliprect, m_spriteram, m_spriteram.bytes()); + m_kaneko_spr->kaneko16_render_sprites(machine(),bitmap,cliprect, screen.priority(), m_spriteram, m_spriteram.bytes()); return 0; } diff --git a/src/mame/video/kaneko_spr.c b/src/mame/video/kaneko_spr.c index 121c7355a8c..d7c2fa42720 100644 --- a/src/mame/video/kaneko_spr.c +++ b/src/mame/video/kaneko_spr.c @@ -220,11 +220,10 @@ int kaneko16_sprite_device::kaneko16_parse_sprite_type012(running_machine &machi // custom function to draw a single sprite. needed to keep correct sprites - sprites and sprites - tilemaps priorities void kaneko16_sprite_device::kaneko16_draw_sprites_custom(bitmap_ind16 &dest_bmp,const rectangle &clip,gfx_element *gfx, UINT32 code,UINT32 color,int flipx,int flipy,int sx,int sy, - int priority) + bitmap_ind8 &priority_bitmap, int priority) { pen_t pen_base = gfx->colorbase() + gfx->granularity() * (color % gfx->colors()); const UINT8 *source_base = gfx->get_data(code % gfx->elements()); - bitmap_ind8 &priority_bitmap = gfx->machine().priority_bitmap; int sprite_screen_height = ((1<<16)*gfx->height()+0x8000)>>16; int sprite_screen_width = ((1<<16)*gfx->width()+0x8000)>>16; @@ -315,7 +314,7 @@ void kaneko16_sprite_device::kaneko16_draw_sprites_custom(bitmap_ind16 &dest_bmp /* Build a list of sprites to display & draw them */ -void kaneko16_sprite_device::kaneko16_draw_sprites(running_machine &machine, bitmap_ind16 &bitmap, const rectangle &cliprect, UINT16* spriteram16, int spriteram16_bytes) +void kaneko16_sprite_device::kaneko16_draw_sprites(running_machine &machine, bitmap_ind16 &bitmap, const rectangle &cliprect, bitmap_ind8 &priority_bitmap, UINT16* spriteram16, int spriteram16_bytes) { /* Sprites *must* be parsed from the first in RAM to the last, because of the multisprite feature. But they *must* be drawn @@ -434,6 +433,7 @@ void kaneko16_sprite_device::kaneko16_draw_sprites(running_machine &machine, bit s->color, s->flipx, s->flipy, s->x, s->y, + priority_bitmap, primask ); } } @@ -540,7 +540,7 @@ WRITE16_MEMBER(kaneko16_sprite_device::kaneko16_sprites_regs_w) -void kaneko16_sprite_device::kaneko16_render_sprites(running_machine &machine, bitmap_ind16 &bitmap, const rectangle &cliprect, UINT16* spriteram16, int spriteram16_bytes) +void kaneko16_sprite_device::kaneko16_render_sprites(running_machine &machine, bitmap_ind16 &bitmap, const rectangle &cliprect, bitmap_ind8 &priority_bitmap, UINT16* spriteram16, int spriteram16_bytes) { /* Sprites last (rendered with pdrawgfx, so they can slip in between the layers) */ @@ -548,13 +548,13 @@ void kaneko16_sprite_device::kaneko16_render_sprites(running_machine &machine, b if(m_keep_sprites) { /* keep sprites on screen */ - kaneko16_draw_sprites(machine,m_sprites_bitmap, cliprect, spriteram16, spriteram16_bytes); + kaneko16_draw_sprites(machine,m_sprites_bitmap, cliprect, priority_bitmap, spriteram16, spriteram16_bytes); copybitmap_trans(bitmap,m_sprites_bitmap,0,0,0,0,cliprect,0); } else { m_sprites_bitmap.fill(0, cliprect); - kaneko16_draw_sprites(machine,bitmap,cliprect, spriteram16, spriteram16_bytes); + kaneko16_draw_sprites(machine,bitmap,cliprect, priority_bitmap, spriteram16, spriteram16_bytes); } } diff --git a/src/mame/video/kaneko_spr.h b/src/mame/video/kaneko_spr.h index 4ecb74fb042..a839b094f5d 100644 --- a/src/mame/video/kaneko_spr.h +++ b/src/mame/video/kaneko_spr.h @@ -38,7 +38,7 @@ public: // (legacy) used in the bitmap clear functions virtual int get_sprite_type(void) =0; - void kaneko16_render_sprites(running_machine &machine, bitmap_ind16 &bitmap, const rectangle &cliprect, UINT16* spriteram16, int spriteram16_bytes); + void kaneko16_render_sprites(running_machine &machine, bitmap_ind16 &bitmap, const rectangle &cliprect, bitmap_ind8 &priority_bitmap, UINT16* spriteram16, int spriteram16_bytes); DECLARE_READ16_MEMBER(kaneko16_sprites_regs_r); @@ -78,11 +78,11 @@ private: int m_keep_sprites; bitmap_ind16 m_sprites_bitmap; - void kaneko16_draw_sprites(running_machine &machine, bitmap_ind16 &bitmap, const rectangle &cliprect, UINT16* spriteram16, int spriteram16_bytes); + void kaneko16_draw_sprites(running_machine &machine, bitmap_ind16 &bitmap, const rectangle &cliprect, bitmap_ind8 &priority_bitmap, UINT16* spriteram16, int spriteram16_bytes); void kaneko16_draw_sprites_custom(bitmap_ind16 &dest_bmp,const rectangle &clip,gfx_element *gfx, UINT32 code,UINT32 color,int flipx,int flipy,int sx,int sy, - int priority); + bitmap_ind8 &priority_bitmap, int priority); int kaneko16_parse_sprite_type012(running_machine &machine, int i, struct tempsprite *s, UINT16* spriteram16, int spriteram16_bytes); diff --git a/src/mame/video/kaneko_tmap.c b/src/mame/video/kaneko_tmap.c index 2e62fe7c0a5..93b5cb7a120 100644 --- a/src/mame/video/kaneko_tmap.c +++ b/src/mame/video/kaneko_tmap.c @@ -231,16 +231,16 @@ void kaneko_view2_tilemap_device::kaneko16_prepare(bitmap_ind16 &bitmap, const r } } -void kaneko_view2_tilemap_device::render_tilemap_chip(bitmap_ind16 &bitmap, const rectangle &cliprect, int pri) +void kaneko_view2_tilemap_device::render_tilemap_chip(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect, int pri) { - m_tmap[0]->draw(bitmap, cliprect, pri, pri, 0); - m_tmap[1]->draw(bitmap, cliprect, pri, pri, 0); + m_tmap[0]->draw(screen, bitmap, cliprect, pri, pri, 0); + m_tmap[1]->draw(screen, bitmap, cliprect, pri, pri, 0); } -void kaneko_view2_tilemap_device::render_tilemap_chip_alt(bitmap_ind16 &bitmap, const rectangle &cliprect, int pri, int v2pri) +void kaneko_view2_tilemap_device::render_tilemap_chip_alt(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect, int pri, int v2pri) { - m_tmap[0]->draw(bitmap, cliprect, pri, v2pri ? pri : 0, 0); - m_tmap[1]->draw(bitmap, cliprect, pri, v2pri ? pri : 0, 0); + m_tmap[0]->draw(screen, bitmap, cliprect, pri, v2pri ? pri : 0, 0); + m_tmap[1]->draw(screen, bitmap, cliprect, pri, v2pri ? pri : 0, 0); } WRITE16_MEMBER(kaneko_view2_tilemap_device::kaneko16_vram_0_w){ kaneko16_vram_w(offset, data, mem_mask, 0); } diff --git a/src/mame/video/kaneko_tmap.h b/src/mame/video/kaneko_tmap.h index 5716adbc38f..4acf75d4ba6 100644 --- a/src/mame/video/kaneko_tmap.h +++ b/src/mame/video/kaneko_tmap.h @@ -26,8 +26,8 @@ public: // call to do the rendering etc. void kaneko16_prepare(bitmap_ind16 &bitmap, const rectangle &cliprect); - void render_tilemap_chip(bitmap_ind16 &bitmap, const rectangle &cliprect, int pri); - void render_tilemap_chip_alt(bitmap_ind16 &bitmap, const rectangle &cliprect, int pri, int v2pri); + void render_tilemap_chip(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect, int pri); + void render_tilemap_chip_alt(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect, int pri, int v2pri); // access DECLARE_READ16_MEMBER( kaneko_tmap_vram_r ); diff --git a/src/mame/video/karnov.c b/src/mame/video/karnov.c index 3d12269a213..ecfee510f8d 100644 --- a/src/mame/video/karnov.c +++ b/src/mame/video/karnov.c @@ -127,7 +127,7 @@ UINT32 karnov_state::screen_update_karnov(screen_device &screen, bitmap_ind16 &b { draw_background(bitmap, cliprect); machine().device("spritegen")->draw_sprites(machine(), bitmap, cliprect, m_spriteram->buffer(), 0x800, 0); - m_fix_tilemap->draw(bitmap, cliprect, 0, 0); + m_fix_tilemap->draw(screen, bitmap, cliprect, 0, 0); return 0; } diff --git a/src/mame/video/kchamp.c b/src/mame/video/kchamp.c index 513e6783b8e..7e01fccc90c 100644 --- a/src/mame/video/kchamp.c +++ b/src/mame/video/kchamp.c @@ -124,14 +124,14 @@ void kchamp_state::kchampvs_draw_sprites( bitmap_ind16 &bitmap, const rectangle UINT32 kchamp_state::screen_update_kchamp(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect) { - m_bg_tilemap->draw(bitmap, cliprect, 0, 0); + m_bg_tilemap->draw(screen, bitmap, cliprect, 0, 0); kchamp_draw_sprites(bitmap, cliprect); return 0; } UINT32 kchamp_state::screen_update_kchampvs(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect) { - m_bg_tilemap->draw(bitmap, cliprect, 0, 0); + m_bg_tilemap->draw(screen, bitmap, cliprect, 0, 0); kchampvs_draw_sprites(bitmap, cliprect); return 0; } diff --git a/src/mame/video/kickgoal.c b/src/mame/video/kickgoal.c index 00acb6f6bf6..c6f61af255c 100644 --- a/src/mame/video/kickgoal.c +++ b/src/mame/video/kickgoal.c @@ -168,12 +168,12 @@ UINT32 kickgoal_state::screen_update_kickgoal(screen_device &screen, bitmap_ind1 m_bg2tm->set_scrolly(0, m_scrram[5]); /* draw */ - m_bg2tm->draw(bitmap, cliprect, 0, 0); - m_bgtm->draw(bitmap, cliprect, 0, 0); + m_bg2tm->draw(screen, bitmap, cliprect, 0, 0); + m_bgtm->draw(screen, bitmap, cliprect, 0, 0); kickgoal_draw_sprites(bitmap, cliprect); - m_fgtm->draw(bitmap, cliprect, 0, 0); + m_fgtm->draw(screen, bitmap, cliprect, 0, 0); return 0; } diff --git a/src/mame/video/kingobox.c b/src/mame/video/kingobox.c index 7931797f278..80d048194d8 100644 --- a/src/mame/video/kingobox.c +++ b/src/mame/video/kingobox.c @@ -242,9 +242,9 @@ void kingofb_state::kingofb_draw_sprites(bitmap_ind16 &bitmap, const rectangle & UINT32 kingofb_state::screen_update_kingofb(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect) { m_bg_tilemap->set_scrolly(0, -(*m_scroll_y)); - m_bg_tilemap->draw(bitmap, cliprect, 0, 0); + m_bg_tilemap->draw(screen, bitmap, cliprect, 0, 0); kingofb_draw_sprites(bitmap, cliprect); - m_fg_tilemap->draw(bitmap, cliprect, 0, 0); + m_fg_tilemap->draw(screen, bitmap, cliprect, 0, 0); return 0; } @@ -299,8 +299,8 @@ void kingofb_state::ringking_draw_sprites( bitmap_ind16 &bitmap, const rectangle UINT32 kingofb_state::screen_update_ringking(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect) { m_bg_tilemap->set_scrolly(0, -(*m_scroll_y)); - m_bg_tilemap->draw(bitmap, cliprect, 0, 0); + m_bg_tilemap->draw(screen, bitmap, cliprect, 0, 0); ringking_draw_sprites(bitmap, cliprect); - m_fg_tilemap->draw(bitmap, cliprect, 0, 0); + m_fg_tilemap->draw(screen, bitmap, cliprect, 0, 0); return 0; } diff --git a/src/mame/video/klax.c b/src/mame/video/klax.c index 73531c925a8..0103d329a6c 100644 --- a/src/mame/video/klax.c +++ b/src/mame/video/klax.c @@ -97,7 +97,7 @@ UINT32 klax_state::screen_update_klax(screen_device &screen, bitmap_ind16 &bitma m_mob->draw_async(cliprect); /* draw the playfield */ - m_playfield_tilemap->draw(bitmap, cliprect, 0, 0); + m_playfield_tilemap->draw(screen, bitmap, cliprect, 0, 0); // draw and merge the MO bitmap_ind16 &mobitmap = m_mob->bitmap(); diff --git a/src/mame/video/kncljoe.c b/src/mame/video/kncljoe.c index 1d27015cac2..9ef7b96efe8 100644 --- a/src/mame/video/kncljoe.c +++ b/src/mame/video/kncljoe.c @@ -235,7 +235,7 @@ void kncljoe_state::draw_sprites( bitmap_ind16 &bitmap, const rectangle &cliprec UINT32 kncljoe_state::screen_update_kncljoe(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect) { - m_bg_tilemap->draw(bitmap, cliprect, 0, 0); + m_bg_tilemap->draw(screen, bitmap, cliprect, 0, 0); draw_sprites(bitmap, cliprect); return 0; } diff --git a/src/mame/video/konamigx.c b/src/mame/video/konamigx.c index 78bca2f2cb6..93c186437e7 100644 --- a/src/mame/video/konamigx.c +++ b/src/mame/video/konamigx.c @@ -354,27 +354,27 @@ static void (*k053247_callback)(running_machine &machine, int *code,int *color,i static int *K054338_shdRGB; -void konamigx_state::konamigx_mixer_init(running_machine &machine, int objdma) +void konamigx_state::konamigx_mixer_init(screen_device &screen, int objdma) { gx_objdma = 0; gx_primode = 0; - gx_objzbuf = &machine.priority_bitmap.pix8(0); - gx_shdzbuf = auto_alloc_array(machine, UINT8, GX_ZBUFSIZE); - gx_objpool = auto_alloc_array(machine, struct GX_OBJ, GX_MAX_OBJECTS); + gx_objzbuf = &screen.priority().pix8(0); + gx_shdzbuf = auto_alloc_array(machine(), UINT8, GX_ZBUFSIZE); + gx_objpool = auto_alloc_array(machine(), struct GX_OBJ, GX_MAX_OBJECTS); m_k055673->alt_k053247_export_config(&k053247_callback); K054338_export_config(&K054338_shdRGB); if (objdma) { - gx_spriteram = auto_alloc_array(machine, UINT16, 0x1000/2); + gx_spriteram = auto_alloc_array(machine(), UINT16, 0x1000/2); gx_objdma = 1; } else m_k055673->k053247_get_ram(&gx_spriteram); - palette_set_shadow_dRGB32(machine, 3,-80,-80,-80, 0); + palette_set_shadow_dRGB32(machine(), 3,-80,-80,-80, 0); K054338_invert_alpha(1); } @@ -391,7 +391,7 @@ void konamigx_state::konamigx_objdma(void) if (gx_objdma && gx_spriteram && k053247_ram) memcpy(gx_spriteram, k053247_ram, 0x1000); } -void konamigx_state::konamigx_mixer(running_machine &machine, bitmap_rgb32 &bitmap, const rectangle &cliprect, +void konamigx_state::konamigx_mixer(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect, tilemap_t *sub1, int sub1flags, tilemap_t *sub2, int sub2flags, int mixerflags, bitmap_ind16 *extra_bitmap, int rushingheroes_hack) @@ -403,14 +403,14 @@ void konamigx_state::konamigx_mixer(running_machine &machine, bitmap_rgb32 &bitm int cltc_shdpri, /*prflp,*/ disp; // buffer can move when it's resized, so refresh the pointer - gx_objzbuf = &machine.priority_bitmap.pix8(0); + gx_objzbuf = &screen.priority().pix8(0); // abort if object database failed to initialize objpool = gx_objpool; if (!objpool) return; // clear screen with backcolor and update flicker pulse - K054338_fill_backcolor(machine, m_screen, bitmap, konamigx_wrport1_0 & 0x20); + K054338_fill_backcolor(machine(), m_screen, bitmap, konamigx_wrport1_0 & 0x20); // abort if video has been disabled @@ -432,7 +432,7 @@ void konamigx_state::konamigx_mixer(running_machine &machine, bitmap_rgb32 &bitm if (mixerflags & GXMIX_NOZBUF) mixerflags |= GXMIX_NOSHADOW; else - gx_wipezbuf(machine, mixerflags & GXMIX_NOSHADOW); + gx_wipezbuf(machine(), mixerflags & GXMIX_NOSHADOW); // cache global parameters konamigx_precache_registers(); @@ -494,7 +494,7 @@ void konamigx_state::konamigx_mixer(running_machine &machine, bitmap_rgb32 &bitm for (i=0; i<4; i++) if (!(temp>>i & 1) && spri_min < layerpri[i]) spri_min = layerpri[i]; // HACK // update shadows status - K054338_update_all_shadows(machine, rushingheroes_hack); + K054338_update_all_shadows(machine(), rushingheroes_hack); } // pre-sort layers @@ -575,7 +575,7 @@ void konamigx_state::konamigx_mixer(running_machine &machine, bitmap_rgb32 &bitm int color = k = gx_spriteram[offs+6]; l = gx_spriteram[offs+7]; - (*k053247_callback)(machine, &code, &color, &pri); + (*k053247_callback)(machine(), &code, &color, &pri); /* shadow = shadow code @@ -716,14 +716,14 @@ void konamigx_state::konamigx_mixer(running_machine &machine, bitmap_rgb32 &bitm } - konamigx_mixer_draw(machine,bitmap,cliprect,sub1,sub1flags,sub2,sub2flags,mixerflags,extra_bitmap,rushingheroes_hack, + konamigx_mixer_draw(screen,bitmap,cliprect,sub1,sub1flags,sub2,sub2flags,mixerflags,extra_bitmap,rushingheroes_hack, objpool, objbuf, nobj ); } -void konamigx_state::gx_draw_basic_tilemaps(running_machine &machine, bitmap_rgb32 &bitmap, const rectangle &cliprect, int mixerflags, int code) +void konamigx_state::gx_draw_basic_tilemaps(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect, int mixerflags, int code) { int temp1,temp2,temp3,temp4; int i = code<<1; @@ -758,11 +758,11 @@ void konamigx_state::gx_draw_basic_tilemaps(running_machine &machine, bitmap_rgb if (mixerflags & 1<<(code+12)) k |= K056382_DRAW_FLAG_FORCE_XYSCROLL; - m_k056832->m_tilemap_draw(machine, bitmap, cliprect, code, k, 0); + m_k056832->m_tilemap_draw(screen, bitmap, cliprect, code, k, 0); } } -void konamigx_state::gx_draw_basic_extended_tilemaps_1(running_machine &machine, bitmap_rgb32 &bitmap, const rectangle &cliprect, int mixerflags, int code, tilemap_t *sub1, int sub1flags, int rushingheroes_hack, int offs) +void konamigx_state::gx_draw_basic_extended_tilemaps_1(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect, int mixerflags, int code, tilemap_t *sub1, int sub1flags, int rushingheroes_hack, int offs) { int temp1,temp2,temp3,temp4; int i = code<<1; @@ -798,22 +798,22 @@ void konamigx_state::gx_draw_basic_extended_tilemaps_1(running_machine &machine, if (offs == -2) { int pixeldouble_output = 0; - const rectangle &visarea = machine.primary_screen->visible_area(); + const rectangle &visarea = screen.machine().primary_screen->visible_area(); int width = visarea.width(); if (width>512) // vsnetscr case pixeldouble_output = 1; - K053936GP_0_zoom_draw(machine, bitmap, cliprect, sub1, l, k, alpha, pixeldouble_output, m_k053936_0_ctrl_16, m_k053936_0_linectrl_16, m_k053936_0_ctrl, m_k053936_0_linectrl); + K053936GP_0_zoom_draw(screen.machine(), bitmap, cliprect, sub1, l, k, alpha, pixeldouble_output, m_k053936_0_ctrl_16, m_k053936_0_linectrl_16, m_k053936_0_ctrl, m_k053936_0_linectrl); } else { - machine.device("k053250_1")->draw(bitmap, cliprect, vcblk[4]<("k053250_1")->draw(bitmap, cliprect, vcblk[4]<width(); - int height = machine.primary_screen->height(); - const pen_t *paldata = machine.pens; + int width = screen.machine().primary_screen->width(); + int height = screen.machine().primary_screen->height(); + const pen_t *paldata = screen.machine().pens; // the output size of the roz layer has to be doubled horizontally // so that it aligns with the sprites and normal tilemaps. This appears @@ -880,11 +880,11 @@ void konamigx_state::gx_draw_basic_extended_tilemaps_2(running_machine &machine, } } else - machine.device("k053250_2")->draw(bitmap, cliprect, vcblk[5]<("k053250_2")->draw(bitmap, cliprect, vcblk[5]<= 4) palette_set_shadow_mode(machine, order & 0x0f); + if (drawmode >= 4) palette_set_shadow_mode(machine(), order & 0x0f); if (!(mixerflags & GXMIX_NOZBUF)) { @@ -949,15 +949,15 @@ void konamigx_state::konamigx_mixer_draw(running_machine &machine, bitmap_rgb32 switch (offs) { case -1: - gx_draw_basic_tilemaps(machine, bitmap, cliprect, mixerflags, code); + gx_draw_basic_tilemaps(screen, bitmap, cliprect, mixerflags, code); continue; case -2: case -4: - gx_draw_basic_extended_tilemaps_1(machine, bitmap, cliprect, mixerflags, code, sub1, sub1flags, rushingheroes_hack, offs); + gx_draw_basic_extended_tilemaps_1(screen, bitmap, cliprect, mixerflags, code, sub1, sub1flags, rushingheroes_hack, offs); continue; case -3: case -5: - gx_draw_basic_extended_tilemaps_2(machine, bitmap, cliprect, mixerflags, code, sub2, sub2flags, extra_bitmap, offs); + gx_draw_basic_extended_tilemaps_2(screen, bitmap, cliprect, mixerflags, code, sub2, sub2flags, extra_bitmap, offs); continue; } continue; @@ -1171,7 +1171,7 @@ void konamigx_state::_gxcommoninitnosprites(running_machine &machine) K054338_vh_start(machine, m_k055555); m_k055555->K055555_vh_start(machine); - konamigx_mixer_init(machine, 0); + konamigx_mixer_init(*m_screen, 0); for (i = 0; i < 8; i++) { @@ -1483,7 +1483,7 @@ VIDEO_START_MEMBER(konamigx_state,opengolf) // urgh.. the priority bitmap is global, and because our temp bitmaps are bigger than the screen, this causes issues.. so just allocate something huge // until there is a better solution, or priority bitmap can be specified manually. - machine().priority_bitmap.allocate(2048,2048); + m_screen->priority().allocate(2048,2048); } @@ -1521,7 +1521,7 @@ VIDEO_START_MEMBER(konamigx_state,racinfrc) // urgh.. the priority bitmap is global, and because our temp bitmaps are bigger than the screen, this causes issues.. so just allocate something huge // until there is a better solution, or priority bitmap can be specified manually. - machine().priority_bitmap.allocate(2048,2048); + m_screen->priority().allocate(2048,2048); } @@ -1581,15 +1581,15 @@ UINT32 konamigx_state::screen_update_konamigx(screen_device &screen, bitmap_rgb3 // Type-1 if (gx_specialrozenable == 1) { - K053936_0_zoom_draw(*gxtype1_roz_dstbitmap, gxtype1_roz_dstbitmapclip,gx_psac_tilemap, 0,0,0); // height data - K053936_0_zoom_draw(*gxtype1_roz_dstbitmap2,gxtype1_roz_dstbitmapclip,gx_psac_tilemap2,0,0,0); // colour data (+ some voxel height data?) + K053936_0_zoom_draw(screen, *gxtype1_roz_dstbitmap, gxtype1_roz_dstbitmapclip,gx_psac_tilemap, 0,0,0); // height data + K053936_0_zoom_draw(screen, *gxtype1_roz_dstbitmap2,gxtype1_roz_dstbitmapclip,gx_psac_tilemap2,0,0,0); // colour data (+ some voxel height data?) } if (gx_specialrozenable==3) { - konamigx_mixer(machine(), bitmap, cliprect, gx_psac_tilemap, GXSUB_8BPP,0,0, 0, 0, gx_rushingheroes_hack); + konamigx_mixer(screen, bitmap, cliprect, gx_psac_tilemap, GXSUB_8BPP,0,0, 0, 0, gx_rushingheroes_hack); } // hack, draw the roz tilemap if W is held // todo: fix so that it works with the mixer without crashing(!) @@ -1600,15 +1600,15 @@ UINT32 konamigx_state::screen_update_konamigx(screen_device &screen, bitmap_rgb3 temprect = cliprect; temprect.max_x = cliprect.min_x+320; - if (konamigx_type3_psac2_actual_bank == 1) K053936_0_zoom_draw(*type3_roz_temp_bitmap, temprect,gx_psac_tilemap_alt, 0,0,0); // soccerss playfield - else K053936_0_zoom_draw(*type3_roz_temp_bitmap, temprect,gx_psac_tilemap, 0,0,0); // soccerss playfield + if (konamigx_type3_psac2_actual_bank == 1) K053936_0_zoom_draw(screen, *type3_roz_temp_bitmap, temprect,gx_psac_tilemap_alt, 0,0,0); // soccerss playfield + else K053936_0_zoom_draw(screen, *type3_roz_temp_bitmap, temprect,gx_psac_tilemap, 0,0,0); // soccerss playfield - konamigx_mixer(machine(), bitmap, cliprect, 0, 0, 0, 0, 0, type3_roz_temp_bitmap, gx_rushingheroes_hack); + konamigx_mixer(screen, bitmap, cliprect, 0, 0, 0, 0, 0, type3_roz_temp_bitmap, gx_rushingheroes_hack); } else { - konamigx_mixer(machine(), bitmap, cliprect, 0, 0, 0, 0, 0, 0, gx_rushingheroes_hack); + konamigx_mixer(screen, bitmap, cliprect, 0, 0, 0, 0, 0, 0, gx_rushingheroes_hack); } diff --git a/src/mame/video/kopunch.c b/src/mame/video/kopunch.c index aae43a7a0f9..07a262f7307 100644 --- a/src/mame/video/kopunch.c +++ b/src/mame/video/kopunch.c @@ -92,8 +92,8 @@ void kopunch_state::video_start() UINT32 kopunch_state::screen_update_kopunch(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect) { - m_bg_tilemap->draw(bitmap, cliprect, 0, 0); - m_fg_tilemap->draw(bitmap, cliprect, 0, 0); + m_bg_tilemap->draw(screen, bitmap, cliprect, 0, 0); + m_fg_tilemap->draw(screen, bitmap, cliprect, 0, 0); return 0; } diff --git a/src/mame/video/ksayakyu.c b/src/mame/video/ksayakyu.c index b8a5b7fe9a8..f014ff303ed 100644 --- a/src/mame/video/ksayakyu.c +++ b/src/mame/video/ksayakyu.c @@ -124,9 +124,9 @@ UINT32 ksayakyu_state::screen_update_ksayakyu(screen_device &screen, bitmap_ind1 bitmap.fill(0, cliprect); if (m_video_ctrl & 1) - m_tilemap->draw(bitmap, cliprect, 0, 0); + m_tilemap->draw(screen, bitmap, cliprect, 0, 0); - m_textmap->draw(bitmap, cliprect, 0, 0); + m_textmap->draw(screen, bitmap, cliprect, 0, 0); draw_sprites(bitmap, cliprect); return 0; } diff --git a/src/mame/video/kyugo.c b/src/mame/video/kyugo.c index 9753a1e443e..c1662c039c4 100644 --- a/src/mame/video/kyugo.c +++ b/src/mame/video/kyugo.c @@ -209,8 +209,8 @@ UINT32 kyugo_state::screen_update_kyugo(screen_device &screen, bitmap_ind16 &bit m_bg_tilemap->set_scrolly(0, m_scroll_y); - m_bg_tilemap->draw(bitmap, cliprect, 0, 0); + m_bg_tilemap->draw(screen, bitmap, cliprect, 0, 0); draw_sprites(bitmap, cliprect); - m_fg_tilemap->draw(bitmap, cliprect, 0, 0); + m_fg_tilemap->draw(screen, bitmap, cliprect, 0, 0); return 0; } diff --git a/src/mame/video/labyrunr.c b/src/mame/video/labyrunr.c index f60845328eb..ccfff3cd80c 100644 --- a/src/mame/video/labyrunr.c +++ b/src/mame/video/labyrunr.c @@ -182,7 +182,7 @@ UINT32 labyrunr_state::screen_update_labyrunr(screen_device &screen, bitmap_ind1 set_pens(); - machine().priority_bitmap.fill(0, cliprect); + screen.priority().fill(0, cliprect); bitmap.fill(get_black_pen(machine()), cliprect); if (~m_k007121->ctrlram_r(space, 3) & 0x20) @@ -207,10 +207,10 @@ UINT32 labyrunr_state::screen_update_labyrunr(screen_device &screen, bitmap_ind1 m_layer0->set_scrolly((i + 2) & 0x1f, m_k007121->ctrlram_r(space, 2)); } - m_layer0->draw(bitmap, finalclip0, TILEMAP_DRAW_OPAQUE, 0); - m_k007121->sprites_draw(bitmap, cliprect, machine().gfx[0], machine().colortable, m_spriteram,(m_k007121->ctrlram_r(space, 6) & 0x30) * 2, 40,0,(m_k007121->ctrlram_r(space, 3) & 0x40) >> 5); + m_layer0->draw(screen, bitmap, finalclip0, TILEMAP_DRAW_OPAQUE, 0); + m_k007121->sprites_draw(bitmap, cliprect, machine().gfx[0], machine().colortable, m_spriteram,(m_k007121->ctrlram_r(space, 6) & 0x30) * 2, 40,0,screen.priority(),(m_k007121->ctrlram_r(space, 3) & 0x40) >> 5); /* we ignore the transparency because layer1 is drawn only at the top of the screen also covering sprites */ - m_layer1->draw(bitmap, finalclip1, TILEMAP_DRAW_OPAQUE, 0); + m_layer1->draw(screen, bitmap, finalclip1, TILEMAP_DRAW_OPAQUE, 0); } else { @@ -270,15 +270,15 @@ UINT32 labyrunr_state::screen_update_labyrunr(screen_device &screen, bitmap_ind1 m_layer0->set_scrollx(0, ctrl_0 - 40); m_layer1->set_scrollx(0, ctrl_0 - 40); - m_layer0->draw(bitmap, finalclip0, 0, 1); + m_layer0->draw(screen, bitmap, finalclip0, 0, 1); if(use_clip3[0]) - m_layer0->draw(bitmap, finalclip3, 0, 1); + m_layer0->draw(screen, bitmap, finalclip3, 0, 1); - m_layer1->draw(bitmap, finalclip1, 0, 1); + m_layer1->draw(screen, bitmap, finalclip1, 0, 1); if(use_clip3[1]) - m_layer1->draw(bitmap, finalclip3, 0, 1); + m_layer1->draw(screen, bitmap, finalclip3, 0, 1); - m_k007121->sprites_draw(bitmap, cliprect, machine().gfx[0], machine().colortable, m_spriteram, (m_k007121->ctrlram_r(space, 6) & 0x30) * 2,40,0,(m_k007121->ctrlram_r(space, 3) & 0x40) >> 5); + m_k007121->sprites_draw(bitmap, cliprect, machine().gfx[0], machine().colortable, m_spriteram, (m_k007121->ctrlram_r(space, 6) & 0x30) * 2,40,0,screen.priority(),(m_k007121->ctrlram_r(space, 3) & 0x40) >> 5); } return 0; } diff --git a/src/mame/video/ladybug.c b/src/mame/video/ladybug.c index 941e3eeaea6..5e4edfb0eb9 100644 --- a/src/mame/video/ladybug.c +++ b/src/mame/video/ladybug.c @@ -292,7 +292,7 @@ UINT32 ladybug_state::screen_update_ladybug(screen_device &screen, bitmap_ind16 m_bg_tilemap->set_scrollx(offs, m_videoram[32 * sx + sy]); } - m_bg_tilemap->draw(bitmap, cliprect, 0, 0); + m_bg_tilemap->draw(screen, bitmap, cliprect, 0, 0); draw_sprites(bitmap, cliprect); return 0; } @@ -336,7 +336,7 @@ UINT32 ladybug_state::screen_update_sraider(screen_device &screen, bitmap_ind16 colortable_palette_set_color(machine().colortable, 0x40, MAKE_RGB(m_grid_color & 0x40 ? 0xff : 0, m_grid_color & 0x20 ? 0xff : 0, m_grid_color & 0x10 ? 0xff : 0)); - m_grid_tilemap->draw(bitmap, cliprect, 0, flip_screen()); + m_grid_tilemap->draw(screen, bitmap, cliprect, 0, flip_screen()); for (i = 0; i < 0x100; i++) { @@ -353,7 +353,7 @@ UINT32 ladybug_state::screen_update_sraider(screen_device &screen, bitmap_ind16 } // now the chars - m_bg_tilemap->draw(bitmap, cliprect, 0, flip_screen()); + m_bg_tilemap->draw(screen, bitmap, cliprect, 0, flip_screen()); // now the sprites draw_sprites(bitmap, cliprect); diff --git a/src/mame/video/ladyfrog.c b/src/mame/video/ladyfrog.c index 47b7ea5ffab..0f87208f76f 100644 --- a/src/mame/video/ladyfrog.c +++ b/src/mame/video/ladyfrog.c @@ -152,7 +152,7 @@ VIDEO_START_MEMBER(ladyfrog_state,toucheme) UINT32 ladyfrog_state::screen_update_ladyfrog(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect) { - m_bg_tilemap->draw(bitmap, cliprect, 0, 0); + m_bg_tilemap->draw(screen, bitmap, cliprect, 0, 0); draw_sprites(bitmap, cliprect); return 0; } diff --git a/src/mame/video/lasso.c b/src/mame/video/lasso.c index 4a6dbaef281..1a268a8a57f 100644 --- a/src/mame/video/lasso.c +++ b/src/mame/video/lasso.c @@ -357,7 +357,7 @@ UINT32 lasso_state::screen_update_lasso(screen_device &screen, bitmap_ind16 &bit palette_set_color(machine(), 0, get_color(*m_back_color)); bitmap.fill(0, cliprect); - m_bg_tilemap->draw(bitmap, cliprect, 0, 0); + m_bg_tilemap->draw(screen, bitmap, cliprect, 0, 0); draw_lasso(bitmap, cliprect); draw_sprites(bitmap, cliprect, 0); @@ -369,7 +369,7 @@ UINT32 lasso_state::screen_update_chameleo(screen_device &screen, bitmap_ind16 & palette_set_color(machine(), 0, get_color(*m_back_color)); bitmap.fill(0, cliprect); - m_bg_tilemap->draw(bitmap, cliprect, 0, 0); + m_bg_tilemap->draw(screen, bitmap, cliprect, 0, 0); draw_sprites(bitmap, cliprect, 0); return 0; @@ -385,12 +385,12 @@ UINT32 lasso_state::screen_update_wwjgtin(screen_device &screen, bitmap_ind16 &b m_track_tilemap->set_scrolly(0, m_track_scroll[2] + m_track_scroll[3] * 256); if (m_track_enable) - m_track_tilemap->draw(bitmap, cliprect, 0, 0); + m_track_tilemap->draw(screen, bitmap, cliprect, 0, 0); else bitmap.fill(get_black_pen(machine()), cliprect); draw_sprites(bitmap, cliprect, 1); // reverse order - m_bg_tilemap->draw(bitmap, cliprect, 0, 0); + m_bg_tilemap->draw(screen, bitmap, cliprect, 0, 0); return 0; } diff --git a/src/mame/video/lastduel.c b/src/mame/video/lastduel.c index de2cb93285c..60002261aa7 100644 --- a/src/mame/video/lastduel.c +++ b/src/mame/video/lastduel.c @@ -248,12 +248,12 @@ void lastduel_state::draw_sprites( bitmap_ind16 &bitmap, const rectangle &clipre UINT32 lastduel_state::screen_update_lastduel(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect) { - m_bg_tilemap->draw(bitmap, cliprect, 0, 0); - m_fg_tilemap->draw(bitmap, cliprect, TILEMAP_DRAW_LAYER1, 0); + m_bg_tilemap->draw(screen, bitmap, cliprect, 0, 0); + m_fg_tilemap->draw(screen, bitmap, cliprect, TILEMAP_DRAW_LAYER1, 0); draw_sprites(bitmap, cliprect, 0); - m_fg_tilemap->draw(bitmap, cliprect, TILEMAP_DRAW_LAYER0, 0); + m_fg_tilemap->draw(screen, bitmap, cliprect, TILEMAP_DRAW_LAYER0, 0); draw_sprites(bitmap, cliprect, 1); - m_tx_tilemap->draw(bitmap, cliprect, 0, 0); + m_tx_tilemap->draw(screen, bitmap, cliprect, 0, 0); return 0; } @@ -261,20 +261,20 @@ UINT32 lastduel_state::screen_update_madgear(screen_device &screen, bitmap_ind16 { if (m_tilemap_priority) { - m_fg_tilemap->draw(bitmap, cliprect, TILEMAP_DRAW_LAYER1 | TILEMAP_DRAW_OPAQUE, 0); + m_fg_tilemap->draw(screen, bitmap, cliprect, TILEMAP_DRAW_LAYER1 | TILEMAP_DRAW_OPAQUE, 0); draw_sprites(bitmap, cliprect, 0); - m_fg_tilemap->draw(bitmap, cliprect, TILEMAP_DRAW_LAYER0, 0); - m_bg_tilemap->draw(bitmap, cliprect, 0, 0); + m_fg_tilemap->draw(screen, bitmap, cliprect, TILEMAP_DRAW_LAYER0, 0); + m_bg_tilemap->draw(screen, bitmap, cliprect, 0, 0); draw_sprites(bitmap, cliprect, 1); } else { - m_bg_tilemap->draw(bitmap, cliprect, TILEMAP_DRAW_OPAQUE, 0); - m_fg_tilemap->draw(bitmap, cliprect, TILEMAP_DRAW_LAYER1, 0); + m_bg_tilemap->draw(screen, bitmap, cliprect, TILEMAP_DRAW_OPAQUE, 0); + m_fg_tilemap->draw(screen, bitmap, cliprect, TILEMAP_DRAW_LAYER1, 0); draw_sprites(bitmap, cliprect, 0); - m_fg_tilemap->draw(bitmap, cliprect, TILEMAP_DRAW_LAYER0, 0); + m_fg_tilemap->draw(screen, bitmap, cliprect, TILEMAP_DRAW_LAYER0, 0); draw_sprites(bitmap, cliprect, 1); } - m_tx_tilemap->draw(bitmap, cliprect, 0, 0); + m_tx_tilemap->draw(screen, bitmap, cliprect, 0, 0); return 0; } diff --git a/src/mame/video/legionna.c b/src/mame/video/legionna.c index 1242d45e3ff..e855e6aa1a7 100644 --- a/src/mame/video/legionna.c +++ b/src/mame/video/legionna.c @@ -245,7 +245,7 @@ VIDEO_START_MEMBER(legionna_state,godzilla) *************************************************************************/ -void legionna_state::draw_sprites(bitmap_ind16 &bitmap,const rectangle &cliprect) +void legionna_state::draw_sprites(screen_device &screen, bitmap_ind16 &bitmap,const rectangle &cliprect) { UINT16 *spriteram16 = m_spriteram; int offs,fx,fy,x,y,color,sprite,cur_pri; @@ -362,7 +362,7 @@ void legionna_state::draw_sprites(bitmap_ind16 &bitmap,const rectangle &cliprect pdrawgfx_transpen(bitmap,cliprect,machine().gfx[3], sprite++, color,fx,fy,(x+ax*16)+m_sprite_xoffs,y+ay*16+m_sprite_yoffs, - machine().priority_bitmap,pri_mask, 15); + screen.priority(),pri_mask, 15); } } else @@ -373,7 +373,7 @@ void legionna_state::draw_sprites(bitmap_ind16 &bitmap,const rectangle &cliprect pdrawgfx_transpen(bitmap,cliprect,machine().gfx[3], sprite++, color,fx,fy,(x+ax*16)+m_sprite_xoffs,y+(dy-ay-1)*16+m_sprite_yoffs, - machine().priority_bitmap,pri_mask,15); + screen.priority(),pri_mask,15); } } } @@ -387,7 +387,7 @@ void legionna_state::draw_sprites(bitmap_ind16 &bitmap,const rectangle &cliprect pdrawgfx_transpen(bitmap,cliprect,machine().gfx[3], sprite++, color,fx,fy,(x+(dx-ax-1)*16)+m_sprite_xoffs,y+ay*16+m_sprite_yoffs, - machine().priority_bitmap,pri_mask,15); + screen.priority(),pri_mask,15); } } else @@ -398,7 +398,7 @@ void legionna_state::draw_sprites(bitmap_ind16 &bitmap,const rectangle &cliprect pdrawgfx_transpen(bitmap,cliprect,machine().gfx[3], sprite++, color,fx,fy,(x+(dx-ax-1)*16)+m_sprite_xoffs,y+(dy-ay-1)*16+m_sprite_yoffs, - machine().priority_bitmap,pri_mask, 15); + screen.priority(),pri_mask, 15); } } } @@ -419,17 +419,17 @@ UINT32 legionna_state::screen_update_legionna(screen_device &screen, bitmap_ind1 m_text_layer->set_scrollx(0, 0/*m_scrollram16[6]*/ ); m_text_layer->set_scrolly(0, 0/*m_scrollram16[7]*/ ); - machine().priority_bitmap.fill(0, cliprect); + screen.priority().fill(0, cliprect); bitmap.fill(get_black_pen(machine()), cliprect); /* wrong color? */ /* m_layer_disable is a guess based on 'stage 1' screen in heatbrl */ - if (!(m_layer_disable&0x0020)) m_foreground_layer->draw(bitmap, cliprect, 0, 0); - if (!(m_layer_disable&0x0010)) m_midground_layer->draw(bitmap, cliprect, 0, 0); - if (!(m_layer_disable&0x0002)) m_background_layer->draw(bitmap, cliprect, 0, 1); - if (!(m_layer_disable&0x0001)) m_text_layer->draw(bitmap, cliprect, 0, 2); + if (!(m_layer_disable&0x0020)) m_foreground_layer->draw(screen, bitmap, cliprect, 0, 0); + if (!(m_layer_disable&0x0010)) m_midground_layer->draw(screen, bitmap, cliprect, 0, 0); + if (!(m_layer_disable&0x0002)) m_background_layer->draw(screen, bitmap, cliprect, 0, 1); + if (!(m_layer_disable&0x0001)) m_text_layer->draw(screen, bitmap, cliprect, 0, 2); - draw_sprites(bitmap,cliprect); + draw_sprites(screen,bitmap,cliprect); return 0; @@ -452,14 +452,14 @@ UINT32 legionna_state::screen_update_godzilla(screen_device &screen, bitmap_ind1 bitmap.fill(0x0200, cliprect); - machine().priority_bitmap.fill(0, cliprect); + screen.priority().fill(0, cliprect); - if (!(m_layer_disable&0x0001)) m_background_layer->draw(bitmap, cliprect, 0,0); - if (!(m_layer_disable&0x0002)) m_midground_layer->draw(bitmap, cliprect, 0,0); - if (!(m_layer_disable&0x0004)) m_foreground_layer->draw(bitmap, cliprect, 0,1); - if (!(m_layer_disable&0x0008)) m_text_layer->draw(bitmap, cliprect, 0,2); + if (!(m_layer_disable&0x0001)) m_background_layer->draw(screen, bitmap, cliprect, 0,0); + if (!(m_layer_disable&0x0002)) m_midground_layer->draw(screen, bitmap, cliprect, 0,0); + if (!(m_layer_disable&0x0004)) m_foreground_layer->draw(screen, bitmap, cliprect, 0,1); + if (!(m_layer_disable&0x0008)) m_text_layer->draw(screen, bitmap, cliprect, 0,2); - draw_sprites(bitmap,cliprect); + draw_sprites(screen,bitmap,cliprect); return 0; } @@ -477,21 +477,21 @@ UINT32 legionna_state::screen_update_grainbow(screen_device &screen, bitmap_ind1 m_text_layer->set_scrolly(0, 0/*m_scrollram16[7]*/ ); bitmap.fill(get_black_pen(machine()), cliprect); - machine().priority_bitmap.fill(0, cliprect); + screen.priority().fill(0, cliprect); if(!(m_layer_disable & 1)) - m_background_layer->draw(bitmap, cliprect, 0,1); + m_background_layer->draw(screen, bitmap, cliprect, 0,1); if(!(m_layer_disable & 2)) - m_midground_layer->draw(bitmap, cliprect, 0,2); + m_midground_layer->draw(screen, bitmap, cliprect, 0,2); if(!(m_layer_disable & 4)) - m_foreground_layer->draw(bitmap, cliprect, 0,4); + m_foreground_layer->draw(screen, bitmap, cliprect, 0,4); if(!(m_layer_disable & 8)) - m_text_layer->draw(bitmap, cliprect, 0,8); + m_text_layer->draw(screen, bitmap, cliprect, 0,8); - draw_sprites(bitmap,cliprect); + draw_sprites(screen,bitmap,cliprect); return 0; } diff --git a/src/mame/video/lemmings.c b/src/mame/video/lemmings.c index 128ca2e77e5..a473f5f17c3 100644 --- a/src/mame/video/lemmings.c +++ b/src/mame/video/lemmings.c @@ -159,7 +159,7 @@ UINT32 lemmings_state::screen_update_lemmings(screen_device &screen, bitmap_rgb3 m_sprgen2->inefficient_copy_sprite_bitmap(bitmap, cliprect, 0x0800, 0x0800, 0x200, 0xff); m_sprgen->inefficient_copy_sprite_bitmap(bitmap, cliprect, 0x0000, 0x0800, 0x300, 0xff); - m_vram_tilemap->draw(bitmap, cliprect, 0, 0); + m_vram_tilemap->draw(screen, bitmap, cliprect, 0, 0); m_sprgen2->inefficient_copy_sprite_bitmap(bitmap, cliprect, 0x0000, 0x0800, 0x200, 0xff); return 0; } diff --git a/src/mame/video/lethal.c b/src/mame/video/lethal.c index 163b6ffeefc..6093d903efc 100644 --- a/src/mame/video/lethal.c +++ b/src/mame/video/lethal.c @@ -100,16 +100,16 @@ WRITE8_MEMBER(lethal_state::lethalen_palette_control) UINT32 lethal_state::screen_update_lethalen(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect) { bitmap.fill(7168, cliprect); - machine().priority_bitmap.fill(0, cliprect); + screen.priority().fill(0, cliprect); - m_k056832->tilemap_draw(bitmap, cliprect, 3, K056832_DRAW_FLAG_MIRROR, 1); - m_k056832->tilemap_draw(bitmap, cliprect, 2, K056832_DRAW_FLAG_MIRROR, 2); - m_k056832->tilemap_draw(bitmap, cliprect, 1, K056832_DRAW_FLAG_MIRROR, 4); + m_k056832->tilemap_draw(screen, bitmap, cliprect, 3, K056832_DRAW_FLAG_MIRROR, 1); + m_k056832->tilemap_draw(screen, bitmap, cliprect, 2, K056832_DRAW_FLAG_MIRROR, 2); + m_k056832->tilemap_draw(screen, bitmap, cliprect, 1, K056832_DRAW_FLAG_MIRROR, 4); - m_k053244->k053245_sprites_draw_lethal(bitmap, cliprect); + m_k053244->k053245_sprites_draw_lethal(bitmap, cliprect, screen.priority()); // force "A" layer over top of everything - m_k056832->tilemap_draw(bitmap, cliprect, 0, K056832_DRAW_FLAG_MIRROR, 0); + m_k056832->tilemap_draw(screen, bitmap, cliprect, 0, K056832_DRAW_FLAG_MIRROR, 0); return 0; } diff --git a/src/mame/video/liberate.c b/src/mame/video/liberate.c index 62830fd5ad9..72af828ea5c 100644 --- a/src/mame/video/liberate.c +++ b/src/mame/video/liberate.c @@ -504,9 +504,9 @@ UINT32 liberate_state::screen_update_prosoccr(screen_device &screen, bitmap_ind1 if (m_background_disable) bitmap.fill(32, cliprect); else - m_back_tilemap->draw(bitmap, cliprect, 0, 0); + m_back_tilemap->draw(screen, bitmap, cliprect, 0, 0); - m_fix_tilemap->draw(bitmap, cliprect, 0, 0); + m_fix_tilemap->draw(screen, bitmap, cliprect, 0, 0); prosoccr_draw_sprites(bitmap, cliprect); return 0; @@ -529,7 +529,7 @@ UINT32 liberate_state::screen_update_prosport(screen_device &screen, bitmap_ind1 m_back_tilemap->set_scrolly(0, scrolly); m_back_tilemap->set_scrollx(0, -scrollx); - m_back_tilemap->draw(bitmap, cliprect, 0, 0); + m_back_tilemap->draw(screen, bitmap, cliprect, 0, 0); // popmessage("%d %02x %02x %02x %02x %02x %02x %02x %02x",scrollx,deco16_io_ram[0],deco16_io_ram[1],deco16_io_ram[2],deco16_io_ram[3] // ,deco16_io_ram[4],deco16_io_ram[5],deco16_io_ram[6],deco16_io_ram[7]); @@ -563,14 +563,14 @@ UINT32 liberate_state::screen_update_boomrang(screen_device &screen, bitmap_ind1 if (m_background_disable) bitmap.fill(32, cliprect); else - m_back_tilemap->draw(bitmap, cliprect, TILEMAP_DRAW_LAYER1, 0); + m_back_tilemap->draw(screen, bitmap, cliprect, TILEMAP_DRAW_LAYER1, 0); boomrang_draw_sprites(bitmap,cliprect,8); if (!m_background_disable) - m_back_tilemap->draw(bitmap, cliprect, TILEMAP_DRAW_LAYER0, 0); + m_back_tilemap->draw(screen, bitmap, cliprect, TILEMAP_DRAW_LAYER0, 0); boomrang_draw_sprites(bitmap, cliprect, 0); - m_fix_tilemap->draw(bitmap, cliprect, 0, 0); + m_fix_tilemap->draw(screen, bitmap, cliprect, 0, 0); return 0; } @@ -582,9 +582,9 @@ UINT32 liberate_state::screen_update_liberate(screen_device &screen, bitmap_ind1 if (m_background_disable) bitmap.fill(32, cliprect); else - m_back_tilemap->draw(bitmap, cliprect, 0, 0); + m_back_tilemap->draw(screen, bitmap, cliprect, 0, 0); liberate_draw_sprites(bitmap, cliprect); - m_fix_tilemap->draw(bitmap, cliprect, 0, 0); + m_fix_tilemap->draw(screen, bitmap, cliprect, 0, 0); return 0; } diff --git a/src/mame/video/lkage.c b/src/mame/video/lkage.c index 40c848681a1..932d65e57d2 100644 --- a/src/mame/video/lkage.c +++ b/src/mame/video/lkage.c @@ -97,7 +97,7 @@ void lkage_state::video_start() } -void lkage_state::draw_sprites( bitmap_ind16 &bitmap, const rectangle &cliprect ) +void lkage_state::draw_sprites( screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect ) { const UINT8 *source = m_spriteram; const UINT8 *finish = source + 0x60; @@ -157,7 +157,7 @@ void lkage_state::draw_sprites( bitmap_ind16 &bitmap, const rectangle &cliprect flipx,flipy, sx&0xff, sy + 16*y, - machine().priority_bitmap, + screen.priority(), priority_mask,0 ); } source += 4; @@ -206,17 +206,17 @@ UINT32 lkage_state::screen_update_lkage(screen_device &screen, bitmap_ind16 &bit m_bg_tilemap->set_scrollx(0, m_scroll[4]); m_bg_tilemap->set_scrolly(0, m_scroll[5]); - machine().priority_bitmap.fill(0, cliprect); + screen.priority().fill(0, cliprect); if ((m_vreg[2] & 0xf0) == 0xf0) { - m_bg_tilemap->draw(bitmap, cliprect, 0, 1); - m_fg_tilemap->draw(bitmap, cliprect, 0, (m_vreg[1] & 2) ? 2 : 4); - m_tx_tilemap->draw(bitmap, cliprect, 0, 4); - draw_sprites(bitmap, cliprect); + m_bg_tilemap->draw(screen, bitmap, cliprect, 0, 1); + m_fg_tilemap->draw(screen, bitmap, cliprect, 0, (m_vreg[1] & 2) ? 2 : 4); + m_tx_tilemap->draw(screen, bitmap, cliprect, 0, 4); + draw_sprites(screen, bitmap, cliprect); } else { - m_tx_tilemap->draw(bitmap, cliprect, TILEMAP_DRAW_OPAQUE, 0); + m_tx_tilemap->draw(screen, bitmap, cliprect, TILEMAP_DRAW_OPAQUE, 0); } return 0; diff --git a/src/mame/video/lockon.c b/src/mame/video/lockon.c index 37b671d2c85..ad1b3ebb8d9 100644 --- a/src/mame/video/lockon.c +++ b/src/mame/video/lockon.c @@ -920,7 +920,7 @@ UINT32 lockon_state::screen_update_lockon(screen_device &screen, bitmap_ind16 &b rotate_draw(bitmap, cliprect); /* Draw the character tilemap */ - m_tilemap->draw(bitmap, cliprect, 0, 0); + m_tilemap->draw(screen, bitmap, cliprect, 0, 0); /* Draw the HUD */ hud_draw(bitmap, cliprect); diff --git a/src/mame/video/lordgun.c b/src/mame/video/lordgun.c index b0168f4404b..98f4d4a19f3 100644 --- a/src/mame/video/lordgun.c +++ b/src/mame/video/lordgun.c @@ -364,10 +364,10 @@ UINT32 lordgun_state::screen_update_lordgun(screen_device &screen, bitmap_ind16 for (l = 0; l < 5; l++) m_bitmaps[l]->fill(trans_pen, cliprect); - if (layers_ctrl & 1) m_tilemap[0]->draw(*m_bitmaps[0], cliprect, 0, 0); - if (layers_ctrl & 2) m_tilemap[1]->draw(*m_bitmaps[1], cliprect, 0, 0); - if (layers_ctrl & 4) m_tilemap[2]->draw(*m_bitmaps[2], cliprect, 0, 0); - if (layers_ctrl & 8) m_tilemap[3]->draw(*m_bitmaps[3], cliprect, 0, 0); + if (layers_ctrl & 1) m_tilemap[0]->draw(screen, *m_bitmaps[0], cliprect, 0, 0); + if (layers_ctrl & 2) m_tilemap[1]->draw(screen, *m_bitmaps[1], cliprect, 0, 0); + if (layers_ctrl & 4) m_tilemap[2]->draw(screen, *m_bitmaps[2], cliprect, 0, 0); + if (layers_ctrl & 8) m_tilemap[3]->draw(screen, *m_bitmaps[3], cliprect, 0, 0); if (layers_ctrl & 16) draw_sprites(*m_bitmaps[4], cliprect); // copy to screen bitmap diff --git a/src/mame/video/lucky74.c b/src/mame/video/lucky74.c index a921d23c449..49f32e7f533 100644 --- a/src/mame/video/lucky74.c +++ b/src/mame/video/lucky74.c @@ -237,7 +237,7 @@ void lucky74_state::video_start() UINT32 lucky74_state::screen_update_lucky74(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect) { - m_bg_tilemap->draw(bitmap, cliprect, 0, 0); - m_fg_tilemap->draw(bitmap, cliprect, 0, 0); + m_bg_tilemap->draw(screen, bitmap, cliprect, 0, 0); + m_fg_tilemap->draw(screen, bitmap, cliprect, 0, 0); return 0; } diff --git a/src/mame/video/lvcards.c b/src/mame/video/lvcards.c index 1fb63ecb08c..6e649c38577 100644 --- a/src/mame/video/lvcards.c +++ b/src/mame/video/lvcards.c @@ -112,6 +112,6 @@ void lvcards_state::video_start() UINT32 lvcards_state::screen_update_lvcards(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect) { - m_bg_tilemap->draw(bitmap, cliprect, 0, 0); + m_bg_tilemap->draw(screen, bitmap, cliprect, 0, 0); return 0; } diff --git a/src/mame/video/lwings.c b/src/mame/video/lwings.c index 015ac256eca..90f9f403542 100644 --- a/src/mame/video/lwings.c +++ b/src/mame/video/lwings.c @@ -253,18 +253,18 @@ void lwings_state::trojan_draw_sprites( bitmap_ind16 &bitmap, const rectangle &c UINT32 lwings_state::screen_update_lwings(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect) { - m_bg1_tilemap->draw(bitmap, cliprect, 0, 0); + m_bg1_tilemap->draw(screen, bitmap, cliprect, 0, 0); lwings_draw_sprites(bitmap, cliprect); - m_fg_tilemap->draw(bitmap, cliprect, 0, 0); + m_fg_tilemap->draw(screen, bitmap, cliprect, 0, 0); return 0; } UINT32 lwings_state::screen_update_trojan(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect) { - m_bg2_tilemap->draw(bitmap, cliprect, 0, 0); - m_bg1_tilemap->draw(bitmap, cliprect, TILEMAP_DRAW_LAYER1, 0); + m_bg2_tilemap->draw(screen, bitmap, cliprect, 0, 0); + m_bg1_tilemap->draw(screen, bitmap, cliprect, TILEMAP_DRAW_LAYER1, 0); trojan_draw_sprites(bitmap, cliprect); - m_bg1_tilemap->draw(bitmap, cliprect, TILEMAP_DRAW_LAYER0, 0); - m_fg_tilemap->draw(bitmap, cliprect, 0, 0); + m_bg1_tilemap->draw(screen, bitmap, cliprect, TILEMAP_DRAW_LAYER0, 0); + m_fg_tilemap->draw(screen, bitmap, cliprect, 0, 0); return 0; } diff --git a/src/mame/video/m10.c b/src/mame/video/m10.c index 23e94d643c8..c01820eaac3 100644 --- a/src/mame/video/m10.c +++ b/src/mame/video/m10.c @@ -150,7 +150,7 @@ UINT32 m10_state::screen_update_m10(screen_device &screen, bitmap_ind16 &bitmap, m_tx_tilemap->mark_tile_dirty(offs); m_tx_tilemap->set_flip(m_flip ? TILEMAP_FLIPX | TILEMAP_FLIPY : 0); - m_tx_tilemap->draw(bitmap, cliprect, 0, 0); + m_tx_tilemap->draw(screen, bitmap, cliprect, 0, 0); return 0; } @@ -171,7 +171,7 @@ UINT32 m10_state::screen_update_m15(screen_device &screen, bitmap_ind16 &bitmap, //m_tx_tilemap->mark_all_dirty(); m_tx_tilemap->set_flip(m_flip ? TILEMAP_FLIPX | TILEMAP_FLIPY : 0); - m_tx_tilemap->draw(bitmap, cliprect, 0, 0); + m_tx_tilemap->draw(screen, bitmap, cliprect, 0, 0); return 0; } diff --git a/src/mame/video/m107.c b/src/mame/video/m107.c index 0626663b832..4d6b805c1fb 100644 --- a/src/mame/video/m107.c +++ b/src/mame/video/m107.c @@ -146,7 +146,7 @@ void m107_state::video_start() /*****************************************************************************/ -void m107_state::draw_sprites(bitmap_ind16 &bitmap, const rectangle &cliprect) +void m107_state::draw_sprites(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect) { UINT16 *spriteram = m_buffered_spriteram; int offs; @@ -189,7 +189,7 @@ void m107_state::draw_sprites(bitmap_ind16 &bitmap, const rectangle &cliprect) colour, fx,fy, x,y-i*16, - machine().priority_bitmap,pri_mask,0); + screen.priority(),pri_mask,0); /* wrap-around y */ pdrawgfx_transpen(bitmap,cliprect,machine().gfx[1], @@ -197,7 +197,7 @@ void m107_state::draw_sprites(bitmap_ind16 &bitmap, const rectangle &cliprect) colour, fx,fy, x,(y-i*16) - 0x200, - machine().priority_bitmap,pri_mask,0); + screen.priority(),pri_mask,0); if (fy) s_ptr++; else s_ptr--; } @@ -246,7 +246,7 @@ void m107_state::draw_sprites(bitmap_ind16 &bitmap, const rectangle &cliprect) colour, ffx,ffy, (x+xdisp)&0x1ff,(y-ydisp-16*i)&0x1ff, - machine().priority_bitmap,pri_mask,0); + screen.priority(),pri_mask,0); /* wrap-around y */ pdrawgfx_transpen(bitmap,cliprect,machine().gfx[1], @@ -254,7 +254,7 @@ void m107_state::draw_sprites(bitmap_ind16 &bitmap, const rectangle &cliprect) colour, ffx,ffy, (x+xdisp)&0x1ff,((y-ydisp-16*i)&0x1ff)-0x200, - machine().priority_bitmap,pri_mask,0); + screen.priority(),pri_mask,0); } if (rom[rom_offs+1]&0x80) break; /* end of block */ @@ -307,7 +307,7 @@ void m107_state::m107_update_scroll_positions() /*****************************************************************************/ -void m107_state::m107_tilemap_draw(bitmap_ind16 &bitmap, const rectangle &cliprect, int laynum, int category,int opaque) +void m107_state::m107_tilemap_draw(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect, int laynum, int category,int opaque) { int line; rectangle clip; @@ -324,36 +324,36 @@ void m107_state::m107_tilemap_draw(bitmap_ind16 &bitmap, const rectangle &clipre m_pf_layer[laynum].tmap->set_scrollx(0, m_control[1 + 2 * laynum]); m_pf_layer[laynum].tmap->set_scrolly(0, (m_control[0 + 2 * laynum] + scrolldata[line])); - m_pf_layer[laynum].tmap->draw(bitmap, clip, category | opaque, category); + m_pf_layer[laynum].tmap->draw(screen, bitmap, clip, category | opaque, category); } } else - m_pf_layer[laynum].tmap->draw(bitmap, cliprect, category | opaque, category); + m_pf_layer[laynum].tmap->draw(screen, bitmap, cliprect, category | opaque, category); } -void m107_state::m107_screenrefresh(bitmap_ind16 &bitmap, const rectangle &cliprect) +void m107_state::m107_screenrefresh(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect) { - machine().priority_bitmap.fill(0, cliprect); + screen.priority().fill(0, cliprect); if ((~m_control[0x0b] >> 7) & 1) { - m107_tilemap_draw(bitmap, cliprect, 3, 0,0); - m107_tilemap_draw(bitmap, cliprect, 3, 1,0); + m107_tilemap_draw(screen, bitmap, cliprect, 3, 0,0); + m107_tilemap_draw(screen, bitmap, cliprect, 3, 1,0); } else bitmap.fill(0, cliprect); /* note: the opaque flag is used if layer 3 is disabled, noticeable in World PK Soccer title and gameplay screens */ - m107_tilemap_draw(bitmap, cliprect, 2, 0,(((m_control[0x0b] >> 7) & 1) ? TILEMAP_DRAW_OPAQUE : 0)); - m107_tilemap_draw(bitmap, cliprect, 1, 0,0); - m107_tilemap_draw(bitmap, cliprect, 0, 0,0); - m107_tilemap_draw(bitmap, cliprect, 2, 1,0); - m107_tilemap_draw(bitmap, cliprect, 1, 1,0); - m107_tilemap_draw(bitmap, cliprect, 0, 1,0); + m107_tilemap_draw(screen, bitmap, cliprect, 2, 0,(((m_control[0x0b] >> 7) & 1) ? TILEMAP_DRAW_OPAQUE : 0)); + m107_tilemap_draw(screen, bitmap, cliprect, 1, 0,0); + m107_tilemap_draw(screen, bitmap, cliprect, 0, 0,0); + m107_tilemap_draw(screen, bitmap, cliprect, 2, 1,0); + m107_tilemap_draw(screen, bitmap, cliprect, 1, 1,0); + m107_tilemap_draw(screen, bitmap, cliprect, 0, 1,0); if(m_sprite_display) - draw_sprites(bitmap, cliprect); + draw_sprites(screen, bitmap, cliprect); /* This hardware probably has more priority values - but I haven't found any used yet */ @@ -379,6 +379,6 @@ WRITE16_MEMBER(m107_state::m107_spritebuffer_w) UINT32 m107_state::screen_update_m107(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect) { m107_update_scroll_positions(); - m107_screenrefresh(bitmap, cliprect); + m107_screenrefresh(screen, bitmap, cliprect); return 0; } diff --git a/src/mame/video/m52.c b/src/mame/video/m52.c index 48bd6e67cf3..ea6f31a172b 100644 --- a/src/mame/video/m52.c +++ b/src/mame/video/m52.c @@ -368,7 +368,7 @@ UINT32 m52_state::screen_update_m52(screen_device &screen, bitmap_ind16 &bitmap, m_bg_tilemap->set_flip(flip_screen() ? TILEMAP_FLIPX | TILEMAP_FLIPY : 0); - m_bg_tilemap->draw(bitmap, cliprect, 0, 0); + m_bg_tilemap->draw(screen, bitmap, cliprect, 0, 0); /* draw the sprites */ for (offs = 0xfc; offs >= 0; offs -= 4) diff --git a/src/mame/video/m57.c b/src/mame/video/m57.c index ce67a6c3d86..a731b6743a8 100644 --- a/src/mame/video/m57.c +++ b/src/mame/video/m57.c @@ -170,7 +170,7 @@ WRITE8_MEMBER(m57_state::m57_flipscreen_w) * *************************************/ -void m57_state::draw_background(bitmap_ind16 &bitmap, const rectangle &cliprect) +void m57_state::draw_background(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect) { int y,x; INT16 scrolly; @@ -179,7 +179,7 @@ void m57_state::draw_background(bitmap_ind16 &bitmap, const rectangle &cliprect) for (y = 64; y < 128; y++) m_bg_tilemap->set_scrollx(y, m_scrollram[0x40]); - m_bg_tilemap->draw(bitmap, cliprect, 0, 0); + m_bg_tilemap->draw(screen, bitmap, cliprect, 0, 0); // from 128 to 255: wrapped for (y = 128; y <= cliprect.max_y; y++) @@ -260,7 +260,7 @@ void m57_state::draw_sprites(bitmap_ind16 &bitmap, const rectangle &cliprect) UINT32 m57_state::screen_update_m57(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect) { - draw_background(bitmap, cliprect); + draw_background(screen, bitmap, cliprect); draw_sprites(bitmap, cliprect); return 0; } diff --git a/src/mame/video/m58.c b/src/mame/video/m58.c index 91ddf225b12..e510a35a958 100644 --- a/src/mame/video/m58.c +++ b/src/mame/video/m58.c @@ -298,7 +298,7 @@ UINT32 m58_state::screen_update_yard(screen_device &screen, bitmap_ind16 &bitmap m_bg_tilemap->set_scrollx(0, (*m_yard_scroll_x_high * 0x100) + *m_yard_scroll_x_low); m_bg_tilemap->set_scrolly(0, *m_yard_scroll_y_low); - m_bg_tilemap->draw(bitmap, cliprect, 0, 0); + m_bg_tilemap->draw(screen, bitmap, cliprect, 0, 0); draw_sprites(bitmap, cliprect); draw_panel(bitmap, cliprect); return 0; diff --git a/src/mame/video/m62.c b/src/mame/video/m62.c index 095707c5552..c2c2e3a4edb 100644 --- a/src/mame/video/m62.c +++ b/src/mame/video/m62.c @@ -469,9 +469,9 @@ UINT32 m62_state::screen_update_kungfum(screen_device &screen, bitmap_ind16 &bit { m_bg_tilemap->set_scrollx(i, m_m62_background_hscroll); } - m_bg_tilemap->draw(bitmap, cliprect, 0, 0); + m_bg_tilemap->draw(screen, bitmap, cliprect, 0, 0); draw_sprites(bitmap, cliprect, 0x1f, 0x00, 0x00); - m_bg_tilemap->draw(bitmap, cliprect, 1, 0); + m_bg_tilemap->draw(screen, bitmap, cliprect, 1, 0); return 0; } @@ -507,9 +507,9 @@ UINT32 m62_state::screen_update_ldrun(screen_device &screen, bitmap_ind16 &bitma m_bg_tilemap->set_scrollx(0, m_m62_background_hscroll); m_bg_tilemap->set_scrolly(0, m_m62_background_vscroll); - m_bg_tilemap->draw(bitmap, cliprect, TILEMAP_DRAW_LAYER1, 0); + m_bg_tilemap->draw(screen, bitmap, cliprect, TILEMAP_DRAW_LAYER1, 0); draw_sprites(bitmap, cliprect, 0x0f, 0x10, 0x00); - m_bg_tilemap->draw(bitmap, cliprect, TILEMAP_DRAW_LAYER0, 0); + m_bg_tilemap->draw(screen, bitmap, cliprect, TILEMAP_DRAW_LAYER0, 0); draw_sprites(bitmap, cliprect, 0x0f, 0x10, 0x10); return 0; } @@ -611,11 +611,11 @@ UINT32 m62_state::screen_update_battroad(screen_device &screen, bitmap_ind16 &bi m_fg_tilemap->set_scrolly(0, 0); m_fg_tilemap->set_transparent_pen(0); - m_bg_tilemap->draw(bitmap, cliprect, TILEMAP_DRAW_LAYER1, 0); + m_bg_tilemap->draw(screen, bitmap, cliprect, TILEMAP_DRAW_LAYER1, 0); draw_sprites(bitmap, cliprect, 0x0f, 0x10, 0x00); - m_bg_tilemap->draw(bitmap, cliprect, TILEMAP_DRAW_LAYER0, 0); + m_bg_tilemap->draw(screen, bitmap, cliprect, TILEMAP_DRAW_LAYER0, 0); draw_sprites(bitmap, cliprect, 0x0f, 0x10, 0x10); - m_fg_tilemap->draw(bitmap, cliprect, 0, 0); + m_fg_tilemap->draw(screen, bitmap, cliprect, 0, 0); return 0; } @@ -640,7 +640,7 @@ UINT32 m62_state::screen_update_ldrun4(screen_device &screen, bitmap_ind16 &bitm { m_bg_tilemap->set_scrollx(0, m_m62_background_hscroll - 2); - m_bg_tilemap->draw(bitmap, cliprect, 0, 0); + m_bg_tilemap->draw(screen, bitmap, cliprect, 0, 0); draw_sprites(bitmap, cliprect, 0x1f, 0x00, 0x00); return 0; } @@ -684,8 +684,8 @@ UINT32 m62_state::screen_update_lotlot(screen_device &screen, bitmap_ind16 &bitm m_fg_tilemap->set_scrolly(0, 32); m_fg_tilemap->set_transparent_pen(0); - m_bg_tilemap->draw(bitmap, cliprect, 0, 0); - m_fg_tilemap->draw(bitmap, cliprect, 0, 0); + m_bg_tilemap->draw(screen, bitmap, cliprect, 0, 0); + m_fg_tilemap->draw(screen, bitmap, cliprect, 0, 0); draw_sprites(bitmap, cliprect, 0x1f, 0x00, 0x00); return 0; } @@ -747,10 +747,10 @@ UINT32 m62_state::screen_update_kidniki(screen_device &screen, bitmap_ind16 &bit m_fg_tilemap->set_scrolly(0, m_kidniki_text_vscroll + 128); m_fg_tilemap->set_transparent_pen(0); - m_bg_tilemap->draw(bitmap, cliprect, TILEMAP_DRAW_LAYER1, 0); + m_bg_tilemap->draw(screen, bitmap, cliprect, TILEMAP_DRAW_LAYER1, 0); draw_sprites(bitmap, cliprect, 0x1f, 0x00, 0x00); - m_bg_tilemap->draw(bitmap, cliprect, TILEMAP_DRAW_LAYER0, 0); - m_fg_tilemap->draw(bitmap, cliprect, 0, 0); + m_bg_tilemap->draw(screen, bitmap, cliprect, TILEMAP_DRAW_LAYER0, 0); + m_fg_tilemap->draw(screen, bitmap, cliprect, 0, 0); return 0; } @@ -798,9 +798,9 @@ UINT32 m62_state::screen_update_spelunkr(screen_device &screen, bitmap_ind16 &bi m_fg_tilemap->set_scrolly(0, 0); m_fg_tilemap->set_transparent_pen(0); - m_bg_tilemap->draw(bitmap, cliprect, 0, 0); + m_bg_tilemap->draw(screen, bitmap, cliprect, 0, 0); draw_sprites(bitmap, cliprect, 0x1f, 0x00, 0x00); - m_fg_tilemap->draw(bitmap, cliprect, 0, 0); + m_fg_tilemap->draw(screen, bitmap, cliprect, 0, 0); return 0; } @@ -840,9 +840,9 @@ UINT32 m62_state::screen_update_spelunk2(screen_device &screen, bitmap_ind16 &bi m_fg_tilemap->set_scrolly(0, 0); m_fg_tilemap->set_transparent_pen(0); - m_bg_tilemap->draw(bitmap, cliprect, 0, 0); + m_bg_tilemap->draw(screen, bitmap, cliprect, 0, 0); draw_sprites(bitmap, cliprect, 0x1f, 0x00, 0x00); - m_fg_tilemap->draw(bitmap, cliprect, 0, 0); + m_fg_tilemap->draw(screen, bitmap, cliprect, 0, 0); return 0; } @@ -884,10 +884,10 @@ UINT32 m62_state::screen_update_youjyudn(screen_device &screen, bitmap_ind16 &bi m_fg_tilemap->set_scrolly(0, 0); m_fg_tilemap->set_transparent_pen(0); - m_bg_tilemap->draw(bitmap, cliprect, TILEMAP_DRAW_LAYER1, 0); + m_bg_tilemap->draw(screen, bitmap, cliprect, TILEMAP_DRAW_LAYER1, 0); draw_sprites(bitmap, cliprect, 0x1f, 0x00, 0x00); - m_bg_tilemap->draw(bitmap, cliprect, TILEMAP_DRAW_LAYER0, 0); - m_fg_tilemap->draw(bitmap, cliprect, 0, 0); + m_bg_tilemap->draw(screen, bitmap, cliprect, TILEMAP_DRAW_LAYER0, 0); + m_fg_tilemap->draw(screen, bitmap, cliprect, 0, 0); return 0; } @@ -925,8 +925,8 @@ UINT32 m62_state::screen_update_horizon(screen_device &screen, bitmap_ind16 &bit { m_bg_tilemap->set_scrollx(i, m_scrollram[i << 1] | (m_scrollram[(i << 1) | 1] << 8)); } - m_bg_tilemap->draw(bitmap, cliprect, TILEMAP_DRAW_LAYER1, 0); + m_bg_tilemap->draw(screen, bitmap, cliprect, TILEMAP_DRAW_LAYER1, 0); draw_sprites(bitmap, cliprect, 0x1f, 0x00, 0x00); - m_bg_tilemap->draw(bitmap, cliprect, TILEMAP_DRAW_LAYER0, 0); + m_bg_tilemap->draw(screen, bitmap, cliprect, TILEMAP_DRAW_LAYER0, 0); return 0; } diff --git a/src/mame/video/m72.c b/src/mame/video/m72.c index 746823e6fc6..0045bd82495 100644 --- a/src/mame/video/m72.c +++ b/src/mame/video/m72.c @@ -528,11 +528,11 @@ UINT32 m72_state::screen_update_m72(screen_device &screen, bitmap_ind16 &bitmap, m_bg_tilemap->set_scrollx(0,m_scrollx2); m_bg_tilemap->set_scrolly(0,m_scrolly2); - m_bg_tilemap->draw(bitmap, cliprect, TILEMAP_DRAW_LAYER1,0); - m_fg_tilemap->draw(bitmap, cliprect, TILEMAP_DRAW_LAYER1,0); + m_bg_tilemap->draw(screen, bitmap, cliprect, TILEMAP_DRAW_LAYER1,0); + m_fg_tilemap->draw(screen, bitmap, cliprect, TILEMAP_DRAW_LAYER1,0); m72_draw_sprites(bitmap,cliprect); - m_bg_tilemap->draw(bitmap, cliprect, TILEMAP_DRAW_LAYER0,0); - m_fg_tilemap->draw(bitmap, cliprect, TILEMAP_DRAW_LAYER0,0); + m_bg_tilemap->draw(screen, bitmap, cliprect, TILEMAP_DRAW_LAYER0,0); + m_fg_tilemap->draw(screen, bitmap, cliprect, TILEMAP_DRAW_LAYER0,0); return 0; } @@ -564,11 +564,11 @@ UINT32 m72_state::screen_update_majtitle(screen_device &screen, bitmap_ind16 &bi } m_bg_tilemap->set_scrolly(0,m_scrolly2); - m_bg_tilemap->draw(bitmap, cliprect, TILEMAP_DRAW_LAYER1,0); - m_fg_tilemap->draw(bitmap, cliprect, TILEMAP_DRAW_LAYER1,0); + m_bg_tilemap->draw(screen, bitmap, cliprect, TILEMAP_DRAW_LAYER1,0); + m_fg_tilemap->draw(screen, bitmap, cliprect, TILEMAP_DRAW_LAYER1,0); majtitle_draw_sprites(bitmap,cliprect); m72_draw_sprites(bitmap,cliprect); - m_bg_tilemap->draw(bitmap, cliprect, TILEMAP_DRAW_LAYER0,0); - m_fg_tilemap->draw(bitmap, cliprect, TILEMAP_DRAW_LAYER0,0); + m_bg_tilemap->draw(screen, bitmap, cliprect, TILEMAP_DRAW_LAYER0,0); + m_fg_tilemap->draw(screen, bitmap, cliprect, TILEMAP_DRAW_LAYER0,0); return 0; } diff --git a/src/mame/video/m90.c b/src/mame/video/m90.c index b0958a198fb..5f2e8ec5ee6 100644 --- a/src/mame/video/m90.c +++ b/src/mame/video/m90.c @@ -133,7 +133,7 @@ VIDEO_START_MEMBER(m90_state,dynablsb) save_item(NAME(m_video_control_data)); } -void m90_state::draw_sprites(bitmap_ind16 &bitmap,const rectangle &cliprect) +void m90_state::draw_sprites(screen_device &screen, bitmap_ind16 &bitmap,const rectangle &cliprect) { UINT16 *spriteram = m_video_data + 0xee00/2;; int offs; @@ -165,7 +165,7 @@ void m90_state::draw_sprites(bitmap_ind16 &bitmap,const rectangle &cliprect) colour, fx,fy, x,y+i*16, - machine().priority_bitmap, + screen.priority(), (colour & 0x08) ? 0x00 : 0x02,0); else if (m_video_control_data[7] & 0x02) pdrawgfx_transpen(bitmap,cliprect,machine().gfx[1], @@ -173,7 +173,7 @@ void m90_state::draw_sprites(bitmap_ind16 &bitmap,const rectangle &cliprect) colour, fx,fy, x,y+i*16, - machine().priority_bitmap, + screen.priority(), ((colour & 0x0c)==0x0c) ? 0x00 : 0x02,0); else pdrawgfx_transpen(bitmap,cliprect,machine().gfx[1], @@ -181,12 +181,12 @@ void m90_state::draw_sprites(bitmap_ind16 &bitmap,const rectangle &cliprect) colour, fx,fy, x,y+i*16, - machine().priority_bitmap, + screen.priority(), 0x02,0); } } -void m90_state::bomblord_draw_sprites(bitmap_ind16 &bitmap,const rectangle &cliprect) +void m90_state::bomblord_draw_sprites(screen_device &screen, bitmap_ind16 &bitmap,const rectangle &cliprect) { UINT16 *spriteram16 = m_spriteram; int offs = 0, last_sprite = 0; @@ -220,12 +220,12 @@ void m90_state::bomblord_draw_sprites(bitmap_ind16 &bitmap,const rectangle &clip colour, fx,fy, x,y, - machine().priority_bitmap, + screen.priority(), (colour & 0x08) ? 0x00 : 0x02,0); } } -void m90_state::dynablsb_draw_sprites(bitmap_ind16 &bitmap,const rectangle &cliprect) +void m90_state::dynablsb_draw_sprites(screen_device &screen, bitmap_ind16 &bitmap,const rectangle &cliprect) { UINT16 *spriteram16 = m_spriteram; int offs = 0, last_sprite = 0; @@ -258,7 +258,7 @@ void m90_state::dynablsb_draw_sprites(bitmap_ind16 &bitmap,const rectangle &clip colour, fx,fy, x,y, - machine().priority_bitmap, + screen.priority(), (colour & 0x08) ? 0x00 : 0x02,0); } } @@ -351,7 +351,7 @@ UINT32 m90_state::screen_update_m90(screen_device &screen, bitmap_ind16 &bitmap, m_pf2_wide_layer->set_scrollx(0, m_video_control_data[3]+256-2 ); } - machine().priority_bitmap.fill(0, cliprect); + screen.priority().fill(0, cliprect); if (video_enable) { @@ -372,12 +372,12 @@ UINT32 m90_state::screen_update_m90(screen_device &screen, bitmap_ind16 &bitmap, if (m_video_control_data[6] & 0x4) { m_pf2_wide_layer->set_scrolly(0, 0x200 + m_video_data[0xfc00/2 + line]); - m_pf2_wide_layer->draw(bitmap, clip, 0,0); - m_pf2_wide_layer->draw(bitmap, clip, 1,1); + m_pf2_wide_layer->draw(screen, bitmap, clip, 0,0); + m_pf2_wide_layer->draw(screen, bitmap, clip, 1,1); } else { m_pf2_layer->set_scrolly(0, 0x200 + m_video_data[0xfc00/2 + line]); - m_pf2_layer->draw(bitmap, clip, 0,0); - m_pf2_layer->draw(bitmap, clip, 1,1); + m_pf2_layer->draw(screen, bitmap, clip, 0,0); + m_pf2_layer->draw(screen, bitmap, clip, 1,1); } } } @@ -386,12 +386,12 @@ UINT32 m90_state::screen_update_m90(screen_device &screen, bitmap_ind16 &bitmap, if (m_video_control_data[6] & 0x4) { m_pf2_wide_layer->set_scrolly(0, m_video_control_data[2] ); - m_pf2_wide_layer->draw(bitmap, cliprect, 0,0); - m_pf2_wide_layer->draw(bitmap, cliprect, 1,1); + m_pf2_wide_layer->draw(screen, bitmap, cliprect, 0,0); + m_pf2_wide_layer->draw(screen, bitmap, cliprect, 1,1); } else { m_pf2_layer->set_scrolly(0, m_video_control_data[2] ); - m_pf2_layer->draw(bitmap, cliprect, 0,0); - m_pf2_layer->draw(bitmap, cliprect, 1,1); + m_pf2_layer->draw(screen, bitmap, cliprect, 0,0); + m_pf2_layer->draw(screen, bitmap, cliprect, 1,1); } } } @@ -417,12 +417,12 @@ UINT32 m90_state::screen_update_m90(screen_device &screen, bitmap_ind16 &bitmap, if (m_video_control_data[5] & 0x4) { m_pf1_wide_layer->set_scrolly(0, 0x200 + m_video_data[0xf800/2 + line]); - m_pf1_wide_layer->draw(bitmap, clip, 0,0); - m_pf1_wide_layer->draw(bitmap, clip, 1,1); + m_pf1_wide_layer->draw(screen, bitmap, clip, 0,0); + m_pf1_wide_layer->draw(screen, bitmap, clip, 1,1); } else { m_pf1_layer->set_scrolly(0, 0x200 + m_video_data[0xf800/2 + line]); - m_pf1_layer->draw(bitmap, clip, 0,0); - m_pf1_layer->draw(bitmap, clip, 1,1); + m_pf1_layer->draw(screen, bitmap, clip, 0,0); + m_pf1_layer->draw(screen, bitmap, clip, 1,1); } } } @@ -431,17 +431,17 @@ UINT32 m90_state::screen_update_m90(screen_device &screen, bitmap_ind16 &bitmap, if (m_video_control_data[5] & 0x4) { m_pf1_wide_layer->set_scrolly(0, m_video_control_data[0] ); - m_pf1_wide_layer->draw(bitmap, cliprect, 0,0); - m_pf1_wide_layer->draw(bitmap, cliprect, 1,1); + m_pf1_wide_layer->draw(screen, bitmap, cliprect, 0,0); + m_pf1_wide_layer->draw(screen, bitmap, cliprect, 1,1); } else { m_pf1_layer->set_scrolly(0, m_video_control_data[0] ); - m_pf1_layer->draw(bitmap, cliprect, 0,0); - m_pf1_layer->draw(bitmap, cliprect, 1,1); + m_pf1_layer->draw(screen, bitmap, cliprect, 0,0); + m_pf1_layer->draw(screen, bitmap, cliprect, 1,1); } } } - draw_sprites(bitmap,cliprect); + draw_sprites(screen,bitmap,cliprect); } else { bitmap.fill(get_black_pen(machine()), cliprect); @@ -453,7 +453,7 @@ UINT32 m90_state::screen_update_m90(screen_device &screen, bitmap_ind16 &bitmap, UINT32 m90_state::screen_update_bomblord(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect) { int i; - machine().priority_bitmap.fill(0, cliprect); + screen.priority().fill(0, cliprect); bitmap.fill(get_black_pen(machine()), cliprect); /* Setup scrolling */ @@ -475,36 +475,36 @@ UINT32 m90_state::screen_update_bomblord(screen_device &screen, bitmap_ind16 &bi m_pf2_wide_layer->mark_all_dirty(); m_pf2_wide_layer->set_scrollx(0, m_video_data[0xf000/2]-16 ); m_pf2_wide_layer->set_scrolly(0, m_video_data[0xf008/2]+388 ); - m_pf2_wide_layer->draw(bitmap, cliprect, 0,0); - m_pf2_wide_layer->draw(bitmap, cliprect, 1,1); + m_pf2_wide_layer->draw(screen, bitmap, cliprect, 0,0); + m_pf2_wide_layer->draw(screen, bitmap, cliprect, 1,1); } else { m_pf2_layer->mark_all_dirty(); m_pf2_layer->set_scrollx(0, m_video_data[0xf000/2]-16 ); m_pf2_layer->set_scrolly(0, m_video_data[0xf008/2]-120 ); - m_pf2_layer->draw(bitmap, cliprect, 0,0); - m_pf2_layer->draw(bitmap, cliprect, 1,1); + m_pf2_layer->draw(screen, bitmap, cliprect, 0,0); + m_pf2_layer->draw(screen, bitmap, cliprect, 1,1); } if (m_video_control_data[6] & 0x04) { m_pf1_wide_layer->mark_all_dirty(); m_pf1_wide_layer->set_scrolly(0, m_video_data[0xf00c/2]+392 ); - m_pf1_wide_layer->draw(bitmap, cliprect, 0,0); - m_pf1_wide_layer->draw(bitmap, cliprect, 1,1); + m_pf1_wide_layer->draw(screen, bitmap, cliprect, 0,0); + m_pf1_wide_layer->draw(screen, bitmap, cliprect, 1,1); } else { m_pf1_layer->mark_all_dirty(); m_pf1_layer->set_scrolly(0, m_video_data[0xf00c/2]-116 ); - m_pf1_layer->draw(bitmap, cliprect, 0,0); - m_pf1_layer->draw(bitmap, cliprect, 1,1); + m_pf1_layer->draw(screen, bitmap, cliprect, 0,0); + m_pf1_layer->draw(screen, bitmap, cliprect, 1,1); } - bomblord_draw_sprites(bitmap,cliprect); + bomblord_draw_sprites(screen,bitmap,cliprect); return 0; } UINT32 m90_state::screen_update_dynablsb(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect) { - machine().priority_bitmap.fill(0, cliprect); + screen.priority().fill(0, cliprect); bitmap.fill(get_black_pen(machine()), cliprect); if (!(m_video_data[0xf008/2] & 0x4000)) { @@ -512,15 +512,15 @@ UINT32 m90_state::screen_update_dynablsb(screen_device &screen, bitmap_ind16 &bi m_pf1_wide_layer->set_scroll_rows(1); m_pf1_wide_layer->set_scrollx(0, m_video_data[0xf004/2]+64); m_pf1_wide_layer->set_scrolly(0, m_video_data[0xf006/2]+512); - m_pf1_wide_layer->draw(bitmap, cliprect, 0,0); - m_pf1_wide_layer->draw(bitmap, cliprect, 1,1); + m_pf1_wide_layer->draw(screen, bitmap, cliprect, 0,0); + m_pf1_wide_layer->draw(screen, bitmap, cliprect, 1,1); } else { m_pf1_layer->mark_all_dirty(); m_pf1_layer->set_scroll_rows(1); m_pf1_layer->set_scrollx(0, m_video_data[0xf004/2]+64); m_pf1_layer->set_scrolly(0, m_video_data[0xf006/2]+4); - m_pf1_layer->draw(bitmap, cliprect, 0,0); - m_pf1_layer->draw(bitmap, cliprect, 1,1); + m_pf1_layer->draw(screen, bitmap, cliprect, 0,0); + m_pf1_layer->draw(screen, bitmap, cliprect, 1,1); } if (!(m_video_data[0xf008/2] & 0x8000)) { @@ -528,18 +528,18 @@ UINT32 m90_state::screen_update_dynablsb(screen_device &screen, bitmap_ind16 &bi m_pf2_wide_layer->set_scroll_rows(1); m_pf2_wide_layer->set_scrollx(0, m_video_data[0xf000/2]+68); m_pf2_wide_layer->set_scrolly(0, m_video_data[0xf002/2]+512); - m_pf2_wide_layer->draw(bitmap, cliprect, 0,0); - m_pf2_wide_layer->draw(bitmap, cliprect, 1,1); + m_pf2_wide_layer->draw(screen, bitmap, cliprect, 0,0); + m_pf2_wide_layer->draw(screen, bitmap, cliprect, 1,1); } else { m_pf2_layer->mark_all_dirty(); m_pf2_layer->set_scroll_rows(1); m_pf2_layer->set_scrollx(0, m_video_data[0xf000/2]+68); m_pf2_layer->set_scrolly(0, m_video_data[0xf002/2]+4); - m_pf2_layer->draw(bitmap, cliprect, 0,0); - m_pf2_layer->draw(bitmap, cliprect, 1,1); + m_pf2_layer->draw(screen, bitmap, cliprect, 0,0); + m_pf2_layer->draw(screen, bitmap, cliprect, 1,1); } - dynablsb_draw_sprites(bitmap,cliprect); + dynablsb_draw_sprites(screen,bitmap,cliprect); return 0; } diff --git a/src/mame/video/m92.c b/src/mame/video/m92.c index eddf4ff02a6..f56c28a9ab4 100644 --- a/src/mame/video/m92.c +++ b/src/mame/video/m92.c @@ -316,7 +316,7 @@ VIDEO_START_MEMBER(m92_state,ppan) /*****************************************************************************/ -void m92_state::draw_sprites(bitmap_ind16 &bitmap, const rectangle &cliprect) +void m92_state::draw_sprites(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect) { UINT16 *source = m_spriteram->buffer(); int offs, layer; @@ -357,26 +357,26 @@ void m92_state::draw_sprites(bitmap_ind16 &bitmap, const rectangle &cliprect) pdrawgfx_transpen(bitmap,cliprect,machine().gfx[1], code + s_ptr, color, !flipx, !flipy, 464 - x, 240 - (y - row * 16), - machine().priority_bitmap, pri, 0); + screen.priority(), pri, 0); // wrap around x pdrawgfx_transpen(bitmap,cliprect,machine().gfx[1], code + s_ptr, color, !flipx, !flipy, 464 - x + 512, 240 - (y - row * 16), - machine().priority_bitmap, pri, 0); + screen.priority(), pri, 0); } else { pdrawgfx_transpen(bitmap,cliprect,machine().gfx[1], code + s_ptr, color, flipx, flipy, x, y - row * 16, - machine().priority_bitmap, pri, 0); + screen.priority(), pri, 0); // wrap around x pdrawgfx_transpen(bitmap,cliprect,machine().gfx[1], code + s_ptr, color, flipx, flipy, x - 512, y - row * 16, - machine().priority_bitmap, pri, 0); + screen.priority(), pri, 0); } if (flipy) s_ptr++; else s_ptr--; @@ -389,7 +389,7 @@ void m92_state::draw_sprites(bitmap_ind16 &bitmap, const rectangle &cliprect) } // This needs a lot of work... -void m92_state::ppan_draw_sprites(bitmap_ind16 &bitmap, const rectangle &cliprect) +void m92_state::ppan_draw_sprites(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect) { UINT16 *source = m_spriteram->live(); // sprite buffer control is never triggered int offs, layer; @@ -431,26 +431,26 @@ void m92_state::ppan_draw_sprites(bitmap_ind16 &bitmap, const rectangle &cliprec pdrawgfx_transpen(bitmap,cliprect,machine().gfx[1], code + s_ptr, color, !flipx, !flipy, 464 - x, 240 - (y - row * 16), - machine().priority_bitmap, pri, 0); + screen.priority(), pri, 0); // wrap around x pdrawgfx_transpen(bitmap,cliprect,machine().gfx[1], code + s_ptr, color, !flipx, !flipy, 464 - x + 512, 240 - (y - row * 16), - machine().priority_bitmap, pri, 0); + screen.priority(), pri, 0); } else { pdrawgfx_transpen(bitmap,cliprect,machine().gfx[1], code + s_ptr, color, flipx, flipy, x, y - row * 16, - machine().priority_bitmap, pri, 0); + screen.priority(), pri, 0); // wrap around x pdrawgfx_transpen(bitmap,cliprect,machine().gfx[1], code + s_ptr, color, flipx, flipy, x - 512, y - row * 16, - machine().priority_bitmap, pri, 0); + screen.priority(), pri, 0); } if (flipy) s_ptr++; else s_ptr--; @@ -511,36 +511,36 @@ void m92_state::m92_update_scroll_positions() /*****************************************************************************/ -void m92_state::m92_draw_tiles(bitmap_ind16 &bitmap,const rectangle &cliprect) +void m92_state::m92_draw_tiles(screen_device &screen, bitmap_ind16 &bitmap,const rectangle &cliprect) { if ((~m_pf_master_control[2] >> 4) & 1) { - m_pf_layer[2].wide_tmap->draw(bitmap, cliprect, TILEMAP_DRAW_LAYER1, 0); - m_pf_layer[2].tmap->draw(bitmap, cliprect, TILEMAP_DRAW_LAYER1, 0); - m_pf_layer[2].wide_tmap->draw(bitmap, cliprect, TILEMAP_DRAW_LAYER0, 1); - m_pf_layer[2].tmap->draw(bitmap, cliprect, TILEMAP_DRAW_LAYER0, 1); + m_pf_layer[2].wide_tmap->draw(screen, bitmap, cliprect, TILEMAP_DRAW_LAYER1, 0); + m_pf_layer[2].tmap->draw(screen, bitmap, cliprect, TILEMAP_DRAW_LAYER1, 0); + m_pf_layer[2].wide_tmap->draw(screen, bitmap, cliprect, TILEMAP_DRAW_LAYER0, 1); + m_pf_layer[2].tmap->draw(screen, bitmap, cliprect, TILEMAP_DRAW_LAYER0, 1); } - m_pf_layer[1].wide_tmap->draw(bitmap, cliprect, TILEMAP_DRAW_LAYER1, 0); - m_pf_layer[1].tmap->draw(bitmap, cliprect, TILEMAP_DRAW_LAYER1, 0); - m_pf_layer[1].wide_tmap->draw(bitmap, cliprect, TILEMAP_DRAW_LAYER0, 1); - m_pf_layer[1].tmap->draw(bitmap, cliprect, TILEMAP_DRAW_LAYER0, 1); + m_pf_layer[1].wide_tmap->draw(screen, bitmap, cliprect, TILEMAP_DRAW_LAYER1, 0); + m_pf_layer[1].tmap->draw(screen, bitmap, cliprect, TILEMAP_DRAW_LAYER1, 0); + m_pf_layer[1].wide_tmap->draw(screen, bitmap, cliprect, TILEMAP_DRAW_LAYER0, 1); + m_pf_layer[1].tmap->draw(screen, bitmap, cliprect, TILEMAP_DRAW_LAYER0, 1); - m_pf_layer[0].wide_tmap->draw(bitmap, cliprect, TILEMAP_DRAW_LAYER1, 0); - m_pf_layer[0].tmap->draw(bitmap, cliprect, TILEMAP_DRAW_LAYER1, 0); - m_pf_layer[0].wide_tmap->draw(bitmap, cliprect, TILEMAP_DRAW_LAYER0, 1); - m_pf_layer[0].tmap->draw(bitmap, cliprect, TILEMAP_DRAW_LAYER0, 1); + m_pf_layer[0].wide_tmap->draw(screen, bitmap, cliprect, TILEMAP_DRAW_LAYER1, 0); + m_pf_layer[0].tmap->draw(screen, bitmap, cliprect, TILEMAP_DRAW_LAYER1, 0); + m_pf_layer[0].wide_tmap->draw(screen, bitmap, cliprect, TILEMAP_DRAW_LAYER0, 1); + m_pf_layer[0].tmap->draw(screen, bitmap, cliprect, TILEMAP_DRAW_LAYER0, 1); } UINT32 m92_state::screen_update_m92(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect) { - machine().priority_bitmap.fill(0, cliprect); + screen.priority().fill(0, cliprect); bitmap.fill(0, cliprect); m92_update_scroll_positions(); - m92_draw_tiles(bitmap, cliprect); + m92_draw_tiles(screen, bitmap, cliprect); - draw_sprites(bitmap, cliprect); + draw_sprites(screen, bitmap, cliprect); /* Flipscreen appears hardwired to the dipswitch - strange */ if (ioport("DSW")->read() & 0x100) @@ -552,12 +552,12 @@ UINT32 m92_state::screen_update_m92(screen_device &screen, bitmap_ind16 &bitmap, UINT32 m92_state::screen_update_ppan(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect) { - machine().priority_bitmap.fill(0, cliprect); + screen.priority().fill(0, cliprect); bitmap.fill(0, cliprect); m92_update_scroll_positions(); - m92_draw_tiles(bitmap, cliprect); + m92_draw_tiles(screen, bitmap, cliprect); - ppan_draw_sprites(bitmap, cliprect); + ppan_draw_sprites(screen, bitmap, cliprect); /* Flipscreen appears hardwired to the dipswitch - strange */ if (ioport("DSW")->read() & 0x100) diff --git a/src/mame/video/macrossp.c b/src/mame/video/macrossp.c index 4290c88af74..22364493569 100644 --- a/src/mame/video/macrossp.c +++ b/src/mame/video/macrossp.c @@ -304,7 +304,7 @@ void macrossp_state::draw_sprites(bitmap_rgb32 &bitmap, const rectangle &cliprec } -void macrossp_state::draw_layer( bitmap_rgb32 &bitmap, const rectangle &cliprect, int layer ) +void macrossp_state::draw_layer( screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect, int layer ) { tilemap_t *tm; UINT32 *vr; @@ -341,7 +341,7 @@ void macrossp_state::draw_layer( bitmap_rgb32 &bitmap, const rectangle &cliprect startx -= (368/2) * inc; starty -= (240/2) * inc; - tm->draw_roz(bitmap, cliprect, + tm->draw_roz(screen, bitmap, cliprect, startx,starty,inc,0,0,inc, 1, /* wraparound */ 0,0); @@ -350,7 +350,7 @@ void macrossp_state::draw_layer( bitmap_rgb32 &bitmap, const rectangle &cliprect { tm->set_scrollx(0, ((vr[0] & 0x000003ff) >> 0 ) ); tm->set_scrolly(0, ((vr[0] & 0x03ff0000) >> 16) ); - tm->draw(bitmap, cliprect, 0, 0); + tm->draw(screen, bitmap, cliprect, 0, 0); } } @@ -385,14 +385,14 @@ UINT32 macrossp_state::screen_update_macrossp(screen_device &screen, bitmap_rgb3 sortlayers(layers, layerpri); - draw_layer(bitmap, cliprect, layers[0]); + draw_layer(screen, bitmap, cliprect, layers[0]); draw_sprites(bitmap, cliprect, 0); - draw_layer(bitmap, cliprect, layers[1]); + draw_layer(screen, bitmap, cliprect, layers[1]); draw_sprites(bitmap, cliprect, 1); - draw_layer(bitmap, cliprect, layers[2]); + draw_layer(screen, bitmap, cliprect, layers[2]); draw_sprites(bitmap, cliprect, 2); draw_sprites(bitmap, cliprect, 3); - m_text_tilemap->draw(bitmap, cliprect, 0, 0); + m_text_tilemap->draw(screen, bitmap, cliprect, 0, 0); #if 0 popmessage ("scra - %08x %08x %08x\nscrb - %08x %08x %08x\nscrc - %08x %08x %08x", diff --git a/src/mame/video/madalien.c b/src/mame/video/madalien.c index 1ca48d5527a..a73cf9995be 100644 --- a/src/mame/video/madalien.c +++ b/src/mame/video/madalien.c @@ -159,7 +159,7 @@ VIDEO_START_MEMBER(madalien_state,madalien) } -void madalien_state::draw_edges(bitmap_ind16 &bitmap, const rectangle &cliprect, int flip, int scroll_mode) +void madalien_state::draw_edges(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect, int flip, int scroll_mode) { rectangle clip_edge1; rectangle clip_edge2; @@ -192,8 +192,8 @@ void madalien_state::draw_edges(bitmap_ind16 &bitmap, const rectangle &cliprect, m_tilemap_edge2[scroll_mode]->set_scrollx(0, -(*m_scroll & 0xfc)); m_tilemap_edge2[scroll_mode]->set_scrolly(0, *m_edge2_pos & 0x7f); - m_tilemap_edge1[scroll_mode]->draw(bitmap, clip_edge1, 0, 0); - m_tilemap_edge2[scroll_mode]->draw(bitmap, clip_edge2, 0, 0); + m_tilemap_edge1[scroll_mode]->draw(screen, bitmap, clip_edge1, 0, 0); + m_tilemap_edge2[scroll_mode]->draw(screen, bitmap, clip_edge2, 0, 0); } @@ -232,10 +232,10 @@ void madalien_state::draw_headlight(bitmap_ind16 &bitmap, const rectangle &clipr } -void madalien_state::draw_foreground(bitmap_ind16 &bitmap, const rectangle &cliprect, int flip) +void madalien_state::draw_foreground(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect, int flip) { m_tilemap_fg->set_flip(flip ? TILEMAP_FLIPX | TILEMAP_FLIPY : 0); - m_tilemap_fg->draw(bitmap, cliprect, 0, 0); + m_tilemap_fg->draw(screen, bitmap, cliprect, 0, 0); } @@ -260,8 +260,8 @@ UINT32 madalien_state::screen_update_madalien(screen_device &screen, bitmap_ind1 int scroll_mode = *m_scroll & 3; bitmap.fill(0, cliprect); - draw_edges(bitmap, cliprect, flip, scroll_mode); - draw_foreground(bitmap, cliprect, flip); + draw_edges(screen, bitmap, cliprect, flip, scroll_mode); + draw_foreground(screen, bitmap, cliprect, flip); /* highlight section A (outside of tunnels). * also, bit 1 of the video_flags register (6A) is diff --git a/src/mame/video/mainevt.c b/src/mame/video/mainevt.c index 21f092f2f25..652cf82e86c 100644 --- a/src/mame/video/mainevt.c +++ b/src/mame/video/mainevt.c @@ -95,13 +95,13 @@ UINT32 mainevt_state::screen_update_mainevt(screen_device &screen, bitmap_ind16 { m_k052109->tilemap_update(); - machine().priority_bitmap.fill(0, cliprect); - m_k052109->tilemap_draw(bitmap, cliprect, 1, TILEMAP_DRAW_OPAQUE, 1); - m_k052109->tilemap_draw(bitmap, cliprect, 2, 1, 2); /* low priority part of layer */ - m_k052109->tilemap_draw(bitmap, cliprect, 2, 0, 4); /* high priority part of layer */ - m_k052109->tilemap_draw(bitmap, cliprect, 0, 0, 8); + screen.priority().fill(0, cliprect); + m_k052109->tilemap_draw(screen, bitmap, cliprect, 1, TILEMAP_DRAW_OPAQUE, 1); + m_k052109->tilemap_draw(screen, bitmap, cliprect, 2, 1, 2); /* low priority part of layer */ + m_k052109->tilemap_draw(screen, bitmap, cliprect, 2, 0, 4); /* high priority part of layer */ + m_k052109->tilemap_draw(screen, bitmap, cliprect, 0, 0, 8); - m_k051960->k051960_sprites_draw(bitmap, cliprect, -1, -1); + m_k051960->k051960_sprites_draw(bitmap, cliprect, screen.priority(), -1, -1); return 0; } @@ -109,9 +109,9 @@ UINT32 mainevt_state::screen_update_dv(screen_device &screen, bitmap_ind16 &bitm { m_k052109->tilemap_update(); - m_k052109->tilemap_draw(bitmap, cliprect, 1, TILEMAP_DRAW_OPAQUE, 0); - m_k052109->tilemap_draw(bitmap, cliprect, 2, 0, 0); - m_k051960->k051960_sprites_draw(bitmap, cliprect, 0, 0); - m_k052109->tilemap_draw(bitmap, cliprect, 0, 0, 0); + m_k052109->tilemap_draw(screen, bitmap, cliprect, 1, TILEMAP_DRAW_OPAQUE, 0); + m_k052109->tilemap_draw(screen, bitmap, cliprect, 2, 0, 0); + m_k051960->k051960_sprites_draw(bitmap, cliprect, screen.priority(), 0, 0); + m_k052109->tilemap_draw(screen, bitmap, cliprect, 0, 0, 0); return 0; } diff --git a/src/mame/video/mainsnk.c b/src/mame/video/mainsnk.c index 570f3aeb8f6..859129c3d54 100644 --- a/src/mame/video/mainsnk.c +++ b/src/mame/video/mainsnk.c @@ -161,9 +161,9 @@ void mainsnk_state::draw_sprites(bitmap_ind16 &bitmap, const rectangle &cliprect UINT32 mainsnk_state::screen_update_mainsnk(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect) { - m_bg_tilemap->draw(bitmap, cliprect, 0, 0); + m_bg_tilemap->draw(screen, bitmap, cliprect, 0, 0); draw_sprites(bitmap, cliprect, 0, 0); - m_tx_tilemap->draw(bitmap, cliprect, 0, 0); + m_tx_tilemap->draw(screen, bitmap, cliprect, 0, 0); return 0; } diff --git a/src/mame/video/mappy.c b/src/mame/video/mappy.c index a90be5724a7..2a45ac7846e 100644 --- a/src/mame/video/mappy.c +++ b/src/mame/video/mappy.c @@ -530,14 +530,14 @@ UINT32 mappy_state::screen_update_superpac(screen_device &screen, bitmap_ind16 & bitmap_ind16 &sprite_bitmap = m_sprite_bitmap; int x,y; - m_bg_tilemap->draw(bitmap, cliprect, TILEMAP_DRAW_OPAQUE | TILEMAP_DRAW_ALL_CATEGORIES,0); + m_bg_tilemap->draw(screen, bitmap, cliprect, TILEMAP_DRAW_OPAQUE | TILEMAP_DRAW_ALL_CATEGORIES,0); sprite_bitmap.fill(15, cliprect); mappy_draw_sprites(sprite_bitmap,cliprect,m_spriteram); copybitmap_trans(bitmap,sprite_bitmap,0,0,0,0,cliprect,15); /* Redraw the high priority characters */ - m_bg_tilemap->draw(bitmap, cliprect, 1,0); + m_bg_tilemap->draw(screen, bitmap, cliprect, 1,0); /* sprite color 0/1 still has priority over that (ghost eyes in Pac 'n Pal) */ for (y = 0;y < sprite_bitmap.height();y++) @@ -558,12 +558,12 @@ UINT32 mappy_state::screen_update_phozon(screen_device &screen, bitmap_ind16 &bi /* flip screen control is embedded in RAM */ flip_screen_set(m_spriteram[0x1f7f-0x800] & 1); - m_bg_tilemap->draw(bitmap, cliprect, TILEMAP_DRAW_OPAQUE | TILEMAP_DRAW_ALL_CATEGORIES,0); + m_bg_tilemap->draw(screen, bitmap, cliprect, TILEMAP_DRAW_OPAQUE | TILEMAP_DRAW_ALL_CATEGORIES,0); phozon_draw_sprites(bitmap,cliprect,m_spriteram); /* Redraw the high priority characters */ - m_bg_tilemap->draw(bitmap, cliprect, 1,0); + m_bg_tilemap->draw(screen, bitmap, cliprect, 1,0); return 0; } @@ -574,11 +574,11 @@ UINT32 mappy_state::screen_update_mappy(screen_device &screen, bitmap_ind16 &bit for (offs = 2;offs < 34;offs++) m_bg_tilemap->set_scrolly(offs,m_scroll); - m_bg_tilemap->draw(bitmap, cliprect, TILEMAP_DRAW_OPAQUE | TILEMAP_DRAW_ALL_CATEGORIES,0); + m_bg_tilemap->draw(screen, bitmap, cliprect, TILEMAP_DRAW_OPAQUE | TILEMAP_DRAW_ALL_CATEGORIES,0); mappy_draw_sprites(bitmap,cliprect,m_spriteram); /* Redraw the high priority characters */ - m_bg_tilemap->draw(bitmap, cliprect, 1,0); + m_bg_tilemap->draw(screen, bitmap, cliprect, 1,0); return 0; } diff --git a/src/mame/video/marineb.c b/src/mame/video/marineb.c index 3754b309fa5..1dce59130dd 100644 --- a/src/mame/video/marineb.c +++ b/src/mame/video/marineb.c @@ -167,7 +167,7 @@ UINT32 marineb_state::screen_update_marineb(screen_device &screen, bitmap_ind16 int offs; set_tilemap_scrolly(24); - m_bg_tilemap->draw(bitmap, cliprect, 0, 0); + m_bg_tilemap->draw(screen, bitmap, cliprect, 0, 0); /* draw the sprites */ for (offs = 0x0f; offs >= 0; offs--) @@ -228,7 +228,7 @@ UINT32 marineb_state::screen_update_changes(screen_device &screen, bitmap_ind16 int offs, sx, sy, code, col, flipx, flipy; set_tilemap_scrolly(26); - m_bg_tilemap->draw(bitmap, cliprect, 0, 0); + m_bg_tilemap->draw(screen, bitmap, cliprect, 0, 0); /* draw the small sprites */ for (offs = 0x05; offs >= 0; offs--) @@ -306,7 +306,7 @@ UINT32 marineb_state::screen_update_springer(screen_device &screen, bitmap_ind16 int offs; set_tilemap_scrolly(0); - m_bg_tilemap->draw(bitmap, cliprect, 0, 0); + m_bg_tilemap->draw(screen, bitmap, cliprect, 0, 0); /* draw the sprites */ for (offs = 0x0f; offs >= 0; offs--) @@ -365,7 +365,7 @@ UINT32 marineb_state::screen_update_hoccer(screen_device &screen, bitmap_ind16 & int offs; set_tilemap_scrolly(0); - m_bg_tilemap->draw(bitmap, cliprect, 0, 0); + m_bg_tilemap->draw(screen, bitmap, cliprect, 0, 0); /* draw the sprites */ for (offs = 0x07; offs >= 0; offs--) @@ -408,7 +408,7 @@ UINT32 marineb_state::screen_update_hopprobo(screen_device &screen, bitmap_ind16 int offs; set_tilemap_scrolly(0); - m_bg_tilemap->draw(bitmap, cliprect, 0, 0); + m_bg_tilemap->draw(screen, bitmap, cliprect, 0, 0); /* draw the sprites */ for (offs = 0x0f; offs >= 0; offs--) diff --git a/src/mame/video/mario.c b/src/mame/video/mario.c index 1d2aa0cd72b..572ec1d27a9 100644 --- a/src/mame/video/mario.c +++ b/src/mame/video/mario.c @@ -209,7 +209,7 @@ UINT32 mario_state::screen_update_mario(screen_device &screen, bitmap_ind16 &bit m_bg_tilemap->set_scrollx(0, m_flip ? (HTOTAL-HBSTART) : 0); m_bg_tilemap->set_scrolly(0, m_gfx_scroll - (m_flip ? 8 : 0)); - m_bg_tilemap->draw(bitmap, cliprect, 0, 0); + m_bg_tilemap->draw(screen, bitmap, cliprect, 0, 0); draw_sprites(bitmap, cliprect); return 0; diff --git a/src/mame/video/markham.c b/src/mame/video/markham.c index ddaec3172a0..c96244d5e31 100644 --- a/src/mame/video/markham.c +++ b/src/mame/video/markham.c @@ -126,7 +126,7 @@ UINT32 markham_state::screen_update_markham(screen_device &screen, bitmap_ind16 m_bg_tilemap->set_scrollx(i, m_xscroll[1]); } - m_bg_tilemap->draw(bitmap, cliprect, 0, 0); + m_bg_tilemap->draw(screen, bitmap, cliprect, 0, 0); draw_sprites(bitmap, cliprect); return 0; } diff --git a/src/mame/video/mcatadv.c b/src/mame/video/mcatadv.c index 7472fe986f2..3165ba04564 100644 --- a/src/mame/video/mcatadv.c +++ b/src/mame/video/mcatadv.c @@ -46,7 +46,7 @@ WRITE16_MEMBER(mcatadv_state::mcatadv_videoram2_w) } -void mcatadv_state::draw_sprites( bitmap_ind16 &bitmap, const rectangle &cliprect ) +void mcatadv_state::draw_sprites( screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect ) { UINT16 *source = m_spriteram_old; UINT16 *finish = source + (m_spriteram.bytes() / 2) /2; @@ -117,7 +117,7 @@ void mcatadv_state::draw_sprites( bitmap_ind16 &bitmap, const rectangle &cliprec if ((drawypos >= cliprect.min_y) && (drawypos <= cliprect.max_y)) { destline = &bitmap.pix16(drawypos); - priline = &machine().priority_bitmap.pix8(drawypos); + priline = &screen.priority().pix8(drawypos); for (xcnt = xstart; xcnt != xend; xcnt += xinc) { @@ -151,7 +151,7 @@ void mcatadv_state::draw_sprites( bitmap_ind16 &bitmap, const rectangle &cliprec } } -void mcatadv_state::mcatadv_draw_tilemap_part( UINT16* current_scroll, UINT16* current_videoram1, int i, tilemap_t* current_tilemap, bitmap_ind16 &bitmap, const rectangle &cliprect ) +void mcatadv_state::mcatadv_draw_tilemap_part( screen_device &screen, UINT16* current_scroll, UINT16* current_videoram1, int i, tilemap_t* current_tilemap, bitmap_ind16 &bitmap, const rectangle &cliprect ) { int flip; UINT32 drawline; @@ -191,7 +191,7 @@ void mcatadv_state::mcatadv_draw_tilemap_part( UINT16* current_scroll, UINT16* c current_tilemap->set_scrolly(0, scrolly); current_tilemap->set_flip(flip); - current_tilemap->draw(bitmap, clip, i, i); + current_tilemap->draw(screen, bitmap, clip, i, i); } } @@ -200,7 +200,7 @@ UINT32 mcatadv_state::screen_update_mcatadv(screen_device &screen, bitmap_ind16 int i; bitmap.fill(get_black_pen(machine()), cliprect); - machine().priority_bitmap.fill(0, cliprect); + screen.priority().fill(0, cliprect); if (m_scroll1[2] != m_palette_bank1) { @@ -227,19 +227,19 @@ UINT32 mcatadv_state::screen_update_mcatadv(screen_device &screen, bitmap_ind16 #ifdef MAME_DEBUG if (!machine().input().code_pressed(KEYCODE_Q)) #endif - mcatadv_draw_tilemap_part(m_scroll1, m_videoram1, i, m_tilemap1, bitmap, cliprect); + mcatadv_draw_tilemap_part(screen, m_scroll1, m_videoram1, i, m_tilemap1, bitmap, cliprect); #ifdef MAME_DEBUG if (!machine().input().code_pressed(KEYCODE_W)) #endif - mcatadv_draw_tilemap_part(m_scroll2, m_videoram2, i, m_tilemap2, bitmap, cliprect); + mcatadv_draw_tilemap_part(screen, m_scroll2, m_videoram2, i, m_tilemap2, bitmap, cliprect); } g_profiler.start(PROFILER_USER1); #ifdef MAME_DEBUG if (!machine().input().code_pressed(KEYCODE_E)) #endif - draw_sprites (bitmap, cliprect); + draw_sprites (screen, bitmap, cliprect); g_profiler.stop(); return 0; } diff --git a/src/mame/video/mcr.c b/src/mame/video/mcr.c index 0228eb478f1..9dfbda1adc9 100644 --- a/src/mame/video/mcr.c +++ b/src/mame/video/mcr.c @@ -247,7 +247,7 @@ WRITE8_MEMBER(mcr_state::mcr_91490_videoram_w) * *************************************/ -void mcr_state::render_sprites_91399(bitmap_ind16 &bitmap, const rectangle &cliprect) +void mcr_state::render_sprites_91399(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect) { UINT8 *spriteram = m_spriteram; gfx_element *gfx = machine().gfx[1]; @@ -286,7 +286,7 @@ void mcr_state::render_sprites_91399(bitmap_ind16 &bitmap, const rectangle &clip { const UINT8 *src = gfx->get_data(code) + gfx->rowbytes() * (y ^ vflip); UINT16 *dst = &bitmap.pix16(sy); - UINT8 *pri = &machine().priority_bitmap.pix8(sy); + UINT8 *pri = &screen.priority().pix8(sy); /* loop over columns */ for (x = 0; x < 32; x++) @@ -319,7 +319,7 @@ void mcr_state::render_sprites_91399(bitmap_ind16 &bitmap, const rectangle &clip * *************************************/ -void mcr_state::render_sprites_91464(bitmap_ind16 &bitmap, const rectangle &cliprect, int primask, int sprmask, int colormask) +void mcr_state::render_sprites_91464(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect, int primask, int sprmask, int colormask) { UINT8 *spriteram = m_spriteram; gfx_element *gfx = machine().gfx[1]; @@ -357,7 +357,7 @@ void mcr_state::render_sprites_91464(bitmap_ind16 &bitmap, const rectangle &clip { const UINT8 *src = gfx->get_data(code) + gfx->rowbytes() * (y ^ vflip); UINT16 *dst = &bitmap.pix16(sy); - UINT8 *pri = &machine().priority_bitmap.pix8(sy); + UINT8 *pri = &screen.priority().pix8(sy); /* loop over columns */ for (x = 0; x < 32; x++) @@ -399,28 +399,28 @@ UINT32 mcr_state::screen_update_mcr(screen_device &screen, bitmap_ind16 &bitmap, bg_tilemap->set_flip(mcr_cocktail_flip ? (TILEMAP_FLIPX | TILEMAP_FLIPY) : 0); /* draw the background */ - machine().priority_bitmap.fill(0, cliprect); - bg_tilemap->draw(bitmap, cliprect, 0, 0x00); - bg_tilemap->draw(bitmap, cliprect, 1, 0x10); - bg_tilemap->draw(bitmap, cliprect, 2, 0x20); - bg_tilemap->draw(bitmap, cliprect, 3, 0x30); + screen.priority().fill(0, cliprect); + bg_tilemap->draw(screen, bitmap, cliprect, 0, 0x00); + bg_tilemap->draw(screen, bitmap, cliprect, 1, 0x10); + bg_tilemap->draw(screen, bitmap, cliprect, 2, 0x20); + bg_tilemap->draw(screen, bitmap, cliprect, 3, 0x30); /* update the sprites and render them */ switch (mcr_sprite_board) { case 91399: - render_sprites_91399(bitmap, cliprect); + render_sprites_91399(screen, bitmap, cliprect); break; case 91464: if (mcr_cpu_board == 91442) - render_sprites_91464(bitmap, cliprect, 0x00, 0x30, 0x00); + render_sprites_91464(screen, bitmap, cliprect, 0x00, 0x30, 0x00); else if (mcr_cpu_board == 91475) - render_sprites_91464(bitmap, cliprect, 0x00, 0x30, 0x40); + render_sprites_91464(screen, bitmap, cliprect, 0x00, 0x30, 0x40); else if (mcr_cpu_board == 91490) - render_sprites_91464(bitmap, cliprect, 0x00, 0x30, 0x00); + render_sprites_91464(screen, bitmap, cliprect, 0x00, 0x30, 0x00); else if (mcr_cpu_board == 91721) - render_sprites_91464(bitmap, cliprect, 0x00, 0x30, 0x00); + render_sprites_91464(screen, bitmap, cliprect, 0x00, 0x30, 0x00); break; } return 0; diff --git a/src/mame/video/mcr3.c b/src/mame/video/mcr3.c index 2f4126a9d32..40da4783a86 100644 --- a/src/mame/video/mcr3.c +++ b/src/mame/video/mcr3.c @@ -194,12 +194,12 @@ WRITE8_MEMBER(mcr3_state::spyhunt_scroll_value_w) * *************************************/ -void mcr3_state::mcr3_update_sprites(bitmap_ind16 &bitmap, const rectangle &cliprect, int color_mask, int code_xor, int dx, int dy) +void mcr3_state::mcr3_update_sprites(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect, int color_mask, int code_xor, int dx, int dy) { UINT8 *spriteram = m_spriteram; int offs; - machine().priority_bitmap.fill(1, cliprect); + m_screen->priority().fill(1, cliprect); /* loop over sprite RAM */ for (offs = m_spriteram.bytes() - 4; offs >= 0; offs -= 4) @@ -241,21 +241,21 @@ void mcr3_state::mcr3_update_sprites(bitmap_ind16 &bitmap, const rectangle &clip { /* first draw the sprite, visible */ pdrawgfx_transmask(bitmap, cliprect, machine().gfx[1], code, color, flipx, flipy, sx, sy, - machine().priority_bitmap, 0x00, 0x0101); + screen.priority(), 0x00, 0x0101); /* then draw the mask, behind the background but obscuring following sprites */ pdrawgfx_transmask(bitmap, cliprect, machine().gfx[1], code, color, flipx, flipy, sx, sy, - machine().priority_bitmap, 0x02, 0xfeff); + screen.priority(), 0x02, 0xfeff); } else { /* first draw the sprite, visible */ pdrawgfx_transmask(bitmap, cliprect, machine().gfx[1], code, color, !flipx, !flipy, 480 - sx, 452 - sy, - machine().priority_bitmap, 0x00, 0x0101); + screen.priority(), 0x00, 0x0101); /* then draw the mask, behind the background but obscuring following sprites */ pdrawgfx_transmask(bitmap, cliprect, machine().gfx[1], code, color, !flipx, !flipy, 480 - sx, 452 - sy, - machine().priority_bitmap, 0x02, 0xfeff); + screen.priority(), 0x02, 0xfeff); } } } @@ -274,10 +274,10 @@ UINT32 mcr3_state::screen_update_mcr3(screen_device &screen, bitmap_ind16 &bitma m_bg_tilemap->set_flip(mcr_cocktail_flip ? (TILEMAP_FLIPX | TILEMAP_FLIPY) : 0); /* draw the background */ - m_bg_tilemap->draw(bitmap, cliprect, 0, 0); + m_bg_tilemap->draw(screen, bitmap, cliprect, 0, 0); /* draw the sprites */ - mcr3_update_sprites(bitmap, cliprect, 0x03, 0, 0, 0); + mcr3_update_sprites(screen, bitmap, cliprect, 0x03, 0, 0, 0); return 0; } @@ -288,12 +288,12 @@ UINT32 mcr3_state::screen_update_spyhunt(screen_device &screen, bitmap_ind16 &bi /* since last time and update it accordingly. */ m_bg_tilemap->set_scrollx(0, m_spyhunt_scrollx * 2 + m_spyhunt_scroll_offset); m_bg_tilemap->set_scrolly(0, m_spyhunt_scrolly * 2); - m_bg_tilemap->draw(bitmap, cliprect, 0, 0); + m_bg_tilemap->draw(screen, bitmap, cliprect, 0, 0); /* draw the sprites */ - mcr3_update_sprites(bitmap, cliprect, m_spyhunt_sprite_color_mask, 0, -12, 0); + mcr3_update_sprites(screen, bitmap, cliprect, m_spyhunt_sprite_color_mask, 0, -12, 0); /* render any characters on top */ - m_alpha_tilemap->draw(bitmap, cliprect, 0, 0); + m_alpha_tilemap->draw(screen, bitmap, cliprect, 0, 0); return 0; } diff --git a/src/mame/video/mcr68.c b/src/mame/video/mcr68.c index 6d74e3ce05c..9cb2ba28c42 100644 --- a/src/mame/video/mcr68.c +++ b/src/mame/video/mcr68.c @@ -195,7 +195,7 @@ WRITE16_MEMBER(mcr68_state::zwackery_spriteram_w) * *************************************/ -void mcr68_state::mcr68_update_sprites(bitmap_ind16 &bitmap, const rectangle &cliprect, int priority) +void mcr68_state::mcr68_update_sprites(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect, int priority) { rectangle sprite_clip = machine().primary_screen->visible_area(); UINT16 *spriteram = m_spriteram; @@ -206,7 +206,7 @@ void mcr68_state::mcr68_update_sprites(bitmap_ind16 &bitmap, const rectangle &cl sprite_clip.max_x -= m_sprite_clip; sprite_clip &= cliprect; - machine().priority_bitmap.fill(1, sprite_clip); + screen.priority().fill(1, sprite_clip); /* loop over sprite RAM */ for (offs = m_spriteram.bytes() / 2 - 4;offs >= 0;offs -= 4) @@ -239,21 +239,21 @@ void mcr68_state::mcr68_update_sprites(bitmap_ind16 &bitmap, const rectangle &cl /* first draw the sprite, visible */ pdrawgfx_transmask(bitmap, sprite_clip, machine().gfx[1], code, color, flipx, flipy, x, y, - machine().priority_bitmap, 0x00, 0x0101); + screen.priority(), 0x00, 0x0101); /* then draw the mask, behind the background but obscuring following sprites */ pdrawgfx_transmask(bitmap, sprite_clip, machine().gfx[1], code, color, flipx, flipy, x, y, - machine().priority_bitmap, 0x02, 0xfeff); + screen.priority(), 0x02, 0xfeff); } } -void mcr68_state::zwackery_update_sprites(bitmap_ind16 &bitmap, const rectangle &cliprect, int priority) +void mcr68_state::zwackery_update_sprites(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect, int priority) { UINT16 *spriteram = m_spriteram; int offs; - machine().priority_bitmap.fill(1, cliprect); + screen.priority().fill(1, cliprect); /* loop over sprite RAM */ for (offs = m_spriteram.bytes() / 2 - 4;offs >= 0;offs -= 4) @@ -296,11 +296,11 @@ void mcr68_state::zwackery_update_sprites(bitmap_ind16 &bitmap, const rectangle /* first draw the sprite, visible */ pdrawgfx_transmask(bitmap, cliprect, machine().gfx[1], code, color, flipx, flipy, x, y, - machine().priority_bitmap, 0x00, 0x0101); + screen.priority(), 0x00, 0x0101); /* then draw the mask, behind the background but obscuring following sprites */ pdrawgfx_transmask(bitmap, cliprect, machine().gfx[1], code, color, flipx, flipy, x, y, - machine().priority_bitmap, 0x02, 0xfeff); + screen.priority(), 0x02, 0xfeff); } } @@ -315,16 +315,16 @@ void mcr68_state::zwackery_update_sprites(bitmap_ind16 &bitmap, const rectangle UINT32 mcr68_state::screen_update_mcr68(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect) { /* draw the background */ - m_bg_tilemap->draw(bitmap, cliprect, TILEMAP_DRAW_OPAQUE | TILEMAP_DRAW_ALL_CATEGORIES, 0); + m_bg_tilemap->draw(screen, bitmap, cliprect, TILEMAP_DRAW_OPAQUE | TILEMAP_DRAW_ALL_CATEGORIES, 0); /* draw the low-priority sprites */ - mcr68_update_sprites(bitmap, cliprect, 0); + mcr68_update_sprites(screen, bitmap, cliprect, 0); /* redraw tiles with priority over sprites */ - m_bg_tilemap->draw(bitmap, cliprect, 1, 0); + m_bg_tilemap->draw(screen, bitmap, cliprect, 1, 0); /* draw the high-priority sprites */ - mcr68_update_sprites(bitmap, cliprect, 1); + mcr68_update_sprites(screen, bitmap, cliprect, 1); return 0; } @@ -332,15 +332,15 @@ UINT32 mcr68_state::screen_update_mcr68(screen_device &screen, bitmap_ind16 &bit UINT32 mcr68_state::screen_update_zwackery(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect) { /* draw the background */ - m_bg_tilemap->draw(bitmap, cliprect, 0, 0); + m_bg_tilemap->draw(screen, bitmap, cliprect, 0, 0); /* draw the low-priority sprites */ - zwackery_update_sprites(bitmap, cliprect, 0); + zwackery_update_sprites(screen, bitmap, cliprect, 0); /* redraw tiles with priority over sprites */ - m_fg_tilemap->draw(bitmap, cliprect, 1, 0); + m_fg_tilemap->draw(screen, bitmap, cliprect, 1, 0); /* draw the high-priority sprites */ - zwackery_update_sprites(bitmap, cliprect, 1); + zwackery_update_sprites(screen, bitmap, cliprect, 1); return 0; } diff --git a/src/mame/video/meadows.c b/src/mame/video/meadows.c index 90e6e0494e9..9aaad9a9886 100644 --- a/src/mame/video/meadows.c +++ b/src/mame/video/meadows.c @@ -103,7 +103,7 @@ void meadows_state::draw_sprites(bitmap_ind16 &bitmap, const rectangle &clip) UINT32 meadows_state::screen_update_meadows(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect) { /* draw the background */ - m_bg_tilemap->draw(bitmap, cliprect, 0, 0); + m_bg_tilemap->draw(screen, bitmap, cliprect, 0, 0); /* draw the sprites */ if (machine().gfx[1]) diff --git a/src/mame/video/megasys1.c b/src/mame/video/megasys1.c index 709c3f5d9e6..6af91d09b12 100644 --- a/src/mame/video/megasys1.c +++ b/src/mame/video/megasys1.c @@ -555,7 +555,7 @@ WRITE16_MEMBER(megasys1_state::megasys1_vregs_D_w) 0C Y position 0E Code */ -void megasys1_state::draw_sprites(bitmap_ind16 &bitmap,const rectangle &cliprect) +void megasys1_state::draw_sprites(screen_device &screen, bitmap_ind16 &bitmap,const rectangle &cliprect) { int color,code,sx,sy,flipx,flipy,attr,sprite,offs,color_mask; @@ -603,7 +603,7 @@ void megasys1_state::draw_sprites(bitmap_ind16 &bitmap,const rectangle &cliprect color, flipx, flipy, sx, sy, - machine().priority_bitmap, + screen.priority(), (attr & 0x08) ? 0x0c : 0x0a,15); } /* sprite */ } /* offs */ @@ -644,7 +644,7 @@ void megasys1_state::draw_sprites(bitmap_ind16 &bitmap,const rectangle &cliprect color, flipx, flipy, sx, sy, - machine().priority_bitmap, + screen.priority(), (attr & 0x08) ? 0x0c : 0x0a,15); } /* sprite */ } /* Z hw */ @@ -959,7 +959,7 @@ UINT32 megasys1_state::screen_update_megasys1(screen_device &screen, bitmap_ind1 } } - machine().priority_bitmap.fill(0, cliprect); + screen.priority().fill(0, cliprect); flag = TILEMAP_DRAW_OPAQUE; primask = 0; @@ -976,7 +976,7 @@ UINT32 megasys1_state::screen_update_megasys1(screen_device &screen, bitmap_ind1 case 2: if ( (m_tmap[layer]) && (active_layers & (1 << layer) ) ) { - m_tmap[layer]->draw(bitmap, cliprect, flag,primask); + m_tmap[layer]->draw(screen, bitmap, cliprect, flag,primask); flag = 0; } break; @@ -1002,7 +1002,7 @@ UINT32 megasys1_state::screen_update_megasys1(screen_device &screen, bitmap_ind1 } if (active_layers & 0x08) - draw_sprites(bitmap,cliprect); + draw_sprites(screen,bitmap,cliprect); return 0; } diff --git a/src/mame/video/mermaid.c b/src/mame/video/mermaid.c index dc5b3060969..d448cbfaea3 100644 --- a/src/mame/video/mermaid.c +++ b/src/mame/video/mermaid.c @@ -221,8 +221,8 @@ void mermaid_state::draw_sprites( bitmap_ind16 &bitmap, const rectangle &cliprec UINT32 mermaid_state::screen_update_mermaid(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect) { - m_bg_tilemap->draw(bitmap, cliprect, 0, 0); - m_fg_tilemap->draw(bitmap, cliprect, 0, 0); + m_bg_tilemap->draw(screen, bitmap, cliprect, 0, 0); + m_fg_tilemap->draw(screen, bitmap, cliprect, 0, 0); draw_sprites(bitmap, cliprect); return 0; } @@ -308,7 +308,7 @@ void mermaid_state::screen_eof_mermaid(screen_device &screen, bool state) m_helper.fill(0, rect); m_helper2.fill(0, rect); - m_bg_tilemap->draw(m_helper, rect, 0, 0); + m_bg_tilemap->draw(screen, m_helper, rect, 0, 0); drawgfx_transpen(m_helper2, rect, machine().gfx[1], code, 0, flipx, flipy, sx, sy, 0); @@ -319,7 +319,7 @@ void mermaid_state::screen_eof_mermaid(screen_device &screen, bool state) m_helper.fill(0, rect); m_helper2.fill(0, rect); - m_fg_tilemap->draw(m_helper, rect, 0, 0); + m_fg_tilemap->draw(screen, m_helper, rect, 0, 0); drawgfx_transpen(m_helper2, rect, machine().gfx[1], code, 0, flipx, flipy, sx, sy, 0); diff --git a/src/mame/video/metlclsh.c b/src/mame/video/metlclsh.c index c280e7e7435..e22f1b73453 100644 --- a/src/mame/video/metlclsh.c +++ b/src/mame/video/metlclsh.c @@ -234,17 +234,17 @@ UINT32 metlclsh_state::screen_update_metlclsh(screen_device &screen, bitmap_ind1 { bitmap.fill(0x10, cliprect); - m_fg_tilemap->draw(bitmap, cliprect, 1, 0); // low priority tiles of foreground + m_fg_tilemap->draw(screen, bitmap, cliprect, 1, 0); // low priority tiles of foreground if (m_scrollx[0] & 0x08) // background (if enabled) { /* The background seems to be always flipped along x */ m_bg_tilemap->set_flip((flip_screen() ? (TILEMAP_FLIPX | TILEMAP_FLIPY) : 0) ^ TILEMAP_FLIPX); m_bg_tilemap->set_scrollx(0, m_scrollx[1] + ((m_scrollx[0] & 0x02) << 7) ); - m_bg_tilemap->draw(bitmap, cliprect, 0, 0); + m_bg_tilemap->draw(screen, bitmap, cliprect, 0, 0); } draw_sprites(bitmap, cliprect); // sprites - m_fg_tilemap->draw(bitmap, cliprect, 2, 0); // high priority tiles of foreground + m_fg_tilemap->draw(screen, bitmap, cliprect, 2, 0); // high priority tiles of foreground // popmessage("%02X", m_scrollx[0]); return 0; diff --git a/src/mame/video/metro.c b/src/mame/video/metro.c index 67bc8edc008..f4a80581f87 100644 --- a/src/mame/video/metro.c +++ b/src/mame/video/metro.c @@ -406,7 +406,7 @@ VIDEO_START_MEMBER(metro_state,gstrik2) ***************************************************************************/ -void metro_state::metro_draw_sprites( bitmap_ind16 &bitmap, const rectangle &cliprect ) +void metro_state::metro_draw_sprites( screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect ) { UINT8 *base_gfx4 = m_expanded_gfx1; UINT8 *base_gfx8 = memregion("gfx1")->base(); @@ -510,7 +510,7 @@ void metro_state::metro_draw_sprites( bitmap_ind16 &bitmap, const rectangle &cli flipx, flipy, x, y, zoom, zoom, - machine().priority_bitmap,primask[pri], 255); + screen.priority(),primask[pri], 255); } else { @@ -526,7 +526,7 @@ void metro_state::metro_draw_sprites( bitmap_ind16 &bitmap, const rectangle &cli flipx, flipy, x, y, zoom, zoom, - machine().priority_bitmap,primask[pri], 15); + screen.priority(),primask[pri], 15); } #if 0 { /* Display priority + zoom on each sprite */ @@ -552,12 +552,12 @@ void metro_state::metro_draw_sprites( bitmap_ind16 &bitmap, const rectangle &cli // Copy a 'window' from the large 2048x2048 (or 4096x4096 for 16x16 tiles) tilemap -void metro_state::draw_tilemap( bitmap_ind16 &bitmap, const rectangle &cliprect, UINT32 flags, UINT32 pcode, +void metro_state::draw_tilemap( screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect, UINT32 flags, UINT32 pcode, int sx, int sy, int wx, int wy, int big, UINT16 *tilemapram, int layer ) { int y; - bitmap_ind8 &priority_bitmap = machine().priority_bitmap; + bitmap_ind8 &priority_bitmap = m_screen->priority(); int width = big ? 4096 : 2048; int height = big ? 4096 : 2048; @@ -632,7 +632,7 @@ void metro_state::draw_tilemap( bitmap_ind16 &bitmap, const rectangle &cliprect, // Draw all the layers that match the given priority -void metro_state::draw_layers( bitmap_ind16 &bitmap, const rectangle &cliprect, int pri, int layers_ctrl ) +void metro_state::draw_layers( screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect, int pri, int layers_ctrl ) { UINT16 layers_pri = m_videoregs[0x10 / 2]; int layer; @@ -659,7 +659,7 @@ void metro_state::draw_layers( bitmap_ind16 &bitmap, const rectangle &cliprect, int big = m_support_16x16 && (*m_screenctrl & (0x0020 << layer)); - draw_tilemap(bitmap, cliprect, 0, 1 << (3 - pri), sx, sy, wx, wy, big, tilemapram, layer); + draw_tilemap(screen, bitmap, cliprect, 0, 1 << (3 - pri), sx, sy, wx, wy, big, tilemapram, layer); } } } @@ -674,7 +674,7 @@ UINT32 metro_state::screen_update_metro(screen_device &screen, bitmap_ind16 &bit m_sprite_xoffs = m_videoregs[0x06 / 2] - screen.width() / 2 + m_sprite_xoffs_dx; m_sprite_yoffs = m_videoregs[0x04 / 2] - screen.height() / 2; - machine().priority_bitmap.fill(0, cliprect); + screen.priority().fill(0, cliprect); // The background color is selected by a register bitmap.fill(m_videoregs[0x12/2] & 0x0fff, cliprect); @@ -715,13 +715,13 @@ if (machine().input().code_pressed(KEYCODE_Z)) #endif if (m_has_zoom) - m_k053936->zoom_draw(bitmap, cliprect, m_k053936_tilemap, 0, 0, 1); + m_k053936->zoom_draw(screen, bitmap, cliprect, m_k053936_tilemap, 0, 0, 1); for (pri = 3; pri >= 0; pri--) - draw_layers(bitmap, cliprect, pri, layers_ctrl); + draw_layers(screen, bitmap, cliprect, pri, layers_ctrl); if (layers_ctrl & 0x08) - metro_draw_sprites(bitmap, cliprect); + metro_draw_sprites(screen, bitmap, cliprect); return 0; } diff --git a/src/mame/video/mikie.c b/src/mame/video/mikie.c index d22953026a5..2e1634c491c 100644 --- a/src/mame/video/mikie.c +++ b/src/mame/video/mikie.c @@ -169,8 +169,8 @@ void mikie_state::draw_sprites(bitmap_ind16 &bitmap, const rectangle &cliprect) UINT32 mikie_state::screen_update_mikie(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect) { - m_bg_tilemap->draw(bitmap, cliprect, TILEMAP_DRAW_CATEGORY(0), 0); + m_bg_tilemap->draw(screen, bitmap, cliprect, TILEMAP_DRAW_CATEGORY(0), 0); draw_sprites(bitmap, cliprect); - m_bg_tilemap->draw(bitmap, cliprect, TILEMAP_DRAW_CATEGORY(1), 0); + m_bg_tilemap->draw(screen, bitmap, cliprect, TILEMAP_DRAW_CATEGORY(1), 0); return 0; } diff --git a/src/mame/video/mitchell.c b/src/mame/video/mitchell.c index 274ae5368a3..d80fd089a4e 100644 --- a/src/mame/video/mitchell.c +++ b/src/mame/video/mitchell.c @@ -300,7 +300,7 @@ void mitchell_state::draw_sprites( bitmap_ind16 &bitmap, const rectangle &clipre UINT32 mitchell_state::screen_update_pang(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect) { bitmap.fill(0, cliprect); - m_bg_tilemap->draw(bitmap, cliprect, 0, 0); + m_bg_tilemap->draw(screen, bitmap, cliprect, 0, 0); draw_sprites(bitmap, cliprect); return 0; } diff --git a/src/mame/video/mjkjidai.c b/src/mame/video/mjkjidai.c index 1d6df344935..e1ecd564abe 100644 --- a/src/mame/video/mjkjidai.c +++ b/src/mame/video/mjkjidai.c @@ -128,7 +128,7 @@ UINT32 mjkjidai_state::screen_update_mjkjidai(screen_device &screen, bitmap_ind1 bitmap.fill(get_black_pen(machine()), cliprect); else { - m_bg_tilemap->draw(bitmap, cliprect, 0,0); + m_bg_tilemap->draw(screen, bitmap, cliprect, 0,0); draw_sprites(bitmap,cliprect); } return 0; diff --git a/src/mame/video/model1.c b/src/mame/video/model1.c index 7e272d12fa4..2a1d9f9f38b 100644 --- a/src/mame/video/model1.c +++ b/src/mame/video/model1.c @@ -1514,21 +1514,21 @@ UINT32 model1_state::screen_update_model1(screen_device &screen, bitmap_rgb32 &b view->ayyc = cos(view->ayy); view->ayys = sin(view->ayy); - machine().priority_bitmap.fill(0); + screen.priority().fill(0); bitmap.fill(machine().pens[0], cliprect); segas24_tile *tile = machine().device("tile"); - tile->draw(bitmap, cliprect, 6, 0, 0); - tile->draw(bitmap, cliprect, 4, 0, 0); - tile->draw(bitmap, cliprect, 2, 0, 0); - tile->draw(bitmap, cliprect, 0, 0, 0); + tile->draw(screen, bitmap, cliprect, 6, 0, 0); + tile->draw(screen, bitmap, cliprect, 4, 0, 0); + tile->draw(screen, bitmap, cliprect, 2, 0, 0); + tile->draw(screen, bitmap, cliprect, 0, 0, 0); tgp_render(machine(), bitmap, cliprect); - tile->draw(bitmap, cliprect, 7, 0, 0); - tile->draw(bitmap, cliprect, 5, 0, 0); - tile->draw(bitmap, cliprect, 3, 0, 0); - tile->draw(bitmap, cliprect, 1, 0, 0); + tile->draw(screen, bitmap, cliprect, 7, 0, 0); + tile->draw(screen, bitmap, cliprect, 5, 0, 0); + tile->draw(screen, bitmap, cliprect, 3, 0, 0); + tile->draw(screen, bitmap, cliprect, 1, 0, 0); return 0; } diff --git a/src/mame/video/model2.c b/src/mame/video/model2.c index b5869422036..b5bb9437bf0 100644 --- a/src/mame/video/model2.c +++ b/src/mame/video/model2.c @@ -2723,10 +2723,10 @@ UINT32 model2_state::screen_update_model2(screen_device &screen, bitmap_rgb32 &b m_sys24_bitmap.fill(0, cliprect); segas24_tile *tile = machine().device("tile"); - tile->draw(m_sys24_bitmap, cliprect, 7, 0, 0); - tile->draw(m_sys24_bitmap, cliprect, 6, 0, 0); - tile->draw(m_sys24_bitmap, cliprect, 5, 0, 0); - tile->draw(m_sys24_bitmap, cliprect, 4, 0, 0); + tile->draw(screen, m_sys24_bitmap, cliprect, 7, 0, 0); + tile->draw(screen, m_sys24_bitmap, cliprect, 6, 0, 0); + tile->draw(screen, m_sys24_bitmap, cliprect, 5, 0, 0); + tile->draw(screen, m_sys24_bitmap, cliprect, 4, 0, 0); copybitmap_trans(bitmap, m_sys24_bitmap, 0, 0, 0, 0, cliprect, 0); @@ -2740,10 +2740,10 @@ UINT32 model2_state::screen_update_model2(screen_device &screen, bitmap_rgb32 &b model2_3d_frame_end( this, bitmap, cliprect ); m_sys24_bitmap.fill(0, cliprect); - tile->draw(m_sys24_bitmap, cliprect, 3, 0, 0); - tile->draw(m_sys24_bitmap, cliprect, 2, 0, 0); - tile->draw(m_sys24_bitmap, cliprect, 1, 0, 0); - tile->draw(m_sys24_bitmap, cliprect, 0, 0, 0); + tile->draw(screen, m_sys24_bitmap, cliprect, 3, 0, 0); + tile->draw(screen, m_sys24_bitmap, cliprect, 2, 0, 0); + tile->draw(screen, m_sys24_bitmap, cliprect, 1, 0, 0); + tile->draw(screen, m_sys24_bitmap, cliprect, 0, 0, 0); copybitmap_trans(bitmap, m_sys24_bitmap, 0, 0, 0, 0, cliprect, 0); diff --git a/src/mame/video/moo.c b/src/mame/video/moo.c index bc0c3fd9f98..2eef7257e65 100644 --- a/src/mame/video/moo.c +++ b/src/mame/video/moo.c @@ -112,12 +112,12 @@ UINT32 moo_state::screen_update_moo(screen_device &screen, bitmap_rgb32 &bitmap, m_k054338->update_all_shadows(0); m_k054338->fill_backcolor(bitmap, 0); - machine().priority_bitmap.fill(0, cliprect); + screen.priority().fill(0, cliprect); if (m_layerpri[0] < m_k053251->get_priority(K053251_CI1)) /* bucky hides back layer behind background */ - m_k056832->tilemap_draw(bitmap, cliprect, layers[0], 0, 1); + m_k056832->tilemap_draw(screen, bitmap, cliprect, layers[0], 0, 1); - m_k056832->tilemap_draw(bitmap, cliprect, layers[1], 0, 2); + m_k056832->tilemap_draw(screen, bitmap, cliprect, layers[1], 0, 2); // Enabling alpha improves fog and fading in Moo but causes other things to disappear. // There is probably a control bit somewhere to turn off alpha blending. @@ -126,10 +126,10 @@ UINT32 moo_state::screen_update_moo(screen_device &screen, bitmap_rgb32 &bitmap, alpha = (m_alpha_enabled) ? m_k054338->set_alpha_level(1) : 255; if (alpha > 0) - m_k056832->tilemap_draw(bitmap, cliprect, layers[2], TILEMAP_DRAW_ALPHA(alpha), 4); + m_k056832->tilemap_draw(screen, bitmap, cliprect, layers[2], TILEMAP_DRAW_ALPHA(alpha), 4); m_k053246->k053247_sprites_draw( bitmap, cliprect); - m_k056832->tilemap_draw(bitmap, cliprect, 0, 0, 0); + m_k056832->tilemap_draw(screen, bitmap, cliprect, 0, 0, 0); return 0; } diff --git a/src/mame/video/mosaic.c b/src/mame/video/mosaic.c index dbda5d19168..af926444d3c 100644 --- a/src/mame/video/mosaic.c +++ b/src/mame/video/mosaic.c @@ -74,7 +74,7 @@ WRITE8_MEMBER(mosaic_state::mosaic_bgvideoram_w) UINT32 mosaic_state::screen_update_mosaic(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect) { - m_bg_tilemap->draw(bitmap, cliprect, 0, 0); - m_fg_tilemap->draw(bitmap, cliprect, 0, 0); + m_bg_tilemap->draw(screen, bitmap, cliprect, 0, 0); + m_fg_tilemap->draw(screen, bitmap, cliprect, 0, 0); return 0; } diff --git a/src/mame/video/mrdo.c b/src/mame/video/mrdo.c index 8a2f0425bde..985d098bead 100644 --- a/src/mame/video/mrdo.c +++ b/src/mame/video/mrdo.c @@ -253,8 +253,8 @@ void mrdo_state::draw_sprites( bitmap_ind16 &bitmap,const rectangle &cliprect ) UINT32 mrdo_state::screen_update_mrdo(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect) { bitmap.fill(0, cliprect); - m_bg_tilemap->draw(bitmap, cliprect, 0, 0); - m_fg_tilemap->draw(bitmap, cliprect, 0, 0); + m_bg_tilemap->draw(screen, bitmap, cliprect, 0, 0); + m_fg_tilemap->draw(screen, bitmap, cliprect, 0, 0); draw_sprites(bitmap, cliprect); return 0; } diff --git a/src/mame/video/mrjong.c b/src/mame/video/mrjong.c index 9d56e94a566..025a46a7489 100644 --- a/src/mame/video/mrjong.c +++ b/src/mame/video/mrjong.c @@ -143,7 +143,7 @@ void mrjong_state::draw_sprites( bitmap_ind16 &bitmap, const rectangle &cliprect UINT32 mrjong_state::screen_update_mrjong(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect) { - m_bg_tilemap->draw(bitmap, cliprect, 0, 0); + m_bg_tilemap->draw(screen, bitmap, cliprect, 0, 0); draw_sprites(bitmap, cliprect); return 0; } diff --git a/src/mame/video/ms32.c b/src/mame/video/ms32.c index 6ee29b608ad..2847752d893 100644 --- a/src/mame/video/ms32.c +++ b/src/mame/video/ms32.c @@ -263,7 +263,7 @@ void ms32_state::draw_sprites(bitmap_ind16 &bitmap, bitmap_ind8 &bitmap_pri, con } -void ms32_state::draw_roz(bitmap_ind16 &bitmap, const rectangle &cliprect,int priority) +void ms32_state::draw_roz(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect,int priority) { /* TODO: registers 0x40/4 / 0x44/4 and 0x50/4 / 0x54/4 are used, meaning unknown */ @@ -304,7 +304,7 @@ void ms32_state::draw_roz(bitmap_ind16 &bitmap, const rectangle &cliprect,int pr if (incxx & 0x10000) incxx |= ~0x1ffff; if (incxy & 0x10000) incxy |= ~0x1ffff; - m_roz_tilemap->draw_roz(bitmap, my_clip, + m_roz_tilemap->draw_roz(screen, bitmap, my_clip, (start2x+startx+offsx)<<16, (start2y+starty+offsy)<<16, incxx<<8, incxy<<8, 0, 0, 1, // Wrap @@ -335,7 +335,7 @@ void ms32_state::draw_roz(bitmap_ind16 &bitmap, const rectangle &cliprect,int pr if (incyy & 0x10000) incyy |= ~0x1ffff; if (incyx & 0x10000) incyx |= ~0x1ffff; - m_roz_tilemap->draw_roz(bitmap, cliprect, + m_roz_tilemap->draw_roz(screen, bitmap, cliprect, (startx+offsx)<<16, (starty+offsy)<<16, incxx<<8, incxy<<8, incyx<<8, incyy<<8, 1, // Wrap @@ -378,7 +378,7 @@ UINT32 ms32_state::screen_update_ms32(screen_device &screen, bitmap_rgb32 &bitma m_bg_tilemap_alt->set_scrolly(0, scrolly); - machine().priority_bitmap.fill(0, cliprect); + screen.priority().fill(0, cliprect); @@ -413,46 +413,46 @@ UINT32 ms32_state::screen_update_ms32(screen_device &screen, bitmap_rgb32 &bitma rot_pri++; if (rot_pri == 0) - draw_roz(m_temp_bitmap_tilemaps, cliprect, 1 << 1); + draw_roz(screen, m_temp_bitmap_tilemaps, cliprect, 1 << 1); else if (scr_pri == 0) if (m_tilemaplayoutcontrol&1) { - m_bg_tilemap_alt->draw(m_temp_bitmap_tilemaps, cliprect, 0, 1 << 0); + m_bg_tilemap_alt->draw(screen, m_temp_bitmap_tilemaps, cliprect, 0, 1 << 0); } else { - m_bg_tilemap->draw(m_temp_bitmap_tilemaps, cliprect, 0, 1 << 0); + m_bg_tilemap->draw(screen, m_temp_bitmap_tilemaps, cliprect, 0, 1 << 0); } else if (asc_pri == 0) - m_tx_tilemap->draw(m_temp_bitmap_tilemaps, cliprect, 0, 1 << 2); + m_tx_tilemap->draw(screen, m_temp_bitmap_tilemaps, cliprect, 0, 1 << 2); if (rot_pri == 1) - draw_roz(m_temp_bitmap_tilemaps, cliprect, 1 << 1); + draw_roz(screen, m_temp_bitmap_tilemaps, cliprect, 1 << 1); else if (scr_pri == 1) if (m_tilemaplayoutcontrol&1) { - m_bg_tilemap_alt->draw(m_temp_bitmap_tilemaps, cliprect, 0, 1 << 0); + m_bg_tilemap_alt->draw(screen, m_temp_bitmap_tilemaps, cliprect, 0, 1 << 0); } else { - m_bg_tilemap->draw(m_temp_bitmap_tilemaps, cliprect, 0, 1 << 0); + m_bg_tilemap->draw(screen, m_temp_bitmap_tilemaps, cliprect, 0, 1 << 0); } else if (asc_pri == 1) - m_tx_tilemap->draw(m_temp_bitmap_tilemaps, cliprect, 0, 1 << 2); + m_tx_tilemap->draw(screen, m_temp_bitmap_tilemaps, cliprect, 0, 1 << 2); if (rot_pri == 2) - draw_roz(m_temp_bitmap_tilemaps, cliprect, 1 << 1); + draw_roz(screen, m_temp_bitmap_tilemaps, cliprect, 1 << 1); else if (scr_pri == 2) if (m_tilemaplayoutcontrol&1) { - m_bg_tilemap_alt->draw(m_temp_bitmap_tilemaps, cliprect, 0, 1 << 0); + m_bg_tilemap_alt->draw(screen, m_temp_bitmap_tilemaps, cliprect, 0, 1 << 0); } else { - m_bg_tilemap->draw(m_temp_bitmap_tilemaps, cliprect, 0, 1 << 0); + m_bg_tilemap->draw(screen, m_temp_bitmap_tilemaps, cliprect, 0, 1 << 0); } else if (asc_pri == 2) - m_tx_tilemap->draw(m_temp_bitmap_tilemaps, cliprect, 0, 1 << 2); + m_tx_tilemap->draw(screen, m_temp_bitmap_tilemaps, cliprect, 0, 1 << 2); /* MIX it! */ /* this mixing isn't 100% accurate, it should be using ALL the data in @@ -476,7 +476,7 @@ UINT32 ms32_state::screen_update_ms32(screen_device &screen, bitmap_rgb32 &bitma for (yy=0;yydraw(bitmap, cliprect, 0, 0); - m_bg2_tilemap->draw(bitmap, cliprect, 0, 0); + m_bg_tilemap->draw(screen, bitmap, cliprect, 0, 0); + m_bg2_tilemap->draw(screen, bitmap, cliprect, 0, 0); draw_sprites(bitmap, cliprect); - m_fg_tilemap->draw(bitmap, cliprect, 0, 0); + m_fg_tilemap->draw(screen, bitmap, cliprect, 0, 0); return 0; } diff --git a/src/mame/video/mugsmash.c b/src/mame/video/mugsmash.c index 9a2721574be..f5886641128 100644 --- a/src/mame/video/mugsmash.c +++ b/src/mame/video/mugsmash.c @@ -139,8 +139,8 @@ void mugsmash_state::video_start() UINT32 mugsmash_state::screen_update_mugsmash(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect) { - m_tilemap2->draw(bitmap, cliprect, 0, 0); - m_tilemap1->draw(bitmap, cliprect, 0, 0); + m_tilemap2->draw(screen, bitmap, cliprect, 0, 0); + m_tilemap1->draw(screen, bitmap, cliprect, 0, 0); draw_sprites(bitmap, cliprect); return 0; } diff --git a/src/mame/video/mustache.c b/src/mame/video/mustache.c index 98d84ef2671..50bdb04aa6e 100644 --- a/src/mame/video/mustache.c +++ b/src/mame/video/mustache.c @@ -140,7 +140,7 @@ void mustache_state::draw_sprites(bitmap_ind16 &bitmap, const rectangle &cliprec UINT32 mustache_state::screen_update_mustache(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect) { - m_bg_tilemap->draw(bitmap, cliprect, 0, 0); + m_bg_tilemap->draw(screen, bitmap, cliprect, 0, 0); draw_sprites(bitmap, cliprect); return 0; } diff --git a/src/mame/video/mystston.c b/src/mame/video/mystston.c index 36da22b69fa..4be4fe0b77a 100644 --- a/src/mame/video/mystston.c +++ b/src/mame/video/mystston.c @@ -252,9 +252,9 @@ UINT32 mystston_state::screen_update_mystston(screen_device &screen, bitmap_ind1 m_bg_tilemap->set_scrolly(0, *m_scroll); machine().tilemap().set_flip_all(flip ? (TILEMAP_FLIPY | TILEMAP_FLIPX) : 0); - m_bg_tilemap->draw(bitmap, cliprect, 0, 0); + m_bg_tilemap->draw(screen, bitmap, cliprect, 0, 0); draw_sprites(bitmap, cliprect, machine().gfx[2], flip); - m_fg_tilemap->draw(bitmap, cliprect, 0, 0); + m_fg_tilemap->draw(screen, bitmap, cliprect, 0, 0); return 0; } diff --git a/src/mame/video/mystwarr.c b/src/mame/video/mystwarr.c index 65cc6ae6505..93985bbe7dd 100644 --- a/src/mame/video/mystwarr.c +++ b/src/mame/video/mystwarr.c @@ -172,7 +172,7 @@ VIDEO_START_MEMBER(mystwarr_state,gaiapols) m_k055673->alt_k055673_vh_start(machine(), "gfx2", 1, -61, -22, gaiapols_sprite_callback); // stage2 brick walls - konamigx_mixer_init(machine(), 0); + konamigx_mixer_init(*m_screen, 0); m_k056832->set_layer_offs(0, -2+2-1, 0-1); m_k056832->set_layer_offs(1, 0+2, 0); @@ -212,7 +212,7 @@ VIDEO_START_MEMBER(mystwarr_state,dadandrn) m_k055673->alt_k055673_vh_start(machine(), "gfx2", 0, -42, -22, gaiapols_sprite_callback); - konamigx_mixer_init(machine(), 0); + konamigx_mixer_init(*m_screen, 0); konamigx_mixer_primode(1); @@ -241,7 +241,7 @@ VIDEO_START_MEMBER(mystwarr_state,mystwarr) m_k055673->alt_k055673_vh_start(machine(), "gfx2", 0, -48, -24, mystwarr_sprite_callback); - konamigx_mixer_init(machine(), 0); + konamigx_mixer_init(*m_screen, 0); m_k056832->set_layer_offs(0, -2-3, 0); m_k056832->set_layer_offs(1, 0-3, 0); @@ -264,7 +264,7 @@ VIDEO_START_MEMBER(mystwarr_state,metamrph) m_k055673->alt_k055673_vh_start(machine(), "gfx2", 1, -51, -22, metamrph_sprite_callback); - konamigx_mixer_init(machine(), 0); + konamigx_mixer_init(*m_screen, 0); // other reference, floor at first boss m_k056832->set_layer_offs(0, -2+4, 0); // text @@ -286,7 +286,7 @@ VIDEO_START_MEMBER(mystwarr_state,viostorm) m_k055673->alt_k055673_vh_start(machine(), "gfx2", 1, -62, -23, metamrph_sprite_callback); - konamigx_mixer_init(machine(), 0); + konamigx_mixer_init(*m_screen, 0); m_k056832->set_layer_offs(0, -2+1, 0); m_k056832->set_layer_offs(1, 0+1, 0); @@ -307,7 +307,7 @@ VIDEO_START_MEMBER(mystwarr_state,martchmp) m_k055673->alt_k055673_vh_start(machine(), "gfx2", 0, -58, -23, martchmp_sprite_callback); - konamigx_mixer_init(machine(), 0); + konamigx_mixer_init(*m_screen, 0); m_k056832->set_layer_offs(0, -2-4, 0); m_k056832->set_layer_offs(1, 0-4, 0); @@ -334,7 +334,7 @@ UINT32 mystwarr_state::screen_update_mystwarr(screen_device &screen, bitmap_rgb3 m_sprite_colorbase = m_k055555->K055555_get_palette_index(4)<<5; - konamigx_mixer(machine(), bitmap, cliprect, 0, 0, 0, 0, blendmode, 0, 0); + konamigx_mixer(screen, bitmap, cliprect, 0, 0, 0, 0, blendmode, 0, 0); return 0; } @@ -351,7 +351,7 @@ UINT32 mystwarr_state::screen_update_metamrph(screen_device &screen, bitmap_rgb3 m_sprite_colorbase = m_k055555->K055555_get_palette_index(4)<<4; - konamigx_mixer(machine(), bitmap, cliprect, 0, GXSUB_K053250 | GXSUB_4BPP, 0, 0, 0, 0, 0); + konamigx_mixer(screen, bitmap, cliprect, 0, GXSUB_K053250 | GXSUB_4BPP, 0, 0, 0, 0, 0); return 0; } @@ -374,7 +374,7 @@ UINT32 mystwarr_state::screen_update_martchmp(screen_device &screen, bitmap_rgb3 // not quite right blendmode = (m_oinprion==0xef && K054338_read_register(K338_REG_PBLEND)) ? ((1<<16|GXMIX_BLEND_FORCE)<<2) : 0; - konamigx_mixer(machine(), bitmap, cliprect, 0, 0, 0, 0, blendmode, 0, 0); + konamigx_mixer(screen, bitmap, cliprect, 0, 0, 0, 0, blendmode, 0, 0); return 0; } @@ -535,6 +535,6 @@ UINT32 mystwarr_state::screen_update_dadandrn(screen_device &screen, bitmap_rgb3 popmessage("K053936: PSAC colorbase changed"); } - konamigx_mixer(machine(), bitmap, cliprect, (m_roz_enable) ? m_ult_936_tilemap : 0, rozmode, 0, 0, 0, 0, 0); + konamigx_mixer(screen, bitmap, cliprect, (m_roz_enable) ? m_ult_936_tilemap : 0, rozmode, 0, 0, 0, 0, 0); return 0; } diff --git a/src/mame/video/namcofl.c b/src/mame/video/namcofl.c index 4587642dd94..6068e7a849c 100644 --- a/src/mame/video/namcofl.c +++ b/src/mame/video/namcofl.c @@ -90,10 +90,10 @@ UINT32 namcofl_state::screen_update_namcofl(screen_device &screen, bitmap_ind16 for( pri=0; pri<16; pri++ ) { - c169_roz_draw(bitmap, cliprect, pri); + c169_roz_draw(screen, bitmap, cliprect, pri); if((pri&1)==0) - namco_tilemap_draw( bitmap, cliprect, pri>>1 ); - c355_obj_draw(bitmap, cliprect, pri ); + namco_tilemap_draw( screen, bitmap, cliprect, pri>>1 ); + c355_obj_draw(screen, bitmap, cliprect, pri ); } return 0; diff --git a/src/mame/video/namcona1.c b/src/mame/video/namcona1.c index 7bba245091b..98b850cee3d 100644 --- a/src/mame/video/namcona1.c +++ b/src/mame/video/namcona1.c @@ -303,7 +303,8 @@ void namcona1_state::video_start() /*************************************************************************/ -static void pdraw_tile(running_machine &machine, +static void pdraw_tile( + screen_device &screen, bitmap_ind16 &dest_bmp, const rectangle &clip, UINT32 code, @@ -315,8 +316,8 @@ static void pdraw_tile(running_machine &machine, int bOpaque, int gfx_region ) { - gfx_element *gfx = machine.gfx[gfx_region]; - gfx_element *mask = machine.gfx[2]; + gfx_element *gfx = screen.machine().gfx[gfx_region]; + gfx_element *mask = screen.machine().gfx[2]; int pal_base = gfx->colorbase() + gfx->granularity() * (color % gfx->colors()); const UINT8 *source_base = gfx->get_data((code % gfx->elements())); @@ -390,7 +391,7 @@ static void pdraw_tile(running_machine &machine, const UINT8 *source = source_base + (y_index>>16) * gfx->rowbytes(); const UINT8 *mask_addr = mask_base + (y_index>>16) * mask->rowbytes(); UINT16 *dest = &dest_bmp.pix16(y); - UINT8 *pri = &machine.priority_bitmap.pix8(y); + UINT8 *pri = &screen.priority().pix8(y); int x, x_index = x_index_base; for( x=sx; x(); + namcona1_state *state = screen.machine().driver_data(); int which; const UINT16 *source = state->m_spriteram; UINT16 sprite_control; @@ -513,7 +514,7 @@ static void draw_sprites(running_machine &machine, bitmap_ind16 &bitmap, const r } sx = ((sx+16)&0x1ff)-8; - pdraw_tile(machine, + pdraw_tile(screen, bitmap, cliprect, (tile & 0xfff) + row*64+col, @@ -543,9 +544,9 @@ static void draw_pixel_line( UINT16 *pDest, UINT8 *pPri, UINT16 *pSource, const } /* next x */ } /* draw_pixel_line */ -static void draw_background(running_machine &machine, bitmap_ind16 &bitmap, const rectangle &cliprect, int which, int primask ) +static void draw_background(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect, int which, int primask ) { - namcona1_state *state = machine.driver_data(); + namcona1_state *state = screen.machine().driver_data(); UINT16 *videoram = state->m_videoram; /* scrollx lineselect * tmap0 ffe000 ffe200 @@ -562,8 +563,8 @@ static void draw_background(running_machine &machine, bitmap_ind16 &bitmap, cons const pen_t *paldata; gfx_element *pGfx; - pGfx = machine.gfx[0]; - paldata = &machine.pens[pGfx->colorbase() + pGfx->granularity() * state->m_tilemap_palette_bank[which]]; + pGfx = screen.machine().gfx[0]; + paldata = &screen.machine().pens[pGfx->colorbase() + pGfx->granularity() * state->m_tilemap_palette_bank[which]]; /* draw one scanline at a time */ clip.min_x = cliprect.min_x; @@ -596,7 +597,7 @@ static void draw_background(running_machine &machine, bitmap_ind16 &bitmap, cons */ draw_pixel_line( &bitmap.pix16(line), - &machine.priority_bitmap.pix8(line), + &screen.priority().pix8(line), videoram + ydata + 25, paldata ); } @@ -614,14 +615,14 @@ static void draw_background(running_machine &machine, bitmap_ind16 &bitmap, cons int dy = -8; /* vertical adjust */ UINT32 startx = (xoffset<<12)+incxx*dx+incyx*dy; UINT32 starty = (yoffset<<12)+incxy*dx+incyy*dy; - state->m_roz_tilemap->draw_roz(bitmap, clip, + state->m_roz_tilemap->draw_roz(screen, bitmap, clip, startx, starty, incxx, incxy, incyx, incyy, 0, 0, primask, 0); } else { state->m_bg_tilemap[which]->set_scrollx(0, scrollx ); state->m_bg_tilemap[which]->set_scrolly(0, scrolly ); - state->m_bg_tilemap[which]->draw(bitmap, clip, 0, primask, 0 ); + state->m_bg_tilemap[which]->draw(screen, bitmap, clip, 0, primask, 0 ); } } } @@ -666,7 +667,7 @@ UINT32 namcona1_state::screen_update_namcona1(screen_device &screen, bitmap_ind1 } } - machine().priority_bitmap.fill(0, cliprect ); + screen.priority().fill(0, cliprect ); bitmap.fill(0xff, cliprect ); /* background color? */ @@ -685,12 +686,12 @@ UINT32 namcona1_state::screen_update_namcona1(screen_device &screen, bitmap_ind1 } if( pri == priority ) { - draw_background(machine(),bitmap,cliprect,which,priority); + draw_background(screen,bitmap,cliprect,which,priority); } } /* next tilemap */ } /* next priority level */ - draw_sprites(machine(),bitmap,cliprect); + draw_sprites(screen,bitmap,cliprect); } /* gfx enabled */ return 0; } diff --git a/src/mame/video/namconb1.c b/src/mame/video/namconb1.c index 85be4de38c5..68ece53b59b 100644 --- a/src/mame/video/namconb1.c +++ b/src/mame/video/namconb1.c @@ -102,30 +102,30 @@ static void namconb1_install_palette(running_machine &machine) } /* namconb1_install_palette */ static void -video_update_common(running_machine &machine, bitmap_ind16 &bitmap, const rectangle &cliprect, int bROZ ) +video_update_common(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect, int bROZ ) { - namconb1_state *state = machine.driver_data(); + namconb1_state *state = screen.machine().driver_data(); int pri; - namconb1_install_palette(machine); + namconb1_install_palette(screen.machine()); if( bROZ ) { for( pri=0; pri<16; pri++ ) { - state->c169_roz_draw(bitmap, cliprect, pri); + state->c169_roz_draw(screen, bitmap, cliprect, pri); if( (pri&1)==0 ) { - namco_tilemap_draw( bitmap, cliprect, pri/2 ); + namco_tilemap_draw( screen, bitmap, cliprect, pri/2 ); } - state->c355_obj_draw(bitmap, cliprect, pri ); + state->c355_obj_draw(screen, bitmap, cliprect, pri ); } } else { for( pri=0; pri<8; pri++ ) { - namco_tilemap_draw( bitmap, cliprect, pri ); - state->c355_obj_draw(bitmap, cliprect, pri ); + namco_tilemap_draw( screen, bitmap, cliprect, pri ); + state->c355_obj_draw(screen, bitmap, cliprect, pri ); } } } /* video_update_common */ @@ -148,7 +148,7 @@ UINT32 namconb1_state::screen_update_namconb1(screen_device &screen, bitmap_ind1 bitmap.fill(get_black_pen(machine()), cliprect ); - video_update_common( machine(), bitmap, clip, 0 ); + video_update_common( screen, bitmap, clip, 0 ); return 0; } @@ -190,7 +190,7 @@ UINT32 namconb1_state::screen_update_namconb2(screen_device &screen, bitmap_ind1 namco_tilemap_invalidate(); memcpy(m_tilemap_tile_bank,m_tilebank32,sizeof(m_tilemap_tile_bank)); } - video_update_common( machine(), bitmap, clip, 1 ); + video_update_common( screen, bitmap, clip, 1 ); return 0; } diff --git a/src/mame/video/namcos1.c b/src/mame/video/namcos1.c index f3876c6e3eb..6f8467d44da 100644 --- a/src/mame/video/namcos1.c +++ b/src/mame/video/namcos1.c @@ -289,13 +289,13 @@ sprite format: 15 xxxxxxxx Y position */ -static void draw_sprites(running_machine &machine, bitmap_ind16 &bitmap, const rectangle &cliprect) +static void draw_sprites(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect) { - namcos1_state *state = machine.driver_data(); + namcos1_state *state = screen.machine().driver_data(); UINT8 *spriteram = state->m_spriteram + 0x800; const UINT8 *source = &spriteram[0x800-0x20]; /* the last is NOT a sprite */ const UINT8 *finish = &spriteram[0]; - gfx_element *gfx = machine.gfx[1]; + gfx_element *gfx = screen.machine().gfx[1]; int sprite_xoffs = spriteram[0x07f5] + ((spriteram[0x07f4] & 1) << 8); int sprite_yoffs = spriteram[0x07f7]; @@ -343,7 +343,7 @@ static void draw_sprites(running_machine &machine, bitmap_ind16 &bitmap, const r flipx,flipy, sx & 0x1ff, ((sy + 16) & 0xff) - 16, - machine.priority_bitmap, pri_mask, + screen.priority(), pri_mask, 0xf); else pdrawgfx_transtable( bitmap, cliprect, gfx, @@ -352,8 +352,8 @@ static void draw_sprites(running_machine &machine, bitmap_ind16 &bitmap, const r flipx,flipy, sx & 0x1ff, ((sy + 16) & 0xff) - 16, - machine.priority_bitmap, pri_mask, - state->m_drawmode_table, machine.shadow_table); + screen.priority(), pri_mask, + state->m_drawmode_table, screen.machine().shadow_table); source -= 0x10; } @@ -412,7 +412,7 @@ UINT32 namcos1_state::screen_update_namcos1(screen_device &screen, bitmap_ind16 } - machine().priority_bitmap.fill(0, new_clip); + screen.priority().fill(0, new_clip); /* bit 0-2 priority */ /* bit 3 disable */ @@ -421,11 +421,11 @@ UINT32 namcos1_state::screen_update_namcos1(screen_device &screen, bitmap_ind16 for (i = 0;i < 6;i++) { if (m_playfield_control[16 + i] == priority) - m_bg_tilemap[i]->draw(bitmap, new_clip, 0,priority,0); + m_bg_tilemap[i]->draw(screen, bitmap, new_clip, 0,priority,0); } } - draw_sprites(machine(), bitmap, new_clip); + draw_sprites(screen, bitmap, new_clip); return 0; } diff --git a/src/mame/video/namcos2.c b/src/mame/video/namcos2.c index 96089384bb8..1d48f94febd 100644 --- a/src/mame/video/namcos2.c +++ b/src/mame/video/namcos2.c @@ -113,6 +113,7 @@ DrawRozHelperBlock(const struct RozParam *rozInfo, int destx, int desty, static void DrawRozHelper( + screen_device &screen, bitmap_ind16 &bitmap, tilemap_t *tmap, const rectangle &clip, @@ -225,7 +226,7 @@ DrawRozHelper( } else { - tmap->draw_roz( + tmap->draw_roz(screen, bitmap, clip, rozInfo->startx, rozInfo->starty, rozInfo->incxx, rozInfo->incxy, @@ -234,7 +235,7 @@ DrawRozHelper( } } /* DrawRozHelper */ -void namcos2_state::draw_roz(bitmap_ind16 &bitmap, const rectangle &cliprect) +void namcos2_state::draw_roz(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect) { const int xoffset = 38,yoffset = 0; struct RozParam rozParam; @@ -281,7 +282,7 @@ void namcos2_state::draw_roz(bitmap_ind16 &bitmap, const rectangle &cliprect) rozParam.incyx<<=8; rozParam.incyy<<=8; - DrawRozHelper( bitmap, m_tilemap_roz, cliprect, &rozParam ); + DrawRozHelper( screen, bitmap, m_tilemap_roz, cliprect, &rozParam ); } WRITE16_MEMBER( namcos2_state::rozram_word_w ) @@ -430,13 +431,13 @@ UINT32 namcos2_state::screen_update(screen_device &screen, bitmap_ind16 &bitmap, { if( (pri&1)==0 ) { - namco_tilemap_draw( bitmap, clip, pri/2 ); + namco_tilemap_draw( screen, bitmap, clip, pri/2 ); if( ((m_gfx_ctrl & 0x7000) >> 12)==pri/2 ) { - draw_roz(bitmap,clip); + draw_roz(screen, bitmap,clip); } - draw_sprites(bitmap, clip, pri/2, m_gfx_ctrl ); + draw_sprites(screen, bitmap, clip, pri/2, m_gfx_ctrl ); } } return 0; @@ -463,10 +464,10 @@ UINT32 namcos2_state::screen_update_finallap(screen_device &screen, bitmap_ind16 { if( (pri&1)==0 ) { - namco_tilemap_draw( bitmap, clip, pri/2 ); + namco_tilemap_draw( screen, bitmap, clip, pri/2 ); } m_c45_road->draw(bitmap,clip,pri); - draw_sprites(bitmap,clip,pri,m_gfx_ctrl ); + draw_sprites(screen,bitmap,clip,pri,m_gfx_ctrl ); } return 0; } @@ -496,14 +497,14 @@ UINT32 namcos2_state::screen_update_luckywld(screen_device &screen, bitmap_ind16 { if( (pri&1)==0 ) { - namco_tilemap_draw( bitmap, clip, pri/2 ); + namco_tilemap_draw( screen, bitmap, clip, pri/2 ); } m_c45_road->draw(bitmap,clip,pri); if( m_gametype==NAMCOS2_LUCKY_AND_WILD ) { - c169_roz_draw(bitmap, clip, pri); + c169_roz_draw(screen, bitmap, clip, pri); } - c355_obj_draw(bitmap, clip, pri ); + c355_obj_draw(screen, bitmap, clip, pri ); } return 0; } @@ -527,8 +528,8 @@ UINT32 namcos2_state::screen_update_sgunner(screen_device &screen, bitmap_ind16 for( pri=0; pri<8; pri++ ) { - namco_tilemap_draw( bitmap, clip, pri ); - c355_obj_draw(bitmap, clip, pri ); + namco_tilemap_draw( screen, bitmap, clip, pri ); + c355_obj_draw(screen, bitmap, clip, pri ); } return 0; } @@ -555,10 +556,10 @@ UINT32 namcos2_state::screen_update_metlhawk(screen_device &screen, bitmap_ind16 { if( (pri&1)==0 ) { - namco_tilemap_draw( bitmap, clip, pri/2 ); + namco_tilemap_draw( screen, bitmap, clip, pri/2 ); } - c169_roz_draw(bitmap, clip, pri); - draw_sprites_metalhawk(bitmap,clip,pri ); + c169_roz_draw(screen, bitmap, clip, pri); + draw_sprites_metalhawk(screen,bitmap,clip,pri ); } return 0; } diff --git a/src/mame/video/namcos21.c b/src/mame/video/namcos21.c index a9f63e8766b..50ef709cf7f 100644 --- a/src/mame/video/namcos21.c +++ b/src/mame/video/namcos21.c @@ -175,16 +175,16 @@ UINT32 namcos21_state::screen_update_namcos21(screen_device &screen, bitmap_ind1 if( m_gametype != NAMCOS21_WINRUN91 ) { /* draw low priority 2d sprites */ - c355_obj_draw(bitmap, cliprect, 2 ); - c355_obj_draw(bitmap, cliprect, 14 ); //driver's eyes + c355_obj_draw(screen, bitmap, cliprect, 2 ); + c355_obj_draw(screen, bitmap, cliprect, 14 ); //driver's eyes } CopyVisiblePolyFrameBuffer( machine(), bitmap, cliprect, 0x7fc0, 0x7ffe ); if( m_gametype != NAMCOS21_WINRUN91 ) { /* draw low priority 2d sprites */ - c355_obj_draw(bitmap, cliprect, 0 ); - c355_obj_draw(bitmap, cliprect, 1 ); + c355_obj_draw(screen, bitmap, cliprect, 0 ); + c355_obj_draw(screen, bitmap, cliprect, 1 ); } CopyVisiblePolyFrameBuffer( machine(), bitmap, cliprect, 0, 0x7fbf ); @@ -194,9 +194,9 @@ UINT32 namcos21_state::screen_update_namcos21(screen_device &screen, bitmap_ind1 { /* draw high priority 2d sprites */ for( pri=pivot; pri<8; pri++ ) { - c355_obj_draw(bitmap, cliprect, pri ); + c355_obj_draw(screen, bitmap, cliprect, pri ); } - c355_obj_draw(bitmap, cliprect, 15 ); //driver's eyes + c355_obj_draw(screen, bitmap, cliprect, 15 ); //driver's eyes } else { /* winrun bitmap layer */ diff --git a/src/mame/video/namcos22.c b/src/mame/video/namcos22.c index 4a01a35bab3..2feccb3aa44 100644 --- a/src/mame/video/namcos22.c +++ b/src/mame/video/namcos22.c @@ -500,22 +500,22 @@ static void renderscanline_uvi_full(void *destbase, INT32 scanline, const poly_e } } -static void poly3d_DrawQuad(running_machine &machine, bitmap_rgb32 &bitmap, int textureBank, int color, Poly3dVertex pv[4], int flags, int cz_adjust, int direct, int cmode ) +static void poly3d_DrawQuad(screen_device &screen, bitmap_rgb32 &bitmap, int textureBank, int color, Poly3dVertex pv[4], int flags, int cz_adjust, int direct, int cmode ) { - namcos22_state *state = machine.driver_data(); + namcos22_state *state = screen.machine().driver_data(); poly_extra_data *extra = (poly_extra_data *)poly_get_extra_data(state->m_poly); poly_vertex v[4], clipv[6]; int clipverts; int vertnum; - extra->machine = &machine; + extra->machine = &screen.machine(); extra->pfade_enabled = 0; extra->zfog_enabled = 0; extra->fadeFactor = 0; extra->fogFactor = 0; - extra->pens = &machine.pens[(color&0x7f)<<8]; - extra->priority_bitmap = &machine.priority_bitmap; + extra->pens = &screen.machine().pens[(color&0x7f)<<8]; + extra->priority_bitmap = &screen.priority(); extra->bn = textureBank; extra->flags = flags; extra->cz_adjust = cz_adjust; @@ -755,7 +755,7 @@ static void renderscanline_sprite(void *destbase, INT32 scanline, const poly_ext } -static void poly3d_DrawSprite(bitmap_rgb32 &dest_bmp, gfx_element *gfx, UINT32 code, UINT32 color, int flipx, int flipy, int sx, int sy, int scalex, int scaley, int cz_factor, int prioverchar, int alpha) +static void poly3d_DrawSprite(screen_device &screen, bitmap_rgb32 &dest_bmp, gfx_element *gfx, UINT32 code, UINT32 color, int flipx, int flipy, int sx, int sy, int scalex, int scaley, int cz_factor, int prioverchar, int alpha) { namcos22_state *state = gfx->machine().driver_data(); int sprite_screen_height = (scaley*gfx->height()+0x8000)>>16; @@ -782,7 +782,7 @@ static void poly3d_DrawSprite(bitmap_rgb32 &dest_bmp, gfx_element *gfx, UINT32 c extra->flipx = flipx; extra->flipy = flipy; extra->pens = &gfx->machine().pens[gfx->colorbase() + gfx->granularity() * (color&0x7f)]; - extra->priority_bitmap = &gfx->machine().priority_bitmap; + extra->priority_bitmap = &screen.priority(); extra->source = gfx->get_data(code % gfx->elements()); vert[0].x = fsx; @@ -1048,9 +1048,9 @@ static struct SceneNode *NewSceneNode( running_machine &machine, UINT32 zsortval } -static void RenderSprite(running_machine &machine, bitmap_rgb32 &bitmap, struct SceneNode *node ) +static void RenderSprite(screen_device &screen, bitmap_rgb32 &bitmap, struct SceneNode *node ) { - namcos22_state *state = machine.driver_data(); + namcos22_state *state = screen.machine().driver_data(); int tile = node->data.sprite.tile; int col,row; int i = 0; @@ -1065,8 +1065,9 @@ static void RenderSprite(running_machine &machine, bitmap_rgb32 &bitmap, struct code += nthword( &state->m_spriteram[0x800/4], i+node->data.sprite.linkType*4 ); poly3d_DrawSprite( + screen, bitmap, - machine.gfx[GFX_SPRITE], + screen.machine().gfx[GFX_SPRITE], code, node->data.sprite.color, node->data.sprite.flipx, @@ -1084,7 +1085,7 @@ static void RenderSprite(running_machine &machine, bitmap_rgb32 &bitmap, struct } } -static void RenderSceneHelper(running_machine &machine, bitmap_rgb32 &bitmap, struct SceneNode *node ) +static void RenderSceneHelper(screen_device &screen, bitmap_rgb32 &bitmap, struct SceneNode *node ) { if( node ) { @@ -1093,7 +1094,7 @@ static void RenderSceneHelper(running_machine &machine, bitmap_rgb32 &bitmap, st int i; for( i=RADIX_BUCKETS-1; i>=0; i-- ) { - RenderSceneHelper(machine, bitmap, node->data.nonleaf.next[i] ); + RenderSceneHelper(screen, bitmap, node->data.nonleaf.next[i] ); } FreeSceneNode( node ); } @@ -1112,7 +1113,7 @@ static void RenderSceneHelper(running_machine &machine, bitmap_rgb32 &bitmap, st node->data.quad3d.vw, node->data.quad3d.vh ); - poly3d_DrawQuad(machine, + poly3d_DrawQuad(screen, bitmap, node->data.quad3d.textureBank, node->data.quad3d.color, @@ -1131,7 +1132,7 @@ static void RenderSceneHelper(running_machine &machine, bitmap_rgb32 &bitmap, st node->data.sprite.cy_min, node->data.sprite.cy_max ); - RenderSprite(machine, bitmap, node ); + RenderSprite(screen, bitmap, node ); break; default: @@ -1145,14 +1146,14 @@ static void RenderSceneHelper(running_machine &machine, bitmap_rgb32 &bitmap, st } } -static void RenderScene(running_machine &machine, bitmap_rgb32 &bitmap ) +static void RenderScene(screen_device &screen, bitmap_rgb32 &bitmap ) { - namcos22_state *state = machine.driver_data(); + namcos22_state *state = screen.machine().driver_data(); struct SceneNode *node = &mSceneRoot; int i; for( i=RADIX_BUCKETS-1; i>=0; i-- ) { - RenderSceneHelper(machine, bitmap, node->data.nonleaf.next[i] ); + RenderSceneHelper(screen, bitmap, node->data.nonleaf.next[i] ); node->data.nonleaf.next[i] = NULL; } poly3d_NoClip(); @@ -1908,10 +1909,10 @@ WRITE32_MEMBER(namcos22_state::namcos22s_spotram_w) } } -static void namcos22s_mix_textlayer( running_machine &machine, bitmap_rgb32 &bitmap, const rectangle &cliprect, int prival ) +static void namcos22s_mix_textlayer( screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect, int prival ) { - namcos22_state *state = machine.driver_data(); - const pen_t *pens = machine.pens; + namcos22_state *state = screen.machine().driver_data(); + const pen_t *pens = screen.machine().pens; UINT16 *src; UINT32 *dest; UINT8 *pri; @@ -1939,7 +1940,7 @@ static void namcos22s_mix_textlayer( running_machine &machine, bitmap_rgb32 &bit { src = &state->m_mix_bitmap->pix16(y); dest = &bitmap.pix32(y); - pri = &machine.priority_bitmap.pix8(y); + pri = &screen.priority().pix8(y); for (x=0;x<640;x++) { // skip if transparent or under poly/sprite @@ -1992,10 +1993,10 @@ static void namcos22s_mix_textlayer( running_machine &machine, bitmap_rgb32 &bit } } -static void namcos22_mix_textlayer( running_machine &machine, bitmap_rgb32 &bitmap, const rectangle &cliprect ) +static void namcos22_mix_textlayer( screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect ) { - namcos22_state *state = machine.driver_data(); - const pen_t *pens = machine.pens; + namcos22_state *state = screen.machine().driver_data(); + const pen_t *pens = screen.machine().pens; UINT16 *src; UINT32 *dest; UINT8 *pri; @@ -2016,7 +2017,7 @@ static void namcos22_mix_textlayer( running_machine &machine, bitmap_rgb32 &bitm { src = &state->m_mix_bitmap->pix16(y); dest = &bitmap.pix32(y); - pri = &machine.priority_bitmap.pix8(y); + pri = &screen.priority().pix8(y); for (x=0;x<640;x++) { // skip if transparent or under poly @@ -2054,9 +2055,9 @@ static void namcos22_mix_textlayer( running_machine &machine, bitmap_rgb32 &bitm } } -static void DrawCharacterLayer(running_machine &machine, bitmap_rgb32 &bitmap, const rectangle &cliprect ) +static void DrawCharacterLayer(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect ) { - namcos22_state *state = machine.driver_data(); + namcos22_state *state = screen.machine().driver_data(); int scroll_x = (state->m_tilemapattr[0]>>16) - 0x35c; int scroll_y = state->m_tilemapattr[0]&0xffff; @@ -2066,13 +2067,13 @@ static void DrawCharacterLayer(running_machine &machine, bitmap_rgb32 &bitmap, c if (state->m_bSuperSystem22) { - state->m_bgtilemap->draw(*state->m_mix_bitmap, cliprect, 0, 4, 4); - namcos22s_mix_textlayer(machine, bitmap, cliprect, 4); + state->m_bgtilemap->draw(screen, *state->m_mix_bitmap, cliprect, 0, 4, 4); + namcos22s_mix_textlayer(screen, bitmap, cliprect, 4); } else { - state->m_bgtilemap->draw(*state->m_mix_bitmap, cliprect, 0, 2, 3); - namcos22_mix_textlayer(machine, bitmap, cliprect); + state->m_bgtilemap->draw(screen, *state->m_mix_bitmap, cliprect, 0, 2, 3); + namcos22_mix_textlayer(screen, bitmap, cliprect); } } @@ -2744,7 +2745,7 @@ UINT32 namcos22_state::screen_update_namcos22s(screen_device &screen, bitmap_rgb UpdateVideoMixer(machine()); UpdatePalette(machine()); namcos22s_recalc_czram(machine()); - machine().priority_bitmap.fill(0, cliprect); + screen.priority().fill(0, cliprect); // background color rgbint bg_color; @@ -2759,11 +2760,11 @@ UINT32 namcos22_state::screen_update_namcos22s(screen_device &screen, bitmap_rgb // layers UINT8 layer = nthbyte(m_gamma,0x1f); - if (layer&4) DrawCharacterLayer(machine(), bitmap, cliprect); + if (layer&4) DrawCharacterLayer(screen, bitmap, cliprect); if (layer&2) DrawSprites(machine(), bitmap, cliprect); if (layer&1) DrawPolygons(machine(), bitmap); - RenderScene(machine(), bitmap ); - if (layer&4) namcos22s_mix_textlayer(machine(), bitmap, cliprect, 6); + RenderScene(screen, bitmap ); + if (layer&4) namcos22s_mix_textlayer(screen, bitmap, cliprect, 6); ApplyGamma(machine(), bitmap); // debug stuff @@ -2825,11 +2826,11 @@ UINT32 namcos22_state::screen_update_namcos22(screen_device &screen, bitmap_rgb3 { UpdateVideoMixer(machine()); UpdatePalette(machine()); - machine().priority_bitmap.fill(0, cliprect); + screen.priority().fill(0, cliprect); bitmap.fill(0, cliprect); DrawPolygons(machine(), bitmap); - RenderScene(machine(), bitmap); - DrawCharacterLayer(machine(), bitmap, cliprect); + RenderScene(screen, bitmap); + DrawCharacterLayer(screen, bitmap, cliprect); ApplyGamma(machine(), bitmap); #if ALLOW_MEMDUMP diff --git a/src/mame/video/namcos86.c b/src/mame/video/namcos86.c index c4589dce05d..73615bda573 100644 --- a/src/mame/video/namcos86.c +++ b/src/mame/video/namcos86.c @@ -268,17 +268,17 @@ sprite format: 15 xxxxxxxx Y position */ -static void draw_sprites(running_machine &machine, bitmap_ind16 &bitmap, const rectangle &cliprect) +static void draw_sprites(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect) { - namcos86_state *state = machine.driver_data(); + namcos86_state *state = screen.machine().driver_data(); const UINT8 *source = &state->m_spriteram[0x0800-0x20]; /* the last is NOT a sprite */ const UINT8 *finish = &state->m_spriteram[0]; - gfx_element *gfx = machine.gfx[2]; + gfx_element *gfx = screen.machine().gfx[2]; int sprite_xoffs = state->m_spriteram[0x07f5] + ((state->m_spriteram[0x07f4] & 1) << 8); int sprite_yoffs = state->m_spriteram[0x07f7]; - int bank_sprites = machine.gfx[2]->elements() / 8; + int bank_sprites = screen.machine().gfx[2]->elements() / 8; while (source >= finish) { @@ -323,7 +323,7 @@ static void draw_sprites(running_machine &machine, bitmap_ind16 &bitmap, const r flipx,flipy, sx & 0x1ff, ((sy + 16) & 0xff) - 16, - machine.priority_bitmap, pri_mask,0xf); + screen.priority(), pri_mask,0xf); source -= 0x10; } @@ -361,7 +361,7 @@ UINT32 namcos86_state::screen_update_namcos86(screen_device &screen, bitmap_ind1 set_scroll(machine(), 2); set_scroll(machine(), 3); - machine().priority_bitmap.fill(0, cliprect); + screen.priority().fill(0, cliprect); bitmap.fill(machine().gfx[0]->colorbase() + 8*m_backcolor+7, cliprect); @@ -372,11 +372,11 @@ UINT32 namcos86_state::screen_update_namcos86(screen_device &screen, bitmap_ind1 for (i = 3;i >= 0;i--) { if (((m_xscroll[i] & 0x0e00) >> 9) == layer) - m_bg_tilemap[i]->draw(bitmap, cliprect, 0,layer,0); + m_bg_tilemap[i]->draw(screen, bitmap, cliprect, 0,layer,0); } } - draw_sprites(machine(),bitmap,cliprect); + draw_sprites(screen,bitmap,cliprect); return 0; } diff --git a/src/mame/video/nemesis.c b/src/mame/video/nemesis.c index 6ce5446d236..bd7294e598d 100644 --- a/src/mame/video/nemesis.c +++ b/src/mame/video/nemesis.c @@ -311,7 +311,7 @@ void nemesis_state::video_start() } -void nemesis_state::draw_sprites( bitmap_ind16 &bitmap, const rectangle &cliprect ) +void nemesis_state::draw_sprites( screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect ) { /* * 16 bytes per sprite, in memory from 56000-56fff @@ -392,7 +392,7 @@ void nemesis_state::draw_sprites( bitmap_ind16 &bitmap, const rectangle &cliprec flipx,flipy, sx,sy, zoom,zoom, - machine().priority_bitmap,0xffcc,0 ); + screen.priority(),0xffcc,0 ); } } } @@ -406,7 +406,7 @@ UINT32 nemesis_state::screen_update_nemesis(screen_device &screen, bitmap_ind16 int offs; rectangle clip; - machine().priority_bitmap.fill(0, cliprect); + screen.priority().fill(0, cliprect); bitmap.fill(0, cliprect); clip.min_x = 0; @@ -444,14 +444,14 @@ UINT32 nemesis_state::screen_update_nemesis(screen_device &screen, bitmap_ind16 for (i = 0; i < 4; i += 2) { - m_background->draw(bitmap, clip, TILEMAP_DRAW_CATEGORY(i + 0), 1); - m_background->draw(bitmap, clip, TILEMAP_DRAW_CATEGORY(i + 1), 2); - m_foreground->draw(bitmap, clip, TILEMAP_DRAW_CATEGORY(i + 0), 1); - m_foreground->draw(bitmap, clip, TILEMAP_DRAW_CATEGORY(i + 1), 2); + m_background->draw(screen, bitmap, clip, TILEMAP_DRAW_CATEGORY(i + 0), 1); + m_background->draw(screen, bitmap, clip, TILEMAP_DRAW_CATEGORY(i + 1), 2); + m_foreground->draw(screen, bitmap, clip, TILEMAP_DRAW_CATEGORY(i + 0), 1); + m_foreground->draw(screen, bitmap, clip, TILEMAP_DRAW_CATEGORY(i + 1), 2); } } - draw_sprites(bitmap,cliprect); + draw_sprites(screen,bitmap,cliprect); return 0; } diff --git a/src/mame/video/news.c b/src/mame/video/news.c index 6453977a1b9..bae306664a5 100644 --- a/src/mame/video/news.c +++ b/src/mame/video/news.c @@ -89,7 +89,7 @@ WRITE8_MEMBER(news_state::news_bgpic_w) UINT32 news_state::screen_update_news(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect) { - m_bg_tilemap->draw(bitmap, cliprect, 0, 0); - m_fg_tilemap->draw(bitmap, cliprect, 0, 0); + m_bg_tilemap->draw(screen, bitmap, cliprect, 0, 0); + m_fg_tilemap->draw(screen, bitmap, cliprect, 0, 0); return 0; } diff --git a/src/mame/video/ninjakd2.c b/src/mame/video/ninjakd2.c index 059d433c0ac..c42f14c4a12 100644 --- a/src/mame/video/ninjakd2.c +++ b/src/mame/video/ninjakd2.c @@ -469,9 +469,9 @@ UINT32 ninjakd2_state::screen_update_ninjakd2(screen_device &screen, bitmap_ind1 bitmap.fill(0, cliprect); - m_bg_tilemap->draw(bitmap, cliprect, 0, 0); + m_bg_tilemap->draw(screen, bitmap, cliprect, 0, 0); copybitmap_trans(bitmap, m_sprites_bitmap, 0, 0, 0, 0, cliprect, 0xf); - m_fg_tilemap->draw(bitmap, cliprect, 0, 0); + m_fg_tilemap->draw(screen, bitmap, cliprect, 0, 0); return 0; } @@ -483,11 +483,11 @@ UINT32 ninjakd2_state::screen_update_robokid(screen_device &screen, bitmap_ind16 bitmap.fill(0, cliprect); - m_bg0_tilemap->draw(bitmap, cliprect, 0, 0); - m_bg1_tilemap->draw(bitmap, cliprect, 0, 0); + m_bg0_tilemap->draw(screen, bitmap, cliprect, 0, 0); + m_bg1_tilemap->draw(screen, bitmap, cliprect, 0, 0); copybitmap_trans(bitmap, m_sprites_bitmap, 0, 0, 0, 0, cliprect, 0xf); - m_bg2_tilemap->draw(bitmap, cliprect, 0, 0); - m_fg_tilemap->draw(bitmap, cliprect, 0, 0); + m_bg2_tilemap->draw(screen, bitmap, cliprect, 0, 0); + m_fg_tilemap->draw(screen, bitmap, cliprect, 0, 0); return 0; } @@ -499,11 +499,11 @@ UINT32 ninjakd2_state::screen_update_omegaf(screen_device &screen, bitmap_ind16 bitmap.fill(0, cliprect); - m_bg0_tilemap->draw(bitmap, cliprect, 0, 0); - m_bg1_tilemap->draw(bitmap, cliprect, 0, 0); - m_bg2_tilemap->draw(bitmap, cliprect, 0, 0); + m_bg0_tilemap->draw(screen, bitmap, cliprect, 0, 0); + m_bg1_tilemap->draw(screen, bitmap, cliprect, 0, 0); + m_bg2_tilemap->draw(screen, bitmap, cliprect, 0, 0); copybitmap_trans(bitmap, m_sprites_bitmap, 0, 0, 0, 0, cliprect, 0xf); - m_fg_tilemap->draw(bitmap, cliprect, 0, 0); + m_fg_tilemap->draw(screen, bitmap, cliprect, 0, 0); return 0; } diff --git a/src/mame/video/ninjaw.c b/src/mame/video/ninjaw.c index 1fd37e5411d..8e511b6bdc9 100644 --- a/src/mame/video/ninjaw.c +++ b/src/mame/video/ninjaw.c @@ -105,7 +105,7 @@ UINT32 ninjaw_state::update_screen(screen_device &screen, bitmap_ind16 &bitmap, /* chip 0 does tilemaps on the left, chip 1 center, chip 2 the right */ // draw bottom layer - nodraw = tc0100scn->tilemap_draw(bitmap, cliprect, layer[0], TILEMAP_DRAW_OPAQUE, 0); /* left */ + nodraw = tc0100scn->tilemap_draw(screen, bitmap, cliprect, layer[0], TILEMAP_DRAW_OPAQUE, 0); /* left */ /* Ensure screen blanked even when bottom layers not drawn due to disable bit */ if (nodraw) @@ -115,12 +115,12 @@ UINT32 ninjaw_state::update_screen(screen_device &screen, bitmap_ind16 &bitmap, draw_sprites(bitmap, cliprect, 1, xoffs, 8); // draw sprites with priority 1 which are under the mid layer // draw middle layer - tc0100scn->tilemap_draw(bitmap, cliprect, layer[1], 0, 0); + tc0100scn->tilemap_draw(screen, bitmap, cliprect, layer[1], 0, 0); draw_sprites(bitmap,cliprect,0,xoffs,8); // draw sprites with priority 0 which are over the mid layer // draw top(text) layer - tc0100scn->tilemap_draw(bitmap, cliprect, layer[2], 0, 0); + tc0100scn->tilemap_draw(screen, bitmap, cliprect, layer[2], 0, 0); return 0; } diff --git a/src/mame/video/nitedrvr.c b/src/mame/video/nitedrvr.c index eedf2028714..461f95605da 100644 --- a/src/mame/video/nitedrvr.c +++ b/src/mame/video/nitedrvr.c @@ -68,7 +68,7 @@ void nitedrvr_state::draw_roadway( bitmap_ind16 &bitmap ) UINT32 nitedrvr_state::screen_update_nitedrvr(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect) { - m_bg_tilemap->draw(bitmap, cliprect, 0, 0); + m_bg_tilemap->draw(screen, bitmap, cliprect, 0, 0); draw_roadway(bitmap); return 0; } diff --git a/src/mame/video/nmk16.c b/src/mame/video/nmk16.c index b3b77a0b415..6fe2db3d750 100644 --- a/src/mame/video/nmk16.c +++ b/src/mame/video/nmk16.c @@ -551,7 +551,7 @@ int nmk16_state::nmk16_bg_spr_update(screen_device &screen, bitmap_ind16 &bitmap { m_bg_tilemap0->set_scrollx(0,-m_videoshift); - m_bg_tilemap0->draw(bitmap, cliprect, 0,0); + m_bg_tilemap0->draw(screen, bitmap, cliprect, 0,0); nmk16_draw_sprites(bitmap,cliprect,3); nmk16_draw_sprites(bitmap,cliprect,2); @@ -564,15 +564,15 @@ int nmk16_state::nmk16_bg_fg_spr_tx_update(screen_device &screen, bitmap_ind16 & { m_tx_tilemap->set_scrollx(0,-m_videoshift); - m_bg_tilemap0->draw(bitmap, cliprect, 0,0); - m_fg_tilemap->draw(bitmap, cliprect, 0,0); + m_bg_tilemap0->draw(screen, bitmap, cliprect, 0,0); + m_fg_tilemap->draw(screen, bitmap, cliprect, 0,0); nmk16_draw_sprites(bitmap,cliprect,3); nmk16_draw_sprites(bitmap,cliprect,2); nmk16_draw_sprites(bitmap,cliprect,1); nmk16_draw_sprites(bitmap,cliprect,0); - m_tx_tilemap->draw(bitmap, cliprect, 0,0); + m_tx_tilemap->draw(screen, bitmap, cliprect, 0,0); return 0; } @@ -580,14 +580,14 @@ int nmk16_state::nmk16_bg_spr_tx_update(screen_device &screen, bitmap_ind16 &bit { m_tx_tilemap->set_scrollx(0,-m_videoshift); - m_bg_tilemap0->draw(bitmap, cliprect, 0,0); + m_bg_tilemap0->draw(screen, bitmap, cliprect, 0,0); nmk16_draw_sprites(bitmap,cliprect,3); nmk16_draw_sprites(bitmap,cliprect,2); nmk16_draw_sprites(bitmap,cliprect,1); nmk16_draw_sprites(bitmap,cliprect,0); - m_tx_tilemap->draw(bitmap, cliprect, 0,0); + m_tx_tilemap->draw(screen, bitmap, cliprect, 0,0); return 0; } @@ -595,14 +595,14 @@ int nmk16_state::nmk16_bg_sprflip_tx_update(screen_device &screen, bitmap_ind16 { m_tx_tilemap->set_scrollx(0,-m_videoshift); - m_bg_tilemap0->draw(bitmap, cliprect, 0,0); + m_bg_tilemap0->draw(screen, bitmap, cliprect, 0,0); nmk16_draw_sprites_flipsupported(bitmap,cliprect,3); nmk16_draw_sprites_flipsupported(bitmap,cliprect,2); nmk16_draw_sprites_flipsupported(bitmap,cliprect,1); nmk16_draw_sprites_flipsupported(bitmap,cliprect,0); - m_tx_tilemap->draw(bitmap, cliprect, 0,0); + m_tx_tilemap->draw(screen, bitmap, cliprect, 0,0); return 0; } @@ -647,14 +647,14 @@ int nmk16_state::nmk16_bioshipbg_sprflip_tx_update(screen_device &screen, bitmap } copyscrollbitmap(bitmap,*m_background_bitmap,1,&scrollx,1,&scrolly,cliprect); - m_bg_tilemap0->draw(bitmap, cliprect, 0,0); + m_bg_tilemap0->draw(screen, bitmap, cliprect, 0,0); nmk16_draw_sprites(bitmap,cliprect,3); nmk16_draw_sprites(bitmap,cliprect,2); nmk16_draw_sprites(bitmap,cliprect,1); nmk16_draw_sprites(bitmap,cliprect,0); - m_tx_tilemap->draw(bitmap, cliprect, 0,0); + m_tx_tilemap->draw(screen, bitmap, cliprect, 0,0); return 0; } @@ -662,11 +662,11 @@ int nmk16_state::nmk16_bg_sprswap_tx_update(screen_device &screen, bitmap_ind16 { m_tx_tilemap->set_scrollx(0,-m_videoshift); - m_bg_tilemap0->draw(bitmap, cliprect, 0,0); + m_bg_tilemap0->draw(screen, bitmap, cliprect, 0,0); nmk16_draw_sprites_swap(bitmap,cliprect, bittbl); - m_tx_tilemap->draw(bitmap, cliprect, 0,0); + m_tx_tilemap->draw(screen, bitmap, cliprect, 0,0); return 0; } @@ -674,11 +674,11 @@ int nmk16_state::nmk16_bg_sprswapflip_tx_update(screen_device &screen, bitmap_in { m_tx_tilemap->set_scrollx(0,-m_videoshift); - m_bg_tilemap0->draw(bitmap, cliprect, 0,0); + m_bg_tilemap0->draw(screen, bitmap, cliprect, 0,0); nmk16_draw_sprites_swap_flipsupported(bitmap,cliprect, bittbl); - m_tx_tilemap->draw(bitmap, cliprect, 0,0); + m_tx_tilemap->draw(screen, bitmap, cliprect, 0,0); return 0; } @@ -718,7 +718,7 @@ int nmk16_state::nmk16_complexbg_sprswap_tx_update(screen_device &screen, bitmap bg_tilemap->set_scrolly(0, yscroll); bg_tilemap->set_scrollx((i + yscroll) & 0x1ff, m_gunnail_scrollram[0] + m_gunnail_scrollram[i] - m_videoshift); - bg_tilemap->draw(bitmap, bgclip, 0,0); + bg_tilemap->draw(screen, bitmap, bgclip, 0,0); y1++; i++; @@ -747,12 +747,12 @@ int nmk16_state::nmk16_complexbg_sprswap_tx_update(screen_device &screen, bitmap bg_tilemap->set_scrolly(0, yscroll); bg_tilemap->set_scrollx(0, xscroll - m_videoshift); - bg_tilemap->draw(bitmap, cliprect, 0,0); + bg_tilemap->draw(screen, bitmap, cliprect, 0,0); } nmk16_draw_sprites_swap(bitmap,cliprect, bittbl); - m_tx_tilemap->draw(bitmap, cliprect, 0,0); + m_tx_tilemap->draw(screen, bitmap, cliprect, 0,0); return 0; } @@ -921,7 +921,7 @@ VIDEO_START_MEMBER(nmk16_state,firehawk) ***************************************************************************/ -void nmk16_state::video_update(bitmap_ind16 &bitmap, const rectangle &cliprect, +void nmk16_state::video_update(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect, int dsw_flipscreen, // 1 = Horizontal and vertical screen flip are hardwired to 2 dip switches int xoffset, int yoffset, // bg_tilemap0 offsets int attr_mask // "sprite active" mask @@ -941,22 +941,22 @@ void nmk16_state::video_update(bitmap_ind16 &bitmap, const rectangle &cliprect, m_tx_tilemap->set_scrolly(0, m_afega_scroll_1[0]); - m_bg_tilemap0->draw(bitmap, cliprect, 0,0); + m_bg_tilemap0->draw(screen, bitmap, cliprect, 0,0); nmk16_draw_sprites_flipsupported(bitmap,cliprect,3); nmk16_draw_sprites_flipsupported(bitmap,cliprect,2); nmk16_draw_sprites_flipsupported(bitmap,cliprect,1); nmk16_draw_sprites_flipsupported(bitmap,cliprect,0); - m_tx_tilemap->draw(bitmap, cliprect, 0,0); + m_tx_tilemap->draw(screen, bitmap, cliprect, 0,0); } -void nmk16_state::redhawki_video_update(bitmap_ind16 &bitmap, const rectangle &cliprect ) +void nmk16_state::redhawki_video_update(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect ) { m_bg_tilemap0->set_scrollx(0, m_afega_scroll_1[0]&0xff); m_bg_tilemap0->set_scrolly(0, m_afega_scroll_1[1]&0xff); - m_bg_tilemap0->draw(bitmap, cliprect, 0,0); + m_bg_tilemap0->draw(screen, bitmap, cliprect, 0,0); nmk16_draw_sprites_flipsupported(bitmap,cliprect,3); nmk16_draw_sprites_flipsupported(bitmap,cliprect,2); @@ -964,23 +964,23 @@ void nmk16_state::redhawki_video_update(bitmap_ind16 &bitmap, const rectangle &c nmk16_draw_sprites_flipsupported(bitmap,cliprect,0); } -UINT32 nmk16_state::screen_update_afega(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect) { video_update(bitmap,cliprect, 1, -0x100,+0x000, 0x0001); return 0; } -UINT32 nmk16_state::screen_update_bubl2000(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect){ video_update(bitmap,cliprect, 0, -0x100,+0x000, 0x0001); return 0; } // no flipscreen support, I really would confirmation from the schematics -UINT32 nmk16_state::screen_update_redhawkb(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect){ video_update(bitmap,cliprect, 0, +0x000,+0x100, 0x0001); return 0; } -UINT32 nmk16_state::screen_update_redhawki(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect){ redhawki_video_update(bitmap,cliprect); return 0;} // strange scroll regs +UINT32 nmk16_state::screen_update_afega(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect) { video_update(screen,bitmap,cliprect, 1, -0x100,+0x000, 0x0001); return 0; } +UINT32 nmk16_state::screen_update_bubl2000(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect){ video_update(screen,bitmap,cliprect, 0, -0x100,+0x000, 0x0001); return 0; } // no flipscreen support, I really would confirmation from the schematics +UINT32 nmk16_state::screen_update_redhawkb(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect){ video_update(screen,bitmap,cliprect, 0, +0x000,+0x100, 0x0001); return 0; } +UINT32 nmk16_state::screen_update_redhawki(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect){ redhawki_video_update(screen,bitmap,cliprect); return 0;} // strange scroll regs UINT32 nmk16_state::screen_update_firehawk(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect) { m_bg_tilemap0->set_scrolly(0, m_afega_scroll_1[1] + 0x100); m_bg_tilemap0->set_scrollx(0, m_afega_scroll_1[0]); - m_bg_tilemap0->draw(bitmap, cliprect, 0,0); + m_bg_tilemap0->draw(screen, bitmap, cliprect, 0,0); nmk16_draw_sprites_flipsupported(bitmap,cliprect,3); nmk16_draw_sprites_flipsupported(bitmap,cliprect,2); nmk16_draw_sprites_flipsupported(bitmap,cliprect,1); nmk16_draw_sprites_flipsupported(bitmap,cliprect,0); - m_tx_tilemap->draw(bitmap, cliprect, 0,0); + m_tx_tilemap->draw(screen, bitmap, cliprect, 0,0); return 0; } diff --git a/src/mame/video/nova2001.c b/src/mame/video/nova2001.c index 28e8706cad0..c81ec2a8ab6 100644 --- a/src/mame/video/nova2001.c +++ b/src/mame/video/nova2001.c @@ -339,49 +339,49 @@ void nova2001_state::pkunwar_draw_sprites(bitmap_ind16 &bitmap, const rectangle UINT32 nova2001_state::screen_update_nova2001(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect) { - m_bg_tilemap->draw(bitmap, cliprect, 0, 0); + m_bg_tilemap->draw(screen, bitmap, cliprect, 0, 0); nova2001_draw_sprites(bitmap, cliprect); // according to the schematics, fg category 0 should be drawn behind sprites, // but it doesn't look right that way - m_fg_tilemap->draw(bitmap, cliprect, 0, 0); - m_fg_tilemap->draw(bitmap, cliprect, 1, 0); + m_fg_tilemap->draw(screen, bitmap, cliprect, 0, 0); + m_fg_tilemap->draw(screen, bitmap, cliprect, 1, 0); return 0; } UINT32 nova2001_state::screen_update_pkunwar(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect) { - m_bg_tilemap->draw(bitmap, cliprect, TILEMAP_DRAW_OPAQUE | TILEMAP_DRAW_ALL_CATEGORIES, 0); + m_bg_tilemap->draw(screen, bitmap, cliprect, TILEMAP_DRAW_OPAQUE | TILEMAP_DRAW_ALL_CATEGORIES, 0); pkunwar_draw_sprites(bitmap, cliprect); - m_bg_tilemap->draw(bitmap, cliprect, 1, 0); + m_bg_tilemap->draw(screen, bitmap, cliprect, 1, 0); return 0; } UINT32 nova2001_state::screen_update_ninjakun(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect) { - m_bg_tilemap->draw(bitmap, cliprect, 0, 0); + m_bg_tilemap->draw(screen, bitmap, cliprect, 0, 0); - m_fg_tilemap->draw(bitmap, cliprect, 1, 0); + m_fg_tilemap->draw(screen, bitmap, cliprect, 1, 0); nova2001_draw_sprites(bitmap, cliprect); - m_fg_tilemap->draw(bitmap, cliprect, 0, 0); + m_fg_tilemap->draw(screen, bitmap, cliprect, 0, 0); return 0; } UINT32 nova2001_state::screen_update_raiders5(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect) { - m_bg_tilemap->draw(bitmap, cliprect, 0, 0); + m_bg_tilemap->draw(screen, bitmap, cliprect, 0, 0); pkunwar_draw_sprites(bitmap, cliprect); - m_fg_tilemap->draw(bitmap, cliprect, 0, 0); + m_fg_tilemap->draw(screen, bitmap, cliprect, 0, 0); return 0; } diff --git a/src/mame/video/nycaptor.c b/src/mame/video/nycaptor.c index 4ab553ae967..9bf1c8da6ff 100644 --- a/src/mame/video/nycaptor.c +++ b/src/mame/video/nycaptor.c @@ -234,14 +234,14 @@ UINT32 nycaptor_state::screen_update_nycaptor(screen_device &screen, bitmap_ind1 nycaptor_setmask(machine()); if (m_mask & 0x1000) { - m_bg_tilemap->draw(bitmap, cliprect, TILEMAP_DRAW_LAYER1 | 3, 0); - m_bg_tilemap->draw(bitmap, cliprect, TILEMAP_DRAW_LAYER0 | 3, 0); - m_bg_tilemap->draw(bitmap, cliprect, TILEMAP_DRAW_LAYER1 | 2, 0); - m_bg_tilemap->draw(bitmap, cliprect, TILEMAP_DRAW_LAYER0 | 2, 0); - m_bg_tilemap->draw(bitmap, cliprect, TILEMAP_DRAW_LAYER1 | 1, 0); - m_bg_tilemap->draw(bitmap, cliprect, TILEMAP_DRAW_LAYER0 | 1, 0); - m_bg_tilemap->draw(bitmap, cliprect, TILEMAP_DRAW_LAYER1 | 0, 0); - m_bg_tilemap->draw(bitmap, cliprect, TILEMAP_DRAW_LAYER0 | 0, 0); + m_bg_tilemap->draw(screen, bitmap, cliprect, TILEMAP_DRAW_LAYER1 | 3, 0); + m_bg_tilemap->draw(screen, bitmap, cliprect, TILEMAP_DRAW_LAYER0 | 3, 0); + m_bg_tilemap->draw(screen, bitmap, cliprect, TILEMAP_DRAW_LAYER1 | 2, 0); + m_bg_tilemap->draw(screen, bitmap, cliprect, TILEMAP_DRAW_LAYER0 | 2, 0); + m_bg_tilemap->draw(screen, bitmap, cliprect, TILEMAP_DRAW_LAYER1 | 1, 0); + m_bg_tilemap->draw(screen, bitmap, cliprect, TILEMAP_DRAW_LAYER0 | 1, 0); + m_bg_tilemap->draw(screen, bitmap, cliprect, TILEMAP_DRAW_LAYER1 | 0, 0); + m_bg_tilemap->draw(screen, bitmap, cliprect, TILEMAP_DRAW_LAYER0 | 0, 0); draw_sprites(machine(), bitmap, cliprect, 0); draw_sprites(machine(), bitmap, cliprect, 1); draw_sprites(machine(), bitmap, cliprect, 2); @@ -256,56 +256,56 @@ UINT32 nycaptor_state::screen_update_nycaptor(screen_device &screen, bitmap_ind1 switch (nycaptor_spot() & 3) { case 0: - m_bg_tilemap->draw(bitmap, cliprect, TILEMAP_DRAW_LAYER1 | 3, 0); + m_bg_tilemap->draw(screen, bitmap, cliprect, TILEMAP_DRAW_LAYER1 | 3, 0); draw_sprites(bitmap, cliprect, 6); - m_bg_tilemap->draw(bitmap, cliprect, TILEMAP_DRAW_LAYER0 | 3, 0); - m_bg_tilemap->draw(bitmap, cliprect, TILEMAP_DRAW_LAYER1 | 2, 0); - m_bg_tilemap->draw(bitmap, cliprect, TILEMAP_DRAW_LAYER0 | 2, 0); - m_bg_tilemap->draw(bitmap, cliprect, TILEMAP_DRAW_LAYER1 | 1, 0); + m_bg_tilemap->draw(screen, bitmap, cliprect, TILEMAP_DRAW_LAYER0 | 3, 0); + m_bg_tilemap->draw(screen, bitmap, cliprect, TILEMAP_DRAW_LAYER1 | 2, 0); + m_bg_tilemap->draw(screen, bitmap, cliprect, TILEMAP_DRAW_LAYER0 | 2, 0); + m_bg_tilemap->draw(screen, bitmap, cliprect, TILEMAP_DRAW_LAYER1 | 1, 0); draw_sprites(bitmap, cliprect, 3); - m_bg_tilemap->draw(bitmap, cliprect, TILEMAP_DRAW_LAYER0 | 1, 0); + m_bg_tilemap->draw(screen, bitmap, cliprect, TILEMAP_DRAW_LAYER0 | 1, 0); draw_sprites(bitmap, cliprect, 0); draw_sprites(bitmap, cliprect, 2); - m_bg_tilemap->draw(bitmap, cliprect, TILEMAP_DRAW_LAYER1 | 0, 0); + m_bg_tilemap->draw(screen, bitmap, cliprect, TILEMAP_DRAW_LAYER1 | 0, 0); draw_sprites(bitmap, cliprect, 1); - m_bg_tilemap->draw(bitmap, cliprect, TILEMAP_DRAW_LAYER0 | 0, 0); + m_bg_tilemap->draw(screen, bitmap, cliprect, TILEMAP_DRAW_LAYER0 | 0, 0); break; case 1: - m_bg_tilemap->draw(bitmap, cliprect, TILEMAP_DRAW_LAYER1 | 3, 0); + m_bg_tilemap->draw(screen, bitmap, cliprect, TILEMAP_DRAW_LAYER1 | 3, 0); draw_sprites(bitmap, cliprect, 3); - m_bg_tilemap->draw(bitmap, cliprect, TILEMAP_DRAW_LAYER0 | 3, 0); + m_bg_tilemap->draw(screen, bitmap, cliprect, TILEMAP_DRAW_LAYER0 | 3, 0); draw_sprites(bitmap, cliprect, 2); - m_bg_tilemap->draw(bitmap, cliprect, TILEMAP_DRAW_LAYER1 | 2, 0); - m_bg_tilemap->draw(bitmap, cliprect, TILEMAP_DRAW_LAYER1 | 1, 0); + m_bg_tilemap->draw(screen, bitmap, cliprect, TILEMAP_DRAW_LAYER1 | 2, 0); + m_bg_tilemap->draw(screen, bitmap, cliprect, TILEMAP_DRAW_LAYER1 | 1, 0); draw_sprites(bitmap, cliprect, 1); - m_bg_tilemap->draw(bitmap, cliprect, TILEMAP_DRAW_LAYER0 | 1, 0); - m_bg_tilemap->draw(bitmap, cliprect, TILEMAP_DRAW_LAYER0 | 2, 0); + m_bg_tilemap->draw(screen, bitmap, cliprect, TILEMAP_DRAW_LAYER0 | 1, 0); + m_bg_tilemap->draw(screen, bitmap, cliprect, TILEMAP_DRAW_LAYER0 | 2, 0); draw_sprites(bitmap, cliprect, 0); - m_bg_tilemap->draw(bitmap, cliprect, TILEMAP_DRAW_LAYER1 | 0, 0); - m_bg_tilemap->draw(bitmap, cliprect, TILEMAP_DRAW_LAYER0 | 0, 0); + m_bg_tilemap->draw(screen, bitmap, cliprect, TILEMAP_DRAW_LAYER1 | 0, 0); + m_bg_tilemap->draw(screen, bitmap, cliprect, TILEMAP_DRAW_LAYER0 | 0, 0); break; case 2: - m_bg_tilemap->draw(bitmap, cliprect, TILEMAP_DRAW_LAYER1 | 3, 0); - m_bg_tilemap->draw(bitmap, cliprect, TILEMAP_DRAW_LAYER0 | 3, 0); - m_bg_tilemap->draw(bitmap, cliprect, TILEMAP_DRAW_LAYER1 | 1, 0); + m_bg_tilemap->draw(screen, bitmap, cliprect, TILEMAP_DRAW_LAYER1 | 3, 0); + m_bg_tilemap->draw(screen, bitmap, cliprect, TILEMAP_DRAW_LAYER0 | 3, 0); + m_bg_tilemap->draw(screen, bitmap, cliprect, TILEMAP_DRAW_LAYER1 | 1, 0); draw_sprites(bitmap, cliprect, 1); - m_bg_tilemap->draw(bitmap, cliprect, TILEMAP_DRAW_LAYER0 | 1, 0); - m_bg_tilemap->draw(bitmap, cliprect, TILEMAP_DRAW_LAYER1 | 2, 0); - m_bg_tilemap->draw(bitmap, cliprect, TILEMAP_DRAW_LAYER0 | 2, 0); + m_bg_tilemap->draw(screen, bitmap, cliprect, TILEMAP_DRAW_LAYER0 | 1, 0); + m_bg_tilemap->draw(screen, bitmap, cliprect, TILEMAP_DRAW_LAYER1 | 2, 0); + m_bg_tilemap->draw(screen, bitmap, cliprect, TILEMAP_DRAW_LAYER0 | 2, 0); draw_sprites(bitmap, cliprect, 0); - m_bg_tilemap->draw(bitmap, cliprect, TILEMAP_DRAW_LAYER1 | 0, 0); - m_bg_tilemap->draw(bitmap, cliprect, TILEMAP_DRAW_LAYER0 | 0, 0); + m_bg_tilemap->draw(screen, bitmap, cliprect, TILEMAP_DRAW_LAYER1 | 0, 0); + m_bg_tilemap->draw(screen, bitmap, cliprect, TILEMAP_DRAW_LAYER0 | 0, 0); break; case 3: - m_bg_tilemap->draw(bitmap, cliprect, TILEMAP_DRAW_LAYER1 | 1, 0); + m_bg_tilemap->draw(screen, bitmap, cliprect, TILEMAP_DRAW_LAYER1 | 1, 0); draw_sprites(bitmap, cliprect, 1); - m_bg_tilemap->draw(bitmap, cliprect, TILEMAP_DRAW_LAYER0 | 1, 0); + m_bg_tilemap->draw(screen, bitmap, cliprect, TILEMAP_DRAW_LAYER0 | 1, 0); draw_sprites(bitmap, cliprect, 0); - m_bg_tilemap->draw(bitmap, cliprect, TILEMAP_DRAW_LAYER1 | 0, 0); - m_bg_tilemap->draw(bitmap, cliprect, TILEMAP_DRAW_LAYER0 | 0, 0); + m_bg_tilemap->draw(screen, bitmap, cliprect, TILEMAP_DRAW_LAYER1 | 0, 0); + m_bg_tilemap->draw(screen, bitmap, cliprect, TILEMAP_DRAW_LAYER0 | 0, 0); break; } diff --git a/src/mame/video/offtwall.c b/src/mame/video/offtwall.c index e9c16499c66..6a7fdcdc681 100644 --- a/src/mame/video/offtwall.c +++ b/src/mame/video/offtwall.c @@ -85,7 +85,7 @@ UINT32 offtwall_state::screen_update_offtwall(screen_device &screen, bitmap_ind1 m_vad->mob()->draw_async(cliprect); /* draw the playfield */ - m_vad->playfield()->draw(bitmap, cliprect, 0, 0); + m_vad->playfield()->draw(screen, bitmap, cliprect, 0, 0); // draw and merge the MO bitmap_ind16 &mobitmap = m_vad->mob()->bitmap(); diff --git a/src/mame/video/ohmygod.c b/src/mame/video/ohmygod.c index b6760591d40..224d7c332ed 100644 --- a/src/mame/video/ohmygod.c +++ b/src/mame/video/ohmygod.c @@ -100,7 +100,7 @@ void ohmygod_state::draw_sprites( bitmap_ind16 &bitmap, const rectangle &cliprec UINT32 ohmygod_state::screen_update_ohmygod(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect) { - m_bg_tilemap->draw(bitmap, cliprect, 0, 0); + m_bg_tilemap->draw(screen, bitmap, cliprect, 0, 0); draw_sprites(bitmap, cliprect); return 0; } diff --git a/src/mame/video/ojankohs.c b/src/mame/video/ojankohs.c index b89c2d7266e..0281cd3fb4d 100644 --- a/src/mame/video/ojankohs.c +++ b/src/mame/video/ojankohs.c @@ -289,7 +289,7 @@ UINT32 ojankohs_state::screen_update_ojankohs(screen_device &screen, bitmap_ind1 m_tilemap->set_scrollx(0, m_scrollx); m_tilemap->set_scrolly(0, m_scrolly); - m_tilemap->draw(bitmap, cliprect, 0, 0); + m_tilemap->draw(screen, bitmap, cliprect, 0, 0); return 0; } diff --git a/src/mame/video/oneshot.c b/src/mame/video/oneshot.c index cf9676e5f3f..16a34b1a3d5 100644 --- a/src/mame/video/oneshot.c +++ b/src/mame/video/oneshot.c @@ -153,10 +153,10 @@ UINT32 oneshot_state::screen_update_oneshot(screen_device &screen, bitmap_ind16 m_mid_tilemap->set_scrollx(0, m_scroll[0] - 0x1f5); m_mid_tilemap->set_scrolly(0, m_scroll[1]); - m_bg_tilemap->draw(bitmap, cliprect, 0, 0); - m_mid_tilemap->draw(bitmap, cliprect, 0, 0); + m_bg_tilemap->draw(screen, bitmap, cliprect, 0, 0); + m_mid_tilemap->draw(screen, bitmap, cliprect, 0, 0); draw_sprites(bitmap, cliprect); - m_fg_tilemap->draw(bitmap, cliprect, 0, 0); + m_fg_tilemap->draw(screen, bitmap, cliprect, 0, 0); draw_crosshairs(bitmap, cliprect); return 0; } @@ -167,9 +167,9 @@ UINT32 oneshot_state::screen_update_maddonna(screen_device &screen, bitmap_ind16 m_mid_tilemap->set_scrolly(0, m_scroll[1]); // other registers aren't used so we don't know which layers they relate to - m_mid_tilemap->draw(bitmap, cliprect, 0, 0); - m_fg_tilemap->draw(bitmap, cliprect, 0, 0); - m_bg_tilemap->draw(bitmap, cliprect, 0, 0); + m_mid_tilemap->draw(screen, bitmap, cliprect, 0, 0); + m_fg_tilemap->draw(screen, bitmap, cliprect, 0, 0); + m_bg_tilemap->draw(screen, bitmap, cliprect, 0, 0); draw_sprites(bitmap, cliprect); // popmessage ("%04x %04x %04x %04x %04x %04x %04x %04x", m_scroll[0], m_scroll[1], m_scroll[2], m_scroll[3], m_scroll[4], m_scroll[5], m_scroll[6], m_scroll[7]); diff --git a/src/mame/video/opwolf.c b/src/mame/video/opwolf.c index cb277e79c83..7f35452c396 100644 --- a/src/mame/video/opwolf.c +++ b/src/mame/video/opwolf.c @@ -42,12 +42,12 @@ UINT32 opwolf_state::screen_update_opwolf(screen_device &screen, bitmap_ind16 &b layer[0] = 0; layer[1] = 1; - machine().priority_bitmap.fill(0, cliprect); + screen.priority().fill(0, cliprect); - m_pc080sn->tilemap_draw(bitmap, cliprect, layer[0], TILEMAP_DRAW_OPAQUE, 1); - m_pc080sn->tilemap_draw(bitmap, cliprect, layer[1], 0, 2); + m_pc080sn->tilemap_draw(screen, bitmap, cliprect, layer[0], TILEMAP_DRAW_OPAQUE, 1); + m_pc080sn->tilemap_draw(screen, bitmap, cliprect, layer[1], 0, 2); - m_pc090oj->draw_sprites(bitmap, cliprect, 1); + m_pc090oj->draw_sprites(bitmap, cliprect, screen.priority(), 1); // if (ioport("P1X")->read()) // popmessage("%d %d", machine(), "P1X"), ioport("P1Y")->read()); diff --git a/src/mame/video/orbit.c b/src/mame/video/orbit.c index 5f20f9c5ea9..555edf9afbc 100644 --- a/src/mame/video/orbit.c +++ b/src/mame/video/orbit.c @@ -79,7 +79,7 @@ UINT32 orbit_state::screen_update_orbit(screen_device &screen, bitmap_ind16 &bit { m_flip_screen = ioport("DSW2")->read() & 8; - m_bg_tilemap->draw(bitmap, cliprect, 0, 0); + m_bg_tilemap->draw(screen, bitmap, cliprect, 0, 0); draw_sprites(bitmap, cliprect); return 0; diff --git a/src/mame/video/othldrby.c b/src/mame/video/othldrby.c index add8292c79d..6567f9cb069 100644 --- a/src/mame/video/othldrby.c +++ b/src/mame/video/othldrby.c @@ -188,24 +188,24 @@ UINT32 othldrby_state::screen_update_othldrby(screen_device &screen, bitmap_ind1 } } - machine().priority_bitmap.fill(0, cliprect); + screen.priority().fill(0, cliprect); bitmap.fill(0, cliprect); for (layer = 0; layer < 3; layer++) - m_bg_tilemap[layer]->draw(bitmap, cliprect, 0, 0); + m_bg_tilemap[layer]->draw(screen, bitmap, cliprect, 0, 0); draw_sprites(bitmap, cliprect, 0); for (layer = 0; layer < 3; layer++) - m_bg_tilemap[layer]->draw(bitmap, cliprect, 1, 0); + m_bg_tilemap[layer]->draw(screen, bitmap, cliprect, 1, 0); draw_sprites(bitmap, cliprect, 1); for (layer = 0; layer < 3; layer++) - m_bg_tilemap[layer]->draw(bitmap, cliprect, 2, 0); + m_bg_tilemap[layer]->draw(screen, bitmap, cliprect, 2, 0); draw_sprites(bitmap, cliprect, 2); for (layer = 0; layer < 3; layer++) - m_bg_tilemap[layer]->draw(bitmap, cliprect, 3, 0); + m_bg_tilemap[layer]->draw(screen, bitmap, cliprect, 3, 0); draw_sprites(bitmap, cliprect, 3); return 0; diff --git a/src/mame/video/othunder.c b/src/mame/video/othunder.c index 6ad02f69cc8..ba1a892b302 100644 --- a/src/mame/video/othunder.c +++ b/src/mame/video/othunder.c @@ -61,7 +61,7 @@ spriteram is being tested, take no notice of that.] ********************************************************/ -void othunder_state::draw_sprites( bitmap_ind16 &bitmap, const rectangle &cliprect, const int *primasks, int y_offs ) +void othunder_state::draw_sprites( screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect, const int *primasks, int y_offs ) { UINT16 *spritemap = (UINT16 *)memregion("user1")->base(); UINT16 tile_mask = (machine().gfx[0]->elements()) - 1; @@ -188,7 +188,7 @@ logerror("Sprite number %04x had %02x invalid chunks\n",tilenum,bad_chunks); sprite_ptr->flipx,sprite_ptr->flipy, sprite_ptr->x,sprite_ptr->y, sprite_ptr->zoomx,sprite_ptr->zoomy, - machine().priority_bitmap,sprite_ptr->primask,0); + screen.priority(),sprite_ptr->primask,0); } } @@ -207,19 +207,19 @@ UINT32 othunder_state::screen_update_othunder(screen_device &screen, bitmap_ind1 layer[1] = layer[0] ^ 1; layer[2] = 2; - machine().priority_bitmap.fill(0, cliprect); + screen.priority().fill(0, cliprect); /* Ensure screen blanked even when bottom layer not drawn due to disable bit */ bitmap.fill(0, cliprect); - m_tc0100scn->tilemap_draw(bitmap, cliprect, layer[0], TILEMAP_DRAW_OPAQUE, 1); - m_tc0100scn->tilemap_draw(bitmap, cliprect, layer[1], 0, 2); - m_tc0100scn->tilemap_draw(bitmap, cliprect, layer[2], 0, 4); + m_tc0100scn->tilemap_draw(screen, bitmap, cliprect, layer[0], TILEMAP_DRAW_OPAQUE, 1); + m_tc0100scn->tilemap_draw(screen, bitmap, cliprect, layer[1], 0, 2); + m_tc0100scn->tilemap_draw(screen, bitmap, cliprect, layer[2], 0, 4); /* Sprites can be under/over the layer below text layer */ { static const int primasks[2] = {0xf0, 0xfc}; - draw_sprites(bitmap, cliprect, primasks, 3); + draw_sprites(screen, bitmap, cliprect, primasks, 3); } return 0; diff --git a/src/mame/video/overdriv.c b/src/mame/video/overdriv.c index 0627a34b046..1947c2f9e32 100644 --- a/src/mame/video/overdriv.c +++ b/src/mame/video/overdriv.c @@ -57,10 +57,10 @@ UINT32 overdriv_state::screen_update_overdriv(screen_device &screen, bitmap_ind1 m_zoom_colorbase[1] = m_k053251->get_palette_index(K053251_CI3); m_zoom_colorbase[0] = m_k053251->get_palette_index(K053251_CI4); - machine().priority_bitmap.fill(0, cliprect); + screen.priority().fill(0, cliprect); - m_k051316_1->zoom_draw(bitmap, cliprect, 0, 0); - m_k051316_2->zoom_draw(bitmap, cliprect, 0, 1); + m_k051316_1->zoom_draw(screen, bitmap, cliprect, 0, 0); + m_k051316_2->zoom_draw(screen, bitmap, cliprect, 0, 1); m_k053246->k053247_sprites_draw( bitmap,cliprect); return 0; diff --git a/src/mame/video/pacland.c b/src/mame/video/pacland.c index c890c499b3d..1af635c54c0 100644 --- a/src/mame/video/pacland.c +++ b/src/mame/video/pacland.c @@ -271,7 +271,7 @@ WRITE8_MEMBER(pacland_state::pacland_bankswitch_w) ***************************************************************************/ /* the sprite generator IC is the same as Mappy */ -void pacland_state::draw_sprites(bitmap_ind16 &bitmap, const rectangle &cliprect, int whichmask) +void pacland_state::draw_sprites(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect, int whichmask) { UINT8 *spriteram = m_spriteram + 0x780; UINT8 *spriteram_2 = spriteram + 0x800; @@ -323,26 +323,26 @@ void pacland_state::draw_sprites(bitmap_ind16 &bitmap, const rectangle &cliprect color, flipx,flipy, sx + 16*x,sy + 16*y, - machine().priority_bitmap,0,m_transmask[whichmask][color]); + screen.priority(),0,m_transmask[whichmask][color]); } } } } -void pacland_state::draw_fg(bitmap_ind16 &bitmap, const rectangle &cliprect, int priority ) +void pacland_state::draw_fg(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect, int priority ) { int y, x; /* draw tilemap transparently over it; this will leave invalid pens (0xffff) anywhere where the fg_tilemap should be transparent; note that we assume the fg_bitmap has been pre-erased to 0xffff */ - m_fg_tilemap->draw(m_fg_bitmap, cliprect, priority, 0); + m_fg_tilemap->draw(screen, m_fg_bitmap, cliprect, priority, 0); /* now copy the fg_bitmap to the destination wherever the sprite pixel allows */ for (y = cliprect.min_y; y <= cliprect.max_y; y++) { - const UINT8 *pri = &machine().priority_bitmap.pix8(y); + const UINT8 *pri = &screen.priority().pix8(y); UINT16 *src = &m_fg_bitmap.pix16(y); UINT16 *dst = &bitmap.pix16(y); @@ -373,22 +373,22 @@ UINT32 pacland_state::screen_update_pacland(screen_device &screen, bitmap_ind16 /* draw high priority sprite pixels, setting priority bitmap to non-zero wherever there is a high-priority pixel; note that we draw to the bitmap which is safe because the bg_tilemap draw will overwrite everything */ - machine().priority_bitmap.fill(0x00, cliprect); - draw_sprites(bitmap, cliprect, 0); + screen.priority().fill(0x00, cliprect); + draw_sprites(screen, bitmap, cliprect, 0); /* draw background */ - m_bg_tilemap->draw(bitmap, cliprect, 0, 0); + m_bg_tilemap->draw(screen, bitmap, cliprect, 0, 0); /* draw low priority fg tiles */ - draw_fg(bitmap, cliprect, 0); + draw_fg(screen, bitmap, cliprect, 0); /* draw sprites with regular transparency */ - draw_sprites(bitmap, cliprect, 1); + draw_sprites(screen, bitmap, cliprect, 1); /* draw high priority fg tiles */ - draw_fg(bitmap, cliprect, 1); + draw_fg(screen, bitmap, cliprect, 1); /* draw sprite pixels with colortable values >= 0xf0, which have priority over everything */ - draw_sprites(bitmap, cliprect, 2); + draw_sprites(screen, bitmap, cliprect, 2); return 0; } diff --git a/src/mame/video/pacman.c b/src/mame/video/pacman.c index d73c7c8488a..b1e8dca9917 100644 --- a/src/mame/video/pacman.c +++ b/src/mame/video/pacman.c @@ -211,7 +211,7 @@ UINT32 pacman_state::screen_update_pacman(screen_device &screen, bitmap_ind16 &b if (m_bgpriority != 0) bitmap.fill(0, cliprect); else - m_bg_tilemap->draw(bitmap, cliprect, TILEMAP_DRAW_OPAQUE,0); + m_bg_tilemap->draw(screen, bitmap, cliprect, TILEMAP_DRAW_OPAQUE,0); if( m_spriteram != NULL ) { @@ -302,7 +302,7 @@ UINT32 pacman_state::screen_update_pacman(screen_device &screen, bitmap_ind16 &b } if (m_bgpriority != 0) - m_bg_tilemap->draw(bitmap, cliprect, 0,0); + m_bg_tilemap->draw(screen, bitmap, cliprect, 0,0); return 0; } @@ -403,7 +403,7 @@ UINT32 pacman_state::screen_update_s2650games(screen_device &screen, bitmap_ind1 UINT8 *spriteram_2 = m_spriteram2; int offs; - m_bg_tilemap->draw(bitmap, cliprect, 0,0); + m_bg_tilemap->draw(screen, bitmap, cliprect, 0,0); for (offs = m_spriteram.bytes() - 2;offs > 2*2;offs -= 2) { diff --git a/src/mame/video/pandoras.c b/src/mame/video/pandoras.c index 157d91a59c9..0a634c3ae6f 100644 --- a/src/mame/video/pandoras.c +++ b/src/mame/video/pandoras.c @@ -170,8 +170,8 @@ void pandoras_state::draw_sprites( bitmap_ind16 &bitmap, const rectangle &clipre UINT32 pandoras_state::screen_update_pandoras(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect) { - m_layer0->draw(bitmap, cliprect, 1 ,0); + m_layer0->draw(screen, bitmap, cliprect, 1 ,0); draw_sprites(bitmap, cliprect, &m_spriteram[0x800] ); - m_layer0->draw(bitmap, cliprect, 0 ,0); + m_layer0->draw(screen, bitmap, cliprect, 0 ,0); return 0; } diff --git a/src/mame/video/paradise.c b/src/mame/video/paradise.c index 5468d6bc4eb..a666ca96d98 100644 --- a/src/mame/video/paradise.c +++ b/src/mame/video/paradise.c @@ -253,8 +253,8 @@ if (machine().input().code_pressed(KEYCODE_Z)) if (layers_ctrl & 16) draw_sprites(bitmap, cliprect); - if (layers_ctrl & 1) m_tilemap_0->draw(bitmap, cliprect, 0, 0); - if (layers_ctrl & 2) m_tilemap_1->draw(bitmap, cliprect, 0, 0); + if (layers_ctrl & 1) m_tilemap_0->draw(screen, bitmap, cliprect, 0, 0); + if (layers_ctrl & 2) m_tilemap_1->draw(screen, bitmap, cliprect, 0, 0); if (layers_ctrl & 4) copybitmap_trans(bitmap, m_tmpbitmap, flip_screen(), flip_screen(), 0, 0, cliprect, 0x80f); if (m_priority & 2) @@ -263,12 +263,12 @@ if (machine().input().code_pressed(KEYCODE_Z)) if (layers_ctrl & 16) draw_sprites(bitmap, cliprect); if (layers_ctrl & 8) - m_tilemap_2->draw(bitmap, cliprect, 0, 0); + m_tilemap_2->draw(screen, bitmap, cliprect, 0, 0); } else { if (layers_ctrl & 8) - m_tilemap_2->draw(bitmap, cliprect, 0, 0); + m_tilemap_2->draw(screen, bitmap, cliprect, 0, 0); if (!(m_priority & 1)) if (layers_ctrl & 16) draw_sprites(bitmap, cliprect); @@ -287,18 +287,18 @@ UINT32 paradise_state::screen_update_torus(screen_device &screen, bitmap_ind16 & if (m_priority & 1) draw_sprites(bitmap, cliprect); - m_tilemap_1->draw(bitmap, cliprect, 0,0); + m_tilemap_1->draw(screen, bitmap, cliprect, 0,0); if (m_priority & 4) { if (!(m_priority & 1)) draw_sprites(bitmap, cliprect); - m_tilemap_2->draw(bitmap, cliprect, 0, 0); + m_tilemap_2->draw(screen, bitmap, cliprect, 0, 0); } else { - m_tilemap_2->draw(bitmap, cliprect, 0, 0); + m_tilemap_2->draw(screen, bitmap, cliprect, 0, 0); if (!(m_priority & 1)) draw_sprites(bitmap,cliprect); @@ -310,9 +310,9 @@ UINT32 paradise_state::screen_update_torus(screen_device &screen, bitmap_ind16 & UINT32 paradise_state::screen_update_madball(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect) { bitmap.fill(get_black_pen(machine()), cliprect); - m_tilemap_0->draw(bitmap, cliprect, 0, 0); - m_tilemap_1->draw(bitmap, cliprect, 0, 0); - m_tilemap_2->draw(bitmap, cliprect, 0, 0); + m_tilemap_0->draw(screen, bitmap, cliprect, 0, 0); + m_tilemap_1->draw(screen, bitmap, cliprect, 0, 0); + m_tilemap_2->draw(screen, bitmap, cliprect, 0, 0); draw_sprites(bitmap, cliprect); return 0; } diff --git a/src/mame/video/parodius.c b/src/mame/video/parodius.c index 58a4d82e38f..e4ea3f66594 100644 --- a/src/mame/video/parodius.c +++ b/src/mame/video/parodius.c @@ -66,12 +66,12 @@ UINT32 parodius_state::screen_update_parodius(screen_device &screen, bitmap_ind1 konami_sortlayers3(layer, m_layerpri); - machine().priority_bitmap.fill(0, cliprect); + screen.priority().fill(0, cliprect); bitmap.fill(16 * bg_colorbase, cliprect); - m_k052109->tilemap_draw(bitmap, cliprect, layer[0], 0,1); - m_k052109->tilemap_draw(bitmap, cliprect, layer[1], 0,2); - m_k052109->tilemap_draw(bitmap, cliprect, layer[2], 0,4); + m_k052109->tilemap_draw(screen, bitmap, cliprect, layer[0], 0,1); + m_k052109->tilemap_draw(screen, bitmap, cliprect, layer[1], 0,2); + m_k052109->tilemap_draw(screen, bitmap, cliprect, layer[2], 0,4); - m_k053245->k053245_sprites_draw(bitmap, cliprect); + m_k053245->k053245_sprites_draw(bitmap, cliprect, screen.priority()); return 0; } diff --git a/src/mame/video/pass.c b/src/mame/video/pass.c index d628e355a5c..9b8ab77565b 100644 --- a/src/mame/video/pass.c +++ b/src/mame/video/pass.c @@ -52,8 +52,8 @@ void pass_state::video_start() UINT32 pass_state::screen_update_pass(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect) { - m_bg_tilemap->draw(bitmap, cliprect, 0, 0); - m_fg_tilemap->draw(bitmap, cliprect, 0, 0); + m_bg_tilemap->draw(screen, bitmap, cliprect, 0, 0); + m_fg_tilemap->draw(screen, bitmap, cliprect, 0, 0); return 0; } diff --git a/src/mame/video/pbaction.c b/src/mame/video/pbaction.c index 109f2d3694a..b5611deac87 100644 --- a/src/mame/video/pbaction.c +++ b/src/mame/video/pbaction.c @@ -125,8 +125,8 @@ void pbaction_state::draw_sprites( bitmap_ind16 &bitmap, const rectangle &clipre UINT32 pbaction_state::screen_update_pbaction(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect) { - m_bg_tilemap->draw(bitmap, cliprect, 0, 0); + m_bg_tilemap->draw(screen, bitmap, cliprect, 0, 0); draw_sprites(bitmap, cliprect); - m_fg_tilemap->draw(bitmap, cliprect, 0, 0); + m_fg_tilemap->draw(screen, bitmap, cliprect, 0, 0); return 0; } diff --git a/src/mame/video/pc080sn.c b/src/mame/video/pc080sn.c index 418393802af..b8c80023eea 100644 --- a/src/mame/video/pc080sn.c +++ b/src/mame/video/pc080sn.c @@ -357,7 +357,7 @@ static UINT16 topspeed_get_road_pixel_color( UINT16 pixel, UINT16 color ) } -void pc080sn_device::topspeed_custom_draw( bitmap_ind16 &bitmap, const rectangle &cliprect, int layer, int flags, UINT32 priority, UINT16 *color_ctrl_ram ) +void pc080sn_device::topspeed_custom_draw( screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect, int layer, int flags, UINT32 priority, UINT16 *color_ctrl_ram ) { UINT16 *dst16, *src16; UINT8 *tsrc; @@ -438,7 +438,7 @@ void pc080sn_device::topspeed_custom_draw( bitmap_ind16 &bitmap, const rectangle } } - taitoic_drawscanline(bitmap, cliprect, 0, y, scanline, (flags & TILEMAP_DRAW_OPAQUE) ? 0 : 1, ROT0, machine().priority_bitmap, priority); + taitoic_drawscanline(bitmap, cliprect, 0, y, scanline, (flags & TILEMAP_DRAW_OPAQUE) ? 0 : 1, ROT0, screen.priority(), priority); y_index++; if (!machine_flip) @@ -449,12 +449,12 @@ void pc080sn_device::topspeed_custom_draw( bitmap_ind16 &bitmap, const rectangle while ((!machine_flip && y <= max_y) || (machine_flip && y >= min_y)); } -void pc080sn_device::tilemap_draw( bitmap_ind16 &bitmap, const rectangle &cliprect, int layer, int flags, UINT32 priority ) +void pc080sn_device::tilemap_draw( screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect, int layer, int flags, UINT32 priority ) { - m_tilemap[layer]->draw(bitmap, cliprect, flags, priority); + m_tilemap[layer]->draw(screen, bitmap, cliprect, flags, priority); } -void pc080sn_device::tilemap_draw_offset( bitmap_ind16 &bitmap, const rectangle &cliprect, int layer, int flags, UINT32 priority, int x_offset, int y_offset ) +void pc080sn_device::tilemap_draw_offset( screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect, int layer, int flags, UINT32 priority, int x_offset, int y_offset ) { int basedx = -16 - m_x_offset; int basedxflip = -16 + m_x_offset; @@ -463,14 +463,14 @@ void pc080sn_device::tilemap_draw_offset( bitmap_ind16 &bitmap, const rectangle m_tilemap[layer]->set_scrolldx(basedx + x_offset, basedxflip + x_offset); m_tilemap[layer]->set_scrolldy(basedy + y_offset, basedyflip + y_offset); - m_tilemap[layer]->draw(bitmap, cliprect, flags, priority); + m_tilemap[layer]->draw(screen, bitmap, cliprect, flags, priority); m_tilemap[layer]->set_scrolldx(basedx, basedxflip); m_tilemap[layer]->set_scrolldy(basedy, basedyflip); } -void pc080sn_device::tilemap_draw_special( bitmap_ind16 &bitmap, const rectangle &cliprect, int layer, int flags, UINT32 priority, UINT16 *ram ) +void pc080sn_device::tilemap_draw_special( screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect, int layer, int flags, UINT32 priority, UINT16 *ram ) { - pc080sn_device::topspeed_custom_draw(bitmap, cliprect, layer, flags, priority, ram); + pc080sn_device::topspeed_custom_draw(screen, bitmap, cliprect, layer, flags, priority, ram); } diff --git a/src/mame/video/pc080sn.h b/src/mame/video/pc080sn.h index 643ece28234..14bfe7bf5b3 100644 --- a/src/mame/video/pc080sn.h +++ b/src/mame/video/pc080sn.h @@ -33,12 +33,12 @@ public: void set_scroll(int tilemap_num, int scrollx, int scrolly); void set_trans_pen(int tilemap_num, int pen); void tilemap_update(); - void tilemap_draw(bitmap_ind16 &bitmap, const rectangle &cliprect, int layer, int flags, UINT32 priority); - void tilemap_draw_offset(bitmap_ind16 &bitmap, const rectangle &cliprect, int layer, int flags, UINT32 priority, int xoffs, int yoffs); - void topspeed_custom_draw(bitmap_ind16 &bitmap, const rectangle &cliprect, int layer, int flags, UINT32 priority, UINT16 *color_ctrl_ram); + void tilemap_draw(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect, int layer, int flags, UINT32 priority); + void tilemap_draw_offset(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect, int layer, int flags, UINT32 priority, int xoffs, int yoffs); + void topspeed_custom_draw(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect, int layer, int flags, UINT32 priority, UINT16 *color_ctrl_ram); /* For Topspeed */ - void tilemap_draw_special(bitmap_ind16 &bitmap, const rectangle &cliprect, int layer, int flags, UINT32 priority, UINT16 *ram); + void tilemap_draw_special(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect, int layer, int flags, UINT32 priority, UINT16 *ram); void restore_scroll(); diff --git a/src/mame/video/pc090oj.c b/src/mame/video/pc090oj.c index 6c8b3106eaa..e1ddb1dc902 100644 --- a/src/mame/video/pc090oj.c +++ b/src/mame/video/pc090oj.c @@ -170,7 +170,7 @@ void pc090oj_device::eof_callback( ) } -void pc090oj_device::draw_sprites( bitmap_ind16 &bitmap, const rectangle &cliprect, int pri_type ) +void pc090oj_device::draw_sprites( bitmap_ind16 &bitmap, const rectangle &cliprect, bitmap_ind8 &priority_bitmap, int pri_type ) { int offs, priority = 0; int sprite_colbank = (m_sprite_ctrl & 0xf) << 4; /* top nibble */ @@ -224,7 +224,7 @@ void pc090oj_device::draw_sprites( bitmap_ind16 &bitmap, const rectangle &clipre color, flipx,flipy, x,y, - machine().priority_bitmap, + priority_bitmap, priority ? 0xfc : 0xf0,0); } } diff --git a/src/mame/video/pc090oj.h b/src/mame/video/pc090oj.h index 02763f4efd4..e27750647f6 100644 --- a/src/mame/video/pc090oj.h +++ b/src/mame/video/pc090oj.h @@ -21,7 +21,7 @@ public: void set_sprite_ctrl(UINT16 sprctrl); void eof_callback(); - void draw_sprites(bitmap_ind16 &bitmap, const rectangle &cliprect, int pri_type); + void draw_sprites(bitmap_ind16 &bitmap, const rectangle &cliprect, bitmap_ind8 &priority_bitmap, int pri_type); protected: // device-level overrides diff --git a/src/mame/video/pgm.c b/src/mame/video/pgm.c index 57764287737..4316b06c971 100644 --- a/src/mame/video/pgm.c +++ b/src/mame/video/pgm.c @@ -638,7 +638,7 @@ UINT32 pgm_state::screen_update_pgm(screen_device &screen, bitmap_ind16 &bitmap, bitmap.fill(0x3ff, cliprect); // ddp2 igs logo needs 0x3ff - machine().priority_bitmap.fill(0, cliprect); + screen.priority().fill(0, cliprect); m_bg_tilemap->set_scrolly(0, m_videoregs[0x2000/2]); @@ -646,15 +646,15 @@ UINT32 pgm_state::screen_update_pgm(screen_device &screen, bitmap_ind16 &bitmap, m_bg_tilemap->set_scrollx((y + m_videoregs[0x2000 / 2]) & 0x1ff, m_videoregs[0x3000 / 2] + m_rowscrollram[y]); - m_bg_tilemap->draw(bitmap, cliprect, 0, 2); + m_bg_tilemap->draw(screen, bitmap, cliprect, 0, 2); - draw_sprites(bitmap, m_spritebufferram, machine().priority_bitmap); + draw_sprites(bitmap, m_spritebufferram, screen.priority()); m_tx_tilemap->set_scrolly(0, m_videoregs[0x5000/2]); m_tx_tilemap->set_scrollx(0, m_videoregs[0x6000/2]); // Check - m_tx_tilemap->draw(bitmap, cliprect, 0, 0); + m_tx_tilemap->draw(screen, bitmap, cliprect, 0, 0); return 0; diff --git a/src/mame/video/phoenix.c b/src/mame/video/phoenix.c index ddc9e9a0423..b550e273e9b 100644 --- a/src/mame/video/phoenix.c +++ b/src/mame/video/phoenix.c @@ -443,7 +443,7 @@ READ_LINE_MEMBER(phoenix_state::survival_sid_callback) UINT32 phoenix_state::screen_update_phoenix(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect) { - m_bg_tilemap->draw(bitmap, cliprect, 0,0); - m_fg_tilemap->draw(bitmap, cliprect, 0,0); + m_bg_tilemap->draw(screen, bitmap, cliprect, 0,0); + m_fg_tilemap->draw(screen, bitmap, cliprect, 0,0); return 0; } diff --git a/src/mame/video/pingpong.c b/src/mame/video/pingpong.c index 8f10c6ec235..62745734377 100644 --- a/src/mame/video/pingpong.c +++ b/src/mame/video/pingpong.c @@ -144,7 +144,7 @@ void pingpong_state::draw_sprites(bitmap_ind16 &bitmap, const rectangle &cliprec UINT32 pingpong_state::screen_update_pingpong(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect) { - m_bg_tilemap->draw(bitmap, cliprect, 0, 0); + m_bg_tilemap->draw(screen, bitmap, cliprect, 0, 0); draw_sprites(bitmap, cliprect); return 0; } diff --git a/src/mame/video/pirates.c b/src/mame/video/pirates.c index ebffdcd5beb..0353fc9344c 100644 --- a/src/mame/video/pirates.c +++ b/src/mame/video/pirates.c @@ -103,9 +103,9 @@ UINT32 pirates_state::screen_update_pirates(screen_device &screen, bitmap_ind16 { m_bg_tilemap->set_scrollx(0,m_scroll[0]); m_fg_tilemap->set_scrollx(0,m_scroll[0]); - m_bg_tilemap->draw(bitmap, cliprect, 0,0); - m_fg_tilemap->draw(bitmap, cliprect, 0,0); + m_bg_tilemap->draw(screen, bitmap, cliprect, 0,0); + m_fg_tilemap->draw(screen, bitmap, cliprect, 0,0); draw_sprites(bitmap,cliprect); - m_tx_tilemap->draw(bitmap, cliprect, 0,0); + m_tx_tilemap->draw(screen, bitmap, cliprect, 0,0); return 0; } diff --git a/src/mame/video/pitnrun.c b/src/mame/video/pitnrun.c index 8308e1d827d..02981e8bd91 100644 --- a/src/mame/video/pitnrun.c +++ b/src/mame/video/pitnrun.c @@ -233,7 +233,7 @@ UINT32 pitnrun_state::screen_update_pitnrun(screen_device &screen, bitmap_ind16 bitmap.fill(0, cliprect); if(!(m_ha&4)) - m_bg->draw(bitmap, cliprect, 0,0); + m_bg->draw(screen, bitmap, cliprect, 0,0); else { dx=128-m_h_heed+((m_ha&8)<<5)+3; @@ -248,13 +248,13 @@ UINT32 pitnrun_state::screen_update_pitnrun(screen_device &screen, bitmap_ind16 myclip.set(dx, dx+127, dy, dy+127); myclip &= cliprect; - m_bg->draw(bitmap, myclip, 0,0); + m_bg->draw(screen, bitmap, myclip, 0,0); } draw_sprites(bitmap,myclip); if(m_ha&4) copybitmap_trans(bitmap,*m_tmp_bitmap[m_ha&3],flip_screen_x(),flip_screen_y(),dx,dy,myclip, 1); - m_fg->draw(bitmap, cliprect, 0,0); + m_fg->draw(screen, bitmap, cliprect, 0,0); return 0; } diff --git a/src/mame/video/pktgaldx.c b/src/mame/video/pktgaldx.c index 9a4bc77be49..5efbbf7414a 100644 --- a/src/mame/video/pktgaldx.c +++ b/src/mame/video/pktgaldx.c @@ -12,11 +12,11 @@ UINT32 pktgaldx_state::screen_update_pktgaldx(screen_device &screen, bitmap_ind1 m_deco_tilegen1->pf_update(m_pf1_rowscroll, m_pf2_rowscroll); bitmap.fill(0, cliprect); /* not Confirmed */ - machine().priority_bitmap.fill(0); + screen.priority().fill(0); - m_deco_tilegen1->tilemap_2_draw(bitmap, cliprect, 0, 0); + m_deco_tilegen1->tilemap_2_draw(screen, bitmap, cliprect, 0, 0); m_sprgen->draw_sprites(bitmap, cliprect, m_spriteram, 0x400, true); - m_deco_tilegen1->tilemap_1_draw(bitmap, cliprect, 0, 0); + m_deco_tilegen1->tilemap_1_draw(screen, bitmap, cliprect, 0, 0); return 0; } diff --git a/src/mame/video/playch10.c b/src/mame/video/playch10.c index 8fdbee81d01..4cd4262804d 100644 --- a/src/mame/video/playch10.c +++ b/src/mame/video/playch10.c @@ -133,7 +133,7 @@ UINT32 playch10_state::screen_update_playch10_single(screen_device &screen, bitm { /* When the bios is accessing vram, the video circuitry can't access it */ if ( !m_pc10_sdcs ) - m_bg_tilemap->draw(bitmap, top_monitor, 0, 0); + m_bg_tilemap->draw(screen, bitmap, top_monitor, 0, 0); } return 0; } @@ -164,7 +164,7 @@ UINT32 playch10_state::screen_update_playch10_bottom(screen_device &screen, bitm /* When the bios is accessing vram, the video circuitry can't access it */ if ( !m_pc10_sdcs ) - m_bg_tilemap->draw(bitmap, cliprect, 0, 0); + m_bg_tilemap->draw(screen, bitmap, cliprect, 0, 0); else bitmap.fill(0, cliprect); diff --git a/src/mame/video/playmark.c b/src/mame/video/playmark.c index 7f341f97e3f..4f8679cc304 100644 --- a/src/mame/video/playmark.c +++ b/src/mame/video/playmark.c @@ -402,7 +402,7 @@ WRITE16_MEMBER(playmark_state::hrdtimes_scroll_w) ***************************************************************************/ -void playmark_state::draw_sprites( bitmap_ind16 &bitmap, const rectangle &cliprect, int codeshift ) +void playmark_state::draw_sprites( screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect, int codeshift ) { int offs, start_offset = m_spriteram.bytes() / 2 - 4; int height = machine().gfx[0]->height(); @@ -440,12 +440,12 @@ void playmark_state::draw_sprites( bitmap_ind16 &bitmap, const rectangle &clipre color, flipx,0, sx + m_xoffset,sy + m_yoffset, - machine().priority_bitmap,m_pri_masks[pri],0); + screen.priority(),m_pri_masks[pri],0); } } -void playmark_state::bigtwinb_draw_sprites( bitmap_ind16 &bitmap, const rectangle &cliprect, int codeshift ) +void playmark_state::bigtwinb_draw_sprites( screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect, int codeshift ) { int offs, start_offset = m_spriteram.bytes() / 2 - 4; int height = machine().gfx[0]->height(); @@ -481,7 +481,7 @@ void playmark_state::bigtwinb_draw_sprites( bitmap_ind16 &bitmap, const rectangl } } -void playmark_state::draw_bitmap( bitmap_ind16 &bitmap, const rectangle &cliprect ) +void playmark_state::draw_bitmap( screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect ) { int x, y, count; int color; @@ -500,7 +500,7 @@ void playmark_state::draw_bitmap( bitmap_ind16 &bitmap, const rectangle &cliprec { bitmap.pix16((y + m_bgscrolly) & 0x1ff, (x + m_bgscrollx) & 0x1ff) = 0x100 + color; - pri = &machine().priority_bitmap.pix8((y + m_bgscrolly) & 0x1ff); + pri = &screen.priority().pix8((y + m_bgscrolly) & 0x1ff); pri[(x + m_bgscrollx) & 0x1ff] |= 2; } else @@ -510,7 +510,7 @@ void playmark_state::draw_bitmap( bitmap_ind16 &bitmap, const rectangle &cliprec { bitmap.pix16((y / 2 + m_bgscrolly) & 0x1ff, (x / 2 + m_bgscrollx) & 0x1ff) = 0x100 + color; - pri = &machine().priority_bitmap.pix8((y / 2 + m_bgscrolly) & 0x1ff); + pri = &screen.priority().pix8((y / 2 + m_bgscrolly) & 0x1ff); pri[(x / 2 + m_bgscrollx) & 0x1ff] |= 2; } } @@ -523,13 +523,13 @@ void playmark_state::draw_bitmap( bitmap_ind16 &bitmap, const rectangle &cliprec UINT32 playmark_state::screen_update_bigtwin(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect) { - machine().priority_bitmap.fill(0, cliprect); + screen.priority().fill(0, cliprect); - m_fg_tilemap->draw(bitmap, cliprect, 0, 0); + m_fg_tilemap->draw(screen, bitmap, cliprect, 0, 0); if (m_bg_enable) - draw_bitmap(bitmap, cliprect); - draw_sprites(bitmap, cliprect, 4); - m_tx_tilemap->draw(bitmap, cliprect, 0, 0); + draw_bitmap(screen, bitmap, cliprect); + draw_sprites(screen, bitmap, cliprect, 4); + m_tx_tilemap->draw(screen, bitmap, cliprect, 0, 0); return 0; } @@ -539,10 +539,10 @@ UINT32 playmark_state::screen_update_bigtwinb(screen_device &screen, bitmap_ind1 // video enabled if (m_scroll[6] & 1) { - m_bg_tilemap->draw(bitmap, cliprect, 0, 0); - m_fg_tilemap->draw(bitmap, cliprect, 0, 0); - bigtwinb_draw_sprites(bitmap, cliprect, 4); - m_tx_tilemap->draw(bitmap, cliprect, 0, 0); + m_bg_tilemap->draw(screen, bitmap, cliprect, 0, 0); + m_fg_tilemap->draw(screen, bitmap, cliprect, 0, 0); + bigtwinb_draw_sprites(screen, bitmap, cliprect, 4); + m_tx_tilemap->draw(screen, bitmap, cliprect, 0, 0); } else bitmap.fill(get_black_pen(machine()), cliprect); @@ -551,13 +551,13 @@ UINT32 playmark_state::screen_update_bigtwinb(screen_device &screen, bitmap_ind1 UINT32 playmark_state::screen_update_excelsr(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect) { - machine().priority_bitmap.fill(0, cliprect); + screen.priority().fill(0, cliprect); - m_fg_tilemap->draw(bitmap, cliprect, 0, 1); + m_fg_tilemap->draw(screen, bitmap, cliprect, 0, 1); if (m_bg_enable) - draw_bitmap(bitmap, cliprect); - m_tx_tilemap->draw(bitmap, cliprect, 0, 4); - draw_sprites(bitmap, cliprect, 2); + draw_bitmap(screen, bitmap, cliprect); + m_tx_tilemap->draw(screen, bitmap, cliprect, 0, 4); + draw_sprites(screen, bitmap, cliprect, 2); return 0; } @@ -577,26 +577,26 @@ UINT32 playmark_state::screen_update_wbeachvl(screen_device &screen, bitmap_ind1 m_fg_tilemap->set_scrollx(0, m_fgscrollx); } - machine().priority_bitmap.fill(0, cliprect); + screen.priority().fill(0, cliprect); - m_bg_tilemap->draw(bitmap, cliprect, 0, 1); - m_fg_tilemap->draw(bitmap, cliprect, 0, 2); - draw_sprites(bitmap, cliprect, 0); - m_tx_tilemap->draw(bitmap, cliprect, 0, 0); + m_bg_tilemap->draw(screen, bitmap, cliprect, 0, 1); + m_fg_tilemap->draw(screen, bitmap, cliprect, 0, 2); + draw_sprites(screen, bitmap, cliprect, 0); + m_tx_tilemap->draw(screen, bitmap, cliprect, 0, 0); return 0; } UINT32 playmark_state::screen_update_hrdtimes(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect) { - machine().priority_bitmap.fill(0, cliprect); + screen.priority().fill(0, cliprect); // video enabled if (m_scroll[6] & 1) { - m_bg_tilemap->draw(bitmap, cliprect, 0, 1); - m_fg_tilemap->draw(bitmap, cliprect, 0, 2); - draw_sprites(bitmap, cliprect, 2); - m_tx_tilemap->draw(bitmap, cliprect, 0, 0); + m_bg_tilemap->draw(screen, bitmap, cliprect, 0, 1); + m_fg_tilemap->draw(screen, bitmap, cliprect, 0, 2); + draw_sprites(screen, bitmap, cliprect, 2); + m_tx_tilemap->draw(screen, bitmap, cliprect, 0, 0); } else bitmap.fill(get_black_pen(machine()), cliprect); diff --git a/src/mame/video/plygonet.c b/src/mame/video/plygonet.c index b0a13c47c53..824dc8ecc08 100644 --- a/src/mame/video/plygonet.c +++ b/src/mame/video/plygonet.c @@ -118,11 +118,11 @@ void polygonet_state::video_start() UINT32 polygonet_state::screen_update_polygonet(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect) { - machine().priority_bitmap.fill(0); + screen.priority().fill(0); bitmap.fill(get_black_pen(machine()), cliprect); - m_k053936->zoom_draw(bitmap, cliprect, m_roz_tilemap, 0, 0, 0); + m_k053936->zoom_draw(screen, bitmap, cliprect, m_roz_tilemap, 0, 0, 0); - m_ttl_tilemap->draw(bitmap, cliprect, 0, 1<<0); + m_ttl_tilemap->draw(screen, bitmap, cliprect, 0, 1<<0); return 0; } diff --git a/src/mame/video/pokechmp.c b/src/mame/video/pokechmp.c index d11dd81fd62..0e0a86e6524 100644 --- a/src/mame/video/pokechmp.c +++ b/src/mame/video/pokechmp.c @@ -73,7 +73,7 @@ void pokechmp_state::draw_sprites(bitmap_ind16 &bitmap, const rectangle &cliprec UINT32 pokechmp_state::screen_update_pokechmp(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect) { - m_bg_tilemap->draw(bitmap, cliprect, 0, 0); + m_bg_tilemap->draw(screen, bitmap, cliprect, 0, 0); draw_sprites(bitmap, cliprect); return 0; } diff --git a/src/mame/video/polepos.c b/src/mame/video/polepos.c index c6ed1c1332b..34d5de1b96b 100644 --- a/src/mame/video/polepos.c +++ b/src/mame/video/polepos.c @@ -499,9 +499,9 @@ UINT32 polepos_state::screen_update_polepos(screen_device &screen, bitmap_ind16 { rectangle clip = cliprect; clip.max_y = 127; - m_bg_tilemap->draw(bitmap, clip, 0,0); + m_bg_tilemap->draw(screen, bitmap, clip, 0,0); draw_road(bitmap); draw_sprites(bitmap,cliprect); - m_tx_tilemap->draw(bitmap, cliprect, 0,0); + m_tx_tilemap->draw(screen, bitmap, cliprect, 0,0); return 0; } diff --git a/src/mame/video/poolshrk.c b/src/mame/video/poolshrk.c index 9d021cc5893..e772ad79763 100644 --- a/src/mame/video/poolshrk.c +++ b/src/mame/video/poolshrk.c @@ -46,6 +46,6 @@ UINT32 poolshrk_state::screen_update_poolshrk(screen_device &screen, bitmap_ind1 /* draw playfield */ - m_bg_tilemap->draw(bitmap, cliprect, 0, 0); + m_bg_tilemap->draw(screen, bitmap, cliprect, 0, 0); return 0; } diff --git a/src/mame/video/pooyan.c b/src/mame/video/pooyan.c index 10904ebea21..8de197eaa28 100644 --- a/src/mame/video/pooyan.c +++ b/src/mame/video/pooyan.c @@ -190,7 +190,7 @@ void pooyan_state::draw_sprites( bitmap_ind16 &bitmap, const rectangle &cliprect UINT32 pooyan_state::screen_update_pooyan(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect) { - m_bg_tilemap->draw(bitmap, cliprect, 0, 0); + m_bg_tilemap->draw(screen, bitmap, cliprect, 0, 0); draw_sprites(bitmap, cliprect); return 0; } diff --git a/src/mame/video/popeye.c b/src/mame/video/popeye.c index 7f46701fa40..abae9acae3e 100644 --- a/src/mame/video/popeye.c +++ b/src/mame/video/popeye.c @@ -365,6 +365,6 @@ UINT32 popeye_state::screen_update_popeye(screen_device &screen, bitmap_ind16 &b { draw_background(bitmap, cliprect); draw_sprites(bitmap, cliprect); - m_fg_tilemap->draw(bitmap, cliprect, 0, 0); + m_fg_tilemap->draw(screen, bitmap, cliprect, 0, 0); return 0; } diff --git a/src/mame/video/popper.c b/src/mame/video/popper.c index 7a19c3788a0..d11abec9f9d 100644 --- a/src/mame/video/popper.c +++ b/src/mame/video/popper.c @@ -239,16 +239,16 @@ UINT32 popper_state::screen_update_popper(screen_device &screen, bitmap_ind16 &b //-xxx---- colour for pen 0 (from second prom?) //----xxxx colour for pens 1,2,3 - m_p123_tilemap->draw(bitmap, cliprect, TILEMAP_DRAW_LAYER1, 0); - m_p0_tilemap->draw(bitmap, cliprect, TILEMAP_DRAW_LAYER1, 0); - m_ol_p123_tilemap->draw(bitmap, finalclip, TILEMAP_DRAW_LAYER1, 0); - m_ol_p0_tilemap->draw(bitmap, finalclip, TILEMAP_DRAW_LAYER1, 0); + m_p123_tilemap->draw(screen, bitmap, cliprect, TILEMAP_DRAW_LAYER1, 0); + m_p0_tilemap->draw(screen, bitmap, cliprect, TILEMAP_DRAW_LAYER1, 0); + m_ol_p123_tilemap->draw(screen, bitmap, finalclip, TILEMAP_DRAW_LAYER1, 0); + m_ol_p0_tilemap->draw(screen, bitmap, finalclip, TILEMAP_DRAW_LAYER1, 0); draw_sprites(bitmap, cliprect); - m_p123_tilemap->draw(bitmap, cliprect, TILEMAP_DRAW_LAYER0, 0); - m_p0_tilemap->draw(bitmap, cliprect, TILEMAP_DRAW_LAYER0, 0); - m_ol_p123_tilemap->draw(bitmap, finalclip, TILEMAP_DRAW_LAYER0, 0); - m_ol_p0_tilemap->draw(bitmap, finalclip, TILEMAP_DRAW_LAYER0, 0); + m_p123_tilemap->draw(screen, bitmap, cliprect, TILEMAP_DRAW_LAYER0, 0); + m_p0_tilemap->draw(screen, bitmap, cliprect, TILEMAP_DRAW_LAYER0, 0); + m_ol_p123_tilemap->draw(screen, bitmap, finalclip, TILEMAP_DRAW_LAYER0, 0); + m_ol_p0_tilemap->draw(screen, bitmap, finalclip, TILEMAP_DRAW_LAYER0, 0); return 0; } diff --git a/src/mame/video/portrait.c b/src/mame/video/portrait.c index c38905b5a43..03fef46abc5 100644 --- a/src/mame/video/portrait.c +++ b/src/mame/video/portrait.c @@ -194,13 +194,13 @@ UINT32 portrait_state::screen_update_portrait(screen_device &screen, bitmap_ind1 m_background->set_scrolly(0, 0); m_foreground->set_scrolly(0, 0); - m_background->draw(bitmap, cliprect_no_scroll, 0, 0); - m_foreground->draw(bitmap, cliprect_no_scroll, 0, 0); + m_background->draw(screen, bitmap, cliprect_no_scroll, 0, 0); + m_foreground->draw(screen, bitmap, cliprect_no_scroll, 0, 0); m_background->set_scrolly(0, m_scroll); m_foreground->set_scrolly(0, m_scroll); - m_background->draw(bitmap, cliprect_scroll, 0, 0); - m_foreground->draw(bitmap, cliprect_scroll, 0, 0); + m_background->draw(screen, bitmap, cliprect_scroll, 0, 0); + m_foreground->draw(screen, bitmap, cliprect_scroll, 0, 0); draw_sprites(bitmap,cliprect); return 0; diff --git a/src/mame/video/powerins.c b/src/mame/video/powerins.c index ba0641d17a5..88183f815c8 100644 --- a/src/mame/video/powerins.c +++ b/src/mame/video/powerins.c @@ -350,9 +350,9 @@ if (machine().input().code_pressed(KEYCODE_Z)) } #endif - if (layers_ctrl&1) m_tilemap_0->draw(bitmap, cliprect, 0, 0); + if (layers_ctrl&1) m_tilemap_0->draw(screen, bitmap, cliprect, 0, 0); else bitmap.fill(0, cliprect); if (layers_ctrl&8) draw_sprites(bitmap,cliprect); - if (layers_ctrl&2) m_tilemap_1->draw(bitmap, cliprect, 0, 0); + if (layers_ctrl&2) m_tilemap_1->draw(screen, bitmap, cliprect, 0, 0); return 0; } diff --git a/src/mame/video/prehisle.c b/src/mame/video/prehisle.c index 70916428712..b255b31cf07 100644 --- a/src/mame/video/prehisle.c +++ b/src/mame/video/prehisle.c @@ -154,10 +154,10 @@ void prehisle_state::draw_sprites(bitmap_ind16 &bitmap, const rectangle &cliprec UINT32 prehisle_state::screen_update_prehisle(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect) { - m_bg2_tilemap->draw(bitmap, cliprect, 0, 0); + m_bg2_tilemap->draw(screen, bitmap, cliprect, 0, 0); draw_sprites(bitmap, cliprect, 0); - m_bg_tilemap->draw(bitmap, cliprect, 0, 0); + m_bg_tilemap->draw(screen, bitmap, cliprect, 0, 0); draw_sprites(bitmap, cliprect, 1); - m_fg_tilemap->draw(bitmap, cliprect, 0, 0); + m_fg_tilemap->draw(screen, bitmap, cliprect, 0, 0); return 0; } diff --git a/src/mame/video/psikyo.c b/src/mame/video/psikyo.c index c0b9cd97a92..7e23d4b9255 100644 --- a/src/mame/video/psikyo.c +++ b/src/mame/video/psikyo.c @@ -253,7 +253,7 @@ Note: Not all sprites are displayed: in the top part of spriteram ***************************************************************************/ -void psikyo_state::draw_sprites( bitmap_ind16 &bitmap, const rectangle &cliprect, int trans_pen ) +void psikyo_state::draw_sprites( screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect, int trans_pen ) { /* tile layers 0 & 1 have priorities 1 & 2 */ static const int pri[] = { 0, 0xfc, 0xff, 0xff }; @@ -348,7 +348,7 @@ void psikyo_state::draw_sprites( bitmap_ind16 &bitmap, const rectangle &cliprect attr >> 8, flipx, flipy, x + dx * 16, y + dy * 16, - machine().priority_bitmap, + screen.priority(), pri[(attr & 0xc0) >> 6],trans_pen); else pdrawgfxzoom_transpen(bitmap,cliprect,machine().gfx[0], @@ -357,7 +357,7 @@ void psikyo_state::draw_sprites( bitmap_ind16 &bitmap, const rectangle &cliprect flipx, flipy, x + (dx * zoomx) / 2, y + (dy * zoomy) / 2, zoomx << 11,zoomy << 11, - machine().priority_bitmap,pri[(attr & 0xc0) >> 6],trans_pen); + screen.priority(),pri[(attr & 0xc0) >> 6],trans_pen); code++; } @@ -370,7 +370,7 @@ void psikyo_state::draw_sprites( bitmap_ind16 &bitmap, const rectangle &cliprect // until I work out why it makes a partial copy of the sprite list, and how best to apply it // sprite placement of the explosion graphic seems incorrect compared to the original sets? (no / different zoom support?) // it might be a problem with the actual bootleg -void psikyo_state::draw_sprites_bootleg( bitmap_ind16 &bitmap, const rectangle &cliprect, int trans_pen ) +void psikyo_state::draw_sprites_bootleg( screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect, int trans_pen ) { /* tile layers 0 & 1 have priorities 1 & 2 */ static const int pri[] = { 0, 0xfc, 0xff, 0xff }; @@ -467,7 +467,7 @@ void psikyo_state::draw_sprites_bootleg( bitmap_ind16 &bitmap, const rectangle & attr >> 8, flipx, flipy, x + dx * 16, y + dy * 16, - machine().priority_bitmap, + screen.priority(), pri[(attr & 0xc0) >> 6],trans_pen); else pdrawgfxzoom_transpen(bitmap,cliprect,machine().gfx[0], @@ -476,7 +476,7 @@ void psikyo_state::draw_sprites_bootleg( bitmap_ind16 &bitmap, const rectangle & flipx, flipy, x + (dx * zoomx) / 2, y + (dy * zoomy) / 2, zoomx << 11,zoomy << 11, - machine().priority_bitmap,pri[(attr & 0xc0) >> 6],trans_pen); + screen.priority(),pri[(attr & 0xc0) >> 6],trans_pen); code++; } @@ -657,16 +657,16 @@ UINT32 psikyo_state::screen_update_psikyo(screen_device &screen, bitmap_ind16 &b bitmap.fill(get_black_pen(machine()), cliprect); - machine().priority_bitmap.fill(0, cliprect); + screen.priority().fill(0, cliprect); if (layers_ctrl & 1) - tmptilemap0->draw(bitmap, cliprect, layer0_ctrl & 2 ? TILEMAP_DRAW_OPAQUE : 0, 1); + tmptilemap0->draw(screen, bitmap, cliprect, layer0_ctrl & 2 ? TILEMAP_DRAW_OPAQUE : 0, 1); if (layers_ctrl & 2) - tmptilemap1->draw(bitmap, cliprect, layer1_ctrl & 2 ? TILEMAP_DRAW_OPAQUE : 0, 2); + tmptilemap1->draw(screen, bitmap, cliprect, layer1_ctrl & 2 ? TILEMAP_DRAW_OPAQUE : 0, 2); if (layers_ctrl & 4) - draw_sprites(bitmap, cliprect, (spr_ctrl & 4 ? 0 : 15)); + draw_sprites(screen, bitmap, cliprect, (spr_ctrl & 4 ? 0 : 15)); return 0; } @@ -830,16 +830,16 @@ UINT32 psikyo_state::screen_update_psikyo_bootleg(screen_device &screen, bitmap_ bitmap.fill(get_black_pen(machine()), cliprect); - machine().priority_bitmap.fill(0, cliprect); + screen.priority().fill(0, cliprect); if (layers_ctrl & 1) - tmptilemap0->draw(bitmap, cliprect, layer0_ctrl & 2 ? TILEMAP_DRAW_OPAQUE : 0, 1); + tmptilemap0->draw(screen, bitmap, cliprect, layer0_ctrl & 2 ? TILEMAP_DRAW_OPAQUE : 0, 1); if (layers_ctrl & 2) - tmptilemap1->draw(bitmap, cliprect, layer1_ctrl & 2 ? TILEMAP_DRAW_OPAQUE : 0, 2); + tmptilemap1->draw(screen, bitmap, cliprect, layer1_ctrl & 2 ? TILEMAP_DRAW_OPAQUE : 0, 2); if (layers_ctrl & 4) - draw_sprites_bootleg(bitmap, cliprect, (spr_ctrl & 4 ? 0 : 15)); + draw_sprites_bootleg(screen, bitmap, cliprect, (spr_ctrl & 4 ? 0 : 15)); return 0; } diff --git a/src/mame/video/psychic5.c b/src/mame/video/psychic5.c index 62b2bc87314..aa73493469e 100644 --- a/src/mame/video/psychic5.c +++ b/src/mame/video/psychic5.c @@ -348,7 +348,7 @@ void psychic5_state::draw_sprites(bitmap_rgb32 &bitmap, const rectangle &cliprec } } -void psychic5_state::draw_background(bitmap_rgb32 &bitmap, const rectangle &cliprect) +void psychic5_state::draw_background(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect) { UINT8 *spriteram = m_spriteram; @@ -401,27 +401,27 @@ void psychic5_state::draw_background(bitmap_rgb32 &bitmap, const rectangle &clip clip.set(255 - clip.max_x, 255 - clip.min_x, 255 - clip.max_y, 255 - clip.min_y); } - m_bg_tilemap->draw(bitmap, clip, 0, 0); + m_bg_tilemap->draw(screen, bitmap, clip, 0, 0); } UINT32 psychic5_state::screen_update_psychic5(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect) { bitmap.fill(get_black_pen(machine()), cliprect); if (m_bg_status & 1) /* Backgound enable */ - draw_background(bitmap, cliprect); + draw_background(screen, bitmap, cliprect); if (!(m_title_screen & 1)) draw_sprites(bitmap, cliprect); - m_fg_tilemap->draw(bitmap, cliprect, 0, 0); + m_fg_tilemap->draw(screen, bitmap, cliprect, 0, 0); return 0; } UINT32 psychic5_state::screen_update_bombsa(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect) { if (m_bg_status & 1) /* Backgound enable */ - m_bg_tilemap->draw(bitmap, cliprect, 0, 0); + m_bg_tilemap->draw(screen, bitmap, cliprect, 0, 0); else bitmap.fill(machine().pens[0x0ff], cliprect); draw_sprites(bitmap, cliprect); - m_fg_tilemap->draw(bitmap, cliprect, 0, 0); + m_fg_tilemap->draw(screen, bitmap, cliprect, 0, 0); return 0; } diff --git a/src/mame/video/punchout.c b/src/mame/video/punchout.c index 7c759698b76..d49ad2697d8 100644 --- a/src/mame/video/punchout.c +++ b/src/mame/video/punchout.c @@ -187,7 +187,7 @@ WRITE8_MEMBER(punchout_state::punchout_spr2_videoram_w) -void punchout_state::draw_big_sprite(bitmap_ind16 &bitmap, const rectangle &cliprect, int palette) +void punchout_state::draw_big_sprite(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect, int palette) { int zoom; @@ -221,7 +221,7 @@ void punchout_state::draw_big_sprite(bitmap_ind16 &bitmap, const rectangle &clip m_spr1_tilemap->set_palette_offset(0x100 * palette); - m_spr1_tilemap->draw_roz(bitmap, cliprect, + m_spr1_tilemap->draw_roz(screen, bitmap, cliprect, startx,starty + 0x200*(2) * zoom, incxx,0,0,incyy, /* zoom, no rotation */ 0, /* no wraparound */ @@ -230,7 +230,7 @@ void punchout_state::draw_big_sprite(bitmap_ind16 &bitmap, const rectangle &clip } -void punchout_state::armwrest_draw_big_sprite(bitmap_ind16 &bitmap, const rectangle &cliprect, int palette) +void punchout_state::armwrest_draw_big_sprite(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect, int palette) { int zoom; @@ -268,7 +268,7 @@ void punchout_state::armwrest_draw_big_sprite(bitmap_ind16 &bitmap, const rectan _tilemap->set_palette_offset(0x100 * palette); - _tilemap->draw_roz(bitmap, cliprect, + _tilemap->draw_roz(screen, bitmap, cliprect, startx,starty + 0x200*(2) * zoom, incxx,0,0,incyy, /* zoom, no rotation */ 0, /* no wraparound */ @@ -276,7 +276,7 @@ void punchout_state::armwrest_draw_big_sprite(bitmap_ind16 &bitmap, const rectan } } -void punchout_state::drawbs2(bitmap_ind16 &bitmap, const rectangle &cliprect) +void punchout_state::drawbs2(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect) { int sx,sy; int incxx; @@ -300,7 +300,7 @@ void punchout_state::drawbs2(bitmap_ind16 &bitmap, const rectangle &cliprect) incxx = 1; // this tilemap doesn't actually zoom, but draw_roz is the only way to draw it without wraparound - m_spr2_tilemap->draw_roz(bitmap, cliprect, + m_spr2_tilemap->draw_roz(screen, bitmap, cliprect, sx, sy, incxx << 16, 0, 0, 1 << 16, 0, 0, 0); } @@ -350,10 +350,10 @@ UINT32 punchout_state::screen_update_punchout_top(screen_device &screen, bitmap_ { punchout_copy_top_palette(BIT(*m_palettebank,1)); - m_bg_top_tilemap->draw(bitmap, cliprect, 0, 0); + m_bg_top_tilemap->draw(screen, bitmap, cliprect, 0, 0); if (m_spr1_ctrlram[7] & 1) /* display in top monitor */ - draw_big_sprite(bitmap, cliprect, 0); + draw_big_sprite(screen, bitmap, cliprect, 0); return 0; } @@ -368,11 +368,11 @@ UINT32 punchout_state::screen_update_punchout_bottom(screen_device &screen, bitm for (offs = 0;offs < 32;offs++) m_bg_bot_tilemap->set_scrollx(offs, 58 + m_bg_bot_videoram[2*offs] + 256 * (m_bg_bot_videoram[2*offs + 1] & 0x01)); - m_bg_bot_tilemap->draw(bitmap, cliprect, 0, 0); + m_bg_bot_tilemap->draw(screen, bitmap, cliprect, 0, 0); if (m_spr1_ctrlram[7] & 2) /* display in bottom monitor */ - draw_big_sprite(bitmap, cliprect, 1); - drawbs2(bitmap, cliprect); + draw_big_sprite(screen, bitmap, cliprect, 1); + drawbs2(screen, bitmap, cliprect); return 0; } @@ -382,10 +382,10 @@ UINT32 punchout_state::screen_update_armwrest_top(screen_device &screen, bitmap_ { punchout_copy_top_palette(BIT(*m_palettebank,1)); - m_bg_top_tilemap->draw(bitmap, cliprect, 0, 0); + m_bg_top_tilemap->draw(screen, bitmap, cliprect, 0, 0); if (m_spr1_ctrlram[7] & 1) /* display in top monitor */ - armwrest_draw_big_sprite(bitmap, cliprect, 0); + armwrest_draw_big_sprite(screen, bitmap, cliprect, 0); return 0; } @@ -394,13 +394,13 @@ UINT32 punchout_state::screen_update_armwrest_bottom(screen_device &screen, bitm { punchout_copy_bot_palette(BIT(*m_palettebank,0)); - m_bg_bot_tilemap->draw(bitmap, cliprect, 0, 0); + m_bg_bot_tilemap->draw(screen, bitmap, cliprect, 0, 0); if (m_spr1_ctrlram[7] & 2) /* display in bottom monitor */ - armwrest_draw_big_sprite(bitmap, cliprect, 1); - drawbs2(bitmap, cliprect); + armwrest_draw_big_sprite(screen, bitmap, cliprect, 1); + drawbs2(screen, bitmap, cliprect); - m_fg_tilemap->draw(bitmap, cliprect, 0, 0); + m_fg_tilemap->draw(screen, bitmap, cliprect, 0, 0); return 0; } diff --git a/src/mame/video/pushman.c b/src/mame/video/pushman.c index 33e72ce2ee4..a893b8f4f18 100644 --- a/src/mame/video/pushman.c +++ b/src/mame/video/pushman.c @@ -119,8 +119,8 @@ UINT32 pushman_state::screen_update_pushman(screen_device &screen, bitmap_ind16 m_bg_tilemap->set_scrollx(0, m_control[0]); m_bg_tilemap->set_scrolly(0, 0xf00 - m_control[1]); - m_bg_tilemap->draw(bitmap, cliprect, 0, 0); + m_bg_tilemap->draw(screen, bitmap, cliprect, 0, 0); draw_sprites(bitmap, cliprect); - m_tx_tilemap->draw(bitmap, cliprect, 0, 0); + m_tx_tilemap->draw(screen, bitmap, cliprect, 0, 0); return 0; } diff --git a/src/mame/video/qdrmfgp.c b/src/mame/video/qdrmfgp.c index 2d343a596d6..226c6675bfc 100644 --- a/src/mame/video/qdrmfgp.c +++ b/src/mame/video/qdrmfgp.c @@ -56,9 +56,9 @@ UINT32 qdrmfgp_state::screen_update_qdrmfgp(screen_device &screen, bitmap_ind16 { bitmap.fill(get_black_pen(machine()), cliprect); - m_k056832->tilemap_draw(bitmap, cliprect, 3, 0, 1); - m_k056832->tilemap_draw(bitmap, cliprect, 2, 0, 2); - m_k056832->tilemap_draw(bitmap, cliprect, 1, 0, 4); - m_k056832->tilemap_draw(bitmap, cliprect, 0, 0, 8); + m_k056832->tilemap_draw(screen, bitmap, cliprect, 3, 0, 1); + m_k056832->tilemap_draw(screen, bitmap, cliprect, 2, 0, 2); + m_k056832->tilemap_draw(screen, bitmap, cliprect, 1, 0, 4); + m_k056832->tilemap_draw(screen, bitmap, cliprect, 0, 0, 8); return 0; } diff --git a/src/mame/video/quizdna.c b/src/mame/video/quizdna.c index ce43d4d0280..ff248cce784 100644 --- a/src/mame/video/quizdna.c +++ b/src/mame/video/quizdna.c @@ -187,9 +187,9 @@ UINT32 quizdna_state::screen_update_quizdna(screen_device &screen, bitmap_ind16 { if (m_video_enable) { - m_bg_tilemap->draw(bitmap, cliprect, 0, 0); + m_bg_tilemap->draw(screen, bitmap, cliprect, 0, 0); draw_sprites(bitmap, cliprect); - m_fg_tilemap->draw(bitmap, cliprect, 0, 0); + m_fg_tilemap->draw(screen, bitmap, cliprect, 0, 0); } else bitmap.fill(get_black_pen(machine()), cliprect); diff --git a/src/mame/video/quizpani.c b/src/mame/video/quizpani.c index 95f2ebf3829..82eecbd1914 100644 --- a/src/mame/video/quizpani.c +++ b/src/mame/video/quizpani.c @@ -80,7 +80,7 @@ UINT32 quizpani_state::screen_update_quizpani(screen_device &screen, bitmap_ind1 m_txt_tilemap->set_scrollx(0, m_scrollreg[2] - 64); m_txt_tilemap->set_scrolly(0, m_scrollreg[3] + 16); - m_bg_tilemap->draw(bitmap, cliprect, 0,0); - m_txt_tilemap->draw(bitmap, cliprect, 0,0); + m_bg_tilemap->draw(screen, bitmap, cliprect, 0,0); + m_txt_tilemap->draw(screen, bitmap, cliprect, 0,0); return 0; } diff --git a/src/mame/video/raiden.c b/src/mame/video/raiden.c index c6abbf62109..17bc072b824 100644 --- a/src/mame/video/raiden.c +++ b/src/mame/video/raiden.c @@ -149,21 +149,21 @@ UINT32 raiden_state::screen_update_common(screen_device &screen, bitmap_ind16 &b // back layer if (m_bg_layer_enabled) - m_bg_layer->draw(bitmap, cliprect, 0, 0); + m_bg_layer->draw(screen, bitmap, cliprect, 0, 0); // draw sprites underneath foreground draw_sprites(bitmap, cliprect, 1); // fore layer if (m_fg_layer_enabled) - m_fg_layer->draw(bitmap, cliprect, 0, 0); + m_fg_layer->draw(screen, bitmap, cliprect, 0, 0); // rest of sprites draw_sprites(bitmap, cliprect, 2); // text layer if (m_tx_layer_enabled) - m_tx_layer->draw(bitmap, cliprect, 0, 0); + m_tx_layer->draw(screen, bitmap, cliprect, 0, 0); return 0; } diff --git a/src/mame/video/rainbow.c b/src/mame/video/rainbow.c index 6196e5e9fd4..27885d749a7 100644 --- a/src/mame/video/rainbow.c +++ b/src/mame/video/rainbow.c @@ -46,12 +46,12 @@ UINT32 rbisland_state::screen_update_rainbow(screen_device &screen, bitmap_ind16 layer[0] = 0; layer[1] = 1; - machine().priority_bitmap.fill(0, cliprect); + screen.priority().fill(0, cliprect); - m_pc080sn->tilemap_draw(bitmap, cliprect, layer[0], TILEMAP_DRAW_OPAQUE, 1); - m_pc080sn->tilemap_draw(bitmap, cliprect, layer[1], 0, 2); + m_pc080sn->tilemap_draw(screen, bitmap, cliprect, layer[0], TILEMAP_DRAW_OPAQUE, 1); + m_pc080sn->tilemap_draw(screen, bitmap, cliprect, layer[1], 0, 2); - m_pc090oj->draw_sprites(bitmap, cliprect, 1); + m_pc090oj->draw_sprites(bitmap, cliprect, screen.priority(), 1); return 0; } @@ -93,9 +93,9 @@ UINT32 rbisland_state::screen_update_jumping(screen_device &screen, bitmap_ind16 layer[0] = 0; layer[1] = 1; - machine().priority_bitmap.fill(0, cliprect); + screen.priority().fill(0, cliprect); - m_pc080sn->tilemap_draw(bitmap, cliprect, layer[0], TILEMAP_DRAW_OPAQUE, 0); + m_pc080sn->tilemap_draw(screen, bitmap, cliprect, layer[0], TILEMAP_DRAW_OPAQUE, 0); /* Draw the sprites. 128 sprites in total */ for (offs = m_spriteram.bytes() / 2 - 8; offs >= 0; offs -= 8) @@ -121,7 +121,7 @@ UINT32 rbisland_state::screen_update_jumping(screen_device &screen, bitmap_ind16 } } - m_pc080sn->tilemap_draw(bitmap, cliprect, layer[1], 0, 0); + m_pc080sn->tilemap_draw(screen, bitmap, cliprect, layer[1], 0, 0); #if 0 { diff --git a/src/mame/video/rallyx.c b/src/mame/video/rallyx.c index 76d65e9139d..e1ea35340d1 100644 --- a/src/mame/video/rallyx.c +++ b/src/mame/video/rallyx.c @@ -461,7 +461,7 @@ void rallyx_state::draw_stars( bitmap_ind16 &bitmap, const rectangle &cliprect ) } -void rallyx_state::rallyx_draw_sprites( bitmap_ind16 &bitmap, const rectangle &cliprect, int displacement ) +void rallyx_state::rallyx_draw_sprites( screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect, int displacement ) { UINT8 *spriteram = m_spriteram; UINT8 *spriteram_2 = m_spriteram2; @@ -482,12 +482,12 @@ void rallyx_state::rallyx_draw_sprites( bitmap_ind16 &bitmap, const rectangle &c color, flipx,flipy, sx,sy, - machine().priority_bitmap,0x02, + screen.priority(),0x02, colortable_get_transpen_mask(machine().colortable, machine().gfx[1], color, 0)); } } -void rallyx_state::locomotn_draw_sprites( bitmap_ind16 &bitmap, const rectangle &cliprect, int displacement ) +void rallyx_state::locomotn_draw_sprites( screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect, int displacement ) { UINT8 *spriteram = m_spriteram; UINT8 *spriteram_2 = m_spriteram2; @@ -505,7 +505,7 @@ void rallyx_state::locomotn_draw_sprites( bitmap_ind16 &bitmap, const rectangle color, flip,flip, sx,sy, - machine().priority_bitmap,0x02, + screen.priority(),0x02, colortable_get_transpen_mask(machine().colortable, machine().gfx[1], color, 0)); } } @@ -623,15 +623,15 @@ UINT32 rallyx_state::screen_update_rallyx(screen_device &screen, bitmap_ind16 &b fg_clip.min_x = 28 * 8; } - machine().priority_bitmap.fill(0, cliprect); + screen.priority().fill(0, cliprect); - m_bg_tilemap->draw(bitmap, bg_clip, 0, 0); - m_fg_tilemap->draw(bitmap, fg_clip, 0, 0); - m_bg_tilemap->draw(bitmap, bg_clip, 1, 1); - m_fg_tilemap->draw(bitmap, fg_clip, 1, 1); + m_bg_tilemap->draw(screen, bitmap, bg_clip, 0, 0); + m_fg_tilemap->draw(screen, bitmap, fg_clip, 0, 0); + m_bg_tilemap->draw(screen, bitmap, bg_clip, 1, 1); + m_fg_tilemap->draw(screen, bitmap, fg_clip, 1, 1); rallyx_draw_bullets(bitmap, cliprect, TRUE); - rallyx_draw_sprites(bitmap, cliprect, 1); + rallyx_draw_sprites(screen, bitmap, cliprect, 1); rallyx_draw_bullets(bitmap, cliprect, FALSE); return 0; @@ -656,16 +656,16 @@ UINT32 rallyx_state::screen_update_jungler(screen_device &screen, bitmap_ind16 & fg_clip.min_x = 28 * 8; } - machine().priority_bitmap.fill(0, cliprect); + screen.priority().fill(0, cliprect); /* tile priority doesn't seem to be supported in Jungler */ - m_bg_tilemap->draw(bitmap, bg_clip, 0, 0); - m_fg_tilemap->draw(bitmap, fg_clip, 0, 0); - m_bg_tilemap->draw(bitmap, bg_clip, 1, 0); - m_fg_tilemap->draw(bitmap, fg_clip, 1, 0); + m_bg_tilemap->draw(screen, bitmap, bg_clip, 0, 0); + m_fg_tilemap->draw(screen, bitmap, fg_clip, 0, 0); + m_bg_tilemap->draw(screen, bitmap, bg_clip, 1, 0); + m_fg_tilemap->draw(screen, bitmap, fg_clip, 1, 0); jungler_draw_bullets(bitmap, cliprect, TRUE); - rallyx_draw_sprites(bitmap, cliprect, 0); + rallyx_draw_sprites(screen, bitmap, cliprect, 0); jungler_draw_bullets(bitmap, cliprect, FALSE); if (m_stars_enable) @@ -702,15 +702,15 @@ UINT32 rallyx_state::screen_update_locomotn(screen_device &screen, bitmap_ind16 fg_clip.min_x = 28 * 8; } - machine().priority_bitmap.fill(0, cliprect); + screen.priority().fill(0, cliprect); - m_bg_tilemap->draw(bitmap, bg_clip, 0, 0); - m_fg_tilemap->draw(bitmap, fg_clip, 0, 0); - m_bg_tilemap->draw(bitmap, bg_clip, 1, 1); - m_fg_tilemap->draw(bitmap, fg_clip, 1, 1); + m_bg_tilemap->draw(screen, bitmap, bg_clip, 0, 0); + m_fg_tilemap->draw(screen, bitmap, fg_clip, 0, 0); + m_bg_tilemap->draw(screen, bitmap, bg_clip, 1, 1); + m_fg_tilemap->draw(screen, bitmap, fg_clip, 1, 1); locomotn_draw_bullets(bitmap, cliprect, TRUE); - locomotn_draw_sprites(bitmap, cliprect, 0); + locomotn_draw_sprites(screen, bitmap, cliprect, 0); locomotn_draw_bullets(bitmap, cliprect, FALSE); if (m_stars_enable) diff --git a/src/mame/video/rastan.c b/src/mame/video/rastan.c index 5e40d59c53a..4cdcbd40c94 100644 --- a/src/mame/video/rastan.c +++ b/src/mame/video/rastan.c @@ -37,11 +37,11 @@ UINT32 rastan_state::screen_update_rastan(screen_device &screen, bitmap_ind16 &b layer[0] = 0; layer[1] = 1; - machine().priority_bitmap.fill(0, cliprect); + screen.priority().fill(0, cliprect); - m_pc080sn->tilemap_draw(bitmap, cliprect, layer[0], TILEMAP_DRAW_OPAQUE, 1); - m_pc080sn->tilemap_draw(bitmap, cliprect, layer[1], 0, 2); + m_pc080sn->tilemap_draw(screen, bitmap, cliprect, layer[0], TILEMAP_DRAW_OPAQUE, 1); + m_pc080sn->tilemap_draw(screen, bitmap, cliprect, layer[1], 0, 2); - m_pc090oj->draw_sprites(bitmap, cliprect, 0); + m_pc090oj->draw_sprites(bitmap, cliprect, screen.priority(), 0); return 0; } diff --git a/src/mame/video/realbrk.c b/src/mame/video/realbrk.c index 61df4474e3d..af6a665b98b 100644 --- a/src/mame/video/realbrk.c +++ b/src/mame/video/realbrk.c @@ -511,12 +511,12 @@ if ( machine().input().code_pressed(KEYCODE_Z) ) else bitmap.fill(m_vregs[0xc/2] & 0x7fff, cliprect); - if (layers_ctrl & 2) m_tilemap_1->draw(bitmap, cliprect, 0,0); - if (layers_ctrl & 1) m_tilemap_0->draw(bitmap, cliprect, 0,0); + if (layers_ctrl & 2) m_tilemap_1->draw(screen, bitmap, cliprect, 0,0); + if (layers_ctrl & 1) m_tilemap_0->draw(screen, bitmap, cliprect, 0,0); if (layers_ctrl & 8) draw_sprites(bitmap,cliprect); - if (layers_ctrl & 4) m_tilemap_2->draw(bitmap, cliprect, 0,0); + if (layers_ctrl & 4) m_tilemap_2->draw(screen, bitmap, cliprect, 0,0); // popmessage("%04x",m_vregs[0x8/2]); return 0; @@ -588,9 +588,9 @@ if ( machine().input().code_pressed(KEYCODE_Z) ) // bglow if( m_vregs[8/2] & (0x8000)){ - if (layers_ctrl & 1) m_tilemap_0->draw(bitmap, cliprect, 0,0); + if (layers_ctrl & 1) m_tilemap_0->draw(screen, bitmap, cliprect, 0,0); } else { - if (layers_ctrl & 2) m_tilemap_1->draw(bitmap, cliprect, 0,0); + if (layers_ctrl & 2) m_tilemap_1->draw(screen, bitmap, cliprect, 0,0); } // spr 1 @@ -598,16 +598,16 @@ if ( machine().input().code_pressed(KEYCODE_Z) ) // bghigh if( m_vregs[8/2] & (0x8000)){ - if (layers_ctrl & 2) m_tilemap_1->draw(bitmap, cliprect, 0,0); + if (layers_ctrl & 2) m_tilemap_1->draw(screen, bitmap, cliprect, 0,0); } else { - if (layers_ctrl & 1) m_tilemap_0->draw(bitmap, cliprect, 0,0); + if (layers_ctrl & 1) m_tilemap_0->draw(screen, bitmap, cliprect, 0,0); } // spr 2 if (layers_ctrl & 8) dai2kaku_draw_sprites(bitmap,cliprect,0); // fix - if (layers_ctrl & 4) m_tilemap_2->draw(bitmap, cliprect, 0,0); + if (layers_ctrl & 4) m_tilemap_2->draw(screen, bitmap, cliprect, 0,0); // usrintf_showmessage("%04x",m_vregs[0x8/2]); return 0; diff --git a/src/mame/video/redclash.c b/src/mame/video/redclash.c index 62b169cd153..1d1288b08ba 100644 --- a/src/mame/video/redclash.c +++ b/src/mame/video/redclash.c @@ -409,6 +409,6 @@ UINT32 ladybug_state::screen_update_redclash(screen_device &screen, bitmap_ind16 redclash_draw_stars(bitmap, cliprect, 0x60, 0, 0x00, 0xff); redclash_draw_sprites(bitmap, cliprect); redclash_draw_bullets(bitmap, cliprect); - m_fg_tilemap->draw(bitmap, cliprect, 0, 0); + m_fg_tilemap->draw(screen, bitmap, cliprect, 0, 0); return 0; } diff --git a/src/mame/video/relief.c b/src/mame/video/relief.c index e0914b37d60..c3b862d1f1b 100644 --- a/src/mame/video/relief.c +++ b/src/mame/video/relief.c @@ -97,10 +97,10 @@ UINT32 relief_state::screen_update_relief(screen_device &screen, bitmap_ind16 &b m_vad->mob()->draw_async(cliprect); /* draw the playfield */ - bitmap_ind8 &priority_bitmap = machine().priority_bitmap; + bitmap_ind8 &priority_bitmap = screen.priority(); priority_bitmap.fill(0, cliprect); - m_vad->playfield()->draw(bitmap, cliprect, 0, 0); - m_vad->playfield2()->draw(bitmap, cliprect, 0, 1); + m_vad->playfield()->draw(screen, bitmap, cliprect, 0, 0); + m_vad->playfield2()->draw(screen, bitmap, cliprect, 0, 1); // draw and merge the MO bitmap_ind16 &mobitmap = m_vad->mob()->bitmap(); diff --git a/src/mame/video/renegade.c b/src/mame/video/renegade.c index 1a67c547b2f..13023491213 100644 --- a/src/mame/video/renegade.c +++ b/src/mame/video/renegade.c @@ -126,8 +126,8 @@ void renegade_state::draw_sprites(bitmap_ind16 &bitmap, const rectangle &cliprec UINT32 renegade_state::screen_update_renegade(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect) { m_bg_tilemap->set_scrollx(0, m_scrollx); - m_bg_tilemap->draw(bitmap, cliprect, 0 , 0); + m_bg_tilemap->draw(screen, bitmap, cliprect, 0 , 0); draw_sprites(bitmap, cliprect); - m_fg_tilemap->draw(bitmap, cliprect, 0 , 0); + m_fg_tilemap->draw(screen, bitmap, cliprect, 0 , 0); return 0; } diff --git a/src/mame/video/retofinv.c b/src/mame/video/retofinv.c index 36c92a93b18..be1f8fdb906 100644 --- a/src/mame/video/retofinv.c +++ b/src/mame/video/retofinv.c @@ -221,8 +221,8 @@ void retofinv_state::draw_sprites(bitmap_ind16 &bitmap) UINT32 retofinv_state::screen_update_retofinv(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect) { - m_bg_tilemap->draw(bitmap, cliprect, 0,0); + m_bg_tilemap->draw(screen, bitmap, cliprect, 0,0); draw_sprites(bitmap); - m_fg_tilemap->draw(bitmap, cliprect, 0,0); + m_fg_tilemap->draw(screen, bitmap, cliprect, 0,0); return 0; } diff --git a/src/mame/video/rockrage.c b/src/mame/video/rockrage.c index 0751bcb2634..5002ff7da8b 100644 --- a/src/mame/video/rockrage.c +++ b/src/mame/video/rockrage.c @@ -101,10 +101,10 @@ UINT32 rockrage_state::screen_update_rockrage(screen_device &screen, bitmap_ind1 m_k007342->tilemap_update(); - m_k007342->tilemap_draw(bitmap, cliprect, 0, TILEMAP_DRAW_OPAQUE, 0); + m_k007342->tilemap_draw(screen, bitmap, cliprect, 0, TILEMAP_DRAW_OPAQUE, 0); m_k007420->sprites_draw(bitmap, cliprect, machine().gfx[1]); - m_k007342->tilemap_draw(bitmap, cliprect, 0, 1 | TILEMAP_DRAW_OPAQUE, 0); - m_k007342->tilemap_draw(bitmap, cliprect, 1, 0, 0); - m_k007342->tilemap_draw(bitmap, cliprect, 1, 1, 0); + m_k007342->tilemap_draw(screen, bitmap, cliprect, 0, 1 | TILEMAP_DRAW_OPAQUE, 0); + m_k007342->tilemap_draw(screen, bitmap, cliprect, 1, 0, 0); + m_k007342->tilemap_draw(screen, bitmap, cliprect, 1, 1, 0); return 0; } diff --git a/src/mame/video/rocnrope.c b/src/mame/video/rocnrope.c index eb2e03b67ce..f8f76772d4f 100644 --- a/src/mame/video/rocnrope.c +++ b/src/mame/video/rocnrope.c @@ -140,7 +140,7 @@ void rocnrope_state::draw_sprites(bitmap_ind16 &bitmap, const rectangle &cliprec UINT32 rocnrope_state::screen_update_rocnrope(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect) { - m_bg_tilemap->draw(bitmap, cliprect, 0, 0); + m_bg_tilemap->draw(screen, bitmap, cliprect, 0, 0); draw_sprites(bitmap, cliprect); return 0; } diff --git a/src/mame/video/rohga.c b/src/mame/video/rohga.c index a20c8f01a91..66aa2bd309f 100644 --- a/src/mame/video/rohga.c +++ b/src/mame/video/rohga.c @@ -72,7 +72,7 @@ UINT32 rohga_state::screen_update_rohga(screen_device &screen, bitmap_ind16 &bit m_deco_tilegen2->pf_update(m_pf3_rowscroll, m_pf4_rowscroll); /* Draw playfields */ - machine().priority_bitmap.fill(0, cliprect); + screen.priority().fill(0, cliprect); bitmap.fill(machine().pens[768], cliprect); switch (priority & 3) @@ -81,30 +81,30 @@ UINT32 rohga_state::screen_update_rohga(screen_device &screen, bitmap_ind16 &bit if (priority & 4) { // Draw as 1 8BPP layer - m_deco_tilegen2->tilemap_12_combine_draw(bitmap, cliprect, TILEMAP_DRAW_OPAQUE, 3); + m_deco_tilegen2->tilemap_12_combine_draw(screen, bitmap, cliprect, TILEMAP_DRAW_OPAQUE, 3); } else { // Draw as 2 4BPP layers - m_deco_tilegen2->tilemap_2_draw(bitmap, cliprect, TILEMAP_DRAW_OPAQUE, 1); - m_deco_tilegen2->tilemap_1_draw(bitmap, cliprect, 0, 2); + m_deco_tilegen2->tilemap_2_draw(screen, bitmap, cliprect, TILEMAP_DRAW_OPAQUE, 1); + m_deco_tilegen2->tilemap_1_draw(screen, bitmap, cliprect, 0, 2); } - m_deco_tilegen1->tilemap_2_draw(bitmap, cliprect, 0, 4); + m_deco_tilegen1->tilemap_2_draw(screen, bitmap, cliprect, 0, 4); break; case 1: - m_deco_tilegen2->tilemap_2_draw(bitmap, cliprect, TILEMAP_DRAW_OPAQUE, 1); - m_deco_tilegen1->tilemap_2_draw(bitmap, cliprect, 0, 2); - m_deco_tilegen2->tilemap_1_draw(bitmap, cliprect, 0, 4); + m_deco_tilegen2->tilemap_2_draw(screen, bitmap, cliprect, TILEMAP_DRAW_OPAQUE, 1); + m_deco_tilegen1->tilemap_2_draw(screen, bitmap, cliprect, 0, 2); + m_deco_tilegen2->tilemap_1_draw(screen, bitmap, cliprect, 0, 4); break; case 2: - m_deco_tilegen1->tilemap_2_draw(bitmap, cliprect, TILEMAP_DRAW_OPAQUE, 1); - m_deco_tilegen2->tilemap_2_draw(bitmap, cliprect, 0, 2); - m_deco_tilegen2->tilemap_1_draw(bitmap, cliprect, 0, 4); + m_deco_tilegen1->tilemap_2_draw(screen, bitmap, cliprect, TILEMAP_DRAW_OPAQUE, 1); + m_deco_tilegen2->tilemap_2_draw(screen, bitmap, cliprect, 0, 2); + m_deco_tilegen2->tilemap_1_draw(screen, bitmap, cliprect, 0, 4); break; } m_sprgen1->draw_sprites(bitmap, cliprect, m_spriteram->buffer(), 0x400, true); - m_deco_tilegen1->tilemap_1_draw(bitmap, cliprect, 0, 0); + m_deco_tilegen1->tilemap_1_draw(screen, bitmap, cliprect, 0, 0); return 0; } @@ -181,21 +181,21 @@ UINT32 rohga_state::screen_update_wizdfire(screen_device &screen, bitmap_rgb32 & /* Draw playfields - Palette of 2nd playfield chip visible if playfields turned off */ bitmap.fill(machine().pens[512], cliprect); - m_deco_tilegen2->tilemap_2_draw(bitmap, cliprect, TILEMAP_DRAW_OPAQUE, 0); + m_deco_tilegen2->tilemap_2_draw(screen, bitmap, cliprect, TILEMAP_DRAW_OPAQUE, 0); m_sprgen1->inefficient_copy_sprite_bitmap(bitmap, cliprect, 0x0600, 0x0600, 0x400, 0x1ff); - m_deco_tilegen1->tilemap_2_draw(bitmap, cliprect, 0, 0); + m_deco_tilegen1->tilemap_2_draw(screen, bitmap, cliprect, 0, 0); m_sprgen1->inefficient_copy_sprite_bitmap(bitmap, cliprect, 0x0400, 0x0600, 0x400, 0x1ff); if ((priority & 0x1f) == 0x1f) /* Wizdfire has bit 0x40 always set, Dark Seal 2 doesn't?! */ - m_deco_tilegen2->tilemap_1_draw(bitmap, cliprect, TILEMAP_DRAW_ALPHA(0x80), 0); + m_deco_tilegen2->tilemap_1_draw(screen, bitmap, cliprect, TILEMAP_DRAW_ALPHA(0x80), 0); else - m_deco_tilegen2->tilemap_1_draw(bitmap, cliprect, 0, 0); + m_deco_tilegen2->tilemap_1_draw(screen, bitmap, cliprect, 0, 0); m_sprgen1->inefficient_copy_sprite_bitmap(bitmap, cliprect, 0x0000, 0x0400, 0x400, 0x1ff); // 0x000 and 0x200 of 0x600 mixwizdfirelayer(bitmap, cliprect, 4, 0x000, 0x000); - m_deco_tilegen1->tilemap_1_draw(bitmap, cliprect, 0, 0); + m_deco_tilegen1->tilemap_1_draw(screen, bitmap, cliprect, 0, 0); return 0; } @@ -217,18 +217,18 @@ UINT32 rohga_state::screen_update_nitrobal(screen_device &screen, bitmap_rgb32 & /* Draw playfields - Palette of 2nd playfield chip visible if playfields turned off */ bitmap.fill(machine().pens[512], cliprect); - machine().priority_bitmap.fill(0); + screen.priority().fill(0); /* pf3 and pf4 are combined into a single 8bpp bitmap */ - m_deco_tilegen2->tilemap_12_combine_draw(bitmap, cliprect, TILEMAP_DRAW_OPAQUE, 0); + m_deco_tilegen2->tilemap_12_combine_draw(screen, bitmap, cliprect, TILEMAP_DRAW_OPAQUE, 0); - m_deco_tilegen1->tilemap_2_draw(bitmap, cliprect, 0, 16); + m_deco_tilegen1->tilemap_2_draw(screen, bitmap, cliprect, 0, 16); /* ToDo reimplement priorities + mixing / alpha, it was busted worse than this before anyway, so no big loss that we don't do it for now ;-) */ m_sprgen2->inefficient_copy_sprite_bitmap(bitmap, cliprect, 0x0000, 0x0000, 0x600, 0xff); m_sprgen1->inefficient_copy_sprite_bitmap(bitmap, cliprect, 0x0000, 0x0000, 0x400, 0x1ff); - m_deco_tilegen1->tilemap_1_draw(bitmap, cliprect, 0, 0); + m_deco_tilegen1->tilemap_1_draw(screen, bitmap, cliprect, 0, 0); return 0; } diff --git a/src/mame/video/rollerg.c b/src/mame/video/rollerg.c index fe8959a0729..7a53e30facb 100644 --- a/src/mame/video/rollerg.c +++ b/src/mame/video/rollerg.c @@ -61,9 +61,9 @@ UINT32 rollerg_state::screen_update_rollerg(screen_device &screen, bitmap_ind16 { int bg_colorbase = 16; - machine().priority_bitmap.fill(0, cliprect); + screen.priority().fill(0, cliprect); bitmap.fill(16 * bg_colorbase, cliprect); - m_k051316->zoom_draw(bitmap, cliprect, 0, 1); - m_k053244->k053245_sprites_draw(bitmap, cliprect); + m_k051316->zoom_draw(screen, bitmap, cliprect, 0, 1); + m_k053244->k053245_sprites_draw(bitmap, cliprect, screen.priority()); return 0; } diff --git a/src/mame/video/rpunch.c b/src/mame/video/rpunch.c index 1d4a483d4b1..a708eacfb4d 100644 --- a/src/mame/video/rpunch.c +++ b/src/mame/video/rpunch.c @@ -267,9 +267,9 @@ UINT32 rpunch_state::screen_update_rpunch(screen_device &screen, bitmap_ind16 &b /* this seems like the most plausible explanation */ effbins = (m_bins > m_gins) ? m_gins : m_bins; - m_background[0]->draw(bitmap, cliprect, 0,0); + m_background[0]->draw(screen, bitmap, cliprect, 0,0); draw_sprites(bitmap, cliprect, 0, effbins); - m_background[1]->draw(bitmap, cliprect, 0,0); + m_background[1]->draw(screen, bitmap, cliprect, 0,0); draw_sprites(bitmap, cliprect, effbins, m_gins); if (m_bitmapram) draw_bitmap(bitmap, cliprect); diff --git a/src/mame/video/runaway.c b/src/mame/video/runaway.c index a53069a4a98..b5490cf0e7a 100644 --- a/src/mame/video/runaway.c +++ b/src/mame/video/runaway.c @@ -87,7 +87,7 @@ UINT32 runaway_state::screen_update_runaway(screen_device &screen, bitmap_ind16 { int i; - m_bg_tilemap->draw(bitmap, cliprect, 0, 0); + m_bg_tilemap->draw(screen, bitmap, cliprect, 0, 0); for (i = 0; i < 16; i++) { @@ -121,7 +121,7 @@ UINT32 runaway_state::screen_update_qwak(screen_device &screen, bitmap_ind16 &bi { int i; - m_bg_tilemap->draw(bitmap, cliprect, 0, 0); + m_bg_tilemap->draw(screen, bitmap, cliprect, 0, 0); for (i = 0; i < 16; i++) { diff --git a/src/mame/video/rungun.c b/src/mame/video/rungun.c index 4a3c189f058..73f97a5aeff 100644 --- a/src/mame/video/rungun.c +++ b/src/mame/video/rungun.c @@ -100,13 +100,13 @@ void rungun_state::video_start() UINT32 rungun_state::screen_update_rng(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect) { bitmap.fill(get_black_pen(machine()), cliprect); - machine().priority_bitmap.fill(0, cliprect); + screen.priority().fill(0, cliprect); - m_k053936->zoom_draw(bitmap, cliprect, m_936_tilemap, 0, 0, 1); + m_k053936->zoom_draw(screen, bitmap, cliprect, m_936_tilemap, 0, 0, 1); m_k055673->k053247_sprites_draw(bitmap, cliprect); m_ttl_tilemap->mark_all_dirty(); - m_ttl_tilemap->draw(bitmap, cliprect, 0, 0); + m_ttl_tilemap->draw(screen, bitmap, cliprect, 0, 0); return 0; } diff --git a/src/mame/video/sauro.c b/src/mame/video/sauro.c index ef02c8acabf..532b99e7b1a 100644 --- a/src/mame/video/sauro.c +++ b/src/mame/video/sauro.c @@ -138,8 +138,8 @@ void sauro_state::sauro_draw_sprites(bitmap_ind16 &bitmap, const rectangle &clip UINT32 sauro_state::screen_update_sauro(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect) { - m_bg_tilemap->draw(bitmap, cliprect, 0, 0); - m_fg_tilemap->draw(bitmap, cliprect, 0, 0); + m_bg_tilemap->draw(screen, bitmap, cliprect, 0, 0); + m_fg_tilemap->draw(screen, bitmap, cliprect, 0, 0); sauro_draw_sprites(bitmap, cliprect); return 0; } @@ -209,7 +209,7 @@ void sauro_state::trckydoc_draw_sprites(bitmap_ind16 &bitmap, const rectangle &c UINT32 sauro_state::screen_update_trckydoc(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect) { - m_bg_tilemap->draw(bitmap, cliprect, 0, 0); + m_bg_tilemap->draw(screen, bitmap, cliprect, 0, 0); trckydoc_draw_sprites(bitmap, cliprect); return 0; } diff --git a/src/mame/video/sbasketb.c b/src/mame/video/sbasketb.c index 11f5c7f1510..181a0f47131 100644 --- a/src/mame/video/sbasketb.c +++ b/src/mame/video/sbasketb.c @@ -173,7 +173,7 @@ UINT32 sbasketb_state::screen_update_sbasketb(screen_device &screen, bitmap_ind1 for (col = 6; col < 32; col++) m_bg_tilemap->set_scrolly(col, *m_scroll); - m_bg_tilemap->draw(bitmap, cliprect, 0, 0); + m_bg_tilemap->draw(screen, bitmap, cliprect, 0, 0); draw_sprites(bitmap, cliprect); return 0; } diff --git a/src/mame/video/sbugger.c b/src/mame/video/sbugger.c index 1c8236ef6e6..817e97ee5a5 100644 --- a/src/mame/video/sbugger.c +++ b/src/mame/video/sbugger.c @@ -32,7 +32,7 @@ void sbugger_state::video_start() UINT32 sbugger_state::screen_update_sbugger(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect) { - m_tilemap->draw(bitmap, cliprect, 0,0); + m_tilemap->draw(screen, bitmap, cliprect, 0,0); return 0; } diff --git a/src/mame/video/scotrsht.c b/src/mame/video/scotrsht.c index a653ac18f3f..2598d9452a4 100644 --- a/src/mame/video/scotrsht.c +++ b/src/mame/video/scotrsht.c @@ -134,7 +134,7 @@ UINT32 scotrsht_state::screen_update_scotrsht(screen_device &screen, bitmap_ind1 for (col = 0; col < 32; col++) m_bg_tilemap->set_scrolly(col, m_scroll[col]); - m_bg_tilemap->draw(bitmap, cliprect, 0, 0); + m_bg_tilemap->draw(screen, bitmap, cliprect, 0, 0); draw_sprites(bitmap, cliprect); return 0; } diff --git a/src/mame/video/sderby.c b/src/mame/video/sderby.c index bfbf575823a..7635ffc278d 100644 --- a/src/mame/video/sderby.c +++ b/src/mame/video/sderby.c @@ -98,19 +98,19 @@ void sderby_state::video_start() UINT32 sderby_state::screen_update_sderby(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect) { - m_tilemap->draw(bitmap, cliprect, 0,0); + m_tilemap->draw(screen, bitmap, cliprect, 0,0); draw_sprites(bitmap,cliprect,0); - m_md_tilemap->draw(bitmap, cliprect, 0,0); - m_fg_tilemap->draw(bitmap, cliprect, 0,0); + m_md_tilemap->draw(screen, bitmap, cliprect, 0,0); + m_fg_tilemap->draw(screen, bitmap, cliprect, 0,0); return 0; } UINT32 sderby_state::screen_update_pmroulet(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect) { - m_tilemap->draw(bitmap, cliprect, 0,0); - m_md_tilemap->draw(bitmap, cliprect, 0,0); + m_tilemap->draw(screen, bitmap, cliprect, 0,0); + m_md_tilemap->draw(screen, bitmap, cliprect, 0,0); draw_sprites(bitmap,cliprect,0); - m_fg_tilemap->draw(bitmap, cliprect, 0,0); + m_fg_tilemap->draw(screen, bitmap, cliprect, 0,0); return 0; } diff --git a/src/mame/video/segahang.c b/src/mame/video/segahang.c index 11a6d462139..2a81f7bd5ff 100644 --- a/src/mame/video/segahang.c +++ b/src/mame/video/segahang.c @@ -71,7 +71,7 @@ UINT32 segahang_state::screen_update(screen_device &screen, bitmap_ind16 &bitmap m_sprites->draw_async(cliprect); // reset priorities - machine().priority_bitmap.fill(0, cliprect); + screen.priority().fill(0, cliprect); // draw the low priority road layer m_segaic16road->segaic16_road_draw(0, bitmap, cliprect, SEGAIC16_ROAD_BACKGROUND); @@ -100,7 +100,7 @@ UINT32 segahang_state::screen_update(screen_device &screen, bitmap_ind16 &bitmap { UINT16 *dest = &bitmap.pix(y); UINT16 *src = &sprites.pix(y); - UINT8 *pri = &machine().priority_bitmap.pix(y); + UINT8 *pri = &screen.priority().pix(y); // hangon mixing if (!m_sharrier_video) diff --git a/src/mame/video/segaic16.c b/src/mame/video/segaic16.c index 2859fc0b017..f2e21258bee 100644 --- a/src/mame/video/segaic16.c +++ b/src/mame/video/segaic16.c @@ -404,12 +404,12 @@ void segaic16_video_device::device_reset() * *************************************/ -void segaic16_video_device::segaic16_set_display_enable(running_machine &machine, int enable) +void segaic16_video_device::segaic16_set_display_enable(screen_device &screen, int enable) { enable = (enable != 0); if (segaic16_display_enable != enable) { - machine.primary_screen->update_partial(machine.primary_screen->vpos()); + screen.update_partial(screen.vpos()); segaic16_display_enable = enable; } } @@ -423,15 +423,15 @@ void segaic16_video_device::segaic16_set_display_enable(running_machine &machine * *************************************/ -void segaic16_draw_virtual_tilemap(running_machine &machine, struct tilemap_info *info, bitmap_ind16 &bitmap, const rectangle &cliprect, UINT16 pages, UINT16 xscroll, UINT16 yscroll, UINT32 flags, UINT32 priority) +void segaic16_draw_virtual_tilemap(screen_device &screen, struct tilemap_info *info, bitmap_ind16 &bitmap, const rectangle &cliprect, UINT16 pages, UINT16 xscroll, UINT16 yscroll, UINT32 flags, UINT32 priority) { int leftmin = -1, leftmax = -1, rightmin = -1, rightmax = -1; int topmin = -1, topmax = -1, bottommin = -1, bottommax = -1; rectangle pageclip; int page; - int width = machine.primary_screen->width(); - int height = machine.primary_screen->height(); + int width = screen.width(); + int height = screen.height(); /* which half/halves of the virtual tilemap do we intersect in the X direction? */ if (xscroll < 64*8 - width) @@ -530,7 +530,7 @@ void segaic16_draw_virtual_tilemap(running_machine &machine, struct tilemap_info page = (pages >> 0) & 0xf; info->tilemaps[page]->set_scrollx(0, xscroll); info->tilemaps[page]->set_scrolly(0, yscroll); - info->tilemaps[page]->draw(bitmap, pageclip, flags, priority); + info->tilemaps[page]->draw(screen, bitmap, pageclip, flags, priority); } } @@ -546,7 +546,7 @@ void segaic16_draw_virtual_tilemap(running_machine &machine, struct tilemap_info page = (pages >> 4) & 0xf; info->tilemaps[page]->set_scrollx(0, xscroll); info->tilemaps[page]->set_scrolly(0, yscroll); - info->tilemaps[page]->draw(bitmap, pageclip, flags, priority); + info->tilemaps[page]->draw(screen, bitmap, pageclip, flags, priority); } } @@ -562,7 +562,7 @@ void segaic16_draw_virtual_tilemap(running_machine &machine, struct tilemap_info page = (pages >> 8) & 0xf; info->tilemaps[page]->set_scrollx(0, xscroll); info->tilemaps[page]->set_scrolly(0, yscroll); - info->tilemaps[page]->draw(bitmap, pageclip, flags, priority); + info->tilemaps[page]->draw(screen, bitmap, pageclip, flags, priority); } } @@ -578,7 +578,7 @@ void segaic16_draw_virtual_tilemap(running_machine &machine, struct tilemap_info page = (pages >> 12) & 0xf; info->tilemaps[page]->set_scrollx(0, xscroll); info->tilemaps[page]->set_scrolly(0, yscroll); - info->tilemaps[page]->draw(bitmap, pageclip, flags, priority); + info->tilemaps[page]->draw(screen, bitmap, pageclip, flags, priority); } } } @@ -649,7 +649,7 @@ TILE_GET_INFO_MEMBER( segaic16_video_device::segaic16_tilemap_16a_text_info ) } -void segaic16_tilemap_16a_draw_layer(running_machine &machine, struct tilemap_info *info, bitmap_ind16 &bitmap, const rectangle &cliprect, int which, int flags, int priority) +void segaic16_tilemap_16a_draw_layer(screen_device &screen, struct tilemap_info *info, bitmap_ind16 &bitmap, const rectangle &cliprect, int which, int flags, int priority) { UINT16 *textram = info->textram; @@ -700,7 +700,7 @@ void segaic16_tilemap_16a_draw_layer(running_machine &machine, struct tilemap_in /* draw the chunk */ effxscroll = (0xc8 - effxscroll + info->xoffs) & 0x3ff; effyscroll = effyscroll & 0x1ff; - segaic16_draw_virtual_tilemap(machine, info, bitmap, rowcolclip, pages, effxscroll, effyscroll, flags, priority); + segaic16_draw_virtual_tilemap(screen, info, bitmap, rowcolclip, pages, effxscroll, effyscroll, flags, priority); } } } @@ -729,7 +729,7 @@ void segaic16_tilemap_16a_draw_layer(running_machine &machine, struct tilemap_in /* draw the chunk */ effxscroll = (0xc8 - effxscroll + info->xoffs) & 0x3ff; effyscroll = effyscroll & 0x1ff; - segaic16_draw_virtual_tilemap(machine, info, bitmap, colclip, pages, effxscroll, effyscroll, flags, priority); + segaic16_draw_virtual_tilemap(screen, info, bitmap, colclip, pages, effxscroll, effyscroll, flags, priority); } } else if (info->rowscroll) @@ -758,7 +758,7 @@ void segaic16_tilemap_16a_draw_layer(running_machine &machine, struct tilemap_in /* draw the chunk */ effxscroll = (0xc8 - effxscroll + info->xoffs) & 0x3ff; effyscroll = effyscroll & 0x1ff; - segaic16_draw_virtual_tilemap(machine, info, bitmap, rowclip, pages, effxscroll, effyscroll, flags, priority); + segaic16_draw_virtual_tilemap(screen, info, bitmap, rowclip, pages, effxscroll, effyscroll, flags, priority); } } else @@ -768,7 +768,7 @@ void segaic16_tilemap_16a_draw_layer(running_machine &machine, struct tilemap_in xscroll += 17; xscroll = (0xc8 - xscroll + info->xoffs) & 0x3ff; yscroll = yscroll & 0x1ff; - segaic16_draw_virtual_tilemap(machine, info, bitmap, cliprect, pages, xscroll, yscroll, flags, priority); + segaic16_draw_virtual_tilemap(screen, info, bitmap, cliprect, pages, xscroll, yscroll, flags, priority); } } @@ -891,7 +891,7 @@ TILE_GET_INFO_MEMBER( segaic16_video_device::segaic16_tilemap_16b_alt_text_info } -void segaic16_tilemap_16b_draw_layer(running_machine &machine, struct tilemap_info *info, bitmap_ind16 &bitmap, const rectangle &cliprect, int which, int flags, int priority) +void segaic16_tilemap_16b_draw_layer(screen_device &screen, struct tilemap_info *info, bitmap_ind16 &bitmap, const rectangle &cliprect, int which, int flags, int priority) { UINT16 *textram = info->textram; UINT16 xscroll, yscroll, pages; @@ -943,7 +943,7 @@ void segaic16_tilemap_16b_draw_layer(running_machine &machine, struct tilemap_in /* draw the chunk */ effxscroll = (0xc0 - effxscroll + info->xoffs) & 0x3ff; effyscroll = effyscroll & 0x1ff; - segaic16_draw_virtual_tilemap(machine, info, bitmap, rowcolclip, effpages, effxscroll, effyscroll, flags, priority); + segaic16_draw_virtual_tilemap(screen, info, bitmap, rowcolclip, effpages, effxscroll, effyscroll, flags, priority); } } } @@ -979,7 +979,7 @@ void segaic16_tilemap_16b_draw_layer(running_machine &machine, struct tilemap_in /* draw the chunk */ effxscroll = (0xc0 - effxscroll + info->xoffs) & 0x3ff; effyscroll = effyscroll & 0x1ff; - segaic16_draw_virtual_tilemap(machine, info, bitmap, rowclip, effpages, effxscroll, effyscroll, flags, priority); + segaic16_draw_virtual_tilemap(screen, info, bitmap, rowclip, effpages, effxscroll, effyscroll, flags, priority); } } } @@ -1004,10 +1004,10 @@ TIMER_CALLBACK_MEMBER( segaic16_video_device::segaic16_tilemap_16b_latch_values } -void segaic16_tilemap_16b_reset(running_machine &machine, struct tilemap_info *info) +void segaic16_tilemap_16b_reset(screen_device &screen, struct tilemap_info *info) { /* set a timer to latch values on scanline 261 */ - info->latch_timer->adjust(machine.primary_screen->time_until_pos(261), info->index); + info->latch_timer->adjust(screen.time_until_pos(261), info->index); } @@ -1131,16 +1131,15 @@ void segaic16_video_device::segaic16_tilemap_init(running_machine &machine, int void segaic16_video_device::segaic16_tilemap_draw(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect, int which, int map, int priority, int priority_mark) { - running_machine &machine = screen.machine(); struct tilemap_info *info = &bg_tilemap[which]; /* text layer is a special common case */ if (map == SEGAIC16_TILEMAP_TEXT) - info->textmap->draw(bitmap, cliprect, priority, priority_mark); + info->textmap->draw(screen, bitmap, cliprect, priority, priority_mark); /* other layers are handled differently per-system */ else - (*info->draw_layer)(machine, info, bitmap, cliprect, map, priority, priority_mark); + (*info->draw_layer)(screen, info, bitmap, cliprect, map, priority, priority_mark); } @@ -1151,12 +1150,12 @@ void segaic16_video_device::segaic16_tilemap_draw(screen_device &screen, bitmap_ * *************************************/ -void segaic16_video_device::segaic16_tilemap_reset(running_machine &machine, int which) +void segaic16_video_device::segaic16_tilemap_reset(screen_device &screen) { - struct tilemap_info *info = &bg_tilemap[which]; + struct tilemap_info *info = &bg_tilemap[0]; if (info->reset) - (*info->reset)(machine, info); + (*info->reset)(screen, info); } @@ -1343,7 +1342,7 @@ void segaic16_video_device::segaic16_rotate_init(running_machine &machine, int w * *************************************/ -void segaic16_video_device::segaic16_rotate_draw(running_machine &machine, int which, bitmap_ind16 &bitmap, const rectangle &cliprect, bitmap_ind16 &srcbitmap) +void segaic16_video_device::segaic16_rotate_draw(int which, bitmap_ind16 &bitmap, const rectangle &cliprect, bitmap_ind8 &priority_bitmap, bitmap_ind16 &srcbitmap) { struct rotate_info *info = &segaic16_rotate[which]; INT32 currx = (info->buffer[0x3f0] << 16) | info->buffer[0x3f1]; @@ -1363,7 +1362,7 @@ void segaic16_video_device::segaic16_rotate_draw(running_machine &machine, int w { UINT16 *dest = &bitmap.pix16(y); UINT16 *src = &srcbitmap.pix16(0); - UINT8 *pri = &machine.priority_bitmap.pix8(y); + UINT8 *pri = &priority_bitmap.pix8(y); INT32 tx = currx; INT32 ty = curry; diff --git a/src/mame/video/segaic16.h b/src/mame/video/segaic16.h index 5c0d3f624be..aa43147f61f 100644 --- a/src/mame/video/segaic16.h +++ b/src/mame/video/segaic16.h @@ -64,8 +64,8 @@ struct tilemap_info tilemap_t * textmap; /* a single text tilemap */ struct tilemap_callback_info tmap_info[16]; /* callback info for 16 tilemap pages */ struct tilemap_callback_info textmap_info; /* callback info for a single textmap page */ - void (*reset)(running_machine &machine, struct tilemap_info *info);/* reset callback */ - void (*draw_layer)(running_machine &machine, struct tilemap_info *info, bitmap_ind16 &bitmap, const rectangle &cliprect, int which, int flags, int priority); + void (*reset)(screen_device &screen, struct tilemap_info *info);/* reset callback */ + void (*draw_layer)(screen_device &screen, struct tilemap_info *info, bitmap_ind16 &bitmap, const rectangle &cliprect, int which, int flags, int priority); UINT16 * textram; /* pointer to textram pointer */ UINT16 * tileram; /* pointer to tileram pointer */ emu_timer * latch_timer; /* timer for latching 16b tilemap scroll values */ @@ -104,19 +104,19 @@ public: void segaic16_tilemap_set_rowscroll(running_machine &machine, int which, int enable); void segaic16_tilemap_set_flip(running_machine &machine, int which, int flip); void segaic16_tilemap_set_bank(running_machine &machine, int which, int banknum, int offset); - void segaic16_tilemap_reset(running_machine &machine, int which); + void segaic16_tilemap_reset(screen_device &screen); void segaic16_tilemap_draw(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect, int which, int map, int priority, int priority_mark); -// void segaic16_tilemap_16b_draw_layer(running_machine &machine, struct tilemap_info *info, bitmap_ind16 &bitmap, const rectangle &cliprect, int which, int flags, int priority); -// void segaic16_tilemap_16a_draw_layer(running_machine &machine, struct tilemap_info *info, bitmap_ind16 &bitmap, const rectangle &cliprect, int which, int flags, int priority); -// void segaic16_draw_virtual_tilemap(running_machine &machine, struct tilemap_info *info, bitmap_ind16 &bitmap, const rectangle &cliprect, UINT16 pages, UINT16 xscroll, UINT16 yscroll, UINT32 flags, UINT32 priority); -// void segaic16_tilemap_16b_reset(running_machine &machine, struct tilemap_info *info); +// void segaic16_tilemap_16b_draw_layer(screen_device &screen, struct tilemap_info *info, bitmap_ind16 &bitmap, const rectangle &cliprect, int which, int flags, int priority); +// void segaic16_tilemap_16a_draw_layer(screen_device &screen, struct tilemap_info *info, bitmap_ind16 &bitmap, const rectangle &cliprect, int which, int flags, int priority); +// void segaic16_draw_virtual_tilemap(screen_device &screen, struct tilemap_info *info, bitmap_ind16 &bitmap, const rectangle &cliprect, UINT16 pages, UINT16 xscroll, UINT16 yscroll, UINT32 flags, UINT32 priority); +// void segaic16_tilemap_16b_reset(screen_device &screen, struct tilemap_info *info); TIMER_CALLBACK_MEMBER( segaic16_tilemap_16b_latch_values ); struct rotate_info segaic16_rotate[SEGAIC16_MAX_ROTATE]; struct tilemap_info bg_tilemap[SEGAIC16_MAX_TILEMAPS]; - void segaic16_set_display_enable(running_machine &machine, int enable); + void segaic16_set_display_enable(screen_device &screen, int enable); void segaic16_tilemap_init(running_machine &machine, int which, int type, int colorbase, int xoffs, int numbanks); void segaic16_rotate_init(running_machine &machine, int which, int type, int colorbase); @@ -125,7 +125,7 @@ public: DECLARE_WRITE16_MEMBER( segaic16_tileram_0_w ); DECLARE_WRITE16_MEMBER( segaic16_textram_0_w ); - void segaic16_rotate_draw(running_machine &machine, int which, bitmap_ind16 &bitmap, const rectangle &cliprect, bitmap_ind16 &srcbitmap); + void segaic16_rotate_draw(int which, bitmap_ind16 &bitmap, const rectangle &cliprect, bitmap_ind8 &priority_bitmap, bitmap_ind16 &srcbitmap); DECLARE_READ16_MEMBER( segaic16_rotate_control_0_r ); diff --git a/src/mame/video/segaic24.c b/src/mame/video/segaic24.c index 5f5882b2a8c..f43749e9e83 100644 --- a/src/mame/video/segaic24.c +++ b/src/mame/video/segaic24.c @@ -100,19 +100,19 @@ void segas24_tile::device_start() save_pointer(NAME(char_ram), 0x80000/2); } -void segas24_tile::draw_rect(bitmap_ind16 &bm, bitmap_ind8 &tm, bitmap_ind16 &dm, const UINT16 *mask, +void segas24_tile::draw_rect(screen_device &screen, bitmap_ind16 &bm, bitmap_ind8 &tm, bitmap_ind16 &dm, const UINT16 *mask, UINT16 tpri, UINT8 lpri, int win, int sx, int sy, int xx1, int yy1, int xx2, int yy2) { int y; const UINT16 *source = &bm.pix16(sy, sx); const UINT8 *trans = &tm.pix8(sy, sx); - UINT8 *prib = &machine().priority_bitmap.pix8(0); + UINT8 *prib = &screen.priority().pix8(0); UINT16 *dest = &dm.pix16(0); tpri |= TILEMAP_PIXEL_LAYER0; dest += yy1*dm.rowpixels() + xx1; - prib += yy1*machine().priority_bitmap.rowpixels() + xx1; + prib += yy1*screen.priority().rowpixels() + xx1; mask += yy1*4; yy2 -= yy1; @@ -224,7 +224,7 @@ void segas24_tile::draw_rect(bitmap_ind16 &bm, bitmap_ind8 &tm, bitmap_ind16 &dm source += bm.rowpixels(); trans += tm.rowpixels(); dest += dm.rowpixels(); - prib += machine().priority_bitmap.rowpixels(); + prib += screen.priority().rowpixels(); mask += 4; } } @@ -234,8 +234,8 @@ void segas24_tile::draw_rect(bitmap_ind16 &bm, bitmap_ind8 &tm, bitmap_ind16 &dm // about sprite priority hence the lack of support for the // priority_bitmap -void segas24_tile::draw_rect(bitmap_ind16 &bm, bitmap_ind8 &tm, bitmap_rgb32 &dm, const UINT16 *mask, - UINT16 tpri, UINT8 lpri, int win, int sx, int sy, int xx1, int yy1, int xx2, int yy2) +void segas24_tile::draw_rect(screen_device &screen, bitmap_ind16 &bm, bitmap_ind8 &tm, bitmap_rgb32 &dm, const UINT16 *mask, + UINT16 tpri, UINT8 lpri, int win, int sx, int sy, int xx1, int yy1, int xx2, int yy2) { int y; const UINT16 *source = &bm.pix16(sy, sx); @@ -347,7 +347,7 @@ void segas24_tile::draw_rect(bitmap_ind16 &bm, bitmap_ind8 &tm, bitmap_rgb32 &dm } template -void segas24_tile::draw_common(_BitmapClass &bitmap, const rectangle &cliprect, int layer, int lpri, int flags) +void segas24_tile::draw_common(screen_device &screen, _BitmapClass &bitmap, const rectangle &cliprect, int layer, int lpri, int flags) { UINT16 hscr = tile_ram[0x5000+(layer >> 1)]; UINT16 vscr = tile_ram[0x5004+(layer >> 1)]; @@ -392,7 +392,7 @@ void segas24_tile::draw_common(_BitmapClass &bitmap, const rectangle &cliprect, h = hscr & 0x1ff; tile_layer[l1]->set_scrollx(0, -h); - tile_layer[l1]->draw(bitmap, c, tpri, lpri); + tile_layer[l1]->draw(screen, bitmap, c, tpri, lpri); } break; } @@ -419,8 +419,8 @@ void segas24_tile::draw_common(_BitmapClass &bitmap, const rectangle &cliprect, c1.min_y = c1.max_y = c2.min_y = c2.max_y = y; - tile_layer[l1]->draw(bitmap, c1, tpri, lpri); - tile_layer[l1^1]->draw(bitmap, c2, tpri, lpri); + tile_layer[l1]->draw(screen, bitmap, c1, tpri, lpri); + tile_layer[l1^1]->draw(screen, bitmap, c2, tpri, lpri); } break; } @@ -443,8 +443,8 @@ void segas24_tile::draw_common(_BitmapClass &bitmap, const rectangle &cliprect, if(!((-vscr) & 0x200)) layer ^= 1; - tile_layer[layer]->draw(bitmap, c1, tpri, lpri); - tile_layer[layer^1]->draw(bitmap, c2, tpri, lpri); + tile_layer[layer]->draw(screen, bitmap, c1, tpri, lpri); + tile_layer[layer^1]->draw(screen, bitmap, c2, tpri, lpri); break; } case 2: case 3: { @@ -459,8 +459,8 @@ void segas24_tile::draw_common(_BitmapClass &bitmap, const rectangle &cliprect, if(!((+hscr) & 0x200)) layer ^= 1; - tile_layer[layer]->draw(bitmap, c1, tpri, lpri); - tile_layer[layer^1]->draw(bitmap, c2, tpri, lpri); + tile_layer[layer]->draw(screen, bitmap, c1, tpri, lpri); + tile_layer[layer^1]->draw(screen, bitmap, c2, tpri, lpri); break; } } @@ -481,11 +481,11 @@ void segas24_tile::draw_common(_BitmapClass &bitmap, const rectangle &cliprect, hscr = (-hscrtb[y]) & 0x1ff; if(hscr + 496 <= 512) { // Horizontal split unnecessary - draw_rect(bm, tm, bitmap, mask, tpri, lpri, win, hscr, vscr, 0, y, 496, y+1); + draw_rect(screen, bm, tm, bitmap, mask, tpri, lpri, win, hscr, vscr, 0, y, 496, y+1); } else { // Horizontal split necessary - draw_rect(bm, tm, bitmap, mask, tpri, lpri, win, hscr, vscr, 0, y, 512-hscr, y+1); - draw_rect(bm, tm, bitmap, mask, tpri, lpri, win, 0, vscr, 512-hscr, y, 496, y+1); + draw_rect(screen, bm, tm, bitmap, mask, tpri, lpri, win, hscr, vscr, 0, y, 512-hscr, y+1); + draw_rect(screen, bm, tm, bitmap, mask, tpri, lpri, win, 0, vscr, 512-hscr, y, 496, y+1); } vscr = (vscr + 1) & 0x1ff; } @@ -497,36 +497,36 @@ void segas24_tile::draw_common(_BitmapClass &bitmap, const rectangle &cliprect, // Horizontal split unnecessary if(vscr + 384 <= 512) { // Vertical split unnecessary - draw_rect(bm, tm, bitmap, mask, tpri, lpri, win, hscr, vscr, 0, 0, 496, 384); + draw_rect(screen, bm, tm, bitmap, mask, tpri, lpri, win, hscr, vscr, 0, 0, 496, 384); } else { // Vertical split necessary - draw_rect(bm, tm, bitmap, mask, tpri, lpri, win, hscr, vscr, 0, 0, 496, 512-vscr); - draw_rect(bm, tm, bitmap, mask, tpri, lpri, win, hscr, 0, 0, 512-vscr, 496, 384); + draw_rect(screen, bm, tm, bitmap, mask, tpri, lpri, win, hscr, vscr, 0, 0, 496, 512-vscr); + draw_rect(screen, bm, tm, bitmap, mask, tpri, lpri, win, hscr, 0, 0, 512-vscr, 496, 384); } } else { // Horizontal split necessary if(vscr + 384 <= 512) { // Vertical split unnecessary - draw_rect(bm, tm, bitmap, mask, tpri, lpri, win, hscr, vscr, 0, 0, 512-hscr, 384); - draw_rect(bm, tm, bitmap, mask, tpri, lpri, win, 0, vscr, 512-hscr, 0, 496, 384); + draw_rect(screen, bm, tm, bitmap, mask, tpri, lpri, win, hscr, vscr, 0, 0, 512-hscr, 384); + draw_rect(screen, bm, tm, bitmap, mask, tpri, lpri, win, 0, vscr, 512-hscr, 0, 496, 384); } else { // Vertical split necessary - draw_rect(bm, tm, bitmap, mask, tpri, lpri, win, hscr, vscr, 0, 0, 512-hscr, 512-vscr); - draw_rect(bm, tm, bitmap, mask, tpri, lpri, win, 0, vscr, 512-hscr, 0, 496, 512-vscr); - draw_rect(bm, tm, bitmap, mask, tpri, lpri, win, hscr, 0, 0, 512-vscr, 512-hscr, 384); - draw_rect(bm, tm, bitmap, mask, tpri, lpri, win, 0, 0, 512-hscr, 512-vscr, 496, 384); + draw_rect(screen, bm, tm, bitmap, mask, tpri, lpri, win, hscr, vscr, 0, 0, 512-hscr, 512-vscr); + draw_rect(screen, bm, tm, bitmap, mask, tpri, lpri, win, 0, vscr, 512-hscr, 0, 496, 512-vscr); + draw_rect(screen, bm, tm, bitmap, mask, tpri, lpri, win, hscr, 0, 0, 512-vscr, 512-hscr, 384); + draw_rect(screen, bm, tm, bitmap, mask, tpri, lpri, win, 0, 0, 512-hscr, 512-vscr, 496, 384); } } } } } -void segas24_tile::draw(bitmap_ind16 &bitmap, const rectangle &cliprect, int layer, int lpri, int flags) -{ draw_common(bitmap, cliprect, layer, lpri, flags); } +void segas24_tile::draw(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect, int layer, int lpri, int flags) +{ draw_common(screen, bitmap, cliprect, layer, lpri, flags); } -void segas24_tile::draw(bitmap_rgb32 &bitmap, const rectangle &cliprect, int layer, int lpri, int flags) -{ draw_common(bitmap, cliprect, layer, lpri, flags); } +void segas24_tile::draw(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect, int layer, int lpri, int flags) +{ draw_common(screen, bitmap, cliprect, layer, lpri, flags); } READ16_MEMBER(segas24_tile::tile_r) { @@ -612,7 +612,7 @@ void segas24_sprite::device_start() 0 11------ -------- */ -void segas24_sprite::draw(bitmap_ind16 &bitmap, const rectangle &cliprect, const int *spri) +void segas24_sprite::draw(bitmap_ind16 &bitmap, const rectangle &cliprect, bitmap_ind8 &priority_bitmap, const int *spri) { UINT16 curspr = 0; int countspr = 0; @@ -773,7 +773,7 @@ void segas24_sprite::draw(bitmap_ind16 &bitmap, const rectangle &cliprect, const int zx1 = flipx ? 7-zx : zx; UINT32 neweroffset = (newoffset+(zx1>>2))&0x1ffff; // crackdown sometimes attempts to use data past the end of spriteram int c = (sprite_ram[neweroffset] >> (((~zx1) & 3) << 2)) & 0xf; - UINT8 *pri = &machine().priority_bitmap.pix8(ypos1, xpos2); + UINT8 *pri = &priority_bitmap.pix8(ypos1, xpos2); if(!(*pri & pm[c])) { c = colors[c]; if(c) { diff --git a/src/mame/video/segaic24.h b/src/mame/video/segaic24.h index fc3ac9f0210..5f42c2c7eea 100644 --- a/src/mame/video/segaic24.h +++ b/src/mame/video/segaic24.h @@ -30,8 +30,8 @@ public: DECLARE_READ32_MEMBER(char32_r); DECLARE_WRITE32_MEMBER(char32_w); - void draw(bitmap_ind16 &bitmap, const rectangle &cliprect, int layer, int pri, int flags); - void draw(bitmap_rgb32 &bitmap, const rectangle &cliprect, int layer, int pri, int flags); + void draw(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect, int layer, int pri, int flags); + void draw(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect, int layer, int pri, int flags); protected: virtual void device_start(); @@ -54,13 +54,13 @@ private: TILE_GET_INFO_MEMBER(tile_info_1s); TILE_GET_INFO_MEMBER(tile_info_1w); - void draw_rect(bitmap_ind16 &bm, bitmap_ind8 &tm, bitmap_ind16 &dm, const UINT16 *mask, + void draw_rect(screen_device &screen, bitmap_ind16 &bm, bitmap_ind8 &tm, bitmap_ind16 &dm, const UINT16 *mask, + UINT16 tpri, UINT8 lpri, int win, int sx, int sy, int xx1, int yy1, int xx2, int yy2); + void draw_rect(screen_device &screen, bitmap_ind16 &bm, bitmap_ind8 &tm, bitmap_rgb32 &dm, const UINT16 *mask, UINT16 tpri, UINT8 lpri, int win, int sx, int sy, int xx1, int yy1, int xx2, int yy2); - void draw_rect(bitmap_ind16 &bm, bitmap_ind8 &tm, bitmap_rgb32 &dm, const UINT16 *mask, - UINT16 tpri, UINT8 lpri, int win, int sx, int sy, int xx1, int yy1, int xx2, int yy2); template - void draw_common(_BitmapClass &bitmap, const rectangle &cliprect, int layer, int pri, int flags); + void draw_common(screen_device &screen, _BitmapClass &bitmap, const rectangle &cliprect, int layer, int pri, int flags); }; class segas24_sprite : public device_t @@ -73,7 +73,7 @@ public: DECLARE_READ16_MEMBER(read); DECLARE_WRITE16_MEMBER(write); - void draw(bitmap_ind16 &bitmap, const rectangle &cliprect, const int *spri); + void draw(bitmap_ind16 &bitmap, const rectangle &cliprect, bitmap_ind8 &priority_bitmap, const int *spri); protected: virtual void device_start(); diff --git a/src/mame/video/segaorun.c b/src/mame/video/segaorun.c index 70bc0f096f6..08153077453 100644 --- a/src/mame/video/segaorun.c +++ b/src/mame/video/segaorun.c @@ -76,7 +76,7 @@ UINT32 segaorun_state::screen_update_shangon(screen_device &screen, bitmap_ind16 m_sprites->draw_async(cliprect); // reset priorities - machine().priority_bitmap.fill(0, cliprect); + screen.priority().fill(0, cliprect); // draw the low priority road layer m_segaic16road->segaic16_road_draw(0, bitmap, cliprect, SEGAIC16_ROAD_BACKGROUND); @@ -105,7 +105,7 @@ UINT32 segaorun_state::screen_update_shangon(screen_device &screen, bitmap_ind16 { UINT16 *dest = &bitmap.pix(y); UINT16 *src = &sprites.pix(y); - UINT8 *pri = &machine().priority_bitmap.pix(y); + UINT8 *pri = &screen.priority().pix(y); for (int x = rect->min_x; x <= rect->max_x; x++) { // only process written pixels @@ -145,7 +145,7 @@ UINT32 segaorun_state::screen_update_outrun(screen_device &screen, bitmap_ind16 m_sprites->draw_async(cliprect); // reset priorities - machine().priority_bitmap.fill(0, cliprect); + screen.priority().fill(0, cliprect); // draw the low priority road layer m_segaic16road->segaic16_road_draw(0, bitmap, cliprect, SEGAIC16_ROAD_BACKGROUND); @@ -172,7 +172,7 @@ UINT32 segaorun_state::screen_update_outrun(screen_device &screen, bitmap_ind16 { UINT16 *dest = &bitmap.pix(y); UINT16 *src = &sprites.pix(y); - UINT8 *pri = &machine().priority_bitmap.pix(y); + UINT8 *pri = &screen.priority().pix(y); for (int x = rect->min_x; x <= rect->max_x; x++) { // only process written pixels diff --git a/src/mame/video/segas16a.c b/src/mame/video/segas16a.c index 9e7370b2e82..6f5d93f3d27 100644 --- a/src/mame/video/segas16a.c +++ b/src/mame/video/segas16a.c @@ -68,7 +68,7 @@ UINT32 segas16a_state::screen_update(screen_device &screen, bitmap_ind16 &bitmap m_sprites->draw_async(cliprect); // reset priorities - machine().priority_bitmap.fill(0, cliprect); + screen.priority().fill(0, cliprect); // draw background opaquely first, not setting any priorities m_segaic16vid->segaic16_tilemap_draw(screen, bitmap, cliprect, 0, SEGAIC16_TILEMAP_BACKGROUND, 0 | TILEMAP_DRAW_OPAQUE, 0x00); @@ -94,7 +94,7 @@ UINT32 segas16a_state::screen_update(screen_device &screen, bitmap_ind16 &bitmap { UINT16 *dest = &bitmap.pix(y); UINT16 *src = &sprites.pix(y); - UINT8 *pri = &machine().priority_bitmap.pix(y); + UINT8 *pri = &screen.priority().pix(y); for (int x = rect->min_x; x <= rect->max_x; x++) { // only process written pixels diff --git a/src/mame/video/segas16b.c b/src/mame/video/segas16b.c index 1c25541ad0a..711bca0d675 100644 --- a/src/mame/video/segas16b.c +++ b/src/mame/video/segas16b.c @@ -68,7 +68,7 @@ UINT32 segas16b_state::screen_update(screen_device &screen, bitmap_ind16 &bitmap m_sprites->draw_async(cliprect); // reset priorities - machine().priority_bitmap.fill(0, cliprect); + screen.priority().fill(0, cliprect); // draw background opaquely first, not setting any priorities m_segaic16vid->segaic16_tilemap_draw(screen, bitmap, cliprect, 0, SEGAIC16_TILEMAP_BACKGROUND, 0 | TILEMAP_DRAW_OPAQUE, 0x00); @@ -94,7 +94,7 @@ UINT32 segas16b_state::screen_update(screen_device &screen, bitmap_ind16 &bitmap { UINT16 *dest = &bitmap.pix(y); UINT16 *src = &sprites.pix(y); - UINT8 *pri = &machine().priority_bitmap.pix(y); + UINT8 *pri = &screen.priority().pix(y); for (int x = rect->min_x; x <= rect->max_x; x++) { // only process written pixels diff --git a/src/mame/video/segas18.c b/src/mame/video/segas18.c index 47f0cc3bba7..9b557cf5ae6 100644 --- a/src/mame/video/segas18.c +++ b/src/mame/video/segas18.c @@ -125,7 +125,7 @@ void segas18_state::set_vdp_mixing(UINT8 mixing) void segas18_state::draw_vdp(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect, int priority) { - bitmap_ind8 &priority_bitmap = machine().priority_bitmap; + bitmap_ind8 &priority_bitmap = screen.priority(); for (int y = cliprect.min_y; y <= cliprect.max_y; y++) { // UINT16 *src = vdp->m_render_line; // can't use this because we're not in RGB32, which we'll need to be if there are palette effects @@ -226,7 +226,7 @@ UINT32 segas18_state::screen_update(screen_device &screen, bitmap_ind16 &bitmap, m_sprites->draw_async(cliprect); // reset priorities - machine().priority_bitmap.fill(0, cliprect); + screen.priority().fill(0, cliprect); // draw background opaquely first, not setting any priorities m_segaic16vid->segaic16_tilemap_draw(screen, bitmap, cliprect, 0, SEGAIC16_TILEMAP_BACKGROUND, 0 | TILEMAP_DRAW_OPAQUE, 0x00); @@ -255,7 +255,7 @@ UINT32 segas18_state::screen_update(screen_device &screen, bitmap_ind16 &bitmap, { UINT16 *dest = &bitmap.pix(y); UINT16 *src = &sprites.pix(y); - UINT8 *pri = &machine().priority_bitmap.pix(y); + UINT8 *pri = &screen.priority().pix(y); for (int x = rect->min_x; x <= rect->max_x; x++) { // only process written pixels diff --git a/src/mame/video/segas24.c b/src/mame/video/segas24.c index 0d3b2974bb0..6dd18f55ba7 100644 --- a/src/mame/video/segas24.c +++ b/src/mame/video/segas24.c @@ -30,7 +30,7 @@ UINT32 segas24_state::screen_update_system24(screen_device &screen, bitmap_ind16 return 0; } - machine().priority_bitmap.fill(0); + screen.priority().fill(0); bitmap.fill(0, cliprect); std::vector order; @@ -44,12 +44,12 @@ UINT32 segas24_state::screen_update_system24(screen_device &screen, bitmap_ind16 int level = 0; for(int i=0; i<12; i++) if(order[i] < 8) - vtile->draw(bitmap, cliprect, order[i], level, 0); + vtile->draw(screen, bitmap, cliprect, order[i], level, 0); else { spri[order[i]-8] = level; level++; } - vsprite->draw(bitmap, cliprect, spri); + vsprite->draw(bitmap, cliprect, screen.priority(), spri); return 0; } diff --git a/src/mame/video/segaxbd.c b/src/mame/video/segaxbd.c index cce9da3d547..b56068da621 100644 --- a/src/mame/video/segaxbd.c +++ b/src/mame/video/segaxbd.c @@ -71,7 +71,7 @@ UINT32 segaxbd_state::screen_update(screen_device &screen, bitmap_ind16 &bitmap, m_sprites->draw_async(cliprect); // reset priorities - machine().priority_bitmap.fill(0, cliprect); + screen.priority().fill(0, cliprect); // draw the low priority road layer m_segaic16road->segaic16_road_draw(0, bitmap, cliprect, SEGAIC16_ROAD_BACKGROUND); @@ -101,7 +101,7 @@ UINT32 segaxbd_state::screen_update(screen_device &screen, bitmap_ind16 &bitmap, { UINT16 *dest = &bitmap.pix(y); UINT16 *src = &sprites.pix(y); - UINT8 *pri = &machine().priority_bitmap.pix(y); + UINT8 *pri = &screen.priority().pix(y); for (int x = rect->min_x; x <= rect->max_x; x++) { // only process written pixels diff --git a/src/mame/video/segaybd.c b/src/mame/video/segaybd.c index 5b2d267af98..dcffd2a2ab7 100644 --- a/src/mame/video/segaybd.c +++ b/src/mame/video/segaybd.c @@ -72,7 +72,7 @@ UINT32 segaybd_state::screen_update(screen_device &screen, bitmap_ind16 &bitmap, m_bsprites->draw_async(cliprect); // apply rotation - m_segaic16vid->segaic16_rotate_draw(machine(), 0, bitmap, cliprect, m_ysprites->bitmap()); + m_segaic16vid->segaic16_rotate_draw(0, bitmap, cliprect, screen.priority(), m_ysprites->bitmap()); // mix in 16B sprites bitmap_ind16 &sprites = m_bsprites->bitmap(); @@ -81,7 +81,7 @@ UINT32 segaybd_state::screen_update(screen_device &screen, bitmap_ind16 &bitmap, { UINT16 *dest = &bitmap.pix(y); UINT16 *src = &sprites.pix(y); - UINT8 *pri = &machine().priority_bitmap.pix(y); + UINT8 *pri = &screen.priority().pix(y); for (int x = rect->min_x; x <= rect->max_x; x++) { // only process written pixels diff --git a/src/mame/video/seicross.c b/src/mame/video/seicross.c index 57a19e779bd..3a4466628e8 100644 --- a/src/mame/video/seicross.c +++ b/src/mame/video/seicross.c @@ -138,7 +138,7 @@ UINT32 seicross_state::screen_update_seicross(screen_device &screen, bitmap_ind1 for (col = 0; col < 32; col++) m_bg_tilemap->set_scrolly(col, m_row_scroll[col]); - m_bg_tilemap->draw(bitmap, cliprect, 0, 0); + m_bg_tilemap->draw(screen, bitmap, cliprect, 0, 0); draw_sprites(bitmap, cliprect); return 0; } diff --git a/src/mame/video/senjyo.c b/src/mame/video/senjyo.c index d8f5a1a7ea3..d82ee880208 100644 --- a/src/mame/video/senjyo.c +++ b/src/mame/video/senjyo.c @@ -311,13 +311,13 @@ UINT32 senjyo_state::screen_update_senjyo(screen_device &screen, bitmap_ind16 &b draw_bgbitmap(bitmap, cliprect); draw_sprites(bitmap, cliprect, 0); - m_bg3_tilemap->draw(bitmap, cliprect, 0, 0); + m_bg3_tilemap->draw(screen, bitmap, cliprect, 0, 0); draw_sprites(bitmap, cliprect, 1); - m_bg2_tilemap->draw(bitmap, cliprect, 0, 0); + m_bg2_tilemap->draw(screen, bitmap, cliprect, 0, 0); draw_sprites(bitmap, cliprect, 2); - m_bg1_tilemap->draw(bitmap, cliprect, 0, 0); + m_bg1_tilemap->draw(screen, bitmap, cliprect, 0, 0); draw_sprites(bitmap, cliprect, 3); - m_fg_tilemap->draw(bitmap, cliprect, 0, 0); + m_fg_tilemap->draw(screen, bitmap, cliprect, 0, 0); draw_radar(bitmap, cliprect); #if 0 diff --git a/src/mame/video/seta.c b/src/mame/video/seta.c index e0d15784ee9..0a709fd6a8b 100644 --- a/src/mame/video/seta.c +++ b/src/mame/video/seta.c @@ -943,8 +943,8 @@ if (screen.machine().input().code_pressed(KEYCODE_Z)) { if (m_tilemap_2) { - if (layers_ctrl & 2) m_tilemap_2->draw(bitmap, cliprect, TILEMAP_DRAW_OPAQUE, 0); - if (layers_ctrl & 2) m_tilemap_3->draw(bitmap, cliprect, TILEMAP_DRAW_OPAQUE, 0); + if (layers_ctrl & 2) m_tilemap_2->draw(screen, bitmap, cliprect, TILEMAP_DRAW_OPAQUE, 0); + if (layers_ctrl & 2) m_tilemap_3->draw(screen, bitmap, cliprect, TILEMAP_DRAW_OPAQUE, 0); } if (order & 2) // layer-sprite priority? @@ -956,8 +956,8 @@ if (screen.machine().input().code_pressed(KEYCODE_Z)) popmessage("Missing palette effect. Contact MAMETesters."); } - if (layers_ctrl & 1) m_tilemap_0->draw(bitmap, cliprect, 0, 0); - if (layers_ctrl & 1) m_tilemap_1->draw(bitmap, cliprect, 0, 0); + if (layers_ctrl & 1) m_tilemap_0->draw(screen, bitmap, cliprect, 0, 0); + if (layers_ctrl & 1) m_tilemap_1->draw(screen, bitmap, cliprect, 0, 0); } else { @@ -966,16 +966,16 @@ if (screen.machine().input().code_pressed(KEYCODE_Z)) popmessage("Missing palette effect. Contact MAMETesters."); } - if (layers_ctrl & 1) m_tilemap_0->draw(bitmap, cliprect, 0, 0); - if (layers_ctrl & 1) m_tilemap_1->draw(bitmap, cliprect, 0, 0); + if (layers_ctrl & 1) m_tilemap_0->draw(screen, bitmap, cliprect, 0, 0); + if (layers_ctrl & 1) m_tilemap_1->draw(screen, bitmap, cliprect, 0, 0); if (layers_ctrl & 8) m_seta001->draw_sprites(bitmap,cliprect,sprite_bank_size, sprite_setac); } } else { - if (layers_ctrl & 1) m_tilemap_0->draw(bitmap, cliprect, TILEMAP_DRAW_OPAQUE, 0); - if (layers_ctrl & 1) m_tilemap_1->draw(bitmap, cliprect, TILEMAP_DRAW_OPAQUE, 0); + if (layers_ctrl & 1) m_tilemap_0->draw(screen, bitmap, cliprect, TILEMAP_DRAW_OPAQUE, 0); + if (layers_ctrl & 1) m_tilemap_1->draw(screen, bitmap, cliprect, TILEMAP_DRAW_OPAQUE, 0); if (order & 2) // layer-sprite priority? { @@ -1001,8 +1001,8 @@ if (screen.machine().input().code_pressed(KEYCODE_Z)) if (m_tilemap_2) { - if (layers_ctrl & 2) m_tilemap_2->draw(bitmap, cliprect, 0, 0); - if (layers_ctrl & 2) m_tilemap_3->draw(bitmap, cliprect, 0, 0); + if (layers_ctrl & 2) m_tilemap_2->draw(screen, bitmap, cliprect, 0, 0); + if (layers_ctrl & 2) m_tilemap_3->draw(screen, bitmap, cliprect, 0, 0); } } } @@ -1028,8 +1028,8 @@ if (screen.machine().input().code_pressed(KEYCODE_Z)) if (m_tilemap_2) { - if (layers_ctrl & 2) m_tilemap_2->draw(bitmap, cliprect, 0, 0); - if (layers_ctrl & 2) m_tilemap_3->draw(bitmap, cliprect, 0, 0); + if (layers_ctrl & 2) m_tilemap_2->draw(screen, bitmap, cliprect, 0, 0); + if (layers_ctrl & 2) m_tilemap_3->draw(screen, bitmap, cliprect, 0, 0); } } diff --git a/src/mame/video/sf.c b/src/mame/video/sf.c index cb18972f5f9..a3631bf6c3e 100644 --- a/src/mame/video/sf.c +++ b/src/mame/video/sf.c @@ -213,15 +213,15 @@ void sf_state::draw_sprites( bitmap_ind16 &bitmap,const rectangle &cliprect ) UINT32 sf_state::screen_update_sf(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect) { if (m_sf_active & 0x20) - m_bg_tilemap->draw(bitmap, cliprect, 0, 0); + m_bg_tilemap->draw(screen, bitmap, cliprect, 0, 0); else bitmap.fill(0, cliprect); - m_fg_tilemap->draw(bitmap, cliprect, 0, 0); + m_fg_tilemap->draw(screen, bitmap, cliprect, 0, 0); if (m_sf_active & 0x80) draw_sprites(bitmap, cliprect); - m_tx_tilemap->draw(bitmap, cliprect, 0, 0); + m_tx_tilemap->draw(screen, bitmap, cliprect, 0, 0); return 0; } diff --git a/src/mame/video/shadfrce.c b/src/mame/video/shadfrce.c index 5d3064ac6c7..9847c554003 100644 --- a/src/mame/video/shadfrce.c +++ b/src/mame/video/shadfrce.c @@ -92,7 +92,7 @@ WRITE16_MEMBER(shadfrce_state::shadfrce_bg1scrolly_w) -void shadfrce_state::draw_sprites(bitmap_ind16 &bitmap, const rectangle &cliprect ) +void shadfrce_state::draw_sprites(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect ) { /* | ---- ---- hhhf Fe-Y | ---- ---- yyyy yyyy | ---- ---- TTTT TTTT | ---- ---- tttt tttt | | ---- ---- -pCc cccX | ---- ---- xxxx xxxx | ---- ---- ---- ---- | ---- ---- ---- ---- | */ @@ -129,10 +129,10 @@ void shadfrce_state::draw_sprites(bitmap_ind16 &bitmap, const rectangle &cliprec height++; if (enable) { for (hcount=0;hcountdraw(bitmap, cliprect, 0,0); - m_bg0tilemap->draw(bitmap, cliprect, 0,1); - draw_sprites(bitmap,cliprect); - m_fgtilemap->draw(bitmap, cliprect, 0,0); + m_bg1tilemap->draw(screen, bitmap, cliprect, 0,0); + m_bg0tilemap->draw(screen, bitmap, cliprect, 0,1); + draw_sprites(screen,bitmap,cliprect); + m_fgtilemap->draw(screen, bitmap, cliprect, 0,0); } else { diff --git a/src/mame/video/shangkid.c b/src/mame/video/shangkid.c index fbd68544fce..eee3c697dfa 100644 --- a/src/mame/video/shangkid.c +++ b/src/mame/video/shangkid.c @@ -186,9 +186,9 @@ UINT32 shangkid_state::screen_update_shangkid(screen_device &screen, bitmap_ind1 m_background->set_scrollx(0,m_videoreg[0]-40 ); m_background->set_scrolly(0,m_videoreg[2]+0x10 ); - m_background->draw(bitmap, cliprect, 0,0 ); + m_background->draw(screen, bitmap, cliprect, 0,0 ); shangkid_draw_sprites(bitmap,cliprect ); - m_background->draw(bitmap, cliprect, 1,0 ); /* high priority tiles */ + m_background->draw(screen, bitmap, cliprect, 1,0 ); /* high priority tiles */ return 0; } diff --git a/src/mame/video/shaolins.c b/src/mame/video/shaolins.c index 9b1758a8027..02ac66de248 100644 --- a/src/mame/video/shaolins.c +++ b/src/mame/video/shaolins.c @@ -182,7 +182,7 @@ void shaolins_state::draw_sprites(bitmap_ind16 &bitmap, const rectangle &cliprec UINT32 shaolins_state::screen_update_shaolins(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect) { - m_bg_tilemap->draw(bitmap, cliprect, 0, 0); + m_bg_tilemap->draw(screen, bitmap, cliprect, 0, 0); draw_sprites(bitmap, cliprect); return 0; } diff --git a/src/mame/video/shisen.c b/src/mame/video/shisen.c index 280142583eb..0938240a63d 100644 --- a/src/mame/video/shisen.c +++ b/src/mame/video/shisen.c @@ -63,6 +63,6 @@ UINT32 shisen_state::screen_update_sichuan2(screen_device &screen, bitmap_ind16 flip_screen_set(~ioport("DSW2")->read() & 1); - m_bg_tilemap->draw(bitmap, cliprect, 0, 0); + m_bg_tilemap->draw(screen, bitmap, cliprect, 0, 0); return 0; } diff --git a/src/mame/video/shootout.c b/src/mame/video/shootout.c index f4dd84fb2a1..5bd1d491d96 100644 --- a/src/mame/video/shootout.c +++ b/src/mame/video/shootout.c @@ -84,7 +84,7 @@ void shootout_state::video_start() m_foreground->set_transparent_pen(0 ); } -void shootout_state::draw_sprites(bitmap_ind16 &bitmap, const rectangle &cliprect, int bank_bits ) +void shootout_state::draw_sprites(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect, int bank_bits ) { UINT8 *spriteram = m_spriteram; gfx_element *gfx = machine().gfx[1]; @@ -136,7 +136,7 @@ void shootout_state::draw_sprites(bitmap_ind16 &bitmap, const rectangle &cliprec 0 /*color*/, flipx,flipy, vx,vy, - machine().priority_bitmap, + screen.priority(), priority_mask,0); number++; @@ -155,7 +155,7 @@ void shootout_state::draw_sprites(bitmap_ind16 &bitmap, const rectangle &cliprec 0 /*color*/, flipx,flipy, vx,vy, - machine().priority_bitmap, + screen.priority(), priority_mask,0); } } @@ -165,20 +165,20 @@ void shootout_state::draw_sprites(bitmap_ind16 &bitmap, const rectangle &cliprec UINT32 shootout_state::screen_update_shootout(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect) { - machine().priority_bitmap.fill(0, cliprect); + screen.priority().fill(0, cliprect); - m_background->draw(bitmap, cliprect, 0,0); - m_foreground->draw(bitmap, cliprect, 0,1); - draw_sprites(bitmap,cliprect,3/*bank bits */); + m_background->draw(screen, bitmap, cliprect, 0,0); + m_foreground->draw(screen, bitmap, cliprect, 0,1); + draw_sprites(screen, bitmap, cliprect,3/*bank bits */); return 0; } UINT32 shootout_state::screen_update_shootouj(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect) { - machine().priority_bitmap.fill(0, cliprect); + screen.priority().fill(0, cliprect); - m_background->draw(bitmap, cliprect, 0,0); - m_foreground->draw(bitmap, cliprect, 0,1); - draw_sprites(bitmap,cliprect,2/*bank bits*/); + m_background->draw(screen, bitmap, cliprect, 0,0); + m_foreground->draw(screen, bitmap, cliprect, 0,1); + draw_sprites(screen, bitmap, cliprect,2/*bank bits*/); return 0; } diff --git a/src/mame/video/shuuz.c b/src/mame/video/shuuz.c index 30839f364c5..73cbe1bb944 100644 --- a/src/mame/video/shuuz.c +++ b/src/mame/video/shuuz.c @@ -84,7 +84,7 @@ UINT32 shuuz_state::screen_update_shuuz(screen_device &screen, bitmap_ind16 &bit m_vad->mob()->draw_async(cliprect); /* draw the playfield */ - m_vad->playfield()->draw(bitmap, cliprect, 0, 0); + m_vad->playfield()->draw(screen, bitmap, cliprect, 0, 0); // draw and merge the MO bitmap_ind16 &mobitmap = m_vad->mob()->bitmap(); diff --git a/src/mame/video/sidearms.c b/src/mame/video/sidearms.c index 364756cbfb7..5d81840ae6a 100644 --- a/src/mame/video/sidearms.c +++ b/src/mame/video/sidearms.c @@ -337,12 +337,12 @@ UINT32 sidearms_state::screen_update_sidearms(screen_device &screen, bitmap_ind1 m_bg_tilemap->set_scrolly(0, m_bg_scrolly[0] + (m_bg_scrolly[1] << 8 & 0xf00)); if (m_bgon) - m_bg_tilemap->draw(bitmap, cliprect, 0, 0); + m_bg_tilemap->draw(screen, bitmap, cliprect, 0, 0); if (m_objon) draw_sprites(bitmap, cliprect); if (m_charon) - m_fg_tilemap->draw(bitmap, cliprect, 0, 0); + m_fg_tilemap->draw(screen, bitmap, cliprect, 0, 0); return 0; } diff --git a/src/mame/video/sidepckt.c b/src/mame/video/sidepckt.c index 9b16397d931..bc47335b9f9 100644 --- a/src/mame/video/sidepckt.c +++ b/src/mame/video/sidepckt.c @@ -139,8 +139,8 @@ void sidepckt_state::draw_sprites(bitmap_ind16 &bitmap,const rectangle &cliprect UINT32 sidepckt_state::screen_update_sidepckt(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect) { - m_bg_tilemap->draw(bitmap, cliprect, TILEMAP_DRAW_LAYER1,0); + m_bg_tilemap->draw(screen, bitmap, cliprect, TILEMAP_DRAW_LAYER1,0); draw_sprites(bitmap,cliprect); - m_bg_tilemap->draw(bitmap, cliprect, TILEMAP_DRAW_LAYER0,0); + m_bg_tilemap->draw(screen, bitmap, cliprect, TILEMAP_DRAW_LAYER0,0); return 0; } diff --git a/src/mame/video/silkroad.c b/src/mame/video/silkroad.c index c4e177e4f1e..1ddedcb2a3f 100644 --- a/src/mame/video/silkroad.c +++ b/src/mame/video/silkroad.c @@ -7,7 +7,7 @@ /* Clean Up */ /* is theres a bg colour register? */ -void silkroad_state::draw_sprites(bitmap_ind16 &bitmap, const rectangle &cliprect) +void silkroad_state::draw_sprites(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect) { gfx_element *gfx = machine().gfx[0]; UINT32 *source = m_sprram; @@ -36,14 +36,14 @@ void silkroad_state::draw_sprites(bitmap_ind16 &bitmap, const rectangle &cliprec { for (wcount=0;wcount0;wcount--) { - pdrawgfx_transpen(bitmap,cliprect,gfx,tileno+(width-wcount),color,1,0,xpos+wcount*16-16+8,ypos,machine().priority_bitmap,pri_mask,0); + pdrawgfx_transpen(bitmap,cliprect,gfx,tileno+(width-wcount),color,1,0,xpos+wcount*16-16+8,ypos,screen.priority(),pri_mask,0); } } @@ -130,7 +130,7 @@ void silkroad_state::video_start() UINT32 silkroad_state::screen_update_silkroad(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect) { - machine().priority_bitmap.fill(0, cliprect); + screen.priority().fill(0, cliprect); bitmap.fill(0x7c0, cliprect); m_fg_tilemap->set_scrollx(0, ((m_regs[0] & 0xffff0000) >> 16) ); @@ -142,10 +142,10 @@ UINT32 silkroad_state::screen_update_silkroad(screen_device &screen, bitmap_ind1 m_fg2_tilemap->set_scrolly(0, ((m_regs[5] & 0xffff0000) >> 16)); m_fg2_tilemap->set_scrollx(0, (m_regs[2] & 0x0000ffff) >> 0 ); - m_fg_tilemap->draw(bitmap, cliprect, 0,0); - m_fg2_tilemap->draw(bitmap, cliprect, 0,1); - m_fg3_tilemap->draw(bitmap, cliprect, 0,2); - draw_sprites(bitmap,cliprect); + m_fg_tilemap->draw(screen, bitmap, cliprect, 0,0); + m_fg2_tilemap->draw(screen, bitmap, cliprect, 0,1); + m_fg3_tilemap->draw(screen, bitmap, cliprect, 0,2); + draw_sprites(screen,bitmap,cliprect); if (0) { diff --git a/src/mame/video/simpl156.c b/src/mame/video/simpl156.c index 608121e0e01..3cc9e720153 100644 --- a/src/mame/video/simpl156.c +++ b/src/mame/video/simpl156.c @@ -25,14 +25,14 @@ void simpl156_state::video_start() UINT32 simpl156_state::screen_update_simpl156(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect) { - machine().priority_bitmap.fill(0); + screen.priority().fill(0); m_deco_tilegen1->pf_update(m_pf1_rowscroll, m_pf2_rowscroll); bitmap.fill(256, cliprect); - m_deco_tilegen1->tilemap_2_draw(bitmap, cliprect, 0, 2); - m_deco_tilegen1->tilemap_1_draw(bitmap, cliprect, 0, 4); + m_deco_tilegen1->tilemap_2_draw(screen, bitmap, cliprect, 0, 2); + m_deco_tilegen1->tilemap_1_draw(screen, bitmap, cliprect, 0, 4); //FIXME: flip_screen_x should not be written! flip_screen_set_no_update(1); diff --git a/src/mame/video/simpsons.c b/src/mame/video/simpsons.c index 30c067f7949..5e9cac5208a 100644 --- a/src/mame/video/simpsons.c +++ b/src/mame/video/simpsons.c @@ -138,11 +138,11 @@ UINT32 simpsons_state::screen_update_simpsons(screen_device &screen, bitmap_ind1 konami_sortlayers3(layer, m_layerpri); - machine().priority_bitmap.fill(0, cliprect); + screen.priority().fill(0, cliprect); bitmap.fill(16 * bg_colorbase, cliprect); - m_k052109->tilemap_draw(bitmap, cliprect, layer[0], 0, 1); - m_k052109->tilemap_draw(bitmap, cliprect, layer[1], 0, 2); - m_k052109->tilemap_draw(bitmap, cliprect, layer[2], 0, 4); + m_k052109->tilemap_draw(screen, bitmap, cliprect, layer[0], 0, 1); + m_k052109->tilemap_draw(screen, bitmap, cliprect, layer[1], 0, 2); + m_k052109->tilemap_draw(screen, bitmap, cliprect, layer[2], 0, 4); m_k053246->k053247_sprites_draw(bitmap, cliprect); return 0; diff --git a/src/mame/video/skullxbo.c b/src/mame/video/skullxbo.c index 13e401b1b8f..ff2504ebdc8 100644 --- a/src/mame/video/skullxbo.c +++ b/src/mame/video/skullxbo.c @@ -238,7 +238,7 @@ UINT32 skullxbo_state::screen_update_skullxbo(screen_device &screen, bitmap_ind1 m_mob->draw_async(cliprect); /* draw the playfield */ - m_playfield_tilemap->draw(bitmap, cliprect, 0, 0); + m_playfield_tilemap->draw(screen, bitmap, cliprect, 0, 0); // draw and merge the MO bitmap_ind16 &mobitmap = m_mob->bitmap(); @@ -299,6 +299,6 @@ UINT32 skullxbo_state::screen_update_skullxbo(screen_device &screen, bitmap_ind1 } /* add the alpha on top */ - m_alpha_tilemap->draw(bitmap, cliprect, 0, 0); + m_alpha_tilemap->draw(screen, bitmap, cliprect, 0, 0); return 0; } diff --git a/src/mame/video/skydiver.c b/src/mame/video/skydiver.c index 7d2a2982909..0225a383232 100644 --- a/src/mame/video/skydiver.c +++ b/src/mame/video/skydiver.c @@ -200,7 +200,7 @@ void skydiver_state::draw_sprites(bitmap_ind16 &bitmap, const rectangle &cliprec UINT32 skydiver_state::screen_update_skydiver(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect) { - m_bg_tilemap->draw(bitmap, cliprect, 0,0); + m_bg_tilemap->draw(screen, bitmap, cliprect, 0,0); draw_sprites(bitmap, cliprect); return 0; diff --git a/src/mame/video/skykid.c b/src/mame/video/skykid.c index 9b7aad3f13e..357cc3eaff2 100644 --- a/src/mame/video/skykid.c +++ b/src/mame/video/skykid.c @@ -241,7 +241,7 @@ UINT32 skykid_state::screen_update_skykid(screen_device &screen, bitmap_ind16 &b m_bg_tilemap->set_scrolly(0, m_scroll_y + 25); } - m_bg_tilemap->draw(bitmap, cliprect, TILEMAP_DRAW_OPAQUE,0); + m_bg_tilemap->draw(screen, bitmap, cliprect, TILEMAP_DRAW_OPAQUE,0); if (m_priority & 0x04) { @@ -249,18 +249,18 @@ UINT32 skykid_state::screen_update_skykid(screen_device &screen, bitmap_ind16 &b int cat, pri = m_priority >> 4; // draw low priority tiles - m_tx_tilemap->draw(bitmap, cliprect, pri, 0); + m_tx_tilemap->draw(screen, bitmap, cliprect, pri, 0); draw_sprites(bitmap, cliprect); // draw the other tiles for (cat = 0; cat < 0xf; cat++) - if (cat != pri) m_tx_tilemap->draw(bitmap, cliprect, cat, 0); + if (cat != pri) m_tx_tilemap->draw(screen, bitmap, cliprect, cat, 0); } else { draw_sprites(bitmap, cliprect); - m_tx_tilemap->draw(bitmap, cliprect, TILEMAP_DRAW_ALL_CATEGORIES, 0); + m_tx_tilemap->draw(screen, bitmap, cliprect, TILEMAP_DRAW_ALL_CATEGORIES, 0); } return 0; diff --git a/src/mame/video/slapfght.c b/src/mame/video/slapfght.c index 27638321bc4..dbf2a547ce3 100644 --- a/src/mame/video/slapfght.c +++ b/src/mame/video/slapfght.c @@ -185,9 +185,9 @@ UINT32 slapfght_state::screen_update_perfrman(screen_device &screen, bitmap_ind1 m_pf1_tilemap ->set_scrollx(0 , -16 ); } - m_pf1_tilemap->draw(bitmap, cliprect, TILEMAP_DRAW_OPAQUE,0); + m_pf1_tilemap->draw(screen, bitmap, cliprect, TILEMAP_DRAW_OPAQUE,0); draw_sprites(bitmap,cliprect,0); - m_pf1_tilemap->draw(bitmap, cliprect, 0,0); + m_pf1_tilemap->draw(screen, bitmap, cliprect, 0,0); draw_sprites(bitmap,cliprect,0x80); slapfght_log_vram(); @@ -214,7 +214,7 @@ UINT32 slapfght_state::screen_update_slapfight(screen_device &screen, bitmap_ind m_fix_tilemap->set_scrolly(0, -1 ); /* Glitch in Tiger Heli otherwise */ } - m_pf1_tilemap->draw(bitmap, cliprect, 0,0); + m_pf1_tilemap->draw(screen, bitmap, cliprect, 0,0); /* Draw the sprites */ for (offs = 0;offs < m_spriteram->bytes();offs += 4) @@ -233,7 +233,7 @@ UINT32 slapfght_state::screen_update_slapfight(screen_device &screen, bitmap_ind (buffered_spriteram[offs+1] + ((buffered_spriteram[offs+2] & 0x01) << 8)) - 13,buffered_spriteram[offs+3],0); } - m_fix_tilemap->draw(bitmap, cliprect, 0,0); + m_fix_tilemap->draw(screen, bitmap, cliprect, 0,0); slapfght_log_vram(); return 0; diff --git a/src/mame/video/slapshot.c b/src/mame/video/slapshot.c index da3e90725d6..6faeb4d3da6 100644 --- a/src/mame/video/slapshot.c +++ b/src/mame/video/slapshot.c @@ -32,7 +32,7 @@ void slapshot_state::video_start() SPRITE DRAW ROUTINES ************************************************************/ -void slapshot_state::draw_sprites( bitmap_ind16 &bitmap, const rectangle &cliprect, int *primasks, int y_offset ) +void slapshot_state::draw_sprites( screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect, int *primasks, int y_offset ) { /* Sprite format: @@ -369,7 +369,7 @@ void slapshot_state::draw_sprites( bitmap_ind16 &bitmap, const rectangle &clipre sprite_ptr->flipx,sprite_ptr->flipy, sprite_ptr->x,sprite_ptr->y, sprite_ptr->zoomx,sprite_ptr->zoomy, - machine().priority_bitmap,sprite_ptr->primask,0); + screen.priority(),sprite_ptr->primask,0); } } @@ -515,28 +515,28 @@ UINT32 slapshot_state::screen_update_slapshot(screen_device &screen, bitmap_ind1 spritepri[2] = m_tc0360pri->read(space, 7) & 0x0f; spritepri[3] = m_tc0360pri->read(space, 7) >> 4; - machine().priority_bitmap.fill(0, cliprect); + screen.priority().fill(0, cliprect); bitmap.fill(0, cliprect); #ifdef MAME_DEBUG if (m_dislayer[layer[0]] == 0) #endif - m_tc0480scp->tilemap_draw(bitmap, cliprect, layer[0], 0, 1); + m_tc0480scp->tilemap_draw(screen, bitmap, cliprect, layer[0], 0, 1); #ifdef MAME_DEBUG if (m_dislayer[layer[1]] == 0) #endif - m_tc0480scp->tilemap_draw(bitmap, cliprect, layer[1], 0, 2); + m_tc0480scp->tilemap_draw(screen, bitmap, cliprect, layer[1], 0, 2); #ifdef MAME_DEBUG if (m_dislayer[layer[2]] == 0) #endif - m_tc0480scp->tilemap_draw(bitmap, cliprect, layer[2], 0, 4); + m_tc0480scp->tilemap_draw(screen, bitmap, cliprect, layer[2], 0, 4); #ifdef MAME_DEBUG if (m_dislayer[layer[3]] == 0) #endif - m_tc0480scp->tilemap_draw(bitmap, cliprect, layer[3], 0, 8); + m_tc0480scp->tilemap_draw(screen, bitmap, cliprect, layer[3], 0, 8); { int primasks[4] = {0,0,0,0}; @@ -550,7 +550,7 @@ UINT32 slapshot_state::screen_update_slapshot(screen_device &screen, bitmap_ind1 if (spritepri[i] < tilepri[(layer[3])]) primasks[i] |= 0xff00; } - draw_sprites(bitmap,cliprect,primasks,0); + draw_sprites(screen,bitmap,cliprect,primasks,0); } /* @@ -562,6 +562,6 @@ UINT32 slapshot_state::screen_update_slapshot(screen_device &screen, bitmap_ind1 #ifdef MAME_DEBUG if (m_dislayer[layer[4]] == 0) #endif - m_tc0480scp->tilemap_draw(bitmap, cliprect, layer[4], 0, 0); + m_tc0480scp->tilemap_draw(screen, bitmap, cliprect, layer[4], 0, 0); return 0; } diff --git a/src/mame/video/snk.c b/src/mame/video/snk.c index b7ed053386b..e39181818fd 100644 --- a/src/mame/video/snk.c +++ b/src/mame/video/snk.c @@ -910,11 +910,11 @@ UINT32 snk_state::screen_update_marvins(screen_device &screen, bitmap_ind16 &bit m_fg_tilemap->set_scrollx(0, m_fg_scrollx); m_fg_tilemap->set_scrolly(0, m_fg_scrolly); - m_bg_tilemap->draw(bitmap, cliprect, 0, 0); + m_bg_tilemap->draw(screen, bitmap, cliprect, 0, 0); marvins_draw_sprites(machine(), bitmap, cliprect, m_sp16_scrollx, m_sp16_scrolly, 0, m_sprite_split_point>>2); - m_fg_tilemap->draw(bitmap, cliprect, 0, 0); + m_fg_tilemap->draw(screen, bitmap, cliprect, 0, 0); marvins_draw_sprites(machine(), bitmap, cliprect, m_sp16_scrollx, m_sp16_scrolly, m_sprite_split_point>>2, 25); - m_tx_tilemap->draw(bitmap, cliprect, 0, 0); + m_tx_tilemap->draw(screen, bitmap, cliprect, 0, 0); return 0; } @@ -925,9 +925,9 @@ UINT32 snk_state::screen_update_tnk3(screen_device &screen, bitmap_ind16 &bitmap m_bg_tilemap->set_scrollx(0, m_bg_scrollx); m_bg_tilemap->set_scrolly(0, m_bg_scrolly); - m_bg_tilemap->draw(bitmap, cliprect, 0, 0); + m_bg_tilemap->draw(screen, bitmap, cliprect, 0, 0); tnk3_draw_sprites(bitmap, cliprect, m_sp16_scrollx, m_sp16_scrolly); - m_tx_tilemap->draw(bitmap, cliprect, 0, 0); + m_tx_tilemap->draw(screen, bitmap, cliprect, 0, 0); return 0; } @@ -938,13 +938,13 @@ UINT32 snk_state::screen_update_ikari(screen_device &screen, bitmap_ind16 &bitma m_bg_tilemap->set_scrollx(0, m_bg_scrollx); m_bg_tilemap->set_scrolly(0, m_bg_scrolly); - m_bg_tilemap->draw(bitmap, cliprect, 0, 0); + m_bg_tilemap->draw(screen, bitmap, cliprect, 0, 0); ikari_draw_sprites(machine(), bitmap, cliprect, 0, m_sp16_scrollx, m_sp16_scrolly, m_spriteram + 0x800, 2 ); ikari_draw_sprites(machine(), bitmap, cliprect, 0, m_sp32_scrollx, m_sp32_scrolly, m_spriteram, 3 ); ikari_draw_sprites(machine(), bitmap, cliprect, 25, m_sp16_scrollx, m_sp16_scrolly, m_spriteram + 0x800, 2 ); - m_tx_tilemap->draw(bitmap, cliprect, 0, 0); + m_tx_tilemap->draw(screen, bitmap, cliprect, 0, 0); return 0; } @@ -954,13 +954,13 @@ UINT32 snk_state::screen_update_gwar(screen_device &screen, bitmap_ind16 &bitmap m_bg_tilemap->set_scrollx(0, m_bg_scrollx); m_bg_tilemap->set_scrolly(0, m_bg_scrolly); - m_bg_tilemap->draw(bitmap, cliprect, 0, 0); + m_bg_tilemap->draw(screen, bitmap, cliprect, 0, 0); tdfever_draw_sprites(machine(), bitmap, cliprect, m_sp16_scrollx, m_sp16_scrolly, m_spriteram + 0x800, 2, 0, 0, m_sprite_split_point ); tdfever_draw_sprites(machine(), bitmap, cliprect, m_sp32_scrollx, m_sp32_scrolly, m_spriteram, 3, 0, 0, 32 ); tdfever_draw_sprites(machine(), bitmap, cliprect, m_sp16_scrollx, m_sp16_scrolly, m_spriteram + 0x800, 2, 0, m_sprite_split_point, 64 ); - m_tx_tilemap->draw(bitmap, cliprect, 0, 0); + m_tx_tilemap->draw(screen, bitmap, cliprect, 0, 0); return 0; } @@ -971,11 +971,11 @@ UINT32 snk_state::screen_update_tdfever(screen_device &screen, bitmap_ind16 &bit m_bg_tilemap->set_scrollx(0, m_bg_scrollx); m_bg_tilemap->set_scrolly(0, m_bg_scrolly); - m_bg_tilemap->draw(bitmap, cliprect, 0, 0); + m_bg_tilemap->draw(screen, bitmap, cliprect, 0, 0); tdfever_draw_sprites(machine(), bitmap, cliprect, m_sp32_scrollx, m_sp32_scrolly, m_spriteram, 2, 1, 0, 32 ); - m_tx_tilemap->draw(bitmap, cliprect, 0, 0); + m_tx_tilemap->draw(screen, bitmap, cliprect, 0, 0); return 0; } diff --git a/src/mame/video/snk6502.c b/src/mame/video/snk6502.c index e1d9968af2a..77239fac022 100644 --- a/src/mame/video/snk6502.c +++ b/src/mame/video/snk6502.c @@ -186,8 +186,8 @@ VIDEO_START_MEMBER(snk6502_state,pballoon) UINT32 snk6502_state::screen_update_snk6502(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect) { - m_bg_tilemap->draw(bitmap, cliprect, 0, 0); - m_fg_tilemap->draw(bitmap, cliprect, 0, 0); + m_bg_tilemap->draw(screen, bitmap, cliprect, 0, 0); + m_fg_tilemap->draw(screen, bitmap, cliprect, 0, 0); return 0; } diff --git a/src/mame/video/snk68.c b/src/mame/video/snk68.c index 3ac48585435..70a61da4f02 100644 --- a/src/mame/video/snk68.c +++ b/src/mame/video/snk68.c @@ -275,6 +275,6 @@ UINT32 snk68_state::screen_update_pow(screen_device &screen, bitmap_ind16 &bitma draw_sprites(bitmap, cliprect, 3); draw_sprites(bitmap, cliprect, 1); - m_fg_tilemap->draw(bitmap, cliprect, 0, 0); + m_fg_tilemap->draw(screen, bitmap, cliprect, 0, 0); return 0; } diff --git a/src/mame/video/snookr10.c b/src/mame/video/snookr10.c index f5a6b76396d..fa445b1c898 100644 --- a/src/mame/video/snookr10.c +++ b/src/mame/video/snookr10.c @@ -256,6 +256,6 @@ VIDEO_START_MEMBER(snookr10_state, crystalc) UINT32 snookr10_state::screen_update_snookr10(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect) { - m_bg_tilemap->draw(bitmap, cliprect, 0, 0); + m_bg_tilemap->draw(screen, bitmap, cliprect, 0, 0); return 0; } diff --git a/src/mame/video/solomon.c b/src/mame/video/solomon.c index 3f758922c11..2eb9869c55f 100644 --- a/src/mame/video/solomon.c +++ b/src/mame/video/solomon.c @@ -96,8 +96,8 @@ void solomon_state::draw_sprites(bitmap_ind16 &bitmap, const rectangle &cliprect UINT32 solomon_state::screen_update_solomon(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect) { - m_bg_tilemap->draw(bitmap, cliprect, 0, 0); - m_fg_tilemap->draw(bitmap, cliprect, 0, 0); + m_bg_tilemap->draw(screen, bitmap, cliprect, 0, 0); + m_fg_tilemap->draw(screen, bitmap, cliprect, 0, 0); draw_sprites(bitmap, cliprect); return 0; } diff --git a/src/mame/video/sonson.c b/src/mame/video/sonson.c index d213e48ba20..2806ec1b34b 100644 --- a/src/mame/video/sonson.c +++ b/src/mame/video/sonson.c @@ -171,7 +171,7 @@ void sonson_state::draw_sprites( bitmap_ind16 &bitmap, const rectangle &cliprect UINT32 sonson_state::screen_update_sonson(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect) { - m_bg_tilemap->draw(bitmap, cliprect, 0, 0); + m_bg_tilemap->draw(screen, bitmap, cliprect, 0, 0); draw_sprites(bitmap, cliprect); return 0; } diff --git a/src/mame/video/spbactn.c b/src/mame/video/spbactn.c index 2cec9383b79..00fef2d69c8 100644 --- a/src/mame/video/spbactn.c +++ b/src/mame/video/spbactn.c @@ -150,22 +150,22 @@ int spbactn_state::draw_video(screen_device &screen, bitmap_rgb32 &bitmap, const { m_tile_bitmap_fg.fill(0, cliprect); - m_bg_tilemap->draw(m_tile_bitmap_bg, cliprect, TILEMAP_DRAW_OPAQUE, 0); + m_bg_tilemap->draw(screen, m_tile_bitmap_bg, cliprect, TILEMAP_DRAW_OPAQUE, 0); - if (spbactn_draw_sprites(machine(), m_tile_bitmap_bg, cliprect, 0, alt_sprites, m_spvideoram)) + if (spbactn_draw_sprites(screen, m_tile_bitmap_bg, cliprect, 0, alt_sprites, m_spvideoram)) { - m_bg_tilemap->draw(m_tile_bitmap_bg, cliprect, 0, 0); + m_bg_tilemap->draw(screen, m_tile_bitmap_bg, cliprect, 0, 0); } - spbactn_draw_sprites(machine(), m_tile_bitmap_bg, cliprect, 1, alt_sprites, m_spvideoram); + spbactn_draw_sprites(screen, m_tile_bitmap_bg, cliprect, 1, alt_sprites, m_spvideoram); - m_fg_tilemap->draw(m_tile_bitmap_fg, cliprect, 0, 0); + m_fg_tilemap->draw(screen, m_tile_bitmap_fg, cliprect, 0, 0); - spbactn_draw_sprites(machine(), m_tile_bitmap_fg, cliprect, 2, alt_sprites, m_spvideoram); - spbactn_draw_sprites(machine(), m_tile_bitmap_fg, cliprect, 3, alt_sprites, m_spvideoram); + spbactn_draw_sprites(screen, m_tile_bitmap_fg, cliprect, 2, alt_sprites, m_spvideoram); + spbactn_draw_sprites(screen, m_tile_bitmap_fg, cliprect, 3, alt_sprites, m_spvideoram); /* mix & blend the tilemaps and sprites into a 32-bit bitmap */ blendbitmaps(machine(), bitmap, m_tile_bitmap_bg, m_tile_bitmap_fg, cliprect); diff --git a/src/mame/video/spdodgeb.c b/src/mame/video/spdodgeb.c index 94b993a1657..a1ffd59d4f7 100644 --- a/src/mame/video/spdodgeb.c +++ b/src/mame/video/spdodgeb.c @@ -205,7 +205,7 @@ void spdodgeb_state::draw_sprites(bitmap_ind16 &bitmap, const rectangle &cliprec UINT32 spdodgeb_state::screen_update_spdodgeb(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect) { m_bg_tilemap->set_scrollx(0,m_lastscroll+5); - m_bg_tilemap->draw(bitmap, cliprect, 0,0); + m_bg_tilemap->draw(screen, bitmap, cliprect, 0,0); draw_sprites(bitmap,cliprect); return 0; } diff --git a/src/mame/video/speedbal.c b/src/mame/video/speedbal.c index 7dfa1b7a431..1c8048fb867 100644 --- a/src/mame/video/speedbal.c +++ b/src/mame/video/speedbal.c @@ -123,10 +123,10 @@ void speedbal_state::draw_sprites(bitmap_ind16 &bitmap, const rectangle &cliprec UINT32 speedbal_state::screen_update_speedbal(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect) { - m_bg_tilemap->draw(bitmap, cliprect, TILEMAP_DRAW_LAYER1, 0); - m_fg_tilemap->draw(bitmap, cliprect, TILEMAP_DRAW_LAYER1, 0); + m_bg_tilemap->draw(screen, bitmap, cliprect, TILEMAP_DRAW_LAYER1, 0); + m_fg_tilemap->draw(screen, bitmap, cliprect, TILEMAP_DRAW_LAYER1, 0); draw_sprites(bitmap, cliprect); - m_bg_tilemap->draw(bitmap, cliprect, TILEMAP_DRAW_LAYER0, 0); - m_fg_tilemap->draw(bitmap, cliprect, TILEMAP_DRAW_LAYER0, 0); + m_bg_tilemap->draw(screen, bitmap, cliprect, TILEMAP_DRAW_LAYER0, 0); + m_fg_tilemap->draw(screen, bitmap, cliprect, TILEMAP_DRAW_LAYER0, 0); return 0; } diff --git a/src/mame/video/speedspn.c b/src/mame/video/speedspn.c index 8080f32d1e9..bde7ae4e7c8 100644 --- a/src/mame/video/speedspn.c +++ b/src/mame/video/speedspn.c @@ -102,7 +102,7 @@ UINT32 speedspn_state::screen_update_speedspn(screen_device &screen, bitmap_ind1 } #endif m_tilemap->set_scrollx(0, 0x100); // verify - m_tilemap->draw(bitmap, cliprect, 0,0); + m_tilemap->draw(screen, bitmap, cliprect, 0,0); draw_sprites(bitmap,cliprect); return 0; } diff --git a/src/mame/video/splash.c b/src/mame/video/splash.c index d6f75cc94ae..b86e22ef917 100644 --- a/src/mame/video/splash.c +++ b/src/mame/video/splash.c @@ -257,9 +257,9 @@ UINT32 splash_state::screen_update_splash(screen_device &screen, bitmap_ind16 &b draw_bitmap(bitmap, cliprect); - m_bg_tilemap[1]->draw(bitmap, cliprect, 0, 0); + m_bg_tilemap[1]->draw(screen, bitmap, cliprect, 0, 0); splash_draw_sprites(bitmap, cliprect); - m_bg_tilemap[0]->draw(bitmap, cliprect, 0, 0); + m_bg_tilemap[0]->draw(screen, bitmap, cliprect, 0, 0); return 0; } @@ -271,9 +271,9 @@ UINT32 splash_state::screen_update_funystrp(screen_device &screen, bitmap_ind16 draw_bitmap(bitmap, cliprect); - m_bg_tilemap[1]->draw(bitmap, cliprect, 0, 0); + m_bg_tilemap[1]->draw(screen, bitmap, cliprect, 0, 0); /*Sprite chip is similar but not the same*/ funystrp_draw_sprites(bitmap, cliprect); - m_bg_tilemap[0]->draw(bitmap, cliprect, 0, 0); + m_bg_tilemap[0]->draw(screen, bitmap, cliprect, 0, 0); return 0; } diff --git a/src/mame/video/sprcros2.c b/src/mame/video/sprcros2.c index 5f4ea866f3b..485dab1e037 100644 --- a/src/mame/video/sprcros2.c +++ b/src/mame/video/sprcros2.c @@ -183,8 +183,8 @@ void sprcros2_state::draw_sprites(bitmap_ind16 &bitmap,const rectangle &cliprect UINT32 sprcros2_state::screen_update_sprcros2(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect) { - m_bgtilemap->draw(bitmap, cliprect, 0, 0); + m_bgtilemap->draw(screen, bitmap, cliprect, 0, 0); draw_sprites(bitmap, cliprect); - m_fgtilemap->draw(bitmap, cliprect, 0, 0); + m_fgtilemap->draw(screen, bitmap, cliprect, 0, 0); return 0; } diff --git a/src/mame/video/sprint2.c b/src/mame/video/sprint2.c index 0f5bf83dc51..0b974e3f3a1 100644 --- a/src/mame/video/sprint2.c +++ b/src/mame/video/sprint2.c @@ -119,7 +119,7 @@ UINT32 sprint2_state::screen_update_sprint2(screen_device &screen, bitmap_ind16 UINT8 *video_ram = m_video_ram; int i; - m_bg_tilemap->draw(bitmap, cliprect, 0, 0); + m_bg_tilemap->draw(screen, bitmap, cliprect, 0, 0); /* draw the sprites */ @@ -167,7 +167,7 @@ void sprint2_state::screen_eof_sprint2(screen_device &screen, bool state) /* check for sprite-tilemap collisions */ - m_bg_tilemap->draw(m_helper, rect, 0, 0); + m_bg_tilemap->draw(screen, m_helper, rect, 0, 0); drawgfx_transpen(m_helper, rect, machine().gfx[1], get_sprite_code(video_ram, i), diff --git a/src/mame/video/sprint4.c b/src/mame/video/sprint4.c index dd4f5719ca1..57d19457c05 100644 --- a/src/mame/video/sprint4.c +++ b/src/mame/video/sprint4.c @@ -60,7 +60,7 @@ UINT32 sprint4_state::screen_update_sprint4(screen_device &screen, bitmap_ind16 UINT8 *videoram = m_videoram; int i; - m_playfield->draw(bitmap, cliprect, 0, 0); + m_playfield->draw(screen, bitmap, cliprect, 0, 0); for (i = 0; i < 4; i++) { @@ -115,7 +115,7 @@ void sprint4_state::screen_eof_sprint4(screen_device &screen, bool state) rect &= machine().primary_screen->visible_area(); - m_playfield->draw(m_helper, rect, 0, 0); + m_playfield->draw(screen, m_helper, rect, 0, 0); if (i & 1) bank = 32; diff --git a/src/mame/video/sprint8.c b/src/mame/video/sprint8.c index cb3c86ba7e5..738ee63558c 100644 --- a/src/mame/video/sprint8.c +++ b/src/mame/video/sprint8.c @@ -156,7 +156,7 @@ TIMER_CALLBACK_MEMBER(sprint8_state::sprint8_collision_callback) UINT32 sprint8_state::screen_update_sprint8(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect) { set_pens(this, machine().colortable); - m_tilemap1->draw(bitmap, cliprect, 0, 0); + m_tilemap1->draw(screen, bitmap, cliprect, 0, 0); draw_sprites(bitmap, cliprect); return 0; } @@ -171,7 +171,7 @@ void sprint8_state::screen_eof_sprint8(screen_device &screen, bool state) int y; const rectangle &visarea = machine().primary_screen->visible_area(); - m_tilemap2->draw(m_helper2, visarea, 0, 0); + m_tilemap2->draw(screen, m_helper2, visarea, 0, 0); m_helper1.fill(0x20, visarea); diff --git a/src/mame/video/spy.c b/src/mame/video/spy.c index 012e0d239e5..a3791c01e59 100644 --- a/src/mame/video/spy.c +++ b/src/mame/video/spy.c @@ -64,16 +64,16 @@ UINT32 spy_state::screen_update_spy(screen_device &screen, bitmap_ind16 &bitmap, { m_k052109->tilemap_update(); - machine().priority_bitmap.fill(0, cliprect); + screen.priority().fill(0, cliprect); if (!m_video_enable) bitmap.fill(16 * m_layer_colorbase[0], cliprect); else { - m_k052109->tilemap_draw(bitmap, cliprect, 1, TILEMAP_DRAW_OPAQUE, 1); - m_k052109->tilemap_draw(bitmap, cliprect, 2, 0, 2); - m_k051960->k051960_sprites_draw(bitmap, cliprect, -1, -1); - m_k052109->tilemap_draw(bitmap, cliprect, 0, 0, 0); + m_k052109->tilemap_draw(screen, bitmap, cliprect, 1, TILEMAP_DRAW_OPAQUE, 1); + m_k052109->tilemap_draw(screen, bitmap, cliprect, 2, 0, 2); + m_k051960->k051960_sprites_draw(bitmap, cliprect, screen.priority(), -1, -1); + m_k052109->tilemap_draw(screen, bitmap, cliprect, 0, 0, 0); } return 0; diff --git a/src/mame/video/srumbler.c b/src/mame/video/srumbler.c index 031c9b74756..3210883b456 100644 --- a/src/mame/video/srumbler.c +++ b/src/mame/video/srumbler.c @@ -155,9 +155,9 @@ void srumbler_state::draw_sprites(bitmap_ind16 &bitmap, const rectangle &cliprec UINT32 srumbler_state::screen_update_srumbler(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect) { - m_bg_tilemap->draw(bitmap, cliprect, TILEMAP_DRAW_LAYER1,0); + m_bg_tilemap->draw(screen, bitmap, cliprect, TILEMAP_DRAW_LAYER1,0); draw_sprites(bitmap,cliprect); - m_bg_tilemap->draw(bitmap, cliprect, TILEMAP_DRAW_LAYER0,0); - m_fg_tilemap->draw(bitmap, cliprect, 0,0); + m_bg_tilemap->draw(screen, bitmap, cliprect, TILEMAP_DRAW_LAYER0,0); + m_fg_tilemap->draw(screen, bitmap, cliprect, 0,0); return 0; } diff --git a/src/mame/video/sshangha.c b/src/mame/video/sshangha.c index 75561f841a9..37f3c7b0dc5 100644 --- a/src/mame/video/sshangha.c +++ b/src/mame/video/sshangha.c @@ -44,13 +44,13 @@ UINT32 sshangha_state::screen_update_sshangha(screen_device &screen, bitmap_rgb3 /* the tilemap 4bpp + 4bpp = 8bpp mixing actually seems external to the tilemap, note video_control is not part of the tilemap chip */ if ((m_video_control&4)==0) { - m_deco_tilegen1->tilemap_12_combine_draw(bitmap, cliprect, 0, 0, 1); + m_deco_tilegen1->tilemap_12_combine_draw(screen, bitmap, cliprect, 0, 0, 1); m_sprgen1->inefficient_copy_sprite_bitmap(bitmap, cliprect, 0x0200, 0x0200, 0x100, 0x1ff); } else { - m_deco_tilegen1->tilemap_2_draw(bitmap, cliprect, 0, 0); + m_deco_tilegen1->tilemap_2_draw(screen, bitmap, cliprect, 0, 0); m_sprgen1->inefficient_copy_sprite_bitmap(bitmap, cliprect, 0x0200, 0x0200, 0x100, 0x1ff); - m_deco_tilegen1->tilemap_1_draw(bitmap, cliprect, 0, 0); + m_deco_tilegen1->tilemap_1_draw(screen, bitmap, cliprect, 0, 0); } if (m_spriteram2 != NULL) diff --git a/src/mame/video/sslam.c b/src/mame/video/sslam.c index f941db08d75..e7f0a34ffef 100644 --- a/src/mame/video/sslam.c +++ b/src/mame/video/sslam.c @@ -189,7 +189,7 @@ UINT32 sslam_state::screen_update_sslam(screen_device &screen, bitmap_ind16 &bit m_bg_tilemap->set_scrollx(0, m_regs[4]+4); m_bg_tilemap->set_scrolly(0, m_regs[5]+8); - m_bg_tilemap->draw(bitmap, cliprect, 0,0); + m_bg_tilemap->draw(screen, bitmap, cliprect, 0,0); /* remove wraparound from the tilemap (used on title screen) */ if (m_regs[2]+2 > 0x8c8) @@ -200,15 +200,15 @@ UINT32 sslam_state::screen_update_sslam(screen_device &screen, bitmap_ind16 &bit md_clip.min_y = cliprect.min_y; md_clip.max_y = cliprect.max_y; - m_md_tilemap->draw(bitmap, md_clip, 0,0); + m_md_tilemap->draw(screen, bitmap, md_clip, 0,0); } else { - m_md_tilemap->draw(bitmap, cliprect, 0,0); + m_md_tilemap->draw(screen, bitmap, cliprect, 0,0); } draw_sprites(bitmap,cliprect); - m_tx_tilemap->draw(bitmap, cliprect, 0,0); + m_tx_tilemap->draw(screen, bitmap, cliprect, 0,0); return 0; } @@ -223,7 +223,7 @@ UINT32 sslam_state::screen_update_powerbls(screen_device &screen, bitmap_ind16 & m_bg_tilemap->set_scrollx(0, m_regs[0]+21); m_bg_tilemap->set_scrolly(0, m_regs[1]-240); - m_bg_tilemap->draw(bitmap, cliprect, 0,0); + m_bg_tilemap->draw(screen, bitmap, cliprect, 0,0); draw_sprites(bitmap,cliprect); return 0; } diff --git a/src/mame/video/ssozumo.c b/src/mame/video/ssozumo.c index 8d243c3d591..f1fc764f0f5 100644 --- a/src/mame/video/ssozumo.c +++ b/src/mame/video/ssozumo.c @@ -171,8 +171,8 @@ void ssozumo_state::draw_sprites(bitmap_ind16 &bitmap, const rectangle &cliprect UINT32 ssozumo_state::screen_update_ssozumo(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect) { - m_bg_tilemap->draw(bitmap, cliprect, 0, 0); - m_fg_tilemap->draw(bitmap, cliprect, 0, 0); + m_bg_tilemap->draw(screen, bitmap, cliprect, 0, 0); + m_fg_tilemap->draw(screen, bitmap, cliprect, 0, 0); draw_sprites(bitmap, cliprect); return 0; } diff --git a/src/mame/video/ssrj.c b/src/mame/video/ssrj.c index dd7d190c5bb..47043d8e95e 100644 --- a/src/mame/video/ssrj.c +++ b/src/mame/video/ssrj.c @@ -277,11 +277,11 @@ UINT32 ssrj_state::screen_update_ssrj(screen_device &screen, bitmap_ind16 &bitma { m_tilemap1->set_scrollx(0, 0xff-m_scrollram[2] ); m_tilemap1->set_scrolly(0, m_scrollram[0] ); - m_tilemap1->draw(bitmap, cliprect, 0, 0); + m_tilemap1->draw(screen, bitmap, cliprect, 0, 0); draw_objects(bitmap, cliprect); - m_tilemap2->draw(bitmap, cliprect, 0, 0); + m_tilemap2->draw(screen, bitmap, cliprect, 0, 0); - if (m_scrollram[0x101] == 0xb) m_tilemap4->draw(bitmap, cliprect, 0, 0);/* hack to display 4th tilemap */ + if (m_scrollram[0x101] == 0xb) m_tilemap4->draw(screen, bitmap, cliprect, 0, 0);/* hack to display 4th tilemap */ return 0; } diff --git a/src/mame/video/ssv.c b/src/mame/video/ssv.c index 9552d16e283..bf4c534f34c 100644 --- a/src/mame/video/ssv.c +++ b/src/mame/video/ssv.c @@ -980,7 +980,7 @@ UINT32 ssv_state::screen_update_gdfs(screen_device &screen, bitmap_ind16 &bitmap m_gdfs_tmap->set_scrollx(0, m_gdfs_tmapscroll[0x0c/2]); m_gdfs_tmap->set_scrolly(0, m_gdfs_tmapscroll[0x10/2]); - m_gdfs_tmap->draw(bitmap, cliprect, 0, 0); + m_gdfs_tmap->draw(screen, bitmap, cliprect, 0, 0); return 0; } diff --git a/src/mame/video/stadhero.c b/src/mame/video/stadhero.c index 130f1467999..d82bca7051e 100644 --- a/src/mame/video/stadhero.c +++ b/src/mame/video/stadhero.c @@ -25,7 +25,7 @@ UINT32 stadhero_state::screen_update_stadhero(screen_device &screen, bitmap_ind1 m_tilegen1->set_bppmultmask(0x8, 0x7); m_tilegen1->deco_bac06_pf_draw(bitmap,cliprect,TILEMAP_DRAW_OPAQUE, 0x00, 0x00, 0x00, 0x00); machine().device("spritegen")->draw_sprites(machine(), bitmap, cliprect, m_spriteram, 0x00, 0x00, 0x0f); - m_pf1_tilemap->draw(bitmap, cliprect, 0,0); + m_pf1_tilemap->draw(screen, bitmap, cliprect, 0,0); return 0; } diff --git a/src/mame/video/starshp1.c b/src/mame/video/starshp1.c index d5058571280..495a460ea3f 100644 --- a/src/mame/video/starshp1.c +++ b/src/mame/video/starshp1.c @@ -365,7 +365,7 @@ UINT32 starshp1_state::screen_update_starshp1(screen_device &screen, bitmap_ind1 if (m_circle_kill == 0 && m_circle_mod == 0) draw_circle(bitmap); - m_bg_tilemap->draw(bitmap, cliprect, 0, 0); + m_bg_tilemap->draw(screen, bitmap, cliprect, 0, 0); if (m_phasor != 0) draw_phasor(bitmap); diff --git a/src/mame/video/stfight.c b/src/mame/video/stfight.c index 50a5b016f60..4d3ea9019c2 100644 --- a/src/mame/video/stfight.c +++ b/src/mame/video/stfight.c @@ -271,7 +271,7 @@ WRITE8_MEMBER(stfight_state::stfight_vh_latch_w) ***************************************************************************/ -void stfight_state::draw_sprites(bitmap_ind16 &bitmap, const rectangle &cliprect) +void stfight_state::draw_sprites(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect) { int offs,sx,sy; @@ -311,7 +311,7 @@ void stfight_state::draw_sprites(bitmap_ind16 &bitmap, const rectangle &cliprect color, flipx,flip_screen(), sx,sy, - machine().priority_bitmap, + screen.priority(), pri ? 0x02 : 0,0x0f); } } @@ -322,21 +322,21 @@ UINT32 stfight_state::screen_update_stfight(screen_device &screen, bitmap_ind16 { set_pens(); - machine().priority_bitmap.fill(0, cliprect); + screen.priority().fill(0, cliprect); bitmap.fill(0, cliprect); /* in case m_bg_tilemap is disabled */ - m_bg_tilemap->draw(bitmap, cliprect, 0,0); - m_fg_tilemap->draw(bitmap, cliprect, 0,1); + m_bg_tilemap->draw(screen, bitmap, cliprect, 0,0); + m_fg_tilemap->draw(screen, bitmap, cliprect, 0,1); /* Draw sprites (may be obscured by foreground layer) */ if (m_vh_latch_ram[0x07] & 0x40) - draw_sprites(bitmap,cliprect); + draw_sprites(screen,bitmap,cliprect); - m_tx_tilemap->draw(bitmap, cliprect, 0,0); + m_tx_tilemap->draw(screen, bitmap, cliprect, 0,0); return 0; } -void stfight_state::cshooter_draw_sprites(bitmap_ind16 &bitmap, const rectangle &cliprect) +void stfight_state::cshooter_draw_sprites(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect) { for (int i = m_sprite_ram.bytes() - 4; i >= 0 ; i -= 4) { @@ -355,10 +355,10 @@ void stfight_state::cshooter_draw_sprites(bitmap_ind16 &bitmap, const rectangle tile_low += (tile_low > 0x9) ? 0x37 : 0x30; tile_high += (tile_high > 0x9) ? 0x37 : 0x30; - pdrawgfx_transpen(bitmap,cliprect,machine().gfx[0], tile_high << 1, color, flipx, 0, m_sprite_ram[i+3],m_sprite_ram[i+2],machine().priority_bitmap,pri ? 0x02 : 0,0x00); - pdrawgfx_transpen(bitmap,cliprect,machine().gfx[0], tile_high << 1, color, flipx, 0, m_sprite_ram[i+3]+8,m_sprite_ram[i+2],machine().priority_bitmap,pri ? 0x02 : 0,0x00); - pdrawgfx_transpen(bitmap,cliprect,machine().gfx[0], tile_low << 1, color, flipx, 0, m_sprite_ram[i+3]+8,m_sprite_ram[i+2]+8,machine().priority_bitmap,pri ? 0x02 : 0,0x00); - pdrawgfx_transpen(bitmap,cliprect,machine().gfx[0], tile_low << 1, color, flipx, 0, m_sprite_ram[i+3],m_sprite_ram[i+2]+8,machine().priority_bitmap,pri ? 0x02 : 0,0x00); + pdrawgfx_transpen(bitmap,cliprect,machine().gfx[0], tile_high << 1, color, flipx, 0, m_sprite_ram[i+3],m_sprite_ram[i+2],screen.priority(),pri ? 0x02 : 0,0x00); + pdrawgfx_transpen(bitmap,cliprect,machine().gfx[0], tile_high << 1, color, flipx, 0, m_sprite_ram[i+3]+8,m_sprite_ram[i+2],screen.priority(),pri ? 0x02 : 0,0x00); + pdrawgfx_transpen(bitmap,cliprect,machine().gfx[0], tile_low << 1, color, flipx, 0, m_sprite_ram[i+3]+8,m_sprite_ram[i+2]+8,screen.priority(),pri ? 0x02 : 0,0x00); + pdrawgfx_transpen(bitmap,cliprect,machine().gfx[0], tile_low << 1, color, flipx, 0, m_sprite_ram[i+3],m_sprite_ram[i+2]+8,screen.priority(),pri ? 0x02 : 0,0x00); } } @@ -366,16 +366,16 @@ UINT32 stfight_state::screen_update_cshooter(screen_device &screen, bitmap_ind16 { set_pens(); - machine().priority_bitmap.fill(0, cliprect); + screen.priority().fill(0, cliprect); bitmap.fill(0, cliprect); /* in case m_bg_tilemap is disabled */ - m_bg_tilemap->draw(bitmap, cliprect, 0,0); - m_fg_tilemap->draw(bitmap, cliprect, 0,1); + m_bg_tilemap->draw(screen, bitmap, cliprect, 0,0); + m_fg_tilemap->draw(screen, bitmap, cliprect, 0,1); /* Draw sprites (may be obscured by foreground layer) */ // if (m_vh_latch_ram[0x07] & 0x40) - cshooter_draw_sprites(bitmap,cliprect); + cshooter_draw_sprites(screen,bitmap,cliprect); - m_tx_tilemap->draw(bitmap, cliprect, 0,0); + m_tx_tilemap->draw(screen, bitmap, cliprect, 0,0); return 0; } diff --git a/src/mame/video/stlforce.c b/src/mame/video/stlforce.c index 21472e14516..f778827927e 100644 --- a/src/mame/video/stlforce.c +++ b/src/mame/video/stlforce.c @@ -162,11 +162,11 @@ UINT32 stlforce_state::screen_update_stlforce(screen_device &screen, bitmap_ind1 m_tx_tilemap->set_scrollx(0, m_vidattrram[0]+8); m_tx_tilemap->set_scrolly(0,m_vidattrram[4]); - m_bg_tilemap->draw(bitmap, cliprect, 0,0); - m_mlow_tilemap->draw(bitmap, cliprect, 0,0); - m_mhigh_tilemap->draw(bitmap, cliprect, 0,0); + m_bg_tilemap->draw(screen, bitmap, cliprect, 0,0); + m_mlow_tilemap->draw(screen, bitmap, cliprect, 0,0); + m_mhigh_tilemap->draw(screen, bitmap, cliprect, 0,0); draw_sprites(bitmap,cliprect); - m_tx_tilemap->draw(bitmap, cliprect, 0,0); + m_tx_tilemap->draw(screen, bitmap, cliprect, 0,0); return 0; } diff --git a/src/mame/video/strnskil.c b/src/mame/video/strnskil.c index 6b905b6c2b8..916c811eb86 100644 --- a/src/mame/video/strnskil.c +++ b/src/mame/video/strnskil.c @@ -140,7 +140,7 @@ UINT32 strnskil_state::screen_update_strnskil(screen_device &screen, bitmap_ind1 } } - m_bg_tilemap->draw(bitmap, cliprect, 0, 0); + m_bg_tilemap->draw(screen, bitmap, cliprect, 0, 0); draw_sprites(bitmap, cliprect); return 0; } diff --git a/src/mame/video/suna8.c b/src/mame/video/suna8.c index b91bd0b94b8..2d4378b5767 100644 --- a/src/mame/video/suna8.c +++ b/src/mame/video/suna8.c @@ -486,7 +486,7 @@ UINT32 suna8_state::screen_update_suna8(screen_device &screen, bitmap_ind16 &bit m_bg_tilemap->set_scrollx(0, 0x100 * m_page); m_bg_tilemap->set_scrolly(0, 0); - m_bg_tilemap->draw(bitmap, cliprect, 0, 0); + m_bg_tilemap->draw(screen, bitmap, cliprect, 0, 0); #if 1 popmessage("%02X %02X %02X - p%2X g%02X r%02X", m_rombank, m_palettebank, m_spritebank, diff --git a/src/mame/video/supbtime.c b/src/mame/video/supbtime.c index 0383bc52242..bd71101f4a1 100644 --- a/src/mame/video/supbtime.c +++ b/src/mame/video/supbtime.c @@ -30,8 +30,8 @@ UINT32 supbtime_state::screen_update_supbtime(screen_device &screen, bitmap_ind1 bitmap.fill(768, cliprect); - m_deco_tilegen1->tilemap_2_draw(bitmap, cliprect, 0, 0); + m_deco_tilegen1->tilemap_2_draw(screen, bitmap, cliprect, 0, 0); m_sprgen->draw_sprites(bitmap, cliprect, m_spriteram, 0x400); - m_deco_tilegen1->tilemap_1_draw(bitmap, cliprect, 0, 0); + m_deco_tilegen1->tilemap_1_draw(screen, bitmap, cliprect, 0, 0); return 0; } diff --git a/src/mame/video/superchs.c b/src/mame/video/superchs.c index 2bb4e2c9e06..3a009acaa76 100644 --- a/src/mame/video/superchs.c +++ b/src/mame/video/superchs.c @@ -52,7 +52,7 @@ Heavy use is made of sprite zooming. ********************************************************/ -void superchs_state::draw_sprites(bitmap_ind16 &bitmap,const rectangle &cliprect,const int *primasks,int x_offs,int y_offs) +void superchs_state::draw_sprites(screen_device &screen, bitmap_ind16 &bitmap,const rectangle &cliprect,const int *primasks,int x_offs,int y_offs) { UINT32 *spriteram32 = m_spriteram; UINT16 *spritemap = (UINT16 *)memregion("user1")->base(); @@ -187,7 +187,7 @@ logerror("Sprite number %04x had %02x invalid chunks\n",tilenum,bad_chunks); sprite_ptr->flipx,sprite_ptr->flipy, sprite_ptr->x,sprite_ptr->y, sprite_ptr->zoomx,sprite_ptr->zoomy, - machine().priority_bitmap,sprite_ptr->primask,0); + screen.priority(),sprite_ptr->primask,0); } } @@ -211,25 +211,25 @@ UINT32 superchs_state::screen_update_superchs(screen_device &screen, bitmap_ind1 layer[3] = (priority & 0x000f) >> 0; /* tells us which is top */ layer[4] = 4; /* text layer always over bg layers */ - machine().priority_bitmap.fill(0, cliprect); + screen.priority().fill(0, cliprect); /* We have to assume 2nd to bottom layer is always underneath sprites as pdrawgfx cannot yet cope with more than 4 layers */ #ifdef MAME_DEBUG - if (!machine().input().code_pressed (KEYCODE_Z)) m_tc0480scp->tilemap_draw(bitmap, cliprect, layer[0], TILEMAP_DRAW_OPAQUE, 0); - if (!machine().input().code_pressed (KEYCODE_X)) m_tc0480scp->tilemap_draw(bitmap, cliprect, layer[1], 0, 1); - if (!machine().input().code_pressed (KEYCODE_C)) m_tc0480scp->tilemap_draw(bitmap, cliprect, layer[2], 0, 2); - if (!machine().input().code_pressed (KEYCODE_V)) m_tc0480scp->tilemap_draw(bitmap, cliprect, layer[3], 0, 4); - if (!machine().input().code_pressed (KEYCODE_B)) m_tc0480scp->tilemap_draw(bitmap, cliprect, layer[4], 0, 8); - if (!machine().input().code_pressed (KEYCODE_N)) draw_sprites(bitmap, cliprect, primasks, 48, -116); + if (!machine().input().code_pressed (KEYCODE_Z)) m_tc0480scp->tilemap_draw(screen, bitmap, cliprect, layer[0], TILEMAP_DRAW_OPAQUE, 0); + if (!machine().input().code_pressed (KEYCODE_X)) m_tc0480scp->tilemap_draw(screen, bitmap, cliprect, layer[1], 0, 1); + if (!machine().input().code_pressed (KEYCODE_C)) m_tc0480scp->tilemap_draw(screen, bitmap, cliprect, layer[2], 0, 2); + if (!machine().input().code_pressed (KEYCODE_V)) m_tc0480scp->tilemap_draw(screen, bitmap, cliprect, layer[3], 0, 4); + if (!machine().input().code_pressed (KEYCODE_B)) m_tc0480scp->tilemap_draw(screen, bitmap, cliprect, layer[4], 0, 8); + if (!machine().input().code_pressed (KEYCODE_N)) draw_sprites(screen, bitmap, cliprect, primasks, 48, -116); #else - m_tc0480scp->tilemap_draw(bitmap, cliprect, layer[0], TILEMAP_DRAW_OPAQUE, 0); - m_tc0480scp->tilemap_draw(bitmap, cliprect, layer[1], 0, 1); - m_tc0480scp->tilemap_draw(bitmap, cliprect, layer[2], 0, 2); - m_tc0480scp->tilemap_draw(bitmap, cliprect, layer[3], 0, 4); - m_tc0480scp->tilemap_draw(bitmap, cliprect, layer[4], 0, 8); /* text layer */ - draw_sprites(bitmap, cliprect, primasks, 48, -116); + m_tc0480scp->tilemap_draw(screen, bitmap, cliprect, layer[0], TILEMAP_DRAW_OPAQUE, 0); + m_tc0480scp->tilemap_draw(screen, bitmap, cliprect, layer[1], 0, 1); + m_tc0480scp->tilemap_draw(screen, bitmap, cliprect, layer[2], 0, 2); + m_tc0480scp->tilemap_draw(screen, bitmap, cliprect, layer[3], 0, 4); + m_tc0480scp->tilemap_draw(screen, bitmap, cliprect, layer[4], 0, 8); /* text layer */ + draw_sprites(screen, bitmap, cliprect, primasks, 48, -116); #endif return 0; } diff --git a/src/mame/video/superqix.c b/src/mame/video/superqix.c index eac4a11119e..f90f303b2c7 100644 --- a/src/mame/video/superqix.c +++ b/src/mame/video/superqix.c @@ -216,7 +216,7 @@ void superqix_state::superqix_draw_sprites(bitmap_ind16 &bitmap,const rectangle UINT32 superqix_state::screen_update_pbillian(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect) { - m_bg_tilemap->draw(bitmap, cliprect, 0, 0); + m_bg_tilemap->draw(screen, bitmap, cliprect, 0, 0); pbillian_draw_sprites(bitmap,cliprect); return 0; @@ -224,9 +224,9 @@ UINT32 superqix_state::screen_update_pbillian(screen_device &screen, bitmap_ind1 UINT32 superqix_state::screen_update_superqix(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect) { - m_bg_tilemap->draw(bitmap, cliprect, TILEMAP_DRAW_LAYER1, 0); + m_bg_tilemap->draw(screen, bitmap, cliprect, TILEMAP_DRAW_LAYER1, 0); copybitmap_trans(bitmap,*m_fg_bitmap[m_show_bitmap],flip_screen(),flip_screen(),0,0,cliprect,0); superqix_draw_sprites(bitmap,cliprect); - m_bg_tilemap->draw(bitmap, cliprect, TILEMAP_DRAW_LAYER0, 0); + m_bg_tilemap->draw(screen, bitmap, cliprect, TILEMAP_DRAW_LAYER0, 0); return 0; } diff --git a/src/mame/video/suprloco.c b/src/mame/video/suprloco.c index 69ad0bd4ab4..0e9b51cbf74 100644 --- a/src/mame/video/suprloco.c +++ b/src/mame/video/suprloco.c @@ -259,8 +259,8 @@ void suprloco_state::draw_sprites(bitmap_ind16 &bitmap, const rectangle &cliprec UINT32 suprloco_state::screen_update_suprloco(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect) { - m_bg_tilemap->draw(bitmap, cliprect, 0,0); + m_bg_tilemap->draw(screen, bitmap, cliprect, 0,0); draw_sprites(bitmap,cliprect); - m_bg_tilemap->draw(bitmap, cliprect, 1,0); + m_bg_tilemap->draw(screen, bitmap, cliprect, 1,0); return 0; } diff --git a/src/mame/video/suprridr.c b/src/mame/video/suprridr.c index 921ddf17a3b..9eee435d1ce 100644 --- a/src/mame/video/suprridr.c +++ b/src/mame/video/suprridr.c @@ -167,23 +167,23 @@ UINT32 suprridr_state::screen_update_suprridr(screen_device &screen, bitmap_ind1 subclip = visarea;; subclip.max_x = subclip.min_x + (m_flipx ? 1*8 : 4*8) - 1; subclip &= cliprect; - m_bg_tilemap_noscroll->draw(bitmap, subclip, 0, 0); + m_bg_tilemap_noscroll->draw(screen, bitmap, subclip, 0, 0); /* render right 1 column with no scroll */ subclip = visarea;; subclip.min_x = subclip.max_x - (m_flipx ? 4*8 : 1*8) + 1; subclip &= cliprect; - m_bg_tilemap_noscroll->draw(bitmap, subclip, 0, 0); + m_bg_tilemap_noscroll->draw(screen, bitmap, subclip, 0, 0); /* render the middle columns normally */ subclip = visarea;; subclip.min_x += m_flipx ? 1*8 : 4*8; subclip.max_x -= m_flipx ? 4*8 : 1*8; subclip &= cliprect; - m_bg_tilemap->draw(bitmap, subclip, 0, 0); + m_bg_tilemap->draw(screen, bitmap, subclip, 0, 0); /* render the top layer */ - m_fg_tilemap->draw(bitmap, cliprect, 0, 0); + m_fg_tilemap->draw(screen, bitmap, cliprect, 0, 0); /* draw the sprites */ for (i = 0; i < 48; i++) diff --git a/src/mame/video/suprslam.c b/src/mame/video/suprslam.c index 79bd060c697..78bccd5e554 100644 --- a/src/mame/video/suprslam.c +++ b/src/mame/video/suprslam.c @@ -66,12 +66,12 @@ UINT32 suprslam_state::screen_update_suprslam(screen_device &screen, bitmap_ind1 m_screen_tilemap->set_scrollx(0, m_screen_vregs[0x04/2] ); bitmap.fill(get_black_pen(machine()), cliprect); - m_k053936->zoom_draw(bitmap, cliprect, m_bg_tilemap, 0, 0, 1); + m_k053936->zoom_draw(screen, bitmap, cliprect, m_bg_tilemap, 0, 0, 1); if(!(m_spr_ctrl[0] & 8)) - m_spr->draw_sprites(m_spriteram, m_spriteram.bytes(), machine(), bitmap, cliprect); - m_screen_tilemap->draw(bitmap, cliprect, 0, 0); + m_spr->draw_sprites(m_spriteram, m_spriteram.bytes(), screen, bitmap, cliprect); + m_screen_tilemap->draw(screen, bitmap, cliprect, 0, 0); if(m_spr_ctrl[0] & 8) - m_spr->draw_sprites(m_spriteram, m_spriteram.bytes(), machine(), bitmap, cliprect); + m_spr->draw_sprites(m_spriteram, m_spriteram.bytes(), screen, bitmap, cliprect); return 0; } diff --git a/src/mame/video/surpratk.c b/src/mame/video/surpratk.c index 085b09ec979..6d5a930a3bd 100644 --- a/src/mame/video/surpratk.c +++ b/src/mame/video/surpratk.c @@ -67,12 +67,12 @@ UINT32 surpratk_state::screen_update_surpratk(screen_device &screen, bitmap_ind1 konami_sortlayers3(layer, m_layerpri); - machine().priority_bitmap.fill(0, cliprect); + screen.priority().fill(0, cliprect); bitmap.fill(16 * bg_colorbase, cliprect); - m_k052109->tilemap_draw(bitmap, cliprect, layer[0], 0, 1); - m_k052109->tilemap_draw(bitmap, cliprect, layer[1], 0, 2); - m_k052109->tilemap_draw(bitmap, cliprect, layer[2], 0, 4); + m_k052109->tilemap_draw(screen, bitmap, cliprect, layer[0], 0, 1); + m_k052109->tilemap_draw(screen, bitmap, cliprect, layer[1], 0, 2); + m_k052109->tilemap_draw(screen, bitmap, cliprect, layer[2], 0, 4); - m_k053244->k053245_sprites_draw(bitmap, cliprect); + m_k053244->k053245_sprites_draw(bitmap, cliprect, screen.priority()); return 0; } diff --git a/src/mame/video/system16.c b/src/mame/video/system16.c index 25dc8fe4369..08fbd8a358c 100644 --- a/src/mame/video/system16.c +++ b/src/mame/video/system16.c @@ -626,12 +626,12 @@ UINT32 segas1x_bootleg_state::screen_update_s16a_bootleg(screen_device &screen, m_bg_tilemaps[0]->set_scrollx(0, m_fg_scrollx + offset_bg0x); m_bg_tilemaps[0]->set_scrolly(0, m_fg_scrolly + offset_bg0y + m_fore_yscroll); - m_bg_tilemaps[0]->draw(bitmap, cliprect, TILEMAP_DRAW_OPAQUE, 0); - m_bg_tilemaps[1]->draw(bitmap, cliprect, 0, 0); + m_bg_tilemaps[0]->draw(screen, bitmap, cliprect, TILEMAP_DRAW_OPAQUE, 0); + m_bg_tilemaps[1]->draw(screen, bitmap, cliprect, 0, 0); m_text_tilemap->set_scrolly(0, m_text_yscroll); - m_text_tilemap->draw(bitmap, cliprect, 0, 0); + m_text_tilemap->draw(screen, bitmap, cliprect, 0, 0); } else if ((m_tilemapselect & 0xff) == 0x21) { @@ -640,12 +640,12 @@ UINT32 segas1x_bootleg_state::screen_update_s16a_bootleg(screen_device &screen, m_bg_tilemaps[1]->set_scrollx(0, m_fg_scrollx + 187 ); m_bg_tilemaps[1]->set_scrolly(0, m_fg_scrolly + 1 + m_fore_yscroll ); - m_bg_tilemaps[1]->draw(bitmap, cliprect, TILEMAP_DRAW_OPAQUE, 0); - m_bg_tilemaps[0]->draw(bitmap, cliprect, 0, 0); + m_bg_tilemaps[1]->draw(screen, bitmap, cliprect, TILEMAP_DRAW_OPAQUE, 0); + m_bg_tilemaps[0]->draw(screen, bitmap, cliprect, 0, 0); m_text_tilemap->set_scrolly(0, m_text_yscroll); - m_text_tilemap->draw(bitmap, cliprect, 0, 0); + m_text_tilemap->draw(screen, bitmap, cliprect, 0, 0); } // mix in sprites @@ -655,7 +655,7 @@ UINT32 segas1x_bootleg_state::screen_update_s16a_bootleg(screen_device &screen, { UINT16 *dest = &bitmap.pix(y); UINT16 *src = &sprites.pix(y); -// UINT8 *pri = &machine().priority_bitmap.pix(y); +// UINT8 *pri = &screen.priority().pix(y); for (int x = rect->min_x; x <= rect->max_x; x++) { // only process written pixels @@ -713,9 +713,9 @@ UINT32 segas1x_bootleg_state::screen_update_s16a_bootleg_passht4b(screen_device m_bg_tilemaps[0]->set_scrollx(0, (m_fg_scrollx ^ 0x7) + offset_bg0x); m_bg_tilemaps[0]->set_scrolly(0, m_fg_scrolly + offset_bg0y); - m_bg_tilemaps[0]->draw(bitmap, cliprect, TILEMAP_DRAW_OPAQUE, 0); - m_bg_tilemaps[1]->draw(bitmap, cliprect, 0, 0); - m_text_tilemap->draw(bitmap, cliprect, 0, 0); + m_bg_tilemaps[0]->draw(screen, bitmap, cliprect, TILEMAP_DRAW_OPAQUE, 0); + m_bg_tilemaps[1]->draw(screen, bitmap, cliprect, 0, 0); + m_text_tilemap->draw(screen, bitmap, cliprect, 0, 0); } // mix in sprites @@ -725,7 +725,7 @@ UINT32 segas1x_bootleg_state::screen_update_s16a_bootleg_passht4b(screen_device { UINT16 *dest = &bitmap.pix(y); UINT16 *src = &sprites.pix(y); -// UINT8 *pri = &machine().priority_bitmap.pix(y); +// UINT8 *pri = &screen.priority().pix(y); for (int x = rect->min_x; x <= rect->max_x; x++) { // only process written pixels @@ -768,7 +768,7 @@ UINT32 segas1x_bootleg_state::screen_update_system16(screen_device &screen, bitm update_page(); - machine().priority_bitmap.fill(0, cliprect); + screen.priority().fill(0, cliprect); m_background->set_scrollx(0, -320 - m_bg_scrollx); m_background->set_scrolly(0, -256 + m_bg_scrolly + m_back_yscroll); @@ -779,20 +779,20 @@ UINT32 segas1x_bootleg_state::screen_update_system16(screen_device &screen, bitm m_text_layer->set_scrolly(0, 0 + m_text_yscroll); /* Background */ - m_background->draw(bitmap, cliprect, TILEMAP_DRAW_OPAQUE, 0x00); + m_background->draw(screen, bitmap, cliprect, TILEMAP_DRAW_OPAQUE, 0x00); /* Foreground */ - m_foreground->draw(bitmap, cliprect, 0, 0x03); - m_foreground->draw(bitmap, cliprect, 1, 0x07); + m_foreground->draw(screen, bitmap, cliprect, 0, 0x03); + m_foreground->draw(screen, bitmap, cliprect, 1, 0x07); /* Text Layer */ if (m_textlayer_lo_max != 0) { - m_text_layer->draw(bitmap, cliprect, 1, 7);// needed for Body Slam + m_text_layer->draw(screen, bitmap, cliprect, 1, 7);// needed for Body Slam } - m_text_layer->draw(bitmap, cliprect, 0, 0xf); + m_text_layer->draw(screen, bitmap, cliprect, 0, 0xf); //draw_sprites(machine(), bitmap, cliprect,0); @@ -804,7 +804,7 @@ UINT32 segas1x_bootleg_state::screen_update_system16(screen_device &screen, bitm { UINT16 *dest = &bitmap.pix(y); UINT16 *src = &sprites.pix(y); -// UINT8 *pri = &machine().priority_bitmap.pix(y); +// UINT8 *pri = &screen.priority().pix(y); for (int x = rect->min_x; x <= rect->max_x; x++) { // only process written pixels @@ -844,21 +844,21 @@ UINT32 segas1x_bootleg_state::screen_update_system18old(screen_device &screen, b update_page(); - machine().priority_bitmap.fill(0); + screen.priority().fill(0); bitmap.fill(0, cliprect); - m_background->draw(bitmap, cliprect, TILEMAP_DRAW_OPAQUE, 0); - m_background->draw(bitmap, cliprect, TILEMAP_DRAW_OPAQUE | 1, 0); //?? - m_background->draw(bitmap, cliprect, TILEMAP_DRAW_OPAQUE | 2, 0); //?? - m_background->draw(bitmap, cliprect, 1, 0x1); - m_background->draw(bitmap, cliprect, 2, 0x3); + m_background->draw(screen, bitmap, cliprect, TILEMAP_DRAW_OPAQUE, 0); + m_background->draw(screen, bitmap, cliprect, TILEMAP_DRAW_OPAQUE | 1, 0); //?? + m_background->draw(screen, bitmap, cliprect, TILEMAP_DRAW_OPAQUE | 2, 0); //?? + m_background->draw(screen, bitmap, cliprect, 1, 0x1); + m_background->draw(screen, bitmap, cliprect, 2, 0x3); - m_foreground->draw(bitmap, cliprect, 0, 0x3); - m_foreground->draw(bitmap, cliprect, 1, 0x7); + m_foreground->draw(screen, bitmap, cliprect, 0, 0x3); + m_foreground->draw(screen, bitmap, cliprect, 1, 0x7); - m_text_layer->draw(bitmap, cliprect, 1, 0x7); - m_text_layer->draw(bitmap, cliprect, 0, 0xf); + m_text_layer->draw(screen, bitmap, cliprect, 1, 0x7); + m_text_layer->draw(screen, bitmap, cliprect, 0, 0xf); // mix in sprites bitmap_ind16 &sprites = m_sprites->bitmap(); @@ -867,7 +867,7 @@ UINT32 segas1x_bootleg_state::screen_update_system18old(screen_device &screen, b { UINT16 *dest = &bitmap.pix(y); UINT16 *src = &sprites.pix(y); -// UINT8 *pri = &machine().priority_bitmap.pix(y); +// UINT8 *pri = &screen.priority().pix(y); for (int x = rect->min_x; x <= rect->max_x; x++) { // only process written pixels diff --git a/src/mame/video/tagteam.c b/src/mame/video/tagteam.c index 31bd27fc7e8..e4a09b9531b 100644 --- a/src/mame/video/tagteam.c +++ b/src/mame/video/tagteam.c @@ -186,7 +186,7 @@ void tagteam_state::draw_sprites(bitmap_ind16 &bitmap, const rectangle &cliprect UINT32 tagteam_state::screen_update_tagteam(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect) { - m_bg_tilemap->draw(bitmap, cliprect, 0, 0); + m_bg_tilemap->draw(screen, bitmap, cliprect, 0, 0); draw_sprites(bitmap, cliprect); return 0; } diff --git a/src/mame/video/tail2nos.c b/src/mame/video/tail2nos.c index dafa2df4b8c..db1aa0edcec 100644 --- a/src/mame/video/tail2nos.c +++ b/src/mame/video/tail2nos.c @@ -169,9 +169,9 @@ UINT32 tail2nos_state::screen_update_tail2nos(screen_device &screen, bitmap_ind1 { if (m_video_enable) { - m_k051316->zoom_draw(bitmap, cliprect, 0, 0); + m_k051316->zoom_draw(screen, bitmap, cliprect, 0, 0); draw_sprites(bitmap, cliprect); - m_bg_tilemap->draw(bitmap, cliprect, 0, 0); + m_bg_tilemap->draw(screen, bitmap, cliprect, 0, 0); } else bitmap.fill(0, cliprect); diff --git a/src/mame/video/taito_b.c b/src/mame/video/taito_b.c index daeea5bd065..b71ec045b4f 100644 --- a/src/mame/video/taito_b.c +++ b/src/mame/video/taito_b.c @@ -370,11 +370,11 @@ UINT32 taitob_state::screen_update_taitob(screen_device &screen, bitmap_ind16 &b } /* Draw playfields */ - m_tc0180vcu->tilemap_draw(bitmap, cliprect, 0, 1); + m_tc0180vcu->tilemap_draw(screen, bitmap, cliprect, 0, 1); draw_framebuffer(bitmap, cliprect, 1); - m_tc0180vcu->tilemap_draw(bitmap, cliprect, 1, 0); + m_tc0180vcu->tilemap_draw(screen, bitmap, cliprect, 1, 0); if (m_pixel_bitmap) /* hitice only */ { @@ -387,7 +387,7 @@ UINT32 taitob_state::screen_update_taitob(screen_device &screen, bitmap_ind16 &b draw_framebuffer(bitmap, cliprect, 0); - m_tc0180vcu->tilemap_draw(bitmap, cliprect, 2, 0); + m_tc0180vcu->tilemap_draw(screen, bitmap, cliprect, 2, 0); return 0; } @@ -409,11 +409,11 @@ UINT32 taitob_state::screen_update_realpunc(screen_device &screen, bitmap_rgb32 } /* Draw the palettized playfields to an indexed bitmap */ - m_tc0180vcu->tilemap_draw(*m_realpunc_bitmap, cliprect, 0, 1); + m_tc0180vcu->tilemap_draw(screen, *m_realpunc_bitmap, cliprect, 0, 1); draw_framebuffer(*m_realpunc_bitmap, cliprect, 1); - m_tc0180vcu->tilemap_draw(*m_realpunc_bitmap, cliprect, 1, 0); + m_tc0180vcu->tilemap_draw(screen, *m_realpunc_bitmap, cliprect, 1, 0); if (m_realpunc_video_ctrl & 0x0001) draw_framebuffer(*m_realpunc_bitmap, cliprect, 0); @@ -469,7 +469,7 @@ UINT32 taitob_state::screen_update_realpunc(screen_device &screen, bitmap_rgb32 if (!(m_realpunc_video_ctrl & 0x0001)) draw_framebuffer(*m_realpunc_bitmap, cliprect, 0); - m_tc0180vcu->tilemap_draw(*m_realpunc_bitmap, cliprect, 2, 0); + m_tc0180vcu->tilemap_draw(screen, *m_realpunc_bitmap, cliprect, 2, 0); /* Merge the indexed layers with the output bitmap */ for (y = 0; y <= cliprect.max_y; y++) @@ -496,7 +496,7 @@ void taitob_state::screen_eof_taitob(screen_device &screen, bool state) UINT8 framebuffer_page = m_tc0180vcu->get_fb_page(space, 0); if (~video_control & 0x01) - m_framebuffer[framebuffer_page]->fill(0, machine().primary_screen->visible_area()); + m_framebuffer[framebuffer_page]->fill(0, screen.visible_area()); if (~video_control & 0x80) { @@ -504,6 +504,6 @@ void taitob_state::screen_eof_taitob(screen_device &screen, bool state) m_tc0180vcu->set_fb_page(space, 0, framebuffer_page); } - draw_sprites(*m_framebuffer[framebuffer_page], machine().primary_screen->visible_area()); + draw_sprites(*m_framebuffer[framebuffer_page], screen.visible_area()); } } diff --git a/src/mame/video/taito_f2.c b/src/mame/video/taito_f2.c index 38cc385ab77..93a75c70010 100644 --- a/src/mame/video/taito_f2.c +++ b/src/mame/video/taito_f2.c @@ -269,12 +269,12 @@ WRITE16_MEMBER(taitof2_state::koshien_spritebank_w) m_spritebank_buffered[7] = m_spritebank_buffered[6] + 0x400; } -void taitof2_state::taito_f2_tc360_spritemixdraw( bitmap_ind16 &dest_bmp, const rectangle &clip, gfx_element *gfx, +void taitof2_state::taito_f2_tc360_spritemixdraw( screen_device &screen, bitmap_ind16 &dest_bmp, const rectangle &clip, gfx_element *gfx, UINT32 code, UINT32 color, int flipx, int flipy, int sx, int sy, int scalex, int scaley ) { int pal_base = gfx->colorbase() + gfx->granularity() * (color % gfx->colors()); const UINT8 *source_base = gfx->get_data(code % gfx->elements()); - bitmap_ind8 &priority_bitmap = gfx->machine().priority_bitmap; + bitmap_ind8 &priority_bitmap = screen.priority(); int sprite_screen_height = (scaley * gfx->height() + 0x8000) >> 16; int sprite_screen_width = (scalex * gfx->width() + 0x8000) >> 16; @@ -414,7 +414,7 @@ void taitof2_state::taito_f2_tc360_spritemixdraw( bitmap_ind16 &dest_bmp, const } } -void taitof2_state::draw_sprites( bitmap_ind16 &bitmap, const rectangle &cliprect, int *primasks, int uses_tc360_mixer ) +void taitof2_state::draw_sprites( screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect, int *primasks, int uses_tc360_mixer ) { /* Sprite format: @@ -784,9 +784,9 @@ void taitof2_state::draw_sprites( bitmap_ind16 &bitmap, const rectangle &cliprec sprite_ptr->flipx,sprite_ptr->flipy, sprite_ptr->x,sprite_ptr->y, sprite_ptr->zoomx,sprite_ptr->zoomy, - machine().priority_bitmap,sprite_ptr->primask,0); + screen.priority(),sprite_ptr->primask,0); else - taito_f2_tc360_spritemixdraw(bitmap,cliprect,machine().gfx[0], + taito_f2_tc360_spritemixdraw(screen,bitmap,cliprect,machine().gfx[0], sprite_ptr->code, sprite_ptr->color, sprite_ptr->flipx,sprite_ptr->flipy, @@ -973,9 +973,9 @@ UINT32 taitof2_state::screen_update_taitof2_ssi(screen_device &screen, bitmap_in /* SSI only uses sprites, the tilemap registers are not even initialized. (they are in Majestic 12, but the tilemaps are not used anyway) */ - machine().priority_bitmap.fill(0, cliprect); + screen.priority().fill(0, cliprect); bitmap.fill(0, cliprect); - draw_sprites(bitmap, cliprect, NULL, 0); + draw_sprites(screen, bitmap, cliprect, NULL, 0); return 0; } @@ -986,12 +986,12 @@ UINT32 taitof2_state::screen_update_taitof2_yesnoj(screen_device &screen, bitmap m_tc0100scn->tilemap_update(); - machine().priority_bitmap.fill(0, cliprect); + screen.priority().fill(0, cliprect); bitmap.fill(0, cliprect); /* wrong color? */ - draw_sprites(bitmap, cliprect, NULL, 0); - m_tc0100scn->tilemap_draw(bitmap, cliprect, m_tc0100scn->bottomlayer(), 0, 0); - m_tc0100scn->tilemap_draw(bitmap, cliprect, m_tc0100scn->bottomlayer() ^ 1, 0, 0); - m_tc0100scn->tilemap_draw(bitmap, cliprect, 2, 0, 0); + draw_sprites(screen, bitmap, cliprect, NULL, 0); + m_tc0100scn->tilemap_draw(screen, bitmap, cliprect, m_tc0100scn->bottomlayer(), 0, 0); + m_tc0100scn->tilemap_draw(screen, bitmap, cliprect, m_tc0100scn->bottomlayer() ^ 1, 0, 0); + m_tc0100scn->tilemap_draw(screen, bitmap, cliprect, 2, 0, 0); return 0; } @@ -1002,12 +1002,12 @@ UINT32 taitof2_state::screen_update_taitof2(screen_device &screen, bitmap_ind16 m_tc0100scn->tilemap_update(); - machine().priority_bitmap.fill(0, cliprect); + screen.priority().fill(0, cliprect); bitmap.fill(0, cliprect); /* wrong color? */ - m_tc0100scn->tilemap_draw(bitmap, cliprect, m_tc0100scn->bottomlayer(), 0, 0); - m_tc0100scn->tilemap_draw(bitmap, cliprect, m_tc0100scn->bottomlayer() ^ 1, 0, 0); - draw_sprites(bitmap, cliprect, NULL, 0); - m_tc0100scn->tilemap_draw(bitmap, cliprect, 2, 0, 0); + m_tc0100scn->tilemap_draw(screen, bitmap, cliprect, m_tc0100scn->bottomlayer(), 0, 0); + m_tc0100scn->tilemap_draw(screen, bitmap, cliprect, m_tc0100scn->bottomlayer() ^ 1, 0, 0); + draw_sprites(screen, bitmap, cliprect, NULL, 0); + m_tc0100scn->tilemap_draw(screen, bitmap, cliprect, 2, 0, 0); return 0; } @@ -1035,26 +1035,26 @@ UINT32 taitof2_state::screen_update_taitof2_pri(screen_device &screen, bitmap_in m_spriteblendmode = m_tc0360pri->read(space, 0) & 0xc0; - machine().priority_bitmap.fill(0, cliprect); + screen.priority().fill(0, cliprect); bitmap.fill(0, cliprect); /* wrong color? */ - m_tc0100scn->tilemap_draw(bitmap, cliprect, layer[0], 0, 1); - m_tc0100scn->tilemap_draw(bitmap, cliprect, layer[1], 0, 2); - m_tc0100scn->tilemap_draw(bitmap, cliprect, layer[2], 0, 4); + m_tc0100scn->tilemap_draw(screen, bitmap, cliprect, layer[0], 0, 1); + m_tc0100scn->tilemap_draw(screen, bitmap, cliprect, layer[1], 0, 2); + m_tc0100scn->tilemap_draw(screen, bitmap, cliprect, layer[2], 0, 4); - draw_sprites(bitmap, cliprect, NULL, 1); + draw_sprites(screen, bitmap, cliprect, NULL, 1); return 0; } -void taitof2_state::draw_roz_layer( bitmap_ind16 &bitmap, const rectangle &cliprect, UINT32 priority) +void taitof2_state::draw_roz_layer( screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect, UINT32 priority) { if (m_tc0280grd != NULL) - m_tc0280grd->tc0280grd_zoom_draw(bitmap, cliprect, m_pivot_xdisp, m_pivot_ydisp, priority); + m_tc0280grd->tc0280grd_zoom_draw(screen, bitmap, cliprect, m_pivot_xdisp, m_pivot_ydisp, priority); if (m_tc0430grw != NULL) - m_tc0430grw->tc0430grw_zoom_draw(bitmap, cliprect, m_pivot_xdisp, m_pivot_ydisp, priority); + m_tc0430grw->tc0430grw_zoom_draw(screen, bitmap, cliprect, m_pivot_xdisp, m_pivot_ydisp, priority); } UINT32 taitof2_state::screen_update_taitof2_pri_roz(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect) @@ -1095,7 +1095,7 @@ UINT32 taitof2_state::screen_update_taitof2_pri_roz(screen_device &screen, bitma m_spriteblendmode = m_tc0360pri->read(space, 0) & 0xc0; - machine().priority_bitmap.fill(0, cliprect); + screen.priority().fill(0, cliprect); bitmap.fill(0, cliprect); /* wrong color? */ drawn = 0; @@ -1103,7 +1103,7 @@ UINT32 taitof2_state::screen_update_taitof2_pri_roz(screen_device &screen, bitma { if (rozpri == i) { - draw_roz_layer(bitmap, cliprect, 1 << drawn); + draw_roz_layer(screen, bitmap, cliprect, 1 << drawn); m_tilepri[drawn] = i; drawn++; } @@ -1112,14 +1112,14 @@ UINT32 taitof2_state::screen_update_taitof2_pri_roz(screen_device &screen, bitma { if (tilepri[layer[j]] == i) { - m_tc0100scn->tilemap_draw(bitmap, cliprect, layer[j], 0, 1 << drawn); + m_tc0100scn->tilemap_draw(screen, bitmap, cliprect, layer[j], 0, 1 << drawn); m_tilepri[drawn] = i; drawn++; } } } - draw_sprites(bitmap, cliprect, NULL, 1); + draw_sprites(screen, bitmap, cliprect, NULL, 1); return 0; } @@ -1158,7 +1158,7 @@ UINT32 taitof2_state::screen_update_taitof2_thundfox(screen_device &screen, bitm spritepri[2] = m_tc0360pri->read(space, 7) & 0x0f; spritepri[3] = m_tc0360pri->read(space, 7) >> 4; - machine().priority_bitmap.fill(0, cliprect); + screen.priority().fill(0, cliprect); bitmap.fill(0, cliprect); /* wrong color? */ /* @@ -1184,17 +1184,17 @@ UINT32 taitof2_state::screen_update_taitof2_thundfox(screen_device &screen, bitm tc0100scn = m_tc0100scn_2; } - tc0100scn->tilemap_draw(bitmap, cliprect, layer[pick][drawn[pick]], 0, 1 << (drawn[pick] + 2 * pick)); + tc0100scn->tilemap_draw(screen, bitmap, cliprect, layer[pick][drawn[pick]], 0, 1 << (drawn[pick] + 2 * pick)); drawn[pick]++; } while (drawn[0] < 2) { - m_tc0100scn_1->tilemap_draw(bitmap, cliprect, layer[0][drawn[0]], 0, 1 << drawn[0]); + m_tc0100scn_1->tilemap_draw(screen, bitmap, cliprect, layer[0][drawn[0]], 0, 1 << drawn[0]); drawn[0]++; } while (drawn[1] < 2) { - m_tc0100scn_2->tilemap_draw(bitmap, cliprect, layer[1][drawn[1]], 0, 1 << (drawn[1] + 2)); + m_tc0100scn_2->tilemap_draw(screen, bitmap, cliprect, layer[1][drawn[1]], 0, 1 << (drawn[1] + 2)); drawn[1]++; } @@ -1210,7 +1210,7 @@ UINT32 taitof2_state::screen_update_taitof2_thundfox(screen_device &screen, bitm if (spritepri[i] < tilepri[1][1]) primasks[i] |= 0xff00; } - draw_sprites(bitmap,cliprect,primasks,0); + draw_sprites(screen, bitmap,cliprect,primasks,0); } @@ -1222,13 +1222,13 @@ UINT32 taitof2_state::screen_update_taitof2_thundfox(screen_device &screen, bitm if (tilepri[0][2] < tilepri[1][2]) { - m_tc0100scn_1->tilemap_draw(bitmap, cliprect, layer[0][2], 0, 0); - m_tc0100scn_2->tilemap_draw(bitmap, cliprect, layer[1][2], 0, 0); + m_tc0100scn_1->tilemap_draw(screen, bitmap, cliprect, layer[0][2], 0, 0); + m_tc0100scn_2->tilemap_draw(screen, bitmap, cliprect, layer[1][2], 0, 0); } else { - m_tc0100scn_2->tilemap_draw(bitmap, cliprect, layer[1][2], 0, 0); - m_tc0100scn_1->tilemap_draw(bitmap, cliprect, layer[0][2], 0, 0); + m_tc0100scn_2->tilemap_draw(screen, bitmap, cliprect, layer[1][2], 0, 0); + m_tc0100scn_1->tilemap_draw(screen, bitmap, cliprect, layer[0][2], 0, 0); } return 0; } @@ -1299,16 +1299,16 @@ UINT32 taitof2_state::screen_update_taitof2_metalb(screen_device &screen, bitmap m_spriteblendmode = m_tc0360pri->read(space, 0) & 0xc0; - machine().priority_bitmap.fill(0, cliprect); + screen.priority().fill(0, cliprect); bitmap.fill(0, cliprect); - m_tc0480scp->tilemap_draw(bitmap, cliprect, layer[0], 0 ,1); - m_tc0480scp->tilemap_draw(bitmap, cliprect, layer[1], 0, 2); - m_tc0480scp->tilemap_draw(bitmap, cliprect, layer[2], 0, 4); - m_tc0480scp->tilemap_draw(bitmap, cliprect, layer[3], 0, 8); - m_tc0480scp->tilemap_draw(bitmap, cliprect, layer[4], 0, 16); + m_tc0480scp->tilemap_draw(screen, bitmap, cliprect, layer[0], 0, 1); + m_tc0480scp->tilemap_draw(screen, bitmap, cliprect, layer[1], 0, 2); + m_tc0480scp->tilemap_draw(screen, bitmap, cliprect, layer[2], 0, 4); + m_tc0480scp->tilemap_draw(screen, bitmap, cliprect, layer[3], 0, 8); + m_tc0480scp->tilemap_draw(screen, bitmap, cliprect, layer[4], 0, 16); - draw_sprites(bitmap, cliprect, NULL, 1); + draw_sprites(screen, bitmap, cliprect, NULL, 1); return 0; } @@ -1347,13 +1347,13 @@ UINT32 taitof2_state::screen_update_taitof2_deadconx(screen_device &screen, bitm spritepri[2] = m_tc0360pri->read(space, 7) & 0x0f; spritepri[3] = m_tc0360pri->read(space, 7) >> 4; - machine().priority_bitmap.fill(0, cliprect); + screen.priority().fill(0, cliprect); bitmap.fill(0, cliprect); - m_tc0480scp->tilemap_draw(bitmap, cliprect, layer[0], 0 ,1); - m_tc0480scp->tilemap_draw(bitmap, cliprect, layer[1], 0, 2); - m_tc0480scp->tilemap_draw(bitmap, cliprect, layer[2], 0, 4); - m_tc0480scp->tilemap_draw(bitmap, cliprect, layer[3], 0, 8); + m_tc0480scp->tilemap_draw(screen, bitmap, cliprect, layer[0], 0, 1); + m_tc0480scp->tilemap_draw(screen, bitmap, cliprect, layer[1], 0, 2); + m_tc0480scp->tilemap_draw(screen, bitmap, cliprect, layer[2], 0, 4); + m_tc0480scp->tilemap_draw(screen, bitmap, cliprect, layer[3], 0, 8); { int primasks[4] = {0,0,0,0}; @@ -1367,7 +1367,7 @@ UINT32 taitof2_state::screen_update_taitof2_deadconx(screen_device &screen, bitm if (spritepri[i] < tilepri[(layer[3])]) primasks[i] |= 0xff00; } - draw_sprites(bitmap, cliprect, primasks, 0); + draw_sprites(screen, bitmap, cliprect, primasks, 0); } /* @@ -1376,6 +1376,6 @@ UINT32 taitof2_state::screen_update_taitof2_deadconx(screen_device &screen, bitm that the FG layer is always on top of sprites. */ - m_tc0480scp->tilemap_draw(bitmap, cliprect, layer[4], 0, 0); + m_tc0480scp->tilemap_draw(screen, bitmap, cliprect, layer[4], 0, 0); return 0; } diff --git a/src/mame/video/taito_h.c b/src/mame/video/taito_h.c index 4eadd78973a..23052404a3e 100644 --- a/src/mame/video/taito_h.c +++ b/src/mame/video/taito_h.c @@ -398,10 +398,10 @@ UINT32 taitoh_state::screen_update_syvalion(screen_device &screen, bitmap_ind16 bitmap.fill(0, cliprect); - m_tc0080vco->tilemap_draw(bitmap, cliprect, 0, TILEMAP_DRAW_OPAQUE, 0); - m_tc0080vco->tilemap_draw(bitmap, cliprect, 1, 0, 0); + m_tc0080vco->tilemap_draw(screen, bitmap, cliprect, 0, TILEMAP_DRAW_OPAQUE, 0); + m_tc0080vco->tilemap_draw(screen, bitmap, cliprect, 1, 0, 0); syvalion_draw_sprites(bitmap,cliprect); - m_tc0080vco->tilemap_draw(bitmap, cliprect, 2, 0, 0); + m_tc0080vco->tilemap_draw(screen, bitmap, cliprect, 2, 0, 0); return 0; } @@ -417,21 +417,21 @@ UINT32 taitoh_state::screen_update_recordbr(screen_device &screen, bitmap_ind16 #ifdef MAME_DEBUG if (!machine().input().code_pressed(KEYCODE_A)) - m_tc0080vco->tilemap_draw(bitmap, cliprect, 0, TILEMAP_DRAW_OPAQUE, 0); + m_tc0080vco->tilemap_draw(screen, bitmap, cliprect, 0, TILEMAP_DRAW_OPAQUE, 0); if (!machine().input().code_pressed(KEYCODE_S)) recordbr_draw_sprites(bitmap, cliprect, 0); if (!machine().input().code_pressed(KEYCODE_D)) - m_tc0080vco->tilemap_draw(bitmap, cliprect, 1, 0, 0); + m_tc0080vco->tilemap_draw(screen, bitmap, cliprect, 1, 0, 0); if (!machine().input().code_pressed(KEYCODE_F)) recordbr_draw_sprites(bitmap, cliprect, 1); #else - m_tc0080vco->tilemap_draw(bitmap, cliprect, 0, TILEMAP_DRAW_OPAQUE, 0); + m_tc0080vco->tilemap_draw(screen, bitmap, cliprect, 0, TILEMAP_DRAW_OPAQUE, 0); recordbr_draw_sprites(bitmap, cliprect, 0); - m_tc0080vco->tilemap_draw(bitmap, cliprect, 1, 0, 0); + m_tc0080vco->tilemap_draw(screen, bitmap, cliprect, 1, 0, 0); recordbr_draw_sprites(bitmap, cliprect, 1); #endif - m_tc0080vco->tilemap_draw(bitmap, cliprect, 2, 0, 0); + m_tc0080vco->tilemap_draw(screen, bitmap, cliprect, 2, 0, 0); return 0; } @@ -446,20 +446,20 @@ UINT32 taitoh_state::screen_update_dleague(screen_device &screen, bitmap_ind16 & #ifdef MAME_DEBUG if (!machine().input().code_pressed(KEYCODE_A)) - m_tc0080vco->tilemap_draw(bitmap, cliprect, 0, TILEMAP_DRAW_OPAQUE, 0); + m_tc0080vco->tilemap_draw(screen, bitmap, cliprect, 0, TILEMAP_DRAW_OPAQUE, 0); if (!machine().input().code_pressed(KEYCODE_S)) dleague_draw_sprites(bitmap, cliprect, 0); if (!machine().input().code_pressed(KEYCODE_D)) - m_tc0080vco->tilemap_draw(bitmap, cliprect, 1, 0, 0); + m_tc0080vco->tilemap_draw(screen, bitmap, cliprect, 1, 0, 0); if (!machine().input().code_pressed(KEYCODE_F)) dleague_draw_sprites(bitmap, cliprect, 1); #else - m_tc0080vco->tilemap_draw(bitmap, cliprect, 0, TILEMAP_DRAW_OPAQUE, 0); + m_tc0080vco->tilemap_draw(screen, bitmap, cliprect, 0, TILEMAP_DRAW_OPAQUE, 0); dleague_draw_sprites (bitmap, cliprect, 0); - m_tc0080vco->tilemap_draw(bitmap, cliprect, 1, 0, 0); + m_tc0080vco->tilemap_draw(screen, bitmap, cliprect, 1, 0, 0); dleague_draw_sprites (bitmap, cliprect, 1); #endif - m_tc0080vco->tilemap_draw(bitmap, cliprect, 2, 0, 0); + m_tc0080vco->tilemap_draw(screen, bitmap, cliprect, 2, 0, 0); return 0; } diff --git a/src/mame/video/taito_l.c b/src/mame/video/taito_l.c index 5ada474fd11..22c93845129 100644 --- a/src/mame/video/taito_l.c +++ b/src/mame/video/taito_l.c @@ -227,7 +227,7 @@ void taitol_state::taitol_obj1b_m( int offset ) plgirs2 bullets and raimais big bosses. */ -void taitol_state::draw_sprites( bitmap_ind16 &bitmap, const rectangle &cliprect ) +void taitol_state::draw_sprites( screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect ) { int offs; @@ -261,7 +261,7 @@ void taitol_state::draw_sprites( bitmap_ind16 &bitmap, const rectangle &cliprect color, flipx,flipy, sx,sy, - machine().priority_bitmap, + screen.priority(), (color & 0x08) ? 0xaa : 0x00,0); } } @@ -289,18 +289,18 @@ UINT32 taitol_state::screen_update_taitol(screen_device &screen, bitmap_ind16 &b if (m_cur_ctrl & 0x20) /* display enable */ { - machine().priority_bitmap.fill(0, cliprect); + screen.priority().fill(0, cliprect); - m_bg19_tilemap->draw(bitmap, cliprect, 0, 0); + m_bg19_tilemap->draw(screen, bitmap, cliprect, 0, 0); if (m_cur_ctrl & 0x08) /* sprites always over BG1 */ - m_bg18_tilemap->draw(bitmap, cliprect, 0, 0); + m_bg18_tilemap->draw(screen, bitmap, cliprect, 0, 0); else /* split priority */ - m_bg18_tilemap->draw(bitmap, cliprect, 0,1); + m_bg18_tilemap->draw(screen, bitmap, cliprect, 0,1); - draw_sprites(bitmap, cliprect); + draw_sprites(screen, bitmap, cliprect); - m_ch1a_tilemap->draw(bitmap, cliprect, 0, 0); + m_ch1a_tilemap->draw(screen, bitmap, cliprect, 0, 0); } else bitmap.fill(machine().pens[0], cliprect); diff --git a/src/mame/video/taito_o.c b/src/mame/video/taito_o.c index d7a159390a7..48a9f6d9f8a 100644 --- a/src/mame/video/taito_o.c +++ b/src/mame/video/taito_o.c @@ -143,13 +143,13 @@ UINT32 taitoo_state::screen_update_parentj(screen_device &screen, bitmap_ind16 & bitmap.fill(0, cliprect); - m_tc0080vco->tilemap_draw(bitmap, cliprect, 0, TILEMAP_DRAW_OPAQUE, 0); + m_tc0080vco->tilemap_draw(screen, bitmap, cliprect, 0, TILEMAP_DRAW_OPAQUE, 0); parentj_draw_sprites(bitmap, cliprect, 0); parentj_draw_sprites(bitmap, cliprect, 1); - m_tc0080vco->tilemap_draw(bitmap, cliprect, 1, 0, 0); - m_tc0080vco->tilemap_draw(bitmap, cliprect, 2, 0, 0); + m_tc0080vco->tilemap_draw(screen, bitmap, cliprect, 1, 0, 0); + m_tc0080vco->tilemap_draw(screen, bitmap, cliprect, 2, 0, 0); return 0; } diff --git a/src/mame/video/taito_z.c b/src/mame/video/taito_z.c index 9368c568c08..1a7022a7f51 100644 --- a/src/mame/video/taito_z.c +++ b/src/mame/video/taito_z.c @@ -142,7 +142,7 @@ confirmed ********************************************************/ -void taitoz_state::contcirc_draw_sprites_16x8( bitmap_ind16 &bitmap, const rectangle &cliprect, int y_offs ) +void taitoz_state::contcirc_draw_sprites_16x8( screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect, int y_offs ) { UINT16 *spritemap = (UINT16 *)memregion("user1")->base(); UINT16 *spriteram = m_spriteram; @@ -226,7 +226,7 @@ void taitoz_state::contcirc_draw_sprites_16x8( bitmap_ind16 &bitmap, const recta color, flipx,flipy, curx,cury, - zx<<12,zy<<13,machine().priority_bitmap,primasks[priority],0); + zx<<12,zy<<13,screen.priority(),primasks[priority],0); } if (bad_chunks) @@ -236,7 +236,7 @@ void taitoz_state::contcirc_draw_sprites_16x8( bitmap_ind16 &bitmap, const recta -void taitoz_state::chasehq_draw_sprites_16x16( bitmap_ind16 &bitmap, const rectangle &cliprect, int y_offs ) +void taitoz_state::chasehq_draw_sprites_16x16( screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect, int y_offs ) { UINT16 *spritemap = (UINT16 *)memregion("user1")->base(); UINT16 *spriteram = m_spriteram; @@ -324,7 +324,7 @@ void taitoz_state::chasehq_draw_sprites_16x16( bitmap_ind16 &bitmap, const recta flipx,flipy, curx,cury, zx<<12,zy<<12, - machine().priority_bitmap,primasks[priority],0); + screen.priority(),primasks[priority],0); } } else if ((zoomx - 1) & 0x20) /* 64x128 sprites, $40000-$5ffff in spritemap rom, OBJB */ @@ -367,7 +367,7 @@ void taitoz_state::chasehq_draw_sprites_16x16( bitmap_ind16 &bitmap, const recta flipx,flipy, curx,cury, zx<<12,zy<<12, - machine().priority_bitmap,primasks[priority],0); + screen.priority(),primasks[priority],0); } } else if (!((zoomx - 1) & 0x60)) /* 32x128 sprites, $60000-$7ffff in spritemap rom, OBJB */ @@ -410,7 +410,7 @@ void taitoz_state::chasehq_draw_sprites_16x16( bitmap_ind16 &bitmap, const recta flipx,flipy, curx,cury, zx<<12,zy<<12, - machine().priority_bitmap,primasks[priority],0); + screen.priority(),primasks[priority],0); } } @@ -421,7 +421,7 @@ void taitoz_state::chasehq_draw_sprites_16x16( bitmap_ind16 &bitmap, const recta -void taitoz_state::bshark_draw_sprites_16x8( bitmap_ind16 &bitmap, const rectangle &cliprect, int y_offs ) +void taitoz_state::bshark_draw_sprites_16x8( screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect, int y_offs ) { UINT16 *spritemap = (UINT16 *)memregion("user1")->base(); UINT16 *spriteram = m_spriteram; @@ -506,7 +506,7 @@ void taitoz_state::bshark_draw_sprites_16x8( bitmap_ind16 &bitmap, const rectang flipx,flipy, curx,cury, zx<<12,zy<<13, - machine().priority_bitmap,primasks[priority],0); + screen.priority(),primasks[priority],0); } if (bad_chunks) @@ -516,7 +516,7 @@ void taitoz_state::bshark_draw_sprites_16x8( bitmap_ind16 &bitmap, const rectang -void taitoz_state::sci_draw_sprites_16x8( bitmap_ind16 &bitmap, const rectangle &cliprect, int y_offs ) +void taitoz_state::sci_draw_sprites_16x8( screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect, int y_offs ) { UINT16 *spritemap = (UINT16 *)memregion("user1")->base(); UINT16 *spriteram = m_spriteram; @@ -610,7 +610,7 @@ void taitoz_state::sci_draw_sprites_16x8( bitmap_ind16 &bitmap, const rectangle flipx,flipy, curx,cury, zx<<12,zy<<13, - machine().priority_bitmap,primasks[priority],0); + screen.priority(),primasks[priority],0); } if (bad_chunks) @@ -620,7 +620,7 @@ void taitoz_state::sci_draw_sprites_16x8( bitmap_ind16 &bitmap, const rectangle -void taitoz_state::aquajack_draw_sprites_16x8(bitmap_ind16 &bitmap,const rectangle &cliprect,int y_offs) +void taitoz_state::aquajack_draw_sprites_16x8(screen_device &screen, bitmap_ind16 &bitmap,const rectangle &cliprect,int y_offs) { UINT16 *spritemap = (UINT16 *)memregion("user1")->base(); UINT16 *spriteram = m_spriteram; @@ -704,7 +704,7 @@ void taitoz_state::aquajack_draw_sprites_16x8(bitmap_ind16 &bitmap,const rectang flipx,flipy, curx,cury, zx<<12,zy<<13, - machine().priority_bitmap,primasks[priority],0); + screen.priority(),primasks[priority],0); } if (bad_chunks) @@ -714,7 +714,7 @@ void taitoz_state::aquajack_draw_sprites_16x8(bitmap_ind16 &bitmap,const rectang -void taitoz_state::spacegun_draw_sprites_16x8(bitmap_ind16 &bitmap,const rectangle &cliprect,int y_offs) +void taitoz_state::spacegun_draw_sprites_16x8(screen_device &screen, bitmap_ind16 &bitmap,const rectangle &cliprect,int y_offs) { UINT16 *spritemap = (UINT16 *)memregion("user1")->base(); UINT16 *spriteram = m_spriteram; @@ -798,7 +798,7 @@ void taitoz_state::spacegun_draw_sprites_16x8(bitmap_ind16 &bitmap,const rectang flipx,flipy, curx,cury, zx<<12,zy<<13, - machine().priority_bitmap,primasks[priority],0); + screen.priority(),primasks[priority],0); } if (bad_chunks) @@ -840,16 +840,16 @@ UINT32 taitoz_state::screen_update_contcirc(screen_device &screen, bitmap_ind16 layer[1] = layer[0] ^ 1; layer[2] = 2; - machine().priority_bitmap.fill(0, cliprect); + screen.priority().fill(0, cliprect); bitmap.fill(0, cliprect); - m_tc0100scn->tilemap_draw(bitmap, cliprect, layer[0], 0, 0); - m_tc0100scn->tilemap_draw(bitmap, cliprect, layer[1], 0, 1); - m_tc0150rod->draw(bitmap, cliprect, -3, m_road_palbank << 6, 1, 0, 1, 2); // -6 - m_tc0100scn->tilemap_draw(bitmap, cliprect, layer[2], 0, 4); + m_tc0100scn->tilemap_draw(screen, bitmap, cliprect, layer[0], 0, 0); + m_tc0100scn->tilemap_draw(screen, bitmap, cliprect, layer[1], 0, 1); + m_tc0150rod->draw(bitmap, cliprect, -3, m_road_palbank << 6, 1, 0, screen.priority(), 1, 2); // -6 + m_tc0100scn->tilemap_draw(screen, bitmap, cliprect, layer[2], 0, 4); - contcirc_draw_sprites_16x8(bitmap, cliprect, 5); // 7 + contcirc_draw_sprites_16x8(screen, bitmap, cliprect, 5); // 7 return 0; } @@ -866,17 +866,17 @@ UINT32 taitoz_state::screen_update_chasehq(screen_device &screen, bitmap_ind16 & layer[1] = layer[0] ^ 1; layer[2] = 2; - machine().priority_bitmap.fill(0, cliprect); + screen.priority().fill(0, cliprect); /* Ensure screen blanked even when bottom layer not drawn due to disable bit */ bitmap.fill(0, cliprect); - m_tc0100scn->tilemap_draw(bitmap, cliprect, layer[0], TILEMAP_DRAW_OPAQUE, 0); - m_tc0100scn->tilemap_draw(bitmap, cliprect, layer[1], 0, 1); - m_tc0150rod->draw(bitmap, cliprect, -1, 0xc0, 0, 0, 1, 2); - m_tc0100scn->tilemap_draw(bitmap, cliprect, layer[2], 0, 4); + m_tc0100scn->tilemap_draw(screen, bitmap, cliprect, layer[0], TILEMAP_DRAW_OPAQUE, 0); + m_tc0100scn->tilemap_draw(screen, bitmap, cliprect, layer[1], 0, 1); + m_tc0150rod->draw(bitmap, cliprect, -1, 0xc0, 0, 0, screen.priority(), 1, 2); + m_tc0100scn->tilemap_draw(screen, bitmap, cliprect, layer[2], 0, 4); - chasehq_draw_sprites_16x16(bitmap, cliprect, 7); + chasehq_draw_sprites_16x16(screen, bitmap, cliprect, 7); return 0; } @@ -891,17 +891,17 @@ UINT32 taitoz_state::screen_update_bshark(screen_device &screen, bitmap_ind16 &b layer[1] = layer[0] ^ 1; layer[2] = 2; - machine().priority_bitmap.fill(0, cliprect); + screen.priority().fill(0, cliprect); /* Ensure screen blanked even when bottom layer not drawn due to disable bit */ bitmap.fill(0, cliprect); - m_tc0100scn->tilemap_draw(bitmap, cliprect, layer[0], TILEMAP_DRAW_OPAQUE, 0); - m_tc0100scn->tilemap_draw(bitmap, cliprect, layer[1], 0, 1); - m_tc0150rod->draw(bitmap, cliprect, -1, 0xc0, 0, 1, 1, 2); - m_tc0100scn->tilemap_draw(bitmap, cliprect, layer[2], 0, 4); + m_tc0100scn->tilemap_draw(screen, bitmap, cliprect, layer[0], TILEMAP_DRAW_OPAQUE, 0); + m_tc0100scn->tilemap_draw(screen, bitmap, cliprect, layer[1], 0, 1); + m_tc0150rod->draw(bitmap, cliprect, -1, 0xc0, 0, 1, screen.priority(), 1, 2); + m_tc0100scn->tilemap_draw(screen, bitmap, cliprect, layer[2], 0, 4); - bshark_draw_sprites_16x8(bitmap, cliprect, 8); + bshark_draw_sprites_16x8(screen, bitmap, cliprect, 8); return 0; } @@ -916,17 +916,17 @@ UINT32 taitoz_state::screen_update_sci(screen_device &screen, bitmap_ind16 &bitm layer[1] = layer[0] ^ 1; layer[2] = 2; - machine().priority_bitmap.fill(0, cliprect); + screen.priority().fill(0, cliprect); /* Ensure screen blanked even when bottom layer not drawn due to disable bit */ bitmap.fill(0, cliprect); - m_tc0100scn->tilemap_draw(bitmap, cliprect, layer[0], TILEMAP_DRAW_OPAQUE, 0); - m_tc0100scn->tilemap_draw(bitmap, cliprect, layer[1], 0, 1); - m_tc0150rod->draw(bitmap, cliprect, -1, 0xc0, 0, 0, 1, 2); - m_tc0100scn->tilemap_draw(bitmap, cliprect, layer[2], 0, 4); + m_tc0100scn->tilemap_draw(screen, bitmap, cliprect, layer[0], TILEMAP_DRAW_OPAQUE, 0); + m_tc0100scn->tilemap_draw(screen, bitmap, cliprect, layer[1], 0, 1); + m_tc0150rod->draw(bitmap, cliprect, -1, 0xc0, 0, 0, screen.priority(), 1, 2); + m_tc0100scn->tilemap_draw(screen, bitmap, cliprect, layer[2], 0, 4); - sci_draw_sprites_16x8(bitmap, cliprect, 6); + sci_draw_sprites_16x8(screen, bitmap, cliprect, 6); return 0; } @@ -941,17 +941,17 @@ UINT32 taitoz_state::screen_update_aquajack(screen_device &screen, bitmap_ind16 layer[1] = layer[0] ^ 1; layer[2] = 2; - machine().priority_bitmap.fill(0, cliprect); + screen.priority().fill(0, cliprect); /* Ensure screen blanked even when bottom layer not drawn due to disable bit */ bitmap.fill(0, cliprect); - m_tc0100scn->tilemap_draw(bitmap, cliprect, layer[0], TILEMAP_DRAW_OPAQUE, 0); - m_tc0100scn->tilemap_draw(bitmap, cliprect, layer[1], 0, 1); - m_tc0150rod->draw(bitmap, cliprect, -1, 0, 2, 1, 1, 2); - m_tc0100scn->tilemap_draw(bitmap, cliprect, layer[2], 0, 4); + m_tc0100scn->tilemap_draw(screen, bitmap, cliprect, layer[0], TILEMAP_DRAW_OPAQUE, 0); + m_tc0100scn->tilemap_draw(screen, bitmap, cliprect, layer[1], 0, 1); + m_tc0150rod->draw(bitmap, cliprect, -1, 0, 2, 1, screen.priority(), 1, 2); + m_tc0100scn->tilemap_draw(screen, bitmap, cliprect, layer[2], 0, 4); - aquajack_draw_sprites_16x8(bitmap, cliprect, 3); + aquajack_draw_sprites_16x8(screen, bitmap, cliprect, 3); return 0; } @@ -966,16 +966,16 @@ UINT32 taitoz_state::screen_update_spacegun(screen_device &screen, bitmap_ind16 layer[1] = layer[0] ^ 1; layer[2] = 2; - machine().priority_bitmap.fill(0, cliprect); + screen.priority().fill(0, cliprect); /* Ensure screen blanked even when bottom layer not drawn due to disable bit */ bitmap.fill(0, cliprect); - m_tc0100scn->tilemap_draw(bitmap, cliprect, layer[0], TILEMAP_DRAW_OPAQUE, 1); - m_tc0100scn->tilemap_draw(bitmap, cliprect, layer[1], 0, 2); - m_tc0100scn->tilemap_draw(bitmap, cliprect, layer[2], 0, 4); + m_tc0100scn->tilemap_draw(screen, bitmap, cliprect, layer[0], TILEMAP_DRAW_OPAQUE, 1); + m_tc0100scn->tilemap_draw(screen, bitmap, cliprect, layer[1], 0, 2); + m_tc0100scn->tilemap_draw(screen, bitmap, cliprect, layer[2], 0, 4); - spacegun_draw_sprites_16x8(bitmap, cliprect, 4); + spacegun_draw_sprites_16x8(screen, bitmap, cliprect, 4); return 0; } @@ -996,22 +996,22 @@ UINT32 taitoz_state::screen_update_dblaxle(screen_device &screen, bitmap_ind16 & layer[3] = (priority & 0x000f) >> 0; /* tells us which is top */ layer[4] = 4; /* text layer always over bg layers */ - machine().priority_bitmap.fill(0, cliprect); + screen.priority().fill(0, cliprect); /* Ensure screen blanked - this shouldn't be necessary! */ bitmap.fill(0, cliprect); - m_tc0480scp->tilemap_draw(bitmap, cliprect, layer[0], TILEMAP_DRAW_OPAQUE, 0); - m_tc0480scp->tilemap_draw(bitmap, cliprect, layer[1], 0, 0); - m_tc0480scp->tilemap_draw(bitmap, cliprect, layer[2], 0, 1); + m_tc0480scp->tilemap_draw(screen, bitmap, cliprect, layer[0], TILEMAP_DRAW_OPAQUE, 0); + m_tc0480scp->tilemap_draw(screen, bitmap, cliprect, layer[1], 0, 0); + m_tc0480scp->tilemap_draw(screen, bitmap, cliprect, layer[2], 0, 1); - m_tc0150rod->draw(bitmap, cliprect, -1, 0xc0, 0, 0, 1, 2); - bshark_draw_sprites_16x8(bitmap, cliprect, 7); + m_tc0150rod->draw(bitmap, cliprect, -1, 0xc0, 0, 0, screen.priority(), 1, 2); + bshark_draw_sprites_16x8(screen, bitmap, cliprect, 7); /* This layer used for the big numeric displays */ - m_tc0480scp->tilemap_draw(bitmap, cliprect, layer[3], 0, 4); + m_tc0480scp->tilemap_draw(screen, bitmap, cliprect, layer[3], 0, 4); - m_tc0480scp->tilemap_draw(bitmap, cliprect, layer[4], 0, 0); /* Text layer */ + m_tc0480scp->tilemap_draw(screen, bitmap, cliprect, layer[4], 0, 0); /* Text layer */ return 0; } @@ -1031,19 +1031,19 @@ UINT32 taitoz_state::screen_update_racingb(screen_device &screen, bitmap_ind16 & layer[3] = (priority & 0x000f) >> 0; /* tells us which is top */ layer[4] = 4; /* text layer always over bg layers */ - machine().priority_bitmap.fill(0, cliprect); + screen.priority().fill(0, cliprect); /* Ensure screen blanked - this shouldn't be necessary! */ bitmap.fill(0, cliprect); - m_tc0480scp->tilemap_draw(bitmap, cliprect, layer[0], TILEMAP_DRAW_OPAQUE, 0); - m_tc0480scp->tilemap_draw(bitmap, cliprect, layer[1], 0, 0); - m_tc0480scp->tilemap_draw(bitmap, cliprect, layer[2], 0, 2); - m_tc0480scp->tilemap_draw(bitmap, cliprect, layer[3], 0, 2); + m_tc0480scp->tilemap_draw(screen, bitmap, cliprect, layer[0], TILEMAP_DRAW_OPAQUE, 0); + m_tc0480scp->tilemap_draw(screen, bitmap, cliprect, layer[1], 0, 0); + m_tc0480scp->tilemap_draw(screen, bitmap, cliprect, layer[2], 0, 2); + m_tc0480scp->tilemap_draw(screen, bitmap, cliprect, layer[3], 0, 2); - m_tc0150rod->draw(bitmap, cliprect, -1, 0xc0, 0, 0, 1, 2); - sci_draw_sprites_16x8(bitmap, cliprect, 7); + m_tc0150rod->draw(bitmap, cliprect, -1, 0xc0, 0, 0, screen.priority(), 1, 2); + sci_draw_sprites_16x8(screen, bitmap, cliprect, 7); - m_tc0480scp->tilemap_draw(bitmap, cliprect, layer[4], 0, 4); + m_tc0480scp->tilemap_draw(screen, bitmap, cliprect, layer[4], 0, 4); return 0; } diff --git a/src/mame/video/taitoair.c b/src/mame/video/taitoair.c index c6e60b52f28..ec86cb17a85 100644 --- a/src/mame/video/taitoair.c +++ b/src/mame/video/taitoair.c @@ -591,17 +591,17 @@ UINT32 taitoair_state::screen_update_taitoair(screen_device &screen, bitmap_ind1 #endif } - m_tc0080vco->tilemap_draw(bitmap, cliprect, 0, 0, 0); + m_tc0080vco->tilemap_draw(screen, bitmap, cliprect, 0, 0, 0); draw_sprites(bitmap, cliprect, 0); copybitmap_trans(bitmap, *m_framebuffer[1], 0, 0, 0, 0, cliprect, 0); - m_tc0080vco->tilemap_draw(bitmap, cliprect, 1, 0, 0); + m_tc0080vco->tilemap_draw(screen, bitmap, cliprect, 1, 0, 0); draw_sprites(bitmap, cliprect, 1); - m_tc0080vco->tilemap_draw(bitmap, cliprect, 2, 0, 0); + m_tc0080vco->tilemap_draw(screen, bitmap, cliprect, 2, 0, 0); /* Hacky 3d bitmap */ //copybitmap_trans(bitmap, m_buffer3d, 0, 0, 0, 0, cliprect, 0); diff --git a/src/mame/video/taitoic.h b/src/mame/video/taitoic.h index 7df3eb7a612..0c136105ce2 100644 --- a/src/mame/video/taitoic.h +++ b/src/mame/video/taitoic.h @@ -121,7 +121,7 @@ public: void tilemap_update(); void tilemap_draw(bitmap_ind16 &bitmap, const rectangle &cliprect, int layer, int flags, UINT32 priority); void tilemap_draw_offset(bitmap_ind16 &bitmap, const rectangle &cliprect, int layer, int flags, UINT32 priority, int xoffs, int yoffs); - void topspeed_custom_draw(bitmap_ind16 &bitmap, const rectangle &cliprect, int layer, int flags, UINT32 priority, UINT16 *color_ctrl_ram); + void topspeed_custom_draw(bitmap_ind16 &bitmap, const rectangle &cliprect, int layer, int flags, bitmap_ind8 &priority_bitmap, UINT32 priority, UINT16 *color_ctrl_ram); /* For Topspeed */ void tilemap_draw_special(bitmap_ind16 &bitmap, const rectangle &cliprect, int layer, int flags, UINT32 priority, UINT16 *ram); @@ -353,13 +353,13 @@ public: DECLARE_WRITE16_MEMBER( tc0280grd_word_w ); DECLARE_WRITE16_MEMBER( tc0280grd_ctrl_word_w ); void tc0280grd_tilemap_update(int base_color); - void tc0280grd_zoom_draw(bitmap_ind16 &bitmap, const rectangle &cliprect, int xoffset, int yoffset, UINT32 priority); + void tc0280grd_zoom_draw(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect, int xoffset, int yoffset, UINT32 priority); DECLARE_READ16_MEMBER( tc0430grw_word_r ); DECLARE_WRITE16_MEMBER( tc0430grw_word_w ); DECLARE_WRITE16_MEMBER( tc0430grw_ctrl_word_w ); void tc0430grw_tilemap_update(int base_color); - void tc0430grw_zoom_draw(bitmap_ind16 &bitmap, const rectangle &cliprect, int xoffset, int yoffset, UINT32 priority); + void tc0430grw_zoom_draw(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect, int xoffset, int yoffset, UINT32 priority); protected: // device-level overrides diff --git a/src/mame/video/taitojc.c b/src/mame/video/taitojc.c index 8eee9297d2b..9d7fa81fc06 100644 --- a/src/mame/video/taitojc.c +++ b/src/mame/video/taitojc.c @@ -345,7 +345,7 @@ UINT32 taitojc_state::screen_update_taitojc(screen_device &screen, bitmap_ind16 // text layer if (m_objlist[0xfc4/4] & 0x10000) - m_tilemap->draw(bitmap, cliprect, 0, 0); + m_tilemap->draw(screen, bitmap, cliprect, 0, 0); return 0; } diff --git a/src/mame/video/tank8.c b/src/mame/video/tank8.c index 9a406aa30cc..798fe6c4edf 100644 --- a/src/mame/video/tank8.c +++ b/src/mame/video/tank8.c @@ -182,7 +182,7 @@ void tank8_state::device_timer(emu_timer &timer, device_timer_id id, int param, UINT32 tank8_state::screen_update_tank8(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect) { set_pens(machine().colortable); - m_tilemap->draw(bitmap, cliprect, 0, 0); + m_tilemap->draw(screen, bitmap, cliprect, 0, 0); draw_sprites(bitmap, cliprect); draw_bullets(bitmap, cliprect); @@ -199,7 +199,7 @@ void tank8_state::screen_eof_tank8(screen_device &screen, bool state) int y; const rectangle &visarea = machine().primary_screen->visible_area(); - m_tilemap->draw(m_helper1, visarea, 0, 0); + m_tilemap->draw(screen, m_helper1, visarea, 0, 0); m_helper2.fill(8, visarea); m_helper3.fill(8, visarea); diff --git a/src/mame/video/tankbatt.c b/src/mame/video/tankbatt.c index 3b2f6cd1cb8..780d47048bd 100644 --- a/src/mame/video/tankbatt.c +++ b/src/mame/video/tankbatt.c @@ -100,7 +100,7 @@ void tankbatt_state::draw_bullets(bitmap_ind16 &bitmap, const rectangle &cliprec UINT32 tankbatt_state::screen_update_tankbatt(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect) { - m_bg_tilemap->draw(bitmap, cliprect, 0, 0); + m_bg_tilemap->draw(screen, bitmap, cliprect, 0, 0); draw_bullets(bitmap, cliprect); return 0; } diff --git a/src/mame/video/tankbust.c b/src/mame/video/tankbust.c index c4634e57aad..c34cc905b99 100644 --- a/src/mame/video/tankbust.c +++ b/src/mame/video/tankbust.c @@ -235,10 +235,10 @@ UINT32 tankbust_state::screen_update_tankbust(screen_device &screen, bitmap_ind1 } #endif - m_bg_tilemap->draw(bitmap, cliprect, 0, 0); + m_bg_tilemap->draw(screen, bitmap, cliprect, 0, 0); draw_sprites(bitmap, cliprect); - m_bg_tilemap->draw(bitmap, cliprect, 1, 0); + m_bg_tilemap->draw(screen, bitmap, cliprect, 1, 0); - m_txt_tilemap->draw(bitmap, cliprect, 0,0); + m_txt_tilemap->draw(screen, bitmap, cliprect, 0,0); return 0; } diff --git a/src/mame/video/taotaido.c b/src/mame/video/taotaido.c index cfd23677f9d..58f1982fd01 100644 --- a/src/mame/video/taotaido.c +++ b/src/mame/video/taotaido.c @@ -127,10 +127,10 @@ UINT32 taotaido_state::screen_update_taotaido(screen_device &screen, bitmap_ind1 m_bg_tilemap->set_scrollx(0,((m_scrollram[(0x00+4*line)/2])>>4)+30); m_bg_tilemap->set_scrolly(0,((m_scrollram[(0x02+4*line)/2])>>4)-line); - m_bg_tilemap->draw(bitmap, clip, 0,0); + m_bg_tilemap->draw(screen, bitmap, clip, 0,0); } - m_spr->draw_sprites(m_spriteram_older, m_spriteram.bytes(), machine(), bitmap,cliprect); + m_spr->draw_sprites(m_spriteram_older, m_spriteram.bytes(), screen, bitmap,cliprect); return 0; } diff --git a/src/mame/video/targeth.c b/src/mame/video/targeth.c index 8d410fa30e9..61b0bba5d18 100644 --- a/src/mame/video/targeth.c +++ b/src/mame/video/targeth.c @@ -136,8 +136,8 @@ UINT32 targeth_state::screen_update_targeth(screen_device &screen, bitmap_ind16 m_pant[1]->set_scrolly(0, m_vregs[2]); m_pant[1]->set_scrollx(0, m_vregs[3]); - m_pant[1]->draw(bitmap, cliprect, 0,0); - m_pant[0]->draw(bitmap, cliprect, 0,0); + m_pant[1]->draw(screen, bitmap, cliprect, 0,0); + m_pant[0]->draw(screen, bitmap, cliprect, 0,0); draw_sprites(bitmap,cliprect); return 0; diff --git a/src/mame/video/tatsumi.c b/src/mame/video/tatsumi.c index 74bdc47c663..c330ea5ad81 100644 --- a/src/mame/video/tatsumi.c +++ b/src/mame/video/tatsumi.c @@ -1069,7 +1069,7 @@ UINT32 tatsumi_state::screen_update_apache3(screen_device &screen, bitmap_rgb32 draw_sky(machine(), bitmap, cliprect, 256, m_apache3_rotate_ctrl[1]); // draw_ground(machine(), bitmap, cliprect); draw_sprites(machine(), bitmap,cliprect,0, (m_sprite_control_ram[0x20]&0x1000) ? 0x1000 : 0); - m_tx_layer->draw(bitmap, cliprect, 0,0); + m_tx_layer->draw(screen, bitmap, cliprect, 0,0); return 0; } @@ -1084,12 +1084,12 @@ UINT32 tatsumi_state::screen_update_roundup5(screen_device &screen, bitmap_rgb32 m_tx_layer->set_scrolly(0,0); //(((m_roundupt_crt_reg[0xe]<<8)|m_roundupt_crt_reg[0xf])>>5) + 96); bitmap.fill(machine().pens[384], cliprect); // todo - machine().priority_bitmap.fill(0, cliprect); + screen.priority().fill(0, cliprect); - draw_sprites(machine(), machine().priority_bitmap,cliprect,1,(m_sprite_control_ram[0xe0]&0x1000) ? 0x1000 : 0); // Alpha pass only - draw_road(machine(), bitmap,cliprect,machine().priority_bitmap); + draw_sprites(machine(), screen.priority(),cliprect,1,(m_sprite_control_ram[0xe0]&0x1000) ? 0x1000 : 0); // Alpha pass only + draw_road(machine(), bitmap,cliprect,screen.priority()); draw_sprites(machine(), bitmap,cliprect,0,(m_sprite_control_ram[0xe0]&0x1000) ? 0x1000 : 0); // Full pass - m_tx_layer->draw(bitmap, cliprect, 0,0); + m_tx_layer->draw(screen, bitmap, cliprect, 0,0); return 0; } diff --git a/src/mame/video/tbowl.c b/src/mame/video/tbowl.c index 825dbcdcf09..6b4bb771ce0 100644 --- a/src/mame/video/tbowl.c +++ b/src/mame/video/tbowl.c @@ -207,10 +207,10 @@ UINT32 tbowl_state::screen_update_tbowl_left(screen_device &screen, bitmap_ind16 m_tx_tilemap->set_scrolly(0, 0 ); bitmap.fill(0x100, cliprect); /* is there a register controling the colour? looks odd when screen is blank */ - m_bg_tilemap->draw(bitmap, cliprect, 0,0); + m_bg_tilemap->draw(screen, bitmap, cliprect, 0,0); tbowl_draw_sprites(bitmap,cliprect, 0, m_spriteram); - m_bg2_tilemap->draw(bitmap, cliprect, 0,0); - m_tx_tilemap->draw(bitmap, cliprect, 0,0); + m_bg2_tilemap->draw(screen, bitmap, cliprect, 0,0); + m_tx_tilemap->draw(screen, bitmap, cliprect, 0,0); return 0; } @@ -225,10 +225,10 @@ UINT32 tbowl_state::screen_update_tbowl_right(screen_device &screen, bitmap_ind1 m_tx_tilemap->set_scrolly(0, 0 ); bitmap.fill(0x100, cliprect); /* is there a register controling the colour? looks odd when screen is blank */ - m_bg_tilemap->draw(bitmap, cliprect, 0,0); + m_bg_tilemap->draw(screen, bitmap, cliprect, 0,0); tbowl_draw_sprites(bitmap,cliprect, 32*8, m_spriteram); - m_bg2_tilemap->draw(bitmap, cliprect, 0,0); - m_tx_tilemap->draw(bitmap, cliprect, 0,0); + m_bg2_tilemap->draw(screen, bitmap, cliprect, 0,0); + m_tx_tilemap->draw(screen, bitmap, cliprect, 0,0); return 0; } diff --git a/src/mame/video/tc0080vco.c b/src/mame/video/tc0080vco.c index 16baee1760c..3c123763565 100644 --- a/src/mame/video/tc0080vco.c +++ b/src/mame/video/tc0080vco.c @@ -408,7 +408,7 @@ void tc0080vco_device::tilemap_update( ) /* NB: orientation_flipx code in following routine has not been tested */ -void tc0080vco_device::bg0_tilemap_draw( bitmap_ind16 &bitmap, const rectangle &cliprect, int flags, UINT32 priority ) +void tc0080vco_device::bg0_tilemap_draw( screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect, int flags, UINT32 priority ) { UINT16 zoom = m_scroll_ram[6]; int zx, zy; @@ -418,7 +418,7 @@ void tc0080vco_device::bg0_tilemap_draw( bitmap_ind16 &bitmap, const rectangle & if (zx == 0x3f && zy == 0x7f) /* normal size */ { - m_tilemap[0]->draw(bitmap, cliprect, flags, priority); + m_tilemap[0]->draw(screen, bitmap, cliprect, flags, priority); } else /* zoom + rowscroll = custom draw routine */ { @@ -534,7 +534,7 @@ void tc0080vco_device::bg0_tilemap_draw( bitmap_ind16 &bitmap, const rectangle & } } - taitoic_drawscanline(bitmap, cliprect, 0, y, scanline, (flags & TILEMAP_DRAW_OPAQUE) ? 0 : 1 , ROT0, machine().priority_bitmap, priority); + taitoic_drawscanline(bitmap, cliprect, 0, y, scanline, (flags & TILEMAP_DRAW_OPAQUE) ? 0 : 1 , ROT0, screen.priority(), priority); y_index += zoomy; @@ -559,7 +559,7 @@ do } \ } \ while (0) -void tc0080vco_device::bg1_tilemap_draw( bitmap_ind16 &bitmap, const rectangle &cliprect, int flags, UINT32 priority ) +void tc0080vco_device::bg1_tilemap_draw( screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect, int flags, UINT32 priority ) { UINT8 layer = 1; UINT16 zoom = m_scroll_ram[6 + layer]; @@ -574,7 +574,7 @@ void tc0080vco_device::bg1_tilemap_draw( bitmap_ind16 &bitmap, const rectangle & if (zoomx == 0x3f && zoomy == 0x7f) /* normal size */ { - m_tilemap[layer]->draw(bitmap, cliprect, flags, priority); + m_tilemap[layer]->draw(screen, bitmap, cliprect, flags, priority); } else /* zoomed */ { @@ -633,7 +633,7 @@ void tc0080vco_device::bg1_tilemap_draw( bitmap_ind16 &bitmap, const rectangle & INT32 incyy = zy; int wraparound = 0; UINT32 privalue = priority; - bitmap_ind8 &priority = machine().priority_bitmap; + bitmap_ind8 &priority = screen.priority(); if (dest.bpp() == 16) COPYROZBITMAP_CORE(UINT16, PIXEL_OP_COPY_TRANS0_SET_PRIORITY, UINT8); @@ -644,7 +644,7 @@ void tc0080vco_device::bg1_tilemap_draw( bitmap_ind16 &bitmap, const rectangle & } -void tc0080vco_device::tilemap_draw( bitmap_ind16 &bitmap, const rectangle &cliprect, int layer, int flags, UINT32 priority ) +void tc0080vco_device::tilemap_draw( screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect, int layer, int flags, UINT32 priority ) { int disable = 0x00; /* possibly layer disable bits do exist ?? */ @@ -657,17 +657,17 @@ void tc0080vco_device::tilemap_draw( bitmap_ind16 &bitmap, const rectangle &clip case 0: if (disable & 0x01) return; - bg0_tilemap_draw(bitmap, cliprect, flags, priority); + bg0_tilemap_draw(screen, bitmap, cliprect, flags, priority); break; case 1: if (disable & 0x02) return; - bg1_tilemap_draw(bitmap, cliprect, flags, priority); + bg1_tilemap_draw(screen, bitmap, cliprect, flags, priority); break; case 2: if (disable & 0x04) return; - m_tilemap[2]->draw(bitmap, cliprect, flags, priority); + m_tilemap[2]->draw(screen, bitmap, cliprect, flags, priority); break; } } diff --git a/src/mame/video/tc0080vco.h b/src/mame/video/tc0080vco.h index fb15ede15aa..2f87c7fb4a0 100644 --- a/src/mame/video/tc0080vco.h +++ b/src/mame/video/tc0080vco.h @@ -23,7 +23,7 @@ public: DECLARE_WRITE16_MEMBER( word_w ); void tilemap_update(); - void tilemap_draw(bitmap_ind16 &bitmap, const rectangle &cliprect, int layer, int flags, UINT32 priority); + void tilemap_draw(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect, int layer, int flags, UINT32 priority); DECLARE_READ16_MEMBER( cram_0_r ); DECLARE_READ16_MEMBER( cram_1_r ); @@ -69,8 +69,8 @@ public: TILE_GET_INFO_MEMBER(get_bg0_tile_info); TILE_GET_INFO_MEMBER(get_bg1_tile_info); TILE_GET_INFO_MEMBER(get_tx_tile_info); - void bg0_tilemap_draw( bitmap_ind16 &bitmap, const rectangle &cliprect, int flags, UINT32 priority ); - void bg1_tilemap_draw( bitmap_ind16 &bitmap, const rectangle &cliprect, int flags, UINT32 priority ); + void bg0_tilemap_draw( screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect, int flags, UINT32 priority ); + void bg1_tilemap_draw( screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect, int flags, UINT32 priority ); }; extern const device_type TC0080VCO; diff --git a/src/mame/video/tc0100scn.c b/src/mame/video/tc0100scn.c index a6a9c5073f4..70a9fc72db1 100644 --- a/src/mame/video/tc0100scn.c +++ b/src/mame/video/tc0100scn.c @@ -121,7 +121,6 @@ const device_type TC0100SCN = &device_creator; tc0100scn_device::tc0100scn_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock) : device_t(mconfig, TC0100SCN, "Taito TC0100SCN", tag, owner, clock, "tc0100scn", __FILE__), - device_video_interface(mconfig, *this), m_ram(NULL), m_bg_ram(NULL), m_fg_ram(NULL), @@ -189,8 +188,6 @@ void tc0100scn_device::device_start() Thundfox is the only one of those with two chips, and we're safe as it uses single width tilemaps. */ - m_cliprect = m_screen->visible_area(); - /* Single width versions */ m_tilemap[0][0] = &machine().tilemap().create(tilemap_get_info_delegate(FUNC(tc0100scn_device::get_bg_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 64, 64); m_tilemap[1][0] = &machine().tilemap().create(tilemap_get_info_delegate(FUNC(tc0100scn_device::get_fg_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 64, 64); @@ -620,7 +617,7 @@ void tc0100scn_device::tilemap_update() m_tilemap[1][m_dblwidth]->set_scrollx((j + m_fgscrolly) & 0x1ff, m_fgscrollx - m_fgscroll_ram[j]); } -void tc0100scn_device::tilemap_draw_fg( bitmap_ind16 &bitmap, const rectangle &cliprect, tilemap_t* tmap, int flags, UINT32 priority ) +void tc0100scn_device::tilemap_draw_fg( screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect, tilemap_t* tmap, int flags, UINT32 priority ) { const bitmap_ind16 &src_bitmap = tmap->pixmap(); int width_mask, height_mask, x, y, p; @@ -653,9 +650,9 @@ void tc0100scn_device::tilemap_draw_fg( bitmap_ind16 &bitmap, const rectangle &c if ((p & 0xf)!= 0 || (flags & TILEMAP_DRAW_OPAQUE)) { bitmap.pix16(y, x + cliprect.min_x) = p; - if (machine().priority_bitmap.valid()) + if (screen.priority().valid()) { - UINT8 *pri = &machine().priority_bitmap.pix8(y); + UINT8 *pri = &screen.priority().pix8(y); pri[x + cliprect.min_x] |= priority; } } @@ -665,11 +662,11 @@ void tc0100scn_device::tilemap_draw_fg( bitmap_ind16 &bitmap, const rectangle &c } } -int tc0100scn_device::tilemap_draw( bitmap_ind16 &bitmap, const rectangle &cliprect, int layer, int flags, UINT32 priority ) +int tc0100scn_device::tilemap_draw( screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect, int layer, int flags, UINT32 priority ) { int disable = m_ctrl[6] & 0xf7; rectangle clip = cliprect; - clip &= m_cliprect; + clip &= screen.visible_area(); #if 0 if (disable != 0 && disable != 3 && disable != 7) @@ -681,17 +678,17 @@ if (disable != 0 && disable != 3 && disable != 7) case 0: if (disable & 0x01) return 1; - m_tilemap[0][m_dblwidth]->draw(bitmap, clip, flags, priority); + m_tilemap[0][m_dblwidth]->draw(screen, bitmap, clip, flags, priority); break; case 1: if (disable & 0x02) return 1; - tilemap_draw_fg(bitmap, clip, m_tilemap[1][m_dblwidth], flags, priority); + tilemap_draw_fg(screen, bitmap, clip, m_tilemap[1][m_dblwidth], flags, priority); break; case 2: if (disable & 0x04) return 1; - m_tilemap[2][m_dblwidth]->draw(bitmap, clip, flags, priority); + m_tilemap[2][m_dblwidth]->draw(screen, bitmap, clip, flags, priority); break; } return 0; diff --git a/src/mame/video/tc0100scn.h b/src/mame/video/tc0100scn.h index 5524085a42d..e47dfa3ed2e 100644 --- a/src/mame/video/tc0100scn.h +++ b/src/mame/video/tc0100scn.h @@ -15,7 +15,6 @@ struct tc0100scn_interface }; class tc0100scn_device : public device_t, - public device_video_interface, public tc0100scn_interface { public: @@ -50,7 +49,7 @@ public: DECLARE_WRITE32_MEMBER(ctrl_long_w); void tilemap_update(); - int tilemap_draw(bitmap_ind16 &bitmap, const rectangle &cliprect, int layer, int flags, UINT32 priority); + int tilemap_draw(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect, int layer, int flags, UINT32 priority); /* returns 0 or 1 depending on the lowest priority tilemap set in the internal register. Use this function to draw tilemaps in the correct order. */ @@ -81,7 +80,6 @@ private: /* We keep two tilemaps for each of the 3 actual tilemaps: one at standard width, one double */ tilemap_t *m_tilemap[3][2]; - rectangle m_cliprect; int m_bg_col_mult, m_bg_tilemask, m_tx_col_mult; INT32 m_gfxbank, m_colbank; @@ -96,7 +94,7 @@ private: void common_get_bg1_tile_info(tile_data &tileinfo, int tile_index, UINT16 *ram, int gfxnum, int colbank, int dblwidth); void common_get_tx_tile_info(tile_data &tileinfo, int tile_index, UINT16 *ram, int gfxnum, int colbank, int dblwidth); - void tilemap_draw_fg(bitmap_ind16 &bitmap, const rectangle &cliprect, tilemap_t* tmap, int flags, UINT32 priority); + void tilemap_draw_fg(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect, tilemap_t* tmap, int flags, UINT32 priority); void set_layer_ptrs(); void dirty_tilemaps(); void restore_scroll(); @@ -109,6 +107,4 @@ extern const device_type TC0100SCN; MCFG_DEVICE_ADD(_tag, TC0100SCN, 0) \ MCFG_DEVICE_CONFIG(_interface) -#define MCFG_TC0100SCN_SET_SCREEN MCFG_VIDEO_SET_SCREEN - #endif diff --git a/src/mame/video/tc0150rod.c b/src/mame/video/tc0150rod.c index 364f5800331..acfcd6b988e 100644 --- a/src/mame/video/tc0150rod.c +++ b/src/mame/video/tc0150rod.c @@ -229,7 +229,7 @@ lookup table from rom for the TaitoZ sprites. ******************************************************************************/ -void tc0150rod_device::draw( bitmap_ind16 &bitmap, const rectangle &cliprect, int y_offs, int palette_offs, int type, int road_trans, UINT32 low_priority, UINT32 high_priority ) +void tc0150rod_device::draw( bitmap_ind16 &bitmap, const rectangle &cliprect, int y_offs, int palette_offs, int type, int road_trans, bitmap_ind8 &priority_bitmap, UINT32 low_priority, UINT32 high_priority ) { #ifdef MAME_DEBUG static int dislayer[6]; /* Road Layer toggles to help get road correct */ @@ -787,7 +787,7 @@ void tc0150rod_device::draw( bitmap_ind16 &bitmap, const rectangle &cliprect, in } } - taitoic_drawscanline(bitmap, cliprect, 0, y, scanline, 1, ROT0, machine().priority_bitmap, (y > priority_switch_line) ? high_priority : low_priority); + taitoic_drawscanline(bitmap, cliprect, 0, y, scanline, 1, ROT0, priority_bitmap, (y > priority_switch_line) ? high_priority : low_priority); } y++; diff --git a/src/mame/video/tc0150rod.h b/src/mame/video/tc0150rod.h index 61248b1c835..44426ad6113 100644 --- a/src/mame/video/tc0150rod.h +++ b/src/mame/video/tc0150rod.h @@ -15,7 +15,7 @@ public: DECLARE_READ16_MEMBER( word_r ); DECLARE_WRITE16_MEMBER( word_w ); - void draw(bitmap_ind16 &bitmap, const rectangle &cliprect, int y_offs, int palette_offs, int type, int road_trans, UINT32 low_priority, UINT32 high_priority); + void draw(bitmap_ind16 &bitmap, const rectangle &cliprect, int y_offs, int palette_offs, int type, int road_trans, bitmap_ind8 &priority_bitmap, UINT32 low_priority, UINT32 high_priority); protected: // device-level overrides diff --git a/src/mame/video/tc0180vcu.c b/src/mame/video/tc0180vcu.c index 8c72ea87621..0625d642c57 100644 --- a/src/mame/video/tc0180vcu.c +++ b/src/mame/video/tc0180vcu.c @@ -282,12 +282,12 @@ WRITE16_MEMBER( tc0180vcu_device::word_w ) m_tilemap[2]->mark_tile_dirty(offset & 0x7ff); } -void tc0180vcu_device::tilemap_draw( bitmap_ind16 &bitmap, const rectangle &cliprect, int tmap_num, int plane ) +void tc0180vcu_device::tilemap_draw( screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect, int tmap_num, int plane ) { assert(tmap_num < 3); if (tmap_num == 2) - m_tilemap[2]->draw(bitmap, cliprect, 0, 0); /* not much to do for tx_tilemap */ + m_tilemap[2]->draw(screen, bitmap, cliprect, 0, 0); /* not much to do for tx_tilemap */ else { /*plane = 0 fg tilemap*/ @@ -324,7 +324,7 @@ void tc0180vcu_device::tilemap_draw( bitmap_ind16 &bitmap, const rectangle &clip { m_tilemap[tmap_num]->set_scrollx(0, -scrollx); m_tilemap[tmap_num]->set_scrolly(0, -scrolly); - m_tilemap[tmap_num]->draw(bitmap, my_clip, 0, 0); + m_tilemap[tmap_num]->draw(screen, bitmap, my_clip, 0, 0); } } } diff --git a/src/mame/video/tc0180vcu.h b/src/mame/video/tc0180vcu.h index 69e888b0269..a5ba92d41f9 100644 --- a/src/mame/video/tc0180vcu.h +++ b/src/mame/video/tc0180vcu.h @@ -24,7 +24,7 @@ public: DECLARE_WRITE16_MEMBER( scroll_w ); DECLARE_READ16_MEMBER( word_r ); DECLARE_WRITE16_MEMBER( word_w ); - void tilemap_draw(bitmap_ind16 &bitmap, const rectangle &cliprect, int tmap_num, int plane); + void tilemap_draw(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect, int tmap_num, int plane); protected: // device-level overrides diff --git a/src/mame/video/tc0280grd.c b/src/mame/video/tc0280grd.c index b795642c5a1..4d652116ccc 100644 --- a/src/mame/video/tc0280grd.c +++ b/src/mame/video/tc0280grd.c @@ -139,7 +139,7 @@ void tc0280grd_device::tc0430grw_tilemap_update( int base_color ) tc0280grd_tilemap_update(base_color); } -void tc0280grd_device::zoom_draw( bitmap_ind16 &bitmap, const rectangle &cliprect, int xoffset, int yoffset, UINT32 priority, int xmultiply ) +void tc0280grd_device::zoom_draw( screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect, int xoffset, int yoffset, UINT32 priority, int xmultiply ) { UINT32 startx, starty; int incxx, incxy, incyx, incyy; @@ -167,18 +167,18 @@ void tc0280grd_device::zoom_draw( bitmap_ind16 &bitmap, const rectangle &cliprec startx -= xoffset * incxx + yoffset * incyx; starty -= xoffset * incxy + yoffset * incyy; - m_tilemap->draw_roz(bitmap, cliprect, startx << 4, starty << 4, + m_tilemap->draw_roz(screen, bitmap, cliprect, startx << 4, starty << 4, incxx << 4, incxy << 4, incyx << 4, incyy << 4, 1, /* copy with wraparound */ 0, priority); } -void tc0280grd_device::tc0280grd_zoom_draw( bitmap_ind16 &bitmap, const rectangle &cliprect, int xoffset, int yoffset, UINT32 priority ) +void tc0280grd_device::tc0280grd_zoom_draw( screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect, int xoffset, int yoffset, UINT32 priority ) { - zoom_draw(bitmap, cliprect, xoffset, yoffset, priority, 2); + zoom_draw(screen, bitmap, cliprect, xoffset, yoffset, priority, 2); } -void tc0280grd_device::tc0430grw_zoom_draw( bitmap_ind16 &bitmap, const rectangle &cliprect, int xoffset, int yoffset, UINT32 priority ) +void tc0280grd_device::tc0430grw_zoom_draw( screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect, int xoffset, int yoffset, UINT32 priority ) { - zoom_draw(bitmap, cliprect, xoffset, yoffset, priority, 1); + zoom_draw(screen, bitmap, cliprect, xoffset, yoffset, priority, 1); } diff --git a/src/mame/video/tc0280grd.h b/src/mame/video/tc0280grd.h index 353ed5bfb58..e0897d859f0 100644 --- a/src/mame/video/tc0280grd.h +++ b/src/mame/video/tc0280grd.h @@ -17,13 +17,13 @@ public: DECLARE_WRITE16_MEMBER( tc0280grd_word_w ); DECLARE_WRITE16_MEMBER( tc0280grd_ctrl_word_w ); void tc0280grd_tilemap_update(int base_color); - void tc0280grd_zoom_draw(bitmap_ind16 &bitmap, const rectangle &cliprect, int xoffset, int yoffset, UINT32 priority); + void tc0280grd_zoom_draw(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect, int xoffset, int yoffset, UINT32 priority); DECLARE_READ16_MEMBER( tc0430grw_word_r ); DECLARE_WRITE16_MEMBER( tc0430grw_word_w ); DECLARE_WRITE16_MEMBER( tc0430grw_ctrl_word_w ); void tc0430grw_tilemap_update(int base_color); - void tc0430grw_zoom_draw(bitmap_ind16 &bitmap, const rectangle &cliprect, int xoffset, int yoffset, UINT32 priority); + void tc0430grw_zoom_draw(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect, int xoffset, int yoffset, UINT32 priority); protected: // device-level overrides @@ -41,7 +41,7 @@ private: int m_base_color; TILE_GET_INFO_MEMBER(tc0280grd_get_tile_info); - void zoom_draw( bitmap_ind16 &bitmap, const rectangle &cliprect, int xoffset, int yoffset, UINT32 priority, int xmultiply ); + void zoom_draw( screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect, int xoffset, int yoffset, UINT32 priority, int xmultiply ); }; extern const device_type TC0280GRD; diff --git a/src/mame/video/tc0480scp.c b/src/mame/video/tc0480scp.c index 358e35d4849..2896485a57d 100644 --- a/src/mame/video/tc0480scp.c +++ b/src/mame/video/tc0480scp.c @@ -673,7 +673,7 @@ Historical Issues **********************************************************************/ -void tc0480scp_device::bg01_draw( bitmap_ind16 &bitmap, const rectangle &cliprect, int layer, int flags, UINT32 priority ) +void tc0480scp_device::bg01_draw( screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect, int layer, int flags, UINT32 priority ) { /* X-axis zoom offers expansion only: 0 = no zoom, 0xff = max Y-axis zoom offers expansion/compression: 0x7f = no zoom, 0xff = max @@ -685,7 +685,7 @@ void tc0480scp_device::bg01_draw( bitmap_ind16 &bitmap, const rectangle &cliprec if ((zoomx == 0x10000) && (zoomy == 0x10000)) /* no zoom, simple */ { /* Prevent bad things */ - m_tilemap[layer][m_dblwidth]->draw(bitmap, cliprect, flags, priority); + m_tilemap[layer][m_dblwidth]->draw(screen, bitmap, cliprect, flags, priority); } else /* zoom */ { @@ -767,7 +767,7 @@ void tc0480scp_device::bg01_draw( bitmap_ind16 &bitmap, const rectangle &cliprec } } - taitoic_drawscanline(bitmap, cliprect, 0, y, scanline, (flags & TILEMAP_DRAW_OPAQUE) ? 0 : 1, ROT0, machine().priority_bitmap, priority); + taitoic_drawscanline(bitmap, cliprect, 0, y, scanline, (flags & TILEMAP_DRAW_OPAQUE) ? 0 : 1, ROT0, screen.priority(), priority); y_index += zoomy; if (!machine_flip) @@ -821,7 +821,7 @@ flipscreen. ****************************************************************/ -void tc0480scp_device::bg23_draw(bitmap_ind16 &bitmap, const rectangle &cliprect, int layer, int flags, UINT32 priority ) +void tc0480scp_device::bg23_draw(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect, int layer, int flags, UINT32 priority ) { bitmap_ind16 &srcbitmap = m_tilemap[layer][m_dblwidth]->pixmap(); bitmap_ind8 &flagsbitmap = m_tilemap[layer][m_dblwidth]->flagsmap(); @@ -930,7 +930,7 @@ void tc0480scp_device::bg23_draw(bitmap_ind16 &bitmap, const rectangle &cliprect } } - taitoic_drawscanline(bitmap, cliprect, 0, y, scanline, (flags & TILEMAP_DRAW_OPAQUE) ? 0 : 1, ROT0, machine().priority_bitmap, priority); + taitoic_drawscanline(bitmap, cliprect, 0, y, scanline, (flags & TILEMAP_DRAW_OPAQUE) ? 0 : 1, ROT0, screen.priority(), priority); y_index += zoomy; if (!machine_flip) @@ -942,25 +942,25 @@ void tc0480scp_device::bg23_draw(bitmap_ind16 &bitmap, const rectangle &cliprect } -void tc0480scp_device::tilemap_draw( bitmap_ind16 &bitmap, const rectangle &cliprect, int layer, int flags, UINT32 priority ) +void tc0480scp_device::tilemap_draw( screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect, int layer, int flags, UINT32 priority ) { /* no layer disable bits */ switch (layer) { case 0: - bg01_draw(bitmap, cliprect, 0, flags, priority); + bg01_draw(screen, bitmap, cliprect, 0, flags, priority); break; case 1: - bg01_draw(bitmap, cliprect, 1, flags, priority); + bg01_draw(screen, bitmap, cliprect, 1, flags, priority); break; case 2: - bg23_draw(bitmap, cliprect, 2, flags, priority); + bg23_draw(screen, bitmap, cliprect, 2, flags, priority); break; case 3: - bg23_draw(bitmap, cliprect, 3, flags, priority); + bg23_draw(screen, bitmap, cliprect, 3, flags, priority); break; case 4: - m_tilemap[4][m_dblwidth]->draw(bitmap, cliprect, flags, priority); + m_tilemap[4][m_dblwidth]->draw(screen, bitmap, cliprect, flags, priority); break; } } diff --git a/src/mame/video/tc0480scp.h b/src/mame/video/tc0480scp.h index 5383e5af010..5ea9eb60c03 100644 --- a/src/mame/video/tc0480scp.h +++ b/src/mame/video/tc0480scp.h @@ -38,7 +38,7 @@ public: DECLARE_WRITE32_MEMBER( ctrl_long_w ); void tilemap_update(); - void tilemap_draw(bitmap_ind16 &bitmap, const rectangle &cliprect, int layer, int flags, UINT32 priority); + void tilemap_draw(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect, int layer, int flags, UINT32 priority); /* Returns the priority order of the bg tilemaps set in the internal register. The order in which the four layers should be drawn is @@ -87,8 +87,8 @@ private: void dirty_tilemaps(); void set_layer_ptrs(); - void bg01_draw( bitmap_ind16 &bitmap, const rectangle &cliprect, int layer, int flags, UINT32 priority ); - void bg23_draw( bitmap_ind16 &bitmap, const rectangle &cliprect, int layer, int flags, UINT32 priority ); + void bg01_draw( screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect, int layer, int flags, UINT32 priority ); + void bg23_draw( screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect, int layer, int flags, UINT32 priority ); }; extern const device_type TC0480SCP; diff --git a/src/mame/video/tceptor.c b/src/mame/video/tceptor.c index c92688da8ca..53e9740c729 100644 --- a/src/mame/video/tceptor.c +++ b/src/mame/video/tceptor.c @@ -517,14 +517,14 @@ UINT32 tceptor_state::screen_update_tceptor_2d(screen_device &screen, bitmap_ind rect.max_x = bg_center; m_bg1_tilemap->set_scrollx(0, m_bg1_scroll_x + 12); m_bg1_tilemap->set_scrolly(0, m_bg1_scroll_y + 20); //32? - m_bg1_tilemap->draw(bitmap, rect, 0, 0); + m_bg1_tilemap->draw(screen, bitmap, rect, 0, 0); // right background rect.min_x = bg_center; rect.max_x = cliprect.max_x; m_bg2_tilemap->set_scrollx(0, m_bg2_scroll_x + 20); m_bg2_tilemap->set_scrolly(0, m_bg2_scroll_y + 20); // 32? - m_bg2_tilemap->draw(bitmap, rect, 0, 0); + m_bg2_tilemap->draw(screen, bitmap, rect, 0, 0); for (pri = 0; pri < 8; pri++) { @@ -533,7 +533,7 @@ UINT32 tceptor_state::screen_update_tceptor_2d(screen_device &screen, bitmap_ind draw_sprites(bitmap, cliprect, pri); } - m_tx_tilemap->draw(bitmap, cliprect, 0, 0); + m_tx_tilemap->draw(screen, bitmap, cliprect, 0, 0); return 0; } diff --git a/src/mame/video/tecmo.c b/src/mame/video/tecmo.c index 73dc3d07d11..800df492357 100644 --- a/src/mame/video/tecmo.c +++ b/src/mame/video/tecmo.c @@ -156,7 +156,7 @@ WRITE8_MEMBER(tecmo_state::tecmo_flipscreen_w) ***************************************************************************/ -void tecmo_state::draw_sprites(bitmap_ind16 &bitmap,const rectangle &cliprect) +void tecmo_state::draw_sprites(screen_device &screen, bitmap_ind16 &bitmap,const rectangle &cliprect) { UINT8 *spriteram = m_spriteram; int offs; @@ -225,7 +225,7 @@ void tecmo_state::draw_sprites(bitmap_ind16 &bitmap,const rectangle &cliprect) flags & 0xf, flipx,flipy, sx,sy, - machine().priority_bitmap, + screen.priority(), priority_mask,0); } } @@ -236,12 +236,12 @@ void tecmo_state::draw_sprites(bitmap_ind16 &bitmap,const rectangle &cliprect) UINT32 tecmo_state::screen_update_tecmo(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect) { - machine().priority_bitmap.fill(0, cliprect); + screen.priority().fill(0, cliprect); bitmap.fill(0x100, cliprect); - m_bg_tilemap->draw(bitmap, cliprect, 0,1); - m_fg_tilemap->draw(bitmap, cliprect, 0,2); - m_tx_tilemap->draw(bitmap, cliprect, 0,4); + m_bg_tilemap->draw(screen, bitmap, cliprect, 0,1); + m_fg_tilemap->draw(screen, bitmap, cliprect, 0,2); + m_tx_tilemap->draw(screen, bitmap, cliprect, 0,4); - draw_sprites(bitmap,cliprect); + draw_sprites(screen,bitmap,cliprect); return 0; } diff --git a/src/mame/video/tecmo16.c b/src/mame/video/tecmo16.c index b8ad9ccbf59..6fe785286be 100644 --- a/src/mame/video/tecmo16.c +++ b/src/mame/video/tecmo16.c @@ -308,22 +308,22 @@ static void blendbitmaps(running_machine &machine, UINT32 tecmo16_state::screen_update_tecmo16(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect) { - machine().priority_bitmap.fill(0, cliprect); + screen.priority().fill(0, cliprect); m_tile_bitmap_bg.fill(0x300, cliprect); m_tile_bitmap_fg.fill(0, cliprect); m_sprite_bitmap.fill(0, cliprect); /* draw tilemaps into a 16-bit bitmap */ - m_bg_tilemap->draw(m_tile_bitmap_bg, cliprect, 0, 1); - m_fg_tilemap->draw(m_tile_bitmap_fg, cliprect, 0, 2); + m_bg_tilemap->draw(screen, m_tile_bitmap_bg, cliprect, 0, 1); + m_fg_tilemap->draw(screen, m_tile_bitmap_fg, cliprect, 0, 2); /* draw the blended tiles at a lower priority so sprites covered by them will still be drawn */ - m_fg_tilemap->draw(m_tile_bitmap_fg, cliprect, 1, 0); - m_tx_tilemap->draw(m_tile_bitmap_fg, cliprect, 0, 4); + m_fg_tilemap->draw(screen, m_tile_bitmap_fg, cliprect, 1, 0); + m_tx_tilemap->draw(screen, m_tile_bitmap_fg, cliprect, 0, 4); /* draw sprites into a 16-bit bitmap */ - tecmo16_draw_sprites(machine(), m_tile_bitmap_bg, m_tile_bitmap_fg, m_sprite_bitmap, cliprect, m_spriteram, m_spriteram.bytes(), m_game_is_riot, m_flipscreen); + tecmo16_draw_sprites(screen, m_tile_bitmap_bg, m_tile_bitmap_fg, m_sprite_bitmap, cliprect, m_spriteram, m_spriteram.bytes(), m_game_is_riot, m_flipscreen); /* mix & blend the tilemaps and sprites into a 32-bit bitmap */ blendbitmaps(machine(), bitmap, m_tile_bitmap_bg, m_tile_bitmap_fg, m_sprite_bitmap, 0, 0, cliprect); diff --git a/src/mame/video/tecmo_spr.c b/src/mame/video/tecmo_spr.c index 25e53edd7d0..9f99e24b030 100644 --- a/src/mame/video/tecmo_spr.c +++ b/src/mame/video/tecmo_spr.c @@ -66,7 +66,7 @@ static const UINT8 layout[8][8] = /* from gals pinball (which was in turn from ninja gaiden) */ -int spbactn_draw_sprites(running_machine &machine, bitmap_ind16 &bitmap, const rectangle &cliprect, int priority, bool alt_sprites, UINT16* spriteram) +int spbactn_draw_sprites(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect, int priority, bool alt_sprites, UINT16* spriteram) { int count = 0; int offs; @@ -120,9 +120,9 @@ int spbactn_draw_sprites(running_machine &machine, bitmap_ind16 &bitmap, const r int x = sx + 8 * (flipx ? (size - 1 - col) : col); int y = sy + 8 * (flipy ? (size - 1 - row) : row); - drawgfx_transpen_raw(bitmap, cliprect, machine.gfx[2], + drawgfx_transpen_raw(bitmap, cliprect, screen.machine().gfx[2], code + layout[row][col], - machine.gfx[2]->colorbase() + color * machine.gfx[2]->granularity(), + screen.machine().gfx[2]->colorbase() + color * screen.machine().gfx[2]->granularity(), flipx, flipy, x, y, 0); @@ -138,7 +138,7 @@ int spbactn_draw_sprites(running_machine &machine, bitmap_ind16 &bitmap, const r // comad bootleg of spbactn -void galspnbl_draw_sprites( running_machine &machine, bitmap_ind16 &bitmap, const rectangle &cliprect, int priority, UINT16* spriteram, int spriteram_bytes ) +void galspnbl_draw_sprites( screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect, int priority, UINT16* spriteram, int spriteram_bytes ) { int offs; @@ -149,7 +149,7 @@ void galspnbl_draw_sprites( running_machine &machine, bitmap_ind16 &bitmap, cons int col, row; attr = spriteram[offs]; - if ((attr & 0x0004) && ((attr & 0x0040) == 0 || (machine.primary_screen->frame_number() & 1)) + if ((attr & 0x0004) && ((attr & 0x0040) == 0 || (screen.frame_number() & 1)) // && ((attr & 0x0030) >> 4) == priority) && ((attr & 0x0020) >> 5) == priority) { @@ -169,7 +169,7 @@ void galspnbl_draw_sprites( running_machine &machine, bitmap_ind16 &bitmap, cons { int x = sx + 8 * (flipx ? (size - 1 - col) : col); int y = sy + 8 * (flipy ? (size - 1 - row) : row); - drawgfx_transpen(bitmap,cliprect,machine.gfx[1], + drawgfx_transpen(bitmap,cliprect,screen.machine().gfx[1], code + layout[row][col], color, flipx,flipy, @@ -180,7 +180,7 @@ void galspnbl_draw_sprites( running_machine &machine, bitmap_ind16 &bitmap, cons } } -void tecmo16_draw_sprites(running_machine &machine, bitmap_ind16 &bitmap_bg, bitmap_ind16 &bitmap_fg, bitmap_ind16 &bitmap_sp, const rectangle &cliprect, UINT16* spriteram, UINT16 spriteram16_bytes, int game_is_riot, int flipscreen ) +void tecmo16_draw_sprites(screen_device &screen, bitmap_ind16 &bitmap_bg, bitmap_ind16 &bitmap_fg, bitmap_ind16 &bitmap_sp, const rectangle &cliprect, UINT16* spriteram, UINT16 spriteram16_bytes, int game_is_riot, int flipscreen ) { UINT16 *spriteram16 = spriteram; int offs; @@ -252,28 +252,28 @@ void tecmo16_draw_sprites(running_machine &machine, bitmap_ind16 &bitmap_bg, bit sx = 256 - (xpos + 8*(!flipx?(sizex-1-x):x) + 8); sy = 256 - (ypos + 8*(!flipy?(sizey-1-y):y) + 8); } - pdrawgfx_transpen_raw(bitmap,cliprect,machine.gfx[2], + pdrawgfx_transpen_raw(bitmap,cliprect,screen.machine().gfx[2], code + layout[y][x], - machine.gfx[2]->colorbase() + color * machine.gfx[2]->granularity(), + screen.machine().gfx[2]->colorbase() + color * screen.machine().gfx[2]->granularity(), flipx,flipy, sx,sy, - machine.priority_bitmap, priority_mask,0); + screen.priority(), priority_mask,0); /* wrap around x */ - pdrawgfx_transpen_raw(bitmap,cliprect,machine.gfx[2], + pdrawgfx_transpen_raw(bitmap,cliprect,screen.machine().gfx[2], code + layout[y][x], - machine.gfx[2]->colorbase() + color * machine.gfx[2]->granularity(), + screen.machine().gfx[2]->colorbase() + color * screen.machine().gfx[2]->granularity(), flipx,flipy, sx-512,sy, - machine.priority_bitmap, priority_mask,0); + screen.priority(), priority_mask,0); /* wrap around x */ - pdrawgfx_transpen_raw(bitmap,cliprect,machine.gfx[2], + pdrawgfx_transpen_raw(bitmap,cliprect,screen.machine().gfx[2], code + layout[y][x], - machine.gfx[2]->colorbase() + color * machine.gfx[2]->granularity(), + screen.machine().gfx[2]->colorbase() + color * screen.machine().gfx[2]->granularity(), flipx,flipy, sx+512,sy, - machine.priority_bitmap, priority_mask,0); + screen.priority(), priority_mask,0); } } } @@ -295,28 +295,28 @@ void tecmo16_draw_sprites(running_machine &machine, bitmap_ind16 &bitmap_bg, bit sx = 256 - (xpos + 8*(!flipx?(sizex-1-x):x) + 8); sy = 256 - (ypos + 8*(!flipy?(sizey-1-y):y) + 8); } - pdrawgfx_transpen_raw(bitmap,cliprect,machine.gfx[2], + pdrawgfx_transpen_raw(bitmap,cliprect,screen.machine().gfx[2], code + layout[y][x], - machine.gfx[2]->colorbase() + color * machine.gfx[2]->granularity(), + screen.machine().gfx[2]->colorbase() + color * screen.machine().gfx[2]->granularity(), flipx,flipy, sx,sy, - machine.priority_bitmap, priority_mask,0); + screen.priority(), priority_mask,0); /* wrap around x */ - pdrawgfx_transpen_raw(bitmap,cliprect,machine.gfx[2], + pdrawgfx_transpen_raw(bitmap,cliprect,screen.machine().gfx[2], code + layout[y][x], - machine.gfx[2]->colorbase() + color * machine.gfx[2]->granularity(), + screen.machine().gfx[2]->colorbase() + color * screen.machine().gfx[2]->granularity(), flipx,flipy, sx-512,sy, - machine.priority_bitmap, priority_mask,0); + screen.priority(), priority_mask,0); /* wrap around x */ - pdrawgfx_transpen_raw(bitmap,cliprect,machine.gfx[2], + pdrawgfx_transpen_raw(bitmap,cliprect,screen.machine().gfx[2], code + layout[y][x], - machine.gfx[2]->colorbase() + color * machine.gfx[2]->granularity(), + screen.machine().gfx[2]->colorbase() + color * screen.machine().gfx[2]->granularity(), flipx,flipy, sx+512,sy, - machine.priority_bitmap, priority_mask,0); + screen.priority(), priority_mask,0); } } } @@ -326,9 +326,9 @@ void tecmo16_draw_sprites(running_machine &machine, bitmap_ind16 &bitmap_bg, bit #define NUM_SPRITES 256 -void gaiden_draw_sprites( running_machine &machine, bitmap_ind16 &bitmap_bg, bitmap_ind16 &bitmap_fg, bitmap_ind16 &bitmap_sp, const rectangle &cliprect, UINT16* spriteram, int sprite_sizey, int spr_offset_y, int flip_screen ) +void gaiden_draw_sprites( screen_device &screen, bitmap_ind16 &bitmap_bg, bitmap_ind16 &bitmap_fg, bitmap_ind16 &bitmap_sp, const rectangle &cliprect, UINT16* spriteram, int sprite_sizey, int spr_offset_y, int flip_screen ) { - gfx_element *gfx = machine.gfx[3]; + gfx_element *gfx = screen.machine().gfx[3]; const UINT16 *source = (NUM_SPRITES - 1) * 8 + spriteram; int count = NUM_SPRITES; @@ -405,7 +405,7 @@ void gaiden_draw_sprites( running_machine &machine, bitmap_ind16 &bitmap_bg, bit gfx->colorbase() + color * gfx->granularity(), flipx, flipy, sx, sy, - machine.priority_bitmap, priority_mask, 0); + screen.priority(), priority_mask, 0); } } } @@ -425,7 +425,7 @@ void gaiden_draw_sprites( running_machine &machine, bitmap_ind16 &bitmap_bg, bit gfx->colorbase() + color * gfx->granularity(), flipx, flipy, sx, sy, - machine.priority_bitmap, priority_mask, 0); + screen.priority(), priority_mask, 0); } } } @@ -435,9 +435,9 @@ void gaiden_draw_sprites( running_machine &machine, bitmap_ind16 &bitmap_bg, bit } -void raiga_draw_sprites( running_machine &machine, bitmap_ind16 &bitmap_bg, bitmap_ind16 &bitmap_fg, bitmap_ind16 &bitmap_sp, const rectangle &cliprect, UINT16* spriteram, int sprite_sizey, int spr_offset_y, int flip_screen ) +void raiga_draw_sprites( screen_device &screen, bitmap_ind16 &bitmap_bg, bitmap_ind16 &bitmap_fg, bitmap_ind16 &bitmap_sp, const rectangle &cliprect, UINT16* spriteram, int sprite_sizey, int spr_offset_y, int flip_screen ) { - gfx_element *gfx = machine.gfx[3]; + gfx_element *gfx = screen.machine().gfx[3]; const UINT16 *source = (NUM_SPRITES - 1) * 8 + spriteram; int count = NUM_SPRITES; @@ -513,7 +513,7 @@ void raiga_draw_sprites( running_machine &machine, bitmap_ind16 &bitmap_bg, bitm gfx->colorbase() + color * gfx->granularity(), flipx, flipy, sx, sy, - machine.priority_bitmap, priority_mask, 0); + screen.priority(), priority_mask, 0); } } } @@ -533,7 +533,7 @@ void raiga_draw_sprites( running_machine &machine, bitmap_ind16 &bitmap_bg, bitm gfx->colorbase() + color * gfx->granularity(), flipx, flipy, sx, sy, - machine.priority_bitmap, priority_mask, 0); + screen.priority(), priority_mask, 0); } } } diff --git a/src/mame/video/tecmo_spr.h b/src/mame/video/tecmo_spr.h index 8af6da82a1d..b0c29bd1525 100644 --- a/src/mame/video/tecmo_spr.h +++ b/src/mame/video/tecmo_spr.h @@ -1,7 +1,7 @@ /* Tecmo Sprites */ -void galspnbl_draw_sprites( running_machine &machine, bitmap_ind16 &bitmap, const rectangle &cliprect, int priority, UINT16* spriteram, int spriteram_bytes ); -void tecmo16_draw_sprites(running_machine &machine, bitmap_ind16 &bitmap_bg, bitmap_ind16 &bitmap_fg, bitmap_ind16 &bitmap_sp, const rectangle &cliprect, UINT16* spriteram, UINT16 spriteram16_bytes, int game_is_riot, int flipscreen ); -void gaiden_draw_sprites( running_machine &machine, bitmap_ind16 &bitmap_bg, bitmap_ind16 &bitmap_fg, bitmap_ind16 &bitmap_sp, const rectangle &cliprect, UINT16* spriteram, int sprite_sizey, int spr_offset_y, int flipscreen ); -void raiga_draw_sprites( running_machine &machine, bitmap_ind16 &bitmap_bg, bitmap_ind16 &bitmap_fg, bitmap_ind16 &bitmap_sp, const rectangle &cliprect, UINT16* spriteram, int sprite_sizey, int spr_offset_y, int flipscreen ); -int spbactn_draw_sprites(running_machine &machine, bitmap_ind16 &bitmap, const rectangle &cliprect, int priority, bool alt_sprites, UINT16* spriteram); +void galspnbl_draw_sprites( screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect, int priority, UINT16* spriteram, int spriteram_bytes ); +void tecmo16_draw_sprites(screen_device &screen, bitmap_ind16 &bitmap_bg, bitmap_ind16 &bitmap_fg, bitmap_ind16 &bitmap_sp, const rectangle &cliprect, UINT16* spriteram, UINT16 spriteram16_bytes, int game_is_riot, int flipscreen ); +void gaiden_draw_sprites( screen_device &screen, bitmap_ind16 &bitmap_bg, bitmap_ind16 &bitmap_fg, bitmap_ind16 &bitmap_sp, const rectangle &cliprect, UINT16* spriteram, int sprite_sizey, int spr_offset_y, int flipscreen ); +void raiga_draw_sprites( screen_device &screen, bitmap_ind16 &bitmap_bg, bitmap_ind16 &bitmap_fg, bitmap_ind16 &bitmap_sp, const rectangle &cliprect, UINT16* spriteram, int sprite_sizey, int spr_offset_y, int flipscreen ); +int spbactn_draw_sprites(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect, int priority, bool alt_sprites, UINT16* spriteram); diff --git a/src/mame/video/tecmosys.c b/src/mame/video/tecmosys.c index 7fee16ca1c5..b7973fae622 100644 --- a/src/mame/video/tecmosys.c +++ b/src/mame/video/tecmosys.c @@ -296,19 +296,19 @@ UINT32 tecmosys_state::screen_update_tecmosys(screen_device &screen, bitmap_rgb3 m_tmp_tilemap_composebitmap.fill(0, cliprect); m_tmp_tilemap_renderbitmap.fill(0, cliprect); - m_bg0tilemap->draw(m_tmp_tilemap_renderbitmap, cliprect, 0,0); + m_bg0tilemap->draw(screen, m_tmp_tilemap_renderbitmap, cliprect, 0,0); tecmosys_tilemap_copy_to_compose(0x0000); m_tmp_tilemap_renderbitmap.fill(0, cliprect); - m_bg1tilemap->draw(m_tmp_tilemap_renderbitmap, cliprect, 0,0); + m_bg1tilemap->draw(screen, m_tmp_tilemap_renderbitmap, cliprect, 0,0); tecmosys_tilemap_copy_to_compose(0x4000); m_tmp_tilemap_renderbitmap.fill(0, cliprect); - m_bg2tilemap->draw(m_tmp_tilemap_renderbitmap, cliprect, 0,0); + m_bg2tilemap->draw(screen, m_tmp_tilemap_renderbitmap, cliprect, 0,0); tecmosys_tilemap_copy_to_compose(0x8000); m_tmp_tilemap_renderbitmap.fill(0, cliprect); - m_txt_tilemap->draw(m_tmp_tilemap_renderbitmap, cliprect, 0,0); + m_txt_tilemap->draw(screen, m_tmp_tilemap_renderbitmap, cliprect, 0,0); tecmosys_tilemap_copy_to_compose(0xc000); diff --git a/src/mame/video/tehkanwc.c b/src/mame/video/tehkanwc.c index ac04e3fccba..9157a2fc7ab 100644 --- a/src/mame/video/tehkanwc.c +++ b/src/mame/video/tehkanwc.c @@ -156,10 +156,10 @@ void tehkanwc_state::draw_sprites(bitmap_ind16 &bitmap, const rectangle &cliprec UINT32 tehkanwc_state::screen_update_tehkanwc(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect) { m_bg_tilemap->set_scrollx(0, m_scroll_x[0] + 256 * m_scroll_x[1]); - m_bg_tilemap->draw(bitmap, cliprect, 0, 0); - m_fg_tilemap->draw(bitmap, cliprect, 0, 0); + m_bg_tilemap->draw(screen, bitmap, cliprect, 0, 0); + m_fg_tilemap->draw(screen, bitmap, cliprect, 0, 0); draw_sprites(bitmap, cliprect); - m_fg_tilemap->draw(bitmap, cliprect, 1, 0); + m_fg_tilemap->draw(screen, bitmap, cliprect, 1, 0); gridiron_draw_led(bitmap, cliprect, m_led0, 0); gridiron_draw_led(bitmap, cliprect, m_led1, 1); return 0; diff --git a/src/mame/video/terracre.c b/src/mame/video/terracre.c index f78cb8d28b7..b6744881dd1 100644 --- a/src/mame/video/terracre.c +++ b/src/mame/video/terracre.c @@ -198,9 +198,9 @@ UINT32 terracre_state::screen_update_amazon(screen_device &screen, bitmap_ind16 if( m_xscroll&0x2000 ) bitmap.fill(get_black_pen(machine()), cliprect ); else - m_background->draw(bitmap, cliprect, 0, 0 ); + m_background->draw(screen, bitmap, cliprect, 0, 0 ); draw_sprites(bitmap,cliprect ); - m_foreground->draw(bitmap, cliprect, 0, 0 ); + m_foreground->draw(screen, bitmap, cliprect, 0, 0 ); return 0; } diff --git a/src/mame/video/tetrisp2.c b/src/mame/video/tetrisp2.c index aebdd5de391..fcdddaa4b24 100644 --- a/src/mame/video/tetrisp2.c +++ b/src/mame/video/tetrisp2.c @@ -417,7 +417,7 @@ UINT32 tetrisp2_state::screen_update_tetrisp2(screen_device &screen, bitmap_ind1 /* Black background color */ bitmap.fill(0, cliprect); - machine().priority_bitmap.fill(0); + screen.priority().fill(0); /* Flip Screen */ if (flipscreen != m_flipscreen_old) @@ -465,27 +465,27 @@ UINT32 tetrisp2_state::screen_update_tetrisp2(screen_device &screen, bitmap_ind1 rot_pri++; if (rot_pri == 0) - m_tilemap_rot->draw(bitmap, cliprect, 0, 1 << 1); + m_tilemap_rot->draw(screen, bitmap, cliprect, 0, 1 << 1); else if (scr_pri == 0) - m_tilemap_bg->draw(bitmap, cliprect, 0, 1 << 0); + m_tilemap_bg->draw(screen, bitmap, cliprect, 0, 1 << 0); else if (asc_pri == 0) - m_tilemap_fg->draw(bitmap, cliprect, 0, 1 << 2); + m_tilemap_fg->draw(screen, bitmap, cliprect, 0, 1 << 2); if (rot_pri == 1) - m_tilemap_rot->draw(bitmap, cliprect, 0, 1 << 1); + m_tilemap_rot->draw(screen, bitmap, cliprect, 0, 1 << 1); else if (scr_pri == 1) - m_tilemap_bg->draw(bitmap, cliprect, 0, 1 << 0); + m_tilemap_bg->draw(screen, bitmap, cliprect, 0, 1 << 0); else if (asc_pri == 1) - m_tilemap_fg->draw(bitmap, cliprect, 0, 1 << 2); + m_tilemap_fg->draw(screen, bitmap, cliprect, 0, 1 << 2); if (rot_pri == 2) - m_tilemap_rot->draw(bitmap, cliprect, 0, 1 << 1); + m_tilemap_rot->draw(screen, bitmap, cliprect, 0, 1 << 1); else if (scr_pri == 2) - m_tilemap_bg->draw(bitmap, cliprect, 0, 1 << 0); + m_tilemap_bg->draw(screen, bitmap, cliprect, 0, 1 << 0); else if (asc_pri == 2) - m_tilemap_fg->draw(bitmap, cliprect, 0, 1 << 2); + m_tilemap_fg->draw(screen, bitmap, cliprect, 0, 1 << 2); - tetrisp2_draw_sprites( machine(), bitmap, machine().priority_bitmap, cliprect, m_priority, + tetrisp2_draw_sprites( machine(), bitmap, screen.priority(), cliprect, m_priority, m_spriteram, m_spriteram.bytes(), 0, (m_systemregs[0x00] & 0x02) ); return 0; } @@ -502,7 +502,7 @@ UINT32 tetrisp2_state::screen_update_rockntread(screen_device &screen, bitmap_in /* Black background color */ bitmap.fill(0, cliprect); - machine().priority_bitmap.fill(0); + screen.priority().fill(0); /* Flip Screen */ if (flipscreen != m_flipscreen_old) @@ -550,27 +550,27 @@ UINT32 tetrisp2_state::screen_update_rockntread(screen_device &screen, bitmap_in rot_pri++; if (rot_pri == 0) - m_tilemap_rot->draw(bitmap, cliprect, 0, 1 << 1); + m_tilemap_rot->draw(screen, bitmap, cliprect, 0, 1 << 1); else if (scr_pri == 0) - m_tilemap_bg->draw(bitmap, cliprect, 0, 1 << 0); + m_tilemap_bg->draw(screen, bitmap, cliprect, 0, 1 << 0); else if (asc_pri == 0) - m_tilemap_fg->draw(bitmap, cliprect, 0, 1 << 2); + m_tilemap_fg->draw(screen, bitmap, cliprect, 0, 1 << 2); if (rot_pri == 1) - m_tilemap_rot->draw(bitmap, cliprect, 0, 1 << 1); + m_tilemap_rot->draw(screen, bitmap, cliprect, 0, 1 << 1); else if (scr_pri == 1) - m_tilemap_bg->draw(bitmap, cliprect, 0, 1 << 0); + m_tilemap_bg->draw(screen, bitmap, cliprect, 0, 1 << 0); else if (asc_pri == 1) - m_tilemap_fg->draw(bitmap, cliprect, 0, 1 << 2); + m_tilemap_fg->draw(screen, bitmap, cliprect, 0, 1 << 2); if (rot_pri == 2) - m_tilemap_rot->draw(bitmap, cliprect, 0, 1 << 1); + m_tilemap_rot->draw(screen, bitmap, cliprect, 0, 1 << 1); else if (scr_pri == 2) - m_tilemap_bg->draw(bitmap, cliprect, 0, 1 << 0); + m_tilemap_bg->draw(screen, bitmap, cliprect, 0, 1 << 0); else if (asc_pri == 2) - m_tilemap_fg->draw(bitmap, cliprect, 0, 1 << 2); + m_tilemap_fg->draw(screen, bitmap, cliprect, 0, 1 << 2); - tetrisp2_draw_sprites( machine(), bitmap, machine().priority_bitmap, cliprect, m_priority, + tetrisp2_draw_sprites( machine(), bitmap, screen.priority(), cliprect, m_priority, m_spriteram, m_spriteram.bytes(), 0, (m_systemregs[0x00] & 0x02) ); return 0; } @@ -592,7 +592,7 @@ UINT32 tetrisp2_state::screen_update_rocknms_left(screen_device &screen, bitmap_ m_tilemap_sub_rot->set_scrolly(0, m_rocknms_sub_rotregs[ 2 ] + 0x400); bitmap.fill(machine().pens[0x0000], cliprect); - machine().priority_bitmap.fill(0, cliprect); + screen.priority().fill(0, cliprect); asc_pri = scr_pri = rot_pri = 0; @@ -612,27 +612,27 @@ UINT32 tetrisp2_state::screen_update_rocknms_left(screen_device &screen, bitmap_ rot_pri++; if (rot_pri == 0) - m_tilemap_sub_rot->draw(bitmap, cliprect, 0, 1 << 1); + m_tilemap_sub_rot->draw(screen, bitmap, cliprect, 0, 1 << 1); else if (scr_pri == 0) - m_tilemap_sub_bg->draw(bitmap, cliprect, 0, 1 << 0); + m_tilemap_sub_bg->draw(screen, bitmap, cliprect, 0, 1 << 0); else if (asc_pri == 0) - m_tilemap_sub_fg->draw(bitmap, cliprect, 0, 1 << 2); + m_tilemap_sub_fg->draw(screen, bitmap, cliprect, 0, 1 << 2); if (rot_pri == 1) - m_tilemap_sub_rot->draw(bitmap, cliprect, 0, 1 << 1); + m_tilemap_sub_rot->draw(screen, bitmap, cliprect, 0, 1 << 1); else if (scr_pri == 1) - m_tilemap_sub_bg->draw(bitmap, cliprect, 0, 1 << 0); + m_tilemap_sub_bg->draw(screen, bitmap, cliprect, 0, 1 << 0); else if (asc_pri == 1) - m_tilemap_sub_fg->draw(bitmap, cliprect, 0, 1 << 2); + m_tilemap_sub_fg->draw(screen, bitmap, cliprect, 0, 1 << 2); if (rot_pri == 2) - m_tilemap_sub_rot->draw(bitmap, cliprect, 0, 1 << 1); + m_tilemap_sub_rot->draw(screen, bitmap, cliprect, 0, 1 << 1); else if (scr_pri == 2) - m_tilemap_sub_bg->draw(bitmap, cliprect, 0, 1 << 0); + m_tilemap_sub_bg->draw(screen, bitmap, cliprect, 0, 1 << 0); else if (asc_pri == 2) - m_tilemap_sub_fg->draw(bitmap, cliprect, 0, 1 << 2); + m_tilemap_sub_fg->draw(screen, bitmap, cliprect, 0, 1 << 2); - tetrisp2_draw_sprites( machine(), bitmap, machine().priority_bitmap, cliprect, m_priority, + tetrisp2_draw_sprites( machine(), bitmap, screen.priority(), cliprect, m_priority, m_spriteram2, m_spriteram2.bytes(), 4, (m_systemregs[0x00] & 0x02) ); return 0; @@ -653,7 +653,7 @@ UINT32 tetrisp2_state::screen_update_rocknms_right(screen_device &screen, bitmap /* Black background color */ bitmap.fill(machine().pens[0x0000], cliprect); - machine().priority_bitmap.fill(0, cliprect); + screen.priority().fill(0, cliprect); asc_pri = scr_pri = rot_pri = 0; @@ -673,27 +673,27 @@ UINT32 tetrisp2_state::screen_update_rocknms_right(screen_device &screen, bitmap rot_pri++; if (rot_pri == 0) - m_tilemap_rot->draw(bitmap, cliprect, 0, 1 << 1); + m_tilemap_rot->draw(screen, bitmap, cliprect, 0, 1 << 1); else if (scr_pri == 0) - m_tilemap_bg->draw(bitmap, cliprect, 0, 1 << 0); + m_tilemap_bg->draw(screen, bitmap, cliprect, 0, 1 << 0); else if (asc_pri == 0) - m_tilemap_fg->draw(bitmap, cliprect, 0, 1 << 2); + m_tilemap_fg->draw(screen, bitmap, cliprect, 0, 1 << 2); if (rot_pri == 1) - m_tilemap_rot->draw(bitmap, cliprect, 0, 1 << 1); + m_tilemap_rot->draw(screen, bitmap, cliprect, 0, 1 << 1); else if (scr_pri == 1) - m_tilemap_bg->draw(bitmap, cliprect, 0, 1 << 0); + m_tilemap_bg->draw(screen, bitmap, cliprect, 0, 1 << 0); else if (asc_pri == 1) - m_tilemap_fg->draw(bitmap, cliprect, 0, 1 << 2); + m_tilemap_fg->draw(screen, bitmap, cliprect, 0, 1 << 2); if (rot_pri == 2) - m_tilemap_rot->draw(bitmap, cliprect, 0, 1 << 1); + m_tilemap_rot->draw(screen, bitmap, cliprect, 0, 1 << 1); else if (scr_pri == 2) - m_tilemap_bg->draw(bitmap, cliprect, 0, 1 << 0); + m_tilemap_bg->draw(screen, bitmap, cliprect, 0, 1 << 0); else if (asc_pri == 2) - m_tilemap_fg->draw(bitmap, cliprect, 0, 1 << 2); + m_tilemap_fg->draw(screen, bitmap, cliprect, 0, 1 << 2); - tetrisp2_draw_sprites( machine(), bitmap, machine().priority_bitmap, cliprect, m_priority, + tetrisp2_draw_sprites( machine(), bitmap, screen.priority(), cliprect, m_priority, m_spriteram, m_spriteram.bytes(), 0, (m_systemregs[0x00] & 0x02) ); return 0; @@ -746,18 +746,18 @@ VIDEO_START_MEMBER(stepstag_state,stepstag) UINT32 stepstag_state::screen_update_stepstag_left(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect) { bitmap.fill(0, cliprect); - machine().priority_bitmap.fill(0); + screen.priority().fill(0); - tetrisp2_draw_sprites( machine(), bitmap, machine().priority_bitmap, cliprect, m_priority, + tetrisp2_draw_sprites( machine(), bitmap, screen.priority(), cliprect, m_priority, m_spriteram, m_spriteram.bytes(), 1, (m_systemregs[0x00] & 0x02) ); return 0; } UINT32 stepstag_state::screen_update_stepstag_right(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect) { bitmap.fill(0, cliprect); - machine().priority_bitmap.fill(0); + screen.priority().fill(0); - tetrisp2_draw_sprites( machine(), bitmap, machine().priority_bitmap, cliprect, m_priority, + tetrisp2_draw_sprites( machine(), bitmap, screen.priority(), cliprect, m_priority, m_spriteram3, m_spriteram3.bytes(), 1, (m_systemregs[0x00] & 0x02) ); return 0; } @@ -765,12 +765,12 @@ UINT32 stepstag_state::screen_update_stepstag_right(screen_device &screen, bitma UINT32 stepstag_state::screen_update_stepstag_mid(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect) { bitmap.fill(0, cliprect); - machine().priority_bitmap.fill(0); + screen.priority().fill(0); - tetrisp2_draw_sprites( machine(), bitmap, machine().priority_bitmap, cliprect, m_priority, + tetrisp2_draw_sprites( machine(), bitmap, screen.priority(), cliprect, m_priority, m_spriteram2, m_spriteram2.bytes(), 0, (m_systemregs[0x00] & 0x02) ); - m_tilemap_fg->draw(bitmap, cliprect, 0, 1 << 2); + m_tilemap_fg->draw(screen, bitmap, cliprect, 0, 1 << 2); return 0; } diff --git a/src/mame/video/thedeep.c b/src/mame/video/thedeep.c index 01520121ac8..7f4a5ee5f49 100644 --- a/src/mame/video/thedeep.c +++ b/src/mame/video/thedeep.c @@ -220,8 +220,8 @@ UINT32 thedeep_state::screen_update_thedeep(screen_device &screen, bitmap_ind16 bitmap.fill(get_black_pen(machine()), cliprect); - m_tilemap_0->draw(bitmap, cliprect, 0,0); + m_tilemap_0->draw(screen, bitmap, cliprect, 0,0); draw_sprites(bitmap,cliprect); - m_tilemap_1->draw(bitmap, cliprect, 0,0); + m_tilemap_1->draw(screen, bitmap, cliprect, 0,0); return 0; } diff --git a/src/mame/video/thepit.c b/src/mame/video/thepit.c index f8e768b6619..aae117b263a 100644 --- a/src/mame/video/thepit.c +++ b/src/mame/video/thepit.c @@ -303,14 +303,14 @@ UINT32 thepit_state::screen_update_thepit(screen_device &screen, bitmap_ind16 &b } /* low priority tiles */ - m_solid_tilemap->draw(bitmap, cliprect, 0, 0); - m_tilemap->draw(bitmap, cliprect, 0, 0); + m_solid_tilemap->draw(screen, bitmap, cliprect, 0, 0); + m_tilemap->draw(screen, bitmap, cliprect, 0, 0); /* low priority sprites */ draw_sprites(machine(), bitmap, m_flip_screen_x ? spritevisibleareaflipx : spritevisiblearea, 0); /* high priority tiles */ - m_solid_tilemap->draw(bitmap, cliprect, 1, 1); + m_solid_tilemap->draw(screen, bitmap, cliprect, 1, 1); /* high priority sprites */ draw_sprites(machine(), bitmap, m_flip_screen_x ? spritevisibleareaflipx : spritevisiblearea, 1); @@ -338,8 +338,8 @@ UINT32 thepit_state::screen_update_desertdan(screen_device &screen, bitmap_ind16 /* low priority tiles */ m_graphics_bank = 0; - m_solid_tilemap->draw(bitmap, cliprect, 0, 0); - m_tilemap->draw(bitmap, cliprect, 0, 0); + m_solid_tilemap->draw(screen, bitmap, cliprect, 0, 0); + m_tilemap->draw(screen, bitmap, cliprect, 0, 0); /* low priority sprites */ m_graphics_bank = 1; @@ -347,7 +347,7 @@ UINT32 thepit_state::screen_update_desertdan(screen_device &screen, bitmap_ind16 /* high priority tiles */ // not sure about this, draws a white block over the title logo sprite, looks like it should be behind? m_graphics_bank = 0; - m_solid_tilemap->draw(bitmap, cliprect, 1, 1); + m_solid_tilemap->draw(screen, bitmap, cliprect, 1, 1); /* high priority sprites */ m_graphics_bank = 1; diff --git a/src/mame/video/thoop2.c b/src/mame/video/thoop2.c index f7879babaf9..7d201be5a99 100644 --- a/src/mame/video/thoop2.c +++ b/src/mame/video/thoop2.c @@ -204,29 +204,29 @@ UINT32 thoop2_state::screen_update_thoop2(screen_device &screen, bitmap_ind16 &b bitmap.fill(0, cliprect ); - m_pant[1]->draw(bitmap, cliprect, TILEMAP_DRAW_LAYER1 | 3,0); - m_pant[0]->draw(bitmap, cliprect, TILEMAP_DRAW_LAYER1 | 3,0); + m_pant[1]->draw(screen, bitmap, cliprect, TILEMAP_DRAW_LAYER1 | 3,0); + m_pant[0]->draw(screen, bitmap, cliprect, TILEMAP_DRAW_LAYER1 | 3,0); draw_sprites(bitmap,cliprect,3); - m_pant[1]->draw(bitmap, cliprect, TILEMAP_DRAW_LAYER0 | 3,0); - m_pant[0]->draw(bitmap, cliprect, TILEMAP_DRAW_LAYER0 | 3,0); + m_pant[1]->draw(screen, bitmap, cliprect, TILEMAP_DRAW_LAYER0 | 3,0); + m_pant[0]->draw(screen, bitmap, cliprect, TILEMAP_DRAW_LAYER0 | 3,0); - m_pant[1]->draw(bitmap, cliprect, TILEMAP_DRAW_LAYER1 | 2,0); - m_pant[0]->draw(bitmap, cliprect, TILEMAP_DRAW_LAYER1 | 2,0); + m_pant[1]->draw(screen, bitmap, cliprect, TILEMAP_DRAW_LAYER1 | 2,0); + m_pant[0]->draw(screen, bitmap, cliprect, TILEMAP_DRAW_LAYER1 | 2,0); draw_sprites(bitmap,cliprect,2); - m_pant[1]->draw(bitmap, cliprect, TILEMAP_DRAW_LAYER0 | 2,0); - m_pant[0]->draw(bitmap, cliprect, TILEMAP_DRAW_LAYER0 | 2,0); + m_pant[1]->draw(screen, bitmap, cliprect, TILEMAP_DRAW_LAYER0 | 2,0); + m_pant[0]->draw(screen, bitmap, cliprect, TILEMAP_DRAW_LAYER0 | 2,0); - m_pant[1]->draw(bitmap, cliprect, TILEMAP_DRAW_LAYER1 | 1,0); - m_pant[0]->draw(bitmap, cliprect, TILEMAP_DRAW_LAYER1 | 1,0); + m_pant[1]->draw(screen, bitmap, cliprect, TILEMAP_DRAW_LAYER1 | 1,0); + m_pant[0]->draw(screen, bitmap, cliprect, TILEMAP_DRAW_LAYER1 | 1,0); draw_sprites(bitmap,cliprect,1); - m_pant[1]->draw(bitmap, cliprect, TILEMAP_DRAW_LAYER0 | 1,0); - m_pant[0]->draw(bitmap, cliprect, TILEMAP_DRAW_LAYER0 | 1,0); + m_pant[1]->draw(screen, bitmap, cliprect, TILEMAP_DRAW_LAYER0 | 1,0); + m_pant[0]->draw(screen, bitmap, cliprect, TILEMAP_DRAW_LAYER0 | 1,0); - m_pant[1]->draw(bitmap, cliprect, TILEMAP_DRAW_LAYER1 | 0,0); - m_pant[0]->draw(bitmap, cliprect, TILEMAP_DRAW_LAYER1 | 0,0); + m_pant[1]->draw(screen, bitmap, cliprect, TILEMAP_DRAW_LAYER1 | 0,0); + m_pant[0]->draw(screen, bitmap, cliprect, TILEMAP_DRAW_LAYER1 | 0,0); draw_sprites(bitmap,cliprect,0); - m_pant[1]->draw(bitmap, cliprect, TILEMAP_DRAW_LAYER0 | 0,0); - m_pant[0]->draw(bitmap, cliprect, TILEMAP_DRAW_LAYER0 | 0,0); + m_pant[1]->draw(screen, bitmap, cliprect, TILEMAP_DRAW_LAYER0 | 0,0); + m_pant[0]->draw(screen, bitmap, cliprect, TILEMAP_DRAW_LAYER0 | 0,0); draw_sprites(bitmap,cliprect,4); return 0; diff --git a/src/mame/video/thunderj.c b/src/mame/video/thunderj.c index 641fd2eefa5..30afc4b42d1 100644 --- a/src/mame/video/thunderj.c +++ b/src/mame/video/thunderj.c @@ -107,16 +107,16 @@ UINT32 thunderj_state::screen_update_thunderj(screen_device &screen, bitmap_ind1 m_vad->mob()->draw_async(cliprect); /* draw the playfield */ - bitmap_ind8 &priority_bitmap = machine().priority_bitmap; + bitmap_ind8 &priority_bitmap = screen.priority(); priority_bitmap.fill(0, cliprect); - m_vad->playfield()->draw(bitmap, cliprect, 0, 0x00); - m_vad->playfield()->draw(bitmap, cliprect, 1, 0x01); - m_vad->playfield()->draw(bitmap, cliprect, 2, 0x02); - m_vad->playfield()->draw(bitmap, cliprect, 3, 0x03); - m_vad->playfield2()->draw(bitmap, cliprect, 0, 0x80); - m_vad->playfield2()->draw(bitmap, cliprect, 1, 0x84); - m_vad->playfield2()->draw(bitmap, cliprect, 2, 0x88); - m_vad->playfield2()->draw(bitmap, cliprect, 3, 0x8c); + m_vad->playfield()->draw(screen, bitmap, cliprect, 0, 0x00); + m_vad->playfield()->draw(screen, bitmap, cliprect, 1, 0x01); + m_vad->playfield()->draw(screen, bitmap, cliprect, 2, 0x02); + m_vad->playfield()->draw(screen, bitmap, cliprect, 3, 0x03); + m_vad->playfield2()->draw(screen, bitmap, cliprect, 0, 0x80); + m_vad->playfield2()->draw(screen, bitmap, cliprect, 1, 0x84); + m_vad->playfield2()->draw(screen, bitmap, cliprect, 2, 0x88); + m_vad->playfield2()->draw(screen, bitmap, cliprect, 3, 0x8c); // draw and merge the MO bitmap_ind16 &mobitmap = m_vad->mob()->bitmap(); @@ -215,7 +215,7 @@ UINT32 thunderj_state::screen_update_thunderj(screen_device &screen, bitmap_ind1 } /* add the alpha on top */ - m_vad->alpha()->draw(bitmap, cliprect, 0, 0); + m_vad->alpha()->draw(screen, bitmap, cliprect, 0, 0); /* now go back and process the upper bit of MO priority */ for (const sparse_dirty_rect *rect = m_vad->mob()->first_dirty_rect(cliprect); rect != NULL; rect = rect->next()) diff --git a/src/mame/video/thunderx.c b/src/mame/video/thunderx.c index cd3da62b4b8..4e5fb94d543 100644 --- a/src/mame/video/thunderx.c +++ b/src/mame/video/thunderx.c @@ -69,22 +69,22 @@ UINT32 thunderx_state::screen_update_scontra(screen_device &screen, bitmap_ind16 { m_k052109->tilemap_update(); - machine().priority_bitmap.fill(0, cliprect); + screen.priority().fill(0, cliprect); /* The background color is always from layer 1 - but it's always black anyway */ // bitmap.fill(16 * m_layer_colorbase[1], cliprect); if (m_priority) { - m_k052109->tilemap_draw(bitmap, cliprect, 2, TILEMAP_DRAW_OPAQUE, 1); - m_k052109->tilemap_draw(bitmap, cliprect, 1, 0, 2); + m_k052109->tilemap_draw(screen, bitmap, cliprect, 2, TILEMAP_DRAW_OPAQUE, 1); + m_k052109->tilemap_draw(screen, bitmap, cliprect, 1, 0, 2); } else { - m_k052109->tilemap_draw(bitmap, cliprect, 1, TILEMAP_DRAW_OPAQUE, 1); - m_k052109->tilemap_draw(bitmap, cliprect, 2, 0, 2); + m_k052109->tilemap_draw(screen, bitmap, cliprect, 1, TILEMAP_DRAW_OPAQUE, 1); + m_k052109->tilemap_draw(screen, bitmap, cliprect, 2, 0, 2); } - m_k052109->tilemap_draw(bitmap, cliprect, 0, 0, 4); + m_k052109->tilemap_draw(screen, bitmap, cliprect, 0, 0, 4); - m_k051960->k051960_sprites_draw(bitmap, cliprect, -1, -1); + m_k051960->k051960_sprites_draw(bitmap, cliprect, screen.priority(), -1, -1); return 0; } diff --git a/src/mame/video/tiamc1.c b/src/mame/video/tiamc1.c index 3979d7ce7f8..d6e8c92aad6 100644 --- a/src/mame/video/tiamc1.c +++ b/src/mame/video/tiamc1.c @@ -194,9 +194,9 @@ UINT32 tiamc1_state::screen_update_tiamc1(screen_device &screen, bitmap_ind16 &b #endif if (m_layers_ctrl & 0x80) - m_bg_tilemap2->draw(bitmap, cliprect, 0, 0); + m_bg_tilemap2->draw(screen, bitmap, cliprect, 0, 0); else - m_bg_tilemap1->draw(bitmap, cliprect, 0, 0); + m_bg_tilemap1->draw(screen, bitmap, cliprect, 0, 0); draw_sprites(bitmap, cliprect); diff --git a/src/mame/video/tigeroad.c b/src/mame/video/tigeroad.c index 4ec642bf726..2248a878630 100644 --- a/src/mame/video/tigeroad.c +++ b/src/mame/video/tigeroad.c @@ -156,10 +156,10 @@ void tigeroad_state::video_start() UINT32 tigeroad_state::screen_update_tigeroad(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect) { - m_bg_tilemap->draw(bitmap, cliprect, TILEMAP_DRAW_LAYER1, 0); + m_bg_tilemap->draw(screen, bitmap, cliprect, TILEMAP_DRAW_LAYER1, 0); draw_sprites(bitmap, cliprect, 0); - m_bg_tilemap->draw(bitmap, cliprect, TILEMAP_DRAW_LAYER0, 1); + m_bg_tilemap->draw(screen, bitmap, cliprect, TILEMAP_DRAW_LAYER0, 1); //draw_sprites(bitmap, cliprect, 1); draw priority sprites? - m_fg_tilemap->draw(bitmap, cliprect, 0, 2); + m_fg_tilemap->draw(screen, bitmap, cliprect, 0, 2); return 0; } diff --git a/src/mame/video/timelimt.c b/src/mame/video/timelimt.c index 72d0f05d273..d4230a2d15c 100644 --- a/src/mame/video/timelimt.c +++ b/src/mame/video/timelimt.c @@ -139,10 +139,10 @@ UINT32 timelimt_state::screen_update_timelimt(screen_device &screen, bitmap_ind1 { m_bg_tilemap->set_scrollx(0, m_scrollx); m_bg_tilemap->set_scrolly(0, m_scrolly); - m_bg_tilemap->draw(bitmap, cliprect, 0, 0); + m_bg_tilemap->draw(screen, bitmap, cliprect, 0, 0); draw_sprites(bitmap, cliprect); - m_fg_tilemap->draw(bitmap, cliprect, 0, 0); + m_fg_tilemap->draw(screen, bitmap, cliprect, 0, 0); return 0; } diff --git a/src/mame/video/timeplt.c b/src/mame/video/timeplt.c index 1d26d022a75..439356f7271 100644 --- a/src/mame/video/timeplt.c +++ b/src/mame/video/timeplt.c @@ -205,8 +205,8 @@ void timeplt_state::draw_sprites( bitmap_ind16 &bitmap, const rectangle &cliprec UINT32 timeplt_state::screen_update_timeplt(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect) { - m_bg_tilemap->draw(bitmap, cliprect, 0, 0); + m_bg_tilemap->draw(screen, bitmap, cliprect, 0, 0); draw_sprites(bitmap, cliprect); - m_bg_tilemap->draw(bitmap, cliprect, 1, 0); + m_bg_tilemap->draw(screen, bitmap, cliprect, 1, 0); return 0; } diff --git a/src/mame/video/tmnt.c b/src/mame/video/tmnt.c index 3e6620032d1..68765c59281 100644 --- a/src/mame/video/tmnt.c +++ b/src/mame/video/tmnt.c @@ -546,11 +546,11 @@ UINT32 tmnt_state::screen_update_mia(screen_device &screen, bitmap_ind16 &bitmap { m_k052109->tilemap_update(); - m_k052109->tilemap_draw(bitmap, cliprect, 2, TILEMAP_DRAW_OPAQUE,0); - if ((m_tmnt_priorityflag & 1) == 1) m_k051960->k051960_sprites_draw(bitmap, cliprect, 0, 0); - m_k052109->tilemap_draw(bitmap, cliprect, 1, 0, 0); - if ((m_tmnt_priorityflag & 1) == 0) m_k051960->k051960_sprites_draw(bitmap, cliprect, 0, 0); - m_k052109->tilemap_draw(bitmap, cliprect, 0, 0, 0); + m_k052109->tilemap_draw(screen, bitmap, cliprect, 2, TILEMAP_DRAW_OPAQUE,0); + if ((m_tmnt_priorityflag & 1) == 1) m_k051960->k051960_sprites_draw(bitmap, cliprect, screen.priority(), 0, 0); + m_k052109->tilemap_draw(screen, bitmap, cliprect, 1, 0, 0); + if ((m_tmnt_priorityflag & 1) == 0) m_k051960->k051960_sprites_draw(bitmap, cliprect, screen.priority(), 0, 0); + m_k052109->tilemap_draw(screen, bitmap, cliprect, 0, 0, 0); return 0; } @@ -559,11 +559,11 @@ UINT32 tmnt_state::screen_update_tmnt(screen_device &screen, bitmap_ind16 &bitma { m_k052109->tilemap_update(); - m_k052109->tilemap_draw(bitmap, cliprect, 2, TILEMAP_DRAW_OPAQUE,0); - if ((m_tmnt_priorityflag & 1) == 1) m_k051960->k051960_sprites_draw(bitmap, cliprect, 0, 0); - m_k052109->tilemap_draw(bitmap, cliprect, 1, 0, 0); - if ((m_tmnt_priorityflag & 1) == 0) m_k051960->k051960_sprites_draw(bitmap, cliprect, 0, 0); - m_k052109->tilemap_draw(bitmap, cliprect, 0, 0, 0); + m_k052109->tilemap_draw(screen, bitmap, cliprect, 2, TILEMAP_DRAW_OPAQUE,0); + if ((m_tmnt_priorityflag & 1) == 1) m_k051960->k051960_sprites_draw(bitmap, cliprect, screen.priority(), 0, 0); + m_k052109->tilemap_draw(screen, bitmap, cliprect, 1, 0, 0); + if ((m_tmnt_priorityflag & 1) == 0) m_k051960->k051960_sprites_draw(bitmap, cliprect, screen.priority(), 0, 0); + m_k052109->tilemap_draw(screen, bitmap, cliprect, 0, 0, 0); return 0; } @@ -587,12 +587,12 @@ UINT32 tmnt_state::screen_update_punkshot(screen_device &screen, bitmap_ind16 &b konami_sortlayers3(m_sorted_layer, m_layerpri); - machine().priority_bitmap.fill(0, cliprect); - m_k052109->tilemap_draw(bitmap, cliprect, m_sorted_layer[0], TILEMAP_DRAW_OPAQUE, 1); - m_k052109->tilemap_draw(bitmap, cliprect, m_sorted_layer[1], 0, 2); - m_k052109->tilemap_draw(bitmap, cliprect, m_sorted_layer[2], 0, 4); + screen.priority().fill(0, cliprect); + m_k052109->tilemap_draw(screen, bitmap, cliprect, m_sorted_layer[0], TILEMAP_DRAW_OPAQUE, 1); + m_k052109->tilemap_draw(screen, bitmap, cliprect, m_sorted_layer[1], 0, 2); + m_k052109->tilemap_draw(screen, bitmap, cliprect, m_sorted_layer[2], 0, 4); - m_k051960->k051960_sprites_draw(bitmap, cliprect, -1, -1); + m_k051960->k051960_sprites_draw(bitmap, cliprect, screen.priority(), -1, -1); return 0; } @@ -618,13 +618,13 @@ UINT32 tmnt_state::screen_update_lgtnfght(screen_device &screen, bitmap_ind16 &b konami_sortlayers3(m_sorted_layer, m_layerpri); - machine().priority_bitmap.fill(0, cliprect); + screen.priority().fill(0, cliprect); bitmap.fill(16 * bg_colorbase, cliprect); - m_k052109->tilemap_draw(bitmap, cliprect, m_sorted_layer[0], 0, 1); - m_k052109->tilemap_draw(bitmap, cliprect, m_sorted_layer[1], 0, 2); - m_k052109->tilemap_draw(bitmap, cliprect, m_sorted_layer[2], 0, 4); + m_k052109->tilemap_draw(screen, bitmap, cliprect, m_sorted_layer[0], 0, 1); + m_k052109->tilemap_draw(screen, bitmap, cliprect, m_sorted_layer[1], 0, 2); + m_k052109->tilemap_draw(screen, bitmap, cliprect, m_sorted_layer[2], 0, 4); - m_k053245->k053245_sprites_draw(bitmap, cliprect); + m_k053245->k053245_sprites_draw(bitmap, cliprect, screen.priority()); return 0; } @@ -664,33 +664,33 @@ UINT32 tmnt_state::screen_update_glfgreat(screen_device &screen, bitmap_ind16 &b /* not sure about the 053936 priority, but it seems to work */ - machine().priority_bitmap.fill(0, cliprect); + screen.priority().fill(0, cliprect); bitmap.fill(16 * bg_colorbase, cliprect); - m_k052109->tilemap_draw(bitmap, cliprect, m_sorted_layer[0], 0, 1); + m_k052109->tilemap_draw(screen, bitmap, cliprect, m_sorted_layer[0], 0, 1); if (m_layerpri[0] >= 0x30 && m_layerpri[1] < 0x30) { - m_k053936->zoom_draw(bitmap, cliprect, m_roz_tilemap, 0, 1, 1); + m_k053936->zoom_draw(screen, bitmap, cliprect, m_roz_tilemap, 0, 1, 1); m_glfgreat_pixel = bitmap.pix16(0x80, 0x105); } - m_k052109->tilemap_draw(bitmap, cliprect, m_sorted_layer[1], 0, 2); + m_k052109->tilemap_draw(screen, bitmap, cliprect, m_sorted_layer[1], 0, 2); if (m_layerpri[1] >= 0x30 && m_layerpri[2] < 0x30) { - m_k053936->zoom_draw(bitmap, cliprect, m_roz_tilemap, 0, 1, 1); + m_k053936->zoom_draw(screen, bitmap, cliprect, m_roz_tilemap, 0, 1, 1); m_glfgreat_pixel = bitmap.pix16(0x80, 0x105); } - m_k052109->tilemap_draw(bitmap, cliprect, m_sorted_layer[2], 0, 4); + m_k052109->tilemap_draw(screen, bitmap, cliprect, m_sorted_layer[2], 0, 4); if (m_layerpri[2] >= 0x30) { - m_k053936->zoom_draw(bitmap, cliprect, m_roz_tilemap, 0, 1, 1); + m_k053936->zoom_draw(screen, bitmap, cliprect, m_roz_tilemap, 0, 1, 1); m_glfgreat_pixel = bitmap.pix16(0x80, 0x105); } - m_k053245->k053245_sprites_draw(bitmap, cliprect); + m_k053245->k053245_sprites_draw(bitmap, cliprect, screen.priority()); return 0; } @@ -767,13 +767,13 @@ UINT32 tmnt_state::screen_update_thndrx2(screen_device &screen, bitmap_ind16 &bi konami_sortlayers3(m_sorted_layer, m_layerpri); - machine().priority_bitmap.fill(0, cliprect); + screen.priority().fill(0, cliprect); bitmap.fill(16 * bg_colorbase, cliprect); - m_k052109->tilemap_draw(bitmap, cliprect, m_sorted_layer[0], 0, 1); - m_k052109->tilemap_draw(bitmap, cliprect, m_sorted_layer[1], 0, 2); - m_k052109->tilemap_draw(bitmap, cliprect, m_sorted_layer[2], 0, 4); + m_k052109->tilemap_draw(screen, bitmap, cliprect, m_sorted_layer[0], 0, 1); + m_k052109->tilemap_draw(screen, bitmap, cliprect, m_sorted_layer[1], 0, 2); + m_k052109->tilemap_draw(screen, bitmap, cliprect, m_sorted_layer[2], 0, 4); - m_k051960->k051960_sprites_draw(bitmap, cliprect, -1, -1); + m_k051960->k051960_sprites_draw(bitmap, cliprect, screen.priority(), -1, -1); return 0; } diff --git a/src/mame/video/toaplan1.c b/src/mame/video/toaplan1.c index b9a22a0a2f3..270b9af648f 100644 --- a/src/mame/video/toaplan1.c +++ b/src/mame/video/toaplan1.c @@ -896,13 +896,13 @@ void toaplan1_state::toaplan1_log_vram() ***************************************************************************/ // custom function to draw a single sprite. needed to keep correct sprites - sprites and sprites - tilemaps priorities -static void toaplan1_draw_sprite_custom(bitmap_ind16 &dest_bmp,const rectangle &clip,gfx_element *gfx, +static void toaplan1_draw_sprite_custom(screen_device &screen, bitmap_ind16 &dest_bmp,const rectangle &clip,gfx_element *gfx, UINT32 code,UINT32 color,int flipx,int flipy,int sx,int sy, int priority) { int pal_base = gfx->colorbase() + gfx->granularity() * (color % gfx->colors()); const UINT8 *source_base = gfx->get_data(code % gfx->elements()); - bitmap_ind8 &priority_bitmap = gfx->machine().priority_bitmap; + bitmap_ind8 &priority_bitmap = screen.priority(); int sprite_screen_height = ((1<<16)*gfx->height()+0x8000)>>16; int sprite_screen_width = ((1<<16)*gfx->width()+0x8000)>>16; @@ -992,7 +992,7 @@ static void toaplan1_draw_sprite_custom(bitmap_ind16 &dest_bmp,const rectangle & } -void toaplan1_state::draw_sprites(bitmap_ind16 &bitmap, const rectangle &cliprect ) +void toaplan1_state::draw_sprites(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect ) { UINT16 *source = (UINT16 *)m_buffered_spriteram; UINT16 *size = (UINT16 *)m_buffered_spritesizeram16; @@ -1045,7 +1045,7 @@ void toaplan1_state::draw_sprites(bitmap_ind16 &bitmap, const rectangle &cliprec if (fcu_flipscreen) sx = sx_base - dim_x; else sx = sx_base + dim_x; - toaplan1_draw_sprite_custom(bitmap,cliprect,machine().gfx[1], + toaplan1_draw_sprite_custom(screen,bitmap,cliprect,machine().gfx[1], sprite,color, fcu_flipscreen,fcu_flipscreen, sx,sy, @@ -1075,15 +1075,15 @@ UINT32 toaplan1_rallybik_state::screen_update_rallybik(screen_device &screen, bi m_spritegen->draw_sprites_to_tempbitmap(cliprect, m_buffered_spriteram, m_spriteram.bytes()); - m_pf1_tilemap->draw(bitmap, cliprect, TILEMAP_DRAW_OPAQUE | 0, 0); - m_pf1_tilemap->draw(bitmap, cliprect, TILEMAP_DRAW_OPAQUE | 1, 0); + m_pf1_tilemap->draw(screen, bitmap, cliprect, TILEMAP_DRAW_OPAQUE | 0, 0); + m_pf1_tilemap->draw(screen, bitmap, cliprect, TILEMAP_DRAW_OPAQUE | 1, 0); for (priority = 1; priority < 16; priority++) { - m_pf4_tilemap->draw(bitmap, cliprect, priority, 0); - m_pf3_tilemap->draw(bitmap, cliprect, priority, 0); - m_pf2_tilemap->draw(bitmap, cliprect, priority, 0); - m_pf1_tilemap->draw(bitmap, cliprect, priority, 0); + m_pf4_tilemap->draw(screen, bitmap, cliprect, priority, 0); + m_pf3_tilemap->draw(screen, bitmap, cliprect, priority, 0); + m_pf2_tilemap->draw(screen, bitmap, cliprect, priority, 0); + m_pf1_tilemap->draw(screen, bitmap, cliprect, priority, 0); //if (pririoty==0x00) m_spritegen->copy_sprites_from_tempbitmap(bitmap,cliprect,0); if (priority==0x04) m_spritegen->copy_sprites_from_tempbitmap(bitmap,cliprect,1); @@ -1101,22 +1101,22 @@ UINT32 toaplan1_state::screen_update_toaplan1(screen_device &screen, bitmap_ind1 toaplan1_log_vram(); - machine().priority_bitmap.fill(0, cliprect); + screen.priority().fill(0, cliprect); bitmap.fill(0x120, cliprect); // it's really correct? - m_pf1_tilemap->draw(bitmap, cliprect, TILEMAP_DRAW_OPAQUE | 0, 0); - m_pf1_tilemap->draw(bitmap, cliprect, TILEMAP_DRAW_OPAQUE | 1, 0); + m_pf1_tilemap->draw(screen, bitmap, cliprect, TILEMAP_DRAW_OPAQUE | 0, 0); + m_pf1_tilemap->draw(screen, bitmap, cliprect, TILEMAP_DRAW_OPAQUE | 1, 0); for (priority = 1; priority < 16; priority++) { - m_pf4_tilemap->draw(bitmap, cliprect, priority, priority, 0); - m_pf3_tilemap->draw(bitmap, cliprect, priority, priority, 0); - m_pf2_tilemap->draw(bitmap, cliprect, priority, priority, 0); - m_pf1_tilemap->draw(bitmap, cliprect, priority, priority, 0); + m_pf4_tilemap->draw(screen, bitmap, cliprect, priority, priority, 0); + m_pf3_tilemap->draw(screen, bitmap, cliprect, priority, priority, 0); + m_pf2_tilemap->draw(screen, bitmap, cliprect, priority, priority, 0); + m_pf1_tilemap->draw(screen, bitmap, cliprect, priority, priority, 0); } - draw_sprites(bitmap, cliprect); + draw_sprites(screen, bitmap, cliprect); return 0; } diff --git a/src/mame/video/toaplan2.c b/src/mame/video/toaplan2.c index 815a92321b9..756320db85c 100644 --- a/src/mame/video/toaplan2.c +++ b/src/mame/video/toaplan2.c @@ -409,7 +409,7 @@ UINT32 toaplan2_state::screen_update_toaplan2(screen_device &screen, bitmap_ind1 UINT32 toaplan2_state::screen_update_truxton2(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect) { screen_update_toaplan2(screen, bitmap, cliprect); - m_tx_tilemap->draw(bitmap, cliprect, 0, 0); + m_tx_tilemap->draw(screen, bitmap, cliprect, 0, 0); return 0; } @@ -437,7 +437,7 @@ UINT32 toaplan2_state::screen_update_batrider(screen_device &screen, bitmap_ind1 clip.min_y = clip.max_y = line; m_tx_tilemap->set_scrolly(0, - line + m_txvideoram16_offs[ line]); } - m_tx_tilemap->draw(bitmap, clip, 0, 0); + m_tx_tilemap->draw(screen, bitmap, clip, 0, 0); } return 0; } diff --git a/src/mame/video/toki.c b/src/mame/video/toki.c index 79c054ce22a..d9bc86fd39e 100644 --- a/src/mame/video/toki.c +++ b/src/mame/video/toki.c @@ -271,14 +271,14 @@ UINT32 toki_state::screen_update_toki(screen_device &screen, bitmap_ind16 &bitma flip_screen_set((m_scrollram16[0x28]&0x8000)==0); if (m_scrollram16[0x28]&0x100) { - m_background_layer->draw(bitmap, cliprect, TILEMAP_DRAW_OPAQUE,0); - m_foreground_layer->draw(bitmap, cliprect, 0,0); + m_background_layer->draw(screen, bitmap, cliprect, TILEMAP_DRAW_OPAQUE,0); + m_foreground_layer->draw(screen, bitmap, cliprect, 0,0); } else { - m_foreground_layer->draw(bitmap, cliprect, TILEMAP_DRAW_OPAQUE,0); - m_background_layer->draw(bitmap, cliprect, 0,0); + m_foreground_layer->draw(screen, bitmap, cliprect, TILEMAP_DRAW_OPAQUE,0); + m_background_layer->draw(screen, bitmap, cliprect, 0,0); } toki_draw_sprites(bitmap,cliprect); - m_text_layer->draw(bitmap, cliprect, 0,0); + m_text_layer->draw(screen, bitmap, cliprect, 0,0); return 0; } @@ -292,14 +292,14 @@ UINT32 toki_state::screen_update_tokib(screen_device &screen, bitmap_ind16 &bitm m_foreground_layer->set_scrollx(0, m_scrollram16[3]-0x101 ); if (m_scrollram16[3]&0x2000) { - m_background_layer->draw(bitmap, cliprect, TILEMAP_DRAW_OPAQUE,0); - m_foreground_layer->draw(bitmap, cliprect, 0,0); + m_background_layer->draw(screen, bitmap, cliprect, TILEMAP_DRAW_OPAQUE,0); + m_foreground_layer->draw(screen, bitmap, cliprect, 0,0); } else { - m_foreground_layer->draw(bitmap, cliprect, TILEMAP_DRAW_OPAQUE,0); - m_background_layer->draw(bitmap, cliprect, 0,0); + m_foreground_layer->draw(screen, bitmap, cliprect, TILEMAP_DRAW_OPAQUE,0); + m_background_layer->draw(screen, bitmap, cliprect, 0,0); } tokib_draw_sprites(bitmap,cliprect); - m_text_layer->draw(bitmap, cliprect, 0,0); + m_text_layer->draw(screen, bitmap, cliprect, 0,0); return 0; } diff --git a/src/mame/video/toobin.c b/src/mame/video/toobin.c index aa629ebac9c..9b2fe5a6eff 100644 --- a/src/mame/video/toobin.c +++ b/src/mame/video/toobin.c @@ -213,12 +213,12 @@ UINT32 toobin_state::screen_update_toobin(screen_device &screen, bitmap_rgb32 &b m_mob->draw_async(cliprect); /* draw the playfield */ - bitmap_ind8 &priority_bitmap = machine().priority_bitmap; + bitmap_ind8 &priority_bitmap = screen.priority(); priority_bitmap.fill(0, cliprect); - m_playfield_tilemap->draw(m_pfbitmap, cliprect, 0, 0); - m_playfield_tilemap->draw(m_pfbitmap, cliprect, 1, 1); - m_playfield_tilemap->draw(m_pfbitmap, cliprect, 2, 2); - m_playfield_tilemap->draw(m_pfbitmap, cliprect, 3, 3); + m_playfield_tilemap->draw(screen, m_pfbitmap, cliprect, 0, 0); + m_playfield_tilemap->draw(screen, m_pfbitmap, cliprect, 1, 1); + m_playfield_tilemap->draw(screen, m_pfbitmap, cliprect, 2, 2); + m_playfield_tilemap->draw(screen, m_pfbitmap, cliprect, 3, 3); /* draw and merge the MO */ bitmap_ind16 &mobitmap = m_mob->bitmap(); @@ -249,6 +249,6 @@ UINT32 toobin_state::screen_update_toobin(screen_device &screen, bitmap_rgb32 &b } /* add the alpha on top */ - m_alpha_tilemap->draw(bitmap, cliprect, 0, 0); + m_alpha_tilemap->draw(screen, bitmap, cliprect, 0, 0); return 0; } diff --git a/src/mame/video/topspeed.c b/src/mame/video/topspeed.c index 32be31b5a9d..2a240508300 100644 --- a/src/mame/video/topspeed.c +++ b/src/mame/video/topspeed.c @@ -25,7 +25,7 @@ ********************************************************************************/ -void topspeed_state::draw_sprites( bitmap_ind16 &bitmap, const rectangle &cliprect ) +void topspeed_state::draw_sprites( screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect ) { UINT16 *spriteram = m_spriteram; int offs, map_offset, x, y, curx, cury, sprite_chunk; @@ -96,7 +96,7 @@ void topspeed_state::draw_sprites( bitmap_ind16 &bitmap, const rectangle &clipre flipx,flipy, curx,cury, zx<<12,zy<<13, - machine().priority_bitmap,primasks[priority],0); + screen.priority(),primasks[priority],0); } if (bad_chunks) @@ -152,33 +152,33 @@ UINT32 topspeed_state::screen_update_topspeed(screen_device &screen, bitmap_ind1 layer[2] = 1; layer[3] = 0; - machine().priority_bitmap.fill(0, cliprect); + screen.priority().fill(0, cliprect); bitmap.fill(0, cliprect); #ifdef MAME_DEBUG if (m_dislayer[3] == 0) #endif - m_pc080sn_2->tilemap_draw(bitmap, cliprect, layer[0], TILEMAP_DRAW_OPAQUE, 1); + m_pc080sn_2->tilemap_draw(screen, bitmap, cliprect, layer[0], TILEMAP_DRAW_OPAQUE, 1); #ifdef MAME_DEBUG if (m_dislayer[2] == 0) #endif - m_pc080sn_2->tilemap_draw_special(bitmap, cliprect, layer[1], 0, 2, m_raster_ctrl); + m_pc080sn_2->tilemap_draw_special(screen, bitmap, cliprect, layer[1], 0, 2, m_raster_ctrl); #ifdef MAME_DEBUG if (m_dislayer[1] == 0) #endif - m_pc080sn_1->tilemap_draw_special(bitmap, cliprect, layer[2], 0, 4, m_raster_ctrl + 0x100); + m_pc080sn_1->tilemap_draw_special(screen, bitmap, cliprect, layer[2], 0, 4, m_raster_ctrl + 0x100); #ifdef MAME_DEBUG if (m_dislayer[0] == 0) #endif - m_pc080sn_1->tilemap_draw(bitmap, cliprect, layer[3], 0, 8); + m_pc080sn_1->tilemap_draw(screen, bitmap, cliprect, layer[3], 0, 8); #ifdef MAME_DEBUG if (m_dislayer[4] == 0) #endif - draw_sprites(bitmap,cliprect); + draw_sprites(screen,bitmap,cliprect); return 0; } diff --git a/src/mame/video/toypop.c b/src/mame/video/toypop.c index cd986c62b8f..3393f35a4df 100644 --- a/src/mame/video/toypop.c +++ b/src/mame/video/toypop.c @@ -270,7 +270,7 @@ void toypop_state::draw_sprites(bitmap_ind16 &bitmap, const rectangle &cliprect, UINT32 toypop_state::screen_update_toypop(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect) { draw_background(bitmap); - m_bg_tilemap->draw(bitmap, cliprect, 0,0); + m_bg_tilemap->draw(screen, bitmap, cliprect, 0,0); draw_sprites(bitmap, cliprect, m_spriteram); return 0; } diff --git a/src/mame/video/tp84.c b/src/mame/video/tp84.c index f3f16b47078..c41a0a29b6e 100644 --- a/src/mame/video/tp84.c +++ b/src/mame/video/tp84.c @@ -187,18 +187,18 @@ UINT32 tp84_state::screen_update_tp84(screen_device &screen, bitmap_ind16 &bitma ((*m_flipscreen_y & 0x01) ? TILEMAP_FLIPY : 0)); } - m_bg_tilemap->draw(bitmap, cliprect, 0, 0); + m_bg_tilemap->draw(screen, bitmap, cliprect, 0, 0); draw_sprites(bitmap, cliprect); /* draw top status region */ clip.min_x = visarea.min_x; clip.max_x = visarea.min_x + 15; - m_fg_tilemap->draw(bitmap, clip, 0, 0); + m_fg_tilemap->draw(screen, bitmap, clip, 0, 0); /* draw bottom status region */ clip.min_x = visarea.max_x - 15; clip.max_x = visarea.max_x; - m_fg_tilemap->draw(bitmap, clip, 0, 0); + m_fg_tilemap->draw(screen, bitmap, clip, 0, 0); return 0; } diff --git a/src/mame/video/trackfld.c b/src/mame/video/trackfld.c index a93430297d2..0dab7a4bbc9 100644 --- a/src/mame/video/trackfld.c +++ b/src/mame/video/trackfld.c @@ -253,7 +253,7 @@ UINT32 trackfld_state::screen_update_trackfld(screen_device &screen, bitmap_ind1 m_bg_tilemap->set_scrollx(row, scrollx); } - m_bg_tilemap->draw(bitmap, cliprect, 0, 0); + m_bg_tilemap->draw(screen, bitmap, cliprect, 0, 0); draw_sprites(bitmap, cliprect); return 0; } diff --git a/src/mame/video/travrusa.c b/src/mame/video/travrusa.c index 0e088660e23..51eebeaa3de 100644 --- a/src/mame/video/travrusa.c +++ b/src/mame/video/travrusa.c @@ -328,8 +328,8 @@ void travrusa_state::draw_sprites(bitmap_ind16 &bitmap,const rectangle &cliprect UINT32 travrusa_state::screen_update_travrusa(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect) { - m_bg_tilemap->draw(bitmap, cliprect, TILEMAP_DRAW_LAYER1, 0); + m_bg_tilemap->draw(screen, bitmap, cliprect, TILEMAP_DRAW_LAYER1, 0); draw_sprites(bitmap,cliprect); - m_bg_tilemap->draw(bitmap, cliprect, TILEMAP_DRAW_LAYER0, 0); + m_bg_tilemap->draw(screen, bitmap, cliprect, TILEMAP_DRAW_LAYER0, 0); return 0; } diff --git a/src/mame/video/triplhnt.c b/src/mame/video/triplhnt.c index cfb3f10a48d..d26fd3b53d0 100644 --- a/src/mame/video/triplhnt.c +++ b/src/mame/video/triplhnt.c @@ -113,7 +113,7 @@ UINT32 triplhnt_state::screen_update_triplhnt(screen_device &screen, bitmap_ind1 { m_bg_tilemap->mark_all_dirty(); - m_bg_tilemap->draw(bitmap, cliprect, 0, 0); + m_bg_tilemap->draw(screen, bitmap, cliprect, 0, 0); draw_sprites(bitmap, cliprect); diff --git a/src/mame/video/trucocl.c b/src/mame/video/trucocl.c index fcd1c1b4415..5927d58ea51 100644 --- a/src/mame/video/trucocl.c +++ b/src/mame/video/trucocl.c @@ -78,6 +78,6 @@ void trucocl_state::video_start() UINT32 trucocl_state::screen_update_trucocl(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect) { - m_bg_tilemap->draw(bitmap, cliprect, 0, 0); + m_bg_tilemap->draw(screen, bitmap, cliprect, 0, 0); return 0; } diff --git a/src/mame/video/tryout.c b/src/mame/video/tryout.c index e7fd912c3ff..2a3f7893ebe 100644 --- a/src/mame/video/tryout.c +++ b/src/mame/video/tryout.c @@ -250,8 +250,8 @@ UINT32 tryout_state::screen_update_tryout(screen_device &screen, bitmap_ind16 &b } else { - m_bg_tilemap->draw(bitmap, cliprect, 0,0); - m_fg_tilemap->draw(bitmap, cliprect, 0,0); + m_bg_tilemap->draw(screen, bitmap, cliprect, 0,0); + m_fg_tilemap->draw(screen, bitmap, cliprect, 0,0); draw_sprites(bitmap,cliprect); } diff --git a/src/mame/video/tsamurai.c b/src/mame/video/tsamurai.c index 2305d22faeb..0f33dd2e71d 100644 --- a/src/mame/video/tsamurai.c +++ b/src/mame/video/tsamurai.c @@ -206,9 +206,9 @@ UINT32 tsamurai_state::screen_update_tsamurai(screen_device &screen, bitmap_ind1 (screenshots would be helpful) */ bitmap.fill(m_bgcolor, cliprect); - m_background->draw(bitmap, cliprect, 0,0); + m_background->draw(screen, bitmap, cliprect, 0,0); draw_sprites(bitmap,cliprect); - m_foreground->draw(bitmap, cliprect, 0,0); + m_foreground->draw(screen, bitmap, cliprect, 0,0); return 0; } @@ -258,7 +258,7 @@ UINT32 tsamurai_state::screen_update_vsgongf(screen_device &screen, bitmap_ind16 } #endif - m_foreground->draw(bitmap, cliprect, 0,0); + m_foreground->draw(screen, bitmap, cliprect, 0,0); draw_sprites(bitmap,cliprect); return 0; } diff --git a/src/mame/video/tumbleb.c b/src/mame/video/tumbleb.c index b7b09b0939c..e6996955811 100644 --- a/src/mame/video/tumbleb.c +++ b/src/mame/video/tumbleb.c @@ -282,7 +282,7 @@ VIDEO_START_MEMBER(tumbleb_state,suprtrio) /******************************************************************************/ -void tumbleb_state::tumbleb_draw_common(bitmap_ind16 &bitmap, const rectangle &cliprect, int pf1x_offs, int pf1y_offs, int pf2x_offs, int pf2y_offs) +void tumbleb_state::tumbleb_draw_common(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect, int pf1x_offs, int pf1y_offs, int pf2x_offs, int pf2y_offs) { m_pf1_tilemap->set_scrollx(0, m_control_0[1] + pf1x_offs); m_pf1_tilemap->set_scrolly(0, m_control_0[2] + pf1y_offs); @@ -291,12 +291,12 @@ void tumbleb_state::tumbleb_draw_common(bitmap_ind16 &bitmap, const rectangle &c m_pf2_tilemap->set_scrollx(0, m_control_0[3] + pf2x_offs); m_pf2_tilemap->set_scrolly(0, m_control_0[4] + pf2y_offs); - m_pf2_tilemap->draw(bitmap, cliprect, 0, 0); + m_pf2_tilemap->draw(screen, bitmap, cliprect, 0, 0); if (m_control_0[6] & 0x80) - m_pf1_tilemap->draw(bitmap, cliprect, 0, 0); + m_pf1_tilemap->draw(screen, bitmap, cliprect, 0, 0); else - m_pf1_alt_tilemap->draw(bitmap, cliprect, 0, 0); + m_pf1_alt_tilemap->draw(screen, bitmap, cliprect, 0, 0); machine().device("spritegen")->draw_sprites(bitmap, cliprect, m_spriteram, m_spriteram.bytes()/2); } @@ -318,7 +318,7 @@ UINT32 tumbleb_state::screen_update_tumblepb(screen_device &screen, bitmap_ind16 else offs2 = -5; - tumbleb_draw_common(bitmap,cliprect, offs2, 0, offs, 0); + tumbleb_draw_common(screen, bitmap, cliprect, offs2, 0, offs, 0); return 0; } @@ -340,7 +340,7 @@ UINT32 tumbleb_state::screen_update_jumpkids(screen_device &screen, bitmap_ind16 else offs2 = -5; - tumbleb_draw_common(bitmap,cliprect, offs2, 0, offs, 0); + tumbleb_draw_common(screen, bitmap, cliprect, offs2, 0, offs, 0); return 0; } @@ -361,7 +361,7 @@ UINT32 tumbleb_state::screen_update_semicom(screen_device &screen, bitmap_ind16 else offs2 = -5; - tumbleb_draw_common(bitmap,cliprect, offs2, 0, offs, 0); + tumbleb_draw_common(screen, bitmap, cliprect, offs2, 0, offs, 0); return 0; } @@ -375,7 +375,7 @@ UINT32 tumbleb_state::screen_update_semicom_altoffsets(screen_device &screen, bi offsy = 2; offsx2 = -5; - tumbleb_draw_common(bitmap,cliprect, offsx2, 0, offsx, offsy); + tumbleb_draw_common(screen, bitmap, cliprect, offsx2, 0, offsx, offsy); return 0; } @@ -399,7 +399,7 @@ UINT32 tumbleb_state::screen_update_bcstory(screen_device &screen, bitmap_ind16 else offs2 = 8; - tumbleb_draw_common(bitmap,cliprect, offs2, 0, offs, 0); + tumbleb_draw_common(screen, bitmap, cliprect, offs2, 0, offs, 0); return 0; } @@ -412,7 +412,7 @@ UINT32 tumbleb_state::screen_update_semibase(screen_device &screen, bitmap_ind16 offs = -1; offs2 = -2; - tumbleb_draw_common(bitmap,cliprect, offs2, 0, offs, 0); + tumbleb_draw_common(screen, bitmap, cliprect, offs2, 0, offs, 0); return 0; } @@ -426,7 +426,7 @@ UINT32 tumbleb_state::screen_update_sdfight(screen_device &screen, bitmap_ind16 offs = -1; offs2 = -5; // foreground scroll.. - tumbleb_draw_common(bitmap,cliprect, offs2, -16, offs, 0); + tumbleb_draw_common(screen, bitmap, cliprect, offs2, -16, offs, 0); m_sprgen->draw_sprites(bitmap, cliprect, m_spriteram, m_spriteram.bytes()/2); return 0; @@ -449,7 +449,7 @@ UINT32 tumbleb_state::screen_update_fncywld(screen_device &screen, bitmap_ind16 else offs2 = -5; - tumbleb_draw_common(bitmap,cliprect, offs2, 0, offs, 0); + tumbleb_draw_common(screen, bitmap, cliprect, offs2, 0, offs, 0); return 0; } @@ -471,7 +471,7 @@ UINT32 tumbleb_state::screen_update_pangpang(screen_device &screen, bitmap_ind16 else offs2 = -5; - tumbleb_draw_common(bitmap,cliprect, offs2, 0, offs, 0); + tumbleb_draw_common(screen, bitmap, cliprect, offs2, 0, offs, 0); return 0; } @@ -484,8 +484,8 @@ UINT32 tumbleb_state::screen_update_suprtrio(screen_device &screen, bitmap_ind16 m_pf2_tilemap->set_scrollx(0, -m_control[3] - 2); m_pf2_tilemap->set_scrolly(0, -m_control[4]); - m_pf2_tilemap->draw(bitmap, cliprect, 0, 0); - m_pf1_alt_tilemap->draw(bitmap, cliprect, 0, 0); + m_pf2_tilemap->draw(screen, bitmap, cliprect, 0, 0); + m_pf1_alt_tilemap->draw(screen, bitmap, cliprect, 0, 0); m_sprgen->draw_sprites(bitmap, cliprect, m_spriteram, m_spriteram.bytes()/2); return 0; diff --git a/src/mame/video/tumblep.c b/src/mame/video/tumblep.c index 67327bb4b75..0fcfc806d0f 100644 --- a/src/mame/video/tumblep.c +++ b/src/mame/video/tumblep.c @@ -27,8 +27,8 @@ UINT32 tumblep_state::screen_update_tumblep(screen_device &screen, bitmap_ind16 bitmap.fill(256, cliprect); /* not verified */ - m_deco_tilegen1->tilemap_2_draw(bitmap, cliprect, TILEMAP_DRAW_OPAQUE, 0); - m_deco_tilegen1->tilemap_1_draw(bitmap, cliprect, 0, 0); + m_deco_tilegen1->tilemap_2_draw(screen, bitmap, cliprect, TILEMAP_DRAW_OPAQUE, 0); + m_deco_tilegen1->tilemap_1_draw(screen, bitmap, cliprect, 0, 0); m_sprgen->draw_sprites(bitmap, cliprect, m_spriteram, 0x400); return 0; diff --git a/src/mame/video/tunhunt.c b/src/mame/video/tunhunt.c index 37f36a16a62..8303b6e9fe1 100644 --- a/src/mame/video/tunhunt.c +++ b/src/mame/video/tunhunt.c @@ -393,6 +393,6 @@ UINT32 tunhunt_state::screen_update_tunhunt(screen_device &screen, bitmap_ind16 m_workram[SHL1ST], /* vstretch */ m_control&0x10 ); /* hstretch */ - m_fg_tilemap->draw(bitmap, cliprect, 0, 0); + m_fg_tilemap->draw(screen, bitmap, cliprect, 0, 0); return 0; } diff --git a/src/mame/video/twin16.c b/src/mame/video/twin16.c index 86dbba6c0b7..8a57bd2a716 100644 --- a/src/mame/video/twin16.c +++ b/src/mame/video/twin16.c @@ -214,7 +214,7 @@ void twin16_state::twin16_spriteram_process( ) m_need_process_spriteram = 0; } -void twin16_state::draw_sprites( bitmap_ind16 &bitmap ) +void twin16_state::draw_sprites( screen_device &screen, bitmap_ind16 &bitmap ) { const UINT16 *source = 0x1800+m_spriteram->buffer() + 0x800 - 4; const UINT16 *finish = 0x1800+m_spriteram->buffer(); @@ -296,7 +296,7 @@ void twin16_state::draw_sprites( bitmap_ind16 &bitmap ) if( sy>=16 && sy<256-16 ) { UINT16 *dest = &bitmap.pix16(sy); - UINT8 *pdest = &machine().priority_bitmap.pix8(sy); + UINT8 *pdest = &screen.priority().pix8(sy); for( x=0; xset_flip(text_flip); - m_text_tilemap->draw(bitmap, cliprect, 0, 0); + m_text_tilemap->draw(screen, bitmap, cliprect, 0, 0); return 0; } diff --git a/src/mame/video/twincobr.c b/src/mame/video/twincobr.c index ac527391d9d..6112957fdca 100644 --- a/src/mame/video/twincobr.c +++ b/src/mame/video/twincobr.c @@ -408,11 +408,11 @@ UINT32 twincobr_state::screen_update_toaplan0(screen_device &screen, bitmap_ind1 if (m_display_on) m_spritegen->draw_sprites_to_tempbitmap(cliprect, buffered_spriteram16, bytes); - m_bg_tilemap->draw(bitmap, cliprect, TILEMAP_DRAW_OPAQUE,0); + m_bg_tilemap->draw(screen, bitmap, cliprect, TILEMAP_DRAW_OPAQUE,0); if (m_display_on) m_spritegen->copy_sprites_from_tempbitmap(bitmap,cliprect,1); - m_fg_tilemap->draw(bitmap, cliprect, 0,0); + m_fg_tilemap->draw(screen, bitmap, cliprect, 0,0); if (m_display_on) m_spritegen->copy_sprites_from_tempbitmap(bitmap,cliprect,2); - m_tx_tilemap->draw(bitmap, cliprect, 0,0); + m_tx_tilemap->draw(screen, bitmap, cliprect, 0,0); if (m_display_on) m_spritegen->copy_sprites_from_tempbitmap(bitmap,cliprect,3); return 0; } diff --git a/src/mame/video/ultraman.c b/src/mame/video/ultraman.c index 79f515c9b5a..6c12fef94e6 100644 --- a/src/mame/video/ultraman.c +++ b/src/mame/video/ultraman.c @@ -120,10 +120,10 @@ WRITE16_MEMBER(ultraman_state::ultraman_gfxctrl_w) UINT32 ultraman_state::screen_update_ultraman(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect) { - m_k051316_3->zoom_draw(bitmap, cliprect, 0, 0); - m_k051316_2->zoom_draw(bitmap, cliprect, 0, 0); - m_k051960->k051960_sprites_draw(bitmap, cliprect, 0, 0); - m_k051316_1->zoom_draw(bitmap, cliprect, 0, 0); - m_k051960->k051960_sprites_draw(bitmap, cliprect, 1, 1); + m_k051316_3->zoom_draw(screen, bitmap, cliprect, 0, 0); + m_k051316_2->zoom_draw(screen, bitmap, cliprect, 0, 0); + m_k051960->k051960_sprites_draw(bitmap, cliprect, screen.priority(), 0, 0); + m_k051316_1->zoom_draw(screen, bitmap, cliprect, 0, 0); + m_k051960->k051960_sprites_draw(bitmap, cliprect, screen.priority(), 1, 1); return 0; } diff --git a/src/mame/video/ultratnk.c b/src/mame/video/ultratnk.c index d72821a66e9..1f0ff193753 100644 --- a/src/mame/video/ultratnk.c +++ b/src/mame/video/ultratnk.c @@ -59,7 +59,7 @@ UINT32 ultratnk_state::screen_update_ultratnk(screen_device &screen, bitmap_ind1 UINT8 *videoram = m_videoram; int i; - m_playfield->draw(bitmap, cliprect, 0, 0); + m_playfield->draw(screen, bitmap, cliprect, 0, 0); for (i = 0; i < 4; i++) { @@ -119,7 +119,7 @@ void ultratnk_state::screen_eof_ultratnk(screen_device &screen, bool state) rect &= machine().primary_screen->visible_area(); - m_playfield->draw(m_helper, rect, 0, 0); + m_playfield->draw(screen, m_helper, rect, 0, 0); if (code & 4) bank = 32; diff --git a/src/mame/video/undrfire.c b/src/mame/video/undrfire.c index 02378af23e2..b724b19c1ae 100644 --- a/src/mame/video/undrfire.c +++ b/src/mame/video/undrfire.c @@ -62,7 +62,7 @@ Heavy use is made of sprite zooming. ***************************************************************/ -void undrfire_state::draw_sprites(bitmap_ind16 &bitmap,const rectangle &cliprect,const int *primasks,int x_offs,int y_offs) +void undrfire_state::draw_sprites(screen_device &screen, bitmap_ind16 &bitmap,const rectangle &cliprect,const int *primasks,int x_offs,int y_offs) { UINT32 *spriteram32 = m_spriteram; UINT16 *spritemap = (UINT16 *)memregion("user1")->base(); @@ -200,12 +200,12 @@ logerror("Sprite number %04x had %02x invalid chunks\n",tilenum,bad_chunks); sprite_ptr->flipx,sprite_ptr->flipy, sprite_ptr->x,sprite_ptr->y, sprite_ptr->zoomx,sprite_ptr->zoomy, - machine().priority_bitmap,sprite_ptr->primask,0); + screen.priority(),sprite_ptr->primask,0); } } -void undrfire_state::draw_sprites_cbombers(bitmap_ind16 &bitmap,const rectangle &cliprect,const int *primasks,int x_offs,int y_offs) +void undrfire_state::draw_sprites_cbombers(screen_device &screen, bitmap_ind16 &bitmap,const rectangle &cliprect,const int *primasks,int x_offs,int y_offs) { UINT32 *spriteram32 = m_spriteram; UINT16 *spritemap = (UINT16 *)memregion("user1")->base(); @@ -334,7 +334,7 @@ void undrfire_state::draw_sprites_cbombers(bitmap_ind16 &bitmap,const rectangle sprite_ptr->flipx,sprite_ptr->flipy, sprite_ptr->x,sprite_ptr->y, sprite_ptr->zoomx,sprite_ptr->zoomy, - machine().priority_bitmap,sprite_ptr->primask,0); + screen.priority(),sprite_ptr->primask,0); } } @@ -402,7 +402,7 @@ UINT32 undrfire_state::screen_update_undrfire(screen_device &screen, bitmap_ind1 pivlayer[1] = pivlayer[0] ^ 1; pivlayer[2] = 2; - machine().priority_bitmap.fill(0, cliprect); + screen.priority().fill(0, cliprect); bitmap.fill(0, cliprect); /* wrong color? */ @@ -412,28 +412,28 @@ UINT32 undrfire_state::screen_update_undrfire(screen_device &screen, bitmap_ind1 pointless - it's always hidden by other layers. Does it serve some blending pupose ? */ - m_tc0100scn->tilemap_draw(bitmap, cliprect, pivlayer[0], TILEMAP_DRAW_OPAQUE, 0); - m_tc0100scn->tilemap_draw(bitmap, cliprect, pivlayer[1], 0, 0); + m_tc0100scn->tilemap_draw(screen, bitmap, cliprect, pivlayer[0], TILEMAP_DRAW_OPAQUE, 0); + m_tc0100scn->tilemap_draw(screen, bitmap, cliprect, pivlayer[1], 0, 0); #ifdef MAME_DEBUG if (m_dislayer[layer[0]]==0) #endif - m_tc0480scp->tilemap_draw(bitmap, cliprect, layer[0], 0, 1); + m_tc0480scp->tilemap_draw(screen, bitmap, cliprect, layer[0], 0, 1); #ifdef MAME_DEBUG if (m_dislayer[layer[1]]==0) #endif - m_tc0480scp->tilemap_draw(bitmap, cliprect, layer[1], 0, 2); + m_tc0480scp->tilemap_draw(screen, bitmap, cliprect, layer[1], 0, 2); #ifdef MAME_DEBUG if (m_dislayer[layer[2]]==0) #endif - m_tc0480scp->tilemap_draw(bitmap, cliprect, layer[2], 0, 4); + m_tc0480scp->tilemap_draw(screen, bitmap, cliprect, layer[2], 0, 4); #ifdef MAME_DEBUG if (m_dislayer[layer[3]]==0) #endif - m_tc0480scp->tilemap_draw(bitmap, cliprect, layer[3], 0, 8); + m_tc0480scp->tilemap_draw(screen, bitmap, cliprect, layer[3], 0, 8); #ifdef MAME_DEBUG if (m_dislayer[4]==0) @@ -443,21 +443,21 @@ UINT32 undrfire_state::screen_update_undrfire(screen_device &screen, bitmap_ind1 if ((m_tc0480scp->pri_reg_r(space, 0) & 0x3) == 3) /* on road levels kludge sprites up 1 priority */ { static const int primasks[4] = {0xfff0, 0xff00, 0x0, 0x0}; - draw_sprites(bitmap, cliprect, primasks, 44, -574); + draw_sprites(screen, bitmap, cliprect, primasks, 44, -574); } else { static const int primasks[4] = {0xfffc, 0xfff0, 0xff00, 0x0}; - draw_sprites(bitmap, cliprect, primasks, 44, -574); + draw_sprites(screen, bitmap, cliprect, primasks, 44, -574); } } #ifdef MAME_DEBUG if (m_dislayer[5]==0) #endif - m_tc0100scn->tilemap_draw(bitmap, cliprect, pivlayer[2], 0, 0); /* piv text layer */ + m_tc0100scn->tilemap_draw(screen, bitmap, cliprect, pivlayer[2], 0, 0); /* piv text layer */ - m_tc0480scp->tilemap_draw(bitmap, cliprect, layer[4], 0, 0); /* TC0480SCP text layer */ + m_tc0480scp->tilemap_draw(screen, bitmap, cliprect, layer[4], 0, 0); /* TC0480SCP text layer */ /* See if we should draw artificial gun targets */ /* (not yet implemented...) */ @@ -543,7 +543,7 @@ UINT32 undrfire_state::screen_update_cbombers(screen_device &screen, bitmap_ind1 pivlayer[1] = pivlayer[0] ^ 1; pivlayer[2] = 2; - machine().priority_bitmap.fill(0, cliprect); + screen.priority().fill(0, cliprect); bitmap.fill(0, cliprect); /* wrong color? */ @@ -553,28 +553,28 @@ UINT32 undrfire_state::screen_update_cbombers(screen_device &screen, bitmap_ind1 pointless - it's always hidden by other layers. Does it serve some blending pupose ? */ - m_tc0100scn->tilemap_draw(bitmap, cliprect, pivlayer[0], TILEMAP_DRAW_OPAQUE, 0); - m_tc0100scn->tilemap_draw(bitmap, cliprect, pivlayer[1], 0, 0); + m_tc0100scn->tilemap_draw(screen, bitmap, cliprect, pivlayer[0], TILEMAP_DRAW_OPAQUE, 0); + m_tc0100scn->tilemap_draw(screen, bitmap, cliprect, pivlayer[1], 0, 0); #ifdef MAME_DEBUG if (m_dislayer[layer[0]]==0) #endif - m_tc0480scp->tilemap_draw(bitmap, cliprect, layer[0], 0, 1); + m_tc0480scp->tilemap_draw(screen, bitmap, cliprect, layer[0], 0, 1); #ifdef MAME_DEBUG if (m_dislayer[layer[1]]==0) #endif - m_tc0480scp->tilemap_draw(bitmap, cliprect, layer[1], 0, 2); + m_tc0480scp->tilemap_draw(screen, bitmap, cliprect, layer[1], 0, 2); #ifdef MAME_DEBUG if (m_dislayer[layer[2]]==0) #endif - m_tc0480scp->tilemap_draw(bitmap, cliprect, layer[2], 0, 4); + m_tc0480scp->tilemap_draw(screen, bitmap, cliprect, layer[2], 0, 4); #ifdef MAME_DEBUG if (m_dislayer[layer[3]]==0) #endif - m_tc0480scp->tilemap_draw(bitmap, cliprect, layer[3], 0, 8); + m_tc0480scp->tilemap_draw(screen, bitmap, cliprect, layer[3], 0, 8); #ifdef MAME_DEBUG if (m_dislayer[4]==0) @@ -584,21 +584,21 @@ UINT32 undrfire_state::screen_update_cbombers(screen_device &screen, bitmap_ind1 if ((m_tc0480scp->pri_reg_r(space, 0) & 0x3) == 3) /* on road levels kludge sprites up 1 priority */ { static const int primasks[4] = {0xfff0, 0xff00, 0x0, 0x0}; - draw_sprites_cbombers(bitmap, cliprect, primasks, 80, -208); + draw_sprites_cbombers(screen, bitmap, cliprect, primasks, 80, -208); } else { static const int primasks[4] = {0xfffc, 0xfff0, 0xff00, 0x0}; - draw_sprites_cbombers(bitmap, cliprect, primasks, 80, -208); + draw_sprites_cbombers(screen, bitmap, cliprect, primasks, 80, -208); } } #ifdef MAME_DEBUG if (m_dislayer[5]==0) #endif - m_tc0100scn->tilemap_draw(bitmap, cliprect, pivlayer[2], 0, 0); /* piv text layer */ + m_tc0100scn->tilemap_draw(screen, bitmap, cliprect, pivlayer[2], 0, 0); /* piv text layer */ - m_tc0480scp->tilemap_draw(bitmap, cliprect, layer[4], 0, 0); /* TC0480SCP text layer */ + m_tc0480scp->tilemap_draw(screen, bitmap, cliprect, layer[4], 0, 0); /* TC0480SCP text layer */ /* Enable this to see rotation (?) control words */ #if 0 diff --git a/src/mame/video/unico.c b/src/mame/video/unico.c index 015f2e801e1..cf70fcf39d4 100644 --- a/src/mame/video/unico.c +++ b/src/mame/video/unico.c @@ -217,7 +217,7 @@ VIDEO_START_MEMBER(unico_state,zeropnt2) ***************************************************************************/ -void unico_state::unico_draw_sprites(bitmap_ind16 &bitmap,const rectangle &cliprect) +void unico_state::unico_draw_sprites(screen_device &screen, bitmap_ind16 &bitmap,const rectangle &cliprect) { UINT16 *spriteram16 = m_spriteram; int offs; @@ -265,13 +265,13 @@ void unico_state::unico_draw_sprites(bitmap_ind16 &bitmap,const rectangle &clipr attr & 0x1f, flipx, flipy, x, sy, - machine().priority_bitmap, + screen.priority(), pri_mask,0x00 ); } } } -void unico_state::zeropnt2_draw_sprites(bitmap_ind16 &bitmap,const rectangle &cliprect) +void unico_state::zeropnt2_draw_sprites(screen_device &screen, bitmap_ind16 &bitmap,const rectangle &cliprect) { UINT32 *spriteram32 = reinterpret_cast(m_spriteram.target()); int offs; @@ -319,7 +319,7 @@ void unico_state::zeropnt2_draw_sprites(bitmap_ind16 &bitmap,const rectangle &cl attr & 0x1f, flipx, flipy, x, sy, - machine().priority_bitmap, + screen.priority(), pri_mask,0x00 ); } } @@ -362,14 +362,14 @@ if ( machine().input().code_pressed(KEYCODE_Z) || machine().input().code_pressed /* The background color is the first of the last palette */ bitmap.fill(0x1f00, cliprect); - machine().priority_bitmap.fill(0, cliprect); + screen.priority().fill(0, cliprect); - if (layers_ctrl & 1) m_tilemap[0]->draw(bitmap, cliprect, 0,1); - if (layers_ctrl & 2) m_tilemap[1]->draw(bitmap, cliprect, 0,2); - if (layers_ctrl & 4) m_tilemap[2]->draw(bitmap, cliprect, 0,4); + if (layers_ctrl & 1) m_tilemap[0]->draw(screen, bitmap, cliprect, 0,1); + if (layers_ctrl & 2) m_tilemap[1]->draw(screen, bitmap, cliprect, 0,2); + if (layers_ctrl & 4) m_tilemap[2]->draw(screen, bitmap, cliprect, 0,4); /* Sprites are drawn last, using pdrawgfx */ - if (layers_ctrl & 8) unico_draw_sprites(bitmap,cliprect); + if (layers_ctrl & 8) unico_draw_sprites(screen,bitmap,cliprect); return 0; } @@ -401,14 +401,14 @@ if ( machine().input().code_pressed(KEYCODE_Z) || machine().input().code_pressed /* The background color is the first of the last palette */ bitmap.fill(0x1f00, cliprect); - screen.machine().priority_bitmap.fill(0, cliprect); + screen.priority().fill(0, cliprect); - if (layers_ctrl & 1) m_tilemap[0]->draw(bitmap, cliprect, 0,1); - if (layers_ctrl & 2) m_tilemap[1]->draw(bitmap, cliprect, 0,2); - if (layers_ctrl & 4) m_tilemap[2]->draw(bitmap, cliprect, 0,4); + if (layers_ctrl & 1) m_tilemap[0]->draw(screen, bitmap, cliprect, 0,1); + if (layers_ctrl & 2) m_tilemap[1]->draw(screen, bitmap, cliprect, 0,2); + if (layers_ctrl & 4) m_tilemap[2]->draw(screen, bitmap, cliprect, 0,4); /* Sprites are drawn last, using pdrawgfx */ - if (layers_ctrl & 8) zeropnt2_draw_sprites(bitmap,cliprect); + if (layers_ctrl & 8) zeropnt2_draw_sprites(screen,bitmap,cliprect); return 0; } diff --git a/src/mame/video/usgames.c b/src/mame/video/usgames.c index 382c4445327..dceca4547ff 100644 --- a/src/mame/video/usgames.c +++ b/src/mame/video/usgames.c @@ -63,6 +63,6 @@ WRITE8_MEMBER(usgames_state::usgames_charram_w) UINT32 usgames_state::screen_update_usgames(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect) { - m_tilemap->draw(bitmap, cliprect, 0,0); + m_tilemap->draw(screen, bitmap, cliprect, 0,0); return 0; } diff --git a/src/mame/video/vaportra.c b/src/mame/video/vaportra.c index 09629bed961..b27b4bad5cb 100644 --- a/src/mame/video/vaportra.c +++ b/src/mame/video/vaportra.c @@ -63,34 +63,34 @@ UINT32 vaportra_state::screen_update_vaportra(screen_device &screen, bitmap_ind1 /* Draw playfields */ if (pri == 0) { - m_deco_tilegen2->tilemap_2_draw(bitmap, cliprect, TILEMAP_DRAW_OPAQUE, 0); - m_deco_tilegen2->tilemap_1_draw(bitmap, cliprect, 0, 0); + m_deco_tilegen2->tilemap_2_draw(screen, bitmap, cliprect, TILEMAP_DRAW_OPAQUE, 0); + m_deco_tilegen2->tilemap_1_draw(screen, bitmap, cliprect, 0, 0); machine().device("spritegen")->draw_sprites(machine(), bitmap, cliprect, m_spriteram->buffer(), 0, m_priority[1], 0x0f); - m_deco_tilegen1->tilemap_2_draw(bitmap, cliprect, 0, 0); + m_deco_tilegen1->tilemap_2_draw(screen, bitmap, cliprect, 0, 0); } else if (pri == 1) { - m_deco_tilegen2->tilemap_1_draw(bitmap, cliprect, TILEMAP_DRAW_OPAQUE, 0); - m_deco_tilegen2->tilemap_2_draw(bitmap, cliprect, 0, 0); + m_deco_tilegen2->tilemap_1_draw(screen, bitmap, cliprect, TILEMAP_DRAW_OPAQUE, 0); + m_deco_tilegen2->tilemap_2_draw(screen, bitmap, cliprect, 0, 0); machine().device("spritegen")->draw_sprites(machine(), bitmap, cliprect, m_spriteram->buffer(), 0, m_priority[1], 0x0f); - m_deco_tilegen1->tilemap_2_draw(bitmap, cliprect, 0, 0); + m_deco_tilegen1->tilemap_2_draw(screen, bitmap, cliprect, 0, 0); } else if (pri == 2) { - m_deco_tilegen2->tilemap_2_draw(bitmap, cliprect, TILEMAP_DRAW_OPAQUE, 0); - m_deco_tilegen1->tilemap_2_draw(bitmap, cliprect, 0, 0); + m_deco_tilegen2->tilemap_2_draw(screen, bitmap, cliprect, TILEMAP_DRAW_OPAQUE, 0); + m_deco_tilegen1->tilemap_2_draw(screen, bitmap, cliprect, 0, 0); machine().device("spritegen")->draw_sprites(machine(), bitmap, cliprect, m_spriteram->buffer(), 0, m_priority[1], 0x0f); - m_deco_tilegen2->tilemap_1_draw(bitmap, cliprect, 0, 0); + m_deco_tilegen2->tilemap_1_draw(screen, bitmap, cliprect, 0, 0); } else { - m_deco_tilegen2->tilemap_1_draw(bitmap, cliprect, TILEMAP_DRAW_OPAQUE, 0); - m_deco_tilegen1->tilemap_2_draw(bitmap, cliprect, 0, 0); + m_deco_tilegen2->tilemap_1_draw(screen, bitmap, cliprect, TILEMAP_DRAW_OPAQUE, 0); + m_deco_tilegen1->tilemap_2_draw(screen, bitmap, cliprect, 0, 0); machine().device("spritegen")->draw_sprites(machine(), bitmap, cliprect, m_spriteram->buffer(), 0, m_priority[1], 0x0f); - m_deco_tilegen2->tilemap_2_draw(bitmap, cliprect, 0, 0); + m_deco_tilegen2->tilemap_2_draw(screen, bitmap, cliprect, 0, 0); } machine().device("spritegen")->draw_sprites(machine(), bitmap, cliprect, m_spriteram->buffer(), 1, m_priority[1], 0x0f); - m_deco_tilegen1->tilemap_1_draw(bitmap, cliprect, 0, 0); + m_deco_tilegen1->tilemap_1_draw(screen, bitmap, cliprect, 0, 0); return 0; } diff --git a/src/mame/video/vastar.c b/src/mame/video/vastar.c index 775f4052f17..5735a2f697e 100644 --- a/src/mame/video/vastar.c +++ b/src/mame/video/vastar.c @@ -194,31 +194,31 @@ UINT32 vastar_state::screen_update_vastar(screen_device &screen, bitmap_ind16 &b switch (*m_sprite_priority) { case 0: - m_bg1_tilemap->draw(bitmap, cliprect, TILEMAP_DRAW_OPAQUE,0); + m_bg1_tilemap->draw(screen, bitmap, cliprect, TILEMAP_DRAW_OPAQUE,0); draw_sprites(bitmap,cliprect); - m_bg2_tilemap->draw(bitmap, cliprect, 0,0); - m_fg_tilemap->draw(bitmap, cliprect, 0,0); + m_bg2_tilemap->draw(screen, bitmap, cliprect, 0,0); + m_fg_tilemap->draw(screen, bitmap, cliprect, 0,0); break; case 1: // ?? planet probe - m_bg1_tilemap->draw(bitmap, cliprect, TILEMAP_DRAW_OPAQUE,0); - m_bg2_tilemap->draw(bitmap, cliprect, 0,0); + m_bg1_tilemap->draw(screen, bitmap, cliprect, TILEMAP_DRAW_OPAQUE,0); + m_bg2_tilemap->draw(screen, bitmap, cliprect, 0,0); draw_sprites(bitmap,cliprect); - m_fg_tilemap->draw(bitmap, cliprect, 0,0); + m_fg_tilemap->draw(screen, bitmap, cliprect, 0,0); break; case 2: - m_bg1_tilemap->draw(bitmap, cliprect, TILEMAP_DRAW_OPAQUE,0); + m_bg1_tilemap->draw(screen, bitmap, cliprect, TILEMAP_DRAW_OPAQUE,0); draw_sprites(bitmap,cliprect); - m_bg1_tilemap->draw(bitmap, cliprect, 0,0); - m_bg2_tilemap->draw(bitmap, cliprect, 0,0); - m_fg_tilemap->draw(bitmap, cliprect, 0,0); + m_bg1_tilemap->draw(screen, bitmap, cliprect, 0,0); + m_bg2_tilemap->draw(screen, bitmap, cliprect, 0,0); + m_fg_tilemap->draw(screen, bitmap, cliprect, 0,0); break; case 3: - m_bg1_tilemap->draw(bitmap, cliprect, TILEMAP_DRAW_OPAQUE,0); - m_bg2_tilemap->draw(bitmap, cliprect, 0,0); - m_fg_tilemap->draw(bitmap, cliprect, 0,0); + m_bg1_tilemap->draw(screen, bitmap, cliprect, TILEMAP_DRAW_OPAQUE,0); + m_bg2_tilemap->draw(screen, bitmap, cliprect, 0,0); + m_fg_tilemap->draw(screen, bitmap, cliprect, 0,0); draw_sprites(bitmap,cliprect); break; diff --git a/src/mame/video/vball.c b/src/mame/video/vball.c index 37f7fdff42e..6727f9b8f68 100644 --- a/src/mame/video/vball.c +++ b/src/mame/video/vball.c @@ -162,7 +162,7 @@ UINT32 vball_state::screen_update_vb(screen_device &screen, bitmap_ind16 &bitmap m_bg_tilemap->set_scrollx(i,m_vb_scrollx[i-2]); //logerror("scrollx[%d] = %d\n",i,m_vb_scrollx[i]); } - m_bg_tilemap->draw(bitmap, cliprect, 0,0); + m_bg_tilemap->draw(screen, bitmap, cliprect, 0,0); draw_sprites(bitmap,cliprect); return 0; } diff --git a/src/mame/video/vendetta.c b/src/mame/video/vendetta.c index e5d9171946a..d61671ab1d0 100644 --- a/src/mame/video/vendetta.c +++ b/src/mame/video/vendetta.c @@ -72,10 +72,10 @@ UINT32 vendetta_state::screen_update_vendetta(screen_device &screen, bitmap_ind1 konami_sortlayers3(layer, m_layerpri); - machine().priority_bitmap.fill(0, cliprect); - m_k052109->tilemap_draw(bitmap, cliprect, layer[0], TILEMAP_DRAW_OPAQUE, 1); - m_k052109->tilemap_draw(bitmap, cliprect, layer[1], 0, 2); - m_k052109->tilemap_draw(bitmap, cliprect, layer[2], 0, 4); + screen.priority().fill(0, cliprect); + m_k052109->tilemap_draw(screen, bitmap, cliprect, layer[0], TILEMAP_DRAW_OPAQUE, 1); + m_k052109->tilemap_draw(screen, bitmap, cliprect, layer[1], 0, 2); + m_k052109->tilemap_draw(screen, bitmap, cliprect, layer[2], 0, 4); m_k053246->k053247_sprites_draw(bitmap, cliprect); return 0; diff --git a/src/mame/video/videopin.c b/src/mame/video/videopin.c index 998166018b5..057e27a5e3d 100644 --- a/src/mame/video/videopin.c +++ b/src/mame/video/videopin.c @@ -38,7 +38,7 @@ UINT32 videopin_state::screen_update_videopin(screen_device &screen, bitmap_ind1 m_bg_tilemap->set_scrollx(0, -8); /* account for delayed loading of shift reg C6 */ - m_bg_tilemap->draw(bitmap, cliprect, 0, 0); + m_bg_tilemap->draw(screen, bitmap, cliprect, 0, 0); for (row = 0; row < 32; row++) { diff --git a/src/mame/video/vindictr.c b/src/mame/video/vindictr.c index d76a7ede346..2e210fa7712 100644 --- a/src/mame/video/vindictr.c +++ b/src/mame/video/vindictr.c @@ -206,7 +206,7 @@ UINT32 vindictr_state::screen_update_vindictr(screen_device &screen, bitmap_ind1 m_mob->draw_async(cliprect); /* draw the playfield */ - m_playfield_tilemap->draw(bitmap, cliprect, 0, 0); + m_playfield_tilemap->draw(screen, bitmap, cliprect, 0, 0); // draw and merge the MO bitmap_ind16 &mobitmap = m_mob->bitmap(); @@ -247,7 +247,7 @@ UINT32 vindictr_state::screen_update_vindictr(screen_device &screen, bitmap_ind1 } /* add the alpha on top */ - m_alpha_tilemap->draw(bitmap, cliprect, 0, 0); + m_alpha_tilemap->draw(screen, bitmap, cliprect, 0, 0); /* now go back and process the upper bit of MO priority */ for (const sparse_dirty_rect *rect = m_mob->first_dirty_rect(cliprect); rect != NULL; rect = rect->next()) diff --git a/src/mame/video/volfied.c b/src/mame/video/volfied.c index b45cf723245..0196295947a 100644 --- a/src/mame/video/volfied.c +++ b/src/mame/video/volfied.c @@ -121,8 +121,8 @@ void volfied_state::refresh_pixel_layer( bitmap_ind16 &bitmap ) UINT32 volfied_state::screen_update_volfied(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect) { - machine().priority_bitmap.fill(0, cliprect); + screen.priority().fill(0, cliprect); refresh_pixel_layer(bitmap); - m_pc090oj->draw_sprites(bitmap, cliprect, 0); + m_pc090oj->draw_sprites(bitmap, cliprect, screen.priority(), 0); return 0; } diff --git a/src/mame/video/vsystem_spr.c b/src/mame/video/vsystem_spr.c index 746b68bfa7e..5506a19be1a 100644 --- a/src/mame/video/vsystem_spr.c +++ b/src/mame/video/vsystem_spr.c @@ -193,7 +193,7 @@ void vsystem_spr_device::get_sprite_attributes(UINT16* ram) } -void vsystem_spr_device::common_sprite_drawgfx( running_machine &machine, bitmap_ind16 &bitmap, const rectangle &cliprect) +void vsystem_spr_device::common_sprite_drawgfx( running_machine &machine, bitmap_ind16 &bitmap, const rectangle &cliprect, bitmap_ind8 &priority_bitmap) { gfx_element *gfx = machine.gfx[m_gfx_region]; int priority_mask = 0x00; @@ -235,10 +235,10 @@ void vsystem_spr_device::common_sprite_drawgfx( running_machine &machine, bitmap int startno = m_newtilecb(curr_sprite.map++); if (m_pdraw) { - pdrawgfxzoom_transpen(bitmap, cliprect, gfx, startno, curr_sprite.color + m_pal_base, curr_sprite.flipx, curr_sprite.flipy, curr_sprite.ox + xcnt * curr_sprite.zoomx/2, curr_sprite.oy + ycnt * curr_sprite.zoomy/2, curr_sprite.zoomx << 11, curr_sprite.zoomy << 11, machine.priority_bitmap,priority_mask, m_transpen); - pdrawgfxzoom_transpen(bitmap, cliprect, gfx, startno, curr_sprite.color + m_pal_base, curr_sprite.flipx, curr_sprite.flipy, -0x200+curr_sprite.ox + xcnt * curr_sprite.zoomx/2, curr_sprite.oy + ycnt * curr_sprite.zoomy/2, curr_sprite.zoomx << 11, curr_sprite.zoomy << 11, machine.priority_bitmap,priority_mask, m_transpen); - pdrawgfxzoom_transpen(bitmap, cliprect, gfx, startno, curr_sprite.color + m_pal_base, curr_sprite.flipx, curr_sprite.flipy, curr_sprite.ox + xcnt * curr_sprite.zoomx/2, -0x200+curr_sprite.oy + ycnt * curr_sprite.zoomy/2, curr_sprite.zoomx << 11, curr_sprite.zoomy << 11, machine.priority_bitmap,priority_mask, m_transpen); - pdrawgfxzoom_transpen(bitmap, cliprect, gfx, startno, curr_sprite.color + m_pal_base, curr_sprite.flipx, curr_sprite.flipy, -0x200+curr_sprite.ox + xcnt * curr_sprite.zoomx/2, -0x200+curr_sprite.oy + ycnt * curr_sprite.zoomy/2, curr_sprite.zoomx << 11, curr_sprite.zoomy << 11, machine.priority_bitmap,priority_mask, m_transpen); + pdrawgfxzoom_transpen(bitmap, cliprect, gfx, startno, curr_sprite.color + m_pal_base, curr_sprite.flipx, curr_sprite.flipy, curr_sprite.ox + xcnt * curr_sprite.zoomx/2, curr_sprite.oy + ycnt * curr_sprite.zoomy/2, curr_sprite.zoomx << 11, curr_sprite.zoomy << 11, priority_bitmap, priority_mask, m_transpen); + pdrawgfxzoom_transpen(bitmap, cliprect, gfx, startno, curr_sprite.color + m_pal_base, curr_sprite.flipx, curr_sprite.flipy, -0x200+curr_sprite.ox + xcnt * curr_sprite.zoomx/2, curr_sprite.oy + ycnt * curr_sprite.zoomy/2, curr_sprite.zoomx << 11, curr_sprite.zoomy << 11, priority_bitmap, priority_mask, m_transpen); + pdrawgfxzoom_transpen(bitmap, cliprect, gfx, startno, curr_sprite.color + m_pal_base, curr_sprite.flipx, curr_sprite.flipy, curr_sprite.ox + xcnt * curr_sprite.zoomx/2, -0x200+curr_sprite.oy + ycnt * curr_sprite.zoomy/2, curr_sprite.zoomx << 11, curr_sprite.zoomy << 11, priority_bitmap, priority_mask, m_transpen); + pdrawgfxzoom_transpen(bitmap, cliprect, gfx, startno, curr_sprite.color + m_pal_base, curr_sprite.flipx, curr_sprite.flipy, -0x200+curr_sprite.ox + xcnt * curr_sprite.zoomx/2, -0x200+curr_sprite.oy + ycnt * curr_sprite.zoomy/2, curr_sprite.zoomx << 11, curr_sprite.zoomy << 11, priority_bitmap, priority_mask, m_transpen); } else { @@ -256,7 +256,7 @@ void vsystem_spr_device::common_sprite_drawgfx( running_machine &machine, bitmap -void vsystem_spr_device::draw_sprites( UINT16* spriteram, int spriteram_bytes, running_machine &machine, bitmap_ind16 &bitmap, const rectangle &cliprect, int prihack_mask, int prihack_val ) +void vsystem_spr_device::draw_sprites( UINT16* spriteram, int spriteram_bytes, screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect, int prihack_mask, int prihack_val ) { int offs; int end = 0; @@ -301,11 +301,11 @@ void vsystem_spr_device::draw_sprites( UINT16* spriteram, int spriteram_bytes, r if (prihack_mask != -1) { if ((curr_sprite.pri & prihack_mask) == prihack_val) - common_sprite_drawgfx(machine, bitmap, cliprect); + common_sprite_drawgfx(screen.machine(), bitmap, cliprect, screen.priority()); } else { - common_sprite_drawgfx(machine, bitmap, cliprect); + common_sprite_drawgfx(screen.machine(), bitmap, cliprect, screen.priority()); } } diff --git a/src/mame/video/vsystem_spr.h b/src/mame/video/vsystem_spr.h index dc91109873c..8cfbc2989b9 100644 --- a/src/mame/video/vsystem_spr.h +++ b/src/mame/video/vsystem_spr.h @@ -57,9 +57,9 @@ public: } curr_sprite; void get_sprite_attributes(UINT16* ram); - void common_sprite_drawgfx(running_machine &machine, bitmap_ind16 &bitmap, const rectangle &cliprect); + void common_sprite_drawgfx(running_machine &machine, bitmap_ind16 &bitmap, const rectangle &cliprect, bitmap_ind8 &priority_bitmap); - void draw_sprites( UINT16* spriteram, int spriteram_bytes, running_machine &machine, bitmap_ind16 &bitmap, const rectangle &cliprect, int prihack_mask = -1, int prihack_val = -1 ); + void draw_sprites( UINT16* spriteram, int spriteram_bytes, screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect, int prihack_mask = -1, int prihack_val = -1 ); protected: diff --git a/src/mame/video/vsystem_spr2.c b/src/mame/video/vsystem_spr2.c index 9be7c03e2d5..c641cc6e8ee 100644 --- a/src/mame/video/vsystem_spr2.c +++ b/src/mame/video/vsystem_spr2.c @@ -114,7 +114,7 @@ void vsystem_spr2_device::handle_xsize_map_inc(void) } template -void vsystem_spr2_device::turbofrc_draw_sprites_common( UINT16* spriteram3, int spriteram3_bytes, int spritepalettebank, running_machine &machine, _BitmapClass &bitmap, const rectangle &cliprect, int pri_param ) +void vsystem_spr2_device::turbofrc_draw_sprites_common( UINT16* spriteram3, int spriteram3_bytes, int spritepalettebank, running_machine &machine, _BitmapClass &bitmap, const rectangle &cliprect, bitmap_ind8 &priority_bitmap, int pri_param ) { int attr_start, first; first = 4 * spriteram3[0x1fe]; @@ -202,10 +202,10 @@ void vsystem_spr2_device::turbofrc_draw_sprites_common( UINT16* spriteram3, int if (m_pritype == 0 || m_pritype == 1 || m_pritype == 2) // pdrawgfx cases { - pdrawgfxzoom_transpen(bitmap,cliprect,machine.gfx[m_gfx_region], curr, curr_sprite.color, curr_sprite.flipx,curr_sprite.flipy, sx-0x000,sy-0x000, curr_sprite.zoomx << 11, curr_sprite.zoomy << 11, machine.priority_bitmap,usepri,15); - pdrawgfxzoom_transpen(bitmap,cliprect,machine.gfx[m_gfx_region], curr, curr_sprite.color, curr_sprite.flipx,curr_sprite.flipy, sx-0x200,sy-0x000, curr_sprite.zoomx << 11, curr_sprite.zoomy << 11, machine.priority_bitmap,usepri,15); - pdrawgfxzoom_transpen(bitmap,cliprect,machine.gfx[m_gfx_region], curr, curr_sprite.color, curr_sprite.flipx,curr_sprite.flipy, sx-0x000,sy-0x200, curr_sprite.zoomx << 11, curr_sprite.zoomy << 11, machine.priority_bitmap,usepri,15); - pdrawgfxzoom_transpen(bitmap,cliprect,machine.gfx[m_gfx_region], curr, curr_sprite.color, curr_sprite.flipx,curr_sprite.flipy, sx-0x200,sy-0x200, curr_sprite.zoomx << 11, curr_sprite.zoomy << 11, machine.priority_bitmap,usepri,15); + pdrawgfxzoom_transpen(bitmap,cliprect,machine.gfx[m_gfx_region], curr, curr_sprite.color, curr_sprite.flipx,curr_sprite.flipy, sx-0x000,sy-0x000, curr_sprite.zoomx << 11, curr_sprite.zoomy << 11, priority_bitmap,usepri,15); + pdrawgfxzoom_transpen(bitmap,cliprect,machine.gfx[m_gfx_region], curr, curr_sprite.color, curr_sprite.flipx,curr_sprite.flipy, sx-0x200,sy-0x000, curr_sprite.zoomx << 11, curr_sprite.zoomy << 11, priority_bitmap,usepri,15); + pdrawgfxzoom_transpen(bitmap,cliprect,machine.gfx[m_gfx_region], curr, curr_sprite.color, curr_sprite.flipx,curr_sprite.flipy, sx-0x000,sy-0x200, curr_sprite.zoomx << 11, curr_sprite.zoomy << 11, priority_bitmap,usepri,15); + pdrawgfxzoom_transpen(bitmap,cliprect,machine.gfx[m_gfx_region], curr, curr_sprite.color, curr_sprite.flipx,curr_sprite.flipy, sx-0x200,sy-0x200, curr_sprite.zoomx << 11, curr_sprite.zoomy << 11, priority_bitmap,usepri,15); } else // drawgfx cases (welltris, pipedrm) { @@ -221,8 +221,8 @@ void vsystem_spr2_device::turbofrc_draw_sprites_common( UINT16* spriteram3, int } } -void vsystem_spr2_device::turbofrc_draw_sprites( UINT16* spriteram3, int spriteram3_bytes, int spritepalettebank, running_machine &machine, bitmap_ind16 &bitmap, const rectangle &cliprect, int pri_param ) -{ turbofrc_draw_sprites_common( spriteram3, spriteram3_bytes, spritepalettebank, machine, bitmap, cliprect, pri_param ); } +void vsystem_spr2_device::turbofrc_draw_sprites( UINT16* spriteram3, int spriteram3_bytes, int spritepalettebank, running_machine &machine, bitmap_ind16 &bitmap, const rectangle &cliprect, bitmap_ind8 &priority_bitmap, int pri_param ) +{ turbofrc_draw_sprites_common( spriteram3, spriteram3_bytes, spritepalettebank, machine, bitmap, cliprect, priority_bitmap, pri_param ); } -void vsystem_spr2_device::turbofrc_draw_sprites( UINT16* spriteram3, int spriteram3_bytes, int spritepalettebank, running_machine &machine, bitmap_rgb32 &bitmap, const rectangle &cliprect, int pri_param ) -{ turbofrc_draw_sprites_common( spriteram3, spriteram3_bytes, spritepalettebank, machine, bitmap, cliprect, pri_param ); } +void vsystem_spr2_device::turbofrc_draw_sprites( UINT16* spriteram3, int spriteram3_bytes, int spritepalettebank, running_machine &machine, bitmap_rgb32 &bitmap, const rectangle &cliprect, bitmap_ind8 &priority_bitmap, int pri_param ) +{ turbofrc_draw_sprites_common( spriteram3, spriteram3_bytes, spritepalettebank, machine, bitmap, cliprect, priority_bitmap, pri_param ); } diff --git a/src/mame/video/vsystem_spr2.h b/src/mame/video/vsystem_spr2.h index b23b3d62aa0..174814d0e58 100644 --- a/src/mame/video/vsystem_spr2.h +++ b/src/mame/video/vsystem_spr2.h @@ -45,10 +45,10 @@ public: int m_xoffs, m_yoffs; template - void turbofrc_draw_sprites_common( UINT16* spriteram3, int spriteram3_bytes, int spritepalettebank, running_machine &machine, _BitmapClass &bitmap, const rectangle &cliprect, int pri_param ); + void turbofrc_draw_sprites_common( UINT16* spriteram3, int spriteram3_bytes, int spritepalettebank, running_machine &machine, _BitmapClass &bitmap, const rectangle &cliprect, bitmap_ind8 &priority_bitmap, int pri_param ); - void turbofrc_draw_sprites( UINT16* spriteram3, int spriteram3_bytes, int spritepalettebank, running_machine &machine, bitmap_ind16 &bitmap, const rectangle &cliprect, int pri_param ); - void turbofrc_draw_sprites( UINT16* spriteram3, int spriteram3_bytes, int spritepalettebank, running_machine &machine, bitmap_rgb32 &bitmap, const rectangle &cliprect, int pri_param ); + void turbofrc_draw_sprites( UINT16* spriteram3, int spriteram3_bytes, int spritepalettebank, running_machine &machine, bitmap_ind16 &bitmap, const rectangle &cliprect, bitmap_ind8 &priority_bitmap, int pri_param ); + void turbofrc_draw_sprites( UINT16* spriteram3, int spriteram3_bytes, int spritepalettebank, running_machine &machine, bitmap_rgb32 &bitmap, const rectangle &cliprect, bitmap_ind8 &priority_bitmap, int pri_param ); diff --git a/src/mame/video/vulgus.c b/src/mame/video/vulgus.c index 87e880be57b..63a61d7f654 100644 --- a/src/mame/video/vulgus.c +++ b/src/mame/video/vulgus.c @@ -216,8 +216,8 @@ UINT32 vulgus_state::screen_update_vulgus(screen_device &screen, bitmap_ind16 &b m_bg_tilemap->set_scrollx(0, m_scroll_low[1] + 256 * m_scroll_high[1]); m_bg_tilemap->set_scrolly(0, m_scroll_low[0] + 256 * m_scroll_high[0]); - m_bg_tilemap->draw(bitmap, cliprect, 0,0); + m_bg_tilemap->draw(screen, bitmap, cliprect, 0,0); draw_sprites(bitmap,cliprect); - m_fg_tilemap->draw(bitmap, cliprect, 0,0); + m_fg_tilemap->draw(screen, bitmap, cliprect, 0,0); return 0; } diff --git a/src/mame/video/warpwarp.c b/src/mame/video/warpwarp.c index 2d6984ed132..2410fbfc5f8 100644 --- a/src/mame/video/warpwarp.c +++ b/src/mame/video/warpwarp.c @@ -236,7 +236,7 @@ void warpwarp_state::draw_ball(bitmap_ind16 &bitmap, const rectangle &cliprect,p UINT32 warpwarp_state::screen_update_geebee(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect) { - m_bg_tilemap->draw(bitmap, cliprect, 0,0); + m_bg_tilemap->draw(screen, bitmap, cliprect, 0,0); draw_ball(bitmap, cliprect, m_ball_pen); return 0; diff --git a/src/mame/video/warriorb.c b/src/mame/video/warriorb.c index 36bf34ba65d..9c802436d75 100644 --- a/src/mame/video/warriorb.c +++ b/src/mame/video/warriorb.c @@ -14,7 +14,7 @@ void warriorb_state::video_start() SPRITE DRAW ROUTINE ************************************************************/ -void warriorb_state::draw_sprites( bitmap_ind16 &bitmap, const rectangle &cliprect, int x_offs, int y_offs ) +void warriorb_state::draw_sprites( screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect, int x_offs, int y_offs ) { UINT16 *spriteram = m_spriteram; int offs, data, data2, tilenum, color, flipx, flipy; @@ -66,7 +66,7 @@ void warriorb_state::draw_sprites( bitmap_ind16 &bitmap, const rectangle &clipre color, flipx,flipy, x,y, - machine().priority_bitmap,pri_mask,0); + screen.priority(),pri_mask,0); } #ifdef MAME_DEBUG @@ -91,24 +91,24 @@ UINT32 warriorb_state::update_screen(screen_device &screen, bitmap_ind16 &bitmap layer[2] = 2; /* Clear priority bitmap */ - screen.machine().priority_bitmap.fill(0, cliprect); + screen.priority().fill(0, cliprect); /* chip 0 does tilemaps on the left, chip 1 does the ones on the right */ // draw bottom layer - nodraw = tc0100scn->tilemap_draw(bitmap, cliprect, layer[0], TILEMAP_DRAW_OPAQUE, 0); /* left */ + nodraw = tc0100scn->tilemap_draw(screen, bitmap, cliprect, layer[0], TILEMAP_DRAW_OPAQUE, 0); /* left */ /* Ensure screen blanked even when bottom layers not drawn due to disable bit */ if (nodraw) bitmap.fill(get_black_pen(machine()), cliprect); // draw middle layer - tc0100scn->tilemap_draw(bitmap, cliprect, layer[1], 0, 1); + tc0100scn->tilemap_draw(screen, bitmap, cliprect, layer[1], 0, 1); /* Sprites can be under/over the layer below text layer */ - draw_sprites(bitmap, cliprect, xoffs, 8); // draw sprites + draw_sprites(screen, bitmap, cliprect, xoffs, 8); // draw sprites // draw top(text) layer - tc0100scn->tilemap_draw(bitmap, cliprect, layer[2], 0, 0); + tc0100scn->tilemap_draw(screen, bitmap, cliprect, layer[2], 0, 0); return 0; } diff --git a/src/mame/video/wc90.c b/src/mame/video/wc90.c index 8a90c8b2298..100feaacfaa 100644 --- a/src/mame/video/wc90.c +++ b/src/mame/video/wc90.c @@ -337,11 +337,11 @@ UINT32 wc90_state::screen_update_wc90(screen_device &screen, bitmap_ind16 &bitma m_tx_tilemap->set_scrolly(0,m_scroll0ylo[0] + 256 * m_scroll0yhi[0]); // draw_sprites(bitmap,cliprect, 3 ); - m_bg_tilemap->draw(bitmap, cliprect, 0,0); + m_bg_tilemap->draw(screen, bitmap, cliprect, 0,0); draw_sprites(bitmap,cliprect, 2 ); - m_fg_tilemap->draw(bitmap, cliprect, 0,0); + m_fg_tilemap->draw(screen, bitmap, cliprect, 0,0); draw_sprites(bitmap,cliprect, 1 ); - m_tx_tilemap->draw(bitmap, cliprect, 0,0); + m_tx_tilemap->draw(screen, bitmap, cliprect, 0,0); draw_sprites(bitmap,cliprect, 0 ); return 0; } diff --git a/src/mame/video/wc90b.c b/src/mame/video/wc90b.c index 06917b1e062..2eda17fd061 100644 --- a/src/mame/video/wc90b.c +++ b/src/mame/video/wc90b.c @@ -131,10 +131,10 @@ UINT32 wc90b_state::screen_update_wc90b(screen_device &screen, bitmap_ind16 &bit m_fg_tilemap->set_scrollx(0,8 * (m_scroll1x[0] & 0x7f) + 256 - 6 + ((m_scroll_x_lo[0] & 0x38) >> 3)); m_fg_tilemap->set_scrolly(0,m_scroll1y[0] + 1 + ((m_scroll1x[0] & 0x80) ? 256 : 0)); - m_bg_tilemap->draw(bitmap, cliprect, 0,0); - m_fg_tilemap->draw(bitmap, cliprect, 0,0); + m_bg_tilemap->draw(screen, bitmap, cliprect, 0,0); + m_fg_tilemap->draw(screen, bitmap, cliprect, 0,0); draw_sprites(bitmap,cliprect, 1 ); - m_tx_tilemap->draw(bitmap, cliprect, 0,0); + m_tx_tilemap->draw(screen, bitmap, cliprect, 0,0); draw_sprites(bitmap,cliprect, 0 ); return 0; } diff --git a/src/mame/video/wecleman.c b/src/mame/video/wecleman.c index 83b2de645e1..9c82c422947 100644 --- a/src/mame/video/wecleman.c +++ b/src/mame/video/wecleman.c @@ -1061,7 +1061,7 @@ UINT32 wecleman_state::screen_update_wecleman(screen_device &screen, bitmap_rgb3 if (video_on) wecleman_draw_road(machine(), bitmap, cliprect, 0x02); /* Draw the background */ - if (video_on) m_bg_tilemap->draw(bitmap, cliprect, 0, 0); + if (video_on) m_bg_tilemap->draw(screen, bitmap, cliprect, 0, 0); // draws the cloud layer; needs work if (m_cloud_visible) @@ -1089,7 +1089,7 @@ UINT32 wecleman_state::screen_update_wecleman(screen_device &screen, bitmap_rgb3 } /* Draw the foreground */ - if (video_on) m_fg_tilemap->draw(bitmap, cliprect, 0, 0); + if (video_on) m_fg_tilemap->draw(screen, bitmap, cliprect, 0, 0); /* Draw the road (lines which have priority 0x04) */ if (video_on) wecleman_draw_road(machine(), bitmap,cliprect, 0x04); @@ -1098,7 +1098,7 @@ UINT32 wecleman_state::screen_update_wecleman(screen_device &screen, bitmap_rgb3 if (video_on) sprite_draw(machine(), bitmap,cliprect); /* Draw the text layer */ - if (video_on) m_txt_tilemap->draw(bitmap, cliprect, 0, 0); + if (video_on) m_txt_tilemap->draw(screen, bitmap, cliprect, 0, 0); return 0; } @@ -1120,7 +1120,7 @@ UINT32 wecleman_state::screen_update_hotchase(screen_device &screen, bitmap_ind1 /* Draw the background */ if (video_on) - m_k051316_1->zoom_draw(bitmap, cliprect, 0, 0); + m_k051316_1->zoom_draw(screen, bitmap, cliprect, 0, 0); /* Draw the road */ if (video_on) @@ -1132,6 +1132,6 @@ UINT32 wecleman_state::screen_update_hotchase(screen_device &screen, bitmap_ind1 /* Draw the foreground (text) */ if (video_on) - m_k051316_2->zoom_draw(bitmap, cliprect, 0, 0); + m_k051316_2->zoom_draw(screen, bitmap, cliprect, 0, 0); return 0; } diff --git a/src/mame/video/welltris.c b/src/mame/video/welltris.c index 22d5923ab77..b7a1f383535 100644 --- a/src/mame/video/welltris.c +++ b/src/mame/video/welltris.c @@ -98,7 +98,7 @@ UINT32 welltris_state::screen_update_welltris(screen_device &screen, bitmap_ind1 m_char_tilemap->set_scrolly(0, m_scrolly); draw_background(bitmap, cliprect); - m_char_tilemap->draw(bitmap, cliprect, 0, 0); - m_spr_old->turbofrc_draw_sprites(m_spriteram, m_spriteram.bytes(), m_spritepalettebank, machine(), bitmap, cliprect, 0); + m_char_tilemap->draw(screen, bitmap, cliprect, 0, 0); + m_spr_old->turbofrc_draw_sprites(m_spriteram, m_spriteram.bytes(), m_spritepalettebank, machine(), bitmap, cliprect, screen.priority(), 0); return 0; } diff --git a/src/mame/video/wgp.c b/src/mame/video/wgp.c index 8a9b0eb8405..1210ff6c603 100644 --- a/src/mame/video/wgp.c +++ b/src/mame/video/wgp.c @@ -337,7 +337,7 @@ static const UINT8 ylookup[16] = 2, 2, 3, 3, 2, 2, 3, 3 }; -void wgp_state::draw_sprites( bitmap_ind16 &bitmap, const rectangle &cliprect, int y_offs ) +void wgp_state::draw_sprites( screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect, int y_offs ) { UINT16 *spriteram = m_spriteram; int offs, i, j, k; @@ -424,7 +424,7 @@ void wgp_state::draw_sprites( bitmap_ind16 &bitmap, const rectangle &cliprect, i flipx, flipy, curx,cury, zx << 12, zy << 12, - machine().priority_bitmap,primasks[((priority >> 1) &1)],0); /* maybe >> 2 or 0...? */ + screen.priority(),primasks[((priority >> 1) &1)],0); /* maybe >> 2 or 0...? */ } } else @@ -455,7 +455,7 @@ void wgp_state::draw_sprites( bitmap_ind16 &bitmap, const rectangle &cliprect, i flipx, flipy, curx,cury, zx << 12, zy << 12, - machine().priority_bitmap,primasks[((priority >> 1) &1)],0); /* maybe >> 2 or 0...? */ + screen.priority(),primasks[((priority >> 1) &1)],0); /* maybe >> 2 or 0...? */ } } } @@ -508,7 +508,7 @@ INLINE void bryan2_drawscanline( bitmap_ind16 &bitmap, int x, int y, int length, -void wgp_state::wgp_piv_layer_draw( bitmap_ind16 &bitmap, const rectangle &cliprect, int layer, int flags, UINT32 priority ) +void wgp_state::wgp_piv_layer_draw( screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect, int layer, int flags, UINT32 priority ) { bitmap_ind16 &srcbitmap = m_piv_tilemap[layer]->pixmap(); bitmap_ind8 &flagsbitmap = m_piv_tilemap[layer]->flagsmap(); @@ -617,7 +617,7 @@ void wgp_state::wgp_piv_layer_draw( bitmap_ind16 &bitmap, const rectangle &clipr } } - bryan2_drawscanline(bitmap, 0, y, screen_width, scanline, (flags & TILEMAP_DRAW_OPAQUE) ? 0 : 1, ROT0, machine().priority_bitmap, priority); + bryan2_drawscanline(bitmap, 0, y, screen_width, scanline, (flags & TILEMAP_DRAW_OPAQUE) ? 0 : 1, ROT0, screen.priority(), priority); y_index += zoomy; if (!machine_flip) y++; else y--; @@ -688,32 +688,32 @@ UINT32 wgp_state::screen_update_wgp(screen_device &screen, bitmap_ind16 &bitmap, #ifdef MAME_DEBUG if (m_dislayer[layer[0]] == 0) #endif - wgp_piv_layer_draw(bitmap, cliprect, layer[0], TILEMAP_DRAW_OPAQUE, 1); + wgp_piv_layer_draw(screen, bitmap, cliprect, layer[0], TILEMAP_DRAW_OPAQUE, 1); #ifdef MAME_DEBUG if (m_dislayer[layer[1]] == 0) #endif - wgp_piv_layer_draw(bitmap, cliprect, layer[1], 0, 2); + wgp_piv_layer_draw(screen, bitmap, cliprect, layer[1], 0, 2); #ifdef MAME_DEBUG if (m_dislayer[layer[2]] == 0) #endif - wgp_piv_layer_draw(bitmap, cliprect, layer[2], 0, 4); + wgp_piv_layer_draw(screen, bitmap, cliprect, layer[2], 0, 4); - draw_sprites(bitmap, cliprect, 16); + draw_sprites(screen, bitmap, cliprect, 16); /* ... then here we should apply rotation from wgp_sate_ctrl[] to the bitmap before we draw the TC0100SCN layers on it */ layer[0] = m_tc0100scn->bottomlayer(); layer[1] = layer[0] ^ 1; layer[2] = 2; - m_tc0100scn->tilemap_draw(bitmap, cliprect, layer[0], 0, 0); + m_tc0100scn->tilemap_draw(screen, bitmap, cliprect, layer[0], 0, 0); #ifdef MAME_DEBUG if (m_dislayer[3] == 0) #endif - m_tc0100scn->tilemap_draw(bitmap, cliprect, layer[1], 0, 0); - m_tc0100scn->tilemap_draw(bitmap, cliprect, layer[2], 0, 0); + m_tc0100scn->tilemap_draw(screen, bitmap, cliprect, layer[1], 0, 0); + m_tc0100scn->tilemap_draw(screen, bitmap, cliprect, layer[2], 0, 0); #if 0 { diff --git a/src/mame/video/williams.c b/src/mame/video/williams.c index 9ebc620651b..9653667fe71 100644 --- a/src/mame/video/williams.c +++ b/src/mame/video/williams.c @@ -227,7 +227,7 @@ UINT32 williams_state::screen_update_williams2(screen_device &screen, bitmap_rgb int x, y; /* draw the background */ - m_bg_tilemap->draw(bitmap, cliprect, 0, 0); + m_bg_tilemap->draw(screen, bitmap, cliprect, 0, 0); /* fetch the relevant pens */ for (x = 1; x < 16; x++) diff --git a/src/mame/video/wrally.c b/src/mame/video/wrally.c index 8bcf2e52f48..b4c6d8cde01 100644 --- a/src/mame/video/wrally.c +++ b/src/mame/video/wrally.c @@ -188,16 +188,16 @@ UINT32 wrally_state::screen_update_wrally(screen_device &screen, bitmap_ind16 &b } /* draw tilemaps + sprites */ - m_pant[1]->draw(bitmap, cliprect, TILEMAP_DRAW_OPAQUE,0); - m_pant[0]->draw(bitmap, cliprect, TILEMAP_DRAW_CATEGORY(0) | TILEMAP_DRAW_LAYER0,0); - m_pant[0]->draw(bitmap, cliprect, TILEMAP_DRAW_CATEGORY(0) | TILEMAP_DRAW_LAYER1,0); + m_pant[1]->draw(screen, bitmap, cliprect, TILEMAP_DRAW_OPAQUE,0); + m_pant[0]->draw(screen, bitmap, cliprect, TILEMAP_DRAW_CATEGORY(0) | TILEMAP_DRAW_LAYER0,0); + m_pant[0]->draw(screen, bitmap, cliprect, TILEMAP_DRAW_CATEGORY(0) | TILEMAP_DRAW_LAYER1,0); - m_pant[1]->draw(bitmap, cliprect, TILEMAP_DRAW_CATEGORY(1),0); - m_pant[0]->draw(bitmap, cliprect, TILEMAP_DRAW_CATEGORY(1) | TILEMAP_DRAW_LAYER0,0); + m_pant[1]->draw(screen, bitmap, cliprect, TILEMAP_DRAW_CATEGORY(1),0); + m_pant[0]->draw(screen, bitmap, cliprect, TILEMAP_DRAW_CATEGORY(1) | TILEMAP_DRAW_LAYER0,0); draw_sprites(bitmap,cliprect,0); - m_pant[0]->draw(bitmap, cliprect, TILEMAP_DRAW_CATEGORY(1) | TILEMAP_DRAW_LAYER1,0); + m_pant[0]->draw(screen, bitmap, cliprect, TILEMAP_DRAW_CATEGORY(1) | TILEMAP_DRAW_LAYER1,0); draw_sprites(bitmap,cliprect,1); diff --git a/src/mame/video/wwfsstar.c b/src/mame/video/wwfsstar.c index 0023a9a3e7b..7482f60bda9 100644 --- a/src/mame/video/wwfsstar.c +++ b/src/mame/video/wwfsstar.c @@ -216,9 +216,9 @@ UINT32 wwfsstar_state::screen_update_wwfsstar(screen_device &screen, bitmap_ind1 m_bg0_tilemap->set_scrolly(0, m_scrolly ); m_bg0_tilemap->set_scrollx(0, m_scrollx ); - m_bg0_tilemap->draw(bitmap, cliprect, 0,0); + m_bg0_tilemap->draw(screen, bitmap, cliprect, 0,0); draw_sprites(bitmap,cliprect ); - m_fg0_tilemap->draw(bitmap, cliprect, 0,0); + m_fg0_tilemap->draw(screen, bitmap, cliprect, 0,0); return 0; } diff --git a/src/mame/video/wwfwfest.c b/src/mame/video/wwfwfest.c index ad56505ff7a..d77d67e5d80 100644 --- a/src/mame/video/wwfwfest.c +++ b/src/mame/video/wwfwfest.c @@ -263,24 +263,24 @@ UINT32 wwfwfest_state::screen_update_wwfwfest(screen_device &screen, bitmap_ind1 /* todo : which bits of pri are significant to the order */ if (m_pri == 0x007b) { - m_bg0_tilemap->draw(bitmap, cliprect, TILEMAP_DRAW_OPAQUE,0); - m_bg1_tilemap->draw(bitmap, cliprect, 0,0); + m_bg0_tilemap->draw(screen, bitmap, cliprect, TILEMAP_DRAW_OPAQUE,0); + m_bg1_tilemap->draw(screen, bitmap, cliprect, 0,0); draw_sprites(bitmap,cliprect); - m_fg0_tilemap->draw(bitmap, cliprect, 0,0); + m_fg0_tilemap->draw(screen, bitmap, cliprect, 0,0); } if (m_pri == 0x007c) { - m_bg0_tilemap->draw(bitmap, cliprect, TILEMAP_DRAW_OPAQUE,0); + m_bg0_tilemap->draw(screen, bitmap, cliprect, TILEMAP_DRAW_OPAQUE,0); draw_sprites(bitmap,cliprect); - m_bg1_tilemap->draw(bitmap, cliprect, 0,0); - m_fg0_tilemap->draw(bitmap, cliprect, 0,0); + m_bg1_tilemap->draw(screen, bitmap, cliprect, 0,0); + m_fg0_tilemap->draw(screen, bitmap, cliprect, 0,0); } if (m_pri == 0x0078) { - m_bg1_tilemap->draw(bitmap, cliprect, TILEMAP_DRAW_OPAQUE,0); - m_bg0_tilemap->draw(bitmap, cliprect, 0,0); + m_bg1_tilemap->draw(screen, bitmap, cliprect, TILEMAP_DRAW_OPAQUE,0); + m_bg0_tilemap->draw(screen, bitmap, cliprect, 0,0); draw_sprites(bitmap,cliprect); - m_fg0_tilemap->draw(bitmap, cliprect, 0,0); + m_fg0_tilemap->draw(screen, bitmap, cliprect, 0,0); } return 0; } diff --git a/src/mame/video/xain.c b/src/mame/video/xain.c index 30b3348f20b..6958ee7ddb1 100644 --- a/src/mame/video/xain.c +++ b/src/mame/video/xain.c @@ -212,52 +212,52 @@ UINT32 xain_state::screen_update_xain(screen_device &screen, bitmap_ind16 &bitma switch (m_pri&0x7) { case 0: - m_bgram0_tilemap->draw(bitmap, cliprect, TILEMAP_DRAW_OPAQUE,0); - m_bgram1_tilemap->draw(bitmap, cliprect, 0,0); + m_bgram0_tilemap->draw(screen, bitmap, cliprect, TILEMAP_DRAW_OPAQUE,0); + m_bgram1_tilemap->draw(screen, bitmap, cliprect, 0,0); draw_sprites(bitmap,cliprect); - m_char_tilemap->draw(bitmap, cliprect, 0,0); + m_char_tilemap->draw(screen, bitmap, cliprect, 0,0); break; case 1: - m_bgram1_tilemap->draw(bitmap, cliprect, TILEMAP_DRAW_OPAQUE,0); - m_bgram0_tilemap->draw(bitmap, cliprect, 0,0); + m_bgram1_tilemap->draw(screen, bitmap, cliprect, TILEMAP_DRAW_OPAQUE,0); + m_bgram0_tilemap->draw(screen, bitmap, cliprect, 0,0); draw_sprites(bitmap,cliprect); - m_char_tilemap->draw(bitmap, cliprect, 0,0); + m_char_tilemap->draw(screen, bitmap, cliprect, 0,0); break; case 2: - m_char_tilemap->draw(bitmap, cliprect, TILEMAP_DRAW_OPAQUE,0); - m_bgram0_tilemap->draw(bitmap, cliprect, 0,0); + m_char_tilemap->draw(screen, bitmap, cliprect, TILEMAP_DRAW_OPAQUE,0); + m_bgram0_tilemap->draw(screen, bitmap, cliprect, 0,0); draw_sprites(bitmap,cliprect); - m_bgram1_tilemap->draw(bitmap, cliprect, 0,0); + m_bgram1_tilemap->draw(screen, bitmap, cliprect, 0,0); break; case 3: - m_char_tilemap->draw(bitmap, cliprect, TILEMAP_DRAW_OPAQUE,0); - m_bgram1_tilemap->draw(bitmap, cliprect, 0,0); + m_char_tilemap->draw(screen, bitmap, cliprect, TILEMAP_DRAW_OPAQUE,0); + m_bgram1_tilemap->draw(screen, bitmap, cliprect, 0,0); draw_sprites(bitmap,cliprect); - m_bgram0_tilemap->draw(bitmap, cliprect, 0,0); + m_bgram0_tilemap->draw(screen, bitmap, cliprect, 0,0); break; case 4: - m_bgram0_tilemap->draw(bitmap, cliprect, TILEMAP_DRAW_OPAQUE,0); - m_char_tilemap->draw(bitmap, cliprect, 0,0); + m_bgram0_tilemap->draw(screen, bitmap, cliprect, TILEMAP_DRAW_OPAQUE,0); + m_char_tilemap->draw(screen, bitmap, cliprect, 0,0); draw_sprites(bitmap,cliprect); - m_bgram1_tilemap->draw(bitmap, cliprect, 0,0); + m_bgram1_tilemap->draw(screen, bitmap, cliprect, 0,0); break; case 5: - m_bgram1_tilemap->draw(bitmap, cliprect, TILEMAP_DRAW_OPAQUE,0); - m_char_tilemap->draw(bitmap, cliprect, 0,0); + m_bgram1_tilemap->draw(screen, bitmap, cliprect, TILEMAP_DRAW_OPAQUE,0); + m_char_tilemap->draw(screen, bitmap, cliprect, 0,0); draw_sprites(bitmap,cliprect); - m_bgram0_tilemap->draw(bitmap, cliprect, 0,0); + m_bgram0_tilemap->draw(screen, bitmap, cliprect, 0,0); break; case 6: - m_bgram0_tilemap->draw(bitmap, cliprect, TILEMAP_DRAW_OPAQUE,0); + m_bgram0_tilemap->draw(screen, bitmap, cliprect, TILEMAP_DRAW_OPAQUE,0); draw_sprites(bitmap,cliprect); - m_bgram1_tilemap->draw(bitmap, cliprect, 0,0); - m_char_tilemap->draw(bitmap, cliprect, 0,0); + m_bgram1_tilemap->draw(screen, bitmap, cliprect, 0,0); + m_char_tilemap->draw(screen, bitmap, cliprect, 0,0); break; case 7: - m_bgram1_tilemap->draw(bitmap, cliprect, TILEMAP_DRAW_OPAQUE,0); + m_bgram1_tilemap->draw(screen, bitmap, cliprect, TILEMAP_DRAW_OPAQUE,0); draw_sprites(bitmap,cliprect); - m_bgram0_tilemap->draw(bitmap, cliprect, 0,0); - m_char_tilemap->draw(bitmap, cliprect, 0,0); + m_bgram0_tilemap->draw(screen, bitmap, cliprect, 0,0); + m_char_tilemap->draw(screen, bitmap, cliprect, 0,0); break; } return 0; diff --git a/src/mame/video/xevious.c b/src/mame/video/xevious.c index 5b3b4e60384..bc10cbb8ec4 100644 --- a/src/mame/video/xevious.c +++ b/src/mame/video/xevious.c @@ -480,8 +480,8 @@ void xevious_state::draw_sprites(bitmap_ind16 &bitmap,const rectangle &cliprect) UINT32 xevious_state::screen_update_xevious(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect) { - m_bg_tilemap->draw(bitmap, cliprect, 0,0); + m_bg_tilemap->draw(screen, bitmap, cliprect, 0,0); draw_sprites(bitmap,cliprect); - m_fg_tilemap->draw(bitmap, cliprect, 0,0); + m_fg_tilemap->draw(screen, bitmap, cliprect, 0,0); return 0; } diff --git a/src/mame/video/xexex.c b/src/mame/video/xexex.c index 65949a7f4c9..7c96e7a0419 100644 --- a/src/mame/video/xexex.c +++ b/src/mame/video/xexex.c @@ -77,17 +77,17 @@ UINT32 xexex_state::screen_update_xexex(screen_device &screen, bitmap_rgb32 &bit m_k054338->update_all_shadows(0); m_k054338->fill_backcolor(bitmap, 0); - machine().priority_bitmap.fill(0, cliprect); + screen.priority().fill(0, cliprect); for (plane = 0; plane < 4; plane++) { if (layer[plane] < 0) { - m_k053250->draw(bitmap, cliprect, bg_colorbase, 0, 1 << plane); + m_k053250->draw(bitmap, cliprect, bg_colorbase, 0, screen.priority(), 1 << plane); } else if (!m_cur_alpha || layer[plane] != 1) { - m_k056832->tilemap_draw(bitmap, cliprect, layer[plane], 0, 1 << plane); + m_k056832->tilemap_draw(screen, bitmap, cliprect, layer[plane], 0, 1 << plane); } } @@ -99,10 +99,10 @@ UINT32 xexex_state::screen_update_xexex(screen_device &screen, bitmap_rgb32 &bit if (alpha > 0) { - m_k056832->tilemap_draw(bitmap, cliprect, 1, TILEMAP_DRAW_ALPHA(alpha), 0); + m_k056832->tilemap_draw(screen, bitmap, cliprect, 1, TILEMAP_DRAW_ALPHA(alpha), 0); } } - m_k056832->tilemap_draw(bitmap, cliprect, 0, 0, 0); + m_k056832->tilemap_draw(screen, bitmap, cliprect, 0, 0, 0); return 0; } diff --git a/src/mame/video/xmen.c b/src/mame/video/xmen.c index 00bf4114f85..aacf920872a 100644 --- a/src/mame/video/xmen.c +++ b/src/mame/video/xmen.c @@ -90,12 +90,12 @@ UINT32 xmen_state::screen_update_xmen(screen_device &screen, bitmap_ind16 &bitma konami_sortlayers3(layer, m_layerpri); - machine().priority_bitmap.fill(0, cliprect); + screen.priority().fill(0, cliprect); /* note the '+1' in the background color!!! */ bitmap.fill(16 * bg_colorbase + 1, cliprect); - m_k052109->tilemap_draw(bitmap, cliprect, layer[0], 0, 1); - m_k052109->tilemap_draw(bitmap, cliprect, layer[1], 0, 2); - m_k052109->tilemap_draw(bitmap, cliprect, layer[2], 0, 4); + m_k052109->tilemap_draw(screen, bitmap, cliprect, layer[0], 0, 1); + m_k052109->tilemap_draw(screen, bitmap, cliprect, layer[1], 0, 2); + m_k052109->tilemap_draw(screen, bitmap, cliprect, layer[2], 0, 4); /* this isn't supported anymore and it is unsure if still needed; keeping here for reference pdrawgfx_shadow_lowpri = 1; fix shadows of boulders in front of feet */ @@ -210,12 +210,12 @@ void xmen_state::screen_eof_xmen6p(screen_device &screen, bool state) konami_sortlayers3(layer, m_layerpri); - machine().priority_bitmap.fill(0, cliprect); + screen.priority().fill(0, cliprect); /* note the '+1' in the background color!!! */ renderbitmap->fill(16 * bg_colorbase + 1, cliprect); - m_k052109->tilemap_draw(*renderbitmap, cliprect, layer[0], 0, 1); - m_k052109->tilemap_draw(*renderbitmap, cliprect, layer[1], 0, 2); - m_k052109->tilemap_draw(*renderbitmap, cliprect, layer[2], 0, 4); + m_k052109->tilemap_draw(screen, *renderbitmap, cliprect, layer[0], 0, 1); + m_k052109->tilemap_draw(screen, *renderbitmap, cliprect, layer[1], 0, 2); + m_k052109->tilemap_draw(screen, *renderbitmap, cliprect, layer[2], 0, 4); /* this isn't supported anymore and it is unsure if still needed; keeping here for reference pdrawgfx_shadow_lowpri = 1; fix shadows of boulders in front of feet */ diff --git a/src/mame/video/xorworld.c b/src/mame/video/xorworld.c index 081520441a6..c1a1882cede 100644 --- a/src/mame/video/xorworld.c +++ b/src/mame/video/xorworld.c @@ -112,7 +112,7 @@ void xorworld_state::draw_sprites(bitmap_ind16 &bitmap, const rectangle &cliprec UINT32 xorworld_state::screen_update_xorworld(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect) { - m_bg_tilemap->draw(bitmap, cliprect, 0, 0); + m_bg_tilemap->draw(screen, bitmap, cliprect, 0, 0); draw_sprites(bitmap, cliprect); return 0; } diff --git a/src/mame/video/xxmissio.c b/src/mame/video/xxmissio.c index 9a8c85cc50f..2ce6b5f7149 100644 --- a/src/mame/video/xxmissio.c +++ b/src/mame/video/xxmissio.c @@ -135,9 +135,9 @@ UINT32 xxmissio_state::screen_update_xxmissio(screen_device &screen, bitmap_ind1 m_bg_tilemap->set_scrollx(0, m_xscroll * 2); m_bg_tilemap->set_scrolly(0, m_yscroll); - m_bg_tilemap->draw(bitmap, cliprect, 0, 0); + m_bg_tilemap->draw(screen, bitmap, cliprect, 0, 0); draw_sprites(bitmap, cliprect, machine().gfx[1]); - m_fg_tilemap->draw(bitmap, cliprect, 0, 0); + m_fg_tilemap->draw(screen, bitmap, cliprect, 0, 0); return 0; } diff --git a/src/mame/video/xybots.c b/src/mame/video/xybots.c index 3150028944d..cee491c5e81 100644 --- a/src/mame/video/xybots.c +++ b/src/mame/video/xybots.c @@ -95,7 +95,7 @@ UINT32 xybots_state::screen_update_xybots(screen_device &screen, bitmap_ind16 &b m_mob->draw_async(cliprect); /* draw the playfield */ - m_playfield_tilemap->draw(bitmap, cliprect, 0, 0); + m_playfield_tilemap->draw(screen, bitmap, cliprect, 0, 0); // draw and merge the MO bitmap_ind16 &mobitmap = m_mob->bitmap(); @@ -146,6 +146,6 @@ UINT32 xybots_state::screen_update_xybots(screen_device &screen, bitmap_ind16 &b } /* add the alpha on top */ - m_alpha_tilemap->draw(bitmap, cliprect, 0, 0); + m_alpha_tilemap->draw(screen, bitmap, cliprect, 0, 0); return 0; } diff --git a/src/mame/video/xyonix.c b/src/mame/video/xyonix.c index 86937e92f01..0aef96f6773 100644 --- a/src/mame/video/xyonix.c +++ b/src/mame/video/xyonix.c @@ -54,6 +54,6 @@ void xyonix_state::video_start() UINT32 xyonix_state::screen_update_xyonix(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect) { - m_tilemap->draw(bitmap, cliprect, 0, 0); + m_tilemap->draw(screen, bitmap, cliprect, 0, 0); return 0; } diff --git a/src/mame/video/ygv608.c b/src/mame/video/ygv608.c index b7365b61172..8efaaf85732 100644 --- a/src/mame/video/ygv608.c +++ b/src/mame/video/ygv608.c @@ -864,7 +864,7 @@ UINT32 ygv608_device::update_screen(screen_device &screen, bitmap_ind16 &bitmap, } else #endif - m_tilemap_B->draw(*m_work_bitmap, finalclip, 0, 0 ); + m_tilemap_B->draw(screen, *m_work_bitmap, finalclip, 0, 0 ); #ifdef _ENABLE_ROTATE_ZOOM @@ -901,7 +901,7 @@ UINT32 ygv608_device::update_screen(screen_device &screen, bitmap_ind16 &bitmap, (m_regs.s.r11 & r11_prm) == PRM_ASEBDX ) draw_sprites(bitmap, finalclip); - m_tilemap_A->draw(*m_work_bitmap, finalclip, 0, 0 ); + m_tilemap_A->draw(screen, *m_work_bitmap, finalclip, 0, 0 ); #ifdef _ENABLE_ROTATE_ZOOM if( m_regs.s.zron ) diff --git a/src/mame/video/yiear.c b/src/mame/video/yiear.c index f91c4d88542..258cf22bd53 100644 --- a/src/mame/video/yiear.c +++ b/src/mame/video/yiear.c @@ -139,7 +139,7 @@ void yiear_state::draw_sprites( bitmap_ind16 &bitmap, const rectangle &cliprect UINT32 yiear_state::screen_update_yiear(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect) { - m_bg_tilemap->draw(bitmap, cliprect, 0, 0); + m_bg_tilemap->draw(screen, bitmap, cliprect, 0, 0); draw_sprites(bitmap, cliprect); return 0; } diff --git a/src/mame/video/yunsun16.c b/src/mame/video/yunsun16.c index 3539c8d928e..416779c2829 100644 --- a/src/mame/video/yunsun16.c +++ b/src/mame/video/yunsun16.c @@ -128,7 +128,7 @@ void yunsun16_state::video_start() ***************************************************************************/ -void yunsun16_state::draw_sprites( bitmap_ind16 &bitmap, const rectangle &cliprect ) +void yunsun16_state::draw_sprites( screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect ) { int offs; const rectangle &visarea = machine().primary_screen->visible_area(); @@ -176,7 +176,7 @@ void yunsun16_state::draw_sprites( bitmap_ind16 &bitmap, const rectangle &clipre attr & 0x1f, flipx, flipy, x,y, - machine().priority_bitmap, + screen.priority(), pri_mask,15); } } @@ -201,23 +201,23 @@ UINT32 yunsun16_state::screen_update_yunsun16(screen_device &screen, bitmap_ind1 //popmessage("%04X", *m_priorityram); - machine().priority_bitmap.fill(0, cliprect); + screen.priority().fill(0, cliprect); if ((*m_priorityram & 0x0c) == 4) { /* The color of the this layer's transparent pen goes below everything */ - m_tilemap_0->draw(bitmap, cliprect, TILEMAP_DRAW_OPAQUE, 0); - m_tilemap_0->draw(bitmap, cliprect, 0, 1); - m_tilemap_1->draw(bitmap, cliprect, 0, 2); + m_tilemap_0->draw(screen, bitmap, cliprect, TILEMAP_DRAW_OPAQUE, 0); + m_tilemap_0->draw(screen, bitmap, cliprect, 0, 1); + m_tilemap_1->draw(screen, bitmap, cliprect, 0, 2); } else if ((*m_priorityram & 0x0c) == 8) { /* The color of the this layer's transparent pen goes below everything */ - m_tilemap_1->draw(bitmap, cliprect, TILEMAP_DRAW_OPAQUE, 0); - m_tilemap_1->draw(bitmap, cliprect, 0, 1); - m_tilemap_0->draw(bitmap, cliprect, 0, 2); + m_tilemap_1->draw(screen, bitmap, cliprect, TILEMAP_DRAW_OPAQUE, 0); + m_tilemap_1->draw(screen, bitmap, cliprect, 0, 1); + m_tilemap_0->draw(screen, bitmap, cliprect, 0, 2); } - draw_sprites(bitmap, cliprect); + draw_sprites(screen, bitmap, cliprect); return 0; } diff --git a/src/mame/video/yunsung8.c b/src/mame/video/yunsung8.c index 1bdbb8cd4dc..9687fa3039e 100644 --- a/src/mame/video/yunsung8.c +++ b/src/mame/video/yunsung8.c @@ -201,12 +201,12 @@ if (machine().input().code_pressed(KEYCODE_Z)) #endif if (layers_ctrl & 1) - m_tilemap_0->draw(bitmap, cliprect, 0, 0); + m_tilemap_0->draw(screen, bitmap, cliprect, 0, 0); else bitmap.fill(0, cliprect); if (layers_ctrl & 2) - m_tilemap_1->draw(bitmap, cliprect, 0, 0); + m_tilemap_1->draw(screen, bitmap, cliprect, 0, 0); return 0; } diff --git a/src/mame/video/zac2650.c b/src/mame/video/zac2650.c index f0bcc9edb51..197e91738a2 100644 --- a/src/mame/video/zac2650.c +++ b/src/mame/video/zac2650.c @@ -201,7 +201,7 @@ void zac2650_state::draw_sprites(bitmap_ind16 &bitmap, const rectangle &cliprect UINT32 zac2650_state::screen_update_tinvader(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect) { - m_bg_tilemap->draw(bitmap, cliprect, 0, 0); + m_bg_tilemap->draw(screen, bitmap, cliprect, 0, 0); draw_sprites(bitmap, cliprect); return 0; } diff --git a/src/mame/video/zaccaria.c b/src/mame/video/zaccaria.c index 3b6e7df33db..16c7ee97331 100644 --- a/src/mame/video/zaccaria.c +++ b/src/mame/video/zaccaria.c @@ -242,7 +242,7 @@ void zaccaria_state::draw_sprites(bitmap_ind16 &bitmap,const rectangle &cliprect UINT32 zaccaria_state::screen_update_zaccaria(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect) { - m_bg_tilemap->draw(bitmap, cliprect, 0,0); + m_bg_tilemap->draw(screen, bitmap, cliprect, 0,0); // 3 layers of sprites, each with their own palette and priorities // Not perfect yet, does spriteram(1) layer have a priority bit somewhere? diff --git a/src/mame/video/zaxxon.c b/src/mame/video/zaxxon.c index c96cb85b3ee..a3e66fa566c 100644 --- a/src/mame/video/zaxxon.c +++ b/src/mame/video/zaxxon.c @@ -449,7 +449,7 @@ UINT32 zaxxon_state::screen_update_zaxxon(screen_device &screen, bitmap_ind16 &b { draw_background(bitmap, cliprect, TRUE); draw_sprites(bitmap, cliprect, 0x140, 0x180); - m_fg_tilemap->draw(bitmap, cliprect, 0, 0); + m_fg_tilemap->draw(screen, bitmap, cliprect, 0, 0); return 0; } @@ -458,7 +458,7 @@ UINT32 zaxxon_state::screen_update_futspy(screen_device &screen, bitmap_ind16 &b { draw_background(bitmap, cliprect, TRUE); draw_sprites(bitmap, cliprect, 0x180, 0x180); - m_fg_tilemap->draw(bitmap, cliprect, 0, 0); + m_fg_tilemap->draw(screen, bitmap, cliprect, 0, 0); return 0; } @@ -467,7 +467,7 @@ UINT32 zaxxon_state::screen_update_razmataz(screen_device &screen, bitmap_ind16 { draw_background(bitmap, cliprect, FALSE); draw_sprites(bitmap, cliprect, 0x140, 0x180); - m_fg_tilemap->draw(bitmap, cliprect, 0, 0); + m_fg_tilemap->draw(screen, bitmap, cliprect, 0, 0); return 0; } @@ -476,6 +476,6 @@ UINT32 zaxxon_state::screen_update_congo(screen_device &screen, bitmap_ind16 &bi { draw_background(bitmap, cliprect, TRUE); draw_sprites(bitmap, cliprect, 0x280, 0x180); - m_fg_tilemap->draw(bitmap, cliprect, 0, 0); + m_fg_tilemap->draw(screen, bitmap, cliprect, 0, 0); return 0; } diff --git a/src/mame/video/zerozone.c b/src/mame/video/zerozone.c index 8de160ef134..08a0a32e039 100644 --- a/src/mame/video/zerozone.c +++ b/src/mame/video/zerozone.c @@ -41,6 +41,6 @@ void zerozone_state::video_start() UINT32 zerozone_state::screen_update(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect) { - m_zz_tilemap->draw(bitmap, cliprect, 0, 0); + m_zz_tilemap->draw(screen, bitmap, cliprect, 0, 0); return 0; } diff --git a/src/mame/video/zodiack.c b/src/mame/video/zodiack.c index d981584acef..161621e7de3 100644 --- a/src/mame/video/zodiack.c +++ b/src/mame/video/zodiack.c @@ -177,8 +177,8 @@ UINT32 zodiack_state::screen_update( screen_device &screen, bitmap_ind16 &bitmap for (int i = 0; i < 32; i++) m_fg_tilemap->set_scrolly(i, m_attributeram[i * 2]); - m_bg_tilemap->draw(bitmap, cliprect, 0, 0); - m_fg_tilemap->draw(bitmap, cliprect, 0, 0); + m_bg_tilemap->draw(screen, bitmap, cliprect, 0, 0); + m_fg_tilemap->draw(screen, bitmap, cliprect, 0, 0); draw_bullets(bitmap, cliprect); draw_sprites(bitmap, cliprect); return 0; diff --git a/src/mess/drivers/clcd.c b/src/mess/drivers/clcd.c index 9c6c638a6fa..8a72a6a5a84 100644 --- a/src/mess/drivers/clcd.c +++ b/src/mess/drivers/clcd.c @@ -70,7 +70,7 @@ public: UINT32 screen_update(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect) { m_tilemap->mark_all_dirty(); - m_tilemap->draw(bitmap, cliprect, 0, 0); + m_tilemap->draw(screen, bitmap, cliprect, 0, 0); return 0; } diff --git a/src/mess/includes/apple1.h b/src/mess/includes/apple1.h index bfb76a83682..66e75394dcf 100644 --- a/src/mess/includes/apple1.h +++ b/src/mess/includes/apple1.h @@ -62,7 +62,7 @@ public: DECLARE_WRITE8_MEMBER(apple1_pia0_dsp_write_signal); required_device m_maincpu; required_device m_cassette; - void terminal_draw(bitmap_ind16 &dest, const rectangle &cliprect, terminal_t *terminal); + void terminal_draw(screen_device &screen, bitmap_ind16 &dest, const rectangle &cliprect, terminal_t *terminal); void verify_coords(terminal_t *terminal, int x, int y); void terminal_putchar(terminal_t *terminal, int x, int y, int ch); int terminal_getchar(terminal_t *terminal, int x, int y); diff --git a/src/mess/video/apple1.c b/src/mess/video/apple1.c index e0430c3ee49..0caa6412e5c 100644 --- a/src/mess/video/apple1.c +++ b/src/mess/video/apple1.c @@ -89,10 +89,10 @@ TILE_GET_INFO_MEMBER(apple1_state::terminal_gettileinfo) 0); /* flags */ } -void apple1_state::terminal_draw(bitmap_ind16 &dest, const rectangle &cliprect, terminal_t *terminal) +void apple1_state::terminal_draw(screen_device &screen, bitmap_ind16 &dest, const rectangle &cliprect, terminal_t *terminal) { m_current_terminal = terminal; - terminal->tm->draw(dest, cliprect, 0, 0); + terminal->tm->draw(screen, dest, cliprect, 0, 0); m_current_terminal = NULL; } @@ -386,6 +386,6 @@ void apple1_state::apple1_vh_cursor_blink () UINT32 apple1_state::screen_update_apple1(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect) { apple1_vh_cursor_blink(); - terminal_draw(bitmap, cliprect, m_terminal); + terminal_draw(screen, bitmap, cliprect, m_terminal); return 0; } diff --git a/src/mess/video/aquarius.c b/src/mess/video/aquarius.c index ee6d2700078..68d99ad7148 100644 --- a/src/mess/video/aquarius.c +++ b/src/mess/video/aquarius.c @@ -95,7 +95,7 @@ void aquarius_state::video_start() UINT32 aquarius_state::screen_update_aquarius(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect) { - m_tilemap->draw(bitmap, cliprect, 0, 0); + m_tilemap->draw(screen, bitmap, cliprect, 0, 0); return 0; } diff --git a/src/mess/video/microtan.c b/src/mess/video/microtan.c index 8c250604aec..44284ff5f91 100644 --- a/src/mess/video/microtan.c +++ b/src/mess/video/microtan.c @@ -50,6 +50,6 @@ void microtan_state::video_start() UINT32 microtan_state::screen_update_microtan(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect) { - m_bg_tilemap->draw(bitmap, cliprect, 0, 0); + m_bg_tilemap->draw(screen, bitmap, cliprect, 0, 0); return 0; } diff --git a/src/mess/video/x68k.c b/src/mess/video/x68k.c index 93886d8bc69..5553ff43277 100644 --- a/src/mess/video/x68k.c +++ b/src/mess/video/x68k.c @@ -1209,13 +1209,13 @@ UINT32 x68k_state::screen_update_x68000(screen_device &screen, bitmap_ind16 &bit { x68k_bg0->set_scrollx(0,(m_spritereg[0x402] - m_crtc.hbegin - m_crtc.bg_hshift) & 0x3ff); x68k_bg0->set_scrolly(0,(m_spritereg[0x403] - m_crtc.vbegin) & 0x3ff); - x68k_bg0->draw(bitmap,rect,0,0); + x68k_bg0->draw(screen, bitmap,rect,0,0); } else { x68k_bg1->set_scrollx(0,(m_spritereg[0x402] - m_crtc.hbegin - m_crtc.bg_hshift) & 0x3ff); x68k_bg1->set_scrolly(0,(m_spritereg[0x403] - m_crtc.vbegin) & 0x3ff); - x68k_bg1->draw(bitmap,rect,0,0); + x68k_bg1->draw(screen, bitmap,rect,0,0); } } x68k_draw_sprites(bitmap,2,rect); @@ -1225,13 +1225,13 @@ UINT32 x68k_state::screen_update_x68000(screen_device &screen, bitmap_ind16 &bit { x68k_bg0->set_scrollx(0,(m_spritereg[0x400] - m_crtc.hbegin - m_crtc.bg_hshift) & 0x3ff); x68k_bg0->set_scrolly(0,(m_spritereg[0x401] - m_crtc.vbegin) & 0x3ff); - x68k_bg0->draw(bitmap,rect,0,0); + x68k_bg0->draw(screen, bitmap,rect,0,0); } else { x68k_bg1->set_scrollx(0,(m_spritereg[0x400] - m_crtc.hbegin - m_crtc.bg_hshift) & 0x3ff); x68k_bg1->set_scrolly(0,(m_spritereg[0x401] - m_crtc.vbegin) & 0x3ff); - x68k_bg1->draw(bitmap,rect,0,0); + x68k_bg1->draw(screen, bitmap,rect,0,0); } } x68k_draw_sprites(bitmap,3,rect);