konamiic.cpp: iq_132 does it better

This commit is contained in:
dinkc64 2017-04-19 03:02:48 +00:00
parent 3f98a89b88
commit 45d63124db
1 changed files with 31 additions and 2 deletions

View File

@ -16,6 +16,9 @@ UINT32 *konami_bitmap32 = NULL;
UINT8 *konami_priority_bitmap = NULL;
UINT32 *konami_palette32;
static INT32 previous_depth = 0;
static UINT16 *palette_lut = NULL;
//static UINT16 *konami_blendpal16;
static INT32 highlight_mode = 0; // set in driver init.
@ -158,6 +161,12 @@ void KonamiICExit()
konami_priority_bitmap = NULL;
}
previous_depth = 0;
if (palette_lut) {
BurnFree(palette_lut);
}
palette_lut = NULL;
if (KonamiIC_K051960InUse) K051960Exit();
if (KonamiIC_K052109InUse) K052109Exit();
if (KonamiIC_K051316InUse) K051316Exit();
@ -233,6 +242,18 @@ void KonamiBlendCopy(UINT32 *pPalette)
UINT32 *bmp = konami_bitmap32;
if (previous_depth != 2 && nBurnBpp == 2) {
if (palette_lut == NULL) {
palette_lut = (UINT16*)BurnMalloc((1 << 24) * 2);
for (INT32 i = 0; i < (1 << 24); i++) {
palette_lut[i] = BurnHighCol(i / 0x10000, (i / 0x100) & 0xff, i & 0xff, 0);
}
}
}
previous_depth = nBurnBpp;
switch (nBurnBpp)
{
case 4:
@ -241,7 +262,15 @@ void KonamiBlendCopy(UINT32 *pPalette)
}
break;
#if 0
case 2:
{
UINT16 *dst = (UINT16*)pBurnDraw;
for (INT32 i = 0; i < nScreenWidth * nScreenHeight; i++, dst++, bmp++) {
*dst = palette_lut[*bmp];
}
}
break;
case 3:
{
UINT8 *dst = pBurnDraw;
@ -252,7 +281,7 @@ void KonamiBlendCopy(UINT32 *pPalette)
}
}
break;
#if 0
case 2:
{
UINT16 *dst = (UINT16*)pBurnDraw;