Start me up (in compatibility mode) —

Windows 95 went the extra mile to ensure compatibility of SimCity, other games

Pickup trucks full of software boxes, Win95VersionLie, and other tricks.

Microsoft wanted people to have zero reasons not to upgrade to Windows 95. That meant making sure <em>SimCity Classic</em> worked, with some memory-reading workarounds.
Enlarge / Microsoft wanted people to have zero reasons not to upgrade to Windows 95. That meant making sure SimCity Classic worked, with some memory-reading workarounds.

It's still possible to learn a lot of interesting things about old operating systems. Sometimes those things were documented, or at least hinted at, in blog posts that miraculously still exist. One such quirk showed up recently when someone noticed how Microsoft made sure that SimCity and other popular apps worked on Windows 95.

A recent tweet by @Kalyoshika highlights an excerpt from a blog post by Fog Creek Software co-founder, Stack Overflow co-creator, and longtime software blogger Joel Spolsky. The larger post is about chicken-and-egg OS/software appeal and demand. The part that caught the eye of a Hardcore Gaming 101 podcast co-host is how the Windows 3.1 version of SimCity worked on the Windows 95 system. Windows 95 merged MS-DOS and Windows apps, upgraded APIs from 16 to 32-bit, and was hyper-marketed. A popular app like SimCity, which sold more than 5 million copies, needed to work without a hitch.

Spolsky's post summarizes how SimCity became Windows 95-ready, as he heard it, without input from Maxis or user workarounds.

Jon Ross, who wrote the original version of SimCity for Windows 3.x, told me that he accidentally left a bug in SimCity where he read memory that he had just freed. Yep. It worked fine on Windows 3.x, because the memory never went anywhere. Here’s the amazing part: On beta versions of Windows 95, SimCity wasn’t working in testing. Microsoft tracked down the bug and added specific code to Windows 95 that looks for SimCity. If it finds SimCity running, it runs the memory allocator in a special mode that doesn’t free memory right away. That’s the kind of obsession with backward compatibility that made people willing to upgrade to Windows 95.

Spolsky (in 2000) considers this a credit to Microsoft and an example of how to break the chicken-and-egg problem: "provide a backwards compatibility mode which either delivers a truckload of chickens, or a truckload of eggs, depending on how you look at it, and sit back and rake in the bucks.'

Windows developers may have deserved some sit-back time, seeing the extent of the tweaks they often have to make for individual games and apps in Windows 95. Further in @Kalyoshika's replies, you can find another example, pulled from the Compatibility Administrator in Windows' Assessment and Deployment Kit (ADK). A screenshot from @code_and_beer shows how Windows NT, upon detecting files typically installed with Final Fantasy VII, will implement a fittingly titled compatibility fix: "Win95VersionLie." Simply telling the game that it's on Windows 95 seems to fix a major issue with its operation, along with a few other emulation and virtualization tweaks.

Install the Windows ADK and open up the Compatibility Administrator, and you can spy on some of the things Windows does for particular apps to make them work in the System Database section. If it detects files named "Horny.tif" and "bullfrog.sbk", it updates where Windows 95/98 versions of Dungeon Keeper should put those files in Windows XP and later. Windows has to stop Tom Clancy's Rainbox Six from accessing the CD drive while it's already playing a movie or other media, as well as disable Alt+Tab switching while the game is open because the game can't handle losing focus. And it's not just older titles; Street Fighter V gets a little tweak to its DirectX implementation to run on some systems.

In 2005, longtime Microsoft staffer and The Old New thing blogger Raymond Chen documented Microsoft's Windows 95 compatibility obsession. Chen writes that Windows 95's development manager "took his pick-up truck, drove down to the local Egghead Software store (back when Egghead still existed), and bought one copy of every single PC program in the store." Everybody was responsible for up to two programs, which they would install, run, and document for bugs. If a staffer finished two, they could come back to grab up to two more. And testers could keep whatever they finished.

Mike Perry, former creative director at Sim empire Maxis (and later EA), noted later that there was, technically, a 32-bit Windows 95 version of Sim City available, as shown by the "Deluxe Edition" bundle of the game. He also states that Ross worked for Microsoft after leaving Maxis, which would further explain why Microsoft was so keen to ensure people could keep building parks in the perfect grid position to improve resident happiness.

Channel Ars Technica