Hello,
Since there is some people starting to work on WoD, I've decided to help a little bit by posting my little opcode tool for version 6.0.1 (build 18179). To the best of my (and google's) knowledge, no public opcode tool exists for build 18179.
You can find it here
EDIT/UPDATE : Apparently the file-beam link doesn't work sometime, so you can also download at : this link
This tool is for Wow 6.0.1 (build 18179 x86 32bits). This has been produced/tested only with the "WowB.exe" binary, found in the WoD Beta build 18179. I believe this works, but I have only briefly tested it, so it may have bugs, so do not trust results blindly if they appears to be wrong.
You will need Python to use this tool.
There is two modes : normal mode (find handler, given the opcode number), and reverse mode (find possible opcodes numbers, given the handler). When using reverse mode, more than one opcode may match a given handler. It is because the mapping from opcode numbers to handlers is not a one-way function, some information is lost in the process.
usage (normal moder): python opcode18179.py <SMSG opcode number in hex, without the "0x" prefix>
usage (reverse mode): python opcode18179.py <handler name (e.g. sub_DEADBEEF)>
There is now 6 JAM Groups (compared to 5 under 5.4.7), and the old "normal /
legacy / non-JAM" group apparently disappeared.
I believe that the groups are defined as follows (wild guesses after briefly studying statically the file WowB.exe, so I may be wrong):
- Opcode group 1 is "Generic", dispatched in sub_6088FC()
- Opcode group 2 is the new group introduced by WoD, probably containing
some (all?) of the old "legacy" opcodes, dispatched in sub_E3DDEE()
- Opcode group 3 is "Guild", dispatched in sub_64302F()
- Opcode group 4 is "Movement", dispatched in sub_E3D08D()
- Opcode group 5 is "Quests", dispatched in sub_643C7F()
- Opcode group 6 is "Spells", dispatched in sub_E1EDDA()
Sorry for the uglyness of the code, most of it is generated automatically.
Sorry2, there is only command-line version, I suck at making GUIs.
This tool only detect opcodes handled by NetClient::ProcessMessage (address 0x79562B), so I
may miss some things. Feel free to suggest any improvement/correction/etc.
Well it's not much, but I hope it helps.