01-29-2018, 10:38 PM
(This post was last modified: 01-29-2018, 11:10 PM by TheKillerVortex.)
This is a prime example of reverse engineering (although technically hacking: It changes absolutely nothing about game play):
If you NOP this entire segment (displayed here): You will no longer have the intermediate 'loading screen' (which adds a pointless delay) while changing levels in Diablo! Town Portal, stairs of any kind.
Alternatively: You can just modify the JZ/JE to JMP (avoiding the function call that is directly responsible for updating the screen?).
EDIT: This actually affects joining/creating games on Battle.net as well.
By by-passing the loading screen (which used to cause issues on Windows XP on my old machine for some reason): The game loads WAY faster!
The reverse engineering tool (debugger) I am using (which is profoundly extensive and powerful) is: x32dbg (100% free! It also has a x64dbg version).
You are able to:
Code:
0041B1DF | 56 | push esi | Updates "loading screen" (bar on bottom)
0041B1E0 | E8 BB FF FF FF | call <diablo_copy.sub_41B1A0> |
0041B1E5 | 83 05 B0 4C 63 00 0F | add dword ptr ds:[0x634CB0],0xF |
0041B1EC | BE 16 02 00 00 | mov esi,0x216 |
0041B1F1 | 39 35 B0 4C 63 00 | cmp dword ptr ds:[0x634CB0],esi |
0041B1F7 | 76 06 | jbe diablo_copy.41B1FF |
0041B1F9 | 89 35 B0 4C 63 00 | mov dword ptr ds:[0x634CB0],esi |
0041B1FF | 83 3D A8 4C 63 00 00 | cmp dword ptr ds:[0x634CA8],0x0 |
0041B206 | 74 05 | je diablo_copy.41B20D |
0041B208 | E8 0B 00 00 00 | call <diablo_copy.sub_41B218> |
0041B20D | 39 35 B0 4C 63 00 | cmp dword ptr ds:[0x634CB0],esi |
0041B213 | 5E | pop esi |
If you NOP this entire segment (displayed here): You will no longer have the intermediate 'loading screen' (which adds a pointless delay) while changing levels in Diablo! Town Portal, stairs of any kind.
Alternatively: You can just modify the JZ/JE to JMP (avoiding the function call that is directly responsible for updating the screen?).
Code:
0041B206 | EB 05 | jmp diablo_copy.41B20D |
EDIT: This actually affects joining/creating games on Battle.net as well.
By by-passing the loading screen (which used to cause issues on Windows XP on my old machine for some reason): The game loads WAY faster!
The reverse engineering tool (debugger) I am using (which is profoundly extensive and powerful) is: x32dbg (100% free! It also has a x64dbg version).
You are able to:
- View 5 dumps of the .data (tabs)
- View the stack with a specified calling convention (levels deep are modifiable with 1 click! Default value is "5 deep")
- "Watch dog" (during a break-point: Any listed expressions / addresses are updated; True/False, Changed/Not changed flags)
- Comments anywhere (very useful)
- Labels (instead of "module.randomSymbol" you insert your OWN label! Such as: diablo.exe_loadingScreen())
- Enable/Disable break-points (and an entire screen of disabled break-points)
- String references (seems very accurate) for the specific module/module(s)/etc
- Built-in C-code generator ("Snowman"); Which is equally very accurate at generating C-structs when they appear
- Provides endless plugins for anything missing
- Attempts to hide the debugger if you want (toggled: "Debug -> Advanced -> Hide debugger (PEB)")