Atomic I/O letters column #12Originally published in Atomic: Maximum Power Computing Reprinted here 30-Aug-2002.
Last modified 16-Jan-2015.
When I try to install Return to Castle Wolfenstein on Windows XP Pro, I get the following error message: "An I/O error occurred while installing a file. This is normally caused by bad installation media or a corrupt installation file". Here's what I've tried to fix this problem:
1. Check the CD to see if it's scratched; not even a fingerprint or a speck of dust.
2. Install it on all hard drives; still the same error message.
3. Run Scandisk on all hard drives and reinstall; no errors on the drives, and yet the same error message.
4. FDISK and reformat the hard drive; no good.
5. FDISK and reformat the hard drive and install Windows 2000; same problem.
6. FDISK and reformat the hard drive and install Windows ME; same problem.
7. Create a backup of the CD, then use the backup to install; same problem.
8. Install it on the other computer in my home; works perfectly!
I have tried everything in my power to bypass this installation error. And yet, it still haunts me. Please, how can I install this game and run it without these problems. I've spend all day trying to figure this out, and it's killing me.
Since there doesn't seem to be anything wrong with your CD, it could be software running on your PC that the installer's tripping over. This error message, actually, is more often caused by software conflicts than by "bad installation media or a corrupt installation file".
If you're running a virus checker, quit it before you try the install. There may be other background apps that are locking files the installer wants to look at, too, but I'd suspect anti-virus software first.
My faithful correspondents also inform me that they've seen this problem caused by a presumably slightly out of whack CD-ROM drive - which works fine with everything else - and by dodgy RAM - which, once again, mysteriously only causes difficulties when you're installing software. Everybody seems to agree, though, that "bad installation media or a corrupt installation file" never seem to have anything to do with it.
I have had my Duron 900MHz for a while now and I'm starting to get bored with the speed and I wanted to overclock it to maybe around 1GHz. I'm a little scared that I might make the computer go up in a cloud of smoke. I have an AOpen AK73 Pro mobo.
What do I need to get in terms of air extractors and coolers, because no doubt the internal temperature will rise?
You don't need to buy any fancy gear for basic overclocking, provided you've got a motherboard that makes it possible - and you have. You do need decent case ventilation, but you need that for stock-speed computers, too.
If the power supply fan is the only thing sucking air through your computer case, add another fan; most cases have a standard mount for an 80mm intake fan at the front.
To get 1GHz out of a 900MHz Duron (which, at stock speed, runs from a 100MHz Front Side Bus), you just have to goose up the FSB to 111MHz or 112MHz. That small an overclock is unlikely to make a noticeable difference to anything, but it's also likely to work on most CPUs at stock voltage. If it doesn't work at stock voltage, a core voltage increase from 1.6 to 1.65V - which you can also do with your motherboard - should be enough to get it running stably.
At about 1GHz, your CPU won't be making much more heat than normal, even at slightly increased core voltage. CPU heat output increases linearly with the core speed (1.1 times the speed, 1.1 times the heat) and, roughly, with the square of the voltage (going from 1.6 to 1.65V thus gives about 1.06 times as much heat). Your 900-to-1000MHz overclock, assuming a 1.6 to 1.65V core voltage increase as well, is therefore only going to result in about 18% more heat output, which isn't at all likely to be a problem.
Any CPU cooler that worked with the stock-speed Duron should be fine with it at 1GHz as well. The other hardware in the computer shouldn't have a problem with a mild overclock like this, either.
I recently bought a generic 32Mb TNT2 M64 PCI video card for my second monitor. My primary monitor uses an Asus AGP-V6800 DDR 64Mb. The extended desktop in Windows 2000 and Windows XP is fine and useful, but I've seen people running games like Quake III Arena on two monitors. I also wanted to run Quake III on both my monitors but couldn't. I edited the q3config.cfg file and got half of Quake on one screen, but a blank half window (had to be a 1600x600 window because it won't work full screen) on the other screen.
I have read that, by default, Windows does not allow OpenGL to run on two monitors simultaneously, or something like that. Is this true? Should I just forget about running multi-headed games?
I also found that when playing movie files in Windows Media Player or The Playa, the movie would only appear in the primary monitor. If I drag it to the second, there would still be sound, but no movie just a black screen.
Using just two monitors for 3D games isn't particularly desirable, because if you use the monitors for a wide-screen forward view, you end up with the break between them right in the middle of your field of vision. For useful wide view, you thus have to have an odd number of screens - three, or even five.
Trouble is, you probably can't actually make it happen, anyway.
For multi-screen 3D games, what you want is hardware accelerated 3D on every screen. Software rendered mode is uglier and much slower - since the CPU's doing all of the 3D graphics work - and many current games don't even have a software rendered mode.
With some combinations of Nvidia-chipset graphics cards - like, for instance, two GeForce2s of any flavour, or two TNTs of any flavour - the current Nvidia drivers for Windows 2000 and XP let you use hardware 3D on all of your screens. But that's not useful for multi-screen gaming, because one 3D application can't display on more than one monitor. You could probably run Quake 3 on one screen and Unreal Tournament on another, but the usefulness of this is questionable.
In Win98/ME, you may not be able to run OpenGL applications like Q3A at all, if you've got multiple monitors set up. OpenGL can only be used on the primary monitor, but the OS isn't smart enough to just turn off the other monitors when you run an OpenGL app, and will either fail to run the program, or just disable hardware acceleration and leave you with incredibly slow performance.
In Win2000/XP, provided the drivers for your video cards are up to scratch, extra monitors should be disabled automatically when you run a hardware accelerated game. But that's still not multi-screen gaming.
Games that can run in windowed, software-rendered mode - like various flight simulators, for instance - will let you have windows on other monitors or stretch one window across several screens, depending on the type of game. You may even be able to view hardware accelerated 3D on your primary monitor, and have windows on the others.
With only software rendering on the secondary monitors, though, they're only really good for things like dials and gauges and maps, unless you've got a seriously speedy PC. Unreal Tournament works on multiple monitors in Windows, because it has a software rendered mode - but you'll need three or five (!) screens, none of them will be hardware accelerated, and so you'll need to run a pretty low resolution on each screen if you want a decent frame rate. You can do multi-monitor Q3A, but only if you're running Linux.
The way around all of this, right now, is to buy yourself a Matrox Parhelia graphics card, which can drive three monitors and allows "Surround Gaming" on quite a lot of titles. It works pretty darn well.
The Parhelia's not a speed demon, but as long as it's backed by a decent CPU then it should be quite fast enough for all but the twitchiest of twitch gamers, and its 3072 by 768 three-monitor resolution is high enough that you won't sacrifice much sniper-scoper detail for your peripheral vision.
Multi-card solutions, though, still have all of the problems listed above.
Most Windows DVD playback programs don't work on secondary monitors. The same goes for many video cards with TV tuners. There's nothing you can do about this.
I upgraded to Windows 2000 a couple of months back. Problem is I've spent as much time as I can since that installation trying to discover how I can alter my system start-up. Wanna help out?
If you want to change the apps that load on startup - little System Tray thingies, and such, you can do it with the System Configuration Utility, msconfig.exe.
The "Startup" tab in msconfig lets you elegantly disable and re-enable run-on-startup apps. If you disable an app and reboot and then things go weird, you can just re-enable it again, easily. You can similarly play with the lower level startup files, but you probably don't need to.
Msconfig doesn't come with Win2000, but it does work with it. The msconfig.exe you want is the one that comes with Windows XP. You just stick that file into the Win2000 \winnt\system32\ directory, and you're away. The system32 directory is part of the standard search path for commands, so now clicking Start, selecting Run, and typing "msconfig" will give you the program, just as it does in WinXP. Particulary enthusiastic users may care to create a desktop shortcut.
I, of course, don't for a second recommend you get the WinXP MSConfig from a Web site, or indeed from your favourite P2P application. Because it's part of WinXP, which means you should pay for it.
Could you please explain to me what degaussing is, what it does and how it affects/helps the monitor? I vaguely know what it does - something to do with the electro magnetic fields and how they stuff up the monitor's colours? I am just interested because I use this feature in the monitor, but was never quite sure what it does.
A Cathode Ray Tube (CRT) monitor works by shooting three beams of electrons at the screen; one beam for red, one for green, one for blue. The inside of the front glass is coated with a pattern of red, green and blue phosphor dots, which light up the appropriate colour when electrons hit them.
To stop the beams from lighting up phosphors of the wrong colour, each beam comes from a different point at the back of the tube, and there's a perforated mask, or a grille of wires, behind the front glass of the monitor. The mask casts a shadow onto the glass - each beam only has line of sight to the right colour of phosphor.
The beams are steered, very precisely, by finely modulated magnetic fields. You don't need a lot of magnet power to steer them somewhere else, though. If there's something magnetic near the monitor - a loudspeaker with no magnetic shielding, for instance - a quite weak field will be enough to move the beams slightly off-course and cause noticeable blotchy colour shifts, and image distortion.
If a field is strong enough to magnetise part of the monitor - like the shadow mask itself, for instance - then even if you take the magnetic object away, you'll still have a problem.
To degauss a magnetised object, you can heat it or hit it, but that's not entirely a practical thing to do with a monitor. Fortunately, you can also use a rapidly oscillating magnetic field that slowly decays away to nothing. That's what a monitor's own degauss coil does; you can see it create big colour and distortion effects when the degauss function first kicks in, but the effects then decay gradually away. The coil is just a few turns of wire around the body of the monitors, but it's enough to deal with many problems.
If that's not enough, you can use a degaussing wand. That's mine scrambling the image in the above picture.
Degaussing wands are more powerful oscillating field generators than come built into monitors. Turn one on away from the monitor, move it close, make some magic passes, move it away, turn it off again. Lather, rinse, repeat.
Why don't hard drive companies make drives with "internal RAID" functions?
Hard drives have more than one platter, and more than one read/write head, so you'd think they could read or write from more than one platter at a time. I know that the head assembly's one piece, so the heads can't move independently, but they could still all do stuff at once and read or write to a whole cylinder in one go, couldn't they?
Pretty much no drive in existence can read or write with more than one of its heads at a time. Drives that can use more than one head at a time have been made; Seagate had a two-heads-at-once Parallel Transfer Drive (PTD) Barracuda model some years ago, the ST12450W 2 Head Parallel (2HP). PTDs can read or write both sides of one platter at once. But Seagate shortly rejoined the mainstream and switched to simply using monster data density and high rotational speeds to get better performance than the PTD could manage.
A PTD with this same improved tech would of course still have a performance advantage over one-head-at-a-time drives with the same speed and data density, but it'd be expensive. Multi-head drives need a separate read channel, write channel, microsequencer and DMA path to their RAM for each head you want to work at once. These components are not free.
If you've only got a one-head-at-a-time drive, you'd think you could at least switch heads really fast and do some sort of interleaved RAID thing. Unfortunately, you can't. The "head switch time" needed to change from looking at one side of a given platter to some other side, or some other platter, even without changing the cylinder (i.e. without moving the head armature) is around one to two milliseconds.
The maximum rotational latency (single revolution time) of a 7200RPM drive is 1/120th of a second, 8.3 milliseconds; that's the longest amount of time a head can possibly be waiting for the disk to spin around and bring the right data to it. If a transfer operation has to wait most of that time for the next sector it's interested in to come around, then putting that sector somewhere else on the cylinder, closer rotationally to the one just accessed, would make sense, even if it meant you had to switch heads.
But with several hundred sectors per track on all current drives, rotational latency from one sector on a track to the next for plain non-fragmented contiguous data is, of course, minuscule, and far lower than the head switch time.
The fastest way for a one-head-at-a-time drive to operate is, therefore, to store as much data as possible in contiguous sectors of one track, then do the same thing on other tracks of the same cylinder, and then move to a new cylinder only when it's out of space on the one it's using.
Another problem arises if you try to make a hypothetical multi-platter, all-heads-at-once drive read and write from more than one platter at a time, and not just both sides of a single platter, like a PTD. Suddenly you need much smaller manufacturing tolerances, because all of the heads have to be on track at once.
The super-small track spacing in current drives - tens of thousands of tracks per inch - means that tiny wobbles or misalignments between the platters and the heads will cause problems. Only by outsourcing drive manufacturing to Protoss slaves could you overcome this problem economically.
Incidentally, I reckon the above picture of an old hard drive's head assembly is rather pretty. If you'd like a 1280-pixel-wide version, suitable for use as desktop wallpaper, there's one right here.