1
Fork 0
mirror of https://github.com/redstrate/Physis.git synced 2025-04-20 03:37:47 +00:00

Expand README

This commit is contained in:
Joshua Goins 2022-08-06 18:40:16 -04:00
parent c02a2243be
commit 7b2751f57e

View file

@ -4,7 +4,7 @@ Framework for interacting with FFXIV data, and successor to [libxiv](https://git
developers writing modding tools, launchers and other programs. 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 **Note:** This library is still experimental, and no releases are planned. I'm currently busy with bringing all of libxiv's
features over. features over, but I plan to expand functionality beyond the original scope.
## Goals ## Goals
* Make it extremely easy for people to tinker around with game data. * Make it extremely easy for people to tinker around with game data.
@ -13,21 +13,34 @@ features over.
## Features ## Features
* Apply game patches, enabling custom launchers to patch the game. * Easily extract game data from SqPack files.
* Apply game and boot updates, enabling custom launchers to patch the game.
* Blockfish ciphers for encrypting and decrypting SqexArg. * Blockfish ciphers for encrypting and decrypting SqexArg.
* Parse various game formats: * Parse various game formats:
* INDEX * SqPack index and dat files
* DAT * ZiPatch files
* ZiPatch * All three Excel data types (EXD, EXH, EXL)
* Models
* Havok Packfile/TexTool skeletons
## Usage
**Note:** The API is nowhere near stable, so things may change or break.
If you intend to use this in a Rust project, you can simply include this crate directly.
For other use in languages I maintain [libphysis](https://git.sr.ht/~redstrate/libphysis), which is a C wrapper
around the same functionality. This isn't for show, I actually use these bindings in [other projects](https://git.sr.ht/~redstrate/astra).
## Development ## Development
If you're interested to see how these formats work in more detail, see [xiv.dev](https://xiv.dev/) and [docs.xiv.zone](https://docs.xiv.zone)! If you're interested to see how these formats work in more detail, see [xiv.dev](https://xiv.dev/) and [docs.xiv.zone](https://docs.xiv.zone)!
They explain the file formats in more detail, but I also encourage reading the library code as well if you can.
Some tests and benchmarks require the environment variable `FFXIV_GAME_DIR` to be set. By default, these are disabled 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` since they require a legitimate copy of the retail game data. These tests can be turned on via the `retail_game_testing`
feature. feature.
## Contributing ## Contributing & Support
The best way you can help is by [monetarily supporting me](https://redstrate.com/about/) or by submitting patches to help fix bugs or add functionality! The best way you can help is by [monetarily supporting me](https://redstrate.com/about/) or by submitting patches to help fix bugs or add functionality!