Change what Tifa's Triangle attack will be between the 3 Unbridled Strength uses:
Code: Select all
<?xml version="1.0" encoding="utf-8"?>
<CheatTable>
<CheatEntries>
<CheatEntry>
<ID>1337103633</ID>
<Description>"Tifa Unbridled Attack Modifier"</Description>
<Options moHideChildren="1"/>
<LastState Activated="1"/>
<VariableType>Auto Assembler Script</VariableType>
<AssemblerScript>[ENABLE]
aobscanmodule(AlwaysRiseAndFall,ff7rebirth_.exe,95 00 48 2B E0 80 79 30 01) // should be unique
alloc(newmem,$1000,AlwaysRiseAndFall)
registersymbol(TifaLevel)
label(TifaLevel)
label(code)
label(return)
newmem:
push rbx
mov bl,[TifaLevel]
mov byte ptr [rcx+30],bl
pop rbx
code:
sub rsp,rax
cmp byte ptr [rcx+30],01
jmp return
TifaLevel:
db 3
AlwaysRiseAndFall+02:
jmp newmem
nop 2
return:
registersymbol(AlwaysRiseAndFall)
[DISABLE]
AlwaysRiseAndFall+02:
db 48 2B E0 80 79 30 01
unregistersymbol(AlwaysRiseAndFall)
dealloc(newmem)
{
// ORIGINAL CODE - INJECTION POINT: ff7rebirth_.exe+180A606
ff7rebirth_.exe+180A5F2: 41 5E - pop r14
ff7rebirth_.exe+180A5F4: 41 5D - pop r13
ff7rebirth_.exe+180A5F6: 5F - pop rdi
ff7rebirth_.exe+180A5F7: 5D - pop rbp
ff7rebirth_.exe+180A5F8: C3 - ret
ff7rebirth_.exe+180A5F9: CC - int 3
ff7rebirth_.exe+180A5FA: CC - int 3
ff7rebirth_.exe+180A5FB: CC - int 3
ff7rebirth_.exe+180A5FC: B8 28 00 00 00 - mov eax,00000028
ff7rebirth_.exe+180A601: E8 5A 5B 95 00 - call ff7rebirth_.exe+2160160
// ---------- INJECTING HERE ----------
ff7rebirth_.exe+180A606: 48 2B E0 - sub rsp,rax
// ---------- DONE INJECTING ----------
ff7rebirth_.exe+180A609: 80 79 30 00 - cmp byte ptr [rcx+30],00
ff7rebirth_.exe+180A60D: 75 05 - jne ff7rebirth_.exe+180A614
ff7rebirth_.exe+180A60F: 48 83 C4 28 - add rsp,28
ff7rebirth_.exe+180A613: C3 - ret
ff7rebirth_.exe+180A614: C5 FA 10 41 34 - vmovss xmm0,[rcx+34]
ff7rebirth_.exe+180A619: C5 FA 5C C9 - vsubss xmm1,xmm0,xmm1
ff7rebirth_.exe+180A61D: C5 F8 2F 0D 93 BA 7B 04 - vcomiss xmm1,[ff7rebirth_.exe+5FC60B8]
ff7rebirth_.exe+180A625: C5 FA 11 49 34 - vmovss [rcx+34],xmm1
ff7rebirth_.exe+180A62A: 77 E3 - ja ff7rebirth_.exe+180A60F
ff7rebirth_.exe+180A62C: 48 83 C4 28 - add rsp,28
}
</AssemblerScript>
<CheatEntries>
<CheatEntry>
<ID>1337103634</ID>
<Description>"Tifa Unbridled Level"</Description>
<DropDownList ReadOnly="1" DescriptionOnly="1" DisplayValueAsItem="1">1:Whirling Uppercut
2:Omnistrike
3:Rise and Fall
</DropDownList>
<LastState Value="3" RealAddress="7FF711DD0017"/>
<ShowAsSigned>0</ShowAsSigned>
<VariableType>Byte</VariableType>
<Address>TifaLevel</Address>
</CheatEntry>
</CheatEntries>
</CheatEntry>
</CheatEntries>
</CheatTable>
To change, edit script and change between 1-3 respectively.
1:Whirling Uppercut
2:Omnistrike
3:Rise and Fall
Code: Select all
<?xml version="1.0" encoding="utf-8"?>
<CheatTable>
<CheatEntries>
<CheatEntry>
<ID>1337103627</ID>
<Description>"Rage and Fall Always On (Use Whirling Uppercut)"</Description>
<LastState/>
<VariableType>Auto Assembler Script</VariableType>
<AssemblerScript>[ENABLE]
aobscanmodule(TifaMax,ff7rebirth_.exe,80 79 30 01 48 8B D9 * * * * 24) // should be unique
alloc(newmem,$10,TifaMax)
label(code)
label(return)
newmem:
mov byte ptr [rcx+30],3
code:
cmp byte ptr [rcx+30],01
mov rbx,rcx
jmp return
TifaMax:
jmp newmem
nop 2
return:
registersymbol(TifaMax)
[DISABLE]
TifaMax:
db 80 79 30 01 48 8B D9
unregistersymbol(TifaMax)
dealloc(newmem)
{
// ORIGINAL CODE - INJECTION POINT: ff7rebirth_.exe+18F20E3
ff7rebirth_.exe+18F20B3: 4C 8B 83 80 00 00 00 - mov r8,[rbx+00000080]
ff7rebirth_.exe+18F20BA: 48 8D 54 24 20 - lea rdx,[rsp+20]
ff7rebirth_.exe+18F20BF: 49 8B 40 20 - mov rax,[r8+20]
ff7rebirth_.exe+18F20C3: 48 89 83 80 00 00 00 - mov [rbx+00000080],rax
ff7rebirth_.exe+18F20CA: E8 5D 1D 47 FF - call ff7rebirth_.exe+D63E2C
ff7rebirth_.exe+18F20CF: E9 7C FF FF FF - jmp ff7rebirth_.exe+18F2050
ff7rebirth_.exe+18F20D4: 40 53 - push rbx
ff7rebirth_.exe+18F20D6: B8 30 00 00 00 - mov eax,00000030
ff7rebirth_.exe+18F20DB: E8 80 E0 86 00 - call ff7rebirth_.exe+2160160
ff7rebirth_.exe+18F20E0: 48 2B E0 - sub rsp,rax
// ---------- INJECTING HERE ----------
ff7rebirth_.exe+18F20E3: 80 79 30 01 - cmp byte ptr [rcx+30],01
// ---------- DONE INJECTING ----------
ff7rebirth_.exe+18F20E7: 48 8B D9 - mov rbx,rcx
ff7rebirth_.exe+18F20EA: C5 F8 29 74 24 20 - vmovaps [rsp+20],xmm6
ff7rebirth_.exe+18F20F0: C5 FA 10 35 C4 3F 6D 04 - vmovss xmm6,[ff7rebirth_.exe+5FC60BC]
ff7rebirth_.exe+18F20F8: 77 10 - ja ff7rebirth_.exe+18F210A
ff7rebirth_.exe+18F20FA: C5 F8 28 C6 - vmovaps xmm0,xmm6
ff7rebirth_.exe+18F20FE: C5 F8 28 74 24 20 - vmovaps xmm6,[rsp+20]
ff7rebirth_.exe+18F2104: 48 83 C4 30 - add rsp,30
ff7rebirth_.exe+18F2108: 5B - pop rbx
ff7rebirth_.exe+18F2109: C3 - ret
ff7rebirth_.exe+18F210A: 48 8B 49 08 - mov rcx,[rcx+08]
}
</AssemblerScript>
</CheatEntry>
</CheatEntries>
</CheatTable>
Code: Select all
<?xml version="1.0" encoding="utf-8"?>
<CheatTable>
<CheatEntries>
<CheatEntry>
<ID>1337103631</ID>
<Description>"Vengeance Mode Always Available"</Description>
<LastState Activated="1"/>
<VariableType>Auto Assembler Script</VariableType>
<AssemblerScript>[ENABLE]
aobscanmodule(FullVen,ff7rebirth_.exe,C5 F8 2E 51 30) // should be unique
alloc(newmem,$1000,FullVen)
label(code)
label(return)
newmem:
mov [rcx+30],(float)60
code:
vucomiss xmm2,[rcx+30]
jmp return
FullVen:
jmp newmem
return:
registersymbol(FullVen)
[DISABLE]
FullVen:
db C5 F8 2E 51 30
unregistersymbol(FullVen)
dealloc(newmem)
{
// ORIGINAL CODE - INJECTION POINT: ff7rebirth_.exe+33D5E4F
ff7rebirth_.exe+33D5E2D: 48 8B 74 24 60 - mov rsi,[rsp+60]
ff7rebirth_.exe+33D5E32: C5 F8 28 74 24 30 - vmovaps xmm6,[rsp+30]
ff7rebirth_.exe+33D5E38: C5 F8 28 7C 24 20 - vmovaps xmm7,[rsp+20]
ff7rebirth_.exe+33D5E3E: 48 83 C4 40 - add rsp,40
ff7rebirth_.exe+33D5E42: 5F - pop rdi
ff7rebirth_.exe+33D5E43: C3 - ret
ff7rebirth_.exe+33D5E44: 32 C0 - xor al,al
ff7rebirth_.exe+33D5E46: C5 E8 57 D2 - vxorps xmm2,xmm2,xmm2
ff7rebirth_.exe+33D5E4A: 38 41 3C - cmp [rcx+3C],al
ff7rebirth_.exe+33D5E4D: 75 09 - jne ff7rebirth_.exe+33D5E58
// ---------- INJECTING HERE ----------
ff7rebirth_.exe+33D5E4F: C5 F8 2E 51 30 - vucomiss xmm2,[rcx+30]
// ---------- DONE INJECTING ----------
ff7rebirth_.exe+33D5E54: 75 02 - jne ff7rebirth_.exe+33D5E58
ff7rebirth_.exe+33D5E56: B0 01 - mov al,01
ff7rebirth_.exe+33D5E58: 88 42 18 - mov [rdx+18],al
ff7rebirth_.exe+33D5E5B: C6 02 07 - mov byte ptr [rdx],07
ff7rebirth_.exe+33D5E5E: 8A 41 3C - mov al,[rcx+3C]
ff7rebirth_.exe+33D5E61: 88 42 24 - mov [rdx+24],al
ff7rebirth_.exe+33D5E64: C5 FA 10 41 30 - vmovss xmm0,[rcx+30]
ff7rebirth_.exe+33D5E69: C5 FA 5E 49 34 - vdivss xmm1,xmm0,[rcx+34]
ff7rebirth_.exe+33D5E6E: C5 FA 11 4A 20 - vmovss [rdx+20],xmm1
ff7rebirth_.exe+33D5E73: C5 F8 2F 51 38 - vcomiss xmm2,[rcx+38]
}
</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