============
Introduction
============

SetAffinity, a tool to set the processor affinity permanently to a program's executable file (.exe)
This program was NOT, I repeat NOT made by me, Hyper.nl. I currently do NOT know the author. (The original readme file did not mention the author).

Some programs, especially older games can be incompatible with multiprocessor, hyperthreading or dual-core computers. (SMP) Use this program to force incompatible programs to use a single processor (core). This tool is meant for users with at least general knowledge about computer technology and the use of Windows.

======================================
What is the problem with some programs
======================================

SMP Incompatible programs can have the following programs:
* Crashes
* Choppy performance

Here are some SMP-incompatible games I fixed with this tool:

Command & Conquer: Red Alert (Crashes)
All dark ENgine games (Thief 1 and 2)


===============
Unreal specific
===============

Unreal can run a bit choppy on SMP systems. This is because the main thread is executed on one processor core, but sometimes the thread it constantly being switched from one core to the other and back. To avoid this behaviour, you can use SetAffinity to set the processor affinity to the first (or second) processor core.

Please note that there are other and more important reasons why Unreal can run choppy:

The first reason is power management / speedstep / Cool & Quiet technology which is found on many modern processors and especially in laptops. To play Unreal, you should disable these technologies, and set the power management profile to desktop or always on.

The second reason is vertical synchronisation or VSync. Especially on modern computers, Unreal can run at framerates of over 200 FPS. When this happens, the game will run faster. You will especially notice this when looking close to a wall. Because no monitor can display all those 200 frames per second, you should ENABLE the option of VSync. VSync ensures that the number of rendered frames per second are not higher than what the monitor can display. This results in a more steady framerate and better image quality. You can enable VSync in the advanced options of the Windows display control panel, usually under a tab of your graphics card manufacturer. (ATI, Matrox, nVidia etc)

The last reason is the dual core incompatibility. After you applied the first two stpes and still have a choppy framerate AND you have a SMP setup, read on for the dual core fix.

=================
Using SetAffinity
=================

Make sure Unreal is not running!!

1. Make a backup of the original Unreal.exe file
2. Open the SetAffinity.exe program.
3. In the lower part of the window, (Where it reads: "Executable, full path...") browse to your Unreal.exe file
4. Click the "Set mask to" drop down box and select "Core 0" (This means: Only use the first processor core)
5. Click the "Set affinity mask" button to apply the changes.

You can use the same program to undo the changes later.

===========
No warranty
===========

This tool comes with NO WARRANTY of any kind. Play with it as much as you like, but don’t blame me if it melts your computer into a pile of scrap metal or steals your girlfriend.

==========
Final note
==========

Again, this program was NOT made by Hyper.nl. I just wrote this readme to explain the use for Unreal and other games. Goodbye.