mirror of https://github.com/mgba-emu/mgba.git
GBA Video: Re-fix sprite blending
This commit is contained in:
parent
f2eae7ce33
commit
2161769660
|
@ -1765,8 +1765,15 @@ static int _preprocessSprite(struct GBAVideoSoftwareRenderer* renderer, struct G
|
||||||
unsigned charBase = GBAObjAttributesCGetTile(sprite->c) * 0x20;
|
unsigned charBase = GBAObjAttributesCGetTile(sprite->c) * 0x20;
|
||||||
int variant = renderer->target1Obj && GBAWindowControlIsBlendEnable(renderer->currentWindow.packed) && (renderer->blendEffect == BLEND_BRIGHTEN || renderer->blendEffect == BLEND_DARKEN);
|
int variant = renderer->target1Obj && GBAWindowControlIsBlendEnable(renderer->currentWindow.packed) && (renderer->blendEffect == BLEND_BRIGHTEN || renderer->blendEffect == BLEND_DARKEN);
|
||||||
if (GBAObjAttributesAGetMode(sprite->a) == OBJ_MODE_SEMITRANSPARENT) {
|
if (GBAObjAttributesAGetMode(sprite->a) == OBJ_MODE_SEMITRANSPARENT) {
|
||||||
|
int target2 = renderer->target2Bd << 4;
|
||||||
|
target2 |= renderer->bg[0].target2 << (renderer->bg[0].priority);
|
||||||
|
target2 |= renderer->bg[1].target2 << (renderer->bg[1].priority);
|
||||||
|
target2 |= renderer->bg[2].target2 << (renderer->bg[2].priority);
|
||||||
|
target2 |= renderer->bg[3].target2 << (renderer->bg[3].priority);
|
||||||
|
if (GBAObjAttributesCGetPriority(sprite->c) < target2) {
|
||||||
variant = 0;
|
variant = 0;
|
||||||
}
|
}
|
||||||
|
}
|
||||||
color_t* palette = &renderer->normalPalette[0x100];
|
color_t* palette = &renderer->normalPalette[0x100];
|
||||||
if (variant) {
|
if (variant) {
|
||||||
palette = &renderer->variantPalette[0x100];
|
palette = &renderer->variantPalette[0x100];
|
||||||
|
|
Loading…
Reference in New Issue