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

511 commits

Author SHA1 Message Date
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
ed7618a5fa Remove installer.rs that was supposed to be removed 2025-03-11 17:18:26 -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
591c5f55ed Add zlib license to deny.toml 2025-03-11 16:51:53 -04:00
153f21257a Remove references to old features on the CI 2025-03-11 16:47:30 -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
fecb21cf88 Make comment field public 2025-03-10 18:08:30 -04:00
633c18e2f4 Fix bullet point list in README 2025-03-10 17:16:56 -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
24ace3370e Change license used for unicode-ident 2025-03-10 16:57:28 -04:00
d5747593ac Update crate description 2025-03-10 15:58:00 -04:00
d4a40ee865 Update saved character data support in the README 2025-03-10 15:51:56 -04:00
ad700b661a Mark extern block as unsafe 2025-03-10 15:51:11 -04:00
7720da9b5e Remove funding information 2025-03-10 15:50:00 -04:00
af0d34c011 Extract max comment length into a constant 2025-03-08 13:14:14 -05:00
f89eed5dc6 Calculate the correct checksum when writing character saved data 2025-03-08 13:12:08 -05:00
445a90a0fa Fix write support for character appearance data, add test 2025-03-08 11:34:16 -05:00
b8cc68eb30 Fixup various issues with the character appearance data reading, add tests
I had multiple fields on this wrong, add comment support and tests to ensure
everything is still ship shape.
2025-03-08 11:27:22 -05:00
105c4dbb41 Clarify support for each patch series 2025-03-08 11:07:01 -05:00
f307e48a0c Add support for reading SQDB files 2025-03-08 09:56:43 -05:00
4291d0ae06 Credit FFXIVTools for the Havok parser 2025-03-08 09:22:52 -05:00
9ad81876b2 Fix the abbrevation and prefix for Ear models
Credit to LouisBrunner for pointing this out.
2025-03-08 09:19:32 -05:00
8d6f3a45b3 Differentiate between left and right ring slots
Credit to LouisBrunner for pointing this out.
2025-03-08 09:13:34 -05:00
c9018336c8 Remove leftover println 2025-03-08 09:02:49 -05:00
805a0a7d2c Remove no longer needed comment in Repository tests 2025-03-08 09:01:00 -05:00
bd111b6d53 Remove manual Eq implementation for Repository 2025-03-08 08:57:41 -05:00
0b339886c9 Move SqPack headers to sqpack module 2025-03-08 08:52:23 -05:00
0479dac52d Add basic write support for Index1 file entries 2025-03-06 19:31:18 -05:00
fe6712b5bf Prepare for file entry writing, add test for index1 entries 2025-03-06 19:09:25 -05:00
bb7c74fec8 Redesign how IndexFile parsing works, again
Now it reads much more of the index file format, and tries to handle
index1/index2 differences more opaquely. I'm not yet happy with the API, it
needs a bit more work.
2025-03-06 18:52:26 -05:00
f0554c8c27 Use binrw padding instead of creating a temporary u32 2025-03-06 16:42:19 -05:00
81ffadd870 self_hash in the index header is SHA1 too 2025-03-06 16:38:44 -05:00
385d63491e Note the SHA1 checksum in the sqpack header 2025-03-06 16:37:10 -05:00
7b39492612 Fill out missing sqpack header fields 2025-03-06 16:35:01 -05:00
0d1f61f020 Note that there only seems to be version 1 SqPacks 2025-03-06 16:27:30 -05:00
c9230530a1 Add XBox/PS5 platform ids 2025-03-06 16:26:22 -05:00
1c04657822 Add SqPackFileType enum 2025-03-06 16:20:29 -05:00
75aee9e9d8 Use split_once in parse_repository_category 2025-03-06 16:03:20 -05:00
5c291a4844 Use Rust 2024 edition 2025-03-06 15:57:10 -05:00
75443bf7be Fix some bad patch tests 2025-03-06 15:56:46 -05:00
18de50f365 Fix vertex declaration repr 2024-11-03 11:27:57 -05:00
cbd47e2fe9 Update deny.toml to version 2 2024-11-03 11:14:47 -05:00
0d1c7e9281 Change Dawntrail support in README
Reading stuff will work, writing is WIP.
2024-11-03 11:08:51 -05:00
1234e111c0 Model: Expose vertex streams
This is needed in Novus to properly emulate the game's rendering system.
Later on I'll revamp the Model to only include streams.
2024-11-03 11:02:36 -05:00
f6c2b98b80 Model: Make vertex declarations and enums public 2024-11-03 11:00:33 -05:00
16e4db2a00 ShaderPackage: Begin reading additional data
We do not yet act on it, but this can be used in the future.
2024-11-03 11:00:07 -05:00
d75cbfb0e4 ShaderPackage: Make system_keys and scene_keys public 2024-11-02 21:53:18 -04:00
ceb107cf29 Fix support for retail version Dawntrail materials
The old benchmark-based code no longer works, and now Dawntrail
materials at least don't fail parsing. Thanks to Penumbra for the layout
of the Dawntrail color table rows.
2024-11-02 19:30:31 -04:00