It's easy to take backwards compatibility for granted on PC, so much so that we rarely even use the phrase "backwards compatibility". Most old games will simply run, and for everything else there's usually a compatibility mode built into Windows or DOSBox to get it going.
This didn't happen by accident, as an old blog post by a former Microsoft programmer explains. When Microsoft wanted users to switch to Windows 95, for example, they went so far as to add specific code that looked for SimCity and, if it was running, changed how memory allocation worked so that the game wouldn't crash.
The blog post was written by Joel Spolsky in May 2000, but was recently re-discovered by podcaster and game maker Kal Yoshika on Twitter. Spolsky is writing about the "chicken and egg problem" of getting users to adopt platforms without a lot of software, and software makers to produce software for platforms without a lot of users. Microsoft's solution, he says, was making sure old software worked - including SimCity.
"Windows 95? No problem. Nice new 32 bit API, but it still ran old 16 bit software perfectly. Microsoft obsessed about this, spending a big chunk of change testing every old program they could find with Windows 95," writes Spolsky. "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."
We have always tried in various ways to highlight the ways in which games are hard to make, and I like this reminder of all the invisible work that goes into keeping games playable even after they're done.
If you want more of this, you can drill down in the Twitter thread linked above for a couple more examples. Apparently the original Final Fantasy 7 will crash if it's running on Windows NT instead of Windows 95, so Windows will lie to FF about what operating system its actually running on.