Compiling wine with patch/Running Crysis

Open forum for end-user questions about Wine. Before asking questions, check out the Wiki as a first step.
Forum Rules
Locked
Codemastadink
Level 2
Level 2
Posts: 10
Joined: Sun Sep 07, 2008 5:54 pm

Compiling wine with patch/Running Crysis

Post by Codemastadink »

Hey guys, so im trying to get Crysis working in Wine. I tried on my distros forums to try and see what they could do, but they didnt really help much.

I know its kind of a lot to read, but i'll just give you the link to the other thread and u guys can see whats goin on. Some help here would be awesome guys thank you so much.

http://ubuntuforums.org/showthread.php?t=925352
Last edited by Codemastadink on Fri Sep 26, 2008 6:12 pm, edited 1 time in total.
Codemastadink
Level 2
Level 2
Posts: 10
Joined: Sun Sep 07, 2008 5:54 pm

Post by Codemastadink »

someone please..
Rico
Moderator
Moderator
Posts: 91
Joined: Sat Feb 23, 2008 12:10 pm

Post by Rico »

What's your system configuration (Kernel, graphics card, graphics driver, cpu, ...)?
Codemastadink
Level 2
Level 2
Posts: 10
Joined: Sun Sep 07, 2008 5:54 pm

Post by Codemastadink »

Rico wrote:What's your system configuration (Kernel, graphics card, graphics driver, cpu, ...)?
Ubuntu 8.04.1(Hardy)
512MB NVIDIA GeForce 8600M GS
NVIDIA accelerated graphics driver(latest cards)
Intel Core 2 Duo Processor T8300 (2.40GHz)
Codemastadink
Level 2
Level 2
Posts: 10
Joined: Sun Sep 07, 2008 5:54 pm

Post by Codemastadink »

Anyone?
jeffz
Level 5
Level 5
Posts: 345
Joined: Thu Mar 13, 2008 10:03 pm

Post by jeffz »

Codemastadink wrote:Anyone?
It's probably not working due to a bug in Wine.

search bugzilla for Crysis:

http://bugs.winehq.org/buglist.cgi?quicksearch=crysis

Could be either one of these or both.

14453 - Crysis Does not Launch
12806 - Crysis: segmentation fault at startup
Codemastadink
Level 2
Level 2
Posts: 10
Joined: Sun Sep 07, 2008 5:54 pm

Post by Codemastadink »

jeffz wrote:
Codemastadink wrote:Anyone?
It's probably not working due to a bug in Wine.

search bugzilla for Crysis:

http://bugs.winehq.org/buglist.cgi?quicksearch=crysis

Could be either one of these or both.

14453 - Crysis Does not Launch
12806 - Crysis: segmentation fault at startup
MM.. i dont think its really either of those :/
Rico
Moderator
Moderator
Posts: 91
Joined: Sat Feb 23, 2008 12:10 pm

Post by Rico »

Codemastadink wrote:
Rico wrote:What's your system configuration (Kernel, graphics card, graphics driver, cpu, ...)?
Ubuntu 8.04.1(Hardy)
512MB NVIDIA GeForce 8600M GS
NVIDIA accelerated graphics driver(latest cards)
Intel Core 2 Duo Processor T8300 (2.40GHz)
Codemastadink wrote:Anyone?
If you would answer the questions better and don't bug with double posts, I think you would get better answers.

There is a bug at least in the 177er series of nvidia drivers with some Geforce 8 cards. It affects the fbo part of opengl. Because you haven't add anything about the driver version, I only post this workaround and don't know if it is related to your problem.

This patch contains also a hack for the virtual memory size which could get too big for 32bit apps on a 64bit os (I need this workaround to play crysis).

Code: Select all

diff --git a/dlls/wined3d/context.c b/dlls/wined3d/context.c
index 2aeb5fa..eea8ae8 100644
--- a/dlls/wined3d/context.c
+++ b/dlls/wined3d/context.c
@@ -57,8 +57,10 @@ static void context_destroy_fbo(IWineD3DDeviceImpl *This, const GLuint *fbo)
 {
     int i = 0;
 
-    GL_EXTCALL(glBindFramebufferEXT(GL_FRAMEBUFFER_EXT, *fbo));
+    FIXME("Workaround: NVIDIA driver bug %i, %i\n", fbo, *fbo);
+    GL_EXTCALL(glBindFramebufferEXT(GL_FRAMEBUFFER_EXT, fbo));
     checkGLcall("glBindFramebuffer()");
+
     for (i = 0; i < GL_LIMITS(buffers); ++i)
     {
         GL_EXTCALL(glFramebufferTexture2DEXT(GL_FRAMEBUFFER_EXT, GL_COLOR_ATTACHMENT0_EXT + i, GL_TEXTURE_2D, 0, 0));
diff --git a/loader/preloader.c b/loader/preloader.c
index 109ad3f..846607f 100644
--- a/loader/preloader.c
+++ b/loader/preloader.c
@@ -110,7 +110,8 @@ static struct wine_preload_info preload_info[] =
 {
     { (void *)0x00000000, 0x00010000 },  /* low 64k */
     { (void *)0x00010000, 0x00100000 },  /* DOS area */
-    { (void *)0x00110000, 0x5fef0000 },  /* low memory area */
+/*    { (void *)0x00110000, 0x5fef0000 }, */ /* low memory area */
+    { (void *)0x00110000, 0x35000000 },
     { (void *)0x7f000000, 0x02000000 },  /* top-down allocations + shared heap */
     { 0, 0 },                            /* PE exe range set with WINEPRELOADRESERVE */
     { 0, 0 }                             /* end of list */
Codemastadink
Level 2
Level 2
Posts: 10
Joined: Sun Sep 07, 2008 5:54 pm

Post by Codemastadink »

Rico wrote:
Codemastadink wrote:
Rico wrote:What's your system configuration (Kernel, graphics card, graphics driver, cpu, ...)?
Ubuntu 8.04.1(Hardy)
512MB NVIDIA GeForce 8600M GS
NVIDIA accelerated graphics driver(latest cards)
Intel Core 2 Duo Processor T8300 (2.40GHz)
Codemastadink wrote:Anyone?
If you would answer the questions better and don't bug with double posts, I think you would get better answers.

There is a bug at least in the 177er series of nvidia drivers with some Geforce 8 cards. It affects the fbo part of opengl. Because you haven't add anything about the driver version, I only post this workaround and don't know if it is related to your problem.

This patch contains also a hack for the virtual memory size which could get too big for 32bit apps on a 64bit os (I need this workaround to play crysis).

Code: Select all

diff --git a/dlls/wined3d/context.c b/dlls/wined3d/context.c
index 2aeb5fa..eea8ae8 100644
--- a/dlls/wined3d/context.c
+++ b/dlls/wined3d/context.c
@@ -57,8 +57,10 @@ static void context_destroy_fbo(IWineD3DDeviceImpl *This, const GLuint *fbo)
 {
     int i = 0;
 
-    GL_EXTCALL(glBindFramebufferEXT(GL_FRAMEBUFFER_EXT, *fbo));
+    FIXME("Workaround: NVIDIA driver bug %i, %i\n", fbo, *fbo);
+    GL_EXTCALL(glBindFramebufferEXT(GL_FRAMEBUFFER_EXT, fbo));
     checkGLcall("glBindFramebuffer()");
+
     for (i = 0; i < GL_LIMITS(buffers); ++i)
     {
         GL_EXTCALL(glFramebufferTexture2DEXT(GL_FRAMEBUFFER_EXT, GL_COLOR_ATTACHMENT0_EXT + i, GL_TEXTURE_2D, 0, 0));
diff --git a/loader/preloader.c b/loader/preloader.c
index 109ad3f..846607f 100644
--- a/loader/preloader.c
+++ b/loader/preloader.c
@@ -110,7 +110,8 @@ static struct wine_preload_info preload_info[] =
 {
     { (void *)0x00000000, 0x00010000 },  /* low 64k */
     { (void *)0x00010000, 0x00100000 },  /* DOS area */
-    { (void *)0x00110000, 0x5fef0000 },  /* low memory area */
+/*    { (void *)0x00110000, 0x5fef0000 }, */ /* low memory area */
+    { (void *)0x00110000, 0x35000000 },
     { (void *)0x7f000000, 0x02000000 },  /* top-down allocations + shared heap */
     { 0, 0 },                            /* PE exe range set with WINEPRELOADRESERVE */
     { 0, 0 }                             /* end of list */
well i've tried to answer questions the best i can. I',m not exactly sure od my driver version, i just went to system>administration>hardware drivers and it said "NVIDIA Accelrated graphics driver(Latest Cards)" So i think this may just be a standard one provided by linux, and not nvidia.
vitamin
Moderator
Moderator
Posts: 6605
Joined: Sat Feb 23, 2008 2:29 pm

Post by vitamin »

Codemastadink wrote:well i've tried to answer questions the best i can. I',m not exactly sure od my driver version, i just went to system>administration>hardware drivers and it said "NVIDIA Accelrated graphics driver(Latest Cards)" So i think this may just be a standard one provided by linux, and not nvidia.

Code: Select all

glxinfo | grep version
Codemastadink
Level 2
Level 2
Posts: 10
Joined: Sun Sep 07, 2008 5:54 pm

Post by Codemastadink »

vitamin wrote:

Code: Select all

glxinfo | grep version

Code: Select all

server glx version string: 1.4
client glx version string: 1.4
GLX version: 1.3
OpenGL version string: 2.1.2 NVIDIA 169.12
Rico
Moderator
Moderator
Posts: 91
Joined: Sat Feb 23, 2008 12:10 pm

Post by Rico »

Codemastadink wrote:
vitamin wrote:

Code: Select all

glxinfo | grep version

Code: Select all

server glx version string: 1.4
client glx version string: 1.4
GLX version: 1.3
OpenGL version string: 2.1.2 NVIDIA 169.12
Have you tried my patch? What's the result?
Which version of Ubuntu 8.04.1(Hardy) do you have (64 or 32bit) - "uname -a"?
Codemastadink
Level 2
Level 2
Posts: 10
Joined: Sun Sep 07, 2008 5:54 pm

Post by Codemastadink »

Rico wrote:
Codemastadink wrote:
vitamin wrote:

Code: Select all

glxinfo | grep version

Code: Select all

server glx version string: 1.4
client glx version string: 1.4
GLX version: 1.3
OpenGL version string: 2.1.2 NVIDIA 169.12
Have you tried my patch? What's the result?
Which version of Ubuntu 8.04.1(Hardy) do you have (64 or 32bit) - "uname -a"?
32bit

How do i apply the patch? do i have to compile with it?
User avatar
dimesio
Moderator
Moderator
Posts: 13367
Joined: Tue Mar 25, 2008 10:30 pm

Post by dimesio »

Codemastadink wrote:
32bit

How do i apply the patch? do i have to compile with it?
According to the Ubuntu forum thread that you linked to in your original question, you've already patched Wine once. The procedure hasn't changed in the past week.

But before you go to the trouble of patching and compiling again, I suggest you reread Rico's post describing precisely what problems his patch is meant to fix.
Locked