b4fe74cf7d
Add a new module to extract strings from executables
2024-04-18 22:53:53 -04:00
5574e75325
Add support for reading dictionary files
...
This is the format used for such things as the vulgar word list. Credit
goes to Jim Kirisame who developed an existing tool to read this format!
2024-04-18 22:09:26 -04:00
b9110b58ec
Some code cleanup in texture
2024-04-18 22:07:57 -04:00
99f79ddb6b
Fix model submesh bone map size for Shadowbringers
...
Not entirely sure if this is correct yet, I need to test this more.
2024-04-17 21:59:23 -04:00
b1d0ccc90e
Fix ps3/ps4 repository tests
2024-04-17 21:46:44 -04:00
370b6ac009
Remove the padding "fixes" for Dawntrail materials
...
According to https://github.com/TexTools/xivModdingFramework/pull/60 the
amount of color sets changed in Dawntrail.
2024-04-17 21:40:32 -04:00
774740c470
Remove temporary padding "fixes" for Dawntrail models
...
According to https://github.com/TexTools/xivModdingFramework/pull/60 the
bone table structure changed. Now the correct bone table is loaded for
Dawntrail.
2024-04-17 21:26:50 -04:00
2e27a999d6
Add types for short2/short4 vertex formats
...
As seen in 16d32cf5a8
2024-04-17 20:44:12 -04:00
7cf6ab8f60
Simplify texture code for now, add actual BC5 support
2024-04-17 20:43:11 -04:00
58f411005d
Fix Dawntrail materials not loading
...
They changed the color set structures of course, so make sure not to
completely crash and burn on newer material versions.
2024-04-17 20:23:44 -04:00
b86eb29d81
Temporarily fix loading blend weights from Dawntrail
2024-04-17 20:22:50 -04:00
dff1a83809
Fix Dawntrail model loading
...
I figured out some crappy padding I need to add, not sure what these
exactly are yet!
2024-04-17 17:47:03 -04:00
2af1543c9b
Fix index2 files never being added to GameData
2024-04-17 17:21:52 -04:00
140067c876
Fix the wrong underlying representation for Platform
...
I forgot that for index files, it's supposed to be u8 while for patch
files it's u16 (why??) This is now fixed.
2024-04-17 17:21:43 -04:00
33e9be8af1
Fix wrong platform strings
...
I personally confirmed this for PS3, unknown about PS4. Add TODOs about
other platforms.
2024-04-16 22:16:42 -04:00
58cec6c91f
Remove some unused imports
2024-04-16 22:08:46 -04:00
4b6166f8d0
Add invalid data test for Texture
2024-04-16 22:08:22 -04:00
17ba7f2389
Add invalid data test for Terrain
2024-04-16 22:07:50 -04:00
7414d19b57
Add invalid data test for Skeleton
2024-04-16 22:07:30 -04:00
4a882d529d
Add invalid data test for ShaderPackage
2024-04-16 22:06:59 -04:00
54c08dbdcb
Add invalid data test for PreBoneDeformer
2024-04-16 22:06:27 -04:00
11b554ef80
Add invalid data test for Material
2024-04-16 22:05:59 -04:00
a7a9a7855e
Add invalid data test for MDL
2024-04-16 22:05:39 -04:00
087deb2bc8
Add invalid data test for ChatLog, add a simple check for invalid data
2024-04-16 22:04:02 -04:00
170a1d27a7
Add invalid data test for Lgb, add a simple check for invalid data
2024-04-16 21:57:30 -04:00
f460f5b944
Add invalid data test for Index/Index2
2024-04-16 21:54:56 -04:00
cfe08de0d7
Add invalid data test for FileInfo
2024-04-16 21:53:32 -04:00
890c228c85
Add invalid data test for EXL
2024-04-16 21:53:10 -04:00
e51b1024df
Add invalid data test for EXH
2024-04-16 21:52:36 -04:00
d9bf25cb0e
Add invalid data test for EXD
2024-04-16 21:52:14 -04:00
3b6c4e83df
Remove panic in DAT file reading, and add invalid data test
2024-04-16 21:49:26 -04:00
cc10ec7bac
Add invalid data test to CMP
2024-04-16 21:43:52 -04:00
363abc67da
Add invalid data test to CharacterData
2024-04-16 21:43:15 -04:00
170c61b556
Add a test to CFG, to see if it panics on clearly invalid garbage data
2024-04-16 21:40:30 -04:00
74940c0436
Don't call unwrap() nearly as much in reading DAT files
2024-04-16 21:33:09 -04:00
a0a57df348
Don't call unwrap() in writing CMP files
2024-04-16 21:28:53 -04:00
e5bbde95fd
Don't call unwrap() in writing CharDat files
2024-04-16 21:28:33 -04:00
aa62b70498
Don't call unwrap() when reading Index2File
2024-04-16 21:27:41 -04:00
d3970754f1
Support filenames without directories in IndexFile
...
This can't happen I don't think, but we should definitely not panic when
it does.
2024-04-16 21:25:53 -04:00
26e89e8873
Remove more dead code
2024-04-16 21:19:08 -04:00
da774529da
Remove overcomplicated internal race macro to a big match statement
...
There's really no reason to use macros for this, let's rewrite it in a
big match statement.
2024-04-16 21:14:59 -04:00
f067b653b1
Add common functions for converting bool back and forth from u8/16
...
Sort of unnecessary, but these are also tested.
2024-04-16 21:03:26 -04:00
fa4cc1efaa
Add tests for filenames on each platform
2024-04-15 19:49:57 -04:00
57d13f0b21
Remove hardcoded "win32" string in repository filename functions
...
Second part to that recent refactor, so eventually it might be possible
to read DATs from other platforms.
2024-04-15 19:43:16 -04:00
e146b31bd4
Unify Platform enums, use it in GameData API and yet more simplifying
...
So we had a couple copies of a Platform enum, so now there's a public
one in the common module. It wasn't possible to specify what platform
the GameData is, so now it's part of initialization. While I'm at it,
remove the stupid reload_repositories() requirement and make that a
private part of the API.
2024-04-15 19:40:55 -04:00
5c66c51713
Simplify and change Repository API, test it as well
...
We can simplify some of the repository code since there's now two
separate functions for base/expansion repositories. Added tests to make
sure reading doesn't regress like it did before.
2024-04-15 19:25:31 -04:00
7a496f7f3c
Test writing FIIN files, only use filename
...
FIIN files only store the filenames of files, not their absolute path.
This adds tests which test regressions in this behavior.
2024-04-15 19:03:02 -04:00
840682e1d0
Simplify some EXL parsing code
2024-04-15 18:50:01 -04:00
f80b290c4e
Jamcrc should be crate level public
...
This doesn't make any functional difference (because the module isn't
public) but whatever, still want to do it
2024-04-15 18:38:22 -04:00
1c3c75a144
Remove unused import in BootData
2024-04-15 18:24:49 -04:00