0x25 0xbb 0xaa
0x26 0xww 0xvv 0xbb 0xaa
These are meant to be used with Special1, for their effects are what matter.
Generaly they either return by themselves a value to the 0x800y familly (most often 0x8004,0x8005 or 0x800D)
These are special ones, for they seem to have fallen out of use from R\S, mostly because of the lack of real-time events,secret-bases and contests.
I Studied some of them through decompiling the ASM code, and all those I saw jumped to the same function, So I ruled them out as useless.
These are meant to be called with Special2, as the value is what is important.
Generaly, it's about reading values, not editing them.
1. Special\2 found by script executer;
2. loads address based on Special appearece(special table pointer);
2.5. (the executer loads variable address in the 2nd case);
3. special number is loaded;
4. multiplies the number by 4 (adress byte size), adds it to the address loaded;
5. checks if bigger than address + (1BB*4). If not, load data from address(function address), then run it.