diff --git a/Source/Core/DiscIO/CMakeLists.txt b/Source/Core/DiscIO/CMakeLists.txt
index 6ff11e4991..7cc2859053 100644
--- a/Source/Core/DiscIO/CMakeLists.txt
+++ b/Source/Core/DiscIO/CMakeLists.txt
@@ -8,7 +8,6 @@ set(SRCS BannerLoader.cpp
DiscScrubber.cpp
DriveBlob.cpp
FileBlob.cpp
- FileHandlerARC.cpp
FileMonitor.cpp
FileSystemGCWii.cpp
Filesystem.cpp
diff --git a/Source/Core/DiscIO/DiscIO.vcxproj b/Source/Core/DiscIO/DiscIO.vcxproj
index f11b8e4aee..5ef6853456 100644
--- a/Source/Core/DiscIO/DiscIO.vcxproj
+++ b/Source/Core/DiscIO/DiscIO.vcxproj
@@ -44,7 +44,6 @@
-
@@ -68,7 +67,6 @@
-
diff --git a/Source/Core/DiscIO/DiscIO.vcxproj.filters b/Source/Core/DiscIO/DiscIO.vcxproj.filters
index a0294112df..1f5f383831 100644
--- a/Source/Core/DiscIO/DiscIO.vcxproj.filters
+++ b/Source/Core/DiscIO/DiscIO.vcxproj.filters
@@ -33,9 +33,6 @@
FileHandler
-
- FileHandler
-
FileSystem
@@ -101,9 +98,6 @@
FileHandler
-
- FileHandler
-
FileSystem
diff --git a/Source/Core/DiscIO/FileHandlerARC.cpp b/Source/Core/DiscIO/FileHandlerARC.cpp
deleted file mode 100644
index 9d53f0a0b9..0000000000
--- a/Source/Core/DiscIO/FileHandlerARC.cpp
+++ /dev/null
@@ -1,226 +0,0 @@
-// Copyright 2013 Dolphin Emulator Project
-// Licensed under GPLv2
-// Refer to the license.txt file included.
-
-#include
-#include
-#include
-#include
-#include
-
-#include "Common/Common.h"
-#include "Common/FileUtil.h"
-#include "Common/StringUtil.h"
-#include "DiscIO/Blob.h"
-#include "DiscIO/FileHandlerARC.h"
-#include "DiscIO/Filesystem.h"
-
-#define ARC_ID 0x55aa382d
-
-namespace DiscIO
-{
-CARCFile::CARCFile(const std::string& _rFilename)
- : m_pBuffer(nullptr)
- , m_Initialized(false)
-{
- std::unique_ptr reader(DiscIO::CreateBlobReader(_rFilename));
- if (reader != nullptr)
- {
- u64 FileSize = reader->GetDataSize();
- m_pBuffer = new u8[(u32)FileSize];
- reader->Read(0, FileSize, m_pBuffer);
-
- m_Initialized = ParseBuffer();
- }
-}
-
-CARCFile::CARCFile(const std::string& _rFilename, u32 offset)
- : m_pBuffer(nullptr)
- , m_Initialized(false)
-{
- std::unique_ptr reader(DiscIO::CreateBlobReader(_rFilename));
- if (reader != nullptr)
- {
- u64 FileSize = reader->GetDataSize() - offset;
- m_pBuffer = new u8[(u32)FileSize];
- reader->Read(offset, FileSize, m_pBuffer);
-
- m_Initialized = ParseBuffer();
- }
-}
-
-CARCFile::CARCFile(const u8* _pBuffer, size_t _BufferSize)
- : m_pBuffer(nullptr)
- , m_Initialized(false)
-{
- m_pBuffer = new u8[_BufferSize];
-
- if (m_pBuffer)
- {
- memcpy(m_pBuffer, _pBuffer, _BufferSize);
- m_Initialized = ParseBuffer();
- }
-}
-
-
-CARCFile::~CARCFile()
-{
- delete [] m_pBuffer;
-}
-
-
-bool CARCFile::IsInitialized()
-{
- return m_Initialized;
-}
-
-
-size_t CARCFile::GetFileSize(const std::string& _rFullPath)
-{
- if (!m_Initialized)
- {
- return 0;
- }
-
- const SFileInfo* pFileInfo = FindFileInfo(_rFullPath);
-
- if (pFileInfo != nullptr)
- {
- return (size_t)pFileInfo->m_FileSize;
- }
-
- return 0;
-}
-
-
-size_t CARCFile::ReadFile(const std::string& _rFullPath, u8* _pBuffer, size_t _MaxBufferSize)
-{
- if (!m_Initialized)
- {
- return 0;
- }
-
- const SFileInfo* pFileInfo = FindFileInfo(_rFullPath);
-
- if (pFileInfo == nullptr)
- {
- return 0;
- }
-
- if (pFileInfo->m_FileSize > _MaxBufferSize)
- {
- return 0;
- }
-
- memcpy(_pBuffer, &m_pBuffer[pFileInfo->m_Offset], (size_t)pFileInfo->m_FileSize);
- return (size_t) pFileInfo->m_FileSize;
-}
-
-
-bool CARCFile::ExportFile(const std::string& _rFullPath, const std::string& _rExportFilename)
-{
- if (!m_Initialized)
- {
- return false;
- }
-
- const SFileInfo* pFileInfo = FindFileInfo(_rFullPath);
-
- if (pFileInfo == nullptr)
- {
- return false;
- }
-
- File::IOFile pFile(_rExportFilename, "wb");
-
- return pFile.WriteBytes(&m_pBuffer[pFileInfo->m_Offset], (size_t) pFileInfo->m_FileSize);
-}
-
-
-bool CARCFile::ExportAllFiles(const std::string& _rFullPath)
-{
- return false;
-}
-
-
-bool CARCFile::ParseBuffer()
-{
- // check ID
- u32 ID = Common::swap32(*(u32*)(m_pBuffer));
-
- if (ID != ARC_ID)
- return false;
-
- // read header
- u32 FSTOffset = Common::swap32(*(u32*)(m_pBuffer + 0x4));
- //u32 FSTSize = Common::swap32(*(u32*)(m_pBuffer + 0x8));
- //u32 FileOffset = Common::swap32(*(u32*)(m_pBuffer + 0xC));
-
- // read all file infos
- SFileInfo Root;
- Root.m_NameOffset = Common::swap32(*(u32*)(m_pBuffer + FSTOffset + 0x0));
- Root.m_Offset = Common::swap32(*(u32*)(m_pBuffer + FSTOffset + 0x4));
- Root.m_FileSize = Common::swap32(*(u32*)(m_pBuffer + FSTOffset + 0x8));
-
- if (Root.IsDirectory())
- {
- m_FileInfoVector.resize((unsigned int)Root.m_FileSize);
- const char* szNameTable = (char*)(m_pBuffer + FSTOffset);
-
- for (size_t i = 0; i < m_FileInfoVector.size(); i++)
- {
- u8* Offset = m_pBuffer + FSTOffset + (i * 0xC);
- m_FileInfoVector[i].m_NameOffset = Common::swap32(*(u32*)(Offset + 0x0));
- m_FileInfoVector[i].m_Offset = Common::swap32(*(u32*)(Offset + 0x4));
- m_FileInfoVector[i].m_FileSize = Common::swap32(*(u32*)(Offset + 0x8));
-
- szNameTable += 0xC;
- }
-
- BuildFilenames(1, m_FileInfoVector.size(), "", szNameTable);
- }
-
- return true;
-}
-
-
-size_t CARCFile::BuildFilenames(const size_t _FirstIndex, const size_t _LastIndex, const std::string& _szDirectory, const char* _szNameTable)
-{
- size_t CurrentIndex = _FirstIndex;
-
- while (CurrentIndex < _LastIndex)
- {
- SFileInfo& rFileInfo = m_FileInfoVector[CurrentIndex];
- int const uOffset = rFileInfo.m_NameOffset & 0xFFFFFF;
-
- rFileInfo.m_FullPath = _szDirectory + &_szNameTable[uOffset];
-
- // check next index
- if (rFileInfo.IsDirectory())
- {
- rFileInfo.m_FullPath += '/';
- CurrentIndex = BuildFilenames(CurrentIndex + 1, (size_t)rFileInfo.m_FileSize, rFileInfo.m_FullPath, _szNameTable);
- }
- else
- {
- ++CurrentIndex;
- }
- }
-
- return CurrentIndex;
-}
-
-
-const SFileInfo* CARCFile::FindFileInfo(const std::string& _rFullPath) const
-{
- for (auto& fileInfo : m_FileInfoVector)
- {
- if (!strcasecmp(fileInfo.m_FullPath.c_str(), _rFullPath.c_str()))
- {
- return &fileInfo;
- }
- }
-
- return nullptr;
-}
-} // namespace
diff --git a/Source/Core/DiscIO/FileHandlerARC.h b/Source/Core/DiscIO/FileHandlerARC.h
deleted file mode 100644
index 327d81c4b9..0000000000
--- a/Source/Core/DiscIO/FileHandlerARC.h
+++ /dev/null
@@ -1,54 +0,0 @@
-// Copyright 2013 Dolphin Emulator Project
-// Licensed under GPLv2
-// Refer to the license.txt file included.
-
-#pragma once
-
-#include
-#include
-#include
-
-#include "Common/CommonTypes.h"
-#include "DiscIO/Filesystem.h"
-
-namespace DiscIO
-{
-class CARCFile
-{
- public:
-
- CARCFile(const std::string& _rFilename);
-
- CARCFile(const std::string& _rFilename, u32 offset);
-
- CARCFile(const u8* _pBuffer, size_t _BufferSize);
-
- virtual ~CARCFile();
-
- bool IsInitialized();
-
- size_t GetFileSize(const std::string& _rFullPath);
-
- size_t ReadFile(const std::string& _rFullPath, u8* _pBuffer, size_t _MaxBufferSize);
-
- bool ExportFile(const std::string& _rFullPath, const std::string& _rExportFilename);
-
- bool ExportAllFiles(const std::string& _rFullPath);
-
-
- private:
-
- u8* m_pBuffer;
-
- bool m_Initialized;
-
- typedef std::vectorCFileInfoVector;
- CFileInfoVector m_FileInfoVector;
-
- bool ParseBuffer();
-
- size_t BuildFilenames(const size_t _FirstIndex, const size_t _LastIndex, const std::string& _szDirectory, const char* _szNameTable);
-
- const SFileInfo* FindFileInfo(const std::string& _rFullPath) const;
-};
-} // namespace