If you were a Nintendo kid in the ’90s, you were probably blown away by how starfox and its SuperFX chip could render full 3D worlds on 1993-era SNES hardware. If you go back to play the game today, though, you’ll probably be let down by the game’s choppy frame rate, which maxes out at a halting 20 fps.
Enter long starfox rom hacker kandowontuwho’s responsible for the feature-packed Star Fox Exploration Showcase hack. This week, kando released a patch that unlocks 30 or even 60 fps modes in an emulated starfox (gold Star Fox 2em) ROMs. The result is an extremely smooth experience that probably comes closer to matching the rose-colored memories you have of early ’90s starfox than the original game ever could.
A problem of design
Attempts to speed up starfox are nothing new in the hacking and emulation communities. For years players have overclocked SuperFX chips or run emulators at higher speeds to try to up the game’s frame rate.
But while these methods make starfox run more quickly (and smoothly), they also speed up the game’s internal logic to the same degree. That means enemy ships and your Arwing fly much faster than Nintendo intended, an effect that also throws the game’s excellent music out of sync with the auto-scrolling action on-screen. Tripling the game’s speed to get to a 60 fps experience makes it unplayably fast, by all accounts.
The design and limitations of the original SuperFX chip make this a tricky problem to solve. In a game like starfox, the SuperFX chip can take two entire frame cycles to transfer its 3D images to the system’s video RAM (that’s despite using only 75 percent of the available screen real estate). Add in calculation time for game logic, enemy movement, etc., and the game displays a new frame at just one-third of the SNES’ standard 60 fps rate.
“SuperFX games are kind of a special case,” emulator author near (aka byuu) told Ars in 2019 while discussing an overclocking-focused update to their accuracy-focused emulator bsnes. “Since they tend to not run at 60 fps due to the demands of software rasterizing entire screens on the SNES, the game logic is designed around the frame rates. So even if you speed up starfoxthe game engine will appear to be running too fast now.”
Slow your roll
To get around this issue, kando’s hack first reprograms the game to run three frames’ worth of instructions (as measured in IRQ routines) in the space of one frame cycle (or two game cycles for 30 fps mode). But to prevent the gameplay itself from speeding up, kando programmed his version to only recalculate the game logic (or “strats”) every third frame (or every other frame for 30 fps mode). “This slows the game back down to its ORIGINAL pace,” kando writes.
Unfortunately, kando notes that this hacked version of the game still needs help from an overclocked SNES CPU and, therefore, won’t work on stock SNES hardware. Even in emulators configured to run in overclocked mode, kando warns that, in 60 fps mode, “when there are a few objects on the screen the FPS becomes very variable between 30-60 fps (there also seem to be some issues with music speed in 60 fps playback).
Limitations aside, it’s great to relive starfox‘s action-packed gameplay without the nausea-inducing frame rates inherent to early ’90s 3D graphics (or the nausea-inducing game speeds of previous frame rate hacks). We’ll be playing it this weekend alongside our slowdown-free, SA-1 enhanced copy of Gradius III in an attempt to relive the best version of our childhood.