diff options
| author | JosJuice <josjuice@gmail.com> | 2015-08-10 16:35:23 +0200 |
|---|---|---|
| committer | JosJuice <josjuice@gmail.com> | 2015-08-10 16:35:23 +0200 |
| commit | e0a47c11f5653ecffb79adfac29c19a163baab8f (patch) | |
| tree | 1acfa0cb1581c14f7925b728950397e736fb3f5d /Source/Core/DiscIO | |
| parent | 6f2400ebc08a1e300881ea48e5cac5abf2f3c08c (diff) | |
Fix reading Wii FST size (for real this time)
04fcb72 fixed an issue with reading the Wii FST size, but I found a second
issue when working on PR #2820 - the size must be shifted left by 2.
DiscScrubber and Boot already do this correctly using separate code.
Diffstat (limited to 'Source/Core/DiscIO')
| -rw-r--r-- | Source/Core/DiscIO/Volume.h | 2 | ||||
| -rw-r--r-- | Source/Core/DiscIO/VolumeDirectory.cpp | 2 | ||||
| -rw-r--r-- | Source/Core/DiscIO/VolumeDirectory.h | 2 | ||||
| -rw-r--r-- | Source/Core/DiscIO/VolumeGC.cpp | 2 | ||||
| -rw-r--r-- | Source/Core/DiscIO/VolumeGC.h | 2 | ||||
| -rw-r--r-- | Source/Core/DiscIO/VolumeWad.h | 2 | ||||
| -rw-r--r-- | Source/Core/DiscIO/VolumeWiiCrypted.cpp | 4 | ||||
| -rw-r--r-- | Source/Core/DiscIO/VolumeWiiCrypted.h | 2 |
8 files changed, 9 insertions, 9 deletions
diff --git a/Source/Core/DiscIO/Volume.h b/Source/Core/DiscIO/Volume.h index 294cf94c01..fc27c3bc68 100644 --- a/Source/Core/DiscIO/Volume.h +++ b/Source/Core/DiscIO/Volume.h @@ -89,7 +89,7 @@ public: virtual std::map<ELanguage, std::string> GetDescriptions() const { return std::map<ELanguage, std::string>(); } virtual std::string GetCompany() const { return std::string(); } virtual std::vector<u32> GetBanner(int* width, int* height) const; - virtual u32 GetFSTSize() const = 0; + virtual u64 GetFSTSize() const = 0; virtual std::string GetApploaderDate() const = 0; // 0 is the first disc, 1 is the second disc virtual u8 GetDiscNumber() const { return 0; } diff --git a/Source/Core/DiscIO/VolumeDirectory.cpp b/Source/Core/DiscIO/VolumeDirectory.cpp index 905403e14b..eadb198eeb 100644 --- a/Source/Core/DiscIO/VolumeDirectory.cpp +++ b/Source/Core/DiscIO/VolumeDirectory.cpp @@ -210,7 +210,7 @@ void CVolumeDirectory::SetName(const std::string& name) m_diskHeader[length + 0x20] = 0; } -u32 CVolumeDirectory::GetFSTSize() const +u64 CVolumeDirectory::GetFSTSize() const { return 0; } diff --git a/Source/Core/DiscIO/VolumeDirectory.h b/Source/Core/DiscIO/VolumeDirectory.h index 8053d209d2..4dc7fa1a9a 100644 --- a/Source/Core/DiscIO/VolumeDirectory.h +++ b/Source/Core/DiscIO/VolumeDirectory.h @@ -44,7 +44,7 @@ public: std::map<IVolume::ELanguage, std::string> GetNames(bool prefer_long) const override; void SetName(const std::string&); - u32 GetFSTSize() const override; + u64 GetFSTSize() const override; std::string GetApploaderDate() const override; EPlatform GetVolumeType() const override; diff --git a/Source/Core/DiscIO/VolumeGC.cpp b/Source/Core/DiscIO/VolumeGC.cpp index f2e54bdde8..b73159b083 100644 --- a/Source/Core/DiscIO/VolumeGC.cpp +++ b/Source/Core/DiscIO/VolumeGC.cpp @@ -143,7 +143,7 @@ std::vector<u32> CVolumeGC::GetBanner(int* width, int* height) const return image_buffer; } -u32 CVolumeGC::GetFSTSize() const +u64 CVolumeGC::GetFSTSize() const { if (m_pReader == nullptr) return 0; diff --git a/Source/Core/DiscIO/VolumeGC.h b/Source/Core/DiscIO/VolumeGC.h index c1abcb28d2..c65b447d27 100644 --- a/Source/Core/DiscIO/VolumeGC.h +++ b/Source/Core/DiscIO/VolumeGC.h @@ -33,7 +33,7 @@ public: std::map<ELanguage, std::string> GetDescriptions() const override; std::string GetCompany() const override; std::vector<u32> GetBanner(int* width, int* height) const override; - u32 GetFSTSize() const override; + u64 GetFSTSize() const override; std::string GetApploaderDate() const override; u8 GetDiscNumber() const override; diff --git a/Source/Core/DiscIO/VolumeWad.h b/Source/Core/DiscIO/VolumeWad.h index 16168aefad..b89de9776e 100644 --- a/Source/Core/DiscIO/VolumeWad.h +++ b/Source/Core/DiscIO/VolumeWad.h @@ -33,7 +33,7 @@ public: u16 GetRevision() const override; std::string GetInternalName() const override { return ""; } std::map<IVolume::ELanguage, std::string> GetNames(bool prefer_long) const override; - u32 GetFSTSize() const override { return 0; } + u64 GetFSTSize() const override { return 0; } std::string GetApploaderDate() const override { return ""; } EPlatform GetVolumeType() const override; diff --git a/Source/Core/DiscIO/VolumeWiiCrypted.cpp b/Source/Core/DiscIO/VolumeWiiCrypted.cpp index 5701dab1cc..aabbeed2c6 100644 --- a/Source/Core/DiscIO/VolumeWiiCrypted.cpp +++ b/Source/Core/DiscIO/VolumeWiiCrypted.cpp @@ -206,7 +206,7 @@ std::map<IVolume::ELanguage, std::string> CVolumeWiiCrypted::GetNames(bool prefe return ReadWiiNames(opening_bnr); } -u32 CVolumeWiiCrypted::GetFSTSize() const +u64 CVolumeWiiCrypted::GetFSTSize() const { if (m_pReader == nullptr) return 0; @@ -216,7 +216,7 @@ u32 CVolumeWiiCrypted::GetFSTSize() const if (!Read(0x428, 0x4, (u8*)&size, true)) return 0; - return Common::swap32(size); + return (u64)Common::swap32(size) << 2; } std::string CVolumeWiiCrypted::GetApploaderDate() const diff --git a/Source/Core/DiscIO/VolumeWiiCrypted.h b/Source/Core/DiscIO/VolumeWiiCrypted.h index 88773af68b..026ba19629 100644 --- a/Source/Core/DiscIO/VolumeWiiCrypted.h +++ b/Source/Core/DiscIO/VolumeWiiCrypted.h @@ -33,7 +33,7 @@ public: u16 GetRevision() const override; std::string GetInternalName() const override; std::map<IVolume::ELanguage, std::string> GetNames(bool prefer_long) const override; - u32 GetFSTSize() const override; + u64 GetFSTSize() const override; std::string GetApploaderDate() const override; u8 GetDiscNumber() const override; |
