VOGONS

Common searches


First post, by jonaszoon

User metadata
Rank Newbie
Rank
Newbie

It's not really a big problem, but I'm really curious why/how this happens. I've had this problem with Sierra's 'newer' games, using the SCI system. But I'm not excluding the possibility of other DOS-based games having these same problems.

It goes like this: I boot up a Sierra SCI game. While playing them, sometimes, at certain point, the game reports errors (files not found, etc.). This is not always the case. What is always the case however, is that at a certain point, I'll get thrown back to my XP desktop, and all(!) my background apps (e.g. Total Commander, DC++, MSN Messenger) are having weird or random fatal errors! Besides that, the computer is extremely slow, that is, until you close the game. I'm having this behaviour on both my computers, one with Windows XP SP1 and the other one with SP2.

Is this somekind of XP-related memory leak or faulty memory allocation? I'm no expert on the inner workings of an OS by any means, but if this is the case, isn't this a rather 'dangerous' situation that shouldn't be happening at all?

Reply 2 of 4, by dvwjr

User metadata
Rank Member
Rank
Member
jonaszoon wrote:

It's not really a big problem, but I'm really curious why/how this happens...

...the computer is extremely slow, that is, until you close the game. I'm having this behaviour on both my computers, one with Windows XP SP1 and the other one with SP2.

Is this somekind of XP-related memory leak or faulty memory allocation? I'm no expert on the inner workings of an OS by any means, but if this is the case, isn't this a rather 'dangerous' situation that shouldn't be happening at all?

It is a big problem for Windows XP and I have been tracking it for a while...

What appears to be happening is that older DOS programs running in the NTVDM are at some point being given access to the real (A)PIC and timer instead of the NTVDM emulations. I do not know if this is from a change in the NTVDM IOPM, but it does happen. I ran a dos slowdown program at max settings (it functions by reprogramming the timer) in the WinXP NTVDM sub-system and watched WinXP itself SLOW to a stand-still until I rebooted the system. I was suprised that a real-mode bit-twiddling hack could breakout of the NTVDM sandbox, but it did so...

The next time I executed this particular DOS slowdown utility in an NTVDM environment, nothing happened - just as I expected. This also explains some of the 'black screens' that happen *randomly* with some DOS games when using the NTVDM environment.

More later,

dvwjr

Reply 3 of 4, by DosFreak

User metadata
Rank l33t++
Rank
l33t++

I've also seen some games in NTVDM eat up memory like crazy. These are usually DPMI games. Last time it happened IIRC, all of my physical memory was used up and pagefile size was slowly increasing to 2gb+ before I stopped it. heh. 😀

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

Reply 4 of 4, by dvwjr

User metadata
Rank Member
Rank
Member
DosFreak wrote:

I've also seen some games in NTVDM eat up memory like crazy. These are usually DPMI games. Last time it happened IIRC, all of my physical memory was used up and pagefile size was slowly increasing to 2gb+ before I stopped it. heh. 😀

Yep. That's what stops Syndicate Wars from running successfully under the NTVDM. Two things do it, the DPMI v0.90 spec that Microsoft implemented in the form of DOSX.EXE and any DPMI application that puts the stack segment/pointer at the top of all requested memory. The NTVDM DPMI then creates backing store for all memory below the stack pointer.

It can be fixed, just as the supposed lack of EMS memory due to no page frame being available in the NTVDM. I have code that fixes the EMS "problem" that is going into a project... The DOSX.EXE DPMI is another fix I'll finish after I my restoration of a certain DOS game is finished.

dvwjr