a ROM hack of Super Mario World
made between 2012 and 2021
by WYE (aka WhiteYoshiEgg)
What's this?
A Plumber For All Seasons is a ROM hack of the 1990 SNES game Super Mario World. I edited the original game and used it as a base to make my own.
The premise is that each world represents a different season — there's a Spring world, a Summer world, a Fall world, and a Winter world. (And some more!)
The core gameplay doesn't stray too far from the original Super Mario World, but almost all of the assets have been changed, and all are custom-made for this hack. I made all the graphics myself (which isn't often done), and some very kind people from the community have put together an original soundtrack. There's also a lot of custom programming done, which I partially did myself, but also relied heavily on code resources from the community and many talented hackers lending a helping hand along the way.
A Plumber For All Seasons features:
- 37 levels with 41 exits
- almost entirely custom graphics, all of them hand-made
- a focus on interesting, season-themed scenery and fun levels
- an original soundtrack
- rewards and easter eggs for completionists
How to play
As a ROM hack of an SNES game, this is to be played on the SNES, or an SNES emulator. The recommended way is to use snes9x, which it was most thoroughly tested on. Other emulators, as well as real hardware, may sometimes cause minor, non-game-breaking glitches. ZSNES, an old emulator, is known to be incompatible and will not let you complete the game, so use it at your own risk.
This hack is distributed as a patch (.bps file) that's applied to an original Super Mario World ROM. Refer to HOW-TO-PLAY.txt for details on the patching process.
A Plumber For All Seasons plays mostly the same as the original Super Mario World, though the difficulty in later levels probably exceeds that of the original.
The game saves automatically any time you're on the overworld map. Everything important is saved, including exits, lives, coins, powerups, and star coin progress.
Behind the scenes
I discovered ROM hacking Super Mario World in 2007 and started making A Plumber For All Seasons in 2012, at first planning for it to be a small project but soon realizing it was evolving into something more expansive. I started with the idea of a "four seasons" theme and took inspiration from a handful of video games such as Donkey Kong Country Returns and Kirby's Return To Dreamland, as well as the scenery in the countryside I grew up in. The name is in reference to A Dog For All Seasons, a simple but very charming flash game I played in the mid-2000s.
Compared to how hacks usually do it, the graphics-making process was rather unorthodox: instead of using an SNES tile editor, I drew the backgrounds with pen and tablet, and/or stitched together photos I took with lots of effects applied, then reduced the whole thing to 16-bit color depth and converted them into the SNES graphics format. This allowed for the backgrounds to look more realistic and less tile-based, and it also means that I didn't place every single pixel by hand with intent — which is why I hesitate to call the backgrounds "pixel art", or even that I "drew" them. The foreground and enemy graphics do fall under the category of pixel art, though.
Making the backgrounds feel less like a backdrop and more like realistic scenery was made easier by the fact that, although I'm in no way an expert on SNES hardware, I had some understanding of what the console can do, and what special effects you can reasonably achieve. Knowing what you can do, and what tools to use, goes a long way. Among other visual effects, almost all of the backgrounds are using parallax scrolling to create the illusion of 3D. (Fun fact: if you remove the first letter from the word "parallax", that's the butnopeton sequnopeence you need to press when asked to connopefirm runnopening the hack in an unsnopeupported pronopegram.) The heavy use of parallax scrolling is probably one of the hack's identifying features.
Making this hack took more than nine years — not because it was necessarily nine years of work, but mostly because I worked on it in my free time, did so rather slowly, and took several months of breaks at many points. I was determined to eventually release it, and I'm glad to have finished it.
Credit is due
Although it's not a collaboration project per se, there are many people without whom I couldn't have made this hack. All of them are, as far as I managed to remember, noted in the credits, but there are a couple of people I want to thank especially:
- Blind Devil, Dippy, Exodustx0, Giftshaven, HaruMKT, imamelia, KevinM, Maxodex, Moose, RednGreen, S.N.N. and Torchkas for generously offering their time and talent to make an original soundtrack. Not all of their work ended up in the hack due to time constraints, but I'm very grateful for the effort they put in, the wonderful music they composed, and the patience to even arrange some of my own amateur compositions.
- Anorakun, Jamaleum, K.T.B., KevinM, Ladida, Lightvayne, RPG Hacker and W4mp3 for beta testing the hack and hunting for bugs on multiple emulators on rather short notice. Without their test reports, this hack would be a lot buggier and less polished than it is.
- edit1754 for creating an amazing parallax-generating tool that went shamefully unnoticed at the time of its release, which I might have been the only one to ever use, and without which the special effects wouldn't be looking half as special.
- Alcaro, Ladida, lx5, Telinc1, TheBiob and Thomas, representative of the countless people at SMW Central who helped me with various coding questions along the way. Extra special thanks to lx5, who went out of his way to write code specifically for this project.
Known issues
- Spawned tiles (vines, used ? blocks, etc.) may appear in the wrong spot when they're spawned off-screen. This is a purely visual glitch, and will fix itself if you leave the spot and come back.
- The position of the background in 2-2 and 2-6 may flicker for one frame during level load.
- The sound effects in 4-6 temporarily become higher-pitched during certain sections of the background music.
- You can move from 4-7 to 4-1 on the map even when 4-7 is not beaten yet.
- Lakitu appears in front of some sprites in 2-1 and S-3 even though he's in the background.
- The two leftmost tiles of the log in 2-S appear in front of other sprites while the rest don't.
- Loading the boss battle music takes a second, and may sometimes mess up the level palette on accurate emulators.
- If you get a checkpoint on your last life and get a game over before you get to the overworld map, the checkpoint won't be saved.
Incompatibilities
- The hack does not run on the SNES Classic (aka SNES Mini) by default, due to the internal emulator used in the device. I'm told you can make it use snes9x internally to make it work.
- ZSNES is not a supported emulator for this hack. You can open and play it at your own risk, but there are a variety of visual glitches and crashes that will most likely prevent you from completing the game. I very much recommend using a more modern emulator.
Changelog
v2021-11-22
- Fixed a bug introduced in v2021-11-07 where the water level in 2-7 would glitch if you paused the game while the screen is scrolling vertically.
- Changed a setup in 4-7 where the large snowballs would sometimes fail to spawn unless you scrolled the screen.
- Fixed a color issue introduced in v2021-09-02 where the wrong color would be visible in one spot even on newer emulators.
v2021-11-07
- Added a new song by Torchkas (playing in 1-6 and 3-6) that was made specifically for this hack, largely composed before the first version was released, and only completed now. The song is now included in the soundtrack as well.
- Made the pipes at the end of 2-2, 3-S and 4-4 enterable, allowing you to go back to previous sections if you missed a star coin.
- Changed the title screen percentage display for "36 out of 37 star coin levels" from 97% to 98%, so that it matches the percentage for "40 out of 41 exits" to prevent confusion.
- Fixed a bug in 2-7 where if the water is at the highest/lowest level and the screen is scrolling vertically while the player gets hurt or collects a powerup, the water will scroll way beyond the intended limit, show glitched tiles and possibly make the level unbeatable.
- Fixed a typo in the README.
v2021-10-09
- Made the seahorses in 2-3 easier to deal with by making them move more slowly and update their direction less often.
- Made the last star coin in 2-3 easier to get.
- Made the world 4 boss easier by shortening some phases and making the projectiles not rebound.
- Made the "A" button hint in 2-S more clearly visible.
- Made the last star coin in 2-S easier to get.
- Made the pipe at the end of 2-6 enterable, allowing you to go back to the previous section if you missed a star coin.
- Made the platforms in 4-3 a little less janky by applying a fix for the original game's layer 2 behavior where you would drop from layer 2 ledges at a faster speed.
- Tweaked the jumping fish in 3-2 so they're perfectly in sync instead of being a few pixels off.
- Possibly fixed the issue where fish in 3-2 may sometimes break pattern and jump in the same direction twice instead of alternating.
- Slightly tweaked the green palette in 1-6.
- Fixed two misplaced pixels in the glow effect in the world 4 boss fight.
- Fixed the world 4 boss's hat position lagging one frame behind.
- Fixed the spikes in the world 4 boss fight reacting to raccoon tail spins.
- Fixed the alignment of some background lights in 1-6 that were still wrong even in v2021-07-05.
- Fixed a few minor tile issues in ghost houses and forest levels.
- Fixed the slope tile graphics in the ending sections of 3-1 and 3-S.
- Fixed a color issue introduced in v2021-09-02 where the wrong color would be visible in two spots even on newer emulators.
- Added a few known issues to the README.
v2021-09-02
- Fixed a bug in the world 2 boss fight where the projectiles would despawn in rare circumstances making the boss impossible to beat.
- Slightly changed a piece of the puzzle in 2-6 to make it clearer how to solve it.
- Added a powerup in 2-7 in a spot where a lot of people expected one.
- Made it so you can enter destroyed castles on the map the same way as any other level, instead of having to press L and R like in the original Super Mario World.
- Reduced the time you have to wait between pausing and unpausing the game.
- Tweaked the status bar palette in a section of 3-2.
- Added a warning message after the intro which appears in old emulators that don't display color gradients correctly, and changed the colors to look more obviously wrong in such cases.
v2021-07-27
- Made it so that star coins are saved individually as you collect them. You no longer have to get all five coins in a single run. (Thanks once again to lx5!)
- Made it so that progress in Bowser's castle is saved after each door, not only on returning to the overworld.
- Fixed a bug in 2-1 and S-3 where collecting a powerup or getting hurt in the same frame that Lakitu throws something would cause the game to crash.
- Hopefully fixed a bug on real hardware where loading the boss music would sometimes mess up the color palette.
- Fixed a bug in 4-1 where coming back to the main level through a pipe would not correctly restore the snow effect.
- Fixed the dialog box text color on the Spring map.
- Changed a star coin setup in 2-6 to make it clearer how to collect it.
- Changed a star coin setup in 2-1 to make it clearer how to collect it.
- Fixed a spot in 4-5 where you could get stuck by destroying all blocks.
- Fixed a misplaced tile in 4-5.
- Changed a ledge in 2-7 to make it easier to tell it's not solid.
- Added a couple of coins in 4-2 to make it clear you can go underwater.
v2021-07-05
- Fixed a bug in 3-6 where collecting a certain coin would make a star coin not spawn.
- Fixed powerup graphics in 3-3 and other levels like it.
- Fixed a visual oversight in an easter egg.
- Fixed the vine graphics in 3-S.
- Fixed the alignment of background lights in 1-6 and 3-6.
- Added a floor to the end of 2-3 so you don't die if you touch the goal with too much downward momentum.
- Made the lights at the end of 4-6 immune to fireball killing.
- Made it so that pressing X or Y during the credits won't play a tail spin sound effect when you have the raccoon powerup.
- Added p4plus2 and TheBiob to the credits, and fixed two missing pixels on the letters in Kipernal's name.
- Added Torchkas to the credits for composing a song that wasn't ready by the time of release, but may be included in a future update.
- Changed the links in HOW-TO-PLAY.txt to link to the new Online Tools section on smwcentral.net.
v2021-07-03
- Initial release.
Thanks for reading, and I hope you enjoy playing!
- WYE