<?xml version="1.0" encoding="utf-8"?>
<CheatTable CheatEngineTableVersion="46">
  <CheatEntries>
    <CheatEntry>
      <ID>97</ID>
      <Description>"Sonic Forces"</Description>
      <Options moHideChildren="1" moActivateChildrenAsWell="1" moDeactivateChildrenAsWell="1"/>
      <Color>C08000</Color>
      <VariableType>Auto Assembler Script</VariableType>
      <AssemblerScript>[ENABLE]

aobscanmodule(One,Sonic Forces.exe,8B 40 1C 89 83 90 01 00 00)
aobscanmodule(Two,Sonic Forces.exe,8B 58 60 E8 47 40 5A 00)

alloc(newmemOne,$1000,One)
alloc(newmemTwo,$1000,Two)
alloc(Three,8)
alloc(Four,8)

registersymbol(One)
registersymbol(Two)
registersymbol(Three)
registersymbol(Four)

label(codeOne)
label(codeTwo)
label(returnOne)
label(returnTwo)

Three:
  dq 0

Four:
  dq 0

newmemOne:

codeOne:
  mov [Three],rax
  mov eax,[rax+1C]
  mov [rbx+00000190],eax
  jmp returnOne

One:
  jmp newmemOne
  nop 4

returnOne:

newmemTwo:

codeTwo:
  mov [Four],rax
  mov ebx,[rax+60]
  call "Sonic Forces.exe"+71CEA0
  jmp returnTwo

Two:
  jmp newmemTwo
  nop 3

returnTwo:

[DISABLE]

One:
  db 8B 40 1C 89 83 90 01 00 00

Two:
  db 8B 58 60 E8 47 40 5A 00

unregistersymbol(One)
unregistersymbol(Two)
unregistersymbol(Three)
unregistersymbol(Four)

dealloc(newmemOne)
dealloc(newmemTwo)
dealloc(Three)
dealloc(Four)
</AssemblerScript>
      <CheatEntries>
        <CheatEntry>
          <ID>98</ID>
          <Description>"==== General ===="</Description>
          <Options moHideChildren="1" moDeactivateChildrenAsWell="1"/>
          <Color>C080FF</Color>
          <GroupHeader>1</GroupHeader>
          <CheatEntries>
            <CheatEntry>
              <ID>4</ID>
              <Description>"Freeze Time"</Description>
              <Color>C08000</Color>
              <VariableType>Auto Assembler Script</VariableType>
              <AssemblerScript>[ENABLE]

aobscanmodule(Five,Sonic Forces.exe,F3 0F 11 49 2C A8)
registersymbol(Five)

Five:
  db 90 90 90 90 90

[DISABLE]

Five:
  db F3 0F 11 49 2C

unregistersymbol(Five)
</AssemblerScript>
            </CheatEntry>
            <CheatEntry>
              <ID>10</ID>
              <Description>"Keep Rings"</Description>
              <Color>C08000</Color>
              <VariableType>Auto Assembler Script</VariableType>
              <AssemblerScript>[ENABLE]

aobscanmodule(Six,Sonic Forces.exe,41 89 40 1C E8 4B 5C 00 00)
registersymbol(Six)

Six:
  db 90 90 90 90

[DISABLE]

Six:
  db 41 89 40 1C

unregistersymbol(Six)
</AssemblerScript>
            </CheatEntry>
            <CheatEntry>
              <ID>94</ID>
              <Description>"Infinite Boost"</Description>
              <Color>C08000</Color>
              <VariableType>Auto Assembler Script</VariableType>
              <AssemblerScript>[ENABLE]

aobscanmodule(Seven,Sonic Forces.exe,F3 0F 10 44 81 18)
alloc(newmem,$1000,Seven)

label(code)
label(return)
label(Eight)

newmem:

code:
  mov ebx,dword ptr [Eight]
  movd xmm1,ebx
  movss dword ptr [rcx+rax*4+18],xmm1
  movss xmm0,[rcx+rax*4+18]
  jmp return

Eight:
  dd (float)120

Seven:
  jmp newmem
  nop

return:
registersymbol(Seven)

[DISABLE]

Seven:
  db F3 0F 10 44 81 18

unregistersymbol(Seven)
dealloc(newmem)
</AssemblerScript>
            </CheatEntry>
            <CheatEntry>
              <ID>41</ID>
              <Description>"Infinite Wispon"</Description>
              <Color>C08000</Color>
              <VariableType>Auto Assembler Script</VariableType>
              <AssemblerScript>[ENABLE]

aobscanmodule(Nine,Sonic Forces.exe,F3 0F 11 77 5C)
registersymbol(Nine)

Nine:
  db 90 90 90 90 90

[DISABLE]

Nine:
  db F3 0F 11 77 5C

unregistersymbol(Nine)
</AssemblerScript>
            </CheatEntry>
            <CheatEntry>
              <ID>93</ID>
              <Description>"Infinite Air"</Description>
              <Color>C08000</Color>
              <VariableType>Auto Assembler Script</VariableType>
              <AssemblerScript>[ENABLE]

aobscanmodule(Ten,Sonic Forces.exe,F3 0F 58 51 20 48)
alloc(newmem,$1000,Ten)

label(code)
label(return)

newmem:

code:
  xorps xmm2,xmm2
  movss dword ptr [rcx+20],xmm2
  jmp return

Ten:
  jmp newmem

return:
registersymbol(Ten)

[DISABLE]

Ten:
  db F3 0F 58 51 20

unregistersymbol(Ten)
dealloc(newmem)
</AssemblerScript>
            </CheatEntry>
            <CheatEntry>
              <ID>95</ID>
              <Description>"Untouchable"</Description>
              <Color>C08000</Color>
              <VariableType>Auto Assembler Script</VariableType>
              <AssemblerScript>[ENABLE]

aobscanmodule(Eleven,Sonic Forces.exe,0F 2F 42 60 0F 82 93 01 00 00)
alloc(newmem,$1000,Eleven)

label(code)
label(return)
label(Twelve)

newmem:

code:
  mov eax,dword ptr [Twelve]
  movd xmm1,eax
  movss dword ptr [rdx+60],xmm1
  comiss xmm0,[rdx+60]
  jb "Sonic Forces.exe"+4D077E
  jmp return

Twelve:
  dd (float)2

Eleven:
  jmp newmem
  nop 5

return:
registersymbol(Eleven)

[DISABLE]

Eleven:
  db 0F 2F 42 60 0F 82 93 01 00 00

unregistersymbol(Eleven)
dealloc(newmem)
</AssemblerScript>
            </CheatEntry>
            <CheatEntry>
              <ID>42</ID>
              <Description>"⬆Disable for waterslides, or your character’s movement will be slow."</Description>
              <Color>C0C0C0</Color>
              <GroupHeader>1</GroupHeader>
            </CheatEntry>
            <CheatEntry>
              <ID>107</ID>
              <Description>"Waterslide Bounce"</Description>
              <Color>C08000</Color>
              <VariableType>Auto Assembler Script</VariableType>
              <AssemblerScript>[ENABLE]

aobscanmodule(Thirteen,Sonic Forces.exe,0F 84 02 01 00 00 48 8B 01)
registersymbol(Thirteen)

Thirteen:
  db E9 03 01 00 00 90

[DISABLE]

Thirteen:
  db 0F 84 02 01 00 00

unregistersymbol(Thirteen)
</AssemblerScript>
            </CheatEntry>
            <CheatEntry>
              <ID>108</ID>
              <Description>"⬆This prevents your character from being knocked around while on a waterslide."</Description>
              <Color>C0C0C0</Color>
              <GroupHeader>1</GroupHeader>
            </CheatEntry>
          </CheatEntries>
        </CheatEntry>
        <CheatEntry>
          <ID>99</ID>
          <Description>"==== Extras ====="</Description>
          <Options moHideChildren="1" moDeactivateChildrenAsWell="1"/>
          <Color>C080FF</Color>
          <GroupHeader>1</GroupHeader>
          <CheatEntries>
            <CheatEntry>
              <ID>104</ID>
              <Description>"Score"</Description>
              <DropDownList DescriptionOnly="1" DisplayValueAsItem="1">??:Waiting
</DropDownList>
              <ShowAsSigned>0</ShowAsSigned>
              <Color>C08000</Color>
              <VariableType>4 Bytes</VariableType>
              <Address>[Four]+60</Address>
            </CheatEntry>
            <CheatEntry>
              <ID>96</ID>
              <Description>"Rings"</Description>
              <DropDownList DescriptionOnly="1" DisplayValueAsItem="1">??:Waiting
</DropDownList>
              <ShowAsSigned>0</ShowAsSigned>
              <Color>C08000</Color>
              <VariableType>4 Bytes</VariableType>
              <Address>[Three]+1C</Address>
            </CheatEntry>
          </CheatEntries>
        </CheatEntry>
      </CheatEntries>
    </CheatEntry>
  </CheatEntries>
  <UserdefinedSymbols/>
  <Comments>Created by: Outrun
https://opencheattables.com</Comments>
</CheatTable>
