dm12 calc function

This forum is for discussions on how to edit what can not be edited through the txt files, needless to say this isn't about battle net hacking.

Moderators: Nefarius, Havvoric

Post Reply

2
100%
 
Total votes: 2

Ledrug
Posts: 32
Joined: Thu Jan 13, 2011 9:18 pm

dm12 calc function

Post by Ledrug » Sat Mar 12, 2011 2:34 pm

1.13 D2Common.#10115:

Code: Select all

Address   Hex dump          Command                            Comments
6FD9DC30  /$  8B4C24 04     MOV ECX,[DWORD ARG.1]              ; D2Common.#10115(lvl, a, b)
6FD9DC34  |.  8BC1          MOV EAX,ECX
6FD9DC36  |.  6BC0 6E       IMUL EAX,EAX,6E
6FD9DC39  |.  99            CDQ
6FD9DC3A  |.  83C1 06       ADD ECX,6
6FD9DC3D  |.  F7F9          IDIV ECX
6FD9DC3F  |.  56            PUSH ESI
6FD9DC40  |.  8B7424 10     MOV ESI,[DWORD ARG.3]
6FD9DC44  |.  57            PUSH EDI
6FD9DC45  |.  8B7C24 10     MOV EDI,[DWORD ARG.2]
6FD9DC49  |.  8BC8          MOV ECX,EAX
6FD9DC4B  |.  8BC6          MOV EAX,ESI
6FD9DC4D  |.  2BC7          SUB EAX,EDI
6FD9DC4F  |.  0FAFC8        IMUL ECX,EAX
6FD9DC52  |.  B8 1F85EB51   MOV EAX,51EB851F
6FD9DC57  |.  F7E9          IMUL ECX
6FD9DC59  |.  C1FA 05       SAR EDX,5
6FD9DC5C  |.  8BC2          MOV EAX,EDX
6FD9DC5E  |.  C1E8 1F       SHR EAX,1F
6FD9DC61  |.  03C2          ADD EAX,EDX
6FD9DC63  |.  03C7          ADD EAX,EDI
...
Skillcalc.txt claims that dm12 is (110 * lvl) * (b - a) / (100 * (lvl + 6)) + a. What the above code actually does is (110 * lvl) / (lvl + 6) * (b - a) / 100 + a. They look similar, but produce different results everywhere due to rounding.

Pangaea
Junior Member
Paladin
Posts: 240
Joined: Thu Apr 01, 2010 9:05 pm

Re: dm12 calc function

Post by Pangaea » Thu Mar 17, 2011 6:53 pm

Is it the same routine for dm34 and so on or do they have own routines?
I'm working with v1.13c

Ledrug
Posts: 32
Joined: Thu Jan 13, 2011 9:18 pm

Re: dm12 calc function

Post by Ledrug » Sun Mar 20, 2011 12:24 am

I would think they all use the same function, but I don't really know. Should be pretty easy to test though.

Pangaea
Junior Member
Paladin
Posts: 240
Joined: Thu Apr 01, 2010 9:05 pm

Re: dm12 calc function

Post by Pangaea » Mon Mar 21, 2011 5:14 pm

New order....
....one instruction removed, an other changed....
...and it goes (110*lvl*(b-a)) / (100*(lvl+6))

(ignore the addresses - i did it as fast fix)

Code: Select all

6FD9DC30 >/$ 8B4C24 04      MOV ECX,DWORD PTR [ESP+4]
6FD9DC3F  |. 56             PUSH ESI
6FD9DC40  |. 8B7424 10      MOV ESI,DWORD PTR [ESP+10]
6FD9DC44  |. 57             PUSH EDI
6FD9DC45  |. 8B7C24 10      MOV EDI,DWORD PTR [ESP+10]

6FD9DC4B  |. 8BC6           MOV EAX,ESI
6FD9DC4D  |. 2BC7           SUB EAX,EDI
6FD9DC4F  |. 0FAFC8         *IMUL EaX,EcX

6FD9DC36  |. 6BC0 6E        IMUL EAX,EAX,6E
6FD9DC39  |. 99             CDQ
6FD9DC3A  |. 83C1 06        ADD ECX,6
6FD9DC3D  |. F7F9           IDIV ECX
6FD9DC49  |. 8BC8           MOV ECX,EAX

6FD9DC52  |. B8 1F85EB51    MOV EAX,51EB851F
6FD9DC57  |. F7E9           IMUL ECX
6FD9DC59  |. C1FA 05        SAR EDX,5
6FD9DC5C  |. 8BC2           MOV EAX,EDX
6FD9DC5E  |. C1E8 1F        SHR EAX,1F
6FD9DC61  |. 03C2           ADD EAX,EDX
6FD9DC63  |. 03C7           ADD EAX,EDI
6FD9DC65  |. 3BC6           CMP EAX,ESI
6FD9DC67  |. 7E 02          JLE SHORT D2Common.6FD9DC6B
6FD9DC69  |. 8BC6           MOV EAX,ESI
6FD9DC6B  |> 5F             POP EDI
6FD9DC6C  |. 5E             POP ESI
6FD9DC6D  \. C2 0C00        RETN 0C
I'm working with v1.13c

ocarinas
Posts: 56
Joined: Sun Apr 10, 2016 4:36 am

Re: dm12 calc function

Post by ocarinas » Mon Mar 05, 2018 4:33 am

Anyone knows the offsets for 1.10?

User avatar
Necrolis
Senior Admin
Throne
Posts: 9125
Joined: Sat Mar 25, 2006 1:22 pm
Location: The Land of the Dead
Contact:
South Africa

Hand-picked

Re: dm12 calc function

Post by Necrolis » Wed Mar 07, 2018 9:23 am

In 1.10 you are looking for D2Common.#11033, if you want to see what evaluates all the fomulae functions, have a look at D2Common.#11271 & D2Common.#11290
Image
Netiquette, Do you USE it?!?! | Nefarius' Fixed TXT Files | Terms Of Service
Blackened | Day of Death | D2GFEx
"What was yours is mine. Your land, your people, and now your life." - Lim-Dul, the Necromancer
Judgement is Final, Death is Eternal

Post Reply

Return to “Code Editing”