Sundry Sunday is our weekly feature of fun gaming culture finds and videos, from across the years and even decades.
Let’s watch a good old fashioned crazypants video. From MangoSauce. In this one (2 minutes), Toad reveals a number of disturbing beliefs to Mario. Things escalate, and they escalate, and they keep going. Well see for yourself:
See? As crazy as a box of rotating weasels. Well that’s what I got this week. See ya.
This one, I won’t lie to you, is pretty dry. It’s an hour and a half of the Retro Game Mechanics Explained narrator describing, in precise detail, how Super Mario Bros. 2 builds each of its rooms from a couple hundred-or-so bytes in the game’s ROM. It’s an hour and 39 minutes, actually:
Even I began to drift off a few times through this one. It is exhaustive, and exhausting, but it’s very thorough.
I won’t even try to explicate it all in text, but here’s a few interesting tidbits of information:
Super Mario Bros., the original, built its levels on the fly. As you scrolled forward, the engine read the upcoming data and constructed it up ahead, off screen, in real time, always keeping ahead of the screen’s edge. This is why you can’t scroll backwards, the list is designed to be read going left to right. SMB2 instead includes extra RAM in the cartridge and uses it as a memory buffer to hold the entire current room, up to 10 screens in size. When you enter an area, the game takes a moment to construct the map in that buffer, and copies it to the PPU’s video RAM as you scroll around.
Instead of with stored as-is tilemaps, SMB2’s, as well as basically all of Nintendo’s scrolling games at the time, are constructed, made out of tile objects with different locations and parameters attached to them. This saves a substantial amount of ROM space, and functions as a kind of bespoke data compression.
The rooms are built screen by screen, although it’s possible for some items to extend horizontally or vertically outside of its home screen.
The format makes it seem like vertical rooms were designed first, and horizontal scrolling areas were then added to that functionality.
There are weird special cases everywhere in the building code! Some objects only work on certain levels, or serve different purposes in different worlds.
Birdo’s color, and behavior, depends on its initial spawning X tile position. If it’s 10 she’ll be a pink Birdo; if it’s 11 she’ll be red, and all other values mean a grey Birdo will be generated.
On the enemy list, entity numbers 92-127 are the same as the entities numbered 64 less than them, but with the property that, when they are despawned, the level ends! This property is used for world-ending bosses, but any entity in that range will end the level when it leaves play, even Mushrooms if one such existed.
Crawgrip, the boss to World 5, was added to Super Mario Bros. 2 during its conversion from Doki Doki Panic. The decorative rock background objects in its boss arena are especially hacky, like they were hastily added.
The stars in the sky in the night levels have a bug in their generation that prevents any from appearing on the first screen of their areas. They also aren’t placed specifically, but using a pseudo-random generation algorithm that always uses the same seed, so they’ll always appear in the same places in the sky.
Owner of Game Wisdom with more than a decade of experience writing and talking about game design and the industry. I’m also the author of the “Game Design Deep Dive” series and “20 Essential Games to Study”
I imagine some people look at this blog and think something like, “what the hell is its audience?” People who follow indie gaming, retro stuff, classic computer software, weird gaming videos? Should anyone be interested in all of that?
I answer, YES. It’s all important. I vouch for all of it. I want to cast a light into all of the corridors of video, computer, even electronic gaming! I regret that I only have the time and energy for one post a day! Everyone should know of these things!
One of those things is old computer magazines, and the example of those that I have the most contact with is Loadstar, the Commodore 64 disk magazine that lasted for 22 years and 250 issues.
I mentioned Loadstar lately, and the itch.io page I’ve put up distributing, with the permission of its owners, their archives 243 issues of its archives, plus many extras.
A lot of my time the past few weeks has been spend on the “Loadstar Project.” I’m working on an expanded edition of Loadstar Compleat, to make it much more accessible to people who don’t play around with computer emulators as a matter of course. Yes, I understand they exist!
I envision a custom-written program, offering lists of highlights from among the long halls of its archives. What are you interested in? Arcade-style games? Puzzles? Animations? Music? Art? Reviews of old software? Editorials from a bygone age? Dedicated lists of all of these things. You’ll be able to scroll through and pick something to try. One click brings up its instructions. Another starts it up immediately in VICE. Have a favorite author? Many of Loadstar’s most prominent creators will (if I have my way) have their own lists. With literally hundreds of items in each category, that will keep you going for a good long while.
There’s many technical barriers to making this work, but they are coming down, slowly, one after another. Here is what the menu looks like at this second:
There’s a long way to go. I have to reverse engineer the compression used for text files in later issues, for one thing. I have to finish entering the data for early issues before their Presenter system settled into a single file format. There’s tons of issues left to add to the system, preferably using automatic tools because there’s literally thousands of items here. And yes, the menu system looks really plain right now, and could stand some sprucing up.
I continue to push at the boulder. Sadly the world contains many distractions, and I have other things I need to do with my time. You’re reading one of them right now. But maybe it’ll all come together. Let’s keep our many varied appendages crossed.
I also want to shout out to the Reverend Dave Moorman, Loadstar’s last editor, who oversaw the magazine from issue #200 to #249. He graciously gave me permission to include his range of issues in the compilation, and they’ll be joining their siblings soon! He also has a book on Amazon: The Most Marvelous Machine: A History and Explanation of Computers in General and the Commodore 64 in Particular. If you bought a copy there, there’s no referral code on that link, I won’t see a cent of it, but I’m sure he’d appreciate it! Think it over?
A while back I linked to a video showing the obscure “Data Over Flow” error in Mario Paint. Here’s the post, and here’s the video (1 minute):
It occurs because Mario Paint’s SRAM is only 32K in size, which isn’t large enough to store every possible creation. The cartridge uses data compression to squeeze everything in, but the thing about data compression is, it can never be guaranteed to work. Every possible compression format has data that will cause it to take up more space. It’s a fact about the universe we live in. It just is.
If you only use the canvas, or only use the “Animation Land” motion option, then there is enough RAM, but using both in one composition means the software relies on compression to make everything fit, meaning, some kinds of data won’t fit, and that’s when Data Over Flow happens.
But as it turns out, while if you’re using Mario Paint in the way most people it’s unlikely you’ll trigger the error, it isn’t actually difficult to cause it. Creating a random mess of all the colors of pixels in a stamp, then filling the whole canvas and all the animation frames with that stamp, seems to be enough to do it. Mario Party doesn’t use a particular complex compression format. Maybe if it used something lossy like JPEG it might be able to do it, but rather it uses bit-perfect compression. That kind likes repeating patterns and areas of solid color, and doesn’t like what I’m going to call rainbow snow.
So here, watch a user start from a blank project, on real SNES hardware recorded through video capture, and go directly to the Data Over Flow error. Sorry! Our RAM is too sick to contain your masterpiece, it has vomited it all up, please try again (3 minutes):
Owner of Game Wisdom with more than a decade of experience writing and talking about game design and the industry. I’m also the author of the “Game Design Deep Dive” series and “20 Essential Games to Study”
This is a deep one. As linked by one for the books over on Metafilter, a GitHub user with the username MrWint was looking at the code of the Olympics-like DOS minigame collection “The Games: Winter Edition.” They wondered why it seemed to be impossible to achieve better than a certain score in some of the events. It turns out to be because of failed copy protection checks in most of the versions of the game produced after the initial release. Most of the cracks of that game that can be found on the internet are affected. They even affect two later official physical releases, and GOG’s release, which is a terrible problem for people who bought any of those versions expecting a working game.
If you’ve played it and never been able to score higher than 86.7 meters in the Ski Jump, it’s not you, it’s the game practically gaslighting you into thinking you failed. It’s impossible to land the jump if you’re affected by the bug and have gone that far!
Here’s a tl;dr summary, although the most interesting part of it all is the reverse engineering and description of the problem. But in case you aren’t interested in that and just want the gist:
The original release came with a code wheel copy protection system, and performed a number of checks for the event that the protection was bypassed. A value was created as the result of the check, and was modified and stored in various other places. Each of the events itself checked one of those places against a second, obfuscated copy of the code wheel’s lookup table. If the original wheel check is bypassed, which happens for most of the versions of The Games: Winter Edition now, illegal or legal, those places won’t have the correct value, and the game will sabotage those events during play in different ways.
It’s really sneaky, and as it turns out, it also affects the GOG release of its sequel, The Games: Summer Edition in a similar manner, although cracks of that game managed to fix the sabotaged events.