PGN Errors and the state of Chess Software: I play Chess at Pogo.com and at the Free Internet Chess Server. Both of these services will email your chess games to you, in PGN format, so that you can create yourself a nice chess history. I then use Crafty to analyze my games, and try to learn from my mistakes (not necessarily successfully). Well, on my web page, I had added the Crafty analysis output of these games, but it was taking up too much space. So, I have moved to a Java applet that allows for commented PGN files to be posted. I got this applet, and its source code at www.mychess.com.
At first, the applet didn't understand the PGN output from Crafty because Crafty inserted comments before move 1, and the applet kept trying to add the comments to a non-existent move in the game. Then, it turns out that Crafty was having problems with the PGN files from Pogo - pawn promotions were annotated in the PGN, but without the necessary = sign in the string (e.g. c1Q, instead of the proper c1=Q). Crafty couldn't understand what it meant, and would create phantom games for each of the moves following the promotion.
So, I manually did a search and replace to fix the PGN file I had, and also modified my VBScript that scours my email so that it would automatically fix these problems when it pulls out the games.
Well, FICS is where I play more recently, and its PGN output seemed to be cleaner than Pogo's. So I downloaded those, and began the analysis of those games. Well, pawn promotions were handled fine, but it seemed that some of the games were causing problems and I was getting more phantom games in the output from Crafty. I went back and manually checked the files, and it appears that in some instances, there is a bug in FICS' code with their line-wrapping code. When the line wrap breaks in the middle of a move (after the first ply), it repeats a previous move, and creates a file that has a 3-ply move in it (the 2 ply it should and the errant ghost move).
This is getting a little exasperating, since it prevents me from easily posting my more recent games on my site. Although, I have implemented the Java PGN viewer and an older set of games that I had from Pogo. (see links on left). I modified the PGN viewer to ignore the errant comments, and also to automatically flip the board to see it from my own perspective when playing the game.