Tidy some CPS-1 custom gfx load routines (avoid loading files unnecessarily!)

This commit is contained in:
Barry Harris 2012-04-24 14:25:31 +00:00
parent e80f5c0413
commit d96a270d27
3 changed files with 113 additions and 210 deletions

View File

@ -176,9 +176,9 @@ static INT32 CpsLoadOnePang(UINT8 *Tile,INT32 nNum,INT32 nWord,INT32 nShift)
return 0;
}
static INT32 CpsLoadOneHack160(UINT8 *Tile, INT32 nNum, INT32 nWord, INT32 nOffset)
static INT32 CpsLoadOneHack160(UINT8 *Tile, INT32 nNum, INT32 nWord, INT32 nType)
{
INT32 i = 0;
INT32 i = 0, j = 0;
UINT8 *Rom1 = NULL, *Rom2 = NULL;
INT32 nRomLen1 = 0, nRomLen2 = 0;
UINT8 *pt = NULL, *pr = NULL;
@ -191,31 +191,39 @@ static INT32 CpsLoadOneHack160(UINT8 *Tile, INT32 nNum, INT32 nWord, INT32 nOffs
if (Rom2 == NULL) {
return 1;
}
for (i = 0, pt = Tile, pr = Rom1 + (0x80000 * nOffset); i < 0x80000; pt += 8) {
UINT32 Pix; // Eight pixels
UINT8 b;
b = *pr++; i++; Pix = SepTable[b];
if (nWord) {
b = *pr++; i++; Pix |= SepTable[b] << 1;
}
Pix <<= 0;
*((UINT32 *)pt) |= Pix;
INT32 TileOffset[4] = { 0x000000, 0x000004, 0x200000, 0x200004 };
if (nType == 1) {
TileOffset[1] = 0x200000;
TileOffset[2] = 0x000004;
}
for (i = 0, pt = Tile, pr = Rom2 + (0x80000 * nOffset); i < 0x80000; pt += 8) {
UINT32 Pix; // Eight pixels
UINT8 b;
b = *pr++; i++; Pix = SepTable[b];
if (nWord) {
b = *pr++; i++; Pix |= SepTable[b] << 1;
for (j = 0; j < 4; j++) {
for (i = 0, pt = Tile + TileOffset[j], pr = Rom1 + (0x80000 * j); i < 0x80000; pt += 8) {
UINT32 Pix; // Eight pixels
UINT8 b;
b = *pr++; i++; Pix = SepTable[b];
if (nWord) {
b = *pr++; i++; Pix |= SepTable[b] << 1;
}
Pix <<= 0;
*((UINT32 *)pt) |= Pix;
}
Pix <<= 2;
*((UINT32 *)pt) |= Pix;
}
for (i = 0, pt = Tile + TileOffset[j], pr = Rom2 + (0x80000 * j); i < 0x80000; pt += 8) {
UINT32 Pix; // Eight pixels
UINT8 b;
b = *pr++; i++; Pix = SepTable[b];
if (nWord) {
b = *pr++; i++; Pix |= SepTable[b] << 1;
}
Pix <<= 2;
*((UINT32 *)pt) |= Pix;
}
}
BurnFree(Rom2);
BurnFree(Rom1);
return 0;
@ -555,19 +563,9 @@ INT32 CpsLoadTilesPang(UINT8* Tile, INT32 nStart)
return 0;
}
INT32 CpsLoadTilesHack160(UINT8* Tile, INT32 nStart)
static INT32 CpsLoadTilesBootleg(UINT8 *Tile, INT32 nStart)
{
CpsLoadOneHack160(Tile + 0 + 0x000000, nStart, 1, 0);
CpsLoadOneHack160(Tile + 4 + 0x000000, nStart, 1, 1);
CpsLoadOneHack160(Tile + 0 + 0x200000, nStart, 1, 2);
CpsLoadOneHack160(Tile + 4 + 0x200000, nStart, 1, 3);
return 0;
}
INT32 CpsLoadTilesBootleg(UINT8 *Tile, INT32 nStart)
{
CpsLoadOneBootleg(Tile, nStart, 0, 0);
CpsLoadOneBootleg(Tile, nStart + 0, 0, 0);
CpsLoadOneBootleg(Tile, nStart + 1, 0, 1);
CpsLoadOneBootleg(Tile, nStart + 2, 0, 2);
CpsLoadOneBootleg(Tile, nStart + 3, 0, 3);
@ -575,26 +573,6 @@ INT32 CpsLoadTilesBootleg(UINT8 *Tile, INT32 nStart)
return 0;
}
INT32 CpsLoadTilesCaptcomb(UINT8 *Tile, INT32 nStart)
{
CpsLoadOneBootlegType2(Tile, nStart, 0, 0);
CpsLoadOneBootlegType2(Tile, nStart + 1, 0, 1);
CpsLoadOneBootlegType2(Tile, nStart + 2, 0, 2);
CpsLoadOneBootlegType2(Tile, nStart + 3, 0, 3);
return 0;
}
INT32 CpsLoadTilesPunipic2(UINT8 *Tile, INT32 nStart)
{
CpsLoadOneHack160(Tile + 0 + 0x000000, nStart, 1, 0);
CpsLoadOneHack160(Tile + 0 + 0x200000, nStart, 1, 1);
CpsLoadOneHack160(Tile + 4 + 0x000000, nStart, 1, 2);
CpsLoadOneHack160(Tile + 4 + 0x200000, nStart, 1, 3);
return 0;
}
INT32 CpsLoadTilesSf2ebbl(UINT8 *Tile, INT32 nStart)
{
CpsLoadOneSf2ebbl(Tile, nStart + 0, 0, 0);
@ -605,6 +583,30 @@ INT32 CpsLoadTilesSf2ebbl(UINT8 *Tile, INT32 nStart)
return 0;
}
static INT32 CpsLoadTilesBootlegType3(UINT8 *Tile, INT32 nStart)
{
CpsLoadOneBootlegType3(Tile, nStart + 0, 0, 0);
CpsLoadOneBootlegType3(Tile, nStart + 1, 0, 1);
CpsLoadOneBootlegType3(Tile, nStart + 2, 0, 2);
CpsLoadOneBootlegType3(Tile, nStart + 3, 0, 3);
return 0;
}
INT32 CpsLoadTilesHack160(INT32 nStart)
{
CpsLoadOneHack160(CpsGfx, nStart, 1, 0);
return 0;
}
INT32 CpsLoadTilesHack160Alt(INT32 nStart)
{
CpsLoadOneHack160(CpsGfx, nStart, 1, 1);
return 0;
}
INT32 CpsLoadTilesSf2koryu(INT32 nStart)
{
CpsLoadOneSf2koryu(CpsGfx + 0x000000, nStart + 0, 1, 0);
@ -619,18 +621,9 @@ INT32 CpsLoadTilesSf2koryu(INT32 nStart)
INT32 CpsLoadTilesSf2mdt(INT32 nStart)
{
CpsLoadOneBootlegType3(CpsGfx + 0x000000, nStart + 0, 0, 0);
CpsLoadOneBootlegType3(CpsGfx + 0x000000, nStart + 1, 0, 1);
CpsLoadOneBootlegType3(CpsGfx + 0x000000, nStart + 2, 0, 2);
CpsLoadOneBootlegType3(CpsGfx + 0x000000, nStart + 3, 0, 3);
CpsLoadOneBootlegType3(CpsGfx + 0x200000, nStart + 4, 0, 0);
CpsLoadOneBootlegType3(CpsGfx + 0x200000, nStart + 5, 0, 1);
CpsLoadOneBootlegType3(CpsGfx + 0x200000, nStart + 6, 0, 2);
CpsLoadOneBootlegType3(CpsGfx + 0x200000, nStart + 7, 0, 3);
CpsLoadOneBootlegType3(CpsGfx + 0x400000, nStart + 8, 0, 0);
CpsLoadOneBootlegType3(CpsGfx + 0x400000, nStart + 9, 0, 1);
CpsLoadOneBootlegType3(CpsGfx + 0x400000, nStart + 10, 0, 2);
CpsLoadOneBootlegType3(CpsGfx + 0x400000, nStart + 11, 0, 3);
CpsLoadTilesBootlegType3(CpsGfx + 0x000000, nStart + 0);
CpsLoadTilesBootlegType3(CpsGfx + 0x200000, nStart + 4);
CpsLoadTilesBootlegType3(CpsGfx + 0x400000, nStart + 8);
return 0;
}
@ -649,36 +642,46 @@ INT32 CpsLoadTilesSf2mdta(INT32 nStart)
INT32 CpsLoadTilesFcrash(INT32 nStart)
{
CpsLoadOneBootlegType3(CpsGfx + 0x000000, nStart + 0, 0, 0);
CpsLoadOneBootlegType3(CpsGfx + 0x000000, nStart + 1, 0, 1);
CpsLoadOneBootlegType3(CpsGfx + 0x000000, nStart + 2, 0, 2);
CpsLoadOneBootlegType3(CpsGfx + 0x000000, nStart + 3, 0, 3);
CpsLoadOneBootlegType3(CpsGfx + 0x080000, nStart + 4, 0, 0);
CpsLoadOneBootlegType3(CpsGfx + 0x080000, nStart + 5, 0, 1);
CpsLoadOneBootlegType3(CpsGfx + 0x080000, nStart + 6, 0, 2);
CpsLoadOneBootlegType3(CpsGfx + 0x080000, nStart + 7, 0, 3);
CpsLoadOneBootlegType3(CpsGfx + 0x100000, nStart + 8, 0, 0);
CpsLoadOneBootlegType3(CpsGfx + 0x100000, nStart + 9, 0, 1);
CpsLoadOneBootlegType3(CpsGfx + 0x100000, nStart + 10, 0, 2);
CpsLoadOneBootlegType3(CpsGfx + 0x100000, nStart + 11, 0, 3);
CpsLoadOneBootlegType3(CpsGfx + 0x180000, nStart + 12, 0, 0);
CpsLoadOneBootlegType3(CpsGfx + 0x180000, nStart + 13, 0, 1);
CpsLoadOneBootlegType3(CpsGfx + 0x180000, nStart + 14, 0, 2);
CpsLoadOneBootlegType3(CpsGfx + 0x180000, nStart + 15, 0, 3);
CpsLoadTilesBootlegType3(CpsGfx + 0x000000, nStart + 0);
CpsLoadTilesBootlegType3(CpsGfx + 0x080000, nStart + 4);
CpsLoadTilesBootlegType3(CpsGfx + 0x100000, nStart + 8);
CpsLoadTilesBootlegType3(CpsGfx + 0x180000, nStart + 12);
return 0;
}
INT32 CpsLoadTilesCawingbl(INT32 nStart)
{
CpsLoadOneBootlegType3(CpsGfx + 0x000000, nStart + 0, 0, 0);
CpsLoadOneBootlegType3(CpsGfx + 0x000000, nStart + 1, 0, 1);
CpsLoadOneBootlegType3(CpsGfx + 0x000000, nStart + 2, 0, 2);
CpsLoadOneBootlegType3(CpsGfx + 0x000000, nStart + 3, 0, 3);
CpsLoadTilesBootlegType3(CpsGfx + 0x000000, nStart + 0);
return 0;
}
INT32 CpsLoadTilesCaptcommb(INT32 nStart)
{
CpsLoadOneBootlegType2(CpsGfx + 0x000000, nStart + 0, 0, 0);
CpsLoadOneBootlegType2(CpsGfx + 0x000000, nStart + 1, 0, 1);
CpsLoadOneBootlegType2(CpsGfx + 0x000000, nStart + 2, 0, 2);
CpsLoadOneBootlegType2(CpsGfx + 0x000000, nStart + 3, 0, 3);
return 0;
}
INT32 CpsLoadTilesDinopic(INT32 nStart)
{
CpsLoadTilesBootleg(CpsGfx + 0x000000, nStart + 0);
CpsLoadTilesBootleg(CpsGfx + 0x200000, nStart + 4);
return 0;
}
INT32 CpsLoadTilesKodb(INT32 nStart)
{
CpsLoadTilesByte(CpsGfx, nStart);
return 0;
}
INT32 CpsLoadStars(UINT8* pStar, INT32 nStart)
{
UINT8* pTemp[2] = { NULL, NULL};

View File

@ -37,16 +37,17 @@ INT32 CpsLoadTilesByte(UINT8 *Tile,INT32 nStart);
INT32 CpsLoadTilesForgottn(INT32 nStart);
INT32 CpsLoadTilesForgottnu(INT32 nStart);
INT32 CpsLoadTilesPang(UINT8 *Tile,INT32 nStart);
INT32 CpsLoadTilesHack160(UINT8 *Tile,INT32 nStart);
INT32 CpsLoadTilesBootleg(UINT8 *Tile, INT32 nStart);
INT32 CpsLoadTilesCaptcomb(UINT8 *Tile, INT32 nStart);
INT32 CpsLoadTilesPunipic2(UINT8 *Tile, INT32 nStart);
INT32 CpsLoadTilesSf2ebbl(UINT8 *Tile, INT32 nStart);
INT32 CpsLoadTilesHack160(INT32 nStart);
INT32 CpsLoadTilesHack160Alt(INT32 nStart);
INT32 CpsLoadTilesSf2koryu(INT32 nStart);
INT32 CpsLoadTilesSf2mdt(INT32 nStart);
INT32 CpsLoadTilesSf2mdta(INT32 nStart);
INT32 CpsLoadTilesFcrash(INT32 nStart);
INT32 CpsLoadTilesCawingbl(INT32 nStart);
INT32 CpsLoadTilesCaptcommb(INT32 nStart);
INT32 CpsLoadTilesDinopic(INT32 nStart);
INT32 CpsLoadTilesKodb(INT32 nStart);
INT32 CpsLoadStars(UINT8 *pStar, INT32 nStart);
INT32 CpsLoadStarsByte(UINT8 *pStar, INT32 nStart);
INT32 CpsLoadStarsForgottnAlt(UINT8 *pStar, INT32 nStart);

View File

@ -10812,20 +10812,14 @@ static INT32 TwelveMhzInit()
static INT32 CaptcommbInit()
{
INT32 nRet = 0;
CpsLayer1XOffs = -8;
CpsLayer2XOffs = -11;
CpsLayer3XOffs = -12;
CpsDrawSpritesInReverse = 1;
Cps1DetectEndSpriteList8000 = 1;
Cps1GfxLoadCallbackFunction = CpsLoadTilesCaptcommb;
nRet = DrvInit();
memset(CpsGfx, 0, nCpsGfxLen);
CpsLoadTilesCaptcomb(CpsGfx, 4);
return nRet;
return DrvInit();
}
static INT32 Captcommb2Init()
@ -11011,15 +11005,12 @@ static INT32 DinopicInit()
INT32 nRet = 0;
Cps1DisablePSnd = 1;
Cps1GfxLoadCallbackFunction = CpsLoadTilesDinopic;
Cps1ObjGetCallbackFunction = DinopicObjGet;
Cps1ObjDrawCallbackFunction = FcrashObjDraw;
nRet = TwelveMhzInit();
memset(CpsGfx, 0, nCpsGfxLen);
CpsLoadTilesBootleg(CpsGfx + 0x000000, 4);
CpsLoadTilesBootleg(CpsGfx + 0x200000, 8);
CpsBootlegSpriteRam = (UINT8*)BurnMalloc(0x2000);
SekOpen(0);
@ -11066,17 +11057,11 @@ static void DinotCallback()
static INT32 DinotInit()
{
INT32 nRet = 0;
Cps1QsHack = 1;
AmendProgRomCallback = DinotCallback;
Cps1GfxLoadCallbackFunction = CpsLoadTilesHack160;
nRet = TwelveMhzInit();
memset(CpsGfx, 0, nCpsGfxLen);
CpsLoadTilesHack160(CpsGfx, 2);
return nRet;
return TwelveMhzInit();
}
static INT32 DinotpicInit()
@ -11084,14 +11069,12 @@ static INT32 DinotpicInit()
INT32 nRet = 0;
Cps1DisablePSnd = 1;
Cps1GfxLoadCallbackFunction = CpsLoadTilesHack160;
Cps1ObjGetCallbackFunction = DinopicObjGet;
Cps1ObjDrawCallbackFunction = FcrashObjDraw;
nRet = TwelveMhzInit();
memset(CpsGfx, 0, nCpsGfxLen);
CpsLoadTilesHack160(CpsGfx, 2);
CpsBootlegSpriteRam = (UINT8*)BurnMalloc(0x2000);
SekOpen(0);
@ -11593,14 +11576,12 @@ static INT32 KodbInit()
INT32 nRet = 0;
Kodb = 1;
Cps1GfxLoadCallbackFunction = CpsLoadTilesKodb;
Cps1ObjGetCallbackFunction = KodbObjGet;
Cps1ObjDrawCallbackFunction = FcrashObjDraw;
nRet = DrvInit();
memset(CpsGfx, 0, nCpsGfxLen);
CpsLoadTilesByte(CpsGfx, 2);
SekOpen(0);
SekMapHandler(1, 0x980000, 0x99ffff, SM_WRITE);
SekSetWriteWordHandler(1, Kodb98WriteWord);
@ -11758,16 +11739,12 @@ static INT32 PunipicInit()
Cps1DisablePSnd = 1;
bCpsUpdatePalEveryFrame = 1;
Cps1OverrideLayers = 1;
Cps1GfxLoadCallbackFunction = CpsLoadTilesDinopic;
Cps1ObjGetCallbackFunction = DinopicObjGet;
Cps1ObjDrawCallbackFunction = FcrashObjDraw;
INT32 nRet = TwelveMhzInit();
memset(CpsGfx, 0, nCpsGfxLen);
CpsLoadTilesBootleg(CpsGfx + 0x000000, 4);
CpsLoadTilesBootleg(CpsGfx + 0x200000, 8);
CpsBootlegSpriteRam = (UINT8*)BurnMalloc(0x4000);
SekOpen(0);
@ -11786,15 +11763,12 @@ static INT32 Punipic2Init()
Cps1DisablePSnd = 1;
bCpsUpdatePalEveryFrame = 1;
Cps1OverrideLayers = 1;
Cps1GfxLoadCallbackFunction = CpsLoadTilesHack160Alt;
Cps1ObjGetCallbackFunction = DinopicObjGet;
Cps1ObjDrawCallbackFunction = FcrashObjDraw;
INT32 nRet = TwelveMhzInit();
memset(CpsGfx, 0, nCpsGfxLen);
CpsLoadTilesPunipic2(CpsGfx, 4);
CpsBootlegSpriteRam = (UINT8*)BurnMalloc(0x4000);
SekOpen(0);
@ -11813,15 +11787,12 @@ static INT32 Punipic3Init()
Cps1DisablePSnd = 1;
bCpsUpdatePalEveryFrame = 1;
Cps1OverrideLayers = 1;
Cps1GfxLoadCallbackFunction = CpsLoadTilesHack160;
Cps1ObjGetCallbackFunction = DinopicObjGet;
Cps1ObjDrawCallbackFunction = FcrashObjDraw;
INT32 nRet = TwelveMhzInit();
memset(CpsGfx, 0, nCpsGfxLen);
CpsLoadTilesHack160(CpsGfx, 4);
CpsBootlegSpriteRam = (UINT8*)BurnMalloc(0x4000);
SekOpen(0);
@ -11846,6 +11817,7 @@ static INT32 Sf2ebblInit()
{
INT32 nRet = DrvInit();
// load bootleg tiles over original tiles
memset(CpsGfx + 0x400000, 0, 0x80000);
CpsLoadTilesSf2ebbl(CpsGfx + 0x400000, 19);
@ -12705,48 +12677,13 @@ static INT32 WofhInit()
CpsLayer1XOffs = 0xffc0;
CpsLayer2XOffs = 0xffc0;
CpsLayer3XOffs = 0xffc0;
Cps1GfxLoadCallbackFunction = CpsLoadTilesHack160;
AmendProgRomCallback = WofhCallback;
Cps1ObjGetCallbackFunction = WofhObjGet;
Cps1ObjDrawCallbackFunction = FcrashObjDraw;
nRet = TwelveMhzInit();
memset(CpsGfx, 0, nCpsGfxLen);
CpsLoadTilesHack160(CpsGfx, 1);
SekOpen(0);
SekMapHandler(3, 0x880000, 0x89ffff, SM_READ | SM_WRITE);
SekSetReadByteHandler(3, WofhInputReadByte);
SekSetReadWordHandler(3, WofhInputReadWord);
SekSetWriteByteHandler(3, WofhInputWriteByte);
SekSetWriteWordHandler(3, WofhInputWriteWord);
SekMapHandler(4, 0x135000, 0x135fff, SM_READ);
SekSetReadByteHandler(4, Wofh135ReadByte);
SekSetReadWordHandler(4, Wofh135ReadWord);
SekClose();
return nRet;
}
static INT32 WofhaInit()
{
INT32 nRet = 0;
bCpsUpdatePalEveryFrame = 1;
CpsLayer1XOffs = 0xffc0;
CpsLayer2XOffs = 0xffc0;
CpsLayer3XOffs = 0xffc0;
AmendProgRomCallback = WofhCallback;
Cps1ObjGetCallbackFunction = WofhObjGet;
Cps1ObjDrawCallbackFunction = FcrashObjDraw;
nRet = TwelveMhzInit();
memset(CpsGfx, 0, nCpsGfxLen);
CpsLoadTilesHack160(CpsGfx, 2);
SekOpen(0);
SekMapHandler(3, 0x880000, 0x89ffff, SM_READ | SM_WRITE);
SekSetReadByteHandler(3, WofhInputReadByte);
@ -12788,16 +12725,13 @@ static INT32 SgyxzInit()
CpsLayer1XOffs = 0xffc0;
CpsLayer2XOffs = 0xffc0;
CpsLayer3XOffs = 0xffc0;
Cps1GfxLoadCallbackFunction = CpsLoadTilesHack160;
AmendProgRomCallback = SgyxzCallback;
Cps1ObjGetCallbackFunction = WofhObjGet;
Cps1ObjDrawCallbackFunction = FcrashObjDraw;
nRet = TwelveMhzInit();
memset(CpsGfx, 0, nCpsGfxLen);
CpsLoadTilesHack160(CpsGfx, 2);
SekOpen(0);
SekMapHandler(3, 0x880000, 0x89ffff, SM_READ | SM_WRITE);
SekSetReadByteHandler(3, WofhInputReadByte);
@ -12934,15 +12868,12 @@ static INT32 Wof3jsaInit()
CpsLayer1XOffs = 0xffc0;
CpsLayer2XOffs = 0xffc0;
CpsLayer3XOffs = 0xffc0;
Cps1GfxLoadCallbackFunction = CpsLoadTilesHack160;
Cps1ObjGetCallbackFunction = WofhObjGet;
Cps1ObjDrawCallbackFunction = FcrashObjDraw;
INT32 nRet = TwelveMhzInit();
memset(CpsGfx, 0, nCpsGfxLen);
CpsLoadTilesHack160(CpsGfx, 2);
SekOpen(0);
SekMapHandler(3, 0x880000, 0x89ffff, SM_READ | SM_WRITE);
SekSetReadByteHandler(3, Wof3jsaInputReadByte);
@ -13044,41 +12975,12 @@ static INT32 Wof3sjInit()
CpsLayer1XOffs = 0xffc0;
CpsLayer2XOffs = 0xffc0;
CpsLayer3XOffs = 0xffc0;
Cps1GfxLoadCallbackFunction = CpsLoadTilesHack160;
Cps1ObjGetCallbackFunction = WofhObjGet;
Cps1ObjDrawCallbackFunction = FcrashObjDraw;
INT32 nRet = TwelveMhzInit();
memset(CpsGfx, 0, nCpsGfxLen);
CpsLoadTilesHack160(CpsGfx, 2);
SekOpen(0);
SekMapHandler(3, 0x880000, 0x89ffff, SM_READ | SM_WRITE);
SekSetReadByteHandler(3, Wof3sjInputReadByte);
SekSetReadWordHandler(3, Wof3sjInputReadWord);
SekSetWriteByteHandler(3, Wof3sjInputWriteByte);
SekSetWriteWordHandler(3, Wof3sjInputWriteWord);
SekClose();
return nRet;
}
static INT32 Wof3sjaInit()
{
bCpsUpdatePalEveryFrame = 1;
CpsLayer1XOffs = 0xffc0;
CpsLayer2XOffs = 0xffc0;
CpsLayer3XOffs = 0xffc0;
Cps1ObjGetCallbackFunction = WofhObjGet;
Cps1ObjDrawCallbackFunction = FcrashObjDraw;
INT32 nRet = TwelveMhzInit();
memset(CpsGfx, 0, nCpsGfxLen);
CpsLoadTilesHack160(CpsGfx, 1);
SekOpen(0);
SekMapHandler(3, 0x880000, 0x89ffff, SM_READ | SM_WRITE);
SekSetReadByteHandler(3, Wof3sjInputReadByte);
@ -13246,15 +13148,12 @@ static INT32 WofbInit()
CpsLayer1XOffs = 0xffc0;
CpsLayer2XOffs = 0xffc0;
CpsLayer3XOffs = 0xffc0;
Cps1GfxLoadCallbackFunction = CpsLoadTilesDinopic;
Cps1ObjGetCallbackFunction = DinopicObjGet;
Cps1ObjDrawCallbackFunction = FcrashObjDraw;
INT32 nRet = TwelveMhzInit();
memset(CpsGfx, 0, nCpsGfxLen);
CpsLoadTilesBootleg(CpsGfx + 0x000000, 4);
CpsLoadTilesBootleg(CpsGfx + 0x200000, 8);
CpsBootlegSpriteRam = (UINT8*)BurnMalloc(0x4000);
SekOpen(0);
@ -15335,7 +15234,7 @@ struct BurnDriver BurnDrvCpsWofha = {
L"\u4E09\u56FD\u5FD7II: \u4E09\u56FD\u82F1\u96C4\u4F20\0Sangokushi II: Sanguo YingXiongZhuan (Chinese bootleg set 2, 921005 Asia)\0", NULL, NULL, NULL,
BDF_GAME_WORKING | BDF_CLONE | BDF_BOOTLEG, 3, HARDWARE_CAPCOM_CPS1, GBF_SCRFIGHT, 0,
NULL, WofhaRomInfo, WofhaRomName, NULL, NULL, WofhfhInputInfo, WofhDIPInfo,
WofhaInit, DrvExit, Cps1Frame, CpsRedraw, CpsAreaScan,
WofhInit, DrvExit, Cps1Frame, CpsRedraw, CpsAreaScan,
&CpsRecalcPal, 0x1000, 384, 224, 4, 3
};
@ -15385,7 +15284,7 @@ struct BurnDriver BurnDrvCpsWof3sja = {
L"\u4E09\u56FD\u5FD7II: \u4E09\u5723\u5251\0Sangokushi II: San Sheng Jian (Chinese bootleg set 2, 921005 Asia)\0", NULL, NULL, NULL,
BDF_GAME_WORKING | BDF_CLONE | BDF_BOOTLEG, 3, HARDWARE_CAPCOM_CPS1, GBF_SCRFIGHT, 0,
NULL, Wof3sjaRomInfo, Wof3sjaRomName, NULL, NULL, WofhfhInputInfo, WofhfhDIPInfo,
Wof3sjaInit, DrvExit, Cps1Frame, CpsRedraw, CpsAreaScan,
Wof3sjInit, DrvExit, Cps1Frame, CpsRedraw, CpsAreaScan,
&CpsRecalcPal, 0x1000, 384, 224, 4, 3
};