Hi Ryan, yeah I'm one of those people who wants to know the gubbins inside but cannot understand code, so thank fuck for emulators and ram watches or my speedruns would be so basic
I found the issue with both Rev 01 and Rev 00 - the only differences between them are things like frame rate and bike handling. I've also got visual evidence that the fault is present on SHO Arcade MAME. I found a simple way to prove it, I started a race in Asia and on the first frame score had ticked to 400 I paused, and set the following values fixed in memory:
-I froze the bytes handling AI collision, $065A and $C7C0, so no collision would affect position or speed
-I set $055A at "500" and $064A at "250" which set speed to 290km.
-I set $0614 to freeze at 0 guaranteeing middle track position throughout to ensure the sectors were the same length.
In S1, I finished with a time of 35"80, and did not change speed for S2. The time for S2 was therefore performed with a constant speed of 290km/h, and was timed at 34"80.
I reset the game, and set 267km/h for S1 - 267km/h. Before the checkpoint for S2 I changed speed back to 290km/h for S2. The time for S1 was 38"56, S2 showed up as 34"53.
As a speedrunner I don't know what level of work would go into making a hack patch of the game. What would be required, is either
-a patch that ensures the timer counts from 00"00 with each new sector, or
-a patch that edits the sector times stored in area $040C onwards to their correct times so that the final IGT shown is correct. To my understanding both of those would result in the same correction. If it is a lot of work however we can use a pencil and paper to do manual adjustments, indeed it didn't take me long to do that for our current leaderboards.