1
Fork 0
mirror of https://github.com/redstrate/Physis.git synced 2025-04-23 21:17:45 +00:00
Commit graph

375 commits

Author SHA1 Message Date
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