VOGONS


Reply 20 of 23, by Simon Hradecky

User metadata
Rank Newbie
Rank
Newbie

Not knowing, whether Wing Commander needs expanded memory (EMS) for creating sounds, I can't be sure, whether my findings help ...

For AS2 I have found out, that the sound problems there (e.g. already brought to this forum's attention by Patrick Warner) were primarily caused by a "new feature" of Windows XP, placing the page frame (EMS) at an invalid segment, namely CF00, whereas the EMS LIM Standard, no matter which version, requires the page frame to be located at a 16kB boundary (so, C000, C400, C800, CC00, D000, D400, D800, DC00, E000, ...).

That invalid page frame confuses hell out of address computation and especially causes problems with DMA, if the sound boards are fed directly via DMA from expanded memory.

I have fixed AS2 to detect the invalid page frame and improved address computation as well as checked for possible DMA transfer issues (violating DMA boundaries), thus fixing the issue for AS2. I am sure, that other users and developers are similiarly puzzled over things and looking into Hardware issues rather than spotting the WinXP's latest funny (that presumably intruded somewhere along the recent patches in the past 6 months in both SP1 and SP2) and therefore don't find the source of their hassles. It took me close to a month in discussions and debug sessions with very patient users (Thanks, Patrick!) and a lucky punch, when one of my development machines (where I had ensured WinXP compatibility several years ago and which I knew worked, and that machine was never changed hardware wise) developed the same trouble giving me a chance to work directly hands on ...

Simon

Reply 21 of 23, by MiniMax

User metadata
Rank Moderator
Rank
Moderator

Thanks for the info, Simon. I will do some tests later and see where VDMSound places the page frames, and if changing the base address makes any difference.

DOSBox 60 seconds guide | How to ask questions
_________________
Lenovo M58p | Core 2 Quad Q8400 @ 2.66 GHz | Radeon R7 240 | LG HL-DT-ST DVDRAM GH40N | Fedora 32

Reply 22 of 23, by MiniMax

User metadata
Rank Moderator
Rank
Moderator

All this memory management is highly confusing!! I can run WC3 without EMS, but not without DPMI (DOS Protected Mode Interface) which I assume is a modern, more cooperative way of making lots of memory available?

I had a look at the EMS page frame, and you are 100% correct about the misalignment. On my system, the pageframe starts at 0xCE00.

Unfortunately, I have not been able to move the start of the pageframe. I have tried disabling additional on-board devices, and I have enabled/disabled various other memory settings in the VDMSound Launchpad, but it changes nothing 🙁

Attachments

  • MSD (EMS = CE00).png
    Filename
    MSD (EMS = CE00).png
    File size
    18.95 KiB
    Views
    1261 views
    File license
    Fair use/fair dealing exception

DOSBox 60 seconds guide | How to ask questions
_________________
Lenovo M58p | Core 2 Quad Q8400 @ 2.66 GHz | Radeon R7 240 | LG HL-DT-ST DVDRAM GH40N | Fedora 32

Reply 23 of 23, by Simon Hradecky

User metadata
Rank Newbie
Rank
Newbie

Minimax,

Probably WC3 needs DPMI, but doesn't need EMS then. In that case, the misaligned pageframe wouldn't be a problem for Wing Commander.

However, thanks for confirming the misaligned pageframe on your machine as well with the frame at CE00, something which I had not yet seen (so far all machines encountering issues had it at CF00, so I thought, we might see a "rounding" error) 😉

There is no way to set the pageframe under WinXP anymore, as it used to be with the memory managers under DOS (were you could add the option frame=segment at the line loading emm386.exe in config.sys). WinXP sets it automatically ...

Simon