Another issue that has actually come up more than once with users of my program is at crazyhouse in home play people asking about, is to my understanding winboard does not support retract move in crazyhouse. I have implemented retract move for crazyhouse in pulsar but found out afterwords that winboard does not support it. In normal games you can simply keep a copy of the board at every move and rights and revert back. like going back to a fen. In crazyhouse the board also consists of the captured pieces and the idenity of which pieces on the board are really promoted pawns. If you support tracking this information you can also revert back to earlier moves by going back to the 'expanded fen'. I have 2 pawn arrays, one for black and one for white, that keep track of the square every pawn is on. bear in mind a player can have up to 16 pawns due to captures as well as many more captured pieces then 16 since he can capture back his own pieces. When a pawn moves its tracked on the pawn array. when its promoted it remains on the pawn array. if its captured its off the pawn array but goes back on when it comes into play.
Mike