1
Fork 0
mirror of https://github.com/redstrate/Physis.git synced 2025-04-23 21:17:45 +00:00
Library for reading and writing FFXIV data
Find a file
2022-08-05 18:23:52 -04:00
benches Add initial files 2022-07-19 19:29:41 -04:00
resources/tests Add initial files 2022-07-19 19:29:41 -04:00
src Normals are typically three half-width floats, not three full floats 2022-08-05 18:23:52 -04:00
tests Document more public APIs in preparation for docs release 2022-07-27 21:41:05 -04:00
.build.yml Add unit tests to CI 2022-07-27 20:58:21 -04:00
.gitignore Add initial files 2022-07-19 19:29:41 -04:00
Cargo.lock Implement MDL parsing 2022-07-28 14:11:02 -04:00
Cargo.toml Implement MDL parsing 2022-07-28 14:11:02 -04:00
deny.toml Add initial files 2022-07-19 19:29:41 -04:00
LICENSE Add initial files 2022-07-19 19:29:41 -04:00
README.md Move integration tests behind a feature flag in preparation for CI 2022-07-27 20:58:12 -04:00

Physis

Framework for interacting with FFXIV data, and successor to libxiv. This intended for developers writing modding tools, launchers and other programs.

Note: This library is still experimental, and no releases are planned. I'm currently busy with bringing all of libxiv's features over.

Goals

  • Make it extremely easy for people to tinker around with game data.
  • Parsing data should be safe, and unit tested vigorously.
  • Minimal dependencies ;-) All dependencies are also checked by cargo deny.

Features

  • Apply game patches, enabling custom launchers to patch the game.
  • Blockfish ciphers for encrypting and decrypting SqexArg.
  • Parse various game formats:
    • INDEX
    • DAT
    • ZiPatch

Development

If you're interested to see how these formats work in more detail, see xiv.dev and docs.xiv.zone!

Some tests and benchmarks require the environment variable FFXIV_GAME_DIR to be set. By default, these are disabled since they require a legitimate copy of the retail game data. These tests can be turned on via the retail_game_testing feature.

Contributing

The best way you can help is by monetarily supporting me or by submitting patches to help fix bugs or add functionality!