Kosmic Shows off Obscure Super Mario Bros. Quirks

Super Mario Bros. is over 40 years old, and is only 40K in size, and yet there’s still a lot of weird behaviors in it. The old infinite 1UP trick from bouncing repeatedly on a Koopa shell is pretty old hat now; the Minus World trick is slightly less known, but is still not much of an eyeopener these days.

Kosmic, general SMB expert, has a video that shows off ten really obscure tricks, the kinds of things even speedrunners tend not to know. (8 minutes) Note, the video has a sponsored section; if it bothers you, consider installing the SponsorBlock browser extension.)

An overview:

  1. If you’re about to trigger the Minus World glitch (entering the left-most pipe in the World 1-2 Warp Zone before the numbers and “Welcome to Warp Zone!” message appear), but instead of going into the first pipe instead go into the second, you’re sent to World 5. Also, if you have Fire power, and somehow take damage the instant the message appears, Mario keeps his Fiery colors.
  2. Bowser’s normal colors are actually a deeper shade of green, because his green color is the same as the darker color Koopas use in Castle levels. The palette, and this his color, are updated when the level-ending Axe is drawn by the level interpreter off-screen. Usually by the time you see Bowser the Axe has been placed, but if you scroll him on slowly you can sometimes still see him with the earlier color. This is why the extra Bowser in one of the Lost Levels is a different color.
  3. Enemies hit from below while near the left side of the screen turn into Koopas!
  4. Stomped Red Parakoopas are a different enemy type than normal Red Parakoopas, and will walk off ledges. Also Bullet Bills that come out of cannons are different from Bullet Bills that emerge from the side of the screen; screen-side Bills are vulnerable to Koopa shells, while cannon Bills are not.
  5. The bricks that form the walls in the water section of World 8-4 are the result of a special case in the code that draws those bricks if the world number is equal to 8. This can be seen in World 8 of Lost Levels in a pipe outside of a Castle area.
  6. There is a Koopa Troopa in Lost Levels that’s generated over a pit, and immediately falls down into it while offscreen, and so wasn’t known about for over three decades.
  7. There is also a green Cheep Cheep in 2-3 and 7-3 generated high up offscreen and wasn’t known about for a long time.
  8. The point/life award from stomping a Koopa is not awarded on the frame it’s earned, it takes a frame or two to get credit for it. If you stomp it again before it registers, the award will reset. This means if you stomp it very quickly (like if Mario hits his head from the bounce) it’ll look like you’re earning tons of lives but won’t get anything. Also, if you stomp the Koopa that fast, it’s possible to overflow the stomp counter, and go back to earning points (that, because of the first thing, are never awarded anyway).
  9. World 5 doesn’t start with a big Castle! It begins with a little Castle like you were coming into it after the first two levels of a world. Also, one of the bridges in 2-3 and 7-3 has a guardrail that extends an extra block beyond the bridge.
  10. It’s not explained why it happens, but an example is shown of shelled enemies hit from below sliding around on their own, slowly, with active hit boxes. It’s a strange sight to see!

CRPG Combat & What a Combat Round Means

Never let it be said that I’m not alert to the benefits of reusing work.

I was just watching the beginning of Video Games 101’s first video, of four, of Final Fantasy IV née II, which was such a substantial jump over the first Final Fantasy that it instantly gained a bunch of admirers back then, including myself. It came out early in the SNES’ lifespan too, and I’d say it was instrumental to getting players interested in the system. Of course, it only seemed like such a great jump because Japanese Final Fantasy games II and III never made it to the US, and back then were barely even heard of at the time.

Around the 19 minute mark in the video (which I’m not embedding because it’s not actually the subject of this post), Professor Brigands mentioned how much better it was that FFIV, unlike the first game, didn’t adhere to a convention of earlier C/JRPGs: if a character tries to attack a monster that an earlier character to act has targeted and defeated, then that character’s turn is wasted. In FFIV and most games to follow, the character will instead pick another random opponent. FFIV marked a change in behavior for CRPGs in this, and it’s rare that you’ll find a later game where characters will waste turns like this.

I happen to know the justification behind those wasted turns, and in fact I think the change was for the worse, and being of an argumentative mood I made a comment on the video explaining it. That is what follows (edited slightly) below.

Combat in FFIV. Image from retroachievements.

Brigands called this ridiculous, and most people would agree with him, but I don’t. RPGs have, for a long time, decreased the function of actual strategy over time. This isn’t true just of turn-based games or JRPGs, but in general. They keep getting easier and simpler.

Losing a turn is, against most opponents, a really minor penalty anyway. It’s an incentive to spread out your attacks against weak foes, allowing the player to conserve a small amount of HP (from potential attacks from other monsters) through the use of good tactics, and it means you can’t just completely turn off your brain even against groups of the weakest foes. If you just pound the A button, you risk giving the other monsters free hits against you. It increases player engagement, not by a huge amount, granted, but by a smidge.

Before FFIV, most games applied this turn-wasting concept. So, why did so many games do this?

In some of the earliest days of RPGs, those of 1st Dungeons & Dragons*, a combat round was intended to be a full minute of time. This was explained in that attacks were intended to actually a sequence of combat moves: thrusts, slashes, feints, dodges and the like, that were elided in play in terms of just getting to the numerical effect of those actions.

That’s why fighters in those games could gain extra attacks per round: it wasn’t that they got more swings, but that they were more efficient in their actions, and could get in more telling blows. This is also why Armor Class doesn’t reduce damage, but instead decreases the enemy chance to hit. Damage came from the accumulation of telling blows.

And HP loss itself was also an abstraction, not entirely being directly hurt, but more like scratches, welts, getting worn out, the results of pressing your luck a bit too far, and then actual wounds. If staging an attack against a monster takes a full minute, it makes more sense that one character killing it would cause a following attack that turn to be wasted. In 1E D&D, players had to declare their actions at the start of a round before anyone acted, and the DM was also expected to record each monster’s plans at the start of the round and follow through with them when their turn came.

The page in question

The justification for all of this can be found on page 61 of the 1st edition Dungeons & Dragons DM’s Guide. Now I mention this not to say if it’s good or bad. It’s obvious that current-day D&D doesn’t adhere to this mental model of combat, probably because most players themselves didn’t understand Gary Gygax’s theory of play, but also because it made the game more complicated if everyone had to plan their actions ahead, at the start of each round.

But it does mean that video games from that era did tend to adopt those concepts. The original Final Fantasy is known to have copied many things from D&D, including many of its monsters, and other ideas too, and this seems to have been one of them. I mention all of this just to shed some light on why the original FF did this, and also that, in this one area, it makes the game slightly less thoughtful.

* This wasn’t actually true of the very earliest days of Original D&D, or OD&D, for it didn’t actually have a set combat system at all! Players were intended to use Chainmail, a previous system of medieval combat, to simulate battle. The system that we would recognize as the root of current-day D&D’s combat began in Greyhawk, OD&D’s first supplement.

NES Games & State Machines

A couple of years ago gamedev channel NesHacker did a video on how everything in your typical NES game is really a pile of state machines, concurrent ones, nested ones, bunches and bunches of them. If you have any interest in NES coding at all, it’s worth a look. (8½ minutes)

The chief difference between normal, sequential programming and game programming is that most video games have to make a framerate target, and have to split their processes between frames. Lots of little things are usually happening concurrently, and you can’t rely on normal program flow to keep track of things. Instead, each of those little processes has to remember what it’s doing between frames, and that memory takes the form of state machines, reminders of what each routine is in the middle of doing.

Drawing it out with circles like in this video I think makes it seem a bit more complicated than it actually is, but it does require a different way of thinking about your code than you may be used to in other programming disciplines.

Sundry Sunday: Lego 8-Bit Trip

Sundry Sunday is our weekly feature of fun gaming culture finds and videos, from across the years and even decades.

A bit of an oldie this time, and in more ways than one, a four minute stop motion animation from Rymdreglage made with Lego bricks, from way back in 2009. It’s still great though! By “8-bit,” in this case, they mean specifically the Commodore 64 end of the swimming pool, especially as concerns the game International Karate+. Even though this video is 16 years old, Ryndreglage is still making videos now! Have a look for yourself if you like.

Fighting Games That Cheat

It’s a good one today folks. Modern Vintage Gamer had a look into how the CPU opponents of two of the most popular and foundational fighting games, Mortal Kombat 2 and Street Fighter 2, cheat against players trying to progress far into the game on their meager financial resources.

Their Mortal Kombat 2 video (11 minutes) is three years old now and has racked up 1.5 million views, but it’s well worth reviewing. While MK2’s source code is not known to the public, UK3 for the Playstation’s source is known, and is suspected to be similar to that of the earlier game, and uses a dynamic difficulty variable called diff. MVG uses this source to make an educated guess of how and when MK2 decides to cheat.

Lest you think it’s only us filthy Americans who would resort to such underhanded means to rob honest teenagers of their quarters, Street Fighter 2 does it too! Much more recent is MVG’s four month old video (9 minutes) on that game. (If you’d like to skip the video’s preamble, this link is queued up to the beginning of the cheat discussion.)

In brief, the games use input reading and the ability to perform complex moves lag-free to get an edge over human players. A player would have to enter moves on the joystick and with the buttons, while the CPU can just do them, without having to spend that time. And by reading the player’s inputs (like the Ironknuckles in Zelda II), they can react to player actions reliably, where a human opponent would have to judge based on vague visual indications, and then respond with a move to counter your action that was already in progress.

10-hour Superplay of Arcade Gauntlet

Gauntlet is one of the best games that Atari Games made, and is certainly one of the best known, but it’s interesting how little even people who played it know about it.

Gauntlet has 100 levels, although seven of them take the form of an in-game tutorial. The first level has three exits; one if market EXIT TO 4 and another EXIT TO 8. EXIT TO FOUR skips the player forward a bit, and EXIT TO 8 leaves the training levels entirely. This is how Atari Games’ standard difficulty selection is implemented in Gauntlet, the first levels introduce various game concepts gradually: Ghosts & Generators, Grunts, Demons, Lobbers, Deaths, and Sorcerers get their own spotlights.

Starting with Level 8 though, the remaining 93 levels are part of a great loop. Players will notice that the difficulty increases greatly with Level 8. Which level is 8 actually varies between plays. Gauntlet lasts forever, there is no ending level and the loop never ends. When the last player in the game runs out of health, the machine remembers which level in the loop the game ended on. The next game begins at the start of the tutorial levels again, and when that game reaches Level 8, it’ll be the map that the previous game ended on. (More information on arcade Gauntlet can be found in FalkentyneDragon’s classic infosheet on GameFAQs.)

More than that, the game is known to remove food from levels, depending on how many players are in the game (fewer players means less food), player scores, which characters are being played and how many credits have been inserted during the current game.

Later revisions of the game put the screws on more tightly to try to prevent marathon games. Despite this, very good players can play indefinitely with certain characters. In this ten hour Youtube video, mackey_special plays continuously with Elf through 474 levels.

If you want to find out more, watch the video. They have videos for all four characters on their channel, here.

Note: I am not sure this is arcade Gauntlet. It’s possible that it’s the Japanese Mega Drive version. The Arcade Mode of Genesis/Mega Drive versions of Gauntlet (known as Gauntlet IV in some territories) looks and plays very similarly to the arcade version.

A Technically Proficient Commodore 64 Demo Explained

We’ve linked to Iftkyro’s work before here, he created the mystifying (if you know much about how the C64’s video hardware works) demo Nine, where a system that should only be able to move eight sprites around appeared to display nine. How was that done? As it turns out, with great difficulty, and not a little sleight-of-hand!

Iftkyro’s back with another impossible demo, Quondam Tunneling (4½ minutes, download), which appears to display an animated sequence progressing down a 3D tunnel.

He’s now also uploaded a video explaining how it was done (14 minutes):

In brief, the tunnel itself only has four frames of animation. The demo keeps multiple fonts throughout most of memory, which are flipped between every eight scan lines, that basically allows it to display arbitrary graphics with each character row. The C64 doesn’t have quite enough memory to do that with all the rows in the full vertical extent of the animation, so another trick is used, taking advantage of palette swapping and the C64’s multicolor mode to store two different possible rows in each font. The horizontal scrolling is done by moving the characters that make up each row left and right in a typical C64 scrolling way; vertical scrolling is done by adjusting which fonts are used as the raster line descends the screen.

Of course nowadays we have computers that can display largely arbitrary graphics throughout the whole screen. Processor power is great enough now that we can even do this in software, but additional to that most desktop hardware has powerful hardware graphics included. Even if you don’t have a bespoke graphics card, major processors from Intel and AMD include substantial graphics capabilities built into the CPU. Such is the power of these chips, it’s easy to forget how difficult these things were in the microcomputer era.

Essentially all of the consumer computers from the C64’s era, and many years before and after it, split the system up into two major parts, the CPU and the graphics hardware. The very earliest home computers, like the Altair and the KIM-1, didn’t have graphics hardware at all without substantial hacks, because they weren’t intended to display their output on a video screen. That was really the innovation that opened computing up to the masses. Until monitor or TV output was possible, home computers were basically little more than glorified calculators to most people.

Having the CPU and graphics chips interact with each other was one of the most difficult parts of the design of these machines. Consoles like the Famicom/NES could give each of these two parts what amounted to its own memory, which simplified system design and helped to make possible its graphics power, but it also meant that programming it was more difficult. You can see this in the glitchiness of some early NES hardware (like in Displaced Gamers’ recent video on the jack of NES Commando, as linked here).

To properly use the NES’s PPU, graphics changes could only be made at a certain time each frame, during “VBLANK,” a time when the PPU wasn’t actively drawing the picture. That limited what changes could be made each frame. There were some tricky ways around this, but they all involved adding extra hardware onto the cartridge, increasing manufacturing costs. Home computers used their tilemaps for text display, meaning tile changes had to be less restricted of timing.

This meant some weird compromises were needed. On the C64, the CPU and the VIC-II operated asynchronously, opening up the potential for bus conflicts if they both tried to access memory at the same time. The VIC-II actually has the ability to put the CPU to sleep when it needs access. The C64’s designers rated the consistency of the video signal as a more important priority than the chip’s processor itself.

Even if the graphics hardware could display arbitrary bitmapped images, manipulating them quickly was difficult. The C64’s bitmap screen takes up 8K of memory. At 1 megahertz, the 6510 doesn’t have nearly enough time to update every byte in one video frame. In the following generation of machines, the Amiga was a lot more capable, but through the use of specialized hardware, its copper with its flexible video modes, and its blitter which could move memory around more rapidly.

That explains why, as Iftkyro states, that Amiga demos can generally do this kind of tunnel effect, but the Commodore 64 requires using a very specific memory layout, and rapid switching between fonts and graphics banks, to do something that superficially resembles it.

Wherefore Commando’s Jank?

Displaced Gamers’ Behind the Code series is back, with an under-the-hood look at another NES Capcom game, following their examinations of Ghosts & Goblins and Strider, links are to our previous pointers to their peerless product.

G&G was implemented by popular early NES anonymous developer and target of player recrimination Micronics, but Commando can’t use them as an excuse, as it was developed in-house at Capcom. They were still learning the ropes of the NES at the time (Strider has no such excuse), and it shows. Displaced Gamers thinks that the game was shipped while the programmers were still working on optimizing it. As they do sometimes, DG implemented their own optimizations, improving the game substantially. You can see the product of their work in a 31-minute video they made about it, here. There is a substantial amount of 6502 assembly code involved, but if you skip around I think you might be able to get the gist of why the glitches happen, and how Displaced Gamers fixes them.

As was often the case with your jankier NES games, the scroll stutters and character chaos were caused by the game failing to make its VBLANK timing targets. Thing is, despite the glitches, NES Commando is arguably the best version of the game! Characters sometimes disappear from the screen and backgrounds turn into garbage, but there’s so many cool secrets and things to find in it that I can forgive Capcom for it.

Note that Displaced Gamers doesn’t release patches with their fixes, preferring to focus on making videos. Their code is presented on-screen though, so it’s possible for others to insert the changed programming on their own. I hope someone does this soon, as a fixed version of NES Commando would be nice to play.

Unix-like OS for the Apple IIGS

These days writing a command-line OS for 8-bit or 16-bit era computers is almost an old trick, but GNO/ME (any relation to GNOME is purely accidental) has the difference of both having Unix-like features like signals, pipes and multitasking, while also having been written back in the day, in the 90s. Author Jawald Bazyar shows it off here (26 minutes):

The story also includes a story of the author’s teenage dialup exploration, and stumbling upon a Unix system without a password on its root account, and other such young computing adventures.

GNO/ME can be obtained, for running in an emulator or on bare metal, here, if that’s your idea of a good time.

Recovered Games and Data from the Sega Channel

I’m a bit late to the trough on this one, but it’s worth calling back to the Video Game History Foundation’s recent release of over 100 ROMs and other data from the Sega Channel, that short-lived service that allowed subscribers with a model peripheral to play downloaded games over a cable TV line. It was kind of like a terrestrial version of Nintendo’s Satellaview service, but also one that wasn’t locked to Japan.

Some of these games were never released outside of the Sega Channel, and the VGHF also has unreleased prototypes for public perusal through their own archived collection and an association with Gaming Alexandria. Two particular finds are a hitherto undiscovered variant of a Garfield game and a Genesis Flintstones game that, at a glance, seems to be based off of the John Goodman movie. An abandoned project also in the collection is a Sega Genesis web browser, which would have been quite a thing to see back then. Notably, Gaming Alexandria’s torrent of the complete data is only 147 megabytes, which isn’t such a large download all told.

Image from the VGHF’s site. This would have seen release probably around 1999. For reference, the Sega Saturn and Playstation were released in 1994, and the Nintendo 64 was released in 1996.

The VGCF prepared a 58-minute promo video for their project here, with commercials and other content that are, ah, very nineties in style.

As an aside, I was shocked to see the company General Instrument come up early in this video. Weren’t those the people who made chips for pre-VCS dedicated game consoles back in the 70s? As it turns out, yes they were (PDF link)!

All the 3-Up Moons in Super Mario World

Did you know there are seven of them? Really! Super Mario World has way more moons than you need to win the game, by a large margin, but it still feels special to find one of these secret collectables.

MarMax Gaming points out all their locations in this video (10 minutes). There’s not a huge numbers of reasons to get them all, Super Mario World practically throws extra lives at you, but you still might want to know how to find them. Well, this is how. Here:

The Frantic Fisherman from Compute’s Gazette

There was once a time when Compute’s Gazette, the Commodore 64 type-in magazine, was nearly the center of the computing world.

An important source of low-cost computer software from the age before the internet, Compute’s Gazette distributed a variety of software, including a couple of games each issue. They also distributed Speedscript, an important early word processor, which was one of their biggest hits. But for kids, the games were the most important thing.

The C64 Appreciation Society recently typed in the early CG game The Frantic Fisherman, and made a fifteen minute video demonstrating the process and the game. Remember, while you could order a 5¼” disk with all of an issues programs on it, most people who wanted to use them had to sit down in front of their machine and type on line after line of code. It often took hours, and even with error checking software like The Automatic Proofreader and MLX to help, the danger of typos was great.

The Frantic Fisherman is not a terrific game. It’s really simple, just a matter of moving your fisherperson to the right place and either swinging your club or raising your umbrella. You can select the speed, but it doesn’t get faster naturally as you play. But it’s a good demonstration of what magazine type-in games from the time were like. Take a look, and travel back in time.