VOGONS

Common searches


First post, by matxer

User metadata
Rank Newbie
Rank
Newbie

* Processor type and speed: AMD Athlon 2 GHz
* Amount and type of RAM: 1 Gb
* Video board w/ RAM amount and type: Radeon 9800 pro 128 Mb
* Sound board: on motherboard
* Operating system: XP SP2
* Game name (and version, if applicable): Tanks! v1.30
* Description of problem: message error: not enough EMS memory (needs 656 k)
* Reproducibility of problem: always
* Sound mode used: I tried with sound disabled, problem remains
* Video mode: forced to 640x480, 256 colors
* Version of emulator: none
* Steps already attempted to solve the problem: tried many things including changing the ems memory value in the properties, disabling startup programs, no sound...

Reply 1 of 16, by eL_PuSHeR

User metadata
Rank l33t++
Rank
l33t++

Some mainboard are unable by design to provide enough room for the EMS window, so you won't get any EMS at all using Windows NTVDM.

Your best bet is to use DOSBox.

Intel i7 5960X
Gigabye GA-X99-Gaming 5
8 GB DDR4 (2100)
8 GB GeForce GTX 1070 G1 Gaming (Gigabyte)

Reply 2 of 16, by matxer

User metadata
Rank Newbie
Rank
Newbie

Thx.
But the DOS Game SPMBT / SPWW2 (The Steel Panthers series, which I highly recommend and are now available for Windows) runsperfectly on my pc without any tweaking. Would that mean that some dos games don't required EMS memory ?

Reply 5 of 16, by Kreshna Aryaguna Nurzaman

User metadata
Rank l33t
Rank
l33t
eL_PuSHeR wrote:

Some mainboard are unable by design to provide enough room for the EMS window, so you won't get any EMS at all using Windows NTVDM.

Wait, this is a new thing to me, and it's actually interesting; how is, exactly, the room for NTVDM's EMS limited by mobo design?

Never thought this thread would be that long, but now, for something different.....
Kreshna Aryaguna Nurzaman.

Reply 6 of 16, by dh4rm4

User metadata
Rank Oldbie
Rank
Oldbie

From what I gather some motherboards either do not properly allocate the required 384K (the EMS 'window') before the end of the first 1MB of RAM or preallocate that area for onboard resources.

Reply 7 of 16, by DosFreak

User metadata
Rank l33t++
Rank
l33t++

Here's dvwjr's expalantion (I've purposely left out the rest of his information at his request in the other thread):

Problem: Windows NT/2K/XP/2003 NTVDM configured for EMS memory does not make available any EMS memory. The EMS page frame is not […]
Show full quote

Problem: Windows NT/2K/XP/2003 NTVDM configured for EMS memory does not make available any EMS memory. The EMS page frame is not allocated, therefore no EMS memory is available for applications. Changes to the PIF file for the NTVDM or its associated CONFIG.NT file have no effect on providing an EMS page-frame for EMS memory.

Description: The Windows NTDETECT.COM and NTLDR detect and enumerate the system memory map at boot time. The NTDETECT.COM performs an Int 15h/AX=E820h BIOS Query System Address Map (if supported) and NTLDR performs a scan of any Option ROMs installed in the System. This information is consolidated and stored in the System Registry during every boot process. This undocumented data is used to instantiate an NTVDM process combined with other data based on custom parameters stored in a PIF file (Program Information File) associated with the particular NTVDM process.

The creation of the NTVDM process involves the use of this System Registry information to map into the NTVDM virtual address space certain required adapter Option ROMs and adapter Memory-Mapped Input/Output (MMIO) registers in the below 1MB virtual address space. The current conservative practice maps all Option ROMs and MMIO registers detailed in the System Registry into the NTVDM process address space - even though they may have no function in the NTVDM process. Legacy third-party VGA adapters have Option ROMs typically located at the 0xC0000 address, however IBM PS/2 models with planar VGA or adapter VGA Option ROM addresses located somewhere in the 0xC0000-0xE0000 memory region. Certain PS/2 microchannel token-ring adapters also had MMIO registers located exclusively in the 0xC0000-0xE0000 address space. These varying Option ROM addresses help explain the conservative exclusion of so many Upper Memory Block addresses during the NTVDM process creation. The video adapter Option ROMs were required to be mapped into the NTVDM address space at the same under 1MB memory address location as the physical address the video adapter occupied at boot time. The allowed for the NTVDM emulation process to allow the video adapter ROM to have exclusive access to most I/O ports for video mode control for VGA and VESA graphics.

The System Registry also identified either PS/2 ABIOS or PC/AT-style extended BIOS support typically located at the 0xE0000-0xF0000 memory address region. The expected PC/AT or PS/2 BIOS 64kB segment located at 0xF0000-0x100000 is also enumerated in the System Registry as an excluded memory region. All of these ROM locations or MMIO registers are excluded from availability as Upper Memory Blocks in the NTVDM virtual memory address space and are the reason for the lack of address space for the location of a 64kB EMS page-frame.

The rest of the thread goes into detail on how to modify your registry to get around this.

The other solution we were doing before this was to disable integrated hardware on the motherboard or to remove PCI devices to free up some space. This worked but was pretty much just a side effect.

How To Ask Questions The Smart Way
Make your games work offline

Reply 9 of 16, by DosFreak

User metadata
Rank l33t++
Rank
l33t++

It's far easier and safer to use DosBox than to be messing around with your registry.

Using DosBox is far easier than trying to get the games to work on a real machine in most cases.

How To Ask Questions The Smart Way
Make your games work offline

Reply 10 of 16, by DosFreak

User metadata
Rank l33t++
Rank
l33t++

If you really must use NTVDM and do not want to use DosBox for some reason and you do not feel like disabling devices in your BIOS or modifying your registry then you can also use EMS Magic:

Topic 14967

Would have mentioned it earlier but I only recently found out about it a couple of weeks ago.

How To Ask Questions The Smart Way
Make your games work offline

Reply 12 of 16, by matxer

User metadata
Rank Newbie
Rank
Newbie

I tested EMS Magic.

Now I have the following error message: 'not enough conventional memory. Needs 526 K'.

The EMS magic doc says that if it can't find room for a 64k contiguous space in the upper memory (or whatever its name), it will use conventional memory.
That may be why I have such an error message, enit ?

Reply 13 of 16, by DosFreak

User metadata
Rank l33t++
Rank
l33t++

How much conventional memory do you have after running EMS magic? Type in "mem" after running it.

How To Ask Questions The Smart Way
Make your games work offline

Reply 14 of 16, by matxer

User metadata
Rank Newbie
Rank
Newbie

That is the strange thing: it says (approximate translation cuz it's in French): max size of executable program 548k.

Whereas tanks.exe needs 526k...

Do the properties of the tanks.exe file have any meaning when tanks.exe is launched from a dos windows, just afer ems magic ?

Reply 15 of 16, by DosFreak

User metadata
Rank l33t++
Rank
l33t++
matxer wrote:

That is the strange thing: it says (approximate translation cuz it's in French): max size of executable program 548k.

Where are you getting that from? Are you telling me the size of the actual game file? If so that's no what we need.

Whereas tanks.exe needs 526k...

You need to go to Start/run/cmd.exe
Surf to the game directory.
Type in "mem".
Report the results here.

Now run EMS Magic in the same box.

Then run "mem" again.

Report the results here.

Do the properties of the tanks.exe file have any meaning when tanks.exe is launched from a dos windows, just afer ems magic ?

Unless you add EMS magic to the autoexec.nt file or you use a custom autoexec.nt file then if you launch "tanks.exe" seperate from EMS Magic then they will not have any effect on each other. Both programs must be run in the same DOS session.

See....this is why we recommend DosBox so much. (When it works which 95+% of the time it does).

How To Ask Questions The Smart Way
Make your games work offline