Allow dino,punisher,wof bootlegs that use dipswitches to use EEPROM, tidy up all wof sets inputs and dips
This commit is contained in:
parent
d8a776ddd5
commit
8858f14414
|
@ -242,6 +242,7 @@ extern INT32 Pzloop2;
|
|||
extern INT32 Ssf2tb;
|
||||
extern INT32 Dinohunt;
|
||||
extern INT32 Port6SoundWrite;
|
||||
extern INT32 CpsBootlegEEPROM;
|
||||
|
||||
extern UINT8* CpsEncZRom;
|
||||
|
||||
|
|
|
@ -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);
|
||||
}
|
||||
|
||||
|
|
|
@ -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;
|
||||
}
|
||||
|
|
|
@ -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);
|
||||
|
|
|
@ -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
|
||||
};
|
||||
|
|
Loading…
Reference in New Issue