Originally posted by imamelia
I see. How many different routines are there? I know $06F700 is one...
Around 4 I think.
Originally posted by imamelia
Could I perhaps use 4 manual frame counters, set the one corresponding to which frame is supposed to be active to 00, and set the other 3 to FF?
If you set a manual trigger to FF and the slot was already displaying another frame, it'll try to display frame FF.
You're on the right track though. You can use 4 manual frame triggers, but set the *actual* frame counter for the slot you want to fire ($7FC080 array for level slots) to FF or any value other than the frame you want, and set the manual trigger used by that slot ($7FC070 array) to the frame you want. Because that's how the code determines an update is required with a manual trigger... when the actual frame counter is not the same as the manual trigger frame value.
If the order of the frames is important you could also set it up so that the animation starts within a frame or 2 instead of having to wait up to 8 frames to start in the right order. For that, use 4 manual triggers but give each slot a copy of all 4 frames of your animation. When you need to start your animation, load $14 (and add 1 if your code runs after LM's animation code for this frame). If the low bit is 1, add another 1 so you're on the next even slot number. AND #$07, use it as the slot offset for the $7FC080 array to set that to FF, and look up which manual trigger corresponds to this slot so you can set it to frame 0 (7FC070 array). Add 2 to the offset, AND #$07, use it as the slot offset for the $7FC080 array to set that to FF, and look up which manual trigger corresponds to this slot so you can set it to frame 1 (7FC070 array). Do the same thing 2 more times for setting frames 2 and 3, and there you go. All 4 slots will fire once in order, with the first one firing on either the next vblank or the one after that.
Originally posted by imamelia
I wonder if I could do it with a one-shot animation instead...
You could, but again you'd have to use 4 different one shot triggers. And if the frame order is important, you'd have to wait up to 8 frames for the right time to start them. Manual would be a little more flexible for getting around that delay.