Allow dino,punisher,wof bootlegs that use dipswitches to use EEPROM, tidy up all wof sets inputs and dips

This commit is contained in:
Barry Harris 2012-05-11 15:16:50 +00:00
parent d8a776ddd5
commit 8858f14414
5 changed files with 192 additions and 122 deletions

View File

@ -242,6 +242,7 @@ extern INT32 Pzloop2;
extern INT32 Ssf2tb;
extern INT32 Dinohunt;
extern INT32 Port6SoundWrite;
extern INT32 CpsBootlegEEPROM;
extern UINT8* CpsEncZRom;

View File

@ -393,7 +393,7 @@ INT32 CpsAreaScan(INT32 nAction, INT32 *pnMin)
}
}
if (Cps == 2 || Cps1Qs == 1 || PangEEP == 1) { // Scan EEPROM
if (Cps == 2 || Cps1Qs == 1 || PangEEP == 1 || CpsBootlegEEPROM == 1) { // Scan EEPROM
EEPROMScan(nAction, pnMin);
}

View File

@ -44,7 +44,7 @@ static void CpsQSoundCheatSearchCallback()
static INT32 DrvReset()
{
// Reset machine
if (Cps == 2 || PangEEP || Cps1Qs == 1) EEPROMReset();
if (Cps == 2 || PangEEP || Cps1Qs == 1 || CpsBootlegEEPROM) EEPROMReset();
SekOpen(0);
SekReset();
@ -119,7 +119,7 @@ INT32 CpsRunInit()
if (Cps == 2 || PangEEP) {
EEPROMInit(&cps2_eeprom_interface);
} else {
if (Cps1Qs == 1) {
if (Cps1Qs == 1 || CpsBootlegEEPROM) {
EEPROMInit(&qsound_eeprom_interface);
}
}
@ -145,7 +145,7 @@ INT32 CpsRunInit()
}
}
if (Cps == 2 || PangEEP || Cps1Qs == 1) EEPROMReset();
if (Cps == 2 || PangEEP || Cps1Qs == 1 || CpsBootlegEEPROM) EEPROMReset();
if (CpsRunInitCallbackFunction) {
CpsRunInitCallbackFunction();
@ -167,7 +167,7 @@ INT32 CpsRunInit()
INT32 CpsRunExit()
{
if (Cps == 2 || PangEEP || Cps1Qs == 1) EEPROMExit();
if (Cps == 2 || PangEEP || Cps1Qs == 1 || CpsBootlegEEPROM) EEPROMExit();
// Sound exit
if (((Cps == 2) && !Cps2DisableQSnd) || Cps1Qs == 1) QsndExit();
@ -199,6 +199,7 @@ INT32 CpsRunExit()
Cps1VBlankIRQLine = 2;
Cps2DisableQSnd = 0;
CpsBootlegEEPROM = 0;
return 0;
}

View File

@ -33,6 +33,7 @@ INT32 Pzloop2 = 0;
INT32 Ssf2tb = 0;
INT32 Dinohunt = 0;
INT32 Port6SoundWrite = 0;
INT32 CpsBootlegEEPROM = 0;
CpsRWSoundCommandCallback CpsRWSoundCommandCallbackFunction = NULL;
@ -192,7 +193,7 @@ static UINT8 CpsReadPort(const UINT32 ia)
// CPS1 EEPROM read
if (ia == 0xC007) {
if (Cps1Qs) {
if (Cps1Qs || CpsBootlegEEPROM) {
return EEPROMRead();
} else {
return 0;
@ -360,7 +361,7 @@ void CpsWritePort(const UINT32 ia, UINT8 d)
}
}
if (Cps1Qs == 1) {
if (Cps1Qs == 1 || CpsBootlegEEPROM) {
//CPS1 EEPROM write
if (ia == 0xc007) {
EEPROMWrite(d & 0x40, d & 0x80, d & 0x01);
@ -425,7 +426,7 @@ void __fastcall CpsWriteByte(UINT32 a,UINT8 d)
return;
}
if (Cps1Qs == 1) {
if (Cps1Qs == 1 || CpsBootlegEEPROM) {
// CPS1 EEPROM
if (a == 0xf1c007) {
CpsWritePort(a & 0xC00F, d);

View File

@ -1335,6 +1335,46 @@ static struct BurnInputInfo WofhfhInputList[] =
STDINPUTINFO(Wofhfh)
static struct BurnInputInfo WofhInputList[] =
{
{"P1 Coin" , BIT_DIGITAL , CpsInp018+0, "p1 coin" },
{"P1 Start" , BIT_DIGITAL , CpsInp018+4, "p1 start" },
{"P1 Up" , BIT_DIGITAL , CpsInp001+3, "p1 up" },
{"P1 Down" , BIT_DIGITAL , CpsInp001+2, "p1 down" },
{"P1 Left" , BIT_DIGITAL , CpsInp001+1, "p1 left" },
{"P1 Right" , BIT_DIGITAL , CpsInp001+0, "p1 right" },
{"P1 Attack" , BIT_DIGITAL , CpsInp001+4, "p1 fire 1" },
{"P1 Jump" , BIT_DIGITAL , CpsInp001+5, "p1 fire 2" },
{"P2 Coin" , BIT_DIGITAL , CpsInp018+1, "p2 coin" },
{"P2 Start" , BIT_DIGITAL , CpsInp018+5, "p2 start" },
{"P2 Up" , BIT_DIGITAL , CpsInp000+3, "p2 up" },
{"P2 Down" , BIT_DIGITAL , CpsInp000+2, "p2 down" },
{"P2 Left" , BIT_DIGITAL , CpsInp000+1, "p2 left" },
{"P2 Right" , BIT_DIGITAL , CpsInp000+0, "p2 right" },
{"P2 Attack" , BIT_DIGITAL , CpsInp000+4, "p2 fire 1" },
{"P2 Jump" , BIT_DIGITAL , CpsInp000+5, "p2 fire 2" },
{"P3 Coin" , BIT_DIGITAL , CpsInp177+6, "p3 coin" }, // doesn't work in some sets?
{"P3 Start" , BIT_DIGITAL , CpsInp177+7, "p3 start" },
{"P3 Up" , BIT_DIGITAL , CpsInp177+3, "p3 up" },
{"P3 Down" , BIT_DIGITAL , CpsInp177+2, "p3 down" },
{"P3 Left" , BIT_DIGITAL , CpsInp177+1, "p3 left" },
{"P3 Right" , BIT_DIGITAL , CpsInp177+0, "p3 right" },
{"P3 Attack" , BIT_DIGITAL , CpsInp177+4, "p3 fire 1" },
{"P3 Jump" , BIT_DIGITAL , CpsInp177+5, "p3 fire 2" },
{"Reset" , BIT_DIGITAL , &CpsReset, "reset" },
{"Service" , BIT_DIGITAL , CpsInp018+2, "service" },
{"Dip A" , BIT_DIPSWITCH, &Cpi01A , "dip" },
{"Dip B" , BIT_DIPSWITCH, &Cpi01C , "dip" },
{"Dip C" , BIT_DIPSWITCH, &Cpi01E , "dip" },
};
STDINPUTINFO(Wofh)
// don't know where this one reads config data from (if at all), reads values at 0x80001a, 0x80001e, 0x80001f (but values make no difference)
// if I force it to use EEPROM, the config data gets forgotten
static struct BurnInputInfo WofsjbInputList[] =
{
{"P1 Coin" , BIT_DIGITAL , CpsInp018+0, "p1 coin" },
@ -3416,27 +3456,132 @@ STDDIPINFO(Wofhfh)
static struct BurnDIPInfo WofhDIPList[]=
{
// Defaults
{0x1b, 0xff, 0xff, 0x03, NULL },
{0x1c, 0xff, 0xff, 0x00, NULL },
{0x1d, 0xff, 0xff, 0xff, NULL },
{0x1a, 0xff, 0xff, 0x00, NULL },
{0x1b, 0xff, 0xff, 0x00, NULL },
{0x1c, 0xff, 0xff, 0x13, NULL },
// Dip A
{0 , 0xfe, 0 , 2 , "Play Mode" },
{0x1b, 0x01, 0x03, 0x03, "Normal" },
{0x1b, 0x01, 0x03, 0x00, "Tournament" },
{0 , 0xfe, 0 , 3 , "Coin Slots" },
{0x1a, 0x01, 0x03, 0x02, "2 Players 1 Shooter" },
{0x1a, 0x01, 0x03, 0x01, "3 Players 1 Shooter" },
{0x1a, 0x01, 0x03, 0x00, "3 Players 3 Shooters" },
// Dip B
{0 , 0xfe, 0 , 4 , "Coinage" },
{0x1c, 0x01, 0x03, 0x00, "1 Coin 1 Credit" },
{0x1c, 0x01, 0x03, 0x01, "1 Coin 2 Credits" },
{0x1c, 0x01, 0x03, 0x02, "1 Coin 3 Credits" },
{0x1c, 0x01, 0x03, 0x03, "1 Coin 4 Credits" },
{0x1b, 0x01, 0x03, 0x00, "1 Coin 1 Credit" },
{0x1b, 0x01, 0x03, 0x01, "1 Coin 2 Credits" },
{0x1b, 0x01, 0x03, 0x02, "1 Coin 3 Credits" },
{0x1b, 0x01, 0x03, 0x03, "1 Coin 4 Credits" },
// Dip C
{0 , 0xfe, 0 , 8 , "Difficulty" },
{0x1c, 0x01, 0x07, 0x00, "Extra Easy" },
{0x1c, 0x01, 0x07, 0x01, "Very Easy" },
{0x1c, 0x01, 0x07, 0x02, "Easy" },
{0x1c, 0x01, 0x07, 0x03, "Normal" },
{0x1c, 0x01, 0x07, 0x04, "Hard" },
{0x1c, 0x01, 0x07, 0x05, "Very Hard" },
{0x1c, 0x01, 0x07, 0x06, "Extra Hard" },
{0x1c, 0x01, 0x07, 0x07, "Hardest" },
{0 , 0xfe, 0 , 8 , "Lives" },
{0x1c, 0x01, 0x70, 0x70, "Start 4 Continue 5" },
{0x1c, 0x01, 0x70, 0x60, "Start 3 Continue 4" },
{0x1c, 0x01, 0x70, 0x50, "Start 2 Continue 3" },
{0x1c, 0x01, 0x70, 0x40, "Start 1 Continue 2" },
{0x1c, 0x01, 0x70, 0x30, "Start 4 Continue 4" },
{0x1c, 0x01, 0x70, 0x20, "Start 3 Continue 3" },
{0x1c, 0x01, 0x70, 0x10, "Start 2 Continue 2" },
{0x1c, 0x01, 0x70, 0x00, "Start 1 Continue 1" },
};
STDDIPINFO(Wofh)
static struct BurnDIPInfo Wof3jsDIPList[]=
{
// Defaults
{0x1a, 0xff, 0xff, 0x00, NULL },
{0x1b, 0xff, 0xff, 0x00, NULL },
{0x1c, 0xff, 0xff, 0x00, NULL },
// Dip A
{0 , 0xfe, 0 , 4 , "Coinage" },
{0x1a, 0x01, 0x03, 0x01, "2 Coins 1 Credit" },
{0x1a, 0x01, 0x03, 0x00, "1 Coin 1 Credit" },
{0x1a, 0x01, 0x03, 0x02, "1 Coin 2 Credits" },
{0x1a, 0x01, 0x03, 0x03, "1 Coin 3 Credits" },
// Dip B
{0 , 0xfe, 0 , 2 , "Coin Slots" },
{0x1b, 0x01, 0x01, 0x01, "3 Players 1 Shooter" },
{0x1b, 0x01, 0x01, 0x00, "3 Players 3 Shooters" },
// Dip C
// not sure about difficulty (no way to test)
{0 , 0xfe, 0 , 8 , "Difficulty" },
{0x1c, 0x01, 0x07, 0x00, "Value 0" },
{0x1c, 0x01, 0x07, 0x01, "Value 1" },
{0x1c, 0x01, 0x07, 0x02, "Value 2" },
{0x1c, 0x01, 0x07, 0x03, "Value 3" },
{0x1c, 0x01, 0x07, 0x04, "Value 4" },
{0x1c, 0x01, 0x07, 0x05, "Value 5" },
{0x1c, 0x01, 0x07, 0x06, "Value 6" },
{0x1c, 0x01, 0x07, 0x07, "Value 7" },
{0 , 0xfe, 0 , 5 , "Lives" },
{0x1c, 0x01, 0x70, 0x40, "Start 1 Continue 1" },
{0x1c, 0x01, 0x70, 0x30, "Start 4 Continue 3" },
{0x1c, 0x01, 0x70, 0x20, "Start 4 Continue 4" },
{0x1c, 0x01, 0x70, 0x10, "Start 3 Continue 3" },
{0x1c, 0x01, 0x70, 0x00, "Start 2 Continue 2" },
};
STDDIPINFO(Wof3js)
static struct BurnDIPInfo Wof3sjDIPList[]=
{
// Defaults
{0x1a, 0xff, 0xff, 0x00, NULL },
{0x1b, 0xff, 0xff, 0x13, NULL },
{0x1c, 0xff, 0xff, 0x00, NULL },
// Dip A
{0 , 0xfe, 0 , 4 , "Coinage" },
{0x1a, 0x01, 0x03, 0x00, "1 Coin 1 Credit" },
{0x1a, 0x01, 0x03, 0x01, "1 Coin 2 Credits" },
{0x1a, 0x01, 0x03, 0x02, "1 Coin 3 Credits" },
{0x1a, 0x01, 0x03, 0x03, "1 Coin 4 Credits" },
// Dip B
{0 , 0xfe, 0 , 8 , "Difficulty" },
{0x1b, 0x01, 0x07, 0x00, "Extra Easy" },
{0x1b, 0x01, 0x07, 0x01, "Very Easy" },
{0x1b, 0x01, 0x07, 0x02, "Easy" },
{0x1b, 0x01, 0x07, 0x03, "Normal" },
{0x1b, 0x01, 0x07, 0x04, "Hard" },
{0x1b, 0x01, 0x07, 0x05, "Very Hard" },
{0x1b, 0x01, 0x07, 0x06, "Extra Hard" },
{0x1b, 0x01, 0x07, 0x07, "Hardest" },
{0 , 0xfe, 0 , 8 , "Lives" },
{0x1b, 0x01, 0x70, 0x70, "Start 4 Continue 5" },
{0x1b, 0x01, 0x70, 0x60, "Start 3 Continue 4" },
{0x1b, 0x01, 0x70, 0x50, "Start 2 Continue 3" },
{0x1b, 0x01, 0x70, 0x40, "Start 1 Continue 2" },
{0x1b, 0x01, 0x70, 0x30, "Start 4 Continue 4" },
{0x1b, 0x01, 0x70, 0x20, "Start 3 Continue 3" },
{0x1b, 0x01, 0x70, 0x10, "Start 2 Continue 2" },
{0x1b, 0x01, 0x70, 0x00, "Start 1 Continue 1" },
// Dip C
{0 , 0xfe, 0 , 3 , "Coin Slots" },
{0x1c, 0x01, 0x03, 0x02, "2 Players 1 Shooter" },
{0x1c, 0x01, 0x03, 0x01, "3 Players 1 Shooter" },
{0x1c, 0x01, 0x03, 0x00, "3 Players 3 Shooters" },
};
STDDIPINFO(Wof3sj)
// Rom Definitions
#define A_BOARD_PLDS \
@ -11089,6 +11234,7 @@ static INT32 DinopicInit()
INT32 nRet = 0;
Cps1DisablePSnd = 1;
CpsBootlegEEPROM = 1;
Cps1GfxLoadCallbackFunction = CpsLoadTilesDinopic;
Cps1ObjGetCallbackFunction = DinopicObjGet;
Cps1ObjDrawCallbackFunction = FcrashObjDraw;
@ -11154,6 +11300,7 @@ static INT32 DinotpicInit()
INT32 nRet = 0;
Cps1DisablePSnd = 1;
CpsBootlegEEPROM = 1;
Cps1GfxLoadCallbackFunction = CpsLoadTilesHack160;
Cps1ObjGetCallbackFunction = DinopicObjGet;
Cps1ObjDrawCallbackFunction = FcrashObjDraw;
@ -11184,6 +11331,7 @@ static INT32 DinohuntInit()
INT32 nRet = 0;
Dinohunt = 1;
CpsBootlegEEPROM = 1;
nRet = TwelveMhzInit();
@ -11968,6 +12116,7 @@ static INT32 PunipicInit()
Cps1DisablePSnd = 1;
bCpsUpdatePalEveryFrame = 1;
Cps1OverrideLayers = 1;
CpsBootlegEEPROM = 1;
Cps1GfxLoadCallbackFunction = CpsLoadTilesDinopic;
Cps1ObjGetCallbackFunction = DinopicObjGet;
Cps1ObjDrawCallbackFunction = FcrashObjDraw;
@ -12003,6 +12152,7 @@ static INT32 Punipic2Init()
Cps1DisablePSnd = 1;
bCpsUpdatePalEveryFrame = 1;
Cps1OverrideLayers = 1;
CpsBootlegEEPROM = 1;
Cps1GfxLoadCallbackFunction = CpsLoadTilesHack160Alt;
Cps1ObjGetCallbackFunction = DinopicObjGet;
Cps1ObjDrawCallbackFunction = FcrashObjDraw;
@ -12031,6 +12181,7 @@ static INT32 Punipic3Init()
Cps1DisablePSnd = 1;
bCpsUpdatePalEveryFrame = 1;
Cps1OverrideLayers = 1;
CpsBootlegEEPROM = 1;
Cps1GfxLoadCallbackFunction = CpsLoadTilesHack160;
Cps1ObjGetCallbackFunction = DinopicObjGet;
Cps1ObjDrawCallbackFunction = FcrashObjDraw;
@ -12846,7 +12997,7 @@ UINT8 __fastcall WofhInputReadByte(UINT32 a)
}
case 0x880007: {
return 0xff;
return ~Inp177;
}
case 0x880008: {
@ -12862,7 +13013,7 @@ UINT8 __fastcall WofhInputReadByte(UINT32 a)
}
case 0x880e78: {
return ~Inp177;
return 0xff;
}
default: {
@ -12870,7 +13021,7 @@ UINT8 __fastcall WofhInputReadByte(UINT32 a)
}
}
return 0;
return 0x00;
}
UINT16 __fastcall WofhInputReadWord(UINT32 a)
@ -13043,91 +13194,6 @@ static INT32 Wof3jsInit()
return TwelveMhzInit();
}
UINT8 __fastcall Wof3jsaInputReadByte(UINT32 a)
{
switch (a) {
case 0x880000: {
return ~Inp000;
}
case 0x880001: {
return ~Inp001;
}
case 0x880006: {
return ~Inp018;
}
case 0x880007: {
return 0xff;
}
case 0x880008: {
return ~Inp177;
}
case 0x88000a: {
return ~Cpi01A;
}
case 0x88000c: {
return ~Cpi01C;
}
case 0x880e78: {
return ~Cpi01E;
}
default: {
bprintf(PRINT_NORMAL, _T("Input Read Byte %x\n"), a);
}
}
return 0;
}
UINT16 __fastcall Wof3jsaInputReadWord(UINT32 a)
{
SEK_DEF_READ_WORD(3, a);
}
void __fastcall Wof3jsaInputWriteByte(UINT32 a, UINT8 d)
{
switch (a) {
case 0x88000e: {
PsndSyncZ80((INT64)SekTotalCycles() * nCpsZ80Cycles / nCpsCycles);
PsndCode = d;
return;
}
default: {
bprintf(PRINT_NORMAL, _T("Input Write Byte %x, %x\n"), a, d);
}
}
}
void __fastcall Wof3jsaInputWriteWord(UINT32 a, UINT16 d)
{
switch (a) {
case 0x88000e: {
PsndSyncZ80((INT64)SekTotalCycles() * nCpsZ80Cycles / nCpsCycles);
PsndCode = d & 0xff;
return;
}
case 0x890000: {
// ???
return;
}
default: {
bprintf(PRINT_NORMAL, _T("Input Write word %x, %x\n"), a, d);
}
}
}
static void Wof3jsaCallback()
{
UINT8 *pTemp = (UINT8*)BurnMalloc(0x40000);
@ -13160,10 +13226,10 @@ static INT32 Wof3jsaInit()
SekOpen(0);
SekMapHandler(3, 0x880000, 0x89ffff, SM_READ | SM_WRITE);
SekSetReadByteHandler(3, Wof3jsaInputReadByte);
SekSetReadWordHandler(3, Wof3jsaInputReadWord);
SekSetWriteByteHandler(3, Wof3jsaInputWriteByte);
SekSetWriteWordHandler(3, Wof3jsaInputWriteWord);
SekSetReadByteHandler(3, WofhInputReadByte);
SekSetReadWordHandler(3, WofhInputReadWord);
SekSetWriteByteHandler(3, WofhInputWriteByte);
SekSetWriteWordHandler(3, WofhInputWriteWord);
SekMapHandler(4, 0xff0000, 0xffffff, SM_WRITE);
SekSetWriteByteHandler(4, WofbFFWriteByte);
SekSetWriteWordHandler(4, WofbFFWriteWord);
@ -13188,7 +13254,7 @@ UINT8 __fastcall Wof3sjInputReadByte(UINT32 a)
}
case 0x880009: {
return 0xff;
return ~Inp177;
}
case 0x88000a: {
@ -13208,7 +13274,7 @@ UINT8 __fastcall Wof3sjInputReadByte(UINT32 a)
}
case 0x880e7e: {
return ~Inp177;
return 0xff;
}
default: {
@ -13416,6 +13482,7 @@ static INT32 WofbInit()
bCpsUpdatePalEveryFrame = 1;
Cps1OverrideLayers = 1;
Port6SoundWrite = 1;
CpsBootlegEEPROM = 1;
CpsLayer1XOffs = 0xffc0;
CpsLayer2XOffs = 0xffc0;
CpsLayer3XOffs = 0xffc0;
@ -15440,7 +15507,7 @@ struct BurnDriver BurnDrvCpsWofh = {
"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,
NULL, WofhRomInfo, WofhRomName, NULL, NULL, WofhInputInfo, WofhDIPInfo,
WofhInit, DrvExit, Cps1Frame, CpsRedraw, CpsAreaScan,
&CpsRecalcPal, 0x1000, 384, 224, 4, 3
};
@ -15450,7 +15517,7 @@ struct BurnDriver BurnDrvCpsWofha = {
"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,
NULL, WofhaRomInfo, WofhaRomName, NULL, NULL, WofhInputInfo, WofhDIPInfo,
WofhInit, DrvExit, Cps1Frame, CpsRedraw, CpsAreaScan,
&CpsRecalcPal, 0x1000, 384, 224, 4, 3
};
@ -15460,7 +15527,7 @@ struct BurnDriver BurnDrvCpsSgyxz = {
"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,
NULL, SgyxzRomInfo, SgyxzRomName, NULL, NULL, WofhInputInfo, WofhDIPInfo,
SgyxzInit, DrvExit, Cps1Frame, CpsRedraw, CpsAreaScan,
&CpsRecalcPal, 0x1000, 384, 224, 4, 3
};
@ -15470,7 +15537,7 @@ struct BurnDriver BurnDrvCpsWof3js = {
"Sangokushi II: San Jian Sheng (Chinese bootleg set 1, 921005 Asia)\0", NULL, "bootleg", "CPS1",
L"\u4E09\u56FD\u5FD7II: \u4E09\u528D\u8056\0Sangokushi II: San Jian Sheng (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, Wof3jsRomInfo, Wof3jsRomName, NULL, NULL, WofhfhInputInfo, WofhfhDIPInfo,
NULL, Wof3jsRomInfo, Wof3jsRomName, NULL, NULL, WofhInputInfo, Wof3jsDIPInfo,
Wof3jsInit, DrvExit, Cps1Frame, CpsRedraw, CpsAreaScan,
&CpsRecalcPal, 0x1000, 384, 224, 4, 3
};
@ -15480,7 +15547,7 @@ struct BurnDriver BurnDrvCpsWof3jsa = {
"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,
NULL, Wof3jsaRomInfo, Wof3jsaRomName, NULL, NULL, WofhInputInfo, WofhDIPInfo,
Wof3jsaInit, DrvExit, Cps1Frame, CpsRedraw, CpsAreaScan,
&CpsRecalcPal, 0x1000, 384, 224, 4, 3
};
@ -15490,7 +15557,7 @@ struct BurnDriver BurnDrvCpsWof3sj = {
"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,
NULL, Wof3sjRomInfo, Wof3sjRomName, NULL, NULL, WofhInputInfo, Wof3sjDIPInfo,
Wof3sjInit, DrvExit, Cps1Frame, CpsRedraw, CpsAreaScan,
&CpsRecalcPal, 0x1000, 384, 224, 4, 3
};
@ -15500,7 +15567,7 @@ struct BurnDriver BurnDrvCpsWof3sja = {
"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,
NULL, Wof3sjaRomInfo, Wof3sjaRomName, NULL, NULL, WofhInputInfo, Wof3sjDIPInfo,
Wof3sjInit, DrvExit, Cps1Frame, CpsRedraw, CpsAreaScan,
&CpsRecalcPal, 0x1000, 384, 224, 4, 3
};
@ -15510,7 +15577,7 @@ struct BurnDriver BurnDrvCpsWofsj = {
"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,
NULL, WofsjRomInfo, WofsjRomName, NULL, NULL, WofhInputInfo, Wof3sjDIPInfo,
WofsjInit, DrvExit, Cps1Frame, CpsRedraw, CpsAreaScan,
&CpsRecalcPal, 0x1000, 384, 224, 4, 3
};
@ -15520,7 +15587,7 @@ struct BurnDriver BurnDrvCpsWofsja = {
"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,
NULL, WofsjaRomInfo, WofsjaRomName, NULL, NULL, WofhInputInfo, Wof3sjDIPInfo,
WofsjInit, DrvExit, Cps1Frame, CpsRedraw, CpsAreaScan,
&CpsRecalcPal, 0x1000, 384, 224, 4, 3
};
@ -15530,7 +15597,7 @@ struct BurnDriver BurnDrvCpsWofsjb = {
"Sangokushi II: Sheng Jian Sanguo (Chinese bootleg set 3, 921005 Asia)\0", "No sound", "bootleg", "CPS1",
L"\u4E09\u56FD\u5FD7II: \u5723\u5251\u4E09\0Sangokushi II: Sheng Jian Sanguo (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, WofsjbRomInfo, WofsjbRomName, NULL, NULL, WofsjbInputInfo, WofDIPInfo,
NULL, WofsjbRomInfo, WofsjbRomName, NULL, NULL, WofsjbInputInfo, NULL,
WofsjbInit, DrvExit, Cps1Frame, CpsRedraw, CpsAreaScan,
&CpsRecalcPal, 0x1000, 384, 224, 4, 3
};