Not too long ago, we saw the first release of the Mode 7 HD mod by DerKoun
for bsnes, a Super Nintendo emulator. This allowed for SNES games that utilized Mode 7 to be upscaled at up to 4x their original resolution. Byuu, the lead developer behind bsnes, then incorporated DerKoun's code into an official branch of the emulator, to be built upon. After a few tweaks here and there, the 5th beta of the "Mode 7 HD" mod has released, bringing with it some new changes and additions. Firstly, this branch of the emulator has gotten an official name: bsnes-hd. This was done not only for clarity on the title of the project, but also because DerKoun plans to add new upscaling features to more than just Mode 7 related things. Notably, a widescreen mode for non-Mode 7 backgrounds has also been added, though it's buggy and can cause crashes in specific games such as Donkey Kong Country, while F-Zero appears to work fine, and Super Mario World, though it has some issues, it also plays well enough. You can try games out for yourself by grabbing the latest beta of bsnes-hd down below.
Download (Windows and source):
This is, of course, offered as-is.
If anyone could provide binaries for Mac, Linux or anything else it would be much appreciated.
The project is now named "bsnes-hd", as "HD Mode 7 mod" was simply too long. Also I have moved beyond just Mode 7 and have plans for more. A repository will be available soon.
- Widescreen for non-Mode 7 backgrounds. Results of course vary between games and even scenes.
To avoid HUDs repeating and other unwanted effects I have added settings to disable widescreen for the separate background layers and even just the top or bottom of a layer.
The default is always "on" for all 4. Sample values for some games are:
"F-Zero": BG3: "off"
"HyperZone": BG2: ">80"
Please post settings for other games here.
2. Sprites that are partially inside the non-widescreen area are now drawn entirely when possible.
The new "unsafe sprites" settings allow sprites to enter widescreen areas further if the game keeps updating them. This will however cause significant artifacts in many games. If ROM-hackers want to discuss optimizing games for this, feel free to contact me.
3. more widescreen aspect ratios (16:10, 21:9, ...)
- Setting very high scale factors and a widescreen AR at the same time causes the emulator to terminate. The solution would be increasing the size of the arrays that store the pixels. That, however, causes lower frame rates at any settings. So I won't fix this, until I can do so without impacting performance for everyone. My lack of C++ experience makes this difficult. Maybe someone can help me out here.
- (edit) The logo intro of Donkey Kong Country crashes in widescreen.
Auto detection for perspective correction. I know I wanted to that first, and I have the fundamentals done, but the widescreen additions just got done quicker. I'll keep working on it.
Thanks for all the feedback, and the articles and videos. It's still feels kind of unreal to me.