Summary

Here is my improvement to Walker Boh's NES Faxanadu run. Final time is 23:24, which is 27424 frames, or 7 minutes and 37 seconds faster. What changed? The route: new shortcuts cut out many screens. The items: the Long Sword and Battle Helmet are skipped; the Dragon Slayer and Battle Suit are not wielded, meaning I beat the game using the dagger. The deaths: I die 4 times vs once in the existing run. The unlimited invincible flying: helps, but only accounts for maybe 60-70s. The game is long and confusing, so I include a brief plot synopsis, route description, then summarize the time-saving tricks I use. I tried to add some entertainment by killing monsters at very close quarters and flying/jumping in unexpected ways, but didn't sacrifice any time to do so. I don't put much stock in re-record counts, but for what it's worth, the count was actually much higher due to splicing and use of separate movie files to optimize individual screens.
  • Aims for fastest time
  • Takes damage to save time
  • Uses death as a shortcut
  • Abuses programming errors in the game
  • Manipulates enemy movements
  • Genre: platform
  • Genre: adventure
  • Emulator FCEU 0.98.16

About Faxanadu

Many people call this game the best ever put out for the NES. I wouldn't go that far, but it is one of the most underappreciated having, for 1987, a huge map, lots of secrets to discover, and an extensive storyline combined with excellent graphics, sound and music.

Plot synopsis:

The Dwarfs...they've gone MAD!! They're terrorizing the Elves!! Also, the springs have run dry and...something about a meteorite. What's a wandering hero to do?
  1. Kill himself. (really!)
  2. Visit the Elven King to get the quest!
  3. Villagers have defiantly built a wall to protect themselves from the evil Dwarfs. Find the mattock and bust that wall down, leaving them defenseless!
  4. Visit 3 old men and get them to revive 3 springs. They apparently live next to these springs but lack the creative energy to revive them without prompting.
  5. Mist World: Kill a giant Dwarf for the Black Onyx, then bribe some fat guy for the key to the next level.
  6. Branch World: Kill another giant Dwarf for the Battle Suit.
  7. Semi-Evil World: Kill the King of the Dwarfs to get the Dragon Slayer.
  8. Evil World: Kill the Evil One in his Evil Fortress, using what is basically a dinner knife with a hit box the size of a damp cigarette.

The Route

World of Trunk: The Quest of the Springs

Interesting run where the first thing the player does is die, right? This is done to refill magic/hp efficiently. Initial purchasing is exactly like in Walker Boh's run. I kill everything in my path to maximize gold collection early on. Even when I have to wait for the jumping cyclopses to fall from the ceiling, it's worth it because I need 2800 golds to buy the wing boots later. I have to shift screens in the Tower of Trunk to get the secret mattock to appear; this saves about 100s vs going up the tower, but requires replacing the gold acquired there. Part of this is achieved by skipping the Long Sword; the rest by farming just before town. My route restarting the springs is markedly faster because I get wing boots from the bees -- a screen I need to visit anyway -- and abuse death. After dying, I use the wings and obtain the invincibility potion (I shift screens twice to get the latter). Now, using a trick described later, I can fly invincibly until I abuse death again at the end of the Mist World. I harvest 5 wyverns while getting the Ring of Ruby because they give 720 golds apiece and very little experience (letting me avoid the 5s delay of talking a title later). On the way to the fountain I shift screens once to set up a pair of wing boots in the Mist World.

World of Mist: Get the Black Onyx/Ace Key

This world blows by because I'm invincible and can fly almost the entire time. I kill a few enemies with very little delay to get up to 4500 golds for the 3 K keys I need. There; having spent over 10% of the run to this point talking to annoying, repetitive storekeepers, from this point on, money is of no value. Even though I control its timer, I let the ointment expire just before the boss so I can take damage and die to avoid backtracking.

World of Branch: Get Battle Suit/Dworf Ring

Ok; no invincibility ointment for the first part because it's too short and I want to die after getting the Battle Suit to avoid a long backtrack. I pretty much just run through, avoiding or boosting off of monsters and only killing a few for life. The spot where I fall down a hole and glide to the right is actually very delicate; to set up the wings I get before the Battle Suit, I need to exit this screen at the bottom right. This lower route has the advantage of dodgable enemies so it is also faster. After getting the Battle Suit, I just need to die, but I shift screens twice vertically to set up the ointment for my next life. I end this life with 1 spell left I had no use for so I defiantly shoot it at the monster which kills me. After dying, things are simple again; use the wings, get the ointment, and fly invincibly out of the Branch World!

World of Evil: Get the Dragon Slayer and kill the Evil One

The final world is simple; I only kill 2 monsters! They're big ones, though -- my dagger does 5 points of damage, and the last 2 bosses each have 250 hp. I use my wings to take a big shortcut en route to the first boss (going right to his tower door instead of up and around), saving about 30s over the existing run. King Grieve, the flying boss, has the annoying property of resetting the ointment counter to zero when you enter his screen. This, combined with the unbelievable fact that the item timers continue to run during the end scene where the hero greets the King, means that, alas, the ointment expires during this final scene; the annoying message costs me over 3s.

Tricks -- Some discovered by me, some seen in prior TAS/speedruns.

Secret items

Items appear on screen in 3 different varieties. Some always appear; others appear when the mod 4 counter at $43a is 0. This second group I call "secret" items; they can show up either when you enter the screen or, more commonly, after you kill all the monsters onscreen. The counter increments by 1 each time any screen with a secret item is entered. I take advantage of this, going back and forth to increment the counter in various places via the faster vertical or town screen transitions (35-40 frames vs 85 for horizontal), even when I'm interested in an item on a screen far ahead.

Prolong wing boots/ointment time

The four timed items -- wing boots, ointment, glove and hourglass -- each has its own timer, in seconds. If the timer reads 255, the item is inactive; if it goes below 0, the item expires. The timing works by decrementing the counters each time the frame counter at $1a (mod 256) reaches a multiple of 64. By either pausing or being in a screen transition or menu when these multiples are reached, it is possible to prolong the effects of these items indefinitely. For example, pause when the counter reads 62 and unpause when it reads 64; only 2 frames need be lost. Alas, as noted above, some bosses set the ointment counter to 0 while the player does not have control. While this doesn't immediately expire the ointment (because it can still be kept at 0!), it does mean that as of now it is impossible to kill King Grieve and the Evil One without having the ointment expire when the player meets the King afterwards. Finally, this trick has an annoying effect on the music in places, especially the guru screens.

Battle helmet skip

Not much to say here. The Battle Helmet and Battle Suit are both necessary to wield the Dragon Slayer. However, only the Battle Suit is required to get the ring required to exit the world of Branch. AND, to get the ring required to reach the Evil Fortress and beat the game, the game only checks that you HAVE the Dragon Slayer. So...the Battle Helmet may be skipped, saving about a minute, as long as you don't mind not being able to wield the Dragon Slayer or Battle Suit.

Keep speed up

When the player starts walking, it takes 96 frames to reach full speed (double the starting speed). Thus, each time the player stops, up to 24 frames is lost. Stopping to swing is the worst -- 44 frames lost! In many cases this is the driving force for how I attack various screens or decide to dodge rather than fight monsters.
  • Deluge -- speed broken only if player is on the ground or wings active
  • Melee -- speed broken only if on the ground, wings active, or swing hits enemy. Thus, hitting enemies as late as possible in a swing to still do full damage saves time.
  • Item usage -- speed broken UNLESS used as I do in this run: jump, swing in midair so swing and jump end at same time, use item on last frame before landing.
  • Entering doors -- speed maintained by entering with up + left/right pressed; speed broken in doors connecting different sections of the game
  • Taking damage -- always breaks speed; "damage boost" while running full speed actually loses about 10 frames, but is beneficial if speed is very low.
  • Flying -- speed broken if up or down is pressed while holding A to fly. Note that holding left/right + A allows "gliding" downward at full speed.
  • Jumping -- some have noted that the player seems to accelerate while jumping/falling. This is true, although no faster or slower than if he were walking.
  • Stores -- it is possible to buy multiple items without losing speed by pressing horizontally at just the right time between purchases

Double hits

It is possible to get 2 hits with a single swing if the target enemy is close enough. Timed properly, 2 spells can also be worked in, resulting in up to 22 damage per swing with the dagger + 2 deluge.

Jump up ladders

If one takes damage or flies while near a ladder, the game treats the ladder as if it is ground, allowing rapid vertical travel by jumping.

Jump down ladders

Much more subtle, this was a late discovery of mine. If you jump above a ladder in a place where either the ceiling obstructs your full leap or there is an enemy you can swing at, the game lets you "fall" part way down the ladder much faster than you can climb down. This is best demonstrated at the end of Branch and in the Final World (there aren't many down ladders prior to this on my route!)

Turn and cast spell at the end of a swing

Normally you swing when you cast a spell, and once you start swinging you cannot change direction. However, on the last frame of the swing, it is possible to cast a spell in the opposite direction without starting a new swing. This allows the player to simultaneously attack enemies on both sides, which I use to kill 2 wraiths in Branch.

Fountain

About 20 frames can be saved by knowing that the fountain counter ($d7) only starts when you're on the ground pushing.

Useful Addresses

  • $348,9,a,b -- enemy hp
  • $39a -- spell points (max 80)
  • $431 -- hit points (max 80)
  • $a9 -- speed (min 192, overflows to max of 128)
  • $9e -- player x, pixels
  • $9d -- player x, pixel fraction
  • $a1 -- player y, pixels
  • $43a -- secret item counter (0-3)
  • $1a -- frame counter
  • $ad -- player invincibility counter
  • $427,9 -- ointment, wings counter in seconds

Recommended Screen Shot

With a nod to Bionic Commando, frame 24732. I find it funnier for the fact that the guru's animation essentially consists of apparently gi-normous breasts bouncing up and down.

Thanks

  • Walker Boh -- for his two TAS runs
  • Chip 'Breakdown' Vogel -- for his speedrun on speeddemosarchive.com, with extensive comments
  • CtrlAltDestroy -- Whose mention of the "secret mattock" on the forumus got me thinking about doing this run
  • Twelvepack -- For a couple useful suggestions
  • User 'sp' on the-interweb.com for his blog of disassembling faxanadu
  • All those who contributed to the Faxanadu RPGClassics.com shrine site and other online resources.

adelikat:Accepting for publication as an improvement to the published movie. Also, encoding.

Lord_Tom
He/Him
Expert player (3274)
Joined: 5/25/2007
Posts: 399
Location: New England
Thanks. I would be really excited to see a new speedrun of Faxanadu; if anyone wants to try let me know and I'd be glad to give any information that might be helpful. I can actually see the timer glitch being modestly usable in a console run. Obviously, you wouldn't be able to abuse it to the extent I do here, but on an easy screen (like a town) you could probably do your best to pause/unpause about a second after each decrement, maybe stretching the effective item time by 25-50%. Maybe.
Joined: 1/13/2006
Posts: 109
Lord Tom: I wanted to ask you about your speedrun, specifically about entering the doors in towns (and a few out-of-town areas). It seems some frames are wasted by entering a door as soon as you can, due to a glitch where you respawn further to the left. If you enter a 1-room area from anywhere on the left side of the door, when you come back out, you will appear 1 block left of the door. If you were aligned with, or to the right of such door, you will appear directly in front of it when you return. In your TAS, by entering such doors from the left, when you reappear outside, you seem to need to retrace those few steps caused by the glitch, so in many areas, it might be best for you to wait to align with the door before entering, if you were moving to the right. Likewise, if there were any areas where you were moving to the left, you might want to go 1 step left of the center of the door to get a 1-block head start when you return outside. Since you were using a combination of glitches, you might have already known about and intended to go the way you did, but if not, this could save up to a couple seconds. It also looks like you waste a moment in the first room of the Evil Fortress from not reaching that first ledge quite right, though I can’t compare stuff right now, and this is not taking into account time saved by running most of the way, following with the 2 fast jumps, so this might be nothing.
Life is like a box of chocolates-when you want peanut butter, all you get is coconut.
Lord_Tom
He/Him
Expert player (3274)
Joined: 5/25/2007
Posts: 399
Location: New England
That level of detail is way beyond my hazy memories of the making of this run. Off the cuff, I'd say... -I do remember checking using different entry points on the doors, and don't recall it working. If you have an .fcm or .fm2 of this in action it would be useful. Depending on the size of the effect, it could save 1-2 seconds. -In the Evil Fortress, I believe that the small pause was to maximize running time as you speculated; full running speed is much faster than flying upwards, so it's overall faster to hit the corner of that cliff. -If anyone ever does an improvement to this run, I also know 2 proven improvements early on in the run...better manipulation of the last jumping creature in the opening town (0.5s) and better entrance to the ladder in the room before the mattock by having the jumping creature damage boost the character onto the ladder (maybe 0.5-1s; very tricky). Sorry I can't provide more detail; all my old files/notes are in a closet on an old hard drive...
Joined: 1/13/2006
Posts: 109
I know the glitch you mean about being knocked onto the ladder. That should be doable, where the hero can then just jump up on top. As for the door thingy, this only applies when entering 1-room locations, like houses/shops (where you exit fom the screen edge rather than a door). I have done this quite often, so it should be solidly effective. Remember that some places outside of town also feature these buildings.
Life is like a box of chocolates-when you want peanut butter, all you get is coconut.