diff --git a/ext/peanut_gb.h b/ext/peanut_gb.h index 1f0da2c..586afcf 100644 --- a/ext/peanut_gb.h +++ b/ext/peanut_gb.h @@ -1402,8 +1402,8 @@ void __gb_write(struct gb_s *gb, uint_fast16_t addr, uint8_t val) /* CGB BG Palette*/ case 0x69: gb->cgb.BGPalette[(gb->cgb.BGPaletteID & 0x3F)] = val; - fixPaletteTemp = (gb->cgb.BGPalette[(gb->cgb.BGPaletteID & 0x3E) + 1] << 8) + (gb->cgb.BGPalette[(gb->cgb.BGPaletteID & 0x3E)]); - gb->cgb.fixPalette[((gb->cgb.BGPaletteID & 0x3E) >> 1)] = ((fixPaletteTemp & 0x7C00) >> 10) | (fixPaletteTemp & 0x03E0) | ((fixPaletteTemp & 0x001F) << 10); // swap Red and Blue + fixPaletteTemp = (gb->cgb.BGPalette[(gb->cgb.BGPaletteID & 0x3E) + 1] << 8) + (gb->cgb.BGPalette[(gb->cgb.BGPaletteID & 0x3E)]); // BGR555 + gb->cgb.fixPalette[((gb->cgb.BGPaletteID & 0x3E) >> 1)] = ((fixPaletteTemp & 0x7C00) >> 10) | ((fixPaletteTemp & 0x03E0) << 1) | ((fixPaletteTemp & 0x001F) << 11); // swap Red and Blue if(gb->cgb.BGPaletteInc) gb->cgb.BGPaletteID = (++gb->cgb.BGPaletteID) & 0x3F; return; @@ -1417,7 +1417,7 @@ void __gb_write(struct gb_s *gb, uint_fast16_t addr, uint8_t val) case 0x6B: gb->cgb.OAMPalette[(gb->cgb.OAMPaletteID & 0x3F)] = val; fixPaletteTemp = (gb->cgb.OAMPalette[(gb->cgb.OAMPaletteID & 0x3E) + 1] << 8) + (gb->cgb.OAMPalette[(gb->cgb.OAMPaletteID & 0x3E)]); - gb->cgb.fixPalette[0x20 + ((gb->cgb.OAMPaletteID & 0x3E) >> 1)] = ((fixPaletteTemp & 0x7C00) >> 10) | (fixPaletteTemp & 0x03E0) | ((fixPaletteTemp & 0x001F) << 10); // swap Red and Blue + gb->cgb.fixPalette[0x20 + ((gb->cgb.OAMPaletteID & 0x3E) >> 1)] = ((fixPaletteTemp & 0x7C00) >> 10) | ((fixPaletteTemp & 0x03E0) << 1) | ((fixPaletteTemp & 0x001F) << 11); // swap Red and Blue if(gb->cgb.OAMPaletteInc) gb->cgb.OAMPaletteID = (++gb->cgb.OAMPaletteID) & 0x3F; return;