Better error messages, Dolphin will create save directories if not present.
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@37 8ced0084-cf51-0410-be5f-012b33b47a6e
This commit is contained in:
parent
4175db3aa3
commit
36f8b9751a
|
@ -128,6 +128,7 @@ void CPUInfoStruct::Detect()
|
|||
// Interpret CPU brand string and cache information.
|
||||
if (i == 0x80000001)
|
||||
{
|
||||
// This block seems bugged.
|
||||
nFeatureInfo2 = CPUInfo[1]; // ECX
|
||||
bSSE5 = (nFeatureInfo2 & (1 << 11)) ? true : false;
|
||||
bLZCNT = (nFeatureInfo2 & (1 << 5)) ? true : false;
|
||||
|
|
|
@ -51,3 +51,25 @@ void File::Explore(const std::string &path)
|
|||
ShellExecuteEx(&shex);
|
||||
#endif
|
||||
}
|
||||
|
||||
// Returns true if successful, or path already exists.
|
||||
bool File::CreateDir(const std::string &path)
|
||||
{
|
||||
#ifdef _WIN32
|
||||
if (::CreateDirectory(path.c_str(), NULL))
|
||||
{
|
||||
return true;
|
||||
}
|
||||
else
|
||||
{
|
||||
DWORD error = GetLastError();
|
||||
if (error == ERROR_ALREADY_EXISTS)
|
||||
{
|
||||
PanicAlert("%s already exists", path.c_str());
|
||||
return true;
|
||||
}
|
||||
PanicAlert("Error creating directory: %i", error);
|
||||
return false;
|
||||
}
|
||||
#endif
|
||||
}
|
|
@ -10,6 +10,7 @@ public:
|
|||
static void Launch(const std::string &filename);
|
||||
static void Explore(const std::string &path);
|
||||
static bool IsDirectory(const std::string &filename);
|
||||
static bool CreateDir(const std::string &filename);
|
||||
};
|
||||
|
||||
#endif
|
||||
|
|
|
@ -432,11 +432,9 @@ void Callback_VideoCopiedToXFB()
|
|||
idleTicks = newIdleTicks;
|
||||
|
||||
float t = (float)(Timer.GetTimeDifference()) / 1000.f;
|
||||
char isoName[64];
|
||||
isoName[0] = 0x00;
|
||||
char temp[256];
|
||||
sprintf(temp, "%s - FPS: %8.2f - %s - %i MHz (%i real, %i idle skipped) out of %i MHz",
|
||||
isoName, (float)frames / t,
|
||||
sprintf(temp, "FPS: %8.2f - %s - %i MHz (%i real, %i idle skipped) out of %i MHz",
|
||||
(float)frames / t,
|
||||
g_CoreStartupParameter.bUseDynarec ? "JIT" : "Interpreter",
|
||||
(int)(diff),
|
||||
(int)(diff-idleDiff),
|
||||
|
|
|
@ -45,9 +45,13 @@ const unsigned char sram_dump_german[64] ={
|
|||
0x00, 0x00, 0x84, 0xFF, 0x00, 0x00, 0x00, 0x00
|
||||
};
|
||||
|
||||
static const char iplver[0x100] = "(C) 1999-2001 Nintendo. All rights reserved."
|
||||
"(C) 1999 ArtX Inc. All rights reserved."
|
||||
"PAL Revision 1.0 ";
|
||||
|
||||
// We should provide an option to choose from the above, or figure out the checksum (the algo in yagcd seems wrong)
|
||||
// so that people can change default language.
|
||||
|
||||
static const char iplver[0x100] = "(C) 1999-2001 Nintendo. All rights reserved."
|
||||
"(C) 1999 ArtX Inc. All rights reserved."
|
||||
"PAL Revision 1.0 ";
|
||||
|
||||
CEXIIPL::CEXIIPL() :
|
||||
m_uPosition(0),
|
||||
|
|
|
@ -15,6 +15,9 @@
|
|||
// Official SVN repository and contact information can be found at
|
||||
// http://code.google.com/p/dolphin-emu/
|
||||
|
||||
#include "Common.h"
|
||||
#include "FileUtil.h"
|
||||
#include "StringUtil.h"
|
||||
#include "../Core.h"
|
||||
#include "../CoreTiming.h"
|
||||
|
||||
|
@ -52,7 +55,7 @@ CEXIMemoryCard::CEXIMemoryCard(const std::string& _rName, const std::string& _rF
|
|||
else
|
||||
{
|
||||
LOG(EXPANSIONINTERFACE, "No memory card found. Will create new.");
|
||||
//MessageBox(0, "Could not read memory card file - starting with corrupt", m_strFilename.c_str(),0);
|
||||
Flush();
|
||||
}
|
||||
|
||||
formatDelay = 0;
|
||||
|
@ -66,16 +69,21 @@ void CEXIMemoryCard::Flush()
|
|||
{
|
||||
FILE* pFile = NULL;
|
||||
pFile = fopen(m_strFilename.c_str(), "wb");
|
||||
if (pFile)
|
||||
if (!pFile)
|
||||
{
|
||||
fwrite(memory_card_content, memory_card_size, 1, pFile);
|
||||
fclose(pFile);
|
||||
std::string dir;
|
||||
SplitPath(m_strFilename, &dir, 0, 0);
|
||||
File::CreateDir(dir);
|
||||
pFile = fopen(m_strFilename.c_str(), "wb");
|
||||
}
|
||||
else
|
||||
if (!pFile) //Note - pFile changed inside above if
|
||||
{
|
||||
PanicAlert("Could not write memory card file %s.\n\n"
|
||||
"Are you running Dolphin from a CD/DVD, or is the save file maybe write protected?", m_strFilename.c_str());
|
||||
return;
|
||||
}
|
||||
fwrite(memory_card_content, memory_card_size, 1, pFile);
|
||||
fclose(pFile);
|
||||
}
|
||||
|
||||
void CEXIMemoryCard::FlushCallback(u64 userdata, int cyclesLate)
|
||||
|
|
|
@ -28,6 +28,7 @@
|
|||
>
|
||||
<Tool
|
||||
Name="VCPreBuildEventTool"
|
||||
CommandLine="$(ProjectDir)..\Common\SubWCRev.exe $(SolutionDir) $(ProjectDir)..\Common\src\svnrev_template.h $(ProjectDir)..\Common\src\svnrev.h"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCCustomBuildTool"
|
||||
|
@ -135,6 +136,7 @@
|
|||
>
|
||||
<Tool
|
||||
Name="VCPreBuildEventTool"
|
||||
CommandLine="$(ProjectDir)..\Common\SubWCRev.exe $(SolutionDir) $(ProjectDir)..\Common\src\svnrev_template.h $(ProjectDir)..\Common\src\svnrev.h"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCCustomBuildTool"
|
||||
|
@ -243,6 +245,7 @@
|
|||
>
|
||||
<Tool
|
||||
Name="VCPreBuildEventTool"
|
||||
CommandLine="$(ProjectDir)..\Common\SubWCRev.exe $(SolutionDir) $(ProjectDir)..\Common\src\svnrev_template.h $(ProjectDir)..\Common\src\svnrev.h"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCCustomBuildTool"
|
||||
|
@ -348,6 +351,7 @@
|
|||
>
|
||||
<Tool
|
||||
Name="VCPreBuildEventTool"
|
||||
CommandLine="$(ProjectDir)..\Common\SubWCRev.exe $(SolutionDir) $(ProjectDir)..\Common\src\svnrev_template.h $(ProjectDir)..\Common\src\svnrev.h"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCCustomBuildTool"
|
||||
|
@ -453,6 +457,7 @@
|
|||
>
|
||||
<Tool
|
||||
Name="VCPreBuildEventTool"
|
||||
CommandLine="$(ProjectDir)..\Common\SubWCRev.exe $(SolutionDir) $(ProjectDir)..\Common\src\svnrev_template.h $(ProjectDir)..\Common\src\svnrev.h"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCCustomBuildTool"
|
||||
|
@ -560,6 +565,7 @@
|
|||
>
|
||||
<Tool
|
||||
Name="VCPreBuildEventTool"
|
||||
CommandLine="$(ProjectDir)..\Common\SubWCRev.exe $(SolutionDir) $(ProjectDir)..\Common\src\svnrev_template.h $(ProjectDir)..\Common\src\svnrev.h"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCCustomBuildTool"
|
||||
|
|
|
@ -42,20 +42,27 @@ bool DolphinApp::OnInit()
|
|||
// RegisterPanicAlertHandler(&wxPanicAlert);
|
||||
#endif
|
||||
|
||||
#if 0
|
||||
#ifdef _WIN32
|
||||
// TODO: if First Boot
|
||||
if (!cpu_info.bSSE2Extensions)
|
||||
{
|
||||
MessageBox(0, _T("Hi,\n\nDolphin requires that your CPU has support for SSE2 extensions.\n"
|
||||
"Unfortunately your CPU does not support them, so Dolphin will not run.\n\n"
|
||||
"Sayonara!\n"), "Dolphin", MB_ICONINFORMATION);
|
||||
return false;
|
||||
}
|
||||
/*
|
||||
#ifdef _M_IX86
|
||||
if (cpu_info.CPU64Bit && !cpu_info.OS64Bit)
|
||||
if (cpu_info.CPU64bit && cpu_info.OS64bit)
|
||||
{
|
||||
MessageBox(0, _T("This is the 32-bit version of Dolphin. This computer is running a 64-bit OS.\n"
|
||||
"Thus, this computer is capable of running Dolphin 64-bit, which is considerably "
|
||||
"faster than Dolphin 32-bit. So, why are you running Dolphin 32-bit? :-)"));
|
||||
"faster than Dolphin 32-bit. So, why are you running Dolphin 32-bit? :-)"), "Dolphin", MB_ICONINFORMATION);
|
||||
}
|
||||
|
||||
// missing check
|
||||
#endif
|
||||
#endif
|
||||
*/
|
||||
#endif
|
||||
|
||||
bool UseDebugger = false;
|
||||
|
@ -79,7 +86,7 @@ bool DolphinApp::OnInit()
|
|||
if (parser.Parse() != 0)
|
||||
{
|
||||
return(false);
|
||||
}
|
||||
}
|
||||
|
||||
UseDebugger = parser.Found(_T("debugger"));
|
||||
#endif
|
||||
|
|
|
@ -212,10 +212,24 @@ namespace D3D
|
|||
&d3dpp, &dev ) ) )
|
||||
{
|
||||
MessageBox(wnd,
|
||||
"Direct3D Device creation failed!\n"
|
||||
"Your device does not support the desired settings.",
|
||||
"D3D error", MB_OK|MB_ICONERROR);
|
||||
return E_FAIL;
|
||||
"Sorry, but it looks like your 3D accelerator is too old,\n"
|
||||
"or doesn't support features that Dolphin requires.\n"
|
||||
"Falling back to software vertex processing.\n",
|
||||
"Dolphin Direct3D plugin", MB_OK | MB_ICONERROR);
|
||||
if( FAILED( D3D->CreateDevice(
|
||||
adapter,
|
||||
D3DDEVTYPE_HAL,
|
||||
wnd,
|
||||
D3DCREATE_SOFTWARE_VERTEXPROCESSING|D3DCREATE_MULTITHREADED,
|
||||
// |D3DCREATE_MULTITHREADED /* | D3DCREATE_PUREDEVICE*/,
|
||||
//D3DCREATE_SOFTWARE_VERTEXPROCESSING ,
|
||||
&d3dpp, &dev ) ) )
|
||||
{
|
||||
MessageBox(wnd,
|
||||
"Software VP failed too. Upgrade your graphics card.",
|
||||
"Dolphin Direct3D plugin", MB_OK | MB_ICONERROR);
|
||||
return E_FAIL;
|
||||
}
|
||||
}
|
||||
dev->GetDeviceCaps(&caps);
|
||||
dev->GetRenderTarget(0,&backBuffer);
|
||||
|
@ -225,7 +239,6 @@ namespace D3D
|
|||
vsMajor = (D3D::caps.VertexShaderVersion >>8) & 0xFF;
|
||||
vsMinor = (D3D::caps.VertexShaderVersion) & 0xFF;
|
||||
|
||||
|
||||
// Device state would normally be set here
|
||||
return S_OK;
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue