Christian Hammond Investigates Faxanadu Internals

Oh we here at Set Side B try to make all kinds of posts, but among my personal favorite kind are finding some deep dive into some aspect of a game’s inner workings and presenting it. These days, for multiple reasons (such as ease of monetization) many of these dives turn out to be Youtube videos, but not always.

Christian Hammond (Bluesky) has begun a series of text articles looking into the specifics of the implementation of Famicom/NES game Faxanadu.

To explain its name, Faxanadu’s name comes from Xanadu, an early JRPG from Japanese computer game maker Nihon Falcom. Falcom didn’t make Famicom games themselves, but they did sometimes license their games to other developers to make Famicom ports of them, or spinoffs. Faxanadu, developed by Hudson Soft, is such a spinoff. It has nothing to do with Xanadu other than being a non-scrolling exploratory platformer. Its name is a combination of “Famicom” and “Xanadu,” you see. While it’s not at all as popular as a Dragon Quest/Warrior, it’s well remembered by many.

Christian disassembled the whole game, and found out that it has three separate binary scripting languages. His series to document and explain them so far has only Part 1, which is here, but the rest are forthcoming soon.

This first part explores what is possible using interaction scripts, or “IScripts,” which are run when the player runs into some object or speaks to an NPC. It’s quite easy to understand. If you have some interested in how these things are built and run, it’s worth it to take a look.

Computer Archeology’s Page On Space Invaders

This one’s for the hardcore techies out there. Computer Archeology is a terrific site with information on the inner workings of several prominent games. One of their most complete and detailed is on the code and hardware of arcade Space Invaders, including a disassembly. While it is not, as the page says, “one of the first” arcade video games, not unless you count everything manufactured between 1972 and 1978 as unimportant, there’s a vast amount of good information there.

Some of the info revealed:

  • The game tracks five objects every frame. The player’s base, their shot, and three invader shots. The invaders don’t “count” as moving objects; the Mystery Ship temporarily replaces one of the shots, meaning, while it’s on-screen the aliens can only have two shots on-screen instead of three.
  • Only one of the shots is “aimed” to fall on or near the player. The others are just dropped wherever.
  • There is a bug where the player’s shot hitting the rightmost shield on the right edge of the screen can be misinterpreted as hitting the last invader on the very left edge.
  • The reason the invaders speed up as their numbers are diminished is because the game draws the new position of exactly one invader into the framebuffer per frame. Fewer invaders means each gets to move more often, until the last one gets to move every frame.