Sonic Retro’s Physics Guide

tl;dr: The description of the physics and implementation details of the 16-bit Sonic the Hedgehog games hosted at Sonic Retro is complete and amazing.

This is one going out to all you developers out there, either current or aspiring.

It’s amazing to me how fussed, nay, obsessed-over the 16-bit Sonic the Hedgehog games are even to this day. There are a lot of good things about them, and arguably the best is their platforming engines, which are among the best in the field. They take advantage of the processing power of the Genesis/Mega Drive, fueled by a Motorola 68000 processor, the same processor as the classic Apple Macintosh, clocked only slightly slower. This was basis of Sega’s infamous “blast processing” slogan at the time, touting how much faster the Genesis was than the Super Nintendo Entertainment System. This was somewhat unfair, as SNES carts often came with supplemental chips in them that acted like co-processors, and was of a completely different architecture as well with different characteristics, but it did make the Sonic engine possible. A lot of the credit also goes to Sonic programmer Yuji Naka, who is legendary in game coding circles for a very good reason.

If this is the kind of discussion that makes your heart race, we’re glad to have you reading Set Side B! If it’s not, that’s okay. I’m a bit stymied myself, even though I love dives like this.
(All images in this post from Sonic Retro.)

The result of the Genesis’s power and Naka’s expertise was a game engine with, yes, raw speed, but also a lot of nuance. If you jump and land on an enemy or monitor, you can control the height of your rebound, no matter how fast you were going when you hit it. If you jump while on a slope, you don’t jump straight up but away from it, which takes some getting used to at first but can be taken advantage of. There’s lots of fun little cases like these, and figuring them out, and their implications, is the source of a lot of the joy of playing Sonic the Hedgehog for the first time.

Those two places where the slope only intrudes slightly into Sonic’s ground tile are what get me.

I’d even argue, without the solid engine, and great level design taking advantage of it, all of Sega of America’s marketing efforts, which formed the foundation of the media juggernaut that Sonic has become today, with several cartoon series and comic books, and two successful movies and a third one in the works, would have been for naught.

Judging by the later 2D adventures, the nuances of Sonic the Hedgehog’s engine are difficult to grasp without a good amount of effort. It is likely that Sega themselves don’t have the institutional memory to understand how they worked, which is why they went to Christian “The Taxman” Whitehead, and others from the fan game community, to make Sonic Mania, which has a faithful recreation of the original games’ physics.

Why has no one made a Sonic half-pipe trick skateboarding game?

Bringing it back around, the obsession of the Sonic fan community has produced a number of disassembles of the game’s code, which have served as the basis for a wide array of romhacks of rather shocking levels of quality. I wrote about many of those in the Someone Set Up Us The Rom ebooks (ahem).

They also served as the basis for the subject of this post, the physics descriptions at Sonic Retro. Here is basically all you need to make a Sonic-style platformer. Synthesizing this and putting it into practice is a formidable task on its own, but it’s a doable one, and you don’t have to read source code (other than your own) to do it. To those who attempt this task, we salute you! And let us know how it goes!

Sonic Retro: Physics Guide

Video: The Minimum Punches To Beat NES Punch-Out!!

Please forgive the two exclamation points in the title. We writers are only given a limited number of exclamation points to use every month by the shadowy Punctuation Cabal, but Punch-Out!!’s title has two of them in it, so to properly stylize it I have to use two each time. Wasteful! Oops, there’s another one. I’m just going to save them from here on out. But anyway.

YouTuber Pap is a TAS speedrunner, meaning, he deals with absolutes. He knows the state of the machine, and isn’t limited by any puny human reaction times, but works by recording button sequences that can be played back infallibly. He asked a question: what’s the minimum number of punches needed to play through the main game of Punch-Out? The answer is 120, but since the game has significant randomness, it’s really unlikely.

He presents what is probably the definitive answer, but that’s not really the interesting thing about it. His video is a master class on the game’s state, how it determines knockdowns and knock-outs, and how it awards stars. Some interesting things revealed:

  1. If a fighter ever gets up on a count of 1, connecting with a single star punch can knock them back down immediately.
  2. Many star punches are awarded based on successful punches where the opponent is not stunned or knocked down. You get them on a cycle based on a count that differs with each fighter. Special timing doesn’t have anything to do with it; it’s if the hit was successful of not. Late punches after stunning give star punches because the opponent is no longer stunned, not because they’re late.
  3. On top of that, there are random stars that are awarded sometimes. This randomness is significant for the minimum punch count challenge. But these stars can only occur if you already have at least one star! Keeping a star in reserve actually helps you earn more stars more easily.
  4. You having full health affects multiple boxers in significant ways, including sometimes turning knockdowns into knockouts.
  5. Soda Popinski has a trick where, if you hold down while he’s preparing to uppercut, he delays. He can then be gut-punched, and if you do, your next star punch will always knock him down.
  6. In the second fight with Bald Bull, I always wondered why it was difficult for me to counter his bull charge at first. Turns out, it wasn’t just me. The “long” version of his charge has a shorter success window, of just four frames! The “short” version, which happens if you dodge the long version, however, has a window of 13 frames. It’s so long it’s almost a gimmie. (I am resisting the urge to expend another exclamation point there.)
  7. The greatest minimum number of punches needed to beat any opponent is a tie between King Hippo (an atypical opponent in many ways) and Mr. Sandman (not surprising at all) at 20.
  8. The lowest minimum number is one, which can be gotten from Glass Joe (of course), the rematch against Piston Honda (huh) and the rematch against Bald Bull (what?).
  9. Mike Tyson/Mr. Dream can be defeated in six punches.

Video: GoldenTorizoCode

This is a channel on YouTube of various Super Metroid glitches and weirdness. A lot of it is pretty deep magic, and they tend to throw around evocative terms like Murder Beam, Chainsaw Beam, and even Spacetime Beam. Those links are useful in understanding what in the burning acidic heck the narrator is talking about. Knowing and caring about the gameplay of Super Metroid is, of course, required for comprehension.

But if you do know about Super Metroid, and you do care about learning about some of the more ridiculous glitches in videogamedom, then you’re in for something that is a reasonable approximation of entertainment.

The name of the channel refers to a debug feature left in Super Metroid’s code, that can be pulled off without hyper-obscure tech, although in the process it’s likely to crash your game. When you enter into the room of the of the bosses, the Golden Torizo, if all of the face buttons are held down during the transition, your equipment will be overwritten by a number of items. The code gives you all of the beam weapons in the game, which is good, but also turns them all on at once, producing the afore-mentioned Murder Beam, which will likely crash the game, not good. The opposite of good.

Here’s links to a few of these videos: an unused enemy called a Bang, activating “God Mode,” and how to obtain and use the end-game weapon Hyper Beam against bosses. It is some pretty intense geekery, but that’s sometimes what flows out of the faucets around here.

The Final Fantasy IV Door Stack Glitch

The Final Fantasy series is loaded with bugs throughout. A full recounting would be much more than a longpost’s worth, but here is a quick description of one specific example, from Final Fantasy IV (originally II in the US, but most people now will probably think of it by the Japanese numbering anyway).

The door to the pub is push-type, potentially causing Problems.
Image from mynockx’s guide on GameFAQs.

Some RPGs, instead of coding area transitions all as a sequence of doors and destinations, instead use a form of stack to record where the player was when they entered the door. “Stack” here is a term from computer science, a data structure consisting of a region of memory and a pointed within it. Data can be “pushed” onto the stack, which means putting some number of bytes onto it and advancing the stack pointed by that number. Stacks can “grow” either up or down, meaning when the pointer advances, it’ll go in that direction. When the data is needed again, it’s read off the top of the stack, then the pointer is pulled back to its original position.

So how the door stack works is, when a player enters a location, say enters a town from the overworld, their location before entering is “pushed” onto the stack and they are then moved into the town’s entrance. When they exit the town, their old location is “pulled” from the stack, leaving it empty. (Actually, the data is still there, but because the stack pointer has been decremented, it’ll be overwritten the next time the player enters an area.)

Why use a stack? Well mostly it’s a convenience thing for the programmers. A door’s location can either be “into” an area, or “out of” it. “In” doors have to know where they’re going, but “out” doors just have to know they’re going outside. But it helps in one particular instance; if a game has a spell or item like “Exit,” “Outside,” or “Warp,” it can work simply by pulling every location off the stack until it gets to the last one. This means the programmers don’t have to have every location “know” where a given area is on the World Map. Just rewind the door stack until you get to the last location on it, that must be it.

Well there’s a subtle bug in some locations in Final Fantasy IV where some transitions that push when they should pull. One such transition is the one to the pub in the Dwarven Castle. When you enter the pub, the way in is pushed onto the stack; when you exit, instead of pulling that location off, the way out is pushed onto the stack.

There’s only so much memory reserved in a stack, which for old games is usually implemented as a single page (256 bytes) of memory. The pointer into it is thus one byte long, and so if the stack fills up, it wraps around. If you find such a door, and go through it enough times, you can cause it to overflow on purpose, with unexpected results.

This can be taken advantage of in Final Fantasy IV by overflowing the stack, then going through a pull-door, which causes the game state to be read from unexpected memory. Speedrunners (you just knew they’d be involved) use this to flip rapidly to the end of the game. Most players will never notice this very subtle bug, since when you return to the world map the game knows enough to completely clear the stack.

Something I’ve noticed about the 8- and 16-bit Final Fantasy games is, if there is a potential for an obscure bug somewhere, there is almost certainly going to be an example of that bug somewhere in that code. A lot of these bugs are only visible to a player with obsessive observation or repetition. This results in spells with unexpected effects, stats with no function, features that don’t operate, and item duplication bugs. Truly, it was an age before unit testing.

Final Fantasy Wiki: 64 Door Hierarchy Glitch

Sundry Sunday: Crash Bandicoot In Japan

It’s Sunday! Time to electrocute your brain with more game-related video weirdness. Electrodes at the ready!

In Japan, it seems, Crash Bandicoot has a completely different, and extremely earwormy, theme song. Well in the Japanese release of Crash Bandicoot 2: Cortex Strikes Back, if you hold Left, Circle, L1, and L2 when the Playstation logo appears, you get this entertainingly bizarre karaoke video showing off a long version of the theme, featuring Crash doing a signature dance move, cavorting with ladies in nightgowns and bikinis, and getting blown up by a jetpack, all right and proper activities to be had by an anthropomorphic marsupial.

The song also featured in commercials for the games in Japan. As an extra, here is a (very badly compressed) compilation:

There’s a more video weirdness concerning Japanese Crash Bandicoot, but let’s save that for later….

Find The Spam

Find The Spam is an internet legend at this point, like zombo.com and Homestar Runner, although it’s much less well-known. It is a game, sort of. It is fun to play, for a couple of seconds at least. I won’t spoil any more, go see it now.

You could see it as a riff on hidden object games, although it predates them by two decades. While the Wayback Machine‘s earliest archive of the site is from 2001, it already had over 1.3 million views by that point. My own recollection is of seeing the site on a Windows 3.1 installation, meaning it may go as far back as 1994.

A recreation showing how the site would have been presented at the time.

The joke is slightly ruined on current machines. Viewed on older graphics cards (with resolutions of 800×600 or even less) the user would have to scroll down a little to see the image, and so would have time to read the intro text before it is revealed. Weirdly, on my Samsung tablet even more of the page is visible on first load, the screen seems positively anxious to spoil the joke for me.

By the way, can you tell I’ve been on an early web binge lately? You can expect more old-timey game sites in the near future….

Find The Spam

Zelda Classic & ZQuest

It’s hard to believe that Legend of Zelda fangame construction system Zelda Classic and ZQuest is 23 years old. Many such systems have fallen by the wayside during that time, but Zelda Classic continues on. Its first versions were made for DOS, but it continues to see improvements to this day.

ZQuest has this weird interface where they rolled their own controls for everything. The dev system seems to be rendered in Allegro.

Zelda Classic and ZQuest are made specifically to make overhead view action-adventures in the Legend of Zelda style, to the extent that it has graphic sets taken directly from the games and many items that work like their console counterparts.

It even simulates many of the quirks from the various Zelda series titles. And yet, it doesn’t require you to abide by them. Pretty much every technical or creative limitation of the 2D Zelda series has an option to disable it if you like, but if for some reason you consider it intrinsic to the experience you can keep it too.

The graphics can be completely changed out. With it, you can make a game that doesn’t look anything like a Zelda title, which I suspect is why it’s been able to survive 23 years in a legal landscape overseen by a Nintendo increasingly draconian in its approach to guarding its intellectual property. Still, it’s pretty heavily aimed at making Zelda fangames, right down to having pages and pages of checkboxes for every known quirk of Zelda engine behavior.

Look at that gloriously pedantic list of quirks! The ZQuest developers are awesome.

While it does offer a scripting facility (which it’s difficult to find documentation for), ZQuest is mostly a construction set type of program. You place tiles and enemies, lay out overworlds and dungeons, decide what items to include, and go. The program itself has little in the way of documentation but the site has a tutorial that should help one get started. I strongly suggest, if you are interested in creating for this system, that you read it.

Fan projects going on for this long suggests a kind of mania, but the ZQuest people are serious. They even forked Allegro to fix bugs and adapt it for their purposes. May they keep it going for another 23 years and beyond.

Zelda Classic & ZQuest

RenoProject.org: Documenting Habitat and its descendants

Long, long ago, three full ages before Zuckerberg’s doomed Metaverse, there was Lucasarts, formerly Lucasfilm Games, and Maniac Mansion, and the SCUMM engine.

Lucasarts went on to have a long legacy of adventure games, and while it’s gone now and most of its progeny is owned by some mouse creature, it survives in a number of forms, like the upcoming Monkey Island re-revival.

Another legacy of Lucasarts and SCUMM is what is possibly the first graphical MUD, called Habitat.

Even though it’s blurry, it deserves the head spot on a blog post, just one more time.

What? You don’t know what a MUD is, or a MOO or a MUCK? A lot of knowledge is in danger of being lost, but we don’t have time to remind you of rudiments here.

Habitat was an early experiment in online communities, a server-based virtual world whose clients were Commodore 64s. In appearance it looks a whole lot like a multiplayer version of Maniac Mansion.

It never went public, but did eventually become a paid feature, in modified form. on the C64 online service QuantumLink under the name Club Caribe. Then, with the wane of the Commodore 64 as a viable platform, QuantumLink closed their servers and rebranded as America On-Line, a.k.a. AOL. And that is not only history at this point, but ancient history. Read more about it here.

While there was still competition in the dial-up online service space, two creators of Habitat, Randy Farmer and Chip Morningstar, partnered with Fujitsu to have another go at a Habitat-style service, this time called WorldsAway. They partnered with AOL competitor CompuServe, and didn’t do badly for a while.

There’s all kinds of things to talk about here, and I have rather more knowledge than most because I was involved with this, I was volunteer staff at the flagship WorldsAway world, called Dreamscape. I was a participant in the CompuServe forum before the main service even opened, I spend an entire night on the phone as a teen, our old 486DX running Windows 3.11 downloading the client software.

WorldsAway was basically my life for a few years. It could be incredibly addicting, and spirits were high in the early days. There was a feeling of being at the forefront of something. The Internet was just starting to become really big. Who knew what it would become?

What happened to WorldsAway is a story, one that I’m probably not qualified to tell. I know there were problems with business management even from the start. The world staff was constantly said to be fighting with higher-ups, who wanted to cheapen or diminish the project. In size, certainly, the initial world Dreamscape never got anywhere as large as what we hoped for. Even compared to the size of its Commodore 64 predecessor Club Caribe, it was pretty small.

It’s said that they were a west coast operation, and many of their staffers were queer. One of the eventual spinoff worlds that WorldsAway would spawn was explicitly queer-friendly. Given the successes and continued struggles of queer-friendly media on the internet today, I feel like WA’s acceptance of alternate lifestyles should probably be better known.

I still have a couple of friends from those days. Others I’ve sadly lost touch with. A few friends from that time, notably Tiggles, Esme, and Rosaleah, have departed our physical world as well. Maybe some comfort could be had in the idea that maybe they’re users in some higher-order reality, who may have logged-off of our world, but are still out there in a more profound form. If they’re out there and somehow seeing this: please spare a thought for me. I’ll be back out there some day.

The Reno Project is a website devoted to preserving as much of those early projects, those ancient times, as possible. You could immerse yourself in the screenshots there, and dream of a past era that barely was. One of its competitors at the time, which is a bit better known today, is The Palace. One other service that still exists that competed with it is There, although good luck making an account (I tried). And Second Life of course continues to chug along. All of these things seem to me like more worthy projects than Zuckerberg’s latest progeny.

VGDensetsu: The Work of Yōichi Kotabe

VGDensetsu hasn’t appeared in these pages yet and it’s high time we remedied that. This particular link is to a five-part series about an animator who switched careers to doing illustration for Nintendo, and played a major role in determining the look of many of their most popular characters, including Mario and Link.

Mario characters influenced by the work of Yōichi Kotabe
While often at the time illustrators went uncredited, it’s considered likely that Yōichi Kotabe did these illustrations of Link from Zelda II, and the island of Koholint from Link’s Awakening.

VGDesetsu: Yōichi Kotabe — 60 Years of Animation and Video Games
1. The Toei Era2. From One Studio to Another3. From Animation to Nintendo4. Diversification and Transmission5. Towards New Horizons

Sundry Sunday: The Adam West Cutscenes in the Golden Nugget PS1 Game

Its Sunday! Another week in the books! You made it. So, here’s a weird video something you may enjoy.

On the original Playstation there were a lot of games release, some good, some bad, and some rather strange. Since games were released on CD, there was a lot of space for full-motion video, and sometimes that allowed developers to build in some silly extras.

That’s what happened with the Golden Nugget game, a fairly standard gambling sim that was elevated to sublime levels of wackiness by its video clips. It’s a fairly standard shoehorned-in story, about a computer chip that allows one to win games of chance somehow, but then Adam West shows up, as “Mr Swayne,” starts Adam West-ing, and suddenly, you’re watching comedy gold.

There’s a lot of other-character-acting to wade through to get to Adam, so you’ll want to skip forward to 8:10 to see his first bit.

The MOS 7600/7601 Pong Chips

Now here’s a Commodore console I’d wager you haven’t heard of.
(Images from Old Vintage Computing Research.)

In a bygone age, the video game industry largely consisted of “dedicated” machines, that could play the games they were made to play and nothing else. Customers would buy devices costing $100 or more in 1970s dollars that could only play Pong and maybe a handful of other games, and that was it. It was a weird time.

There was a whole cottage industry of special chips devised by fabricators back then, that a manufacturer could buy from them, build a plastic shell around with AV connections, a few switches, and controllers (often hard-wired to the machine), and just like that have a console read to sell. The company General Instruments in particular sold a lot of these chips. Many of the details of this era can be read on the website Pong Story.

In addition to GI, Texas Instruments, National Semiconductor, and even MOS Technologies, makers of the 6502, got in on the dedicated video game chip business. MOS’s angle was to make customized chips that had a bit of built-in ROM that could run small programs without having to have a separate chip to store game code.

My, what big numbers you have.

This was a fairly brief in the history of video gaming, and only a few consoles were made using these chips, all of them very obscure today. The always great blog Old Vintage Computing Research recently hunted down some of these consoles and tried them out. It’s a big article, and it makes for fascinating reading, to those of a certain mind. Of those, I am one. I suspect that you might be one too!