Fixing Fighting Vipers 2 attract mode slowdown

When running Fighting Vipers 2 in Supermodel, the game suffers from slowdown during attract mode unless the PowerPC is set to 100 MHz or higher; after a bit of digging I've managed to find what's causing it.
Every few frames, the subroutine 0x5655C is called which does some kind of processing in a loop; not sure exactly what it does. At the end of the loop is a call to the subroutine 0xA49C which checks how many microseconds have passed since the start of the frame; if more than 16584 microseconds have passed, it exits the loop and postpones further processing until the next frame. At this point the game hasn't yet written any data to ping pong RAM (0x8E000000) so it needs to do that before time runs out otherwise the frame is skipped and slowdown occurs.
The real Model 3 runs at a refresh rate of ~57.524 Hz, which gives a total of 17384 microseconds per frame. This means that after the game exits the processing loop, 800 microseconds are left to copy data to ping pong RAM and perform any other procedures required to render the current frame. But Supermodel runs the emulated Model 3 at 60 Hz, which gives 16666 microseconds per frame; this leaves a mere 82 microseconds to finish the frame! Running the PowerPC any lower than 100 MHz results in slowdown because it can't finish processing the frames in time.
The best way to fix this I can think of is to set frameCycles = ppcCycles / 57.524 within RunMainBoardFrame(), which effectively runs the PowerPC about 4% faster than specified in the config file. I tried this and the Fighting Vipers 2 attract mode now runs smoothly even with the PowerPC set to just 50 MHz. Supermodel itself still runs at 60 Hz and audio playback is unaffected.
As a side note, I would expect this change to make Virtua Striker 2 run 4% faster because of the increase in timer frequency.
Every few frames, the subroutine 0x5655C is called which does some kind of processing in a loop; not sure exactly what it does. At the end of the loop is a call to the subroutine 0xA49C which checks how many microseconds have passed since the start of the frame; if more than 16584 microseconds have passed, it exits the loop and postpones further processing until the next frame. At this point the game hasn't yet written any data to ping pong RAM (0x8E000000) so it needs to do that before time runs out otherwise the frame is skipped and slowdown occurs.
The real Model 3 runs at a refresh rate of ~57.524 Hz, which gives a total of 17384 microseconds per frame. This means that after the game exits the processing loop, 800 microseconds are left to copy data to ping pong RAM and perform any other procedures required to render the current frame. But Supermodel runs the emulated Model 3 at 60 Hz, which gives 16666 microseconds per frame; this leaves a mere 82 microseconds to finish the frame! Running the PowerPC any lower than 100 MHz results in slowdown because it can't finish processing the frames in time.
The best way to fix this I can think of is to set frameCycles = ppcCycles / 57.524 within RunMainBoardFrame(), which effectively runs the PowerPC about 4% faster than specified in the config file. I tried this and the Fighting Vipers 2 attract mode now runs smoothly even with the PowerPC set to just 50 MHz. Supermodel itself still runs at 60 Hz and audio playback is unaffected.
As a side note, I would expect this change to make Virtua Striker 2 run 4% faster because of the increase in timer frequency.