Hook up sprite mask values from work ram for other wof sets that need it

This commit is contained in:
Barry Harris 2012-05-10 19:15:40 +00:00
parent 576199675f
commit 089f6aafb1
1 changed files with 51 additions and 36 deletions

View File

@ -12910,6 +12910,34 @@ void __fastcall WofhInputWriteWord(UINT32 a, UINT16 d)
}
}
void __fastcall WofbFFWriteByte(UINT32 a, UINT8 d)
{
CpsRamFF[((a & 0xffff) ^ 1)] = d;
}
void __fastcall WofbFFWriteWord(UINT32 a, UINT16 d)
{
switch (a) {
case 0xff639a: {
*((UINT16*)(CpsReg + MaskAddr[1])) = BURN_ENDIAN_SWAP_INT16(d);
break;
}
case 0xff639c: {
*((UINT16*)(CpsReg + MaskAddr[2])) = BURN_ENDIAN_SWAP_INT16(d);
break;
}
case 0xff639e: {
*((UINT16*)(CpsReg + MaskAddr[3])) = BURN_ENDIAN_SWAP_INT16(d);
break;
}
}
UINT16 *RAM = (UINT16*)CpsRamFF;
RAM[((a & 0xffff) >> 1)] = d;
}
static void WofhCallback()
{
// Patch protection? check
@ -12943,6 +12971,9 @@ static INT32 WofhInit()
SekMapHandler(4, 0x135000, 0x135fff, SM_READ);
SekSetReadByteHandler(4, Wofh135ReadByte);
SekSetReadWordHandler(4, Wofh135ReadWord);
SekMapHandler(5, 0xff0000, 0xffffff, SM_WRITE);
SekSetWriteByteHandler(5, WofbFFWriteByte);
SekSetWriteWordHandler(5, WofbFFWriteWord);
SekClose();
return nRet;
@ -12991,6 +13022,9 @@ static INT32 SgyxzInit()
SekMapHandler(4, 0x135000, 0x135fff, SM_READ);
SekSetReadByteHandler(4, Wofh135ReadByte);
SekSetReadWordHandler(4, Wofh135ReadWord);
SekMapHandler(5, 0xff0000, 0xffffff, SM_WRITE);
SekSetWriteByteHandler(5, WofbFFWriteByte);
SekSetWriteWordHandler(5, WofbFFWriteWord);
SekClose();
return nRet;
@ -13130,6 +13164,9 @@ static INT32 Wof3jsaInit()
SekSetReadWordHandler(3, Wof3jsaInputReadWord);
SekSetWriteByteHandler(3, Wof3jsaInputWriteByte);
SekSetWriteWordHandler(3, Wof3jsaInputWriteWord);
SekMapHandler(4, 0xff0000, 0xffffff, SM_WRITE);
SekSetWriteByteHandler(4, WofbFFWriteByte);
SekSetWriteWordHandler(4, WofbFFWriteWord);
SekClose();
return nRet;
@ -13237,6 +13274,9 @@ static INT32 Wof3sjInit()
SekSetReadWordHandler(3, Wof3sjInputReadWord);
SekSetWriteByteHandler(3, Wof3sjInputWriteByte);
SekSetWriteWordHandler(3, Wof3sjInputWriteWord);
SekMapHandler(4, 0xff0000, 0xffffff, SM_WRITE);
SekSetWriteByteHandler(4, WofbFFWriteByte);
SekSetWriteWordHandler(4, WofbFFWriteWord);
SekClose();
return nRet;
@ -13260,6 +13300,9 @@ static INT32 WofsjInit()
SekSetReadWordHandler(3, Wof3sjInputReadWord);
SekSetWriteByteHandler(3, Wof3sjInputWriteByte);
SekSetWriteWordHandler(3, Wof3sjInputWriteWord);
SekMapHandler(4, 0xff0000, 0xffffff, SM_WRITE);
SekSetWriteByteHandler(4, WofbFFWriteByte);
SekSetWriteWordHandler(4, WofbFFWriteWord);
SekClose();
return nRet;
@ -13374,34 +13417,6 @@ void __fastcall Wofb98WriteWord(UINT32 a, UINT16 d)
}
}
void __fastcall WofbFFWriteByte(UINT32 a, UINT8 d)
{
CpsRamFF[((a & 0xffff) ^ 1)] = d;
}
void __fastcall WofbFFWriteWord(UINT32 a, UINT16 d)
{
switch (a) {
case 0xff639a: {
*((UINT16*)(CpsReg + MaskAddr[1])) = BURN_ENDIAN_SWAP_INT16(d);
break;
}
case 0xff639c: {
*((UINT16*)(CpsReg + MaskAddr[2])) = BURN_ENDIAN_SWAP_INT16(d);
break;
}
case 0xff639e: {
*((UINT16*)(CpsReg + MaskAddr[3])) = BURN_ENDIAN_SWAP_INT16(d);
break;
}
}
UINT16 *RAM = (UINT16*)CpsRamFF;
RAM[((a & 0xffff) >> 1)] = d;
}
static INT32 WofbInit()
{
bCpsUpdatePalEveryFrame = 1;
@ -15428,7 +15443,7 @@ struct BurnDriver BurnDrvCpsWofhfh = {
struct BurnDriver BurnDrvCpsWofh = {
"wofh", "wof", NULL, NULL, "1992",
"Sangokushi II: Sanguo Yingxiong Zhuan (Chinese bootleg set 1, 921005 Asia)\0", "Some sprite priority problems", "bootleg", "CPS1",
"Sangokushi II: Sanguo Yingxiong Zhuan (Chinese bootleg set 1, 921005 Asia)\0", NULL, "bootleg", "CPS1",
L"\u4E09\u56FD\u5FD7II: \u4E09\u570B\u82F1\u96C4\u50B3\0Sangokushi II: Sanguo YingXiongZhuan (Chinese bootleg set 1, 921005 Asia)\0", NULL, NULL, NULL,
BDF_GAME_WORKING | BDF_CLONE | BDF_BOOTLEG, 3, HARDWARE_CAPCOM_CPS1, GBF_SCRFIGHT, 0,
NULL, WofhRomInfo, WofhRomName, NULL, NULL, WofhfhInputInfo, WofhDIPInfo,
@ -15438,7 +15453,7 @@ struct BurnDriver BurnDrvCpsWofh = {
struct BurnDriver BurnDrvCpsWofha = {
"wofha", "wof", NULL, NULL, "1992",
"Sangokushi II: Sanguo Yingxiong Zhuan (Chinese bootleg set 2, 921005 Asia)\0", "Some sprite priority problems", "bootleg", "CPS1",
"Sangokushi II: Sanguo Yingxiong Zhuan (Chinese bootleg set 2, 921005 Asia)\0", NULL, "bootleg", "CPS1",
L"\u4E09\u56FD\u5FD7II: \u4E09\u570B\u82F1\u96C4\u50B3\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,
@ -15448,7 +15463,7 @@ struct BurnDriver BurnDrvCpsWofha = {
struct BurnDriver BurnDrvCpsSgyxz = {
"sgyxz", "wof", NULL, NULL, "1992",
"Sangokushi II: Sanguo Yingxiong Zhuan (Chinese bootleg set 3, 921005 Asia)\0", "Some sprite priority problems", "bootleg", "CPS1",
"Sangokushi II: Sanguo Yingxiong Zhuan (Chinese bootleg set 3, 921005 Asia)\0", NULL, "bootleg", "CPS1",
L"\u4E09\u56FD\u5FD7II: \u4E09\u570B\u82F1\u96C4\u50B3\0Sangokushi II: Sanguo YingXiongZhuan (Chinese bootleg set 3, 921005 Asia)\0", NULL, NULL, NULL,
BDF_GAME_WORKING | BDF_CLONE | BDF_BOOTLEG, 3, HARDWARE_CAPCOM_CPS1, GBF_SCRFIGHT, 0,
NULL, SgyxzRomInfo, SgyxzRomName, NULL, NULL, WofhfhInputInfo, WofhDIPInfo,
@ -15468,7 +15483,7 @@ struct BurnDriver BurnDrvCpsWof3js = {
struct BurnDriver BurnDrvCpsWof3jsa = {
"wof3jsa", "wof", NULL, NULL, "1992",
"Sangokushi II: San Jian Sheng (Chinese bootleg set 2, 921005 Asia)\0", "Some sprite priority problems", "bootleg", "CPS1",
"Sangokushi II: San Jian Sheng (Chinese bootleg set 2, 921005 Asia)\0", NULL, "bootleg", "CPS1",
L"\u4E09\u56FD\u5FD7II: \u4E09\u528D\u8056\0Sangokushi II: San Jian Sheng (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, Wof3jsaRomInfo, Wof3jsaRomName, NULL, NULL, WofhfhInputInfo, WofhfhDIPInfo,
@ -15478,7 +15493,7 @@ struct BurnDriver BurnDrvCpsWof3jsa = {
struct BurnDriver BurnDrvCpsWof3sj = {
"wof3sj", "wof", NULL, NULL, "1992",
"Sangokushi II: San Sheng Jian (Chinese bootleg set 1, 921005 Asia)\0", "Some sprite priority problems", "bootleg", "CPS1",
"Sangokushi II: San Sheng Jian (Chinese bootleg set 1, 921005 Asia)\0", NULL, "bootleg", "CPS1",
L"\u4E09\u56FD\u5FD7II: \u4E09\u5723\u5251\0Sangokushi II: San Sheng Jian (Chinese bootleg set 1, 921005 Asia)\0", NULL, NULL, NULL,
BDF_GAME_WORKING | BDF_CLONE | BDF_BOOTLEG, 3, HARDWARE_CAPCOM_CPS1, GBF_SCRFIGHT, 0,
NULL, Wof3sjRomInfo, Wof3sjRomName, NULL, NULL, WofhfhInputInfo, WofhfhDIPInfo,
@ -15488,7 +15503,7 @@ struct BurnDriver BurnDrvCpsWof3sj = {
struct BurnDriver BurnDrvCpsWof3sja = {
"wof3sja", "wof", NULL, NULL, "1992",
"Sangokushi II: San Sheng Jian (Chinese bootleg set 2, 921005 Asia)\0", "Some sprite priority problems", "bootleg", "CPS1",
"Sangokushi II: San Sheng Jian (Chinese bootleg set 2, 921005 Asia)\0", NULL, "bootleg", "CPS1",
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,
@ -15498,7 +15513,7 @@ struct BurnDriver BurnDrvCpsWof3sja = {
struct BurnDriver BurnDrvCpsWofsj = {
"wofsj", "wof", NULL, NULL, "1992",
"Sangokushi II: Sheng Jian Sanguo (Chinese bootleg set 1, 921005 Asia)\0", "Some sprite priority problems", "bootleg", "CPS1",
"Sangokushi II: Sheng Jian Sanguo (Chinese bootleg set 1, 921005 Asia)\0", NULL, "bootleg", "CPS1",
L"\u4E09\u56FD\u5FD7II: \u5723\u5251\u4E09\0Sangokushi II: Sheng Jian Sanguo (Chinese bootleg set 1, 921005 Asia)\0", NULL, NULL, NULL,
BDF_GAME_WORKING | BDF_CLONE | BDF_BOOTLEG, 3, HARDWARE_CAPCOM_CPS1, GBF_SCRFIGHT, 0,
NULL, WofsjRomInfo, WofsjRomName, NULL, NULL, WofInputInfo, WofDIPInfo,
@ -15508,7 +15523,7 @@ struct BurnDriver BurnDrvCpsWofsj = {
struct BurnDriver BurnDrvCpsWofsja = {
"wofsja", "wof", NULL, NULL, "1992",
"Sangokushi II: Sheng Jian Sanguo (Chinese bootleg set 2, 921005 Asia)\0", "Some sprite priority problems", "bootleg", "CPS1",
"Sangokushi II: Sheng Jian Sanguo (Chinese bootleg set 2, 921005 Asia)\0", NULL, "bootleg", "CPS1",
L"\u4E09\u56FD\u5FD7II: \u5723\u5251\u4E09\0Sangokushi II: Sheng Jian Sanguo (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, WofsjaRomInfo, WofsjaRomName, NULL, NULL, WofInputInfo, WofDIPInfo,