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

24 commits

Author SHA1 Message Date
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
75a3eafaf2 Remove non-applicable comment on Language::None 2025-04-28 22:49:39 -04:00
26c4041b68 Refactor EXD parsing, begin adding write support 2025-04-28 16:42:32 -04:00
bd111b6d53 Remove manual Eq implementation for Repository 2025-03-08 08:57:41 -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
c9230530a1 Add XBox/PS5 platform ids 2025-03-06 16:26:22 -05:00
d5b3b8a468 Run cargo fmt 2024-04-20 13:18:03 -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
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
80f80ac0f5 Improve common module docs 2023-09-22 18:15:23 -04:00
2000b978b3 Ensure compliance with REUSE, add to CI 2023-08-06 08:25:04 -04:00
925e928783 Allow Language to be copied and cloned 2023-04-09 15:33:43 -04:00
6e6aa896a6 Run rustfmt 2022-10-25 13:02:06 -04:00
d17f860f07 Allow naive repairing of version files
Currently, we not handle repairing version files well, so I
sought to seek a solution to the problem. This is one of part of the
puzzle, by implementing a simple "game repair". This is not
IndexedZiPatch support, but simply checking if we can restore version
files if possible, or otherwise wipe the directory.
2022-10-25 11:03:05 -04:00
9819f87fcc Suppress some warnings 2022-09-15 16:26:31 -04:00
d9e79e563a Reformat code 2022-08-16 11:52:07 -04:00
22569cf09d Oops, apparently index and patch platform id sizes are different! 2022-08-09 22:37:40 -04:00
18322a13d2 Handle patching error handling better
* Move PlatformId to common module.
* Platform id is no longer hardcoded to win32.
* Parse apply options correctly.
* Parse target info better, use more native structures.
* All errors are now handled properly, and propagated up.
* Added a new Region enum.
* Added todo!() to all unhandled patching branches.
* Paths are now built using PathBuf instead of format!().
* process_patch function is no longer accessible, now you have to use
the function found in GameData and BootData.
2022-08-09 21:51:52 -04:00
c36c4b7470 Document more public APIs in preparation for docs release 2022-07-27 21:41:05 -04:00
4ac3fc378d Define enum size for Language 2022-07-21 20:08:14 -04:00
da673cbadf Language now derives BinRead 2022-07-21 19:58:07 -04:00
389c3fe00b Add initial files 2022-07-19 19:29:41 -04:00