Advent Calendar 16: Some Very Stable Genius

All this info about old video games is cool and all, you are (hopefully) saying, but what good is it really when I can't play any of them?

Well, you can. Mostly. A lot of the super famous ones have gotten modern remakes, and can be bought online in various places like Steam, or Xbox Live/Playstation Store/Nintendo eShop. Myst has been remade about a thousand times, and there are some pretty good re-renderings of old point-and-clicks like The Secret of Monkey Island or Sam and Max: Freelance Police

Nintendo's Virtual Arcade is a prominent player here, except most of the games available there aren't remakes -- they're emulated. An emulator is a piece of software run on one kind of computer architecture that makes it appear, to a second piece of software, to be a different kind of architecture, usually the system that the second piece of software was originally written to run on. This is distinct from a port, where the program itself is translated from the language of the old system to the language of the new system, or a remake, where the program is recreated in a new framework that is native to the new system, discarding the old programming code entirely.

Emulation is a tricky problem to solve. Like game localization, it's not a matter of a straight-across conversion from one language to another. Different computing devices have personality quirks that may or may not have a direct equivalent on the target system. Games, especially those running on consoles of limited capacity, are often optimized to run on very specific hardware, and may rely heavily on un- or poorly-documented features. Emulating a computer OS on another computer OS is mostly a matter of having enough raw computing power to do the real-time conversion -- OSes by their nature have to handle a pretty wide range of hardware, so they tend to be more tolerant of getting the occasional weird answer. Emulating a games console means not just translating things to and from the instruction set used by the CPU, but mimicking the timing of hardware operations, because tightly-optimized code can crash and burn if things happen too slowly. Or too quickly. Or too anything.

Writing an emulator to make your computer play retrogames is much like giving your PC a pair of Groucho glasses and asking it to impersonate a distant cousin it has never met in person, flawlessly, in its second or third language. The consoles are usually much older than the computer, and it's easier to impersonate an idiot than a genius, but on the other hand, the games all know the idiot pretty well and are likely to lose their shit if they spot too many inconsistencies. Emulator programs tend to be brilliant little pieces of genius code that wobble and fall over at the slightest hint of trouble.

Writing emulators has been a niche hobby ever since the first hacker got a new computer that didn't run their old favorite software, but computer emulation of games consoles was catapulted into the mainstream in the late 1990s by bleem!,  a Playstation emulator for Windows PCs that was marketed while the Playstation itself was still in production. bleem!, along with its Mac/Win competitor Connectix Virtual Game Station, was predictably the target of lawsuits -- this time from Sony, rather than from the games publishers, who didn't much care since both pieces of software required legitimate game CDs to run. Connectix and Bleem technically won the suits, which means that US case law holds commercial console emulators to be legal so long as they are constructed through means that do not run afoul of the DMCA, but ran out of cash in the process. Bleem was driven out of business, while Connectix was eventually purchased (and discontinued) by Sony themselves.

I tried both bleem! and VGS, on what was at the time a fairly high-end Windows 98 PC. They both worked pretty well, which was more suggestive of the processing disparity between a $200 Playstation and a $2000 desktop computer than anything else. I picked them up because I kept running Playstations into the ground. The original PSX models used a little plastic sled to hold the lens for the optical drive that wore down over time, until eventually the lens couldn't get close enough to the disc to focus. The temporary fix was to turn the PSX on its side so the sled didn't have to fight gravity; the permanent fix was to replace the drive mechanism or the entire console, which cost about the same. I already had the computer for other reasons, and bleem! was $30.

Emulation of classic consoles like the NES, SNES, Sega Genesis, and Playstation are more or less solved problems. The cart-based consoles are extremely simplistic by modern standards. I have a spare Alcatel OneTouch Evolve hanging around that's nowhere near smart enough to work as a phone anymore, but is perfectly happy to be a Gameboy Advance. I think if I poked it a bit it would run DraStic. Games up through the PSX/N64/Saturn era are well-emulated on anything smart enough to count as a computer these days, plus good coverage on Android. Technically most of these things are available on iOS as well, but you have to hunt around and sideload them. Apple polices the App Store pretty tightly, whereas to get something on Google Play you just have to demonstrate that it isn't obviously illegal, it does something that can be broadly construed as "working", and it doesn't usually set the hardware on fire.

On the computer end, the transition between major versions of DOS/Windows always breaks a lot of software compatibility. Windows 95 and 98 technically ran atop a stripped-down version of MS-DOS internally, so with the right drivers and a lot of setting tweaks you could usually get DOS games to run in the environment; XP/Vista did contain a tiny pretend version of DOS in an effort to maintain "compatibility mode" for older software you just couldn't give up, but my experience with it was rocky at best. At this point, games from the Windows 98 era and back are best run in software called DOSBox. Its processing requirements are so minimal in comparison to modern hardware that some version of the DOSBox environment has been implemented on just about anything brighter than a toaster. You can play DOS games on a DS, if you feel like typing everything by stabbing the bottom screen letter by letter with a tiny plastic pencil. Once upon a time I got it running on a T-Mobile Sidekick, an early smartphone with a slide out QWERTY keyboard. I still miss that thing.

As for running games made for Windows Vista on Windows 10... just buy it from Steam. Really. It's possible but it's a bitch and a half. Let the professionals build all the settings into a wrapper for you. If you really can't live without it, find an elderly laptop and run it in a native Vista environment. Fortunately, Windows Vista sucked and people actively avoided trying to write software for it, so most things are already run in a separate framework that's been properly ported to Windows 7/8/10.

I'm a lot less familiar with trying to run old Mac games on new Mac hardware; I inherited a MacBook by accident and I'm still working out where all the settings are, but there are similar playpen environments that emulate PowerMacs and earlier on post-OS X systems, like SheepShaver. (Why is it called SheepShaver? Because an earlier program for emulating a 68k Mac on Amiga was called ShapeShifter, and hackers are silly people.) Macs before the PowerPC era are simple-minded enough they fall into the same basket as early consoles. If you have a burning need to play Oregon Trail, Where In The World Is Carmen Sandiego? or Number Muncher, you can do it on pretty much any modern anything by searching for "Apple II emulator for [your system]", or just hitting up Virtual Apple online.

Later consoles present more challenges. Early Xboxes are mostly constructed out of consumer-grade PC parts. Porting to Windows was sufficiently easy that it's usually a better idea to just buy the PC version. Sony did terrible, eldritch things with the internal architecture of the PS2, PS3 and PS4. The PS2 is pretty well solved with PCSX2, and RPCS3 has broad but incomplete compatibility with PS3 games, but the innards of the PS4 are pretty much still in "Thar Be Dragons" territory. The Wii was just an upgraded GameCube, which means both are covered by Dolphin, and nobody cares enough about the WiiU to try emulating it.

Perhaps one of the more interesting things about emulation is that, now that they have definitively lost the battle versus the entire nostalgic internet, first-party publishers are getting into the act. They are not as good as the hackers. Nintendo's in-house emulators... well, they work, but considering the games belonged to Nintendo in the first place and they have access to all the nitpicky source code, a lot of the problems feel like the product of sloppy internal meddling. If your audience remembers exactly where you concealed your sins with fog in Ocarina of Time, you best make sure your emulator covers your shame the same way.

Comments

Popular posts from this blog

The mystery of "Himmmm"

WARNING! Sweeping generalizations inside!