diff options
Diffstat (limited to 'src/mame/video/cabal.cpp')
-rw-r--r-- | src/mame/video/cabal.cpp | 143 |
1 files changed, 0 insertions, 143 deletions
diff --git a/src/mame/video/cabal.cpp b/src/mame/video/cabal.cpp deleted file mode 100644 index 22b1d396643..00000000000 --- a/src/mame/video/cabal.cpp +++ /dev/null @@ -1,143 +0,0 @@ -// license:BSD-3-Clause -// copyright-holders:Carlos A. Lozano -/*************************************************************************** - - cabal.c - - Functions to emulate the video hardware of the machine. - -***************************************************************************/ - -#include "emu.h" -#include "includes/cabal.h" - -TILE_GET_INFO_MEMBER(cabal_state::get_back_tile_info) -{ - int tile = m_videoram[tile_index]; - int color = (tile>>12)&0xf; - - tile &= 0xfff; - - SET_TILE_INFO_MEMBER(1, - tile, - color, - 0); -} - -TILE_GET_INFO_MEMBER(cabal_state::get_text_tile_info) -{ - int tile = m_colorram[tile_index]; - int color = (tile>>10); - - tile &= 0x3ff; - - SET_TILE_INFO_MEMBER(0, - tile, - color, - 0); -} - - -void cabal_state::video_start() -{ - m_background_layer = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(cabal_state::get_back_tile_info),this),TILEMAP_SCAN_ROWS,16,16,16,16); - m_text_layer = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(cabal_state::get_text_tile_info),this),TILEMAP_SCAN_ROWS, 8,8,32,32); - - m_text_layer->set_transparent_pen(3); - m_background_layer->set_transparent_pen(15); -} - - -/**************************************************************************/ - -WRITE16_MEMBER(cabal_state::flipscreen_w) -{ - if (ACCESSING_BITS_0_7) - { - int flip = (data & 0x20) ? (TILEMAP_FLIPX | TILEMAP_FLIPY) : 0; - m_background_layer->set_flip(flip); - m_text_layer->set_flip(flip); - - flip_screen_set(data & 0x20); - } -} - -WRITE16_MEMBER(cabal_state::background_videoram_w) -{ - COMBINE_DATA(&m_videoram[offset]); - m_background_layer->mark_tile_dirty(offset); -} - -WRITE16_MEMBER(cabal_state::text_videoram_w) -{ - COMBINE_DATA(&m_colorram[offset]); - m_text_layer->mark_tile_dirty(offset); -} - - -/******************************************************************** - - Cabal Spriteram - --------------- - - +0 .......x ........ Sprite enable bit - +0 ........ xxxxxxxx Sprite Y coordinate - +1 ..??.... ........ ??? unknown ??? - +1 ....xxxx xxxxxxxx Sprite tile number - +2 .xxxx... ........ Sprite color bank - +2 .....x.. ........ Sprite flip x - +2 .......x xxxxxxxx Sprite X coordinate - +3 (unused) - - -------E YYYYYYYY - ----BBTT TTTTTTTT - -CCCCF-X XXXXXXXX - -------- -------- - -********************************************************************/ - -void cabal_state::draw_sprites(bitmap_ind16 &bitmap, const rectangle &cliprect) -{ - int offs,data0,data1,data2; - for( offs = m_spriteram.bytes()/2 - 4; offs >= 0; offs -= 4 ) - { - data0 = m_spriteram[offs]; - data1 = m_spriteram[offs+1]; - data2 = m_spriteram[offs+2]; - - if( data0 & 0x100 ) - { - int tile_number = data1 & 0xfff; - int color = ( data2 & 0x7800 ) >> 11; - int sy = ( data0 & 0xff ); - int sx = ( data2 & 0x1ff ); - int flipx = ( data2 & 0x0400 ); - int flipy = 0; - - if ( sx>256 ) sx -= 512; - - if (flip_screen()) - { - sx = 240 - sx; - sy = 240 - sy; - flipx = !flipx; - flipy = !flipy; - } - - m_gfxdecode->gfx(2)->transpen(bitmap,cliprect, - tile_number, - color, - flipx,flipy, - sx,sy,0xf ); - } - } -} - - -uint32_t cabal_state::screen_update(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect) -{ - m_background_layer->draw(screen, bitmap, cliprect, TILEMAP_DRAW_OPAQUE,0); - draw_sprites(bitmap,cliprect); - m_text_layer->draw(screen, bitmap, cliprect, 0,0); - return 0; -} |