I have installed Call of Duty 4: Modern Warfare on my Windows machine. The single player mode works perfectly, but when I try to run COD4 Multiplayer it crashes on startup. Windows then shows the following error message: iw3mp.exe has stopped working. What can I do to fix this? Disclaimer: I’ve made this thread to collect the various solutions to this problem that are scattered across the interwebs.
Please add an answer if you have an alternative solution! All the solutions posted below have apparently fixed the problem for many people, but not for me — so I’m still looking for a solution to play CoD4 on my new gaming PC. This is a very common problem due to sloppy programming on Activision’s part. It is related to the system’s audio device, e.g.
A problem with your sound card drivers, mostly if it is a Realtek or a Sigmatel onboard sound card. Here are some things you can try: Enable Stereo Mix. Right-click the volume/speaker icon in your system tray, and select Recording devices. (If you don’t have the icon in your system tray, open Control Panel → Hardware and Sound → Sound → Recording.).
Right-click and select View Disabled Devices. The device Stereo Mix appears. Enable the Stereo Mix device.
Start the game. If that doesn’t solve the issue, try the next suggestion. Use a mic & headphones. Plug in a microphone into the microphone jack. Plug in headphones into the headphone jack.
Right-click the volume/speaker icon in your system tray, and select Recording devices. (If you don’t have the icon in your system tray, open Control Panel → Hardware and Sound → Sound → Recording.). Set Microphone as the default input device. Switch to the Playback tab. Set Headphones as the default audio playback device.
Start the game. If that doesn’t solve the issue, try the next suggestion.
Realtek: Disable front panel jack detection If you have an Realtek onboard sound card, this might help:. Double-click the orange volume/speaker icon in your task bar. This opens the HD Audio Manager. Click on the folder icon in the upper right edge.
Check Disable front panel jack detection. This forces the driver to load microphone support even without a mic plugged in.
Close the top-most window. In case you’re using the digital output, make sure that the Digital Output device is set as the default. To do that, click on Digital Output in the upper bar and on Set Default Device next to the volume adjuster. Start the game. If that doesn’t solve the issue, try the next suggestion. Sigmatel: install updates If you have a Sigmatel onboard sound card, install all Windows updates and the latest Sigmatel drivers from.
Remove the mssmp3.asi file. Go to the installation folder of CoD4. Enter the miles folder.
Rename the file mssmp3.asi to mssmp3.asi.bak. Start the game. If that doesn’t solve the issue, try the next suggestion. Update PunkBuster Make sure PunkBuster is updated to.
Install Call of Duty 4 patches Install all patches up to at least v1.5. (Currently, the latest available patch is v1.7.) If that doesn’t solve the issue, try the next suggestion. Reinstall sound card drivers Before continuing, please make note of the make and model of your sound card prior to removing it in order to aid in reinstallation at a later date. Uninstall your sound card drivers as follows:. Open Start → Run and enter sysdm.cpl to display the System Properties dialog box. Go to Hardware → Device Manager. Expand Sound, video, and game controllers.
Right-click the sound card driver and then select Uninstall. Then let Windows install its default sound drivers. If that doesn’t solve the issue, try the next suggestion. Update BIOS If you are running the game from a secondary partition, download and install the latest BIOS updates from your motherboard manufacturer. If that doesn’t solve the issue, try the next suggestion. Disable onboard sound in BIOS Disable the onboard sound card in the BIOS. Here are some interesting details about the unfortunate programming error that causes this bug.
Credit to Xero Hawk from the Infinity Ward forums for. After looking into this a bit (as I’m affected myself), I found out that the crash is caused by this piece of code (most likely a little programming mistake): 004ED380 /$ 51 PUSH ECX 004ED381.
6A 00 PUSH 0 004ED383. 68 78B55E0D PUSH iw3mp.0D5EB578 004ED388. 6A 00 PUSH 0 004ED38A. C705 D0824001MOV DWORD PTR DS:14082D0,iw3mp.004ED37 004ED394.
C705 D4824001MOV DWORD PTR DS:14082D4,iw3mp.014082D 004ED39E. C605 4EB55E0DMOV BYTE PTR DS:D5EB54E,0 004ED3A5. E8 1C9F1500 CALL 004ED3AA. 85C0 TEST EAX,EAX 004ED3AC. 7D 14 JGE SHORT iw3mp.004ED3C2 004ED3AE. 50 PUSH EAX; /Arg3 004ED3AF. 68 A0376E00 PUSH iw3mp.006E37A0; Arg2 = 006E37A0 ASCII 'Error initializing direct sound instance!%s' 004ED3B4.
6A 09 PUSH 9; Arg1 = 00000009 004ED3B6. E8 15F90000 CALL iw3mp.004FCCD0; iw3mp.004FCCD0 B8 01000000 MOV EAX,1 004ED3C7. A2 4EB55E0D MOV BYTE PTR DS:D5EB54E,AL 004ED3CC. 59 POP ECX 004ED3CD. C3 RETN JMP.&DSOUND.#6 is a JMP to DSOUND.DirectSoundCaptureCreate, and its return value is directly used for the string formatting. Most likely the programmer wanted to have a formatted error message displayed (which would be DSERRNODRIVER), or the error value in hex, or whatever, but instead he treated the return value as a string pointer and because the formatting func doesnt do a IsBadReadPtr check on it before handling it, the game crashes. I tried changing the%s to%X which fixes this crash indeed, but because the DirectSoundCaptureCreate call isnt supposed to fail, the game crashes at a different position, probably when it’s trying to use the interface the first time.
803D 4EB55E0D CMP BYTE PTR DS:D5EB54E,0 A1 D4824001 MOV EAX,DWORD PTR DS:14082D4 0057A7F4. 6A 48 PUSH 48 0057A7F6. 8BF0 MOV ESI,EAX 0057A7F8. 83C0 48 ADD EAX,48 0057A7FB. 6A 00 PUSH 0 0057A7FD. 56 PUSH ESI 0057A7FE. A3 D4824001 MOV DWORD PTR DS:14082D4,EAX 0057A803.
E8 A8890F00 CALL iw3mp2.006731B0 0057A808. 8B0D D43E7200 MOV ECX,DWORD PTR DS:723ED4 0057A80E. 83C4 0C ADD ESP,0C 0057A811. C746 2C 00200 MOV DWORD PTR DS:ESI+2C,2000 0057A818. C746 30 FF000 MOV DWORD PTR DS:ESI+30,0FF 0057A81F.
C70 MOV DWORD PTR DS:ESI+34,80 0057A826. 894E 38 MOV DWORD PTR DS:ESI+38,ECX 0057A829. C746 1C FFFFF MOV DWORD PTR DS:ESI+1C,-1 0057A830. C646 44 02 MOV BYTE PTR DS:ESI+44,2 0057A834 8B4E 38 MOV ECX,DWORD PTR DS:ESI+38 MOV DWORD PTR DS:ESI+8,0C800 0057A845.
E8 7623F7FF CALL iw3mp2.004ECBC0 0057A84A. 83C4 04 ADD ESP,4 0057A84D. 85C0 TEST EAX,EAX 0057A84F.
7D 21 JGE SHORT iw3mp2.0057A872 0057A851. 68 B8356E00 PUSH iw3mp2.006E35B8; ASCII 'Error: Failed to create DirectSound play buffer' 0057A856. 6A 09 PUSH 9 0057A858. E8 B323F8FF CALL iw3mp2.004FCC10 The same mistake has been done at least one more time, namely here: 0057A94F. 8B11 MOV EDX,DWORD PTR DS:ECX 0057A951. 8B42 08 MOV EAX,DWORD PTR DS:EDX+8 0057A954. 51 PUSH ECX 0057A955.
FFD0 CALL EAX 0057A957. 8B35 60B55E0D MOV ESI,DWORD PTR DS:D5EB560 0057A95D 3BC3 CMP EAX,EBX 0057A95F.
891D 78B55E0D MOV DWORD PTR DS:D5EB578,EBX 0057A965. 7D 16 JGE SHORT iw3mp2.0057A97D 0057A967. 50 PUSH EAX; /Arg3 0057A968. 68 D0376E00 PUSH iw3mp2.006E37D0; Arg2 = 006E37D0 ASCII 'Error releasing direct sound instance!%s' 0057A96D. 6A 09 PUSH 9; Arg1 = 000A96F. E8 5C23F8FF CALL iw3mp2.004FCCD0; iw3mp2.004FCCD0.
Hi People, If you want servers on non-punkbuster, with plenty of admins, there is a good community around these servers: HC All weapons: 94.23.0 Crossfire 24/7 restricted weapons: 94.23.2 Softcore All Weapons: 94.23.0 Save them in your favourites. XFire is also good as you can go directly into the game from the desktop client, and most people here on COD4 uses it.
Add me on XF: biggert With windows, there is a known fix to COD4 MP to work that is quite odd. If you plug earphones into the microphone jack of your PC and try run it, it might be able to work.