alysia's profile picture

Published by

published
updated

Category: Games

How to play/fix Dead Space (2008) on Linux/SteamOS

I recently played through the original Dead Space, but it is very buggy and hard to play without fixes. AFAIK these are also problems on windows due to the game just being a bad port overall. An example of this would be the mouse sensitivity being tied to your fps, which is very unstable to begin with. The implementation of directx9 they use is also extremely buggy, freezing constantly. Fixing these issues took me some trial and error, so I wanted to share my configuration to make it easier for anyone else.

Files

To fix the aforementioned issues, I used two pieces of software:

For dxwrapper, however, at the time of writing I am using version 1.4.7900.25, although the latest should work, just make sure you download the file called dx9.games.zip

files

Once you have these two files downloaded, go to where your copy of dead space is installed. For me, I find it by going in my steam library, right click it, and select "Browse local files"

browse files

After you have your dead space installation open, open the two zip files you downloaded and extract d3d9.dll, dxwrapper.dll, dxwrapper.ini, and dinput8.dll into the same folder as Dead Space.exe

extract files

Now that the files are extracted, we have to configure dxwrapper to actually fix the issues. To do this, open dxwrapper.ini in a text editor and make sure you set D3d9to9Ex = 1, EnableD3d9Wrapper = 1, and FullscreenWindowMode = 1. Everything else, except for the dsound settings, should be 0. This fixes the freezing and sets the game to use a fullscreen borderless window. The drop down is what it should look like, feel free to copy and paste it into your config.

dxwrapper.ini
;; Config file for DirectX DLL Wrapper
;;
;; For details, see: https://github.com/elishacloud/dxwrapper/wiki/Configuration
;;
[General]
RealDllPath                = AUTO
WrapperMode                = AUTO
LoadCustomDllPath          = 
ExcludeProcess             = 
IncludeProcess             = 
RunProcess                 = 
WaitForProcess             = 0
DisableLogging             = 1

[Plugins]
LoadPlugins                = 0
LoadFromScriptsOnly        = 0

[Compatibility]
Dd7to9                     = 0
D3d8to9                    = 0
D3d9to9Ex                  = 1
DDrawCompat                = 0
Dinputto8                  = 0
DisableGameUX              = 0
EnableDdrawWrapper         = 0
EnableD3d9Wrapper          = 1
EnableDinput8Wrapper       = 0
EnableDsoundWrapper        = 0
EnableOpenDialogHook       = 0
WinVersionLie              = off
WinVersionLieSP            = 0
FixPerfCounterUptime       = 0
HandleExceptions           = 0
SingleProcAffinity         = 0

[d3d9]
AnisotropicFiltering       = 0
AntiAliasing               = 0
EnvironmentCubeMapFix      = 0
EnableVSync                = 0
ForceVsyncMode             = 0
ShowFPSCounter             = 0
OverrideRefreshRate        = 0
LimitDisplayModeCount      = 0
CustomDisplayWidth         = 0
CustomDisplayHeight        = 0
LimitPerFrameFPS           = 0
EnableWindowMode           = 0
WindowModeBorder           = 0
SetInitialWindowPosition   = 0
InitialWindowPositionLeft  = 0
InitialWindowPositionTop   = 0
FullscreenWindowMode       = 1
ForceExclusiveFullscreen   = 0
ForceMixedVertexProcessing = 0
ForceSystemMemVertexCache  = 0
SetSwapEffectShim          = 0
DisableMaxWindowedMode     = 0
ForceDirect3D9On12         = 0
GraphicsHybridAdapter      = 0

[FullScreen]
FullScreen                 = 0
ForceWindowResize          = 0
WaitForWindowChanges       = 0

[dinput8]
DeviceLookupCacheTime      = 0
FilterNonActiveInput       = 0
FixHighFrequencyMouse      = 0
MouseMovementFactor        = 0
MouseMovementPadding       = 0

[dsound]
Num2DBuffers               = 0
Num3DBuffers               = 0
ForceCertification         = 0
ForceExclusiveMode         = 0
ForceSoftwareMixing        = 0
ForceHardwareMixing        = 0
ForceHQ3DSoftMixing        = 0
ForceNonStaticBuffers      = 0
ForceVoiceManagement       = 0
ForcePrimaryBufferFormat   = 0
PrimaryBufferBits          = 16
PrimaryBufferSamples       = 44100
PrimaryBufferChannels      = 2
AudioClipDetection         = 0

Unfortunately I can't fix how unstable the frame rate is overall, but these files make the game feel a lot better. Although I noticed that mouse sensitivity will be higher when standing on fleshy surfaces (not including corpses), I am not sure if this is intentional or not, but it did not impede my experience with the game. Now onto the steam properties.

Steam Properties

We're almost done, open the game's properties.

properties

For this guide I am using Proton 10. I don't see why this wouldn't work on other Proton versions, but that is the version I used.

proton

Now we are going to set the launch options.

First, make sure you set DXVK_FRAME_RATE to 1 digit less than your screens refresh rate, we will not be using vsync in game, but without doing this step the game will not run correctly. I have a 144hz monitor, so I will add DXVK_FRAME_RATE=143 to my launch options.

Second, add WINEDLLOVERRIDES="dinput8=n,b;d3d9=n,b", this tells steam to load the dll files we added to the games directory, before it's own included ones. This is what allows the Mouse Fix, and dxwrapper to function correctly.

Finally, add %command% to the end since all we are doing is changing a few variables that ensure the game runs the way we want it to. your final launch option line should look something like this

DXVK_FRAME_RATE=143 WINEDLLOVERRIDES="dinput8=n,b;d3d9=n,b" %command%

Personally, I also run the game with gamemoderun before %command% but it isn't necessary to fix the game.

launch options

In-game Settings

Now launch the game, set your resolution/refresh rate, disable Vsync, and disable Full Screen in-game. After disabling the in-game fullscreen, you should see the window appear for a second, then immediately fullscreen again. The difference this time is it will be a window and won't minimize when you alt-tab.

settings

From now on the game should play all the way through without freezing or crashing! If you are still encountering game breaking issues, try setting SingleProcAffinity = 1 in dxwrapper.ini as this can help in some areas. What it does is set the game to only use 1 cpu core since apparently the way the game handles multi-threading is not very good. I didn't need it, but it is definitely worth a shot if you are struggling to run this game!

screenshot


0 Kudos

Comments

Displaying 1 of 1 comments ( View all | Add Comment )

cami

cami's profile picture

I wish I understood how any of this works, seems so cool!!!


Report Comment