Skip to main content

Colin McRae Dirt 2 – Choppy sound and crashes in multiplayer

I like my driving games; always have done since the original Mario Kart on the SNES way back when.

So the other day I bought Dirt 2 on Steam as I needed some driving action (my previous driving squeeze was Grid – and I can highly recommend that too).  Very cool, especially with XBox 360 wireless controllers.

After clocking up 20 hours or so on the solo missions I decided to give the online game a go.  Whilst in the trailer I navigated to the Multiplayer ‘board’ and hit ‘online’.

The instant I hit the button on the pad, the sound started to crackle & stutter; then I lost everything except the menu sound effects (only later for them to return for about 10 seconds). I’ve had this before (during the videos on Streetfighter 4, for example) and I just thought ‘well if the game still plays, I’ll put up with it for now’.

Only it didn’t play – not exactly anyway.  The first race went okay (apart from getting battered by the opposition!), and then I went back to the menu ready for the next race to begin.  When the next race began to load, the game just froze.

So I fired it up again and had another go.  Got through the first race again, only on the return to the menu, it got stuck when the camera zooms out from the ‘photo’ that’s taken at the end.

All the while, the sound’s doing crazy things.  Oh and the framerate in-race was not as good as it should have been either (of course it can drop slightly in Multiplayer given the extra work going on to do the networking).

Now my machine isn’t top-end (at least not until the year’s bonus comes in ;) ) but it’s still pretty beefy:

Intel Q9650 on an NVidia 780i Ultra Quad Sli board (can’t remember the manufacturer any more, possibly ASUS – but it cost a bit).
4Gb Corsair Ram as 2x2Gbs using stock timings
Two BFG GTX 280s (not OCd) in SLI
SB x-Fi Pci-ex card.

So there’s really no excuse there for the kind of crap that was going down!

I did a google search for the problem and lots of people have been reporting similar problems, but seemingly not to any decent conclusion.  Lots of talk of onboard hardware, out of date drivers etc.  One common thread seemed to be Win7 x64 (which I run), but ultimately my machine couldn’t be any more up-to-date driver-wise (I’m a habitual upgrader).

Lots of people were moaning about the Rapture sound system that the game uses as well – well, mine was setup at it’s defaults (and still is).

So I gave up.

A couple of days later I was mucking about on the Games for Windows (GfW) screens in-game and stumbled across the Voice settings.  Guess what – as soon as the UI for that settings panel was displayed, the exact-same sound interference kicked in again!  I exited that screen and it went away straight away too.

Now, I don’t use a headset with a microphone (don’t play any games where verbally abusing everyone else will either help or add anything); so what I’m about to say will NOT help those of you that do.

I tried disabling the voice stuff in GfW, but it didn’t make any difference.

So instead I pressed ALT+ENTER to get out of full screen and opened the Windows Recording Devices UI from the Volume Control.  I went through and disabled all the recording devices.

Went back to the game window and back into fullscreen (ALT+ENTER again) and all of a sudden the sound was clean again on the Voice UI in the GfW overlay.

So, immediately I went to the multiplayer menu again – hit ‘Online’ as I was before and this time – no crackle, no stuttering or anything: everything working exactly as it should.

I then went on to play (and lose!) a bunch of online races, no pauses between loading, frame-rate nice and crisp as in Single Player and, best of all, sound stayed intact all the way through.

So – there you have it – disable the recording devices (probably only have to disable one or two of them, but I don’t do any audio recording on my machine anyway, so I’m happy with them all switched off) and have your problem fixed!

There’s clearly an underlying bug here – possibly at the Dirt 2 level, or equally at the GfW level, so that needs to be fixed; although the game is nearly a year old now so I doubt it ever will be.

In the meantime I can now get back to getting my ass handed to me by supafly teenagers with too much time on their hands; like I used to be 15 years ago.

Comments

Popular posts from this blog

Asp.Net 2 and 4 default application pool generates CS0016 IIS7.5

Before I start – if you’ve found a bunch of other articles about this around the net, tried the fixes that are mentioned and still not getting any joy – then read on – you might find this solves your problem. Earlier today I discovered that when I run any ASP.Net 2 or 4 application through IIS7.5 using the default application pools (which use ApplicationPoolIdentity) on Windows 2008 R2 x64 I get an error message similar to this: Server Error in '/MvcApplication31' Application. Compilation ErrorDescription: An error occurred during the compilation of a resource required to service this request. Please review the following specific error details and modify your source code appropriately.
Compiler Error Message: CS0016: Could not write to output file 'c:\Windows\Microsoft.NET\Framework64\v4.0.30319\Temporary ASP.NET Files\mvcapplication31\222b4fe6\4e80a86\App_global.asax.clb4bsnc.dll' -- 'The directory name is invalid. '
Source Error:[No relevant source lines]
Sou…

Serializing to attributes in WCF with DataContractSerializer

It’s a common problem – you want to return an object from a WCF service as XML, but you either want, or need, to deliver some or all of the property values as XML Attributes instead of XML Elements; but you can’t because the DataContractSerializer doesn’t support attributes (you’re most likely to have seen this StackOverflow QA if you’ve done a web search).  Most likely you’ve then migrated all your WCF service code to using the XmlSerializer (with all the XmlElement/XmlAttribute/XmlType attributes et al) – and you’ve cursed loudly.Well, I’m here to rescue you, because it is possible – and the answer to the problem is actually inferred from the MSDN article entitled ‘Types supported by the Data Contract Serializer’.The example I’m going to give is purely for illustration purposes only.  I don’t have a lot of time, so work with me!Create a new Asp.Net WCF service application, you can use Cassini as your web server (probably easier – otherwise you might have to enable Asp.Net compatibil…

Adding ‘Deny’ functionality to AuthorizeAttribute in Asp.Net Web API

For the web service project I’m working on at the moment I need to be able to treat authorization differently based on the hostname of the URL that requests are made through.To state more clearly – these web services will have a ‘sandbox’ mode in addition to the real mode, and the mode a request will operate under is determined as part of the controller-selection phase early in the Web API request lifecycle.  So, say that my web services will be hosted on services.acme.com; the sandbox will simply be sandbox.services.acme.com.Please note – a discussion of how this is implemented is entirely outside the scope of this article; but I’ll just say that I’ve developed an in-house multi-tenancy layer for both MVC 4 and Web API that allows us to define ‘brands’ and, under those, you can then redefine content, controllers, and even the DI container that is used.These services are going to require caller-level authentication for most operations via SCRAM Authentication (RFC 5802), and as such m…