you can use a lua script to run a custom memory search function to find the offset.
Examples:
http://pastebin.com/Ei3KJKX4 (kirby super star ultra)
You slide to the left - Kirby's speed becomes -704 - then you click somewhere to run the custom function that searches for addresses that have that value. Then chances are you have the offset for all other addresses that you need, as well.
http://tasvideos.org/forum/viewtopic.php?p=414994#414994 (Yoshi's topsy turvy)
Likewise procedure: walk left so yoshi's speed becomes -512, then do the search.
local speed=-512
local z=0
local memorys={}
function MSearch()
for i=0,53000 do
memorys[i]=memory.readwordsigned(0x02000000+2*i)
if memorys[i]==speed then
z=2*i
break
end
end
end
(...)
while true do
Xspeed = memory.readwordsigned(0x02000000+z)
Yspeed = memory.readwordsigned(0x02000000+z+4)
Angle = memory.readbyteunsigned(0x02000000+z-22)
(...)
emu.frameadvance()
end