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

610 commits

Author SHA1 Message Date
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
0313f75abb Fix how we read/write packed booleans in EXD, add another write test
Apparently we were reading packed booleans wrong the whole time
(whoops!) They are packed into *bytes*, oops... That is fixed now, and I
also expanded write support for packed booleans. It makes the assumption
that the byte is always at the end of the row, but I think that's OK for
now.

I also added a good test-case for this, the PhysicsGroup EXD. It has a
lot of rows, and some packed booleans thrown in. The columns also have
out-of-order column definitions (as in, their offsets don't increase in
order.)
2025-05-10 23:31:53 -04:00
dae35ecfb8 Extend EXD writing to support strings, add new test cases
Now we can re-create OpeningSystemDefine, and is added as a new test
case to test reading/writing string columns. This was actually quite
fun, it turns out that they like aligning the data sections to a 4-byte
boundary for some reason.
2025-05-10 22:55:00 -04:00
36304a2e57 Finish basic EXD write support, add tests for GCShop
Expanding upon the EXH tests of this same data, we can successfully
write it back (hence why it's testdata now!) A lot of the writing logic
is specific for this EXD, but it's a start.
2025-05-10 21:38:47 -04:00
497549e0c6 Be even more specific in CONTRIBUTING 2025-05-10 19:07:38 -04:00
c5613cd431 Add support for writing EXH files
This is an easy format to add write support for, and we can recreate the
"GCShop" EXH which is super simple as it's just one page and one
language.
2025-05-10 19:06:06 -04:00
5ed8e16190 Mention Icarus in the README 2025-05-10 09:33:40 -04:00
309726163a Update to fsfe/reuse-action v5 2025-05-09 18:00:21 -04:00
347631e395 Add helper methods to ColumnData to help convert it to underlying data
It's slightly awkward to get data out of this type, because you have to
match it usually. I have added to_x() members instead to make it much
easier.
2025-05-09 17:58:56 -04:00
70343e1212 Derive Copy, Clone in ExcelColumnDefinition 2025-05-09 17:40:30 -04:00
dfb61f30aa Convert to new REUSE.toml format 2025-05-09 15:33:22 -04:00
e751ffa765 Update dependencies, remove bitrotten code, update docs
I updated our dependencies like binrw to 0.15, which is pretty nice as
that means we no longer depend on Syn 1.x. I also finally upgraded to
bitflags 2.x, which doesn't really mean anything except we're on
better supported version.

Additionally, I removed some bitrotten code that no longer compiles.
This was mostly benchmark stuff, but since I don't actively keep track
of that I felt it was better to remove it. I can always add it back once
I'm ready to tackle that again.
2025-05-09 15:16:23 -04:00
940edac964 Add method to get the *total* patch size on disk
Apparently X-Patch-Length is only for the base repository, and so isn't
a reliable indicator. But it's pretty simple to add them all together to
get a close number.
2025-05-06 15:11:44 -04:00
f822aabb94 Fix more test breakages 2025-05-05 17:56:14 -04:00
62b13f557a Early exit in GameData::parse_repository_category if no repositories are available 2025-05-05 17:19:39 -04:00