I can answer this one.
Take a look at the Flames in a hex editor, any hex editor. Go to the 'M' in Mike Vernon, the very first player on the list. The byte 2 bytes before "Mike Vernon" should have the value 0D, or 13. This tells the editor that for the next 13 bytes INCLUDING the current byte to read the name "Mike Vernon" into memory. The byte immediately after the name represents the player number, but the number in hexadecimal format is actually in decimal format (so Fleury's byte is 14, not 0E)! The next seven bytes are, I believe, the player's attributes, but I don't know what they mean.
To change the roster's size, there's byte data on the number of goalies, defenders, forwards in the team, but I never could quite figure that out.