mirror of
https://github.com/melonDS-emu/melonDS.git
synced 2025-07-25 07:10:00 -06:00
no master brightness when screen is disabled.
This commit is contained in:
63
GPU2D.cpp
63
GPU2D.cpp
@ -270,46 +270,49 @@ void GPU2D::DrawScanline(u32 line)
|
|||||||
}
|
}
|
||||||
|
|
||||||
// master brightness
|
// master brightness
|
||||||
if ((MasterBrightness >> 14) == 1)
|
if (dispmode != 0)
|
||||||
{
|
{
|
||||||
// up
|
if ((MasterBrightness >> 14) == 1)
|
||||||
u32 factor = MasterBrightness & 0x1F;
|
|
||||||
if (factor > 16) factor = 16;
|
|
||||||
|
|
||||||
for (int i = 0; i < 256; i++)
|
|
||||||
{
|
{
|
||||||
u32 val = dst[i];
|
// up
|
||||||
|
u32 factor = MasterBrightness & 0x1F;
|
||||||
|
if (factor > 16) factor = 16;
|
||||||
|
|
||||||
u32 r = val & 0x00003F;
|
for (int i = 0; i < 256; i++)
|
||||||
u32 g = val & 0x003F00;
|
{
|
||||||
u32 b = val & 0x3F0000;
|
u32 val = dst[i];
|
||||||
|
|
||||||
r += (((0x00003F - r) * factor) >> 4);
|
u32 r = val & 0x00003F;
|
||||||
g += ((((0x003F00 - g) * factor) >> 4) & 0x003F00);
|
u32 g = val & 0x003F00;
|
||||||
b += ((((0x3F0000 - b) * factor) >> 4) & 0x3F0000);
|
u32 b = val & 0x3F0000;
|
||||||
|
|
||||||
dst[i] = r | g | b;
|
r += (((0x00003F - r) * factor) >> 4);
|
||||||
|
g += ((((0x003F00 - g) * factor) >> 4) & 0x003F00);
|
||||||
|
b += ((((0x3F0000 - b) * factor) >> 4) & 0x3F0000);
|
||||||
|
|
||||||
|
dst[i] = r | g | b;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
else if ((MasterBrightness >> 14) == 2)
|
||||||
else if ((MasterBrightness >> 14) == 2)
|
|
||||||
{
|
|
||||||
// down
|
|
||||||
u32 factor = MasterBrightness & 0x1F;
|
|
||||||
if (factor > 16) factor = 16;
|
|
||||||
|
|
||||||
for (int i = 0; i < 256; i++)
|
|
||||||
{
|
{
|
||||||
u32 val = dst[i];
|
// down
|
||||||
|
u32 factor = MasterBrightness & 0x1F;
|
||||||
|
if (factor > 16) factor = 16;
|
||||||
|
|
||||||
u32 r = val & 0x00003F;
|
for (int i = 0; i < 256; i++)
|
||||||
u32 g = val & 0x003F00;
|
{
|
||||||
u32 b = val & 0x3F0000;
|
u32 val = dst[i];
|
||||||
|
|
||||||
r -= ((r * factor) >> 4);
|
u32 r = val & 0x00003F;
|
||||||
g -= (((g * factor) >> 4) & 0x003F00);
|
u32 g = val & 0x003F00;
|
||||||
b -= (((b * factor) >> 4) & 0x3F0000);
|
u32 b = val & 0x3F0000;
|
||||||
|
|
||||||
dst[i] = r | g | b;
|
r -= ((r * factor) >> 4);
|
||||||
|
g -= (((g * factor) >> 4) & 0x003F00);
|
||||||
|
b -= (((b * factor) >> 4) & 0x3F0000);
|
||||||
|
|
||||||
|
dst[i] = r | g | b;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user