Re: Understanding the PowerPC Clock Speed.
Posted: Tue Jul 02, 2024 5:53 pm
Supermodel now behaves like any ordinary emulator, including MAME, does: it emulates the number of CPU cycles per frame that the hardware actually ran at. Model 3 has 3 board revisions all with different CPU clock speeds.
The reason CPU speed was configurable in the first place was primarily because the PowerPC emulator in Supermodel is slow and written as a very straightforward interpreter. There's no fancy JIT compilation happening as in other emulators, like Dolphin. In the Mesozoic Era, when Supermodel first appeared, PCs were slow and the CPU emulator ate a surprising amount of time. Most Model 3 games spend a considerable amount of time doing nothing, spinning in a loop waiting for the Real3D board to finish rendering, which just burns CPU execution time. In these cases, we could reduce the PowerPC frequency -- reduce the number of emulated cycles, since many of them were spent sitting in an idle loop -- and therefore the burden on the host CPU, increasing emulator performance and overall frame rate.
As the intricacies of Model 3 frame timing became clear and emulated properly, this started to make less sense. In order to get rid of various timing-related hacks, we want to run the full frame of cycles and trigger events at the appropriate times. But most importantly of all, PCs now are more than fast enough to handle emulating even a 166 MHz PowerPC (Step 2.x games) without breaking a sweat. Arguably, the clock speed option should be removed entirely. It was nothing more than an ugly hack to begin with.
The reason CPU speed was configurable in the first place was primarily because the PowerPC emulator in Supermodel is slow and written as a very straightforward interpreter. There's no fancy JIT compilation happening as in other emulators, like Dolphin. In the Mesozoic Era, when Supermodel first appeared, PCs were slow and the CPU emulator ate a surprising amount of time. Most Model 3 games spend a considerable amount of time doing nothing, spinning in a loop waiting for the Real3D board to finish rendering, which just burns CPU execution time. In these cases, we could reduce the PowerPC frequency -- reduce the number of emulated cycles, since many of them were spent sitting in an idle loop -- and therefore the burden on the host CPU, increasing emulator performance and overall frame rate.
As the intricacies of Model 3 frame timing became clear and emulated properly, this started to make less sense. In order to get rid of various timing-related hacks, we want to run the full frame of cycles and trigger events at the appropriate times. But most importantly of all, PCs now are more than fast enough to handle emulating even a 166 MHz PowerPC (Step 2.x games) without breaking a sweat. Arguably, the clock speed option should be removed entirely. It was nothing more than an ugly hack to begin with.