

 README.TXT                                                             Page 1

 -----------------------------------------------------------------------------




                         VDMSound version 1.1 (release)

                       Copyright (C) 2000 Vlad ROMASCANU


                                      * * *


                      e-mail: ntvdm@hotmail.com

                         www: http://members.xoom.com/ntvdm





 0 Contents


   0 Contents................................................................1

   1 Disclaimer..............................................................2

   2 What is (NT)VDMSound?...................................................2

   3 Why VDMSound?...........................................................2

   4 File list...............................................................2

   5 How to use..............................................................2

     5.1 General usage.......................................................2

     5.2 Switches............................................................3

     5.3 Additional notes....................................................4

       5.3.1 The BLASTER environment variable................................4

       5.3.2 Standard DRR treatment..........................................4

       5.3.3 SysEx indicator.................................................4

       5.3.4 MIDI logging....................................................4

       5.3.5 PCM logging.....................................................4

       5.3.6 Time reference..................................................4

       5.3.7 Debugging.......................................................5

   6 Known issues and limitations............................................5

     6.1 Changes from versions 1.0.x.........................................5

     6.2 MPU-401 support.....................................................5

       6.2.1 UART and intelligent modes......................................5

       6.2.2 SysEx messages..................................................5

     6.3 SoundBlaster support................................................6

       6.3.1 Adlib support...................................................6

       6.3.2 SB DSP support..................................................6

       6.3.3 Configuration issues............................................6

     6.4 DOS loader..........................................................6

       6.4.1 Driver unloading (/u switch)....................................6

   7 Troubleshooting.........................................................6

     7.1 MPU-401.............................................................6

       7.1.1 Loading takes forever...........................................6

       7.1.2 Volume control does not work....................................6

       7.1.3 I hear weird sounds.............................................6

       7.1.4 It sounds all wrong.............................................7

       7.1.5 I cannot hear anything..........................................7

     7.2 SoundBlaster........................................................7

       7.2.1 Volume control does not work....................................7

       7.2.2 It sounds jittery...............................................7

       7.2.3 It sounds chopped...............................................7

       7.2.4 My game blocks..................................................7

       7.2.5 My game crashes.................................................7

       7.2.6 I cannot hear anything..........................................7

     7.3 DOS loader..........................................................8

       7.3.1 VDMS /u makes the DOS prompt disappear..........................8

       7.3.2 VDMS /u gives a "CMidiPlayer : ..." error.......................8

     7.4 Miscellaneous.......................................................8

       7.4.1 My game crashes or freezes......................................8

       7.4.2 I get an error message..........................................8

       7.4.3 My game runs too slowly or too fast.............................8

   8 Some tips...............................................................8

     8.1 Getting the most out of the music...................................8

     8.2 Making sure your VDM environment is properly configured.............9

     8.3 Running VDMSound automatically......................................9

   9 Useful links............................................................9

     9.1 Contact information.................................................9

     9.2 Related sites.......................................................9




 -----------------------------------------------------------------------------

 VDMSound v. 1.0 (review)                                            24-Jul-00


 README.TXT                                                             Page 2

 -----------------------------------------------------------------------------




 1 Disclaimer


   Use this software at your own risk.  Anything you do with it is your own

   responsibility, and not the author's.  The author will not be liable for

   any damage caused to any person, computer, software, hardware, company, or

   business following the use of this package.



 2 What is (NT)VDMSound?


   VDMSound is a package that overcomes some of the limitations of DOS boxes

   under Windows NT 4.0 and Windows 2000.  More specifically, it aims to offer

   adequate sound support to any DOS applications (utilities, games, etc.)

   running under Windows NT 4.0+.

   As of this version, VDMSound emulates an MPU-401 interface (for playing

   MIDI music) as well as a SoundBlaster 16 card (for PCM sound effects).  For

   further details, consult section 6 (Known issues and limitations) below.



 3 Why VDMSound?


   A number of reasons made me write this first version of VDMSound:

     - DOS applications do not have access to SoundBlaster ports under Windows

       NT and Windows 2000, therefore they could not really play music except

       for good-old speaker beeps (until recently, that is)

     - I wanted to be able to run DOS games under Windows, because I wanted

       the freedom to switch to browsing the Internet or working without re-

       booting every time

     - I did not want to restart my machine each time I had to make a modifi-

       cation to AUTOEXEC.BAT or CONFIG.SYS under DOS, all this just because

       the program I wanted to run now needed EMS while the one I ran moments

       before needed access to UMB.

     - Sooner or later DOS will be extinct, and what VDMSound does will be

       even more useful as part of future DOS emulators (not only under Win-

       dows NT, but under Linux as well, or even on the Mac).

     - Not everybody has a synthesizer (or "box") at home, and Adlib music is

       not always a pleasure to listen to, so why not take advantage of wave-

       table synthesis under the form of Windows MIDI drivers to listen to

       that music at its full potential?

     - Finally, I liked some songs so much that I wanted to be able to listen

       to them separately, and what better way to do that if not by writing an

       emulator that can not only play, but also log the music to .mid files?



 4 File list


   The package comprises the following files:

     - README.TXT   this file

     - VDMS.EXE     the DOS loader

     - VDMSDIAG.EXE a DOS-based diagnostic tool for VDMSound

     - VMDSound.dll the Windows module

     - install.inf  automatically sets up the environment



 5 How to use



   5.1 General usage


   In the following examples it is assumed that both VDMS.EXE and VDMSound.dll

   reside in C:\UTIL\VDMS (although it is not necessary for them to).


   You start up VDMSound from a DOS box by invoking the DOS loader:


   C:\UTIL\VDMS>vdms


   The loader finds and installs the VMDSound.dll virtual DOS driver (VDD).

   Since no switches were specified, the default settings are used.


   Note:


 -----------------------------------------------------------------------------

 VDMSound v. 1.0 (review)                                            24-Jul-00


 README.TXT                                                             Page 3

 -----------------------------------------------------------------------------


     If at invocation time VDMSound.dll cannot be found in the current direc-

     tory, an error will be reported.  To overcome this, set the VDMSOUNDPATH

     environment  variable  to  point  to  the  directory  that  contains

     VDMSound.dll.  This can be done from the command-line (using SET) every

     time you invoke VDMS.EXE, or from the Windows Control Panel (where it has

     to be done only once and will be reflected all throughout the system).


     C:\>set VDMSOUNDPATH = c:\util\vdms\


     As of version 1.1, a .inf file is provided that can automatically set the

     VDMSoundPath variable to point to the directory the .inf was installed

     from.  To use this facility, you must first make sure install.inf is in

     the directory you intend to keep VDMSound.dll in.  In Windows Explorer,

     right-click on install.inf and select Install.  You will need to log off

     and then log back on in order for the changes to be reflected.


   5.2 Switches


   Switches can be used to modify the default behaviour of the program.


     /h,? - Display this help page

     /u   - Unloads the driver

     /mpu:p[,i]

          - Sets up the MPU-401 emulator on port p (default = 0x330) and IRQ i

            (default = 2).  The IRQ i is ignored in this version.

            It is not necessary to use this switch if the BLASTER environment

            variable is properly set (default values are then taken from

            there)

     /stddrr

          - Tells VDMSound that it should use standard DRR treatment (off by

            default).  Standard DRR treatment is incompatible with some games

            (e.g. Doom).

     /led:nn

          - Keyboard led to be used for the SysEx indicator.  Can be -1 (indi-

            cator disabled), 0 (NUM-lock), 1 (CAPS-lock) or 2 (SCROLL-lock,

            default)

     /hmidi:h

          - Device handle h to be used for MIDI playback (default = -1, the

            Windows MIDI-mapper)

     /mt  - DOS applications expect the MPU-401 interface to be hooked to a

            MT-32 synthesizer (default)

     /gm  - DOS applications expect the MPU-401 interface to be hooked to a

            General MIDI or GS synthesizer

     /mapmt

          - The device handle specified with /hmidi corresponds to a MT-32

     /mapgm

          - The device handle specified with /hmidi corresponds to a General

            MIDI or GS synthesizer (default)

     /sb:p[,i[,d[,h]]]

          - Sets up the SoundBlaster emulator on port p (default = 0x220), IRQ

            i (default = 7) and DMA channels d (8-bit, default = 1) and h (16-

            bit, default = 5)

            It is not necessary to use this switch if the BLASTER environment

            variable is properly set (default values are then taken from

            there)

     /hwave:h

          - Device handle h to be used for SoundBlaster Wave (PCM) playback

            (default = -1, the Windows wave-mapper)

     /mpulog:dir

          - Specifies a directory where to save MIDI and SysEx files.  The

            filenames are of the form vdmsXXXX.mid and vdmsXXXX.syx, where

            XXXX is a 0-based, 0-padded number.  Old files are overwritten.

     /sblog:dir

          - Specifies a directory where to save PCM data.  The filename is

            vdms_pcm.raw, and contains raw (headerless) PCM data.  If the file

            already exists, data is appended.

     /time:ref

          - Specifies a time reference; can be wither DOS (default) or Win.

            This is mainly used in MIDI logging.

     /debug




 -----------------------------------------------------------------------------

 VDMSound v. 1.0 (review)                                            24-Jul-00


 README.TXT                                                             Page 4

 -----------------------------------------------------------------------------


          - Specifies whether to write emulation information in a log file.

            Information is saved in a file called vdmsound.log in the current

            DOS directory.

     /v   - Verbose, displays a list of settings used


   5.3 Additional notes



    5.3.1 The BLASTER environment variable

     The BLASTER environment variable (as recognized by VDMS.EXE) is of the

     form:


     BLASTER=Appp Ii Dd Hh Pmmm


     ...where ppp is the SoundBlaster port (usually 220), i is the IRQ (usu-

     ally 5 or 7), d is the 8-bit DMA channel (usually 1), h is the 16-bit DMA

     channel (usually 5) and, finally, mmm is the MPU-401 port (usually 300).

     You can omit fields, or put them in any order, VDMS.EXE will make sense

     out of them.  To be sure, just invoke VDMS with the /v switch and check

     the values yourself.


    5.3.2 Standard DRR treatment

     This (DRR - Data Read Ready) applies to the way the MPU-401 emulator in-

     dicates to applications whether it is OK for them to send data.  Some ap-

     plications (e.g. Doom) expect this flag to be always 0 (i.e. application

     is allowed to send data to the MPU-401 at any time), and freeze other-

     wise.  With standard DRR treatment the flag can be 1 in certain situa-

     tions.


    5.3.3 SysEx indicator

     The SysEx indicator is meant to let the user know whether there is any

     MPU-401 activity during the long waiting periods exhibited by some MT-32

     configured games at loading time.  The indicator uses a keyboard led that

     toggles every time a SysEx message is transmitted.  Use the /led switch

     to change the led (the default it SCROLL-lock).


    5.3.4 MIDI logging

     VDMSound 1.1 now has MIDI logging available.  What MIDI logging does is

     to send MIDI data not only to your MIDI driver/Synthesizer, but also to a

     file on your HDD.  You can use this feature to "rip" your favourite music

     from games for later enjoyment.  By default the feature is inactive; you

     have to specify a MIDI logging directory using the /mpulog switch in or-

     der to activate it.  To specify the current directory, use /mpulog:.

     Where "." denotes the current directory.  Trailing \'s are optional (they

     are automatically appended unless your path already ends in '\' or ':').


    5.3.5 PCM logging

     Unfortunately, version 1.1.0 only supports raw PCM logging (no header in-

     formation indicating the sample rate, number of bits per sample, number

     of channels, etc.)  You can import the RAW data in just about any wave-

     form editing software (Cool Edit, Gold Wave, Creative Studio, etc.)  You

     will be prompted for a sample rate, number of bits per sample, number of

     channels (mono/stereo), and whether the data is signed/unsigned or big-

     /small-endian.  You can play with these options (a good starting point is

     11kHz, 8bit, mono, unsigned), or you can run VDMS with the /debug switch

     and examine the vdmsound.log file for format information.

     Beware, though: enabling PCM logging might degrade the quality of the

     sound due to considerable HDD access (this will only affect the heard

     quality, however, not the quality of the logged data).


    5.3.6 Time reference

     The time reference is very important if you are logging MIDI streams.

     While for the emulator MIDI events occur in real-time, the same MIDI

     events must be time-stamped when saved into a MIDI file.  The more "accu-

     rate" the time-stamping is, the better the quality of MIDI file playback.

     There are two available references: the (emulated) DOS DTC, and the Win-

     dows time.  The DOS DTC is theoretically the most accurate, since it re-

     flects time as seen by DOS applications (it is incremented by INT8, the

     same interrupt used by most applications to generate timed events).

     Moreover, the DTC is (at least theoretically) impervious to performance

     fluctuations in the DOS box, or to long pauses cause by switching task

     away form the DOS environment.  The Windows time-reference is affected by


 -----------------------------------------------------------------------------

 VDMSound v. 1.0 (review)                                            24-Jul-00


 README.TXT                                                             Page 5

 -----------------------------------------------------------------------------


     any performance fluctuation (due to swapping or system congestion) as

     well as by the periods during which the DOS application has lost focus

     and is frozen.

     However, DTC emulation (provided by Windows) is not always perfect; in

     some cases the DTC will be updated up to 10 times less often than sup-

     posed to, which may result in blazing-fast music with  huge time-

     quantization errors.  On the other hand, Windows time reference is more

     reliable, but WYHIWYG and poor real-time performance will imply a poor

     MIDI file.


    5.3.7 Debugging

     Right now the debugging information saved to vdmsound.log relates exclu-

     sively to the SB16 DSP (the most problematic part of the emulation).

     Copies of error messages that usually appear on the console are also

     dumped in this file.



 6 Known issues and limitations


   This is only the second version of VDMSound.  Consequently, it has some

   technical limitations.


   6.1 Changes from versions 1.0.x


   Several improvements and additions were made since versions 1.0.x.  Since

   the changes were radical, it is possible that some games that worked before

   would cease to work with v.1.1 (e.g. XCOM - Terror from the Deep).  That

   will be taken care of by future 1.1 updates.


   Improvements:

   - Several issues that existed with the DSP code (mainly to do with DMA

     transfer lengths and wave format) were fixed, thus eliminating sound

     chopping problems as well as incompatibilities with some games (e.g. Lei-

     sure Suit Larry 6)

   - Several DSP functions were added, mainly mixer-related (microphone and

     line-in level), which might result in better compatibility with games

     that relied on these functions to detect a SB(-Pro)

   - PCM rendering code was rewritten for lower output latency, as well as for

     signed/unsigned PCM output.

   - MIDI code was updated and is now able to deal with real-time system mes-

     sages

   Additions:

   - MIDI SysEx indicator

   - MIDI and PCM logging

   - Option to configure DMA-8 and DMA-16 channels separately

   - VDMSDIAG.EXE is now part of the VDMSound package


   6.2 MPU-401 support


   Can be listed as MT-32, MT-100, LAPC-I, CM-32L, CM-64, Roland Sound Canvas

   (SCC-1) or "other GM/GS synthesizer with a MPU-401 compatible interface".


    6.2.1 UART and intelligent modes

     Only UART mode is supported.  I was unable to find any documentation de-

     scribing the intelligent mode functionality (if you have access to such

     documentation, contact me).

     UART-mode support is sufficient for the majority of games out there.  If

     a configuration program asks you for an IRQ (in the context of MPU-401),

     then it is very likely that you are out of luck.  Sorry.


    6.2.2 SysEx messages

     VDMSound does not interpret SysEx messages. SysEx messages are, however,

     sent along to the selected Windows MIDI driver (see the /hmidi switch in

     section 5.2 (Switches) above.  If you happen to own an actual MT-32 then

     everything should go smoothly (although I haven't tested it).  If not,

     you might hear odd sounds, and volume control from within the DOS appli-

     cation might not work (use the Windows Mixer control instead).  For more

     details, see section 7 (Troubleshooting) below.





 -----------------------------------------------------------------------------

 VDMSound v. 1.0 (review)                                            24-Jul-00


 README.TXT                                                             Page 6

 -----------------------------------------------------------------------------


   6.3 SoundBlaster support


   Can be listed as SoundBlaster, SoundBlaster original, SoundBlaster Pro

   (early/late), and SoundBlaster 16.


    6.3.1 Adlib support

     No Adlib (FM) emulation is provided in this version.


    6.3.2 SB DSP support

     The DSP (PCM sound) is only partially supported.  Playback (DAC) is sup-

     ported (8/16 bit PCM, mono/stereo, signed/unsigned), although there may

     be sound-quality issues.

     Playback may fail if the Windows wave driver does not support certain

     sample rates, or stereo sound.

     Recording (ADC) is not supported in this version.


    6.3.3 Configuration issues

     Some DOS configuration programs might not detect the SoundBlaster emula-

     tion.  This is due to the fact that they check for the SB on the Adlib

     ports (see section 6.3.1, Adlib support, above), or by using unsupported

     DSP functions (such as recording, see section 6.3.2 above).  However,

     they should still be able to use the DSP for sound effects (PCM sound) if

     you manually specify the SoundBlaster base-port, IRQ and DMA channel.


   6.4 DOS loader



    6.4.1 Driver unloading (/u switch)

     Under Windows NT 4.0 and Windows 2000 the 1.0.x driver used to cause

     problems when unloaded.  This seemed to be an issue with Windows'

     NTVDM.EXE (yet to be confirmed).  In version 1.1 the driver automatically

     terminates NTVDM.EXE thus avoiding the OK/Cancel error-box.  This will,

     however, also unload any DOS TSRs you may have loaded.  You might also

     have to hit the RETURN key once or twice if you cannot see the DOS prompt

     after unloading VDMSound.



 7 Troubleshooting



   7.1 MPU-401



    7.1.1 Loading takes forever

     Some games might seem to take forever to load.  This can have several

     causes:

     - They cannot detect the MPU-401 interface.  Usually they will timeout,

       but you never know.  Have you loaded VDMSound?  Have you specified the

       right port in the game's configuration?  Are you sure the game does not

       expect the MPU-401 interface to operate in intelligent mode (see sec-

       tion 6.2.1 above)?  If you disable music in the configuration, does the

       game still stall?

     - You told the game it should use a MT-32, and now it's uploading tons of

       SysEx's.  This is not much of an issue with fast computers, and it usu-

       ally only happens with Sierra games.  You can either be patient, or se-

       lect a GM/GS synthesizer from the game's configuration options (if such

       a choice is available).  If you do opt for a GM/GS, do not forget to

       restart VDMS with the /gm switch (see section 5.2 above).

     Version 1.1 includes a SysEx indicator feature that can help you identify

     the cause of the delay.  For more details, see section 5.3.3 (SysEx indi-

     cator), above.


    7.1.2 Volume control does not work

     See section 6.2.2 (SysEx messages) above.  Use the Windows Mixer control

     instead.


    7.1.3 I hear weird sounds

     You might hear sounds that seem out of place.  This could happen if you

     told the game it should use a MT-32 but you do not own an actual physical

     MT-32.  There is not much you can do, try selecting a GM/GS synthesizer

     instead of the MT-32 (also see sections 7.1.1 above, 7.1.4 below).



 -----------------------------------------------------------------------------

 VDMSound v. 1.0 (review)                                            24-Jul-00


 README.TXT                                                             Page 7

 -----------------------------------------------------------------------------


    7.1.4 It sounds all wrong

     Your patch (instrument) mappings could be wrong.  If you told the game to

     use a MT-32 make sure you did not use the /gm switch with VDMS.  If you

     have a GM/GS synthesizer, or a soundcard configured as GM/GS, make sure

     you did not specify the /mapmt switch.


    7.1.5 I cannot hear anything

     This can be a problem with Windows (resource conflict) or with the emula-

     tion:

     - Have you loaded VDMSound?

     - The device (resource) might be in use.  Did VDMS give you an error when

       loaded?  Some other program (maybe another instance of VDMS in another

       DOS box, or MS Media Player) could be using the MIDI device, and

       VDMSound is unable to open it for playback.

     - The game could not detect the MPU-401 interface.  Have you specified

       the right port in the game's configuration?  Are you sure the game does

       not expect the MPU-401 interface to operate in intelligent mode (see

       section 6.2.1 above)?

     - There is a known issue on certain SB-Live!, Windows 2000-equipped ma-

       chines that causes ports used for the emulation to be detached from

       VDMSound when in full-screen mode.  Using different switches for

       VDMS.EXE and VDMSDIAG.EXE try to locate an unaffected port pair that

       you can then use with your game.  The 0e1h - 0efh range is usually not

       used (albeit highly non-standard), and is not affected by the issue,

       although configuring your game to use that range might prove hardy (it

       may require "hacking" skills).


   7.2 SoundBlaster



    7.2.1 Volume control does not work

     SB volume control is not supported in this version.  Use the Windows

     Mixer control instead.


    7.2.2 It sounds jittery

     There is too much latency in VDMSound, and the buffers used by the game

     are too small.  You might also have PCM logging enabled (see section

     5.3.5 above).  Should be fixed in future versions.


    7.2.3 It sounds chopped

     Probably an issue with DMA handling.  It only happens in auto-init DMA

     transfers as far as I can tell.


    7.2.4 My game blocks

     Games usually rely on interrupts (IRQs) to know when a SB command has

     completed, or when a playback event occurred.  If interrupts are not gen-

     erated, some games will wait for them indefinitely, freezing.

     There are several reasons why VDMSound would not generate interrupts:

     - An unsupported SB function was invoked (record, silence, etc.); no ac-

       tion was taken, therefore no interrupt was generated.

     - The device (wave) was in use; the sound could not be played, therefore

       Windows never notified VDMSound that playback finished, so the inter-

       rupt was never risen.

     - The device (wave) could not be open because the playback format was un-

       supported (see section 6.3.2 above).

     These issues should be fixed in future versions.

     Also see section 7.4.1 (My game crashes or freezes) below.


    7.2.5 My game crashes

     Could be a problem with unsupported SB functions.  Also see section 7.4.1

     (My game crashes or freezes) below.


    7.2.6 I cannot hear anything

     This can be a problem with Windows (resource conflict) or with the emula-

     tion:

     - Have you loaded VDMSound?

     - The device (resource) might be in use. Some other program could be us-

       ing the wave device, and VDMSound is unable to open it for playback.

       Beware of freezes (see section 7.2.4 above).

     - The game could not detect the SB emulator.  Have you specified the

       right port in the game's configuration?  Maybe the game uses some con-



 -----------------------------------------------------------------------------

 VDMSound v. 1.0 (review)                                            24-Jul-00


 README.TXT                                                             Page 8

 -----------------------------------------------------------------------------


       voluted method to check whether it can play a sound, and because of the

       basic level of emulation it fails.  Should be fixed in future versions.

     - There is a known issue on certain SB-Live!, Windows 2000-equipped ma-

       chines that causes ports used for the emulation to be detached from

       VDMSound when in full-screen mode.  Using different switches for

       VDMS.EXE and VDMSDIAG.EXE try to locate an unaffected port pair that

       you can then use with your game.  The 0e1h - 0efh range is usually not

       used (albeit highly non-standard), and is not affected by the issue,

       although configuring your game to use that range might prove hardy (it

       may require "hacking" skills).


   7.3 DOS loader



    7.3.1 VDMS /u makes the DOS prompt disappear

     The DOS prompt is there, just press the RETURN key once or twice to make

     it appear.


    7.3.2 VDMS /u gives a "CMidiPlayer : ..." error

     Ignore this error.  It's actually more of a warning, and it shouldn't be

     there.


   7.4 Miscellaneous



    7.4.1 My game crashes or freezes

     Could be a problem with the Windows DOS emulation. Happens with predilec-

     tion to newer games that use DPMI (e.g. run on DOS4GW.EXE).

     If the game pauses but resumes after moving the mouse and/or pressing a

     key, then you have a problem with the DOS box's idle sensitivity (you

     should set it all the way to "low").  See section 8.2 below for details.


    7.4.2 I get an error message

     Follow the suggested course of action (if any), or see sections 7.1 and

     7.2 above.


    7.4.3 My game runs too slowly or too fast

     Create a PIF file and try to fiddle around with the following options:

     - Compatible Timer Hardware Emulation (enabling it may slow down the

       game)

     - Idle sensitivity ("low" will make the game run more smoothly; "high"

       may cause your game to pause after mouse/keyboard inactivity)


     See section 8.2 (Making sure your VDM environment is properly configured)

     below for some basic details on how to work with PIF files.



 8 Some tips



   8.1 Getting the most out of the music


     Selecting the right options, both in the DOS game and in VDMSound (Win-

     dows), can dramatically enhance your musical experience.  Thus, with the

     right settings, the game can sound better under Windows emulation than it

     could have ever sounded under pure DOS (with a soundcard):

     - First, make sure you get the mappings right.  If you do not have a real

       MT32 try to tell a game to use GM/GS.  Doing so will avoid the MT32-to-

       GM mapping (a translation that can never be perfect) as well as the

       SysEx issues (see section 6.2.2 above).

     - Select the right Windows device ID to play your MIDI on.  Some newer

       soundcards come with MIDI drivers that allow you to take advantage of

       "wave-table synthesis" (as opposed to "FM synthesis").  Wave-table syn-

       thesis greatly surpasses FM synthesis in terms of quality and realism

       in the majority of cases.  Moreover, Windows 2000 (DirectX 6+) comes

       bundled with a GS soft-synth driver ("Microsoft Synthesizer") that runs

       with virtually any soundcard.  Given that the samples used by the MS

       Synthesizer (gm16.dls) come from Roland, I would recommend using it

       even if your soundcard manufacturer provided you with their own wave-

       table synthesis driver and/or instrument banks.




 -----------------------------------------------------------------------------

 VDMSound v. 1.0 (review)                                            24-Jul-00


 README.TXT                                                             Page 9

 -----------------------------------------------------------------------------


   8.2 Making sure your VDM environment is properly configured


     DOS games are sometimes very picky about configurations, especially when

     it comes to memory.  If they refuse to run, you have to set up a special

     environment for them.  You can do this by creating PIF files; in PIF

     files you can specify what a given DOS box' AUTOEXEC and CONFIG files

     look like, how much EMS and XMS memory to provide, etc.  And you can have

     a different PIF file for every DOS executable.


     One way to create a PIF file is with Windows Explorer; just create a

     shortcut to the DOS executable (.exe or .com) file you want to run (you

     can do this using "Copy"/"Paste shortcut" for instance).  Now take a look

     at the shortcut's properties (Right-click/"Properties").  Under the "Pro-

     gram" tab you can see what DOS executable this shortcut (PIF file) corre-

     sponds to.  Also under the "Program" tab you can specify alternate AUTO-

     EXEC and CONFIG files by clicking on the "Windows NT..." button.  Under

     the "Memory" tab specify how much memory to allocate (for instance, if

     your game complained that there was not enough EMS memory, make sure the

     EMS value was not set to 0 or "None").  Under the "Misc." tab you find

     more options that might turn out to be useful (for example, if your game

     runs too slowly, turning "Idle sensitivity" all the way to "low" might

     speed it up).  To run the DOS program just double-click on the PIF file.


     Read more about PIF files in Windows Help (click on the Start button, se-

     lect Help, click on the Index tab, and look in the list under "PIF

     files")


   8.3 Running VDMSound automatically


     To automatically run VDMS.EXE with a certain game you can create a custom

     AUTOEXEC file.  Invoke VDMS.EXE from there, but do not forget to mention

     the modified AUTOEXEC file in the game's PIF settings (see section 8.2

     above).  You can also modify the "master" AUTOEXEC file (%System-

     Root%\SYSTEM32\AUTOEXEC.NT), although this is inadvisable since after

     opening several DOS boxes you might run into trouble with resources (MIDI

     and WAVE).



 9 Useful links



   9.1 Contact information


     E-mail (bug reports, suggestions, inquiries, documentation, offers to

     help, etc.):


       ntvdm@hotmail.com


     Web page (information about VDMSound, downloads, news, FAQ, etc.):


       http://members.xoom.com/ntvdm/

       http://ntvdm.ntcompatible.com/


   9.2 Related sites


     The equivalent of Microsoft's NTVDM.EXE (with limited sound support) for

     Linux, DOSEmu:


       http://www.dosemu.org/













 -----------------------------------------------------------------------------

 VDMSound v. 1.0 (review)                                            24-Jul-00
