Tired already

June 27th, 2004

Sitting at work listening to Kevin Bloody Wilson and dozing off already.. and I slept a good 7 solid hours during the day!

I’ve pumped myself full of caffeine, just waiting for the kick… *yawn* graveyards suck, but I guess I cant complain – being paid to sit here and listen to music, babysitting dozens of servers, and taking not even a handful of calls.

Saturday’s graveyard is usually ok because hardly anyone works on a Sunday.. this graveyard is different, it’s quiet until about 6am when people start showing up at work on Monday morning and realise that their drinking over the weekend has wiped the part of their (or what they call) brains that holds their passwords and other such things

GO ME!

Graveyards suck

June 27th, 2004

Well she’s been a fair while since my last post and well what to say…
I’m overworked and overpaid (and subsequently overtaxed, now I’m more socialist than the next guy but 700 bucks tax in a week is just silly)

With all the money that I’ve been getting, coupled with my lack of a social life (caused in part by the overworking – vicious cycle ahoy) I’ve been spending money on new toys… I replaced my large clunky 17″ CRT with a swanky 17″ widescreen LCD monitor, I purchased a brand spanking new Canon A75 camera and even more wifi gear. Currently I’m saving for a laptop, I get a nice discount on them through work :)

In other news, I am presently the tenant of two flats. Yes folks, we have found our next residence, on the other side of Petone in Williams St. This place is HUGE compared to our last two, and nicely priced too. It’s a well maintained place and doesnt suffer “House That Jack Built” syndrome like our last two flats have. Pictures will follow when I get the keys.

And finally, progress on the wireless network is coming along nicely… for the timebeing I’m referring to it as “Lilypad” but whether that name sticks remains to be seen. Currently tightening down a few specifics and creating a formal proposal document before we go into our next round of meetings.

I’ve had too many graveyards in a row.. Thank god my company subsidised a flu jab this year, otherwise my immune system would be so dented by now that I’d be spewing from both ends 24/7… hopefully this weekend is my last graveyard for a while… hopefully

Soundcard fixing

June 19th, 2004

Soundcard Tweak Guide


Article Quick-Links:


Preamble
Introduction
Why?

Problem Symptoms
Article Goal
Assumptions
Recommended combination of Tweaks
Disclaimer

Tweaks
Some Basic Settings that shouldn’t be overlooked
Mute Your Unused Inputs

Some BIOS Settings
Some Registry Settings
Adjusing the IOPageLockLimit
Disabling Executive Paging
What to do if you get stuttering while scrolling
DirectX Issues
General Game Tweaks/Workarounds
CreativeLabs SoundBlaster Audigy “Squeal of Death”
Cooling your Audio Processing Unit (APU)

Adjusting IRQs: Introduction
Adjusting IRQs: Discovering your IRQs
Adjusting IRQs: Reshuffling using the BIOS
Adjusting IRQs: Installing the Standard PC HAL
Reinstall Method
Lazy Method
Sidenote – Hardware
Adjusting IRQs: Reinstalling Advanced Power Management (APM)

IRQ Priority: Adjusting the IRQ Priorities

Adjusting the PCI latency
What is PCI latency?
How to adjust PCI latency

Conclusion
If nothing helps
Glossary of Terms
About the author

[Return to Top]


Preamble:


I do not consider this to be a “definitive” guide, I do not consider this to be a “definitive” anything. I consider this to be nothing more than a collation of recommendations with a bit more explanatory meat to them. While this guide is far from complete, I do consider it to be a working document, so your input is valued. If you have something you would like to correct, define a bit more on, or something completely different to add, by all means submit it! I also focus on stability/usability over performance (in this instance it was to get full usage of my Soundcard), so I didnt perform any synthetic benchmarking before/after applying these tweaks. Any conclusive comments are subjective. If someone wants to supply some before/after benchies, feel free to do so!

My System:
Asus A7N8X-Deluxe 1.04 1004 BIOS
AMD Athlon 1800+ TbredB @ 2400+
2x 256meg PC2700 Samsung TCB3
Seagate Cuda 7200.2 80gig
Pioneer DVD120 16x DVD-ROM
LG 24x CD-burner
Chaintech GF3 Ti200

Philips Acoustic Edge
win2k, nVidia 2.41 driverset installed, but using the mwarhead 1.1 IDE drivers

Watercooled.. thats another story though, look here for a picture of roughly how it is.

[Return to Top]


Introduction:


Since purchasing my Asus A7N8X Deluxe Motherboard, I have noticed what I have dreaded for a while – my Philips Acoustic Edge has the occasional stutter during gaming, and can sometimes BSOD my system (it did so after an awesome round of BF1942: DC at L3). While not as bad as some other cards, such as CreativeLabs’ SoundBlaster Lives! and Audigys, the AE, like any other Soundcard, has been no perfect angel to its users. I was lucky to have an easy time with mine on my previous Via KT133A based Motherboard.

While it was tolerable, and not as bad as what some other people have come across with their nForce2′s, (eg for me it was occasional – not constant) it should still really NEVER happen: This was a NZ$300 Soundcard when I got it, and a NZ$330 Motherboard using technology that was mature enough to adopt, and no longer bleeding edge.

Two highly priced products from reputable companies should perform without a hitch, and in terms of the Soundcard – I should not have to “knock back directsound acceleration a notch or two.” Call me stubborn but I did pay a bit of money for it, I want to use it to its full capabilities. Telling me to knock its directsound acceleration back is like telling the owner of a problematic car: “removing a couple of wheels will fix your problem” before even looking under the bonnet.

“But why not use the onboard Soundstorm?”

The sound quality of the onboard audio on nForce2 boards is determined by the CODECs/DACs. In the case of the Asus A7N8X-Deluxe, we are dealing with a Realtek AC650, which, while more than capable, is still inferior to the Sigmatel’s used by the Philips Acoustic Edge. That and the value of the AE hasn’t degraded far enough yet for me to give it away to a family member. People elsewhere will have their reasons for sticking to their Santa Cruz’s, Audigys, Lives, GametheaterXP’s etc This article did start out attempting to provide a solution for Philips Soundcards/nForce(2) Motherboards, but it has since evolved into much more. It is now far more generalistic, but is still based on my experiences, which are with a Philips Soundcard and an nForce2 Motherboard. The Soundstorm is not without its faults either, so basically there’s a lot of problems with a lot of Soundcards when paired with a lot of different chipsets, and this article hopes to solve some of those problems.

A more detailed description of symptoms:
“Scratching”, “popping”, “crackling”. All terms used to describe the overall symptom – Noise. Noise is generally defined as: “Sound or a sound that is loud, unpleasant, unexpected, or undesired”, in physics: “A disturbance, especially a random and persistent disturbance, that obscures or reduces the clarity of a signal”, and in computer terms: “Irrelevant or meaningless data”. To someone who just wants to listen to music, popping and crackling sounds is annoying. To someone playing a game, hearing static instead of the footsteps of the enemy can be infuriating. The noise is unwanted, the noise should not be there, and hardware manufacturers can be doing a whole lot more to be getting this problem fixed.

Goal of this article:
Hopefully to cure a lot of Soundcard issues! I would like this article to also say something to hardware manufacturers – This IS a prevalent issue, in some cases it is very simple to fix, and it should not be ignored.

Assumptions:
This article assumes a familiarity with configuring BIOS settings, changing registry settings using regedit and an overall knowledge of and confidence with the Win32 environment. Readers using Linux should look at a similar article here. If any of the suggestions of this article scare you, you should either get a more computer-saavy friend to do the grunt work for you, or research a bit more first. There are plenty of links provided in this article, use them.

Recommended combination of Tweaks:
I recommend at the very least the IRQ8Priority Registry Key, as this will give an overall system performance boost, as well as the PCI Latency tweak. The PCI Latency Tweak should fix most of the symptoms out there. I also highly recommend newer IDE drivers for your Motherboard. Other tweaks are provided as supplimentary.

Disclaimer:
These tweaks are provided as-is and have been tested on my rig, so I know that they work. However that is no guarantee that they will work on your computer. It’s good practice to backup your stuff before tweaking. Basically, I take no responsibility for any loss of data, any emotional stress or anything else related to you hosing your rig.

The registry keys are provided as-is. You should always backup your registry before making changes, and the same holds true for applying registry values downloaded from the internet. I take no responsibility if they hose your rig. They work on mine, so they should work on yours.

[Return to Top]


Tweaks:


Some Basic Settings that are often overlooked:

PIO/DMA – If you are getting stuttering sound while playing an audio CD, or when listening to music while transferring data from a CD, then chances are your CD-Rom/Writer/DVD-Rom is stuck in PIO mode. Ideally, for the best system performance and to correct the stuttering, you want your optical drive to be in DMA mode.

The difference between PIO and DMA – speaking on a very basic level, PIO uses your cpu to control the transfer of data between your drive and its controller and onto other areas of the system (ram, vmem, hdd’s, ip traffic etc which are traditionally all smacked onto the pci bus which is tied up enough as it is), wheras if you enable DMA, a small “cpu” built into the drive itself controls the transfer of data between the drive and the data’s destination points… this takes a load off your cpu and improves overall performance.

For some silly reason Windows tends to put optical drives onto PIO without even bothering to try DMA. At a random guess it’s just a compatibility mode to cater for the large number of actual PIO-only drives out there.

To fix this problem, the first thing you should do is look at your Motherboard Manufacturer’s website for the latest available Motherboard drivers. Most Motherboard drivers these days will automatically enable DMA on your optical drives, and will give you an overall system performance increase in the process. If you don’t know your Motherboard make/model, download a system analysis program like Sisoft Sandra or Aida32, and use it to find out what Motherboard you have. Then use Google to find your Motherboard manufacturers website. Normally .com.tw (eg asus.com.tw) will get you on the right track. Then search around the manufacturer’s website for support and drivers for your model. Amongst it all will be BIOSes, manuals, utilities and drivers for your Motherboard. Download the latest Motherboard drivers for your OS, install and enjoy.

In fact Holden, a prolific member of the 3D-SoundSurge forums, stresses the following point:
The problem isn’t only due to latency or IRQ settings…. like I’ve mentioned before, changing the IDE driver to VIA’s IDE Miniport driver instead of the usual ones that come in the Hyperion package has alleviated the problem previously for me, where all else had failed, or only partly solved the issue. Many people have never heard about the Miniport driver….

as in the case of both VIA MVP3 and the KT133 chipset, with the ThunderBird Q3D and ThunderBird Avenger DSP’s. However, the KT266 onwards hasn’t been a problem… though I still use the Miniport drivers due to the performance increase. It is certain that the Miniport driver will not solve crackling/popping on VIA based systems in every case, but everything helps!

So it is basically fundamental that you get the right drivers for your Motherboard!

If you have trouble with the previous suggestion, you can just go on and use your default Motherboard drivers. I would suggest you first attempt joining a forum and asking for assistance. To enable DMA this way depends on what version of Windows you have: If you have win9x you’ll have to open up Device Manager (right click on My Computer left click on Properties and then click the Hardware tab – if I recall correctly), then double click on the rom drive that is affected and in the Settings tab select the DMA checkbox. Restart and you’re away laughing.

PIO to DMA mode

However if you are using 2k/XP, you’ll have to open up Device Manager (right click on My Computer left click on Properties and then click the Hardware tab, and then the Device Manager button) *breathes in* then expand the IDE ATA/ATAPI Controllers, select the controller that your drive is on, (normally the secondary controller) and go to the properties of that controller. Then click on the Advanced Settings tab and change all instances of PIO Only to DMA if available. Apply, restart and you’ll be away laughing.

PIO to DMA mode

Drivers – Make sure you have the latest drivers installed for all your devices, including Motherboard drivers. A good rule of thumb is to only use drivers recommended under WHQL. Search around for forums for your devicetypes (eg Soundcard forums for your Soundcard, Vidcard forums for your vidcard etc), or just general hardware/PC enthusiast/overclockers forums and read feedback about differing driver versions. The key is that the internet is a vast resource – research, research, research! To quote an old STFW addage “Google is your friend“. Armed with the best set of drivers for your hardware, you can get the result of the least issues and the best performance, or at least the best compromise between the two.

A personal recommendation from me is that you acquire drivers that are ASIO compliant, if at all possible. If you can get ASIO compliant drivers, then most of your problems should clear up straight away.

Mute Your Unused Inputs
When idle, you might hear a slight buzzing through your speakers. This can usually be attributed to noise coming across one of your inputs. For example if you don’t have an analogue audio cable connecting your soundcard to your cdrom, you’ll probably get a buzzing noise through your unused cdrom-in plug on your soundcard. To get around this go into your Advanced Volume Control, go to Options > Properties and select to display all inputs/outputs for both Playback and Recording. Once these options have been set, go back to your Volume Properties and ensure any unused inputs/outputs are muted. It should look similar to the following:
volume control properties

[Return to Top]


Some BIOS settings: (Kindly suggested by Ragnor, a fellow AE owner)
PCI Master Read Caching: Disabled
PCI Master Bus Timeout: Disabled
Master Priority Control: Disabled

PCI1 Master 0 WS Write: Enabled
PCI2 Master 0 WS Write: Enabled
PCI1 Post Write: Enabled
PCI2 Post Write: Enabled
PCI Delay Transaction: Enabled
Master Delay Transaction: Enabled
Assign IRQ to USB: Disabled
These may or may not help your setup, and/or your BIOS may or may not actually have these items. These work for an AE on a KT333 system

Take a look at the BIOS Optimisation Guide at Adrians Rojak Pot to learn what each of these are.

Another thing you will want to do is disable ALL unused devices in the BIOS – Serial ports/Parallel port/USB ports, onboard sound, onboard LAN devices, onboard video etc… If you aren’t using them, disable them! . This will free up hardware resources, and some people claim improvements in stability. For some this is all you need to do to correct some sound issues as the unused devices are no longer “sitting on the fence” as far as your PCI bus is concerned. The most recent BIOS from your Motherboard manufacturer wouldn’t go amiss either.

Note: If your Motherboard has onboard sound and you install a PCI Soundcard, make sure onboard sound/midi/gameports are disabled in your BIOS! If the options arent there, you can assume that your BIOS will automatically disable these devices when it detects another Multimedia Controller on the PCI Bus.

[Return to Top]


Some Registry Settings:
Soundcardfix
Open up regedit (Start > Run > regedit -or- Windows Key + R > regedit, then press enter to invoke it) and browse to the following key:
[HKEY_LOCAL_MACHINESystemCurrentControlSetServicesVxDBIOS]

If the key doesn’t exist, create it.
Add any or all of the following DWORD values:
PCIConcur = 1 (enabled)
FastDRAM = 1 (enabled)
AGPConcur = 1 (enabled) (use AGPConcur if you are using an AGP Video card).

Soundcardfix

These settings allow installed devices to use extra CPU cycles for PCI, AGP and/or DRAM based I/O transfers from the Motherboard interface/bus/bridge (PCI, AGP, DRAM) to the CPU, and vice versa. Choose carefully though, you might bring your systems’ equilibrium out of balance with these, I would recommend at least the PCIConcur tweak, the rest are up to your discretion.

Adjusting the IOPageLockLimit:
Normally this tweak doesnt hold much real purpose if you aren’t running some kind of server. What it does is boosts your computers I/O performance when doing large file transfers or similar tasks. So it certainly can’t be detrimental. This should only be applied if you have more than 128megs of ram.
While in regedit, browse to:
[HKEY_LOCAL_MACHINESystemCurrentControlSetControlSession ManagerMemory Management]
and click on the value IOPageLockLimit (if it isnt there, create it) and change its value to between 8 and 16 megs (by default its set to half a meg). The value has to be inserted in byte form, so use the formula (n * 1024 * 1024) to calculate the value you need. For example, if you want to set it to 8megs, then multiply 8 * 1024 * 1024 giving 8388608 bytes. Put this in as the value, it should appear as follows:

Soundcardfix
Here you can see how close the Memory Management area of the registry is in relation to the PriorityControl area that we will work with later.

Disabling Executive Paging:
When enabled, this setting will prevent the paging of the Win2k Executive files to the hard drive, causing the OS and most programs to be more responsive. However, you should only apply this if you have more than 128megs of ram, because this setting does use a substantial portion of your system resources.
While still in:
[HKEY_LOCAL_MACHINESystemCurrentControlSetControlSession ManagerMemory Management]

Double-click on DisablePagingExecutive and set its value to 1 to enable it.

Download: registry iconPCIConcur registry iconFastDRAM registry iconAGPConcur registry iconIOPageLockLimit registry iconDisablePagingExecutive
(Disclaimer)

Other Registry tweaks are defined below.

[Return to Top]


If sound stutters while scrolling:
Pierre from Canada suggests:

Problem: Sound stuttering on rapid scrolling a web page with the mouse scroll wheel, notably
when the sound source is an optical drive.
Solution: In Internet Explorer, under ToolsInternet OptionsAdvancedBrowsing untick “use smooth
scrolling”.

The solution provided by Pierre is IE specific, but indicates that smooth scrolling is part of the problem, and the subsequent disabling of smooth scrolling can help fix this issue. If you have this issue with other programs, see if you are able to disable smooth scrolling, it may help. Thanks Pierre!

[Return to Top]


DirectX Issues (Submitted by Ragnor)
For some reason when Microsoft released DirectX 8 they felt the need to leave sound debugging enabled. This caused all sorts of problems in newer games that need every bit of performance your machine might have.

To checkup on DirectX, head on over to the Start Menu > Run > type in dxdiag and press enter. Click on the Save all information button. Save the dxdiag.txt to your desktop (or wherever) and have a look through it for the section called DirectX Debug Levels. They all should be at 0 or Retail

There is no problem with DirectX 9 and it has proved stable so there is no reason to not be using the latest version (currently 9.0a)

If you happen to be stuck with DirectX 8.x, for whatever reason, there is a DirectX Control Panel Applet that allows you to adjust such things as debug levels. May the Google be with you.

Another reader suggests: “If possible, increase the DirectSound buffer in your applications. I find that 2000 to 3000 ms works wonders for winamp.”

Finally, if all else fails with the other tweaks in this article, and you are unable to get another card, for the time being you should set back the acceleration level on your Soundcard. To do this open dxdiag from a run dialog and click on the Sound tab and then pull your acceleration level back a couple of notches. This will disable features such as 3D Audio, EAX, A3D etc and is not really suitable in my opinion, but it should keep you going until you can get a Soundcard that works.

DirectX sound acceleration level

[Return to Top]


General Game Tweaks/Workarounds
An old workaround to get rid of graphics and sound stuttering for Grand Theft Auto III was to use a program called 3D Analyze, which would force certain settings to allow smooth playback. It would usually sort out sound issues as well, so give it a shot with your other games!

3D Analyzer

3D Analyzer
Basic Recommended Settings for 3d Analyze

3D Analyze can be found at Tommti Systems.

Change your API:
These settings are game dependant, whether or not your games have these options is up to the game developers. There will be other ways to apply these settings however, so search around for manual editing of .ini and .cfg files for your game. If possible, your video API should be set to OpenGL, or if you still have a 3dfx card and the option is available, use GLide. As far as sound is concerned, if you are having issues, try changing your sound API from EAX to A3D. If that offers no improvement, try going back to DirectSound3D Hardware, and again if that offers no improvement, try DirectSound3D Software.

Try a clean-boot
Check out this support article by Microsoft. It details how to setup your system for a “clean boot” to stop background applications from impacting on your gaming performance.

[Return to Top]


CreativeLabs SoundBlaster Audigy “Squeal of Death”:
Extremetech have an article posted that indicates a possible solution for the Audigy “Squeal of Death.” Certainly worth a look for owners of all Soundcards, not just Audigy owners.

[Return to Top]


Cooling your Audio Processing Unit (APU):
CPU’s and GPU’s have come along in leaps and bounds technologically speaking, and have also come along in leaps and bounds in thermal output (basically they’re faster and hotter). So why should this not apply to APU’s as well? These days we have 5.1, EAX, A3D, QSound, Sensaura, onboard Dolby Encoding/Decoding and a whole plethora of other things, wouldn’t it be safe to assume an APU that has increased in complexity would also have increased in thermal output? CPUs, GPUs and Northbridges all come with heatsinks nowadays, so why not your APU? If you look at your Soundcard, you will probably notice that your APU has no cooling whatsoever. A number of people have confirmed that the addition of a simple passive heatsink will correct a lot of the issues, as the APU is running colder it has lessened probability of errors occuring. I personally recommend a pair of ramsinks, which can be found cheaply at overclocker/pc modding retail sites. However an old northbridge or CPU heatsink will do perfectly.

uncooled soundcard
The soundcard used for this example is an old SoundBlaster 16 I had sitting on the shelf. Here you can see that like most other (and more modern) soundcards, it has no heatsinks whatsoever. So the first task is to determine which particular chip is your APU, as a rule of thumb however, the largest chip is your APU. You probably wont have as many chips on your PCI card as there are on this old ISA relic. Once you’ve found your APU, simply put your heatsink(s) of choice on. How you do so is up to you, there are a few methods:
3M Thermal Transfer Tape “Fragtape” (pdf)

Arctic Alumina
Thermal Grease + Superglue (scroll down)
I personally recommend the thermal tape method as it is completely reversable. This is important for warranty purposes. If your soundcard is out of warranty, then I would recommend the better performing but virtually permanent Arctic Alumina.

cooled soundcard
cooled soundcard
The APU with a pair of ramsinks applied.

For those of you using onboard sound, you will want to do the same but first you will have to find your onboard APU. If you look in your Motherboard manual, it will show you where your APU is in the board layout diagram, which can usually be found within the first 10 pages. If you are using a nForce2 based Motherboard, you will want to stick a heatsink on your Southbridge (MCP/MCP-T) as this contains your APU.

cooled southbridge
Here you can see a small heatsink thermal taped onto my Southbridge. This can be recommended for all Motherboards, as the Southbridge is becoming increasingly complex and busy. Other items on your Motherboard that you may want to cool are your MOSFETs and your PLL chip. At present you will probably not need a fan. If you do want one however, I would recommend a PCI card cooler, or you can make your own.

Just so you take my advice seriously, Here are some thermal images of a nForce2 Southbridge. HOT!

[Return to Top]


IRQ (Re-)Organisation:
Another thing to do is get your Soundcard onto its own IRQ. If you check, you’ll probably find that ACPI has thrown your Soundcard onto the same IRQ as a number of other items. While ideal from an ACPI viewpoint (hey it works and it’s stable right?), this practice is not totally ideal for us, the end user. This is because the Soundcard is sharing resources with other devices. It’s bad enough that the Soundcard has to share an already busy PCI bus.

Imagine a table of cakes(resources) and a bunch of kids(devices). Instead of being shared equally, several kids are forced to share one cake. They each get a smaller share while the other kids get away with huge shares. Doesn’t seem fair does it? What we want to do is, if needed, manually force a more logical and balanced distribution of resources.
(For another description of IRQs, scroll down to the Glossary section, and here’s Microsoft saying “Sharing Interrupts is Bad” and finally a Slashdot post by Mr-ACPI himself.)

We want to get every device onto its own IRQ, or more importantly you want your video card and sound card on their own IRQ’s, anything else can share for all we care. We do this as the Video card and Soundcard are important enough to require their own resources (let’s just say that they are bigger kids so deserving of a bigger slice of cake – the point is the distribution of resources is better balanced). This is more important for Gamers, who are most likely the people reading this article.

Some of you with ACPI/APIC will be lucky enough to already have your IRQ’s sorted, some of you will not (XP users are also more likely to be better off than 2k users in this regard). For me the most surefire way of getting this holy grail of IRQ harmony is to install the Hardware Abstraction Layer(HAL) as Standard PC and then manually add Advanced Power Management(APM) support back later (if you want the system to turn itself off when you shutdown, or have standby, which is not a big issue for me as I’m an always-on user.)

To find and check your IRQ’s:
I’m not too sure about XP as I’m not a big fan of it, but assuming you have an admin login to your machine, it should be along the same lines as 2k:

Right click on My Computer (either on your Desktop, or for XP users you’ll find it in the Start Pane), then left click on Manage (another way to get to this point is to open a Run dialog, type winmsd and press enter). Expand System Information, expand Hardware Resources and then click on IRQs. Something similar to the following will be displayed:

Soundcardfix
This is your IRQ table. This one is definately not ideal – look at all those devices sharing IRQ20! (This is a friend’s PC, which explains the differences to the following image, it’s indicative of the problem though)

Soundcardfix
This is a more ideal IRQ table. You can see that the video and sound cards have their own dedicated IRQs. Also note that there is a reduced number of devices, as I have disabled unused devices in my BIOS. The devices circled in red are the ones you will want to give priority to (CMOS/Real Time Clock and your affected Soundcard). So take note of those two IRQ’s for the time being.

Your IRQ table will probably be different, but chances are that your CMOS/Real Time Clock will be on IRQ8. Whatever your Soundcard is on is the other IRQ number you’ll want to take note of. If your vid/sound IRQ’s are on dedicated IRQ’s already, proceed down to IRQ#Priority, otherwise read on.

IRQ Reshuffling using your BIOS:
Simply note down the number of the most used IRQ in your IRQ table and restart your computer. As your computer is starting, pop into your BIOS and look for IRQ adjustments, which can usually be found in hardware/pnp/pci/peripheral areas of your BIOS. If your BIOS supports it, reserve the IRQ number of that most used IRQ. So for example if you have several devices on IRQ 11, then reserve IRQ 11 in your BIOS. Upon restarting, Windows will be forced to reshuffle its IRQs around. If this doesn’t work, or if your BIOS doesn’t have the aforementioned options, you will have to go about it another way: Changing your HAL to Standard PC.

To install the Standard PC HAL:
There’s really no point re-inventing the wheel.. this has been retold over and over again, so I’ll summarise. For a more complete description, take a look at select your HAL during Windows setup. The “lazy method” defined below is not recommended as it can cause your computer to not boot Windows. Switching from ACPI to Standard PC almost always works (“you should be ok though”), but going the other way almost always doesn’t (“but you probably can’t go back once you’ve done it”). So 2k users: Create a hardware profile with ACPI so that you can use “Use Last Known Good Configuration” from the F8 boot menu should things go wrong. XP users: Create a System Restore Point.

Howto – Reinstall Method:
To Be Done

Howto – Lazy Method:
1. Open Device Manager.
2. Expand Computer

3. Change any and all instances of ACPI Uniprocessor PC / Advanced Configuration and Power Interface (ACPI) PC to Standard PC by choosing to upgrade device driver > manually select from a list > show all hardware of this device class.
4. Once both are set to Standard PC, restart your computer and have all your drivers ready.

Device Manager

Sidenote – Hardware:
At this stage, with your computer off, it might pay to check the location of your Soundcard – you want it on a PCI slot as far away from your AGP slot as possible (generally speaking). Check your Motherboard manual, it will tell you which particular PCI slots have dedicated IRQ’s, on the Asus A7N8X Deluxe, the best slots to use from what I can tell are Slot 2 and Slot 4. As Slot 4 is the furtherst from the AGP slot, we’ll use that.

Other cards such as NICs can fall into place in other slots.. generally it helps to use every second slot, based on the assumption that resource sharing comes in pairs (eg AGP and PCI-1 share, PCI-2 and PCI-3 share, PCI-4 and PCI-5 share etc.) This also has the advantage of allowing a bit of airflow around each of your cards, keeping them a little colder.

When you restart into Windows, it will probably reinstall a lot of your hardware. Just let it do its thing. If it asks you for drivers, either install as per norm (from hdd/cdrom) or you could point to c:winntsystem32drivers (c:Windowssystem32drivers for you XP users) for the driver location. Other locations are winnt winntsystem32 and winnthelp (Windows Windowssystem32 and Windowshelp respectively for XP)

Each time it asks you if you want to restart, decline. You should restart after either the Soundcard or the graphics card have been installed though. It’s just good habit.

Once all your hardware is installed, restart for good luck, and then check your IRQ’s as described earlier. All going well you should now have a tidy IRQ table.

To Reinstall Advanced Power Management (APM):
If you require power features such as hibernation/suspend/stand by, or just want your computer to turn itself off when you shut it down (instead of staying on and displaying that horrid “It is now safe to turn off your computer” screen), you will want to install Advanced Power Management. Again, what’s the point in reinventing the wheel? Take a look here for more on APM, although I’ve found the process for Step 5 is slightly different for win2k SP3:

1. Open Control Panel, and then double-click Add/Remove Hardware. Click Next
2. Select Add/Troubleshoot A Device, Click Next
3. When the Hardware Wizard completes searching for new hardware (it will find nothing), select Add New Device, and then click Next.

4. Select Yes, Seach for New Hardware, and then click Next. Once it’s found nothing, Click Next.
Soundcardfix
5. Scroll down and select NT Apm/Legacy Support, and then click Next.
6. Select NT Apm/Legacy Interface Node and click Next.

7. Click Next again, and then click Finish.

Upon restarting, Windows should automatically install another NT Apm/Legacy driver. After another restart, check the APM tab in the Power Options from your Control Panel:

Soundcardfix
You can also check and enable hibernate if you require it.
At this point you may want to check and see if your problems still exist. If they have disappeared, then it was a simple IRQ Sharing problem, and you can choose whether or not to go on with further tweaks.

[Return to Top]


Adjusting IRQ#Priority:
Fire up regedit (Start > Run > regedit -or- Windows Key + R > regedit, then press enter to invoke it) and expand the hierachy to the following key:

[HKEY_LOCAL_MACHINESystemCurrentControlSetControlPriority Control]
Once there, right click on the right pane and select a new Dword value. Give it a name using IRQ#Priority (where ‘#’ is the IRQ number), then set the data to 1. For this example we’ll want to make two values, one called IRQ8Priority and IRQ12Priority. Make sure both have their values set to 1

Soundcardfix
Here you can see regedit with the two priority dword values, showing that the values are set to 1.

There are other devices that may give an improvement, BUT, but but but… you do not want to give too many devices priority. The whole point is to give selected devices priority by IRQ over the other installed devices. This way the higher priority devices get more of a chance to do their job. If you give all your devices priority, you’re wasting your time as you’re defying the whole point. Also, too many devices given priority will cause instability. So choose wisely/carefully, whichever comes first.

Download: registry iconIRQ8Priority (Disclaimer)

[Return to Top]


PCI Latency:

What is PCI Latency?

(Part of this description excerpted from George Breese’s (www.georgebreese.com) VIA Latency FAQ, with permission)

PCI Latency defines the number of cycles that one PCI-Busmaster-Device can request the PCI-bus for its own use, before releasing it. “Latency” is a condition where something is “present yet hidden”. In technology, “latency” describes a time when data is needed but not yet available. “PCI latency” is the case where the PCI bus is not yet available. PCI devices must share the PCI bus fairly. A PCI device must give up shortly after it is told to do so. The amount of extra time that each device spends before releasing the PCI bus is the measure of latency in the PCI bus. For a very simple explanation with pretty pictures, read on.

latency
Let’s assume for a moment that this pretty graph indicates time spent on the PCI Bus. The Soundcard has been given 32ms of time on the bus, and a further 32ms of latency (eg a latency setting of 32). But what if the Soundcard needs an entire 70ms to transfer a lump of data? Sorry, rules are rules. 32ms passes and the Soundcard is told to give up the PCI Bus. During its further 32ms of latency the data transfer still isn’t completed. At the end of the latency the network card, which has been waiting, jumps onto the PCI Bus. It’s assuming the Soundcard has finished its transfer. The interuption of the data transfer comes out as a skip in audio to the end user. So how do we correct this problem? Simple. We increase the latency.

Of course we don’t want to increase the latency too far, as this will potentially leave the PCI bus virtually idle. Imagine the Soundcard with 248ms latency… the PCI bus would just sit there while all the devices twiddled their thumbs waiting. So basically you want to get the best setting for your cards. This will require experimentation to find out the best combination for your particular setup.

How to adjust PCI Latency:
First of all you should check in your BIOS and see if you are able to adjust PCI Latency there. It will usually be called PCI Latency Timer. If it is there, adjust your levels based on the slot your devices are installed into. The best balanced setting differs between systems, so experiment to find what is best for your system. A basic rule of thumb is that order of preference should be – Graphics, Sound, Communications. So your Graphics card will have a higher latency usually in the 96-248 range, preferably about 128. Your Soundcard will follow up in the 64-96 range, and your communications devices (modems, NICs) should be set to 32-64. You will see some recommended combinations later on. After setting your latencies, exit your BIOS, saving all changes and boot into Windows and use SiSoft Sandra to check that your latency settings have taken effect.

Viewing Latency with SiSoft Sandra
Note: Do not confuse this setting with PCI Target Latency, which, by the way, should be set to enabled.
The idea for this section came from Humantuckshop

Otherwise:

If you are unable to adjust any PCI Latency options by way of your BIOS, then you will have to either put up with the values that your hardware automatically chooses, or you will have to tweak from within Windows itself. The problem with going with the automatic assignments is that your soundcard will usually go by the lowest default value of 32. Not good.

Users of Motherboards based on Via chipsets should have a look at George Breese’s Via Latency Patch. Users of other chipsets will have to go about fixing this issue another way. The method descibed here is based on another article by Phileosophos of Phil’s Thoughts. You should probably all thank him, he figured out how to solve this problem for those of us not on Via-based systems. I’d like to thank Phil for allowing us to integrate his ideas/content into this article.

First of all you will have to acquire a copy of Powerstrip. Powerstrip is one of many available applications for tweaking your Graphics Subsystem. It’s definately not the best by a long shot (there are utilities out there that are free, more featurepacked and have better UI design) BUT Powerstrip does one thing that none of the rest do: It allows you to adjust your PCI Latency settings.

Soundcardfix
Once Powerstrip is installed and running, right click on its icon in your system tray, then move up to options > adapter information. This will open up the following:

Soundcardfix
You should notice your video cards’ latency will be insanely high – 248 usually. There is not much point from what I can gather in having its latency this high. You can usually drop the latency back to between 80 and 128 without encountering a noticeable performance hit.

To do this you will have to deselect Read Only and then adjust your latency. Just press the up and down arrows in the latency area, they will automatically switch to standard values. Then click Apply and answer yes to the responses that follow.

Note: The lowest recommended latency value for any device is 32
At the top right corner of the adapter info window, you will see up/down buttons. These allow you to scroll through the devices. Click through your devices until you come across your Soundcard.

Soundcardfix
As expected, the Soundcard, considered less important than it is, has been assigned the lowest standard value. The other devices are getting the lions share and the Soundcard is getting the scraps. This has to change. Deselect Read Only and bump the latency up to somewhere between 64 and 96 then Apply. (As a reference, Phil used a combination of 80, 32 and 64 for his Videocard, Network card and Soundcard respectively, Pierre used 120, 32 and 96 respectively. Experiment with your values to find what works best for you.)

Soundcardfix

That’s much better isn’t it?

After you have brought back the latency on your Video card and upped the latency on your Soundcard, the usage of the PCI bus should be far better balanced and your sound problems should hopefully be gone for good! The one small drawback is having to purchase Powerstrip, it’s certainly worth it BUT for the price paid for your hardware, it’s really unecessary. What we need is for some smart cookie to write a small application like George Breese’s Via Latency Patch, except with more universal chipset support. For a more detailed viewpoint on what George’s Latency Patch can do, check out what tecChanel.de have to say.

[Return to Top]


Conclusion:
I cant guarantee that this will work for everyone or anyone, but it worked for me, so the best I can do is share and hope it helps others. This works for my Philips Acoustic Edge, but I don’t see why it cant help users of Soundstorm, SoundBlaster Live/Audigys, Santa Cruz’s, GTXP’s etc I hope this helps someone else out there to solve any sound/graphics stuttering. I also hope that this article can send a message to the hardware manufacturers – it would probably take their driver teams one day to whip up a patch to fix this issue.

“I tried everything in this article but nothing worked! What can I do?”
Well I’m sorry to hear that, I would suggest you try to RMA your card and get a replacement. If you continue to have the same issues with the replacement Soundcard, you should either look at a different Soundcard or a different Motherboard. See if you can try your Soundcard in a friends PC.. if it works fine in his/her PC, then you should probably look at getting a different Motherboard (Stick to the reputable brands: Asus, Abit, MSI and Epox are the current “top teir” of Motherboard manufacturers). If it does not work fine in his/her PC, then you should look at getting another Soundcard.

[Return to Top]


Glossary:

ACPI – Advanced Configuration Power Interface (answer from www.amd.com)

A foundation technology and industry initiative that enables the operating system to intelligently control the amount of power used by each device attached to the computer. Generally specifies power management for Motherboard devices and the BIOS.

AGP – Accelerated Graphics Port (answer from www.amd.com)
A high-speed graphics expansion bus that directly connects the display adapter and system memory. AGP operates independent of the PCI bus and normally runs at 66MHz, which is twice that of PCI at 33MHz. The difference though is not the AGP’s clock speed, but how many transfers can be made during a cycle. AGP 1x makes a single transfer per cycle for a maximum data-transfer rate of 266 megabytes per second (266MB/sec) while AGP 2x makes two transfer per cycle (533MB/sec) and AGP 4x makes four (1.06GB/sec). This compares to the 132MB/sec maximum data-transfer rate of the PCI bus.

APIC – Advanced Programmable Interrupt Controller
This is an extension on Legacy PICs. A PIC (Programmable Interrupt Controller) controls the interrupts on your Motherboard. Usually there are two Legacy PICs installed, allowing a total of 16 Interrupts, 15 of which are usable. Legacy PICs, however, were unsuitable for Multi-Processor systems, so the APIC was developed. In Uni-Processor systems, an APICs’ purpose is to simply provide more IRQs, to decrease the usage of IRQ-sharing.

APM – Advanced Power Management (Answer from microsoft.com)
Advanced Power Management (APM) is the previous version power management solution that was introduced in Windows 95. ACPI supercedes APM. While Microsoft strongly recommends using systems with an ACPI-capable BIOS, Microsoft recognizes that many computers only support APM

Windows 2000 Professional has limited support for APM, and that support is intended only for older portable computers. It is not designed for use on desktop computers or other computers that do not use batteries for system power.

APU – Audio Processing Unit (Answer from nvidia.com)

Like its graphics counterpart, the GPU, the APU helps increase overall PC system performance by off-loading audio effects processing from the CPU.

BIOS – Basic Input/Output System (Answer from whatis.com)
A BIOS is the program a personal computer’s microprocessor uses to get the computer system started after you turn it on. It also manages data flow between the computer’s operating system and attached devices such as the hard disk drives, video adapter, keyboard, mouse, and printer.

BUS (Answer from whatis.com)

In a computer or on a network, a bus is a transmission path on which signals are dropped off or picked up at every device attached to the line. Only devices addressed by the signals pay attention to them; the others discard the signals. According to Winn L. Rosch, the term derives from its similarity to autobuses that stop at every town or block to drop off or take on riders

In general, the term is used in two somewhat different contexts:

(1) A bus is a network topology or circuit arrangement in which all devices are attached to a line directly and all signals pass through each of the devices. Each device has a unique identity and can recognize those signals intended for it.

(2) In a computer, a bus is the data path on the computer’s Motherboard that interconnects the microprocessor with attachments to the Motherboard in expansion slots (such as hard disk drives, CD-ROM drives, and graphics adapters).

Driver (Answer from whatis.com)

A driver is a program that interacts with a particular device or special (frequently optional) kind of software. The driver contains the special knowledge of the device or special software interface that programs using the driver do not. In personal computers, a driver is often packaged as a dynamic link library (DLL) file.

DMA (Answer from whatis.com)
Direct Memory Access (DMA) is a capability provided by some computer bus architectures that allows data to be sent directly from an attached device (such as a disk drive) to the memory on the computer’s Motherboard. The microprocessor is freed from involvement with the data transfer, thus speeding up overall computer operation.

Usually a specified portion of memory is designated as an area to be used for direct memory access. In the ISA bus standard, up to 16 megabytes of memory can be addressed for DMA. The EISA and Micro Channel Architecture standards allow access to the full range of memory addresses (assuming they’re addressable with 32 bits). Peripheral Component Interconnect accomplishes DMA by using a bus master (with the microprocessor “delegating” I/O control to the PCI controller).

An alternative to DMA is the Programmed Input/Output (PIO) interface in which all data transmitted between devices goes through the processor. A newer protocol for the ATA/IDE interface is Ultra DMA, which provides a burst data transfer rate up to 33 MB (megabytes) per second. Hard drives that come with Ultra DMA/33 also support PIO modes 1, 3, and 4, and multiword DMA mode 2 (at 16.6 megabytes per second).

HAL – Hardware Abstraction Layer (Answer from whatis.com)
In computers, a hardware abstraction layer (HAL) is a layer of programming that allows a computer operating system to interact with a hardware device at a general or abstract level rather than at a detailed hardware level. Windows 2000 is one of several operating systems that include a hardware abstraction layer. The hardware abstraction layer can be called from either the operating system’s kernel or from a device driver. In either case, the calling program can interact with the device in a more general way than it would otherwise.

IRQ – Interupt Request (answer from www.amd.com)
The easiest way to explain an IRQ is to think of it as an unique identifier. The IRQ process is similar to an auction. The CPU is the auctioneer and the peripherals are the bidders. Each bidder has a flag or paddle to get the auctioneer’s attention. If more than one bidder has the same flag, there is chaos. Almost all primary components, such as graphics, sound, modem, etc., require at least one IRQ, regardless of whether they are cards or built onto the system boards. Many older devices require their own unique IRQ (their unique flag) with respect to all of the other devices. Newer cards can often share IRQs, but older cards usually cannot share with each other because they treat their IRQ as their own. When two of these older devices try to use the same IRQ, one or more of the devices will not function properly. This is called an IRQ conflict. Such conflicts can cause improper performance, system lock-ups and crashes.

Most newer components, however, can share an IRQ. Sharing an IRQ is the modern way to allow more cards to be added to a system. Note that some components (like video cards) cannot share IRQs. This is because the video card’s IRQ is usually 10, 11, or 12. These are low priority and may get delayed (or lost) due to higher priority requests. This can cause undesirable visual effects. Cards that fully conform to the intent of the PCI Plug-n-Play standard allow IRQ sharing.

There are 16 IRQs (15 usable) in a computer system. Here is a typical assignment of these IRQs:

IRQ 0 System- System Timer
IRQ 1 System- Keyboard
IRQ 2 System- Cascadeable PIC (programmable interrupt controller), controls IRQ 8-15
IRQ 3 System- Serial Port (COM 2 and COM4)
IRQ 4 System – Serial Port (COM 1 and COM3)

IRQ 5 Available- General Adapter Use
IRQ 6 System- Diskette Controller
IRQ 7 System- Printer 1
IRQ 8 System- CMOS Real-time clock
IRQ 9 Available- General Adapter Use
IRQ 10 Available- General Adapter Use
IRQ 11 Available- General Adapter Use
IRQ 12 System- Mouse Port
IRQ 13 System- Math Co-processor (even though this is built into the CPU, it still uses an IRQ)

IRQ 14 System- Hard Disk Controller
IRQ 15 Available- General Adapter Use

As you can see, there are five (5) IRQs that are not assigned by the system design. Of these, one usually goes to the graphics card, one to the USB ports, and one to the modem. That leaves two (2) available IRQs for everything else. With care (and use of the proper cards), this is normally sufficient.

Latency (Answer from whatis.com)

In a computer system, latency is often used to mean any delay or waiting that increases real or perceived response time beyond the response time desired. Specific contributors to computer latency include mismatches in data speed between the microprocessor and input/output devices and inadequate data buffers.

Within a computer, latency can be removed or “hidden” by such techniques as prefetching (anticipating the need for data input requests) and multithreading, or using parallelism across multiple execution threads.

NIC – Network Interface Card (Answer from whatis.com)
A network interface card (NIC) is a computer circuit board or card that is installed in a computer so that it can be connected to a network. Personal computers and workstations on a local area network (LAN) typically contain a network interface card specifically designed for the LAN transmission technology, such as Ethernet or token ring. Network interface cards provide a dedicated, full-time connection to a network.

PIO (Answer from whatis.com)
Programmed Input/Output (PIO) is a way of moving data between devices in a computer in which all data must pass through the processor. The Advanced Technology Attachment/Integrated Drive Electronics standard specifies three PIO data transfer rates (mode 0 at 3.3 MBps, mode 1 at 5.2 MBps, and mode 2 at 8.3 MBps). The newer Advanced Technology Attachment standard specifies two higher data transfer rates (mode 3 at 11.1 MBps and mode 4 at 16.6 MBps).

A newer alternative to PIO is Direct Memory Access (DMA). It’s expected that PIO will be dropped from future industry standards, replaced entirely by DMA and Ultra DMA.

PCI – Peripheral Component Interface (answer from www.amd.com)

A peripheral bus commonly used in PCs that provides a high-speed data path between the processor and peripheral devices like video cards, sound cards, network interface cards and modems. PCI provides “plug and play” capability, runs at 33MHz and supports 32bit and 64-bit data paths.

Registry (Answer from whatis.com)
In the Microsoft Windows operating systems beginning with Windows 95, the registry is a single place for keeping such information as what hardware is attached, what system options have been selected, how computer memory is set up, and what application programs are to be present when the operating system is started. The registry is somewhat similar to and a replacement for the simpler INI (initialization) and configuration files used in earlier Windows (DOS-based) systems. INI files are still supported, however, for compatibility with the 16-bit applications written for earlier systems.

In general, the user updates the registry indirectly using Control Panel tools, such as TweakUI. When you insta

Stating the obvious: WMP9 Sucks!

June 13th, 2004

yes, it’s true folks. Windows Media Player 9 sucks. So did 8, and so did 7 for that matter. Give 6.4 some playlisting and you’ve got yourself a quality player in the making. Better yet just disregard the lot and use Media Player Classic, which is currently what I use for the following two reasons:
1)Pan&Scan, I cant have a sexy widescreen LCD monitor if I cant adjust aspect ratios on the fly
2)Real and Quicktime support. No need to install slow, buggy, spyware infested, retarded or limited proprietary applications. MPC is quick and allows you to fullscreen.

My current work workstation doesnt have me as a local admin, so it’s preventing me from installing foobar or using WA3 (which sucks but it’s better than nothing) so I’m forced to use WMP9 to play music across the network.. it doesnt get much worse :(

…And then there was two

June 6th, 2004

Well I just received notice today that Peter will be leaving us in approximately three weeks time. This leaves myself and Steve as the final remaining geekflat members. Remarkable, we’ve been together since day one, through thick and thin, and my anal retentiveness still hasnt rubbed off on him. He’s a damn sight more perverted though :)

I honestly don’t think I’ve got it in me to find a third flatmate, and I’m happy to go roomies with Steve in a 2bedroom flat/apartment, however this will require that Steve be a bit more productive in getting an increase of income.

I’m currently feeling really groggy.. I’ve been putting on weight because I have basically been living off sugar and caffeine to get through all these horrid graveyard shifts.. and I have more of them to go! Oh for a good night’s sleep. Last week I slept 20 hours straight. I get the feeling that will happen either tomorrow or the following day.

I admitted to my team leader today that I have some life sorting to do, I’m reverting back to my old habits of low motivation and poor prioritisation. These are seriously affecting my lifestyle and costing me a lot of money in the process…

*sigh*