Behind the Code Examines The NES Punch-Out!! Boxer Engine

Here’s another of those deep-dive NES internal videos from Behind the Code, possibly the most complex one they’ve done to date. Most game engines, when you examine their basic logic, are basically physics simulations, with some AI included to determine how actors behave.

Not so with the Punch-Out!! games. They are essentially entirely different kinds of games from that. You have certain things you can do moment to moment, and opposing boxers do too. Each of those opponents basically runs a big script, made out of byte code, that determines their behavior throughout each round of each fight. I am struck both by the simplicity (no need to simulate gravity) and the complexity (boxers take all kinds of things into account) of the system.

One of the interesting things shown is that the engine can affect more than just the boxers, but can also subtly affect the crowd, which is how the previously-revealed fact that a specific camera person in the crowd uses his flash right at the moment the player must counter Bald Bull’s charge move. It turns out that this isn’t the only instance of this happening in the game!

You don’t need to know 6502 assembly code to get what the narrator is talking about, but a lot of code is shown, so those of you who understand it may get a bit more out of it. Here are a few basics to help you follow along.

The 6502 has only three registers (bits of memory internal to the CPU that can be accessed quickly), the Accumulator (sometimes called just A), the X register, and the Y register. Each is only one byte long. The Accumulator is by far the most flexible, but all three are general-purpose registers. The most common instructions are Loads (LDA, LDX, LDY), Stores (STA, STX, STY), Transfers between registers (TAX, TAY), Incrementing and Decrementing (INX, INY, DEX, DEY), Adding (ADC), Subtracting (SBC), Comparing (CMP), Branches (some of them, Branch Not-Equal to Zero: BNE, Branch Equal to Zero: BEQ, Branch of Carry Set: BCS, Branch on Carry Clear: BCC), Jump (JMP), Jump to Subroutine (JSR), and Return from Subroutine (RTS). While some instructions are just one byte long, the longest any 6502 instruction can be is three bytes, and the opcode (the command itself) is always just one.

(I wrote all of that from memory. I figured, I have all of this in my head from my coding youth, I might as well use some of it.)

The 6502 can only address 64K of memory, so often systems will use bank switching to connect various memories to it within that space. The great majority of NES/Famicom games had to do this. Punch-Out!! was unique on the NES in that it was the only game to use Nintendo’s MMC2 chip. (I wonder if the chip was designed ahead of time, and they made this game as an excuse to use it?) Punch-Out!! uses MMC2 to bank in each boxer’s large data script as needed.

Behind The Code: How Do Boxers Work in Mike Tyson’s Punch-Out!!? (Youtube, 20 minutes)

Q&A with Patrick of Patrick’s Parabox

We’re not averse to some cross-promotional synergy at Set Side B, so I figured I’d get a day’s linkage from a Q&A that I myself did with Patrick Traynor, creator of the astounding and brilliant puzzle game Patrick’s Parabox (itch.io, Steam). Parabox starts with Sokoban, but then compounds it in bizarre and fascinating ways. Ways like these (and this is very much only the beginning):

I did the Q&A some months ago, but it ended up getting delayed until late January of last month.

Designing the mind-bending puzzles in Patrick’s Parabox (Game Developer, I’m the interviewer)

The Top-Rated 7DRL Games from 2022

I love the 7DRL Game Jam! One of the oldest jams out there, on March 2 they’ll begin their 19th year! It asks participants to complete a roguelike game within a week. I even covered every game that succeeded at the challenge one year for @Play on GameSetWatch a long time ago.

Public enthusiasm for it has ebbed and flowed over that time, but even last year 65 people are recorded as having completed the challenge. And every time there are a few games that are hugely interesting! A rating system helps to reveal those games that might be particularly interesting.

If you’d like to participate this year, well, you just can, they’re clear that you don’t need their permission and there is no real prize for doing it. But if you want to participate during the official period of the challenge, this year it’ll start on March 3rd. We have a reminder post here on Set Side B ready to roll out the day before it begins, so keep watching our pages for it!

Here is a brief look at the highest-reated 7DRL games that made it last time:

Mercury Salvage

First: Mercury Salvage is a graphical roguelike about cleaning out derelict spaceships.

Second: The Mage’s Student is a deck-building roguelike centered around magic, and has to do with fighting off ” the many creatures guarding the Newt-Core and the Transformative Cricket…”

Third: Death Stranding RL is, as should be obvious, based on Hideo Kojima’s game. It has an interesting look for a console-based game.

Death Stranding RL
Torshavn: The Fae Forest

Fo(u)rth: Torshavn: The Fae Forest is a console roguelike written in the eclectic language Forth.

Fifth: In Orcish Fury, you’re an orc berzerker out for revenge. It’s playable in-browser.

Sixth: Greedy Rogue is also playable in browser, in it you’re a rogue rading a dragon’s lair while the dragon is out.

Grove Climbers

Seventh: Depths of Greed has you trying to get a cure for your daughter’s illness, akin to Larn. You’re a shopkeeper who goes to the nearby dungeon to try to find a cure, bargaining with the monsters.

Eighth: Grove Climbers has an interesting look to it, it’s team based and has (collective) you climbing a huge tree.

Ninth: Join Me In Dystopia, Pirate! is a randomly-generated top-down shooter.

Tenth: In Maneuver Ability, you don’t directly damage enemies, but can push them, which stuns them for one turn.

Running Around Dressless (in a Nascent Territory Full of R* Monsters)

Eleventh: Running Around Dressless (in a Nascent Territory Full of R[something] Monsters) is vaguely NSFW (in a very tiny pixel art way), and it playable in browser. The R-word in the title changes randomly. I’m not quite sure how to play it honestly, it’s not a typical trading-blows game definitely.

And twelvth, SpelunkyRL, we posted about last year!

There’s many more than that, limiting it at 12 is rather arbitrary. If you have the time and interest to spare you should have a look!

U Can Beat Video Games: Dragon Warrior III

I’ve been waiting for this one for a long time! U Can Beat Video Games has finally covered the best NES Dragon Warrior, the third game in the series. It was Dragon Quest III in Japan, due to some trademark issue with TSR I think. IV isn’t bad, and has fun characters, but there aren’t as many variant strategies in it, and in the last chapter you don’t get to control the actions of most of your party members. DWIII always gives you full control of your characters, plus it lets you create characters with names and classes of your choosing, meaning, like the first Final Fantasy, you can make completely custom parties and play the game in many different ways. It was the game that spawned the urban legend that the Japanese government requested that Enix release Dragon Quest games on weekends, because so many people ditched work to stand in line to buy it. (I don’t know if it’s true, but the story has often been passed around.)

It’s also the first Dragon Quest/Warrior game that allows for class changing, which resets a character to Level 1 (similar to an human AD&D character who dual-classed), but only halves their stats, and lets them keep all the spells they learned. Since they’re Level 1 again, they gain levels very rapidly for a while, allowing them to quickly surpass their previous heights. It’s kind of an early version of the “prestige” mode of clicker games, where you reset all your progress in exchange for faster progress afterward!

It also has a cool story that eventually connects with the first two games, and has a good variety of activity, including growing a town from scratch like 25 years before Breath of the Wild and betting on monster fights! It’s also got all the challenge of the early Dragon Quest games, with later monsters who can cast instant death spells on everyone in your party at once, as well as doing other horrible things to them.

Because Dragon Warrior III doesn’t pull its punches against the player, the various tricks that the narrator does to use the engine’s bugs against it feel like playing fair, and yet, even with full knowledge of the game and multiple player leveling and cash gaining strategies he still has problems once in a while. It’s a really tough game!

This may end up being U Can Beat Video Games’ magnum opus, at least of the NES era, it’s a really long game that takes three videos, of almost 12 hours total length, to cover in its entirety! Here they are:

EPISODE ONE: Creating Your Party Through to Getting the Ship (3 hours, 59 minutes)

EPISODE TWO: Getting the Ship through to Defeating Archfiend Baramos (4 hours, 22 minutes)

EPISODE THREE: The Dark World to the Final Boss, Plus Extras (3 hours, 35 minutes)

Please enjoy, and Rubiss help us all!

AKKA ARRH on Steam!

Please pardon our lack of a romhack review this week. It’s not always easy to find a good hack to review out of the tens of thousands that are floating around out there. In the meantime, classic remakes are kind of like romhacks, right?

Those who have been following us for the (gosh) nearly one year we’ve been in operation will have picked up on the fact that we love classic Atari. Especially we love classic Atari prototypes. In my humble opinion, Atari treated the output of their stable of brilliant creators with almost a dismissive attitude.

Developers would make a game completely from scratch, spend months working on every aspect of it, handtooling the assembly code, sometimes for hardware platforms that were created specifically to run it, devote their lives for a time to this project, test it in-house, get reactions, modify it, get it running, get approval to make cabinets and put it out on location test, then have all that work get destroyed. Oh well! Back to the drawing board. That’s what happened to AKKA ARRH.

As awesome a title screen as there ever has been!

The only record of all of that effort might end up being those few prototype cabinets put out on test and in the hands of the original developers, and the files in the Atari archives, which were pretty much left out to rot when the company was shut down, and would have been lost to us except for a few people who searched their dumpsters looking to preserve them.

Because of the value of those tiny number of cabinets, collectors guard them zealously, which puts them at cross purposes with the people trying to release the files and get them working in MAME. Two such stories lately have been the prototype for Marble Madness II, which we talked about last year, and AKKA ARRH. (Which, I think, is still one of the best game names I’ve ever heard. It’s fun to say!)

AKKA ARRH’s history is a long story. Long lost except for a few cabinets, somehow, we’re still not sure how, the code got dumped and leaked on the internet. However it happened, that event seems to have uncorked the bubble, with rights-holder Atari (not the same company as the old Atari) commissioning a full remake from Llamasoft and Jeff Minter, the creator of Tempest 2000 and probably the person best keeping alive the spirit of classic arcade gaming.

Minter’s remake of AKKA ARRH is now on Steam. It’s kinda pricey at $19.99, but it looks g r e a t, as you should be able to tell from the trailer below. An emulation of the original arcade game is also in the Atari 50th Anniversary Celebration package from Digital Eclipse, available on Steam and lots of other platforms, which costs more but also gets you many more games, and documentaries and flyers and lots of other plat*.

Seeing that little TM symbol after the logo is oddly heartening. It’s so nice to see this game given a full release, even if only digitally. It’s been a long journey. Welcome home, AKKA ARRH.

* Lately I’ve been chafing against the limits of language. Please excuse my made-up words, I’m kind of sick of having to turn to the same old synonyms, once again, at the moment. You should know what I mean by context here.

Adam Dawes’ Guide to Bubble Bobble

For 16 years now, Adam Dawes has had a guide to Bubble Bobble on his website that provides precise, detailed strategies for defeating each of the game’s 100 levels, most with a demonstration video (one level’s video I found doesn’t work). Each level has a difficulty ranking, and such is skill that the hardest of them I found, level 91, is only rated as “medium-hard.”

Adam’s guide provides the details of finishing each specific level, but it doesn’t explain all of the weird secrets that lie buried deep in the game’s code. For that, check out the previously-linked Bubble Bobble Info Pages!

Adam Dawes’ Guide to Bubble Bobble

Turbo Rascal

Turbo Rascal, more fully known as “Turbo Rascal Syntax Error” or TRSE, is a multiplatform game and demo development system, including a compiler, afull IDE and some miscellaneous utilities like an image editor. It’s based on Pascal, which might be annoying to people who have the conventions of C burnt into their brainmeat, but is easier on newbies on the whole, since its language idioms tend to be more readable for intent, and it doesn’t include structures like the ternary operator: (a ==0) ? isequal() : isnotequal();

While it supports a lot of different classic computing devices, TRSE’s “native” platforms, those it has the most support for, are the 8-bit Commodore machines. Using it, you can pretty rapidly put together a program to display an image on the C64’s hi-res screen:

It comes with a lot of example projects too, including a number of technically proficient demos that show off its capabilities. After you install a C64 emulator (VICE is recommended), the following can get up and running in less than a minute:

Turbo Rascal Syntax Error

Sundry Sunday: Lego Dimensions has GlaDOS meet HAL 9000

Lego Dimensions was much too awesome for this decayed world. Sadly, many of its greatest moments were part of DLC locked to various figures you had to collect individually.

But if you had the right bits of plastic, you could witness moments of pop cultural crossover greatness. Witness then this meeting between Portal’s GlaDOS and 2001: A Space Odyssey‘s HAL 9000, with the voices of each, sort of interacting with each other in their various impersonal AI ways.

Now Run System 6 and Mac OS 9 In Your Browser

A while back we linked to Infinite Mac’s surprisingly deep emulation of Mac OS Classic System 7 and Mac OS 8 (they’re both of the same line of operation systems despite the change in name) in web browsers. Since then they’ve also added System 6 and Mac OS 9 to their offerings, in addition to a Japanese version of System 7.

Mac OS 9

Features a good variety of software including games and productivity, a full-screen mode, built-in networking with friends on the internet by specifying the same subdomain allowing such tricks as online sessions of Marathon, and a fairly easy way of adding your own software.

If you use this and want to keep files between sessions, make sure that you move or copy them to the Saved folder, under The Outside World. Read the purple Sticky for more information on getting files into and out of the emulation.

I find that Classic Mac OS has a power to inspire nostalgia that OS X doesn’t. It might have to do with how so many of its conventions dated back to the original Macintosh release from 1984. Multitasking came to Macintosh after the fact, so when it arrived Mac OS used a cooperative multitasking paradigm, that meant one misbehaving program could bring down the whole machine. Yet the system felt smaller, like there wasn’t as much unfathomable technology between the computer and the user. And I still dig that crisp pixel art used for the icons. It is possible to have too much anti-aliasing.

Infinite Mac’s emulatons of System 6, System 7, Mac OS 8, Mac OS 9 and Japanese System 7.

Team Fortress 2 Stirs In Its Slumber

Team Fortress 2, Valve’s infamous hat simulator, is, amazingly enough, still popular. Eons after it went free-to-play, years after it saw its last content update, many players had assumed it was, as far as new content went, dead.

Yet, people keep playing it. Following, arguably creating, the “games as service” concept, it seems somehow fitting that its makers might be turning their attention back to it right around the time that the industry generally seems to be reconsidering whether it works as a concept for most games. And so Valve has put out a call for community content to be included in an upcoming large-scale update. People got so excited over it that Valve said:

So, as reported by Kotaku, PC Gamer, and no doubt over half of the gaming internet by now, they’ve walked back their claims a bit. But it’s still a lot more movement than the game has seen lately.

How long has Team Fortress 2 been at it? It was included in the Orange Box for Xbox 360, along Half-Life 2 and the original Portal, a used copy of which is currently resting on the shelf of the donations shop of my local public library. (I’d get it but I don’t have a 360!) It’s been out for sixteen years. It was released in 2007, in that dusty age pre-Obama. The meme culture around it, bolstered by the game’s cartoony presentation and sponsorship for several years of the Saxxy Awards, helped establish, for better or worse, the tone of gamer humor. One of its most beloved actors, Rick May, the voice of Soldier (also Peppy Hare and Andross in Star Fox), passed away in 2020.

I’ve played some TF2 back in the day, I’m with it, I’m “hip.” I think I may have even scored a point once!