Daniel King

Galactic emulation

Preserving old media seems like a worthwhile task, assuming you think it has some cultural value.

Take a 35mm reel of film for example, you can “preserve” it by making copies and storing them in a safe environment. The film can be considered preserved as long as you have the print and the equipment to project or transfer it.

If your media starts out digital you need specific software, and in some cases hardware, to consider it preserved.

To play a digital film you need software that can read the file container format (AVI, MOV, MP4, etc.) as well as the video codec (MPEG-4 etc.). If no one bothers write a player for your legacy video format in the future your media remains trapped on old technology.

Preserving software

Things get a little trickier when the media you want to preserve, like a video game, was itself released as software. The released binary will have been built for particular hardware, and in many cases won’t run on newer hardware without some work.

A Nintendo 64 binary was compiled to run on the Nintendo 64, not your modern laptop or phone. If you had access to the original source code, or could cleverly reverse engineer your way to it, you could rebuild for new hardware and preserve the game that way.

However, in many cases you won’t have access to that original source code, leaving you with the options of recreating or emulating the original hardware that the binary ran on.

Emulation for classic games consoles has been around for decades, I’ve attempted to write emulators myself a couple of times, they make for interesting little hobby projects. If the hardware is relatively simple, most of the work in writing an emulator is in mapping the memory and hardware addresses of the original console.

An emulator recreates the behavior of the target hardware in software.

Emulation without the original software

I recently got back in to Star Wars Galaxies (SWG), an MMO released in 2003 that was shutdown in 2011, and this is where my inspiration for this post originates.

Star Wars Galaxies - UI
The very busy UI of Star Wars Galaxies, quite typical of MMOs of this era.

There is no reason to emulate SWG on modern PCs, thanks to the relative stability of Windows as a platform you can still run games well over 20 years old. However, a lot of the logic in an MMO lives on the server, that’s code you never have access to.

When you’re playing a multiplayer game in a persistent world you need a server that’s on 24/7 preserving the state of the world. The server has to decide where to spawn the AI creatures and characters of the world, the items they have to loot, the location and state of all the players, along with any other state that makes the world feel alive.

Since players never have access to this server code, any community that wants to preserve and continue playing a game after it is officially shut down have to reverse engineer it.

As a game client your interface to the server code is over the network, so most MMO server emulation starts with packet sniffing the game’s network activity before the official servers are closed. Your new server then needs to recreate this same interface. Although we’re not talking about hardware emulation is the same sense of the Nintendo 64 example, this is still emulation.

Reverse engineering a game’s network protocol is not easy, particularly if actions in the game do not give predicable, easily identifiable network traffic, as was apparently the case with the Matrix Online.

In the case of Star Wars Galaxies their are several projects running unofficial servers, some emulating from scratch, and others using parts of the original server source.

The legal issues

Unfortunately the legal status of these emulators is still not clear, which is a problem for organizations like museums that want to preserve games in their original working state.

WoW Classic Molten Core

The best these organizations might hope for is for game developers to open source their server code when they officially shut down their games. However, the recent success of WoW Classic might have game publishers thinking of potential reboots for their old games, and cashing in on any nostalgia could put them off supporting community-run servers.

But if the creators keep their games running, maybe server emulation won’t be so important.