Speed up —
Original SA-1 enhancement chip leads to 2-3x speed improvement on real hardware.
Many gamers of a certain age (this author included) remember the early ’90s disappointment of buying the SNES version of hit arcade shmupGradius III. In magazine screenshots, the game’s huge, colorful sprites were a sight to behold, comparable to the 1989 arcade original. In action, though, any scene with more than a handful of enemies would slow to a nearly unplayable crawl on the underpowered SNES hardware.
Now, Brazilian ROM hacker Vitor Vilela has righted this nearly three-decade-old wrong with a ROM patch that creates a new, slowdown-free version of the game for play on SNES emulators and standard hardware.
The key to Vilela’s efforts is the SA-1 chip, an enhancement co-processor that was found in some late-era SNES cartridges likeSuper Mario RPGandKirby Super Star. Besides sporting a faster clock speed than the standard SNES CPU (up to 10.74 Mhz versus 3.58 Mhz for the CPU), SA-1 also opens up faster mathematical functions, improved graphics manipulation, and parallel processing capabilities for SNES programmers.
Vilela has been working for months with old SA-1 development hardware and modern development tools to document that chip’s inner workings and mappings. As of this week, Vilela says that work onGradius IIIcan now be considered “stable” and that “the new SA-1 era” can begin.
Unlike specialty chips such as the well-known Super FX, the SA-1 has the same architecture as the core SNES CPU, which makes porting code written for the base system easier. But that doesn’t mean you can just add the chip to any game ROM and get an instant speed boost. Vilela writes that it took “three months of researchment [sic], disassembly, code analysis, memory remapping, and code editing” to get to this point. The patch “changes most of the data structures [and] pointers and finally creates an intermediate system for calling SA-1 for most intensive routines and the SNES for the PPU/APU interaction routines and V-blank refreshing.”
The result, as is apparent in the comparison videos embedded here, is a version ofGradius IIIthat Vilela says runs two to three times faster than the original. It also keeps its silky smooth frame rate no matter how many detailed, screen-filling sprites clutter the scene. That’s even true in the game’s notorious, bubble-filled Stage 2, which is transformed from a jittery slide show to an amazing showcase of the SNES’ enhanced power. As if that wasn’t enough, the patch even slashes the game’s loading times, cutting a full 3.25 seconds from the notably slow startup animation.
While impressive from a technical standpoint, one could argue this patch ruins the wayGradius IIIwas meant to be played. Vilela notes that the lack of slowdown “makes it incredibly super difficult” and even suggests that “some arcade segments of the game do not look RTA (real-time action) viable with SA-1. But we shouldn’t underestimate the human capabilities.”
Real SNES hardware reportedly has no problem with the SA-1 patchedGradius III, even when running through a tool like SD2SNES. But while Vilela says “the most up-to-date SNES emulators including bsnes and Snes9x” will work with the patched version of the game, emulators like ZSNES are not compatible.
With the root work in place, Vilela is already fielding requests for other slowdown-prone SNES games that could benefit from the SA-1 porting treatment. For now though, he says he’ll return to work onTouhou Mario World 2, which is a “bullet hell” version of the platformer that shows off the SA-1’s capabilities.
Coming on the heels of a recent “HD emulation mod” that enhances the clarity of “Mode 7” SNES games, we have to wonder what other enhancements the modern hacking community can bring to the 16-bit gaming era.
Listing image by Konami