diff --git a/common/src/Utilities/Linux/LnxHostSys.cpp b/common/src/Utilities/Linux/LnxHostSys.cpp index eb99a3192d..ec2e900f06 100644 --- a/common/src/Utilities/Linux/LnxHostSys.cpp +++ b/common/src/Utilities/Linux/LnxHostSys.cpp @@ -27,7 +27,7 @@ namespace HostSys { u8 *Mem; 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; } diff --git a/common/src/x86emitter/tools.cpp b/common/src/x86emitter/tools.cpp index ad45b1f4b9..36b4801802 100644 --- a/common/src/x86emitter/tools.cpp +++ b/common/src/x86emitter/tools.cpp @@ -42,12 +42,12 @@ namespace MMXRegisters { if (!g_EEFreezeRegs) return; - //DevCon.Notice("MMXRegisters::Freeze: depth[%d]\n", stack_depth); + //DevCon.Warning("MMXRegisters::Freeze: depth[%d]\n", stack_depth); stack_depth++; if (stack_depth > 1) { - //DevCon.Notice("MMX Already Saved!\n"); + //DevCon.Warning("MMX Already Saved!\n"); return; } @@ -85,11 +85,11 @@ namespace MMXRegisters { if (!g_EEFreezeRegs) return; - //DevCon.Notice("MMXRegisters::Thaw: depth[%d]\n", stack_depth); + //DevCon.Warning("MMXRegisters::Thaw: depth[%d]\n", stack_depth); if (!Saved()) { - //DevCon.Notice("MMX Not Saved!\n"); + //DevCon.Warning("MMX Not Saved!\n"); return; } stack_depth--; @@ -145,13 +145,13 @@ namespace XMMRegisters { if (!g_EEFreezeRegs) return; - //DevCon.Notice("XMMRegisters::Freeze: depth[%d]\n", Depth()); + //DevCon.Warning("XMMRegisters::Freeze: depth[%d]\n", Depth()); stack_depth++; if (stack_depth > 1) { - //DevCon.Notice("XMM Already saved\n"); + //DevCon.Warning("XMM Already saved\n"); return; } @@ -187,11 +187,11 @@ namespace XMMRegisters { if (!g_EEFreezeRegs) return; - //DevCon.Notice("XMMRegisters::Thaw: depth[%d]\n", Depth()); + //DevCon.Warning("XMMRegisters::Thaw: depth[%d]\n", Depth()); if (!Saved()) { - //DevCon.Notice("XMM Regs not saved!\n"); + //DevCon.Warning("XMM Regs not saved!\n"); return; } diff --git a/pcsx2/gui/ConsoleLogger.cpp b/pcsx2/gui/ConsoleLogger.cpp index f9b08d9318..c882f115ad 100644 --- a/pcsx2/gui/ConsoleLogger.cpp +++ b/pcsx2/gui/ConsoleLogger.cpp @@ -25,6 +25,7 @@ #ifdef __WXMSW__ # include // needed for OutputDebugStirng +# include #endif 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.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) wxMenuBar *pMenuBar = new wxMenuBar(); wxMenu& menuLog = *new wxMenu(); diff --git a/pcsx2_suite_2008.sln b/pcsx2_suite_2008.sln index aa696e6bf0..d72e6c3e0a 100644 --- a/pcsx2_suite_2008.sln +++ b/pcsx2_suite_2008.sln @@ -140,6 +140,8 @@ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "w32pthreads_lib", "3rdparty EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "cdvdGigaherz", "plugins\cdvdGigaherz\src\Windows\cdvdGigaherz2008.vcproj", "{5CF88D5F-64DD-4EDC-9F1A-436BD502940A}" EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "GSnull", "plugins\GSnull\Windows\GSnull_vc2008.vcproj", "{5FCBD521-5A0B-4D97-A823-A97E6BAB9101}" +EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Win32 = Debug|Win32 @@ -152,6 +154,8 @@ Global Release SSE4|x64 = Release SSE4|x64 Release SSSE3|Win32 = Release SSSE3|Win32 Release SSSE3|x64 = Release SSSE3|x64 + Release|Win32 = Release|Win32 + Release|x64 = Release|x64 EndGlobalSection GlobalSection(ProjectConfigurationPlatforms) = postSolution {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.Build.0 = 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.Build.0 = 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.Build.0 = 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.Build.0 = 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.Build.0 = 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.Build.0 = 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.Build.0 = 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.Build.0 = Debug SSE2|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.Build.0 = 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.Build.0 = 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.Build.0 = 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.Build.0 = 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.Build.0 = 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.Build.0 = 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.Build.0 = 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.Build.0 = 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.Build.0 = 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.Build.0 = 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.Build.0 = 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.Build.0 = 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.Build.0 = 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.Build.0 = 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.Build.0 = Release|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.Build.0 = 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.Build.0 = Release|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.Build.0 = 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.Build.0 = 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.Build.0 = 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.Build.0 = 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.Build.0 = 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.Build.0 = 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.Build.0 = 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.Build.0 = 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.Build.0 = 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.Build.0 = 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.Build.0 = 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.Build.0 = 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.Build.0 = 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.Build.0 = 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.Build.0 = 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.Build.0 = 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.Build.0 = 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.Build.0 = 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.Build.0 = 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.Build.0 = 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.Build.0 = Release|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.Build.0 = 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.Build.0 = 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.Build.0 = 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.Build.0 = 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.Build.0 = 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.Build.0 = 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.Build.0 = 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.Build.0 = 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.Build.0 = 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 GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE @@ -604,6 +710,7 @@ Global {3D0EB14D-32F3-4D82-9C6D-B806ADBB859C} = {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} + {5FCBD521-5A0B-4D97-A823-A97E6BAB9101} = {E1828E40-2FBB-48FE-AE7F-5587755DCE0E} {0FADC26C-0E9D-4DD7-84B1-BF4F7754E90C} = {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} diff --git a/plugins/GSnull/GS.h b/plugins/GSnull/GS.h index 9b3572e48d..9bdcef2ca8 100644 --- a/plugins/GSnull/GS.h +++ b/plugins/GSnull/GS.h @@ -1,78 +1,73 @@ -/* GSnull - * Copyright (C) 2004-2009 PCSX2 Team - * - * 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 - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA - */ - -#ifndef __GS_H__ -#define __GS_H__ - -#include - -#ifdef _WIN32 -#include "Windows/GSwin.h" -#endif - -#include "Registers.h" - -#ifdef __cplusplus -extern "C" -{ -#endif -#define GSdefs -#include "PS2Edefs.h" -#ifdef __cplusplus -} -#endif - -#ifdef __LINUX__ -#include "Linux/GSLinux.h" -#endif - -#include "null/GSnull.h" - -/*#ifdef _MSC_VER -#define EXPORT_C_(type) extern "C" __declspec(dllexport) type CALLBACK -#else -#define EXPORT_C_(type) extern "C" type -#endif*/ - -#ifdef _MSC_VER -#define EXPORT_C_(type) extern "C" type CALLBACK -#else -#define EXPORT_C_(type) extern "C" type -#endif - -#define GS_LOG __Log - -typedef struct -{ - int Log; -} Config; - -extern Config conf; -extern FILE *gsLog; -extern u32 GSKeyEvent; -extern bool GSShift, GSAlt; - -extern void (*GSirq)(); - -extern void __Log(char *fmt, ...); -extern void SysMessage(char *fmt, ...); -extern void SysPrintf(const char *fmt, ...); -extern void SaveConfig(); -extern void LoadConfig(); - +/* GSnull + * Copyright (C) 2004-2009 PCSX2 Team + * + * 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 + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + */ + +#ifndef __GS_H__ +#define __GS_H__ + +struct _keyEvent; +typedef struct _keyEvent keyEvent; + +#include + +#ifdef _WIN32 +# include "Windows/GSwin.h" +#endif + +#ifdef __LINUX__ +# include "Linux/GSLinux.h" +#endif + +#define GSdefs +#include "PS2Edefs.h" + +#include "Registers.h" +#include "null/GSnull.h" + +/*#ifdef _MSC_VER +#define EXPORT_C_(type) extern "C" __declspec(dllexport) type CALLBACK +#else +#define EXPORT_C_(type) extern "C" type +#endif*/ + +#ifdef _MSC_VER +#define EXPORT_C_(type) extern "C" type CALLBACK +#else +#define EXPORT_C_(type) extern "C" type +#endif + +#define GS_LOG __Log + +typedef struct +{ + int Log; +} Config; + +extern Config conf; +extern FILE *gsLog; +extern u32 GSKeyEvent; +extern bool GSShift, GSAlt; + +extern void (*GSirq)(); + +extern void __Log(char *fmt, ...); +extern void SysMessage(char *fmt, ...); +extern void SysPrintf(const char *fmt, ...); +extern void SaveConfig(); +extern void LoadConfig(); + #endif \ No newline at end of file diff --git a/plugins/GSnull/GifTransfer.cpp b/plugins/GSnull/GifTransfer.cpp index c227e6e080..1bde837c73 100644 --- a/plugins/GSnull/GifTransfer.cpp +++ b/plugins/GSnull/GifTransfer.cpp @@ -1,261 +1,259 @@ -/* GSnull - * Copyright (C) 2004-2009 PCSX2 Team - * - * 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 - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of -* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA - */ - - // Processes a GIFtag & packet, and throws out some gsIRQs as needed. -// Used to keep interrupts in sync with the EE, while the GS itself -// runs potentially several frames behind. -// size - size of the packet in simd128's - -#include "GS.h" -#include "GifTransfer.h" - -using namespace std; - -u32 CSRw; -GIFPath m_path[3]; -bool Path3transfer; - -PCSX2_ALIGNED16( u8 g_RealGSMem[0x2000] ); -#define GSCSRr *((u64*)(g_RealGSMem+0x1000)) -#define GSIMR *((u32*)(g_RealGSMem+0x1010)) -#define GSSIGLBLID ((GSRegSIGBLID*)(g_RealGSMem+0x1080)) - -static void RegHandlerSIGNAL(const u32* data) -{ - GSSIGLBLID->SIGID = (GSSIGLBLID->SIGID&~data[1])|(data[0]&data[1]); - - if ((CSRw & 0x1)) GSCSRr |= 1; // signal - - if (!(GSIMR & 0x100) ) GSirq(); -} - -static void RegHandlerFINISH(const u32* data) -{ - if ((CSRw & 0x2)) GSCSRr |= 2; // finish - - if (!(GSIMR & 0x200) ) GSirq(); - -} - -static void RegHandlerLABEL(const u32* data) -{ - GSSIGLBLID->LBLID = (GSSIGLBLID->LBLID&~data[1])|(data[0]&data[1]); -} - -typedef void (*GIFRegHandler)(const u32* data); -static GIFRegHandler s_GSHandlers[3] = -{ - RegHandlerSIGNAL, RegHandlerFINISH, RegHandlerLABEL -}; - -__forceinline void GIFPath::PrepRegs() -{ - if( tag.nreg == 0 ) - { - u32 tempreg = tag.regs[0]; - for(u32 i=0; i<16; ++i, tempreg >>= 4) - { - if( i == 8 ) tempreg = tag.regs[1]; - assert( (tempreg&0xf) < 0x64 ); - regs[i] = tempreg & 0xf; - } - } - else - { - u32 tempreg = tag.regs[0]; - for(u32 i=0; i>= 4) - { - assert( (tempreg&0xf) < 0x64 ); - regs[i] = tempreg & 0xf; - } - } -} - -void GIFPath::SetTag(const void* mem) -{ - tag = *((GIFTAG*)mem); - curreg = 0; - - PrepRegs(); -} - -u32 GIFPath::GetReg() -{ - return regs[curreg]; -} - -bool GIFPath::StepReg() -{ - if ((++curreg & 0xf) == tag.nreg) - { - curreg = 0; - - if(--tag.nloop == 0) - { - return false; - } - } -} - -__forceinline u32 _gifTransfer( GIF_PATH pathidx, const u8* pMem, u32 size ) -{ GIFPath& path = m_path[pathidx]; - - while(size > 0) - { - if(path.tag.nloop == 0) - { - path.SetTag( pMem ); - - pMem += sizeof(GIFTAG); - --size; - - if(pathidx == 2 && path.tag.eop) - { - Path3transfer = FALSE; - } - - if( pathidx == 0 ) - { - // 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; - - if((path.tag.nloop * numregs) > (size * ((path.tag.flg == 1) ? 2 : 1))) - { - path.tag.nloop = 0; - return ++size; - } - } - } - else - { - // NOTE: size > 0 => do {} while(size > 0); should be faster than while(size > 0) {} - - switch(path.tag.flg) - { - case GIF_FLG_PACKED: - - do - { - if( path.GetReg() == 0xe ) - { - const int handler = pMem[8]; - if(handler >= 0x60 && handler < 0x63) - s_GSHandlers[handler&0x3]((const u32*)pMem); - } - - size--; - pMem += 16; // 128 bits! //sizeof(GIFPackedReg); - } - while(path.StepReg() && size > 0); - - break; - - case GIF_FLG_REGLIST: - - size *= 2; - - do - { - const int handler = path.GetReg(); - if(handler >= 0x60 && handler < 0x63) - s_GSHandlers[handler&0x3]((const u32*)pMem); - - size--; - pMem += 8; //sizeof(GIFReg); -- 64 bits! - } - while(path.StepReg() && size > 0); - - if(size & 1) pMem += 8; //sizeof(GIFReg); - - size /= 2; - - break; - - case GIF_FLG_IMAGE2: // hmmm - assert(0); - path.tag.nloop = 0; - - break; - - case GIF_FLG_IMAGE: - { - int len = (int)min(size, path.tag.nloop); - - pMem += len * 16; - path.tag.nloop -= len; - size -= len; - } - break; - - jNO_DEFAULT; - - } - } - - if(pathidx == 0) - { - if(path.tag.eop && path.tag.nloop == 0) - { - break; - } - } - } - - if(pathidx == 0) - { - if(size == 0 && path.tag.nloop > 0) - { - 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) - } - } - - return size; -} - -// This currently segfaults in the beginning of KH1 if defined. -//#define DO_GIF_TRANSFERS - -void _GSgifTransfer1(u32 *pMem, u32 addr) -{ -#ifdef DO_GIF_TRANSFERS - /* This needs looking at, since I quickly grabbed it from ZeroGS. */ - addr &= 0x3fff; - _gifTransfer( GIF_PATH_1, ((u8*)pMem+(u8)addr), (0x4000-addr)/16); -#endif -} - -void _GSgifTransfer2(u32 *pMem, u32 size) -{ -#ifdef DO_GIF_TRANSFERS - _gifTransfer( GIF_PATH_2, (u8*)pMem, size); -#endif -} - -void _GSgifTransfer3(u32 *pMem, u32 size) -{ -#ifdef DO_GIF_TRANSFERS - _gifTransfer( GIF_PATH_3, (u8*)pMem, size); -#endif -} - +/* GSnull + * Copyright (C) 2004-2009 PCSX2 Team + * + * 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 + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of +* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + */ + + // Processes a GIFtag & packet, and throws out some gsIRQs as needed. +// Used to keep interrupts in sync with the EE, while the GS itself +// runs potentially several frames behind. +// size - size of the packet in simd128's + +#include "GS.h" +#include "GifTransfer.h" + +using namespace std; + +u32 CSRw; +GIFPath m_path[3]; +bool Path3transfer; + +PCSX2_ALIGNED16( u8 g_RealGSMem[0x2000] ); +#define GSCSRr *((u64*)(g_RealGSMem+0x1000)) +#define GSIMR *((u32*)(g_RealGSMem+0x1010)) +#define GSSIGLBLID ((GSRegSIGBLID*)(g_RealGSMem+0x1080)) + +static void RegHandlerSIGNAL(const u32* data) +{ + GSSIGLBLID->SIGID = (GSSIGLBLID->SIGID&~data[1])|(data[0]&data[1]); + + if ((CSRw & 0x1)) GSCSRr |= 1; // signal + + if (!(GSIMR & 0x100) ) GSirq(); +} + +static void RegHandlerFINISH(const u32* data) +{ + if ((CSRw & 0x2)) GSCSRr |= 2; // finish + + if (!(GSIMR & 0x200) ) GSirq(); + +} + +static void RegHandlerLABEL(const u32* data) +{ + GSSIGLBLID->LBLID = (GSSIGLBLID->LBLID&~data[1])|(data[0]&data[1]); +} + +typedef void (*GIFRegHandler)(const u32* data); +static GIFRegHandler s_GSHandlers[3] = +{ + RegHandlerSIGNAL, RegHandlerFINISH, RegHandlerLABEL +}; + +__forceinline void GIFPath::PrepRegs() +{ + if( tag.nreg == 0 ) + { + u32 tempreg = tag.regs[0]; + for(u32 i=0; i<16; ++i, tempreg >>= 4) + { + if( i == 8 ) tempreg = tag.regs[1]; + assert( (tempreg&0xf) < 0x64 ); + regs[i] = tempreg & 0xf; + } + } + else + { + u32 tempreg = tag.regs[0]; + for(u32 i=0; i>= 4) + { + assert( (tempreg&0xf) < 0x64 ); + regs[i] = tempreg & 0xf; + } + } +} + +void GIFPath::SetTag(const void* mem) +{ + tag = *((GIFTAG*)mem); + curreg = 0; + + PrepRegs(); +} + +u32 GIFPath::GetReg() +{ + return regs[curreg]; +} + +bool GIFPath::StepReg() +{ + if ((++curreg & 0xf) == tag.nreg) { + curreg = 0; + if (--tag.nloop == 0) { + return false; + } + } + return true; +} + +__forceinline u32 _gifTransfer( GIF_PATH pathidx, const u8* pMem, u32 size ) +{ GIFPath& path = m_path[pathidx]; + + while(size > 0) + { + if(path.tag.nloop == 0) + { + path.SetTag( pMem ); + + pMem += sizeof(GIFTAG); + --size; + + if(pathidx == 2 && path.tag.eop) + { + Path3transfer = FALSE; + } + + if( pathidx == 0 ) + { + // 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; + + if((path.tag.nloop * numregs) > (size * ((path.tag.flg == 1) ? 2 : 1))) + { + path.tag.nloop = 0; + return ++size; + } + } + } + else + { + // NOTE: size > 0 => do {} while(size > 0); should be faster than while(size > 0) {} + + switch(path.tag.flg) + { + case GIF_FLG_PACKED: + + do + { + if( path.GetReg() == 0xe ) + { + const int handler = pMem[8]; + if(handler >= 0x60 && handler < 0x63) + s_GSHandlers[handler&0x3]((const u32*)pMem); + } + + size--; + pMem += 16; // 128 bits! //sizeof(GIFPackedReg); + } + while(path.StepReg() && size > 0); + + break; + + case GIF_FLG_REGLIST: + + size *= 2; + + do + { + const int handler = path.GetReg(); + if(handler >= 0x60 && handler < 0x63) + s_GSHandlers[handler&0x3]((const u32*)pMem); + + size--; + pMem += 8; //sizeof(GIFReg); -- 64 bits! + } + while(path.StepReg() && size > 0); + + if(size & 1) pMem += 8; //sizeof(GIFReg); + + size /= 2; + + break; + + case GIF_FLG_IMAGE2: // hmmm + assert(0); + path.tag.nloop = 0; + + break; + + case GIF_FLG_IMAGE: + { + int len = (int)min(size, path.tag.nloop); + + pMem += len * 16; + path.tag.nloop -= len; + size -= len; + } + break; + + jNO_DEFAULT; + + } + } + + if(pathidx == 0) + { + if(path.tag.eop && path.tag.nloop == 0) + { + break; + } + } + } + + if(pathidx == 0) + { + if(size == 0 && path.tag.nloop > 0) + { + 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) + } + } + + return size; +} + +// This currently segfaults in the beginning of KH1 if defined. +//#define DO_GIF_TRANSFERS + +void _GSgifTransfer1(u32 *pMem, u32 addr) +{ +#ifdef DO_GIF_TRANSFERS + /* This needs looking at, since I quickly grabbed it from ZeroGS. */ + addr &= 0x3fff; + _gifTransfer( GIF_PATH_1, ((u8*)pMem+(u8)addr), (0x4000-addr)/16); +#endif +} + +void _GSgifTransfer2(u32 *pMem, u32 size) +{ +#ifdef DO_GIF_TRANSFERS + _gifTransfer( GIF_PATH_2, (u8*)pMem, size); +#endif +} + +void _GSgifTransfer3(u32 *pMem, u32 size) +{ +#ifdef DO_GIF_TRANSFERS + _gifTransfer( GIF_PATH_3, (u8*)pMem, size); +#endif +} + diff --git a/plugins/GSnull/Linux/GSLinux.h b/plugins/GSnull/Linux/GSLinux.h index d4f1303a9b..707658087c 100644 --- a/plugins/GSnull/Linux/GSLinux.h +++ b/plugins/GSnull/Linux/GSLinux.h @@ -1,33 +1,31 @@ -/* GSnull - * Copyright (C) 2004-2009 PCSX2 Team - * - * 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 - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA - */ - -#ifndef __GSLINUX_H__ -#define __GSLINUX_H__ - -#include -#include -#include - -#include "GS.h" +/* GSnull + * Copyright (C) 2004-2009 PCSX2 Team + * + * 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 + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + */ + +#ifndef __GSLINUX_H__ +#define __GSLINUX_H__ + +#include +#include +#include extern int GSOpenWindow(void *pDsp, char *Title); extern void GSCloseWindow(); extern void GSProcessMessages(); -extern void HandleKeyEvent(keyEvent *ev); - -#endif +extern void HandleKeyEvent(keyEvent *ev); + +#endif diff --git a/plugins/GSnull/Windows/GSnull_vc2008.vcproj b/plugins/GSnull/Windows/GSnull_vc2008.vcproj index dbf04367b1..c55ab5291b 100644 --- a/plugins/GSnull/Windows/GSnull_vc2008.vcproj +++ b/plugins/GSnull/Windows/GSnull_vc2008.vcproj @@ -3,7 +3,7 @@ ProjectType="Visual C++" Version="9.00" Name="GSnull" - ProjectGUID="{3D0EB14D-32F3-4D82-9C6D-B806ADBB859C}" + ProjectGUID="{5FCBD521-5A0B-4D97-A823-A97E6BAB9101}" RootNamespace="GSnull" Keyword="Win32Proj" TargetFrameworkVersion="131072" @@ -39,9 +39,6 @@ /> -#include -#include "../GS.h" - -#ifdef __cplusplus -extern "C" -{ -#endif -#define GSdefs -#include "PS2Edefs.h" -#ifdef __cplusplus -} -#endif +/* GSnull + * Copyright (C) 2004-2009 PCSX2 Team + * + * 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 + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + */ + +#pragma once + +#include +#include + +extern int GSOpenWindow(void *pDsp, char *Title); +extern void GSCloseWindow(); +extern void GSProcessMessages(); +extern void HandleKeyEvent(keyEvent *ev); -int GSOpenWindow(void *pDsp, char *Title); -void GSCloseWindow(); -void GSProcessMessages(); -void HandleKeyEvent(keyEvent *ev); \ No newline at end of file