The life of the code monkey is one of little rest. There is something about holding the key to the software we so rely upon everyday that just makes it so you can’t leave it well alone. Such has been the way with the recent trend of unofficial PC ports of classic games, old titles recreated from the ground up in common coding languages like C++. Zelda Dungeon reported on just such a PC port of A Link to the Past last August, not to mention ports of Ocarina of Time in December 2021 and March 2022. Recently, a number of publications have become aware of the Link to the Past port, created by snesrev and co., and have subsequently reported on it. Our own Rod Lloyd covered what there is to know on that project specifically in his article, but the renewed interest is a good opportunity to discuss why these PC ports mean so much for the community.

 

What is Reverse Engineering?

And why exactly is reverse engineering a game worth doing?

Consoles, by their nature, use their own internal organization system and programming environments. This is why we can’t simply take the files of a Nintendo 64 game and run them on a PlayStation 5 as is. Even in the case of emulation, a program is simulating the environment of a specific console in order to run that game. This creates all manner of issues since the game is not in its native state. Some might recall the bizarre rendering issues on the Nintendo Switch Online version of Ocarina of Time. It’s also worth noting that, from a legal standpoint, the developer of that game has legal ownership of that code.

By decompiling the code from a game using proprietary software and then recreating it within a common coding language from scratch, the reverse engineers can then easily modify the game’s programming. It also has the added benefit of giving them ownership of that code, avoiding legal issues with companies that owned the initial code (though it does have some grey areas; more on that later). This ease means access to a lot of benefits for fan developers, like mods that change core elements of the game, the ability to place the game on other platforms, and the creation of new content using the game as a base like more in-depth randomizers.

 

New Features & Functionality

Even out of the box, snesrev’s port of A Link to the Past features pixel shaders, widescreen support, a more detailed world map, an extra item slot in the vein of later Zelda titles, and the ability to quick-swap items with the shoulder buttons, none of which is normally in A Link to the Past. These are all additions made possible by reworking the code to a more workable state. This nativity also avoids issues like the aforementioned rendering problems in 3D games, since the game is functioning in an environment it was designed for.

 

It is worth noting that these ports are often only the code of the game, and in order to make it run, one would need a ROM of the original title from which to strip the art and other assets in order to run them in their base functionality. This distinction is how projects like this don’t violate any copyright laws at all. You may notice all of these ports, even ones we reported on more than two years ago, are still up and available. The particular confusion comes in the difference between violating the law and violating a company’s terms of service.

 

A Greater Degree of Legal Freedom

When one violates the law, a copyright holder can issue a cease & desist, the typical way people expect a company to respond to projects like this. In cases like this, though, where the only thing potentially violated is the terms of service, there is little a company can or likely really wants to do in response. It’s often more trouble than it’s worth to do what little is in their power to do in this case. This is a very different case than, say, a ROM hack like Pokemon Uranium which directly manipulates a copywritten game’s existing code within the system’s own environment. These ROM hacks are also incredibly difficult to create and take deep knowledge of the internal structures of the games of a particular console or a very specific tool made by those who’ve done that work for you.

This distinction is dreadfully important in the efforts of creating fan projects that aren’t subject to takedowns from a copyright holder. If one were to take this reverse-engineered code and make their own assets and characters, it would be a perfectly legal way to create a Link to the Past-inspired game that they could potentially even monetize with the code creator’s blessing. One could even still use copywritten characters for a free project, as that would be a fairly easy justification under Fair Use if they were redrawn by the developer.

 

New Features & Functionality

Breakdowns like this can even assist in creating more expansive and unique randomizers that have become so tremendously popular as of late. As it stands, most randomizers are built on the manipulation of elements already present in the game’s functionality, things such as altering item codes in the game’s storage, removing cutscene files, and, if you’re clever, replacing model files.

Even these little tinkerings take extreme amounts of time to hand calculate the randomization logic, since the ability to directly alter the game is so limited. Ports like these can do so much to ease that process and even vastly increase the kinds of things that can be shuffled. Could you imagine a randomizer where Cuccos can breath fire? Or a randomizer where quests can be tied to completely different NPCs? Or a randomizer that adapts as you go? And that’s just the tip of the iceberg.

 

The Bottom Line

All this to say that these PC ports are an incredible thing for the community, both for creators and players alike. It means wider availability of the games we love, fan projects that can push the envelope in their capabilities and won’t be taken down within hours, and an easier time for those who try to take these games to different places. The work people like snesrev and crew do is a huge endeavor, and it’s important to highlight just how useful it is. Making it clear what exactly this work is doing goes a long way to that.

What are your thoughts? How do you feel about the wider proliferation of classic games rewritten for PC? What kind of applications would you like to see with this process? Let us know in the comments below!

Tagged With: No tags were found for this entry.