diff options
Diffstat (limited to 'src/mame/old/neogeo_helper.cpp')
-rw-r--r-- | src/mame/old/neogeo_helper.cpp | 66 |
1 files changed, 0 insertions, 66 deletions
diff --git a/src/mame/old/neogeo_helper.cpp b/src/mame/old/neogeo_helper.cpp deleted file mode 100644 index 4fd5ddecc20..00000000000 --- a/src/mame/old/neogeo_helper.cpp +++ /dev/null @@ -1,66 +0,0 @@ -// license:BSD-3-Clause -// copyright-holders:S. Smith,David Haywood - -#include "emu.h" -#include "neogeo_helper.h" - -static uint32_t get_region_mask(uint8_t* rgn, uint32_t rgn_size) -{ - uint32_t mask; - uint32_t len; - uint32_t bit; - - mask = 0xffffffff; - - len = rgn_size; - - for (bit = 0x80000000; bit != 0; bit >>= 1) - { - if ((len * 2 - 1) & bit) - break; - - mask >>= 1; - } - - return mask; -} - -uint32_t neogeohelper_optimize_sprite_data(std::vector<uint8_t> &spritegfx, uint8_t* region_sprites, uint32_t region_sprites_size) -{ - /* convert the sprite graphics data into a format that - allows faster blitting */ - uint8_t *src; - uint8_t *dest; - - uint32_t mask = get_region_mask(region_sprites, region_sprites_size); - - spritegfx.resize(mask + 1); - uint32_t spritegfx_address_mask = mask; - - src = region_sprites; - dest = &spritegfx[0]; - - for (unsigned i = 0; i < region_sprites_size; i += 0x80, src += 0x80) - { - for (unsigned y = 0; y < 0x10; y++) - { - for (unsigned x = 0; x < 8; x++) - { - *(dest++) = (((src[0x43 | (y << 2)] >> x) & 0x01) << 3) | - (((src[0x41 | (y << 2)] >> x) & 0x01) << 2) | - (((src[0x42 | (y << 2)] >> x) & 0x01) << 1) | - (((src[0x40 | (y << 2)] >> x) & 0x01) << 0); - } - - for (unsigned x = 0; x < 8; x++) - { - *(dest++) = (((src[0x03 | (y << 2)] >> x) & 0x01) << 3) | - (((src[0x01 | (y << 2)] >> x) & 0x01) << 2) | - (((src[0x02 | (y << 2)] >> x) & 0x01) << 1) | - (((src[0x00 | (y << 2)] >> x) & 0x01) << 0); - } - } - } - - return spritegfx_address_mask; -} |