<?xml version="1.0" encoding="utf-8"?>
<CheatTable CheatEngineTableVersion="46">
  <CheatEntries>
    <CheatEntry>
      <ID>30</ID>
      <Description>"Alwa's Awakening"</Description>
      <Options moHideChildren="1" moActivateChildrenAsWell="1" moDeactivateChildrenAsWell="1"/>
      <Color>C08000</Color>
      <VariableType>Auto Assembler Script</VariableType>
      <AssemblerScript>[ENABLE]

{$lua}
  LaunchMonoDataCollector()
{$asm}

define(One,InventoryManager:Update+46)

alloc(newmem,$1000)
alloc(Two,4)

registersymbol(One)
registersymbol(Two)

label(code)
label(return)

Two:
  dd 0

newmem:

code:
  mov dword ptr [Two],edi
  fld dword ptr [edi+00000088]
  jmp return

One:
  jmp newmem
  nop

return:

{$lua}
  if not clockTimer then
  clockTimer = createTimer(nil,false)
  clockTimer.Interval = 100
  if not Three then
  Three = allocateMemory(32)
  registerSymbol("Three")
  end
  local previousTime = -1
  local lastTime = ""
  clockTimer.OnTimer = function()
  local addr = getAddress("[Two]+88")
  if not addr or addr == 0 then return end
  local currentTime = readString(Three) or ""
  if currentTime ~= lastTime then
  local h,m,s = currentTime:match("^(%d+):(%d+):(%d+)$")
  local totalSeconds
  if h and m and s then
  totalSeconds = tonumber(h)*3600+tonumber(m)*60+tonumber(s)
  else
  local h2,m2 = currentTime:match("^(%d+):(%d+)$")
  if h2 and m2 then
  totalSeconds = tonumber(h2)*3600+tonumber(m2)*60
  else
  local onlyMin = tonumber(currentTime)
  if onlyMin then
  totalSeconds = onlyMin * 60
  end
  end
  end
  if totalSeconds and totalSeconds &gt;= 0 then
  if totalSeconds &gt; 86399 then totalSeconds = 86399 end
  writeFloat(addr,totalSeconds)
  previousTime = totalSeconds
  end
  lastTime = currentTime
  end
  local timeValue = readFloat(addr)
  if not timeValue or timeValue &lt; 0 then
  writeString(Three,"Waiting")
  return
  end
  local rounded = math.floor(timeValue+0.5)
  if rounded ~= previousTime then
  if rounded &gt; 86399 then rounded = 86399 end
  local hours = math.floor(rounded/3600)
  local minutes = math.floor((rounded % 3600)/60)
  local seconds = rounded % 60
  local display = string.format("%02d:%02d:%02d",hours,minutes,seconds)
  for i = 0,31 do writeBytes(Three+i,0) end
  writeString(Three,display)
  lastTime = display
  previousTime = rounded
  end
  end
  clockTimer.Enabled = true
  end
{$asm}

[DISABLE]

One:
  db D9 87 88 00 00 00

unregistersymbol(One)
unregistersymbol(Two)

dealloc(newmem)
dealloc(Two)

{$lua}
  if clockTimer then
  clockTimer.destroy()
  clockTimer = nil
  end
  if Three then
  unregisterSymbol("Three")
  deAlloc(Three)
  Three = nil
  end
{$asm}
</AssemblerScript>
      <CheatEntries>
        <CheatEntry>
          <ID>27</ID>
          <Description>"==== General ===="</Description>
          <Options moHideChildren="1" moDeactivateChildrenAsWell="1"/>
          <Color>C080FF</Color>
          <GroupHeader>1</GroupHeader>
          <CheatEntries>
            <CheatEntry>
              <ID>38</ID>
              <Description>"Freeze Time"</Description>
              <Color>C08000</Color>
              <VariableType>Auto Assembler Script</VariableType>
              <AssemblerScript>[ENABLE]

define(Four,InventoryManager:Update+54)
alloc(newmem,$1000)

label(code)
label(return)

newmem:

code:
  fstp st(0)
  jmp return

Four:
  jmp newmem
  nop

return:
registersymbol(Four)

[DISABLE]

Four:
  db D9 9F 88 00 00 00

unregistersymbol(Four)
dealloc(newmem)
</AssemblerScript>
            </CheatEntry>
            <CheatEntry>
              <ID>11</ID>
              <Description>"Infinite Jump"</Description>
              <Color>C08000</Color>
              <VariableType>Auto Assembler Script</VariableType>
              <AssemblerScript>[ENABLE]

define(Five,PlayerJumpScript:Update+6f6)
alloc(newmem,$1000)

label(code)
label(return)

newmem:

code:
  mov byte ptr [eax],1
  add dword ptr [ebp-00000420],01
  jmp return

Five:
  jmp newmem
  nop 4

return:
registersymbol(Five)

[DISABLE]

Five:
  db 88 08 83 85 E0 FB FF FF 01

unregistersymbol(Five)
dealloc(newmem)
</AssemblerScript>
            </CheatEntry>
            <CheatEntry>
              <ID>32</ID>
              <Description>"⬆Set a hotkey, as you will need to disable to go down ladders."</Description>
              <Color>C0C0C0</Color>
              <GroupHeader>1</GroupHeader>
            </CheatEntry>
            <CheatEntry>
              <ID>17</ID>
              <Description>"Infinite Health"</Description>
              <Color>C08000</Color>
              <VariableType>Auto Assembler Script</VariableType>
              <AssemblerScript>[ENABLE]

define(Six,PlayerDeathTriggersScript:HealthManaging+38f)
alloc(newmem,$1000)

label(code)
label(return)

newmem:

code:
  mov dword ptr [edi+6C],3
  mov eax,[edi+6C]
  test eax,eax
  jmp return

Six:
  jmp newmem

return:
registersymbol(Six)

[DISABLE]

Six:
  db 8B 47 6C 85 C0

unregistersymbol(Six)
dealloc(newmem)
</AssemblerScript>
            </CheatEntry>
            <CheatEntry>
              <ID>29</ID>
              <Description>"Untouchable"</Description>
              <Color>C08000</Color>
              <VariableType>Auto Assembler Script</VariableType>
              <AssemblerScript>[ENABLE]

PlayerDeathTriggersScript:OnTriggerEnter2D:
  db C3

PlayerDeathTriggersScript:OnTriggerStay2D:
  db C3

[DISABLE]

PlayerDeathTriggersScript:OnTriggerEnter2D:
  db 55

PlayerDeathTriggersScript:OnTriggerStay2D:
  db 55
</AssemblerScript>
            </CheatEntry>
            <CheatEntry>
              <ID>34</ID>
              <Description>"Quick Boss Kills"</Description>
              <Color>C08000</Color>
              <VariableType>Auto Assembler Script</VariableType>
              <AssemblerScript>[ENABLE]

define(Seven,BossHealthScript:UpdateHealth+121)
alloc(newmem,$1000)

label(code)
label(return)

newmem:

code:
  xor eax,eax
  mov [edi+48],eax
  cmp ebx,eax
  jmp return

Seven:
  jmp newmem

return:
registersymbol(Seven)

[DISABLE]

Seven:
  db 8B 47 48 3B D8

unregistersymbol(Seven)
dealloc(newmem)
</AssemblerScript>
            </CheatEntry>
            <CheatEntry>
              <ID>39</ID>
              <Description>"⬆Only tested with the Vicious Keeper boss."</Description>
              <Color>C0C0C0</Color>
              <GroupHeader>1</GroupHeader>
            </CheatEntry>
          </CheatEntries>
        </CheatEntry>
        <CheatEntry>
          <ID>28</ID>
          <Description>"==== Extras ====="</Description>
          <Options moHideChildren="1" moDeactivateChildrenAsWell="1"/>
          <Color>C080FF</Color>
          <GroupHeader>1</GroupHeader>
          <CheatEntries>
            <CheatEntry>
              <ID>25</ID>
              <Description>"Zero Deaths"</Description>
              <Color>C08000</Color>
              <VariableType>Auto Assembler Script</VariableType>
              <AssemblerScript>[ENABLE]

define(Eight,PlayerDeathTriggersScript:HealthManaging+265)
alloc(newmem,$1000)

label(code)
label(return)

newmem:

code:
  xor eax,eax
  mov [edi+60],eax
  jmp return

Eight:
  jmp newmem
  nop 2

return:
registersymbol(Eight)

[DISABLE]

Eight:
  db 89 47 60 40 89 47 60

unregistersymbol(Eight)
dealloc(newmem)
</AssemblerScript>
            </CheatEntry>
            <CheatEntry>
              <ID>26</ID>
              <Description>"⬆If you’ve already died, you’ll need to die again to register the zero value."</Description>
              <Color>C0C0C0</Color>
              <GroupHeader>1</GroupHeader>
            </CheatEntry>
            <CheatEntry>
              <ID>48</ID>
              <Description>"Unlock Warp Locations"</Description>
              <Options moHideChildren="1" moDeactivateChildrenAsWell="1"/>
              <Color>C08000</Color>
              <GroupHeader>1</GroupHeader>
              <CheatEntries>
                <CheatEntry>
                  <ID>47</ID>
                  <Description>"Forsaken Valley"</Description>
                  <Color>808080</Color>
                  <VariableType>Auto Assembler Script</VariableType>
                  <AssemblerScript>[ENABLE]

define(Nine,WarpManager:CheckAvailability+13)
alloc(newmem,$1000)

label(code)
label(return)

newmem:

code:
  mov dword ptr [eax+00000090],1 //Change 1 to 0 to lock Forsaken Valley again.
  mov eax,[eax+00000090]
  jmp return

Nine:
  jmp newmem
  nop

return:
registersymbol(Nine)

[DISABLE]

Nine:
  db 8B 80 90 00 00 00

unregistersymbol(Nine)
dealloc(newmem)
</AssemblerScript>
                </CheatEntry>
                <CheatEntry>
                  <ID>49</ID>
                  <Description>"Sacellum Depths"</Description>
                  <Color>808080</Color>
                  <VariableType>Auto Assembler Script</VariableType>
                  <AssemblerScript>[ENABLE]

define(Ten,WarpManager:CheckAvailability+1d0)
alloc(newmem,$1000)

label(code)
label(return)

newmem:

code:
  mov dword ptr [eax+0000008C],1  //Change 1 to 0 to lock Sacellum Depths again.
  mov eax,[eax+0000008C]
  jmp return

Ten:
  jmp newmem
  nop

return:
registersymbol(Ten)

[DISABLE]

Ten:
  db 8B 80 8C 00 00 00

unregistersymbol(Ten)
dealloc(newmem)
</AssemblerScript>
                </CheatEntry>
                <CheatEntry>
                  <ID>50</ID>
                  <Description>"Central  Alwa"</Description>
                  <Color>808080</Color>
                  <VariableType>Auto Assembler Script</VariableType>
                  <AssemblerScript>[ENABLE]

define(Eleven,WarpManager:CheckAvailability+38d)
alloc(newmem,$1000)

label(code)
label(return)

newmem:

code:
  mov dword ptr [eax+00000094],1  //Change 1 to 0 to lock Central  Alwa again.
  mov eax,[eax+00000094]
  jmp return

Eleven:
  jmp newmem
  nop

return:
registersymbol(Eleven)

[DISABLE]

Eleven:
  db 8B 80 94 00 00 00

unregistersymbol(Eleven)
dealloc(newmem)
</AssemblerScript>
                </CheatEntry>
                <CheatEntry>
                  <ID>51</ID>
                  <Description>"Underground Chamber"</Description>
                  <Color>808080</Color>
                  <VariableType>Auto Assembler Script</VariableType>
                  <AssemblerScript>[ENABLE]

define(Twelve,WarpManager:CheckAvailability+54a)
alloc(newmem,$1000)

label(code)
label(return)

newmem:

code:
  mov dword ptr [eax+00000098],1  //Change 1 to 0 to lock Underground Chamber again.
  mov eax,[eax+00000098]
  jmp return

Twelve:
  jmp newmem
  nop

return:
registersymbol(Twelve)

[DISABLE]

Twelve:
  db 8B 80 98 00 00 00

unregistersymbol(Twelve)
dealloc(newmem)
</AssemblerScript>
                </CheatEntry>
                <CheatEntry>
                  <ID>52</ID>
                  <Description>"Stone Cellar"</Description>
                  <Color>808080</Color>
                  <VariableType>Auto Assembler Script</VariableType>
                  <AssemblerScript>[ENABLE]

define(Thirteen,WarpManager:CheckAvailability+6ef)
alloc(newmem,$1000)

label(code)
label(return)

newmem:

code:
  mov dword ptr [eax+0000009C],1  //Change 1 to 0 to lock Stone Cellar again.
  mov eax,[eax+0000009C]
  jmp return

Thirteen:
  jmp newmem
  nop

return:
registersymbol(Thirteen)

[DISABLE]

Thirteen:
  db 8B 80 9C 00 00 00

unregistersymbol(Thirteen)
dealloc(newmem)
</AssemblerScript>
                </CheatEntry>
                <CheatEntry>
                  <ID>53</ID>
                  <Description>"Solstice Mountain"</Description>
                  <Color>808080</Color>
                  <VariableType>Auto Assembler Script</VariableType>
                  <AssemblerScript>[ENABLE]

define(Fourteen,WarpManager:CheckAvailability+88e)
alloc(newmem,$1000)

label(code)
label(return)

newmem:

code:
  mov dword ptr [eax+000000A0],1  //Change 1 to 0 to lock Solstice Mountain again.
  mov eax,[eax+000000A0]
  jmp return

Fourteen:
  jmp newmem
  nop

return:
registersymbol(Fourteen)

[DISABLE]

Fourteen:
  db 8B 80 A0 00 00 00

unregistersymbol(Fourteen)
dealloc(newmem)
</AssemblerScript>
                </CheatEntry>
                <CheatEntry>
                  <ID>54</ID>
                  <Description>"The Houlihan Warp"</Description>
                  <Color>808080</Color>
                  <VariableType>Auto Assembler Script</VariableType>
                  <AssemblerScript>[ENABLE]

define(Fifteen,WarpManager:WarpMenu+15a)
alloc(newmem,$1000)

label(code)
label(return)

newmem:

code:
  mov dword ptr [eax+000000A4],1  //Change 1 to 0 to lock The Houlihan Warp again.
  mov eax,[eax+000000A4]
  jmp return

Fifteen:
  jmp newmem
  nop

return:
registersymbol(Fifteen)

[DISABLE]

Fifteen:
  db 8B 80 A4 00 00 00

unregistersymbol(Fifteen)
dealloc(newmem)
</AssemblerScript>
                </CheatEntry>
                <CheatEntry>
                  <ID>55</ID>
                  <Description>"⬆Pick the locations you want, then open the warp menu to unlock them."</Description>
                  <Color>C0C0C0</Color>
                  <GroupHeader>1</GroupHeader>
                </CheatEntry>
              </CheatEntries>
            </CheatEntry>
            <CheatEntry>
              <ID>36</ID>
              <Description>"Time"</Description>
              <DropDownList DescriptionOnly="1" DisplayValueAsItem="1">??:Waiting
</DropDownList>
              <ShowAsSigned>0</ShowAsSigned>
              <Color>C08000</Color>
              <VariableType>String</VariableType>
              <Length>8</Length>
              <Unicode>0</Unicode>
              <CodePage>0</CodePage>
              <ZeroTerminate>1</ZeroTerminate>
              <Address>Three</Address>
            </CheatEntry>
          </CheatEntries>
        </CheatEntry>
      </CheatEntries>
    </CheatEntry>
  </CheatEntries>
  <UserdefinedSymbols/>
  <Comments>Created by: Outrun
https://opencheattables.com</Comments>
</CheatTable>
