CDBeQuiet! v1.1 =============== Developed by Christoph Boelitz E-Mail: tools@dosforum.de Project page: http://cdbq.dosforum.de/ PLEASE READ THIS FIRST: There are some important things you don't want to miss before using CDBeQuiet!. Until you can safely use this tool, some testing needs to be done, which involves a benchmark to measure the speed of your CD drive. This is necessary, because the speed setting that is best suited for your drive needs to be determinated first. Wrong settings can lead to poor CD read performance. (Read more below) What this tool does ------------------- Optical disk drives (CD, DVD, ...) have become really fast and thus can cause noise during operation. This can be especially annoying with games that continuously need to access the drive during gaming sessions. CDBeQuiet! (aka CDBQ) sets the CD drive to a lower speed setting of your choice. This should result in a slower spindle speed, which then leads to an overall more silent operation. This is all done by sending a single command to your CD drive, after which CDBeQuiet! quits immediately. So it won't take up any conventional memory or stay resident. If the tool generates any errors or you encounter problems while running it, please let me know. When sending me emails, please also include a log file. Use the /l command-line switch to create the log file. If you are a developer, you are welcome to have a look at the source code. Please let me know, if you see something that can be done in a better way, so I might also learn from it. Thanks! Licensing and Disclaimer ------------------------ CDBeQuiet! is fully free of charge and may be distributed. Its source code may be modified and spread as long as you leave my contact information intact. Using it in any commercial manner, as unlikely as it seems, is hereby prohibited. This software has not been tested excessively and is still considered to be under development. I cannot guarantee for the safety of your hardware or data. You are using it on your own risk. Requirements and notes on operation ----------------------------------- * First of all, you need a real DOS environment, such as MS-DOS 6.22, FreeDOS, DR-DOS or the DOS version of Windows 9X/ME (e.g. DOS 7.0 and up). (Not the DOS command-line window under Windows) * This program will not run under Windows. That was never the goal, as there are other tools that can slow down optical disk drives under these operating systems. Also, it will not run under DOSBox (the DOS emulator). * Your optical disk drive has to support the ATAPI command "SET CD-ROM SPEED". Not all drives do. Have a look at the supported drives list (DRIVES.TXT) and if you are unsure, nothing speaks against trying it. Please consider letting me know if this tool works out for you via email, so I can add your drive to the list. * Don't expect your CD drive to follow the selected speed setting very accurately. There are many drives out there that support the ATAPI command mentioned above, but it's up to you to figure out which setting suits your drive best. Please read the "How to test the settings and which rate to choose?" chapter below for more info on that. * Audio playback or audio extraction speeds are not affected. * If you make my tool part of your automated boot process (e.g. putting it in autoexec.bat) please make sure to load any device drivers of your optical disk drive before executing CDBeQuiet!. Device drivers (atapicd.sys, mscdex.exe, ...) are known to send the software reset command, which will reset all settings my tool sent. * Some drives tend to forget the speed setting once you open/close the tray. In this case, the only workaround up until now is to execute CDBeQuiet! again after changing the medium. * Your optical disk drive (be it CD-ROM, DVD-ROM, ...) has to be an ATAPI device conntected to an IDE controller. SCSI drives are not supported. * On DVD drives, the DVD read speed won't be affected. Same goes for writing speed on CD/DVD burners. * The speed settings are not saved in any way in the drive's firmware and will be gone once you reboot or power-off your PC. How do I run it? ---------------- This tool is invoked through the command-line under DOS and can be controlled by the following command-line parameters: Usage: cdbq -p port -d device -s speed [-irfl] Command-line options:\n -p port Specify primary (port = 1), secondary (port = 2), tertiary (port = 3), quarternary (port = 4). -d device Specify master (device = m) or slave (device = s) device. -s speed Choose a custom CD read speed in kb/s. (affects spindle speed); 0 for max speed -i Just print out device information and exit. -r Perform soft reset of CD-ROM drive and exit (experimental). -f Skip all sanity checks and force sending command. -l Log screen output to file cdbq.log (implies /v). -h This help screen Example: If you wanted to set a CD speed of 4x (1x = 150 kb/s) for a master CD-ROM on your secondary IDE channel, the following command will do: cdbq -p2 -dm -s600 How to test the settings and which rate to choose? -------------------------------------------------- It is important, that you determine the correct speed setting for your drive, BEFORE you make use of CDBeQuiet! regularly. You can test different speed settings with the benchmark tool "SPEEDSYS". 1. SPEEDSYS makes use of your ATAPI CD-ROM device driver, so you'll have to load it prior to CDBeQuiet!. It will be best to create a boot floppy disk for this purpose and only boot up with what's necessary for the test: Your ATAPI driver and CDBeQuiet!. 2. After boot, for testing purposes, invoke CDBeQuiet! at a read rate of 600 kb/s (quad speed). This is done through -s600. 3. Please insert a data CD (no CD audio or hybrid disk) into your optical disk drive. It should be an original CD-ROM (not a CD-R or CD-RW) with at least 500 mb on it and make sure it's free of dirt and scratches. That is necessary, because we have to rule out anything else that can affect spindle speed and noise during our tests. 4. Start SPEEDSYS with the following command: SPEEDSYS.EXE /CD /T2. You should now see at what speed your drive is operating. Put your ears against it and decide if it's silent enough and if you are satisfied with the read performance. 5. Repeat the process until you are satisfied with the results, increasing the read speed in steps of ~ 100-300 kb/s. Do this, until you have achieved a good trade-off between noise and read performance. For installation purposes where large amounts of data is to be transfered to hard drive as fast as possible, you can always have CDBeQuiet! set your read speed to maximum with the -s0 parameter. For long DOS gaming sessions, I recommend at least 6x (900 kb/s) real read performance. CD drives react to speed settings in different ways: Some are very accurate and maintain the exact read rate you set. Others only change their read rate in several steps and don't support every little interval. For instance, it might be the case, that a drive doesn't distinguish between settings from 600 to 900 kb/s, but selecting beyond 900 kb/s leads to significantly higher throughput. And some drives don't react to speed settings at all, which normally suggests that they simply don't support it. Also keep in mind that some drives don't retain the rate setting after you open/close the tray. In that case, you have to re-run CDBeQuiet! after each CD change. So, before you can use CDBeQuiet! efficiently, it's always best to know which group your drive belongs to and in what speed setting it will operate fast enough, but still silent. Development ----------- CDBeQuiet! is compiled using the Open Watcom C compiler for DOS. You can use Watcom MAKE to build it. The complete toolchain can be downloaded at http://www.openwatcom.org/ The tool is derived from an assembler program by a guy called "Hackman". For some basic ATA/ATAPI info, look at this page: http://lateblt.tripod.com/atapi.htm Version history --------------- 1.1: * Added support for rarely used IDE base port addresses (1Eh8, 168h) Thanks to Dimitrios who provided a patch. 1.0b: * Builds on Open Watcom compiler now (removes dependency on CWSDPMI host) * Add makefile (use with WMAKE) * Minor bugfixes 0.9b: * New POSIX style command-line parsing * New sanity checks that prevent sending ATAPI commands to hard disks * Real IDE error detection * New -f switch that allows to skip all sanity checks (expert use) * No more -v switch * Source code now much more modular and clean 0.7b: * Display drive model and firmware info via /i switch * Soft-reset command via /r switch * Screen output loggable via /l switch * Drive detection more reliable * Error handling more accurate * IDE error detection (preliminary) * Minor bugfixes 0.6b: * initial release