turns out I need to convert the savegame file manually in order for it to work on my game.... and it seems a lot of work...Takamichinoku wrote: ↑Sun Apr 07, 2019 1:49 pm[...]
Here ya go! Yea I'm not at all knowledgeable with the Cheat Engine codes and terms so I won't know exactly what I'm doing when backtracking lol.
so, I power through the game and get the skill myself...
I abandon the previous filter as it would exclude the puppeteer countdown. and I didn't pursue the caller check neither...
instead I went with the stupid way: just do some checks of the max countdown:
buffs' countdown: some are 150, some are 30.
puppeteer's countdown: 45.
and it's literally the filter I implemented now... in theory I can just do a ">=" condition check to cover all these, but I'm afraid that would have a much greater chance to manipulate some other countdowns by accident...
anyway, as usual, I din't test it much, so please report if it doesn't cover some buffs and I'll add them in.
and in case there ARE some buffs not covering by this script, I won't add it to the OP table for now.
so, report! in details~
Code: Select all
<?xml version="1.0" encoding="utf-8"?>
<CheatTable>
<CheatEntries>
<CheatEntry>
<ID>16341</ID>
<Description>"inf. buffs / puppeteer TEST"</Description>
<LastState Activated="1"/>
<Color>FF0000</Color>
<VariableType>Auto Assembler Script</VariableType>
<AssemblerScript>[ENABLE]
//code from here to '[DISABLE]' will be used to enable the cheat
aobscanmodule(countdownObjEndChkAOB,sekiro.exe,F3 0F ** ** ** ** ** ** F3 ** ** ** 0F 2F ** F3 ** ** ** 76)
registersymbol(countdownObjEndChkAOB)
alloc(newmem,2048,countdownObjEndChkAOB+8) //"sekiro.exe"+BEF42E)
label(returnhere)
label(originalcode_countdownObjEndChkAOB)
registersymbol(originalcode_countdownObjEndChkAOB)
label(exit)
newmem: //this is allocated memory, you have read,write,execute access
//place your code here
push rax
mov eax,(float)30
movd xmm1,eax
comiss xmm1,[rbx+4]
je @f
mov eax,(float)45
movd xmm1,eax
comiss xmm1,[rbx+4]
je @f
mov eax,(float)150
movd xmm1,eax
comiss xmm1,[rbx+4]
je @f
movss xmm1,[rbx]
jmp end
@@:
xorps xmm7,xmm7
end:
pop rax
originalcode_countdownObjEndChkAOB:
readmem(countdownObjEndChkAOB+8,7)
//subss xmm1,xmm7
//comiss xmm0,xmm1
exit:
jmp returnhere
///
countdownObjEndChkAOB+8: //"sekiro.exe"+BEF42E:
jmp newmem
nop
nop
returnhere:
[DISABLE]
//code from here till the end of the code will be used to disable the cheat
dealloc(newmem)
countdownObjEndChkAOB+8: //"sekiro.exe"+BEF42E:
readmem(originalcode_countdownObjEndChkAOB,7)
//db F3 0F 5C CF 0F 2F C1
//Alt: subss xmm1,xmm7
//Alt: comiss xmm0,xmm1
unregistersymbol(originalcode_countdownObjEndChkAOB)
</AssemblerScript>
</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