Projects

I've done a fair share of tinkering on speedrunning and gaming projects, including hardware and software. My most significant projects are described below, including relevant links.

MashAttack

Button Mashing Performance Tester

Like it or not, mashing is a commonly-required gaming skill. The ability to hit a button rapidly in succession may not seem like much on its surface, but it comes into play in far more scenarios than the stray minigame. In speedrunning, mashing ability can help shave overhead on interacting with menus, or may even be required to execute specific tricks. But it’s still hard!

read more

Chimera

Universal Controller Remapper

My experiences with Input Control and MashAttack left me with a pretty good understanding of interacting with controllers and consoles from microcontrollers. I started thinking about how I could apply these skills to something new and useful. My first thought was to start making input viewer hardware and software for all manner of other gaming controllers, but I decided that it would be a really inefficient and unrewarding process to just iterate through the different controllers and make minor adjustments for each. There had to be something better I could do.

read more

Input Control

SNES Input Viewer, Logging, and Playback

My first foray into working with controller monitoring and manipulation started with my desire to create a custom SNES input viewer. Input viewers are software displays that illustrate what buttons are being pressed on a controller, and can add some flair to a player’s stream while doing speedruns. I started with the instructions and code from jaburn’s NintendoSpy project, but I wasn’t quite satisfied with its performance or features. So I set out to make my own, using NintendoSpy as a template.

read more

Double Punch-Out!!

One Controller, Two Consoles

Before game submissions to AGDQ 2018, runner zallard1 asked me if it was possible to make a device that would allow one controller to provide inputs to a NES and SNES simultaneously. The goal was to allow playing both Mike Tyson’s Punch-Out!! (NES) and Super Punch-Out!! (SNES) simultaneously. I was fresh off of setting up MashAttack, so I was plenty familiar with handling the controller inputs, and it seemed straightforward enough. The core idea was to have a microcontroller act as an intermediary between the player’s controller and both consoles.

read more

Suikoden II Stats Calculator

Tricky Math Made Easy

Suikoden II has a somewhat unique leveling system with regard to character stats. Each character has specific growth rates for individual stats which follow set patterns, which are referred to by the community as ranks. Without going too much into the finer details, each rank describes how much of the stat a character will get on a level-up, with a set probability of getting one additional unit of that stat. But this is further complicated by the fact that the amount and probability change at set level boundaries - 20 and 60, specifically.

read more

Monster Maker

Custom Monsters for the Masses

Early Monster Rancher games had a unique method of monster generation. To spawn a new monster, players were tasked with loading an unrelated CD into the PlayStation, and the game would use some of the information on the disc to create a monster. With hundreds of available monster types, it was quite a thrill to hunt around for any and every CD in the house just to see what monster turned up from it. Moreover, the monster’s stats were also tied to the CD, so there were certainly “better” CDs than others.

read more