Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- while true do
- seed1 = memory.readbyte(0x7E0993) + (memory.readbyte(0x7E0994) * 256)
- seed2 = memory.readbyte(0x7E0995) + (memory.readbyte(0x7E0996) * 256)
- text = " "
- color = "white"
- xx = 0
- yy = 0
- if memory.readbyte(0x7E007F) % 8 == 0 then
- text = "*"
- end
- seedupper = math.floor(seed1 / 256)
- seedlower = seed1 % 256
- seedupper = (seedupper + (7 - (memory.readbyte(0x7E007F) % 8))) % 256
- seedlower = (seedlower + (7 - (memory.readbyte(0x7E007F) % 8))) % 256
- seed1 = seedlower + (seedupper * 256)
- seed2 = (seed2 + ((7 - (memory.readbyte(0x7E007F) % 8)))) % 65536
- for i = 1, 64 do --乱数生成処理
- resist1 = seed1
- resist2 = seed2
- carry = math.floor((seed1 * 2) / 65536)
- seed1 = (seed1 * 2) % 65536
- seed2 = ((seed2 * 2) + carry) % 65536
- carry = math.floor((seed1 + resist1) / 65536)
- seed1 = (seed1 + resist1) % 65536
- seed2 = (seed2 + resist2 + carry) % 65536
- carry = math.floor((seed1 + 0x15AD) / 65536)
- seed1 = (seed1 + 0x15AD) % 65536
- seed2 = (seed2 + carry) % 65536
- rand = seed2 % 256
- --乱数を画面に表示させる
- if rand < 10 then color = "green" --10未満の乱数を色付け
- elseif rand < 28 then color = "blue" end --28未満の乱数を色付け
- if i > 32 then xx = 20
- yy = -192
- end
- gui.text(10+xx,6*(i+4)+yy, rand.." "..text,color)
- seedupper = math.floor(seed1 / 256)
- seedlower = seed1 % 256
- seedupper = (seedupper + 8) % 256
- seedlower = (seedlower + 8) % 256
- seed1 = seedlower + (seedupper * 256)
- seed2 = (seed2 + 8) % 65536
- end
- xx = 0
- yy = 0
- color = "white"
- seed1 = memory.readbyte(0x7E0993) + (memory.readbyte(0x7E0994) * 256)
- seed2 = memory.readbyte(0x7E0995) + (memory.readbyte(0x7E0996) * 256)
- seedupper = math.floor(seed1 / 256)
- seedlower = seed1 % 256
- seedupper = (seedupper + (7 - (memory.readbyte(0x7E007F) % 8))) % 256
- seedlower = (seedlower + (7 - (memory.readbyte(0x7E007F) % 8))) % 256
- seed1 = seedlower + (seedupper * 256)
- seed2 = (seed2 + ((7 - (memory.readbyte(0x7E007F) % 8)))) % 65536
- for i = 1, 64 do
- if i == 1 then --8フレーム停止した時にどんな乱数列に切り替わるかを表示させる
- seedupper = math.floor(seed1 / 256)
- seedlower = seed1 % 256
- seedupper = (seedupper + 8) % 256
- seedlower = (seedlower + 8) % 256
- seed1 = seedlower + (seedupper * 256)
- seed2 = (seed2 + 8) % 65536
- end
- resist1 = seed1
- resist2 = seed2
- carry = math.floor((seed1 * 2) / 65536)
- seed1 = (seed1 * 2) % 65536
- seed2 = ((seed2 * 2) + carry) % 65536
- carry = math.floor((seed1 + resist1) / 65536)
- seed1 = (seed1 + resist1) % 65536
- seed2 = (seed2 + resist2 + carry) % 65536
- carry = math.floor((seed1 + 0x15AD) / 65536)
- seed1 = (seed1 + 0x15AD) % 65536
- seed2 = (seed2 + carry) % 65536
- rand = seed2 % 256
- if rand < 10 then color = "green"
- elseif rand < 28 then color = "blue"
- elseif rand < 251 and rand > 246 then color = "red" end
- if i > 32 then xx = 20
- yy = -192
- end
- gui.text(50+xx,6*(i+4)+yy, rand.." "..text,color)
- seedupper = math.floor(seed1 / 256)
- seedlower = seed1 % 256
- seedupper = (seedupper + 8) % 256
- seedlower = (seedlower + 8) % 256
- seed1 = seedlower + (seedupper * 256)
- seed2 = (seed2 + 8) % 65536
- end
- xx = 0
- yy = 0
- color = "white"
- seed1 = memory.readbyte(0x7E0993) + (memory.readbyte(0x7E0994) * 256)
- seed2 = memory.readbyte(0x7E0995) + (memory.readbyte(0x7E0996) * 256)
- seedupper = math.floor(seed1 / 256)
- seedlower = seed1 % 256
- seedupper = (seedupper + (7 - (memory.readbyte(0x7E007F) % 8))) % 256
- seedlower = (seedlower + (7 - (memory.readbyte(0x7E007F) % 8))) % 256
- seed1 = seedlower + (seedupper * 256)
- seed2 = (seed2 + ((7 - (memory.readbyte(0x7E007F) % 8)))) % 65536
- for i = 1, 64 do
- if i == 1 then --15フレーム停止した時(メニュー開閉)どのような乱数列に切り替わるか
- seedupper = math.floor(seed1 / 256)
- seedlower = seed1 % 256
- seedupper = (seedupper + 15) % 256
- seedlower = (seedlower + 15) % 256
- seed1 = seedlower + (seedupper * 256)
- seed2 = (seed2 + 15) % 65536
- end
- resist1 = seed1
- resist2 = seed2
- carry = math.floor((seed1 * 2) / 65536)
- seed1 = (seed1 * 2) % 65536
- seed2 = ((seed2 * 2) + carry) % 65536
- carry = math.floor((seed1 + resist1) / 65536)
- seed1 = (seed1 + resist1) % 65536
- seed2 = (seed2 + resist2 + carry) % 65536
- carry = math.floor((seed1 + 0x15AD) / 65536)
- seed1 = (seed1 + 0x15AD) % 65536
- seed2 = (seed2 + carry) % 65536
- rand = seed2 % 256
- if rand < 10 then color = "green"
- elseif rand < 18 then color = "blue" end
- if i > 32 then xx = 20
- yy = -192
- end
- gui.text(160+xx,6*(i+4)+yy, rand.." "..text,color)
- seedupper = math.floor(seed1 / 256)
- seedlower = seed1 % 256
- seedupper = (seedupper + 8) % 256
- seedlower = (seedlower + 8) % 256
- seed1 = seedlower + (seedupper * 256)
- seed2 = (seed2 + 8) % 65536
- end
- xx = 0
- yy = 0
- color = "white"
- seed1 = memory.readbyte(0x7E0993) + (memory.readbyte(0x7E0994) * 256)
- seed2 = memory.readbyte(0x7E0995) + (memory.readbyte(0x7E0996) * 256)
- seedupper = math.floor(seed1 / 256)
- seedlower = seed1 % 256
- seedupper = (seedupper + (7 - (memory.readbyte(0x7E007F) % 8))) % 256
- seedlower = (seedlower + (7 - (memory.readbyte(0x7E007F) % 8))) % 256
- seed1 = seedlower + (seedupper * 256)
- seed2 = (seed2 + ((7 - (memory.readbyte(0x7E007F) % 8)))) % 65536
- for i = 1, 64 do
- if i == 1 then --16フレーム停止したときにどのような乱数列に切り替わるか(不要かも?)
- seedupper = math.floor(seed1 / 256)
- seedlower = seed1 % 256
- seedupper = (seedupper + 16) % 256
- seedlower = (seedlower + 16) % 256
- seed1 = seedlower + (seedupper * 256)
- seed2 = (seed2 + 16) % 65536
- end
- resist1 = seed1
- resist2 = seed2
- carry = math.floor((seed1 * 2) / 65536)
- seed1 = (seed1 * 2) % 65536
- seed2 = ((seed2 * 2) + carry) % 65536
- carry = math.floor((seed1 + resist1) / 65536)
- seed1 = (seed1 + resist1) % 65536
- seed2 = (seed2 + resist2 + carry) % 65536
- carry = math.floor((seed1 + 0x15AD) / 65536)
- seed1 = (seed1 + 0x15AD) % 65536
- seed2 = (seed2 + carry) % 65536
- rand = seed2 % 256
- if i > 32 then xx = 20
- yy = -192
- end
- if rand < 10 then color = "green"
- elseif rand < 28 then color = "blue" end
- gui.text(200+xx,6*(i+4)+yy, rand.." "..text,color)
- seedupper = math.floor(seed1 / 256)
- seedlower = seed1 % 256
- seedupper = (seedupper + 8) % 256
- seedlower = (seedlower + 8) % 256
- seed1 = seedlower + (seedupper * 256)
- seed2 = (seed2 + 8) % 65536
- end
- --レジスタの値を取得し、現在の危険度(その数値未満でエンカウント)を表示する(危険度、現在の乱数、歩数の順に表示)
- if regA == nil then regA = 9999 end
- if hikaku == nil then hikaku = 9999 end
- memory.registerexec(0x23E8BE, function()
- regA = memory.getregister("a")
- hikaku = memory.readbyte(0x000000)
- end)
- hosuu = memory.readbyte(0x7E1A9B)
- gui.text(200,10,regA.." "..hikaku.." "..hosuu)
- gui.text(10,22,memory.readbyte(0x7E0993).." "..memory.readbyte(0x7E0994).." "..memory.readbyte(0x7E0995).." "..memory.readbyte(0x7E0996).." " ..text)
- emu.frameadvance()
- end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement