As a follow up to my previous post on enabling Write Combining in DOS to improve frame rates, here is how it can be done in Windows (9x).
To do this I’ll be using the program Central Tweaking Unit, which looks like this.
Features from top to bottom are:
- Write Allocation Settings.
- Enabled / Disabled checks for CPU caches and Data Prefetch.
- Write Combining settings ( this is what I’ll be explaining in this post).
- CPU multiplier controls.
- Write Ordering (Write Combining Methods).
With CTU we can simply plug in the information we used in DOS into the MTRR0 row. In my case the address for the memory on my Voodoo 3 (C8000000), the amount of memory (16 MB) and the mode (Write Combined). CTU will use this information to calculate the “to ADDRESS”. Enable MTRR0 and press apply. The improvements are instant and no system reboot is required. The 2nd MTRR1 row can be used if you have two graphics cards to enable Write Combining on that card also, an example would be if you had a GeForce or Radeon AGP card for D3D and a 3dfx card for Glide in a PCI slot.
With Write Combining enables I see vastly improved frame rates in every 3D game I’ve tried. Turning Serious Sam from a stuttering slide show into a playable good looking experience. Another thing to note is I saw much better results using official glide libraries and minigl dll’s than with WickedGL.
Central Tweaking Unit is available to download from the VOGONS Vintage Driver Library.
The program SETK6v3 (SETK6D.exe for dos) will list available PCI Framebuffer addresses for the memory on my Voodoo 3 3000 (16mb). You can then use the program K6WCX to define them and the memory size which will enable Write Combing and thus a nice boost to FPS in benchmarks and games like Quake and PC Player Benchmark.
It should be noted that this only worked for me in Extended memory mode but not in Enhanced.
C:\K6WCX\K6WCX.EXE C8000000 128
The “C8000000” parameter is the 2nd address reported by SETK6D which seems to be the one that works for me. The other being “CC000000” which although could be mapped did not boost performance.
The other parameter “128” is the amount of allocatable memory available multiplied by 8. In this instance 8 x 16 MB on the Voodoo3.
The performance boost gained is surprising and almost doubles frame rates in some cases.
PC Player Bench at 640×480 goes from 20 to 39.9 fps.
Quake at 640×480 also sees a good increase in fps from 12.8 to 18 fps.
Doom benchmark on max details for Fast PCs timed 2134 gametics in 495 realtics with out WC enabled and 2134 gametics in 517 realtics with.
To calculate that into fps its “35*2134 / realticks”. The opposite happens here and we loose some frames, with Write Combining off we get 150.8 fps but enabled only 144.4 fps.
A quick runabout in System Shock showed some improvement in 640×480 at max details, but the extent of improvement in other games requires more thorough testing.
So in summery it seems like a handy feature which is able to squeeze a little more performance out of those graphically intensive later 3D DOS games, if your CPU supports it.
None of this would have been possible with out links to the tools and a great breakdown of how they work from Phil’s Computer Lab, I suggest you check him out on youtube and grab the tools mentioned in this post over on his site.
Dos Graphics Boost Tutorial – Phil’s Computer Lab | Phil’s Computer Lab Website | Phil’s Computer Lab on Youtube
Two more recordings from the Dreamblaster X2, using the new GUD Beta v0.7 sound bank and Preset Audit v2 for levels.
Track one is Duke Nukem 3D’s title song ‘Grab Bag’ and track two is Doom’s E1M1 song ‘At Doom’s Gate’.
This update brings the following changes to v0.6.
- Reduced dynamics floor to -36dB on all 128 instruments for more modern, compressed sound. It sounds better on low levels when gaming.
- Corrected “D149-Crash Lower” and “D157-Crash” volume/velocity curves. Crash now hearable in Doom.
- Corrected “118-Synth Drum” Synth Drum tuning
- Corrected “98-Crystal SFX” Crystal tuning
- Corrected “77-shakuchachi” sample start, volume and tuning
- Corrected “73-flute” sample start, volume and tuning
- Corrected “78-Irish Thin Whistle” sample start, volume and tuning.
If you’d like to update your X2 to version 0.7 you can download the sound bank here.
The X2 Dreamblaster is a Midi interface Wavetable board created by Serdaco BVBA a small company located in Oudenburg, Belgium.
Serdaco make a whole bunch of boards, devices and kits for legacy PC sound systems, such as Wavetable header boards, a Covox Speech Thing Clone (CVX4), external adapters and interfaces.
Some of which are compatible with older daughter boards and hardware. If you’re interested in retro sound hardware please check out their shop serdashop.com.
Recently they have released a new beta sound bank for the X2 board named GUD 0.6 which aims to be a more balanced general midi compliant bank. To help with testing I’ve made some recordings with the new bank.
These recordings are taken from the Line-out port on the X2 and saved using Audacity and the LAME mp3 codec. Dosbox was used to play Monkey Island and Sam & Max was played in Falcosoft’s Soundfont Midi Player 4.6.
First is the General Midi rendition of The Secret of Monkey Island’s intro song. The original DOS version is only MT-32 Midi compatible but that can be solved with the Ultimate Talkie Edition community patch.
This patch will compile DOS and SCUMMVM compatible versions of Monkey Island with full General Midi sound and voice acting from the Special Edition Re-release.
I strongly recommend grabbing a copy of that version from Steam along with LeChuck’s Revenge Special Edition too.
Second is a straight up recording of the intro credits song from Sam & Max Hit the Road, the midi is ripped from the game and obtained from the Mirsoft.info Game Music Base.
The GUD sound bank is shaping up to be a real upgrade to the base ‘Dream’ sound bank. If you would like to try the beta bank its available in the Serdaco X2 downloads section.
Along with instructions, existing sound banks and tools.