Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- 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
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement