Super Smash Brothers is a game franchise released by Nintendo. The original SSB was released on the Nintendo 64, and since then has been followed by releases on the Gamecube, Wii, and Switch.
Super Smash Brothers Melee was hailed by many fans as an excellent game for playing competitively, and over 15 years later continues to be played in tournaments. Unfortunately the next iteration of the series, Super Smash Brothers Brawl (for the Wii), contained many features encouraged to prevent competitive play. An increased amount in random factors meant that individual skill had a smaller impact in game outcome.
However, a series of modification tools for the Nintendo Wii were released. The “USB Gecko” was an adaptor which allowed connecting the console to a PC. From here, a developer could debug the console, being able to inspect the RAM and registers. A custom language, called “Ocarina”, was used to make “codes”, which could affect gameplay by writing to the RAM either once or at frequent intervals.
The work of several prominent hackers such as Phantom Wings and brkirch meant that the capabilities of modders rapidly grew. Instead of writing in Ocarina, hackers developed techniques to instead inject raw assembly code into Brawl. Later on, techniques were developed to load modified files from the SD card instead of the Wii, allowing for significant changes to core game assets. Finally, a series of exploits such as Letterbomb and Smash Stack allowed regular users to run code developed by the modding community.
Smashboards is the home of the largest online community for Super Smash Brothers, and was at the time owned by Major League Gaming. Although the board’s adminstrators were broadly supportive of the modding community, they were somewhat cautious of its potential legal applications. As such, they created a separate forum, the Smash Workshop, for creation and discussion of custom content for Brawl. I was appointed as the first moderator for the Smash Workshop, and had weekly discussions with an MLG representative to discuss the legal and competitive implications of what was being worked on by the community.
The development of mods was very contingent on what the hackers at the time were interested in, as the barrier for entry (coding in PowerPC assembler code, having custom hardware for a RAM debugger and the willingness to use it) was somewhat high. As someone just geting into programming, it was a great opportunity for me to find ways to contribute. I made some contributions:
At one point, modders were limited in the amount of custom code that could be run. Multiple codes had very similar structures, involving navigating over what we called the “Root Pointer Tree”, which allowed a coder to access all of the most important locations in RAM (character data and state for the players in game, and so on). I wrote a code which merged several others together, significantly decreasing the overall length.
The hackers spunit262 and Phantom Wings created a series of codes that allowed the modification of animation and hitbox data for characters - describing how fast attacks were and how much damage they would do. I wrote some utilities to allow someone to read out this information, making easier to make changes.
We eventually ran into framerate lag problems from the number of hitbox and animation changes we had in place! These codes would loop through a list of every necessary change every frame for every animated character on the screen. I wrote an indexed sequential search algorithm in assembly, which ran the indexing at initial game load, significantly improving the execution speed of these mods.
Later on, as the ability to load files from the SD card improved, many of the previous codes we had created became obsolete. Instead of editing the data as it was loaded into (or read from) RAM, we could write the changes into a custom character file and load that file. Eventually, this lead to the creation of completely custom characters. I was the first to write and release a “Conditional File Loader” code, which allowed players to select if and when to load alternate character data. My code was later (significantly) improved upon by the coder Dantarion.
During all of this, I worked as part of a development team for a modification called Brawl+. The aim of Brawl+ was to attempt to make Brawl into a more competitive game by increasing the speed of play and addressing some balance problems. Ultimately, the project did not fare too well - there was no clear leadership, meaning that individual contributors had free reign to rebalance characters as they saw fit, and in many cases this made things worse.
As the hacking scene developed, one of the major contributors to Brawl+, shanus, started work on a project to faithfully reproduce the attributes of characters from Brawl’s predecessor, Super Smash Brothers Melee. This project came to be known as Project M, and received over 1M downloads after its release in 2011. As one of the lead developers for Brawl+, I was grandfathered in to the Project M team (called the “PMBR”, or “Project M Back Room”), and contributed occasionally to the discussions.
Sadly, I stepped off the team quite early, as I had to prepare for my A Level exams, and had to leave my developing equipment at home when I left for university soon after. I was thanked in the credits of Project M until the project was taken down in 2015. I am still thanked in the credits of some other related projects, such as “Balanced Brawl”.