Permalink
Browse files
GB Video: Darken colors in GBA mode
- Loading branch information...
Showing
with
21 additions
and
1 deletion.
-
+1
−0
CHANGES
-
+20
−1
src/gb/renderers/software.c
|
|
@@ -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