Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- local dis
- 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 get100()
- dis = nil
- for i = 4, 500, 1 do
- if rngs[i] >= 65534 then
- dis = i-3
- break
- end
- end
- end
- while true do
- local nsim = 20
- rngs = rngsim(500)
- for i = 1, nsim do
- gui.text(228, 8*(i-1), string.format("%3d", rngs[i]/655))
- end
- if dis ~= nil then
- gui.text(4,4,"Distance: " .. dis)
- if dis == 1 then
- gui.text(174,(dis+2)*8,"-->","red")
- else
- gui.text(212,(dis+2)*8,"-->","red")
- end
- end
- gui.text(206,0,"RNG1:")
- gui.text(206,8,"RNG2:")
- gui.text(206,16,"RNG3:")
- gui.text(190,24,"Next RNs:")
- get100()
- emu.frameadvance()
- end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement