diff options
Diffstat (limited to 'src/mame/video/aerofgt.cpp')
-rw-r--r-- | src/mame/video/aerofgt.cpp | 466 |
1 files changed, 201 insertions, 265 deletions
diff --git a/src/mame/video/aerofgt.cpp b/src/mame/video/aerofgt.cpp index 58da861db98..2fc3ccfc1dd 100644 --- a/src/mame/video/aerofgt.cpp +++ b/src/mame/video/aerofgt.cpp @@ -12,7 +12,7 @@ TILE_GET_INFO_MEMBER(aerofgt_state::get_pspikes_tile_info) { - uint16_t code = m_bg1videoram[tile_index]; + uint16_t code = m_vram[0][tile_index]; int bank = (code & 0x1000) >> 12; SET_TILE_INFO_MEMBER(0, (code & 0x0fff) + (m_gfxbank[bank] << 12), @@ -20,49 +20,33 @@ TILE_GET_INFO_MEMBER(aerofgt_state::get_pspikes_tile_info) 0); } -TILE_GET_INFO_MEMBER(aerofgt_state::karatblz_bg1_tile_info) -{ - uint16_t code = m_bg1videoram[tile_index]; - SET_TILE_INFO_MEMBER(0, - (code & 0x1fff) + (m_gfxbank[0] << 13), - (code & 0xe000) >> 13, - 0); -} - /* also spinlbrk */ -TILE_GET_INFO_MEMBER(aerofgt_state::karatblz_bg2_tile_info) +template<int Layer> +TILE_GET_INFO_MEMBER(aerofgt_state::karatblz_tile_info) { - uint16_t code = m_bg2videoram[tile_index]; - SET_TILE_INFO_MEMBER(1, - (code & 0x1fff) + (m_gfxbank[1] << 13), + uint16_t code = m_vram[Layer][tile_index]; + SET_TILE_INFO_MEMBER(Layer, + (code & 0x1fff) + (m_gfxbank[Layer] << 13), (code & 0xe000) >> 13, 0); } -TILE_GET_INFO_MEMBER(aerofgt_state::spinlbrk_bg1_tile_info) +template<int Layer> +TILE_GET_INFO_MEMBER(aerofgt_state::spinlbrk_tile_info) { - uint16_t code = m_bg1videoram[tile_index]; - SET_TILE_INFO_MEMBER(0, - (code & 0x0fff) + (m_gfxbank[0] << 12), + uint16_t code = m_vram[Layer][tile_index]; + SET_TILE_INFO_MEMBER(Layer, + (code & 0x0fff) + (m_gfxbank[Layer] << 12), (code & 0xf000) >> 12, 0); } -TILE_GET_INFO_MEMBER(aerofgt_state::get_bg1_tile_info) -{ - uint16_t code = m_bg1videoram[tile_index]; - int bank = (code & 0x1800) >> 11; - SET_TILE_INFO_MEMBER(0, - (code & 0x07ff) + (m_gfxbank[bank] << 11), - (code & 0xe000) >> 13, - 0); -} - -TILE_GET_INFO_MEMBER(aerofgt_state::get_bg2_tile_info) +template<int Layer> +TILE_GET_INFO_MEMBER(aerofgt_state::get_tile_info) { - uint16_t code = m_bg2videoram[tile_index]; - int bank = 4 + ((code & 0x1800) >> 11); - SET_TILE_INFO_MEMBER(1, + uint16_t code = m_vram[Layer][tile_index]; + int bank = (Layer << 2) + (code & 0x1800) >> 11; + SET_TILE_INFO_MEMBER(Layer, (code & 0x07ff) + (m_gfxbank[bank] << 11), (code & 0xe000) >> 13, 0); @@ -76,15 +60,12 @@ TILE_GET_INFO_MEMBER(aerofgt_state::get_bg2_tile_info) ***************************************************************************/ - void aerofgt_state::aerofgt_register_state_globals( ) { save_item(NAME(m_gfxbank)); save_item(NAME(m_bank)); - save_item(NAME(m_bg1scrollx)); - save_item(NAME(m_bg1scrolly)); - save_item(NAME(m_bg2scrollx)); - save_item(NAME(m_bg2scrolly)); + save_item(NAME(m_scrollx)); + save_item(NAME(m_scrolly)); save_item(NAME(m_flip_screen)); save_item(NAME(m_charpalettebank)); save_item(NAME(m_spritepalettebank)); @@ -92,7 +73,7 @@ void aerofgt_state::aerofgt_register_state_globals( ) VIDEO_START_MEMBER(aerofgt_state,pspikes) { - m_bg1_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(aerofgt_state::get_pspikes_tile_info),this),TILEMAP_SCAN_ROWS,8,8,64,32); + m_tilemap[0] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(aerofgt_state::get_pspikes_tile_info),this),TILEMAP_SCAN_ROWS,8,8,64,32); /* no bg2 in this game */ m_sprite_gfx = 1; @@ -101,13 +82,12 @@ VIDEO_START_MEMBER(aerofgt_state,pspikes) save_item(NAME(m_spikes91_lookup)); } - VIDEO_START_MEMBER(aerofgt_state,karatblz) { - m_bg1_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(aerofgt_state::karatblz_bg1_tile_info),this),TILEMAP_SCAN_ROWS, 8,8,64,64); - m_bg2_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(aerofgt_state::karatblz_bg2_tile_info),this),TILEMAP_SCAN_ROWS,8,8,64,64); + m_tilemap[0] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(aerofgt_state::karatblz_tile_info<0>),this),TILEMAP_SCAN_ROWS,8,8,64,64); + m_tilemap[1] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(aerofgt_state::karatblz_tile_info<1>),this),TILEMAP_SCAN_ROWS,8,8,64,64); - m_bg2_tilemap->set_transparent_pen(15); + m_tilemap[1]->set_transparent_pen(15); m_spritepalettebank = 0; m_sprite_gfx = 2; @@ -116,28 +96,25 @@ VIDEO_START_MEMBER(aerofgt_state,karatblz) VIDEO_START_MEMBER(aerofgt_state,spinlbrk) { - m_bg1_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(aerofgt_state::spinlbrk_bg1_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 64, 64); - m_bg2_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(aerofgt_state::karatblz_bg2_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 64, 64); + m_tilemap[0] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(aerofgt_state::spinlbrk_tile_info<0>),this), TILEMAP_SCAN_ROWS, 8, 8, 64, 64); + m_tilemap[1] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(aerofgt_state::karatblz_tile_info<1>),this), TILEMAP_SCAN_ROWS, 8, 8, 64, 64); - m_bg2_tilemap->set_transparent_pen(15); + m_tilemap[1]->set_transparent_pen(15); m_spritepalettebank = 0; m_sprite_gfx = 2; /* sprite maps are hardcoded in this game */ - /* enemy sprites use ROM instead of RAM */ - m_spriteram2.set_target(reinterpret_cast<uint16_t *>(memregion("gfx5")->base()), 0x20000); - aerofgt_register_state_globals(); } VIDEO_START_MEMBER(aerofgt_state,turbofrc) { - m_bg1_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(aerofgt_state::get_bg1_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 64, 64); - m_bg2_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(aerofgt_state::get_bg2_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 64, 64); + m_tilemap[0] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(aerofgt_state::get_tile_info<0>),this), TILEMAP_SCAN_ROWS, 8, 8, 64, 64); + m_tilemap[1] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(aerofgt_state::get_tile_info<1>),this), TILEMAP_SCAN_ROWS, 8, 8, 64, 64); - m_bg2_tilemap->set_transparent_pen(15); + m_tilemap[1]->set_transparent_pen(15); m_spritepalettebank = 0; m_sprite_gfx = 2; @@ -149,23 +126,26 @@ VIDEO_START_MEMBER(aerofgt_state,turbofrc) /* new hw type */ uint32_t aerofgt_state::aerofgt_tile_callback( uint32_t code ) { - return m_spriteram1[code&0x7fff]; + return m_sprlookupram[0][code&0x7fff]; } - - /* old hw type */ uint32_t aerofgt_state::aerofgt_old_tile_callback( uint32_t code ) { - return m_spriteram1[code % (m_spriteram1.bytes()/2)]; + return m_sprlookupram[0][code % (m_sprlookupram[0].bytes()/2)]; } uint32_t aerofgt_state::aerofgt_ol2_tile_callback( uint32_t code ) { - return m_spriteram2[code % (m_spriteram2.bytes()/2)]; + return m_sprlookupram[1][code % (m_sprlookupram[1].bytes()/2)]; } +uint32_t aerofgt_state::spinbrk_tile_callback( uint32_t code ) +{ + /* enemy sprites use ROM instead of RAM */ + return m_sprlookuprom[code % m_sprlookuprom.length()]; +} /*************************************************************************** @@ -174,93 +154,56 @@ uint32_t aerofgt_state::aerofgt_ol2_tile_callback( uint32_t code ) ***************************************************************************/ -WRITE16_MEMBER(aerofgt_state::aerofgt_bg1videoram_w) -{ - COMBINE_DATA(&m_bg1videoram[offset]); - m_bg1_tilemap->mark_tile_dirty(offset); -} - -WRITE16_MEMBER(aerofgt_state::aerofgt_bg2videoram_w) -{ - COMBINE_DATA(&m_bg2videoram[offset]); - m_bg2_tilemap->mark_tile_dirty(offset); -} - - -void aerofgt_state::setbank( tilemap_t *tmap, int num, int bank ) +void aerofgt_state::setbank( int layer, int num, int bank ) { if (m_gfxbank[num] != bank) { m_gfxbank[num] = bank; - tmap->mark_all_dirty(); + m_tilemap[layer]->mark_all_dirty(); } } WRITE8_MEMBER(aerofgt_state::pspikes_gfxbank_w) { - setbank(m_bg1_tilemap, 0, (data & 0xf0) >> 4); - setbank(m_bg1_tilemap, 1, data & 0x0f); + setbank(0, 0, (data & 0xf0) >> 4); + setbank(0, 1, data & 0x0f); } WRITE8_MEMBER(aerofgt_state::karatblz_gfxbank_w) { - setbank(m_bg1_tilemap, 0, (data & 0x01)); - setbank(m_bg2_tilemap, 1, (data & 0x08) >> 3); + setbank(0, 0, (data & 0x01)); + setbank(1, 1, (data & 0x08) >> 3); } WRITE8_MEMBER(aerofgt_state::spinlbrk_gfxbank_w) { - setbank(m_bg1_tilemap, 0, (data & 0x07)); - setbank(m_bg2_tilemap, 1, (data & 0x38) >> 3); + setbank(0, 0, (data & 0x07)); + setbank(1, 1, (data & 0x38) >> 3); } WRITE16_MEMBER(aerofgt_state::turbofrc_gfxbank_w) { - tilemap_t *tmap = (offset == 0) ? m_bg1_tilemap : m_bg2_tilemap; - data = COMBINE_DATA(&m_bank[offset]); - setbank(tmap, 4 * offset + 0, (data >> 0) & 0x0f); - setbank(tmap, 4 * offset + 1, (data >> 4) & 0x0f); - setbank(tmap, 4 * offset + 2, (data >> 8) & 0x0f); - setbank(tmap, 4 * offset + 3, (data >> 12) & 0x0f); + setbank(offset, 4 * offset + 0, (data >> 0) & 0x0f); + setbank(offset, 4 * offset + 1, (data >> 4) & 0x0f); + setbank(offset, 4 * offset + 2, (data >> 8) & 0x0f); + setbank(offset, 4 * offset + 3, (data >> 12) & 0x0f); } WRITE16_MEMBER(aerofgt_state::aerofgt_gfxbank_w) { - tilemap_t *tmap = (offset < 2) ? m_bg1_tilemap : m_bg2_tilemap; - data = COMBINE_DATA(&m_bank[offset]); - setbank(tmap, 2 * offset + 0, (data >> 8) & 0xff); - setbank(tmap, 2 * offset + 1, (data >> 0) & 0xff); + setbank(offset >> 1, 2 * offset + 0, (data >> 8) & 0xff); + setbank(offset >> 1, 2 * offset + 1, (data >> 0) & 0xff); } WRITE8_MEMBER(aerofgt_state::kickball_gfxbank_w) { // I strongly doubt this logic is correct - setbank(m_bg1_tilemap, 0, (data & 0x0f)&~0x01); - setbank(m_bg1_tilemap, 1, (data & 0x0f)); -} - -WRITE16_MEMBER(aerofgt_state::aerofgt_bg1scrollx_w) -{ - COMBINE_DATA(&m_bg1scrollx); -} - -WRITE16_MEMBER(aerofgt_state::aerofgt_bg1scrolly_w) -{ - COMBINE_DATA(&m_bg1scrolly); -} - -WRITE16_MEMBER(aerofgt_state::aerofgt_bg2scrollx_w) -{ - COMBINE_DATA(&m_bg2scrollx); -} - -WRITE16_MEMBER(aerofgt_state::aerofgt_bg2scrolly_w) -{ - COMBINE_DATA(&m_bg2scrolly); + setbank(0, 0, (data & 0x0f)&~0x01); + setbank(0, 1, (data & 0x0f)); } WRITE8_MEMBER(aerofgt_state::pspikes_palette_bank_w) @@ -269,25 +212,25 @@ WRITE8_MEMBER(aerofgt_state::pspikes_palette_bank_w) if (m_charpalettebank != (data & 0x1c) >> 2) { m_charpalettebank = (data & 0x1c) >> 2; - m_bg1_tilemap->mark_all_dirty(); + m_tilemap[0]->mark_all_dirty(); } m_flip_screen = BIT(data, 7); - m_bg1_tilemap->set_flip(m_flip_screen ? TILEMAP_FLIPX | TILEMAP_FLIPY : 0); + m_tilemap[0]->set_flip(m_flip_screen ? TILEMAP_FLIPX | TILEMAP_FLIPY : 0); } WRITE8_MEMBER(aerofgt_state::spinlbrk_flip_screen_w) { m_flip_screen = BIT(data, 7); - m_bg1_tilemap->set_flip(m_flip_screen ? TILEMAP_FLIPX | TILEMAP_FLIPY : 0); - m_bg2_tilemap->set_flip(m_flip_screen ? TILEMAP_FLIPX | TILEMAP_FLIPY : 0); + m_tilemap[0]->set_flip(m_flip_screen ? TILEMAP_FLIPX | TILEMAP_FLIPY : 0); + m_tilemap[1]->set_flip(m_flip_screen ? TILEMAP_FLIPX | TILEMAP_FLIPY : 0); } WRITE8_MEMBER(aerofgt_state::turbofrc_flip_screen_w) { m_flip_screen = BIT(data, 7); - m_bg1_tilemap->set_flip(m_flip_screen ? TILEMAP_FLIPX | TILEMAP_FLIPY : 0); - m_bg2_tilemap->set_flip(m_flip_screen ? TILEMAP_FLIPX | TILEMAP_FLIPY : 0); + m_tilemap[0]->set_flip(m_flip_screen ? TILEMAP_FLIPX | TILEMAP_FLIPY : 0); + m_tilemap[1]->set_flip(m_flip_screen ? TILEMAP_FLIPX | TILEMAP_FLIPY : 0); // bit 6 = ? } @@ -304,39 +247,39 @@ uint32_t aerofgt_state::screen_update_pspikes(screen_device &screen, bitmap_ind1 { int i, scrolly; - m_bg1_tilemap->set_scroll_rows(256); - scrolly = m_bg1scrolly; + m_tilemap[0]->set_scroll_rows(256); + scrolly = m_scrolly[0]; for (i = 0; i < 256; i++) - m_bg1_tilemap->set_scrollx((i + scrolly) & 0xff, m_rasterram[i]); - m_bg1_tilemap->set_scrolly(0, scrolly); + m_tilemap[0]->set_scrollx((i + scrolly) & 0xff, m_rasterram[i]); + m_tilemap[0]->set_scrolly(0, scrolly); screen.priority().fill(0, cliprect); - m_bg1_tilemap->draw(screen, bitmap, cliprect, 0, 0); - m_spr_old->turbofrc_draw_sprites(m_spriteram3,m_spriteram3.bytes(),m_spritepalettebank, bitmap, cliprect, screen.priority(), 1, m_flip_screen); - m_spr_old->turbofrc_draw_sprites(m_spriteram3,m_spriteram3.bytes(),m_spritepalettebank, bitmap, cliprect, screen.priority(), 0, m_flip_screen); + m_tilemap[0]->draw(screen, bitmap, cliprect, 0, 0); + m_spr_old[0]->turbofrc_draw_sprites(m_spriteram,m_spriteram.bytes(),m_spritepalettebank, bitmap, cliprect, screen.priority(), 1, m_flip_screen); + m_spr_old[0]->turbofrc_draw_sprites(m_spriteram,m_spriteram.bytes(),m_spritepalettebank, bitmap, cliprect, screen.priority(), 0, m_flip_screen); return 0; } uint32_t aerofgt_state::screen_update_karatblz(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect) { - m_bg1_tilemap->set_scrollx(0, m_bg1scrollx - 8); - m_bg1_tilemap->set_scrolly(0, m_bg1scrolly); - m_bg2_tilemap->set_scrollx(0, m_bg2scrollx - 4); - m_bg2_tilemap->set_scrolly(0, m_bg2scrolly); + m_tilemap[0]->set_scrollx(0, m_scrollx[0] - 8); + m_tilemap[0]->set_scrolly(0, m_scrolly[0]); + m_tilemap[1]->set_scrollx(0, m_scrollx[1] - 4); + m_tilemap[1]->set_scrolly(0, m_scrolly[1]); screen.priority().fill(0, cliprect); - m_bg1_tilemap->draw(screen, bitmap, cliprect, 0, 0); - m_bg2_tilemap->draw(screen, bitmap, cliprect, 0, 0); + m_tilemap[0]->draw(screen, bitmap, cliprect, 0, 0); + m_tilemap[1]->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, bitmap, cliprect, screen.priority(), 1, m_flip_screen); - m_spr_old2->turbofrc_draw_sprites(m_spriteram3+0x200,m_spriteram3.bytes()/2,m_spritepalettebank, bitmap, cliprect, screen.priority(), 0, m_flip_screen); + m_spr_old[1]->turbofrc_draw_sprites(m_spriteram+0x200,m_spriteram.bytes()/2,m_spritepalettebank, bitmap, cliprect, screen.priority(), 1, m_flip_screen); + m_spr_old[1]->turbofrc_draw_sprites(m_spriteram+0x200,m_spriteram.bytes()/2,m_spritepalettebank, bitmap, cliprect, screen.priority(), 0, m_flip_screen); - m_spr_old->turbofrc_draw_sprites(m_spriteram3+0x000,m_spriteram3.bytes()/2,m_spritepalettebank, bitmap, cliprect, screen.priority(), 1, m_flip_screen); - m_spr_old->turbofrc_draw_sprites(m_spriteram3+0x000,m_spriteram3.bytes()/2,m_spritepalettebank, bitmap, cliprect, screen.priority(), 0, m_flip_screen); + m_spr_old[0]->turbofrc_draw_sprites(m_spriteram+0x000,m_spriteram.bytes()/2,m_spritepalettebank, bitmap, cliprect, screen.priority(), 1, m_flip_screen); + m_spr_old[0]->turbofrc_draw_sprites(m_spriteram+0x000,m_spriteram.bytes()/2,m_spritepalettebank, bitmap, cliprect, screen.priority(), 0, m_flip_screen); return 0; } @@ -344,25 +287,25 @@ uint32_t aerofgt_state::screen_update_spinlbrk(screen_device &screen, bitmap_ind { int i, scrolly; - m_bg1_tilemap->set_scroll_rows(512); + m_tilemap[0]->set_scroll_rows(512); scrolly = 0; for (i = 0; i < 256; i++) - m_bg1_tilemap->set_scrollx((i + scrolly) & 0x1ff, m_rasterram[i] - 8); -// m_bg1_tilemap->set_scrolly(0, m_bg1scrolly); - m_bg2_tilemap->set_scrollx(0, m_bg2scrollx - 4); -// m_bg2_tilemap->set_scrolly(0, m_bg2scrolly); + m_tilemap[0]->set_scrollx((i + scrolly) & 0x1ff, m_rasterram[i] - 8); +// m_tilemap[0]->set_scrolly(0, m_scrolly[0]); + m_tilemap[1]->set_scrollx(0, m_scrollx[1] - 4); +// m_tilemap[1]->set_scrolly(0, m_scrolly[1]); screen.priority().fill(0, cliprect); - m_bg1_tilemap->draw(screen, bitmap, cliprect, 0, 0); - m_bg2_tilemap->draw(screen, bitmap, cliprect, 0, 1); + m_tilemap[0]->draw(screen, bitmap, cliprect, 0, 0); + m_tilemap[1]->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, bitmap, cliprect, screen.priority(), 0, m_flip_screen); - m_spr_old->turbofrc_draw_sprites(m_spriteram3+0x000,m_spriteram3.bytes()/2,m_spritepalettebank, bitmap, cliprect, screen.priority(), 1, m_flip_screen); + m_spr_old[0]->turbofrc_draw_sprites(m_spriteram+0x000,m_spriteram.bytes()/2,m_spritepalettebank, bitmap, cliprect, screen.priority(), 0, m_flip_screen); + m_spr_old[0]->turbofrc_draw_sprites(m_spriteram+0x000,m_spriteram.bytes()/2,m_spritepalettebank, bitmap, cliprect, screen.priority(), 1, m_flip_screen); - m_spr_old2->turbofrc_draw_sprites(m_spriteram3+0x200,m_spriteram3.bytes()/2,m_spritepalettebank, bitmap, cliprect, screen.priority(), 0, m_flip_screen); - m_spr_old2->turbofrc_draw_sprites(m_spriteram3+0x200,m_spriteram3.bytes()/2,m_spritepalettebank, bitmap, cliprect, screen.priority(), 1, m_flip_screen); + m_spr_old[1]->turbofrc_draw_sprites(m_spriteram+0x200,m_spriteram.bytes()/2,m_spritepalettebank, bitmap, cliprect, screen.priority(), 0, m_flip_screen); + m_spr_old[1]->turbofrc_draw_sprites(m_spriteram+0x200,m_spriteram.bytes()/2,m_spritepalettebank, bitmap, cliprect, screen.priority(), 1, m_flip_screen); return 0; } @@ -370,47 +313,47 @@ uint32_t aerofgt_state::screen_update_turbofrc(screen_device &screen, bitmap_ind { int i, scrolly; - m_bg1_tilemap->set_scroll_rows(512); - scrolly = m_bg1scrolly + 2; + m_tilemap[0]->set_scroll_rows(512); + scrolly = m_scrolly[0] + 2; for (i = 0; i < 256; i++) -// m_bg1_tilemap->set_scrollx((i + scrolly) & 0x1ff, m_rasterram[i] - 11); - m_bg1_tilemap->set_scrollx((i + scrolly) & 0x1ff, m_rasterram[7] - 11 - (m_flip_screen ? 188 : 0)); - m_bg1_tilemap->set_scrolly(0, scrolly - (m_flip_screen ? 2 : 0)); - m_bg2_tilemap->set_scrollx(0, m_bg2scrollx - (m_flip_screen ? 185 : 7)); - m_bg2_tilemap->set_scrolly(0, m_bg2scrolly + (m_flip_screen ? 0 : 2)); +// m_tilemap[0]->set_scrollx((i + scrolly) & 0x1ff, m_rasterram[i] - 11); + m_tilemap[0]->set_scrollx((i + scrolly) & 0x1ff, m_rasterram[7] - 11 - (m_flip_screen ? 188 : 0)); + m_tilemap[0]->set_scrolly(0, scrolly - (m_flip_screen ? 2 : 0)); + m_tilemap[1]->set_scrollx(0, m_scrollx[1] - (m_flip_screen ? 185 : 7)); + m_tilemap[1]->set_scrolly(0, m_scrolly[1] + (m_flip_screen ? 0 : 2)); screen.priority().fill(0, cliprect); - m_bg1_tilemap->draw(screen, bitmap, cliprect, 0, 0); - m_bg2_tilemap->draw(screen, bitmap, cliprect, 0, 1); + m_tilemap[0]->draw(screen, bitmap, cliprect, 0, 0); + m_tilemap[1]->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, bitmap, cliprect, screen.priority(), 1, m_flip_screen); //ship - m_spr_old2->turbofrc_draw_sprites(m_spriteram3+0x200,m_spriteram3.bytes()/2,m_spritepalettebank, bitmap, cliprect, screen.priority(), 0, m_flip_screen); //intro + m_spr_old[1]->turbofrc_draw_sprites(m_spriteram+0x200,m_spriteram.bytes()/2,m_spritepalettebank, bitmap, cliprect, screen.priority(), 1, m_flip_screen); //ship + m_spr_old[1]->turbofrc_draw_sprites(m_spriteram+0x200,m_spriteram.bytes()/2,m_spritepalettebank, bitmap, cliprect, screen.priority(), 0, m_flip_screen); //intro - m_spr_old->turbofrc_draw_sprites(m_spriteram3+0x000,m_spriteram3.bytes()/2,m_spritepalettebank, bitmap, cliprect, screen.priority(), 1, m_flip_screen); //enemy - m_spr_old->turbofrc_draw_sprites(m_spriteram3+0x000,m_spriteram3.bytes()/2,m_spritepalettebank, bitmap, cliprect, screen.priority(), 0, m_flip_screen); //enemy + m_spr_old[0]->turbofrc_draw_sprites(m_spriteram+0x000,m_spriteram.bytes()/2,m_spritepalettebank, bitmap, cliprect, screen.priority(), 1, m_flip_screen); //enemy + m_spr_old[0]->turbofrc_draw_sprites(m_spriteram+0x000,m_spriteram.bytes()/2,m_spritepalettebank, bitmap, cliprect, screen.priority(), 0, m_flip_screen); //enemy return 0; } uint32_t aerofgt_state::screen_update_aerofgt(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect) { - m_bg1_tilemap->set_scrollx(0, m_rasterram[0x0000] - 18); - m_bg1_tilemap->set_scrolly(0, m_bg1scrolly); - m_bg2_tilemap->set_scrollx(0, m_rasterram[0x0200] - 20); - m_bg2_tilemap->set_scrolly(0, m_bg2scrolly); + m_tilemap[0]->set_scrollx(0, m_rasterram[0x0000] - 18); + m_tilemap[0]->set_scrolly(0, m_scrolly[0]); + m_tilemap[1]->set_scrollx(0, m_rasterram[0x0200] - 20); + m_tilemap[1]->set_scrolly(0, m_scrolly[1]); screen.priority().fill(0, cliprect); - m_bg1_tilemap->draw(screen, bitmap, cliprect, 0, 0); + m_tilemap[0]->draw(screen, bitmap, cliprect, 0, 0); - 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_spr->draw_sprites(m_spriteram, m_spriteram.bytes(), screen, bitmap, cliprect, 0x03, 0x00); + m_spr->draw_sprites(m_spriteram, m_spriteram.bytes(), screen, bitmap, cliprect, 0x03, 0x01); - m_bg2_tilemap->draw(screen, bitmap, cliprect, 0, 0); + m_tilemap[1]->draw(screen, bitmap, cliprect, 0, 0); - 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); + m_spr->draw_sprites(m_spriteram, m_spriteram.bytes(), screen, bitmap, cliprect, 0x03, 0x02); + m_spr->draw_sprites(m_spriteram, m_spriteram.bytes(), screen, bitmap, cliprect, 0x03, 0x03); return 0; } @@ -424,10 +367,10 @@ uint32_t aerofgt_state::screen_update_aerofgt(screen_device &screen, bitmap_ind1 // BOOTLEG VIDEO_START_MEMBER(aerofgt_state,wbbc97) { - m_bg1_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(aerofgt_state::get_pspikes_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 64, 32); + m_tilemap[0] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(aerofgt_state::get_pspikes_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 64, 32); /* no bg2 in this game */ - m_bg1_tilemap->set_transparent_pen(15); + m_tilemap[0]->set_transparent_pen(15); m_sprite_gfx = 1; @@ -441,8 +384,8 @@ WRITE16_MEMBER(aerofgt_state::pspikesb_gfxbank_w) { COMBINE_DATA(&m_rasterram[0x200 / 2]); - setbank(m_bg1_tilemap, 0, (data & 0xf000) >> 12); - setbank(m_bg1_tilemap, 1, (data & 0x0f00) >> 8); + setbank(0, 0, (data & 0xf000) >> 12); + setbank(0, 1, (data & 0x0f00) >> 8); } // BOOTLEG @@ -463,7 +406,7 @@ void aerofgt_state::aerfboo2_draw_sprites( screen_device &screen, bitmap_ind16 & int attr_start, base, first; base = chip * 0x0200; -// first = 4 * m_spriteram3[0x1fe + base]; +// first = 4 * m_spriteram[0x1fe + base]; first = 0; for (attr_start = base + 0x0200 - 4; attr_start >= first + base; attr_start -= 4) @@ -473,26 +416,26 @@ void aerofgt_state::aerfboo2_draw_sprites( screen_device &screen, bitmap_ind16 & // some other drivers still use this wrong table, they have to be upgraded // int zoomtable[16] = { 0,7,14,20,25,30,34,38,42,46,49,52,54,57,59,61 }; - if (!(m_spriteram3[attr_start + 2] & 0x0080)) + if (!(m_spriteram[attr_start + 2] & 0x0080)) continue; - pri = m_spriteram3[attr_start + 2] & 0x0010; + pri = m_spriteram[attr_start + 2] & 0x0010; if ( chip_disabled_pri && !pri) continue; if ((!chip_disabled_pri) && (pri >> 4)) continue; - ox = m_spriteram3[attr_start + 1] & 0x01ff; - xsize = (m_spriteram3[attr_start + 2] & 0x0700) >> 8; - zoomx = (m_spriteram3[attr_start + 1] & 0xf000) >> 12; - oy = m_spriteram3[attr_start + 0] & 0x01ff; - ysize = (m_spriteram3[attr_start + 2] & 0x7000) >> 12; - zoomy = (m_spriteram3[attr_start + 0] & 0xf000) >> 12; - flipx = m_spriteram3[attr_start + 2] & 0x0800; - flipy = m_spriteram3[attr_start + 2] & 0x8000; - color = (m_spriteram3[attr_start + 2] & 0x000f) + 16 * m_spritepalettebank; - - map_start = m_spriteram3[attr_start + 3]; + ox = m_spriteram[attr_start + 1] & 0x01ff; + xsize = (m_spriteram[attr_start + 2] & 0x0700) >> 8; + zoomx = (m_spriteram[attr_start + 1] & 0xf000) >> 12; + oy = m_spriteram[attr_start + 0] & 0x01ff; + ysize = (m_spriteram[attr_start + 2] & 0x7000) >> 12; + zoomy = (m_spriteram[attr_start + 0] & 0xf000) >> 12; + flipx = m_spriteram[attr_start + 2] & 0x0800; + flipy = m_spriteram[attr_start + 2] & 0x8000; + color = (m_spriteram[attr_start + 2] & 0x000f) + 16 * m_spritepalettebank; + + map_start = m_spriteram[attr_start + 3]; // aerofgt has this adjustment, but doing it here would break turbo force title screen // ox += (xsize*zoomx+2)/4; @@ -519,10 +462,7 @@ void aerofgt_state::aerfboo2_draw_sprites( screen_device &screen, bitmap_ind16 & else sx = ((ox + zoomx * x / 2 + 16) & 0x1ff) - 16; - if (chip == 0) - code = m_spriteram1[map_start % (m_spriteram1.bytes()/2)]; - else - code = m_spriteram2[map_start % (m_spriteram2.bytes()/2)]; + code = m_sprlookupram[chip][map_start % (m_sprlookupram[chip].bytes()/2)]; m_gfxdecode->gfx(m_sprite_gfx + chip)->prio_zoom_transpen(bitmap,cliprect, code, @@ -547,19 +487,19 @@ void aerofgt_state::pspikesb_draw_sprites( screen_device &screen, bitmap_ind16 & { int i; - for (i = 4; i < m_spriteram3.bytes() / 2; i += 4) + for (i = 4; i < m_spriteram.bytes() / 2; i += 4) { int xpos, ypos, color, flipx, flipy, code; - if (m_spriteram3[i + 3 - 4] & 0x8000) + if (m_spriteram[i + 3 - 4] & 0x8000) break; - xpos = (m_spriteram3[i + 2] & 0x1ff) - 34; - ypos = 256 - (m_spriteram3[i + 3 - 4] & 0x1ff) - 33; - code = m_spriteram3[i + 0] & 0x1fff; + xpos = (m_spriteram[i + 2] & 0x1ff) - 34; + ypos = 256 - (m_spriteram[i + 3 - 4] & 0x1ff) - 33; + code = m_spriteram[i + 0] & 0x1fff; flipy = 0; - flipx = m_spriteram3[i + 1] & 0x0800; - color = m_spriteram3[i + 1] & 0x000f; + flipx = m_spriteram[i + 1] & 0x0800; + color = m_spriteram[i + 1] & 0x000f; m_gfxdecode->gfx(m_sprite_gfx)->transpen(bitmap,cliprect, code, @@ -581,38 +521,34 @@ void aerofgt_state::pspikesb_draw_sprites( screen_device &screen, bitmap_ind16 & void aerofgt_state::spikes91_draw_sprites( screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect ) { int i; - uint8_t *lookup; - lookup = memregion("user1")->base(); m_spritepalettebank = 1; - for (i = m_spriteram3.bytes() / 2 - 4; i >= 4; i -= 4) + for (i = m_spriteram.bytes() / 2 - 4; i >= 4; i -= 4) { - int xpos, ypos, color, flipx, flipy, code, realcode; + int xpos, ypos, color, flipx, flipy, code; - code = m_spriteram3[i + 0] & 0x1fff; + code = m_spriteram[i + 0] & 0x1fff; if (!code) continue; - xpos = (m_spriteram3[i + 2] & 0x01ff) - 16; - ypos = 256 - (m_spriteram3[i + 1] & 0x00ff) - 26; + xpos = (m_spriteram[i + 2] & 0x01ff) - 16; + ypos = 256 - (m_spriteram[i + 1] & 0x00ff) - 26; flipy = 0; - flipx = m_spriteram3[i + 3] & 0x8000; - color = ((m_spriteram3[i + 3] & 0x00f0) >> 4); + flipx = m_spriteram[i + 3] & 0x8000; + color = ((m_spriteram[i + 3] & 0x00f0) >> 4); code |= m_spikes91_lookup * 0x2000; - realcode = (lookup[code] << 8) + lookup[0x10000 + code]; - m_gfxdecode->gfx(m_sprite_gfx)->transpen(bitmap,cliprect, - realcode, + m_sprlookuprom[code], color, flipx,flipy, xpos,ypos,15); /* wrap around y */ m_gfxdecode->gfx(m_sprite_gfx)->transpen(bitmap,cliprect, - realcode, + m_sprlookuprom[code], color, flipx,flipy, xpos,ypos + 512,15); @@ -626,23 +562,23 @@ void aerofgt_state::aerfboot_draw_sprites( screen_device &screen, bitmap_ind16 & last = ((m_rasterram[0x404 / 2] << 5) - 0x8000) / 2; - for (attr_start = m_spriteram3.bytes() / 2 - 4; attr_start >= last; attr_start -= 4) + for (attr_start = m_spriteram.bytes() / 2 - 4; attr_start >= last; attr_start -= 4) { int code; int ox, oy, sx, sy, zoomx, zoomy, flipx, flipy, color, pri; - ox = m_spriteram3[attr_start + 1] & 0x01ff; - oy = m_spriteram3[attr_start + 0] & 0x01ff; - flipx = m_spriteram3[attr_start + 2] & 0x0800; - flipy = m_spriteram3[attr_start + 2] & 0x8000; - color = m_spriteram3[attr_start + 2] & 0x000f; + ox = m_spriteram[attr_start + 1] & 0x01ff; + oy = m_spriteram[attr_start + 0] & 0x01ff; + flipx = m_spriteram[attr_start + 2] & 0x0800; + flipy = m_spriteram[attr_start + 2] & 0x8000; + color = m_spriteram[attr_start + 2] & 0x000f; - zoomx = (m_spriteram3[attr_start + 1] & 0xf000) >> 12; - zoomy = (m_spriteram3[attr_start + 0] & 0xf000) >> 12; - pri = m_spriteram3[attr_start + 2] & 0x0010; - code = m_spriteram3[attr_start + 3] & 0x1fff; + zoomx = (m_spriteram[attr_start + 1] & 0xf000) >> 12; + zoomy = (m_spriteram[attr_start + 0] & 0xf000) >> 12; + pri = m_spriteram[attr_start + 2] & 0x0010; + code = m_spriteram[attr_start + 3] & 0x1fff; - if (!(m_spriteram3[attr_start + 2] & 0x0040)) + if (!(m_spriteram[attr_start + 2] & 0x0040)) code |= 0x2000; zoomx = 32 + zoomx; @@ -664,23 +600,23 @@ void aerofgt_state::aerfboot_draw_sprites( screen_device &screen, bitmap_ind16 & last = ((m_rasterram[0x402 / 2] << 5) - 0x8000) / 2; - for (attr_start = ((m_spriteram3.bytes() / 2) / 2) - 4; attr_start >= last; attr_start -= 4) + for (attr_start = ((m_spriteram.bytes() / 2) / 2) - 4; attr_start >= last; attr_start -= 4) { int code; int ox, oy, sx, sy, zoomx, zoomy, flipx, flipy, color, pri; - ox = m_spriteram3[attr_start + 1] & 0x01ff; - oy = m_spriteram3[attr_start + 0] & 0x01ff; - flipx = m_spriteram3[attr_start + 2] & 0x0800; - flipy = m_spriteram3[attr_start + 2] & 0x8000; - color = m_spriteram3[attr_start + 2] & 0x000f; + ox = m_spriteram[attr_start + 1] & 0x01ff; + oy = m_spriteram[attr_start + 0] & 0x01ff; + flipx = m_spriteram[attr_start + 2] & 0x0800; + flipy = m_spriteram[attr_start + 2] & 0x8000; + color = m_spriteram[attr_start + 2] & 0x000f; - zoomx = (m_spriteram3[attr_start + 1] & 0xf000) >> 12; - zoomy = (m_spriteram3[attr_start + 0] & 0xf000) >> 12; - pri = m_spriteram3[attr_start + 2] & 0x0010; - code = m_spriteram3[attr_start + 3] & 0x1fff; + zoomx = (m_spriteram[attr_start + 1] & 0xf000) >> 12; + zoomy = (m_spriteram[attr_start + 0] & 0xf000) >> 12; + pri = m_spriteram[attr_start + 2] & 0x0010; + code = m_spriteram[attr_start + 3] & 0x1fff; - if (!(m_spriteram3[attr_start + 2] & 0x0040)) + if (!(m_spriteram[attr_start + 2] & 0x0040)) code |= 0x2000; zoomx = 32 + zoomx; @@ -726,13 +662,13 @@ uint32_t aerofgt_state::screen_update_pspikesb(screen_device &screen, bitmap_ind { int i, scrolly; - m_bg1_tilemap->set_scroll_rows(256); - scrolly = m_bg1scrolly; + m_tilemap[0]->set_scroll_rows(256); + scrolly = m_scrolly[0]; for (i = 0; i < 256; i++) - m_bg1_tilemap->set_scrollx((i + scrolly) & 0xff, m_rasterram[i] + 22); - m_bg1_tilemap->set_scrolly(0, scrolly); + m_tilemap[0]->set_scrollx((i + scrolly) & 0xff, m_rasterram[i] + 22); + m_tilemap[0]->set_scrolly(0, scrolly); - m_bg1_tilemap->draw(screen, bitmap, cliprect, 0, 0); + m_tilemap[0]->draw(screen, bitmap, cliprect, 0, 0); pspikesb_draw_sprites(screen, bitmap, cliprect); return 0; } @@ -745,14 +681,14 @@ uint32_t aerofgt_state::screen_update_spikes91(screen_device &screen, bitmap_ind int count; gfx_element *gfx = m_gfxdecode->gfx(0); - m_bg1_tilemap->set_scroll_rows(256); - scrolly = m_bg1scrolly; + m_tilemap[0]->set_scroll_rows(256); + scrolly = m_scrolly[0]; for (i = 0; i < 256; i++) - m_bg1_tilemap->set_scrollx((i + scrolly) & 0xff, m_rasterram[i + 0x01f0 / 2] + 0x96 + 0x16); - m_bg1_tilemap->set_scrolly(0, scrolly); + m_tilemap[0]->set_scrollx((i + scrolly) & 0xff, m_rasterram[i + 0x01f0 / 2] + 0x96 + 0x16); + m_tilemap[0]->set_scrolly(0, scrolly); - m_bg1_tilemap->draw(screen, bitmap, cliprect, 0, 0); + m_tilemap[0]->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 */ @@ -783,18 +719,18 @@ uint32_t aerofgt_state::screen_update_aerfboot(screen_device &screen, bitmap_ind { int i, scrolly; - m_bg1_tilemap->set_scroll_rows(512); - scrolly = m_bg1scrolly + 2; + m_tilemap[0]->set_scroll_rows(512); + scrolly = m_scrolly[0] + 2; for (i = 0; i < 256; i++) - m_bg1_tilemap->set_scrollx((i + scrolly) & 0x1ff, m_rasterram[7] + 174); - m_bg1_tilemap->set_scrolly(0, scrolly); - m_bg2_tilemap->set_scrollx(0, m_bg2scrollx + 172); - m_bg2_tilemap->set_scrolly(0, m_bg2scrolly + 2); + m_tilemap[0]->set_scrollx((i + scrolly) & 0x1ff, m_rasterram[7] + 174); + m_tilemap[0]->set_scrolly(0, scrolly); + m_tilemap[1]->set_scrollx(0, m_scrollx[1] + 172); + m_tilemap[1]->set_scrolly(0, m_scrolly[1] + 2); screen.priority().fill(0, cliprect); - m_bg1_tilemap->draw(screen, bitmap, cliprect, 0, 0); - m_bg2_tilemap->draw(screen, bitmap, cliprect, 0, 1); + m_tilemap[0]->draw(screen, bitmap, cliprect, 0, 0); + m_tilemap[1]->draw(screen, bitmap, cliprect, 0, 1); /* we use the priority buffer so sprites are drawn front to back */ aerfboot_draw_sprites(screen, bitmap, cliprect); @@ -806,19 +742,19 @@ uint32_t aerofgt_state::screen_update_aerfboo2(screen_device &screen, bitmap_ind { int i, scrolly; - m_bg1_tilemap->set_scroll_rows(512); - scrolly = m_bg1scrolly + 2; + m_tilemap[0]->set_scroll_rows(512); + scrolly = m_scrolly[0] + 2; for (i = 0; i < 256; i++) -// m_bg1_tilemap->set_scrollx((i + scrolly) & 0x1ff, m_rasterram[i] - 11); - m_bg1_tilemap->set_scrollx((i + scrolly) & 0x1ff, m_rasterram[7] - 11); - m_bg1_tilemap->set_scrolly(0, scrolly); - m_bg2_tilemap->set_scrollx(0, m_bg2scrollx - 7); - m_bg2_tilemap->set_scrolly(0, m_bg2scrolly + 2); +// m_tilemap[0]->set_scrollx((i + scrolly) & 0x1ff, m_rasterram[i] - 11); + m_tilemap[0]->set_scrollx((i + scrolly) & 0x1ff, m_rasterram[7] - 11); + m_tilemap[0]->set_scrolly(0, scrolly); + m_tilemap[1]->set_scrollx(0, m_scrollx[1] - 7); + m_tilemap[1]->set_scrolly(0, m_scrolly[1] + 2); screen.priority().fill(0, cliprect); - m_bg1_tilemap->draw(screen, bitmap, cliprect, 0, 0); - m_bg2_tilemap->draw(screen, bitmap, cliprect, 0, 1); + m_tilemap[0]->draw(screen, bitmap, cliprect, 0, 0); + m_tilemap[1]->draw(screen, bitmap, cliprect, 0, 1); /* we use the priority buffer so sprites are drawn front to back */ aerfboo2_draw_sprites(screen, bitmap, cliprect, 1, -1); //ship @@ -833,25 +769,25 @@ uint32_t aerofgt_state::screen_update_wbbc97(screen_device &screen, bitmap_rgb32 { int i, scrolly; - m_bg1_tilemap->set_scroll_rows(256); - scrolly = m_bg1scrolly; + m_tilemap[0]->set_scroll_rows(256); + scrolly = m_scrolly[0]; for (i = 0; i < 256; i++) - m_bg1_tilemap->set_scrollx((i + scrolly) & 0xff, m_rasterram[i]); - m_bg1_tilemap->set_scrolly(0, scrolly); + m_tilemap[0]->set_scrollx((i + scrolly) & 0xff, m_rasterram[i]); + m_tilemap[0]->set_scrolly(0, scrolly); screen.priority().fill(0, cliprect); if (m_wbbc97_bitmap_enable) { wbbc97_draw_bitmap(bitmap); - m_bg1_tilemap->draw(screen, bitmap, cliprect, 0, 0); + m_tilemap[0]->draw(screen, bitmap, cliprect, 0, 0); } else { - m_bg1_tilemap->draw(screen, bitmap, cliprect, TILEMAP_DRAW_OPAQUE, 0); + m_tilemap[0]->draw(screen, bitmap, cliprect, TILEMAP_DRAW_OPAQUE, 0); } - m_spr_old->turbofrc_draw_sprites(m_spriteram3,m_spriteram3.bytes(),m_spritepalettebank, bitmap, cliprect, screen.priority(), 1, m_flip_screen); - m_spr_old->turbofrc_draw_sprites(m_spriteram3,m_spriteram3.bytes(),m_spritepalettebank, bitmap, cliprect, screen.priority(), 0, m_flip_screen); + m_spr_old[0]->turbofrc_draw_sprites(m_spriteram,m_spriteram.bytes(),m_spritepalettebank, bitmap, cliprect, screen.priority(), 1, m_flip_screen); + m_spr_old[0]->turbofrc_draw_sprites(m_spriteram,m_spriteram.bytes(),m_spritepalettebank, bitmap, cliprect, screen.priority(), 0, m_flip_screen); return 0; } |