diff --git a/Source/Core/DiscIO/WbfsBlob.cpp b/Source/Core/DiscIO/WbfsBlob.cpp index 33c4c90b53..7aaa09c8b1 100644 --- a/Source/Core/DiscIO/WbfsBlob.cpp +++ b/Source/Core/DiscIO/WbfsBlob.cpp @@ -51,6 +51,11 @@ WbfsFileReader::~WbfsFileReader() delete[] m_wlba_table; } +u64 WbfsFileReader::GetDataSize() const +{ + return WII_SECTOR_COUNT * WII_SECTOR_SIZE; +} + bool WbfsFileReader::OpenFiles(const std::string& filename) { m_total_files = 0; diff --git a/Source/Core/DiscIO/WbfsBlob.h b/Source/Core/DiscIO/WbfsBlob.h index d090ad461c..ce9d42953e 100644 --- a/Source/Core/DiscIO/WbfsBlob.h +++ b/Source/Core/DiscIO/WbfsBlob.h @@ -20,7 +20,12 @@ public: static WbfsFileReader* Create(const std::string& filename); BlobType GetBlobType() const override { return BlobType::WBFS; } - u64 GetDataSize() const override { return m_size; } + + // The WBFS format does not save the original file size. + // This function returns a constant upper bound + // (the size of a double-layer Wii disc). + u64 GetDataSize() const override; + u64 GetRawSize() const override { return m_size; } bool Read(u64 offset, u64 nbytes, u8* out_ptr) override;