Synacor Challenge in Review

> October 5th, 2019

I’ve had the Synacor Challenge bookmarked for a couple years now, having probably found it somewhere on the Advent of Code website or subreddit. Since I’m currently taking a Computer Architecture course and I’ve been busy for the last couple days building a MIPS Pipeline Simulator for it, I figured I would give it a shot.

It started just as a way to spend some free time I had on a friday morning, but as I started unraveling the challenge’s surprises, that quickly grew to a whole weekend spent solely on it. All my code is on my GitHub, as well as a full writeup, written as I was progressing through the challenge. You can also keep reading for more info and my spoiler-free comments on it.

According to the description on the challenge website, it was given by Synacor at some tech conferences in 2016, and although it doesn’t award anything anymore, it’s still available for whoever wants to try it.

In a nutshell, your task is to write a Virtual Machine capable of executing an included binary file, according to the complete architecture description provided, getting eight passwords along the way. As you progress, more and more puzzles are thrown your way, and you are totally free to solve them however you like with whatever programming language - for some of them, pen and paper even.

The challenge is not easy by any means. It feels tailored for the Computer Science undergrad curriculum, as each step of the way covers the content of a different course I’ve taken. With that said, if you feel somewhat confident in your general CS abilities (do note I didn’t say “programming” only), I highly recommend that you go in blind. But, be aware that there are some hard barriers, in which you either get the solution instantly or you don’t - and it’s going to take you some hours of research or days of shower thoughts. The moment it all clicks, though: it’s glorious.

Once again, remember to take a look at my writeup after you’ve given the challenge a try, and see where our solutions differ! But do be aware though, that it spoils the entire thing!