Frame rule
A frame rule is a set of logic used to constrain the number of actions to a specific period of recurrence. Frame rules come in 3 main classes: strict, staggered, and personal.
Strict frame rules
Strict frame rules are ones which follow the game's main frame counter exactly. Actions that use the same strict frame rule will always be able to sync up, if they are to be performed together.
An example of a strict frame rule is gibdo turning, which always happens every 8 frames, when the main frame counter is a multiple of 8.
Staggered frame rules
Staggered frame rules are ones which follow the game's main frame counter and another value. Almost sprite interaction to damage Link and every ancilla interaction with sprites is on a staggered frame rule. In these cases, the value used is the index of the sprite or ancilla. First, the index is exclusive OR'd with the main frame counter. If the bottom 2 bits of the new value are both 0, then the interaction check proceeds.
This table shows how sprite slot determines the offset for the most common frame rule—interacting with Link.
4n+0 | 4n+1 | 4n+2 | 4n+3 | ||||
---|---|---|---|---|---|---|---|
Index | 0 | 4 | 8 | 12 | |||
1 | 5 | 9 | 13 | ||||
2 | 6 | 10 | 14 | ||||
3 | 7 | 11 | 15 |
Personal frame rules
Personal frame rules are one which follow a timer exclusive to whatever is performing the action. An example of a personal frame rule is with buzzblobs, which dance around when buzzing based on their buzzing timer.