XaiJu
JOTEGO
JOTEGO

patreon


CPS1/CPS1.5 Accuracy

Accuracy of the core; that is what we all want.

I was concerned about the speed of the CPS1  core for a long time. But I needed a reliable way to measure it. I bought the tools to replace the ROMs in an SF2 PCB with my test code. Then, I contacted Grego2D (the author of Final Fight Anniversary Edition) and asked him to write the test code.

The test runs a counter in a loop and shows how many counts can be done in a frame. 

The results were appaling: the core was 20% slower in normal mode and 20% faster in turbo mode. MAME, in comparison, is 45% faster. So we were doing better than MAME, but a 20% error was not acceptable.

I corrected the DMA code and got to 15%. Then, I checked over and over the bus wait logic. And, finally, I got it down to 0.08%. Yes, 0.08% error in a demanding test. I think a verified figure of this magnitude deserved a post and a core update.

We still have to test other DMA cases, which may explain the remaining 0.08% difference. But be sure that we will nail this.

Please run the update tool, or look for the files in jtbin. This update also fixes other reported issues.




CPS1/CPS1.5 Accuracy CPS1/CPS1.5 Accuracy CPS1/CPS1.5 Accuracy CPS1/CPS1.5 Accuracy

Comments

Anyone else using their F5 key too much today?

Turboman UK

Yes, I think the oscillator drift in the old PCB accounts for some of that discrepancy.

JOTEGO

0.08%.. ?? Isn’t the tolerance level of sync larger than that error margin?... not that I’m complaining :)

Spiff


More Creators