Empire: Total War Forum

This is a community forum and not official technical support. — If you need official support: Contact Us

The following comments are owned by whoever posted them. We are not responsible for them in any way.

Back to Threads Reply to Thread

Empire Total War: DirectX questions.

Well I have been assigned with the mission of making this game work under linux. What I have manage:

  • Game install correctly from Steam Download.
  • Game runs correctly.
  • Can modify options in the main menu.
  • Can play under campaign map.

What does not work:

  • Can't start battle tutorial.
  • Can't play battles.
  • Sometimes the campaign map suffers a graphical glitch.

Not tested:

  • Multiplayer.
  • Naval Battles.
  • American Independence Tutorial.

I followed the configuration in winehq:
"DirectDrawRenderer"="gdi"
"OffscreenRenderingMode"="fbo"
"PixelShaderMode"="enabled"
"SoftwareEmulation"="enabled"
"UseGLSL"="enabled"
"VertexShaderMode"="hardware"
"VideoDescription"="NVIDIA GeForce 8600 GTS"
"VideoDriver"="nv4_disp.dll"
"VideoMemorySize"="256"

I did install d3dx9 from winetricks.

Now as for Codeweavers games cross platform I can reproduce the configuration, except for the d3dx9 from winetricks. How can I installed them? and override the directx from the Codeweavers games cross platform.

I will try to continue debuging and trying to help WineHq and codeweavers.

Fco Jaén.

Hi,

I can crossoverfy some of this for you if you like...;

Posted:

"DirectDrawRenderer"="gdi" <typically the default setting [1]
"OffscreenRenderingMode"="fbo" <typically the default setting [1]
"PixelShaderMode"="enabled" <available via winecfg->graphics tab - usually this is the default
"SoftwareEmulation"="enabled" <-----not real sure on this one in CX
"UseGLSL"="enabled" <typically the default setting [1]
"VertexShaderMode"="hardware" <available via winecfg->graphics tab - usually this is the default
"VideoDescription"="NVIDIA GeForce 8600 GTS" <<system usually handles this
"VideoDriver"="nv4_disp.dll" <<system usually handles this
"VideoMemorySize"="256" <no default setting, should be set to sizeof videocard ram [1]

I did install d3dx9 from winetricks


Items marked with [1] are not defaultly included in the crossover wine registry, but are analogous
to the following registry key. Some games require these registry entries to work ;

REGEDIT4

[HKEY_CURRENT_USER\Software\Wine\Direct3D]
"DirectDrawRenderer"="gdi"
"OffscreenRenderingMode"="fbo"
"UseGLSL"="enable"
"VideoMemorySize"="512"

As for d3dx9 from winetricks....hmmm....it's basically equivalent to installing the directx runtime
package builtin to crossover +plus+ setting some dll overrides. I'm not sure if your app needs either
the 'modern' or 'legacy' package here. but the crossover install of directx doesn't appear to set any
registry overrides like winetricks is doing. So if your app requires dll overrides for the directx
dll files, you'd have to add them manually via the winecfg->libraries tab...

(from the relevant section of winetricks)


override_dlls native d3dx9_24 d3dx9_25 d3dx9_26 d3dx9_27 d3dx9_28 d3dx9_29 d3dx9_30                                    
override_dlls native d3dx9_31 d3dx9_32 d3dx9_33 d3dx9_34 d3dx9_35 d3dx9_36 d3dx9_37                                    
override_dlls native d3dx9_38 d3dx9_39 d3dx9_40 d3dx9_41 d3dx9_42

That's about what you're looking at here all up, and it's quite possible that one of the inbuilt
crossover profiles (for another app) actually sets these overrides..I didn't check...

This would be all very easy to do with a hand-cooked c4p recipe though...let me know
if I can assist you in that respect....

Hope this helps...

Cheers!

Thanks a lot, once I get back home (from work [Spain]) I will check those stuff and will continue to debug in order to make it work (I am very subborn :) )

Again THANKS !!!!!!!!!!

Francisco, it's not clear from your original post if you just tried installing DirectX using CrossOver's software installer. It knows how to download and install it. I suspect it will work fine without the need for the winetricks DLL overrides.

Ok, when not using Codeweavers game port, just using wine I override the dlls with winetricks. Rightnow i am testing codeweavers game port without overriding the dll's. Will publish the results a soon as I can, However I was curious if I am able to override the dll's and in that case how. :) Hope is a bit more clear.

Brief:

  • With Wine (Version 1.1.4X+) I override with winetricks.
  • With Codeweavers Gaming Port (CGP) I am testing the game and I will try to override some libreries, to see if its posible.

As Don mentioned, you can set DLL overrides using the Libraries tab of the Wine Configuration (winecfg) control panel.

As Ken points out, you really shouldn't need to set the library overrides
for directx -- you should be able to just install the Microsoft Directx
Redistributable (either 'modern' or 'legacy'), and that should be enough.
This situation is echoed in the winetricks script itself..."# [i]For now, not
needed, but when Wine starts preferring our builtin dll over native it will be.[/i] "

If you do really want/need to set dll overrides, then as mentioned previously,
you can use the wine configuration->libraries tab to do this. Alternately, you
could use a registry key entry....(3 dll overrides shown);

REGEDIT4

[HKEY_CURRENT_USER\Software\Wine\DllOverrides]
"d3dx9_24"="native,built"
"d3dx9_26"="native,built"
"d3dx9_28"="native,built"

You could create a plaintext file formatted as per above (adding extra dll
overrides as needed, one per line) and use 'regedit' to import that into
the registry. If you use the c4p system, you can achieve the same ends via
the <preinstallregistry> tag in a c4p file...

Cheers!

thanks a lot :).

Now I am at the same point using codeweavers / just wine. The battles wont work. Now I would like to get a good debuging info to post here, so the gurus may be able to help with more information. The rest of the game (except for multiplayer that is not tested) looks good.

Thanks a lot again.

Hi again,

Have a look at the following page ;

http://www.codeweavers.com/support/wiki/SubmitTechSupportLog

When you get the debuglog together, gzip it and hoist it on
a free public repo like rapidchare or the like -- post the URL
of the file back here so others can grab a copy and have a look
at it for you....

...actually. to be honest here, I don't like that example on that
page all that much...at least, not in linu xanyhow. I must scribble
down a note about that.....on that page, the example is (let's just
change it to cxgames instead though and alter the logfile name);

/opt/cxgames/bin/wine --verbose --debugmsg=+seh --cx-log ~/Desktop/app-name-(number).log --cx-app NameOfProgram.exe

...if you have cxgames installed in your homedir instead, that command
above would instead be ;

/home/[your_username]/cxgames/bin/wine --verbose --debugmsg=+seh --cx-log ~/Desktop/app-name-(number).log --cx-app NameOfProgram.exe

In both cases, the logfile will end up in /home/[your_username]/Desktop/app-name-(number).log

This debugging functionality is also available via the CXG GUI ;

Start cxsetup (Manage Bottles) => highlight bottle involved => Run Command

Use the browse bottle to navigate to the game executable, and click open.
Click on the debug options just below that specifying what debug 'channels'
you want to look at, then click Run....

The main reason I don't like the above examples, is because I know some titles
won't work via the above invocations, regardless of the fact the examples in
themselves are correct. Here's a few examples where the above might fail to work;

*For whatever reason, the game executable absolutely needs to be invoked from
inside the same directory in which it resides. For example, you would have to
runthe above command with the extra --workdir switch -- I'm not exactly sure
if that's inferred by the above command examples....I must ask a Ninja about that...

Cube2: Sauerbraten is a good case like this. Let's say I have installed it into
a bottle I named sauerbraten -- to debug this game, it's necessary to do this;

bash-3.2$ cd ~/.cxgames/sauerbraten/drive_c/"Program Files"/Sauerbraten

bash-3.2$~/cxgames/bin/wine --bottle sauerbraten --debugmsg=+seh,+trace bin/sauervraten.exe -f &>~/sauerbraten.log

..because that's the way that exe want to be started. The act of first changing to the
game exe directory before running the game exe itself, is equivalent to using the --workdir
switch...ie; for the example on the above codeweavers page, it work become;

/home/[your_username]/cxgames/bin/wine --workdir ~/.cxgames/[full/path/to/game_exe_dir]--verbose --debugmsg=+seh --cx-log ~/Desktop/app-name-(number).log --cx-app NameOfProgram.exe

You shoud alwys check this anyhow for mine - I've found a lot of games/apps that really
like being started from inside their own dir 8)

Cheers!

I confirm crashes at loading battles. Loading campaign gos fine. But when loading a battle gives a crash.
Somehow in WIneHq they mention a fix/patch: http://bugs.winehq.org/show_bug.cgi?id=18490
but i am not into wine, maybe some developers of codeweavers can do something with it i don`t know. Till then, this game is unplayable.

Ow regkeys are not neceserry to get the game running, but it does need Visual C++ 2005.

Is no one any nearer to sorting this out? I'd love to play this.

1 to 11 of 11

CrossOver Forums: the place to discuss running Windows applications on Mac and Linux

CodeWeavers or its third-party tools process personal data (e.g. browsing data or IP addresses) and use cookies or other identifiers, which are necessary for its functioning and required to achieve the purposes illustrated in our Privacy Policy. You accept the use of cookies or other identifiers by clicking the Acknowledge button.
Please Wait...
eyJjb3VudHJ5IjoiVVMiLCJsYW5nIjoiZW4iLCJjYXJ0IjowLCJ0enMiOi02LCJjZG4iOiJodHRwczpcL1wvbWVkaWEuY29kZXdlYXZlcnMuY29tXC9wdWJcL2Nyb3Nzb3Zlclwvd2Vic2l0ZSIsImNkbnRzIjoxNzM0NzIyMzMzLCJjc3JmX3Rva2VuIjoiR3VMQjR0cWhXY2FMc2NYMiIsImdkcHIiOjB9