d_mystwarr: deal with picky game. grr
This commit is contained in:
parent
0fdc163af7
commit
4eef789684
|
@ -2844,8 +2844,10 @@ static INT32 DrvFrame()
|
|||
ZetNewFrame();
|
||||
|
||||
INT32 nInterleave = 60;
|
||||
//INT32 nCyclesTotal[2] = { 16000000 / 60, 8000000 / 60 };
|
||||
INT32 nCyclesTotal[2] = { (INT32)((double)16000000 / 59.185606), (INT32)((double)8000000 / 59.185606) };
|
||||
INT32 nCyclesDone[2] = { 0, 0 };
|
||||
INT32 drawn = 0;
|
||||
|
||||
SekOpen(0);
|
||||
ZetOpen(0);
|
||||
|
@ -2857,17 +2859,12 @@ static INT32 DrvFrame()
|
|||
{
|
||||
if (i == 0)
|
||||
SekSetIRQLine(4, CPU_IRQSTATUS_AUTO);
|
||||
|
||||
if (i == ((nInterleave * 240)/256)) {
|
||||
// note: mystwarr is really picky.
|
||||
// draw @ vbl: weird flickers between scene transitions in attract sequence, so we draw at end of frame instead.
|
||||
if (i == ((nInterleave * (240+10))/256)) { // +10 otherwise flickers on char.selection screen (mystwarr)
|
||||
SekSetIRQLine(2, CPU_IRQSTATUS_AUTO);
|
||||
}
|
||||
}
|
||||
|
||||
if (i == ((nInterleave * 240)/256)) {
|
||||
if (pBurnDraw) {
|
||||
DrvDraw();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (nGame == 2 || nGame == 3)
|
||||
|
@ -2883,7 +2880,9 @@ static INT32 DrvFrame()
|
|||
SekSetIRQLine(5, CPU_IRQSTATUS_AUTO);
|
||||
|
||||
if (pBurnDraw) {
|
||||
// draw here to fix flickery and missing text in service mode
|
||||
DrvDraw();
|
||||
drawn = 1;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -2902,6 +2901,7 @@ static INT32 DrvFrame()
|
|||
if (i == ((nInterleave * 247) / 256)) {
|
||||
if (pBurnDraw) {
|
||||
DrvDraw();
|
||||
drawn = 1;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -2913,6 +2913,7 @@ static INT32 DrvFrame()
|
|||
|
||||
if (pBurnDraw) {
|
||||
DrvDraw();
|
||||
drawn = 1;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -2934,6 +2935,12 @@ static INT32 DrvFrame()
|
|||
ZetClose();
|
||||
SekClose();
|
||||
|
||||
if (!drawn) {
|
||||
if (pBurnDraw) {
|
||||
DrvDraw();
|
||||
}
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in New Issue