VOGONS


First post, by darry

User metadata
Rank l33t++
Rank
l33t++

As the subject says, I am trying to get the demo Amnesia by Renaissance to run on my Pentium 3 Tualatin 1400 with 512MB of RAM machine with caches disabled.

The readme says to run without emm386.exe or even himem.sys , so I have tried running with them on pure DOS 7.1 (Windows 98 SE), but I get a very helpful error message saying that 640KB of RAM is required . When I try to run with himem.sys, to load DOS high, I get the same error .

Next, I tried boot off a DOS 5.0 floppy and tried running the demo from a floppy and got the same error, whether running without or without himem.sys .

Just to be clear, both with my DOS 7.1 and 5.0 tests, nothing was being loaded from config.sys or autoexec.bat (except himem.sys when testing with it) .

Is the error message a red herring and the issue lies elsewhere (too much RAM, still too fast) ?

EDIT : I know it runs fine in DOSBOX

Last edited by darry on 2020-04-30, 21:08. Edited 1 time in total.

Reply 1 of 8, by derSammler

User metadata
Rank l33t
Rank
l33t

What's the output of "mem"?

Some programs may fail if there's too much RAM. It may not like your 512 MB of total RAM, hence giving you a standard error that at least 640 KB are needed. The value of 640 KB does certainly not refer to the free conventional memory needed, as on a standard PC, you can never have 640 KB *free*.

Reply 2 of 8, by konc

User metadata
Rank l33t
Rank
l33t

Memory is not the issue with this, the message is misleading. It's a pain in the ass to run it on real hardware, your best bet is a real 386, it won't run on Pentiums even on many 486s regardless of speed (disabling caches etc won't help) . I don't know what exactly is the problem and therefore if something can be adjusted so that it runs, only that it doesn't.

Reply 3 of 8, by darry

User metadata
Rank l33t++
Rank
l33t++
derSammler wrote on 2020-04-30, 08:53:

What's the output of "mem"?

Some programs may fail if there's too much RAM. It may not like your 512 MB of total RAM, hence giving you a standard error that at least 640 KB are needed. The value of 640 KB does certainly not refer to the free conventional memory needed, as on a standard PC, you can never have 640 KB *free*.

I am well aware I can never have 640KB free. With himem.sys and umbpci.exe, I can get about 620KB free according to mem . I get about 550KB free when booting with shift-f5 (without himem.sys and with DOS loaded low) when using DOS 7.1 .

One thing that I have noticed is that I do not actually have 640KB total conventional memory on either the Ipox 3ETI23 or Asus P3B-F, according to the mem command, I have 645120 bytes total conventional memory on the Ipox and 634880 bytes on the Asus when using the same DOS 5.0 boot disk . My first reaction was "boot sector virus", but F-Prot 3.16 (definitions from 2005) finds nothing .

I can live with not being able to run Amnesia, but that conventional memory thing has got me worried . I was expecting 655360 bytes total conventional memory on both machines .

Last edited by darry on 2020-04-30, 19:43. Edited 1 time in total.

Reply 4 of 8, by darry

User metadata
Rank l33t++
Rank
l33t++

EDIT: I get 655360 bytes total in Virtualbox (using an image of the DOS 5.0 boot floppy), so not a bootsector virus .
EDIT2 : posted wrong output for virtualbox, now fixed

Ipox 3ETI23 (DOS 5.0 boot disk)

MS-DOS Version 5.00
Revision A
DOS is in low memory


645120 bytes total conventional memory
645120 bytes available to MS-DOS
581680 largest executable program size

67043328 bytes total contiguous extended memory
67043328 bytes available contiguous extended memory

Conventional Memory :

Name Size in Decimal Size in Hex
------------- --------------------- -------------
MSDOS 58352 ( 57.0K) E3F0
COMMAND 4704 ( 4.6K) 1260
FREE 128 ( 0.1K) 80
FREE 64 ( 0.1K) 40
FREE 581680 (568.0K) 8E030

Total FREE : 581872 (568.2K)

Total bytes available to programs : 581872 (568.2K)
Largest executable program size : 581680 (568.0K)

67043328 bytes total contiguous extended memory
67043328 bytes available contiguous extended memory

Asus P3B/F (DOS 5.0 boot disk)

MS-DOS Version 5.00
Revision A
DOS is in low memory


634880 bytes total conventional memory
634880 bytes available to MS-DOS
571440 largest executable program size

67043328 bytes total contiguous extended memory
67043328 bytes available contiguous extended memory

Conventional Memory :

Name Size in Decimal Size in Hex
------------- --------------------- -------------
MSDOS 58352 ( 57.0K) E3F0
COMMAND 4704 ( 4.6K) 1260
FREE 128 ( 0.1K) 80
FREE 64 ( 0.1K) 40
FREE 571440 (558.0K) 8B830

Total FREE : 571632 (558.2K)

Total bytes available to programs : 571632 (558.2K)
Largest executable program size : 571440 (558.0K)

67043328 bytes total contiguous extended memory
67043328 bytes available contiguous extended memory

Virtualbox 6.1 (DOS 5.0 boot disk)


MS-DOS Version 5.00
Revision A
DOS is in low memory


655360 bytes total conventional memory
654336 bytes available to MS-DOS
590896 largest executable program size

32505856 bytes total contiguous extended memory
32505856 bytes available contiguous extended memory

Conventional Memory :

Name Size in Decimal Size in Hex
------------- --------------------- -------------
MSDOS 58352 ( 57.0K) E3F0
COMMAND 4704 ( 4.6K) 1260
FREE 128 ( 0.1K) 80
FREE 64 ( 0.1K) 40
FREE 590896 (577.0K) 90430

Total FREE : 591088 (577.2K)

Total bytes available to programs : 591088 (577.2K)
Largest executable program size : 590896 (577.0K)

32505856 bytes total contiguous extended memory
32505856 bytes available contiguous extended memory

Reply 5 of 8, by darry

User metadata
Rank l33t++
Rank
l33t++

I ran some more tests with a DOS 7.1 bootable HDD image in DOSBOX 0.74 and in an old build DOSBOX Daum (for the large RAM support) .
Observations :
When booted in DOS 7.1 :
- Amnesia runs fine with himem.sys loaded and 512MB of RAM in Dosbox Daum (did not check the sound).
- Amnesia runs fine with himem.sys loaded and 64MB of RAM Dosbox 0.74 (did not check the sound)
- The amount of TOTAL conventional memory in both cases is 640KB .
- The amount of FREE conventional memory in both cases is 602KB

My guess is that there is a check for TOTAL conventional memory in Amnesia . Why ? Who knows ?

DOSBOX 0.74 (running DOS 7.1)

Windows 98 [Version 4.10.2222]
Revision A
DOS is in HMA

Memory Type Total Used Free
---------------- -------- -------- --------
Conventional 640K 38K 602K
Upper 0K 0K 0K
Reserved 384K 384K 0K
Extended (XMS) 63,488K 68K 63,420K
---------------- -------- -------- --------
Total memory 64,512K 490K 64,022K

Total under 1 MB 640K 38K 602K

Largest executable program size 602K (616,576 bytes)
Largest free upper memory block 0K (0 bytes)
MS-DOS is resident in the high memory area.

Modules using memory below 1 MB:

Name Total Conventional Upper Memory
-------- ---------------- ---------------- ----------------
MSDOS 17,216 (17K) 17,216 (17K) 0 (0K)
HIMEM 1,168 (1K) 1,168 (1K) 0 (0K)
DBLBUFF 2,976 (3K) 2,976 (3K) 0 (0K)
IFSHLP 2,864 (3K) 2,864 (3K) 0 (0K)
COMMAND 7,328 (7K) 7,328 (7K) 0 (0K)
KEYB 6,944 (7K) 6,944 (7K) 0 (0K)
Free 616,704 (602K) 616,704 (602K) 0 (0K)

Memory Summary:

Type of Memory Total Used Free
---------------- ----------- ----------- -----------
Conventional 655,360 38,656 616,704
Upper 0 0 0
Reserved 393,216 393,216 0
Extended (XMS) 65,011,712 69,632 64,942,080
---------------- ----------- ----------- -----------
Total memory 66,060,288 501,504 65,558,784

Total under 1 MB 655,360 38,656 616,704

Largest executable program size 616,576 (602K)
Largest free upper memory block 0 (0K)
MS-DOS is resident in the high memory area.

Reply 6 of 8, by darry

User metadata
Rank l33t++
Rank
l33t++

I removed the hard disk controller (PROMISE Fastrack S150 SX4, as the machine normally runs XP) from the P3B-F machine, booted from a floppy again (DOS 5.0) and guess what ? 655360 bytes total conventional memory !

I ran Amnesia.exe and it worked !

So Amnesia really has a (IMHO pointlessly irritating) check for TOTAL conventional memory and if you don't have 640KB, you are SOL .

The issue is probably similar in my other system, where I have a SIL3114 SATA controller, which probably decreases the conventional memory pool by 10KB .

I got the idea from here .
https://www.rigacci.org/docs/biblio/online/fi … re/mem-conv.htm

Reply 7 of 8, by darry

User metadata
Rank l33t++
Rank
l33t++

Just for fun, I threw all of the exe unpackers I could find at the amnesia.exe, but nothing worked, so it probably uses some custom exe packer or obfuscator . I was hoping it might be easy to patch, but apparently not .