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.
Menuing tricks
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.