Tuesday, January 22, 2008

How to Disable Multicore feature?

How to use only one core of a multi-core CPU?

Yes! Sometimes you want to use only one core because some games and applications run poorly on multi-core CPUs. There are a number of ways to do this.

I - The easiest way (non-permanent method):

1 - Run the game or application.
2 - Press Alt+Tab to get out of the application (or any other way that you know).
3 - Open the Windows Task Manager by pressing Ctrl+Shift+Esc.
4 - In the Task Manager window select Applications tab which shows a list of applications currently running. Right click on your game or application and press G button (or select Go To Process).
5 - As you can see we're now in the Processes tab of the Task Manager and your application's process is selected. Right click on it and select Set Affinity.
6 - Processor Affinity window opens and you can select on which cores you desire your application to run. Select one and press OK.

This method works well and it's easy too but it's got a problem: You have to do this every time that you run your application. And there's another problem: For some games and full-screen applications this would cause an error since you've left their environment. So, What's the answer? The answer is method II.


II - The permanent method:

1 - Download Imagecfg (Rapidshare mirror Imagecfg).
2 - Copy the file to Windows\system32\.
3 - Find your game or application's executable file (You should be able to find it in the folder in which you've installed it) and write down it's path. (For example C:\Program files\My app.exe)
4 - Make a backup copy of the exe file (just in case).
5 - Open command prompt by going to Start -> Run and entering cmd.
6 - Type the following (use your app's exe path in the quotations instead of your path) :
imagecfg -a 0x1 " your path"

(For example: imagecfg -a 0x1 " C:\Program files\My app.exe"

(Note: If didn't work type these:
imagecfg -u " your path"
imagecfg -a 0x1 " your path"
)

Now every time you start the application it will automatically use only one core. If it caused a problem, replace the modified exe file with the backup copy .
But still it may not be enough as games like Broken Sword: The Angel of Death have problems with multi-cores and the methods above won't work for them. Anyway, we've got one last trick up our sleeve, that is, methods III and IV .



(Note: before reading items III and IV and as one of the commenters has mentioned, there's an easier and less hardcore way to get the same result as those items. Follow this:
Open the Start menu, click on Run, type in msconfig and press OK. In the System Configuration window go to Boot (Start in XP) tab and click on Advanced Options button. There you can see an option for choosing how many cores you want active. Restart your computer.)

III - Brute force technique (Windows Vista only):

(Check out the Note above!)

In this method you force Vista to boot only on one core as if you have a single core CPU. Don't worry, as it is easily revertible.

1 - Open command prompt by going to Start -> Run and entering cmd.
(You might need administrator privileges for this so I suggest to open cmd like this: Go to C:\Windows\System32 and look for a file named: cmd.exe (or just cmd), right click on it and choose "Run as administrator")
2 - Type: bcdedit /set onecpu on
3 - Reboot the system.

To check, when the system comes up, open Task Manager and click on Performance tab. You can see only one CPU there!

To revert back to multi-core simply type the following in cmd:
bcdedit /set onecpu off

And reboot the system. You are back to the multi world!

This last method only works under Vista. Doing the same thing under XP is explained in method IV.


IV - Brute force technique (Windows XP approach):

(Check out the Note before section III!)

Here you force XP to use only one core as if you have a single core CPU. You can revert back later if you want.

1 - Open boot.ini file. If you don't know how to do this follow the steps below:
- Right click on My Computer and select Properties.
- Go to Advanced tab and in the Startup and Recovery section click on Settings button.
- Startup and Recovery window opens, click Edit button in System startup section.
- That's it, you've opened the boot.ini file.
2 - If you have one Windows XP installed on your system, the boot.ini content is something similar to this:

[boot loader]
timeout=30
default=multi(0)disk(0)rdisk(0)partition(2)\WINDOWS
[operating systems]
multi(0)disk(0)rdisk(0)partition(2)\WINDOWS="Microsoft Windows XP Professional" /fastdetect


Don't mind the values in parentheses. All you have to do is to add a simple switch to it. The switch is /onecpu. The content of boot.ini with the added switch in bold is shown below:

[boot loader]
timeout=30
default=multi(0)disk(0)rdisk(0)partition(2)\WINDOWS
[operating systems]
multi(0)disk(0)rdisk(0)partition(2)\WINDOWS="Microsoft Windows XP Professional" /fastdetect /onecpu


Congratulation! We're done. Just save the file and reboot your system. The next time you boot your XP it only uses one core. To make sure, open Task Manager and click on Performance tab. You can see only one CPU there!

To revert back to multi-core, open boot.ini and delete the /onecpu switch and reboot.

Methods III and IV need a restart to take effect. I don't know of a way to do this without a restart. But still, I'm no expert or anything and the info you see here are things that I've put together off the net and tried myself off course. But I thought it would be nice to have them all in one place. Hope it helped.

Friday, January 18, 2008

My First Post

Hi there!

Just testing, nothing more.