Merged CxbxKrnl.DLL into Cxbx.exe

Fixes issue #202
This commit is contained in:
PatrickvL 2017-03-01 15:54:33 +01:00
parent 7ae14cc1db
commit a3aad91231
24 changed files with 1055 additions and 2207 deletions

View File

@ -4,11 +4,6 @@ Microsoft Visual Studio Solution File, Format Version 12.00
VisualStudioVersion = 14.0.25420.1
MinimumVisualStudioVersion = 10.0.40219.1
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Cxbx", "Cxbx.vcxproj", "{E7A72D3D-5810-4078-A243-348B59726365}"
ProjectSection(ProjectDependencies) = postProject
{22592F16-CC5F-45CB-A40A-022FF6FCC146} = {22592F16-CC5F-45CB-A40A-022FF6FCC146}
EndProjectSection
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "CxbxKrnl", "CxbxKrnl.vcxproj", "{22592F16-CC5F-45CB-A40A-022FF6FCC146}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
@ -20,10 +15,6 @@ Global
{E7A72D3D-5810-4078-A243-348B59726365}.Debug|Win32.Build.0 = Debug|Win32
{E7A72D3D-5810-4078-A243-348B59726365}.Release|Win32.ActiveCfg = Release|Win32
{E7A72D3D-5810-4078-A243-348B59726365}.Release|Win32.Build.0 = Release|Win32
{22592F16-CC5F-45CB-A40A-022FF6FCC146}.Debug|Win32.ActiveCfg = Debug|Win32
{22592F16-CC5F-45CB-A40A-022FF6FCC146}.Debug|Win32.Build.0 = Debug|Win32
{22592F16-CC5F-45CB-A40A-022FF6FCC146}.Release|Win32.ActiveCfg = Release|Win32
{22592F16-CC5F-45CB-A40A-022FF6FCC146}.Release|Win32.Build.0 = Release|Win32
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE

View File

@ -42,7 +42,7 @@
<PropertyGroup Label="UserMacros" />
<PropertyGroup>
<_ProjectFileVersion>10.0.40219.1</_ProjectFileVersion>
<LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</LinkIncremental>
<LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">false</LinkIncremental>
<LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">false</LinkIncremental>
<CodeAnalysisRuleSet Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">AllRules.ruleset</CodeAnalysisRuleSet>
<CodeAnalysisRules Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" />
@ -67,7 +67,7 @@
</Midl>
<ClCompile>
<Optimization>Disabled</Optimization>
<AdditionalIncludeDirectories>..\..\src\Common;..\..\src;..\..\src\Common\Win32;..\..\import\stb;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<AdditionalIncludeDirectories>..\..\src\Common;..\..\src;..\..\src\Common\Win32;..\..\import\stb;%(AdditionalIncludeDirectories);..\..\import\OpenXDK\include;..\..\import\distorm\include;..\..\import\glew-2.0.0\include;..\..\src;..\..\src\Common;..\..\src\Common\Win32</AdditionalIncludeDirectories>
<PreprocessorDefinitions>WIN32;_DEBUG;_WINDOWS;_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<MinimalRebuild>true</MinimalRebuild>
<BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
@ -83,9 +83,9 @@
<AdditionalIncludeDirectories>Include\Win32\Cxbx;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
</ResourceCompile>
<Link>
<AdditionalDependencies>legacy_stdio_definitions.lib;d3d8.lib;dinput8.lib;dxguid.lib;odbc32.lib;odbccp32.lib;CxbxKrnl.lib;%(AdditionalDependencies)</AdditionalDependencies>
<AdditionalDependencies>legacy_stdio_definitions.lib;d3d8.lib;dinput8.lib;dxguid.lib;odbc32.lib;odbccp32.lib;Shlwapi.lib;dxerr8.lib;xinput.lib;ws2_32.lib;dsound.lib;winmm.lib;ddraw.lib;d3dx8.lib;dbghelp.lib;%(AdditionalDependencies)</AdditionalDependencies>
<SuppressStartupBanner>true</SuppressStartupBanner>
<AdditionalLibraryDirectories>$(Configuration)\;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
<AdditionalLibraryDirectories>$(Configuration)\;..\..\import\distorm\lib\Win32\;..\..\import\glew-2.0.0\lib\Release\Win32\;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
<IgnoreSpecificDefaultLibraries>msvcrt;%(IgnoreSpecificDefaultLibraries)</IgnoreSpecificDefaultLibraries>
<GenerateDebugInformation>true</GenerateDebugInformation>
<GenerateMapFile>true</GenerateMapFile>
@ -119,7 +119,7 @@
<ClCompile>
<Optimization>MaxSpeed</Optimization>
<InlineFunctionExpansion>OnlyExplicitInline</InlineFunctionExpansion>
<AdditionalIncludeDirectories>..\..\src;..\..\src\Common;..\..\src\Common\Win32\;..\..\import\stb;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<AdditionalIncludeDirectories>..\..\src;..\..\src\Common;..\..\src\Common\Win32\;..\..\import\stb;%(AdditionalIncludeDirectories);..\..\import\OpenXDK\include;..\..\import\distorm\include;..\..\import\glew-2.0.0\include;..\..\src;..\..\src\Common;..\..\src\Common\Win32</AdditionalIncludeDirectories>
<PreprocessorDefinitions>WIN32;NDEBUG;_WINDOWS;_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<StringPooling>true</StringPooling>
<RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
@ -135,9 +135,9 @@
<AdditionalIncludeDirectories>Include\Win32\Cxbx;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
</ResourceCompile>
<Link>
<AdditionalDependencies>legacy_stdio_definitions.lib;d3d8.lib;dinput8.lib;dxguid.lib;odbc32.lib;odbccp32.lib;CxbxKrnl.lib;%(AdditionalDependencies)</AdditionalDependencies>
<AdditionalDependencies>legacy_stdio_definitions.lib;d3d8.lib;dinput8.lib;dxguid.lib;odbc32.lib;odbccp32.lib;Shlwapi.lib;dxerr8.lib;xinput.lib;ws2_32.lib;dsound.lib;winmm.lib;ddraw.lib;d3dx8.lib;dbghelp.lib;%(AdditionalDependencies)</AdditionalDependencies>
<SuppressStartupBanner>true</SuppressStartupBanner>
<AdditionalLibraryDirectories>$(Configuration)\;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
<AdditionalLibraryDirectories>$(Configuration)\;..\..\import\distorm\lib\Win32\;..\..\import\glew-2.0.0\lib\Release\Win32\;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
<IgnoreSpecificDefaultLibraries>%(IgnoreSpecificDefaultLibraries)</IgnoreSpecificDefaultLibraries>
<SubSystem>Windows</SubSystem>
<RandomizedBaseAddress>false</RandomizedBaseAddress>
@ -158,15 +158,98 @@
</ItemDefinitionGroup>
<ItemGroup>
<ClInclude Include="..\..\import\stb\stb_image.h" />
<ClInclude Include="..\..\src\Common\Logging.h" />
<ClInclude Include="..\..\src\Common\Win32\AlignPosfix1.h" />
<ClInclude Include="..\..\src\Common\Win32\AlignPrefix1.h" />
<ClInclude Include="..\..\src\Cxbx.h" />
<ClInclude Include="..\..\src\CxbxKrnl\CxbxKrnl.h" />
<ClInclude Include="..\..\src\CxbxKrnl\DbgConsole.h" />
<ClInclude Include="..\..\src\CxbxKrnl\device.h" />
<ClInclude Include="..\..\src\CxbxKrnl\EmuAlloc.h" />
<ClInclude Include="..\..\src\CxbxKrnl\EmuD3D8.h" />
<ClInclude Include="..\..\src\CxbxKrnl\EmuD3D8Types.h" />
<ClInclude Include="..\..\src\CxbxKrnl\EmuD3D8\Convert.h" />
<ClInclude Include="..\..\src\CxbxKrnl\EmuD3D8\PixelShader.h" />
<ClInclude Include="..\..\src\CxbxKrnl\EmuD3D8\PushBuffer.h" />
<ClInclude Include="..\..\src\CxbxKrnl\EmuD3D8\State.h" />
<ClInclude Include="..\..\src\CxbxKrnl\EmuD3D8\VertexBuffer.h" />
<ClInclude Include="..\..\src\CxbxKrnl\EmuD3D8\VertexShader.h" />
<ClInclude Include="..\..\src\CxbxKrnl\EmuDInput.h" />
<ClInclude Include="..\..\src\CxbxKrnl\EmuDSound.h" />
<ClInclude Include="..\..\src\CxbxKrnl\EmuFile.h" />
<ClInclude Include="..\..\src\CxbxKrnl\EmuFS.h" />
<ClInclude Include="..\..\src\CxbxKrnl\EmuKrnlLogging.h" />
<ClInclude Include="..\..\src\CxbxKrnl\EmuNtDll.h" />
<ClInclude Include="..\..\src\CxbxKrnl\EmuNV2A.h" />
<ClInclude Include="..\..\src\CxbxKrnl\EmuSha.h" />
<ClInclude Include="..\..\src\CxbxKrnl\EmuX86.h" />
<ClInclude Include="..\..\src\CxbxKrnl\EmuXactEng.h" />
<ClInclude Include="..\..\src\CxbxKrnl\EmuXapi.h" />
<ClInclude Include="..\..\src\CxbxKrnl\EmuXG.h" />
<ClInclude Include="..\..\src\CxbxKrnl\EmuXInput.h" />
<ClInclude Include="..\..\src\CxbxKrnl\EmuXOnline.h" />
<ClInclude Include="..\..\src\CxbxKrnl\EmuXTL.h" />
<ClInclude Include="..\..\src\CxbxKrnl\HLEDataBase.h" />
<ClInclude Include="..\..\src\CxbxKrnl\HLEDataBase\D3D8.1.0.3925.h" />
<ClInclude Include="..\..\src\CxbxKrnl\HLEDataBase\D3D8.1.0.4034.h" />
<ClInclude Include="..\..\src\CxbxKrnl\HLEDataBase\D3D8.1.0.4134.h" />
<ClInclude Include="..\..\src\CxbxKrnl\HLEDataBase\D3D8.1.0.4361.h" />
<ClInclude Include="..\..\src\CxbxKrnl\HLEDataBase\D3D8.1.0.4432.h" />
<ClInclude Include="..\..\src\CxbxKrnl\HLEDataBase\D3D8.1.0.4627.h" />
<ClInclude Include="..\..\src\CxbxKrnl\HLEDataBase\D3D8.1.0.5233.h" />
<ClInclude Include="..\..\src\CxbxKrnl\HLEDataBase\D3D8.1.0.5558.h" />
<ClInclude Include="..\..\src\CxbxKrnl\HLEDataBase\D3D8.1.0.5788.h" />
<ClInclude Include="..\..\src\CxbxKrnl\HLEDataBase\D3D8.1.0.5849.h" />
<ClInclude Include="..\..\src\CxbxKrnl\HLEDataBase\D3D8LTCG.1.0.5849.h" />
<ClInclude Include="..\..\src\CxbxKrnl\HLEDataBase\DSound.1.0.3936.h" />
<ClInclude Include="..\..\src\CxbxKrnl\HLEDataBase\DSound.1.0.4134.h" />
<ClInclude Include="..\..\src\CxbxKrnl\HLEDataBase\DSound.1.0.4361.h" />
<ClInclude Include="..\..\src\CxbxKrnl\HLEDataBase\DSound.1.0.4432.h" />
<ClInclude Include="..\..\src\CxbxKrnl\HLEDataBase\DSound.1.0.4627.h" />
<ClInclude Include="..\..\src\CxbxKrnl\HLEDataBase\DSound.1.0.5233.h" />
<ClInclude Include="..\..\src\CxbxKrnl\HLEDataBase\DSound.1.0.5558.h" />
<ClInclude Include="..\..\src\CxbxKrnl\HLEDataBase\DSound.1.0.5788.h" />
<ClInclude Include="..\..\src\CxbxKrnl\HLEDataBase\DSound.1.0.5849.h" />
<ClInclude Include="..\..\src\CxbxKrnl\HLEDataBase\XactEng.1.0.4627.h" />
<ClInclude Include="..\..\src\CxbxKrnl\HLEDataBase\Xapi.1.0.3911.h" />
<ClInclude Include="..\..\src\CxbxKrnl\HLEDataBase\Xapi.1.0.4034.h" />
<ClInclude Include="..\..\src\CxbxKrnl\HLEDataBase\Xapi.1.0.4134.h" />
<ClInclude Include="..\..\src\CxbxKrnl\HLEDataBase\Xapi.1.0.4361.h" />
<ClInclude Include="..\..\src\CxbxKrnl\HLEDataBase\Xapi.1.0.4432.h" />
<ClInclude Include="..\..\src\CxbxKrnl\HLEDataBase\Xapi.1.0.4627.h" />
<ClInclude Include="..\..\src\CxbxKrnl\HLEDataBase\Xapi.1.0.4721.h" />
<ClInclude Include="..\..\src\CxbxKrnl\HLEDataBase\Xapi.1.0.5233.h" />
<ClInclude Include="..\..\src\CxbxKrnl\HLEDataBase\Xapi.1.0.5558.h" />
<ClInclude Include="..\..\src\CxbxKrnl\HLEDataBase\Xapi.1.0.5788.h" />
<ClInclude Include="..\..\src\CxbxKrnl\HLEDataBase\Xapi.1.0.5849.h" />
<ClInclude Include="..\..\src\CxbxKrnl\HLEDataBase\XG.1.0.3911.h" />
<ClInclude Include="..\..\src\CxbxKrnl\HLEDataBase\XG.1.0.4034.h" />
<ClInclude Include="..\..\src\CxbxKrnl\HLEDataBase\XG.1.0.4361.h" />
<ClInclude Include="..\..\src\CxbxKrnl\HLEDataBase\XG.1.0.4432.h" />
<ClInclude Include="..\..\src\CxbxKrnl\HLEDataBase\XG.1.0.4627.h" />
<ClInclude Include="..\..\src\CxbxKrnl\HLEDataBase\XG.1.0.5233.h" />
<ClInclude Include="..\..\src\CxbxKrnl\HLEDataBase\XG.1.0.5558.h" />
<ClInclude Include="..\..\src\CxbxKrnl\HLEDataBase\XG.1.0.5788.h" />
<ClInclude Include="..\..\src\CxbxKrnl\HLEDataBase\XG.1.0.5849.h" />
<ClInclude Include="..\..\src\CxbxKrnl\HLEDataBase\XNet.1.0.3911.h" />
<ClInclude Include="..\..\src\CxbxKrnl\HLEDataBase\XNet.1.0.4627.h" />
<ClInclude Include="..\..\src\CxbxKrnl\HLEDataBase\XOnline.1.0.4361.h" />
<ClInclude Include="..\..\src\CxbxKrnl\HLEDataBase\XOnline.1.0.4627.h" />
<ClInclude Include="..\..\src\CxbxKrnl\HLEDataBase\XOnline.1.0.5233.h" />
<ClInclude Include="..\..\src\CxbxKrnl\HLEDataBase\XOnline.1.0.5558.h" />
<ClInclude Include="..\..\src\CxbxKrnl\HLEDataBase\XOnline.1.0.5788.h" />
<ClInclude Include="..\..\src\CxbxKrnl\HLEDataBase\XOnline.1.0.5849.h" />
<ClInclude Include="..\..\src\CxbxKrnl\HLEIntercept.h" />
<ClInclude Include="..\..\src\CxbxKrnl\LibRc4.h" />
<ClInclude Include="..\..\src\CxbxKrnl\nv2a_int.h" />
<ClInclude Include="..\..\src\CxbxKrnl\OOVPA.h" />
<ClInclude Include="..\..\src\CxbxKrnl\ReservedMemory.h" />
<ClInclude Include="..\..\src\CxbxKrnl\ResourceTracker.h" />
<ClInclude Include="..\..\src\Cxbx\DlgControllerConfig.h" />
<ClInclude Include="..\..\src\Cxbx\DlgVideoConfig.h" />
<ClInclude Include="..\..\src\CxbxKrnl\Emu.h" />
<ClInclude Include="..\..\src\CxbxKrnl\EmuShared.h" />
<ClInclude Include="..\..\src\Common\Error.h" />
<ClInclude Include="..\..\src\Common\Exe.h" />
<ClInclude Include="..\..\src\Common\Win32\Mutex.h" />
<ClInclude Include="..\..\src\Cxbx\ResCxbx.h" />
<ClInclude Include="..\..\src\Cxbx\Wnd.h" />
@ -181,6 +264,51 @@
<None Include="..\..\resource\Cxbx.ico" />
<None Include="..\..\resource\Logo.bmp" />
<None Include="..\..\resource\Splash.jpg" />
<None Include="..\..\src\CxbxKrnl\HLEDataBase\D3D8.1.0.3925.inl" />
<None Include="..\..\src\CxbxKrnl\HLEDataBase\D3D8.1.0.4034.inl" />
<None Include="..\..\src\CxbxKrnl\HLEDataBase\D3D8.1.0.4134.inl" />
<None Include="..\..\src\CxbxKrnl\HLEDataBase\D3D8.1.0.4361.inl" />
<None Include="..\..\src\CxbxKrnl\HLEDataBase\D3D8.1.0.4432.inl" />
<None Include="..\..\src\CxbxKrnl\HLEDataBase\D3D8.1.0.4627.inl" />
<None Include="..\..\src\CxbxKrnl\HLEDataBase\D3D8.1.0.5233.inl" />
<None Include="..\..\src\CxbxKrnl\HLEDataBase\D3D8.1.0.5558.inl" />
<None Include="..\..\src\CxbxKrnl\HLEDataBase\D3D8.1.0.5788.inl" />
<None Include="..\..\src\CxbxKrnl\HLEDataBase\D3D8.1.0.5849.inl" />
<None Include="..\..\src\CxbxKrnl\HLEDataBase\D3D8LTCG.1.0.5849.inl" />
<None Include="..\..\src\CxbxKrnl\HLEDataBase\DSound.1.0.3936.inl" />
<None Include="..\..\src\CxbxKrnl\HLEDataBase\DSound.1.0.4134.inl" />
<None Include="..\..\src\CxbxKrnl\HLEDataBase\DSound.1.0.4361.inl" />
<None Include="..\..\src\CxbxKrnl\HLEDataBase\DSound.1.0.4432.inl" />
<None Include="..\..\src\CxbxKrnl\HLEDataBase\DSound.1.0.4627.inl" />
<None Include="..\..\src\CxbxKrnl\HLEDataBase\DSound.1.0.5233.inl" />
<None Include="..\..\src\CxbxKrnl\HLEDataBase\DSound.1.0.5558.inl" />
<None Include="..\..\src\CxbxKrnl\HLEDataBase\DSound.1.0.5849.inl" />
<None Include="..\..\src\CxbxKrnl\HLEDataBase\XactEng.1.0.4627.inl" />
<None Include="..\..\src\CxbxKrnl\HLEDataBase\Xapi.1.0.3911.inl" />
<None Include="..\..\src\CxbxKrnl\HLEDataBase\Xapi.1.0.4034.inl" />
<None Include="..\..\src\CxbxKrnl\HLEDataBase\Xapi.1.0.4134.inl" />
<None Include="..\..\src\CxbxKrnl\HLEDataBase\Xapi.1.0.4361.inl" />
<None Include="..\..\src\CxbxKrnl\HLEDataBase\Xapi.1.0.4432.inl" />
<None Include="..\..\src\CxbxKrnl\HLEDataBase\Xapi.1.0.4627.inl" />
<None Include="..\..\src\CxbxKrnl\HLEDataBase\Xapi.1.0.4721.inl" />
<None Include="..\..\src\CxbxKrnl\HLEDataBase\Xapi.1.0.5233.inl" />
<None Include="..\..\src\CxbxKrnl\HLEDataBase\Xapi.1.0.5558.inl" />
<None Include="..\..\src\CxbxKrnl\HLEDataBase\Xapi.1.0.5849.inl" />
<None Include="..\..\src\CxbxKrnl\HLEDataBase\XG.1.0.3911.inl" />
<None Include="..\..\src\CxbxKrnl\HLEDataBase\XG.1.0.4034.inl" />
<None Include="..\..\src\CxbxKrnl\HLEDataBase\XG.1.0.4361.inl" />
<None Include="..\..\src\CxbxKrnl\HLEDataBase\XG.1.0.4432.inl" />
<None Include="..\..\src\CxbxKrnl\HLEDataBase\XG.1.0.4627.inl" />
<None Include="..\..\src\CxbxKrnl\HLEDataBase\XG.1.0.5233.inl" />
<None Include="..\..\src\CxbxKrnl\HLEDataBase\XG.1.0.5558.inl" />
<None Include="..\..\src\CxbxKrnl\HLEDataBase\XG.1.0.5849.inl" />
<None Include="..\..\src\CxbxKrnl\HLEDataBase\XNet.1.0.3911.inl" />
<None Include="..\..\src\CxbxKrnl\HLEDataBase\XNet.1.0.4627.inl" />
<None Include="..\..\src\CxbxKrnl\HLEDataBase\XOnline.1.0.4361.inl" />
<None Include="..\..\src\CxbxKrnl\HLEDataBase\XOnline.1.0.4627.inl" />
<None Include="..\..\src\CxbxKrnl\HLEDataBase\XOnline.1.0.5233.inl" />
<None Include="..\..\src\CxbxKrnl\HLEDataBase\XOnline.1.0.5558.inl" />
<None Include="..\..\src\CxbxKrnl\HLEDataBase\XOnline.1.0.5849.inl" />
</ItemGroup>
<ItemGroup>
<ResourceCompile Include="..\..\resource\Cxbx.rc">
@ -191,6 +319,176 @@
</ResourceCompile>
</ItemGroup>
<ItemGroup>
<ClCompile Include="..\..\src\Common\Logging.cpp" />
<ClCompile Include="..\..\src\Common\Win32\EmuShared.cpp">
<AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">%(PreprocessorDefinitions)</PreprocessorDefinitions>
<PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">%(PreprocessorDefinitions)</PreprocessorDefinitions>
</ClCompile>
<ClCompile Include="..\..\src\CxbxKrnl\CxbxKrnl.cpp">
<AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">%(PreprocessorDefinitions)</PreprocessorDefinitions>
<PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">%(PreprocessorDefinitions)</PreprocessorDefinitions>
</ClCompile>
<ClCompile Include="..\..\src\CxbxKrnl\DbgConsole.cpp">
<AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">%(PreprocessorDefinitions)</PreprocessorDefinitions>
<PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">%(PreprocessorDefinitions)</PreprocessorDefinitions>
</ClCompile>
<ClCompile Include="..\..\src\CxbxKrnl\device.cpp" />
<ClCompile Include="..\..\src\CxbxKrnl\Emu.cpp">
<AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">%(PreprocessorDefinitions)</PreprocessorDefinitions>
<PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">%(PreprocessorDefinitions)</PreprocessorDefinitions>
</ClCompile>
<ClCompile Include="..\..\src\CxbxKrnl\EmuAlloc.cpp">
<AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">%(PreprocessorDefinitions)</PreprocessorDefinitions>
<PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">%(PreprocessorDefinitions)</PreprocessorDefinitions>
</ClCompile>
<ClCompile Include="..\..\src\CxbxKrnl\EmuD3D8.cpp">
<AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">%(PreprocessorDefinitions)</PreprocessorDefinitions>
<PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">%(PreprocessorDefinitions)</PreprocessorDefinitions>
</ClCompile>
<ClCompile Include="..\..\src\CxbxKrnl\EmuD3D8\Convert.cpp">
<AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">%(PreprocessorDefinitions)</PreprocessorDefinitions>
<PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">%(PreprocessorDefinitions)</PreprocessorDefinitions>
</ClCompile>
<ClCompile Include="..\..\src\CxbxKrnl\EmuD3D8\PixelShader.cpp" />
<ClCompile Include="..\..\src\CxbxKrnl\EmuD3D8\PushBuffer.cpp">
<AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">%(PreprocessorDefinitions)</PreprocessorDefinitions>
<PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">%(PreprocessorDefinitions)</PreprocessorDefinitions>
</ClCompile>
<ClCompile Include="..\..\src\CxbxKrnl\EmuD3D8\State.cpp">
<AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">%(PreprocessorDefinitions)</PreprocessorDefinitions>
<PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">%(PreprocessorDefinitions)</PreprocessorDefinitions>
</ClCompile>
<ClCompile Include="..\..\src\CxbxKrnl\EmuD3D8\VertexBuffer.cpp">
<AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">%(PreprocessorDefinitions)</PreprocessorDefinitions>
<PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">%(PreprocessorDefinitions)</PreprocessorDefinitions>
</ClCompile>
<ClCompile Include="..\..\src\CxbxKrnl\EmuD3D8\VertexShader.cpp">
<AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">%(PreprocessorDefinitions)</PreprocessorDefinitions>
<PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">%(PreprocessorDefinitions)</PreprocessorDefinitions>
</ClCompile>
<ClCompile Include="..\..\src\CxbxKrnl\EmuDInput.cpp">
<AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">%(PreprocessorDefinitions)</PreprocessorDefinitions>
<PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">%(PreprocessorDefinitions)</PreprocessorDefinitions>
</ClCompile>
<ClCompile Include="..\..\src\CxbxKrnl\EmuDSound.cpp">
<AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">%(PreprocessorDefinitions)</PreprocessorDefinitions>
<PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">%(PreprocessorDefinitions)</PreprocessorDefinitions>
</ClCompile>
<ClCompile Include="..\..\src\CxbxKrnl\EmuFile.cpp">
<AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">%(PreprocessorDefinitions)</PreprocessorDefinitions>
<PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">%(PreprocessorDefinitions)</PreprocessorDefinitions>
</ClCompile>
<ClCompile Include="..\..\src\CxbxKrnl\EmuFS.cpp">
<AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">%(PreprocessorDefinitions)</PreprocessorDefinitions>
<PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">%(PreprocessorDefinitions)</PreprocessorDefinitions>
</ClCompile>
<ClCompile Include="..\..\src\CxbxKrnl\EmuKrnl.cpp">
<AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">%(PreprocessorDefinitions)</PreprocessorDefinitions>
<PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">%(PreprocessorDefinitions)</PreprocessorDefinitions>
</ClCompile>
<ClCompile Include="..\..\src\CxbxKrnl\EmuKrnlAv.cpp" />
<ClCompile Include="..\..\src\CxbxKrnl\EmuKrnlDbg.cpp" />
<ClCompile Include="..\..\src\CxbxKrnl\EmuKrnlEx.cpp" />
<ClCompile Include="..\..\src\CxbxKrnl\EmuKrnlFs.cpp" />
<ClCompile Include="..\..\src\CxbxKrnl\EmuKrnlHal.cpp" />
<ClCompile Include="..\..\src\CxbxKrnl\EmuKrnlIo.cpp" />
<ClCompile Include="..\..\src\CxbxKrnl\EmuKrnlKd.cpp" />
<ClCompile Include="..\..\src\CxbxKrnl\EmuKrnlKe.cpp" />
<ClCompile Include="..\..\src\CxbxKrnl\EmuKrnlLogging.cpp" />
<ClCompile Include="..\..\src\CxbxKrnl\EmuKrnlMm.cpp" />
<ClCompile Include="..\..\src\CxbxKrnl\EmuKrnlNt.cpp" />
<ClCompile Include="..\..\src\CxbxKrnl\EmuKrnlOb.cpp" />
<ClCompile Include="..\..\src\CxbxKrnl\EmuKrnlPs.cpp" />
<ClCompile Include="..\..\src\CxbxKrnl\EmuKrnlRtl.cpp" />
<ClCompile Include="..\..\src\CxbxKrnl\EmuKrnlXbox.cpp" />
<ClCompile Include="..\..\src\CxbxKrnl\EmuKrnlXc.cpp" />
<ClCompile Include="..\..\src\CxbxKrnl\EmuKrnlXe.cpp" />
<ClCompile Include="..\..\src\CxbxKrnl\EmuNtDll.cpp">
<AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">%(PreprocessorDefinitions)</PreprocessorDefinitions>
<PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">%(PreprocessorDefinitions)</PreprocessorDefinitions>
</ClCompile>
<ClCompile Include="..\..\src\CxbxKrnl\EmuNV2A.cpp" />
<ClCompile Include="..\..\src\CxbxKrnl\EmuSha.cpp" />
<ClCompile Include="..\..\src\CxbxKrnl\EmuX86.cpp" />
<ClCompile Include="..\..\src\CxbxKrnl\EmuXactEng.cpp" />
<ClCompile Include="..\..\src\CxbxKrnl\EmuXapi.cpp">
<AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">%(PreprocessorDefinitions)</PreprocessorDefinitions>
<PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">%(PreprocessorDefinitions)</PreprocessorDefinitions>
</ClCompile>
<ClCompile Include="..\..\src\CxbxKrnl\EmuXG.cpp">
<AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">%(PreprocessorDefinitions)</PreprocessorDefinitions>
<PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">%(PreprocessorDefinitions)</PreprocessorDefinitions>
</ClCompile>
<ClCompile Include="..\..\src\CxbxKrnl\EmuXInput.cpp" />
<ClCompile Include="..\..\src\CxbxKrnl\EmuXOnline.cpp">
<AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">%(PreprocessorDefinitions)</PreprocessorDefinitions>
<PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">%(PreprocessorDefinitions)</PreprocessorDefinitions>
</ClCompile>
<ClCompile Include="..\..\src\CxbxKrnl\HLEDataBase.cpp">
<AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">%(PreprocessorDefinitions)</PreprocessorDefinitions>
<PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">%(PreprocessorDefinitions)</PreprocessorDefinitions>
</ClCompile>
<ClCompile Include="..\..\src\CxbxKrnl\HLEIntercept.cpp">
<AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">%(PreprocessorDefinitions)</PreprocessorDefinitions>
<PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">%(PreprocessorDefinitions)</PreprocessorDefinitions>
</ClCompile>
<ClCompile Include="..\..\src\CxbxKrnl\KernelThunk.cpp">
<AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">%(PreprocessorDefinitions)</PreprocessorDefinitions>
<PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">%(PreprocessorDefinitions)</PreprocessorDefinitions>
</ClCompile>
<ClCompile Include="..\..\src\CxbxKrnl\LibRc4.cpp" />
<ClCompile Include="..\..\src\CxbxKrnl\ResourceTracker.cpp">
<AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">%(PreprocessorDefinitions)</PreprocessorDefinitions>
<PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">%(PreprocessorDefinitions)</PreprocessorDefinitions>
</ClCompile>
<ClCompile Include="..\..\src\Cxbx\DlgControllerConfig.cpp">
<AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">%(PreprocessorDefinitions)</PreprocessorDefinitions>
@ -209,12 +507,6 @@
<AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">%(PreprocessorDefinitions)</PreprocessorDefinitions>
</ClCompile>
<ClCompile Include="..\..\src\Common\Exe.cpp">
<AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">%(PreprocessorDefinitions)</PreprocessorDefinitions>
<AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">%(PreprocessorDefinitions)</PreprocessorDefinitions>
</ClCompile>
<ClCompile Include="..\..\src\Common\Win32\Mutex.cpp">
<AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">%(PreprocessorDefinitions)</PreprocessorDefinitions>

View File

@ -1,114 +1,242 @@
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ItemGroup>
<ClCompile Include="..\..\src\Common\Error.cpp" />
<ClCompile Include="..\..\src\Common\Logging.cpp" />
<ClCompile Include="..\..\src\Common\Xbe.cpp" />
<ClCompile Include="..\..\src\CxbxKrnl\CxbxKrnl.cpp" />
<ClCompile Include="..\..\src\CxbxKrnl\DbgConsole.cpp" />
<ClCompile Include="..\..\src\CxbxKrnl\device.cpp" />
<ClCompile Include="..\..\src\CxbxKrnl\Emu.cpp" />
<ClCompile Include="..\..\src\CxbxKrnl\EmuAlloc.cpp" />
<ClCompile Include="..\..\src\CxbxKrnl\EmuD3D8.cpp" />
<ClCompile Include="..\..\src\CxbxKrnl\EmuDInput.cpp" />
<ClCompile Include="..\..\src\CxbxKrnl\EmuDSound.cpp" />
<ClCompile Include="..\..\src\CxbxKrnl\EmuFile.cpp" />
<ClCompile Include="..\..\src\CxbxKrnl\EmuFS.cpp" />
<ClCompile Include="..\..\src\CxbxKrnl\EmuKrnl.cpp" />
<ClCompile Include="..\..\src\CxbxKrnl\EmuKrnlAv.cpp" />
<ClCompile Include="..\..\src\CxbxKrnl\EmuKrnlDbg.cpp" />
<ClCompile Include="..\..\src\CxbxKrnl\EmuKrnlEx.cpp" />
<ClCompile Include="..\..\src\CxbxKrnl\EmuKrnlFs.cpp" />
<ClCompile Include="..\..\src\CxbxKrnl\EmuKrnlHal.cpp" />
<ClCompile Include="..\..\src\CxbxKrnl\EmuKrnlIo.cpp" />
<ClCompile Include="..\..\src\CxbxKrnl\EmuKrnlKd.cpp" />
<ClCompile Include="..\..\src\CxbxKrnl\EmuKrnlKe.cpp" />
<ClCompile Include="..\..\src\CxbxKrnl\EmuKrnlLogging.cpp" />
<ClCompile Include="..\..\src\CxbxKrnl\EmuKrnlMm.cpp" />
<ClCompile Include="..\..\src\CxbxKrnl\EmuKrnlNt.cpp" />
<ClCompile Include="..\..\src\CxbxKrnl\EmuKrnlOb.cpp" />
<ClCompile Include="..\..\src\CxbxKrnl\EmuKrnlPs.cpp" />
<ClCompile Include="..\..\src\CxbxKrnl\EmuKrnlRtl.cpp" />
<ClCompile Include="..\..\src\CxbxKrnl\EmuKrnlXbox.cpp" />
<ClCompile Include="..\..\src\CxbxKrnl\EmuKrnlXc.cpp" />
<ClCompile Include="..\..\src\CxbxKrnl\EmuKrnlXe.cpp" />
<ClCompile Include="..\..\src\CxbxKrnl\EmuNtDll.cpp" />
<ClCompile Include="..\..\src\Common\Win32\EmuShared.cpp" />
<ClCompile Include="..\..\src\CxbxKrnl\EmuNV2A.cpp" />
<ClCompile Include="..\..\src\CxbxKrnl\EmuSha.cpp" />
<ClCompile Include="..\..\src\CxbxKrnl\EmuX86.cpp" />
<ClCompile Include="..\..\src\CxbxKrnl\EmuXactEng.cpp" />
<ClCompile Include="..\..\src\CxbxKrnl\EmuXapi.cpp" />
<ClCompile Include="..\..\src\CxbxKrnl\EmuXG.cpp" />
<ClCompile Include="..\..\src\CxbxKrnl\EmuXInput.cpp" />
<ClCompile Include="..\..\src\CxbxKrnl\EmuXOnline.cpp" />
<ClCompile Include="..\..\src\CxbxKrnl\HLEDataBase.cpp" />
<ClCompile Include="..\..\src\CxbxKrnl\HLEIntercept.cpp" />
<ClCompile Include="..\..\src\CxbxKrnl\KernelThunk.cpp" />
<ClCompile Include="..\..\src\Common\Win32\Mutex.cpp" />
<ClCompile Include="..\..\src\Common\OpenXDK.cpp" />
<ClCompile Include="..\..\src\CxbxKrnl\LibRc4.cpp" />
<ClCompile Include="..\..\src\CxbxKrnl\ResourceTracker.cpp" />
<ClCompile Include="..\..\src\Common\Win32\XBController.cpp" />
<ClCompile Include="..\..\src\Common\Win32\XBVideo.cpp" />
<ClCompile Include="..\..\src\Cxbx\DlgControllerConfig.cpp">
<Filter>GUI</Filter>
</ClCompile>
<ClCompile Include="..\..\src\Cxbx\DlgVideoConfig.cpp">
<Filter>GUI</Filter>
</ClCompile>
<ClCompile Include="..\..\src\Cxbx\WinMain.cpp">
<Filter>GUI</Filter>
</ClCompile>
<ClCompile Include="..\..\src\Cxbx\Wnd.cpp">
<Filter>GUI</Filter>
</ClCompile>
<ClCompile Include="..\..\src\Cxbx\WndAbout.cpp">
<Filter>GUI</Filter>
</ClCompile>
<ClCompile Include="..\..\src\Cxbx\WndMain.cpp">
<Filter>GUI</Filter>
</ClCompile>
<ClCompile Include="..\..\src\CxbxKrnl\EmuD3D8\Convert.cpp">
<Filter>EmuD3D8</Filter>
</ClCompile>
<ClCompile Include="..\..\src\CxbxKrnl\EmuD3D8\VertexShader.cpp">
<Filter>EmuD3D8</Filter>
</ClCompile>
<ClCompile Include="..\..\src\CxbxKrnl\EmuD3D8\VertexBuffer.cpp">
<Filter>EmuD3D8</Filter>
</ClCompile>
<ClCompile Include="..\..\src\CxbxKrnl\EmuD3D8\State.cpp">
<Filter>EmuD3D8</Filter>
</ClCompile>
<ClCompile Include="..\..\src\CxbxKrnl\EmuD3D8\PixelShader.cpp">
<Filter>EmuD3D8</Filter>
</ClCompile>
<ClCompile Include="..\..\src\CxbxKrnl\EmuD3D8\PushBuffer.cpp">
<Filter>EmuD3D8</Filter>
</ClCompile>
<ClCompile Include="..\..\src\CxbxKrnl\EmuD3D8\State.cpp">
<Filter>EmuD3D8</Filter>
</ClCompile>
<ClCompile Include="..\..\src\CxbxKrnl\EmuD3D8\VertexBuffer.cpp">
<Filter>EmuD3D8</Filter>
</ClCompile>
<ClCompile Include="..\..\src\CxbxKrnl\EmuD3D8\VertexShader.cpp">
<Filter>EmuD3D8</Filter>
</ClCompile>
<ClCompile Include="..\..\src\CxbxKrnl\EmuKrnl.cpp">
<Filter>Kernel</Filter>
</ClCompile>
<ClCompile Include="..\..\src\CxbxKrnl\EmuKrnlAv.cpp">
<Filter>Kernel</Filter>
</ClCompile>
<ClCompile Include="..\..\src\CxbxKrnl\EmuKrnlDbg.cpp">
<Filter>Kernel</Filter>
</ClCompile>
<ClCompile Include="..\..\src\CxbxKrnl\EmuKrnlEx.cpp">
<Filter>Kernel</Filter>
</ClCompile>
<ClCompile Include="..\..\src\CxbxKrnl\EmuKrnlFs.cpp">
<Filter>Kernel</Filter>
</ClCompile>
<ClCompile Include="..\..\src\CxbxKrnl\EmuKrnlHal.cpp">
<Filter>Kernel</Filter>
</ClCompile>
<ClCompile Include="..\..\src\CxbxKrnl\EmuKrnlIo.cpp">
<Filter>Kernel</Filter>
</ClCompile>
<ClCompile Include="..\..\src\CxbxKrnl\EmuKrnlKd.cpp">
<Filter>Kernel</Filter>
</ClCompile>
<ClCompile Include="..\..\src\CxbxKrnl\EmuKrnlKe.cpp">
<Filter>Kernel</Filter>
</ClCompile>
<ClCompile Include="..\..\src\CxbxKrnl\EmuKrnlLogging.cpp">
<Filter>Kernel</Filter>
</ClCompile>
<ClCompile Include="..\..\src\CxbxKrnl\EmuKrnlMm.cpp">
<Filter>Kernel</Filter>
</ClCompile>
<ClCompile Include="..\..\src\CxbxKrnl\EmuKrnlNt.cpp">
<Filter>Kernel</Filter>
</ClCompile>
<ClCompile Include="..\..\src\CxbxKrnl\EmuKrnlOb.cpp">
<Filter>Kernel</Filter>
</ClCompile>
<ClCompile Include="..\..\src\CxbxKrnl\EmuKrnlPs.cpp">
<Filter>Kernel</Filter>
</ClCompile>
<ClCompile Include="..\..\src\CxbxKrnl\EmuKrnlRtl.cpp">
<Filter>Kernel</Filter>
</ClCompile>
<ClCompile Include="..\..\src\CxbxKrnl\EmuKrnlXbox.cpp">
<Filter>Kernel</Filter>
</ClCompile>
<ClCompile Include="..\..\src\CxbxKrnl\EmuKrnlXc.cpp">
<Filter>Kernel</Filter>
</ClCompile>
<ClCompile Include="..\..\src\CxbxKrnl\EmuKrnlXe.cpp">
<Filter>Kernel</Filter>
</ClCompile>
<ClCompile Include="..\..\src\Common\Error.cpp">
<Filter>Shared</Filter>
</ClCompile>
<ClCompile Include="..\..\src\Common\Win32\Mutex.cpp">
<Filter>Shared</Filter>
</ClCompile>
<ClCompile Include="..\..\src\Common\OpenXDK.cpp">
<Filter>Shared</Filter>
</ClCompile>
<ClCompile Include="..\..\src\Common\Win32\XBController.cpp">
<Filter>Shared</Filter>
</ClCompile>
<ClCompile Include="..\..\src\Common\Xbe.cpp">
<Filter>Shared</Filter>
</ClCompile>
<ClCompile Include="..\..\src\Common\Win32\XBVideo.cpp">
<Filter>Shared</Filter>
</ClCompile>
<ClCompile Include="..\..\src\CxbxKrnl\CxbxKrnl.cpp">
<Filter>Emulator</Filter>
</ClCompile>
<ClCompile Include="..\..\src\CxbxKrnl\DbgConsole.cpp">
<Filter>Emulator</Filter>
</ClCompile>
<ClCompile Include="..\..\src\CxbxKrnl\device.cpp">
<Filter>Emulator</Filter>
</ClCompile>
<ClCompile Include="..\..\src\CxbxKrnl\Emu.cpp">
<Filter>Emulator</Filter>
</ClCompile>
<ClCompile Include="..\..\src\CxbxKrnl\EmuAlloc.cpp">
<Filter>Emulator</Filter>
</ClCompile>
<ClCompile Include="..\..\src\CxbxKrnl\EmuD3D8.cpp">
<Filter>Emulator</Filter>
</ClCompile>
<ClCompile Include="..\..\src\CxbxKrnl\EmuDInput.cpp">
<Filter>Emulator</Filter>
</ClCompile>
<ClCompile Include="..\..\src\CxbxKrnl\EmuDSound.cpp">
<Filter>Emulator</Filter>
</ClCompile>
<ClCompile Include="..\..\src\CxbxKrnl\EmuFile.cpp">
<Filter>Emulator</Filter>
</ClCompile>
<ClCompile Include="..\..\src\CxbxKrnl\EmuFS.cpp">
<Filter>Emulator</Filter>
</ClCompile>
<ClCompile Include="..\..\src\CxbxKrnl\EmuNtDll.cpp">
<Filter>Emulator</Filter>
</ClCompile>
<ClCompile Include="..\..\src\CxbxKrnl\EmuNV2A.cpp">
<Filter>Emulator</Filter>
</ClCompile>
<ClCompile Include="..\..\src\CxbxKrnl\EmuSha.cpp">
<Filter>Emulator</Filter>
</ClCompile>
<ClCompile Include="..\..\src\Common\Win32\EmuShared.cpp">
<Filter>Emulator</Filter>
</ClCompile>
<ClCompile Include="..\..\src\CxbxKrnl\EmuX86.cpp">
<Filter>Emulator</Filter>
</ClCompile>
<ClCompile Include="..\..\src\CxbxKrnl\EmuXactEng.cpp">
<Filter>Emulator</Filter>
</ClCompile>
<ClCompile Include="..\..\src\CxbxKrnl\EmuXapi.cpp">
<Filter>Emulator</Filter>
</ClCompile>
<ClCompile Include="..\..\src\CxbxKrnl\EmuXG.cpp">
<Filter>Emulator</Filter>
</ClCompile>
<ClCompile Include="..\..\src\CxbxKrnl\EmuXInput.cpp">
<Filter>Emulator</Filter>
</ClCompile>
<ClCompile Include="..\..\src\CxbxKrnl\EmuXOnline.cpp">
<Filter>Emulator</Filter>
</ClCompile>
<ClCompile Include="..\..\src\CxbxKrnl\HLEDataBase.cpp">
<Filter>Emulator</Filter>
</ClCompile>
<ClCompile Include="..\..\src\CxbxKrnl\HLEIntercept.cpp">
<Filter>Emulator</Filter>
</ClCompile>
<ClCompile Include="..\..\src\CxbxKrnl\KernelThunk.cpp">
<Filter>Kernel</Filter>
</ClCompile>
<ClCompile Include="..\..\src\CxbxKrnl\LibRc4.cpp">
<Filter>Emulator</Filter>
</ClCompile>
<ClCompile Include="..\..\src\Common\Logging.cpp">
<Filter>Emulator</Filter>
</ClCompile>
<ClCompile Include="..\..\src\CxbxKrnl\ResourceTracker.cpp">
<Filter>Emulator</Filter>
</ClCompile>
</ItemGroup>
<ItemGroup>
<ClInclude Include="..\..\src\Common\Error.h" />
<ClInclude Include="..\..\src\Common\Logging.h" />
<ClInclude Include="..\..\src\Common\Win32\AlignPosfix1.h" />
<ClInclude Include="..\..\src\Common\Win32\AlignPrefix1.h" />
<ClInclude Include="..\..\src\Common\Xbe.h" />
<ClInclude Include="..\..\src\Cxbx.h" />
<ClInclude Include="..\..\src\CxbxKrnl\CxbxKrnl.h" />
<ClInclude Include="..\..\src\CxbxKrnl\DbgConsole.h" />
<ClInclude Include="..\..\src\CxbxKrnl\device.h" />
<ClInclude Include="..\..\src\CxbxKrnl\Emu.h" />
<ClInclude Include="..\..\src\CxbxKrnl\EmuAlloc.h" />
<ClInclude Include="..\..\src\CxbxKrnl\EmuD3D8.h" />
<ClInclude Include="..\..\src\CxbxKrnl\EmuD3D8Types.h" />
<ClInclude Include="..\..\src\CxbxKrnl\EmuDInput.h" />
<ClInclude Include="..\..\src\CxbxKrnl\EmuDSound.h" />
<ClInclude Include="..\..\src\CxbxKrnl\EmuFile.h" />
<ClInclude Include="..\..\src\CxbxKrnl\EmuFS.h" />
<ClInclude Include="..\..\src\CxbxKrnl\EmuKrnlLogging.h" />
<ClInclude Include="..\..\src\CxbxKrnl\EmuNtDll.h" />
<ClInclude Include="..\..\src\CxbxKrnl\EmuNV2A.h" />
<ClInclude Include="..\..\src\CxbxKrnl\EmuSha.h" />
<ClInclude Include="..\..\src\CxbxKrnl\EmuShared.h" />
<ClInclude Include="..\..\src\CxbxKrnl\EmuX86.h" />
<ClInclude Include="..\..\src\CxbxKrnl\EmuXactEng.h" />
<ClInclude Include="..\..\src\CxbxKrnl\EmuXapi.h" />
<ClInclude Include="..\..\src\CxbxKrnl\EmuXG.h" />
<ClInclude Include="..\..\src\CxbxKrnl\EmuXInput.h" />
<ClInclude Include="..\..\src\CxbxKrnl\EmuXOnline.h" />
<ClInclude Include="..\..\src\CxbxKrnl\EmuXTL.h" />
<ClInclude Include="..\..\src\CxbxKrnl\HLEDataBase.h" />
<ClInclude Include="..\..\src\CxbxKrnl\HLEIntercept.h" />
<ClInclude Include="..\..\src\Common\Win32\Mutex.h" />
<ClInclude Include="..\..\src\CxbxKrnl\LibRc4.h" />
<ClInclude Include="..\..\src\CxbxKrnl\nv2a_int.h" />
<ClInclude Include="..\..\src\CxbxKrnl\OOVPA.h" />
<ClInclude Include="..\..\src\CxbxKrnl\ResourceTracker.h" />
<ClInclude Include="..\..\src\Common\Win32\XBController.h" />
<ClInclude Include="..\..\src\Common\Win32\XBVideo.h" />
<ClInclude Include="..\..\src\Cxbx\DlgControllerConfig.h">
<Filter>GUI</Filter>
</ClInclude>
<ClInclude Include="..\..\src\Cxbx\DlgVideoConfig.h">
<Filter>GUI</Filter>
</ClInclude>
<ClInclude Include="..\..\src\Cxbx\WndMain.h">
<Filter>GUI</Filter>
</ClInclude>
<ClInclude Include="..\..\src\Cxbx\Wnd.h">
<Filter>GUI</Filter>
</ClInclude>
<ClInclude Include="..\..\src\Cxbx\WndAbout.h">
<Filter>GUI</Filter>
</ClInclude>
<ClInclude Include="..\..\import\stb\stb_image.h">
<Filter>GUI</Filter>
</ClInclude>
<ClInclude Include="..\..\src\CxbxKrnl\EmuD3D8\Convert.h">
<Filter>EmuD3D8</Filter>
</ClInclude>
<ClInclude Include="..\..\src\CxbxKrnl\EmuD3D8\PixelShader.h">
<Filter>EmuD3D8</Filter>
</ClInclude>
<ClInclude Include="..\..\src\CxbxKrnl\EmuD3D8\PushBuffer.h">
<Filter>EmuD3D8</Filter>
</ClInclude>
<ClInclude Include="..\..\src\CxbxKrnl\EmuD3D8\State.h">
<Filter>EmuD3D8</Filter>
</ClInclude>
<ClInclude Include="..\..\src\CxbxKrnl\EmuD3D8\VertexBuffer.h">
<Filter>EmuD3D8</Filter>
</ClInclude>
<ClInclude Include="..\..\src\CxbxKrnl\EmuD3D8\VertexShader.h">
<Filter>EmuD3D8</Filter>
</ClInclude>
<ClInclude Include="..\..\src\CxbxKrnl\HLEDataBase\DSound.1.0.5558.h">
<Filter>HLEDatabase</Filter>
</ClInclude>
<ClInclude Include="..\..\src\CxbxKrnl\HLEDataBase\Xapi.1.0.4721.h">
<Filter>HLEDatabase</Filter>
</ClInclude>
<ClInclude Include="..\..\src\CxbxKrnl\HLEDataBase\XNet.1.0.4627.h">
<Filter>HLEDatabase</Filter>
</ClInclude>
<ClInclude Include="..\..\src\CxbxKrnl\HLEDataBase\XOnline.1.0.5558.h">
<Filter>HLEDatabase</Filter>
</ClInclude>
<ClInclude Include="..\..\src\CxbxKrnl\HLEDataBase\D3D8.1.0.3925.h">
<Filter>HLEDatabase</Filter>
</ClInclude>
@ -133,6 +261,9 @@
<ClInclude Include="..\..\src\CxbxKrnl\HLEDataBase\D3D8.1.0.5558.h">
<Filter>HLEDatabase</Filter>
</ClInclude>
<ClInclude Include="..\..\src\CxbxKrnl\HLEDataBase\D3D8.1.0.5788.h">
<Filter>HLEDatabase</Filter>
</ClInclude>
<ClInclude Include="..\..\src\CxbxKrnl\HLEDataBase\D3D8.1.0.5849.h">
<Filter>HLEDatabase</Filter>
</ClInclude>
@ -157,10 +288,10 @@
<ClInclude Include="..\..\src\CxbxKrnl\HLEDataBase\DSound.1.0.5233.h">
<Filter>HLEDatabase</Filter>
</ClInclude>
<ClInclude Include="..\..\src\CxbxKrnl\HLEDataBase\DSound.1.0.5849.h">
<ClInclude Include="..\..\src\CxbxKrnl\HLEDataBase\DSound.1.0.5788.h">
<Filter>HLEDatabase</Filter>
</ClInclude>
<ClInclude Include="..\..\src\CxbxKrnl\HLEDataBase\Xapi.1.0.5849.h">
<ClInclude Include="..\..\src\CxbxKrnl\HLEDataBase\DSound.1.0.5849.h">
<Filter>HLEDatabase</Filter>
</ClInclude>
<ClInclude Include="..\..\src\CxbxKrnl\HLEDataBase\XactEng.1.0.4627.h">
@ -184,15 +315,18 @@
<ClInclude Include="..\..\src\CxbxKrnl\HLEDataBase\Xapi.1.0.4627.h">
<Filter>HLEDatabase</Filter>
</ClInclude>
<ClInclude Include="..\..\src\CxbxKrnl\HLEDataBase\Xapi.1.0.4721.h">
<Filter>HLEDatabase</Filter>
</ClInclude>
<ClInclude Include="..\..\src\CxbxKrnl\HLEDataBase\Xapi.1.0.5233.h">
<Filter>HLEDatabase</Filter>
</ClInclude>
<ClInclude Include="..\..\src\CxbxKrnl\HLEDataBase\Xapi.1.0.5558.h">
<Filter>HLEDatabase</Filter>
</ClInclude>
<ClInclude Include="..\..\src\CxbxKrnl\HLEDataBase\Xapi.1.0.5788.h">
<Filter>HLEDatabase</Filter>
</ClInclude>
<ClInclude Include="..\..\src\CxbxKrnl\HLEDataBase\Xapi.1.0.5849.h">
<Filter>HLEDatabase</Filter>
</ClInclude>
<ClInclude Include="..\..\src\CxbxKrnl\HLEDataBase\XG.1.0.3911.h">
<Filter>HLEDatabase</Filter>
</ClInclude>
@ -214,15 +348,15 @@
<ClInclude Include="..\..\src\CxbxKrnl\HLEDataBase\XG.1.0.5558.h">
<Filter>HLEDatabase</Filter>
</ClInclude>
<ClInclude Include="..\..\src\CxbxKrnl\HLEDataBase\XG.1.0.5788.h">
<Filter>HLEDatabase</Filter>
</ClInclude>
<ClInclude Include="..\..\src\CxbxKrnl\HLEDataBase\XG.1.0.5849.h">
<Filter>HLEDatabase</Filter>
</ClInclude>
<ClInclude Include="..\..\src\CxbxKrnl\HLEDataBase\XNet.1.0.3911.h">
<Filter>HLEDatabase</Filter>
</ClInclude>
<ClInclude Include="..\..\src\CxbxKrnl\HLEDataBase\XNet.1.0.4627.h">
<Filter>HLEDatabase</Filter>
</ClInclude>
<ClInclude Include="..\..\src\CxbxKrnl\HLEDataBase\XOnline.1.0.4361.h">
<Filter>HLEDatabase</Filter>
</ClInclude>
@ -232,89 +366,139 @@
<ClInclude Include="..\..\src\CxbxKrnl\HLEDataBase\XOnline.1.0.5233.h">
<Filter>HLEDatabase</Filter>
</ClInclude>
<ClInclude Include="..\..\src\CxbxKrnl\HLEDataBase\XOnline.1.0.5849.h">
<Filter>HLEDatabase</Filter>
</ClInclude>
<ClInclude Include="..\..\src\CxbxKrnl\HLEDataBase\DSound.1.0.5558.h">
<Filter>HLEDatabase</Filter>
</ClInclude>
<ClInclude Include="..\..\src\CxbxKrnl\HLEDataBase\XOnline.1.0.5558.h">
<Filter>HLEDatabase</Filter>
</ClInclude>
<ClInclude Include="..\..\src\CxbxKrnl\EmuD3D8\Convert.h">
<Filter>EmuD3D8</Filter>
</ClInclude>
<ClInclude Include="..\..\src\CxbxKrnl\EmuD3D8\VertexShader.h">
<Filter>EmuD3D8</Filter>
</ClInclude>
<ClInclude Include="..\..\src\CxbxKrnl\EmuD3D8\VertexBuffer.h">
<Filter>EmuD3D8</Filter>
</ClInclude>
<ClInclude Include="..\..\src\CxbxKrnl\EmuD3D8\State.h">
<Filter>EmuD3D8</Filter>
</ClInclude>
<ClInclude Include="..\..\src\CxbxKrnl\EmuD3D8\PushBuffer.h">
<Filter>EmuD3D8</Filter>
</ClInclude>
<ClInclude Include="..\..\src\CxbxKrnl\EmuD3D8\PixelShader.h">
<Filter>EmuD3D8</Filter>
</ClInclude>
<ClInclude Include="..\..\src\CxbxKrnl\HLEDataBase\Xapi.1.0.5788.h">
<Filter>HLEDatabase</Filter>
</ClInclude>
<ClInclude Include="..\..\src\CxbxKrnl\HLEDataBase\XOnline.1.0.5788.h">
<Filter>HLEDatabase</Filter>
</ClInclude>
<ClInclude Include="..\..\src\CxbxKrnl\HLEDataBase\XG.1.0.5788.h">
<ClInclude Include="..\..\src\CxbxKrnl\HLEDataBase\XOnline.1.0.5849.h">
<Filter>HLEDatabase</Filter>
</ClInclude>
<ClInclude Include="..\..\src\CxbxKrnl\HLEDataBase\D3D8.1.0.5788.h">
<Filter>HLEDatabase</Filter>
<ClInclude Include="..\..\src\CxbxKrnl\EmuKrnlLogging.h">
<Filter>Kernel</Filter>
</ClInclude>
<ClInclude Include="..\..\src\CxbxKrnl\HLEDataBase\DSound.1.0.5788.h">
<Filter>HLEDatabase</Filter>
<ClInclude Include="..\..\src\Cxbx.h">
<Filter>Shared</Filter>
</ClInclude>
<ClInclude Include="..\..\src\CxbxKrnl\Emu.h">
<Filter>Shared</Filter>
</ClInclude>
<ClInclude Include="..\..\src\CxbxKrnl\EmuShared.h">
<Filter>Shared</Filter>
</ClInclude>
<ClInclude Include="..\..\src\Common\Error.h">
<Filter>Shared</Filter>
</ClInclude>
<ClInclude Include="..\..\src\Common\Win32\Mutex.h">
<Filter>Shared</Filter>
</ClInclude>
<ClInclude Include="..\..\src\Cxbx\ResCxbx.h">
<Filter>Shared</Filter>
</ClInclude>
<ClInclude Include="..\..\src\Common\Win32\XBController.h">
<Filter>Shared</Filter>
</ClInclude>
<ClInclude Include="..\..\src\Common\Xbe.h">
<Filter>Shared</Filter>
</ClInclude>
<ClInclude Include="..\..\src\Common\Win32\XBVideo.h">
<Filter>Shared</Filter>
</ClInclude>
<ClInclude Include="..\..\src\CxbxKrnl\CxbxKrnl.h">
<Filter>Emulator</Filter>
</ClInclude>
<ClInclude Include="..\..\src\CxbxKrnl\DbgConsole.h">
<Filter>Emulator</Filter>
</ClInclude>
<ClInclude Include="..\..\src\CxbxKrnl\device.h">
<Filter>Emulator</Filter>
</ClInclude>
<ClInclude Include="..\..\src\CxbxKrnl\EmuAlloc.h">
<Filter>Emulator</Filter>
</ClInclude>
<ClInclude Include="..\..\src\CxbxKrnl\EmuD3D8.h">
<Filter>Emulator</Filter>
</ClInclude>
<ClInclude Include="..\..\src\CxbxKrnl\EmuD3D8Types.h">
<Filter>Emulator</Filter>
</ClInclude>
<ClInclude Include="..\..\src\CxbxKrnl\EmuDInput.h">
<Filter>Emulator</Filter>
</ClInclude>
<ClInclude Include="..\..\src\CxbxKrnl\EmuDSound.h">
<Filter>Emulator</Filter>
</ClInclude>
<ClInclude Include="..\..\src\CxbxKrnl\EmuFile.h">
<Filter>Emulator</Filter>
</ClInclude>
<ClInclude Include="..\..\src\CxbxKrnl\EmuFS.h">
<Filter>Emulator</Filter>
</ClInclude>
<ClInclude Include="..\..\src\CxbxKrnl\EmuNtDll.h">
<Filter>Emulator</Filter>
</ClInclude>
<ClInclude Include="..\..\src\CxbxKrnl\EmuNV2A.h">
<Filter>Emulator</Filter>
</ClInclude>
<ClInclude Include="..\..\src\CxbxKrnl\EmuSha.h">
<Filter>Emulator</Filter>
</ClInclude>
<ClInclude Include="..\..\src\CxbxKrnl\EmuX86.h">
<Filter>Emulator</Filter>
</ClInclude>
<ClInclude Include="..\..\src\CxbxKrnl\EmuXactEng.h">
<Filter>Emulator</Filter>
</ClInclude>
<ClInclude Include="..\..\src\CxbxKrnl\EmuXapi.h">
<Filter>Emulator</Filter>
</ClInclude>
<ClInclude Include="..\..\src\CxbxKrnl\EmuXG.h">
<Filter>Emulator</Filter>
</ClInclude>
<ClInclude Include="..\..\src\CxbxKrnl\EmuXInput.h">
<Filter>Emulator</Filter>
</ClInclude>
<ClInclude Include="..\..\src\CxbxKrnl\EmuXOnline.h">
<Filter>Emulator</Filter>
</ClInclude>
<ClInclude Include="..\..\src\CxbxKrnl\EmuXTL.h">
<Filter>Emulator</Filter>
</ClInclude>
<ClInclude Include="..\..\src\CxbxKrnl\HLEDataBase.h">
<Filter>Emulator</Filter>
</ClInclude>
<ClInclude Include="..\..\src\CxbxKrnl\HLEIntercept.h">
<Filter>Emulator</Filter>
</ClInclude>
<ClInclude Include="..\..\src\CxbxKrnl\LibRc4.h">
<Filter>Emulator</Filter>
</ClInclude>
<ClInclude Include="..\..\src\Common\Logging.h">
<Filter>Emulator</Filter>
</ClInclude>
<ClInclude Include="..\..\src\CxbxKrnl\nv2a_int.h">
<Filter>Emulator</Filter>
</ClInclude>
<ClInclude Include="..\..\src\CxbxKrnl\OOVPA.h">
<Filter>Emulator</Filter>
</ClInclude>
<ClInclude Include="..\..\src\CxbxKrnl\ResourceTracker.h">
<Filter>Emulator</Filter>
</ClInclude>
<ClInclude Include="..\..\src\CxbxKrnl\ReservedMemory.h">
<Filter>Shared</Filter>
</ClInclude>
<ClInclude Include="..\..\src\Common\Win32\AlignPosfix1.h">
<Filter>Shared</Filter>
</ClInclude>
<ClInclude Include="..\..\src\Common\Win32\AlignPrefix1.h">
<Filter>Shared</Filter>
</ClInclude>
</ItemGroup>
<ItemGroup>
<ResourceCompile Include="..\..\resource\CxbxDll.rc" />
</ItemGroup>
<ItemGroup>
<None Include="..\..\resource\Cxbx.ico" />
<None Include="..\..\src\CxbxKrnl\HLEDataBase\D3D8LTCG.1.0.5849.inl">
<Filter>HLEDatabase</Filter>
<None Include="..\..\resource\About.jpg">
<Filter>GUI</Filter>
</None>
<None Include="..\..\src\CxbxKrnl\HLEDataBase\DSound.1.0.4134.inl">
<Filter>HLEDatabase</Filter>
</None>
<None Include="..\..\src\CxbxKrnl\HLEDataBase\XactEng.1.0.4627.inl">
<Filter>HLEDatabase</Filter>
</None>
<None Include="..\..\src\CxbxKrnl\HLEDataBase\Xapi.1.0.4721.inl">
<Filter>HLEDatabase</Filter>
</None>
<None Include="..\..\src\CxbxKrnl\HLEDataBase\XOnline.1.0.5849.inl">
<Filter>HLEDatabase</Filter>
</None>
<None Include="..\..\src\CxbxKrnl\HLEDataBase\XG.1.0.3911.inl">
<Filter>HLEDatabase</Filter>
</None>
<None Include="..\..\src\CxbxKrnl\HLEDataBase\XG.1.0.4034.inl">
<Filter>HLEDatabase</Filter>
</None>
<None Include="..\..\src\CxbxKrnl\HLEDataBase\XG.1.0.4432.inl">
<Filter>HLEDatabase</Filter>
</None>
<None Include="..\..\src\CxbxKrnl\HLEDataBase\XG.1.0.5849.inl">
<Filter>HLEDatabase</Filter>
</None>
<None Include="..\..\src\CxbxKrnl\HLEDataBase\XNet.1.0.4627.inl">
<Filter>HLEDatabase</Filter>
</None>
<None Include="..\..\src\CxbxKrnl\HLEDataBase\XOnline.1.0.4627.inl">
<Filter>HLEDatabase</Filter>
</None>
<None Include="..\..\src\CxbxKrnl\HLEDataBase\XOnline.1.0.5233.inl">
<Filter>HLEDatabase</Filter>
<None Include="..\..\resource\Splash.jpg">
<Filter>GUI</Filter>
</None>
<None Include="..\..\src\CxbxKrnl\HLEDataBase\D3D8.1.0.3925.inl">
<Filter>HLEDatabase</Filter>
@ -340,12 +524,21 @@
<None Include="..\..\src\CxbxKrnl\HLEDataBase\D3D8.1.0.5558.inl">
<Filter>HLEDatabase</Filter>
</None>
<None Include="..\..\src\CxbxKrnl\HLEDataBase\D3D8.1.0.5788.inl">
<Filter>HLEDatabase</Filter>
</None>
<None Include="..\..\src\CxbxKrnl\HLEDataBase\D3D8.1.0.5849.inl">
<Filter>HLEDatabase</Filter>
</None>
<None Include="..\..\src\CxbxKrnl\HLEDataBase\D3D8LTCG.1.0.5849.inl">
<Filter>HLEDatabase</Filter>
</None>
<None Include="..\..\src\CxbxKrnl\HLEDataBase\DSound.1.0.3936.inl">
<Filter>HLEDatabase</Filter>
</None>
<None Include="..\..\src\CxbxKrnl\HLEDataBase\DSound.1.0.4134.inl">
<Filter>HLEDatabase</Filter>
</None>
<None Include="..\..\src\CxbxKrnl\HLEDataBase\DSound.1.0.4361.inl">
<Filter>HLEDatabase</Filter>
</None>
@ -364,6 +557,9 @@
<None Include="..\..\src\CxbxKrnl\HLEDataBase\DSound.1.0.5849.inl">
<Filter>HLEDatabase</Filter>
</None>
<None Include="..\..\src\CxbxKrnl\HLEDataBase\XactEng.1.0.4627.inl">
<Filter>HLEDatabase</Filter>
</None>
<None Include="..\..\src\CxbxKrnl\HLEDataBase\Xapi.1.0.3911.inl">
<Filter>HLEDatabase</Filter>
</None>
@ -382,6 +578,9 @@
<None Include="..\..\src\CxbxKrnl\HLEDataBase\Xapi.1.0.4627.inl">
<Filter>HLEDatabase</Filter>
</None>
<None Include="..\..\src\CxbxKrnl\HLEDataBase\Xapi.1.0.4721.inl">
<Filter>HLEDatabase</Filter>
</None>
<None Include="..\..\src\CxbxKrnl\HLEDataBase\Xapi.1.0.5233.inl">
<Filter>HLEDatabase</Filter>
</None>
@ -391,9 +590,18 @@
<None Include="..\..\src\CxbxKrnl\HLEDataBase\Xapi.1.0.5849.inl">
<Filter>HLEDatabase</Filter>
</None>
<None Include="..\..\src\CxbxKrnl\HLEDataBase\XG.1.0.3911.inl">
<Filter>HLEDatabase</Filter>
</None>
<None Include="..\..\src\CxbxKrnl\HLEDataBase\XG.1.0.4034.inl">
<Filter>HLEDatabase</Filter>
</None>
<None Include="..\..\src\CxbxKrnl\HLEDataBase\XG.1.0.4361.inl">
<Filter>HLEDatabase</Filter>
</None>
<None Include="..\..\src\CxbxKrnl\HLEDataBase\XG.1.0.4432.inl">
<Filter>HLEDatabase</Filter>
</None>
<None Include="..\..\src\CxbxKrnl\HLEDataBase\XG.1.0.4627.inl">
<Filter>HLEDatabase</Filter>
</None>
@ -403,25 +611,60 @@
<None Include="..\..\src\CxbxKrnl\HLEDataBase\XG.1.0.5558.inl">
<Filter>HLEDatabase</Filter>
</None>
<None Include="..\..\src\CxbxKrnl\HLEDataBase\XG.1.0.5849.inl">
<Filter>HLEDatabase</Filter>
</None>
<None Include="..\..\src\CxbxKrnl\HLEDataBase\XNet.1.0.3911.inl">
<Filter>HLEDatabase</Filter>
</None>
<None Include="..\..\src\CxbxKrnl\HLEDataBase\XNet.1.0.4627.inl">
<Filter>HLEDatabase</Filter>
</None>
<None Include="..\..\src\CxbxKrnl\HLEDataBase\XOnline.1.0.4361.inl">
<Filter>HLEDatabase</Filter>
</None>
<None Include="..\..\src\CxbxKrnl\HLEDataBase\XOnline.1.0.4627.inl">
<Filter>HLEDatabase</Filter>
</None>
<None Include="..\..\src\CxbxKrnl\HLEDataBase\XOnline.1.0.5233.inl">
<Filter>HLEDatabase</Filter>
</None>
<None Include="..\..\src\CxbxKrnl\HLEDataBase\XOnline.1.0.5558.inl">
<Filter>HLEDatabase</Filter>
</None>
<None Include="..\..\src\CxbxKrnl\HLEDataBase\D3D8.1.0.5788.inl">
<None Include="..\..\src\CxbxKrnl\HLEDataBase\XOnline.1.0.5849.inl">
<Filter>HLEDatabase</Filter>
</None>
<None Include="..\..\resource\Cxbx.ico">
<Filter>Shared</Filter>
</None>
<None Include="..\..\resource\Logo.bmp">
<Filter>Shared</Filter>
</None>
</ItemGroup>
<ItemGroup>
<Filter Include="HLEDatabase">
<UniqueIdentifier>{d247f4d8-306d-42ce-99fb-da69003aa5c4}</UniqueIdentifier>
<Filter Include="GUI">
<UniqueIdentifier>{445ff8dc-8414-41ad-8681-01243121d574}</UniqueIdentifier>
</Filter>
<Filter Include="EmuD3D8">
<UniqueIdentifier>{4fe33d6b-8ba6-4110-9b87-176c936437a7}</UniqueIdentifier>
<UniqueIdentifier>{4ee1fc9a-ee21-4764-b96f-1caf41881bab}</UniqueIdentifier>
</Filter>
<Filter Include="HLEDatabase">
<UniqueIdentifier>{21769121-0f1d-40f2-90dd-bd0a192457ad}</UniqueIdentifier>
</Filter>
<Filter Include="Kernel">
<UniqueIdentifier>{0187aa1f-d227-4dd5-b9ae-a336795923c7}</UniqueIdentifier>
</Filter>
<Filter Include="Emulator">
<UniqueIdentifier>{a5334d93-a02d-41f6-8c3b-fa6e8e3c3be0}</UniqueIdentifier>
</Filter>
<Filter Include="Shared">
<UniqueIdentifier>{d8ef7ef5-cbb9-4dba-9cab-585519a9756b}</UniqueIdentifier>
</Filter>
</ItemGroup>
<ItemGroup>
<ResourceCompile Include="..\..\resource\Cxbx.rc">
<Filter>Shared</Filter>
</ResourceCompile>
</ItemGroup>
</Project>

View File

@ -1,722 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<Project DefaultTargets="Build" ToolsVersion="14.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ItemGroup Label="ProjectConfigurations">
<ProjectConfiguration Include="Debug|Win32">
<Configuration>Debug</Configuration>
<Platform>Win32</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="Release|Win32">
<Configuration>Release</Configuration>
<Platform>Win32</Platform>
</ProjectConfiguration>
</ItemGroup>
<PropertyGroup Label="Globals">
<ProjectName>CxbxKrnl</ProjectName>
<ProjectGuid>{22592F16-CC5F-45CB-A40A-022FF6FCC146}</ProjectGuid>
<WindowsTargetPlatformVersion>8.1</WindowsTargetPlatformVersion>
</PropertyGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
<ConfigurationType>DynamicLibrary</ConfigurationType>
<UseOfMfc>false</UseOfMfc>
<CharacterSet>MultiByte</CharacterSet>
<PlatformToolset>v140</PlatformToolset>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
<ConfigurationType>DynamicLibrary</ConfigurationType>
<UseOfMfc>false</UseOfMfc>
<CharacterSet>MultiByte</CharacterSet>
<PlatformToolset>v140</PlatformToolset>
</PropertyGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
<ImportGroup Label="ExtensionSettings">
</ImportGroup>
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="PropertySheets">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
<Import Project="$(VCTargetsPath)Microsoft.CPP.UpgradeFromVC60.props" />
</ImportGroup>
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="PropertySheets">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
<Import Project="$(VCTargetsPath)Microsoft.CPP.UpgradeFromVC60.props" />
</ImportGroup>
<PropertyGroup Label="UserMacros" />
<PropertyGroup>
<_ProjectFileVersion>10.0.40219.1</_ProjectFileVersion>
<LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">false</LinkIncremental>
<LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">false</LinkIncremental>
<CodeAnalysisRuleSet Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">AllRules.ruleset</CodeAnalysisRuleSet>
<CodeAnalysisRules Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" />
<CodeAnalysisRuleAssemblies Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" />
<CodeAnalysisRuleSet Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">AllRules.ruleset</CodeAnalysisRuleSet>
<CodeAnalysisRules Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" />
<CodeAnalysisRuleAssemblies Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" />
<IncludePath Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">..\..\import\DirectX8\include;$(IncludePath)</IncludePath>
<LibraryPath Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">..\..\import\DirectX8\lib;$(LibraryPath)</LibraryPath>
<IncludePath Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">..\..\import\DirectX8\include;$(IncludePath)</IncludePath>
<LibraryPath Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">..\..\import\DirectX8\lib;$(LibraryPath)</LibraryPath>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
<CustomBuildBeforeTargets>
</CustomBuildBeforeTargets>
<CustomBuildAfterTargets>
</CustomBuildAfterTargets>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
<CustomBuildBeforeTargets>
</CustomBuildBeforeTargets>
<CustomBuildAfterTargets>
</CustomBuildAfterTargets>
</PropertyGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
<Midl>
<PreprocessorDefinitions>NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<MkTypLibCompatible>true</MkTypLibCompatible>
<SuppressStartupBanner>true</SuppressStartupBanner>
<TargetEnvironment>Win32</TargetEnvironment>
<TypeLibraryName>.\..\..\bin\release/CxbxKrnl.tlb</TypeLibraryName>
<HeaderFileName>
</HeaderFileName>
</Midl>
<ClCompile>
<Optimization>MaxSpeed</Optimization>
<InlineFunctionExpansion>OnlyExplicitInline</InlineFunctionExpansion>
<AdditionalIncludeDirectories>..\..\import\OpenXDK\include;..\..\import\distorm\include;..\..\import\glew-2.0.0\include;..\..\src;..\..\src\Common;..\..\src\Common\Win32;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>WIN32;NDEBUG;_WINDOWS;_USRDLL;CXBXKRNL_EXPORTS;_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<StringPooling>true</StringPooling>
<RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
<FunctionLevelLinking>true</FunctionLevelLinking>
<WarningLevel>Level3</WarningLevel>
<SuppressStartupBanner>true</SuppressStartupBanner>
</ClCompile>
<ResourceCompile>
<PreprocessorDefinitions>NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<Culture>0x0409</Culture>
<AdditionalIncludeDirectories>Include\Win32\CxbxKrnl;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
</ResourceCompile>
<Link>
<AdditionalDependencies>Shlwapi.lib;legacy_stdio_definitions.lib;dxerr8.lib;xinput.lib;ws2_32.lib;dsound.lib;winmm.lib;ddraw.lib;d3dx8.lib;d3d8.lib;dinput8.lib;dxguid.lib;odbc32.lib;odbccp32.lib;dbghelp.lib;%(AdditionalDependencies)</AdditionalDependencies>
<SuppressStartupBanner>true</SuppressStartupBanner>
<IgnoreSpecificDefaultLibraries>libci.lib;%(IgnoreSpecificDefaultLibraries)</IgnoreSpecificDefaultLibraries>
<RandomizedBaseAddress>false</RandomizedBaseAddress>
<DataExecutionPrevention>
</DataExecutionPrevention>
<TargetMachine>MachineX86</TargetMachine>
<ImageHasSafeExceptionHandlers>false</ImageHasSafeExceptionHandlers>
<LargeAddressAware>false</LargeAddressAware>
<AdditionalLibraryDirectories>..\..\import\distorm\lib\Win32\;..\..\import\glew-2.0.0\lib\Release\Win32\</AdditionalLibraryDirectories>
</Link>
<Bscmake>
<SuppressStartupBanner>true</SuppressStartupBanner>
</Bscmake>
<PostBuildEvent>
<Command>copy $(SolutionDir)..\..\import\glew-2.0.0\bin\Release\Win32\glew32.dll $(TargetDir)</Command>
</PostBuildEvent>
<CustomBuildStep>
<Command>
</Command>
</CustomBuildStep>
<CustomBuildStep>
<Outputs>
</Outputs>
<TreatOutputAsContent>
</TreatOutputAsContent>
</CustomBuildStep>
<PreBuildEvent>
<Command>CALL "$(SolutionDir)Version.bat" "$(SolutionDir)..\..\src\Version.h"</Command>
</PreBuildEvent>
<PreBuildEvent>
<Message>Generate version header</Message>
</PreBuildEvent>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
<Midl>
<PreprocessorDefinitions>_DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<MkTypLibCompatible>true</MkTypLibCompatible>
<SuppressStartupBanner>true</SuppressStartupBanner>
<TargetEnvironment>Win32</TargetEnvironment>
<TypeLibraryName>.\..\..\bin\debug/CxbxKrnl.tlb</TypeLibraryName>
<HeaderFileName>
</HeaderFileName>
</Midl>
<ClCompile>
<Optimization>Disabled</Optimization>
<AdditionalIncludeDirectories>..\..\import\OpenXDK\include;..\..\import\distorm\include;..\..\import\glew-2.0.0\include;..\..\src;..\..\src\Common;..\..\src\Common\Win32;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>WIN32;_DEBUG;_WINDOWS;_USRDLL;CXBXKRNL_EXPORTS;_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<MinimalRebuild>true</MinimalRebuild>
<BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
<RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
<WarningLevel>Level3</WarningLevel>
<SuppressStartupBanner>true</SuppressStartupBanner>
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
</ClCompile>
<ResourceCompile>
<PreprocessorDefinitions>_DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<Culture>0x0409</Culture>
<AdditionalIncludeDirectories>Include\Win32\CxbxKrnl;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
</ResourceCompile>
<Link>
<AdditionalDependencies>Shlwapi.lib;legacy_stdio_definitions.lib;dxerr8.lib;xinput.lib;ws2_32.lib;dsound.lib;winmm.lib;ddraw.lib;d3dx8.lib;d3d8.lib;dinput8.lib;dxguid.lib;odbc32.lib;odbccp32.lib;dbghelp.lib;%(AdditionalDependencies)</AdditionalDependencies>
<SuppressStartupBanner>true</SuppressStartupBanner>
<IgnoreSpecificDefaultLibraries>libci.lib;%(IgnoreSpecificDefaultLibraries)</IgnoreSpecificDefaultLibraries>
<GenerateDebugInformation>true</GenerateDebugInformation>
<GenerateMapFile>true</GenerateMapFile>
<StackReserveSize>8000000</StackReserveSize>
<RandomizedBaseAddress>false</RandomizedBaseAddress>
<DataExecutionPrevention>
</DataExecutionPrevention>
<TargetMachine>MachineX86</TargetMachine>
<ImageHasSafeExceptionHandlers>false</ImageHasSafeExceptionHandlers>
<LargeAddressAware>false</LargeAddressAware>
<AdditionalLibraryDirectories>..\..\import\distorm\lib\Win32\;..\..\import\glew-2.0.0\lib\Release\Win32\</AdditionalLibraryDirectories>
</Link>
<Bscmake>
<SuppressStartupBanner>true</SuppressStartupBanner>
</Bscmake>
<PostBuildEvent>
<Command>copy $(SolutionDir)..\..\import\glew-2.0.0\bin\Release\Win32\glew32.dll $(TargetDir)</Command>
</PostBuildEvent>
<CustomBuildStep>
<Command>
</Command>
</CustomBuildStep>
<CustomBuildStep>
<Outputs>
</Outputs>
<TreatOutputAsContent>
</TreatOutputAsContent>
</CustomBuildStep>
<PreBuildEvent>
<Command>CALL "$(SolutionDir)Version.bat" "$(SolutionDir)..\..\src\Version.h"</Command>
</PreBuildEvent>
<PreBuildEvent>
<Message>Generate version header</Message>
</PreBuildEvent>
</ItemDefinitionGroup>
<ItemGroup>
<ClInclude Include="..\..\src\Common\Error.h" />
<ClInclude Include="..\..\src\Common\Logging.h" />
<ClInclude Include="..\..\src\Common\Win32\AlignPosfix1.h" />
<ClInclude Include="..\..\src\Common\Win32\AlignPrefix1.h" />
<ClInclude Include="..\..\src\Common\Xbe.h" />
<ClInclude Include="..\..\src\Cxbx.h" />
<ClInclude Include="..\..\src\CxbxKrnl\CxbxKrnl.h" />
<ClInclude Include="..\..\src\CxbxKrnl\DbgConsole.h" />
<ClInclude Include="..\..\src\CxbxKrnl\device.h" />
<ClInclude Include="..\..\src\CxbxKrnl\Emu.h" />
<ClInclude Include="..\..\src\CxbxKrnl\EmuAlloc.h" />
<ClInclude Include="..\..\src\CxbxKrnl\EmuD3D8.h" />
<ClInclude Include="..\..\src\CxbxKrnl\EmuD3D8Types.h" />
<ClInclude Include="..\..\src\CxbxKrnl\EmuDInput.h" />
<ClInclude Include="..\..\src\CxbxKrnl\EmuDSound.h" />
<ClInclude Include="..\..\src\CxbxKrnl\EmuFile.h" />
<ClInclude Include="..\..\src\CxbxKrnl\EmuFS.h" />
<ClInclude Include="..\..\src\CxbxKrnl\EmuKrnlLogging.h" />
<ClInclude Include="..\..\src\CxbxKrnl\EmuNtDll.h" />
<ClInclude Include="..\..\src\CxbxKrnl\EmuNV2A.h" />
<ClInclude Include="..\..\src\CxbxKrnl\EmuSha.h" />
<ClInclude Include="..\..\src\CxbxKrnl\EmuShared.h" />
<ClInclude Include="..\..\src\CxbxKrnl\EmuX86.h" />
<ClInclude Include="..\..\src\CxbxKrnl\EmuXactEng.h" />
<ClInclude Include="..\..\src\CxbxKrnl\EmuXapi.h" />
<ClInclude Include="..\..\src\CxbxKrnl\EmuXG.h" />
<ClInclude Include="..\..\src\CxbxKrnl\EmuXInput.h" />
<ClInclude Include="..\..\src\CxbxKrnl\EmuXOnline.h" />
<ClInclude Include="..\..\src\CxbxKrnl\EmuXTL.h" />
<ClInclude Include="..\..\src\CxbxKrnl\HLEDataBase.h" />
<ClInclude Include="..\..\src\CxbxKrnl\HLEDataBase\DSound.1.0.5558.h" />
<ClInclude Include="..\..\src\CxbxKrnl\HLEDataBase\Xapi.1.0.4721.h" />
<ClInclude Include="..\..\src\CxbxKrnl\HLEDataBase\XNet.1.0.4627.h" />
<ClInclude Include="..\..\src\CxbxKrnl\HLEDataBase\XOnline.1.0.5558.h" />
<ClInclude Include="..\..\src\CxbxKrnl\HLEIntercept.h" />
<ClInclude Include="..\..\src\Common\Win32\Mutex.h" />
<ClInclude Include="..\..\src\CxbxKrnl\LibRc4.h" />
<ClInclude Include="..\..\src\CxbxKrnl\nv2a_int.h" />
<ClInclude Include="..\..\src\CxbxKrnl\OOVPA.h" />
<ClInclude Include="..\..\src\CxbxKrnl\ResourceTracker.h" />
<ClInclude Include="..\..\src\Common\Win32\XBController.h" />
<ClInclude Include="..\..\src\Common\Win32\XBVideo.h" />
<ClInclude Include="..\..\src\CxbxKrnl\HLEDataBase\D3D8.1.0.3925.h" />
<ClInclude Include="..\..\src\CxbxKrnl\HLEDataBase\D3D8.1.0.4034.h" />
<ClInclude Include="..\..\src\CxbxKrnl\HLEDataBase\D3D8.1.0.4134.h" />
<ClInclude Include="..\..\src\CxbxKrnl\HLEDataBase\D3D8.1.0.4361.h" />
<ClInclude Include="..\..\src\CxbxKrnl\HLEDataBase\D3D8.1.0.4432.h" />
<ClInclude Include="..\..\src\CxbxKrnl\HLEDataBase\D3D8.1.0.4627.h" />
<ClInclude Include="..\..\src\CxbxKrnl\HLEDataBase\D3D8.1.0.5233.h" />
<ClInclude Include="..\..\src\CxbxKrnl\HLEDataBase\D3D8.1.0.5558.h" />
<ClInclude Include="..\..\src\CxbxKrnl\HLEDataBase\D3D8.1.0.5788.h" />
<ClInclude Include="..\..\src\CxbxKrnl\HLEDataBase\D3D8.1.0.5849.h" />
<ClInclude Include="..\..\src\CxbxKrnl\HLEDataBase\D3D8LTCG.1.0.5849.h" />
<ClInclude Include="..\..\src\CxbxKrnl\HLEDataBase\DSound.1.0.3936.h" />
<ClInclude Include="..\..\src\CxbxKrnl\HLEDataBase\DSound.1.0.4134.h" />
<ClInclude Include="..\..\src\CxbxKrnl\HLEDataBase\DSound.1.0.4361.h" />
<ClInclude Include="..\..\src\CxbxKrnl\HLEDataBase\DSound.1.0.4432.h" />
<ClInclude Include="..\..\src\CxbxKrnl\HLEDataBase\DSound.1.0.4627.h" />
<ClInclude Include="..\..\src\CxbxKrnl\HLEDataBase\DSound.1.0.5233.h" />
<ClInclude Include="..\..\src\CxbxKrnl\HLEDataBase\DSound.1.0.5788.h" />
<ClInclude Include="..\..\src\CxbxKrnl\HLEDataBase\DSound.1.0.5849.h" />
<ClInclude Include="..\..\src\CxbxKrnl\HLEDataBase\XactEng.1.0.4627.h" />
<ClInclude Include="..\..\src\CxbxKrnl\HLEDataBase\Xapi.1.0.3911.h" />
<ClInclude Include="..\..\src\CxbxKrnl\HLEDataBase\Xapi.1.0.4034.h" />
<ClInclude Include="..\..\src\CxbxKrnl\HLEDataBase\Xapi.1.0.4134.h" />
<ClInclude Include="..\..\src\CxbxKrnl\HLEDataBase\Xapi.1.0.4361.h" />
<ClInclude Include="..\..\src\CxbxKrnl\HLEDataBase\Xapi.1.0.4432.h" />
<ClInclude Include="..\..\src\CxbxKrnl\HLEDataBase\Xapi.1.0.4627.h" />
<ClInclude Include="..\..\src\CxbxKrnl\HLEDataBase\Xapi.1.0.5233.h" />
<ClInclude Include="..\..\src\CxbxKrnl\HLEDataBase\Xapi.1.0.5558.h" />
<ClInclude Include="..\..\src\CxbxKrnl\HLEDataBase\Xapi.1.0.5788.h" />
<ClInclude Include="..\..\src\CxbxKrnl\HLEDataBase\Xapi.1.0.5849.h" />
<ClInclude Include="..\..\src\CxbxKrnl\HLEDataBase\XG.1.0.3911.h" />
<ClInclude Include="..\..\src\CxbxKrnl\HLEDataBase\XG.1.0.4034.h" />
<ClInclude Include="..\..\src\CxbxKrnl\HLEDataBase\XG.1.0.4361.h" />
<ClInclude Include="..\..\src\CxbxKrnl\HLEDataBase\XG.1.0.4432.h" />
<ClInclude Include="..\..\src\CxbxKrnl\HLEDataBase\XG.1.0.4627.h" />
<ClInclude Include="..\..\src\CxbxKrnl\HLEDataBase\XG.1.0.5233.h" />
<ClInclude Include="..\..\src\CxbxKrnl\HLEDataBase\XG.1.0.5558.h" />
<ClInclude Include="..\..\src\CxbxKrnl\HLEDataBase\XG.1.0.5788.h" />
<ClInclude Include="..\..\src\CxbxKrnl\HLEDataBase\XG.1.0.5849.h" />
<ClInclude Include="..\..\src\CxbxKrnl\HLEDataBase\XNet.1.0.3911.h" />
<ClInclude Include="..\..\src\CxbxKrnl\HLEDataBase\XOnline.1.0.4361.h" />
<ClInclude Include="..\..\src\CxbxKrnl\HLEDataBase\XOnline.1.0.4627.h" />
<ClInclude Include="..\..\src\CxbxKrnl\HLEDataBase\XOnline.1.0.5233.h" />
<ClInclude Include="..\..\src\CxbxKrnl\HLEDataBase\XOnline.1.0.5788.h" />
<ClInclude Include="..\..\src\CxbxKrnl\HLEDataBase\XOnline.1.0.5849.h" />
<ClInclude Include="..\..\src\CxbxKrnl\EmuD3D8\Convert.h" />
<ClInclude Include="..\..\src\CxbxKrnl\EmuD3D8\PixelShader.h" />
<ClInclude Include="..\..\src\CxbxKrnl\EmuD3D8\PushBuffer.h" />
<ClInclude Include="..\..\src\CxbxKrnl\EmuD3D8\State.h" />
<ClInclude Include="..\..\src\CxbxKrnl\EmuD3D8\VertexBuffer.h" />
<ClInclude Include="..\..\src\CxbxKrnl\EmuD3D8\VertexShader.h" />
</ItemGroup>
<ItemGroup>
<None Include="..\..\resource\Cxbx.ico" />
<CustomBuildStep Include="..\..\src\CxbxKrnl\HLEDataBase\D3D8.1.0.3925.inl">
<FileType>Document</FileType>
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</ExcludedFromBuild>
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">true</ExcludedFromBuild>
</CustomBuildStep>
<CustomBuildStep Include="..\..\src\CxbxKrnl\HLEDataBase\D3D8.1.0.4034.inl">
<FileType>Document</FileType>
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</ExcludedFromBuild>
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">true</ExcludedFromBuild>
</CustomBuildStep>
<CustomBuildStep Include="..\..\src\CxbxKrnl\HLEDataBase\D3D8.1.0.4134.inl">
<FileType>Document</FileType>
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</ExcludedFromBuild>
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">true</ExcludedFromBuild>
</CustomBuildStep>
<CustomBuildStep Include="..\..\src\CxbxKrnl\HLEDataBase\D3D8.1.0.4361.inl">
<FileType>Document</FileType>
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</ExcludedFromBuild>
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">true</ExcludedFromBuild>
</CustomBuildStep>
<CustomBuildStep Include="..\..\src\CxbxKrnl\HLEDataBase\D3D8.1.0.4432.inl">
<FileType>Document</FileType>
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</ExcludedFromBuild>
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">true</ExcludedFromBuild>
</CustomBuildStep>
<CustomBuildStep Include="..\..\src\CxbxKrnl\HLEDataBase\D3D8.1.0.4627.inl">
<FileType>Document</FileType>
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</ExcludedFromBuild>
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">true</ExcludedFromBuild>
</CustomBuildStep>
<CustomBuildStep Include="..\..\src\CxbxKrnl\HLEDataBase\D3D8.1.0.5233.inl">
<FileType>Document</FileType>
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</ExcludedFromBuild>
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">true</ExcludedFromBuild>
</CustomBuildStep>
<CustomBuildStep Include="..\..\src\CxbxKrnl\HLEDataBase\D3D8.1.0.5558.inl">
<FileType>Document</FileType>
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</ExcludedFromBuild>
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">true</ExcludedFromBuild>
</CustomBuildStep>
<CustomBuildStep Include="..\..\src\CxbxKrnl\HLEDataBase\D3D8.1.0.5788.inl">
<FileType>Document</FileType>
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</ExcludedFromBuild>
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">true</ExcludedFromBuild>
</CustomBuildStep>
<CustomBuildStep Include="..\..\src\CxbxKrnl\HLEDataBase\D3D8.1.0.5849.inl">
<FileType>Document</FileType>
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</ExcludedFromBuild>
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">true</ExcludedFromBuild>
</CustomBuildStep>
<None Include="..\..\src\CxbxKrnl\HLEDataBase\D3D8.1.0.3925.inl" />
<None Include="..\..\src\CxbxKrnl\HLEDataBase\D3D8.1.0.4034.inl" />
<None Include="..\..\src\CxbxKrnl\HLEDataBase\D3D8.1.0.4134.inl" />
<None Include="..\..\src\CxbxKrnl\HLEDataBase\D3D8.1.0.4361.inl" />
<None Include="..\..\src\CxbxKrnl\HLEDataBase\D3D8.1.0.4432.inl" />
<None Include="..\..\src\CxbxKrnl\HLEDataBase\D3D8.1.0.4627.inl" />
<None Include="..\..\src\CxbxKrnl\HLEDataBase\D3D8.1.0.5233.inl" />
<None Include="..\..\src\CxbxKrnl\HLEDataBase\D3D8.1.0.5558.inl" />
<None Include="..\..\src\CxbxKrnl\HLEDataBase\D3D8.1.0.5788.inl" />
<None Include="..\..\src\CxbxKrnl\HLEDataBase\D3D8.1.0.5849.inl" />
<None Include="..\..\src\CxbxKrnl\HLEDataBase\D3D8LTCG.1.0.5849.inl" />
<CustomBuildStep Include="..\..\src\CxbxKrnl\HLEDataBase\DSound.1.0.3936.inl">
<FileType>Document</FileType>
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</ExcludedFromBuild>
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">true</ExcludedFromBuild>
</CustomBuildStep>
<None Include="..\..\src\CxbxKrnl\HLEDataBase\DSound.1.0.3936.inl" />
<None Include="..\..\src\CxbxKrnl\HLEDataBase\DSound.1.0.4134.inl" />
<CustomBuildStep Include="..\..\src\CxbxKrnl\HLEDataBase\DSound.1.0.4361.inl">
<FileType>Document</FileType>
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</ExcludedFromBuild>
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">true</ExcludedFromBuild>
</CustomBuildStep>
<CustomBuildStep Include="..\..\src\CxbxKrnl\HLEDataBase\DSound.1.0.4432.inl">
<FileType>Document</FileType>
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</ExcludedFromBuild>
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">true</ExcludedFromBuild>
</CustomBuildStep>
<CustomBuildStep Include="..\..\src\CxbxKrnl\HLEDataBase\DSound.1.0.4627.inl">
<FileType>Document</FileType>
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</ExcludedFromBuild>
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">true</ExcludedFromBuild>
</CustomBuildStep>
<CustomBuildStep Include="..\..\src\CxbxKrnl\HLEDataBase\DSound.1.0.5233.inl">
<FileType>Document</FileType>
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</ExcludedFromBuild>
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">true</ExcludedFromBuild>
</CustomBuildStep>
<CustomBuildStep Include="..\..\src\CxbxKrnl\HLEDataBase\DSound.1.0.5558.inl">
<FileType>Document</FileType>
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</ExcludedFromBuild>
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">true</ExcludedFromBuild>
</CustomBuildStep>
<CustomBuildStep Include="..\..\src\CxbxKrnl\HLEDataBase\DSound.1.0.5788.inl">
<FileType>Document</FileType>
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</ExcludedFromBuild>
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">true</ExcludedFromBuild>
</CustomBuildStep>
<CustomBuildStep Include="..\..\src\CxbxKrnl\HLEDataBase\DSound.1.0.5849.inl">
<FileType>Document</FileType>
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</ExcludedFromBuild>
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">true</ExcludedFromBuild>
</CustomBuildStep>
<None Include="..\..\src\CxbxKrnl\HLEDataBase\DSound.1.0.4361.inl" />
<None Include="..\..\src\CxbxKrnl\HLEDataBase\DSound.1.0.4432.inl" />
<None Include="..\..\src\CxbxKrnl\HLEDataBase\DSound.1.0.4627.inl" />
<None Include="..\..\src\CxbxKrnl\HLEDataBase\DSound.1.0.5233.inl" />
<None Include="..\..\src\CxbxKrnl\HLEDataBase\DSound.1.0.5558.inl" />
<None Include="..\..\src\CxbxKrnl\HLEDataBase\DSound.1.0.5849.inl" />
<None Include="..\..\src\CxbxKrnl\HLEDataBase\XactEng.1.0.4627.inl" />
<CustomBuildStep Include="..\..\src\CxbxKrnl\HLEDataBase\Xapi.1.0.3911.inl">
<FileType>Document</FileType>
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</ExcludedFromBuild>
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">true</ExcludedFromBuild>
</CustomBuildStep>
<CustomBuildStep Include="..\..\src\CxbxKrnl\HLEDataBase\Xapi.1.0.4034.inl">
<FileType>Document</FileType>
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</ExcludedFromBuild>
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">true</ExcludedFromBuild>
</CustomBuildStep>
<CustomBuildStep Include="..\..\src\CxbxKrnl\HLEDataBase\Xapi.1.0.4134.inl">
<FileType>Document</FileType>
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</ExcludedFromBuild>
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">true</ExcludedFromBuild>
</CustomBuildStep>
<CustomBuildStep Include="..\..\src\CxbxKrnl\HLEDataBase\Xapi.1.0.4361.inl">
<FileType>Document</FileType>
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</ExcludedFromBuild>
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">true</ExcludedFromBuild>
</CustomBuildStep>
<CustomBuildStep Include="..\..\src\CxbxKrnl\HLEDataBase\Xapi.1.0.4432.inl">
<FileType>Document</FileType>
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</ExcludedFromBuild>
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">true</ExcludedFromBuild>
</CustomBuildStep>
<CustomBuildStep Include="..\..\src\CxbxKrnl\HLEDataBase\Xapi.1.0.4627.inl">
<FileType>Document</FileType>
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</ExcludedFromBuild>
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">true</ExcludedFromBuild>
</CustomBuildStep>
<CustomBuildStep Include="..\..\src\CxbxKrnl\HLEDataBase\Xapi.1.0.5233.inl">
<FileType>Document</FileType>
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</ExcludedFromBuild>
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">true</ExcludedFromBuild>
</CustomBuildStep>
<CustomBuildStep Include="..\..\src\CxbxKrnl\HLEDataBase\Xapi.1.0.5558.inl">
<FileType>Document</FileType>
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</ExcludedFromBuild>
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">true</ExcludedFromBuild>
</CustomBuildStep>
<CustomBuildStep Include="..\..\src\CxbxKrnl\HLEDataBase\Xapi.1.0.5788.inl">
<FileType>Document</FileType>
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</ExcludedFromBuild>
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">true</ExcludedFromBuild>
</CustomBuildStep>
<CustomBuildStep Include="..\..\src\CxbxKrnl\HLEDataBase\Xapi.1.0.5849.inl">
<FileType>Document</FileType>
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</ExcludedFromBuild>
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">true</ExcludedFromBuild>
</CustomBuildStep>
<None Include="..\..\src\CxbxKrnl\HLEDataBase\Xapi.1.0.3911.inl" />
<None Include="..\..\src\CxbxKrnl\HLEDataBase\Xapi.1.0.4034.inl" />
<None Include="..\..\src\CxbxKrnl\HLEDataBase\Xapi.1.0.4134.inl" />
<None Include="..\..\src\CxbxKrnl\HLEDataBase\Xapi.1.0.4361.inl" />
<None Include="..\..\src\CxbxKrnl\HLEDataBase\Xapi.1.0.4432.inl" />
<None Include="..\..\src\CxbxKrnl\HLEDataBase\Xapi.1.0.4627.inl" />
<None Include="..\..\src\CxbxKrnl\HLEDataBase\Xapi.1.0.4721.inl" />
<None Include="..\..\src\CxbxKrnl\HLEDataBase\Xapi.1.0.5233.inl" />
<None Include="..\..\src\CxbxKrnl\HLEDataBase\Xapi.1.0.5558.inl" />
<None Include="..\..\src\CxbxKrnl\HLEDataBase\Xapi.1.0.5849.inl" />
<None Include="..\..\src\CxbxKrnl\HLEDataBase\XG.1.0.3911.inl" />
<None Include="..\..\src\CxbxKrnl\HLEDataBase\XG.1.0.4034.inl" />
<CustomBuildStep Include="..\..\src\CxbxKrnl\HLEDataBase\XG.1.0.4361.inl">
<FileType>Document</FileType>
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</ExcludedFromBuild>
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">true</ExcludedFromBuild>
</CustomBuildStep>
<None Include="..\..\src\CxbxKrnl\HLEDataBase\XG.1.0.4361.inl" />
<None Include="..\..\src\CxbxKrnl\HLEDataBase\XG.1.0.4432.inl" />
<CustomBuildStep Include="..\..\src\CxbxKrnl\HLEDataBase\XG.1.0.4627.inl">
<FileType>Document</FileType>
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</ExcludedFromBuild>
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">true</ExcludedFromBuild>
</CustomBuildStep>
<CustomBuildStep Include="..\..\src\CxbxKrnl\HLEDataBase\XG.1.0.5233.inl">
<FileType>Document</FileType>
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</ExcludedFromBuild>
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">true</ExcludedFromBuild>
</CustomBuildStep>
<CustomBuildStep Include="..\..\src\CxbxKrnl\HLEDataBase\XG.1.0.5558.inl">
<FileType>Document</FileType>
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</ExcludedFromBuild>
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">true</ExcludedFromBuild>
</CustomBuildStep>
<CustomBuildStep Include="..\..\src\CxbxKrnl\HLEDataBase\XG.1.0.5788.inl">
<FileType>Document</FileType>
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</ExcludedFromBuild>
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">true</ExcludedFromBuild>
</CustomBuildStep>
<None Include="..\..\src\CxbxKrnl\HLEDataBase\XG.1.0.4627.inl" />
<None Include="..\..\src\CxbxKrnl\HLEDataBase\XG.1.0.5233.inl" />
<None Include="..\..\src\CxbxKrnl\HLEDataBase\XG.1.0.5558.inl" />
<None Include="..\..\src\CxbxKrnl\HLEDataBase\XG.1.0.5849.inl" />
<CustomBuildStep Include="..\..\src\CxbxKrnl\HLEDataBase\XNet.1.0.3911.inl">
<FileType>Document</FileType>
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</ExcludedFromBuild>
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">true</ExcludedFromBuild>
</CustomBuildStep>
<CustomBuildStep Include="..\..\src\CxbxKrnl\HLEDataBase\XOnline.1.0.4361.inl">
<FileType>Document</FileType>
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</ExcludedFromBuild>
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">true</ExcludedFromBuild>
</CustomBuildStep>
<None Include="..\..\src\CxbxKrnl\HLEDataBase\XNet.1.0.3911.inl" />
<None Include="..\..\src\CxbxKrnl\HLEDataBase\XNet.1.0.4627.inl" />
<None Include="..\..\src\CxbxKrnl\HLEDataBase\XOnline.1.0.4361.inl" />
<None Include="..\..\src\CxbxKrnl\HLEDataBase\XOnline.1.0.4627.inl" />
<None Include="..\..\src\CxbxKrnl\HLEDataBase\XOnline.1.0.5233.inl" />
<None Include="..\..\src\CxbxKrnl\HLEDataBase\XOnline.1.0.5558.inl" />
<None Include="..\..\src\CxbxKrnl\HLEDataBase\XOnline.1.0.5849.inl" />
</ItemGroup>
<ItemGroup>
<ResourceCompile Include="..\..\resource\CxbxDll.rc">
<PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">%(PreprocessorDefinitions)</PreprocessorDefinitions>
<AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">\cxbx\git\cxbx-ds\resource;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">%(PreprocessorDefinitions)</PreprocessorDefinitions>
<AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">\cxbx\git\cxbx-ds\resource;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
</ResourceCompile>
</ItemGroup>
<ItemGroup>
<ClCompile Include="..\..\src\Common\Error.cpp" />
<ClCompile Include="..\..\src\Common\Logging.cpp" />
<ClCompile Include="..\..\src\Common\Xbe.cpp" />
<ClCompile Include="..\..\src\CxbxKrnl\CxbxKrnl.cpp">
<AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">%(PreprocessorDefinitions)</PreprocessorDefinitions>
<AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">%(PreprocessorDefinitions)</PreprocessorDefinitions>
</ClCompile>
<ClCompile Include="..\..\src\CxbxKrnl\DbgConsole.cpp">
<AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">%(PreprocessorDefinitions)</PreprocessorDefinitions>
<AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">%(PreprocessorDefinitions)</PreprocessorDefinitions>
</ClCompile>
<ClCompile Include="..\..\src\CxbxKrnl\device.cpp" />
<ClCompile Include="..\..\src\CxbxKrnl\Emu.cpp">
<AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">%(PreprocessorDefinitions)</PreprocessorDefinitions>
<AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">%(PreprocessorDefinitions)</PreprocessorDefinitions>
</ClCompile>
<ClCompile Include="..\..\src\CxbxKrnl\EmuAlloc.cpp">
<AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">%(PreprocessorDefinitions)</PreprocessorDefinitions>
<AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">%(PreprocessorDefinitions)</PreprocessorDefinitions>
</ClCompile>
<ClCompile Include="..\..\src\CxbxKrnl\EmuD3D8.cpp">
<AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">%(PreprocessorDefinitions)</PreprocessorDefinitions>
<AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">%(PreprocessorDefinitions)</PreprocessorDefinitions>
</ClCompile>
<ClCompile Include="..\..\src\CxbxKrnl\EmuDInput.cpp">
<AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">%(PreprocessorDefinitions)</PreprocessorDefinitions>
<AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">%(PreprocessorDefinitions)</PreprocessorDefinitions>
</ClCompile>
<ClCompile Include="..\..\src\CxbxKrnl\EmuDSound.cpp">
<AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">%(PreprocessorDefinitions)</PreprocessorDefinitions>
<AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">%(PreprocessorDefinitions)</PreprocessorDefinitions>
</ClCompile>
<ClCompile Include="..\..\src\CxbxKrnl\EmuFile.cpp">
<AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">%(PreprocessorDefinitions)</PreprocessorDefinitions>
<AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">%(PreprocessorDefinitions)</PreprocessorDefinitions>
</ClCompile>
<ClCompile Include="..\..\src\CxbxKrnl\EmuFS.cpp">
<AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">%(PreprocessorDefinitions)</PreprocessorDefinitions>
<AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">%(PreprocessorDefinitions)</PreprocessorDefinitions>
</ClCompile>
<ClCompile Include="..\..\src\CxbxKrnl\EmuKrnl.cpp">
<AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">%(PreprocessorDefinitions)</PreprocessorDefinitions>
<AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">%(PreprocessorDefinitions)</PreprocessorDefinitions>
</ClCompile>
<ClCompile Include="..\..\src\CxbxKrnl\EmuKrnlAv.cpp" />
<ClCompile Include="..\..\src\CxbxKrnl\EmuKrnlDbg.cpp" />
<ClCompile Include="..\..\src\CxbxKrnl\EmuKrnlEx.cpp" />
<ClCompile Include="..\..\src\CxbxKrnl\EmuKrnlFs.cpp" />
<ClCompile Include="..\..\src\CxbxKrnl\EmuKrnlHal.cpp" />
<ClCompile Include="..\..\src\CxbxKrnl\EmuKrnlIo.cpp" />
<ClCompile Include="..\..\src\CxbxKrnl\EmuKrnlKd.cpp" />
<ClCompile Include="..\..\src\CxbxKrnl\EmuKrnlKe.cpp" />
<ClCompile Include="..\..\src\CxbxKrnl\EmuKrnlLogging.cpp" />
<ClCompile Include="..\..\src\CxbxKrnl\EmuKrnlMm.cpp" />
<ClCompile Include="..\..\src\CxbxKrnl\EmuKrnlNt.cpp" />
<ClCompile Include="..\..\src\CxbxKrnl\EmuKrnlOb.cpp" />
<ClCompile Include="..\..\src\CxbxKrnl\EmuKrnlPs.cpp" />
<ClCompile Include="..\..\src\CxbxKrnl\EmuKrnlRtl.cpp" />
<ClCompile Include="..\..\src\CxbxKrnl\EmuKrnlXbox.cpp" />
<ClCompile Include="..\..\src\CxbxKrnl\EmuKrnlXc.cpp" />
<ClCompile Include="..\..\src\CxbxKrnl\EmuKrnlXe.cpp" />
<ClCompile Include="..\..\src\CxbxKrnl\EmuNtDll.cpp">
<AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">%(PreprocessorDefinitions)</PreprocessorDefinitions>
<AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">%(PreprocessorDefinitions)</PreprocessorDefinitions>
</ClCompile>
<ClCompile Include="..\..\src\Common\Win32\EmuShared.cpp">
<AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">%(PreprocessorDefinitions)</PreprocessorDefinitions>
<AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">%(PreprocessorDefinitions)</PreprocessorDefinitions>
</ClCompile>
<ClCompile Include="..\..\src\CxbxKrnl\EmuNV2A.cpp" />
<ClCompile Include="..\..\src\CxbxKrnl\EmuSha.cpp" />
<ClCompile Include="..\..\src\CxbxKrnl\EmuX86.cpp" />
<ClCompile Include="..\..\src\CxbxKrnl\EmuXactEng.cpp" />
<ClCompile Include="..\..\src\CxbxKrnl\EmuXapi.cpp">
<AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">%(PreprocessorDefinitions)</PreprocessorDefinitions>
<AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">%(PreprocessorDefinitions)</PreprocessorDefinitions>
</ClCompile>
<ClCompile Include="..\..\src\CxbxKrnl\EmuXG.cpp">
<AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">%(PreprocessorDefinitions)</PreprocessorDefinitions>
<AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">%(PreprocessorDefinitions)</PreprocessorDefinitions>
</ClCompile>
<ClCompile Include="..\..\src\CxbxKrnl\EmuXInput.cpp" />
<ClCompile Include="..\..\src\CxbxKrnl\EmuXOnline.cpp">
<AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">%(PreprocessorDefinitions)</PreprocessorDefinitions>
<AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">%(PreprocessorDefinitions)</PreprocessorDefinitions>
</ClCompile>
<ClCompile Include="..\..\src\CxbxKrnl\HLEDataBase.cpp">
<AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">%(PreprocessorDefinitions)</PreprocessorDefinitions>
<AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">%(PreprocessorDefinitions)</PreprocessorDefinitions>
</ClCompile>
<ClCompile Include="..\..\src\CxbxKrnl\HLEIntercept.cpp">
<AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">%(PreprocessorDefinitions)</PreprocessorDefinitions>
<AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">%(PreprocessorDefinitions)</PreprocessorDefinitions>
</ClCompile>
<ClCompile Include="..\..\src\CxbxKrnl\KernelThunk.cpp">
<AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">%(PreprocessorDefinitions)</PreprocessorDefinitions>
<AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">%(PreprocessorDefinitions)</PreprocessorDefinitions>
</ClCompile>
<ClCompile Include="..\..\src\Common\Win32\Mutex.cpp">
<AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">%(PreprocessorDefinitions)</PreprocessorDefinitions>
<AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">%(PreprocessorDefinitions)</PreprocessorDefinitions>
</ClCompile>
<ClCompile Include="..\..\src\Common\OpenXDK.cpp">
<AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">%(PreprocessorDefinitions)</PreprocessorDefinitions>
<AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">%(PreprocessorDefinitions)</PreprocessorDefinitions>
</ClCompile>
<ClCompile Include="..\..\src\CxbxKrnl\LibRc4.cpp" />
<ClCompile Include="..\..\src\CxbxKrnl\ResourceTracker.cpp">
<AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">%(PreprocessorDefinitions)</PreprocessorDefinitions>
<AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">%(PreprocessorDefinitions)</PreprocessorDefinitions>
</ClCompile>
<ClCompile Include="..\..\src\Common\Win32\XBController.cpp">
<AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">%(PreprocessorDefinitions)</PreprocessorDefinitions>
<AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">%(PreprocessorDefinitions)</PreprocessorDefinitions>
</ClCompile>
<ClCompile Include="..\..\src\Common\Win32\XBVideo.cpp">
<AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">%(PreprocessorDefinitions)</PreprocessorDefinitions>
<AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">%(PreprocessorDefinitions)</PreprocessorDefinitions>
</ClCompile>
<ClCompile Include="..\..\src\CxbxKrnl\EmuD3D8\Convert.cpp">
<AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">%(PreprocessorDefinitions)</PreprocessorDefinitions>
<AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">%(PreprocessorDefinitions)</PreprocessorDefinitions>
</ClCompile>
<ClCompile Include="..\..\src\CxbxKrnl\EmuD3D8\PixelShader.cpp" />
<ClCompile Include="..\..\src\CxbxKrnl\EmuD3D8\PushBuffer.cpp">
<AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">%(PreprocessorDefinitions)</PreprocessorDefinitions>
<AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">%(PreprocessorDefinitions)</PreprocessorDefinitions>
</ClCompile>
<ClCompile Include="..\..\src\CxbxKrnl\EmuD3D8\State.cpp">
<AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">%(PreprocessorDefinitions)</PreprocessorDefinitions>
<AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">%(PreprocessorDefinitions)</PreprocessorDefinitions>
</ClCompile>
<ClCompile Include="..\..\src\CxbxKrnl\EmuD3D8\VertexBuffer.cpp">
<AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">%(PreprocessorDefinitions)</PreprocessorDefinitions>
<AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">%(PreprocessorDefinitions)</PreprocessorDefinitions>
</ClCompile>
<ClCompile Include="..\..\src\CxbxKrnl\EmuD3D8\VertexShader.cpp">
<AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">%(PreprocessorDefinitions)</PreprocessorDefinitions>
<AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">%(PreprocessorDefinitions)</PreprocessorDefinitions>
</ClCompile>
</ItemGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
<ImportGroup Label="ExtensionTargets">
</ImportGroup>
</Project>

View File

@ -1,373 +0,0 @@
// This is an open source non-commercial project. Dear PVS-Studio, please check it.
// PVS-Studio Static Code Analyzer for C, C++ and C#: http://www.viva64.com
// ******************************************************************
// *
// * .,-::::: .,:: .::::::::. .,:: .:
// * ,;;;'````' `;;;, .,;; ;;;'';;' `;;;, .,;;
// * [[[ '[[,,[[' [[[__[[\. '[[,,[['
// * $$$ Y$$$P $$""""Y$$ Y$$$P
// * `88bo,__,o, oP"``"Yo, _88o,,od8P oP"``"Yo,
// * "YUMMMMMP",m" "Mm,""YUMMMP" ,m" "Mm,
// *
// * Cxbx->Core->Exe.cpp
// *
// * This file is part of the Cxbx project.
// *
// * Cxbx and Cxbe are free software; you can redistribute them
// * and/or modify them 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 recieved a copy of the GNU General Public License
// * along with this program; see the file COPYING.
// * If not, write to the Free Software Foundation, Inc.,
// * 59 Temple Place - Suite 330, Bostom, MA 02111-1307, USA.
// *
// * (c) 2002-2003 Aaron Robinson <caustik@caustik.com>
// *
// * All rights reserved
// *
// ******************************************************************
#include "Exe.h"
#include <cstdio>
#include <memory.h>
// construct via Exe file
Exe::Exe(const char *x_szFilename)
{
ConstructorInit();
printf("Exe::Exe: Opening Exe file...");
FILE *ExeFile = fopen(x_szFilename, "rb");
// verify Exe file was opened
if(ExeFile == 0)
{
SetFatalError("Could not open Exe file.");
return;
}
printf("OK\n");
// ignore dos stub (if exists)
{
printf("Exe::Exe: Reading DOS stub...");
if(fread(&m_DOSHeader.m_magic, sizeof(m_DOSHeader.m_magic), 1, ExeFile) != 1)
{
SetFatalError("Unexpected read error while reading magic number");
goto cleanup;
}
if(m_DOSHeader.m_magic == *(uint16*)"MZ")
{
printf("Found, Ignoring...");
if(fread(&m_DOSHeader.m_cblp, sizeof(m_DOSHeader)-2, 1, ExeFile) != 1)
{
SetFatalError("Unexpected read error while reading DOS stub");
goto cleanup;
}
fseek(ExeFile, m_DOSHeader.m_lfanew, SEEK_SET);
printf("OK\n");
}
else
{
printf("None (OK)\n");
}
}
// read PE header
{
printf("Exe::Exe: Reading PE header...");
if(fread(&m_Header, sizeof(m_Header), 1, ExeFile) != 1)
{
SetFatalError("Unexpected read error while reading PE header");
goto cleanup;
}
if(m_Header.m_magic != *(uint32*)"PE\0\0")
{
SetFatalError("Invalid file (could not locate PE header)");
goto cleanup;
}
printf("OK\n");
}
// read optional header
{
printf("Exe::Exe: Reading Optional Header...");
if(fread(&m_OptionalHeader, sizeof(m_OptionalHeader), 1, ExeFile) != 1)
{
SetFatalError("Unexpected read error while reading PE optional header");
goto cleanup;
}
if(m_OptionalHeader.m_magic != 0x010B)
{
SetFatalError("Invalid file (could not locate PE optional header)");
goto cleanup;
}
printf("OK\n");
}
// read section headers
{
m_SectionHeader = new SectionHeader[m_Header.m_sections];
printf("Exe::Exe: Reading Section Headers...\n");
for(uint32 v=0;v<m_Header.m_sections;v++)
{
printf("Exe::Exe: Reading Section Header 0x%.04X...", v);
if(fread(&m_SectionHeader[v], sizeof(SectionHeader), 1, ExeFile) != 1)
{
char buffer[255];
sprintf(buffer, "Could not read PE section header %d (%Xh)", v, v);
SetFatalError(buffer);
goto cleanup;
}
printf("OK\n");
}
}
// read sections
{
printf("Exe::Exe: Reading Sections...\n");
m_bzSection = new uint08*[m_Header.m_sections];
for(uint32 v=0;v<m_Header.m_sections;v++)
{
printf("Exe::Exe: Reading Section 0x%.04X...", v);
uint32 raw_size = m_SectionHeader[v].m_sizeof_raw;
uint32 raw_addr = m_SectionHeader[v].m_raw_addr;
m_bzSection[v] = new uint08[raw_size];
memset(m_bzSection[v], 0, raw_size);
if(raw_size == 0)
{
printf("OK\n");
continue;
}
// read current section from file (if raw_size > 0)
{
fseek(ExeFile, raw_addr, SEEK_SET);
if(fread(m_bzSection[v], raw_size, 1, ExeFile) != 1)
{
char buffer[255];
sprintf(buffer, "Could not read PE section %d (%Xh)", v, v);
SetFatalError(buffer);
goto cleanup;
}
}
printf("OK\n");
}
}
printf("Exe::Exe: %s was successfully opened.\n", x_szFilename);
cleanup:
if(HasError())
{
printf("FAILED!\n");
printf("Exe::Exe: ERROR -> %s\n", GetError().c_str());
}
fclose(ExeFile);
}
// constructor initialization
void Exe::ConstructorInit()
{
m_SectionHeader = 0;
m_bzSection = 0;
}
// deconstructor
Exe::~Exe()
{
if(m_bzSection != 0)
{
for(uint32 v=0;v<m_Header.m_sections;v++)
delete[] m_bzSection[v];
delete[] m_bzSection;
}
delete[] m_SectionHeader;
}
// export to Exe file
void Exe::Export(const char *x_szExeFilename)
{
if (HasError())
return;
printf("Exe::Export: Opening Exe file...");
FILE *ExeFile = fopen(x_szExeFilename, "wb");
// verify file was opened successfully
if(ExeFile == 0)
{
SetError("Could not open .exe file.");
return;
}
printf("OK\n");
// write dos stub
{
printf("Exe::Export: Writing DOS stub...");
if(fwrite(bzDOSStub, sizeof(bzDOSStub), 1, ExeFile) != 1)
{
SetError("Could not write dos stub");
goto cleanup;
}
printf("OK\n");
}
// write pe header
{
printf("Exe::Export: Writing PE Header...");
if(fwrite(&m_Header, sizeof(Header), 1, ExeFile) != 1)
{
SetError("Could not write PE header");
goto cleanup;
}
printf("OK\n");
}
// write optional header
{
printf("Exe::Export: Writing Optional Header...");
if(fwrite(&m_OptionalHeader, sizeof(OptionalHeader), 1, ExeFile) != 1)
{
SetError("Could not write PE optional header");
goto cleanup;
}
printf("OK\n");
}
// write section header
{
printf("Exe::Export: Writing Section Headers...\n");
for(uint32 v=0;v<m_Header.m_sections;v++)
{
printf("Exe::Export: Writing Section Header 0x%.04X...", v);
if(fwrite(&m_SectionHeader[v], sizeof(SectionHeader), 1, ExeFile) != 1)
{
char buffer[255];
sprintf(buffer, "Could not write PE section header %d (%Xh)", v, v);
SetError(buffer);
goto cleanup;
}
printf("OK\n");
}
}
// write sections
{
printf("Exe::Export: Writing Sections...\n");
for(uint32 v=0;v<m_Header.m_sections;v++)
{
printf("Exe::Export: Writing Section 0x%.04X...", v);
uint32 RawSize = m_SectionHeader[v].m_sizeof_raw;
uint32 RawAddr = m_SectionHeader[v].m_raw_addr;
fseek(ExeFile, RawAddr, SEEK_SET);
if(RawSize == 0)
{
printf("OK\n");
continue;
}
if(fwrite(m_bzSection[v], RawSize, 1, ExeFile) != 1)
{
char buffer[255];
sprintf(buffer, "Could not write PE section %d (%Xh)", v, v);
SetError(buffer);
goto cleanup;
}
printf("OK\n");
}
}
// Write correct SizeOfImage
{
printf("Exe::Exe: Writing Image Size...\n");
int currentSize = ftell(ExeFile);
// Seek to offset of File Size
fseek(ExeFile, 0x108, SEEK_SET);
// Write calculated size
fwrite(&currentSize, sizeof(int), 1, ExeFile);
printf("OK\n");
}
fflush(ExeFile);
cleanup:
if (HasError())
{
printf("FAILED!\n");
printf("Exe::Export: ERROR -> %s\n", GetError().c_str());
}
fclose(ExeFile);
return;
}
// return a modifiable pointer inside this structure that corresponds to a virtual address
uint08 *Exe::GetAddr(uint32 x_dwVirtualAddress)
{
for(uint32 v=0;v<m_Header.m_sections;v++)
{
uint32 virt_addr = m_SectionHeader[v].m_virtual_addr;
uint32 virt_size = m_SectionHeader[v].m_virtual_size;
if( (x_dwVirtualAddress >= virt_addr) && (x_dwVirtualAddress < (virt_addr + virt_size)) )
return &m_bzSection[v][x_dwVirtualAddress - virt_addr];
}
return 0;
}

View File

@ -1,259 +0,0 @@
// ******************************************************************
// *
// * .,-::::: .,:: .::::::::. .,:: .:
// * ,;;;'````' `;;;, .,;; ;;;'';;' `;;;, .,;;
// * [[[ '[[,,[[' [[[__[[\. '[[,,[['
// * $$$ Y$$$P $$""""Y$$ Y$$$P
// * `88bo,__,o, oP"``"Yo, _88o,,od8P oP"``"Yo,
// * "YUMMMMMP",m" "Mm,""YUMMMP" ,m" "Mm,
// *
// * Cxbx->Core->Exe.h
// *
// * This file is part of the Cxbx project.
// *
// * Cxbx and Cxbe are free software; you can redistribute them
// * and/or modify them 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 recieved a copy of the GNU General Public License
// * along with this program; see the file COPYING.
// * If not, write to the Free Software Foundation, Inc.,
// * 59 Temple Place - Suite 330, Bostom, MA 02111-1307, USA.
// *
// * (c) 2002-2003 Aaron Robinson <caustik@caustik.com>
// *
// * All rights reserved
// *
// ******************************************************************
#ifndef EXE_H
#define EXE_H
#include "Common/Error.h"
// Exe (PE) file object
class Exe : public Error
{
public:
// construct via Exe file
Exe(const char *x_szFilename);
// deconstructor
~Exe();
// export to Exe file
void Export(const char *x_szExeFilename);
// DOSHeader
#include "AlignPrefix1.h"
struct DOSHeader
{
uint16 m_magic; // DOS .EXE magic number
uint16 m_cblp; // byte on last page
uint16 m_cp; // number of pages
uint16 m_crlc; // number of relocations
uint16 m_cparhdr; // size of header (in paragraphs)
uint16 m_minalloc; // minimum extra paragraphs needed
uint16 m_maxalloc; // maximum extra paragraphs needed
uint16 m_ss; // initial SS value (relative)
uint16 m_sp; // initial SP value
uint16 m_csum; // checksum
uint16 m_ip; // initial IP value
uint16 m_cs; // initial CS value (relative)
uint16 m_lfarlc; // file address of relocation table
uint16 m_ovno; // overlay number
uint16 m_res[4]; // reserved words
uint16 m_oemid; // OEM identifier
uint16 m_oeminfo; // OEM information
uint16 m_res2[10]; // reserved words
uint32 m_lfanew; // file address of new .EXE header
}
#include "AlignPosfix1.h"
m_DOSHeader;
// Header (PE)
#include "AlignPrefix1.h"
struct Header
{
uint32 m_magic; // magic number [should be "PE\0\0"]
uint16 m_machine; // machine type
uint16 m_sections; // number of sections
uint32 m_timedate; // timedate stamp
uint32 m_symbol_table_addr; // symbol table address
uint32 m_symbols; // number of symbols
uint16 m_sizeof_optional_header; // size of optional header
uint16 m_characteristics; // characteristics
}
#include "AlignPosfix1.h"
m_Header;
// optional header (PE)
#include "AlignPrefix1.h"
struct OptionalHeader
{
uint16 m_magic; // magic number [should be 0x010B]
uint08 m_linker_version_major; // linker version [major]
uint08 m_linker_version_minor; // linker version [minor]
uint32 m_sizeof_code; // size of code
uint32 m_sizeof_initialized_data; // size of initialized data
uint32 m_sizeof_uninitialized_data; // size of uninitialized data
uint32 m_entry; // address of entry point
uint32 m_code_base; // address of code base
uint32 m_data_base; // address of data base
uint32 m_image_base; // address of image base
uint32 m_section_alignment; // section alignment
uint32 m_file_alignment; // file alignment
uint16 m_os_version_major; // operating system version [major]
uint16 m_os_version_minor; // operating system version [minor]
uint16 m_image_version_major; // image version [major]
uint16 m_image_version_minor; // image version [minor]
uint16 m_subsystem_version_major; // subsystem version [major]
uint16 m_subsystem_version_minor; // subsystem version [minor]
uint32 m_win32_version; // win32 version
uint32 m_sizeof_image; // size of image
uint32 m_sizeof_headers; // size of headers
uint32 m_checksum; // checksum
uint16 m_subsystem; // subsystem
uint16 m_dll_characteristics; // dll characteristics
uint32 m_sizeof_stack_reserve; // size of stack reserve
uint32 m_sizeof_stack_commit; // size of stack commit
uint32 m_sizeof_heap_reserve; // size of heap reserve
uint32 m_sizeof_heap_commit; // size of heap commit
uint32 m_loader_flags; // loader flags
uint32 m_data_directories; // data directories
struct image_data_directory // image data directory
{
uint32 m_virtual_addr; // virtual address
uint32 m_size; // size
}
m_image_data_directory[0x10];
}
#include "AlignPosfix1.h"
m_OptionalHeader;
// PE section header
#include "AlignPrefix1.h"
struct SectionHeader
{
char m_name[8]; // name of section
uint32 m_virtual_size; // virtual size of segment
uint32 m_virtual_addr; // virtual address of segment
uint32 m_sizeof_raw; // size of raw data
uint32 m_raw_addr; // address of raw data
uint32 m_relocations_addr; // address of relocations
uint32 m_linenumbers_addr; // address of line numbers
uint16 m_relocations; // number of relocations
uint16 m_linenumbers; // number of linenumbers
uint32 m_characteristics; // characteristics for this segment
}
#include "AlignPosfix1.h"
*m_SectionHeader;
// array of section data
uint08 **m_bzSection;
protected:
// protected default constructor
Exe() {};
// constructor initialization
void ConstructorInit();
// return a modifiable pointer inside this structure that corresponds to a virtual address
uint08 *GetAddr(uint32 x_dwVirtualAddress);
};
// PE file/segment alignments : these must always both equal 0x0020
#define PE_FILE_ALIGN 0x00000020
#define PE_SEGM_ALIGN 0x00000020
// section characteristics
#define IMAGE_SCN_CNT_CODE 0x00000020
#define IMAGE_SCN_CNT_INITIALIZED_DATA 0x00000040
#define IMAGE_SCN_CNT_UNINITIALIZED_DATA 0x00000080
#define IMAGE_SCN_MEM_DISCARDABLE 0x02000000
#define IMAGE_SCN_MEM_NOT_CACHED 0x04000000
#define IMAGE_SCN_MEM_NOT_PAGED 0x08000000
#define IMAGE_SCN_MEM_SHARED 0x10000000
#define IMAGE_SCN_MEM_EXECUTE 0x20000000
#define IMAGE_SCN_MEM_READ 0x40000000
#define IMAGE_SCN_MEM_WRITE 0x80000000
// based relocation types
#define IMAGE_REL_BASED_ABSOLUTE 0
#define IMAGE_REL_BASED_HIGH 1
#define IMAGE_REL_BASED_LOW 2
#define IMAGE_REL_BASED_HIGHLOW 3
#define IMAGE_REL_BASED_HIGHADJ 4
#define IMAGE_REL_BASED_MIPS_JMPADDR 5
#define IMAGE_REL_BASED_MIPS_JMPADDR16 9
#define IMAGE_REL_BASED_IA64_IMM64 9
#define IMAGE_REL_BASED_DIR64 10
// machine type(s)
#define IMAGE_FILE_MACHINE_I386 0x014c // Intel 386
// subsystems
#define IMAGE_SUBSYSTEM_UNKNOWN 0
#define IMAGE_SUBSYSTEM_NATIVE 1
#define IMAGE_SUBSYSTEM_WINDOWS_GUI 2
#define IMAGE_SUBSYSTEM_WINDOWS_CUI 3
#define IMAGE_SUBSYSTEM_OS2_CUI 5
#define IMAGE_SUBSYSTEM_POSIX_CUI 7
#define IMAGE_SUBSYSTEM_NATIVE_WINDOWS 8
#define IMAGE_SUBSYSTEM_WINDOWS_CE_GUI 9
// directory entries
#define IMAGE_DIRECTORY_ENTRY_EXPORT 0 // Export Directory
#define IMAGE_DIRECTORY_ENTRY_IMPORT 1 // Import Directory
#define IMAGE_DIRECTORY_ENTRY_RESOURCE 2 // Resource Directory
#define IMAGE_DIRECTORY_ENTRY_EXCEPTION 3 // Exception Directory
#define IMAGE_DIRECTORY_ENTRY_SECURITY 4 // Security Directory
#define IMAGE_DIRECTORY_ENTRY_BASERELOC 5 // Base Relocation Table
#define IMAGE_DIRECTORY_ENTRY_DEBUG 6 // Debug Directory
// IMAGE_DIRECTORY_ENTRY_COPYRIGHT 7 // (X86 usage)
#define IMAGE_DIRECTORY_ENTRY_ARCHITECTURE 7 // Architecture Specific Data
#define IMAGE_DIRECTORY_ENTRY_GLOBALPTR 8 // RVA of GP
#define IMAGE_DIRECTORY_ENTRY_TLS 9 // TLS Directory
#define IMAGE_DIRECTORY_ENTRY_LOAD_CONFIG 10 // Load Configuration Directory
#define IMAGE_DIRECTORY_ENTRY_BOUND_IMPORT 11 // Bound Import Directory in headers
#define IMAGE_DIRECTORY_ENTRY_IAT 12 // Import Address Table
#define IMAGE_DIRECTORY_ENTRY_DELAY_IMPORT 13 // Delay Load Import Descriptors
#define IMAGE_DIRECTORY_ENTRY_COM_DESCRIPTOR 14 // COM Runtime descriptor
// typical DOS stub
static uint08 bzDOSStub[] =
{
0x4D, 0x5A, 0x90, 0x00, 0x03, 0x00, 0x00, 0x00,
0x04, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0x00,
0xB8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0xB8, 0x00, 0x00, 0x00,
0x0E, 0x1F, 0xBA, 0x0E, 0x00, 0xB4, 0x09, 0xCD,
0x21, 0xB8, 0x01, 0x4C, 0xCD, 0x21, 0x54, 0x68,
0x69, 0x73, 0x20, 0x70, 0x72, 0x6F, 0x67, 0x72,
0x61, 0x6D, 0x20, 0x63, 0x61, 0x6E, 0x6E, 0x6F,
0x74, 0x20, 0x62, 0x65, 0x20, 0x72, 0x75, 0x6E,
0x20, 0x69, 0x6E, 0x20, 0x44, 0x4F, 0x53, 0x20,
0x6D, 0x6F, 0x64, 0x65, 0x2E, 0x0D, 0x0D, 0x0A,
0x24, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x85, 0xE3, 0xB8, 0xDB, 0xC1, 0x82, 0xD6, 0x88,
0xC1, 0x82, 0xD6, 0x88, 0xC1, 0x82, 0xD6, 0x88,
0xC1, 0x82, 0xD7, 0x88, 0xC3, 0x82, 0xD6, 0x88,
0x3E, 0xA2, 0xD2, 0x88, 0xC2, 0x82, 0xD6, 0x88,
0x95, 0xA1, 0xE7, 0x88, 0xC0, 0x82, 0xD6, 0x88,
0x52, 0x69, 0x63, 0x68, 0xC1, 0x82, 0xD6, 0x88,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
};
#endif

View File

@ -0,0 +1,60 @@
// ******************************************************************
// *
// * .,-::::: .,:: .::::::::. .,:: .:
// * ,;;;'````' `;;;, .,;; ;;;'';;' `;;;, .,;;
// * [[[ '[[,,[[' [[[__[[\. '[[,,[['
// * $$$ Y$$$P $$""""Y$$ Y$$$P
// * `88bo,__,o, oP"``"Yo, _88o,,od8P oP"``"Yo,
// * "YUMMMMMP",m" "Mm,""YUMMMP" ,m" "Mm,
// *
// * Cxbx->Win32->CxbxKrnl->EmuD3D8->ReservedMemory.h
// *
// * This file is part of the Cxbx project.
// *
// * Cxbx 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 recieved a copy of the GNU General Public License
// * along with this program; see the file COPYING.
// * If not, write to the Free Software Foundation, Inc.,
// * 59 Temple Place - Suite 330, Bostom, MA 02111-1307, USA.
// *
// * (c) 2016 Patrick van Logchem <pvanlogchem@gmail.com>
// *
// * All rights reserved
// *
// ******************************************************************
#ifndef RESERVEDMEMORY_H
#define RESERVEDMEMORY_H
#if defined(__cplusplus)
#pragma once
extern "C"
{
#endif
#include "CxbxKrnl/EmuShared.h" // For EMU_MAX_MEMORY_SIZE and OPCODE_NOP_90
// The following code claims 0x0001000 + 128 MB;
// First, declare the '.text' section again :
#pragma section(".text") // Note : 'read,write,execute' would cause a warning
// Then place the following variable into the '.text' section :
__declspec(allocate(".text"))
// This variable *MUST* be this large, for it to take up address space
// so that all other code and data in this module are placed outside of the
// maximum emulated memory range.
unsigned char emulated_memory_placeholder[EMU_MAX_MEMORY_SIZE]; // = { OPCODE_NOP_90 };
// TODO : Try to get the same result without enlarging the executable by 128 MB!
#if defined(__cplusplus)
}
#endif
#endif // RESERVEDMEMORY_H

View File

@ -47,8 +47,7 @@
// ******************************************************************
// * exported globals
// ******************************************************************
CXBXKRNL_API EmuShared *g_EmuShared = NULL;
CXBXKRNL_API int g_EmuSharedRefCount = 0;
EmuShared *g_EmuShared = nullptr;
// ******************************************************************
// * static/global
@ -58,12 +57,12 @@ HANDLE hMapObject = NULL;
// ******************************************************************
// * func: EmuShared::EmuSharedInit
// ******************************************************************
CXBXKRNL_API void EmuShared::Init()
void EmuShared::Init()
{
// ******************************************************************
// * Ensure initialization only occurs once
// ******************************************************************
bool init = true;
bool bRequireConstruction = true;
// ******************************************************************
// * Prevent multiple initializations
@ -89,7 +88,7 @@ CXBXKRNL_API void EmuShared::Init()
CxbxKrnlCleanup("Could not map shared memory!");
if(GetLastError() == ERROR_ALREADY_EXISTS)
init = false;
bRequireConstruction = false;
}
// ******************************************************************
@ -105,47 +104,54 @@ CXBXKRNL_API void EmuShared::Init()
0 // default: map entire file
);
if(g_EmuShared == NULL)
if(g_EmuShared == nullptr)
CxbxKrnlCleanup("Could not map view of shared memory!");
}
// ******************************************************************
// * Executed only on first initialization of shared memory
// ******************************************************************
if(init)
if(bRequireConstruction)
g_EmuShared->EmuShared::EmuShared();
g_EmuSharedRefCount++;
g_EmuShared->m_RefCount++;
}
// ******************************************************************
// * func: EmuSharedCleanup
// ******************************************************************
CXBXKRNL_API void EmuShared::Cleanup()
{
g_EmuSharedRefCount--;
if(g_EmuSharedRefCount == 0)
void EmuShared::Cleanup()
{
if(--(g_EmuShared->m_RefCount) <= 0)
g_EmuShared->EmuShared::~EmuShared();
UnmapViewOfFile(g_EmuShared);
}
g_EmuShared = nullptr;
}
// ******************************************************************
// * Constructor
// ******************************************************************
CXBXKRNL_API EmuShared::EmuShared()
EmuShared::EmuShared()
{
m_XBController.Load("Software\\Cxbx-Reloaded\\XBController");
m_XBVideo.Load("Software\\Cxbx-Reloaded\\XBVideo");
Load();
}
// ******************************************************************
// * Deconstructor
// ******************************************************************
CXBXKRNL_API EmuShared::~EmuShared()
EmuShared::~EmuShared()
{
Save();
}
void EmuShared::Load()
{
m_XBController.Load("Software\\Cxbx-Reloaded\\XBController");
m_XBVideo.Load("Software\\Cxbx-Reloaded\\XBVideo");
}
void EmuShared::Save()
{
m_XBController.Save("Software\\Cxbx-Reloaded\\XBController");
m_XBVideo.Save("Software\\Cxbx-Reloaded\\XBVideo");

View File

@ -1,360 +0,0 @@
// This is an open source non-commercial project. Dear PVS-Studio, please check it.
// PVS-Studio Static Code Analyzer for C, C++ and C#: http://www.viva64.com
// ******************************************************************
// *
// * .,-::::: .,:: .::::::::. .,:: .:
// * ,;;;'````' `;;;, .,;; ;;;'';;' `;;;, .,;;
// * [[[ '[[,,[[' [[[__[[\. '[[,,[['
// * $$$ Y$$$P $$""""Y$$ Y$$$P
// * `88bo,__,o, oP"``"Yo, _88o,,od8P oP"``"Yo,
// * "YUMMMMMP",m" "Mm,""YUMMMP" ,m" "Mm,
// *
// * Cxbx->Core->Exe.cpp
// *
// * This file is part of the Cxbx project.
// *
// * Cxbx and Cxbe are free software; you can redistribute them
// * and/or modify them 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 recieved a copy of the GNU General Public License
// * along with this program; see the file COPYING.
// * If not, write to the Free Software Foundation, Inc.,
// * 59 Temple Place - Suite 330, Bostom, MA 02111-1307, USA.
// *
// * (c) 2002-2003 Aaron Robinson <caustik@caustik.com>
// *
// * All rights reserved
// *
// ******************************************************************
#include "Exe.h"
#include <stdio.h>
#include <memory.h>
// construct via Exe file
Exe::Exe(const char *x_szFilename)
{
ConstructorInit();
printf("Exe::Exe: Opening Exe file...");
FILE *ExeFile = fopen(x_szFilename, "rb");
// verify Exe file was opened
if(ExeFile == 0)
{
SetError("Could not open Exe file.", true);
return;
}
printf("OK\n");
// ignore dos stub (if exists)
{
printf("Exe::Exe: Reading DOS stub...");
if(fread(&m_DOSHeader.m_magic, sizeof(m_DOSHeader.m_magic), 1, ExeFile) != 1)
{
SetError("Unexpected read error while reading magic number", true);
goto cleanup;
}
if(m_DOSHeader.m_magic == *(uint16*)"MZ")
{
printf("Found, Ignoring...");
if(fread(&m_DOSHeader.m_cblp, sizeof(m_DOSHeader)-2, 1, ExeFile) != 1)
{
SetError("Unexpected read error while reading DOS stub", true);
goto cleanup;
}
fseek(ExeFile, m_DOSHeader.m_lfanew, SEEK_SET);
printf("OK\n");
}
else
{
printf("None (OK)\n");
}
}
// read PE header
{
printf("Exe::Exe: Reading PE header...");
if(fread(&m_Header, sizeof(m_Header), 1, ExeFile) != 1)
{
SetError("Unexpected read error while reading PE header", true);
goto cleanup;
}
if(m_Header.m_magic != *(uint32*)"PE\0\0")
{
SetError("Invalid file (could not locate PE header)", true);
goto cleanup;
}
printf("OK\n");
}
// read optional header
{
printf("Exe::Exe: Reading Optional Header...");
if(fread(&m_OptionalHeader, sizeof(m_OptionalHeader), 1, ExeFile) != 1)
{
SetError("Unexpected read error while reading PE optional header", true);
goto cleanup;
}
if(m_OptionalHeader.m_magic != 0x010B)
{
SetError("Invalid file (could not locate PE optional header)", true);
goto cleanup;
}
printf("OK\n");
}
// read section headers
{
m_SectionHeader = new SectionHeader[m_Header.m_sections];
printf("Exe::Exe: Reading Section Headers...\n");
for(uint32 v=0;v<m_Header.m_sections;v++)
{
printf("Exe::Exe: Reading Section Header 0x%.04X...", v);
if(fread(&m_SectionHeader[v], sizeof(SectionHeader), 1, ExeFile) != 1)
{
char buffer[255];
sprintf(buffer, "Could not read PE section header %d (%Xh)", v, v);
SetError(buffer, true);
goto cleanup;
}
printf("OK\n");
}
}
// read sections
{
printf("Exe::Exe: Reading Sections...\n");
m_bzSection = new uint08*[m_Header.m_sections];
for(uint32 v=0;v<m_Header.m_sections;v++)
{
printf("Exe::Exe: Reading Section 0x%.04X...", v);
uint32 raw_size = m_SectionHeader[v].m_sizeof_raw;
uint32 raw_addr = m_SectionHeader[v].m_raw_addr;
m_bzSection[v] = new uint08[raw_size];
memset(m_bzSection[v], 0, raw_size);
if(raw_size == 0)
{
printf("OK\n");
continue;
}
// read current section from file (if raw_size > 0)
{
fseek(ExeFile, raw_addr, SEEK_SET);
if(fread(m_bzSection[v], raw_size, 1, ExeFile) != 1)
{
char buffer[255];
sprintf(buffer, "Could not read PE section %d (%Xh)", v, v);
SetError(buffer, true);
goto cleanup;
}
}
printf("OK\n");
}
}
printf("Exe::Exe: Exe (%s) was successfully opened.\n", x_szFilename);
cleanup:
if(GetError() != 0)
{
printf("FAILED!\n");
printf("Exe::Exe: ERROR -> %s\n", GetError());
}
fclose(ExeFile);
}
// constructor initialization
void Exe::ConstructorInit()
{
m_SectionHeader = 0;
m_bzSection = 0;
}
// deconstructor
Exe::~Exe()
{
if(m_bzSection != 0)
{
for(uint32 v=0;v<m_Header.m_sections;v++)
delete[] m_bzSection[v];
delete[] m_bzSection;
}
delete[] m_SectionHeader;
}
// export to Exe file
void Exe::Export(const char *x_szExeFilename)
{
if(GetError() != 0)
return;
printf("Exe::Export: Opening Exe file...");
FILE *ExeFile = fopen(x_szExeFilename, "wb");
// verify file was opened successfully
if(ExeFile == 0)
{
SetError("Could not open .exe file.", false);
return;
}
printf("OK\n");
// write dos stub
{
printf("Exe::Export: Writing DOS stub...");
if(fwrite(bzDOSStub, sizeof(bzDOSStub), 1, ExeFile) != 1)
{
SetError("Could not write dos stub", false);
goto cleanup;
}
printf("OK\n");
}
// write pe header
{
printf("Exe::Export: Writing PE Header...");
if(fwrite(&m_Header, sizeof(Header), 1, ExeFile) != 1)
{
SetError("Could not write PE header", false);
goto cleanup;
}
printf("OK\n");
}
// write optional header
{
printf("Exe::Export: Writing Optional Header...");
if(fwrite(&m_OptionalHeader, sizeof(OptionalHeader), 1, ExeFile) != 1)
{
SetError("Could not write PE optional header", false);
goto cleanup;
}
printf("OK\n");
}
// write section header
{
printf("Exe::Export: Writing Section Headers...\n");
for(uint32 v=0;v<m_Header.m_sections;v++)
{
printf("Exe::Export: Writing Section Header 0x%.04X...", v);
if(fwrite(&m_SectionHeader[v], sizeof(SectionHeader), 1, ExeFile) != 1)
{
char buffer[255];
sprintf(buffer, "Could not write PE section header %d (%Xh)", v, v);
SetError(buffer, false);
goto cleanup;
}
printf("OK\n");
}
}
// write sections
{
printf("Exe::Export: Writing Sections...\n");
for(uint32 v=0;v<m_Header.m_sections;v++)
{
printf("Exe::Export: Writing Section 0x%.04X...", v);
uint32 RawSize = m_SectionHeader[v].m_sizeof_raw;
uint32 RawAddr = m_SectionHeader[v].m_raw_addr;
fseek(ExeFile, RawAddr, SEEK_SET);
if(RawSize == 0)
{
printf("OK\n");
continue;
}
if(fwrite(m_bzSection[v], RawSize, 1, ExeFile) != 1)
{
char buffer[255];
sprintf(buffer, "Could not write PE section %d (%Xh)", v, v);
SetError(buffer, false);
goto cleanup;
}
fflush(ExeFile);
printf("OK\n");
}
}
cleanup:
if(GetError() != 0)
{
printf("FAILED!\n");
printf("Exe::Export: ERROR -> %s\n", GetError());
}
fclose(ExeFile);
return;
}
// return a modifiable pointer inside this structure that corresponds to a virtual address
uint08 *Exe::GetAddr(uint32 x_dwVirtualAddress)
{
for(uint32 v=0;v<m_Header.m_sections;v++)
{
uint32 virt_addr = m_SectionHeader[v].m_virtual_addr;
uint32 virt_size = m_SectionHeader[v].m_virtual_size;
if( (x_dwVirtualAddress >= virt_addr) && (x_dwVirtualAddress < (virt_addr + virt_size)) )
return &m_bzSection[v][x_dwVirtualAddress - virt_addr];
}
return 0;
}

View File

@ -34,13 +34,6 @@
#ifndef CXBX_H
#define CXBX_H
/*! CxbxKrnl exports, others import */
#ifndef _CXBXKRNL_INTERNAL
#define CXBXKRNL_API __declspec(dllimport)
#else
#define CXBXKRNL_API __declspec(dllexport)
#endif
/*! \name primitive typedefs */
/*! \{ */
typedef signed int sint;

View File

@ -40,11 +40,6 @@
#include "CxbxKrnl/Emu.h"
#include "CxbxKrnl/EmuShared.h"
// This variable *MUST* be this large, for it to take up address space so
// that all other code and data in this module are placed outside of the
// maximum emulated memory range.
unsigned char emulated_memory_placeholder[EMU_MAX_MEMORY_SIZE];
/*! program entry point */
int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow)
{
@ -58,21 +53,14 @@ int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine
return 1;
}
/*! verify CxbxKrnl.dll is the same version as Cxbx.exe */
if(!CxbxKrnlVerifyVersion(_CXBX_VERSION))
{
MessageBox(NULL, "CxbxKrnl.dll is the incorrect version", "Cxbx-Reloaded", MB_OK);
return 1;
}
/*! initialize shared memory */
EmuShared::Init();
if (__argc >= 2 && strcmp(__argv[1], "/load") == 0 && strlen(__argv[2]) > 0) {
CxbxKrnlMain(__argc, __argv);
return 0;
}
/*! initialize shared memory */
EmuShared::Init();
WndMain *MainWindow = new WndMain(hInstance);
/*! wait for window to be created, or failure */

View File

@ -71,8 +71,6 @@ bool Wnd::ProcessMessages()
// initialize window
if(!m_initialized)
{
HMODULE hCxbxDll = GetModuleHandle("CxbxKrnl.dll");
m_initialized = true;
WNDCLASS wnd_class;
@ -81,7 +79,7 @@ bool Wnd::ProcessMessages()
wnd_class.lpszClassName = m_classname;
wnd_class.lpfnWndProc = WndProcForward;
wnd_class.style = m_clsstyle;
wnd_class.hIcon = LoadIcon(hCxbxDll, MAKEINTRESOURCE(IDI_CXBX));
wnd_class.hIcon = 0; // TODO : LoadIcon(hmodule, ?)
wnd_class.hCursor = LoadCursor(NULL, IDC_ARROW);
wnd_class.lpszMenuName = NULL;
wnd_class.cbClsExtra = 0;

View File

@ -1526,10 +1526,10 @@ void WndMain::StartEmulation(HWND hwndParent)
{
char szBuffer[MAX_PATH];
// register xbe path with CxbxKrnl.dll
// register xbe path with emulator process
g_EmuShared->SetXbePath(m_Xbe->m_szPath);
// register LLE flags with CxbxKrnl.dll
// register LLE flags with emulator process
g_EmuShared->SetFlagsLLE(&m_FlagsLLE);
// shell exe

View File

@ -51,7 +51,7 @@ namespace xboxkrnl
#include "EmuShared.h"
#include "EmuNV2A.h" // For InitOpenGLContext
#include "HLEIntercept.h"
#include "Exe.h"
#include "ReservedMemory.h" // For emulated_memory_placeholder
#include <shlobj.h>
#include <clocale>
@ -64,16 +64,16 @@ namespace NtDll
};
/*! thread local storage */
extern CXBXKRNL_API Xbe::TLS *CxbxKrnl_TLS = NULL;
Xbe::TLS *CxbxKrnl_TLS = NULL;
/*! thread local storage data */
extern CXBXKRNL_API void *CxbxKrnl_TLSData = NULL;
void *CxbxKrnl_TLSData = NULL;
/*! xbe header structure */
extern CXBXKRNL_API Xbe::Header *CxbxKrnl_XbeHeader = NULL;
Xbe::Header *CxbxKrnl_XbeHeader = NULL;
/*! parent window handle */
CXBXKRNL_API HWND CxbxKrnl_hEmuParent = NULL;
CXBXKRNL_API DebugMode CxbxKrnl_DebugMode = DebugMode::DM_NONE;
CXBXKRNL_API char* CxbxKrnl_DebugFileName = NULL;
HWND CxbxKrnl_hEmuParent = NULL;
DebugMode CxbxKrnl_DebugMode = DebugMode::DM_NONE;
char* CxbxKrnl_DebugFileName = NULL;
/*! thread handles */
static HANDLE g_hThreads[MAXIMUM_XBOX_THREADS] = { 0 };
@ -88,14 +88,6 @@ DWORD_PTR g_CPUOthers = 0;
HANDLE g_CurrentProcessHandle = 0; // Set in CxbxKrnlInit
extern "C" CXBXKRNL_API bool CxbxKrnlVerifyVersion(const char *szVersion)
{
if(strcmp(szVersion, _CXBX_VERSION) != 0)
return false;
return true;
}
// ported from Dxbx's XbeExplorer
XbeType GetXbeType(Xbe::Header *pXbeHeader)
{
@ -181,63 +173,126 @@ const DWORD XOR_EP_KEY[3] = { XOR_EP_RETAIL, XOR_EP_DEBUG, XOR_EP_CHIHIRO };
// Kernel thunk address XOR keys per Xbe type (Retail, Debug or Chihiro) :
const DWORD XOR_KT_KEY[3] = { XOR_KT_RETAIL, XOR_KT_DEBUG, XOR_KT_CHIHIRO };
extern "C" CXBXKRNL_API void CxbxKrnlMain(int argc, char* argv[])
// Executable image header pointers (it's contents can be switched between
// Exe-compatibility and Xbe-identical mode, using RestoreExeImageHeader
// vs RestoreXbeImageHeader) :
const PIMAGE_DOS_HEADER ExeDosHeader = (PIMAGE_DOS_HEADER)XBE_IMAGE_BASE;
PIMAGE_NT_HEADERS ExeNtHeader = nullptr;
PIMAGE_OPTIONAL_HEADER ExeOptionalHeader = nullptr;
// Copy of original executable image headers, used both as backup and valid replacement structure :
PIMAGE_DOS_HEADER NewDosHeader = nullptr;
PIMAGE_NT_HEADERS NewNtHeader = nullptr;
PIMAGE_OPTIONAL_HEADER NewOptionalHeader = nullptr;
// Xbe backup values. RestoreXbeImageHeader place these into ExeHeader to restore loaded Xbe contents.
WORD Xbe_magic = 0;
LONG Xbe_lfanew = 0;
IMAGE_DATA_DIRECTORY Xbe_TLS = { };
// Remember the current XBE contents of the executable image
// header fields that RestoreExeImageHeader needs to restore.
void StoreXbeImageHeader()
{
Xbe_magic = ExeDosHeader->e_magic; // Normally 0x4258 = 'XB'; (...'EH')
Xbe_lfanew = ExeDosHeader->e_lfanew;
Xbe_TLS = ExeOptionalHeader->DataDirectory[IMAGE_DIRECTORY_ENTRY_TLS];
}
// Restore memory to the exact contents as loaded from the current XBE.
// Avoid threadswitches and calling Windows API's while this in effect
// because those can fail. Hence, RestoreExeImageHeader quickly again!
void RestoreXbeImageHeader()
{
ExeDosHeader->e_magic = Xbe_magic; // Sets XbeHeader.dwMagic
ExeDosHeader->e_lfanew = Xbe_lfanew; // Sets part of XbeHeader.pbDigitalSignature
ExeOptionalHeader->DataDirectory[IMAGE_DIRECTORY_ENTRY_TLS] = Xbe_TLS;
}
// Restore memory to the exact contents loaded from the running EXE.
// This is required to keep thread-switching and Windows API's working.
void RestoreExeImageHeader()
{
ExeDosHeader->e_magic = NewDosHeader->e_magic; // = 0x5A4D = 'MZ'; Overwrites XbeHeader.dwMagic
ExeDosHeader->e_lfanew = NewDosHeader->e_lfanew; // Overwrites part of XbeHeader.pbDigitalSignature
ExeOptionalHeader->DataDirectory[IMAGE_DIRECTORY_ENTRY_TLS] = NewOptionalHeader->DataDirectory[IMAGE_DIRECTORY_ENTRY_TLS];
}
void CxbxKrnlMain(int argc, char* argv[])
{
// Skip '/load' switch
// Get XBE Name :
std::string xbePath = argv[2];
// Get DCHandle :
HWND hWnd = 0;
if (argc > 2) {
hWnd = (HWND)StrToInt(argv[3]);
}
// Get KernelDebugMode :
DebugMode DbgMode = DebugMode::DM_NONE;
if (argc > 3) {
DbgMode = (DebugMode)StrToInt(argv[4]);
}
// Get KernelDebugFileName :
std::string DebugFileName;
if (argc > 4) {
DebugFileName = argv[5];
}
// Now we got the arguments, start by initializing the Xbox memory map :
// PrepareXBoxMemoryMap()
{
// Determine EXE's header locations & size :
ExeNtHeader = (PIMAGE_NT_HEADERS)((ULONG_PTR)ExeDosHeader + ExeDosHeader->e_lfanew); // = + 0x138
ExeOptionalHeader = (PIMAGE_OPTIONAL_HEADER)&(ExeNtHeader->OptionalHeader);
// Read host EXE Header Data
Exe::DOSHeader* ExeDosHeader = (Exe::DOSHeader*)CXBX_BASE_ADDR;
Exe::Header* ExeNtHeader = (Exe::Header*)((uint32)ExeDosHeader + ExeDosHeader->m_lfanew);
Exe::OptionalHeader* ExeOptionalHeader = (Exe::OptionalHeader*)((uint32)ExeNtHeader + sizeof(Exe::Header));
DWORD ExeHeaderSize = ExeOptionalHeader->m_sizeof_headers;
// verify emulated_memory_placeholder is located at 0x00011000
if ((UINT_PTR)(&(emulated_memory_placeholder[0])) != (XBE_IMAGE_BASE + ExeNtHeader->OptionalHeader.BaseOfCode))
{
MessageBox(NULL, "emulated_memory_placeholder is not loaded to base address 0x00011000 (which is a requirement for Xbox emulation)", "Cxbx-Reloaded", MB_OK);
return; // TODO : Halt(0);
}
// Create a safe copy of the complete EXE header:
Exe::DOSHeader* NewDosHeader = (Exe::DOSHeader*)malloc(ExeHeaderSize);
Exe::Header* NewNtHeader = (Exe::Header*)((uint32)NewDosHeader + ExeDosHeader->m_lfanew);
Exe::OptionalHeader* NewOptionalHeader = (Exe::OptionalHeader*)((uint32)NewNtHeader + sizeof(Exe::Header));
DWORD ExeHeaderSize = ExeOptionalHeader->SizeOfHeaders; // Should end up as 0x400
NewDosHeader = (PIMAGE_DOS_HEADER)VirtualAlloc(nullptr, ExeHeaderSize, MEM_RESERVE | MEM_COMMIT, PAGE_READWRITE);
memcpy(NewDosHeader, ExeDosHeader, ExeHeaderSize);
// Determine NewNtHeader and NewOptionalHeader, both required by RestoreExeImageHeader
NewNtHeader = (PIMAGE_NT_HEADERS)((ULONG_PTR)NewDosHeader + ExeDosHeader->e_lfanew);
NewOptionalHeader = (PIMAGE_OPTIONAL_HEADER)&(NewNtHeader->OptionalHeader);
// Make sure the new DOS header points to the new relative NtHeader location:
NewDosHeader->m_lfanew = (uint32)NewNtHeader - CXBX_BASE_ADDR;
NewDosHeader->e_lfanew = (ULONG_PTR)NewNtHeader - XBE_IMAGE_BASE;
// Create safe copies of all EXE sections that could get overwritten:
Exe::SectionHeader* ExeSectionHeaders = (Exe::SectionHeader*)((uint32)ExeOptionalHeader + ExeNtHeader->m_sizeof_optional_header);
Exe::SectionHeader* NewSectionHeaders = (Exe::SectionHeader*)((uint32)NewOptionalHeader + NewNtHeader->m_sizeof_optional_header);
// Note : NewOptionalHeader->ImageBase can stay at ExeOptionalHeader->ImageBase = 0x00010000
for (int i = 0; i < ExeNtHeader->m_sections; i++)
// Note : Since emulated_memory_placeholder prevents overlap between reserved xbox memory
// and Cxbx.exe sections, the new section headers don't have to be patched up.
// Mark the entire emulated memory range accessible
DWORD OldProtection;
VirtualProtect((void*)XBE_IMAGE_BASE, EMU_MAX_MEMORY_SIZE, PAGE_EXECUTE_READWRITE, &OldProtection);
// Clear out the entire memory range
memset((void*)ExeDosHeader, 0, EMU_MAX_MEMORY_SIZE);
// Restore enough of the executable image headers to keep WinAPI's working :
RestoreExeImageHeader();
}
// TODO : Setup LaunchData and Initialize kernel
// (which will launch the Xbe on itself), instead here.
// Now we can load and run the XBE :
// MapAndRunXBE(XbePath, DCHandle);
{
// Check if this section will be overwritten:
if (ExeSectionHeaders[i].m_virtual_addr + ExeSectionHeaders[i].m_virtual_size < EMU_MAX_MEMORY_SIZE) {
char* NewSection = (char*)malloc(ExeSectionHeaders[i].m_virtual_size);
memcpy(NewSection, (void*)(ExeSectionHeaders[i].m_virtual_addr + (uint32)ExeDosHeader), ExeSectionHeaders[i].m_virtual_size);
NewSectionHeaders[i].m_virtual_addr = (uint32)NewSection - (uint32)ExeDosHeader;
if (NewOptionalHeader->m_data_base == ExeSectionHeaders[i].m_virtual_addr) {
NewOptionalHeader->m_data_base = NewSectionHeaders[i].m_virtual_addr;
}
}
}
// Load Xbe (this will reside above WinMain's emulated_memory_placeholder)
g_EmuShared->SetXbePath(xbePath.c_str());
CxbxKrnl_Xbe = new Xbe(xbePath.c_str());
CxbxKrnl_Xbe = new Xbe(xbePath.c_str()); // TODO : Instead of using the Xbe class, port Dxbx _ReadXbeBlock()
// Detect XBE type :
g_XbeType = GetXbeType(&CxbxKrnl_Xbe->m_Header);
@ -248,66 +303,68 @@ extern "C" CXBXKRNL_API void CxbxKrnlMain(int argc, char* argv[])
// Determine memory size accordingly :
SIZE_T memorySize = (g_bIsChihiro ? CHIHIRO_MEMORY_SIZE : XBOX_MEMORY_SIZE);
// Mark the entire emulated memory range accessable
DWORD OldProtection;
VirtualProtect((void*)XBOX_BASE_ADDR, memorySize - XBOX_BASE_ADDR, PAGE_EXECUTE_READWRITE, &OldProtection);
// Clear out entire memory range
ZeroMemory((void*)XBOX_BASE_ADDR, memorySize - XBOX_BASE_ADDR);
// Copy over loaded Xbe Header to specified base address
memcpy((void*)CxbxKrnl_Xbe->m_Header.dwBaseAddr, &CxbxKrnl_Xbe->m_Header, sizeof(Xbe::Header));
// Copy over the certificate
memcpy((void*)(CxbxKrnl_Xbe->m_Header.dwBaseAddr + sizeof(Xbe::Header)), CxbxKrnl_Xbe->m_HeaderEx, CxbxKrnl_Xbe->m_ExSize);
// Copy over the library versions
memcpy((void*)CxbxKrnl_Xbe->m_Header.dwLibraryVersionsAddr, CxbxKrnl_Xbe->m_LibraryVersion, CxbxKrnl_Xbe->m_Header.dwLibraryVersions * sizeof(DWORD));
// TODO : Actually, instead of copying from CxbxKrnl_Xbe, we should load the entire Xbe directly into memory, like Dxbx does.
// TODO : Actually, instead of copying from CxbxKrnl_Xbe, we should load the entire Xbe directly into memory, like Dxbx does - see _ReadXbeBlock()
// Load Sections
// Load all sections to their requested Virtual Address :
for (uint32 i = 0; i < CxbxKrnl_Xbe->m_Header.dwSections; i++) {
memcpy((void*)CxbxKrnl_Xbe->m_SectionHeader[i].dwVirtualAddr, CxbxKrnl_Xbe->m_bzSection[i], CxbxKrnl_Xbe->m_SectionHeader[i].dwSizeofRaw);
}
// We need to remember a few XbeHeader fields, so we can switch between a valid ExeHeader and XbeHeader :
StoreXbeImageHeader();
// Restore enough of the executable image headers to keep WinAPI's working :
RestoreExeImageHeader();
}
// Before readout, make sure our kernel thunk table references the Windows host timer addresses :
ConnectWindowsTimersToThunkTable();
// Fixup Kernel Imports
// Decode kernel thunk table address :
uint32_t kt = CxbxKrnl_Xbe->m_Header.dwKernelImageThunkAddr;
kt ^= XOR_KT_KEY[g_XbeType];
// Process the Kernel thunk table to map Kernel function calls to their actual address :
{
uint32_t* kt_tbl = (uint32_t*)kt;
int i = 0;
while (kt_tbl[i] != 0) {
int t = kt_tbl[i] & 0x7FFFFFFF;
kt_tbl[i] = CxbxKrnl_KernelThunkTable[t];
i++;
}
// Load TLS
Xbe::TLS* XbeTls = (Xbe::TLS*)CxbxKrnl_Xbe->m_Header.dwTLSAddr;
void* XbeTlsData = nullptr;
if (XbeTls != nullptr) {
XbeTlsData = (void*)CxbxKrnl_Xbe->m_TLS->dwDataStartAddr;
}
// Launch the XBE :
{
// Load TLS
Xbe::TLS* XbeTls = (Xbe::TLS*)CxbxKrnl_Xbe->m_Header.dwTLSAddr;
void* XbeTlsData = (XbeTls != nullptr) ? (void*)CxbxKrnl_Xbe->m_TLS->dwDataStartAddr : nullptr;
// Decode Entry Point
xbaddr EntryPoint = CxbxKrnl_Xbe->m_Header.dwEntryAddr;
EntryPoint ^= XOR_EP_KEY[g_XbeType];
// Restore the area of the EXE required for WinAPI
ExeDosHeader->m_magic = NewDosHeader->m_magic;
ExeDosHeader->m_lfanew = NewDosHeader->m_lfanew;
// Launch XBE
CxbxKrnlInit(
hWnd, XbeTlsData, XbeTls, CxbxKrnl_Xbe->m_LibraryVersion, DbgMode,
DebugFileName.c_str(), (Xbe::Header*)CxbxKrnl_Xbe->m_Header.dwBaseAddr, CxbxKrnl_Xbe->m_Header.dwSizeofHeaders, (void(*)())EntryPoint
hWnd,
XbeTlsData,
XbeTls,
CxbxKrnl_Xbe->m_LibraryVersion,
DbgMode,
DebugFileName.c_str(),
(Xbe::Header*)CxbxKrnl_Xbe->m_Header.dwBaseAddr,
CxbxKrnl_Xbe->m_Header.dwSizeofHeaders,
(void(*)())EntryPoint
);
}
}
extern "C" CXBXKRNL_API void CxbxKrnlInit
void CxbxKrnlInit
(
HWND hwndParent,
void *pTLSData,
@ -326,12 +383,9 @@ extern "C" CXBXKRNL_API void CxbxKrnlInit
CxbxKrnl_hEmuParent = IsWindow(hwndParent) ? hwndParent : NULL;
CxbxKrnl_DebugMode = DbgMode;
CxbxKrnl_DebugFileName = (char*)szDebugFilename;
// for unicode conversions
setlocale(LC_ALL, "English");
g_CurrentProcessHandle = GetCurrentProcess();
CxbxInitPerformanceCounters();
#ifdef _DEBUG
@ -345,20 +399,15 @@ extern "C" CXBXKRNL_API void CxbxKrnlInit
if (AllocConsole())
{
HANDLE StdHandle = GetStdHandle(STD_OUTPUT_HANDLE);
// Maximise the console scroll buffer height :
CONSOLE_SCREEN_BUFFER_INFO coninfo;
GetConsoleScreenBufferInfo(StdHandle, &coninfo);
coninfo.dwSize.Y = SHRT_MAX - 1; // = 32767-1 = 32766 = maximum value that works
SetConsoleScreenBufferSize(StdHandle, coninfo.dwSize);
freopen("CONOUT$", "wt", stdout);
freopen("CONIN$", "rt", stdin);
SetConsoleTitle("Cxbx-Reloaded : Kernel Debug Console");
SetConsoleTextAttribute(StdHandle, FOREGROUND_GREEN | FOREGROUND_BLUE | FOREGROUND_RED);
printf("[0x%X] EmuMain: Cxbx-Reloaded Version %s\n", GetCurrentThreadId(), _CXBX_VERSION);
printf("[0x%X] EmuMain: Debug Console Allocated (DM_CONSOLE).\n", GetCurrentThreadId());
}
@ -366,30 +415,22 @@ extern "C" CXBXKRNL_API void CxbxKrnlInit
else if (DbgMode == DM_FILE)
{
FreeConsole();
freopen(szDebugFilename, "wt", stdout);
printf("[0x%X] EmuMain: Cxbx-Reloaded Version %s\n", GetCurrentThreadId(), _CXBX_VERSION);
printf("[0x%X] EmuMain: Debug Console Allocated (DM_FILE).\n", GetCurrentThreadId());
}
else
{
FreeConsole();
char buffer[16];
FreeConsole();
if (GetConsoleTitle(buffer, 16) != NULL)
freopen("nul", "w", stdout);
}
//
// debug trace
//
{
#ifdef _DEBUG_TRACE
printf("[0x%X] EmuMain: Debug Trace Enabled.\n", GetCurrentThreadId());
printf("[0x%X] EmuMain: CxbxKrnlInit\n"
"(\n"
" hwndParent : 0x%.08X\n"
@ -403,7 +444,6 @@ extern "C" CXBXKRNL_API void CxbxKrnlInit
" Entry : 0x%.08X\n"
");\n",
GetCurrentThreadId(), hwndParent, pTLSData, pTLS, pLibraryVersion, DbgMode, szDebugFilename, pXbeHeader, dwXbeHeaderSize, Entry);
#else
printf("[0x%X] EmuMain: Debug Trace Disabled.\n", GetCurrentThreadId());
#endif
@ -443,6 +483,7 @@ extern "C" CXBXKRNL_API void CxbxKrnlInit
}
// Read which components need to be LLE'ed :
{
int CxbxLLE_Flags;
g_EmuShared->GetFlagsLLE(&CxbxLLE_Flags);
@ -457,33 +498,26 @@ extern "C" CXBXKRNL_API void CxbxKrnlInit
bLLE_JIT = (CxbxLLE_Flags & LLE_JIT) > 0;
if (bLLE_JIT)
DbgPrintf("EmuMain : LLE enabled for JIT.\n");
}
// Initialize devices :
char szBuffer[MAX_PATH];
SHGetSpecialFolderPath(NULL, szBuffer, CSIDL_APPDATA, TRUE);
strcat(szBuffer, "\\Cxbx-Reloaded\\");
std::string basePath(szBuffer);
CxbxBasePath = basePath + "EmuDisk\\";
// Determine XBE Path
memset(szBuffer, 0, MAX_PATH);
g_EmuShared->GetXbePath(szBuffer);
std::string xbePath(szBuffer);
PathRemoveFileSpec(szBuffer);
std::string xbeDirectory(szBuffer);
CxbxBasePathHandle = CreateFile(CxbxBasePath.c_str(), GENERIC_READ, FILE_SHARE_READ | FILE_SHARE_WRITE | FILE_SHARE_DELETE, NULL, OPEN_EXISTING, FILE_FLAG_BACKUP_SEMANTICS, NULL);
memset(szBuffer, 0, MAX_PATH);
sprintf(szBuffer, "%08X", ((Xbe::Certificate*)pXbeHeader->dwCertificateAddr)->dwTitleId);
std::string titleId(szBuffer);
// Games may assume they are running from CdRom :
CxbxDefaultXbeDriveIndex = CxbxRegisterDeviceHostPath(DeviceCdrom0, xbeDirectory);
// Partition 0 contains configuration data, and is accessed as a native file, instead as a folder :
CxbxRegisterDeviceHostPath(DeviceHarddisk0Partition0, CxbxBasePath + "Partition0", /*IsFile=*/true);
// The first two partitions are for Data and Shell files, respectively :
@ -496,24 +530,19 @@ extern "C" CXBXKRNL_API void CxbxKrnlInit
CxbxRegisterDeviceHostPath(DeviceHarddisk0Partition6, CxbxBasePath + "Partition6");
CxbxRegisterDeviceHostPath(DeviceHarddisk0Partition7, CxbxBasePath + "Partition7");
DbgPrintf("EmuMain : Creating default symbolic links.\n");
// Create default symbolic links :
DbgPrintf("EmuMain : Creating default symbolic links.\n");
{
// TODO: DriveD should always point to the Xbe Path
// This is the only symbolic link the Xbox Kernel sets, the rest are set by the application, usually via XAPI.
// If the Xbe is located outside of the emulated HDD, mounting it as DeviceCdrom0 is correct
// If the Xbe is located inside the emulated HDD, the full path should be used, eg: "\\Harddisk0\\partition2\\xboxdash.xbe"
CxbxCreateSymbolicLink(DriveD, DeviceCdrom0);
// Arrange that the Xbe path can reside outside the partitions, and put it to g_hCurDir :
EmuNtSymbolicLinkObject* xbePathSymbolicLinkObject = FindNtSymbolicLinkObjectByDriveLetter(CxbxDefaultXbeDriveLetter);
g_hCurDir = xbePathSymbolicLinkObject->RootDirectoryHandle;
// Determine Xbox path to XBE and place it in XeImageFileName
std::string fileName(xbePath);
// Strip out the path, leaving only the XBE file name
// NOTE: we assume that the XBE is always on the root of the D: drive
// This is a safe assumption as the Xbox kernel ALWAYS mounts D: as the Xbe Path
@ -523,38 +552,29 @@ extern "C" CXBXKRNL_API void CxbxKrnlInit
if (xboxkrnl::XeImageFileName.Buffer != NULL)
free(xboxkrnl::XeImageFileName.Buffer);
// Assign the running Xbe path, so it can be accessed via the kernel thunk 'XeImageFileName' :
xboxkrnl::XeImageFileName.MaximumLength = MAX_PATH;
xboxkrnl::XeImageFileName.Buffer = (PCHAR)malloc(MAX_PATH);
sprintf(xboxkrnl::XeImageFileName.Buffer, "%c:\\%s", CxbxDefaultXbeDriveLetter, fileName.c_str());
xboxkrnl::XeImageFileName.Length = (USHORT)strlen(xboxkrnl::XeImageFileName.Buffer);
DbgPrintf("EmuMain : XeImageFileName = %s\n", xboxkrnl::XeImageFileName.Buffer);
}
//
// duplicate handle in order to retain Suspend/Resume thread rights from a remote thread
//
{
HANDLE hDupHandle = NULL;
DuplicateHandle(g_CurrentProcessHandle, GetCurrentThread(), g_CurrentProcessHandle, &hDupHandle, 0, FALSE, DUPLICATE_SAME_ACCESS);
CxbxKrnlRegisterThread(hDupHandle);
}
//
// Clear critical section list
//
//extern void InitializeSectionStructures(void);
InitializeSectionStructures();
DbgPrintf("EmuMain : Determining CPU affinity.\n");
// Make sure the Xbox1 code runs on one core (as the box itself has only 1 CPU,
// this will better aproximate the environment with regard to multi-threading) :
DbgPrintf("EmuMain : Determining CPU affinity.\n");
{
GetProcessAffinityMask(g_CurrentProcessHandle, &g_CPUXbox, &g_CPUOthers);
// For the other threads, remove one bit from the processor mask:
@ -573,12 +593,9 @@ extern "C" CXBXKRNL_API void CxbxKrnlInit
SetThreadAffinityMask(GetCurrentThread(), g_CPUXbox);
}
//
// initialize grapchics
//
DbgPrintf("EmuMain: Initializing render window.\n");
XTL::CxbxInitWindow(pXbeHeader, dwXbeHeaderSize);
if (bLLE_GPU)
{
DbgPrintf("EmuMain: Initializing OpenGL.\n");
@ -591,38 +608,27 @@ extern "C" CXBXKRNL_API void CxbxKrnlInit
}
EmuHLEIntercept(pXbeHeader);
// Apply Media Patches to bypass Anti-Piracy checks
// Required until we perfect emulation of X2 DVD Authentication
// See: https://multimedia.cx/eggs/xbox-sphinx-protocol/
ApplyMediaPatches();
//
// initialize FS segment selector
//
{
EmuInitFS();
EmuGenerateFS(pTLS, pTLSData);
}
EmuX86_Init();
DbgPrintf("EmuMain: Initial thread starting.\n");
CxbxLaunchXbe(Entry);
DbgPrintf("EmuMain: Initial thread ended.\n");
fflush(stdout);
CxbxKrnlTerminateThread();
return;
}
extern "C" CXBXKRNL_API void CxbxKrnlCleanup(const char *szErrorMessage, ...)
void CxbxKrnlCleanup(const char *szErrorMessage, ...)
{
g_bEmuException = true;
@ -673,7 +679,7 @@ extern "C" CXBXKRNL_API void CxbxKrnlCleanup(const char *szErrorMessage, ...)
return;
}
extern "C" CXBXKRNL_API void CxbxKrnlRegisterThread(HANDLE hThread)
void CxbxKrnlRegisterThread(HANDLE hThread)
{
int v=0;
@ -692,7 +698,7 @@ extern "C" CXBXKRNL_API void CxbxKrnlRegisterThread(HANDLE hThread)
}
}
extern "C" CXBXKRNL_API void CxbxKrnlSuspend()
void CxbxKrnlSuspend()
{
if(g_bEmuSuspended || g_bEmuException)
return;
@ -731,7 +737,7 @@ extern "C" CXBXKRNL_API void CxbxKrnlSuspend()
g_bEmuSuspended = true;
}
extern "C" CXBXKRNL_API void CxbxKrnlResume()
void CxbxKrnlResume()
{
if(!g_bEmuSuspended)
return;
@ -771,12 +777,12 @@ extern "C" CXBXKRNL_API void CxbxKrnlResume()
g_bEmuSuspended = false;
}
extern "C" CXBXKRNL_API void CxbxKrnlTerminateThread()
void CxbxKrnlTerminateThread()
{
TerminateThread(GetCurrentThread(), 0);
}
extern "C" CXBXKRNL_API void CxbxKrnlPanic()
void CxbxKrnlPanic()
{
DbgPrintf("EmuMain: CxbxKrnlPanic()\n");

View File

@ -74,8 +74,10 @@ typedef uint32 xbaddr;
#define XBOX_KERNEL_BASE 0x80010000
#define XBOX_NV2A_INIT_VECTOR 0xFF000008
#define XBE_IMAGE_BASE XBOX_BASE_ADDR
/*! base address of Cxbx host executable, see Cxbx project options, Linker, Advanced, Base Address */
#define CXBX_BASE_ADDR XBOX_BASE_ADDR
#define CXBX_BASE_ADDR XBE_IMAGE_BASE
#define MAX_BUS_INTERRUPT_LEVEL 27
// MAX_BUS_INTERRUPT_LEVEL = PROFILE_LEVEL = 27
@ -90,57 +92,57 @@ typedef uint32 xbaddr;
#define VECTOR2IRQL(vector) (PROFILE_LEVEL - VECTOR2IRQ(vector))
/*! validate version string match */
CXBXKRNL_API bool CxbxKrnlVerifyVersion(const char *szVersion);
bool CxbxKrnlVerifyVersion(const char *szVersion);
/*! Cxbx Kernel Entry Point */
CXBXKRNL_API void CxbxKrnlMain(int argc, char* argv[]);
void CxbxKrnlMain(int argc, char* argv[]);
/*! initialize emulation */
CXBXKRNL_API void CxbxKrnlInit(HWND hwndParent, void *pTLSData, Xbe::TLS *pTLS, Xbe::LibraryVersion *LibraryVersion, DebugMode DbgMode, const char *szDebugFilename, Xbe::Header *XbeHeader, uint32 XbeHeaderSize, void (*Entry)());
void CxbxKrnlInit(HWND hwndParent, void *pTLSData, Xbe::TLS *pTLS, Xbe::LibraryVersion *LibraryVersion, DebugMode DbgMode, const char *szDebugFilename, Xbe::Header *XbeHeader, uint32 XbeHeaderSize, void (*Entry)());
/*! cleanup emulation */
CXBXKRNL_API void CxbxKrnlCleanup(const char *szErrorMessage, ...);
void CxbxKrnlCleanup(const char *szErrorMessage, ...);
/*! register a thread handle */
CXBXKRNL_API void CxbxKrnlRegisterThread(HANDLE hThread);
void CxbxKrnlRegisterThread(HANDLE hThread);
/*! suspend emulation */
CXBXKRNL_API void CxbxKrnlSuspend();
void CxbxKrnlSuspend();
/*! resume emulation */
CXBXKRNL_API void CxbxKrnlResume();
void CxbxKrnlResume();
/*! terminate the calling thread */
CXBXKRNL_API void CxbxKrnlTerminateThread();
void CxbxKrnlTerminateThread();
/*! kernel panic (trap for unimplemented kernel functions) */
CXBXKRNL_API void CxbxKrnlPanic();
void CxbxKrnlPanic();
/*! empty function */
CXBXKRNL_API void CxbxKrnlNoFunc();
void CxbxKrnlNoFunc();
CXBXKRNL_API void CxbxInitPerformanceCounters(); // Implemented in EmuKrnlKe.cpp
void CxbxInitPerformanceCounters(); // Implemented in EmuKrnlKe.cpp
/*! kernel thunk table */
extern CXBXKRNL_API uint32 CxbxKrnl_KernelThunkTable[379];
extern uint32 CxbxKrnl_KernelThunkTable[379];
/*! thread local storage structure */
extern CXBXKRNL_API Xbe::TLS *CxbxKrnl_TLS;
extern Xbe::TLS *CxbxKrnl_TLS;
/*! thread local storage data */
extern CXBXKRNL_API void *CxbxKrnl_TLSData;
extern void *CxbxKrnl_TLSData;
/*! xbe header structure */
extern CXBXKRNL_API Xbe::Header *CxbxKrnl_XbeHeader;
extern Xbe::Header *CxbxKrnl_XbeHeader;
extern Xbe *CxbxKrnl_Xbe;
/*! parent window handle */
extern CXBXKRNL_API HWND CxbxKrnl_hEmuParent;
extern CXBXKRNL_API DebugMode CxbxKrnl_DebugMode;
extern CXBXKRNL_API char* CxbxKrnl_DebugFileName;
extern HWND CxbxKrnl_hEmuParent;
extern DebugMode CxbxKrnl_DebugMode;
extern char* CxbxKrnl_DebugFileName;
extern void ConnectWindowsTimersToThunkTable();
void ConnectWindowsTimersToThunkTable();
#ifdef __cplusplus
}

View File

@ -114,7 +114,7 @@ BOOL WINAPI DllMain(HINSTANCE hinstDLL, DWORD fdwReason, LPVOID lpvReserved)
// print out a warning message to the kernel debug log file
#ifdef _DEBUG_WARNINGS
extern "C" CXBXKRNL_API void NTAPI EmuWarning(const char *szWarningMessage, ...)
void NTAPI EmuWarning(const char *szWarningMessage, ...)
{
if(szWarningMessage == NULL)
return;

View File

@ -42,7 +42,7 @@
// print out a warning message to the kernel debug log file
#ifdef _DEBUG_WARNINGS
extern "C" CXBXKRNL_API void NTAPI EmuWarning(const char *szWarningMessage, ...);
void NTAPI EmuWarning(const char *szWarningMessage, ...);
#else
inline void NTAPI EmuWarning(const char *szWarningMessage, ...) { }
#endif

View File

@ -51,7 +51,6 @@ namespace xboxkrnl
#include "ResourceTracker.h"
#include "EmuAlloc.h"
#include "EmuXTL.h"
#include "ResCxbxDll.h"
#include <process.h>
#include <clocale>
@ -325,8 +324,6 @@ static DWORD WINAPI EmuRenderWindow(LPVOID lpVoid)
// register window class
{
HMODULE hCxbxDll = GetModuleHandle("CxbxKrnl.dll");
LOGBRUSH logBrush = {BS_SOLID, RGB(0,0,0)};
g_hBgBrush = CreateBrushIndirect(&logBrush);
@ -337,7 +334,7 @@ static DWORD WINAPI EmuRenderWindow(LPVOID lpVoid)
CS_CLASSDC,
EmuMsgProc,
0, 0, GetModuleHandle(NULL),
LoadIcon(hCxbxDll, MAKEINTRESOURCE(IDI_CXBX)),
0, // TODO : LoadIcon(hmodule, ?)
LoadCursor(NULL, IDC_ARROW),
(HBRUSH)(g_hBgBrush), NULL,
"CxbxRender",

View File

@ -46,7 +46,6 @@ namespace xboxkrnl
#include "EmuFS.h"
#include "EmuAlloc.h" // For CxbxCalloc()
#include "CxbxKrnl.h"
#include "Exe.h"
#undef FIELD_OFFSET // prevent macro redefinition warnings
#include <windows.h>

View File

@ -277,7 +277,7 @@ double NativeToXbox_FactorForPerformanceFrequency;
void ConnectKeInterruptTimeToThunkTable(); // forward
CXBXKRNL_API void CxbxInitPerformanceCounters()
void CxbxInitPerformanceCounters()
{
BootTickCount = GetTickCount();

View File

@ -52,47 +52,52 @@ enum {
class EmuShared : public Mutex
{
public:
// ******************************************************************
// * Constructor / Deconstructor
// ******************************************************************
CXBXKRNL_API EmuShared();
CXBXKRNL_API ~EmuShared();
int m_RefCount;
// ******************************************************************
// * Each process needs to call this to initialize shared memory
// ******************************************************************
CXBXKRNL_API static void Init();
static void Init();
void EmuShared::Load();
void EmuShared::Save();
// ******************************************************************
// * Each process needs to call this to cleanup shared memory
// ******************************************************************
CXBXKRNL_API static void Cleanup();
static void Cleanup();
// ******************************************************************
// * Xbox Video Accessors
// ******************************************************************
CXBXKRNL_API void GetXBVideo( XBVideo *video) { Lock(); memcpy(video, &m_XBVideo, sizeof(XBVideo)); Unlock(); }
CXBXKRNL_API void SetXBVideo(const XBVideo *video) { Lock(); memcpy(&m_XBVideo, video, sizeof(XBVideo)); Unlock(); }
void GetXBVideo( XBVideo *video) { Lock(); memcpy(video, &m_XBVideo, sizeof(XBVideo)); Unlock(); }
void SetXBVideo(const XBVideo *video) { Lock(); memcpy(&m_XBVideo, video, sizeof(XBVideo)); Unlock(); }
// ******************************************************************
// * Xbox Controller Accessors
// ******************************************************************
CXBXKRNL_API void GetXBController( XBController *ctrl) { Lock(); memcpy(ctrl, &m_XBController, sizeof(XBController)); Unlock();}
CXBXKRNL_API void SetXBController(const XBController *ctrl) { Lock(); memcpy(&m_XBController, ctrl, sizeof(XBController)); Unlock();}
void GetXBController( XBController *ctrl) { Lock(); memcpy(ctrl, &m_XBController, sizeof(XBController)); Unlock();}
void SetXBController(const XBController *ctrl) { Lock(); memcpy(&m_XBController, ctrl, sizeof(XBController)); Unlock();}
// ******************************************************************
// * Xbe Path Accessors
// ******************************************************************
CXBXKRNL_API void GetXbePath( char *path) { Lock(); strcpy(path, m_XbePath); Unlock(); }
CXBXKRNL_API void SetXbePath(const char *path) { Lock(); strcpy(m_XbePath, path); Unlock(); }
void GetXbePath( char *path) { Lock(); strcpy(path, m_XbePath); Unlock(); }
void SetXbePath(const char *path) { Lock(); strcpy(m_XbePath, path); Unlock(); }
// ******************************************************************
// * LLE Flags Accessors
// ******************************************************************
CXBXKRNL_API void GetFlagsLLE( int *flags) { Lock(); *flags = m_FlagsLLE; Unlock(); }
CXBXKRNL_API void SetFlagsLLE(const int *flags) { Lock(); m_FlagsLLE = *flags; Unlock(); }
void GetFlagsLLE( int *flags) { Lock(); *flags = m_FlagsLLE; Unlock(); }
void SetFlagsLLE(const int *flags) { Lock(); m_FlagsLLE = *flags; Unlock(); }
private:
// ******************************************************************
// * Constructor / Deconstructor
// ******************************************************************
EmuShared();
~EmuShared();
// ******************************************************************
// * Shared configuration
// ******************************************************************
@ -105,7 +110,6 @@ class EmuShared : public Mutex
// ******************************************************************
// * Exported Global Shared Memory Pointer
// ******************************************************************
extern CXBXKRNL_API EmuShared *g_EmuShared;
extern CXBXKRNL_API int g_EmuSharedRefCount;
extern EmuShared *g_EmuShared;
#endif

View File

@ -51,7 +51,6 @@ namespace xboxkrnl
#include "EmuFS.h"
#include "EmuShared.h"
#include "HLEIntercept.h"
#include "Exe.h"
// XInputSetState status waiters
extern XInputSetStateStatus g_pXInputSetStateStatus[XINPUT_SETSTATE_SLOTS] = {0};

View File

@ -42,7 +42,7 @@ namespace xboxkrnl
#include <xboxkrnl/xboxkrnl.h>
};
#include "Cxbx.h" // For CXBXKRNL_API, CxbxKrnl_KernelThunkTable
#include "Cxbx.h" // For CxbxKrnl_KernelThunkTable
#include "CxbxKrnl.h" // For UINT
//
@ -65,7 +65,7 @@ namespace xboxkrnl
// kernel thunk table
// Note : Names that collide with other symbols, use the KRNL() macro.
extern "C" CXBXKRNL_API uint32 CxbxKrnl_KernelThunkTable[379] =
uint32 CxbxKrnl_KernelThunkTable[379] =
{
(uint32)PANIC(0x0000), // 0x0000 (0) NULL
(uint32)FUNC(&xboxkrnl::AvGetSavedDataAddress), // 0x0001 (1)

View File

@ -1,16 +0,0 @@
//{{NO_DEPENDENCIES}}
// Microsoft Developer Studio generated include file.
// Used by CxbxDll.rc
//
#define IDI_CXBX 101
// Next default values for new objects
//
#ifdef APSTUDIO_INVOKED
#ifndef APSTUDIO_READONLY_SYMBOLS
#define _APS_NEXT_RESOURCE_VALUE 103
#define _APS_NEXT_COMMAND_VALUE 40010
#define _APS_NEXT_CONTROL_VALUE 1000
#define _APS_NEXT_SYMED_VALUE 101
#endif
#endif