Turning a game like Super Mario World for SNES into a widescreen game is not a small task, but [Vitor Vilela] accomplished just that. [Vitor] has a long list of incredible patches such as optimizing code for better frame rates and adding code to take advantage of the SA-1 accelerator chip, so out of anyone he has the know-how to pull a widescreen mod off. This patch represents a true labor of love as many levels were designed with a specific screen width in mind. [Vitor] went through each of these single-screen width levels and expanded them by writing the extra assembly needed.
On a technical level, this hack was achieved by using the panning feature built into the game. The left and right shoulder buttons allowed a player to pan the camera to the left and right. The viewport is considered to be two times the screen resolution and so items will be rendered within the widescreen resolution. By taking away the panning feature and render a larger section of the viewport to the screen, you get a widescreen view. However, to save cycles, enemies and items don’t start moving until they get close to the screen edge. So how do you make a game widescreen without ruining the timing of every enemy that spawns? Suddenly the hours of muscle memory that fans have drilled in over the years is a disadvantage rather than a strength. The answer is a significant time investment and an eye for detail.
All the code is available on GitHub. A video of a playthrough of the mod is after the break.
I’ve always daydreamed of doing something like this for the nes. Thanks!
Looks like it’s always been like this. Amazing job.
WOW! This is incredible. Seriously, the amount of knowledge needed and effort to pull this off is simply absurd. They did the original authors proud.
What about the levels where the progression forward is controlled? The viewport is kind of part of the game play.
This would be awesome on a SNES mini!
Hopefully someone gets this working with the Super Mario World real time 2 player mod, that would be incredible!
You can pan the camera? Shit.