PRO file

From Wiki

Revision as of 08:53, 6 March 2014 by Holy (talk | contribs)
Jump to: navigation, search

A PRO file is a Sword of Moonlight binary file recognized by its .pro (more often .PRO) filename extension. The name "pro", pronounced like the word pro, is not an acronym; it refers to the Sword of Moonlight profiles (eg. PRF and PRT) that are encapsulated by the "PRO-files" themselves.

History

Pro files were not part of Sword of Moonlight 2000, or Som2k. They were invented later to replace PR2 files. The rationale for this was both practical and esthetic. Practically it needed to be easy to verify that a PR2 file has been replaced, thus the change. Esthetically PRO-file has a nice ring to it, as does ProEdit.

Pro's killer application is to decouple PR2 files from the textual description fields of the PRF profiles. Decoupling permits the textual descriptions to be changed without warning and or localized without corrupting the project configuration. In short it's essential to making Sword of Moonlight a collaborative and accessible platform (and a wonder PR2 files don't work this way to begin with.)

Backward compatibility

For purposes of playing a game a PR2 file and PRO file are identical; except that the game playing software must be able to find the file with a different file extension. There are only around five PR2/PRO files in a given project/game, so reverting the extension by hand is not insurmountable.

A classical PR2 file is basically a file that contains many PRF file records back to back. That is, each record is an exact copy of its PRF file. A Pro file differs in that the description field of each record gets replaced with the originating PRF's UTF-8 encoded filename up to 30 bytes worth of code-points. The converted field may also be padded with spaces ( ) in order to mark+ them as converted as part of a multiple pass PR2 to PRO conversion process.

+This technique is imperfect since a description can use all 30 bytes, fooling the detector. But it should prove easy enough to fix these unlikely cases by hand if ever necessary.