snes: don't round early in color conversions. affects some RGB24 values slightly

This commit is contained in:
goyuken 2012-11-16 18:43:47 +00:00
parent 1d3de04364
commit b51cfbaa45
3 changed files with 22 additions and 16 deletions

View File

@ -328,13 +328,16 @@ namespace BizHawk.Emulation.Consoles.Nintendo.SNES
for (int b = 0; b < 32; b++)
{
//zero 04-sep-2012 - go ahead and turn this into a pixel format we'll want
double luma = (double)l / 15.0;
int ar = (int)(luma * r + 0.5);
int ag = (int)(luma * g + 0.5);
int ab = (int)(luma * b + 0.5);
ar = ar * 255 / 31;
ag = ag * 255 / 31;
ab = ab * 255 / 31;
//double luma = (double)l / 15.0;
//int ar = (int)(luma * r + 0.5);
//int ag = (int)(luma * g + 0.5);
//int ab = (int)(luma * b + 0.5);
//ar = ar * 255 / 31;
//ag = ag * 255 / 31;
//ab = ab * 255 / 31;
int ar = (r * l * 17 + 15) / 31;
int ag = (g * l * 17 + 15) / 31;
int ab = (b * l * 17 + 15) / 31;
int color = (ab << 16) + (ag << 8) + (ar << 0) | unchecked((int)0xFF000000);
colortable[(l << 15) + (r << 10) + (g << 5) + (b << 0)] = color;
}

View File

@ -110,15 +110,18 @@ struct Interface : public SNES::Interface {
//palette[(l << 15) + (r << 10) + (g << 5) + (b << 0)] = (ab << 10) + (ag << 5) + (ar << 0);
//zero 04-sep-2012 - go ahead and turn this into a pixel format we'll want
double luma = (double)l / 15.0;
unsigned ar = (luma * r + 0.5);
unsigned ag = (luma * g + 0.5);
unsigned ab = (luma * b + 0.5);
ar = ar * 255 / 31;
ag = ag * 255 / 31;
ab = ab * 255 / 31;
unsigned color = (ab << 16) + (ag << 8) + (ar << 0) | 0xFF000000;
palette[(l << 15) + (r << 10) + (g << 5) + (b << 0)] = color;
//double luma = (double)l / 15.0;
//unsigned ar = (luma * r + 0.5);
//unsigned ag = (luma * g + 0.5);
//unsigned ab = (luma * b + 0.5);
//ar = ar * 255 / 31;
//ag = ag * 255 / 31;
//ab = ab * 255 / 31;
int ar = (r * l * 17 + 15) / 31;
int ag = (g * l * 17 + 15) / 31;
int ab = (b * l * 17 + 15) / 31;
unsigned color = (ab << 16) + (ag << 8) + (ar << 0) | 0xFF000000;
palette[(l << 15) + (r << 10) + (g << 5) + (b << 0)] = color;
}
}
}