From d221f8fd8b3a49982211c05a01bd0f006b56d167 Mon Sep 17 00:00:00 2001 From: Vicki Pfau Date: Wed, 22 Mar 2017 15:40:14 -0700 Subject: [PATCH] DS GX: Fix stencil buffer --- src/ds/gx/software.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/ds/gx/software.c b/src/ds/gx/software.c index bf43d005c..a3d711096 100644 --- a/src/ds/gx/software.c +++ b/src/ds/gx/software.c @@ -616,7 +616,7 @@ static void _drawSpan(struct DSGXSoftwareRenderer* softwareRenderer, struct DSGX ab = b; } if (a == 0x1F) { - if (!(s == 0x40 || (stencil[x] & 0x40))) { + if (!(s & 0x40) || (s & 0x3F && !(stencil[x] & 0x40))) { depth[x] = span->ep[0].coord[softwareRenderer->sort]; scanline[x] = color; s &= ~0x40; @@ -629,7 +629,7 @@ static void _drawSpan(struct DSGXSoftwareRenderer* softwareRenderer, struct DSGX color |= ab << 27; } if (stencil[x] != s) { - if (!(s == 0x40 || (stencil[x] & 0x40))) { + if (!(s & 0x40) || (s & 0x3F && !(stencil[x] & 0x40))) { if (DSGXPolygonAttrsIsUpdateDepth(span->poly->poly->polyParams)) { depth[x] = span->ep[0].coord[softwareRenderer->sort]; }