Skip to content

Jonathan-Greve/GuildWarsMapBrowser

Repository files navigation

Guild Wars Map Browser

Browse the Guild Wars .dat file. Included features:

  • Search and filter the internal files in the dat.
  • Render all maps (including maps not accesible in-game).
  • Fly around and explore the maps in first person.
  • Export and import full maps and models to Blender.
  • View and export different model/mesh LODs (level of detail): High, Medium Low.
  • Compare and switch between multiple .dat files easily.
  • Give each file inside the .dat a custom name for easy reference. Or load the data provided by other users (shared through csv files).
  • Hex editor viewer of files.
  • Playback of audio files.
  • Extract 3D models, textures, rendered maps and more.
  • And more.

How to use

  • Download GuildWarsMapBrowser.exe from releases and run it.
  • To import into Blender see the guide in the release notes or check this reddit post

Preview

Here is an preview of Monastery Overlook as seen rendered in GuildWarsMapBrowser: Monastery Overlook and pre-Searing Ascalon City: Ascalon City And here is an example of rendering some models: A Golem Lich

And imported Pre-searing Ascalon City in Blender: Blender Ascalon City Blender Ascalon City Solid

Golem imported in Blender: Blender Golem

Viewing textures in Guild Wars Map Browser: Blender Golem

Audio playback and controls: Blender Golem

Export all maps to png or dds in any resolution (up to 16384x16384): image

Select props and get info about them, hide/show them or cleanup maps to your preference before extracting to dds or png: image Lakeside_extract_before_after_cleanup

Building

To build just clone the repository and open the .Sln in Visual Studio. Build in x86 mode (release or debug). Cannot build 64-bit.

Contributing

See CONTRIBUTING.MD

Credits:

Decompressing the .dat file uses the source code from:

  • GWDatBrowser
    • Specifically I use: AtexAsm.h/cpp, AtexReader.h/cpp, GWUnpacker.h/cpp, xentax.h/cpp
  • The Guild Wars community for being supportive, reporting bugs and showing interest in the project.