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
ad700b661a
Mark extern block as unsafe
2025-03-10 15:51:11 -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
f307e48a0c
Add support for reading SQDB files
2025-03-08 09:56:43 -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
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
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
f83b2013fa
Support WebAssembly
2024-11-01 16:50:37 -04:00
6e6124a278
Fix even more Clippy and other compiler warnings
2024-09-13 21:47:02 -04:00
e1a9be2756
Test for size_on_disk in patchlist
2024-08-22 20:52:18 -04: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
7b8c4c9c5f
Add tests for the string file operations, fix nul terminator handling
...
Since this recently had a hand in patch regression, let's start adding
some basic tests for this function.
I realized the writing functions did not take into account the nul
terminator, which is not correct and has been fixed.
2024-07-18 14:17:24 -04:00
66034b6e8d
Patch fixing redux: Trim trailing null characters
...
This fixes broken file operations
2024-07-18 14:08:10 -04:00
4d23bf9f08
Fix path calculation in SqpkFileOperationData, again
...
This should make retail patches work correctly
2024-07-18 13:57:12 -04:00
d8fae2f822
The frontier URL formats need to be switched around
...
Otherwise, it will always pick up the old version
2024-06-29 20:03:59 -04:00
f52a4b68fc
Fix adding multiple files in the same patch, add tests for this
...
Also fixes patching_test, and makes file paths written in ZiPatches
relative to it's base directory.
2024-06-29 13:25:24 -04:00
657005ad53
Begin writing ZiPatch unit tests
...
Right now it's only the usual invalid data test we have elsewhere, but
this lays the groundwork to add more!
2024-06-29 12:53:37 -04:00
4357e382ab
Move ZiPatch functions under its own struct
...
For code organization reasons
2024-06-29 12:47:00 -04:00
36d09195fa
Mention more NOPs when reading ZiPatch
2024-06-29 12:43:55 -04:00
6869e98f9d
Implement removing files in ZiPatch
2024-06-29 12:43:20 -04:00
c443b17d9e
Support writing new files in ZiPatch
...
This implements parts of the AddFile operation for ZiPatch, which can
now create patches that add files. Note that ZiPatches created with
this will be abnormally huge since compression is not implemented yet.
2024-06-29 12:39:24 -04:00
9fde5472d8
Add write_data_block_patch to write patch data blocks
...
It's only writing uncompressed blocks at the moment, though.
2024-06-29 12:37:54 -04:00
ee5a484730
Implement BinWrite for BlockHeader
2024-06-29 12:37:14 -04:00
30ed0180ce
Implement write_string, add get_string_len helper function
2024-06-29 12:36:54 -04:00
119fefc8c9
Start laying the groundwork for create_patch to create new ZiPatch files
2024-06-29 11:18:49 -04:00
51105859e5
Begin converting all existing patch structs to writable forms
...
This isn't complete yet of course, for future work.
2024-06-29 11:15:19 -04:00