Modcraft - The community dedicated to quality WoW modding!
Wrath of the Lich King Modding => Miscellaneous => Tutorials => Topic started by: Mjollna on May 21, 2012, 12:00:53 am
-
Hi everyone !
Those who follow the chatbox have probably seen a few weeks ago some exe tweaking Schlumpf made, allowing (again) the Wow client to read files that are not packed into a MPQ, like Noggit does.
That really makes adt testing a lot easier/faster, so I strongly encourage everyone worldbuilding to go for it.
I'm detailing here how to reproduce it, so that there's no need to use MPQ anymore.
Again, say thanks to Schlumpf for finding it and sharing :)
How it works
In your (Windows) Wow.exe, look for the following pattern:
E8 ? ? ? ? 6A 00 E8 ? ? ? ? 6A 02
You can use 010 editor, edit > search, tick "use wildcards", set to "hex bytes" and paste pattern. You should have only one entry.
You can also use this tool by Schlumpf to replace the pattern instead of 010 editor : viewtopic.php?f=59&t=1829&p=11827#p11827 (http://modcraft.io/viewtopic.php?f=59&t=1829&p=11827#p11827" onclick="window.open(this.href);return false;)
Replace the beginning of the pattern with:
90 90 90 90 90 6A FF
Which gives for Windows Wow 3.3.5a 12340:
90 90 90 90 90 6A FF E8 2A EC 01 00 6A 02
The explanation for the curious ones
Search for string "World of Warcraft\Client". Will be referenced on four places. Once with "SendErrorLogs" right behind. That's a call to SRegLoadValue and SRegSaveValue. From there, go up. You will see two calls to StormSetOption, one with first argument being 10, the other one being 11.
Right in between, there will either be a call to two functions or an inlined function containing an if. On windows, it will most likely not be inlined.
If there is no branch, dive into the second function called. That one should contain a branch.
That branch is for checking the command line for a different data folder given. You're interested in the functions above. Those are SFile::DisableSFileCheckDisk(); and SFile::EnableDirectAccess(0);.
You want to remove the call to DisableSFileCheckDisk and change the argument for EnableDirectAccess to something having bits 1 and 2 set.
Some notes
Refreshing the map
Ok, there's probably a better method for that, but that's the quickest I've come up with.
If you want to quickly refresh your adts without quitting the client on your favorite private server, you can :
- Paste your newly edited files in your wow folder.
- Click this macro twice:
.go -17000 -17000 0 0
.go [your coords on your map]
That first teleports you in an empty continent area (ie : fast to load), and then re-teleports you on your map.
The map change makes the client reload the adts from file.
Other advice
If you have two installs (one for Noggit and one for Wow) you can have both programs opened at the same time and do some copy/pasting/refresh to see your changes ingame quickly.
Be sure to always make a copy of your adts in another safe place from time to time. You never know, some quick file overwriting can happen quickly.
TL;DR
- Download this wow.exe (http://fbe.am/6L0) (Windows 3.3.5a 12340)
- Save you original Wow.exe, paste the one you've downloaded in your Wow folder.
-
Really helpful. Thanks)
-
As posted in Replace binary patterns in files with given data (http://modcraft.io/viewtopic.php?f=59&t=1829):
Allow local files
- Windows (tested on 12340): "E8 ?? ?? ?? ?? 6A 00 E8 ?? ?? ?? ?? 6A 02" "90 90 90 90 90 6A FF"
- OSX (tested on 15464, 15689): "E8 ?? ?? ?? ?? C7 04 24 00 00 00 00 E8 ?? ?? ?? ?? C7 04 24 02 00 00 00" "90 90 90 90 90 C7 04 24 FF FF FF FF"
-
I like MPQs. Hold my WoW folders clean. Files are outside the client in the project folder and if i want to test, one click on the patchtester and wow starts. So I have no problems with MPQ packing. There are so much other things that are realy bad.
-
To be completely honest, I have only one 335a test install to run run both Noggit and the client.
So now this exe change is saving me a lot of copying / packing steps : when I want to see my files ingame, I just close Noggit, (very often copy my files in another place to keep intermediate saving steps), and open client, as simple as that.
That also saves a lot of path potential errors, since both programs work on the same files.
The only thing I really have to remember is to not open both programs at the same time.
-
Yes as long you have only one project and dont look or play on other server. Then you have to coyp around all the folders and files every time. What is more then just one MPQ and a realmlist.
And this is only my opinion. I think there are many people that will like this.
-
The goal is also to get rid of a lot of beginner questions related to mpq packing.
No mpq, no problem, no questions, less technical stuff to understand, more place for art.
-
This stuff works for m2 or wmo's, Mjollna?
-
This works for any files, your wow folder can looks like this :
(http://puu.sh/tdTv)
And all of the files in DBFilesClient, world, tileset (as my screenshot shows) will be read (adts, m2, wmo, dbc...), and you don't need to pack all your modifications in an MPQ.
-
You can also move the files into Data/ or set the data path via a command line variable to seperate them from mpqs.
-
That again is somehting that makes it usefull. So i could just create some shortcuts for every programm ans set the project path just as source. But on the other hand do i often use wow and noggit the same time. Thats why i have 2 clients on the HD. So i can search problems ingame and fix them direct in noggit.
-
Test it about 30 minutes. Everything works fine, it's a nobel progress in the history of development :D
-
Works great thank you.
I had a bit of a problem with it changing my "Interface/GlueXML" folder turning it into "Interface/GlueXML.old". However the "wow_unsig" worked on top of this and now it all runs fine. Thanks heaps. This will be great for fast testing.
-
my brain hearts can some one add me on skype and help me do this plz.
skype - xxcookiemonsterxx99
-
This thing works with cata alpha 11927 too.
-
This thing works with cata alpha 11927 too.
I developed it for MoP. It works for every version.
-
After (many) checks, it seems that it doesn't work correctly for M2.
They don't show up IG (that blue error cube shows instead).
I've tried with a handmade model, a blizzard model only renamed, a blizzard model renamed and hex edited to the correct path, name etc ..
None of them worked (tried many paths "World/Models/", "World/Generic/Tree/", "Creature/" I've even tried "Data/" and the WoW Root xD
But they're all loaded correctly in Noggit (but you expected that right ? :D)
They all started working as soon as I put them in a MPQ Archive =/
I first though it was maybe wow that loads correctly the model from locale files, but not the files the m2 requires (.blp, .anim, .skin) ?
But it doesn't seem to, as putting all required files in archive (but not the m2) doesn't work either.
So, anyone else having that issue or such ?
In that case, no way to bypass MPQ for models ?
And which files can be loaded locally ?
Thanks :)
-
After (many) checks, it seems that it doesn't work correctly for M2.
They don't show up IG (that blue error cube shows instead).
I've tried with a handmade model, a blizzard model only renamed, a blizzard model renamed and hex edited to the correct path, name etc ..
None of them worked (tried many paths "World/Models/", "World/Generic/Tree/", "Creature/" I've even tried "Data/" and the WoW Root xD
But they're all loaded correctly in Noggit (but you expected that right ? :D)
They all started working as soon as I put them in a MPQ Archive =/
I first though it was maybe wow that loads correctly the model from locale files, but not the files the m2 requires (.blp, .anim, .skin) ?
But it doesn't seem to, as putting all required files in archive (but not the m2) doesn't work either.
So, anyone else having that issue or such ?
In that case, no way to bypass MPQ for models ?
And which files can be loaded locally ?
Thanks :)
While I am not aware of any issues like that or limitations in file types, it may come from a different problem: the file is not in any mpq, thus no local file is used. May you try swapping an existing model?
-
After some further testing it seems that only M2 did not got loaded.
Tried to swap an existing model : the only thing it does was replacing the texture.
The model stay the same as in MPQ. (I tried the Akama model)
Removing only the .blp from MPQ result in missing green texture.
Weird thing is that putting different .blp from MPQ in locale files doesn't override the one in the MPQ.
Probably because WoW reads local files after the last expected patch-#.MPQ and the ones we supply is not expected, so gets loaded afterwards.
Removing only the .skin files of the swapped model from the MPQ but not from locale files make the game crash :
http://pastebin.com/yx4pwN22 (http://pastebin.com/yx4pwN22" onclick="window.open(this.href);return false;)
Finally leaving only the .skin file results in a graphical glitch :
(http://s284950972.onlinehome.fr/upload/graph.jpg)
Weird thing again the locale .blp texture is loaded correctly this time :o
Hope this will help out ;)
-
I have no idea, why you would try deleting files from the MPQs.
I will look at this later today.
-
I meant that I deleted the files from the MPQ that I needed to add for the models to show IG, not from the base ones ;)
Just see that as not adding custom files to an MPQ :D
Anyway, thanks for help ;)
-
Okay ... don't mind all that stuff I said, found it -_-'
That was because I added models with / in the path via Noggit.
Noggit undertsand them and display the models correctly (and save their path as such in the ADT)
But WoW doesn't understand them, at least when loading files locally, weird enough.
Anyway, this has been fixed, but maybe we may ask noggit to replace all / by before saving them into the ADT ?
-
TY it worked fine i have 27 giga files now in one folder thx Mjollna
-
It seem that DBFilesClient doesn't load for me. Everything else works.
-
I tried to put my files in a folder and named it patch-(a number).mpq and it worked but I have a problem when I luanch wow.exe it takes like 7 to 10 min for only luanching wow and there more lag ingame too so how do I fixed that
-
This doesn't seem to work properly in 5.4.x. It works on 4.3.4, 5.0 and 5.1. I haven't tested 5.2 or 5.3.
The patch applies fine, however it doesn't load anything at all. Nothing.
The only thing i found possible to load in 5.4 from the data folder is GlueXML edits. Whenever i replace a dbc file, update a m2 model or add new adt's, it doesn't load them at all. I have tried doing the edits multiple times, same result.
Does anyone have an idea why this is happening?
EDIT: Okay i think something has changed. In earlier versions, the pattern is at 1410h or something while in 5.4 it finds the pattern at D:1E9Dh. The pattern has most likely changed in 5.4.x.
EDIT EDIT: Managed to fix it:
To make this patch work on 5.3 or higher, you have to do this:
Find 7BFAh, and write 90 90 90 90 90