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

624 commits

Author SHA1 Message Date
4ab3ae047b Add support for applying 1.x era patch files
These are very similar to the ones seen today in ARR, except they
are layed out slightly differently and use a couple of now-unused
operations.
2025-07-18 16:55:25 -04:00
06a9e5f4d8 Fix LVB parsing for some files, add NVX path 2025-07-12 09:03:02 -04:00
0c6383c3cc Fix invalid PCB parsing panicking 2025-07-09 22:56:47 -04:00
fe8afff1c3 Fix remaining issues with parsing PCBs
After looking at the FFXIVClientStructs definition for these, I
figured out the remaining issues. It mostly came down to
misunderstanding what the heck this thing was??
2025-07-09 14:57:21 -04:00
dbad354cb5 Fix read_half2 and read_half3 reading the same data 2025-07-09 14:55:31 -04:00
19e5c38ea8 Initial support for PCB parsing
These files are collision meshes used in zones.
2025-07-09 00:33:26 -04:00
b3196219d2 Expose some navimesh path data in LVBs
I can get the nvm path now, but not the nvx for some reason.
2025-07-08 23:09:31 -04:00
aecf677cf9 Stop complaining about dead code in LVB module 2025-07-08 22:52:31 -04:00
beebbaa01c Update outdated ResourceResolver docs 2025-07-08 22:46:44 -04:00
65d85e51fa Add missing REUSE metadata 2025-07-08 22:41:51 -04:00
c0d3df99c3 Always read path as lowercase in UnpackedResource 2025-07-08 22:23:16 -04:00
2858c8a37b Ensure ResourceResolver is Send + Sync
Needed for usage in Kawari downstream. We may need to redefine this
at the trait level, but this works for now.
2025-07-08 22:19:51 -04:00
c2eb47cca0 Port the useful Excel API from SqPackResource to Resource 2025-07-08 21:44:51 -04:00
81fff744f2 Overhaul file resource handling
This is a big API change, and it's probably not in it's ideal
shape right now. Physis makes a big assumption that the pool of
game data that you're reading from is in the compressed, SqPack
format like in retail. However, as the projects that use Physis
expand - so does the scope of data people want to punt into it.

For example, we have Icarus that makes it easy to read Excel data
but it can only do so through SqPack which makes it less useful in
scenarios where you want to read unpacked Excel modded files or
perhaps Excel data from the network.

So I created a Resource trait that GameData now implements (and
it's now called SqPackResource.) In a similar vain, Physis comes
with an UnpackedResource and a ResourceResolver to chain multiple
Resources together.
2025-07-08 21:37:03 -04:00
c602e6b28f Add missing DoorRange data
Fixes loading certain LGBs like bg/ex4/03_kld_k5/twn/k5t1/level/bg.lgb

Fixes #13
2025-07-04 11:48:41 -04:00
b74a5c3a96 Remove leftover debug message 2025-07-04 11:31:24 -04:00
3db3ec4d0b Add initial support for SVB files
Don't know what these are yet, but very similar to the other ones
I just implemented.
2025-07-04 11:16:01 -04:00
a8cb676e97 Begin parsing LVB files
These are actually quite useful, and contains stuff like the LGBs
used for the territory.
2025-07-04 11:11:05 -04:00
b04121dfba Initial support for LCB files
Don't know what these are yet either, but we can begin to read
them.
2025-07-04 09:44:05 -04:00
f23ebd0597 Begin adding support for UWB files
I'm not entirely sure what this is for yet, it's layout/level
related.
2025-07-04 09:27:04 -04:00
5a5896a126 Fix loading the Solution Nine background LGB
See #13
2025-07-01 18:18:02 -04:00
056fdb52a0 Always return ExcelRowKind::Subrows in a subrow-enabled sheet
See #14
2025-07-01 18:14:50 -04:00
209e62e5b5 Fix tests due to API changes 2025-06-30 21:43:33 -04:00
862b16b681 Fix reading subrow ids again, add helpers to get subrow 2025-06-30 21:29:23 -04:00
6ebb7acfcd Add support for reading subrows and their ids 2025-06-30 19:59:25 -04:00
029b1fb3f5 Bump version to 0.5 2025-06-24 15:50:07 -04:00
21a5ddc763 Fix parsing of certain LGB files
These have unknown instance objects, and were tripping up our parsing. I
don't know what these are yet, but I added them anyway.

I also made sure that the parser doesn't return None for technically
valid but empty LGB files.
2025-06-22 10:24:21 -04:00
70ebe7d03d Add temporary workaround for writing TerritoryType
Of their packed boolean columns has 3 extra bytes at the end... for some
reason. Just like the other test case, I added a temporary workaround
for it.
2025-06-21 17:11:53 -04:00
b7cd6c6c7b Fix writing multiple packed boolean columns
As seen in TerritoryTYpe, there can be two instances of packed booleans
for some reason.
2025-06-21 17:11:53 -04:00
7bf8f5016c Remove a panic when reading certain LGB files 2025-06-21 09:45:48 -04:00
a9a1b02fd4 Remove leftover debugging prints 2025-06-21 09:42:23 -04:00
67a23e59bf Fix extracting expansion files
I broke this when changing a split to split_once I think, and it stayed
broken longer than it ever should have. To stop that from happening
again, more tests are added to catch this.
2025-06-21 09:40:29 -04:00
5002e4a590 Simplify shader reading 2025-06-02 20:20:03 -04:00
4709a3a3c4 Fix reading some Dawntrail shader packages
Apparently no one knows what these are, so I just skip them or whatever.
2025-06-02 19:44:27 -04:00
f46a32462e Remove texture usage enum from Sampler
This is a bit of an awkward API, because we have to manually keep the
CRC list up-to-date when in other cases that's left up to consumers. I
added a comment about how to figure out this value.
2025-06-02 17:44:04 -04:00
1d3192de23 Fix various Cargo and Clippy warnings 2025-06-02 17:32:31 -04:00
b0047dd77d Remove unwrap in tex parsing 2025-06-02 16:59:00 -04:00
1071ae0ccd Add None as a model flag 2025-05-17 13:07:02 -04:00
0ad7c61b4d More flags whoop 2025-05-17 13:01:24 -04:00
061954d73d Add another model flag, reorder 2025-05-17 12:52:20 -04:00
4a48a3bc7a Add more unk model flags to allow more bgparts to load 2025-05-17 12:43:35 -04:00
e2a8c695d7 Add a more exhaustive list of texture formats, support BC7 textures
As seen in certain bgpart model textures.
2025-05-17 12:32:23 -04:00
a905234a18 Add new model flag as seen in some bgparts 2025-05-17 12:04:52 -04:00
f58d4e6bb0 Make indice reading (for models) slightly faster
As suspected - this was a little slow, and can be corroborated with
Hotspot. This is only a marginal increase in performance, it isn't huge
but still worth doing.
2025-05-17 10:22:27 -04:00
39f1c9665f Read BGInstanceObject asset and collision paths, expose LayerHeader 2025-05-14 20:02:37 -04:00
6413a592f0 Implement Clone, Copy for Transformation 2025-05-13 16:44:15 -04:00
6a54c96111 Make transformation struct available in C 2025-05-13 16:43:00 -04:00
76120b2dd0 Handle multiple string columns when writing 2025-05-11 00:48:31 -04:00
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
8d94c630ab Improve EXD documentation 2025-05-10 23:41:21 -04:00