1
Fork 0
mirror of https://github.com/redstrate/Physis.git synced 2025-07-20 15:57:46 +00:00
Commit graph

71 commits

Author SHA1 Message Date
8a3e8dad64 Move EXD parsing functions into their own module
It was getting hard to work in here, so I moved all of the
private-API-parsing-things into their own file.
2025-05-10 23:51:22 -04:00
cf25a7f91f Remove more launcher-only functions from Physis
These are now being moved to the separate Miscel library that can be
used standalone with Astra.
2025-04-28 22:58:51 -04:00
6f0e85e143 Move dat to save data module 2025-04-28 22:48:45 -04:00
1e28c05f3a Move log to save data module 2025-04-28 17:09:25 -04:00
da8bcf13c1 Move save data formats to their own module
I was struggling to think of a way to categorize these for a while, but
I believe these are referred to as "SaveData" internally. Anyway, that's
a good name!
2025-04-28 17:07:35 -04:00
61a24971c2 Move model stuff to it's own module 2025-04-28 16:57:02 -04:00
99238d9b5a Add TryFrom implementations for Race, Tribe, Gender 2025-03-31 16:04:28 -04:00
06e1bb0ead Improve race documentation a bit 2025-03-31 15:46:19 -04:00
f8db40d74d Improve layer group parsing (lgb files)
I guessed the name, it's more like a collection of layers. This actually fixes a
bunch of mistakes (on my part) as I copied the layout from Lumina, but added a
few changes to make it work with modern zones. There's a whole lot more work
here to do, but now it works to parse New & Old Gridania.
2025-03-15 17:38:54 -04:00
b61c3383b3 Add DatHeader so we can read gear sets without libxivdat
This is limited to just that one dat type for now, but we can expand it as we
add more parsers.
2025-03-11 17:45:00 -04:00
87e3423e40 Move blowfish stuff into it's own module
This cleans up the big src folder we have, this doesn't have any API changes
though.
2025-03-11 17:17:31 -04:00
b54ee74802 Re-arrange SqPack-related formats into their own submodule
This is to make way for another dat module (for the stuff under the user
folder.) This kind of re-organization was inevitable anyway, and I gave the
structs new SqPack-y names to fit their new home.
2025-03-11 17:15:10 -04:00
d58a216462 Shrink the dependency and feature complexity, auto-cleanup and more
We had a few odd dependencies that caused nothing but pain in dependent projects
like libphysis. One of these was libunshield (a C library) that our game_install
feature used, but to be honest this was the wrong library to put this code. It
was really only ever used by Astra, and should live there instead - there's no
reason to have it shared between applications (and it's small enough to be
copied if *you* need it.) Also that also killed the system-deps dependency which
had a significant impact on our build time.

Another dependency was replaced: libz-sys. This is replaced by the pure Rust
libz-rs (through libz-rs-sys) which should simplify deploying physis without
having to worry about manually linking libz or other nonsense. Some leftover
copied code from flate2 can also be removed.

I also removed the visual_data feature as Astra ended up using it anyway, and
the distinction doesn't make much sense now. It was previously to gate some
dependencies needed for visual data extraction, but the bitflags and half crates
are small. I can look into splitting the crate up into more features if needed
later.

A dependency that was erroneously included in the refactoring was quote, which
has been removed. Also ran cargo fmt, clippy too.
2025-03-11 16:29:24 -04:00
Louis Brunner
5378d72ccf
feat: add GEARSET.DAT parsing (only content, it needs libxivdat to parse the wrapper) (#7)
* feat: add GEARSET.DAT parsing (only content, it needs libxivdat to parse the wrapper)

* add copyring for reuse
2025-03-10 19:53:47 -04:00
3da2aa39c1 Vendor what we need from texture2ddecoder
This recently tripped up cargo-deny because it depends on paste. I looked at it
and the parts that we need (a few BCn decoding functions) has only one place
where it's used and can easily be replaced.
2025-03-10 17:15:14 -04:00
f307e48a0c Add support for reading SQDB files 2025-03-08 09:56:43 -05:00
f6c2b98b80 Model: Make vertex declarations and enums public 2024-11-03 11:00:33 -05:00
979b8df45d Add PatchList parsing from Kawari
This was originally from my Kawari project, but this belongs in here, so
we can share it between Kawari and Astra.
2024-08-22 20:38:50 -04:00
b87f54f924 Add functions to find existing game/user directories on disk
Not tested yet but this is something we have needed for a while
2024-05-26 07:29:40 -04:00
b74fda45a9 Add STM module 2024-04-29 21:01:10 -04:00
171d516f38 Add AVFX module 2024-04-29 20:59:30 -04:00
172952af9b Add PAP module 2024-04-29 20:57:15 -04:00
4fbd2cb668 Add PHYB module 2024-04-29 20:52:25 -04:00
05ccc566e9 Add SCHD module 2024-04-29 20:49:24 -04:00
e588a9bbc9 Add TMB and SKP modules 2024-04-29 20:26:13 -04:00
8a1430378e Add IWC module 2024-04-29 20:19:04 -04:00
5924da0991 Add HWC module 2024-04-29 20:14:19 -04:00
6dec9ba5a5 Add SCD module 2024-04-29 20:11:32 -04:00
bb2effcd70 Add ULD module 2024-04-29 20:06:34 -04:00
d5b3b8a468 Run cargo fmt 2024-04-20 13:18:03 -04:00
b4fe74cf7d Add a new module to extract strings from executables 2024-04-18 22:53:53 -04:00
5574e75325 Add support for reading dictionary files
This is the format used for such things as the vulgar word list. Credit
goes to Jim Kirisame who developed an existing tool to read this format!
2024-04-18 22:09:26 -04:00
da774529da Remove overcomplicated internal race macro to a big match statement
There's really no reason to use macros for this, let's rewrite it in a
big match statement.
2024-04-16 21:14:59 -04:00
f067b653b1 Add common functions for converting bool back and forth from u8/16
Sort of unnecessary, but these are also tested.
2024-04-16 21:03:26 -04:00
256b3f9305 Add basic support for LGB and TERA files
This is for the Novus map editor, although TERA is much more complete
than LGB right now.
2024-02-02 14:20:53 -05:00
fd43401eae Protect model file i/o, decls behind visual_data feature 2024-01-31 16:33:53 -05:00
3721644340 Separate vertex declaration/element code into its own file
This is around 100 LoC by itself, so it's nice to separate that
2023-12-13 17:23:56 -05:00
fadf811505 Move the model file operations to their own file
It helps declutter the already huge model file a bit.
2023-12-12 22:13:15 -05:00
609284ce8f Improve FIIN documentation 2023-12-02 20:28:28 -05:00
7a75c170cc Make a semantic difference between owned and non-owned byte data 2023-10-13 16:16:04 -04:00
07582775cd Add support for reading binary SKLB and PBD
This removes the dependency of the Havok SDK or getting the decompiled
skeleton files from TexTools or some other place. Code courtesy of
FFXIVTools. The other two ways of reading skeletons (SKEL and Packfile)
are removed which gets rid of two dependencies.
2023-10-13 14:55:27 -04:00
7cbe2fe853 Add homepage blurb 2023-09-24 15:40:38 -04:00
cece5936e8 Hide some unnessecary symbols from the doc 2023-09-22 18:34:24 -04:00
80f80ac0f5 Improve common module docs 2023-09-22 18:15:23 -04:00
2ce18ec66a Add the missing documentation for CharDat, rename struct too 2023-09-22 18:13:20 -04:00
5edc411bd7 Better the imperfect config file documentation, rename struct 2023-09-22 18:05:29 -04:00
c41f17a126 Improve the lackluster BootData documentation 2023-09-22 17:56:33 -04:00
1343bcdca6 Expand Blowfish documentation, add example to doc 2023-09-22 17:52:31 -04:00
dccc4e3586 Add support for reading shader packages and it's bytecode 2023-09-22 16:36:12 -04:00
2000b978b3 Ensure compliance with REUSE, add to CI 2023-08-06 08:25:04 -04:00