Plagued with an unfriendly Timer0, I often miss my targeted frame and I found it tricky to guess the PID frame I hit after walking to increment the IVs frame, especially with many turns. So, I conducted a small experiment, walking up and down inside the last room on Victory Road. Using "sweet scent" and "max repel", I repeatedly determined the PID frame every 5 steps and 1 turn, increasing the total path length every restart (up to 160 steps). I ended up with the following picture, showing how much increases the PID frame after each turn. Odd turn numbers are for "from North to South" facing direction change (resp. even for "from South to North").
My analysis is that:
- Turning increases the PID frame by 2 to 5 (I didn't experienced higher values).
- 2 is an obvious lower bound, whereas 4 seems an acceptable upper bound.
- With "enough" turns, 3 is a good average.
- The increment is not related to the direction change, nor to the floor tile you are turning on.
So, when "combing" RNGreporter PID frames, I am now restricting the search between "MinFrame" and "MaxFrame" calculated as:
- MinFrame = SSF + 2*step + 2*turn
- MaxFrame = MinFrame + 2*turn
where:
- "SSF" is given by the RNGreporter button labeled "Calculate Initial PIDRNG Frame".
- "step" is the number of time the character moves from one tile to another.
- "turn" is the number of time the character facing direction changes, without displacement.
As an example with SSF equals 42, walking 128 steps and turning 24 times leads to MinFrame = 346 and MaxFrame = 394, with "just" 48 frames to check...
Obviously for prediction, turning too often is not a good idea! Also, there is no chance to hit a frame below "MinFrame", unless reducing the number of steps...
As a side effect during this research, I noticed that:
- Bumping into wall does not affect the PID frame.
- Using another "repel" just after the previous one ended does not affect the PID frame.
- The last step of a standard repel (from the 99th to the 100th step) increases the PID frame by 1, not 2. So using a sequence of two "repel" leads to a different PID frame compared to just one "max repel".
As a conclusion, I hope this might be useful to other RNGistes fellows.
PS1: If some RNG guru thinks this is already searched ground, please let me know before I start looking at left<->right displacements...
PS2: Editing my poor English grammar to improve the intelligibility of all this is most welcome.