dege-diosg / dgVoodoo2

Glide/DirectX implementation on D3D11/12
876 stars 37 forks source link

How about adding texture dumping and injection with Texmod, Resorep and Special-K compatibility? #54

Open v00d00m4n opened 3 years ago

v00d00m4n commented 3 years ago

Texmod is still used for many games as tool number 1 for texture mods in case tools to import textures natively are missing. Its old but it works despite how clunky launcher process is. There is a better alternative - basically open source remake of Texmod - Umod (aka Texmod 2), but its complicated and its hard to make it work.

Some people use Resorep instead, also complicated, requires J2ME for launcher. Others use Special-k, good one but mostly texture mods works for dx11+ (i personally combine it with dgv), There are few who use Gedosato, it has excelent frame dump and analyze feature and its special builds like dark souls fix and deadly premonition fix has good texture dumping and injection.

Non of it is perfect, and some of them causing crashes and slowdowns when combined with dgVoodoo, also they all have different methods to calculate hashes of textures and different folder and file structure, and we really need some universal tool to let all the texture mod made for them work under 1 hood, with simple texture pack hash and file sctructure compatibility switch in config.

Making everything from scratch is complicated so i suggest to use portion of code from UMOD (texmod compatible) 1st, then resorep and special-k, and get best things from all of them.

Also since dgv supports API, i think it would be even better idea to no direclty embed this into dgvoodoo code but make a separate plugin dlls for each of supported texture mods format, and again start with texmod as its most popular one that really needs a better option without launcher.

Please take a look at code https://github.com/culturespy/umod to get started.

dege-diosg commented 3 years ago

Yes, add-ons for core dgVoodoo as an idea for that purpose already came up, but unfortunately I'm not sure if I'll have free time to implement that. Maybe some day.