<?xml version="1.0" encoding="utf-8"?>
<CheatTable CheatEngineTableVersion="46">
  <CheatEntries>
    <CheatEntry>
      <ID>106681</ID>
      <Description>"Crazy Taxi"</Description>
      <Options moHideChildren="1" moActivateChildrenAsWell="1" moDeactivateChildrenAsWell="1"/>
      <Color>C08000</Color>
      <VariableType>Auto Assembler Script</VariableType>
      <AssemblerScript>[ENABLE]

aobscanmodule(One,Crazy Taxi.exe,D9 86 C4 00 00 00 D9 EE)

alloc(newmem,$1000)
alloc(Two,1)
alloc(Three,1)

registersymbol(One)
registersymbol(Two)
registersymbol(Three)

label(codeOne)
label(codeTwo)
label(codeThree)
label(return)

Two:
  db 0

Three:
  db 0

newmem:
  cmp byte ptr [Two],1
  je codeOne
  cmp byte ptr [Three],1
  je codeTwo
  jmp codeThree

codeOne:
  fldz
  fst dword ptr [esi+000000C4]
  jmp return

codeTwo:
  fld1
  fchs
  fst dword ptr [esi+000000C4]
  jmp return

codeThree:
  fld dword ptr [esi+000000C4]
  jmp return

One:
  jmp newmem
  nop

return:

{$lua}
  local tick = 100
  local maxvalue = 59940
  local length = 8
  local capacity = 9
  local delay = 5
  local placeholder = "Waiting"
  local function getframes()
  local addr = getAddressSafe("Crazy Taxi.exe+12A41A4")
  if not addr then return nil end
  return readInteger(addr)
  end
  local function getmode()
  local addr = getAddressSafe("Crazy Taxi.exe+12AA324")
  if not addr then return 0 end
  return readInteger(addr)
  end
  local function display(frames,mode)
  if not frames or frames &lt;= 0 then
  return placeholder
  end
  if frames &gt; maxvalue then frames = maxvalue end
  local totalms = frames*(1000/60)
  local minutes = math.floor(totalms/60000)
  local seconds = math.floor((totalms/1000)%60)
  local centis = math.floor((totalms%1000)/10)
  if mode == 0 then
  local secs = math.floor(frames/60+0.5)
  if secs &gt; 999 then secs = 999 end
  if secs &gt;= 100 then
  return tostring(secs)
  else
  return string.format("%02d",secs)
  end
  else
  if minutes &gt;= 10 then
  return string.format("%02d'%02d\"%02d",minutes,seconds,centis)
  elseif minutes &gt;= 1 then
  return string.format("%d'%02d\"%02d",minutes,seconds,centis)
  else
  return string.format("%02d\"%02d",seconds,centis)
  end
  end
  end
  local function update(text)
  local bytes = {}
  for i = 1,capacity do bytes[i] = 0 end
  local strbytes = {string.byte(text,1,#text)}
  for i = 1,#strbytes do bytes[i] = strbytes[i] end
  writeBytes(state.store,table.unpack(bytes))
  end
  if not state then state = {} end
  if not state.store then
  state.store = allocateMemory(length)
  unregisterSymbol("Four")
  registerSymbol("Four",state.store)
  end
  if not state.timer then
  state.prev = nil
  state.cache = nil
  state.cool = 0
  state.timer = createTimer()
  state.timer.Interval = tick
  state.timer.OnTimer = function()
  if not getOpenedProcessID() or getOpenedProcessID() == 0 then
  state.timer.destroy()
  state.timer = nil
  return
  end
  local frames = getframes()
  local mode = getmode()
  local view = display(frames,mode)
  local edit = readString(state.store,length)
  if state.cool &gt; 0 then
  state.cool = state.cool - 1
  else
  if state.cache and edit ~= state.cache then
  local num = tonumber(edit)
  if num and num &gt;= 0 and num &lt;= 999 then
  local set = num*60+59
  if set &gt; maxvalue then set = maxvalue end
  local addr = getAddressSafe("Crazy Taxi.exe+12A41A4")
  if addr then writeInteger(addr,set) end
  state.cool = delay
  state.prev = set
  state.cache = edit
  return
  end
  end
  if state.prev ~= frames or state.cache ~= view then
  update(view)
  state.cache = view
  state.prev = frames
  end
  end
  end
  end
{$asm}

[DISABLE]

One:
  db D9 86 C4 00 00 00

unregistersymbol(One)
unregistersymbol(Two)
unregistersymbol(Three)

dealloc(newmem)
dealloc(Two)
dealloc(Three)

{$lua}
  if state then
  if state.timer then
  state.timer.destroy()
  state.timer = nil
  end
  if state.store then
  unregisterSymbol("Four")
  deAlloc(state.store)
  state.store = nil
  end
  state = nil
  end
{$asm}
</AssemblerScript>
      <CheatEntries>
        <CheatEntry>
          <ID>12</ID>
          <Description>"==== General ===="</Description>
          <Options moHideChildren="1" moDeactivateChildrenAsWell="1"/>
          <Color>C080FF</Color>
          <GroupHeader>1</GroupHeader>
          <CheatEntries>
            <CheatEntry>
              <ID>5</ID>
              <Description>"Freeze Game Time"</Description>
              <Color>C08000</Color>
              <VariableType>Auto Assembler Script</VariableType>
              <AssemblerScript>[ENABLE]

aobscanmodule(Five,Crazy Taxi.exe,29 35 A4 41 6A 01 83 F9)
registersymbol(Five)

Crazy Taxi.exe+FF931:
  db 90 90 90 90 90 90

[DISABLE]

Five:
  db 29 35 A4 41 6A 01

unregistersymbol(Five)
</AssemblerScript>
              <Hotkeys>
                <Hotkey>
                  <Action>Toggle Activation</Action>
                  <Keys>
                    <Key>22550</Key>
                  </Keys>
                  <ID>0</ID>
                </Hotkey>
              </Hotkeys>
            </CheatEntry>
            <CheatEntry>
              <ID>6</ID>
              <Description>"Freeze Customer Time"</Description>
              <Color>C08000</Color>
              <VariableType>Auto Assembler Script</VariableType>
              <AssemblerScript>[ENABLE]

aobscanmodule(Six,Crazy Taxi.exe,29 35 DC 41 6A 01)
registersymbol(Six)

Crazy Taxi.exe+FF8A4:
  db 90 90 90 90 90 90

[DISABLE]

Six:
  db 29 35 DC 41 6A 01

unregistersymbol(Six)
</AssemblerScript>
              <Hotkeys>
                <Hotkey>
                  <Action>Toggle Activation</Action>
                  <Keys>
                    <Key>22551</Key>
                  </Keys>
                  <ID>0</ID>
                </Hotkey>
              </Hotkeys>
            </CheatEntry>
          </CheatEntries>
        </CheatEntry>
        <CheatEntry>
          <ID>8</ID>
          <Description>"=== Statistics ===="</Description>
          <Options moHideChildren="1" moDeactivateChildrenAsWell="1"/>
          <Color>C080FF</Color>
          <GroupHeader>1</GroupHeader>
          <CheatEntries>
            <CheatEntry>
              <ID>105312</ID>
              <Description>"Cabbie"</Description>
              <DropDownList ReadOnly="1" DescriptionOnly="1" DisplayValueAsItem="1">*:Waiting
0:Blockout
1:Axel
2:B.D.Joe
3:Gena
4:Gus
5:NPC 1
6:NPC 2
7:NPC 3
8:NPC 4
9:NPC 5
10:NPC 6
11:NPC 7
12:NPC 8
13:NPC 9
14:NPC 10
15:NPC 11
16:NPC 12
17:NPC 13
18:NPC 14
19:NPC 15
20:NPC 16
21:NPC 17
22:NPC 18
23:NPC 19
24:NPC 20
25:NPC 21
26:NPC 22
27:NPC 23
28:NPC 24
29:NPC 25
30:NPC 26
31:NPC 27
32:NPC 28
33:NPC 29
34:NPC 30
35:NPC 31
36:NPC 32
37:NPC 33
38:NPC 34
39:NPC 35
40:NPC 36
41:NPC 37
42:NPC 38
43:NPC 39
44:NPC 40
45:NPC 41
46:NPC 42
47:NPC 43
48:NPC 44
49:NPC 45
50:NPC 46
51:NPC 47
52:Punk
53:NPC 49
54:NPC 50
55:NPC 51
56:NPC 52
57:NPC 53
58:NPC 54
59:Axel
60:B.D.Joe
61:Gena
62:Gus
</DropDownList>
              <Color>C08000</Color>
              <VariableType>4 Bytes</VariableType>
              <Address>"Crazy Taxi.exe"+12F1D88</Address>
            </CheatEntry>
            <CheatEntry>
              <ID>105325</ID>
              <Description>"⬆Only change character in-game, and don't lock it."</Description>
              <Color>C0C0C0</Color>
              <GroupHeader>1</GroupHeader>
            </CheatEntry>
            <CheatEntry>
              <ID>106676</ID>
              <Description>"Game Time"</Description>
              <DropDownList DescriptionOnly="1" DisplayValueAsItem="1">??:Waiting
</DropDownList>
              <ShowAsSigned>0</ShowAsSigned>
              <Color>C08000</Color>
              <VariableType>String</VariableType>
              <Length>7</Length>
              <Unicode>0</Unicode>
              <CodePage>0</CodePage>
              <ZeroTerminate>1</ZeroTerminate>
              <Address>Four</Address>
            </CheatEntry>
            <CheatEntry>
              <ID>2068</ID>
              <Description>"Ranking"</Description>
              <DropDownList DescriptionOnly="1" DisplayValueAsItem="1">??:Waiting
</DropDownList>
              <Color>C08000</Color>
              <VariableType>4 Bytes</VariableType>
              <Address>"Crazy Taxi.exe"+12A28F4</Address>
            </CheatEntry>
            <CheatEntry>
              <ID>105324</ID>
              <Description>"Customers"</Description>
              <DropDownList DescriptionOnly="1" DisplayValueAsItem="1">??:Waiting
</DropDownList>
              <Color>C08000</Color>
              <VariableType>4 Bytes</VariableType>
              <Address>"Crazy Taxi.exe"+12A6744</Address>
            </CheatEntry>
            <CheatEntry>
              <ID>3</ID>
              <Description>"Total Earned"</Description>
              <DropDownList DescriptionOnly="1" DisplayValueAsItem="1">??:Waiting
</DropDownList>
              <Color>C08000</Color>
              <VariableType>4 Bytes</VariableType>
              <Address>"Crazy Taxi.exe"+12A41B8</Address>
            </CheatEntry>
            <CheatEntry>
              <ID>9</ID>
              <Description>"Fare"</Description>
              <DropDownList DescriptionOnly="1" DisplayValueAsItem="1">??:Waiting
</DropDownList>
              <Color>C08000</Color>
              <VariableType>4 Bytes</VariableType>
              <Address>"Crazy Taxi.exe"+12F10E0</Address>
            </CheatEntry>
            <CheatEntry>
              <ID>11</ID>
              <Description>"Combo"</Description>
              <DropDownList DescriptionOnly="1" DisplayValueAsItem="1">??:Waiting
</DropDownList>
              <Color>C08000</Color>
              <VariableType>4 Bytes</VariableType>
              <Address>"Crazy Taxi.exe"+12F59D8</Address>
            </CheatEntry>
          </CheatEntries>
        </CheatEntry>
        <CheatEntry>
          <ID>106632</ID>
          <Description>"==== Extras ====="</Description>
          <Options moHideChildren="1" moDeactivateChildrenAsWell="1"/>
          <Color>C080FF</Color>
          <GroupHeader>1</GroupHeader>
          <CheatEntries>
            <CheatEntry>
              <ID>106697</ID>
              <Description>"Another Day"</Description>
              <Color>C08000</Color>
              <VariableType>Auto Assembler Script</VariableType>
              <AssemblerScript>[ENABLE]

aobscanmodule(Seven,Crazy Taxi.exe,83 3D 04 23 66 01 00 74 11)
alloc(newmem,$1000)

label(code)
label(return)

newmem:

code:
  mov dword ptr ["Crazy Taxi.exe"+1262304],01
  jmp return

Seven:
  jmp newmem
  nop 2

return:
registersymbol(Seven)

[DISABLE]

Seven:
  db 83 3D 04 23 66 01 00

unregistersymbol(Seven)
dealloc(newmem)
</AssemblerScript>
            </CheatEntry>
            <CheatEntry>
              <ID>106693</ID>
              <Description>"⬆Enable before entering the game to have it start in Another Day mode."</Description>
              <Color>C0C0C0</Color>
              <GroupHeader>1</GroupHeader>
            </CheatEntry>
            <CheatEntry>
              <ID>106708</ID>
              <Description>"Random Cabbie"</Description>
              <Color>C08000</Color>
              <VariableType>Auto Assembler Script</VariableType>
              <AssemblerScript>[ENABLE]

{$lua}
  if syntaxcheck then return end
  local t = createTimer(nil,false)
  t.Interval = 50
  t.OnTimer = function(timer)
  local cabbie = "Crazy Taxi.exe+12F1D88"
  math.randomseed(os.time())
  local driver = math.random(0,62)
  writeInteger(cabbie,driver)
  memrec.Active = false
  timer.destroy()
  end
  t.Enabled = true
{$asm}

[DISABLE]
</AssemblerScript>
            </CheatEntry>
            <CheatEntry>
              <ID>106709</ID>
              <Description>"⬆Changes the character in-game each time you click."</Description>
              <Color>C0C0C0</Color>
              <GroupHeader>1</GroupHeader>
            </CheatEntry>
            <CheatEntry>
              <ID>106629</ID>
              <Description>"Stack Customers"</Description>
              <Color>C08000</Color>
              <VariableType>Auto Assembler Script</VariableType>
              <AssemblerScript>[ENABLE]

aobscanmodule(Eight,Crazy Taxi.exe,8B 1D 54 67 6A 01 EB)
alloc(newmem,$1000)

label(code)
label(return)

newmem:

code:
  xor ebx,ebx
  mov ["Crazy Taxi.exe"+12A6754],ebx
  jmp return

Eight:
  jmp newmem
  nop

return:
registersymbol(Eight)

[DISABLE]

Eight:
  db 8B 1D 54 67 6A 01

unregistersymbol(Eight)
dealloc(newmem)
</AssemblerScript>
            </CheatEntry>
            <CheatEntry>
              <ID>106633</ID>
              <Description>"⬆Taking multiple customers to the same drop-off location at once will break the game."</Description>
              <Color>C0C0C0</Color>
              <GroupHeader>1</GroupHeader>
            </CheatEntry>
            <CheatEntry>
              <ID>106706</ID>
              <Description>"Speedometer"</Description>
              <Color>C08000</Color>
              <VariableType>Auto Assembler Script</VariableType>
              <AssemblerScript>[ENABLE]

{$lua}
  if speedometer then
  speedometer.destroy()
  speedometer = nil
  end
  local target = getAddress("Crazy Taxi.exe+177A7FC")
  speedometer = createTimer()
  speedometer.Interval = 1000
  speedometer.OnTimer = function()
  if getOpenedProcessID() == 0 then
  speedometer.destroy()
  speedometer = nil
  return
  end
  writeInteger(target,1)
  end
{$asm}

[DISABLE]

{$lua}
  if speedometer then
  speedometer.destroy()
  speedometer = nil
  end
  writeInteger("Crazy Taxi.exe+177A7FC",0)
{$asm}

</AssemblerScript>
            </CheatEntry>
            <CheatEntry>
              <ID>106687</ID>
              <Description>"Stop Traffic"</Description>
              <Color>C08000</Color>
              <VariableType>Auto Assembler Script</VariableType>
              <AssemblerScript>[ENABLE]

Two:
  db 1

[DISABLE]

Two:
  db 0
</AssemblerScript>
            </CheatEntry>
            <CheatEntry>
              <ID>106688</ID>
              <Description>"Crazy Reverse Traffic"</Description>
              <Color>C08000</Color>
              <VariableType>Auto Assembler Script</VariableType>
              <AssemblerScript>[ENABLE]

Three:
  db 1

[DISABLE]

Three:
  db 0
</AssemblerScript>
            </CheatEntry>
            <CheatEntry>
              <ID>106600</ID>
              <Description>"Crazy Box Cleared"</Description>
              <Color>C08000</Color>
              <VariableType>Auto Assembler Script</VariableType>
              <AssemblerScript>[ENABLE]

aobscanmodule(Nine,Crazy Taxi.exe,8B 89 6C FA 64 01)
alloc(newmem,$1000)

label(code)
label(return)

newmem:

code:
  mov dword ptr [ecx+"Crazy Taxi.exe"+124FA6C],FFFF
  mov ecx,[ecx+"Crazy Taxi.exe"+124FA6C]
  jmp return

Nine:
  jmp newmem
  nop

return:
registersymbol(Nine)

[DISABLE]

Nine:
  db 8B 89 6C FA 64 01

unregistersymbol(Nine)
dealloc(newmem)
</AssemblerScript>
            </CheatEntry>
            <CheatEntry>
              <ID>106601</ID>
              <Description>"⬆Complete any Crazy Challenge to unlock the bike."</Description>
              <Color>C0C0C0</Color>
              <GroupHeader>1</GroupHeader>
            </CheatEntry>
          </CheatEntries>
        </CheatEntry>
      </CheatEntries>
    </CheatEntry>
  </CheatEntries>
  <UserdefinedSymbols/>
  <Comments>Created by: Outrun
https://opencheattables.com</Comments>
</CheatTable>
