PangLib - A toolchain for Pangya files

Guess I’ll introduce PangLib here, my first delving into the file formats of Pangya and making them somewhat usable!

PangLib is a set of C# libraries, not a full program, that allow developers to work with different Pangya file formats and build their own tools around them.

Current libraries in PangLib are:

  • PangLib.IFF to handle .iff files, which include item/character/etc. metadata
  • PangLib.DAT to handle .dat files, which include translations into various languages
  • PangLib.PAK to handle .pak files, which are the Pangya game data archives
  • PangLib.PET to handle .*pet files, which include the Pangya model definitions
  • PangLib.UCC to handle files from Pangya self-design
  • PangLib.UpdateList to handle updatelist files, which tell the game updater which files are in a patch

There also is PangLib.Utilities, which includes various encryption/compression utilities which are used all across Pangya’s files.

Most of these libraries are currently read-only, meaning you can only use them to read data from the files and not save it back to them, but that is of course planned for most of the filetypes!

Aside from the libraries, PangLib also includes documentation around the formats, so the structure and file contents are easily understandable!

There’s still a lot missing to the library, but as I tested it while building, what’s there works so far.

You can check out the library on GitHub here:

2 Likes

To improve usability of PangLib libraries, I started putting the initial releases of all libraries onto NuGet.

dotnet add package PangLib.[libraryname]

is now all it takes to add a PangLib library to one of your projects.

https://www.nuget.org/packages?q=panglib

Aside of a small rewrite I did of one of the libraries, here some more major news!

I added two new libraries:

  • PangLib.PSP.NOP
  • PangLib.PSP.PAK

to handle .pak and .nop files from the PSP iteration of the game. The formats resemble Pangya PC archives already, so this was a rather simple task!