GitHub: ViGrey Twitter: @ViGreyTech LinkedIn: Vi Grey

Presenting at The Circle of HOPE Conference

Jul 08, 2018

Presentation Title Screen

Image: "I Dream of Game Genies and ZIP Files - Hacking the NES" Presentation Title Screen

Pre Blog Post House Keeping

I know it has been a while since I have last written a blog post. There are a few reasons for that. In short, I have been pretty busy with a few things. Since my last blog post, I have created an interpreter for the "TBAS" programming language that was used on the CypherCon badges and decided that the interpreter should be in the form of an NES Cartridge. That cartridge helped me land a speaking position at next year's CypherCon, which I fully intend to take advantage of. The NES ROM for that cartridge, which is also a ZIP file that contains the source code for that interpreter, can be found ON MY GITHUB. A screenshot of the NES ROM can be seen below. Another thing I have been busy with is writing an article about the NESZIP project for Issue 0x18 of the International Journal of Proof of Concept or GTFO titled "Concealing ZIP Files in NES ROMs" (18:04), which you can read HERE. The last thing I have been busy with is actually the subject of this blog post.

NES TBAS Interpreter V1

Image: NES TBAS Interpreter V1 Screenshot

The Circle of HOPE Conference

On July 20th, I will be presenting a talk titled "I Dream of Game Genies and ZIP Files - Hacking the NES" at The Circle of HOPE Conference, which goes from July 20th through the 23rd in Manhattan, NY. After getting some publicity from my NESZIP project, a couple of people, including the official HOPE Conference Twitter account, asked me to submit a presentation proposal about the project. Long story short, I did and the presentation proposal was accepted.

What Will This Talk Be About?

Well, as I have stated, it will be related to my NESZIP project. With that said, I didn't want to just talk about that one project, so I decided to add a few things for this talk. First, my presentation slideshow will literally be an NES Cartridge playing on an actual NES. I figured it was only fitting. A picture of the cartridge can be seen below. Second, I wanted to talk about interactivity, which was what my first NES Cartridge, which I made for the Tymkrs' hackerspace and previously wrote about, was about. Third, while my NESZIP project, as the name suggests, was an NES ROM that was also a ZIP file, I knew I could do better than that. This NES ROM will be SIX different types of files at the exact same time and each of the two EPROMs will also be a fully functioning file.

NES TBAS Interpreter V1

Image: "I Dream of Game Genies and ZIP Files - Hacking the NES" Presentation Cartridge

When someone plays an NES game, they probably think of the controller as the method of player interaction. There are actually many more sorts of ways the player can interact with an NES game though. Some interactivity methods available to the NES that I will be talking about include using the Game Genie, the reset button, and even taking apart the NES controller with a screwdriver. More interactivity methods will be discussed in the talk, but I don't want to spoil it all right now.

Taking inspiration from the P.T. demo created by Hideo Kojima, which (maybe?) required the player to have a microphone plugged into the PS4 controller to actually beat, I decided to look for things the NES console is able to figure out about itself, the game, and the human interaction. Games for the most part will have you, the human, playing as a character, whether it be a warrior, a hedgehog, a plumber, whatever. I want to create an experience where you, the human, are a character and the physical cartridge itself is another character. This talk will start exploring some ideas of how such a game could be created.