This page documents information about Famidash
. Many of the tricks demonstrated here are near impossible in real time and documented for the purposes of creating Tool-assisted Speedruns.
local function _newrand(rng)
for i=1,8 do
if rng>=0x80000000 then
-- & means bitwise AND, ~ means bitwise XOR
rng = ((rng*2)&0xFFFFFFFF)~0xC5
else
rng = rng*2
end
end
return rng
end
local function rand1(rng)
local lbyte=rng&0xFF
if lbyte>=0x80 then
-- & means bitwise AND, ~ means bitwise XOR
lbyte=((lbyte*2)&0xFF)~0xCF
else
lbyte=lbyte*2
end
-- | means bitwise OR
return ((rng&0xFFFFFF00)|lbyte)
end
(frame 1): run _newrand x1
(frame 2): run _newrand x1
(frame 3): run _newrand x22 then rand1 x16 then _newrand x1
(frame 4): run rand1 x16 then _newrand x1
(frame 5): run _newrand x2 then rand1 x16 then _newrand x1
(frame 6&7): run rand1 x16 then _newrand x1
(frame 8): run _newrand (random player character) then rand1 x16 then _newrand x1
(frame 9-31): run rand1 x16 then _newrand x1
(frame 32): run _newrand x2.
- If RNG values are equal mod 64: run rand1 x16 then kill player.
- Otherwise: run rand1 x16 then _newrand x1 and continue.
(frame 33): run rand1 x16 then _newrand x1
(frame 34-36): run rand1 x15 then _newrand x1
(frame 37): run rand1 x9 then _newrand x1
(frame 38): run _newrand x2.
- If RNG values are equal mod 64: run rand1 x9 then kill player.
- Otherwise: run rand1 x9 then _newrand x1 and continue.
(frame 39-41): run rand1 x9 then _newrand x1
At this point, the distance is 7840. The next distance at which player survival check occurs is 8448.
Repeat the following until distance is 3219328:
{
If distance has not yet reached/exceeded the next survival check distance:
- Run _newrand then add 708 to distance.
Otherwise, if distance has reached/exceeded the next survival check distance:
- Run _newrand x2.
-- If RNG values are equal mod 64: kill player.
-- Otherwise: Run _newrand, add 4096 to get next check distance, add 708 to distance.
}
Once the distance is 3219328, the following now applies:
(frame 1): run rand1 x2 then _newrand x1
(frame 2): run _newrand x2.
- If RNG values are equal mod 64: run rand1 x2 then kill player.
- Otherwise: run rand1 x2 then _newrand x1 and continue.
(frame 3-5): run rand1 x2 then _newrand x1
(frame 6-7): run rand1 x4 then _newrand x1
(frame 8): run _newrand x2.
- If RNG values are equal mod 64: run rand1 x4 then kill player.
- Otherwise: '''Success: Player will beat the level.'''