I have a half-way working PZF compiler. What it does so far is read text files to store zone names, the number of acts, the number of stages (previously called "timezones"), and various stage-specific data such as level size, starting position, stage music, and so on.
The PZF compiler doesn't import data files yet, and it doesn't write the PZF file to the hard drive. Instead, what it does currently is compile it into memory so it is ready to be read through the game engine. This compiler will also replace the PZF file editor I had planned to do in Visual Basic. Although this isn't as user-friendly, it will be easy enough for most people to use. Hopefully I will be able to encourage others to help me write better tools for ProSonic, and that's one reason the PZF functionality is all programmed in a library that can be easily attached to any program.
PZF files are the back-bone to my ProSonic project because they consist of all the data required for the game engine to load a level. The new PZF format is easy to work with in comparison to the old PZF format. I am going to change it even further because the original plan was to limit files (that is, data files within the PZF itself) to 1MB in size. With the recent plan to allow game designers to have more tiles and blocks, 1MB won't be enough to support what I am aiming for. Instead, the file limit will be 16MB. The PZF file as a whole was supposed to be limited to 256MB, but this will get bumped up to 4GB because of the change to the size limit of data files. Some people may not understand exactly why I impose limits like these -- I do so to conserve space that will probably never be used for anything anyway.