<?xml version="1.0" encoding="utf-8"?>
<CheatTable CheatEngineTableVersion="46">
  <CheatEntries>
    <CheatEntry>
      <ID>19</ID>
      <Description>"Flashback"</Description>
      <Options moHideChildren="1" moActivateChildrenAsWell="1" moDeactivateChildrenAsWell="1"/>
      <Color>C08000</Color>
      <VariableType>Auto Assembler Script</VariableType>
      <AssemblerScript>[ENABLE]

{$lua}
  if syntaxcheck then return end
  if not getAddressSafe("Flashback1992.dll") then
  messageDialog(
  "    Enter the game first.\nCan take up to 20 seconds.",mtInformation,mbOK)
  return false
  end
{$asm}

aobscanmodule(One,Flashback1992.dll,0F BF 40 08 48 8B 4C 24 58)
aobscanmodule(Two,Flashback1992.dll,8B 90 A4 0A 01 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 qword ptr [Three],rax
  movsx eax,word ptr [rax+08]
  mov rcx,[rsp+58]
  jmp returnOne

One:
  jmp newmemOne
  nop 4

returnOne:

newmemTwo:

codeTwo:
  mov qword ptr [Four],rax
  mov edx,[rax+00010AA4]
  jmp returnTwo

Two:
  jmp newmemTwo
  nop

returnTwo:

[DISABLE]

One:
  db 0F BF 40 08 48 8B 4C 24 58

Two:
  db 8B 90 A4 0A 01 00

unregistersymbol(One)
unregistersymbol(Two)
unregistersymbol(Three)
unregistersymbol(Four)

dealloc(newmemOne)
dealloc(newmemTwo)
dealloc(Three)
dealloc(Four)
</AssemblerScript>
      <CheatEntries>
        <CheatEntry>
          <ID>20</ID>
          <Description>"==== General ===="</Description>
          <Options moHideChildren="1" moDeactivateChildrenAsWell="1"/>
          <Color>C080FF</Color>
          <GroupHeader>1</GroupHeader>
          <CheatEntries>
            <CheatEntry>
              <ID>21</ID>
              <Description>"Infinite Shield"</Description>
              <Color>C08000</Color>
              <VariableType>Auto Assembler Script</VariableType>
              <AssemblerScript>[ENABLE]

aobscanmodule(Five,Flashback1992.dll,66 89 41 08 48 8B 44 24 70)
aobscanmodule(Six,Flashback1992.dll,66 89 41 08 48 8B 44 24 78 0F B6)

registersymbol(Five)
registersymbol(Six)

Flashback1992.dll+19CEB:
  db 90 90 90 90

Flashback1992.dll+19DE4:
  db 90 90 90 90

[DISABLE]

Five:
  db 66 89 41 08

Six:
  db 66 89 41 08

unregistersymbol(Five)
unregistersymbol(Six)
</AssemblerScript>
            </CheatEntry>
            <CheatEntry>
              <ID>26</ID>
              <Description>"⬆Only prevents damage from enemy attacks and falls from great heights."</Description>
              <Color>C0C0C0</Color>
              <GroupHeader>1</GroupHeader>
            </CheatEntry>
            <CheatEntry>
              <ID>22</ID>
              <Description>"Untouchable"</Description>
              <Color>C08000</Color>
              <VariableType>Auto Assembler Script</VariableType>
              <AssemblerScript>[ENABLE]

aobscanmodule(Seven,Flashback1992.dll,0F B6 80 B6 0A 01 00 83)
aobscanmodule(Eight,Flashback1992.dll,E8 C6 FB FF FF)

alloc(newmemOne,$1000,Seven)

registersymbol(Seven)
registersymbol(Eight)

label(codeOne)
label(returnOne)

newmemOne:

codeOne:
  mov byte ptr [rax+00010AB6],6
  movzx eax,byte ptr [rax+00010AB6]
  jmp returnOne

Seven:
  jmp newmemOne
  nop 2

returnOne:

Flashback1992.dll+20095:
  db 90 90 90 90 90

[DISABLE]

Seven:
  db 0F B6 80 B6 0A 01 00

Eight:
  db E8 C6 FB FF FF

unregistersymbol(Seven)
unregistersymbol(Eight)

dealloc(newmemOne)
</AssemblerScript>
            </CheatEntry>
            <CheatEntry>
              <ID>27</ID>
              <Description>"⬆You will still die to the disintegrator."</Description>
              <Color>C0C0C0</Color>
              <GroupHeader>1</GroupHeader>
            </CheatEntry>
          </CheatEntries>
        </CheatEntry>
        <CheatEntry>
          <ID>23</ID>
          <Description>"==== Extras ====="</Description>
          <Options moHideChildren="1" moDeactivateChildrenAsWell="1"/>
          <Color>C080FF</Color>
          <GroupHeader>1</GroupHeader>
          <CheatEntries>
            <CheatEntry>
              <ID>25</ID>
              <Description>"Score"</Description>
              <DropDownList DescriptionOnly="1" DisplayValueAsItem="1">??:Waiting
</DropDownList>
              <ShowAsSigned>0</ShowAsSigned>
              <Color>C08000</Color>
              <VariableType>4 Bytes</VariableType>
              <Address>[Four]+10AA4</Address>
            </CheatEntry>
            <CheatEntry>
              <ID>24</ID>
              <Description>"Shield"</Description>
              <DropDownList DescriptionOnly="1" DisplayValueAsItem="1">??:Waiting
1:0
2:1
3:2
4:3
5:4
</DropDownList>
              <ShowAsSigned>0</ShowAsSigned>
              <Color>C08000</Color>
              <VariableType>4 Bytes</VariableType>
              <Address>[Three]+8</Address>
            </CheatEntry>
          </CheatEntries>
        </CheatEntry>
      </CheatEntries>
    </CheatEntry>
  </CheatEntries>
  <UserdefinedSymbols/>
  <Comments>Created by: Outrun
https://opencheattables.com</Comments>
  <LuaScript>-- Note: If you remove this script from the Cheat Engine table,
-- make sure to attach Cheat Engine only after entering the game.
-- Flashback loads its needed Flashback1992.dll module upon entering the game.
-- You can also click the "Execute Script" button at any time if you choose not to run it at startup.

local timer = createTimer(nil,false)
timer.Interval = 20000
local state = false
timer.OnTimer = function()
reinitializeSymbolhandler()
local loaded = getAddressSafe("Flashback1992.dll") ~= nil
if not state and loaded then
elseif state and not loaded then
end
state = loaded
end
timer.Enabled = true
</LuaScript>
</CheatTable>
