This Project Brings the NES Online
Greg Strike, of The Curious Place YouTube channel, repurposed his NES Automatica project to bring an NES online.
When the NES (or more accurately, the Famicom) first hit the market in Japan in 1983, the concept of online gaming wasn't on anyone's radar. While the ARPANET was in its infancy, the internet as we know it was only used in academia and wasn't yet commercialized for public use. So the idea of connecting an NES to the internet is a completely foreign one — who would you even play with? But streaming services like Twitch have introduced a new way for people to interact over the internet. With that in mind, Greg Strike repurposed his NES Automatica project to bring an NES online.
This is a real and unmodified NES console that viewers can play via Twitch by entering chat commands that translate into controller button presses. Entering a single command at a time would make games very difficult to play, so this lets viewers create programs with strings of commands to run in sequence. But to understand how those programs push NES controller buttons, you first need to learn about the projects that led to this point.
Strike, who runs The Curious Place YouTube channel, started with a project called the KCS Mix Tape. That is a small device that can output any data in the Kansas City Standard audio format. In the early days of computing, data was commonly stored on regular old audio cassette tapes and that standard defined the formatting. The KCS Mix Tape outputs a single byte (eight bits) at a time according to that standard, so any computer that accepts the standard can read the incoming data.
It just so happens that the NES reads controller button states in single-byte chunks, which led Strike to the NES Automatica project. That is a DIY NES controller that works with any standard, unmodified NES console. Incoming bytes (like from the KCS Mix Tape) set the state of a latching shift register, which sets the state of another shift register read by the NES to detect button states. So playing a game is as simple as sending bytes corresponding to button presses. Strike wrote a script that converts a series of button states into an audio file that the KCS Mix Tape can play to control the NES Automatica that controls the NES.
That's a complicated chain of projects, but Strike tweaked it further to bring the NES online. Instead of receiving bytes from the KCS Mix Tape, he set it up to receive bytes from an Arduino Uno board. That Arduino connects to a computer, which takes in commands from the Twitch chat.
So a viewer's entered program tells Twitch to tell the computer to tell the Arduino to tell the NES Automatica to tell the NES what to do.
It may seem convoluted, but it works and let Strike bring his NES online so Twitch viewers can play games.
Writer for Hackster News. Proud husband and dog dad. Maker and serial hobbyist. Check out my YouTube channel: Serial Hobbyism