<?xml version="1.0" encoding="utf-8"?>
<CheatTable CheatEngineTableVersion="24">
  <CheatEntries>
    <CheatEntry>
      <ID>0</ID>
      <Description>"Chanage values when written"</Description>
      <LastState/>
      <VariableType>Auto Assembler Script</VariableType>
      <AssemblerScript>[ENABLE]
aobscanmodule(aob_updateGameMemory,XEBRA.EXE,25 FE FF 1F 00)
registersymbol(aob_updateGameMemory)
alloc(newmem_updateGameMemory,1024,XEBRA.EXE)
label(return_updateGameMemory)
label(epilogue_updateGameMemory)

newmem_updateGameMemory:

  and eax,001FFFFE // original instruction

  // at this point
  // EDX points to the beginning of emulated game memory
  // EAX is an address of game memory (used as an offset here, in emulator code)
  // CX keeps value to write into [EAX+EDX]  (emulated game memory)
  // ESI is free to use


  //example one (change current HP to max HP)
  cmp eax,0016C844  // is current HP to be written to?
  jne @f            // if not jump to next label (@@ in this case)
  //get max HP value
  mov esi,0016C840  // max HP address
  mov cx,[edx+esi]  // cx now contains max HP value

@@:
  //example two (change current MP to max MP)
  cmp eax,0016C846  // is current MP to be written to?
  jne @f            // if not jump to next label (epilogue_updateGameMemory in this case)
  //get max MP value
  mov esi,0016C842  // max MP address
  mov cx,[edx+esi]  // cx now contains max MP value

epilogue_updateGameMemory:
  jmp return_updateGameMemory

aob_updateGameMemory:
  jmp newmem_updateGameMemory
return_updateGameMemory:

[DISABLE]
aob_updateGameMemory:
  db 25 FE FF 1F 00

unregistersymbol(aob_updateGameMemory)
dealloc(newmem_updateGameMemory)
</AssemblerScript>
    </CheatEntry>
    <CheatEntry>
      <ID>1</ID>
      <Description>"Pointers"</Description>
      <LastState Value="" RealAddress="00000000"/>
      <GroupHeader>1</GroupHeader>
      <CheatEntries>
        <CheatEntry>
          <ID>2</ID>
          <Description>"Discipline"</Description>
          <VariableType>2 Bytes</VariableType>
          <Address>XEBRA.EXE+9B8D0</Address>
          <Offsets>
            <Offset>13FA50</Offset>
          </Offsets>
        </CheatEntry>
        <CheatEntry>
          <ID>3</ID>
          <Description>"Happy"</Description>
          <VariableType>2 Bytes</VariableType>
          <Address>XEBRA.EXE+9B8D0</Address>
          <Offsets>
            <Offset>13FA52</Offset>
          </Offsets>
        </CheatEntry>
        <CheatEntry>
          <ID>4</ID>
          <Description>"Offense"</Description>
          <VariableType>2 Bytes</VariableType>
          <Address>XEBRA.EXE+9B8D0</Address>
          <Offsets>
            <Offset>16C830</Offset>
          </Offsets>
        </CheatEntry>
        <CheatEntry>
          <ID>5</ID>
          <Description>"Defense"</Description>
          <VariableType>2 Bytes</VariableType>
          <Address>XEBRA.EXE+9B8D0</Address>
          <Offsets>
            <Offset>16C832</Offset>
          </Offsets>
        </CheatEntry>
        <CheatEntry>
          <ID>6</ID>
          <Description>"Max HP"</Description>
          <VariableType>2 Bytes</VariableType>
          <Address>XEBRA.EXE+9B8D0</Address>
          <Offsets>
            <Offset>16C840</Offset>
          </Offsets>
          <CheatEntries>
            <CheatEntry>
              <ID>7</ID>
              <Description>"Current HP"</Description>
              <VariableType>2 Bytes</VariableType>
              <Address>XEBRA.EXE+9B8D0</Address>
              <Offsets>
                <Offset>16C844</Offset>
              </Offsets>
            </CheatEntry>
          </CheatEntries>
        </CheatEntry>
        <CheatEntry>
          <ID>8</ID>
          <Description>"Max MP"</Description>
          <VariableType>2 Bytes</VariableType>
          <Address>XEBRA.EXE+9B8D0</Address>
          <Offsets>
            <Offset>16C842</Offset>
          </Offsets>
          <CheatEntries>
            <CheatEntry>
              <ID>9</ID>
              <Description>"Current MP"</Description>
              <VariableType>2 Bytes</VariableType>
              <Address>XEBRA.EXE+9B8D0</Address>
              <Offsets>
                <Offset>16C846</Offset>
              </Offsets>
            </CheatEntry>
          </CheatEntries>
        </CheatEntry>
        <CheatEntry>
          <ID>10</ID>
          <Description>"Minute hand"</Description>
          <VariableType>2 Bytes</VariableType>
          <Address>XEBRA.EXE+9B8D0</Address>
          <Offsets>
            <Offset>13C088</Offset>
          </Offsets>
        </CheatEntry>
        <CheatEntry>
          <ID>11</ID>
          <Description>"Hour hand"</Description>
          <VariableType>2 Bytes</VariableType>
          <Address>XEBRA.EXE+9B8D0</Address>
          <Offsets>
            <Offset>13C08A</Offset>
          </Offsets>
        </CheatEntry>
        <CheatEntry>
          <ID>12</ID>
          <Description>"Battle Counter"</Description>
          <VariableType>2 Bytes</VariableType>
          <Address>XEBRA.EXE+9B8D0</Address>
          <Offsets>
            <Offset>13FA7C</Offset>
          </Offsets>
        </CheatEntry>
      </CheatEntries>
    </CheatEntry>
  </CheatEntries>
  <UserdefinedSymbols/>
</CheatTable>
