Follow Slashdot blog updates by subscribing to our blog RSS feed

 



Forgot your password?
typodupeerror
×
Windows Technology

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."

This discussion has been archived. No new comments can be posted.

Windows 95 Went the Extra Mile To Ensure Compatibility of SimCity, Other Games

Comments Filter:
  • by Kokuyo ( 549451 ) on Monday December 26, 2022 @12:02PM (#63158714) Journal

    https://games.slashdot.org/sto... [slashdot.org]

    At least it's been two months this time and not half a day.

    • by ac22 ( 7754550 )

      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.

    • It's obviously deliberate like the other dupes.

      • 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

    • 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

  • by groobly ( 6155920 ) on Monday December 26, 2022 @12:12PM (#63158732)

    I had to check my calendar. Just woke up and saw this. Got worried I was transported back to 1996.

  • Ever wonder why Windows security was such a joke for so long? This sort of thinking helps explain it.

    • Absolutely. Maintaining backward compatibility can lead to many security flaws.
      • 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.

        • by tlhIngan ( 30335 )

          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.

          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

          • Lots of dos games ran good in 95 and ones that did not just needed to exit.

            • DOS in Windows 95 was essentially a hardware-accelerated virtual machine (Virtual8086) which run a copy of MS-DOS. The actual details are gory and complicated (search for "DPMI" if morbid curiously gets the best of you) but that's the high-level overview. The real problem with was and is compatibility with Win16 and compatibility between the different versions of Win32 going all the way back to Windows 3.1 32-bit mode.
              And yes, it's still a problem today. For example, the GOG version of Tomb Raider 2 works i
          • 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?

      • 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.

  • It's not an "app". There were no "apps" in 1995. There were programs or applications.
    • There certainly were apps, but app was short for application. It's only been in the past ten years or so that the term was stolen from us.
    • 1985 Ashton Tate Framework II Menu - "Apps" - here's the link to a screenshot: https://www.vocabulary.com/art [vocabulary.com]... [vocabulary.com]

      The term was definitely used by people at the software company where I worked in the 80's.
    • Re:No (Score:4, Informative)

      by Mononymous ( 6156676 ) on Monday December 26, 2022 @01:38PM (#63158954)

      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.

  • 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

    • by rogoshen1 ( 2922505 ) on Monday December 26, 2022 @02:08PM (#63159070)

      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!

    • 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

  • 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

    • by Bert64 ( 520050 )

      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

    • As far as I know, Windows 11 doesn't support 16 bit apps. There is no 32 bit Windows 11 version, it is a 64 bit OS only, so it no longer contains NTVDM. Will still run 32 bit apps.
    • 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.

      • 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.

    • 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.

  • by Z80a ( 971949 ) on Monday December 26, 2022 @02:26PM (#63159168)

    A more elegant solution would be to patch the game to fix the bug, rather than having an exception written to the memory manager.

    • 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.

      • by narcc ( 412956 )

        This is why you're not in charge of anything important.

      • 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.

        • 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

    • by jo7hs2 ( 884069 )
      Well, yes, but try to remember when this was, a patch would have required distributing said patch -and- getting users to install it. This wasn’t a trivial exercise back when that all but required physical media. Microsoft putting in a compatibility mode for one of the major games of the time effectively solved the problem with one fewer floppy/CD.
      • by Z80a ( 971949 )

        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.

  • by wakeboarder ( 2695839 ) on Monday December 26, 2022 @11:46PM (#63160470)
    For the Weezer video

I've noticed several design suggestions in your code.

Working...