• Please review our updated Terms and Rules here

Expanded Memory on 286 running Wing Commander

Fanatik

Experienced Member
Joined
Jan 28, 2018
Messages
223
I'm running into an issue trying to run Wing Commander. If I load without EMS it runs fine, but without the extra effects. When I set the 286 up to use 1 mb of EMS it freezes before loading. It recognizes that there is expanded memory and that it is fully used but doesn't load. I've included a screenshot showing that EMS is setup. IMG_20181123_190731.jpg
 
Wing Commander documentation states it was only tested with Intel and Everex implementations of EMS. Other EMS implementations may not work; I am pretty sure the IBM XMA2EMS did not.

Run MSD (Microsoft Diagnostics) or similar program and see what the memory allocation is.

Is the 286 locking up when you do EMS or is Wing Commander locking up when it is looking for EMS?
 
Removing the himem.sys worked, although after I installed the ESS Audiodrive card and ran the setup I get a parity error. Wing Commander 2 say I don't have enough memory even though I have 4 megs...
 
Now I'm back to getting a parity error and it won't even load. WC2 won't load with the EMS disabled or enabled. It states that I don't have enough memory. I have 4 mbs, more than enough.
 
You may have some bad memory. You should run a test to determine if this is the case. The parity error is the indication that there is a memory problem.

What memory expansion card are you using?

Do you have something else to try in its place?
 
I'm not running an expansion card. It's 286 DTK mb, Lo Tec XT-ide w/4gb cf, 4 mbs ram installed on the board, Trident VGA card, and an ESS sound card.
 
SIMMS or DRAM?

Do you have others you can replace the current ones with for testing purposes?

In any case, run a memory test. CheckIt should suffice.
 
Wing Commander runs on a 286; I did that. The CD version I have claims the minimum system was an XT at 12 MHz so a good 286 is more than sufficient.
 
"4 MB on the board" implies it's XMS, not EMS. You won't get EMS from that unless there's an option in the BIOS to use some of it for EMS, or you load a driver that emulates EMS using XMS (this is what EMM386 does, but you can't use that on a 286 -- this would likely be a utility unique to your motherboard).
 
EMM286 is an emulator. Wing Commander likely requires hardware EMS with paging for decent performance.

What hasn't been fully established by Fanatik is what the hardware setup is. Is the C&T EMS implementation built into the motherboard? Is a set amount of memory dedicated to EMS in the BIOS setup, like some late 286s and early 386s/386sxs? Is the board a C&T board?

Fanatik should run an EMS testing program to see if every EMS function passes. I found ftp://ftp.oldskool.org/pub/misc/Software/Utils/testems.zip and the EMSTEST program appears to be valid for most flavors of EMS. The OEMSTEST program is a bit more hard-core and I'd like to run it on my Intel Aboveboard before considering it appropriate as a second test.

Wing Commander 2 say I don't have enough memory even though I have 4 megs

It's complaining about free DOS memory. When you removed HIMEM.SYS you forced DOS to load into the lower 640k so you probably don't have 580KB or more free. Keep it loaded for now.
 
I suspect he does have hardware EMS via a C&T chipset. Note that his screenshot shows only 2MB of extended and 1MB conventional memory (640K + 384K) which adds up to only 3MB. The C&T EMS driver claims that there's 1MB available EMS memory, which brings the total to 4MB -- all accounted for. No idea why it's not working though.
 
286's that could simultaneously provide EMS and XMS from the the motherboard memory always seemed like an odd breed to me. Most of the 286's I personally encountered either did not support EMS or only did one or the other depending on switch settings.

I'm not surprised that a program would freak out if it detected both.

If the program really requires a large amount of free base (640k) memory without XMS then it may be necessary to run it under an earlier version of DOS such as 3.3 or 3.31.

Looking at the release dates, Wing Commander was released a bit before MS-DOS 5.0. So it might not have taken its use of XMS/HMA in to consideration.
 
More likely, the user is loading additional programs but not loading DOS high to make room for them. Unloading himem.sys, but doing nothing else, doesn't solve the problem -- unloading himem and also commenting-out resident programs and drivers can get you to 580K or more free in DOS 5 and higher.
 
EMM286 is an emulator. Wing Commander likely requires hardware EMS with paging for decent performance.
Well, does it or doesn't it?

Stating that adds nothing to obtaining a resolution.

What leads you to believe that hardware EMS is required here?
 
The manual indicates that only a limited selection of EMS cards will work specifying only Intel and Everex in addition to a couple of 386 memory managers. C&T 286 chipset is not in the list of supported EMS.
 
What leads you to believe that hardware EMS is required here?
It is a game. Most programs developed for EMS assumed near instantaneous bank switching speeds. Emulators don't bank switch at all, but rather copy data back and forth between a buffer in base 640k and XMS. I can't help but wonder if he were to leave it running a few days if the program might eventually finish loading.

EMS emulators were fairly useless for games, but worked for some spreadsheets or applications that did not actually need such rapid memory access.

I also seem to recall some programs having expectations about where in the 8086 1MB addressable area the pages could be mapped. Certainly some programs had expectation about how many pages were mapped at once, the size of the page window, and other such factors that could vary between EMS cards or chipsets. If the hardware or driver did not match those expectations exactly, the program would fail. And, of course, usually not tell you why.
 
Back
Top