Romhack Thursday: Advanced NES Rom Utility

Edit the Frog would like you to know that he has no relationship with that meme frog going around.

On Romhack Thursdays, we bring you interesting items from the world of game modifications.

We’re starting another weekly feature on Set Side B, where we try to regularly bring you news on new romhacks and romhack-related items. Big websites sometimes seem like they try to appease publishers, whose good graces they rely upon for news and review copies, by not mentioning hacks too prominently, at least if they’re of console games. Whether this happens, or if it merely seems like it may happen, we don’t ask big publishers for review copies so we don’t have to avoid talking about them, and are free to tell you about the most interesting of these game edits that we can find.

To start us out though, something you’ll find you’ll need if you make heavy use of hacks, are good rom patchers. To shield themselves from legal liability, hack authors usually distribute their modifications through the use of patches, which are in essence lists of modifications that can be applied in an automated way to a source rom file, which you’ll have to source by some other means.

Two good such utilities are Floating IPS, which can apply IPS patches, and (the sadly departed) Near’s beat, which can apply BPS patch files. IPS is the most commonly-used utility, and functions mostly as a kind of binary diff, but it’s limited to source files of a maximum size of 16 megabytes, and doesn’t offer any error detection features, so if the file you’re patching isn’t exactly what the patch expects (which happens frequently, as bad dumps or headerless roms often turn up), not only will you end up with a corrupted file, but you won’t even have any indication something has gone wrong-in most cases, you’ll still be told the file patched successfully. BPS is a more intelligently-designed system, and has some error detection built-in.

A new utility that can be of use is “Advanced NES Rom Utility,” a program that can not only apply both IPS and BPS patches but several other types as well, and can also fix many common problems with NES dumps in particular, including fixing checksums and metadata. But patches are usually source platform agnostic, so you might get some use out of it even if NES romhacks are not interesting to you.

Live A Live Remake Changes

Live A Live is currently the toast of the Switch, with over 500,000 in sales since it was released. Not bad at all for a remake of a Super Famicom game from Square’s classic era that had never made it out of Japan until now.

AustinSV on Youtube presents a video that goes into some detail about what was changed between the versions. If you’ve played the original (I’ve played a fair bit of it through the popular fan translation from Aeon Genesis), you’ll know a few things were definitely tweaked. I remember the Prehistory, by far the funniest chapter, being rather more risque in its humor, although the fart jokes and poop flinging were left mostly intact. Some of the changes are really interesting; they translated the whole Middle Ages chapter in iambic pentameter!

Which Version of Live A Live Should You Play? The Original + Switch Remake Reviewed & Compared (Youtube, 16 minutes)

Metal Slug M.I.A.

\An awesome fansite about this history of classic hardcore NeoGeo run-n-gun series Metal Slug, there’s lots of information and screenshots scavenged from Japanese gaming magazines about its development!

Early screenshot of a development version of Metal Slug, scavenged from Gamest.
All images in this post from Metal Slug M.I.A., which has many more of them!
Early in development, you spent the entire game in the Metal Slug tank.
You could rescue soldiers who would then help you in battle, such as the one in the white uniform in this image riding on the Slug.
Beta screenshot of the final boss fight with General Morden.

Metal Slug M.I.A.

Sonic 2 Boss Hit Box Bug

While we’re on the topic of 16-bit Sonic, revealed last year by Lapper on Twitter, and recently boosted by Classic Sonic Deconstructed, it turns out that, because of a misplaced hitbox, you’re completely immune to the bomb attacks of the boss of Chemical Plant in Sonic the Hedgehog 2 if you’re crouching.

This is the boss’s only attack. If you’re standing on the middle platform and just duck when he’s attacking, you’re completely safe.

Original tweet.

Sundry Sunday: Pepsiman Cutscenes

The past two Sundays have been devoted to Playstation cutscenes. Here’s one more.

Pepsiman is an infamous Japan-only PS1 title, created by KID, who produced the NES games Low G Man and Recca. The Pepsiman character was a mascot for Pepsi in Japan. How he managed to swing a Playstation game I don’t know. I assume it was released as a cheap promotional thing, similar to how Sneak King for Xbox 360 was distributed for $4.99 at Burger King in the U.S., but truthfully I don’t know where I got that impression. It’s probably false.

It had a low budget, so they put in these cutscenes with an American actor sitting at home with what I can only describe as way too much Pepsi, drinking, congratulating the player (in English), and exhorting them to consume the caramel-colored, cloyingly-sweet beverage.

The effect is akin to having bubbles of carbon dioxide diffusing through your brain. Please spend time in a decompression chamber after viewing, to avoid coming down with the Pepsi Bends.

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