diff options
| author | hrydgard <hrydgard@gmail.com> | 2008-09-24 19:10:56 +0000 |
|---|---|---|
| committer | hrydgard <hrydgard@gmail.com> | 2008-09-24 19:10:56 +0000 |
| commit | e4785df7a2ec6b1b3b45cd27cad515b8add44fc0 (patch) | |
| tree | 00c277e53c7e0da28accdac0b77210f3a7a89018 /Source/Core/DiscIO | |
| parent | 284e3ec211536041cda4b754d594302f6fb9a161 (diff) | |
Ban compression of Wii images until it has been tested. All sorts of minor cleanup.
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@669 8ced0084-cf51-0410-be5f-012b33b47a6e
Diffstat (limited to 'Source/Core/DiscIO')
| -rw-r--r-- | Source/Core/DiscIO/Src/CompressedBlob.cpp | 11 | ||||
| -rw-r--r-- | Source/Core/DiscIO/Src/FileSystemGCWii.cpp | 6 | ||||
| -rw-r--r-- | Source/Core/DiscIO/Src/VolumeCreator.cpp | 4 | ||||
| -rw-r--r-- | Source/Core/DiscIO/Src/VolumeDirectory.cpp | 2 |
4 files changed, 13 insertions, 10 deletions
diff --git a/Source/Core/DiscIO/Src/CompressedBlob.cpp b/Source/Core/DiscIO/Src/CompressedBlob.cpp index 41194b537f..c0863a82bc 100644 --- a/Source/Core/DiscIO/Src/CompressedBlob.cpp +++ b/Source/Core/DiscIO/Src/CompressedBlob.cpp @@ -26,6 +26,7 @@ #include "Common.h"
#include "CompressedBlob.h"
+#include "FileUtil.h"
#include "Hash.h"
#ifdef _WIN32
@@ -35,11 +36,6 @@ #include "../../../../Externals/zlib/zlib.h"
#endif
-#ifdef _WIN32
-#define fseek _fseeki64
-#endif
-
-
namespace DiscIO
{
@@ -163,6 +159,11 @@ void CompressedBlobReader::GetBlock(u64 block_num, u8 *out_ptr) bool CompressFileToBlob(const char* infile, const char* outfile, u32 sub_type,
int block_size, CompressCB callback, void* arg)
{
+ if (File::GetSize(infile) > 2000000000ULL) {
+ PanicAlert("Sorry - compressing Wii games not yet supported.");
+ return false;
+ }
+
if (IsCompressedBlob(infile))
{
PanicAlert("%s is already compressed! Cannot compress it further.", infile);
diff --git a/Source/Core/DiscIO/Src/FileSystemGCWii.cpp b/Source/Core/DiscIO/Src/FileSystemGCWii.cpp index 276a12fc8c..c728767fd5 100644 --- a/Source/Core/DiscIO/Src/FileSystemGCWii.cpp +++ b/Source/Core/DiscIO/Src/FileSystemGCWii.cpp @@ -137,6 +137,7 @@ size_t CFileSystemGCWii::GetFileList(std::vector<const SFileInfo *> &_rFilenames if (_rFilenames.size())
PanicAlert("GetFileList : input list has contents?");
_rFilenames.clear();
+ _rFilenames.reserve(m_FileInfoVector.size());
for (size_t i = 0; i < m_FileInfoVector.size(); i++)
_rFilenames.push_back(&m_FileInfoVector[i]);
return m_FileInfoVector.size();
@@ -182,9 +183,11 @@ bool CFileSystemGCWii::InitFileSystem() if (Root.IsDirectory())
{
- m_FileInfoVector.clear();
+ if (m_FileInfoVector.size())
+ PanicAlert("Wtf?");
u64 NameTableOffset = FSTOffset;
+ m_FileInfoVector.reserve(Root.m_FileSize);
for (u32 i = 0; i < Root.m_FileSize; i++)
{
SFileInfo sfi;
@@ -194,7 +197,6 @@ bool CFileSystemGCWii::InitFileSystem() sfi.m_FileSize = Read32(Offset + 0x8);
m_FileInfoVector.push_back(sfi);
-
NameTableOffset += 0xC;
}
diff --git a/Source/Core/DiscIO/Src/VolumeCreator.cpp b/Source/Core/DiscIO/Src/VolumeCreator.cpp index 7f58f30db7..7cf08ab664 100644 --- a/Source/Core/DiscIO/Src/VolumeCreator.cpp +++ b/Source/Core/DiscIO/Src/VolumeCreator.cpp @@ -79,7 +79,7 @@ IVolume* CreateVolumeFromFilename(const std::string& _rFilename) {
case DISC_TYPE_WII:
case DISC_TYPE_GC:
- return(new CVolumeGC(pReader));
+ return new CVolumeGC(pReader);
case DISC_TYPE_WII_CONTAINER:
{
@@ -106,7 +106,7 @@ IVolume* CreateVolumeFromFilename(const std::string& _rFilename) IVolume* CreateVolumeFromDirectory(const std::string& _rDirectory, bool _bIsWii)
{
- if(CVolumeDirectory::IsValidDirectory(_rDirectory))
+ if (CVolumeDirectory::IsValidDirectory(_rDirectory))
return new CVolumeDirectory(_rDirectory, _bIsWii);
return NULL;
diff --git a/Source/Core/DiscIO/Src/VolumeDirectory.cpp b/Source/Core/DiscIO/Src/VolumeDirectory.cpp index a6af0bdca7..1d609266ec 100644 --- a/Source/Core/DiscIO/Src/VolumeDirectory.cpp +++ b/Source/Core/DiscIO/Src/VolumeDirectory.cpp @@ -421,7 +421,7 @@ void CVolumeDirectory::WriteEntry(const File::FSTEntry& entry, u32& fstOffset, u m_virtualDisk.insert(make_pair(dataOffset, entry.physicalName));
// 4 byte aligned
- dataOffset = (dataOffset + entry.size + 3) & ~3;
+ dataOffset = (dataOffset + entry.size + 3) & ~3ULL;
}
}
|
