all repos — mgba @ 0d0a37c858ea7c91c4fc4a5db239c5a7bae7948d

mGBA Game Boy Advance Emulator

DS GX: Minor alpha cleanup
Vicki Pfau vi@endrift.com
Tue, 14 Mar 2017 02:28:48 -0700
commit

0d0a37c858ea7c91c4fc4a5db239c5a7bae7948d

parent

055f705c915ba64159471bba291d88968c2d6e3f

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

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

@@ -549,36 +549,33 @@ if (ep.w < softwareRenderer->depthBuffer[x]) {

softwareRenderer->depthBuffer[x] = ep.w; scanline[x] = color; } else if (b < 0x1F) { - scanline[x] = _mix32(b, scanline[x], 0x1F - b, color) | a << 27; + scanline[x] = _mix32(b, current, 0x1F - b, color) | a << 27; } } else { if (ep.z < softwareRenderer->depthBuffer[x]) { softwareRenderer->depthBuffer[x] = ep.z; scanline[x] = color; } else if (b < 0x1F) { - scanline[x] = _mix32(b, scanline[x], 0x1F - b, color) | a << 27; + scanline[x] = _mix32(b, current, 0x1F - b, color) | a << 27; } } } else if (a) { // TODO: Disable alpha? color = _mix32(a, color, 0x1F - a, current); - if (scanline[x] >> 27 > a) { - a = scanline[x] >> 27; - } - color |= a << 27; + color |= ab << 27; if (softwareRenderer->wSort) { if (ep.w < softwareRenderer->depthBuffer[x]) { softwareRenderer->depthBuffer[x] = ep.w; scanline[x] = color; } else if (b < 0x1F) { - scanline[x] = _mix32(b, scanline[x], 0x1F - b, color) | ab << 27; + scanline[x] = _mix32(b, current, 0x1F - b, color) | ab << 27; } } else { if (ep.z < softwareRenderer->depthBuffer[x]) { softwareRenderer->depthBuffer[x] = ep.z; scanline[x] = color; } else if (b < 0x1F) { - scanline[x] = _mix32(b, scanline[x], 0x1F - b, color) | ab << 27; + scanline[x] = _mix32(b, current, 0x1F - b, color) | ab << 27; } } }