I'll make them temp encode, since sync is tricky. Also lua script I used to display things:
Download cars.luaLanguage: lua
--[[
14
00000 0228AABA b s 0 car 1
00001 0228B1DA b s 0 car 2
00002 0228B67E b s 0 car 3 1
00003 0228BB0A b s 0 car 4
00004 0228BFBE b s 0 car 5
00005 0228C42E b s 0 car 6
00006 0228C8CA b s 0 car 7
00007 0228CD56 b s 0 car 8
00008 00000000 S S 0 ----------------------------
00009 0228D1E2 b s 0 car 9
0000A 0228D66E b s 0 car 10
0000B 0228DB12 b s 0 car 11
0000C 0228DF9E b s 0 car 12
0000D 0228E452 b s 0 car 13
0000E 0228E8C2 b s 0 car 14
0000F 0228ED5E b s 0 car 15
00010 0228F22E b s 0 car 16
car 16 - car 15 = 4D0
car 15 - car 14 = 49C
car 14 - car 13 = 470
car 13 - car 12 = 4B4
car 12 - car 11 = 48C
car 11 - car 10 = 4A4
car 10 - car 9 = 48C
car 9 - car 8 = 48C
car 8 - car 7 = 48C
car 7 - car 6 = 49C
car 6 - car 5 = 470
car 5 - car 4 = 4B4
car 4 - car 3 = 48C
car 3 - car 2 = 4A4
car 2 - car 1 = 720
02170590 pointer? this value + 818 is car 1 state
+0x1A for meter
]]--
local pointer_flo = 0x02170590 --Pointer for Flo's VB Cafe minigame
local car_offset = {0x818, 0x720, 0x4A4, 0x48C, 0x4B4, 0x470, 0x49C, 0x48C,
0x48C, 0x48C, 0x4A4, 0x48C, 0x4B4, 0x470, 0x49C, 0x4D0
} --Add to each other, starting from pointer + 0x818 for car 1
local car_states = {0,0,0,0,0,0,0,0}--addresses of states
local color = {"Blue","Yellow","Green","Green"}
function update()
local ptr1 = memory.readlongsigned(pointer_flo)
if ptr1 ~= 0 then
car_states[1] = ptr1+car_offset[1]
for i = 2, 16 do
car_states[i] = car_states[i-1] + car_offset[i]
end
end
end
function flo_fn()
local ptr1 = memory.readlongsigned(pointer_flo)
if ptr1 ~= 0 then
update()
for i = 0, 7 do
local state = memory.readbyte(car_states[i+1])
local hp = string.format('%.6f',memory.readdword(car_states[i+1]+0x18)/4096.0)
gui.drawtext(0,0+10*i,"Car"..i..": "..state.." "..hp,color[state])
end
for i = 8, 15 do
local state = memory.readbyte(car_states[i+1])
local hp = string.format('%.6f',memory.readdword(car_states[i+1]+0x18)/4096.0)
gui.drawtext(120,0+10*(i-8),"Car"..i..": "..state.." "..hp,color[state])
end
end
end
function piston_fn()
--[[4 tires: Up left, Up right, Lower left, Lower right. All start at 255 HP
"Real addresses"
Cup 1
local Mcqueen = {0x0221B8DC, 0x0221B8DD, 0x0221B8DE, 0x0221B8DF}
local Chicks = {0x02232A48, 0x02232A49, 0x02232A4A, 0x02232A4B}
Cup 2
local Mcqueen = {0x022018AC, 0x022018AD, 0x022018AE, 0x022018AF}
local Chicks = {0x02231FAC, 0x02231FAD, 0x02231FAE, 0x02231FAF}
Cup 4
local McQueen
local Chicks = {0x02231E50, 0x02231E51, 0x02231E52, 0x02231E53}
]]--
local Mcqueen = {0x021FDF94, 0x021FE26C, 0x021FE3EC, 0x021FE56C}
local Chicks = {0x021FEC6C, 0x021FEE08, 0x021FEFA4, 0x021FF140}
local coord = {0,20,0,20,10,10,20,20}
local total_hp = 0
local total_hp2 = 0
gui.drawtext(0,0,"McQueen","Red")
gui.drawtext(60,0,"Chicks","Green")
for i = 1,4 do
local hp = memory.readbyte(Mcqueen[i])
local hp2 = memory.readbyte(Chicks[i])
total_hp = total_hp+memory.readbyte(Mcqueen[i])
total_hp2 = total_hp2+memory.readbyte(Chicks[i])
gui.drawtext(coord[i],coord[i+4],hp,"Red")
gui.drawtext(coord[i]+60,coord[i+4],hp2,"Green")
end
gui.drawtext(0,30,"Total:"..total_hp,"Red")
gui.drawtext(60,30,"Total:"..total_hp2,"Green")
end
function sherif_fn()
local hook = 0x021F3598
gui.drawtext(0,0,"Hook Y: "..memory.readdword(hook)/4096.0)
end
function tractor_fn()
local Matter_X = 0x021EBA8C
local Matter_Y = 0x021EBA90
gui.drawtext(0,0,"X: "..memory.readdword(Matter_X)/4096.0)
gui.drawtext(0,10,"Y: "..memory.readdword(Matter_Y)/4096.0)
end
Z_Best = 0
function hydro_fn()
local color = "Yellow"
local Z = memory.readlongsigned(0x021EAFD4)/4096.0 -- Z
--local Z2 = 0x021EAFD8 -- Z (score check)
local Z_Speed = memory.readlongsigned(0x021EAFDC)/4096.0 -- Z Speed
local Press = memory.readbyte(0x021EAFEC) --Press with stylus at 1
if (Z_Best <Z> 0 then
color = "Green"
else
color = "Yellow"
end
gui.drawtext(0,0, "Z: "..Z.."("..Z_Speed..")",color)
gui.drawtext(0,10, "Highest: "..Z_Best,color)
end
function willys_fn()
local goal = 5762240/4096.0 --The progress meter resets at this value. Convert it to fixed point
local progress = memory.readlongsigned(0x021EB420)/4096.0
local speed = memory.readlongsigned(0x021EB42C)/4096.0
gui.drawtext(0,0, "Percentage: "..(progress/goal*100).."%")
gui.drawtext(0,10, "Progress: "..progress.."("..(progress*4096)..")")
gui.drawtext(0,20, "Speed: "..speed)
end
gui.register(piston_fn)
Looks really bad, because I can't seem to figure out mingame IDs. So you have to manually change the last line to change the display.