80 Commits

Author SHA1 Message Date
iwubcode
373e35ed5b Merge pull request #14267 from jordan-woyak/std-expected
Common: Replace Result with std::expected.
2026-01-17 22:33:15 -06:00
Jordan Woyak
dffc7a650d Common: Replace Result with C++23's std::expected. 2026-01-17 16:58:45 -06:00
Sintendo
1e0473e44f Fix various typos and spelling mistakes 2026-01-17 20:11:38 +01:00
Jordan Woyak
2acb49544c Merge pull request #13539 from tygyh/DiscIO-Remove-redundant-casts
DiscIO: Remove redundant casts
2025-11-19 17:40:42 -06:00
Jordan Woyak
239330017c DiscIO: Make all BlobReader implementations use DirectIOFile to make CopyReader functionality thread safe. 2025-11-09 03:08:14 -06:00
Dr. Dystopia
ca8f9b672b Source: Remove redundant lambda parameter lists 2025-06-14 10:19:31 +02:00
Dr. Dystopia
7b496b2f5b DiscIO: Remove redundant casts 2025-06-04 21:57:45 +02:00
Dr. Dystopia
07ad189b4f DiscIO: Pass parameters by constant reference 2025-04-20 08:26:09 +02:00
mitaclaw
8b9f92a0af Modernize std::sort with ranges and projections
In PPCTables.cpp, the code is currently unused so I was unable to test it.

In CustomPipeline.cpp, a pointer to member function cannot be used due to 16.4.5.2.1 of the C++ Standard regarding "addressable functions". https://eel.is/c++draft/namespace.std#6

In Fs.cpp and DirectoryBlob.cpp, these examples used projections in a previous iteration of this commit, but no longer do. Still, they remain in this commit because the PR they would actually belong to is already merged.
2025-03-09 13:26:38 -07:00
mitaclaw
62b2b939b5 Simplify std::find_if with std::ranges::find and projections
In LabelMap.cpp, the code is currently unused so I was unable to test it.

In WiiUtils.cpp, the magic value `1u` was replaced by the constant value `DiscIO::PARTITION_UPDATE`.
2025-03-09 13:26:35 -07:00
mitaclaw
860e6cf5cb Modernize std::all_of with ranges
In DITSpecification.cpp, MaterialAsset.cpp, and ShaderAsset.cpp, lambda predicates were replaced by pointers to member functions because ranges algorithms are able invoke those.

In NetPlayClient.cpp, the non-trivial `NetPlay::Player` elements were being passed by value in `NetPlayClient::DoAllPlayersHaveGame()`. This has been fixed.

In WIABlob.cpp, the second example's predicate was returning the `std::optional` by value instead of implicitly converting it to a bool. This has been fixed.
2024-12-15 19:50:34 -08:00
mitaclaw
7c96762f5f Simplify std::copy with std::copy_n
+ a surprise `std::memcpy` in VolumeVerifier.cpp.
2024-10-07 15:34:56 -07:00
JosJuice
e72b23df91 DiscIO: Fix a typo in an RVZPack comment 2024-09-08 12:38:10 +02:00
Ferdinand Bachmann
6245dcd57d RVZ: Fix undefined behaviour when copying 0 bytes to a null pointer
A vector of length 0 can have a null data pointer, which causes UB when
passed to memcpy, so only copy when we actually have data to copy. This
caused crashes in certain cases when compiling Dolphin with Clang and
LTO enabled.
2024-08-27 18:16:43 +02:00
Dr. Dystopia
9602f36248 Remove redundant semicolons 2024-08-20 14:59:54 +02:00
LillyJadeKatrin
335cf4f2db Added CopyReader to BlobReader and all subclasses
A deep-copy method CopyReader has been added to BlobReader (virtual) and all of its subclasses (override). This should create a second BlobReader to open the same set of data but with an independent read pointer so that it doesn't interfere with any reads done on the original Reader.

As part of this, IOFile has added code to create a deep copy IOFile pointer onto the same file, with code based on the platform in question to find the file ID from the file pointer and open a new one. There has also been a small piece added to FileInfo to enable a deep copy, but its only subclass at this time already had a copy constructor so this was relatively minor.
2023-10-01 09:04:06 -04:00
JosJuice
192081d2f1 DiscIO: Improve comments in WIARVZFileReader::Convert
Just some clarifications and typo fixes.
2023-05-16 18:58:07 +02:00
JosJuice
a87dffe52d DiscIO: Replace IsDataSizeAccurate with GetDataSizeType
Previously, we had WBFS and CISO which both returned an upper bound
of the size, and other formats which returned an accurate size. But
now we also have NFS, which returns a lower bound of the size. To
allow VolumeVerifier to make better informed decisions for NFS, let's
use an enum instead of a bool for the type of data size a blob has.
2022-08-04 22:00:59 +02:00
JosJuice
bb27d4cc95 DiscIO/VolumeWii: Decouple "is encrypted" from "is hashed"
Needed for the next commit. NFS disc images are hashed but not encrypted.

While we're at it, also get rid of SupportsIntegrityCheck.
It does the same thing as old IsEncryptedAndHashed and new HasWiiHashes.
2022-08-04 20:29:22 +02:00
Shawn Hoffman
46ad8b9d68 Implement hw accelerated AES 2022-08-01 10:00:42 -07:00
Shawn Hoffman
bfa2a66c98 WIABlob: remove outdated mbedtls workaround 2022-07-26 22:16:37 -07:00
Shawn Hoffman
dd29a54cf6 introduce wrapper for SHA1 functionality 2022-07-26 22:16:37 -07:00
TellowKrinkle
26fc167a44 DiscIO: Fix creation of rvz with > 2mb chunk size 2022-06-11 16:10:32 -05:00
Minty-Meeo
deba9ce256 Added a way to check Block Size, Compression Method, and Compression Level flags to dolphin-tool
New dolphin-tool command: "header"
-b / --block_size
-c / --compression
-l / --compression_level

Informative RVZ/WIA header2 value "compression_level" is now a s32 instead of a u32, because negative compression is a thing.

Speaking of, it is now possible to use negative compression levels in dolphin-tool's convert command (not the GUI, though).
2022-03-19 17:13:28 -05:00
Admiral H. Curtiss
36cfcb530f IOFile: Make origin parameter to Seek() an enum class. 2022-01-29 06:49:21 +01:00