VOGONS


Launchpad hanging up DOS games?

Topic actions

First post, by LSD

User metadata
Rank Member
Rank
Member

In my never ending quest to get the sound in Shadow Warrior running acceptably in XP I installed the Launchpad a week or two back after reading about it in the posting guidelines. Trouble is, whenever I launch SW (I haven't tried it with anything else yet) from the launchpad it'll hang up right at the beginning (I'm assuming) just before the first sound plays. I've tried fiddling with every option the launchpad offers but still no dice. I'm not expecting it to work, SW has been a fruitless exercise thus far (strangely enough, it's the only BUILD game to date thats really given me serious trouble. Duke Nukem 3D runs flawlessly and I dug up the Blood and Redneck Rampage demos today and they're fine, it's just Shadow Warrior thats acting up), I would just like to know why it's acting the way it is.

edit: Starting it without the launchpad (with either VDMSound or the built in emulation of XP) works fine, well, fine in the sense that the game actually starts, the stuttery sound that I'm working so hard to get rid of is still present.

Wasurenaide...
...watashi ga iru koto o.
Itsudatte soba ni iru yo.

Gentoo. Because everything else is just shit. 😁
Registered Linux user #319839

Reply 2 of 23, by vladr

User metadata
Rank Oldbie
Rank
Oldbie

Hmmm, this really makes no sense because the only difference between LaunchPad's default settings and the regular "Run with VDMS" is the AdLib sample rate (44kHz in Launchpad as opposed to 11kHz in the plain "Run with VDMS").

FYI, all that LaunchPad does when you run a game is create temporary .INI, AUTOEXEC, CONFIG and PIF files for the game, loads up DOSDRV.EXE in the AUTOEXEC file, sets the game in the PIF file, then runs the PIF. The regular "Run with VDMS" uses predefined .INI, CONFIG, AUTOEXEC and PIF files, but both the game and DOSDRV are loaded from a .bat file associated with the PIF. That's all there is to it.

V.

Reply 3 of 23, by LSD

User metadata
Rank Member
Rank
Member
Snover wrote:

That's really, really weird. Try commenting out the joystick stuff in the VDMSound INI file.

I unchecked the joystick stuff in the LaunchPad shortcut but that didn't make any difference.

If it helps, I've attached a copy of the log I had it generate. I'm no expert on the log format but it appears that, up until I forcefully close (it doesn't lock the whole system up, just the running game. I can kill it by hitting Alt-Enter and then killing the VDM window manually) the VDM its caught in an infinite loop with something to do with the DMA controller (I've tried adjusting the DMA polling period and it didn't make any difference either.

Attachments

  • Filename
    vdms.txt
    File size
    91.16 KiB
    Downloads
    189 downloads
    File license
    Fair use/fair dealing exception

Wasurenaide...
...watashi ga iru koto o.
Itsudatte soba ni iru yo.

Gentoo. Because everything else is just shit. 😁
Registered Linux user #319839

Reply 4 of 23, by vladr

User metadata
Rank Oldbie
Rank
Oldbie

Well, it looks like the game is outputting sound alright (it uses a 4096 bytes buffer) and is acknowledging the IRQs, but it won't move on (so the sound is "silent" samples). Dunno why the game is stuck. Oh, yeah, another difference between LaunchPad and "Run with VDMS" is that LaunchPad clears the environment and only leavse COMSPEC, PATH, TEMP and VDMSPATH in the environment. I can't think why the game would care about any other thing in the environment, but that may be a cause. If running as non-admin then TEMP may be a problem (for some reason Windows makes it point to C:\WINNT\TEMP on my system, and memre mortal users don't have the right to wrte in there... could this be?) You can specify an alternate TEMP by adding the following in "Advanced" under "DOS env." under AUTOEXEC:

set TEMP=C:\DOCUME~1\<your user id>\LOCALS~1\TEMP

...see if that makes a difference.

V.

Reply 5 of 23, by LSD

User metadata
Rank Member
Rank
Member

OK, I tried that and it doesn't make a difference. I even put a BLASTER variable (but I'm not sure if I remembered all the parameters correctly) in there in case that was tripping it up but no dice.

Wasurenaide...
...watashi ga iru koto o.
Itsudatte soba ni iru yo.

Gentoo. Because everything else is just shit. 😁
Registered Linux user #319839

Reply 6 of 23, by vladr

User metadata
Rank Oldbie
Rank
Oldbie

Hmm, this is really weird. If AdLib synthesis frequency doesn't make a difference then the only other different thing I see is the environment. Oh, yeah, and maybe CD-ROM support (disabled by default in LaunchPad, enabled by default in the plain "Run with VDMS"). Also check out the XMS memory size (you get more with Launchpad -- could this be a problem for the game?) And I don't know where that KB16 thing popped out from, probably some sort of locale .SYS or something like that (loadable in the CONFIG section as DEVICE or DEVICEHIGH).

The environment I get with LaunchPad's default settings:

[code]
C:\WINNT\SYSTEM32>set
COMSPEC=C:\WINNT\SYSTEM32\COMMAND.COM
PATHEXT=.COM;.EXE;.BAT
TMP=C:\WINNT\TEMP
PROMPT=$P$G
TEMP=C:\WINNT\TEMP
PATH=C:\WINNT\system32;H:\Work\VDMSTest\VDMSound
BLASTER=A220 I7 D1 H5 P330 T6
SYSTEMROOT=C:\WINNT

C:\WINNT\SYSTEM32>mem /c

Conventional Memory :

Name Size in Decimal Size in Hex
------------- --------------------- -------------
MSDOS 12208 ( 11.9K) 2FB0
KBD 3280 ( 3.2K) CD0
EMM 176 ( 0.2K) B0
HIMEM 1248 ( 1.2K) 4E0
COMMAND 2912 ( 2.8K) B60
FREE 112 ( 0.1K) 70
FREE 635216 (620.3K) 9B150

Total FREE : 635328 (620.4K)

Upper Memory :

Name Size in Decimal Size in Hex
------------- --------------------- -------------
SYSTEM 167920 (164.0K) 28FF0
MOUSE 12528 ( 12.2K) 30F0
DOSX 34720 ( 33.9K) 87A0
FREE 240 ( 0.2K) F0
FREE 46640 ( 45.5K) B630

Total FREE : 46880 ( 45.8K)

Total bytes available to programs (Conventional+Upper) : 682208 (666.2K)
Largest executable program size : 634960 (620.1K)
Largest available upper memory block : 46640 ( 45.5K)

4194304 bytes total EMS memory
4194304 bytes free EMS memory

20971520 bytes total contiguous extended memory
0 bytes available contiguous extended memory
16628736 bytes available XMS memory
MS-DOS resident in High Memory Area
[/code]

...and the one I get with the regular "Run with VDMS":

[code]
C:\WINNT\SYSTEM32>set
COMSPEC=C:\WINNT\SYSTEM32\COMMAND.COM
ALLUSERSPROFILE=C:\DOCUME~1\ALLUSE~1
APPDATA=C:\DOCUME~1\vladr\APPLIC~1
COMMONPROGRAMFILES=C:\PROGRA~1\COMMON~1
COMPUTERNAME=SPLINTER
CVSROOT=vladr@cvs.vdmsound.sourceforge.net:/cvsroot/vdmsound
CVS_RSH=ssh
HOME=H:\
HOMEDRIVE=H:
HOMEPATH=\
HOMESHARE=\\splinter\home\vladr
LOGONSERVER=\\SPLINTER
MSSDK=C:\Program Files\Microsoft Platform SDK
NTDDKPATH=H:\Work\SourceForge\vdmsound\nt4.ddk
NUMBER_OF_PROCESSORS=1
OS=Windows_NT
OS2LIBPATH=C:\WINNT\system32\os2\dll;
PATH=C:\WINNT\system32;C:\WINNT;C:\WINNT\System32\Wbem;D:\NC;D:\UTIL;C:\PROGRA~1
\GNU\SSH;C:\PROGRA~1\GNU\utils;H:\Work\VDMSTest\
PATHEXT=.COM;.EXE;.BAT;.CMD;.VBS;.VBE;.JS;.JSE;.WSF;.WSH
PROCESSOR_ARCHITECTURE=x86
PROCESSOR_IDENTIFIER=x86 Family 6 Model 4 Stepping 4, AuthenticAMD
PROCESSOR_LEVEL=6
PROCESSOR_REVISION=0404
PROGRAMFILES=C:\PROGRA~1
PROMPT=$P$G
SYSTEMDRIVE=C:
SYSTEMROOT=C:\WINNT
TEMP=C:\WINNT\TEMP
TMP=C:\WINNT\TEMP
USERDOMAIN=SPLINTER
USERNAME=vladr
USERPROFILE=C:\DOCUME~1\vladr
VDMSCOREPATH=H:\Work\SourceForge\vdmsound\VDMSCore
BLASTER=A220 I7 D1 H5 P330 T6

C:\WINNT\SYSTEM32>mem /c

Conventional Memory :

Name Size in Decimal Size in Hex
------------- --------------------- -------------
MSDOS 12208 ( 11.9K) 2FB0
KBD 3280 ( 3.2K) CD0
EMM 176 ( 0.2K) B0
HIMEM 1248 ( 1.2K) 4E0
COMMAND 3920 ( 3.8K) F50
KB16 6096 ( 6.0K) 17D0
FREE 112 ( 0.1K) 70
FREE 928 ( 0.9K) 3A0
FREE 627136 (612.4K) 991C0

Total FREE : 628176 (613.5K)

Upper Memory :

Name Size in Decimal Size in Hex
------------- --------------------- -------------
SYSTEM 167920 (164.0K) 28FF0
MOUSE 12528 ( 12.2K) 30F0
DOSX 34720 ( 33.9K) 87A0
FREE 1152 ( 1.1K) 480
FREE 45728 ( 44.7K) B2A0

Total FREE : 46880 ( 45.8K)

Total bytes available to programs (Conventional+Upper) : 675056 (659.2K)
Largest executable program size : 625968 (611.3K)
Largest available upper memory block : 45728 ( 44.7K)

4194304 bytes total EMS memory
4194304 bytes free EMS memory

8388608 bytes total contiguous extended memory
0 bytes available contiguous extended memory
4045824 bytes available XMS memory
MS-DOS resident in High Memory Area
[/code]

Reply 8 of 23, by LSD

User metadata
Rank Member
Rank
Member

It seems to have spread to my main VDMS now as well although I'm not blaming that on the Launchpad, I've been fiddling with the main VDMS.INI and any number of things could be wrong with it. My question now is, is there anyway, short of reinstalling VDMSound (simply repairing it didn't seem to work), to make it generate a whole new config file or is there anywhere I can download the default config file from?

Wasurenaide...
...watashi ga iru koto o.
Itsudatte soba ni iru yo.

Gentoo. Because everything else is just shit. 😁
Registered Linux user #319839

Reply 9 of 23, by vladr

User metadata
Rank Oldbie
Rank
Oldbie

Erase the file in question (VDMS.INI), then reinstall or "REepair" VDMSound. Your modified file doesn't get overwritten because the installer gives priority to newer (customized) files, so you have to delete it.

V.

Reply 10 of 23, by LSD

User metadata
Rank Member
Rank
Member

OK, thanks. With that being so, I shouldn't have to reapply update 1 again afterwards, should I?

Wasurenaide...
...watashi ga iru koto o.
Itsudatte soba ni iru yo.

Gentoo. Because everything else is just shit. 😁
Registered Linux user #319839

Reply 11 of 23, by LSD

User metadata
Rank Member
Rank
Member

Well, deleting the INI and repairing VDMS didn't exactly work but luckily Update 1 contains a fresh copy of the INI so I used that instead. Unfortunately, that wasn't the problem. I've figured it out though and its time for a little background on what I've been trying to do recently.

In order to increase the convenience of accessing both NOLFB and VDMSound I've been experimenting with using batch files to execute both before executing whatever I want to play. Now, it turns out that if you run the VDMS dosdrv before NOLFB they conflict with each other causing my hanging problem (through further expermentation, it was discovered that this happens regardless of whether you use a batch file or not). Execute NOLFB first, and everything works.

^^
the above is completely unrelated to what I've been doing with the Launchpad. I'm still left with the same symptoms while executing stuff with the Launchpad, the above is merely the reason behind why it started affecting my regular VDMSound as well.

Wasurenaide...
...watashi ga iru koto o.
Itsudatte soba ni iru yo.

Gentoo. Because everything else is just shit. 😁
Registered Linux user #319839

Reply 12 of 23, by LSD

User metadata
Rank Member
Rank
Member

I've found the cause of my problem with the Launchpad. It turns out that, for some reason, Launchpad doesn't set the fixpopf flag to the appropriate value. Putting:

[VDMServicesProvider.config]
fixPOPF = 1

in the "custom configuration" section solves the problem.

Wasurenaide...
...watashi ga iru koto o.
Itsudatte soba ni iru yo.

Gentoo. Because everything else is just shit. 😁
Registered Linux user #319839

Reply 13 of 23, by vladr

User metadata
Rank Oldbie
Rank
Oldbie

OK,

(1) When using LaunchPad, dosdrv gets loaded in the AUTOEXEC sction, so even if you LaunchPad a .BAT file then DOSDRV loads first.
(2) if "fixPOPF" is missing a value of 1 is assumed by default.

V.

Reply 14 of 23, by LSD

User metadata
Rank Member
Rank
Member
vladr wrote:

OK,

(1) When using LaunchPad, dosdrv gets loaded in the AUTOEXEC sction, so even if you LaunchPad a .BAT file then DOSDRV loads first.[/QB]

I wasn't actually using the launchpad for those, just regular batch files. Seeing as dosdrv was being loaded in them I didn't bother running them with VDMS (which was the point of the exercise to begin with -- eliminating the need to "Run with VDMS" without implementing something so drastic as changing the default association for all DOS exe's). Running dosdrv first caused the hangups, swapping the positions of dosdrv and nolfb in the batch file (so nolfb executed first) cured them. I don't really no why, I'm just reporting what I observed.

edit: it's 6:30AM and I haven't had any sleep. What I posted before about running dosdrv first causing the hangups was correct

(2) if "fixPOPF" is missing a value of 1 is assumed by default.



Then why would it only start working properly when its value was explicitly defined in the "Custom Configuration" section?

Wasurenaide...
...watashi ga iru koto o.
Itsudatte soba ni iru yo.

Gentoo. Because everything else is just shit. 😁
Registered Linux user #319839

Reply 15 of 23, by Nicht Sehr Gut

User metadata
Rank l33t
Rank
l33t
LSD wrote:

[VDMServicesProvider.config]
fixPOPF = 1
in the "custom configuration" section solves the problem.

At the risk of causing more confusion. I have this entry in my VDMS.INI file, but I still get some lock-ups when using the GUI "Run with VDMS" option (primarily BUILD titles).

Reply 16 of 23, by vladr

User metadata
Rank Oldbie
Rank
Oldbie

Ooops, you guys are 100% right. I have just double-checked the code and yes, the default value is 0. Now why would it be 0 when I thought I made it 1? 😕 Crap... Changed it to 1 now (i.e. if a value is missing then 1 will be assumed), so this should make its way into the next version of VDDLoader.dll.

V.

Reply 17 of 23, by Nicht Sehr Gut

User metadata
Rank l33t
Rank
l33t
vladr wrote:

... so this should make its way into the next version of VDDLoader.dll.

Any chance you could make it an all-in-one package at this point? You could have it default to the 3 primary installs: VDMSound, update 1 files, GUI Launchpad, but the leave individual files available for download with the label of "Experts Only". That should cover most of the user base.

Also, while you're at it; could you change "Enable basic VESA support" to "Enable Full-Screen at startup". So people will stop thinking it's a VESA emulation function?

Reply 18 of 23, by vladr

User metadata
Rank Oldbie
Rank
Oldbie

I think I'll package a new relase (with launchPad) relatively soon. hopefully with Win9x support as well.

I'll keep "Basic VESA support" as-is, and include NOLFB in AUTOEXEC when it is enabled. The reason why i don't change it to "full screen" is that in 90% of the cases people want the game to start in full-screen (as opposed to it going full-screen automatically) in order to have VESA support. The only exception is IT, where it has to go full-screen because of some custom VGA fonts and mixed text/graphical mode Voodoo.

V.

Reply 19 of 23, by Nicht Sehr Gut

User metadata
Rank l33t
Rank
l33t
vladr wrote:

I think I'll package a new release (with launchPad) relatively soon. hopefully with Win9x support as well.

Good to hear.

I'll keep "Basic VESA support" as-is, and include NOLFB in AUTOEXEC when it is enabled.

Are you sure on this? I thought NOLFB's performance wasn't consistent enough for universal usage (different results from different video cards). At least that was my impression.