diff --git a/src/burn/drv/capcom/cps_obj.cpp b/src/burn/drv/capcom/cps_obj.cpp index 8142f2673..03f7dec20 100644 --- a/src/burn/drv/capcom/cps_obj.cpp +++ b/src/burn/drv/capcom/cps_obj.cpp @@ -469,12 +469,7 @@ INT32 KodbObjGet() pof->nShiftX = -0x40; pof->nShiftY = -0x10; - // needs to alternate between the two sprite ram areas to achieve flashing - INT32 nOff = BURN_ENDIAN_SWAP_INT16(*((UINT16*)(CpsRamFF + 0x1256))) << 8; - nOff &= 0xffff; - nOff += 0x1140; - - Get = CpsRam90 + nOff; + Get = CpsBootlegSpriteRam + 0x1000; if (Get==NULL) return 1; @@ -510,6 +505,8 @@ INT32 KodbObjGet() if (nGetNext >= nFrameCount) { nGetNext = 0; } + + memset(CpsBootlegSpriteRam, 0, 0x3000); return 0; } diff --git a/src/burn/drv/capcom/d_cps1.cpp b/src/burn/drv/capcom/d_cps1.cpp index 80e2105ab..de90d54f6 100644 --- a/src/burn/drv/capcom/d_cps1.cpp +++ b/src/burn/drv/capcom/d_cps1.cpp @@ -12414,7 +12414,11 @@ static INT32 KodbInit() nRet = DrvInit(); + CpsBootlegSpriteRam = (UINT8*)BurnMalloc(0x3000); + SekOpen(0); + SekMapMemory(CpsBootlegSpriteRam, 0x900000, 0x902fff, SM_RAM); + SekMapMemory(CpsBootlegSpriteRam, 0x904000, 0x906fff, SM_RAM); SekMapHandler(1, 0x980000, 0x99ffff, SM_WRITE); SekSetWriteByteHandler(1, Kodb98WriteByte); SekSetWriteWordHandler(1, Kodb98WriteWord);