Skipping the Eclipse in The Witness
Hatkirby on October 17th, 2023 at 4:48:02pmHow many of you here have personally witnessed a total eclipse of the sun? To stand, one day, in the shadow of the moon is one of my humble goals in life.
(Spoiler warning for The Witness)
Most of the people reading this blog probably know that I am fond of a video game called The Witness. "Fond" may not be a strong enough word -- it's my favourite game I've ever played, and I've been speedrunning it for over three years at this point. If you don't know what it is, it's a puzzle game set in a 3D environment, where you solve grid puzzles on screens scattered across a deserted island. It's all about epiphany-driven gameplay; the game doesn't tell you anything about how the puzzles work. You have to figure it out yourself, and when you do it's usually a really satisfying moment.
Now, I've been playing this game for a long time, and I've memorised the solutions to every single puzzle. Most of the time, speedruns of this game are pretty straightforward. You have to solve certain sets of puzzles in order to get to a specific goal, be it the main end of the game, or the secret end, or the post-game level, etc. And in order to be fast at that, you have to 1) know the solutions to the puzzles, and 2) be skilled at inputting them. Both of these requirements allow for you to get gradual improvement the more you play, while allowing for a high skill ceiling. And that's it!
Well... Sort of. If we don't think about 100%.
The 100% category in The Witness involves solving all 523 panel puzzles in the game, as well as all 135 of the puzzles hidden in the environment. The latter demand is what significantly elevates this category above others. With panel puzzles, the difficulty usually comes from having to figure out what the solution is, and once you've memorised the solution, the difficulty is diminished (apart from a couple of ridiculous panels like Town Hexagonal and Mountain Orange 7, but I digress...). But environmental puzzles (or EPs, as we call them) have essentially arbitrary requirements to be able to solve them, and some of them are really complicated.
The EPs that are the most vexing are as follows:
- Buoy Cycle
- Couch
- Windmill
- Eclipse
- Cloud Cycle
- Thundercloud
Today, we will be talking about the Eclipse.
A day cast into night (A Brief History)
The first recorded run of Witness 100% (apart from the developer's claimed 7 hour 39 minute run) was FearfulFerret's 3:16:21 in February of 2016, a month after the game came out. The category saw rapid improvement over the next year, mostly due to a combination of route improvements and the discovery of new tricks, with darkid eventually lowering it to 2:21:35 on the last day of 2017. This is right around when the physics update for the game came out1, which cut four minutes off the time on its own. But after that, the rate of new world records slowed down immensely. tzann's 2:12:26 sat uncontested for two years, and in 2020/2021 we only saw the record drop by a minute or two. It seemed like 100% was set to stay somewhere in the low 2:1x's.
Now, why did I summarize the world record history of the 100% category? Why is it important that it takes two and a quarter hours to 100% the game?
Because almost half of that is spent solving one puzzle.
If you've done a full completion of The Witness before, you know what I'm talking about, but if you don't, let me explain. There is a movie theatre underneath the town where you can input six different codes found elsewhere on the island and watch videos. One of these codes (found by completing The Challenge, which, again, I will need to talk about another time) unlocks a video called The Secret of Psalm 46, a lecture on video games given by Professor Brian Moriarty. The audio is the important part of the video, obviously, because the video itself is really barebones. It's just an image of a sun that slowly travels across the screen. As it moves, it is eclipsed by the moon, until the very end of the lecture, at which point only the corona is visible. Weird, huh? I bet that doesn't matter.
Sure.
There are two significant portions of this video. The sun, and the corona. At the beginning of the video, when the sun is visible, it is possible to stand in a position that allows the image of the sun to become part of a puzzle in the environment, and thus you are able to click on it to start solving it. It puts your cursor on a wire that leads up the wall, across the ceiling, and down in front of the other side of the theatre screen. But there's a problem. Puzzles have to end in a rounded off segment in order to be finishable, and this wire doesn't have that. The answer? At the end of the video, the sun's corona is located perfectly at the end of the wire, and you can slip your cursor into it and finish the puzzle.
So then, how does one complete the Eclipse EP? We know that you can only click into the puzzle at the beginning of the video, you can only finish it at the end of the video, and that the player cannot do anything while clicked into the puzzle (because your cursor is stuck in the EP until you either finish it, or click out of it). The answer is that you have to click in, and watch the entire video, so that the sun naturally becomes the corona.
The Secret of Psalm 46 is an hour long.
Technically it's a bit less -- the window of time when the sun and corona are usable are fairly generous, so you only actually have to watch 56 minutes of it. But that is still a huge amount of time to spend solving one (1) puzzle.
Needless to say, the Eclipse was not an interesting or fun thing to do in a speedrun. You are incentivised to do it late in the run because of Cloud Cycle (which I will talk about another time), which means that 100% runs involve pretty intense gameplay for over an hour, followed by sitting around doing nothing for almost another hour. FearfulFerret, in his original 3:16:21 run, famously drove to Whataburger, bought a fish sandwich, returned home, and ate it on stream during the Eclipse.
Pretty early on, the speedrun community decided to create a second "full game" category called 99.8%. This involved doing everything that 100% required you to do except -- you guessed it -- the Eclipse.
"For marathon purposes, I am submitting 99.8%, which skips one puzzle that would normally take 52 minutes of idling to complete."
— GDQ Submissionstxt (@GDQsubmissions) March 13, 2016Despite 100% being the "true" full completion of the game, 99.8% ended up being the more popular and competitive category. Eclipse really just didn't add anything to the run. The route was essentially the exact same as 99.8%, except that you'd do Eclipse alongside the other EPs in the theatre. The category was so unpopular that tzann's 2:12:26 that I mentioned earlier -- the one that was world record for two years -- was actually a 99.8% run. Both 99.8% and 100% end with a puzzle that is very far away from basically everything else in the game; we do it last so that we don't have to spend time both going there and returning. But tzann realised at the end of his 99.8% run that he was so far ahead that he could return to the theatre, watch Eclipse, and still get the 100% world record. Doing Eclipse at the end like that easily loses you over a minute of time compared to doing it at the same time as the other theatre EPs, but like I said, no one was really competing on 100%. It just wasn't that great a category.
Things didn't change much for a while. Amerald -- the 7 Lasers2 world record holder for the last three years -- and I traded the 100% WR a couple of times. Still, it remained a handful of minutes over 2 hours in length.
But it wouldn't stay that way forever.
A sky full of stars (Development of the Skip)
The first potential skip came to light in August of 2020. Amerald posted a video showing a strange audio glitch he'd discovered. If you started the game with your headphones plugged in, and then you unplugged them, plugged them back in again, and then unplugged them again, the game would lose track of the audio device to use for output. This, for whatever reason, made audio logs and theatre videos play four times as fast as they were supposed to. Theatre videos -- including The Secret of Psalm 46.
The glitch did, in fact, work. If you started the Eclipse video after performing those steps, you could click into the puzzle and only have to wait a scant 15 minutes before the corona became visible. Just like that, 40 minutes were saved in 100%.
Right?
There was one problem. The glitch worked -- but only on Windows 10. It did not work on console, it did not work on Mac, and it didn't even work on other versions of Windows. If this glitch were to be allowed, it would mean you'd be forced to play on Windows 10 if you wanted a good 100% time, and that wasn't something the community was willing to allow. Console runs have always had a platform disadvantage in this game, but we wanted to maintain a level playing ground for Mac players and PC players who didn't have Windows 10. So the trick was rather quickly banned.
It's interesting, because technically, Eclipse Skip had already been found. You can do it yourself, if you have Windows 10 and The Witness. And you may disagree with the decision the community made regarding the audio output glitch. But ultimately, it didn't matter. As you'll soon come to see, 15 minutes was still way too long to spend watching the sun cross the night sky.
In April of 2022, a runner and glitchhunter named Undalevein posted a proof of concept for a skip he'd been chasing for a couple of months. In the video, Undalevein messes around with the video console in the theatre, does a large part of a 100% run, and then sits in the theatre for ten minutes looking at a still image. The sun from The Secret of Psalm 46 can be seen, but it is not moving; it is static at the right edge of the screen. After 10 minutes, the sun spontaneously disappears, and is replaced by the corona at the left edge, allowing him to complete the puzzle.
What happened here? To explain this, I first need to explain two other pieces of tech: save file splitting, and Theatre pause glitch.
Save file splitting: The Witness autosaves your game periodically, which is very kind of it. Specifically, it saves every 60 seconds, or whenever you open the pause menu. Something odd that it does that we did not understand for a while, though, is that it also periodically seems to split your save file. If you do a full game run, you can look in the load file menu at the end and see that you actually have 10 save files.
In August of 2021, darkid dug into the game and found that when the game saves, if your point total divided by 60 is greater than the point total divided by 60 from the previous file, it'll actually save into a new file rather than the old one. Your point total is the sum of the number of panels, EPs, and obelisks you have completed. This discovery meant that we now knew how to deterministically split our save file at any location we wanted. At the time, this wasn't very useful3, but you'll need to keep it in mind.Theatre pause glitch: This was discovered in late December of 2020 by a glitchhunter named Rever Man4. After you input a video code in the theatre, a panel is activated that allows you to seek to any position in that video. Rever found that if you clicked into a seek panel, and then opened your menu and loaded a save file without clicking out of the seek, the file would load and the video would be paused at that frame.
This was mainly useful for a puzzle called Catwalk EP. There is a video in the theatre that has three EPs hidden in it. Two of them can be completed while standing in the theatre, but the third requires you to be standing on the catwalk above the theatre. In the past, getting Catwalk EP involved seeking to an approximate time in the video and then walking for like 30 seconds to get up on the catwalk. With the use of the Theatre pause glitch, you could instead pause the video at the right time after you finished doing the other theatre EPs, and then you could get the Catwalk EP later, when it would be more convenient for you to enter the catwalk.Undalevein's proof of concept for Eclipse Skip combined these two pieces of tech. First, he enters the theatre, and splits his save file several times. He then alternates between pausing the Eclipse video at the sun, and then at the corona. After a couple of minutes of doing this, something strange happens. He pauses the video at the sun, and he sees the sun in the loaded file. He then pauses the video at the corona, the file loads, and... the sun is still visible.
What seems to happen is that the game "buffers" the corona frame for later use. The paused sun frame stays visible for a while, and then at some point, the game realizes "oh! Wait! I'm supposed to be showing the corona!" The amount of time it takes for the game to decide to skip to the corona is not consistent. darkid did some digging into the assembly and found that it has something to do with the sound effects queue; causing more sound effects causes the jump to happen sooner. Still, that's hardly a definitive answer as to how to make the strat consistent.
Despite being found in April, it wasn't until three months later that Eclipse Skip was actually used in a run. On July 17th, 2022, Undalevein achieved a time of 1:48:20, lowering the record by nearly 20 minutes.
The first few minutes of the run were the same as in the old route; however, as Undalevein gets close to 60 points on his save file, he diverts to the Theatre, which is conveniently fairly close to the starting area of the game. He spends four minutes splitting save files and using the pause glitch before the corona is correctly buffered behind the sun. Then, he leaves the Theatre, and returns to the regular 100% route for a while. The Town (which is above the Theatre) is not normally done until later in the route, and Undalevein maintains this in his run. When he returns to Town approximately half an hour later, he re-enters the Theatre, clicks into the Eclipse, and waits. It takes 13 minutes for the corona to appear -- which is a long time, sure, but significantly shorter than the 56 minutes one would ordinarily spend listening to Brian Moriarty's voice.
Now that it had finally been shown to be doable in a full-length run, the race was on. Three days later, I lowered the record by another 16 minutes. Undalevein and I traded back and forth for a week, and eventually settled with my 1:23:29, which would end up lasting seven months. Compared to Undalevein's original run, mine spent two and a half minutes setting up the glitch, and -- incredibly -- just over a minute standing in the Theatre, waiting for the skip to happen.
In the span of a week, the 100% world record was cut down by over 40 minutes. The largest skip in The Witness speedrunning history had finally come to fruition.
An echo in the wind (Finally Becoming Consistent)
To this day, only Undalevein and I have 100% times under two hours. The fact that the skip is wildly inconsistent both to set up and to execute have understandably deterred most runners from attempting it. 99.8% remains the more popular full completion category -- at least, for now.
In January of 2023, a runner named gaesenpai found an alternate setup for Eclipse Skip that seemed to be much more consistent. First, you split your save file five times. Next, you pause the video at the sun, and load each of your four other files in sequence. The pause from the first file will smear across the other files you load. Then, pause at corona, and again load each of your other files in sequence. Repeat, alternating between sun and corona until successful.
This process seems to fairly consistently result in a buffered corona frame during the second iteration. This means less time setting up for the glitch (approximately 2 minutes, in my testing), and fewer resets. This trick did not make the second part of the skip more consistent, but it was the first step toward making 100% a more playable category. Undalevein used this to secure an impressive 1:20:14.
100% went quiet for months again, as often happens to categories with only two runners. I picked it up again in October (which is now, actually!). One day, I was having a totally normal run:
During this run, I arrived at the Theatre for the second time, clicked into the Eclipse, and waited. The skip did not happen within the the first minute, which was pretty much expected, because it's Eclipse Skip and it's random and annoying- ahem. I started moving my cursor around on the wire, wondering if it would add more sound effects to the queue. I then tried the one other thing we have access to during an EP: I started opening and closing the pause menu.
Within a few seconds, the corona was there.
Opening the pause menu triggers a sound effect, which we already know is linked to the amount of time it takes for Eclipse Skip to happen. Further testing by myself and Undalevein seemed to confirm this: if you click into the Eclipse and hold down the escape key, the menu will open and close rapidly, triggering tons of sound effects, and speeding up the skip. It's still seemingly random how long you'll need to do this, or whether the sun will even still be visible by the time you return to the Theatre, but the discovery was still huge.
To quote Undalevein in his 1:18:41, "This category is going to be absolutely decimated."
Consistent strats make runs more appealing to runners. Eclipse Skip is one of the most visually and technically impressive tricks in The Witness, and it's possible that people will get into the category just to try out the cool trick. There's also a different feeling that comes with completing the game 100%, as opposed to only doing 99.8% of it. It does remain one of the hardest categories to get into, as there is a ridiculous amount of memorization required, and the routing heavily varies based on your skill level (which means that watching the world record run is not likely to be helpful when you're starting out).
But still. In a long run like this, consistency matters so much. Consistency means we have more viable runs. It means we have more chances to do well at all of the other tricks in the run. Since we can estimate how long we'll spend doing each part of the skip, we can better plan for things like Buoy Cycle and Cloud Cycle. With these new strats, we have entered a new era of 100%.
Now is the point where I must inform you that this blog post ends with some bragging. The current 100% world record, using the new consistency strats, was a 1:15:53 set by yours truly. My run spent 2 minutes setting up the glitch, and only 21 seconds waiting for the skip. The run overall is less than 4 minutes slower than the 99.8% world record.
Here it is, if you'd like to see it:
And that's the history of Eclipse Skip, as of the time of writing. The story of how the biggest enemy of Witness speedrunners was defeated. I hope you enjoyed reading this! It's been fun writing about a game that I love so much, and I think I'd like to do it more in the future. I'll end this post the same way Professor Moriarty does, in words I've mimicked out loud dozens of times, which I never have to listen to again:
I am the keeper of the jewel of MASQUERADE, which lies waiting safe, inside me, for you, or eternity.
We refer to the December 2017 update as New Version, and yes I will talk at length about this at another time. ↩
7 Lasers is basically Glitchless Any%, and it is the most competitive category in the game. ↩
It was only useful in Old Version, because of another glitch that had been patched out called Force Bridge Skip. I'll talk about that at another time too because I think it's really fun (and I also discovered it). ↩
Rever is more famous for discovering Latch Skip and Boat Storage. The former is a ten second timesave in Desert that is used in just about every single category that does Desert. The latter, well. The latter reduced Any% from 15 minutes to 5 minutes. I'll talk about it another time. ↩
Comments