void namco_tilemap_draw( bitmap_t *bitmap, const rectangle *cliprect, int pri ) { int i; for( i=0; i<6; i++ ) { /* note: priority is only in range 0..7, but Point Blank uses 0xf to hide a layer */ if( (mTilemapInfo.control[0x20/2+i]&0xf) == pri ) { int color = mTilemapInfo.control[0x30/2+i] & 0x07; tilemap_set_palette_offset( mTilemapInfo.tmap[i], color*256 ); tilemap_draw(bitmap,cliprect,mTilemapInfo.tmap[i],0,0); } } } /* namco_tilemap_draw */
static void armwrest_draw_big_sprite(running_machine &machine, bitmap_t *bitmap, const rectangle *cliprect, int palette) { punchout_state *state = machine.driver_data<punchout_state>(); int zoom; zoom = state->m_spr1_ctrlram[0] + 256 * (state->m_spr1_ctrlram[1] & 0x0f); if (zoom) { int sx,sy; UINT32 startx,starty; int incxx,incyy; tilemap_t *_tilemap; sx = 4096 - (state->m_spr1_ctrlram[2] + 256 * (state->m_spr1_ctrlram[3] & 0x0f)); if (sx > 2048) sx -= 4096; sy = -(state->m_spr1_ctrlram[4] + 256 * (state->m_spr1_ctrlram[5] & 1)); if (sy <= -256 + zoom/0x40) sy += 512; sy += 12; incxx = zoom << 6; incyy = zoom << 6; startx = -sx * 0x4000; starty = -sy * 0x10000; startx += 3740 * zoom; /* adjustment to match the screen shots */ starty -= 178 * zoom; /* and make the hall of fame picture nice */ if (state->m_spr1_ctrlram[6] & 1) /* flip x */ { _tilemap = state->m_spr1_tilemap_flipx; startx = ((32 * 8) << 16) - startx - 1; incxx = -incxx; } else _tilemap = state->m_spr1_tilemap; tilemap_set_palette_offset(_tilemap, 0x100 * palette); tilemap_draw_roz(bitmap,cliprect,_tilemap, startx,starty + 0x200*(2) * zoom, incxx,0,0,incyy, /* zoom, no rotation */ 0, /* no wraparound */ 0,0); } }