A8 (Value Cycler) [Clay10]

A80ZZZZT MMMMXXXX <-- Z=c ode 's counter, best to start at "0". T = function of A8, see values below. MMMM = best set to 0, other values for M are not needed. X = how long it takes to add one cycle

80000000 ________ <-- 80000000 = set gecko register to address of code. _ = address of code

86Y10000 XXXXXXXX <-- 86Y10000 = value operations. Y = what the code does, see below for list of values for Y. X = value desired to do "Y" to address

24______ XXXXXXXX <-- once address _ reaches value X, activate following code

04______ XXXXXXXX <-- set value back to start value. X = whatever start value was

E2000001 00000000 <-- endif


T:

T = 0 : Do Code's Operation, then run Condition.

T = 1 : Apply an Endif, then do Code's Operation, finally run Condition.

T = 8 : Do Code's Operation, then run Condition (and if it is true, reset counter to 0).

T = 9 : Apply an Endif, then do Code's Operation, finally run Condition (and if it is true, reset counter to 0).


For a cycler, it is best that T = 8


Y:

0 : add (+)

1 : mul (*)

2 : or (|)

3 : and (&)

4 : xor (^)

5 : slw ( <<)

6 : srw (>>)

7 : rol (rotate left)

8 : asr (arithmetic shift right)

9 : fadds (single float add)

A : fmuls (single float mul)


To add XXXXXXXX to the address ________, you would use 86010000 XXXXXXXX. You can use anything from the above list, though.


Remember to change the 24 and the 04 to 25 and 05 when dealing with 81 memrange



Example:

Cycle Combat Record Slot 1 Gun [BoxNinja]

A8000008 00000030

80000000 80C36AB8

86010000 00000001

24C36AB8 0000000E

04C36AB8 00000000

E2100000 80008000