VOGONS


First post, by squelch41

User metadata
Rank Member
Rank
Member

I'm perplexed!

I have SuperStardust 96 - it requires EMS to run.
On my 486 running DOS 7, it runs with EMM386 running - fine (but, as it seems to be a rather buggy game, it crashes after the second tunnel sequence)

So, I thought I'd run it on my P3 also running DOS 7
However, I couldnt get EMS memory to appear with EMM386. I tried all sorts of things but couldnt get EMS support working.

Anyway, it turns out that the sound card TSR (I have a PCI Trident sound card) called waveinit seems to remove all EMS
If I step through boot up and skip waveinit, I can see EMS when I run mem.exe
If I load waveinit, the EMS disappears.
If I unload waveinit, the EMS reappears again.

I really dont understand what is going on!
Is there any way to stop waveinit making the emm386 only provide XMS? Waveinit is required for the soundcard to work in DOS.
I'm not so bothered about getting the game to work, I just want to understand how this works!

Thanks

V4P895P3 VLB Motherboard AMD 486 133MHz
64mb RAM, CF 4Gb HDD,
Realtek 8019 ethernet + XT-IDE bios ROM, ES1869 soundcard, VLB Cirrus Logic GD5428 1mb VGA

440bx MSI 6119, modified slocket , Tualitin Celeron 1.2Ghz 256mb SD-RAM, CF 4GB HDD, FX5200 gfx

Reply 1 of 12, by jakethompson1

User metadata
Rank Oldbie
Rank
Oldbie

You can only have one x86 virtual machine monitor in control of the system at once (otherwise it's like having two OS kernels in control of the hardware at the same time). I suspect waveinit is also one of these (because it needs to virtualize access to sound card i/o ports, etc.) and takes over from emm386 which is another. What if you run the game from a Win9x DOS box instead of in pure DOS mode?

Reply 2 of 12, by squelch41

User metadata
Rank Member
Rank
Member
jakethompson1 wrote on 2023-03-02, 22:19:

You can only have one x86 virtual machine monitor in control of the system at once (otherwise it's like having two OS kernels in control of the hardware at the same time). I suspect waveinit is also one of these (because it needs to virtualize access to sound card i/o ports, etc.) and takes over from emm386 which is another. What if you run the game from a Win9x DOS box instead of in pure DOS mode?

It crashes - the game warns you that it isnt designed to run in a windows dos box and then goes on to prove it!

Is this the case for all soundcard TSRs then? Presume then no PCI sound cards can be used with EMS-requiring games?

V4P895P3 VLB Motherboard AMD 486 133MHz
64mb RAM, CF 4Gb HDD,
Realtek 8019 ethernet + XT-IDE bios ROM, ES1869 soundcard, VLB Cirrus Logic GD5428 1mb VGA

440bx MSI 6119, modified slocket , Tualitin Celeron 1.2Ghz 256mb SD-RAM, CF 4GB HDD, FX5200 gfx

Reply 4 of 12, by jakethompson1

User metadata
Rank Oldbie
Rank
Oldbie
squelch41 wrote on 2023-03-02, 22:30:
jakethompson1 wrote on 2023-03-02, 22:19:

You can only have one x86 virtual machine monitor in control of the system at once (otherwise it's like having two OS kernels in control of the hardware at the same time). I suspect waveinit is also one of these (because it needs to virtualize access to sound card i/o ports, etc.) and takes over from emm386 which is another. What if you run the game from a Win9x DOS box instead of in pure DOS mode?

It crashes - the game warns you that it isnt designed to run in a windows dos box and then goes on to prove it!

Is this the case for all soundcard TSRs then? Presume then no PCI sound cards can be used with EMS-requiring games?

Shrug. On the contrary, seems some of them even require emm386: Recommend a PCI Sound Card for DOS
Perhaps it's a different issue.

Reply 5 of 12, by tomcattech

User metadata
Rank Member
Rank
Member
kolderman wrote on 2023-03-02, 22:53:

Doubt it. Plenty of people use SB Lives in DOS, never heard of this issue before.

I was thinking this myself.

I would think this has more to do with "waveinit".... maybe there is a switch you can add to the command to make it play nicely and\or have it load in the correct memory location?

Last edited by tomcattech on 2023-03-02, 23:03. Edited 1 time in total.

Reply 6 of 12, by Horun

User metadata
Rank l33t++
Rank
l33t++

I just hexed v4.05 of Waveint.exe from the Trident 4Dwave package and inside are these line plus some others:
"WARNING: EMM386 is running ... You may need to remove EMM386. from CONFIG.SYS and reboot your system... "
"WARNING: EMM386 is running ... Your Wave board may not work correctly on. 440LX-based systems with some DOS games. You may need to remove EMM386. from CONFIG.SYS and reboot your system..."
Hmm...

Hate posting a reply and then have to edit it because it made no sense 😁 First computer was an IBM 3270 workstation with CGA monitor. Stuff: https://archive.org/details/@horun

Reply 7 of 12, by tomcattech

User metadata
Rank Member
Rank
Member
Horun wrote on 2023-03-02, 22:58:
I just hexed v4.05 of Waveint.exe from the Trident 4Dwave package and inside are these line plus some others: "WARNING: EMM386 i […]
Show full quote

I just hexed v4.05 of Waveint.exe from the Trident 4Dwave package and inside are these line plus some others:
"WARNING: EMM386 is running ... You may need to remove EMM386. from CONFIG.SYS and reboot your system... "
"WARNING: EMM386 is running ... Your Wave board may not work correctly on. 440LX-based systems with some DOS games. You may need to remove EMM386. from CONFIG.SYS and reboot your system..."
Hmm...

Well that's a new one..... SB Live for the win! 🤣

Reply 8 of 12, by squelch41

User metadata
Rank Member
Rank
Member
Horun wrote on 2023-03-02, 22:58:
I just hexed v4.05 of Waveint.exe from the Trident 4Dwave package and inside are these line plus some others: "WARNING: EMM386 i […]
Show full quote

I just hexed v4.05 of Waveint.exe from the Trident 4Dwave package and inside are these line plus some others:
"WARNING: EMM386 is running ... You may need to remove EMM386. from CONFIG.SYS and reboot your system... "
"WARNING: EMM386 is running ... Your Wave board may not work correctly on. 440LX-based systems with some DOS games. You may need to remove EMM386. from CONFIG.SYS and reboot your system..."
Hmm...

hmm, I'm running 3.97 - didn't realise was a newer version!
Will have to give it a try and see what happens!

V4P895P3 VLB Motherboard AMD 486 133MHz
64mb RAM, CF 4Gb HDD,
Realtek 8019 ethernet + XT-IDE bios ROM, ES1869 soundcard, VLB Cirrus Logic GD5428 1mb VGA

440bx MSI 6119, modified slocket , Tualitin Celeron 1.2Ghz 256mb SD-RAM, CF 4GB HDD, FX5200 gfx

Reply 9 of 12, by Jo22

User metadata
Rank l33t++
Rank
l33t++
jakethompson1 wrote on 2023-03-02, 22:55:
squelch41 wrote on 2023-03-02, 22:30:
jakethompson1 wrote on 2023-03-02, 22:19:

You can only have one x86 virtual machine monitor in control of the system at once (otherwise it's like having two OS kernels in control of the hardware at the same time). I suspect waveinit is also one of these (because it needs to virtualize access to sound card i/o ports, etc.) and takes over from emm386 which is another. What if you run the game from a Win9x DOS box instead of in pure DOS mode?

It crashes - the game warns you that it isnt designed to run in a windows dos box and then goes on to prove it!

Is this the case for all soundcard TSRs then? Presume then no PCI sound cards can be used with EMS-requiring games?

Shrug. On the contrary, seems some of them even require emm386: Recommend a PCI Sound Card for DOS
Perhaps it's a different issue.

Some memory managers in the fashion of EMM386, 386Max and QEMM do have an API for that, I vaguely remember.
So special applications can make use of their trapping capabilities.
Utilities like SoftMpu or TEMU can use some of them, I believe.
Maybe some versions of WaveInit can co-exist that way, while others can't. 🤷‍♂️

"Time, it seems, doesn't flow. For some it's fast, for some it's slow.
In what to one race is no time at all, another race can rise and fall..." - The Minstrel

//My video channel//

Reply 10 of 12, by squelch41

User metadata
Rank Member
Rank
Member
Horun wrote on 2023-03-02, 22:58:
I just hexed v4.05 of Waveint.exe from the Trident 4Dwave package and inside are these line plus some others: "WARNING: EMM386 i […]
Show full quote

I just hexed v4.05 of Waveint.exe from the Trident 4Dwave package and inside are these line plus some others:
"WARNING: EMM386 is running ... You may need to remove EMM386. from CONFIG.SYS and reboot your system... "
"WARNING: EMM386 is running ... Your Wave board may not work correctly on. 440LX-based systems with some DOS games. You may need to remove EMM386. from CONFIG.SYS and reboot your system..."
Hmm...

Where did you find version 4.05?
I can only find 3.97
Would you mind posting a link?
thanks!

V4P895P3 VLB Motherboard AMD 486 133MHz
64mb RAM, CF 4Gb HDD,
Realtek 8019 ethernet + XT-IDE bios ROM, ES1869 soundcard, VLB Cirrus Logic GD5428 1mb VGA

440bx MSI 6119, modified slocket , Tualitin Celeron 1.2Ghz 256mb SD-RAM, CF 4GB HDD, FX5200 gfx

Reply 11 of 12, by Horun

User metadata
Rank l33t++
Rank
l33t++

From Driverguide. Sorry the TRIDWNW.VXD and tridwave.drv are v 4.06.204, do not know the version of Waveint.exe.
Somewhere in the package was reference to v4.05, maybe it was the right-click properties on one of the .vxd....

Hate posting a reply and then have to edit it because it made no sense 😁 First computer was an IBM 3270 workstation with CGA monitor. Stuff: https://archive.org/details/@horun

Reply 12 of 12, by X3J11

User metadata
Rank Newbie
Rank
Newbie
squelch41 wrote on 2023-03-02, 22:10:
I'm perplexed! […]
Show full quote

I'm perplexed!

I have SuperStardust 96 - it requires EMS to run.
On my 486 running DOS 7, it runs with EMM386 running - fine (but, as it seems to be a rather buggy game, it crashes after the second tunnel sequence)

So, I thought I'd run it on my P3 also running DOS 7
However, I couldnt get EMS memory to appear with EMM386. I tried all sorts of things but couldnt get EMS support working.

Anyway, it turns out that the sound card TSR (I have a PCI Trident sound card) called waveinit seems to remove all EMS
If I step through boot up and skip waveinit, I can see EMS when I run mem.exe
If I load waveinit, the EMS disappears.
If I unload waveinit, the EMS reappears again.

I really dont understand what is going on!
Is there any way to stop waveinit making the emm386 only provide XMS? Waveinit is required for the soundcard to work in DOS.
I'm not so bothered about getting the game to work, I just want to understand how this works!

Thanks

EMM386 doesn't provide Extended Memory (XMS), that's HIMEM'S job. Expanded Memory (EMS) was originally provided by add-in cards and a driver to provide the necessary interrupts to work with said cards. EMM386 simulates expanded memory using extended memory. To do this, it has to put the processor in V86 mode, a virtualized real-mode. There are a handful of games and programs that don't like running in V86 mode, and your sound card's waveinit tsr appears to be one of them.

If your sound card and motherboard support PCPCI/SBLINK (look for a 3x2 pin header on both labelled as one or the other) you should be able to use that to get around the need for waveinit to take control of the processor (I'm guessing it needs to put the cpu in V86 for its own use). This requires an appropriate cable to connect the sound card to the motherboard, and an invocation of the waveinit tsr with /p /v, as described here: Re: Which PCI sound card is best for DOS/98SE games?.

Otherwise it doesn't look like your sound card will play nice with games that utilize EMS.