static void video_update_common( struct mame_bitmap *bitmap, const struct rectangle *cliprect, int bROZ ) { const int xadjust[4] = { 0,2,3,4 }; int i,pri; handle_mcu(); namconb1_install_palette(); fillbitmap(priority_bitmap,0,NULL); /* not actually used (yet) */ /* I have no idea what the background color should be, but I doubt it ever pokes through. */ fillbitmap( bitmap, 0, 0 ); for( i=0; i<6; i++ ) { int tilemap_color = nth_word32( &namconb1_scrollram32[0x30/4], i )&7; if( tilemap_palette_bank[i]!= tilemap_color ) { tilemap_palette_bank[i] = tilemap_color; tilemap_mark_all_tiles_dirty( background[i] ); } if( i<4 ) { tilemap_set_scrollx( background[i],0,namconb1_scrollram32[i*2]+48-xadjust[i] ); tilemap_set_scrolly( background[i],0,namconb1_scrollram32[i*2+1]+24 ); } } for( pri=0; pri<8; pri++ ) { if( bROZ ) { namco_roz_draw( bitmap,cliprect,pri ); } for( i=0; i<6; i++ ) { if( nth_word32( &namconb1_scrollram32[0x20/4],i ) == pri ) { tilemap_draw( bitmap,cliprect,background[i],0,0/*1<<pri*/ ); } } namco_obj_draw( bitmap, cliprect, pri ); } } /* video_update_common */
static INLINE void tilemapNB1_get_info(int tile_index,int tilemap_color,const data32_t *tilemap_videoram) { data16_t tile = nth_word32( tilemap_videoram, tile_index ); SET_TILE_INFO( NAMCONB1_TILEGFX, tile, tilemap_color, 0) tile_info.mask_data = 8*tile + mpMaskData; }
INLINE void tilemapFL_get_info(int tile_index,int which,const data32_t *tilemap_videoram) { int code = nth_word32( tilemap_videoram, tile_index ); int mangle; code &= 0x1fff; mangle = code; SET_TILE_INFO( NAMCONB1_TILEGFX,mangle,tilemap_palette_bank[which],0) tile_info.mask_data = 8*code + mpMaskData; } /* tilemapFL_get_info */
static INLINE void tilemapNB2_get_info(int tile_index,int which,const data32_t *tilemap_videoram) { data16_t tile = nth_word32( tilemap_videoram, tile_index ); int mangle; if( namcos2_gametype == NAMCONB2_MACH_BREAKERS ) { mangle = tile; } else { /* the pixmap index is mangled, the transparency bitmask index is not */ mangle = tile&~(0x140); if( tile&0x100 ) mangle |= 0x040; if( tile&0x040 ) mangle |= 0x100; } SET_TILE_INFO( NAMCONB1_TILEGFX,mangle,tilemap_palette_bank[which],0) tile_info.mask_data = 8*tile + mpMaskData; } /* tilemapNB2_get_info */