Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- Save = savestate.create()
- savestate.save(Save)
- BattleCheck = 1000
- Phase = 0x0202BC07
- rngbase = 0x03000000
- key1 = {}
- key1['A'] = true
- jump = {}
- php = 0x0203E064
- phit = 0x0203E0C6
- pdmg = 0x0203E0CA
- pcrt = 0x0203E0CE
- ehp = 0x0203E062
- ehit = 0x0203E0C4
- edmg = 0x0203E0C8
- ecrt = 0x0203E0CC
- function nextrng(r1, r2, r3)
- return AND(XOR(SHIFT(r3, 5), SHIFT(r2, -11), SHIFT(r1, -1), SHIFT(r2, 15)),0xFFFF)
- end
- function rngsim(n)
- local rngbase=0x03000000
- local result = { memory.readword(rngbase+4), memory.readword(rngbase+2), memory.readword(rngbase+0) }
- for i = 4, n do
- result[i] = nextrng(result[i-3],result[i-2],result[i-1])
- end
- return result
- end
- function printstats(n)
- if n == 255 then
- n = "---"
- end
- return n
- end
- function stats()
- gui.text(0,16,"Player")
- gui.text(0,24,"HP: " .. printstats(memory.readbyte(php)))
- gui.text(0,32,"Hit: " .. printstats(memory.readbyte(phit)))
- gui.text(0,40,"Damage: " .. printstats(memory.readbyte(pdmg)))
- gui.text(0,48,"Crit: " .. printstats(memory.readbyte(pcrt)))
- gui.text(0,64,"Enemy")
- gui.text(0,72,"HP: " .. printstats(memory.readbyte(ehp)))
- gui.text(0,80,"Hit: " .. printstats(memory.readbyte(ehit)))
- gui.text(0,88,"Damage: " .. printstats(memory.readbyte(edmg)))
- gui.text(0,96,"Crit: " .. printstats(memory.readbyte(ecrt)))
- local nsim = 20
- rngs = rngsim(35)
- for i = 1, nsim do
- gui.text(228, 8*(i-1), string.format("%3d", rngs[i]/655.36))
- end
- gui.text(210,0,"RNG1:")
- gui.text(210,8,"RNG2:")
- gui.text(210,16,"RNG3:")
- gui.text(194,24,"Next RNs:")
- end
- skips = -1
- while skips ~= BattleCheck do
- skips = skips + 1
- savestate.load(Save)
- for n = 1,skips,1 do
- Rtemp = nextrng(memory.readword(rngbase+4), memory.readword(rngbase+2), memory.readword(rngbase+0))
- memory.writeword(rngbase+4, memory.readword(rngbase+2))
- memory.writeword(rngbase+2, memory.readword(rngbase+0))
- memory.writeword(rngbase+0, Rtemp)
- end
- R = {}
- for Rl = 0,4,2 do
- R[Rl/2] = memory.readword(rngbase+Rl)
- end
- while memory.readbyte(Phase) == 128 do
- joypad.set(1,key1)
- key1.start = (not key1.start) or nil
- gui.text(0,0, string.format('%d of %d done.', skips, BattleCheck))
- jump = input.get()
- if jump.Q then
- Phase = 0
- elseif jump.W then
- Phase = 0
- skips = skips - 2
- end
- stats()
- emu.frameadvance()
- end
- end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement