SNES – Super Mario World Widescreen
github.com
github.com
I can't remember -- does Super Mario World have any "single-room" fixed-width gameplay areas? I mean, it must, right?
I'm wondering how they addressed those, since making any room wider would change gameplay. I also can't help but wonder if being able to see a little bit further to the right would ever make anything easier? Or is the distance forward (to the right) fixed to the same value, so you're mostly just getting more visibility into where you've already passed?
The video and GitHub repo don't seem to explain it. But I'm now super curious...
Yes. The have the bonus room after you get 100 endpoint stars. They also have vertical segments like a bonus room and a special world map.
Hopefully Nintendo learns to appreciate these contributions and doesn't try to seek legal action against him.
https://www.eurogamer.net/articles/2017-01-18-did-nintendo-d...
As far as I know they have repeatedly packaged open source emulation code in their work without notice. Guessing it hasn't become a big deal since nobody in the scene wants to anger Nintendo
Newer VC releases haven’t had these headers, by the way. I guess if you were being conspiratorial you could presume Nintendo deleted the headers specifically, but we know it’s not like Nintendo doesn’t save these files. (See things like Star Fox 2; the complete version on the SNES classic was newer than any of the leaked versions.)
I’m really not aware of a time Nintendo has ever used code from a rom hack or emulator.
Looking at the second room of the first castle, widescreen seems to give you more actual room to move around in auto-scrolling levels, which offers a significant advantage beyond just information on what’s coming ahead.
What might be different, on the other hand, are subtle things about un-loading. I bet an .smv of the SMW credits warp wouldn't work on this patched ROM. (Not least because, IIRC, this patched ROM is based on an older set of SMW patches by the same author, that — among other features — has a sprite-limit removal patch, that improves the game's OAM memory-management algorithm.)
-----
But also, IIRC, the enemy/platform spawning (really, the loading seam) in SMW occurs far-enough outside of the viewport normally, that it might still be outside of (or just at the edge of) the expanded 16:9 viewport.
Recall that in SMW, you can explicitly scroll the viewport in the game (by pressing L/R). The game engine was necessarily designed around the assumption that, at any time you're in a free-camera scene (most of the time when you're not in an autoscroll area or small room), your viewport has an arbitrary horizontal scroll offset within some defined range. For gameplay to be deterministic/testable under such an assumption, the loading seam must be programmed to occur outside of that manually-scrollable region.
I'm guessing that the basic "insight" of this widescreen patch, is that in most areas of the game, the screen can be made exactly as wide as the entirety of the coverage-area of the camera's player-controlled scroll region, with no effects on gameplay; because the game was already designed to work "the same" within any sub-region of that area, and "all of it" happens to be such a sub-region. Presumably, this patch makes the screen exactly that wide, and then removes your ability to scroll the camera any further using L/R. (Without that last bit, you'd be very likely able to see pop-in by scrolling the screen even slightly.)
This would also mean that any area that was designed for a fixed or restricted camera (e.g. autoscroll areas; boss rooms; etc), may have been optimized by the original level designers under that assumption, and so "packed" with stuff that might load at the wrong time, or in the wrong order, if the loading seam were expanded (as it likely would have to be to make these areas look good.) Not having looked yet at the developer's progress reports for this patch on Twitter, I would pre-register a guess that fixing these types of rooms is where the majority of the work in making this patch went (beyond just adding more border tiles to small rooms.)
So yes, there's always area that is kind of 'ready' outside the current viewport. It has tile data and probably objects loaded into it, ready to be seen. That's why you don't see 'pop-in' or whatever. Things are loaded before you get there.
But the game logic isn't activating all those things as soon as they're loaded into tile memory. You can probably actually view this in some emulator or another and what you'll see is things loaded up some time before they're actually on screen, but just sitting there until they're basically on the edge of the screen when they'll start moving.
How games do that will obviously vary quite a bit, but in SMW's case it "loads" sprites some specific distance off screen (which is not a full screen away), and then "activates" them pretty close to the edge of the screen. You can see this for yourself by like, going and finding a shell-kicking koopa or something and playing with the screen scroll. You will be able to get it to do it over and over again with only a little scrolling.
A lot of kaizo games were made quite a bit easier thanks to this, to the point where most of them now disable screen scrolling to prevent you from controlling spawns so easily.
More recent games use flexible approaches to allow for different aspect ratios, which would behave similar to eg. fluid design on the web.
Jon Burton of TT Games has an interesting Youtube channel where he goes over some of these old school development techniques, if you wanted to learn more; eg. https://www.youtube.com/watch?v=96DO4V8qrR0 uses a lot of techniques that would be difficult to extend to a 16:9 display.
https://arstechnica.com/gaming/2019/04/hd-emulation-mod-make... talks about "HD Mode 7" support, which relies on the fact that perspective backgrounds ("Mode 7") are scaled for TV display, but they don't inhenently have to be downsampled to TV pixels, and on a emulator outputting to a higher-resolution display, it can preserve the resolution instead of trying to get pixel-perfect accuracy. I think the widescreen stuff works on the same principle: the data is there and being scrolled, so you may as well render it.
He has a framerate improvement patch for Starfox in the works that I am beyond excited about.
https://www.vice.com/en/article/kzmykz/the-creator-of-mario-...
E.g. see Project Slippi[1], a patch for playing Melee online with rollback netcode.
Interestingly, a tournament using was Slippi was issued a C&D[2], but Nintendo has issued C&Ds to Melee tournaments in the past just for using their graphics and making money and stuff.
[1]: https://slippi.gg/
[2]: https://twitter.com/TheBigHouseSSB/status/132952108157785703...
To get a sense for this, watch this video [1] (from 7 years ago) walking through the design of level 1-1 of SMB. It’s crazy what (likely) went into planning the design of each level of the various Mario platformer games.
But like OP, this is strictly looking at it from a gameplay perspective, ignoring the impressive technical feet that this is.