Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Black block below Scroll of Inifuss #81

Closed
oGkspAz opened this issue Mar 31, 2022 · 4 comments
Closed

Black block below Scroll of Inifuss #81

oGkspAz opened this issue Mar 31, 2022 · 4 comments
Assignees
Labels
bug Something isn't working

Comments

@oGkspAz
Copy link

oGkspAz commented Mar 31, 2022

This is also mentioned at bolrog/d2dx#165

I do not use D2DX but I am experiencing the same issue, leading me to believe that it is caused by SGD2FreeRes.
I have not tested it exclusively with freeres running though.
20220329195659_1

My full setup is:
Diablo II LoD v1.14
BaseMod v1.13.9_1
PlugY v14.03
D2LootFilter v0.6a

@IAmTrial
Copy link
Collaborator

IAmTrial commented Jun 23, 2022

The likely cause of this issue is that I've changed the draw ordering of the screen background. Normally, the screen background is drawn after most other panel elements, and this vanilla behavior is the cause of certain kinds of visual bugs.

At the same time, when the Scroll of Inifuss screen is drawn, a black rectangle area is also drawn. This is normally covered up by the screen background being drawn after other elements. In this case, I will have to remove whatever code is causing the black rectangle to be drawn.

Function causing the issue: D2Client.dll+7DE00 (1.13C)

@IAmTrial
Copy link
Collaborator

Fix found, NOP bytes in range D2Client.dll (1.13C): [0x7C38D, 0x7C3BA).

I will need to apply a patch for all other versions as well.

@IAmTrial IAmTrial self-assigned this Jun 23, 2022
@IAmTrial IAmTrial added the bug Something isn't working label Jun 23, 2022
@IAmTrial
Copy link
Collaborator

IAmTrial commented Jun 23, 2022

Screenshot, after the patch is applied
Screenshot001

How to locate the patch location:

  1. Scan using open/close state of the Scroll of Inifuss. Scan 0 if closed, 1 if open.
  2. Enable "Find All Access" to the variable(s) that are remaining.
  3. One of the code paths follows a series of checks, where one of them is related to the variable that was scanned. Enter the function associated with the related check.
  4. A function call is preceded by a push 0. Enter that function.
  5. In this function, enter the first function that is called.
  6. Find a call to D2GFX_DrawRectangle. This function call, and all parameter pushes need to be NOP.

@IAmTrial
Copy link
Collaborator

Release 3.0.2.6 contains the bugfix.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Something isn't working
Projects
None yet
Development

No branches or pull requests

2 participants