Permalink
Browse files

GB Video: Darken colors in GBA mode

  • Loading branch information...
endrift committed Jul 4, 2018
1 parent d620fab commit 4767ae42d292514186b85694beac061037822394
Showing with 21 additions and 1 deletion.
  1. +1 −0 CHANGES
  2. +20 −1 src/gb/renderers/software.c
View
@@ -66,6 +66,7 @@ Misc:
- GB Audio: Improved audio quality
- GB, GBA Audio: Increase max audio volume
- GB: Fix VRAM/palette locking (fixes mgba.io/i/1109)
+ - GB Video: Darken colors in GBA mode
0.6.3: (2017-04-14)
Bugfixes:
@@ -437,10 +437,29 @@ static void GBVideoSoftwareRendererWritePalette(struct GBVideoRenderer* renderer
color = softwareRenderer->palette[0];
}
}
- softwareRenderer->palette[index] = color;
if (renderer->cache) {
mCacheSetWritePalette(renderer->cache, index, color);
}
+ if (softwareRenderer->model == GB_MODEL_AGB) {
+ unsigned r = M_R5(value);
+ unsigned g = M_G5(value);
+ unsigned b = M_B5(value);
+ r = r * r;
+ g = g * g;
+ b = b * b;
+#ifdef COLOR_16_BIT
+ r /= 31;
+ g /= 31;
+ b /= 31;
+ color = mColorFrom555(r | (g << 5) | (b << 10));
+#else
+ r >>= 2;
+ g >>= 2;
+ b >>= 2;
+ color = r | (g << 8) | (b << 16);
+#endif
+ }
+ softwareRenderer->palette[index] = color;
if (softwareRenderer->model == GB_MODEL_SGB && !index && GBRegisterLCDCIsEnable(softwareRenderer->lcdc)) {
renderer->writePalette(renderer, 0x04, value);

0 comments on commit 4767ae4

Please sign in to comment.