diff options
-rw-r--r-- | engines/tinsel/palette.cpp | 9 |
1 files changed, 8 insertions, 1 deletions
diff --git a/engines/tinsel/palette.cpp b/engines/tinsel/palette.cpp index 7cc6564832..a0ceec54eb 100644 --- a/engines/tinsel/palette.cpp +++ b/engines/tinsel/palette.cpp @@ -133,6 +133,7 @@ void psxPaletteMapper(PALQ *originalPal, uint8 *psxClut, byte *mapperTable) { void PalettesToVideoDAC() { PALQ *pPalQ; // palette Q iterator VIDEO_DAC_Q *pDACtail = vidDACdata; // set tail pointer + byte pal[768]; // while Q is not empty while (pDAChead != pDACtail) { @@ -164,8 +165,14 @@ void PalettesToVideoDAC() { pColours = pDACtail->pal.pRGBarray; } + for (int i = 0; i < pDACtail->numColours; ++i) { + pal[i * 3 + 0] = TINSEL_GetRValue(pColours[i]); + pal[i * 3 + 1] = TINSEL_GetGValue(pColours[i]); + pal[i * 3 + 2] = TINSEL_GetBValue(pColours[i]); + } + // update the system palette - g_system->getPaletteManager()->setPalette((const byte *)pColours, pDACtail->destDACindex, pDACtail->numColours); + g_system->getPaletteManager()->setPalette(pal, pDACtail->destDACindex, pDACtail->numColours); // update tail pointer pDACtail++; |