all repos — mgba @ dc5f626683fef0c767180fefaee30eca3908b175

mGBA Game Boy Advance Emulator

DS GX: Remove unnecessary loop
Vicki Pfau vi@endrift.com
Tue, 21 Mar 2017 17:55:25 -0700
commit

dc5f626683fef0c767180fefaee30eca3908b175

parent

56ad96c16e70df9e63d0224e50043dc0be3ccff5

1 files changed, 3 insertions(+), 5 deletions(-)

jump to
M src/ds/gx/software.csrc/ds/gx/software.c

@@ -378,11 +378,9 @@

static void _stepEndpoint(struct DSGXSoftwareSpan* span) { int i = 28; int32_t nextX = (span->ep[0].coord[0] & ~0xFFF) + 0x1000; - span->ep[0].coord[0] += 0x80 * i; - while (span->ep[0].coord[0] < nextX) { - span->ep[0].coord[0] += 0x80; - ++i; - } + i = (nextX - span->ep[0].coord[0]) >> 7; + span->ep[0].coord[0] = nextX; + span->ep[0].wRecip += span->step.stepW * i; span->ep[0].coord[3] = (0x7FFFFFFFFFFFFFFF / span->ep[0].wRecip) + 1;