Hi,
I've almost lost my mind on this issue..SSF2T and his clones have always been choppy, skipped a lot of frames and seemed to not run correctly (I think that a lot of the complaints in the "Unwanted Frameskip" thread are also because of this).
So I've started to try to analyze the fba sources and I think and hope I've finally found the cause of the problem, so I've recompiled the emulator with my changes and now the game seems to run perfectly.
Below my changes, obviously I'm asking for a confirmation by the devs about it:
file cps_run.cpp, inside Cps2Frame function:
// GetPalette(0, 4); // Get palettes
// CpsObjGet(); // Get objects
for (i = 0; i < 3; i++) {
nNext = ((i + 1) * nDisplayEnd) / 3; // find out next cycle count to run to
while (nNext > nIrqCycles && nInterrupt < MAX_RASTER) {
SekRun(nIrqCycles - SekTotalCycles());
DoIRQ();
}
SekRun(nNext - SekTotalCycles()); // run cpu
}
GetPalette(0, 4); // Get palettes
CpsObjGet(); // Get objects
Pratically I've moved the GetPalette and CpsObjGet calls after the "for" cycle to find out next cycle count to run to.
You can verify the benefits of this change especially while playing on the ryu stage.
I really hope that this doesn't break anything, anyone that knows that game could confirm that actually it's quite unplayable, so please try this fix and let me know.
Thank you
Manlio