Fix GSnull under Win32; plus minor fixes to the console logger.

git-svn-id: http://pcsx2.googlecode.com/svn/trunk@2095 96395faa-99c1-11dd-bbfe-3dabce05a288
This commit is contained in:
Jake.Stine 2009-10-30 17:26:53 +00:00
parent 6d5690c772
commit eabfe8bf4f
10 changed files with 528 additions and 439 deletions

View File

@ -27,7 +27,7 @@ namespace HostSys
{ {
u8 *Mem; u8 *Mem;
Mem = (u8*)mmap((uptr*)base, size, PROT_EXEC | PROT_READ | PROT_WRITE, MAP_PRIVATE | MAP_ANONYMOUS, 0, 0); Mem = (u8*)mmap((uptr*)base, size, PROT_EXEC | PROT_READ | PROT_WRITE, MAP_PRIVATE | MAP_ANONYMOUS, 0, 0);
if (Mem == MAP_FAILED) Console.Notice("Mmap Failed!"); if (Mem == MAP_FAILED) Console.Warning("Mmap Failed!");
return Mem; return Mem;
} }

View File

@ -42,12 +42,12 @@ namespace MMXRegisters
{ {
if (!g_EEFreezeRegs) return; if (!g_EEFreezeRegs) return;
//DevCon.Notice("MMXRegisters::Freeze: depth[%d]\n", stack_depth); //DevCon.Warning("MMXRegisters::Freeze: depth[%d]\n", stack_depth);
stack_depth++; stack_depth++;
if (stack_depth > 1) if (stack_depth > 1)
{ {
//DevCon.Notice("MMX Already Saved!\n"); //DevCon.Warning("MMX Already Saved!\n");
return; return;
} }
@ -85,11 +85,11 @@ namespace MMXRegisters
{ {
if (!g_EEFreezeRegs) return; if (!g_EEFreezeRegs) return;
//DevCon.Notice("MMXRegisters::Thaw: depth[%d]\n", stack_depth); //DevCon.Warning("MMXRegisters::Thaw: depth[%d]\n", stack_depth);
if (!Saved()) if (!Saved())
{ {
//DevCon.Notice("MMX Not Saved!\n"); //DevCon.Warning("MMX Not Saved!\n");
return; return;
} }
stack_depth--; stack_depth--;
@ -145,13 +145,13 @@ namespace XMMRegisters
{ {
if (!g_EEFreezeRegs) return; if (!g_EEFreezeRegs) return;
//DevCon.Notice("XMMRegisters::Freeze: depth[%d]\n", Depth()); //DevCon.Warning("XMMRegisters::Freeze: depth[%d]\n", Depth());
stack_depth++; stack_depth++;
if (stack_depth > 1) if (stack_depth > 1)
{ {
//DevCon.Notice("XMM Already saved\n"); //DevCon.Warning("XMM Already saved\n");
return; return;
} }
@ -187,11 +187,11 @@ namespace XMMRegisters
{ {
if (!g_EEFreezeRegs) return; if (!g_EEFreezeRegs) return;
//DevCon.Notice("XMMRegisters::Thaw: depth[%d]\n", Depth()); //DevCon.Warning("XMMRegisters::Thaw: depth[%d]\n", Depth());
if (!Saved()) if (!Saved())
{ {
//DevCon.Notice("XMM Regs not saved!\n"); //DevCon.Warning("XMM Regs not saved!\n");
return; return;
} }

View File

@ -25,6 +25,7 @@
#ifdef __WXMSW__ #ifdef __WXMSW__
# include <wx/msw/wrapwin.h> // needed for OutputDebugStirng # include <wx/msw/wrapwin.h> // needed for OutputDebugStirng
# include <richedit.h>
#endif #endif
BEGIN_DECLARE_EVENT_TYPES() BEGIN_DECLARE_EVENT_TYPES()
@ -256,6 +257,13 @@ ConsoleLogFrame::ConsoleLogFrame( MainEmuFrame *parent, const wxString& title, A
m_TextCtrl.SetBackgroundColour( wxColor( 230, 235, 242 ) ); m_TextCtrl.SetBackgroundColour( wxColor( 230, 235, 242 ) );
m_TextCtrl.SetDefaultStyle( m_ColorTable[DefaultConsoleColor] ); m_TextCtrl.SetDefaultStyle( m_ColorTable[DefaultConsoleColor] );
#ifdef __WXMSW__
// This improves Asian text display behavior on Windows. The IMF_DUALFONT flag helps
// the rich edit box reset back to the default font after displaying japanese characters.
// Other editing and messages have been disabled since our console is read-only anyway.
SendMessage( (HWND)m_TextCtrl.GetHWND(), EM_SETLANGOPTIONS, 0, IMF_AUTOFONT | IMF_DUALFONT );
#endif
// create Log menu (contains most options) // create Log menu (contains most options)
wxMenuBar *pMenuBar = new wxMenuBar(); wxMenuBar *pMenuBar = new wxMenuBar();
wxMenu& menuLog = *new wxMenu(); wxMenu& menuLog = *new wxMenu();

View File

@ -140,6 +140,8 @@ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "w32pthreads_lib", "3rdparty
EndProject EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "cdvdGigaherz", "plugins\cdvdGigaherz\src\Windows\cdvdGigaherz2008.vcproj", "{5CF88D5F-64DD-4EDC-9F1A-436BD502940A}" Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "cdvdGigaherz", "plugins\cdvdGigaherz\src\Windows\cdvdGigaherz2008.vcproj", "{5CF88D5F-64DD-4EDC-9F1A-436BD502940A}"
EndProject EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "GSnull", "plugins\GSnull\Windows\GSnull_vc2008.vcproj", "{5FCBD521-5A0B-4D97-A823-A97E6BAB9101}"
EndProject
Global Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Win32 = Debug|Win32 Debug|Win32 = Debug|Win32
@ -152,6 +154,8 @@ Global
Release SSE4|x64 = Release SSE4|x64 Release SSE4|x64 = Release SSE4|x64
Release SSSE3|Win32 = Release SSSE3|Win32 Release SSSE3|Win32 = Release SSSE3|Win32
Release SSSE3|x64 = Release SSSE3|x64 Release SSSE3|x64 = Release SSSE3|x64
Release|Win32 = Release|Win32
Release|x64 = Release|x64
EndGlobalSection EndGlobalSection
GlobalSection(ProjectConfigurationPlatforms) = postSolution GlobalSection(ProjectConfigurationPlatforms) = postSolution
{1CEFD830-2B76-4596-A4EE-BCD7280A60BD}.Debug|Win32.ActiveCfg = Debug|Win32 {1CEFD830-2B76-4596-A4EE-BCD7280A60BD}.Debug|Win32.ActiveCfg = Debug|Win32
@ -169,6 +173,9 @@ Global
{1CEFD830-2B76-4596-A4EE-BCD7280A60BD}.Release SSSE3|Win32.ActiveCfg = Release|Win32 {1CEFD830-2B76-4596-A4EE-BCD7280A60BD}.Release SSSE3|Win32.ActiveCfg = Release|Win32
{1CEFD830-2B76-4596-A4EE-BCD7280A60BD}.Release SSSE3|Win32.Build.0 = Release|Win32 {1CEFD830-2B76-4596-A4EE-BCD7280A60BD}.Release SSSE3|Win32.Build.0 = Release|Win32
{1CEFD830-2B76-4596-A4EE-BCD7280A60BD}.Release SSSE3|x64.ActiveCfg = Release|Win32 {1CEFD830-2B76-4596-A4EE-BCD7280A60BD}.Release SSSE3|x64.ActiveCfg = Release|Win32
{1CEFD830-2B76-4596-A4EE-BCD7280A60BD}.Release|Win32.ActiveCfg = Release|Win32
{1CEFD830-2B76-4596-A4EE-BCD7280A60BD}.Release|Win32.Build.0 = Release|Win32
{1CEFD830-2B76-4596-A4EE-BCD7280A60BD}.Release|x64.ActiveCfg = Release|Win32
{5C6B7D28-E73D-4F71-8FC0-17ADA640EBD8}.Debug|Win32.ActiveCfg = Debug|Win32 {5C6B7D28-E73D-4F71-8FC0-17ADA640EBD8}.Debug|Win32.ActiveCfg = Debug|Win32
{5C6B7D28-E73D-4F71-8FC0-17ADA640EBD8}.Debug|Win32.Build.0 = Debug|Win32 {5C6B7D28-E73D-4F71-8FC0-17ADA640EBD8}.Debug|Win32.Build.0 = Debug|Win32
{5C6B7D28-E73D-4F71-8FC0-17ADA640EBD8}.Debug|x64.ActiveCfg = Debug|Win32 {5C6B7D28-E73D-4F71-8FC0-17ADA640EBD8}.Debug|x64.ActiveCfg = Debug|Win32
@ -184,6 +191,9 @@ Global
{5C6B7D28-E73D-4F71-8FC0-17ADA640EBD8}.Release SSSE3|Win32.ActiveCfg = Release|Win32 {5C6B7D28-E73D-4F71-8FC0-17ADA640EBD8}.Release SSSE3|Win32.ActiveCfg = Release|Win32
{5C6B7D28-E73D-4F71-8FC0-17ADA640EBD8}.Release SSSE3|Win32.Build.0 = Release|Win32 {5C6B7D28-E73D-4F71-8FC0-17ADA640EBD8}.Release SSSE3|Win32.Build.0 = Release|Win32
{5C6B7D28-E73D-4F71-8FC0-17ADA640EBD8}.Release SSSE3|x64.ActiveCfg = Release|Win32 {5C6B7D28-E73D-4F71-8FC0-17ADA640EBD8}.Release SSSE3|x64.ActiveCfg = Release|Win32
{5C6B7D28-E73D-4F71-8FC0-17ADA640EBD8}.Release|Win32.ActiveCfg = Release|Win32
{5C6B7D28-E73D-4F71-8FC0-17ADA640EBD8}.Release|Win32.Build.0 = Release|Win32
{5C6B7D28-E73D-4F71-8FC0-17ADA640EBD8}.Release|x64.ActiveCfg = Release|Win32
{5F78E90B-BD22-47B1-9CA5-7A80F4DF5EF3}.Debug|Win32.ActiveCfg = Debug|Win32 {5F78E90B-BD22-47B1-9CA5-7A80F4DF5EF3}.Debug|Win32.ActiveCfg = Debug|Win32
{5F78E90B-BD22-47B1-9CA5-7A80F4DF5EF3}.Debug|Win32.Build.0 = Debug|Win32 {5F78E90B-BD22-47B1-9CA5-7A80F4DF5EF3}.Debug|Win32.Build.0 = Debug|Win32
{5F78E90B-BD22-47B1-9CA5-7A80F4DF5EF3}.Debug|x64.ActiveCfg = Debug|Win32 {5F78E90B-BD22-47B1-9CA5-7A80F4DF5EF3}.Debug|x64.ActiveCfg = Debug|Win32
@ -199,6 +209,9 @@ Global
{5F78E90B-BD22-47B1-9CA5-7A80F4DF5EF3}.Release SSSE3|Win32.ActiveCfg = Release|Win32 {5F78E90B-BD22-47B1-9CA5-7A80F4DF5EF3}.Release SSSE3|Win32.ActiveCfg = Release|Win32
{5F78E90B-BD22-47B1-9CA5-7A80F4DF5EF3}.Release SSSE3|Win32.Build.0 = Release|Win32 {5F78E90B-BD22-47B1-9CA5-7A80F4DF5EF3}.Release SSSE3|Win32.Build.0 = Release|Win32
{5F78E90B-BD22-47B1-9CA5-7A80F4DF5EF3}.Release SSSE3|x64.ActiveCfg = Release|Win32 {5F78E90B-BD22-47B1-9CA5-7A80F4DF5EF3}.Release SSSE3|x64.ActiveCfg = Release|Win32
{5F78E90B-BD22-47B1-9CA5-7A80F4DF5EF3}.Release|Win32.ActiveCfg = Release|Win32
{5F78E90B-BD22-47B1-9CA5-7A80F4DF5EF3}.Release|Win32.Build.0 = Release|Win32
{5F78E90B-BD22-47B1-9CA5-7A80F4DF5EF3}.Release|x64.ActiveCfg = Release|Win32
{5307BBB7-EBB9-4AA4-8CB6-A94EC473C8C4}.Debug|Win32.ActiveCfg = Debug|Win32 {5307BBB7-EBB9-4AA4-8CB6-A94EC473C8C4}.Debug|Win32.ActiveCfg = Debug|Win32
{5307BBB7-EBB9-4AA4-8CB6-A94EC473C8C4}.Debug|Win32.Build.0 = Debug|Win32 {5307BBB7-EBB9-4AA4-8CB6-A94EC473C8C4}.Debug|Win32.Build.0 = Debug|Win32
{5307BBB7-EBB9-4AA4-8CB6-A94EC473C8C4}.Debug|x64.ActiveCfg = Debug|Win32 {5307BBB7-EBB9-4AA4-8CB6-A94EC473C8C4}.Debug|x64.ActiveCfg = Debug|Win32
@ -214,6 +227,9 @@ Global
{5307BBB7-EBB9-4AA4-8CB6-A94EC473C8C4}.Release SSSE3|Win32.ActiveCfg = Release|Win32 {5307BBB7-EBB9-4AA4-8CB6-A94EC473C8C4}.Release SSSE3|Win32.ActiveCfg = Release|Win32
{5307BBB7-EBB9-4AA4-8CB6-A94EC473C8C4}.Release SSSE3|Win32.Build.0 = Release|Win32 {5307BBB7-EBB9-4AA4-8CB6-A94EC473C8C4}.Release SSSE3|Win32.Build.0 = Release|Win32
{5307BBB7-EBB9-4AA4-8CB6-A94EC473C8C4}.Release SSSE3|x64.ActiveCfg = Release|Win32 {5307BBB7-EBB9-4AA4-8CB6-A94EC473C8C4}.Release SSSE3|x64.ActiveCfg = Release|Win32
{5307BBB7-EBB9-4AA4-8CB6-A94EC473C8C4}.Release|Win32.ActiveCfg = Release|Win32
{5307BBB7-EBB9-4AA4-8CB6-A94EC473C8C4}.Release|Win32.Build.0 = Release|Win32
{5307BBB7-EBB9-4AA4-8CB6-A94EC473C8C4}.Release|x64.ActiveCfg = Release|Win32
{18E42F6F-3A62-41EE-B42F-79366C4F1E95}.Debug|Win32.ActiveCfg = Debug SSE2|Win32 {18E42F6F-3A62-41EE-B42F-79366C4F1E95}.Debug|Win32.ActiveCfg = Debug SSE2|Win32
{18E42F6F-3A62-41EE-B42F-79366C4F1E95}.Debug|Win32.Build.0 = Debug SSE2|Win32 {18E42F6F-3A62-41EE-B42F-79366C4F1E95}.Debug|Win32.Build.0 = Debug SSE2|Win32
{18E42F6F-3A62-41EE-B42F-79366C4F1E95}.Debug|x64.ActiveCfg = Debug|Win32 {18E42F6F-3A62-41EE-B42F-79366C4F1E95}.Debug|x64.ActiveCfg = Debug|Win32
@ -229,6 +245,9 @@ Global
{18E42F6F-3A62-41EE-B42F-79366C4F1E95}.Release SSSE3|Win32.ActiveCfg = Release SSSE3|Win32 {18E42F6F-3A62-41EE-B42F-79366C4F1E95}.Release SSSE3|Win32.ActiveCfg = Release SSSE3|Win32
{18E42F6F-3A62-41EE-B42F-79366C4F1E95}.Release SSSE3|Win32.Build.0 = Release SSSE3|Win32 {18E42F6F-3A62-41EE-B42F-79366C4F1E95}.Release SSSE3|Win32.Build.0 = Release SSSE3|Win32
{18E42F6F-3A62-41EE-B42F-79366C4F1E95}.Release SSSE3|x64.ActiveCfg = Release SSSE3|Win32 {18E42F6F-3A62-41EE-B42F-79366C4F1E95}.Release SSSE3|x64.ActiveCfg = Release SSSE3|Win32
{18E42F6F-3A62-41EE-B42F-79366C4F1E95}.Release|Win32.ActiveCfg = Release|Win32
{18E42F6F-3A62-41EE-B42F-79366C4F1E95}.Release|Win32.Build.0 = Release|Win32
{18E42F6F-3A62-41EE-B42F-79366C4F1E95}.Release|x64.ActiveCfg = Release|Win32
{E9B51944-7E6D-4BCD-83F2-7BBD5A46182D}.Debug|Win32.ActiveCfg = Debug|Win32 {E9B51944-7E6D-4BCD-83F2-7BBD5A46182D}.Debug|Win32.ActiveCfg = Debug|Win32
{E9B51944-7E6D-4BCD-83F2-7BBD5A46182D}.Debug|Win32.Build.0 = Debug|Win32 {E9B51944-7E6D-4BCD-83F2-7BBD5A46182D}.Debug|Win32.Build.0 = Debug|Win32
{E9B51944-7E6D-4BCD-83F2-7BBD5A46182D}.Debug|x64.ActiveCfg = Debug|Win32 {E9B51944-7E6D-4BCD-83F2-7BBD5A46182D}.Debug|x64.ActiveCfg = Debug|Win32
@ -244,6 +263,9 @@ Global
{E9B51944-7E6D-4BCD-83F2-7BBD5A46182D}.Release SSSE3|Win32.ActiveCfg = Release|Win32 {E9B51944-7E6D-4BCD-83F2-7BBD5A46182D}.Release SSSE3|Win32.ActiveCfg = Release|Win32
{E9B51944-7E6D-4BCD-83F2-7BBD5A46182D}.Release SSSE3|Win32.Build.0 = Release|Win32 {E9B51944-7E6D-4BCD-83F2-7BBD5A46182D}.Release SSSE3|Win32.Build.0 = Release|Win32
{E9B51944-7E6D-4BCD-83F2-7BBD5A46182D}.Release SSSE3|x64.ActiveCfg = Release|Win32 {E9B51944-7E6D-4BCD-83F2-7BBD5A46182D}.Release SSSE3|x64.ActiveCfg = Release|Win32
{E9B51944-7E6D-4BCD-83F2-7BBD5A46182D}.Release|Win32.ActiveCfg = Release|Win32
{E9B51944-7E6D-4BCD-83F2-7BBD5A46182D}.Release|Win32.Build.0 = Release|Win32
{E9B51944-7E6D-4BCD-83F2-7BBD5A46182D}.Release|x64.ActiveCfg = Release|Win32
{2F6C0388-20CB-4242-9F6C-A6EBB6A83F47}.Debug|Win32.ActiveCfg = Debug|Win32 {2F6C0388-20CB-4242-9F6C-A6EBB6A83F47}.Debug|Win32.ActiveCfg = Debug|Win32
{2F6C0388-20CB-4242-9F6C-A6EBB6A83F47}.Debug|Win32.Build.0 = Debug|Win32 {2F6C0388-20CB-4242-9F6C-A6EBB6A83F47}.Debug|Win32.Build.0 = Debug|Win32
{2F6C0388-20CB-4242-9F6C-A6EBB6A83F47}.Debug|x64.ActiveCfg = Debug|Win32 {2F6C0388-20CB-4242-9F6C-A6EBB6A83F47}.Debug|x64.ActiveCfg = Debug|Win32
@ -259,6 +281,9 @@ Global
{2F6C0388-20CB-4242-9F6C-A6EBB6A83F47}.Release SSSE3|Win32.ActiveCfg = Release|Win32 {2F6C0388-20CB-4242-9F6C-A6EBB6A83F47}.Release SSSE3|Win32.ActiveCfg = Release|Win32
{2F6C0388-20CB-4242-9F6C-A6EBB6A83F47}.Release SSSE3|Win32.Build.0 = Release|Win32 {2F6C0388-20CB-4242-9F6C-A6EBB6A83F47}.Release SSSE3|Win32.Build.0 = Release|Win32
{2F6C0388-20CB-4242-9F6C-A6EBB6A83F47}.Release SSSE3|x64.ActiveCfg = Release|Win32 {2F6C0388-20CB-4242-9F6C-A6EBB6A83F47}.Release SSSE3|x64.ActiveCfg = Release|Win32
{2F6C0388-20CB-4242-9F6C-A6EBB6A83F47}.Release|Win32.ActiveCfg = Release|Win32
{2F6C0388-20CB-4242-9F6C-A6EBB6A83F47}.Release|Win32.Build.0 = Release|Win32
{2F6C0388-20CB-4242-9F6C-A6EBB6A83F47}.Release|x64.ActiveCfg = Release|Win32
{F4EB4AB2-C595-4B05-8BC0-059024BC796C}.Debug|Win32.ActiveCfg = Debug|Win32 {F4EB4AB2-C595-4B05-8BC0-059024BC796C}.Debug|Win32.ActiveCfg = Debug|Win32
{F4EB4AB2-C595-4B05-8BC0-059024BC796C}.Debug|Win32.Build.0 = Debug|Win32 {F4EB4AB2-C595-4B05-8BC0-059024BC796C}.Debug|Win32.Build.0 = Debug|Win32
{F4EB4AB2-C595-4B05-8BC0-059024BC796C}.Debug|x64.ActiveCfg = Debug|Win32 {F4EB4AB2-C595-4B05-8BC0-059024BC796C}.Debug|x64.ActiveCfg = Debug|Win32
@ -274,6 +299,9 @@ Global
{F4EB4AB2-C595-4B05-8BC0-059024BC796C}.Release SSSE3|Win32.ActiveCfg = Release|Win32 {F4EB4AB2-C595-4B05-8BC0-059024BC796C}.Release SSSE3|Win32.ActiveCfg = Release|Win32
{F4EB4AB2-C595-4B05-8BC0-059024BC796C}.Release SSSE3|Win32.Build.0 = Release|Win32 {F4EB4AB2-C595-4B05-8BC0-059024BC796C}.Release SSSE3|Win32.Build.0 = Release|Win32
{F4EB4AB2-C595-4B05-8BC0-059024BC796C}.Release SSSE3|x64.ActiveCfg = Release|Win32 {F4EB4AB2-C595-4B05-8BC0-059024BC796C}.Release SSSE3|x64.ActiveCfg = Release|Win32
{F4EB4AB2-C595-4B05-8BC0-059024BC796C}.Release|Win32.ActiveCfg = Release|Win32
{F4EB4AB2-C595-4B05-8BC0-059024BC796C}.Release|Win32.Build.0 = Release|Win32
{F4EB4AB2-C595-4B05-8BC0-059024BC796C}.Release|x64.ActiveCfg = Release|Win32
{E4081455-398C-4610-A87C-90A8A7D72DC3}.Debug|Win32.ActiveCfg = Debug|Win32 {E4081455-398C-4610-A87C-90A8A7D72DC3}.Debug|Win32.ActiveCfg = Debug|Win32
{E4081455-398C-4610-A87C-90A8A7D72DC3}.Debug|Win32.Build.0 = Debug|Win32 {E4081455-398C-4610-A87C-90A8A7D72DC3}.Debug|Win32.Build.0 = Debug|Win32
{E4081455-398C-4610-A87C-90A8A7D72DC3}.Debug|x64.ActiveCfg = Debug|Win32 {E4081455-398C-4610-A87C-90A8A7D72DC3}.Debug|x64.ActiveCfg = Debug|Win32
@ -289,6 +317,9 @@ Global
{E4081455-398C-4610-A87C-90A8A7D72DC3}.Release SSSE3|Win32.ActiveCfg = Release|Win32 {E4081455-398C-4610-A87C-90A8A7D72DC3}.Release SSSE3|Win32.ActiveCfg = Release|Win32
{E4081455-398C-4610-A87C-90A8A7D72DC3}.Release SSSE3|Win32.Build.0 = Release|Win32 {E4081455-398C-4610-A87C-90A8A7D72DC3}.Release SSSE3|Win32.Build.0 = Release|Win32
{E4081455-398C-4610-A87C-90A8A7D72DC3}.Release SSSE3|x64.ActiveCfg = Release|Win32 {E4081455-398C-4610-A87C-90A8A7D72DC3}.Release SSSE3|x64.ActiveCfg = Release|Win32
{E4081455-398C-4610-A87C-90A8A7D72DC3}.Release|Win32.ActiveCfg = Release|Win32
{E4081455-398C-4610-A87C-90A8A7D72DC3}.Release|Win32.Build.0 = Release|Win32
{E4081455-398C-4610-A87C-90A8A7D72DC3}.Release|x64.ActiveCfg = Release|Win32
{26511268-2902-4997-8421-ECD7055F9E28}.Debug|Win32.ActiveCfg = Debug|Win32 {26511268-2902-4997-8421-ECD7055F9E28}.Debug|Win32.ActiveCfg = Debug|Win32
{26511268-2902-4997-8421-ECD7055F9E28}.Debug|Win32.Build.0 = Debug|Win32 {26511268-2902-4997-8421-ECD7055F9E28}.Debug|Win32.Build.0 = Debug|Win32
{26511268-2902-4997-8421-ECD7055F9E28}.Debug|x64.ActiveCfg = Debug|Win32 {26511268-2902-4997-8421-ECD7055F9E28}.Debug|x64.ActiveCfg = Debug|Win32
@ -304,6 +335,9 @@ Global
{26511268-2902-4997-8421-ECD7055F9E28}.Release SSSE3|Win32.ActiveCfg = Release|Win32 {26511268-2902-4997-8421-ECD7055F9E28}.Release SSSE3|Win32.ActiveCfg = Release|Win32
{26511268-2902-4997-8421-ECD7055F9E28}.Release SSSE3|Win32.Build.0 = Release|Win32 {26511268-2902-4997-8421-ECD7055F9E28}.Release SSSE3|Win32.Build.0 = Release|Win32
{26511268-2902-4997-8421-ECD7055F9E28}.Release SSSE3|x64.ActiveCfg = Release|Win32 {26511268-2902-4997-8421-ECD7055F9E28}.Release SSSE3|x64.ActiveCfg = Release|Win32
{26511268-2902-4997-8421-ECD7055F9E28}.Release|Win32.ActiveCfg = Release|Win32
{26511268-2902-4997-8421-ECD7055F9E28}.Release|Win32.Build.0 = Release|Win32
{26511268-2902-4997-8421-ECD7055F9E28}.Release|x64.ActiveCfg = Release|Win32
{7F059854-568D-4E08-9D00-1E78E203E4DC}.Debug|Win32.ActiveCfg = Debug|Win32 {7F059854-568D-4E08-9D00-1E78E203E4DC}.Debug|Win32.ActiveCfg = Debug|Win32
{7F059854-568D-4E08-9D00-1E78E203E4DC}.Debug|Win32.Build.0 = Debug|Win32 {7F059854-568D-4E08-9D00-1E78E203E4DC}.Debug|Win32.Build.0 = Debug|Win32
{7F059854-568D-4E08-9D00-1E78E203E4DC}.Debug|x64.ActiveCfg = Debug|Win32 {7F059854-568D-4E08-9D00-1E78E203E4DC}.Debug|x64.ActiveCfg = Debug|Win32
@ -319,6 +353,9 @@ Global
{7F059854-568D-4E08-9D00-1E78E203E4DC}.Release SSSE3|Win32.ActiveCfg = Release|Win32 {7F059854-568D-4E08-9D00-1E78E203E4DC}.Release SSSE3|Win32.ActiveCfg = Release|Win32
{7F059854-568D-4E08-9D00-1E78E203E4DC}.Release SSSE3|Win32.Build.0 = Release|Win32 {7F059854-568D-4E08-9D00-1E78E203E4DC}.Release SSSE3|Win32.Build.0 = Release|Win32
{7F059854-568D-4E08-9D00-1E78E203E4DC}.Release SSSE3|x64.ActiveCfg = Release|Win32 {7F059854-568D-4E08-9D00-1E78E203E4DC}.Release SSSE3|x64.ActiveCfg = Release|Win32
{7F059854-568D-4E08-9D00-1E78E203E4DC}.Release|Win32.ActiveCfg = Release|Win32
{7F059854-568D-4E08-9D00-1E78E203E4DC}.Release|Win32.Build.0 = Release|Win32
{7F059854-568D-4E08-9D00-1E78E203E4DC}.Release|x64.ActiveCfg = Release|Win32
{6F3C4136-5801-4EBC-AC6E-37DF6FAB150A}.Debug|Win32.ActiveCfg = Debug|Win32 {6F3C4136-5801-4EBC-AC6E-37DF6FAB150A}.Debug|Win32.ActiveCfg = Debug|Win32
{6F3C4136-5801-4EBC-AC6E-37DF6FAB150A}.Debug|Win32.Build.0 = Debug|Win32 {6F3C4136-5801-4EBC-AC6E-37DF6FAB150A}.Debug|Win32.Build.0 = Debug|Win32
{6F3C4136-5801-4EBC-AC6E-37DF6FAB150A}.Debug|x64.ActiveCfg = Debug|Win32 {6F3C4136-5801-4EBC-AC6E-37DF6FAB150A}.Debug|x64.ActiveCfg = Debug|Win32
@ -334,6 +371,9 @@ Global
{6F3C4136-5801-4EBC-AC6E-37DF6FAB150A}.Release SSSE3|Win32.ActiveCfg = Release|Win32 {6F3C4136-5801-4EBC-AC6E-37DF6FAB150A}.Release SSSE3|Win32.ActiveCfg = Release|Win32
{6F3C4136-5801-4EBC-AC6E-37DF6FAB150A}.Release SSSE3|Win32.Build.0 = Release|Win32 {6F3C4136-5801-4EBC-AC6E-37DF6FAB150A}.Release SSSE3|Win32.Build.0 = Release|Win32
{6F3C4136-5801-4EBC-AC6E-37DF6FAB150A}.Release SSSE3|x64.ActiveCfg = Release SSSE3|Win32 {6F3C4136-5801-4EBC-AC6E-37DF6FAB150A}.Release SSSE3|x64.ActiveCfg = Release SSSE3|Win32
{6F3C4136-5801-4EBC-AC6E-37DF6FAB150A}.Release|Win32.ActiveCfg = Release|Win32
{6F3C4136-5801-4EBC-AC6E-37DF6FAB150A}.Release|Win32.Build.0 = Release|Win32
{6F3C4136-5801-4EBC-AC6E-37DF6FAB150A}.Release|x64.ActiveCfg = Release|Win32
{FCDF5AE2-EA47-4CC6-9F20-23A0517FEBCB}.Debug|Win32.ActiveCfg = Debug|Win32 {FCDF5AE2-EA47-4CC6-9F20-23A0517FEBCB}.Debug|Win32.ActiveCfg = Debug|Win32
{FCDF5AE2-EA47-4CC6-9F20-23A0517FEBCB}.Debug|Win32.Build.0 = Debug|Win32 {FCDF5AE2-EA47-4CC6-9F20-23A0517FEBCB}.Debug|Win32.Build.0 = Debug|Win32
{FCDF5AE2-EA47-4CC6-9F20-23A0517FEBCB}.Debug|x64.ActiveCfg = Debug|Win32 {FCDF5AE2-EA47-4CC6-9F20-23A0517FEBCB}.Debug|x64.ActiveCfg = Debug|Win32
@ -349,6 +389,9 @@ Global
{FCDF5AE2-EA47-4CC6-9F20-23A0517FEBCB}.Release SSSE3|Win32.ActiveCfg = Release|Win32 {FCDF5AE2-EA47-4CC6-9F20-23A0517FEBCB}.Release SSSE3|Win32.ActiveCfg = Release|Win32
{FCDF5AE2-EA47-4CC6-9F20-23A0517FEBCB}.Release SSSE3|Win32.Build.0 = Release|Win32 {FCDF5AE2-EA47-4CC6-9F20-23A0517FEBCB}.Release SSSE3|Win32.Build.0 = Release|Win32
{FCDF5AE2-EA47-4CC6-9F20-23A0517FEBCB}.Release SSSE3|x64.ActiveCfg = Release SSSE3|Win32 {FCDF5AE2-EA47-4CC6-9F20-23A0517FEBCB}.Release SSSE3|x64.ActiveCfg = Release SSSE3|Win32
{FCDF5AE2-EA47-4CC6-9F20-23A0517FEBCB}.Release|Win32.ActiveCfg = Release|Win32
{FCDF5AE2-EA47-4CC6-9F20-23A0517FEBCB}.Release|Win32.Build.0 = Release|Win32
{FCDF5AE2-EA47-4CC6-9F20-23A0517FEBCB}.Release|x64.ActiveCfg = Release|Win32
{F38D9DF0-F68D-49D9-B3A0-932E74FB74A0}.Debug|Win32.ActiveCfg = Release|Win32 {F38D9DF0-F68D-49D9-B3A0-932E74FB74A0}.Debug|Win32.ActiveCfg = Release|Win32
{F38D9DF0-F68D-49D9-B3A0-932E74FB74A0}.Debug|Win32.Build.0 = Release|Win32 {F38D9DF0-F68D-49D9-B3A0-932E74FB74A0}.Debug|Win32.Build.0 = Release|Win32
{F38D9DF0-F68D-49D9-B3A0-932E74FB74A0}.Debug|x64.ActiveCfg = Release|Win32 {F38D9DF0-F68D-49D9-B3A0-932E74FB74A0}.Debug|x64.ActiveCfg = Release|Win32
@ -364,6 +407,9 @@ Global
{F38D9DF0-F68D-49D9-B3A0-932E74FB74A0}.Release SSSE3|Win32.ActiveCfg = Release|Win32 {F38D9DF0-F68D-49D9-B3A0-932E74FB74A0}.Release SSSE3|Win32.ActiveCfg = Release|Win32
{F38D9DF0-F68D-49D9-B3A0-932E74FB74A0}.Release SSSE3|Win32.Build.0 = Release|Win32 {F38D9DF0-F68D-49D9-B3A0-932E74FB74A0}.Release SSSE3|Win32.Build.0 = Release|Win32
{F38D9DF0-F68D-49D9-B3A0-932E74FB74A0}.Release SSSE3|x64.ActiveCfg = Release|Win32 {F38D9DF0-F68D-49D9-B3A0-932E74FB74A0}.Release SSSE3|x64.ActiveCfg = Release|Win32
{F38D9DF0-F68D-49D9-B3A0-932E74FB74A0}.Release|Win32.ActiveCfg = Release|Win32
{F38D9DF0-F68D-49D9-B3A0-932E74FB74A0}.Release|Win32.Build.0 = Release|Win32
{F38D9DF0-F68D-49D9-B3A0-932E74FB74A0}.Release|x64.ActiveCfg = Release|Win32
{BF7B81A5-E348-4F7C-A69F-F74C8EEEAD70}.Debug|Win32.ActiveCfg = Debug|Win32 {BF7B81A5-E348-4F7C-A69F-F74C8EEEAD70}.Debug|Win32.ActiveCfg = Debug|Win32
{BF7B81A5-E348-4F7C-A69F-F74C8EEEAD70}.Debug|Win32.Build.0 = Debug|Win32 {BF7B81A5-E348-4F7C-A69F-F74C8EEEAD70}.Debug|Win32.Build.0 = Debug|Win32
{BF7B81A5-E348-4F7C-A69F-F74C8EEEAD70}.Debug|x64.ActiveCfg = Debug|Win32 {BF7B81A5-E348-4F7C-A69F-F74C8EEEAD70}.Debug|x64.ActiveCfg = Debug|Win32
@ -379,6 +425,9 @@ Global
{BF7B81A5-E348-4F7C-A69F-F74C8EEEAD70}.Release SSSE3|Win32.ActiveCfg = Release|Win32 {BF7B81A5-E348-4F7C-A69F-F74C8EEEAD70}.Release SSSE3|Win32.ActiveCfg = Release|Win32
{BF7B81A5-E348-4F7C-A69F-F74C8EEEAD70}.Release SSSE3|Win32.Build.0 = Release|Win32 {BF7B81A5-E348-4F7C-A69F-F74C8EEEAD70}.Release SSSE3|Win32.Build.0 = Release|Win32
{BF7B81A5-E348-4F7C-A69F-F74C8EEEAD70}.Release SSSE3|x64.ActiveCfg = Release|Win32 {BF7B81A5-E348-4F7C-A69F-F74C8EEEAD70}.Release SSSE3|x64.ActiveCfg = Release|Win32
{BF7B81A5-E348-4F7C-A69F-F74C8EEEAD70}.Release|Win32.ActiveCfg = Release|Win32
{BF7B81A5-E348-4F7C-A69F-F74C8EEEAD70}.Release|Win32.Build.0 = Release|Win32
{BF7B81A5-E348-4F7C-A69F-F74C8EEEAD70}.Release|x64.ActiveCfg = Release|Win32
{3D0EB14D-32F3-4D82-9C6D-B806ADBB859C}.Debug|Win32.ActiveCfg = Debug|Win32 {3D0EB14D-32F3-4D82-9C6D-B806ADBB859C}.Debug|Win32.ActiveCfg = Debug|Win32
{3D0EB14D-32F3-4D82-9C6D-B806ADBB859C}.Debug|Win32.Build.0 = Debug|Win32 {3D0EB14D-32F3-4D82-9C6D-B806ADBB859C}.Debug|Win32.Build.0 = Debug|Win32
{3D0EB14D-32F3-4D82-9C6D-B806ADBB859C}.Debug|x64.ActiveCfg = Debug|Win32 {3D0EB14D-32F3-4D82-9C6D-B806ADBB859C}.Debug|x64.ActiveCfg = Debug|Win32
@ -394,6 +443,9 @@ Global
{3D0EB14D-32F3-4D82-9C6D-B806ADBB859C}.Release SSSE3|Win32.ActiveCfg = Release|Win32 {3D0EB14D-32F3-4D82-9C6D-B806ADBB859C}.Release SSSE3|Win32.ActiveCfg = Release|Win32
{3D0EB14D-32F3-4D82-9C6D-B806ADBB859C}.Release SSSE3|Win32.Build.0 = Release|Win32 {3D0EB14D-32F3-4D82-9C6D-B806ADBB859C}.Release SSSE3|Win32.Build.0 = Release|Win32
{3D0EB14D-32F3-4D82-9C6D-B806ADBB859C}.Release SSSE3|x64.ActiveCfg = Release|Win32 {3D0EB14D-32F3-4D82-9C6D-B806ADBB859C}.Release SSSE3|x64.ActiveCfg = Release|Win32
{3D0EB14D-32F3-4D82-9C6D-B806ADBB859C}.Release|Win32.ActiveCfg = Release|Win32
{3D0EB14D-32F3-4D82-9C6D-B806ADBB859C}.Release|Win32.Build.0 = Release|Win32
{3D0EB14D-32F3-4D82-9C6D-B806ADBB859C}.Release|x64.ActiveCfg = Release|Win32
{04439C5F-05FB-4A9C-AAD1-5388C25377DB}.Debug|Win32.ActiveCfg = Debug|Win32 {04439C5F-05FB-4A9C-AAD1-5388C25377DB}.Debug|Win32.ActiveCfg = Debug|Win32
{04439C5F-05FB-4A9C-AAD1-5388C25377DB}.Debug|Win32.Build.0 = Debug|Win32 {04439C5F-05FB-4A9C-AAD1-5388C25377DB}.Debug|Win32.Build.0 = Debug|Win32
{04439C5F-05FB-4A9C-AAD1-5388C25377DB}.Debug|x64.ActiveCfg = Debug|Win32 {04439C5F-05FB-4A9C-AAD1-5388C25377DB}.Debug|x64.ActiveCfg = Debug|Win32
@ -409,6 +461,9 @@ Global
{04439C5F-05FB-4A9C-AAD1-5388C25377DB}.Release SSSE3|Win32.ActiveCfg = Release|Win32 {04439C5F-05FB-4A9C-AAD1-5388C25377DB}.Release SSSE3|Win32.ActiveCfg = Release|Win32
{04439C5F-05FB-4A9C-AAD1-5388C25377DB}.Release SSSE3|Win32.Build.0 = Release|Win32 {04439C5F-05FB-4A9C-AAD1-5388C25377DB}.Release SSSE3|Win32.Build.0 = Release|Win32
{04439C5F-05FB-4A9C-AAD1-5388C25377DB}.Release SSSE3|x64.ActiveCfg = Release|Win32 {04439C5F-05FB-4A9C-AAD1-5388C25377DB}.Release SSSE3|x64.ActiveCfg = Release|Win32
{04439C5F-05FB-4A9C-AAD1-5388C25377DB}.Release|Win32.ActiveCfg = Release|Win32
{04439C5F-05FB-4A9C-AAD1-5388C25377DB}.Release|Win32.Build.0 = Release|Win32
{04439C5F-05FB-4A9C-AAD1-5388C25377DB}.Release|x64.ActiveCfg = Release|Win32
{48AD7E0A-25B1-4974-A1E3-03F8C438D34F}.Debug|Win32.ActiveCfg = Debug|Win32 {48AD7E0A-25B1-4974-A1E3-03F8C438D34F}.Debug|Win32.ActiveCfg = Debug|Win32
{48AD7E0A-25B1-4974-A1E3-03F8C438D34F}.Debug|Win32.Build.0 = Debug|Win32 {48AD7E0A-25B1-4974-A1E3-03F8C438D34F}.Debug|Win32.Build.0 = Debug|Win32
{48AD7E0A-25B1-4974-A1E3-03F8C438D34F}.Debug|x64.ActiveCfg = Debug|Win32 {48AD7E0A-25B1-4974-A1E3-03F8C438D34F}.Debug|x64.ActiveCfg = Debug|Win32
@ -424,6 +479,9 @@ Global
{48AD7E0A-25B1-4974-A1E3-03F8C438D34F}.Release SSSE3|Win32.ActiveCfg = Release|Win32 {48AD7E0A-25B1-4974-A1E3-03F8C438D34F}.Release SSSE3|Win32.ActiveCfg = Release|Win32
{48AD7E0A-25B1-4974-A1E3-03F8C438D34F}.Release SSSE3|Win32.Build.0 = Release|Win32 {48AD7E0A-25B1-4974-A1E3-03F8C438D34F}.Release SSSE3|Win32.Build.0 = Release|Win32
{48AD7E0A-25B1-4974-A1E3-03F8C438D34F}.Release SSSE3|x64.ActiveCfg = Release|Win32 {48AD7E0A-25B1-4974-A1E3-03F8C438D34F}.Release SSSE3|x64.ActiveCfg = Release|Win32
{48AD7E0A-25B1-4974-A1E3-03F8C438D34F}.Release|Win32.ActiveCfg = Release|Win32
{48AD7E0A-25B1-4974-A1E3-03F8C438D34F}.Release|Win32.Build.0 = Release|Win32
{48AD7E0A-25B1-4974-A1E3-03F8C438D34F}.Release|x64.ActiveCfg = Release|Win32
{0318BA30-EF48-441A-9E10-DC85EFAE39F0}.Debug|Win32.ActiveCfg = Debug|Win32 {0318BA30-EF48-441A-9E10-DC85EFAE39F0}.Debug|Win32.ActiveCfg = Debug|Win32
{0318BA30-EF48-441A-9E10-DC85EFAE39F0}.Debug|Win32.Build.0 = Debug|Win32 {0318BA30-EF48-441A-9E10-DC85EFAE39F0}.Debug|Win32.Build.0 = Debug|Win32
{0318BA30-EF48-441A-9E10-DC85EFAE39F0}.Debug|x64.ActiveCfg = Debug|Win32 {0318BA30-EF48-441A-9E10-DC85EFAE39F0}.Debug|x64.ActiveCfg = Debug|Win32
@ -439,6 +497,9 @@ Global
{0318BA30-EF48-441A-9E10-DC85EFAE39F0}.Release SSSE3|Win32.ActiveCfg = Release|Win32 {0318BA30-EF48-441A-9E10-DC85EFAE39F0}.Release SSSE3|Win32.ActiveCfg = Release|Win32
{0318BA30-EF48-441A-9E10-DC85EFAE39F0}.Release SSSE3|Win32.Build.0 = Release|Win32 {0318BA30-EF48-441A-9E10-DC85EFAE39F0}.Release SSSE3|Win32.Build.0 = Release|Win32
{0318BA30-EF48-441A-9E10-DC85EFAE39F0}.Release SSSE3|x64.ActiveCfg = Release|Win32 {0318BA30-EF48-441A-9E10-DC85EFAE39F0}.Release SSSE3|x64.ActiveCfg = Release|Win32
{0318BA30-EF48-441A-9E10-DC85EFAE39F0}.Release|Win32.ActiveCfg = Release|Win32
{0318BA30-EF48-441A-9E10-DC85EFAE39F0}.Release|Win32.Build.0 = Release|Win32
{0318BA30-EF48-441A-9E10-DC85EFAE39F0}.Release|x64.ActiveCfg = Release|Win32
{C34487AF-228A-4D11-8E50-27803DF76873}.Debug|Win32.ActiveCfg = Debug|Win32 {C34487AF-228A-4D11-8E50-27803DF76873}.Debug|Win32.ActiveCfg = Debug|Win32
{C34487AF-228A-4D11-8E50-27803DF76873}.Debug|Win32.Build.0 = Debug|Win32 {C34487AF-228A-4D11-8E50-27803DF76873}.Debug|Win32.Build.0 = Debug|Win32
{C34487AF-228A-4D11-8E50-27803DF76873}.Debug|x64.ActiveCfg = Debug|Win32 {C34487AF-228A-4D11-8E50-27803DF76873}.Debug|x64.ActiveCfg = Debug|Win32
@ -454,6 +515,9 @@ Global
{C34487AF-228A-4D11-8E50-27803DF76873}.Release SSSE3|Win32.ActiveCfg = Release|Win32 {C34487AF-228A-4D11-8E50-27803DF76873}.Release SSSE3|Win32.ActiveCfg = Release|Win32
{C34487AF-228A-4D11-8E50-27803DF76873}.Release SSSE3|Win32.Build.0 = Release|Win32 {C34487AF-228A-4D11-8E50-27803DF76873}.Release SSSE3|Win32.Build.0 = Release|Win32
{C34487AF-228A-4D11-8E50-27803DF76873}.Release SSSE3|x64.ActiveCfg = Release|Win32 {C34487AF-228A-4D11-8E50-27803DF76873}.Release SSSE3|x64.ActiveCfg = Release|Win32
{C34487AF-228A-4D11-8E50-27803DF76873}.Release|Win32.ActiveCfg = Release|Win32
{C34487AF-228A-4D11-8E50-27803DF76873}.Release|Win32.Build.0 = Release|Win32
{C34487AF-228A-4D11-8E50-27803DF76873}.Release|x64.ActiveCfg = Release|Win32
{A51123F5-9505-4EAE-85E7-D320290A272C}.Debug|Win32.ActiveCfg = Debug|Win32 {A51123F5-9505-4EAE-85E7-D320290A272C}.Debug|Win32.ActiveCfg = Debug|Win32
{A51123F5-9505-4EAE-85E7-D320290A272C}.Debug|Win32.Build.0 = Debug|Win32 {A51123F5-9505-4EAE-85E7-D320290A272C}.Debug|Win32.Build.0 = Debug|Win32
{A51123F5-9505-4EAE-85E7-D320290A272C}.Debug|x64.ActiveCfg = Debug|Win32 {A51123F5-9505-4EAE-85E7-D320290A272C}.Debug|x64.ActiveCfg = Debug|Win32
@ -469,6 +533,9 @@ Global
{A51123F5-9505-4EAE-85E7-D320290A272C}.Release SSSE3|Win32.ActiveCfg = Release|Win32 {A51123F5-9505-4EAE-85E7-D320290A272C}.Release SSSE3|Win32.ActiveCfg = Release|Win32
{A51123F5-9505-4EAE-85E7-D320290A272C}.Release SSSE3|Win32.Build.0 = Release|Win32 {A51123F5-9505-4EAE-85E7-D320290A272C}.Release SSSE3|Win32.Build.0 = Release|Win32
{A51123F5-9505-4EAE-85E7-D320290A272C}.Release SSSE3|x64.ActiveCfg = Release|Win32 {A51123F5-9505-4EAE-85E7-D320290A272C}.Release SSSE3|x64.ActiveCfg = Release|Win32
{A51123F5-9505-4EAE-85E7-D320290A272C}.Release|Win32.ActiveCfg = Release|Win32
{A51123F5-9505-4EAE-85E7-D320290A272C}.Release|Win32.Build.0 = Release|Win32
{A51123F5-9505-4EAE-85E7-D320290A272C}.Release|x64.ActiveCfg = Release|Win32
{4639972E-424E-4E13-8B07-CA403C481346}.Debug|Win32.ActiveCfg = Debug|Win32 {4639972E-424E-4E13-8B07-CA403C481346}.Debug|Win32.ActiveCfg = Debug|Win32
{4639972E-424E-4E13-8B07-CA403C481346}.Debug|Win32.Build.0 = Debug|Win32 {4639972E-424E-4E13-8B07-CA403C481346}.Debug|Win32.Build.0 = Debug|Win32
{4639972E-424E-4E13-8B07-CA403C481346}.Debug|x64.ActiveCfg = Debug|Win32 {4639972E-424E-4E13-8B07-CA403C481346}.Debug|x64.ActiveCfg = Debug|Win32
@ -484,6 +551,9 @@ Global
{4639972E-424E-4E13-8B07-CA403C481346}.Release SSSE3|Win32.ActiveCfg = Release|Win32 {4639972E-424E-4E13-8B07-CA403C481346}.Release SSSE3|Win32.ActiveCfg = Release|Win32
{4639972E-424E-4E13-8B07-CA403C481346}.Release SSSE3|Win32.Build.0 = Release|Win32 {4639972E-424E-4E13-8B07-CA403C481346}.Release SSSE3|Win32.Build.0 = Release|Win32
{4639972E-424E-4E13-8B07-CA403C481346}.Release SSSE3|x64.ActiveCfg = Release|Win32 {4639972E-424E-4E13-8B07-CA403C481346}.Release SSSE3|x64.ActiveCfg = Release|Win32
{4639972E-424E-4E13-8B07-CA403C481346}.Release|Win32.ActiveCfg = Release|Win32
{4639972E-424E-4E13-8B07-CA403C481346}.Release|Win32.Build.0 = Release|Win32
{4639972E-424E-4E13-8B07-CA403C481346}.Release|x64.ActiveCfg = Release|Win32
{0E231FB1-F3C9-4724-ACCB-DE8BCB3C089E}.Debug|Win32.ActiveCfg = Debug|Win32 {0E231FB1-F3C9-4724-ACCB-DE8BCB3C089E}.Debug|Win32.ActiveCfg = Debug|Win32
{0E231FB1-F3C9-4724-ACCB-DE8BCB3C089E}.Debug|Win32.Build.0 = Debug|Win32 {0E231FB1-F3C9-4724-ACCB-DE8BCB3C089E}.Debug|Win32.Build.0 = Debug|Win32
{0E231FB1-F3C9-4724-ACCB-DE8BCB3C089E}.Debug|x64.ActiveCfg = Debug|Win32 {0E231FB1-F3C9-4724-ACCB-DE8BCB3C089E}.Debug|x64.ActiveCfg = Debug|Win32
@ -499,6 +569,9 @@ Global
{0E231FB1-F3C9-4724-ACCB-DE8BCB3C089E}.Release SSSE3|Win32.ActiveCfg = Release|Win32 {0E231FB1-F3C9-4724-ACCB-DE8BCB3C089E}.Release SSSE3|Win32.ActiveCfg = Release|Win32
{0E231FB1-F3C9-4724-ACCB-DE8BCB3C089E}.Release SSSE3|Win32.Build.0 = Release|Win32 {0E231FB1-F3C9-4724-ACCB-DE8BCB3C089E}.Release SSSE3|Win32.Build.0 = Release|Win32
{0E231FB1-F3C9-4724-ACCB-DE8BCB3C089E}.Release SSSE3|x64.ActiveCfg = Release|Win32 {0E231FB1-F3C9-4724-ACCB-DE8BCB3C089E}.Release SSSE3|x64.ActiveCfg = Release|Win32
{0E231FB1-F3C9-4724-ACCB-DE8BCB3C089E}.Release|Win32.ActiveCfg = Release|Win32
{0E231FB1-F3C9-4724-ACCB-DE8BCB3C089E}.Release|Win32.Build.0 = Release|Win32
{0E231FB1-F3C9-4724-ACCB-DE8BCB3C089E}.Release|x64.ActiveCfg = Release|Win32
{677B7D11-D5E1-40B3-88B1-9A4DF83D2213}.Debug|Win32.ActiveCfg = Release|Win32 {677B7D11-D5E1-40B3-88B1-9A4DF83D2213}.Debug|Win32.ActiveCfg = Release|Win32
{677B7D11-D5E1-40B3-88B1-9A4DF83D2213}.Debug|Win32.Build.0 = Release|Win32 {677B7D11-D5E1-40B3-88B1-9A4DF83D2213}.Debug|Win32.Build.0 = Release|Win32
{677B7D11-D5E1-40B3-88B1-9A4DF83D2213}.Debug|x64.ActiveCfg = Debug|Win32 {677B7D11-D5E1-40B3-88B1-9A4DF83D2213}.Debug|x64.ActiveCfg = Debug|Win32
@ -514,6 +587,9 @@ Global
{677B7D11-D5E1-40B3-88B1-9A4DF83D2213}.Release SSSE3|Win32.ActiveCfg = Release|Win32 {677B7D11-D5E1-40B3-88B1-9A4DF83D2213}.Release SSSE3|Win32.ActiveCfg = Release|Win32
{677B7D11-D5E1-40B3-88B1-9A4DF83D2213}.Release SSSE3|Win32.Build.0 = Release|Win32 {677B7D11-D5E1-40B3-88B1-9A4DF83D2213}.Release SSSE3|Win32.Build.0 = Release|Win32
{677B7D11-D5E1-40B3-88B1-9A4DF83D2213}.Release SSSE3|x64.ActiveCfg = Release|Win32 {677B7D11-D5E1-40B3-88B1-9A4DF83D2213}.Release SSSE3|x64.ActiveCfg = Release|Win32
{677B7D11-D5E1-40B3-88B1-9A4DF83D2213}.Release|Win32.ActiveCfg = Release|Win32
{677B7D11-D5E1-40B3-88B1-9A4DF83D2213}.Release|Win32.Build.0 = Release|Win32
{677B7D11-D5E1-40B3-88B1-9A4DF83D2213}.Release|x64.ActiveCfg = Release|Win32
{BC236261-77E8-4567-8D09-45CD02965EB6}.Debug|Win32.ActiveCfg = Debug|Win32 {BC236261-77E8-4567-8D09-45CD02965EB6}.Debug|Win32.ActiveCfg = Debug|Win32
{BC236261-77E8-4567-8D09-45CD02965EB6}.Debug|Win32.Build.0 = Debug|Win32 {BC236261-77E8-4567-8D09-45CD02965EB6}.Debug|Win32.Build.0 = Debug|Win32
{BC236261-77E8-4567-8D09-45CD02965EB6}.Debug|x64.ActiveCfg = Debug|Win32 {BC236261-77E8-4567-8D09-45CD02965EB6}.Debug|x64.ActiveCfg = Debug|Win32
@ -529,6 +605,9 @@ Global
{BC236261-77E8-4567-8D09-45CD02965EB6}.Release SSSE3|Win32.ActiveCfg = Release|Win32 {BC236261-77E8-4567-8D09-45CD02965EB6}.Release SSSE3|Win32.ActiveCfg = Release|Win32
{BC236261-77E8-4567-8D09-45CD02965EB6}.Release SSSE3|Win32.Build.0 = Release|Win32 {BC236261-77E8-4567-8D09-45CD02965EB6}.Release SSSE3|Win32.Build.0 = Release|Win32
{BC236261-77E8-4567-8D09-45CD02965EB6}.Release SSSE3|x64.ActiveCfg = Release|Win32 {BC236261-77E8-4567-8D09-45CD02965EB6}.Release SSSE3|x64.ActiveCfg = Release|Win32
{BC236261-77E8-4567-8D09-45CD02965EB6}.Release|Win32.ActiveCfg = Release|Win32
{BC236261-77E8-4567-8D09-45CD02965EB6}.Release|Win32.Build.0 = Release|Win32
{BC236261-77E8-4567-8D09-45CD02965EB6}.Release|x64.ActiveCfg = Release|Win32
{067D7863-393B-494F-B296-4A8853EB3D1D}.Debug|Win32.ActiveCfg = Debug|Win32 {067D7863-393B-494F-B296-4A8853EB3D1D}.Debug|Win32.ActiveCfg = Debug|Win32
{067D7863-393B-494F-B296-4A8853EB3D1D}.Debug|Win32.Build.0 = Debug|Win32 {067D7863-393B-494F-B296-4A8853EB3D1D}.Debug|Win32.Build.0 = Debug|Win32
{067D7863-393B-494F-B296-4A8853EB3D1D}.Debug|x64.ActiveCfg = Debug|Win32 {067D7863-393B-494F-B296-4A8853EB3D1D}.Debug|x64.ActiveCfg = Debug|Win32
@ -544,6 +623,9 @@ Global
{067D7863-393B-494F-B296-4A8853EB3D1D}.Release SSSE3|Win32.ActiveCfg = Release|Win32 {067D7863-393B-494F-B296-4A8853EB3D1D}.Release SSSE3|Win32.ActiveCfg = Release|Win32
{067D7863-393B-494F-B296-4A8853EB3D1D}.Release SSSE3|Win32.Build.0 = Release|Win32 {067D7863-393B-494F-B296-4A8853EB3D1D}.Release SSSE3|Win32.Build.0 = Release|Win32
{067D7863-393B-494F-B296-4A8853EB3D1D}.Release SSSE3|x64.ActiveCfg = Release|Win32 {067D7863-393B-494F-B296-4A8853EB3D1D}.Release SSSE3|x64.ActiveCfg = Release|Win32
{067D7863-393B-494F-B296-4A8853EB3D1D}.Release|Win32.ActiveCfg = Release|Win32
{067D7863-393B-494F-B296-4A8853EB3D1D}.Release|Win32.Build.0 = Release|Win32
{067D7863-393B-494F-B296-4A8853EB3D1D}.Release|x64.ActiveCfg = Release|Win32
{7E9B2BE7-CEC3-4F14-847B-0AB8D562FB86}.Debug|Win32.ActiveCfg = Debug|Win32 {7E9B2BE7-CEC3-4F14-847B-0AB8D562FB86}.Debug|Win32.ActiveCfg = Debug|Win32
{7E9B2BE7-CEC3-4F14-847B-0AB8D562FB86}.Debug|Win32.Build.0 = Debug|Win32 {7E9B2BE7-CEC3-4F14-847B-0AB8D562FB86}.Debug|Win32.Build.0 = Debug|Win32
{7E9B2BE7-CEC3-4F14-847B-0AB8D562FB86}.Debug|x64.ActiveCfg = Debug|Win32 {7E9B2BE7-CEC3-4F14-847B-0AB8D562FB86}.Debug|x64.ActiveCfg = Debug|Win32
@ -559,6 +641,9 @@ Global
{7E9B2BE7-CEC3-4F14-847B-0AB8D562FB86}.Release SSSE3|Win32.ActiveCfg = Release|Win32 {7E9B2BE7-CEC3-4F14-847B-0AB8D562FB86}.Release SSSE3|Win32.ActiveCfg = Release|Win32
{7E9B2BE7-CEC3-4F14-847B-0AB8D562FB86}.Release SSSE3|Win32.Build.0 = Release|Win32 {7E9B2BE7-CEC3-4F14-847B-0AB8D562FB86}.Release SSSE3|Win32.Build.0 = Release|Win32
{7E9B2BE7-CEC3-4F14-847B-0AB8D562FB86}.Release SSSE3|x64.ActiveCfg = Release|Win32 {7E9B2BE7-CEC3-4F14-847B-0AB8D562FB86}.Release SSSE3|x64.ActiveCfg = Release|Win32
{7E9B2BE7-CEC3-4F14-847B-0AB8D562FB86}.Release|Win32.ActiveCfg = Release|Win32
{7E9B2BE7-CEC3-4F14-847B-0AB8D562FB86}.Release|Win32.Build.0 = Release|Win32
{7E9B2BE7-CEC3-4F14-847B-0AB8D562FB86}.Release|x64.ActiveCfg = Release|Win32
{5CF88D5F-64DD-4EDC-9F1A-436BD502940A}.Debug|Win32.ActiveCfg = Debug|Win32 {5CF88D5F-64DD-4EDC-9F1A-436BD502940A}.Debug|Win32.ActiveCfg = Debug|Win32
{5CF88D5F-64DD-4EDC-9F1A-436BD502940A}.Debug|Win32.Build.0 = Debug|Win32 {5CF88D5F-64DD-4EDC-9F1A-436BD502940A}.Debug|Win32.Build.0 = Debug|Win32
{5CF88D5F-64DD-4EDC-9F1A-436BD502940A}.Debug|x64.ActiveCfg = Debug|Win32 {5CF88D5F-64DD-4EDC-9F1A-436BD502940A}.Debug|x64.ActiveCfg = Debug|Win32
@ -574,6 +659,27 @@ Global
{5CF88D5F-64DD-4EDC-9F1A-436BD502940A}.Release SSSE3|Win32.ActiveCfg = Release|Win32 {5CF88D5F-64DD-4EDC-9F1A-436BD502940A}.Release SSSE3|Win32.ActiveCfg = Release|Win32
{5CF88D5F-64DD-4EDC-9F1A-436BD502940A}.Release SSSE3|Win32.Build.0 = Release|Win32 {5CF88D5F-64DD-4EDC-9F1A-436BD502940A}.Release SSSE3|Win32.Build.0 = Release|Win32
{5CF88D5F-64DD-4EDC-9F1A-436BD502940A}.Release SSSE3|x64.ActiveCfg = Release|Win32 {5CF88D5F-64DD-4EDC-9F1A-436BD502940A}.Release SSSE3|x64.ActiveCfg = Release|Win32
{5CF88D5F-64DD-4EDC-9F1A-436BD502940A}.Release|Win32.ActiveCfg = Release|Win32
{5CF88D5F-64DD-4EDC-9F1A-436BD502940A}.Release|Win32.Build.0 = Release|Win32
{5CF88D5F-64DD-4EDC-9F1A-436BD502940A}.Release|x64.ActiveCfg = Release|Win32
{5FCBD521-5A0B-4D97-A823-A97E6BAB9101}.Debug|Win32.ActiveCfg = Debug|Win32
{5FCBD521-5A0B-4D97-A823-A97E6BAB9101}.Debug|Win32.Build.0 = Debug|Win32
{5FCBD521-5A0B-4D97-A823-A97E6BAB9101}.Debug|x64.ActiveCfg = Debug|Win32
{5FCBD521-5A0B-4D97-A823-A97E6BAB9101}.Devel|Win32.ActiveCfg = Debug|Win32
{5FCBD521-5A0B-4D97-A823-A97E6BAB9101}.Devel|Win32.Build.0 = Debug|Win32
{5FCBD521-5A0B-4D97-A823-A97E6BAB9101}.Devel|x64.ActiveCfg = Debug|Win32
{5FCBD521-5A0B-4D97-A823-A97E6BAB9101}.Release SSE2|Win32.ActiveCfg = Release|Win32
{5FCBD521-5A0B-4D97-A823-A97E6BAB9101}.Release SSE2|Win32.Build.0 = Release|Win32
{5FCBD521-5A0B-4D97-A823-A97E6BAB9101}.Release SSE2|x64.ActiveCfg = Release|Win32
{5FCBD521-5A0B-4D97-A823-A97E6BAB9101}.Release SSE4|Win32.ActiveCfg = Release|Win32
{5FCBD521-5A0B-4D97-A823-A97E6BAB9101}.Release SSE4|Win32.Build.0 = Release|Win32
{5FCBD521-5A0B-4D97-A823-A97E6BAB9101}.Release SSE4|x64.ActiveCfg = Release|Win32
{5FCBD521-5A0B-4D97-A823-A97E6BAB9101}.Release SSSE3|Win32.ActiveCfg = Release|Win32
{5FCBD521-5A0B-4D97-A823-A97E6BAB9101}.Release SSSE3|Win32.Build.0 = Release|Win32
{5FCBD521-5A0B-4D97-A823-A97E6BAB9101}.Release SSSE3|x64.ActiveCfg = Release|Win32
{5FCBD521-5A0B-4D97-A823-A97E6BAB9101}.Release|Win32.ActiveCfg = Release|Win32
{5FCBD521-5A0B-4D97-A823-A97E6BAB9101}.Release|Win32.Build.0 = Release|Win32
{5FCBD521-5A0B-4D97-A823-A97E6BAB9101}.Release|x64.ActiveCfg = Release|Win32
EndGlobalSection EndGlobalSection
GlobalSection(SolutionProperties) = preSolution GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE HideSolutionNode = FALSE
@ -604,6 +710,7 @@ Global
{3D0EB14D-32F3-4D82-9C6D-B806ADBB859C} = {E1828E40-2FBB-48FE-AE7F-5587755DCE0E} {3D0EB14D-32F3-4D82-9C6D-B806ADBB859C} = {E1828E40-2FBB-48FE-AE7F-5587755DCE0E}
{04439C5F-05FB-4A9C-AAD1-5388C25377DB} = {E1828E40-2FBB-48FE-AE7F-5587755DCE0E} {04439C5F-05FB-4A9C-AAD1-5388C25377DB} = {E1828E40-2FBB-48FE-AE7F-5587755DCE0E}
{F38D9DF0-F68D-49D9-B3A0-932E74FB74A0} = {E1828E40-2FBB-48FE-AE7F-5587755DCE0E} {F38D9DF0-F68D-49D9-B3A0-932E74FB74A0} = {E1828E40-2FBB-48FE-AE7F-5587755DCE0E}
{5FCBD521-5A0B-4D97-A823-A97E6BAB9101} = {E1828E40-2FBB-48FE-AE7F-5587755DCE0E}
{0FADC26C-0E9D-4DD7-84B1-BF4F7754E90C} = {88F517F9-CE1C-4005-9BDF-4481FEB55053} {0FADC26C-0E9D-4DD7-84B1-BF4F7754E90C} = {88F517F9-CE1C-4005-9BDF-4481FEB55053}
{A51123F5-9505-4EAE-85E7-D320290A272C} = {88F517F9-CE1C-4005-9BDF-4481FEB55053} {A51123F5-9505-4EAE-85E7-D320290A272C} = {88F517F9-CE1C-4005-9BDF-4481FEB55053}
{4639972E-424E-4E13-8B07-CA403C481346} = {88F517F9-CE1C-4005-9BDF-4481FEB55053} {4639972E-424E-4E13-8B07-CA403C481346} = {88F517F9-CE1C-4005-9BDF-4481FEB55053}

View File

@ -1,78 +1,73 @@
/* GSnull /* GSnull
* Copyright (C) 2004-2009 PCSX2 Team * Copyright (C) 2004-2009 PCSX2 Team
* *
* This program is free software; you can redistribute it and/or modify * This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by * it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or * the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version. * (at your option) any later version.
* *
* This program is distributed in the hope that it will be useful, * This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of * but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details. * GNU General Public License for more details.
* *
* You should have received a copy of the GNU General Public License * You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software * along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*/ */
#ifndef __GS_H__ #ifndef __GS_H__
#define __GS_H__ #define __GS_H__
#include <stdio.h> struct _keyEvent;
typedef struct _keyEvent keyEvent;
#ifdef _WIN32
#include "Windows/GSwin.h" #include <stdio.h>
#endif
#ifdef _WIN32
#include "Registers.h" # include "Windows/GSwin.h"
#endif
#ifdef __cplusplus
extern "C" #ifdef __LINUX__
{ # include "Linux/GSLinux.h"
#endif #endif
#define GSdefs
#include "PS2Edefs.h" #define GSdefs
#ifdef __cplusplus #include "PS2Edefs.h"
}
#endif #include "Registers.h"
#include "null/GSnull.h"
#ifdef __LINUX__
#include "Linux/GSLinux.h" /*#ifdef _MSC_VER
#endif #define EXPORT_C_(type) extern "C" __declspec(dllexport) type CALLBACK
#else
#include "null/GSnull.h" #define EXPORT_C_(type) extern "C" type
#endif*/
/*#ifdef _MSC_VER
#define EXPORT_C_(type) extern "C" __declspec(dllexport) type CALLBACK #ifdef _MSC_VER
#else #define EXPORT_C_(type) extern "C" type CALLBACK
#define EXPORT_C_(type) extern "C" type #else
#endif*/ #define EXPORT_C_(type) extern "C" type
#endif
#ifdef _MSC_VER
#define EXPORT_C_(type) extern "C" type CALLBACK #define GS_LOG __Log
#else
#define EXPORT_C_(type) extern "C" type typedef struct
#endif {
int Log;
#define GS_LOG __Log } Config;
typedef struct extern Config conf;
{ extern FILE *gsLog;
int Log; extern u32 GSKeyEvent;
} Config; extern bool GSShift, GSAlt;
extern Config conf; extern void (*GSirq)();
extern FILE *gsLog;
extern u32 GSKeyEvent; extern void __Log(char *fmt, ...);
extern bool GSShift, GSAlt; extern void SysMessage(char *fmt, ...);
extern void SysPrintf(const char *fmt, ...);
extern void (*GSirq)(); extern void SaveConfig();
extern void LoadConfig();
extern void __Log(char *fmt, ...);
extern void SysMessage(char *fmt, ...);
extern void SysPrintf(const char *fmt, ...);
extern void SaveConfig();
extern void LoadConfig();
#endif #endif

View File

@ -1,261 +1,259 @@
/* GSnull /* GSnull
* Copyright (C) 2004-2009 PCSX2 Team * Copyright (C) 2004-2009 PCSX2 Team
* *
* This program is free software; you can redistribute it and/or modify * This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by * it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or * the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version. * (at your option) any later version.
* *
* This program is distributed in the hope that it will be useful, * This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of * but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details. * GNU General Public License for more details.
* *
* You should have received a copy of the GNU General Public License * You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software * along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*/ */
// Processes a GIFtag & packet, and throws out some gsIRQs as needed. // Processes a GIFtag & packet, and throws out some gsIRQs as needed.
// Used to keep interrupts in sync with the EE, while the GS itself // Used to keep interrupts in sync with the EE, while the GS itself
// runs potentially several frames behind. // runs potentially several frames behind.
// size - size of the packet in simd128's // size - size of the packet in simd128's
#include "GS.h" #include "GS.h"
#include "GifTransfer.h" #include "GifTransfer.h"
using namespace std; using namespace std;
u32 CSRw; u32 CSRw;
GIFPath m_path[3]; GIFPath m_path[3];
bool Path3transfer; bool Path3transfer;
PCSX2_ALIGNED16( u8 g_RealGSMem[0x2000] ); PCSX2_ALIGNED16( u8 g_RealGSMem[0x2000] );
#define GSCSRr *((u64*)(g_RealGSMem+0x1000)) #define GSCSRr *((u64*)(g_RealGSMem+0x1000))
#define GSIMR *((u32*)(g_RealGSMem+0x1010)) #define GSIMR *((u32*)(g_RealGSMem+0x1010))
#define GSSIGLBLID ((GSRegSIGBLID*)(g_RealGSMem+0x1080)) #define GSSIGLBLID ((GSRegSIGBLID*)(g_RealGSMem+0x1080))
static void RegHandlerSIGNAL(const u32* data) static void RegHandlerSIGNAL(const u32* data)
{ {
GSSIGLBLID->SIGID = (GSSIGLBLID->SIGID&~data[1])|(data[0]&data[1]); GSSIGLBLID->SIGID = (GSSIGLBLID->SIGID&~data[1])|(data[0]&data[1]);
if ((CSRw & 0x1)) GSCSRr |= 1; // signal if ((CSRw & 0x1)) GSCSRr |= 1; // signal
if (!(GSIMR & 0x100) ) GSirq(); if (!(GSIMR & 0x100) ) GSirq();
} }
static void RegHandlerFINISH(const u32* data) static void RegHandlerFINISH(const u32* data)
{ {
if ((CSRw & 0x2)) GSCSRr |= 2; // finish if ((CSRw & 0x2)) GSCSRr |= 2; // finish
if (!(GSIMR & 0x200) ) GSirq(); if (!(GSIMR & 0x200) ) GSirq();
} }
static void RegHandlerLABEL(const u32* data) static void RegHandlerLABEL(const u32* data)
{ {
GSSIGLBLID->LBLID = (GSSIGLBLID->LBLID&~data[1])|(data[0]&data[1]); GSSIGLBLID->LBLID = (GSSIGLBLID->LBLID&~data[1])|(data[0]&data[1]);
} }
typedef void (*GIFRegHandler)(const u32* data); typedef void (*GIFRegHandler)(const u32* data);
static GIFRegHandler s_GSHandlers[3] = static GIFRegHandler s_GSHandlers[3] =
{ {
RegHandlerSIGNAL, RegHandlerFINISH, RegHandlerLABEL RegHandlerSIGNAL, RegHandlerFINISH, RegHandlerLABEL
}; };
__forceinline void GIFPath::PrepRegs() __forceinline void GIFPath::PrepRegs()
{ {
if( tag.nreg == 0 ) if( tag.nreg == 0 )
{ {
u32 tempreg = tag.regs[0]; u32 tempreg = tag.regs[0];
for(u32 i=0; i<16; ++i, tempreg >>= 4) for(u32 i=0; i<16; ++i, tempreg >>= 4)
{ {
if( i == 8 ) tempreg = tag.regs[1]; if( i == 8 ) tempreg = tag.regs[1];
assert( (tempreg&0xf) < 0x64 ); assert( (tempreg&0xf) < 0x64 );
regs[i] = tempreg & 0xf; regs[i] = tempreg & 0xf;
} }
} }
else else
{ {
u32 tempreg = tag.regs[0]; u32 tempreg = tag.regs[0];
for(u32 i=0; i<tag.nreg; ++i, tempreg >>= 4) for(u32 i=0; i<tag.nreg; ++i, tempreg >>= 4)
{ {
assert( (tempreg&0xf) < 0x64 ); assert( (tempreg&0xf) < 0x64 );
regs[i] = tempreg & 0xf; regs[i] = tempreg & 0xf;
} }
} }
} }
void GIFPath::SetTag(const void* mem) void GIFPath::SetTag(const void* mem)
{ {
tag = *((GIFTAG*)mem); tag = *((GIFTAG*)mem);
curreg = 0; curreg = 0;
PrepRegs(); PrepRegs();
} }
u32 GIFPath::GetReg() u32 GIFPath::GetReg()
{ {
return regs[curreg]; return regs[curreg];
} }
bool GIFPath::StepReg() bool GIFPath::StepReg()
{ {
if ((++curreg & 0xf) == tag.nreg) if ((++curreg & 0xf) == tag.nreg) {
{ curreg = 0;
curreg = 0; if (--tag.nloop == 0) {
return false;
if(--tag.nloop == 0) }
{ }
return false; return true;
} }
}
} __forceinline u32 _gifTransfer( GIF_PATH pathidx, const u8* pMem, u32 size )
{ GIFPath& path = m_path[pathidx];
__forceinline u32 _gifTransfer( GIF_PATH pathidx, const u8* pMem, u32 size )
{ GIFPath& path = m_path[pathidx]; while(size > 0)
{
while(size > 0) if(path.tag.nloop == 0)
{ {
if(path.tag.nloop == 0) path.SetTag( pMem );
{
path.SetTag( pMem ); pMem += sizeof(GIFTAG);
--size;
pMem += sizeof(GIFTAG);
--size; if(pathidx == 2 && path.tag.eop)
{
if(pathidx == 2 && path.tag.eop) Path3transfer = FALSE;
{ }
Path3transfer = FALSE;
} if( pathidx == 0 )
{
if( pathidx == 0 ) // hack: if too much data for VU1, just ignore.
{
// hack: if too much data for VU1, just ignore. // The GIF is evil : if nreg is 0, it's really 16. Otherwise it's the value in nreg.
const int numregs = ((path.tag.nreg-1)&15)+1;
// The GIF is evil : if nreg is 0, it's really 16. Otherwise it's the value in nreg.
const int numregs = ((path.tag.nreg-1)&15)+1; if((path.tag.nloop * numregs) > (size * ((path.tag.flg == 1) ? 2 : 1)))
{
if((path.tag.nloop * numregs) > (size * ((path.tag.flg == 1) ? 2 : 1))) path.tag.nloop = 0;
{ return ++size;
path.tag.nloop = 0; }
return ++size; }
} }
} else
} {
else // NOTE: size > 0 => do {} while(size > 0); should be faster than while(size > 0) {}
{
// NOTE: size > 0 => do {} while(size > 0); should be faster than while(size > 0) {} switch(path.tag.flg)
{
switch(path.tag.flg) case GIF_FLG_PACKED:
{
case GIF_FLG_PACKED: do
{
do if( path.GetReg() == 0xe )
{ {
if( path.GetReg() == 0xe ) const int handler = pMem[8];
{ if(handler >= 0x60 && handler < 0x63)
const int handler = pMem[8]; s_GSHandlers[handler&0x3]((const u32*)pMem);
if(handler >= 0x60 && handler < 0x63) }
s_GSHandlers[handler&0x3]((const u32*)pMem);
} size--;
pMem += 16; // 128 bits! //sizeof(GIFPackedReg);
size--; }
pMem += 16; // 128 bits! //sizeof(GIFPackedReg); while(path.StepReg() && size > 0);
}
while(path.StepReg() && size > 0); break;
break; case GIF_FLG_REGLIST:
case GIF_FLG_REGLIST: size *= 2;
size *= 2; do
{
do const int handler = path.GetReg();
{ if(handler >= 0x60 && handler < 0x63)
const int handler = path.GetReg(); s_GSHandlers[handler&0x3]((const u32*)pMem);
if(handler >= 0x60 && handler < 0x63)
s_GSHandlers[handler&0x3]((const u32*)pMem); size--;
pMem += 8; //sizeof(GIFReg); -- 64 bits!
size--; }
pMem += 8; //sizeof(GIFReg); -- 64 bits! while(path.StepReg() && size > 0);
}
while(path.StepReg() && size > 0); if(size & 1) pMem += 8; //sizeof(GIFReg);
if(size & 1) pMem += 8; //sizeof(GIFReg); size /= 2;
size /= 2; break;
break; case GIF_FLG_IMAGE2: // hmmm
assert(0);
case GIF_FLG_IMAGE2: // hmmm path.tag.nloop = 0;
assert(0);
path.tag.nloop = 0; break;
break; case GIF_FLG_IMAGE:
{
case GIF_FLG_IMAGE: int len = (int)min(size, path.tag.nloop);
{
int len = (int)min(size, path.tag.nloop); pMem += len * 16;
path.tag.nloop -= len;
pMem += len * 16; size -= len;
path.tag.nloop -= len; }
size -= len; break;
}
break; jNO_DEFAULT;
jNO_DEFAULT; }
}
}
} if(pathidx == 0)
{
if(pathidx == 0) if(path.tag.eop && path.tag.nloop == 0)
{ {
if(path.tag.eop && path.tag.nloop == 0) break;
{ }
break; }
} }
}
} if(pathidx == 0)
{
if(pathidx == 0) if(size == 0 && path.tag.nloop > 0)
{ {
if(size == 0 && path.tag.nloop > 0) path.tag.nloop = 0;
{ SysPrintf( "path1 hack! \n" );
path.tag.nloop = 0;
SysPrintf( "path1 hack! \n" ); // This means that the giftag data got screwly somewhere
// along the way (often means curreg was in a bad state or something)
// This means that the giftag data got screwly somewhere }
// along the way (often means curreg was in a bad state or something) }
}
} return size;
}
return size;
} // This currently segfaults in the beginning of KH1 if defined.
//#define DO_GIF_TRANSFERS
// This currently segfaults in the beginning of KH1 if defined.
//#define DO_GIF_TRANSFERS void _GSgifTransfer1(u32 *pMem, u32 addr)
{
void _GSgifTransfer1(u32 *pMem, u32 addr) #ifdef DO_GIF_TRANSFERS
{ /* This needs looking at, since I quickly grabbed it from ZeroGS. */
#ifdef DO_GIF_TRANSFERS addr &= 0x3fff;
/* This needs looking at, since I quickly grabbed it from ZeroGS. */ _gifTransfer( GIF_PATH_1, ((u8*)pMem+(u8)addr), (0x4000-addr)/16);
addr &= 0x3fff; #endif
_gifTransfer( GIF_PATH_1, ((u8*)pMem+(u8)addr), (0x4000-addr)/16); }
#endif
} void _GSgifTransfer2(u32 *pMem, u32 size)
{
void _GSgifTransfer2(u32 *pMem, u32 size) #ifdef DO_GIF_TRANSFERS
{ _gifTransfer( GIF_PATH_2, (u8*)pMem, size);
#ifdef DO_GIF_TRANSFERS #endif
_gifTransfer( GIF_PATH_2, (u8*)pMem, size); }
#endif
} void _GSgifTransfer3(u32 *pMem, u32 size)
{
void _GSgifTransfer3(u32 *pMem, u32 size) #ifdef DO_GIF_TRANSFERS
{ _gifTransfer( GIF_PATH_3, (u8*)pMem, size);
#ifdef DO_GIF_TRANSFERS #endif
_gifTransfer( GIF_PATH_3, (u8*)pMem, size); }
#endif
}

View File

@ -1,33 +1,31 @@
/* GSnull /* GSnull
* Copyright (C) 2004-2009 PCSX2 Team * Copyright (C) 2004-2009 PCSX2 Team
* *
* This program is free software; you can redistribute it and/or modify * This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by * it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or * the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version. * (at your option) any later version.
* *
* This program is distributed in the hope that it will be useful, * This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of * but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details. * GNU General Public License for more details.
* *
* You should have received a copy of the GNU General Public License * You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software * along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*/ */
#ifndef __GSLINUX_H__ #ifndef __GSLINUX_H__
#define __GSLINUX_H__ #define __GSLINUX_H__
#include <gtk/gtk.h> #include <gtk/gtk.h>
#include <X11/Xlib.h> #include <X11/Xlib.h>
#include <X11/keysym.h> #include <X11/keysym.h>
#include "GS.h"
extern int GSOpenWindow(void *pDsp, char *Title); extern int GSOpenWindow(void *pDsp, char *Title);
extern void GSCloseWindow(); extern void GSCloseWindow();
extern void GSProcessMessages(); extern void GSProcessMessages();
extern void HandleKeyEvent(keyEvent *ev); extern void HandleKeyEvent(keyEvent *ev);
#endif #endif

View File

@ -3,7 +3,7 @@
ProjectType="Visual C++" ProjectType="Visual C++"
Version="9.00" Version="9.00"
Name="GSnull" Name="GSnull"
ProjectGUID="{3D0EB14D-32F3-4D82-9C6D-B806ADBB859C}" ProjectGUID="{5FCBD521-5A0B-4D97-A823-A97E6BAB9101}"
RootNamespace="GSnull" RootNamespace="GSnull"
Keyword="Win32Proj" Keyword="Win32Proj"
TargetFrameworkVersion="131072" TargetFrameworkVersion="131072"
@ -39,9 +39,6 @@
/> />
<Tool <Tool
Name="VCCLCompilerTool" Name="VCCLCompilerTool"
Optimization="0"
BasicRuntimeChecks="3"
RuntimeLibrary="1"
UsePrecompiledHeader="0" UsePrecompiledHeader="0"
/> />
<Tool <Tool
@ -56,7 +53,6 @@
<Tool <Tool
Name="VCLinkerTool" Name="VCLinkerTool"
ModuleDefinitionFile="GS.def" ModuleDefinitionFile="GS.def"
RandomizedBaseAddress="1"
TargetMachine="1" TargetMachine="1"
/> />
<Tool <Tool
@ -105,10 +101,6 @@
/> />
<Tool <Tool
Name="VCCLCompilerTool" Name="VCCLCompilerTool"
Optimization="2"
InlineFunctionExpansion="2"
OmitFramePointers="true"
RuntimeLibrary="0"
UsePrecompiledHeader="0" UsePrecompiledHeader="0"
/> />
<Tool <Tool
@ -123,7 +115,6 @@
<Tool <Tool
Name="VCLinkerTool" Name="VCLinkerTool"
ModuleDefinitionFile="GS.def" ModuleDefinitionFile="GS.def"
RandomizedBaseAddress="1"
TargetMachine="1" TargetMachine="1"
/> />
<Tool <Tool

View File

@ -1,22 +1,22 @@
/* GSnull /* GSnull
* Copyright (C) 2004-2009 PCSX2 Team * Copyright (C) 2004-2009 PCSX2 Team
* *
* This program is free software; you can redistribute it and/or modify * This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by * it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or * the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version. * (at your option) any later version.
* *
* This program is distributed in the hope that it will be useful, * This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of * but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details. * GNU General Public License for more details.
* *
* You should have received a copy of the GNU General Public License * You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software * along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*/ */
#include "GSwin.h" #include "../GS.h"
HINSTANCE HInst; HINSTANCE HInst;
HWND GShwnd; HWND GShwnd;

View File

@ -1,36 +1,28 @@
/* GSnull /* GSnull
* Copyright (C) 2004-2009 PCSX2 Team * Copyright (C) 2004-2009 PCSX2 Team
* *
* This program is free software; you can redistribute it and/or modify * This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by * it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or * the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version. * (at your option) any later version.
* *
* This program is distributed in the hope that it will be useful, * This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of * but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details. * GNU General Public License for more details.
* *
* You should have received a copy of the GNU General Public License * You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software * along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*/ */
#include <windows.h> #pragma once
#include <windowsx.h>
#include "../GS.h" #include <windows.h>
#include <windowsx.h>
#ifdef __cplusplus
extern "C" extern int GSOpenWindow(void *pDsp, char *Title);
{ extern void GSCloseWindow();
#endif extern void GSProcessMessages();
#define GSdefs extern void HandleKeyEvent(keyEvent *ev);
#include "PS2Edefs.h"
#ifdef __cplusplus
}
#endif
int GSOpenWindow(void *pDsp, char *Title);
void GSCloseWindow();
void GSProcessMessages();
void HandleKeyEvent(keyEvent *ev);