05/04/97 mclk093b.zip // MCLK v0.93b (unofficial release) A performance-enhancement utility, can boost thruput of certain SVGA cards -------------------****** WARNING ******---------------------------------- This program allows alteration of SENSITIVE registers of your SVGA card. IMPROPER USE MAY CAUSE DAMAGE TO YOUR COMPUTER AND OR VIDEO CARD. I AM NOT RESPONSIBLE FOR ANY DAMAGE CAUSED BY THIS PROGRAM. ********************************************************************* ******* MISUSE OF THIS PROGRAM MAY DAMAGE YOUR VIDEO HARDWARE ******* ********************************************************************* -------------------------------------------------------------------------- Q: What can I do with this program? If your computer is equipped with a compatible SVGA card, this program will let you re-program your video chipset's DRAM-clock generator. With this program, you can attempt to overclock your video board! (No guarantee that you will succeed...) I have received plenty of feedback regarding MCLK's performance claims. MOST users report a modest improvement (5-10%) in Windows. Some users report a dramatic improvement (>10%) in Windows. A few users report a decrease in performance (DOS/Windows.) Overall, users with generic Cirrus GD-5436/46, S3/Virge, and S3-Trio64V+ boards see the most improvement. I suspect generic video boards are more tweakable than brand-name boards, due to more conservative design. I have posted some VIDSPEED4 and Winbench96 benchmarks on my www-page (http://www.oac.uci.edu/~rliao) These are benchmarks of my own equipment, not scores submitted by other users. MCLK's benefits... + boost in DOS thruput for "high-bandwidth" display modes (on 1mb cards, 800x600 high-color & 640x480 true-color) (on 2mb cards, 1152x864 high-color & 800x600 true-color) + boost in DOS for older Cirrus GD-5426/8/9 VL cards + boost in GUI (Win3.1/95) for any MCLK-reprogrammable card (especially in high-bandwidth display modes) MCLK's limitations... - only supports a FEW of the many SVGA chipsets out on the market - performance gains may not be perceptible to casual user - some video BIOSs reset the SVGA registers after video-mode sets (eg. Cirrus GD-5434, Diamond Speedstar Pro ) Whenever you operate a piece of equipment beyond its rated speed, you risk damaging it. Please use caution when adjusting the clock-freq of your video board. Q: Which chipsets does MCLK support? MCLK has been tested on the following boards: Cirrus Logic GD-542X - 5420, 5422, 5424, 5426, 5428, 5429 ( tested with GD-5428 VLB ) GD-543X - 5430 ( GD-5434 NOT supported ), 5436 The GD-5434's BIOS resets the MCLK upon every video mode set. GD-544X - 5440/M40, 5446 GD-7543 - (reprogrammable as GD-5428, use "/F") S3 Incorporated S3 86x (864/866/868) with SDAC RAMDAC S3 Trio (Trio32, Trio64, Trio64V+) (some video BIOSs reset MCLK upon every mode set.) S3 Virge, Virge/VX, Virge/DX no plans to support S3-911/924/928 :( Trident Microsystems Trident 9440/96xx The Trident MCLK code was "reverse-engineered." It may not work on all Trident 9440/96xx boards. * Tseng Labs * Tseng Labs ET-6000 * MCLK's ET-6000 code does not work on all ET-6000 boards. * Chances are better with generic ET-6000 boards. * * **************COMING SOON: MATROX MYSTIQUE SUPPORT************** Q: What if I don't own one of the above-mentioned SVGA cards? Unfortunately, you won't be able to use this program. ..................... Q: Is MCLK a DOS, OS/2, or Windows program? MCLK is a DOS command-line executable program. If you plan to execute MCLK from a Windows 3.x/95 environment, you must do so from a full-screen DOS box. Executing MCLK from a windowed-dos box won't work : Windows will block MCLK from accessing the SVGA registers. OS/2, Windows NT, Linux, etc. are not supported. Q: Is MCLK a TSR (terminate-stay-resident) program? MCLK is not a TSR, it is a normal, one-shot executable application. Q: How do I use MCLK? MCLK's user interface is entirely command-line. First, let's start with the general help screen. To pop up the general help screen, invoke MCLk without any parameters: C:\> MCLK MCLK will report the detected video chipset (S3, Cirrus, etc.) and a list of supported operations. 0 S3 Trio/Virge MCLK programming 1 S3 864/964/Trio memory page-mode control ...... ...... An MCLK command consists of an OPERATION (/X) followed by user-supplied PARAMETER(S). For example, C:\> MCLK /0 65 2 2 (Set S3/Trio clock to 60MHz) ^^ ^^^^^^ operation parameters The preceding line instructs MCLK to perform operation#0 with the parameters "65", "2" and "2" (If this command were executed on a system with an S3 Trio board, MCLK would reprogram the Trio's DRAM-clock to 60MHz.) If you omit the parameters, MCLK will display the STATUS of the selected operation. For example, C:\> MCLK /0 (returns the current DRAM-clock frequency.) MCLK can parse multiple operations. C:\> MCLK /0 54 2 2 /1 0 (sets S3 Virge's DRAM-clock to 50MHz.) (sets page-memory mode to 1-cycle EDO.) Q: MCLK doesn't properly autodetect my video chipset. Can I force MCLK to work with my chipset? Sometimes, MCLK will fail to autodetect your video hardware. If MCLK cannot identify your video chipset, you can override MCLK's auto chipset detection by using the "/F" option. (Of course, you must have a chipset which is supported by MCLK!) C:\> MCLK /F (MCLK reports list of video-chipset families) C:\> MCLK /F 1 (MCLK reports list of CIRRUS-LOGIC chipsets) c:\> MCLK /F 1 1 (manually force usage of CIRRUS-LOGIC GD-542x) The list of supported chipsets may change with each successive revision of MCLK. example C:\> MCLK /F 1 1 /0 32 (manually selects Cirrus GD-5424/6/8/9, changes MCLK to 57MHz) The parameters preceded by slashes (/F, /0, etc. ) are "commands." MCLK parses each slashed command and necessary parameters from left to right. In the example above, MCLK would first parse "/1" along with "5"; this activates the code for option #1, using the value "5" as input. "/F" is a special command to override MCLK's chipset autodetection. (If used, the /F command must be the FIRST parameter!) Q: Are the effects of MCLK permanent? No. A power off/on cycle will reset your video board to its power-on default settings. Furthermore, some video BIOSs may reset certain registers. For example, most Cirrus GD-5434 BIOSs re-program the DRAM-clock frequency with every modeset operation. If you want to keep your video card overclocked, you should add MCLK to the AUTOEXEC.BAT. That way your video card won't lose changes after every reset. +Q: I think I'm putting in the right parameters, but I can't get MCLK's + various functions to work. + + Several possibilities...MCLK doesn't work with your particular board + (unfortunately, this is most likely.) MCLK doesn't run under Windows + NT, OS/2, etc. It will run from Windows 3.x or Windows-95, but only + from a FULL-SCREEN dos box. And, of course, not all of MCLK's code + has been thoroughly debugged. Case in point, the Cirrus Logic + GD-546x code doesn't work at all (...yet) Furthermore, the Tseng + Labs ET-6000 code works with some ET-6000 adapters, but not others. + + Finally, your board's BIOS might reset the board's configuration, + undoing any and all tweaks MCLK has made for you. The Diamond + Speedstar Pro (Cirrus GD-542x), Cirrus GD-5434, and several OEM + BIOSs (Compaq, Packard Bell) are known to be paternalistic in this + sense. Q: Why is this program called MCLK? A while back, I wrote a utility that allowed MCLK reprogramming on Cirrus Logic boards. That program was fairly simple, requiring but a few real lines of code (the rest made up the user command-line interface.) The program you see before was designed a year ago, before I was familiar with C++. Q: What other programs can boost my video performance? S3 owners should check out Dietmar's "S3 Speed-Up." The same author also has a VESA/VBE 2.0 TSR freely available. S3 Speed-up will accelerate many DOS/SVGA apps, by virtue of forcing the framebuffer into linear-access mode. Applications which already use VESA 2.0 will be unaffected, since most VESA 2.0 applications already initialize a linear framebuffer. S3-speedup works because of a performance characteristic of the S3 chipsets...I don't think it will work for any other chipsets. I have heard that the DOS performance profile of ATI's Mach64 series resembles that of the S3 chipsets (i.e. faster in linear-framebuffer than banked-fbuffer.) Trident 9440/96xx owners looking for better MCGA 320x200 performance should check out M13SPEED. It's available from the same place from where you downloaded MCLK (http://www.oac.uci.edu/~rliao) M13SPEED emulates 320x200 MCGA by using a VESA SVGA display-mode. The end-result is faster bus-thruput for your 320x200 MCGA apps. M13SPEED does not work with VGA "ModeX" games (Doom, Doom2, Heretic, etc.) And of course, games which use VESA SVGA modes aren't affected. Q: I'm interested in overclocking other system components. Where can I go? Check out < http://www.sysopt.com > and < http://www.sysdoc.pair.com > Q: What is "VGADOC"? VGADOC is an archive of documents covering many SVGA chipsets. The Trident MCLK code was possible because of VGADOC. If you're interested in VGADOC, check out this URL: http://www.datashopper.dk/~finth +Q: Which video boards are the most tweakable? After collecting quite a bit of user feedback, here are some generalizations I'm willing to make: Cirrus Logic GD-542x - improved VL bus-performance with reduced bus timings DRAM-clock modestly overclockable ( 50 -> ~57MHz ) Cirrus Logic GD-5436/5446 - DRAM-clock moderately overclockable ( 50 -> ~70MHz ) substantial improvement under GUI environment substantial improvement under DOS/SVGA *high-bandwidth modes Cirrus Logic GD-7543 (programmed as "GD-5428") DRAM-clock moderately overclockable ( 50 -> ~70MHz ) substantial improvement under GUI environment + Cirrus Logic GD-5462/5464 (doesn't work yet!) + RAMBUS-clock minimally overclockable ( 257MHz -> 272MHz ) Trident 9440/96xx - DRAM-clock modestly overclockable ( 70 -> 76MHz ) little improvement S3 Trio64/Trio64V+ overclockability depends on DRAM quality (45ns vs 50ns etc.) With 45ns EDO, up to ~69MHz 1-cycle EDO timing (64V+ only) 2D GUI performance approaches S3/Virge With 60ns EDO, up to ~80MHz+ 2-cycle EDO timing substantial improvement under GUI environment S3 Virge (325) and Virge/DX overclockability depends on DRAM quality (45ns vs 50ns etc.) With 35ns EDO, up to ~80MHz 1-cycle EDO timing With 40ns EDO, up to ~72MHz 1-cycle EDO timing With 45ns EDO, up to ~68MHz 1-cycle EDO timing With 50ns EDO, up to ~63MHz 1-cycle EDO timing ... etc., etc. substantial improvement under 2D-GUI environment little improvement with 3D applications S3 Virge/VX (988) STB Velocity 3D, Diamond Stealth 3D-3xx0 mixed results - VRAM unable to handle 1-cycle EDO + Tseng Labs ET-6000 + factory-default MCLK is quite high, 90MHz + some users can clock up to 100MHz, other users report + no luck (MCLK's code doesn't work with all boards) Q: How about support for some 3D-boards like the Rendition Verite and 3dfx? Rendition, like Voodoo, insists on a non-disclosure agreement. Furthermore, the Verite chipset does not incorporate a programmable clock generator. 3dfx owners should try the TWEEK.ZIP utility to adjust the 3dfx's graphics processor clock (GRXCLK) Check < http://www.quakehole.com > for a link to TWEEK.ZIP +Q: Who contributed to MCLK's development? + + Wonderful companies who offered databooks free of charge, notably + Cirrus Logic, S3, and now Matrox. + VGADOC, a collectin of information on different VGA chipsets + gracious usenet users, who sent me a free Tseng ET-6000 databook, + helped out with PCI programming, and answered general questions -------------------------- Questions? Need help? liaor@uci.edu http://www.oac.uci.edu/~rliao