Description
GDI32 Graphics API will consistently display the wrong colors in an 8-bit paletted graphics mode game. Program uses BitBlt to draw and SetPaletteEntries, SetDIBColorTable, SelectPalette and RealizePalette to set and update the palette
Update based on comments and research:
Can confirm the application uses RGB internally but switches it to BGR when updating GDI's palettes. This produces the correct colors on Windows and swapped on ReactOS. Disabling the switching code makes the correct colors appear on ReactOS and incorrect colors on Windows.
The colors are still wrong even when setting the display to 8 bit palette mode (256 color) which means that GDI is setting the wrong colors in VGA memory too!
I've made a simple color picker program and included it in Palette.zip for helping test this and future issues (Navigate with Arrow Keys, Z is OK and X is Cancel)
Attachments
Issue Links
- duplicates
-
CORE-13748 DURAK (games) blue cards RGB<->BGR
- Resolved
- is blocked by
-
CORE-17626 [WIN32K] reproducible BSOD 0x1E in CreateDIBPalette() when passing invalid arguments to CreateDIBSection
- Resolved