Thanks to Xaphir for this write-up!!
Report on from-scratch Neverwinter Nights 2 installation on Fedora 12, x86_64:
I. DRM (Copy Protection) DVD access
NeverwinterNights 2 was not getting to the DVD or not recognizing it. This had nothing to do with CXG's drm/copy protection capabilities, rather, it was the lack of a i686 hal library on 64 bit Fedora 12. The library package that was needed to fix this on Fedora was
hal-libs-0.5.13-9.fc12.i686
I also installed
libXcursor-1.1.10-1.fc12.i686
To make sure that the cursors within the game would be displayed properly. Thanks to Caron and Ken on #crossover channel for their professional help and suggesting the use of cxdiag, as a result of their help I was able to resolve the drm problem. There may be other dependencies that you don't have. Therefore, as a shotgun fix for possible missed dependencies in the case of trouble, I recommend installing the phoronix-test-suite. That will have the shotgun effect of pulling in a host of i686 dependencies needed for opengl game operation, and otherwise, that are also needed for CXG operations. That may be a fast fix for you.
Let's say you don't want the shotgun. Cxdiag offers another more atomic per-library solution. Try running
/opt/cxgames/bin/cxdiag
and get the names of needed libs. This won't do you any good by itself however, you need to ask yum where they came from. Look at an example output of cxdiag from my system:
[MissingLibXcomposite]
"Level"="Recommend"
"Title"="Missing 32bit libXcomposite.so.1 library"
"Description"="This is needed for most CAD-like applications and some games."
OK so we are missing the libXcomposite.so.1 lib. That's great but what package actually provides it? We ask yum:
yum whatprovides */libXcomposite.so.1
Output of yum after it contacts and updates from the repos:
Loaded plugins: downloadonly, fastestmirror, refresh-packagekit
libXcomposite-0.4.1-2.fc12.x86_64 : X Composite Extension library
Repo : fedora
Matched from:
Filename : /usr/lib64/libXcomposite.so.1
libXcomposite-0.4.1-2.fc12.i686 : X Composite Extension library
Repo : fedora
Matched from:
Filename : /usr/lib/libXcomposite.so.1
libXcomposite-0.4.1-2.fc12.x86_64 : X Composite Extension library
Repo : installed
Matched from:
Filename : /usr/lib64/libXcomposite.so.1
So from this output I can see that I have the 64 bit version installed, which does me no good I need the i686 version, so to fix this I do:
yum install libXcomposite-0.4.1-2.fc12.i686
With this procedure in combination with cxdiags, you can now make sure that all CXG dependencies are satisfied according to diagnostics under Fedora 12 64. Or any Fedora version for that matter.
II. Video Hardware Not Recognized
This was not due to registry settings, but rather due to the treatment of the dx9 interface by CXG. In the Wine Configuration UI under Libraries, the dxdiagn library must be set to "disable" instead of the default "native,builtin", because in the case of the "Modern" dx9 runtime, install of the dxdiagn dll doesn't happen. Setting "disable" in this case enables hardware recognition by CXG and the game. IF on the other hand the "Legacy" version of the dx9 runtime was installed, then the native dxdiagn dll should be there. In that case, setting it either to "disable" or "native" has achieved equal functionality here. Theoretically, in the case of "Legacy" dx9 install, when you set "native", you should be talking directly to the dxdiagn.dll during hardware detection. That may produce either different or better results; I haven't confirmed that however.
III. Type of Bottle install
There seems to be some confusion over wether win2k or winxp bottles need to be used, in my experience the problems related to game function probably are not related to the type of bottle used (My system is using the winxp type) but rather to how the prerequisite packages are installed, the type and order in which they are put in. With the test I conducted the install order was
1) Visual C++ 2005 Redistributable
2) .Net Framework 2.0
3) DirectX Runtime, Modern
4) Neverwinter Nights 2
With CXG 9.2.0 Nwn2 works perfectly under the winxp bottle. I used the CXG versions of the redistributable packages rather than the ones downloadable from M$.
IV. Registry Settings (From Nwn2 Tips & Tricks)
Under CXG 9.2.0, with the above install procedure, I was suprised to find that Nwn2 ran with no Direct3D registry modifications under Fedora 12. This is with the game patched all the way up to 1.23. I ran the game with and without Direct3d registry settings.
Some registry settings related to internet access are required in order to allow the game to download the online patches. From the Nwn2 Tips & Tricks section I found these settings to work:
[HKEY_LOCAL_MACHINE\Software\Obsidian\NWN2\Neverwinter\NWUpdate]
Internet Connection=1
Ping Timeout=3000
I've got ATI video hardware and although with CXG 9.2 you don't need to specify registry settings for Direct3d, I did anyway so that I could have better control over how the graphics were being handled. The settings I have with the VideoPCI strings are specific to my video card and should be obtained on a per-user basis using lspci. The following settings are currently working with my hardware/OS profile:
HKEY_CURRENT_USER\Software\Wine\Direct3D
DirectDrawRenderer opengl
Multisampling enabled
OffscreenRenderingMode fbo
UseGLSL auto
VertexShaderMode hardware
VideoMemorySize 256
VideoPCIDeviceID 0x00009612 (38418)
VideoPCIVendorID 0x00001002 (4098)
A better description of what these strings are and their settings is available at
http://wiki.winehq.org/UsefulRegistryKeys
Along with the description about how to enter the proper values for the VideoPCI strings. To get the VideoPCI Device ID's, first I ran lspci by itself to get a verbal description of the devices, which allowed me to locate the video hardware id's. Then I ran lspci -n and matched those ID's to the verbal output of lspci to confirm I had the video card ID correct. The numbers from lspci -n are what the registry settings require. Example, the default output of lspci showed my video card indexed as "01:05.0". Lspci -n output showed the index number plus the id's: "01:05.0 0300: 1002:9612". In this case the VideoPCIVendorID is entered as type DWORD "1002" and the VideoPCIDeviceID is entered as type DWORD "9612". This may come in handy for someone with a specific video hardware problem or conflict.
Final Note: Intro move works flawlessly with this install procedure/distro combination.
My current system profile:
Processor: AMD Turion X2 Dual-Core Mobile RM-70 @ 0.99GHz (Total Cores:2)
Motherboard: Hewlett-Packard HP Pavilion dv5 Notebook PC
Chipset: AMD RS780 + SB700/SB800
System Memory: 2763MB
Disk: 250GB WDC WD2500BEVS-0
Graphics: ATI RS780M/RS780MN [Radeon HD 3200 Graphics]
Monitor: LP154WX4-TLC8
OS: Fedora release 12 (Constantine)
Kernel: 2.6.32.23-170.fc12.x86_64
Catalyst: 8.80_RC1-x86.x86_64
Desktop: KDE 4.4.5-1
Display Server: X.Org Server 1.7.6-4
OpenGL: 3.3.10242 Compatibility Profile Context
Compiler: GCC 4.4.4-10
File-System: jfs
Screen Resolution: 1280x800