Forum

Crysis 1

help with patching Wine

Författare Svar
booman Thursday 8 August 2013 at 16:45
booman

I know, I know... there is a major memory leak and buffer problem with Crysis and it will probably never be fixed, but I'm trying again anyways.

on WineHQs a few people actually got Crysis to run, but it requires a patched version.
So I followed the steps on patching and compiling Wine:

1. Get the latest Wine Source Code either...  a. by downloading the latest tarball and extract it: http://mirrors.ibiblio.org/wine/source/  b. or through Git: http://wiki.winehq.org/GitWine#head-b892e8af0fa963bcd46d9cf494de181128bb8a64
2. Patch Wine. Instructions are followed from here: http://wiki.winehq.org/Patching  a. Via Terminal, go to your extracted directory (if via tarball) or to the source directory (if Git) through the "cd" command.  b. Download the patch via Terminal command: wget http://bugs2.winehq.org/attachment.cgi?id=27310  c. Apply the patch via Terminal command: patch -p1 < attachment.cgi?id=27310
3. Now that Wine is patched, it is time to build it by entering the following commands in Terminal:  a. ./configure  b. make  c. sudo make install

Citat
I have never actually compiled anything before, so this is my first.

I downloaded the source code for Wine 1.6-rc4, extracted, then used Terminal to navigate to the folder I extracted. Then patched wine and ran ./configure, besides a bunch of missing dev packages I ran make and sudo make install.
Now what do I do?
How do I get this patched version of Wine 1.6-rc4 into PlayOnLinux so I can test Crysis?

† Booman †
Mint 20.2 64-bit | Nvidia 470 | GeForce GTX 1060
Linux for Beginners | List of Linux Games | My Games
PlayOnLinux Guides | PlayOnLinux Explained
petch Friday 9 August 2013 at 11:24
petch

Hi,
If you system is using multiarch, you'll need a 32bit environment (multiarch helps run programs from several architectures on the same system, but is a pain for compilation, at least for now), 32bit chroot or a VM should do.
Or,
You could submit a Wine build request to the bug tracker, added benefit is that other people could use the patched Wine (and an install script could even be written):
http://www.playonlinux.com/en/topic-3718-WineBuild_Demand.html
Example of request:
http://www.playonlinux.com/en/issue-1645.html
booman Friday 9 August 2013 at 16:05
booman

Thanks Petch for the links.
I'm all 32-bit Mint Baby!!!

I'll go ahead and make the request, but my problem is that I wanted to test this Wine patch first to make sure it actually fixes the Crysis memory problem.
If it does, then yes, a LOT of gamers will want to use this patched version of Wine.
Crysis has turned out to be one of those games that won't work. I've tested it several times and did a lot of research. I found that everyone has the same problem, so its related to the game its-self.

So if you think submitting a request to have a custom Wine built, then I'll do it.
Otherwise, do you have some tips for compiling and importing into PlayOnLinux?

I actually did the compile and install. It worked! Now I have Wine 1.6-rc4, but only for Wine, its not installed for PlayOnLinux.

† Booman †
Mint 20.2 64-bit | Nvidia 470 | GeForce GTX 1060
Linux for Beginners | List of Linux Games | My Games
PlayOnLinux Guides | PlayOnLinux Explained
petch Friday 9 August 2013 at 16:18
petch

Then it should be possible to compile Wine by following instructions (maybe you're lacking some of the packages required to compile C code?), all what's PoL specific is to add --prefix=$HOME/.PlayOnLinux/linux-x86/wineversion-patchname to ./configure arguments so that make install puts the files in the expected place to be used from PoL...
booman Friday 9 August 2013 at 17:55
booman

Ah, I see now. Yes I was missing a bunch of development packages. ./configure kept complaining about dev packages and I wasn't sure if I needed all of them or not.

I'll add the --add command you gave me and will give it a try.
If I can actually Get Crysis to run, then I'll do the request too.

Thanks Petch

† Booman †
Mint 20.2 64-bit | Nvidia 470 | GeForce GTX 1060
Linux for Beginners | List of Linux Games | My Games
PlayOnLinux Guides | PlayOnLinux Explained
booman Saturday 10 August 2013 at 15:45
booman

When I run ./configure
I get a bunch of warnings about development libraries missing:
  • libxcursor
  • libxi
  • XShm
  • XShape
  • libXxf86vm
  • libxrandr
  • libxinerama
  • libxcomposite
  • libGLU
  • libOSMesa
  • OpenCL
  • libdbus
  • libgnutls
  • lib(n)curses
  • libsane
  • libv4l
  • libgphoto2
  • libgphoto2_port
  • liblcms
  • gstreamer-0.10 base plugins
  • OSS
  • libcups
  • fontconfig
  • libgsm
  • libtiff
  • libmpg123
  • libldap (OpenLDAP)
  • prelink
  • libxrender
  • No OpenGL
  • libxml2
  • libxslt
  • libjpeg
  • libpng
I try to install then one at a time with apt-get but all I get is:  Unable to locate package

After doing some research it looks like these are old Nvidia libraries... are these necessary for Wine to work?


† Booman †
Mint 20.2 64-bit | Nvidia 470 | GeForce GTX 1060
Linux for Beginners | List of Linux Games | My Games
PlayOnLinux Guides | PlayOnLinux Explained
booman Tuesday 13 August 2013 at 17:10
booman

Turns out this patch is already applied to a Wine 1.4 and 1.5.24
So I tested them and Wine 1.4-d3d_doublebuffer works pretty well.
There are some artifacts but I found that setting Off-screen rendering mode: fbo fixes it.

But, I'm curious if applying the patch to a newer version of Wine could help?
I'm getting good frame rates on my GeForce 550 Ti and have set the video to high with a resolution of 1680x1050

I'm just not a huge fan of the old Wine versions, I'd prefer a newer one like Wine 1.6-rc4 or Wine 1.7

† Booman †
Mint 20.2 64-bit | Nvidia 470 | GeForce GTX 1060
Linux for Beginners | List of Linux Games | My Games
PlayOnLinux Guides | PlayOnLinux Explained
petch Tuesday 13 August 2013 at 19:50
petch

Then make an official build request, it's not the right place.
booman Tuesday 13 August 2013 at 20:01
booman

I just wanted to know what you thought...
The Wine 1.5.24-doublebuffer didn't work for some reason.
So I didn't want to waste your time asking for patching another version of Wine that won't work.

I don't mind patching it myself, but as you see above, there are some development libraries missing.

† Booman †
Mint 20.2 64-bit | Nvidia 470 | GeForce GTX 1060
Linux for Beginners | List of Linux Games | My Games
PlayOnLinux Guides | PlayOnLinux Explained
petch Tuesday 13 August 2013 at 20:13
petch

Hard to tell, maybe it failed because of your hardware, maybe it did because of the way you tried to compile,...

I'm not in charge of the builds, this is usually taken care of by MulX, sometimes by Tinou.
Can't talk for them, but it doesn't seem to take too long, if the request has all the required infos, and of course if the patch(es) apply cleanly. The compilation itself is highly automated.
booman Tuesday 13 August 2013 at 20:16
booman

Actually the 1.5.24-d3d_doublebuffer was already in the Wine Manger for PlayOnLinux.
That is the version I couldn't get to work.
I never did try my compiled version because of the missing libraries.
I'll request it anyways, if they compile it I'll test it.

† Booman †
Mint 20.2 64-bit | Nvidia 470 | GeForce GTX 1060
Linux for Beginners | List of Linux Games | My Games
PlayOnLinux Guides | PlayOnLinux Explained
booman Friday 16 August 2013 at 0:50
booman

Turns out Wine 1.4-rc4-d3d_doublebuffer fixes the problem in Crysis. I have now played several hours without crashing or bugs.
Pretty cool because I have been wanting Crysis to work for a long time.
I'm currently working on a guide.

† Booman †
Mint 20.2 64-bit | Nvidia 470 | GeForce GTX 1060
Linux for Beginners | List of Linux Games | My Games
PlayOnLinux Guides | PlayOnLinux Explained
booman Thursday 22 August 2013 at 0:58
booman

Even better, PlayOnLinux Devs compiled and patched Wine 1.6-rc4 with the DoubleBuffer patch and now Crysis runs with less installation steps.

Thanks Devs!

† Booman †
Mint 20.2 64-bit | Nvidia 470 | GeForce GTX 1060
Linux for Beginners | List of Linux Games | My Games
PlayOnLinux Guides | PlayOnLinux Explained