git-svn-id: https://localhost/svn/Project64/trunk@45 111125ac-702d-7242-af9c-5ba8ae61c1ef

This commit is contained in:
zilmar 2010-10-23 18:53:01 +00:00
parent aa45579e34
commit dae4e73c89
55 changed files with 9317 additions and 1242 deletions

Binary file not shown.

Binary file not shown.

572
Source/7zip/7zip.vcproj Normal file
View File

@ -0,0 +1,572 @@
<?xml version="1.0" encoding="Windows-1252"?>
<VisualStudioProject
ProjectType="Visual C++"
Version="9.00"
Name="7zip"
ProjectGUID="{3326E128-33AF-422C-BB7C-67CC6B915610}"
RootNamespace="7zip"
TargetFrameworkVersion="0"
>
<Platforms>
<Platform
Name="Win32"
/>
</Platforms>
<ToolFiles>
</ToolFiles>
<Configurations>
<Configuration
Name="Debug|Win32"
OutputDirectory="$(SolutionDir)bin/$(ConfigurationName)/lib"
IntermediateDirectory="$(SolutionDir)build/$(ConfigurationName)/$(ProjectName)"
ConfigurationType="4"
InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC60.vsprops"
UseOfMFC="0"
ATLMinimizesCRunTimeLibraryUsage="false"
CharacterSet="2"
>
<Tool
Name="VCPreBuildEventTool"
/>
<Tool
Name="VCCustomBuildTool"
/>
<Tool
Name="VCXMLDataGeneratorTool"
/>
<Tool
Name="VCWebServiceProxyGeneratorTool"
/>
<Tool
Name="VCMIDLTool"
/>
<Tool
Name="VCCLCompilerTool"
Optimization="0"
PreprocessorDefinitions="WIN32;_DEBUG;_LIB"
MinimalRebuild="true"
BasicRuntimeChecks="3"
RuntimeLibrary="1"
BufferSecurityCheck="false"
RuntimeTypeInfo="false"
WarningLevel="3"
SuppressStartupBanner="true"
DebugInformationFormat="3"
/>
<Tool
Name="VCManagedResourceCompilerTool"
/>
<Tool
Name="VCResourceCompilerTool"
PreprocessorDefinitions="_DEBUG"
Culture="3081"
/>
<Tool
Name="VCPreLinkEventTool"
/>
<Tool
Name="VCLibrarianTool"
/>
<Tool
Name="VCALinkTool"
/>
<Tool
Name="VCXDCMakeTool"
/>
<Tool
Name="VCBscMakeTool"
SuppressStartupBanner="true"
OutputFile=".\../../Build/7zip/Debug/7zip.bsc"
/>
<Tool
Name="VCFxCopTool"
/>
<Tool
Name="VCPostBuildEventTool"
/>
</Configuration>
<Configuration
Name="External Release|Win32"
OutputDirectory="$(SolutionDir)bin/$(ConfigurationName)/lib"
IntermediateDirectory="$(SolutionDir)build/$(ConfigurationName)/$(ProjectName)"
ConfigurationType="4"
InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC60.vsprops"
UseOfMFC="0"
ATLMinimizesCRunTimeLibraryUsage="false"
CharacterSet="2"
>
<Tool
Name="VCPreBuildEventTool"
/>
<Tool
Name="VCCustomBuildTool"
/>
<Tool
Name="VCXMLDataGeneratorTool"
/>
<Tool
Name="VCWebServiceProxyGeneratorTool"
/>
<Tool
Name="VCMIDLTool"
/>
<Tool
Name="VCCLCompilerTool"
Optimization="2"
InlineFunctionExpansion="1"
PreprocessorDefinitions="WIN32;NDEBUG;_LIB"
StringPooling="true"
RuntimeLibrary="2"
EnableFunctionLevelLinking="true"
WarningLevel="3"
SuppressStartupBanner="true"
/>
<Tool
Name="VCManagedResourceCompilerTool"
/>
<Tool
Name="VCResourceCompilerTool"
PreprocessorDefinitions="NDEBUG"
Culture="3081"
/>
<Tool
Name="VCPreLinkEventTool"
/>
<Tool
Name="VCLibrarianTool"
SuppressStartupBanner="true"
/>
<Tool
Name="VCALinkTool"
/>
<Tool
Name="VCXDCMakeTool"
/>
<Tool
Name="VCBscMakeTool"
SuppressStartupBanner="true"
OutputFile=".\../../Bin/External/7zip.bsc"
/>
<Tool
Name="VCFxCopTool"
/>
<Tool
Name="VCPostBuildEventTool"
/>
</Configuration>
<Configuration
Name="Release|Win32"
OutputDirectory="$(SolutionDir)bin/$(ConfigurationName)/lib"
IntermediateDirectory="$(SolutionDir)build/$(ConfigurationName)/$(ProjectName)"
ConfigurationType="4"
InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC60.vsprops"
UseOfMFC="0"
ATLMinimizesCRunTimeLibraryUsage="false"
CharacterSet="2"
>
<Tool
Name="VCPreBuildEventTool"
/>
<Tool
Name="VCCustomBuildTool"
/>
<Tool
Name="VCXMLDataGeneratorTool"
/>
<Tool
Name="VCWebServiceProxyGeneratorTool"
/>
<Tool
Name="VCMIDLTool"
/>
<Tool
Name="VCCLCompilerTool"
Optimization="2"
InlineFunctionExpansion="1"
PreprocessorDefinitions="WIN32;NDEBUG;_LIB"
StringPooling="true"
ExceptionHandling="0"
RuntimeLibrary="2"
BufferSecurityCheck="false"
EnableFunctionLevelLinking="true"
WarningLevel="3"
/>
<Tool
Name="VCManagedResourceCompilerTool"
/>
<Tool
Name="VCResourceCompilerTool"
PreprocessorDefinitions="NDEBUG"
Culture="3081"
/>
<Tool
Name="VCPreLinkEventTool"
/>
<Tool
Name="VCLibrarianTool"
SuppressStartupBanner="true"
/>
<Tool
Name="VCALinkTool"
/>
<Tool
Name="VCXDCMakeTool"
/>
<Tool
Name="VCBscMakeTool"
SuppressStartupBanner="true"
OutputFile=".\../../Build/7zip/Release/7zip.bsc"
/>
<Tool
Name="VCFxCopTool"
/>
<Tool
Name="VCPostBuildEventTool"
/>
</Configuration>
</Configurations>
<References>
</References>
<Files>
<Filter
Name="Source Files"
Filter="cpp;c;cxx;rc;def;r;odl;idl;hpj;bat"
>
<File
RelativePath="7zAlloc.c"
>
<FileConfiguration
Name="Debug|Win32"
>
<Tool
Name="VCCLCompilerTool"
PreprocessorDefinitions=""
/>
</FileConfiguration>
<FileConfiguration
Name="External Release|Win32"
>
<Tool
Name="VCCLCompilerTool"
PreprocessorDefinitions=""
/>
</FileConfiguration>
<FileConfiguration
Name="Release|Win32"
>
<Tool
Name="VCCLCompilerTool"
PreprocessorDefinitions=""
/>
</FileConfiguration>
</File>
<File
RelativePath="7zBuffer.c"
>
<FileConfiguration
Name="Debug|Win32"
>
<Tool
Name="VCCLCompilerTool"
PreprocessorDefinitions=""
/>
</FileConfiguration>
<FileConfiguration
Name="External Release|Win32"
>
<Tool
Name="VCCLCompilerTool"
PreprocessorDefinitions=""
/>
</FileConfiguration>
<FileConfiguration
Name="Release|Win32"
>
<Tool
Name="VCCLCompilerTool"
PreprocessorDefinitions=""
/>
</FileConfiguration>
</File>
<File
RelativePath="7zCrc.c"
>
<FileConfiguration
Name="Debug|Win32"
>
<Tool
Name="VCCLCompilerTool"
PreprocessorDefinitions=""
/>
</FileConfiguration>
<FileConfiguration
Name="External Release|Win32"
>
<Tool
Name="VCCLCompilerTool"
PreprocessorDefinitions=""
/>
</FileConfiguration>
<FileConfiguration
Name="Release|Win32"
>
<Tool
Name="VCCLCompilerTool"
PreprocessorDefinitions=""
/>
</FileConfiguration>
</File>
<File
RelativePath="7zDecode.c"
>
<FileConfiguration
Name="Debug|Win32"
>
<Tool
Name="VCCLCompilerTool"
PreprocessorDefinitions=""
/>
</FileConfiguration>
<FileConfiguration
Name="External Release|Win32"
>
<Tool
Name="VCCLCompilerTool"
PreprocessorDefinitions=""
/>
</FileConfiguration>
<FileConfiguration
Name="Release|Win32"
>
<Tool
Name="VCCLCompilerTool"
PreprocessorDefinitions=""
/>
</FileConfiguration>
</File>
<File
RelativePath="7zExtract.c"
>
<FileConfiguration
Name="Debug|Win32"
>
<Tool
Name="VCCLCompilerTool"
PreprocessorDefinitions=""
/>
</FileConfiguration>
<FileConfiguration
Name="External Release|Win32"
>
<Tool
Name="VCCLCompilerTool"
PreprocessorDefinitions=""
/>
</FileConfiguration>
<FileConfiguration
Name="Release|Win32"
>
<Tool
Name="VCCLCompilerTool"
PreprocessorDefinitions=""
/>
</FileConfiguration>
</File>
<File
RelativePath="7zHeader.c"
>
<FileConfiguration
Name="Debug|Win32"
>
<Tool
Name="VCCLCompilerTool"
PreprocessorDefinitions=""
/>
</FileConfiguration>
<FileConfiguration
Name="External Release|Win32"
>
<Tool
Name="VCCLCompilerTool"
PreprocessorDefinitions=""
/>
</FileConfiguration>
<FileConfiguration
Name="Release|Win32"
>
<Tool
Name="VCCLCompilerTool"
PreprocessorDefinitions=""
/>
</FileConfiguration>
</File>
<File
RelativePath="7zIn.c"
>
<FileConfiguration
Name="Debug|Win32"
>
<Tool
Name="VCCLCompilerTool"
PreprocessorDefinitions=""
/>
</FileConfiguration>
<FileConfiguration
Name="External Release|Win32"
>
<Tool
Name="VCCLCompilerTool"
PreprocessorDefinitions=""
/>
</FileConfiguration>
<FileConfiguration
Name="Release|Win32"
>
<Tool
Name="VCCLCompilerTool"
PreprocessorDefinitions=""
/>
</FileConfiguration>
</File>
<File
RelativePath="7zItem.c"
>
<FileConfiguration
Name="Debug|Win32"
>
<Tool
Name="VCCLCompilerTool"
PreprocessorDefinitions=""
/>
</FileConfiguration>
<FileConfiguration
Name="External Release|Win32"
>
<Tool
Name="VCCLCompilerTool"
PreprocessorDefinitions=""
/>
</FileConfiguration>
<FileConfiguration
Name="Release|Win32"
>
<Tool
Name="VCCLCompilerTool"
PreprocessorDefinitions=""
/>
</FileConfiguration>
</File>
<File
RelativePath="7zMethodID.c"
>
<FileConfiguration
Name="Debug|Win32"
>
<Tool
Name="VCCLCompilerTool"
PreprocessorDefinitions=""
/>
</FileConfiguration>
<FileConfiguration
Name="External Release|Win32"
>
<Tool
Name="VCCLCompilerTool"
PreprocessorDefinitions=""
/>
</FileConfiguration>
<FileConfiguration
Name="Release|Win32"
>
<Tool
Name="VCCLCompilerTool"
PreprocessorDefinitions=""
/>
</FileConfiguration>
</File>
<File
RelativePath="Compress\LzmaDecode.c"
>
<FileConfiguration
Name="Debug|Win32"
>
<Tool
Name="VCCLCompilerTool"
PreprocessorDefinitions=""
/>
</FileConfiguration>
<FileConfiguration
Name="External Release|Win32"
>
<Tool
Name="VCCLCompilerTool"
PreprocessorDefinitions=""
/>
</FileConfiguration>
<FileConfiguration
Name="Release|Win32"
>
<Tool
Name="VCCLCompilerTool"
PreprocessorDefinitions=""
/>
</FileConfiguration>
</File>
</Filter>
<Filter
Name="Header Files"
Filter="h;hpp;hxx;hm;inl"
>
<File
RelativePath="7zAlloc.h"
>
</File>
<File
RelativePath="7zBuffer.h"
>
</File>
<File
RelativePath="7zCrc.h"
>
</File>
<File
RelativePath="7zDecode.h"
>
</File>
<File
RelativePath="7zExtract.h"
>
</File>
<File
RelativePath="7zHeader.h"
>
</File>
<File
RelativePath="7zIn.h"
>
</File>
<File
RelativePath="7zItem.h"
>
</File>
<File
RelativePath="7zMethodID.h"
>
</File>
<File
RelativePath="7zTypes.h"
>
</File>
<File
RelativePath="Compress\LzmaDecode.h"
>
</File>
<File
RelativePath="status.h"
>
</File>
</Filter>
</Files>
<Globals>
</Globals>
</VisualStudioProject>

650
Source/Common/Common.vcproj Normal file
View File

@ -0,0 +1,650 @@
<?xml version="1.0" encoding="Windows-1252"?>
<VisualStudioProject
ProjectType="Visual C++"
Version="9.00"
Name="Common"
ProjectGUID="{B4A4B994-9111-42B1-93C2-6F1CA8BC4421}"
TargetFrameworkVersion="0"
>
<Platforms>
<Platform
Name="Win32"
/>
</Platforms>
<ToolFiles>
</ToolFiles>
<Configurations>
<Configuration
Name="Debug|Win32"
OutputDirectory="$(SolutionDir)bin/$(ConfigurationName)/lib"
IntermediateDirectory="$(SolutionDir)build/$(ConfigurationName)/$(ProjectName)"
ConfigurationType="4"
InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC60.vsprops"
UseOfMFC="0"
ATLMinimizesCRunTimeLibraryUsage="false"
CharacterSet="2"
>
<Tool
Name="VCPreBuildEventTool"
/>
<Tool
Name="VCCustomBuildTool"
/>
<Tool
Name="VCXMLDataGeneratorTool"
/>
<Tool
Name="VCWebServiceProxyGeneratorTool"
/>
<Tool
Name="VCMIDLTool"
/>
<Tool
Name="VCCLCompilerTool"
Optimization="0"
PreprocessorDefinitions="WIN32;_DEBUG;_LIB;_CRT_SECURE_NO_WARNINGS"
StringPooling="true"
MinimalRebuild="true"
BasicRuntimeChecks="3"
RuntimeLibrary="3"
ForceConformanceInForLoopScope="true"
RuntimeTypeInfo="false"
UsePrecompiledHeader="2"
PrecompiledHeaderThrough="stdafx.h"
WarningLevel="3"
SuppressStartupBanner="true"
DebugInformationFormat="3"
/>
<Tool
Name="VCManagedResourceCompilerTool"
/>
<Tool
Name="VCResourceCompilerTool"
PreprocessorDefinitions="_DEBUG"
Culture="3081"
/>
<Tool
Name="VCPreLinkEventTool"
/>
<Tool
Name="VCLibrarianTool"
SuppressStartupBanner="true"
/>
<Tool
Name="VCALinkTool"
/>
<Tool
Name="VCXDCMakeTool"
/>
<Tool
Name="VCBscMakeTool"
SuppressStartupBanner="true"
OutputFile=".\../../Build/Common/Debug/Common.bsc"
/>
<Tool
Name="VCFxCopTool"
/>
<Tool
Name="VCPostBuildEventTool"
/>
</Configuration>
<Configuration
Name="External Release|Win32"
OutputDirectory="$(SolutionDir)bin/$(ConfigurationName)/lib"
IntermediateDirectory="$(SolutionDir)build/$(ConfigurationName)/$(ProjectName)"
ConfigurationType="4"
InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC60.vsprops"
UseOfMFC="0"
ATLMinimizesCRunTimeLibraryUsage="false"
CharacterSet="2"
>
<Tool
Name="VCPreBuildEventTool"
/>
<Tool
Name="VCCustomBuildTool"
/>
<Tool
Name="VCXMLDataGeneratorTool"
/>
<Tool
Name="VCWebServiceProxyGeneratorTool"
/>
<Tool
Name="VCMIDLTool"
/>
<Tool
Name="VCCLCompilerTool"
Optimization="2"
InlineFunctionExpansion="1"
PreprocessorDefinitions="WIN32;NDEBUG;_LIB;_CRT_SECURE_NO_WARNINGS"
StringPooling="true"
RuntimeLibrary="2"
EnableFunctionLevelLinking="true"
ForceConformanceInForLoopScope="true"
RuntimeTypeInfo="false"
WarningLevel="3"
SuppressStartupBanner="true"
DebugInformationFormat="3"
/>
<Tool
Name="VCManagedResourceCompilerTool"
/>
<Tool
Name="VCResourceCompilerTool"
PreprocessorDefinitions="NDEBUG"
Culture="3081"
/>
<Tool
Name="VCPreLinkEventTool"
/>
<Tool
Name="VCLibrarianTool"
SuppressStartupBanner="true"
/>
<Tool
Name="VCALinkTool"
/>
<Tool
Name="VCXDCMakeTool"
/>
<Tool
Name="VCBscMakeTool"
SuppressStartupBanner="true"
OutputFile=".\../../Bin/External/Common.bsc"
/>
<Tool
Name="VCFxCopTool"
/>
<Tool
Name="VCPostBuildEventTool"
/>
</Configuration>
<Configuration
Name="Release|Win32"
OutputDirectory="$(SolutionDir)bin/$(ConfigurationName)/lib"
IntermediateDirectory="$(SolutionDir)build/$(ConfigurationName)/$(ProjectName)"
ConfigurationType="4"
InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC60.vsprops"
UseOfMFC="0"
ATLMinimizesCRunTimeLibraryUsage="false"
CharacterSet="2"
>
<Tool
Name="VCPreBuildEventTool"
/>
<Tool
Name="VCCustomBuildTool"
/>
<Tool
Name="VCXMLDataGeneratorTool"
/>
<Tool
Name="VCWebServiceProxyGeneratorTool"
/>
<Tool
Name="VCMIDLTool"
/>
<Tool
Name="VCCLCompilerTool"
Optimization="2"
InlineFunctionExpansion="1"
PreprocessorDefinitions="WIN32;NDEBUG;_LIB;_CRT_SECURE_NO_WARNINGS"
StringPooling="true"
RuntimeLibrary="2"
BufferSecurityCheck="false"
EnableFunctionLevelLinking="true"
ForceConformanceInForLoopScope="true"
RuntimeTypeInfo="false"
WarningLevel="3"
SuppressStartupBanner="true"
DebugInformationFormat="3"
/>
<Tool
Name="VCManagedResourceCompilerTool"
/>
<Tool
Name="VCResourceCompilerTool"
PreprocessorDefinitions="NDEBUG"
Culture="3081"
/>
<Tool
Name="VCPreLinkEventTool"
/>
<Tool
Name="VCLibrarianTool"
SuppressStartupBanner="true"
/>
<Tool
Name="VCALinkTool"
/>
<Tool
Name="VCXDCMakeTool"
/>
<Tool
Name="VCBscMakeTool"
SuppressStartupBanner="true"
OutputFile=".\../../Build/Common/Release/Common.bsc"
/>
<Tool
Name="VCFxCopTool"
/>
<Tool
Name="VCPostBuildEventTool"
/>
</Configuration>
</Configurations>
<References>
</References>
<Files>
<Filter
Name="Source Files"
Filter="cpp;c;cxx;rc;def;r;odl;idl;hpj;bat"
>
<File
RelativePath="File Class.cpp"
>
<FileConfiguration
Name="Debug|Win32"
>
<Tool
Name="VCCLCompilerTool"
PreprocessorDefinitions=""
/>
</FileConfiguration>
<FileConfiguration
Name="External Release|Win32"
>
<Tool
Name="VCCLCompilerTool"
PreprocessorDefinitions=""
/>
</FileConfiguration>
<FileConfiguration
Name="Release|Win32"
>
<Tool
Name="VCCLCompilerTool"
PreprocessorDefinitions=""
/>
</FileConfiguration>
</File>
<File
RelativePath="Ini File Class.cpp"
>
<FileConfiguration
Name="Debug|Win32"
>
<Tool
Name="VCCLCompilerTool"
PreprocessorDefinitions=""
/>
</FileConfiguration>
<FileConfiguration
Name="External Release|Win32"
>
<Tool
Name="VCCLCompilerTool"
PreprocessorDefinitions=""
/>
</FileConfiguration>
<FileConfiguration
Name="Release|Win32"
>
<Tool
Name="VCCLCompilerTool"
PreprocessorDefinitions=""
/>
</FileConfiguration>
</File>
<File
RelativePath="Log Class.cpp"
>
<FileConfiguration
Name="Debug|Win32"
>
<Tool
Name="VCCLCompilerTool"
PreprocessorDefinitions=""
/>
</FileConfiguration>
<FileConfiguration
Name="External Release|Win32"
>
<Tool
Name="VCCLCompilerTool"
PreprocessorDefinitions=""
/>
</FileConfiguration>
<FileConfiguration
Name="Release|Win32"
>
<Tool
Name="VCCLCompilerTool"
PreprocessorDefinitions=""
/>
</FileConfiguration>
</File>
<File
RelativePath="md5.cpp"
>
<FileConfiguration
Name="Debug|Win32"
>
<Tool
Name="VCCLCompilerTool"
PreprocessorDefinitions=""
/>
</FileConfiguration>
<FileConfiguration
Name="External Release|Win32"
>
<Tool
Name="VCCLCompilerTool"
PreprocessorDefinitions=""
/>
</FileConfiguration>
<FileConfiguration
Name="Release|Win32"
>
<Tool
Name="VCCLCompilerTool"
PreprocessorDefinitions=""
/>
</FileConfiguration>
</File>
<File
RelativePath="MemTest.cpp"
>
<FileConfiguration
Name="Debug|Win32"
>
<Tool
Name="VCCLCompilerTool"
PreprocessorDefinitions=""
/>
</FileConfiguration>
<FileConfiguration
Name="External Release|Win32"
>
<Tool
Name="VCCLCompilerTool"
PreprocessorDefinitions=""
/>
</FileConfiguration>
<FileConfiguration
Name="Release|Win32"
>
<Tool
Name="VCCLCompilerTool"
PreprocessorDefinitions=""
/>
</FileConfiguration>
</File>
<File
RelativePath="osversion.cpp"
>
<FileConfiguration
Name="Debug|Win32"
>
<Tool
Name="VCCLCompilerTool"
PreprocessorDefinitions=""
/>
</FileConfiguration>
<FileConfiguration
Name="External Release|Win32"
>
<Tool
Name="VCCLCompilerTool"
PreprocessorDefinitions=""
/>
</FileConfiguration>
<FileConfiguration
Name="Release|Win32"
>
<Tool
Name="VCCLCompilerTool"
PreprocessorDefinitions=""
/>
</FileConfiguration>
</File>
<File
RelativePath="path.cpp"
>
<FileConfiguration
Name="Debug|Win32"
>
<Tool
Name="VCCLCompilerTool"
PreprocessorDefinitions=""
/>
</FileConfiguration>
<FileConfiguration
Name="External Release|Win32"
>
<Tool
Name="VCCLCompilerTool"
PreprocessorDefinitions=""
/>
</FileConfiguration>
<FileConfiguration
Name="Release|Win32"
>
<Tool
Name="VCCLCompilerTool"
PreprocessorDefinitions=""
/>
</FileConfiguration>
</File>
<File
RelativePath="registry.cpp"
>
<FileConfiguration
Name="Debug|Win32"
>
<Tool
Name="VCCLCompilerTool"
PreprocessorDefinitions=""
/>
</FileConfiguration>
<FileConfiguration
Name="External Release|Win32"
>
<Tool
Name="VCCLCompilerTool"
PreprocessorDefinitions=""
/>
</FileConfiguration>
<FileConfiguration
Name="Release|Win32"
>
<Tool
Name="VCCLCompilerTool"
PreprocessorDefinitions=""
/>
</FileConfiguration>
</File>
<File
RelativePath="std string.cpp"
>
<FileConfiguration
Name="Debug|Win32"
>
<Tool
Name="VCCLCompilerTool"
PreprocessorDefinitions=""
/>
</FileConfiguration>
<FileConfiguration
Name="External Release|Win32"
>
<Tool
Name="VCCLCompilerTool"
PreprocessorDefinitions=""
/>
</FileConfiguration>
<FileConfiguration
Name="Release|Win32"
>
<Tool
Name="VCCLCompilerTool"
PreprocessorDefinitions=""
/>
</FileConfiguration>
</File>
<File
RelativePath="stdafx.cpp"
>
<FileConfiguration
Name="Debug|Win32"
>
<Tool
Name="VCCLCompilerTool"
PreprocessorDefinitions=""
UsePrecompiledHeader="1"
/>
</FileConfiguration>
<FileConfiguration
Name="External Release|Win32"
>
<Tool
Name="VCCLCompilerTool"
PreprocessorDefinitions=""
/>
</FileConfiguration>
<FileConfiguration
Name="Release|Win32"
>
<Tool
Name="VCCLCompilerTool"
PreprocessorDefinitions=""
/>
</FileConfiguration>
</File>
<File
RelativePath="Trace.cpp"
>
<FileConfiguration
Name="Debug|Win32"
>
<Tool
Name="VCCLCompilerTool"
PreprocessorDefinitions=""
/>
</FileConfiguration>
<FileConfiguration
Name="External Release|Win32"
>
<Tool
Name="VCCLCompilerTool"
PreprocessorDefinitions=""
/>
</FileConfiguration>
<FileConfiguration
Name="Release|Win32"
>
<Tool
Name="VCCLCompilerTool"
PreprocessorDefinitions=""
/>
</FileConfiguration>
</File>
<File
RelativePath="Version.cpp"
>
<FileConfiguration
Name="Debug|Win32"
>
<Tool
Name="VCCLCompilerTool"
PreprocessorDefinitions=""
/>
</FileConfiguration>
<FileConfiguration
Name="External Release|Win32"
>
<Tool
Name="VCCLCompilerTool"
PreprocessorDefinitions=""
/>
</FileConfiguration>
<FileConfiguration
Name="Release|Win32"
>
<Tool
Name="VCCLCompilerTool"
PreprocessorDefinitions=""
/>
</FileConfiguration>
</File>
</Filter>
<Filter
Name="Header Files"
Filter="h;hpp;hxx;hm;inl"
>
<File
RelativePath="CriticalSection.h"
>
</File>
<File
RelativePath="File Class.h"
>
</File>
<File
RelativePath="Ini File Class.h"
>
</File>
<File
RelativePath="Log Class.h"
>
</File>
<File
RelativePath="md5.h"
>
</File>
<File
RelativePath="MemTest.h"
>
</File>
<File
RelativePath="osversion.h"
>
</File>
<File
RelativePath="path.h"
>
</File>
<File
RelativePath="registry.h"
>
</File>
<File
RelativePath="Smart Pointer.h"
>
</File>
<File
RelativePath="std string.h"
>
</File>
<File
RelativePath="stdafx.h"
>
</File>
<File
RelativePath="Trace.h"
>
</File>
<File
RelativePath="TraceDefs.h"
>
</File>
<File
RelativePath="Version.h"
>
</File>
</Filter>
</Files>
<Globals>
</Globals>
</VisualStudioProject>

View File

@ -211,9 +211,12 @@ void CMemList::Remove(void *ptr)
} }
} }
void CMemList::removeItem (void * ptr ) void CMemList::removeItem (void * ptr, bool bFree )
{
if (bFree)
{ {
free(ptr); free(ptr);
}
__try { __try {
if (State == Initialized && hSemaphone != NULL) { if (State == Initialized && hSemaphone != NULL) {
DWORD CurrentThread = GetCurrentThreadId(); DWORD CurrentThread = GetCurrentThreadId();
@ -267,7 +270,7 @@ void* operator new [] (size_t size)
void operator delete ( void* ptr) void operator delete ( void* ptr)
{ {
MemList()->removeItem(ptr); MemList()->removeItem(ptr,true);
} }
void operator delete[](void* ptr) void operator delete[](void* ptr)
@ -296,7 +299,7 @@ BOOL MemTest_VirtualFree( LPVOID lpAddress, SIZE_T dwSize, DWORD dwFreeType )
{ {
if ((dwFreeType & MEM_RELEASE) != 0) if ((dwFreeType & MEM_RELEASE) != 0)
{ {
MemList()->removeItem(lpAddress); MemList()->removeItem(lpAddress,false);
} }
return VirtualFree(lpAddress,dwSize,dwFreeType); return VirtualFree(lpAddress,dwSize,dwFreeType);
} }

View File

@ -57,7 +57,7 @@ public:
~CMemList(); ~CMemList();
void * AddItem ( size_t size, char * filename, int line ); void * AddItem ( size_t size, char * filename, int line );
void * ReAllocItem ( void * ptr, size_t size, const char * filename, int line ); void * ReAllocItem ( void * ptr, size_t size, const char * filename, int line );
void removeItem ( void * ptr ); void removeItem ( void * ptr, bool bFree );
void RecordAddItem ( void * ptr, size_t size, const char * filename, int line ); void RecordAddItem ( void * ptr, size_t size, const char * filename, int line );
}; };

View File

@ -0,0 +1,250 @@
<?xml version="1.0" encoding="Windows-1252"?>
<VisualStudioProject
ProjectType="Visual C++"
Version="9.00"
Name="PjDirValidation"
ProjectGUID="{5AEBC82D-FA27-4EE1-8AF5-656C351DAE66}"
TargetFrameworkVersion="0"
>
<Platforms>
<Platform
Name="Win32"
/>
</Platforms>
<ToolFiles>
</ToolFiles>
<Configurations>
<Configuration
Name="Release|Win32"
OutputDirectory=".\../../Bin/Release"
IntermediateDirectory="$(SolutionDir)build/$(ConfigurationName)/$(ProjectName)"
ConfigurationType="1"
InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC60.vsprops"
UseOfMFC="0"
ATLMinimizesCRunTimeLibraryUsage="false"
CharacterSet="2"
>
<Tool
Name="VCPreBuildEventTool"
/>
<Tool
Name="VCCustomBuildTool"
/>
<Tool
Name="VCXMLDataGeneratorTool"
/>
<Tool
Name="VCWebServiceProxyGeneratorTool"
/>
<Tool
Name="VCMIDLTool"
PreprocessorDefinitions="NDEBUG"
MkTypLibCompatible="true"
SuppressStartupBanner="true"
TargetEnvironment="1"
TypeLibraryName=".\../../Bin/Release/PjDirValidation.tlb"
HeaderFileName=""
/>
<Tool
Name="VCCLCompilerTool"
Optimization="2"
InlineFunctionExpansion="1"
AdditionalIncludeDirectories="../,./"
PreprocessorDefinitions="WIN32;NDEBUG;_WINDOWS"
StringPooling="true"
RuntimeLibrary="2"
BufferSecurityCheck="false"
EnableFunctionLevelLinking="true"
PrecompiledHeaderFile=".\../../Build/PjDirValidation/Release/PjDirValidation.pch"
AssemblerListingLocation=".\../../Build/PjDirValidation/Release/"
ObjectFile=".\../../Build/PjDirValidation/Release/"
ProgramDataBaseFileName=".\../../Build/PjDirValidation/Release/"
WarningLevel="3"
SuppressStartupBanner="true"
/>
<Tool
Name="VCManagedResourceCompilerTool"
/>
<Tool
Name="VCResourceCompilerTool"
PreprocessorDefinitions="NDEBUG"
Culture="3081"
/>
<Tool
Name="VCPreLinkEventTool"
/>
<Tool
Name="VCLinkerTool"
OutputFile=".\../../Bin/Release/PjDirValidation.exe"
LinkIncremental="1"
SuppressStartupBanner="true"
GenerateDebugInformation="true"
ProgramDatabaseFile=".\../../Bin/Release/PjDirValidation.pdb"
SubSystem="2"
RandomizedBaseAddress="1"
DataExecutionPrevention="0"
TargetMachine="1"
/>
<Tool
Name="VCALinkTool"
/>
<Tool
Name="VCManifestTool"
/>
<Tool
Name="VCXDCMakeTool"
/>
<Tool
Name="VCBscMakeTool"
SuppressStartupBanner="true"
OutputFile=".\../../Bin/Release/PjDirValidation.bsc"
/>
<Tool
Name="VCFxCopTool"
/>
<Tool
Name="VCAppVerifierTool"
/>
<Tool
Name="VCPostBuildEventTool"
/>
</Configuration>
<Configuration
Name="Debug|Win32"
OutputDirectory=".\../../Bin/Debug"
IntermediateDirectory="$(SolutionDir)build/$(ConfigurationName)/$(ProjectName)"
ConfigurationType="1"
InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC60.vsprops"
UseOfMFC="0"
ATLMinimizesCRunTimeLibraryUsage="false"
CharacterSet="2"
>
<Tool
Name="VCPreBuildEventTool"
/>
<Tool
Name="VCCustomBuildTool"
/>
<Tool
Name="VCXMLDataGeneratorTool"
/>
<Tool
Name="VCWebServiceProxyGeneratorTool"
/>
<Tool
Name="VCMIDLTool"
PreprocessorDefinitions="_DEBUG"
MkTypLibCompatible="true"
SuppressStartupBanner="true"
TargetEnvironment="1"
TypeLibraryName=".\../../Bin/Debug/PjDirValidation.tlb"
HeaderFileName=""
/>
<Tool
Name="VCCLCompilerTool"
Optimization="0"
AdditionalIncludeDirectories="../,./"
PreprocessorDefinitions="WIN32;_DEBUG;_WINDOWS"
MinimalRebuild="true"
BasicRuntimeChecks="3"
RuntimeLibrary="3"
PrecompiledHeaderFile=".\../../Build/PjDirValidation/Debug/PjDirValidation.pch"
AssemblerListingLocation=".\../../Build/PjDirValidation/Debug/"
ObjectFile=".\../../Build/PjDirValidation/Debug/"
ProgramDataBaseFileName=".\../../Build/PjDirValidation/Debug/"
WarningLevel="3"
SuppressStartupBanner="true"
DebugInformationFormat="4"
/>
<Tool
Name="VCManagedResourceCompilerTool"
/>
<Tool
Name="VCResourceCompilerTool"
PreprocessorDefinitions="_DEBUG"
Culture="3081"
/>
<Tool
Name="VCPreLinkEventTool"
/>
<Tool
Name="VCLinkerTool"
OutputFile=".\../../Bin/Debug/PjDirValidation.exe"
LinkIncremental="2"
SuppressStartupBanner="true"
GenerateDebugInformation="true"
ProgramDatabaseFile=".\../../Bin/Debug/PjDirValidation.pdb"
SubSystem="2"
RandomizedBaseAddress="1"
DataExecutionPrevention="0"
TargetMachine="1"
/>
<Tool
Name="VCALinkTool"
/>
<Tool
Name="VCManifestTool"
/>
<Tool
Name="VCXDCMakeTool"
/>
<Tool
Name="VCBscMakeTool"
SuppressStartupBanner="true"
OutputFile=".\../../Bin/Debug/PjDirValidation.bsc"
/>
<Tool
Name="VCFxCopTool"
/>
<Tool
Name="VCAppVerifierTool"
/>
<Tool
Name="VCPostBuildEventTool"
/>
</Configuration>
</Configurations>
<References>
</References>
<Files>
<Filter
Name="Source Files"
Filter="cpp;c;cxx;rc;def;r;odl;idl;hpj;bat"
>
<File
RelativePath="main.cpp"
>
<FileConfiguration
Name="Release|Win32"
>
<Tool
Name="VCCLCompilerTool"
AdditionalIncludeDirectories=""
PreprocessorDefinitions=""
/>
</FileConfiguration>
<FileConfiguration
Name="Debug|Win32"
>
<Tool
Name="VCCLCompilerTool"
AdditionalIncludeDirectories=""
PreprocessorDefinitions=""
/>
</FileConfiguration>
</File>
</Filter>
<Filter
Name="Header Files"
Filter="h;hpp;hxx;hm;inl"
>
</Filter>
<Filter
Name="Resource Files"
Filter="ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe"
>
</Filter>
</Files>
<Globals>
</Globals>
</VisualStudioProject>

View File

@ -279,8 +279,3 @@ void CloseSaveChips ( void )
{ {
CloseMempak(); CloseMempak();
} }
void SyncToPC (void) {
//FixRandomReg();
SyncSystem ();
}

View File

@ -53,7 +53,6 @@ void ApplyCheats ( void );
void RunRsp ( void ); void RunRsp ( void );
void RefreshScreen ( void ); void RefreshScreen ( void );
void ResetX86Logs ( void ); void ResetX86Logs ( void );
void SyncToPC ( void );
void CloseSaveChips ( void ); void CloseSaveChips ( void );
//Timer functions //Timer functions

View File

@ -165,7 +165,7 @@ WORD ConvertXP64Value (WORD Value) {
void CCheats::ApplyCheats(CMipsMemory * _MMU) void CCheats::ApplyCheats(CMipsMemory * _MMU)
{ {
for (int CurrentCheat = 0; CurrentCheat < m_Codes.size(); CurrentCheat ++) for (size_t CurrentCheat = 0; CurrentCheat < m_Codes.size(); CurrentCheat ++)
{ {
const CODES & CodeEntry = m_Codes[CurrentCheat]; const CODES & CodeEntry = m_Codes[CurrentCheat];
for (int CurrentEntry = 0; CurrentEntry < CodeEntry.size();) for (int CurrentEntry = 0; CurrentEntry < CodeEntry.size();)
@ -181,7 +181,7 @@ void CCheats::ApplyGSButton (CMipsMemory * _MMU)
for (int CurrentCheat = 0; CurrentCheat < m_Codes.size(); CurrentCheat ++) for (int CurrentCheat = 0; CurrentCheat < m_Codes.size(); CurrentCheat ++)
{ {
const CODES & CodeEntry = m_Codes[CurrentCheat]; const CODES & CodeEntry = m_Codes[CurrentCheat];
for (int CurrentEntry = 0; CurrentEntry < CodeEntry.size(); CurrentEntry ++) for (size_t CurrentEntry = 0; CurrentEntry < CodeEntry.size(); CurrentEntry ++)
{ {
const GAMESHARK_CODE & Code = CodeEntry[CurrentEntry]; const GAMESHARK_CODE & Code = CodeEntry[CurrentEntry];
switch (Code.Command & 0xFF000000) { switch (Code.Command & 0xFF000000) {
@ -301,7 +301,7 @@ int CCheats::ApplyCheatEntry (CMipsMemory * _MMU, const CODES & CodeEntry, int C
// Gameshark / AR // Gameshark / AR
case 0x50000000: // Added by Witten (witten@pj64cheats.net) case 0x50000000: // Added by Witten (witten@pj64cheats.net)
{ {
if ((CurrentEntry + 1) >= CodeEntry.size()) if ((CurrentEntry + 1) >= (int)CodeEntry.size())
{ {
return 1; return 1;
} }
@ -318,7 +318,7 @@ int CCheats::ApplyCheatEntry (CMipsMemory * _MMU, const CODES & CodeEntry, int C
Address = 0x80000000 | (NextCodeEntry.Command & 0xFFFFFF); Address = 0x80000000 | (NextCodeEntry.Command & 0xFFFFFF);
wMemory = NextCodeEntry.Value; wMemory = NextCodeEntry.Value;
for (i=0; i<numrepeats; i++) { for (i=0; i<numrepeats; i++) {
_MMU->SB_VAddr(Address,wMemory); _MMU->SB_VAddr(Address,(BYTE)wMemory);
Address += offset; Address += offset;
wMemory += incr; wMemory += incr;
} }
@ -339,7 +339,7 @@ int CCheats::ApplyCheatEntry (CMipsMemory * _MMU, const CODES & CodeEntry, int C
break; break;
case 0x80000000: case 0x80000000:
Address = 0x80000000 | (Code.Command & 0xFFFFFF); Address = 0x80000000 | (Code.Command & 0xFFFFFF);
if (Execute) { _MMU->SB_VAddr(Address,Code.Value); } if (Execute) { _MMU->SB_VAddr(Address,(BYTE)Code.Value); }
break; break;
case 0x81000000: case 0x81000000:
Address = 0x80000000 | (Code.Command & 0xFFFFFF); Address = 0x80000000 | (Code.Command & 0xFFFFFF);
@ -347,7 +347,7 @@ int CCheats::ApplyCheatEntry (CMipsMemory * _MMU, const CODES & CodeEntry, int C
break; break;
case 0xA0000000: case 0xA0000000:
Address = 0xA0000000 | (Code.Command & 0xFFFFFF); Address = 0xA0000000 | (Code.Command & 0xFFFFFF);
if (Execute) { _MMU->SB_VAddr(Address,Code.Value); } if (Execute) { _MMU->SB_VAddr(Address,(BYTE)Code.Value); }
break; break;
case 0xA1000000: case 0xA1000000:
Address = 0xA0000000 | (Code.Command & 0xFFFFFF); Address = 0xA0000000 | (Code.Command & 0xFFFFFF);
@ -490,7 +490,7 @@ void CCheats::AddCodeLayers (int CheatNumber, stdstr &CheatName, WND_HANDLE hPar
if ((CheatActive && State == TV_STATE_CLEAR) || (!CheatActive && State == TV_STATE_CHECKED)) { if ((CheatActive && State == TV_STATE_CLEAR) || (!CheatActive && State == TV_STATE_CHECKED)) {
TV_SetCheckState(m_hCheatTree,(WND_HANDLE)tv.item.hItem,TV_STATE_INDETERMINATE); TV_SetCheckState(m_hCheatTree,(WND_HANDLE)tv.item.hItem,TV_STATE_INDETERMINATE);
} }
int StartPos = strlen(Text) + 1; size_t StartPos = strlen(Text) + 1;
stdstr TempCheatName; stdstr TempCheatName;
if (StartPos < CheatName.length()) if (StartPos < CheatName.length())
{ {

View File

@ -172,11 +172,18 @@ void InPermLoop (void) {
//if (CPU_Type == CPU_SyncCores) { SyncRegisters.CP0[9] +=5; } //if (CPU_Type == CPU_SyncCores) { SyncRegisters.CP0[9] +=5; }
/* Interrupts enabled */ /* Interrupts enabled */
if (( _Reg->STATUS_REGISTER & STATUS_IE ) == 0 ) { goto InterruptsDisabled; } if (( _Reg->STATUS_REGISTER & STATUS_IE ) == 0 ||
if (( _Reg->STATUS_REGISTER & STATUS_EXL ) != 0 ) { goto InterruptsDisabled; } ( _Reg->STATUS_REGISTER & STATUS_EXL ) != 0 ||
if (( _Reg->STATUS_REGISTER & STATUS_ERL ) != 0 ) { goto InterruptsDisabled; } ( _Reg->STATUS_REGISTER & STATUS_ERL ) != 0 ||
if (( _Reg->STATUS_REGISTER & 0xFF00) == 0) { goto InterruptsDisabled; } ( _Reg->STATUS_REGISTER & 0xFF00) == 0)
{
if (_Plugins->Gfx()->UpdateScreen != NULL) { _Plugins->Gfx()->UpdateScreen(); }
//CurrentFrame = 0;
//CurrentPercent = 0;
//DisplayFPS();
DisplayError(GS(MSG_PERM_LOOP));
_System->CloseCpu();
} else {
/* check sound playing */ /* check sound playing */
_System->SyncToAudio(); _System->SyncToAudio();
@ -187,16 +194,7 @@ void InPermLoop (void) {
*_NextTimer = 0 - g_CountPerOp; *_NextTimer = 0 - g_CountPerOp;
_SystemTimer->UpdateTimers(); _SystemTimer->UpdateTimers();
} }
return; }
InterruptsDisabled:
if (_Plugins->Gfx()->UpdateScreen != NULL) { _Plugins->Gfx()->UpdateScreen(); }
//CurrentFrame = 0;
//CurrentPercent = 0;
//DisplayFPS();
DisplayError(GS(MSG_PERM_LOOP));
_System->CloseCpu();
} }
CInterpreterCPU::CInterpreterCPU () CInterpreterCPU::CInterpreterCPU ()
@ -216,8 +214,12 @@ void CInterpreterCPU::BuildCPU (void )
m_CountPerOp = _Settings->LoadDword(Game_CounterFactor); m_CountPerOp = _Settings->LoadDword(Game_CounterFactor);
if (_Settings->LoadBool(Game_32Bit))
{
m_R4300i_Opcode = R4300iOp32::BuildInterpreter();
} else {
m_R4300i_Opcode = R4300iOp::BuildInterpreter(); m_R4300i_Opcode = R4300iOp::BuildInterpreter();
//m_R4300i_Opcode = R4300iOp32::BuildInterpreter(); }
} }
void CInterpreterCPU::ExecuteCPU (void ) void CInterpreterCPU::ExecuteCPU (void )

View File

@ -154,8 +154,8 @@ R4300iOp32::Func * R4300iOp32::BuildInterpreter (void )
Jump_Special[59] = R4300iOp::SPECIAL_DSRA; Jump_Special[59] = R4300iOp::SPECIAL_DSRA;
Jump_Special[60] = R4300iOp::SPECIAL_DSLL32; Jump_Special[60] = R4300iOp::SPECIAL_DSLL32;
Jump_Special[61] = UnknownOpcode; Jump_Special[61] = UnknownOpcode;
Jump_Special[62] = R4300iOp::SPECIAL_DSRL32; Jump_Special[62] = SPECIAL_DSRL32;
Jump_Special[63] = R4300iOp::SPECIAL_DSRA32; Jump_Special[63] = SPECIAL_DSRA32;
Jump_Regimm[ 0] = REGIMM_BLTZ; Jump_Regimm[ 0] = REGIMM_BLTZ;
Jump_Regimm[ 1] = REGIMM_BGEZ; Jump_Regimm[ 1] = REGIMM_BGEZ;
@ -1171,11 +1171,11 @@ void R4300iOp32::SPECIAL_SYNC (void) {
} }
void R4300iOp32::SPECIAL_MTHI (void) { void R4300iOp32::SPECIAL_MTHI (void) {
_RegHI->W[0] = _GPR[m_Opcode.rs].W[0]; _RegHI->DW = _GPR[m_Opcode.rs].W[0];
} }
void R4300iOp32::SPECIAL_MTLO (void) { void R4300iOp32::SPECIAL_MTLO (void) {
_RegLO->W[0] = _GPR[m_Opcode.rs].W[0]; _RegLO->DW = _GPR[m_Opcode.rs].W[0];
} }
void R4300iOp32::SPECIAL_ADD (void) { void R4300iOp32::SPECIAL_ADD (void) {
@ -1239,6 +1239,16 @@ void R4300iOp32::SPECIAL_TEQ (void) {
} }
} }
void R4300iOp32::SPECIAL_DSRL32 (void)
{
_GPR[m_Opcode.rd].UW[0] = (DWORD)(_GPR[m_Opcode.rt].UDW >> (m_Opcode.sa + 32));
}
void R4300iOp32::SPECIAL_DSRA32 (void)
{
_GPR[m_Opcode.rd].W[0] = (long)(_GPR[m_Opcode.rt].DW >> (m_Opcode.sa + 32));
}
/********************** R4300i OpCodes: RegImm **********************/ /********************** R4300i OpCodes: RegImm **********************/
void R4300iOp32::REGIMM_BLTZ (void) { void R4300iOp32::REGIMM_BLTZ (void) {
m_NextInstruction = DELAY_SLOT; m_NextInstruction = DELAY_SLOT;
@ -1459,7 +1469,7 @@ void R4300iOp32::COP1_MF (void) {
void R4300iOp32::COP1_DMF (void) { void R4300iOp32::COP1_DMF (void) {
TEST_COP1_USABLE_EXCEPTION TEST_COP1_USABLE_EXCEPTION
_GPR[m_Opcode.rt].W[0] = *(__int64 *)_FPR_D[m_Opcode.fs]; _GPR[m_Opcode.rt].DW = *(__int64 *)_FPR_D[m_Opcode.fs];
} }
void R4300iOp32::COP1_CF (void) { void R4300iOp32::COP1_CF (void) {

View File

@ -65,6 +65,8 @@ public:
static void SPECIAL_SLT ( void ); static void SPECIAL_SLT ( void );
static void SPECIAL_SLTU ( void ); static void SPECIAL_SLTU ( void );
static void SPECIAL_TEQ ( void ); static void SPECIAL_TEQ ( void );
static void SPECIAL_DSRL32 ( void );
static void SPECIAL_DSRA32 ( void );
/********************** R4300i OpCodes: RegImm **********************/ /********************** R4300i OpCodes: RegImm **********************/
static void REGIMM_BLTZ ( void ); static void REGIMM_BLTZ ( void );

View File

@ -2287,6 +2287,7 @@ void R4300iOp::UnknownOpcode (void)
R4300iOpcodeName(m_Opcode.Hex,(*_PROGRAM_COUNTER))); R4300iOpcodeName(m_Opcode.Hex,(*_PROGRAM_COUNTER)));
_System->m_EndEmulation = true; _System->m_EndEmulation = true;
_Notify->BreakPoint(__FILE__,__LINE__);
#ifdef tofix #ifdef tofix
if (HaveDebugger && !inFullScreen) { if (HaveDebugger && !inFullScreen) {
int response; int response;

View File

@ -875,12 +875,10 @@ void CMipsMemoryVM::Compile_SW_Const ( DWORD Value, DWORD VAddr ) {
case 0x0450000C: case 0x0450000C:
/* Clear Interrupt */; /* Clear Interrupt */;
AndConstToVariable(~MI_INTR_AI,&_Reg->MI_INTR_REG,"MI_INTR_REG"); AndConstToVariable(~MI_INTR_AI,&_Reg->MI_INTR_REG,"MI_INTR_REG");
#ifdef tofix if (_Settings->LoadBool(Game_FixedAudio))
if (!_Settings->LoadBool(Game_FixedAudio))
{ {
AndConstToVariable(~MI_INTR_AI,&_Reg->m_AudioIntrReg,"m_AudioIntrReg"); AndConstToVariable(~MI_INTR_AI,&_Reg->m_AudioIntrReg,"m_AudioIntrReg");
} }
#endif
BeforeCallDirect(m_RegWorkingSet); BeforeCallDirect(m_RegWorkingSet);
MoveConstToX86reg((DWORD)_Reg,x86_ECX); MoveConstToX86reg((DWORD)_Reg,x86_ECX);
Call_Direct(AddressOf(&CRegisters::CheckInterrupts),"CRegisters::CheckInterrupts"); Call_Direct(AddressOf(&CRegisters::CheckInterrupts),"CRegisters::CheckInterrupts");
@ -1281,7 +1279,7 @@ int CMipsMemoryVM::MemoryFilter( DWORD dwExptCode, void * lpExceptionPointer )
{ {
if (dwExptCode != EXCEPTION_ACCESS_VIOLATION) if (dwExptCode != EXCEPTION_ACCESS_VIOLATION)
{ {
return EXCEPTION_CONTINUE_SEARCH; return EXCEPTION_EXECUTE_HANDLER;
} }
//convert the pointer since we are not having win32 stuctures in headers //convert the pointer since we are not having win32 stuctures in headers
@ -1290,7 +1288,7 @@ int CMipsMemoryVM::MemoryFilter( DWORD dwExptCode, void * lpExceptionPointer )
DWORD MemAddress = (char *)lpEP->ExceptionRecord->ExceptionInformation[1] - (char *)_MMU->Rdram(); DWORD MemAddress = (char *)lpEP->ExceptionRecord->ExceptionInformation[1] - (char *)_MMU->Rdram();
if ((int)(MemAddress) < 0 || MemAddress > 0x1FFFFFFF) if ((int)(MemAddress) < 0 || MemAddress > 0x1FFFFFFF)
{ {
return EXCEPTION_CONTINUE_SEARCH; return EXCEPTION_EXECUTE_HANDLER;
} }
DWORD * Reg; DWORD * Reg;
@ -1306,7 +1304,7 @@ int CMipsMemoryVM::MemoryFilter( DWORD dwExptCode, void * lpExceptionPointer )
#ifndef EXTERNAL_RELEASE #ifndef EXTERNAL_RELEASE
DisplayError("hmmm.... where does this dma start ?"); DisplayError("hmmm.... where does this dma start ?");
#endif #endif
return EXCEPTION_CONTINUE_SEARCH; return EXCEPTION_EXECUTE_HANDLER;
} }
#ifdef CFB_READ #ifdef CFB_READ
DWORD count, OldProtect; DWORD count, OldProtect;
@ -1331,7 +1329,7 @@ int CMipsMemoryVM::MemoryFilter( DWORD dwExptCode, void * lpExceptionPointer )
return EXCEPTION_CONTINUE_EXECUTION; return EXCEPTION_CONTINUE_EXECUTION;
} }
DisplayError("hmmm.... where does this dma End ?\nstart: %X\nend:%X\nlocation %X", Start,End,lpEP->ContextRecord->Eip); DisplayError("hmmm.... where does this dma End ?\nstart: %X\nend:%X\nlocation %X", Start,End,lpEP->ContextRecord->Eip);
return EXCEPTION_CONTINUE_SEARCH; return EXCEPTION_EXECUTE_HANDLER;
} }
BYTE * ReadPos; BYTE * ReadPos;
@ -1397,7 +1395,7 @@ int CMipsMemoryVM::MemoryFilter( DWORD dwExptCode, void * lpExceptionPointer )
default: default:
DisplayError("Unknown x86 opcode %X\nlocation %X\nloc: %X\nfgh2", DisplayError("Unknown x86 opcode %X\nlocation %X\nloc: %X\nfgh2",
*(unsigned char *)lpEP->ContextRecord->Eip, lpEP->ContextRecord->Eip, (char *)exRec.ExceptionInformation[1] - (char *)m_RDRAM); *(unsigned char *)lpEP->ContextRecord->Eip, lpEP->ContextRecord->Eip, (char *)exRec.ExceptionInformation[1] - (char *)m_RDRAM);
return EXCEPTION_CONTINUE_SEARCH; return EXCEPTION_EXECUTE_HANDLER;
} }
switch(*TypePos) { switch(*TypePos) {
@ -1446,7 +1444,7 @@ int CMipsMemoryVM::MemoryFilter( DWORD dwExptCode, void * lpExceptionPointer )
default: default:
DisplayError("Unkown x86 opcode %X\nlocation %X\nloc: %X\nfhfgh2", DisplayError("Unkown x86 opcode %X\nlocation %X\nloc: %X\nfhfgh2",
*(unsigned char *)lpEP->ContextRecord->Eip, lpEP->ContextRecord->Eip, (char *)exRec.ExceptionInformation[1] - (char *)m_RDRAM); *(unsigned char *)lpEP->ContextRecord->Eip, lpEP->ContextRecord->Eip, (char *)exRec.ExceptionInformation[1] - (char *)m_RDRAM);
return EXCEPTION_CONTINUE_SEARCH; return EXCEPTION_EXECUTE_HANDLER;
} }
break; break;
case 0x66: case 0x66:
@ -1471,7 +1469,7 @@ int CMipsMemoryVM::MemoryFilter( DWORD dwExptCode, void * lpExceptionPointer )
lpEP->ContextRecord->Eip = (DWORD)ReadPos; lpEP->ContextRecord->Eip = (DWORD)ReadPos;
return EXCEPTION_CONTINUE_EXECUTION; return EXCEPTION_CONTINUE_EXECUTION;
case 0xC7: case 0xC7:
if (Reg != &lpEP->ContextRecord->Eax) { return EXCEPTION_CONTINUE_SEARCH; } if (Reg != &lpEP->ContextRecord->Eax) { return EXCEPTION_EXECUTE_HANDLER; }
if (!SH_NonMemory(MemAddress,*(WORD *)ReadPos)) { if (!SH_NonMemory(MemAddress,*(WORD *)ReadPos)) {
if (_Settings->LoadDword(Debugger_ShowUnhandledMemory)) { if (_Settings->LoadDword(Debugger_ShowUnhandledMemory)) {
DisplayError("Failed to store half word\n\nMIPS Address: %X\nX86 Address",MemAddress, DisplayError("Failed to store half word\n\nMIPS Address: %X\nX86 Address",MemAddress,
@ -1483,7 +1481,7 @@ int CMipsMemoryVM::MemoryFilter( DWORD dwExptCode, void * lpExceptionPointer )
default: default:
DisplayError("Unkown x86 opcode %X\nlocation %X\nloc: %X\nfhfgh2", DisplayError("Unkown x86 opcode %X\nlocation %X\nloc: %X\nfhfgh2",
*(unsigned char *)lpEP->ContextRecord->Eip, lpEP->ContextRecord->Eip, (char *)exRec.ExceptionInformation[1] - (char *)m_RDRAM); *(unsigned char *)lpEP->ContextRecord->Eip, lpEP->ContextRecord->Eip, (char *)exRec.ExceptionInformation[1] - (char *)m_RDRAM);
return EXCEPTION_CONTINUE_SEARCH; return EXCEPTION_EXECUTE_HANDLER;
} }
break; break;
case 0x88: case 0x88:
@ -1526,7 +1524,7 @@ int CMipsMemoryVM::MemoryFilter( DWORD dwExptCode, void * lpExceptionPointer )
lpEP->ContextRecord->Eip = (DWORD)ReadPos; lpEP->ContextRecord->Eip = (DWORD)ReadPos;
return EXCEPTION_CONTINUE_EXECUTION; return EXCEPTION_CONTINUE_EXECUTION;
case 0xC6: case 0xC6:
if (Reg != &lpEP->ContextRecord->Eax) { return EXCEPTION_CONTINUE_SEARCH; } if (Reg != &lpEP->ContextRecord->Eax) { return EXCEPTION_EXECUTE_HANDLER; }
if (!SB_NonMemory(MemAddress,*(BYTE *)ReadPos)) { if (!SB_NonMemory(MemAddress,*(BYTE *)ReadPos)) {
if (_Settings->LoadDword(Debugger_ShowUnhandledMemory)) { if (_Settings->LoadDword(Debugger_ShowUnhandledMemory)) {
DisplayError("Failed to store byte\n\nMIPS Address: %X\nX86 Address",MemAddress, DisplayError("Failed to store byte\n\nMIPS Address: %X\nX86 Address",MemAddress,
@ -1536,7 +1534,7 @@ int CMipsMemoryVM::MemoryFilter( DWORD dwExptCode, void * lpExceptionPointer )
lpEP->ContextRecord->Eip = (DWORD)(ReadPos + 1); lpEP->ContextRecord->Eip = (DWORD)(ReadPos + 1);
return EXCEPTION_CONTINUE_EXECUTION; return EXCEPTION_CONTINUE_EXECUTION;
case 0xC7: case 0xC7:
if (Reg != &lpEP->ContextRecord->Eax) { return EXCEPTION_CONTINUE_SEARCH; } if (Reg != &lpEP->ContextRecord->Eax) { return EXCEPTION_EXECUTE_HANDLER; }
if (!SW_NonMemory(MemAddress,*(DWORD *)ReadPos)) { if (!SW_NonMemory(MemAddress,*(DWORD *)ReadPos)) {
if (_Settings->LoadDword(Debugger_ShowUnhandledMemory)) { if (_Settings->LoadDword(Debugger_ShowUnhandledMemory)) {
DisplayError("Failed to store word\n\nMIPS Address: %X\nX86 Address",MemAddress, DisplayError("Failed to store word\n\nMIPS Address: %X\nX86 Address",MemAddress,
@ -1548,9 +1546,9 @@ int CMipsMemoryVM::MemoryFilter( DWORD dwExptCode, void * lpExceptionPointer )
default: default:
DisplayError("Unkown x86 opcode %X\nlocation %X\nloc: %X\nfhfgh2", DisplayError("Unkown x86 opcode %X\nlocation %X\nloc: %X\nfhfgh2",
*(unsigned char *)lpEP->ContextRecord->Eip, lpEP->ContextRecord->Eip, (char *)exRec.ExceptionInformation[1] - (char *)m_RDRAM); *(unsigned char *)lpEP->ContextRecord->Eip, lpEP->ContextRecord->Eip, (char *)exRec.ExceptionInformation[1] - (char *)m_RDRAM);
return EXCEPTION_CONTINUE_SEARCH; return EXCEPTION_EXECUTE_HANDLER;
} }
return EXCEPTION_CONTINUE_SEARCH; return EXCEPTION_EXECUTE_HANDLER;
} }
int CMipsMemoryVM::LB_NonMemory ( DWORD PAddr, DWORD * Value, BOOL SignExtend ) { int CMipsMemoryVM::LB_NonMemory ( DWORD PAddr, DWORD * Value, BOOL SignExtend ) {
@ -2847,6 +2845,10 @@ void CMipsMemoryVM::Compile_LD (void)
Map_GPR_64bit(Opcode.rt,-1); Map_GPR_64bit(Opcode.rt,-1);
Compile_LW(cMipsRegMapHi(Opcode.rt),Address); Compile_LW(cMipsRegMapHi(Opcode.rt),Address);
Compile_LW(cMipsRegMapLo(Opcode.rt),Address + 4); Compile_LW(cMipsRegMapLo(Opcode.rt),Address + 4);
if (Opcode.rt == 29)
{
_Notify->BreakPoint(__FILE__,__LINE__);
}
#ifdef tofix #ifdef tofix
if (bFastSP() && Opcode.rt == 29) { _MMU->ResetMemoryStack(m_Section); } if (bFastSP() && Opcode.rt == 29) { _MMU->ResetMemoryStack(m_Section); }
#endif #endif

View File

@ -42,6 +42,9 @@ void CSystemEvents::ExecuteEvents ( void )
{ {
switch (*iter) switch (*iter)
{ {
case SysEvent_CloseCPU:
_System->m_EndEmulation = true;
break;
case SysEvent_ResetCPU_Soft: case SysEvent_ResetCPU_Soft:
_SystemTimer->SetTimer(CSystemTimer::SoftResetTimer,0x3000000,false); _SystemTimer->SetTimer(CSystemTimer::SoftResetTimer,0x3000000,false);
_Plugins->Gfx()->ShowCFB(); _Plugins->Gfx()->ShowCFB();

View File

@ -57,7 +57,16 @@ DWORD CSystemTimer::GetTimer ( TimerType Type )
{ {
return 0; return 0;
} }
return m_TimerDetatils[Type].CyclesToTimer + m_NextTimer; __int64 CyclesToTimer = m_TimerDetatils[Type].CyclesToTimer + m_NextTimer;
if (CyclesToTimer < 0)
{
return 0;
}
if (CyclesToTimer > 0x7FFFFFFF)
{
return 0x7FFFFFFF;
}
return (DWORD)CyclesToTimer;
} }
void CSystemTimer::StopTimer ( TimerType Type ) void CSystemTimer::StopTimer ( TimerType Type )
@ -112,7 +121,7 @@ void CSystemTimer::FixTimers (void)
{ {
continue; continue;
} }
m_NextTimer = m_TimerDetatils[count].CyclesToTimer; m_NextTimer = (int)m_TimerDetatils[count].CyclesToTimer;
m_Current = (TimerType)count; m_Current = (TimerType)count;
} }
@ -245,3 +254,31 @@ bool CSystemTimer::SaveAllowed ( void )
} }
return true; return true;
} }
void CSystemTimer::SaveData ( void * file ) const
{
DWORD TimerDetailsSize = sizeof(TIMER_DETAILS);
DWORD Entries = sizeof(m_TimerDetatils)/sizeof(m_TimerDetatils[0]);
zipWriteInFileInZip(file,&TimerDetailsSize,sizeof(TimerDetailsSize));
zipWriteInFileInZip(file,&Entries,sizeof(Entries));
zipWriteInFileInZip(file,(void *)&m_TimerDetatils,sizeof(m_TimerDetatils));
zipWriteInFileInZip(file,(void *)&m_LastUpdate,sizeof(m_LastUpdate));
zipWriteInFileInZip(file,&m_NextTimer,sizeof(m_NextTimer));
zipWriteInFileInZip(file,(void *)&m_Current,sizeof(m_Current));
}
void CSystemTimer::LoadData ( void * file )
{
DWORD TimerDetailsSize, Entries;
unzReadCurrentFile( file,&TimerDetailsSize,sizeof(TimerDetailsSize));
unzReadCurrentFile( file,&Entries,sizeof(Entries));
if (TimerDetailsSize != sizeof(TIMER_DETAILS)) { _Notify->BreakPoint(__FILE__,__LINE__); return; }
if (Entries != sizeof(m_TimerDetatils)/sizeof(m_TimerDetatils[0])) { _Notify->BreakPoint(__FILE__,__LINE__); return; }
unzReadCurrentFile(file,(void *)&m_TimerDetatils,sizeof(m_TimerDetatils));
unzReadCurrentFile(file,(void *)&m_LastUpdate,sizeof(m_LastUpdate));
unzReadCurrentFile(file,&m_NextTimer,sizeof(m_NextTimer));
unzReadCurrentFile(file,(void *)&m_Current,sizeof(m_Current));
}

View File

@ -35,6 +35,9 @@ public:
void UpdateCompareTimer ( void ); void UpdateCompareTimer ( void );
bool SaveAllowed ( void ); bool SaveAllowed ( void );
void SaveData ( void * file ) const;
void LoadData ( void * file );
inline TimerType CurrentType ( void ) const { return m_Current; } inline TimerType CurrentType ( void ) const { return m_Current; }
private: private:

View File

@ -76,6 +76,7 @@ void CN64System::ExternalEvent ( SystemEvent action )
QueueEvent(action); QueueEvent(action);
break; break;
case SysEvent_ResetCPU_Soft: case SysEvent_ResetCPU_Soft:
case SysEvent_CloseCPU:
QueueEvent(action); QueueEvent(action);
if (m_SyncCPU) if (m_SyncCPU)
{ {
@ -206,6 +207,8 @@ bool CN64System::EmulationStarting ( HANDLE hThread, DWORD ThreadId )
delete _BaseSystem; delete _BaseSystem;
_BaseSystem = NULL; _BaseSystem = NULL;
} }
WriteTrace(TraceDebug,"CN64System::stLoadFileImage: Hide Rom Browser");
_Notify->HideRomBrowser();
WriteTrace(TraceDebug,"CN64System::stLoadFileImage: Creating N64 system"); WriteTrace(TraceDebug,"CN64System::stLoadFileImage: Creating N64 system");
_BaseSystem = new CN64System(_Plugins,false); _BaseSystem = new CN64System(_Plugins,false);
WriteTrace(TraceDebug,"CN64System::stLoadFileImage: Setting N64 system as active"); WriteTrace(TraceDebug,"CN64System::stLoadFileImage: Setting N64 system as active");
@ -397,6 +400,7 @@ void CN64System::CloseCpu ( void )
if (GetCurrentThreadId() == m_CPU_ThreadID) if (GetCurrentThreadId() == m_CPU_ThreadID)
{ {
ExternalEvent(SysEvent_CloseCPU);
return; return;
} }
@ -768,6 +772,9 @@ void CN64System::InitRegisters( bool bPostPif, CMipsMemory & MMU )
void CN64System::ExecuteCPU ( void ) void CN64System::ExecuteCPU ( void )
{ {
if (_Plugins) { _Plugins->GameReset(); }
//reset code
_Settings->SaveBool(GameRunning_CPU_Running,true); _Settings->SaveBool(GameRunning_CPU_Running,true);
_Settings->SaveBool(GameRunning_CPU_Paused,false); _Settings->SaveBool(GameRunning_CPU_Paused,false);
_Notify->DisplayMessage(5,MSG_EMULATION_STARTED); _Notify->DisplayMessage(5,MSG_EMULATION_STARTED);
@ -885,6 +892,7 @@ void CN64System::UpdateSyncCPU (CN64System * const SecondCPU, DWORD const Cycles
void CN64System::SyncCPU (CN64System * const SecondCPU) { void CN64System::SyncCPU (CN64System * const SecondCPU) {
bool ErrorFound = false; bool ErrorFound = false;
//WriteTraceF(TraceError,"SyncCPU PC = %08X",m_Reg.m_PROGRAM_COUNTER);
_SystemTimer->UpdateTimers(); _SystemTimer->UpdateTimers();
#ifdef TEST_SP_TRACKING #ifdef TEST_SP_TRACKING
@ -895,6 +903,20 @@ void CN64System::SyncCPU (CN64System * const SecondCPU) {
if (m_Reg.m_PROGRAM_COUNTER != SecondCPU->m_Reg.m_PROGRAM_COUNTER) { if (m_Reg.m_PROGRAM_COUNTER != SecondCPU->m_Reg.m_PROGRAM_COUNTER) {
ErrorFound = true; ErrorFound = true;
} }
if (b32BitCore())
{
for (int count = 0; count < 32; count ++) {
if (m_Reg.m_GPR[count].W[0] != SecondCPU->m_Reg.m_GPR[count].W[0]) {
ErrorFound = true;
}
if (m_Reg.m_FPR[count].DW != SecondCPU->m_Reg.m_FPR[count].DW) {
ErrorFound = true;
}
if (m_Reg.m_CP0[count] != SecondCPU->m_Reg.m_CP0[count]) {
ErrorFound = true;
}
}
} else {
for (int count = 0; count < 32; count ++) { for (int count = 0; count < 32; count ++) {
if (m_Reg.m_GPR[count].DW != SecondCPU->m_Reg.m_GPR[count].DW) { if (m_Reg.m_GPR[count].DW != SecondCPU->m_Reg.m_GPR[count].DW) {
ErrorFound = true; ErrorFound = true;
@ -906,6 +928,7 @@ void CN64System::SyncCPU (CN64System * const SecondCPU) {
ErrorFound = true; ErrorFound = true;
} }
} }
}
if (m_Reg.m_FPCR[0] != SecondCPU->m_Reg.m_FPCR[0]) { ErrorFound = true; } if (m_Reg.m_FPCR[0] != SecondCPU->m_Reg.m_FPCR[0]) { ErrorFound = true; }
if (m_Reg.m_FPCR[31] != SecondCPU->m_Reg.m_FPCR[31]) { ErrorFound = true; } if (m_Reg.m_FPCR[31] != SecondCPU->m_Reg.m_FPCR[31]) { ErrorFound = true; }
@ -1096,11 +1119,11 @@ bool CN64System::SaveState(void)
{ {
WriteTrace(TraceDebug,"CN64System::SaveState 1"); WriteTrace(TraceDebug,"CN64System::SaveState 1");
if (!m_SystemTimer.SaveAllowed()) { return false; } // if (!m_SystemTimer.SaveAllowed()) { return false; }
if ((m_Reg.STATUS_REGISTER & STATUS_EXL) != 0) { return false; } if ((m_Reg.STATUS_REGISTER & STATUS_EXL) != 0) { return false; }
//Get the file Name //Get the file Name
stdstr FileName, CurrentSaveName = _Settings->LoadString(GameRunning_InstantSaveFile); stdstr FileName, ExtraInfoFileName, CurrentSaveName = _Settings->LoadString(GameRunning_InstantSaveFile);
if (CurrentSaveName.empty()) if (CurrentSaveName.empty())
{ {
int Slot = _Settings->LoadDword(Game_CurrentSaveState); int Slot = _Settings->LoadDword(Game_CurrentSaveState);
@ -1116,6 +1139,7 @@ bool CN64System::SaveState(void)
//delete any old save //delete any old save
DeleteFile(FileName.c_str()); DeleteFile(FileName.c_str());
DeleteFile(ZipFileName.c_str()); DeleteFile(ZipFileName.c_str());
ExtraInfoFileName.Format("%s.dat",CurrentSaveName.c_str());
//If ziping save add .zip on the end //If ziping save add .zip on the end
if (_Settings->LoadDword(Setting_AutoZipInstantSave)) { if (_Settings->LoadDword(Setting_AutoZipInstantSave)) {
@ -1124,6 +1148,7 @@ bool CN64System::SaveState(void)
_Settings->SaveDword(Game_LastSaveSlot,_Settings->LoadDword(Game_CurrentSaveState)); _Settings->SaveDword(Game_LastSaveSlot,_Settings->LoadDword(Game_CurrentSaveState));
} else { } else {
FileName.Format("%s%s",CurrentSaveName.c_str(), _Settings->LoadDword(Setting_AutoZipInstantSave) ? ".pj.zip" : ".pj"); FileName.Format("%s%s",CurrentSaveName.c_str(), _Settings->LoadDword(Setting_AutoZipInstantSave) ? ".pj.zip" : ".pj");
ExtraInfoFileName.Format("%s.dat",FileName.c_str());
} }
if (FileName.empty()) { return true; } if (FileName.empty()) { return true; }
@ -1136,7 +1161,7 @@ bool CN64System::SaveState(void)
} }
} }
DWORD dwWritten, SaveID_0 = 0x23D8A6C8; DWORD dwWritten, SaveID_0 = 0x23D8A6C8, SaveID_1 = 0x56D2CD23;
DWORD RdramSize = _Settings->LoadDword(Game_RDRamSize); DWORD RdramSize = _Settings->LoadDword(Game_RDRamSize);
DWORD MiInterReg = _Reg->MI_INTR_REG; DWORD MiInterReg = _Reg->MI_INTR_REG;
DWORD NextViTimer = m_SystemTimer.GetTimer(CSystemTimer::ViTimer); DWORD NextViTimer = m_SystemTimer.GetTimer(CSystemTimer::ViTimer);
@ -1171,6 +1196,12 @@ bool CN64System::SaveState(void)
zipWriteInFileInZip(file,_MMU->Dmem(),0x1000); zipWriteInFileInZip(file,_MMU->Dmem(),0x1000);
zipWriteInFileInZip(file,_MMU->Imem(),0x1000); zipWriteInFileInZip(file,_MMU->Imem(),0x1000);
zipCloseFileInZip(file); zipCloseFileInZip(file);
zipOpenNewFileInZip(file,ExtraInfoFileName.c_str(),NULL,NULL,0,NULL,0,NULL,Z_DEFLATED,Z_DEFAULT_COMPRESSION);
zipWriteInFileInZip(file,&SaveID_1,sizeof(SaveID_1));
m_SystemTimer.SaveData(file);
zipCloseFileInZip(file);
zipClose(file,""); zipClose(file,"");
} else { } else {
HANDLE hSaveFile = CreateFile(FileName.c_str(),GENERIC_WRITE | GENERIC_READ, FILE_SHARE_READ, HANDLE hSaveFile = CreateFile(FileName.c_str(),GENERIC_WRITE | GENERIC_READ, FILE_SHARE_READ,
@ -1283,6 +1314,7 @@ bool CN64System::LoadState(LPCSTR FileName) {
if (file != NULL) { if (file != NULL) {
port = unzGoToFirstFile(file); port = unzGoToFirstFile(file);
} }
DWORD Value;
while (port == UNZ_OK) { while (port == UNZ_OK) {
unz_file_info info; unz_file_info info;
char zname[132]; char zname[132];
@ -1298,15 +1330,13 @@ bool CN64System::LoadState(LPCSTR FileName) {
port = -1; port = -1;
continue; continue;
} }
DWORD Value;
unzReadCurrentFile(file,&Value,4); unzReadCurrentFile(file,&Value,4);
if (Value != 0x23D8A6C8) { if (Value != 0x23D8A6C8 && Value != 0x56D2CD23) {
unzCloseCurrentFile(file); unzCloseCurrentFile(file);
return false; port = unzGoToNextFile(file);
continue;
} }
break; if (!LoadedZipFile && Value == 0x23D8A6C8 && port == UNZ_OK) {
}
if (port == UNZ_OK) {
unzReadCurrentFile(file,&SaveRDRAMSize,sizeof(SaveRDRAMSize)); unzReadCurrentFile(file,&SaveRDRAMSize,sizeof(SaveRDRAMSize));
//Check header //Check header
@ -1346,9 +1376,17 @@ bool CN64System::LoadState(LPCSTR FileName) {
unzReadCurrentFile(file,m_MMU_VM.Dmem(),0x1000); unzReadCurrentFile(file,m_MMU_VM.Dmem(),0x1000);
unzReadCurrentFile(file,m_MMU_VM.Imem(),0x1000); unzReadCurrentFile(file,m_MMU_VM.Imem(),0x1000);
unzCloseCurrentFile(file); unzCloseCurrentFile(file);
unzClose(file); port = unzGoToFirstFile(file);
LoadedZipFile = true; LoadedZipFile = true;
continue;
} }
if (LoadedZipFile && Value == 0x56D2CD23 && port == UNZ_OK) {
m_SystemTimer.LoadData(file);
}
unzCloseCurrentFile(file);
port = unzGoToNextFile(file);
}
unzClose(file);
} }
if (!LoadedZipFile) { if (!LoadedZipFile) {
HANDLE hSaveFile = CreateFile(FileNameStr.c_str(),GENERIC_WRITE | GENERIC_READ, FILE_SHARE_READ,NULL, HANDLE hSaveFile = CreateFile(FileNameStr.c_str(),GENERIC_WRITE | GENERIC_READ, FILE_SHARE_READ,NULL,

View File

@ -117,8 +117,8 @@ void CProfiling::GenerateLog(void) {
} }
//sort the list with a basic bubble sort //sort the list with a basic bubble sort
for (int OuterPass = 0; OuterPass < (ItemList.size() - 1); OuterPass++ ) { for (size_t OuterPass = 0; OuterPass < (ItemList.size() - 1); OuterPass++ ) {
for (int InnerPass = 0; InnerPass < (ItemList.size() - 1); InnerPass++ ) { for (size_t InnerPass = 0; InnerPass < (ItemList.size() - 1); InnerPass++ ) {
if (ItemList[InnerPass]->second < ItemList[InnerPass + 1]->second) { if (ItemList[InnerPass]->second < ItemList[InnerPass + 1]->second) {
PROFILE_VALUE * TempPtr = ItemList[InnerPass]; PROFILE_VALUE * TempPtr = ItemList[InnerPass];
ItemList[InnerPass] = ItemList[InnerPass + 1]; ItemList[InnerPass] = ItemList[InnerPass + 1];
@ -143,9 +143,9 @@ void CProfiling::GenerateLog(void) {
{Timer_CompileDone, "Timer_CompileDone"}, {Timer_CompileDone, "Timer_CompileDone"},
}; };
for (int count =0; count < ItemList.size(); count++ ) { for (size_t count =0; count < ItemList.size(); count++ ) {
char Buffer[255]; char Buffer[255];
float CpuUsage = ((double)ItemList[count]->second / (double)TotalTime) * 100; double CpuUsage = ((double)ItemList[count]->second / (double)TotalTime) * 100;
if (CpuUsage <= 0.2) { continue; } if (CpuUsage <= 0.2) { continue; }
sprintf(Buffer,"Func 0x%08X",ItemList[count]->first); sprintf(Buffer,"Func 0x%08X",ItemList[count]->first);
for (int NameID = 0; NameID < (sizeof(TimerNames) / sizeof(TIMER_NAME)); NameID++) { for (int NameID = 0; NameID < (sizeof(TimerNames) / sizeof(TIMER_NAME)); NameID++) {

View File

@ -1 +1,97 @@
#include "stdafx.h" #include "stdafx.h"
CCodeBlock::CCodeBlock(DWORD VAddrEnter, BYTE * RecompPos, bool bDelaySlot) :
m_VAddrEnter(VAddrEnter),
m_VAddrFirst(VAddrEnter),
m_VAddrLast(VAddrEnter),
m_CompiledLocation(RecompPos),
m_NoOfSections(1),
m_EnterSection(this, VAddrEnter, 1),
m_bDelaySlot(bDelaySlot),
m_Test(1)
{
AnalyseBlock();
}
bool CCodeBlock::AnalyseBlock ( void )
{
if (bLinkBlocks())
{
if (!m_EnterSection.CreateSectionLinkage ()) { return false; }
m_EnterSection.DetermineLoop(NextTest(),NextTest(), m_EnterSection.m_SectionID);
while (m_EnterSection.FixConstants(NextTest())) {}
}
return true;
}
bool CCodeBlock::Compile()
{
if (m_bDelaySlot)
{
CPU_Message("====== Delay Block ======");
} else {
CPU_Message("====== Code Block ======");
}
CPU_Message("x86 code at: %X",CompiledLocation());
CPU_Message("Start of Block: %X",VAddrEnter() );
CPU_Message("No of Sections: %d",NoOfSections() );
CPU_Message("====== recompiled code ======");
if (m_bDelaySlot)
{
Pop(x86_EAX);
MoveX86regToVariable(x86_EAX,_PROGRAM_COUNTER,"_PROGRAM_COUNTER");
} else {
EnterCodeBlock();
}
if (m_bDelaySlot)
{
m_EnterSection.GenerateX86Code(m_EnterSection.m_Test + 1);
} else {
if (bLinkBlocks()) {
for (int i = 0; i < m_NoOfSections; i ++) {
m_EnterSection.DisplaySectionInformation(i + 1,m_EnterSection.m_Test + 1);
}
}
if (_SyncSystem) {
//if ((DWORD)BlockInfo.CompiledLocation == 0x60A7B73B) { X86BreakPoint(__FILE__,__LINE__); }
//MoveConstToVariable((DWORD)BlockInfo.CompiledLocation,&CurrentBlock,"CurrentBlock");
}
if (bLinkBlocks()) {
while (m_EnterSection.GenerateX86Code(NextTest()));
} else {
if (!m_EnterSection.GenerateX86Code(NextTest()))
{
return false;
}
}
}
CompileExitCode();
DWORD PAddr;
_TransVaddr->TranslateVaddr(VAddrFirst(),PAddr);
MD5(_MMU->Rdram() + PAddr,(VAddrLast() - VAddrFirst()) + 4).get_digest(m_Hash);
return true;
}
void CCodeBlock::CompileExitCode ( void )
{
for (EXIT_LIST::iterator ExitIter = m_ExitInfo.begin(); ExitIter != m_ExitInfo.end(); ExitIter++)
{
CPU_Message("");
CPU_Message(" $Exit_%d",ExitIter->ID);
SetJump32(ExitIter->JumpLoc,(DWORD *)m_RecompPos);
m_NextInstruction = ExitIter->NextInstruction;
m_EnterSection.CompileExit(-1, ExitIter->TargetPC,ExitIter->ExitRegSet,ExitIter->reason,true,NULL);
}
}
DWORD CCodeBlock::NextTest ( void )
{
m_Test += 1;
return m_Test;
}

View File

@ -12,7 +12,6 @@ public:
inline BYTE * CompiledLocation ( void ) const { return m_CompiledLocation; } inline BYTE * CompiledLocation ( void ) const { return m_CompiledLocation; }
inline int NoOfSections ( void ) const { return m_NoOfSections; } inline int NoOfSections ( void ) const { return m_NoOfSections; }
inline const CCodeSection & EnterSection ( void ) const { return m_EnterSection; } inline const CCodeSection & EnterSection ( void ) const { return m_EnterSection; }
inline DWORD NextTest ( void ) const { return m_EnterSection.m_Test + 1; }
inline bool bDelaySlot ( void ) const { return m_bDelaySlot; } inline bool bDelaySlot ( void ) const { return m_bDelaySlot; }
inline const MD5Digest & Hash ( void ) const { return m_Hash; } inline const MD5Digest & Hash ( void ) const { return m_Hash; }
@ -22,8 +21,10 @@ public:
inline void IncSectionCount ( void ) { m_NoOfSections += 1; } inline void IncSectionCount ( void ) { m_NoOfSections += 1; }
CCodeSection * ExistingSection ( DWORD Addr ) { return m_EnterSection.ExistingSection(Addr,NextTest()); } CCodeSection * ExistingSection ( DWORD Addr ) { return m_EnterSection.ExistingSection(Addr,NextTest()); }
bool SectionAccessible ( DWORD m_SectionID ) { return m_EnterSection.SectionAccessible(m_SectionID,NextTest()); }
EXIT_LIST m_ExitInfo; EXIT_LIST m_ExitInfo;
DWORD NextTest ( void );
private: private:
bool AnalyseBlock ( void ); bool AnalyseBlock ( void );
@ -36,5 +37,6 @@ private:
int m_NoOfSections; // The number of sections this block uses int m_NoOfSections; // The number of sections this block uses
bool m_bDelaySlot; bool m_bDelaySlot;
CCodeSection m_EnterSection; CCodeSection m_EnterSection;
DWORD m_Test;
MD5Digest m_Hash; MD5Digest m_Hash;
}; };

File diff suppressed because it is too large Load Diff

View File

@ -15,11 +15,12 @@ public:
bool CreateSectionLinkage ( void ); bool CreateSectionLinkage ( void );
bool GenerateX86Code ( DWORD Test ); bool GenerateX86Code ( DWORD Test );
void GenerateSectionLinkage ( void ); void GenerateSectionLinkage ( void );
void CompileSystemCheck ( DWORD TargetPC, const CRegInfo &RegSet ); void CompileExit ( DWORD JumpPC, DWORD TargetPC, CRegInfo &ExitRegSet, CExitInfo::EXIT_REASON reason, int CompileNow, void (*x86Jmp)(const char * Label, DWORD Value));
void CompileExit ( DWORD JumpPC, DWORD TargetPC, CRegInfo ExitRegSet, CExitInfo::EXIT_REASON reason, int CompileNow, void (*x86Jmp)(const char * Label, DWORD Value));
void DetermineLoop ( DWORD Test, DWORD Test2, DWORD TestID ); void DetermineLoop ( DWORD Test, DWORD Test2, DWORD TestID );
bool FixConstants ( DWORD Test ); bool FixConstants ( DWORD Test );
CCodeSection * ExistingSection ( DWORD Addr, DWORD Test ); CCodeSection * ExistingSection ( DWORD Addr, DWORD Test );
bool SectionAccessible ( DWORD SectionId, DWORD Test );
bool DisplaySectionInformation ( DWORD ID, DWORD Test );
/* Block Connection info */ /* Block Connection info */
SECTION_LIST m_ParentSection; SECTION_LIST m_ParentSection;
@ -48,9 +49,13 @@ public:
private: private:
void AddParent ( CCodeSection * Parent ); void AddParent ( CCodeSection * Parent );
void UnlinkParent ( CCodeSection * Parent, bool ContinueSection );
void InheritConstants ( void ); void InheritConstants ( void );
bool FillSectionInfo ( STEP_TYPE StartStepType ); bool FillSectionInfo ( STEP_TYPE StartStepType );
void TestRegConstantStates ( CRegInfo & Base, CRegInfo & Reg ); void TestRegConstantStates ( CRegInfo & Base, CRegInfo & Reg );
void SyncRegState ( const CRegInfo & SyncTo ); void SyncRegState ( const CRegInfo & SyncTo );
bool IsAllParentLoops ( CCodeSection * Parent, bool IgnoreIfCompiled, DWORD Test );
bool ParentContinue ( void );
bool InheritParentInfo ( void );
}; };

View File

@ -86,7 +86,8 @@ void CFunctionMap::CleanBuffers ( void )
void CFunctionMap::Reset ( void ) void CFunctionMap::Reset ( void )
{ {
bool bAllocate = m_FunctionTable != NULL; bool bAllocate = (_Recompiler->LookUpMode() == FuncFind_VirtualLookup && m_FunctionTable != NULL) ||
(_Recompiler->LookUpMode() == FuncFind_PhysicalLookup && m_JumpTable != NULL);
CleanBuffers(); CleanBuffers();
if (bAllocate) if (bAllocate)
{ {

View File

@ -4,6 +4,7 @@ public:
CJumpInfo(); CJumpInfo();
DWORD TargetPC; DWORD TargetPC;
DWORD JumpPC;
stdstr BranchLabel; stdstr BranchLabel;
DWORD * LinkLocation; DWORD * LinkLocation;
DWORD * LinkLocation2; DWORD * LinkLocation2;

View File

@ -109,6 +109,7 @@ void CRecompiler::RecompilerMain_VirtualTable ( void )
} }
} }
WriteTraceF(TraceError,"PROGRAM_COUNTER = %08X",PROGRAM_COUNTER);
table[TableEntry] = info; table[TableEntry] = info;
(info->Function())(); (info->Function())();
} }
@ -310,6 +311,7 @@ void CRecompiler::RecompilerMain_Lookup( void )
if (PhysicalAddr < RdramSize()) if (PhysicalAddr < RdramSize())
{ {
CCompiledFunc * info = JumpTable()[PhysicalAddr >> 2]; CCompiledFunc * info = JumpTable()[PhysicalAddr >> 2];
if (info == NULL) if (info == NULL)
{ {
info = CompilerCode(); info = CompilerCode();
@ -857,7 +859,7 @@ void CRecompiler::ClearRecompCode_Virt(DWORD Address, int length,REMOVE_REASON R
_MMU->UnProtectMemory(Address,Address+ 4); _MMU->UnProtectMemory(Address,Address+ 4);
} }
DWORD DataInBlock = 0x1000 - WriteStart; int DataInBlock = 0x1000 - WriteStart;
int DataToWrite = length < DataInBlock ? length : DataInBlock; int DataToWrite = length < DataInBlock ? length : DataInBlock;
int DataLeft = length - DataToWrite; int DataLeft = length - DataToWrite;

View File

@ -51,7 +51,6 @@ private:
// Compiling code // Compiling code
bool CreateSectionLinkage ( CCodeSection * Section ); bool CreateSectionLinkage ( CCodeSection * Section );
bool DisplaySectionInformation (CCodeSection * Section, DWORD ID, DWORD Test); bool DisplaySectionInformation (CCodeSection * Section, DWORD ID, DWORD Test);
bool InheritParentInfo ( CCodeSection * Section );
// Main loops for the different look up methods // Main loops for the different look up methods
void RecompilerMain_VirtualTable ( void ); void RecompilerMain_VirtualTable ( void );

View File

@ -43,7 +43,7 @@ bool CRecompMemory::AllocateMemory()
void CRecompMemory::CheckRecompMem ( void ) void CRecompMemory::CheckRecompMem ( void )
{ {
int Size = (int)((BYTE *)m_RecompPos - (BYTE *)m_RecompCode); DWORD Size = (DWORD)((BYTE *)m_RecompPos - (BYTE *)m_RecompCode);
if ((Size + 0x20000) < m_RecompSize) if ((Size + 0x20000) < m_RecompSize)
{ {
return; return;

File diff suppressed because it is too large Load Diff

View File

@ -190,6 +190,7 @@ protected:
static void CompileReadTLBMiss (int AddressReg, int LookUpReg ); static void CompileReadTLBMiss (int AddressReg, int LookUpReg );
static void CompileWriteTLBMiss (int AddressReg, int LookUpReg ); static void CompileWriteTLBMiss (int AddressReg, int LookUpReg );
static void UpdateCounters (CRegInfo & RegSet, bool CheckTimer, bool ClearValues = false ); static void UpdateCounters (CRegInfo & RegSet, bool CheckTimer, bool ClearValues = false );
static void CompileSystemCheck ( DWORD TargetPC, CRegInfo RegSet );
static void ChangeDefaultRoundingModel ( void ); static void ChangeDefaultRoundingModel ( void );

View File

@ -4,10 +4,12 @@ unsigned int CRegInfo::m_fpuControl = 0;
char *Format_Name[] = {"Unknown","dword","qword","float","double"}; char *Format_Name[] = {"Unknown","dword","qword","float","double"};
void CRegInfo::Initilize ( void ) void CRegInfo::Initilize ( bool b32bitCore )
{ {
int count; int count;
m_b32bitCore = b32bitCore;
MIPS_RegState[0] = STATE_CONST_32; MIPS_RegState[0] = STATE_CONST_32;
MIPS_RegVal[0].DW = 0; MIPS_RegVal[0].DW = 0;
RegMapLo[0] = x86_Unknown; RegMapLo[0] = x86_Unknown;
@ -429,22 +431,19 @@ CRegInfo::x86Reg CRegInfo::Map_MemoryStack ( x86Reg Reg, bool bMapRegister)
return Reg; return Reg;
} }
_Notify->BreakPoint(__FILE__,__LINE__);
#ifdef tofix
//move to a register/allocate register //move to a register/allocate register
UnMap_X86reg(Section, Reg); UnMap_X86reg(Reg);
if (CurrentMap >= 0) if (CurrentMap != x86_Unknown)
{ {
CPU_Message(" regcache: change allocation of Memory Stack from %s to %s",x86_Name(CurrentMap),x86_Name(Reg)); CPU_Message(" regcache: change allocation of Memory Stack from %s to %s",x86_Name(CurrentMap),x86_Name(Reg));
Section->GetX86Mapped(Reg) = CRegInfo::Stack_Mapped; SetX86Mapped(Reg, CRegInfo::Stack_Mapped);
Section->GetX86Mapped(CurrentMap) = CRegInfo::NotMapped; SetX86Mapped(CurrentMap,CRegInfo::NotMapped);
MoveX86RegToX86Reg(CurrentMap,Reg); MoveX86RegToX86Reg(CurrentMap,Reg);
} else { } else {
Section->GetX86Mapped(Reg) = CRegInfo::Stack_Mapped; SetX86Mapped(Reg,CRegInfo::Stack_Mapped);
CPU_Message(" regcache: allocate %s as Memory Stack",x86_Name(Reg)); CPU_Message(" regcache: allocate %s as Memory Stack",x86_Name(Reg));
MoveVariableToX86reg(g_MemoryStack,"MemoryStack",Reg); MoveVariableToX86reg(&_Recompiler->MemoryStackPos(),"MemoryStack",Reg);
} }
#endif
return Reg; return Reg;
} }
@ -539,6 +538,8 @@ void CRegInfo::Map_GPR_64bit ( int MipsReg, int MipsRegToLoad)
x86Hi = FreeX86Reg(); x86Hi = FreeX86Reg();
if (x86Hi < 0) { DisplayError("Map_GPR_64bit\n\nOut of registers"); return; } if (x86Hi < 0) { DisplayError("Map_GPR_64bit\n\nOut of registers"); return; }
SetX86Protected(x86Hi,TRUE); SetX86Protected(x86Hi,TRUE);
CPU_Message(" regcache: allocate %s to hi word of %s",x86_Name(x86Hi),CRegName::GPR[MipsReg]);
} else { } else {
x86Hi = MipsRegMapHi(MipsReg); x86Hi = MipsRegMapHi(MipsReg);
} }
@ -931,7 +932,7 @@ void CRegInfo::UnMap_GPR (DWORD Reg, bool WriteBackValue)
MoveX86regToVariable(MipsRegMapLo(Reg),&_GPR[Reg].UW[0],CRegName::GPR_Lo[Reg]); MoveX86regToVariable(MipsRegMapLo(Reg),&_GPR[Reg].UW[0],CRegName::GPR_Lo[Reg]);
if (Is64Bit(Reg)) { if (Is64Bit(Reg)) {
MoveX86regToVariable(MipsRegMapHi(Reg),&_GPR[Reg].UW[1],CRegName::GPR_Hi[Reg]); MoveX86regToVariable(MipsRegMapHi(Reg),&_GPR[Reg].UW[1],CRegName::GPR_Hi[Reg]);
} else { } else if (!m_b32bitCore) {
if (IsSigned(Reg)) { if (IsSigned(Reg)) {
ShiftRightSignImmed(MipsRegMapLo(Reg),31); ShiftRightSignImmed(MipsRegMapLo(Reg),31);
MoveX86regToVariable(MipsRegMapLo(Reg),&_GPR[Reg].UW[1],CRegName::GPR_Hi[Reg]); MoveX86regToVariable(MipsRegMapLo(Reg),&_GPR[Reg].UW[1],CRegName::GPR_Hi[Reg]);
@ -1013,19 +1014,17 @@ bool CRegInfo::UnMap_X86reg ( CX86Ops::x86Reg Reg )
return FALSE; return FALSE;
} }
void CRegInfo::WriteBackRegisters (void) void CRegInfo::WriteBackRegisters ()
{ {
UnMap_AllFPRs(); UnMap_AllFPRs();
int count; int count;
BOOL bEdiZero = FALSE; BOOL bEdiZero = FALSE;
BOOL bEsiSign = FALSE; BOOL bEsiSign = FALSE;
/*** coming soon ***/
BOOL bEaxGprLo = FALSE;
BOOL bEbxGprHi = FALSE;
for (count = 0; count < 10; count ++) { SetX86Protected((CX86Ops::x86Reg)count,FALSE); } int X86RegCount = sizeof(x86_Registers)/ sizeof(x86_Registers[0]);
for (count = 0; count < 10; count ++) { UnMap_X86reg ((CX86Ops::x86Reg)count); } for (int i = 0; i < X86RegCount; i++) { SetX86Protected(x86_Registers[i],FALSE); }
for (int i = 0; i < X86RegCount; i++) { UnMap_X86reg(x86_Registers[i]); }
/*************************************/ /*************************************/
@ -1033,6 +1032,8 @@ void CRegInfo::WriteBackRegisters (void)
switch (MipsRegState(count)) { switch (MipsRegState(count)) {
case CRegInfo::STATE_UNKNOWN: break; case CRegInfo::STATE_UNKNOWN: break;
case CRegInfo::STATE_CONST_32: case CRegInfo::STATE_CONST_32:
if (!m_b32bitCore)
{
if (!bEdiZero && (!MipsRegLo(count) || !(MipsRegLo(count) & 0x80000000))) { if (!bEdiZero && (!MipsRegLo(count) || !(MipsRegLo(count) & 0x80000000))) {
XorX86RegToX86Reg(x86_EDI, x86_EDI); XorX86RegToX86Reg(x86_EDI, x86_EDI);
bEdiZero = TRUE; bEdiZero = TRUE;
@ -1041,16 +1042,32 @@ void CRegInfo::WriteBackRegisters (void)
MoveConstToX86reg(0xFFFFFFFF, x86_ESI); MoveConstToX86reg(0xFFFFFFFF, x86_ESI);
bEsiSign = TRUE; bEsiSign = TRUE;
} }
if ((MipsRegLo(count) & 0x80000000) != 0) { if ((MipsRegLo(count) & 0x80000000) != 0) {
MoveX86regToVariable(x86_ESI,&_GPR[count].UW[1],CRegName::GPR_Hi[count]); MoveX86regToVariable(x86_ESI,&_GPR[count].UW[1],CRegName::GPR_Hi[count]);
} else { } else {
MoveX86regToVariable(x86_EDI,&_GPR[count].UW[1],CRegName::GPR_Hi[count]); MoveX86regToVariable(x86_EDI,&_GPR[count].UW[1],CRegName::GPR_Hi[count]);
} }
}
if (MipsRegLo(count) == 0) { if (MipsRegLo(count) == 0) {
if (m_b32bitCore)
{
if (!bEdiZero)
{
XorX86RegToX86Reg(x86_EDI, x86_EDI);
bEdiZero = TRUE;
}
}
MoveX86regToVariable(x86_EDI,&_GPR[count].UW[0],CRegName::GPR_Lo[count]); MoveX86regToVariable(x86_EDI,&_GPR[count].UW[0],CRegName::GPR_Lo[count]);
} else if (MipsRegLo(count) == 0xFFFFFFFF) { } else if (MipsRegLo(count) == 0xFFFFFFFF) {
if (m_b32bitCore)
{
if (!bEsiSign)
{
MoveConstToX86reg(0xFFFFFFFF, x86_ESI);
bEsiSign = TRUE;
}
}
MoveX86regToVariable(x86_ESI,&_GPR[count].UW[0],CRegName::GPR_Lo[count]); MoveX86regToVariable(x86_ESI,&_GPR[count].UW[0],CRegName::GPR_Lo[count]);
} else } else
MoveConstToVariable(MipsRegLo(count),&_GPR[count].UW[0],CRegName::GPR_Lo[count]); MoveConstToVariable(MipsRegLo(count),&_GPR[count].UW[0],CRegName::GPR_Lo[count]);

View File

@ -49,7 +49,7 @@ public:
static REG_STATE ConstantsType ( __int64 Value ); static REG_STATE ConstantsType ( __int64 Value );
void Initilize ( void ); void Initilize ( bool b32bitCore );
void FixRoundModel ( FPU_ROUND RoundMethod ); void FixRoundModel ( FPU_ROUND RoundMethod );
void ChangeFPURegFormat ( int Reg, FPU_STATE OldFormat, FPU_STATE NewFormat, FPU_ROUND RoundingModel ); void ChangeFPURegFormat ( int Reg, FPU_STATE OldFormat, FPU_STATE NewFormat, FPU_ROUND RoundingModel );
@ -155,6 +155,7 @@ private:
bool Fpu_Used; bool Fpu_Used;
FPU_ROUND m_RoundingModel; FPU_ROUND m_RoundingModel;
bool m_b32bitCore;
bool compare(const CRegInfo& right) const; bool compare(const CRegInfo& right) const;
const char * RoundingModelName ( FPU_ROUND RoundType ); const char * RoundingModelName ( FPU_ROUND RoundType );

View File

@ -1,103 +1,9 @@
#include "stdafx.h" #include "stdafx.h"
CCodeBlock::CCodeBlock(DWORD VAddrEnter, BYTE * RecompPos, bool bDelaySlot) :
m_VAddrEnter(VAddrEnter),
m_VAddrFirst(VAddrEnter),
m_VAddrLast(VAddrEnter),
m_CompiledLocation(RecompPos),
m_NoOfSections(1),
m_EnterSection(this, VAddrEnter, 1),
m_bDelaySlot(bDelaySlot)
{
AnalyseBlock();
}
bool CCodeBlock::AnalyseBlock ( void )
{
if (bLinkBlocks())
{
if (!m_EnterSection.CreateSectionLinkage ()) { return false; }
m_EnterSection.DetermineLoop(NextTest(),NextTest(), m_EnterSection.m_SectionID);
while (m_EnterSection.FixConstants(NextTest())) {}
}
return true;
}
bool CCodeBlock::Compile()
{
if (m_bDelaySlot)
{
CPU_Message("====== Delay Block ======");
} else {
CPU_Message("====== Code Block ======");
}
CPU_Message("x86 code at: %X",CompiledLocation());
CPU_Message("Start of Block: %X",VAddrEnter() );
CPU_Message("No of Sections: %d",NoOfSections() );
CPU_Message("====== recompiled code ======");
if (m_bDelaySlot)
{
Pop(x86_EAX);
MoveX86regToVariable(x86_EAX,_PROGRAM_COUNTER,"_PROGRAM_COUNTER");
} else {
EnterCodeBlock();
}
if (m_bDelaySlot)
{
m_EnterSection.GenerateX86Code(m_EnterSection.m_Test + 1);
} else {
#ifdef tofix
if (bLinkBlocks()) {
for (int count = 0; count < BlockInfo.NoOfSections; count ++) {
DisplaySectionInformation(&BlockInfo.ParentSection,count + 1,CBlockSection::GetNewTestValue());
}
}
if (m_SyncSystem) {
//if ((DWORD)BlockInfo.CompiledLocation == 0x60A7B73B) { X86BreakPoint(__FILE__,__LINE__); }
//MoveConstToVariable((DWORD)BlockInfo.CompiledLocation,&CurrentBlock,"CurrentBlock");
}
#endif
#ifdef tofix
if (bLinkBlocks()) {
while (GenerateX86Code(BlockInfo,&BlockInfo.ParentSection,CBlockSection::GetNewTestValue()));
} else {
#endif
if (!m_EnterSection.GenerateX86Code(m_EnterSection.m_Test + 1))
{
return false;
}
#ifdef tofix
}
#endif
}
CompileExitCode();
DWORD PAddr;
_TransVaddr->TranslateVaddr(VAddrFirst(),PAddr);
MD5(_MMU->Rdram() + PAddr,(VAddrLast() - VAddrFirst()) + 4).get_digest(m_Hash);
return true;
}
void CCodeBlock::CompileExitCode ( void )
{
for (EXIT_LIST::iterator ExitIter = m_ExitInfo.begin(); ExitIter != m_ExitInfo.end(); ExitIter++)
{
CPU_Message("");
CPU_Message(" $Exit_%d",ExitIter->ID);
SetJump32(ExitIter->JumpLoc,(DWORD *)m_RecompPos);
m_NextInstruction = ExitIter->NextInstruction;
m_EnterSection.CompileExit(-1, ExitIter->TargetPC,ExitIter->ExitRegSet,ExitIter->reason,true,NULL);
}
}
CJumpInfo::CJumpInfo() CJumpInfo::CJumpInfo()
{ {
TargetPC = (DWORD)-1; TargetPC = (DWORD)-1;
JumpPC = (DWORD)-1;
BranchLabel = ""; BranchLabel = "";
LinkLocation = NULL; LinkLocation = NULL;
LinkLocation2 = NULL; LinkLocation2 = NULL;

View File

@ -10,6 +10,18 @@ char CX86Ops::m_fpupop[2][2] = {
"", "p" "", "p"
}; };
CX86Ops::x86Reg CX86Ops::x86_Registers[8] =
{
x86_ESI,
x86_EDI,
x86_EBX,
x86_ECX,
x86_EDX,
x86_EAX,
x86_EBP,
x86_ESP
};
/************************************************************************** /**************************************************************************
* Logging Functions * * Logging Functions *
**************************************************************************/ **************************************************************************/
@ -3588,7 +3600,12 @@ void CX86Ops::SetJump32(DWORD * Loc, DWORD * JumpLoc)
void CX86Ops::SetJump8(BYTE * Loc, BYTE * JumpLoc) void CX86Ops::SetJump8(BYTE * Loc, BYTE * JumpLoc)
{ {
*Loc = (BYTE )((BYTE)JumpLoc - ((BYTE )Loc + 1)); DWORD diffrence = (DWORD)(((DWORD)JumpLoc) - (((DWORD)(Loc)) + 1));
if (diffrence > 255)
{
_Notify->BreakPoint(__FILE__,__LINE__);
}
*Loc = (BYTE )diffrence;
} }

View File

@ -38,6 +38,7 @@ public:
Multip_x8 = 8 Multip_x8 = 8
}; };
static x86Reg x86_Registers[8];
static const char * x86_Name ( x86Reg Reg ); static const char * x86_Name ( x86Reg Reg );
static const char * x86_ByteName ( x86Reg Reg ); static const char * x86_ByteName ( x86Reg Reg );
static const char * x86_HalfName ( x86Reg Reg ); static const char * x86_HalfName ( x86Reg Reg );

View File

@ -66,13 +66,13 @@ bool CSpeedLimitor::Timer_Process (DWORD * FrameRate ) {
void CSpeedLimitor::IncreaeSpeed ( int Percent ) void CSpeedLimitor::IncreaeSpeed ( int Percent )
{ {
m_Speed += m_BaseSpeed * ((float)Percent / 100); m_Speed += (DWORD)(m_BaseSpeed * ((float)Percent / 100));
FixSpeedRatio(); FixSpeedRatio();
} }
void CSpeedLimitor::DecreaeSpeed ( int Percent ) void CSpeedLimitor::DecreaeSpeed ( int Percent )
{ {
ULONG Unit = m_BaseSpeed * ((float)Percent / 100); ULONG Unit = (ULONG)(m_BaseSpeed * ((float)Percent / 100));
if (m_Speed > Unit) if (m_Speed > Unit)
{ {
m_Speed -= Unit; m_Speed -= Unit;

View File

@ -34,10 +34,10 @@ CPlugins::~CPlugins (void) {
void CPlugins::PluginChanged ( CPlugins * _this ) void CPlugins::PluginChanged ( CPlugins * _this )
{ {
bool bGfxChange = stricmp(_this->m_GfxFile.c_str(),_Settings->LoadString(Game_Plugin_Gfx).c_str()) != 0; bool bGfxChange = _stricmp(_this->m_GfxFile.c_str(),_Settings->LoadString(Game_Plugin_Gfx).c_str()) != 0;
bool bAudioChange = stricmp(_this->m_AudioFile.c_str(),_Settings->LoadString(Game_Plugin_Audio).c_str()) != 0; bool bAudioChange = _stricmp(_this->m_AudioFile.c_str(),_Settings->LoadString(Game_Plugin_Audio).c_str()) != 0;
bool bRspChange = stricmp(_this->m_RSPFile.c_str(),_Settings->LoadString(Game_Plugin_RSP).c_str()) != 0; bool bRspChange = _stricmp(_this->m_RSPFile.c_str(),_Settings->LoadString(Game_Plugin_RSP).c_str()) != 0;
bool bContChange = stricmp(_this->m_ControlFile.c_str(),_Settings->LoadString(Game_Plugin_Controller).c_str()) != 0; bool bContChange = _stricmp(_this->m_ControlFile.c_str(),_Settings->LoadString(Game_Plugin_Controller).c_str()) != 0;
if ( bGfxChange || bAudioChange || bRspChange || bContChange ) if ( bGfxChange || bAudioChange || bRspChange || bContChange )
{ {

View File

@ -20,7 +20,7 @@ int CPluginList::GetPluginCount() const
const CPluginList::PLUGIN * CPluginList::GetPluginInfo ( int indx ) const const CPluginList::PLUGIN * CPluginList::GetPluginInfo ( int indx ) const
{ {
if (indx < 0 || indx >= m_PluginList.size()) if (indx < 0 || indx >= (int)m_PluginList.size())
{ {
return NULL; return NULL;
} }

File diff suppressed because it is too large Load Diff

View File

@ -45,6 +45,7 @@ enum SettingID {
Rdb_CounterFactor, Rdb_CounterFactor,
Rdb_UseTlb, Rdb_UseTlb,
Rdb_DelaySi, Rdb_DelaySi,
Rdb_32Bit,
Rdb_FastSP, Rdb_FastSP,
Rdb_Status, Rdb_Status,
Rdb_NotesCore, Rdb_NotesCore,
@ -88,6 +89,7 @@ enum SettingID {
Game_LastSaveSlot, Game_LastSaveSlot,
Game_FixedAudio, Game_FixedAudio,
Game_SyncViaAudio, Game_SyncViaAudio,
Game_32Bit,
Game_SMM_Cache, Game_SMM_Cache,
Game_SMM_Protect, Game_SMM_Protect,
Game_SMM_ValidFunc, Game_SMM_ValidFunc,

View File

@ -11,6 +11,7 @@ bool CN64SystemSettings::m_bFixedAudio;
bool CN64SystemSettings::m_bSyncToAudio; bool CN64SystemSettings::m_bSyncToAudio;
bool CN64SystemSettings::m_bDisplayFrameRate; bool CN64SystemSettings::m_bDisplayFrameRate;
bool CN64SystemSettings::m_bFastSP; bool CN64SystemSettings::m_bFastSP;
bool CN64SystemSettings::m_b32Bit;
DWORD CN64SystemSettings::m_ViRefreshRate; DWORD CN64SystemSettings::m_ViRefreshRate;
@ -30,6 +31,7 @@ CN64SystemSettings::CN64SystemSettings()
_Settings->RegisterChangeCB(Game_FixedAudio,NULL,RefreshSettings); _Settings->RegisterChangeCB(Game_FixedAudio,NULL,RefreshSettings);
_Settings->RegisterChangeCB(Game_SyncViaAudio,NULL,RefreshSettings); _Settings->RegisterChangeCB(Game_SyncViaAudio,NULL,RefreshSettings);
_Settings->RegisterChangeCB(Game_32Bit,NULL,RefreshSettings);
_Settings->RegisterChangeCB(Game_FastSP,NULL,RefreshSettings); _Settings->RegisterChangeCB(Game_FastSP,NULL,RefreshSettings);
_Settings->RegisterChangeCB(Game_ViRefreshRate,NULL,RefreshSettings); _Settings->RegisterChangeCB(Game_ViRefreshRate,NULL,RefreshSettings);
RefreshSettings(NULL); RefreshSettings(NULL);
@ -52,6 +54,7 @@ CN64SystemSettings::~CN64SystemSettings()
_Settings->UnregisterChangeCB(Game_FixedAudio,NULL,RefreshSettings); _Settings->UnregisterChangeCB(Game_FixedAudio,NULL,RefreshSettings);
_Settings->UnregisterChangeCB(Game_SyncViaAudio,NULL,RefreshSettings); _Settings->UnregisterChangeCB(Game_SyncViaAudio,NULL,RefreshSettings);
_Settings->UnregisterChangeCB(Game_32Bit,NULL,RefreshSettings);
_Settings->UnregisterChangeCB(Game_FastSP,NULL,RefreshSettings); _Settings->UnregisterChangeCB(Game_FastSP,NULL,RefreshSettings);
_Settings->UnregisterChangeCB(Game_ViRefreshRate,NULL,RefreshSettings); _Settings->UnregisterChangeCB(Game_ViRefreshRate,NULL,RefreshSettings);
} }
@ -69,6 +72,7 @@ void CN64SystemSettings::RefreshSettings(void *)
m_bFixedAudio = _Settings->LoadBool(Game_FixedAudio); m_bFixedAudio = _Settings->LoadBool(Game_FixedAudio);
m_bSyncToAudio = m_bFixedAudio ? _Settings->LoadBool(Game_SyncViaAudio) : false; m_bSyncToAudio = m_bFixedAudio ? _Settings->LoadBool(Game_SyncViaAudio) : false;
m_b32Bit = _Settings->LoadBool(Game_32Bit);
m_bFastSP = _Settings->LoadBool(Game_FastSP); m_bFastSP = _Settings->LoadBool(Game_FastSP);
m_ViRefreshRate = _Settings->LoadDword(Game_ViRefreshRate); m_ViRefreshRate = _Settings->LoadDword(Game_ViRefreshRate);
} }

View File

@ -14,6 +14,7 @@ protected:
inline bool bLimitFPS ( void ) const { return m_bLimitFPS; } inline bool bLimitFPS ( void ) const { return m_bLimitFPS; }
inline bool bFixedAudio ( void ) const { return m_bFixedAudio; } inline bool bFixedAudio ( void ) const { return m_bFixedAudio; }
inline bool bSyncToAudio ( void ) const { return m_bSyncToAudio; } inline bool bSyncToAudio ( void ) const { return m_bSyncToAudio; }
inline bool b32BitCore ( void ) const { return m_b32Bit; }
inline bool bFastSP ( void ) const { return m_bFastSP; } inline bool bFastSP ( void ) const { return m_bFastSP; }
inline DWORD ViRefreshRate ( void ) const { return m_ViRefreshRate; } inline DWORD ViRefreshRate ( void ) const { return m_ViRefreshRate; }
@ -29,6 +30,7 @@ private:
static bool m_bSyncToAudio; static bool m_bSyncToAudio;
static bool m_bDisplayFrameRate; static bool m_bDisplayFrameRate;
static bool m_bFastSP; static bool m_bFastSP;
static bool m_b32Bit;
static DWORD m_ViRefreshRate; static DWORD m_ViRefreshRate;
static int m_RefCount; static int m_RefCount;

View File

@ -9,6 +9,7 @@ bool CRecompilerSettings::m_bSMM_TLB;
bool CRecompilerSettings::m_bProfiling; bool CRecompilerSettings::m_bProfiling;
bool CRecompilerSettings::m_bRomInMemory; bool CRecompilerSettings::m_bRomInMemory;
bool CRecompilerSettings::m_bFastSP; bool CRecompilerSettings::m_bFastSP;
bool CRecompilerSettings::m_b32Bit;
bool CRecompilerSettings::m_RegCaching; bool CRecompilerSettings::m_RegCaching;
bool CRecompilerSettings::m_bLinkBlocks; bool CRecompilerSettings::m_bLinkBlocks;
DWORD CRecompilerSettings::m_RdramSize; DWORD CRecompilerSettings::m_RdramSize;
@ -30,6 +31,7 @@ CRecompilerSettings::CRecompilerSettings()
_Settings->RegisterChangeCB(Debugger_ShowRecompMemSize,this,(CSettings::SettingChangedFunc)StaticRefreshSettings); _Settings->RegisterChangeCB(Debugger_ShowRecompMemSize,this,(CSettings::SettingChangedFunc)StaticRefreshSettings);
_Settings->RegisterChangeCB(Debugger_ProfileCode,this,(CSettings::SettingChangedFunc)StaticRefreshSettings); _Settings->RegisterChangeCB(Debugger_ProfileCode,this,(CSettings::SettingChangedFunc)StaticRefreshSettings);
_Settings->RegisterChangeCB(Game_LoadRomToMemory,this,(CSettings::SettingChangedFunc)StaticRefreshSettings); _Settings->RegisterChangeCB(Game_LoadRomToMemory,this,(CSettings::SettingChangedFunc)StaticRefreshSettings);
_Settings->RegisterChangeCB(Game_32Bit,this,(CSettings::SettingChangedFunc)StaticRefreshSettings);
_Settings->RegisterChangeCB(Game_FastSP,this,(CSettings::SettingChangedFunc)StaticRefreshSettings); _Settings->RegisterChangeCB(Game_FastSP,this,(CSettings::SettingChangedFunc)StaticRefreshSettings);
RefreshSettings(); RefreshSettings();
@ -50,6 +52,7 @@ CRecompilerSettings::~CRecompilerSettings()
_Settings->UnregisterChangeCB(Debugger_ShowRecompMemSize,this,(CSettings::SettingChangedFunc)StaticRefreshSettings); _Settings->UnregisterChangeCB(Debugger_ShowRecompMemSize,this,(CSettings::SettingChangedFunc)StaticRefreshSettings);
_Settings->UnregisterChangeCB(Debugger_ProfileCode,this,(CSettings::SettingChangedFunc)StaticRefreshSettings); _Settings->UnregisterChangeCB(Debugger_ProfileCode,this,(CSettings::SettingChangedFunc)StaticRefreshSettings);
_Settings->UnregisterChangeCB(Game_LoadRomToMemory,this,(CSettings::SettingChangedFunc)StaticRefreshSettings); _Settings->UnregisterChangeCB(Game_LoadRomToMemory,this,(CSettings::SettingChangedFunc)StaticRefreshSettings);
_Settings->UnregisterChangeCB(Game_32Bit,this,(CSettings::SettingChangedFunc)StaticRefreshSettings);
_Settings->UnregisterChangeCB(Game_FastSP,this,(CSettings::SettingChangedFunc)StaticRefreshSettings); _Settings->UnregisterChangeCB(Game_FastSP,this,(CSettings::SettingChangedFunc)StaticRefreshSettings);
} }
@ -64,6 +67,7 @@ void CRecompilerSettings::RefreshSettings()
m_bProfiling = _Settings->LoadBool(Debugger_ProfileCode); m_bProfiling = _Settings->LoadBool(Debugger_ProfileCode);
m_bRomInMemory = _Settings->LoadBool(Game_LoadRomToMemory); m_bRomInMemory = _Settings->LoadBool(Game_LoadRomToMemory);
m_bFastSP = _Settings->LoadBool(Game_FastSP); m_bFastSP = _Settings->LoadBool(Game_FastSP);
m_b32Bit = _Settings->LoadBool(Game_32Bit);
m_RegCaching = _Settings->LoadBool(Game_RegCache); m_RegCaching = _Settings->LoadBool(Game_RegCache);
m_bLinkBlocks = _Settings->LoadBool(Game_BlockLinking); m_bLinkBlocks = _Settings->LoadBool(Game_BlockLinking);

View File

@ -20,6 +20,7 @@ class CRecompilerSettings
static bool m_bProfiling; static bool m_bProfiling;
static bool m_bRomInMemory; static bool m_bRomInMemory;
static bool m_bFastSP; static bool m_bFastSP;
static bool m_b32Bit;
static bool m_RegCaching; static bool m_RegCaching;
static bool m_bLinkBlocks; static bool m_bLinkBlocks;
@ -43,6 +44,7 @@ public:
static bool bRegCaching ( void ) { return m_RegCaching; } static bool bRegCaching ( void ) { return m_RegCaching; }
static bool bLinkBlocks ( void ) { return m_bLinkBlocks; } static bool bLinkBlocks ( void ) { return m_bLinkBlocks; }
static bool bFastSP ( void ) { return m_bFastSP; } static bool bFastSP ( void ) { return m_bFastSP; }
static bool b32BitCore ( void ) { return m_b32Bit; }
static DWORD RdramSize ( void ) { return m_RdramSize; } static DWORD RdramSize ( void ) { return m_RdramSize; }
static DWORD CountPerOp ( void ) { return m_CountPerOp; } static DWORD CountPerOp ( void ) { return m_CountPerOp; }
static FUNC_LOOKUP_METHOD LookUpMode ( void ) { return (FUNC_LOOKUP_METHOD)m_LookUpMode; } static FUNC_LOOKUP_METHOD LookUpMode ( void ) { return (FUNC_LOOKUP_METHOD)m_LookUpMode; }

View File

@ -102,6 +102,7 @@ void CSettings::AddHowToHandleSetting ()
AddHandler(Rdb_CounterFactor, new CSettingTypeRomDatabase("Counter Factor",2)); AddHandler(Rdb_CounterFactor, new CSettingTypeRomDatabase("Counter Factor",2));
AddHandler(Rdb_UseTlb, new CSettingTypeRDBYesNo("Use TLB",true)); AddHandler(Rdb_UseTlb, new CSettingTypeRDBYesNo("Use TLB",true));
AddHandler(Rdb_DelaySi, new CSettingTypeRDBYesNo("Delay SI",false)); AddHandler(Rdb_DelaySi, new CSettingTypeRDBYesNo("Delay SI",false));
AddHandler(Rdb_32Bit, new CSettingTypeRDBYesNo("32bit",true));
AddHandler(Rdb_FastSP, new CSettingTypeRDBYesNo("Fast SP",true)); AddHandler(Rdb_FastSP, new CSettingTypeRDBYesNo("Fast SP",true));
AddHandler(Rdb_Status, new CSettingTypeRomDatabase("Status","Unknown")); AddHandler(Rdb_Status, new CSettingTypeRomDatabase("Status","Unknown"));
AddHandler(Rdb_NotesCore, new CSettingTypeRomDatabase("Core Note","")); AddHandler(Rdb_NotesCore, new CSettingTypeRomDatabase("Core Note",""));
@ -148,6 +149,7 @@ void CSettings::AddHowToHandleSetting ()
AddHandler(Game_UseTlb, new CSettingTypeGame("Use TLB",Rdb_UseTlb)); AddHandler(Game_UseTlb, new CSettingTypeGame("Use TLB",Rdb_UseTlb));
AddHandler(Game_DelaySI, new CSettingTypeGame("Delay SI",Rdb_DelaySi)); AddHandler(Game_DelaySI, new CSettingTypeGame("Delay SI",Rdb_DelaySi));
AddHandler(Game_RspAudioSignal, new CSettingTypeGame("Audio Signal",Rdb_RspAudioSignal)); AddHandler(Game_RspAudioSignal, new CSettingTypeGame("Audio Signal",Rdb_RspAudioSignal));
AddHandler(Game_32Bit, new CSettingTypeGame("32bit",Rdb_32Bit));
AddHandler(Game_FastSP, new CSettingTypeGame("SP Hack",Rdb_FastSP)); AddHandler(Game_FastSP, new CSettingTypeGame("SP Hack",Rdb_FastSP));
AddHandler(Game_CurrentSaveState, new CSettingTypeTempNumber(0)); AddHandler(Game_CurrentSaveState, new CSettingTypeTempNumber(0));
AddHandler(Game_SyncViaAudio, new CSettingTypeGame("Sync Audio",Rdb_SyncViaAudio)); AddHandler(Game_SyncViaAudio, new CSettingTypeGame("Sync Audio",Rdb_SyncViaAudio));

View File

@ -189,14 +189,14 @@ int CRomBrowser::CalcSortPosition (DWORD lParam)
} }
} }
Start = (float)Right; Start = (int)((float)Right);
//Find new end //Find new end
Left = (float)TestPos; Left = (float)TestPos;
Right = End; Right = (float)End;
while (Left < Right) while (Left < Right)
{ {
int NewTestPos = ceil((Left + Right) / 2); int NewTestPos = (int)ceil((Left + Right) / 2);
if (LastTestPos == NewTestPos) if (LastTestPos == NewTestPos)
{ {
NewTestPos -= 1; NewTestPos -= 1;
@ -216,11 +216,11 @@ int CRomBrowser::CalcSortPosition (DWORD lParam)
{ {
break; break;
} }
Left = NewTestPos; Left = (float)NewTestPos;
} }
if (Result < 0) if (Result < 0)
{ {
Right = NewTestPos; Right = (float)NewTestPos;
} }
} }
@ -368,7 +368,7 @@ void CRomBrowser::CreateRomListControl (void) {
} }
void CRomBrowser::DeallocateBrushs (void) { void CRomBrowser::DeallocateBrushs (void) {
for (int count = 0; count < m_RomInfo.size(); count++) { for (size_t count = 0; count < m_RomInfo.size(); count++) {
if (m_RomInfo[count].SelColor == -1) { if (m_RomInfo[count].SelColor == -1) {
continue; continue;
} }
@ -754,7 +754,7 @@ void CRomBrowser::HighLightLastRom(void) {
if (!ListView_GetItem((HWND)m_hRomList, &lvItem)) { return; } if (!ListView_GetItem((HWND)m_hRomList, &lvItem)) { return; }
//Get the rom info for that item //Get the rom info for that item
if (lvItem.lParam < 0 || lvItem.lParam >= m_RomInfo.size()) if (lvItem.lParam < 0 || lvItem.lParam >= (LPARAM)m_RomInfo.size())
{ {
return; return;
} }
@ -1057,7 +1057,8 @@ void CRomBrowser::ResetRomBrowserColomuns (void) {
} }
void CRomBrowser::ResizeRomList (WORD nWidth, WORD nHeight) { void CRomBrowser::ResizeRomList (WORD nWidth, WORD nHeight) {
if (RomBrowserVisible()) { if (RomBrowserVisible())
{
if (_Settings->LoadDword(RomBrowser_Maximized) == 0 && nHeight != 0) { if (_Settings->LoadDword(RomBrowser_Maximized) == 0 && nHeight != 0) {
_Settings->SaveDword(RomBrowser_Width,nWidth); _Settings->SaveDword(RomBrowser_Width,nWidth);
_Settings->SaveDword(RomBrowser_Height,nHeight); _Settings->SaveDword(RomBrowser_Height,nHeight);
@ -1175,7 +1176,7 @@ bool CRomBrowser::RomListNotify(int idCtrl, DWORD pnmh) {
void CRomBrowser::RomList_ColoumnSortList(DWORD pnmh) { void CRomBrowser::RomList_ColoumnSortList(DWORD pnmh) {
LPNMLISTVIEW pnmv = (LPNMLISTVIEW)pnmh; LPNMLISTVIEW pnmv = (LPNMLISTVIEW)pnmh;
int index; size_t index;
for (index = 0; index < m_Fields.size(); index++) { for (index = 0; index < m_Fields.size(); index++) {
if (m_Fields[index].Pos() == pnmv->iSubItem) { break; } if (m_Fields[index].Pos() == pnmv->iSubItem) { break; }
@ -1417,7 +1418,7 @@ void CRomBrowser::RomList_SortList(void) {
for (int count = NoOfSortKeys; count >= 0; count --) { for (int count = NoOfSortKeys; count >= 0; count --) {
stdstr SortFieldName = _Settings->LoadStringIndex(RomBrowser_SortFieldIndex,count); stdstr SortFieldName = _Settings->LoadStringIndex(RomBrowser_SortFieldIndex,count);
int index; size_t index;
for (index = 0; index < m_Fields.size(); index++) { for (index = 0; index < m_Fields.size(); index++) {
if (_stricmp(m_Fields[index].Name(),SortFieldName.c_str()) == 0) { break; } if (_stricmp(m_Fields[index].Name(),SortFieldName.c_str()) == 0) { break; }
} }
@ -1473,7 +1474,7 @@ void CRomBrowser::SaveRomListColoumnInfo(void) {
lvColumn.mask = LVCF_WIDTH; lvColumn.mask = LVCF_WIDTH;
for (int Coloumn = 0;ListView_GetColumn((HWND)m_hRomList,Coloumn,&lvColumn); Coloumn++) { for (int Coloumn = 0;ListView_GetColumn((HWND)m_hRomList,Coloumn,&lvColumn); Coloumn++) {
int index; size_t index;
bool bFound = false; bool bFound = false;
for (index = 0; index < m_Fields.size(); index++) for (index = 0; index < m_Fields.size(); index++)
{ {
@ -1606,7 +1607,7 @@ void CRomBrowser::ShowRomList (void) {
RECT rcWindow; RECT rcWindow;
GetClientRect((HWND)m_MainWindow,&rcWindow); GetClientRect((HWND)m_MainWindow,&rcWindow);
ResizeRomList(rcWindow.right,rcWindow.bottom); ResizeRomList((WORD)rcWindow.right,(WORD)rcWindow.bottom);
InvalidateRect((HWND)m_hRomList,NULL,TRUE); InvalidateRect((HWND)m_hRomList,NULL,TRUE);

View File

@ -9,6 +9,7 @@ CGameGeneralPage::CGameGeneralPage (HWND hParent, const RECT & rcDispay )
return; return;
} }
AddModCheckBox(GetDlgItem(IDC_ROM_32BIT),Game_32Bit);
AddModCheckBox(GetDlgItem(IDC_SYNC_AUDIO),Game_SyncViaAudio); AddModCheckBox(GetDlgItem(IDC_SYNC_AUDIO),Game_SyncViaAudio);
AddModCheckBox(GetDlgItem(IDC_ROM_FIXEDAUDIO),Game_FixedAudio); AddModCheckBox(GetDlgItem(IDC_ROM_FIXEDAUDIO),Game_FixedAudio);
AddModCheckBox(GetDlgItem(IDC_USE_TLB),Game_UseTlb); AddModCheckBox(GetDlgItem(IDC_USE_TLB),Game_UseTlb);

View File

@ -12,6 +12,7 @@ class CGameGeneralPage :
COMMAND_HANDLER_EX(IDC_RDRAM_SIZE,LBN_SELCHANGE,ComboBoxChanged) COMMAND_HANDLER_EX(IDC_RDRAM_SIZE,LBN_SELCHANGE,ComboBoxChanged)
COMMAND_HANDLER_EX(IDC_SAVE_TYPE,LBN_SELCHANGE,ComboBoxChanged) COMMAND_HANDLER_EX(IDC_SAVE_TYPE,LBN_SELCHANGE,ComboBoxChanged)
COMMAND_HANDLER_EX(IDC_COUNTFACT,LBN_SELCHANGE,ComboBoxChanged) COMMAND_HANDLER_EX(IDC_COUNTFACT,LBN_SELCHANGE,ComboBoxChanged)
COMMAND_ID_HANDLER_EX(IDC_ROM_32BIT,CheckBoxChanged)
COMMAND_ID_HANDLER_EX(IDC_SYNC_AUDIO,CheckBoxChanged) COMMAND_ID_HANDLER_EX(IDC_SYNC_AUDIO,CheckBoxChanged)
COMMAND_ID_HANDLER_EX(IDC_ROM_FIXEDAUDIO,CheckBoxChanged) COMMAND_ID_HANDLER_EX(IDC_ROM_FIXEDAUDIO,CheckBoxChanged)
COMMAND_ID_HANDLER_EX(IDC_USE_TLB,CheckBoxChanged) COMMAND_ID_HANDLER_EX(IDC_USE_TLB,CheckBoxChanged)

File diff suppressed because it is too large Load Diff

View File

@ -1,5 +1,5 @@
//{{NO_DEPENDENCIES}} //{{NO_DEPENDENCIES}}
// Microsoft Developer Studio generated include file. // Microsoft Visual C++ generated include file.
// Used by UI Resources.rc // Used by UI Resources.rc
// //
#define IDAPPLY 3 #define IDAPPLY 3
@ -89,6 +89,8 @@
#define IDC_HLE_AUDIO 1012 #define IDC_HLE_AUDIO 1012
#define IDC_SMM_CACHE 1012 #define IDC_SMM_CACHE 1012
#define IDC_CASE_SENSITIVE 1012 #define IDC_CASE_SENSITIVE 1012
#define IDC_ROM_FIXEDAUDIO2 1012
#define IDC_ROM_32BIT 1012
#define IDC_INFO_COUNTRY 1013 #define IDC_INFO_COUNTRY 1013
#define IDC_SHIFT 1013 #define IDC_SHIFT 1013
#define IDC_TLB 1013 #define IDC_TLB 1013

752
Source/RSP/RSP.vcproj Normal file
View File

@ -0,0 +1,752 @@
<?xml version="1.0" encoding="Windows-1252"?>
<VisualStudioProject
ProjectType="Visual C++"
Version="9.00"
Name="RSP"
ProjectGUID="{A7ED562C-63F3-4B7E-B6B3-2CF7848752E1}"
TargetFrameworkVersion="0"
>
<Platforms>
<Platform
Name="Win32"
/>
</Platforms>
<ToolFiles>
</ToolFiles>
<Configurations>
<Configuration
Name="Debug|Win32"
OutputDirectory="$(SolutionDir)bin/$(ConfigurationName)"
IntermediateDirectory="$(SolutionDir)build/$(ConfigurationName)/$(ProjectName)"
ConfigurationType="2"
InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC60.vsprops"
UseOfMFC="0"
ATLMinimizesCRunTimeLibraryUsage="false"
CharacterSet="2"
>
<Tool
Name="VCPreBuildEventTool"
/>
<Tool
Name="VCCustomBuildTool"
/>
<Tool
Name="VCXMLDataGeneratorTool"
/>
<Tool
Name="VCWebServiceProxyGeneratorTool"
/>
<Tool
Name="VCMIDLTool"
PreprocessorDefinitions="_DEBUG"
MkTypLibCompatible="true"
SuppressStartupBanner="true"
TargetEnvironment="1"
HeaderFileName=""
/>
<Tool
Name="VCCLCompilerTool"
Optimization="0"
AdditionalIncludeDirectories="../,./"
PreprocessorDefinitions="WIN32;_DEBUG;_WINDOWS;_USRDLL;RSP_EXPORTS"
StringPooling="true"
MinimalRebuild="true"
ExceptionHandling="0"
BasicRuntimeChecks="3"
RuntimeLibrary="3"
BufferSecurityCheck="false"
EnableFunctionLevelLinking="true"
RuntimeTypeInfo="false"
WarningLevel="3"
SuppressStartupBanner="true"
DebugInformationFormat="4"
/>
<Tool
Name="VCManagedResourceCompilerTool"
/>
<Tool
Name="VCResourceCompilerTool"
PreprocessorDefinitions="_DEBUG"
Culture="1033"
/>
<Tool
Name="VCPreLinkEventTool"
/>
<Tool
Name="VCLinkerTool"
OutputFile="$(OutDir)\Plugin\RSP\RSP 1.7.dll"
LinkIncremental="1"
SuppressStartupBanner="true"
GenerateDebugInformation="true"
ProgramDatabaseFile="$(TargetDir)pdb/$(TargetName).pdb"
RandomizedBaseAddress="1"
DataExecutionPrevention="0"
TargetMachine="1"
/>
<Tool
Name="VCALinkTool"
/>
<Tool
Name="VCManifestTool"
/>
<Tool
Name="VCXDCMakeTool"
/>
<Tool
Name="VCBscMakeTool"
SuppressStartupBanner="true"
/>
<Tool
Name="VCFxCopTool"
/>
<Tool
Name="VCAppVerifierTool"
/>
<Tool
Name="VCPostBuildEventTool"
/>
</Configuration>
<Configuration
Name="Release|Win32"
OutputDirectory="$(SolutionDir)bin/$(ConfigurationName)"
IntermediateDirectory="$(SolutionDir)build/$(ConfigurationName)/$(ProjectName)"
ConfigurationType="2"
InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC60.vsprops"
UseOfMFC="0"
ATLMinimizesCRunTimeLibraryUsage="false"
CharacterSet="2"
>
<Tool
Name="VCPreBuildEventTool"
/>
<Tool
Name="VCCustomBuildTool"
/>
<Tool
Name="VCXMLDataGeneratorTool"
/>
<Tool
Name="VCWebServiceProxyGeneratorTool"
/>
<Tool
Name="VCMIDLTool"
PreprocessorDefinitions="NDEBUG"
MkTypLibCompatible="true"
SuppressStartupBanner="true"
TargetEnvironment="1"
TypeLibraryName=".\../../Build/RSP/Release/RSP.tlb"
HeaderFileName=""
/>
<Tool
Name="VCCLCompilerTool"
Optimization="2"
InlineFunctionExpansion="1"
AdditionalIncludeDirectories="../,./"
PreprocessorDefinitions="WIN32;NDEBUG;_WINDOWS;_USRDLL;RSP_EXPORTS"
StringPooling="true"
ExceptionHandling="0"
RuntimeLibrary="2"
BufferSecurityCheck="false"
EnableFunctionLevelLinking="true"
RuntimeTypeInfo="false"
WarningLevel="3"
SuppressStartupBanner="true"
/>
<Tool
Name="VCManagedResourceCompilerTool"
/>
<Tool
Name="VCResourceCompilerTool"
PreprocessorDefinitions="NDEBUG"
Culture="1033"
/>
<Tool
Name="VCPreLinkEventTool"
/>
<Tool
Name="VCLinkerTool"
OutputFile="$(OutDir)\Plugin\RSP\RSP 1.7.dll"
LinkIncremental="1"
SuppressStartupBanner="true"
GenerateDebugInformation="true"
ProgramDatabaseFile="$(TargetDir)pdb/$(TargetName).pdb"
RandomizedBaseAddress="1"
DataExecutionPrevention="0"
ImportLibrary=".\../../Build/RSP/Release/RSP 1.7.lib"
TargetMachine="1"
/>
<Tool
Name="VCALinkTool"
/>
<Tool
Name="VCManifestTool"
/>
<Tool
Name="VCXDCMakeTool"
/>
<Tool
Name="VCBscMakeTool"
SuppressStartupBanner="true"
OutputFile=".\../../Build/RSP/Release/RSP.bsc"
/>
<Tool
Name="VCFxCopTool"
/>
<Tool
Name="VCAppVerifierTool"
/>
<Tool
Name="VCPostBuildEventTool"
/>
</Configuration>
</Configurations>
<References>
</References>
<Files>
<Filter
Name="Source Files"
Filter="cpp;c;cxx;rc;def;r;odl;idl;hpj;bat"
>
<File
RelativePath="Main.cpp"
>
<FileConfiguration
Name="Debug|Win32"
>
<Tool
Name="VCCLCompilerTool"
AdditionalIncludeDirectories=""
PreprocessorDefinitions=""
/>
</FileConfiguration>
<FileConfiguration
Name="Release|Win32"
>
<Tool
Name="VCCLCompilerTool"
AdditionalIncludeDirectories=""
PreprocessorDefinitions=""
/>
</FileConfiguration>
</File>
<Filter
Name="RSP Source Files"
>
<File
RelativePath="breakpoint.c"
>
<FileConfiguration
Name="Debug|Win32"
>
<Tool
Name="VCCLCompilerTool"
AdditionalIncludeDirectories=""
PreprocessorDefinitions=""
/>
</FileConfiguration>
<FileConfiguration
Name="Release|Win32"
>
<Tool
Name="VCCLCompilerTool"
AdditionalIncludeDirectories=""
PreprocessorDefinitions=""
/>
</FileConfiguration>
</File>
<File
RelativePath="Cpu.c"
>
<FileConfiguration
Name="Debug|Win32"
>
<Tool
Name="VCCLCompilerTool"
AdditionalIncludeDirectories=""
PreprocessorDefinitions=""
/>
</FileConfiguration>
<FileConfiguration
Name="Release|Win32"
>
<Tool
Name="VCCLCompilerTool"
AdditionalIncludeDirectories=""
PreprocessorDefinitions=""
/>
</FileConfiguration>
</File>
<File
RelativePath="dma.c"
>
<FileConfiguration
Name="Debug|Win32"
>
<Tool
Name="VCCLCompilerTool"
AdditionalIncludeDirectories=""
PreprocessorDefinitions=""
/>
</FileConfiguration>
<FileConfiguration
Name="Release|Win32"
>
<Tool
Name="VCCLCompilerTool"
AdditionalIncludeDirectories=""
PreprocessorDefinitions=""
/>
</FileConfiguration>
</File>
<File
RelativePath="Interpreter CPU.c"
>
<FileConfiguration
Name="Debug|Win32"
>
<Tool
Name="VCCLCompilerTool"
AdditionalIncludeDirectories=""
PreprocessorDefinitions=""
/>
</FileConfiguration>
<FileConfiguration
Name="Release|Win32"
>
<Tool
Name="VCCLCompilerTool"
AdditionalIncludeDirectories=""
PreprocessorDefinitions=""
/>
</FileConfiguration>
</File>
<File
RelativePath="Interpreter Ops.c"
>
<FileConfiguration
Name="Debug|Win32"
>
<Tool
Name="VCCLCompilerTool"
AdditionalIncludeDirectories=""
PreprocessorDefinitions=""
/>
</FileConfiguration>
<FileConfiguration
Name="Release|Win32"
>
<Tool
Name="VCCLCompilerTool"
AdditionalIncludeDirectories=""
PreprocessorDefinitions=""
/>
</FileConfiguration>
</File>
<File
RelativePath="log.cpp"
>
<FileConfiguration
Name="Debug|Win32"
>
<Tool
Name="VCCLCompilerTool"
AdditionalIncludeDirectories=""
PreprocessorDefinitions=""
/>
</FileConfiguration>
<FileConfiguration
Name="Release|Win32"
>
<Tool
Name="VCCLCompilerTool"
AdditionalIncludeDirectories=""
PreprocessorDefinitions=""
/>
</FileConfiguration>
</File>
<File
RelativePath="memory.c"
>
<FileConfiguration
Name="Debug|Win32"
>
<Tool
Name="VCCLCompilerTool"
AdditionalIncludeDirectories=""
PreprocessorDefinitions=""
/>
</FileConfiguration>
<FileConfiguration
Name="Release|Win32"
>
<Tool
Name="VCCLCompilerTool"
AdditionalIncludeDirectories=""
PreprocessorDefinitions=""
/>
</FileConfiguration>
</File>
<File
RelativePath="Mmx.c"
>
<FileConfiguration
Name="Debug|Win32"
>
<Tool
Name="VCCLCompilerTool"
AdditionalIncludeDirectories=""
PreprocessorDefinitions=""
/>
</FileConfiguration>
<FileConfiguration
Name="Release|Win32"
>
<Tool
Name="VCCLCompilerTool"
AdditionalIncludeDirectories=""
PreprocessorDefinitions=""
/>
</FileConfiguration>
</File>
<File
RelativePath="Profiling.cpp"
>
<FileConfiguration
Name="Debug|Win32"
>
<Tool
Name="VCCLCompilerTool"
AdditionalIncludeDirectories=""
PreprocessorDefinitions=""
/>
</FileConfiguration>
<FileConfiguration
Name="Release|Win32"
>
<Tool
Name="VCCLCompilerTool"
AdditionalIncludeDirectories=""
PreprocessorDefinitions=""
/>
</FileConfiguration>
</File>
<File
RelativePath="Recompiler Analysis.c"
>
<FileConfiguration
Name="Debug|Win32"
>
<Tool
Name="VCCLCompilerTool"
AdditionalIncludeDirectories=""
PreprocessorDefinitions=""
/>
</FileConfiguration>
<FileConfiguration
Name="Release|Win32"
>
<Tool
Name="VCCLCompilerTool"
AdditionalIncludeDirectories=""
PreprocessorDefinitions=""
/>
</FileConfiguration>
</File>
<File
RelativePath="Recompiler CPU.c"
>
<FileConfiguration
Name="Debug|Win32"
>
<Tool
Name="VCCLCompilerTool"
AdditionalIncludeDirectories=""
PreprocessorDefinitions=""
/>
</FileConfiguration>
<FileConfiguration
Name="Release|Win32"
>
<Tool
Name="VCCLCompilerTool"
AdditionalIncludeDirectories=""
PreprocessorDefinitions=""
/>
</FileConfiguration>
</File>
<File
RelativePath="Recompiler Ops.c"
>
<FileConfiguration
Name="Debug|Win32"
>
<Tool
Name="VCCLCompilerTool"
AdditionalIncludeDirectories=""
PreprocessorDefinitions=""
/>
</FileConfiguration>
<FileConfiguration
Name="Release|Win32"
>
<Tool
Name="VCCLCompilerTool"
AdditionalIncludeDirectories=""
PreprocessorDefinitions=""
/>
</FileConfiguration>
</File>
<File
RelativePath="Recompiler Sections.c"
>
<FileConfiguration
Name="Debug|Win32"
>
<Tool
Name="VCCLCompilerTool"
AdditionalIncludeDirectories=""
PreprocessorDefinitions=""
/>
</FileConfiguration>
<FileConfiguration
Name="Release|Win32"
>
<Tool
Name="VCCLCompilerTool"
AdditionalIncludeDirectories=""
PreprocessorDefinitions=""
/>
</FileConfiguration>
</File>
<File
RelativePath="RSP Command.c"
>
<FileConfiguration
Name="Debug|Win32"
>
<Tool
Name="VCCLCompilerTool"
AdditionalIncludeDirectories=""
PreprocessorDefinitions=""
/>
</FileConfiguration>
<FileConfiguration
Name="Release|Win32"
>
<Tool
Name="VCCLCompilerTool"
AdditionalIncludeDirectories=""
PreprocessorDefinitions=""
/>
</FileConfiguration>
</File>
<File
RelativePath="RSP Register.c"
>
<FileConfiguration
Name="Debug|Win32"
>
<Tool
Name="VCCLCompilerTool"
AdditionalIncludeDirectories=""
PreprocessorDefinitions=""
/>
</FileConfiguration>
<FileConfiguration
Name="Release|Win32"
>
<Tool
Name="VCCLCompilerTool"
AdditionalIncludeDirectories=""
PreprocessorDefinitions=""
/>
</FileConfiguration>
</File>
<File
RelativePath="Sse.c"
>
<FileConfiguration
Name="Debug|Win32"
>
<Tool
Name="VCCLCompilerTool"
AdditionalIncludeDirectories=""
PreprocessorDefinitions=""
/>
</FileConfiguration>
<FileConfiguration
Name="Release|Win32"
>
<Tool
Name="VCCLCompilerTool"
AdditionalIncludeDirectories=""
PreprocessorDefinitions=""
/>
</FileConfiguration>
</File>
<File
RelativePath="X86.c"
>
<FileConfiguration
Name="Debug|Win32"
>
<Tool
Name="VCCLCompilerTool"
AdditionalIncludeDirectories=""
PreprocessorDefinitions=""
/>
</FileConfiguration>
<FileConfiguration
Name="Release|Win32"
>
<Tool
Name="VCCLCompilerTool"
AdditionalIncludeDirectories=""
PreprocessorDefinitions=""
/>
</FileConfiguration>
</File>
</Filter>
</Filter>
<Filter
Name="Header Files"
Filter="h;hpp;hxx;hm;inl"
>
<Filter
Name="RSP Header Files"
>
<File
RelativePath="breakpoint.h"
>
</File>
<File
RelativePath="Cpu.h"
>
</File>
<File
RelativePath="dma.h"
>
</File>
<File
RelativePath="Interpreter CPU.h"
>
</File>
<File
RelativePath="Interpreter Ops.h"
>
</File>
<File
RelativePath="log.h"
>
</File>
<File
RelativePath="memory.h"
>
</File>
<File
RelativePath="OpCode.h"
>
</File>
<File
RelativePath="Profiling.h"
>
</File>
<File
RelativePath="Recompiler CPU.h"
>
</File>
<File
RelativePath="Recompiler Ops.h"
>
</File>
<File
RelativePath="resource.h"
>
</File>
<File
RelativePath="RSP Command.h"
>
</File>
<File
RelativePath="RSP Registers.h"
>
</File>
<File
RelativePath="Rsp.h"
>
</File>
<File
RelativePath="Types.h"
>
</File>
<File
RelativePath="X86.h"
>
</File>
</Filter>
<Filter
Name="Support Headers"
>
<File
RelativePath="Support\CriticalSection.h"
>
</File>
<File
RelativePath="Support\Ini File Class.h"
>
</File>
<File
RelativePath="Support\Log Class.h"
>
</File>
<File
RelativePath="Support\md5.h"
>
</File>
<File
RelativePath="Support\std string.h"
>
</File>
<File
RelativePath="Support\Support.h"
>
</File>
<File
RelativePath="Support\Version.h"
>
</File>
<File
RelativePath="Support\XString.h"
>
</File>
</Filter>
</Filter>
<Filter
Name="Resource Files"
Filter="ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe"
>
<File
RelativePath="RSP.rc"
>
<FileConfiguration
Name="Debug|Win32"
>
<Tool
Name="VCResourceCompilerTool"
PreprocessorDefinitions=""
/>
</FileConfiguration>
<FileConfiguration
Name="Release|Win32"
>
<Tool
Name="VCResourceCompilerTool"
PreprocessorDefinitions=""
/>
</FileConfiguration>
</File>
</Filter>
</Files>
<Globals>
</Globals>
</VisualStudioProject>

View File

@ -0,0 +1,197 @@
<?xml version="1.0" encoding="Windows-1252"?>
<VisualStudioProject
ProjectType="Visual C++"
Version="9.00"
Name="Settings"
ProjectGUID="{8B9961B1-88D9-4EA3-A752-507A00DD9F3D}"
TargetFrameworkVersion="0"
>
<Platforms>
<Platform
Name="Win32"
/>
</Platforms>
<ToolFiles>
</ToolFiles>
<Configurations>
<Configuration
Name="Debug|Win32"
OutputDirectory="$(SolutionDir)bin/$(ConfigurationName)/lib"
IntermediateDirectory="$(SolutionDir)build/$(ConfigurationName)/$(ProjectName)"
ConfigurationType="4"
InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC60.vsprops"
UseOfMFC="0"
ATLMinimizesCRunTimeLibraryUsage="false"
CharacterSet="2"
>
<Tool
Name="VCPreBuildEventTool"
/>
<Tool
Name="VCCustomBuildTool"
/>
<Tool
Name="VCXMLDataGeneratorTool"
/>
<Tool
Name="VCWebServiceProxyGeneratorTool"
/>
<Tool
Name="VCMIDLTool"
/>
<Tool
Name="VCCLCompilerTool"
Optimization="0"
PreprocessorDefinitions="WIN32;_DEBUG;_LIB;_CRT_SECURE_NO_WARNINGS"
MinimalRebuild="true"
BasicRuntimeChecks="3"
RuntimeLibrary="3"
WarningLevel="3"
SuppressStartupBanner="true"
DebugInformationFormat="3"
/>
<Tool
Name="VCManagedResourceCompilerTool"
/>
<Tool
Name="VCResourceCompilerTool"
PreprocessorDefinitions="_DEBUG"
Culture="3081"
/>
<Tool
Name="VCPreLinkEventTool"
/>
<Tool
Name="VCLibrarianTool"
SuppressStartupBanner="true"
/>
<Tool
Name="VCALinkTool"
/>
<Tool
Name="VCXDCMakeTool"
/>
<Tool
Name="VCBscMakeTool"
SuppressStartupBanner="true"
OutputFile=".\../../Build/Settings/Debug/Settings.bsc"
/>
<Tool
Name="VCFxCopTool"
/>
<Tool
Name="VCPostBuildEventTool"
/>
</Configuration>
<Configuration
Name="Release|Win32"
OutputDirectory="$(SolutionDir)bin/$(ConfigurationName)/lib"
IntermediateDirectory="$(SolutionDir)build/$(ConfigurationName)/$(ProjectName)"
ConfigurationType="4"
InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC60.vsprops"
UseOfMFC="0"
ATLMinimizesCRunTimeLibraryUsage="false"
CharacterSet="2"
>
<Tool
Name="VCPreBuildEventTool"
/>
<Tool
Name="VCCustomBuildTool"
/>
<Tool
Name="VCXMLDataGeneratorTool"
/>
<Tool
Name="VCWebServiceProxyGeneratorTool"
/>
<Tool
Name="VCMIDLTool"
/>
<Tool
Name="VCCLCompilerTool"
Optimization="2"
InlineFunctionExpansion="1"
PreprocessorDefinitions="WIN32;NDEBUG;_LIB;_CRT_SECURE_NO_WARNINGS"
StringPooling="true"
RuntimeLibrary="2"
BufferSecurityCheck="false"
EnableFunctionLevelLinking="true"
WarningLevel="3"
SuppressStartupBanner="true"
/>
<Tool
Name="VCManagedResourceCompilerTool"
/>
<Tool
Name="VCResourceCompilerTool"
PreprocessorDefinitions="NDEBUG"
Culture="3081"
/>
<Tool
Name="VCPreLinkEventTool"
/>
<Tool
Name="VCLibrarianTool"
SuppressStartupBanner="true"
/>
<Tool
Name="VCALinkTool"
/>
<Tool
Name="VCXDCMakeTool"
/>
<Tool
Name="VCBscMakeTool"
SuppressStartupBanner="true"
OutputFile=".\../../Build/Settings/Release/Settings.bsc"
/>
<Tool
Name="VCFxCopTool"
/>
<Tool
Name="VCPostBuildEventTool"
/>
</Configuration>
</Configurations>
<References>
</References>
<Files>
<Filter
Name="Source Files"
Filter="cpp;c;cxx;rc;def;r;odl;idl;hpj;bat"
>
<File
RelativePath="Settings.cpp"
>
<FileConfiguration
Name="Debug|Win32"
>
<Tool
Name="VCCLCompilerTool"
PreprocessorDefinitions=""
/>
</FileConfiguration>
<FileConfiguration
Name="Release|Win32"
>
<Tool
Name="VCCLCompilerTool"
PreprocessorDefinitions=""
/>
</FileConfiguration>
</File>
</Filter>
<Filter
Name="Header Files"
Filter="h;hpp;hxx;hm;inl"
>
<File
RelativePath="Settings.h"
>
</File>
</Filter>
</Files>
<Globals>
</Globals>
</VisualStudioProject>

257
Source/WTL/WTL.vcproj Normal file
View File

@ -0,0 +1,257 @@
<?xml version="1.0" encoding="Windows-1252"?>
<VisualStudioProject
ProjectType="Visual C++"
Version="9.00"
Name="WTL"
ProjectGUID="{4BC6906B-213E-40D7-9FC7-1A93E228393D}"
TargetFrameworkVersion="0"
>
<Platforms>
<Platform
Name="Win32"
/>
</Platforms>
<ToolFiles>
</ToolFiles>
<Configurations>
<Configuration
Name="Debug|Win32"
OutputDirectory="$(SolutionDir)bin/$(ConfigurationName)/lib"
IntermediateDirectory="$(SolutionDir)build/$(ConfigurationName)/$(ProjectName)"
ConfigurationType="4"
InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC60.vsprops"
UseOfMFC="0"
ATLMinimizesCRunTimeLibraryUsage="false"
CharacterSet="2"
>
<Tool
Name="VCPreBuildEventTool"
/>
<Tool
Name="VCCustomBuildTool"
/>
<Tool
Name="VCXMLDataGeneratorTool"
/>
<Tool
Name="VCWebServiceProxyGeneratorTool"
/>
<Tool
Name="VCMIDLTool"
/>
<Tool
Name="VCCLCompilerTool"
Optimization="0"
PreprocessorDefinitions="WIN32;_DEBUG;_LIB"
MinimalRebuild="true"
BasicRuntimeChecks="3"
RuntimeLibrary="1"
PrecompiledHeaderFile=".\../../Build/WTL/Debug/WTL.pch"
AssemblerListingLocation=".\../../Build/WTL/Debug/"
ObjectFile=".\../../Build/WTL/Debug/"
ProgramDataBaseFileName=".\../../Build/WTL/Debug/"
WarningLevel="3"
SuppressStartupBanner="true"
DebugInformationFormat="4"
/>
<Tool
Name="VCManagedResourceCompilerTool"
/>
<Tool
Name="VCResourceCompilerTool"
PreprocessorDefinitions="_DEBUG"
Culture="3081"
/>
<Tool
Name="VCPreLinkEventTool"
/>
<Tool
Name="VCLibrarianTool"
OutputFile=".\../../Bin/Debug\WTL.lib"
SuppressStartupBanner="true"
/>
<Tool
Name="VCALinkTool"
/>
<Tool
Name="VCXDCMakeTool"
/>
<Tool
Name="VCBscMakeTool"
SuppressStartupBanner="true"
OutputFile=".\../../Bin/Debug/WTL.bsc"
/>
<Tool
Name="VCFxCopTool"
/>
<Tool
Name="VCPostBuildEventTool"
/>
</Configuration>
<Configuration
Name="Release|Win32"
OutputDirectory="$(SolutionDir)bin/$(ConfigurationName)/lib"
IntermediateDirectory="$(SolutionDir)build/$(ConfigurationName)/$(ProjectName)"
ConfigurationType="4"
InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC60.vsprops"
UseOfMFC="0"
ATLMinimizesCRunTimeLibraryUsage="false"
CharacterSet="2"
>
<Tool
Name="VCPreBuildEventTool"
/>
<Tool
Name="VCCustomBuildTool"
/>
<Tool
Name="VCXMLDataGeneratorTool"
/>
<Tool
Name="VCWebServiceProxyGeneratorTool"
/>
<Tool
Name="VCMIDLTool"
/>
<Tool
Name="VCCLCompilerTool"
Optimization="2"
InlineFunctionExpansion="1"
PreprocessorDefinitions="WIN32;NDEBUG;_LIB"
StringPooling="true"
RuntimeLibrary="2"
EnableFunctionLevelLinking="true"
PrecompiledHeaderFile=".\Release/WTL.pch"
AssemblerListingLocation=".\Release/"
ObjectFile=".\Release/"
ProgramDataBaseFileName=".\Release/"
WarningLevel="3"
SuppressStartupBanner="true"
/>
<Tool
Name="VCManagedResourceCompilerTool"
/>
<Tool
Name="VCResourceCompilerTool"
PreprocessorDefinitions="NDEBUG"
Culture="3081"
/>
<Tool
Name="VCPreLinkEventTool"
/>
<Tool
Name="VCLibrarianTool"
OutputFile=".\Release\WTL.lib"
SuppressStartupBanner="true"
/>
<Tool
Name="VCALinkTool"
/>
<Tool
Name="VCXDCMakeTool"
/>
<Tool
Name="VCBscMakeTool"
SuppressStartupBanner="true"
OutputFile=".\Release/WTL.bsc"
/>
<Tool
Name="VCFxCopTool"
/>
<Tool
Name="VCPostBuildEventTool"
/>
</Configuration>
</Configurations>
<References>
</References>
<Files>
<Filter
Name="Header Files"
Filter="h;hpp;hxx;hm;inl"
>
<File
RelativePath="atlapp.h"
>
</File>
<File
RelativePath="atlcrack.h"
>
</File>
<File
RelativePath="atlctrls.h"
>
</File>
<File
RelativePath="atlctrlw.h"
>
</File>
<File
RelativePath="atlctrlx.h"
>
</File>
<File
RelativePath="atlddx.h"
>
</File>
<File
RelativePath="atldlgs.h"
>
</File>
<File
RelativePath="atlfind.h"
>
</File>
<File
RelativePath="atlframe.h"
>
</File>
<File
RelativePath="atlgdi.h"
>
</File>
<File
RelativePath="atlmisc.h"
>
</File>
<File
RelativePath="atlprint.h"
>
</File>
<File
RelativePath="atlres.h"
>
</File>
<File
RelativePath="atlresce.h"
>
</File>
<File
RelativePath="atlscrl.h"
>
</File>
<File
RelativePath="atlsplit.h"
>
</File>
<File
RelativePath="atltheme.h"
>
</File>
<File
RelativePath="atluser.h"
>
</File>
<File
RelativePath="atlwince.h"
>
</File>
<File
RelativePath="atlwinx.h"
>
</File>
</Filter>
</Files>
<Globals>
</Globals>
</VisualStudioProject>