GWToolbox Bot 2705ceda7b Refuse late-attach if a device is already active
RegisterExistingDevice deduped against D3D9Hooks.cpp's own g_devices map,
but the cold Direct3DCreate9(Ex) path (D3D9Wrappers.cpp) never touches that
map. If gMod is early-injected and something (e.g. GWToolbox adopting a
pre-loaded gMod) also calls SetDevice on the resulting wrapper device,
RegisterExistingDevice would treat it as new: MinHook-patch the wrapper's
own vtable on top, and construct a second TextureClient, hitting its
single-instance ASSERT. Check TextureClient::CurrentClient() first so any
already-active device (via either path) is a no-op.
2026-07-07 10:55:30 +00:00
2024-11-11 23:35:43 +07:00
2024-11-11 23:35:43 +07:00
2026-06-08 17:14:56 +01:00
2023-11-10 17:40:30 +01:00
2024-09-28 12:15:04 +02:00
2026-06-29 21:41:48 +07:00
2026-05-01 14:35:46 +07:00
2023-11-17 21:58:04 +01:00
2024-11-11 23:35:43 +07:00
2024-11-11 23:35:43 +07:00
2023-11-10 17:40:30 +01:00

gMod

Continuation of the uMod project to improve performance and stability. Integrated with Guild Wars Launcher and Daybreak.

Usage is primarily intended with GW Launcher or Daybreak, but it can be used without.

Usage with manual gMod.dll injection:

  • Create a file called modlist.txt in either the Guild Wars (Gw.exe) folder, or the gMod.dll folder.
  • Inject gMod.dll before d3d9.dll is loaded.

Usage without dll injection:

  • Create a file called modlist.txt in the Guild Wars (Gw.exe) folder.
  • Place gMod.dll in the Guild Wars folder
  • Rename gMod.dll to d3d9.dll
  • Launch Guild Wars

Format of the modlist.txt file:

Each line in the modlist.txt is the full path to a mod you want to load (eg. D:\uMod\Borderless Cartography Made Easy 2015 1.3.tpf) gMod will load all these files on startup

Disclaimer about Reshade

Reshade in versions > 5.0.1 is known to cause glitches with TexMod, uMod and also gMod. If you would like to use Reshade in combination with gMod, we recommend running version 5.0.1 or 4.9.1.

Build from source

Requirements:

  • Visual Studio 2022
  • CMake 3.29+, integrated into the Developer Powershell for VS 2022
  • vcpkg, integrated into the Developer Powershell for VS 2022

Compile:

  • cmake --preset=vcpkg
  • cmake --open build
  • compile

TpfConvert Small utility to convert old .tpf files with invalid images into .zip files with working images. Usage:

  • Put TpfConvert.exe and d3dx9.dll in the folder where you have your old, broken texmods with invalid images.
  • Run TpfConvert.exe, all *.tpf and *.zip files are processed. The originals are saved into a newly created backup folder.
  • Done.
S
Description
Continuation of the uMod project to improve performance and stability. Mainly for GW Launcher and Daybreak.
Readme GPL-3.0 1.6 MiB
Languages
C++ 82.8%
PowerShell 10.6%
CMake 3.1%
C 2.1%
Shell 1.4%