The AGI version of King's Quest I contains quite a few glitches for speedrunners to exploit. King's Quest I speedruns also include some high-precision maneuvers which, while not based on glitches, require frame-perfect input. This guide explains how they work.
- Water-walking (the Jesus approach). If Graham is at the extreme southern, western or eastern edge of the screen, he can simply walk over rivers as if they weren't there. This requires pixel-perfect placement to work.
There are several limitations to water-walking. It only works on river screens, not on lake screens. Some water-walks to Rumplestiltskin's island are also entirely blocked; while it might appear there are four different ways to water-walk to the island from the south, only one of these is actually good. On the screen west of the southern troll bridge Graham runs into a bush; while it is possible to navigate around the bush, it is difficult and time-consuming. The western water-walk on the bridge screen is blocked entirely by the bridge itself; and the walk on the next screen east is also blocked since Graham cannot climb out of the river. The remaining water-walk, on the eastern edge of the bridge screen, is used in the ScummVM route to bypass the troll.
Water-walking is used in Any% and ScummVM. The Any% route contains one water-walk, which is precise but relatively easy; it is set up at normal speed, there is a bush that actually blocks Graham from walking north at all if he is not at the correct pixel, and if Graham accidentally wanders over to the next screen east he can simply adjust strategy and use that screen instead. (The optimized strategy is to type "get mushroom" while setting up the waterwalk, which does increase the difficulty.) The ScummVM route contains two water-walks; these are extremely demanding as they're set up at high speed, one of them is completely pixel-perfect (although there is a short window to make adjustments), and the other is almost impossible to quickly adjust for at high speed. The 100% route contains no water-walks, since the goat is used for points to reach Rumplestiltskin's island and the condor is used for points to reach the leprechauns.
The technical reason water-walking works is threefold: 1) many zones and triggers (including the river ones, but not the lake ones) have been coded improperly and exclude the left, right and bottom edges of the screen; 2) although Graham's position is stored as a specific pixel, he has a hitbox 6 pixels wide (and 1 pixel tall) at full size (4x1 when tiny); and 3) obstacle collision is triggered when any part of Graham's hitbox touches the obstacle, but death zones like the rivers are only triggered when the entire hitbox is in the zone, so 1 pixel outside it is sufficient to let Graham cross safely.
- Sky-walking (easy beanstalk). This glitch essentially bypasses the last part of the beanstalk. On the third beanstalk screen (the second after leaving ground level), walk straight up until Graham is next to the large hole in the middle and his right foot is touching the darker pixels below. Now press 7; Graham will leave the beanstalk and walk into the sky. (In speedruns, switch to Fastest after pressing 7; no further changes of direction are needed.) Once Graham reaches the western edge of the screen, he will continue moving upwards; and on the next screen up, the game automatically positions him in the middle as if nothing unusual had happened.
Sky-walking is used only in the 100% route, since beanstalk routes are too slow to be used in Any% or ScummVM.
- Goat pen clips. In two different locations, it is possible to clip through the fence surrounding the goat pen; both of these clips only work if Graham is being followed by the goat, and the second clip only works when used immediately after the first clip.
The first clip requires somewhat accurate but not pixel-perfect positioning. Show the carrot to the goat, head out of the pen and south into the screen with the stump, move east a bit, and head back north. If your position is accurate, you will appear inside the pen! This can be quite easily accomplished with zips; simply zip south through the gate,, and then keep zipping north and back south until the clip happens. Because of the unusual geography of the area combined with additional displacement from the goat, each successive zip pair will move you slightly east until you are sufficiently far east for the clip to happen.
After the first clip, it is possible to zip straight west and clip through that side of the fence. This clip seems much more natural than the first one, in that the fence is not actually visible at all from the eastern part of the goat pen and on the next screen west the fence is much further north; so Graham can clip through it simply by maintaining the same Y coordinate on screen transition. This is normally impossible, though, since the game will move Graham north on the screen switch if it detects him as being inside the pen. The second clip is only made possible by the first clip, which allows you to slip into the pen unnoticed.
The goat pen clips were formerly used in the 100% route, to facilitate zipping to the troll bridge with the goat. They are currently not used, since a better zip was found.
- Well zip. This is not a glitch, but a highly precise trick. Dive into the well at normal speed, move southwest a bit (type "toss water" while moving so the time is spent productively), head south, select Fast speed from the menu and immediately press 7. At high cycles, the 7 press must be frame-perfect; too early and Graham dies, too late and Graham dies. At extremely high cycles this trick is outright impossible, which is why Max cycles are not recommended for King's Quest I.
There exists an alternative way to perform the well zip: head south immediately, select Fast, immediately press Esc and select Normal, go northeast for exactly 1 pixel, press 7, and re-engage Fast. This method would be faster with arbitrarily fast typing, but is slower for runners in practice, due to the extra speed change and the need to type "toss water" separately later.
At sufficiently low cycles, it would be possible to simply do a 2947 zip in the well, but the cycle rates in runs are too high to allow this. Another possible zip at lower cycles is the 161 zip; this version is viable at 63,404 cycles, but requires both extreme precision and a yolostop at the dragon while providing a very small time gain at best. A slightly safer version of the 161 zips is to quickly type "toss water" while heading south in Normal, then turn southeast and do a 31 zip. This requires both precise positioning and the yolostop at the end, but the zip itself is far simpler and more consistent.
The well zip is used in the Any% and 100% routes to save time. It can be avoided by simply navigating through the well at normal speed, but doing so costs about six seconds.
For versions with a yolostop at the end, note that Graham's position for (and after) picking up the mirror may not be ideal. 1927 get mirror 2734 etc. is a general solution, but not always the fastest. Note also that at the southern edge of the screen Graham will always be considered close enough to toss the water, regardless of his position in the west-east direction. The recommendation is not to use the yolostop zips.
- Quick well return. This is both a glitch and a high-precision maneuver, although the glitch part is very easy to set up. After getting the mirror, zip southeast; Graham will disappear into the eastern wall, but will not (yet) clip into the well itself. Now press 6, and then immediately 4. As with the normal well zip, the 4 press must be perfect (while still allowing the initial 6 to trigger) or Graham dies.
This trick is used only in the 100% route, to get the extra points for returning into the well. It is safer to temporarily switch to Normal for the 6 and 4, but this loses some time.
With very high precision, it is possible to return up the well with zips only: prepare "climb rope" in advance, then press 68[Enter] in extremely quick succession. This is not done in actual runs, since it's both slower and highly dangerous.
- Witch return speed-up. Waiting for the witch to return home is very time-consuming; this can be remedied by temporarily switching to Fast speed, but doing so is risky since at Fast speed the witch will only stay in position at the oven for a very short while.
There are three spots at which it is possible to save time by switching to Fast (and zipping): when initially moving to the cupboard (the smallest timesave), when moving east from the cupboard (the largest timesave), and when returning back to the west once the witch is in position. The third zip is particularly dangerous, since at high cycles the witch will kill you if the zip and the following push are not both executed near-perfectly. (Preparing "push witch" in advance can help a tiny bit.)
For the middle zip (the largest timesave), the safe approach is to enter the witch's house at Normal speed, open the cabinet, get the cheese, head south a bit, head east, save, switch to Fast speed and wait for the first message about the witch's return (if this does not appear very quickly, the witch isn't returning and you'll need to reset - this problem can be mitigated with GamerThom's memory reading strat). Upon receiving the message, press Enter and then immediately Esc to switch to Normal speed; if the witch is not in position at the oven, spend the remaining wait productively by getting and reading the note.
The riskier, but faster, approach to the middle zip is to wait for the second message about the witch's return and only then switch to Normal speed. This saves more time, but has a greater chance of backfiring and necessitates a slight detour later to get and read the note.
This trick is used only in the 100% route.
- YOLO zips (or YOLO stops); zips that are not stopped by an obstacle, but by the player. YOLO zips come in two distinct flavors: regular YOLO stops (completely inconsistent), and Robb zips. A regular YOLO stop uses numpad 5 to stop, and is usually performed with two fingers on the numpad; while a Robb zip uses one finger on any numpad or number key to move, and one finger on a key that isn't numpad 5 to turn or stop.
Due to a quirk in how keys are processed, Robb zips (and only Robb zips) will (if performed correctly) always stop at or very close to the same point if the same settings and cycle rate are applied and the same version of DOSBox used. By contrast, regular YOLO stops are essentially random outside of a TAS setting; this theoretically allows some TAS-only maneuvers in human runs, but with an extremely low success rate.
The accurate timing for each Robb zip has an approximately 0.05-second window; though at some specific spots the game has a tendency to eat the input, making the zip far less consistent. One spot where this happens particularly often is the 361 zip after leprechaun exit. Another complicating factor is that the player has no practical way to tell where the window for the second input actually is, relative to the first input; so the best approach is just to press the keys in very quick succession.
It is possible to execute double- or triple-length Robb zips, equivalent to two or three normal Robb zips combined; but these require more of a rhythm (and a bit of luck) to time precisely.
Robb zips are used in low-cycle routes, such as the 79,618 cycles DOSBox Staging Any% route, the 63,404 cycles route or Robb's Any% route for 60,000 cycles in DOSBox ECE (as noted, which Robb zips are productive depends on the version and cycle rate; each of these routes uses distinct Robb zips). Related to these zips is the stop after the giant's textbox, similarly used in low-cycle routes.
Fully random YOLO stops have formerly been used in both Any% and 100%, but are currently not explicitly routed in. (They can be used for quick repositioning on the giant screen, but this is not recommended in a high-cycles run.)
For an unknown reason, entering the castle at any point after booting the game will change the cycle rate needed for subsequent Robb zips. For example, the 79,618 cycles route is explicitly based on having visited the castle in the past; though a similar route could be used at 75,920 cycles without the visit.
- Troll bridge clip (found by Robb). Trying to walk by the side of any troll bridge generally results in death; but on the southern side of the eastern troll bridge, there is a tiny area of 3 pixels where the death trigger can be bypassed, due to a quirk in how triggers work. This allows the only known way to bypass the troll using exclusively non-YOLO zips, but only when approaching from the southeast and only with near-pixel-perfect positioning.
The troll bridge clip is used in the Any% zips run.
- Leprechaun back entry (found by Robb). After picking up the mushroom, zip back to the mainland and the leprechaun cave's exit, and eat the mushroom there (on most screens, the mushroom immediately runs out, but on this screen that does not happen). Press 6, and then immediately 3 (otherwise the mushroom would run out on the intermediate screen; this is already a precise move). Pick up the shield, 4838 to get into position.
From here, the really precise move follows; and there are three ways to execute it. The fastest is to simply perform a hyper-quick 47174 zip; but this is only possible at lower cycles, and even then is exceedingly dangerous (it has been performed at 63,404 cycles, but the usual result for players at such a high cycle rate is death).
The second-fastest exit is to do a hyper-quick 47[Esc], switch to Normal, reposition while typing "unlock door", head west when in position, and switch back to Fast. This is possible at 140,000 cycles, but is also extremely dangerous (the usual result is death). The opportunity to type "unlock door" while moving greatly mitigates the time loss, but it's still slower than the all-zips exit due to the speed changes.
The third-fastest (and generally recommended...) exit is to press 1, switch to Normal, press 7 to switch screens, press 7 again to start moving, type "fast", hit Enter, immediately hit Esc to switch to Normal, and reposition as in the second-fastest exit. This is still very dangerous, for the same reasons as the well zip (hit Esc too quickly and the Fast never takes properly; hit Esc even a fraction too slowly and Graham dies); but it is by far the most consistent way to perform the exit fast enough to make skipping the rat worthwhile, and is somewhat more consistent than the well zip due to a slightly more lenient timer.
Leprechaun back entry is used in the Any% zips run, to avoid the rat (and the treasure given to the rat); with lower cycles permitting the more aggressive implementations. It is also used in the ScummVM Any% run, but with one major difference: in ScummVM the player needs to eat the mushroom about four seconds before entering the screen where the hole is (the trick only works if the mushroom's expiration timer runs out on that specific screen; this is near-instant in DOSBox, but takes time in ScummVM). Leprechaun back entry is not useful in 100%, since it skips points.
-
Memory reading (discovered by GamerThom). In the 100% run, use a save named %v62; and upon entering the witch's house (with the witch not present), press F5, hit Enter and note the number shown. If the number is 180 or higher, exit the hut and return to try again until the number is low enough. Numbers from 180 up represent the ~28% random chance that the witch would not spawn on schedule, killing the run if discovered later.
-
Cloverless. It is possible to perform the leprechaun segment with no fiddle or clover, by very precisely navigating to the shield while the chasing leprechaun is stuck behind other leprechauns.
Cloverless is possible from both the normal entry and back entry, but is both less difficult and less time-consuming when approaching from the back entry. The most consistent (though still very dangerous) form of cloverless uses the back entry and immediately turns southwest to hide behind the leprechauns near the corner; using leprechauns closer to the shield is slightly faster, but extremely difficult.
Cloverless is not used in the zips run, as it is only humanly viable at low speeds (and is extremely difficult even then). Back entry cloverless is used in the ScummVM run, where it provides a small time save.