WDB: Difference between revisions

From wowdev
Jump to navigation Jump to search
(New page: = WDB files = The WDB files are found inside the WDB folder. The client caches data it receives from the server. This is mainly done to reduce network traffic. == Header == WDB file...)
 
 
(28 intermediate revisions by 6 users not shown)
Line 1: Line 1:
= WDB files =
The WDB files are found inside the WDB folder. The client caches data it receives from the server. This is mainly done to reduce network traffic.
The WDB files are found inside the WDB folder. The client caches data it receives from the server. This is mainly done to reduce network traffic.


 
Not all WDB caches are saved to disk. This is defined in the client by the <tt>DBCache</tt>'s constructor which contains a persistent parameter.
 


== Header ==
== Header ==


*WDB files < 1.6: Header length is 16 bytes
*WDB files >=1.6: Header length is 20 bytes (Verified till 1.9.4)
*WDB files >=3.0.8-9506: Header length is 24 bytes


WDB files < 1.6: Header length is 16 bytes
  '''Offset Type Description'''
 
  0x00 char[4] Identifier - depends on the WDB file, will be explained later (reversed!)
WDB files >=1.6: Header length is 20 bytes (Verified till 1.9.4)
  0x04 uint32 Client Version - Version of the client (lo -> hi encoding)
  '''Offset Type Description'''
  0x08 char[4] Client Locale - The Locale of the client (reversed!) {{Template:Sandbox/VersionRange|min_expansionlevel=1|min_build=1.6.0}}
  0x00 char[4] Identifier, depends on the WDB file, will be explained later
0x0C uint32 Record Size - Size of the internal structure not of the file contents
  0x04 uint32 Client Version - Version of the client (lo -> hi encoding)
0x10 uint32 Record Version - A manually updated versioning field - except for WoWCache.wdb which is read from <code>WardenCachedModule::Version</code>
  0x08 char[4] Client Local - The Locale of the client
  0x14 uint32 Cache Version - A packet based versioning field set via SMSG_CLIENTCACHE_VERSION {{Template:Sandbox/VersionRange|min_expansionlevel=3|min_build=3.0.8}}
0x0C ???? 4 bytes unknown
0x10 ???? 4 bytes unknown
0x15 ???? 4 bytes unknown (Beginning with version 1.6 and later)
 
 
== Known WDB files ==
 
 
Depending on the client/server version, the WDB folder contains the following files:
 
    * creaturecache.wdb
    * gameobjectcache.wdb
    * itemcache.wdb
    * itemnamecache.wdb
    * itemtextcaxhe.wdb
    * npccache.wdb
    * pagetextcache.wdb
    * questcache.wdb
    * wowcache.wdb (Since 1.8.x)
 
 
Header explained
 
 
== Identifier ==
 
 
Every WDB file contains a unique identifier (first 4 bytes):
 
* "BOGW" (42 4F 47 57) - gameobjectcache.wdb
* "BOMW" (42 4F 4D 57) - creaturecache.wdb
* "BDIW" (42 44 49 57) - itemcache.wdb
* "BDNW" (42 44 4E 57) - itemnamecache.wdb
* "XTIW" (58 54 49 57) - itemtextcaxhe.wdb
* "CPNW" (43 50 4E 57) - npccache.wdb
* "XTPW" (58 54 50 57) - pagetextcache.wdb
* "TSQW" (54 53 51 57) - questcache.wdb
* "NDRW" (4E 44 52 57) - wowcache.wdb
 
 
 
== Version number ==
 
 
Next four bytes identify the version of the WoW client: (To verify your wow.exe do a right mouse click and select "Properties")
'''Official version build number hex string (format inside WDB: low -> high)'''
1.2.3 4211 1073
  1.2.4 4222 107E
1.3.0 4284 10BC
1.3.1 4297 10C9
1.4.0 4341 10F5
1.4.1 ????
1.4.2 4375 1117
1.4.3 4413 113D
1.5.0 ????
1.5.1 4449 1161
1.6.0 4500 1194
1.6.1 4544 11C0
1.7.0 4671 123F
1.7.1 4695 1257
1.8.0 4735 127F
1.8.1 4769 12A1
1.8.2 4784 12B0
1.8.3 4807 12C7
1.8.4 4878 130E
1.9.0 4937 1349
1.9.1 ????
1.9.2 4996 1384
1.9.3 5059 13C3
1.9.4 5086 13DE
1.10.0 5195 144B
1.10.1 5230 146E
1.10.2 5302 14B6
 
 
== Client Locale ==


== WDB files ==


Next four bytes identify the Locale of the WoW client:
'''File Signature'''
[[ArenaTeamCache.wdb]]        WATM      {{Template:Sandbox/VersionRange|min_expansionlevel=3|max_expansionlevel=4}}
[[BattlePetNameCache.wdb]]    WBPN      {{Template:Unverified|{{Template:Sandbox/VersionRange|min_expansionlevel=5|max_expansionlevel=6}} Not seen > 6.2.4}}
[[CreatureCache.wdb]]          WMOB
[[DanceCache.wdb]]            WDAN      {{Template:Sandbox/VersionRange|min_expansionlevel=3|max_expansionlevel=4}}
[[GameObjectCache.wdb]]        WGOB
[[GuildStatsCache.wdb]]        WGLD
[[ItemCache.wdb]]              WIDB      {{Template:Sandbox/VersionRange|max_expansionlevel=3}}
[[ItemNameCache.wdb]]          WNDB      {{Template:Sandbox/VersionRange|max_expansionlevel=3}}
[[ItemTextCache.wdb]]          WITX
[[NameCache.wdb]]              WNAM
[[NPCCache.wdb]]              WNPC
[[PageTextCache.wdb]]          WPTX
[[PetitionCache.wdb]]          WPTN
[[PetNameCache.wdb]]          WPNM
[[QuestCache.wdb]]            WQST
[[RealmCache.wdb]]            WRLM      {{Template:Unverified|{{Template:Sandbox/VersionRange|min_expansionlevel=5|max_expansionlevel=6|max_build=6.0.1.18179}} Not seen ≥ 6.2.3}}
[[WOWCache.wdb]]              WRDN
[[Category:Format]]

Latest revision as of 14:42, 23 November 2020

The WDB files are found inside the WDB folder. The client caches data it receives from the server. This is mainly done to reduce network traffic.

Not all WDB caches are saved to disk. This is defined in the client by the DBCache's constructor which contains a persistent parameter.

Header

  • WDB files < 1.6: Header length is 16 bytes
  • WDB files >=1.6: Header length is 20 bytes (Verified till 1.9.4)
  • WDB files >=3.0.8-9506: Header length is 24 bytes
Offset 	Type 		Description
0x00 	char[4] 	Identifier - depends on the WDB file, will be explained later (reversed!)
0x04 	uint32 		Client Version - Version of the client (lo -> hi encoding)
0x08 	char[4] 	Client Locale - The Locale of the client (reversed!) ≥ Vanilla (1.6.0)
0x0C 	uint32 		Record Size - Size of the internal structure not of the file contents
0x10 	uint32 		Record Version - A manually updated versioning field - except for WoWCache.wdb which is read from WardenCachedModule::Version
0x14 	uint32 		Cache Version - A packet based versioning field set via SMSG_CLIENTCACHE_VERSION ≥ Wrath (3.0.8)

WDB files

File 			Signature 
ArenaTeamCache.wdb         WATM       Wrath … Cata
BattlePetNameCache.wdb     WBPN       Mists … WoD Not seen > 6.2.4
CreatureCache.wdb          WMOB 
DanceCache.wdb             WDAN       Wrath … Cata
GameObjectCache.wdb        WGOB 
GuildStatsCache.wdb        WGLD
ItemCache.wdb              WIDB       ≤ Wrath
ItemNameCache.wdb          WNDB       ≤ Wrath
ItemTextCache.wdb          WITX 
NameCache.wdb              WNAM
NPCCache.wdb               WNPC 
PageTextCache.wdb          WPTX 
PetitionCache.wdb          WPTN
PetNameCache.wdb           WPNM
QuestCache.wdb             WQST 
RealmCache.wdb             WRLM       Mists … WoD (6.0.1.18179) Not seen ≥ 6.2.3
WOWCache.wdb               WRDN