mirror of
https://github.com/libretro/FBNeo.git
synced 2025-02-25 12:30:39 +00:00
cps1: draw future frame for most games, at vblank for problematic ones
This commit is contained in:
parent
d053292ea9
commit
3600140fe8
@ -194,6 +194,7 @@ extern INT32 nIrqLine50, nIrqLine52; // The scanlines at which the interr
|
||||
extern INT32 nCpsNumScanlines;
|
||||
extern INT32 Cps1VBlankIRQLine;
|
||||
extern INT32 CpsDrawSpritesInReverse;
|
||||
extern INT32 Cps1DrawAtVblank;
|
||||
INT32 CpsRunInit();
|
||||
INT32 CpsRunExit();
|
||||
INT32 Cps1Frame();
|
||||
|
@ -20,6 +20,8 @@ INT32 nIrqLine50, nIrqLine52;
|
||||
INT32 nCpsNumScanlines = 262;
|
||||
INT32 Cps1VBlankIRQLine = 2;
|
||||
|
||||
INT32 Cps1DrawAtVblank = 0;
|
||||
|
||||
CpsRunInitCallback CpsRunInitCallbackFunction = NULL;
|
||||
CpsRunInitCallback CpsRunExitCallbackFunction = NULL;
|
||||
CpsRunResetCallback CpsRunResetCallbackFunction = NULL;
|
||||
@ -203,6 +205,8 @@ INT32 CpsRunExit()
|
||||
Cps2DisableQSnd = 0;
|
||||
CpsBootlegEEPROM = 0;
|
||||
|
||||
Cps1DrawAtVblank = 0;
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
@ -335,7 +339,7 @@ INT32 Cps1Frame()
|
||||
|
||||
SekSetIRQLine(Cps1VBlankIRQLine, CPU_IRQSTATUS_AUTO); // Trigger VBlank interrupt
|
||||
|
||||
if (pBurnDraw) {
|
||||
if (Cps1DrawAtVblank && pBurnDraw) {
|
||||
CpsDraw(); // Draw frame
|
||||
}
|
||||
}
|
||||
@ -343,6 +347,10 @@ INT32 Cps1Frame()
|
||||
SekRun(nNext - SekTotalCycles()); // run 68K
|
||||
}
|
||||
|
||||
if (pBurnDraw && !Cps1DrawAtVblank) {
|
||||
CpsDraw(); // Draw frame
|
||||
}
|
||||
|
||||
if (Cps1Qs == 1) {
|
||||
QsndEndFrame();
|
||||
} else {
|
||||
|
@ -14775,6 +14775,13 @@ static INT32 Wonder3bInit()
|
||||
return nRet;
|
||||
}
|
||||
|
||||
static INT32 Cps1RasterInit()
|
||||
{
|
||||
Cps1DrawAtVblank = 1;
|
||||
|
||||
return DrvInit();
|
||||
}
|
||||
|
||||
static INT32 CaptcommbInit()
|
||||
{
|
||||
CpsLayer1XOffs = -8;
|
||||
@ -14783,8 +14790,8 @@ static INT32 CaptcommbInit()
|
||||
CpsDrawSpritesInReverse = 1;
|
||||
Cps1DetectEndSpriteList8000 = 1;
|
||||
Cps1GfxLoadCallbackFunction = CpsLoadTilesCaptcommb;
|
||||
|
||||
return DrvInit();
|
||||
|
||||
return Cps1RasterInit();
|
||||
}
|
||||
|
||||
static INT32 Captcommb2Init()
|
||||
@ -14798,7 +14805,7 @@ static INT32 Captcommb2Init()
|
||||
CpsRWSoundCommandCallbackFunction = Sf2mdtSoundCommand;
|
||||
CpsMemScanCallbackFunction = Sf2mdtScanSound;
|
||||
|
||||
return DrvInit();
|
||||
return Cps1RasterInit();
|
||||
}
|
||||
|
||||
UINT8 __fastcall CawingblInputReadByte(UINT32 a)
|
||||
@ -15997,7 +16004,7 @@ static INT32 MtwinsbInit()
|
||||
Cps1ObjDrawCallbackFunction = FcrashObjDraw;
|
||||
CpsMemScanCallbackFunction = CpsBootlegSpriteRamScanCallback;
|
||||
|
||||
nRet = DrvInit();
|
||||
nRet = Cps1RasterInit();
|
||||
|
||||
CpsBootlegSpriteRam = (UINT8*)BurnMalloc(0x4000);
|
||||
|
||||
@ -18783,7 +18790,7 @@ struct BurnDriver BurnDrvCpsCaptcomm = {
|
||||
NULL, NULL, NULL, NULL,
|
||||
BDF_GAME_WORKING | BDF_HISCORE_SUPPORTED, 4, HARDWARE_CAPCOM_CPS1, GBF_SCRFIGHT, 0,
|
||||
NULL, CaptcommRomInfo, CaptcommRomName, NULL, NULL, NULL, NULL, CaptcommInputInfo, CaptcommDIPInfo,
|
||||
DrvInit, DrvExit, Cps1Frame, CpsRedraw, CpsAreaScan,
|
||||
Cps1RasterInit, DrvExit, Cps1Frame, CpsRedraw, CpsAreaScan,
|
||||
&CpsRecalcPal, 0x1000, 384, 224, 4, 3
|
||||
};
|
||||
|
||||
@ -18793,7 +18800,7 @@ struct BurnDriver BurnDrvCpsCaptcommr1 = {
|
||||
NULL, NULL, NULL, NULL,
|
||||
BDF_GAME_WORKING | BDF_CLONE | BDF_HISCORE_SUPPORTED, 4, HARDWARE_CAPCOM_CPS1, GBF_SCRFIGHT, 0,
|
||||
NULL, Captcommr1RomInfo, Captcommr1RomName, NULL, NULL, NULL, NULL, CaptcommInputInfo, CaptcommDIPInfo,
|
||||
DrvInit, DrvExit, Cps1Frame, CpsRedraw, CpsAreaScan,
|
||||
Cps1RasterInit, DrvExit, Cps1Frame, CpsRedraw, CpsAreaScan,
|
||||
&CpsRecalcPal, 0x1000, 384, 224, 4, 3
|
||||
};
|
||||
|
||||
@ -18803,7 +18810,7 @@ struct BurnDriver BurnDrvCpsCaptcommu = {
|
||||
NULL, NULL, NULL, NULL,
|
||||
BDF_GAME_WORKING | BDF_CLONE | BDF_HISCORE_SUPPORTED, 4, HARDWARE_CAPCOM_CPS1, GBF_SCRFIGHT, 0,
|
||||
NULL, CaptcommuRomInfo, CaptcommuRomName, NULL, NULL, NULL, NULL, CaptcommInputInfo, CaptcommDIPInfo,
|
||||
DrvInit, DrvExit, Cps1Frame, CpsRedraw, CpsAreaScan,
|
||||
Cps1RasterInit, DrvExit, Cps1Frame, CpsRedraw, CpsAreaScan,
|
||||
&CpsRecalcPal, 0x1000, 384, 224, 4, 3
|
||||
};
|
||||
|
||||
@ -18813,7 +18820,7 @@ struct BurnDriver BurnDrvCpsCaptcommj = {
|
||||
NULL, NULL, NULL, NULL,
|
||||
BDF_GAME_WORKING | BDF_CLONE | BDF_HISCORE_SUPPORTED, 4, HARDWARE_CAPCOM_CPS1, GBF_SCRFIGHT, 0,
|
||||
NULL, CaptcommjRomInfo, CaptcommjRomName, NULL, NULL, NULL, NULL, CaptcommInputInfo, CaptcommDIPInfo,
|
||||
DrvInit, DrvExit, Cps1Frame, CpsRedraw, CpsAreaScan,
|
||||
Cps1RasterInit, DrvExit, Cps1Frame, CpsRedraw, CpsAreaScan,
|
||||
&CpsRecalcPal, 0x1000, 384, 224, 4, 3
|
||||
};
|
||||
|
||||
@ -18823,7 +18830,7 @@ struct BurnDriver BurnDrvCpsCaptcommjr1 = {
|
||||
NULL, NULL, NULL, NULL,
|
||||
BDF_GAME_WORKING | BDF_CLONE | BDF_HISCORE_SUPPORTED, 4, HARDWARE_CAPCOM_CPS1, GBF_SCRFIGHT, 0,
|
||||
NULL, Captcommjr1RomInfo, Captcommjr1RomName, NULL, NULL, NULL, NULL, CaptcommInputInfo, CaptcommDIPInfo,
|
||||
DrvInit, DrvExit, Cps1Frame, CpsRedraw, CpsAreaScan,
|
||||
Cps1RasterInit, DrvExit, Cps1Frame, CpsRedraw, CpsAreaScan,
|
||||
&CpsRecalcPal, 0x1000, 384, 224, 4, 3
|
||||
};
|
||||
|
||||
@ -19763,7 +19770,7 @@ struct BurnDriver BurnDrvCpsMtwins = {
|
||||
NULL, NULL, NULL, NULL,
|
||||
BDF_GAME_WORKING | BDF_HISCORE_SUPPORTED, 2, HARDWARE_CAPCOM_CPS1, GBF_PLATFORM, 0,
|
||||
NULL, MtwinsRomInfo, MtwinsRomName, NULL, NULL, NULL, NULL, MtwinsInputInfo, MtwinsDIPInfo,
|
||||
DrvInit, DrvExit, Cps1Frame, CpsRedraw, CpsAreaScan,
|
||||
Cps1RasterInit, DrvExit, Cps1Frame, CpsRedraw, CpsAreaScan,
|
||||
&CpsRecalcPal, 0x1000, 384, 224, 4, 3
|
||||
};
|
||||
|
||||
@ -19773,7 +19780,7 @@ struct BurnDriver BurnDrvCpsChikij = {
|
||||
NULL, NULL, NULL, NULL,
|
||||
BDF_GAME_WORKING | BDF_CLONE | BDF_HISCORE_SUPPORTED, 2, HARDWARE_CAPCOM_CPS1, GBF_PLATFORM, 0,
|
||||
NULL, ChikijRomInfo, ChikijRomName, NULL, NULL, NULL, NULL, MtwinsInputInfo, MtwinsDIPInfo,
|
||||
DrvInit, DrvExit, Cps1Frame, CpsRedraw, CpsAreaScan,
|
||||
Cps1RasterInit, DrvExit, Cps1Frame, CpsRedraw, CpsAreaScan,
|
||||
&CpsRecalcPal, 0x1000, 384, 224, 4, 3
|
||||
};
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user