Thursday, October 21, 2010

Oblivion on Wine 1.2.1 & 1.3.5

Well, it has been a VERY long time since my last post for Oblivion on Wine. Close to a year, in fact. I've just recently started playing Oblivion again, and I think I've finally got the problem with frequent hard drive failure under control. Word to the Wise: Do not rely on SATA, if you value your data.

Now, to get things started. Here's the current environment of my machine:

Processor: 2.6ghz AMD Athlon X2 5000+ Brisbane
Memory: 4gb of DDR2-800 SDRAM
Video Card: BFG Tech GeForce 9800 GT, 1gb of video RAM, overclocked out of the box
Operating System: Arch Linux 2010.05, i686 architecture
Linux Kernel: 2.6.35.7
Video Driver: 260.19.12-1

Now then, this report is covering two different versions of WINE: version 1.2.1 and 1.3.5. Version 1.2 is the stable branch of WINE, while version 1.3 is the unstable branch. I initially was using WINE 1.3.4, and then 1.3.5. The game's performance seems unchanged from version 1.1.32, the last version I had tested with.

In terms of stability, it appears to be suffering from some reproducible crashes related to memory read (or is write?) errors, which briefly made it impossible to complete the Kvatch questline. This, however, may be in part due to the amount of mods I've installed, in particular Martigen's Monster Mod. Though, I am pleased to say that I no longer crash when activating the Aurum Assimilator from the Midas Magic mod.

I was also having a number of rendering errors. Stalagmites and stalactites in caves would suddenly vanish or appear elsewhere, people's hair would vanish. Perhaps the worst was monsters with hair would occasionally cause the entire screen to be filled with solid colors, the only thing visible being myself, spells, and the monster's head. This was worse with scamps while in the towers on the plane of oblivion, where the whole screen would go black while trying to cross a narrow bridge.

While trying to get Command & Conquer 3: Tiberium Wars to install, I accidentally broke my wine installation. After a couple of full reinstall attempts (read: delete the .wine directory and start from scratch), I got it working again. This time, the rendering glitches vanished and I was crashing somewhat less frequently.



Eventually though, I decided to downgrade to WINE 1.2.1, the stable version of WINE. If you're on Arch Linux, you can find it as the wine-stable package on AUR. I found no changes in performance or stability between the two versions. HOWEVER, I did fine one thing that pleases me very much about version 1.2.1: OBSE works! It may be too soon for me to say that, but I have tested it with the keychain mod, and found that it worked without a hitch!

I'll report any apparent OBSE problems below, should I encounter them.



OBSE Issues
* OBSE appears to cause a crash/freeze when shutting down Oblivion.
* One hotkey mod I tested did not work completely (wouldn't detect 0 and 9 keypresses)
* The MiniMap HUD has rendering issues, when it displays at all.
* Not OBSE-related, but the numpad keys are not detected by Oblivion.

In addition, I found one report that OBSE works under WINE 1.3.4 if you use the wineconsole utility. I've contacted the reporter for further details.


More on OBSE
After upgrading to version 1.3.5 for a quick test, I've found that OBSE works without the use of wineconsole. However, in my case there is something special I must do in order for it to work. It must be launched while emulating a virtual desktop, like so:

wine explorer /desktop=Oblivion,800x600 ./obse_loader.exe

Launching it any other way causes it to crash on startup with 100% consistency (for me, at least). If I launch it by command line (with or without wineconsole), or launch it from its folder in a file manager, it always crashes. Even if I turn the "Emulate a virtual desktop" option on in winecfg, it still crashes. It seems using wine explorer to launch it is the only way I can make it work.


HDR Lighting
One more quick thing to report: under my current setup, HDR works! However, this is while using the Shader Model 3.0-capable shaders package. Scroll down to "bAllow30Shaders" under the graphics variables section, and you can find instructions on how to enable it here: http://www.tweakguides.com/Oblivion_8.html