I assume you want to redefine the same characters for each movement?
So the characters don't have to be redrawn just redefined?
I would set up the first set of characters in Magellan, Export for XB256, then add
Just before the call key statement, then merge the COMPRESS program from the XBGD package and run it
6 - SCREEN2 CHAR PATTERNS
Select only the range of characters you want to save, they should be sequential. Save the merge file and remember the line # for that character set
Repeat for all the other movements, giving each one a different line# that won't overwrite the previous ones. For example let's assume each "sprite" is separated by a hundred, so the first data statement is at 1000, then 1100, 1200, 1300, 1400. The last line of each "sprite" data set is a ""
So in game you would, merge all the data statements into your base program, then draw the characters on screen,
Then in your game to redefine a character set you would set your restore point to whichever data represents what you want to do
This is the subroutine I would use in TIdBit
_STAND: RESTORE 1000 :: GOTO _READDATA
_BLOCKHIGH: RESTORE 1100 :: GOTO _READDATA
_BLOCKLOW: RESTORE 1200 :: GOTO _READDATA
_PUNCH: RESTORE 1300 :: GOTO _READDATA
_KICK: RESTORE 1400 :: GOTO _READDATA
_READDATA: READ A$ :: IF A$="" THEN _READDATADONE :: CALL LINK("CWRITE",A$) :: GOTO _READDATA
CALL LINK("CWRITE",A$) Is what puts the character definitions into VDP
There are obviously some optimizations you could make because your head never changes, and for 3 moves the legs are the same, and the 2 others are similar.
I hope this is clear, I've done it so much it sounds clear in my head.