Deus Ex 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

Variable speed gameplay + undetected video card

I'm presently running Crossover Games 9.0b4 to deal with the broken steam support in 8.x, although I have experienced this in 8.x and never bothered to report it.

Problem 1: Undetected video card (trivial work-around, new to 9.0b4 I believe)

Deus Ex GOTY edition from steam installs fine, but when I run it for the first time it pops up a config dialogue which seems unable to detect my 8600M GT and defaults to software rendering only. Forcing the game to use Direct3D regardless appears to work seamlessly, however. Minor quibble, but perhaps worth noting. The real problem however is:

Problem 2: Variable gameplay speed (present in 8.x as well)

Depending upon [I believe] system load the gameplay speed changes dramatically. Generally speaking if a voiceover (from a radio com, for instance) is playing the game plays at just slightly faster than normal (as compared to my XP desktop) however many sound files will not play to completion--radio transmissions will be cut short before they say everything the subtitles indicate should be said. When a radio transmission isn't being played, or I'm in a narrow corridor (low system load?) the game speed shoots up to at least ~150%--everything moves faster and timers on grenades and the like are significantly reduced. The end result is that passing from room to room the simulation speed can swing wildly from normal to hyper-fast without much warning.

Anyone know how I can address this?

I'm pretty sure the game not identifying the card is kind of normal. I can't think of any game that does. Steam doesn't, I'm sure of that.

The sound definitely cuts off for me too. I have no idea why this would happen.

About the variable speed, maybe the game doesn't have an FPS cap? The game is certainly harder to play with this issue. I'll poke around and see if there might be a useful mod or something.

I'm also running 9.0.0beta4. I will just add that while the game loads for the first time, it tries to detect several things about your system, not just the video card, and it looks like the game has hung. You just have to leave it alone for a bit.

Correction: When run for the first time, a "Deus Ex Video Configuration" utility opens and it only asks the system for available video devices. It still seems like it freezes, though. And after maybe a minute, it says you should use the Software Renderer (because it can't find your card). I tried Software, OpenGL, and DirectX renderers, and they all worked well. Most noticeable is that they limit the game resolution, with DirectX being the one with more options.

Tried it with beta7, still too fast.

Apparently it's a problem for windows users, too. None of the configuration fixes that I tried worked. I haven't tried actual application hacks yet.

The good thing is that CXG is running this game so well that I even have the same problem as windows users 😀

When I had this problem I solved it by simply enabling VSync at driver level so it effectively capped at 60fps. After that it worked 100% fine.

Arch Linux, Nvidia 8800GT, Nvidia drivers.

Yep, tried that.

I selected Direct X in the video configuration utility, opened up DeusEx.ini, went to the Direct3D section, set UseVsync=True, restarted the game. Still too fast.

Changed renderer for OpenGl, added FrameRateLimit=60 to its section, restarted game. Still too fast.

I didn't try Software renderer though ...

Worth a try. When I played it I absolutely had to force it on in the nvidia-settings control panel rather than the game itself - enabling the option in games never did anything for me if I didn't set it in the driver panel first.

Oh, of course!

Thanks, that took care of the sound and the speed.

I did try the Software renderer, and it resulted in a decent speed, but jittery controls. Not entirely unexpected I suppose.

Hi,

The up/down gameplay speed, lack of sync, run too fast,
cutshort audio dialog playback during cutscenes, or 3D
menu background logo not spinning slowly and smoothly,
is due to multicore (2 or more) CPU cores - the game exe
can't deal with this. I doubt it was coded for such -
multicores didn't exist then, so it probably lacks the
ability to marshal the data, and at a guess, the default
kernel process scheduler (in any OS with an SMP kernel)
is probably ~causing~ this, although it would be 'correct'
behavior as such -- the kernel scheduler simply doesn't
know that process' PID should only have it's data piped
to 1 CPU core...but you can change this - I'll put up
a tips&tricks note about this later (or if someone else
wants to do it, that's fine by me 8) -- I've more than
enough on my plate presently..<g>...

linux; open a console/xterm, and see if you have taskset
installed ; if not, then do something like ;

apt-get install schedutils

Once you have it installed, start Steam, then start Deus Ex.
In your xterm/console, issue the following command;

ps cux

Find the PID of DeusEx.exe, and bind it to a single CPU by
using the taskset command;

taskset -p 01 <PID>

This, can be a bit of a challenge if it's running in fullscreen
mode, so it's actually best to start DX, go straight into the
options and pop it into windowed mode, do the do with taskset,
and you can then pop it back into fullscreen mode and it won't
throw a wobbly...

Mac: I'll have to investigate, because OSX doesn't support
process renaming -- in theory, it should be the PID of the
'busiest' wineserver process in the Activity Monitor list
(or same via ps in terminal)....and how do we set processor
affinity in OSX?..(I'll have to look into it)...

Graphics: I always thought this title looked poor in fullscreen
mode, and I'd always thought that was display aspect ratio
related somehow, but Brandon reports in beta it doesn't look
all that good fullscreen for him either, and he has a 4:3 that
can pull 1280x1024. I know it does futz with gamma at startup
(and that's easy enough to deal with), but I noticed doing the
above, (and after setting the -game- config to do a 60Hz refresh),
that it does actually look a lot better on my 1680x1050 when
you set the game video options to windowed mode @ 1280x700....

Cheers!

ps: using the GOTY edition on Steam, linux, 9800gt

Someone on WineHQ reported success correcting this issue by setting VSync to enabled inside the settings for the card. Their example for Nvidia:

run nvidia-settings. OpenGL Settings -> check "Sync to VBlank".

Since I'm planning on playing a little Deus Ex tonight, I'll test and see whether this fix works correctly on Crossover. Since I'm on a Mac, we might be able to solve that mystery too.

Hi,

Yes, I know -- here, with vblank enabled in nvidia-settings,
it makes no difference at all ... in fact, you'd have to wonder
just why the default DX config sets refresh to 100Hz ... but anyway,
you'll find out ; I think changing vrefresh does help graphics,
but it's not the actual problem...let us know how it goes...

Cheers!

Well, here I was thinking I was smart. Turns out I don't know how to change the Nvidia settings, if it's within Crossover itself. I thought I knew where to go, but the manager was for Nvidia PhysX, not the general Nvidia controls. I don't see anywhere to change this, unless I'm overlooking something or need something additional installed in my bottle. Help me out here and I'll let you know if it works here. I'll be happy to test any other potential Mac-specific fixes you come up with.

Hi again,

Well, you see, this is why it's fraught with danger referencing winehq  

and trying to meld information there into the Crossover Mac case -- winehq
would be 90%+ linuxcentric, and has little to do with OSX at all (most of
the time). Here, we were referring to the proprietary nvidia drivers on linux,
and the user control GUI that gives up access to the driver properties - OSX
does not have this, as it uses it's own builtin drivers...

Unfortunately (and I suspected as much), OSX doesn't support setting the CPU
affinity to a particular process/thread....;

"Mac OS X does not export interfaces that identify processors or control thread placement—explicit thread to processor binding is not supported. Instead, the kernel manages all thread placement. Applications expect that the scheduler will, under most circumstances, run its threads using a good processor placement with respect to cache affinity."

citing: http://developer.apple.com/mac/library/releasenotes/Performance/RN-AffinityAPI/

Ergo, if this title does similar things in OSX, you may be stuck between a rock and a tight
spot with no way out - user access/control is not provided to adjust the OS parameters
you need to alter...

Cheers!

I just wanted to make a quick mention of the graphics before I get into the game speed. When I force the game to use the DirectX renderer, it does seem to detect my video card. Or at the very least it lets me pick 1280x1024 as a resolution. However, the actual game screen remains stuck at 800x600 or whatever, and it only takes up the top left quarter of the screen. The rest of the screen is either black or my desktop. (This is using Linux, by the way.) I was not able to make the game screen take up the full resolution when using the DirectX renderer. The OpenGL renderer didn't fare any better than the Software Renderer, but someone pointed out that you can edit the DeusEx.ini file to set the OpenGL renderer at the specified resolutions. Oh, and with the DirectX renderer, setting the Color Depth to 32-bits crashed the game. But it is possible to get 32-bit color by editing the .ini file.

Anyway... Don and I have been trying to figure out this game speed issue. Apparently taskset doesn't work properly on quad-core systems. I'm hoping he or someone else can figure out a solution.

Hmmm....looking at manpage of the system calls for this...;

  "A process's CPU affinity mask determines the set of CPUs on which it is  
   eligible  to run.  On a multiprocessor system, setting the CPU affinity  
   mask can be used to obtain performance benefits.  For example, by dedi-  
   cating one CPU to a particular process (i.e., setting the affinity mask  
   of that process to specify a single CPU, and setting the affinity  mask  
   of  all  other processes to exclude that CPU), it is possible to ensure  
   maximum execution speed for that process.  Restricting a process to run  
   on  a single CPU also prevents the performance cost caused by the cache  
   invalidation that occurs when a process ceases to execute  on  one  CPU  
   and then recommences execution on a different CPU."

....further on, (in Notes) it mentions..;

  "A child created via fork(2) inherits its parent's  CPU  affinity  mask.  
   The affinity mask is preserved across an execve(2)"

Something about that seems a bit undefined compared to the behavior I'm seeing.
That is, I think taskset is actually working correctly, but we're not exactly
defining the inferred situation for other processes running on the CPU cores.

That is reflected in '[i]and setting the affinity mask of all other processes
to exclude that CPU[/i]' -- in real terms, what works for me doesn't involve
telling all other processes (in particular the wine processes that forked
duesex.exe) to avoid the selected CPU core, so deasex.exe is bound to CPU0
and all other processes still retain the 03 mask - use both CPU0 & CPU1...

...perhaps the thread affinity cache becomes even more fragmented when the
possibility arises that all the processes involved with actually hoisting the
deusex.exe thread could, in theory, be instantiated on a different core at
any one moment in time..hmmm....I'll setup a test on the quad core and see...

...still haven't sat down with the quad core machine -- just been too busy with
the AMD x2 units checking stuff (not to mention the iMac..) ; I blew my Steam
bottle up again chasing another problem ; moved it out of the way and reinstalled
Steam...checked a few other things and decided to look at this again 'coz something
didn't add up -- restored Deus Ex - GOTY from pristine Steam backup, started it
(without modding anything) and let it rattle thru first time start...and it does
start, fullscreen @ 640x480_60 16bpp. Straight up, I notice the spinning logo in
background was moving slowly and smoothly...no speed glitche?...I look again, it's
spinning in the opposite direction..(???).. what gives...[quit]

...started it up again, still no speed problem...maybe 32bpp?...turn that on (doesn't
take effect until restart)...decide to change resolution to 1024x768 and apply that,
game immediately freaks out, tries to do 1024x768 windowed mode, then crashes and
burns ;) Start it up again...and it's concluded to start @ 1024x768_60 32bpp windowed
mode, and I very definitely did not ask for that...ghost in the machine? <g> Considering
the situation (me having moved the old Steam bottle out of this snapshot), the previous
edits made to the game.ini file in the old Steam bottle no longer existed...and seeing
as the last time I tested it, I had it in windowed mode @ 1280x960...just a little too
much of a coincidence...

...when it was fullscreen, I did move to 800x600, but that didn't make it want to go
hurl into windowed mode...it seems like 1024x768 triggers that response -- it feels
all the world like there's 2 sets of config files hanging around (DeusEX Invisible War
tosses stuff into $homedir), but I can't spot the Steam GOTY doing this...hmmm....I
kept torturing it for a while and managed to get it doing 'very strange things'...this
is worth doing, get it into fullscreen and start changing screen resolution in the
ingame settings...here, it ending up saying it was doing 1280x960..on a 640x480 screen ;)

...I think I know what's going on...I have the disc release of DeusEx and the gamersgate
release of Invisible War -- I just reinstalled the CD version -- like that standalone
gamersgate version, the disc release also copies runtime files into $homedir, and the
file 'user.ini' is part of that content - there are other files, some are binary encoded.
Cross checking this against the the Steam install layout, and it's all different - the
user.ini file has become User.ini instead (and has been moved), and the other files present
in the non-Steam release, have been replaced by the file 'dummy.txt' -- this means Steam
have likely packed this data into the associated .ncf file -- going by the game install
layout of the non-Steam releases, I'm really expecting to see 'user.ini' (lower case)
where 'Dummy.txt' is - my guess is there's a copy of this file in the .ncf as well...

...I did not manually modify any of the Steam install files -- post-torture, I note
that DeusEx.ini has a modification time of 02:30 - this matches the last touch on the
file DeusEx.log...the file User.ini (upper case U) has also been touched subsequent to
installation, however it's timestamp is much younger at 23:46 ... install time was 23:37
-- this infers that User.ini was modified by the invocation of Setup.exe @ first start
time, and DeusEx.ini is being modified every time you run the game (or futz with the
ingame settings) -- this begs the question ; why bother modifying User.ini once at setup
time, and then use DeusEx.ini ongoingly to store changes you make to settings after
first time start? The only thing I can think of, is some sort of baseline, reference
point - /perhaps/ values in here are being reread into the 'real' user.ini contained
in the .ncf file - these could be getting gurged as well...

...first time start here, sees the Setup gui appear, which results in a warning that
is immediately followed by what appears to be a driver detection routine hitting a
brick wall and coughing up blood - it appears benign however ; clicking on OK and
dismissing the error(s), then....w a i t....and eventually the setup gui refreshes
and/or becomes active again, and you can select the 'all devices' option and pick a
rendering driver and save out - this was when User.ini got touched...

In any event, I still have to explain just why it is that now I don't have to mod
the configs at all, nor grab taskset, and it's running at the right, consistent speed
and with the background menu logo spinning in the opposite direction...my current thought
is one could be modding DeusEx.ini (which appears volatile wrt ingame settings), and/or
manually set a value in DeusEx.ini, which conflicts with the 'one time' settings that
are establised/written to User.ini and which may also appear in the .ncf pack which
we aren't looking in - I suppose a likely candidate, would be changing rendering device
/driver to be one thing in one place, and something else in another...'undefined behavior'.

...somewhere in or around here is where it's getting messed up imho...I think if you
want to invoke Setup.exe again, all you have to do is make sure DeusEx.ini/User.ini have;

[FirstRun]
FirstRun=0

,,up near the top (it's usually set to another value), and double check the rendering
device selection there matches what you want to use and save out - this might be the
only way to refresh the hidden user.ini (if it exists ;)...else, attack User.ini instead
or as well as DeusEx.ini and perhaps ensure they're both saying the same thing, and see
if that has any sway on matters...apols for the longish post B)

Cheers!

That's a lot to read, but I did my best.

I trashed my DeusEx.ini (after backing up my modified version) and started the game, that way it would create a new DeusEx.ini file with the base setup. I selected DirectX, started the game, and went straight to the Training mode. The speed was still the same. I even have another program running that's taking up a lot of CPU load (about two cores worth) and Deus Ex was still fast, though the first bit of dialog seemed to get one more word out than it normally does. The second set of dialog seemed to end where it usually does, but I could be wrong.

But of course you did your tests on a dual core system, not a quad core, and that seems to be enough of a difference at the moment.

I encountered many of the same problems described in this post...variable game speed, audio cutting short. I also ran into problems running the game in full screen mode, and if I ran it in window mode the game was too dark to see most of the map.

After a lot of digging, and with help from support (http://www.codeweavers.com/support/tickets/browse/?ticket_id=843134) I've found a configuration that works well for me to run Deus Ex without any issues on my 2010 Mac Pro using CXG 10.x.

Check out the Tips & Tricks section for more information on the procedures.

1 to 17 of 17

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...
eyJjb3VudHJ5IjoiVVMiLCJsYW5nIjoiZW4iLCJjYXJ0IjowLCJ0enMiOi01LCJjZG4iOiJodHRwczpcL1wvbWVkaWEuY29kZXdlYXZlcnMuY29tXC9wdWJcL2Nyb3Nzb3Zlclwvd2Vic2l0ZSIsImNkbnRzIjoxNzA4NjEzODE4LCJjc3JmX3Rva2VuIjoidG10UFVXaHNHVGZoVmRDcCIsImdkcHIiOjB9