Diablo II Resurrected map revealing tool.

Overview

D2RMH

Diablo II Resurrected map revealing tool.

What's New

v0.2

  • add display for Unique Chest, Well, neighbour map path
  • fix display of correct taltomb entrance
  • shorter line pointed to target, similar to legacy d2hackmap
  • peformance tweaks to d2mapapi

v0.1

  • first release, with complete map revealing and quest/npc guides

Prerequisite

  • Diablo II v1.13c is required. You can get a minimal subset of v1.13c files HERE

Usage

  1. Edit D2RMH.ini, set d2_path to path of your Diablo II v1.13c folder, or just put extracted D2RMH.exe/D2RMH.ini/D2RMH_data.ini to D2 v1.13c folder.
  2. Run D2RMH.exe, enjoy!

How to build

  • Just use cmake to build, Visual Studio 2019 and MinGW GCC 32bit 9.0+(better using MSYS2) are supported
  • For Visual Studio 2019: add -A Win32 to cmake commandline to ensure builds a 32-bit exe

Credits

Comments
  • Feature Request - Auto Alt-F4

    Feature Request - Auto Alt-F4

    Not sure if possible, but would be very useful for HC players. Could be a variable setting that can be turned off or on, and allows alt-f4 command to be sent on PCs to auto close the active window if health drops below an adjustable pre-set percentage (i.e. if health < 98% of max, send alt-f4 command).

    enhancement 
    opened by justaplane 7
  • [FEATURE] Can I adjust the item drop filter position?

    [FEATURE] Can I adjust the item drop filter position?

    In the current version, if I use it as Right + Map Center, it is displayed too large in Arcane Sanctuary. So I modified the size on the source, but doing so cuts the drop item filter. Is it possible to place the drop filter below the map?

    maprenderer.cpp

        case 3:
            renderer_.owner()->move(d2rRect.left + 1280, d2rRect.top + 38, 640, 400 - 38);
            w = (float)640;
            h = (float)400-38;
            break;
    

    D2RMH.ini

    position = 3
    scale=2.22
    msg_position = 0.95,0.7,2
    

    And do you have any plans to hide the map when switch to the inventory, skill tree, or another window?

    edit: hide map when switch other windows maprenderer.cpp (line 76)

        d2rProcess_.updateData();
        if (!d2rProcess_.available()) {
            enabled_ = false;
            return;
        }
        if (d2rProcess_.hwnd() != GetForegroundWindow()) {
            enabled_ = false;
            return;
        }
        switch (cfg->show) {
    
    enhancement 
    opened by arithxp 7
  • D2 1.13c Install Location - Auto Find

    D2 1.13c Install Location - Auto Find

    Hello, I have a possible suggestion regarding the Diablo II installation files.

    Perhaps the program could check, given the default setting for the d2_path being ".", if this is the default value, to evaluate the local folder, otherwise if it does not detect the files, it could query the registry location for the installation and attempt to use that path?

    Check out the following registry location: HKCU\SOFTWARE\Blizzard Entertainment\Diablo II Located here is an "InstallPath", which contains the path to the most recent installation of Diablo II.

    enhancement 
    opened by derekShaheen 5
  • Feature request: Show lobby name in text area

    Feature request: Show lobby name in text area

    Would like to request the ability to show the lobby name in the custom text area. I often forget what baal run # I'm on, and need to tab the normal map to check it. Small but appreciated convenience.

    enhancement 
    opened by derekShaheen 4
  • ISBoxer/Innerspace Support

    ISBoxer/Innerspace Support

    Hello, I was wondering if you would be open to adding support for games launched through ISBoxer/Innerspace? It is one of the easiest ways to launch multiple D2R instances and contains many window management advantages over the alternative multi launchers.

    Thank you for what you do, this is an amazing tool!

    • Jon
    wontfix 
    opened by Jon310 4
  • misfunction of D2RMH with Multilauncher tool (D2RML by github sunblood)

    misfunction of D2RMH with Multilauncher tool (D2RML by github sunblood)

    Like your MH, big thanks.

    I have two BN acc and play 2pp, today i tried MH with Multilauncher tool, seems not working.

    what i did is open Multilauncher first , start D2R gaming window of both BN accounts (note: Multilauncher memorise token of BN accounts for hrs, so it skipped BN game platform logging with period), MH doesn't pop up while loading map of any window. normally MH pop up on first window but it doesn't.

    Anyway, MH works without Multilauncher.

    Thanks

    opened by AjaxAlfa 4
  • Players on map range

    Players on map range

    I've noticed that you have to be fairly close to other players for them to show up on the minimap. Is there any way to mimic how the native minimap works in the sense that you can see other players far away?

    enhancement help wanted 
    opened by cakarlen 4
  • When editing an enchantment word, the letters are broken.

    When editing an enchantment word, the letters are broken.

    I set only the mob's immun and changed it to a nice looking word, but the letters are broken or only the first two letters are displayed.

    image English: Display only two letters

    image

    non English: Characters are broken

    opened by arithxp 4
  • Suggestion: Option to toggle on all monsters on map.

    Suggestion: Option to toggle on all monsters on map.

    This would be particularly useful for Cows. Even if you just add a config line we can edit, would be great. I notice that Elites already show as red dots.

    opened by Jarboy87 4
  • Latest always crashes in Act5

    Latest always crashes in Act5

    The release .04 sometimes crashed in act 2, but the latest files compiled crash >90% of the time when entering act 5. Sorry I couldn't figure it out

    opened by CrazyPotatoes 4
  • Show immunities/enchantments/names for normal mobs

    Show immunities/enchantments/names for normal mobs

    Currently with all options enabled, immunities/enchantments/name labels are only shown for uniques/champions. I'd like to be able to see at least immunities for all mobs including normal.

    enhancement 
    opened by Sunblood 3
Releases(v0.10.2)
  • v0.10.2(May 10, 2022)

  • v0.10.1(May 10, 2022)

  • v0.10.0(May 10, 2022)

    v0.10.0

    • (#102,#105,#106) update codes to support v1.2.69324
    • (#84) add game room name/password, server region and season patterns to text_panel_pattern
    • (#97) don't draw other players not in same ACT
    • change full_line to line_style in D2RMH.ini, and you can set it to 2 for displaying walkable path to target through new path finding functions, please not this would increase CPU usage.
    • refactoring TTF rendering to fix glitches on text display
    • add object_size_minimal to D2RMH.ini for minimal size of object quads
    • add draw_on_game_bar to D2RMH.ini
    • load all data from D2R Casc Storage directly now, so gendata is removed
    • add support to read D2/D2R's TBL/DC6 font, as well as refactoring TTF rendering to suite fonts with fixed pixel size
      • add support to load fonts from D2R Casc Storage, and is the default option now
    • read language of D2R from registry if language is left empty in D2RMH.ini
    • add keyboard/mouse input and delay functions to plugin system
    • hide overlay window while game is not running
    • (d2mapapi_mod) add support for D2Legacy client v1.11a
    • (d2mapapi_mod) add simple BFS path finding
    Source code(tar.gz)
    Source code(zip)
    D2RMH-v0.10.0.zip(1.33 MB)
  • v0.9.3(Dec 14, 2021)

    • d2mapapi_mod: add support for Diablo II Legacy 1.11b, 1.12 and 1.13d, now there are 4 versions supported: 1.11b, 1.12, 1.13c and 1.13d
    • (#44) show players on map even out of sight
    • set default FPS value to 25, to reduce extra GPU consumption
    • (#86) fix edge detection when walkable_color is 0,0,0,0
    • plugin system:
      • (#85) possible crash on reloading config or quitting later
      • do not throw exception on lua script initialization, show a message box with error description instead
      • (#88) town_portal_check: should not check portal during loading screen
    Source code(tar.gz)
    Source code(zip)
    D2RMH_v0.9.3.zip(1.33 MB)
    D2RMH_v0.9.3_CN.zip(1.33 MB)
  • v0.9.2(Dec 8, 2021)

  • v0.9.1(Dec 7, 2021)

    • finished basic lua plugin support, with plugins: chicken_life and town_portal_check
    • add skill selection popup(0x100) to panel masks
    • fix the bug that fps not working while set to positive value
    • fix wrong size fetched on fullscreen mode for multiple monitors
    • fix nearby map exits detection

    v0.9.0 prerelease changes:

    • new transparency mechanism, now you can set each color with alpha channel, and are stack with global alpha setting
    • separate d2mapapi out as a standalone project, and re-add by git-subrepo, with lots of tweaks
    • D2RMH main program can be built in 64bit now, while using d2mapapi_piped as a child process for querying map data
    Source code(tar.gz)
    Source code(zip)
    D2RMH_v0.9.1.zip(1.19 MB)
    D2RMH_v0.9.1_CN.zip(1.19 MB)
  • v0.9.0(Dec 4, 2021)

    • new transparency mechanism, now you can set each color with alpha channel, and are stack with global alpha setting
    • separate d2mapapi out as a standalone project, and re-add by git-subrepo, with lots of tweaks
    • D2RMH main program can be built in 64bit now, while using d2mapapi_piped as a child process for querying map data
    Source code(tar.gz)
    Source code(zip)
    D2RMH_v0.9_prerelease.zip(1.02 MB)
  • v0.8.1(Nov 28, 2021)

  • v0.8(Nov 28, 2021)

    • (#38) multi-instance support
    • (#66) fix issue that map layer not shown for non-expansion characters
    • (#68) fix issue that other players not shown
    • search for memory offsets in order to get expansion flag address, offsets from MapAssist
    • fix panel_mask entry in config is not correctly processed
    • add waypoint panel to panel_mask
    • show neighbour maps, with neighbour_map_bounds entry added to D2RMH.ini
    • dynamic loading functions from ntdll.dll and build release binaries with mingw32 now, to minify risks of virus detection
    Source code(tar.gz)
    Source code(zip)
    D2RMH_v0.8.zip(662.99 KB)
    D2RMH_v0.8_CN.zip(663.49 KB)
    gendata_v0.8.zip(537.33 KB)
  • v0.7(Nov 23, 2021)

    • (#47, #59, #63) add adaptive size for map_area, and is set as default value, kinda resolves confusion caused by new mechanism of map_area
    • (#50) add text panel support, with new entries text_panel_pattern and text_panel_position in D2RMH.ini
    • (#58) fix bug that monster immunities is not shown when disable show_monster_enchants
    • (#60) add simple function that play sound on item dropping
    • (#61) items sold to merchants are not detected now
    • (#62) neutral NPCs in town, mercenaries and summons are shown as NPC now
    • show real names of mercenaries now
    • much simpler and faster way to detect real TalTomb, and show TalTomb with Super Unique monster(Ancient Kaa the Soulless) now
    • set D2R process finding interval to 5 seconds, and remove WinMM from dependencies
    • restore tray icon on Windows Explorer restart
    • add Reload Config to tray menu for quick reloading D2RMH.ini
    Source code(tar.gz)
    Source code(zip)
    D2RMH_v0.7.zip(410.45 KB)
    D2RMH_v0.7_CN.zip(410.96 KB)
    gendata_v0.7.zip(254.48 KB)
  • v0.6.2(Nov 19, 2021)

    • add panel_mask to config ini, which can hide map layer when panels are opened
    • fix the way to test local player
    • fix a logic bug that causes map layer not shown once D2R is closed and reopen
    • use real size in objects.txt for drawing map objects and draw doors on map layer(#55) now
    • (#46) config entries are changed and fixed, now it is able to display names, enchants and immunities for normal monsters:
      • remove show_normal_monsters, merged into show_monsters, which has 3 available values now
      • show_monster_name => show_monster_names and has 3 available values now
      • show_monster_enchant => show_monster_enchants and has 3 available values now
      • show_monster_immune => show_monster_immunities and has 3 available values now
      • old config entries are still accepted, but please migrate to new names if possible
    • (gendata) can read D2R installation path from registry now
    Source code(tar.gz)
    Source code(zip)
    D2RMH_v0.6.2.zip(383.12 KB)
    D2RMH_v0.6.2_CN.zip(383.63 KB)
    gendata_v0.6.2.zip(252.69 KB)
  • v0.6.1(Nov 17, 2021)

  • v0.6(Nov 16, 2021)

    • add edge line to map, and dim color for walkable area in default config
    • add dropped item filter, with show_items, msg_font_size, msg_bg_color added to config ini
    • add D2RMH_item.ini as item filter config, check comments inside for detail
    • add monster_color, unique_monster_color, npc_color, show_npc_name to config ini
    • add msg_position to config ini for message list position
    • try a new way to locate current player in multiplayer games
    • add reading installation path from registry as fallback
    • change default config values (better for common use):
      • font_size: 12->14
      • position: 1->2
      • scale: 1.0->2.0
      • map_centered: 0->1
      • show_monster_name: 1->0
    • fix bug that running D2RMH before D2R(windowed) causes overlay window shown out of window
    • add an about dialog
    • refactoring some remote mem reading codes to make it more readable
    • refactoring string matching codes to improve performance
    Source code(tar.gz)
    Source code(zip)
    D2RMH_v0.6.zip(379.10 KB)
    gendata_v0.6.zip(250.46 KB)
  • v0.5.4(Nov 12, 2021)

  • v0.5.3(Nov 10, 2021)

  • v0.5.2(Nov 8, 2021)

  • v0.5.1(Nov 6, 2021)

  • v0.5(Nov 6, 2021)

    • support D2R 66878 update
    • totally rewritten rendering engine, removes several dependencies(sokol, fontstash)
    • add an exclusive-run check
    • add a tray icon and remove program from taskbar
    • optimize d2mapapi a bit
    • show nearby shrines (you can disable it by set show_objects=0 in D2RMH.ini)
    • set default values for ini configurations so D2RMH can be run without D2RMH.ini (but you still need D2RMH_data.ini)
    • add Caged Barbarian Quest to useful objects
    Source code(tar.gz)
    Source code(zip)
    D2RMH_v0.5.zip(210.68 KB)
    gendata.zip(243.35 KB)
  • v0.4(Oct 27, 2021)

  • v0.3(Oct 27, 2021)

  • v0.2(Oct 26, 2021)

  • v0.1(Oct 25, 2021)

Owner
Soar Qin
Mobile game developer. Also working on game related open source tools in spare time.
Soar Qin
A fast hash map/hash table (whatever you want to call it) for the C programming language.

C HashMap A fast hash map/hash table (whatever you want to call it) for the C programming language. It can associate a key with a pointer or integer v

Mashpoe 71 Nov 23, 2022
C++ implementation of a fast hash map and hash set using hopscotch hashing

A C++ implementation of a fast hash map and hash set using hopscotch hashing The hopscotch-map library is a C++ implementation of a fast hash map and

Thibaut Goetghebuer-Planchon 573 Nov 26, 2022
C++ implementation of a fast hash map and hash set using robin hood hashing

A C++ implementation of a fast hash map and hash set using robin hood hashing The robin-map library is a C++ implementation of a fast hash map and has

Thibaut Goetghebuer-Planchon 853 Nov 26, 2022
Unofficial .hmap map viewer for HumandKind

bhkmap Main Features Read/Write .hmap files Display elevation level, territories, biomes, tile types, strategic resources, luxury resources, natural w

null 6 Nov 6, 2022
Header-only compile time key-value map written in C++20.

C++ Static Map Header-only compile time key-value map written in C++20. Getting Started Simply add the files in your source and #include "@dir/Static_

null 1 Oct 19, 2021
C++ hash map and hash set which preserve the order of insertion

C++ hash map and hash set which preserves the order of insertion The ordered-map library provides a hash map and a hash set which preserve the order o

Thibaut Goetghebuer-Planchon 378 Nov 24, 2022
StringCheese is a CTF tool to solve easy challenges automatically in many cases where a strings | grep is just not enough

StringCheese StringCheese is a script written in Python to extract CTF flags (or any other pattern with a prefix) automatically. It works like a simpl

Mathis HAMMEL 61 Nov 28, 2022
A reverse engineering tool to interactively reconstruct structures and generate header files

ReGenny ReGenny is a reverse engineering tool to interactively reconstruct structures and generate usable C++ header files. Header file generation is

null 83 Nov 27, 2022
This is a curve topology verification tool based on Fast Linking Numbers for Topology Verification of Loopy Structures.

Fast Linking Numbers This tool, called verifycurves, takes input models that consist of closed-loop curves, and outputs a topology certificate as a .t

Ante Qu 22 Jan 26, 2022
Blumentals Surfblocker password exploitation tool.

PoiSoN A Blumentals Surfblocker v5.x password exploitation tool. It is released as a reverse engineering proof-of-concept code. Screenshot & demo pois

Aleksandar 3 May 7, 2022
A tool to collect the exceptions that can reach a C++ function

Exceptions Reporter This tool tries to answer this r/cpp question for a tool to find out, for a given function in my code base, which exceptions it ma

Niels Lohmann 18 Nov 8, 2021
Generate Height map with Generator (OpenGL and imgui) and Construct Splat Map with generated height map using Algorithm

Generate Height map with Generator (OpenGL and imgui) and Construct Splat Map with generated height map using Algorithm(DPS, BFS, Gradient Descent ... etc) . At Renderer, with height map and blend map which are generated in front of this stage, render high quality terrain with OpenGL

Snowapril 35 Mar 22, 2022
D2DX is a complete solution to make Diablo II run well on modern PCs.

D2DX D2DX is a preservation project for running classic Diablo II/LoD on modern PCs. Version 0.99.403b Mission statement Turn the game into a well beh

null 250 Nov 20, 2022
Bit-Map is a simple bit map.

Bit-Map Bit-Map is a simple bit map. Usage Create a map uint8** bitmap; uint64 map_size = 32; // bit number pfs_create_bitmap(bitmap,

Pink 2 Feb 18, 2022
A fantasy map generator based on Martin O'Leary's "Generating fantasy map" notes

Fantasy Map Generator This program is an implementation of a fantasy map generator written in C++ based on the methods described in Martin O'Leary's "

Ryan Guy 626 Nov 29, 2022
A lightweight C++14 parsing library for tmx map files created with the Tiled map editor

tmxlite Description A lightweight C++14 parsing library for tmx map files created with the Tiled map editor. Requires no external linking, all depende

Matt Styles 323 Nov 26, 2022
C++ implementation of a fast hash map and hash set using hopscotch hashing

A C++ implementation of a fast hash map and hash set using hopscotch hashing The hopscotch-map library is a C++ implementation of a fast hash map and

Thibaut Goetghebuer-Planchon 571 Nov 11, 2022
C++ implementation of a fast hash map and hash set using robin hood hashing

A C++ implementation of a fast hash map and hash set using robin hood hashing The robin-map library is a C++ implementation of a fast hash map and has

Thibaut Goetghebuer-Planchon 853 Nov 26, 2022
A fast, memory efficient hash map for C++

I now recommend using the parallel hashmap instead of sparsepp, unless if you are stuck with a non C++11 compatible compiler, or if using a little bit

Gregory Popovitch 1.1k Nov 22, 2022
An efficient graphical Minecraft seed finder and map viewer.

Cubiomes Viewer provides a graphical interface for the efficient and flexible seed-finding utilities provided by cubiomes and a map viewer for the Minecraft biomes and structure generation.

null 413 Nov 28, 2022