knightsb and knightsb4 promoted to working

This commit is contained in:
Barry Harris 2012-04-12 14:30:22 +00:00
parent bb90d44914
commit 6f5ecaaa06
1 changed files with 106 additions and 17 deletions

View File

@ -11392,11 +11392,107 @@ static INT32 DaimakbInit()
return nRet; return nRet;
} }
void __fastcall Knightsb98WriteWord(UINT32 a, UINT16 d)
{
switch (a) {
case 0x980000: {
// scroll1 y
*((UINT16*)(CpsReg + 0x0e)) = d;
return;
}
case 0x980002: {
// scroll1 x
*((UINT16*)(CpsReg + 0x0c)) = d - 0x3e;
return;
}
case 0x980004: {
// scroll2 y
*((UINT16*)(CpsReg + 0x12)) = d;
return;
}
case 0x980006: {
// scroll2 x
*((UINT16*)(CpsReg + 0x10)) = d - 0x3c;
return;
}
case 0x980008: {
// scroll3 y
*((UINT16*)(CpsReg + 0x16)) = d;
return;
}
case 0x98000a: {
// scroll3 x
*((UINT16*)(CpsReg + 0x14)) = d - 0x40;
return;
}
case 0x98000c: {
// This seems to control layer order and enable
switch (d) {
case 0x00:
case 0x1f:
case 0xff: {
nCps1Layers[0] = 1;
nCps1Layers[1] = 0;
nCps1Layers[2] = 2;
nCps1Layers[3] = 3;
break;
}
case 0x2000: {
nCps1Layers[0] = 0;
nCps1Layers[1] = 1;
nCps1Layers[2] = 2;
nCps1Layers[3] = 3;
break;
}
case 0xa000: {
nCps1Layers[0] = 2;
nCps1Layers[1] = 1;
nCps1Layers[2] = 0;
nCps1Layers[3] = 3;
break;
}
default: {
nCps1Layers[0] = 1;
nCps1Layers[1] = 0;
nCps1Layers[2] = 2;
nCps1Layers[3] = 3;
bprintf(PRINT_IMPORTANT, _T("Unknown value written at 0x98000c %x\n"), d);
}
}
return;
}
}
}
static INT32 KnightsbInit() static INT32 KnightsbInit()
{ {
Cps1DisablePSnd = 1; Cps1DisablePSnd = 1;
bCpsUpdatePalEveryFrame = 1;
Cps1OverrideLayers = 1;
return TwelveMhzInit(); Cps1ObjGetCallbackFunction = DinopicObjGet;
Cps1ObjDrawCallbackFunction = FcrashObjDraw;
INT32 nRet = DrvInit();
CpsBootlegSpriteRam = (UINT8*)BurnMalloc(0x2000);
SekOpen(0);
SekMapMemory(CpsBootlegSpriteRam, 0x990000, 0x991FFF, SM_RAM);
SekMapHandler(1, 0x980000, 0x98ffff, SM_WRITE);
SekSetWriteWordHandler(1, Knightsb98WriteWord);
SekClose();
return nRet;
} }
static INT32 Knightsb2Init() static INT32 Knightsb2Init()
@ -11407,13 +11503,6 @@ static INT32 Knightsb2Init()
return DrvInit(); return DrvInit();
} }
static INT32 Knightsb4Init()
{
Cps1DisablePSnd = 1;
return DrvInit();
}
static INT32 KodbInit() static INT32 KodbInit()
{ {
INT32 nRet = 0; INT32 nRet = 0;
@ -13299,11 +13388,11 @@ struct BurnDriver BurnDrvCpsKnightsja = {
&CpsRecalcPal, 0x1000, 384, 224, 4, 3 &CpsRecalcPal, 0x1000, 384, 224, 4, 3
}; };
struct BurnDriverD BurnDrvCpsKnightsb = { struct BurnDriver BurnDrvCpsKnightsb = {
"knightsb", "knights", NULL, NULL, "1991", "knightsb", "knights", NULL, NULL, "1991",
"Knights of the Round (911127 etc bootleg set 1)\0", NULL, "bootleg", "CPS1", "Knights of the Round (911127 etc bootleg set 1)\0", "No sound", "bootleg", "CPS1",
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
BDF_CLONE | BDF_BOOTLEG, 3, HARDWARE_CAPCOM_CPS1, GBF_SCRFIGHT, 0, BDF_GAME_WORKING | BDF_CLONE | BDF_BOOTLEG, 3, HARDWARE_CAPCOM_CPS1, GBF_SCRFIGHT, 0,
NULL, KnightsbRomInfo, KnightsbRomName, NULL, NULL, KnightsInputInfo, KnightsDIPInfo, NULL, KnightsbRomInfo, KnightsbRomName, NULL, NULL, KnightsInputInfo, KnightsDIPInfo,
KnightsbInit, DrvExit, Cps1Frame, CpsRedraw, CpsAreaScan, KnightsbInit, DrvExit, Cps1Frame, CpsRedraw, CpsAreaScan,
&CpsRecalcPal, 0x1000, 384, 224, 4, 3 &CpsRecalcPal, 0x1000, 384, 224, 4, 3
@ -13329,19 +13418,19 @@ struct BurnDriver BurnDrvCpsKnightsb3 = {
&CpsRecalcPal, 0x1000, 384, 224, 4, 3 &CpsRecalcPal, 0x1000, 384, 224, 4, 3
}; };
struct BurnDriverD BurnDrvCpsKnightsb4 = { struct BurnDriver BurnDrvCpsKnightsb4 = {
"knightsb4", "knights", NULL, NULL, "1991", "knightsb4", "knights", NULL, NULL, "1991",
"Knights of the Round (911127 etc bootleg set 4)\0", NULL, "bootleg", "CPS1", "Knights of the Round (911127 etc bootleg set 4)\0", "No sound", "bootleg", "CPS1",
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
BDF_CLONE | BDF_BOOTLEG, 3, HARDWARE_CAPCOM_CPS1, GBF_SCRFIGHT, 0, BDF_GAME_WORKING | BDF_CLONE | BDF_BOOTLEG, 3, HARDWARE_CAPCOM_CPS1, GBF_SCRFIGHT, 0,
NULL, Knightsb4RomInfo, Knightsb4RomName, NULL, NULL, KnightsInputInfo, KnightsDIPInfo, NULL, Knightsb4RomInfo, Knightsb4RomName, NULL, NULL, KnightsInputInfo, KnightsDIPInfo,
Knightsb4Init, DrvExit, Cps1Frame, CpsRedraw, CpsAreaScan, KnightsbInit, DrvExit, Cps1Frame, CpsRedraw, CpsAreaScan,
&CpsRecalcPal, 0x1000, 384, 224, 4, 3 &CpsRecalcPal, 0x1000, 384, 224, 4, 3
}; };
struct BurnDriver BurnDrvCpsKnightsh = { struct BurnDriver BurnDrvCpsKnightsh = {
"knightsh", "knights", NULL, NULL, "1991", "knightsh", "knights", NULL, NULL, "1991",
"Knights of the Round (911127 etc bootleg set 3)\0", NULL, "bootleg", "CPS1", "Knights of the Round (911127 etc hack set 1)\0", NULL, "hack", "CPS1",
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
BDF_GAME_WORKING | BDF_CLONE | BDF_BOOTLEG, 3, HARDWARE_CAPCOM_CPS1, GBF_SCRFIGHT, 0, BDF_GAME_WORKING | BDF_CLONE | BDF_BOOTLEG, 3, HARDWARE_CAPCOM_CPS1, GBF_SCRFIGHT, 0,
NULL, KnightshRomInfo, KnightshRomName, NULL, NULL, KnightsInputInfo, KnightsDIPInfo, NULL, KnightshRomInfo, KnightshRomName, NULL, NULL, KnightsInputInfo, KnightsDIPInfo,
@ -13351,7 +13440,7 @@ struct BurnDriver BurnDrvCpsKnightsh = {
struct BurnDriver BurnDrvCpsKnghtsha = { struct BurnDriver BurnDrvCpsKnghtsha = {
"knghtsha", "knights", NULL, NULL, "1991", "knghtsha", "knights", NULL, NULL, "1991",
"Knights of the Round (911127 etc hack)\0", NULL, "bootleg", "CPS1", "Knights of the Round (911127 etc hack set 2)\0", NULL, "hack", "CPS1",
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
BDF_GAME_WORKING | BDF_CLONE | BDF_HACK, 3, HARDWARE_CAPCOM_CPS1, GBF_SCRFIGHT, 0, BDF_GAME_WORKING | BDF_CLONE | BDF_HACK, 3, HARDWARE_CAPCOM_CPS1, GBF_SCRFIGHT, 0,
NULL, KnghtshaRomInfo, KnghtshaRomName, NULL, NULL, KnightsInputInfo, KnightsDIPInfo, NULL, KnghtshaRomInfo, KnghtshaRomName, NULL, NULL, KnightsInputInfo, KnightsDIPInfo,