67 Commits

Author SHA1 Message Date
Jon 5044df11b8 1.9 v1.9.0.0 2026-06-08 14:09:55 +01:00
DubbleClick b34da98139 unsloppify comments 2026-06-08 17:44:00 +07:00
henderkes 17c7d5bdfc Replace D3D9 proxy wrappers with vtable hooks 2026-06-08 17:15:02 +07:00
Jon 63110be15a Merge branch 'master' of https://github.com/gwdevhub/gMod 2026-06-03 07:08:19 +01:00
DubbleClick ce23dab0cd comment for GetFiles return 2026-05-01 16:43:38 +07:00
DubbleClick dfb95484ea const and use size_t 2026-05-01 16:37:08 +07:00
DubbleClick 5be00dd712 make umod able to load and unload per dll export call 2026-05-01 16:31:40 +07:00
DubbleClick 23a2c38935 update to vs 2026 2026-05-01 14:35:46 +07:00
DubbleClick edd937f4c7 release 1.8.0.2 v1.8.0.2 2026-04-15 22:29:18 +07:00
DubbleClick e1900cd342 fix edge case in tpf unscrambling logic 2026-04-15 22:22:32 +07:00
Marc 313c7390ca Increment version tweak to 1.8.0.1 v1.8.0.1 2026-01-09 14:00:26 +01:00
Marc ab1a3a19e1 might have 0X instead of 0x (#36) 2026-01-09 13:53:52 +01:00
Marc 4fa1d8e2c5 1.8.0 (#35)
* change tpfconvert functionality to backup into backup folder

* use vcpkg for more packages

* update readme, bump to 1.7.0.2

* rework dll path

* https://github.com/gwdevhub/gMod/issues/33

* v1.7.0.3

* debug mode enabled

* fix... something... somehow??? @STL can you explain this???

* safety

* 1.8.0.0
v1.8.0.0
2026-01-09 00:43:28 +01:00
Marc b060e25ee2 v1.7.0.3 (#34)
* change tpfconvert functionality to backup into backup folder

* use vcpkg for more packages

* update readme, bump to 1.7.0.2

* rework dll path

* https://github.com/gwdevhub/gMod/issues/33

* v1.7.0.3
v1.7.0.3
2025-07-20 22:08:50 +07:00
DubbleClick 326b7086c9 1.7.0.2 (#32)
* change tpfconvert functionality to backup into backup folder

* use vcpkg for more packages

* update readme, bump to 1.7.0.2
v1.7.0.2
2024-11-11 23:35:43 +07:00
DubbleClick 485ecd1341 fix release build (#31) v1.7.0.1 2024-11-10 23:09:22 +07:00
DubbleClick 175002a9e4 1.7.0.1 (#30)
* read modlist.txt files immediately on launch, textures still loaded on d3d creation
2024-11-10 23:06:49 +07:00
DubbleClick 93032262c3 1.7.0
semicolon instead of comma
v1.7.0.0
2024-09-28 12:21:42 +02:00
DubbleClick fd9d1af477 support 64 bit hashes (#27)
* use image.OverrideFormat()

* 1.6.4

* import std

* uninitialised member variable

* debug statement for 64 bit hash testing

* nopetynope

* uint32_t

* support for 64 bit hashes, but rip compute time :/

* refactor weird comments and constructors

* 1.7.0.0 because of 64 bit hashes

* only check crc64 if at least one mod with crc64 is loaded

* do some dumb shit to deal with incorrect bmps somehow (needs work)

* remove image interpretation for bmps

* create TpfConvert.exe to convert tpf files easily

* attempt

* set up vcpkg and install d3dx though that

* missing env variable?

* Win32 architecture

* update ci to tag TpfConvert.exe and d3dx9.dll as well (required to run TpfConvert)

* documentation
2024-09-28 12:15:04 +02:00
Jon 866455567d Support for 64 bit hashes (truncate should work) 2024-09-25 11:22:05 +01:00
DubbleClick 26b4f4ce4a reshade disclaimer 2024-06-19 18:53:04 +02:00
DubbleClick 5b1bcf6638 Update README.md 2024-06-19 18:49:35 +02:00
DubbleClick 766e6439aa Update README.md 2024-06-19 18:49:00 +02:00
DubbleClick bca0786cff tweak version 1 (#25) v1.6.3.1 2024-01-24 10:02:55 +01:00
DubbleClick a1f32b5963 Remove d3d9 not loaded assertion (#24)
* Sack off d3d9 check

---------

Co-authored-by: Jon <jon.r+gh@live.com>
2024-01-24 09:22:03 +07:00
DubbleClick 21c20c80e5 fix unicode characters like Umlaute üäÜÖßéè v1.6.3.0 2023-12-20 16:50:49 +01:00
DubbleClick 1692a5526c 1.6.2 (#22)
* minimum 4 chars max 8 chars after 0x for hash in filename
v1.6.2.0
2023-12-10 19:38:36 +01:00
DubbleClick f9d69fc91e remove d3dx sdk from readme 2023-12-09 15:27:07 +01:00
DubbleClick 7dbbdc480e fix potentially wrong texture loading order (#20)
* add gsl library to track memory allocations

* rework creation to respect mod order
slight slowdown but just to be safe

* 1.6.1

* print info on timing

* specify largeaddressaware (shouldn't matter since gw is linked with it, but can't hurt)
v1.6.1.0
2023-12-05 16:11:44 +01:00
DubbleClick 9e593e83ee remove d3dx dependency, severely improve memory usage if necessary (#19)
* basic tga/hdr image loading

* bgr tga tex

* convert to dds during loading
doesn't work yet, fails to create textures from dds memory

* remove ext member from TextureFileStruct

* do not convert images, leads to weird loading problems...

* use regex matching for tpf loading

* convert non-RGBA images to RGBA

* remove d3dx (mostly)

* fix moving wrong image

* move TextureFunction to module

* move FileLoader to ModfileLoader module

* move TextureClient to module

* spaces

* ifdef debug

* 1.6.0

* compress images to dxt5 (bc3_unorm) to use less memory

* remove unnecessary directxtex source code patch

* don't move unnecessarily

* only compress if mods in filesystem use up more than 400mb

* use std::future to prepare to multithread image loading
fails when using std::launch::async though, maybe something in the directxtex library is not thread safe

* remove d3dx sdk from workflows

* remove extern "C"

* catch exception when saving texture

* make loading async (call CoInitializeEx)

* support DXGI_FORMAT_BC1_UNORM (DXT1) compressed textures without warning

* don't warn for BC2 BC4 or BC5 either

* update README.md
v1.6.0.0
2023-12-04 19:50:56 +01:00
DubbleClick b49428bafd bump version to 1.5.8 v1.5.8.0 2023-11-30 16:58:49 +01:00
DubbleClick ae2c93fc32 1.5.8 (#17)
* remove d3dx9.dll dependency (still requires dx legacy sdk for development, but not for end users)

* fix

* Fix to allow gMod to be loaded as "d3d9.dll"
Don't check for d3d9 functions when checking dll's, its not that deep.
Fix to allow gMod to load "d3d9.dll" using the default method rather than defaulting to system directory

* use d3dx sdk for wic texture loading until we figure out how to load volume/cube textures without it

* fix jons commit

* 1.5.7

* create warning message

* pass correct pointer type, shouldn't matter but lets see

* use Warning instead of Message for failed actions

* need to use d3dpool_managed...

* use specialised methods

* actually do something in the Direct3DCreate9Ex method?

* spaces

* test loading WIC textures with modified WICTextureLoader9.cpp

* include

* Hook into GetProcAddress instead of d3d9 dll

* extern "C" the Direct3DCreate9/Ex functions

* turn on debug messages

* add back in creating of our replacement textures, woopsies

* add messages back in, not loading yet, debug later

* remove SingleTexture stuff

* dont rely on d3dx anymore :)

* Tidied up assertion error box
Added logic to use gmod as d3d9.dll or gmod.dll
Added check to avoid recursive calls to create d3d9

* Remove unused func
2023-11-30 16:57:09 +01:00
DubbleClick a1cadde802 1.5.7 (#16)
allow loading reshade either before gmod dll, or loading reshade as d3d9.dll in the game folder
v1.5.7.0
2023-11-24 22:05:40 +01:00
DubbleClick 69b06d94a2 work with reshade (#15)
* use directxtex for dds textures

* use d3dx sdk for wic texture loading until we figure out how to load volume/cube textures without it

* update d3d9 loading
2023-11-24 01:56:16 +01:00
DubbleClick 514aefa371 Update README.txt (#14) 2023-11-23 10:46:18 +01:00
DubbleClick f07e180b53 1.5.6, severely improve memory footprint and loading speed (#13)
* remove more unnecessary code

* todo?

* 1.5.5.0

* change GetHash from in_out parameter to return the hash

* remove ForceReload bool for textures

* remove textureserver, place logic in textureclient, not yet finished
next up change FileToMod and shit to use modded_textures map

* fix debug compilation errors

* fix typo

* should_update boolean, replace the entire MergeUpdate logic later

* tidy up d3d9_dll.cpp and bits (#12)

* define `ASSERT`
Added minhook lib to tidy up hooks
Remove cruft from dx9_dll.cpp

* Bug fix

* Another typo

---------

Co-authored-by: Jon <>

* gitignore

* Proxy functions, cache dx9 device type

* simplify LoadModsFromFile

* move minhook dependency to fetch content

* Make it work

* Tweaked debug for file reads

* Fixed inverse check

* unordered_map

* set should_update (yikes)

* simplify libzippp.cmake

* remove unnecessary code

* rename project files (keep uMod_ prefix only for d3d9 classes)

* remove unused Nothing() function

* remove unnecessary fields

* remove some code duplication

refactor methods together

* refactor SwitchTextures and UnswitchTextures together

* move loaded_size into function

* enable libzippp encryption again

* copy data from opened zipentry and then delete the entry

* fix hash bug in volume textures

* const

* change uMod_TextureClient to TextureClient

* revert libzippp.cmake

* 1.5.6
v1.5.6.0
2023-11-22 21:50:11 +01:00
DubbleClick 13b7df3ae3 1.5.5 (#10)
* safety check for archives with incorrect comment lengths

* 1.5.5.0
v1.5.5.0
2023-11-18 15:55:25 +01:00
DubbleClick ab2d8cdb0a 1.5.4 (#7)
* toggle use_folders on

* Rename pipelines

* its a strcpy :(

* add miniz, add xorstream, add non-working ziploader

* start integrating libzip (WIP)

* use ExternalProject test (doesnt work maybe?!)

* further work in integrating libzippp [WIP]
can't build libzip yet (neither manually nor in the vs build), as it doesn't find zlib

* LibZip build script

* make libzip build too
todo: specify cmake find_library to check the paths we install to

* prepare everything in cmake

* fix rebuilding of libzip/zlib

* fix stupid double quotes

* libzippp works

* Setup libzippp archive loading

* Remove allocation of new data when adding file to TextureServer

* Enable CI on dev

* Create LICENSE (#5)

* add mbedtls

* fix cmake (forgot to substitute, woops)

* fix %lu warnings for printing addresses

* enable debug messages, some formatting

* remove mbedtls, fix libzip for /MD(d)

* some code changes

* fix cmake logic, str replace min cmake version in libzip-src/CMakeLists.txt to 3.15

* linker errors in release

* c++ify a little

* remove unnecessary duplicate c++23 definition

* Fixes to gMod_XorStream when calculating stream length

* Fix loading tpf contents with password

* Implemented complete parsing

* Cleanup file loading

* Change to NI

* Revert "Change to NI"

This reverts commit 19b511d907.

* update XorStreamReader to read whole file, then xor

* delete a lot of unused code

* loading logic

* rename console window

* 1.5.4

* remove pointless mutex

* wtf is this code

---------

Co-authored-by: Alex Macocian <amacocian@yahoo.com>
v1.5.4.0
2023-11-17 21:58:04 +01:00
DubbleClick a7e36fc965 rename to gmod, drop gui (#1)
* remove GUI parts as those will not be updated

* move to header/source

* add cmakelist to create solution

* Change Readme

* Implement modlist.txt loading

* Setup versioning and CD pipeline

* Setup DirectX in pipeline

* Make uMod load from uMod.dll directory

* Fix file loading

* Remove break

* Fix CD pipeline (#1)

* Test cd pipeline

* See what's in Lib directory

* See inside lib/x86

* Manually adjust the build environment

* Disable CD pipeline in PRs
Create CI pipeline

* Fix slashes in path

* Fix build call

* Attempt to fix paths

* Copy dx headers inside the /header folder

* Use ps

* Change cache location

* Path changes

* Improve CMake to look for lib and header files

* Fix missing Lib folder

* Move changes to CD pipeline

* Disable CI on merge and fix CD (#2)

* Fix CD tag (#4)

* Hijack existing DirectX calls (#5)

* Create a dll without listener (#6)

* Fix asset creation in CD pipeline (#7)

* Setup file loading

* create necessary files

* merge latest changes, set output dir

* Change main to master in pipelines
Add fallback for DX libs in CMakeLists

* Setup new generator

* formatting

* remove listener

* Change CD to pick the dll from bin
Change release name to gMod

* more formatting

* add editorconfig

* Setup versioning

* Remove CODEOWNERS

---------

Co-authored-by: Alex Macocian <amacocian@yahoo.com>
v1.5.3.0
2023-11-10 17:40:30 +01:00
code@koerner-de.net 929756bca3 BugFix: Memory Leak in the uMod_Sender::~uMod_Sender
Added
+ Acknowledgment for translations into French and Italian
2012-03-13 19:52:36 +00:00
code@koerner-de.net 20cf4fc5a1 uMod 2 branch 2012-03-13 19:02:45 +00:00
code@koerner-de.net e3e4d25b54 Switch status to release!
BugFix: If not rendering to the back buffer, now only the red text is not shown.
2011-11-30 14:08:25 +00:00
code@koerner-de.net 493d620250 BugFix: In single save texture mode, the string in the left upper corner is now only rendered on backbuffers. 2011-11-25 08:10:10 +00:00
code@koerner-de.net c0457fcb47 Improvements:
Buttons and the menu entries related to the templates are now disabled if no game is running.

Added a readme.txt with compilation notes.
2011-11-22 10:27:07 +00:00
code@koerner-de.net 45ad6efe04 BugFix: in makefile.gcc and makefile.vc 2011-11-20 11:56:10 +00:00
code@koerner-de.net 1dc6721598 changed name of project to "Universal Modding Engine" in short "uMod" 2011-11-20 11:48:50 +00:00
code@koerner-de.net 199383dacb Improvements:
- Added a new way of dll injection. The game is started through OTM, thus OTM inject the dll directly.
2011-11-18 10:28:13 +00:00
code@koerner-de.net fab93611c1 BugFix:
- OTM_TextureClient::MergeUpdate: force reload does now switch the correct texture (previously it lead to a crash)
- OTM_TextureClient::MergeUpdate: volume and cube textures are now loaded (if they were not loaded before)
- OTM_TextureServer: if textures were added more than once, they could not be deleted correctly
- OTM_Sender::SendTextures: if texture were loaded, but get unloaded due to a rearranging of the list, they are now marked correctly as unloaded

Improvements:
- OTM keeps in mind the actual window position
- added a MORE_TEXTURES flag for the pipe comunication: if more data is written to the pipe, than the size of the buffer, the Mainloop of the OTM_TextureServer will wait for the rest of the date before it prepare an update for the OTM_TextureClient.
- added the last missing texture formats of D3DFORMAT (except two formats)
2011-11-08 14:00:53 +00:00
code@koerner-de.net 7e1a8a72b4 Improvements:
- Support for Volume and Cube textures.
2011-11-07 19:39:35 +00:00
code@koerner-de.net 202c90d9db Set version from alpha to beta.
Improvements:
- DLL: The fake textures are sorted according their hash values (see previous commit) and now the MergeUpdate() function is improved in speed.
2011-10-22 10:37:23 +00:00