38 Commits

Author SHA1 Message Date
get
ee19ff66b4 Remove NKit data when extracting a GCN/Wii disc volume 2023-06-02 01:11:50 -05: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
Admiral H. Curtiss
ad410009bb Core/DiscIO: Extract disc and partition constants to DiscUtils.h. 2021-09-19 22:43:52 +02:00
Pierre Bourdon
e149ad4f0a treewide: convert GPLv2+ license info to SPDX tags
SPDX standardizes how source code conveys its copyright and licensing
information. See https://spdx.github.io/spdx-spec/1-rationale/ . SPDX
tags are adopted in many large projects, including things like the Linux
kernel.
2021-07-05 04:35:56 +02:00
JosJuice
49ccc77ebb DiscIO: Move some code from DiscExtractor to new file DiscUtils 2021-03-09 20:34:24 +01:00
Shawn Hoffman
84128d9532 rename Common/File to Common/IOFile 2021-01-27 14:29:48 -08:00
JosJuice
b43f7c85cc DiscIO: Fix recursive directory extraction
https://bugs.dolphin-emu.org/issues/12331
2020-12-03 21:13:53 +01:00
Felipe
d7fa75ef64 modify file export to create folder in OS when explicitly extracting a directory 2020-10-29 15:20:46 -04:00
Lioncash
e93fbb7c5e DiscIO: Migrate logging over to fmt
Eliminates quite a bit of the PRI* macros used for handling 64-bit
values.
2020-10-22 15:41:42 -04:00
JosJuice
d100c1dc37 DiscIO: Make use of fmt where applicable
Once nice benefit of fmt is that we can use positional arguments
in localizable strings. This a feature which has been
requested for the Korean translation of strings like
"Errors were found in %zu blocks in the %s partition."
and which will no doubt be useful for other languages too.
2020-10-19 14:30:47 +02:00
JosJuice
a41166bb37 Make netplay's "same game" check more robust
Instead of comparing the game ID, revision, disc number and name,
we can compare a hash of important parts of the disc including
all the aforementioned data but also additional data such as the
FST. The primary reason why I'm making this change is to let us
catch more desyncs before they happen, but this should also fix
https://bugs.dolphin-emu.org/issues/12115. As a bonus, the UI can
now distinguish the case where a client doesn't have the game at
all from the case where a client has the wrong version of the game.
2020-08-02 22:46:53 +02:00
Jun Su
d44c51b30c DiscIO: cleanup warnings of -Wmaybe-uninitialized
replace {} with std::nullopt.
2020-03-23 14:14:00 +08:00
JosJuice
d4b069f458 DiscIO: Use std::string_view in FileSystem::FindFileInfo
...and in the functions that call it.
2019-05-29 08:29:56 +02:00
JosJuice
bb1ed46753 Use [[fallthrough]] in DiscExtractor
This was missed in PR 6273 because the fallthrough was added to
DiscExtractor after that PR was created.
2019-05-05 10:35:45 +02:00
JosJuice
84cbd5150f Add a Verify tab to game properties 2019-04-09 14:18:41 +02:00
JosJuice
cf9ab6ddcc DiscExtractor: Make P prefix for partition names optional
Also added constants for common partition types.
2019-03-30 12:45:17 +01:00
JosJuice
c558803cbd DiscExtractor: Fix extracting certificate chain and H3 hashes
Dolphin is currently not using this data, but still,
the way it was being extracted was not at all correct.
2019-03-21 23:07:24 +01:00
booto
800c1570ea ExportDOL: ActionReplay has a 0'd dol offset. Don't try to extract. 2018-08-02 05:32:05 -04:00
Lioncash
c825eecbc9 ChunkFile: Remove unnecessary includes
ChunkFile doesn't use any of the file utilities, so we can drop these
headers to avoid pulling in unnecessary dependencies. This also
uncovered a few indirect inclusions.
2018-06-09 16:49:59 -04:00
JosJuice
58743416bb Make the support for unencrypted Wii disc images less broken
These disc images are only used on dev units and not retail units.
There are two important differences compared to normal Wii disc images:

- The data starts 0x8000 bytes into each partition instead of 0x20000
- The data of a partition is stored unencrypted and contains no hashes

Our old implementation was just guesswork and doesn't work at all.
According to testing by GerbilSoft, this commit's implementation
is able to read and extract files in the filesystem correctly,
but the tested game still isn't able to boot. (It's thanks to their
info about unencrypted disc images that I was able to make this commit.)
2018-05-23 08:40:37 +02:00
spycrab
40bb9974f2 Reformat all the things! 2018-04-12 21:28:39 +02:00
JosJuice
4387432436 DiscIO: Don't use all uppercase for enum values
Also removing some prefixes that we don't need now that we're
using enum classes instead of plain enums.
2018-03-31 14:11:32 +02:00
Lioncash
fc531993a9 DiscExtractor: Pass partition by reference rather than by value in ExtractDirectory() 2018-03-27 21:49:42 -04:00
JosJuice
b28e5fa347 Avoid forbidden characters when extracting disc partitions
We shouldn't try to create folder names that contain characters
such as : or / since they are forbidden or have special meanings.
(No officially released disc uses such characters, though.)
2017-11-08 12:04:59 +01:00
JosJuice
38304da947 DiscIO: Use Common::Lazy for loading filesystems
This simplifies FileMonitor a lot and also lets us
clean up FilesystemPanel.
2017-09-15 18:57:05 +02:00