First post, by Chaosbreaker
Hey everyone,
I've been lurking around on this site since forever, because more than once I've been able to find
a solution or workaround for a retrogaming problem I have been facing every now and then.
Decided to create an account now, because I'm having a problem that I just can't wrap my head around.
Disclaimer: During the golden age of DOS gaming, I was about 5 or 6, and although I've tinkered quite
a bit with systems back in the day, I never actually *really* knew what I was doing.
Long story short; I recently bought a brand new, sealed, never used Gateway Solo PIII laptop that I'm
*really* happy with. Replaced the harddrive with something a little heftier than standard, and crammed
it full with dos and early windows games.
As was to be expected, some games reintroduced me to the challenges that oldschool gaming posed
every now and again, with things like memory management and the such. Kinda 'relearned' how
everything worked, so had little problems.
But then came TES: Arena. It requires EMS to function, and also needs a whopping 603K of conventional
memory to not-crash. I've been able to accomplish one, and the other, but never at the same time.
Whenever I set config.sys to have DEVICE=C:\DOS\EMM386.EXE NOEMS, I have around 617K of
conventional memory, which is more than enough for Arena to run, but Arena needs EMS.
Loading all the programs that I've set up to load into the upper memory in config.sys and autoexec.bat
behave like they should, though.
HOWEVER
I enable EMS by changing config.sys to DEVICE=C:\DOS\EMM386.EXE RAM and my mem /c |more
output shows that absolutely *NOTHING* get's loaded into the upper memory, while all pointers in config.sys
and autoexec.bat are in fact set to load into the upper memory. This leaves me with only around 550K of
conventional memory, and is sure to crash the game whenever things get a bit 'busy' (like opening a map with
a lot of notes).
I have tried to use/install third party memory managers (QEMM, 386MAX, JEMM386 and JEMMEX), but I am
afraid they are (in one way or another) incompatible with the relatively modern hardware I'm using (ESS1980
soundcard, S3 Savage videocard, 192MB Ram). JEMM386 and JEMMEX seem to be violently incompatible with
Arena and just spew tons of text strings before brutally halting in an OVERFLOW. Shame, because especially
JEMMEX seemed to leave generous amounts of conventional memory intact. Having tried all these things,
it seems that 'good old' emm386 is my only viable option left.
Additional information: I have been playing around with the order of lines in config.sys and autoexec.bat, and
I have also been able to use CTMOUSE as a lightweight mouse driver, VIDE-CDD as a lightweight CD-driver and
the such, to minimize overhead and experiment with the results.
Besides of getting Arena work, I *really* want to know if the output I'm getting using mem /C |MORE
when EMM386 is set to RAM is normal. Is it normal that everything that I try to load into the upper memory
works fine when EMM386 is set to NOEMS, but whenever I set EMM386 to RAM, nothing seems to be loaded
into the upper memory anymore? Am I misunderstanding how this is supposed to work to begin with?
Additional info:
Memory information output in dos with EMM386 set to NOEMS (EMS off)
Modules using memory below 1 MB:
Name Total Conventional Upper Memory
MSDOS 16221 (16k) 16221 (16k) 0 (0k)
HIMEM 1120 (1k) 1120 (1k) 0 (0K)
EMM386 3120 (3k) 3120 (3k) 0 (0k)
COMMAND 2928 (3k) 2928 (3k) 0 (0k)
VIDE-CDD 20528 (20k) 0 (0k) 20528 (20k)
DISPLAY 8336 (8k) 0 (0k) 8336 (8k)
SETVER 448 (0k) 0 (0k) 448 (0k)
CTMOUSE 3104 (3k) 0 (0k) 3104 (3k)
MSCDEX 25888 (25k) 0 (0k) 25888 (25k)
Free 631808 (617k) 629808 (615k) 2000 (2k)
Memory information output in dos with EMM386 set to RAM (EMS on)
Modules using memory below 1 MB:
Name Total Conventional Upper Memory
MSDOS 16269 (16k) 16269 (16k) 0 (0k)
HIMEM 1120 (1k) 1120 (1k) 0 (0K)
EMM386 8368 (8k) 8368 (8k) 0 (0k)
COMMAND 2928 (3k) 2928 (3k) 0 (0k)
VIDE-CDD 20496 (20k) 20496 (20k) 0 (0k)
DISPLAY 8304 (8k) 8304 (8k) 0 (0k)
SETVER 416 (0k) 416 (0k) 0 (0k)
CTMOUSE 3104 (3k) 3104 (3k) 0 (0k)
MSCDEX 27952 (27k) 27952 (27k) 0 (0k)
Free 564304 (551k) 564304 (551k) 0 (0k)
The annoying fact that I've tried about 200 different combinations and have spent
a couple of weeks to get this to work is slowly driving me mad, because I have the
feeling I'm overlooking something, or maybe just don't understand a simple
element yet. It feels like I'm so close and I really want to make it work.
That said, I am pretty much able to play *every other game* in native DOS 6.22
and windows, but the completionist in me just wants to be able to add this game
to my "working library" of old games. It's nothing short of a compulsion, really 😜
Phew... That post turned out to be way longer than I imagined beforehand 😁