Page 10 of 12

Re: Final fantasy VII Ever Crisis

Posted: Wed Apr 10, 2024 1:54 am
by Bigjoe91
Cissa90 wrote:
Tue Apr 09, 2024 2:57 pm
New cheat, Game Speed Multiplier.
Contains x1 to x5.

Copy its contents directly into Cheat Engine.

Code: Select all

<?xml version="1.0" encoding="utf-8"?>
<CheatTable>
  <CheatEntries>
    <CheatEntry>
      <ID>293</ID>
      <Description>"Game Speed Multiplier"</Description>
      <LastState Activated="1"/>
      <VariableType>Auto Assembler Script</VariableType>
      <AssemblerScript>[ENABLE]

aobscanmodule(GameSpeed,UnityPlayer.dll,F3 0F 10 99 FC 00 00 00) // should be unique
alloc(newmem,$1000,GameSpeed)
label(code)
label(return)
alloc(SpeedGame,4)
registersymbol(SpeedGame)
label(Speed2)
label(Speed3)
label(Speed4)
label(Speed5)

SpeedGame:
dd (float)1

newmem:
cmp [SpeedGame],(float)1
je code
cmp [SpeedGame],(float)2
je Speed2
cmp [SpeedGame],(float)3
je Speed3
cmp [SpeedGame],(float)4
je Speed4
cmp [SpeedGame],(float)5
je Speed5

Speed2:
mov [rcx+000000FC],(float)2
jmp code

Speed3:
mov [rcx+000000FC],(float)3
jmp code

Speed4:
mov [rcx+000000FC],(float)4
jmp code

Speed5:
mov [rcx+000000FC],(float)5
jmp code

code:
  movss xmm3,[rcx+000000FC]
  jmp return

GameSpeed:
  jmp newmem
  nop 3
return:
registersymbol(GameSpeed)

[DISABLE]

GameSpeed:
  db F3 0F 10 99 FC 00 00 00

unregistersymbol(GameSpeed)
dealloc(newmem)

{
// ORIGINAL CODE - INJECTION POINT: UnityPlayer.dll+45F2C0

UnityPlayer.dll+45F290: 80 B9 C0 00 00 00 00     - cmp byte ptr [rcx+000000C0],00
UnityPlayer.dll+45F297: 74 1B                    - je UnityPlayer.dll+45F2B4
UnityPlayer.dll+45F299: 0F 28 74 24 20           - movaps xmm6,[rsp+20]
UnityPlayer.dll+45F29E: 0F 28 7C 24 10           - movaps xmm7,[rsp+10]
UnityPlayer.dll+45F2A3: C6 81 C0 00 00 00 00     - mov byte ptr [rcx+000000C0],00
UnityPlayer.dll+45F2AA: 44 0F 28 04 24           - movaps xmm8,[rsp]
UnityPlayer.dll+45F2AF: 48 83 C4 38              - add rsp,38
UnityPlayer.dll+45F2B3: C3                       - ret 
UnityPlayer.dll+45F2B4: 80 B9 C1 00 00 00 00     - cmp byte ptr [rcx+000000C1],00
UnityPlayer.dll+45F2BB: F2 0F 10 61 60           - movsd xmm4,[rcx+60]
// ---------- INJECTING HERE ----------
UnityPlayer.dll+45F2C0: F3 0F 10 99 FC 00 00 00  - movss xmm3,[rcx+000000FC]
// ---------- DONE INJECTING  ----------
UnityPlayer.dll+45F2C8: 74 0D                    - je UnityPlayer.dll+45F2D7
UnityPlayer.dll+45F2CA: F3 0F 59 1D 62 A1 2C 01  - mulss xmm3,[UnityPlayer.dll+1729434]
UnityPlayer.dll+45F2D2: 0F 5A D3                 - cvtps2pd xmm2,xmm3
UnityPlayer.dll+45F2D5: EB 61                    - jmp UnityPlayer.dll+45F338
UnityPlayer.dll+45F2D7: F3 0F 10 89 00 01 00 00  - movss xmm1,[rcx+00000100]
UnityPlayer.dll+45F2DF: 0F 28 EA                 - movaps xmm5,xmm2
UnityPlayer.dll+45F2E2: 0F 5A C1                 - cvtps2pd xmm0,xmm1
UnityPlayer.dll+45F2E5: F2 0F 5C EC              - subsd xmm5,xmm4
UnityPlayer.dll+45F2E9: 66 0F 2F E8              - comisd xmm5,xmm0
UnityPlayer.dll+45F2ED: 76 09                    - jna UnityPlayer.dll+45F2F8
}
</AssemblerScript>
      <CheatEntries>
        <CheatEntry>
          <ID>294</ID>
          <Description>"Multiplier"</Description>
          <DropDownList ReadOnly="1" DescriptionOnly="1" DisplayValueAsItem="1">1:x1
2:x2
3:x3
4:x4
5:x5
</DropDownList>
          <LastState Value="3" RealAddress="7FFF0C781000"/>
          <ShowAsSigned>0</ShowAsSigned>
          <VariableType>Float</VariableType>
          <Address>SpeedGame</Address>
        </CheatEntry>
      </CheatEntries>
    </CheatEntry>
  </CheatEntries>
</CheatTable>
Not sure if I am doing something wrong but the x1 multiplier doesn't seem to work, I mean I am not able to go back to standard speed. You can switch from x5 to x2 or any other and it works perfectly but if you switch back to x1 it will stay with the same speed of the last multiplier you had.

Re: Final fantasy VII Ever Crisis

Posted: Wed Apr 10, 2024 3:13 am
by Xer0Daze
Bigjoe91 wrote:
Wed Apr 10, 2024 1:54 am
Cissa90 wrote:
Tue Apr 09, 2024 2:57 pm
New cheat, Game Speed Multiplier.
Contains x1 to x5.

Copy its contents directly into Cheat Engine.

Code: Select all

<?xml version="1.0" encoding="utf-8"?>
<CheatTable>
  <CheatEntries>
    <CheatEntry>
      <ID>293</ID>
      <Description>"Game Speed Multiplier"</Description>
      <LastState Activated="1"/>
      <VariableType>Auto Assembler Script</VariableType>
      <AssemblerScript>[ENABLE]

aobscanmodule(GameSpeed,UnityPlayer.dll,F3 0F 10 99 FC 00 00 00) // should be unique
alloc(newmem,$1000,GameSpeed)
label(code)
label(return)
alloc(SpeedGame,4)
registersymbol(SpeedGame)
label(Speed2)
label(Speed3)
label(Speed4)
label(Speed5)

SpeedGame:
dd (float)1

newmem:
cmp [SpeedGame],(float)1
je code
cmp [SpeedGame],(float)2
je Speed2
cmp [SpeedGame],(float)3
je Speed3
cmp [SpeedGame],(float)4
je Speed4
cmp [SpeedGame],(float)5
je Speed5

Speed2:
mov [rcx+000000FC],(float)2
jmp code

Speed3:
mov [rcx+000000FC],(float)3
jmp code

Speed4:
mov [rcx+000000FC],(float)4
jmp code

Speed5:
mov [rcx+000000FC],(float)5
jmp code

code:
  movss xmm3,[rcx+000000FC]
  jmp return

GameSpeed:
  jmp newmem
  nop 3
return:
registersymbol(GameSpeed)

[DISABLE]

GameSpeed:
  db F3 0F 10 99 FC 00 00 00

unregistersymbol(GameSpeed)
dealloc(newmem)

{
// ORIGINAL CODE - INJECTION POINT: UnityPlayer.dll+45F2C0

UnityPlayer.dll+45F290: 80 B9 C0 00 00 00 00     - cmp byte ptr [rcx+000000C0],00
UnityPlayer.dll+45F297: 74 1B                    - je UnityPlayer.dll+45F2B4
UnityPlayer.dll+45F299: 0F 28 74 24 20           - movaps xmm6,[rsp+20]
UnityPlayer.dll+45F29E: 0F 28 7C 24 10           - movaps xmm7,[rsp+10]
UnityPlayer.dll+45F2A3: C6 81 C0 00 00 00 00     - mov byte ptr [rcx+000000C0],00
UnityPlayer.dll+45F2AA: 44 0F 28 04 24           - movaps xmm8,[rsp]
UnityPlayer.dll+45F2AF: 48 83 C4 38              - add rsp,38
UnityPlayer.dll+45F2B3: C3                       - ret 
UnityPlayer.dll+45F2B4: 80 B9 C1 00 00 00 00     - cmp byte ptr [rcx+000000C1],00
UnityPlayer.dll+45F2BB: F2 0F 10 61 60           - movsd xmm4,[rcx+60]
// ---------- INJECTING HERE ----------
UnityPlayer.dll+45F2C0: F3 0F 10 99 FC 00 00 00  - movss xmm3,[rcx+000000FC]
// ---------- DONE INJECTING  ----------
UnityPlayer.dll+45F2C8: 74 0D                    - je UnityPlayer.dll+45F2D7
UnityPlayer.dll+45F2CA: F3 0F 59 1D 62 A1 2C 01  - mulss xmm3,[UnityPlayer.dll+1729434]
UnityPlayer.dll+45F2D2: 0F 5A D3                 - cvtps2pd xmm2,xmm3
UnityPlayer.dll+45F2D5: EB 61                    - jmp UnityPlayer.dll+45F338
UnityPlayer.dll+45F2D7: F3 0F 10 89 00 01 00 00  - movss xmm1,[rcx+00000100]
UnityPlayer.dll+45F2DF: 0F 28 EA                 - movaps xmm5,xmm2
UnityPlayer.dll+45F2E2: 0F 5A C1                 - cvtps2pd xmm0,xmm1
UnityPlayer.dll+45F2E5: F2 0F 5C EC              - subsd xmm5,xmm4
UnityPlayer.dll+45F2E9: 66 0F 2F E8              - comisd xmm5,xmm0
UnityPlayer.dll+45F2ED: 76 09                    - jna UnityPlayer.dll+45F2F8
}
</AssemblerScript>
      <CheatEntries>
        <CheatEntry>
          <ID>294</ID>
          <Description>"Multiplier"</Description>
          <DropDownList ReadOnly="1" DescriptionOnly="1" DisplayValueAsItem="1">1:x1
2:x2
3:x3
4:x4
5:x5
</DropDownList>
          <LastState Value="3" RealAddress="7FFF0C781000"/>
          <ShowAsSigned>0</ShowAsSigned>
          <VariableType>Float</VariableType>
          <Address>SpeedGame</Address>
        </CheatEntry>
      </CheatEntries>
    </CheatEntry>
  </CheatEntries>
</CheatTable>
Not sure if I am doing something wrong but the x1 multiplier doesn't seem to work, I mean I am not able to go back to standard speed. You can switch from x5 to x2 or any other and it works perfectly but if you switch back to x1 it will stay with the same speed of the last multiplier you had.
I'm not the best at this by any means but I added the Speed1 to the existing script with this and now it let's me set it back to x1 speed if you want to use it until OP responds:

Code: Select all

[ENABLE]

aobscanmodule(GameSpeed,UnityPlayer.dll,F3 0F 10 99 FC 00 00 00) // should be unique
alloc(newmem,$1000,GameSpeed)
label(code)
label(return)
alloc(SpeedGame,4)
registersymbol(SpeedGame)
label(Speed1)
label(Speed2)
label(Speed3)
label(Speed4)
label(Speed5)

SpeedGame:
dd (float)1

newmem:
cmp [SpeedGame],(float)1
je Speed1
cmp [SpeedGame],(float)2
je Speed2
cmp [SpeedGame],(float)3
je Speed3
cmp [SpeedGame],(float)4
je Speed4
cmp [SpeedGame],(float)5
je Speed5

Speed1:
mov [rcx+000000FC],(float)1
jmp code

Speed2:
mov [rcx+000000FC],(float)2
jmp code

Speed3:
mov [rcx+000000FC],(float)3
jmp code

Speed4:
mov [rcx+000000FC],(float)4
jmp code

Speed5:
mov [rcx+000000FC],(float)5
jmp code

code:
  movss xmm3,[rcx+000000FC]
  jmp return

GameSpeed:
  jmp newmem
  nop 3
return:
registersymbol(GameSpeed)

[DISABLE]

GameSpeed:
  db F3 0F 10 99 FC 00 00 00

unregistersymbol(GameSpeed)
dealloc(newmem)

{
// ORIGINAL CODE - INJECTION POINT: UnityPlayer.dll+45F2C0

UnityPlayer.dll+45F290: 80 B9 C0 00 00 00 00     - cmp byte ptr [rcx+000000C0],00
UnityPlayer.dll+45F297: 74 1B                    - je UnityPlayer.dll+45F2B4
UnityPlayer.dll+45F299: 0F 28 74 24 20           - movaps xmm6,[rsp+20]
UnityPlayer.dll+45F29E: 0F 28 7C 24 10           - movaps xmm7,[rsp+10]
UnityPlayer.dll+45F2A3: C6 81 C0 00 00 00 00     - mov byte ptr [rcx+000000C0],00
UnityPlayer.dll+45F2AA: 44 0F 28 04 24           - movaps xmm8,[rsp]
UnityPlayer.dll+45F2AF: 48 83 C4 38              - add rsp,38
UnityPlayer.dll+45F2B3: C3                       - ret 
UnityPlayer.dll+45F2B4: 80 B9 C1 00 00 00 00     - cmp byte ptr [rcx+000000C1],00
UnityPlayer.dll+45F2BB: F2 0F 10 61 60           - movsd xmm4,[rcx+60]
// ---------- INJECTING HERE ----------
UnityPlayer.dll+45F2C0: F3 0F 10 99 FC 00 00 00  - movss xmm3,[rcx+000000FC]
// ---------- DONE INJECTING  ----------
UnityPlayer.dll+45F2C8: 74 0D                    - je UnityPlayer.dll+45F2D7
UnityPlayer.dll+45F2CA: F3 0F 59 1D 62 A1 2C 01  - mulss xmm3,[UnityPlayer.dll+1729434]
UnityPlayer.dll+45F2D2: 0F 5A D3                 - cvtps2pd xmm2,xmm3
UnityPlayer.dll+45F2D5: EB 61                    - jmp UnityPlayer.dll+45F338
UnityPlayer.dll+45F2D7: F3 0F 10 89 00 01 00 00  - movss xmm1,[rcx+00000100]
UnityPlayer.dll+45F2DF: 0F 28 EA                 - movaps xmm5,xmm2
UnityPlayer.dll+45F2E2: 0F 5A C1                 - cvtps2pd xmm0,xmm1
UnityPlayer.dll+45F2E5: F2 0F 5C EC              - subsd xmm5,xmm4
UnityPlayer.dll+45F2E9: 66 0F 2F E8              - comisd xmm5,xmm0
UnityPlayer.dll+45F2ED: 76 09                    - jna UnityPlayer.dll+45F2F8
}

Re: Final fantasy VII Ever Crisis

Posted: Wed Apr 10, 2024 8:58 am
by Cissa90
Xer0Daze wrote:
Wed Apr 10, 2024 3:13 am
Bigjoe91 wrote:
Wed Apr 10, 2024 1:54 am
Cissa90 wrote:
Tue Apr 09, 2024 2:57 pm
New cheat, Game Speed Multiplier.
Good work! Missed that one, my bad.

Re: Final fantasy VII Ever Crisis

Posted: Wed Apr 10, 2024 8:59 am
by Cissa90
Xer0Daze wrote:
Wed Apr 10, 2024 3:13 am
t
Good work! Missed that one, my bad.

Re: Final fantasy VII Ever Crisis

Posted: Wed Apr 10, 2024 1:45 pm
by Bigjoe91
Xer0Daze wrote:
Wed Apr 10, 2024 3:13 am
Bigjoe91 wrote:
Wed Apr 10, 2024 1:54 am
Cissa90 wrote:
Tue Apr 09, 2024 2:57 pm
New cheat, Game Speed Multiplier.
Contains x1 to x5.

Copy its contents directly into Cheat Engine.

Code: Select all

<?xml version="1.0" encoding="utf-8"?>
<CheatTable>
  <CheatEntries>
    <CheatEntry>
      <ID>293</ID>
      <Description>"Game Speed Multiplier"</Description>
      <LastState Activated="1"/>
      <VariableType>Auto Assembler Script</VariableType>
      <AssemblerScript>[ENABLE]

aobscanmodule(GameSpeed,UnityPlayer.dll,F3 0F 10 99 FC 00 00 00) // should be unique
alloc(newmem,$1000,GameSpeed)
label(code)
label(return)
alloc(SpeedGame,4)
registersymbol(SpeedGame)
label(Speed2)
label(Speed3)
label(Speed4)
label(Speed5)

SpeedGame:
dd (float)1

newmem:
cmp [SpeedGame],(float)1
je code
cmp [SpeedGame],(float)2
je Speed2
cmp [SpeedGame],(float)3
je Speed3
cmp [SpeedGame],(float)4
je Speed4
cmp [SpeedGame],(float)5
je Speed5

Speed2:
mov [rcx+000000FC],(float)2
jmp code

Speed3:
mov [rcx+000000FC],(float)3
jmp code

Speed4:
mov [rcx+000000FC],(float)4
jmp code

Speed5:
mov [rcx+000000FC],(float)5
jmp code

code:
  movss xmm3,[rcx+000000FC]
  jmp return

GameSpeed:
  jmp newmem
  nop 3
return:
registersymbol(GameSpeed)

[DISABLE]

GameSpeed:
  db F3 0F 10 99 FC 00 00 00

unregistersymbol(GameSpeed)
dealloc(newmem)

{
// ORIGINAL CODE - INJECTION POINT: UnityPlayer.dll+45F2C0

UnityPlayer.dll+45F290: 80 B9 C0 00 00 00 00     - cmp byte ptr [rcx+000000C0],00
UnityPlayer.dll+45F297: 74 1B                    - je UnityPlayer.dll+45F2B4
UnityPlayer.dll+45F299: 0F 28 74 24 20           - movaps xmm6,[rsp+20]
UnityPlayer.dll+45F29E: 0F 28 7C 24 10           - movaps xmm7,[rsp+10]
UnityPlayer.dll+45F2A3: C6 81 C0 00 00 00 00     - mov byte ptr [rcx+000000C0],00
UnityPlayer.dll+45F2AA: 44 0F 28 04 24           - movaps xmm8,[rsp]
UnityPlayer.dll+45F2AF: 48 83 C4 38              - add rsp,38
UnityPlayer.dll+45F2B3: C3                       - ret 
UnityPlayer.dll+45F2B4: 80 B9 C1 00 00 00 00     - cmp byte ptr [rcx+000000C1],00
UnityPlayer.dll+45F2BB: F2 0F 10 61 60           - movsd xmm4,[rcx+60]
// ---------- INJECTING HERE ----------
UnityPlayer.dll+45F2C0: F3 0F 10 99 FC 00 00 00  - movss xmm3,[rcx+000000FC]
// ---------- DONE INJECTING  ----------
UnityPlayer.dll+45F2C8: 74 0D                    - je UnityPlayer.dll+45F2D7
UnityPlayer.dll+45F2CA: F3 0F 59 1D 62 A1 2C 01  - mulss xmm3,[UnityPlayer.dll+1729434]
UnityPlayer.dll+45F2D2: 0F 5A D3                 - cvtps2pd xmm2,xmm3
UnityPlayer.dll+45F2D5: EB 61                    - jmp UnityPlayer.dll+45F338
UnityPlayer.dll+45F2D7: F3 0F 10 89 00 01 00 00  - movss xmm1,[rcx+00000100]
UnityPlayer.dll+45F2DF: 0F 28 EA                 - movaps xmm5,xmm2
UnityPlayer.dll+45F2E2: 0F 5A C1                 - cvtps2pd xmm0,xmm1
UnityPlayer.dll+45F2E5: F2 0F 5C EC              - subsd xmm5,xmm4
UnityPlayer.dll+45F2E9: 66 0F 2F E8              - comisd xmm5,xmm0
UnityPlayer.dll+45F2ED: 76 09                    - jna UnityPlayer.dll+45F2F8
}
</AssemblerScript>
      <CheatEntries>
        <CheatEntry>
          <ID>294</ID>
          <Description>"Multiplier"</Description>
          <DropDownList ReadOnly="1" DescriptionOnly="1" DisplayValueAsItem="1">1:x1
2:x2
3:x3
4:x4
5:x5
</DropDownList>
          <LastState Value="3" RealAddress="7FFF0C781000"/>
          <ShowAsSigned>0</ShowAsSigned>
          <VariableType>Float</VariableType>
          <Address>SpeedGame</Address>
        </CheatEntry>
      </CheatEntries>
    </CheatEntry>
  </CheatEntries>
</CheatTable>
Not sure if I am doing something wrong but the x1 multiplier doesn't seem to work, I mean I am not able to go back to standard speed. You can switch from x5 to x2 or any other and it works perfectly but if you switch back to x1 it will stay with the same speed of the last multiplier you had.
I'm not the best at this by any means but I added the Speed1 to the existing script with this and now it let's me set it back to x1 speed if you want to use it until OP responds:

Code: Select all

[ENABLE]

aobscanmodule(GameSpeed,UnityPlayer.dll,F3 0F 10 99 FC 00 00 00) // should be unique
alloc(newmem,$1000,GameSpeed)
label(code)
label(return)
alloc(SpeedGame,4)
registersymbol(SpeedGame)
label(Speed1)
label(Speed2)
label(Speed3)
label(Speed4)
label(Speed5)

SpeedGame:
dd (float)1

newmem:
cmp [SpeedGame],(float)1
je Speed1
cmp [SpeedGame],(float)2
je Speed2
cmp [SpeedGame],(float)3
je Speed3
cmp [SpeedGame],(float)4
je Speed4
cmp [SpeedGame],(float)5
je Speed5

Speed1:
mov [rcx+000000FC],(float)1
jmp code

Speed2:
mov [rcx+000000FC],(float)2
jmp code

Speed3:
mov [rcx+000000FC],(float)3
jmp code

Speed4:
mov [rcx+000000FC],(float)4
jmp code

Speed5:
mov [rcx+000000FC],(float)5
jmp code

code:
  movss xmm3,[rcx+000000FC]
  jmp return

GameSpeed:
  jmp newmem
  nop 3
return:
registersymbol(GameSpeed)

[DISABLE]

GameSpeed:
  db F3 0F 10 99 FC 00 00 00

unregistersymbol(GameSpeed)
dealloc(newmem)

{
// ORIGINAL CODE - INJECTION POINT: UnityPlayer.dll+45F2C0

UnityPlayer.dll+45F290: 80 B9 C0 00 00 00 00     - cmp byte ptr [rcx+000000C0],00
UnityPlayer.dll+45F297: 74 1B                    - je UnityPlayer.dll+45F2B4
UnityPlayer.dll+45F299: 0F 28 74 24 20           - movaps xmm6,[rsp+20]
UnityPlayer.dll+45F29E: 0F 28 7C 24 10           - movaps xmm7,[rsp+10]
UnityPlayer.dll+45F2A3: C6 81 C0 00 00 00 00     - mov byte ptr [rcx+000000C0],00
UnityPlayer.dll+45F2AA: 44 0F 28 04 24           - movaps xmm8,[rsp]
UnityPlayer.dll+45F2AF: 48 83 C4 38              - add rsp,38
UnityPlayer.dll+45F2B3: C3                       - ret 
UnityPlayer.dll+45F2B4: 80 B9 C1 00 00 00 00     - cmp byte ptr [rcx+000000C1],00
UnityPlayer.dll+45F2BB: F2 0F 10 61 60           - movsd xmm4,[rcx+60]
// ---------- INJECTING HERE ----------
UnityPlayer.dll+45F2C0: F3 0F 10 99 FC 00 00 00  - movss xmm3,[rcx+000000FC]
// ---------- DONE INJECTING  ----------
UnityPlayer.dll+45F2C8: 74 0D                    - je UnityPlayer.dll+45F2D7
UnityPlayer.dll+45F2CA: F3 0F 59 1D 62 A1 2C 01  - mulss xmm3,[UnityPlayer.dll+1729434]
UnityPlayer.dll+45F2D2: 0F 5A D3                 - cvtps2pd xmm2,xmm3
UnityPlayer.dll+45F2D5: EB 61                    - jmp UnityPlayer.dll+45F338
UnityPlayer.dll+45F2D7: F3 0F 10 89 00 01 00 00  - movss xmm1,[rcx+00000100]
UnityPlayer.dll+45F2DF: 0F 28 EA                 - movaps xmm5,xmm2
UnityPlayer.dll+45F2E2: 0F 5A C1                 - cvtps2pd xmm0,xmm1
UnityPlayer.dll+45F2E5: F2 0F 5C EC              - subsd xmm5,xmm4
UnityPlayer.dll+45F2E9: 66 0F 2F E8              - comisd xmm5,xmm0
UnityPlayer.dll+45F2ED: 76 09                    - jna UnityPlayer.dll+45F2F8
}
Thanks, it works for me as well now :D

Re: Final fantasy VII Ever Crisis

Posted: Thu Apr 11, 2024 2:54 am
by Fodera
Bigjoe91 wrote:
Wed Apr 10, 2024 1:45 pm
Xer0Daze wrote:
Wed Apr 10, 2024 3:13 am
Bigjoe91 wrote:
Wed Apr 10, 2024 1:54 am
Not sure if I am doing something wrong but the x1 multiplier doesn't seem to work, I mean I am not able to go back to standard speed. You can switch from x5 to x2 or any other and it works perfectly but if you switch back to x1 it will stay with the same speed of the last multiplier you had.
I'm not the best at this by any means but I added the Speed1 to the existing script with this and now it let's me set it back to x1 speed if you want to use it until OP responds:

Code: Select all

[ENABLE]

aobscanmodule(GameSpeed,UnityPlayer.dll,F3 0F 10 99 FC 00 00 00) // should be unique
alloc(newmem,$1000,GameSpeed)
label(code)
label(return)
alloc(SpeedGame,4)
registersymbol(SpeedGame)
label(Speed1)
label(Speed2)
label(Speed3)
label(Speed4)
label(Speed5)

SpeedGame:
dd (float)1

newmem:
cmp [SpeedGame],(float)1
je Speed1
cmp [SpeedGame],(float)2
je Speed2
cmp [SpeedGame],(float)3
je Speed3
cmp [SpeedGame],(float)4
je Speed4
cmp [SpeedGame],(float)5
je Speed5

Speed1:
mov [rcx+000000FC],(float)1
jmp code

Speed2:
mov [rcx+000000FC],(float)2
jmp code

Speed3:
mov [rcx+000000FC],(float)3
jmp code

Speed4:
mov [rcx+000000FC],(float)4
jmp code

Speed5:
mov [rcx+000000FC],(float)5
jmp code

code:
 movss xmm3,[rcx+000000FC]
 jmp return

GameSpeed:
 jmp newmem
 nop 3
return:
registersymbol(GameSpeed)

[DISABLE]

GameSpeed:
 db F3 0F 10 99 FC 00 00 00

unregistersymbol(GameSpeed)
dealloc(newmem)

{
// ORIGINAL CODE - INJECTION POINT: UnityPlayer.dll+45F2C0

UnityPlayer.dll+45F290: 80 B9 C0 00 00 00 00 - cmp byte ptr [rcx+000000C0],00
UnityPlayer.dll+45F297: 74 1B - je UnityPlayer.dll+45F2B4
UnityPlayer.dll+45F299: 0F 28 74 24 20 - movaps xmm6,[rsp+20]
UnityPlayer.dll+45F29E: 0F 28 7C 24 10 - movaps xmm7,[rsp+10]
UnityPlayer.dll+45F2A3: C6 81 C0 00 00 00 00 - mov byte ptr [rcx+000000C0],00
UnityPlayer.dll+45F2AA: 44 0F 28 04 24 - movaps xmm8,[rsp]
UnityPlayer.dll+45F2AF: 48 83 C4 38 - add rsp,38
UnityPlayer.dll+45F2B3: C3 - ret 
UnityPlayer.dll+45F2B4: 80 B9 C1 00 00 00 00 - cmp byte ptr [rcx+000000C1],00
UnityPlayer.dll+45F2BB: F2 0F 10 61 60 - movsd xmm4,[rcx+60]
// ---------- INJECTING HERE ----------
UnityPlayer.dll+45F2C0: F3 0F 10 99 FC 00 00 00 - movss xmm3,[rcx+000000FC]
// ---------- DONE INJECTING ----------
UnityPlayer.dll+45F2C8: 74 0D - je UnityPlayer.dll+45F2D7
UnityPlayer.dll+45F2CA: F3 0F 59 1D 62 A1 2C 01 - mulss xmm3,[UnityPlayer.dll+1729434]
UnityPlayer.dll+45F2D2: 0F 5A D3 - cvtps2pd xmm2,xmm3
UnityPlayer.dll+45F2D5: EB 61 - jmp UnityPlayer.dll+45F338
UnityPlayer.dll+45F2D7: F3 0F 10 89 00 01 00 00 - movss xmm1,[rcx+00000100]
UnityPlayer.dll+45F2DF: 0F 28 EA - movaps xmm5,xmm2
UnityPlayer.dll+45F2E2: 0F 5A C1 - cvtps2pd xmm0,xmm1
UnityPlayer.dll+45F2E5: F2 0F 5C EC - subsd xmm5,xmm4
UnityPlayer.dll+45F2E9: 66 0F 2F E8 - comisd xmm5,xmm0
UnityPlayer.dll+45F2ED: 76 09 - jna UnityPlayer.dll+45F2F8
}
Thanks, it works for me as well now :D

Re: Final fantasy VII Ever Crisis

Posted: Thu Apr 11, 2024 3:18 am
by Fodera
Hi sir.. how to input this game multiplier speed CE..?

Re: Final fantasy VII Ever Crisis

Posted: Thu Apr 11, 2024 9:23 am
by Cissa90
Fodera wrote:
Thu Apr 11, 2024 3:18 am
Hi sir.. how to input this game multiplier speed CE..?
Copy all in this section, and just ctrl+v into cheat engine window, it will add it.

Code: Select all

<?xml version="1.0" encoding="utf-8"?>
<CheatTable>
  <CheatEntries>
    <CheatEntry>
      <ID>293</ID>
      <Description>"Game Speed Multiplier"</Description>
      <LastState Activated="1"/>
      <VariableType>Auto Assembler Script</VariableType>
      <AssemblerScript>[ENABLE]

aobscanmodule(GameSpeed,UnityPlayer.dll,F3 0F 10 99 FC 00 00 00) // should be unique
alloc(newmem,$1000,GameSpeed)
label(code)
label(return)
alloc(SpeedGame,4)
registersymbol(SpeedGame)
label(Speed1)
label(Speed2)
label(Speed3)
label(Speed4)
label(Speed5)

SpeedGame:
dd (float)1

newmem:
cmp [SpeedGame],(float)1
je Speed1
cmp [SpeedGame],(float)2
je Speed2
cmp [SpeedGame],(float)3
je Speed3
cmp [SpeedGame],(float)4
je Speed4
cmp [SpeedGame],(float)5
je Speed5

Speed1:
mov [rcx+000000FC],(float)1
jmp code

Speed2:
mov [rcx+000000FC],(float)2
jmp code

Speed3:
mov [rcx+000000FC],(float)3
jmp code

Speed4:
mov [rcx+000000FC],(float)4
jmp code

Speed5:
mov [rcx+000000FC],(float)5
jmp code

code:
  movss xmm3,[rcx+000000FC]
  jmp return

GameSpeed:
  jmp newmem
  nop 3
return:
registersymbol(GameSpeed)

[DISABLE]

GameSpeed:
  db F3 0F 10 99 FC 00 00 00

unregistersymbol(GameSpeed)
dealloc(newmem)

{
// ORIGINAL CODE - INJECTION POINT: UnityPlayer.dll+45F2C0

UnityPlayer.dll+45F290: 80 B9 C0 00 00 00 00     - cmp byte ptr [rcx+000000C0],00
UnityPlayer.dll+45F297: 74 1B                    - je UnityPlayer.dll+45F2B4
UnityPlayer.dll+45F299: 0F 28 74 24 20           - movaps xmm6,[rsp+20]
UnityPlayer.dll+45F29E: 0F 28 7C 24 10           - movaps xmm7,[rsp+10]
UnityPlayer.dll+45F2A3: C6 81 C0 00 00 00 00     - mov byte ptr [rcx+000000C0],00
UnityPlayer.dll+45F2AA: 44 0F 28 04 24           - movaps xmm8,[rsp]
UnityPlayer.dll+45F2AF: 48 83 C4 38              - add rsp,38
UnityPlayer.dll+45F2B3: C3                       - ret 
UnityPlayer.dll+45F2B4: 80 B9 C1 00 00 00 00     - cmp byte ptr [rcx+000000C1],00
UnityPlayer.dll+45F2BB: F2 0F 10 61 60           - movsd xmm4,[rcx+60]
// ---------- INJECTING HERE ----------
UnityPlayer.dll+45F2C0: F3 0F 10 99 FC 00 00 00  - movss xmm3,[rcx+000000FC]
// ---------- DONE INJECTING  ----------
UnityPlayer.dll+45F2C8: 74 0D                    - je UnityPlayer.dll+45F2D7
UnityPlayer.dll+45F2CA: F3 0F 59 1D 62 A1 2C 01  - mulss xmm3,[UnityPlayer.dll+1729434]
UnityPlayer.dll+45F2D2: 0F 5A D3                 - cvtps2pd xmm2,xmm3
UnityPlayer.dll+45F2D5: EB 61                    - jmp UnityPlayer.dll+45F338
UnityPlayer.dll+45F2D7: F3 0F 10 89 00 01 00 00  - movss xmm1,[rcx+00000100]
UnityPlayer.dll+45F2DF: 0F 28 EA                 - movaps xmm5,xmm2
UnityPlayer.dll+45F2E2: 0F 5A C1                 - cvtps2pd xmm0,xmm1
UnityPlayer.dll+45F2E5: F2 0F 5C EC              - subsd xmm5,xmm4
UnityPlayer.dll+45F2E9: 66 0F 2F E8              - comisd xmm5,xmm0
UnityPlayer.dll+45F2ED: 76 09                    - jna UnityPlayer.dll+45F2F8
}
</AssemblerScript>
      <CheatEntries>
        <CheatEntry>
          <ID>294</ID>
          <Description>"Multiplier"</Description>
          <DropDownList ReadOnly="1" DescriptionOnly="1" DisplayValueAsItem="1">1:x1
2:x2
3:x3
4:x4
5:x5
</DropDownList>
          <LastState Value="3" RealAddress="7FFF0C781000"/>
          <ShowAsSigned>0</ShowAsSigned>
          <VariableType>Float</VariableType>
          <Address>SpeedGame</Address>
        </CheatEntry>
      </CheatEntries>
    </CheatEntry>
  </CheatEntries>
</CheatTable>

Re: Final fantasy VII Ever Crisis

Posted: Sun Apr 14, 2024 4:11 am
by r3v
did you tried to apply or see any values to change about money, elements, etc? just curious

Re: Final fantasy VII Ever Crisis

Posted: Sun Apr 14, 2024 6:12 am
by BabyGroot
hmmm engine unity

Re: Final fantasy VII Ever Crisis

Posted: Mon Apr 15, 2024 3:52 am
by powerzx
r3v wrote:
Sun Apr 14, 2024 4:11 am
did you tried to apply or see any values to change about money, elements, etc? just curious
All money (Gil, red crystal, blue crystal, event currency, chocobo medals) are on ''server side'' (you can't change anything). Cheats with Elements (like fire, ice, wind, etc.) buffs and debuffs (for player and enemies) should be possible.

Re: Final fantasy VII Ever Crisis

Posted: Wed Apr 17, 2024 6:29 am
by ublang
1 hit kill
No Damage Taken Score
Weakness Exploited High Number

stop working today sir

Re: Final fantasy VII Ever Crisis

Posted: Wed Apr 17, 2024 7:02 am
by Revolver
Updated and added Cissa's speedhack.

I found a few addresses that work with Weakness Damage Output Score, but it didn't seem like they affected dungeon score so I left the script as is for now.

Re: Final fantasy VII Ever Crisis

Posted: Wed Apr 17, 2024 7:09 am
by ublang
Revolver wrote:
Wed Apr 17, 2024 7:02 am
Updated and added Cissa's speedhack.

I found a few addresses that work with Weakness Damage Output Score, but it didn't seem like they affected dungeon score so I left the script as is for now.
Thanks you sir

Re: Final fantasy VII Ever Crisis

Posted: Wed Apr 17, 2024 7:33 am
by Cissa90
Btw,
I've changed the 1 hit kill script again, so it uses Mono to find values. Should make it more simple to have it not crash or not be found on updates:

Code: Select all

{$lua}
LaunchMonoDataCollector()
{$asm}
[ENABLE]

aobscanregion(DamageOutput,Command.Battle.CharacterParameterModel.CalcReduceHp+0,Command.Battle.CharacterParameterModel.CalcReduceHp+70,80 3D * * * * 00 8? 7? 10) // should be unique
alloc(newmem,$1000,DamageOutput)

label(code)
label(return)

alloc(storeDO,10)
registersymbol(storeDO)
storeDO:
Readmem(DamageOutput,10)

newmem:
mov [rdi+10],(int)1

code:
  Readmem(DamageOutput,7)//  cmp byte ptr [GameAssembly.dll+71C7295],00
  mov edi,[rdi+10]
  jmp return

DamageOutput:
  jmp newmem
  nop 5
return:
registersymbol(DamageOutput)

[DISABLE]

DamageOutput:
readmem(storeDO,10)

unregistersymbol(DamageOutput)
dealloc(newmem)

{
// ORIGINAL CODE - INJECTION POINT: GameAssembly.dll+CEFC27

GameAssembly.dll+CEFBFE: E8 0D 68 89 FF        - call GameAssembly.dll+586410
GameAssembly.dll+CEFC03: C6 05 89 76 4D 06 01  - mov byte ptr [GameAssembly.dll+71C7293],01
GameAssembly.dll+CEFC0A: 80 BB 10 01 00 00 00  - cmp byte ptr [rbx+00000110],00
GameAssembly.dll+CEFC11: 48 89 7C 24 40        - mov [rsp+40],rdi
GameAssembly.dll+CEFC16: 74 06                 - je GameAssembly.dll+CEFC1E
GameAssembly.dll+CEFC18: 48 8B 7B 48           - mov rdi,[rbx+48]
GameAssembly.dll+CEFC1C: EB 04                 - jmp GameAssembly.dll+CEFC22
GameAssembly.dll+CEFC1E: 48 8B 7B 38           - mov rdi,[rbx+38]
GameAssembly.dll+CEFC22: 48 85 FF              - test rdi,rdi
GameAssembly.dll+CEFC25: 74 6A                 - je GameAssembly.dll+CEFC91
// ---------- INJECTING HERE ----------
GameAssembly.dll+CEFC27: 80 3D 67 76 4D 06 00  - cmp byte ptr [GameAssembly.dll+71C7295],00
// ---------- DONE INJECTING  ----------
DamageOutput: 8B 7F 10              - mov edi,[rdi+10]
GameAssembly.dll+CEFC31: 75 13                 - jne GameAssembly.dll+CEFC46
GameAssembly.dll+CEFC33: 48 8D 0D 6E 4D 0E 06  - lea rcx,[GameAssembly.dll+6DD49A8]
GameAssembly.dll+CEFC3A: E8 D1 67 89 FF        - call GameAssembly.dll+586410
GameAssembly.dll+CEFC3F: C6 05 4F 76 4D 06 01  - mov byte ptr [GameAssembly.dll+71C7295],01
GameAssembly.dll+CEFC46: 80 BB 10 01 00 00 00  - cmp byte ptr [rbx+00000110],00
GameAssembly.dll+CEFC4D: 74 06                 - je GameAssembly.dll+CEFC55
GameAssembly.dll+CEFC4F: 48 8B 43 50           - mov rax,[rbx+50]
GameAssembly.dll+CEFC53: EB 04                 - jmp GameAssembly.dll+CEFC59
GameAssembly.dll+CEFC55: 48 8B 43 40           - mov rax,[rbx+40]