summaryrefslogtreecommitdiff
path: root/Source/Core
diff options
context:
space:
mode:
authorhrydgard <hrydgard@gmail.com>2008-09-24 19:10:56 +0000
committerhrydgard <hrydgard@gmail.com>2008-09-24 19:10:56 +0000
commite4785df7a2ec6b1b3b45cd27cad515b8add44fc0 (patch)
tree00c277e53c7e0da28accdac0b77210f3a7a89018 /Source/Core
parent284e3ec211536041cda4b754d594302f6fb9a161 (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')
-rw-r--r--Source/Core/Common/Src/Common.h5
-rw-r--r--Source/Core/DebuggerWX/Src/LogWindow.cpp2
-rw-r--r--Source/Core/DiscIO/Src/CompressedBlob.cpp11
-rw-r--r--Source/Core/DiscIO/Src/FileSystemGCWii.cpp6
-rw-r--r--Source/Core/DiscIO/Src/VolumeCreator.cpp4
-rw-r--r--Source/Core/DiscIO/Src/VolumeDirectory.cpp2
-rw-r--r--Source/Core/DolphinWX/Src/GameListCtrl.h114
-rw-r--r--Source/Core/DolphinWX/Src/Main.cpp10
8 files changed, 86 insertions, 68 deletions
diff --git a/Source/Core/Common/Src/Common.h b/Source/Core/Common/Src/Common.h
index 42ace78ded..43ca8d25e1 100644
--- a/Source/Core/Common/Src/Common.h
+++ b/Source/Core/Common/Src/Common.h
@@ -49,6 +49,11 @@
#endif
#ifdef _WIN32
+#ifdef _WIN32
+#define fseek _fseeki64
+#define ftell _ftelli64
+#endif
+
#define POSIX 0
#define NOMINMAX
diff --git a/Source/Core/DebuggerWX/Src/LogWindow.cpp b/Source/Core/DebuggerWX/Src/LogWindow.cpp
index b329192de9..7e23dbf19b 100644
--- a/Source/Core/DebuggerWX/Src/LogWindow.cpp
+++ b/Source/Core/DebuggerWX/Src/LogWindow.cpp
@@ -110,6 +110,8 @@ void CLogWindow::OnClear(wxCommandEvent& event)
void CLogWindow::OnEnableAll(wxCommandEvent& event)
{
+ if (!LogManager::m_Log[0])
+ return;
static bool enable = true;
IniFile ini;
ini.Load("Dolphin.ini");
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;
}
}
diff --git a/Source/Core/DolphinWX/Src/GameListCtrl.h b/Source/Core/DolphinWX/Src/GameListCtrl.h
index 8ebfc178e6..2b579625b3 100644
--- a/Source/Core/DolphinWX/Src/GameListCtrl.h
+++ b/Source/Core/DolphinWX/Src/GameListCtrl.h
@@ -26,63 +26,63 @@
class CGameListCtrl : public wxListCtrl
{
- public:
-
- CGameListCtrl(wxWindow* parent, const wxWindowID id, const wxPoint& pos, const wxSize& size, long style);
- ~CGameListCtrl();
-
- void Update();
- void BrowseForDirectory();
- const GameListItem *GetSelectedISO() const;
- const GameListItem *GetISO(int index) const;
-
- enum
- {
- COLUMN_BANNER = 0,
- COLUMN_TITLE,
- COLUMN_COMPANY,
- COLUMN_NOTES,
- COLUMN_COUNTRY,
- COLUMN_SIZE,
- COLUMN_EMULATION_STATE,
- NUMBER_OF_COLUMN
- };
-
- private:
-
- std::vector<int> m_FlagImageIndex;
- std::vector<GameListItem> m_ISOFiles;
-
- int last_column;
- int last_sort;
-
- void InitBitmaps();
- void InsertItemInReportView(long _Index);
- void SetBackgroundColor();
- void ScanForISOs();
-
- DECLARE_EVENT_TABLE()
-
- // events
- void OnRightClick(wxMouseEvent& event);
- void OnColumnClick(wxListEvent& event);
- void OnColBeginDrag(wxListEvent& event);
- void OnColEndDrag(wxListEvent& event);
- void OnSelected(wxListEvent& event);
- void OnActivated(wxListEvent& event);
- void OnSize(wxSizeEvent& event);
- void OnEditPatchFile(wxCommandEvent& event);
- void OnOpenContainingFolder(wxCommandEvent& event);
- void OnSetDefaultGCM(wxCommandEvent& event);
- void OnDeleteGCM(wxCommandEvent& event);
- void OnCompressGCM(wxCommandEvent& event);
- void OnFilesystemViewer(wxCommandEvent& event);
-
- virtual bool MSWDrawSubItem(wxPaintDC& rPaintDC, int item, int subitem);
-
- void AutomaticColumnWidth();
-
- static void CompressCB(const char* text, float percent, void* arg);
+public:
+
+ CGameListCtrl(wxWindow* parent, const wxWindowID id, const wxPoint& pos, const wxSize& size, long style);
+ ~CGameListCtrl();
+
+ void Update();
+ void BrowseForDirectory();
+ const GameListItem *GetSelectedISO() const;
+ const GameListItem *GetISO(int index) const;
+
+ enum
+ {
+ COLUMN_BANNER = 0,
+ COLUMN_TITLE,
+ COLUMN_COMPANY,
+ COLUMN_NOTES,
+ COLUMN_COUNTRY,
+ COLUMN_SIZE,
+ COLUMN_EMULATION_STATE,
+ NUMBER_OF_COLUMN
+ };
+
+private:
+
+ std::vector<int> m_FlagImageIndex;
+ std::vector<GameListItem> m_ISOFiles;
+
+ int last_column;
+ int last_sort;
+
+ void InitBitmaps();
+ void InsertItemInReportView(long _Index);
+ void SetBackgroundColor();
+ void ScanForISOs();
+
+ DECLARE_EVENT_TABLE()
+
+ // events
+ void OnRightClick(wxMouseEvent& event);
+ void OnColumnClick(wxListEvent& event);
+ void OnColBeginDrag(wxListEvent& event);
+ void OnColEndDrag(wxListEvent& event);
+ void OnSelected(wxListEvent& event);
+ void OnActivated(wxListEvent& event);
+ void OnSize(wxSizeEvent& event);
+ void OnEditPatchFile(wxCommandEvent& event);
+ void OnOpenContainingFolder(wxCommandEvent& event);
+ void OnSetDefaultGCM(wxCommandEvent& event);
+ void OnDeleteGCM(wxCommandEvent& event);
+ void OnCompressGCM(wxCommandEvent& event);
+ void OnFilesystemViewer(wxCommandEvent& event);
+
+ virtual bool MSWDrawSubItem(wxPaintDC& rPaintDC, int item, int subitem);
+
+ void AutomaticColumnWidth();
+
+ static void CompressCB(const char* text, float percent, void* arg);
};
diff --git a/Source/Core/DolphinWX/Src/Main.cpp b/Source/Core/DolphinWX/Src/Main.cpp
index 1fd8c3d8dc..af97bd29f9 100644
--- a/Source/Core/DolphinWX/Src/Main.cpp
+++ b/Source/Core/DolphinWX/Src/Main.cpp
@@ -18,7 +18,8 @@
#include <vector>
#include <string>
#ifdef WIN32
- #include "svnrev.h"
+#include <crtdbg.h>
+#include "svnrev.h"
#endif
#include "CPUDetect.h"
#include "Globals.h"
@@ -69,6 +70,13 @@ LONG WINAPI MyUnhandledExceptionFilter(LPEXCEPTION_POINTERS e) {
bool DolphinApp::OnInit()
{
DetectCPU();
+
+#ifdef _DEBUG
+ int tmpflag = _CrtSetDbgFlag(_CRTDBG_REPORT_FLAG);
+ tmpflag |= _CRTDBG_DELAY_FREE_MEM_DF;
+ _CrtSetDbgFlag(tmpflag);
+#endif
+
#ifndef _WIN32
// RegisterPanicAlertHandler(&wxPanicAlert);
#endif