Stretch the time the ping_pong bit flips a bit to bump writes into correct frame. Otherwise they end up getting written at like 99.8% of the frame and overlapping with the next.

This commit is contained in:
Ian Curtis 2019-11-08 20:36:11 +00:00
parent ed2816cea4
commit e1827cfd13

View file

@ -553,7 +553,6 @@ UINT8 CModel3::ReadInputs(unsigned reg)
adc[1] = (UINT8)Inputs->analogGunX[1]->value;
adc[3] = (UINT8)Inputs->analogGunY[1]->value;
/*
// Unclear why this is necessary or how to cleanly fix it, so I'm
// disabling it but leaving it here for future reference. The proper fix is
// probably to allow users to define inverted controls for this game only,
@ -566,7 +565,6 @@ UINT8 CModel3::ReadInputs(unsigned reg)
adc[2] = (UINT8)Inputs->analogGunX[1]->value;
adc[3] = 255 - (UINT8)Inputs->analogGunY[1]->value;
}
*/
}
if ((m_game.inputs & Game::INPUT_SKI))
@ -2083,7 +2081,7 @@ void CModel3::RunMainBoardFrame(void)
unsigned gapCycles = (unsigned)((float)frameCycles * 2.5f / 100.0f); // we need a gap between asserting irq2 & irq 0x40
unsigned offsetCycles = (unsigned)((float)frameCycles * 33.f / 100.0f);
unsigned dispCycles = frameCycles - gapCycles - offsetCycles;
unsigned statusCycles = (unsigned)((float)frameCycles * (0.001f));
unsigned statusCycles = (unsigned)((float)frameCycles * (0.005f));
// we think a frame looks like this on the model 2
// 66% of frame