Si usas PAlib es bastante fácil de definir. Hay una función que te permite indicar en un parametro donde quieres que se quede la animación cuando acabe. Tres ejemplos de la función:
PA_StartSpriteAnimEx(0, 1, 0, 6, 5, ANIM_ONESHOT); // just play it once...
PA_StartSpriteAnimEx(0, 2, 0, 6, 5, ANIM_UPDOWN, -1); // back and forth, infinite number of times
PA_StartSpriteAnimEx(0, 3, 0, 6, 5, ANIM_LOOP, 5); // Play it 5 times
La función en cuestión es esta:
PA_SetSpriteAnimEx (bool screen, u8 sprite, u8 lx, u8 ly, u8 ncolors, s16 animframe)
Para que se quede en el último frame en vez de volver al primero, debes poner el ANIM_UPDOWN y luego un número de veces que quieres que se repita (-1 es infinito, que es lo que pone en el ejemplo).
Saludos