World of Warcraft: WotLK – AI Upscaled textures (2021)


*** Introduction ***
HD patches for WoW 3.3.5a are very popular online, which include models from modern add-ons (such as Warlords of Draenor, Legion and Battle for Azeroth).
I don’t really like the style of the new models that Blizzard switched to, so I started looking for ways to improve the quality of classic graphics and as a result made (and also found) several patches that I would like to share.

*** Brief description of patches ***

*** Installation ***
It is recommended to use a clean 3.3.5a client, without any patches. Throw the downloaded MPQ archives into the game folder > Data.
The letters at the end of the patch (A, B, C, etc.) can be changed to any other letters of the English alphabet, if you already have any other patches installed in your client and you do not want to replace them.


46 Downloads

*** More detailed description of some patches ***
*** patch-C, D, E – Neural network-enhanced NPC textures ***
I spent a lot of time creating this patch, but it seems to me that the result was worth it. To do this, I used Waifu2x-CPP GUI By Maz-1, increased up to 1024p with the noise level 3. A little below the picture with examples, how it was and how it became:

*** patch-F – built-in name generator ***
“Trying on” some English-language patches on the game, I found that when they were installed, the very name generator appears when creating a character, which by default is present only in the American (US) version of the game. My further research led me to the Data > ruRU > locale-ruRU.MPQ > Interface > GlueXML > CharacterCreate.lua. If we open the English version of this file with Notepad, we will find the following code, which is absent in the Russian version of the file:

SetCharacterCreateFacing(-15);

if ( ALLOW_RANDOM_NAME_BUTTON ) then
CharacterCreateRandomName:Show();
end

Just take from this code snippet the line “CharacterCreateRandomName:Show();” (ignoring the “if” condition) and paste it into a Russian-language file.
It turns out like this:

SetCharacterCreateFacing(-15);

CharacterCreateRandomName:Show();

As a result of these actions, we get a working name generator right in the game, as in the picture below, the “Random selection” button! (by the way, you can pay attention to the clarity of the textures of the clothes of the character, this is the result of the patch “patch-B”)

Thank you for attention! Prepared material for you, and also made patches C, D, E, F (HD textures NPC + patch for the name generator) – Petunindan.

Feel free to use my works in your projects, but I will be extremely grateful if you mention me somewhere in your ReadMe. As for the works of other authors, then, I hope that they are not against the fact that I “attached” their work to this post, at least all authors and links to the originals I always indicate.

*** Notes on editing textures ***
It took me the most time to research how to get textures out of the game, and then, after improving them, stuff them back into the game and make it work. Therefore, I decided to publish also my draft with the recordings and tools that I used (file WoWTexturesTools.7z), suddenly someone will help in his research:

Waifu2x-CPP GUI By Maz-1
Upscale to 1024p
Noise level 3.

Textures are extracted from the archives in the Data folder, from each one in turn, replacing older files with new ones (for example, first common.MPQ is extracted, then common-2.MPQ, replacing obsolete files, and so on). If you decide to extract NPC textures (BakedNPCTextures), then pay attention to the file sizes, as in subsequent archives you will come across empty files of 0 kilobytes, which, when extracted, can replace the working textures.

BLPConverter6.exe from PNG to BLP. BLP output should be approximately 694 kilobytes. If you get more (more than 1 mb), the game will crash with an error.
In this case, let’s run them through IrfanView PNG > PNG with compression level 9.

To convert all * PNGs in the converter folder, I use the cmd script:

for %%i in (*.png) do BLPConverter6.exe “%%i”
pause

If the texture still exceeds 1MB, there is nothing to do but reduce it to 512p.

Also, when upscaling, textures with alpha channels may not be saved correctly.
For example, TILESET > Elwyn > ElwynnFlowerBase_s

In this case, install imagemagic, create folders A, B, C and a batch file in it:

for /r %%i in (.\A*) do magick.exe convert -quiet A\%%~nxi ( B\%%~nxi -channel a -separate +channel ) -alpha off -compose copy_opacity -composite C\%%~nxi
pause

We throw good pictures in A, bad ones but with an alpha channel we throw in B, at the output we get C. Good and bad ones must have the same name for the script to work.

Originals are missing for some images with alpha channel. To create the original, open the image with alpha in Gimp and resave it with a 8 RGB pixel format, then the alpha channel is removed and we get a clean image without transparency.

For some images, the transparency turns green on the output. To do this, we run the sources through waifu2x – Snowshell v2.3 with the Noise Reduxtion> None and Scale> x1.0 parameters and work with the resulting images.

Also, some pictures will have to be returned to 8bit, otherwise the game will display green instead. To convert them to 8 bits and not lose transparency, I use ImageMagic again. I put pictures in folder A, in folder C I get the result:

for /r %%i in (.\A*) do magick.exe convert -quiet A\%%~nxi -colors 256 -depth 8 C\%%~nxi
pause


Leave a Reply

Your email address will not be published. Required fields are marked *