Welcome to the DOS throttle homepage.
Throttle is a program that uses a new method of tackling the age old "my
machine runs too fast to play this game" problem. Throttle has also been known to cool your CPU and save electricity at the same time!

What it does:
Throttle uses your system hardware to modify the clock speed going to your CPU,
rather than using software "delay loops" or HLT instructions to slow your machine down.
This method provides very smooth slowdowns without any incompatibilies with
software.

Throttle is not a TSR and uses no memory whatsoever.

When running, no program will be able to detect it, nor modify its settings.

Now for the caveats:
Throttle may not be the perfect solution to your speed problem.

In order for throttle to work its magic, it needs to talk directly to the chipset
on your motherboard. Only certain chipsets (most chipsets created after 1996
or so) work with throttle.

To find out if your chipset is supported, just run throttle at the command line.
If everything's good, you'll get a menu of available speed options.
If throttle couldn't find a compatible chipset, you'll get an error message
and some instructions on what to do.

Chances are pretty good that if you've got a new PC, purchased within the last
few years, you're set.

-

Throttle may also still run too fast on very new computers (1GHz or higher).
As CPU speeds increase, even with maximum throttling, a machine this fast is
still going to beat any IBM XT or AT based system. For super fast machines,
it is suggested that you use throttle to do maximum throttling provided, then
use a software based slowdown program such as mo-slo, bremze, or my own slowDOS (see below) to "fine
tune" the delay settings until the desired speed is reached.
Because throttle is NOT a software delay, it will perfectly co-exist with existing software based
slowdown programs.

-

Throttle works best in pure DOS. However, throttle will also work under a Win9x/ME
DOS window, but the amount of slowdown will not be as effective.
Windows XP/NT/2K users should use winThrottle, the link to which is at the top of this page.

-

Throttle is still in development.
If throttle doesn't work on your machine, don't give up!
Contact me and see if your chipset can be added.

Note: The above are Southbridges. Southbridges are 1/2 of a "chipset".
Chipsets are commonly referred to only by the Northbridge name.
For example, you might have an Intel 810 chipset. Well, the 810 Northbridge uses an
ICHx southbridge, so if you know your machine has an 810, your odds of throttle working
are extremely high.

Southbridges change rather infrequently, and as so are often coupled with many different
types of Northbridges. It is MUCH easier for me to only list the southbridge name
simply because that's what throttle uses, and I'd wear my fingers to the bone trying to
keep this web page up to date listing all the new Northbridges that are added daily.

Command line options:

<value> = select throttle option without displaying the menu
-? or -h = display the help screen.
-d = debug mode. Use this if throttle hangs up or doesn't perform any noticeable slowdown.
-p = creates a textfile containing a list of pci devices in your computer.
-c = do not disable the L1 cache. System slowdown is not as effective with this option,
but may be required if your machine locks up. (contact me if this option is required to
get it to run on your machine-something is definitely wrong with my code!)
By default, throttle will disable L1 cache to aid in slowdown.
If you're running throttle under windows, L1 will NOT be disabled.

Some FAQs:

Q) Why is throttle better than using already established programs like mo'slo or bremze?

A) Mo'slo and other cpu slowdown utilities are software controlled throttles that utilize
system timers and interrupts to control the amount of slowdown. As processors get faster,
larger delays must be added to keep the CPU speed under control, which results in jerky
performance.
Software based slowdown utilities also have no control over other programs making changes
to the same interrupt routines that the slowdown utilities use. Because throttle uses the
hardware to achieve the slowdown effect, the results are very smooth slowdowns that cannot
be changed by the software running in the slowed environment.

That being said...
Throttle is not intended as a complete replacement for software slowdowns. Because of the
hardware based nature of how throttle works, it cannot
replace all software based slowdown utilities. There just aren't enough chipsets available
that support the way throttle works.

Because throttle is also limited to the percentage of slowdown provided by the chipset
manufacturer, you may even find that with CPU speeds over 800MHz at maximum throttling,
the system STILL might be too fast for you.

You'll probably find that optimal results occur from a combination of using throttle and
software based slowdowns at the same time.
Use throttle to slow your machine down significantly, then augment the slowdown with a
tiny software delay to "fine tune" the performance to your
liking.

Q) How does throttle work?

A) Throttle enables power management bits in the chipset to control CPU clock. Any chipset
that conforms to the ACPI (advanced configuration and power interface) specification has a
means to enable and control the throttle.
The intended purpose of these bits is to provide a means of power savings, typically
utilized in notebooks or other battery powered devices.
When the CPU is in a throttled state, it uses less power. It just so happens that a
throttled CPU creates a perfect environment to emulate the performance of an older
generation CPU!

Q) I have a chipset that supports ACPI. Why isn't it supported in throttle?

A) Probably because I don't know about it. Because the ACPI specification can be
implemented in different ways by different chipset manufacturers, it's impossible to
create one generic program that works with all ACPI compliant hardware. This creates the
problem of constantly updating the internal database of known hardware. So far, the
biggest problem has been finding the documentation for known ACPI compliant chipsets.
Adding support for them is the easy part! You may also be using an older version of
throttle. Contact me for the latest.

Q) Can I have more speed options than just the 8 (or 16) provided?

A) No. Throttle provides you with as many different CPU throttling options as the chipset
allows. The ACPI spec only defines 8 different modes, each one 12.5% more throttled than
the previous. VIA technologies has taken the spec 1 step further and allowed for
throttling on 6.25% increments, thus doubling the amount of options available, which
provides for more slowdown and a finer tunability.
If you want to run oldskool games, get a VIA motherboard!

There's nothing I can do to change the available options, and no further options will be
available unless the ACPI spec changes.

Revision history:build 27Changed Via 586-F to 6.25% stepping instead of 12.5. Must have been a typo all along. thanks Christophbuild 22Bugfixes, Added ICH7(m?)
release 21 was totally broken, so anyone who snagged it and wondered why it didn't slow your machine down should try this one.build 21Added ICH6m
Added support to give a message on known unsupported chipsets.
AddedCheck to see if user is running in dos protected mode, rather than if user is running under windows. (for cache disable)build 20 - Fix for Via 596B. It was looking for ACPI in the ISA/LPC bridge, but via
moved in into it's own ACPI function now.build 19 - Re-added VIA 8237. Somehow it had been removed. (durh!)
Slight change the L1 cache enable/disable routine. Might be better compatibility, might be worse.
Email me if it breaks for you and we'll try and work something out. Use the archive here if older versions work better.
Slight changes to the debug message output.build 18 - Changed base address on ALI 153x chipsets.
Either this has been broken since day 1 and no one has complained, or ALI changed their hardware and didn't change their device ID.
luckily, we've got the back catalog here, so if your ALI machine no longer works, grab a release older than this one.build 17 - added Intel's 440MX mobile chipsetbuild 16 - added Intel's ICH 6 and SiS 962 (untested)build 15 - added via 8237build 14 - little code cleanup, changed to build# instead of version. No new hardware0.13b - added ICH4-M, ICH5, Nforce2
(hopefully)0.12b - added another Via 8235 (for Epia motherboards) New
device ID?0.11b - added ALI 1535 (big thanks to Alan Cox!)0.10b - added or updated: Nvidia Nforce1, Via 596B, 8233, 8233A,
82350.09b - added ICH3s, ICH3m and ICH4 support.0.08b - added command line argument to select speed option and
bypass menu. Useful for batch files.0.07b - added SiS, Nvidia Nforce. Changed -p to dump all
pci devices and registers.0.06b - added AMD 755, 756, fixed device ID in AMD 768 0.05b - added support for AMD 766 0.04b - faster detection of chipsets. Scans only Bus 0 and 1.0.03b - added better diagnostics with the -d command line
switch.
added -p switch
to display all PCI devices in the system
0.02b - added support for via and amd chipsets
0.01b - initial build. only supports intel ICH and piix4 chipset.

You may also be interested in a program I wrote in 2001 called SlowDOS.

SlowDOS is a software based slowdown utility, similar to Mo'slo and Bremze that allows you
to customize the amount of slowdown in 0.05ms increments. A combination of throttle
and SlowDOS should allow you to put any machine down to the good ole 4.77MHz days.
SlowDOS also has a /Q command line option to force the PC speaker off at every
interval, so you can play those classic games without waking up the rest of the house.