<?xml version="1.0" encoding="utf-8"?>
<CheatTable CheatEngineTableVersion="46">
  <CheatEntries>
    <CheatEntry>
      <ID>1253</ID>
      <Description>"Only enable once you're at the main menu, not beforehand."</Description>
      <Options moDeactivateChildrenAsWell="1"/>
      <Color>808080</Color>
      <GroupHeader>1</GroupHeader>
      <CheatEntries>
        <CheatEntry>
          <ID>12</ID>
          <Description>"Toki"</Description>
          <Options moHideChildren="1" moActivateChildrenAsWell="1" moDeactivateChildrenAsWell="1"/>
          <Color>C08000</Color>
          <VariableType>Auto Assembler Script</VariableType>
          <AssemblerScript>[ENABLE]

{$lua}
  LaunchMonoDataCollector()
{$asm}

define(One,Gameplay.GameplayHUD:UpdateDisplayed+2f)
define(Two,Gameplay.GameplayHUD:UpdateDisplayed+4f)
define(Three,Gameplay.GameplayHUD:UpdateDisplayed+146)
define(Four,Gameplay.GameplayHUD:UpdateDisplayed+19e)
define(Five,Gameplay.GameplayHUD:UpdateDisplayed+ee)
define(Six,Gameplay.PlayerControl:Update+22)
define(Seven,Gameplay.Game:StartGame+5f)
define(Eight,Gameplay.PlayerControl:Process+26)

alloc(newmemOne,$1000)
alloc(newmemTwo,$1000)
alloc(newmemThree,$1000)
alloc(newmemFour,$1000)
alloc(newmemFive,$1000)
alloc(newmemSix,$1000)
alloc(newmemSeven,$1000)
alloc(newmemEight,$1000)
alloc(Nine,4)
alloc(Ten,4)
alloc(Eleven,4)
alloc(Twelve,4)
alloc(Thirteen,4)
alloc(Fourteen,4)
alloc(Fifteen,4)
alloc(Sixteen,4)

registersymbol(One)
registersymbol(Two)
registersymbol(Three)
registersymbol(Four)
registersymbol(Five)
registersymbol(Six)
registersymbol(Seven)
registersymbol(Eight)
registersymbol(Nine)
registersymbol(Ten)
registersymbol(Eleven)
registersymbol(Thirteen)
registersymbol(Twelve)
registersymbol(Fourteen)
registersymbol(Fifteen)
registersymbol(Sixteen)

label(codeOne)
label(codeTwo)
label(codeThree)
label(codeFour)
label(codeFive)
label(codeSix)
label(codeSeven)
label(codeEight)
label(returnOne)
label(returnTwo)
label(returnThree)
label(returnFour)
label(returnFive)
label(returnSix)
label(returnSeven)
label(returnEight)

Nine:
  dd 0

Ten:
  dd 0

Eleven:
  dd 0

Twelve:
  dd 0

Thirteen:
  dd 0

Fourteen:
  dd 0

Fifteen:
  dd 1

Sixteen:
  dd 0

newmemOne:

codeOne:
  mov dword ptr [Nine],eax
  mov eax,[eax+08]
  mov [ebp-2C],eax
  jmp returnOne

One:
  jmp newmemOne
  nop

returnOne:

newmemTwo:

codeTwo:
  mov dword ptr [Ten],eax
  mov eax,[eax+08]
  mov [ebp-34],eax
  jmp returnTwo

Two:
  jmp newmemTwo
  nop

returnTwo:

newmemThree:

codeThree:
  mov dword ptr [Eleven],eax
  mov eax,[eax+08]
  mov [ebp-1C],eax
  jmp returnThree

Three:
  jmp newmemThree
  nop

returnThree:

newmemFour:

codeFour:
  mov dword ptr [Twelve],eax
  mov eax,[eax+08]
  mov [ebp-14],eax
  jmp returnFour

Four:
  jmp newmemFour
  nop

returnFour:

newmemFive:

codeFive:
  mov dword ptr [Thirteen],eax
  mov eax,[eax+08]
  mov [ebp-24],eax
  jmp returnFive

Five:
  jmp newmemFive
  nop

returnFive:

newmemSix:

codeSix:
  mov dword ptr [Fourteen],eax
  movzx eax,byte ptr [eax+44]
  test eax,eax
  jmp returnSix

Six:
  jmp newmemSix
  nop

returnSix:

newmemSeven:

codeSeven:
  mov ecx,dword ptr [Fifteen]
  mov [eax+3C],ecx
  jmp returnSeven

Seven:
  jmp newmemSeven
  nop 4

returnSeven:

newmemEight:

codeEight:
  mov dword ptr [Sixteen],eax
  mov eax,[eax+04]
  mov [ebp-24],eax
  jmp returnEight

Eight:
  jmp newmemEight
  nop

returnEight:

[DISABLE]

One:
  db 8B 40 08 89 45 D4

Two:
  db 8B 40 08 89 45 CC

Three:
  db 8B 40 08 89 45 E4

Four:
  db 8B 40 08 89 45 EC

Five:
  db 8B 40 08 89 45 DC

Six:
  db 0F B6 40 44 85 C0

Seven:
  db 89 48 3C 8B 05 6C 7F E3 0F

Eight:
  db 8B 40 04 89 45 DC

unregistersymbol(One)
unregistersymbol(Two)
unregistersymbol(Three)
unregistersymbol(Four)
unregistersymbol(Five)
unregistersymbol(Six)
unregistersymbol(Seven)
unregistersymbol(Eight)
unregistersymbol(Nine)
unregistersymbol(Ten)
unregistersymbol(Eleven)
unregistersymbol(Twelve)
unregistersymbol(Thirteen)
unregistersymbol(Fourteen)
unregistersymbol(Fifteen)
unregistersymbol(Sixteen)

dealloc(newmemOne)
dealloc(newmemTwo)
dealloc(newmemThree)
dealloc(newmemFour)
dealloc(newmemFive)
dealloc(newmemSix)
dealloc(newmemSeven)
dealloc(newmemEight)
dealloc(Nine)
dealloc(Ten)
dealloc(Eleven)
dealloc(Twelve)
dealloc(Thirteen)
dealloc(Fourteen)
dealloc(Fifteen)
dealloc(Sixteen)
</AssemblerScript>
          <CheatEntries>
            <CheatEntry>
              <ID>14</ID>
              <Description>"==== General ===="</Description>
              <Options moHideChildren="1" moDeactivateChildrenAsWell="1"/>
              <Color>C080FF</Color>
              <GroupHeader>1</GroupHeader>
              <CheatEntries>
                <CheatEntry>
                  <ID>1276</ID>
                  <Description>"Infinite Time"</Description>
                  <Color>C08000</Color>
                  <VariableType>Auto Assembler Script</VariableType>
                  <AssemblerScript>[ENABLE]

Gameplay.Game+TimeLeft:get_value+61:
  db  C6 47 0C 00

[DISABLE]

Gameplay.Game+TimeLeft:get_value+61:
  db C6 47 0C 01
</AssemblerScript>
                </CheatEntry>
                <CheatEntry>
                  <ID>1277</ID>
                  <Description>"⬆May take a moment to enable."</Description>
                  <Color>C0C0C0</Color>
                  <GroupHeader>1</GroupHeader>
                </CheatEntry>
                <CheatEntry>
                  <ID>1278</ID>
                  <Description>"⬆The timer will keep counting down, but you can continue playing when it reaches zero."</Description>
                  <Color>C0C0C0</Color>
                  <GroupHeader>1</GroupHeader>
                </CheatEntry>
                <CheatEntry>
                  <ID>23</ID>
                  <Description>"Infinite Credits"</Description>
                  <Color>C08000</Color>
                  <VariableType>Auto Assembler Script</VariableType>
                  <AssemblerScript>[ENABLE]

Gameplay.Continue:SelectedMenuItem+2b:
  db 90

[DISABLE]

Gameplay.Continue:SelectedMenuItem+2b:
  db 49
</AssemblerScript>
                </CheatEntry>
                <CheatEntry>
                  <ID>15</ID>
                  <Description>"Infinite Lives"</Description>
                  <Color>C08000</Color>
                  <VariableType>Auto Assembler Script</VariableType>
                  <AssemblerScript>[ENABLE]

Gameplay.PlayerDeadState+&lt;&gt;c__DisplayClass6_0:&lt;DeathSequence&gt;b__0+61:
  db 90

[DISABLE]

Gameplay.PlayerDeadState+&lt;&gt;c__DisplayClass6_0:&lt;DeathSequence&gt;b__0+61:
  db 49
</AssemblerScript>
                </CheatEntry>
                <CheatEntry>
                  <ID>24</ID>
                  <Description>"⬆May take a moment to enable."</Description>
                  <Color>C0C0C0</Color>
                  <GroupHeader>1</GroupHeader>
                </CheatEntry>
                <CheatEntry>
                  <ID>16</ID>
                  <Description>"Untouchable"</Description>
                  <Color>C08000</Color>
                  <VariableType>Auto Assembler Script</VariableType>
                  <AssemblerScript>[ENABLE]

Gameplay.PlayerControl:PlayerTouched:
  db C3

[DISABLE]

Gameplay.PlayerControl:PlayerTouched:
  db 55
</AssemblerScript>
                </CheatEntry>
                <CheatEntry>
                  <ID>1287</ID>
                  <Description>"⬆You may need to use Unstuck if you fall into a pit."</Description>
                  <Color>C0C0C0</Color>
                  <GroupHeader>1</GroupHeader>
                </CheatEntry>
                <CheatEntry>
                  <ID>1286</ID>
                  <Description>"Unstuck"</Description>
                  <Color>C08000</Color>
                  <VariableType>Auto Assembler Script</VariableType>
                  <AssemblerScript>[ENABLE]

{$lua}
  if syntaxcheck then return end
  if getOpenedProcessID() == 0 then return end
  pcall(function()
  local ptr = getAddressSafe("Sixteen")
  if not ptr then return end
  local base = readInteger(ptr)
  if not base then return end
  local addr = base+0x4
  local cur = readFloat(addr)
  if not cur then return end
  writeFloat(addr,cur+350)
  end)
  local t = createTimer(nil,false)
  t.Interval = 100
  t.OnTimer = function(timer)
  timer.destroy()
  memrec.Active = false
  end
  t.Enabled = true
{$asm}

[DISABLE]
</AssemblerScript>
                  <Hotkeys>
                    <Hotkey>
                      <Action>Toggle Activation</Action>
                      <Keys>
                        <Key>22532</Key>
                      </Keys>
                      <ID>0</ID>
                    </Hotkey>
                  </Hotkeys>
                </CheatEntry>
                <CheatEntry>
                  <ID>1284</ID>
                  <Description>"⬆Set a hotkey, as you may need to jump several times to escape an endless pit."</Description>
                  <Color>C0C0C0</Color>
                  <GroupHeader>1</GroupHeader>
                </CheatEntry>
                <CheatEntry>
                  <ID>1248</ID>
                  <Description>"Quick Kills"</Description>
                  <Color>C08000</Color>
                  <VariableType>Auto Assembler Script</VariableType>
                  <AssemblerScript>[ENABLE]

define(Seventeen,Gameplay.Creature.BaseCreature:TouchCreature+4a)
alloc(newmem,$1000)

label(code)
label(return)

newmem:
  //cmp dword ptr [esi+88],0  // Uncomment this line to restore normal boss health.
  //jne code                  // Uncomment this line to restore normal boss health, then save.
  xor eax,eax

code:
  mov [edi+78],eax
  test eax,eax
  jmp return

Seventeen:
  jmp newmem

return:
registersymbol(Seventeen)

[DISABLE]

Seventeen:
  db 89 47 78 85 C0

unregistersymbol(Seventeen)
dealloc(newmem)
</AssemblerScript>
                </CheatEntry>
                <CheatEntry>
                  <ID>1288</ID>
                  <Description>"⬆Disable for the final boss fight, or the phases will bug."</Description>
                  <Color>C0C0C0</Color>
                  <GroupHeader>1</GroupHeader>
                </CheatEntry>
                <CheatEntry>
                  <ID>1289</ID>
                  <Description>"⬆See inside the script if you want bosses to have normal health."</Description>
                  <Color>C0C0C0</Color>
                  <GroupHeader>1</GroupHeader>
                </CheatEntry>
              </CheatEntries>
            </CheatEntry>
            <CheatEntry>
              <ID>17</ID>
              <Description>"==== Extras ====="</Description>
              <Options moHideChildren="1" moDeactivateChildrenAsWell="1"/>
              <Color>C080FF</Color>
              <GroupHeader>1</GroupHeader>
              <CheatEntries>
                <CheatEntry>
                  <ID>1251</ID>
                  <Description>"Starting Stage"</Description>
                  <DropDownList ReadOnly="1" DescriptionOnly="1" DisplayValueAsItem="1">??:Waiting
1:Labyrinth of Caves
2:Lake Neptune
3:Caverns of Fire
4:Ice Palace
5:Dark Jungle
6:Golden Palace
</DropDownList>
                  <ShowAsSigned>0</ShowAsSigned>
                  <Color>C08000</Color>
                  <VariableType>4 Bytes</VariableType>
                  <Address>Fifteen</Address>
                </CheatEntry>
                <CheatEntry>
                  <ID>1252</ID>
                  <Description>"⬆Change before clicking New Game to start from a different stage."</Description>
                  <Color>C0C0C0</Color>
                  <GroupHeader>1</GroupHeader>
                </CheatEntry>
                <CheatEntry>
                  <ID>13</ID>
                  <Description>"Top Score"</Description>
                  <DropDownList DescriptionOnly="1" DisplayValueAsItem="1">??:Waiting
</DropDownList>
                  <ShowAsSigned>0</ShowAsSigned>
                  <Color>C08000</Color>
                  <VariableType>4 Bytes</VariableType>
                  <Address>[Nine]+8</Address>
                </CheatEntry>
                <CheatEntry>
                  <ID>18</ID>
                  <Description>"Score"</Description>
                  <DropDownList DescriptionOnly="1" DisplayValueAsItem="1">??:Waiting
</DropDownList>
                  <ShowAsSigned>0</ShowAsSigned>
                  <Color>C08000</Color>
                  <VariableType>4 Bytes</VariableType>
                  <Address>[Ten]+8</Address>
                </CheatEntry>
                <CheatEntry>
                  <ID>19</ID>
                  <Description>"Credits"</Description>
                  <DropDownList DescriptionOnly="1" DisplayValueAsItem="1">??:Waiting
</DropDownList>
                  <ShowAsSigned>0</ShowAsSigned>
                  <Color>C08000</Color>
                  <VariableType>4 Bytes</VariableType>
                  <Address>[Eleven]+8</Address>
                </CheatEntry>
                <CheatEntry>
                  <ID>20</ID>
                  <Description>"Lives"</Description>
                  <DropDownList DescriptionOnly="1" DisplayValueAsItem="1">??:Waiting
</DropDownList>
                  <ShowAsSigned>0</ShowAsSigned>
                  <Color>C08000</Color>
                  <VariableType>4 Bytes</VariableType>
                  <Address>[Twelve]+8</Address>
                </CheatEntry>
                <CheatEntry>
                  <ID>21</ID>
                  <Description>"Coins"</Description>
                  <DropDownList DescriptionOnly="1" DisplayValueAsItem="1">??:Waiting
</DropDownList>
                  <ShowAsSigned>0</ShowAsSigned>
                  <Color>C08000</Color>
                  <VariableType>4 Bytes</VariableType>
                  <Address>[Thirteen]+8</Address>
                </CheatEntry>
                <CheatEntry>
                  <ID>1245</ID>
                  <Description>"Continued"</Description>
                  <DropDownList DescriptionOnly="1" DisplayValueAsItem="1">??:Waiting
</DropDownList>
                  <ShowAsSigned>0</ShowAsSigned>
                  <Color>C08000</Color>
                  <VariableType>4 Bytes</VariableType>
                  <Address>[Fourteen]+48</Address>
                </CheatEntry>
                <CheatEntry>
                  <ID>1261</ID>
                  <Description>"1UP Bonuses"</Description>
                  <DropDownList DescriptionOnly="1" DisplayValueAsItem="1">??:Waiting
</DropDownList>
                  <ShowAsSigned>0</ShowAsSigned>
                  <Color>C08000</Color>
                  <VariableType>4 Bytes</VariableType>
                  <Address>[Fourteen]+4C</Address>
                </CheatEntry>
                <CheatEntry>
                  <ID>1262</ID>
                  <Description>"Total 1UP Bonuses"</Description>
                  <DropDownList ReadOnly="1" DescriptionOnly="1" DisplayValueAsItem="1">??:Waiting
</DropDownList>
                  <ShowAsSigned>0</ShowAsSigned>
                  <Color>C08000</Color>
                  <VariableType>4 Bytes</VariableType>
                  <Address>[Fourteen]+50</Address>
                </CheatEntry>
              </CheatEntries>
            </CheatEntry>
          </CheatEntries>
        </CheatEntry>
      </CheatEntries>
    </CheatEntry>
  </CheatEntries>
  <UserdefinedSymbols/>
  <Comments>Created by: Outrun
https://opencheattables.com</Comments>
</CheatTable>
