Bond697 icon

emerald fixed frame counter

Bond697 | PRO | 06/03/13 09:27:44 PM UTC | 0 ⭐ | 671 👁️ | Never ⏰ | []
Lua |

3.12 KB

|

None

|

0 👍

/

0 👎

local natureorder={"Atk","Def","Spd","SpAtk","SpDef"}
local naturename={
 "Hardy","Lonely","Brave","Adamant","Naughty",
 "Bold","Docile","Relaxed","Impish","Lax",
 "Timid","Hasty","Serious","Jolly","Naive",
 "Modest","Mild","Quiet","Bashful","Rash",
 "Calm","Gentle","Sassy","Careful","Quirky"}
local typeorder={
 "Fighting","Flying","Poison","Ground",
 "Rock","Bug","Ghost","Steel",
 "Fire","Water","Grass","Electric",
 "Psychic","Ice","Dragon","Dark"}
 
local start=0x02024744
local personality
local trainerid
local magicword
local growthoffset
local miscoffset
local i
local rngframe=0x020249C0
 
local species
local ivs
local hpiv
local atkiv
local defiv
local spdiv
local spatkiv
local spdefiv
local nature
local natinc
local natdec
local hidpowbase
local hidpowtype
 
while true do
 
 personality=memory.readdwordunsigned(start)
 trainerid=memory.readdwordunsigned(start+4)
 magicword=bit.bxor(personality, trainerid)
 seed=memory.readdwordunsigned(0x03005D80)
 
 i=personality%24
 
 if i<=5 then
  growthoffset=0
 elseif i%6<=1 then
  growthoffset=12
 elseif i%2==0 then
  growthoffset=24
 else
  growthoffset=36
 end
 
 if i>=18 then
  miscoffset=0
 elseif i%6>=4 then
  miscoffset=12
 elseif i%2==1 then
  miscoffset=24
 else
  miscoffset=36
 end
 
 species=bit.band(bit.bxor(memory.readdwordunsigned(start+32+growthoffset),magicword),0xFFF)
 
 ivs=bit.bxor(memory.readdwordunsigned(start+32+miscoffset+4),magicword)
 
 hpiv=bit.band(ivs,0x1F)
 atkiv=bit.band(ivs,0x1F*0x20)/0x20
 defiv=bit.band(ivs,0x1F*0x400)/0x400
 spdiv=bit.band(ivs,0x1F*0x8000)/0x8000
 spatkiv=bit.band(ivs,0x1F*0x100000)/0x100000
 spdefiv=bit.band(ivs,0x1F*0x2000000)/0x2000000
 
 nature=personality%25
 natinc=math.floor(nature/5)
 natdec=nature%5
 
 hidpowtype=math.floor(((hpiv%2 + 2*(atkiv%2) + 4*(defiv%2) + 8*(spdiv%2) + 16*(spatkiv%2) + 32*(spdefiv%2))*15)/63)
 hidpowbase=math.floor(((bit.band(hpiv,2)/2 + bit.band(atkiv,2) + 2*bit.band(defiv,2) + 4*bit.band(spdiv,2) + 8*bit.band(spatkiv,2) + 16*bit.band(spdefiv,2))*40)/63 + 30)
 
 gui.text(0,0,"Stats")
 gui.text(30,0,"HP  "..memory.readwordunsigned(start+86))
 gui.text(65,0,"Atk "..memory.readwordunsigned(start+90))
 gui.text(99,0,"Def "..memory.readwordunsigned(start+92))
 gui.text(133,0,"SpA "..memory.readwordunsigned(start+96))
 gui.text(167,0,"SpD "..memory.readwordunsigned(start+98))
 gui.text(201,0,"Spe "..memory.readwordunsigned(start+94))
 
 gui.text(0,8,"IVs")
 gui.text(30,8,"HP  "..hpiv)
 gui.text(65,8,"Atk "..atkiv)
 gui.text(99,8,"Def "..defiv)
 gui.text(133,8,"SpA "..spatkiv)
 gui.text(167,8,"SpD "..spdefiv)
 gui.text(201,8,"Spe "..spdiv)
 
 gui.text(0,40,"PID:  "..string.format("%08X", personality))
 gui.text(60,40,"IVs: "..string.format("%08X", ivs))
 gui.text(0,50,"Nature: "..naturename[nature+1])
 gui.text(0,60,natureorder[natinc+1].."+ "..natureorder[natdec+1].."-")
 gui.text(167,15,"HP "..typeorder[hidpowtype+1].." "..hidpowbase)
 gui.text(0,95,"Frame "..memory.readdwordunsigned(rngframe)) 
 gui.text(0,105,"Seed: "..string.format("%8X", seed))
 print("Seed: "..string.format("%8X", seed))
 
 emu.frameadvance()
 
end

Comments