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?
- Kill himself. (really!)
- Visit the Elven King to get the quest!
- Villagers have defiantly built a wall to protect themselves from the evil Dwarfs. Find the mattock and bust that wall down, leaving them defenseless!
- 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.
- Mist World: Kill a giant Dwarf for the Black Onyx, then bribe some fat guy for the key to the next level.
- Branch World: Kill another giant Dwarf for the Battle Suit.
- Semi-Evil World: Kill the King of the Dwarfs to get the Dragon Slayer.
- 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.