<?xml version="1.0" encoding="utf-8"?>
<CheatTable CheatEngineTableVersion="46">
  <CheatEntries>
    <CheatEntry>
      <ID>20</ID>
      <Description>"Turok 2: Seeds of Evil"</Description>
      <Options moHideChildren="1" moActivateChildrenAsWell="1" moDeactivateChildrenAsWell="1"/>
      <Color>C08000</Color>
      <VariableType>Auto Assembler Script</VariableType>
      <AssemblerScript>[ENABLE]

aobscanmodule(One,Turok2.exe,8B 41 70 89 83 DC 01 00 00)
aobscanmodule(Two,Turok2.exe,00 51 19 48 89 5C 24 50)

alloc(newmemOne,$1000,One)
alloc(newmemTwo,$1000,Two)
alloc(Three,8)
alloc(Four,1)
alloc(Five,8)
alloc(Six,1)

registersymbol(One)
registersymbol(Two)
registersymbol(Three)
registersymbol(Four)
registersymbol(Five)
registersymbol(Six)

label(codeOne)
label(codeTwo)
label(returnOne)
label(returnTwo)
label(Seven)

Three:
  dq 0

Four:
  db 0

Five:
  dq 0

Six:
  db 0

newmemOne:
  mov qword ptr [Three],rcx
  cmp byte ptr [Four],1
  jne codeOne
  movss xmm0,[rcx+70]
  comiss xmm0,[Seven]
  ja codeOne
  movss xmm0,[Seven]
  movss [rcx+70],xmm0

codeOne:
  mov eax,[rcx+70]
  mov [rbx+000001DC],eax
  jmp returnOne

Seven:
  dd (float)100

One:
  jmp newmemOne
  nop 4

returnOne:

newmemTwo:
  mov qword ptr [Five],rcx
  cmp byte ptr [Six],1
  jne codeTwo
  cmp byte ptr [rcx+19],63
  je codeTwo
  mov dl,63

codeTwo:
  add [rcx+19],dl
  mov [rsp+50],rbx
  jmp returnTwo

Two:
  jmp newmemTwo
  nop 3

returnTwo:

[DISABLE]

One:
  db 8B 41 70 89 83 DC 01 00 00

Two:
  db 00 51 19 48 89 5C 24 50

unregistersymbol(One)
unregistersymbol(Two)
unregistersymbol(Three)
unregistersymbol(Four)
unregistersymbol(Five)
unregistersymbol(Six)

dealloc(newmemOne)
dealloc(newmemTwo)
dealloc(Three)
dealloc(Four)
dealloc(Five)
dealloc(Six)
</AssemblerScript>
      <CheatEntries>
        <CheatEntry>
          <ID>24</ID>
          <Description>"==== General ===="</Description>
          <Options moHideChildren="1" moDeactivateChildrenAsWell="1"/>
          <Color>C080FF</Color>
          <GroupHeader>1</GroupHeader>
          <CheatEntries>
            <CheatEntry>
              <ID>56</ID>
              <Description>"Infinite Lives"</Description>
              <Color>C08000</Color>
              <VariableType>Auto Assembler Script</VariableType>
              <AssemblerScript>[ENABLE]

aobscanmodule(Eight,Turok2.exe,80 40 18 FF 0F 85 9B 00 00 00)
alloc(newmem,$1000,Eight)

label(code)
label(return)

newmem:

code:
  add byte ptr [rax+18],0
  jne Turok2.exe+33B26F
  jmp return

Eight:
  jmp newmem
  nop 5

return:
registersymbol(Eight)

[DISABLE]

Eight:
  db 80 40 18 FF 0F 85 9B 00 00 00

unregistersymbol(Eight)
dealloc(newmem)
</AssemblerScript>
            </CheatEntry>
            <CheatEntry>
              <ID>21</ID>
              <Description>"Infinite Health"</Description>
              <Color>C08000</Color>
              <VariableType>Auto Assembler Script</VariableType>
              <AssemblerScript>[ENABLE]

Four:
  db 1

[DISABLE]

Four:
  db 0
</AssemblerScript>
            </CheatEntry>
            <CheatEntry>
              <ID>51</ID>
              <Description>"Infinite Life Force"</Description>
              <Color>C08000</Color>
              <VariableType>Auto Assembler Script</VariableType>
              <AssemblerScript>[ENABLE]

Six:
  db 1

[DISABLE]

Six:
  db 0
</AssemblerScript>
            </CheatEntry>
          </CheatEntries>
        </CheatEntry>
        <CheatEntry>
          <ID>23</ID>
          <Description>"==== Extras ====="</Description>
          <Options moHideChildren="1" moDeactivateChildrenAsWell="1"/>
          <Color>C080FF</Color>
          <GroupHeader>1</GroupHeader>
          <CheatEntries>
            <CheatEntry>
              <ID>0</ID>
              <Description>"Earn Achievements"</Description>
              <Color>C08000</Color>
              <VariableType>Auto Assembler Script</VariableType>
              <AssemblerScript>[ENABLE]

{$lua}
  if achievements == nil then
  local addr = getAddress("Turok2.exe+B06880")
  achievements = createTimer(nil,false)
  achievements.Interval = 1000
  achievements.OnTimer = function()
  writeBytes(addr,0)
  end
  achievements.setEnabled(true)
  end
{$asm}

[DISABLE]

{$lua}
  if achievements ~= nil then
  achievements.setEnabled(false)
  achievements.destroy()
  achievements = nil
  end
{$asm}
</AssemblerScript>
            </CheatEntry>
            <CheatEntry>
              <ID>2</ID>
              <Description>"⬆Allows achievements to be earned even when using console commands or cheats from the cheat menu."</Description>
              <Color>C0C0C0</Color>
              <GroupHeader>1</GroupHeader>
            </CheatEntry>
            <CheatEntry>
              <ID>22</ID>
              <Description>"Health"</Description>
              <DropDownList DescriptionOnly="1" DisplayValueAsItem="1">??:Waiting
</DropDownList>
              <ShowAsSigned>0</ShowAsSigned>
              <Color>C08000</Color>
              <VariableType>Float</VariableType>
              <Address>[Three]+70</Address>
            </CheatEntry>
            <CheatEntry>
              <ID>52</ID>
              <Description>"Lives"</Description>
              <DropDownList DescriptionOnly="1" DisplayValueAsItem="1">??:Waiting
</DropDownList>
              <ShowAsSigned>0</ShowAsSigned>
              <Color>C08000</Color>
              <VariableType>Byte</VariableType>
              <Address>[Five]+18</Address>
            </CheatEntry>
            <CheatEntry>
              <ID>45</ID>
              <Description>"Life Force"</Description>
              <DropDownList DescriptionOnly="1" DisplayValueAsItem="1">??:Waiting
</DropDownList>
              <ShowAsSigned>0</ShowAsSigned>
              <Color>C08000</Color>
              <VariableType>Byte</VariableType>
              <Address>[Five]+19</Address>
            </CheatEntry>
            <CheatEntry>
              <ID>57</ID>
              <Description>"⬆Collect Life Force to populate values."</Description>
              <Color>C0C0C0</Color>
              <GroupHeader>1</GroupHeader>
            </CheatEntry>
            <CheatEntry>
              <ID>58</ID>
              <Description>"⬆Each time the game loads, you must collect a new Life Force to repopulate the correct values."</Description>
              <Color>C0C0C0</Color>
              <GroupHeader>1</GroupHeader>
            </CheatEntry>
          </CheatEntries>
        </CheatEntry>
      </CheatEntries>
    </CheatEntry>
  </CheatEntries>
  <UserdefinedSymbols/>
  <Comments>Created by: Outrun
https://opencheattables.com</Comments>
</CheatTable>
