diff options
Diffstat (limited to 'src/mame/video/tigeroad_spr.cpp')
-rw-r--r-- | src/mame/video/tigeroad_spr.cpp | 109 |
1 files changed, 0 insertions, 109 deletions
diff --git a/src/mame/video/tigeroad_spr.cpp b/src/mame/video/tigeroad_spr.cpp deleted file mode 100644 index f636d40a767..00000000000 --- a/src/mame/video/tigeroad_spr.cpp +++ /dev/null @@ -1,109 +0,0 @@ -// license:BSD-3-Clause -// copyright-holders:David Haywood -/* - - very simple sprite scheme, used by some Capcom games and hardware cloned from them - - bionicc.cpp - tigeroad.cpp - supduck.cpp - - it is unknown if this is handled by a custom chip, or simple logic. - y positions are inverted in Bionic Commando, but it seems otherwise the same as - Tiger Road - -*/ - - -#include "emu.h" -#include "tigeroad_spr.h" - - -DEFINE_DEVICE_TYPE(TIGEROAD_SPRITE, tigeroad_spr_device, "tigeroad_spr", "Simple Capcom (Tiger Road) Sprite") - -tigeroad_spr_device::tigeroad_spr_device(const machine_config &mconfig, const char *tag, device_t *owner, u32 clock) - : device_t(mconfig, TIGEROAD_SPRITE, tag, owner, clock) - , device_gfx_interface(mconfig, *this, nullptr) - , m_gfx_region(*this, DEVICE_SELF) - , m_colbase(0) -{ -} - - -void tigeroad_spr_device::device_start() -{ - gfx_layout layout_16x16x4 = - { - 16,16, - 0, - 4, - { STEP4(0,8) }, - { STEP8(0,1), STEP8(8*4*16,1) }, - { STEP16(0,8*4) }, - 16*16*4 - }; - layout_16x16x4.total = m_gfx_region->bytes() / ((16*16*4) / 8); - set_gfx(0, std::make_unique<gfx_element>(&palette(), layout_16x16x4, m_gfx_region->base(), 0, 0x10, m_colbase)); -} - - -void tigeroad_spr_device::device_reset() -{ -} - -/* - 4 words per sprite - - 0 ---- ---t tttt tttt = tile number - - 1 ---- ---- --cc cc-- = colour - 1 ---- ---- ---- --x- = flip x - 1 ---- ---- ---- ---y = flip y - - 2 ---- ---x xxxx xxxx = x pos (signed) - - 3 ---- ---y yyyy yyyy = y pos (signed) - -*/ - - -void tigeroad_spr_device::draw_sprites(bitmap_ind16 &bitmap, const rectangle &cliprect, u16* ram, u32 size, bool flip_screen, bool rev_y) -{ - const u16 *source = &ram[size/2] - 4; - const u16 *finish = ram; - - while (source >= finish) - { - const u32 tile_number = source[0]; - - const u16 attr = source[1]; - int sy = source[2] & 0x1ff; - int sx = source[3] & 0x1ff; - - int flipx = attr & 0x02; - int flipy = attr & 0x01; - const u32 color = (attr >> 2) & 0x0f; - - if (sx > 0x100) sx -= 0x200; - if (sy > 0x100) sy -= 0x200; - - if (flip_screen) - { - sx = 240 - sx; - sy = 240 - sy; - flipx = !flipx; - flipy = !flipy; - } - - if (rev_y) - sy = 240 - sy; - - gfx(0)->transpen(bitmap,cliprect, - tile_number, - color, - flipx, flipy, - sx, sy, 15); - - source -= 4; - } -} |