From 6eafbc6331623f3c246f7ce6b5fef4c7e6189794 Mon Sep 17 00:00:00 2001 From: Jeffrey Pfau Date: Thu, 24 Oct 2013 00:21:59 -0700 Subject: [PATCH] Tear out counter-productive optimization --- src/gba/renderers/video-software.c | 31 +++++++----------------------- src/gba/renderers/video-software.h | 2 -- 2 files changed, 7 insertions(+), 26 deletions(-) diff --git a/src/gba/renderers/video-software.c b/src/gba/renderers/video-software.c index 0887e171b..ef6e4c47c 100644 --- a/src/gba/renderers/video-software.c +++ b/src/gba/renderers/video-software.c @@ -63,7 +63,6 @@ static void GBAVideoSoftwareRendererInit(struct GBAVideoRenderer* renderer) { softwareRenderer->blendEffect = BLEND_NONE; memset(softwareRenderer->normalPalette, 0, sizeof(softwareRenderer->normalPalette)); memset(softwareRenderer->variantPalette, 0, sizeof(softwareRenderer->variantPalette)); - memset(softwareRenderer->enabledBitmap, 0, sizeof(softwareRenderer->enabledBitmap)); softwareRenderer->blda = 0; softwareRenderer->bldb = 0; @@ -273,13 +272,6 @@ static uint16_t GBAVideoSoftwareRendererWriteVideoRegister(struct GBAVideoRender static void GBAVideoSoftwareRendererWriteOAM(struct GBAVideoRenderer* renderer, uint32_t oam) { struct GBAVideoSoftwareRenderer* softwareRenderer = (struct GBAVideoSoftwareRenderer*) renderer; - if ((oam & 0x3) != 0x3) { - oam >>= 2; - struct GBAObj* sprite = &renderer->oam->obj[oam]; - int enabled = sprite->transformed || !sprite->disable; - enabled <<= (oam & 0x1F); - softwareRenderer->enabledBitmap[oam >> 5] = (softwareRenderer->enabledBitmap[oam >> 5] & ~(1 << (oam & 0x1F))) | enabled; - } } static void GBAVideoSoftwareRendererWritePalette(struct GBAVideoRenderer* renderer, uint32_t address, uint16_t value) { @@ -545,22 +537,13 @@ static void _drawScanline(struct GBAVideoSoftwareRenderer* renderer, int y) { if (!renderer->currentWindow.objEnable) { continue; } - int i, j; - for (j = 0; j < 4; ++j) { - uint32_t bitmap = renderer->enabledBitmap[j]; - if (!bitmap) { - continue; - } - for (i = j * 32; i < (j + 1) * 32; ++i) { - if (bitmap & 1) { - struct GBAObj* sprite = &renderer->d.oam->obj[i]; - if (sprite->transformed) { - _preprocessTransformedSprite(renderer, &renderer->d.oam->tobj[i], y); - } else { - _preprocessSprite(renderer, sprite, y); - } - } - bitmap >>= 1; + int i; + for (i = 0; i < 128; ++i) { + struct GBAObj* sprite = &renderer->d.oam->obj[i]; + if (sprite->transformed) { + _preprocessTransformedSprite(renderer, &renderer->d.oam->tobj[i], y); + } else if (!sprite->disable) { + _preprocessSprite(renderer, sprite, y); } } } diff --git a/src/gba/renderers/video-software.h b/src/gba/renderers/video-software.h index 176866473..761217d06 100644 --- a/src/gba/renderers/video-software.h +++ b/src/gba/renderers/video-software.h @@ -144,8 +144,6 @@ struct GBAVideoSoftwareRenderer { int start; int end; - - uint32_t enabledBitmap[4]; }; void GBAVideoSoftwareRendererCreate(struct GBAVideoSoftwareRenderer* renderer);