Hey, everybody! I'm relatively new here, but I've been following the FF7 modding scene for some time. I was a bit frustrated with some of the existing tools for manipulating FF7 files (namely packing/unpacking LGP files), so I did some research and implemented my own in Python 3 called PyFF7.
Currently, I have implemented an LGP unpacker, an LGP packer, and a tool to just print information about the contents of an LGP (I tested it on char.lgp and magic.lgp, and it seems to work correctly, even when ulgp didn't). Also, the classes I design can be easily integrated into new tools, and I intend to make it available on PyPI so you can install it via pip. I also intend to expand beyond just LGP files. Note that my LGP packer rebuilds the lookup and conflict tables on-the-fly.
Also, if anybody has any information regarding the "check code"(?) in the LGP file format table of contents, I'd greatly appreciate it. Most files list this value as 14 (but some are 11 if I'm not mistaken), and a lot of old posts I read (e.g. from Aali) suggest that the game doesn't actually check this value so I currently just hardcode the value to 14 for all files, but I really want my tool to be completely correct. I was thinking maybe it's user+group file attributes (14 = 7+7 and 11 = 7+4), but yeah any info would be greatly appreciated.
Anyways, you can find the tools here:
https://github.com/niemasd/PyFF7/They're completely written in Python 3 (no external libraries/packages), so they should work out-of-the-box on any system with a Python 3 interpreter.