Relnotes.txt Driver File Contents (4051010.zip)

***************************************************
****        4DWave Driver Release Notes        ****
***************************************************

Release: Thursday, April 30, 1998, v 4.05.1010.

Driver, VxD and INF changes:

1.) This release supports proper joystick handling, by installing
    our Direct Input driver with the Microsoft Direct X joystick
    drivers.
    
2.) Audio portion the same as April 29, 1998 release.


Release: Wednesday, April 29, 1998, v 4.05.1010.

Driver, VxD and INF changes:

1.) Install includes new versions of A3D.DLL and QA3D.DLL.

2.) All Jedi Knight Problems with and without A3D have been resolved.
    A new qmixbuf.lib has been received from QSound to fix some
    of the problems. A reset issue in the driver has fixed the rest.
    This game has no outstanding issues.

3.) Windows 98 noise when a wave is first played has been fixed.
    Streaming buffer had not been initialized to zero before
    the buffer was turned on.


Release: Friday, April 24, 1998, v 4.05.1009.

Driver, VxD and INF changes:

1.) The driver/VxD now supports playing 'wav' files through the
    media player on any channel 0 through 63. This cleans up a
    bunch of hacks that were needed to keep the wave playing in
    the lower 32. Now all PCM files, whether Direct Sound or
    the old wave player are all handled the same way by the
    channel manager.

2.) In previous releases only a few wave files could be played at
    once due to a 'heap' issue in the build environment. This
    limitation is now removed and all 64 channels can be opened
    with the wave player.

3.) Clean installs will now set up the channel partitioning to
    32 channels for MIDI and 32 channels for wave and/or Direct Sound.
    This change comes on the heals of number one above.

4.) Some new code was added to the channel manager to support special
    effects. This code is not accessed by this driver/VxD and will have
    no effect until the special effects code is complete and enabled.

5.) Fixed some code that broke DOS box games on 430TX and VP3
    motherboards.

6.) Removed some code that said 4DWave supported 4 different addresses
    for each of the 3 legacy address ranges. The hardware only supports
    2 addresses each, now the VxD enumerator matches the hardware.
    This was originally needed in the WHQL driver.

7.) Fixed bug found while running MegaMid MIDI player in a DOS box.
    Wavetable channels were being freed that were not allocated,
    or were previously freed causing the channel counter to go negative.

8.) Fixed bug # SK41598, USB IRQ sharing on PIIX4 (430TX & 440LX Intel
    chipsets). We weren't setting the CAN_SHARE option flag for VPICD
    virtualization of our IRQ. This caused our driver not to load when a
    USB driver had been loaded before us. Also removed Validate_IRQ, which
    was also failing. IRQ validation isn't necessary.

9.) Fixed a sample rate frequency problem with certain DOS box games (Descent
    I & II). If the stereo/mono bit in the mixer (MX0E) wasn't correct before
    the Set Time Constant SB command was trapped, then the SB playback freq
    was too high (22KHz instead of 11HKz). 

10.) Added tridwave.ver to the resource file which was inadvertently
     removed in the last release. This is needed to show version info.

11.) Fixed a problem with not turning on the microphone 20DB gain in the
     AC97 when starting Windows and the bit was previously enabled in
     the property sheet. The value of the check box was correct but the
     hardware was not being turned on at boot time.

12.) Removed the installation of the QSound control panel. Since this
     does not support internationalization we do not want to use it.

13.) Changed the way we handle large secondary buffers that are greater
     than 64K samples. Now QSound will handle the buffer instead of
     letting Microsoft mix it into the primary buffer. This fixes
     the Windows 98 blue screen problem that uses the ActiveX player
     to play wave files.

14.) Reenabled the installation of the A3D software.

15.) Changed the number of QSound channels from 32 to 64. This number
     will handle all 3D channels and 2D channels greater than 64K samples.
     We now are a 128 channel device.


Release: Tuesday, March 27, 1998, v 4.05.1008.

Driver, VxD and INF changes:

1.) The previous versions would not install correctly on Windows 95
    golden (OSR 2 was OK). The first problems was that the plug and
    play configuration enumerator sends different subfunctions in OSR2
    than 95-Gold, i.e. no subfunctions in 95-Gold. The VxD now handles
    the device enumerations without using these subfunctions.

2.) This problem is also a problems with Windows 95 gold. Since we were
    declaring to be a Gameport device (using device ID PNPB02F),
    the Windows 95 OS disregards our INF file and loads the standard
    file joystick.inf, and loads msjstick and vjoyd. In OSR2, even
    though we declare this type of device, the OS still installs our
    joystick drivers the way its supposed to. To fix this for both OSes,
    I now declare our device as VIRTUAL\Trid_Gameport instead of *PNPB02F.
    The fix affected the INF file and the bus enumerator in the VxD.

3.) If the correct version of Direct Sound in not loaded, when the
    QSound control panel is installed, problems occur and a system
    can hang. Solution: Modified the QSound control panel so that
    if the version of dsound.dll is incorrect (less than version 4.5)
    or the file is missing (Direct X is not installed), the program
    will gracefully tell the user to install Direct X 5.0 or later
    before he can use the control panel applet.

4.) If the QSound control panel installs at startup, it requests a
    wave buffer during its driver enumeration. If the startup sound
    is playing and the channel manager is set up to only play 1
    Wave channel (i.e. DS/Wave = 33, 32 for DS and 1 for wave) the
    device shuts down the currently playing sound prematurely.
    To fix this we could load the driver with a default set at 34,
    but that is not the best solution. I changed the control panel
    to do the enumeration when the control panel is run, instead of
    when it is loaded. Now the enumeration will  not be done until the
    user clicks the QSound icon in the task bar, and everything works
    just fine.


Release: Tuesday, March 24, 1998, v 4.05.1007.

Driver, VxD and INF changes:

1.) AKM codec reset fix.

2.) This version of the VxD properly handles the enumeration
    of the legacy devices. What ever range Windows wants our
    device to have, the hardware now is setup to utilize it properly.
    This requires that after the initial installation that the system
    be restarted, since the driver is started before the Legacy and
    Gameport devices are enumerated. Hardware is not setup
    until all devices are enumerated. A forced configuration is no
    longer used.

3.) Voyetra string "TridentSingsWithVoyetra" is now in the registry.
    This is written at installation time by the VxD.

4.) All resources from the driver are now in 1 place. This was done
    to simplify the internationalization effort. Also now all
    resources can be manipulated directly by the Visual resource
    editor. This resource file supports Windows 3.1 as well as 95.
    This change was major, as it effected a dozen or so files, but
    simplified the architecture considerably (less files now).

5.) A3D support has been removed from this driver, until it becomes
    more stable. 

6.) The QSound control panel has been added, and is installed and
    loaded automatically. Notice the small icon in the Windows tray
    after installation. This control panel is not the standard one
    build by QSound, but a modified version to work with our flavor
    of the drivers.

7.) We now have our own flavors of Joystick drivers called: tristick.drv
    and trivjoyd.vxd. You will notice the device manager now shows
    a "Trident Gameport" instead of "Gameport Joystick". This driver
    is based on the Microsoft DDK sample driver and will be enhanced
    in future version. This version seems to work as well as the standard
    Microsoft drivers.

8.) The INF file has been modified to handle the new Joystick files.
    Also the removal of A3D and the addition of the QSound control panel.

9.) We now have a Trident icon in our property pages. The driver always
    contained an icon, but it was never used.




Release: Wednesday, March 11, 1998, v 4.05.1006.

Driver, VxD and INF changes:

1.) Fixed problem with Midi playing while recording. The error occurred
    because in the Midi code only 5 bits of the channel number was
    unmasked in the CIR register before it was written instead of 6.
    Record uses an upper channel leaving CIR bit 5 on.  This would then
    have midi using the upper 32 channels which do not support midi.
    Similar problems should have occurred while Midi and Direct Sound
    played simultaneously, however, Direct Sound code restores the
    initial value into CIR after changing it (this can now be removed).

2.) Modified the wave out volume range, so that at full volume
    there is no attenuation. Midi still works the old way.

3.) Fixed a problem with MIDI if the FCFS(First Come First Served) flag
    is enabled. When KeyOff is issued the hardware channel pointer
    should be reset to 0xff. If a wave channel was to use a
    hardware channel previously used by a midi channel, a midi
    command could effect the wave channels hardware. This error
    cannot happen if FCFS is not set.


Release: Friday, March 6, 1998, v 4.05.1005.

Driver, VxD and INF changes:

1.) Added interrupt sharing to VxD (PLEE's code).

2.) Added better support for SB games in a DOS box when WaveInit/WaveTSR
    haven't been installed in AUTOEXEC.BAT (4DWave not config'd). Chipsets
    that support DDMA are handled via the LX VDMA hack. Interrupt snooping
    is used for the DOOM/DUKE3D interrupt edge/level trigger problem.
    SBIRQ/SBDMA mixer regs are configured properly using defaults.

    WAVEINIT/WAVETSR ARE THE PREFERRED METHOD OF 4DWAVE CONFIGURATION! This
    is just a work-around for the case where 4DWave is not configured prior
    to Windows boot.

3.) Removed unused HOTKEY code.

4.) Rewrote the driver record code. Recording now uses a channel just
    like playback, while still maintaining the use of the Legacy record
    hardware. Record buffers now interrupt at 16 interrupts per
    second just like playback, using the AINT channel interrupt
    hardware. This cleaned up all noise issues while still maintaining
    the ability to run the ACTs. Timer interrupts are no longer used.
    This change no longer supports 9753Wave, which does not use AINT.

5.) Fixed the DELTA value for 48000 Hz playback which because of
    mathematical rounding issues had a value of x1001 loaded in the
    register. Now x1000 is forced for perfect playback.

6.) AC97 property sheet controls have been removed. They will appear
    in the property sheets at a later time.

7.) Fixed the Microphone 20DB gain to be turned off when "Set Defaults"
    is selected. This was originally broken.

8.) Changed and shortened mixer strings to more sensible values.

9.) The INF now again supports loading of the DOS files.
    This version should not go to WHQL.



Release: March 2, 1998, v 4.05.1004.

Driver, VxD and INF changes:

1.) Fixed VxD to properly handle the Gameport if it is assigned a
    range of 208-20F instead of 200-207. This will now allow the
    Joystick drivers to function properly.

2.) Fix was put in to handle the PC9x test in the ACTs, so that
    the forced configuration is not used when configuring the
    legacy device. Now PC9x should run error free.

3.) The Wave Table will now default to 1.5 MB sample set during a
    clean install, instead of the 1.0 MB sample set it was loading.

4.) A fix was put into the property sheet to correct string truncation
    on the text under the wave table size selection buttons.

5.) Fix for ACT test Audio 16 wave driver test 10:
    The WODM_BREAKLOOP was not implemented causing this test to fail.
    The current loop needs to complete before termination occurs.

6.) Loading of the joystick files vjoyd.vxd and msjstick.drv now
    will prompt the user to insert the Windows 95 CD if these files
    are not present. In the last release we included these 2 files
    on the distribution CD, but Microsoft says this is a no-no.
    Only the INF was modified to accomplish this.

7.) Removal of second IRQ from Legacy configuration (not needed).

8.) Fixed Legacy record. The very low quality record frequencies
    (8000Hz- non 16bit stereo, and 11025Hz 8Bit mono) still exhibit
    some noise artifacts. A solution has been found and will be fixed
    in the next couple of weeks. Currently 4DWave uses the OPL3 Timer 2
    register for legacy recording. To record use 22KHz or higher
    frequencies for noise free recordings.

9.) LX DOS box fixed. Added HackMeDaddy proc to change VDMAD DMA
    count subroutine on-the-fly if the 440LX chipset is found.


Release: February 20, 1998, v 4.05.1003.

Driver, VxD and INF changes:

1.) This release supports the installation of the Microsoft Joystick
    drivers, at the same time our drivers are installed.

2.) Fixed code in the wave output device to properly handle the headers.
    Now the code works as Microsoft intended. This helps out ACT
    wave out test 10.

3.) Made all half buffers size based on 16 interrupts per second.

4.) Tuned DELTA calculation for 44100 and 8000 Hz, since the rounding
    on the equation did not give us the best values for these 2 frequencies.
    For 22050 and 11025, the equation gives the proper values.


Release: February 13, 1998, v 4.05.1002.

Driver, VxD and INF changes:

1.) Fixed bug in allocation of the lpChanMemBlock pointer. 
    This caused overlap of two arrays used for duplicate sound buffer. 
    This would only show up if more than 32 buffers are used for Direct Sound.
    The Galapagos game found this error.

2.) Fixed bug in the ReadT2Ainten macro. 
    This effected wave play when Direct Sound was active.

3.) Added a new routine to correctly return the number of free channels 
    available for Direct Sound. This number is now calculated differently 
    based on whether or not the FCFS (First Come First Served) flag is set
    in the property sheet.

4.) Complete fixup of the Logical configuration, so that it tells windows 
    it supports enough different choices so that the ACT test PC9x will run. 
    This version still has 1 minor error in that the ForcedConfiguration
    that is created is disliked by the ACT test. 
    Removing the ForcedConfig from the registry after the system boots up 
    will allow the test (PC9X) to run error free.

5.) Removed all references to A3D controls (since there is no way for
    our driver to affect the A3D stuff).

6.) Added a Microphone 20dB gain control to the property sheet.

7.) Fixed Win98 Beta3 problem: Windows sends two (2) CONFIG_START messages 
    when loading our driver. Win95 OSR2 sends only 1. Fix is to ignore the 
    second CONFIG_START message (subfunc DYNAMIC_START). 
    This was tested on both Win98 Beta3 & Win95 OSR2.

8.) Added the installation of the QSound QA3D software. Now all games that
    access the A3D API with work if you enable the interface in the game
    and then restart the game.

9.) This INF version does not modify the autoexec.bat file to load the DOS TSR's.
    A problem exists when reloading Windows if the TSR is resident. This problem
    will be studied next week. Problems only seem to occur when reloading windows,
    that hangs the machine.


Below is a list of changes since the last release on December 19, 1997
Release: January 29, 1998, v 4.05.1001.

Vxd:

1.) Do bus enumeration for the legacy I/O addresses. 
    This adds a new entry in the device manager.
    This was needed to pass ther "Unreported I/O" test in the ACT's.

2.) New version numbering as per Microsoft documentation for WHQL.

3.) This version only corrects the initial state of the A3D flag 
    (which is not yet implemented) to start up disabled.

4.) All_Note_Off should unconditionally turn off all of the notes, 
    for all channels, not just the notes for the current channels, 
    according to the MIDI spec. 2 lines commented out.

5.) Modified Ds/Wave files to default to 33 available at startup on a clean system. 
    This way the wave file, which is channel 31 (first one) will not 
    be in the range of all of the midi channels. 
    This needs to be fixed (the correct way) by abstracting the 
    channel hardware and starting with the highest channel (i.e. 64).
    This change does not affect 9753.


Driver:

1.) Enhancements for the modReset function. 

2.) Added code the disable controls that are not active or are in use. 
    The channel manager now has a callback function that will disable 
    the channel sliders when channels become used. 
    Also AC97 sliders are disabled if the AC97 does not support 3D. 
    Q3D and A3D are also disabled, but set to the currently available 
    position (these are not changeable as of now).

3.) Removed 'int 1's from driver.

4.) Fixed GetPosition for WaveIn and WaveOut. This version now supports 
    using the AINT logic if the chip is a 4DWave. The APG_ints flags
    is set based on the chip type. This does not help ACT's for 9753!
 
5.) Added code to more smoothly control the Midi and Wave output volumes. 
    Now both use a lookup table instead of an equation, which allow 
    smoother volume movement across the entire scale. 
    This table is the same as the one I implemented in the NT driver. 
    This table has a 64 step range.

Installation:

1.) New INF file to support legacy address device initialization.


Download Driver Pack

How To Update Drivers Manually

After your driver has been downloaded, follow these simple steps to install it.

  • Expand the archive file (if the download file is in zip or rar format).

  • If the expanded file has an .exe extension, double click it and follow the installation instructions.

  • Otherwise, open Device Manager by right-clicking the Start menu and selecting Device Manager.

  • Find the device and model you want to update in the device list.

  • Double-click on it to open the Properties dialog box.

  • From the Properties dialog box, select the Driver tab.

  • Click the Update Driver button, then follow the instructions.

Very important: You must reboot your system to ensure that any driver updates have taken effect.

For more help, visit our Driver Support section for step-by-step videos on how to install drivers for every file type.

server: ftp, load: 1.38