Submission #7050: FractalFusion's NES King's Quest V: Absence Makes the Heart Go Yonder! in 30:59.69

Nintendo Entertainment System
baseline
(Submitted: King's Quest V (USA).nes USA)
BizHawk 2.5.2
111765
60.0988138974405
33089
Unknown
Submitted by FractalFusion on 3/30/2021 12:50 AM
Submission Comments
Summary: About 2.5 minutes faster than BZero's previous TAS mostly due to various glitches (witch genie bottle skip, and Dink tambourine anywhere), vastly improved menuing, and careful use of "storing cursor movement" for efficiency. Other improvements involve lag reduction, and RNG manipulation in the final dungeon. Final time to last input is 30:59.69; if timed to last decisive action (last spell), it is 29:02.88.
Youtube encode (720p60) with subtitle (text) commentary:
I'll keep it short. More comments can be found in the subtitle (text) commentary in the Youtube encode.
King's Quest V is one of those well-known Sierra Adventure games back in 1990 that was (in)famous for having so many dead ends as well as some really awful puzzle solutions. If you are interested in learning more about King's Quest V in general, I would suggest watching pawdugan's Let's Play of King's Quest V (PC version). Let that Youtube video speak for the game. However this TAS is for the NES version, which was released around the same time, and functions somewhat differently from the PC version.
Why did I TAS this? To put it simply, I got bored of not making TASes. And I wanted something to do. That's all.
This game is actually not trivial to TAS. The two major reasons are because of lag reduction and optimization of cursor movement (the first two listed below).

General

Lag reduction

The lag in this game is completely unpredictable. I did my best to reduce lag per screen.
The game normally operates at 3 frames per cycle. However, some screens lag more than others, usually due to having more sprites on screen. And some lag in very weird ways, such has lagging only at every second cycle (such as the shore near the ocean later in the game).

Cursor movement

It is possible to "store" cursor movement from previous uses. As long as you keep moving the cursor in a single direction, it will keep doubling its speed at intervals (after a delay countdown) but once you move in a different direction or stop, the speed (but not the delay) will reset. So what you do with the cursor on one usage influences what you do on the next usage. It is tricky to optimize. This is where TAStudio definitely helped with this TAS.
There are some shortcuts that speed up menuing:
  • You can press two different buttons at the same time and both will be applied.
  • Since the important icons on the main menu are near the bag icon, it is better to select these icons by pressing select and moving to them, rather than pressing B to select them. For the hand icon, it's 12 frames faster to select rather than press B three times. However you can't "charge up" the cursor with this method like you can by pressing B three times, but as far as I know, there is no instance where pressing B three times can make up for the 12-frame loss.
  • The only time it's faster to press B to select an icon is when using the eye or talk icons. The eye icon is never used in this TAS, and the talk icon is used only once, to set up the witch genie bottle skip glitch.
  • Some timers (that are necessary to wait through) tick down during menuing. So it is faster to do menuing and cursor manipulation during this time. There is one time where I use this to pre-select an item that I will use later, saving some time.

Area-specific

Serenia Route

I went through a number of routes for Serenia. It is best to reduce the overall amount of horizontal movement (note the screen is 2-3 times larger horizontally than it is vertically). So I went with:
  • Getting the boot first, before going to the temple. This ended up saving a huge amount of time.
  • Doing both the dog stick sequence and the haystack sequence right after seeing the Madame Mushka wagon (where you pay the gold coin). There are a few other candidates but this is the best time to do so.
  • After leaving the dark forest, going left first to get the tambourine, harp and marionette doll, like in BZero's TAS. The alternative, going to town first to get the hammer, ends up several seconds slower when the routes converge.
  • There are some places where it's faster to take extra screens. The two that I found are the screens before the Madame Mushka wagon (because of lag on the wagon screen, it is faster to go from below) and the screen to the left of the snake (it is faster to go down, right and up due to screen transitions).

Useful glitches

There are some glitches (NES-version specific as far as I know) but I only know of two that save time:
  • Witch genie bottle skip: At the screen where the witch blocks you from entering the house, there is one very specific x-coordinate (135) that allows you to slip by the witch, without falling into the pit. Normally x-coordinate is an even number. However, by talking to the witch, this changes your x-coordinate to 105, making the glitch possible. You can get the emeralds, spinner and key this way.
    • However, the witch has to be gone in order to do the honeycomb and emeralds puzzle. So perform a save and restore and the game will think the witch has been defeated and erase her from existence. I choose to save and restore immediately after getting the heart from the tree door; the game puts you back where you entered the screen but saves all status flags, so this saves the walk back.
  • Dink tambourine anywhere: In the labyrinth in Mordack's Castle, you can use the tambourine anywhere to summon Dink and get the hairpin on that screen, instead of where Dink normally is. This saves a huge amount of time (around 50 seconds, IIRC). Thanks to Dan_ for reporting this glitch.

Other glitches that weren't used

  • It is possible to use the hammer to get a crystal, before defeating the yeti. However, the yeti disappears from existence shortly after and you cannot use the pie on it. The pie has to be used on the yeti to progress the story.
  • On the harpy island, it is possible to pick up the fishhook without using the harp, and save and restore to get rid of the harpies, but you still can't move unless you actually use the harp.
  • It is possible to enter Mordack's bedroom at the same time he appears to sleep. However this doesn't spawn the wand that you need to take.
I also tried to trap the witch with the genie bottle without the amulet, but wasn't able to. In fact I found a glitch where the witch turns you into a frog in the death cutscene where the genie normally traps you. Needless to say, it wasn't a useful glitch.

RNG in Mordack's castle

The next RNG value is determined by two variables: the current RNG value which only changes when used, and a counter which increments every frame. Combined with the lag, this results in a mostly unpredictable RNG.
RNG is most applicable to Mordack's castle. Before Mordack goes to sleep, the behavior of rooms is determined by the RNG value:
  • 0-95: nothing
  • 96-165: blue monster
  • 166-215: cat Manannan
  • 216-255: quick Mordack
You have to be caught by the blue monster so that should be manipulated in the first room, with a small random delay. After that, "nothing" is normally the best. However, during this TAS, it wasn't possible to manipulate it entirely, but there are some ways around it. Quick Mordack has a random appearance delay and it is sometimes possible to get through the room before he appears. Some rooms are short enough that you can get by even if cat Manannan is around. Blue monster is the worst (even if you can dodge it) because its appearance causes a lot of lag.
Since RNG is also used during any dialog where a face is shown, I can manipulate the Mordack's castle RNG without having to wait a huge number of frames.

Comparison table

Except for "input end", comparison points below are based on the transition of memory address 0x13 from 0 to 128 (which marks the loading of a new screen; this is one frame before the screen actually loads).
There are some jumps in the comparison because of different routes (such as when in the run the dog-stick and haystack events are done).
Location Me BZero Total saved Since last Comment
new game 1207 1208 1 1
leave town 2086 2098 12 11
temple 6993 7983 990 978 different route
leave temple 8565 9903 1338 348 drink from pond before hiding
leave camp 10552 12839 2287 949 different route
temple door 11472 14148 2676 389 don't need to drink from oasis
leave temple 13010 16001 2991 315 not getting genie bottle
enter wagon 15417 18433 3016 25 extra screen transitions to save time
dark forest 20782 21186 404 -2612 did dog and haystack now
after heart 24966 25718 752 348 witch genie bottle skip
harp tree 32015 32785 770 18
gnomes 34405 35218 813 43
after cat/rat 37051 39317 2266 1453 rejoin after BZero haystack
leave town 41598 43939 2341 75
escape inn 45064 47480 2416 75
snowy area 46901 49444 2543 127 extra screen transitions to save time
ice queen 52978 55633 2655 112
after yeti 57389 60193 2804 149 optimal position to pie the yeti
after roc nest 62690 65477 2787 -17 pre-select honeycomb
start boat 64580 67719 3139 352 from pre-selecting honeycomb
leave harpy island 69768 72973 3205 66
mordack's island 77508 80763 3255 50
in maze 79665 83250 3585 330 skip the fish
leave maze 1 82047 88572 6525 2940 dink tambourine anywhere
cassima 82142 88946 6804 279 skip the peas
in dungeon 83890 90783 6893 89 luck manipulation
leave maze 2 86693 94059 7366 473 don't follow cassima
in library 88048 96725 8677 1311 luck manip/skip cat and monster
machine 93080 101772 8692 15
after machine 99333 108126 8793 101
final spell 104784 113675 8891 98
input end 111765 120656 8891 0

arkiandruski: Judging.
arkiandruski: Everything looks good here. Nice improvements. Accepting as an improvement to [2134] NES King's Quest V: Absence Makes the Heart Go Yonder! by BZero in 33:27.63.
feos: Pub.

adelikat: Rom hash does not match the known good dump but syncs on it, catalogged as good dump.
Last Edited by adelikat on 7/23/2024 11:58 PM
Page History Latest diff List referrers