Mass Effect 2 using Linux in Wine
Get Wine
So I got mass effect 2 working in wine. Man is it a great game. To get it to work in wine:
go here and download wine (latest version as of now 1.1.38) http://sourceforge.net/projects/wine/files/Source/wine-1.1.38.tar.bz2/download
(note I would recommend 1.1.38 if you want to use the patches below)
extract and enter the directory in the terminal. Now we need to run the configure script:
./configure
Or to speed up compilation:
./configure --disable-tests
Which will skip compiling the wine test suite which generally you won't need.
Patching
Two patch files are located at:
http://bugs2.winehq.org/attachment.cgi?id=15638 for the mouse warping
http://bugs.winehq.org/attachment.cgi?id=26032 for crashes (I didnt seem to need this patch)
Next, you will need to apply some patches. There is one for crashing, and another to fix the mouse warping. I don't have these on hand at the moment. I couldn't get my mouse warping to work properly, so I edited mouse.c under dlls/dinput/ and made it so mouse button 3 would toggle mouse warp (on / off) which is a pain but makes the game more playable. To apply patches to a source, under the source tree, type:
#patch -p1 < NAMEOFPATCHFILE
Afterwards you can compile as shown below.
Compile
Ensure that you have XML support compiled in, as well as openal. You can determine this through the final output of the configure script. If you don't have the xml and openal dev packages, install them with your favourite package editor.
make
sudo make install
Again, an interesting way to speed up compilation on a multi core machine is to use:
make -j 4
sudo make install
You can replace "-j 4" with the number of processors you have (I have a quad core).
Finally
now run "winecfg" and set up a virtual desktop (I have to using nvidia latest binary driver geforce 9600).
Also, we need to install packages with winetricks to get this to work
wget http://www.kegel.com/wine/winetricks
sh winetricks d3dx9 d3dx10 vcrun2005 physx
Now run the installer, and finally run the game. I am able to play on full settings with 1900x1080 resolution :D
Enjoy!
Hi,
ReplyDeleteI've been trying to make mouse warping work properly in Mass Effect 2 with no luck. In your post you mention that you modified dinput.dll to have button 3 toggle mouse warp. I think this is a great solution. Could you please share what you changed in the code to achieve this?
Thanks!
Jure
Hi MrM,
ReplyDeleteI edited under dlls/dinput/mouse.c. Look at the function
dinput_mouse_hook where it deals with middle mouse button. Have that toggle so that This->warp_override == WARP_FORCE_ON evaluates to true. Or what I did is have it toggle each time it is pressed.
if(This->warp_override == WARP_FORCE_ON) {
This->warp_override = FALSE;
} else {
This->warp_override = WARP_FORCE_ON;
}
There is a much better method available. Have a look at patches that warp the mouse as it approaches the edge of the screen.
Hello, this is great tutorial on how to install mass effect, but I don't understand where and how I need to patch the patch file.and how I can set up a virtual desktop when i run winecfg
ReplyDeletethanks in advanced
To set up a virtual desktop, type winecfg in a terminal and press enter. It should bring up a config screen. Go to "Graphics" tab, and you will see "Emulate a virtual desktop" checkbox.
ReplyDelete