*************************************************** **** 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
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.