Leo Lam
3748384008
Merge pull request #5746 from leoetlino/disc-updates
...
Add support for installing disc updates from the game list
2017-08-16 19:02:42 +08:00
Michael M
1ade08c607
Fix two small lint errors
2017-08-13 19:06:10 -07:00
Leo Lam
54778303ee
Merge pull request #5871 from JosJuice/read-swapped-and-shifted
...
DiscIO: Add a Volume::ReadSwappedAndShifted function
2017-08-11 15:58:42 +08:00
Léo Lam
eb1ba4b0e9
DiscIO: Add a blob reader for Volume files
2017-08-10 23:47:18 +08:00
Léo Lam
ca0438e26d
WiiWad: Allow using WiiWad with more than just files
...
This adds a WiiWad constructor that takes a BlobReader, so that the
class can be used with more than just files from the host filesystem.
Required for using WiiWad with WADs from update partitions.
2017-08-10 23:47:18 +08:00
Lioncash
01c262fe47
Filesystem: Declare FileInfo iterator's move constructor and assignment operator noexcept
...
Prevents potential extra copies being created in the context of
std::move_if_noexcept.
2017-08-05 12:29:02 -04:00
JosJuice
5e3c98af1d
DiscIO: Add a Volume::ReadSwappedAndShifted function
...
This is a fairly common operation, so let's make a utility
function for it to cut down on code duplication.
2017-08-02 22:00:51 +02:00
JosJuice
a7a8e467b6
DirectoryBlob: Use NonCopyable
2017-08-01 21:52:30 +02:00
JosJuice
b6c6a04f95
DirectoryBlob: Standardize the spelling of disc
...
DirectoryBlob was using disk in some places and disc in other places.
2017-08-01 11:36:40 +02:00
JosJuice
d0c322f6e6
DirectoryBlob: Don't silently set GC region to NTSC-J if bi2.bin is missing
...
We were already handling the Wii region in region.bin in this way.
2017-08-01 11:36:40 +02:00
JosJuice
3fd0d39a85
DirectoryBlob: Write partition headers properly
2017-08-01 11:36:40 +02:00
JosJuice
5fe3745750
Don't show "extra" files from DirectoryBlobs in game list
...
For instance, we don't want to show TGC files that might be
inside the /files/ directory of a GameCube DirectoryBlob,
and we don't want to show the /sys/main.dol files for extra
partitions of Wii DirectoryBlobs.
2017-08-01 11:36:40 +02:00
JosJuice
1ea44f425d
DirectoryBlob: Change ConvertUTF8NamesToSHIFTJIS's parameter to pointer
2017-08-01 11:36:40 +02:00
JosJuice
34fd08e7eb
DirectoryBlob: Support multiple partitions
2017-08-01 11:36:40 +02:00
JosJuice
955ab72b1d
DirectoryBlob: Remove m_root_directory from DirectoryBlob
2017-08-01 11:36:40 +02:00
JosJuice
e15b957d53
DirectoryBlob: Implement GetDataSize()
2017-08-01 11:36:40 +02:00
JosJuice
d84bee3ff4
DirectoryBlob: Prepare more for supporting multiple partitions
2017-08-01 11:36:40 +02:00
JosJuice
a3ee61e1a9
DirectoryBlob: Let DirectoryBlob force GC/Wii for partition
2017-08-01 11:36:40 +02:00
JosJuice
fb09874f79
DirectoryBlob: Reorder functions in .cpp file
...
They're now grouped by which class they belong to.
2017-08-01 11:36:40 +02:00
JosJuice
ba0ee3f54b
DirectoryBlob: Prepare for supporting multiple partitions
2017-08-01 11:36:40 +02:00
JosJuice
953ca9cee1
DirectoryBlob: Make PadToAddress and Write32 static
2017-08-01 11:36:40 +02:00
JosJuice
ab4762c4c2
DirectoryBlob: Split out setting BI2 to new function
2017-08-01 11:36:40 +02:00
JosJuice
2ea0a1a086
DirectoryBlob: Make some constants local
2017-08-01 11:36:40 +02:00
JosJuice
0d4ad0e39e
DirectoryBlob: Remove m_fst_name_offset
2017-08-01 11:36:40 +02:00
JosJuice
ef39b4da46
DirectoryBlob: Improve SetApploader
...
The code gets simpler by using IOFile instead of ReadFileToString.
Also, we now write -1 in all cases where loading fails.
2017-08-01 11:36:40 +02:00
JosJuice
31d8322c5a
DirectoryBlob: Don't use member variables for addresses
...
Now it's clearer that SetDOL depends on SetApploader
and BuildFST depends on SetDOL.
As a side note, we now load the DOL even if there's
no apploader. (I don't think it matters whether we
do it, but it was easier to implement this way.)
2017-08-01 11:36:40 +02:00
JosJuice
b28ec0b7ee
DirectoryBlob: Split out setting partition table to new function
2017-08-01 11:36:40 +02:00
JosJuice
c4879aa48d
DirectoryBlob: Split out setting TMD and ticket to new function
2017-08-01 11:36:40 +02:00
JosJuice
5a00bda490
DirectoryBlob: Move content emplacement out of the constructor
2017-08-01 11:36:40 +02:00
JosJuice
1258d18f21
DirectoryBlob: Restructure SetApploader
2017-08-01 11:36:40 +02:00
JosJuice
8747b1b6ab
DirectoryBlob: Support region.bin
2017-08-01 11:36:40 +02:00
JosJuice
c73f6b6c26
DirectoryBlob: Add ReadFileToVector function
2017-08-01 11:36:40 +02:00
JosJuice
8afa230787
DirectoryBlob: Rename DISKHEADERINFO_ADDRESS to BI2_ADDRESS
...
Because DISKHEADERINFO is too easy confuse with DISKHEADER.
Also adding BI2_SIZE and DISKHEADER_SIZE contants.
2017-08-01 11:36:40 +02:00
JosJuice
975b2b40fa
DirectoryBlob: Support bi2.bin
2017-08-01 11:36:40 +02:00
JosJuice
251828ccc0
Don't check validity twice when creating DirectoryBlob
2017-08-01 11:36:40 +02:00
JosJuice
a6bbf7e21b
DirectoryBlob: Don't keep DOL in memory
2017-08-01 11:36:40 +02:00
JosJuice
4cc8d3091c
DirectoryBlob: Require header file (boot.bin)
2017-08-01 11:36:40 +02:00
JosJuice
71578b468d
DirectoryBlob: Support tickets and TMDs
2017-08-01 11:36:40 +02:00
JosJuice
02610d4b28
DirectoryBlob: Use DISCIO instead of DVDINTERFACE for logging
2017-08-01 11:36:40 +02:00
JosJuice
3f9eec9ae4
DirectoryBlob: Use DiscContent for ReadNonPartition too
...
ReadPartition and ReadNonPartition are now unified into
ReadInternal, with a parameter controlling whether
the read is in a partition or not.
2017-08-01 11:36:40 +02:00
JosJuice
a0fa350ca6
DirectoryBlob: Use DiscContent for everything in ReadPartition
2017-08-01 11:36:40 +02:00
JosJuice
936ef5b9dd
DirectoryBlob: Let DiscContent be backed by memory instead of file
2017-08-01 11:36:40 +02:00
JosJuice
e1321b131d
DirectoryBlob: Create a DiscContent class for use in m_virtual_disc
2017-08-01 11:36:40 +02:00
JosJuice
b56214789e
DirectoryBlob: Make some functions private
2017-08-01 11:36:40 +02:00
JosJuice
b8d8c7370f
DirectoryBlob: Move constants to .cpp file
2017-08-01 11:36:40 +02:00
JosJuice
37c09343d8
Turn VolumeDirectory into DirectoryBlob
...
This lets VolumeDirectory/DirectoryBlob skip implementing
various volume functions like GetGameID, GetBanner, etc.
It also lets us view extracted discs in the game list.
This ends up breaking the boot process for Wii
DirectoryBlobs due to workarounds being removed from the
boot process, but that will be fixed later by adding
proper DirectoryBlob support for things like TMDs.
We now expect the directories to be laid out in a certain
format (based on the format that WIT uses) instead of requiring
the user to set the DVD root and apploader path settings.
2017-08-01 11:36:40 +02:00
JosJuice
5f8935932d
Blob: Add interface for reading decrypted Wii data directly
...
This is useful for blob types that store Wii data unencrypted
(such as WIA and discs extracted to directories) so that
we don't have to waste CPU time encrypting in the blob code
just to decrypt right afterwards in the volume code.
2017-08-01 11:36:40 +02:00
Leo Lam
764c93f932
Merge pull request #5683 from JosJuice/volume-wii-defer
...
VolumeWii: Defer loading tickets, TMDs and keys until when needed
2017-08-01 17:11:30 +08:00
Leo Lam
c207a1072d
Merge pull request #5795 from JosJuice/gc-region-detection
...
Improve GameCube region detection
2017-07-20 14:13:11 +08:00
JosJuice
be8e93f472
Ensure that Volume::GetRegion doesn't return invalid enum values
2017-07-16 14:52:17 +02:00