3 ms·
I've read that Wing Commander anecdote before, and it still doesn't make any sense to me (also I don't remember that original message "Thank you for playing Win
by bananaboy 11y ago
I've read that Wing Commander anecdote before, and it still doesn't make any sense to me (also I don't remember that original message "Thank you for playing Wing Commander" message and every abandonware version I found had a different message - "You step out of the airlock and into.."). It doesn't make sense because EMM386 is the expanded memory manager that came with DOS. It's not something you ship with your game and can hex edit at will. Now if it was a 3rd party library that USED EMM386, and which they didn't have the source for, then that might make sense..
- InclinedPlane 11y agoIn the DOS days the operating system was mostly just a boot loader and a set of tools. Whichever program happened to be running at any given time would have complete control over the system. So a program could simply find out where any other program was in memory and modify it, which for something like changing a string was fairly easy.
- bananaboy 11y agoYeah sure, I know, so I suppose they could have modified the string in memory. But he specifically says that he "hex edited the error in the memory manager itself", which makes it sound like he modified an executable. A programmer wouldn't say he hex edited a string in memory when what he meant was he wrote some code to replace the string in memory.
- rybosome 11y agoMaybe DOS allowed one to to statically link OS-provided libraries? I have no clue, this was way before my time.
- bananaboy 11y agoThere were no OS-provided libraries, only a documented list of software interrupt calls you could use! Ah the old days..
- InclinedPlane 11y agoI assume that part of the story was mangled in the telling/re-telling.
- IvyMike 11y agoThere were third party memory managers that you could use in DOS; for example, QEMM and 386max. I assume Wing Commander was licensing and shipping one of those rather than relying on the stock memory manager. In fact in 1993 MS licensed some technology for later versions of EMM386 from Helix's third party memory manager[0]. [0] https://en.wikipedia.org/wiki/Helix_Software_Company https://en.wikipedia.org/wiki/Helix_Software_Company
- bananaboy 11y agoYeah I used to run QEMM. I don't think anyone would have shipped QEMM or 386max with their game, since they were commercial products for end users. It sounds like, as someone else said, the story was mangled over time.
- chipsy 11y agoEMM386 only became the defacto standard for games around 1993 or so. Prior to that developers would purchase or create a solution from scratch to deal with the rapidly shifting PC development environment. A decent chunk of the market was still on 286, and this was the most likely target for the first Wing Commander (1990) - later games from Origin such as Ultima 7 and Privateer continued using memory extenders branded "Voodoo" and "JEMM" that were known to run in unreal mode[0] - they were generally a nightmare for users as they were less stable than EMM386 and typically had a huge conventional memory minimum requirement, but it was tolerated as what one had to go through to play high end PC games. [0] http://wiki.ultimacodex.com/wiki/Voodoo_Memory_Manager http://wiki.ultimacodex.com/wiki/Voodoo_Memory_Manager
- bananaboy 11y agoRight, yeah that makes sense then. Since WC also ran on a 286, they must have created or licensed an EMS library.