воскресенье, 9 сентября 2012 г.

EVE Online in WINE (Linux). How to get it running nowadays (on nVidia 6/7 series cards). Or how i did, at least.

I have an old as hell pc. P4 Northwood, GeForce 6800 GS. It's an AGP one, yes. And it was a torture, actually, to get EVE running on it. However, it runs ok. Even in char creation it looks like 15 fps or so.

Ok, first of all i'd like tell y'all who can't even start the game with an old video card. If you've got an old GPU but it does fully support Shader Model 3 but not SM4 (like GeForce 6 or 7 series) but you can't get the game started and it says some shit of the bull like you have an outdated GPU that lacks SM3 support and the game needs it or whatever - that happens because WINE detects if the hardware supports SM3 or not by probing its glinfo to support ARB_shader_texture_lod extension. If it doesn't - you don't have SM3. You've got SM2.

There is a guy at wine' bugzilla who wrote a comment: http://bugs.winehq.org/show_bug.cgi?id=28529#c6 So, according to wine' logic, there are no GPUs manufactured by nVidia that do support Shader Model 3. They started producing SM4 GPUs right after SM2 ones. Tough guys, aren't they?



PHASE 1: PATCHING THE SOURCE

Well then, here's a little patch for y'all: Click to show

To apply it cd to the directory containing unpacked wine sources and execute: Then recompile and reinstall your wine (actually, all you need is wined3d.dll.so and wined3d.dll fake  reinstalled; you can just copy them over into the right places).

Now EVE finally quits complaining about SM3 support and just starts.



PHASE 2: WINETRICKS THE PREFIX

Next, EVE requires native d3dx9_36 (fixes black screen) (and maybe d3dx9_42 and d3dx9_43) to run. Also, there are rumors that native corefonts are required too (however, i don't really remember if i did install them or not).
To be completely safe you can just execute this:

PHASE 3: REGEDIT THE HELL OUT OF IT

Now, if your EVE freezes or crashes at character creation procedure (at bloodline selections, in particular) and shouts something like "bin/ExeFile.exe: malloc(): memory corruption:" you can try this registry tweeks: Off course, you should change VideoMemorySize to whatever value your videocard posesses.

Set windows version to 2000. I just don't really know, what in particular make the game run: either windows=2000 or "OffscreenRenderingMode"="backbuffer"



PHASE 4: STARTING THE GAME

Now you can start the game (i do it after changing directory to bin/) you could want something like this in your path: Name it eve, place it into your path (like /usr/local/bin, or whatever) and chmod +x it.



PHASE 5: EULA AND PERFORMANCE

When the game finally starts you most probably will see just a square with 2 tabs: eula and 3rd party eula with a label in the bootom that says "scroll to the bottom to continue" or whatever. Just wait. It takes about 5 minuts for the text to appear. =) Click accept. Everything will be slowly as hell. Have patience now. =) Proceed into the settings and lower the graphics quality. Restart the game. When you'll go to the character race selection hit ESC and lower graphics quality again (there will appear some options regarding char rendering etc.). Don't forget to untick "Render Station Internals" or "Render HeadQuaters" whatever the hell they call it (don't remember the exact name for it %), bu i believe you'l figure it out).

Well, if i didn't forget anything, that's pretty much it. Frustraiting as hell, but managable.

P.S. Double-click the text in the code sections to select and copy it.

Good luck y'all. Fly safe.
xoxoxo
Serge