Skip to content

About

Dead Space 2 TexMod for Linux: load .tpf texture packs (4K suits, HD textures) on Proton, DXVK, ReShade and Steam Deck. No TexMod or uMod needed.

Topics

Resources

Stars

2 stars

Watchers

0 watching

Forks

Repository files navigation

Dead Space 2 TexMod for Linux

Dead Space 2 TexMod for Linux

Load TexMod / uMod texture packs (.tpf) in Dead Space 2 on Linux. 4K suits, HD weapons and more.
Steam · Proton / GE-Proton · DXVK · ReShade · Steam Deck

Linux Proton Steam Deck License MIT

"Make us whole." Your RIG, now in 4K.

🇧🇷 Leia em português →


What is this?

Dead Space 2 has great HD texture mods: 4K suits, weapons, and more. They come as .tpf files made for TexMod or uMod.

TexMod and uMod don't work on Linux. DS2TexInject replaces them. It is a small plugin that runs inside the game, finds the textures your packs replace, and swaps them in. Your existing .tpf files work as they are.

It works on Windows too. See Windows right below. On Linux, skip to Quick start.


Windows

On Windows there is an .exe installer that does everything. No Python and no launch options needed.

  1. Create a texmod folder inside the game folder and put your .tpf and .zip packs there (see Step 3).

  2. Run the installer in one of these ways:

    PowerShell (downloads and runs the latest version):

    irm https://raw.githubusercontent.com/sidnei-almeida/dead-space-2-texmod-linux/main/install.ps1 | iex

    Command Prompt (curl):

    curl -L -o "%TEMP%\DS2TexInject-Setup.exe" https://github.com/sidnei-almeida/dead-space-2-texmod-linux/releases/latest/download/DS2TexInject-Setup.exe && "%TEMP%\DS2TexInject-Setup.exe"

    Or download it and double-click:

    Download DS2TexInject-Setup.exe

  3. Play as usual from Steam or the EA app. F10 turns the textures on and off.

The installer:

  • finds Dead Space 2 (Steam libraries, EA app/Origin, Windows registry). If it can't, it opens a window so you can pick deadspace2.exe;
  • offers to download and install MarkerPatch if there is no ASI loader yet;
  • installs plugins\DS2TexInject.asi and DS2TexInject.ini;
  • prepares every pack in texmod\ into texmod\_cache\, including big zips such as a multi-GB remaster. If nothing changed since last time, it skips this step.

Added or removed packs? Run the installer again. To redo the textures from scratch: DS2TexInject-Setup.exe --rebuild. To give the game folder yourself: DS2TexInject-Setup.exe "D:\Games\Dead Space 2".

Windows SmartScreen may warn that the .exe is unsigned. Click More info → Run anyway. The source is in src/ds2setup.cpp.


Quick start

Step What to do
1 Install an ASI loader. MarkerPatch is recommended.
2 Add a Steam launch option.
3 Put your .tpf packs in a texmod folder.
4 Run ./install.sh from this repo.
5 Play. Press F10 to compare before and after.

Each step is explained in detail below.


Step 1: Install an ASI loader

DS2TexInject is an .asi plugin. It doesn't run by itself: something has to load it into the game. That is an ASI loader, and you need one of these two:

Option Why pick it
⭐ MarkerPatch (recommended) Loads the plugin and fixes many Dead Space 2 bugs: high FPS physics, VSync locked to 30 FPS, crashes on CPUs with many cores, raw mouse input, and more.
Ultimate ASI Loader Only loads the plugin. Use it if you don't want MarkerPatch.

MarkerPatch (recommended):

Download MarkerPatch

Extract it into the game folder, next to deadspace2.exe. You should end up with dinput8.dll and MarkerPatch.ini there.

Or Ultimate ASI Loader:

Download Ultimate ASI Loader

Get the Win32 (32-bit) version and put its dinput8.dll in the game folder, next to deadspace2.exe.

Where is the game folder? In Steam, right-click Dead Space 2 → Manage → Browse local files. It is usually ~/.local/share/Steam/steamapps/common/Dead Space 2.

Step 2: Add the Steam launch option

Proton ignores DLLs placed in the game folder unless you tell it to load them.

  1. In Steam, right-click Dead Space 2 → Properties → General.
  2. Paste one of these into Launch Options:

Without ReShade:

WINEDLLOVERRIDES="dinput8=n,b" %command%

With ReShade (your game folder has a d3d9.dll):

WINEDLLOVERRIDES="d3d9,dinput8=n,b" %command%

Step 3: Get the texture packs

The texture packs are not included in this repository. They belong to their authors, so download them from the original pages.

These packs were tested and work:

🟢 2K-4K Isaac Suits and Face

Isaac's suits and face in 2K and 4K, plus sharper weapons.

Nexus Mods Download

1-4KMainSuitsnew.tpf
2Kaio.tpf

🔴 Return to Titan

Lore-friendly skins for suits, weapons and interactables (lockers, supply boxes, node containers).

Nexus Mods Return to Titan Nexus Mods Texture Pack

1WEP_RTTn.tpf
3INTERACTABLES_RTTn.tpf    4INTERACTABLES_RTTn.tpf    5INTERACTABLES_RTTn.tpf
6INTERACTABLES_RTT.tpf     7INTERACTABLES_RTT.tpf     8INTERACTABLES_RTT.tpf
9INTERACTABLES_RTT.tpf

Any other Dead Space 2 .tpf pack should work too.

Create a folder named texmod inside the game folder and put all the .tpf files there:

Dead Space 2/
├── deadspace2.exe
├── dinput8.dll            ← ASI loader (MarkerPatch or Ultimate ASI Loader)
└── texmod/
    ├── 1-4KMainSuitsnew.tpf
    ├── 2Kaio.tpf
    └── ...

Step 4: Install DS2TexInject

Open a terminal and run:

git clone https://github.com/sidnei-almeida/dead-space-2-texmod-linux
cd dead-space-2-texmod-linux
./install.sh

The installer does everything for you:

  • finds the Dead Space 2 folder in your Steam libraries (if it can't, it asks you where it is),
  • offers to download MarkerPatch if there is no ASI loader yet,
  • compiles the plugin (the first time, it downloads a compiler; no sudo needed),
  • copies the plugin to Dead Space 2/plugins/,
  • unpacks and checks every texture in your .tpf packs.

You can also give it the game folder directly:

./install.sh "/path/to/Dead Space 2"

At the end you should see:

396 texturas unicas (665 MB) em .../texmod/_cache
Nenhuma textura quebrada encontrada.

The installer's messages are in Portuguese. The last line means "No broken textures found."

Manual install (no compiling)
  1. Download DS2TexInject.asi and DS2TexInject.ini:

    Download DS2TexInject

  2. Put DS2TexInject.asi in Dead Space 2/plugins/. Create the plugins folder if it doesn't exist.

  3. Put DS2TexInject.ini in Dead Space 2/.

  4. Unpack your textures:

    python3 ds2tex.py "/path/to/Dead Space 2/texmod"

Step 5: Play

Launch Dead Space 2 from Steam as usual.

  • Press F10 in-game to turn the new textures on and off, so you can see the difference.
  • To check that it is working, open Dead Space 2/DS2TexInject.log. Each MATCH line is a texture being replaced.

Textures are swapped as they appear on screen. Suits and weapons show up once you get them in the game.


Recommended extras (optional)

None of this is needed for the texture mod. These are extras I personally use and like.

ReShade, installed with LeShade

ReShade adds post-processing effects such as color grading and sharpening. On Linux, the easiest way to install it is LeShade, a ReShade manager with a graphical interface:

Download LeShade

  1. Install LeShade and open it.
  2. Add Dead Space 2 by pointing it to deadspace2.exe.
  3. Choose DirectX 9 and install. Also install the shader packages listed below.
  4. Use the Steam launch option for ReShade from Step 2.

In-game, the ReShade menu opens with Home. MarkerPatch also uses Home for its achievement list, so you can change ReShade's key in its settings if you want.

Sprawl Noir: my ReShade preset

Sprawl Noir is my personal preset for Dead Space 2, made to my taste:

  • Horror over action: a cold, sickly green-gray tone, like the Sprawl's stations.
  • Desaturated colors and deeper shadows, so the RIG's blue and the red warnings stand out in the dark.
  • Vignette and light film grain for a claustrophobic feel.
  • Soft bloom, light sharpening and SMAA anti-aliasing.
  • No ambient occlusion, so it is light on the GPU.

Preset Sprawl Noir

  1. Copy reshade/Sprawl Noir.ini into the game folder.
  2. In-game, press Home, open the preset list at the top and pick Sprawl Noir.

It uses these shaders. Install their packages in LeShade (or ReShade's installer) if any of them show up in red:

Shaders Package
LUT.fx, Colourfulness.fx, AmbientLight.fx Standard / legacy ReShade shaders
SMAA.fx, LiftGammaGain.fx, Sepia.fx, Curves.fx, Tonemap.fx, Levels.fx, LumaSharpen.fx, Vignette.fx, FilmGrain.fx SweetFX
Artificial Lighting MLUT.fx, Atmospheric Film Affinity Presets MLUT.fx MLUT

Everything is easy to adjust in the ReShade menu if something is too strong for your screen.


Adding or removing packs

  1. Add or delete .tpf files in Dead Space 2/texmod/.
  2. Run this again (it rebuilds texmod/_cache/ from scratch, so don't put your own files there):
    python3 ds2tex.py "/path/to/Dead Space 2/texmod"

When two packs change the same texture, the pack whose name comes first alphabetically wins. To choose the order yourself, create texmod/load_order.txt with one file name per line, most important first.

Settings: DS2TexInject.ini

The file is in the game folder. You can open it with any text editor.

Setting Default What it does
Enabled 1 0 turns texture replacement off.
ToggleKey 0x79 Key that turns the textures on and off. 0x79 is F10.
Pool managed Change to default (experimental) if the game crashes with many 4K packs. It uses less memory.
LoadBudget 4 Load limit: at most this many ms spent loading new textures per 10 ms of play. Prevents stutters when entering new areas: textures that don't fit show the original for a few frames and pop in right after. 0 loads everything immediately, like older versions.
LogHashes 0 1 logs every texture the game loads. Useful for debugging.
DumpTextures 0 1 saves the game's original textures to texmod/_dump/. Useful for making your own packs.
TextureDir texmod\_cache Where the unpacked textures are.

Troubleshooting

Problem Solution
No DS2TexInject.log file appears The plugin isn't loading. Check that dinput8.dll (your ASI loader) is in the game folder, that plugins/DS2TexInject.asi exists, and that the launch option from Step 2 is set.
The log has no MATCH lines Make sure you ran ds2tex.py and that texmod/_cache/ has files in it. Also play a bit: suits and weapons only appear later in the game.
The game crashes after playing a while Dead Space 2 is a 32-bit game and can run out of memory with many 4K textures. Set Pool=default in DS2TexInject.ini, or remove some packs.
The game stutters when entering new areas Make sure you're on v1.3.0 or newer (LoadBudget in DS2TexInject.ini) and that Pillow is installed, then run ds2tex.py again so every texture is game-ready. If it still stutters, lower LoadBudget to 2. Part of the first-visit stutter is DXVK compiling shaders; keep Steam's shader pre-caching on and it fades as you play.
Edges still look jagged far away Some of it is the 2011 engine (thin poles, cables, grates). Rendering at a higher resolution helps: in the gamescope launch option, use 1.5x or 2x your screen size in -w/-h (for example -w 5160 -h 2160 on a 3440x1440 screen) and set the same resolution in the game's video options.
A texture looks wrong Press F10 to confirm the pack causes it, then open an issue and say which pack it is.
Something else Open an issue (button below) and attach DS2TexInject.log.

Need help Open an issue


How it works

You don't need this section to use the mod.

Why TexMod doesn't work on Linux:

  • TexMod and uMod inject themselves using Windows tricks that Wine doesn't support.
  • They also need to replace d3d9.dll, a slot that ReShade and DXVK already use.
  • The game's .exe is also wrapped in EA's DRM.

What DS2TexInject does instead:

  1. The ASI loader (MarkerPatch or Ultimate ASI Loader) loads DS2TexInject.asi when the game starts.
  2. The plugin hooks Direct3DCreate9 inside whichever d3d9.dll the game uses (ReShade or DXVK). From there it hooks the Direct3D 9 device and texture methods.
  3. When the game uploads a texture, the plugin computes the same CRC32 hash TexMod uses (on the top mip level).
  4. If texmod/_cache/0x<hash>.dds (or .png / .bmp) exists, the plugin loads it and draws it instead of the original. Replacements are loaded only when needed and freed when the game stops using them.
  5. Many packs ship DDS files without mipmaps, which makes textures shimmer and look jagged from a distance. The plugin generates the missing mipmaps the first time it loads such a file and saves the fixed file back to texmod/_cache/.
  6. Loading is rate-limited (LoadBudget): a token bucket allows a few milliseconds of loading per 10 ms of wall time. Entering a new area used to load dozens of replacements inside a single frame (27 textures, 81 ms in one measured case); now they are spread over a few frames, and the original texture shows until its replacement is ready. Being time-based, it also works on loading screens, where the game may go a long time without finishing a frame.

What ds2tex.py does:

A .tpf file is a zip archive, XOR-encoded and protected with TexMod's fixed password. ds2tex.py decodes it, checks every texture (format, size, damaged files), and writes them to texmod/_cache/ named by hash.

With Pillow installed (sudo pacman -S python-pillow), it also makes every texture game-ready: PNG, BMP, TGA and JPG images become uncompressed DDS at the same quality, and every DDS gets a full mipmap chain. The game no longer has to decode images or build mipmaps on the fly, which caused stutters when entering new areas. Without Pillow, files are copied as they are.

Building yourself:

./build.sh      # creates dist/DS2TexInject.asi and dist/DS2TexInject-Setup.exe

It uses mingw-w64-gcc if installed. If not, it downloads llvm-mingw into ~/.local/opt. The plugin is src/ds2texinject.cpp; the Windows installer is src/ds2setup.cpp (a C++ port of ds2tex.py, using stb_image and stb_dxt, public domain).


Credits

Tested on: Arch Linux, GE-Proton 11, DXVK, ReShade 6.8, MarkerPatch.

License

MIT. The texture packs are not part of this project and belong to their authors.

About

Dead Space 2 TexMod for Linux: load .tpf texture packs (4K suits, HD textures) on Proton, DXVK, ReShade and Steam Deck. No TexMod or uMod needed.

Topics

Resources

Stars

2 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages