fantomas: I had the same issue and fixed it. The problem has to do with globalalloc. I am not sure why exactly but I ran into a similar issue when I was figuring things out with The Bard's Tale 4. Here is a link to the discussion topic:
viewtopic.php?f=8&t=7929
Here is the fixed code for "9,999,999 Mouse Hover Money":
Code: Select all
//Game: Grim Dawn + All DLC's
//Version: v1.1.1.1
define(address,Game.GAME::Character::GetCurrentMoney)
define(bytes,8B 81 24 13 00 00)
[ENABLE]
assert(address,bytes)
alloc(newmem,$1000,Game.GAME::Character::GetCurrentMoney)
label(code)
label(return)
label(getCurrentMoney_ptr)
registersymbol(getCurrentMoney_ptr)
//globalalloc(getCurrentMoney_ptr,8)
newmem:
mov [getCurrentMoney_ptr],rcx
mov [rcx+00001324],#9999999
code:
mov eax,[rcx+00001324]
jmp return
getCurrentMoney_ptr:
dq 0
address:
jmp newmem
nop
return:
[DISABLE]
address:
db bytes
// mov eax,[rcx+00001324]
unregistersymbol(getCurrentMoney_ptr)
dealloc(newmem)
and here is the code fix for "Super Run Speed":
Code: Select all
//Game: Grim Dawn + All DLC's
//Version: v1.1.1.2
define(address,Game.GAME::Player::CapRunSpeed+C)
define(bytes,F3 0F 10 B1 38 47 00 00)
[ENABLE]
assert(address,bytes)
alloc(newmem,$1000,Game.GAME::Player::CapRunSpeed+C)
label(code)
label(return)
label(runSpeed_ptr)
registersymbol(runSpeed_ptr)
//globalalloc(runSpeed_ptr,8)
newmem:
mov [runSpeed_ptr],rcx
mov [rcx+0000473C],(float)1000 //0x473C - maxSpeed
code:
movss xmm6,[rcx+00004738] //currentSpeed
jmp return
runSpeed_ptr:
dq 0
address:
jmp newmem
nop
nop
nop
return:
[DISABLE]
address:
db bytes
// movss xmm6,[rcx+00004738]
unregistersymbol(runSpeed_ptr)
dealloc(newmem)