Felicitaciones, te quedo muy bueno. Pero nos falta el control del framerate, me imagino que va muy rápido el muñeco.
Si tenes que hacer una tabla de atributos invertida, fijate la tabla SonicX_flip lo unico que tiene distinto es el ultimo parametro, sprHflip (sprite Horizontal flip). Y cuando llames a la función, usas la tabla invertida slDispSprite (pos, tablainvertida, angulo).
SPR_ATTR attr_SonicX[] = {
SPR_ATTRIBUTE(0,No_Palet,No_Gouraud,CL32KRGB|SPenb|ECdis,sprNoflip),
............
SPR_ATTRIBUTE(10,No_Palet,No_Gouraud,CL32KRGB|SPenb|ECdis,sprNoflip),
};
SPR_ATTR attr_SonicX_flip[] = {
SPR_ATTRIBUTE(0,No_Palet,No_Gouraud,CL32KRGB|SPenb|ECdis,sprHflip),
.............
SPR_ATTRIBUTE(10,No_Palet,No_Gouraud,CL32KRGB|SPenb|ECdis,sprHflip),
};
Estoy preparando la lista de funciones y paramatros, pero me parece que primero te subo lo del background.