Dustin Long is an independent game developer. You can find many of his past works on his website — but he most recently came to the internet’s attention for his demake of The Witness, which renders a huge swath of its complicated puzzles into 8-bit graphics. Called The Wit.NES, the game is currently available as a free demo, and playable on any Nintendo Entertainment System emulator. (Most emulators are legal, but many ROMs are not. We’ll let you do your own research into what emulator you should use to run this.)
We got in touch with Long recently and had a chance to ask him a few questions about Wit.NES. Our conversation follows below, lightly edited for clarity.
ZAM: What inspired you to tackle this particular game for a demake?
Dustin Long: While completing follow-up work on my previous NES game, I heard a story about a version of Threes (Sirvo, 2014) created as an Atari 2600 cartridge, and started thinking about what sort of simple game mechanics would work on such a stripped-down machine. Shortly thereafter, The Witness was released, and I played through it rather obsessively. With that experience lingering my mind, I realized that the central puzzle panel mechanics could work pretty well on the Atari 2600, but if I wanted to make something that would really mimic how The Witness made me feel, I would need a satisfying exploration element, something akin to the overworld in NES RPGs like Final Fantasy and Dragon Quest. I created an interactive puzzle panel for the NES the next day, and once that was done I decided to commit to finishing a demo as quickly as possible.
I understand Witness‘s lead designer, Jonathan Blow, has given the project his blessing, which must be reassuring. I imagine if nothing else, nobody wants to step on a fellow programmer’s toes.
I wasn’t especially concerned about it, though the possibility lingered in the back of my mind. My hopes were that, if the demake were being respectful of the original work, didn’t try to be a replacement for the full experience, and was impressive in its own right, then [development studio] Thekla would at least appreciate its existence. But if I were wrong, and were asked to take it down — well, that was a risk I was willing to take. However, I was betting that that wouldn’t be the case, partially because things like The Windmill, a website that recreates the puzzle panels with no exploration component, already existed.
Of the puzzles available in the demo version, were there any that gave you a particularly hard time when it came to reinterpreting them for the NES?
The yellow blocks (often referred to as “Tetris” blocks) were especially difficult to both add to the game engine, and to present to players in a teachable manner. In fact, I’m not sure if I did a good enough job here, as some of the later Tetris puzzles definitely gave players problems. I mistakingly implemented these puzzles last, and by that point in development, couldn’t add additional panels without either changing major portions of the game world’s layout or rewriting the engine, due to memory constraints.
As it turns out, the NES is quite a limited machine, and there’s restrictions that directly affect design, often coming from multiple directions. Limited RAM means you can’t have too many variables or data structures, slow CPU means you need to write fast code, and limited ROM means you have to pay attention to how large your code is after it gets built. All this leads to making compromises. The solver subsystem, which checks if the player found a valid solution, is especially hacky, doing things like reusing the same memory for multiple purposes, and shifting bit arounds in interesting ways. Getting the Tetris blocks to work with it was especially challenging, since the exact rules about how they work are rather obtuse.
Of the puzzles you haven’t yet demade, are there any that seem especially daunting, even impossible? Have you given thought about how you might ‘rework’ a puzzle in cases where it just doesn’t translate?
The “inverted Y” puzzle pieces from the original game seem especially difficult to get right, given all the constraints already in place such as limited memory and hacky solutions in the codebase. I didn’t think about it too much, but even briefly considering how to recreate these pieces chilled me to the bone.
I don’t think it would be my place to change how a rule worked, or add a new one, since my goal here was to imitate and reduce the original The Witness, not to try and “fix” some part of it.
Many people don’t know there’s still an active development/mod culture out there for older consoles. Any resources you might recommend for someone wanting to learn more about the scene?
Yeah! The larger homebrew scene is a really fascinating environment, there’s all sorts of neat projects being done in various disciplines. Aside from people making new games and interactive experiences for old systems, there are people modifying the hardware itself, dissecting consoles in extreme detail to figure out exactly how they work, making visual art, and especially using these machines to make music, aka chiptune. I would recommend anyone interested in learning more to check out NesDev for Nintendo consoles, SMS Power for Sega Master System, and ChipMusic specifically for music. There’s also whole scenes around the Dreamcast, Commodore 64, Amiga, and other machines that I know much less about.
Let’s say hypothetically all the stars aligned and money wasn’t an issue, what sort of physical media would you need to actually run all of Wit.NES on a real NES?
The hardware requirements actually wouldn’t be too bad for making a full-scale version of The Wit.NES that lived in a cartridge. Puzzles themselves use just a few bytes each, and only the map system takes up very much space, and that’s because I didn’t put any work into fixing this. The ROM I released uses a configuration known as NROM, which means that it matches most of the first-generation NES releases, and doesn’t require additional hardware to work (i.e. it doesn’t use a “mapper” chip). Adding a mapper and some more memory would be the first step to expanding upon the content, but I don’t imagine the total size would exceed that of a typical commercial NES game, which tended to be about 4 times the file size of The Wit.NES demo.
Luckily, I also have a friend that I’ve worked with before, Andrew Reitano, who makes hardware and is responsible for producing my last game Star Versus as well as his upcoming release Super Russian Roulette. Given his help, it wouldn’t be tough at all to make physical copies of the game. It’s currently not planned, however, for a multitude of reasons.