just un-installed AC3 Remaster...nohmercy wrote: ↑Fri Mar 29, 2019 8:12 amFor anyone that wants to make a player coordinate hack:
the code to disabling player movement, its this
sekiro.exe+BAD636 - movaps [rsi+00000080],xmm6
Replacing that with nop freezes your position. The data type is float. In the code list, seeing what addresses that code writes to gives you the x coordinate address (the first one) Adding 4 to the x coordinate address gives you the y, and adding 4 more gives you the z. The coordinate address changes everytime you die.
I tried Liberation first. it kept saying can't connect to Ubisoft server, but it seems I can still play.
then it crashed during changing Graphic option (Full-screen to borderless).
after the first cut-scene, I pause the game and went to the loo. then I got something to drink and it's just about 5 mins. when I un-pause the game, it crashed.
I boot up the game once more, after playing a while, I went to the option and change key-config. I changed 1 key and then the keyboard stop responding. I can't exit the key-config menu either. needed to kill the process instead..
then I boot up the AC3 itself. and I can't skip the start cut-scene, same as the original game. then I got in-game and saw the updated graphic in a "new graphic engine". and I remember the RE2 remake.....
then I quit and un-installed the game.
....... ...
anyway, thanks @nohmercy for player coord~ I'm going to re-install the game now. see if I'm 'patient enough to locate the normalise vector to build a no-clip script.
///
EDIT:
the opcode you located are read many other coords at the same time, you may want to filter the other on-player coord out if you want to manipulate the player coord with it.
and the vectors I need are near the follow cam info.
going to find some deltas now.......
///
EDIT2:
here's a no-clip script for testing.
no AOBscans, and no speed modifier (i.e., move in one speed) for now.
test it out~
feel free to report bugs or issues..
COPY and PASTE the following on to your table. (e.g. highlight the "enable" script, then press Ctrl-V)
e.g., after you activate enable script, in-game press numpad0 and numpad- together to toggle no-clip.
when in no-clip, WSAD + mouse to move around.
in theory you can move around using a controller as well. report!
Code: Select all
<?xml version="1.0" encoding="utf-8"?>
<CheatTable>
<CheatEntries>
<CheatEntry>
<ID>16285</ID>
<Description>"no-clip (numpad0-)"</Description>
<LastState/>
<VariableType>Auto Assembler Script</VariableType>
<AssemblerScript>[ENABLE]
//code from here to '[DISABLE]' will be used to enable the cheat
define(noclipbasespeed,(float)2)
define(shiftkeynoclipspeedmultiplier,(float)3)
define(capslockkeynoclipspeedmultiplier,(float)0.5)
label(pSomeInput)
registersymbol(pSomeInput)
label(pCamInfo)
registersymbol(pCamInfo)
label(dNoClipSpeedMultiplier)
registersymbol(dNoClipSpeedMultiplier)
alloc(newmem,2048,"sekiro.exe"+BAD636)
label(returnhere)
label(originalcode)
label(exit)
newmem: //this is allocated memory, you have read,write,execute access
//place your code here
mov rcx,pPlayer
mov rcx,[rcx+8]
test rcx,rcx
jz end
mov rcx,[rcx+1ff8]
test rcx,rcx
jz end
mov rcx,[rcx+68]
cmp rsi,rcx
jne end
//store registers, xmms
push rax
push rbx
push r8
push r9
sub rsp,10
movdqu dqword [rsp],xmm1
xorps xmm1,xmm1
sub rsp,10
movdqu dqword [rsp],xmm3
xorps xmm3,xmm3
sub rsp,10
movdqu dqword [rsp],xmm4
xorps xmm4,xmm4
//player coord fetch
movaps xmm6,[rsi+80]
//do y
//get y movement
mov r8,pSomeInput
mov r8,[r8]
test r8,r8
jz @f
mov r9,57
lea r8,[r8+r9*4]
movss xmm4,[r8]
shufps xmm4,xmm4,c0 //broadcast except 4th
//apply speed
mov eax,noclipbasespeed
movd xmm3,eax
shufps xmm3,xmm3,00 //broadcast
mulps xmm4,xmm3
mov rax,dNoClipSpeedMultiplier
movss xmm3,[rax]
shufps xmm3,xmm3,c0 //broadcast except 4th
mulps xmm4,xmm3
//apply vector
mov r9,pCamInfo
mov r9,[r9]
test r9,r9
jz @f
movups xmm3,[r9+30]
mulps xmm4,xmm3
//update new coord
addps xmm6,xmm4
//do x
//get x movement
movss xmm4,[r8+4]
shufps xmm4,xmm4,c4 //copy to 3rd
//apply speed
mov eax,noclipbasespeed
movd xmm3,eax
shufps xmm3,xmm3,c4 //copy to 3rd
mulps xmm4,xmm3
mov rax,dNoClipSpeedMultiplier
movss xmm3,[rax]
shufps xmm3,xmm3,00 //broadcast
mulps xmm4,xmm3
//apply vector
movups xmm3,[r9+10]
mulps xmm4,xmm3
//update new coord
addps xmm6,xmm4
@@:
//restore registers, xmms
movdqu xmm4,dqword [rsp]
add rsp,10
movdqu xmm3,dqword [rsp]
add rsp,10
movdqu xmm1,dqword [rsp]
add rsp,10
pop r9
pop r8
pop rbx
pop rax
end:
originalcode:
movaps [rsi+00000080],xmm6
exit:
jmp returnhere
///
pSomeInput:
dq 0
pCamInfo:
dq 0
dNoClipSpeedMultiplier:
dd (float)0.05
dZForce:
dd 0
///
"sekiro.exe"+BAD636:
jmp newmem
nop
nop
returnhere:
///*************************************************///
alloc(newmem1,2048,"sekiro.exe"+1A9656B)
label(returnhere1)
label(originalcode1)
label(exit1)
newmem1: //this is allocated memory, you have read,write,execute access
//place your code here
movss [r9+rcx*4],xmm1
mov rcx,pSomeInput
mov [rcx],r9
//57 y
//58 x
end1:
jmp exit1
originalcode1:
movss [r9+rcx*4],xmm1
exit1:
jmp returnhere1
///
"sekiro.exe"+1A9656B:
jmp newmem1
nop
returnhere1:
///*************************************************///
alloc(newmem2,2048,"sekiro.exe"+73AF03)
label(returnhere2)
label(originalcode2)
label(exit2)
newmem2: //this is allocated memory, you have read,write,execute access
//place your code here
mov rcx,pCamInfo
mov [rcx],rsi
//+10 2d
//+30 3d
originalcode2:
movss xmm1,[rsi+00000170]
exit2:
jmp returnhere2
///
"sekiro.exe"+73AF03:
jmp newmem2
nop
nop
nop
returnhere2:
///*************************************************///
[DISABLE]
//code from here till the end of the code will be used to disable the cheat
dealloc(newmem)
"sekiro.exe"+BAD636:
db 0F 29 B6 80 00 00 00
//Alt: movaps [rsi+00000080],xmm6
unregistersymbol(pSomeInput)
unregistersymbol(pCamInfo)
unregistersymbol(dNoClipSpeedMultiplier)
///*************************************************///
dealloc(newmem1)
"sekiro.exe"+1A9656B:
db F3 41 0F 11 0C 89
//Alt: movss [r9+rcx*4],xmm1
///*************************************************///
alloc(newmem2,2048,"sekiro.exe"+73AF03)
label(returnhere2)
label(originalcode2)
label(exit2)
newmem2: //this is allocated memory, you have read,write,execute access
//place your code here
mov rcx,pCamInfo
mov [rcx],rsi
//+10 2d
//+30 3d
originalcode2:
movss xmm1,[rsi+00000170]
exit2:
jmp returnhere2
///
"sekiro.exe"+73AF03:
jmp newmem2
nop
nop
nop
returnhere2:
///*************************************************///
</AssemblerScript>
<Hotkeys>
<Hotkey>
<Action>Toggle Activation</Action>
<Keys>
<Key>96</Key>
<Key>109</Key>
</Keys>
<ID>0</ID>
<ActivateSound TTS="">no-clip Activated</ActivateSound>
<DeactivateSound TTS="">no-clip Deactivated</DeactivateSound>
</Hotkey>
</Hotkeys>
</CheatEntry>
</CheatEntries>
</CheatTable>
How to use this cheat table?
- Install Cheat Engine
- Double-click the .CT file in order to open it.
- Click the PC icon in Cheat Engine in order to select the game process.
- Keep the list.
- Activate the trainer options by checking boxes or setting values from 0 to 1