Merge branch 'master' into derive_xrefs
This commit is contained in:
commit
5d6bc06b14
|
@ -19,6 +19,9 @@
|
|||
#Documentation output
|
||||
doc/doxygen/html
|
||||
|
||||
#Export
|
||||
export
|
||||
|
||||
#Visual Studio files
|
||||
*.[Oo]bj
|
||||
*.user
|
||||
|
|
|
@ -10,9 +10,12 @@ The project began life as a fork of Cxbx with added 64-bit support. Work is curr
|
|||
Cxbx-Reloaded is still pretty unstable, don't expect it to run much at this point.
|
||||
|
||||
## System Requirements
|
||||
* Windows 10 64-bit (May work on other versions, but this has not been tested. 32-Bit Windows is NOT supported).
|
||||
* 64-bit Windows (7, 8 and 10 are known to work, 32-bit installations are not supported)
|
||||
* A graphics card that supports Direct3D 8.
|
||||
|
||||
## Automated Builds
|
||||
Cxbx-Reloaded is not yet ready for general release, however the latest build can always be downloaded from our [AppVeyor](https://ci.appveyor.com/project/SoullessSentinel/cxbx-reloaded/branch/master) by navigating to Configuration: Release => Artifacts => export\Release.zip
|
||||
|
||||
## Bug Reports
|
||||
Cxbx-Reloaded is in the early stages right now and most games will either crash or do nothing, please do not submit issues for these games.
|
||||
|
||||
|
|
|
@ -77,13 +77,13 @@
|
|||
<Optimization>Disabled</Optimization>
|
||||
<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>
|
||||
<RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
|
||||
<BrowseInformation>true</BrowseInformation>
|
||||
<WarningLevel>Level3</WarningLevel>
|
||||
<SuppressStartupBanner>true</SuppressStartupBanner>
|
||||
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
|
||||
<MultiProcessorCompilation>true</MultiProcessorCompilation>
|
||||
</ClCompile>
|
||||
<ResourceCompile>
|
||||
<PreprocessorDefinitions>_DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
|
@ -145,6 +145,7 @@ $(SOLUTIONDIR)Export.bat</Command>
|
|||
<WarningLevel>Level3</WarningLevel>
|
||||
<SuppressStartupBanner>true</SuppressStartupBanner>
|
||||
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
|
||||
<MultiProcessorCompilation>true</MultiProcessorCompilation>
|
||||
</ClCompile>
|
||||
<ResourceCompile>
|
||||
<PreprocessorDefinitions>NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
|
@ -225,6 +226,7 @@ $(SOLUTIONDIR)Export.bat</Command>
|
|||
<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.5028.h" />
|
||||
<ClInclude Include="..\..\src\CxbxKrnl\HLEDataBase\D3D8.1.0.5233.h" />
|
||||
<ClInclude Include="..\..\src\CxbxKrnl\HLEDataBase\D3D8.1.0.5344.h" />
|
||||
<ClInclude Include="..\..\src\CxbxKrnl\HLEDataBase\D3D8.1.0.5558.h" />
|
||||
|
@ -236,6 +238,7 @@ $(SOLUTIONDIR)Export.bat</Command>
|
|||
<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.5028.h" />
|
||||
<ClInclude Include="..\..\src\CxbxKrnl\HLEDataBase\DSound.1.0.5233.h" />
|
||||
<ClInclude Include="..\..\src\CxbxKrnl\HLEDataBase\DSound.1.0.5344.h" />
|
||||
<ClInclude Include="..\..\src\CxbxKrnl\HLEDataBase\DSound.1.0.5558.h" />
|
||||
|
@ -249,6 +252,7 @@ $(SOLUTIONDIR)Export.bat</Command>
|
|||
<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.5028.h" />
|
||||
<ClInclude Include="..\..\src\CxbxKrnl\HLEDataBase\Xapi.1.0.5233.h" />
|
||||
<ClInclude Include="..\..\src\CxbxKrnl\HLEDataBase\Xapi.1.0.5344.h" />
|
||||
<ClInclude Include="..\..\src\CxbxKrnl\HLEDataBase\Xapi.1.0.5558.h" />
|
||||
|
@ -259,6 +263,7 @@ $(SOLUTIONDIR)Export.bat</Command>
|
|||
<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.5028.h" />
|
||||
<ClInclude Include="..\..\src\CxbxKrnl\HLEDataBase\XG.1.0.5233.h" />
|
||||
<ClInclude Include="..\..\src\CxbxKrnl\HLEDataBase\XG.1.0.5344.h" />
|
||||
<ClInclude Include="..\..\src\CxbxKrnl\HLEDataBase\XG.1.0.5558.h" />
|
||||
|
@ -268,6 +273,7 @@ $(SOLUTIONDIR)Export.bat</Command>
|
|||
<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.5028.h" />
|
||||
<ClInclude Include="..\..\src\CxbxKrnl\HLEDataBase\XOnline.1.0.5233.h" />
|
||||
<ClInclude Include="..\..\src\CxbxKrnl\HLEDataBase\XOnline.1.0.5344.h" />
|
||||
<ClInclude Include="..\..\src\CxbxKrnl\HLEDataBase\XOnline.1.0.5558.h" />
|
||||
|
@ -275,10 +281,12 @@ $(SOLUTIONDIR)Export.bat</Command>
|
|||
<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\MemoryManager.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\CxbxVersion.h" />
|
||||
<ClInclude Include="..\..\src\Cxbx\DlgControllerConfig.h" />
|
||||
<ClInclude Include="..\..\src\Cxbx\DlgVideoConfig.h" />
|
||||
<ClInclude Include="..\..\src\CxbxKrnl\Emu.h" />
|
||||
|
@ -304,6 +312,7 @@ $(SOLUTIONDIR)Export.bat</Command>
|
|||
<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.5028.inl" />
|
||||
<None Include="..\..\src\CxbxKrnl\HLEDataBase\D3D8.1.0.5233.inl" />
|
||||
<None Include="..\..\src\CxbxKrnl\HLEDataBase\D3D8.1.0.5344.inl" />
|
||||
<None Include="..\..\src\CxbxKrnl\HLEDataBase\D3D8.1.0.5558.inl" />
|
||||
|
@ -315,6 +324,7 @@ $(SOLUTIONDIR)Export.bat</Command>
|
|||
<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.5028.inl" />
|
||||
<None Include="..\..\src\CxbxKrnl\HLEDataBase\DSound.1.0.5233.inl" />
|
||||
<None Include="..\..\src\CxbxKrnl\HLEDataBase\DSound.1.0.5344.inl" />
|
||||
<None Include="..\..\src\CxbxKrnl\HLEDataBase\DSound.1.0.5558.inl" />
|
||||
|
@ -327,6 +337,7 @@ $(SOLUTIONDIR)Export.bat</Command>
|
|||
<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.5028.inl" />
|
||||
<None Include="..\..\src\CxbxKrnl\HLEDataBase\Xapi.1.0.5233.inl" />
|
||||
<None Include="..\..\src\CxbxKrnl\HLEDataBase\Xapi.1.0.5344.inl" />
|
||||
<None Include="..\..\src\CxbxKrnl\HLEDataBase\Xapi.1.0.5558.inl" />
|
||||
|
@ -336,6 +347,7 @@ $(SOLUTIONDIR)Export.bat</Command>
|
|||
<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.5028.inl" />
|
||||
<None Include="..\..\src\CxbxKrnl\HLEDataBase\XG.1.0.5233.inl" />
|
||||
<None Include="..\..\src\CxbxKrnl\HLEDataBase\XG.1.0.5344.inl" />
|
||||
<None Include="..\..\src\CxbxKrnl\HLEDataBase\XG.1.0.5558.inl" />
|
||||
|
@ -344,6 +356,7 @@ $(SOLUTIONDIR)Export.bat</Command>
|
|||
<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.5028.inl" />
|
||||
<None Include="..\..\src\CxbxKrnl\HLEDataBase\XOnline.1.0.5233.inl" />
|
||||
<None Include="..\..\src\CxbxKrnl\HLEDataBase\XOnline.1.0.5344.inl" />
|
||||
<None Include="..\..\src\CxbxKrnl\HLEDataBase\XOnline.1.0.5558.inl" />
|
||||
|
@ -525,6 +538,7 @@ $(SOLUTIONDIR)Export.bat</Command>
|
|||
<PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\src\CxbxKrnl\LibRc4.cpp" />
|
||||
<ClCompile Include="..\..\src\CxbxKrnl\MemoryManager.cpp" />
|
||||
<ClCompile Include="..\..\src\CxbxKrnl\ResourceTracker.cpp">
|
||||
<AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
||||
<AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
||||
|
|
|
@ -196,6 +196,9 @@
|
|||
<ClCompile Include="..\..\src\Common\EmuEEPROM.cpp">
|
||||
<Filter>Shared</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\src\CxbxKrnl\MemoryManager.cpp">
|
||||
<Filter>Emulator</Filter>
|
||||
</ClCompile>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<ClInclude Include="..\..\src\Cxbx\DlgControllerConfig.h">
|
||||
|
@ -234,18 +237,12 @@
|
|||
<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>
|
||||
|
@ -264,9 +261,15 @@
|
|||
<ClInclude Include="..\..\src\CxbxKrnl\HLEDataBase\D3D8.1.0.4627.h">
|
||||
<Filter>HLEDatabase</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\src\CxbxKrnl\HLEDataBase\D3D8.1.0.5028.h">
|
||||
<Filter>HLEDatabase</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\src\CxbxKrnl\HLEDataBase\D3D8.1.0.5233.h">
|
||||
<Filter>HLEDatabase</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\src\CxbxKrnl\HLEDataBase\D3D8.1.0.5344.h">
|
||||
<Filter>HLEDatabase</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\src\CxbxKrnl\HLEDataBase\D3D8.1.0.5558.h">
|
||||
<Filter>HLEDatabase</Filter>
|
||||
</ClInclude>
|
||||
|
@ -294,9 +297,18 @@
|
|||
<ClInclude Include="..\..\src\CxbxKrnl\HLEDataBase\DSound.1.0.4627.h">
|
||||
<Filter>HLEDatabase</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\src\CxbxKrnl\HLEDataBase\DSound.1.0.5028.h">
|
||||
<Filter>HLEDatabase</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\src\CxbxKrnl\HLEDataBase\DSound.1.0.5233.h">
|
||||
<Filter>HLEDatabase</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\src\CxbxKrnl\HLEDataBase\DSound.1.0.5344.h">
|
||||
<Filter>HLEDatabase</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\src\CxbxKrnl\HLEDataBase\DSound.1.0.5558.h">
|
||||
<Filter>HLEDatabase</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\src\CxbxKrnl\HLEDataBase\DSound.1.0.5788.h">
|
||||
<Filter>HLEDatabase</Filter>
|
||||
</ClInclude>
|
||||
|
@ -324,9 +336,15 @@
|
|||
<ClInclude Include="..\..\src\CxbxKrnl\HLEDataBase\Xapi.1.0.4627.h">
|
||||
<Filter>HLEDatabase</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\src\CxbxKrnl\HLEDataBase\Xapi.1.0.5028.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.5344.h">
|
||||
<Filter>HLEDatabase</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\src\CxbxKrnl\HLEDataBase\Xapi.1.0.5558.h">
|
||||
<Filter>HLEDatabase</Filter>
|
||||
</ClInclude>
|
||||
|
@ -351,9 +369,15 @@
|
|||
<ClInclude Include="..\..\src\CxbxKrnl\HLEDataBase\XG.1.0.4627.h">
|
||||
<Filter>HLEDatabase</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\src\CxbxKrnl\HLEDataBase\XG.1.0.5028.h">
|
||||
<Filter>HLEDatabase</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\src\CxbxKrnl\HLEDataBase\XG.1.0.5233.h">
|
||||
<Filter>HLEDatabase</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\src\CxbxKrnl\HLEDataBase\XG.1.0.5344.h">
|
||||
<Filter>HLEDatabase</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\src\CxbxKrnl\HLEDataBase\XG.1.0.5558.h">
|
||||
<Filter>HLEDatabase</Filter>
|
||||
</ClInclude>
|
||||
|
@ -372,9 +396,18 @@
|
|||
<ClInclude Include="..\..\src\CxbxKrnl\HLEDataBase\XOnline.1.0.4627.h">
|
||||
<Filter>HLEDatabase</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\src\CxbxKrnl\HLEDataBase\XOnline.1.0.5028.h">
|
||||
<Filter>HLEDatabase</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\src\CxbxKrnl\HLEDataBase\XOnline.1.0.5233.h">
|
||||
<Filter>HLEDatabase</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\src\CxbxKrnl\HLEDataBase\XOnline.1.0.5344.h">
|
||||
<Filter>HLEDatabase</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\src\CxbxKrnl\HLEDataBase\XOnline.1.0.5558.h">
|
||||
<Filter>HLEDatabase</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\src\CxbxKrnl\HLEDataBase\XOnline.1.0.5788.h">
|
||||
<Filter>HLEDatabase</Filter>
|
||||
</ClInclude>
|
||||
|
@ -507,24 +540,15 @@
|
|||
<ClInclude Include="..\..\src\Common\XDVDFS Tools\xdvdfs.h">
|
||||
<Filter>Shared</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\src\CxbxKrnl\HLEDataBase\D3D8.1.0.5344.h">
|
||||
<Filter>HLEDatabase</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\src\CxbxKrnl\HLEDataBase\DSound.1.0.5344.h">
|
||||
<Filter>HLEDatabase</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\src\CxbxKrnl\HLEDataBase\Xapi.1.0.5344.h">
|
||||
<Filter>HLEDatabase</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\src\CxbxKrnl\HLEDataBase\XG.1.0.5344.h">
|
||||
<Filter>HLEDatabase</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\src\CxbxKrnl\HLEDataBase\XOnline.1.0.5344.h">
|
||||
<Filter>HLEDatabase</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\src\Common\EmuEEPROM.h">
|
||||
<Filter>Shared</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\src\CxbxVersion.h">
|
||||
<Filter>Shared</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\src\CxbxKrnl\MemoryManager.h">
|
||||
<Filter>Emulator</Filter>
|
||||
</ClInclude>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<None Include="..\..\resource\About.jpg">
|
||||
|
@ -551,9 +575,15 @@
|
|||
<None Include="..\..\src\CxbxKrnl\HLEDataBase\D3D8.1.0.4627.inl">
|
||||
<Filter>HLEDatabase</Filter>
|
||||
</None>
|
||||
<None Include="..\..\src\CxbxKrnl\HLEDataBase\D3D8.1.0.5028.inl">
|
||||
<Filter>HLEDatabase</Filter>
|
||||
</None>
|
||||
<None Include="..\..\src\CxbxKrnl\HLEDataBase\D3D8.1.0.5233.inl">
|
||||
<Filter>HLEDatabase</Filter>
|
||||
</None>
|
||||
<None Include="..\..\src\CxbxKrnl\HLEDataBase\D3D8.1.0.5344.inl">
|
||||
<Filter>HLEDatabase</Filter>
|
||||
</None>
|
||||
<None Include="..\..\src\CxbxKrnl\HLEDataBase\D3D8.1.0.5558.inl">
|
||||
<Filter>HLEDatabase</Filter>
|
||||
</None>
|
||||
|
@ -581,9 +611,15 @@
|
|||
<None Include="..\..\src\CxbxKrnl\HLEDataBase\DSound.1.0.4627.inl">
|
||||
<Filter>HLEDatabase</Filter>
|
||||
</None>
|
||||
<None Include="..\..\src\CxbxKrnl\HLEDataBase\DSound.1.0.5028.inl">
|
||||
<Filter>HLEDatabase</Filter>
|
||||
</None>
|
||||
<None Include="..\..\src\CxbxKrnl\HLEDataBase\DSound.1.0.5233.inl">
|
||||
<Filter>HLEDatabase</Filter>
|
||||
</None>
|
||||
<None Include="..\..\src\CxbxKrnl\HLEDataBase\DSound.1.0.5344.inl">
|
||||
<Filter>HLEDatabase</Filter>
|
||||
</None>
|
||||
<None Include="..\..\src\CxbxKrnl\HLEDataBase\DSound.1.0.5558.inl">
|
||||
<Filter>HLEDatabase</Filter>
|
||||
</None>
|
||||
|
@ -614,9 +650,15 @@
|
|||
<None Include="..\..\src\CxbxKrnl\HLEDataBase\Xapi.1.0.4721.inl">
|
||||
<Filter>HLEDatabase</Filter>
|
||||
</None>
|
||||
<None Include="..\..\src\CxbxKrnl\HLEDataBase\Xapi.1.0.5028.inl">
|
||||
<Filter>HLEDatabase</Filter>
|
||||
</None>
|
||||
<None Include="..\..\src\CxbxKrnl\HLEDataBase\Xapi.1.0.5233.inl">
|
||||
<Filter>HLEDatabase</Filter>
|
||||
</None>
|
||||
<None Include="..\..\src\CxbxKrnl\HLEDataBase\Xapi.1.0.5344.inl">
|
||||
<Filter>HLEDatabase</Filter>
|
||||
</None>
|
||||
<None Include="..\..\src\CxbxKrnl\HLEDataBase\Xapi.1.0.5558.inl">
|
||||
<Filter>HLEDatabase</Filter>
|
||||
</None>
|
||||
|
@ -638,9 +680,15 @@
|
|||
<None Include="..\..\src\CxbxKrnl\HLEDataBase\XG.1.0.4627.inl">
|
||||
<Filter>HLEDatabase</Filter>
|
||||
</None>
|
||||
<None Include="..\..\src\CxbxKrnl\HLEDataBase\XG.1.0.5028.inl">
|
||||
<Filter>HLEDatabase</Filter>
|
||||
</None>
|
||||
<None Include="..\..\src\CxbxKrnl\HLEDataBase\XG.1.0.5233.inl">
|
||||
<Filter>HLEDatabase</Filter>
|
||||
</None>
|
||||
<None Include="..\..\src\CxbxKrnl\HLEDataBase\XG.1.0.5344.inl">
|
||||
<Filter>HLEDatabase</Filter>
|
||||
</None>
|
||||
<None Include="..\..\src\CxbxKrnl\HLEDataBase\XG.1.0.5558.inl">
|
||||
<Filter>HLEDatabase</Filter>
|
||||
</None>
|
||||
|
@ -659,9 +707,15 @@
|
|||
<None Include="..\..\src\CxbxKrnl\HLEDataBase\XOnline.1.0.4627.inl">
|
||||
<Filter>HLEDatabase</Filter>
|
||||
</None>
|
||||
<None Include="..\..\src\CxbxKrnl\HLEDataBase\XOnline.1.0.5028.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.5344.inl">
|
||||
<Filter>HLEDatabase</Filter>
|
||||
</None>
|
||||
<None Include="..\..\src\CxbxKrnl\HLEDataBase\XOnline.1.0.5558.inl">
|
||||
<Filter>HLEDatabase</Filter>
|
||||
</None>
|
||||
|
@ -674,21 +728,6 @@
|
|||
<None Include="..\..\resource\Logo.bmp">
|
||||
<Filter>Shared</Filter>
|
||||
</None>
|
||||
<None Include="..\..\src\CxbxKrnl\HLEDataBase\D3D8.1.0.5344.inl">
|
||||
<Filter>HLEDatabase</Filter>
|
||||
</None>
|
||||
<None Include="..\..\src\CxbxKrnl\HLEDataBase\DSound.1.0.5344.inl">
|
||||
<Filter>HLEDatabase</Filter>
|
||||
</None>
|
||||
<None Include="..\..\src\CxbxKrnl\HLEDataBase\Xapi.1.0.5344.inl">
|
||||
<Filter>HLEDatabase</Filter>
|
||||
</None>
|
||||
<None Include="..\..\src\CxbxKrnl\HLEDataBase\XG.1.0.5344.inl">
|
||||
<Filter>HLEDatabase</Filter>
|
||||
</None>
|
||||
<None Include="..\..\src\CxbxKrnl\HLEDataBase\XOnline.1.0.5344.inl">
|
||||
<Filter>HLEDatabase</Filter>
|
||||
</None>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<Filter Include="GUI">
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
cd Release
|
||||
..\..\..\import\7za\7za.exe a ..\..\..\export\Release.zip Cxbx.exe ..\..\..\COPYING ..\..\..\README.md
|
||||
..\..\..\import\7za\7za.exe a ..\..\..\export\Release.zip Cxbx.exe glew32.dll ..\..\..\COPYING ..\..\..\README.md
|
||||
cd ..\Debug
|
||||
..\..\..\import\7za\7za.exe a ..\..\..\export\Debug.zip Cxbx.exe ..\..\..\COPYING ..\..\..\README.md
|
||||
..\..\..\import\7za\7za.exe a ..\..\..\export\Debug.zip Cxbx.exe glew32.dll ..\..\..\COPYING ..\..\..\README.md
|
||||
cd ..\
|
|
@ -54,6 +54,7 @@
|
|||
|
||||
// Options to AvSendTVEncoderOption() :
|
||||
#define AV_OPTION_MACROVISION_MODE 1
|
||||
|
||||
#define AV_OPTION_ENABLE_CC 2
|
||||
#define AV_OPTION_DISABLE_CC 3
|
||||
#define AV_OPTION_SEND_CC_DATA 4
|
||||
|
@ -416,6 +417,9 @@ XBSYSAPI EXPORTNUM(351) VOID NTAPI XcUpdateCrypto
|
|||
OUT PCRYPTO_VECTOR pROMVector OPTIONAL
|
||||
);
|
||||
|
||||
// Not exported by the kernel, but required to generate other keys
|
||||
XBSYSAPI XBOX_KEY_DATA XboxCertificateKey;
|
||||
|
||||
// ******************************************************************
|
||||
// * 0x0161 - XboxLANKey
|
||||
// ******************************************************************
|
||||
|
@ -424,7 +428,7 @@ XBSYSAPI EXPORTNUM(353) XBOX_KEY_DATA XboxLANKey;
|
|||
// ******************************************************************
|
||||
// * 0x0162 - XboxAlternateSignatureKeys
|
||||
// ******************************************************************
|
||||
XBSYSAPI EXPORTNUM(354) XBOX_KEY_DATA XboxAlternateSignatureKeys;
|
||||
XBSYSAPI EXPORTNUM(354) XBOX_KEY_DATA XboxAlternateSignatureKeys[ALTERNATE_SIGNATURE_COUNT];
|
||||
|
||||
// ******************************************************************
|
||||
// * 0x0163 - XePublicKeyData
|
||||
|
|
|
@ -224,18 +224,6 @@ typedef long NTSTATUS;
|
|||
// * memory
|
||||
// ******************************************************************
|
||||
|
||||
// Define virtual base and alternate virtual base of kernel.
|
||||
#define KSEG0_BASE 0x80000000
|
||||
|
||||
// Define virtual base addresses for physical memory windows.
|
||||
#define MM_SYSTEM_PHYSICAL_MAP KSEG0_BASE
|
||||
|
||||
#define MM_HIGHEST_PHYSICAL_PAGE 0x07FFF
|
||||
#define MM_64M_PHYSICAL_PAGE 0x04000
|
||||
#define MM_INSTANCE_PHYSICAL_PAGE 0x03FE0 // Chihiro arcade should use 0x07FF0
|
||||
|
||||
#define MM_INSTANCE_PAGE_COUNT 16
|
||||
|
||||
#define PAGE_SHIFT 12
|
||||
|
||||
// Xbox pages are (1 << 12) = 0x00001000 = 4096 bytes in size.
|
||||
|
@ -2083,6 +2071,7 @@ typedef struct _XBOX_HARDWARE_INFO
|
|||
XBOX_HARDWARE_INFO;
|
||||
|
||||
const int XBOX_KEY_LENGTH = 16;
|
||||
const int ALTERNATE_SIGNATURE_COUNT = 16;
|
||||
typedef UCHAR XBOX_KEY_DATA[XBOX_KEY_LENGTH];
|
||||
|
||||
// ******************************************************************
|
||||
|
|
|
@ -34,6 +34,7 @@
|
|||
// *
|
||||
// ******************************************************************
|
||||
#include "Xbe.h"
|
||||
#include "CxbxVersion.h"
|
||||
#include "CxbxUtil.h"
|
||||
|
||||
#include <memory.h>
|
||||
|
|
|
@ -75,14 +75,6 @@ typedef signed long sint32;
|
|||
/*! define this to dump textures that are registered */
|
||||
//#define _DEBUG_DUMP_TEXTURE_REGISTER "D:\\cxbx\\_textures\\"
|
||||
|
||||
#include "Version.h"
|
||||
|
||||
/*! version string dependent on trace flag */
|
||||
#ifndef _DEBUG_TRACE
|
||||
#define _CXBX_VERSION _GIT_VERSION " (" __DATE__ ")"
|
||||
#else
|
||||
#define _CXBX_VERSION _GIT_VERSION "-Trace (" __DATE__ ")"
|
||||
#endif
|
||||
|
||||
/*! debug mode choices */
|
||||
enum DebugMode { DM_NONE, DM_CONSOLE, DM_FILE };
|
||||
|
|
|
@ -39,6 +39,7 @@
|
|||
#include "DlgVideoConfig.h"
|
||||
#include "CxbxKrnl/EmuShared.h"
|
||||
#include "ResCxbx.h"
|
||||
#include "CxbxVersion.h"
|
||||
|
||||
#include <io.h>
|
||||
|
||||
|
|
|
@ -44,6 +44,7 @@ namespace xboxkrnl
|
|||
};
|
||||
|
||||
#include "CxbxKrnl.h"
|
||||
#include "CxbxVersion.h"
|
||||
#include "Emu.h"
|
||||
#include "EmuX86.h"
|
||||
#include "EmuFile.h"
|
||||
|
@ -53,6 +54,7 @@ namespace xboxkrnl
|
|||
#include "EmuNV2A.h" // For InitOpenGLContext
|
||||
#include "HLEIntercept.h"
|
||||
#include "ReservedMemory.h" // For virtual_memory_placeholder
|
||||
#include "MemoryManager.h"
|
||||
|
||||
#include <shlobj.h>
|
||||
#include <clocale>
|
||||
|
@ -161,6 +163,28 @@ void ApplyMediaPatches()
|
|||
|
||||
}
|
||||
|
||||
void SetupPerTitleKeys()
|
||||
{
|
||||
// Generate per-title keys from the XBE Certificate
|
||||
Xbe::Certificate *pCertificate = (Xbe::Certificate*)CxbxKrnl_XbeHeader->dwCertificateAddr;
|
||||
UCHAR Digest[20] = {};
|
||||
|
||||
// Set the LAN Key
|
||||
xboxkrnl::XcHMAC(xboxkrnl::XboxCertificateKey, xboxkrnl::XBOX_KEY_LENGTH, pCertificate->bzLanKey, xboxkrnl::XBOX_KEY_LENGTH, NULL, 0, Digest);
|
||||
memcpy(xboxkrnl::XboxLANKey, Digest, xboxkrnl::XBOX_KEY_LENGTH);
|
||||
|
||||
// Signature Key
|
||||
xboxkrnl::XcHMAC(xboxkrnl::XboxCertificateKey, xboxkrnl::XBOX_KEY_LENGTH, pCertificate->bzSignatureKey, xboxkrnl::XBOX_KEY_LENGTH, NULL, 0, Digest);
|
||||
memcpy(xboxkrnl::XboxSignatureKey, Digest, xboxkrnl::XBOX_KEY_LENGTH);
|
||||
|
||||
// Alternate Signature Keys
|
||||
for (int i = 0; i < xboxkrnl::ALTERNATE_SIGNATURE_COUNT; i++) {
|
||||
xboxkrnl::XcHMAC(xboxkrnl::XboxCertificateKey, xboxkrnl::XBOX_KEY_LENGTH, pCertificate->bzTitleAlternateSignatureKey[i], xboxkrnl::XBOX_KEY_LENGTH, NULL, 0, Digest);
|
||||
memcpy(xboxkrnl::XboxAlternateSignatureKeys[i], Digest, xboxkrnl::XBOX_KEY_LENGTH);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
void CxbxLaunchXbe(void(*Entry)())
|
||||
{
|
||||
__try
|
||||
|
@ -225,8 +249,6 @@ void RestoreExeImageHeader()
|
|||
ExeOptionalHeader->DataDirectory[IMAGE_DIRECTORY_ENTRY_TLS] = NewOptionalHeader->DataDirectory[IMAGE_DIRECTORY_ENTRY_TLS];
|
||||
}
|
||||
|
||||
#define CONTIGUOUS_MEMORY_SIZE (64 * ONE_MB)
|
||||
|
||||
void *CxbxRestoreContiguousMemory(char *szFilePath_memory_bin)
|
||||
{
|
||||
// First, try to open an existing memory.bin file :
|
||||
|
@ -477,6 +499,40 @@ void CxbxKrnlMain(int argc, char* argv[])
|
|||
}
|
||||
#pragma optimize("", on)
|
||||
|
||||
// Loads a keys.bin file as generated by dump-xbox
|
||||
// See https://github.com/JayFoxRox/xqemu-tools/blob/master/dump-xbox.c
|
||||
void LoadXboxKeys(std::string path)
|
||||
{
|
||||
std::string keys_path = path + "\\keys.bin";
|
||||
|
||||
// Attempt to open Keys.bin
|
||||
FILE* fp = fopen(keys_path.c_str(), "rb");
|
||||
|
||||
if (fp != nullptr) {
|
||||
// Determine size of Keys.bin
|
||||
xboxkrnl::XBOX_KEY_DATA keys[2];
|
||||
fseek(fp, 0, SEEK_END);
|
||||
long size = ftell(fp);
|
||||
rewind(fp);
|
||||
|
||||
// If the size of Keys.bin is correct (two keys), read it
|
||||
if (size == xboxkrnl::XBOX_KEY_LENGTH * 2) {
|
||||
fread(keys, xboxkrnl::XBOX_KEY_LENGTH, 2, fp);
|
||||
|
||||
memcpy(xboxkrnl::XboxEEPROMKey, &keys[0], xboxkrnl::XBOX_KEY_LENGTH);
|
||||
memcpy(xboxkrnl::XboxCertificateKey, &keys[1], xboxkrnl::XBOX_KEY_LENGTH);
|
||||
} else {
|
||||
EmuWarning("Keys.bin has an incorrent filesize. Should be %d bytes", xboxkrnl::XBOX_KEY_LENGTH * 2);
|
||||
}
|
||||
|
||||
fclose(fp);
|
||||
return;
|
||||
}
|
||||
|
||||
// If we didn't already exit the function, keys.bin could not be loaded
|
||||
EmuWarning("Failed to load Keys.bin. Cxbx-Reloaded will be unable to read Save Data from a real Xbox");
|
||||
}
|
||||
|
||||
void CxbxKrnlInit
|
||||
(
|
||||
HWND hwndParent,
|
||||
|
@ -569,14 +625,6 @@ void CxbxKrnlInit
|
|||
{
|
||||
// Create a fake kernel header for XapiRestrictCodeSelectorLimit
|
||||
// Thanks advancingdragon / DirtBox
|
||||
typedef struct DUMMY_KERNEL
|
||||
{
|
||||
IMAGE_DOS_HEADER DosHeader;
|
||||
DWORD Signature;
|
||||
IMAGE_FILE_HEADER FileHeader;
|
||||
IMAGE_SECTION_HEADER SectionHeader;
|
||||
} *PDUMMY_KERNEL;
|
||||
|
||||
PDUMMY_KERNEL DummyKernel = (PDUMMY_KERNEL)XBOX_KERNEL_BASE;
|
||||
memset(DummyKernel, 0, sizeof(DUMMY_KERNEL));
|
||||
|
||||
|
@ -612,6 +660,10 @@ void CxbxKrnlInit
|
|||
strcat(szBuffer, "\\Cxbx-Reloaded\\");
|
||||
std::string basePath(szBuffer);
|
||||
CxbxBasePath = basePath + "EmuDisk\\";
|
||||
|
||||
// Load Per-Xbe Keys from the Cxbx-Reloaded AppData directory
|
||||
LoadXboxKeys(szBuffer);
|
||||
|
||||
// Determine XBE Path
|
||||
memset(szBuffer, 0, MAX_PATH);
|
||||
g_EmuShared->GetXbePath(szBuffer);
|
||||
|
@ -660,7 +712,7 @@ void CxbxKrnlInit
|
|||
|
||||
// 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);
|
||||
xboxkrnl::XeImageFileName.Buffer = (PCHAR)g_MemoryManager.Allocate(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);
|
||||
|
@ -721,6 +773,9 @@ void CxbxKrnlInit
|
|||
// See: https://multimedia.cx/eggs/xbox-sphinx-protocol/
|
||||
ApplyMediaPatches();
|
||||
|
||||
// Setup per-title encryption keys
|
||||
SetupPerTitleKeys();
|
||||
|
||||
// initialize FS segment selector
|
||||
{
|
||||
EmuInitFS();
|
||||
|
|
|
@ -82,7 +82,7 @@ typedef uint32 xbaddr;
|
|||
// fit in 51 MB. If we ever encounter an even larger XBE, this
|
||||
// value will have to be increased likewise (maybe up to 64 MB
|
||||
// for XBOX_MEMORY_SIZE or even 128 MB for CHIHIRO_MEMORY_SIZE).
|
||||
#define XBE_MAX_VA (51 * ONE_MB)
|
||||
#define XBE_MAX_VA (64 * ONE_MB)
|
||||
|
||||
/*! base address of Cxbx host executable, see Cxbx project options, Linker, Advanced, Base Address */
|
||||
#define CXBX_BASE_ADDR XBE_IMAGE_BASE
|
||||
|
|
|
@ -234,31 +234,6 @@ extern int EmuException(LPEXCEPTION_POINTERS e)
|
|||
return EXCEPTION_CONTINUE_SEARCH;
|
||||
}
|
||||
|
||||
// check how many bytes were allocated for a structure
|
||||
extern int EmuCheckAllocationSize(LPVOID pBase, bool largeBound)
|
||||
{
|
||||
MEMORY_BASIC_INFORMATION MemoryBasicInfo;
|
||||
|
||||
DWORD dwRet;
|
||||
#ifdef _DEBUG_ALLOC
|
||||
dwRet = CxbxVirtualQueryDebug(pBase, &MemoryBasicInfo, sizeof(MemoryBasicInfo));
|
||||
if (dwRet == -1)
|
||||
#endif
|
||||
dwRet = VirtualQuery(pBase, &MemoryBasicInfo, sizeof(MemoryBasicInfo));
|
||||
|
||||
if(dwRet == 0)
|
||||
return 0;
|
||||
|
||||
if(MemoryBasicInfo.State != MEM_COMMIT)
|
||||
return 0;
|
||||
|
||||
// this is a hack in order to determine when pointers come from a large write-combined database
|
||||
if(largeBound && MemoryBasicInfo.RegionSize > 5*1024*1024)
|
||||
return -1;
|
||||
|
||||
return MemoryBasicInfo.RegionSize - ((DWORD)pBase - (DWORD)MemoryBasicInfo.BaseAddress);
|
||||
}
|
||||
|
||||
// exception handle for that tough final exit :)
|
||||
int ExitException(LPEXCEPTION_POINTERS e)
|
||||
{
|
||||
|
|
|
@ -50,9 +50,6 @@ inline void NTAPI EmuWarning(const char *szWarningMessage, ...) { }
|
|||
// exception handler
|
||||
extern int EmuException(LPEXCEPTION_POINTERS e);
|
||||
|
||||
// check the allocation size of a given virtual address
|
||||
extern int EmuCheckAllocationSize(LPVOID pBase, bool largeBound);
|
||||
|
||||
// print call stack trace
|
||||
#ifdef _DEBUG
|
||||
void EmuPrintStackTrace(PCONTEXT ContextRecord);
|
||||
|
@ -102,4 +99,12 @@ extern HANDLE g_hInputHandle[XINPUT_HANDLE_SLOTS];
|
|||
|
||||
extern void InitializeSectionStructures(void);
|
||||
|
||||
typedef struct DUMMY_KERNEL
|
||||
{
|
||||
IMAGE_DOS_HEADER DosHeader;
|
||||
DWORD Signature;
|
||||
IMAGE_FILE_HEADER FileHeader;
|
||||
IMAGE_SECTION_HEADER SectionHeader;
|
||||
} *PDUMMY_KERNEL;
|
||||
|
||||
#endif
|
||||
|
|
|
@ -37,7 +37,7 @@
|
|||
#ifdef _DEBUG_ALLOC
|
||||
#define CxbxMalloc(Size) CxbxMallocDebug(Size, __FILE__, __LINE__)
|
||||
#define CxbxCalloc(Num, Size) CxbxCallocDebug(Num, Size, __FILE__, __LINE__)
|
||||
#define CxbxFree(Addr) CxbxFreeDebug(Addr, __FILE__, __LINE__)
|
||||
#define CxbxFree(Addr) CxbxFreeDebug(Addr, __FILE__, __LINE__)
|
||||
#define CxbxRtlAlloc(Heap, Flags, Bytes) CxbxRtlAllocDebug(Heap, Flags, Bytes, __FILE__, __LINE__)
|
||||
#define CxbxRtlFree(Heap, Flags, pMem) CxbxRtlFreeDebug(Heap, Flags, pMem, __FILE__, __LINE__)
|
||||
#define CxbxRtlRealloc(Heap, Flags, pMem, Bytes) CxbxRtlReallocDebug(Heap, Flags, pMem, Bytes, __FILE__, __LINE__)
|
||||
|
|
|
@ -43,6 +43,7 @@ namespace xboxkrnl
|
|||
};
|
||||
|
||||
#include "CxbxUtil.h"
|
||||
#include "CxbxVersion.h"
|
||||
#include "CxbxKrnl.h"
|
||||
#include "Emu.h"
|
||||
#include "EmuFS.h"
|
||||
|
@ -50,6 +51,7 @@ namespace xboxkrnl
|
|||
#include "DbgConsole.h"
|
||||
#include "ResourceTracker.h"
|
||||
#include "EmuAlloc.h"
|
||||
#include "MemoryManager.h"
|
||||
#include "EmuXTL.h"
|
||||
|
||||
#include <process.h>
|
||||
|
@ -271,49 +273,49 @@ int GetD3DResourceRefCount(XTL::IDirect3DResource8 *EmuResource)
|
|||
|
||||
XTL::X_D3DSurface *EmuNewD3DSurface()
|
||||
{
|
||||
XTL::X_D3DSurface *result = (XTL::X_D3DSurface *)calloc(1, sizeof(XTL::X_D3DSurface));
|
||||
XTL::X_D3DSurface *result = (XTL::X_D3DSurface *)g_MemoryManager.AllocateZeroed(1, sizeof(XTL::X_D3DSurface));
|
||||
result->Common = X_D3DCOMMON_D3DCREATED | X_D3DCOMMON_TYPE_SURFACE | 1; // Set refcount to 1
|
||||
return result;
|
||||
}
|
||||
|
||||
XTL::X_D3DTexture *EmuNewD3DTexture()
|
||||
{
|
||||
XTL::X_D3DTexture *result = (XTL::X_D3DTexture *)calloc(1, sizeof(XTL::X_D3DTexture));
|
||||
XTL::X_D3DTexture *result = (XTL::X_D3DTexture *)g_MemoryManager.AllocateZeroed(1, sizeof(XTL::X_D3DTexture));
|
||||
result->Common = X_D3DCOMMON_D3DCREATED | X_D3DCOMMON_TYPE_TEXTURE | 1; // Set refcount to 1
|
||||
return result;
|
||||
}
|
||||
|
||||
XTL::X_D3DVolumeTexture *EmuNewD3DVolumeTexture()
|
||||
{
|
||||
XTL::X_D3DVolumeTexture *result = (XTL::X_D3DVolumeTexture *)calloc(1, sizeof(XTL::X_D3DVolumeTexture));
|
||||
XTL::X_D3DVolumeTexture *result = (XTL::X_D3DVolumeTexture *)g_MemoryManager.AllocateZeroed(1, sizeof(XTL::X_D3DVolumeTexture));
|
||||
result->Common = X_D3DCOMMON_D3DCREATED | X_D3DCOMMON_TYPE_TEXTURE | 1; // Set refcount to 1
|
||||
return result;
|
||||
}
|
||||
|
||||
XTL::X_D3DCubeTexture *EmuNewD3DCubeTexture()
|
||||
{
|
||||
XTL::X_D3DCubeTexture *result = (XTL::X_D3DCubeTexture *)calloc(1, sizeof(XTL::X_D3DCubeTexture));
|
||||
XTL::X_D3DCubeTexture *result = (XTL::X_D3DCubeTexture *)g_MemoryManager.AllocateZeroed(1, sizeof(XTL::X_D3DCubeTexture));
|
||||
result->Common = X_D3DCOMMON_D3DCREATED | X_D3DCOMMON_TYPE_TEXTURE | 1; // Set refcount to 1
|
||||
return result;
|
||||
}
|
||||
|
||||
XTL::X_D3DIndexBuffer *EmuNewD3DIndexBuffer()
|
||||
{
|
||||
XTL::X_D3DIndexBuffer *result = (XTL::X_D3DIndexBuffer *)calloc(1, sizeof(XTL::X_D3DIndexBuffer));
|
||||
XTL::X_D3DIndexBuffer *result = (XTL::X_D3DIndexBuffer *)g_MemoryManager.AllocateZeroed(1, sizeof(XTL::X_D3DIndexBuffer));
|
||||
result->Common = X_D3DCOMMON_D3DCREATED | X_D3DCOMMON_TYPE_INDEXBUFFER | 1; // Set refcount to 1
|
||||
return result;
|
||||
}
|
||||
|
||||
XTL::X_D3DVertexBuffer *EmuNewD3DVertexBuffer()
|
||||
{
|
||||
XTL::X_D3DVertexBuffer *result = (XTL::X_D3DVertexBuffer *)calloc(1, sizeof(XTL::X_D3DVertexBuffer));
|
||||
XTL::X_D3DVertexBuffer *result = (XTL::X_D3DVertexBuffer *)g_MemoryManager.AllocateZeroed(1, sizeof(XTL::X_D3DVertexBuffer));
|
||||
result->Common = X_D3DCOMMON_D3DCREATED | X_D3DCOMMON_TYPE_VERTEXBUFFER | 1; // Set refcount to 1
|
||||
return result;
|
||||
}
|
||||
|
||||
XTL::X_D3DPalette *EmuNewD3DPalette()
|
||||
{
|
||||
XTL::X_D3DPalette *result = (XTL::X_D3DPalette *)calloc(1, sizeof(XTL::X_D3DPalette));
|
||||
XTL::X_D3DPalette *result = (XTL::X_D3DPalette *)g_MemoryManager.AllocateZeroed(1, sizeof(XTL::X_D3DPalette));
|
||||
result->Common = X_D3DCOMMON_D3DCREATED | X_D3DCOMMON_TYPE_PALETTE | 1; // Set refcount to 1
|
||||
return result;
|
||||
}
|
||||
|
@ -1055,7 +1057,7 @@ static DWORD WINAPI EmuCreateDeviceProxy(LPVOID)
|
|||
DWORD *lpCodes = 0;
|
||||
|
||||
g_pDD7->GetFourCCCodes(&dwCodes, lpCodes);
|
||||
lpCodes = (DWORD*)CxbxMalloc(dwCodes*sizeof(DWORD));
|
||||
lpCodes = (DWORD*)g_MemoryManager.Allocate(dwCodes*sizeof(DWORD));
|
||||
g_pDD7->GetFourCCCodes(&dwCodes, lpCodes);
|
||||
g_bSupportsYUY2 = false;
|
||||
for(DWORD v=0;v<dwCodes;v++)
|
||||
|
@ -1067,7 +1069,7 @@ static DWORD WINAPI EmuCreateDeviceProxy(LPVOID)
|
|||
}
|
||||
}
|
||||
|
||||
CxbxFree(lpCodes);
|
||||
g_MemoryManager.Free(lpCodes);
|
||||
if(!g_bSupportsYUY2)
|
||||
EmuWarning("YUY2 overlays are not supported in hardware, could be slow!");
|
||||
else
|
||||
|
@ -1337,7 +1339,7 @@ static void EmuUnswizzleTextureStages()
|
|||
RECT iRect = {0,0,0,0};
|
||||
POINT iPoint = {0,0};
|
||||
|
||||
void *pTemp = malloc(dwHeight*dwPitch);
|
||||
void *pTemp = g_MemoryManager.Allocate(dwHeight*dwPitch);
|
||||
|
||||
XTL::EmuUnswizzleRect
|
||||
(
|
||||
|
@ -1349,7 +1351,7 @@ static void EmuUnswizzleTextureStages()
|
|||
|
||||
pTexture->UnlockRect(0);
|
||||
|
||||
free(pTemp);
|
||||
g_MemoryManager.Free(pTemp);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -2058,7 +2060,7 @@ VOID WINAPI XTL::EMUPATCH(D3DDevice_GetGammaRamp)
|
|||
");\n",
|
||||
pRamp);
|
||||
|
||||
D3DGAMMARAMP *pGammaRamp = (D3DGAMMARAMP *)malloc(sizeof(D3DGAMMARAMP));
|
||||
D3DGAMMARAMP *pGammaRamp = (D3DGAMMARAMP *)g_MemoryManager.Allocate(sizeof(D3DGAMMARAMP));
|
||||
|
||||
g_pD3DDevice8->GetGammaRamp(pGammaRamp);
|
||||
|
||||
|
@ -2069,7 +2071,7 @@ VOID WINAPI XTL::EMUPATCH(D3DDevice_GetGammaRamp)
|
|||
pRamp->blue[v] = (BYTE)pGammaRamp->blue[v];
|
||||
}
|
||||
|
||||
free(pGammaRamp);
|
||||
g_MemoryManager.Free(pGammaRamp);
|
||||
|
||||
|
||||
|
||||
|
@ -2500,8 +2502,8 @@ HRESULT WINAPI XTL::EMUPATCH(D3DDevice_CreateVertexShader)
|
|||
pDeclaration, pFunction, pHandle, Usage);
|
||||
|
||||
// create emulated shader struct
|
||||
X_D3DVertexShader *pD3DVertexShader = (X_D3DVertexShader*)CxbxCalloc(1, sizeof(X_D3DVertexShader));
|
||||
VERTEX_SHADER *pVertexShader = (VERTEX_SHADER*)CxbxCalloc(1, sizeof(VERTEX_SHADER));
|
||||
X_D3DVertexShader *pD3DVertexShader = (X_D3DVertexShader*)g_MemoryManager.AllocateZeroed(1, sizeof(X_D3DVertexShader));
|
||||
VERTEX_SHADER *pVertexShader = (VERTEX_SHADER*)g_MemoryManager.AllocateZeroed(1, sizeof(VERTEX_SHADER));
|
||||
|
||||
// TODO: Intelligently fill out these fields as necessary
|
||||
|
||||
|
@ -2597,9 +2599,9 @@ HRESULT WINAPI XTL::EMUPATCH(D3DDevice_CreateVertexShader)
|
|||
// Save the status, to remove things later
|
||||
pVertexShader->Status = hRet;
|
||||
|
||||
CxbxFree(pRecompiledDeclaration);
|
||||
g_MemoryManager.Free(pRecompiledDeclaration);
|
||||
|
||||
pVertexShader->pDeclaration = (DWORD*)CxbxMalloc(DeclarationSize);
|
||||
pVertexShader->pDeclaration = (DWORD*)g_MemoryManager.Allocate(DeclarationSize);
|
||||
memcpy(pVertexShader->pDeclaration, pDeclaration, DeclarationSize);
|
||||
|
||||
pVertexShader->FunctionSize = 0;
|
||||
|
@ -2612,7 +2614,7 @@ HRESULT WINAPI XTL::EMUPATCH(D3DDevice_CreateVertexShader)
|
|||
{
|
||||
if(pFunction != NULL)
|
||||
{
|
||||
pVertexShader->pFunction = (DWORD*)CxbxMalloc(VertexShaderSize);
|
||||
pVertexShader->pFunction = (DWORD*)g_MemoryManager.Allocate(VertexShaderSize);
|
||||
memcpy(pVertexShader->pFunction, pFunction, VertexShaderSize);
|
||||
pVertexShader->FunctionSize = VertexShaderSize;
|
||||
}
|
||||
|
@ -2859,7 +2861,7 @@ VOID WINAPI XTL::EMUPATCH(D3DDevice_DeletePixelShader)
|
|||
{
|
||||
g_pD3DDevice8->DeletePixelShader(pPixelShader->Handle);
|
||||
}
|
||||
CxbxFree(pPixelShader);
|
||||
g_MemoryManager.Free(pPixelShader);
|
||||
}*/
|
||||
|
||||
|
||||
|
@ -2914,7 +2916,7 @@ HRESULT WINAPI XTL::EMUPATCH(D3DDevice_CreatePixelShader)
|
|||
// CreatePixelShader() is expected to return a pHandle directly to a shader interface.
|
||||
|
||||
/*
|
||||
PIXEL_SHADER *pPixelShader = (PIXEL_SHADER*)CxbxCalloc(1, sizeof(PIXEL_SHADER)); // Clear, to prevent side-effects on random contents
|
||||
PIXEL_SHADER *pPixelShader = (PIXEL_SHADER*)g_MemoryManager.AllocateZeroed(1, sizeof(PIXEL_SHADER)); // Clear, to prevent side-effects on random contents
|
||||
|
||||
memcpy(&pPixelShader->PSDef, pPSDef, sizeof(X_D3DPIXELSHADERDEF));
|
||||
|
||||
|
@ -3145,7 +3147,7 @@ HRESULT WINAPI XTL::EMUPATCH(D3DDevice_CreateTexture)
|
|||
{
|
||||
// If YUY2 is not supported in hardware, we'll actually mark this as a special fake texture
|
||||
Texture_Data = X_D3DRESOURCE_DATA_YUV_SURFACE;
|
||||
pTexture->Lock = (DWORD)CxbxMalloc(g_dwOverlayP * g_dwOverlayH);
|
||||
pTexture->Lock = (DWORD)g_MemoryManager.Allocate(g_dwOverlayP * g_dwOverlayH);
|
||||
|
||||
g_pCachedYuvSurface = (X_D3DSurface*)pTexture;
|
||||
|
||||
|
@ -3282,7 +3284,7 @@ HRESULT WINAPI XTL::EMUPATCH(D3DDevice_CreateVolumeTexture)
|
|||
{
|
||||
// If YUY2 is not supported in hardware, we'll actually mark this as a special fake texture
|
||||
(*ppVolumeTexture)->Data = X_D3DRESOURCE_DATA_YUV_SURFACE;
|
||||
(*ppVolumeTexture)->Lock = (DWORD)CxbxMalloc(g_dwOverlayP * g_dwOverlayH);
|
||||
(*ppVolumeTexture)->Lock = (DWORD)g_MemoryManager.Allocate(g_dwOverlayP * g_dwOverlayH);
|
||||
(*ppVolumeTexture)->Format = Format << X_D3DFORMAT_FORMAT_SHIFT;
|
||||
|
||||
(*ppVolumeTexture)->Size = (g_dwOverlayW & X_D3DSIZE_WIDTH_MASK)
|
||||
|
@ -3783,7 +3785,7 @@ HRESULT WINAPI XTL::EMUPATCH(D3DDevice_Begin)
|
|||
|
||||
if(g_IVBTable == 0)
|
||||
{
|
||||
g_IVBTable = (struct XTL::_D3DIVB*)CxbxMalloc(sizeof(XTL::_D3DIVB)*1024);
|
||||
g_IVBTable = (struct XTL::_D3DIVB*)g_MemoryManager.Allocate(sizeof(XTL::_D3DIVB)*1024);
|
||||
}
|
||||
|
||||
g_IVBTblOffs = 0;
|
||||
|
@ -3794,7 +3796,7 @@ HRESULT WINAPI XTL::EMUPATCH(D3DDevice_Begin)
|
|||
|
||||
if(g_pIVBVertexBuffer == 0)
|
||||
{
|
||||
g_pIVBVertexBuffer = (DWORD*)CxbxMalloc(sizeof(XTL::_D3DIVB)*1024);
|
||||
g_pIVBVertexBuffer = (DWORD*)g_MemoryManager.Allocate(sizeof(XTL::_D3DIVB)*1024);
|
||||
}
|
||||
|
||||
|
||||
|
@ -4136,8 +4138,8 @@ HRESULT WINAPI XTL::EMUPATCH(D3DDevice_End)()
|
|||
EmuFlushIVB();
|
||||
|
||||
// TODO: Should technically clean this up at some point..but on XP doesnt matter much
|
||||
// CxbxFree(g_pIVBVertexBuffer);
|
||||
// CxbxFree(g_IVBTable);
|
||||
// g_MemoryManager.Free(g_pIVBVertexBuffer);
|
||||
// g_MemoryManager.Free(g_IVBTable);
|
||||
|
||||
|
||||
|
||||
|
@ -4423,7 +4425,7 @@ HRESULT WINAPI XTL::EMUPATCH(D3DResource_Register)
|
|||
|
||||
// create vertex buffer
|
||||
{
|
||||
DWORD dwSize = EmuCheckAllocationSize(pBase, true);
|
||||
DWORD dwSize = g_MemoryManager.QueryAllocationSize(pBase);
|
||||
|
||||
if(dwSize == -1)
|
||||
{
|
||||
|
@ -4482,7 +4484,7 @@ HRESULT WINAPI XTL::EMUPATCH(D3DResource_Register)
|
|||
|
||||
// create index buffer
|
||||
{
|
||||
DWORD dwSize = EmuCheckAllocationSize(pBase, true);
|
||||
DWORD dwSize = g_MemoryManager.QueryAllocationSize(pBase);
|
||||
|
||||
if(dwSize == -1 || dwSize == 0)
|
||||
{
|
||||
|
@ -4534,7 +4536,7 @@ HRESULT WINAPI XTL::EMUPATCH(D3DResource_Register)
|
|||
|
||||
// create push buffer
|
||||
{
|
||||
DWORD dwSize = EmuCheckAllocationSize(pBase, true);
|
||||
DWORD dwSize = g_MemoryManager.QueryAllocationSize(pBase);
|
||||
|
||||
if(dwSize == -1)
|
||||
{
|
||||
|
@ -4684,7 +4686,7 @@ HRESULT WINAPI XTL::EMUPATCH(D3DResource_Register)
|
|||
// TODO : Do we actually need to set these?
|
||||
pPixelContainer->Common = X_D3DCOMMON_TYPE_TEXTURE | 1; // Set refcount to 1
|
||||
pPixelContainer->Data = X_D3DRESOURCE_DATA_YUV_SURFACE;
|
||||
pPixelContainer->Lock = (DWORD)CxbxMalloc(g_dwOverlayP * g_dwOverlayH);
|
||||
pPixelContainer->Lock = (DWORD)g_MemoryManager.Allocate(g_dwOverlayP * g_dwOverlayH);
|
||||
pPixelContainer->Format = (X_D3DFMT_YUY2 << X_D3DFORMAT_FORMAT_SHIFT);
|
||||
|
||||
pPixelContainer->Size = (g_dwOverlayW & X_D3DSIZE_WIDTH_MASK);
|
||||
|
@ -4882,7 +4884,7 @@ HRESULT WINAPI XTL::EMUPATCH(D3DResource_Register)
|
|||
|
||||
BYTE *pPixelData = (BYTE*)LockedRect.pBits;
|
||||
DWORD dwDataSize = dwMipWidth*dwMipHeight;
|
||||
DWORD* pExpandedTexture = (DWORD*)CxbxMalloc(dwDataSize * sizeof(DWORD));
|
||||
DWORD* pExpandedTexture = (DWORD*)g_MemoryManager.Allocate(dwDataSize * sizeof(DWORD));
|
||||
DWORD* pTexturePalette = (DWORD*)pCurrentPalette;
|
||||
|
||||
//__asm int 3;
|
||||
|
@ -4916,7 +4918,7 @@ HRESULT WINAPI XTL::EMUPATCH(D3DResource_Register)
|
|||
memcpy(pPixelData, pExpandedTexture, dwDataSize * sizeof(DWORD));
|
||||
|
||||
// Flush unused data buffers
|
||||
CxbxFree(pExpandedTexture);
|
||||
g_MemoryManager.Free(pExpandedTexture);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -5025,7 +5027,7 @@ HRESULT WINAPI XTL::EMUPATCH(D3DResource_Register)
|
|||
|
||||
// create palette
|
||||
{
|
||||
DWORD dwSize = EmuCheckAllocationSize(pBase, true);
|
||||
DWORD dwSize = g_MemoryManager.QueryAllocationSize(pBase);
|
||||
|
||||
if(dwSize == -1)
|
||||
{
|
||||
|
@ -5139,7 +5141,7 @@ ULONG WINAPI XTL::EMUPATCH(D3DResource_Release)
|
|||
g_pCachedYuvSurface = NULL;
|
||||
|
||||
// free memory associated with this special resource handle
|
||||
CxbxFree((PVOID)pThis->Lock);
|
||||
g_MemoryManager.Free((PVOID)pThis->Lock);
|
||||
}
|
||||
|
||||
EMUPATCH(D3DDevice_EnableOverlay)(FALSE);
|
||||
|
@ -8266,7 +8268,7 @@ HRESULT WINAPI XTL::EMUPATCH(D3DDevice_SetPalette)
|
|||
if( pPalette->Data )
|
||||
{
|
||||
pCurrentPalette = (LPVOID) pPalette->Data;
|
||||
dwCurrentPaletteSize = EmuCheckAllocationSize( (LPVOID) pPalette->Data, false );
|
||||
dwCurrentPaletteSize = g_MemoryManager.QueryAllocationSize((LPVOID)pPalette->Data);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -8433,17 +8435,17 @@ VOID WINAPI XTL::EMUPATCH(D3DDevice_DeleteVertexShader)
|
|||
VERTEX_SHADER *pVertexShader = (VERTEX_SHADER *)pD3DVertexShader->Handle;
|
||||
|
||||
RealHandle = pVertexShader->Handle;
|
||||
CxbxFree(pVertexShader->pDeclaration);
|
||||
g_MemoryManager.Free(pVertexShader->pDeclaration);
|
||||
|
||||
if(pVertexShader->pFunction)
|
||||
{
|
||||
CxbxFree(pVertexShader->pFunction);
|
||||
g_MemoryManager.Free(pVertexShader->pFunction);
|
||||
}
|
||||
|
||||
FreeVertexDynamicPatch(pVertexShader);
|
||||
|
||||
CxbxFree(pVertexShader);
|
||||
CxbxFree(pD3DVertexShader);
|
||||
g_MemoryManager.Free(pVertexShader);
|
||||
g_MemoryManager.Free(pD3DVertexShader);
|
||||
}
|
||||
|
||||
HRESULT hRet = g_pD3DDevice8->DeleteVertexShader(RealHandle);
|
||||
|
@ -8897,7 +8899,7 @@ PVOID WINAPI XTL::EMUPATCH(D3D_AllocContiguousMemory)
|
|||
// so that we can return a valid page aligned pointer
|
||||
//
|
||||
|
||||
PVOID pRet = CxbxMalloc(dwSize + PAGE_SIZE);
|
||||
PVOID pRet = g_MemoryManager.Allocate(dwSize + PAGE_SIZE);
|
||||
|
||||
// align to page boundary
|
||||
{
|
||||
|
@ -9607,7 +9609,7 @@ HRESULT WINAPI XTL::EMUPATCH(D3DDevice_PersistDisplay)()
|
|||
FILE* fp = fopen( "PersistedSurface.bin", "wb" );
|
||||
if(fp)
|
||||
{
|
||||
void* ptr = malloc( BackBufferDesc.Width * BackBufferDesc.Height * dwBytesPerPixel );
|
||||
void* ptr = g_MemoryManager.Allocate( BackBufferDesc.Width * BackBufferDesc.Height * dwBytesPerPixel );
|
||||
|
||||
if( SUCCEEDED( pBackBuffer->LockRect( &LockedRect, NULL, 0 ) ) )
|
||||
{
|
||||
|
|
|
@ -73,6 +73,7 @@
|
|||
#include "CxbxKrnl/EmuFS.h"
|
||||
#include "CxbxKrnl/EmuAlloc.h"
|
||||
#include "CxbxKrnl/EmuXTL.h"
|
||||
#include <CxbxKrnl/MemoryManager.h>
|
||||
|
||||
#include <process.h>
|
||||
#include <locale.h>
|
||||
|
@ -734,13 +735,13 @@ HRESULT XTL::CreatePixelShaderFunction(X_D3DPIXELSHADERDEF *pPSD, LPD3DXBUFFER*
|
|||
// The Xbox sets r0 to the alpha channel of texture 0, so it can be read before written!
|
||||
if(bR0WAccess)
|
||||
{
|
||||
char *szNewCodeBuffer = (char *)CxbxMalloc((strlen(szCode)+20)*sizeof(char));
|
||||
char *szNewCodeBuffer = (char *)g_MemoryManager.Allocate((strlen(szCode)+20)*sizeof(char));
|
||||
strncpy(szNewCodeBuffer, szCode, iPreRunLen);
|
||||
strcat(szNewCodeBuffer, "mov r0, t0.a\n");
|
||||
strcat(szNewCodeBuffer, &szCode[iPreRunLen]);
|
||||
strcpy(szCode, szNewCodeBuffer);
|
||||
|
||||
CxbxFree(szNewCodeBuffer);
|
||||
g_MemoryManager.Free(szNewCodeBuffer);
|
||||
}
|
||||
/*DbgPrintf("r1 case! ... ");
|
||||
if(bR1WAccess || bR1AWAccess || bR1RGBWAccess)
|
||||
|
@ -753,12 +754,12 @@ HRESULT XTL::CreatePixelShaderFunction(X_D3DPIXELSHADERDEF *pPSD, LPD3DXBUFFER*
|
|||
|
||||
sprintf(szCat, "mov r1%s, t1%s\n", szChannel, szChannel);
|
||||
|
||||
char *szNewCodeBuffer = (char *)malloc((strlen(szCode)+50)*sizeof(char));
|
||||
char *szNewCodeBuffer = (char *)g_MemoryManager.Allocate((strlen(szCode)+50)*sizeof(char));
|
||||
strncpy(szNewCodeBuffer, szCode, iPreRunLen);
|
||||
strcat(szNewCodeBuffer, szCat);
|
||||
strcat(szNewCodeBuffer, &szCode[iPreRunLen]);
|
||||
strcpy(szCode, szNewCodeBuffer);
|
||||
free(szNewCodeBuffer);
|
||||
g_MemoryManager.Free(szNewCodeBuffer);
|
||||
}
|
||||
DbgPrintf("end\n");*/
|
||||
|
||||
|
@ -2616,7 +2617,7 @@ inline void CorrectConstToReg(char *szConst, int *pPSC0, int *pPSC1)
|
|||
|
||||
// Add this const to the beginning of the psh
|
||||
char str[100];
|
||||
char *szNewCodeBuffer = (char *)malloc((strlen(pCodeBuffer)+70)*sizeof(char));
|
||||
char *szNewCodeBuffer = (char *)g_MemoryManager.Allocate((strlen(pCodeBuffer)+70)*sizeof(char));
|
||||
strncpy(szNewCodeBuffer, pCodeBuffer, 7);
|
||||
szNewCodeBuffer[7]=0x00;
|
||||
sprintf(str, "def c%d, %ff, %ff, %ff, %ff\n", i,
|
||||
|
@ -2626,7 +2627,7 @@ inline void CorrectConstToReg(char *szConst, int *pPSC0, int *pPSC1)
|
|||
strcat(szNewCodeBuffer, &pCodeBuffer[7]);
|
||||
strcpy(pCodeBuffer, szNewCodeBuffer);
|
||||
|
||||
free(szNewCodeBuffer);
|
||||
g_MemoryManager.Free(szNewCodeBuffer);
|
||||
|
||||
iConstCount++;
|
||||
|
||||
|
|
|
@ -40,6 +40,7 @@
|
|||
#include "CxbxKrnl/EmuXTL.h"
|
||||
#include "CxbxKrnl/EmuD3D8Types.h" // For X_D3DFORMAT
|
||||
#include "CxbxKrnl/ResourceTracker.h"
|
||||
#include "CxbxKrnl/MemoryManager.h"
|
||||
|
||||
uint32 XTL::g_dwPrimaryPBCount = 0;
|
||||
uint32 *XTL::g_pPrimaryPB = 0;
|
||||
|
@ -131,7 +132,7 @@ static void EmuUnswizzleActiveTexture()
|
|||
RECT iRect = {0,0,0,0};
|
||||
POINT iPoint = {0,0};
|
||||
|
||||
void *pTemp = malloc(dwHeight*dwPitch);
|
||||
void *pTemp = g_MemoryManager.Allocate(dwHeight*dwPitch);
|
||||
|
||||
XTL::EmuUnswizzleRect
|
||||
(
|
||||
|
@ -143,7 +144,7 @@ static void EmuUnswizzleActiveTexture()
|
|||
|
||||
pTexture->UnlockRect(0);
|
||||
|
||||
free(pTemp);
|
||||
g_MemoryManager.Free(pTemp);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -42,6 +42,7 @@
|
|||
#include "CxbxKrnl/EmuAlloc.h"
|
||||
#include "CxbxKrnl/EmuXTL.h"
|
||||
#include "CxbxKrnl/ResourceTracker.h"
|
||||
#include "CxbxKrnl/MemoryManager.h"
|
||||
|
||||
#include <ctime>
|
||||
|
||||
|
@ -104,7 +105,7 @@ void XTL::VertexPatcher::CacheStream(VertexPatchDesc *pPatchDesc,
|
|||
void *pCalculateData = NULL;
|
||||
uint32 uiKey;
|
||||
UINT uiLength;
|
||||
CACHEDSTREAM *pCachedStream = (CACHEDSTREAM *)CxbxCalloc(1, sizeof(CACHEDSTREAM));
|
||||
CACHEDSTREAM *pCachedStream = (CACHEDSTREAM *)g_MemoryManager.AllocateZeroed(1, sizeof(CACHEDSTREAM));
|
||||
|
||||
// Check if the cache is full, if so, throw away the least used stream
|
||||
if(g_PatchedStreamsCache.get_count() > VERTEX_BUFFER_CACHE_SIZE)
|
||||
|
@ -200,7 +201,7 @@ void XTL::VertexPatcher::FreeCachedStream(void *pStream)
|
|||
{
|
||||
if(pCachedStream->bIsUP && pCachedStream->pStreamUP)
|
||||
{
|
||||
CxbxFree(pCachedStream->pStreamUP);
|
||||
g_MemoryManager.Free(pCachedStream->pStreamUP);
|
||||
}
|
||||
if(pCachedStream->Stream.pOriginalStream)
|
||||
{
|
||||
|
@ -210,7 +211,7 @@ void XTL::VertexPatcher::FreeCachedStream(void *pStream)
|
|||
{
|
||||
pCachedStream->Stream.pPatchedStream->Release();
|
||||
}
|
||||
CxbxFree(pCachedStream);
|
||||
g_MemoryManager.Free(pCachedStream);
|
||||
}
|
||||
g_PatchedStreamsCache.Unlock();
|
||||
g_PatchedStreamsCache.remove(pStream);
|
||||
|
@ -227,7 +228,7 @@ bool XTL::VertexPatcher::ApplyCachedStream(VertexPatchDesc *pPatchDesc,
|
|||
UINT uiLength;
|
||||
bool bApplied = false;
|
||||
uint32 uiKey;
|
||||
//CACHEDSTREAM *pCachedStream = (CACHEDSTREAM *)CxbxMalloc(sizeof(CACHEDSTREAM));
|
||||
//CACHEDSTREAM *pCachedStream = (CACHEDSTREAM *)g_MemoryManager.Allocate(sizeof(CACHEDSTREAM));
|
||||
|
||||
if(!pPatchDesc->pVertexStreamZeroData)
|
||||
{
|
||||
|
@ -448,7 +449,7 @@ bool XTL::VertexPatcher::PatchStream(VertexPatchDesc *pPatchDesc,
|
|||
// TODO: This is sometimes the number of indices, which isn't too good
|
||||
dwNewSize = pPatchDesc->dwVertexCount * pStreamPatch->ConvertedStride;
|
||||
pNewVertexBuffer = NULL;
|
||||
pNewData = (uint08*)CxbxMalloc(dwNewSize);
|
||||
pNewData = (uint08*)g_MemoryManager.Allocate(dwNewSize);
|
||||
if(!pNewData)
|
||||
{
|
||||
CxbxKrnlCleanup("Couldn't allocate the new stream zero buffer");
|
||||
|
@ -897,7 +898,7 @@ bool XTL::VertexPatcher::PatchPrimitive(VertexPatchDesc *pPatchDesc,
|
|||
dwOriginalSizeWR = dwOriginalSize;
|
||||
dwNewSizeWR = dwNewSize;
|
||||
|
||||
m_pNewVertexStreamZeroData = (uint08*)CxbxMalloc(dwNewSizeWR);
|
||||
m_pNewVertexStreamZeroData = (uint08*)g_MemoryManager.Allocate(dwNewSizeWR);
|
||||
m_bAllocatedStreamZeroData = true;
|
||||
|
||||
pPatchedVertexData = (uint08*)m_pNewVertexStreamZeroData;
|
||||
|
@ -1037,7 +1038,7 @@ bool XTL::VertexPatcher::Restore()
|
|||
|
||||
if(this->m_bAllocatedStreamZeroData)
|
||||
{
|
||||
CxbxFree(m_pNewVertexStreamZeroData);
|
||||
g_MemoryManager.Free(m_pNewVertexStreamZeroData);
|
||||
}
|
||||
}
|
||||
else
|
||||
|
|
|
@ -42,6 +42,7 @@
|
|||
#include "CxbxKrnl/EmuFS.h"
|
||||
#include "CxbxKrnl/EmuAlloc.h"
|
||||
#include "CxbxKrnl/EmuXTL.h"
|
||||
#include "CxbxKrnl/MemoryManager.h"
|
||||
|
||||
// ****************************************************************************
|
||||
// * Vertex shader function recompiler
|
||||
|
@ -1675,10 +1676,10 @@ static boolean VshAddStreamPatch(VSH_PATCH_DATA *pPatchData)
|
|||
pStreamPatch->NbrTypes = pPatchData->TypePatchData.NbrTypes;
|
||||
pStreamPatch->NeedPatch = pPatchData->NeedPatching;
|
||||
// 2010/01/12 - revel8n - fixed allocated data size and type
|
||||
pStreamPatch->pTypes = (UINT *)CxbxMalloc(pPatchData->TypePatchData.NbrTypes * sizeof(UINT)); //VSH_TYPE_PATCH_DATA));
|
||||
pStreamPatch->pTypes = (UINT *)g_MemoryManager.Allocate(pPatchData->TypePatchData.NbrTypes * sizeof(UINT)); //VSH_TYPE_PATCH_DATA));
|
||||
memcpy(pStreamPatch->pTypes, pPatchData->TypePatchData.Types, pPatchData->TypePatchData.NbrTypes * sizeof(UINT)); //VSH_TYPE_PATCH_DATA));
|
||||
// 2010/12/06 - PatrickvL - do the same for new sizes :
|
||||
pStreamPatch->pSizes = (UINT *)CxbxMalloc(pPatchData->TypePatchData.NbrTypes * sizeof(UINT));
|
||||
pStreamPatch->pSizes = (UINT *)g_MemoryManager.Allocate(pPatchData->TypePatchData.NbrTypes * sizeof(UINT));
|
||||
memcpy(pStreamPatch->pSizes, pPatchData->TypePatchData.NewSizes, pPatchData->TypePatchData.NbrTypes * sizeof(UINT));
|
||||
|
||||
return TRUE;
|
||||
|
@ -1977,7 +1978,7 @@ DWORD XTL::EmuRecompileVshDeclaration
|
|||
|
||||
// Calculate size of declaration
|
||||
DWORD DeclarationSize = VshGetDeclarationSize(pDeclaration);
|
||||
*ppRecompiledDeclaration = (DWORD *)CxbxMalloc(DeclarationSize);
|
||||
*ppRecompiledDeclaration = (DWORD *)g_MemoryManager.Allocate(DeclarationSize);
|
||||
DWORD *pRecompiled = *ppRecompiledDeclaration;
|
||||
memcpy(pRecompiled, pDeclaration, DeclarationSize);
|
||||
*pDeclarationSize = DeclarationSize;
|
||||
|
@ -2001,7 +2002,7 @@ DWORD XTL::EmuRecompileVshDeclaration
|
|||
// Copy the patches to the vertex shader struct
|
||||
DWORD StreamsSize = PatchData.StreamPatchData.NbrStreams * sizeof(STREAM_DYNAMIC_PATCH);
|
||||
pVertexDynamicPatch->NbrStreams = PatchData.StreamPatchData.NbrStreams;
|
||||
pVertexDynamicPatch->pStreamPatches = (STREAM_DYNAMIC_PATCH *)CxbxMalloc(StreamsSize);
|
||||
pVertexDynamicPatch->pStreamPatches = (STREAM_DYNAMIC_PATCH *)g_MemoryManager.Allocate(StreamsSize);
|
||||
memcpy(pVertexDynamicPatch->pStreamPatches,
|
||||
PatchData.StreamPatchData.pStreamPatches,
|
||||
StreamsSize);
|
||||
|
@ -2022,7 +2023,7 @@ extern HRESULT XTL::EmuRecompileVshFunction
|
|||
VSH_SHADER_HEADER *pShaderHeader = (VSH_SHADER_HEADER*)pFunction;
|
||||
DWORD *pToken;
|
||||
boolean EOI = false;
|
||||
VSH_XBOX_SHADER *pShader = (VSH_XBOX_SHADER*)CxbxCalloc(1, sizeof(VSH_XBOX_SHADER));
|
||||
VSH_XBOX_SHADER *pShader = (VSH_XBOX_SHADER*)g_MemoryManager.AllocateZeroed(1, sizeof(VSH_XBOX_SHADER));
|
||||
LPD3DXBUFFER pErrors = NULL;
|
||||
HRESULT hRet = 0;
|
||||
|
||||
|
@ -2073,7 +2074,7 @@ extern HRESULT XTL::EmuRecompileVshFunction
|
|||
// The size of the shader is
|
||||
*pOriginalSize = (DWORD)pToken - (DWORD)pFunction;
|
||||
|
||||
char* pShaderDisassembly = (char*)CxbxMalloc(pShader->IntermediateCount * 100); // Should be plenty
|
||||
char* pShaderDisassembly = (char*)g_MemoryManager.Allocate(pShader->IntermediateCount * 100); // Should be plenty
|
||||
DbgVshPrintf("-- Before conversion --\n");
|
||||
VshWriteShader(pShader, pShaderDisassembly, FALSE);
|
||||
DbgVshPrintf("%s", pShaderDisassembly);
|
||||
|
@ -2118,9 +2119,9 @@ extern HRESULT XTL::EmuRecompileVshFunction
|
|||
if( pErrors )
|
||||
pErrors->Release();
|
||||
|
||||
CxbxFree(pShaderDisassembly);
|
||||
g_MemoryManager.Free(pShaderDisassembly);
|
||||
}
|
||||
CxbxFree(pShader);
|
||||
g_MemoryManager.Free(pShader);
|
||||
|
||||
return hRet;
|
||||
}
|
||||
|
@ -2129,12 +2130,12 @@ extern void XTL::FreeVertexDynamicPatch(VERTEX_SHADER *pVertexShader)
|
|||
{
|
||||
for (DWORD i = 0; i < pVertexShader->VertexDynamicPatch.NbrStreams; i++)
|
||||
{
|
||||
CxbxFree(pVertexShader->VertexDynamicPatch.pStreamPatches[i].pTypes);
|
||||
g_MemoryManager.Free(pVertexShader->VertexDynamicPatch.pStreamPatches[i].pTypes);
|
||||
pVertexShader->VertexDynamicPatch.pStreamPatches[i].pTypes = nullptr;
|
||||
CxbxFree(pVertexShader->VertexDynamicPatch.pStreamPatches[i].pSizes);
|
||||
g_MemoryManager.Free(pVertexShader->VertexDynamicPatch.pStreamPatches[i].pSizes);
|
||||
pVertexShader->VertexDynamicPatch.pStreamPatches[i].pSizes = nullptr;
|
||||
}
|
||||
CxbxFree(pVertexShader->VertexDynamicPatch.pStreamPatches);
|
||||
g_MemoryManager.Free(pVertexShader->VertexDynamicPatch.pStreamPatches);
|
||||
pVertexShader->VertexDynamicPatch.pStreamPatches = NULL;
|
||||
pVertexShader->VertexDynamicPatch.NbrStreams = 0;
|
||||
}
|
||||
|
|
|
@ -48,6 +48,7 @@ namespace xboxkrnl
|
|||
#include "EmuShared.h"
|
||||
#include "EmuAlloc.h"
|
||||
#include "EmuXTL.h"
|
||||
#include "MemoryManager.h"
|
||||
|
||||
#include <mmreg.h>
|
||||
#include <msacm.h>
|
||||
|
@ -803,7 +804,7 @@ HRESULT WINAPI XTL::EMUPATCH(DirectSoundCreateBuffer)
|
|||
|
||||
DWORD dwEmuFlags = 0;
|
||||
|
||||
DSBUFFERDESC *pDSBufferDesc = (DSBUFFERDESC*)CxbxMalloc(sizeof(DSBUFFERDESC));
|
||||
DSBUFFERDESC *pDSBufferDesc = (DSBUFFERDESC*)g_MemoryManager.Allocate(sizeof(DSBUFFERDESC));
|
||||
DSBUFFERDESC *pDSBufferDescSpecial = NULL;
|
||||
bool bIsSpecial = false;
|
||||
|
||||
|
@ -828,7 +829,7 @@ HRESULT WINAPI XTL::EMUPATCH(DirectSoundCreateBuffer)
|
|||
|
||||
if(pdsbd->lpwfxFormat != NULL)
|
||||
{
|
||||
pDSBufferDesc->lpwfxFormat = (WAVEFORMATEX*)CxbxMalloc(sizeof(WAVEFORMATEX)+pdsbd->lpwfxFormat->cbSize);
|
||||
pDSBufferDesc->lpwfxFormat = (WAVEFORMATEX*)g_MemoryManager.Allocate(sizeof(WAVEFORMATEX)+pdsbd->lpwfxFormat->cbSize);
|
||||
memcpy(pDSBufferDesc->lpwfxFormat, pdsbd->lpwfxFormat, sizeof(WAVEFORMATEX));
|
||||
|
||||
if(pDSBufferDesc->lpwfxFormat->wFormatTag == WAVE_FORMAT_XBOX_ADPCM)
|
||||
|
@ -868,8 +869,8 @@ HRESULT WINAPI XTL::EMUPATCH(DirectSoundCreateBuffer)
|
|||
|
||||
// TODO: A better response to this scenario if possible.
|
||||
|
||||
pDSBufferDescSpecial = (DSBUFFERDESC*)CxbxMalloc(sizeof(DSBUFFERDESC));
|
||||
pDSBufferDescSpecial->lpwfxFormat = (WAVEFORMATEX*)CxbxMalloc(sizeof(WAVEFORMATEX));
|
||||
pDSBufferDescSpecial = (DSBUFFERDESC*)g_MemoryManager.Allocate(sizeof(DSBUFFERDESC));
|
||||
pDSBufferDescSpecial->lpwfxFormat = (WAVEFORMATEX*)g_MemoryManager.Allocate(sizeof(WAVEFORMATEX));
|
||||
|
||||
//memset(pDSBufferDescSpecial->lpwfxFormat, 0, sizeof(WAVEFORMATEX));
|
||||
//memset(pDSBufferDescSpecial, 0, sizeof(DSBUFFERDESC));
|
||||
|
@ -886,7 +887,7 @@ HRESULT WINAPI XTL::EMUPATCH(DirectSoundCreateBuffer)
|
|||
pDSBufferDescSpecial->dwFlags = DSBCAPS_CTRLPAN | DSBCAPS_CTRLVOLUME | DSBCAPS_CTRLFREQUENCY;
|
||||
pDSBufferDescSpecial->dwBufferBytes = 3 * pDSBufferDescSpecial->lpwfxFormat->nAvgBytesPerSec;
|
||||
|
||||
// pDSBufferDesc->lpwfxFormat = (WAVEFORMATEX*)CxbxMalloc(sizeof(WAVEFORMATEX)/*+pdsbd->lpwfxFormat->cbSize*/);
|
||||
// pDSBufferDesc->lpwfxFormat = (WAVEFORMATEX*)g_MemoryManager.Allocate(sizeof(WAVEFORMATEX)/*+pdsbd->lpwfxFormat->cbSize*/);
|
||||
|
||||
//// pDSBufferDesc->lpwfxFormat->cbSize = sizeof( WAVEFORMATEX );
|
||||
// pDSBufferDesc->lpwfxFormat->nChannels = 1;
|
||||
|
@ -1216,9 +1217,9 @@ ULONG WINAPI XTL::EMUPATCH(IDirectSoundBuffer_Release)
|
|||
}
|
||||
|
||||
if(pThis->EmuBufferDesc->lpwfxFormat != NULL)
|
||||
CxbxFree(pThis->EmuBufferDesc->lpwfxFormat);
|
||||
g_MemoryManager.Free(pThis->EmuBufferDesc->lpwfxFormat);
|
||||
|
||||
CxbxFree(pThis->EmuBufferDesc);
|
||||
g_MemoryManager.Free(pThis->EmuBufferDesc);
|
||||
|
||||
delete pThis;
|
||||
}
|
||||
|
@ -1562,7 +1563,7 @@ HRESULT WINAPI XTL::EMUPATCH(DirectSoundCreateStream)
|
|||
// TODO: Garbage Collection
|
||||
*ppStream = new X_CDirectSoundStream();
|
||||
|
||||
DSBUFFERDESC *pDSBufferDesc = (DSBUFFERDESC*)CxbxMalloc(sizeof(DSBUFFERDESC));
|
||||
DSBUFFERDESC *pDSBufferDesc = (DSBUFFERDESC*)g_MemoryManager.Allocate(sizeof(DSBUFFERDESC));
|
||||
|
||||
// convert from Xbox to PC DSound
|
||||
{
|
||||
|
@ -1580,7 +1581,7 @@ HRESULT WINAPI XTL::EMUPATCH(DirectSoundCreateStream)
|
|||
|
||||
if(pdssd->lpwfxFormat != NULL)
|
||||
{
|
||||
pDSBufferDesc->lpwfxFormat = (WAVEFORMATEX*)CxbxMalloc(sizeof(WAVEFORMATEX));
|
||||
pDSBufferDesc->lpwfxFormat = (WAVEFORMATEX*)g_MemoryManager.Allocate(sizeof(WAVEFORMATEX));
|
||||
memcpy(pDSBufferDesc->lpwfxFormat, pdssd->lpwfxFormat, sizeof(WAVEFORMATEX));
|
||||
}
|
||||
|
||||
|
@ -1830,9 +1831,9 @@ ULONG WINAPI XTL::EMUPATCH(DirectSound_CDirectSoundStream_Release)
|
|||
}
|
||||
|
||||
if(pThis->EmuBufferDesc->lpwfxFormat != NULL)
|
||||
CxbxFree(pThis->EmuBufferDesc->lpwfxFormat);
|
||||
g_MemoryManager.Free(pThis->EmuBufferDesc->lpwfxFormat);
|
||||
|
||||
CxbxFree(pThis->EmuBufferDesc);
|
||||
g_MemoryManager.Free(pThis->EmuBufferDesc);
|
||||
|
||||
delete pThis;
|
||||
}
|
||||
|
@ -3652,7 +3653,7 @@ HRESULT WINAPI XTL::EMUPATCH(IDirectSound_GetEffectData)
|
|||
|
||||
// TODO: Implement
|
||||
if( !pvData )
|
||||
pvData = CxbxMalloc( dwDataSize );
|
||||
pvData = g_MemoryManager.Allocate( dwDataSize );
|
||||
|
||||
|
||||
|
||||
|
@ -3692,7 +3693,7 @@ HRESULT WINAPI XTL::EMUPATCH(IDirectSoundBuffer_SetNotificationPositions)
|
|||
{
|
||||
if( pThis->EmuDirectSoundBuffer8 )
|
||||
{
|
||||
hr = pThis->EmuDirectSoundBuffer8->QueryInterface( IID_IDirectSoundNotify, (LPVOID*) pNotify );
|
||||
hr = pThis->EmuDirectSoundBuffer8->QueryInterface( IID_IDirectSoundNotify, (LPVOID*) &pNotify );
|
||||
if( SUCCEEDED( hr ) && pNotify != nullptr )
|
||||
{
|
||||
hr = pNotify->SetNotificationPositions( dwNotifyCount, paNotifies );
|
||||
|
|
|
@ -46,6 +46,7 @@ namespace xboxkrnl
|
|||
#include "EmuFS.h"
|
||||
#include "EmuAlloc.h" // For CxbxCalloc()
|
||||
#include "CxbxKrnl.h"
|
||||
#include "MemoryManager.h"
|
||||
|
||||
#undef FIELD_OFFSET // prevent macro redefinition warnings
|
||||
#include <windows.h>
|
||||
|
@ -397,7 +398,7 @@ void EmuGenerateFS(Xbe::TLS *pTLS, void *pTLSData)
|
|||
uint32 dwCopySize = pTLS->dwDataEndAddr - pTLS->dwDataStartAddr;
|
||||
uint32 dwZeroSize = pTLS->dwSizeofZeroFill;
|
||||
|
||||
pNewTLS = CxbxCalloc(1, dwCopySize + dwZeroSize + 0x100 /* + HACK: extra safety padding 0x100*/);
|
||||
pNewTLS = g_MemoryManager.AllocateZeroed(1, dwCopySize + dwZeroSize + 0x100 /* + HACK: extra safety padding 0x100*/);
|
||||
|
||||
memcpy(pNewTLS, pTLSData, dwCopySize);
|
||||
|
||||
|
@ -438,7 +439,7 @@ void EmuGenerateFS(Xbe::TLS *pTLS, void *pTLSData)
|
|||
}
|
||||
|
||||
// Allocate the xbox KPCR structure
|
||||
xboxkrnl::KPCR *NewPcr = (xboxkrnl::KPCR*)CxbxCalloc(1, sizeof(xboxkrnl::KPCR));
|
||||
xboxkrnl::KPCR *NewPcr = (xboxkrnl::KPCR*)g_MemoryManager.AllocateZeroed(1, sizeof(xboxkrnl::KPCR));
|
||||
xboxkrnl::NT_TIB *XbTib = &(NewPcr->NtTib);
|
||||
xboxkrnl::PKPRCB Prcb = &(NewPcr->PrcbData);
|
||||
// Note : As explained above (at EmuKeSetPcr), Cxbx cannot allocate one NT_TIB and KPRCB
|
||||
|
@ -480,7 +481,7 @@ void EmuGenerateFS(Xbe::TLS *pTLS, void *pTLSData)
|
|||
|
||||
// Initialize a fake PrcbData.CurrentThread
|
||||
{
|
||||
xboxkrnl::ETHREAD *EThread = (xboxkrnl::ETHREAD*)CxbxCalloc(1, sizeof(xboxkrnl::ETHREAD)); // Clear, to prevent side-effects on random contents
|
||||
xboxkrnl::ETHREAD *EThread = (xboxkrnl::ETHREAD*)g_MemoryManager.AllocateZeroed(1, sizeof(xboxkrnl::ETHREAD)); // Clear, to prevent side-effects on random contents
|
||||
|
||||
EThread->Tcb.TlsData = pNewTLS;
|
||||
EThread->UniqueThread = GetCurrentThreadId();
|
||||
|
|
|
@ -47,6 +47,7 @@
|
|||
#pragma warning(default:4005)
|
||||
#include "CxbxKrnl.h"
|
||||
#include "EmuAlloc.h"
|
||||
#include "MemoryManager.h"
|
||||
//#include "Logging.h" // For hex4()
|
||||
|
||||
|
||||
|
@ -570,7 +571,7 @@ EmuNtSymbolicLinkObject* FindNtSymbolicLinkObjectByRootHandle(const HANDLE Handl
|
|||
void _CxbxPVOIDDeleter(PVOID *ptr)
|
||||
{
|
||||
if (*ptr)
|
||||
CxbxFree(*ptr);
|
||||
g_MemoryManager.Free(*ptr);
|
||||
}
|
||||
|
||||
// ----------------------------------------------------------------------------
|
||||
|
@ -588,7 +589,7 @@ NtDll::FILE_LINK_INFORMATION * _XboxToNTLinkInfo(xboxkrnl::FILE_LINK_INFORMATION
|
|||
|
||||
// Build the native FILE_LINK_INFORMATION struct
|
||||
*Length = sizeof(NtDll::FILE_LINK_INFORMATION) + convertedFileName.size() * sizeof(wchar_t);
|
||||
NtDll::FILE_LINK_INFORMATION *ntLinkInfo = (NtDll::FILE_LINK_INFORMATION *) CxbxCalloc(1, *Length);
|
||||
NtDll::FILE_LINK_INFORMATION *ntLinkInfo = (NtDll::FILE_LINK_INFORMATION *) g_MemoryManager.AllocateZeroed(1, *Length);
|
||||
ntLinkInfo->ReplaceIfExists = xboxLinkInfo->ReplaceIfExists;
|
||||
ntLinkInfo->RootDirectory = RootDirectory;
|
||||
ntLinkInfo->FileNameLength = convertedFileName.size() * sizeof(wchar_t);
|
||||
|
@ -608,7 +609,7 @@ NtDll::FILE_RENAME_INFORMATION * _XboxToNTRenameInfo(xboxkrnl::FILE_RENAME_INFOR
|
|||
|
||||
// Build the native FILE_RENAME_INFORMATION struct
|
||||
*Length = sizeof(NtDll::FILE_RENAME_INFORMATION) + convertedFileName.size() * sizeof(wchar_t);
|
||||
NtDll::FILE_RENAME_INFORMATION *ntRenameInfo = (NtDll::FILE_RENAME_INFORMATION *) CxbxCalloc(1, *Length);
|
||||
NtDll::FILE_RENAME_INFORMATION *ntRenameInfo = (NtDll::FILE_RENAME_INFORMATION *) g_MemoryManager.AllocateZeroed(1, *Length);
|
||||
ntRenameInfo->ReplaceIfExists = xboxRenameInfo->ReplaceIfExists;
|
||||
ntRenameInfo->RootDirectory = RootDirectory;
|
||||
ntRenameInfo->FileNameLength = convertedFileName.size() * sizeof(wchar_t);
|
||||
|
|
|
@ -45,6 +45,7 @@ namespace xboxkrnl
|
|||
|
||||
#include "Logging.h" // For LOG_FUNC()
|
||||
#include "EmuKrnlLogging.h"
|
||||
#include "MemoryManager.h"
|
||||
|
||||
// prevent name collisions
|
||||
namespace NtDll
|
||||
|
@ -53,7 +54,7 @@ namespace NtDll
|
|||
};
|
||||
|
||||
#include "Emu.h" // For EmuWarning()
|
||||
#include "EmuAlloc.h" // For CxbxFree(), CxbxMalloc(), etc.
|
||||
#include "EmuAlloc.h" // For CxbxFree(), g_MemoryManager.Allocate(), etc.
|
||||
|
||||
// Global Variable(s)
|
||||
PVOID g_pPersistedData = NULL;
|
||||
|
@ -88,11 +89,11 @@ XBSYSAPI EXPORTNUM(1) xboxkrnl::PVOID NTAPI xboxkrnl::AvGetSavedDataAddress(void
|
|||
|
||||
if (g_pPersistedData)
|
||||
{
|
||||
CxbxFree(g_pPersistedData);
|
||||
g_MemoryManager.Free(g_pPersistedData);
|
||||
g_pPersistedData = NULL;
|
||||
}
|
||||
|
||||
g_pPersistedData = CxbxMalloc(640 * 480 * 4);
|
||||
g_pPersistedData = g_MemoryManager.Allocate(640 * 480 * 4);
|
||||
|
||||
#if 0
|
||||
// Get a copy of the front buffer
|
||||
|
@ -115,7 +116,7 @@ XBSYSAPI EXPORTNUM(1) xboxkrnl::PVOID NTAPI xboxkrnl::AvGetSavedDataAddress(void
|
|||
FILE* fp = fopen( "PersistedSurface.bin", "rb" );
|
||||
fseek( fp, 0, SEEK_END );
|
||||
long size = ftell( fp );
|
||||
g_pPersistedData = malloc( size );
|
||||
g_pPersistedData = g_MemoryManager.Allocate( size );
|
||||
fread( g_pPersistedData, size, 1, fp );
|
||||
fclose(fp);
|
||||
}*/
|
||||
|
|
|
@ -46,6 +46,7 @@ namespace xboxkrnl
|
|||
#include "Logging.h" // For LOG_FUNC()
|
||||
#include "EmuEEPROM.h" // For EmuFindEEPROMInfo, EEPROM, XboxFactoryGameRegion
|
||||
#include "EmuKrnlLogging.h"
|
||||
#include "MemoryManager.h"
|
||||
|
||||
// prevent name collisions
|
||||
namespace NtDll
|
||||
|
@ -126,7 +127,7 @@ XBSYSAPI EXPORTNUM(15) xboxkrnl::PVOID NTAPI xboxkrnl::ExAllocatePoolWithTag
|
|||
LOG_FUNC_ARG(Tag)
|
||||
LOG_FUNC_END;
|
||||
|
||||
PVOID pRet = CxbxCalloc(1, NumberOfBytes); // Clear, to prevent side-effects on random contents
|
||||
PVOID pRet = g_MemoryManager.AllocateZeroed(1, NumberOfBytes); // Clear, to prevent side-effects on random contents
|
||||
|
||||
LOG_INCOMPLETE(); // TODO : Actually implement ExAllocatePoolWithTag
|
||||
|
||||
|
@ -157,7 +158,7 @@ XBSYSAPI EXPORTNUM(17) xboxkrnl::VOID NTAPI xboxkrnl::ExFreePool
|
|||
{
|
||||
LOG_FUNC_ONE_ARG(P);
|
||||
|
||||
CxbxFree(P);
|
||||
g_MemoryManager.Free(P);
|
||||
}
|
||||
|
||||
// ******************************************************************
|
||||
|
|
|
@ -48,8 +48,9 @@ namespace xboxkrnl
|
|||
#include "EmuKrnlLogging.h"
|
||||
#include "CxbxKrnl.h" // For CxbxKrnlCleanup
|
||||
#include "Emu.h" // For EmuWarning()
|
||||
#include "EmuAlloc.h" // For CxbxFree(), CxbxMalloc(), etc.
|
||||
#include "EmuAlloc.h" // For CxbxFree(), g_MemoryManager.Allocate(), etc.
|
||||
#include "ResourceTracker.h" // For g_AlignCache
|
||||
#include "MemoryManager.h"
|
||||
|
||||
// prevent name collisions
|
||||
namespace NtDll
|
||||
|
@ -131,22 +132,8 @@ XBSYSAPI EXPORTNUM(166) xboxkrnl::PVOID NTAPI xboxkrnl::MmAllocateContiguousMemo
|
|||
// Allocate when input arguments are valid
|
||||
if (pRet != NULL)
|
||||
{
|
||||
//
|
||||
// NOTE: Kludgey (but necessary) solution:
|
||||
//
|
||||
// Since this memory must be aligned on a page boundary, we must allocate an extra page
|
||||
// so that we can return a valid page aligned pointer
|
||||
//
|
||||
|
||||
// TODO : Allocate differently if(ProtectionType & PAGE_WRITECOMBINE)
|
||||
pRet = CxbxMalloc(NumberOfBytes + Alignment);
|
||||
|
||||
// align to page boundary
|
||||
DWORD dwRet = (DWORD)pRet;
|
||||
|
||||
dwRet += Alignment - dwRet % Alignment;
|
||||
g_AlignCache.insert(dwRet, pRet);
|
||||
pRet = (PVOID)dwRet;
|
||||
pRet = g_MemoryManager.AllocateContiguous(NumberOfBytes, Alignment);
|
||||
}
|
||||
|
||||
RETURN(pRet);
|
||||
|
@ -167,7 +154,7 @@ XBSYSAPI EXPORTNUM(167) xboxkrnl::PVOID NTAPI xboxkrnl::MmAllocateSystemMemory
|
|||
LOG_FUNC_END;
|
||||
|
||||
// TODO: should this be aligned?
|
||||
PVOID pRet = CxbxMalloc(NumberOfBytes);
|
||||
PVOID pRet = g_MemoryManager.Allocate(NumberOfBytes);
|
||||
|
||||
RETURN(pRet);
|
||||
}
|
||||
|
@ -296,32 +283,18 @@ XBSYSAPI EXPORTNUM(171) xboxkrnl::VOID NTAPI xboxkrnl::MmFreeContiguousMemory
|
|||
{
|
||||
LOG_FUNC_ONE_ARG(BaseAddress);
|
||||
|
||||
PVOID OrigBaseAddress = BaseAddress;
|
||||
|
||||
if (g_AlignCache.exists(BaseAddress))
|
||||
{
|
||||
OrigBaseAddress = g_AlignCache.get(BaseAddress);
|
||||
g_AlignCache.remove(BaseAddress);
|
||||
}
|
||||
|
||||
if (OrigBaseAddress == &DefaultLaunchDataPage)
|
||||
{
|
||||
if (BaseAddress == &DefaultLaunchDataPage) {
|
||||
DbgPrintf("Ignored MmFreeContiguousMemory(&DefaultLaunchDataPage)\n");
|
||||
LOG_IGNORED();
|
||||
}
|
||||
else
|
||||
{
|
||||
// TODO : Free PAGE_WRITECOMBINE differently
|
||||
if (OrigBaseAddress == LaunchDataPage)
|
||||
DbgPrintf("MmFreeContiguousMemory detected a free of LaunchDataPage\n");
|
||||
|
||||
CxbxFree(OrigBaseAddress);
|
||||
return;
|
||||
}
|
||||
|
||||
// TODO -oDxbx: Sokoban crashes after this, at reset time (press Black + White to hit this).
|
||||
// Tracing in assembly shows the crash takes place quite a while further, so it's probably
|
||||
// not related to this call per-se. The strangest thing is, that if we let the debugger step
|
||||
// all the way through, the crash doesn't occur. Adding a Sleep(100) here doesn't help though.
|
||||
g_MemoryManager.Free(BaseAddress);
|
||||
|
||||
// TODO -oDxbx: Sokoban crashes after this, at reset time (press Black + White to hit this).
|
||||
// Tracing in assembly shows the crash takes place quite a while further, so it's probably
|
||||
// not related to this call per-se. The strangest thing is, that if we let the debugger step
|
||||
// all the way through, the crash doesn't occur. Adding a Sleep(100) here doesn't help though.
|
||||
}
|
||||
|
||||
// ******************************************************************
|
||||
|
@ -338,7 +311,7 @@ XBSYSAPI EXPORTNUM(172) xboxkrnl::NTSTATUS NTAPI xboxkrnl::MmFreeSystemMemory
|
|||
LOG_FUNC_ARG(NumberOfBytes)
|
||||
LOG_FUNC_END;
|
||||
|
||||
CxbxFree(BaseAddress);
|
||||
g_MemoryManager.Free(BaseAddress);
|
||||
|
||||
RETURN(STATUS_SUCCESS);
|
||||
}
|
||||
|
@ -440,7 +413,7 @@ XBSYSAPI EXPORTNUM(177) xboxkrnl::PVOID NTAPI xboxkrnl::MmMapIoSpace
|
|||
LOG_FUNC_END;
|
||||
|
||||
// TODO: should this be aligned?
|
||||
PVOID pRet = CxbxMalloc(NumberOfBytes);
|
||||
PVOID pRet = g_MemoryManager.Allocate(NumberOfBytes);
|
||||
LOG_INCOMPLETE();
|
||||
|
||||
RETURN(pRet);
|
||||
|
@ -512,8 +485,10 @@ XBSYSAPI EXPORTNUM(179) xboxkrnl::ULONG NTAPI xboxkrnl::MmQueryAddressProtect
|
|||
|
||||
// Assume read/write when page is allocated :
|
||||
ULONG Result = PAGE_NOACCESS;
|
||||
if (EmuCheckAllocationSize(VirtualAddress, false))
|
||||
|
||||
if (g_MemoryManager.IsAllocated(VirtualAddress)) {
|
||||
Result = PAGE_READWRITE;
|
||||
}
|
||||
|
||||
LOG_INCOMPLETE(); // TODO : Improve the MmQueryAddressProtect implementation
|
||||
|
||||
|
@ -532,7 +507,7 @@ XBSYSAPI EXPORTNUM(180) xboxkrnl::ULONG NTAPI xboxkrnl::MmQueryAllocationSize
|
|||
|
||||
LOG_INCOMPLETE(); // TODO : Free PAGE_WRITECOMBINE differently
|
||||
|
||||
ULONG uiSize = EmuCheckAllocationSize(BaseAddress, false);
|
||||
ULONG uiSize = g_MemoryManager.QueryAllocationSize(BaseAddress);
|
||||
|
||||
RETURN(uiSize);
|
||||
}
|
||||
|
@ -634,7 +609,7 @@ XBSYSAPI EXPORTNUM(183) xboxkrnl::NTSTATUS NTAPI xboxkrnl::MmUnmapIoSpace
|
|||
LOG_FUNC_ARG(NumberOfBytes)
|
||||
LOG_FUNC_END;
|
||||
|
||||
CxbxFree(BaseAddress);
|
||||
g_MemoryManager.Free(BaseAddress);
|
||||
LOG_INCOMPLETE();
|
||||
|
||||
RETURN(STATUS_SUCCESS);
|
||||
|
|
|
@ -55,7 +55,8 @@ namespace NtDll
|
|||
#include "CxbxKrnl.h" // For CxbxKrnlCleanup
|
||||
#include "Emu.h" // For EmuWarning()
|
||||
#include "EmuFile.h" // For EmuNtSymbolicLinkObject, NtStatusToString(), etc.
|
||||
#include "EmuAlloc.h" // For CxbxFree(), CxbxMalloc(), etc.
|
||||
#include "EmuAlloc.h" // For CxbxFree(), g_MemoryManager.Allocate(), etc.
|
||||
#include "MemoryManager.h"
|
||||
|
||||
#pragma warning(disable:4005) // Ignore redefined status values
|
||||
#include <ntstatus.h>
|
||||
|
@ -985,7 +986,7 @@ XBSYSAPI EXPORTNUM(207) xboxkrnl::NTSTATUS NTAPI xboxkrnl::NtQueryDirectoryFile
|
|||
}
|
||||
|
||||
NtDll::FILE_DIRECTORY_INFORMATION *NtFileDirInfo =
|
||||
(NtDll::FILE_DIRECTORY_INFORMATION *) CxbxMalloc(NtFileDirectoryInformationSize + NtPathBufferSize);
|
||||
(NtDll::FILE_DIRECTORY_INFORMATION *) g_MemoryManager.Allocate(NtFileDirectoryInformationSize + NtPathBufferSize);
|
||||
|
||||
// Short-hand pointer to Nt filename :
|
||||
wchar_t *wcstr = NtFileDirInfo->FileName;
|
||||
|
@ -1024,7 +1025,7 @@ XBSYSAPI EXPORTNUM(207) xboxkrnl::NTSTATUS NTAPI xboxkrnl::NtQueryDirectoryFile
|
|||
}
|
||||
|
||||
// TODO: Cache the last search result for quicker access with CreateFile (xbox does this internally!)
|
||||
CxbxFree(NtFileDirInfo);
|
||||
g_MemoryManager.Free(NtFileDirInfo);
|
||||
|
||||
RETURN(ret);
|
||||
}
|
||||
|
@ -1122,7 +1123,7 @@ XBSYSAPI EXPORTNUM(211) xboxkrnl::NTSTATUS NTAPI xboxkrnl::NtQueryInformationFil
|
|||
// We need to retry the operation in case the buffer is too small to fit the data
|
||||
do
|
||||
{
|
||||
ntFileInfo = CxbxMalloc(bufferSize);
|
||||
ntFileInfo = g_MemoryManager.Allocate(bufferSize);
|
||||
|
||||
ret = NtDll::NtQueryInformationFile(
|
||||
FileHandle,
|
||||
|
@ -1134,14 +1135,14 @@ XBSYSAPI EXPORTNUM(211) xboxkrnl::NTSTATUS NTAPI xboxkrnl::NtQueryInformationFil
|
|||
// Buffer is too small; make a larger one
|
||||
if (ret == STATUS_BUFFER_OVERFLOW)
|
||||
{
|
||||
CxbxFree(ntFileInfo);
|
||||
g_MemoryManager.Free(ntFileInfo);
|
||||
|
||||
bufferSize *= 2;
|
||||
// Bail out if the buffer gets too big
|
||||
if (bufferSize > 65536)
|
||||
return STATUS_INVALID_PARAMETER; // TODO: what's the appropriate error code to return here?
|
||||
|
||||
ntFileInfo = CxbxMalloc(bufferSize);
|
||||
ntFileInfo = g_MemoryManager.Allocate(bufferSize);
|
||||
}
|
||||
} while (ret == STATUS_BUFFER_OVERFLOW);
|
||||
|
||||
|
@ -1149,7 +1150,7 @@ XBSYSAPI EXPORTNUM(211) xboxkrnl::NTSTATUS NTAPI xboxkrnl::NtQueryInformationFil
|
|||
NTSTATUS convRet = NTToXboxFileInformation(ntFileInfo, FileInformation, FileInformationClass, Length);
|
||||
|
||||
// Make sure to free the memory first
|
||||
CxbxFree(ntFileInfo);
|
||||
g_MemoryManager.Free(ntFileInfo);
|
||||
|
||||
if (FAILED(ret))
|
||||
EmuWarning("NtQueryInformationFile failed! (0x%.08X)", ret);
|
||||
|
|
|
@ -43,11 +43,15 @@ namespace xboxkrnl
|
|||
#include <xboxkrnl/xboxkrnl.h> // For XboxEEPROMKey, etc.
|
||||
};
|
||||
|
||||
// Certificate Key
|
||||
// Not exported but used to generate per-title keys
|
||||
xboxkrnl::XBOX_KEY_DATA xboxkrnl::XboxCertificateKey = { 0 };
|
||||
|
||||
// ******************************************************************
|
||||
// * 0x0141 - XboxEEPROMKey
|
||||
// ******************************************************************
|
||||
// TODO : What should we initialize this to?
|
||||
XBSYSAPI EXPORTNUM(321) xboxkrnl::XBOX_KEY_DATA xboxkrnl::XboxEEPROMKey = {};
|
||||
XBSYSAPI EXPORTNUM(321) xboxkrnl::XBOX_KEY_DATA xboxkrnl::XboxEEPROMKey = { 0 };
|
||||
|
||||
// ******************************************************************
|
||||
// * 0x0142 - XboxHardwareInfo
|
||||
|
@ -61,13 +65,7 @@ XBSYSAPI EXPORTNUM(322) xboxkrnl::XBOX_HARDWARE_INFO xboxkrnl::XboxHardwareInfo
|
|||
// ******************************************************************
|
||||
// * 0x0143 - XboxHDKey
|
||||
// ******************************************************************
|
||||
XBSYSAPI EXPORTNUM(323) xboxkrnl::UCHAR xboxkrnl::XboxHDKey[16] =
|
||||
{
|
||||
0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00,
|
||||
};
|
||||
XBSYSAPI EXPORTNUM(323) xboxkrnl::XBOX_KEY_DATA xboxkrnl::XboxHDKey = { 0 };
|
||||
|
||||
// ******************************************************************
|
||||
// * 0x0144 - XboxKrnlVersion
|
||||
|
@ -81,23 +79,23 @@ XBSYSAPI EXPORTNUM(324) xboxkrnl::XBOX_KRNL_VERSION xboxkrnl::XboxKrnlVersion =
|
|||
|
||||
// ******************************************************************
|
||||
// * 0x0145 - XboxSignatureKey
|
||||
// Generated in SetupPerTitleKeys() using the Certificate Key and the
|
||||
// XBE's Signature Key
|
||||
// ******************************************************************
|
||||
XBSYSAPI EXPORTNUM(325) xboxkrnl::BYTE xboxkrnl::XboxSignatureKey[16] =
|
||||
{
|
||||
// cxbx default saved game key
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
|
||||
};
|
||||
XBSYSAPI EXPORTNUM(325) xboxkrnl::XBOX_KEY_DATA xboxkrnl::XboxSignatureKey = { 0 };
|
||||
|
||||
// ******************************************************************
|
||||
// * 0x0161 - XboxLANKey
|
||||
// Generated in SetupPerTitleKeys() using the Certificate Key and the
|
||||
// XBE's LAN Key
|
||||
// ******************************************************************
|
||||
// TODO : What should we initialize this to?
|
||||
XBSYSAPI EXPORTNUM(353) xboxkrnl::XBOX_KEY_DATA xboxkrnl::XboxLANKey = {};
|
||||
XBSYSAPI EXPORTNUM(353) xboxkrnl::XBOX_KEY_DATA xboxkrnl::XboxLANKey = { 0 };
|
||||
|
||||
// ******************************************************************
|
||||
// * 0x0162 - XboxAlternateSignatureKeys
|
||||
// Generated in SetupPerTitleKeys() using the Certificate Key and the
|
||||
// XBE's Alternate Signature Keys Key
|
||||
// ******************************************************************
|
||||
// TODO : What should we initialize this to?
|
||||
XBSYSAPI EXPORTNUM(354) xboxkrnl::XBOX_KEY_DATA xboxkrnl::XboxAlternateSignatureKeys = {};
|
||||
XBSYSAPI EXPORTNUM(354) xboxkrnl::XBOX_KEY_DATA xboxkrnl::XboxAlternateSignatureKeys[ALTERNATE_SIGNATURE_COUNT] = { 0 };
|
||||
|
||||
|
|
@ -49,6 +49,7 @@ namespace xboxkrnl
|
|||
#include "EmuShared.h"
|
||||
#include "EmuAlloc.h"
|
||||
#include "EmuXTL.h"
|
||||
#include "MemoryManager.h"
|
||||
|
||||
#include <mmreg.h>
|
||||
#include <msacm.h>
|
||||
|
@ -78,7 +79,7 @@ HRESULT WINAPI XTL::EMUPATCH(XACTEngineCreate)
|
|||
|
||||
// TODO: Any other form of initialization?
|
||||
|
||||
*ppEngine = (X_XACTEngine*) CxbxCalloc(1, sizeof( X_XACTEngine ) );
|
||||
*ppEngine = (X_XACTEngine*)g_MemoryManager.AllocateZeroed(1, sizeof( X_XACTEngine ) );
|
||||
|
||||
|
||||
|
||||
|
@ -122,7 +123,7 @@ HRESULT WINAPI XTL::EMUPATCH(IXACTEngine_RegisterWaveBank)
|
|||
|
||||
// TODO: Implement
|
||||
|
||||
*ppWaveBank = (X_XACTWaveBank*) CxbxCalloc(1, sizeof( X_XACTWaveBank ) );
|
||||
*ppWaveBank = (X_XACTWaveBank*)g_MemoryManager.AllocateZeroed(1, sizeof( X_XACTWaveBank ) );
|
||||
|
||||
RETURN(S_OK);
|
||||
}
|
||||
|
@ -145,7 +146,7 @@ HRESULT WINAPI XTL::EMUPATCH(IXACTEngine_RegisterStreamedWaveBank)
|
|||
|
||||
// TODO: Implement
|
||||
|
||||
*ppWaveBank = (X_XACTWaveBank*) CxbxCalloc(1, sizeof( X_XACTWaveBank ) );
|
||||
*ppWaveBank = (X_XACTWaveBank*)g_MemoryManager.AllocateZeroed(1, sizeof( X_XACTWaveBank ) );
|
||||
|
||||
RETURN(S_OK);
|
||||
}
|
||||
|
@ -170,7 +171,7 @@ HRESULT WINAPI XTL::EMUPATCH(IXACTEngine_CreateSoundBank)
|
|||
|
||||
// TODO: Implement
|
||||
|
||||
*ppSoundBank = (X_XACTSoundBank*) CxbxCalloc(1, sizeof( X_XACTSoundBank ) );
|
||||
*ppSoundBank = (X_XACTSoundBank*)g_MemoryManager.AllocateZeroed(1, sizeof( X_XACTSoundBank ) );
|
||||
|
||||
RETURN(S_OK);
|
||||
}
|
||||
|
@ -216,7 +217,7 @@ HRESULT WINAPI XTL::EMUPATCH(IXACTEngine_CreateSoundSource)
|
|||
LOG_FUNC_ARG(ppSoundSource)
|
||||
LOG_FUNC_END;
|
||||
|
||||
*ppSoundSource = (X_XACTSoundSource*) CxbxCalloc(1, sizeof( X_XACTSoundSource ) );
|
||||
*ppSoundSource = (X_XACTSoundSource*)g_MemoryManager.AllocateZeroed(1, sizeof( X_XACTSoundSource ) );
|
||||
|
||||
RETURN(S_OK);
|
||||
}
|
||||
|
@ -513,7 +514,7 @@ HRESULT WINAPI XTL::EMUPATCH(IXACTEngine_UnRegisterWaveBank)
|
|||
// to IXACTWaveBank is released.
|
||||
|
||||
// if(pWaveBank)
|
||||
// free(pWaveBank);
|
||||
// g_MemoryManager.Free(pWaveBank);
|
||||
|
||||
RETURN(S_OK);
|
||||
}
|
|
@ -64,6 +64,7 @@ const char *Lib_XONLINES = "XONLINES";
|
|||
#include "HLEDataBase/Xapi.1.0.4432.inl"
|
||||
#include "HLEDataBase/Xapi.1.0.4627.inl"
|
||||
#include "HLEDataBase/Xapi.1.0.4721.inl"
|
||||
#include "HLEDataBase/Xapi.1.0.5028.inl"
|
||||
#include "HLEDataBase/Xapi.1.0.5233.inl"
|
||||
#include "HLEDataBase/Xapi.1.0.5344.inl"
|
||||
#include "HLEDataBase/Xapi.1.0.5558.inl"
|
||||
|
@ -75,6 +76,7 @@ const char *Lib_XONLINES = "XONLINES";
|
|||
#include "HLEDataBase/D3D8.1.0.4361.inl"
|
||||
#include "HLEDataBase/D3D8.1.0.4432.inl"
|
||||
#include "HLEDataBase/D3D8.1.0.4627.inl"
|
||||
#include "HLEDataBase/D3D8.1.0.5028.inl"
|
||||
#include "HLEDataBase/D3D8.1.0.5233.inl"
|
||||
#include "HLEDataBase/D3D8.1.0.5344.inl"
|
||||
#include "HLEDataBase/D3D8.1.0.5558.inl"
|
||||
|
@ -86,6 +88,7 @@ const char *Lib_XONLINES = "XONLINES";
|
|||
#include "HLEDataBase/DSound.1.0.4361.inl"
|
||||
#include "HLEDataBase/DSound.1.0.4432.inl"
|
||||
#include "HLEDataBase/DSound.1.0.4627.inl"
|
||||
#include "HLEDataBase/DSound.1.0.5028.inl"
|
||||
#include "HLEDataBase/DSound.1.0.5233.inl"
|
||||
#include "HLEDataBase/DSound.1.0.5344.inl"
|
||||
#include "HLEDataBase/DSound.1.0.5558.inl"
|
||||
|
@ -96,6 +99,7 @@ const char *Lib_XONLINES = "XONLINES";
|
|||
#include "HLEDataBase/XG.1.0.4361.inl"
|
||||
#include "HLEDataBase/XG.1.0.4432.inl"
|
||||
#include "HLEDataBase/XG.1.0.4627.inl"
|
||||
#include "HLEDataBase/XG.1.0.5028.inl"
|
||||
#include "HLEDataBase/XG.1.0.5233.inl"
|
||||
#include "HLEDataBase/XG.1.0.5344.inl"
|
||||
#include "HLEDataBase/XG.1.0.5558.inl"
|
||||
|
@ -105,6 +109,7 @@ const char *Lib_XONLINES = "XONLINES";
|
|||
#include "HLEDataBase/XNet.1.0.4627.inl"
|
||||
#include "HLEDataBase/XOnline.1.0.4361.inl"
|
||||
#include "HLEDataBase/XOnline.1.0.4627.inl"
|
||||
#include "HLEDataBase/XOnline.1.0.5028.inl"
|
||||
#include "HLEDataBase/XOnline.1.0.5233.inl"
|
||||
#include "HLEDataBase/XOnline.1.0.5344.inl"
|
||||
#include "HLEDataBase/XOnline.1.0.5558.inl"
|
||||
|
@ -130,6 +135,7 @@ const HLEData HLEDataBase[] =
|
|||
HLE_ENTRY(Lib_XAPILIB, XAPI, 4432),
|
||||
HLE_ENTRY(Lib_XAPILIB, XAPI, 4627),
|
||||
HLE_ENTRY(Lib_XAPILIB, XAPI, 4721),
|
||||
HLE_ENTRY(Lib_XAPILIB, XAPI, 5028),
|
||||
HLE_ENTRY(Lib_XAPILIB, XAPI, 5233),
|
||||
HLE_ENTRY(Lib_XAPILIB, XAPI, 5344),
|
||||
HLE_ENTRY(Lib_XAPILIB, XAPI, 5558),
|
||||
|
@ -142,6 +148,7 @@ const HLEData HLEDataBase[] =
|
|||
HLE_ENTRY(Lib_D3D8, D3D8, 4361),
|
||||
HLE_ENTRY(Lib_D3D8, D3D8, 4432),
|
||||
HLE_ENTRY(Lib_D3D8, D3D8, 4627),
|
||||
HLE_ENTRY(Lib_D3D8, D3D8, 5028),
|
||||
HLE_ENTRY(Lib_D3D8, D3D8, 5233),
|
||||
HLE_ENTRY(Lib_D3D8, D3D8, 5344),
|
||||
HLE_ENTRY(Lib_D3D8, D3D8, 5558),
|
||||
|
@ -155,6 +162,7 @@ const HLEData HLEDataBase[] =
|
|||
HLE_ENTRY(Lib_DSOUND, DSound, 4361),
|
||||
HLE_ENTRY(Lib_DSOUND, DSound, 4432),
|
||||
HLE_ENTRY(Lib_DSOUND, DSound, 4627),
|
||||
HLE_ENTRY(Lib_DSOUND, DSound, 5028),
|
||||
HLE_ENTRY(Lib_DSOUND, DSound, 5233),
|
||||
HLE_ENTRY(Lib_DSOUND, DSound, 5344),
|
||||
HLE_ENTRY(Lib_DSOUND, DSound, 5558),
|
||||
|
@ -166,6 +174,7 @@ const HLEData HLEDataBase[] =
|
|||
HLE_ENTRY(Lib_XGRAPHC, XG, 4361),
|
||||
HLE_ENTRY(Lib_XGRAPHC, XG, 4432),
|
||||
HLE_ENTRY(Lib_XGRAPHC, XG, 4627),
|
||||
HLE_ENTRY(Lib_XGRAPHC, XG, 5028),
|
||||
HLE_ENTRY(Lib_XGRAPHC, XG, 5233),
|
||||
HLE_ENTRY(Lib_XGRAPHC, XG, 5344),
|
||||
HLE_ENTRY(Lib_XGRAPHC, XG, 5558),
|
||||
|
@ -179,6 +188,7 @@ const HLEData HLEDataBase[] =
|
|||
|
||||
// TODO: Verify differences between XONLINE and XONLINES (if any)
|
||||
HLE_ENTRY(Lib_XONLINES, XOnline, 4627),
|
||||
HLE_ENTRY(Lib_XONLINES, XOnline, 5028),
|
||||
HLE_ENTRY(Lib_XONLINES, XOnline, 5233),
|
||||
HLE_ENTRY(Lib_XONLINES, XOnline, 5344),
|
||||
HLE_ENTRY(Lib_XONLINES, XOnline, 5558),
|
||||
|
|
|
@ -40,6 +40,7 @@
|
|||
#include "HLEDataBase/Xapi.1.0.4361.h"
|
||||
#include "HLEDataBase/Xapi.1.0.4432.h"
|
||||
#include "HLEDataBase/Xapi.1.0.4627.h"
|
||||
#include "HLEDataBase/Xapi.1.0.5028.h"
|
||||
#include "HLEDataBase/Xapi.1.0.5233.h"
|
||||
#include "HLEDataBase/Xapi.1.0.5344.h"
|
||||
#include "HLEDataBase/Xapi.1.0.5558.h"
|
||||
|
@ -51,6 +52,7 @@
|
|||
#include "HLEDataBase/D3D8.1.0.4361.h"
|
||||
#include "HLEDataBase/D3D8.1.0.4432.h"
|
||||
#include "HLEDataBase/D3D8.1.0.4627.h"
|
||||
#include "HLEDataBase/D3D8.1.0.5028.h"
|
||||
#include "HLEDataBase/D3D8.1.0.5233.h"
|
||||
#include "HLEDataBase/D3D8.1.0.5344.h"
|
||||
#include "HLEDataBase/D3D8.1.0.5558.h"
|
||||
|
@ -62,6 +64,7 @@
|
|||
#include "HLEDataBase/DSound.1.0.4361.h"
|
||||
#include "HLEDataBase/DSound.1.0.4432.h"
|
||||
#include "HLEDataBase/DSound.1.0.4627.h"
|
||||
#include "HLEDataBase/DSound.1.0.5028.h"
|
||||
#include "HLEDataBase/DSound.1.0.5233.h"
|
||||
#include "HLEDataBase/DSound.1.0.5344.h"
|
||||
#include "HLEDataBase/DSound.1.0.5558.h"
|
||||
|
@ -72,6 +75,7 @@
|
|||
#include "HLEDataBase/XG.1.0.4361.h"
|
||||
#include "HLEDataBase/XG.1.0.4432.h"
|
||||
#include "HLEDataBase/XG.1.0.4627.h"
|
||||
#include "HLEDataBase/XG.1.0.5028.h"
|
||||
#include "HLEDataBase/XG.1.0.5233.h"
|
||||
#include "HLEDataBase/XG.1.0.5344.h"
|
||||
#include "HLEDataBase/XG.1.0.5558.h"
|
||||
|
@ -80,6 +84,7 @@
|
|||
#include "HLEDataBase/XNet.1.0.3911.h"
|
||||
#include "HLEDataBase/XOnline.1.0.4361.h"
|
||||
#include "HLEDataBase/XOnline.1.0.4627.h"
|
||||
#include "HLEDataBase/XOnline.1.0.5028.h"
|
||||
#include "HLEDataBase/XOnline.1.0.5233.h"
|
||||
#include "HLEDataBase/XOnline.1.0.5344.h"
|
||||
#include "HLEDataBase/XOnline.1.0.5558.h"
|
||||
|
|
|
@ -2471,7 +2471,12 @@ OOVPA_END;
|
|||
// ******************************************************************
|
||||
// * D3DDevice_SetRenderState_StencilCullEnable
|
||||
// ******************************************************************
|
||||
OOVPA_NO_XREF(D3DDevice_SetRenderState_StencilCullEnable, 3925, 7)
|
||||
OOVPA_XREF(D3DDevice_SetRenderState_StencilCullEnable, 3925, 8,
|
||||
|
||||
XRefNoSaveIndex,
|
||||
XRefOne)
|
||||
|
||||
XREF_ENTRY( 0x0D, XREF_D3DRS_STENCILCULLENABLE ),
|
||||
|
||||
{ 0x0B, 0x56 },
|
||||
{ 0x16, 0x8B },
|
||||
|
@ -3170,7 +3175,12 @@ OOVPA_END;
|
|||
// ******************************************************************
|
||||
// * D3DDevice_BlockOnFence
|
||||
// ******************************************************************
|
||||
OOVPA_NO_XREF(D3DDevice_BlockOnFence, 3925, 7)
|
||||
OOVPA_XREF(D3DDevice_BlockOnFence, 3925, 8,
|
||||
|
||||
XRefNoSaveIndex,
|
||||
XRefOne)
|
||||
|
||||
XREF_ENTRY( 0x08, XREF_D3D_BLOCKONTIME ),
|
||||
|
||||
{ 0x00, 0x8B },
|
||||
{ 0x02, 0x24 },
|
||||
|
@ -3325,6 +3335,19 @@ OOVPA_XREF(D3D_BlockOnResource, 3925, 9,
|
|||
{ 0x80, 0x00 },
|
||||
OOVPA_END;
|
||||
|
||||
// ******************************************************************
|
||||
// * D3DResource_BlockUntilNotBusy
|
||||
// ******************************************************************
|
||||
OOVPA_XREF(D3DResource_BlockUntilNotBusy, 3925, 2,
|
||||
|
||||
XRefNoSaveIndex,
|
||||
XRefOne)
|
||||
|
||||
XREF_ENTRY( 0x01, XREF_D3D_BlockOnResource ),
|
||||
|
||||
{ 0x00, 0xE9 },
|
||||
OOVPA_END;
|
||||
|
||||
// ******************************************************************
|
||||
// * D3DDevice_BeginStateBlock
|
||||
// ******************************************************************
|
||||
|
@ -3372,6 +3395,248 @@ OOVPA_NO_XREF(D3DDevice_SetTile, 3925, 9)
|
|||
{ 0x80, 0x18 }, // (Offset,Value)-Pair #9
|
||||
OOVPA_END;
|
||||
|
||||
// ******************************************************************
|
||||
// * D3DDevice_SetBackMaterial
|
||||
// ******************************************************************
|
||||
OOVPA_NO_XREF(D3DDevice_SetBackMaterial, 3925, 9)
|
||||
|
||||
{ 0x0A, 0x57 },
|
||||
{ 0x0B, 0x8D },
|
||||
{ 0x0C, 0xB8 },
|
||||
{ 0x0D, 0x5C },
|
||||
{ 0x0E, 0x0B },
|
||||
{ 0x0F, 0x00 },
|
||||
{ 0x14, 0x00 },
|
||||
{ 0x18, 0x8B },
|
||||
{ 0x1E, 0x5F },
|
||||
OOVPA_END;
|
||||
|
||||
// ******************************************************************
|
||||
// * D3DDevice_SwitchTexture
|
||||
// ******************************************************************
|
||||
OOVPA_NO_XREF(D3DDevice_SwitchTexture, 3925, 10)
|
||||
|
||||
// D3DDevice_SwitchTexture+0x00 : mov eax, [addr]
|
||||
{ 0x00, 0xA1 }, // (Offset,Value)-Pair #1
|
||||
|
||||
// D3DDevice_SwitchTexture+0x05 : add eax, 0x0C
|
||||
{ 0x05, 0x83 }, // (Offset,Value)-Pair #2
|
||||
{ 0x06, 0xC0 }, // (Offset,Value)-Pair #3
|
||||
{ 0x07, 0x0C }, // (Offset,Value)-Pair #4
|
||||
|
||||
// D3DDevice_SwitchTexture+0x08 : cmp eax, ds:dword_XXXXX
|
||||
{ 0x08, 0x3B }, // (Offset,Value)-Pair #5
|
||||
{ 0x09, 0x05 }, // (Offset,Value)-Pair #6
|
||||
|
||||
// D3DDevice_SwitchTexture+0x0E : jnb +0x15
|
||||
{ 0x0E, 0x73 }, // (Offset,Value)-Pair #7
|
||||
{ 0x0F, 0x15 }, // (Offset,Value)-Pair #8
|
||||
|
||||
// D3DDevice_SwitchTexture+0x22 : retn 0x04
|
||||
{ 0x22, 0xC2 }, // (Offset,Value)-Pair #9
|
||||
{ 0x23, 0x04 }, // (Offset,Value)-Pair #10
|
||||
|
||||
OOVPA_END;
|
||||
|
||||
// ******************************************************************
|
||||
// * D3DDevice_GetModelView
|
||||
// ******************************************************************
|
||||
OOVPA_NO_XREF(D3DDevice_GetModelView, 3925, 10)
|
||||
|
||||
{ 0x05, 0x57 },
|
||||
{ 0x0A, 0x85 },
|
||||
{ 0x10, 0xB0 },
|
||||
{ 0x11, 0xE0 },
|
||||
{ 0x12, 0x05 },
|
||||
{ 0x13, 0x00 },
|
||||
{ 0x14, 0x00 },
|
||||
{ 0x15, 0xB9 },
|
||||
{ 0x16, 0x10 },
|
||||
{ 0x1C, 0x5E },
|
||||
OOVPA_END;
|
||||
|
||||
// ******************************************************************
|
||||
// * D3DDevice_CopyRects
|
||||
// ******************************************************************
|
||||
OOVPA_NO_XREF(D3DDevice_CopyRects, 3925, 9)
|
||||
|
||||
{ 0x10, 0x0F },
|
||||
{ 0x11, 0xB6 },
|
||||
{ 0x12, 0x75 },
|
||||
{ 0x13, 0x0D },
|
||||
{ 0x14, 0x8A },
|
||||
{ 0x15, 0x9E },
|
||||
{ 0x40, 0xF6 },
|
||||
{ 0x4F, 0x84 },
|
||||
{ 0x75, 0x15 },
|
||||
OOVPA_END;
|
||||
|
||||
// ******************************************************************
|
||||
// * D3DVertexBuffer_GetDesc
|
||||
// ******************************************************************
|
||||
OOVPA_NO_XREF(D3DVertexBuffer_GetDesc, 3925, 7)
|
||||
|
||||
{ 0x02, 0x24 },
|
||||
{ 0x06, 0x74 },
|
||||
{ 0x0A, 0xC7 },
|
||||
{ 0x0E, 0x00 },
|
||||
{ 0x15, 0x89 },
|
||||
{ 0x16, 0x46 },
|
||||
{ 0x1A, 0x08 },
|
||||
OOVPA_END;
|
||||
|
||||
// ******************************************************************
|
||||
// * D3DDevice_GetShaderConstantMode
|
||||
// ******************************************************************
|
||||
OOVPA_NO_XREF(D3DDevice_GetShaderConstantMode, 3925, 8)
|
||||
|
||||
{ 0x05, 0x8B },
|
||||
{ 0x06, 0x88 },
|
||||
{ 0x07, 0x40 },
|
||||
{ 0x08, 0x21 },
|
||||
{ 0x0B, 0x8B },
|
||||
{ 0x0D, 0x24 },
|
||||
{ 0x10, 0x0A },
|
||||
{ 0x13, 0x00 },
|
||||
OOVPA_END;
|
||||
|
||||
// ******************************************************************
|
||||
// * D3DDevice_GetVertexShader
|
||||
// ******************************************************************
|
||||
OOVPA_NO_XREF(D3DDevice_GetVertexShader, 3925, 7)
|
||||
|
||||
{ 0x05, 0x8B },
|
||||
{ 0x06, 0x88 },
|
||||
{ 0x07, 0x74 },
|
||||
{ 0x0A, 0x00 },
|
||||
{ 0x0D, 0x24 },
|
||||
{ 0x10, 0x0A },
|
||||
{ 0x13, 0x00 },
|
||||
OOVPA_END;
|
||||
|
||||
// ******************************************************************
|
||||
// * D3DDevice_GetVertexShaderConstant
|
||||
// ******************************************************************
|
||||
OOVPA_NO_XREF(D3DDevice_GetVertexShaderConstant, 3925, 9)
|
||||
|
||||
{ 0x05, 0x8B },
|
||||
{ 0x06, 0x74 },
|
||||
{ 0x07, 0x24 },
|
||||
{ 0x08, 0x08 },
|
||||
{ 0x09, 0x57 },
|
||||
{ 0x0A, 0x8B },
|
||||
{ 0x0B, 0x3D },
|
||||
{ 0x18, 0x00 },
|
||||
{ 0x1F, 0xF7 },
|
||||
OOVPA_END;
|
||||
|
||||
// ******************************************************************
|
||||
// * D3DDevice_GetVertexShaderInput
|
||||
// ******************************************************************
|
||||
OOVPA_NO_XREF(D3DDevice_GetVertexShaderInput, 3925, 8)
|
||||
|
||||
{ 0x00, 0x8B },
|
||||
{ 0x03, 0x08 },
|
||||
{ 0x04, 0x85 },
|
||||
{ 0x05, 0xC9 },
|
||||
{ 0x06, 0xA1 },
|
||||
{ 0x10, 0x07 },
|
||||
{ 0x18, 0x04 },
|
||||
{ 0x1F, 0x20 },
|
||||
OOVPA_END;
|
||||
|
||||
// ******************************************************************
|
||||
// * D3DDevice_RunVertexStateShader
|
||||
// ******************************************************************
|
||||
OOVPA_NO_XREF(D3DDevice_RunVertexStateShader, 3925, 9)
|
||||
|
||||
{ 0x0D, 0x8B },
|
||||
{ 0x10, 0x0C },
|
||||
{ 0x11, 0x85 },
|
||||
{ 0x12, 0xC9 },
|
||||
{ 0x13, 0x74 },
|
||||
{ 0x14, 0x21 },
|
||||
{ 0x15, 0xD9 },
|
||||
{ 0x16, 0x41 },
|
||||
{ 0x1F, 0x41 },
|
||||
OOVPA_END;
|
||||
|
||||
// ******************************************************************
|
||||
// * D3DDevice_GetVertexShaderType
|
||||
// ******************************************************************
|
||||
OOVPA_NO_XREF(D3DDevice_GetVertexShaderType, 3925, 7)
|
||||
|
||||
{ 0x04, 0x8B },
|
||||
{ 0x0A, 0x07 },
|
||||
{ 0x10, 0xEB },
|
||||
{ 0x16, 0x00 },
|
||||
{ 0x1C, 0x40 },
|
||||
{ 0x22, 0xC9 },
|
||||
{ 0x28, 0x08 },
|
||||
OOVPA_END;
|
||||
|
||||
// ******************************************************************
|
||||
// * D3DDevice_GetVertexShaderDeclaration
|
||||
// ******************************************************************
|
||||
OOVPA_NO_XREF(D3DDevice_GetVertexShaderDeclaration, 3925, 9)
|
||||
|
||||
{ 0x00F, 0x8B },
|
||||
{ 0x010, 0x4C },
|
||||
{ 0x011, 0x24 },
|
||||
{ 0x012, 0x1C },
|
||||
{ 0x013, 0xC7 },
|
||||
{ 0x014, 0x01 },
|
||||
{ 0x015, 0x00 },
|
||||
{ 0x11F, 0x83 },
|
||||
{ 0x129, 0x0F },
|
||||
OOVPA_END;
|
||||
|
||||
// ******************************************************************
|
||||
// * D3DDevice_GetVertexShaderFunction
|
||||
// ******************************************************************
|
||||
OOVPA_NO_XREF(D3DDevice_GetVertexShaderFunction, 3925, 7)
|
||||
|
||||
{ 0x16, 0xC0 },
|
||||
{ 0x2E, 0x01 },
|
||||
{ 0x46, 0x10 },
|
||||
{ 0x5E, 0x07 },
|
||||
{ 0x76, 0xC7 },
|
||||
{ 0x8E, 0x00 },
|
||||
{ 0xA6, 0xF8 },
|
||||
OOVPA_END;
|
||||
|
||||
// ******************************************************************
|
||||
// * D3DDevice_GetPixelShader
|
||||
// ******************************************************************
|
||||
OOVPA_NO_XREF(D3DDevice_GetPixelShader, 3925, 7)
|
||||
|
||||
{ 0x05, 0x8B },
|
||||
{ 0x06, 0x88 },
|
||||
{ 0x07, 0x14 },
|
||||
{ 0x0A, 0x00 },
|
||||
{ 0x0D, 0x24 },
|
||||
{ 0x10, 0x0A },
|
||||
{ 0x13, 0x00 },
|
||||
OOVPA_END;
|
||||
|
||||
// ******************************************************************
|
||||
// * D3DDevice_IsFencePending
|
||||
// ******************************************************************
|
||||
OOVPA_NO_XREF(D3DDevice_IsFencePending, 3925, 11)
|
||||
|
||||
{ 0x05, 0x8B },
|
||||
{ 0x06, 0x88 },
|
||||
{ 0x07, 0xF0 },
|
||||
{ 0x08, 0x03 },
|
||||
{ 0x09, 0x00 },
|
||||
{ 0x0A, 0x00 },
|
||||
{ 0x0B, 0x8B },
|
||||
{ 0x0C, 0x40 },
|
||||
{ 0x0D, 0x1C },
|
||||
{ 0x1A, 0x1B },
|
||||
{ 0x1F, 0x04 },
|
||||
OOVPA_END;
|
||||
|
||||
// ******************************************************************
|
||||
// * D3D8_3925
|
||||
// ******************************************************************
|
||||
|
@ -3518,7 +3783,6 @@ OOVPATable D3D8_3925[] = {
|
|||
REGISTER_OOVPA(D3DDevice_LoadVertexShaderProgram, 3925, PATCH),
|
||||
REGISTER_OOVPA(D3DDevice_DeleteVertexShader, 3925, PATCH),
|
||||
REGISTER_OOVPA(D3DDevice_RunPushBuffer, 3925, PATCH),
|
||||
REGISTER_OOVPA(D3DDevice_BlockOnFence, 3925, PATCH),
|
||||
REGISTER_OOVPA(D3DDevice_Reset, 3925, PATCH),
|
||||
REGISTER_OOVPA(D3D_GetAdapterIdentifier, 3925, DISABLED),
|
||||
REGISTER_OOVPA(D3D_GetDeviceCaps, 3925, DISABLED),
|
||||
|
@ -3526,9 +3790,26 @@ OOVPATable D3D8_3925[] = {
|
|||
REGISTER_OOVPA(D3DDevice_CreateImageSurface, 3925, PATCH),
|
||||
REGISTER_OOVPA(D3D_BlockOnTime, 3925, PATCH),
|
||||
REGISTER_OOVPA(D3D_BlockOnResource, 3925, PATCH),
|
||||
REGISTER_OOVPA(D3DResource_BlockUntilNotBusy, 3925, PATCH),
|
||||
REGISTER_OOVPA(D3DDevice_BlockOnFence, 3925, PATCH),
|
||||
REGISTER_OOVPA(D3DDevice_BeginStateBlock, 3925, PATCH),
|
||||
REGISTER_OOVPA(D3DDevice_EndStateBlock, 3925, PATCH),
|
||||
REGISTER_OOVPA(D3DDevice_SetTileNoWait, 3925, ALIAS, D3DDevice_SetTile),
|
||||
REGISTER_OOVPA(D3DDevice_SetBackMaterial, 3925, PATCH),
|
||||
REGISTER_OOVPA(D3DDevice_SwitchTexture, 3925, PATCH),
|
||||
REGISTER_OOVPA(D3DDevice_GetModelView, 3925, PATCH),
|
||||
REGISTER_OOVPA(D3DDevice_CopyRects, 3925, PATCH),
|
||||
REGISTER_OOVPA(D3DVertexBuffer_GetDesc, 3925, PATCH),
|
||||
REGISTER_OOVPA(D3DDevice_GetShaderConstantMode, 3925, PATCH),
|
||||
REGISTER_OOVPA(D3DDevice_GetVertexShader, 3925, PATCH),
|
||||
REGISTER_OOVPA(D3DDevice_GetVertexShaderConstant, 3925, PATCH),
|
||||
REGISTER_OOVPA(D3DDevice_GetVertexShaderInput, 3925, PATCH),
|
||||
REGISTER_OOVPA(D3DDevice_RunVertexStateShader, 3925, PATCH),
|
||||
REGISTER_OOVPA(D3DDevice_GetVertexShaderType, 3925, PATCH),
|
||||
REGISTER_OOVPA(D3DDevice_GetVertexShaderDeclaration, 3925, PATCH),
|
||||
REGISTER_OOVPA(D3DDevice_GetVertexShaderFunction, 3925, PATCH),
|
||||
REGISTER_OOVPA(D3DDevice_GetPixelShader, 3925, PATCH),
|
||||
REGISTER_OOVPA(D3DDevice_IsFencePending, 3925, PATCH),
|
||||
};
|
||||
|
||||
// ******************************************************************
|
||||
|
|
|
@ -1953,6 +1953,37 @@ OOVPA_NO_XREF(D3DDevice_UpdateOverlay, 4134, 11)
|
|||
{ 0xA5, 0x89 }, // (Offset,Value)-Pair #11
|
||||
OOVPA_END;
|
||||
|
||||
// ******************************************************************
|
||||
// * D3DDevice_GetModelView
|
||||
// ******************************************************************
|
||||
OOVPA_NO_XREF(D3DDevice_GetModelView, 4134, 7)
|
||||
|
||||
{ 0x05, 0x57 },
|
||||
{ 0x0A, 0x85 },
|
||||
{ 0x10, 0xB0 },
|
||||
{ 0x16, 0x10 },
|
||||
{ 0x1C, 0x5E },
|
||||
{ 0x22, 0xC1 },
|
||||
{ 0x28, 0xE0 },
|
||||
OOVPA_END;
|
||||
|
||||
// ******************************************************************
|
||||
// * D3DDevice_FlushVertexCache
|
||||
// ******************************************************************
|
||||
OOVPA_NO_XREF(D3DDevice_FlushVertexCache, 4134, 10)
|
||||
|
||||
{ 0x00, 0x56 },
|
||||
{ 0x07, 0x8B },
|
||||
{ 0x08, 0x06 },
|
||||
{ 0x0D, 0x05 },
|
||||
{ 0x13, 0xC7 },
|
||||
{ 0x15, 0x10 },
|
||||
{ 0x17, 0x04 },
|
||||
{ 0x1C, 0x00 },
|
||||
{ 0x21, 0xC0 },
|
||||
{ 0x26, 0xC3 },
|
||||
OOVPA_END;
|
||||
|
||||
// ******************************************************************
|
||||
// * D3D8_4134
|
||||
// ******************************************************************
|
||||
|
@ -2108,6 +2139,8 @@ OOVPATable D3D8_4134[] = {
|
|||
REGISTER_OOVPA(D3D_SetPushBufferSize, 4034, DISABLED),
|
||||
REGISTER_OOVPA(D3DDevice_EnableOverlay, 4134, PATCH),
|
||||
REGISTER_OOVPA(D3DDevice_UpdateOverlay, 4134, PATCH),
|
||||
REGISTER_OOVPA(D3DDevice_GetModelView, 4134, PATCH),
|
||||
REGISTER_OOVPA(D3DDevice_FlushVertexCache, 4134, PATCH),
|
||||
};
|
||||
|
||||
// ******************************************************************
|
||||
|
|
|
@ -1772,6 +1772,37 @@ OOVPA_NO_XREF(D3DDevice_SetVertexShaderInput, 4361, 8)
|
|||
{ 0xFE, 0x89 },
|
||||
OOVPA_END;
|
||||
|
||||
// ******************************************************************
|
||||
// * D3DDevice_SetVertexData2s
|
||||
// ******************************************************************
|
||||
OOVPA_NO_XREF(D3DDevice_SetVertexData2s, 4361, 8)
|
||||
|
||||
{ 0x08, 0x06 },
|
||||
{ 0x0E, 0xE8 },
|
||||
{ 0x16, 0x08 },
|
||||
{ 0x17, 0x8D },
|
||||
{ 0x18, 0x14 },
|
||||
{ 0x19, 0x8D },
|
||||
{ 0x1A, 0x00 },
|
||||
{ 0x1F, 0xBF },
|
||||
OOVPA_END;
|
||||
|
||||
// ******************************************************************
|
||||
// * D3DDevice_SetVertexData4s
|
||||
// ******************************************************************
|
||||
OOVPA_NO_XREF(D3DDevice_SetVertexData4s, 4361, 9)
|
||||
|
||||
{ 0x08, 0x06 },
|
||||
{ 0x0E, 0xE8 },
|
||||
{ 0x16, 0x08 },
|
||||
{ 0x17, 0x8D },
|
||||
{ 0x18, 0x14 },
|
||||
{ 0x19, 0xCD },
|
||||
{ 0x1A, 0x80 },
|
||||
{ 0x1B, 0x19 },
|
||||
{ 0x1F, 0xBF },
|
||||
OOVPA_END;
|
||||
|
||||
// ******************************************************************
|
||||
// * D3D8_4361
|
||||
// ******************************************************************
|
||||
|
@ -1921,6 +1952,8 @@ OOVPATable D3D8_4361[] = {
|
|||
REGISTER_OOVPA(D3DDevice_GetVertexShader, 4361, PATCH),
|
||||
REGISTER_OOVPA(D3DDevice_SetVertexDataColor, 4361, PATCH),
|
||||
REGISTER_OOVPA(D3DDevice_SetVertexShaderInput, 4361, PATCH),
|
||||
REGISTER_OOVPA(D3DDevice_SetVertexData2s, 4361, PATCH),
|
||||
REGISTER_OOVPA(D3DDevice_SetVertexData4s, 4361, PATCH),
|
||||
};
|
||||
|
||||
// ******************************************************************
|
||||
|
|
|
@ -99,28 +99,6 @@ OOVPA_NO_XREF(D3DDevice_BeginVisibilityTest, 4627, 11)
|
|||
{ 0x26, 0x0C }, // (Offset,Value)-Pair #11
|
||||
OOVPA_END;
|
||||
|
||||
// ******************************************************************
|
||||
// * Direct3D_CreateDevice
|
||||
// ******************************************************************
|
||||
OOVPA_NO_XREF(Direct3D_CreateDevice, 5028, 8)
|
||||
|
||||
// Direct3D_CreateDevice+0x0A : jnz +0x0A
|
||||
{ 0x0A, 0x75 }, // (Offset,Value)-Pair #1
|
||||
{ 0x0B, 0x0A }, // (Offset,Value)-Pair #2
|
||||
|
||||
// Direct3D_CreateDevice+0x80 : repe stosd
|
||||
{ 0x80, 0xF3 }, // (Offset,Value)-Pair #3
|
||||
{ 0x81, 0xAB }, // (Offset,Value)-Pair #4
|
||||
|
||||
// Direct3D_CreateDevice+0x83 : mov eax, esi
|
||||
{ 0x83, 0x8B }, // (Offset,Value)-Pair #5
|
||||
{ 0x84, 0xC6 }, // (Offset,Value)-Pair #6
|
||||
|
||||
// Direct3D_CreateDevice+0x91 : retn 0x18
|
||||
{ 0x91, 0xC2 }, // (Offset,Value)-Pair #7
|
||||
{ 0x92, 0x18 }, // (Offset,Value)-Pair #8
|
||||
OOVPA_END;
|
||||
|
||||
// ******************************************************************
|
||||
// * D3DDevice_EndVisibilityTest
|
||||
// ******************************************************************
|
||||
|
@ -2164,17 +2142,7 @@ OOVPA_END;
|
|||
// ******************************************************************
|
||||
// * D3DDevice_GetVertexShaderType@8
|
||||
// ******************************************************************
|
||||
OOVPA_NO_XREF(D3DDevice_GetVertexShaderType, 4627, 7)
|
||||
|
||||
{ 0x04, 0x8B },
|
||||
{ 0x0A, 0x07 },
|
||||
{ 0x10, 0xEB },
|
||||
{ 0x16, 0x00 },
|
||||
{ 0x1C, 0x40 },
|
||||
{ 0x22, 0xC9 },
|
||||
{ 0x28, 0x08 },
|
||||
OOVPA_END;
|
||||
|
||||
#define D3DDevice_GetVertexShaderType_4627 D3DDevice_GetVertexShaderType_3925
|
||||
|
||||
// ******************************************************************
|
||||
// * D3DDevice_GetVertexShaderDeclaration
|
||||
|
@ -2194,16 +2162,7 @@ OOVPA_END;
|
|||
// ******************************************************************
|
||||
// * D3DDevice_GetVertexShaderFunction
|
||||
// ******************************************************************
|
||||
OOVPA_NO_XREF(D3DDevice_GetVertexShaderFunction, 4627, 7)
|
||||
|
||||
{ 0x16, 0xC0 },
|
||||
{ 0x2E, 0x01 },
|
||||
{ 0x46, 0x10 },
|
||||
{ 0x5E, 0x07 },
|
||||
{ 0x76, 0xC7 },
|
||||
{ 0x8E, 0x00 },
|
||||
{ 0xA6, 0xF8 },
|
||||
OOVPA_END;
|
||||
#define D3DDevice_GetVertexShaderFunction_4627 D3DDevice_GetVertexShaderFunction_3925
|
||||
|
||||
// ******************************************************************
|
||||
// * D3DDevice_SetVertexShaderInput
|
||||
|
@ -3126,6 +3085,21 @@ OOVPA_NO_XREF(D3DDevice_SetBackMaterial, 4627, 9)
|
|||
{ 0x2E, 0x04 },
|
||||
OOVPA_END;
|
||||
|
||||
// ******************************************************************
|
||||
// * D3DDevice_PrimeVertexCache
|
||||
// ******************************************************************
|
||||
OOVPA_NO_XREF(D3DDevice_PrimeVertexCache, 4627, 8)
|
||||
|
||||
{ 0x1A, 0x8B },
|
||||
{ 0x1B, 0x4D },
|
||||
{ 0x1C, 0x04 },
|
||||
{ 0x1D, 0xD1 },
|
||||
{ 0x1E, 0xEE },
|
||||
{ 0x2E, 0xC7 },
|
||||
{ 0x3E, 0x00 },
|
||||
{ 0x4E, 0x89 },
|
||||
OOVPA_END;
|
||||
|
||||
// ******************************************************************
|
||||
// * D3D8_4627
|
||||
// ******************************************************************
|
||||
|
@ -3341,6 +3315,7 @@ REGISTER_OOVPA(D3DDevice_SetRenderState_CullMode, 4034, PATCH),
|
|||
REGISTER_OOVPA(D3DDevice_SetBackMaterial, 4627, PATCH),
|
||||
// REGISTER_OOVPA(D3DCubeTexture_LockRect, 3925, PATCH), // TODO: This needs to be verified on 4361, not just 4242!
|
||||
REGISTER_OOVPA(D3D_SetPushBufferSize, 4034, DISABLED),
|
||||
REGISTER_OOVPA(D3DDevice_PrimeVertexCache, 4627, PATCH),
|
||||
};
|
||||
|
||||
// ******************************************************************
|
||||
|
|
|
@ -0,0 +1,42 @@
|
|||
// ******************************************************************
|
||||
// *
|
||||
// * .,-::::: .,:: .::::::::. .,:: .:
|
||||
// * ,;;;'````' `;;;, .,;; ;;;'';;' `;;;, .,;;
|
||||
// * [[[ '[[,,[[' [[[__[[\. '[[,,[['
|
||||
// * $$$ Y$$$P $$""""Y$$ Y$$$P
|
||||
// * `88bo,__,o, oP"``"Yo, _88o,,od8P oP"``"Yo,
|
||||
// * "YUMMMMMP",m" "Mm,""YUMMMP" ,m" "Mm,
|
||||
// *
|
||||
// * Cxbx->Win32->CxbxKrnl->D3D8.1.0.5028.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 D3D8_5028_H
|
||||
#define D3D8_5028_H
|
||||
|
||||
#include "OOVPA.h"
|
||||
|
||||
extern OOVPATable D3D8_5028[];
|
||||
extern uint32 D3D8_5028_SIZE;
|
||||
|
||||
#endif
|
File diff suppressed because it is too large
Load Diff
|
@ -35,24 +35,7 @@
|
|||
// ******************************************************************
|
||||
// * Direct3D_CreateDevice
|
||||
// ******************************************************************
|
||||
OOVPA_NO_XREF(Direct3D_CreateDevice, 5233, 8)
|
||||
|
||||
// Direct3D_CreateDevice+0x0A : jnz +0x0A
|
||||
{ 0x0A, 0x75 }, // (Offset,Value)-Pair #1
|
||||
{ 0x0B, 0x0A }, // (Offset,Value)-Pair #2
|
||||
|
||||
// Direct3D_CreateDevice+0x80 : repe stosd
|
||||
{ 0x80, 0xF3 }, // (Offset,Value)-Pair #3
|
||||
{ 0x81, 0xAB }, // (Offset,Value)-Pair #4
|
||||
|
||||
// Direct3D_CreateDevice+0x83 : mov eax, esi
|
||||
{ 0x83, 0x8B }, // (Offset,Value)-Pair #5
|
||||
{ 0x84, 0xC6 }, // (Offset,Value)-Pair #6
|
||||
|
||||
// Direct3D_CreateDevice+0x91 : retn 0x18
|
||||
{ 0x91, 0xC2 }, // (Offset,Value)-Pair #7
|
||||
{ 0x92, 0x18 }, // (Offset,Value)-Pair #8
|
||||
OOVPA_END;
|
||||
#define Direct3D_CreateDevice_5233 Direct3D_CreateDevice_5028
|
||||
|
||||
// ******************************************************************
|
||||
// * D3DDevice_GetDisplayFieldStatus
|
||||
|
@ -239,40 +222,12 @@ OOVPA_END;
|
|||
// ******************************************************************
|
||||
// * D3DDevice_SetRenderState_TextureFactor
|
||||
// ******************************************************************
|
||||
OOVPA_NO_XREF(D3DDevice_SetRenderState_TextureFactor, 5233, 9)
|
||||
|
||||
// D3DDevice_SetRenderState_TextureFactor+0x07 : mov eax, [esi+0x036C]
|
||||
{ 0x07, 0x8B }, // (Offset,Value)-Pair #1
|
||||
{ 0x08, 0x86 }, // (Offset,Value)-Pair #2
|
||||
{ 0x09, 0x6C }, // (Offset,Value)-Pair #3
|
||||
{ 0x0A, 0x03 }, // (Offset,Value)-Pair #4
|
||||
|
||||
// D3DDevice_SetRenderState_TextureFactor+0x2F : nop
|
||||
{ 0x2F, 0x90 }, // (Offset,Value)-Pair #5
|
||||
|
||||
// D3DDevice_SetRenderState_TextureFactor+0x41 : retn 0x04
|
||||
{ 0x41, 0xC2 }, // (Offset,Value)-Pair #6
|
||||
{ 0x42, 0x04 }, // (Offset,Value)-Pair #7
|
||||
|
||||
// D3DDevice_SetRenderState_TextureFactor+0x4E : retn 0x04
|
||||
{ 0x4E, 0xC2 }, // (Offset,Value)-Pair #8
|
||||
{ 0x4F, 0x04 }, // (Offset,Value)-Pair #9
|
||||
OOVPA_END;
|
||||
#define D3DDevice_SetRenderState_TextureFactor_5233 D3DDevice_SetRenderState_TextureFactor_5028
|
||||
|
||||
// ******************************************************************
|
||||
// * D3DDevice_SetRenderState_ZEnable
|
||||
// ******************************************************************
|
||||
OOVPA_NO_XREF(D3DDevice_SetRenderState_ZEnable, 5233, 8)
|
||||
|
||||
{ 0x13, 0x8B },
|
||||
{ 0x22, 0xC9 },
|
||||
{ 0x34, 0x89 },
|
||||
{ 0x46, 0x0C },
|
||||
{ 0x5A, 0x74 },
|
||||
{ 0x6D, 0x8B },
|
||||
{ 0x7C, 0xCE },
|
||||
{ 0x8E, 0x00 },
|
||||
OOVPA_END;
|
||||
#define D3DDevice_SetRenderState_ZEnable_5233 D3DDevice_SetRenderState_ZEnable_5028
|
||||
|
||||
// ******************************************************************
|
||||
// * D3DDevice_SetIndices
|
||||
|
@ -378,16 +333,7 @@ OOVPA_END;
|
|||
// ******************************************************************
|
||||
// * D3DTexture_LockRect
|
||||
// ******************************************************************
|
||||
OOVPA_NO_XREF(D3DTexture_LockRect, 5233, 7)
|
||||
|
||||
{ 0x03, 0x14 },
|
||||
{ 0x08, 0x8B },
|
||||
{ 0x0D, 0x8B },
|
||||
{ 0x12, 0x8B },
|
||||
{ 0x17, 0x50 },
|
||||
{ 0x20, 0xC2 },
|
||||
{ 0x21, 0x14 },
|
||||
OOVPA_END;
|
||||
#define D3DTexture_LockRect_5233 D3DTexture_LockRect_3925
|
||||
|
||||
// ******************************************************************
|
||||
// * Get2DSurfaceDesc
|
||||
|
@ -414,28 +360,7 @@ OOVPA_END;
|
|||
// ******************************************************************
|
||||
// * D3DDevice_GetBackBuffer2
|
||||
// ******************************************************************
|
||||
OOVPA_NO_XREF(D3DDevice_GetBackBuffer2, 5233, 12)
|
||||
|
||||
// D3DDevice_GetBackBuffer2+0x04 : cmp eax, 0xFFFFFFFF
|
||||
{ 0x04, 0x83 }, // (Offset,Value)-Pair #1
|
||||
{ 0x05, 0xF8 }, // (Offset,Value)-Pair #2
|
||||
{ 0x06, 0xFF }, // (Offset,Value)-Pair #3
|
||||
|
||||
// D3DDevice_GetBackBuffer+0x0D : jnz +0x19
|
||||
{ 0x0D, 0x75 }, // (Offset,Value)-Pair #4
|
||||
{ 0x0E, 0x19 }, // (Offset,Value)-Pair #5
|
||||
|
||||
// D3DDevice_GetBackBuffer+0x15 : mov esi, [ecx+eax*4+0x15C0]
|
||||
{ 0x15, 0x8B }, // (Offset,Value)-Pair #6
|
||||
{ 0x16, 0xB4 }, // (Offset,Value)-Pair #7
|
||||
{ 0x17, 0x81 }, // (Offset,Value)-Pair #8
|
||||
{ 0x18, 0xC0 }, // (Offset,Value)-Pair #9
|
||||
{ 0x19, 0x15 }, // (Offset,Value)-Pair #10
|
||||
|
||||
// D3DDevice_GetBackBuffer+0x40 : retn 0x04
|
||||
{ 0x40, 0xC2 }, // (Offset,Value)-Pair #11
|
||||
{ 0x41, 0x04 }, // (Offset,Value)-Pair #12
|
||||
OOVPA_END;
|
||||
#define D3DDevice_GetBackBuffer2_5233 D3DDevice_GetBackBuffer2_5028
|
||||
|
||||
// ******************************************************************
|
||||
// * D3DDevice_UpdateOverlay
|
||||
|
@ -542,30 +467,12 @@ OOVPA_END;
|
|||
// ******************************************************************
|
||||
// * D3DDevice_GetDepthStencilSurface2
|
||||
// ******************************************************************
|
||||
OOVPA_NO_XREF(D3DDevice_GetDepthStencilSurface2, 5233, 7)
|
||||
|
||||
{ 0x05, 0x56 },
|
||||
{ 0x06, 0x8B },
|
||||
{ 0x0A, 0x00 },
|
||||
{ 0x0E, 0x75 },
|
||||
{ 0x12, 0x5E },
|
||||
{ 0x1A, 0x8B },
|
||||
{ 0x1B, 0xC6 },
|
||||
OOVPA_END;
|
||||
#define D3DDevice_GetDepthStencilSurface2_5233 D3DDevice_GetDepthStencilSurface2_5028
|
||||
|
||||
// ******************************************************************
|
||||
// * D3D_GetDeviceCaps
|
||||
// ******************************************************************
|
||||
OOVPA_NO_XREF(D3D_GetDeviceCaps, 5233, 7)
|
||||
|
||||
{ 0x04, 0x85 },
|
||||
{ 0x0A, 0x08 },
|
||||
{ 0x10, 0x83 },
|
||||
{ 0x16, 0x08 },
|
||||
{ 0x1C, 0xC2 },
|
||||
{ 0x22, 0x0C },
|
||||
{ 0x29, 0x33 },
|
||||
OOVPA_END;
|
||||
#define D3D_GetDeviceCaps_5233 D3D_GetDeviceCaps_5028
|
||||
|
||||
// ******************************************************************
|
||||
// * D3DDevice_DrawVertices
|
||||
|
@ -584,71 +491,17 @@ OOVPA_END;
|
|||
// ******************************************************************
|
||||
// * D3DDevice_SetLight
|
||||
// ******************************************************************
|
||||
OOVPA_NO_XREF(D3DDevice_SetLight, 5233, 12)
|
||||
|
||||
// D3DDevice_SetLight+0x11 : mov edi, [ebp+0x390]
|
||||
{ 0x11, 0x8B }, // (Offset,Value)-Pair #1
|
||||
{ 0x12, 0xBD }, // (Offset,Value)-Pair #2
|
||||
{ 0x13, 0x90 }, // (Offset,Value)-Pair #3
|
||||
{ 0x14, 0x03 }, // (Offset,Value)-Pair #4
|
||||
|
||||
// D3DDevice_SetLight+0x30 : shl eax, 0x04
|
||||
{ 0x30, 0xC1 }, // (Offset,Value)-Pair #5
|
||||
{ 0x31, 0xE0 }, // (Offset,Value)-Pair #6
|
||||
{ 0x32, 0x04 }, // (Offset,Value)-Pair #7
|
||||
|
||||
// D3DDevice_SetLight+0xBD : rep stosb
|
||||
{ 0xBD, 0xF3 }, // (Offset,Value)-Pair #8
|
||||
{ 0xBE, 0xAB }, // (Offset,Value)-Pair #9
|
||||
|
||||
// D3DDevice_SetLight+0xFD : mov ecx, [ebx+0x68]
|
||||
{ 0xFD, 0x8B }, // (Offset,Value)-Pair #10
|
||||
{ 0xFE, 0x4B }, // (Offset,Value)-Pair #11
|
||||
{ 0xFF, 0x68 }, // (Offset,Value)-Pair #12
|
||||
OOVPA_END;
|
||||
#define D3DDevice_SetLight_5233 D3DDevice_SetLight_5028
|
||||
|
||||
// ******************************************************************
|
||||
// * D3DDevice_LightEnable
|
||||
// ******************************************************************
|
||||
OOVPA_NO_XREF(D3DDevice_LightEnable, 5233, 13)
|
||||
|
||||
// D3DDevice_LightEnable+0x0F : cmp ebx, [esi+0x0390]
|
||||
{ 0x0F, 0x3B }, // (Offset,Value)-Pair #1
|
||||
{ 0x10, 0x9E }, // (Offset,Value)-Pair #2
|
||||
{ 0x11, 0x90 }, // (Offset,Value)-Pair #3
|
||||
{ 0x12, 0x03 }, // (Offset,Value)-Pair #4
|
||||
|
||||
// D3DDevice_LightEnable+0x6B : test eax, eax
|
||||
{ 0x6B, 0x85 }, // (Offset,Value)-Pair #5
|
||||
{ 0x6C, 0xC0 }, // (Offset,Value)-Pair #6
|
||||
|
||||
// D3DDevice_LightEnable+0x9E : mov eax, [eax+0x8C]
|
||||
{ 0x9E, 0x8B }, // (Offset,Value)-Pair #7
|
||||
{ 0x9F, 0x80 }, // (Offset,Value)-Pair #8
|
||||
{ 0xA0, 0x8C }, // (Offset,Value)-Pair #9
|
||||
|
||||
// D3DDevice_LightEnable+0xBC : jz +0x12
|
||||
{ 0xBC, 0x74 }, // (Offset,Value)-Pair #10
|
||||
{ 0xBD, 0x12 }, // (Offset,Value)-Pair #11
|
||||
|
||||
// D3DDevice_LightEnable+0xE1 : retn 0x08
|
||||
{ 0xE1, 0xC2 }, // (Offset,Value)-Pair #12
|
||||
{ 0xE2, 0x08 }, // (Offset,Value)-Pair #13
|
||||
OOVPA_END;
|
||||
#define D3DDevice_LightEnable_5233 D3DDevice_LightEnable_5028
|
||||
|
||||
// ******************************************************************
|
||||
// * D3DVertexBuffer_GetDesc
|
||||
// ******************************************************************
|
||||
OOVPA_NO_XREF(D3DVertexBuffer_GetDesc, 5233, 7)
|
||||
|
||||
{ 0x02, 0x24 },
|
||||
{ 0x06, 0x74 },
|
||||
{ 0x0A, 0xC7 },
|
||||
{ 0x0E, 0x00 },
|
||||
{ 0x15, 0x89 },
|
||||
{ 0x16, 0x46 },
|
||||
{ 0x1A, 0x08 },
|
||||
OOVPA_END;
|
||||
#define D3DVertexBuffer_GetDesc_5233 D3DVertexBuffer_GetDesc_5028
|
||||
|
||||
// ******************************************************************
|
||||
// * D3DDevice_SetVertexShader
|
||||
|
@ -681,49 +534,12 @@ OOVPA_END;
|
|||
// ******************************************************************
|
||||
// * D3DDevice_SetTileNoWait
|
||||
// ******************************************************************
|
||||
OOVPA_NO_XREF(D3DDevice_SetTileNoWait, 5233, 11)
|
||||
|
||||
// D3DDevice_SetTileNoWait+0x06 : sub esp, 0x18
|
||||
{ 0x06, 0x83 }, // (Offset,Value)-Pair #1
|
||||
{ 0x07, 0xEC }, // (Offset,Value)-Pair #2
|
||||
{ 0x08, 0x18 }, // (Offset,Value)-Pair #3
|
||||
|
||||
// D3DDevice_SetTileNoWait+0x15 : cmp [esi+4], eax
|
||||
{ 0x15, 0x39 }, // (Offset,Value)-Pair #4
|
||||
{ 0x16, 0x46 }, // (Offset,Value)-Pair #5
|
||||
{ 0x17, 0x04 }, // (Offset,Value)-Pair #6
|
||||
|
||||
// D3DDevice_SetTileNoWait+0x3D : lea edi, [edx+ecx*8+0x1660]
|
||||
{ 0x3D, 0x8D }, // (Offset,Value)-Pair #7
|
||||
{ 0x3E, 0xBC }, // (Offset,Value)-Pair #8
|
||||
{ 0x3F, 0xCA }, // (Offset,Value)-Pair #9
|
||||
{ 0x40, 0x60 }, // (Offset,Value)-Pair #10
|
||||
{ 0x41, 0x16 }, // (Offset,Value)-Pair #11
|
||||
OOVPA_END;
|
||||
#define D3DDevice_SetTileNoWait_5233 D3DDevice_SetTileNoWait_5028
|
||||
|
||||
// ******************************************************************
|
||||
// * D3DDevice_AddRef
|
||||
// ******************************************************************
|
||||
OOVPA_NO_XREF(D3DDevice_AddRef, 5233, 10)
|
||||
|
||||
// D3DDevice_AddRef+0x00 : mov eax, [addr]
|
||||
{ 0x00, 0xA1 }, // (Offset,Value)-Pair #1
|
||||
|
||||
// D3DDevice_AddRef+0x05 : mov ecx, [eax+0x04FC]
|
||||
{ 0x05, 0x8B }, // (Offset,Value)-Pair #2
|
||||
{ 0x06, 0x88 }, // (Offset,Value)-Pair #3
|
||||
{ 0x07, 0xFC }, // (Offset,Value)-Pair #4
|
||||
{ 0x08, 0x04 }, // (Offset,Value)-Pair #5
|
||||
|
||||
// D3DDevice_AddRef+0x0B : inc ecx
|
||||
{ 0x0B, 0x41 }, // (Offset,Value)-Pair #6
|
||||
|
||||
// D3DDevice_AddRef+0x0C : mov [eax+0x04FC], ecx
|
||||
{ 0x0C, 0x89 }, // (Offset,Value)-Pair #7
|
||||
{ 0x0D, 0x88 }, // (Offset,Value)-Pair #8
|
||||
{ 0x0E, 0xFC }, // (Offset,Value)-Pair #9
|
||||
{ 0x0F, 0x04 }, // (Offset,Value)-Pair #10
|
||||
OOVPA_END;
|
||||
#define D3DDevice_AddRef_5233 D3DDevice_AddRef_5028
|
||||
|
||||
// ******************************************************************
|
||||
// * IDirectD3DDevice8_Release
|
||||
|
@ -888,19 +704,7 @@ OOVPA_END;
|
|||
// ******************************************************************
|
||||
// * D3D::SetFence
|
||||
// ******************************************************************
|
||||
OOVPA_XREF(D3D_SetFence, 5233, 7,
|
||||
|
||||
XREF_D3D_SETFENCE,
|
||||
XRefZero)
|
||||
|
||||
{ 0x0E, 0x05 },
|
||||
{ 0x18, 0xC9 },
|
||||
{ 0x3E, 0x3F },
|
||||
{ 0x5E, 0x28 },
|
||||
{ 0x86, 0x5D },
|
||||
{ 0x98, 0xE8 },
|
||||
{ 0xA2, 0x04 },
|
||||
OOVPA_END;
|
||||
#define D3D_SetFence_5233 D3D_SetFence_5028
|
||||
|
||||
// ******************************************************************
|
||||
// * D3DDevice_InsertFence
|
||||
|
@ -921,19 +725,7 @@ OOVPA_END;
|
|||
// ******************************************************************
|
||||
// * D3DDevice_IsFencePending
|
||||
// ******************************************************************
|
||||
OOVPA_XREF(D3DDevice_IsFencePending, 5233, 6,
|
||||
|
||||
XRefNoSaveIndex,
|
||||
XRefOne)
|
||||
|
||||
XREF_ENTRY( 0x01, XREF_D3DDEVICE ),
|
||||
|
||||
{ 0x07, 0x30 },
|
||||
{ 0x0A, 0x2C },
|
||||
{ 0x10, 0xD1 },
|
||||
{ 0x17, 0x1B },
|
||||
{ 0x1C, 0x04 },
|
||||
OOVPA_END;
|
||||
#define D3DDevice_IsFencePending_5233 D3DDevice_IsFencePending_5028
|
||||
|
||||
// ******************************************************************
|
||||
// * D3D::BlockOnTime
|
||||
|
@ -1062,15 +854,7 @@ OOVPA_END;
|
|||
// ******************************************************************
|
||||
// * D3DDevice_BeginPush
|
||||
// ******************************************************************
|
||||
OOVPA_NO_XREF(D3DDevice_BeginPush, 5233, 6)
|
||||
|
||||
{ 0x06, 0x6A },
|
||||
{ 0x07, 0x00 },
|
||||
{ 0x0D, 0x8B },
|
||||
{ 0x0E, 0x44 },
|
||||
{ 0x12, 0x89 },
|
||||
{ 0x16, 0xE9 },
|
||||
OOVPA_END;
|
||||
#define D3DDevice_BeginPush_5233 D3DDevice_BeginPush_5028
|
||||
|
||||
// ******************************************************************
|
||||
// * D3DDevice_EndPush
|
||||
|
@ -1189,28 +973,7 @@ OOVPA_END;
|
|||
// ******************************************************************
|
||||
// * D3DDevice_End
|
||||
// ******************************************************************
|
||||
OOVPA_NO_XREF(D3DDevice_End, 5233, 12)
|
||||
|
||||
// D3DDevice_End+0x13 : mov dword ptr [eax], 0x417FC
|
||||
{ 0x13, 0xC7 }, // (Offset,Value)-Pair #1
|
||||
{ 0x14, 0x00 }, // (Offset,Value)-Pair #2
|
||||
{ 0x15, 0xFC }, // (Offset,Value)-Pair #3
|
||||
{ 0x16, 0x17 }, // (Offset,Value)-Pair #4
|
||||
{ 0x17, 0x04 }, // (Offset,Value)-Pair #5
|
||||
{ 0x18, 0x00 }, // (Offset,Value)-Pair #6
|
||||
|
||||
// D3DDevice_End+0x28 : test ah, 0x10
|
||||
{ 0x28, 0xF6 }, // (Offset,Value)-Pair #7
|
||||
{ 0x29, 0xC4 }, // (Offset,Value)-Pair #8
|
||||
{ 0x2A, 0x10 }, // (Offset,Value)-Pair #9
|
||||
|
||||
// D3DDevice_End+0x2B : jz +0x07
|
||||
{ 0x2B, 0x74 }, // (Offset,Value)-Pair #10
|
||||
{ 0x2C, 0x07 }, // (Offset,Value)-Pair #11
|
||||
|
||||
// D3DDevice_End+0x3C : retn
|
||||
{ 0x3C, 0xC3 }, // (Offset,Value)-Pair #12
|
||||
OOVPA_END;
|
||||
#define D3DDevice_End_5233 D3DDevice_End_5028
|
||||
|
||||
// ******************************************************************
|
||||
// * D3D8_5233
|
||||
|
|
|
@ -349,6 +349,355 @@ OOVPA_NO_XREF(D3DDevice_SetRenderTargetFast, 5344, 8)
|
|||
{ 0xF6, 0xC5 },
|
||||
OOVPA_END;
|
||||
|
||||
// ******************************************************************
|
||||
// * D3DDevice_CreateTexture2
|
||||
// ******************************************************************
|
||||
OOVPA_NO_XREF(D3DDevice_CreateTexture2, 5344, 8)
|
||||
|
||||
{ 0x10, 0x0F },
|
||||
{ 0x14, 0x4C },
|
||||
{ 0x18, 0x33 },
|
||||
{ 0x1C, 0x05 },
|
||||
{ 0x1F, 0x24 },
|
||||
{ 0x43, 0xF8 },
|
||||
{ 0x4A, 0x01 },
|
||||
{ 0x4F, 0x64 },
|
||||
OOVPA_END;
|
||||
|
||||
// ******************************************************************
|
||||
// * D3DDevice_SelectVertexShader
|
||||
// ******************************************************************
|
||||
OOVPA_NO_XREF(D3DDevice_SelectVertexShader, 5344, 8)
|
||||
|
||||
{ 0x0E, 0x49 },
|
||||
{ 0x10, 0x8D },
|
||||
{ 0x14, 0x86 },
|
||||
{ 0x18, 0x00 },
|
||||
{ 0x1C, 0x03 },
|
||||
{ 0x36, 0x4F },
|
||||
{ 0x38, 0x83 },
|
||||
{ 0x3C, 0x00 },
|
||||
OOVPA_END;
|
||||
|
||||
// ******************************************************************
|
||||
// * D3DDevice_SetRenderTarget
|
||||
// ******************************************************************
|
||||
OOVPA_NO_XREF(D3DDevice_SetRenderTarget, 5344, 8)
|
||||
|
||||
{ 0x08, 0x56 },
|
||||
{ 0x09, 0x33 },
|
||||
{ 0x0A, 0xF6 },
|
||||
{ 0x0B, 0x3B },
|
||||
{ 0x0C, 0xEE },
|
||||
{ 0x2A, 0xE4 },
|
||||
{ 0x30, 0x74 },
|
||||
{ 0x34, 0x14 },
|
||||
OOVPA_END;
|
||||
|
||||
// ******************************************************************
|
||||
// * D3DDevice_SetPalette
|
||||
// ******************************************************************
|
||||
OOVPA_NO_XREF(D3DDevice_SetPalette, 5344, 12)
|
||||
|
||||
// D3DDevice_SetPalette+0x0D : mov eax, [esi+edi*4+0B78h]
|
||||
{ 0x0D, 0x8B }, // (Offset,Value)-Pair #1
|
||||
{ 0x0E, 0x84 }, // (Offset,Value)-Pair #2
|
||||
{ 0x0F, 0xBE }, // (Offset,Value)-Pair #3
|
||||
{ 0x10, 0x78 }, // (Offset,Value)-Pair #4
|
||||
{ 0x11, 0x0B }, // (Offset,Value)-Pair #5
|
||||
|
||||
// D3DDevice_SetPalette+0x51 : add ebp, 0x80000
|
||||
{ 0x51, 0x81 }, // (Offset,Value)-Pair #6
|
||||
{ 0x52, 0xC5 }, // (Offset,Value)-Pair #7
|
||||
{ 0x53, 0x00 }, // (Offset,Value)-Pair #8
|
||||
{ 0x54, 0x00 }, // (Offset,Value)-Pair #9
|
||||
{ 0x55, 0x08 }, // (Offset,Value)-Pair #10
|
||||
|
||||
// D3DDevice_SetPalette+0x8A : retn 0x08
|
||||
{ 0x8A, 0xC2 }, // (Offset,Value)-Pair #11
|
||||
{ 0x8B, 0x08 }, // (Offset,Value)-Pair #12
|
||||
OOVPA_END;
|
||||
|
||||
// ******************************************************************
|
||||
// * D3DDevice_IsBusy
|
||||
// ******************************************************************
|
||||
OOVPA_NO_XREF(D3DDevice_IsBusy, 5344, 7)
|
||||
|
||||
{ 0x05, 0x8B },
|
||||
{ 0x08, 0x05 },
|
||||
{ 0x0C, 0x88 },
|
||||
{ 0x10, 0x00 },
|
||||
{ 0x14, 0x32 },
|
||||
{ 0x18, 0x06 },
|
||||
{ 0x1C, 0x00 },
|
||||
OOVPA_END;
|
||||
|
||||
// ******************************************************************
|
||||
// * D3DDevice_CreateVertexBuffer2
|
||||
// ******************************************************************
|
||||
OOVPA_NO_XREF(D3DDevice_CreateVertexBuffer2, 5344, 9)
|
||||
|
||||
{ 0x08, 0xE8 },
|
||||
{ 0x0E, 0xF0 },
|
||||
{ 0x10, 0xF6 },
|
||||
{ 0x14, 0x44 },
|
||||
{ 0x18, 0x04 },
|
||||
{ 0x1C, 0x6A },
|
||||
{ 0x2C, 0x85 },
|
||||
{ 0x30, 0x68 },
|
||||
{ 0x34, 0x24 },
|
||||
OOVPA_END;
|
||||
|
||||
// ******************************************************************
|
||||
// * D3DDevice_CreatePalette2
|
||||
// ******************************************************************
|
||||
OOVPA_NO_XREF(D3DDevice_CreatePalette2, 5344, 8)
|
||||
|
||||
{ 0x08, 0xE8 },
|
||||
{ 0x10, 0xFF },
|
||||
{ 0x11, 0x75 },
|
||||
{ 0x12, 0x04 },
|
||||
{ 0x13, 0x5F },
|
||||
{ 0x14, 0xC2 },
|
||||
{ 0x38, 0x85 },
|
||||
{ 0x3C, 0x68 },
|
||||
OOVPA_END;
|
||||
|
||||
// ******************************************************************
|
||||
// * D3DDevice_DrawVerticesUP
|
||||
// ******************************************************************
|
||||
OOVPA_NO_XREF(D3DDevice_DrawVerticesUP, 5344, 10)
|
||||
|
||||
// D3DDevice_DrawVerticesUP+0x03 : sub esp, 0x14
|
||||
{ 0x03, 0x83 }, // (Offset,Value)-Pair #1
|
||||
{ 0x04, 0xEC }, // (Offset,Value)-Pair #2
|
||||
{ 0x05, 0x14 }, // (Offset,Value)-Pair #3
|
||||
|
||||
// D3DDevice_DrawVerticesUP+0x37 : mov edx, [edi+834h]
|
||||
{ 0x37, 0x8B }, // (Offset,Value)-Pair #4
|
||||
{ 0x38, 0x97 }, // (Offset,Value)-Pair #5
|
||||
{ 0x39, 0x34 }, // (Offset,Value)-Pair #6
|
||||
{ 0x3A, 0x08 }, // (Offset,Value)-Pair #7
|
||||
|
||||
// D3DDevice_DrawVerticesUP+0xC4 : cmp esi, 0x80
|
||||
{ 0xC4, 0x81 }, // (Offset,Value)-Pair #8
|
||||
{ 0xC5, 0xFE }, // (Offset,Value)-Pair #9
|
||||
{ 0xC6, 0x80 }, // (Offset,Value)-Pair #10
|
||||
OOVPA_END;
|
||||
|
||||
// ******************************************************************
|
||||
// * D3DDevice_SetVertexDataColor
|
||||
// ******************************************************************
|
||||
OOVPA_NO_XREF(D3DDevice_SetVertexDataColor, 5344, 8)
|
||||
|
||||
{ 0x08, 0x06 },
|
||||
{ 0x0C, 0x57 },
|
||||
{ 0x0F, 0xE8 },
|
||||
{ 0x15, 0x4C },
|
||||
{ 0x19, 0x14 },
|
||||
{ 0x1A, 0x8D },
|
||||
{ 0x1B, 0x40 },
|
||||
{ 0x1C, 0x19 },
|
||||
OOVPA_END;
|
||||
|
||||
// ******************************************************************
|
||||
// * D3DDevice_End
|
||||
// ******************************************************************
|
||||
OOVPA_NO_XREF(D3DDevice_End, 5344, 9)
|
||||
|
||||
{ 0x08, 0x06 },
|
||||
{ 0x0A, 0x46 },
|
||||
{ 0x0E, 0xE8 },
|
||||
{ 0x15, 0xFC },
|
||||
{ 0x17, 0x04 },
|
||||
{ 0x19, 0xC7 },
|
||||
{ 0x1A, 0x40 },
|
||||
{ 0x1B, 0x04 },
|
||||
{ 0x40, 0xC3 },
|
||||
OOVPA_END;
|
||||
|
||||
// ******************************************************************
|
||||
// * D3DDevice_CreatePixelShader
|
||||
// ******************************************************************
|
||||
OOVPA_NO_XREF(D3DDevice_CreatePixelShader, 5344, 11)
|
||||
|
||||
// D3DDevice_CreatePixelShader+0x05 : push 0xFC
|
||||
{ 0x05, 0x68 }, // (Offset,Value)-Pair #1
|
||||
{ 0x06, 0xFC }, // (Offset,Value)-Pair #2
|
||||
|
||||
// D3DDevice_CreatePixelShader+0x10 : mov eax, 0x8007000E
|
||||
{ 0x13, 0xB8 }, // (Offset,Value)-Pair #3
|
||||
{ 0x14, 0x0E }, // (Offset,Value)-Pair #4
|
||||
{ 0x15, 0x00 }, // (Offset,Value)-Pair #5
|
||||
{ 0x16, 0x07 }, // (Offset,Value)-Pair #6
|
||||
{ 0x17, 0x80 }, // (Offset,Value)-Pair #7
|
||||
|
||||
// D3DDevice_CreatePixelShader+0x31 : mov ecx, 0x3C
|
||||
{ 0x34, 0xB9 }, // (Offset,Value)-Pair #8
|
||||
{ 0x35, 0x3C }, // (Offset,Value)-Pair #9
|
||||
|
||||
// D3DDevice_CreatePixelShader+0x42 : retn 0x08
|
||||
{ 0x45, 0xC2 }, // (Offset,Value)-Pair #10
|
||||
{ 0x46, 0x08 }, // (Offset,Value)-Pair #11
|
||||
OOVPA_END;
|
||||
|
||||
// ******************************************************************
|
||||
// * D3DDevice_SetPixelShaderConstant
|
||||
// ******************************************************************
|
||||
OOVPA_NO_XREF(D3DDevice_SetPixelShaderConstant, 5344, 9)
|
||||
|
||||
{ 0x1A, 0x0C },
|
||||
{ 0x1B, 0x8B },
|
||||
{ 0x1C, 0x45 },
|
||||
{ 0x1D, 0x10 },
|
||||
{ 0x1E, 0x85 },
|
||||
{ 0x5B, 0xF3 },
|
||||
{ 0x60, 0xE0 },
|
||||
{ 0x64, 0xC0 },
|
||||
{ 0x68, 0x2D },
|
||||
OOVPA_END;
|
||||
|
||||
// ******************************************************************
|
||||
// * D3DDevice_GetOverlayUpdateStatus
|
||||
// ******************************************************************
|
||||
OOVPA_NO_XREF(D3DDevice_GetOverlayUpdateStatus, 5344, 12)
|
||||
|
||||
// D3DDevice_GetOverlayUpdateStatus+0x05 : mov ecx, [eax+1FE0h]
|
||||
{ 0x05, 0x8B }, // (Offset,Value)-Pair #1
|
||||
{ 0x06, 0x88 }, // (Offset,Value)-Pair #2
|
||||
{ 0x07, 0xE0 }, // (Offset,Value)-Pair #3
|
||||
{ 0x08, 0x1F }, // (Offset,Value)-Pair #4
|
||||
|
||||
// D3DDevice_GetOverlayUpdateStatus+0x0C : mov esi, [eax+19B8h]
|
||||
{ 0x0C, 0x8B }, // (Offset,Value)-Pair #5
|
||||
{ 0x0D, 0xB0 }, // (Offset,Value)-Pair #6
|
||||
{ 0x0E, 0xB8 }, // (Offset,Value)-Pair #7
|
||||
{ 0x0F, 0x19 }, // (Offset,Value)-Pair #8
|
||||
|
||||
// D3DDevice_GetOverlayUpdateStatus+0x16 : setnz dl
|
||||
{ 0x16, 0x0F }, // (Offset,Value)-Pair #9
|
||||
{ 0x17, 0x95 }, // (Offset,Value)-Pair #10
|
||||
{ 0x18, 0xC2 }, // (Offset,Value)-Pair #11
|
||||
|
||||
// D3DDevice_GetOverlayUpdateStatus+0x1C : retn
|
||||
{ 0x1C, 0xC3 }, // (Offset,Value)-Pair #12
|
||||
OOVPA_END;
|
||||
|
||||
// ******************************************************************
|
||||
// * D3DDevice_UpdateOverlay
|
||||
// ******************************************************************
|
||||
OOVPA_NO_XREF(D3DDevice_UpdateOverlay, 5344, 10)
|
||||
|
||||
{ 0x0A, 0xB8 },
|
||||
{ 0x13, 0x89 },
|
||||
{ 0x14, 0x88 },
|
||||
{ 0x15, 0xF0 },
|
||||
{ 0x16, 0x17 },
|
||||
{ 0x74, 0x4F },
|
||||
{ 0x79, 0x44 },
|
||||
{ 0x7D, 0x40 },
|
||||
{ 0x80, 0xE1 },
|
||||
{ 0x84, 0xCA },
|
||||
OOVPA_END;
|
||||
|
||||
// ******************************************************************
|
||||
// * IDirectD3DDevice8_Release
|
||||
// ******************************************************************
|
||||
OOVPA_NO_XREF(D3DDevice_Release, 5344, 8)
|
||||
|
||||
{ 0x07, 0x8B },
|
||||
{ 0x0C, 0x00 },
|
||||
{ 0x13, 0xCF },
|
||||
{ 0x1A, 0x1C },
|
||||
{ 0x21, 0x05 },
|
||||
{ 0x28, 0x00 },
|
||||
{ 0x2F, 0x89 },
|
||||
{ 0x36, 0xC3 },
|
||||
OOVPA_END;
|
||||
|
||||
// ******************************************************************
|
||||
// * D3DDevice_GetVisibilityTestResult
|
||||
// ******************************************************************
|
||||
OOVPA_NO_XREF(D3DDevice_GetVisibilityTestResult, 5344, 7)
|
||||
|
||||
{ 0x0E, 0x08 },
|
||||
{ 0x10, 0xFF },
|
||||
{ 0x2A, 0x16 },
|
||||
{ 0x3C, 0x76 },
|
||||
{ 0x3F, 0x0C },
|
||||
{ 0x51, 0x0A },
|
||||
{ 0x5F, 0x0C },
|
||||
OOVPA_END;
|
||||
|
||||
// ******************************************************************
|
||||
// * D3DDevice_BlockUntilVerticalBlank
|
||||
// ******************************************************************
|
||||
#define D3DDevice_BlockUntilVerticalBlank_5344 D3DDevice_BlockUntilVerticalBlank_5028
|
||||
|
||||
// ******************************************************************
|
||||
// * D3DDevice_PersistDisplay
|
||||
// ******************************************************************
|
||||
OOVPA_NO_XREF(D3DDevice_PersistDisplay, 5344, 7)
|
||||
|
||||
{ 0x1E, 0x15 },
|
||||
{ 0x3A, 0xAB },
|
||||
{ 0x3B, 0xF8 },
|
||||
{ 0x3C, 0x17 },
|
||||
{ 0x3D, 0x00 },
|
||||
{ 0x4E, 0xF5 },
|
||||
{ 0x6E, 0x01 },
|
||||
OOVPA_END;
|
||||
|
||||
// ******************************************************************
|
||||
// * D3DDevice_SetVertexShaderConstantNotInline
|
||||
// ******************************************************************
|
||||
#define D3DDevice_SetVertexShaderConstantNotInline_5344 D3DDevice_SetVertexShaderConstantNotInline_5028
|
||||
|
||||
// ******************************************************************
|
||||
// * D3DDevice_DeleteVertexShader
|
||||
// ******************************************************************
|
||||
OOVPA_NO_XREF(D3DDevice_DeleteVertexShader, 5344, 6)
|
||||
|
||||
{ 0x02, 0x24 },
|
||||
{ 0x06, 0xFF },
|
||||
{ 0x0A, 0x08 },
|
||||
{ 0x0E, 0x00 },
|
||||
|
||||
// D3DDevice_DeleteVertexShader+0x18 : retn 4
|
||||
{ 0x18, 0xC2 },
|
||||
{ 0x19, 0x04 },
|
||||
OOVPA_END;
|
||||
|
||||
// ******************************************************************
|
||||
// * D3DDevice_DrawIndexedVerticesUP
|
||||
// ******************************************************************
|
||||
OOVPA_NO_XREF(D3DDevice_DrawIndexedVerticesUP, 5344, 9)
|
||||
|
||||
{ 0x05, 0x14 },
|
||||
{ 0x06, 0x53 },
|
||||
{ 0x07, 0x56 },
|
||||
{ 0x08, 0x8B },
|
||||
{ 0x09, 0x35 },
|
||||
{ 0x2A, 0xFC },
|
||||
{ 0x3A, 0x89 },
|
||||
{ 0x4A, 0x81 },
|
||||
{ 0x5A, 0x56 },
|
||||
OOVPA_END;
|
||||
|
||||
// ******************************************************************
|
||||
// * D3DDevice_DeletePixelShader
|
||||
// ******************************************************************
|
||||
OOVPA_NO_XREF(D3DDevice_DeletePixelShader, 5344, 7)
|
||||
|
||||
{ 0x02, 0x24 },
|
||||
{ 0x06, 0x75 },
|
||||
{ 0x0A, 0x04 },
|
||||
{ 0x0E, 0x0B },
|
||||
{ 0x12, 0x80 },
|
||||
{ 0x1A, 0xC2 },
|
||||
{ 0x1B, 0x04 },
|
||||
OOVPA_END;
|
||||
|
||||
// ******************************************************************
|
||||
// * D3D8_5344
|
||||
// ******************************************************************
|
||||
|
@ -368,7 +717,7 @@ OOVPATable D3D8_5344[] = {
|
|||
REGISTER_OOVPA(D3DDevice_GetRenderTarget2, 5233, PATCH),
|
||||
REGISTER_OOVPA(D3DDevice_GetDepthStencilSurface2, 5233, PATCH),
|
||||
REGISTER_OOVPA(D3D_CommonSetRenderTarget, 5233, XREF),
|
||||
REGISTER_OOVPA(D3DDevice_SetRenderTarget, 4627, PATCH),
|
||||
REGISTER_OOVPA(D3DDevice_SetRenderTarget, 5344, PATCH),
|
||||
REGISTER_OOVPA(D3DDevice_AddRef, 5233, PATCH),
|
||||
REGISTER_OOVPA(D3DDevice_Reset, 4134, PATCH),
|
||||
REGISTER_OOVPA(D3DDevice_SetTileNoWait, 5233, PATCH),
|
||||
|
@ -380,11 +729,11 @@ OOVPATable D3D8_5344[] = {
|
|||
REGISTER_OOVPA(D3DDevice_GetVertexShaderSize, 3925, PATCH),
|
||||
REGISTER_OOVPA(D3DDevice_SetVertexShaderConstant1, 4627, PATCH),
|
||||
REGISTER_OOVPA(D3DDevice_SetVertexShaderConstant4, 4627, PATCH),
|
||||
REGISTER_OOVPA(D3DDevice_SetVertexShaderConstantNotInline, 5233, PATCH),
|
||||
REGISTER_OOVPA(D3DDevice_DeletePixelShader, 4134, PATCH),
|
||||
REGISTER_OOVPA(D3DDevice_CreatePixelShader, 3925, PATCH),
|
||||
REGISTER_OOVPA(D3DDevice_SetVertexShaderConstantNotInline, 5344, PATCH),
|
||||
REGISTER_OOVPA(D3DDevice_DeletePixelShader, 5344, PATCH),
|
||||
REGISTER_OOVPA(D3DDevice_CreatePixelShader, 5344, PATCH),
|
||||
REGISTER_OOVPA(D3DDevice_SetPixelShader, 5233, PATCH),
|
||||
REGISTER_OOVPA(D3DDevice_CreateTexture2, 5233, PATCH),
|
||||
REGISTER_OOVPA(D3DDevice_CreateTexture2, 5344, PATCH),
|
||||
REGISTER_OOVPA(D3DDevice_CreateTexture2, 4627, DISABLED),
|
||||
REGISTER_OOVPA(D3DDevice_SetIndices, 5233, PATCH),
|
||||
REGISTER_OOVPA(D3DDevice_SetTexture, 5233, PATCH),
|
||||
|
@ -394,11 +743,11 @@ OOVPATable D3D8_5344[] = {
|
|||
REGISTER_OOVPA(D3DDevice_SetVertexData2f, 4627, DISABLED),
|
||||
REGISTER_OOVPA(D3DDevice_SetVertexData2f, 5233, PATCH),
|
||||
REGISTER_OOVPA(D3DDevice_Begin, 5233, PATCH),
|
||||
REGISTER_OOVPA(D3DDevice_End, 5233, PATCH),
|
||||
REGISTER_OOVPA(D3DDevice_End, 5344, PATCH),
|
||||
REGISTER_OOVPA(D3DDevice_Clear, 5233, PATCH),
|
||||
REGISTER_OOVPA(D3DDevice_Swap, 5233, PATCH),
|
||||
REGISTER_OOVPA(D3DDevice_EnableOverlay, 4361, PATCH),
|
||||
REGISTER_OOVPA(D3DDevice_CreateVertexBuffer2, 4627, PATCH),
|
||||
REGISTER_OOVPA(D3DDevice_CreateVertexBuffer2, 5344, PATCH),
|
||||
REGISTER_OOVPA(D3DDevice_SetTextureState_TexCoordIndex, 4627, PATCH),
|
||||
REGISTER_OOVPA(D3DDevice_SetTextureState_BumpEnv, 4361, PATCH),
|
||||
REGISTER_OOVPA(D3DDevice_SetTextureState_BorderColor, 4361, PATCH),
|
||||
|
@ -447,9 +796,9 @@ OOVPATable D3D8_5344[] = {
|
|||
REGISTER_OOVPA(D3DResource_Register, 3925, PATCH),
|
||||
REGISTER_OOVPA(D3DDevice_GetBackBuffer2, 5233, DISABLED),
|
||||
REGISTER_OOVPA(D3DDevice_GetBackBuffer2, 5344, PATCH),
|
||||
REGISTER_OOVPA(D3DDevice_UpdateOverlay, 5233, PATCH),
|
||||
REGISTER_OOVPA(D3DDevice_GetOverlayUpdateStatus, 5233, PATCH),
|
||||
REGISTER_OOVPA(D3DDevice_BlockUntilVerticalBlank, 5233, PATCH),
|
||||
REGISTER_OOVPA(D3DDevice_UpdateOverlay, 5344, PATCH),
|
||||
REGISTER_OOVPA(D3DDevice_GetOverlayUpdateStatus, 5344, PATCH),
|
||||
REGISTER_OOVPA(D3DDevice_BlockUntilVerticalBlank, 5344, PATCH),
|
||||
REGISTER_OOVPA(D3DDevice_GetViewport, 4627, DISABLED),
|
||||
REGISTER_OOVPA(D3DDevice_GetViewport, 5344, PATCH),
|
||||
REGISTER_OOVPA(D3DDevice_SetViewport, 5233, DISABLED),
|
||||
|
@ -469,10 +818,10 @@ OOVPATable D3D8_5344[] = {
|
|||
REGISTER_OOVPA(D3DDevice_SetVertexShader, 5233, PATCH),
|
||||
REGISTER_OOVPA(D3DDevice_DrawVertices, 5233, PATCH),
|
||||
REGISTER_OOVPA(D3DDevice_GetViewportOffsetAndScale, 4627, PATCH),
|
||||
REGISTER_OOVPA(D3DDevice_DeleteVertexShader, 3925, PATCH),
|
||||
REGISTER_OOVPA(D3DDevice_DeleteVertexShader, 5344, PATCH),
|
||||
REGISTER_OOVPA(D3DDevice_SelectVertexShaderDirect, 4627, PATCH),
|
||||
REGISTER_OOVPA(D3DDevice_LoadVertexShader, 5233, PATCH),
|
||||
REGISTER_OOVPA(D3DDevice_Release, 5233, PATCH),
|
||||
REGISTER_OOVPA(D3DDevice_Release, 5344, PATCH),
|
||||
REGISTER_OOVPA(D3DDevice_SetScreenSpaceOffset, 5233, DISABLED),
|
||||
REGISTER_OOVPA(D3DDevice_SetScreenSpaceOffset, 5344, PATCH),
|
||||
REGISTER_OOVPA(D3D_SetFence, 5233, XREF),
|
||||
|
@ -481,7 +830,7 @@ OOVPATable D3D8_5344[] = {
|
|||
REGISTER_OOVPA(D3D_BlockOnTime, 5233, XREF),
|
||||
REGISTER_OOVPA(D3DDevice_BlockOnFence, 5233, PATCH),
|
||||
REGISTER_OOVPA(D3DDevice_GetTransform, 4361, PATCH),
|
||||
REGISTER_OOVPA(D3DDevice_SetPalette, 5233, PATCH),
|
||||
REGISTER_OOVPA(D3DDevice_SetPalette, 5344, PATCH),
|
||||
REGISTER_OOVPA(D3DDevice_GetCreationParameters, 4034, PATCH),
|
||||
REGISTER_OOVPA(D3DDevice_SetFlickerFilter, 5233, DISABLED),
|
||||
REGISTER_OOVPA(D3DDevice_SetFlickerFilter, 5344, PATCH),
|
||||
|
@ -507,6 +856,16 @@ OOVPATable D3D8_5344[] = {
|
|||
REGISTER_OOVPA(D3DCubeTexture_GetCubeMapSurface2, 4627, PATCH),
|
||||
REGISTER_OOVPA(D3DDevice_ApplyStateBlock, 4627, PATCH),
|
||||
REGISTER_OOVPA(D3DDevice_EndVisibilityTest, 4627, PATCH),
|
||||
REGISTER_OOVPA(D3DDevice_SetRenderState_PSTextureModes, 4361, PATCH),
|
||||
REGISTER_OOVPA(D3DDevice_SelectVertexShader, 5344, PATCH),
|
||||
REGISTER_OOVPA(D3DDevice_IsBusy, 5344, PATCH),
|
||||
REGISTER_OOVPA(D3DDevice_CreatePalette2, 5344, PATCH),
|
||||
REGISTER_OOVPA(D3DDevice_DrawVerticesUP, 5344, PATCH),
|
||||
REGISTER_OOVPA(D3DDevice_SetVertexDataColor, 5344, PATCH),
|
||||
REGISTER_OOVPA(D3DDevice_SetPixelShaderConstant, 5344, PATCH),
|
||||
REGISTER_OOVPA(D3DDevice_GetVisibilityTestResult, 5344, PATCH),
|
||||
REGISTER_OOVPA(D3DDevice_PersistDisplay, 5344, PATCH),
|
||||
REGISTER_OOVPA(D3DDevice_DrawIndexedVerticesUP, 5344, PATCH),
|
||||
};
|
||||
|
||||
// ******************************************************************
|
||||
|
|
|
@ -596,15 +596,7 @@ OOVPA_END;
|
|||
// ******************************************************************
|
||||
// * D3DResource_BlockUntilNotBusy
|
||||
// ******************************************************************
|
||||
OOVPA_XREF(D3DResource_BlockUntilNotBusy, 5558, 2,
|
||||
|
||||
XRefNoSaveIndex,
|
||||
XRefOne)
|
||||
|
||||
XREF_ENTRY( 0x01, XREF_D3D_BlockOnResource ),
|
||||
|
||||
{ 0x00, 0xE9 },
|
||||
OOVPA_END;
|
||||
#define D3DResource_BlockUntilNotBusy_5558 D3DResource_BlockUntilNotBusy_3925
|
||||
|
||||
// ******************************************************************
|
||||
// * D3DDevice_SetScissors
|
||||
|
@ -663,27 +655,7 @@ OOVPA_END;
|
|||
// ******************************************************************
|
||||
// * D3DDevice_CreatePixelShader
|
||||
// ******************************************************************
|
||||
OOVPA_NO_XREF(D3DDevice_CreatePixelShader, 5558, 11)
|
||||
|
||||
// D3DDevice_CreatePixelShader+0x05 : push 0xFC
|
||||
{ 0x05, 0x68 }, // (Offset,Value)-Pair #1
|
||||
{ 0x06, 0xFC }, // (Offset,Value)-Pair #2
|
||||
|
||||
// D3DDevice_CreatePixelShader+0x10 : mov eax, 0x8007000E
|
||||
{ 0x13, 0xB8 }, // (Offset,Value)-Pair #3
|
||||
{ 0x14, 0x0E }, // (Offset,Value)-Pair #4
|
||||
{ 0x15, 0x00 }, // (Offset,Value)-Pair #5
|
||||
{ 0x16, 0x07 }, // (Offset,Value)-Pair #6
|
||||
{ 0x17, 0x80 }, // (Offset,Value)-Pair #7
|
||||
|
||||
// D3DDevice_CreatePixelShader+0x31 : mov ecx, 0x3C
|
||||
{ 0x34, 0xB9 }, // (Offset,Value)-Pair #8
|
||||
{ 0x35, 0x3C }, // (Offset,Value)-Pair #9
|
||||
|
||||
// D3DDevice_CreatePixelShader+0x42 : retn 0x08
|
||||
{ 0x45, 0xC2 }, // (Offset,Value)-Pair #10
|
||||
{ 0x46, 0x08 }, // (Offset,Value)-Pair #11
|
||||
OOVPA_END;
|
||||
#define D3DDevice_CreatePixelShader_5558 D3DDevice_CreatePixelShader_5344
|
||||
|
||||
// ******************************************************************
|
||||
// * D3DDevice_DrawVerticesUP
|
||||
|
@ -866,16 +838,7 @@ OOVPA_END;
|
|||
// ******************************************************************
|
||||
// * D3DDevice_GetModelView
|
||||
// ******************************************************************
|
||||
OOVPA_NO_XREF(D3DDevice_GetModelView, 5558, 7)
|
||||
|
||||
{ 0x05, 0x57 },
|
||||
{ 0x0A, 0x85 },
|
||||
{ 0x10, 0xB0 },
|
||||
{ 0x16, 0x10 },
|
||||
{ 0x1C, 0x5E },
|
||||
{ 0x22, 0xC1 },
|
||||
{ 0x28, 0xE0 },
|
||||
OOVPA_END;
|
||||
#define D3DDevice_GetModelView_5558 D3DDevice_GetModelView_4134
|
||||
|
||||
// ******************************************************************
|
||||
// * D3DDevice_SetBackMaterial
|
||||
|
@ -1133,16 +1096,7 @@ OOVPA_END;
|
|||
// ******************************************************************
|
||||
// * D3DDevice_InsertCallback
|
||||
// ******************************************************************
|
||||
OOVPA_NO_XREF(D3DDevice_InsertCallback, 5558, 7)
|
||||
|
||||
{ 0x0C, 0x72 },
|
||||
{ 0x1A, 0x10 },
|
||||
{ 0x28, 0x85 },
|
||||
{ 0x36, 0xC7 },
|
||||
{ 0x44, 0x0C },
|
||||
{ 0x52, 0x00 },
|
||||
{ 0x60, 0x00 },
|
||||
OOVPA_END;
|
||||
#define D3DDevice_InsertCallback_5558 D3DDevice_InsertCallback_5028
|
||||
|
||||
// ******************************************************************
|
||||
// * D3DDevice_SetRenderState_LineWidth
|
||||
|
@ -1177,19 +1131,7 @@ OOVPA_END;
|
|||
// ******************************************************************
|
||||
// * D3DDevice_FlushVertexCache
|
||||
// ******************************************************************
|
||||
OOVPA_NO_XREF(D3DDevice_FlushVertexCache, 5558, 10)
|
||||
|
||||
{ 0x00, 0x56 },
|
||||
{ 0x07, 0x8B },
|
||||
{ 0x08, 0x06 },
|
||||
{ 0x0D, 0x05 },
|
||||
{ 0x13, 0xC7 },
|
||||
{ 0x15, 0x10 },
|
||||
{ 0x17, 0x04 },
|
||||
{ 0x1C, 0x00 },
|
||||
{ 0x21, 0xC0 },
|
||||
{ 0x26, 0xC3 },
|
||||
OOVPA_END;
|
||||
#define D3DDevice_FlushVertexCache_5558 D3DDevice_FlushVertexCache_4134
|
||||
|
||||
// ******************************************************************
|
||||
// * D3DDevice_SetRenderState_LogicOp
|
||||
|
|
|
@ -49,16 +49,7 @@ OOVPA_END;
|
|||
// ******************************************************************
|
||||
// * D3DDevice_GetVisibilityTestResult
|
||||
// ******************************************************************
|
||||
OOVPA_NO_XREF(D3DDevice_GetVisibilityTestResult, 5788, 7)
|
||||
|
||||
{ 0x0E, 0x08 },
|
||||
{ 0x10, 0xFF },
|
||||
{ 0x2A, 0x16 },
|
||||
{ 0x3C, 0x76 },
|
||||
{ 0x3F, 0x0C },
|
||||
{ 0x51, 0x0A },
|
||||
{ 0x5F, 0x0C },
|
||||
OOVPA_END;
|
||||
#define D3DDevice_GetVisibilityTestResult_5788 D3DDevice_GetVisibilityTestResult_5344
|
||||
|
||||
// ******************************************************************
|
||||
// * D3DDevice_GetViewport
|
||||
|
|
|
@ -557,33 +557,53 @@ OOVPA_XREF(CMcpxVoiceClient_SetVolume, 4134, 13,
|
|||
OOVPA_END;
|
||||
|
||||
// ******************************************************************
|
||||
// * DirectSound_CDirectSoundStream_SetVolume
|
||||
// * DirectSound_CDirectSoundVoice_SetVolume
|
||||
// ******************************************************************
|
||||
OOVPA_XREF(DirectSound_CDirectSoundStream_SetVolume, 4134, 11,
|
||||
OOVPA_XREF(DirectSound_CDirectSoundVoice_SetVolume, 4134, 11,
|
||||
|
||||
XRefNoSaveIndex,
|
||||
XREF_DirectSound_CDirectSoundVoice_SetVolume,
|
||||
XRefOne)
|
||||
|
||||
// DirectSound_CDirectSoundStream_SetVolume+0x15 : call [CMcpxVoiceClient::SetVolume]
|
||||
// DirectSound_CDirectSoundVoice_SetVolume+0x15 : call [CMcpxVoiceClient::SetVolume]
|
||||
XREF_ENTRY( 0x15, XREF_DSSTREAMSETVOLUME ), // (Offset,Value)-Pair #1
|
||||
|
||||
// DirectSound_CDirectSoundStream_SetVolume+0x00 : mov ecx, [esp+0x04]
|
||||
// DirectSound_CDirectSoundVoice_SetVolume+0x00 : mov ecx, [esp+0x04]
|
||||
{ 0x00, 0x8B }, // (Offset,Value)-Pair #2
|
||||
{ 0x01, 0x4C }, // (Offset,Value)-Pair #3
|
||||
{ 0x02, 0x24 }, // (Offset,Value)-Pair #4
|
||||
{ 0x03, 0x04 }, // (Offset,Value)-Pair #5
|
||||
|
||||
// DirectSound_CDirectSoundStream_SetVolume+0x0B : sub edx, [eax+0x20]
|
||||
// DirectSound_CDirectSoundVoice_SetVolume+0x0B : sub edx, [eax+0x20]
|
||||
{ 0x0B, 0x2B }, // (Offset,Value)-Pair #6
|
||||
{ 0x0C, 0x50 }, // (Offset,Value)-Pair #7
|
||||
{ 0x0D, 0x20 }, // (Offset,Value)-Pair #8
|
||||
|
||||
// DirectSound_CDirectSoundStream_SetVolume+0x11 : mov ecx, [ecx+0x0C]
|
||||
// DirectSound_CDirectSoundVoice_SetVolume+0x11 : mov ecx, [ecx+0x0C]
|
||||
{ 0x11, 0x8B }, // (Offset,Value)-Pair #9
|
||||
{ 0x12, 0x49 }, // (Offset,Value)-Pair #10
|
||||
{ 0x13, 0x0C }, // (Offset,Value)-Pair #11
|
||||
OOVPA_END;
|
||||
|
||||
// ******************************************************************
|
||||
// * DirectSound_CDirectSoundStream_SetVolume
|
||||
// ******************************************************************
|
||||
OOVPA_XREF(DirectSound_CDirectSoundStream_SetVolume, 4134, 9,
|
||||
|
||||
XRefNoSaveIndex,
|
||||
XRefOne)
|
||||
|
||||
XREF_ENTRY( 0x36, XREF_DirectSound_CDirectSoundVoice_SetVolume ),
|
||||
|
||||
{ 0x00, 0x56 },
|
||||
{ 0x0C, 0x00 },
|
||||
{ 0x14, 0x74 },
|
||||
{ 0x21, 0xB8 },
|
||||
{ 0x2A, 0x24 },
|
||||
{ 0x35, 0xE8 },
|
||||
{ 0x40, 0x68 },
|
||||
{ 0x4B, 0x8B },
|
||||
OOVPA_END;
|
||||
|
||||
// ******************************************************************
|
||||
// * IDirectSoundBuffer_LockA
|
||||
// ******************************************************************
|
||||
|
@ -879,7 +899,7 @@ OOVPA_END;
|
|||
// ******************************************************************
|
||||
// * DirectSound_CDirectSoundBuffer::Play
|
||||
// ******************************************************************
|
||||
OOVPA_XREF(DirectSound_CDirectSoundBuffer_Play, 4134, 7,
|
||||
OOVPA_XREF(DirectSound_CDirectSoundBuffer_Play, 4134, 11,
|
||||
|
||||
XREF_DSOUNDPLAY,
|
||||
XRefZero)
|
||||
|
@ -891,7 +911,10 @@ OOVPA_XREF(DirectSound_CDirectSoundBuffer_Play, 4134, 7,
|
|||
{ 0x26, 0xEB },
|
||||
{ 0x2C, 0x8B },
|
||||
{ 0x2F, 0x57 },
|
||||
|
||||
{ 0x30, 0xFF },
|
||||
{ 0x31, 0x74 },
|
||||
{ 0x32, 0x24 },
|
||||
{ 0x33, 0x18 },
|
||||
OOVPA_END;
|
||||
|
||||
// ******************************************************************
|
||||
|
@ -1092,6 +1115,7 @@ OOVPA_NO_XREF(DirectSound_CDirectSound_CommitDeferredSettings, 4134, 11)
|
|||
{ 0x78, 0xC9 }, // (Offset,Value)-Pair #11
|
||||
OOVPA_END;
|
||||
|
||||
// ******************************************************************
|
||||
// * DirectSound_CDirectSoundVoice::SetMaxDistance
|
||||
// ******************************************************************
|
||||
OOVPA_XREF(DirectSound_CDirectSoundVoice_SetMaxDistance, 4134, 9,
|
||||
|
@ -1169,6 +1193,26 @@ OOVPA_XREF(IDirectSoundBuffer_SetMaxDistance, 4134, 10,
|
|||
{ 0x23, 0x00 }
|
||||
OOVPA_END;
|
||||
|
||||
// ******************************************************************
|
||||
// * DirectSound_CDirectSoundStream_SetMaxDistance
|
||||
// ******************************************************************
|
||||
OOVPA_XREF(DirectSound_CDirectSoundStream_SetMaxDistance, 4134, 9,
|
||||
|
||||
XRefNoSaveIndex,
|
||||
XRefOne)
|
||||
|
||||
XREF_ENTRY( 0x3E, XREF_DSVOICESETMAXDISTANCE ),
|
||||
|
||||
{ 0x00, 0x56 },
|
||||
{ 0x0C, 0x00 },
|
||||
{ 0x14, 0x74 },
|
||||
{ 0x21, 0xB8 },
|
||||
{ 0x2A, 0x24 },
|
||||
{ 0x3D, 0xE8 },
|
||||
{ 0x48, 0x68 },
|
||||
{ 0x53, 0x8B },
|
||||
OOVPA_END;
|
||||
|
||||
// ******************************************************************
|
||||
// * DirectSound_CDirectSoundVoice::SetMinDistance
|
||||
// ******************************************************************
|
||||
|
@ -1247,6 +1291,26 @@ OOVPA_XREF(IDirectSoundBuffer_SetMinDistance, 4134, 10,
|
|||
{ 0x23, 0x00 }
|
||||
OOVPA_END;
|
||||
|
||||
// ******************************************************************
|
||||
// * DirectSound_CDirectSoundStream_SetMinDistance
|
||||
// ******************************************************************
|
||||
OOVPA_XREF(DirectSound_CDirectSoundStream_SetMinDistance, 4134, 9,
|
||||
|
||||
XRefNoSaveIndex,
|
||||
XRefOne)
|
||||
|
||||
XREF_ENTRY( 0x3E, XREF_DSVOICESETMINDISTANCE ),
|
||||
|
||||
{ 0x00, 0x56 },
|
||||
{ 0x0C, 0x00 },
|
||||
{ 0x14, 0x74 },
|
||||
{ 0x21, 0xB8 },
|
||||
{ 0x2A, 0x24 },
|
||||
{ 0x3D, 0xE8 },
|
||||
{ 0x48, 0x68 },
|
||||
{ 0x53, 0x8B },
|
||||
OOVPA_END;
|
||||
|
||||
// ******************************************************************
|
||||
// * DirectSound_CDirectSoundVoice::SetRolloffFactor
|
||||
// ******************************************************************
|
||||
|
@ -1325,6 +1389,26 @@ OOVPA_XREF(IDirectSoundBuffer_SetRolloffFactor, 4134, 10,
|
|||
{ 0x23, 0x00 }
|
||||
OOVPA_END;
|
||||
|
||||
// ******************************************************************
|
||||
// * DirectSound_CDirectSoundStream_SetRolloffFactor
|
||||
// ******************************************************************
|
||||
OOVPA_XREF(DirectSound_CDirectSoundStream_SetRolloffFactor, 4134, 9,
|
||||
|
||||
XRefNoSaveIndex,
|
||||
XRefOne)
|
||||
|
||||
XREF_ENTRY( 0x3E, XREF_DSVOICESETROLLOFFFACTOR ),
|
||||
|
||||
{ 0x00, 0x56 },
|
||||
{ 0x0C, 0x00 },
|
||||
{ 0x14, 0x74 },
|
||||
{ 0x21, 0xB8 },
|
||||
{ 0x2A, 0x24 },
|
||||
{ 0x3D, 0xE8 },
|
||||
{ 0x48, 0x68 },
|
||||
{ 0x53, 0x8B },
|
||||
OOVPA_END;
|
||||
|
||||
// ******************************************************************
|
||||
// * DirectSound_CDirectSoundVoice::SetDistanceFactor
|
||||
// ******************************************************************
|
||||
|
@ -1557,6 +1641,26 @@ OOVPA_XREF(IDirectSoundBuffer_SetConeOrientation, 4134, 9,
|
|||
{ 0x34, 0x00 }
|
||||
OOVPA_END;
|
||||
|
||||
// ******************************************************************
|
||||
// * DirectSound_CDirectSoundStream_SetConeOrientation
|
||||
// ******************************************************************
|
||||
OOVPA_XREF(DirectSound_CDirectSoundStream_SetConeOrientation, 4134, 9,
|
||||
|
||||
XRefNoSaveIndex,
|
||||
XRefOne)
|
||||
|
||||
XREF_ENTRY( 0x4E, XREF_DSVOICESETCONEORIENTATION ),
|
||||
|
||||
{ 0x00, 0x55 },
|
||||
{ 0x0F, 0x00 },
|
||||
{ 0x17, 0x74 },
|
||||
{ 0x24, 0xB8 },
|
||||
{ 0x2A, 0x3B },
|
||||
{ 0x39, 0xEC },
|
||||
{ 0x44, 0x24 },
|
||||
{ 0x4D, 0xE8 },
|
||||
OOVPA_END;
|
||||
|
||||
// ******************************************************************
|
||||
// * DirectSound_CDirectSoundVoice::SetConeOutsideVolume
|
||||
// ******************************************************************
|
||||
|
@ -1635,6 +1739,26 @@ OOVPA_XREF(IDirectSoundBuffer_SetConeOutsideVolume, 4134, 9,
|
|||
{ 0x1F, 0x00 }
|
||||
OOVPA_END;
|
||||
|
||||
// ******************************************************************
|
||||
// * DirectSound_CDirectSoundStream_SetConeOutsideVolume
|
||||
// ******************************************************************
|
||||
OOVPA_XREF(DirectSound_CDirectSoundStream_SetConeOutsideVolume, 4134, 9,
|
||||
|
||||
XRefNoSaveIndex,
|
||||
XRefOne)
|
||||
|
||||
XREF_ENTRY( 0x3A, XREF_DSVOICESETCONEOUTSIDEVOLUME ),
|
||||
|
||||
{ 0x00, 0x56 },
|
||||
{ 0x0C, 0x00 },
|
||||
{ 0x21, 0xB8 },
|
||||
{ 0x24, 0x00 },
|
||||
{ 0x39, 0xE8 },
|
||||
{ 0x3E, 0x85 },
|
||||
{ 0x4F, 0x8B },
|
||||
{ 0x53, 0xC2 },
|
||||
OOVPA_END;
|
||||
|
||||
// ******************************************************************
|
||||
// * DirectSound_CDirectSoundVoice::SetPosition
|
||||
// ******************************************************************
|
||||
|
@ -1684,6 +1808,25 @@ OOVPA_XREF(DirectSound_CDirectSoundBuffer_SetPosition, 4134, 9,
|
|||
{ 0x66, 0x00 }
|
||||
OOVPA_END;
|
||||
|
||||
// ******************************************************************
|
||||
// * DirectSound_CDirectSoundStream_SetPosition
|
||||
// ******************************************************************
|
||||
OOVPA_XREF(DirectSound_CDirectSoundStream_SetPosition, 4134, 9,
|
||||
|
||||
XRefNoSaveIndex,
|
||||
XRefOne)
|
||||
|
||||
XREF_ENTRY( 0x4E, XREF_DSVOICESETPOSITION ),
|
||||
|
||||
{ 0x00, 0x55 },
|
||||
{ 0x0F, 0x00 },
|
||||
{ 0x17, 0x74 },
|
||||
{ 0x24, 0xB8 },
|
||||
{ 0x2A, 0x3B },
|
||||
{ 0x39, 0xEC },
|
||||
{ 0x58, 0x68 },
|
||||
{ 0x63, 0x8B },
|
||||
OOVPA_END;
|
||||
|
||||
// ******************************************************************
|
||||
// * DirectSound_CDirectSoundVoice::SetVelocity
|
||||
|
@ -1734,6 +1877,26 @@ OOVPA_XREF(DirectSound_CDirectSoundBuffer_SetVelocity, 4134, 9,
|
|||
{ 0x66, 0x00 }
|
||||
OOVPA_END;
|
||||
|
||||
// ******************************************************************
|
||||
// * DirectSound_CDirectSoundStream_SetVelocity
|
||||
// ******************************************************************
|
||||
OOVPA_XREF(DirectSound_CDirectSoundStream_SetVelocity, 4134, 9,
|
||||
|
||||
XRefNoSaveIndex,
|
||||
XRefOne)
|
||||
|
||||
XREF_ENTRY( 0x4E, XREF_DSVOICESETVELOCITY ),
|
||||
|
||||
{ 0x00, 0x55 },
|
||||
{ 0x0F, 0x00 },
|
||||
{ 0x17, 0x74 },
|
||||
{ 0x24, 0xB8 },
|
||||
{ 0x2A, 0x3B },
|
||||
{ 0x35, 0x83 },
|
||||
{ 0x40, 0x45 },
|
||||
{ 0x63, 0x8B },
|
||||
OOVPA_END;
|
||||
|
||||
// ******************************************************************
|
||||
// * DirectSound_CDirectSoundVoice::SetDopplerFactor
|
||||
// ******************************************************************
|
||||
|
@ -1893,6 +2056,26 @@ OOVPA_XREF(IDirectSoundBuffer_SetI3DL2Source, 4134, 10,
|
|||
{ 0x1F, 0x00 }
|
||||
OOVPA_END;
|
||||
|
||||
// ******************************************************************
|
||||
// * DirectSound_CDirectSoundStream_SetI3DL2Source
|
||||
// ******************************************************************
|
||||
OOVPA_XREF(DirectSound_CDirectSoundStream_SetI3DL2Source, 4134, 9,
|
||||
|
||||
XRefNoSaveIndex,
|
||||
XRefOne)
|
||||
|
||||
XREF_ENTRY( 0x3A, XREF_DSVOICESETI3DL2SOURCE ),
|
||||
|
||||
{ 0x00, 0x56 },
|
||||
{ 0x0C, 0x00 },
|
||||
{ 0x14, 0x74 },
|
||||
{ 0x21, 0xB8 },
|
||||
{ 0x2A, 0x24 },
|
||||
{ 0x39, 0xE8 },
|
||||
{ 0x44, 0x68 },
|
||||
{ 0x4F, 0x8B },
|
||||
OOVPA_END;
|
||||
|
||||
// ******************************************************************
|
||||
// * IDirectSoundBuffer_Stop
|
||||
// ******************************************************************
|
||||
|
@ -1975,6 +2158,26 @@ OOVPA_XREF(IDirectSoundBuffer_SetAllParameters, 4134, 9,
|
|||
{ 0x1E, 0x0C },
|
||||
OOVPA_END;
|
||||
|
||||
// ******************************************************************
|
||||
// * DirectSound_CDirectSoundStream_SetAllParameters
|
||||
// ******************************************************************
|
||||
OOVPA_XREF(DirectSound_CDirectSoundStream_SetAllParameters, 4134, 9,
|
||||
|
||||
XRefNoSaveIndex,
|
||||
XRefOne)
|
||||
|
||||
XREF_ENTRY( 0x3A, XREF_DirectSound_CDirectSoundVoice_SetAllParameters ),
|
||||
|
||||
{ 0x00, 0x56 },
|
||||
{ 0x0C, 0x00 },
|
||||
{ 0x14, 0x74 },
|
||||
{ 0x21, 0xB8 },
|
||||
{ 0x2A, 0x24 },
|
||||
{ 0x39, 0xE8 },
|
||||
{ 0x44, 0x68 },
|
||||
{ 0x4F, 0x8B },
|
||||
OOVPA_END;
|
||||
|
||||
// ******************************************************************
|
||||
// * IDirectSoundBuffer_GetStatus
|
||||
// ******************************************************************
|
||||
|
@ -2057,6 +2260,26 @@ OOVPA_XREF(IDirectSoundBuffer_SetMode, 4134, 9,
|
|||
{ 0x1E, 0x0C },
|
||||
OOVPA_END;
|
||||
|
||||
// ******************************************************************
|
||||
// * DirectSound_CDirectSoundStream_SetMode
|
||||
// ******************************************************************
|
||||
OOVPA_XREF(DirectSound_CDirectSoundStream_SetMode, 4134, 9,
|
||||
|
||||
XRefNoSaveIndex,
|
||||
XRefOne)
|
||||
|
||||
XREF_ENTRY( 0x3A, XREF_DSBUFFERSETMODEB ),
|
||||
|
||||
{ 0x00, 0x56 },
|
||||
{ 0x0C, 0x00 },
|
||||
{ 0x14, 0x74 },
|
||||
{ 0x21, 0xB8 },
|
||||
{ 0x2A, 0x24 },
|
||||
{ 0x39, 0xE8 },
|
||||
{ 0x44, 0x68 },
|
||||
{ 0x4F, 0x8B },
|
||||
OOVPA_END;
|
||||
|
||||
// ******************************************************************
|
||||
// * DirectSound::CMcpxVoiceClient::SetFilter
|
||||
// ******************************************************************
|
||||
|
@ -2288,6 +2511,161 @@ OOVPA_XREF(DirectSoundCreateStream, 4134, 12,
|
|||
{ 0x55, 0x08 }, // (Offset,Value)-Pair #12
|
||||
OOVPA_END;
|
||||
|
||||
// ******************************************************************
|
||||
// * DirectSound_CDirectSoundVoiceSettings::SetMixBinVolumes
|
||||
// ******************************************************************
|
||||
OOVPA_XREF(DirectSound_CDirectSoundVoiceSettings_SetMixBinVolumes, 4134, 10,
|
||||
|
||||
XREF_DSSETMIXBINVOLUMESC,
|
||||
XRefZero)
|
||||
|
||||
// DirectSound_CDirectSoundVoiceSettings_SetMixBinVolumes+0x09 : jbe +0x16
|
||||
{ 0x09, 0x76 }, // (Offset,Value)-Pair #1
|
||||
{ 0x0A, 0x16 }, // (Offset,Value)-Pair #2
|
||||
|
||||
// DirectSound_CDirectSoundVoiceSettings_SetMixBinVolumes+0x18 : mov [ecx+edi*4+0x30], eax
|
||||
{ 0x18, 0x89 }, // (Offset,Value)-Pair #3
|
||||
{ 0x19, 0x44 }, // (Offset,Value)-Pair #4
|
||||
{ 0x1A, 0xB9 }, // (Offset,Value)-Pair #5
|
||||
{ 0x1B, 0x30 }, // (Offset,Value)-Pair #6
|
||||
|
||||
// DirectSound_CDirectSoundVoiceSettings_SetMixBinVolumes+0x1E : jb +0xEC
|
||||
{ 0x1E, 0x72 }, // (Offset,Value)-Pair #7
|
||||
{ 0x1F, 0xEC }, // (Offset,Value)-Pair #8
|
||||
|
||||
// DirectSound_CDirectSoundVoiceSettings_SetMixBinVolumes+0x22 : retn 0x04
|
||||
{ 0x22, 0xC2 }, // (Offset,Value)-Pair #9
|
||||
{ 0x23, 0x04 }, // (Offset,Value)-Pair #10
|
||||
OOVPA_END;
|
||||
|
||||
// ******************************************************************
|
||||
// * DirectSound_CDirectSoundVoice::SetMixBinVolumes
|
||||
// ******************************************************************
|
||||
OOVPA_XREF(DirectSound_CDirectSoundVoice_SetMixBinVolumes, 4134, 17,
|
||||
|
||||
XREF_DSSETMIXBINVOLUMESB,
|
||||
XRefOne)
|
||||
|
||||
// DirectSound_CDirectSoundVoice_SetMixBinVolumes+0x0D : call [CDirectSoundVoiceSettings::SetMixBinVolumes]
|
||||
XREF_ENTRY( 0x0D, XREF_DSSETMIXBINVOLUMESC ), // (Offset,Value)-Pair #1
|
||||
|
||||
// DirectSound_CDirectSoundVoice_SetMixBinVolumes+0x01 : mov esi, [esp+8]
|
||||
{ 0x01, 0x8B }, // (Offset,Value)-Pair #2
|
||||
{ 0x02, 0x74 }, // (Offset,Value)-Pair #3
|
||||
{ 0x03, 0x24 }, // (Offset,Value)-Pair #4
|
||||
{ 0x04, 0x08 }, // (Offset,Value)-Pair #5
|
||||
|
||||
// DirectSound_CDirectSoundVoice_SetMixBinVolumes+0x05 : push [esp+0x0C]
|
||||
{ 0x05, 0xFF }, // (Offset,Value)-Pair #6
|
||||
{ 0x06, 0x74 }, // (Offset,Value)-Pair #7
|
||||
{ 0x07, 0x24 }, // (Offset,Value)-Pair #8
|
||||
{ 0x08, 0x0C }, // (Offset,Value)-Pair #9
|
||||
|
||||
// DirectSound_CDirectSoundVoice_SetMixBinVolumes+0x09 : mov ecx, [esi+0x10]
|
||||
{ 0x09, 0x8B }, // (Offset,Value)-Pair #10
|
||||
{ 0x0A, 0x4E }, // (Offset,Value)-Pair #11
|
||||
{ 0x0B, 0x10 }, // (Offset,Value)-Pair #12
|
||||
|
||||
// DirectSound_CDirectSoundVoice_SetMixBinVolumes+0x11 : mov ecx, [esi+0x0C]
|
||||
{ 0x11, 0x8B }, // (Offset,Value)-Pair #13
|
||||
{ 0x12, 0x4E }, // (Offset,Value)-Pair #14
|
||||
{ 0x13, 0x0C }, // (Offset,Value)-Pair #15
|
||||
|
||||
// DirectSound_CDirectSoundVoice_SetMixBinVolumes+0x1A : retn 0x08
|
||||
{ 0x1A, 0xC2 }, // (Offset,Value)-Pair #16
|
||||
{ 0x1B, 0x08 }, // (Offset,Value)-Pair #17
|
||||
OOVPA_END;
|
||||
|
||||
// ******************************************************************
|
||||
// * DirectSound_CDirectSoundBuffer::SetMixBinVolumes
|
||||
// ******************************************************************
|
||||
OOVPA_XREF(DirectSound_CDirectSoundBuffer_SetMixBinVolumes, 4134, 17,
|
||||
|
||||
XREF_DSSETMIXBINVOLUMESA,
|
||||
XRefOne)
|
||||
|
||||
// DirectSound_CDirectSoundBuffer_SetMixBinVolumes+0x32 : call [CDirectSoundVoice::SetMixBinVolumes]
|
||||
XREF_ENTRY( 0x32, XREF_DSSETMIXBINVOLUMESB ), // (Offset,Value)-Pair #1
|
||||
|
||||
// DirectSound_CDirectSoundBuffer_SetMixBinVolumes+0x21 : mov eax, 0x80004005
|
||||
{ 0x21, 0xB8 }, // (Offset,Value)-Pair #2
|
||||
{ 0x22, 0x05 }, // (Offset,Value)-Pair #3
|
||||
{ 0x23, 0x40 }, // (Offset,Value)-Pair #4
|
||||
{ 0x24, 0x00 }, // (Offset,Value)-Pair #5
|
||||
{ 0x25, 0x80 }, // (Offset,Value)-Pair #6
|
||||
|
||||
// DirectSound_CDirectSoundBuffer_SetMixBinVolumes+0x29 : push [esp+0x10]; push [esp+0x10]
|
||||
{ 0x29, 0xFF }, // (Offset,Value)-Pair #7
|
||||
{ 0x2A, 0x74 }, // (Offset,Value)-Pair #8
|
||||
{ 0x2B, 0x24 }, // (Offset,Value)-Pair #9
|
||||
{ 0x2C, 0x10 }, // (Offset,Value)-Pair #10
|
||||
{ 0x2D, 0xFF }, // (Offset,Value)-Pair #11
|
||||
{ 0x2E, 0x74 }, // (Offset,Value)-Pair #12
|
||||
{ 0x2F, 0x24 }, // (Offset,Value)-Pair #13
|
||||
{ 0x30, 0x10 }, // (Offset,Value)-Pair #14
|
||||
|
||||
// DirectSound_CDirectSoundBuffer_SetMixBinVolumes+0x49 : pop edi
|
||||
{ 0x49, 0x5F }, // (Offset,Value)-Pair #15
|
||||
|
||||
// DirectSound_CDirectSoundBuffer_SetMixBinVolumes+0x4B : retn 0x08
|
||||
{ 0x4B, 0xC2 }, // (Offset,Value)-Pair #16
|
||||
{ 0x4C, 0x08 }, // (Offset,Value)-Pair #17
|
||||
OOVPA_END;
|
||||
|
||||
// ******************************************************************
|
||||
// * IDirectSoundBuffer_SetMixBinVolumes
|
||||
// ******************************************************************
|
||||
OOVPA_XREF(IDirectSoundBuffer_SetMixBinVolumes, 4134, 12,
|
||||
|
||||
XRefNoSaveIndex,
|
||||
XRefOne)
|
||||
|
||||
// IDirectSoundBuffer_SetMixBinVolumes+0x15 : call [CDirectSoundBuffer::SetMixBinVolumes]
|
||||
XREF_ENTRY( 0x15, XREF_DSSETMIXBINVOLUMESA ), // (Offset,Value)-Pair #1
|
||||
|
||||
// IDirectSoundBuffer_SetMixBinVolumes+0x04 : push [esp+0x08]
|
||||
{ 0x04, 0xFF }, // (Offset,Value)-Pair #2
|
||||
{ 0x05, 0x74 }, // (Offset,Value)-Pair #3
|
||||
{ 0x06, 0x24 }, // (Offset,Value)-Pair #4
|
||||
{ 0x07, 0x08 }, // (Offset,Value)-Pair #5
|
||||
|
||||
// IDirectSoundBuffer_SetMixBinVolumes+0x0A : add eax, 0xFFFFFFE4
|
||||
{ 0x0A, 0x83 }, // (Offset,Value)-Pair #6
|
||||
{ 0x0B, 0xC0 }, // (Offset,Value)-Pair #7
|
||||
{ 0x0C, 0xE4 }, // (Offset,Value)-Pair #8
|
||||
|
||||
// IDirectSoundBuffer_SetMixBinVolumes+0x0F : sbb ecx, ecx
|
||||
{ 0x0F, 0x1B }, // (Offset,Value)-Pair #9
|
||||
{ 0x10, 0xC9 }, // (Offset,Value)-Pair #10
|
||||
|
||||
// IDirectSoundBuffer_SetMixBinVolumes+0x11 : and ecx, eax
|
||||
{ 0x11, 0x23 }, // (Offset,Value)-Pair #11
|
||||
{ 0x12, 0xC8 }, // (Offset,Value)-Pair #12
|
||||
OOVPA_END;
|
||||
|
||||
// ******************************************************************
|
||||
// * DirectSound_CDirectSoundStream_SetMixBinVolumes
|
||||
// ******************************************************************
|
||||
OOVPA_XREF(DirectSound_CDirectSoundStream_SetMixBinVolumes, 4134, 12,
|
||||
|
||||
XRefNoSaveIndex,
|
||||
XRefOne)
|
||||
|
||||
XREF_ENTRY( 0x36, XREF_DSSETMIXBINVOLUMESB ),
|
||||
|
||||
{ 0x0D, 0x0F },
|
||||
{ 0x0E, 0xB6 },
|
||||
{ 0x0F, 0xF0 },
|
||||
{ 0x21, 0xB8 },
|
||||
{ 0x22, 0x05 },
|
||||
{ 0x23, 0x40 },
|
||||
{ 0x24, 0x00 },
|
||||
{ 0x25, 0x80 },
|
||||
{ 0x4F, 0xC2 },
|
||||
{ 0x50, 0x08 },
|
||||
{ 0x51, 0x00 },
|
||||
OOVPA_END;
|
||||
|
||||
// ******************************************************************
|
||||
// * Direct, 4134
|
||||
// ******************************************************************
|
||||
|
@ -2319,6 +2697,9 @@ OOVPATable DSound_4134[] = {
|
|||
REGISTER_OOVPA(DirectSound_CDirectSoundBuffer_SetFrequency, 4134, XREF),
|
||||
REGISTER_OOVPA(IDirectSoundBuffer_SetFrequency, 4134, PATCH),
|
||||
REGISTER_OOVPA(CMcpxVoiceClient_SetVolume, 4134, XREF),
|
||||
REGISTER_OOVPA(DirectSound_CDirectSoundVoice_SetVolume, 4134, XREF),
|
||||
REGISTER_OOVPA(DirectSound_CDirectSoundBuffer_SetVolume, 4134, XREF),
|
||||
REGISTER_OOVPA(IDirectSoundBuffer_SetVolume, 4134, PATCH),
|
||||
REGISTER_OOVPA(DirectSound_CDirectSoundStream_SetVolume, 4134, PATCH),
|
||||
REGISTER_OOVPA(IDirectSoundBuffer_LockA, 4134, XREF),
|
||||
REGISTER_OOVPA(IDirectSoundBuffer_Lock, 3936, PATCH),
|
||||
|
@ -2349,12 +2730,15 @@ OOVPATable DSound_4134[] = {
|
|||
REGISTER_OOVPA(DirectSound_CDirectSoundVoice_SetMaxDistance, 4134, XREF),
|
||||
REGISTER_OOVPA(DirectSound_CDirectSoundBuffer_SetMaxDistance, 4134, XREF),
|
||||
REGISTER_OOVPA(IDirectSoundBuffer_SetMaxDistance, 4134, PATCH),
|
||||
REGISTER_OOVPA(DirectSound_CDirectSoundStream_SetMaxDistance, 4134, PATCH),
|
||||
REGISTER_OOVPA(DirectSound_CDirectSoundVoice_SetMinDistance, 4134, XREF),
|
||||
REGISTER_OOVPA(DirectSound_CDirectSoundBuffer_SetMinDistance, 4134, XREF),
|
||||
REGISTER_OOVPA(IDirectSoundBuffer_SetMinDistance, 4134, PATCH),
|
||||
REGISTER_OOVPA(DirectSound_CDirectSoundStream_SetMinDistance, 4134, PATCH),
|
||||
REGISTER_OOVPA(DirectSound_CDirectSoundVoice_SetRolloffFactor, 4134, XREF), // s+
|
||||
REGISTER_OOVPA(DirectSound_CDirectSoundBuffer_SetRolloffFactor, 4134, XREF),
|
||||
REGISTER_OOVPA(IDirectSoundBuffer_SetRolloffFactor, 4134, PATCH),
|
||||
REGISTER_OOVPA(DirectSound_CDirectSoundStream_SetRolloffFactor, 4134, PATCH),
|
||||
REGISTER_OOVPA(DirectSound_CDirectSoundVoice_SetDistanceFactor, 4134, XREF),
|
||||
REGISTER_OOVPA(DirectSound_CDirectSoundBuffer_SetDistanceFactor, 4134, XREF),
|
||||
REGISTER_OOVPA(IDirectSoundBuffer_SetDistanceFactor, 4134, PATCH),
|
||||
|
@ -2364,40 +2748,49 @@ OOVPATable DSound_4134[] = {
|
|||
REGISTER_OOVPA(DirectSound_CDirectSoundVoice_SetConeOrientation, 4134, XREF),
|
||||
REGISTER_OOVPA(DirectSound_CDirectSoundBuffer_SetConeOrientation, 4134, XREF),
|
||||
REGISTER_OOVPA(IDirectSoundBuffer_SetConeOrientation, 4134, PATCH),
|
||||
REGISTER_OOVPA(DirectSound_CDirectSoundStream_SetConeOrientation, 4134, PATCH),
|
||||
REGISTER_OOVPA(DirectSound_CDirectSoundVoice_SetConeOutsideVolume, 4134, XREF),
|
||||
REGISTER_OOVPA(DirectSound_CDirectSoundBuffer_SetConeOutsideVolume, 4134, XREF),
|
||||
REGISTER_OOVPA(IDirectSoundBuffer_SetConeOutsideVolume, 4134, PATCH),
|
||||
REGISTER_OOVPA(DirectSound_CDirectSoundStream_SetConeOutsideVolume, 4134, PATCH),
|
||||
REGISTER_OOVPA(DirectSound_CDirectSoundVoice_SetPosition, 4134, XREF),
|
||||
REGISTER_OOVPA(DirectSound_CDirectSoundBuffer_SetPosition, 4134, XREF),
|
||||
REGISTER_OOVPA(IDirectSoundBuffer_SetPosition, 3936, PATCH),
|
||||
REGISTER_OOVPA(DirectSound_CDirectSoundStream_SetPosition, 4134, PATCH),
|
||||
REGISTER_OOVPA(DirectSound_CDirectSoundVoice_SetVelocity, 4134, XREF),
|
||||
REGISTER_OOVPA(DirectSound_CDirectSoundBuffer_SetVelocity, 4134, XREF),
|
||||
REGISTER_OOVPA(IDirectSoundBuffer_SetVelocity, 3936, PATCH),
|
||||
REGISTER_OOVPA(DirectSound_CDirectSoundStream_SetVelocity, 4134, PATCH),
|
||||
REGISTER_OOVPA(DirectSound_CDirectSoundVoice_SetDopplerFactor, 4134, XREF),
|
||||
REGISTER_OOVPA(DirectSound_CDirectSoundBuffer_SetDopplerFactor, 4134, XREF),
|
||||
REGISTER_OOVPA(IDirectSoundBuffer_SetDopplerFactor, 4134, PATCH),
|
||||
REGISTER_OOVPA(DirectSound_CDirectSoundVoice_SetI3DL2Source, 4134, XREF),
|
||||
REGISTER_OOVPA(DirectSound_CDirectSoundBuffer_SetI3DL2Source, 4134, XREF),
|
||||
REGISTER_OOVPA(IDirectSoundBuffer_SetI3DL2Source, 4134, PATCH),
|
||||
REGISTER_OOVPA(DirectSound_CDirectSoundStream_SetI3DL2Source, 4134, PATCH),
|
||||
REGISTER_OOVPA(IDirectSoundBuffer_Stop, 4134, PATCH),
|
||||
REGISTER_OOVPA(IDirectSoundBuffer_Release, 3936, PATCH), // +s
|
||||
REGISTER_OOVPA(IDirectSoundBuffer_AddRef, 3936, PATCH),
|
||||
REGISTER_OOVPA(DirectSound_CDirectSoundVoice_SetAllParameters, 4134, XREF),
|
||||
REGISTER_OOVPA(DirectSound_CDirectSoundBuffer_SetAllParameters, 4134, XREF),
|
||||
REGISTER_OOVPA(IDirectSound_SetAllParameters, 4134, ALIAS, IDirectSoundBuffer_SetAllParameters), // Use that for now. Okay, it's your call pal...
|
||||
REGISTER_OOVPA(DirectSound_CDirectSoundStream_SetAllParameters, 4134, PATCH),
|
||||
REGISTER_OOVPA(IDirectSoundBuffer_GetStatus, 4134, PATCH),
|
||||
REGISTER_OOVPA(DirectSound_CDirectSoundVoice_SetMode, 4134, XREF),
|
||||
REGISTER_OOVPA(DirectSound_CDirectSoundBuffer_SetMode, 4134, XREF),
|
||||
REGISTER_OOVPA(IDirectSoundBuffer_SetMode, 4134, PATCH),
|
||||
REGISTER_OOVPA(DirectSound_CDirectSoundStream_SetMode, 4134, PATCH),
|
||||
REGISTER_OOVPA(DirectSound_CMcpxVoiceClient_SetFilter, 4134, XREF),
|
||||
REGISTER_OOVPA(DirectSound_CDirectSoundVoice_SetFilter, 4134, XREF),
|
||||
REGISTER_OOVPA(DirectSound_CDirectSoundBuffer_SetFilter, 4134, XREF),
|
||||
REGISTER_OOVPA(IDirectSoundBuffer_SetFilter, 4134, PATCH),
|
||||
REGISTER_OOVPA(DirectSound_CDirectSound_SetVelocity, 4134, XREF),
|
||||
REGISTER_OOVPA(DirectSound_CDirectSoundVoice_SetPosition, 4134, XREF),
|
||||
REGISTER_OOVPA(DirectSound_CDirectSoundVoice_SetPitch, 4134, XREF),
|
||||
REGISTER_OOVPA(DirectSound_CDirectSoundBuffer_SetVolume, 4134, XREF),
|
||||
REGISTER_OOVPA(IDirectSoundBuffer_SetVolume, 4134, PATCH),
|
||||
REGISTER_OOVPA(DirectSound_CDirectSoundVoiceSettings_SetMixBinVolumes, 4134, XREF),
|
||||
REGISTER_OOVPA(DirectSound_CDirectSoundVoice_SetMixBinVolumes, 4134, XREF),
|
||||
REGISTER_OOVPA(DirectSound_CDirectSoundBuffer_SetMixBinVolumes, 4134, XREF),
|
||||
REGISTER_OOVPA(IDirectSoundBuffer_SetMixBinVolumes, 4134, PATCH),
|
||||
REGISTER_OOVPA(DirectSound_CDirectSoundStream_SetMixBinVolumes, 4134, PATCH),
|
||||
};
|
||||
|
||||
// ******************************************************************
|
||||
|
|
|
@ -215,13 +215,14 @@ OOVPA_END;
|
|||
// ******************************************************************
|
||||
// * CMcpxBuffer_PlayA
|
||||
// ******************************************************************
|
||||
OOVPA_XREF(CMcpxBuffer_PlayA, 4361, 10,
|
||||
OOVPA_XREF(CMcpxBuffer_PlayA, 4361, 11,
|
||||
|
||||
XREF_CMcpxBuffer_PlayA,
|
||||
XRefZero)
|
||||
|
||||
{ 0x03, 0x8B },
|
||||
{ 0x0E, 0xF1 },
|
||||
{ 0x1B, 0x08 },
|
||||
{ 0x1C, 0x6A },
|
||||
{ 0x1D, 0x03 },
|
||||
{ 0x1E, 0xFF },
|
||||
|
@ -297,16 +298,16 @@ OOVPA_XREF(CMcpxBuffer_Stop, 4361, 9,
|
|||
{ 0x0E, 0x3C }, // (Offset,Value)-Pair #1
|
||||
{ 0x0F, 0x03 }, // (Offset,Value)-Pair #2
|
||||
|
||||
// CMcpxBuffer_Stop+0x1C : cmp ax, 0x0203
|
||||
{ 0x28, 0x66 }, // (Offset,Value)-Pair #3
|
||||
{ 0x29, 0x3D }, // (Offset,Value)-Pair #4
|
||||
{ 0x2A, 0x03 }, // (Offset,Value)-Pair #5
|
||||
{ 0x2B, 0x02 }, // (Offset,Value)-Pair #6
|
||||
// CMcpxBuffer_Stop+0x17 : jz +0x2A
|
||||
{ 0x17, 0x74 }, // (Offset,Value)-Pair #3
|
||||
{ 0x18, 0x2A }, // (Offset,Value)-Pair #4
|
||||
|
||||
// CMcpxBuffer_Stop+0x70 : mov eax, [esi+0x90]
|
||||
{ 0x70, 0x8B }, // (Offset,Value)-Pair #7
|
||||
{ 0x71, 0x86 }, // (Offset,Value)-Pair #8
|
||||
{ 0x72, 0x90 }, // (Offset,Value)-Pair #9
|
||||
// CMcpxBuffer_Stop+0x19 : test [esp+0Ch+arg_0], 2
|
||||
{ 0x19, 0xF6 }, // (Offset,Value)-Pair #5
|
||||
{ 0x1A, 0x44 }, // (Offset,Value)-Pair #6
|
||||
{ 0x1B, 0x24 }, // (Offset,Value)-Pair #7
|
||||
{ 0x1C, 0x10 }, // (Offset,Value)-Pair #8
|
||||
{ 0x1D, 0x02 }, // (Offset,Value)-Pair #9
|
||||
OOVPA_END;
|
||||
|
||||
// ******************************************************************
|
||||
|
@ -460,22 +461,23 @@ OOVPA_END;
|
|||
OOVPA_XREF(CMcpxBuffer_Stop2, 4361, 10,
|
||||
|
||||
XREF_CMcpxBuffer_Stop2,
|
||||
XRefZero)
|
||||
XRefOne)
|
||||
|
||||
// CMcpxBuffer_Stop2+0x03 : mov eax, [ebp+arg_0]
|
||||
{ 0x03, 0x8B },
|
||||
{ 0x04, 0x45 },
|
||||
{ 0x05, 0x08 },
|
||||
// CMcpxBuffer_Stop2+0x14 : mov eax, [esi]
|
||||
{ 0x14, 0x8B },
|
||||
{ 0x15, 0x06 },
|
||||
// CMcpxBuffer_Stop2+0x25 : push [ebp+arg_8]
|
||||
{ 0x25, 0xFF },
|
||||
{ 0x26, 0x75 },
|
||||
{ 0x27, 0x10 },
|
||||
// CMcpxBuffer_Stop2+0x36 : retn 0xC
|
||||
{ 0x36, 0xC2 },
|
||||
{ 0x37, 0x0C },
|
||||
XREF_ENTRY( 0x2B, XREF_DSOUNDSTOP ),
|
||||
|
||||
// CMcpxBuffer_Stop2+0x03 : mov eax, [ebp+arg_0]
|
||||
{ 0x03, 0x8B },
|
||||
{ 0x04, 0x45 },
|
||||
{ 0x05, 0x08 },
|
||||
// CMcpxBuffer_Stop2+0x14 : mov eax, [esi]
|
||||
{ 0x14, 0x8B },
|
||||
{ 0x15, 0x06 },
|
||||
// CMcpxBuffer_Stop2+0x25 : mov edi, eax
|
||||
{ 0x2F, 0x8B },
|
||||
{ 0x30, 0xF8 },
|
||||
// CMcpxBuffer_Stop2+0x36 : retn 0xC
|
||||
{ 0x36, 0xC2 },
|
||||
{ 0x37, 0x0C },
|
||||
OOVPA_END;
|
||||
|
||||
// ******************************************************************
|
||||
|
@ -660,6 +662,7 @@ OOVPATable DSound_4361[] = {
|
|||
REGISTER_OOVPA(DirectSound_CDirectSoundVoiceSettings_SetMixBinVolumes, 4361, XREF),
|
||||
REGISTER_OOVPA(DirectSound_CDirectSoundVoice_SetMixBinVolumes, 4361, XREF),
|
||||
REGISTER_OOVPA(DirectSound_CDirectSoundBuffer_SetMixBinVolumes, 4361, XREF),
|
||||
REGISTER_OOVPA(CMcpxBuffer_PlayA, 4361, XREF),
|
||||
REGISTER_OOVPA(DirectSound_CDirectSoundBuffer_PlayEx, 4361, XREF),
|
||||
REGISTER_OOVPA(IDirectSoundBuffer_PlayEx, 4361, PATCH),
|
||||
REGISTER_OOVPA(DirectSound_CDirectSoundBuffer_StopEx, 4361, XREF),
|
||||
|
|
|
@ -197,134 +197,22 @@ OOVPA_END;
|
|||
// ******************************************************************
|
||||
// * DirectSound_CDirectSoundVoiceSettings::SetMixBinVolumes
|
||||
// ******************************************************************
|
||||
OOVPA_XREF(DirectSound_CDirectSoundVoiceSettings_SetMixBinVolumes, 4627, 10,
|
||||
|
||||
XREF_DSSETMIXBINVOLUMESC,
|
||||
XRefZero)
|
||||
|
||||
// DirectSound_CDirectSoundVoiceSettings_SetMixBinVolumes+0x09 : jbe +0x16
|
||||
{ 0x09, 0x76 }, // (Offset,Value)-Pair #1
|
||||
{ 0x0A, 0x16 }, // (Offset,Value)-Pair #2
|
||||
|
||||
// DirectSound_CDirectSoundVoiceSettings_SetMixBinVolumes+0x18 : mov [ecx+edi*4+0x30], eax
|
||||
{ 0x18, 0x89 }, // (Offset,Value)-Pair #3
|
||||
{ 0x19, 0x44 }, // (Offset,Value)-Pair #4
|
||||
{ 0x1A, 0xB9 }, // (Offset,Value)-Pair #5
|
||||
{ 0x1B, 0x30 }, // (Offset,Value)-Pair #6
|
||||
|
||||
// DirectSound_CDirectSoundVoiceSettings_SetMixBinVolumes+0x1E : jb +0xEC
|
||||
{ 0x1E, 0x72 }, // (Offset,Value)-Pair #7
|
||||
{ 0x1F, 0xEC }, // (Offset,Value)-Pair #8
|
||||
|
||||
// DirectSound_CDirectSoundVoiceSettings_SetMixBinVolumes+0x22 : retn 0x04
|
||||
{ 0x22, 0xC2 }, // (Offset,Value)-Pair #9
|
||||
{ 0x23, 0x04 }, // (Offset,Value)-Pair #10
|
||||
OOVPA_END;
|
||||
#define DirectSound_CDirectSoundVoiceSettings_SetMixBinVolumes_4627 DirectSound_CDirectSoundVoiceSettings_SetMixBinVolumes_4134
|
||||
|
||||
// ******************************************************************
|
||||
// * DirectSound_CDirectSoundVoice::SetMixBinVolumes
|
||||
// ******************************************************************
|
||||
OOVPA_XREF(DirectSound_CDirectSoundVoice_SetMixBinVolumes, 4627, 17,
|
||||
|
||||
XREF_DSSETMIXBINVOLUMESB,
|
||||
XRefOne)
|
||||
|
||||
// DirectSound_CDirectSoundVoice_SetMixBinVolumes+0x0D : call [CDirectSoundVoiceSettings::SetMixBinVolumes]
|
||||
XREF_ENTRY( 0x0D, XREF_DSSETMIXBINVOLUMESC ), // (Offset,Value)-Pair #1
|
||||
|
||||
// DirectSound_CDirectSoundVoice_SetMixBinVolumes+0x01 : mov esi, [esp+8]
|
||||
{ 0x01, 0x8B }, // (Offset,Value)-Pair #2
|
||||
{ 0x02, 0x74 }, // (Offset,Value)-Pair #3
|
||||
{ 0x03, 0x24 }, // (Offset,Value)-Pair #4
|
||||
{ 0x04, 0x08 }, // (Offset,Value)-Pair #5
|
||||
|
||||
// DirectSound_CDirectSoundVoice_SetMixBinVolumes+0x05 : push [esp+0x0C]
|
||||
{ 0x05, 0xFF }, // (Offset,Value)-Pair #6
|
||||
{ 0x06, 0x74 }, // (Offset,Value)-Pair #7
|
||||
{ 0x07, 0x24 }, // (Offset,Value)-Pair #8
|
||||
{ 0x08, 0x0C }, // (Offset,Value)-Pair #9
|
||||
|
||||
// DirectSound_CDirectSoundVoice_SetMixBinVolumes+0x09 : mov ecx, [esi+0x10]
|
||||
{ 0x09, 0x8B }, // (Offset,Value)-Pair #10
|
||||
{ 0x0A, 0x4E }, // (Offset,Value)-Pair #11
|
||||
{ 0x0B, 0x10 }, // (Offset,Value)-Pair #12
|
||||
|
||||
// DirectSound_CDirectSoundVoice_SetMixBinVolumes+0x11 : mov ecx, [esi+0x0C]
|
||||
{ 0x11, 0x8B }, // (Offset,Value)-Pair #13
|
||||
{ 0x12, 0x4E }, // (Offset,Value)-Pair #14
|
||||
{ 0x13, 0x0C }, // (Offset,Value)-Pair #15
|
||||
|
||||
// DirectSound_CDirectSoundVoice_SetMixBinVolumes+0x1A : retn 0x08
|
||||
{ 0x1A, 0xC2 }, // (Offset,Value)-Pair #16
|
||||
{ 0x1B, 0x08 }, // (Offset,Value)-Pair #17
|
||||
OOVPA_END;
|
||||
#define DirectSound_CDirectSoundVoice_SetMixBinVolumes_4627 DirectSound_CDirectSoundVoice_SetMixBinVolumes_4134
|
||||
|
||||
// ******************************************************************
|
||||
// * DirectSound_CDirectSoundBuffer::SetMixBinVolumes
|
||||
// ******************************************************************
|
||||
OOVPA_XREF(DirectSound_CDirectSoundBuffer_SetMixBinVolumes, 4627, 17,
|
||||
|
||||
XREF_DSSETMIXBINVOLUMESA,
|
||||
XRefOne)
|
||||
|
||||
// DirectSound_CDirectSoundBuffer_SetMixBinVolumes+0x32 : call [CDirectSoundVoice::SetMixBinVolumes]
|
||||
XREF_ENTRY( 0x32, XREF_DSSETMIXBINVOLUMESB ), // (Offset,Value)-Pair #1
|
||||
|
||||
// DirectSound_CDirectSoundBuffer_SetMixBinVolumes+0x21 : mov eax, 0x80004005
|
||||
{ 0x21, 0xB8 }, // (Offset,Value)-Pair #2
|
||||
{ 0x22, 0x05 }, // (Offset,Value)-Pair #3
|
||||
{ 0x23, 0x40 }, // (Offset,Value)-Pair #4
|
||||
{ 0x24, 0x00 }, // (Offset,Value)-Pair #5
|
||||
{ 0x25, 0x80 }, // (Offset,Value)-Pair #6
|
||||
|
||||
// DirectSound_CDirectSoundBuffer_SetMixBinVolumes+0x29 : push [esp+0x10]; push [esp+0x10]
|
||||
{ 0x29, 0xFF }, // (Offset,Value)-Pair #7
|
||||
{ 0x2A, 0x74 }, // (Offset,Value)-Pair #8
|
||||
{ 0x2B, 0x24 }, // (Offset,Value)-Pair #9
|
||||
{ 0x2C, 0x10 }, // (Offset,Value)-Pair #10
|
||||
{ 0x2D, 0xFF }, // (Offset,Value)-Pair #11
|
||||
{ 0x2E, 0x74 }, // (Offset,Value)-Pair #12
|
||||
{ 0x2F, 0x24 }, // (Offset,Value)-Pair #13
|
||||
{ 0x30, 0x10 }, // (Offset,Value)-Pair #14
|
||||
|
||||
// DirectSound_CDirectSoundBuffer_SetMixBinVolumes+0x49 : pop edi
|
||||
{ 0x49, 0x5F }, // (Offset,Value)-Pair #15
|
||||
|
||||
// DirectSound_CDirectSoundBuffer_SetMixBinVolumes+0x4B : retn 0x08
|
||||
{ 0x4B, 0xC2 }, // (Offset,Value)-Pair #16
|
||||
{ 0x4C, 0x08 }, // (Offset,Value)-Pair #17
|
||||
OOVPA_END;
|
||||
#define DirectSound_CDirectSoundBuffer_SetMixBinVolumes_4627 DirectSound_CDirectSoundBuffer_SetMixBinVolumes_4134
|
||||
|
||||
// ******************************************************************
|
||||
// * IDirectSoundBuffer_SetMixBinVolumes
|
||||
// ******************************************************************
|
||||
OOVPA_XREF(IDirectSoundBuffer_SetMixBinVolumes, 4627, 12,
|
||||
|
||||
XRefNoSaveIndex,
|
||||
XRefOne)
|
||||
|
||||
// IDirectSoundBuffer_SetMixBinVolumes+0x15 : call [CDirectSoundBuffer::SetMixBinVolumes]
|
||||
XREF_ENTRY( 0x15, XREF_DSSETMIXBINVOLUMESA ), // (Offset,Value)-Pair #1
|
||||
|
||||
// IDirectSoundBuffer_SetMixBinVolumes+0x04 : push [esp+0x08]
|
||||
{ 0x04, 0xFF }, // (Offset,Value)-Pair #2
|
||||
{ 0x05, 0x74 }, // (Offset,Value)-Pair #3
|
||||
{ 0x06, 0x24 }, // (Offset,Value)-Pair #4
|
||||
{ 0x07, 0x08 }, // (Offset,Value)-Pair #5
|
||||
|
||||
// IDirectSoundBuffer_SetMixBinVolumes+0x0A : add eax, 0xFFFFFFE4
|
||||
{ 0x0A, 0x83 }, // (Offset,Value)-Pair #6
|
||||
{ 0x0B, 0xC0 }, // (Offset,Value)-Pair #7
|
||||
{ 0x0C, 0xE4 }, // (Offset,Value)-Pair #8
|
||||
|
||||
// IDirectSoundBuffer_SetMixBinVolumes+0x0F : sbb ecx, ecx
|
||||
{ 0x0F, 0x1B }, // (Offset,Value)-Pair #9
|
||||
{ 0x10, 0xC9 }, // (Offset,Value)-Pair #10
|
||||
|
||||
// IDirectSoundBuffer_SetMixBinVolumes+0x11 : and ecx, eax
|
||||
{ 0x11, 0x23 }, // (Offset,Value)-Pair #11
|
||||
{ 0x12, 0xC8 }, // (Offset,Value)-Pair #12
|
||||
OOVPA_END;
|
||||
#define IDirectSoundBuffer_SetMixBinVolumes_4627 IDirectSoundBuffer_SetMixBinVolumes_4134
|
||||
|
||||
// ******************************************************************
|
||||
// * DirectSound_CDirectSound::SetPositionA
|
||||
|
@ -437,28 +325,30 @@ OOVPA_END;
|
|||
//OOVPA_END;
|
||||
|
||||
// ******************************************************************
|
||||
// * CMcpxBuffer_GetStatusB
|
||||
// * CMcpxBuffer_GetStatus
|
||||
// ******************************************************************
|
||||
OOVPA_XREF(CMcpxBuffer_GetStatusB, 4627, 12,
|
||||
OOVPA_XREF(CMcpxBuffer_GetStatus, 4831, 13,
|
||||
|
||||
XREF_DSBUFFERGETSTATUSA,
|
||||
XRefZero)
|
||||
|
||||
{ 0x16, 0x6A }, // (Offset,Value)-Pair #1
|
||||
{ 0x17, 0x00 }, // (Offset,Value)-Pair #2
|
||||
{ 0x18, 0x5A }, // (Offset,Value)-Pair #3
|
||||
{ 0x00, 0x0F }, // (Offset,Value)-Pair #1
|
||||
|
||||
{ 0x1C, 0x42 }, // (Offset,Value)-Pair #4
|
||||
{ 0x1D, 0xF6 }, // (Offset,Value)-Pair #5
|
||||
{ 0x1E, 0xC4 }, // (Offset,Value)-Pair #6
|
||||
{ 0x1F, 0x02 }, // (Offset,Value)-Pair #7
|
||||
{ 0x16, 0x6A }, // (Offset,Value)-Pair #2
|
||||
{ 0x17, 0x00 }, // (Offset,Value)-Pair #3
|
||||
{ 0x18, 0x5A }, // (Offset,Value)-Pair #4
|
||||
|
||||
{ 0x29, 0xB9 }, // (Offset,Value)-Pair #8
|
||||
{ 0x2A, 0x01 }, // (Offset,Value)-Pair #9
|
||||
{ 0x2B, 0x80 }, // (Offset,Value)-Pair #10
|
||||
{ 0x1C, 0x42 }, // (Offset,Value)-Pair #5
|
||||
{ 0x1D, 0xF6 }, // (Offset,Value)-Pair #6
|
||||
{ 0x1E, 0xC4 }, // (Offset,Value)-Pair #7
|
||||
{ 0x1F, 0x02 }, // (Offset,Value)-Pair #8
|
||||
|
||||
{ 0x3F, 0xC2 }, // (Offset,Value)-Pair #11
|
||||
{ 0x40, 0x04 }, // (Offset,Value)-Pair #12
|
||||
{ 0x29, 0xB9 }, // (Offset,Value)-Pair #9
|
||||
{ 0x2A, 0x01 }, // (Offset,Value)-Pair #10
|
||||
{ 0x2B, 0x80 }, // (Offset,Value)-Pair #11
|
||||
|
||||
{ 0x3F, 0xC2 }, // (Offset,Value)-Pair #12
|
||||
{ 0x40, 0x04 }, // (Offset,Value)-Pair #13
|
||||
OOVPA_END;
|
||||
|
||||
// ******************************************************************
|
||||
|
@ -695,27 +585,9 @@ OOVPA_XREF(CMcpxStream_Pause, 4928, 11,
|
|||
OOVPA_END;
|
||||
|
||||
// ******************************************************************
|
||||
// * DirectSound_CDirectSoundStream_SetMixBinVolumes (untested)
|
||||
// * DirectSound_CDirectSoundStream_SetMixBinVolumes
|
||||
// ******************************************************************
|
||||
OOVPA_XREF(DirectSound_CDirectSoundStream_SetMixBinVolumes, 4627, 12,
|
||||
|
||||
XRefNoSaveIndex,
|
||||
XRefOne)
|
||||
|
||||
XREF_ENTRY( 0x36, XREF_DSSETMIXBINVOLUMESB ),
|
||||
|
||||
{ 0x0D, 0x0F },
|
||||
{ 0x0E, 0xB6 },
|
||||
{ 0x0F, 0xF0 },
|
||||
{ 0x21, 0x8B },
|
||||
{ 0x22, 0x05 },
|
||||
{ 0x23, 0x40 },
|
||||
{ 0x24, 0x00 },
|
||||
{ 0x25, 0x80 },
|
||||
{ 0x4F, 0xC2 },
|
||||
{ 0x50, 0x08 },
|
||||
{ 0x51, 0x00 },
|
||||
OOVPA_END;
|
||||
#define DirectSound_CDirectSoundStream_SetMixBinVolumes_4627 DirectSound_CDirectSoundStream_SetMixBinVolumes_4134
|
||||
|
||||
// ******************************************************************
|
||||
// * DirectSound::CDirectSound::EnableHeadphones (incorrect?)
|
||||
|
@ -1438,7 +1310,7 @@ OOVPA_END;
|
|||
// ******************************************************************
|
||||
// * DirectSound::CDirectSoundBuffer::SetNotificationPositions
|
||||
// ******************************************************************
|
||||
OOVPA_XREF(DirectSound_CDirectSoundBuffer_SetNotificationPositions, 4627, 7,
|
||||
OOVPA_XREF(DirectSound_CDirectSoundBuffer_SetNotificationPositions, 4627, 10,
|
||||
|
||||
XREF_DirectSound_CDirectSoundBuffer_SetNotificationPositions,
|
||||
XRefZero)
|
||||
|
@ -1446,9 +1318,12 @@ OOVPA_XREF(DirectSound_CDirectSoundBuffer_SetNotificationPositions, 4627, 7,
|
|||
{ 0x0C, 0x00 },
|
||||
{ 0x1B, 0xFF },
|
||||
{ 0x25, 0x80 },
|
||||
{ 0x32, 0x74 },
|
||||
{ 0x3F, 0xF8 },
|
||||
{ 0x4C, 0x8B },
|
||||
{ 0x2C, 0x0C },
|
||||
{ 0x2D, 0x8B },
|
||||
{ 0x2E, 0x4E },
|
||||
{ 0x2F, 0x1C },
|
||||
{ 0x30, 0x57 },
|
||||
{ 0x47, 0xE8 },
|
||||
{ 0x5D, 0x8B },
|
||||
OOVPA_END;
|
||||
|
||||
|
@ -1648,6 +1523,9 @@ OOVPATable DSound_4627[] = {
|
|||
REGISTER_OOVPA(DirectSound_CDirectSoundBuffer_SetFrequency, 4134, XREF),
|
||||
REGISTER_OOVPA(IDirectSoundBuffer_SetFrequency, 4134, PATCH),
|
||||
REGISTER_OOVPA(CMcpxVoiceClient_SetVolume, 4134, XREF),
|
||||
REGISTER_OOVPA(DirectSound_CDirectSoundVoice_SetVolume, 4134, XREF),
|
||||
REGISTER_OOVPA(DirectSound_CDirectSoundBuffer_SetVolume, 4134, XREF),
|
||||
REGISTER_OOVPA(IDirectSoundBuffer_SetVolume, 4134, PATCH),
|
||||
REGISTER_OOVPA(DirectSound_CDirectSoundStream_SetVolume, 4134, PATCH),
|
||||
REGISTER_OOVPA(IDirectSoundBuffer_LockA, 4134, XREF),
|
||||
REGISTER_OOVPA(IDirectSoundBuffer_Lock, 3936, PATCH),
|
||||
|
@ -1663,7 +1541,7 @@ OOVPATable DSound_4627[] = {
|
|||
REGISTER_OOVPA(CMcpxBuffer_GetStatus, 4134, XREF),
|
||||
REGISTER_OOVPA(CMcpxBuffer_GetStatus, 4721, XREF),
|
||||
// REGISTER_OOVPA(CMcpxBuffer_GetStatus, 4928, XREF)
|
||||
REGISTER_OOVPA(CMcpxBuffer_GetStatusB, 4627, XREF),
|
||||
REGISTER_OOVPA(CMcpxBuffer_GetStatus, 4831, XREF),
|
||||
REGISTER_OOVPA(DirectSound_CDirectSoundBuffer_GetStatus, 4134, XREF),
|
||||
REGISTER_OOVPA(IDirectSoundBuffer_GetStatus, 4134, PATCH),
|
||||
REGISTER_OOVPA(CMcpxBuffer_SetCurrentPosition, 4134, XREF),
|
||||
|
@ -1711,7 +1589,7 @@ OOVPATable DSound_4627[] = {
|
|||
REGISTER_OOVPA(DirectSound_CDirectSoundVoice_SetConeOutsideVolume, 4134, XREF),
|
||||
REGISTER_OOVPA(DirectSound_CDirectSoundBuffer_SetConeOutsideVolume, 4134, XREF),
|
||||
REGISTER_OOVPA(IDirectSoundBuffer_SetConeOutsideVolume, 4134, PATCH),
|
||||
REGISTER_OOVPA(DirectSound_CDirectSoundVoice_SetPosition, 4134, XREF),
|
||||
REGISTER_OOVPA(DirectSound_CDirectSoundVoice_SetPosition, 4627, XREF),
|
||||
REGISTER_OOVPA(DirectSound_CDirectSoundBuffer_SetPosition, 4134, XREF),
|
||||
REGISTER_OOVPA(IDirectSoundBuffer_SetPosition, 3936, PATCH),
|
||||
REGISTER_OOVPA(DirectSound_CDirectSoundVoice_SetVelocity, 4134, XREF),
|
||||
|
@ -1762,13 +1640,14 @@ OOVPATable DSound_4627[] = {
|
|||
REGISTER_OOVPA(DirectSound_CDirectSoundBuffer_SetFilter, 4134, XREF),
|
||||
REGISTER_OOVPA(DirectSound_CDirectSoundStream_SetFilter, 4627, PATCH),
|
||||
REGISTER_OOVPA(IDirectSoundBuffer_SetFilter, 4134, PATCH),
|
||||
REGISTER_OOVPA(CMcpxBuffer_PlayA, 4361, XREF),
|
||||
REGISTER_OOVPA(DirectSound_CDirectSoundBuffer_PlayEx, 4361, XREF),
|
||||
REGISTER_OOVPA(IDirectSoundBuffer_PlayEx, 4361, PATCH),
|
||||
REGISTER_OOVPA(CMcpxBuffer_Stop, 4361, XREF),
|
||||
REGISTER_OOVPA(CMcpxBuffer_Stop2, 4361, XREF),
|
||||
REGISTER_OOVPA(DirectSound_CDirectSoundBuffer_StopEx, 4361, XREF),
|
||||
REGISTER_OOVPA(IDirectSoundBuffer_StopEx, 4361, PATCH),
|
||||
REGISTER_OOVPA(DirectSound_CDirectSound_SetVelocity, 4134, XREF),
|
||||
REGISTER_OOVPA(DirectSound_CDirectSoundVoice_SetPosition, 4134, XREF),
|
||||
REGISTER_OOVPA(DirectSound_CDirectSoundVoice_SetPitch, 4134, XREF),
|
||||
REGISTER_OOVPA(DirectSound_CDirectSoundBuffer_SetPitch, 4627, XREF),
|
||||
REGISTER_OOVPA(IDirectSoundBuffer_SetPitch, 4627, PATCH),
|
||||
|
@ -1792,8 +1671,6 @@ OOVPATable DSound_4627[] = {
|
|||
REGISTER_OOVPA(IDirectSoundBuffer_SetLFO, 4627, PATCH),
|
||||
REGISTER_OOVPA(DirectSound_CDirectSoundStream_SetLFO, 4627, PATCH),
|
||||
REGISTER_OOVPA(DirectSound_CDirectSoundStream_SetPitch, 4627, PATCH),
|
||||
REGISTER_OOVPA(DirectSound_CDirectSoundBuffer_SetVolume, 4134, XREF),
|
||||
REGISTER_OOVPA(IDirectSoundBuffer_SetVolume, 4134, PATCH),
|
||||
};
|
||||
|
||||
// ******************************************************************
|
||||
|
|
|
@ -0,0 +1,42 @@
|
|||
// ******************************************************************
|
||||
// *
|
||||
// * .,-::::: .,:: .::::::::. .,:: .:
|
||||
// * ,;;;'````' `;;;, .,;; ;;;'';;' `;;;, .,;;
|
||||
// * [[[ '[[,,[[' [[[__[[\. '[[,,[['
|
||||
// * $$$ Y$$$P $$""""Y$$ Y$$$P
|
||||
// * `88bo,__,o, oP"``"Yo, _88o,,od8P oP"``"Yo,
|
||||
// * "YUMMMMMP",m" "Mm,""YUMMMP" ,m" "Mm,
|
||||
// *
|
||||
// * Cxbx->Win32->CxbxKrnl->DSound.1.0.5028.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 DSOUND_5028_H
|
||||
#define DSOUND_5028_H
|
||||
|
||||
#include "OOVPA.h"
|
||||
|
||||
extern OOVPATable DSOUND_5028[];
|
||||
extern uint32 DSOUND_5028_SIZE;
|
||||
|
||||
#endif
|
|
@ -0,0 +1,259 @@
|
|||
// ******************************************************************
|
||||
// *
|
||||
// * .,-::::: .,:: .::::::::. .,:: .:
|
||||
// * ,;;;'````' `;;;, .,;; ;;;'';;' `;;;, .,;;
|
||||
// * [[[ '[[,,[[' [[[__[[\. '[[,,[['
|
||||
// * $$$ Y$$$P $$""""Y$$ Y$$$P
|
||||
// * `88bo,__,o, oP"``"Yo, _88o,,od8P oP"``"Yo,
|
||||
// * "YUMMMMMP",m" "Mm,""YUMMMP" ,m" "Mm,
|
||||
// *
|
||||
// * Cxbx->Win32->CxbxKrnl->DSound.1.0.5028.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
|
||||
// *
|
||||
// ******************************************************************
|
||||
|
||||
// ******************************************************************
|
||||
// * DirectSound::CDirectSoundVoice::SetFormat
|
||||
// ******************************************************************
|
||||
OOVPA_XREF(DirectSound_CDirectSoundVoice_SetFormat, 5028, 8,
|
||||
|
||||
XREF_DirectSound_CDirectSoundVoice_SetFormat,
|
||||
XRefZero)
|
||||
|
||||
{ 0x06, 0x4E },
|
||||
{ 0x0E, 0xE8 },
|
||||
{ 0x18, 0x4E },
|
||||
{ 0x25, 0xFF },
|
||||
{ 0x2E, 0x0C },
|
||||
{ 0x34, 0x85 },
|
||||
{ 0x38, 0x8B },
|
||||
{ 0x43, 0x00 },
|
||||
OOVPA_END;
|
||||
|
||||
// ******************************************************************
|
||||
// * Direct, 5028
|
||||
// ******************************************************************
|
||||
OOVPATable DSound_5028[] = {
|
||||
|
||||
REGISTER_OOVPA(DirectSoundCreate, 4134, PATCH),
|
||||
REGISTER_OOVPA(DirectSoundDoWork, 4134, PATCH),
|
||||
REGISTER_OOVPA(DirectSoundGetSampleTime, 4627, PATCH),
|
||||
REGISTER_OOVPA(DirectSound_CDirectSound_CreateSoundBuffer, 4134, XREF),
|
||||
REGISTER_OOVPA(DirectSound_CDirectSoundBuffer_SetPlayRegion, 4361, XREF),
|
||||
REGISTER_OOVPA(IDirectSoundBuffer_SetPlayRegion, 4361, PATCH),
|
||||
REGISTER_OOVPA(DirectSound_CDirectSoundBuffer_SetLoopRegion, 4134, XREF),
|
||||
REGISTER_OOVPA(IDirectSoundBuffer_SetLoopRegion, 4134, PATCH),
|
||||
REGISTER_OOVPA(DirectSound_CDirectSound_SetI3DL2Listener, 4134, XREF),
|
||||
REGISTER_OOVPA(IDirectSound_SetI3DL2Listener, 4134, PATCH),
|
||||
REGISTER_OOVPA(DirectSound_CDirectSound_SetMixBinHeadroom, 4627, XREF),
|
||||
REGISTER_OOVPA(IDirectSound_SetMixBinHeadroom, 4627, PATCH),
|
||||
REGISTER_OOVPA(IDirectSoundBuffer_SetHeadroomA, 4134, XREF),
|
||||
REGISTER_OOVPA(IDirectSoundBuffer_SetHeadroom, 4134, PATCH),
|
||||
REGISTER_OOVPA(DirectSound_CDirectSound_SetVelocity, 4627, XREF),
|
||||
REGISTER_OOVPA(IDirectSound_SetVelocity, 3936, PATCH),
|
||||
REGISTER_OOVPA(DirectSound_CDirectSound_SetAllParametersA, 4627, XREF),
|
||||
REGISTER_OOVPA(DirectSound_CDirectSound_SetAllParametersA, 4721, XREF),
|
||||
REGISTER_OOVPA(DirectSound_CDirectSound_SetAllParametersA, 4831, XREF),
|
||||
REGISTER_OOVPA(DirectSound_CDirectSound_SetAllParameters, 4928, XREF),
|
||||
REGISTER_OOVPA(IDirectSound_SetAllParameters, 3936, PATCH),
|
||||
REGISTER_OOVPA(DirectSound_CDirectSoundVoiceSettings_SetMixBins, 4134, XREF),
|
||||
REGISTER_OOVPA(DirectSound_CDirectSoundVoice_SetMixBins, 4134, XREF),
|
||||
REGISTER_OOVPA(DirectSound_CDirectSoundBuffer_SetMixBins, 4134, XREF),
|
||||
REGISTER_OOVPA(IDirectSoundBuffer_SetMixBins, 4134, PATCH),
|
||||
REGISTER_OOVPA(DirectSound_CDirectSoundVoiceSettings_SetMixBinVolumes, 4134, XREF),
|
||||
REGISTER_OOVPA(DirectSound_CDirectSoundVoice_SetMixBinVolumes, 4134, XREF),
|
||||
REGISTER_OOVPA(DirectSound_CDirectSoundBuffer_SetMixBinVolumes, 4134, XREF),
|
||||
REGISTER_OOVPA(IDirectSoundBuffer_SetMixBinVolumes, 4134, PATCH),
|
||||
REGISTER_OOVPA(DirectSound_CDirectSoundStream_SetMixBinVolumes, 4134, PATCH),
|
||||
REGISTER_OOVPA(DirectSound_CDirectSound_SetPositionA, 4627, XREF),
|
||||
REGISTER_OOVPA(DirectSound_CDirectSound_SetPositionA, 4134, XREF), // TODO: Find a cure for laziness...
|
||||
REGISTER_OOVPA(IDirectSound_SetPosition, 3936, PATCH),
|
||||
REGISTER_OOVPA(DirectSoundCreateBuffer, 4627, PATCH),
|
||||
REGISTER_OOVPA(IDirectSound_CreateSoundBuffer, 4134, PATCH),
|
||||
REGISTER_OOVPA(IDirectSound_AddRef, 3936, PATCH),
|
||||
REGISTER_OOVPA(DirectSound_CDirectSoundVoice_SetFrequency, 4134, XREF),
|
||||
REGISTER_OOVPA(DirectSound_CDirectSoundBuffer_SetFrequency, 4134, XREF),
|
||||
REGISTER_OOVPA(IDirectSoundBuffer_SetFrequency, 4134, PATCH),
|
||||
REGISTER_OOVPA(CMcpxVoiceClient_SetVolume, 4134, XREF),
|
||||
REGISTER_OOVPA(DirectSound_CDirectSoundVoice_SetVolume, 4134, XREF),
|
||||
REGISTER_OOVPA(DirectSound_CDirectSoundBuffer_SetVolume, 4134, XREF),
|
||||
REGISTER_OOVPA(IDirectSoundBuffer_SetVolume, 4134, PATCH),
|
||||
REGISTER_OOVPA(DirectSound_CDirectSoundStream_SetVolume, 4134, PATCH),
|
||||
REGISTER_OOVPA(IDirectSoundBuffer_LockA, 4134, XREF),
|
||||
REGISTER_OOVPA(IDirectSoundBuffer_Lock, 3936, PATCH),
|
||||
REGISTER_OOVPA(DirectSound_CDirectSound_CreateSoundStream, 4361, XREF),
|
||||
REGISTER_OOVPA(IDirectSound_CreateSoundStream, 3936, PATCH),
|
||||
REGISTER_OOVPA(DirectSoundCreateStream, 4361, PATCH),
|
||||
REGISTER_OOVPA(CMcpxStream_Pause, 4361, XREF),
|
||||
REGISTER_OOVPA(CMcpxStream_Pause, 4928, XREF),
|
||||
REGISTER_OOVPA(DirectSound_CDirectSoundStream_Pause, 4361, PATCH),
|
||||
REGISTER_OOVPA(CMcpxBuffer_SetBufferData, 4134, XREF),
|
||||
REGISTER_OOVPA(DirectSound_CDirectSoundBuffer_SetBufferData, 4134, XREF),
|
||||
REGISTER_OOVPA(IDirectSoundBuffer_SetBufferData, 4134, PATCH),
|
||||
REGISTER_OOVPA(CMcpxBuffer_GetStatus, 4134, XREF),
|
||||
REGISTER_OOVPA(CMcpxBuffer_GetStatus, 4721, XREF),
|
||||
// REGISTER_OOVPA(CMcpxBuffer_GetStatus, 4928, XREF)
|
||||
REGISTER_OOVPA(CMcpxBuffer_GetStatus, 4831, XREF),
|
||||
REGISTER_OOVPA(DirectSound_CDirectSoundBuffer_GetStatus, 4134, XREF),
|
||||
REGISTER_OOVPA(IDirectSoundBuffer_GetStatus, 4134, PATCH),
|
||||
REGISTER_OOVPA(CMcpxBuffer_SetCurrentPosition, 4134, XREF),
|
||||
REGISTER_OOVPA(DirectSound_CDirectSoundBuffer_SetCurrentPosition, 4134, XREF),
|
||||
REGISTER_OOVPA(IDirectSoundBuffer_SetCurrentPosition, 4134, PATCH),
|
||||
REGISTER_OOVPA(CMcpxBuffer_GetCurrentPosition, 4134, XREF),
|
||||
REGISTER_OOVPA(DirectSound_CDirectSoundBuffer_GetCurrentPosition, 4134, XREF),
|
||||
REGISTER_OOVPA(IDirectSoundBuffer_GetCurrentPosition, 3936, PATCH),
|
||||
REGISTER_OOVPA(DirectSound_CDirectSound_GetSpeakerConfig, 4627, PATCH),
|
||||
REGISTER_OOVPA(CMcpxBuffer_Play, 4361, XREF),
|
||||
REGISTER_OOVPA(CMcpxBuffer_Play, 4721, XREF),
|
||||
REGISTER_OOVPA(CMcpxBuffer_Play, 4928, XREF),
|
||||
REGISTER_OOVPA(DirectSound_CDirectSoundBuffer_Play, 4361, XREF),
|
||||
REGISTER_OOVPA(IDirectSoundBuffer_Play, 4361, PATCH),
|
||||
REGISTER_OOVPA(IDirectSound_Release, 3936, PATCH),
|
||||
REGISTER_OOVPA(IDirectSound_DownloadEffectsImage, 3936, PATCH),
|
||||
REGISTER_OOVPA(IDirectSound_SetOrientation, 3936, PATCH),
|
||||
REGISTER_OOVPA(DirectSound_CDirectSound_SetDistanceFactorA, 4134, XREF),
|
||||
REGISTER_OOVPA(DirectSound_CDirectSound_SetDistanceFactorA, 4627, XREF),
|
||||
REGISTER_OOVPA(IDirectSound_SetDistanceFactor, 4134, PATCH),
|
||||
REGISTER_OOVPA(DirectSound_CDirectSound_SetRolloffFactor, 4134, XREF),
|
||||
REGISTER_OOVPA(IDirectSound_SetRolloffFactor, 4134, PATCH),
|
||||
REGISTER_OOVPA(DirectSound_CDirectSound_SetDopplerFactor, 4134, XREF),
|
||||
REGISTER_OOVPA(DirectSound_CDirectSound_SetDopplerFactor, 4627, XREF),
|
||||
REGISTER_OOVPA(IDirectSound_SetDopplerFactor, 4134, PATCH),
|
||||
REGISTER_OOVPA(DirectSound_CDirectSound_CommitDeferredSettings, 4134, PATCH),
|
||||
REGISTER_OOVPA(DirectSound_CDirectSoundVoice_SetMaxDistance, 4134, XREF),
|
||||
REGISTER_OOVPA(DirectSound_CDirectSoundBuffer_SetMaxDistance, 4134, XREF),
|
||||
REGISTER_OOVPA(IDirectSoundBuffer_SetMaxDistance, 4134, PATCH),
|
||||
REGISTER_OOVPA(DirectSound_CDirectSoundStream_SetMaxDistance, 4134, PATCH),
|
||||
REGISTER_OOVPA(DirectSound_CDirectSoundVoice_SetMinDistance, 4134, XREF),
|
||||
REGISTER_OOVPA(DirectSound_CDirectSoundBuffer_SetMinDistance, 4134, XREF),
|
||||
REGISTER_OOVPA(IDirectSoundBuffer_SetMinDistance, 4134, PATCH),
|
||||
REGISTER_OOVPA(DirectSound_CDirectSoundStream_SetMinDistance, 4134, PATCH),
|
||||
REGISTER_OOVPA(DirectSound_CDirectSoundVoice_SetRolloffFactor, 4134, XREF), // s+
|
||||
REGISTER_OOVPA(DirectSound_CDirectSoundBuffer_SetRolloffFactor, 4134, XREF),
|
||||
REGISTER_OOVPA(IDirectSoundBuffer_SetRolloffFactor, 4134, PATCH),
|
||||
REGISTER_OOVPA(DirectSound_CDirectSoundStream_SetRolloffFactor, 4134, PATCH),
|
||||
REGISTER_OOVPA(DirectSound_CDirectSoundVoice_SetDistanceFactor, 4134, XREF),
|
||||
REGISTER_OOVPA(DirectSound_CDirectSoundBuffer_SetDistanceFactor, 4134, XREF),
|
||||
REGISTER_OOVPA(IDirectSoundBuffer_SetDistanceFactor, 4134, PATCH),
|
||||
REGISTER_OOVPA(DirectSound_CDirectSoundVoice_SetConeAngles, 4134, XREF),
|
||||
REGISTER_OOVPA(DirectSound_CDirectSoundBuffer_SetConeAngles, 4134, XREF),
|
||||
REGISTER_OOVPA(IDirectSoundBuffer_SetConeAngles, 4134, PATCH),
|
||||
REGISTER_OOVPA(DirectSound_CDirectSoundVoice_SetConeOrientation, 4134, XREF),
|
||||
REGISTER_OOVPA(DirectSound_CDirectSoundBuffer_SetConeOrientation, 4134, XREF),
|
||||
REGISTER_OOVPA(IDirectSoundBuffer_SetConeOrientation, 4134, PATCH),
|
||||
REGISTER_OOVPA(DirectSound_CDirectSoundStream_SetConeOrientation, 4134, PATCH),
|
||||
REGISTER_OOVPA(DirectSound_CDirectSoundVoice_SetConeOutsideVolume, 4134, XREF),
|
||||
REGISTER_OOVPA(DirectSound_CDirectSoundBuffer_SetConeOutsideVolume, 4134, XREF),
|
||||
REGISTER_OOVPA(IDirectSoundBuffer_SetConeOutsideVolume, 4134, PATCH),
|
||||
REGISTER_OOVPA(DirectSound_CDirectSoundStream_SetConeOutsideVolume, 4134, PATCH),
|
||||
REGISTER_OOVPA(DirectSound_CDirectSoundVoice_SetPosition, 4627, XREF),
|
||||
REGISTER_OOVPA(DirectSound_CDirectSoundBuffer_SetPosition, 4134, XREF),
|
||||
REGISTER_OOVPA(IDirectSoundBuffer_SetPosition, 3936, PATCH),
|
||||
REGISTER_OOVPA(DirectSound_CDirectSoundStream_SetPosition, 4134, PATCH),
|
||||
REGISTER_OOVPA(DirectSound_CDirectSoundVoice_SetVelocity, 4134, XREF),
|
||||
REGISTER_OOVPA(DirectSound_CDirectSoundBuffer_SetVelocity, 4134, XREF),
|
||||
REGISTER_OOVPA(IDirectSoundBuffer_SetVelocity, 3936, PATCH),
|
||||
REGISTER_OOVPA(DirectSound_CDirectSoundStream_SetVelocity, 4134, PATCH),
|
||||
REGISTER_OOVPA(DirectSound_CDirectSoundVoice_SetDopplerFactor, 4134, XREF),
|
||||
REGISTER_OOVPA(DirectSound_CDirectSoundBuffer_SetDopplerFactor, 4134, XREF),
|
||||
REGISTER_OOVPA(IDirectSoundBuffer_SetDopplerFactor, 4134, PATCH),
|
||||
REGISTER_OOVPA(DirectSound_CDirectSoundVoice_SetI3DL2Source, 4134, XREF),
|
||||
REGISTER_OOVPA(DirectSound_CDirectSoundBuffer_SetI3DL2Source, 4134, XREF),
|
||||
REGISTER_OOVPA(IDirectSoundBuffer_SetI3DL2Source, 4134, PATCH),
|
||||
REGISTER_OOVPA(DirectSound_CDirectSoundStream_SetI3DL2Source, 4134, PATCH),
|
||||
REGISTER_OOVPA(IDirectSoundBuffer_Stop, 4134, PATCH),
|
||||
REGISTER_OOVPA(IDirectSoundBuffer_Release, 3936, PATCH), // +s
|
||||
REGISTER_OOVPA(DirectSound_CDirectSoundVoice_SetFormat, 5028, XREF),
|
||||
REGISTER_OOVPA(DirectSound_CDirectSoundBuffer_SetFormat, 4627, XREF),
|
||||
REGISTER_OOVPA(IDirectSoundBuffer_SetFormat, 4627, PATCH),
|
||||
REGISTER_OOVPA(DirectSound_CDirectSound_EnableHeadphones, 4627, XREF),
|
||||
REGISTER_OOVPA(IDirectSound_EnableHeadphones, 4627, PATCH),
|
||||
// REGISTER_OOVPA(DirectSound_CDirectSoundVoice_SetHeadroom, 4627, XREF),
|
||||
// REGISTER_OOVPA(IDirectSoundStream_SetHeadroom, 4627, ALIAS, DirectSound_CDirectSoundStream_SetHeadroom),
|
||||
REGISTER_OOVPA(IDirectSoundBuffer_AddRef, 3936, PATCH),
|
||||
REGISTER_OOVPA(DirectSound_CDirectSound_GetOutputLevels, 4627, XREF),
|
||||
REGISTER_OOVPA(IDirectSound_GetOutputLevels, 4627, PATCH),
|
||||
REGISTER_OOVPA(DirectSound_CDirectSoundVoice_SetAllParameters, 4134, XREF),
|
||||
REGISTER_OOVPA(DirectSound_CDirectSoundBuffer_SetAllParameters, 4134, XREF),
|
||||
REGISTER_OOVPA(IDirectSound_SetAllParameters, 4134, ALIAS, IDirectSoundBuffer_SetAllParameters), // Use that for now. Okay, it's your call pal...
|
||||
REGISTER_OOVPA(DirectSound_CDirectSoundStream_SetAllParameters, 4134, PATCH),
|
||||
REGISTER_OOVPA(DirectSound_CMcpxBuffer_Pause, 4928, XREF),
|
||||
REGISTER_OOVPA(DirectSound_CDirectSoundBuffer_Pause, 4928, XREF),
|
||||
REGISTER_OOVPA(IDirectSoundBuffer_Pause, 4928, PATCH),
|
||||
REGISTER_OOVPA(DirectSound_CMcpxBuffer_GetStatus, 4721, XREF),
|
||||
REGISTER_OOVPA(IDirectSoundBuffer_GetStatus, 4721, PATCH),
|
||||
REGISTER_OOVPA(DirectSound_CDirectSoundStream_SetMixBins, 4627, PATCH),
|
||||
REGISTER_OOVPA(DirectSound_CMcpxVoiceClient_SetEG, 4627, XREF),
|
||||
REGISTER_OOVPA(DirectSound_CDirectSoundVoice_SetEG, 4627, XREF),
|
||||
REGISTER_OOVPA(DirectSound_CDirectSoundStream_SetEG, 4627, PATCH),
|
||||
REGISTER_OOVPA(DirectSound_CDirectSoundBuffer_SetEG, 4627, XREF),
|
||||
REGISTER_OOVPA(IDirectSoundBuffer_SetEG, 4627, PATCH),
|
||||
REGISTER_OOVPA(DirectSound_CDirectSoundStream_FlushEx, 4627, XREF),
|
||||
REGISTER_OOVPA(IDirectSoundStream_FlushEx, 4627, PATCH),
|
||||
REGISTER_OOVPA(XAudioDownloadEffectsImage, 4627, PATCH),
|
||||
REGISTER_OOVPA(DirectSound_CDirectSoundVoice_SetMode, 4134, XREF),
|
||||
REGISTER_OOVPA(DirectSound_CDirectSoundBuffer_SetMode, 4134, XREF),
|
||||
REGISTER_OOVPA(IDirectSoundBuffer_SetMode, 4134, PATCH),
|
||||
REGISTER_OOVPA(DirectSound_CDirectSoundStream_SetMode, 4134, PATCH),
|
||||
REGISTER_OOVPA(DirectSound_CMcpxVoiceClient_SetFilter, 4134, XREF),
|
||||
REGISTER_OOVPA(DirectSound_CDirectSoundVoice_SetFilter, 4134, XREF),
|
||||
REGISTER_OOVPA(DirectSound_CDirectSoundBuffer_SetFilter, 4134, XREF),
|
||||
REGISTER_OOVPA(DirectSound_CDirectSoundStream_SetFilter, 4627, PATCH),
|
||||
REGISTER_OOVPA(IDirectSoundBuffer_SetFilter, 4134, PATCH),
|
||||
REGISTER_OOVPA(CMcpxBuffer_PlayA, 4361, XREF),
|
||||
REGISTER_OOVPA(DirectSound_CDirectSoundBuffer_PlayEx, 4361, XREF),
|
||||
REGISTER_OOVPA(IDirectSoundBuffer_PlayEx, 4361, PATCH),
|
||||
REGISTER_OOVPA(CMcpxBuffer_Stop, 4361, XREF),
|
||||
REGISTER_OOVPA(CMcpxBuffer_Stop2, 4361, XREF),
|
||||
REGISTER_OOVPA(DirectSound_CDirectSoundBuffer_StopEx, 4361, XREF),
|
||||
REGISTER_OOVPA(IDirectSoundBuffer_StopEx, 4361, PATCH),
|
||||
REGISTER_OOVPA(DirectSound_CDirectSound_SetVelocity, 4134, XREF),
|
||||
REGISTER_OOVPA(DirectSound_CDirectSoundVoice_SetPitch, 4134, XREF),
|
||||
REGISTER_OOVPA(DirectSound_CDirectSoundBuffer_SetPitch, 4627, XREF),
|
||||
REGISTER_OOVPA(IDirectSoundBuffer_SetPitch, 4627, PATCH),
|
||||
REGISTER_OOVPA(DirectSound_CDirectSoundVoice_SetHeadroom, 4627, XREF),
|
||||
REGISTER_OOVPA(IDirectSoundStream_SetHeadroom, 4627, ALIAS, DirectSound_CDirectSoundStream_SetHeadroom),
|
||||
REGISTER_OOVPA(DirectSound_CDirectSoundVoice_SetOutputBuffer, 4627, XREF),
|
||||
REGISTER_OOVPA(DirectSound_CDirectSoundBuffer_SetOutputBuffer, 4627, XREF),
|
||||
REGISTER_OOVPA(IDirectSoundBuffer_SetOutputBuffer, 4627, PATCH),
|
||||
REGISTER_OOVPA(DirectSound_CDirectSoundStream_SetOutputBuffer, 4627, PATCH),
|
||||
REGISTER_OOVPA(DirectSound_CDirectSoundVoice_SetRolloffCurve, 4627, XREF),
|
||||
REGISTER_OOVPA(DirectSound_CDirectSoundBuffer_SetRolloffCurve, 4627, XREF),
|
||||
REGISTER_OOVPA(DirectSound_CDirectSoundStream_SetRolloffCurve, 4627, XREF),
|
||||
REGISTER_OOVPA(IDirectSoundBuffer_SetRolloffCurve, 4627, PATCH),
|
||||
REGISTER_OOVPA(XFileCreateMediaObjectEx, 4627, PATCH),
|
||||
REGISTER_OOVPA(XWaveFileCreateMediaObject, 4627, PATCH),
|
||||
// REGISTER_OOVPA(DirectSound_CDirectSoundBuffer_SetNotificationPositions, 4627, XREF),
|
||||
// REGISTER_OOVPA(IDirectSoundBuffer_SetNotificationPositions, 4627, XREF),
|
||||
REGISTER_OOVPA(CMcpxVoiceClient_SetLFO, 4627, XREF),
|
||||
REGISTER_OOVPA(DirectSound_CDirectSoundVoice_SetLFO, 4627, XREF),
|
||||
REGISTER_OOVPA(DirectSound_CDirectSoundBuffer_SetLFO, 4627, XREF),
|
||||
REGISTER_OOVPA(IDirectSoundBuffer_SetLFO, 4627, PATCH),
|
||||
REGISTER_OOVPA(DirectSound_CDirectSoundStream_SetLFO, 4627, PATCH),
|
||||
REGISTER_OOVPA(DirectSound_CDirectSoundStream_SetPitch, 4627, PATCH),
|
||||
};
|
||||
|
||||
// ******************************************************************
|
||||
// * DSound_5028_SIZE
|
||||
// ******************************************************************
|
||||
uint32 DSound_5028_SIZE = sizeof(DSound_5028);
|
|
@ -220,20 +220,7 @@ OOVPA_END;
|
|||
// ******************************************************************
|
||||
// * DirectSound::CDirectSoundVoice::SetFormat
|
||||
// ******************************************************************
|
||||
OOVPA_XREF(DirectSound_CDirectSoundVoice_SetFormat, 5233, 8,
|
||||
|
||||
XREF_DirectSound_CDirectSoundVoice_SetFormat,
|
||||
XRefZero)
|
||||
|
||||
{ 0x06, 0x4E },
|
||||
{ 0x0E, 0xE8 },
|
||||
{ 0x18, 0x4E },
|
||||
{ 0x25, 0xFF },
|
||||
{ 0x2E, 0x0C },
|
||||
{ 0x34, 0x85 },
|
||||
{ 0x38, 0x8B },
|
||||
{ 0x43, 0x00 },
|
||||
OOVPA_END;
|
||||
#define DirectSound_CDirectSoundVoice_SetFormat_5233 DirectSound_CDirectSoundVoice_SetFormat_5028
|
||||
|
||||
// ******************************************************************
|
||||
// DirectSound_CDirectSoundVoice::SetMode
|
||||
|
@ -510,7 +497,7 @@ OOVPATable DSound_5233[] = {
|
|||
REGISTER_OOVPA(CMcpxBuffer_SetBufferData, 4134, XREF),
|
||||
REGISTER_OOVPA(DirectSound_CDirectSoundBuffer_SetBufferData, 4134, XREF),
|
||||
REGISTER_OOVPA(IDirectSoundBuffer_SetBufferData, 4134, PATCH),
|
||||
REGISTER_OOVPA(CMcpxBuffer_GetStatusB, 4627, XREF),
|
||||
REGISTER_OOVPA(CMcpxBuffer_GetStatus, 4831, XREF),
|
||||
REGISTER_OOVPA(DirectSound_CDirectSoundBuffer_GetStatus, 4134, XREF),
|
||||
REGISTER_OOVPA(IDirectSoundBuffer_GetStatus, 4134, PATCH),
|
||||
REGISTER_OOVPA(CMcpxBuffer_GetCurrentPosition, 4134, XREF),
|
||||
|
|
|
@ -95,35 +95,6 @@ OOVPA_XREF(DirectSound_CDirectSoundStream_SetMinDistance, 5344, 8,
|
|||
{ 0x53, 0x8B },
|
||||
OOVPA_END;
|
||||
|
||||
// ******************************************************************
|
||||
// * IDirectSoundBuffer_SetMinDistance
|
||||
// ******************************************************************
|
||||
OOVPA_XREF(IDirectSoundBuffer_SetMinDistance, 5344, 11,
|
||||
|
||||
XRefNoSaveIndex,
|
||||
XRefOne)
|
||||
|
||||
// IDirectSoundBuffer_SetMinDistance+0x1C : call [CDirectSoundBuffer::SetMinDistance]
|
||||
XREF_ENTRY( 0x1D, XREF_DSBUFFERSETMINDISTANCE ),
|
||||
|
||||
{ 0x00, 0xFF },
|
||||
// IDirectSoundBuffer_SetMinDistance+0x04 : fld [esp+4+arg_4]
|
||||
{ 0x04, 0xD9 },
|
||||
{ 0x05, 0x44 },
|
||||
{ 0x06, 0x24 },
|
||||
{ 0x07, 0x0C },
|
||||
|
||||
// IDirectSoundBuffer_SetMinDistance+0x12 : add eax, 0FFFFFFE4
|
||||
{ 0x12, 0x83 },
|
||||
{ 0x13, 0xC0 },
|
||||
{ 0x14, 0xE4 },
|
||||
|
||||
// IDirectSoundBuffer_SetMinDistance+0x21 : retn 0Ch
|
||||
{ 0x22, 0x0C },
|
||||
{ 0x23, 0x00 }
|
||||
OOVPA_END;
|
||||
|
||||
|
||||
// ******************************************************************
|
||||
// * DirectSound::CDirectSound::SetI3DL2Listener
|
||||
// ******************************************************************
|
||||
|
@ -172,11 +143,11 @@ OOVPA_XREF(DirectSound_CDirectSoundVoice_SetDistanceFactor, 5344, 7,
|
|||
|
||||
{ 0x05, 0x41 },
|
||||
{ 0x0C, 0x00 },
|
||||
{ 0x10, 0x08 },
|
||||
{ 0x11, 0x89 },
|
||||
{ 0x12, 0x50 },
|
||||
{ 0x13, 0x44 },
|
||||
{ 0x1A, 0x00 },
|
||||
{ 0x21, 0xF6 },
|
||||
{ 0x28, 0x51 },
|
||||
{ 0x2F, 0xC0 },
|
||||
{ 0x14, 0x8B },
|
||||
OOVPA_END;
|
||||
|
||||
// ******************************************************************
|
||||
|
@ -237,22 +208,27 @@ OOVPA_XREF(DirectSound_CDirectSound_SetDistanceFactor, 5344, 9,
|
|||
OOVPA_END;
|
||||
|
||||
// ******************************************************************
|
||||
// * IDirectSound_SetDistanceFactor
|
||||
// * DirectSound::CDirectSoundVoice::SetDopplerFactor
|
||||
// ******************************************************************
|
||||
OOVPA_XREF(IDirectSound_SetDistanceFactor, 5344, 8,
|
||||
OOVPA_XREF(DirectSound_CDirectSoundVoice_SetDopplerFactor, 5344, 9,
|
||||
|
||||
XRefNoSaveIndex,
|
||||
XRefOne)
|
||||
XREF_DSVOICESETDOPPLERFACTOR,
|
||||
XRefZero)
|
||||
|
||||
XREF_ENTRY( 0x1D, XREF_SETDISTANCEFACTORA ),
|
||||
|
||||
{ 0x03, 0x0C },
|
||||
{ 0x08, 0x8B },
|
||||
// DirectSound_CDirectSoundVoice_SetDopplerFactor+0x0D : mov edx, [esp+arg_4]
|
||||
{ 0x0D, 0x8B },
|
||||
{ 0x12, 0x83 },
|
||||
{ 0x17, 0x1B },
|
||||
{ 0x1C, 0xE8 },
|
||||
{ 0x21, 0xC2 },
|
||||
{ 0x0E, 0x54 },
|
||||
{ 0x0F, 0x24 },
|
||||
{ 0x10, 0x08 },
|
||||
|
||||
// DirectSound_CDirectSoundVoice_SetDopplerFactor+0x12 : mov [eax+4Ch], edx
|
||||
{ 0x11, 0x89 },
|
||||
{ 0x12, 0x50 },
|
||||
{ 0x13, 0x4C },
|
||||
|
||||
// DirectSound_CDirectSoundVoice_SetDopplerFactor+0x31 : retn 0Ch
|
||||
{ 0x31, 0x0C },
|
||||
{ 0x32, 0x00 }
|
||||
OOVPA_END;
|
||||
|
||||
// ******************************************************************
|
||||
|
@ -422,6 +398,443 @@ OOVPA_XREF(DirectSound_CDirectSoundVoice_SetMode, 5344, 8,
|
|||
{ 0x31, 0x0C }, // (Offset,Value)-Pair #8
|
||||
OOVPA_END;
|
||||
|
||||
// ******************************************************************
|
||||
// * DirectSound_CDirectSound::SetPositionA
|
||||
// ******************************************************************
|
||||
OOVPA_XREF(DirectSound_CDirectSound_SetPositionA, 5344, 10,
|
||||
|
||||
XREF_DSSETPOSITIONA,
|
||||
XRefZero)
|
||||
|
||||
// DirectSound_CDirectSound_SetPositionA+0x2B : mov ecx, [ebp+0x08]
|
||||
{ 0x2B, 0x8B }, // (Offset,Value)-Pair #1
|
||||
{ 0x2C, 0x4D }, // (Offset,Value)-Pair #2
|
||||
{ 0x2D, 0x08 }, // (Offset,Value)-Pair #3
|
||||
|
||||
// DirectSound_CDirectSound_SetPositionA+0x37 : mov [edx+0x3C], edi
|
||||
{ 0x37, 0x89 }, // (Offset,Value)-Pair #4
|
||||
{ 0x38, 0x7A }, // (Offset,Value)-Pair #5
|
||||
{ 0x39, 0x3C }, // (Offset,Value)-Pair #6
|
||||
|
||||
// DirectSound_CDirectSound_SetPositionA+0x4C : or dword ptr [eax+34h], 1
|
||||
{ 0x4C, 0x83 }, // (Offset,Value)-Pair #7
|
||||
{ 0x4D, 0x48 }, // (Offset,Value)-Pair #8
|
||||
{ 0x4E, 0x34 }, // (Offset,Value)-Pair #9
|
||||
{ 0x4F, 0x01 }, // (Offset,Value)-Pair #10
|
||||
OOVPA_END;
|
||||
|
||||
// ******************************************************************
|
||||
// * DirectSound_CDirectSound::SetVelocity
|
||||
// ******************************************************************
|
||||
OOVPA_XREF(DirectSound_CDirectSound_SetVelocity, 5344, 14,
|
||||
|
||||
XREF_DSSETVELOCITYA,
|
||||
XRefZero)
|
||||
|
||||
// DirectSound_CDirectSound_SetVelocity+0x24 : mov eax, 0x80004005
|
||||
{ 0x24, 0xB8 }, // (Offset,Value)-Pair #1
|
||||
{ 0x25, 0x05 }, // (Offset,Value)-Pair #2
|
||||
{ 0x26, 0x40 }, // (Offset,Value)-Pair #3
|
||||
{ 0x27, 0x00 }, // (Offset,Value)-Pair #4
|
||||
{ 0x28, 0x80 }, // (Offset,Value)-Pair #5
|
||||
|
||||
// DirectSound_CDirectSound_SetVelocity+0x37 : mov [edx+0x48], edi
|
||||
{ 0x37, 0x89 }, // (Offset,Value)-Pair #6
|
||||
{ 0x38, 0x7A }, // (Offset,Value)-Pair #7
|
||||
{ 0x39, 0x48 }, // (Offset,Value)-Pair #8
|
||||
|
||||
// DirectSound_CDirectSound_SetVelocity+0x4C : or dword ptr [eax+34h], 2
|
||||
{ 0x4C, 0x83 }, // (Offset,Value)-Pair #9
|
||||
{ 0x4D, 0x48 }, // (Offset,Value)-Pair #10
|
||||
{ 0x4E, 0x34 }, // (Offset,Value)-Pair #11
|
||||
{ 0x4F, 0x02 }, // (Offset,Value)-Pair #12
|
||||
|
||||
// DirectSound_CDirectSound_SetVelocity+0x70 : retn 0x14
|
||||
{ 0x70, 0xC2 }, // (Offset,Value)-Pair #13
|
||||
{ 0x71, 0x14 }, // (Offset,Value)-Pair #14
|
||||
OOVPA_END;
|
||||
|
||||
// ******************************************************************
|
||||
// * DirectSound_CDirectSoundVoiceSettings::SetMixBins
|
||||
// ******************************************************************
|
||||
OOVPA_XREF(DirectSound_CDirectSoundVoiceSettings_SetMixBins, 5344, 7,
|
||||
|
||||
XREF_DSSETMIXBINSC,
|
||||
XRefZero)
|
||||
|
||||
{ 0x10, 0x10 },
|
||||
{ 0x11, 0x74 },
|
||||
{ 0x12, 0x07 },
|
||||
{ 0x13, 0xB8 },
|
||||
{ 0x3C, 0x50 },
|
||||
{ 0x4C, 0x0F },
|
||||
{ 0x5C, 0x46 },
|
||||
OOVPA_END;
|
||||
|
||||
// ******************************************************************
|
||||
// * DirectSound_CDirectSoundVoice::SetPosition
|
||||
// ******************************************************************
|
||||
OOVPA_XREF(DirectSound_CDirectSoundVoice_SetPosition, 5344, 8,
|
||||
|
||||
XREF_DSVOICESETPOSITION,
|
||||
XRefZero)
|
||||
|
||||
// DirectSound_CDirectSoundVoice_SetPosition+0x0F : mov edx, [ebp+arg_4]
|
||||
{ 0x0F, 0x8B },
|
||||
{ 0x10, 0x55 },
|
||||
{ 0x11, 0x0C },
|
||||
|
||||
// DirectSound_CDirectSoundVoice_SetPosition+0x12 : mov [ecx+08h], edx
|
||||
{ 0x12, 0x89 },
|
||||
{ 0x13, 0x51 },
|
||||
{ 0x14, 0x08 },
|
||||
|
||||
// DirectSound_CDirectSoundVoice_SetPosition+0x50 : retn 14h
|
||||
{ 0x50, 0x14 },
|
||||
{ 0x51, 0x00 }
|
||||
OOVPA_END;
|
||||
|
||||
// ******************************************************************
|
||||
// * DirectSound_CDirectSoundVoice::SetVelocity
|
||||
// ******************************************************************
|
||||
OOVPA_XREF(DirectSound_CDirectSoundVoice_SetVelocity, 5344, 8,
|
||||
|
||||
XREF_DSVOICESETVELOCITY,
|
||||
XRefZero)
|
||||
|
||||
// DirectSound_CDirectSoundVoice_SetVelocity+0x0F : mov edx, [ebp+arg_4]
|
||||
{ 0x0F, 0x8B },
|
||||
{ 0x10, 0x55 },
|
||||
{ 0x11, 0x0C },
|
||||
|
||||
// DirectSound_CDirectSoundVoice_SetVelocity+0x12 : mov [ecx+14h], edx
|
||||
{ 0x12, 0x89 },
|
||||
{ 0x13, 0x51 },
|
||||
{ 0x14, 0x14 },
|
||||
|
||||
// DirectSound_CDirectSoundVoice_SetVelocity+0x50 : retn 14h
|
||||
{ 0x50, 0x14 },
|
||||
{ 0x51, 0x00 }
|
||||
OOVPA_END;
|
||||
|
||||
// ******************************************************************
|
||||
// * DirectSound_CDirectSound::SynchPlayback
|
||||
// ******************************************************************
|
||||
OOVPA_XREF(DirectSound_CDirectSound_SynchPlayback, 5344, 8,
|
||||
|
||||
XREF_DSSYNCHPLAYBACKA,
|
||||
XRefZero)
|
||||
|
||||
{ 0x07, 0x3D },
|
||||
{ 0x0C, 0x00 },
|
||||
{ 0x16, 0x68 },
|
||||
{ 0x2D, 0x48 },
|
||||
{ 0x2E, 0x0C },
|
||||
{ 0x2F, 0x57 },
|
||||
{ 0x36, 0xF6 },
|
||||
{ 0x3B, 0x68 },
|
||||
OOVPA_END;
|
||||
|
||||
// ******************************************************************
|
||||
// * DirectSound_CDirectSoundVoice::SetI3DL2Source
|
||||
// ******************************************************************
|
||||
OOVPA_XREF(DirectSound_CDirectSoundVoice_SetI3DL2Source, 5344, 10,
|
||||
|
||||
XREF_DSVOICESETI3DL2SOURCE,
|
||||
XRefZero)
|
||||
|
||||
// DirectSound_CDirectSoundVoice_SetI3DL2Source+0x12 : mov esi, [ecx]
|
||||
{ 0x12, 0x8B },
|
||||
{ 0x13, 0x31 },
|
||||
|
||||
// DirectSound_CDirectSoundVoice_SetI3DL2Source+0x14 : mov [edx+80h], esi
|
||||
{ 0x14, 0x89 },
|
||||
{ 0x15, 0xB2 },
|
||||
{ 0x16, 0x80 },
|
||||
|
||||
// DirectSound_CDirectSoundVoice_SetI3DL2Source+0x50 : fld dword ptr [ecx+10h]
|
||||
{ 0x50, 0xD9 },
|
||||
{ 0x51, 0x41 },
|
||||
{ 0x52, 0x10 },
|
||||
|
||||
// DirectSound_CDirectSoundVoice_SetI3DL2Source+0xC7 : retn 0Ch
|
||||
{ 0xC7, 0xC2 },
|
||||
{ 0xC8, 0x0C }
|
||||
OOVPA_END;
|
||||
|
||||
// ******************************************************************
|
||||
// * DirectSound_CDirectSound::CommitDeferredSettings
|
||||
// ******************************************************************
|
||||
OOVPA_NO_XREF(DirectSound_CDirectSound_CommitDeferredSettings, 5344, 11)
|
||||
|
||||
// DirectSound_CDirectSound_CommitDeferredSettings+0x11 : movzx eax, al
|
||||
{ 0x11, 0x0F }, // (Offset,Value)-Pair #1
|
||||
{ 0x12, 0xB6 }, // (Offset,Value)-Pair #2
|
||||
{ 0x13, 0xC0 }, // (Offset,Value)-Pair #3
|
||||
|
||||
// DirectSound_CDirectSound_CommitDeferredSettings+0x27 : mov eax, 0x80004005
|
||||
{ 0x28, 0xB8 }, // (Offset,Value)-Pair #4
|
||||
{ 0x29, 0x05 }, // (Offset,Value)-Pair #5
|
||||
{ 0x2A, 0x40 }, // (Offset,Value)-Pair #6
|
||||
{ 0x2C, 0x80 }, // (Offset,Value)-Pair #7
|
||||
|
||||
// DirectSound_CDirectSound_CommitDeferredSettings+0x6D : mov [eax+0x34], edi
|
||||
{ 0x6E, 0x89 }, // (Offset,Value)-Pair #8
|
||||
{ 0x6F, 0x78 }, // (Offset,Value)-Pair #9
|
||||
{ 0x70, 0x34 }, // (Offset,Value)-Pair #10
|
||||
|
||||
// DirectSound_CDirectSound_CommitDeferredSettings+0x97 : leave
|
||||
{ 0x97, 0xC9 }, // (Offset,Value)-Pair #11
|
||||
OOVPA_END;
|
||||
|
||||
// ******************************************************************
|
||||
// * DirectSound::CMcpxVoiceClient::SetFilter
|
||||
// ******************************************************************
|
||||
OOVPA_XREF(DirectSound_CMcpxVoiceClient_SetFilter, 5344, 8,
|
||||
|
||||
XREF_DirectSound_CMcpxVoiceClient_SetFilter,
|
||||
XRefZero)
|
||||
|
||||
{ 0x1B, 0xF6 },
|
||||
{ 0x1C, 0xBA },
|
||||
{ 0x1D, 0xFF },
|
||||
{ 0x1E, 0xFF },
|
||||
{ 0x1F, 0x00 },
|
||||
{ 0x3E, 0x73 },
|
||||
{ 0x5E, 0x3E },
|
||||
{ 0x7E, 0x0B },
|
||||
OOVPA_END;
|
||||
|
||||
// ******************************************************************
|
||||
// * DirectSound::CDirectSoundBuffer::StopEx
|
||||
// ******************************************************************
|
||||
OOVPA_XREF(DirectSound_CDirectSoundBuffer_StopEx, 5344, 9,
|
||||
|
||||
XREF_DirectSound_CDirectSoundBuffer_StopEx,
|
||||
XRefZero)
|
||||
|
||||
{ 0x0C, 0x00 },
|
||||
{ 0x16, 0x68 },
|
||||
{ 0x25, 0x80 },
|
||||
{ 0x26, 0xEB },
|
||||
{ 0x27, 0x2D },
|
||||
{ 0x28, 0x8B },
|
||||
{ 0x30, 0xFF },
|
||||
{ 0x41, 0x85 },
|
||||
{ 0x47, 0x68 },
|
||||
OOVPA_END;
|
||||
|
||||
// ******************************************************************
|
||||
// * IDirectSound_SetEffectData
|
||||
// ******************************************************************
|
||||
OOVPA_NO_XREF(IDirectSound_SetEffectData, 5344, 7)
|
||||
|
||||
{ 0x04, 0x75 },
|
||||
{ 0x0A, 0x75 },
|
||||
{ 0x10, 0x14 },
|
||||
{ 0x16, 0x10 },
|
||||
{ 0x1C, 0x1B },
|
||||
{ 0x26, 0x5D },
|
||||
{ 0x28, 0x18 },
|
||||
OOVPA_END;
|
||||
|
||||
// ******************************************************************
|
||||
// * DirectSound::CDirectSound::EnableHeadphones
|
||||
// ******************************************************************
|
||||
OOVPA_XREF(DirectSound_CDirectSound_EnableHeadphones, 5344, 9,
|
||||
|
||||
XREF_DirectSound_CDirectSound_EnableHeadphones,
|
||||
XRefZero)
|
||||
|
||||
{ 0x04, 0x51 },
|
||||
{ 0x05, 0x83 },
|
||||
{ 0x06, 0x65 },
|
||||
{ 0x07, 0xFC },
|
||||
{ 0x08, 0x00 },
|
||||
{ 0x09, 0xE8 },
|
||||
{ 0x2D, 0x05 },
|
||||
{ 0x3D, 0x08 },
|
||||
{ 0x4D, 0xC3 },
|
||||
OOVPA_END;
|
||||
|
||||
// ******************************************************************
|
||||
// * DirectSound::CDirectSoundVoice::SetAllParameters
|
||||
// ******************************************************************
|
||||
OOVPA_XREF(DirectSound_CDirectSoundVoice_SetAllParameters, 5344, 10,
|
||||
|
||||
XREF_DirectSound_CDirectSoundVoice_SetAllParameters,
|
||||
XRefZero)
|
||||
|
||||
{ 0x0C, 0x50 },
|
||||
{ 0x10, 0xB4 },
|
||||
{ 0x14, 0xD9 },
|
||||
{ 0x1E, 0x92 },
|
||||
{ 0x13, 0x00 },
|
||||
{ 0x14, 0xD9 },
|
||||
{ 0x15, 0x5A },
|
||||
{ 0x16, 0x08 },
|
||||
{ 0x17, 0xD9 },
|
||||
{ 0x21, 0x00 },
|
||||
OOVPA_END;
|
||||
|
||||
// ******************************************************************
|
||||
// * DirectSound_CDirectSoundVoice::SetConeOutsideVolume
|
||||
// ******************************************************************
|
||||
OOVPA_XREF(DirectSound_CDirectSoundVoice_SetConeOutsideVolume, 5344, 9,
|
||||
|
||||
XREF_DSVOICESETCONEOUTSIDEVOLUME,
|
||||
XRefZero)
|
||||
|
||||
// DirectSound_CDirectSoundVoice_SetConeOutsideVolume+0x0D : mov edx, [esp+arg_4]
|
||||
{ 0x0D, 0x8B },
|
||||
{ 0x0E, 0x54 },
|
||||
{ 0x0F, 0x24 },
|
||||
{ 0x10, 0x08 },
|
||||
|
||||
// DirectSound_CDirectSoundVoice_SetConeOutsideVolume+0x11 : mov [eax+34h], edx
|
||||
{ 0x11, 0x89 },
|
||||
{ 0x12, 0x50 },
|
||||
{ 0x13, 0x34 },
|
||||
|
||||
// DirectSound_CDirectSoundVoice_SetConeOutsideVolume+0x30 : retn 0Ch
|
||||
{ 0x31, 0x0C },
|
||||
{ 0x32, 0x00 }
|
||||
OOVPA_END;
|
||||
|
||||
// ******************************************************************
|
||||
// * DirectSound::CDirectSoundVoice::SetRolloffFactor
|
||||
// ******************************************************************
|
||||
OOVPA_XREF(DirectSound_CDirectSoundVoice_SetRolloffFactor, 5344, 9,
|
||||
|
||||
XREF_DSVOICESETROLLOFFFACTOR,
|
||||
XRefZero)
|
||||
|
||||
// DirectSound_CDirectSoundVoice_SetRolloffFactor+0x0D : mov edx, [esp+arg_4]
|
||||
{ 0x0D, 0x8B },
|
||||
{ 0x0E, 0x54 },
|
||||
{ 0x0F, 0x24 },
|
||||
{ 0x10, 0x08 },
|
||||
|
||||
// DirectSound_CDirectSoundVoice_SetRolloffFactor+0x11 : mov [eax+48h], edx
|
||||
{ 0x11, 0x89 },
|
||||
{ 0x12, 0x50 },
|
||||
{ 0x13, 0x48 },
|
||||
|
||||
// DirectSound_CDirectSoundVoice_SetRolloffFactor+0x30 : retn 0Ch
|
||||
{ 0x31, 0x0C },
|
||||
{ 0x32, 0x00 }
|
||||
OOVPA_END;
|
||||
|
||||
// ******************************************************************
|
||||
// * DirectSound::CDirectSoundVoice::SetRolloffCurve
|
||||
// ******************************************************************
|
||||
OOVPA_XREF(DirectSound_CDirectSoundVoice_SetRolloffCurve, 5344, 8,
|
||||
|
||||
XREF_DSVOICESETROLLOFFCURVE,
|
||||
XRefZero)
|
||||
|
||||
{ 0x07, 0x8B },
|
||||
{ 0x10, 0x08 },
|
||||
{ 0x11, 0x89 },
|
||||
{ 0x12, 0x51 },
|
||||
{ 0x13, 0x50 },
|
||||
{ 0x14, 0x8B },
|
||||
{ 0x3E, 0x33 },
|
||||
{ 0x40, 0xC2 },
|
||||
OOVPA_END;
|
||||
|
||||
// ******************************************************************
|
||||
// * WaveFormat::CreateXboxAdpcmFormat
|
||||
// ******************************************************************
|
||||
OOVPA_XREF(WaveFormat_CreateXboxAdpcmFormat, 5344, 7,
|
||||
|
||||
XREF_DirectSound_WaveFormat_CreateXboxAdpcmFormat,
|
||||
XRefZero)
|
||||
|
||||
{ 0x07, 0x08 },
|
||||
{ 0x10, 0xE9 },
|
||||
{ 0x19, 0x8D },
|
||||
{ 0x22, 0x66 },
|
||||
{ 0x2B, 0x04 },
|
||||
{ 0x34, 0x66 },
|
||||
{ 0x3D, 0x12 },
|
||||
OOVPA_END;
|
||||
|
||||
// ******************************************************************
|
||||
// * XAudioCreateAdpcmFormat
|
||||
// ******************************************************************
|
||||
OOVPA_XREF(XAudioCreateAdpcmFormat, 5344, 2,
|
||||
|
||||
XRefNoSaveIndex,
|
||||
XRefOne)
|
||||
|
||||
XREF_ENTRY( 0x01, XREF_DirectSound_WaveFormat_CreateXboxAdpcmFormat ),
|
||||
|
||||
{ 0x00, 0xE9 },
|
||||
OOVPA_END;
|
||||
|
||||
// ******************************************************************
|
||||
// * DirectSound_CDirectSoundVoice::SetConeAngles
|
||||
// ******************************************************************
|
||||
OOVPA_XREF(DirectSound_CDirectSoundVoice_SetConeAngles, 5344, 9,
|
||||
|
||||
XREF_DSVOICESETCONEANGLES,
|
||||
XRefZero)
|
||||
|
||||
// DirectSound_CDirectSoundVoice_SetConeAngles+0x0D : mov edx, [esp+arg_4]
|
||||
{ 0x0D, 0x8B },
|
||||
{ 0x0E, 0x54 },
|
||||
{ 0x0F, 0x24 },
|
||||
{ 0x10, 0x08 },
|
||||
|
||||
// DirectSound_CDirectSoundVoice_SetConeAngles+0x11 : mov [ecx+20h], edx
|
||||
{ 0x11, 0x89 },
|
||||
{ 0x12, 0x51 },
|
||||
{ 0x13, 0x20 },
|
||||
|
||||
// DirectSound_CDirectSoundVoice_SetConeAngles+0x40 : retn 10h
|
||||
{ 0x41, 0x10 },
|
||||
{ 0x42, 0x00 }
|
||||
OOVPA_END;
|
||||
|
||||
// ******************************************************************
|
||||
// * DirectSound::CDirectSoundBuffer::SetHeadroom
|
||||
// ******************************************************************
|
||||
OOVPA_XREF(DirectSound_CDirectSoundBuffer_SetHeadroom, 5344, 8,
|
||||
|
||||
XREF_DirectSound_CDirectSoundBuffer_SetHeadroom,
|
||||
XRefOne)
|
||||
|
||||
XREF_ENTRY( 0x32, XREF_DirectSound_CDirectSoundVoice_SetHeadroom ),
|
||||
|
||||
{ 0x0C, 0x00 },
|
||||
{ 0x12, 0x85 },
|
||||
{ 0x1C, 0x15 },
|
||||
{ 0x26, 0xEB },
|
||||
{ 0x30, 0x10 },
|
||||
{ 0x3A, 0x74 },
|
||||
{ 0x47, 0x8B },
|
||||
OOVPA_END;
|
||||
|
||||
// ******************************************************************
|
||||
// * IDirectSoundBuffer_SetHeadroom
|
||||
// ******************************************************************
|
||||
OOVPA_XREF(IDirectSoundBuffer_SetHeadroom, 5344, 8,
|
||||
|
||||
XRefNoSaveIndex,
|
||||
XRefOne)
|
||||
|
||||
XREF_ENTRY( 0x15, XREF_DirectSound_CDirectSoundBuffer_SetHeadroom ),
|
||||
|
||||
{ 0x02, 0x24 },
|
||||
{ 0x06, 0x24 },
|
||||
{ 0x0A, 0x83 },
|
||||
{ 0x0E, 0xD9 },
|
||||
{ 0x12, 0xC8 },
|
||||
{ 0x19, 0xC2 },
|
||||
{ 0x1A, 0x08 },
|
||||
OOVPA_END;
|
||||
|
||||
// ******************************************************************
|
||||
// * Direct, 5344
|
||||
// ******************************************************************
|
||||
|
@ -431,20 +844,20 @@ OOVPATable DSound_5344[] = {
|
|||
REGISTER_OOVPA(DirectSoundDoWork, 4134, PATCH),
|
||||
REGISTER_OOVPA(DirectSound_CDirectSound_CreateSoundBuffer, 4134, XREF),
|
||||
REGISTER_OOVPA(CMcpxAPU_SynchPlayback, 5233, XREF),
|
||||
REGISTER_OOVPA(DirectSound_CDirectSound_SynchPlayback, 5233, XREF),
|
||||
REGISTER_OOVPA(DirectSound_CDirectSound_SynchPlayback, 5344, XREF),
|
||||
REGISTER_OOVPA(IDirectSound_SynchPlayback, 5233, PATCH),
|
||||
REGISTER_OOVPA(CMcpxStream_Pause, 5233, XREF),
|
||||
REGISTER_OOVPA(DirectSound_CDirectSoundStream_Pause, 4361, PATCH),
|
||||
REGISTER_OOVPA(DirectSound_CDirectSound_SetI3DL2Listener, 4134, DISABLED),
|
||||
REGISTER_OOVPA(IDirectSound_SetI3DL2Listener, 4134, DISABLED),
|
||||
REGISTER_OOVPA(DirectSound_CDirectSound_SetVelocity, 4627, XREF),
|
||||
REGISTER_OOVPA(DirectSound_CDirectSound_SetVelocity, 5344, XREF),
|
||||
REGISTER_OOVPA(IDirectSound_SetVelocity, 3936, PATCH),
|
||||
REGISTER_OOVPA(DirectSound_CDirectSoundVoiceSettings_SetMixBins, 4134, XREF),
|
||||
REGISTER_OOVPA(DirectSound_CDirectSoundVoiceSettings_SetMixBins, 5344, XREF),
|
||||
REGISTER_OOVPA(DirectSound_CDirectSoundVoice_SetMixBins, 4134, XREF),
|
||||
REGISTER_OOVPA(DirectSound_CDirectSoundBuffer_SetMixBins, 4134, XREF),
|
||||
REGISTER_OOVPA(IDirectSoundBuffer_SetMixBins, 4134, PATCH),
|
||||
REGISTER_OOVPA(DirectSound_CDirectSoundStream_SetMixBins, 5233, PATCH),
|
||||
REGISTER_OOVPA(DirectSound_CDirectSound_SetPositionA, 4627, XREF),
|
||||
REGISTER_OOVPA(DirectSound_CDirectSound_SetPositionA, 5344, XREF),
|
||||
REGISTER_OOVPA(IDirectSound_SetPosition, 3936, PATCH),
|
||||
REGISTER_OOVPA(DirectSoundCreateBuffer, 4627, PATCH),
|
||||
REGISTER_OOVPA(IDirectSound_CreateSoundBuffer, 4134, PATCH),
|
||||
|
@ -465,50 +878,48 @@ OOVPATable DSound_5344[] = {
|
|||
REGISTER_OOVPA(CMcpxBuffer_SetBufferData, 4134, XREF),
|
||||
REGISTER_OOVPA(DirectSound_CDirectSoundBuffer_SetBufferData, 4134, XREF),
|
||||
REGISTER_OOVPA(IDirectSoundBuffer_SetBufferData, 4134, PATCH),
|
||||
REGISTER_OOVPA(CMcpxBuffer_GetStatusB, 4627, XREF),
|
||||
REGISTER_OOVPA(CMcpxBuffer_GetStatus, 4831, XREF),
|
||||
REGISTER_OOVPA(DirectSound_CDirectSoundBuffer_GetStatus, 4134, XREF),
|
||||
REGISTER_OOVPA(IDirectSoundBuffer_GetStatus, 4134, PATCH),
|
||||
REGISTER_OOVPA(CMcpxBuffer_GetCurrentPosition, 4134, XREF),
|
||||
REGISTER_OOVPA(DirectSound_CDirectSoundBuffer_GetCurrentPosition, 4134, XREF),
|
||||
REGISTER_OOVPA(IDirectSoundBuffer_GetCurrentPosition, 3936, PATCH),
|
||||
REGISTER_OOVPA(CMcpxBuffer_Play, 4928, XREF),
|
||||
REGISTER_OOVPA(DirectSound_CDirectSoundBuffer_Play, 4361, XREF),
|
||||
REGISTER_OOVPA(IDirectSoundBuffer_Play, 4361, PATCH),
|
||||
REGISTER_OOVPA(DirectSound_CDirectSoundStream_FlushEx, 5233, XREF),
|
||||
REGISTER_OOVPA(IDirectSoundBuffer_StopEx, 5233, PATCH),
|
||||
REGISTER_OOVPA(DirectSound_CDirectSound_EnableHeadphones, 5233, XREF),
|
||||
REGISTER_OOVPA(IDirectSound8_EnableHeadphones, 5233, PATCH),
|
||||
REGISTER_OOVPA(IDirectSoundStream_FlushEx, 4627, PATCH),
|
||||
REGISTER_OOVPA(DirectSound_CDirectSound_EnableHeadphones, 5344, XREF),
|
||||
REGISTER_OOVPA(IDirectSound_EnableHeadphones, 4627, PATCH),
|
||||
REGISTER_OOVPA(IDirectSound_DownloadEffectsImage, 3936, PATCH),
|
||||
REGISTER_OOVPA(IDirectSound_SetOrientation, 3936, PATCH),
|
||||
REGISTER_OOVPA(DirectSound_CDirectSoundVoice_SetDistanceFactor, 5344, XREF),
|
||||
REGISTER_OOVPA(DirectSound_CDirectSoundBuffer_SetDistanceFactor, 4134, XREF),
|
||||
REGISTER_OOVPA(IDirectSoundBuffer_SetDistanceFactor, 4134, PATCH),
|
||||
REGISTER_OOVPA(DirectSound_CDirectSound_SetDistanceFactor, 5344, XREF),
|
||||
REGISTER_OOVPA(IDirectSound_SetDistanceFactor, 5344, PATCH),
|
||||
REGISTER_OOVPA(DirectSound_CDirectSound_SetDistanceFactorA, 4627, XREF),
|
||||
REGISTER_OOVPA(IDirectSound_SetDistanceFactor, 4134, DISABLED),
|
||||
REGISTER_OOVPA(DirectSound_CDirectSound_SetRolloffFactor, 4134, DISABLED),
|
||||
REGISTER_OOVPA(IDirectSound_SetRolloffFactor, 4134, DISABLED),
|
||||
REGISTER_OOVPA(IDirectSound_SetDistanceFactor, 4134, PATCH),
|
||||
REGISTER_OOVPA(DirectSound_CDirectSoundVoice_SetDopplerFactor, 5344, XREF),
|
||||
REGISTER_OOVPA(DirectSound_CDirectSoundBuffer_SetDopplerFactor, 4134, XREF),
|
||||
REGISTER_OOVPA(IDirectSoundBuffer_SetDopplerFactor, 4134, PATCH),
|
||||
REGISTER_OOVPA(DirectSound_CDirectSound_SetDopplerFactor, 5344, XREF),
|
||||
REGISTER_OOVPA(IDirectSound_SetDopplerFactor, 5344, PATCH),
|
||||
REGISTER_OOVPA(DirectSound_CDirectSound_SetDopplerFactor, 4627, DISABLED),
|
||||
REGISTER_OOVPA(IDirectSound_SetDopplerFactor, 4134, DISABLED),
|
||||
REGISTER_OOVPA(DirectSound_CDirectSound_CommitDeferredSettings, 4134, PATCH),
|
||||
REGISTER_OOVPA(DirectSound_CDirectSound_SetRolloffFactor, 4134, DISABLED),
|
||||
REGISTER_OOVPA(IDirectSound_SetRolloffFactor, 4134, DISABLED),
|
||||
REGISTER_OOVPA(DirectSound_CDirectSound_CommitDeferredSettings, 5344, PATCH),
|
||||
REGISTER_OOVPA(DirectSound_CDirectSoundVoice_SetMaxDistance, 5344, XREF),
|
||||
REGISTER_OOVPA(DirectSound_CDirectSoundBuffer_SetMaxDistance, 5344, XREF),
|
||||
REGISTER_OOVPA(IDirectSoundBuffer_SetMaxDistance, 5344, PATCH),
|
||||
REGISTER_OOVPA(DirectSound_CDirectSoundVoice_SetMinDistance, 5344, XREF),
|
||||
REGISTER_OOVPA(DirectSound_CDirectSoundBuffer_SetMinDistance, 5344, XREF),
|
||||
REGISTER_OOVPA(DirectSound_CDirectSoundStream_SetMinDistance, 5344, PATCH),
|
||||
REGISTER_OOVPA(IDirectSoundBuffer_SetMinDistance, 5344, PATCH),
|
||||
REGISTER_OOVPA(DirectSound_CDirectSoundVoice_SetMinDistance, 4134, DISABLED),
|
||||
REGISTER_OOVPA(DirectSound_CDirectSoundBuffer_SetMinDistance, 4134, DISABLED),
|
||||
REGISTER_OOVPA(IDirectSoundBuffer_SetMinDistance, 4134, DISABLED),
|
||||
REGISTER_OOVPA(DirectSound_CDirectSoundVoice_SetMaxDistance, 4134, DISABLED),
|
||||
REGISTER_OOVPA(DirectSound_CDirectSoundBuffer_SetMaxDistance, 4134, DISABLED),
|
||||
REGISTER_OOVPA(IDirectSoundBuffer_SetMaxDistance, 4134, DISABLED),
|
||||
REGISTER_OOVPA(DirectSound_CDirectSoundVoice_SetPosition, 4627, XREF),
|
||||
REGISTER_OOVPA(IDirectSoundBuffer_SetMinDistance, 4134, PATCH),
|
||||
REGISTER_OOVPA(DirectSound_CDirectSoundVoice_SetPosition, 5344, XREF),
|
||||
REGISTER_OOVPA(DirectSound_CDirectSoundBuffer_SetPosition, 4134, XREF),
|
||||
REGISTER_OOVPA(IDirectSoundBuffer_SetPosition, 3936, PATCH),
|
||||
REGISTER_OOVPA(DirectSound_CDirectSoundVoice_SetVelocity, 4134, XREF),
|
||||
REGISTER_OOVPA(DirectSound_CDirectSoundVoice_SetVelocity, 5344, XREF),
|
||||
REGISTER_OOVPA(DirectSound_CDirectSoundBuffer_SetVelocity, 4134, XREF),
|
||||
REGISTER_OOVPA(IDirectSoundBuffer_SetVelocity, 3936, PATCH),
|
||||
REGISTER_OOVPA(DirectSound_CDirectSoundVoice_SetI3DL2Source, 4134, XREF),
|
||||
REGISTER_OOVPA(DirectSound_CDirectSoundVoice_SetI3DL2Source, 5344, XREF),
|
||||
REGISTER_OOVPA(DirectSound_CDirectSoundBuffer_SetI3DL2Source, 4134, XREF),
|
||||
REGISTER_OOVPA(IDirectSoundBuffer_SetI3DL2Source, 4134, PATCH),
|
||||
REGISTER_OOVPA(IDirectSoundBuffer_Stop, 4134, PATCH),
|
||||
|
@ -517,26 +928,74 @@ OOVPATable DSound_5344[] = {
|
|||
REGISTER_OOVPA(DirectSound_CDirectSoundVoice_SetFormat, 5233, XREF),
|
||||
REGISTER_OOVPA(DirectSound_CDirectSoundBuffer_SetFormat, 4627, XREF),
|
||||
REGISTER_OOVPA(IDirectSoundBuffer_SetFormat, 4627, PATCH),
|
||||
REGISTER_OOVPA(DirectSound_CDirectSoundVoice_SetMode, 5233, DISABLED),
|
||||
REGISTER_OOVPA(DirectSound_CDirectSoundVoice_SetMode, 5344, XREF), // Add when needed...
|
||||
REGISTER_OOVPA(DirectSound_CDirectSoundVoice_SetMode, 5344, XREF),
|
||||
REGISTER_OOVPA(DirectSound_CDirectSoundBuffer_SetMode, 5233, XREF),
|
||||
REGISTER_OOVPA(IDirectSoundBuffer_SetMode, 5233, PATCH),
|
||||
REGISTER_OOVPA(DirectSound_CDirectSoundVoice_SetRolloffCurve, 5233, XREF),
|
||||
REGISTER_OOVPA(DirectSound_CDirectSoundVoice_SetRolloffCurve, 5344, XREF),
|
||||
REGISTER_OOVPA(DirectSound_CDirectSoundBuffer_SetRolloffCurve, 5233, XREF),
|
||||
REGISTER_OOVPA(IDirectSoundBuffer_SetRolloffCurve, 5233, PATCH),
|
||||
REGISTER_OOVPA(IDirectSound_AddRef, 3936, PATCH),
|
||||
REGISTER_OOVPA(DirectSound_CDirectSound_SetI3DL2Listener, 5344, XREF),
|
||||
REGISTER_OOVPA(IDirectSound_SetI3DL2Listener, 5344, PATCH),
|
||||
REGISTER_OOVPA(DirectSound_CDirectSoundVoice_SetRolloffFactor, 5344, XREF),
|
||||
REGISTER_OOVPA(DirectSound_CDirectSoundBuffer_SetRolloffFactor, 4134, XREF),
|
||||
REGISTER_OOVPA(IDirectSoundBuffer_SetRolloffFactor, 4134, PATCH),
|
||||
REGISTER_OOVPA(DirectSound_CDirectSound_SetRolloffFactor, 5344, XREF),
|
||||
REGISTER_OOVPA(IDirectSound_SetRolloffFactor, 5344, PATCH),
|
||||
REGISTER_OOVPA(DirectSound_CDirectSoundBuffer_SetLoopRegion, 4134, XREF),
|
||||
REGISTER_OOVPA(IDirectSoundBuffer_SetLoopRegion, 4134, PATCH),
|
||||
REGISTER_OOVPA(CMcpxBuffer_SetCurrentPosition, 4134, XREF),
|
||||
REGISTER_OOVPA(DirectSound_CDirectSoundBuffer_SetCurrentPosition, 4134, XREF),
|
||||
REGISTER_OOVPA(IDirectSoundBuffer_SetCurrentPosition, 4134, PATCH),
|
||||
// REGISTER_OOVPA(DirectSound_CDirectSoundVoice_SetDistanceFactor, 5558, XREF), // Add when needed...
|
||||
// REGISTER_OOVPA(DirectSound_CDirectSoundBuffer_SetDistanceFactor, 5558, XREF), // Add when needed...
|
||||
// REGISTER_OOVPA(IDirectSoundBuffer_SetDistanceFactor, 5558, PATCH), // Add when needed...
|
||||
REGISTER_OOVPA(DirectSound_CDirectSoundBuffer_SetLoopRegion, 4134, XREF),
|
||||
REGISTER_OOVPA(IDirectSoundBuffer_SetLoopRegion, 4134, PATCH),
|
||||
REGISTER_OOVPA(CMcpxBuffer_SetCurrentPosition, 4134, XREF),
|
||||
REGISTER_OOVPA(DirectSound_CDirectSoundBuffer_SetCurrentPosition, 4134, XREF),
|
||||
REGISTER_OOVPA(IDirectSoundBuffer_SetCurrentPosition, 4134, PATCH),
|
||||
REGISTER_OOVPA(DirectSound_CDirectSoundVoice_SetPitch, 4134, XREF),
|
||||
REGISTER_OOVPA(DirectSound_CDirectSoundBuffer_SetPitch, 4627, XREF),
|
||||
REGISTER_OOVPA(IDirectSoundBuffer_SetPitch, 4627, PATCH),
|
||||
REGISTER_OOVPA(DirectSound_CDirectSound_SetMixBinHeadroom, 4627, XREF),
|
||||
REGISTER_OOVPA(IDirectSound_SetMixBinHeadroom, 4627, PATCH),
|
||||
REGISTER_OOVPA(DirectSound_CDirectSoundVoice_SetHeadroom, 4627, XREF),
|
||||
REGISTER_OOVPA(DirectSound_CDirectSoundBuffer_SetHeadroom, 5344, XREF),
|
||||
REGISTER_OOVPA(IDirectSoundBuffer_SetHeadroom, 5344, PATCH),
|
||||
REGISTER_OOVPA(CMcpxVoiceClient_SetLFO, 4627, XREF),
|
||||
REGISTER_OOVPA(DirectSound_CDirectSoundVoice_SetLFO, 4627, XREF),
|
||||
REGISTER_OOVPA(DirectSound_CDirectSoundBuffer_SetLFO, 4627, XREF),
|
||||
REGISTER_OOVPA(IDirectSoundBuffer_SetLFO, 4627, PATCH),
|
||||
REGISTER_OOVPA(DirectSound_CMcpxVoiceClient_SetEG, 4627, XREF),
|
||||
REGISTER_OOVPA(DirectSound_CDirectSoundVoice_SetEG, 4627, XREF),
|
||||
REGISTER_OOVPA(DirectSound_CDirectSoundStream_SetEG, 4627, PATCH),
|
||||
REGISTER_OOVPA(DirectSound_CDirectSoundBuffer_SetEG, 4627, XREF),
|
||||
REGISTER_OOVPA(IDirectSoundBuffer_SetEG, 4627, PATCH),
|
||||
REGISTER_OOVPA(DirectSound_CMcpxVoiceClient_SetFilter, 5344, XREF),
|
||||
REGISTER_OOVPA(DirectSound_CDirectSoundVoice_SetFilter, 4134, XREF),
|
||||
REGISTER_OOVPA(DirectSound_CDirectSoundBuffer_SetFilter, 4134, XREF),
|
||||
REGISTER_OOVPA(DirectSound_CDirectSoundStream_SetFilter, 4627, PATCH),
|
||||
REGISTER_OOVPA(IDirectSoundBuffer_SetFilter, 4134, PATCH),
|
||||
REGISTER_OOVPA(DirectSound_CDirectSoundVoiceSettings_SetMixBinVolumes, 4627, XREF),
|
||||
REGISTER_OOVPA(DirectSound_CDirectSoundVoice_SetMixBinVolumes, 4627, XREF),
|
||||
REGISTER_OOVPA(DirectSound_CDirectSoundBuffer_SetMixBinVolumes, 4627, XREF),
|
||||
REGISTER_OOVPA(IDirectSoundBuffer_SetMixBinVolumes, 4627, PATCH),
|
||||
REGISTER_OOVPA(DirectSound_CDirectSoundBuffer_StopEx, 5344, XREF),
|
||||
REGISTER_OOVPA(IDirectSoundBuffer_StopEx, 4361, PATCH),
|
||||
REGISTER_OOVPA(DirectSound_CDirectSound_GetOutputLevels, 4627, XREF),
|
||||
REGISTER_OOVPA(IDirectSound_GetOutputLevels, 4627, PATCH),
|
||||
REGISTER_OOVPA(IDirectSound_SetEffectData, 5344, PATCH),
|
||||
REGISTER_OOVPA(DirectSound_CDirectSoundVoice_SetOutputBuffer, 4627, XREF),
|
||||
REGISTER_OOVPA(DirectSound_CDirectSoundBuffer_SetOutputBuffer, 4627, XREF),
|
||||
REGISTER_OOVPA(IDirectSoundBuffer_SetOutputBuffer, 4627, PATCH),
|
||||
REGISTER_OOVPA(DirectSound_CDirectSoundStream_SetOutputBuffer, 4627, PATCH),
|
||||
REGISTER_OOVPA(DirectSound_CDirectSoundVoice_SetAllParameters, 5344, XREF),
|
||||
REGISTER_OOVPA(DirectSound_CDirectSoundBuffer_SetAllParameters, 4134, XREF),
|
||||
REGISTER_OOVPA(IDirectSoundBuffer_SetAllParameters, 4134, PATCH),
|
||||
REGISTER_OOVPA(DirectSound_CDirectSoundVoice_SetConeOutsideVolume, 5344, XREF),
|
||||
REGISTER_OOVPA(DirectSound_CDirectSoundBuffer_SetConeOutsideVolume, 4134, XREF),
|
||||
REGISTER_OOVPA(IDirectSoundBuffer_SetConeOutsideVolume, 4134, PATCH),
|
||||
REGISTER_OOVPA(WaveFormat_CreateXboxAdpcmFormat, 5344, XREF),
|
||||
REGISTER_OOVPA(XAudioCreateAdpcmFormat, 5344, PATCH),
|
||||
REGISTER_OOVPA(IDirectSound_CreateSoundStream, 3936, PATCH),
|
||||
REGISTER_OOVPA(DirectSound_CDirectSoundVoice_SetConeAngles, 5344, XREF),
|
||||
REGISTER_OOVPA(DirectSound_CDirectSoundBuffer_SetConeAngles, 4134, XREF),
|
||||
REGISTER_OOVPA(IDirectSoundBuffer_SetConeAngles, 4134, PATCH),
|
||||
REGISTER_OOVPA(DirectSound_CDirectSoundBuffer_SetPlayRegion, 4361, XREF),
|
||||
REGISTER_OOVPA(IDirectSoundBuffer_SetPlayRegion, 4361, PATCH),
|
||||
};
|
||||
|
||||
// ******************************************************************
|
||||
|
|
|
@ -744,32 +744,12 @@ OOVPA_END;
|
|||
// ******************************************************************
|
||||
// * WaveFormat::CreateXboxAdpcmFormat
|
||||
// ******************************************************************
|
||||
OOVPA_XREF(WaveFormat_CreateXboxAdpcmFormat, 5558, 7,
|
||||
|
||||
XREF_DirectSound_WaveFormat_CreateXboxAdpcmFormat,
|
||||
XRefZero)
|
||||
|
||||
{ 0x07, 0x08 },
|
||||
{ 0x10, 0xE9 },
|
||||
{ 0x19, 0x8D },
|
||||
{ 0x22, 0x66 },
|
||||
{ 0x2B, 0x04 },
|
||||
{ 0x34, 0x66 },
|
||||
{ 0x3D, 0x12 },
|
||||
OOVPA_END;
|
||||
#define WaveFormat_CreateXboxAdpcmFormat_5558 WaveFormat_CreateXboxAdpcmFormat_5344
|
||||
|
||||
// ******************************************************************
|
||||
// * XAudioCreateAdpcmFormat
|
||||
// ******************************************************************
|
||||
OOVPA_XREF(XAudioCreateAdpcmFormat, 5558, 2,
|
||||
|
||||
XRefNoSaveIndex,
|
||||
XRefOne)
|
||||
|
||||
XREF_ENTRY( 0x01, XREF_DirectSound_WaveFormat_CreateXboxAdpcmFormat ),
|
||||
|
||||
{ 0x00, 0xE9 },
|
||||
OOVPA_END;
|
||||
#define XAudioCreateAdpcmFormat_5558 XAudioCreateAdpcmFormat_5344
|
||||
|
||||
// ******************************************************************
|
||||
// * DirectSound_CDirectSoundVoice::SetFormat
|
||||
|
|
|
@ -1516,16 +1516,7 @@ OOVPA_END;
|
|||
// ******************************************************************
|
||||
// * No XRefs! Woohoo!
|
||||
// ******************************************************************
|
||||
OOVPA_NO_XREF(IDirectSound_SetEffectData, 5788, 7)
|
||||
|
||||
{ 0x04, 0x75 },
|
||||
{ 0x0A, 0x75 },
|
||||
{ 0x10, 0x14 },
|
||||
{ 0x16, 0x10 },
|
||||
{ 0x1C, 0x1B },
|
||||
{ 0x26, 0x5D },
|
||||
{ 0x28, 0x18 },
|
||||
OOVPA_END;
|
||||
#define IDirectSound_SetEffectData_5788 IDirectSound_SetEffectData_5344
|
||||
|
||||
// ******************************************************************
|
||||
// * DirectSound::CMemoryManager::PoolAlloc
|
||||
|
|
|
@ -1725,6 +1725,9 @@ OOVPATable DSound_5849[] = {
|
|||
REGISTER_OOVPA(DirectSound_CDirectSoundBuffer_SetFrequency, 4134, XREF),
|
||||
REGISTER_OOVPA(IDirectSoundBuffer_SetFrequency, 4134, PATCH),
|
||||
REGISTER_OOVPA(CMcpxVoiceClient_SetVolume, 4134, XREF),
|
||||
REGISTER_OOVPA(DirectSound_CDirectSoundVoice_SetVolume, 5849, XREF),
|
||||
REGISTER_OOVPA(DirectSound_CDirectSoundBuffer_SetVolume, 5849, XREF),
|
||||
REGISTER_OOVPA(IDirectSoundBuffer_SetVolume, 5849, PATCH),
|
||||
REGISTER_OOVPA(DirectSound_CDirectSoundStream_SetVolume, 4134, PATCH),
|
||||
REGISTER_OOVPA(IDirectSound_Release, 3936, PATCH),
|
||||
REGISTER_OOVPA(IDirectSound_DownloadEffectsImage, 3936, PATCH),
|
||||
|
@ -1768,15 +1771,11 @@ OOVPATable DSound_5849[] = {
|
|||
REGISTER_OOVPA(IDirectSoundBuffer_StopEx, 5849, ALIAS, DirectSound_CDirectSoundBuffer_StopEx),
|
||||
REGISTER_OOVPA(DirectSound_CDirectSound_SetRolloffFactor, 5849, XREF),
|
||||
REGISTER_OOVPA(IDirectSound_SetRolloffFactor, 4134, PATCH),
|
||||
REGISTER_OOVPA(DirectSound_CDirectSound_SetRolloffFactor, 5344, DISABLED),
|
||||
REGISTER_OOVPA(DirectSound_CDirectSound_SetDopplerFactor, 5849, XREF),
|
||||
REGISTER_OOVPA(IDirectSound_SetDopplerFactor, 4134, PATCH),
|
||||
REGISTER_OOVPA(DirectSound_CDirectSoundVoice_SetPitch, 5849, XREF),
|
||||
REGISTER_OOVPA(DirectSound_CDirectSoundBuffer_SetPitch, 5849, XREF),
|
||||
REGISTER_OOVPA(IDirectSoundBuffer_SetPitch, 5849, PATCH),
|
||||
REGISTER_OOVPA(DirectSound_CDirectSoundVoice_SetVolume, 5849, XREF),
|
||||
REGISTER_OOVPA(DirectSound_CDirectSoundBuffer_SetVolume, 5849, XREF),
|
||||
REGISTER_OOVPA(IDirectSoundBuffer_SetVolume, 5849, PATCH),
|
||||
REGISTER_OOVPA(DirectSound_CDirectSoundBuffer_PlayEx, 5849, XREF),
|
||||
REGISTER_OOVPA(IDirectSoundBuffer_PlayEx, 5849, PATCH),
|
||||
REGISTER_OOVPA(DirectSound_CDirectSoundVoice_SetRolloffFactor, 5849, XREF),
|
||||
|
|
|
@ -0,0 +1,42 @@
|
|||
// ******************************************************************
|
||||
// *
|
||||
// * .,-::::: .,:: .::::::::. .,:: .:
|
||||
// * ,;;;'````' `;;;, .,;; ;;;'';;' `;;;, .,;;
|
||||
// * [[[ '[[,,[[' [[[__[[\. '[[,,[['
|
||||
// * $$$ Y$$$P $$""""Y$$ Y$$$P
|
||||
// * `88bo,__,o, oP"``"Yo, _88o,,od8P oP"``"Yo,
|
||||
// * "YUMMMMMP",m" "Mm,""YUMMMP" ,m" "Mm,
|
||||
// *
|
||||
// * Cxbx->Win32->CxbxKrnl->XG.1.0.5028.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 XG_5028_H
|
||||
#define XG_5028_H
|
||||
|
||||
#include "OOVPA.h"
|
||||
|
||||
extern OOVPATable XG_5028[];
|
||||
extern uint32 XG_5028_SIZE;
|
||||
|
||||
#endif
|
|
@ -0,0 +1,50 @@
|
|||
// ******************************************************************
|
||||
// *
|
||||
// * .,-::::: .,:: .::::::::. .,:: .:
|
||||
// * ,;;;'````' `;;;, .,;; ;;;'';;' `;;;, .,;;
|
||||
// * [[[ '[[,,[[' [[[__[[\. '[[,,[['
|
||||
// * $$$ Y$$$P $$""""Y$$ Y$$$P
|
||||
// * `88bo,__,o, oP"``"Yo, _88o,,od8P oP"``"Yo,
|
||||
// * "YUMMMMMP",m" "Mm,""YUMMMP" ,m" "Mm,
|
||||
// *
|
||||
// * Cxbx->Win32->CxbxKrnl->XG.1.0.5028.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
|
||||
// *
|
||||
// ******************************************************************
|
||||
|
||||
// ******************************************************************
|
||||
// * XG_5028
|
||||
// ******************************************************************
|
||||
OOVPATable XG_5028[] = {
|
||||
|
||||
REGISTER_OOVPA(XGIsSwizzledFormat, 4361, DISABLED),
|
||||
// REGISTER_OOVPA(XGSwizzleRect, 4361, PATCH), // Leave unpatched
|
||||
// REGISTER_OOVPA(XGUnswizzleRect, 4627, PATCH), // Leave unpatched
|
||||
REGISTER_OOVPA(XGSwizzleBox, 4627, PATCH),
|
||||
REGISTER_OOVPA(XGWriteSurfaceOrTextureToXPR, 4627, PATCH),
|
||||
};
|
||||
|
||||
// ******************************************************************
|
||||
// * XG_5028_SIZE
|
||||
// ******************************************************************
|
||||
uint32 XG_5028_SIZE = sizeof(XG_5028);
|
|
@ -0,0 +1,42 @@
|
|||
// ******************************************************************
|
||||
// *
|
||||
// * .,-::::: .,:: .::::::::. .,:: .:
|
||||
// * ,;;;'````' `;;;, .,;; ;;;'';;' `;;;, .,;;
|
||||
// * [[[ '[[,,[[' [[[__[[\. '[[,,[['
|
||||
// * $$$ Y$$$P $$""""Y$$ Y$$$P
|
||||
// * `88bo,__,o, oP"``"Yo, _88o,,od8P oP"``"Yo,
|
||||
// * "YUMMMMMP",m" "Mm,""YUMMMP" ,m" "Mm,
|
||||
// *
|
||||
// * Cxbx->Win32->CxbxKrnl->XOnline.1.0.5028.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 XONLINE_5028_H
|
||||
#define XONLINE_5028_H
|
||||
|
||||
#include "OOVPA.h"
|
||||
|
||||
extern OOVPATable XOnline_5028[];
|
||||
extern uint32 XOnline_5028_SIZE;
|
||||
|
||||
#endif
|
|
@ -0,0 +1,54 @@
|
|||
// ******************************************************************
|
||||
// *
|
||||
// * .,-::::: .,:: .::::::::. .,:: .:
|
||||
// * ,;;;'````' `;;;, .,;; ;;;'';;' `;;;, .,;;
|
||||
// * [[[ '[[,,[[' [[[__[[\. '[[,,[['
|
||||
// * $$$ Y$$$P $$""""Y$$ Y$$$P
|
||||
// * `88bo,__,o, oP"``"Yo, _88o,,od8P oP"``"Yo,
|
||||
// * "YUMMMMMP",m" "Mm,""YUMMMP" ,m" "Mm,
|
||||
// *
|
||||
// * Cxbx->Win32->CxbxKrnl->XOnline.1.0.5028.inl
|
||||
// *
|
||||
// * 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
|
||||
// *
|
||||
// ******************************************************************
|
||||
|
||||
// ******************************************************************
|
||||
// * XOnline_5028
|
||||
// ******************************************************************
|
||||
OOVPATable XOnline_5028[] ={
|
||||
|
||||
REGISTER_OOVPA(XNetStartup, 4361, PATCH),
|
||||
REGISTER_OOVPA(WSAStartup, 4361, PATCH),
|
||||
REGISTER_OOVPA(XnInit, 4627, XREF),
|
||||
REGISTER_OOVPA(socket, 4361, EMUTHIS),
|
||||
REGISTER_OOVPA(bind, 4361, EMUTHIS),
|
||||
REGISTER_OOVPA(listen, 4361, EMUTHIS),
|
||||
REGISTER_OOVPA(ioctlsocket, 4361, EMUTHIS),
|
||||
REGISTER_OOVPA(XNetGetEthernetLinkStatus, 4627, PATCH),
|
||||
REGISTER_OOVPA(XoUpdateLaunchNewImageInternal, 4627, XREF),
|
||||
};
|
||||
|
||||
// ******************************************************************
|
||||
// * XOnline_5028_SIZE
|
||||
// ******************************************************************
|
||||
uint32 XOnline_5028_SIZE = sizeof(XOnline_5028);
|
|
@ -0,0 +1,42 @@
|
|||
// ******************************************************************
|
||||
// *
|
||||
// * .,-::::: .,:: .::::::::. .,:: .:
|
||||
// * ,;;;'````' `;;;, .,;; ;;;'';;' `;;;, .,;;
|
||||
// * [[[ '[[,,[[' [[[__[[\. '[[,,[['
|
||||
// * $$$ Y$$$P $$""""Y$$ Y$$$P
|
||||
// * `88bo,__,o, oP"``"Yo, _88o,,od8P oP"``"Yo,
|
||||
// * "YUMMMMMP",m" "Mm,""YUMMMP" ,m" "Mm,
|
||||
// *
|
||||
// * Cxbx->Win32->CxbxKrnl->Xapi.1.0.5028.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 XAPI_5028_H
|
||||
#define XAPI_5028_H
|
||||
|
||||
#include "OOVPA.h"
|
||||
|
||||
extern OOVPATable XAPI_5028[];
|
||||
extern uint32 XAPI_5028_SIZE;
|
||||
|
||||
#endif
|
|
@ -0,0 +1,101 @@
|
|||
// ******************************************************************
|
||||
// *
|
||||
// * .,-::::: .,:: .::::::::. .,:: .:
|
||||
// * ,;;;'````' `;;;, .,;; ;;;'';;' `;;;, .,;;
|
||||
// * [[[ '[[,,[[' [[[__[[\. '[[,,[['
|
||||
// * $$$ Y$$$P $$""""Y$$ Y$$$P
|
||||
// * `88bo,__,o, oP"``"Yo, _88o,,od8P oP"``"Yo,
|
||||
// * "YUMMMMMP",m" "Mm,""YUMMMP" ,m" "Mm,
|
||||
// *
|
||||
// * Cxbx->Win32->CxbxKrnl->Xapi.1.0.5028.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
|
||||
// *
|
||||
// ******************************************************************
|
||||
|
||||
// ******************************************************************
|
||||
// * XAPI_5028
|
||||
// ******************************************************************
|
||||
OOVPATable XAPI_5028[] = {
|
||||
|
||||
REGISTER_OOVPA(XFormatUtilityDrive, 4627, PATCH),
|
||||
REGISTER_OOVPA(SetThreadPriorityBoost, 4627, PATCH),
|
||||
REGISTER_OOVPA(SetThreadPriority, 3911, PATCH),
|
||||
REGISTER_OOVPA(GetThreadPriority, 4627, PATCH),
|
||||
REGISTER_OOVPA(XRegisterThreadNotifyRoutine, 3911, PATCH),
|
||||
REGISTER_OOVPA(XMountUtilityDrive, 4432, PATCH),
|
||||
REGISTER_OOVPA(XInitDevices, 3911, PATCH),
|
||||
REGISTER_OOVPA(XGetDevices, 4134, PATCH),
|
||||
REGISTER_OOVPA(XInputOpen, 4361, PATCH),
|
||||
REGISTER_OOVPA(XInputPoll, 4134, PATCH),
|
||||
REGISTER_OOVPA(XID_fCloseDevice, 4627, XREF),
|
||||
REGISTER_OOVPA(XID_fCloseDevice, 4928, XREF),
|
||||
REGISTER_OOVPA(XInputClose, 4928, PATCH),
|
||||
REGISTER_OOVPA(XInputGetCapabilities, 4361, PATCH),
|
||||
REGISTER_OOVPA(XInputGetState, 4361, PATCH),
|
||||
REGISTER_OOVPA(XInputGetState, 4928, PATCH),
|
||||
REGISTER_OOVPA(XInputGetCapabilities, 4928, PATCH),
|
||||
REGISTER_OOVPA(XInputGetCapabilities, 4928, ALIAS, XInputGetCapabilities2),
|
||||
REGISTER_OOVPA(XInputGetCapabilities, 4928, ALIAS, XInputGetCapabilities3),
|
||||
REGISTER_OOVPA(XInputGetCapabilities, 4928, ALIAS, XInputGetCapabilities4),
|
||||
REGISTER_OOVPA(XInputGetCapabilities, 4928, ALIAS, XInputGetCapabilities5),
|
||||
REGISTER_OOVPA(XInputSetState, 4361, PATCH),
|
||||
REGISTER_OOVPA(XInputSetState, 4928, PATCH),
|
||||
// REGISTER_OOVPA(XapiThreadStartup, 4361, PATCH), // obsolete?
|
||||
REGISTER_OOVPA(XInputGetCapabilities, 4831, PATCH),
|
||||
REGISTER_OOVPA(XInputGetCapabilities, 4831, ALIAS, XInputGetCapabilities2),
|
||||
REGISTER_OOVPA(XInputGetCapabilities, 4831, ALIAS, XInputGetCapabilities3),
|
||||
REGISTER_OOVPA(XInputGetCapabilities, 4831, ALIAS, XInputGetCapabilities4),
|
||||
REGISTER_OOVPA(XInputGetCapabilities, 4831, ALIAS, XInputGetCapabilities5),
|
||||
REGISTER_OOVPA(XInputGetCapabilities, 4928, ALIAS, XInputGetCapabilities6),
|
||||
// REGISTER_OOVPA(XCalculateSignatureBeginEx, 4627, PATCH), // +s, not necessary?
|
||||
// REGISTER_OOVPA(XCalculateSignatureBegin, 4627, PATCH),
|
||||
// REGISTER_OOVPA(XCalculateSignatureUpdate, 4627, PATCH),
|
||||
// REGISTER_OOVPA(XCalculateSignatureEnd, 4627, PATCH), // s+
|
||||
REGISTER_OOVPA(CreateFiber, 3911, DISABLED),
|
||||
REGISTER_OOVPA(DeleteFiber, 3911, DISABLED),
|
||||
REGISTER_OOVPA(SwitchToFiber, 3911, DISABLED),
|
||||
REGISTER_OOVPA(ConvertThreadToFiber, 3911, DISABLED),
|
||||
REGISTER_OOVPA(GetTimeZoneInformation, 3911, DISABLED),
|
||||
REGISTER_OOVPA(GetExitCodeThread, 3911, PATCH),
|
||||
REGISTER_OOVPA(GetOverlappedResult, 4627, PATCH),
|
||||
REGISTER_OOVPA(XLaunchNewImage, 4627, ALIAS, XLaunchNewImageA),
|
||||
REGISTER_OOVPA(XLaunchNewImage, 4928, ALIAS, XLaunchNewImageA),
|
||||
REGISTER_OOVPA(XGetLaunchInfo, 4627, DISABLED),
|
||||
REGISTER_OOVPA(XSetProcessQuantumLength, 4627, PATCH),
|
||||
REGISTER_OOVPA(SignalObjectAndWait, 3911, PATCH),
|
||||
REGISTER_OOVPA(timeSetEvent, 4627, PATCH),
|
||||
REGISTER_OOVPA(timeKillEvent, 4627, PATCH),
|
||||
REGISTER_OOVPA(RaiseException, 4627, PATCH),
|
||||
REGISTER_OOVPA(QueueUserAPC, 3911, PATCH),
|
||||
REGISTER_OOVPA(XMountAlternateTitle, 4627, ALIAS, XMountAlternateTitleA),
|
||||
REGISTER_OOVPA(XMountAlternateTitle, 4928, ALIAS, XMountAlternateTitleA),
|
||||
REGISTER_OOVPA(XUnmountAlternateTitle, 4627, ALIAS, XUnmountAlternateTitleA),
|
||||
REGISTER_OOVPA(XInputGetDeviceDescription, 4831, PATCH),
|
||||
REGISTER_OOVPA(OutputDebugStringA, 3911, PATCH),
|
||||
// REGISTER_OOVPA(MoveFileA, 4627, PATCH),
|
||||
};
|
||||
|
||||
// ******************************************************************
|
||||
// * XAPI_5028_SIZE
|
||||
// ******************************************************************
|
||||
uint32 XAPI_5028_SIZE = sizeof(XAPI_5028);
|
|
@ -207,7 +207,6 @@ void EmuHLEIntercept(Xbe::Header *pXbeHeader)
|
|||
if(BuildVersion == 4928) { BuildVersion = 4627; }
|
||||
if(BuildVersion == 5455) { BuildVersion = 5558; }
|
||||
if(BuildVersion == 5659) { BuildVersion = 5558; }
|
||||
if(BuildVersion == 5028) { BuildVersion = 4627; }
|
||||
if(BuildVersion == 5120) { BuildVersion = 5233; }
|
||||
if(BuildVersion == 5933) { BuildVersion = 5849; } // These XDK versions are pretty much the same
|
||||
/*
|
||||
|
@ -319,16 +318,16 @@ void EmuHLEIntercept(Xbe::Header *pXbeHeader)
|
|||
{
|
||||
if(strcmp(Lib_XAPILIB, szLibraryName) == 0 &&
|
||||
(BuildVersion == 3911 || BuildVersion == 4034 || BuildVersion == 4134 || BuildVersion == 4361
|
||||
|| BuildVersion == 4432 || BuildVersion == 4627 || BuildVersion == 5233 || BuildVersion == 5344
|
||||
|| BuildVersion == 5558 || BuildVersion == 5788 || BuildVersion == 5849))
|
||||
|| BuildVersion == 4432 || BuildVersion == 4627 || BuildVersion == 5028 || BuildVersion == 5233
|
||||
|| BuildVersion == 5344 || BuildVersion == 5558 || BuildVersion == 5788 || BuildVersion == 5849))
|
||||
{
|
||||
xbaddr lower = pXbeHeader->dwBaseAddr;
|
||||
xbaddr upper = pXbeHeader->dwBaseAddr + pXbeHeader->dwSizeofImage;
|
||||
}
|
||||
else if(strcmp(Lib_D3D8, szLibraryName) == 0 /*&& strcmp(Lib_D3D8LTCG, szOrigLibraryName)*/ &&
|
||||
(BuildVersion == 3925 || BuildVersion == 4134 || BuildVersion == 4361 || BuildVersion == 4432
|
||||
|| BuildVersion == 4627 || BuildVersion == 5233 || BuildVersion == 5344 || BuildVersion == 5558
|
||||
|| BuildVersion == 5788 || BuildVersion == 5849))
|
||||
|| BuildVersion == 4627 || BuildVersion == 5028 || BuildVersion == 5233 || BuildVersion == 5344
|
||||
|| BuildVersion == 5558 || BuildVersion == 5788 || BuildVersion == 5849))
|
||||
{
|
||||
// Save D3D8 build version
|
||||
g_BuildVersion = BuildVersion;
|
||||
|
@ -364,8 +363,8 @@ void EmuHLEIntercept(Xbe::Header *pXbeHeader)
|
|||
Increment = 82 * 4;
|
||||
patchOffset = 142 * 4; // TODO: Verify
|
||||
|
||||
//Increment = 72 * 4;
|
||||
//Decrement = 0x19F; // TODO: Clean up (?)
|
||||
//Increment = 72 * 4;
|
||||
//patchOffset = 142*4; // TODO: Verify
|
||||
}
|
||||
else if (BuildVersion == 4034)
|
||||
|
@ -389,8 +388,8 @@ void EmuHLEIntercept(Xbe::Header *pXbeHeader)
|
|||
Increment = 83 * 4;
|
||||
patchOffset = 143 * 4;
|
||||
}
|
||||
else if (BuildVersion == 4627 || BuildVersion == 5233 || BuildVersion == 5344 || BuildVersion == 5558
|
||||
|| BuildVersion == 5788 || BuildVersion == 5849)
|
||||
else if (BuildVersion == 4627 || BuildVersion == 5028 || BuildVersion == 5233 || BuildVersion == 5344
|
||||
|| BuildVersion == 5558 || BuildVersion == 5788 || BuildVersion == 5849)
|
||||
{
|
||||
// WARNING: Not thoroughly tested (just seemed very correct right away)
|
||||
DerivedAddr_D3DRS_CULLMODE = *(xbaddr*)(pFunc + 0x2B);
|
||||
|
@ -456,8 +455,8 @@ void EmuHLEIntercept(Xbe::Header *pXbeHeader)
|
|||
pFunc = EmuLocateFunction((OOVPA*)&D3DDevice_SetTextureState_TexCoordIndex_4134, lower, upper);
|
||||
else if(BuildVersion == 4361 || BuildVersion == 4432)
|
||||
pFunc = EmuLocateFunction((OOVPA*)&D3DDevice_SetTextureState_TexCoordIndex_4361, lower, upper);
|
||||
else if(BuildVersion == 4627 || BuildVersion == 5233 || BuildVersion == 5344 || BuildVersion == 5558
|
||||
|| BuildVersion == 5788 || BuildVersion == 5849)
|
||||
else if(BuildVersion == 4627 || BuildVersion == 5028 || BuildVersion == 5233 || BuildVersion == 5344
|
||||
|| BuildVersion == 5558 || BuildVersion == 5788 || BuildVersion == 5849)
|
||||
pFunc = EmuLocateFunction((OOVPA*)&D3DDevice_SetTextureState_TexCoordIndex_4627, lower, upper);
|
||||
|
||||
if (pFunc != (xbaddr)nullptr)
|
||||
|
|
|
@ -0,0 +1,232 @@
|
|||
// 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->Win32->CxbxKrnl->MemoryManager.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 "CxbxKrnl.h"
|
||||
#include "Emu.h"
|
||||
#include "Logging.h"
|
||||
#include "MemoryManager.h"
|
||||
|
||||
MemoryManager g_MemoryManager;
|
||||
|
||||
MemoryManager::MemoryManager()
|
||||
{
|
||||
InitializeCriticalSectionAndSpinCount(&m_CriticalSection, 0x400);
|
||||
}
|
||||
|
||||
MemoryManager::~MemoryManager()
|
||||
{
|
||||
DeleteCriticalSection(&m_CriticalSection);
|
||||
}
|
||||
|
||||
void* MemoryManager::Allocate(size_t size)
|
||||
{
|
||||
LOG_FUNC_ONE_ARG(size);
|
||||
|
||||
EnterCriticalSection(&m_CriticalSection);
|
||||
|
||||
void* ptr = malloc(size);
|
||||
|
||||
if (ptr != nullptr) {
|
||||
MemoryBlockInfo info;
|
||||
info.offset = (uint32_t)ptr;
|
||||
info.size = size;
|
||||
info.type = MemoryType::STANDARD;
|
||||
|
||||
m_MemoryBlockInfo[info.offset] = info;
|
||||
}
|
||||
|
||||
LeaveCriticalSection(&m_CriticalSection);
|
||||
|
||||
RETURN(ptr);
|
||||
}
|
||||
|
||||
void* MemoryManager::AllocateAligned(size_t size, size_t alignment)
|
||||
{
|
||||
LOG_FUNC_BEGIN
|
||||
LOG_FUNC_ARG(size) ;
|
||||
LOG_FUNC_ARG(alignment);
|
||||
LOG_FUNC_END;
|
||||
|
||||
EnterCriticalSection(&m_CriticalSection);
|
||||
|
||||
void* ptr = _aligned_malloc(size, alignment);
|
||||
|
||||
if (ptr != nullptr) {
|
||||
MemoryBlockInfo info;
|
||||
info.offset = (uint32_t)ptr;
|
||||
info.size = size;
|
||||
info.type = MemoryType::ALIGNED;
|
||||
|
||||
m_MemoryBlockInfo[info.offset] = info;
|
||||
}
|
||||
|
||||
LeaveCriticalSection(&m_CriticalSection);
|
||||
|
||||
RETURN(ptr);
|
||||
}
|
||||
|
||||
void* MemoryManager::AllocateContiguous(size_t size, size_t alignment)
|
||||
{
|
||||
LOG_FUNC_BEGIN
|
||||
LOG_FUNC_ARG(size);
|
||||
LOG_FUNC_ARG(alignment);
|
||||
LOG_FUNC_END;
|
||||
|
||||
EnterCriticalSection(&m_CriticalSection);
|
||||
|
||||
// If the end address of the block won't meet the alignment, adjust the size
|
||||
if (size % alignment > 0) {
|
||||
size = (size + alignment) + (size % alignment);
|
||||
}
|
||||
|
||||
uint32_t addr = NULL;
|
||||
|
||||
// If the allocation table is empty, we can allocate wherever we please
|
||||
if (m_ContiguousMemoryRegions.size() == 0) {
|
||||
// Start allocating Contiguous Memory after the Kernel image header to prevent overwriting our dummy Kernel
|
||||
addr = XBOX_KERNEL_BASE + sizeof(DUMMY_KERNEL);
|
||||
} else {
|
||||
// Locate the first available Memory Region with enough space for the requested buffer
|
||||
// This could be improved later on by always locating the smallest block with enough space
|
||||
// in order to reduce memory fragmentation.
|
||||
for (auto it = m_ContiguousMemoryRegions.begin(); it != m_ContiguousMemoryRegions.end(); ++it) {
|
||||
ContiguousMemoryRegion current = it->second;
|
||||
|
||||
if (std::next(it) == m_ContiguousMemoryRegions.end()) {
|
||||
addr = current.offset + current.size;
|
||||
break;
|
||||
}
|
||||
|
||||
ContiguousMemoryRegion next = std::next(it)->second;
|
||||
if (((current.offset + current.size + size) < next.offset)) {
|
||||
addr = current.offset + current.size;
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (addr + size > MM_SYSTEM_PHYSICAL_MAP + CONTIGUOUS_MEMORY_SIZE) {
|
||||
EmuWarning("MemoryManager::AllocateContiguous exhausted it's allowed memory buffer");
|
||||
addr = NULL;
|
||||
}
|
||||
|
||||
if (addr != NULL) {
|
||||
ContiguousMemoryRegion region;
|
||||
region.offset = addr;
|
||||
region.size = size;
|
||||
m_ContiguousMemoryRegions[addr] = region;
|
||||
|
||||
MemoryBlockInfo info;
|
||||
info.type = MemoryType::CONTIGUOUS;
|
||||
info.offset = region.offset;
|
||||
info.size = region.size;
|
||||
m_MemoryBlockInfo[addr] = info;
|
||||
}
|
||||
|
||||
LeaveCriticalSection(&m_CriticalSection);
|
||||
RETURN((void*)addr);
|
||||
}
|
||||
|
||||
void* MemoryManager::AllocateZeroed(size_t num, size_t size)
|
||||
{
|
||||
void* buffer = Allocate(num * size);
|
||||
memset(buffer, 0, num * size);
|
||||
return buffer;
|
||||
}
|
||||
|
||||
bool MemoryManager::IsAllocated(void* block)
|
||||
{
|
||||
LOG_FUNC_ONE_ARG(block);
|
||||
|
||||
EnterCriticalSection(&m_CriticalSection);
|
||||
bool result = m_MemoryBlockInfo.find((uint32_t)block) != m_MemoryBlockInfo.end();
|
||||
LeaveCriticalSection(&m_CriticalSection);
|
||||
|
||||
RETURN(result);
|
||||
}
|
||||
|
||||
void MemoryManager::Free(void* block)
|
||||
{
|
||||
LOG_FUNC_ONE_ARG(block);
|
||||
|
||||
EnterCriticalSection(&m_CriticalSection);
|
||||
|
||||
if (IsAllocated(block)) {
|
||||
MemoryBlockInfo info = m_MemoryBlockInfo[info.offset];
|
||||
switch (info.type) {
|
||||
case MemoryType::ALIGNED:
|
||||
_aligned_free((void*)info.offset);
|
||||
m_MemoryBlockInfo.erase(info.offset);
|
||||
break;
|
||||
case MemoryType::STANDARD:
|
||||
free((void*)info.offset);
|
||||
m_MemoryBlockInfo.erase(info.offset);
|
||||
break;
|
||||
case MemoryType::CONTIGUOUS:
|
||||
m_ContiguousMemoryRegions.erase(info.offset);
|
||||
m_MemoryBlockInfo.erase(info.offset);
|
||||
break;
|
||||
default:
|
||||
CxbxKrnlCleanup("Fatal: MemoryManager attempted to free memory of an unknown type");
|
||||
break;
|
||||
}
|
||||
} else {
|
||||
__debugbreak();
|
||||
CxbxKrnlCleanup("Fatal: Attempted to free memory that was not allocated via MemoryManager");
|
||||
}
|
||||
|
||||
LeaveCriticalSection(&m_CriticalSection);
|
||||
}
|
||||
|
||||
size_t MemoryManager::QueryAllocationSize(void* block)
|
||||
{
|
||||
LOG_FUNC_ONE_ARG(block);
|
||||
|
||||
EnterCriticalSection(&m_CriticalSection);
|
||||
|
||||
size_t ret = 0;
|
||||
|
||||
if (IsAllocated(block)) {
|
||||
MemoryBlockInfo info = m_MemoryBlockInfo[(uint32_t)block];
|
||||
ret = info.size;
|
||||
}
|
||||
else {
|
||||
EmuWarning("MemoryManager: Attempted to query memory that was not allocated via MemoryManager");
|
||||
}
|
||||
|
||||
LeaveCriticalSection(&m_CriticalSection);
|
||||
RETURN(ret);
|
||||
}
|
|
@ -0,0 +1,92 @@
|
|||
// 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->Win32->CxbxKrnl->MemoryManager.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 MEMORY_MANAGER_H
|
||||
#define MEMORY_MANAGER_H
|
||||
|
||||
#include <Windows.h>
|
||||
#include <cstdint>
|
||||
#include <map>
|
||||
#include <unordered_map>
|
||||
|
||||
// Define virtual base and alternate virtual base of kernel.
|
||||
#define KSEG0_BASE 0x80000000
|
||||
// Define virtual base addresses for physical memory windows.
|
||||
#define MM_SYSTEM_PHYSICAL_MAP KSEG0_BASE
|
||||
#define MM_HIGHEST_PHYSICAL_PAGE 0x07FFF
|
||||
#define MM_64M_PHYSICAL_PAGE 0x04000
|
||||
#define MM_INSTANCE_PHYSICAL_PAGE 0x03FE0 // Chihiro arcade should use 0x07FF0
|
||||
#define MM_INSTANCE_PAGE_COUNT 16
|
||||
#define CONTIGUOUS_MEMORY_SIZE (64 * ONE_MB)
|
||||
|
||||
enum struct MemoryType {
|
||||
STANDARD = 0,
|
||||
ALIGNED,
|
||||
CONTIGUOUS
|
||||
};
|
||||
|
||||
typedef struct {
|
||||
MemoryType type;
|
||||
uint32_t offset;
|
||||
size_t size;
|
||||
} MemoryBlockInfo;
|
||||
|
||||
typedef struct {
|
||||
uint32_t offset;
|
||||
size_t size;
|
||||
} ContiguousMemoryRegion;
|
||||
|
||||
class MemoryManager
|
||||
{
|
||||
public:
|
||||
MemoryManager();
|
||||
~MemoryManager();
|
||||
void* Allocate(size_t size);
|
||||
void* AllocateAligned(size_t size, size_t alignment);
|
||||
void* AllocateContiguous(size_t size, size_t alignment);
|
||||
void* AllocateZeroed(size_t num, size_t size);
|
||||
bool IsAllocated(void* block);
|
||||
void Free(void* block);
|
||||
size_t QueryAllocationSize(void* block);
|
||||
private:
|
||||
std::unordered_map<uint32_t, MemoryBlockInfo> m_MemoryBlockInfo;
|
||||
std::map<uint32_t, ContiguousMemoryRegion> m_ContiguousMemoryRegions;
|
||||
CRITICAL_SECTION m_CriticalSection;
|
||||
};
|
||||
|
||||
extern MemoryManager g_MemoryManager;
|
||||
|
||||
#endif
|
|
@ -0,0 +1,10 @@
|
|||
#pragma once
|
||||
|
||||
#include "Version.h"
|
||||
|
||||
/*! version string dependent on trace flag */
|
||||
#ifndef _DEBUG_TRACE
|
||||
#define _CXBX_VERSION _GIT_VERSION " (" __DATE__ ")"
|
||||
#else
|
||||
#define _CXBX_VERSION _GIT_VERSION "-Trace (" __DATE__ ")"
|
||||
#endif
|
Loading…
Reference in New Issue