little bit more stuff

This commit is contained in:
Jaklyy 2024-05-08 10:05:09 -04:00
parent 87e8372337
commit ee91fe6a46

View file

@ -1229,14 +1229,14 @@ void GPU3D::SubmitPolygon() noexcept
poly->IsShadowMask = ((CurPolygonAttr & 0x3F000030) == 0x00000030);
poly->IsShadow = ((CurPolygonAttr & 0x30) == 0x30) && !poly->IsShadowMask;
// yes, we need specifically the rasterizer bit, not the gx bit
poly->ClearStencil = false;
if (NDS.GetSCFGRasterBit() && (FlushAttributes & 1) && ShadowSent && poly->IsShadowMask && poly->Translucent)
if (poly->IsShadow) ShadowSent = true;
// yes, this *is* an extremely specific requirement, and also yes we need the rasterizer bit, not the gx bit
else if (NDS.GetSCFGRasterBit() && poly->IsShadowMask && ShadowSent && (FlushAttributes & 1) && poly->Translucent)
{
ShadowSent = false;
poly->ClearStencil = true;
}
if (poly->IsShadow) ShadowSent = true; // checkme: does this always get set?
if (!poly->Translucent) NumOpaquePolygons++;
@ -2068,7 +2068,7 @@ void GPU3D::ExecuteCommand() noexcept
case 0x50: // flush
VertexPipelineCmdDelayed4();
ShadowSent = true; // checkme: does this always get set?
ShadowSent = true;
FlushRequest = 1;
FlushAttributes = entry.Param & 0x3;
CycleCount = 325;