Commit Graph

27 Commits

Author SHA1 Message Date
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 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