Windows 95 Went the Extra Mile To Ensure Compatibility of SimCity, Other Games (arstechnica.com) 53
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. From a report: 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."
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."
The queen of dupes is at it again (Score:5, Informative)
https://games.slashdot.org/sto... [slashdot.org]
At least it's been two months this time and not half a day.
Re: (Score:3)
Really, it's exactly the same article from arstechnica. It is an interesting article, though. There were some good comments last time around on Slashdot.
Re: (Score:2)
It's obviously deliberate like the other dupes.
Re: (Score:2)
I don't like to assume incompetence by default because there is so much malice in the world, but look at who we're talking about
Constructive criticism? Not but now? (Score:2)
Modded informative? In what universe? Constructive? NOT. Misogynistic? Probably, but who cares what the troll thinks, even if it names itself. But Slashdot tags it as a "hot comment"? WTF.
Only "contribution" to the "discussion" here, apparently for the 'FP kudo'. No contribution at all, constructive or otherwise, to the linked discussion, which was moderately long (but not of much interest to me then or now, since I've mostly abandoned computer games in my whippersnapped dodderage). Perhaps he's a fan of si
Had to check my calendar (Score:3)
I had to check my calendar. Just woke up and saw this. Got worried I was transported back to 1996.
Re:Had to check my calendar (Score:5, Informative)
I thought we got transported to October when the exact same story was run with the exact same headline. https://games.slashdot.org/sto... [slashdot.org]
This mentality explains a lot (Score:2)
Ever wonder why Windows security was such a joke for so long? This sort of thinking helps explain it.
Re: (Score:2)
Re: (Score:2)
While true, I would argue this is more than just "backwards compatibility". This is deliberately supporting pre-existing buggy behavior. Not only is the bug itself a problem (not freeing memory that's supposed to be freed), but you're introducing additional complexity to the code base - more code which could very well contain its own bugs.
Re: (Score:3)
Yes, and for good reason.
Let's say Windows 95 came out without the SimCity fix. You load up SimCity and it crashes on you. What do you blame? Do you blame Maxis, the devel
windows 95 had good DOS mode as well (Score:2)
Lots of dos games ran good in 95 and ones that did not just needed to exit.
Re: windows 95 had good DOS mode as well (Score:3)
And yes, it's still a problem today. For example, the GOG version of Tomb Raider 2 works i
Re: (Score:2)
Can't entirely disagree. Windows 95 would have been blamed for any incompatibility with any major piece of commercial or consumer software.
But doesn't it create a possible security issue if you can create a malicious process, call it SimCity.exe, and take advantage of the fact that memory that should have been freed wasn't?
Re: (Score:1)
I wonder if the exemption for SimCity is, or was, a security flaw in itself. Rather than merely leading to one. What if one deliberately creates a malicious file called SimCity.exe, and then tries to search memory where it should not?
Now the question is probably moot in this case, as security on Windows 86 was laughable anyway. But as soon as you allow such special privileges for a program, you also need to defend against abuse.
No (Score:1)
Re: (Score:1)
Re: (Score:2)
It's still short for 'application'. What do you think it means?
Re: (Score:2)
The term was definitely used by people at the software company where I worked in the 80's.
Re: (Score:2)
Re:No (Score:4, Informative)
This is patently false. I didn't even have to look hard.
In Issue 157 of Compute! magazine, published in October 1993, the article "Super Recorder Macros" begins with the sentence, "Windows' Recorder has received a lot of criticism for being an underpowered app, and some of this criticism is justified."
I know there's a widespread notion that Steve Jobs invented the word app, but that guy never invented anything in his life.
Re: (Score:2)
Actually, no, he didn't even invent that, although his stupidity killed him early, just the same.
Re: (Score:2)
I know there's a widespread notion that Steve Jobs invented the word app, but that guy never invented anything in his life.
In Job's defense, he may have invented a novel way to react to pancreatic cancer. That this was horribly unsuccessful would not mean he hadn't invented it.
Actually, no, he didn't even invent that, although his stupidity killed him early, just the same.
That's not true. Here are Steve Jobs' innovations and designs:
Steve Jobs is listed as either primary inventor or co-inventor in 346 United States patents or patent applications related to a range of technologies from actual computer and portable devices to user interfaces (including touch-based), speakers, keyboards, power adapters, staircases, clasps, sleeves, lanyards, and packages.
His contributions to most of his patents were to "the look and feel of the product". He and his industrial design chief Jonathan Ive are named for 200 of the patents.[242]
Most of these are design patents as opposed to utility patents or inventions; they are specific product designs such as both original and lamp-style iMacs, and PowerBook G4 Titanium.[243][244]
He holds 43 issued US patents on inventions.[243]
https://en.wikipedia.org/wiki/... [wikipedia.org]
No this is wrong (Score:1)
In my personal opinion, this is wrong. There is no way for other competing companies to get their workaround hacks included. It reeks of favoritism. Everybody elseâ(TM)s stuff gets broke.
It alludes to the fact that there was possibly under the table kickbacks between companies. It clearly demonstrates that there were in groups that were part of the boys club and out groups that weâ(TM)re not.
This wasnâ(TM)t some amazing dedication. Itâ(TM)s clear evidence of collusion and corruption. I c
Re:No this is wrong (Score:4, Insightful)
how dare MS go out of their way to try to make sure popular applications/games worked under their new OS; that's just blatant anti-consumer behavior!
Re: (Score:2)
The history of this particular fix is well known. I guess it's just making the rounds again for people who are re-discovering it.
This game was "fixed" by Microsoft with a shim because it was a very popular piece of software. There were a lot of such fixes for the most popular software, but this was one of the more interesting/extreme cases. This isn't Microsoft being altruistic. Raymond Chen (longtime MS employee and blogger) explained that when previously existing software fails to work on a new versio
Why Windows is Bloated (Score:2)
This is the same logic and mentality Microsoft still uses. Why does Windows 11 still support 16-bit apps? This is why...
The next version of Windows should be a clean build. Scrap 16 and 32-bit support. Scrap drivers used by the small minority of users. Dump old Direct X, and crap the old IE5 engine still embedded everywhere, Scrap 1-off bug fixes like this, to support individual apps.
Create two versions of windows.
Windows 3000
Windows 3000 Legacy Support
The Legacy Support Version can provide extra options to
Re: (Score:2)
The more legacy baggage they drop, the more flack they take. People will complain that the new version of windows doesn't run on their otherwise fully working hardware / doesn't run their old app / doesn't support some random peripheral etc.
If they produce multiple versions with/without legacy support, this increases the support burden, and i bet most users would end up running the crufty legacy version anyway because from a user perspective it would just seem to "work better" (ie it has less random compati
need to auto run 16 bit installers for some 32 bit (Score:2)
need to auto run 16 bit installers for some 32 bit apps.
Re: Why Windows is Bloated (Score:2)
Re: (Score:2)
Re: Why Windows is Bloated (Score:3)
Apologies, you are correct!
https://support.microsoft.com/... [microsoft.com]
Re: (Score:2)
No, if you want to do something like that then legacy support would be an add-on/extension that can be downloaded.
But, as other have said, that's not a good idea anyway. Too many user complaints. You can't leave a major chunk of your user base behind and just tell them to suck it up. Then instead of upgrading they will just keep their old win95 or whatever forever and MS will get blamed when they're hacked.
Re: Why Windows is Bloated (Score:2)
Why not, Apple did and continues to do so.
They could also make it seamless. Run a legacy app that requires old DLL's or code? At run time, windows can watch for those calls, and download the required files dynamically instead of bundling them.
Much like how Linux package managers download packages that download packages that download packages until all requirements are met.
Re: (Score:2)
This is the same logic and mentality Microsoft still uses.
Much as I despise Microsoft for its many, many evil actions, this is one of the things they did right. Backwards compatibility is something that must be defended religiously, as software expenditures can, and do, amount to very significant investments.
Never fear, though. Microsoft has an endless supply of shitty behavior for which it can be taken to task. We can acknowledge when they do something right.
Not very elegant.. (Score:3)
A more elegant solution would be to patch the game to fix the bug, rather than having an exception written to the memory manager.
Re: (Score:2)
If I was the product manager I'd kludge the OS. I don't want to be responsible for someone else's software failing somehow later. And if the game was ever patched by its developers then you could be in for a shitload of trouble with you unofficial patch.
Also, some anti-virus wares take crc checks of your binaries and will report a virus.
Re: (Score:1)
This is why you're not in charge of anything important.
Re: (Score:1)
But then you better check that the software is what it seems to be. For instance, by computing a secure hash of the executable and only applying the kludge if the hash is the same as for that particular piece of software.
Re: (Score:2)
Absolutely. If you can just write some malicious process and get control of memory that you know for sure hasn't been freed just because you named that process SimCity.exe, then Very Bad Things might result.
On the other hand, back in those days of copy protection, software distributed on floppies, etc., I'm not sure you could even guarantee that every working copy of the software would have the same checksum. We sometimes forget that the proprietary software world almost 30 years ago was a very different
Re: (Score:2)
Re: (Score:2)
The OS is already detecting sim city specifically, so it could in theory come up with a file that is copied to the game folder when it's ran.
I upgraded to win95 (Score:3)
Re: (Score:2)