Remix.run Logo
sudhirj 5 days ago

Weren’t there a couple of anecdotes where Windows couldn’t fix a bug because some popular game (maybe SimCity?) depended on it, so the devs hardcoded a SimCity check inside Windows and made the bug happen if it was running?

masklinn 5 days ago | parent | next [-]

It was not a bug in windows, it was a bug in SimCity: it would UAF some memory, but the Windows 3.x allocator did not unmap / clear that memory so it worked.

Windows 95 changed that, and so one of the compatibility shims it got is that the allocator had a 3.x adjacent mode, which would be turned on when running SimCity (and probably other similarly misbehaving software as well).

Nowadays this is formalised in the compatibility engine (dating back to windows do), which can enable special modes or compatibility shims for applications (windows admins trying to run legacy or unmaintained applications can manage the application of compatibility modes via the “compatibility administrator”).

praptak 5 days ago | parent [-]

Still a pretty good example of having to support something which is definitely not part of the official spec.

guappa 5 days ago | parent [-]

Had it been open source, they could have just fixed the software instead

masklinn 5 days ago | parent [-]

Fixing the upstream would not have updated it on the millions of machines running it, which is what they wanted to not break.

cesarb 5 days ago | parent [-]

> Fixing the upstream would not have updated it on the millions of machines running it,

It was a very different world back then. You couldn't even assume a dial-up connection.

Nowadays, the software would have been automatically updated for 99% of the machines running it, whether they wanted that update or not.

masklinn 5 days ago | parent [-]

Hah. Debian will happily keep shipping libraries years out of date. Then complain that you’re holding them back when they finally wake up and update sid to a bleeding edge release.

guappa 4 days ago | parent [-]

I feel like you have no idea on how debian works, but have read an article 25 years ago and are angry about that ever since.

The proof is this totally OT comment that doesn't even make any sense :)

adontz 5 days ago | parent | prev [-]

https://www.joelonsoftware.com/2000/05/24/strategy-letter-ii...

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.