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
237dd27bd2
Fix mtrl unwrap due to accidental commit
2024-06-29 09:33:48 -04:00
ec04c13fbd
Silence more dead code warnings
...
This is intentional, for various reasons between binrw limitations and
code that isn't used directly in Physis.
2024-06-29 09:33:23 -04:00
a53a7e728c
Remove accidental main.rs commit, add to .gitignore
2024-06-28 06:12:30 -04:00
c4e409c04a
Fix some warnings
2024-06-28 06:10:37 -04:00
926e7e2c78
Add another unknown new-from-Dawntrail texture usage magic
...
Saw in bg/ffxiv/fst_f1/fld/f1f3/material/f1f3_w1_mizu4a.mtrl, which is
some water material.
2024-06-28 06:06:23 -04:00
c41c160338
Fix oversight with u32 offsets used in index files API
...
This breaks on Dawntrail's gigantic files, but this also breaks API...
2024-06-28 05:53:42 -04:00
2bcbc27e53
Revert "Explicitly link to unshield library for now"
...
This reverts commit b7e5f914d5
.
2024-06-27 20:34:46 -04:00
e507c247a1
Fix patching for Dawntrail
...
It was overflowing some u32, which are now u64 to prevent this from
happening.
2024-06-27 20:29:48 -04:00
b7e5f914d5
Explicitly link to unshield library for now
...
I don't think this is the right solution, but I need to unbreak some
builds now.
2024-06-27 16:51:03 -04:00
39d7a5b703
Prevent overflow when loading high resolution textures in certain code paths
...
With the release of Dawntrail, these are now being hit - for example loading the
expansion logo in Astra. These are now converted to usize everywhere so it
prevents this from happening.
2024-06-26 23:45:50 -04:00
c1dd406be4
Oops, these paths are not supposed to be absolute
2024-05-26 07:56:20 -04:00
0c105ab089
Fix my stupid programming, we need to use into_iter()
2024-05-26 07:49:55 -04:00
3d8ea7c858
Check if the user and game directories are valid
2024-05-26 07:48:41 -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
91560de96b
Fix shape values not reading correctly
2024-05-25 23:26:11 -04:00
fdf07fd255
Add find_offset function
...
Currently working around the lack of a good extract() API
2024-05-25 10:47:48 -04:00
0fbb604c73
Derive Clone, Copy for ShaderStage
2024-05-18 11:53:13 -04:00
d700f81af9
Expose ShaderStage enum
2024-05-18 11:49:50 -04:00
e5caab2e64
Run rustfmt and fix more Clippy warnings
2024-05-18 09:42:07 -04:00
306a507969
Fix tests compilation
2024-05-04 14:24:37 -04:00
a1a50de62e
Support chunked dat/index files
...
Needed for grabbing later expansion content that's split between chunks.
2024-05-04 14:20:45 -04:00
8ecbd74283
Better expose the color table rows for materials
2024-05-04 14:20:02 -04:00
5625950f2a
Expose the color table & color dye table
2024-04-30 19:51:46 -04:00
139afb46fa
Add support for reading the color dye table from a material
2024-04-30 19:48:32 -04:00
b595d48963
Add support for reading the color table from a material
2024-04-30 19:43:47 -04:00
c4e9697faa
Support 3D textures
...
We only supported 2D textures, but 3D textures are needed for the tiling
textures.
2024-04-30 18:01:09 -04:00