Introduce xbox namespace + deduplicate xbox types (#1942)

* Introduced new xbox namespace + moved inside it xbox pointer/address types

* Replaced xboxkrnl namespace with xbox namespace

* Moved kernel types from xboxkrnl.h to xbox_types.h

* Replaced XTL namespace with xbox namespace

* Fix a conflict with the VOID macro imported by Windows.h

* Fixed misalignment issues + renamed xtl_prefix
This commit is contained in:
ergo720 2020-08-24 20:29:48 +02:00 committed by GitHub
parent 8919d9981c
commit b304e538c6
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
112 changed files with 3201 additions and 3199 deletions

View File

@ -12,7 +12,9 @@
#ifndef XBOXKRNL_H
#define XBOXKRNL_H
namespace xboxkrnl
#include "xbox_types.h"
namespace xbox
{
// ******************************************************************
@ -59,72 +61,6 @@ namespace xboxkrnl
#undef VOLATILE
#define VOLATILE volatile
// ******************************************************************
// * VOID
// ******************************************************************
#ifndef VOID
typedef void VOID;
#endif
// ******************************************************************
// * Basic types
// ******************************************************************
typedef char CHAR, CCHAR;
typedef short SHORT, CSHORT;
typedef long LONG;
typedef unsigned char UCHAR;
typedef unsigned char BYTE;
typedef unsigned char BOOLEAN;
typedef unsigned short USHORT;
typedef unsigned short WORD;
typedef unsigned long ULONG;
typedef unsigned long DWORD;
typedef unsigned long SIZE_T, *PSIZE_T;
typedef unsigned long ACCESS_MASK, *PACCESS_MASK;
typedef unsigned long PHYSICAL_ADDRESS;
typedef int INT;
typedef long INT_PTR;
typedef signed __int64 LONGLONG;
typedef unsigned __int64 ULONGLONG;
typedef wchar_t WCHAR;
typedef unsigned __int64 QUAD; // 8 byte aligned 8 byte long
// ******************************************************************
// * Pointer types
// ******************************************************************
typedef CHAR *PCHAR;
typedef char *PSZ;
typedef CHAR *PCSZ;
typedef BYTE *PBYTE;
typedef BOOLEAN *PBOOLEAN;
typedef UCHAR *PUCHAR;
typedef USHORT *PUSHORT;
typedef ULONG *PULONG;
typedef DWORD *PDWORD, *LPDWORD;
typedef ACCESS_MASK *PACCESS_MASK;
typedef LONG *PLONG;
typedef long *PINT_PTR;
typedef VOID *PVOID, *LPVOID;
typedef void *HANDLE;
typedef HANDLE *PHANDLE;
// Additional basic and pointer types :
typedef __int32 LONG_PTR; // TODO : Update this declaration for 64 bit
typedef unsigned __int32 ULONG_PTR; // TODO : Update this declaration for 64 bit
typedef LONGLONG *PLONGLONG;
typedef QUAD *PQUAD;
// ******************************************************************
// ANSI (Multi-byte Character) types
// ******************************************************************
typedef CHAR *PCHAR, *LPCH, *PCH;
typedef CONST CHAR *LPCCH, *PCCH;
typedef WCHAR *LPWSTR, *PWSTR;
typedef /*_Null_terminated_*/ CONST WCHAR *LPCWSTR, *PCWSTR;
// ******************************************************************
// * LPSECURITY_ATTRIBUTES
// ******************************************************************

View File

@ -29,15 +29,6 @@
#define FUNC_EXPORTS __pragma(comment(linker, "/EXPORT:" __FUNCTION__ "=" __FUNCDNAME__))
/*! xbaddr is the type of a physical address */
typedef uint32_t xbaddr;
/*! xbnullptr is the type of null pointer address*/
#define xbnullptr nullptr
/*! xbnull is the type of null address or value*/
#define xbnull 0
#ifdef _DEBUG
/*! define this to track memory allocations */
//#define _DEBUG_ALLOC

View File

@ -38,12 +38,12 @@
#include "..\..\src\devices\LED.h" // For SetLEDSequence
#include "..\core\kernel\init\CxbxKrnl.h"
xboxkrnl::XBOX_EEPROM *EEPROM = nullptr; // Set using CxbxRestoreEEPROM()
xbox::XBOX_EEPROM *EEPROM = nullptr; // Set using CxbxRestoreEEPROM()
// Default value (NA), overwritten with the actual content in the eeprom by CxbxRestoreEEPROM
xboxkrnl::ULONG XboxFactoryGameRegion = XC_GAME_REGION_NA;
xbox::ULONG XboxFactoryGameRegion = XC_GAME_REGION_NA;
const EEPROMInfo* EmuFindEEPROMInfo(xboxkrnl::XC_VALUE_INDEX index)
const EEPROMInfo* EmuFindEEPROMInfo(xbox::XC_VALUE_INDEX index)
{
for (int i = 0; EEPROMInfos[i].index != XC_END_MARKER; i++)
if (EEPROMInfos[i].index == index)
@ -75,7 +75,7 @@ static void EepromCRC(unsigned char *crc, unsigned char *data, long dataLen) {
free(CRC_Data);
}
void gen_section_CRCs(xboxkrnl::XBOX_EEPROM* eeprom) {
void gen_section_CRCs(xbox::XBOX_EEPROM* eeprom) {
const long Factory_size = sizeof(eeprom->FactorySettings) - sizeof(eeprom->FactorySettings.Checksum);
const long User_size = sizeof(eeprom->UserSettings) - sizeof(eeprom->UserSettings.Checksum);
EepromCRC(
@ -90,9 +90,9 @@ void gen_section_CRCs(xboxkrnl::XBOX_EEPROM* eeprom) {
);
}
xboxkrnl::XBOX_EEPROM *CxbxRestoreEEPROM(char *szFilePath_EEPROM_bin)
xbox::XBOX_EEPROM *CxbxRestoreEEPROM(char *szFilePath_EEPROM_bin)
{
xboxkrnl::XBOX_EEPROM *pEEPROM;
xbox::XBOX_EEPROM *pEEPROM;
// First, try to open an existing EEPROM.bin file :
HANDLE hFileEEPROM = CreateFile(szFilePath_EEPROM_bin,
@ -148,7 +148,7 @@ xboxkrnl::XBOX_EEPROM *CxbxRestoreEEPROM(char *szFilePath_EEPROM_bin)
}
// Map EEPROM.bin contents into memory :
pEEPROM = (xboxkrnl::XBOX_EEPROM *)MapViewOfFile(
pEEPROM = (xbox::XBOX_EEPROM *)MapViewOfFile(
hFileMappingEEPROM,
FILE_MAP_READ | FILE_MAP_WRITE,
/* dwFileOffsetHigh */0,
@ -180,11 +180,11 @@ xboxkrnl::XBOX_EEPROM *CxbxRestoreEEPROM(char *szFilePath_EEPROM_bin)
}
// Read the HDD (and eventually also the online) keys stored in the eeprom file. Users can input them in the eeprom menu
memcpy(xboxkrnl::XboxHDKey, pEEPROM->EncryptedSettings.HDKey, xboxkrnl::XBOX_KEY_LENGTH);
memcpy(xbox::XboxHDKey, pEEPROM->EncryptedSettings.HDKey, xbox::XBOX_KEY_LENGTH);
// Verify the checksum of the eeprom header
UCHAR Checksum[20] = { 0 };
xboxkrnl::XcHMAC(xboxkrnl::XboxEEPROMKey, 16, pEEPROM->EncryptedSettings.Confounder, 8, pEEPROM->EncryptedSettings.HDKey, 20, Checksum);
xbox::XcHMAC(xbox::XboxEEPROMKey, 16, pEEPROM->EncryptedSettings.Confounder, 8, pEEPROM->EncryptedSettings.HDKey, 20, Checksum);
if (memcmp(Checksum, pEEPROM->EncryptedSettings.Checksum, 20))
{
// The checksums do not match. Log this error and flash the LED (red, off, red, off)
@ -195,9 +195,9 @@ xboxkrnl::XBOX_EEPROM *CxbxRestoreEEPROM(char *szFilePath_EEPROM_bin)
return pEEPROM;
}
void EmuEEPROMReset(xboxkrnl::XBOX_EEPROM* eeprom)
void EmuEEPROMReset(xbox::XBOX_EEPROM* eeprom)
{
memset(eeprom, 0, sizeof(xboxkrnl::XBOX_EEPROM));
memset(eeprom, 0, sizeof(xbox::XBOX_EEPROM));
// Set Factory Settings
eeprom->FactorySettings.AVRegion = AV_STANDARD_NTSC_M | AV_FLAGS_60Hz;
@ -208,7 +208,7 @@ void EmuEEPROMReset(xboxkrnl::XBOX_EEPROM* eeprom)
// Encrypted Section
eeprom->EncryptedSettings.GameRegion = XC_GAME_REGION_NA;
// TODO: HDD Key
xboxkrnl::XcHMAC(xboxkrnl::XboxEEPROMKey, 16, eeprom->EncryptedSettings.Confounder, 8, eeprom->EncryptedSettings.HDKey, 20, eeprom->EncryptedSettings.Checksum);
xbox::XcHMAC(xbox::XboxEEPROMKey, 16, eeprom->EncryptedSettings.Confounder, 8, eeprom->EncryptedSettings.HDKey, 20, eeprom->EncryptedSettings.Checksum);
// User Settings
eeprom->UserSettings.Language = XC_LANGUAGE_ENGLISH; // = English

View File

@ -32,19 +32,19 @@
#include <xboxkrnl/xboxkrnl.h> // For XC_VALUE_INDEX and XBOX_EEPROM
#define _WIN32
#define EEPROM_SIZE sizeof(xboxkrnl::XBOX_EEPROM)
#define EEPROM_SIZE sizeof(xbox::XBOX_EEPROM)
typedef struct EEPROMInfo {
xboxkrnl::XC_VALUE_INDEX index;
xbox::XC_VALUE_INDEX index;
int value_offset;
int value_type;
int value_length;
} EEPROMInfo;
#define XC_END_MARKER (xboxkrnl::XC_VALUE_INDEX)-1
#define XC_END_MARKER (xbox::XC_VALUE_INDEX)-1
#define EEPROM_INFO_ENTRY(XC, Member, REG_Type) \
{ xboxkrnl::XC, offsetof(xboxkrnl::XBOX_EEPROM, Member), REG_Type, sizeof(((xboxkrnl::XBOX_EEPROM *)0)->Member) }
{ xbox::XC, offsetof(xbox::XBOX_EEPROM, Member), REG_Type, sizeof(((xbox::XBOX_EEPROM *)0)->Member) }
static const EEPROMInfo EEPROMInfos[] = {
EEPROM_INFO_ENTRY(XC_TIMEZONE_BIAS, UserSettings.TimeZoneBias, REG_DWORD),
@ -78,7 +78,7 @@ static const EEPROMInfo EEPROMInfos[] = {
// Note : XC_FACTORY_GAME_REGION is linked to a separate ULONG XboxFactoryGameRegion (of type REG_DWORD)
EEPROM_INFO_ENTRY(XC_FACTORY_GAME_REGION, EncryptedSettings.GameRegion, REG_DWORD),
EEPROM_INFO_ENTRY(XC_ENCRYPTED_SECTION, EncryptedSettings, REG_BINARY),
{ xboxkrnl::XC_MAX_ALL, 0, REG_BINARY, sizeof(xboxkrnl::XBOX_EEPROM) },
{ xbox::XC_MAX_ALL, 0, REG_BINARY, sizeof(xbox::XBOX_EEPROM) },
{ XC_END_MARKER }
};
@ -142,16 +142,16 @@ static const EEPROMInfo EEPROMInfos[] = {
#define DVD_REGION_RESERVED 7
#define DVD_REGION_INTERNATIONAL 8
extern xboxkrnl::XBOX_EEPROM *CxbxRestoreEEPROM(char *szFilePath_EEPROM_bin);
extern xbox::XBOX_EEPROM *CxbxRestoreEEPROM(char *szFilePath_EEPROM_bin);
extern const EEPROMInfo* EmuFindEEPROMInfo(xboxkrnl::XC_VALUE_INDEX index);
extern const EEPROMInfo* EmuFindEEPROMInfo(xbox::XC_VALUE_INDEX index);
extern xboxkrnl::XBOX_EEPROM *EEPROM;
extern xbox::XBOX_EEPROM *EEPROM;
extern xboxkrnl::ULONG XboxFactoryGameRegion;
extern xbox::ULONG XboxFactoryGameRegion;
extern void EmuEEPROMReset(xboxkrnl::XBOX_EEPROM* eeprom);
extern void EmuEEPROMReset(xbox::XBOX_EEPROM* eeprom);
void gen_section_CRCs(xboxkrnl::XBOX_EEPROM*);
void gen_section_CRCs(xbox::XBOX_EEPROM*);
#endif // EMU_EEPROM_H

View File

@ -309,13 +309,13 @@ constexpr const char* remove_prefix(const char* str, const char *prefix) {
return (str_skip_prefix(str, prefix) == str + str_length(prefix)) ? str_skip_prefix(str, prefix) : str;
}
static const char* xtl_prefix = "XTL::";
static const char* xbox_prefix = "xbox::";
static const char* emupatch_prefix = "EmuPatch_"; // See #define EMUPATCH
constexpr const char* remove_emupatch_prefix(const char* str) {
// return an empty string when str isn't given
// skip XTL:: and/or EmuPatch_ prefix if present
return remove_prefix(remove_prefix(str, xtl_prefix), emupatch_prefix);
// skip xbox:: and/or EmuPatch_ prefix if present
return remove_prefix(remove_prefix(str, xbox_prefix), emupatch_prefix);
}
#define LOG_ARG_START "\n " << std::setfill(' ') << std::setw(20) << std::left

View File

@ -148,7 +148,7 @@ size_t IoVecFromBuffer(const IoVec* iov, unsigned int iov_cnt, size_t offset, vo
}
// Read an array of DWORDs in memory
bool GetDwords(xbaddr Paddr, uint32_t* Buffer, int Number)
bool GetDwords(xbox::addr Paddr, uint32_t* Buffer, int Number)
{
for (int i = 0; i < Number; i++, Buffer++, Paddr += sizeof(*Buffer)) {
// dropped little -> big endian conversion from XQEMU
@ -160,7 +160,7 @@ bool GetDwords(xbaddr Paddr, uint32_t* Buffer, int Number)
}
// Write an array of DWORDs in memory
bool WriteDwords(xbaddr Paddr, uint32_t* Buffer, int Number)
bool WriteDwords(xbox::addr Paddr, uint32_t* Buffer, int Number)
{
for (int i = 0; i < Number; i++, Buffer++, Paddr += sizeof(*Buffer)) {
// dropped big -> little endian conversion from XQEMU
@ -172,7 +172,7 @@ bool WriteDwords(xbaddr Paddr, uint32_t* Buffer, int Number)
}
// Read an array of WORDs in memory
bool GetWords(xbaddr Paddr, uint16_t* Buffer, int Number)
bool GetWords(xbox::addr Paddr, uint16_t* Buffer, int Number)
{
for (int i = 0; i < Number; i++, Buffer++, Paddr += sizeof(*Buffer)) {
// dropped little -> big endian conversion from XQEMU
@ -184,7 +184,7 @@ bool GetWords(xbaddr Paddr, uint16_t* Buffer, int Number)
}
// Write an array of WORDs in memory
bool WriteWords(xbaddr Paddr, uint16_t* Buffer, int Number)
bool WriteWords(xbox::addr Paddr, uint16_t* Buffer, int Number)
{
for (int i = 0; i < Number; i++, Buffer++, Paddr += sizeof(*Buffer)) {
// dropped big -> little endian conversion from XQEMU

View File

@ -26,6 +26,7 @@
#ifndef CXBXUTIL_H
#define CXBXUTIL_H
#include "xbox_types.h"
#include "Cxbx.h"
#include <stdint.h>
#include <assert.h>
@ -55,10 +56,10 @@ void IoVecAdd(IOVector* qiov, void* base, size_t len);
size_t IoVecTobuffer(const IoVec* iov, const unsigned int iov_cnt, size_t offset, void *buf, size_t bytes);
size_t IoVecFromBuffer(const IoVec* iov, unsigned int iov_cnt, size_t offset, void* buf, size_t bytes);
bool WriteDwords(xbaddr Paddr, uint32_t* Buffer, int Number);
bool GetDwords(xbaddr Paddr, uint32_t* Buffer, int Number);
bool GetWords(xbaddr Paddr, uint16_t* Buffer, int Number);
bool WriteWords(xbaddr Paddr, uint16_t* Buffer, int Number);
bool WriteDwords(xbox::addr Paddr, uint32_t* Buffer, int Number);
bool GetDwords(xbox::addr Paddr, uint32_t* Buffer, int Number);
bool GetWords(xbox::addr Paddr, uint16_t* Buffer, int Number);
bool WriteWords(xbox::addr Paddr, uint16_t* Buffer, int Number);
bool Memory_R(void* Addr, void* Buf, size_t Num);
bool Memory_W(void* Addr, void* Buf, size_t Num);
bool Memory_RW(void* Addr, void* Buf, size_t Num, bool bIsWrite);

View File

@ -76,9 +76,9 @@ Xbe::Xbe(const char *x_szFilename, bool bFromGUI)
ULONG FatalErrorCode = FATAL_ERROR_XBE_DASH_GENERIC;
if (xboxkrnl::LaunchDataPage && xboxkrnl::LaunchDataPage->Header.dwLaunchDataType == LDT_FROM_DASHBOARD)
if (xbox::LaunchDataPage && xbox::LaunchDataPage->Header.dwLaunchDataType == LDT_FROM_DASHBOARD)
{
xboxkrnl::PDASH_LAUNCH_DATA pLaunchDashboard = (xboxkrnl::PDASH_LAUNCH_DATA)&(xboxkrnl::LaunchDataPage->LaunchData[0]);
xbox::PDASH_LAUNCH_DATA pLaunchDashboard = (xbox::PDASH_LAUNCH_DATA)&(xbox::LaunchDataPage->LaunchData[0]);
FatalErrorCode += pLaunchDashboard->dwReason;
}
SetLEDSequence(0xE1); // green, red, red, red
@ -724,7 +724,7 @@ void *Xbe::FindSection(char *zsSectionName)
return nullptr;
}
void* Xbe::FindSection(xboxkrnl::PXBEIMAGE_SECTION section)
void* Xbe::FindSection(xbox::PXBEIMAGE_SECTION section)
{
for (uint32_t v = 0; v < m_Header.dwSections; v++) {
if (m_SectionHeader[v].dwVirtualAddr > 0 && m_SectionHeader[v].dwVirtualSize > 0) {
@ -786,23 +786,23 @@ bool Xbe::CheckSignature()
// Hash against all currently known public keys, if these pass, we can guarantee the Xbe is unmodified
std::array<RSA_PUBLIC_KEY, 3> keys = { 0 };
memcpy(keys[0].Default, (void*)xboxkrnl::XePublicKeyDataRetail, 284);
memcpy(keys[1].Default, (void*)xboxkrnl::XePublicKeyDataChihiroGame, 284);
memcpy(keys[2].Default, (void*)xboxkrnl::XePublicKeyDataChihiroBoot, 284);
// TODO: memcpy(keys[3].Default, (void*)xboxkrnl::XePublicKeyDataDebug, 284);
memcpy(keys[0].Default, (void*)xbox::XePublicKeyDataRetail, 284);
memcpy(keys[1].Default, (void*)xbox::XePublicKeyDataChihiroGame, 284);
memcpy(keys[2].Default, (void*)xbox::XePublicKeyDataChihiroBoot, 284);
// TODO: memcpy(keys[3].Default, (void*)xbox::XePublicKeyDataDebug, 284);
for (unsigned int i = 0; i < keys.size(); i++) {
if (xbox_rsa_public(m_Header.pbDigitalSignature, crypt_buffer, keys[i])) {
if (verify_hash(SHADigest, crypt_buffer, keys[i])) {
// Load the successful key into XboxKrnl::XePublicKeyData for application use
memcpy(xboxkrnl::XePublicKeyData, keys[i].Default, 284);
memcpy(xbox::XePublicKeyData, keys[i].Default, 284);
return true; // success
}
}
}
// Default to the Retail key if no key matched, just to make sure we don't init in an invalid state
memcpy(xboxkrnl::XePublicKeyData, xboxkrnl::XePublicKeyDataRetail, 284);
memcpy(xbox::XePublicKeyData, xbox::XePublicKeyDataRetail, 284);
return false; // signature check failed
}

View File

@ -39,7 +39,7 @@
#define XPR_IMAGE_DATA_SIZE (XPR_IMAGE_WH * XPR_IMAGE_WH) / 2
#define XPR_IMAGE_HDR_SIZE 2048
namespace xboxkrnl
namespace xbox
{
typedef struct _XBE_SECTION XBEIMAGE_SECTION, *PXBEIMAGE_SECTION;
}
@ -58,7 +58,7 @@ class Xbe : public Error
void *FindSection(char *zsSectionName);
// Find a section by its definition
void* FindSection(xboxkrnl::PXBEIMAGE_SECTION section);
void* FindSection(xbox::PXBEIMAGE_SECTION section);
// export to Xbe file
void Export(const char *x_szXbeFilename);

110
src/common/xbox_types.h Normal file
View File

@ -0,0 +1,110 @@
// ******************************************************************
// *
// * 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) 2020 ergo720
// *
// * All rights reserved
// *
// ******************************************************************
#pragma once
#include <cstdint>
#include <cstddef>
namespace xbox
{
#ifndef VOID
typedef void VOID;
#endif
/*! addr is the type of a physical address */
using addr = std::uint32_t;
/*! zero is the type of null address or value */
inline constexpr addr zero = 0;
/*! zeroptr is the type of null pointer address */
using zeroptr_t = std::nullptr_t;
inline constexpr zeroptr_t zeroptr = nullptr;
// ******************************************************************
// * Basic types
// ******************************************************************
typedef char CHAR, CCHAR;
typedef short SHORT, CSHORT;
typedef long LONG;
typedef unsigned char UCHAR;
typedef unsigned char BYTE;
typedef unsigned char BOOLEAN;
typedef unsigned short USHORT;
typedef unsigned short WORD;
typedef unsigned long ULONG;
typedef unsigned long DWORD;
typedef unsigned long SIZE_T, *PSIZE_T;
typedef unsigned long ACCESS_MASK, *PACCESS_MASK;
typedef unsigned long PHYSICAL_ADDRESS;
typedef unsigned int UINT;
typedef int INT;
typedef int INT_PTR;
typedef signed __int64 LONGLONG;
typedef unsigned __int64 ULONGLONG;
typedef wchar_t WCHAR;
typedef unsigned __int64 QUAD; // 8 byte aligned 8 byte long
typedef int BOOL;
typedef LONG HRESULT;
// ******************************************************************
// * Pointer types
// ******************************************************************
typedef CHAR *PCHAR;
typedef char *PSZ;
typedef CHAR *PCSZ;
typedef BYTE *PBYTE;
typedef BOOLEAN *PBOOLEAN;
typedef UCHAR *PUCHAR;
typedef USHORT *PUSHORT;
typedef unsigned int *PUINT;
typedef ULONG *PULONG;
typedef DWORD *PDWORD, *LPDWORD;
typedef ACCESS_MASK *PACCESS_MASK;
typedef LONG *PLONG;
typedef int *PINT_PTR;
typedef VOID *PVOID, *LPVOID;
typedef void *HANDLE;
typedef HANDLE *PHANDLE;
// Additional basic and pointer types :
typedef long LONG_PTR;
typedef unsigned long ULONG_PTR;
typedef LONGLONG *PLONGLONG;
typedef QUAD *PQUAD;
// ******************************************************************
// ANSI (Multi-byte Character) types
// ******************************************************************
typedef CHAR *PCHAR, *LPCH, *PCH;
typedef const CHAR *LPCCH, *PCCH;
typedef WCHAR *LPWSTR, *PWSTR;
typedef /*_Null_terminated_*/ const WCHAR *LPCWSTR, *PCWSTR;
}

View File

@ -5,7 +5,7 @@
#include <xboxkrnl/xboxkrnl.h> //#include <stdtypes.h>
#include "buffered_io.h"
namespace xboxkrnl
namespace xbox
{
PBYTE GetSectorBuffered(

View File

@ -7,7 +7,7 @@
extern "C" {
#endif
namespace xboxkrnl
namespace xbox
{
#define BOOL BOOLEAN

View File

@ -7,7 +7,7 @@
#include "buffered_io.h"
using namespace xboxkrnl;
using namespace xbox;
CONST CHAR *XDVDFS_Signature = "MICROSOFT*XBOX*MEDIA";

File diff suppressed because it is too large Load Diff

View File

@ -38,18 +38,18 @@ extern VOID CxbxInitWindow(bool bFullInit);
extern VOID CxbxSetPixelContainerHeader
(
XTL::X_D3DPixelContainer* pPixelContainer,
xbox::X_D3DPixelContainer* pPixelContainer,
DWORD Common,
UINT Width,
UINT Height,
UINT Levels,
XTL::X_D3DFORMAT Format,
xbox::X_D3DFORMAT Format,
UINT Dimensions,
UINT Pitch
);
extern uint8_t *ConvertD3DTextureToARGB(
XTL::X_D3DPixelContainer *pXboxPixelContainer,
xbox::X_D3DPixelContainer *pXboxPixelContainer,
uint8_t *pSrc,
int *pWidth, int *pHeight,
int TextureStage = 0
@ -67,11 +67,11 @@ extern IDirect3DDevice *g_pD3DDevice;
extern DWORD g_Xbox_VertexShader_Handle;
extern XTL::X_PixelShader *g_pXbox_PixelShader;
extern xbox::X_PixelShader *g_pXbox_PixelShader;
extern XTL::X_D3DBaseTexture *g_pXbox_SetTexture[XTL::X_D3DTS_STAGECOUNT];
extern xbox::X_D3DBaseTexture *g_pXbox_SetTexture[xbox::X_D3DTS_STAGECOUNT];
namespace XTL {
namespace xbox {
// ******************************************************************
// * patch: Direct3D_CreateDevice
@ -345,7 +345,7 @@ VOID __stdcall EMUPATCH(D3DDevice_GetViewportOffsetAndScale_0)();
// ******************************************************************
VOID WINAPI EMUPATCH(D3DDevice_SetShaderConstantMode)
(
XTL::X_VERTEXSHADERCONSTANTMODE Mode
xbox::X_VERTEXSHADERCONSTANTMODE Mode
);
VOID __stdcall EMUPATCH(D3DDevice_SetShaderConstantMode_0)();
@ -1339,7 +1339,7 @@ BYTE* WINAPI EMUPATCH(D3DVertexBuffer_Lock2)
// ******************************************************************
// * patch: D3DDevice_GetStreamSource2
// ******************************************************************
XTL::X_D3DVertexBuffer* WINAPI EMUPATCH(D3DDevice_GetStreamSource2)
xbox::X_D3DVertexBuffer* WINAPI EMUPATCH(D3DDevice_GetStreamSource2)
(
UINT StreamNumber,
UINT *pStride
@ -2126,6 +2126,6 @@ VOID WINAPI EMUPATCH(D3DDevice_GetMaterial)
X_D3DMATERIAL8* pMaterial
);
} // end of namespace XTL
} // end of namespace xbox
#endif

View File

@ -60,7 +60,7 @@ bool XboxRenderStateConverter::Init()
bool IsRenderStateAvailableInCurrentXboxD3D8Lib(RenderStateInfo& aRenderStateInfo)
{
bool bIsRenderStateAvailable = (aRenderStateInfo.V <= g_LibVersion_D3D8);
if (aRenderStateInfo.R > 0) { // Applies to XTL::X_D3DRS_MULTISAMPLETYPE
if (aRenderStateInfo.R > 0) { // Applies to xbox::X_D3DRS_MULTISAMPLETYPE
// Note : X_D3DRS_MULTISAMPLETYPE seems the only render state that got
// removed (from 4039 onwards), so we check that limitation here as well
bIsRenderStateAvailable &= (g_LibVersion_D3D8 < aRenderStateInfo.R);
@ -79,7 +79,7 @@ void XboxRenderStateConverter::VerifyAndFixDeferredRenderStateOffset()
// Calculate index of D3DRS_CULLMODE for this XDK. We start counting from the first deferred state (D3DRS_FOGENABLE)
DWORD CullModeIndex = 0;
for (int i = XTL::X_D3DRS_DEFERRED_FIRST; i < XTL::X_D3DRS_CULLMODE; i++) {
for (int i = xbox::X_D3DRS_DEFERRED_FIRST; i < xbox::X_D3DRS_CULLMODE; i++) {
auto RenderStateInfo = GetDxbxRenderStateInfo(i);
if (IsRenderStateAvailableInCurrentXboxD3D8Lib(RenderStateInfo)) {
CullModeIndex++;
@ -102,7 +102,7 @@ void XboxRenderStateConverter::DeriveRenderStateOffsetFromDeferredRenderStateOff
// Count the number of render states (for this XDK) between 0 and the first deferred render state (D3DRS_FOGENABLE)
int FirstDeferredRenderStateOffset = 0;
for (unsigned int RenderState = XTL::X_D3DRS_FIRST; RenderState < XTL::X_D3DRS_DEFERRED_FIRST; RenderState++) {
for (unsigned int RenderState = xbox::X_D3DRS_FIRST; RenderState < xbox::X_D3DRS_DEFERRED_FIRST; RenderState++) {
// if the current renderstate exists in this XDK version, count it
auto RenderStateInfo = GetDxbxRenderStateInfo(RenderState);
if (IsRenderStateAvailableInCurrentXboxD3D8Lib(RenderStateInfo)) {
@ -123,7 +123,7 @@ void XboxRenderStateConverter::BuildRenderStateMappingTable()
XboxRenderStateOffsets.fill(-1);
int XboxIndex = 0;
for (unsigned int RenderState = XTL::X_D3DRS_FIRST; RenderState <= XTL::X_D3DRS_LAST; RenderState++) {
for (unsigned int RenderState = xbox::X_D3DRS_FIRST; RenderState <= xbox::X_D3DRS_LAST; RenderState++) {
auto RenderStateInfo = GetDxbxRenderStateInfo(RenderState);
if (IsRenderStateAvailableInCurrentXboxD3D8Lib(RenderStateInfo)) {
XboxRenderStateOffsets[RenderState] = XboxIndex;
@ -143,7 +143,7 @@ void XboxRenderStateConverter::SetDirty()
void* XboxRenderStateConverter::GetPixelShaderRenderStatePointer()
{
return &D3D__RenderState[XTL::X_D3DRS_PS_FIRST];
return &D3D__RenderState[xbox::X_D3DRS_PS_FIRST];
}
bool XboxRenderStateConverter::XboxRenderStateExists(uint32_t State)
@ -186,7 +186,7 @@ uint32_t XboxRenderStateConverter::GetXboxRenderState(uint32_t State)
void XboxRenderStateConverter::StoreInitialValues()
{
for (unsigned int RenderState = XTL::X_D3DRS_FIRST; RenderState <= XTL::X_D3DRS_LAST; RenderState++) {
for (unsigned int RenderState = xbox::X_D3DRS_FIRST; RenderState <= xbox::X_D3DRS_LAST; RenderState++) {
// Skip Render States that don't exist within this XDK
if (!XboxRenderStateExists(RenderState)) {
continue;
@ -202,28 +202,28 @@ void XboxRenderStateConverter::SetWireFrameMode(int wireframe)
// Wireframe mode changed, so we must force the Fill Mode renderstate to dirty
// At next call to Apply, the desired WireFrame mode will be set
PreviousRenderStateValues[XTL::X_D3DRS_FILLMODE] = -1;
PreviousRenderStateValues[xbox::X_D3DRS_FILLMODE] = -1;
}
void XboxRenderStateConverter::Apply()
{
// Iterate through each RenderState and set the associated host render state
// We start counting at X_D3DRS_SIMPLE_FIRST, to skip the pixel shader renderstates handled elsewhere
for (unsigned int RenderState = XTL::X_D3DRS_SIMPLE_FIRST; RenderState <= XTL::X_D3DRS_LAST; RenderState++) {
for (unsigned int RenderState = xbox::X_D3DRS_SIMPLE_FIRST; RenderState <= xbox::X_D3DRS_LAST; RenderState++) {
// Skip any renderstate that does not exist in the current XDK, or have not changed since the previous update call
// Also skip PSTextureModes, which is a special case used by Pixel Shaders
if (!XboxRenderStateExists(RenderState) || !XboxRenderStateValueChanged(RenderState) || RenderState == XTL::X_D3DRS_PSTEXTUREMODES) {
if (!XboxRenderStateExists(RenderState) || !XboxRenderStateValueChanged(RenderState) || RenderState == xbox::X_D3DRS_PSTEXTUREMODES) {
continue;
}
auto Value = GetXboxRenderState(RenderState);
EmuLog(LOG_LEVEL::DEBUG, "XboxRenderStateConverter::Apply(%s, %X)\n", GetDxbxRenderStateInfo(RenderState).S, Value);
if (RenderState <= XTL::X_D3DRS_SIMPLE_LAST) {
if (RenderState <= xbox::X_D3DRS_SIMPLE_LAST) {
ApplySimpleRenderState(RenderState, Value);
} else if (RenderState <= XTL::X_D3DRS_DEFERRED_LAST) {
} else if (RenderState <= xbox::X_D3DRS_DEFERRED_LAST) {
ApplyDeferredRenderState(RenderState, Value);
} else if (RenderState <= XTL::X_D3DRS_COMPLEX_LAST) {
} else if (RenderState <= xbox::X_D3DRS_COMPLEX_LAST) {
ApplyComplexRenderState(RenderState, Value);
}
@ -236,7 +236,7 @@ void XboxRenderStateConverter::ApplySimpleRenderState(uint32_t State, uint32_t V
auto RenderStateInfo = GetDxbxRenderStateInfo(State);
switch (State) {
case XTL::X_D3DRS_COLORWRITEENABLE: {
case xbox::X_D3DRS_COLORWRITEENABLE: {
DWORD OrigValue = Value;
Value = 0;
@ -256,26 +256,26 @@ void XboxRenderStateConverter::ApplySimpleRenderState(uint32_t State, uint32_t V
Value |= D3DCOLORWRITEENABLE_ALPHA;
}
} break;
case XTL::X_D3DRS_SHADEMODE:
case xbox::X_D3DRS_SHADEMODE:
Value = EmuXB2PC_D3DSHADEMODE(Value);
break;
case XTL::X_D3DRS_BLENDOP:
case xbox::X_D3DRS_BLENDOP:
Value = EmuXB2PC_D3DBLENDOP(Value);
break;
case XTL::X_D3DRS_SRCBLEND:
case XTL::X_D3DRS_DESTBLEND:
case xbox::X_D3DRS_SRCBLEND:
case xbox::X_D3DRS_DESTBLEND:
Value = EmuXB2PC_D3DBLEND(Value);
break;
case XTL::X_D3DRS_ZFUNC:
case XTL::X_D3DRS_ALPHAFUNC:
case XTL::X_D3DRS_STENCILFUNC:
case xbox::X_D3DRS_ZFUNC:
case xbox::X_D3DRS_ALPHAFUNC:
case xbox::X_D3DRS_STENCILFUNC:
Value = EmuXB2PC_D3DCMPFUNC(Value);
break;
case XTL::X_D3DRS_STENCILZFAIL:
case XTL::X_D3DRS_STENCILPASS:
case xbox::X_D3DRS_STENCILZFAIL:
case xbox::X_D3DRS_STENCILPASS:
Value = EmuXB2PC_D3DSTENCILOP(Value);
break;
case XTL::X_D3DRS_ALPHATESTENABLE:
case xbox::X_D3DRS_ALPHATESTENABLE:
if (g_LibVersion_D3D8 == 3925) {
// HACK: Many 3925 have missing polygons when this is true
// Until we find out the true underlying cause, and carry on
@ -284,11 +284,11 @@ void XboxRenderStateConverter::ApplySimpleRenderState(uint32_t State, uint32_t V
Value = false;
}
break;
case XTL::X_D3DRS_ALPHABLENDENABLE:
case XTL::X_D3DRS_BLENDCOLOR:
case XTL::X_D3DRS_ALPHAREF: case XTL::X_D3DRS_ZWRITEENABLE:
case XTL::X_D3DRS_DITHERENABLE: case XTL::X_D3DRS_STENCILREF:
case XTL::X_D3DRS_STENCILMASK: case XTL::X_D3DRS_STENCILWRITEMASK:
case xbox::X_D3DRS_ALPHABLENDENABLE:
case xbox::X_D3DRS_BLENDCOLOR:
case xbox::X_D3DRS_ALPHAREF: case xbox::X_D3DRS_ZWRITEENABLE:
case xbox::X_D3DRS_DITHERENABLE: case xbox::X_D3DRS_STENCILREF:
case xbox::X_D3DRS_STENCILMASK: case xbox::X_D3DRS_STENCILWRITEMASK:
// These render states require no conversion, so we simply
// allow SetRenderState to be called with no changes
break;
@ -314,8 +314,8 @@ void XboxRenderStateConverter::ApplyDeferredRenderState(uint32_t State, uint32_t
// Convert from Xbox Data Formats to PC
switch (State) {
case XTL::X_D3DRS_FOGSTART:
case XTL::X_D3DRS_FOGEND: {
case xbox::X_D3DRS_FOGSTART:
case xbox::X_D3DRS_FOGEND: {
// HACK: If the fog start/fog-end are negative, make them positive
// This fixes Smashing Drive on non-nvidia hardware
// Cause appears to be non-nvidia drivers clamping values < 0 to 0
@ -328,7 +328,7 @@ void XboxRenderStateConverter::ApplyDeferredRenderState(uint32_t State, uint32_t
Value = *(DWORD*)& fogValue;
}
} break;
case XTL::X_D3DRS_FOGENABLE:
case xbox::X_D3DRS_FOGENABLE:
if (g_LibVersion_D3D8 == 3925) {
// HACK: Many 3925 games only show a black screen if fog is enabled
// Initially, this was thought to be bad offsets, but it has been verified to be correct
@ -338,49 +338,49 @@ void XboxRenderStateConverter::ApplyDeferredRenderState(uint32_t State, uint32_t
Value = false;
}
break;
case XTL::X_D3DRS_FOGTABLEMODE:
case XTL::X_D3DRS_FOGDENSITY:
case XTL::X_D3DRS_RANGEFOGENABLE:
case XTL::X_D3DRS_LIGHTING:
case XTL::X_D3DRS_SPECULARENABLE:
case XTL::X_D3DRS_LOCALVIEWER:
case XTL::X_D3DRS_COLORVERTEX:
case XTL::X_D3DRS_SPECULARMATERIALSOURCE:
case XTL::X_D3DRS_DIFFUSEMATERIALSOURCE:
case XTL::X_D3DRS_AMBIENTMATERIALSOURCE:
case XTL::X_D3DRS_EMISSIVEMATERIALSOURCE:
case XTL::X_D3DRS_AMBIENT:
case XTL::X_D3DRS_POINTSIZE:
case XTL::X_D3DRS_POINTSIZE_MIN:
case XTL::X_D3DRS_POINTSPRITEENABLE:
case XTL::X_D3DRS_POINTSCALEENABLE:
case XTL::X_D3DRS_POINTSCALE_A:
case XTL::X_D3DRS_POINTSCALE_B:
case XTL::X_D3DRS_POINTSCALE_C:
case XTL::X_D3DRS_POINTSIZE_MAX:
case XTL::X_D3DRS_PATCHEDGESTYLE:
case XTL::X_D3DRS_PATCHSEGMENTS:
case xbox::X_D3DRS_FOGTABLEMODE:
case xbox::X_D3DRS_FOGDENSITY:
case xbox::X_D3DRS_RANGEFOGENABLE:
case xbox::X_D3DRS_LIGHTING:
case xbox::X_D3DRS_SPECULARENABLE:
case xbox::X_D3DRS_LOCALVIEWER:
case xbox::X_D3DRS_COLORVERTEX:
case xbox::X_D3DRS_SPECULARMATERIALSOURCE:
case xbox::X_D3DRS_DIFFUSEMATERIALSOURCE:
case xbox::X_D3DRS_AMBIENTMATERIALSOURCE:
case xbox::X_D3DRS_EMISSIVEMATERIALSOURCE:
case xbox::X_D3DRS_AMBIENT:
case xbox::X_D3DRS_POINTSIZE:
case xbox::X_D3DRS_POINTSIZE_MIN:
case xbox::X_D3DRS_POINTSPRITEENABLE:
case xbox::X_D3DRS_POINTSCALEENABLE:
case xbox::X_D3DRS_POINTSCALE_A:
case xbox::X_D3DRS_POINTSCALE_B:
case xbox::X_D3DRS_POINTSCALE_C:
case xbox::X_D3DRS_POINTSIZE_MAX:
case xbox::X_D3DRS_PATCHEDGESTYLE:
case xbox::X_D3DRS_PATCHSEGMENTS:
// These render states require no conversion, so we can use them as-is
break;
case XTL::X_D3DRS_BACKSPECULARMATERIALSOURCE:
case XTL::X_D3DRS_BACKDIFFUSEMATERIALSOURCE:
case XTL::X_D3DRS_BACKAMBIENTMATERIALSOURCE:
case XTL::X_D3DRS_BACKEMISSIVEMATERIALSOURCE:
case XTL::X_D3DRS_BACKAMBIENT:
case XTL::X_D3DRS_SWAPFILTER:
case xbox::X_D3DRS_BACKSPECULARMATERIALSOURCE:
case xbox::X_D3DRS_BACKDIFFUSEMATERIALSOURCE:
case xbox::X_D3DRS_BACKAMBIENTMATERIALSOURCE:
case xbox::X_D3DRS_BACKEMISSIVEMATERIALSOURCE:
case xbox::X_D3DRS_BACKAMBIENT:
case xbox::X_D3DRS_SWAPFILTER:
// These states are unsupported by the host and are ignored (for now)
return;
case XTL::X_D3DRS_PRESENTATIONINTERVAL: {
case xbox::X_D3DRS_PRESENTATIONINTERVAL: {
// Store this as an override for our frame limiter
// Games can use this to limit certain scenes to a desired target framerate for a specific scene
// If this value is not set, or is set to 0, the default interval passed to CreateDevice is used
extern DWORD g_Xbox_PresentationInterval_Override;
g_Xbox_PresentationInterval_Override = Value;
} return;
case XTL::X_D3DRS_WRAP0:
case XTL::X_D3DRS_WRAP1:
case XTL::X_D3DRS_WRAP2:
case XTL::X_D3DRS_WRAP3: {
case xbox::X_D3DRS_WRAP0:
case xbox::X_D3DRS_WRAP1:
case xbox::X_D3DRS_WRAP2:
case xbox::X_D3DRS_WRAP3: {
DWORD OldValue = Value;
Value = 0;
@ -410,7 +410,7 @@ void XboxRenderStateConverter::ApplyComplexRenderState(uint32_t State, uint32_t
auto RenderStateInfo = GetDxbxRenderStateInfo(State);
switch (State) {
case XTL::X_D3DRS_VERTEXBLEND:
case xbox::X_D3DRS_VERTEXBLEND:
// convert from Xbox direct3d to PC direct3d enumeration
if (Value <= 1) {
Value = Value;
@ -423,7 +423,7 @@ void XboxRenderStateConverter::ApplyComplexRenderState(uint32_t State, uint32_t
return;
}
break;
case XTL::X_D3DRS_FILLMODE:
case xbox::X_D3DRS_FILLMODE:
Value = EmuXB2PC_D3DFILLMODE(Value);
if (WireFrameMode > 0) {
@ -434,28 +434,28 @@ void XboxRenderStateConverter::ApplyComplexRenderState(uint32_t State, uint32_t
}
}
break;
case XTL::X_D3DRS_CULLMODE:
case xbox::X_D3DRS_CULLMODE:
switch (Value) {
case XTL::X_D3DCULL_NONE: Value = D3DCULL_NONE; break;
case XTL::X_D3DCULL_CW: Value = D3DCULL_CW; break;
case XTL::X_D3DCULL_CCW: Value = D3DCULL_CCW;break;
case xbox::X_D3DCULL_NONE: Value = D3DCULL_NONE; break;
case xbox::X_D3DCULL_CW: Value = D3DCULL_CW; break;
case xbox::X_D3DCULL_CCW: Value = D3DCULL_CCW;break;
default: LOG_TEST_CASE("EmuD3DDevice_SetRenderState_CullMode: Unknown Cullmode");
}
break;
case XTL::X_D3DRS_ZBIAS: {
case xbox::X_D3DRS_ZBIAS: {
FLOAT Biased = static_cast<FLOAT>(Value) * -0.000005f;
Value = *reinterpret_cast<const DWORD*>(&Biased);
} break;
// These states require no conversions, so can just be passed through to the host directly
case XTL::X_D3DRS_FOGCOLOR:
case XTL::X_D3DRS_NORMALIZENORMALS:
case XTL::X_D3DRS_ZENABLE:
case XTL::X_D3DRS_STENCILENABLE:
case XTL::X_D3DRS_STENCILFAIL:
case XTL::X_D3DRS_TEXTUREFACTOR:
case XTL::X_D3DRS_EDGEANTIALIAS:
case XTL::X_D3DRS_MULTISAMPLEANTIALIAS:
case XTL::X_D3DRS_MULTISAMPLEMASK:
case xbox::X_D3DRS_FOGCOLOR:
case xbox::X_D3DRS_NORMALIZENORMALS:
case xbox::X_D3DRS_ZENABLE:
case xbox::X_D3DRS_STENCILENABLE:
case xbox::X_D3DRS_STENCILFAIL:
case xbox::X_D3DRS_TEXTUREFACTOR:
case xbox::X_D3DRS_EDGEANTIALIAS:
case xbox::X_D3DRS_MULTISAMPLEANTIALIAS:
case xbox::X_D3DRS_MULTISAMPLEMASK:
break;
default:
// Only log missing state if it has a PC counterpart

View File

@ -61,6 +61,6 @@ private:
uint32_t* D3D__RenderState = nullptr;
int WireFrameMode = 0;
// NOTE: RenderStates are 32bit values, but using a 64bit value allows the upper bits to be used as a 'force dirty' flag
std::array<uint64_t, XTL::X_D3DRS_LAST + 1> PreviousRenderStateValues;
std::array<int, XTL::X_D3DRS_LAST + 1> XboxRenderStateOffsets;
std::array<uint64_t, xbox::X_D3DRS_LAST + 1> PreviousRenderStateValues;
std::array<int, xbox::X_D3DRS_LAST + 1> XboxRenderStateOffsets;
};

View File

@ -98,7 +98,7 @@ bool XboxTextureStateConverter::Init(XboxRenderStateConverter* pState)
void XboxTextureStateConverter::BuildTextureStateMappingTable()
{
EmuLog(LOG_LEVEL::INFO, "Building Cxbx to XDK Texture State Mapping Table");
for (int State = XTL::X_D3DTSS_FIRST; State <= XTL::X_D3DTSS_LAST; State++) {
for (int State = xbox::X_D3DTSS_FIRST; State <= xbox::X_D3DTSS_LAST; State++) {
int index = State;
// On early XDKs, we need to shuffle the values around a little
@ -123,32 +123,32 @@ DWORD XboxTextureStateConverter::GetHostTextureOpValue(DWORD Value)
{
bool bOldOrder = g_LibVersion_D3D8 <= 3948; // Verified old order in 3944, new order in 4039
switch (Value) {
case XTL::X_D3DTOP_DISABLE: return D3DTOP_DISABLE;
case XTL::X_D3DTOP_SELECTARG1: return D3DTOP_SELECTARG1;
case XTL::X_D3DTOP_SELECTARG2: return D3DTOP_SELECTARG2;
case XTL::X_D3DTOP_MODULATE: return D3DTOP_MODULATE;
case XTL::X_D3DTOP_MODULATE2X: return D3DTOP_MODULATE2X;
case XTL::X_D3DTOP_MODULATE4X: return D3DTOP_MODULATE4X;
case XTL::X_D3DTOP_ADD: return D3DTOP_ADD;
case XTL::X_D3DTOP_ADDSIGNED: return D3DTOP_ADDSIGNED;
case XTL::X_D3DTOP_ADDSIGNED2X: return D3DTOP_ADDSIGNED2X;
case XTL::X_D3DTOP_SUBTRACT: return D3DTOP_SUBTRACT;
case XTL::X_D3DTOP_ADDSMOOTH: return D3DTOP_ADDSMOOTH;
case XTL::X_D3DTOP_BLENDDIFFUSEALPHA: return D3DTOP_BLENDDIFFUSEALPHA;
case 0x0D/*XTL::X_D3DTOP_BLENDCURRENTALPHA */: return bOldOrder ? D3DTOP_BLENDTEXTUREALPHA : D3DTOP_BLENDCURRENTALPHA;
case 0x0E/*XTL::X_D3DTOP_BLENDTEXTUREALPHA */: return bOldOrder ? D3DTOP_BLENDFACTORALPHA : D3DTOP_BLENDTEXTUREALPHA;
case 0x0F/*XTL::X_D3DTOP_BLENDFACTORALPHA */: return bOldOrder ? D3DTOP_BLENDTEXTUREALPHAPM : D3DTOP_BLENDFACTORALPHA;
case 0x10/*XTL::X_D3DTOP_BLENDTEXTUREALPHAPM*/: return bOldOrder ? D3DTOP_BLENDCURRENTALPHA : D3DTOP_BLENDTEXTUREALPHAPM;
case XTL::X_D3DTOP_PREMODULATE: return D3DTOP_PREMODULATE;
case XTL::X_D3DTOP_MODULATEALPHA_ADDCOLOR: return D3DTOP_MODULATEALPHA_ADDCOLOR;
case XTL::X_D3DTOP_MODULATECOLOR_ADDALPHA: return D3DTOP_MODULATECOLOR_ADDALPHA;
case XTL::X_D3DTOP_MODULATEINVALPHA_ADDCOLOR: return D3DTOP_MODULATEINVALPHA_ADDCOLOR;
case XTL::X_D3DTOP_MODULATEINVCOLOR_ADDALPHA: return D3DTOP_MODULATEINVCOLOR_ADDALPHA;
case XTL::X_D3DTOP_DOTPRODUCT3: return D3DTOP_DOTPRODUCT3;
case XTL::X_D3DTOP_MULTIPLYADD: return D3DTOP_MULTIPLYADD;
case XTL::X_D3DTOP_LERP: return D3DTOP_LERP;
case XTL::X_D3DTOP_BUMPENVMAP: return D3DTOP_BUMPENVMAP;
case XTL::X_D3DTOP_BUMPENVMAPLUMINANCE: return D3DTOP_BUMPENVMAPLUMINANCE;
case xbox::X_D3DTOP_DISABLE: return D3DTOP_DISABLE;
case xbox::X_D3DTOP_SELECTARG1: return D3DTOP_SELECTARG1;
case xbox::X_D3DTOP_SELECTARG2: return D3DTOP_SELECTARG2;
case xbox::X_D3DTOP_MODULATE: return D3DTOP_MODULATE;
case xbox::X_D3DTOP_MODULATE2X: return D3DTOP_MODULATE2X;
case xbox::X_D3DTOP_MODULATE4X: return D3DTOP_MODULATE4X;
case xbox::X_D3DTOP_ADD: return D3DTOP_ADD;
case xbox::X_D3DTOP_ADDSIGNED: return D3DTOP_ADDSIGNED;
case xbox::X_D3DTOP_ADDSIGNED2X: return D3DTOP_ADDSIGNED2X;
case xbox::X_D3DTOP_SUBTRACT: return D3DTOP_SUBTRACT;
case xbox::X_D3DTOP_ADDSMOOTH: return D3DTOP_ADDSMOOTH;
case xbox::X_D3DTOP_BLENDDIFFUSEALPHA: return D3DTOP_BLENDDIFFUSEALPHA;
case 0x0D/*xbox::X_D3DTOP_BLENDCURRENTALPHA */: return bOldOrder ? D3DTOP_BLENDTEXTUREALPHA : D3DTOP_BLENDCURRENTALPHA;
case 0x0E/*xbox::X_D3DTOP_BLENDTEXTUREALPHA */: return bOldOrder ? D3DTOP_BLENDFACTORALPHA : D3DTOP_BLENDTEXTUREALPHA;
case 0x0F/*xbox::X_D3DTOP_BLENDFACTORALPHA */: return bOldOrder ? D3DTOP_BLENDTEXTUREALPHAPM : D3DTOP_BLENDFACTORALPHA;
case 0x10/*xbox::X_D3DTOP_BLENDTEXTUREALPHAPM*/: return bOldOrder ? D3DTOP_BLENDCURRENTALPHA : D3DTOP_BLENDTEXTUREALPHAPM;
case xbox::X_D3DTOP_PREMODULATE: return D3DTOP_PREMODULATE;
case xbox::X_D3DTOP_MODULATEALPHA_ADDCOLOR: return D3DTOP_MODULATEALPHA_ADDCOLOR;
case xbox::X_D3DTOP_MODULATECOLOR_ADDALPHA: return D3DTOP_MODULATECOLOR_ADDALPHA;
case xbox::X_D3DTOP_MODULATEINVALPHA_ADDCOLOR: return D3DTOP_MODULATEINVALPHA_ADDCOLOR;
case xbox::X_D3DTOP_MODULATEINVCOLOR_ADDALPHA: return D3DTOP_MODULATEINVCOLOR_ADDALPHA;
case xbox::X_D3DTOP_DOTPRODUCT3: return D3DTOP_DOTPRODUCT3;
case xbox::X_D3DTOP_MULTIPLYADD: return D3DTOP_MULTIPLYADD;
case xbox::X_D3DTOP_LERP: return D3DTOP_LERP;
case xbox::X_D3DTOP_BUMPENVMAP: return D3DTOP_BUMPENVMAP;
case xbox::X_D3DTOP_BUMPENVMAPLUMINANCE: return D3DTOP_BUMPENVMAPLUMINANCE;
}
EmuLog(LOG_LEVEL::WARNING, "Unsupported D3DTOP Value (%d)", Value);
@ -164,18 +164,18 @@ void XboxTextureStateConverter::Apply()
// The Xbox NV2A uses only Stage 3 for point-sprites, so we emulate this
// by mapping Stage 3 to Stage 0, and disabling all stages > 0
bool pointSpriteOverride = false;
bool pointSpritesEnabled = pXboxRenderStates->GetXboxRenderState(XTL::X_D3DRS_POINTSPRITEENABLE);
bool pointSpritesEnabled = pXboxRenderStates->GetXboxRenderState(xbox::X_D3DRS_POINTSPRITEENABLE);
if (pointSpritesEnabled) {
pointSpriteOverride = true;
}
for (int XboxStage = 0; XboxStage < XTL::X_D3DTS_STAGECOUNT; XboxStage++) {
for (int XboxStage = 0; XboxStage < xbox::X_D3DTS_STAGECOUNT; XboxStage++) {
// If point sprites are enabled, we need to overwrite our existing state 0 with State 3 also
DWORD HostStage = (pointSpriteOverride && XboxStage == 3) ? 0 : XboxStage;
for (int StateIndex = XTL::X_D3DTSS_FIRST; StateIndex <= XTL::X_D3DTSS_LAST; StateIndex++) {
for (int StateIndex = xbox::X_D3DTSS_FIRST; StateIndex <= xbox::X_D3DTSS_LAST; StateIndex++) {
// Read the value of the current stage/state from the Xbox data structure
DWORD Value = D3D__TextureState[(XboxStage * XTL::X_D3DTS_STAGESIZE) + StateIndex];
DWORD Value = D3D__TextureState[(XboxStage * xbox::X_D3DTS_STAGESIZE) + StateIndex];
// Convert the index of the current state to an index that we can use
// This handles the case when XDKs have different state values
@ -183,8 +183,8 @@ void XboxTextureStateConverter::Apply()
switch (State) {
// These types map 1:1 but have some unsupported values
case XTL::X_D3DTSS_ADDRESSU: case XTL::X_D3DTSS_ADDRESSV: case XTL::X_D3DTSS_ADDRESSW:
if (Value == XTL::X_D3DTADDRESS_CLAMPTOEDGE) {
case xbox::X_D3DTSS_ADDRESSU: case xbox::X_D3DTSS_ADDRESSV: case xbox::X_D3DTSS_ADDRESSW:
if (Value == xbox::X_D3DTADDRESS_CLAMPTOEDGE) {
EmuLog(LOG_LEVEL::WARNING, "D3DTADDRESS_CLAMPTOEDGE is unsupported");
// D3DTADDRESS_BORDER is the closest host match, CLAMPTOEDGE is identical
// Except it has additional restrictions.
@ -192,15 +192,15 @@ void XboxTextureStateConverter::Apply()
break;
}
break;
case XTL::X_D3DTSS_MAGFILTER: case XTL::X_D3DTSS_MINFILTER: case XTL::X_D3DTSS_MIPFILTER:
if (Value == XTL::X_D3DTEXF_QUINCUNX) {
case xbox::X_D3DTSS_MAGFILTER: case xbox::X_D3DTSS_MINFILTER: case xbox::X_D3DTSS_MIPFILTER:
if (Value == xbox::X_D3DTEXF_QUINCUNX) {
EmuLog(LOG_LEVEL::WARNING, "D3DTEXF_QUINCUNX is unsupported");
// Fallback to D3DTEXF_ANISOTROPIC
Value = D3DTEXF_ANISOTROPIC;
break;
}
break;
case XTL::X_D3DTSS_TEXCOORDINDEX:
case xbox::X_D3DTSS_TEXCOORDINDEX:
switch (Value) {
case 0x00040000:
// This value is TCI_OBJECT on Xbox,which is not supported by the host
@ -215,18 +215,18 @@ void XboxTextureStateConverter::Apply()
}
break;
// These types require value remapping for all supported values
case XTL::X_D3DTSS_COLOROP: case XTL::X_D3DTSS_ALPHAOP:
case xbox::X_D3DTSS_COLOROP: case xbox::X_D3DTSS_ALPHAOP:
Value = GetHostTextureOpValue(Value);
break;
// These types require no conversion, so we just pass through as-is
case XTL::X_D3DTSS_COLORARG0: case XTL::X_D3DTSS_COLORARG1: case XTL::X_D3DTSS_COLORARG2:
case XTL::X_D3DTSS_ALPHAARG0: case XTL::X_D3DTSS_ALPHAARG1: case XTL::X_D3DTSS_ALPHAARG2:
case XTL::X_D3DTSS_RESULTARG: case XTL::X_D3DTSS_TEXTURETRANSFORMFLAGS:
case XTL::X_D3DTSS_BUMPENVMAT00: case XTL::X_D3DTSS_BUMPENVMAT01:
case XTL::X_D3DTSS_BUMPENVMAT11: case XTL::X_D3DTSS_BUMPENVMAT10:
case XTL::X_D3DTSS_BUMPENVLSCALE: case XTL::X_D3DTSS_BUMPENVLOFFSET:
case XTL::X_D3DTSS_BORDERCOLOR: case XTL::X_D3DTSS_MIPMAPLODBIAS:
case XTL::X_D3DTSS_MAXMIPLEVEL: case XTL::X_D3DTSS_MAXANISOTROPY:
case xbox::X_D3DTSS_COLORARG0: case xbox::X_D3DTSS_COLORARG1: case xbox::X_D3DTSS_COLORARG2:
case xbox::X_D3DTSS_ALPHAARG0: case xbox::X_D3DTSS_ALPHAARG1: case xbox::X_D3DTSS_ALPHAARG2:
case xbox::X_D3DTSS_RESULTARG: case xbox::X_D3DTSS_TEXTURETRANSFORMFLAGS:
case xbox::X_D3DTSS_BUMPENVMAT00: case xbox::X_D3DTSS_BUMPENVMAT01:
case xbox::X_D3DTSS_BUMPENVMAT11: case xbox::X_D3DTSS_BUMPENVMAT10:
case xbox::X_D3DTSS_BUMPENVLSCALE: case xbox::X_D3DTSS_BUMPENVLOFFSET:
case xbox::X_D3DTSS_BORDERCOLOR: case xbox::X_D3DTSS_MIPMAPLODBIAS:
case xbox::X_D3DTSS_MAXMIPLEVEL: case xbox::X_D3DTSS_MAXANISOTROPY:
break;
default:
// Only log missing state if it has a PC counterpart

View File

@ -29,7 +29,7 @@
#include <array>
#include "core\hle\D3D8\XbD3D8Types.h"
#define CXBX_D3DRS_UNSUPPORTED (XTL::X_D3DRS_LAST + 1)
#define CXBX_D3DRS_UNSUPPORTED (xbox::X_D3DRS_LAST + 1)
class XboxRenderStateConverter;
@ -44,6 +44,6 @@ private:
DWORD GetHostTextureOpValue(DWORD XboxTextureOp);
uint32_t* D3D__TextureState = nullptr;
std::array<int, XTL::X_D3DTSS_LAST + 1> XboxTextureStateOffsets;
std::array<int, xbox::X_D3DTSS_LAST + 1> XboxTextureStateOffsets;
XboxRenderStateConverter* pXboxRenderStates;
};

View File

@ -228,7 +228,7 @@ extern HRESULT EmuCompileShader
)
{
// TODO include header in vertex shader
//XTL::X_VSH_SHADER_HEADER* pXboxVertexShaderHeader = (XTL::X_VSH_SHADER_HEADER*)pXboxFunction;
//xbox::X_VSH_SHADER_HEADER* pXboxVertexShaderHeader = (xbox::X_VSH_SHADER_HEADER*)pXboxFunction;
ID3DBlob* pErrors = nullptr;
HRESULT hRet = 0;

View File

@ -948,9 +948,9 @@ static const FormatInfo FormatInfos[] = {
#endif
};
const FormatToARGBRow EmuXBFormatComponentConverter(XTL::X_D3DFORMAT Format)
const FormatToARGBRow EmuXBFormatComponentConverter(xbox::X_D3DFORMAT Format)
{
if (Format <= XTL::X_D3DFMT_LIN_R8G8B8A8)
if (Format <= xbox::X_D3DFMT_LIN_R8G8B8A8)
if (FormatInfos[Format].components != NoCmpnts)
return ComponentConverters[FormatInfos[Format].components];
@ -958,7 +958,7 @@ const FormatToARGBRow EmuXBFormatComponentConverter(XTL::X_D3DFORMAT Format)
}
// Is there a converter available from the supplied format to ARGB?
bool EmuXBFormatCanBeConvertedToARGB(XTL::X_D3DFORMAT Format)
bool EmuXBFormatCanBeConvertedToARGB(xbox::X_D3DFORMAT Format)
{
const FormatToARGBRow info = EmuXBFormatComponentConverter(Format);
return (info != nullptr);
@ -966,7 +966,7 @@ bool EmuXBFormatCanBeConvertedToARGB(XTL::X_D3DFORMAT Format)
// Returns if convertion to ARGB is required. This is the case when
// the format has a warning message and there's a converter present.
bool EmuXBFormatRequiresConversionToARGB(XTL::X_D3DFORMAT Format)
bool EmuXBFormatRequiresConversionToARGB(xbox::X_D3DFORMAT Format)
{
if (FormatInfos[Format].warning != nullptr)
if (EmuXBFormatCanBeConvertedToARGB(Format))
@ -975,63 +975,63 @@ bool EmuXBFormatRequiresConversionToARGB(XTL::X_D3DFORMAT Format)
return false;
}
DWORD EmuXBFormatBitsPerPixel(XTL::X_D3DFORMAT Format)
DWORD EmuXBFormatBitsPerPixel(xbox::X_D3DFORMAT Format)
{
if (Format <= XTL::X_D3DFMT_LIN_R8G8B8A8)
if (Format <= xbox::X_D3DFMT_LIN_R8G8B8A8)
if (FormatInfos[Format].bits_per_pixel > 0) // TODO : Remove this
return FormatInfos[Format].bits_per_pixel;
return 16; // TODO : 8
}
DWORD EmuXBFormatBytesPerPixel(XTL::X_D3DFORMAT Format)
DWORD EmuXBFormatBytesPerPixel(xbox::X_D3DFORMAT Format)
{
return ((EmuXBFormatBitsPerPixel(Format) + 4) / 8);
}
BOOL EmuXBFormatIsCompressed(XTL::X_D3DFORMAT Format)
BOOL EmuXBFormatIsCompressed(xbox::X_D3DFORMAT Format)
{
if (Format <= XTL::X_D3DFMT_LIN_R8G8B8A8)
if (Format <= xbox::X_D3DFMT_LIN_R8G8B8A8)
return (FormatInfos[Format].stored == Cmprsd);
return false;
}
BOOL EmuXBFormatIsLinear(XTL::X_D3DFORMAT Format)
BOOL EmuXBFormatIsLinear(xbox::X_D3DFORMAT Format)
{
if (Format <= XTL::X_D3DFMT_LIN_R8G8B8A8)
if (Format <= xbox::X_D3DFMT_LIN_R8G8B8A8)
return (FormatInfos[Format].stored == Linear);
return (Format == XTL::X_D3DFMT_VERTEXDATA); // TODO : false;
return (Format == xbox::X_D3DFMT_VERTEXDATA); // TODO : false;
}
BOOL EmuXBFormatIsSwizzled(XTL::X_D3DFORMAT Format)
BOOL EmuXBFormatIsSwizzled(xbox::X_D3DFORMAT Format)
{
if (Format <= XTL::X_D3DFMT_LIN_R8G8B8A8)
if (Format <= xbox::X_D3DFMT_LIN_R8G8B8A8)
return (FormatInfos[Format].stored == Swzzld);
return false;
}
BOOL EmuXBFormatIsRenderTarget(XTL::X_D3DFORMAT Format)
BOOL EmuXBFormatIsRenderTarget(xbox::X_D3DFORMAT Format)
{
if (Format <= XTL::X_D3DFMT_LIN_R8G8B8A8)
if (Format <= xbox::X_D3DFMT_LIN_R8G8B8A8)
return (FormatInfos[Format].usage == RenderTarget);
return false;
}
BOOL EmuXBFormatIsDepthBuffer(XTL::X_D3DFORMAT Format)
BOOL EmuXBFormatIsDepthBuffer(xbox::X_D3DFORMAT Format)
{
if (Format <= XTL::X_D3DFMT_LIN_R8G8B8A8)
if (Format <= xbox::X_D3DFMT_LIN_R8G8B8A8)
return (FormatInfos[Format].usage == DepthBuffer);
return false;
}
D3DFORMAT EmuXB2PC_D3DFormat(XTL::X_D3DFORMAT Format)
D3DFORMAT EmuXB2PC_D3DFormat(xbox::X_D3DFORMAT Format)
{
if (Format <= XTL::X_D3DFMT_LIN_R8G8B8A8 && Format != -1 /*XTL::X_D3DFMT_UNKNOWN*/) // The last bit prevents crashing (Metal Slug 3)
if (Format <= xbox::X_D3DFMT_LIN_R8G8B8A8 && Format != -1 /*xbox::X_D3DFMT_UNKNOWN*/) // The last bit prevents crashing (Metal Slug 3)
{
const FormatInfo *info = &FormatInfos[Format];
if (info->warning != nullptr) {
@ -1042,9 +1042,9 @@ D3DFORMAT EmuXB2PC_D3DFormat(XTL::X_D3DFORMAT Format)
}
switch (Format) {
case XTL::X_D3DFMT_VERTEXDATA:
case xbox::X_D3DFMT_VERTEXDATA:
return D3DFMT_VERTEXDATA;
case ((XTL::X_D3DFORMAT)0xffffffff):
case ((xbox::X_D3DFORMAT)0xffffffff):
return D3DFMT_UNKNOWN; // TODO -oCXBX: Not sure if this counts as swizzled or not...
default:
CxbxKrnlCleanup("EmuXB2PC_D3DFormat: Unknown Format (0x%.08X)", Format);
@ -1053,80 +1053,80 @@ D3DFORMAT EmuXB2PC_D3DFormat(XTL::X_D3DFORMAT Format)
return D3DFMT_UNKNOWN;
}
XTL::X_D3DFORMAT EmuPC2XB_D3DFormat(D3DFORMAT Format, bool bPreferLinear)
xbox::X_D3DFORMAT EmuPC2XB_D3DFormat(D3DFORMAT Format, bool bPreferLinear)
{
XTL::X_D3DFORMAT result;
xbox::X_D3DFORMAT result;
switch(Format)
{
case D3DFMT_YUY2:
result = XTL::X_D3DFMT_YUY2;
result = xbox::X_D3DFMT_YUY2;
break;
case D3DFMT_UYVY:
result = XTL::X_D3DFMT_UYVY;
result = xbox::X_D3DFMT_UYVY;
break;
case D3DFMT_R5G6B5:
result = bPreferLinear ? XTL::X_D3DFMT_LIN_R5G6B5 : XTL::X_D3DFMT_R5G6B5;
result = bPreferLinear ? xbox::X_D3DFMT_LIN_R5G6B5 : xbox::X_D3DFMT_R5G6B5;
break;
case D3DFMT_D24S8:
result = bPreferLinear ? XTL::X_D3DFMT_LIN_D24S8 : XTL::X_D3DFMT_D24S8;
result = bPreferLinear ? xbox::X_D3DFMT_LIN_D24S8 : xbox::X_D3DFMT_D24S8;
break;
case D3DFMT_DXT5:
result = XTL::X_D3DFMT_DXT5; // Compressed
result = xbox::X_D3DFMT_DXT5; // Compressed
break;
case D3DFMT_DXT4:
result = XTL::X_D3DFMT_DXT4; // Compressed // Same as XTL::X_D3DFMT_DXT5
result = xbox::X_D3DFMT_DXT4; // Compressed // Same as xbox::X_D3DFMT_DXT5
break;
case D3DFMT_DXT3:
result = XTL::X_D3DFMT_DXT3; // Compressed
result = xbox::X_D3DFMT_DXT3; // Compressed
break;
case D3DFMT_DXT2:
result = XTL::X_D3DFMT_DXT2; // Compressed // Same as XTL::X_D3DFMT_DXT3
result = xbox::X_D3DFMT_DXT2; // Compressed // Same as xbox::X_D3DFMT_DXT3
break;
case D3DFMT_DXT1:
result = XTL::X_D3DFMT_DXT1; // Compressed
result = xbox::X_D3DFMT_DXT1; // Compressed
break;
case D3DFMT_A1R5G5B5:
result = bPreferLinear ? XTL::X_D3DFMT_LIN_A1R5G5B5 : XTL::X_D3DFMT_A1R5G5B5;
result = bPreferLinear ? xbox::X_D3DFMT_LIN_A1R5G5B5 : xbox::X_D3DFMT_A1R5G5B5;
break;
case D3DFMT_X8R8G8B8:
result = bPreferLinear ? XTL::X_D3DFMT_LIN_X8R8G8B8 : XTL::X_D3DFMT_X8R8G8B8;
result = bPreferLinear ? xbox::X_D3DFMT_LIN_X8R8G8B8 : xbox::X_D3DFMT_X8R8G8B8;
break;
case D3DFMT_A8R8G8B8:
result = bPreferLinear ? XTL::X_D3DFMT_LIN_A8R8G8B8 : XTL::X_D3DFMT_A8R8G8B8;
result = bPreferLinear ? xbox::X_D3DFMT_LIN_A8R8G8B8 : xbox::X_D3DFMT_A8R8G8B8;
break;
case D3DFMT_A4R4G4B4:
result = bPreferLinear ? XTL::X_D3DFMT_LIN_A4R4G4B4 : XTL::X_D3DFMT_A4R4G4B4;
result = bPreferLinear ? xbox::X_D3DFMT_LIN_A4R4G4B4 : xbox::X_D3DFMT_A4R4G4B4;
break;
case D3DFMT_X1R5G5B5:
result = bPreferLinear ? XTL::X_D3DFMT_LIN_X1R5G5B5 : XTL::X_D3DFMT_X1R5G5B5;
result = bPreferLinear ? xbox::X_D3DFMT_LIN_X1R5G5B5 : xbox::X_D3DFMT_X1R5G5B5;
break;
case D3DFMT_A8:
result = bPreferLinear ? XTL::X_D3DFMT_LIN_A8 : XTL::X_D3DFMT_A8;
result = bPreferLinear ? xbox::X_D3DFMT_LIN_A8 : xbox::X_D3DFMT_A8;
break;
case D3DFMT_L8:
result = bPreferLinear ? XTL::X_D3DFMT_LIN_L8 : XTL::X_D3DFMT_L8;
result = bPreferLinear ? xbox::X_D3DFMT_LIN_L8 : xbox::X_D3DFMT_L8;
break;
case D3DFMT_D16:
result = bPreferLinear ? XTL::X_D3DFMT_LIN_D16 : XTL::X_D3DFMT_D16;
result = bPreferLinear ? xbox::X_D3DFMT_LIN_D16 : xbox::X_D3DFMT_D16;
break;
case D3DFMT_D16_LOCKABLE:
result = XTL::X_D3DFMT_D16_LOCKABLE;
result = xbox::X_D3DFMT_D16_LOCKABLE;
break;
case D3DFMT_UNKNOWN:
result = ((XTL::X_D3DFORMAT)0xffffffff); // TODO : return XTL::X_D3DFMT_UNKNOWN ?
result = ((xbox::X_D3DFORMAT)0xffffffff); // TODO : return xbox::X_D3DFMT_UNKNOWN ?
break;
// Dxbx additions :
case D3DFMT_L6V5U5:
result = bPreferLinear ? XTL::X_D3DFMT_LIN_L6V5U5 : XTL::X_D3DFMT_L6V5U5;
result = bPreferLinear ? xbox::X_D3DFMT_LIN_L6V5U5 : xbox::X_D3DFMT_L6V5U5;
break;
case D3DFMT_V8U8:
result = bPreferLinear ? XTL::X_D3DFMT_LIN_V8U8 : XTL::X_D3DFMT_V8U8;
result = bPreferLinear ? xbox::X_D3DFMT_LIN_V8U8 : xbox::X_D3DFMT_V8U8;
break;
case D3DFMT_V16U16:
result = bPreferLinear ? XTL::X_D3DFMT_LIN_V16U16 : XTL::X_D3DFMT_V16U16;
result = bPreferLinear ? xbox::X_D3DFMT_LIN_V16U16 : xbox::X_D3DFMT_V16U16;
break;
case D3DFMT_VERTEXDATA:
result = XTL::X_D3DFMT_VERTEXDATA;
result = xbox::X_D3DFMT_VERTEXDATA;
break;
default:
CxbxKrnlCleanup("EmuPC2XB_D3DFormat: Unknown Format (%d)", Format);
@ -1161,23 +1161,23 @@ D3DMULTISAMPLE_TYPE EmuXB2PC_D3DMultiSampleFormat(DWORD Type)
D3DMULTISAMPLE_TYPE result;
switch (Type & 0xFFFF)
{
case XTL::X_D3DMULTISAMPLE_NONE:
case xbox::X_D3DMULTISAMPLE_NONE:
result = D3DMULTISAMPLE_NONE;
break;
case XTL::X_D3DMULTISAMPLE_2_SAMPLES_MULTISAMPLE_LINEAR:
case XTL::X_D3DMULTISAMPLE_2_SAMPLES_MULTISAMPLE_QUINCUNX:
case XTL::X_D3DMULTISAMPLE_2_SAMPLES_SUPERSAMPLE_HORIZONTAL_LINEAR:
case XTL::X_D3DMULTISAMPLE_2_SAMPLES_SUPERSAMPLE_VERTICAL_LINEAR:
case xbox::X_D3DMULTISAMPLE_2_SAMPLES_MULTISAMPLE_LINEAR:
case xbox::X_D3DMULTISAMPLE_2_SAMPLES_MULTISAMPLE_QUINCUNX:
case xbox::X_D3DMULTISAMPLE_2_SAMPLES_SUPERSAMPLE_HORIZONTAL_LINEAR:
case xbox::X_D3DMULTISAMPLE_2_SAMPLES_SUPERSAMPLE_VERTICAL_LINEAR:
result = D3DMULTISAMPLE_2_SAMPLES;
break;
case XTL::X_D3DMULTISAMPLE_4_SAMPLES_MULTISAMPLE_LINEAR:
case XTL::X_D3DMULTISAMPLE_4_SAMPLES_MULTISAMPLE_GAUSSIAN:
case XTL::X_D3DMULTISAMPLE_4_SAMPLES_SUPERSAMPLE_LINEAR:
case XTL::X_D3DMULTISAMPLE_4_SAMPLES_SUPERSAMPLE_GAUSSIAN:
case xbox::X_D3DMULTISAMPLE_4_SAMPLES_MULTISAMPLE_LINEAR:
case xbox::X_D3DMULTISAMPLE_4_SAMPLES_MULTISAMPLE_GAUSSIAN:
case xbox::X_D3DMULTISAMPLE_4_SAMPLES_SUPERSAMPLE_LINEAR:
case xbox::X_D3DMULTISAMPLE_4_SAMPLES_SUPERSAMPLE_GAUSSIAN:
result = D3DMULTISAMPLE_4_SAMPLES;
break;
case XTL::X_D3DMULTISAMPLE_9_SAMPLES_MULTISAMPLE_GAUSSIAN:
case XTL::X_D3DMULTISAMPLE_9_SAMPLES_SUPERSAMPLE_GAUSSIAN:
case xbox::X_D3DMULTISAMPLE_9_SAMPLES_MULTISAMPLE_GAUSSIAN:
case xbox::X_D3DMULTISAMPLE_9_SAMPLES_SUPERSAMPLE_GAUSSIAN:
result = D3DMULTISAMPLE_9_SAMPLES;
break;
default:
@ -1625,14 +1625,14 @@ bool WndMain::ReadS3TCFormatIntoBitmap(uint32 format, unsigned char *data, uint3
j = k = p = x = y = 0;
// sanity checks
if (format != XTL::X_D3DFMT_DXT1 && format != XTL::X_D3DFMT_DXT3 && format != XTL::X_D3DFMT_DXT5)
if (format != xbox::X_D3DFMT_DXT1 && format != xbox::X_D3DFMT_DXT3 && format != xbox::X_D3DFMT_DXT5)
return false;
if (!(width > 0) || !(height > 0))
return false;
while (j < dataSize) {
if (format != XTL::X_D3DFMT_DXT1) // Skip XTL::X_D3DFMT_DXT3 and XTL::X_D3DFMT_DXT5 alpha data (ported from Dxbx)
if (format != xbox::X_D3DFMT_DXT1) // Skip xbox::X_D3DFMT_DXT3 and xbox::X_D3DFMT_DXT5 alpha data (ported from Dxbx)
j += 8;
// Read two 16-bit pixels
@ -1715,7 +1715,7 @@ bool WndMain::ReadSwizzledFormatIntoBitmap(uint32 format, unsigned char *data, u
TRGB32* yscanline;
// sanity checks
if (format != XTL::X_D3DFMT_A8R8G8B8 && format != XTL::X_D3DFMT_X8R8G8B8)
if (format != xbox::X_D3DFMT_A8R8G8B8 && format != xbox::X_D3DFMT_X8R8G8B8)
return false;
if (!(width > 0) || !(height > 0))
return false;
@ -1753,7 +1753,7 @@ bool WndMain::ReadSwizzled16bitFormatIntoBitmap(uint32 format, unsigned char *da
TRGB16* yscanline;
// sanity checks
if (format != XTL::X_D3DFMT_R5G6B5)
if (format != xbox::X_D3DFMT_R5G6B5)
return false;
if (!(width > 0) || !(height > 0))
return false;

View File

@ -42,38 +42,38 @@
typedef void(*FormatToARGBRow)(const uint8_t* src, uint8_t* dst_argb, int width);
extern const FormatToARGBRow EmuXBFormatComponentConverter(XTL::X_D3DFORMAT Format);
extern const FormatToARGBRow EmuXBFormatComponentConverter(xbox::X_D3DFORMAT Format);
bool EmuXBFormatCanBeConvertedToARGB(XTL::X_D3DFORMAT Format);
bool EmuXBFormatCanBeConvertedToARGB(xbox::X_D3DFORMAT Format);
bool EmuXBFormatRequiresConversionToARGB(XTL::X_D3DFORMAT Format);
bool EmuXBFormatRequiresConversionToARGB(xbox::X_D3DFORMAT Format);
// how many bits does this format use per pixel?
extern DWORD EmuXBFormatBitsPerPixel(XTL::X_D3DFORMAT Format);
extern DWORD EmuXBFormatBitsPerPixel(xbox::X_D3DFORMAT Format);
// how many bytes does this format use per pixel?
extern DWORD EmuXBFormatBytesPerPixel(XTL::X_D3DFORMAT Format);
extern DWORD EmuXBFormatBytesPerPixel(xbox::X_D3DFORMAT Format);
// is this format compressed?
extern BOOL EmuXBFormatIsCompressed(XTL::X_D3DFORMAT Format);
extern BOOL EmuXBFormatIsCompressed(xbox::X_D3DFORMAT Format);
// is this format linear?
extern BOOL EmuXBFormatIsLinear(XTL::X_D3DFORMAT Format);
extern BOOL EmuXBFormatIsLinear(xbox::X_D3DFORMAT Format);
// is this format swizzled?
extern BOOL EmuXBFormatIsSwizzled(XTL::X_D3DFORMAT Format);
extern BOOL EmuXBFormatIsSwizzled(xbox::X_D3DFORMAT Format);
// is this format a valid render target?
extern BOOL EmuXBFormatIsRenderTarget(XTL::X_D3DFORMAT Format);
extern BOOL EmuXBFormatIsRenderTarget(xbox::X_D3DFORMAT Format);
// is this format a valid depth buffer?
extern BOOL EmuXBFormatIsDepthBuffer(XTL::X_D3DFORMAT Format);
extern BOOL EmuXBFormatIsDepthBuffer(xbox::X_D3DFORMAT Format);
// convert from xbox to pc color formats
extern D3DFORMAT EmuXB2PC_D3DFormat(XTL::X_D3DFORMAT Format);
extern D3DFORMAT EmuXB2PC_D3DFormat(xbox::X_D3DFORMAT Format);
// convert from pc to xbox color formats
extern XTL::X_D3DFORMAT EmuPC2XB_D3DFormat(D3DFORMAT Format, bool bPreferLinear = true);
extern xbox::X_D3DFORMAT EmuPC2XB_D3DFormat(D3DFORMAT Format, bool bPreferLinear = true);
// convert from xbox to pc d3d lock flags
extern DWORD EmuXB2PC_D3DLock(DWORD Flags);
@ -120,7 +120,7 @@ inline D3DTRANSFORMSTATETYPE EmuXB2PC_D3DTS(D3DTRANSFORMSTATETYPE State)
}
// convert from xbox to pc blend ops
inline D3DBLENDOP EmuXB2PC_D3DBLENDOP(XTL::X_D3DBLENDOP Value)
inline D3DBLENDOP EmuXB2PC_D3DBLENDOP(xbox::X_D3DBLENDOP Value)
{
switch(Value)
{
@ -145,7 +145,7 @@ inline D3DBLENDOP EmuXB2PC_D3DBLENDOP(XTL::X_D3DBLENDOP Value)
}
// convert from xbox to pc blend types
inline D3DBLEND EmuXB2PC_D3DBLEND(XTL::X_D3DBLEND Value)
inline D3DBLEND EmuXB2PC_D3DBLEND(xbox::X_D3DBLEND Value)
{
switch (Value) {
case 0x000: return D3DBLEND_ZERO;
@ -170,7 +170,7 @@ inline D3DBLEND EmuXB2PC_D3DBLEND(XTL::X_D3DBLEND Value)
}
// convert from xbox to pc comparison functions
inline D3DCMPFUNC EmuXB2PC_D3DCMPFUNC(XTL::X_D3DCMPFUNC Value)
inline D3DCMPFUNC EmuXB2PC_D3DCMPFUNC(xbox::X_D3DCMPFUNC Value)
{
switch (Value) {
case 0x200: return D3DCMP_NEVER;
@ -188,7 +188,7 @@ inline D3DCMPFUNC EmuXB2PC_D3DCMPFUNC(XTL::X_D3DCMPFUNC Value)
}
// convert from xbox to pc fill modes
inline D3DFILLMODE EmuXB2PC_D3DFILLMODE(XTL::X_D3DFILLMODE Value)
inline D3DFILLMODE EmuXB2PC_D3DFILLMODE(xbox::X_D3DFILLMODE Value)
{
switch (Value) {
case 0x1B00: return D3DFILL_POINT;
@ -201,7 +201,7 @@ inline D3DFILLMODE EmuXB2PC_D3DFILLMODE(XTL::X_D3DFILLMODE Value)
}
// convert from xbox to pc shade modes
inline D3DSHADEMODE EmuXB2PC_D3DSHADEMODE(XTL::X_D3DSHADEMODE Value)
inline D3DSHADEMODE EmuXB2PC_D3DSHADEMODE(xbox::X_D3DSHADEMODE Value)
{
switch (Value) {
case 0x1D00: return D3DSHADE_FLAT;
@ -213,7 +213,7 @@ inline D3DSHADEMODE EmuXB2PC_D3DSHADEMODE(XTL::X_D3DSHADEMODE Value)
}
// convert from xbox to pc stencilop modes
inline D3DSTENCILOP EmuXB2PC_D3DSTENCILOP(XTL::X_D3DSTENCILOP Value)
inline D3DSTENCILOP EmuXB2PC_D3DSTENCILOP(xbox::X_D3DSTENCILOP Value)
{
switch(Value)
{
@ -233,11 +233,11 @@ inline D3DSTENCILOP EmuXB2PC_D3DSTENCILOP(XTL::X_D3DSTENCILOP Value)
}
// table used for vertex->primitive count conversion
extern const UINT g_XboxPrimitiveTypeInfo[XTL::X_D3DPT_POLYGON + 1][2];
extern const UINT g_XboxPrimitiveTypeInfo[xbox::X_D3DPT_POLYGON + 1][2];
inline bool IsValidXboxVertexCount(XTL::X_D3DPRIMITIVETYPE XboxPrimitiveType, UINT VertexCount)
inline bool IsValidXboxVertexCount(xbox::X_D3DPRIMITIVETYPE XboxPrimitiveType, UINT VertexCount)
{
assert(XboxPrimitiveType < XTL::X_D3DPT_MAX);
assert(XboxPrimitiveType < xbox::X_D3DPT_MAX);
// Are there more vertices than required for setup?
if (VertexCount > g_XboxPrimitiveTypeInfo[XboxPrimitiveType][0])
@ -249,9 +249,9 @@ inline bool IsValidXboxVertexCount(XTL::X_D3DPRIMITIVETYPE XboxPrimitiveType, UI
}
// convert from vertex count to primitive count (Xbox)
inline unsigned ConvertXboxVertexCountToPrimitiveCount(XTL::X_D3DPRIMITIVETYPE XboxPrimitiveType, unsigned VertexCount)
inline unsigned ConvertXboxVertexCountToPrimitiveCount(xbox::X_D3DPRIMITIVETYPE XboxPrimitiveType, unsigned VertexCount)
{
assert(XboxPrimitiveType < XTL::X_D3DPT_MAX);
assert(XboxPrimitiveType < xbox::X_D3DPT_MAX);
return (VertexCount - g_XboxPrimitiveTypeInfo[XboxPrimitiveType][0]) / g_XboxPrimitiveTypeInfo[XboxPrimitiveType][1];
}
@ -260,9 +260,9 @@ inline unsigned ConvertXboxVertexCountToPrimitiveCount(XTL::X_D3DPRIMITIVETYPE X
extern const D3DPRIMITIVETYPE g_XboxPrimitiveTypeToHost[];
// convert xbox->pc primitive type
inline D3DPRIMITIVETYPE EmuXB2PC_D3DPrimitiveType(XTL::X_D3DPRIMITIVETYPE XboxPrimitiveType)
inline D3DPRIMITIVETYPE EmuXB2PC_D3DPrimitiveType(xbox::X_D3DPRIMITIVETYPE XboxPrimitiveType)
{
if (XboxPrimitiveType >= XTL::X_D3DPT_MAX) {
if (XboxPrimitiveType >= xbox::X_D3DPT_MAX) {
LOG_TEST_CASE("XboxPrimitiveType too large");
return D3DPT_FORCE_DWORD;
}
@ -1808,7 +1808,7 @@ typedef struct _RenderStateInfo {
char *S; // String representation.
WORD V; // The XDK version since which a render state was introduced (using the 5911 declarations as a base).
TXBType T = xt_Unknown; // The Xbox data type. Defaults to xt_Unknown.
XTL::NV2AMETHOD M; // The related push buffer method. Not always a 1-to-1 mapping. Needs push-buffer interpretation & conversion code.
xbox::NV2AMETHOD M; // The related push buffer method. Not always a 1-to-1 mapping. Needs push-buffer interpretation & conversion code.
D3DRENDERSTATETYPE PC = (D3DRENDERSTATETYPE)0; // Map XBox to PC render state
char *N; // XDK notes. Defaults to ''.
WORD R; // The XDK version since which a render state was removed

View File

@ -557,7 +557,7 @@ LOGRENDER(RECT)
// prevent name collisions
namespace XTL {
namespace xbox {
//
// Cxbx D3D LOGRENDER(Type) implementations
@ -769,4 +769,4 @@ LOGRENDER(X_D3DPixelContainer)
LOGRENDER_MEMBER_TYPE(X_D3DRESOURCE_SIZE, Size);
}
} // end of namespace XTL
} // end of namespace xbox

View File

@ -64,7 +64,7 @@ enum D3DVTXPCAPS : int;
enum D3DDEVCAPS2 : int;
enum D3DDTCAPS : int;
namespace XTL {
namespace xbox {
enum X_D3DUSAGE : int;
enum X_D3DCOMMON_TYPE : int;
@ -72,7 +72,7 @@ enum X_D3DRESOURCE_COMMON : int;
enum X_D3DRESOURCE_FORMAT : int;
enum X_D3DRESOURCE_SIZE : int;
} // end of namespace XTL
} // end of namespace xbox
//
// Headers for rendering host D3D enum types :
@ -118,7 +118,7 @@ LOGRENDER_HEADER(D3DCAPS)
LOGRENDER_HEADER(D3DLOCKED_RECT)
LOGRENDER_HEADER(RECT)
namespace XTL {
namespace xbox {
//
// Headers for rendering Xbox D3D enum types :
@ -158,6 +158,6 @@ LOGRENDER_HEADER(X_D3DDISPLAYMODE)
LOGRENDER_HEADER(X_D3DResource)
LOGRENDER_HEADER(X_D3DPixelContainer)
} // end of namespace XTL
} // end of namespace xbox
#endif _EMU_D3D8_LOGGING_H

View File

@ -84,7 +84,7 @@
#define IDirect3DSwapChain IDirect3DSwapChain9
#define IDirect3DQuery IDirect3DQuery9
namespace XTL {
namespace xbox {
// TODO : Declare these aliasses as Xbox type
typedef D3DLIGHT9 X_D3DLIGHT8;
@ -1242,6 +1242,6 @@ typedef DWORD NV2AMETHOD;
// Below declarations are used by Cxbx, not by the Xbox!!!
//
} // end of namespace XTL
} // end of namespace xbox
#endif

View File

@ -621,7 +621,7 @@ const char *PSH_ARGUMENT_TYPE_Str[/*PSH_ARGUMENT_TYPE*/] = {
"oC", //
};
constexpr int XFC_COMBINERSTAGENR = XTL::X_PSH_COMBINECOUNT; // Always call XFC 'stage 9', 1 after the 8th combiner
constexpr int XFC_COMBINERSTAGENR = xbox::X_PSH_COMBINECOUNT; // Always call XFC 'stage 9', 1 after the 8th combiner
constexpr int PSH_XBOX_MAX_C_REGISTER_COUNT = 16;
constexpr int PSH_XBOX_MAX_R_REGISTER_COUNT = 2;
@ -789,7 +789,7 @@ enum
};
typedef struct _PSH_RECOMPILED_SHADER {
XTL::X_D3DPIXELSHADERDEF PSDef;
xbox::X_D3DPIXELSHADERDEF PSDef;
std::string NewShaderStr;
DWORD ConvertedHandle;
bool ConstInUse[PSH_XBOX_CONSTANT_MAX];
@ -861,19 +861,19 @@ struct PSH_XBOX_SHADER {
int PSH_PC_MAX_REGISTER_COUNT;
// Reserve enough slots for all shaders, so we need space for 2 constants, 5 lines per texture addressing codes and 10 lines per opcode : :
PSH_INTERMEDIATE_FORMAT Intermediate[2 + (XTL::X_D3DTS_STAGECOUNT * 5) + (XTL::X_PSH_COMBINECOUNT * 10) + 1];
PSH_INTERMEDIATE_FORMAT Intermediate[2 + (xbox::X_D3DTS_STAGECOUNT * 5) + (xbox::X_PSH_COMBINECOUNT * 10) + 1];
int IntermediateCount;
PS_TEXTUREMODES PSTextureModes[XTL::X_D3DTS_STAGECOUNT];
PS_DOTMAPPING PSDotMapping[XTL::X_D3DTS_STAGECOUNT];
DWORD PSCompareMode[XTL::X_D3DTS_STAGECOUNT];
int PSInputTexture[XTL::X_D3DTS_STAGECOUNT];
PS_TEXTUREMODES PSTextureModes[xbox::X_D3DTS_STAGECOUNT];
PS_DOTMAPPING PSDotMapping[xbox::X_D3DTS_STAGECOUNT];
DWORD PSCompareMode[xbox::X_D3DTS_STAGECOUNT];
int PSInputTexture[xbox::X_D3DTS_STAGECOUNT];
PS_FINALCOMBINERSETTING FinalCombinerFlags;
// Note : The following constants are only needed for PSH_XBOX_SHADER::DecodedToString,
// they are not involved in the actual pixel shader recompilation anymore :
RPSFinalCombiner FinalCombiner;
RPSCombinerStage Combiners[XTL::X_PSH_COMBINECOUNT];
RPSCombinerStage Combiners[xbox::X_PSH_COMBINECOUNT];
int NumberOfCombiners;
DWORD CombinerCountFlags; // For PS_COMBINERCOUNTFLAGS
// Read from CombinerCountFlags :
@ -893,23 +893,23 @@ struct PSH_XBOX_SHADER {
void InsertIntermediate(PPSH_INTERMEDIATE_FORMAT pIntermediate, int Index);
void DeleteIntermediate(int Index);
void DeleteLastIntermediate();
std::string static OriginalToString(XTL::X_D3DPIXELSHADERDEF *pPSDef);
void Decode(XTL::X_D3DPIXELSHADERDEF *pPSDef);
PSH_RECOMPILED_SHADER Convert(XTL::X_D3DPIXELSHADERDEF *pPSDef);
std::string DecodedToString(XTL::X_D3DPIXELSHADERDEF *pPSDef);
std::string static OriginalToString(xbox::X_D3DPIXELSHADERDEF *pPSDef);
void Decode(xbox::X_D3DPIXELSHADERDEF *pPSDef);
PSH_RECOMPILED_SHADER Convert(xbox::X_D3DPIXELSHADERDEF *pPSDef);
std::string DecodedToString(xbox::X_D3DPIXELSHADERDEF *pPSDef);
bool _NextIs2D(int Stage);
bool DecodeTextureModes(XTL::X_D3DPIXELSHADERDEF *pPSDef);
bool DecodeTextureModes(xbox::X_D3DPIXELSHADERDEF *pPSDef);
int GetTextureStageModifiers(int Stage);
void InsertTex3x2Instructions(int Stage, int inputStage, std::vector<PSH_INTERMEDIATE_FORMAT>& InsertIns);
void InsertTex3x3Instructions(int Stage, int inputStage, std::vector<PSH_INTERMEDIATE_FORMAT>& InsertIns);
bool InsertTextureModeInstruction(XTL::X_D3DPIXELSHADERDEF *pPSDef, int Stage, PSH_OPCODE opcode, std::vector<PSH_INTERMEDIATE_FORMAT>& InsertIns, int& InsertPos);
bool InsertTextureModeInstruction(xbox::X_D3DPIXELSHADERDEF *pPSDef, int Stage, PSH_OPCODE opcode, std::vector<PSH_INTERMEDIATE_FORMAT>& InsertIns, int& InsertPos);
bool MoveRemovableParametersRight();
void ConvertXboxOpcodesToNative(XTL::X_D3DPIXELSHADERDEF *pPSDef);
void ConvertXboxOpcodesToNative(xbox::X_D3DPIXELSHADERDEF *pPSDef);
void _SetColor(/*var OUT*/PSH_INTERMEDIATE_FORMAT &NewIns, D3DCOLOR ConstColor);
void _SetColor(/*var OUT*/PSH_INTERMEDIATE_FORMAT &NewIns, D3DCOLORVALUE ConstColor);
int _MapConstant(int ConstNr, bool *NativeConstInUse);
int _HandleConst(int XboxConst, /*var OUT*/PSH_RECOMPILED_SHADER *Recompiled, bool *NativeConstInUse, bool *EmittedNewConstant);
bool ConvertConstantsToNative(XTL::X_D3DPIXELSHADERDEF *pPSDef, /*var OUT*/PSH_RECOMPILED_SHADER *Recompiled);
bool ConvertConstantsToNative(xbox::X_D3DPIXELSHADERDEF *pPSDef, /*var OUT*/PSH_RECOMPILED_SHADER *Recompiled);
bool RemoveUselessWrites();
int MaxRegisterCount(PSH_ARGUMENT_TYPE aRegType);
bool IsValidNativeOutputRegister(PSH_ARGUMENT_TYPE aRegType, int index = -1);
@ -955,10 +955,10 @@ struct PSH_XBOX_SHADER {
bool FixOverusedRegisters();
bool FinalizeShader();
static void GetPSTextureModes(XTL::X_D3DPIXELSHADERDEF* pPSDef, PS_TEXTUREMODES psTextureModes[XTL::X_D3DTS_STAGECOUNT]);
static void GetPSDotMapping(XTL::X_D3DPIXELSHADERDEF* pPSDef, PS_DOTMAPPING psDotMapping[XTL::X_D3DTS_STAGECOUNT]);
static void GetPSCompareModes(XTL::X_D3DPIXELSHADERDEF* pPSDef, DWORD psCompareModes[XTL::X_D3DTS_STAGECOUNT]);
static void GetPSInputTexture(XTL::X_D3DPIXELSHADERDEF* pPSDef, int psInputTexture[XTL::X_D3DTS_STAGECOUNT]);
static void GetPSTextureModes(xbox::X_D3DPIXELSHADERDEF* pPSDef, PS_TEXTUREMODES psTextureModes[xbox::X_D3DTS_STAGECOUNT]);
static void GetPSDotMapping(xbox::X_D3DPIXELSHADERDEF* pPSDef, PS_DOTMAPPING psDotMapping[xbox::X_D3DTS_STAGECOUNT]);
static void GetPSCompareModes(xbox::X_D3DPIXELSHADERDEF* pPSDef, DWORD psCompareModes[xbox::X_D3DTS_STAGECOUNT]);
static void GetPSInputTexture(xbox::X_D3DPIXELSHADERDEF* pPSDef, int psInputTexture[xbox::X_D3DTS_STAGECOUNT]);
};
/*
@ -2282,7 +2282,7 @@ void PSH_XBOX_SHADER::DeleteLastIntermediate()
DeleteIntermediate(IntermediateCount - 1);
}
std::string PSH_XBOX_SHADER::OriginalToString(XTL::X_D3DPIXELSHADERDEF *pPSDef) // static
std::string PSH_XBOX_SHADER::OriginalToString(xbox::X_D3DPIXELSHADERDEF *pPSDef) // static
{
char buffer[4096];
return std::string(buffer, sprintf(buffer, "PSAphaInputs[8] = 0x%.08X 0x%.08X 0x%.08X 0x%.08X 0x%.08X 0x%.08X 0x%.08X 0x%.08X\n"
@ -2321,7 +2321,7 @@ std::string PSH_XBOX_SHADER::OriginalToString(XTL::X_D3DPIXELSHADERDEF *pPSDef)
pPSDef->PSRGBOutputs[0], pPSDef->PSRGBOutputs[1], pPSDef->PSRGBOutputs[2], pPSDef->PSRGBOutputs[3],
pPSDef->PSRGBOutputs[4], pPSDef->PSRGBOutputs[5], pPSDef->PSRGBOutputs[6], pPSDef->PSRGBOutputs[7],
pPSDef->PSCombinerCount,
XboxRenderStates.GetXboxRenderState(XTL::X_D3DRS_PSTEXTUREMODES), /* pPSDef->PSTextureModes is stored in a different place than pPSDef*/
XboxRenderStates.GetXboxRenderState(xbox::X_D3DRS_PSTEXTUREMODES), /* pPSDef->PSTextureModes is stored in a different place than pPSDef*/
pPSDef->PSDotMapping,
pPSDef->PSInputTexture,
pPSDef->PSC0Mapping,
@ -2329,15 +2329,15 @@ std::string PSH_XBOX_SHADER::OriginalToString(XTL::X_D3DPIXELSHADERDEF *pPSDef)
pPSDef->PSFinalCombinerConstants));
}
void PSH_XBOX_SHADER::GetPSTextureModes(XTL::X_D3DPIXELSHADERDEF* pPSDef, PS_TEXTUREMODES psTextureModes[XTL::X_D3DTS_STAGECOUNT])
void PSH_XBOX_SHADER::GetPSTextureModes(xbox::X_D3DPIXELSHADERDEF* pPSDef, PS_TEXTUREMODES psTextureModes[xbox::X_D3DTS_STAGECOUNT])
{
for (int i = 0; i < XTL::X_D3DTS_STAGECOUNT; i++)
for (int i = 0; i < xbox::X_D3DTS_STAGECOUNT; i++)
{
psTextureModes[i] = (PS_TEXTUREMODES)((XboxRenderStates.GetXboxRenderState(XTL::X_D3DRS_PSTEXTUREMODES) >> (i * 5)) & 0x1F);
psTextureModes[i] = (PS_TEXTUREMODES)((XboxRenderStates.GetXboxRenderState(xbox::X_D3DRS_PSTEXTUREMODES) >> (i * 5)) & 0x1F);
}
}
void PSH_XBOX_SHADER::GetPSDotMapping(XTL::X_D3DPIXELSHADERDEF* pPSDef, PS_DOTMAPPING psDotMapping[XTL::X_D3DTS_STAGECOUNT])
void PSH_XBOX_SHADER::GetPSDotMapping(xbox::X_D3DPIXELSHADERDEF* pPSDef, PS_DOTMAPPING psDotMapping[xbox::X_D3DTS_STAGECOUNT])
{
psDotMapping[0] = (PS_DOTMAPPING)(0);
psDotMapping[1] = (PS_DOTMAPPING)((pPSDef->PSDotMapping >> 0) & 0x7);
@ -2345,15 +2345,15 @@ void PSH_XBOX_SHADER::GetPSDotMapping(XTL::X_D3DPIXELSHADERDEF* pPSDef, PS_DOTMA
psDotMapping[3] = (PS_DOTMAPPING)((pPSDef->PSDotMapping >> 8) & 0x7);
}
void PSH_XBOX_SHADER::GetPSCompareModes(XTL::X_D3DPIXELSHADERDEF* pPSDef, DWORD psCompareModes[XTL::X_D3DTS_STAGECOUNT])
void PSH_XBOX_SHADER::GetPSCompareModes(xbox::X_D3DPIXELSHADERDEF* pPSDef, DWORD psCompareModes[xbox::X_D3DTS_STAGECOUNT])
{
for (int i = 0; i < XTL::X_D3DTS_STAGECOUNT; i++)
for (int i = 0; i < xbox::X_D3DTS_STAGECOUNT; i++)
{
psCompareModes[i] = (pPSDef->PSCompareMode >> (i * 4)) & 0xF;
}
}
void PSH_XBOX_SHADER::GetPSInputTexture(XTL::X_D3DPIXELSHADERDEF* pPSDef, int psInputTexture[XTL::X_D3DTS_STAGECOUNT])
void PSH_XBOX_SHADER::GetPSInputTexture(xbox::X_D3DPIXELSHADERDEF* pPSDef, int psInputTexture[xbox::X_D3DTS_STAGECOUNT])
{
psInputTexture[0] = -1; // Stage 0 has no predecessors
psInputTexture[1] = 0; // Stage 1 can only use stage 0
@ -2361,7 +2361,7 @@ void PSH_XBOX_SHADER::GetPSInputTexture(XTL::X_D3DPIXELSHADERDEF* pPSDef, int ps
psInputTexture[3] = (pPSDef->PSInputTexture >> 20) & 0x3; // Stage 3 can only use stage 0, 1 or 2
}
void PSH_XBOX_SHADER::Decode(XTL::X_D3DPIXELSHADERDEF *pPSDef)
void PSH_XBOX_SHADER::Decode(xbox::X_D3DPIXELSHADERDEF *pPSDef)
{
int i;
@ -2384,7 +2384,7 @@ void PSH_XBOX_SHADER::Decode(XTL::X_D3DPIXELSHADERDEF *pPSDef)
// Backwards compatible decoding (purely for logging) :
{
for (i = 0; i < XTL::X_PSH_COMBINECOUNT; i++) {
for (i = 0; i < xbox::X_PSH_COMBINECOUNT; i++) {
Combiners[i].RGB.Decode(pPSDef->PSRGBInputs[i], pPSDef->PSRGBOutputs[i]);
Combiners[i].Alpha.Decode(pPSDef->PSAlphaInputs[i], pPSDef->PSAlphaOutputs[i], /*aIsAlpha=*/true);
}
@ -2393,7 +2393,7 @@ void PSH_XBOX_SHADER::Decode(XTL::X_D3DPIXELSHADERDEF *pPSDef)
}
}
PSH_RECOMPILED_SHADER PSH_XBOX_SHADER::Convert(XTL::X_D3DPIXELSHADERDEF *pPSDef)
PSH_RECOMPILED_SHADER PSH_XBOX_SHADER::Convert(xbox::X_D3DPIXELSHADERDEF *pPSDef)
{
int i;
Recompiled = {};
@ -2525,7 +2525,7 @@ PSH_RECOMPILED_SHADER PSH_XBOX_SHADER::Convert(XTL::X_D3DPIXELSHADERDEF *pPSDef)
return Recompiled;
}
std::string PSH_XBOX_SHADER::DecodedToString(XTL::X_D3DPIXELSHADERDEF *pPSDef)
std::string PSH_XBOX_SHADER::DecodedToString(xbox::X_D3DPIXELSHADERDEF *pPSDef)
// print relevant contents to the debug console
#define _AddStr1(aStr) \
@ -2545,7 +2545,7 @@ std::string PSH_XBOX_SHADER::DecodedToString(XTL::X_D3DPIXELSHADERDEF *pPSDef)
_AddStr1("\n-----PixelShader Definition Contents-----");
_AddStr1(OriginalToString(pPSDef));
if (XboxRenderStates.GetXboxRenderState(XTL::X_D3DRS_PSTEXTUREMODES) > 0)
if (XboxRenderStates.GetXboxRenderState(xbox::X_D3DRS_PSTEXTUREMODES) > 0)
{
_AddStr1("\nPSTextureModes ->"); // Texture addressing modes
_AddStr("Stage 0: %s", PS_TextureModesStr[PSTextureModes[0]]);
@ -2673,13 +2673,13 @@ std::string PSH_XBOX_SHADER::DecodedToString(XTL::X_D3DPIXELSHADERDEF *pPSDef)
bool PSH_XBOX_SHADER::_NextIs2D(int Stage)
{
if (Stage < XTL::X_D3DTS_STAGECOUNT-1)
if (Stage < xbox::X_D3DTS_STAGECOUNT-1)
return (PSTextureModes[Stage + 1] == PS_TEXTUREMODES_DOT_ST) || (PSTextureModes[Stage + 1] == PS_TEXTUREMODES_DOT_ZW);
else
return false;
}
bool PSH_XBOX_SHADER::DecodeTextureModes(XTL::X_D3DPIXELSHADERDEF *pPSDef)
bool PSH_XBOX_SHADER::DecodeTextureModes(xbox::X_D3DPIXELSHADERDEF *pPSDef)
{
int InsertPos;
PSH_INTERMEDIATE_FORMAT Ins = {};
@ -2687,7 +2687,7 @@ bool PSH_XBOX_SHADER::DecodeTextureModes(XTL::X_D3DPIXELSHADERDEF *pPSDef)
int Stage;
InsertIns.reserve(32); // arbitrary allotment of instructions
InsertIns.resize(XTL::X_D3DTS_STAGECOUNT); // default initialized to PO_COMMENT instructions
InsertIns.resize(xbox::X_D3DTS_STAGECOUNT); // default initialized to PO_COMMENT instructions
bool Result = false;
@ -2697,7 +2697,7 @@ bool PSH_XBOX_SHADER::DecodeTextureModes(XTL::X_D3DPIXELSHADERDEF *pPSDef)
} while (_OpcodeMustStayBeforeTextureMode(Intermediate[InsertPos].Opcode, InsertPos));
Ins.Initialize(PO_DCL);
for (Stage = 0; Stage < XTL::X_D3DTS_STAGECOUNT; Stage++)
for (Stage = 0; Stage < xbox::X_D3DTS_STAGECOUNT; Stage++)
{
if (PSTextureModes[Stage] != PS_TEXTUREMODES_NONE || Stage < PSH_XBOX_MAX_T_REGISTER_COUNT)
{
@ -2764,7 +2764,7 @@ bool PSH_XBOX_SHADER::DecodeTextureModes(XTL::X_D3DPIXELSHADERDEF *pPSDef)
Opcode = PO_TEXLD2;
for (Stage = 0; Stage < XTL::X_D3DTS_STAGECOUNT; Stage++)
for (Stage = 0; Stage < xbox::X_D3DTS_STAGECOUNT; Stage++)
{
// TODO : Apply conversions when PS_GLOBALFLAGS_TEXMODE_ADJUST is set (but ... how to check the texture type? read D3DRS_PSTEXTUREMODES?)
@ -2813,7 +2813,7 @@ bool PSH_XBOX_SHADER::DecodeTextureModes(XTL::X_D3DPIXELSHADERDEF *pPSDef)
{
for (unsigned i = 0; i < InsertIns.size(); ++i)
{
if (i >= XTL::X_D3DTS_STAGECOUNT || InsertIns[i].Opcode != PO_COMMENT)
if (i >= xbox::X_D3DTS_STAGECOUNT || InsertIns[i].Opcode != PO_COMMENT)
{
InsertIntermediate(&InsertIns[i], InsertPos);
++InsertPos;
@ -2895,7 +2895,7 @@ void PSH_XBOX_SHADER::InsertTex3x3Instructions(int Stage, int inputStage, std::v
InsertIns.emplace_back(Ins);
}
bool PSH_XBOX_SHADER::InsertTextureModeInstruction(XTL::X_D3DPIXELSHADERDEF *pPSDef, int Stage, PSH_OPCODE opcode, std::vector<PSH_INTERMEDIATE_FORMAT>& InsertIns, int& InsertPos)
bool PSH_XBOX_SHADER::InsertTextureModeInstruction(xbox::X_D3DPIXELSHADERDEF *pPSDef, int Stage, PSH_OPCODE opcode, std::vector<PSH_INTERMEDIATE_FORMAT>& InsertIns, int& InsertPos)
{
PSH_INTERMEDIATE_FORMAT Ins = {};
@ -2925,21 +2925,21 @@ bool PSH_XBOX_SHADER::InsertTextureModeInstruction(XTL::X_D3DPIXELSHADERDEF *pPS
auto biasModifier = (1 << ARGMOD_SCALE_BX2);
auto pXboxTexture = g_pXbox_SetTexture[inputStage];
if (pXboxTexture != nullptr) {
extern XTL::X_D3DFORMAT GetXboxPixelContainerFormat(const XTL::X_D3DPixelContainer *pXboxPixelContainer); // TODO : Move to XTL-independent header file
extern xbox::X_D3DFORMAT GetXboxPixelContainerFormat(const xbox::X_D3DPixelContainer *pXboxPixelContainer); // TODO : Move to XTL-independent header file
switch (GetXboxPixelContainerFormat(pXboxTexture)) {
case XTL::X_D3DFMT_L6V5U5: {
extern XTL::X_D3DRESOURCETYPE GetXboxD3DResourceType(const XTL::X_D3DResource *pXboxResource); // TODO : Move to XTL-independent header file
extern bool IsSupportedFormat(XTL::X_D3DFORMAT X_Format, XTL::X_D3DRESOURCETYPE XboxResourceType, DWORD D3DUsage); // TODO : Move to XTL-independent header file
case xbox::X_D3DFMT_L6V5U5: {
extern xbox::X_D3DRESOURCETYPE GetXboxD3DResourceType(const xbox::X_D3DResource *pXboxResource); // TODO : Move to XTL-independent header file
extern bool IsSupportedFormat(xbox::X_D3DFORMAT X_Format, xbox::X_D3DRESOURCETYPE XboxResourceType, DWORD D3DUsage); // TODO : Move to XTL-independent header file
// L6V5U5 format is converted incorrectly if not supported by the device
XTL::X_D3DRESOURCETYPE XboxResourceType = GetXboxD3DResourceType(pXboxTexture);
xbox::X_D3DRESOURCETYPE XboxResourceType = GetXboxD3DResourceType(pXboxTexture);
DWORD D3DUsage = 0; // TODO : Since it's not yet know how to determine D3DUsage in this case, 'hack' it by using no specific D3DUSAGE_* flags.
bias = !IsSupportedFormat(/*XboxFormat=*/XTL::X_D3DFMT_L6V5U5, XboxResourceType, D3DUsage);
bias = !IsSupportedFormat(/*XboxFormat=*/xbox::X_D3DFMT_L6V5U5, XboxResourceType, D3DUsage);
break;
}
case XTL::X_D3DFMT_X8L8V8U8: {
case xbox::X_D3DFMT_X8L8V8U8: {
bias = true;
break;
}
@ -3290,9 +3290,9 @@ bool PSH_XBOX_SHADER::InsertTextureModeInstruction(XTL::X_D3DPIXELSHADERDEF *pPS
// Insert move instructions in reverse order to prevent overwriting wrong register
// Create instructions to move loaded temporary registers into extra temporary registers
InsertIns[XTL::X_D3DTS_STAGECOUNT - Stage - 1].Initialize(PO_MOV);
InsertIns[XTL::X_D3DTS_STAGECOUNT - Stage - 1].Output[0].SetRegister(PARAM_R, PSH_XBOX_MAX_R_REGISTER_COUNT + Stage, 0);
InsertIns[XTL::X_D3DTS_STAGECOUNT - Stage - 1].Parameters[0].SetRegister(PARAM_R, Stage, 0);
InsertIns[xbox::X_D3DTS_STAGECOUNT - Stage - 1].Initialize(PO_MOV);
InsertIns[xbox::X_D3DTS_STAGECOUNT - Stage - 1].Output[0].SetRegister(PARAM_R, PSH_XBOX_MAX_R_REGISTER_COUNT + Stage, 0);
InsertIns[xbox::X_D3DTS_STAGECOUNT - Stage - 1].Parameters[0].SetRegister(PARAM_R, Stage, 0);
if (Ins.Opcode == PO_TEXCRD)
{
@ -3398,7 +3398,7 @@ bool PSH_XBOX_SHADER::MoveRemovableParametersRight()
return Result;
} // MoveRemovableParametersRight
//bool PSH_XBOX_SHADER::ConvertConstantsToNative(XTL::X_D3DPIXELSHADERDEF *pPSDef, /*var OUT*/PSH_RECOMPILED_SHADER *Recompiled)
//bool PSH_XBOX_SHADER::ConvertConstantsToNative(xbox::X_D3DPIXELSHADERDEF *pPSDef, /*var OUT*/PSH_RECOMPILED_SHADER *Recompiled)
void PSH_XBOX_SHADER::_SetColor(/*var OUT*/PSH_INTERMEDIATE_FORMAT &NewIns, D3DCOLOR ConstColor)
{
@ -3469,7 +3469,7 @@ bool PSH_XBOX_SHADER::MoveRemovableParametersRight()
return Recompiled->ConstMapping[XboxConst];
}
bool PSH_XBOX_SHADER::ConvertConstantsToNative(XTL::X_D3DPIXELSHADERDEF *pPSDef, /*var OUT*/PSH_RECOMPILED_SHADER *Recompiled)
bool PSH_XBOX_SHADER::ConvertConstantsToNative(xbox::X_D3DPIXELSHADERDEF *pPSDef, /*var OUT*/PSH_RECOMPILED_SHADER *Recompiled)
{
int i, j;
PPSH_INTERMEDIATE_FORMAT Cur;
@ -3500,7 +3500,7 @@ bool PSH_XBOX_SHADER::ConvertConstantsToNative(XTL::X_D3DPIXELSHADERDEF *pPSDef,
_SetColor(NewIns, {1.0, 2.0, 4.0, 8.0});
InsertIntermediate(&NewIns, 1);
for (i = 0; i < XTL::X_D3DTS_STAGECOUNT; i++)
for (i = 0; i < xbox::X_D3DTS_STAGECOUNT; i++)
{
_HandleConst(PSH_XBOX_CONSTANT_BEM + i, Recompiled, &NativeConstInUse[0], &EmittedNewConstant);
_HandleConst(PSH_XBOX_CONSTANT_LUM + i, Recompiled, &NativeConstInUse[0], &EmittedNewConstant);
@ -3672,7 +3672,7 @@ bool PSH_XBOX_SHADER::RemoveUselessWrites()
return Result;
} // RemoveUselessWrites
void PSH_XBOX_SHADER::ConvertXboxOpcodesToNative(XTL::X_D3DPIXELSHADERDEF *pPSDef)
void PSH_XBOX_SHADER::ConvertXboxOpcodesToNative(xbox::X_D3DPIXELSHADERDEF *pPSDef)
{
int i;
PPSH_INTERMEDIATE_FORMAT Cur;
@ -5816,7 +5816,7 @@ void RPSFinalCombiner::Decode(const DWORD PSFinalCombinerInputsABCD, const DWORD
dwPS_GLOBALFLAGS = (PSFinalCombinerConstants >> 8) & 0x1;
}
void XTL_DumpPixelShaderToFile(XTL::X_D3DPIXELSHADERDEF *pPSDef)
void XTL_DumpPixelShaderToFile(xbox::X_D3DPIXELSHADERDEF *pPSDef)
{
static int PshNumber = 0; // Keep track of how many pixel shaders we've attempted to convert.
// Don't dump more than 100 shaders, to prevent cluttering the filesystem :
@ -5834,7 +5834,7 @@ void XTL_DumpPixelShaderToFile(XTL::X_D3DPIXELSHADERDEF *pPSDef)
}
}
PSH_RECOMPILED_SHADER XTL_EmuRecompilePshDef(XTL::X_D3DPIXELSHADERDEF *pPSDef)
PSH_RECOMPILED_SHADER XTL_EmuRecompilePshDef(xbox::X_D3DPIXELSHADERDEF *pPSDef)
{
uint32_t PSVersion = D3DPS_VERSION(2, 0); // Use pixel shader model 2.0 by default
@ -5853,7 +5853,7 @@ PSH_RECOMPILED_SHADER XTL_EmuRecompilePshDef(XTL::X_D3DPIXELSHADERDEF *pPSDef)
// From Dxbx uState.pas :
PSH_RECOMPILED_SHADER DxbxRecompilePixelShader(XTL::X_D3DPIXELSHADERDEF *pPSDef)
PSH_RECOMPILED_SHADER DxbxRecompilePixelShader(xbox::X_D3DPIXELSHADERDEF *pPSDef)
{
static const
char *szDiffusePixelShader =
@ -5943,7 +5943,7 @@ std::vector<PSH_RECOMPILED_SHADER> g_RecompiledPixelShaders;
VOID DxbxUpdateActivePixelShader() // NOPATCH
{
XTL::X_D3DPIXELSHADERDEF *pPSDef;
xbox::X_D3DPIXELSHADERDEF *pPSDef;
PPSH_RECOMPILED_SHADER RecompiledPixelShader;
DWORD ConvertedPixelShaderHandle;
DWORD CurrentPixelShader;
@ -5966,7 +5966,7 @@ VOID DxbxUpdateActivePixelShader() // NOPATCH
// manually read from D3D__RenderState[X_D3DRS_PSTEXTUREMODES) for that one field.
// See D3DDevice_SetPixelShaderCommon which implements this
pPSDef = g_pXbox_PixelShader != nullptr ? (XTL::X_D3DPIXELSHADERDEF*)(XboxRenderStates.GetPixelShaderRenderStatePointer()) : nullptr;
pPSDef = g_pXbox_PixelShader != nullptr ? (xbox::X_D3DPIXELSHADERDEF*)(XboxRenderStates.GetPixelShaderRenderStatePointer()) : nullptr;
if (pPSDef != nullptr)
{
@ -6011,10 +6011,10 @@ VOID DxbxUpdateActivePixelShader() // NOPATCH
}
#endif
//PS_TEXTUREMODES psTextureModes[XTL::X_D3DTS_STAGECOUNT];
//PS_TEXTUREMODES psTextureModes[xbox::X_D3DTS_STAGECOUNT];
//PSH_XBOX_SHADER::GetPSTextureModes(pPSDef, psTextureModes);
//
//for (i = 0; i < XTL::X_D3DTS_STAGECOUNT; i++)
//for (i = 0; i < xbox::X_D3DTS_STAGECOUNT; i++)
//{
// switch (psTextureModes[i])
// {
@ -6041,13 +6041,13 @@ VOID DxbxUpdateActivePixelShader() // NOPATCH
case PSH_XBOX_CONSTANT_FOG:
// Note : FOG.RGB is correct like this, but FOG.a should be coming
// from the vertex shader (oFog) - however, D3D8 does not forward this...
fColor = dwColor = XboxRenderStates.GetXboxRenderState(XTL::X_D3DRS_FOGCOLOR);
fColor = dwColor = XboxRenderStates.GetXboxRenderState(xbox::X_D3DRS_FOGCOLOR);
break;
case PSH_XBOX_CONSTANT_FC0:
fColor = dwColor = XboxRenderStates.GetXboxRenderState(XTL::X_D3DRS_PSFINALCOMBINERCONSTANT0);
fColor = dwColor = XboxRenderStates.GetXboxRenderState(xbox::X_D3DRS_PSFINALCOMBINERCONSTANT0);
break;
case PSH_XBOX_CONSTANT_FC1:
fColor = dwColor = XboxRenderStates.GetXboxRenderState(XTL::X_D3DRS_PSFINALCOMBINERCONSTANT1);
fColor = dwColor = XboxRenderStates.GetXboxRenderState(xbox::X_D3DRS_PSFINALCOMBINERCONSTANT1);
break;
case PSH_XBOX_CONSTANT_MUL0:
case PSH_XBOX_CONSTANT_MUL1:
@ -6081,7 +6081,7 @@ VOID DxbxUpdateActivePixelShader() // NOPATCH
break;
}
default:
fColor = dwColor = XboxRenderStates.GetXboxRenderState(XTL::X_D3DRS_PSCONSTANT0_0 + i);
fColor = dwColor = XboxRenderStates.GetXboxRenderState(xbox::X_D3DRS_PSCONSTANT0_0 + i);
break;
}
@ -8058,7 +8058,7 @@ inline void CorrectConstToReg(char *szConst, int *pPSC0, int *pPSC1)
CorrectConstToReg_done:;
}
void DumpPixelShaderDefToFile(XTL::X_D3DPIXELSHADERDEF* pPSDef, const char* pszCode /*= nullptr*/ )
void DumpPixelShaderDefToFile(xbox::X_D3DPIXELSHADERDEF* pPSDef, const char* pszCode /*= nullptr*/ )
{
static int PshNumber = 0; // Keep track of how many pixel shaders we've attemted to convert.
char szPSDef[512];
@ -8104,7 +8104,7 @@ void DumpPixelShaderDefToFile(XTL::X_D3DPIXELSHADERDEF* pPSDef, const char* pszC
pPSDef->PSRGBOutputs[0], pPSDef->PSRGBOutputs[1], pPSDef->PSRGBOutputs[2], pPSDef->PSRGBOutputs[3],
pPSDef->PSRGBOutputs[4], pPSDef->PSRGBOutputs[5], pPSDef->PSRGBOutputs[6], pPSDef->PSRGBOutputs[7],
pPSDef->PSCombinerCount,
XboxRenderStates.GetXboxRenderState(XTL::X_D3DRS_PSTEXTUREMODES), /* pPSDef->PSTextureModes is stored in a different place than pPSDef*/
XboxRenderStates.GetXboxRenderState(xbox::X_D3DRS_PSTEXTUREMODES), /* pPSDef->PSTextureModes is stored in a different place than pPSDef*/
pPSDef->PSDotMapping,
pPSDef->PSInputTexture,
pPSDef->PSC0Mapping,
@ -8120,19 +8120,19 @@ void DumpPixelShaderDefToFile(XTL::X_D3DPIXELSHADERDEF* pPSDef, const char* pszC
}
// print relevant contents to the debug console
void PrintPixelShaderDefContents(XTL::X_D3DPIXELSHADERDEF* pPSDef )
void PrintPixelShaderDefContents(xbox::X_D3DPIXELSHADERDEF* pPSDef )
{
// Show the contents to the user
if( pPSDef )
{
DbgPshPrintf( "\n-----PixelShader Def Contents-----\n" );
if(XboxRenderStates.GetXboxRenderState(XTL::X_D3DRS_PSTEXTUREMODES))
if(XboxRenderStates.GetXboxRenderState(xbox::X_D3DRS_PSTEXTUREMODES))
{
DWORD dwPSTexMode0 = (XboxRenderStates.GetXboxRenderState(XTL::X_D3DRS_PSTEXTUREMODES) >> 0 ) & 0x1F;
DWORD dwPSTexMode1 = (XboxRenderStates.GetXboxRenderState(XTL::X_D3DRS_PSTEXTUREMODES) >> 5 ) & 0x1F;
DWORD dwPSTexMode2 = (XboxRenderStates.GetXboxRenderState(XTL::X_D3DRS_PSTEXTUREMODES) >> 10 ) & 0x1F;
DWORD dwPSTexMode3 = (XboxRenderStates.GetXboxRenderState(XTL::X_D3DRS_PSTEXTUREMODES) >> 15 ) & 0x1F;
DWORD dwPSTexMode0 = (XboxRenderStates.GetXboxRenderState(xbox::X_D3DRS_PSTEXTUREMODES) >> 0 ) & 0x1F;
DWORD dwPSTexMode1 = (XboxRenderStates.GetXboxRenderState(xbox::X_D3DRS_PSTEXTUREMODES) >> 5 ) & 0x1F;
DWORD dwPSTexMode2 = (XboxRenderStates.GetXboxRenderState(xbox::X_D3DRS_PSTEXTUREMODES) >> 10 ) & 0x1F;
DWORD dwPSTexMode3 = (XboxRenderStates.GetXboxRenderState(xbox::X_D3DRS_PSTEXTUREMODES) >> 15 ) & 0x1F;
DbgPshPrintf( "PSTextureModes ->\n" );
DbgPshPrintf( "Stage 0: %s\n", PS_TextureModesStr[dwPSTexMode0] );

View File

@ -30,9 +30,9 @@
#include "core\hle\D3D8\XbD3D8Types.h"
// dump pixel shader definition to file
void DumpPixelShaderDefToFile( XTL::X_D3DPIXELSHADERDEF* pPSDef, const char* pszCode );
void DumpPixelShaderDefToFile( xbox::X_D3DPIXELSHADERDEF* pPSDef, const char* pszCode );
// print relevant contents to the debug console
void PrintPixelShaderDefContents(XTL::X_D3DPIXELSHADERDEF* pDSDef );
void PrintPixelShaderDefContents(xbox::X_D3DPIXELSHADERDEF* pDSDef );
// PatrickvL's Dxbx pixel shader translation
VOID DxbxUpdateActivePixelShader(); // NOPATCH

View File

@ -39,7 +39,7 @@
#include "devices/video/nv2a_int.h" // For NV** defines
#include "Logging.h"
// TODO: Find somewhere to put this that doesn't conflict with XTL::
// TODO: Find somewhere to put this that doesn't conflict with xbox::
extern void EmuUpdateActiveTextureStages();
const char *NV2AMethodToString(DWORD dwMethod); // forward
@ -118,12 +118,12 @@ UINT DxbxFVFToVertexSizeInBytes(DWORD dwFVF, BOOL bIncludeTextures)
void EmuExecutePushBuffer
(
XTL::X_D3DPushBuffer *pPushBuffer,
XTL::X_D3DFixup *pFixup
xbox::X_D3DPushBuffer *pPushBuffer,
xbox::X_D3DFixup *pFixup
)
{
//Check whether Fixup exists or not.
if (pFixup != xbnullptr) {
if (pFixup != xbox::zeroptr) {
LOG_TEST_CASE("PushBuffer has fixups");
//Interpret address of PushBuffer Data and Fixup Data
UINT8* pPushBufferData = (UINT8*)pPushBuffer->Data;
@ -238,7 +238,7 @@ void HLE_draw_inline_array(NV2AState *d)
UINT VertexCount = (pg->inline_array_length * sizeof(DWORD)) / dwVertexStride;
CxbxDrawContext DrawContext = {};
DrawContext.XboxPrimitiveType = (XTL::X_D3DPRIMITIVETYPE)pg->primitive_mode;
DrawContext.XboxPrimitiveType = (xbox::X_D3DPRIMITIVETYPE)pg->primitive_mode;
DrawContext.dwVertexCount = VertexCount;
DrawContext.pXboxVertexStreamZeroData = pg->inline_array;
DrawContext.uiXboxVertexStreamZeroStride = dwVertexStride;
@ -256,7 +256,7 @@ void HLE_draw_inline_elements(NV2AState *d)
unsigned int uiIndexCount = pg->inline_elements_length;
CxbxDrawContext DrawContext = {};
DrawContext.XboxPrimitiveType = (XTL::X_D3DPRIMITIVETYPE)pg->primitive_mode;
DrawContext.XboxPrimitiveType = (xbox::X_D3DPRIMITIVETYPE)pg->primitive_mode;
DrawContext.dwVertexCount = uiIndexCount;
DrawContext.pXboxIndexData = d->pgraph.inline_elements;
@ -468,13 +468,13 @@ extern void EmuExecutePushBufferRaw
// DMA Pusher state -- see https://envytools.readthedocs.io/en/latest/hw/fifo/dma-pusher.html#pusher-state
#if 0
static xbaddr dma_pushbuffer; // the pushbuffer and IB DMA object
static xbox::addr dma_pushbuffer; // the pushbuffer and IB DMA object
#endif
uint32_t *dma_limit; // pushbuffer size limit
uint32_t *dma_put; // pushbuffer current end address
uint32_t *dma_get; //pushbuffer current read address
struct {
XTL::NV2AMETHOD mthd; // Current method
xbox::NV2AMETHOD mthd; // Current method
uint32_t subc; // :3 = Current subchannel
uint32_t mcnt; // :24 = Current method count
bool ni; // Current command's NI (non-increasing) flag
@ -497,8 +497,8 @@ extern void EmuExecutePushBufferRaw
};
// Initialize working variables
dma_limit = (uint32_t*)((xbaddr)pPushData + uSizeInBytes); // TODO : If this an absolute addresss?
dma_put = (uint32_t*)((xbaddr)pPushData + uSizeInBytes);
dma_limit = (uint32_t*)((xbox::addr)pPushData + uSizeInBytes); // TODO : If this an absolute addresss?
dma_put = (uint32_t*)((xbox::addr)pPushData + uSizeInBytes);
dma_get = (uint32_t*)pPushData;
dma_state = {};

View File

@ -35,8 +35,8 @@ extern void CxbxDrawPrimitiveUP(CxbxDrawContext &DrawContext);
extern void EmuExecutePushBuffer
(
XTL::X_D3DPushBuffer *pPushBuffer,
XTL::X_D3DFixup *pFixup
xbox::X_D3DPushBuffer *pPushBuffer,
xbox::X_D3DFixup *pFixup
);
extern void EmuExecutePushBufferRaw

View File

@ -45,7 +45,7 @@
#define MAX_STREAM_NOT_USED_TIME (2 * CLOCKS_PER_SEC) // TODO: Trim the not used time
// Inline vertex buffer emulation
extern XTL::X_D3DPRIMITIVETYPE g_InlineVertexBuffer_PrimitiveType = XTL::X_D3DPT_INVALID;
extern xbox::X_D3DPRIMITIVETYPE g_InlineVertexBuffer_PrimitiveType = xbox::X_D3DPT_INVALID;
extern DWORD g_InlineVertexBuffer_FVF = 0;
extern struct _D3DIVB *g_InlineVertexBuffer_Table = nullptr;
extern UINT g_InlineVertexBuffer_TableLength = 0;
@ -57,16 +57,16 @@ UINT g_InlineVertexBuffer_DataSize = 0;
extern DWORD g_dwPrimPerFrame = 0;
// Copy of active Xbox D3D Vertex Streams (and strides), set by [D3DDevice|CxbxImpl]_SetStreamSource*
XTL::X_STREAMINPUT g_Xbox_SetStreamSource[X_VSH_MAX_STREAMS] = { 0 }; // Note : .Offset member is never set (so always 0)
xbox::X_STREAMINPUT g_Xbox_SetStreamSource[X_VSH_MAX_STREAMS] = { 0 }; // Note : .Offset member is never set (so always 0)
extern XTL::X_D3DSurface* g_pXbox_RenderTarget;
extern XTL::X_D3DSurface* g_pXbox_BackBufferSurface;
extern XTL::X_D3DMULTISAMPLE_TYPE g_Xbox_MultiSampleType;
extern xbox::X_D3DSurface* g_pXbox_RenderTarget;
extern xbox::X_D3DSurface* g_pXbox_BackBufferSurface;
extern xbox::X_D3DMULTISAMPLE_TYPE g_Xbox_MultiSampleType;
void *GetDataFromXboxResource(XTL::X_D3DResource *pXboxResource);
void *GetDataFromXboxResource(xbox::X_D3DResource *pXboxResource);
bool GetHostRenderTargetDimensions(DWORD* pHostWidth, DWORD* pHostHeight, IDirect3DSurface* pHostRenderTarget = nullptr);
uint32_t GetPixelContainerWidth(XTL::X_D3DPixelContainer* pPixelContainer);
uint32_t GetPixelContainerHeight(XTL::X_D3DPixelContainer* pPixelContainer);
uint32_t GetPixelContainerWidth(xbox::X_D3DPixelContainer* pPixelContainer);
uint32_t GetPixelContainerHeight(xbox::X_D3DPixelContainer* pPixelContainer);
void ApplyXboxMultiSampleOffsetAndScale(float& x, float& y);
void CxbxPatchedStream::Activate(CxbxDrawContext *pDrawContext, UINT uiStream) const
@ -123,7 +123,7 @@ int CountActiveD3DStreams()
{
int lastStreamIndex = 0;
for (int i = 0; i < X_VSH_MAX_STREAMS; i++) {
if (g_Xbox_SetStreamSource[i].VertexBuffer != xbnullptr) {
if (g_Xbox_SetStreamSource[i].VertexBuffer != xbox::zeroptr) {
lastStreamIndex = i + 1;
}
}
@ -136,7 +136,7 @@ CxbxVertexDeclaration *GetCxbxVertexDeclaration(DWORD XboxVertexShaderHandle); /
UINT CxbxVertexBufferConverter::GetNbrStreams(CxbxDrawContext *pDrawContext)
{
// Draw..Up always have one stream
if (pDrawContext->pXboxVertexStreamZeroData != xbnullptr) {
if (pDrawContext->pXboxVertexStreamZeroData != xbox::zeroptr) {
return 1;
}
@ -228,26 +228,26 @@ void CxbxVertexBufferConverter::ConvertStream
DWORD XboxFVF = bVshHandleIsFVF ? g_Xbox_VertexShader_Handle : 0;
// Texture normalization can only be set for FVF shaders
bool bNeedTextureNormalization = false;
struct { int NrTexCoords; bool bTexIsLinear; int Width; int Height; int Depth; } pActivePixelContainer[XTL::X_D3DTS_STAGECOUNT] = { 0 };
struct { int NrTexCoords; bool bTexIsLinear; int Width; int Height; int Depth; } pActivePixelContainer[xbox::X_D3DTS_STAGECOUNT] = { 0 };
if (bVshHandleIsFVF) {
DWORD dwTexN = (XboxFVF & D3DFVF_TEXCOUNT_MASK) >> D3DFVF_TEXCOUNT_SHIFT;
if (dwTexN > XTL::X_D3DTS_STAGECOUNT) {
if (dwTexN > xbox::X_D3DTS_STAGECOUNT) {
LOG_TEST_CASE("FVF,dwTexN > X_D3DTS_STAGECOUNT");
}
// Check for active linear textures.
//X_D3DBaseTexture *pLinearBaseTexture[XTL::X_D3DTS_STAGECOUNT];
for (unsigned int i = 0; i < XTL::X_D3DTS_STAGECOUNT; i++) {
//X_D3DBaseTexture *pLinearBaseTexture[xbox::X_D3DTS_STAGECOUNT];
for (unsigned int i = 0; i < xbox::X_D3DTS_STAGECOUNT; i++) {
// Only normalize coordinates used by the FVF shader :
if (i + 1 <= dwTexN) {
pActivePixelContainer[i].NrTexCoords = DxbxFVF_GetNumberOfTextureCoordinates(XboxFVF, i);
// TODO : Use GetXboxBaseTexture()
XTL::X_D3DBaseTexture *pXboxBaseTexture = g_pXbox_SetTexture[i];
if (pXboxBaseTexture != xbnullptr) {
extern XTL::X_D3DFORMAT GetXboxPixelContainerFormat(const XTL::X_D3DPixelContainer *pXboxPixelContainer); // TODO : Move to XTL-independent header file
xbox::X_D3DBaseTexture *pXboxBaseTexture = g_pXbox_SetTexture[i];
if (pXboxBaseTexture != xbox::zeroptr) {
extern xbox::X_D3DFORMAT GetXboxPixelContainerFormat(const xbox::X_D3DPixelContainer *pXboxPixelContainer); // TODO : Move to XTL-independent header file
XTL::X_D3DFORMAT XboxFormat = GetXboxPixelContainerFormat(pXboxBaseTexture);
xbox::X_D3DFORMAT XboxFormat = GetXboxPixelContainerFormat(pXboxBaseTexture);
if (EmuXBFormatIsLinear(XboxFormat)) {
// This is often hit by the help screen in XDK samples.
bNeedTextureNormalization = true;
@ -277,7 +277,7 @@ void CxbxVertexBufferConverter::ConvertStream
bool bNeedRHWReset = bVshHandleIsFVF && ((XboxFVF & D3DFVF_POSITION_MASK) == D3DFVF_XYZRHW);
bool bNeedStreamCopy = bNeedTextureNormalization || bNeedVertexPatching || bNeedRHWReset;
uint8_t *pXboxVertexData = xbnullptr;
uint8_t *pXboxVertexData = xbox::zeroptr;
UINT uiXboxVertexStride = 0;
UINT uiVertexCount = 0;
UINT uiHostVertexStride = 0;
@ -285,7 +285,7 @@ void CxbxVertexBufferConverter::ConvertStream
uint8_t *pHostVertexData = nullptr;
IDirect3DVertexBuffer *pNewHostVertexBuffer = nullptr;
if (pDrawContext->pXboxVertexStreamZeroData != xbnullptr) {
if (pDrawContext->pXboxVertexStreamZeroData != xbox::zeroptr) {
// There should only be one stream (stream zero) in this case
if (uiStream != 0) {
CxbxKrnlCleanup("Trying to patch a Draw..UP with more than stream zero!");
@ -297,9 +297,9 @@ void CxbxVertexBufferConverter::ConvertStream
uiHostVertexStride = (bNeedVertexPatching) ? pVertexShaderStreamInfo->HostVertexStride : uiXboxVertexStride;
dwHostVertexDataSize = uiVertexCount * uiHostVertexStride;
} else {
XTL::X_D3DVertexBuffer *pXboxVertexBuffer = g_Xbox_SetStreamSource[uiStream].VertexBuffer;
xbox::X_D3DVertexBuffer *pXboxVertexBuffer = g_Xbox_SetStreamSource[uiStream].VertexBuffer;
pXboxVertexData = (uint8_t*)GetDataFromXboxResource(pXboxVertexBuffer);
if (pXboxVertexData == xbnullptr) {
if (pXboxVertexData == xbox::zeroptr) {
HRESULT hRet = g_pD3DDevice->SetStreamSource(
uiStream,
nullptr,
@ -329,7 +329,7 @@ void CxbxVertexBufferConverter::ConvertStream
// FAST PATH: If this draw is a zerostream based draw, and does not require patching, we can use it directly
// No need to hash or patch at all in this case!
if (pDrawContext->pXboxVertexStreamZeroData != xbnullptr && !bNeedStreamCopy) {
if (pDrawContext->pXboxVertexStreamZeroData != xbox::zeroptr && !bNeedStreamCopy) {
pHostVertexData = pXboxVertexData;
CxbxPatchedStream stream;
@ -392,7 +392,7 @@ void CxbxVertexBufferConverter::ConvertStream
}
// Allocate new buffers
if (pDrawContext->pXboxVertexStreamZeroData != xbnullptr) {
if (pDrawContext->pXboxVertexStreamZeroData != xbox::zeroptr) {
pHostVertexData = (uint8_t*)malloc(dwHostVertexDataSize);
if (pHostVertexData == nullptr) {
@ -434,7 +434,7 @@ void CxbxVertexBufferConverter::ConvertStream
// Dxbx note : The following code handles only the D3DVSDT enums that need conversion;
// All other cases are catched by the memcpy in the default-block.
switch (pVertexShaderStreamInfo->VertexElements[uiElement].XboxType) {
case XTL::X_D3DVSDT_NORMSHORT1: { // 0x11:
case xbox::X_D3DVSDT_NORMSHORT1: { // 0x11:
// Test-cases : Halo - Combat Evolved
if (g_D3DCaps.DeclTypes & D3DDTCAPS_SHORT2N) {
// Make it SHORT2N
@ -449,7 +449,7 @@ void CxbxVertexBufferConverter::ConvertStream
}
break;
}
case XTL::X_D3DVSDT_NORMSHORT2: { // 0x21:
case xbox::X_D3DVSDT_NORMSHORT2: { // 0x21:
// Test-cases : Baldur's Gate: Dark Alliance 2, F1 2002, Gun, Halo - Combat Evolved, Scrapland
if (g_D3DCaps.DeclTypes & D3DDTCAPS_SHORT2N) {
// No need for patching when D3D9 supports D3DDECLTYPE_SHORT2N
@ -467,7 +467,7 @@ void CxbxVertexBufferConverter::ConvertStream
}
break;
}
case XTL::X_D3DVSDT_NORMSHORT3: { // 0x31:
case xbox::X_D3DVSDT_NORMSHORT3: { // 0x31:
// Test-cases : Cel Damage, Constantine, Destroy All Humans!
if (g_D3DCaps.DeclTypes & D3DDTCAPS_SHORT4N) {
// Make it SHORT4N
@ -485,7 +485,7 @@ void CxbxVertexBufferConverter::ConvertStream
}
break;
}
case XTL::X_D3DVSDT_NORMSHORT4: { // 0x41:
case xbox::X_D3DVSDT_NORMSHORT4: { // 0x41:
// Test-cases : Judge Dredd: Dredd vs Death, NHL Hitz 2002, Silent Hill 2, Sneakers, Tony Hawk Pro Skater 4
if (g_D3DCaps.DeclTypes & D3DDTCAPS_SHORT4N) {
// No need for patching when D3D9 supports D3DDECLTYPE_SHORT4N
@ -507,7 +507,7 @@ void CxbxVertexBufferConverter::ConvertStream
}
break;
}
case XTL::X_D3DVSDT_NORMPACKED3: { // 0x16:
case xbox::X_D3DVSDT_NORMPACKED3: { // 0x16:
// Test-cases : Dashboard
// Make it FLOAT3
union {
@ -526,13 +526,13 @@ void CxbxVertexBufferConverter::ConvertStream
pHostVertexAsFloat[2] = PackedIntToFloat(NormPacked3.z, 511.0f, 512.f);
break;
}
case XTL::X_D3DVSDT_SHORT1: { // 0x15:
case xbox::X_D3DVSDT_SHORT1: { // 0x15:
// Make it SHORT2 and set the second short to 0
pHostVertexAsShort[0] = pXboxVertexAsShort[0];
pHostVertexAsShort[1] = 0;
break;
}
case XTL::X_D3DVSDT_SHORT3: { // 0x35:
case xbox::X_D3DVSDT_SHORT3: { // 0x35:
// Test-cases : Turok
// Make it a SHORT4 and set the fourth short to 1
pHostVertexAsShort[0] = pXboxVertexAsShort[0];
@ -541,7 +541,7 @@ void CxbxVertexBufferConverter::ConvertStream
pHostVertexAsShort[3] = 1; // Turok verified (character disappears when this is 32767)
break;
}
case XTL::X_D3DVSDT_PBYTE1: { // 0x14:
case xbox::X_D3DVSDT_PBYTE1: { // 0x14:
if (g_D3DCaps.DeclTypes & D3DDTCAPS_UBYTE4N) {
// Make it UBYTE4N
pHostVertexAsByte[0] = pXboxVertexAsByte[0];
@ -556,7 +556,7 @@ void CxbxVertexBufferConverter::ConvertStream
}
break;
}
case XTL::X_D3DVSDT_PBYTE2: { // 0x24:
case xbox::X_D3DVSDT_PBYTE2: { // 0x24:
if (g_D3DCaps.DeclTypes & D3DDTCAPS_UBYTE4N) {
// Make it UBYTE4N
pHostVertexAsByte[0] = pXboxVertexAsByte[0];
@ -572,7 +572,7 @@ void CxbxVertexBufferConverter::ConvertStream
}
break;
}
case XTL::X_D3DVSDT_PBYTE3: { // 0x34:
case xbox::X_D3DVSDT_PBYTE3: { // 0x34:
// Test-cases : Turok
if (g_D3DCaps.DeclTypes & D3DDTCAPS_UBYTE4N) {
// Make it UBYTE4N
@ -590,7 +590,7 @@ void CxbxVertexBufferConverter::ConvertStream
}
break;
}
case XTL::X_D3DVSDT_PBYTE4: { // 0x44:
case xbox::X_D3DVSDT_PBYTE4: { // 0x44:
// Test-case : Jet Set Radio Future
if (g_D3DCaps.DeclTypes & D3DDTCAPS_UBYTE4N) {
// No need for patching when D3D9 supports D3DDECLTYPE_UBYTE4N
@ -612,7 +612,7 @@ void CxbxVertexBufferConverter::ConvertStream
}
break;
}
case XTL::X_D3DVSDT_FLOAT2H: { // 0x72:
case xbox::X_D3DVSDT_FLOAT2H: { // 0x72:
// Make it FLOAT4 and set the third float to 0.0
pHostVertexAsFloat[0] = pXboxVertexAsFloat[0];
pHostVertexAsFloat[1] = pXboxVertexAsFloat[1];
@ -620,7 +620,7 @@ void CxbxVertexBufferConverter::ConvertStream
pHostVertexAsFloat[3] = pXboxVertexAsFloat[2];
break;
}
case XTL::X_D3DVSDT_NONE: { // 0x02:
case xbox::X_D3DVSDT_NONE: { // 0x02:
// Test-case : WWE RAW2
// Test-case : PetitCopter
LOG_TEST_CASE("X_D3DVSDT_NONE");
@ -665,7 +665,7 @@ void CxbxVertexBufferConverter::ConvertStream
}
// If for some reason the Xbox Render Target is not set, fallback to the backbuffer
if (g_pXbox_RenderTarget == xbnullptr) {
if (g_pXbox_RenderTarget == xbox::zeroptr) {
LOG_TEST_CASE("SetRenderTarget fallback to backbuffer");
g_pXbox_RenderTarget = g_pXbox_BackBufferSurface;
}
@ -678,7 +678,7 @@ void CxbxVertexBufferConverter::ConvertStream
HostRenderTarget_Height = XboxRenderTarget_Height;
}
bool bNeedRHWTransform = (g_Xbox_MultiSampleType > XTL::X_D3DMULTISAMPLE_NONE) || (XboxRenderTarget_Width < HostRenderTarget_Width && XboxRenderTarget_Height < HostRenderTarget_Height);
bool bNeedRHWTransform = (g_Xbox_MultiSampleType > xbox::X_D3DMULTISAMPLE_NONE) || (XboxRenderTarget_Width < HostRenderTarget_Width && XboxRenderTarget_Height < HostRenderTarget_Height);
for (uint32_t uiVertex = 0; uiVertex < uiVertexCount; uiVertex++) {
FLOAT *pVertexDataAsFloat = (FLOAT*)(&pHostVertexData[uiVertex * uiHostVertexStride]);
@ -713,7 +713,7 @@ void CxbxVertexBufferConverter::ConvertStream
// Normalize texture coordinates in FVF stream if needed
if (uiTextureCoordinatesByteOffsetInVertex > 0) { // implies bNeedTextureNormalization (using one is more efficient than both)
FLOAT *pVertexUVData = (FLOAT*)((uintptr_t)pVertexDataAsFloat + uiTextureCoordinatesByteOffsetInVertex);
for (unsigned int i = 0; i < XTL::X_D3DTS_STAGECOUNT; i++) {
for (unsigned int i = 0; i < xbox::X_D3DTS_STAGECOUNT; i++) {
if (pActivePixelContainer[i].bTexIsLinear) {
switch (pActivePixelContainer[i].NrTexCoords) {
case 0:
@ -754,7 +754,7 @@ void CxbxVertexBufferConverter::ConvertStream
patchedStream.uiVertexStreamInformationHash = pVertexShaderSteamInfoHash;
patchedStream.uiCachedXboxVertexStride = uiXboxVertexStride;
patchedStream.uiCachedHostVertexStride = uiHostVertexStride;
patchedStream.bCacheIsStreamZeroDrawUP = (pDrawContext->pXboxVertexStreamZeroData != xbnullptr);
patchedStream.bCacheIsStreamZeroDrawUP = (pDrawContext->pXboxVertexStreamZeroData != xbox::zeroptr);
if (patchedStream.bCacheIsStreamZeroDrawUP) {
patchedStream.pCachedHostVertexStreamZeroData = pHostVertexData;
patchedStream.bCachedHostVertexStreamZeroDataIsAllocated = bNeedStreamCopy;
@ -769,7 +769,7 @@ void CxbxVertexBufferConverter::ConvertStream
void CxbxVertexBufferConverter::Apply(CxbxDrawContext *pDrawContext)
{
if ((pDrawContext->XboxPrimitiveType < XTL::X_D3DPT_POINTLIST) || (pDrawContext->XboxPrimitiveType > XTL::X_D3DPT_POLYGON))
if ((pDrawContext->XboxPrimitiveType < xbox::X_D3DPT_POINTLIST) || (pDrawContext->XboxPrimitiveType > xbox::X_D3DPT_POLYGON))
CxbxKrnlCleanup("Unknown primitive type: 0x%.02X\n", pDrawContext->XboxPrimitiveType);
m_pCxbxVertexDeclaration = nullptr;
@ -807,7 +807,7 @@ void CxbxVertexBufferConverter::Apply(CxbxDrawContext *pDrawContext)
ConvertStream(pDrawContext, uiStream);
}
if (pDrawContext->XboxPrimitiveType == XTL::X_D3DPT_QUADSTRIP) {
if (pDrawContext->XboxPrimitiveType == xbox::X_D3DPT_QUADSTRIP) {
// Quad strip is just like a triangle strip, but requires two vertices per primitive.
// A quadstrip starts with 4 vertices and adds 2 vertices per additional quad.
// This is much like a trianglestrip, which starts with 3 vertices and adds
@ -818,12 +818,12 @@ void CxbxVertexBufferConverter::Apply(CxbxDrawContext *pDrawContext)
// handled by d3d :
// Test-case : XDK Samples (FocusBlur, MotionBlur, Trees, PaintEffect, PlayField)
// No need to set : pDrawContext->XboxPrimitiveType = X_D3DPT_TRIANGLESTRIP;
pDrawContext->dwHostPrimitiveCount = ConvertXboxVertexCountToPrimitiveCount(XTL::X_D3DPT_TRIANGLESTRIP, pDrawContext->dwVertexCount);
pDrawContext->dwHostPrimitiveCount = ConvertXboxVertexCountToPrimitiveCount(xbox::X_D3DPT_TRIANGLESTRIP, pDrawContext->dwVertexCount);
} else {
pDrawContext->dwHostPrimitiveCount = ConvertXboxVertexCountToPrimitiveCount(pDrawContext->XboxPrimitiveType, pDrawContext->dwVertexCount);
}
if (pDrawContext->XboxPrimitiveType == XTL::X_D3DPT_POLYGON) {
if (pDrawContext->XboxPrimitiveType == xbox::X_D3DPT_POLYGON) {
// Convex polygon is the same as a triangle fan.
// No need to set : pDrawContext->XboxPrimitiveType = X_D3DPT_TRIANGLEFAN;
// Test-case : Panzer Dragoon ORTA (when entering in-game)
@ -865,7 +865,7 @@ VOID EmuFlushIVB()
DWORD dwPos = dwCurFVF & D3DFVF_POSITION_MASK;
DWORD dwTexN = (dwCurFVF & D3DFVF_TEXCOUNT_MASK) >> D3DFVF_TEXCOUNT_SHIFT;
size_t TexSize[XTL::X_D3DTS_STAGECOUNT]; // Xbox supports up to 4 textures
size_t TexSize[xbox::X_D3DTS_STAGECOUNT]; // Xbox supports up to 4 textures
for (unsigned int i = 0; i < dwTexN; i++) {
TexSize[i] = DxbxFVF_GetNumberOfTextureCoordinates(dwCurFVF, i);
@ -1003,9 +1003,9 @@ VOID EmuFlushIVB()
g_InlineVertexBuffer_TableOffset = 0; // Might not be needed (also cleared in D3DDevice_Begin)
}
void CxbxImpl_SetStreamSource(UINT StreamNumber, XTL::X_D3DVertexBuffer* pStreamData, UINT Stride)
void CxbxImpl_SetStreamSource(UINT StreamNumber, xbox::X_D3DVertexBuffer* pStreamData, UINT Stride)
{
if (pStreamData != xbnullptr && Stride == 0) {
if (pStreamData != xbox::zeroptr && Stride == 0) {
LOG_TEST_CASE("CxbxImpl_SetStreamSource : Stream assigned, and stride set to 0 (might be okay)");
}

View File

@ -34,7 +34,7 @@
typedef struct _CxbxDrawContext
{
IN XTL::X_D3DPRIMITIVETYPE XboxPrimitiveType;
IN xbox::X_D3DPRIMITIVETYPE XboxPrimitiveType;
IN DWORD dwVertexCount;
IN DWORD dwStartVertex; // Only D3DDevice_DrawVertices sets this (potentially higher than default 0)
IN PWORD pXboxIndexData; // Set by D3DDevice_DrawIndexedVertices, D3DDevice_DrawIndexedVerticesUP and HLE_draw_inline_elements
@ -58,8 +58,8 @@ public:
~CxbxPatchedStream();
void Activate(CxbxDrawContext *pDrawContext, UINT uiStream) const;
bool isValid = false;
XTL::X_D3DPRIMITIVETYPE XboxPrimitiveType = XTL::X_D3DPT_NONE;
PVOID pCachedXboxVertexData = xbnullptr;
xbox::X_D3DPRIMITIVETYPE XboxPrimitiveType = xbox::X_D3DPT_NONE;
PVOID pCachedXboxVertexData = xbox::zeroptr;
UINT uiCachedXboxVertexDataSize = 0;
uint64_t uiVertexDataHash = 0;
uint64_t uiVertexStreamInformationHash = 0;
@ -100,7 +100,7 @@ class CxbxVertexBufferConverter
};
// inline vertex buffer emulation
extern XTL::X_D3DPRIMITIVETYPE g_InlineVertexBuffer_PrimitiveType;
extern xbox::X_D3DPRIMITIVETYPE g_InlineVertexBuffer_PrimitiveType;
extern DWORD g_InlineVertexBuffer_FVF;
extern struct _D3DIVB

View File

@ -365,46 +365,46 @@ private:
switch (VertexRegister)
{
case (DWORD)XTL::X_D3DVSDE_VERTEX: // -1
case (DWORD)xbox::X_D3DVSDE_VERTEX: // -1
PCRegisterType = D3DDECLUSAGE_UNSUPPORTED;
break;
case XTL::X_D3DVSDE_POSITION: // 0
case xbox::X_D3DVSDE_POSITION: // 0
PCRegisterType = D3DDECLUSAGE_POSITION;
break;
case XTL::X_D3DVSDE_BLENDWEIGHT: // 1
case xbox::X_D3DVSDE_BLENDWEIGHT: // 1
PCRegisterType = D3DDECLUSAGE_BLENDWEIGHT;
break;
case XTL::X_D3DVSDE_NORMAL: // 2
case xbox::X_D3DVSDE_NORMAL: // 2
PCRegisterType = D3DDECLUSAGE_NORMAL;
break;
case XTL::X_D3DVSDE_DIFFUSE: // 3
case xbox::X_D3DVSDE_DIFFUSE: // 3
PCRegisterType = D3DDECLUSAGE_COLOR; PCUsageIndex = 0;
break;
case XTL::X_D3DVSDE_SPECULAR: // 4
case xbox::X_D3DVSDE_SPECULAR: // 4
PCRegisterType = D3DDECLUSAGE_COLOR; PCUsageIndex = 1;
break;
case XTL::X_D3DVSDE_FOG: // 5
case xbox::X_D3DVSDE_FOG: // 5
PCRegisterType = D3DDECLUSAGE_FOG;
break;
case XTL::X_D3DVSDE_POINTSIZE: // 6
case xbox::X_D3DVSDE_POINTSIZE: // 6
PCRegisterType = D3DDECLUSAGE_PSIZE;
break;
case XTL::X_D3DVSDE_BACKDIFFUSE: // 7
case xbox::X_D3DVSDE_BACKDIFFUSE: // 7
PCRegisterType = D3DDECLUSAGE_COLOR; PCUsageIndex = 2;
break;
case XTL::X_D3DVSDE_BACKSPECULAR: // 8
case xbox::X_D3DVSDE_BACKSPECULAR: // 8
PCRegisterType = D3DDECLUSAGE_COLOR; PCUsageIndex = 3;
break;
case XTL::X_D3DVSDE_TEXCOORD0: // 9
case xbox::X_D3DVSDE_TEXCOORD0: // 9
PCRegisterType = D3DDECLUSAGE_TEXCOORD; PCUsageIndex = 0;
break;
case XTL::X_D3DVSDE_TEXCOORD1: // 10
case xbox::X_D3DVSDE_TEXCOORD1: // 10
PCRegisterType = D3DDECLUSAGE_TEXCOORD; PCUsageIndex = 1;
break;
case XTL::X_D3DVSDE_TEXCOORD2: // 11
case xbox::X_D3DVSDE_TEXCOORD2: // 11
PCRegisterType = D3DDECLUSAGE_TEXCOORD; PCUsageIndex = 2;
break;
case XTL::X_D3DVSDE_TEXCOORD3: // 12
case xbox::X_D3DVSDE_TEXCOORD3: // 12
PCRegisterType = D3DDECLUSAGE_TEXCOORD; PCUsageIndex = 3;
break;
default:
@ -419,33 +419,33 @@ private:
{
switch (VertexRegister)
{
case (DWORD)XTL::X_D3DVSDE_VERTEX: // -1
case (DWORD)xbox::X_D3DVSDE_VERTEX: // -1
return "D3DVSDE_VERTEX /* xbox ext. */";
case XTL::X_D3DVSDE_POSITION: // 0
case xbox::X_D3DVSDE_POSITION: // 0
return "D3DVSDE_POSITION";
case XTL::X_D3DVSDE_BLENDWEIGHT: // 1
case xbox::X_D3DVSDE_BLENDWEIGHT: // 1
return "D3DVSDE_BLENDWEIGHT";
case XTL::X_D3DVSDE_NORMAL: // 2
case xbox::X_D3DVSDE_NORMAL: // 2
return "D3DVSDE_NORMAL";
case XTL::X_D3DVSDE_DIFFUSE: // 3
case xbox::X_D3DVSDE_DIFFUSE: // 3
return "D3DVSDE_DIFFUSE";
case XTL::X_D3DVSDE_SPECULAR: // 4
case xbox::X_D3DVSDE_SPECULAR: // 4
return "D3DVSDE_SPECULAR";
case XTL::X_D3DVSDE_FOG: // 5
case xbox::X_D3DVSDE_FOG: // 5
return "D3DVSDE_FOG";
case XTL::X_D3DVSDE_POINTSIZE: // 6
case xbox::X_D3DVSDE_POINTSIZE: // 6
return "D3DVDSE_POINTSIZE";
case XTL::X_D3DVSDE_BACKDIFFUSE: // 7
case xbox::X_D3DVSDE_BACKDIFFUSE: // 7
return "D3DVSDE_BACKDIFFUSE /* xbox ext. */";
case XTL::X_D3DVSDE_BACKSPECULAR: // 8
case xbox::X_D3DVSDE_BACKSPECULAR: // 8
return "D3DVSDE_BACKSPECULAR /* xbox ext. */";
case XTL::X_D3DVSDE_TEXCOORD0: // 9
case xbox::X_D3DVSDE_TEXCOORD0: // 9
return "D3DVSDE_TEXCOORD0";
case XTL::X_D3DVSDE_TEXCOORD1: // 10
case xbox::X_D3DVSDE_TEXCOORD1: // 10
return "D3DVSDE_TEXCOORD1";
case XTL::X_D3DVSDE_TEXCOORD2: // 11
case xbox::X_D3DVSDE_TEXCOORD2: // 11
return "D3DVSDE_TEXCOORD2";
case XTL::X_D3DVSDE_TEXCOORD3: // 12
case xbox::X_D3DVSDE_TEXCOORD3: // 12
return "D3DVSDE_TEXCOORD3";
case 13:
return "13 /* unknown register */";
@ -504,11 +504,11 @@ private:
DWORD Step = 1;
switch (VshGetTokenType(*pXboxToken)) {
case XTL::X_D3DVSD_TOKEN_NOP: {
case xbox::X_D3DVSD_TOKEN_NOP: {
DbgVshPrintf("\tD3DVSD_NOP(),\n");
break;
}
case XTL::X_D3DVSD_TOKEN_STREAM: {
case xbox::X_D3DVSD_TOKEN_STREAM: {
if (*pXboxToken & X_D3DVSD_STREAMTESSMASK) {
DbgVshPrintf("\tD3DVSD_STREAM_TESS(),\n");
} else {
@ -522,7 +522,7 @@ private:
}
break;
}
case XTL::X_D3DVSD_TOKEN_STREAMDATA: {
case xbox::X_D3DVSD_TOKEN_STREAMDATA: {
if (*pXboxToken & X_D3DVSD_MASK_SKIP) {
WORD SkipCount = (*pXboxToken & X_D3DVSD_SKIPCOUNTMASK) >> X_D3DVSD_SKIPCOUNTSHIFT;
if (*pXboxToken & X_D3DVSD_MASK_SKIPBYTES) {
@ -540,32 +540,32 @@ private:
DWORD XboxVertexElementDataType = (*pXboxToken & X_D3DVSD_DATATYPEMASK) >> X_D3DVSD_DATATYPESHIFT;
switch (XboxVertexElementDataType) {
case XTL::X_D3DVSDT_FLOAT1: // 0x12:
case xbox::X_D3DVSDT_FLOAT1: // 0x12:
DbgVshPrintf("D3DVSDT_FLOAT1");
break;
case XTL::X_D3DVSDT_FLOAT2: // 0x22:
case xbox::X_D3DVSDT_FLOAT2: // 0x22:
DbgVshPrintf("D3DVSDT_FLOAT2");
break;
case XTL::X_D3DVSDT_FLOAT3: // 0x32:
case xbox::X_D3DVSDT_FLOAT3: // 0x32:
DbgVshPrintf("D3DVSDT_FLOAT3");
break;
case XTL::X_D3DVSDT_FLOAT4: // 0x42:
case xbox::X_D3DVSDT_FLOAT4: // 0x42:
DbgVshPrintf("D3DVSDT_FLOAT4");
break;
case XTL::X_D3DVSDT_D3DCOLOR: // 0x40:
case xbox::X_D3DVSDT_D3DCOLOR: // 0x40:
DbgVshPrintf("D3DVSDT_D3DCOLOR");
break;
case XTL::X_D3DVSDT_SHORT2: // 0x25:
case xbox::X_D3DVSDT_SHORT2: // 0x25:
DbgVshPrintf("D3DVSDT_SHORT2");
break;
case XTL::X_D3DVSDT_SHORT4: // 0x45:
case xbox::X_D3DVSDT_SHORT4: // 0x45:
DbgVshPrintf("D3DVSDT_SHORT4");
break;
case XTL::X_D3DVSDT_NORMSHORT1: // 0x11:
case xbox::X_D3DVSDT_NORMSHORT1: // 0x11:
DbgVshPrintf("D3DVSDT_NORMSHORT1 /* xbox ext. */");
bStreamNeedsPatching = true;
break;
case XTL::X_D3DVSDT_NORMSHORT2: // 0x21:
case xbox::X_D3DVSDT_NORMSHORT2: // 0x21:
if (g_D3DCaps.DeclTypes & D3DDTCAPS_SHORT2N) {
DbgVshPrintf("D3DVSDT_NORMSHORT2");
} else {
@ -573,11 +573,11 @@ private:
bStreamNeedsPatching = true;
}
break;
case XTL::X_D3DVSDT_NORMSHORT3: // 0x31:
case xbox::X_D3DVSDT_NORMSHORT3: // 0x31:
DbgVshPrintf("D3DVSDT_NORMSHORT3 /* xbox ext. */");
bStreamNeedsPatching = true;
break;
case XTL::X_D3DVSDT_NORMSHORT4: // 0x41:
case xbox::X_D3DVSDT_NORMSHORT4: // 0x41:
if (g_D3DCaps.DeclTypes & D3DDTCAPS_SHORT4N) {
DbgVshPrintf("D3DVSDT_NORMSHORT4");
// No need for patching in D3D9
@ -586,31 +586,31 @@ private:
bStreamNeedsPatching = true;
}
break;
case XTL::X_D3DVSDT_NORMPACKED3: // 0x16:
case xbox::X_D3DVSDT_NORMPACKED3: // 0x16:
DbgVshPrintf("D3DVSDT_NORMPACKED3 /* xbox ext. */");
bStreamNeedsPatching = true;
break;
case XTL::X_D3DVSDT_SHORT1: // 0x15:
case xbox::X_D3DVSDT_SHORT1: // 0x15:
DbgVshPrintf("D3DVSDT_SHORT1 /* xbox ext. */");
bStreamNeedsPatching = true;
break;
case XTL::X_D3DVSDT_SHORT3: // 0x35:
case xbox::X_D3DVSDT_SHORT3: // 0x35:
DbgVshPrintf("D3DVSDT_SHORT3 /* xbox ext. */");
bStreamNeedsPatching = true;
break;
case XTL::X_D3DVSDT_PBYTE1: // 0x14:
case xbox::X_D3DVSDT_PBYTE1: // 0x14:
DbgVshPrintf("D3DVSDT_PBYTE1 /* xbox ext. */");
bStreamNeedsPatching = true;
break;
case XTL::X_D3DVSDT_PBYTE2: // 0x24:
case xbox::X_D3DVSDT_PBYTE2: // 0x24:
DbgVshPrintf("D3DVSDT_PBYTE2 /* xbox ext. */");
bStreamNeedsPatching = true;
break;
case XTL::X_D3DVSDT_PBYTE3: // 0x34:
case xbox::X_D3DVSDT_PBYTE3: // 0x34:
DbgVshPrintf("D3DVSDT_PBYTE3 /* xbox ext. */");
bStreamNeedsPatching = true;
break;
case XTL::X_D3DVSDT_PBYTE4: // 0x44:
case xbox::X_D3DVSDT_PBYTE4: // 0x44:
if (g_D3DCaps.DeclTypes & D3DDTCAPS_UBYTE4N) {
DbgVshPrintf("D3DVSDT_PBYTE4");
} else {
@ -618,11 +618,11 @@ private:
bStreamNeedsPatching = true;
}
break;
case XTL::X_D3DVSDT_FLOAT2H: // 0x72:
case xbox::X_D3DVSDT_FLOAT2H: // 0x72:
DbgVshPrintf("D3DVSDT_FLOAT2H /* xbox ext. */");
bStreamNeedsPatching = true;
break;
case XTL::X_D3DVSDT_NONE: // 0x02:
case xbox::X_D3DVSDT_NONE: // 0x02:
DbgVshPrintf("D3DVSDT_NONE /* xbox ext. */");
break;
default:
@ -634,7 +634,7 @@ private:
};
break;
}
case XTL::X_D3DVSD_TOKEN_TESSELLATOR: {
case xbox::X_D3DVSD_TOKEN_TESSELLATOR: {
DWORD VertexRegisterOut = VshGetVertexRegister(*pXboxToken);
if (*pXboxToken & X_D3DVSD_MASK_TESSUV) {
DbgVshPrintf("\tD3DVSD_TESSUV(%s),\n", XboxVertexRegisterAsString(VertexRegisterOut));
@ -646,7 +646,7 @@ private:
}
break;
}
case XTL::X_D3DVSD_TOKEN_CONSTMEM: {
case xbox::X_D3DVSD_TOKEN_CONSTMEM: {
DWORD ConstantAddress = (*pXboxToken & X_D3DVSD_CONSTADDRESSMASK) >> X_D3DVSD_CONSTADDRESSSHIFT;
DWORD Count = (*pXboxToken & X_D3DVSD_CONSTCOUNTMASK) >> X_D3DVSD_CONSTCOUNTSHIFT;
DbgVshPrintf("\tD3DVSD_CONST(%d, %d),\n", ConstantAddress, Count);
@ -654,7 +654,7 @@ private:
Step = Count * 4 + 1;
break;
}
case XTL::X_D3DVSD_TOKEN_EXT: {
case xbox::X_D3DVSD_TOKEN_EXT: {
DWORD ExtInfo = (*pXboxToken & X_D3DVSD_EXTINFOMASK) >> X_D3DVSD_EXTINFOSHIFT;
DWORD Count = (*pXboxToken & X_D3DVSD_EXTCOUNTMASK) >> X_D3DVSD_EXTCOUNTSHIFT;
DbgVshPrintf("\tD3DVSD_EXT(%d, %d),\n", ExtInfo, Count);
@ -791,7 +791,7 @@ private:
// Register a 'skip' element, so that Xbox data will be skipped
// without increasing host stride - this does require patching :
VshConvert_RegisterVertexElement(XTL::X_D3DVSDT_NONE, SkipBytesCount, /*HostSize=*/0, /*NeedPatching=*/TRUE);
VshConvert_RegisterVertexElement(xbox::X_D3DVSDT_NONE, SkipBytesCount, /*HostSize=*/0, /*NeedPatching=*/TRUE);
}
void VshConvertToken_STREAMDATA_SKIP(DWORD *pXboxToken)
@ -835,35 +835,35 @@ private:
switch (XboxVertexElementDataType)
{
case XTL::X_D3DVSDT_FLOAT1: // 0x12:
case xbox::X_D3DVSDT_FLOAT1: // 0x12:
HostVertexElementDataType = D3DDECLTYPE_FLOAT1;
HostVertexElementByteSize = 1 * sizeof(FLOAT);
break;
case XTL::X_D3DVSDT_FLOAT2: // 0x22:
case xbox::X_D3DVSDT_FLOAT2: // 0x22:
HostVertexElementDataType = D3DDECLTYPE_FLOAT2;
HostVertexElementByteSize = 2 * sizeof(FLOAT);
break;
case XTL::X_D3DVSDT_FLOAT3: // 0x32:
case xbox::X_D3DVSDT_FLOAT3: // 0x32:
HostVertexElementDataType = D3DDECLTYPE_FLOAT3;
HostVertexElementByteSize = 3 * sizeof(FLOAT);
break;
case XTL::X_D3DVSDT_FLOAT4: // 0x42:
case xbox::X_D3DVSDT_FLOAT4: // 0x42:
HostVertexElementDataType = D3DDECLTYPE_FLOAT4;
HostVertexElementByteSize = 4 * sizeof(FLOAT);
break;
case XTL::X_D3DVSDT_D3DCOLOR: // 0x40:
case xbox::X_D3DVSDT_D3DCOLOR: // 0x40:
HostVertexElementDataType = D3DDECLTYPE_D3DCOLOR;
HostVertexElementByteSize = 1 * sizeof(D3DCOLOR);
break;
case XTL::X_D3DVSDT_SHORT2: // 0x25:
case xbox::X_D3DVSDT_SHORT2: // 0x25:
HostVertexElementDataType = D3DDECLTYPE_SHORT2;
HostVertexElementByteSize = 2 * sizeof(SHORT);
break;
case XTL::X_D3DVSDT_SHORT4: // 0x45:
case xbox::X_D3DVSDT_SHORT4: // 0x45:
HostVertexElementDataType = D3DDECLTYPE_SHORT4;
HostVertexElementByteSize = 4 * sizeof(SHORT);
break;
case XTL::X_D3DVSDT_NORMSHORT1: // 0x11:
case xbox::X_D3DVSDT_NORMSHORT1: // 0x11:
if (g_D3DCaps.DeclTypes & D3DDTCAPS_SHORT2N) {
HostVertexElementDataType = D3DDECLTYPE_SHORT2N;
HostVertexElementByteSize = 2 * sizeof(SHORT);
@ -873,10 +873,10 @@ private:
HostVertexElementDataType = D3DDECLTYPE_FLOAT1;
HostVertexElementByteSize = 1 * sizeof(FLOAT);
}
XboxVertexElementByteSize = 1 * sizeof(XTL::SHORT);
XboxVertexElementByteSize = 1 * sizeof(xbox::SHORT);
NeedPatching = TRUE;
break;
case XTL::X_D3DVSDT_NORMSHORT2: // 0x21:
case xbox::X_D3DVSDT_NORMSHORT2: // 0x21:
if (g_D3DCaps.DeclTypes & D3DDTCAPS_SHORT2N) {
HostVertexElementDataType = D3DDECLTYPE_SHORT2N;
HostVertexElementByteSize = 2 * sizeof(SHORT);
@ -886,11 +886,11 @@ private:
{
HostVertexElementDataType = D3DDECLTYPE_FLOAT2;
HostVertexElementByteSize = 2 * sizeof(FLOAT);
XboxVertexElementByteSize = 2 * sizeof(XTL::SHORT);
XboxVertexElementByteSize = 2 * sizeof(xbox::SHORT);
NeedPatching = TRUE;
}
break;
case XTL::X_D3DVSDT_NORMSHORT3: // 0x31:
case xbox::X_D3DVSDT_NORMSHORT3: // 0x31:
if (g_D3DCaps.DeclTypes & D3DDTCAPS_SHORT4N) {
HostVertexElementDataType = D3DDECLTYPE_SHORT4N;
HostVertexElementByteSize = 4 * sizeof(SHORT);
@ -900,10 +900,10 @@ private:
HostVertexElementDataType = D3DDECLTYPE_FLOAT3;
HostVertexElementByteSize = 3 * sizeof(FLOAT);
}
XboxVertexElementByteSize = 3 * sizeof(XTL::SHORT);
XboxVertexElementByteSize = 3 * sizeof(xbox::SHORT);
NeedPatching = TRUE;
break;
case XTL::X_D3DVSDT_NORMSHORT4: // 0x41:
case xbox::X_D3DVSDT_NORMSHORT4: // 0x41:
if (g_D3DCaps.DeclTypes & D3DDTCAPS_SHORT4N) {
HostVertexElementDataType = D3DDECLTYPE_SHORT4N;
HostVertexElementByteSize = 4 * sizeof(SHORT);
@ -913,29 +913,29 @@ private:
{
HostVertexElementDataType = D3DDECLTYPE_FLOAT4;
HostVertexElementByteSize = 4 * sizeof(FLOAT);
XboxVertexElementByteSize = 4 * sizeof(XTL::SHORT);
XboxVertexElementByteSize = 4 * sizeof(xbox::SHORT);
NeedPatching = TRUE;
}
break;
case XTL::X_D3DVSDT_NORMPACKED3: // 0x16:
case xbox::X_D3DVSDT_NORMPACKED3: // 0x16:
HostVertexElementDataType = D3DDECLTYPE_FLOAT3;
HostVertexElementByteSize = 3 * sizeof(FLOAT);
XboxVertexElementByteSize = 1 * sizeof(XTL::DWORD);
XboxVertexElementByteSize = 1 * sizeof(xbox::DWORD);
NeedPatching = TRUE;
break;
case XTL::X_D3DVSDT_SHORT1: // 0x15:
case xbox::X_D3DVSDT_SHORT1: // 0x15:
HostVertexElementDataType = D3DDECLTYPE_SHORT2;
HostVertexElementByteSize = 2 * sizeof(SHORT);
XboxVertexElementByteSize = 1 * sizeof(XTL::SHORT);
XboxVertexElementByteSize = 1 * sizeof(xbox::SHORT);
NeedPatching = TRUE;
break;
case XTL::X_D3DVSDT_SHORT3: // 0x35:
case xbox::X_D3DVSDT_SHORT3: // 0x35:
HostVertexElementDataType = D3DDECLTYPE_SHORT4;
HostVertexElementByteSize = 4 * sizeof(SHORT);
XboxVertexElementByteSize = 3 * sizeof(XTL::SHORT);
XboxVertexElementByteSize = 3 * sizeof(xbox::SHORT);
NeedPatching = TRUE;
break;
case XTL::X_D3DVSDT_PBYTE1: // 0x14:
case xbox::X_D3DVSDT_PBYTE1: // 0x14:
if (g_D3DCaps.DeclTypes & D3DDTCAPS_UBYTE4N) {
HostVertexElementDataType = D3DDECLTYPE_UBYTE4N;
HostVertexElementByteSize = 4 * sizeof(BYTE);
@ -945,10 +945,10 @@ private:
HostVertexElementDataType = D3DDECLTYPE_FLOAT1;
HostVertexElementByteSize = 1 * sizeof(FLOAT);
}
XboxVertexElementByteSize = 1 * sizeof(XTL::BYTE);
XboxVertexElementByteSize = 1 * sizeof(xbox::BYTE);
NeedPatching = TRUE;
break;
case XTL::X_D3DVSDT_PBYTE2: // 0x24:
case xbox::X_D3DVSDT_PBYTE2: // 0x24:
if (g_D3DCaps.DeclTypes & D3DDTCAPS_UBYTE4N) {
HostVertexElementDataType = D3DDECLTYPE_UBYTE4N;
HostVertexElementByteSize = 4 * sizeof(BYTE);
@ -958,10 +958,10 @@ private:
HostVertexElementDataType = D3DDECLTYPE_FLOAT2;
HostVertexElementByteSize = 2 * sizeof(FLOAT);
}
XboxVertexElementByteSize = 2 * sizeof(XTL::BYTE);
XboxVertexElementByteSize = 2 * sizeof(xbox::BYTE);
NeedPatching = TRUE;
break;
case XTL::X_D3DVSDT_PBYTE3: // 0x34:
case xbox::X_D3DVSDT_PBYTE3: // 0x34:
if (g_D3DCaps.DeclTypes & D3DDTCAPS_UBYTE4N) {
HostVertexElementDataType = D3DDECLTYPE_UBYTE4N;
HostVertexElementByteSize = 4 * sizeof(BYTE);
@ -971,10 +971,10 @@ private:
HostVertexElementDataType = D3DDECLTYPE_FLOAT3;
HostVertexElementByteSize = 3 * sizeof(FLOAT);
}
XboxVertexElementByteSize = 3 * sizeof(XTL::BYTE);
XboxVertexElementByteSize = 3 * sizeof(xbox::BYTE);
NeedPatching = TRUE;
break;
case XTL::X_D3DVSDT_PBYTE4: // 0x44:
case xbox::X_D3DVSDT_PBYTE4: // 0x44:
// Test-case : Panzer
if (g_D3DCaps.DeclTypes & D3DDTCAPS_UBYTE4N) {
HostVertexElementDataType = D3DDECLTYPE_UBYTE4N;
@ -985,17 +985,17 @@ private:
{
HostVertexElementDataType = D3DDECLTYPE_FLOAT4;
HostVertexElementByteSize = 4 * sizeof(FLOAT);
XboxVertexElementByteSize = 4 * sizeof(XTL::BYTE);
XboxVertexElementByteSize = 4 * sizeof(xbox::BYTE);
NeedPatching = TRUE;
}
break;
case XTL::X_D3DVSDT_FLOAT2H: // 0x72:
case xbox::X_D3DVSDT_FLOAT2H: // 0x72:
HostVertexElementDataType = D3DDECLTYPE_FLOAT4;
HostVertexElementByteSize = 4 * sizeof(FLOAT);
XboxVertexElementByteSize = 3 * sizeof(FLOAT);
NeedPatching = TRUE;
break;
case XTL::X_D3DVSDT_NONE: // 0x02:
case xbox::X_D3DVSDT_NONE: // 0x02:
// No host element data, so no patching
break;
default:
@ -1004,7 +1004,7 @@ private:
}
// On X_D3DVSDT_NONE skip this token
if (XboxVertexElementDataType == XTL::X_D3DVSDT_NONE)
if (XboxVertexElementDataType == xbox::X_D3DVSDT_NONE)
{
// Xbox elements with X_D3DVSDT_NONE have size zero, so there's no need to register those.
// Note, that for skip tokens, we DO call VshConvert_RegisterVertexElement with a X_D3DVSDT_NONE!
@ -1053,25 +1053,25 @@ private:
switch(VshGetTokenType(*pXboxToken))
{
case XTL::X_D3DVSD_TOKEN_NOP:
case xbox::X_D3DVSD_TOKEN_NOP:
VshConvertToken_NOP(pXboxToken);
break;
case XTL::X_D3DVSD_TOKEN_STREAM:
case xbox::X_D3DVSD_TOKEN_STREAM:
{
VshConvertToken_STREAM(pXboxToken);
break;
}
case XTL::X_D3DVSD_TOKEN_STREAMDATA:
case xbox::X_D3DVSD_TOKEN_STREAMDATA:
{
VshConvertToken_STREAMDATA(pXboxToken);
break;
}
case XTL::X_D3DVSD_TOKEN_TESSELLATOR:
case xbox::X_D3DVSD_TOKEN_TESSELLATOR:
{
VshConvertToken_TESSELATOR(pXboxToken);
break;
}
case XTL::X_D3DVSD_TOKEN_CONSTMEM:
case xbox::X_D3DVSD_TOKEN_CONSTMEM:
{
Step = VshConvertToken_CONSTMEM(pXboxToken);
break;
@ -1108,8 +1108,8 @@ private:
// Scan back from the end of the declaration, and replace redefinitions with nops
while (pXboxToken > pXboxDeclarationCopy) {
auto type = VshGetTokenType(*pXboxToken);
if (type == XTL::X_D3DVSD_TOKEN_STREAMDATA && !(*pXboxToken & X_D3DVSD_MASK_SKIP) ||
type == XTL::X_D3DVSD_TOKEN_TESSELLATOR)
if (type == xbox::X_D3DVSD_TOKEN_STREAMDATA && !(*pXboxToken & X_D3DVSD_MASK_SKIP) ||
type == xbox::X_D3DVSD_TOKEN_TESSELLATOR)
{
auto outputRegister = VshGetVertexRegister(*pXboxToken);
if (seen[outputRegister])
@ -1359,7 +1359,7 @@ void CxbxImpl_SetVertexShaderInput
(
DWORD Handle,
UINT StreamCount,
XTL::X_STREAMINPUT* pStreamInputs
xbox::X_STREAMINPUT* pStreamInputs
)
{
LOG_INIT
@ -1374,7 +1374,7 @@ void CxbxImpl_SetVertexShaderInput
void CxbxImpl_SelectVertexShaderDirect
(
XTL::X_VERTEXATTRIBUTEFORMAT* pVAF,
xbox::X_VERTEXATTRIBUTEFORMAT* pVAF,
DWORD Address
)
{
@ -1419,7 +1419,7 @@ void CxbxImpl_LoadVertexShaderProgram(CONST DWORD* pFunction, DWORD Address)
if (CxbxVertexShaderSlotPtr == nullptr)
return;
auto shaderHeader = *((XTL::X_VSH_SHADER_HEADER*) pFunction);
auto shaderHeader = *((xbox::X_VSH_SHADER_HEADER*) pFunction);
auto tokens = &pFunction[1];
memcpy(CxbxVertexShaderSlotPtr, tokens, shaderHeader.NumInst * X_VSH_INSTRUCTION_SIZE_BYTES);
@ -1519,7 +1519,7 @@ HRESULT CxbxImpl_CreateVertexShader(CONST DWORD *pDeclaration, CONST DWORD *pFun
// HACK: TODO: support this situation
if (pDeclaration == nullptr) {
LOG_TEST_CASE("Vertex shader without declaration");
*pHandle = xbnull;
*pHandle = xbox::zero;
return D3D_OK;
}
@ -1529,7 +1529,7 @@ HRESULT CxbxImpl_CreateVertexShader(CONST DWORD *pDeclaration, CONST DWORD *pFun
D3DVERTEXELEMENT* pRecompiledDeclaration = nullptr;
pRecompiledDeclaration = EmuRecompileVshDeclaration((DWORD*)pDeclaration,
/*bIsFixedFunction=*/pFunction == xbnullptr,
/*bIsFixedFunction=*/pFunction == xbox::zeroptr,
&XboxDeclarationCount,
&pCxbxVertexShader->Declaration);
@ -1556,7 +1556,7 @@ HRESULT CxbxImpl_CreateVertexShader(CONST DWORD *pDeclaration, CONST DWORD *pFun
memcpy(pCxbxVertexShader->Declaration.pXboxDeclarationCopy, pDeclaration, XboxDeclarationCount * sizeof(DWORD));
pCxbxVertexShader->Declaration.XboxDeclarationCount = XboxDeclarationCount;
if (pFunction != xbnullptr)
if (pFunction != xbox::zeroptr)
{
// Parse and compile the shader
DWORD xboxFunctionSize = 0;
@ -1566,7 +1566,7 @@ HRESULT CxbxImpl_CreateVertexShader(CONST DWORD *pDeclaration, CONST DWORD *pFun
pCxbxVertexShader->XboxFunctionSize = xboxFunctionSize;
pCxbxVertexShader->pXboxFunctionCopy = (DWORD*)malloc(xboxFunctionSize);
memcpy(pCxbxVertexShader->pXboxFunctionCopy, pFunction, xboxFunctionSize);
pCxbxVertexShader->XboxNrAddressSlots = (xboxFunctionSize - sizeof(XTL::X_VSH_SHADER_HEADER)) / X_VSH_INSTRUCTION_SIZE_BYTES;
pCxbxVertexShader->XboxNrAddressSlots = (xboxFunctionSize - sizeof(xbox::X_VSH_SHADER_HEADER)) / X_VSH_INSTRUCTION_SIZE_BYTES;
pCxbxVertexShader->XboxVertexShaderType = X_VST_NORMAL; // TODO : This can vary
}
@ -1582,13 +1582,13 @@ HRESULT CxbxImpl_CreateVertexShader(CONST DWORD *pDeclaration, CONST DWORD *pFun
{
char pFileName[30];
static int FailedShaderCount = 0;
XTL::X_VSH_SHADER_HEADER* pHeader = (XTL::X_VSH_SHADER_HEADER*)pFunction;
xbox::X_VSH_SHADER_HEADER* pHeader = (xbox::X_VSH_SHADER_HEADER*)pFunction;
EmuLog(LOG_LEVEL::WARNING, "Couldn't create vertex shader!");
sprintf(pFileName, "failed%05d.xvu", FailedShaderCount);
FILE* f = fopen(pFileName, "wb");
if (f)
{
fwrite(pFunction, sizeof(XTL::X_VSH_SHADER_HEADER) + pHeader->NumInst * 16, 1, f);
fwrite(pFunction, sizeof(xbox::X_VSH_SHADER_HEADER) + pHeader->NumInst * 16, 1, f);
fclose(f);
}
FailedShaderCount++;
@ -1693,7 +1693,7 @@ extern void EmuParseVshFunction
// But we can also load shader tokens directly from the Xbox vertex shader slots too
bool headerless = pXboxFunction[0] == 0; // if its a token instead of a header, first DWORD is unused
auto headerSize = headerless ? 0 : sizeof(XTL::X_VSH_SHADER_HEADER);
auto headerSize = headerless ? 0 : sizeof(xbox::X_VSH_SHADER_HEADER);
// Decode the vertex shader program tokens into an intermediate representation
uint32_t* pCurToken = (uint32_t*)((uintptr_t)pXboxFunction + headerSize);
@ -1709,7 +1709,7 @@ extern void EmuParseVshFunction
}
}
else {
pShader->Header = *(XTL::X_VSH_SHADER_HEADER*)pXboxFunction;
pShader->Header = *(xbox::X_VSH_SHADER_HEADER*)pXboxFunction;
// Decode only up to the number of instructions in the header
// The last instruction may not be marked final:
// Test case: Multiple Vertex Shaders sample

View File

@ -212,7 +212,7 @@ typedef struct _VSH_INTERMEDIATE_FORMAT {
} VSH_INTERMEDIATE_FORMAT;
typedef struct _IntermediateVertexShader {
XTL::X_VSH_SHADER_HEADER Header;
xbox::X_VSH_SHADER_HEADER Header;
std::vector<VSH_INTERMEDIATE_FORMAT> Instructions;
} IntermediateVertexShader;
@ -231,16 +231,16 @@ extern boolean IsValidCurrentShader(void);
inline boolean VshHandleIsVertexShader(DWORD Handle) { return (Handle & X_D3DFVF_RESERVED0) ? TRUE : FALSE; }
inline boolean VshHandleIsFVF(DWORD Handle) { return !VshHandleIsVertexShader(Handle); }
inline XTL::X_D3DVertexShader *VshHandleToXboxVertexShader(DWORD Handle) { return (XTL::X_D3DVertexShader *)(Handle & ~X_D3DFVF_RESERVED0);}
inline xbox::X_D3DVertexShader *VshHandleToXboxVertexShader(DWORD Handle) { return (xbox::X_D3DVertexShader *)(Handle & ~X_D3DFVF_RESERVED0);}
extern CxbxVertexShader* GetCxbxVertexShader(DWORD XboxVertexShaderHandle);
extern void CxbxImpl_LoadVertexShaderProgram(CONST DWORD* pFunction, DWORD Address);
extern void CxbxImpl_LoadVertexShader(DWORD Handle, DWORD Address);
extern void CxbxImpl_SetVertexShader(DWORD Handle);
extern void CxbxImpl_SelectVertexShaderDirect(XTL::X_VERTEXATTRIBUTEFORMAT* pVAF, DWORD Address);
extern void CxbxImpl_SelectVertexShaderDirect(xbox::X_VERTEXATTRIBUTEFORMAT* pVAF, DWORD Address);
extern void CxbxImpl_SelectVertexShader(DWORD Handle, DWORD Address);
extern void CxbxImpl_SetVertexShaderInput(DWORD Handle, UINT StreamCount, XTL::X_STREAMINPUT* pStreamInputs);
extern void CxbxImpl_SetVertexShaderInput(DWORD Handle, UINT StreamCount, xbox::X_STREAMINPUT* pStreamInputs);
extern void CxbxImpl_SetVertexShaderConstant(INT Register, PVOID pConstantData, DWORD ConstantCount);
extern HRESULT CxbxImpl_CreateVertexShader(CONST DWORD *pDeclaration, CONST DWORD *pFunction, DWORD *pHandle, DWORD Usage);
extern void CxbxImpl_DeleteVertexShader(DWORD Handle);

View File

@ -67,9 +67,9 @@ static inline void DSStream_Packet_UpdateHostBuffer(
void DSStream_Packet_Clear(
vector_hvp_iterator &buffer,
DWORD status,
XTL::LPFNXMOCALLBACK Xb_lpfnCallback,
xbox::LPFNXMOCALLBACK Xb_lpfnCallback,
LPVOID Xb_lpvContext,
XTL::X_CDirectSoundStream* pThis
xbox::X_CDirectSoundStream* pThis
)
{
@ -82,10 +82,10 @@ void DSStream_Packet_Clear(
return;
}
if (buffer->xmp_data.pdwStatus != xbnullptr) {
if (buffer->xmp_data.pdwStatus != xbox::zeroptr) {
(*buffer->xmp_data.pdwStatus) = status;
}
if (buffer->xmp_data.pdwCompletedSize != xbnullptr) {
if (buffer->xmp_data.pdwCompletedSize != xbox::zeroptr) {
(*buffer->xmp_data.pdwCompletedSize) = DSoundBufferGetXboxBufferSize(pThis->EmuFlags, buffer->xmp_data.dwMaxSize);
}
DSoundSGEMemDealloc(buffer->xmp_data.dwMaxSize);
@ -98,7 +98,7 @@ void DSStream_Packet_Clear(
// It only need to call process once.
// If a callback is set, only do the callback instead of event handle.
if (Xb_lpfnCallback != xbnullptr) {
if (Xb_lpfnCallback != xbox::zeroptr) {
Xb_lpfnCallback(Xb_lpvContext, unionEventContext, status);
} else if (unionEventContext != 0) {
BOOL checkHandle = SetEvent(unionEventContext);
@ -110,7 +110,7 @@ void DSStream_Packet_Clear(
}
static inline void DSStream_Packet_UploadPartial(
XTL::X_CDirectSoundStream* pThis,
xbox::X_CDirectSoundStream* pThis,
vector_hvp_iterator &packetCurrent
)
{
@ -150,7 +150,7 @@ static inline void DSStream_Packet_UploadPartial(
}
static inline void DSStream_Packet_Stop_Internal(
XTL::X_CDirectSoundStream* pThis
xbox::X_CDirectSoundStream* pThis
)
{
pThis->Host_isProcessing = false;
@ -158,7 +158,7 @@ static inline void DSStream_Packet_Stop_Internal(
}
static inline void DSStream_Packet_Stop(
XTL::X_CDirectSoundStream* pThis
xbox::X_CDirectSoundStream* pThis
)
{
DSStream_Packet_Stop_Internal(pThis);
@ -175,7 +175,7 @@ static inline void DSStream_Packet_Stop(
}
static inline void DSStream_Packet_Starved(
XTL::X_CDirectSoundStream* pThis
xbox::X_CDirectSoundStream* pThis
)
{
DSStream_Packet_Stop_Internal(pThis);
@ -188,7 +188,7 @@ static inline void DSStream_Packet_Starved(
// Prefill buffer with at least 1 second worth of buffer. See "nAvgBytesPerSec" below for inspection.
static void DSStream_Packet_Prefill(
XTL::X_CDirectSoundStream* pThis,
xbox::X_CDirectSoundStream* pThis,
vector_hvp_iterator packetCurrent
)
{
@ -209,7 +209,7 @@ static void DSStream_Packet_Prefill(
}
bool DSStream_Packet_Process(
XTL::X_CDirectSoundStream* pThis
xbox::X_CDirectSoundStream* pThis
)
{
@ -280,7 +280,7 @@ bool DSStream_Packet_Process(
packetCurrent->bufPlayed = packetCurrent->xmp_data.dwMaxSize;
}
// Return current completed size to Xbox's application.
if (packetCurrent->xmp_data.pdwCompletedSize != xbnullptr) {
if (packetCurrent->xmp_data.pdwCompletedSize != xbox::zeroptr) {
(*packetCurrent->xmp_data.pdwCompletedSize) = DSoundBufferGetXboxBufferSize(pThis->EmuFlags, packetCurrent->bufPlayed);
}
// Once bufPlayed is equal to dwMaxSize, we know the packet is completed.
@ -342,7 +342,7 @@ bool DSStream_Packet_Process(
}
void DSStream_Packet_FlushEx_Reset(
XTL::X_CDirectSoundStream* pThis
xbox::X_CDirectSoundStream* pThis
)
{
// Remove flags only (This is the only place it will remove other than FlushEx perform set/remove the flags.)
@ -351,7 +351,7 @@ void DSStream_Packet_FlushEx_Reset(
}
bool DSStream_Packet_Flush(
XTL::X_CDirectSoundStream* pThis
xbox::X_CDirectSoundStream* pThis
)
{
// If host's audio is still playing then return busy-state until buffer has stop playing.

View File

@ -28,17 +28,17 @@
#include "DirectSound.hpp"
#define vector_hvp_iterator std::vector<XTL::host_voice_packet>::iterator
#define vector_hvp_iterator std::vector<xbox::host_voice_packet>::iterator
extern void DSStream_Packet_Clear(
vector_hvp_iterator &buffer,
DWORD status,
XTL::LPFNXMOCALLBACK Xb_lpfnCallback,
xbox::LPFNXMOCALLBACK Xb_lpfnCallback,
LPVOID Xb_lpvContext,
XTL::X_CDirectSoundStream* pThis);
xbox::X_CDirectSoundStream* pThis);
extern bool DSStream_Packet_Process(XTL::X_CDirectSoundStream* pThis);
extern bool DSStream_Packet_Process(xbox::X_CDirectSoundStream* pThis);
extern void DSStream_Packet_FlushEx_Reset(XTL::X_CDirectSoundStream* pThis);
extern void DSStream_Packet_FlushEx_Reset(xbox::X_CDirectSoundStream* pThis);
extern bool DSStream_Packet_Flush(XTL::X_CDirectSoundStream* pThis);
extern bool DSStream_Packet_Flush(xbox::X_CDirectSoundStream* pThis);

View File

@ -122,7 +122,7 @@ void CxbxInitAudio()
// ******************************************************************
// * patch: DirectSoundCreate
// ******************************************************************
HRESULT WINAPI XTL::EMUPATCH(DirectSoundCreate)
HRESULT WINAPI xbox::EMUPATCH(DirectSoundCreate)
(
LPVOID pguidDeviceId,
OUT LPDIRECTSOUND8* ppDirectSound,
@ -195,7 +195,7 @@ HRESULT WINAPI XTL::EMUPATCH(DirectSoundCreate)
// clear sound buffer cache
vector_ds_buffer::iterator ppDSBuffer = g_pDSoundBufferCache.begin();
for (; ppDSBuffer != g_pDSoundBufferCache.end();) {
while (XTL::EMUPATCH(IDirectSoundBuffer_Release)((*ppDSBuffer)) != 0) {};
while (xbox::EMUPATCH(IDirectSoundBuffer_Release)((*ppDSBuffer)) != 0) {};
ppDSBuffer = g_pDSoundBufferCache.begin();
}
g_pDSoundBufferCache.reserve(X_DIRECTSOUND_CACHE_MAX);
@ -203,7 +203,7 @@ HRESULT WINAPI XTL::EMUPATCH(DirectSoundCreate)
// clear sound stream cache
vector_ds_stream::iterator ppDSStream = g_pDSoundStreamCache.begin();
for (; ppDSStream != g_pDSoundStreamCache.end();) {
while (XTL::EMUPATCH(CDirectSoundStream_Release)((*ppDSStream)) != 0);
while (xbox::EMUPATCH(CDirectSoundStream_Release)((*ppDSStream)) != 0);
ppDSStream = g_pDSoundStreamCache.begin();
}
g_pDSoundStreamCache.reserve(X_DIRECTSOUND_CACHE_MAX);
@ -252,7 +252,7 @@ HRESULT WINAPI XTL::EMUPATCH(DirectSoundCreate)
// ******************************************************************
// * patch: IDirectSound_AddRef
// ******************************************************************
ULONG WINAPI XTL::EMUPATCH(IDirectSound_AddRef)
ULONG WINAPI xbox::EMUPATCH(IDirectSound_AddRef)
(
LPDIRECTSOUND8 pThis)
{
@ -270,7 +270,7 @@ ULONG WINAPI XTL::EMUPATCH(IDirectSound_AddRef)
// ******************************************************************
// * patch: IDirectSound_Release
// ******************************************************************
ULONG WINAPI XTL::EMUPATCH(IDirectSound_Release)
ULONG WINAPI xbox::EMUPATCH(IDirectSound_Release)
(
LPDIRECTSOUND8 pThis)
{
@ -292,7 +292,7 @@ ULONG WINAPI XTL::EMUPATCH(IDirectSound_Release)
// ******************************************************************
// * patch: DirectSoundGetSampleTime
// ******************************************************************
DWORD WINAPI XTL::EMUPATCH(DirectSoundGetSampleTime)()
DWORD WINAPI xbox::EMUPATCH(DirectSoundGetSampleTime)()
{
DSoundMutexGuardLock;
@ -306,7 +306,7 @@ DWORD WINAPI XTL::EMUPATCH(DirectSoundGetSampleTime)()
// ******************************************************************
// * patch: DirectSoundUseFullHRTF
// ******************************************************************
void WINAPI XTL::EMUPATCH(DirectSoundUseFullHRTF)
void WINAPI xbox::EMUPATCH(DirectSoundUseFullHRTF)
(
void)
{
@ -320,7 +320,7 @@ void WINAPI XTL::EMUPATCH(DirectSoundUseFullHRTF)
// ******************************************************************
// * patch: DirectSoundUseLightHRTF
// ******************************************************************
void WINAPI XTL::EMUPATCH(DirectSoundUseLightHRTF)
void WINAPI xbox::EMUPATCH(DirectSoundUseLightHRTF)
(
void)
{
@ -334,7 +334,7 @@ void WINAPI XTL::EMUPATCH(DirectSoundUseLightHRTF)
// ******************************************************************
// * patch: DirectSoundUseFullHRTF4Channel
// ******************************************************************
void WINAPI XTL::EMUPATCH(DirectSoundUseFullHRTF4Channel)
void WINAPI xbox::EMUPATCH(DirectSoundUseFullHRTF4Channel)
(
void)
{
@ -348,7 +348,7 @@ void WINAPI XTL::EMUPATCH(DirectSoundUseFullHRTF4Channel)
// ******************************************************************
// * patch: DirectSoundUseLightHRTF4Channel
// ******************************************************************
void WINAPI XTL::EMUPATCH(DirectSoundUseLightHRTF4Channel)
void WINAPI xbox::EMUPATCH(DirectSoundUseLightHRTF4Channel)
(
void)
{
@ -362,7 +362,7 @@ void WINAPI XTL::EMUPATCH(DirectSoundUseLightHRTF4Channel)
// ******************************************************************
// * patch: DirectSoundDoWork
// ******************************************************************
VOID WINAPI XTL::EMUPATCH(DirectSoundDoWork)()
VOID WINAPI xbox::EMUPATCH(DirectSoundDoWork)()
{
DSoundMutexGuardLock;
@ -372,8 +372,8 @@ VOID WINAPI XTL::EMUPATCH(DirectSoundDoWork)()
LOG_FUNC();
xboxkrnl::LARGE_INTEGER getTime;
xboxkrnl::KeQuerySystemTime(&getTime);
xbox::LARGE_INTEGER getTime;
xbox::KeQuerySystemTime(&getTime);
DirectSoundDoWork_Buffer(getTime);
@ -395,22 +395,22 @@ static void dsound_thread_worker(LPVOID nullPtr)
{
DSoundMutexGuardLock;
xboxkrnl::LARGE_INTEGER getTime;
xboxkrnl::KeQuerySystemTime(&getTime);
xbox::LARGE_INTEGER getTime;
xbox::KeQuerySystemTime(&getTime);
DirectSoundDoWork_Stream(getTime);
}
}
}
// Kismet given name for RadWolfie's experiment major issue in the mutt.
#define DirectSuicideWork XTL::EMUPATCH(DirectSoundDoWork)
#define DirectSuicideWork xbox::EMUPATCH(DirectSoundDoWork)
/* ------------- Sorted relative functions begin ------------------*/
// ******************************************************************
// * patch: CDirectSound_CommitDeferredSettings
// ******************************************************************
HRESULT WINAPI XTL::EMUPATCH(CDirectSound_CommitDeferredSettings)
HRESULT WINAPI xbox::EMUPATCH(CDirectSound_CommitDeferredSettings)
(
X_CDirectSound* pThis)
{
@ -429,7 +429,7 @@ HRESULT WINAPI XTL::EMUPATCH(CDirectSound_CommitDeferredSettings)
// ******************************************************************
// * patch: IDirectSound_CommitDeferredSettings
// ******************************************************************
HRESULT WINAPI XTL::EMUPATCH(IDirectSound_CommitDeferredSettings)
HRESULT WINAPI xbox::EMUPATCH(IDirectSound_CommitDeferredSettings)
(
X_CDirectSound* pThis)
{
@ -437,14 +437,14 @@ HRESULT WINAPI XTL::EMUPATCH(IDirectSound_CommitDeferredSettings)
LOG_FORWARD("CDirectSound_CommitDeferredSettings");
return XTL::EMUPATCH(CDirectSound_CommitDeferredSettings)(pThis);
return xbox::EMUPATCH(CDirectSound_CommitDeferredSettings)(pThis);
}
// ******************************************************************
// * patch: IDirectSound_CommitEffectData
// ******************************************************************
// This API is used relative with DSP effect.
HRESULT WINAPI XTL::EMUPATCH(IDirectSound_CommitEffectData)
HRESULT WINAPI xbox::EMUPATCH(IDirectSound_CommitEffectData)
(
X_CDirectSound* pThis)
{
@ -462,7 +462,7 @@ HRESULT WINAPI XTL::EMUPATCH(IDirectSound_CommitEffectData)
// ******************************************************************
// * patch: IDirectSound_GetEffectData
// ******************************************************************
HRESULT WINAPI XTL::EMUPATCH(IDirectSound_GetEffectData)
HRESULT WINAPI xbox::EMUPATCH(IDirectSound_GetEffectData)
(
X_CDirectSound* pThis,
DWORD dwEffectIndex,
@ -495,7 +495,7 @@ HRESULT WINAPI XTL::EMUPATCH(IDirectSound_GetEffectData)
// ******************************************************************
// * patch: IDirectSound_SetEffectData
// ******************************************************************
HRESULT WINAPI XTL::EMUPATCH(IDirectSound_SetEffectData)
HRESULT WINAPI xbox::EMUPATCH(IDirectSound_SetEffectData)
(
LPVOID pThis,
DWORD dwEffectIndex,
@ -525,7 +525,7 @@ HRESULT WINAPI XTL::EMUPATCH(IDirectSound_SetEffectData)
// ******************************************************************
// * patch: IDirectSound_DownloadEffectsImage
// ******************************************************************
HRESULT WINAPI XTL::EMUPATCH(IDirectSound_DownloadEffectsImage)
HRESULT WINAPI xbox::EMUPATCH(IDirectSound_DownloadEffectsImage)
(
LPDIRECTSOUND8 pThis,
LPCVOID pvImageBuffer,
@ -553,7 +553,7 @@ HRESULT WINAPI XTL::EMUPATCH(IDirectSound_DownloadEffectsImage)
// ******************************************************************
// * patch: IDirectSound_EnableHeadphones
// ******************************************************************
HRESULT WINAPI XTL::EMUPATCH(IDirectSound_EnableHeadphones)
HRESULT WINAPI xbox::EMUPATCH(IDirectSound_EnableHeadphones)
(
LPDIRECTSOUND8 pThis,
BOOL fEnabled)
@ -574,7 +574,7 @@ HRESULT WINAPI XTL::EMUPATCH(IDirectSound_EnableHeadphones)
// ******************************************************************
// * patch: IDirectSound_GetCaps
// ******************************************************************
HRESULT WINAPI XTL::EMUPATCH(IDirectSound_GetCaps)
HRESULT WINAPI xbox::EMUPATCH(IDirectSound_GetCaps)
(
X_CDirectSound* pThis,
OUT X_DSCAPS* pDSCaps)
@ -607,7 +607,7 @@ HRESULT WINAPI XTL::EMUPATCH(IDirectSound_GetCaps)
// ******************************************************************
// * patch: IDirectSound_GetOutputLevels
// ******************************************************************
HRESULT WINAPI XTL::EMUPATCH(IDirectSound_GetOutputLevels)
HRESULT WINAPI xbox::EMUPATCH(IDirectSound_GetOutputLevels)
(
LPDIRECTSOUND8* pThis,
OUT X_DSOUTPUTLEVELS* pOutputLevels,
@ -633,7 +633,7 @@ HRESULT WINAPI XTL::EMUPATCH(IDirectSound_GetOutputLevels)
// ******************************************************************
// * patch: CDirectSound_GetSpeakerConfig
// ******************************************************************
HRESULT WINAPI XTL::EMUPATCH(CDirectSound_GetSpeakerConfig)
HRESULT WINAPI xbox::EMUPATCH(CDirectSound_GetSpeakerConfig)
(
X_CDirectSound* pThis,
OUT PDWORD pdwSpeakerConfig)
@ -658,7 +658,7 @@ HRESULT WINAPI XTL::EMUPATCH(CDirectSound_GetSpeakerConfig)
// ******************************************************************
// * patch: IDirectSound_GetSpeakerConfig
// ******************************************************************
HRESULT WINAPI XTL::EMUPATCH(IDirectSound_GetSpeakerConfig)
HRESULT WINAPI xbox::EMUPATCH(IDirectSound_GetSpeakerConfig)
(
X_CDirectSound* pThis,
OUT LPDWORD* pdwSpeakerConfig)
@ -680,7 +680,7 @@ HRESULT WINAPI XTL::EMUPATCH(IDirectSound_GetSpeakerConfig)
// * patch: IDirectSound_SetAllParameters
// ******************************************************************
// NOTE: No conversion requirement for XB to PC.
HRESULT WINAPI XTL::EMUPATCH(IDirectSound_SetAllParameters)
HRESULT WINAPI xbox::EMUPATCH(IDirectSound_SetAllParameters)
(
LPDIRECTSOUND8 pThis,
LPCDS3DLISTENER pDS3DListenerParameters,
@ -702,7 +702,7 @@ HRESULT WINAPI XTL::EMUPATCH(IDirectSound_SetAllParameters)
// ******************************************************************
// * patch: IDirectSound_SetDistanceFactor
// ******************************************************************
HRESULT WINAPI XTL::EMUPATCH(IDirectSound_SetDistanceFactor)
HRESULT WINAPI xbox::EMUPATCH(IDirectSound_SetDistanceFactor)
(
LPDIRECTSOUND8 pThis,
FLOAT fDistanceFactor,
@ -724,7 +724,7 @@ HRESULT WINAPI XTL::EMUPATCH(IDirectSound_SetDistanceFactor)
// ******************************************************************
// * patch: IDirectSound_SetDopplerFactor
// ******************************************************************
HRESULT WINAPI XTL::EMUPATCH(IDirectSound_SetDopplerFactor)
HRESULT WINAPI xbox::EMUPATCH(IDirectSound_SetDopplerFactor)
(
LPDIRECTSOUND8 pThis,
FLOAT fDopplerFactor,
@ -746,7 +746,7 @@ HRESULT WINAPI XTL::EMUPATCH(IDirectSound_SetDopplerFactor)
// ******************************************************************
// * patch: IDirectSound_SetI3DL2Listener
// ******************************************************************
HRESULT WINAPI XTL::EMUPATCH(IDirectSound_SetI3DL2Listener)
HRESULT WINAPI xbox::EMUPATCH(IDirectSound_SetI3DL2Listener)
(
LPDIRECTSOUND8 pThis,
X_DSI3DL2LISTENER *pds3dl,
@ -770,7 +770,7 @@ HRESULT WINAPI XTL::EMUPATCH(IDirectSound_SetI3DL2Listener)
// ******************************************************************
// * patch: IDirectSound_SetMixBinHeadroom
// ******************************************************************
HRESULT WINAPI XTL::EMUPATCH(IDirectSound_SetMixBinHeadroom)
HRESULT WINAPI xbox::EMUPATCH(IDirectSound_SetMixBinHeadroom)
(
LPDIRECTSOUND8 pThis,
DWORD dwMixBinMask,
@ -792,7 +792,7 @@ HRESULT WINAPI XTL::EMUPATCH(IDirectSound_SetMixBinHeadroom)
// ******************************************************************
// * patch: IDirectSound_SetOrientation
// ******************************************************************
HRESULT WINAPI XTL::EMUPATCH(IDirectSound_SetOrientation)
HRESULT WINAPI xbox::EMUPATCH(IDirectSound_SetOrientation)
(
LPDIRECTSOUND8 pThis,
FLOAT xFront,
@ -834,7 +834,7 @@ HRESULT WINAPI XTL::EMUPATCH(IDirectSound_SetOrientation)
// ******************************************************************
// * patch: IDirectSound_SetPosition
// ******************************************************************
HRESULT WINAPI XTL::EMUPATCH(IDirectSound_SetPosition)
HRESULT WINAPI xbox::EMUPATCH(IDirectSound_SetPosition)
(
LPDIRECTSOUND8 pThis,
FLOAT x,
@ -860,7 +860,7 @@ HRESULT WINAPI XTL::EMUPATCH(IDirectSound_SetPosition)
// ******************************************************************
// * patch: IDirectSound_SetRolloffFactor
// ******************************************************************
HRESULT WINAPI XTL::EMUPATCH(IDirectSound_SetRolloffFactor)
HRESULT WINAPI xbox::EMUPATCH(IDirectSound_SetRolloffFactor)
(
LPDIRECTSOUND8 pThis,
FLOAT fRolloffFactor,
@ -882,7 +882,7 @@ HRESULT WINAPI XTL::EMUPATCH(IDirectSound_SetRolloffFactor)
// ******************************************************************
// * patch: CDirectSound_SynchPlayback
// ******************************************************************
HRESULT WINAPI XTL::EMUPATCH(CDirectSound_SynchPlayback)
HRESULT WINAPI xbox::EMUPATCH(CDirectSound_SynchPlayback)
(
LPDIRECTSOUND8 pThis)
{
@ -926,7 +926,7 @@ HRESULT WINAPI XTL::EMUPATCH(CDirectSound_SynchPlayback)
// ******************************************************************
// * patch: IDirectSound_SynchPlayback
// ******************************************************************
HRESULT WINAPI XTL::EMUPATCH(IDirectSound_SynchPlayback)
HRESULT WINAPI xbox::EMUPATCH(IDirectSound_SynchPlayback)
(
LPDIRECTSOUND8 pThis)
{
@ -934,13 +934,13 @@ HRESULT WINAPI XTL::EMUPATCH(IDirectSound_SynchPlayback)
LOG_FORWARD("CDirectSound_SynchPlayback");
return XTL::EMUPATCH(CDirectSound_SynchPlayback)(pThis);
return xbox::EMUPATCH(CDirectSound_SynchPlayback)(pThis);
}
// ******************************************************************
// * patch: IDirectSound_SetVelocity
// ******************************************************************
HRESULT WINAPI XTL::EMUPATCH(IDirectSound_SetVelocity)
HRESULT WINAPI xbox::EMUPATCH(IDirectSound_SetVelocity)
(
LPDIRECTSOUND8 pThis,
FLOAT x,

View File

@ -43,10 +43,10 @@ void CxbxInitAudio();
}
#endif
namespace XTL {
namespace xbox {
#undef FIELD_OFFSET // prevent macro redefinition warnings
#include <dsound.h> // TODO: FIXME after global namespace XTL issue is resolved.
#include <dsound.h> // TODO: FIXME after global namespace xbox issue is resolved.
// ******************************************************************
// * X_CDirectSound
@ -184,7 +184,7 @@ class X_CMcpxStream
// host_voice_packet is needed for DirectSoundStream packet handling internally.
struct host_voice_packet {
XTL::XMEDIAPACKET xmp_data;
xbox::XMEDIAPACKET xmp_data;
PVOID pBuffer_data;
DWORD nextWriteOffset;
DWORD lastWritePos;
@ -1731,6 +1731,6 @@ HRESULT WINAPI EMUPATCH(IDirectSoundStream_Use3DVoiceData)
} // end of extern "C"
} // end of namespace XTL
} // end of namespace xbox
#endif

View File

@ -49,7 +49,7 @@
// ******************************************************************
// * patch: CDirectSound3DCalculator_Calculate3D
// ******************************************************************
VOID WINAPI XTL::EMUPATCH(CDirectSound3DCalculator_Calculate3D)
VOID WINAPI xbox::EMUPATCH(CDirectSound3DCalculator_Calculate3D)
(
DWORD a1,
DWORD a2
@ -68,7 +68,7 @@ VOID WINAPI XTL::EMUPATCH(CDirectSound3DCalculator_Calculate3D)
// ******************************************************************
// * patch: CDirectSound3DCalculator_GetVoiceData
// ******************************************************************
VOID WINAPI XTL::EMUPATCH(CDirectSound3DCalculator_GetVoiceData)
VOID WINAPI xbox::EMUPATCH(CDirectSound3DCalculator_GetVoiceData)
(
DWORD a1,
DWORD a2,

View File

@ -56,13 +56,13 @@
// ******************************************************************
// * patch: DirectSoundDoWork (buffer)
// ******************************************************************
void DirectSoundDoWork_Buffer(xboxkrnl::LARGE_INTEGER &time)
void DirectSoundDoWork_Buffer(xbox::LARGE_INTEGER &time)
{
vector_ds_buffer::iterator ppDSBuffer = g_pDSoundBufferCache.begin();
for (; ppDSBuffer != g_pDSoundBufferCache.end(); ppDSBuffer++) {
XTL::EmuDirectSoundBuffer* pThis = ((*ppDSBuffer)->emuDSBuffer);
if (pThis->Host_lock.pLockPtr1 == nullptr || pThis->EmuBufferToggle != XTL::X_DSB_TOGGLE_DEFAULT) {
xbox::EmuDirectSoundBuffer* pThis = ((*ppDSBuffer)->emuDSBuffer);
if (pThis->Host_lock.pLockPtr1 == nullptr || pThis->EmuBufferToggle != xbox::X_DSB_TOGGLE_DEFAULT) {
continue;
}
// However there's a chance of locked buffers has been set which needs to be unlock.
@ -92,7 +92,7 @@ void DirectSoundDoWork_Buffer(xboxkrnl::LARGE_INTEGER &time)
// ******************************************************************
// * patch: IDirectSoundBuffer_AddRef
// ******************************************************************
ULONG WINAPI XTL::EMUPATCH(IDirectSoundBuffer_AddRef)
ULONG WINAPI xbox::EMUPATCH(IDirectSoundBuffer_AddRef)
(
XbHybridDSBuffer* pHybridThis)
{
@ -109,7 +109,7 @@ ULONG WINAPI XTL::EMUPATCH(IDirectSoundBuffer_AddRef)
// ******************************************************************
// * EmuDirectSoundBuffer destructor handler
// ******************************************************************
XTL::EmuDirectSoundBuffer::~EmuDirectSoundBuffer()
xbox::EmuDirectSoundBuffer::~EmuDirectSoundBuffer()
{
if (this->EmuDirectSound3DBuffer8 != nullptr) {
this->EmuDirectSound3DBuffer8->Release();
@ -124,7 +124,7 @@ XTL::EmuDirectSoundBuffer::~EmuDirectSoundBuffer()
if (this->EmuBufferDesc.lpwfxFormat != nullptr) {
free(this->EmuBufferDesc.lpwfxFormat);
}
if (this->X_BufferCache != xbnullptr && (this->EmuFlags & DSE_FLAG_BUFFER_EXTERNAL) == 0) {
if (this->X_BufferCache != xbox::zeroptr && (this->EmuFlags & DSE_FLAG_BUFFER_EXTERNAL) == 0) {
free(this->X_BufferCache);
DSoundSGEMemDealloc(this->X_BufferCacheSize);
}
@ -133,7 +133,7 @@ XTL::EmuDirectSoundBuffer::~EmuDirectSoundBuffer()
// ******************************************************************
// * patch: IDirectSoundBuffer_Release
// ******************************************************************
ULONG WINAPI XTL::EMUPATCH(IDirectSoundBuffer_Release)
ULONG WINAPI xbox::EMUPATCH(IDirectSoundBuffer_Release)
(
XbHybridDSBuffer* pHybridThis)
{
@ -160,7 +160,7 @@ ULONG WINAPI XTL::EMUPATCH(IDirectSoundBuffer_Release)
// ******************************************************************
// * patch: DirectSoundCreateBuffer
// ******************************************************************
HRESULT WINAPI XTL::EMUPATCH(DirectSoundCreateBuffer)
HRESULT WINAPI xbox::EMUPATCH(DirectSoundCreateBuffer)
(
X_DSBUFFERDESC* pdsbd,
OUT XbHybridDSBuffer** ppBuffer)
@ -171,7 +171,7 @@ HRESULT WINAPI XTL::EMUPATCH(DirectSoundCreateBuffer)
if (!g_pDSound8 && !g_bDSoundCreateCalled) {
HRESULT hRet;
hRet = XTL::EMUPATCH(DirectSoundCreate)(nullptr, &g_pDSound8, nullptr);
hRet = xbox::EMUPATCH(DirectSoundCreate)(nullptr, &g_pDSound8, nullptr);
if (hRet != DS_OK) {
CxbxKrnlCleanup("Unable to initialize DirectSound!");
}
@ -188,7 +188,7 @@ HRESULT WINAPI XTL::EMUPATCH(DirectSoundCreateBuffer)
if (X_DIRECTSOUND_CACHE_COUNT == X_DIRECTSOUND_CACHE_MAX || !DSoundSGEMenAllocCheck(pdsbd->dwBufferBytes)) {
hRet = DSERR_OUTOFMEMORY;
*ppBuffer = xbnullptr;
*ppBuffer = xbox::zeroptr;
} else {
DSBUFFERDESC DSBufferDesc = { 0 };
@ -265,7 +265,7 @@ HRESULT WINAPI XTL::EMUPATCH(DirectSoundCreateBuffer)
// ******************************************************************
// * patch: IDirectSound_CreateSoundBuffer
// ******************************************************************
HRESULT WINAPI XTL::EMUPATCH(IDirectSound_CreateSoundBuffer)
HRESULT WINAPI xbox::EMUPATCH(IDirectSound_CreateSoundBuffer)
(
LPDIRECTSOUND8 pThis,
X_DSBUFFERDESC* pdsbd,
@ -286,7 +286,7 @@ HRESULT WINAPI XTL::EMUPATCH(IDirectSound_CreateSoundBuffer)
// ******************************************************************
// * patch: IDirectSoundBuffer_GetCurrentPosition
// ******************************************************************
HRESULT WINAPI XTL::EMUPATCH(IDirectSoundBuffer_GetCurrentPosition)
HRESULT WINAPI xbox::EMUPATCH(IDirectSoundBuffer_GetCurrentPosition)
(
XbHybridDSBuffer* pHybridThis,
OUT PDWORD pdwCurrentPlayCursor,
@ -314,7 +314,7 @@ HRESULT WINAPI XTL::EMUPATCH(IDirectSoundBuffer_GetCurrentPosition)
// ******************************************************************
// * patch: IDirectSoundBuffer_SetCurrentPosition
// ******************************************************************
HRESULT WINAPI XTL::EMUPATCH(IDirectSoundBuffer_SetCurrentPosition)
HRESULT WINAPI xbox::EMUPATCH(IDirectSoundBuffer_SetCurrentPosition)
(
XbHybridDSBuffer* pHybridThis,
DWORD dwNewPosition)
@ -342,7 +342,7 @@ HRESULT WINAPI XTL::EMUPATCH(IDirectSoundBuffer_SetCurrentPosition)
// ******************************************************************
// * patch: IDirectSoundBuffer_GetStatus
// ******************************************************************
HRESULT WINAPI XTL::EMUPATCH(IDirectSoundBuffer_GetStatus)
HRESULT WINAPI xbox::EMUPATCH(IDirectSoundBuffer_GetStatus)
(
XbHybridDSBuffer* pHybridThis,
OUT LPDWORD pdwStatus)
@ -370,7 +370,7 @@ HRESULT WINAPI XTL::EMUPATCH(IDirectSoundBuffer_GetStatus)
}
}
if (pdwStatus != xbnullptr) {
if (pdwStatus != xbox::zeroptr) {
*pdwStatus = dwStatusXbox;
} else {
hRet = DSERR_INVALIDPARAM;
@ -386,7 +386,7 @@ HRESULT WINAPI XTL::EMUPATCH(IDirectSoundBuffer_GetStatus)
// ******************************************************************
// * patch: IDirectSoundBuffer_GetVoiceProperties
// ******************************************************************
HRESULT WINAPI XTL::EMUPATCH(IDirectSoundBuffer_GetVoiceProperties)
HRESULT WINAPI xbox::EMUPATCH(IDirectSoundBuffer_GetVoiceProperties)
(
XbHybridDSBuffer* pHybridThis,
OUT X_DSVOICEPROPS* pVoiceProps)
@ -398,8 +398,8 @@ HRESULT WINAPI XTL::EMUPATCH(IDirectSoundBuffer_GetVoiceProperties)
LOG_FUNC_ARG_OUT(pVoiceProps)
LOG_FUNC_END;
if (pVoiceProps == xbnullptr) {
LOG_TEST_CASE("pVoiceProps == xbnullptr");
if (pVoiceProps == xbox::zeroptr) {
LOG_TEST_CASE("pVoiceProps == xbox::zeroptr");
RETURN(DS_OK);
}
@ -412,7 +412,7 @@ HRESULT WINAPI XTL::EMUPATCH(IDirectSoundBuffer_GetVoiceProperties)
// ******************************************************************
// * patch: IDirectSoundBuffer_Lock
// ******************************************************************
HRESULT WINAPI XTL::EMUPATCH(IDirectSoundBuffer_Lock)
HRESULT WINAPI xbox::EMUPATCH(IDirectSoundBuffer_Lock)
(
XbHybridDSBuffer* pHybridThis,
DWORD dwOffset,
@ -450,7 +450,7 @@ HRESULT WINAPI XTL::EMUPATCH(IDirectSoundBuffer_Lock)
pThis->X_lock.dwLockBytes1,
pThis->X_lock.dwLockBytes2);
if (ppvAudioPtr2 == xbnullptr) {
if (ppvAudioPtr2 == xbox::zeroptr) {
hRet = pThis->EmuDirectSoundBuffer8->Lock(pcmOffset, pcmSize, &pThis->Host_lock.pLockPtr1, &pThis->Host_lock.dwLockBytes1,
nullptr, 0, dwFlags);
pThis->Host_lock.pLockPtr2 = nullptr;
@ -479,10 +479,10 @@ HRESULT WINAPI XTL::EMUPATCH(IDirectSoundBuffer_Lock)
// If secondary pointers are not used, then set them as zero.
// There are applications bug didn't check for audio pointer that is null pointer which should not use invalid audio bytes.
// Since internal functions do set them zero. We'll set them here as well.
if (ppvAudioPtr2 != xbnullptr) {
*ppvAudioPtr2 = xbnullptr;
if (ppvAudioPtr2 != xbox::zeroptr) {
*ppvAudioPtr2 = xbox::zeroptr;
}
if (pdwAudioBytes2 != xbnullptr) {
if (pdwAudioBytes2 != xbox::zeroptr) {
*pdwAudioBytes2 = 0;
}
}
@ -500,7 +500,7 @@ HRESULT WINAPI XTL::EMUPATCH(IDirectSoundBuffer_Lock)
// ******************************************************************
// * patch: IDirectSoundBuffer_Unlock
// ******************************************************************
HRESULT WINAPI XTL::EMUPATCH(IDirectSoundBuffer_Unlock)
HRESULT WINAPI xbox::EMUPATCH(IDirectSoundBuffer_Unlock)
(
XbHybridDSBuffer* pHybridThis,
LPVOID ppvAudioPtr1,
@ -521,7 +521,7 @@ HRESULT WINAPI XTL::EMUPATCH(IDirectSoundBuffer_Unlock)
EmuDirectSoundBuffer* pThis = pHybridThis->emuDSBuffer;
// TODO: Find out why pThis->EmuLockPtr1 is nullptr... (workaround atm is to check if it is not a nullptr.)
if (pThis->X_BufferCache != xbnullptr && pThis->Host_lock.pLockPtr1 != nullptr) {
if (pThis->X_BufferCache != xbox::zeroptr && pThis->Host_lock.pLockPtr1 != nullptr) {
memcpy_s((PBYTE)pThis->X_BufferCache + pThis->X_lock.dwLockOffset,
pThis->X_BufferCacheSize - pThis->X_lock.dwLockOffset,
@ -549,7 +549,7 @@ HRESULT WINAPI XTL::EMUPATCH(IDirectSoundBuffer_Unlock)
// * patch: IDirectSoundBuffer_Pause
// ******************************************************************
// Introduced in XDK 4721 revision.
HRESULT WINAPI XTL::EMUPATCH(IDirectSoundBuffer_Pause)
HRESULT WINAPI xbox::EMUPATCH(IDirectSoundBuffer_Pause)
(
XbHybridDSBuffer* pHybridThis,
DWORD dwPause)
@ -581,7 +581,7 @@ HRESULT WINAPI XTL::EMUPATCH(IDirectSoundBuffer_Pause)
// * patch: IDirectSoundBuffer_PauseEx
// ******************************************************************
// Introduced in XDK 4721 revision.
HRESULT WINAPI XTL::EMUPATCH(IDirectSoundBuffer_PauseEx)
HRESULT WINAPI xbox::EMUPATCH(IDirectSoundBuffer_PauseEx)
(
XbHybridDSBuffer* pHybridThis,
REFERENCE_TIME rtTimestamp,
@ -605,7 +605,7 @@ HRESULT WINAPI XTL::EMUPATCH(IDirectSoundBuffer_PauseEx)
// ******************************************************************
// * patch: IDirectSoundBuffer_Play
// ******************************************************************
HRESULT WINAPI XTL::EMUPATCH(IDirectSoundBuffer_Play)
HRESULT WINAPI xbox::EMUPATCH(IDirectSoundBuffer_Play)
(
XbHybridDSBuffer* pHybridThis,
DWORD dwReserved1,
@ -669,7 +669,7 @@ HRESULT WINAPI XTL::EMUPATCH(IDirectSoundBuffer_Play)
// ******************************************************************
// * patch: IDirectSoundBuffer_PlayEx
// ******************************************************************
HRESULT WINAPI XTL::EMUPATCH(IDirectSoundBuffer_PlayEx)
HRESULT WINAPI xbox::EMUPATCH(IDirectSoundBuffer_PlayEx)
(
XbHybridDSBuffer* pThis,
REFERENCE_TIME rtTimeStamp,
@ -688,7 +688,7 @@ HRESULT WINAPI XTL::EMUPATCH(IDirectSoundBuffer_PlayEx)
EmuLog(LOG_LEVEL::WARNING, "Not implemented for rtTimeStamp greater than 0 of %08d", rtTimeStamp);
}
HRESULT hRet = XTL::EMUPATCH(IDirectSoundBuffer_Play)(pThis, xbnull, xbnull, dwFlags);
HRESULT hRet = xbox::EMUPATCH(IDirectSoundBuffer_Play)(pThis, xbox::zero, xbox::zero, dwFlags);
return hRet;
}
@ -696,7 +696,7 @@ HRESULT WINAPI XTL::EMUPATCH(IDirectSoundBuffer_PlayEx)
// ******************************************************************
// * patch: IDirectSoundBuffer_SetAllParameters
// ******************************************************************
HRESULT WINAPI XTL::EMUPATCH(IDirectSoundBuffer_SetAllParameters)
HRESULT WINAPI xbox::EMUPATCH(IDirectSoundBuffer_SetAllParameters)
(
XbHybridDSBuffer* pHybridThis,
X_DS3DBUFFER* pc3DBufferParameters,
@ -719,7 +719,7 @@ HRESULT WINAPI XTL::EMUPATCH(IDirectSoundBuffer_SetAllParameters)
// ******************************************************************
// * patch: IDirectSoundBuffer_SetBufferData
// ******************************************************************
HRESULT WINAPI XTL::EMUPATCH(IDirectSoundBuffer_SetBufferData)
HRESULT WINAPI xbox::EMUPATCH(IDirectSoundBuffer_SetBufferData)
(
XbHybridDSBuffer* pHybridThis,
LPVOID pvBufferData,
@ -742,7 +742,7 @@ HRESULT WINAPI XTL::EMUPATCH(IDirectSoundBuffer_SetBufferData)
pThis->EmuDirectSoundBuffer8,
pThis->EmuBufferDesc,
pThis->Host_lock,
xbnullptr,
xbox::zeroptr,
pThis->X_lock.dwLockOffset,
pThis->X_lock.dwLockBytes1,
pThis->X_lock.dwLockBytes2);
@ -764,7 +764,7 @@ HRESULT WINAPI XTL::EMUPATCH(IDirectSoundBuffer_SetBufferData)
}
// Allocate memory whenever made request internally
if (pvBufferData == xbnullptr && DSoundSGEMenAllocCheck(dwBufferBytes)) {
if (pvBufferData == xbox::zeroptr && DSoundSGEMenAllocCheck(dwBufferBytes)) {
// Confirmed it perform a reset to default.
DSoundBufferRegionSetDefault(pThis);
@ -781,7 +781,7 @@ HRESULT WINAPI XTL::EMUPATCH(IDirectSoundBuffer_SetBufferData)
// Only perform a resize, for lock emulation purpose.
DSoundBufferResizeSetSize(pHybridThis, hRet, dwBufferBytes);
} else if (pvBufferData != xbnullptr) {
} else if (pvBufferData != xbox::zeroptr) {
// Free internal buffer cache if exist
if ((pThis->EmuFlags & DSE_FLAG_BUFFER_EXTERNAL) == 0) {
free(pThis->X_BufferCache);
@ -804,7 +804,7 @@ HRESULT WINAPI XTL::EMUPATCH(IDirectSoundBuffer_SetBufferData)
// ******************************************************************
// * patch: IDirectSoundBuffer_SetConeAngles
// ******************************************************************
HRESULT WINAPI XTL::EMUPATCH(IDirectSoundBuffer_SetConeAngles)
HRESULT WINAPI xbox::EMUPATCH(IDirectSoundBuffer_SetConeAngles)
(
XbHybridDSBuffer* pHybridThis,
DWORD dwInsideConeAngle,
@ -829,7 +829,7 @@ HRESULT WINAPI XTL::EMUPATCH(IDirectSoundBuffer_SetConeAngles)
// ******************************************************************
// * patch: IDirectSoundBuffer_SetConeOrientation
// ******************************************************************
HRESULT WINAPI XTL::EMUPATCH(IDirectSoundBuffer_SetConeOrientation)
HRESULT WINAPI xbox::EMUPATCH(IDirectSoundBuffer_SetConeOrientation)
(
XbHybridDSBuffer* pHybridThis,
FLOAT x,
@ -856,7 +856,7 @@ HRESULT WINAPI XTL::EMUPATCH(IDirectSoundBuffer_SetConeOrientation)
// ******************************************************************
// * patch: IDirectSoundBuffer_SetConeOutsideVolume
// ******************************************************************
HRESULT WINAPI XTL::EMUPATCH(IDirectSoundBuffer_SetConeOutsideVolume)
HRESULT WINAPI xbox::EMUPATCH(IDirectSoundBuffer_SetConeOutsideVolume)
(
XbHybridDSBuffer* pHybridThis,
LONG lConeOutsideVolume,
@ -879,7 +879,7 @@ HRESULT WINAPI XTL::EMUPATCH(IDirectSoundBuffer_SetConeOutsideVolume)
// ******************************************************************
// * patch: IDirectSoundBuffer_SetDistanceFactor
// ******************************************************************
HRESULT WINAPI XTL::EMUPATCH(IDirectSoundBuffer_SetDistanceFactor)
HRESULT WINAPI xbox::EMUPATCH(IDirectSoundBuffer_SetDistanceFactor)
(
XbHybridDSBuffer* pHybridThis,
FLOAT flDistanceFactor,
@ -901,7 +901,7 @@ HRESULT WINAPI XTL::EMUPATCH(IDirectSoundBuffer_SetDistanceFactor)
// ******************************************************************
// * patch: IDirectSoundBuffer_SetDopplerFactor
// ******************************************************************
HRESULT WINAPI XTL::EMUPATCH(IDirectSoundBuffer_SetDopplerFactor)
HRESULT WINAPI xbox::EMUPATCH(IDirectSoundBuffer_SetDopplerFactor)
(
XbHybridDSBuffer* pThis,
FLOAT flDopplerFactor,
@ -923,7 +923,7 @@ HRESULT WINAPI XTL::EMUPATCH(IDirectSoundBuffer_SetDopplerFactor)
// ******************************************************************
// * patch: IDirectSoundBuffer_SetEG
// ******************************************************************
HRESULT WINAPI XTL::EMUPATCH(IDirectSoundBuffer_SetEG)
HRESULT WINAPI xbox::EMUPATCH(IDirectSoundBuffer_SetEG)
(
XbHybridDSBuffer* pHybridThis,
X_DSENVOLOPEDESC* pEnvelopeDesc)
@ -948,7 +948,7 @@ HRESULT WINAPI XTL::EMUPATCH(IDirectSoundBuffer_SetEG)
// ******************************************************************
// * patch: IDirectSoundBuffer_SetFilter
// ******************************************************************
HRESULT WINAPI XTL::EMUPATCH(IDirectSoundBuffer_SetFilter)
HRESULT WINAPI xbox::EMUPATCH(IDirectSoundBuffer_SetFilter)
(
XbHybridDSBuffer* pHybridThis,
X_DSFILTERDESC* pFilterDesc)
@ -971,7 +971,7 @@ HRESULT WINAPI XTL::EMUPATCH(IDirectSoundBuffer_SetFilter)
// ******************************************************************
// * patch: IDirectSoundBuffer_SetFormat
// ******************************************************************
HRESULT WINAPI XTL::EMUPATCH(IDirectSoundBuffer_SetFormat)
HRESULT WINAPI xbox::EMUPATCH(IDirectSoundBuffer_SetFormat)
(
XbHybridDSBuffer* pHybridThis,
LPCWAVEFORMATEX pwfxFormat)
@ -988,7 +988,7 @@ HRESULT WINAPI XTL::EMUPATCH(IDirectSoundBuffer_SetFormat)
pThis->EmuBufferDesc, pThis->EmuFlags,
pThis->EmuPlayFlags, pThis->EmuDirectSound3DBuffer8,
0, pThis->X_BufferCache, pThis->X_BufferCacheSize,
pThis->Xb_VoiceProperties, xbnullptr, pHybridThis->p_CDSVoice);
pThis->Xb_VoiceProperties, xbox::zeroptr, pHybridThis->p_CDSVoice);
return hRet;
}
@ -996,7 +996,7 @@ HRESULT WINAPI XTL::EMUPATCH(IDirectSoundBuffer_SetFormat)
// ******************************************************************
// * patch: IDirectSoundBuffer_SetFrequency
// ******************************************************************
HRESULT WINAPI XTL::EMUPATCH(IDirectSoundBuffer_SetFrequency)
HRESULT WINAPI xbox::EMUPATCH(IDirectSoundBuffer_SetFrequency)
(
XbHybridDSBuffer* pHybridThis,
DWORD dwFrequency)
@ -1018,7 +1018,7 @@ HRESULT WINAPI XTL::EMUPATCH(IDirectSoundBuffer_SetFrequency)
// ******************************************************************
// * patch: IDirectSoundBuffer_SetHeadroom
// ******************************************************************
HRESULT WINAPI XTL::EMUPATCH(IDirectSoundBuffer_SetHeadroom)
HRESULT WINAPI xbox::EMUPATCH(IDirectSoundBuffer_SetHeadroom)
(
XbHybridDSBuffer* pHybridThis,
DWORD dwHeadroom)
@ -1041,7 +1041,7 @@ HRESULT WINAPI XTL::EMUPATCH(IDirectSoundBuffer_SetHeadroom)
// ******************************************************************
// * patch: IDirectSoundBuffer_SetI3DL2Source
// ******************************************************************
HRESULT WINAPI XTL::EMUPATCH(IDirectSoundBuffer_SetI3DL2Source)
HRESULT WINAPI xbox::EMUPATCH(IDirectSoundBuffer_SetI3DL2Source)
(
XbHybridDSBuffer* pHybridThis,
X_DSI3DL2BUFFER* pds3db,
@ -1067,7 +1067,7 @@ HRESULT WINAPI XTL::EMUPATCH(IDirectSoundBuffer_SetI3DL2Source)
// ******************************************************************
// * patch: IDirectSoundBuffer_SetLFO
// ******************************************************************
HRESULT WINAPI XTL::EMUPATCH(IDirectSoundBuffer_SetLFO) //Low Frequency Oscillators
HRESULT WINAPI xbox::EMUPATCH(IDirectSoundBuffer_SetLFO) //Low Frequency Oscillators
(
XbHybridDSBuffer* pHybridThis,
LPCDSLFODESC pLFODesc)
@ -1089,7 +1089,7 @@ HRESULT WINAPI XTL::EMUPATCH(IDirectSoundBuffer_SetLFO) //Low Frequency Oscillat
// ******************************************************************
// * patch: IDirectSoundBuffer_SetLoopRegion
// ******************************************************************
HRESULT WINAPI XTL::EMUPATCH(IDirectSoundBuffer_SetLoopRegion)
HRESULT WINAPI xbox::EMUPATCH(IDirectSoundBuffer_SetLoopRegion)
(
XbHybridDSBuffer* pHybridThis,
DWORD dwLoopStart,
@ -1131,7 +1131,7 @@ HRESULT WINAPI XTL::EMUPATCH(IDirectSoundBuffer_SetLoopRegion)
// ******************************************************************
// * patch: IDirectSoundBuffer_SetMaxDistance
// ******************************************************************
HRESULT WINAPI XTL::EMUPATCH(IDirectSoundBuffer_SetMaxDistance)
HRESULT WINAPI xbox::EMUPATCH(IDirectSoundBuffer_SetMaxDistance)
(
XbHybridDSBuffer* pHybridThis,
FLOAT flMaxDistance,
@ -1154,7 +1154,7 @@ HRESULT WINAPI XTL::EMUPATCH(IDirectSoundBuffer_SetMaxDistance)
// ******************************************************************
// * patch: IDirectSoundBuffer_SetMinDistance
// ******************************************************************
HRESULT WINAPI XTL::EMUPATCH(IDirectSoundBuffer_SetMinDistance)
HRESULT WINAPI xbox::EMUPATCH(IDirectSoundBuffer_SetMinDistance)
(
XbHybridDSBuffer* pHybridThis,
FLOAT flMinDistance,
@ -1177,7 +1177,7 @@ HRESULT WINAPI XTL::EMUPATCH(IDirectSoundBuffer_SetMinDistance)
// ******************************************************************
// * patch: IDirectSoundBuffer_SetMixBins
// ******************************************************************
HRESULT WINAPI XTL::EMUPATCH(IDirectSoundBuffer_SetMixBins)
HRESULT WINAPI xbox::EMUPATCH(IDirectSoundBuffer_SetMixBins)
(
XbHybridDSBuffer* pHybridThis,
DWORD dwMixBinMask)
@ -1211,7 +1211,7 @@ HRESULT WINAPI XTL::EMUPATCH(IDirectSoundBuffer_SetMixBins)
// * patch: IDirectSoundBuffer_SetMixBinVolumes_12
// ******************************************************************
// This revision API was used in XDK 3911 until API had changed in XDK 4039.
HRESULT WINAPI XTL::EMUPATCH(IDirectSoundBuffer_SetMixBinVolumes_12)
HRESULT WINAPI xbox::EMUPATCH(IDirectSoundBuffer_SetMixBinVolumes_12)
(
XbHybridDSBuffer* pHybridThis,
DWORD dwMixBinMask,
@ -1237,7 +1237,7 @@ HRESULT WINAPI XTL::EMUPATCH(IDirectSoundBuffer_SetMixBinVolumes_12)
// * patch: IDirectSoundBuffer_SetMixBinVolumes_8
// ******************************************************************
// This revision is only used in XDK 4039 and higher.
HRESULT WINAPI XTL::EMUPATCH(IDirectSoundBuffer_SetMixBinVolumes_8)
HRESULT WINAPI xbox::EMUPATCH(IDirectSoundBuffer_SetMixBinVolumes_8)
(
XbHybridDSBuffer* pHybridThis,
X_LPDSMIXBINS pMixBins)
@ -1259,7 +1259,7 @@ HRESULT WINAPI XTL::EMUPATCH(IDirectSoundBuffer_SetMixBinVolumes_8)
// ******************************************************************
// * patch: IDirectSoundBuffer_SetMode
// ******************************************************************
HRESULT WINAPI XTL::EMUPATCH(IDirectSoundBuffer_SetMode)
HRESULT WINAPI xbox::EMUPATCH(IDirectSoundBuffer_SetMode)
(
XbHybridDSBuffer* pHybridThis,
DWORD dwMode,
@ -1282,7 +1282,7 @@ HRESULT WINAPI XTL::EMUPATCH(IDirectSoundBuffer_SetMode)
// ******************************************************************
// * patch: IDirectSoundBuffer_SetNotificationPositions
// ******************************************************************
HRESULT WINAPI XTL::EMUPATCH(IDirectSoundBuffer_SetNotificationPositions)
HRESULT WINAPI xbox::EMUPATCH(IDirectSoundBuffer_SetNotificationPositions)
(
XbHybridDSBuffer* pHybridThis,
DWORD dwNotifyCount,
@ -1328,7 +1328,7 @@ HRESULT WINAPI XTL::EMUPATCH(IDirectSoundBuffer_SetNotificationPositions)
// ******************************************************************
// * patch: IDirectSoundBuffer_SetOutputBuffer
// ******************************************************************
HRESULT WINAPI XTL::EMUPATCH(IDirectSoundBuffer_SetOutputBuffer)
HRESULT WINAPI xbox::EMUPATCH(IDirectSoundBuffer_SetOutputBuffer)
(
XbHybridDSBuffer* pHybridThis,
XbHybridDSBuffer* pOutputBuffer)
@ -1352,7 +1352,7 @@ HRESULT WINAPI XTL::EMUPATCH(IDirectSoundBuffer_SetOutputBuffer)
// ******************************************************************
// * patch: IDirectSoundBuffer_SetPitch
// ******************************************************************
HRESULT WINAPI XTL::EMUPATCH(IDirectSoundBuffer_SetPitch)
HRESULT WINAPI xbox::EMUPATCH(IDirectSoundBuffer_SetPitch)
(
XbHybridDSBuffer* pHybridThis,
LONG lPitch)
@ -1374,7 +1374,7 @@ HRESULT WINAPI XTL::EMUPATCH(IDirectSoundBuffer_SetPitch)
// ******************************************************************
// * patch: IDirectSoundBuffer_SetPlayRegion
// ******************************************************************
HRESULT WINAPI XTL::EMUPATCH(IDirectSoundBuffer_SetPlayRegion)
HRESULT WINAPI xbox::EMUPATCH(IDirectSoundBuffer_SetPlayRegion)
(
XbHybridDSBuffer* pHybridThis,
DWORD dwPlayStart,
@ -1419,7 +1419,7 @@ HRESULT WINAPI XTL::EMUPATCH(IDirectSoundBuffer_SetPlayRegion)
// ******************************************************************
// * patch: IDirectSoundBuffer_SetPosition
// ******************************************************************
HRESULT WINAPI XTL::EMUPATCH(IDirectSoundBuffer_SetPosition)
HRESULT WINAPI xbox::EMUPATCH(IDirectSoundBuffer_SetPosition)
(
XbHybridDSBuffer* pHybridThis,
FLOAT x,
@ -1446,7 +1446,7 @@ HRESULT WINAPI XTL::EMUPATCH(IDirectSoundBuffer_SetPosition)
// ******************************************************************
// * patch: IDirectSoundBuffer_SetRolloffCurve
// ******************************************************************
HRESULT WINAPI XTL::EMUPATCH(IDirectSoundBuffer_SetRolloffCurve)
HRESULT WINAPI xbox::EMUPATCH(IDirectSoundBuffer_SetRolloffCurve)
(
XbHybridDSBuffer* pHybridThis,
const FLOAT* pflPoints,
@ -1472,7 +1472,7 @@ HRESULT WINAPI XTL::EMUPATCH(IDirectSoundBuffer_SetRolloffCurve)
// ******************************************************************
// * patch: IDirectSoundBuffer_SetRolloffFactor
// ******************************************************************
HRESULT WINAPI XTL::EMUPATCH(IDirectSoundBuffer_SetRolloffFactor)
HRESULT WINAPI xbox::EMUPATCH(IDirectSoundBuffer_SetRolloffFactor)
(
XbHybridDSBuffer* pHybridThis,
FLOAT flRolloffFactor,
@ -1496,7 +1496,7 @@ HRESULT WINAPI XTL::EMUPATCH(IDirectSoundBuffer_SetRolloffFactor)
// ******************************************************************
// * patch: IDirectSoundBuffer_SetVelocity
// ******************************************************************
HRESULT WINAPI XTL::EMUPATCH(IDirectSoundBuffer_SetVelocity)
HRESULT WINAPI xbox::EMUPATCH(IDirectSoundBuffer_SetVelocity)
(
XbHybridDSBuffer* pHybridThis,
FLOAT x,
@ -1523,7 +1523,7 @@ HRESULT WINAPI XTL::EMUPATCH(IDirectSoundBuffer_SetVelocity)
// ******************************************************************
// * patch: IDirectSoundBuffer_SetVolume
// ******************************************************************
HRESULT WINAPI XTL::EMUPATCH(IDirectSoundBuffer_SetVolume)
HRESULT WINAPI xbox::EMUPATCH(IDirectSoundBuffer_SetVolume)
(
XbHybridDSBuffer* pHybridThis,
LONG lVolume)
@ -1545,7 +1545,7 @@ HRESULT WINAPI XTL::EMUPATCH(IDirectSoundBuffer_SetVolume)
// ******************************************************************
// * patch: IDirectSoundBuffer_Stop
// ******************************************************************
HRESULT WINAPI XTL::EMUPATCH(IDirectSoundBuffer_Stop)
HRESULT WINAPI xbox::EMUPATCH(IDirectSoundBuffer_Stop)
(
XbHybridDSBuffer* pHybridThis)
{
@ -1568,7 +1568,7 @@ HRESULT WINAPI XTL::EMUPATCH(IDirectSoundBuffer_Stop)
// ******************************************************************
// * patch: IDirectSoundBuffer_StopEx
// ******************************************************************
HRESULT WINAPI XTL::EMUPATCH(IDirectSoundBuffer_StopEx)
HRESULT WINAPI xbox::EMUPATCH(IDirectSoundBuffer_StopEx)
(
XbHybridDSBuffer* pHybridThis,
REFERENCE_TIME rtTimeStamp,
@ -1609,8 +1609,8 @@ HRESULT WINAPI XTL::EMUPATCH(IDirectSoundBuffer_StopEx)
if ((dwFlags & X_DSBSTOPEX_ENVELOPE) > 0) {
if (rtTimeStamp == 0LL) {
xboxkrnl::LARGE_INTEGER getTime;
xboxkrnl::KeQuerySystemTime(&getTime);
xbox::LARGE_INTEGER getTime;
xbox::KeQuerySystemTime(&getTime);
pThis->Xb_rtStopEx = getTime.QuadPart;
}
else {
@ -1662,7 +1662,7 @@ HRESULT WINAPI XTL::EMUPATCH(IDirectSoundBuffer_StopEx)
// ******************************************************************
// * patch: IDirectSoundBuffer_Set3DVoiceData
// ******************************************************************
HRESULT WINAPI XTL::EMUPATCH(IDirectSoundBuffer_Set3DVoiceData)
HRESULT WINAPI xbox::EMUPATCH(IDirectSoundBuffer_Set3DVoiceData)
(
XbHybridDSBuffer* pHybridThis,
DWORD a2
@ -1683,7 +1683,7 @@ HRESULT WINAPI XTL::EMUPATCH(IDirectSoundBuffer_Set3DVoiceData)
// ******************************************************************
// * patch: IDirectSoundBuffer_Use3DVoiceData
// ******************************************************************
HRESULT WINAPI XTL::EMUPATCH(IDirectSoundBuffer_Use3DVoiceData)
HRESULT WINAPI xbox::EMUPATCH(IDirectSoundBuffer_Use3DVoiceData)
(
XbHybridDSBuffer* pHybridThis,
LPUNKNOWN pUnknown)

View File

@ -45,8 +45,8 @@ extern std::recursive_mutex g_DSoundMutex;
// Xbox maximum synch playback audio
#define DSOUND_MAX_SYNCHPLAYBACK_AUDIO 29
#define vector_ds_buffer std::vector<XTL::XbHybridDSBuffer*>
#define vector_ds_stream std::vector<XTL::X_CDirectSoundStream*>
#define vector_ds_buffer std::vector<xbox::XbHybridDSBuffer*>
#define vector_ds_stream std::vector<xbox::X_CDirectSoundStream*>
extern vector_ds_buffer g_pDSoundBufferCache;
extern vector_ds_stream g_pDSoundStreamCache;
extern LPDIRECTSOUND8 g_pDSound8; //This is necessary in order to allow share with EmuDSoundInline.hpp
@ -72,5 +72,5 @@ extern DWORD g_dwFree3DBuffers;
EmuLog(LOG_LEVEL::WARNING, "An issue has been found. Please report game title and console's output of return result," \
" function, and file name to https://github.com/Cxbx-Reloaded/Cxbx-Reloaded/issues/485"); } return hRet; }
extern void DirectSoundDoWork_Buffer(xboxkrnl::LARGE_INTEGER& time);
extern void DirectSoundDoWork_Stream(xboxkrnl::LARGE_INTEGER& time);
extern void DirectSoundDoWork_Buffer(xbox::LARGE_INTEGER& time);
extern void DirectSoundDoWork_Stream(xbox::LARGE_INTEGER& time);

View File

@ -100,7 +100,7 @@ static inline void GenerateXboxBufferCache(
// If the size is the same, don't realloc
if (X_BufferCacheSize != X_BufferSizeRequest) {
// Check if buffer cache exist, then copy over old ones.
if (*X_BufferCache != xbnullptr && (dwEmuFlags & DSE_FLAG_BUFFER_EXTERNAL) == 0) {
if (*X_BufferCache != xbox::zeroptr && (dwEmuFlags & DSE_FLAG_BUFFER_EXTERNAL) == 0) {
LPVOID tempBuffer = *X_BufferCache;
*X_BufferCache = malloc(X_BufferSizeRequest);
@ -121,7 +121,7 @@ static inline void GenerateXboxBufferCache(
}
}
static inline void InitVoiceProperties(XTL::X_DSVOICEPROPS& Xb_VoiceProperties)
static inline void InitVoiceProperties(xbox::X_DSVOICEPROPS& Xb_VoiceProperties)
{
Xb_VoiceProperties.l3DConeVolume = 0;
Xb_VoiceProperties.l3DDistanceVolume = 0;
@ -132,9 +132,9 @@ static inline void InitVoiceProperties(XTL::X_DSVOICEPROPS& Xb_VoiceProperties)
}
static inline void GenerateMixBinDefault(
XTL::X_DSVOICEPROPS &Xb_VoiceProperties,
xbox::X_DSVOICEPROPS &Xb_VoiceProperties,
LPCWAVEFORMATEX lpwfxFormat,
XTL::X_LPDSMIXBINS mixbins_output,
xbox::X_LPDSMIXBINS mixbins_output,
bool is3D)
{
if (g_LibVersion_DSOUND < 4039) {
@ -146,7 +146,7 @@ static inline void GenerateMixBinDefault(
unsigned int i;
// Use custom mixbin if provided.
if (mixbins_output != xbnullptr) {
if (mixbins_output != xbox::zeroptr) {
Xb_VoiceProperties.dwMixBinCount = mixbins_output->dwCount;
auto& mixbinArray_output = mixbins_output->lpMixBinVolumePairs;
@ -185,7 +185,7 @@ static inline void GenerateMixBinDefault(
}
else {
// If format is PCM/XADPCM, then use stereo mixbin as default.
if (lpwfxFormat == xbnullptr || lpwfxFormat->wFormatTag != WAVE_FORMAT_EXTENSIBLE) {
if (lpwfxFormat == xbox::zeroptr || lpwfxFormat->wFormatTag != WAVE_FORMAT_EXTENSIBLE) {
counter = 2;
for (i = 0; i < counter; i++) {
xb_mixbinArray[i].dwMixBin = i;
@ -253,9 +253,9 @@ static inline void GeneratePCMFormat(
DWORD X_BufferSizeRequest,
LPVOID* X_BufferCache,
DWORD &X_BufferCacheSize,
XTL::X_DSVOICEPROPS& Xb_VoiceProperties,
XTL::X_LPDSMIXBINS mixbins_output,
XTL::CDirectSoundVoice* Xb_Voice)
xbox::X_DSVOICEPROPS& Xb_VoiceProperties,
xbox::X_LPDSMIXBINS mixbins_output,
xbox::CDirectSoundVoice* Xb_Voice)
{
bool bIsSpecial = false;
@ -275,7 +275,7 @@ static inline void GeneratePCMFormat(
CxbxKrnlCleanup("Unable to allocate DSBufferDesc.Xb_lpwfxFormat");
}
if (Xb_lpwfxFormat != xbnullptr) {
if (Xb_lpwfxFormat != xbox::zeroptr) {
PWAVEFORMATEXTENSIBLE lpwfxFormatHost = reinterpret_cast<PWAVEFORMATEXTENSIBLE>(DSBufferDesc.lpwfxFormat);
@ -332,7 +332,7 @@ static inline void DSoundGenericUnlock(
DWORD dwEmuFlags,
LPDIRECTSOUNDBUFFER8 pDSBuffer,
DSBUFFERDESC &DSBufferDesc,
XTL::DSoundBuffer_Lock &Host_lock,
xbox::DSoundBuffer_Lock &Host_lock,
LPVOID X_BufferCache,
DWORD X_Offset,
DWORD X_dwLockBytes1,
@ -342,7 +342,7 @@ static inline void DSoundGenericUnlock(
if (Host_lock.pLockPtr1 != nullptr) {
if (X_BufferCache != xbnullptr) {
if (X_BufferCache != xbox::zeroptr) {
DSoundBufferOutputXBtoHost(dwEmuFlags, DSBufferDesc, ((PBYTE)X_BufferCache + X_Offset), X_dwLockBytes1, Host_lock.pLockPtr1, Host_lock.dwLockBytes1);
if (Host_lock.pLockPtr2 != nullptr) {
@ -387,7 +387,7 @@ static inline void DSound3DBufferCreate(LPDIRECTSOUNDBUFFER8 pDSBuffer, LPDIRECT
#define DSoundBufferSetDefault(pThis, dwEmuPlayFlags, Xb_dwFlags) \
pThis->EmuDirectSoundBuffer8 = nullptr; \
pThis->EmuDirectSound3DBuffer8 = nullptr; \
pThis->X_BufferCache = xbnullptr; \
pThis->X_BufferCache = xbox::zeroptr; \
pThis->EmuFlags = 0; \
pThis->EmuPlayFlags = dwEmuPlayFlags; \
pThis->X_BufferCacheSize = 0; \
@ -398,13 +398,13 @@ static inline void DSound3DBufferCreate(LPDIRECTSOUNDBUFFER8 pDSBuffer, LPDIRECT
pThis->Xb_Flags = Xb_dwFlags;
//pThis->EmuBufferDesc = { 0 }; // Enable this when become necessary.
/*
pThis->EmuLockPtr1 = xbnullptr; \
pThis->EmuLockPtr1 = xbox::zeroptr; \
pThis->EmuLockBytes1 = 0; \
pThis->EmuLockPtr2 = xbnullptr; \
pThis->EmuLockPtr2 = xbox::zeroptr; \
pThis->EmuLockBytes2 = 0; \ */
static inline void DSoundBufferRegionSetDefault(XTL::EmuDirectSoundBuffer *pThis) {
pThis->EmuBufferToggle = XTL::X_DSB_TOGGLE_DEFAULT;
static inline void DSoundBufferRegionSetDefault(xbox::EmuDirectSoundBuffer *pThis) {
pThis->EmuBufferToggle = xbox::X_DSB_TOGGLE_DEFAULT;
pThis->EmuRegionLoopStartOffset = 0;
pThis->EmuRegionLoopLength = 0;
pThis->EmuRegionPlayStartOffset = 0;
@ -417,7 +417,7 @@ static inline void DSoundBufferTransferSettings(
LPDIRECTSOUNDBUFFER8 &pDSBufferNew,
LPDIRECTSOUND3DBUFFER8 &pDS3DBufferOld,
LPDIRECTSOUND3DBUFFER8 &pDS3DBufferNew,
XTL::CDirectSoundVoice* Xb_Voice)
xbox::CDirectSoundVoice* Xb_Voice)
{
LONG lVolume, lPan;
DS3DBUFFER ds3dBuffer;
@ -449,7 +449,7 @@ static inline void DSoundBufferReCreate(
LPDIRECTSOUND3DBUFFER8 &pDS3DBuffer,
LPDIRECTSOUNDBUFFER8 &pDSBufferNew,
LPDIRECTSOUND3DBUFFER8 &pDS3DBufferNew,
XTL::CDirectSoundVoice* Xb_Voice) {
xbox::CDirectSoundVoice* Xb_Voice) {
DSoundBufferCreate(&DSBufferDesc, pDSBufferNew);
@ -484,11 +484,11 @@ static inline void DSoundBufferRelease(
}
static inline void DSoundBufferResizeSetSize(
XTL::XbHybridDSBuffer* pHybridThis,
xbox::XbHybridDSBuffer* pHybridThis,
HRESULT &hRet,
DWORD Xb_dwByteLength) {
XTL::EmuDirectSoundBuffer* pThis = pHybridThis->emuDSBuffer;
xbox::EmuDirectSoundBuffer* pThis = pHybridThis->emuDSBuffer;
// General return OK, nothing needs to set as invalid for now.
hRet = DS_OK;
@ -523,13 +523,13 @@ static inline void DSoundBufferResizeSetSize(
}
static inline void DSoundBufferResizeUpdate(
XTL::XbHybridDSBuffer* pHybridThis,
xbox::XbHybridDSBuffer* pHybridThis,
DWORD dwPlayFlags,
HRESULT &hRet,
DWORD Xb_dwStartOffset,
DWORD Xb_dwByteLength) {
XTL::EmuDirectSoundBuffer* pThis = pHybridThis->emuDSBuffer;
xbox::EmuDirectSoundBuffer* pThis = pHybridThis->emuDSBuffer;
DSoundBufferResizeSetSize(pHybridThis, hRet, Xb_dwByteLength);
hRet = pThis->EmuDirectSoundBuffer8->Lock(0, 0, &pThis->Host_lock.pLockPtr1, &pThis->Host_lock.dwLockBytes1,
@ -548,13 +548,13 @@ static inline void DSoundBufferResizeUpdate(
}
static inline void DSoundBufferRegionCurrentLocation(
XTL::XbHybridDSBuffer* pHybridThis,
xbox::XbHybridDSBuffer* pHybridThis,
DWORD dwPlayFlags,
HRESULT &hRet,
DWORD &Xb_dwStartOffset,
DWORD &Xb_dwByteLength)
{
XTL::EmuDirectSoundBuffer* pThis = pHybridThis->emuDSBuffer;
xbox::EmuDirectSoundBuffer* pThis = pHybridThis->emuDSBuffer;
if ((dwPlayFlags & X_DSBPLAY_LOOPING) > 0) {
Xb_dwStartOffset = pThis->EmuRegionPlayStartOffset + pThis->EmuRegionLoopStartOffset;
@ -581,7 +581,7 @@ static inline void DSoundBufferRegionCurrentLocation(
}
static inline void DSoundBufferUpdate(
XTL::XbHybridDSBuffer* pHybridThis,
xbox::XbHybridDSBuffer* pHybridThis,
DWORD dwPlayFlags,
HRESULT &hRet) {
@ -599,7 +599,7 @@ static inline void DSoundBufferRegenWithNewFormat(
DSBUFFERDESC &DSBufferDesc,
DWORD PlayFlags,
LPDIRECTSOUND3DBUFFER8 &pDS3DBuffer,
XTL::CDirectSoundVoice* Xb_Voice)
xbox::CDirectSoundVoice* Xb_Voice)
{
DWORD refCount, dwPlayCursor, dwStatus;
LPDIRECTSOUNDBUFFER8 pDSBufferNew = nullptr;
@ -788,10 +788,10 @@ static inline HRESULT HybridDirectSoundBuffer_GetCurrentPosition(
EmuLog(LOG_LEVEL::WARNING, "GetCurrentPosition Failed!");
}
if (pdwCurrentPlayCursor != xbnullptr) {
if (pdwCurrentPlayCursor != xbox::zeroptr) {
*pdwCurrentPlayCursor = DSoundBufferGetXboxBufferSize(EmuFlags, dwCurrentPlayCursor);
}
if (pdwCurrentWriteCursor != xbnullptr) {
if (pdwCurrentWriteCursor != xbox::zeroptr) {
*pdwCurrentWriteCursor = DSoundBufferGetXboxBufferSize(EmuFlags, dwCurrentWriteCursor);
}
@ -945,7 +945,7 @@ static inline HRESULT HybridDirectSoundBuffer_Restore(
//IDirectSoundBuffer
static inline HRESULT HybridDirectSound3DBuffer_SetAllParameters(
LPDIRECTSOUND3DBUFFER8 pDS3DBuffer,
XTL::X_DS3DBUFFER* pDS3DBufferParams,
xbox::X_DS3DBUFFER* pDS3DBufferParams,
DWORD dwApply)
{
HRESULT hRet = DS_OK;
@ -1099,7 +1099,7 @@ static inline HRESULT HybridDirectSoundBuffer_SetEG(
//IDirectSoundBuffer
static inline HRESULT HybridDirectSoundBuffer_SetFilter(
LPDIRECTSOUNDBUFFER8 pDSBuffer,
XTL::X_DSFILTERDESC* pFilterDesc)
xbox::X_DSFILTERDESC* pFilterDesc)
{
return DS_OK;
@ -1118,19 +1118,19 @@ static inline HRESULT HybridDirectSoundBuffer_SetFormat(
bool X_BufferAllocate,
LPVOID &X_BufferCache,
DWORD &X_BufferCacheSize,
XTL::X_DSVOICEPROPS &Xb_VoiceProperties,
XTL::X_LPDSMIXBINS mixbins_output,
XTL::CDirectSoundVoice* Xb_Voice)
xbox::X_DSVOICEPROPS &Xb_VoiceProperties,
xbox::X_LPDSMIXBINS mixbins_output,
xbox::CDirectSoundVoice* Xb_Voice)
{
pDSBuffer->Stop();
if (X_BufferAllocate) {
GeneratePCMFormat(BufferDesc, Xb_pwfxFormat, Xb_flags, dwEmuFlags, X_BufferCacheSize,
xbnullptr, X_BufferCacheSize, Xb_VoiceProperties, mixbins_output, Xb_Voice);
xbox::zeroptr, X_BufferCacheSize, Xb_VoiceProperties, mixbins_output, Xb_Voice);
// Don't allocate for DS Stream class, it is using straight from the source.
} else {
GeneratePCMFormat(BufferDesc, Xb_pwfxFormat, Xb_flags, dwEmuFlags, 0,
xbnullptr, X_BufferCacheSize, Xb_VoiceProperties, mixbins_output, Xb_Voice);
xbox::zeroptr, X_BufferCacheSize, Xb_VoiceProperties, mixbins_output, Xb_Voice);
}
HRESULT hRet = DS_OK;
if ((void*)g_pDSoundPrimaryBuffer == (void*)pDSBuffer) {
@ -1147,14 +1147,14 @@ static inline HRESULT HybridDirectSoundBuffer_SetFormat(
RETURN_RESULT_CHECK(hRet);
}
static HRESULT HybridDirectSoundBuffer_SetPitch(LPDIRECTSOUNDBUFFER8, LONG, XTL::CDirectSoundVoice*);
static HRESULT HybridDirectSoundBuffer_SetPitch(LPDIRECTSOUNDBUFFER8, LONG, xbox::CDirectSoundVoice*);
//IDirectSoundStream
//IDirectSoundBuffer
static inline HRESULT HybridDirectSoundBuffer_SetFrequency(
LPDIRECTSOUNDBUFFER8 pDSBuffer,
DWORD dwFrequency,
XTL::CDirectSoundVoice* Xb_Voice)
xbox::CDirectSoundVoice* Xb_Voice)
{
HRESULT hRet = S_OK;
@ -1165,7 +1165,7 @@ static inline HRESULT HybridDirectSoundBuffer_SetFrequency(
RETURN_RESULT_CHECK(hRet);
}
static HRESULT HybridDirectSoundBuffer_SetVolume(LPDIRECTSOUNDBUFFER8, LONG, DWORD, LONG, XTL::CDirectSoundVoice*);
static HRESULT HybridDirectSoundBuffer_SetVolume(LPDIRECTSOUNDBUFFER8, LONG, DWORD, LONG, xbox::CDirectSoundVoice*);
//IDirectSoundStream
//IDirectSoundBuffer
@ -1175,7 +1175,7 @@ static inline HRESULT HybridDirectSoundBuffer_SetHeadroom(
DWORD dwHeadroom,
LONG Xb_volumeMixbin,
DWORD dwEmuFlags,
XTL::CDirectSoundVoice* Xb_Voice)
xbox::CDirectSoundVoice* Xb_Voice)
{
HRESULT hRet;
if (dwHeadroom > 10000) {
@ -1271,18 +1271,18 @@ static inline HRESULT HybridDirectSoundBuffer_SetMixBins(
//IDirectSoundBuffer x2
static inline HRESULT HybridDirectSoundBuffer_SetMixBinVolumes_8(
LPDIRECTSOUNDBUFFER8 pDSBuffer,
XTL::X_LPDSMIXBINS pMixBins,
XTL::X_DSVOICEPROPS& Xb_VoiceProperties,
xbox::X_LPDSMIXBINS pMixBins,
xbox::X_DSVOICEPROPS& Xb_VoiceProperties,
DWORD EmuFlags,
LONG &Xb_volumeMixBin,
XTL::CDirectSoundVoice* Xb_Voice)
xbox::CDirectSoundVoice* Xb_Voice)
{
HRESULT hRet = DSERR_INVALIDPARAM;
if (pMixBins != xbnullptr) {
if (pMixBins != xbox::zeroptr) {
DWORD counter = pMixBins->dwCount, count = pMixBins->dwCount;
LONG volume = 0;
if (pMixBins->lpMixBinVolumePairs != xbnullptr) {
if (pMixBins->lpMixBinVolumePairs != xbox::zeroptr) {
// Let's normalize audio level except for low frequency (subwoofer)
for (DWORD i = 0; i < count; i++) {
// Update the mixbin volume only, do not reassign volume pair array.
@ -1369,7 +1369,7 @@ static inline HRESULT HybridDirectSoundBuffer_SetOutputBuffer(
static inline HRESULT HybridDirectSoundBuffer_SetPitch(
LPDIRECTSOUNDBUFFER8 pDSBuffer,
LONG lPitch,
XTL::CDirectSoundVoice* Xb_Voice)
xbox::CDirectSoundVoice* Xb_Voice)
{
Xb_Voice->SetPitch(lPitch);
@ -1460,7 +1460,7 @@ static inline HRESULT HybridDirectSoundBuffer_SetVolume(
LONG lVolume,
DWORD dwEmuFlags,
LONG Xb_volumeMixbin,
XTL::CDirectSoundVoice* Xb_Voice)
xbox::CDirectSoundVoice* Xb_Voice)
{
#if 0 // TODO: Restore it once DSound work update comes up
@ -1506,13 +1506,13 @@ static inline HRESULT HybridDirectSoundBuffer_Unlock(
}//*/
static inline HRESULT HybridDirectSoundBuffer_GetVoiceProperties(
XTL::X_DSVOICEPROPS& Xb_VoiceProperties,
XTL::X_DSVOICEPROPS* out_VoiceProperties
xbox::X_DSVOICEPROPS& Xb_VoiceProperties,
xbox::X_DSVOICEPROPS* out_VoiceProperties
)
{
HRESULT ret = DS_OK;
if (out_VoiceProperties != xbnullptr) {
if (out_VoiceProperties != xbox::zeroptr) {
// Simply copy the data from Xb_VoiceProperties.
*out_VoiceProperties = Xb_VoiceProperties;
}
@ -1524,8 +1524,8 @@ static inline HRESULT HybridDirectSoundBuffer_GetVoiceProperties(
}
static inline HRESULT HybridDirectSoundBuffer_SetMixBins(
XTL::X_DSVOICEPROPS& Xb_VoiceProperties,
XTL::X_LPDSMIXBINS in_MixBins,
xbox::X_DSVOICEPROPS& Xb_VoiceProperties,
xbox::X_LPDSMIXBINS in_MixBins,
LPCWAVEFORMATEX pwfxFormat,
DSBUFFERDESC& BufferDesc
)

View File

@ -46,27 +46,27 @@
// * IDirectSoundStream_QueryInterface (not require)
// * IDirectSoundStream_QueryInterfaceC (not require)
XTL::X_CMcpxStream::_vtbl XTL::X_CMcpxStream::vtbl =
xbox::X_CMcpxStream::_vtbl xbox::X_CMcpxStream::vtbl =
{
0xBEEFC001, // 0x00
0xBEEFC002, // 0x04
0xBEEFC003, // 0x08
0xBEEFC004, // 0x0C
&XTL::EMUPATCH(CMcpxStream_Dummy_0x10),// 0x10
&xbox::EMUPATCH(CMcpxStream_Dummy_0x10),// 0x10
};
XTL::X_CDirectSoundStream::_vtbl XTL::X_CDirectSoundStream::vtbl =
xbox::X_CDirectSoundStream::_vtbl xbox::X_CDirectSoundStream::vtbl =
{
&XTL::EMUPATCH(CDirectSoundStream_AddRef), // 0x00
&XTL::EMUPATCH(CDirectSoundStream_Release), // 0x04
&xbox::EMUPATCH(CDirectSoundStream_AddRef), // 0x00
&xbox::EMUPATCH(CDirectSoundStream_Release), // 0x04
/*
STDMETHOD(GetInfo)(THIS_ LPXMEDIAINFO pInfo) PURE;
*/
&XTL::EMUPATCH(CDirectSoundStream_GetInfo), // 0x08
&XTL::EMUPATCH(CDirectSoundStream_GetStatus), // 0x0C
&XTL::EMUPATCH(CDirectSoundStream_Process), // 0x10
&XTL::EMUPATCH(CDirectSoundStream_Discontinuity), // 0x14
&XTL::EMUPATCH(CDirectSoundStream_Flush), // 0x18
&xbox::EMUPATCH(CDirectSoundStream_GetInfo), // 0x08
&xbox::EMUPATCH(CDirectSoundStream_GetStatus), // 0x0C
&xbox::EMUPATCH(CDirectSoundStream_Process), // 0x10
&xbox::EMUPATCH(CDirectSoundStream_Discontinuity), // 0x14
&xbox::EMUPATCH(CDirectSoundStream_Flush), // 0x18
0xBEEFB003, // 0x1C // unknown function
0xBEEFB004, // 0x20 // DS_CRefCount_AddRef
0xBEEFB005, // 0x24 // DS_CRefCount_Release
@ -87,7 +87,7 @@ XTL::X_CDirectSoundStream::_vtbl XTL::X_CDirectSoundStream::vtbl =
// ******************************************************************
// * patch: DirectSoundDoWork (stream)
// ******************************************************************
void DirectSoundDoWork_Stream(xboxkrnl::LARGE_INTEGER& time)
void DirectSoundDoWork_Stream(xbox::LARGE_INTEGER& time)
{
// Actually, DirectSoundStream need to process buffer packets here.
vector_ds_stream::iterator ppDSStream = g_pDSoundStreamCache.begin();
@ -95,7 +95,7 @@ void DirectSoundDoWork_Stream(xboxkrnl::LARGE_INTEGER& time)
if ((*ppDSStream)->Host_BufferPacketArray.size() == 0) {
continue;
}
XTL::X_CDirectSoundStream* pThis = (*ppDSStream);
xbox::X_CDirectSoundStream* pThis = (*ppDSStream);
// TODO: Do we need this in async thread loop?
if (pThis->Xb_rtPauseEx != 0LL && pThis->Xb_rtPauseEx <= time.QuadPart) {
pThis->Xb_rtPauseEx = 0LL;
@ -117,7 +117,7 @@ void DirectSoundDoWork_Stream(xboxkrnl::LARGE_INTEGER& time)
// ******************************************************************
// * patch: CDirectSoundStream_AddRef
// ******************************************************************
ULONG WINAPI XTL::EMUPATCH(CDirectSoundStream_AddRef)
ULONG WINAPI xbox::EMUPATCH(CDirectSoundStream_AddRef)
(
X_CDirectSoundStream* pThis)
{
@ -133,7 +133,7 @@ ULONG WINAPI XTL::EMUPATCH(CDirectSoundStream_AddRef)
// ******************************************************************
// * patch: CDirectSoundStream_Release
// ******************************************************************
ULONG WINAPI XTL::EMUPATCH(CDirectSoundStream_Release)
ULONG WINAPI xbox::EMUPATCH(CDirectSoundStream_Release)
(
X_CDirectSoundStream* pThis)
{
@ -175,7 +175,7 @@ ULONG WINAPI XTL::EMUPATCH(CDirectSoundStream_Release)
// ******************************************************************
// * patch: DirectSoundCreateStream
// ******************************************************************
HRESULT WINAPI XTL::EMUPATCH(DirectSoundCreateStream)
HRESULT WINAPI xbox::EMUPATCH(DirectSoundCreateStream)
(
X_DSSTREAMDESC* pdssd,
OUT X_CDirectSoundStream** ppStream)
@ -186,7 +186,7 @@ HRESULT WINAPI XTL::EMUPATCH(DirectSoundCreateStream)
if (!g_pDSound8 && !g_bDSoundCreateCalled) {
HRESULT hRet;
hRet = XTL::EMUPATCH(DirectSoundCreate)(nullptr, &g_pDSound8, nullptr);
hRet = xbox::EMUPATCH(DirectSoundCreate)(nullptr, &g_pDSound8, nullptr);
if (hRet != DS_OK) {
CxbxKrnlCleanup("Unable to initialize DirectSound!");
}
@ -203,7 +203,7 @@ HRESULT WINAPI XTL::EMUPATCH(DirectSoundCreateStream)
if (X_DIRECTSOUND_CACHE_COUNT == X_DIRECTSOUND_CACHE_MAX) {
hRet = DSERR_OUTOFMEMORY;
*ppStream = xbnullptr;
*ppStream = xbox::zeroptr;
} else {
DSBUFFERDESC DSBufferDesc = { 0 };
@ -233,7 +233,7 @@ HRESULT WINAPI XTL::EMUPATCH(DirectSoundCreateStream)
// We have to set DSBufferDesc last due to EmuFlags must be either 0 or previously written value to preserve other flags.
GeneratePCMFormat(DSBufferDesc, pdssd->lpwfxFormat, pdssd->dwFlags, (*ppStream)->EmuFlags, 0,
xbnullptr, (*ppStream)->X_BufferCacheSize, (*ppStream)->Xb_VoiceProperties, pdssd->lpMixBinsOutput,
xbox::zeroptr, (*ppStream)->X_BufferCacheSize, (*ppStream)->Xb_VoiceProperties, pdssd->lpMixBinsOutput,
&(*ppStream)->Xb_Voice);
// Test case: Star Wars: KotOR has one packet greater than 5 seconds worth. Increasing to 10 seconds allow stream to work until
@ -288,7 +288,7 @@ HRESULT WINAPI XTL::EMUPATCH(DirectSoundCreateStream)
// ******************************************************************
// * patch: IDirectSound_CreateSoundStream
// ******************************************************************
HRESULT WINAPI XTL::EMUPATCH(IDirectSound_CreateSoundStream)
HRESULT WINAPI xbox::EMUPATCH(IDirectSound_CreateSoundStream)
(
LPDIRECTSOUND8 pThis,
X_DSSTREAMDESC* pdssd,
@ -307,7 +307,7 @@ HRESULT WINAPI XTL::EMUPATCH(IDirectSound_CreateSoundStream)
// ******************************************************************
// * patch: CMcpxStream_Dummy_0x10
// ******************************************************************
VOID WINAPI XTL::EMUPATCH(CMcpxStream_Dummy_0x10)(DWORD dwDummy1, DWORD dwDummy2)
VOID WINAPI xbox::EMUPATCH(CMcpxStream_Dummy_0x10)(DWORD dwDummy1, DWORD dwDummy2)
{
DSoundMutexGuardLock;
@ -328,7 +328,7 @@ VOID WINAPI XTL::EMUPATCH(CMcpxStream_Dummy_0x10)(DWORD dwDummy1, DWORD dwDummy2
// ******************************************************************
// * patch: CDirectSoundStream_Discontinuity
// ******************************************************************
HRESULT WINAPI XTL::EMUPATCH(CDirectSoundStream_Discontinuity)
HRESULT WINAPI xbox::EMUPATCH(CDirectSoundStream_Discontinuity)
(
X_CDirectSoundStream* pThis)
{
@ -349,7 +349,7 @@ HRESULT WINAPI XTL::EMUPATCH(CDirectSoundStream_Discontinuity)
// ******************************************************************
// * patch: CDirectSoundStream_Flush
// ******************************************************************
HRESULT WINAPI XTL::EMUPATCH(CDirectSoundStream_Flush)
HRESULT WINAPI xbox::EMUPATCH(CDirectSoundStream_Flush)
(
X_CDirectSoundStream* pThis)
{
@ -367,7 +367,7 @@ HRESULT WINAPI XTL::EMUPATCH(CDirectSoundStream_Flush)
// ******************************************************************
// * patch: CDirectSoundStream_FlushEx
// ******************************************************************
HRESULT WINAPI XTL::EMUPATCH(CDirectSoundStream_FlushEx)
HRESULT WINAPI xbox::EMUPATCH(CDirectSoundStream_FlushEx)
(
X_CDirectSoundStream* pThis,
REFERENCE_TIME rtTimeStamp,
@ -388,7 +388,7 @@ HRESULT WINAPI XTL::EMUPATCH(CDirectSoundStream_FlushEx)
// Cannot use rtTimeStamp here, it must be flush.
if (dwFlags == X_DSSFLUSHEX_IMMEDIATE) {
hRet = XTL::EMUPATCH(CDirectSoundStream_Flush)(pThis);
hRet = xbox::EMUPATCH(CDirectSoundStream_Flush)(pThis);
}
// Remaining flags require X_DSSFLUSHEX_ASYNC to be include.
@ -401,8 +401,8 @@ HRESULT WINAPI XTL::EMUPATCH(CDirectSoundStream_FlushEx)
// If flush is not busy, then we don't need worker thread to continue flushing.
return hRet;
}
xboxkrnl::LARGE_INTEGER getTime;
xboxkrnl::KeQuerySystemTime(&getTime);
xbox::LARGE_INTEGER getTime;
xbox::KeQuerySystemTime(&getTime);
pThis->Xb_rtFlushEx = getTime.QuadPart;
}
else {
@ -430,7 +430,7 @@ HRESULT WINAPI XTL::EMUPATCH(CDirectSoundStream_FlushEx)
// ******************************************************************
// * patch: CDirectSoundStream_GetInfo
// ******************************************************************
HRESULT WINAPI XTL::EMUPATCH(CDirectSoundStream_GetInfo)
HRESULT WINAPI xbox::EMUPATCH(CDirectSoundStream_GetInfo)
(
X_CDirectSoundStream* pThis,
OUT LPXMEDIAINFO pInfo)
@ -455,7 +455,7 @@ HRESULT WINAPI XTL::EMUPATCH(CDirectSoundStream_GetInfo)
// ******************************************************************
// * patch: CDirectSoundStream_GetStatus
// ******************************************************************
HRESULT WINAPI XTL::EMUPATCH(CDirectSoundStream_GetStatus)
HRESULT WINAPI xbox::EMUPATCH(CDirectSoundStream_GetStatus)
(
X_CDirectSoundStream* pThis,
OUT DWORD* pdwStatus)
@ -481,7 +481,7 @@ HRESULT WINAPI XTL::EMUPATCH(CDirectSoundStream_GetStatus)
}
*pdwStatus = dwStatusXbox;
} else if (pdwStatus != xbnullptr) {
} else if (pdwStatus != xbox::zeroptr) {
*pdwStatus = 0;
}
@ -498,7 +498,7 @@ HRESULT WINAPI XTL::EMUPATCH(CDirectSoundStream_GetStatus)
// ******************************************************************
// * patch: CDirectSoundStream_GetVoiceProperties
// ******************************************************************
HRESULT WINAPI XTL::EMUPATCH(CDirectSoundStream_GetVoiceProperties)
HRESULT WINAPI xbox::EMUPATCH(CDirectSoundStream_GetVoiceProperties)
(
X_CDirectSoundStream* pThis,
OUT X_DSVOICEPROPS* pVoiceProps
@ -510,8 +510,8 @@ HRESULT WINAPI XTL::EMUPATCH(CDirectSoundStream_GetVoiceProperties)
LOG_FUNC_ARG_OUT(pVoiceProps)
LOG_FUNC_END;
if (pVoiceProps == xbnullptr) {
LOG_TEST_CASE("pVoiceProps == xbnullptr");
if (pVoiceProps == xbox::zeroptr) {
LOG_TEST_CASE("pVoiceProps == xbox::zeroptr");
RETURN(DS_OK);
}
@ -523,7 +523,7 @@ HRESULT WINAPI XTL::EMUPATCH(CDirectSoundStream_GetVoiceProperties)
// ******************************************************************
// * patch: CDirectSoundStream_Pause
// ******************************************************************
HRESULT WINAPI XTL::EMUPATCH(CDirectSoundStream_Pause)
HRESULT WINAPI xbox::EMUPATCH(CDirectSoundStream_Pause)
(
X_CDirectSoundStream* pThis,
DWORD dwPause)
@ -567,7 +567,7 @@ HRESULT WINAPI XTL::EMUPATCH(CDirectSoundStream_Pause)
// ******************************************************************
// * patch: CDirectSoundStream_PauseEx
// ******************************************************************
HRESULT WINAPI XTL::EMUPATCH(CDirectSoundStream_PauseEx)
HRESULT WINAPI xbox::EMUPATCH(CDirectSoundStream_PauseEx)
(
X_CDirectSoundStream *pThis,
REFERENCE_TIME rtTimestamp,
@ -593,7 +593,7 @@ HRESULT WINAPI XTL::EMUPATCH(CDirectSoundStream_PauseEx)
// ******************************************************************
// * patch: CDirectSoundStream_Process
// ******************************************************************
HRESULT WINAPI XTL::EMUPATCH(CDirectSoundStream_Process)
HRESULT WINAPI xbox::EMUPATCH(CDirectSoundStream_Process)
(
X_CDirectSoundStream *pThis,
PXMEDIAPACKET pInputBuffer,
@ -613,7 +613,7 @@ HRESULT WINAPI XTL::EMUPATCH(CDirectSoundStream_Process)
if (pThis->EmuDirectSoundBuffer8 != nullptr) {
if (pInputBuffer != xbnullptr) {
if (pInputBuffer != xbox::zeroptr) {
// Add packets from title until it gets full.
if (pThis->Host_BufferPacketArray.size() != pThis->X_MaxAttachedPackets) {
@ -641,10 +641,10 @@ HRESULT WINAPI XTL::EMUPATCH(CDirectSoundStream_Process)
pThis->Host_BufferPacketArray.push_back(packet_input);
if (pInputBuffer->pdwStatus != xbnullptr) {
if (pInputBuffer->pdwStatus != xbox::zeroptr) {
(*pInputBuffer->pdwStatus) = XMP_STATUS_PENDING;
}
if (pInputBuffer->pdwCompletedSize != xbnullptr) {
if (pInputBuffer->pdwCompletedSize != xbox::zeroptr) {
(*pInputBuffer->pdwCompletedSize) = 0;
}
if (pThis->Host_isProcessing == false && pThis->Host_BufferPacketArray.size() == 1) {
@ -660,7 +660,7 @@ HRESULT WINAPI XTL::EMUPATCH(CDirectSoundStream_Process)
DSStream_Packet_Process(pThis);
// Once full it needs to change status to flushed when cannot hold any more packets.
} else {
if (pInputBuffer->pdwStatus != xbnullptr) {
if (pInputBuffer->pdwStatus != xbox::zeroptr) {
(*pInputBuffer->pdwStatus) = XMP_STATUS_FAILURE;
}
}
@ -668,12 +668,12 @@ HRESULT WINAPI XTL::EMUPATCH(CDirectSoundStream_Process)
//TODO: What to do with output buffer audio variable? Need test case or functional source code.
// NOTE: pOutputBuffer is reserved, must be set to NULL from titles.
if (pOutputBuffer != xbnullptr) {
if (pOutputBuffer != xbox::zeroptr) {
LOG_TEST_CASE("pOutputBuffer is not nullptr, please report title test case to issue tracker. Thanks!");
}
} else {
if (pInputBuffer != xbnullptr && pInputBuffer->pdwStatus != xbnullptr) {
if (pInputBuffer != xbox::zeroptr && pInputBuffer->pdwStatus != xbox::zeroptr) {
(*pInputBuffer->pdwStatus) = XMP_STATUS_SUCCESS;
}
}
@ -684,7 +684,7 @@ HRESULT WINAPI XTL::EMUPATCH(CDirectSoundStream_Process)
// ******************************************************************
// * patch: CDirectSoundStream_SetAllParameters
// ******************************************************************
HRESULT WINAPI XTL::EMUPATCH(CDirectSoundStream_SetAllParameters)
HRESULT WINAPI xbox::EMUPATCH(CDirectSoundStream_SetAllParameters)
(
X_CDirectSoundStream* pThis,
X_DS3DBUFFER* pc3DBufferParameters,
@ -706,7 +706,7 @@ HRESULT WINAPI XTL::EMUPATCH(CDirectSoundStream_SetAllParameters)
// ******************************************************************
// * patch: CDirectSoundStream_SetConeAngles
// ******************************************************************
HRESULT WINAPI XTL::EMUPATCH(CDirectSoundStream_SetConeAngles)
HRESULT WINAPI xbox::EMUPATCH(CDirectSoundStream_SetConeAngles)
(
X_CDirectSoundStream* pThis,
DWORD dwInsideConeAngle,
@ -730,7 +730,7 @@ HRESULT WINAPI XTL::EMUPATCH(CDirectSoundStream_SetConeAngles)
// ******************************************************************
// * patch: CDirectSoundStream_SetConeOrientation
// ******************************************************************
HRESULT WINAPI XTL::EMUPATCH(CDirectSoundStream_SetConeOrientation)
HRESULT WINAPI xbox::EMUPATCH(CDirectSoundStream_SetConeOrientation)
(
X_CDirectSoundStream* pThis,
D3DVALUE x,
@ -756,7 +756,7 @@ HRESULT WINAPI XTL::EMUPATCH(CDirectSoundStream_SetConeOrientation)
// ******************************************************************
// * patch: CDirectSoundStream_SetConeOutsideVolume
// ******************************************************************
HRESULT WINAPI XTL::EMUPATCH(CDirectSoundStream_SetConeOutsideVolume)
HRESULT WINAPI xbox::EMUPATCH(CDirectSoundStream_SetConeOutsideVolume)
(
X_CDirectSoundStream* pThis,
LONG lConeOutsideVolume,
@ -778,7 +778,7 @@ HRESULT WINAPI XTL::EMUPATCH(CDirectSoundStream_SetConeOutsideVolume)
// ******************************************************************
// * patch: CDirectSoundStream_SetDistanceFactor
// ******************************************************************
HRESULT WINAPI XTL::EMUPATCH(CDirectSoundStream_SetDistanceFactor)
HRESULT WINAPI xbox::EMUPATCH(CDirectSoundStream_SetDistanceFactor)
(
X_CDirectSoundStream* pThis,
FLOAT flDistanceFactor,
@ -800,7 +800,7 @@ HRESULT WINAPI XTL::EMUPATCH(CDirectSoundStream_SetDistanceFactor)
// ******************************************************************
// * patch: CDirectSoundStream_SetDopplerFactor
// ******************************************************************
HRESULT WINAPI XTL::EMUPATCH(CDirectSoundStream_SetDopplerFactor)
HRESULT WINAPI xbox::EMUPATCH(CDirectSoundStream_SetDopplerFactor)
(
X_CDirectSoundStream* pThis,
FLOAT flDopplerFactor,
@ -822,7 +822,7 @@ HRESULT WINAPI XTL::EMUPATCH(CDirectSoundStream_SetDopplerFactor)
// ******************************************************************
// * patch: CDirectSoundStream_SetEG
// ******************************************************************
HRESULT WINAPI XTL::EMUPATCH(CDirectSoundStream_SetEG)
HRESULT WINAPI xbox::EMUPATCH(CDirectSoundStream_SetEG)
(
X_CDirectSoundStream* pThis,
X_DSENVOLOPEDESC* pEnvelopeDesc)
@ -846,7 +846,7 @@ HRESULT WINAPI XTL::EMUPATCH(CDirectSoundStream_SetEG)
// ******************************************************************
// * patch: IDirectSoundStream_SetEG
// ******************************************************************
HRESULT WINAPI XTL::EMUPATCH(IDirectSoundStream_SetEG)
HRESULT WINAPI xbox::EMUPATCH(IDirectSoundStream_SetEG)
(
X_CDirectSoundStream* pThis,
X_DSENVOLOPEDESC* pEnvelopeDesc)
@ -855,13 +855,13 @@ HRESULT WINAPI XTL::EMUPATCH(IDirectSoundStream_SetEG)
LOG_FORWARD("CDirectSoundStream_SetEG");
return XTL::EMUPATCH(CDirectSoundStream_SetEG)(pThis, pEnvelopeDesc);
return xbox::EMUPATCH(CDirectSoundStream_SetEG)(pThis, pEnvelopeDesc);
}
// ******************************************************************
// * patch: CDirectSoundStream_SetFilter
// ******************************************************************
HRESULT WINAPI XTL::EMUPATCH(CDirectSoundStream_SetFilter)
HRESULT WINAPI xbox::EMUPATCH(CDirectSoundStream_SetFilter)
(
X_CDirectSoundStream* pThis,
X_DSFILTERDESC* pFilterDesc)
@ -883,7 +883,7 @@ HRESULT WINAPI XTL::EMUPATCH(CDirectSoundStream_SetFilter)
// ******************************************************************
// * patch: IDirectSoundStream_SetFilter
// ******************************************************************
HRESULT WINAPI XTL::EMUPATCH(IDirectSoundStream_SetFilter)
HRESULT WINAPI xbox::EMUPATCH(IDirectSoundStream_SetFilter)
(
X_CDirectSoundStream* pThis,
X_DSFILTERDESC* pFilterDesc)
@ -892,13 +892,13 @@ HRESULT WINAPI XTL::EMUPATCH(IDirectSoundStream_SetFilter)
LOG_FORWARD("CDirectSoundStream_SetFilter");
return XTL::EMUPATCH(CDirectSoundStream_SetFilter)(pThis, pFilterDesc);
return xbox::EMUPATCH(CDirectSoundStream_SetFilter)(pThis, pFilterDesc);
}
// ******************************************************************
// * patch: CDirectSoundStream::SetFormat
// ******************************************************************
HRESULT WINAPI XTL::EMUPATCH(CDirectSoundStream_SetFormat)
HRESULT WINAPI xbox::EMUPATCH(CDirectSoundStream_SetFormat)
(
X_CDirectSoundStream* pThis,
LPCWAVEFORMATEX pwfxFormat)
@ -916,7 +916,7 @@ HRESULT WINAPI XTL::EMUPATCH(CDirectSoundStream_SetFormat)
pThis->EmuBufferDesc, pThis->EmuFlags, pThis->EmuPlayFlags,
pThis->EmuDirectSound3DBuffer8, 0, pThis->X_BufferCache,
pThis->X_BufferCacheSize, pThis->Xb_VoiceProperties,
xbnullptr, &pThis->Xb_Voice);
xbox::zeroptr, &pThis->Xb_Voice);
return hRet;
}
@ -924,7 +924,7 @@ HRESULT WINAPI XTL::EMUPATCH(CDirectSoundStream_SetFormat)
// ******************************************************************
// * patch: CDirectSoundStream_SetFrequency
// ******************************************************************
HRESULT WINAPI XTL::EMUPATCH(CDirectSoundStream_SetFrequency)
HRESULT WINAPI xbox::EMUPATCH(CDirectSoundStream_SetFrequency)
(
X_CDirectSoundStream* pThis,
DWORD dwFrequency)
@ -944,7 +944,7 @@ HRESULT WINAPI XTL::EMUPATCH(CDirectSoundStream_SetFrequency)
// ******************************************************************
// * patch: IDirectSoundStream_SetFrequency
// ******************************************************************
HRESULT WINAPI XTL::EMUPATCH(IDirectSoundStream_SetFrequency)
HRESULT WINAPI xbox::EMUPATCH(IDirectSoundStream_SetFrequency)
(
X_CDirectSoundStream* pThis,
DWORD dwFrequency)
@ -953,13 +953,13 @@ HRESULT WINAPI XTL::EMUPATCH(IDirectSoundStream_SetFrequency)
LOG_FORWARD("CDirectSoundStream_SetFrequency");
return XTL::EMUPATCH(CDirectSoundStream_SetFrequency)(pThis, dwFrequency);
return xbox::EMUPATCH(CDirectSoundStream_SetFrequency)(pThis, dwFrequency);
}
// ******************************************************************
// * patch: CDirectSoundStream_SetHeadroom
// ******************************************************************
HRESULT WINAPI XTL::EMUPATCH(CDirectSoundStream_SetHeadroom)
HRESULT WINAPI xbox::EMUPATCH(CDirectSoundStream_SetHeadroom)
(
X_CDirectSoundStream* pThis,
DWORD dwHeadroom)
@ -980,7 +980,7 @@ HRESULT WINAPI XTL::EMUPATCH(CDirectSoundStream_SetHeadroom)
// ******************************************************************
// * patch: IDirectSoundStream_SetHeadroom
// ******************************************************************
HRESULT WINAPI XTL::EMUPATCH(IDirectSoundStream_SetHeadroom)
HRESULT WINAPI xbox::EMUPATCH(IDirectSoundStream_SetHeadroom)
(
X_CDirectSoundStream* pThis,
DWORD dwHeadroom)
@ -989,13 +989,13 @@ HRESULT WINAPI XTL::EMUPATCH(IDirectSoundStream_SetHeadroom)
LOG_FORWARD("CDirectSoundStream_SetHeadroom");
return XTL::EMUPATCH(CDirectSoundStream_SetHeadroom)(pThis, dwHeadroom);
return xbox::EMUPATCH(CDirectSoundStream_SetHeadroom)(pThis, dwHeadroom);
}
// ******************************************************************
// * patch: CDirectSoundStream_SetI3DL2Source
// ******************************************************************
HRESULT WINAPI XTL::EMUPATCH(CDirectSoundStream_SetI3DL2Source)
HRESULT WINAPI xbox::EMUPATCH(CDirectSoundStream_SetI3DL2Source)
(
X_CDirectSoundStream* pThis,
X_DSI3DL2BUFFER* pds3db,
@ -1021,7 +1021,7 @@ HRESULT WINAPI XTL::EMUPATCH(CDirectSoundStream_SetI3DL2Source)
// ******************************************************************
// * patch: CDirectSoundStream_SetLFO
// ******************************************************************
HRESULT WINAPI XTL::EMUPATCH(CDirectSoundStream_SetLFO)
HRESULT WINAPI xbox::EMUPATCH(CDirectSoundStream_SetLFO)
(
X_CDirectSoundStream* pThis,
LPCDSLFODESC pLFODesc)
@ -1043,7 +1043,7 @@ HRESULT WINAPI XTL::EMUPATCH(CDirectSoundStream_SetLFO)
// ******************************************************************
// * patch: IDirectSoundStream_SetLFO
// ******************************************************************
HRESULT WINAPI XTL::EMUPATCH(IDirectSoundStream_SetLFO)
HRESULT WINAPI xbox::EMUPATCH(IDirectSoundStream_SetLFO)
(
X_CDirectSoundStream* pThis,
LPCDSLFODESC pLFODesc)
@ -1052,13 +1052,13 @@ HRESULT WINAPI XTL::EMUPATCH(IDirectSoundStream_SetLFO)
LOG_FORWARD("CDirectSoundStream_SetLFO");
return XTL::EMUPATCH(CDirectSoundStream_SetLFO)(pThis, pLFODesc);
return xbox::EMUPATCH(CDirectSoundStream_SetLFO)(pThis, pLFODesc);
}
// ******************************************************************
// * patch: CDirectSoundStream_SetMaxDistance
// ******************************************************************
HRESULT WINAPI XTL::EMUPATCH(CDirectSoundStream_SetMaxDistance)
HRESULT WINAPI xbox::EMUPATCH(CDirectSoundStream_SetMaxDistance)
(
X_CDirectSoundStream* pThis,
D3DVALUE flMaxDistance,
@ -1080,7 +1080,7 @@ HRESULT WINAPI XTL::EMUPATCH(CDirectSoundStream_SetMaxDistance)
// ******************************************************************
// * patch: CDirectSoundStream_SetMinDistance
// ******************************************************************
HRESULT WINAPI XTL::EMUPATCH(CDirectSoundStream_SetMinDistance)
HRESULT WINAPI xbox::EMUPATCH(CDirectSoundStream_SetMinDistance)
(
X_CDirectSoundStream* pThis,
D3DVALUE fMinDistance,
@ -1102,7 +1102,7 @@ HRESULT WINAPI XTL::EMUPATCH(CDirectSoundStream_SetMinDistance)
// ******************************************************************
// * patch: CDirectSoundStream_SetMixBins
// ******************************************************************
HRESULT WINAPI XTL::EMUPATCH(CDirectSoundStream_SetMixBins)
HRESULT WINAPI xbox::EMUPATCH(CDirectSoundStream_SetMixBins)
(
X_CDirectSoundStream* pThis,
DWORD dwMixBinMask) // Also can be X_LPDSMIXBINS (4039+)
@ -1135,7 +1135,7 @@ HRESULT WINAPI XTL::EMUPATCH(CDirectSoundStream_SetMixBins)
// ******************************************************************
// * patch: IDirectSoundStream_SetMixBins
// ******************************************************************
HRESULT WINAPI XTL::EMUPATCH(IDirectSoundStream_SetMixBins)
HRESULT WINAPI xbox::EMUPATCH(IDirectSoundStream_SetMixBins)
(
X_CDirectSoundStream* pThis,
DWORD dwMixBinMask) // Also can be X_LPDSMIXBINS (4039+)
@ -1144,13 +1144,13 @@ HRESULT WINAPI XTL::EMUPATCH(IDirectSoundStream_SetMixBins)
LOG_FORWARD("CDirectSoundStream_SetMixBins");
return XTL::EMUPATCH(CDirectSoundStream_SetMixBins)(pThis, dwMixBinMask);
return xbox::EMUPATCH(CDirectSoundStream_SetMixBins)(pThis, dwMixBinMask);
}
// ******************************************************************
// * patch: CDirectSoundStream_SetMode
// ******************************************************************
HRESULT WINAPI XTL::EMUPATCH(CDirectSoundStream_SetMode)
HRESULT WINAPI xbox::EMUPATCH(CDirectSoundStream_SetMode)
(
X_CDirectSoundStream* pThis,
DWORD dwMode,
@ -1173,7 +1173,7 @@ HRESULT WINAPI XTL::EMUPATCH(CDirectSoundStream_SetMode)
// * patch: CDirectSoundStream_SetMixBinVolumes_12
// This revision API was used in XDK 3911 until API had changed in XDK 4039.
// ******************************************************************
HRESULT WINAPI XTL::EMUPATCH(CDirectSoundStream_SetMixBinVolumes_12)
HRESULT WINAPI xbox::EMUPATCH(CDirectSoundStream_SetMixBinVolumes_12)
(
X_CDirectSoundStream* pThis,
DWORD dwMixBinMask,
@ -1199,7 +1199,7 @@ HRESULT WINAPI XTL::EMUPATCH(CDirectSoundStream_SetMixBinVolumes_12)
// * patch: CDirectSoundStream_SetMixBinVolumes_8
// ******************************************************************
// This revision API is only used in XDK 4039 and higher.
HRESULT WINAPI XTL::EMUPATCH(CDirectSoundStream_SetMixBinVolumes_8)
HRESULT WINAPI xbox::EMUPATCH(CDirectSoundStream_SetMixBinVolumes_8)
(
X_CDirectSoundStream* pThis,
X_LPDSMIXBINS pMixBins)
@ -1220,7 +1220,7 @@ HRESULT WINAPI XTL::EMUPATCH(CDirectSoundStream_SetMixBinVolumes_8)
// ******************************************************************
// * patch: CDirectSoundStream_SetOutputBuffer
// ******************************************************************
HRESULT WINAPI XTL::EMUPATCH(CDirectSoundStream_SetOutputBuffer)
HRESULT WINAPI xbox::EMUPATCH(CDirectSoundStream_SetOutputBuffer)
(
X_CDirectSoundStream* pThis,
XbHybridDSBuffer* pOutputBuffer)
@ -1244,7 +1244,7 @@ HRESULT WINAPI XTL::EMUPATCH(CDirectSoundStream_SetOutputBuffer)
// ******************************************************************
// * patch: CDirectSoundStream_SetPitch
// ******************************************************************
HRESULT WINAPI XTL::EMUPATCH(CDirectSoundStream_SetPitch)
HRESULT WINAPI xbox::EMUPATCH(CDirectSoundStream_SetPitch)
(
X_CDirectSoundStream* pThis,
LONG lPitch)
@ -1264,7 +1264,7 @@ HRESULT WINAPI XTL::EMUPATCH(CDirectSoundStream_SetPitch)
// ******************************************************************
// * patch: IDirectSoundStream_SetPitch
// ******************************************************************
HRESULT WINAPI XTL::EMUPATCH(IDirectSoundStream_SetPitch)
HRESULT WINAPI xbox::EMUPATCH(IDirectSoundStream_SetPitch)
(
X_CDirectSoundStream* pThis,
LONG lPitch)
@ -1273,13 +1273,13 @@ HRESULT WINAPI XTL::EMUPATCH(IDirectSoundStream_SetPitch)
LOG_FORWARD("CDirectSoundStream_SetPitch");
return XTL::EMUPATCH(CDirectSoundStream_SetPitch)(pThis, lPitch);
return xbox::EMUPATCH(CDirectSoundStream_SetPitch)(pThis, lPitch);
}
// ******************************************************************
// * patch: CDirectSoundStream_SetPosition
// ******************************************************************
HRESULT WINAPI XTL::EMUPATCH(CDirectSoundStream_SetPosition)
HRESULT WINAPI xbox::EMUPATCH(CDirectSoundStream_SetPosition)
(
X_CDirectSoundStream* pThis,
D3DVALUE x,
@ -1305,7 +1305,7 @@ HRESULT WINAPI XTL::EMUPATCH(CDirectSoundStream_SetPosition)
// ******************************************************************
// * patch: CDirectSoundStream::SetRolloffCurve
// ******************************************************************
HRESULT WINAPI XTL::EMUPATCH(CDirectSoundStream_SetRolloffCurve)
HRESULT WINAPI xbox::EMUPATCH(CDirectSoundStream_SetRolloffCurve)
(
X_CDirectSoundStream* pThis,
const FLOAT* pflPoints,
@ -1329,7 +1329,7 @@ HRESULT WINAPI XTL::EMUPATCH(CDirectSoundStream_SetRolloffCurve)
// ******************************************************************
// * patch: CDirectSoundStream_SetRolloffFactor
// ******************************************************************
HRESULT WINAPI XTL::EMUPATCH(CDirectSoundStream_SetRolloffFactor)
HRESULT WINAPI xbox::EMUPATCH(CDirectSoundStream_SetRolloffFactor)
(
X_CDirectSoundStream* pThis,
FLOAT fRolloffFactor,
@ -1353,7 +1353,7 @@ HRESULT WINAPI XTL::EMUPATCH(CDirectSoundStream_SetRolloffFactor)
// ******************************************************************
// * patch: CDirectSoundStream_SetVelocity
// ******************************************************************
HRESULT WINAPI XTL::EMUPATCH(CDirectSoundStream_SetVelocity)
HRESULT WINAPI xbox::EMUPATCH(CDirectSoundStream_SetVelocity)
(
X_CDirectSoundStream* pThis,
D3DVALUE x,
@ -1379,7 +1379,7 @@ HRESULT WINAPI XTL::EMUPATCH(CDirectSoundStream_SetVelocity)
// ******************************************************************
// * patch: CDirectSoundStream_SetVolume
// ******************************************************************
HRESULT WINAPI XTL::EMUPATCH(CDirectSoundStream_SetVolume)
HRESULT WINAPI xbox::EMUPATCH(CDirectSoundStream_SetVolume)
(
X_CDirectSoundStream* pThis,
LONG lVolume)
@ -1400,7 +1400,7 @@ HRESULT WINAPI XTL::EMUPATCH(CDirectSoundStream_SetVolume)
// ******************************************************************
// * patch: IDirectSoundStream_SetVolume
// ******************************************************************
HRESULT WINAPI XTL::EMUPATCH(IDirectSoundStream_SetVolume)
HRESULT WINAPI xbox::EMUPATCH(IDirectSoundStream_SetVolume)
(
X_CDirectSoundStream* pThis,
LONG lVolume
@ -1410,13 +1410,13 @@ HRESULT WINAPI XTL::EMUPATCH(IDirectSoundStream_SetVolume)
LOG_FORWARD("CDirectSoundStream_SetVolume");
return XTL::EMUPATCH(CDirectSoundStream_SetVolume)(pThis, lVolume);
return xbox::EMUPATCH(CDirectSoundStream_SetVolume)(pThis, lVolume);
}
// ******************************************************************
// * patch: IDirectSoundStream_Set3DVoiceData
// ******************************************************************
HRESULT WINAPI XTL::EMUPATCH(IDirectSoundStream_Set3DVoiceData)
HRESULT WINAPI xbox::EMUPATCH(IDirectSoundStream_Set3DVoiceData)
(
X_CDirectSoundStream* pThis,
DWORD a2
@ -1437,7 +1437,7 @@ HRESULT WINAPI XTL::EMUPATCH(IDirectSoundStream_Set3DVoiceData)
// ******************************************************************
// * patch: IDirectSoundBuffer_Use3DVoiceData
// ******************************************************************
HRESULT WINAPI XTL::EMUPATCH(IDirectSoundStream_Use3DVoiceData)
HRESULT WINAPI xbox::EMUPATCH(IDirectSoundStream_Use3DVoiceData)
(
X_CDirectSoundStream* pThis,
DWORD a2

View File

@ -47,18 +47,18 @@
// - WmaCreateInMemoryDecoderEx (Is just a forward to WmaCreateInMemoryDecoder, nothing else)
// * XWmaDecoderCreateMediaObject (Need OOVPA)
XTL::X_XFileMediaObject::_vtbl XTL::X_XFileMediaObject::vtbl =
xbox::X_XFileMediaObject::_vtbl xbox::X_XFileMediaObject::vtbl =
{
&XTL::EMUPATCH(XFileMediaObject_AddRef), // 0x00
&XTL::EMUPATCH(XFileMediaObject_Release), // 0x04
&XTL::EMUPATCH(XFileMediaObject_GetInfo), // 0x08
&XTL::EMUPATCH(XFileMediaObject_GetStatus), // 0x0C
&XTL::EMUPATCH(XFileMediaObject_Process), // 0x10
&XTL::EMUPATCH(XFileMediaObject_Discontinuity), // 0x14
&xbox::EMUPATCH(XFileMediaObject_AddRef), // 0x00
&xbox::EMUPATCH(XFileMediaObject_Release), // 0x04
&xbox::EMUPATCH(XFileMediaObject_GetInfo), // 0x08
&xbox::EMUPATCH(XFileMediaObject_GetStatus), // 0x0C
&xbox::EMUPATCH(XFileMediaObject_Process), // 0x10
&xbox::EMUPATCH(XFileMediaObject_Discontinuity), // 0x14
0xBEEFD007, // 0x18
&XTL::EMUPATCH(XFileMediaObject_Seek), // 0x1C
&xbox::EMUPATCH(XFileMediaObject_Seek), // 0x1C
0xBEEFD009, // 0x20
&XTL::EMUPATCH(XFileMediaObject_DoWork), // 0x24
&xbox::EMUPATCH(XFileMediaObject_DoWork), // 0x24
};
/* NOTE: SUCCEEDED define is only checking for is equal or greater than zero value.
@ -70,7 +70,7 @@ XTL::X_XFileMediaObject::_vtbl XTL::X_XFileMediaObject::vtbl =
// ******************************************************************
// * patch: XAudioCreateAdpcmFormat
// ******************************************************************
VOID WINAPI XTL::EMUPATCH(XAudioCreateAdpcmFormat)
VOID WINAPI xbox::EMUPATCH(XAudioCreateAdpcmFormat)
(
WORD nChannels,
DWORD nSamplesPerSec,
@ -99,7 +99,7 @@ VOID WINAPI XTL::EMUPATCH(XAudioCreateAdpcmFormat)
// ******************************************************************
// * patch: XAudioDownloadEffectsImage
// ******************************************************************
HRESULT WINAPI XTL::EMUPATCH(XAudioDownloadEffectsImage)
HRESULT WINAPI xbox::EMUPATCH(XAudioDownloadEffectsImage)
(
LPCSTR pszImageName,
LPVOID pImageLoc,
@ -123,7 +123,7 @@ HRESULT WINAPI XTL::EMUPATCH(XAudioDownloadEffectsImage)
// ******************************************************************
// * patch: XAudioSetEffectData
// ******************************************************************
HRESULT WINAPI XTL::EMUPATCH(XAudioSetEffectData)
HRESULT WINAPI xbox::EMUPATCH(XAudioSetEffectData)
(
DWORD dwEffectIndex,
void* pDesc,
@ -145,7 +145,7 @@ HRESULT WINAPI XTL::EMUPATCH(XAudioSetEffectData)
// ******************************************************************
// * patch: XFileCreaeMediaObject
// ******************************************************************
HRESULT WINAPI XTL::EMUPATCH(XFileCreateMediaObject)
HRESULT WINAPI xbox::EMUPATCH(XFileCreateMediaObject)
(
LPCSTR pstrFileName,
DWORD dwDesiredAccess,
@ -174,7 +174,7 @@ HRESULT WINAPI XTL::EMUPATCH(XFileCreateMediaObject)
// * patch: XFileCreateMediaObjectAsync
// ******************************************************************
// NOTE: Does not require a patch.
HRESULT WINAPI XTL::EMUPATCH(XFileCreateMediaObjectAsync)
HRESULT WINAPI xbox::EMUPATCH(XFileCreateMediaObjectAsync)
(
HANDLE hFile,
DWORD dwMaxPackets,
@ -198,7 +198,7 @@ HRESULT WINAPI XTL::EMUPATCH(XFileCreateMediaObjectAsync)
// ******************************************************************
// * patch: XFileCreaeMediaObjectEx
// ******************************************************************
HRESULT WINAPI XTL::EMUPATCH(XFileCreateMediaObjectEx)
HRESULT WINAPI xbox::EMUPATCH(XFileCreateMediaObjectEx)
(
HANDLE hFile,
OUT void** ppMediaObject)
@ -219,7 +219,7 @@ HRESULT WINAPI XTL::EMUPATCH(XFileCreateMediaObjectEx)
// * patch: XWaveFileCreateMediaObject
// ******************************************************************
// NOTE: Does not require any patch.
HRESULT WINAPI XTL::EMUPATCH(XWaveFileCreateMediaObject)
HRESULT WINAPI xbox::EMUPATCH(XWaveFileCreateMediaObject)
(
LPCSTR pszFileName,
LPCWAVEFORMATEX* ppwfxFormat,
@ -244,7 +244,7 @@ HRESULT WINAPI XTL::EMUPATCH(XWaveFileCreateMediaObject)
// * patch: XWaveFileCreateMediaObjectEx
// ******************************************************************
// NOTE: Does not require a patch.
HRESULT WINAPI XTL::EMUPATCH(XWaveFileCreateMediaObjectEx)
HRESULT WINAPI xbox::EMUPATCH(XWaveFileCreateMediaObjectEx)
(
LPCSTR pszFileName,
HANDLE hFile,
@ -269,7 +269,7 @@ HRESULT WINAPI XTL::EMUPATCH(XWaveFileCreateMediaObjectEx)
// * patch: XFileMediaObject_Seek
// ******************************************************************
// NOTE: Does not require a patch.
HRESULT WINAPI XTL::EMUPATCH(XFileMediaObject_Seek)
HRESULT WINAPI xbox::EMUPATCH(XFileMediaObject_Seek)
(
X_XFileMediaObject* pThis,
LONG lOffset,
@ -294,7 +294,7 @@ HRESULT WINAPI XTL::EMUPATCH(XFileMediaObject_Seek)
// * patch: XFileMediaObject_DoWork
// ******************************************************************
// NOTE: Does not require a patch.
VOID WINAPI XTL::EMUPATCH(XFileMediaObject_DoWork)(X_XFileMediaObject* pThis)
VOID WINAPI xbox::EMUPATCH(XFileMediaObject_DoWork)(X_XFileMediaObject* pThis)
{
DSoundMutexGuardLock;
@ -308,7 +308,7 @@ VOID WINAPI XTL::EMUPATCH(XFileMediaObject_DoWork)(X_XFileMediaObject* pThis)
// * patch: XFileMediaObject_GetStatus
// ******************************************************************
// NOTE: Does not require a patch.
HRESULT WINAPI XTL::EMUPATCH(XFileMediaObject_GetStatus)
HRESULT WINAPI xbox::EMUPATCH(XFileMediaObject_GetStatus)
(
X_XFileMediaObject* pThis,
OUT LPDWORD pdwStatus)
@ -329,7 +329,7 @@ HRESULT WINAPI XTL::EMUPATCH(XFileMediaObject_GetStatus)
// * patch: XFileMediaObject_GetInfo
// ******************************************************************
// NOTE: Does not require a patch.
HRESULT WINAPI XTL::EMUPATCH(XFileMediaObject_GetInfo)
HRESULT WINAPI xbox::EMUPATCH(XFileMediaObject_GetInfo)
(
X_XFileMediaObject* pThis,
OUT XMEDIAINFO* pInfo)
@ -350,7 +350,7 @@ HRESULT WINAPI XTL::EMUPATCH(XFileMediaObject_GetInfo)
// * patch: XFileMediaObject_Process
// ******************************************************************
// NOTE: Does not require a patch.
HRESULT WINAPI XTL::EMUPATCH(XFileMediaObject_Process)
HRESULT WINAPI xbox::EMUPATCH(XFileMediaObject_Process)
(
X_XFileMediaObject* pThis,
LPXMEDIAPACKET pInputBuffer,
@ -373,7 +373,7 @@ HRESULT WINAPI XTL::EMUPATCH(XFileMediaObject_Process)
// * patch: XFileMediaObject_AddRef
// ******************************************************************
// NOTE: Does not require a patch.
ULONG WINAPI XTL::EMUPATCH(XFileMediaObject_AddRef)
ULONG WINAPI xbox::EMUPATCH(XFileMediaObject_AddRef)
(
X_XFileMediaObject* pThis)
{
@ -394,7 +394,7 @@ ULONG WINAPI XTL::EMUPATCH(XFileMediaObject_AddRef)
// * patch: XFileMediaObject_Release
// ******************************************************************
// NOTE: Does not require a patch.
ULONG WINAPI XTL::EMUPATCH(XFileMediaObject_Release)
ULONG WINAPI xbox::EMUPATCH(XFileMediaObject_Release)
(
X_XFileMediaObject* pThis)
{
@ -418,7 +418,7 @@ ULONG WINAPI XTL::EMUPATCH(XFileMediaObject_Release)
// * patch: XFileMediaObject_Discontinuity
// ******************************************************************
// NOTE: Does not require a patch.
HRESULT WINAPI XTL::EMUPATCH(XFileMediaObject_Discontinuity)
HRESULT WINAPI xbox::EMUPATCH(XFileMediaObject_Discontinuity)
(
X_XFileMediaObject *pThis)
{

View File

@ -27,7 +27,7 @@
#include <cstdint>
#include "XbDSoundTypes.h"
namespace XTL {
namespace xbox {
namespace DSOUND {
static inline uint16_t PresetChannelDefault(uint32_t Xb_flags)

View File

@ -28,11 +28,11 @@
#include "XbDSoundLogging.hpp"
#include "common/Settings.hpp"
// For XTL::DSBUFFERDESC and XTL::DSSTREAMDESC temporary usage
// For xbox::DSBUFFERDESC and xbox::DSSTREAMDESC temporary usage
extern LOGRENDER_HEADER(WAVEFORMATEX)
extern LOGRENDER_HEADER(D3DVECTOR)
namespace XTL {
namespace xbox {
// DSound class usage
ENUM2STR_START(DSMIXBIN_SPEAKER)

View File

@ -28,7 +28,7 @@
#include "Logging.h"
#include "XbDSoundTypes.h"
namespace XTL {
namespace xbox {
// TODO: Everything, only small portions had been implemented.

View File

@ -26,9 +26,11 @@
#ifndef XBDSOUNDTYPES_H
#define XBDSOUNDTYPES_H
namespace XTL {
#include "xbox_types.h"
#include <dsound.h> // TODO: FIXME after global namespace XTL issue is resolved.
namespace xbox {
#include <dsound.h> // TODO: FIXME after global namespace xbox issue is resolved.
// TODO: Port PC dsound.h to xbox edition here base on previous research.
// TODO: Also need to use fixed size to able support cross-platform without extra work.
// Such as uint32_t, uint16_t, etc.
@ -370,6 +372,6 @@ struct X_DSVOICEPROPS {
LONG lI3DL2RoomVolume;
};
} // end of namespace XTL
} // end of namespace xbox
#endif

View File

@ -28,7 +28,7 @@
// Interface for get format
template<class T>
void GetFormat_4034_lower(T& settings, XTL::audio_format& format)
void GetFormat_4034_lower(T& settings, xbox::audio_format& format)
{
format.audio_codec = settings.p_audio_format->wfx.wFormatTag = format.audio_codec;
format.nChannels = settings.p_audio_format->wfx.nChannels;
@ -37,7 +37,7 @@ void GetFormat_4034_lower(T& settings, XTL::audio_format& format)
format.bitsPerSample = settings.p_audio_format->wfx.wBitsPerSample;
}
template<class T>
void GetFormat_4039_upper(T& settings, XTL::audio_format& format)
void GetFormat_4039_upper(T& settings, xbox::audio_format& format)
{
format.audio_codec = settings.audio_codec;
format.nChannels = settings.nChannels;
@ -48,7 +48,7 @@ void GetFormat_4039_upper(T& settings, XTL::audio_format& format)
// Interface for set format
template<class T>
void SetFormat_4034_lower(T& settings, XTL::audio_format format)
void SetFormat_4034_lower(T& settings, xbox::audio_format format)
{
settings.p_audio_format->wfx.wFormatTag = format.audio_codec;
settings.p_audio_format->wfx.nChannels = static_cast<uint16_t>(format.nChannels);
@ -61,7 +61,7 @@ void SetFormat_4034_lower(T& settings, XTL::audio_format format)
settings.pitch = converter_freq2pitch(format.nSamplesPerSec);
}
template<class T>
void SetFormat_4039_only(T& settings, XTL::audio_format format)
void SetFormat_4039_only(T& settings, xbox::audio_format format)
{
settings.audio_codec = format.audio_codec;
settings.nChannels = format.nChannels;
@ -71,7 +71,7 @@ void SetFormat_4039_only(T& settings, XTL::audio_format format)
settings.pitch = converter_freq2pitch(format.nSamplesPerSec);
}
template<class T>
void SetFormat_4134_upper(T& settings, XTL::audio_format format)
void SetFormat_4134_upper(T& settings, xbox::audio_format format)
{
settings.audio_codec = static_cast<uint16_t>(format.audio_codec);
settings.nChannels = static_cast<uint8_t>(format.nChannels);
@ -149,7 +149,7 @@ void Init(T& settings, bool is3D)
settings.volume = 0 - settings.headroom;
}
XTL::CDirectSoundVoice::CDirectSoundVoice(bool is3D)
xbox::CDirectSoundVoice::CDirectSoundVoice(bool is3D)
{
settings = { 0 };
@ -202,7 +202,7 @@ XTL::CDirectSoundVoice::CDirectSoundVoice(bool is3D)
}
}
XTL::CDirectSoundVoice::~CDirectSoundVoice()
xbox::CDirectSoundVoice::~CDirectSoundVoice()
{
if (g_LibVersion_DSOUND < 4039) {
if (!settings.r4034_lower.p_audio_format) {

View File

@ -25,9 +25,9 @@
#include "XbInternalStruct.hpp"
XTL::CUnknownTemplate::CUnknownTemplate() { ref_count = 1; }
xbox::CUnknownTemplate::CUnknownTemplate() { ref_count = 1; }
XTL::CMcpxVoiceClient::_settings XTL::CMcpxVoiceClient::default_settings =
xbox::CMcpxVoiceClient::_settings xbox::CMcpxVoiceClient::default_settings =
{
0, // 0x08
// ...

View File

@ -28,7 +28,7 @@
#include "core\hle\DSOUND\XbDSoundTypes.h"
#include "common/audio/converter.hpp"
namespace XTL {
namespace xbox {
// TODO: Everything, only small portions had been implemented.
@ -109,7 +109,7 @@ struct CDirectSoundVoice : CUnknownGenericManager {
} unknown;
struct _r4034_lower {
xbaddr p_unknown_08; // 0x008
xbox::addr p_unknown_08; // 0x008
uint16_t unknown_0C; // 0x00C // zero'd - unknown
XBOXADPCMWAVEFORMAT* p_audio_format; // 0x010 // Same as XBOXADPCMWAVEFORMAT / WAVEFORMATEX structure
int32_t pitch; // 0x014 // Always init and custom pitch from SetFrequency, SetPitch, SetFormat, etc calls.
@ -203,16 +203,16 @@ struct DSBUFFER_S : CUnknownTemplate {
uint32_t unknown_08; // Offset 0x08 // -0x14
CMcpxVoiceClient* p_CMcpxVoiceClient; // Offset 0x0C // -0x10
CDirectSoundVoice* p_CDSVoice; // Offset 0x10 // -0x0C
xbaddr p_unknown_14; // Offset 0x14 // -0x08 // (points to this address)
xbaddr p_unknown_18; // Offset 0x18 // -0x04 // (points to above address)
xbox::addr p_unknown_14; // Offset 0x14 // -0x08 // (points to this address)
xbox::addr p_unknown_18; // Offset 0x18 // -0x04 // (points to above address)
} dsb_c;
static_assert(sizeof(DSBUFFER_C) == 0x14);
struct DSBUFFER_I {
CDirectSoundVoice* p_CDSVoice; // Offset 0x1C // 0x00 // Same as p_CDSVoice (above); pThis
CMcpxVoiceClient* p_CMcpxVoiceClient; // Offset 0x20 // 0x04 // Same as p_CMcpxVoiceClient (above)
xbaddr p_unknown_24; // Offset 0x24 // 0x08
xbaddr p_unknown_28; // Offset 0x28 // 0x0C
xbox::addr p_unknown_24; // Offset 0x24 // 0x08
xbox::addr p_unknown_28; // Offset 0x28 // 0x0C
uint32_t unknown_2C; // Offset 0x2C // 0x10 // was integer, later shift to offset 0x30
uint32_t unknown_30; // Offset 0x30 // 0x14 // later shifted from offset 0x2C; integer
} dsb_i;
@ -227,16 +227,16 @@ struct DSBUFFER_S : CUnknownTemplate {
}
virtual void init_member() {
dsb_c.unknown_08 = 0;
dsb_i.p_unknown_24 = xbnull;
dsb_i.p_unknown_28 = xbnull;
dsb_i.unknown_2C = xbnull;
dsb_i.unknown_30 = xbnull;
dsb_i.p_unknown_24 = xbox::zero;
dsb_i.p_unknown_28 = xbox::zero;
dsb_i.unknown_2C = xbox::zero;
dsb_i.unknown_30 = xbox::zero;
}
virtual void init(bool is3D) {
init_member();
dsb_c.p_CMcpxVoiceClient = new CMcpxVoiceClient(); dsb_i.p_CMcpxVoiceClient = dsb_c.p_CMcpxVoiceClient;
dsb_c.p_CDSVoice = new CDirectSoundVoice(is3D); dsb_i.p_CDSVoice = dsb_c.p_CDSVoice;
dsb_c.p_unknown_18 = reinterpret_cast<xbaddr>(&dsb_c.p_unknown_14);
dsb_c.p_unknown_18 = reinterpret_cast<xbox::addr>(&dsb_c.p_unknown_14);
dsb_c.p_unknown_14 = dsb_c.p_unknown_18;
}
};

View File

@ -184,7 +184,7 @@ static void WFXformat_SanityFix(
// Generic enforcement
// If Xbox applications supply invalid total channels, enforce to use either mono or stereo channel
if (Host_pwfxFormat->Format.nChannels == 0 || Host_pwfxFormat->Format.nChannels > 6) {
Host_pwfxFormat->Format.nChannels = XTL::DSOUND::PresetChannelDefault(Xb_flags);
Host_pwfxFormat->Format.nChannels = xbox::DSOUND::PresetChannelDefault(Xb_flags);
isNotSanity = true;
}
// If nSamplesPerSec is zero'd then use 44.1kHz by default
@ -256,17 +256,17 @@ static CODEC_FORMAT WFXformat_SyncHostFormat(
const void* Xb_wfx_ptr,
uint32_t Xb_buffer_request_size,
uint32_t Xb_flags,
XTL::CDirectSoundVoice* Xb_Voice)
xbox::CDirectSoundVoice* Xb_Voice)
{
PWAVEFORMATEXTENSIBLE Xb_wfxFormat = (PWAVEFORMATEXTENSIBLE)Xb_wfx_ptr;
PWAVEFORMATEXTENSIBLE Host_wfxFormat = (PWAVEFORMATEXTENSIBLE)Host_wfx_ptr;
CODEC_FORMAT codec_format_ret = CF_PCM;
bool require_validate = true;
XTL::audio_format xb_format;
xbox::audio_format xb_format;
// If no format is provided, then use default.
if (Xb_wfx_ptr == xbnullptr) {
WFXformat_GeneratePCMFormat(XTL::DSOUND::PresetChannelDefault(Xb_flags), 44100, 16, Host_wfxFormat);
if (Xb_wfx_ptr == xbox::zeroptr) {
WFXformat_GeneratePCMFormat(xbox::DSOUND::PresetChannelDefault(Xb_flags), 44100, 16, Host_wfxFormat);
require_validate = false;
}
// HACK: This is a special sound buffer, create dummy WAVEFORMATEX data.
@ -274,8 +274,8 @@ static CODEC_FORMAT WFXformat_SyncHostFormat(
// with flags DSBCAPS_MIXIN, DSBCAPS_FXIN, and DSBCAPS_FXIN2 will have no
// WAVEFORMATEX structure by default.
else if ((Xb_flags & (XTL_DSBCAPS_MIXIN | XTL_DSBCAPS_FXIN | XTL_DSBCAPS_FXIN2)) > 0) {
EmuLog(LOG_LEVEL::WARNING, "Creating dummy WAVEFORMATEX (pdsbd->Xb_lpwfxFormat = xbnullptr)...");
WFXformat_GeneratePCMFormat(XTL::DSOUND::PresetChannelDefault(Xb_flags), 44100, 16, Host_wfxFormat);
EmuLog(LOG_LEVEL::WARNING, "Creating dummy WAVEFORMATEX (pdsbd->Xb_lpwfxFormat = xbox::zeroptr)...");
WFXformat_GeneratePCMFormat(xbox::DSOUND::PresetChannelDefault(Xb_flags), 44100, 16, Host_wfxFormat);
require_validate = false;
}
// Otherwise, let's process given format.
@ -306,7 +306,7 @@ static CODEC_FORMAT WFXformat_SyncHostFormat(
// Both 0 and default will use static structure until given a valid one.
case 0:
// NOTE: This is currently a hack for ability to create buffer class with DSBCAPS_LOCDEFER flag.
WFXformat_GeneratePCMFormat(XTL::DSOUND::PresetChannelDefault(Xb_flags), 44100, 16, Host_wfxFormat);
WFXformat_GeneratePCMFormat(xbox::DSOUND::PresetChannelDefault(Xb_flags), 44100, 16, Host_wfxFormat);
require_validate = false;
LOG_TEST_CASE("WAVE_FORMAT_(0) found");
break;
@ -332,10 +332,10 @@ static CODEC_FORMAT WFXformat_SyncHostFormat(
}
// Any unknown formats will be using default PCM format.
else {
WFXformat_GeneratePCMFormat(XTL::DSOUND::PresetChannelDefault(Xb_flags), 44100, 16, Host_wfxFormat);
WFXformat_GeneratePCMFormat(xbox::DSOUND::PresetChannelDefault(Xb_flags), 44100, 16, Host_wfxFormat);
}
}
// Forward xbox format to internal XTL::CDirectSoundVoice class.
// Forward xbox format to internal xbox::CDirectSoundVoice class.
xb_format.audio_codec = (codec_format_ret == CF_XADPCM ? WAVE_FORMAT_XBOX_ADPCM : WAVE_FORMAT_PCM);
xb_format.nChannels = Host_wfxFormat->Format.nChannels;
xb_format.cbSize = (codec_format_ret == CF_XADPCM ? 4 : 0);

View File

@ -73,7 +73,7 @@ static struct {
static const char* section_symbols = "Symbols";
std::map<std::string, xbaddr> g_SymbolAddresses;
std::map<std::string, xbox::addr> g_SymbolAddresses;
bool g_SymbolCacheUsed = false;
bool bLLE_APU = false; // Set this to true for experimental APU (sound) LLE
@ -100,14 +100,14 @@ void* GetXboxFunctionPointer(std::string functionName)
}
// NOTE: GetDetectedSymbolName do not get to be in XbSymbolDatabase, get symbol string in Cxbx project only.
std::string GetDetectedSymbolName(const xbaddr address, int * const symbolOffset)
std::string GetDetectedSymbolName(const xbox::addr address, int * const symbolOffset)
{
std::string result = "";
int closestMatch = MAXINT;
for (auto it = g_SymbolAddresses.begin(); it != g_SymbolAddresses.end(); ++it) {
xbaddr symbolAddr = it->second;
if (symbolAddr == xbnull)
xbox::addr symbolAddr = it->second;
if (symbolAddr == xbox::zero)
continue;
if (symbolAddr <= address)
@ -133,11 +133,11 @@ std::string GetDetectedSymbolName(const xbaddr address, int * const symbolOffset
// NOTE: VerifySymbolAddressAgainstXRef do not get to be in XbSymbolDatabase, perform verification in Cxbx project only.
/*
bool VerifySymbolAddressAgainstXRef(char *SymbolName, xbaddr Address, int XRef)
bool VerifySymbolAddressAgainstXRef(char *SymbolName, xbox::addr Address, int XRef)
{
// Temporary verification - is XREF_D3DTSS_TEXCOORDINDEX derived correctly?
// TODO : Remove this when XREF_D3DTSS_TEXCOORDINDEX derivation is deemed stable
xbaddr XRefAddr = XRefDataBase[XRef];
xbox::addr XRefAddr = XRefDataBase[XRef];
if (XRefAddr == Address)
return true;
@ -428,7 +428,7 @@ void EmuHLEIntercept(Xbe::Header *pXbeHeader)
// Iterate through the map of symbol addresses, calling GetEmuPatchAddr on all functions.
for (auto it = g_SymbolAddresses.begin(); it != g_SymbolAddresses.end(); ++it) {
std::string functionName = it->first;
xbaddr location = it->second;
xbox::addr location = it->second;
std::stringstream output;
output << "SymbolCache: 0x" << std::setfill('0') << std::setw(8) << std::hex << location

View File

@ -32,11 +32,11 @@ extern bool bLLE_GPU; // Set this to true for experimental GPU (graphics) LLE
extern bool bLLE_USB; // Set this to true for experimental USB (input) LLE
extern bool bLLE_JIT; // Set this to true for experimental JIT
extern std::map<std::string, xbaddr> g_SymbolAddresses;
extern std::map<std::string, xbox::addr> g_SymbolAddresses;
void EmuHLEIntercept(Xbe::Header *XbeHeader);
std::string GetDetectedSymbolName(const xbaddr address, int * const symbolOffset);
std::string GetDetectedSymbolName(const xbox::addr address, int * const symbolOffset);
void* GetXboxFunctionPointer(std::string functionName);
#define XB_TYPE(func) XB_TRAMPOLINE_##func##_t

View File

@ -56,303 +56,303 @@ const uint32_t PATCH_IS_FIBER = 1 << 4;
// This allows for the eventual importing of Dxbx symbol files and even IDA signatures too!
std::map<const std::string, const xbox_patch_t> g_PatchTable = {
// Direct3D
PATCH_ENTRY("D3DDevice_Begin", XTL::EMUPATCH(D3DDevice_Begin), PATCH_HLE_D3D),
PATCH_ENTRY("D3DDevice_BeginPush", XTL::EMUPATCH(D3DDevice_BeginPush), PATCH_HLE_D3D),
PATCH_ENTRY("D3DDevice_BeginPush2", XTL::EMUPATCH(D3DDevice_BeginPush2), PATCH_HLE_D3D),
PATCH_ENTRY("D3DDevice_BeginVisibilityTest", XTL::EMUPATCH(D3DDevice_BeginVisibilityTest), PATCH_HLE_D3D),
PATCH_ENTRY("D3DDevice_BlockOnFence", XTL::EMUPATCH(D3DDevice_BlockOnFence), PATCH_HLE_D3D),
PATCH_ENTRY("D3DDevice_BlockUntilVerticalBlank", XTL::EMUPATCH(D3DDevice_BlockUntilVerticalBlank), PATCH_HLE_D3D),
PATCH_ENTRY("D3DDevice_Clear", XTL::EMUPATCH(D3DDevice_Clear), PATCH_HLE_D3D),
PATCH_ENTRY("D3DDevice_CopyRects", XTL::EMUPATCH(D3DDevice_CopyRects), PATCH_HLE_D3D),
PATCH_ENTRY("D3DDevice_CreateVertexShader", XTL::EMUPATCH(D3DDevice_CreateVertexShader), PATCH_HLE_D3D),
PATCH_ENTRY("D3DDevice_DeleteVertexShader", XTL::EMUPATCH(D3DDevice_DeleteVertexShader), PATCH_HLE_D3D),
PATCH_ENTRY("D3DDevice_DeleteVertexShader_0", XTL::EMUPATCH(D3DDevice_DeleteVertexShader_0), PATCH_HLE_D3D),
PATCH_ENTRY("D3DDevice_DrawIndexedVertices", XTL::EMUPATCH(D3DDevice_DrawIndexedVertices), PATCH_HLE_D3D),
PATCH_ENTRY("D3DDevice_DrawIndexedVerticesUP", XTL::EMUPATCH(D3DDevice_DrawIndexedVerticesUP), PATCH_HLE_D3D),
PATCH_ENTRY("D3DDevice_DrawRectPatch", XTL::EMUPATCH(D3DDevice_DrawRectPatch), PATCH_HLE_D3D),
PATCH_ENTRY("D3DDevice_DrawTriPatch", XTL::EMUPATCH(D3DDevice_DrawTriPatch), PATCH_HLE_D3D),
PATCH_ENTRY("D3DDevice_DrawVertices", XTL::EMUPATCH(D3DDevice_DrawVertices), PATCH_HLE_D3D),
PATCH_ENTRY("D3DDevice_DrawVertices_4", XTL::EMUPATCH(D3DDevice_DrawVertices_4), PATCH_HLE_D3D),
PATCH_ENTRY("D3DDevice_DrawVerticesUP", XTL::EMUPATCH(D3DDevice_DrawVerticesUP), PATCH_HLE_D3D),
PATCH_ENTRY("D3DDevice_EnableOverlay", XTL::EMUPATCH(D3DDevice_EnableOverlay), PATCH_HLE_D3D),
PATCH_ENTRY("D3DDevice_End", XTL::EMUPATCH(D3DDevice_End), PATCH_HLE_D3D),
PATCH_ENTRY("D3DDevice_EndPush", XTL::EMUPATCH(D3DDevice_EndPush), PATCH_HLE_D3D),
PATCH_ENTRY("D3DDevice_EndVisibilityTest", XTL::EMUPATCH(D3DDevice_EndVisibilityTest), PATCH_HLE_D3D),
PATCH_ENTRY("D3DDevice_EndVisibilityTest_0", XTL::EMUPATCH(D3DDevice_EndVisibilityTest_0), PATCH_HLE_D3D),
PATCH_ENTRY("D3DDevice_FlushVertexCache", XTL::EMUPATCH(D3DDevice_FlushVertexCache), PATCH_HLE_D3D),
PATCH_ENTRY("D3DDevice_GetBackBuffer", XTL::EMUPATCH(D3DDevice_GetBackBuffer), PATCH_HLE_D3D),
PATCH_ENTRY("D3DDevice_GetBackBuffer2", XTL::EMUPATCH(D3DDevice_GetBackBuffer2), PATCH_HLE_D3D),
PATCH_ENTRY("D3DDevice_GetDisplayFieldStatus", XTL::EMUPATCH(D3DDevice_GetDisplayFieldStatus), PATCH_HLE_D3D),
PATCH_ENTRY("D3DDevice_GetGammaRamp", XTL::EMUPATCH(D3DDevice_GetGammaRamp), PATCH_HLE_D3D),
PATCH_ENTRY("D3DDevice_GetMaterial", XTL::EMUPATCH(D3DDevice_GetMaterial), PATCH_HLE_D3D),
PATCH_ENTRY("D3DDevice_GetModelView", XTL::EMUPATCH(D3DDevice_GetModelView), PATCH_HLE_D3D),
PATCH_ENTRY("D3DDevice_GetOverlayUpdateStatus", XTL::EMUPATCH(D3DDevice_GetOverlayUpdateStatus), PATCH_HLE_D3D),
PATCH_ENTRY("D3DDevice_GetProjectionViewportMatrix", XTL::EMUPATCH(D3DDevice_GetProjectionViewportMatrix), PATCH_HLE_D3D),
PATCH_ENTRY("D3DDevice_GetShaderConstantMode", XTL::EMUPATCH(D3DDevice_GetShaderConstantMode), PATCH_HLE_D3D),
PATCH_ENTRY("D3DDevice_GetTransform", XTL::EMUPATCH(D3DDevice_GetTransform), PATCH_HLE_D3D),
PATCH_ENTRY("D3DDevice_GetVertexShader", XTL::EMUPATCH(D3DDevice_GetVertexShader), PATCH_HLE_D3D),
PATCH_ENTRY("D3DDevice_GetVertexShaderConstant", XTL::EMUPATCH(D3DDevice_GetVertexShaderConstant), PATCH_HLE_D3D),
//PATCH_ENTRY("D3DDevice_GetVertexShaderDeclaration", XTL::EMUPATCH(D3DDevice_GetVertexShaderDeclaration), PATCH_HLE_D3D),
//PATCH_ENTRY("D3DDevice_GetVertexShaderFunction", XTL::EMUPATCH(D3DDevice_GetVertexShaderFunction), PATCH_HLE_D3D),
PATCH_ENTRY("D3DDevice_GetVertexShaderInput", XTL::EMUPATCH(D3DDevice_GetVertexShaderInput), PATCH_HLE_D3D),
//PATCH_ENTRY("D3DDevice_GetVertexShaderSize", XTL::EMUPATCH(D3DDevice_GetVertexShaderSize), PATCH_HLE_D3D),
//PATCH_ENTRY("D3DDevice_GetVertexShaderType", XTL::EMUPATCH(D3DDevice_GetVertexShaderType), PATCH_HLE_D3D),
//PATCH_ENTRY("D3DDevice_GetViewportOffsetAndScale", XTL::EMUPATCH(D3DDevice_GetViewportOffsetAndScale), PATCH_HLE_D3D),
PATCH_ENTRY("D3DDevice_GetVisibilityTestResult", XTL::EMUPATCH(D3DDevice_GetVisibilityTestResult), PATCH_HLE_D3D),
PATCH_ENTRY("D3DDevice_InsertCallback", XTL::EMUPATCH(D3DDevice_InsertCallback), PATCH_HLE_D3D),
PATCH_ENTRY("D3DDevice_InsertFence", XTL::EMUPATCH(D3DDevice_InsertFence), PATCH_HLE_D3D),
PATCH_ENTRY("D3DDevice_IsBusy", XTL::EMUPATCH(D3DDevice_IsBusy), PATCH_HLE_D3D),
PATCH_ENTRY("D3DDevice_IsFencePending", XTL::EMUPATCH(D3DDevice_IsFencePending), PATCH_HLE_D3D),
PATCH_ENTRY("D3DDevice_LightEnable", XTL::EMUPATCH(D3DDevice_LightEnable), PATCH_HLE_D3D),
PATCH_ENTRY("D3DDevice_LoadVertexShader", XTL::EMUPATCH(D3DDevice_LoadVertexShader), PATCH_HLE_D3D),
PATCH_ENTRY("D3DDevice_LoadVertexShaderProgram", XTL::EMUPATCH(D3DDevice_LoadVertexShaderProgram), PATCH_HLE_D3D),
PATCH_ENTRY("D3DDevice_LoadVertexShader_0", XTL::EMUPATCH(D3DDevice_LoadVertexShader_0), PATCH_HLE_D3D),
PATCH_ENTRY("D3DDevice_LoadVertexShader_4", XTL::EMUPATCH(D3DDevice_LoadVertexShader_4), PATCH_HLE_D3D),
PATCH_ENTRY("D3DDevice_MultiplyTransform", XTL::EMUPATCH(D3DDevice_MultiplyTransform), PATCH_HLE_D3D),
PATCH_ENTRY("D3DDevice_PersistDisplay", XTL::EMUPATCH(D3DDevice_PersistDisplay), PATCH_HLE_D3D),
PATCH_ENTRY("D3DDevice_Present", XTL::EMUPATCH(D3DDevice_Present), PATCH_HLE_D3D),
PATCH_ENTRY("D3DDevice_PrimeVertexCache", XTL::EMUPATCH(D3DDevice_PrimeVertexCache), PATCH_HLE_D3D),
PATCH_ENTRY("D3DDevice_Reset", XTL::EMUPATCH(D3DDevice_Reset), PATCH_HLE_D3D),
PATCH_ENTRY("D3DDevice_RunPushBuffer", XTL::EMUPATCH(D3DDevice_RunPushBuffer), PATCH_HLE_D3D),
PATCH_ENTRY("D3DDevice_RunVertexStateShader", XTL::EMUPATCH(D3DDevice_RunVertexStateShader), PATCH_HLE_D3D),
PATCH_ENTRY("D3DDevice_SelectVertexShader", XTL::EMUPATCH(D3DDevice_SelectVertexShader), PATCH_HLE_D3D),
PATCH_ENTRY("D3DDevice_SelectVertexShaderDirect", XTL::EMUPATCH(D3DDevice_SelectVertexShaderDirect), PATCH_HLE_D3D),
PATCH_ENTRY("D3DDevice_SelectVertexShader_0", XTL::EMUPATCH(D3DDevice_SelectVertexShader_0), PATCH_HLE_D3D),
PATCH_ENTRY("D3DDevice_SelectVertexShader_4", XTL::EMUPATCH(D3DDevice_SelectVertexShader_4), PATCH_HLE_D3D),
PATCH_ENTRY("D3DDevice_SetBackBufferScale", XTL::EMUPATCH(D3DDevice_SetBackBufferScale), PATCH_HLE_D3D),
PATCH_ENTRY("D3DDevice_SetDepthClipPlanes", XTL::EMUPATCH(D3DDevice_SetDepthClipPlanes), PATCH_HLE_D3D),
PATCH_ENTRY("D3DDevice_SetFlickerFilter", XTL::EMUPATCH(D3DDevice_SetFlickerFilter), PATCH_HLE_D3D),
PATCH_ENTRY("D3DDevice_SetFlickerFilter_0", XTL::EMUPATCH(D3DDevice_SetFlickerFilter_0), PATCH_HLE_D3D),
PATCH_ENTRY("D3DDevice_SetGammaRamp", XTL::EMUPATCH(D3DDevice_SetGammaRamp), PATCH_HLE_D3D),
PATCH_ENTRY("D3DDevice_SetIndices", XTL::EMUPATCH(D3DDevice_SetIndices), PATCH_HLE_D3D),
PATCH_ENTRY("D3DDevice_SetIndices_4", XTL::EMUPATCH(D3DDevice_SetIndices_4), PATCH_HLE_D3D),
PATCH_ENTRY("D3DDevice_SetLight", XTL::EMUPATCH(D3DDevice_SetLight), PATCH_HLE_D3D),
PATCH_ENTRY("D3DDevice_SetMaterial", XTL::EMUPATCH(D3DDevice_SetMaterial), PATCH_HLE_D3D),
PATCH_ENTRY("D3DDevice_SetModelView", XTL::EMUPATCH(D3DDevice_SetModelView), PATCH_HLE_D3D),
PATCH_ENTRY("D3DDevice_SetPalette", XTL::EMUPATCH(D3DDevice_SetPalette), PATCH_HLE_D3D),
PATCH_ENTRY("D3DDevice_SetPalette_4", XTL::EMUPATCH(D3DDevice_SetPalette_4), PATCH_HLE_D3D),
PATCH_ENTRY("D3DDevice_SetPixelShader", XTL::EMUPATCH(D3DDevice_SetPixelShader), PATCH_HLE_D3D),
PATCH_ENTRY("D3DDevice_SetPixelShaderConstant_4", XTL::EMUPATCH(D3DDevice_SetPixelShaderConstant_4), PATCH_HLE_D3D),
PATCH_ENTRY("D3DDevice_SetPixelShader_0", XTL::EMUPATCH(D3DDevice_SetPixelShader_0), PATCH_HLE_D3D),
PATCH_ENTRY("D3DDevice_SetRenderState_Simple", XTL::EMUPATCH(D3DDevice_SetRenderState_Simple), PATCH_HLE_D3D),
PATCH_ENTRY("D3DDevice_SetRenderTarget", XTL::EMUPATCH(D3DDevice_SetRenderTarget), PATCH_HLE_D3D),
PATCH_ENTRY("D3DDevice_SetRenderTargetFast", XTL::EMUPATCH(D3DDevice_SetRenderTargetFast), PATCH_HLE_D3D),
PATCH_ENTRY("D3DDevice_SetScreenSpaceOffset", XTL::EMUPATCH(D3DDevice_SetScreenSpaceOffset), PATCH_HLE_D3D),
PATCH_ENTRY("D3DDevice_SetShaderConstantMode", XTL::EMUPATCH(D3DDevice_SetShaderConstantMode), PATCH_HLE_D3D),
PATCH_ENTRY("D3DDevice_SetShaderConstantMode_0", XTL::EMUPATCH(D3DDevice_SetShaderConstantMode_0), PATCH_HLE_D3D),
PATCH_ENTRY("D3DDevice_SetSoftDisplayFilter", XTL::EMUPATCH(D3DDevice_SetSoftDisplayFilter), PATCH_HLE_D3D),
PATCH_ENTRY("D3DDevice_SetStateUP", XTL::EMUPATCH(D3DDevice_SetStateUP), PATCH_HLE_D3D),
PATCH_ENTRY("D3DDevice_SetStateVB", XTL::EMUPATCH(D3DDevice_SetStateVB), PATCH_HLE_D3D),
PATCH_ENTRY("D3DDevice_SetStipple", XTL::EMUPATCH(D3DDevice_SetStipple), PATCH_HLE_D3D),
PATCH_ENTRY("D3DDevice_SetStreamSource", XTL::EMUPATCH(D3DDevice_SetStreamSource), PATCH_HLE_D3D),
PATCH_ENTRY("D3DDevice_SetStreamSource_4", XTL::EMUPATCH(D3DDevice_SetStreamSource_4), PATCH_HLE_D3D),
PATCH_ENTRY("D3DDevice_SetStreamSource_8", XTL::EMUPATCH(D3DDevice_SetStreamSource_8), PATCH_HLE_D3D),
PATCH_ENTRY("D3DDevice_SetSwapCallback", XTL::EMUPATCH(D3DDevice_SetSwapCallback), PATCH_HLE_D3D),
PATCH_ENTRY("D3DDevice_SetTexture", XTL::EMUPATCH(D3DDevice_SetTexture), PATCH_HLE_D3D),
PATCH_ENTRY("D3DDevice_SetTexture_4", XTL::EMUPATCH(D3DDevice_SetTexture_4), PATCH_HLE_D3D),
PATCH_ENTRY("D3DDevice_SetTransform", XTL::EMUPATCH(D3DDevice_SetTransform), PATCH_HLE_D3D),
PATCH_ENTRY("D3DDevice_SetTransform_0", XTL::EMUPATCH(D3DDevice_SetTransform_0), PATCH_HLE_D3D),
PATCH_ENTRY("D3DDevice_SetVertexData2f", XTL::EMUPATCH(D3DDevice_SetVertexData2f), PATCH_HLE_D3D),
PATCH_ENTRY("D3DDevice_SetVertexData2s", XTL::EMUPATCH(D3DDevice_SetVertexData2s), PATCH_HLE_D3D),
PATCH_ENTRY("D3DDevice_SetVertexData4f", XTL::EMUPATCH(D3DDevice_SetVertexData4f), PATCH_HLE_D3D),
PATCH_ENTRY("D3DDevice_SetVertexData4f_16", XTL::EMUPATCH(D3DDevice_SetVertexData4f_16), PATCH_HLE_D3D),
PATCH_ENTRY("D3DDevice_SetVertexData4s", XTL::EMUPATCH(D3DDevice_SetVertexData4s), PATCH_HLE_D3D),
PATCH_ENTRY("D3DDevice_SetVertexData4ub", XTL::EMUPATCH(D3DDevice_SetVertexData4ub), PATCH_HLE_D3D),
PATCH_ENTRY("D3DDevice_SetVertexDataColor", XTL::EMUPATCH(D3DDevice_SetVertexDataColor), PATCH_HLE_D3D),
PATCH_ENTRY("D3DDevice_SetVertexShader", XTL::EMUPATCH(D3DDevice_SetVertexShader), PATCH_HLE_D3D),
PATCH_ENTRY("D3DDevice_SetVertexShaderConstant", XTL::EMUPATCH(D3DDevice_SetVertexShaderConstant), PATCH_HLE_D3D),
PATCH_ENTRY("D3DDevice_SetVertexShaderConstant1", XTL::EMUPATCH(D3DDevice_SetVertexShaderConstant1), PATCH_HLE_D3D),
PATCH_ENTRY("D3DDevice_SetVertexShaderConstant1Fast", XTL::EMUPATCH(D3DDevice_SetVertexShaderConstant1Fast), PATCH_HLE_D3D),
PATCH_ENTRY("D3DDevice_SetVertexShaderConstant4", XTL::EMUPATCH(D3DDevice_SetVertexShaderConstant4), PATCH_HLE_D3D),
PATCH_ENTRY("D3DDevice_SetVertexShaderConstantNotInline", XTL::EMUPATCH(D3DDevice_SetVertexShaderConstantNotInline), PATCH_HLE_D3D),
PATCH_ENTRY("D3DDevice_SetVertexShaderConstantNotInlineFast", XTL::EMUPATCH(D3DDevice_SetVertexShaderConstantNotInlineFast), PATCH_HLE_D3D),
PATCH_ENTRY("D3DDevice_SetVertexShaderConstant_8", XTL::EMUPATCH(D3DDevice_SetVertexShaderConstant_8), PATCH_HLE_D3D),
PATCH_ENTRY("D3DDevice_SetVertexShaderInput", XTL::EMUPATCH(D3DDevice_SetVertexShaderInput), PATCH_HLE_D3D),
PATCH_ENTRY("D3DDevice_SetVertexShaderInputDirect", XTL::EMUPATCH(D3DDevice_SetVertexShaderInputDirect), PATCH_HLE_D3D),
PATCH_ENTRY("D3DDevice_SetVerticalBlankCallback", XTL::EMUPATCH(D3DDevice_SetVerticalBlankCallback), PATCH_HLE_D3D),
PATCH_ENTRY("D3DDevice_SetViewport", XTL::EMUPATCH(D3DDevice_SetViewport), PATCH_HLE_D3D),
PATCH_ENTRY("D3DDevice_Swap", XTL::EMUPATCH(D3DDevice_Swap), PATCH_HLE_D3D),
PATCH_ENTRY("D3DDevice_Swap_0", XTL::EMUPATCH(D3DDevice_Swap_0), PATCH_HLE_D3D),
PATCH_ENTRY("D3DDevice_SwitchTexture", XTL::EMUPATCH(D3DDevice_SwitchTexture), PATCH_HLE_D3D),
PATCH_ENTRY("D3DDevice_UpdateOverlay", XTL::EMUPATCH(D3DDevice_UpdateOverlay), PATCH_HLE_D3D),
PATCH_ENTRY("D3DResource_BlockUntilNotBusy", XTL::EMUPATCH(D3DResource_BlockUntilNotBusy), PATCH_HLE_D3D),
PATCH_ENTRY("D3D_BlockOnTime", XTL::EMUPATCH(D3D_BlockOnTime), PATCH_HLE_D3D),
PATCH_ENTRY("D3D_DestroyResource", XTL::EMUPATCH(D3D_DestroyResource), PATCH_HLE_D3D),
PATCH_ENTRY("D3D_DestroyResource__LTCG", XTL::EMUPATCH(D3D_DestroyResource__LTCG), PATCH_HLE_D3D),
PATCH_ENTRY("D3D_LazySetPointParams", XTL::EMUPATCH(D3D_LazySetPointParams), PATCH_HLE_D3D),
PATCH_ENTRY("D3D_SetCommonDebugRegisters", XTL::EMUPATCH(D3D_SetCommonDebugRegisters), PATCH_HLE_D3D),
PATCH_ENTRY("Direct3D_CreateDevice", XTL::EMUPATCH(Direct3D_CreateDevice), PATCH_HLE_D3D),
PATCH_ENTRY("Direct3D_CreateDevice_16", XTL::EMUPATCH(Direct3D_CreateDevice_16), PATCH_HLE_D3D),
PATCH_ENTRY("Direct3D_CreateDevice_4", XTL::EMUPATCH(Direct3D_CreateDevice_4), PATCH_HLE_D3D),
PATCH_ENTRY("Lock2DSurface", XTL::EMUPATCH(Lock2DSurface), PATCH_HLE_D3D),
PATCH_ENTRY("Lock3DSurface", XTL::EMUPATCH(Lock3DSurface), PATCH_HLE_D3D),
PATCH_ENTRY("D3DDevice_Begin", xbox::EMUPATCH(D3DDevice_Begin), PATCH_HLE_D3D),
PATCH_ENTRY("D3DDevice_BeginPush", xbox::EMUPATCH(D3DDevice_BeginPush), PATCH_HLE_D3D),
PATCH_ENTRY("D3DDevice_BeginPush2", xbox::EMUPATCH(D3DDevice_BeginPush2), PATCH_HLE_D3D),
PATCH_ENTRY("D3DDevice_BeginVisibilityTest", xbox::EMUPATCH(D3DDevice_BeginVisibilityTest), PATCH_HLE_D3D),
PATCH_ENTRY("D3DDevice_BlockOnFence", xbox::EMUPATCH(D3DDevice_BlockOnFence), PATCH_HLE_D3D),
PATCH_ENTRY("D3DDevice_BlockUntilVerticalBlank", xbox::EMUPATCH(D3DDevice_BlockUntilVerticalBlank), PATCH_HLE_D3D),
PATCH_ENTRY("D3DDevice_Clear", xbox::EMUPATCH(D3DDevice_Clear), PATCH_HLE_D3D),
PATCH_ENTRY("D3DDevice_CopyRects", xbox::EMUPATCH(D3DDevice_CopyRects), PATCH_HLE_D3D),
PATCH_ENTRY("D3DDevice_CreateVertexShader", xbox::EMUPATCH(D3DDevice_CreateVertexShader), PATCH_HLE_D3D),
PATCH_ENTRY("D3DDevice_DeleteVertexShader", xbox::EMUPATCH(D3DDevice_DeleteVertexShader), PATCH_HLE_D3D),
PATCH_ENTRY("D3DDevice_DeleteVertexShader_0", xbox::EMUPATCH(D3DDevice_DeleteVertexShader_0), PATCH_HLE_D3D),
PATCH_ENTRY("D3DDevice_DrawIndexedVertices", xbox::EMUPATCH(D3DDevice_DrawIndexedVertices), PATCH_HLE_D3D),
PATCH_ENTRY("D3DDevice_DrawIndexedVerticesUP", xbox::EMUPATCH(D3DDevice_DrawIndexedVerticesUP), PATCH_HLE_D3D),
PATCH_ENTRY("D3DDevice_DrawRectPatch", xbox::EMUPATCH(D3DDevice_DrawRectPatch), PATCH_HLE_D3D),
PATCH_ENTRY("D3DDevice_DrawTriPatch", xbox::EMUPATCH(D3DDevice_DrawTriPatch), PATCH_HLE_D3D),
PATCH_ENTRY("D3DDevice_DrawVertices", xbox::EMUPATCH(D3DDevice_DrawVertices), PATCH_HLE_D3D),
PATCH_ENTRY("D3DDevice_DrawVertices_4", xbox::EMUPATCH(D3DDevice_DrawVertices_4), PATCH_HLE_D3D),
PATCH_ENTRY("D3DDevice_DrawVerticesUP", xbox::EMUPATCH(D3DDevice_DrawVerticesUP), PATCH_HLE_D3D),
PATCH_ENTRY("D3DDevice_EnableOverlay", xbox::EMUPATCH(D3DDevice_EnableOverlay), PATCH_HLE_D3D),
PATCH_ENTRY("D3DDevice_End", xbox::EMUPATCH(D3DDevice_End), PATCH_HLE_D3D),
PATCH_ENTRY("D3DDevice_EndPush", xbox::EMUPATCH(D3DDevice_EndPush), PATCH_HLE_D3D),
PATCH_ENTRY("D3DDevice_EndVisibilityTest", xbox::EMUPATCH(D3DDevice_EndVisibilityTest), PATCH_HLE_D3D),
PATCH_ENTRY("D3DDevice_EndVisibilityTest_0", xbox::EMUPATCH(D3DDevice_EndVisibilityTest_0), PATCH_HLE_D3D),
PATCH_ENTRY("D3DDevice_FlushVertexCache", xbox::EMUPATCH(D3DDevice_FlushVertexCache), PATCH_HLE_D3D),
PATCH_ENTRY("D3DDevice_GetBackBuffer", xbox::EMUPATCH(D3DDevice_GetBackBuffer), PATCH_HLE_D3D),
PATCH_ENTRY("D3DDevice_GetBackBuffer2", xbox::EMUPATCH(D3DDevice_GetBackBuffer2), PATCH_HLE_D3D),
PATCH_ENTRY("D3DDevice_GetDisplayFieldStatus", xbox::EMUPATCH(D3DDevice_GetDisplayFieldStatus), PATCH_HLE_D3D),
PATCH_ENTRY("D3DDevice_GetGammaRamp", xbox::EMUPATCH(D3DDevice_GetGammaRamp), PATCH_HLE_D3D),
PATCH_ENTRY("D3DDevice_GetMaterial", xbox::EMUPATCH(D3DDevice_GetMaterial), PATCH_HLE_D3D),
PATCH_ENTRY("D3DDevice_GetModelView", xbox::EMUPATCH(D3DDevice_GetModelView), PATCH_HLE_D3D),
PATCH_ENTRY("D3DDevice_GetOverlayUpdateStatus", xbox::EMUPATCH(D3DDevice_GetOverlayUpdateStatus), PATCH_HLE_D3D),
PATCH_ENTRY("D3DDevice_GetProjectionViewportMatrix", xbox::EMUPATCH(D3DDevice_GetProjectionViewportMatrix), PATCH_HLE_D3D),
PATCH_ENTRY("D3DDevice_GetShaderConstantMode", xbox::EMUPATCH(D3DDevice_GetShaderConstantMode), PATCH_HLE_D3D),
PATCH_ENTRY("D3DDevice_GetTransform", xbox::EMUPATCH(D3DDevice_GetTransform), PATCH_HLE_D3D),
PATCH_ENTRY("D3DDevice_GetVertexShader", xbox::EMUPATCH(D3DDevice_GetVertexShader), PATCH_HLE_D3D),
PATCH_ENTRY("D3DDevice_GetVertexShaderConstant", xbox::EMUPATCH(D3DDevice_GetVertexShaderConstant), PATCH_HLE_D3D),
//PATCH_ENTRY("D3DDevice_GetVertexShaderDeclaration", xbox::EMUPATCH(D3DDevice_GetVertexShaderDeclaration), PATCH_HLE_D3D),
//PATCH_ENTRY("D3DDevice_GetVertexShaderFunction", xbox::EMUPATCH(D3DDevice_GetVertexShaderFunction), PATCH_HLE_D3D),
PATCH_ENTRY("D3DDevice_GetVertexShaderInput", xbox::EMUPATCH(D3DDevice_GetVertexShaderInput), PATCH_HLE_D3D),
//PATCH_ENTRY("D3DDevice_GetVertexShaderSize", xbox::EMUPATCH(D3DDevice_GetVertexShaderSize), PATCH_HLE_D3D),
//PATCH_ENTRY("D3DDevice_GetVertexShaderType", xbox::EMUPATCH(D3DDevice_GetVertexShaderType), PATCH_HLE_D3D),
//PATCH_ENTRY("D3DDevice_GetViewportOffsetAndScale", xbox::EMUPATCH(D3DDevice_GetViewportOffsetAndScale), PATCH_HLE_D3D),
PATCH_ENTRY("D3DDevice_GetVisibilityTestResult", xbox::EMUPATCH(D3DDevice_GetVisibilityTestResult), PATCH_HLE_D3D),
PATCH_ENTRY("D3DDevice_InsertCallback", xbox::EMUPATCH(D3DDevice_InsertCallback), PATCH_HLE_D3D),
PATCH_ENTRY("D3DDevice_InsertFence", xbox::EMUPATCH(D3DDevice_InsertFence), PATCH_HLE_D3D),
PATCH_ENTRY("D3DDevice_IsBusy", xbox::EMUPATCH(D3DDevice_IsBusy), PATCH_HLE_D3D),
PATCH_ENTRY("D3DDevice_IsFencePending", xbox::EMUPATCH(D3DDevice_IsFencePending), PATCH_HLE_D3D),
PATCH_ENTRY("D3DDevice_LightEnable", xbox::EMUPATCH(D3DDevice_LightEnable), PATCH_HLE_D3D),
PATCH_ENTRY("D3DDevice_LoadVertexShader", xbox::EMUPATCH(D3DDevice_LoadVertexShader), PATCH_HLE_D3D),
PATCH_ENTRY("D3DDevice_LoadVertexShaderProgram", xbox::EMUPATCH(D3DDevice_LoadVertexShaderProgram), PATCH_HLE_D3D),
PATCH_ENTRY("D3DDevice_LoadVertexShader_0", xbox::EMUPATCH(D3DDevice_LoadVertexShader_0), PATCH_HLE_D3D),
PATCH_ENTRY("D3DDevice_LoadVertexShader_4", xbox::EMUPATCH(D3DDevice_LoadVertexShader_4), PATCH_HLE_D3D),
PATCH_ENTRY("D3DDevice_MultiplyTransform", xbox::EMUPATCH(D3DDevice_MultiplyTransform), PATCH_HLE_D3D),
PATCH_ENTRY("D3DDevice_PersistDisplay", xbox::EMUPATCH(D3DDevice_PersistDisplay), PATCH_HLE_D3D),
PATCH_ENTRY("D3DDevice_Present", xbox::EMUPATCH(D3DDevice_Present), PATCH_HLE_D3D),
PATCH_ENTRY("D3DDevice_PrimeVertexCache", xbox::EMUPATCH(D3DDevice_PrimeVertexCache), PATCH_HLE_D3D),
PATCH_ENTRY("D3DDevice_Reset", xbox::EMUPATCH(D3DDevice_Reset), PATCH_HLE_D3D),
PATCH_ENTRY("D3DDevice_RunPushBuffer", xbox::EMUPATCH(D3DDevice_RunPushBuffer), PATCH_HLE_D3D),
PATCH_ENTRY("D3DDevice_RunVertexStateShader", xbox::EMUPATCH(D3DDevice_RunVertexStateShader), PATCH_HLE_D3D),
PATCH_ENTRY("D3DDevice_SelectVertexShader", xbox::EMUPATCH(D3DDevice_SelectVertexShader), PATCH_HLE_D3D),
PATCH_ENTRY("D3DDevice_SelectVertexShaderDirect", xbox::EMUPATCH(D3DDevice_SelectVertexShaderDirect), PATCH_HLE_D3D),
PATCH_ENTRY("D3DDevice_SelectVertexShader_0", xbox::EMUPATCH(D3DDevice_SelectVertexShader_0), PATCH_HLE_D3D),
PATCH_ENTRY("D3DDevice_SelectVertexShader_4", xbox::EMUPATCH(D3DDevice_SelectVertexShader_4), PATCH_HLE_D3D),
PATCH_ENTRY("D3DDevice_SetBackBufferScale", xbox::EMUPATCH(D3DDevice_SetBackBufferScale), PATCH_HLE_D3D),
PATCH_ENTRY("D3DDevice_SetDepthClipPlanes", xbox::EMUPATCH(D3DDevice_SetDepthClipPlanes), PATCH_HLE_D3D),
PATCH_ENTRY("D3DDevice_SetFlickerFilter", xbox::EMUPATCH(D3DDevice_SetFlickerFilter), PATCH_HLE_D3D),
PATCH_ENTRY("D3DDevice_SetFlickerFilter_0", xbox::EMUPATCH(D3DDevice_SetFlickerFilter_0), PATCH_HLE_D3D),
PATCH_ENTRY("D3DDevice_SetGammaRamp", xbox::EMUPATCH(D3DDevice_SetGammaRamp), PATCH_HLE_D3D),
PATCH_ENTRY("D3DDevice_SetIndices", xbox::EMUPATCH(D3DDevice_SetIndices), PATCH_HLE_D3D),
PATCH_ENTRY("D3DDevice_SetIndices_4", xbox::EMUPATCH(D3DDevice_SetIndices_4), PATCH_HLE_D3D),
PATCH_ENTRY("D3DDevice_SetLight", xbox::EMUPATCH(D3DDevice_SetLight), PATCH_HLE_D3D),
PATCH_ENTRY("D3DDevice_SetMaterial", xbox::EMUPATCH(D3DDevice_SetMaterial), PATCH_HLE_D3D),
PATCH_ENTRY("D3DDevice_SetModelView", xbox::EMUPATCH(D3DDevice_SetModelView), PATCH_HLE_D3D),
PATCH_ENTRY("D3DDevice_SetPalette", xbox::EMUPATCH(D3DDevice_SetPalette), PATCH_HLE_D3D),
PATCH_ENTRY("D3DDevice_SetPalette_4", xbox::EMUPATCH(D3DDevice_SetPalette_4), PATCH_HLE_D3D),
PATCH_ENTRY("D3DDevice_SetPixelShader", xbox::EMUPATCH(D3DDevice_SetPixelShader), PATCH_HLE_D3D),
PATCH_ENTRY("D3DDevice_SetPixelShaderConstant_4", xbox::EMUPATCH(D3DDevice_SetPixelShaderConstant_4), PATCH_HLE_D3D),
PATCH_ENTRY("D3DDevice_SetPixelShader_0", xbox::EMUPATCH(D3DDevice_SetPixelShader_0), PATCH_HLE_D3D),
PATCH_ENTRY("D3DDevice_SetRenderState_Simple", xbox::EMUPATCH(D3DDevice_SetRenderState_Simple), PATCH_HLE_D3D),
PATCH_ENTRY("D3DDevice_SetRenderTarget", xbox::EMUPATCH(D3DDevice_SetRenderTarget), PATCH_HLE_D3D),
PATCH_ENTRY("D3DDevice_SetRenderTargetFast", xbox::EMUPATCH(D3DDevice_SetRenderTargetFast), PATCH_HLE_D3D),
PATCH_ENTRY("D3DDevice_SetScreenSpaceOffset", xbox::EMUPATCH(D3DDevice_SetScreenSpaceOffset), PATCH_HLE_D3D),
PATCH_ENTRY("D3DDevice_SetShaderConstantMode", xbox::EMUPATCH(D3DDevice_SetShaderConstantMode), PATCH_HLE_D3D),
PATCH_ENTRY("D3DDevice_SetShaderConstantMode_0", xbox::EMUPATCH(D3DDevice_SetShaderConstantMode_0), PATCH_HLE_D3D),
PATCH_ENTRY("D3DDevice_SetSoftDisplayFilter", xbox::EMUPATCH(D3DDevice_SetSoftDisplayFilter), PATCH_HLE_D3D),
PATCH_ENTRY("D3DDevice_SetStateUP", xbox::EMUPATCH(D3DDevice_SetStateUP), PATCH_HLE_D3D),
PATCH_ENTRY("D3DDevice_SetStateVB", xbox::EMUPATCH(D3DDevice_SetStateVB), PATCH_HLE_D3D),
PATCH_ENTRY("D3DDevice_SetStipple", xbox::EMUPATCH(D3DDevice_SetStipple), PATCH_HLE_D3D),
PATCH_ENTRY("D3DDevice_SetStreamSource", xbox::EMUPATCH(D3DDevice_SetStreamSource), PATCH_HLE_D3D),
PATCH_ENTRY("D3DDevice_SetStreamSource_4", xbox::EMUPATCH(D3DDevice_SetStreamSource_4), PATCH_HLE_D3D),
PATCH_ENTRY("D3DDevice_SetStreamSource_8", xbox::EMUPATCH(D3DDevice_SetStreamSource_8), PATCH_HLE_D3D),
PATCH_ENTRY("D3DDevice_SetSwapCallback", xbox::EMUPATCH(D3DDevice_SetSwapCallback), PATCH_HLE_D3D),
PATCH_ENTRY("D3DDevice_SetTexture", xbox::EMUPATCH(D3DDevice_SetTexture), PATCH_HLE_D3D),
PATCH_ENTRY("D3DDevice_SetTexture_4", xbox::EMUPATCH(D3DDevice_SetTexture_4), PATCH_HLE_D3D),
PATCH_ENTRY("D3DDevice_SetTransform", xbox::EMUPATCH(D3DDevice_SetTransform), PATCH_HLE_D3D),
PATCH_ENTRY("D3DDevice_SetTransform_0", xbox::EMUPATCH(D3DDevice_SetTransform_0), PATCH_HLE_D3D),
PATCH_ENTRY("D3DDevice_SetVertexData2f", xbox::EMUPATCH(D3DDevice_SetVertexData2f), PATCH_HLE_D3D),
PATCH_ENTRY("D3DDevice_SetVertexData2s", xbox::EMUPATCH(D3DDevice_SetVertexData2s), PATCH_HLE_D3D),
PATCH_ENTRY("D3DDevice_SetVertexData4f", xbox::EMUPATCH(D3DDevice_SetVertexData4f), PATCH_HLE_D3D),
PATCH_ENTRY("D3DDevice_SetVertexData4f_16", xbox::EMUPATCH(D3DDevice_SetVertexData4f_16), PATCH_HLE_D3D),
PATCH_ENTRY("D3DDevice_SetVertexData4s", xbox::EMUPATCH(D3DDevice_SetVertexData4s), PATCH_HLE_D3D),
PATCH_ENTRY("D3DDevice_SetVertexData4ub", xbox::EMUPATCH(D3DDevice_SetVertexData4ub), PATCH_HLE_D3D),
PATCH_ENTRY("D3DDevice_SetVertexDataColor", xbox::EMUPATCH(D3DDevice_SetVertexDataColor), PATCH_HLE_D3D),
PATCH_ENTRY("D3DDevice_SetVertexShader", xbox::EMUPATCH(D3DDevice_SetVertexShader), PATCH_HLE_D3D),
PATCH_ENTRY("D3DDevice_SetVertexShaderConstant", xbox::EMUPATCH(D3DDevice_SetVertexShaderConstant), PATCH_HLE_D3D),
PATCH_ENTRY("D3DDevice_SetVertexShaderConstant1", xbox::EMUPATCH(D3DDevice_SetVertexShaderConstant1), PATCH_HLE_D3D),
PATCH_ENTRY("D3DDevice_SetVertexShaderConstant1Fast", xbox::EMUPATCH(D3DDevice_SetVertexShaderConstant1Fast), PATCH_HLE_D3D),
PATCH_ENTRY("D3DDevice_SetVertexShaderConstant4", xbox::EMUPATCH(D3DDevice_SetVertexShaderConstant4), PATCH_HLE_D3D),
PATCH_ENTRY("D3DDevice_SetVertexShaderConstantNotInline", xbox::EMUPATCH(D3DDevice_SetVertexShaderConstantNotInline), PATCH_HLE_D3D),
PATCH_ENTRY("D3DDevice_SetVertexShaderConstantNotInlineFast", xbox::EMUPATCH(D3DDevice_SetVertexShaderConstantNotInlineFast), PATCH_HLE_D3D),
PATCH_ENTRY("D3DDevice_SetVertexShaderConstant_8", xbox::EMUPATCH(D3DDevice_SetVertexShaderConstant_8), PATCH_HLE_D3D),
PATCH_ENTRY("D3DDevice_SetVertexShaderInput", xbox::EMUPATCH(D3DDevice_SetVertexShaderInput), PATCH_HLE_D3D),
PATCH_ENTRY("D3DDevice_SetVertexShaderInputDirect", xbox::EMUPATCH(D3DDevice_SetVertexShaderInputDirect), PATCH_HLE_D3D),
PATCH_ENTRY("D3DDevice_SetVerticalBlankCallback", xbox::EMUPATCH(D3DDevice_SetVerticalBlankCallback), PATCH_HLE_D3D),
PATCH_ENTRY("D3DDevice_SetViewport", xbox::EMUPATCH(D3DDevice_SetViewport), PATCH_HLE_D3D),
PATCH_ENTRY("D3DDevice_Swap", xbox::EMUPATCH(D3DDevice_Swap), PATCH_HLE_D3D),
PATCH_ENTRY("D3DDevice_Swap_0", xbox::EMUPATCH(D3DDevice_Swap_0), PATCH_HLE_D3D),
PATCH_ENTRY("D3DDevice_SwitchTexture", xbox::EMUPATCH(D3DDevice_SwitchTexture), PATCH_HLE_D3D),
PATCH_ENTRY("D3DDevice_UpdateOverlay", xbox::EMUPATCH(D3DDevice_UpdateOverlay), PATCH_HLE_D3D),
PATCH_ENTRY("D3DResource_BlockUntilNotBusy", xbox::EMUPATCH(D3DResource_BlockUntilNotBusy), PATCH_HLE_D3D),
PATCH_ENTRY("D3D_BlockOnTime", xbox::EMUPATCH(D3D_BlockOnTime), PATCH_HLE_D3D),
PATCH_ENTRY("D3D_DestroyResource", xbox::EMUPATCH(D3D_DestroyResource), PATCH_HLE_D3D),
PATCH_ENTRY("D3D_DestroyResource__LTCG", xbox::EMUPATCH(D3D_DestroyResource__LTCG), PATCH_HLE_D3D),
PATCH_ENTRY("D3D_LazySetPointParams", xbox::EMUPATCH(D3D_LazySetPointParams), PATCH_HLE_D3D),
PATCH_ENTRY("D3D_SetCommonDebugRegisters", xbox::EMUPATCH(D3D_SetCommonDebugRegisters), PATCH_HLE_D3D),
PATCH_ENTRY("Direct3D_CreateDevice", xbox::EMUPATCH(Direct3D_CreateDevice), PATCH_HLE_D3D),
PATCH_ENTRY("Direct3D_CreateDevice_16", xbox::EMUPATCH(Direct3D_CreateDevice_16), PATCH_HLE_D3D),
PATCH_ENTRY("Direct3D_CreateDevice_4", xbox::EMUPATCH(Direct3D_CreateDevice_4), PATCH_HLE_D3D),
PATCH_ENTRY("Lock2DSurface", xbox::EMUPATCH(Lock2DSurface), PATCH_HLE_D3D),
PATCH_ENTRY("Lock3DSurface", xbox::EMUPATCH(Lock3DSurface), PATCH_HLE_D3D),
// DSOUND
PATCH_ENTRY("CDirectSound3DCalculator_Calculate3D", XTL::EMUPATCH(CDirectSound3DCalculator_Calculate3D), PATCH_HLE_DSOUND),
PATCH_ENTRY("CDirectSound3DCalculator_GetVoiceData", XTL::EMUPATCH(CDirectSound3DCalculator_GetVoiceData), PATCH_HLE_DSOUND),
PATCH_ENTRY("CDirectSoundStream_AddRef", XTL::EMUPATCH(CDirectSoundStream_AddRef), PATCH_HLE_DSOUND),
PATCH_ENTRY("CDirectSoundStream_Discontinuity", XTL::EMUPATCH(CDirectSoundStream_Discontinuity), PATCH_HLE_DSOUND),
PATCH_ENTRY("CDirectSoundStream_Flush", XTL::EMUPATCH(CDirectSoundStream_Flush), PATCH_HLE_DSOUND),
PATCH_ENTRY("CDirectSoundStream_FlushEx", XTL::EMUPATCH(CDirectSoundStream_FlushEx), PATCH_HLE_DSOUND),
PATCH_ENTRY("CDirectSoundStream_GetInfo", XTL::EMUPATCH(CDirectSoundStream_GetInfo), PATCH_HLE_DSOUND),
PATCH_ENTRY("CDirectSoundStream_GetStatus", XTL::EMUPATCH(CDirectSoundStream_GetStatus), PATCH_HLE_DSOUND),
PATCH_ENTRY("CDirectSoundStream_GetVoiceProperties", XTL::EMUPATCH(CDirectSoundStream_GetVoiceProperties), PATCH_HLE_DSOUND),
PATCH_ENTRY("CDirectSoundStream_Pause", XTL::EMUPATCH(CDirectSoundStream_Pause), PATCH_HLE_DSOUND),
PATCH_ENTRY("CDirectSoundStream_PauseEx", XTL::EMUPATCH(CDirectSoundStream_PauseEx), PATCH_HLE_DSOUND),
PATCH_ENTRY("CDirectSoundStream_Process", XTL::EMUPATCH(CDirectSoundStream_Process), PATCH_HLE_DSOUND),
PATCH_ENTRY("CDirectSoundStream_Release", XTL::EMUPATCH(CDirectSoundStream_Release), PATCH_HLE_DSOUND),
PATCH_ENTRY("CDirectSoundStream_SetAllParameters", XTL::EMUPATCH(CDirectSoundStream_SetAllParameters), PATCH_HLE_DSOUND),
PATCH_ENTRY("CDirectSoundStream_SetConeAngles", XTL::EMUPATCH(CDirectSoundStream_SetConeAngles), PATCH_HLE_DSOUND),
PATCH_ENTRY("CDirectSoundStream_SetConeOrientation", XTL::EMUPATCH(CDirectSoundStream_SetConeOrientation), PATCH_HLE_DSOUND),
PATCH_ENTRY("CDirectSoundStream_SetConeOutsideVolume", XTL::EMUPATCH(CDirectSoundStream_SetConeOutsideVolume), PATCH_HLE_DSOUND),
PATCH_ENTRY("CDirectSoundStream_SetDistanceFactor", XTL::EMUPATCH(CDirectSoundStream_SetDistanceFactor), PATCH_HLE_DSOUND),
PATCH_ENTRY("CDirectSoundStream_SetDopplerFactor", XTL::EMUPATCH(CDirectSoundStream_SetDopplerFactor), PATCH_HLE_DSOUND),
PATCH_ENTRY("CDirectSoundStream_SetEG", XTL::EMUPATCH(CDirectSoundStream_SetEG), PATCH_HLE_DSOUND),
PATCH_ENTRY("CDirectSoundStream_SetFilter", XTL::EMUPATCH(CDirectSoundStream_SetFilter), PATCH_HLE_DSOUND),
PATCH_ENTRY("CDirectSoundStream_SetFormat", XTL::EMUPATCH(CDirectSoundStream_SetFormat), PATCH_HLE_DSOUND),
PATCH_ENTRY("CDirectSoundStream_SetFrequency", XTL::EMUPATCH(CDirectSoundStream_SetFrequency), PATCH_HLE_DSOUND),
PATCH_ENTRY("CDirectSoundStream_SetHeadroom", XTL::EMUPATCH(CDirectSoundStream_SetHeadroom), PATCH_HLE_DSOUND),
PATCH_ENTRY("CDirectSoundStream_SetI3DL2Source", XTL::EMUPATCH(CDirectSoundStream_SetI3DL2Source), PATCH_HLE_DSOUND),
PATCH_ENTRY("CDirectSoundStream_SetLFO", XTL::EMUPATCH(CDirectSoundStream_SetLFO), PATCH_HLE_DSOUND),
PATCH_ENTRY("CDirectSoundStream_SetMaxDistance", XTL::EMUPATCH(CDirectSoundStream_SetMaxDistance), PATCH_HLE_DSOUND),
PATCH_ENTRY("CDirectSoundStream_SetMinDistance", XTL::EMUPATCH(CDirectSoundStream_SetMinDistance), PATCH_HLE_DSOUND),
PATCH_ENTRY("CDirectSoundStream_SetMixBinVolumes_12", XTL::EMUPATCH(CDirectSoundStream_SetMixBinVolumes_12), PATCH_HLE_DSOUND),
PATCH_ENTRY("CDirectSoundStream_SetMixBinVolumes_8", XTL::EMUPATCH(CDirectSoundStream_SetMixBinVolumes_8), PATCH_HLE_DSOUND),
PATCH_ENTRY("CDirectSoundStream_SetMixBins", XTL::EMUPATCH(CDirectSoundStream_SetMixBins), PATCH_HLE_DSOUND),
PATCH_ENTRY("CDirectSoundStream_SetMode", XTL::EMUPATCH(CDirectSoundStream_SetMode), PATCH_HLE_DSOUND),
PATCH_ENTRY("CDirectSoundStream_SetOutputBuffer", XTL::EMUPATCH(CDirectSoundStream_SetOutputBuffer), PATCH_HLE_DSOUND),
PATCH_ENTRY("CDirectSoundStream_SetPitch", XTL::EMUPATCH(CDirectSoundStream_SetPitch), PATCH_HLE_DSOUND),
PATCH_ENTRY("CDirectSoundStream_SetPosition", XTL::EMUPATCH(CDirectSoundStream_SetPosition), PATCH_HLE_DSOUND),
PATCH_ENTRY("CDirectSoundStream_SetRolloffCurve", XTL::EMUPATCH(CDirectSoundStream_SetRolloffCurve), PATCH_HLE_DSOUND),
PATCH_ENTRY("CDirectSoundStream_SetRolloffFactor", XTL::EMUPATCH(CDirectSoundStream_SetRolloffFactor), PATCH_HLE_DSOUND),
PATCH_ENTRY("CDirectSoundStream_SetVelocity", XTL::EMUPATCH(CDirectSoundStream_SetVelocity), PATCH_HLE_DSOUND),
PATCH_ENTRY("CDirectSoundStream_SetVolume", XTL::EMUPATCH(CDirectSoundStream_SetVolume), PATCH_HLE_DSOUND),
PATCH_ENTRY("CDirectSound_CommitDeferredSettings", XTL::EMUPATCH(CDirectSound_CommitDeferredSettings), PATCH_HLE_DSOUND),
PATCH_ENTRY("CDirectSound_GetSpeakerConfig", XTL::EMUPATCH(CDirectSound_GetSpeakerConfig), PATCH_HLE_DSOUND),
PATCH_ENTRY("CDirectSound_SynchPlayback", XTL::EMUPATCH(CDirectSound_SynchPlayback), PATCH_HLE_DSOUND),
PATCH_ENTRY("CMcpxStream_Dummy_0x10", XTL::EMUPATCH(CMcpxStream_Dummy_0x10), PATCH_HLE_DSOUND),
PATCH_ENTRY("DirectSoundCreate", XTL::EMUPATCH(DirectSoundCreate), PATCH_HLE_DSOUND),
PATCH_ENTRY("DirectSoundCreateBuffer", XTL::EMUPATCH(DirectSoundCreateBuffer), PATCH_HLE_DSOUND),
PATCH_ENTRY("DirectSoundCreateStream", XTL::EMUPATCH(DirectSoundCreateStream), PATCH_HLE_DSOUND),
PATCH_ENTRY("DirectSoundDoWork", XTL::EMUPATCH(DirectSoundDoWork), PATCH_HLE_DSOUND),
PATCH_ENTRY("DirectSoundGetSampleTime", XTL::EMUPATCH(DirectSoundGetSampleTime), PATCH_HLE_DSOUND),
PATCH_ENTRY("DirectSoundUseFullHRTF", XTL::EMUPATCH(DirectSoundUseFullHRTF), PATCH_HLE_DSOUND),
PATCH_ENTRY("DirectSoundUseFullHRTF4Channel", XTL::EMUPATCH(DirectSoundUseFullHRTF4Channel), PATCH_HLE_DSOUND),
PATCH_ENTRY("DirectSoundUseLightHRTF", XTL::EMUPATCH(DirectSoundUseLightHRTF), PATCH_HLE_DSOUND),
PATCH_ENTRY("DirectSoundUseLightHRTF4Channel", XTL::EMUPATCH(DirectSoundUseLightHRTF4Channel), PATCH_HLE_DSOUND),
PATCH_ENTRY("IDirectSoundBuffer_AddRef", XTL::EMUPATCH(IDirectSoundBuffer_AddRef), PATCH_HLE_DSOUND),
PATCH_ENTRY("IDirectSoundBuffer_GetCurrentPosition", XTL::EMUPATCH(IDirectSoundBuffer_GetCurrentPosition), PATCH_HLE_DSOUND),
PATCH_ENTRY("IDirectSoundBuffer_GetStatus", XTL::EMUPATCH(IDirectSoundBuffer_GetStatus), PATCH_HLE_DSOUND),
PATCH_ENTRY("IDirectSoundBuffer_GetVoiceProperties", XTL::EMUPATCH(IDirectSoundBuffer_GetVoiceProperties), PATCH_HLE_DSOUND),
PATCH_ENTRY("IDirectSoundBuffer_Lock", XTL::EMUPATCH(IDirectSoundBuffer_Lock), PATCH_HLE_DSOUND),
PATCH_ENTRY("IDirectSoundBuffer_Pause", XTL::EMUPATCH(IDirectSoundBuffer_Pause), PATCH_HLE_DSOUND),
PATCH_ENTRY("IDirectSoundBuffer_PauseEx", XTL::EMUPATCH(IDirectSoundBuffer_PauseEx), PATCH_HLE_DSOUND),
PATCH_ENTRY("IDirectSoundBuffer_Play", XTL::EMUPATCH(IDirectSoundBuffer_Play), PATCH_HLE_DSOUND),
PATCH_ENTRY("IDirectSoundBuffer_PlayEx", XTL::EMUPATCH(IDirectSoundBuffer_PlayEx), PATCH_HLE_DSOUND),
PATCH_ENTRY("IDirectSoundBuffer_Release", XTL::EMUPATCH(IDirectSoundBuffer_Release), PATCH_HLE_DSOUND),
PATCH_ENTRY("IDirectSoundBuffer_Set3DVoiceData", XTL::EMUPATCH(IDirectSoundBuffer_Set3DVoiceData), PATCH_HLE_DSOUND),
PATCH_ENTRY("IDirectSoundBuffer_SetAllParameters", XTL::EMUPATCH(IDirectSoundBuffer_SetAllParameters), PATCH_HLE_DSOUND),
PATCH_ENTRY("IDirectSoundBuffer_SetBufferData", XTL::EMUPATCH(IDirectSoundBuffer_SetBufferData), PATCH_HLE_DSOUND),
PATCH_ENTRY("IDirectSoundBuffer_SetConeAngles", XTL::EMUPATCH(IDirectSoundBuffer_SetConeAngles), PATCH_HLE_DSOUND),
PATCH_ENTRY("IDirectSoundBuffer_SetConeOrientation", XTL::EMUPATCH(IDirectSoundBuffer_SetConeOrientation), PATCH_HLE_DSOUND),
PATCH_ENTRY("IDirectSoundBuffer_SetConeOutsideVolume", XTL::EMUPATCH(IDirectSoundBuffer_SetConeOutsideVolume), PATCH_HLE_DSOUND),
PATCH_ENTRY("IDirectSoundBuffer_SetCurrentPosition", XTL::EMUPATCH(IDirectSoundBuffer_SetCurrentPosition), PATCH_HLE_DSOUND),
PATCH_ENTRY("IDirectSoundBuffer_SetDistanceFactor", XTL::EMUPATCH(IDirectSoundBuffer_SetDistanceFactor), PATCH_HLE_DSOUND),
PATCH_ENTRY("IDirectSoundBuffer_SetDopplerFactor", XTL::EMUPATCH(IDirectSoundBuffer_SetDopplerFactor), PATCH_HLE_DSOUND),
PATCH_ENTRY("IDirectSoundBuffer_SetEG", XTL::EMUPATCH(IDirectSoundBuffer_SetEG), PATCH_HLE_DSOUND),
PATCH_ENTRY("IDirectSoundBuffer_SetFilter", XTL::EMUPATCH(IDirectSoundBuffer_SetFilter), PATCH_HLE_DSOUND),
PATCH_ENTRY("IDirectSoundBuffer_SetFormat", XTL::EMUPATCH(IDirectSoundBuffer_SetFormat), PATCH_HLE_DSOUND),
PATCH_ENTRY("IDirectSoundBuffer_SetFrequency", XTL::EMUPATCH(IDirectSoundBuffer_SetFrequency), PATCH_HLE_DSOUND),
PATCH_ENTRY("IDirectSoundBuffer_SetHeadroom", XTL::EMUPATCH(IDirectSoundBuffer_SetHeadroom), PATCH_HLE_DSOUND),
PATCH_ENTRY("IDirectSoundBuffer_SetI3DL2Source", XTL::EMUPATCH(IDirectSoundBuffer_SetI3DL2Source), PATCH_HLE_DSOUND),
PATCH_ENTRY("IDirectSoundBuffer_SetLFO", XTL::EMUPATCH(IDirectSoundBuffer_SetLFO), PATCH_HLE_DSOUND),
PATCH_ENTRY("IDirectSoundBuffer_SetLoopRegion", XTL::EMUPATCH(IDirectSoundBuffer_SetLoopRegion), PATCH_HLE_DSOUND),
PATCH_ENTRY("IDirectSoundBuffer_SetMaxDistance", XTL::EMUPATCH(IDirectSoundBuffer_SetMaxDistance), PATCH_HLE_DSOUND),
PATCH_ENTRY("IDirectSoundBuffer_SetMinDistance", XTL::EMUPATCH(IDirectSoundBuffer_SetMinDistance), PATCH_HLE_DSOUND),
PATCH_ENTRY("IDirectSoundBuffer_SetMixBinVolumes_12", XTL::EMUPATCH(IDirectSoundBuffer_SetMixBinVolumes_12), PATCH_HLE_DSOUND),
PATCH_ENTRY("IDirectSoundBuffer_SetMixBinVolumes_8", XTL::EMUPATCH(IDirectSoundBuffer_SetMixBinVolumes_8), PATCH_HLE_DSOUND),
PATCH_ENTRY("IDirectSoundBuffer_SetMixBins", XTL::EMUPATCH(IDirectSoundBuffer_SetMixBins), PATCH_HLE_DSOUND),
PATCH_ENTRY("IDirectSoundBuffer_SetMode", XTL::EMUPATCH(IDirectSoundBuffer_SetMode), PATCH_HLE_DSOUND),
PATCH_ENTRY("IDirectSoundBuffer_SetNotificationPositions", XTL::EMUPATCH(IDirectSoundBuffer_SetNotificationPositions), PATCH_HLE_DSOUND),
PATCH_ENTRY("IDirectSoundBuffer_SetOutputBuffer", XTL::EMUPATCH(IDirectSoundBuffer_SetOutputBuffer), PATCH_HLE_DSOUND),
PATCH_ENTRY("IDirectSoundBuffer_SetPitch", XTL::EMUPATCH(IDirectSoundBuffer_SetPitch), PATCH_HLE_DSOUND),
PATCH_ENTRY("IDirectSoundBuffer_SetPlayRegion", XTL::EMUPATCH(IDirectSoundBuffer_SetPlayRegion), PATCH_HLE_DSOUND),
PATCH_ENTRY("IDirectSoundBuffer_SetPosition", XTL::EMUPATCH(IDirectSoundBuffer_SetPosition), PATCH_HLE_DSOUND),
PATCH_ENTRY("IDirectSoundBuffer_SetRolloffCurve", XTL::EMUPATCH(IDirectSoundBuffer_SetRolloffCurve), PATCH_HLE_DSOUND),
PATCH_ENTRY("IDirectSoundBuffer_SetRolloffFactor", XTL::EMUPATCH(IDirectSoundBuffer_SetRolloffFactor), PATCH_HLE_DSOUND),
PATCH_ENTRY("IDirectSoundBuffer_SetVelocity", XTL::EMUPATCH(IDirectSoundBuffer_SetVelocity), PATCH_HLE_DSOUND),
PATCH_ENTRY("IDirectSoundBuffer_SetVolume", XTL::EMUPATCH(IDirectSoundBuffer_SetVolume), PATCH_HLE_DSOUND),
PATCH_ENTRY("IDirectSoundBuffer_Stop", XTL::EMUPATCH(IDirectSoundBuffer_Stop), PATCH_HLE_DSOUND),
PATCH_ENTRY("IDirectSoundBuffer_StopEx", XTL::EMUPATCH(IDirectSoundBuffer_StopEx), PATCH_HLE_DSOUND),
PATCH_ENTRY("IDirectSoundBuffer_Unlock", XTL::EMUPATCH(IDirectSoundBuffer_Unlock), PATCH_HLE_DSOUND),
PATCH_ENTRY("IDirectSoundBuffer_Use3DVoiceData", XTL::EMUPATCH(IDirectSoundBuffer_Use3DVoiceData), PATCH_HLE_DSOUND),
PATCH_ENTRY("IDirectSoundStream_Set3DVoiceData", XTL::EMUPATCH(IDirectSoundStream_Set3DVoiceData), PATCH_HLE_DSOUND),
PATCH_ENTRY("IDirectSoundStream_SetEG", XTL::EMUPATCH(IDirectSoundStream_SetEG), PATCH_HLE_DSOUND),
PATCH_ENTRY("IDirectSoundStream_SetFilter", XTL::EMUPATCH(IDirectSoundStream_SetFilter), PATCH_HLE_DSOUND),
PATCH_ENTRY("IDirectSoundStream_SetFrequency", XTL::EMUPATCH(IDirectSoundStream_SetFrequency), PATCH_HLE_DSOUND),
PATCH_ENTRY("IDirectSoundStream_SetHeadroom", XTL::EMUPATCH(IDirectSoundStream_SetHeadroom), PATCH_HLE_DSOUND),
PATCH_ENTRY("IDirectSoundStream_SetLFO", XTL::EMUPATCH(IDirectSoundStream_SetLFO), PATCH_HLE_DSOUND),
PATCH_ENTRY("IDirectSoundStream_SetMixBins", XTL::EMUPATCH(IDirectSoundStream_SetMixBins), PATCH_HLE_DSOUND),
PATCH_ENTRY("IDirectSoundStream_SetPitch", XTL::EMUPATCH(IDirectSoundStream_SetPitch), PATCH_HLE_DSOUND),
PATCH_ENTRY("IDirectSoundStream_SetVolume", XTL::EMUPATCH(IDirectSoundStream_SetVolume), PATCH_HLE_DSOUND),
PATCH_ENTRY("IDirectSoundStream_Use3DVoiceData", XTL::EMUPATCH(IDirectSoundStream_Use3DVoiceData), PATCH_HLE_DSOUND),
PATCH_ENTRY("IDirectSound_AddRef", XTL::EMUPATCH(IDirectSound_AddRef), PATCH_HLE_DSOUND),
PATCH_ENTRY("IDirectSound_CommitDeferredSettings", XTL::EMUPATCH(IDirectSound_CommitDeferredSettings), PATCH_HLE_DSOUND),
PATCH_ENTRY("IDirectSound_CommitEffectData", XTL::EMUPATCH(IDirectSound_CommitEffectData), PATCH_HLE_DSOUND),
PATCH_ENTRY("IDirectSound_CreateSoundBuffer", XTL::EMUPATCH(IDirectSound_CreateSoundBuffer), PATCH_HLE_DSOUND),
PATCH_ENTRY("IDirectSound_CreateSoundStream", XTL::EMUPATCH(IDirectSound_CreateSoundStream), PATCH_HLE_DSOUND),
PATCH_ENTRY("IDirectSound_DownloadEffectsImage", XTL::EMUPATCH(IDirectSound_DownloadEffectsImage), PATCH_HLE_DSOUND),
PATCH_ENTRY("IDirectSound_EnableHeadphones", XTL::EMUPATCH(IDirectSound_EnableHeadphones), PATCH_HLE_DSOUND),
PATCH_ENTRY("IDirectSound_GetCaps", XTL::EMUPATCH(IDirectSound_GetCaps), PATCH_HLE_DSOUND),
PATCH_ENTRY("IDirectSound_GetEffectData", XTL::EMUPATCH(IDirectSound_GetEffectData), PATCH_HLE_DSOUND),
PATCH_ENTRY("IDirectSound_GetOutputLevels", XTL::EMUPATCH(IDirectSound_GetOutputLevels), PATCH_HLE_DSOUND),
PATCH_ENTRY("IDirectSound_GetSpeakerConfig", XTL::EMUPATCH(IDirectSound_GetSpeakerConfig), PATCH_HLE_DSOUND),
PATCH_ENTRY("IDirectSound_Release", XTL::EMUPATCH(IDirectSound_Release), PATCH_HLE_DSOUND),
PATCH_ENTRY("IDirectSound_SetAllParameters", XTL::EMUPATCH(IDirectSound_SetAllParameters), PATCH_HLE_DSOUND),
PATCH_ENTRY("IDirectSound_SetDistanceFactor", XTL::EMUPATCH(IDirectSound_SetDistanceFactor), PATCH_HLE_DSOUND),
PATCH_ENTRY("IDirectSound_SetDopplerFactor", XTL::EMUPATCH(IDirectSound_SetDopplerFactor), PATCH_HLE_DSOUND),
PATCH_ENTRY("IDirectSound_SetEffectData", XTL::EMUPATCH(IDirectSound_SetEffectData), PATCH_HLE_DSOUND),
PATCH_ENTRY("IDirectSound_SetI3DL2Listener", XTL::EMUPATCH(IDirectSound_SetI3DL2Listener), PATCH_HLE_DSOUND),
PATCH_ENTRY("IDirectSound_SetMixBinHeadroom", XTL::EMUPATCH(IDirectSound_SetMixBinHeadroom), PATCH_HLE_DSOUND),
PATCH_ENTRY("IDirectSound_SetOrientation", XTL::EMUPATCH(IDirectSound_SetOrientation), PATCH_HLE_DSOUND),
PATCH_ENTRY("IDirectSound_SetPosition", XTL::EMUPATCH(IDirectSound_SetPosition), PATCH_HLE_DSOUND),
PATCH_ENTRY("IDirectSound_SetRolloffFactor", XTL::EMUPATCH(IDirectSound_SetRolloffFactor), PATCH_HLE_DSOUND),
PATCH_ENTRY("IDirectSound_SetVelocity", XTL::EMUPATCH(IDirectSound_SetVelocity), PATCH_HLE_DSOUND),
PATCH_ENTRY("IDirectSound_SynchPlayback", XTL::EMUPATCH(IDirectSound_SynchPlayback), PATCH_HLE_DSOUND),
//PATCH_ENTRY("XAudioCreateAdpcmFormat", XTL::EMUPATCH(XAudioCreateAdpcmFormat), PATCH_HLE_DSOUND), // NOTE: Not require to patch
PATCH_ENTRY("XAudioDownloadEffectsImage", XTL::EMUPATCH(XAudioDownloadEffectsImage), PATCH_HLE_DSOUND),
PATCH_ENTRY("XAudioSetEffectData", XTL::EMUPATCH(XAudioSetEffectData), PATCH_HLE_DSOUND),
PATCH_ENTRY("CDirectSound3DCalculator_Calculate3D", xbox::EMUPATCH(CDirectSound3DCalculator_Calculate3D), PATCH_HLE_DSOUND),
PATCH_ENTRY("CDirectSound3DCalculator_GetVoiceData", xbox::EMUPATCH(CDirectSound3DCalculator_GetVoiceData), PATCH_HLE_DSOUND),
PATCH_ENTRY("CDirectSoundStream_AddRef", xbox::EMUPATCH(CDirectSoundStream_AddRef), PATCH_HLE_DSOUND),
PATCH_ENTRY("CDirectSoundStream_Discontinuity", xbox::EMUPATCH(CDirectSoundStream_Discontinuity), PATCH_HLE_DSOUND),
PATCH_ENTRY("CDirectSoundStream_Flush", xbox::EMUPATCH(CDirectSoundStream_Flush), PATCH_HLE_DSOUND),
PATCH_ENTRY("CDirectSoundStream_FlushEx", xbox::EMUPATCH(CDirectSoundStream_FlushEx), PATCH_HLE_DSOUND),
PATCH_ENTRY("CDirectSoundStream_GetInfo", xbox::EMUPATCH(CDirectSoundStream_GetInfo), PATCH_HLE_DSOUND),
PATCH_ENTRY("CDirectSoundStream_GetStatus", xbox::EMUPATCH(CDirectSoundStream_GetStatus), PATCH_HLE_DSOUND),
PATCH_ENTRY("CDirectSoundStream_GetVoiceProperties", xbox::EMUPATCH(CDirectSoundStream_GetVoiceProperties), PATCH_HLE_DSOUND),
PATCH_ENTRY("CDirectSoundStream_Pause", xbox::EMUPATCH(CDirectSoundStream_Pause), PATCH_HLE_DSOUND),
PATCH_ENTRY("CDirectSoundStream_PauseEx", xbox::EMUPATCH(CDirectSoundStream_PauseEx), PATCH_HLE_DSOUND),
PATCH_ENTRY("CDirectSoundStream_Process", xbox::EMUPATCH(CDirectSoundStream_Process), PATCH_HLE_DSOUND),
PATCH_ENTRY("CDirectSoundStream_Release", xbox::EMUPATCH(CDirectSoundStream_Release), PATCH_HLE_DSOUND),
PATCH_ENTRY("CDirectSoundStream_SetAllParameters", xbox::EMUPATCH(CDirectSoundStream_SetAllParameters), PATCH_HLE_DSOUND),
PATCH_ENTRY("CDirectSoundStream_SetConeAngles", xbox::EMUPATCH(CDirectSoundStream_SetConeAngles), PATCH_HLE_DSOUND),
PATCH_ENTRY("CDirectSoundStream_SetConeOrientation", xbox::EMUPATCH(CDirectSoundStream_SetConeOrientation), PATCH_HLE_DSOUND),
PATCH_ENTRY("CDirectSoundStream_SetConeOutsideVolume", xbox::EMUPATCH(CDirectSoundStream_SetConeOutsideVolume), PATCH_HLE_DSOUND),
PATCH_ENTRY("CDirectSoundStream_SetDistanceFactor", xbox::EMUPATCH(CDirectSoundStream_SetDistanceFactor), PATCH_HLE_DSOUND),
PATCH_ENTRY("CDirectSoundStream_SetDopplerFactor", xbox::EMUPATCH(CDirectSoundStream_SetDopplerFactor), PATCH_HLE_DSOUND),
PATCH_ENTRY("CDirectSoundStream_SetEG", xbox::EMUPATCH(CDirectSoundStream_SetEG), PATCH_HLE_DSOUND),
PATCH_ENTRY("CDirectSoundStream_SetFilter", xbox::EMUPATCH(CDirectSoundStream_SetFilter), PATCH_HLE_DSOUND),
PATCH_ENTRY("CDirectSoundStream_SetFormat", xbox::EMUPATCH(CDirectSoundStream_SetFormat), PATCH_HLE_DSOUND),
PATCH_ENTRY("CDirectSoundStream_SetFrequency", xbox::EMUPATCH(CDirectSoundStream_SetFrequency), PATCH_HLE_DSOUND),
PATCH_ENTRY("CDirectSoundStream_SetHeadroom", xbox::EMUPATCH(CDirectSoundStream_SetHeadroom), PATCH_HLE_DSOUND),
PATCH_ENTRY("CDirectSoundStream_SetI3DL2Source", xbox::EMUPATCH(CDirectSoundStream_SetI3DL2Source), PATCH_HLE_DSOUND),
PATCH_ENTRY("CDirectSoundStream_SetLFO", xbox::EMUPATCH(CDirectSoundStream_SetLFO), PATCH_HLE_DSOUND),
PATCH_ENTRY("CDirectSoundStream_SetMaxDistance", xbox::EMUPATCH(CDirectSoundStream_SetMaxDistance), PATCH_HLE_DSOUND),
PATCH_ENTRY("CDirectSoundStream_SetMinDistance", xbox::EMUPATCH(CDirectSoundStream_SetMinDistance), PATCH_HLE_DSOUND),
PATCH_ENTRY("CDirectSoundStream_SetMixBinVolumes_12", xbox::EMUPATCH(CDirectSoundStream_SetMixBinVolumes_12), PATCH_HLE_DSOUND),
PATCH_ENTRY("CDirectSoundStream_SetMixBinVolumes_8", xbox::EMUPATCH(CDirectSoundStream_SetMixBinVolumes_8), PATCH_HLE_DSOUND),
PATCH_ENTRY("CDirectSoundStream_SetMixBins", xbox::EMUPATCH(CDirectSoundStream_SetMixBins), PATCH_HLE_DSOUND),
PATCH_ENTRY("CDirectSoundStream_SetMode", xbox::EMUPATCH(CDirectSoundStream_SetMode), PATCH_HLE_DSOUND),
PATCH_ENTRY("CDirectSoundStream_SetOutputBuffer", xbox::EMUPATCH(CDirectSoundStream_SetOutputBuffer), PATCH_HLE_DSOUND),
PATCH_ENTRY("CDirectSoundStream_SetPitch", xbox::EMUPATCH(CDirectSoundStream_SetPitch), PATCH_HLE_DSOUND),
PATCH_ENTRY("CDirectSoundStream_SetPosition", xbox::EMUPATCH(CDirectSoundStream_SetPosition), PATCH_HLE_DSOUND),
PATCH_ENTRY("CDirectSoundStream_SetRolloffCurve", xbox::EMUPATCH(CDirectSoundStream_SetRolloffCurve), PATCH_HLE_DSOUND),
PATCH_ENTRY("CDirectSoundStream_SetRolloffFactor", xbox::EMUPATCH(CDirectSoundStream_SetRolloffFactor), PATCH_HLE_DSOUND),
PATCH_ENTRY("CDirectSoundStream_SetVelocity", xbox::EMUPATCH(CDirectSoundStream_SetVelocity), PATCH_HLE_DSOUND),
PATCH_ENTRY("CDirectSoundStream_SetVolume", xbox::EMUPATCH(CDirectSoundStream_SetVolume), PATCH_HLE_DSOUND),
PATCH_ENTRY("CDirectSound_CommitDeferredSettings", xbox::EMUPATCH(CDirectSound_CommitDeferredSettings), PATCH_HLE_DSOUND),
PATCH_ENTRY("CDirectSound_GetSpeakerConfig", xbox::EMUPATCH(CDirectSound_GetSpeakerConfig), PATCH_HLE_DSOUND),
PATCH_ENTRY("CDirectSound_SynchPlayback", xbox::EMUPATCH(CDirectSound_SynchPlayback), PATCH_HLE_DSOUND),
PATCH_ENTRY("CMcpxStream_Dummy_0x10", xbox::EMUPATCH(CMcpxStream_Dummy_0x10), PATCH_HLE_DSOUND),
PATCH_ENTRY("DirectSoundCreate", xbox::EMUPATCH(DirectSoundCreate), PATCH_HLE_DSOUND),
PATCH_ENTRY("DirectSoundCreateBuffer", xbox::EMUPATCH(DirectSoundCreateBuffer), PATCH_HLE_DSOUND),
PATCH_ENTRY("DirectSoundCreateStream", xbox::EMUPATCH(DirectSoundCreateStream), PATCH_HLE_DSOUND),
PATCH_ENTRY("DirectSoundDoWork", xbox::EMUPATCH(DirectSoundDoWork), PATCH_HLE_DSOUND),
PATCH_ENTRY("DirectSoundGetSampleTime", xbox::EMUPATCH(DirectSoundGetSampleTime), PATCH_HLE_DSOUND),
PATCH_ENTRY("DirectSoundUseFullHRTF", xbox::EMUPATCH(DirectSoundUseFullHRTF), PATCH_HLE_DSOUND),
PATCH_ENTRY("DirectSoundUseFullHRTF4Channel", xbox::EMUPATCH(DirectSoundUseFullHRTF4Channel), PATCH_HLE_DSOUND),
PATCH_ENTRY("DirectSoundUseLightHRTF", xbox::EMUPATCH(DirectSoundUseLightHRTF), PATCH_HLE_DSOUND),
PATCH_ENTRY("DirectSoundUseLightHRTF4Channel", xbox::EMUPATCH(DirectSoundUseLightHRTF4Channel), PATCH_HLE_DSOUND),
PATCH_ENTRY("IDirectSoundBuffer_AddRef", xbox::EMUPATCH(IDirectSoundBuffer_AddRef), PATCH_HLE_DSOUND),
PATCH_ENTRY("IDirectSoundBuffer_GetCurrentPosition", xbox::EMUPATCH(IDirectSoundBuffer_GetCurrentPosition), PATCH_HLE_DSOUND),
PATCH_ENTRY("IDirectSoundBuffer_GetStatus", xbox::EMUPATCH(IDirectSoundBuffer_GetStatus), PATCH_HLE_DSOUND),
PATCH_ENTRY("IDirectSoundBuffer_GetVoiceProperties", xbox::EMUPATCH(IDirectSoundBuffer_GetVoiceProperties), PATCH_HLE_DSOUND),
PATCH_ENTRY("IDirectSoundBuffer_Lock", xbox::EMUPATCH(IDirectSoundBuffer_Lock), PATCH_HLE_DSOUND),
PATCH_ENTRY("IDirectSoundBuffer_Pause", xbox::EMUPATCH(IDirectSoundBuffer_Pause), PATCH_HLE_DSOUND),
PATCH_ENTRY("IDirectSoundBuffer_PauseEx", xbox::EMUPATCH(IDirectSoundBuffer_PauseEx), PATCH_HLE_DSOUND),
PATCH_ENTRY("IDirectSoundBuffer_Play", xbox::EMUPATCH(IDirectSoundBuffer_Play), PATCH_HLE_DSOUND),
PATCH_ENTRY("IDirectSoundBuffer_PlayEx", xbox::EMUPATCH(IDirectSoundBuffer_PlayEx), PATCH_HLE_DSOUND),
PATCH_ENTRY("IDirectSoundBuffer_Release", xbox::EMUPATCH(IDirectSoundBuffer_Release), PATCH_HLE_DSOUND),
PATCH_ENTRY("IDirectSoundBuffer_Set3DVoiceData", xbox::EMUPATCH(IDirectSoundBuffer_Set3DVoiceData), PATCH_HLE_DSOUND),
PATCH_ENTRY("IDirectSoundBuffer_SetAllParameters", xbox::EMUPATCH(IDirectSoundBuffer_SetAllParameters), PATCH_HLE_DSOUND),
PATCH_ENTRY("IDirectSoundBuffer_SetBufferData", xbox::EMUPATCH(IDirectSoundBuffer_SetBufferData), PATCH_HLE_DSOUND),
PATCH_ENTRY("IDirectSoundBuffer_SetConeAngles", xbox::EMUPATCH(IDirectSoundBuffer_SetConeAngles), PATCH_HLE_DSOUND),
PATCH_ENTRY("IDirectSoundBuffer_SetConeOrientation", xbox::EMUPATCH(IDirectSoundBuffer_SetConeOrientation), PATCH_HLE_DSOUND),
PATCH_ENTRY("IDirectSoundBuffer_SetConeOutsideVolume", xbox::EMUPATCH(IDirectSoundBuffer_SetConeOutsideVolume), PATCH_HLE_DSOUND),
PATCH_ENTRY("IDirectSoundBuffer_SetCurrentPosition", xbox::EMUPATCH(IDirectSoundBuffer_SetCurrentPosition), PATCH_HLE_DSOUND),
PATCH_ENTRY("IDirectSoundBuffer_SetDistanceFactor", xbox::EMUPATCH(IDirectSoundBuffer_SetDistanceFactor), PATCH_HLE_DSOUND),
PATCH_ENTRY("IDirectSoundBuffer_SetDopplerFactor", xbox::EMUPATCH(IDirectSoundBuffer_SetDopplerFactor), PATCH_HLE_DSOUND),
PATCH_ENTRY("IDirectSoundBuffer_SetEG", xbox::EMUPATCH(IDirectSoundBuffer_SetEG), PATCH_HLE_DSOUND),
PATCH_ENTRY("IDirectSoundBuffer_SetFilter", xbox::EMUPATCH(IDirectSoundBuffer_SetFilter), PATCH_HLE_DSOUND),
PATCH_ENTRY("IDirectSoundBuffer_SetFormat", xbox::EMUPATCH(IDirectSoundBuffer_SetFormat), PATCH_HLE_DSOUND),
PATCH_ENTRY("IDirectSoundBuffer_SetFrequency", xbox::EMUPATCH(IDirectSoundBuffer_SetFrequency), PATCH_HLE_DSOUND),
PATCH_ENTRY("IDirectSoundBuffer_SetHeadroom", xbox::EMUPATCH(IDirectSoundBuffer_SetHeadroom), PATCH_HLE_DSOUND),
PATCH_ENTRY("IDirectSoundBuffer_SetI3DL2Source", xbox::EMUPATCH(IDirectSoundBuffer_SetI3DL2Source), PATCH_HLE_DSOUND),
PATCH_ENTRY("IDirectSoundBuffer_SetLFO", xbox::EMUPATCH(IDirectSoundBuffer_SetLFO), PATCH_HLE_DSOUND),
PATCH_ENTRY("IDirectSoundBuffer_SetLoopRegion", xbox::EMUPATCH(IDirectSoundBuffer_SetLoopRegion), PATCH_HLE_DSOUND),
PATCH_ENTRY("IDirectSoundBuffer_SetMaxDistance", xbox::EMUPATCH(IDirectSoundBuffer_SetMaxDistance), PATCH_HLE_DSOUND),
PATCH_ENTRY("IDirectSoundBuffer_SetMinDistance", xbox::EMUPATCH(IDirectSoundBuffer_SetMinDistance), PATCH_HLE_DSOUND),
PATCH_ENTRY("IDirectSoundBuffer_SetMixBinVolumes_12", xbox::EMUPATCH(IDirectSoundBuffer_SetMixBinVolumes_12), PATCH_HLE_DSOUND),
PATCH_ENTRY("IDirectSoundBuffer_SetMixBinVolumes_8", xbox::EMUPATCH(IDirectSoundBuffer_SetMixBinVolumes_8), PATCH_HLE_DSOUND),
PATCH_ENTRY("IDirectSoundBuffer_SetMixBins", xbox::EMUPATCH(IDirectSoundBuffer_SetMixBins), PATCH_HLE_DSOUND),
PATCH_ENTRY("IDirectSoundBuffer_SetMode", xbox::EMUPATCH(IDirectSoundBuffer_SetMode), PATCH_HLE_DSOUND),
PATCH_ENTRY("IDirectSoundBuffer_SetNotificationPositions", xbox::EMUPATCH(IDirectSoundBuffer_SetNotificationPositions), PATCH_HLE_DSOUND),
PATCH_ENTRY("IDirectSoundBuffer_SetOutputBuffer", xbox::EMUPATCH(IDirectSoundBuffer_SetOutputBuffer), PATCH_HLE_DSOUND),
PATCH_ENTRY("IDirectSoundBuffer_SetPitch", xbox::EMUPATCH(IDirectSoundBuffer_SetPitch), PATCH_HLE_DSOUND),
PATCH_ENTRY("IDirectSoundBuffer_SetPlayRegion", xbox::EMUPATCH(IDirectSoundBuffer_SetPlayRegion), PATCH_HLE_DSOUND),
PATCH_ENTRY("IDirectSoundBuffer_SetPosition", xbox::EMUPATCH(IDirectSoundBuffer_SetPosition), PATCH_HLE_DSOUND),
PATCH_ENTRY("IDirectSoundBuffer_SetRolloffCurve", xbox::EMUPATCH(IDirectSoundBuffer_SetRolloffCurve), PATCH_HLE_DSOUND),
PATCH_ENTRY("IDirectSoundBuffer_SetRolloffFactor", xbox::EMUPATCH(IDirectSoundBuffer_SetRolloffFactor), PATCH_HLE_DSOUND),
PATCH_ENTRY("IDirectSoundBuffer_SetVelocity", xbox::EMUPATCH(IDirectSoundBuffer_SetVelocity), PATCH_HLE_DSOUND),
PATCH_ENTRY("IDirectSoundBuffer_SetVolume", xbox::EMUPATCH(IDirectSoundBuffer_SetVolume), PATCH_HLE_DSOUND),
PATCH_ENTRY("IDirectSoundBuffer_Stop", xbox::EMUPATCH(IDirectSoundBuffer_Stop), PATCH_HLE_DSOUND),
PATCH_ENTRY("IDirectSoundBuffer_StopEx", xbox::EMUPATCH(IDirectSoundBuffer_StopEx), PATCH_HLE_DSOUND),
PATCH_ENTRY("IDirectSoundBuffer_Unlock", xbox::EMUPATCH(IDirectSoundBuffer_Unlock), PATCH_HLE_DSOUND),
PATCH_ENTRY("IDirectSoundBuffer_Use3DVoiceData", xbox::EMUPATCH(IDirectSoundBuffer_Use3DVoiceData), PATCH_HLE_DSOUND),
PATCH_ENTRY("IDirectSoundStream_Set3DVoiceData", xbox::EMUPATCH(IDirectSoundStream_Set3DVoiceData), PATCH_HLE_DSOUND),
PATCH_ENTRY("IDirectSoundStream_SetEG", xbox::EMUPATCH(IDirectSoundStream_SetEG), PATCH_HLE_DSOUND),
PATCH_ENTRY("IDirectSoundStream_SetFilter", xbox::EMUPATCH(IDirectSoundStream_SetFilter), PATCH_HLE_DSOUND),
PATCH_ENTRY("IDirectSoundStream_SetFrequency", xbox::EMUPATCH(IDirectSoundStream_SetFrequency), PATCH_HLE_DSOUND),
PATCH_ENTRY("IDirectSoundStream_SetHeadroom", xbox::EMUPATCH(IDirectSoundStream_SetHeadroom), PATCH_HLE_DSOUND),
PATCH_ENTRY("IDirectSoundStream_SetLFO", xbox::EMUPATCH(IDirectSoundStream_SetLFO), PATCH_HLE_DSOUND),
PATCH_ENTRY("IDirectSoundStream_SetMixBins", xbox::EMUPATCH(IDirectSoundStream_SetMixBins), PATCH_HLE_DSOUND),
PATCH_ENTRY("IDirectSoundStream_SetPitch", xbox::EMUPATCH(IDirectSoundStream_SetPitch), PATCH_HLE_DSOUND),
PATCH_ENTRY("IDirectSoundStream_SetVolume", xbox::EMUPATCH(IDirectSoundStream_SetVolume), PATCH_HLE_DSOUND),
PATCH_ENTRY("IDirectSoundStream_Use3DVoiceData", xbox::EMUPATCH(IDirectSoundStream_Use3DVoiceData), PATCH_HLE_DSOUND),
PATCH_ENTRY("IDirectSound_AddRef", xbox::EMUPATCH(IDirectSound_AddRef), PATCH_HLE_DSOUND),
PATCH_ENTRY("IDirectSound_CommitDeferredSettings", xbox::EMUPATCH(IDirectSound_CommitDeferredSettings), PATCH_HLE_DSOUND),
PATCH_ENTRY("IDirectSound_CommitEffectData", xbox::EMUPATCH(IDirectSound_CommitEffectData), PATCH_HLE_DSOUND),
PATCH_ENTRY("IDirectSound_CreateSoundBuffer", xbox::EMUPATCH(IDirectSound_CreateSoundBuffer), PATCH_HLE_DSOUND),
PATCH_ENTRY("IDirectSound_CreateSoundStream", xbox::EMUPATCH(IDirectSound_CreateSoundStream), PATCH_HLE_DSOUND),
PATCH_ENTRY("IDirectSound_DownloadEffectsImage", xbox::EMUPATCH(IDirectSound_DownloadEffectsImage), PATCH_HLE_DSOUND),
PATCH_ENTRY("IDirectSound_EnableHeadphones", xbox::EMUPATCH(IDirectSound_EnableHeadphones), PATCH_HLE_DSOUND),
PATCH_ENTRY("IDirectSound_GetCaps", xbox::EMUPATCH(IDirectSound_GetCaps), PATCH_HLE_DSOUND),
PATCH_ENTRY("IDirectSound_GetEffectData", xbox::EMUPATCH(IDirectSound_GetEffectData), PATCH_HLE_DSOUND),
PATCH_ENTRY("IDirectSound_GetOutputLevels", xbox::EMUPATCH(IDirectSound_GetOutputLevels), PATCH_HLE_DSOUND),
PATCH_ENTRY("IDirectSound_GetSpeakerConfig", xbox::EMUPATCH(IDirectSound_GetSpeakerConfig), PATCH_HLE_DSOUND),
PATCH_ENTRY("IDirectSound_Release", xbox::EMUPATCH(IDirectSound_Release), PATCH_HLE_DSOUND),
PATCH_ENTRY("IDirectSound_SetAllParameters", xbox::EMUPATCH(IDirectSound_SetAllParameters), PATCH_HLE_DSOUND),
PATCH_ENTRY("IDirectSound_SetDistanceFactor", xbox::EMUPATCH(IDirectSound_SetDistanceFactor), PATCH_HLE_DSOUND),
PATCH_ENTRY("IDirectSound_SetDopplerFactor", xbox::EMUPATCH(IDirectSound_SetDopplerFactor), PATCH_HLE_DSOUND),
PATCH_ENTRY("IDirectSound_SetEffectData", xbox::EMUPATCH(IDirectSound_SetEffectData), PATCH_HLE_DSOUND),
PATCH_ENTRY("IDirectSound_SetI3DL2Listener", xbox::EMUPATCH(IDirectSound_SetI3DL2Listener), PATCH_HLE_DSOUND),
PATCH_ENTRY("IDirectSound_SetMixBinHeadroom", xbox::EMUPATCH(IDirectSound_SetMixBinHeadroom), PATCH_HLE_DSOUND),
PATCH_ENTRY("IDirectSound_SetOrientation", xbox::EMUPATCH(IDirectSound_SetOrientation), PATCH_HLE_DSOUND),
PATCH_ENTRY("IDirectSound_SetPosition", xbox::EMUPATCH(IDirectSound_SetPosition), PATCH_HLE_DSOUND),
PATCH_ENTRY("IDirectSound_SetRolloffFactor", xbox::EMUPATCH(IDirectSound_SetRolloffFactor), PATCH_HLE_DSOUND),
PATCH_ENTRY("IDirectSound_SetVelocity", xbox::EMUPATCH(IDirectSound_SetVelocity), PATCH_HLE_DSOUND),
PATCH_ENTRY("IDirectSound_SynchPlayback", xbox::EMUPATCH(IDirectSound_SynchPlayback), PATCH_HLE_DSOUND),
//PATCH_ENTRY("XAudioCreateAdpcmFormat", xbox::EMUPATCH(XAudioCreateAdpcmFormat), PATCH_HLE_DSOUND), // NOTE: Not require to patch
PATCH_ENTRY("XAudioDownloadEffectsImage", xbox::EMUPATCH(XAudioDownloadEffectsImage), PATCH_HLE_DSOUND),
PATCH_ENTRY("XAudioSetEffectData", xbox::EMUPATCH(XAudioSetEffectData), PATCH_HLE_DSOUND),
// OHCI
PATCH_ENTRY("XGetDeviceChanges", XTL::EMUPATCH(XGetDeviceChanges), PATCH_HLE_OHCI),
PATCH_ENTRY("XGetDeviceEnumerationStatus", XTL::EMUPATCH(XGetDeviceEnumerationStatus), PATCH_HLE_OHCI),
PATCH_ENTRY("XGetDevices", XTL::EMUPATCH(XGetDevices), PATCH_HLE_OHCI),
PATCH_ENTRY("XInitDevices", XTL::EMUPATCH(XInitDevices), PATCH_HLE_OHCI),
PATCH_ENTRY("XInputClose", XTL::EMUPATCH(XInputClose), PATCH_HLE_OHCI),
PATCH_ENTRY("XInputGetCapabilities", XTL::EMUPATCH(XInputGetCapabilities), PATCH_HLE_OHCI),
PATCH_ENTRY("XInputGetDeviceDescription", XTL::EMUPATCH(XInputGetDeviceDescription), PATCH_HLE_OHCI),
PATCH_ENTRY("XInputGetState", XTL::EMUPATCH(XInputGetState), PATCH_HLE_OHCI),
PATCH_ENTRY("XInputOpen", XTL::EMUPATCH(XInputOpen), PATCH_HLE_OHCI),
PATCH_ENTRY("XInputPoll", XTL::EMUPATCH(XInputPoll), PATCH_HLE_OHCI),
PATCH_ENTRY("XInputSetState", XTL::EMUPATCH(XInputSetState), PATCH_HLE_OHCI),
PATCH_ENTRY("XGetDeviceChanges", xbox::EMUPATCH(XGetDeviceChanges), PATCH_HLE_OHCI),
PATCH_ENTRY("XGetDeviceEnumerationStatus", xbox::EMUPATCH(XGetDeviceEnumerationStatus), PATCH_HLE_OHCI),
PATCH_ENTRY("XGetDevices", xbox::EMUPATCH(XGetDevices), PATCH_HLE_OHCI),
PATCH_ENTRY("XInitDevices", xbox::EMUPATCH(XInitDevices), PATCH_HLE_OHCI),
PATCH_ENTRY("XInputClose", xbox::EMUPATCH(XInputClose), PATCH_HLE_OHCI),
PATCH_ENTRY("XInputGetCapabilities", xbox::EMUPATCH(XInputGetCapabilities), PATCH_HLE_OHCI),
PATCH_ENTRY("XInputGetDeviceDescription", xbox::EMUPATCH(XInputGetDeviceDescription), PATCH_HLE_OHCI),
PATCH_ENTRY("XInputGetState", xbox::EMUPATCH(XInputGetState), PATCH_HLE_OHCI),
PATCH_ENTRY("XInputOpen", xbox::EMUPATCH(XInputOpen), PATCH_HLE_OHCI),
PATCH_ENTRY("XInputPoll", xbox::EMUPATCH(XInputPoll), PATCH_HLE_OHCI),
PATCH_ENTRY("XInputSetState", xbox::EMUPATCH(XInputSetState), PATCH_HLE_OHCI),
// XAPI
PATCH_ENTRY("ConvertThreadToFiber", XTL::EMUPATCH(ConvertThreadToFiber), PATCH_IS_FIBER),
PATCH_ENTRY("CreateFiber", XTL::EMUPATCH(CreateFiber), PATCH_IS_FIBER),
PATCH_ENTRY("DeleteFiber", XTL::EMUPATCH(DeleteFiber), PATCH_IS_FIBER),
PATCH_ENTRY("GetExitCodeThread", XTL::EMUPATCH(GetExitCodeThread), PATCH_ALWAYS),
PATCH_ENTRY("GetThreadPriority", XTL::EMUPATCH(GetThreadPriority), PATCH_ALWAYS),
PATCH_ENTRY("OutputDebugStringA", XTL::EMUPATCH(OutputDebugStringA), PATCH_ALWAYS),
//PATCH_ENTRY("RaiseException", XTL::EMUPATCH(RaiseException), PATCH_ALWAYS),
PATCH_ENTRY("SetThreadPriority", XTL::EMUPATCH(SetThreadPriority), PATCH_ALWAYS),
PATCH_ENTRY("SetThreadPriorityBoost", XTL::EMUPATCH(SetThreadPriorityBoost), PATCH_ALWAYS),
PATCH_ENTRY("SignalObjectAndWait", XTL::EMUPATCH(SignalObjectAndWait), PATCH_ALWAYS),
PATCH_ENTRY("SwitchToFiber", XTL::EMUPATCH(SwitchToFiber), PATCH_IS_FIBER),
PATCH_ENTRY("XMountMUA", XTL::EMUPATCH(XMountMUA), PATCH_ALWAYS),
PATCH_ENTRY("XMountMURootA", XTL::EMUPATCH(XMountMURootA), PATCH_ALWAYS),
PATCH_ENTRY("XSetProcessQuantumLength", XTL::EMUPATCH(XSetProcessQuantumLength), PATCH_ALWAYS),
PATCH_ENTRY("timeKillEvent", XTL::EMUPATCH(timeKillEvent), PATCH_ALWAYS),
PATCH_ENTRY("timeSetEvent", XTL::EMUPATCH(timeSetEvent), PATCH_ALWAYS),
PATCH_ENTRY("ConvertThreadToFiber", xbox::EMUPATCH(ConvertThreadToFiber), PATCH_IS_FIBER),
PATCH_ENTRY("CreateFiber", xbox::EMUPATCH(CreateFiber), PATCH_IS_FIBER),
PATCH_ENTRY("DeleteFiber", xbox::EMUPATCH(DeleteFiber), PATCH_IS_FIBER),
PATCH_ENTRY("GetExitCodeThread", xbox::EMUPATCH(GetExitCodeThread), PATCH_ALWAYS),
PATCH_ENTRY("GetThreadPriority", xbox::EMUPATCH(GetThreadPriority), PATCH_ALWAYS),
PATCH_ENTRY("OutputDebugStringA", xbox::EMUPATCH(OutputDebugStringA), PATCH_ALWAYS),
//PATCH_ENTRY("RaiseException", xbox::EMUPATCH(RaiseException), PATCH_ALWAYS),
PATCH_ENTRY("SetThreadPriority", xbox::EMUPATCH(SetThreadPriority), PATCH_ALWAYS),
PATCH_ENTRY("SetThreadPriorityBoost", xbox::EMUPATCH(SetThreadPriorityBoost), PATCH_ALWAYS),
PATCH_ENTRY("SignalObjectAndWait", xbox::EMUPATCH(SignalObjectAndWait), PATCH_ALWAYS),
PATCH_ENTRY("SwitchToFiber", xbox::EMUPATCH(SwitchToFiber), PATCH_IS_FIBER),
PATCH_ENTRY("XMountMUA", xbox::EMUPATCH(XMountMUA), PATCH_ALWAYS),
PATCH_ENTRY("XMountMURootA", xbox::EMUPATCH(XMountMURootA), PATCH_ALWAYS),
PATCH_ENTRY("XSetProcessQuantumLength", xbox::EMUPATCH(XSetProcessQuantumLength), PATCH_ALWAYS),
PATCH_ENTRY("timeKillEvent", xbox::EMUPATCH(timeKillEvent), PATCH_ALWAYS),
PATCH_ENTRY("timeSetEvent", xbox::EMUPATCH(timeSetEvent), PATCH_ALWAYS),
};
std::unordered_map<std::string, subhook::Hook> g_FunctionHooks;
@ -390,7 +390,7 @@ inline bool TitleRequiresUnpatchedFibers()
// NOTE: EmuInstallPatch do not get to be in XbSymbolDatabase, do the patches in Cxbx project only.
inline void EmuInstallPatch(const std::string FunctionName, const xbaddr FunctionAddr)
inline void EmuInstallPatch(const std::string FunctionName, const xbox::addr FunctionAddr)
{
auto it = g_PatchTable.find(FunctionName);
if (it == g_PatchTable.end()) {

View File

@ -52,7 +52,7 @@
// ******************************************************************
// * patch: XACTEngineCreate
// ******************************************************************
HRESULT WINAPI XTL::EMUPATCH(XACTEngineCreate)
HRESULT WINAPI xbox::EMUPATCH(XACTEngineCreate)
(
X_XACT_RUNTIME_PARAMETERS* pParams,
X_XACTEngine** ppEngine
@ -75,7 +75,7 @@ HRESULT WINAPI XTL::EMUPATCH(XACTEngineCreate)
// ******************************************************************
// * EmuXACTEngineDoWork
// ******************************************************************
void WINAPI XTL::EMUPATCH(XACTEngineDoWork)()
void WINAPI xbox::EMUPATCH(XACTEngineDoWork)()
{
LOG_FUNC();
@ -92,7 +92,7 @@ void WINAPI XTL::EMUPATCH(XACTEngineDoWork)()
// ******************************************************************
// * EmuIXACTEngine_RegisterWaveBank
// ******************************************************************
HRESULT WINAPI XTL::EMUPATCH(IXACTEngine_RegisterWaveBank)
HRESULT WINAPI xbox::EMUPATCH(IXACTEngine_RegisterWaveBank)
(
X_XACTEngine* pThis,
LPVOID pvData,
@ -117,7 +117,7 @@ HRESULT WINAPI XTL::EMUPATCH(IXACTEngine_RegisterWaveBank)
// ******************************************************************
// * EmuIXACTEngine_RegisterStreamedWaveBank
// ******************************************************************
HRESULT WINAPI XTL::EMUPATCH(IXACTEngine_RegisterStreamedWaveBank)
HRESULT WINAPI xbox::EMUPATCH(IXACTEngine_RegisterStreamedWaveBank)
(
X_XACTEngine* pThis,
X_XACT_WAVEBANK_STREAMING_PARAMETERS* pParams,
@ -140,7 +140,7 @@ HRESULT WINAPI XTL::EMUPATCH(IXACTEngine_RegisterStreamedWaveBank)
// ******************************************************************
// * EmuIXACTEngine_CreateSoundBank
// ******************************************************************
HRESULT WINAPI XTL::EMUPATCH(IXACTEngine_CreateSoundBank)
HRESULT WINAPI xbox::EMUPATCH(IXACTEngine_CreateSoundBank)
(
X_XACTEngine* pThis,
LPVOID pvData,
@ -165,7 +165,7 @@ HRESULT WINAPI XTL::EMUPATCH(IXACTEngine_CreateSoundBank)
// ******************************************************************
// * EmuIXACTEngine_DownloadEffectsImage
// ******************************************************************
HRESULT WINAPI XTL::EMUPATCH(IXACTEngine_DownloadEffectsImage)
HRESULT WINAPI xbox::EMUPATCH(IXACTEngine_DownloadEffectsImage)
(
X_XACTEngine* pThis,
PVOID pvData,
@ -190,7 +190,7 @@ HRESULT WINAPI XTL::EMUPATCH(IXACTEngine_DownloadEffectsImage)
// ******************************************************************
// * EmuIXACTEngine_CreateSoundSource
// ******************************************************************
HRESULT WINAPI XTL::EMUPATCH(IXACTEngine_CreateSoundSource)
HRESULT WINAPI xbox::EMUPATCH(IXACTEngine_CreateSoundSource)
(
X_XACTEngine* pThis,
DWORD dwFlags,
@ -211,7 +211,7 @@ HRESULT WINAPI XTL::EMUPATCH(IXACTEngine_CreateSoundSource)
// ******************************************************************
// * EmuIXACTEngine_EnableHeadphones
// ******************************************************************
HRESULT WINAPI XTL::EMUPATCH(IXACTEngine_EnableHeadphones)
HRESULT WINAPI xbox::EMUPATCH(IXACTEngine_EnableHeadphones)
(
X_XACTEngine* pThis,
BOOL fEnabled
@ -228,7 +228,7 @@ HRESULT WINAPI XTL::EMUPATCH(IXACTEngine_EnableHeadphones)
// ******************************************************************
// * EmuIXACTEngine_SetListenerOrientation
// ******************************************************************
HRESULT WINAPI XTL::EMUPATCH(IXACTEngine_SetListenerOrientation)
HRESULT WINAPI xbox::EMUPATCH(IXACTEngine_SetListenerOrientation)
(
X_XACTEngine* pThis,
float xFront,
@ -257,7 +257,7 @@ HRESULT WINAPI XTL::EMUPATCH(IXACTEngine_SetListenerOrientation)
// ******************************************************************
// * EmuIXACTEngine_SetListenerPosition
// ******************************************************************
HRESULT WINAPI XTL::EMUPATCH(IXACTEngine_SetListenerPosition)
HRESULT WINAPI xbox::EMUPATCH(IXACTEngine_SetListenerPosition)
(
X_XACTEngine* pThis,
float x,
@ -280,7 +280,7 @@ HRESULT WINAPI XTL::EMUPATCH(IXACTEngine_SetListenerPosition)
// ******************************************************************
// * EmuIXACTEngine_SetListenerVelocity
// ******************************************************************
HRESULT WINAPI XTL::EMUPATCH(IXACTEngine_SetListenerVelocity)
HRESULT WINAPI xbox::EMUPATCH(IXACTEngine_SetListenerVelocity)
(
X_XACTEngine* pThis,
float x,
@ -303,7 +303,7 @@ HRESULT WINAPI XTL::EMUPATCH(IXACTEngine_SetListenerVelocity)
// ******************************************************************
// * EmuIXACTEngine_SetMasterVolume
// ******************************************************************
HRESULT WINAPI XTL::EMUPATCH(IXACTEngine_SetMasterVolume)
HRESULT WINAPI xbox::EMUPATCH(IXACTEngine_SetMasterVolume)
(
X_XACTEngine* pThis,
WORD wCategory,
@ -322,7 +322,7 @@ HRESULT WINAPI XTL::EMUPATCH(IXACTEngine_SetMasterVolume)
// ******************************************************************
// * EmuIXACTEngine_CommitDeferredSettings
// ******************************************************************
HRESULT WINAPI XTL::EMUPATCH(IXACTEngine_CommitDeferredSettings)
HRESULT WINAPI xbox::EMUPATCH(IXACTEngine_CommitDeferredSettings)
(
X_XACTEngine* pThis
)
@ -335,7 +335,7 @@ HRESULT WINAPI XTL::EMUPATCH(IXACTEngine_CommitDeferredSettings)
// ******************************************************************
// * EmuIXACTSoundBank_GetSoundCueIndexFromFriendlyName
// ******************************************************************
HRESULT WINAPI XTL::EMUPATCH(IXACTSoundBank_GetSoundCueIndexFromFriendlyName)
HRESULT WINAPI xbox::EMUPATCH(IXACTSoundBank_GetSoundCueIndexFromFriendlyName)
(
X_XACTEngine* pThis,
PCSTR pFriendlyName,
@ -354,7 +354,7 @@ HRESULT WINAPI XTL::EMUPATCH(IXACTSoundBank_GetSoundCueIndexFromFriendlyName)
// ******************************************************************
// * EmuIXACTSoundBank_Play
// ******************************************************************
HRESULT WINAPI XTL::EMUPATCH(IXACTSoundBank_Play)
HRESULT WINAPI xbox::EMUPATCH(IXACTSoundBank_Play)
(
X_XACTSoundBank* pThis,
DWORD dwSoundCueIndex,
@ -377,7 +377,7 @@ HRESULT WINAPI XTL::EMUPATCH(IXACTSoundBank_Play)
// ******************************************************************
// * EmuIXACTSoundBank_Stop
// ******************************************************************
HRESULT WINAPI XTL::EMUPATCH(IXACTSoundBank_Stop)
HRESULT WINAPI xbox::EMUPATCH(IXACTSoundBank_Stop)
(
X_XACTSoundBank* pThis,
DWORD dwSoundCueIndex,
@ -398,7 +398,7 @@ HRESULT WINAPI XTL::EMUPATCH(IXACTSoundBank_Stop)
// ******************************************************************
// * EmuIXACTSoundSource_SetPosition
// ******************************************************************
HRESULT WINAPI XTL::EMUPATCH(IXACTSoundSource_SetPosition)
HRESULT WINAPI xbox::EMUPATCH(IXACTSoundSource_SetPosition)
(
X_XACTSoundSource* pThis,
FLOAT x,
@ -421,7 +421,7 @@ HRESULT WINAPI XTL::EMUPATCH(IXACTSoundSource_SetPosition)
// ******************************************************************
// * EmuIXACTSoundSource_SetVelocity
// ******************************************************************
HRESULT WINAPI XTL::EMUPATCH(IXACTSoundSource_SetVelocity)
HRESULT WINAPI xbox::EMUPATCH(IXACTSoundSource_SetVelocity)
(
X_XACTSoundSource* pThis,
FLOAT x,
@ -444,7 +444,7 @@ HRESULT WINAPI XTL::EMUPATCH(IXACTSoundSource_SetVelocity)
// ******************************************************************
// * EmuIXACTEngine_RegisterNotification
// ******************************************************************
HRESULT WINAPI XTL::EMUPATCH(IXACTEngine_RegisterNotification)
HRESULT WINAPI xbox::EMUPATCH(IXACTEngine_RegisterNotification)
(
X_XACTEngine* pThis,
PCXACT_NOTIFICATION_DESCRIPTION pNotificationDesc
@ -461,7 +461,7 @@ HRESULT WINAPI XTL::EMUPATCH(IXACTEngine_RegisterNotification)
// ******************************************************************
// * EmuIXACTEngine_GetNotification
// ******************************************************************
HRESULT WINAPI XTL::EMUPATCH(IXACTEngine_GetNotification)
HRESULT WINAPI xbox::EMUPATCH(IXACTEngine_GetNotification)
(
X_XACTEngine* pThis,
PCXACT_NOTIFICATION_DESCRIPTION pNotificationDesc,
@ -483,7 +483,7 @@ HRESULT WINAPI XTL::EMUPATCH(IXACTEngine_GetNotification)
// ******************************************************************
// * EmuIXACTEngine_UnRegisterWaveBank
// ******************************************************************
HRESULT WINAPI XTL::EMUPATCH(IXACTEngine_UnRegisterWaveBank)
HRESULT WINAPI xbox::EMUPATCH(IXACTEngine_UnRegisterWaveBank)
(
X_XACTEngine* pThis,
X_XACTWaveBank* pWaveBank

View File

@ -33,7 +33,7 @@
#include <dsound.h>
namespace XTL {
namespace xbox {
// ******************************************************************
// * XACT Interfaces
@ -345,6 +345,6 @@ HRESULT WINAPI EMUPATCH(IXACTEngine_UnRegisterWaveBank)
X_XACTWaveBank* pWaveBank
);
} // end of namespace XTL
} // end of namespace xbox
#endif

View File

@ -61,7 +61,7 @@ PFARPROC1 fnCxbxVSBCOpen;
//typedef DWORD(*fnCxbxVSBCOpen)(HWND);
//typedef DWORD(*fnCxbxVSBCSetState)(UCHAR *);
//typedef DWORD(*fnCxbxVSBCGetState)(UCHAR *);
XTL::PXPP_DEVICE_TYPE g_DeviceType_Gamepad = nullptr;
xbox::PXPP_DEVICE_TYPE g_DeviceType_Gamepad = nullptr;
// Flag is unset after initialize devices is done by simulate LLE USB thread.
std::atomic<bool> g_bIsDevicesInitializing = true;
@ -76,7 +76,7 @@ CXBX_CONTROLLER_HOST_BRIDGE g_XboxControllerHostBridge[4] = {
};
bool operator==(XTL::PXPP_DEVICE_TYPE XppType, XBOX_INPUT_DEVICE XidType)
bool operator==(xbox::PXPP_DEVICE_TYPE XppType, XBOX_INPUT_DEVICE XidType)
{
switch (XidType)
{
@ -100,7 +100,7 @@ bool operator==(XTL::PXPP_DEVICE_TYPE XppType, XBOX_INPUT_DEVICE XidType)
return false;
}
bool operator!=(XTL::PXPP_DEVICE_TYPE XppType, XBOX_INPUT_DEVICE XidType)
bool operator!=(xbox::PXPP_DEVICE_TYPE XppType, XBOX_INPUT_DEVICE XidType)
{
return !(XppType == XidType);
}
@ -190,11 +190,11 @@ void SetupXboxDeviceTypes()
if (g_DeviceType_Gamepad == nullptr) {
// First, attempt to find GetTypeInformation
auto typeInformation = g_SymbolAddresses.find("GetTypeInformation");
if (typeInformation != g_SymbolAddresses.end() && typeInformation->second != xbnull) {
if (typeInformation != g_SymbolAddresses.end() && typeInformation->second != xbox::zero) {
printf("Deriving XDEVICE_TYPE_GAMEPAD from DeviceTable (via GetTypeInformation)\n");
// Read the offset values of the device table structure from GetTypeInformation
xbaddr deviceTableStartOffset = *(uint32_t*)((uint32_t)typeInformation->second + 0x01);
xbaddr deviceTableEndOffset = *(uint32_t*)((uint32_t)typeInformation->second + 0x09);
xbox::addr deviceTableStartOffset = *(uint32_t*)((uint32_t)typeInformation->second + 0x01);
xbox::addr deviceTableEndOffset = *(uint32_t*)((uint32_t)typeInformation->second + 0x09);
// Calculate the number of device entires in the table
size_t deviceTableEntryCount = (deviceTableEndOffset - deviceTableStartOffset) / sizeof(uint32_t);
@ -209,7 +209,7 @@ void SetupXboxDeviceTypes()
}
// Iterate through the table until we find gamepad
XTL::PXID_TYPE_INFORMATION* deviceTable = (XTL::PXID_TYPE_INFORMATION*)(deviceTableStartOffset);
xbox::PXID_TYPE_INFORMATION* deviceTable = (xbox::PXID_TYPE_INFORMATION*)(deviceTableStartOffset);
for (unsigned int i = 0; i < deviceTableEntryCount; i++) {
// Skip empty table entries
if (deviceTable[i] == nullptr) {
@ -240,7 +240,7 @@ void SetupXboxDeviceTypes()
void* XInputOpenAddr = (void*)g_SymbolAddresses["XInputOpen"];
if (XInputOpenAddr != nullptr) {
printf("XAPI: Deriving XDEVICE_TYPE_GAMEPAD from XInputOpen (0x%08X)\n", (uintptr_t)XInputOpenAddr);
g_DeviceType_Gamepad = *(XTL::PXPP_DEVICE_TYPE*)((uint32_t)XInputOpenAddr + 0x0B);
g_DeviceType_Gamepad = *(xbox::PXPP_DEVICE_TYPE*)((uint32_t)XInputOpenAddr + 0x0B);
}
}
@ -256,7 +256,7 @@ void SetupXboxDeviceTypes()
// ******************************************************************
// * patch: XInitDevices
// ******************************************************************
VOID WINAPI XTL::EMUPATCH(XInitDevices)
xbox::VOID WINAPI xbox::EMUPATCH(XInitDevices)
(
DWORD dwPreallocTypeCount,
PXDEVICE_PREALLOC_TYPE PreallocTypes
@ -282,7 +282,7 @@ VOID WINAPI XTL::EMUPATCH(XInitDevices)
}
// This is called to emulate async for both XGetDevices and XGetDeviceChanges
void UpdateConnectedDeviceState(XTL::PXPP_DEVICE_TYPE DeviceType) {
void UpdateConnectedDeviceState(xbox::PXPP_DEVICE_TYPE DeviceType) {
// Do not process the queries until initialize delay and device emulating are complete.
if (g_bIsDevicesInitializing || g_bIsDevicesEmulating){
@ -321,7 +321,7 @@ void UpdateConnectedDeviceState(XTL::PXPP_DEVICE_TYPE DeviceType) {
// * This in turn requires USB LLE to be implemented, or USBD_Init
// * patched with a stub, so this patch is still enabled for now
// ******************************************************************
DWORD WINAPI XTL::EMUPATCH(XGetDevices)
xbox::DWORD WINAPI xbox::EMUPATCH(XGetDevices)
(
PXPP_DEVICE_TYPE DeviceType
)
@ -330,14 +330,14 @@ DWORD WINAPI XTL::EMUPATCH(XGetDevices)
UpdateConnectedDeviceState(DeviceType);
UCHAR oldIrql = xboxkrnl::KeRaiseIrqlToDpcLevel();
UCHAR oldIrql = xbox::KeRaiseIrqlToDpcLevel();
DWORD ret = DeviceType->CurrentConnected;
DeviceType->ChangeConnected = 0;
DeviceType->PreviousConnected = DeviceType->CurrentConnected;
xboxkrnl::KfLowerIrql(oldIrql);
xbox::KfLowerIrql(oldIrql);
RETURN(ret);
}
@ -349,7 +349,7 @@ DWORD WINAPI XTL::EMUPATCH(XGetDevices)
// * This in turn requires USB LLE to be implemented, or USBD_Init
// * patched with a stub, so this patch is still enabled for now
// ******************************************************************
BOOL WINAPI XTL::EMUPATCH(XGetDeviceChanges)
xbox::BOOL WINAPI xbox::EMUPATCH(XGetDeviceChanges)
(
PXPP_DEVICE_TYPE DeviceType,
PDWORD pdwInsertions,
@ -374,7 +374,7 @@ BOOL WINAPI XTL::EMUPATCH(XGetDeviceChanges)
}
else
{
UCHAR oldIrql = xboxkrnl::KeRaiseIrqlToDpcLevel();
UCHAR oldIrql = xbox::KeRaiseIrqlToDpcLevel();
// Insertions and removals
*pdwInsertions = (DeviceType->CurrentConnected & ~DeviceType->PreviousConnected);
@ -391,7 +391,7 @@ BOOL WINAPI XTL::EMUPATCH(XGetDeviceChanges)
DeviceType->PreviousConnected = DeviceType->CurrentConnected;
ret = (*pdwInsertions | *pdwRemovals) ? TRUE : FALSE;
xboxkrnl::KfLowerIrql(oldIrql);
xbox::KfLowerIrql(oldIrql);
}
RETURN(ret);
@ -400,7 +400,7 @@ BOOL WINAPI XTL::EMUPATCH(XGetDeviceChanges)
// ******************************************************************
// * patch: XInputOpen
// ******************************************************************
HANDLE WINAPI XTL::EMUPATCH(XInputOpen)
xbox::HANDLE WINAPI xbox::EMUPATCH(XInputOpen)
(
IN PXPP_DEVICE_TYPE DeviceType,
IN DWORD dwPort,
@ -455,7 +455,7 @@ HANDLE WINAPI XTL::EMUPATCH(XInputOpen)
// ******************************************************************
// * patch: XInputClose
// ******************************************************************
VOID WINAPI XTL::EMUPATCH(XInputClose)
xbox::VOID WINAPI xbox::EMUPATCH(XInputClose)
(
IN HANDLE hDevice
)
@ -472,7 +472,7 @@ VOID WINAPI XTL::EMUPATCH(XInputClose)
// ******************************************************************
// * patch: XInputPoll
// ******************************************************************
DWORD WINAPI XTL::EMUPATCH(XInputPoll)
xbox::DWORD WINAPI xbox::EMUPATCH(XInputPoll)
(
IN HANDLE hDevice
)
@ -487,7 +487,7 @@ DWORD WINAPI XTL::EMUPATCH(XInputPoll)
// ******************************************************************
// * patch: XInputGetCapabilities
// ******************************************************************
DWORD WINAPI XTL::EMUPATCH(XInputGetCapabilities)
xbox::DWORD WINAPI xbox::EMUPATCH(XInputGetCapabilities)
(
IN HANDLE hDevice,
OUT PXINPUT_CAPABILITIES pCapabilities
@ -554,10 +554,10 @@ char * XboxSBCFeedbackNames[] = {
};
//keep last SBC_GAMEPAD status, for DIP switch and GearLever
XTL::X_SBC_GAMEPAD XboxSBCGamepad = {};
xbox::X_SBC_GAMEPAD XboxSBCGamepad = {};
//virtual SteelBatalion controller GetState, using port 0 from XInput and DirectInput to emulate virtual controller.
void EmuSBCGetState(XTL::PX_SBC_GAMEPAD pSBCGamepad, XTL::PXINPUT_GAMEPAD pXIGamepad, XTL::PXINPUT_GAMEPAD pDIGamepad)
void EmuSBCGetState(xbox::PX_SBC_GAMEPAD pSBCGamepad, xbox::PXINPUT_GAMEPAD pXIGamepad, xbox::PXINPUT_GAMEPAD pDIGamepad)
{
// Now convert those values to SteelBatalion Gamepad
@ -739,7 +739,7 @@ void EmuSBCGetState(XTL::PX_SBC_GAMEPAD pSBCGamepad, XTL::PXINPUT_GAMEPAD pXIGam
// ******************************************************************
// * patch: XInputGetState
// ******************************************************************
DWORD WINAPI XTL::EMUPATCH(XInputGetState)
xbox::DWORD WINAPI xbox::EMUPATCH(XInputGetState)
(
IN HANDLE hDevice,
OUT PXINPUT_STATE pState
@ -773,7 +773,7 @@ DWORD WINAPI XTL::EMUPATCH(XInputGetState)
// ******************************************************************
// * patch: XInputSetState
// ******************************************************************
DWORD WINAPI XTL::EMUPATCH(XInputSetState)
xbox::DWORD WINAPI xbox::EMUPATCH(XInputSetState)
(
IN HANDLE hDevice,
IN OUT PXINPUT_FEEDBACK pFeedback
@ -793,8 +793,8 @@ DWORD WINAPI XTL::EMUPATCH(XInputSetState)
g_InputDeviceManager.UpdateXboxPortInput(Port, (void*)&pFeedback->Rumble, DIRECTION_OUT, to_underlying(g_XboxControllerHostBridge[Port].XboxType));
pFeedback->Header.dwStatus = ERROR_SUCCESS;
if (pFeedback->Header.hEvent != NULL &&
ObReferenceObjectByHandle(pFeedback->Header.hEvent, &xboxkrnl::ExEventObjectType, (PVOID*)&pFeedback->Header.IoCompletedEvent) == ERROR_SUCCESS) {
KeSetEvent((xboxkrnl::PKEVENT)pFeedback->Header.IoCompletedEvent, NULL, FALSE);
ObReferenceObjectByHandle(pFeedback->Header.hEvent, &xbox::ExEventObjectType, (PVOID*)&pFeedback->Header.IoCompletedEvent) == ERROR_SUCCESS) {
KeSetEvent((xbox::PKEVENT)pFeedback->Header.IoCompletedEvent, NULL, FALSE);
}
}
else {
@ -808,7 +808,7 @@ DWORD WINAPI XTL::EMUPATCH(XInputSetState)
// ******************************************************************
// * patch: SetThreadPriorityBoost
// ******************************************************************
BOOL WINAPI XTL::EMUPATCH(SetThreadPriorityBoost)
xbox::BOOL WINAPI xbox::EMUPATCH(SetThreadPriorityBoost)
(
HANDLE hThread,
BOOL DisablePriorityBoost
@ -832,7 +832,7 @@ BOOL WINAPI XTL::EMUPATCH(SetThreadPriorityBoost)
// ******************************************************************
// * patch: SetThreadPriority
// ******************************************************************
BOOL WINAPI XTL::EMUPATCH(SetThreadPriority)
xbox::BOOL WINAPI xbox::EMUPATCH(SetThreadPriority)
(
HANDLE hThread,
int nPriority
@ -857,7 +857,7 @@ BOOL WINAPI XTL::EMUPATCH(SetThreadPriority)
// ******************************************************************
// * patch: GetThreadPriority
// ******************************************************************
int WINAPI XTL::EMUPATCH(GetThreadPriority)
int WINAPI xbox::EMUPATCH(GetThreadPriority)
(
HANDLE hThread
)
@ -877,7 +877,7 @@ int WINAPI XTL::EMUPATCH(GetThreadPriority)
// ******************************************************************
// * patch: GetExitCodeThread
// ******************************************************************
BOOL WINAPI XTL::EMUPATCH(GetExitCodeThread)
xbox::BOOL WINAPI xbox::EMUPATCH(GetExitCodeThread)
(
HANDLE hThread,
LPDWORD lpExitCode
@ -898,7 +898,7 @@ BOOL WINAPI XTL::EMUPATCH(GetExitCodeThread)
// ******************************************************************
// * patch: XapiThreadStartup
// ******************************************************************
VOID WINAPI XTL::EMUPATCH(XapiThreadStartup)
xbox::VOID WINAPI xbox::EMUPATCH(XapiThreadStartup)
(
DWORD dwDummy1,
DWORD dwDummy2
@ -931,7 +931,7 @@ VOID WINAPI XTL::EMUPATCH(XapiThreadStartup)
// ******************************************************************
// * patch: XRegisterThreadNotifyRoutine
// ******************************************************************
VOID WINAPI XTL::EMUPATCH(XRegisterThreadNotifyRoutine)
xbox::VOID WINAPI xbox::EMUPATCH(XRegisterThreadNotifyRoutine)
(
PXTHREAD_NOTIFICATION pThreadNotification,
BOOL fRegister
@ -990,7 +990,7 @@ void WINAPI EmuFiberStartup(fiber_context_t* context)
// ******************************************************************
// * patch: CreateFiber
// ******************************************************************
LPVOID WINAPI XTL::EMUPATCH(CreateFiber)
xbox::LPVOID WINAPI xbox::EMUPATCH(CreateFiber)
(
DWORD dwStackSize,
LPFIBER_START_ROUTINE lpStartRoutine,
@ -1018,7 +1018,7 @@ LPVOID WINAPI XTL::EMUPATCH(CreateFiber)
// ******************************************************************
// * patch: DeleteFiber
// ******************************************************************
VOID WINAPI XTL::EMUPATCH(DeleteFiber)
xbox::VOID WINAPI xbox::EMUPATCH(DeleteFiber)
(
LPVOID lpFiber
)
@ -1032,7 +1032,7 @@ VOID WINAPI XTL::EMUPATCH(DeleteFiber)
// ******************************************************************
// * patch: SwitchToFiber
// ******************************************************************
VOID WINAPI XTL::EMUPATCH(SwitchToFiber)
xbox::VOID WINAPI xbox::EMUPATCH(SwitchToFiber)
(
LPVOID lpFiber
)
@ -1046,7 +1046,7 @@ VOID WINAPI XTL::EMUPATCH(SwitchToFiber)
// ******************************************************************
// * patch: ConvertThreadToFiber
// ******************************************************************
LPVOID WINAPI XTL::EMUPATCH(ConvertThreadToFiber)
xbox::LPVOID WINAPI xbox::EMUPATCH(ConvertThreadToFiber)
(
LPVOID lpParameter
)
@ -1062,7 +1062,7 @@ LPVOID WINAPI XTL::EMUPATCH(ConvertThreadToFiber)
// ******************************************************************
// * patch: QueueUserAPC
// ******************************************************************
DWORD WINAPI XTL::EMUPATCH(QueueUserAPC)
xbox::DWORD WINAPI xbox::EMUPATCH(QueueUserAPC)
(
PAPCFUNC pfnAPC,
HANDLE hThread,
@ -1095,7 +1095,7 @@ DWORD WINAPI XTL::EMUPATCH(QueueUserAPC)
// ******************************************************************
// * patch: GetOverlappedResult
// ******************************************************************
BOOL WINAPI XTL::EMUPATCH(GetOverlappedResult)
BOOL WINAPI xbox::EMUPATCH(GetOverlappedResult)
(
HANDLE hFile,
LPOVERLAPPED lpOverlapped,
@ -1122,7 +1122,7 @@ BOOL WINAPI XTL::EMUPATCH(GetOverlappedResult)
// ******************************************************************
// * patch: XLaunchNewImageA
// ******************************************************************
DWORD WINAPI XTL::EMUPATCH(XLaunchNewImageA)
xbox::DWORD WINAPI xbox::EMUPATCH(XLaunchNewImageA)
(
LPCSTR lpTitlePath,
PLAUNCH_DATA pLaunchData
@ -1148,27 +1148,27 @@ DWORD WINAPI XTL::EMUPATCH(XLaunchNewImageA)
// Update the kernel's LaunchDataPage :
{
if (xboxkrnl::LaunchDataPage == xbnullptr)
if (xbox::LaunchDataPage == xbox::zeroptr)
{
PVOID LaunchDataVAddr = xboxkrnl::MmAllocateContiguousMemory(sizeof(xboxkrnl::LAUNCH_DATA_PAGE));
PVOID LaunchDataVAddr = xbox::MmAllocateContiguousMemory(sizeof(xbox::LAUNCH_DATA_PAGE));
if (!LaunchDataVAddr)
{
RETURN(STATUS_NO_MEMORY);
}
xboxkrnl::LaunchDataPage = (xboxkrnl::LAUNCH_DATA_PAGE*)LaunchDataVAddr;
xbox::LaunchDataPage = (xbox::LAUNCH_DATA_PAGE*)LaunchDataVAddr;
}
xboxkrnl::LaunchDataPage->Header.dwTitleId = g_pCertificate->dwTitleId;
xboxkrnl::LaunchDataPage->Header.dwFlags = 0; // TODO : What to put in here?
xboxkrnl::LaunchDataPage->Header.dwLaunchDataType = LDT_TITLE;
xbox::LaunchDataPage->Header.dwTitleId = g_pCertificate->dwTitleId;
xbox::LaunchDataPage->Header.dwFlags = 0; // TODO : What to put in here?
xbox::LaunchDataPage->Header.dwLaunchDataType = LDT_TITLE;
xboxkrnl::MmPersistContiguousMemory((PVOID)xboxkrnl::LaunchDataPage, PAGE_SIZE, TRUE);
xbox::MmPersistContiguousMemory((PVOID)xbox::LaunchDataPage, PAGE_SIZE, TRUE);
if (pLaunchData != xbnullptr)
if (pLaunchData != xbox::zeroptr)
// Save the launch data
memcpy(&(xboxkrnl::LaunchDataPage->LaunchData[0]), pLaunchData, sizeof(LAUNCH_DATA));
memcpy(&(xbox::LaunchDataPage->LaunchData[0]), pLaunchData, sizeof(LAUNCH_DATA));
if (lpTitlePath == xbnullptr)
if (lpTitlePath == xbox::zeroptr)
{
// If no path is specified, then the xbe is rebooting to dashboard
char szDashboardPath[MAX_PATH] = { 0 };
@ -1180,14 +1180,14 @@ DWORD WINAPI XTL::EMUPATCH(XLaunchNewImageA)
{
PopupInfo(nullptr, "The title is rebooting to dashboard");
lpTitlePath = "C:\\xboxdash.xbe";
xboxkrnl::LaunchDataPage->Header.dwLaunchDataType = LDT_FROM_DASHBOARD;
xbox::LaunchDataPage->Header.dwLaunchDataType = LDT_FROM_DASHBOARD;
// Other options include LDT_NONE, LDT_FROM_DEBUGGER_CMDLINE and LDT_FROM_UPDATE
}
else
CxbxKrnlCleanup("The xbe rebooted to Dashboard and xboxdash.xbe could not be found");
}
strncpy(&(xboxkrnl::LaunchDataPage->Header.szLaunchPath[0]), lpTitlePath, 520);
strncpy(&(xbox::LaunchDataPage->Header.szLaunchPath[0]), lpTitlePath, 520);
}
// Note : While this patch exists, HalReturnToFirmware() calls
@ -1195,7 +1195,7 @@ DWORD WINAPI XTL::EMUPATCH(XLaunchNewImageA)
// patch on XLaunchNewImageA is removed, remove the call to
// MmPersistContiguousMemory from HalReturnToFirmware() too!!
xboxkrnl::HalReturnToFirmware(xboxkrnl::ReturnFirmwareQuickReboot);
xbox::HalReturnToFirmware(xbox::ReturnFirmwareQuickReboot);
// If this function succeeds, it doesn't get a chance to return anything.
RETURN(ERROR_GEN_FAILURE);
@ -1205,7 +1205,7 @@ DWORD WINAPI XTL::EMUPATCH(XLaunchNewImageA)
// ******************************************************************
// * patch: XGetLaunchInfo
// ******************************************************************
DWORD WINAPI XTL::EMUPATCH(XGetLaunchInfo)
DWORD WINAPI xbox::EMUPATCH(XGetLaunchInfo)
(
PDWORD pdwLaunchDataType,
PLAUNCH_DATA pLaunchData
@ -1214,7 +1214,7 @@ DWORD WINAPI XTL::EMUPATCH(XGetLaunchInfo)
// TODO : This patch can be removed once we're sure all XAPI library
// functions indirectly reference our xboxkrnl::LaunchDataPage variable.
// functions indirectly reference our xbox::LaunchDataPage variable.
// For this, we need a test-case that hits this function, and run that
// with and without this patch enabled. Behavior should be identical.
// When this is verified, this patch can be removed.
@ -1227,22 +1227,22 @@ DWORD WINAPI XTL::EMUPATCH(XGetLaunchInfo)
DWORD ret = ERROR_NOT_FOUND;
if (xboxkrnl::LaunchDataPage != NULL)
if (xbox::LaunchDataPage != NULL)
{
// Note : Here, CxbxRestoreLaunchDataPage() was already called,
// which has loaded LaunchDataPage from a binary file (if present).
// A title can pass data only to itself, not another title (unless started from the dashboard, of course) :
if ( (xboxkrnl::LaunchDataPage->Header.dwTitleId == g_pCertificate->dwTitleId)
|| (xboxkrnl::LaunchDataPage->Header.dwLaunchDataType == LDT_FROM_DASHBOARD)
|| (xboxkrnl::LaunchDataPage->Header.dwLaunchDataType == LDT_FROM_DEBUGGER_CMDLINE))
if ( (xbox::LaunchDataPage->Header.dwTitleId == g_pCertificate->dwTitleId)
|| (xbox::LaunchDataPage->Header.dwLaunchDataType == LDT_FROM_DASHBOARD)
|| (xbox::LaunchDataPage->Header.dwLaunchDataType == LDT_FROM_DEBUGGER_CMDLINE))
{
*pdwLaunchDataType = xboxkrnl::LaunchDataPage->Header.dwLaunchDataType;
memcpy(pLaunchData, &(xboxkrnl::LaunchDataPage->LaunchData[0]), sizeof(LAUNCH_DATA));
*pdwLaunchDataType = xbox::LaunchDataPage->Header.dwLaunchDataType;
memcpy(pLaunchData, &(xbox::LaunchDataPage->LaunchData[0]), sizeof(LAUNCH_DATA));
// Now that LaunchDataPage is retrieved by the emulated software, free it :
MmFreeContiguousMemory(xboxkrnl::LaunchDataPage);
xboxkrnl::LaunchDataPage = NULL;
MmFreeContiguousMemory(xbox::LaunchDataPage);
xbox::LaunchDataPage = NULL;
ret = ERROR_SUCCESS;
}
@ -1255,7 +1255,7 @@ DWORD WINAPI XTL::EMUPATCH(XGetLaunchInfo)
// ******************************************************************
// * patch: XSetProcessQuantumLength
// ******************************************************************
VOID WINAPI XTL::EMUPATCH(XSetProcessQuantumLength)
xbox::VOID WINAPI xbox::EMUPATCH(XSetProcessQuantumLength)
(
DWORD dwMilliseconds
)
@ -1270,7 +1270,7 @@ VOID WINAPI XTL::EMUPATCH(XSetProcessQuantumLength)
// ******************************************************************
// * patch: SignalObjectAndWait
// ******************************************************************
DWORD WINAPI XTL::EMUPATCH(SignalObjectAndWait)
xbox::DWORD WINAPI xbox::EMUPATCH(SignalObjectAndWait)
(
HANDLE hObjectToSignal,
HANDLE hObjectToWaitOn,
@ -1294,7 +1294,7 @@ DWORD WINAPI XTL::EMUPATCH(SignalObjectAndWait)
// ******************************************************************
// * patch: timeSetEvent
// ******************************************************************
MMRESULT WINAPI XTL::EMUPATCH(timeSetEvent)
MMRESULT WINAPI xbox::EMUPATCH(timeSetEvent)
(
UINT uDelay,
UINT uResolution,
@ -1321,7 +1321,7 @@ MMRESULT WINAPI XTL::EMUPATCH(timeSetEvent)
// ******************************************************************
// * patch: timeKillEvent
// ******************************************************************
MMRESULT WINAPI XTL::EMUPATCH(timeKillEvent)
MMRESULT WINAPI xbox::EMUPATCH(timeKillEvent)
(
UINT uTimerID
)
@ -1338,7 +1338,7 @@ MMRESULT WINAPI XTL::EMUPATCH(timeKillEvent)
// ******************************************************************
// * patch: RaiseException
// ******************************************************************
VOID WINAPI XTL::EMUPATCH(RaiseException)
xbox::VOID WINAPI xbox::EMUPATCH(RaiseException)
(
DWORD dwExceptionCode, // exception code
DWORD dwExceptionFlags, // continuable exception flag
@ -1364,7 +1364,7 @@ VOID WINAPI XTL::EMUPATCH(RaiseException)
// ******************************************************************
// patch: XMountMUA
// ******************************************************************
DWORD WINAPI XTL::EMUPATCH(XMountMUA)
xbox::DWORD WINAPI xbox::EMUPATCH(XMountMUA)
(
DWORD dwPort,
DWORD dwSlot,
@ -1388,7 +1388,7 @@ DWORD WINAPI XTL::EMUPATCH(XMountMUA)
// ******************************************************************
// * patch: XGetDeviceEnumerationStatus
// ******************************************************************
DWORD WINAPI XTL::EMUPATCH(XGetDeviceEnumerationStatus)()
xbox::DWORD WINAPI xbox::EMUPATCH(XGetDeviceEnumerationStatus)()
{
@ -1402,7 +1402,7 @@ DWORD WINAPI XTL::EMUPATCH(XGetDeviceEnumerationStatus)()
// ******************************************************************
// * patch: XInputGetDeviceDescription
// ******************************************************************
DWORD WINAPI XTL::EMUPATCH(XInputGetDeviceDescription)
xbox::DWORD WINAPI xbox::EMUPATCH(XInputGetDeviceDescription)
(
HANDLE hDevice,
PVOID pDescription
@ -1424,7 +1424,7 @@ DWORD WINAPI XTL::EMUPATCH(XInputGetDeviceDescription)
// ******************************************************************
// * patch: XMountMURootA
// ******************************************************************
DWORD WINAPI XTL::EMUPATCH(XMountMURootA)
xbox::DWORD WINAPI xbox::EMUPATCH(XMountMURootA)
(
DWORD dwPort,
DWORD dwSlot,
@ -1448,7 +1448,7 @@ DWORD WINAPI XTL::EMUPATCH(XMountMURootA)
// ******************************************************************
// * patch: OutputDebugStringA
// ******************************************************************
VOID WINAPI XTL::EMUPATCH(OutputDebugStringA)
xbox::VOID WINAPI xbox::EMUPATCH(OutputDebugStringA)
(
IN LPCSTR lpOutputString
)

View File

@ -25,62 +25,15 @@
#ifndef XAPI_H
#define XAPI_H
namespace XTL {
#include "xbox_types.h"
namespace xbox {
// ******************************************************************
// * calling conventions
// ******************************************************************
#define WINAPI __stdcall
// ******************************************************************
// * Basic types
// ******************************************************************
typedef char CHAR, CCHAR;
typedef short SHORT, CSHORT;
typedef long LONG;
typedef unsigned char UCHAR;
typedef unsigned char BYTE;
typedef unsigned char BOOLEAN;
typedef unsigned short USHORT;
typedef unsigned short WORD;
typedef unsigned long ULONG;
typedef unsigned long DWORD;
typedef unsigned long SIZE_T, *PSIZE_T;
typedef unsigned long ACCESS_MASK, *PACCESS_MASK;
typedef unsigned long PHYSICAL_ADDRESS;
typedef long INT_PTR;
typedef unsigned __int64 ULONGLONG;
// xapi
typedef int BOOL;
typedef int INT;
typedef unsigned int UINT;
typedef unsigned int *PUINT;
typedef LONG HRESULT;
// ******************************************************************
// * Pointer types
// ******************************************************************
typedef CHAR *PCHAR;
typedef CHAR *PCSZ;
typedef BYTE *PBYTE;
typedef BOOLEAN *PBOOLEAN;
typedef UCHAR *PUCHAR;
typedef USHORT *PUSHORT;
typedef ULONG *PULONG;
typedef DWORD *LPDWORD;
typedef ACCESS_MASK *PACCESS_MASK;
typedef LONG *LONG_PTR;
typedef ULONG *ULONG_PTR;
typedef INT_PTR *PINT_PTR;
#ifndef VOID
#define VOID void
#endif
typedef VOID *PVOID, *LPVOID;
typedef void *HANDLE;
typedef HANDLE *PHANDLE;
// ******************************************************************
// * documentation purposes only
// ******************************************************************
@ -843,6 +796,6 @@ DWORD WINAPI EMUPATCH(XCalculateSignatureEnd)
//*/
// +s
} // end of namespace XTL
} // end of namespace xbox
#endif

View File

@ -40,7 +40,7 @@
// ******************************************************************
// * patch: XGIsSwizzledFormat
// ******************************************************************
PVOID WINAPI XTL::EMUPATCH(XGIsSwizzledFormat)
PVOID WINAPI xbox::EMUPATCH(XGIsSwizzledFormat)
(
X_D3DFORMAT Format
)
@ -54,7 +54,7 @@ PVOID WINAPI XTL::EMUPATCH(XGIsSwizzledFormat)
// ******************************************************************
// * patch: XGSwizzleRect
// ******************************************************************
VOID WINAPI XTL::EMUPATCH(XGSwizzleRect)
VOID WINAPI xbox::EMUPATCH(XGSwizzleRect)
(
LPCVOID pSource,
DWORD Pitch,
@ -115,7 +115,7 @@ VOID WINAPI XTL::EMUPATCH(XGSwizzleRect)
// ******************************************************************
// * patch: XGSwizzleBox
// ******************************************************************
VOID WINAPI XTL::EMUPATCH(XGSwizzleBox)
VOID WINAPI xbox::EMUPATCH(XGSwizzleBox)
(
LPCVOID pSource,
DWORD RowPitch,
@ -182,7 +182,7 @@ VOID WINAPI XTL::EMUPATCH(XGSwizzleBox)
// ******************************************************************
// * patch: XGWriteSurfaceOrTextureToXPR
// ******************************************************************
HRESULT WINAPI XTL::EMUPATCH(XGWriteSurfaceOrTextureToXPR)
HRESULT WINAPI xbox::EMUPATCH(XGWriteSurfaceOrTextureToXPR)
(
LPVOID pResource,
const char* cPath,
@ -207,7 +207,7 @@ HRESULT WINAPI XTL::EMUPATCH(XGWriteSurfaceOrTextureToXPR)
// ******************************************************************
// * patch: XGSetTextureHeader
// ******************************************************************
VOID WINAPI XTL::EMUPATCH(XGSetTextureHeader)
VOID WINAPI xbox::EMUPATCH(XGSetTextureHeader)
(
UINT Width,
UINT Height,
@ -274,7 +274,7 @@ VOID WINAPI XTL::EMUPATCH(XGSetTextureHeader)
// ******************************************************************
// * patch: XFONT_OpenBitmapFontFromMemory
// ******************************************************************
//HRESULT WINAPI XTL::EMUPATCH(XFONT_OpenBitmapFontFromMemory)
//HRESULT WINAPI xbox::EMUPATCH(XFONT_OpenBitmapFontFromMemory)
//(
// CONST void *pFontData,
// unsigned uFontDataSize,

View File

@ -27,7 +27,7 @@
#include "core\hle\D3D8\XbD3D8Types.h"
namespace XTL {
namespace xbox {
typedef struct _XGPOINT3D
{
@ -115,6 +115,6 @@ HRESULT WINAPI EMUPATCH(XFONT_OpenBitmapFontFromMemory)
void **ppFont
);
} // end of namespace XTL
} // end of namespace xbox
#endif

View File

@ -27,7 +27,7 @@
#include "core\kernel\support\Emu.h"
#include "core\hle\XAPI\Xapi.h" // For EMUPATCH
namespace XTL {
namespace xbox {
// ******************************************************************
// * patch: WSAStartup
@ -123,6 +123,6 @@ int WINAPI EMUPATCH(ioctlsocket)
u_long FAR *argp
);
} // end of namespace XTL
} // end of namespace xbox
#endif

View File

@ -47,20 +47,20 @@ namespace NtDll
// See also :
// https://github.com/reactos/reactos/blob/40a16a9cf1cdfca399e9154b42d32c30b63480f5/reactos/drivers/filesystems/udfs/Include/env_spec_w32.h
void InitializeListHead(xboxkrnl::PLIST_ENTRY pListHead)
void InitializeListHead(xbox::PLIST_ENTRY pListHead)
{
pListHead->Flink = pListHead->Blink = pListHead;
}
bool IsListEmpty(xboxkrnl::PLIST_ENTRY pListHead)
bool IsListEmpty(xbox::PLIST_ENTRY pListHead)
{
return (pListHead->Flink == pListHead);
}
void InsertHeadList(xboxkrnl::PLIST_ENTRY pListHead, xboxkrnl::PLIST_ENTRY pEntry)
void InsertHeadList(xbox::PLIST_ENTRY pListHead, xbox::PLIST_ENTRY pEntry)
{
xboxkrnl::PLIST_ENTRY _EX_ListHead = pListHead;
xboxkrnl::PLIST_ENTRY _EX_Flink = _EX_ListHead->Flink;
xbox::PLIST_ENTRY _EX_ListHead = pListHead;
xbox::PLIST_ENTRY _EX_Flink = _EX_ListHead->Flink;
pEntry->Flink = _EX_Flink;
pEntry->Blink = _EX_ListHead;
@ -68,10 +68,10 @@ void InsertHeadList(xboxkrnl::PLIST_ENTRY pListHead, xboxkrnl::PLIST_ENTRY pEntr
_EX_ListHead->Flink = pEntry;
}
void InsertTailList(xboxkrnl::PLIST_ENTRY pListHead, xboxkrnl::PLIST_ENTRY pEntry)
void InsertTailList(xbox::PLIST_ENTRY pListHead, xbox::PLIST_ENTRY pEntry)
{
xboxkrnl::PLIST_ENTRY _EX_ListHead = pListHead;
xboxkrnl::PLIST_ENTRY _EX_Blink = _EX_ListHead->Blink;
xbox::PLIST_ENTRY _EX_ListHead = pListHead;
xbox::PLIST_ENTRY _EX_Blink = _EX_ListHead->Blink;
pEntry->Flink = _EX_ListHead;
pEntry->Blink = _EX_Blink;
@ -82,10 +82,10 @@ void InsertTailList(xboxkrnl::PLIST_ENTRY pListHead, xboxkrnl::PLIST_ENTRY pEntr
//#define RemoveEntryList(e) do { PLIST_ENTRY f = (e)->Flink, b = (e)->Blink; f->Blink = b; b->Flink = f; (e)->Flink = (e)->Blink = NULL; } while (0)
// Returns TRUE if the list has become empty after removing the element, FALSE otherwise.
xboxkrnl::BOOLEAN RemoveEntryList(xboxkrnl::PLIST_ENTRY pEntry)
xbox::BOOLEAN RemoveEntryList(xbox::PLIST_ENTRY pEntry)
{
xboxkrnl::PLIST_ENTRY _EX_Flink = pEntry->Flink;
xboxkrnl::PLIST_ENTRY _EX_Blink = pEntry->Blink;
xbox::PLIST_ENTRY _EX_Flink = pEntry->Flink;
xbox::PLIST_ENTRY _EX_Blink = pEntry->Blink;
if (_EX_Blink != nullptr) {
_EX_Blink->Flink = _EX_Flink;
@ -103,17 +103,17 @@ xboxkrnl::BOOLEAN RemoveEntryList(xboxkrnl::PLIST_ENTRY pEntry)
return FALSE;
}
xboxkrnl::PLIST_ENTRY RemoveHeadList(xboxkrnl::PLIST_ENTRY pListHead)
xbox::PLIST_ENTRY RemoveHeadList(xbox::PLIST_ENTRY pListHead)
{
xboxkrnl::PLIST_ENTRY Result = pListHead->Flink;
xbox::PLIST_ENTRY Result = pListHead->Flink;
RemoveEntryList(pListHead->Flink);
return Result;
}
xboxkrnl::PLIST_ENTRY RemoveTailList(xboxkrnl::PLIST_ENTRY pListHead)
xbox::PLIST_ENTRY RemoveTailList(xbox::PLIST_ENTRY pListHead)
{
xboxkrnl::PLIST_ENTRY Result = pListHead->Blink;
xbox::PLIST_ENTRY Result = pListHead->Blink;
RemoveEntryList(pListHead->Blink);
return Result;
@ -123,7 +123,7 @@ xboxkrnl::PLIST_ENTRY RemoveTailList(xboxkrnl::PLIST_ENTRY pListHead)
// * Declaring this in a header causes errors with xboxkrnl
// * namespace, so we must declare it within any file that uses it
// ******************************************************************
xboxkrnl::KPCR* WINAPI KeGetPcr();
xbox::KPCR* WINAPI KeGetPcr();
// Interrupts
@ -147,11 +147,11 @@ extern void ExecuteDpcQueue();
void KiUnexpectedInterrupt()
{
xboxkrnl::KeBugCheck(TRAP_CAUSE_UNKNOWN); // see
xbox::KeBugCheck(TRAP_CAUSE_UNKNOWN); // see
CxbxKrnlCleanup("Unexpected Software Interrupt!");
}
void CallSoftwareInterrupt(const xboxkrnl::KIRQL SoftwareIrql)
void CallSoftwareInterrupt(const xbox::KIRQL SoftwareIrql)
{
switch (SoftwareIrql) {
case PASSIVE_LEVEL:
@ -217,7 +217,7 @@ const DWORD IrqlMasks[] = {
// * 0x0033 - InterlockedCompareExchange()
// ******************************************************************
// Source:ReactOS
XBSYSAPI EXPORTNUM(51) xboxkrnl::LONG FASTCALL xboxkrnl::KRNL(InterlockedCompareExchange)
XBSYSAPI EXPORTNUM(51) xbox::LONG FASTCALL xbox::KRNL(InterlockedCompareExchange)
(
IN OUT PLONG VOLATILE Destination,
IN LONG Exchange,
@ -239,7 +239,7 @@ XBSYSAPI EXPORTNUM(51) xboxkrnl::LONG FASTCALL xboxkrnl::KRNL(InterlockedCompare
// * 0x0034 - InterlockedDecrement()
// ******************************************************************
// Source:ReactOS
XBSYSAPI EXPORTNUM(52) xboxkrnl::LONG FASTCALL xboxkrnl::KRNL(InterlockedDecrement)
XBSYSAPI EXPORTNUM(52) xbox::LONG FASTCALL xbox::KRNL(InterlockedDecrement)
(
IN OUT PLONG Addend
)
@ -255,7 +255,7 @@ XBSYSAPI EXPORTNUM(52) xboxkrnl::LONG FASTCALL xboxkrnl::KRNL(InterlockedDecreme
// * 0x0035 - InterlockedIncrement()
// ******************************************************************
// Source:ReactOS
XBSYSAPI EXPORTNUM(53) xboxkrnl::LONG FASTCALL xboxkrnl::KRNL(InterlockedIncrement)
XBSYSAPI EXPORTNUM(53) xbox::LONG FASTCALL xbox::KRNL(InterlockedIncrement)
(
IN OUT PLONG Addend
)
@ -271,7 +271,7 @@ XBSYSAPI EXPORTNUM(53) xboxkrnl::LONG FASTCALL xboxkrnl::KRNL(InterlockedIncreme
// * 0x0036 - InterlockedExchange()
// ******************************************************************
// Source:ReactOS
XBSYSAPI EXPORTNUM(54) xboxkrnl::LONG FASTCALL xboxkrnl::KRNL(InterlockedExchange)
XBSYSAPI EXPORTNUM(54) xbox::LONG FASTCALL xbox::KRNL(InterlockedExchange)
(
IN PLONG VOLATILE Destination,
IN LONG Value
@ -291,7 +291,7 @@ XBSYSAPI EXPORTNUM(54) xboxkrnl::LONG FASTCALL xboxkrnl::KRNL(InterlockedExchang
// * 0x0037 - InterlockedExchangeAdd()
// ******************************************************************
// Source:ReactOS
XBSYSAPI EXPORTNUM(55) xboxkrnl::LONG FASTCALL xboxkrnl::KRNL(InterlockedExchangeAdd)
XBSYSAPI EXPORTNUM(55) xbox::LONG FASTCALL xbox::KRNL(InterlockedExchangeAdd)
(
IN PLONG VOLATILE Addend,
IN LONG Value
@ -312,9 +312,9 @@ XBSYSAPI EXPORTNUM(55) xboxkrnl::LONG FASTCALL xboxkrnl::KRNL(InterlockedExchang
// ******************************************************************
// Source:ReactOS
// Dxbx Note : The Xbox1 SINGLE_LIST strucures are the same as in WinNT
XBSYSAPI EXPORTNUM(56) xboxkrnl::PSINGLE_LIST_ENTRY FASTCALL xboxkrnl::KRNL(InterlockedFlushSList)
XBSYSAPI EXPORTNUM(56) xbox::PSINGLE_LIST_ENTRY FASTCALL xbox::KRNL(InterlockedFlushSList)
(
IN xboxkrnl::PSLIST_HEADER ListHead
IN xbox::PSLIST_HEADER ListHead
)
{
LOG_FUNC_ONE_ARG(ListHead);
@ -328,7 +328,7 @@ XBSYSAPI EXPORTNUM(56) xboxkrnl::PSINGLE_LIST_ENTRY FASTCALL xboxkrnl::KRNL(Inte
// * 0x0039 - InterlockedPopEntrySList()
// ******************************************************************
// Source:ReactOS
XBSYSAPI EXPORTNUM(57) xboxkrnl::PSLIST_ENTRY FASTCALL xboxkrnl::KRNL(InterlockedPopEntrySList)
XBSYSAPI EXPORTNUM(57) xbox::PSLIST_ENTRY FASTCALL xbox::KRNL(InterlockedPopEntrySList)
(
IN PSLIST_HEADER ListHead
)
@ -344,7 +344,7 @@ XBSYSAPI EXPORTNUM(57) xboxkrnl::PSLIST_ENTRY FASTCALL xboxkrnl::KRNL(Interlocke
// * 0x003A - InterlockedPushEntrySList()
// ******************************************************************
// Source:ReactOS
XBSYSAPI EXPORTNUM(58) xboxkrnl::PSLIST_ENTRY FASTCALL xboxkrnl::KRNL(InterlockedPushEntrySList)
XBSYSAPI EXPORTNUM(58) xbox::PSLIST_ENTRY FASTCALL xbox::KRNL(InterlockedPushEntrySList)
(
IN PSLIST_HEADER ListHead,
IN PSLIST_ENTRY ListEntry
@ -366,7 +366,7 @@ XBSYSAPI EXPORTNUM(58) xboxkrnl::PSLIST_ENTRY FASTCALL xboxkrnl::KRNL(Interlocke
// Raises the hardware priority (irq level)
// NewIrql = Irq level to raise to
// RETURN VALUE previous irq level
XBSYSAPI EXPORTNUM(160) xboxkrnl::KIRQL FASTCALL xboxkrnl::KfRaiseIrql
XBSYSAPI EXPORTNUM(160) xbox::KIRQL FASTCALL xbox::KfRaiseIrql
(
IN KIRQL NewIrql
)
@ -395,7 +395,7 @@ inline int bsr(const uint32_t a) { DWORD result; _BitScanReverse(&result, a); re
// ******************************************************************
// Restores the irq level on the current processor
// ARGUMENTS NewIrql = Irql to lower to
XBSYSAPI EXPORTNUM(161) xboxkrnl::VOID FASTCALL xboxkrnl::KfLowerIrql
XBSYSAPI EXPORTNUM(161) xbox::VOID FASTCALL xbox::KfLowerIrql
(
IN KIRQL NewIrql
)
@ -436,14 +436,14 @@ XBSYSAPI EXPORTNUM(161) xboxkrnl::VOID FASTCALL xboxkrnl::KfLowerIrql
// * 0x00A2 - KiBugCheckData
// ******************************************************************
// Source:ReactOS
XBSYSAPI EXPORTNUM(162) xboxkrnl::ULONG_PTR xboxkrnl::KiBugCheckData[5] = { NULL, NULL, NULL, NULL, NULL };
XBSYSAPI EXPORTNUM(162) xbox::ULONG_PTR xbox::KiBugCheckData[5] = { NULL, NULL, NULL, NULL, NULL };
extern xboxkrnl::KPRCB *KeGetCurrentPrcb();
extern xbox::KPRCB *KeGetCurrentPrcb();
// ******************************************************************
// * 0x00A3 - KiUnlockDispatcherDatabase()
// ******************************************************************
XBSYSAPI EXPORTNUM(163) xboxkrnl::VOID FASTCALL xboxkrnl::KiUnlockDispatcherDatabase
XBSYSAPI EXPORTNUM(163) xbox::VOID FASTCALL xbox::KiUnlockDispatcherDatabase
(
IN KIRQL OldIrql
)
@ -461,12 +461,12 @@ XBSYSAPI EXPORTNUM(163) xboxkrnl::VOID FASTCALL xboxkrnl::KiUnlockDispatcherData
// ******************************************************************
// * 0x0165 - IdexChannelObject
// ******************************************************************
XBSYSAPI EXPORTNUM(357) xboxkrnl::IDE_CHANNEL_OBJECT xboxkrnl::IdexChannelObject = { };
XBSYSAPI EXPORTNUM(357) xbox::IDE_CHANNEL_OBJECT xbox::IdexChannelObject = { };
// ******************************************************************
// * 0x0169 - RtlSnprintf()
// ******************************************************************
XBSYSAPI EXPORTNUM(361) xboxkrnl::INT CDECL xboxkrnl::RtlSnprintf
XBSYSAPI EXPORTNUM(361) xbox::INT CDECL xbox::RtlSnprintf
(
IN PCHAR string,
IN SIZE_T count,
@ -493,7 +493,7 @@ XBSYSAPI EXPORTNUM(361) xboxkrnl::INT CDECL xboxkrnl::RtlSnprintf
// ******************************************************************
// * 0x016A - RtlSprintf()
// ******************************************************************
XBSYSAPI EXPORTNUM(362) xboxkrnl::INT CDECL xboxkrnl::RtlSprintf
XBSYSAPI EXPORTNUM(362) xbox::INT CDECL xbox::RtlSprintf
(
IN PCHAR string,
IN LPCCH format,
@ -518,7 +518,7 @@ XBSYSAPI EXPORTNUM(362) xboxkrnl::INT CDECL xboxkrnl::RtlSprintf
// ******************************************************************
// * 0x016B - RtlVsnprintf()
// ******************************************************************
XBSYSAPI EXPORTNUM(363) xboxkrnl::INT CDECL xboxkrnl::RtlVsnprintf
XBSYSAPI EXPORTNUM(363) xbox::INT CDECL xbox::RtlVsnprintf
(
IN PCHAR string,
IN SIZE_T count,
@ -545,7 +545,7 @@ XBSYSAPI EXPORTNUM(363) xboxkrnl::INT CDECL xboxkrnl::RtlVsnprintf
// ******************************************************************
// * 0x016C - RtlVsprintf()
// ******************************************************************
XBSYSAPI EXPORTNUM(364) xboxkrnl::INT CDECL xboxkrnl::RtlVsprintf
XBSYSAPI EXPORTNUM(364) xbox::INT CDECL xbox::RtlVsprintf
(
IN PCHAR string,
IN LPCCH format,
@ -570,7 +570,7 @@ XBSYSAPI EXPORTNUM(364) xboxkrnl::INT CDECL xboxkrnl::RtlVsprintf
// ******************************************************************
// * 0x016F - UnknownAPI367()
// ******************************************************************
XBSYSAPI EXPORTNUM(367) xboxkrnl::NTSTATUS NTAPI xboxkrnl::UnknownAPI367
XBSYSAPI EXPORTNUM(367) xbox::NTSTATUS NTAPI xbox::UnknownAPI367
(
// UNKNOWN ARGUMENTS
)
@ -585,7 +585,7 @@ XBSYSAPI EXPORTNUM(367) xboxkrnl::NTSTATUS NTAPI xboxkrnl::UnknownAPI367
// ******************************************************************
// * 0x0170 - UnknownAPI368()
// ******************************************************************
XBSYSAPI EXPORTNUM(368) xboxkrnl::NTSTATUS NTAPI xboxkrnl::UnknownAPI368
XBSYSAPI EXPORTNUM(368) xbox::NTSTATUS NTAPI xbox::UnknownAPI368
(
// UNKNOWN ARGUMENTS
)
@ -600,7 +600,7 @@ XBSYSAPI EXPORTNUM(368) xboxkrnl::NTSTATUS NTAPI xboxkrnl::UnknownAPI368
// ******************************************************************
// * 0x0171 - UnknownAPI369()
// ******************************************************************
XBSYSAPI EXPORTNUM(369) xboxkrnl::NTSTATUS NTAPI xboxkrnl::UnknownAPI369
XBSYSAPI EXPORTNUM(369) xbox::NTSTATUS NTAPI xbox::UnknownAPI369
(
// UNKNOWN ARGUMENTS
)
@ -615,7 +615,7 @@ XBSYSAPI EXPORTNUM(369) xboxkrnl::NTSTATUS NTAPI xboxkrnl::UnknownAPI369
// ******************************************************************
// * 0x0172 - XProfpControl()
// ******************************************************************
XBSYSAPI EXPORTNUM(370) xboxkrnl::NTSTATUS NTAPI xboxkrnl::XProfpControl // PROFILING
XBSYSAPI EXPORTNUM(370) xbox::NTSTATUS NTAPI xbox::XProfpControl // PROFILING
(
ULONG Action,
ULONG Param
@ -634,7 +634,7 @@ XBSYSAPI EXPORTNUM(370) xboxkrnl::NTSTATUS NTAPI xboxkrnl::XProfpControl // PROF
// ******************************************************************
// * 0x0173 - XProfpGetData()
// ******************************************************************
XBSYSAPI EXPORTNUM(371) xboxkrnl::NTSTATUS NTAPI xboxkrnl::XProfpGetData // PROFILING
XBSYSAPI EXPORTNUM(371) xbox::NTSTATUS NTAPI xbox::XProfpGetData // PROFILING
(
// NO ARGUMENTS
)
@ -649,7 +649,7 @@ XBSYSAPI EXPORTNUM(371) xboxkrnl::NTSTATUS NTAPI xboxkrnl::XProfpGetData // PROF
// ******************************************************************
// * 0x0174 - IrtClientInitFast()
// ******************************************************************
XBSYSAPI EXPORTNUM(372) xboxkrnl::NTSTATUS NTAPI xboxkrnl::IrtClientInitFast // PROFILING
XBSYSAPI EXPORTNUM(372) xbox::NTSTATUS NTAPI xbox::IrtClientInitFast // PROFILING
(
// UNKNOWN ARGUMENTS
)
@ -664,7 +664,7 @@ XBSYSAPI EXPORTNUM(372) xboxkrnl::NTSTATUS NTAPI xboxkrnl::IrtClientInitFast //
// ******************************************************************
// * 0x0175 - IrtSweep()
// ******************************************************************
XBSYSAPI EXPORTNUM(373) xboxkrnl::NTSTATUS NTAPI xboxkrnl::IrtSweep // PROFILING
XBSYSAPI EXPORTNUM(373) xbox::NTSTATUS NTAPI xbox::IrtSweep // PROFILING
(
// UNKNOWN ARGUMENTS
)

View File

@ -37,18 +37,18 @@
#define OBJECT_TO_OBJECT_HEADER(Object) \
CONTAINING_RECORD(Object, OBJECT_HEADER, Body)
void InitializeListHead(xboxkrnl::PLIST_ENTRY pListHead);
bool IsListEmpty(xboxkrnl::PLIST_ENTRY pListHead);
void InsertHeadList(xboxkrnl::PLIST_ENTRY pListHead, xboxkrnl::PLIST_ENTRY pEntry);
void InsertTailList(xboxkrnl::PLIST_ENTRY pListHead, xboxkrnl::PLIST_ENTRY pEntry);
void InitializeListHead(xbox::PLIST_ENTRY pListHead);
bool IsListEmpty(xbox::PLIST_ENTRY pListHead);
void InsertHeadList(xbox::PLIST_ENTRY pListHead, xbox::PLIST_ENTRY pEntry);
void InsertTailList(xbox::PLIST_ENTRY pListHead, xbox::PLIST_ENTRY pEntry);
//#define RemoveEntryList(e) do { PLIST_ENTRY f = (e)->Flink, b = (e)->Blink; f->Blink = b; b->Flink = f; (e)->Flink = (e)->Blink = NULL; } while (0)
xboxkrnl::BOOLEAN RemoveEntryList(xboxkrnl::PLIST_ENTRY pEntry);
xboxkrnl::PLIST_ENTRY RemoveHeadList(xboxkrnl::PLIST_ENTRY pListHead);
xboxkrnl::PLIST_ENTRY RemoveTailList(xboxkrnl::PLIST_ENTRY pListHead);
xbox::BOOLEAN RemoveEntryList(xbox::PLIST_ENTRY pEntry);
xbox::PLIST_ENTRY RemoveHeadList(xbox::PLIST_ENTRY pListHead);
xbox::PLIST_ENTRY RemoveTailList(xbox::PLIST_ENTRY pListHead);
extern xboxkrnl::LAUNCH_DATA_PAGE DefaultLaunchDataPage;
extern xboxkrnl::PKINTERRUPT EmuInterruptList[MAX_BUS_INTERRUPT_LEVEL + 1];
extern xbox::LAUNCH_DATA_PAGE DefaultLaunchDataPage;
extern xbox::PKINTERRUPT EmuInterruptList[MAX_BUS_INTERRUPT_LEVEL + 1];
class HalSystemInterrupt {
public:
@ -77,24 +77,24 @@ public:
return m_Asserted && m_Pending;
}
void SetInterruptMode(xboxkrnl::KINTERRUPT_MODE InterruptMode) {
void SetInterruptMode(xbox::KINTERRUPT_MODE InterruptMode) {
m_InterruptMode = InterruptMode;
}
void Trigger(xboxkrnl::PKINTERRUPT Interrupt) {
void Trigger(xbox::PKINTERRUPT Interrupt) {
// If interrupt was level sensitive, we clear the pending flag, preventing the interrupt from being triggered
// until it is deasserted then asserted again. Latched interrupts are triggered until the line is Deasserted!
if (m_InterruptMode == xboxkrnl::KINTERRUPT_MODE::LevelSensitive) {
if (m_InterruptMode == xbox::KINTERRUPT_MODE::LevelSensitive) {
m_Pending = false;
}
BOOLEAN(__stdcall *ServiceRoutine)(xboxkrnl::PKINTERRUPT, void*) = (BOOLEAN(__stdcall *)(xboxkrnl::PKINTERRUPT, void*))Interrupt->ServiceRoutine;
BOOLEAN(__stdcall *ServiceRoutine)(xbox::PKINTERRUPT, void*) = (BOOLEAN(__stdcall *)(xbox::PKINTERRUPT, void*))Interrupt->ServiceRoutine;
BOOLEAN result = ServiceRoutine(Interrupt, Interrupt->ServiceContext);
}
private:
bool m_Asserted = false;
bool m_Enabled = false;
xboxkrnl::KINTERRUPT_MODE m_InterruptMode;
xbox::KINTERRUPT_MODE m_InterruptMode;
bool m_Pending = false;
};
@ -102,6 +102,6 @@ extern HalSystemInterrupt HalSystemInterrupts[MAX_BUS_INTERRUPT_LEVEL + 1];
bool DisableInterrupts();
void RestoreInterruptMode(bool value);
void CallSoftwareInterrupt(const xboxkrnl::KIRQL SoftwareIrql);
void CallSoftwareInterrupt(const xbox::KIRQL SoftwareIrql);
#endif

View File

@ -30,7 +30,6 @@
#include <xboxkrnl/xboxkrnl.h> // For AvGetSavedDataAddress, etc.
#include "Logging.h" // For LOG_FUNC()
#include "EmuKrnlLogging.h"
// prevent name collisions
@ -39,6 +38,10 @@ namespace NtDll
#include "core\kernel\support\EmuNtDll.h"
};
#ifndef VOID
#define VOID void
#endif
#include "core\kernel\support\Emu.h" // For EmuLog(LOG_LEVEL::WARNING, )
#include "core\hle\D3D8\Direct3D9\Direct3D9.h"
#include "devices\x86\EmuX86.h"
@ -48,32 +51,33 @@ namespace NtDll
#include "devices\video\nv2a_int.h"
#include "devices\video\nv2a.h" // For NV2ABlockInfo, EmuNV2A_Block()
#ifndef VOID
#define VOID void
#ifdef VOID
#undef VOID
#endif
// HW Register helper functions
xboxkrnl::UCHAR REG_RD08(VOID* Ptr, xboxkrnl::ULONG Addr)
xbox::UCHAR REG_RD08(void* Ptr, xbox::ULONG Addr)
{
return EmuX86_Read((xbaddr)Ptr + Addr, sizeof(uint8_t));
return EmuX86_Read((xbox::addr)Ptr + Addr, sizeof(uint8_t));
}
VOID REG_WR08(VOID* Ptr, xboxkrnl::ULONG Addr, xboxkrnl::UCHAR Val)
void REG_WR08(void* Ptr, xbox::ULONG Addr, xbox::UCHAR Val)
{
EmuX86_Write((xbaddr)Ptr + Addr, Val, sizeof(uint8_t));
EmuX86_Write((xbox::addr)Ptr + Addr, Val, sizeof(uint8_t));
}
xboxkrnl::ULONG REG_RD32(VOID* Ptr, xboxkrnl::ULONG Addr)
xbox::ULONG REG_RD32(void* Ptr, xbox::ULONG Addr)
{
return EmuX86_Read((xbaddr)Ptr + Addr, sizeof(uint32_t));
return EmuX86_Read((xbox::addr)Ptr + Addr, sizeof(uint32_t));
}
VOID REG_WR32(VOID* Ptr, xboxkrnl::ULONG Addr, xboxkrnl::ULONG Val)
void REG_WR32(void* Ptr, xbox::ULONG Addr, xbox::ULONG Val)
{
EmuX86_Write((xbaddr)Ptr + Addr, Val, sizeof(uint32_t));
EmuX86_Write((xbox::addr)Ptr + Addr, Val, sizeof(uint32_t));
}
VOID CRTC_WR(VOID* Ptr, xboxkrnl::UCHAR i, xboxkrnl::UCHAR d)
void CRTC_WR(void* Ptr, xbox::UCHAR i, xbox::UCHAR d)
{
static const NV2ABlockInfo* block = EmuNV2A_Block(NV_PRMCIO_CRX__COLOR);
@ -81,7 +85,7 @@ VOID CRTC_WR(VOID* Ptr, xboxkrnl::UCHAR i, xboxkrnl::UCHAR d)
g_NV2A->BlockWrite(block, NV_PRMCIO_CR__COLOR, d, sizeof(uint8_t));
}
VOID SRX_WR(VOID *Ptr, xboxkrnl::UCHAR i, xboxkrnl::UCHAR d)
void SRX_WR(void *Ptr, xbox::UCHAR i, xbox::UCHAR d)
{
static const NV2ABlockInfo* block = EmuNV2A_Block(NV_PRMVIO_SRX);
@ -89,7 +93,7 @@ VOID SRX_WR(VOID *Ptr, xboxkrnl::UCHAR i, xboxkrnl::UCHAR d)
g_NV2A->BlockWrite(block, NV_PRMVIO_SR, d, sizeof(uint8_t));
}
VOID GRX_WR(VOID *Ptr, xboxkrnl::UCHAR i, xboxkrnl::UCHAR d)
void GRX_WR(void *Ptr, xbox::UCHAR i, xbox::UCHAR d)
{
static const NV2ABlockInfo* block = EmuNV2A_Block(NV_PRMVIO_GRX);
@ -97,7 +101,7 @@ VOID GRX_WR(VOID *Ptr, xboxkrnl::UCHAR i, xboxkrnl::UCHAR d)
g_NV2A->BlockWrite(block, NV_PRMVIO_GX, d, sizeof(uint8_t));
}
VOID ARX_WR(VOID *Ptr, xboxkrnl::UCHAR i, xboxkrnl::UCHAR d)
void ARX_WR(void *Ptr, xbox::UCHAR i, xbox::UCHAR d)
{
static const NV2ABlockInfo* block = EmuNV2A_Block(NV_PRMCIO_ARX);
@ -128,14 +132,14 @@ ULONG AvSMCVideoModeToAVPack(ULONG VideoMode)
ULONG AvQueryAvCapabilities()
{
ULONG avpack = AvSMCVideoModeToAVPack(xboxkrnl::HalBootSMCVideoMode);
ULONG avpack = AvSMCVideoModeToAVPack(xbox::HalBootSMCVideoMode);
ULONG type;
ULONG resultSize;
// First, read the factory AV settings
ULONG avRegion;
NTSTATUS result = xboxkrnl::ExQueryNonVolatileSetting(
xboxkrnl::XC_FACTORY_AV_REGION,
NTSTATUS result = xbox::ExQueryNonVolatileSetting(
xbox::XC_FACTORY_AV_REGION,
&type,
&avRegion,
sizeof(ULONG),
@ -148,8 +152,8 @@ ULONG AvQueryAvCapabilities()
// Read the user-configurable (via the dashboard) settings
ULONG userSettings;
result = xboxkrnl::ExQueryNonVolatileSetting(
xboxkrnl::XC_VIDEO,
result = xbox::ExQueryNonVolatileSetting(
xbox::XC_VIDEO,
&type,
&userSettings,
sizeof(ULONG),
@ -163,12 +167,12 @@ ULONG AvQueryAvCapabilities()
return avpack | (avRegion & (AV_STANDARD_MASK | AV_REFRESH_MASK)) | (userSettings & ~(AV_STANDARD_MASK | AV_PACK_MASK));
}
xboxkrnl::PVOID xboxkrnl::AvSavedDataAddress = xbnullptr;
xbox::PVOID xbox::AvSavedDataAddress = xbox::zeroptr;
// ******************************************************************
// * 0x0001 - AvGetSavedDataAddress()
// ******************************************************************
XBSYSAPI EXPORTNUM(1) xboxkrnl::PVOID NTAPI xboxkrnl::AvGetSavedDataAddress(void)
XBSYSAPI EXPORTNUM(1) xbox::PVOID NTAPI xbox::AvGetSavedDataAddress(void)
{
LOG_FUNC();
@ -178,7 +182,7 @@ XBSYSAPI EXPORTNUM(1) xboxkrnl::PVOID NTAPI xboxkrnl::AvGetSavedDataAddress(void
// ******************************************************************
// * 0x0002 - AvSendTVEncoderOption()
// ******************************************************************
XBSYSAPI EXPORTNUM(2) VOID NTAPI xboxkrnl::AvSendTVEncoderOption
XBSYSAPI EXPORTNUM(2) xbox::VOID NTAPI xbox::AvSendTVEncoderOption
(
IN PVOID RegisterBase,
IN ULONG Option,
@ -257,7 +261,7 @@ XBSYSAPI EXPORTNUM(2) VOID NTAPI xboxkrnl::AvSendTVEncoderOption
// ******************************************************************
// * 0x0003 - AvSetDisplayMode()
// ******************************************************************
XBSYSAPI EXPORTNUM(3) xboxkrnl::ULONG NTAPI xboxkrnl::AvSetDisplayMode
XBSYSAPI EXPORTNUM(3) xbox::ULONG NTAPI xbox::AvSetDisplayMode
(
IN PVOID RegisterBase,
IN ULONG Step,
@ -292,17 +296,17 @@ XBSYSAPI EXPORTNUM(3) xboxkrnl::ULONG NTAPI xboxkrnl::AvSetDisplayMode
switch (Format)
{
case XTL::X_D3DFMT_LIN_A1R5G5B5:
case XTL::X_D3DFMT_LIN_X1R5G5B5:
case xbox::X_D3DFMT_LIN_A1R5G5B5:
case xbox::X_D3DFMT_LIN_X1R5G5B5:
GeneralControl = NV_PRAMDAC_GENERAL_CONTROL_BPC_8BITS | NV_PRAMDAC_GENERAL_CONTROL_PIXMIX_ON; /*=0x00100030*/
CR28Depth = 2;
break;
case XTL::X_D3DFMT_LIN_R5G6B5:
case xbox::X_D3DFMT_LIN_R5G6B5:
GeneralControl = NV_PRAMDAC_GENERAL_CONTROL_BPC_8BITS | NV_PRAMDAC_GENERAL_CONTROL_ALT_MODE_SEL | NV_PRAMDAC_GENERAL_CONTROL_PIXMIX_ON; /*=0x00101030*/
CR28Depth = 2;
break;
case XTL::X_D3DFMT_LIN_A8R8G8B8:
case XTL::X_D3DFMT_LIN_X8R8G8B8:
case xbox::X_D3DFMT_LIN_A8R8G8B8:
case xbox::X_D3DFMT_LIN_X8R8G8B8:
GeneralControl = NV_PRAMDAC_GENERAL_CONTROL_BPC_8BITS | NV_PRAMDAC_GENERAL_CONTROL_PIXMIX_ON; /*=0x00100030*/
CR28Depth = 3;
break;
@ -405,7 +409,7 @@ XBSYSAPI EXPORTNUM(3) xboxkrnl::ULONG NTAPI xboxkrnl::AvSetDisplayMode
// ******************************************************************
// * 0x0004 - AvSetSavedDataAddress()
// ******************************************************************
XBSYSAPI EXPORTNUM(4) VOID NTAPI xboxkrnl::AvSetSavedDataAddress
XBSYSAPI EXPORTNUM(4) xbox::VOID NTAPI xbox::AvSetSavedDataAddress
(
IN PVOID Address
)

View File

@ -45,7 +45,7 @@ namespace NtDll
// ******************************************************************
// * 0x0005 - DbgBreakPoint()
// ******************************************************************
XBSYSAPI EXPORTNUM(5) xboxkrnl::VOID NTAPI xboxkrnl::DbgBreakPoint()
XBSYSAPI EXPORTNUM(5) xbox::VOID NTAPI xbox::DbgBreakPoint()
{
LOG_FUNC();
@ -55,7 +55,7 @@ XBSYSAPI EXPORTNUM(5) xboxkrnl::VOID NTAPI xboxkrnl::DbgBreakPoint()
// ******************************************************************
// * 0x0006 - DbgBreakPointWithStatus()
// ******************************************************************
XBSYSAPI EXPORTNUM(6) xboxkrnl::VOID NTAPI xboxkrnl::DbgBreakPointWithStatus
XBSYSAPI EXPORTNUM(6) xbox::VOID NTAPI xbox::DbgBreakPointWithStatus
(
IN ULONG Status
)
@ -68,7 +68,7 @@ XBSYSAPI EXPORTNUM(6) xboxkrnl::VOID NTAPI xboxkrnl::DbgBreakPointWithStatus
// ******************************************************************
// * 0x0007 - DbgLoadImageSymbols()
// ******************************************************************
XBSYSAPI EXPORTNUM(7) xboxkrnl::NTSTATUS NTAPI xboxkrnl::DbgLoadImageSymbols
XBSYSAPI EXPORTNUM(7) xbox::NTSTATUS NTAPI xbox::DbgLoadImageSymbols
(
IN PANSI_STRING Name,
IN PVOID Base,
@ -91,7 +91,7 @@ XBSYSAPI EXPORTNUM(7) xboxkrnl::NTSTATUS NTAPI xboxkrnl::DbgLoadImageSymbols
// ******************************************************************
// * 0x0008 - DbgPrint()
// ******************************************************************
XBSYSAPI EXPORTNUM(8) xboxkrnl::ULONG _cdecl xboxkrnl::DbgPrint
XBSYSAPI EXPORTNUM(8) xbox::ULONG _cdecl xbox::DbgPrint
(
PCHAR Format, ...
)
@ -137,7 +137,7 @@ XBSYSAPI EXPORTNUM(8) xboxkrnl::ULONG _cdecl xboxkrnl::DbgPrint
// * 0x000A - DbgPrompt()
// ******************************************************************
// Source:ReactOS
XBSYSAPI EXPORTNUM(10) xboxkrnl::ULONG NTAPI xboxkrnl::DbgPrompt
XBSYSAPI EXPORTNUM(10) xbox::ULONG NTAPI xbox::DbgPrompt
(
IN PCCH Prompt,
OUT PCH Response,
@ -161,7 +161,7 @@ XBSYSAPI EXPORTNUM(10) xboxkrnl::ULONG NTAPI xboxkrnl::DbgPrompt
// * 0x000B - DbgUnLoadImageSymbols()
// ******************************************************************
// Source:ReactOS
XBSYSAPI EXPORTNUM(11) xboxkrnl::VOID NTAPI xboxkrnl::DbgUnLoadImageSymbols
XBSYSAPI EXPORTNUM(11) xbox::VOID NTAPI xbox::DbgUnLoadImageSymbols
(
IN PANSI_STRING Name,
IN PVOID Base,

View File

@ -73,15 +73,15 @@ void UnlockEeprom()
}
static bool section_does_not_require_checksum(
xboxkrnl::XC_VALUE_INDEX index
xbox::XC_VALUE_INDEX index
)
{
switch(index) {
case xboxkrnl::XC_FACTORY_GAME_REGION:
case xbox::XC_FACTORY_GAME_REGION:
return true;
case xboxkrnl::XC_ENCRYPTED_SECTION:
case xbox::XC_ENCRYPTED_SECTION:
return true;
case xboxkrnl::XC_MAX_ALL:
case xbox::XC_MAX_ALL:
return true;
default:
return false;
@ -113,7 +113,7 @@ static uint32_t eeprom_section_checksum(
return (uint32_t)(checksum & bitmask);
}
static bool eeprom_data_is_valid(xboxkrnl::XC_VALUE_INDEX index)
static bool eeprom_data_is_valid(xbox::XC_VALUE_INDEX index)
{
const ULONG valid_checksum = 0xFFFFFFFF;
const uint32_t* UserSettings_data = (uint32_t*)&EEPROM->UserSettings;
@ -124,10 +124,10 @@ static bool eeprom_data_is_valid(xboxkrnl::XC_VALUE_INDEX index)
return true;
}
if((index >= xboxkrnl::XC_TIMEZONE_BIAS) && (index <= xboxkrnl::XC_MAX_OS)) {
if((index >= xbox::XC_TIMEZONE_BIAS) && (index <= xbox::XC_MAX_OS)) {
checksum = eeprom_section_checksum(UserSettings_data, sizeof(EEPROM->UserSettings));
}
else if((index >= xboxkrnl::XC_FACTORY_START_INDEX) && (index <= xboxkrnl::XC_MAX_FACTORY)) {
else if((index >= xbox::XC_FACTORY_START_INDEX) && (index <= xbox::XC_MAX_FACTORY)) {
checksum = eeprom_section_checksum(FactorySettings_data, sizeof(EEPROM->FactorySettings));
}
else {
@ -140,7 +140,7 @@ static bool eeprom_data_is_valid(xboxkrnl::XC_VALUE_INDEX index)
// * 0x000C - ExAcquireReadWriteLockExclusive()
// ******************************************************************
// Source:APILogger - Uncertain
XBSYSAPI EXPORTNUM(12) xboxkrnl::VOID NTAPI xboxkrnl::ExAcquireReadWriteLockExclusive
XBSYSAPI EXPORTNUM(12) xbox::VOID NTAPI xbox::ExAcquireReadWriteLockExclusive
(
IN PERWLOCK ReadWriteLock
)
@ -169,7 +169,7 @@ XBSYSAPI EXPORTNUM(12) xboxkrnl::VOID NTAPI xboxkrnl::ExAcquireReadWriteLockExcl
// * 0x000D - ExAcquireReadWriteLockShared()
// ******************************************************************
// Source:APILogger - Uncertain
XBSYSAPI EXPORTNUM(13) xboxkrnl::VOID NTAPI xboxkrnl::ExAcquireReadWriteLockShared
XBSYSAPI EXPORTNUM(13) xbox::VOID NTAPI xbox::ExAcquireReadWriteLockShared
(
IN PERWLOCK ReadWriteLock
)
@ -203,7 +203,7 @@ XBSYSAPI EXPORTNUM(13) xboxkrnl::VOID NTAPI xboxkrnl::ExAcquireReadWriteLockShar
// ******************************************************************
// * 0x000E - ExAllocatePool()
// ******************************************************************
XBSYSAPI EXPORTNUM(14) xboxkrnl::PVOID NTAPI xboxkrnl::ExAllocatePool
XBSYSAPI EXPORTNUM(14) xbox::PVOID NTAPI xbox::ExAllocatePool
(
IN SIZE_T NumberOfBytes
)
@ -219,7 +219,7 @@ XBSYSAPI EXPORTNUM(14) xboxkrnl::PVOID NTAPI xboxkrnl::ExAllocatePool
// * Differences from NT: There is no PoolType field, as the XBOX
// * only has 1 pool, the non-paged pool.
// ******************************************************************
XBSYSAPI EXPORTNUM(15) xboxkrnl::PVOID NTAPI xboxkrnl::ExAllocatePoolWithTag
XBSYSAPI EXPORTNUM(15) xbox::PVOID NTAPI xbox::ExAllocatePoolWithTag
(
IN SIZE_T NumberOfBytes,
IN ULONG Tag
@ -238,21 +238,21 @@ XBSYSAPI EXPORTNUM(15) xboxkrnl::PVOID NTAPI xboxkrnl::ExAllocatePoolWithTag
// ******************************************************************
// * 0x0010 - ExEventObjectType
// ******************************************************************
XBSYSAPI EXPORTNUM(16) xboxkrnl::OBJECT_TYPE xboxkrnl::ExEventObjectType =
XBSYSAPI EXPORTNUM(16) xbox::OBJECT_TYPE xbox::ExEventObjectType =
{
xboxkrnl::ExAllocatePoolWithTag,
xboxkrnl::ExFreePool,
xbox::ExAllocatePoolWithTag,
xbox::ExFreePool,
NULL,
NULL,
NULL,
(PVOID)offsetof(xboxkrnl::KEVENT, Header),
(PVOID)offsetof(xbox::KEVENT, Header),
'vevE' // = first four characters of "Event" in reverse
};
// ******************************************************************
// * 0x0011 - ExFreePool()
// ******************************************************************
XBSYSAPI EXPORTNUM(17) xboxkrnl::VOID NTAPI xboxkrnl::ExFreePool
XBSYSAPI EXPORTNUM(17) xbox::VOID NTAPI xbox::ExFreePool
(
IN PVOID P
)
@ -266,7 +266,7 @@ XBSYSAPI EXPORTNUM(17) xboxkrnl::VOID NTAPI xboxkrnl::ExFreePool
// * 0x0012 - ExInitializeReadWriteLock()
// ******************************************************************
// Source:APILogger - Uncertain
XBSYSAPI EXPORTNUM(18) xboxkrnl::VOID NTAPI xboxkrnl::ExInitializeReadWriteLock
XBSYSAPI EXPORTNUM(18) xbox::VOID NTAPI xbox::ExInitializeReadWriteLock
(
IN PERWLOCK ReadWriteLock
)
@ -285,7 +285,7 @@ XBSYSAPI EXPORTNUM(18) xboxkrnl::VOID NTAPI xboxkrnl::ExInitializeReadWriteLock
// * 0x0013 - ExInterlockedAddLargeInteger()
// ******************************************************************
// Source:ReactOS https://doxygen.reactos.org/d0/d35/ntoskrnl_2ex_2interlocked_8c_source.html#l00062
XBSYSAPI EXPORTNUM(19) xboxkrnl::LARGE_INTEGER NTAPI xboxkrnl::ExInterlockedAddLargeInteger
XBSYSAPI EXPORTNUM(19) xbox::LARGE_INTEGER NTAPI xbox::ExInterlockedAddLargeInteger
(
IN OUT PLARGE_INTEGER Addend,
IN LARGE_INTEGER Increment,
@ -321,7 +321,7 @@ XBSYSAPI EXPORTNUM(19) xboxkrnl::LARGE_INTEGER NTAPI xboxkrnl::ExInterlockedAddL
// * 0x0014 - ExInterlockedAddLargeStatistic()
// ******************************************************************
// Source:ReactOS
XBSYSAPI EXPORTNUM(20) xboxkrnl::VOID FASTCALL xboxkrnl::ExInterlockedAddLargeStatistic
XBSYSAPI EXPORTNUM(20) xbox::VOID FASTCALL xbox::ExInterlockedAddLargeStatistic
(
IN PLARGE_INTEGER Addend,
IN ULONG Increment
@ -340,7 +340,7 @@ XBSYSAPI EXPORTNUM(20) xboxkrnl::VOID FASTCALL xboxkrnl::ExInterlockedAddLargeSt
// * 0x0015 - ExInterlockedCompareExchange64()
// ******************************************************************
// Source:ReactOS
XBSYSAPI EXPORTNUM(21) xboxkrnl::LONGLONG FASTCALL xboxkrnl::ExInterlockedCompareExchange64
XBSYSAPI EXPORTNUM(21) xbox::LONGLONG FASTCALL xbox::ExInterlockedCompareExchange64
(
IN OUT PLONGLONG Destination,
IN PLONGLONG Exchange,
@ -364,21 +364,21 @@ XBSYSAPI EXPORTNUM(21) xboxkrnl::LONGLONG FASTCALL xboxkrnl::ExInterlockedCompar
// ******************************************************************
// * 0x0016 - ExMutantObjectType
// ******************************************************************
XBSYSAPI EXPORTNUM(22) xboxkrnl::OBJECT_TYPE xboxkrnl::ExMutantObjectType =
XBSYSAPI EXPORTNUM(22) xbox::OBJECT_TYPE xbox::ExMutantObjectType =
{
xboxkrnl::ExAllocatePoolWithTag,
xboxkrnl::ExFreePool,
xbox::ExAllocatePoolWithTag,
xbox::ExFreePool,
NULL,
NULL, // TODO : xboxkrnl::ExpDeleteMutant,
NULL, // TODO : xbox::ExpDeleteMutant,
NULL,
(PVOID)offsetof(xboxkrnl::KMUTANT, Header),
(PVOID)offsetof(xbox::KMUTANT, Header),
'atuM' // = first four characters of "Mutant" in reverse
};
// ******************************************************************
// * 0x0017 - ExQueryPoolBlockSize()
// ******************************************************************
XBSYSAPI EXPORTNUM(23) xboxkrnl::ULONG NTAPI xboxkrnl::ExQueryPoolBlockSize
XBSYSAPI EXPORTNUM(23) xbox::ULONG NTAPI xbox::ExQueryPoolBlockSize
(
IN PVOID PoolBlock
)
@ -393,7 +393,7 @@ XBSYSAPI EXPORTNUM(23) xboxkrnl::ULONG NTAPI xboxkrnl::ExQueryPoolBlockSize
// ******************************************************************
// * 0x0018 - ExQueryNonVolatileSetting()
// ******************************************************************
XBSYSAPI EXPORTNUM(24) xboxkrnl::NTSTATUS NTAPI xboxkrnl::ExQueryNonVolatileSetting
XBSYSAPI EXPORTNUM(24) xbox::NTSTATUS NTAPI xbox::ExQueryNonVolatileSetting
(
IN DWORD ValueIndex,
OUT DWORD *Type,
@ -414,7 +414,7 @@ XBSYSAPI EXPORTNUM(24) xboxkrnl::NTSTATUS NTAPI xboxkrnl::ExQueryNonVolatileSett
void * value_addr = nullptr;
int value_type;
int result_length;
xboxkrnl::XC_VALUE_INDEX index = (XC_VALUE_INDEX)ValueIndex;
xbox::XC_VALUE_INDEX index = (XC_VALUE_INDEX)ValueIndex;
// handle eeprom read
if (index == XC_FACTORY_GAME_REGION) {
@ -470,7 +470,7 @@ XBSYSAPI EXPORTNUM(24) xboxkrnl::NTSTATUS NTAPI xboxkrnl::ExQueryNonVolatileSett
// ******************************************************************
// * 0x0019 - ExReadWriteRefurbInfo()
// ******************************************************************
XBSYSAPI EXPORTNUM(25) xboxkrnl::NTSTATUS NTAPI xboxkrnl::ExReadWriteRefurbInfo
XBSYSAPI EXPORTNUM(25) xbox::NTSTATUS NTAPI xbox::ExReadWriteRefurbInfo
(
IN OUT PXBOX_REFURB_INFO pRefurbInfo,
IN ULONG dwBufferSize,
@ -501,7 +501,7 @@ XBSYSAPI EXPORTNUM(25) xboxkrnl::NTSTATUS NTAPI xboxkrnl::ExReadWriteRefurbInfo
Handle ConfigPartitionHandle;
IO_STATUS_BLOCK IoStatusBlock;
Result = xboxkrnl::NtOpenFile(
Result = xbox::NtOpenFile(
&ConfigPartitionHandle,
GENERIC_READ or DWORD(iif(aIsWriteMode, GENERIC_WRITE, 0)) or SYNCHRONIZE,
&ObjectAttributes,
@ -518,11 +518,11 @@ XBSYSAPI EXPORTNUM(25) xboxkrnl::NTSTATUS NTAPI xboxkrnl::ExReadWriteRefurbInfo
{
RefurbInfoCopy = *pRefurbInfo;
RefurbInfoCopy.Signature_ = XBOX_REFURB_INFO_SIGNATURE;
Result = xboxkrnl::NtWriteFile(ConfigPartitionHandle, 0, NULL, NULL, &IoStatusBlock, &RefurbInfoCopy, XBOX_HD_SECTOR_SIZE, &ByteOffset);
Result = xbox::NtWriteFile(ConfigPartitionHandle, 0, NULL, NULL, &IoStatusBlock, &RefurbInfoCopy, XBOX_HD_SECTOR_SIZE, &ByteOffset);
}
else
{
Result = xboxkrnl::NtReadFile(ConfigPartitionHandle, 0, NULL, NULL, &IoStatusBlock, &RefurbInfoCopy, XBOX_HD_SECTOR_SIZE, &ByteOffset);
Result = xbox::NtReadFile(ConfigPartitionHandle, 0, NULL, NULL, &IoStatusBlock, &RefurbInfoCopy, XBOX_HD_SECTOR_SIZE, &ByteOffset);
if (NT_SUCCESS(Result))
{
if (RefurbInfoCopy.Signature_ == XBOX_REFURB_INFO_SIGNATURE)
@ -550,7 +550,7 @@ XBSYSAPI EXPORTNUM(25) xboxkrnl::NTSTATUS NTAPI xboxkrnl::ExReadWriteRefurbInfo
// * 0x001A - ExRaiseException()
// ******************************************************************
// Source:ReactOS
XBSYSAPI EXPORTNUM(26) xboxkrnl::VOID NTAPI xboxkrnl::ExRaiseException
XBSYSAPI EXPORTNUM(26) xbox::VOID NTAPI xbox::ExRaiseException
(
IN PEXCEPTION_RECORD ExceptionRecord
)
@ -565,7 +565,7 @@ XBSYSAPI EXPORTNUM(26) xboxkrnl::VOID NTAPI xboxkrnl::ExRaiseException
// * 0x001B - ExRaiseStatus()
// ******************************************************************
// Source:ReactOS
XBSYSAPI EXPORTNUM(27) xboxkrnl::VOID NTAPI xboxkrnl::ExRaiseStatus
XBSYSAPI EXPORTNUM(27) xbox::VOID NTAPI xbox::ExRaiseStatus
(
IN NTSTATUS Status
)
@ -579,7 +579,7 @@ XBSYSAPI EXPORTNUM(27) xboxkrnl::VOID NTAPI xboxkrnl::ExRaiseStatus
// * 0x001C - ExReleaseReadWriteLock()
// ******************************************************************
// Source:APILogger - Uncertain
XBSYSAPI EXPORTNUM(28) xboxkrnl::VOID NTAPI xboxkrnl::ExReleaseReadWriteLock
XBSYSAPI EXPORTNUM(28) xbox::VOID NTAPI xbox::ExReleaseReadWriteLock
(
IN PERWLOCK ReadWriteLock
)
@ -620,7 +620,7 @@ XBSYSAPI EXPORTNUM(28) xboxkrnl::VOID NTAPI xboxkrnl::ExReleaseReadWriteLock
// ******************************************************************
// * 0x001D - ExSaveNonVolatileSetting()
// ******************************************************************
XBSYSAPI EXPORTNUM(29) xboxkrnl::NTSTATUS NTAPI xboxkrnl::ExSaveNonVolatileSetting
XBSYSAPI EXPORTNUM(29) xbox::NTSTATUS NTAPI xbox::ExSaveNonVolatileSetting
(
IN DWORD ValueIndex,
IN DWORD Type,
@ -671,7 +671,7 @@ XBSYSAPI EXPORTNUM(29) xboxkrnl::NTSTATUS NTAPI xboxkrnl::ExSaveNonVolatileSetti
{
// Update the global XboxFactoryGameRegion
XboxFactoryGameRegion = *(xboxkrnl::PULONG)Value;
XboxFactoryGameRegion = *(xbox::PULONG)Value;
}
gen_section_CRCs(EEPROM);
@ -692,28 +692,28 @@ XBSYSAPI EXPORTNUM(29) xboxkrnl::NTSTATUS NTAPI xboxkrnl::ExSaveNonVolatileSetti
// ******************************************************************
// * 0x001E - ExSemaphoreObjectType
// ******************************************************************
XBSYSAPI EXPORTNUM(30) xboxkrnl::OBJECT_TYPE xboxkrnl::ExSemaphoreObjectType =
XBSYSAPI EXPORTNUM(30) xbox::OBJECT_TYPE xbox::ExSemaphoreObjectType =
{
xboxkrnl::ExAllocatePoolWithTag,
xboxkrnl::ExFreePool,
xbox::ExAllocatePoolWithTag,
xbox::ExFreePool,
NULL,
NULL,
NULL,
(PVOID)offsetof(xboxkrnl::KSEMAPHORE, Header),
(PVOID)offsetof(xbox::KSEMAPHORE, Header),
'ameS' // = first four characters of "Semaphore" in reverse
};
// ******************************************************************
// * 0x001F - ExTimerObjectType
// ******************************************************************
XBSYSAPI EXPORTNUM(31) xboxkrnl::OBJECT_TYPE xboxkrnl::ExTimerObjectType =
XBSYSAPI EXPORTNUM(31) xbox::OBJECT_TYPE xbox::ExTimerObjectType =
{
xboxkrnl::ExAllocatePoolWithTag,
xboxkrnl::ExFreePool,
xbox::ExAllocatePoolWithTag,
xbox::ExFreePool,
NULL,
NULL, // TODO : xboxkrnl::ExpDeleteTimer,
NULL, // TODO : xbox::ExpDeleteTimer,
NULL,
(PVOID)offsetof(xboxkrnl::KTIMER, Header),
(PVOID)offsetof(xbox::KTIMER, Header),
'emiT' // = first four characters of "Timer" in reverse
};
@ -721,7 +721,7 @@ XBSYSAPI EXPORTNUM(31) xboxkrnl::OBJECT_TYPE xboxkrnl::ExTimerObjectType =
// * 0x0020 - ExfInterlockedInsertHeadList()
// ******************************************************************
// Source:ReactOS
XBSYSAPI EXPORTNUM(32) xboxkrnl::PLIST_ENTRY FASTCALL xboxkrnl::ExfInterlockedInsertHeadList
XBSYSAPI EXPORTNUM(32) xbox::PLIST_ENTRY FASTCALL xbox::ExfInterlockedInsertHeadList
(
IN PLIST_ENTRY ListHead,
IN PLIST_ENTRY ListEntry
@ -755,7 +755,7 @@ XBSYSAPI EXPORTNUM(32) xboxkrnl::PLIST_ENTRY FASTCALL xboxkrnl::ExfInterlockedIn
// * 0x0021 - ExfInterlockedInsertTailList()
// ******************************************************************
// Source:ReactOS
XBSYSAPI EXPORTNUM(33) xboxkrnl::PLIST_ENTRY FASTCALL xboxkrnl::ExfInterlockedInsertTailList
XBSYSAPI EXPORTNUM(33) xbox::PLIST_ENTRY FASTCALL xbox::ExfInterlockedInsertTailList
(
IN PLIST_ENTRY ListHead,
IN PLIST_ENTRY ListEntry
@ -790,7 +790,7 @@ XBSYSAPI EXPORTNUM(33) xboxkrnl::PLIST_ENTRY FASTCALL xboxkrnl::ExfInterlockedIn
// * 0x0022 - ExfInterlockedRemoveHeadList()
// ******************************************************************
// Source:ReactOS
XBSYSAPI EXPORTNUM(34) xboxkrnl::PLIST_ENTRY FASTCALL xboxkrnl::ExfInterlockedRemoveHeadList
XBSYSAPI EXPORTNUM(34) xbox::PLIST_ENTRY FASTCALL xbox::ExfInterlockedRemoveHeadList
(
IN PLIST_ENTRY ListHead
)

View File

@ -43,12 +43,12 @@ namespace NtDll
#define FSCACHE_MAXIMUM_NUMBER_OF_CACHE_PAGES 2048
// global variables
xboxkrnl::LONG g_FscNumberOfCachePages = 16; // 16 = default number of file system cache pages
xbox::LONG g_FscNumberOfCachePages = 16; // 16 = default number of file system cache pages
// ******************************************************************
// * 0x0023 - FscGetCacheSize()
// ******************************************************************
XBSYSAPI EXPORTNUM(35) xboxkrnl::ULONG NTAPI xboxkrnl::FscGetCacheSize()
XBSYSAPI EXPORTNUM(35) xbox::ULONG NTAPI xbox::FscGetCacheSize()
{
LOG_FUNC();
@ -58,16 +58,16 @@ XBSYSAPI EXPORTNUM(35) xboxkrnl::ULONG NTAPI xboxkrnl::FscGetCacheSize()
// ******************************************************************
// * 0x0024 - FscInvalidateIdleBlocks()
// ******************************************************************
XBSYSAPI EXPORTNUM(36) xboxkrnl::VOID NTAPI xboxkrnl::FscInvalidateIdleBlocks()
XBSYSAPI EXPORTNUM(36) xbox::VOID NTAPI xbox::FscInvalidateIdleBlocks()
{
LOG_FUNC();
LOG_UNIMPLEMENTED();
}
static xboxkrnl::KEVENT g_FscCacheEvent;
static xbox::KEVENT g_FscCacheEvent;
xboxkrnl::VOID xboxkrnl::InitializeFscCacheEvent()
xbox::VOID xbox::InitializeFscCacheEvent()
{
KeInitializeEvent(&g_FscCacheEvent, SynchronizationEvent, TRUE);
}
@ -75,7 +75,7 @@ xboxkrnl::VOID xboxkrnl::InitializeFscCacheEvent()
// ******************************************************************
// * 0x0025 - FscSetCacheSize()
// ******************************************************************
XBSYSAPI EXPORTNUM(37) xboxkrnl::NTSTATUS NTAPI xboxkrnl::FscSetCacheSize
XBSYSAPI EXPORTNUM(37) xbox::NTSTATUS NTAPI xbox::FscSetCacheSize
(
ULONG NumberOfCachePages
)

View File

@ -59,14 +59,14 @@ uint8_t ResetOrShutdownCommandCode = 0;
uint32_t ResetOrShutdownDataValue = 0;
// global list of routines executed during a reboot
xboxkrnl::LIST_ENTRY ShutdownRoutineList = { &ShutdownRoutineList , &ShutdownRoutineList }; // see InitializeListHead()
xbox::LIST_ENTRY ShutdownRoutineList = { &ShutdownRoutineList , &ShutdownRoutineList }; // see InitializeListHead()
// ******************************************************************
// * Declaring this in a header causes errors with xboxkrnl
// * namespace, so we must declare it within any file that uses it
// ******************************************************************
xboxkrnl::KPCR* WINAPI KeGetPcr();
xbox::KPCR* WINAPI KeGetPcr();
#define TRAY_CLOSED_MEDIA_PRESENT 0x60
#define TRAY_CLOSED_NO_MEDIA 0x40
@ -78,7 +78,7 @@ static DWORD g_TrayCount = 0;
// ******************************************************************
// * 0x0009 - HalReadSMCTrayState()
// ******************************************************************
XBSYSAPI EXPORTNUM(9) xboxkrnl::NTSTATUS NTAPI xboxkrnl::HalReadSMCTrayState
XBSYSAPI EXPORTNUM(9) xbox::NTSTATUS NTAPI xbox::HalReadSMCTrayState
(
DWORD* State,
DWORD* Count
@ -125,7 +125,7 @@ XBSYSAPI EXPORTNUM(9) xboxkrnl::NTSTATUS NTAPI xboxkrnl::HalReadSMCTrayState
// * 0x0026 - HalClearSoftwareInterrupt()
// ******************************************************************
// Source:ReactOS
XBSYSAPI EXPORTNUM(38) xboxkrnl::VOID FASTCALL xboxkrnl::HalClearSoftwareInterrupt
XBSYSAPI EXPORTNUM(38) xbox::VOID FASTCALL xbox::HalClearSoftwareInterrupt
(
KIRQL Request
)
@ -140,7 +140,7 @@ XBSYSAPI EXPORTNUM(38) xboxkrnl::VOID FASTCALL xboxkrnl::HalClearSoftwareInterru
// ******************************************************************
// * 0x0027 - HalDisableSystemInterrupt()
// ******************************************************************
XBSYSAPI EXPORTNUM(39) xboxkrnl::VOID NTAPI xboxkrnl::HalDisableSystemInterrupt
XBSYSAPI EXPORTNUM(39) xbox::VOID NTAPI xbox::HalDisableSystemInterrupt
(
IN ULONG BusInterruptLevel
)
@ -155,24 +155,24 @@ XBSYSAPI EXPORTNUM(39) xboxkrnl::VOID NTAPI xboxkrnl::HalDisableSystemInterrupt
// ******************************************************************
// This specifies the number of Cache partitions available for game data caching
// On real hardware, there are three, generally known as X, Y and Z in homebrew
XBSYSAPI EXPORTNUM(40) xboxkrnl::ULONG xboxkrnl::HalDiskCachePartitionCount = 3;
XBSYSAPI EXPORTNUM(40) xbox::ULONG xbox::HalDiskCachePartitionCount = 3;
// ******************************************************************
// * 0x0029 - HalDiskModelNumber
// ******************************************************************
// Source:OpenXDK TODO : Fill this with something sensible
XBSYSAPI EXPORTNUM(41) xboxkrnl::PANSI_STRING xboxkrnl::HalDiskModelNumber = 0;
XBSYSAPI EXPORTNUM(41) xbox::PANSI_STRING xbox::HalDiskModelNumber = 0;
// ******************************************************************
// * 0x002A - HalDiskSerialNumber
// ******************************************************************
// Source:OpenXDK TODO : Fill this with something sensible
XBSYSAPI EXPORTNUM(42) xboxkrnl::PANSI_STRING xboxkrnl::HalDiskSerialNumber = 0;
XBSYSAPI EXPORTNUM(42) xbox::PANSI_STRING xbox::HalDiskSerialNumber = 0;
// ******************************************************************
// * 0x002B - HalEnableSystemInterrupt()
// ******************************************************************
XBSYSAPI EXPORTNUM(43) xboxkrnl::VOID NTAPI xboxkrnl::HalEnableSystemInterrupt
XBSYSAPI EXPORTNUM(43) xbox::VOID NTAPI xbox::HalEnableSystemInterrupt
(
IN ULONG BusInterruptLevel,
IN KINTERRUPT_MODE InterruptMode
@ -224,7 +224,7 @@ char *IRQNames[MAX_BUS_INTERRUPT_LEVEL + 1] =
// ******************************************************************
// * 0x002C - HalGetInterruptVector()
// ******************************************************************
XBSYSAPI EXPORTNUM(44) xboxkrnl::ULONG NTAPI xboxkrnl::HalGetInterruptVector
XBSYSAPI EXPORTNUM(44) xbox::ULONG NTAPI xbox::HalGetInterruptVector
(
IN ULONG BusInterruptLevel,
OUT PKIRQL Irql
@ -261,7 +261,7 @@ XBSYSAPI EXPORTNUM(44) xboxkrnl::ULONG NTAPI xboxkrnl::HalGetInterruptVector
// ******************************************************************
// * 0x002D - HalReadSMBusValue()
// ******************************************************************
XBSYSAPI EXPORTNUM(45) xboxkrnl::NTSTATUS NTAPI xboxkrnl::HalReadSMBusValue
XBSYSAPI EXPORTNUM(45) xbox::NTSTATUS NTAPI xbox::HalReadSMBusValue
(
IN UCHAR Address,
IN UCHAR Command,
@ -310,7 +310,7 @@ XBSYSAPI EXPORTNUM(45) xboxkrnl::NTSTATUS NTAPI xboxkrnl::HalReadSMBusValue
// * 0x002E - HalReadWritePCISpace()
// ******************************************************************
// Source:OpenXDK
XBSYSAPI EXPORTNUM(46) xboxkrnl::VOID NTAPI xboxkrnl::HalReadWritePCISpace
XBSYSAPI EXPORTNUM(46) xbox::VOID NTAPI xbox::HalReadWritePCISpace
(
IN ULONG BusNumber,
IN ULONG SlotNumber,
@ -355,7 +355,7 @@ XBSYSAPI EXPORTNUM(46) xboxkrnl::VOID NTAPI xboxkrnl::HalReadWritePCISpace
int ByteOffset = RegisterNumber % sizeof(ULONG);
int Size = RegisterDataSizes[RegisterNumber % sizeof(ULONG)][Length % sizeof(ULONG)];
EmuX86_IOWrite((xbaddr)PCI_TYPE1_ADDR_PORT, CfgBits.u.AsULONG, sizeof(uint32_t));
EmuX86_IOWrite((xbox::addr)PCI_TYPE1_ADDR_PORT, CfgBits.u.AsULONG, sizeof(uint32_t));
if (WritePCISpace) {
EmuX86_IOWrite(PCI_TYPE1_DATA_PORT, *((PUCHAR)Buffer), Size);
@ -386,7 +386,7 @@ XBSYSAPI EXPORTNUM(46) xboxkrnl::VOID NTAPI xboxkrnl::HalReadWritePCISpace
// ******************************************************************
// * 0x002F - HalRegisterShutdownNotification()
// ******************************************************************
XBSYSAPI EXPORTNUM(47) xboxkrnl::VOID NTAPI xboxkrnl::HalRegisterShutdownNotification
XBSYSAPI EXPORTNUM(47) xbox::VOID NTAPI xbox::HalRegisterShutdownNotification
(
IN PHAL_SHUTDOWN_REGISTRATION ShutdownRegistration,
IN BOOLEAN Register
@ -446,7 +446,7 @@ uint8_t SoftwareInterruptLookupTable[] = {
// * 0x0030 - HalRequestSoftwareInterrupt()
// ******************************************************************
// Source:ReactOS
XBSYSAPI EXPORTNUM(48) xboxkrnl::VOID FASTCALL xboxkrnl::HalRequestSoftwareInterrupt
XBSYSAPI EXPORTNUM(48) xbox::VOID FASTCALL xbox::HalRequestSoftwareInterrupt
(
IN KIRQL Request
)
@ -480,7 +480,7 @@ XBSYSAPI EXPORTNUM(48) xboxkrnl::VOID FASTCALL xboxkrnl::HalRequestSoftwareInter
// ******************************************************************
// * 0x0031 - HalReturnToFirmware()
// ******************************************************************
XBSYSAPI EXPORTNUM(49) xboxkrnl::VOID DECLSPEC_NORETURN NTAPI xboxkrnl::HalReturnToFirmware
XBSYSAPI EXPORTNUM(49) xbox::VOID DECLSPEC_NORETURN NTAPI xbox::HalReturnToFirmware
(
RETURN_FIRMWARE Routine
)
@ -496,14 +496,14 @@ XBSYSAPI EXPORTNUM(49) xboxkrnl::VOID DECLSPEC_NORETURN NTAPI xboxkrnl::HalRetur
LOG_UNIMPLEMENTED(); // fall through
case ReturnFirmwareQuickReboot:
{
if (xboxkrnl::LaunchDataPage == NULL)
if (xbox::LaunchDataPage == NULL)
LOG_UNIMPLEMENTED();
else
{
// Save the launch data page to disk for later.
// (Note : XWriteTitleInfoNoReboot does this too)
// Commented out because XLaunchNewImage is disabled!
// MmPersistContiguousMemory((PVOID)xboxkrnl::LaunchDataPage, sizeof(LAUNCH_DATA_PAGE), TRUE);
// MmPersistContiguousMemory((PVOID)xbox::LaunchDataPage, sizeof(LAUNCH_DATA_PAGE), TRUE);
{
// ergo720: I tested this with Tenchu and Dead or Alive Ultimate, both of which register a single shutdown
@ -534,7 +534,7 @@ XBSYSAPI EXPORTNUM(49) xboxkrnl::VOID DECLSPEC_NORETURN NTAPI xboxkrnl::HalRetur
}
std::string TitlePath = xboxkrnl::LaunchDataPage->Header.szLaunchPath;
std::string TitlePath = xbox::LaunchDataPage->Header.szLaunchPath;
char szWorkingDirectoy[MAX_PATH];
// If the title path starts with a semicolon, remove it
@ -625,7 +625,7 @@ XBSYSAPI EXPORTNUM(49) xboxkrnl::VOID DECLSPEC_NORETURN NTAPI xboxkrnl::HalRetur
case ReturnFirmwareFatal:
{
xboxkrnl::HalWriteSMBusValue(SMBUS_ADDRESS_SYSTEM_MICRO_CONTROLLER, SMC_COMMAND_SCRATCH, 0, SMC_SCRATCH_DISPLAY_FATAL_ERROR);
xbox::HalWriteSMBusValue(SMBUS_ADDRESS_SYSTEM_MICRO_CONTROLLER, SMC_COMMAND_SCRATCH, 0, SMC_SCRATCH_DISPLAY_FATAL_ERROR);
g_VMManager.SavePersistentMemory();
@ -651,7 +651,7 @@ XBSYSAPI EXPORTNUM(49) xboxkrnl::VOID DECLSPEC_NORETURN NTAPI xboxkrnl::HalRetur
// ******************************************************************
// * 0x0032 - HalWriteSMBusValue()
// ******************************************************************
XBSYSAPI EXPORTNUM(50) xboxkrnl::NTSTATUS NTAPI xboxkrnl::HalWriteSMBusValue
XBSYSAPI EXPORTNUM(50) xbox::NTSTATUS NTAPI xbox::HalWriteSMBusValue
(
IN UCHAR Address,
IN UCHAR Command,
@ -694,7 +694,7 @@ XBSYSAPI EXPORTNUM(50) xboxkrnl::NTSTATUS NTAPI xboxkrnl::HalWriteSMBusValue
// ******************************************************************
// * 0x0149 - READ_PORT_BUFFER_UCHAR()
// ******************************************************************
XBSYSAPI EXPORTNUM(329) xboxkrnl::VOID NTAPI xboxkrnl::READ_PORT_BUFFER_UCHAR
XBSYSAPI EXPORTNUM(329) xbox::VOID NTAPI xbox::READ_PORT_BUFFER_UCHAR
(
IN PUCHAR Port,
IN PUCHAR Buffer,
@ -708,13 +708,13 @@ XBSYSAPI EXPORTNUM(329) xboxkrnl::VOID NTAPI xboxkrnl::READ_PORT_BUFFER_UCHAR
LOG_FUNC_END;
while (Count-- > 0)
*Buffer++ = (uint8_t)EmuX86_IORead((xbaddr)Port, sizeof(uint8_t));
*Buffer++ = (uint8_t)EmuX86_IORead((xbox::addr)Port, sizeof(uint8_t));
}
// ******************************************************************
// * 0x014A - READ_PORT_BUFFER_USHORT()
// ******************************************************************
XBSYSAPI EXPORTNUM(330) xboxkrnl::VOID NTAPI xboxkrnl::READ_PORT_BUFFER_USHORT
XBSYSAPI EXPORTNUM(330) xbox::VOID NTAPI xbox::READ_PORT_BUFFER_USHORT
(
IN PUSHORT Port,
IN PUSHORT Buffer,
@ -728,13 +728,13 @@ XBSYSAPI EXPORTNUM(330) xboxkrnl::VOID NTAPI xboxkrnl::READ_PORT_BUFFER_USHORT
LOG_FUNC_END;
while (Count-- > 0)
*Buffer++ = (uint16_t)EmuX86_IORead((xbaddr)Port, sizeof(uint16_t));
*Buffer++ = (uint16_t)EmuX86_IORead((xbox::addr)Port, sizeof(uint16_t));
}
// ******************************************************************
// * 0x014B - READ_PORT_BUFFER_ULONG()
// ******************************************************************
XBSYSAPI EXPORTNUM(331) xboxkrnl::VOID NTAPI xboxkrnl::READ_PORT_BUFFER_ULONG
XBSYSAPI EXPORTNUM(331) xbox::VOID NTAPI xbox::READ_PORT_BUFFER_ULONG
(
IN PULONG Port,
IN PULONG Buffer,
@ -748,13 +748,13 @@ XBSYSAPI EXPORTNUM(331) xboxkrnl::VOID NTAPI xboxkrnl::READ_PORT_BUFFER_ULONG
LOG_FUNC_END;
while (Count-- > 0)
*Buffer++ = EmuX86_IORead((xbaddr)Port, sizeof(uint32_t));
*Buffer++ = EmuX86_IORead((xbox::addr)Port, sizeof(uint32_t));
}
// ******************************************************************
// * 0x014C - WRITE_PORT_BUFFER_UCHAR()
// ******************************************************************
XBSYSAPI EXPORTNUM(332) xboxkrnl::VOID NTAPI xboxkrnl::WRITE_PORT_BUFFER_UCHAR
XBSYSAPI EXPORTNUM(332) xbox::VOID NTAPI xbox::WRITE_PORT_BUFFER_UCHAR
(
IN PUCHAR Port,
IN PUCHAR Buffer,
@ -768,13 +768,13 @@ XBSYSAPI EXPORTNUM(332) xboxkrnl::VOID NTAPI xboxkrnl::WRITE_PORT_BUFFER_UCHAR
LOG_FUNC_END;
while (Count-- > 0)
EmuX86_IOWrite((xbaddr)Port, *Buffer++, sizeof(uint8_t));
EmuX86_IOWrite((xbox::addr)Port, *Buffer++, sizeof(uint8_t));
}
// ******************************************************************
// * 0x014D - WRITE_PORT_BUFFER_USHORT()
// ******************************************************************
XBSYSAPI EXPORTNUM(333) xboxkrnl::VOID NTAPI xboxkrnl::WRITE_PORT_BUFFER_USHORT
XBSYSAPI EXPORTNUM(333) xbox::VOID NTAPI xbox::WRITE_PORT_BUFFER_USHORT
(
IN PUSHORT Port,
IN PUSHORT Buffer,
@ -788,13 +788,13 @@ XBSYSAPI EXPORTNUM(333) xboxkrnl::VOID NTAPI xboxkrnl::WRITE_PORT_BUFFER_USHORT
LOG_FUNC_END;
while (Count-- > 0)
EmuX86_IOWrite((xbaddr)Port, *Buffer++, sizeof(uint16_t));
EmuX86_IOWrite((xbox::addr)Port, *Buffer++, sizeof(uint16_t));
}
// ******************************************************************
// * 0x014E - WRITE_PORT_BUFFER_ULONG()
// ******************************************************************
XBSYSAPI EXPORTNUM(334) xboxkrnl::VOID NTAPI xboxkrnl::WRITE_PORT_BUFFER_ULONG
XBSYSAPI EXPORTNUM(334) xbox::VOID NTAPI xbox::WRITE_PORT_BUFFER_ULONG
(
IN PULONG Port,
IN PULONG Buffer,
@ -808,20 +808,20 @@ XBSYSAPI EXPORTNUM(334) xboxkrnl::VOID NTAPI xboxkrnl::WRITE_PORT_BUFFER_ULONG
LOG_FUNC_END;
while (Count-- > 0)
EmuX86_IOWrite((xbaddr)Port, *Buffer++, sizeof(uint32_t));
EmuX86_IOWrite((xbox::addr)Port, *Buffer++, sizeof(uint32_t));
}
// ******************************************************************
// * 0x0164 - HalBootSMCVideoMode
// ******************************************************************
// TODO: This should be set to whichever AV Pack is read from the SMC at boot time
XBSYSAPI EXPORTNUM(356) xboxkrnl::DWORD xboxkrnl::HalBootSMCVideoMode = 1; // TODO : AV_PACK_STANDARD?
XBSYSAPI EXPORTNUM(356) xbox::DWORD xbox::HalBootSMCVideoMode = 1; // TODO : AV_PACK_STANDARD?
// ******************************************************************
// * 0x0166 - HalIsResetOrShutdownPending()
// ******************************************************************
// Source:Dxbx
XBSYSAPI EXPORTNUM(358) xboxkrnl::BOOLEAN NTAPI xboxkrnl::HalIsResetOrShutdownPending
XBSYSAPI EXPORTNUM(358) xbox::BOOLEAN NTAPI xbox::HalIsResetOrShutdownPending
(
)
{
@ -838,7 +838,7 @@ XBSYSAPI EXPORTNUM(358) xboxkrnl::BOOLEAN NTAPI xboxkrnl::HalIsResetOrShutdownPe
// * 0x0168 - HalInitiateShutdown()
// ******************************************************************
// Source:Dxbx
XBSYSAPI EXPORTNUM(360) xboxkrnl::NTSTATUS NTAPI xboxkrnl::HalInitiateShutdown
XBSYSAPI EXPORTNUM(360) xbox::NTSTATUS NTAPI xbox::HalInitiateShutdown
(
)
{
@ -846,7 +846,7 @@ XBSYSAPI EXPORTNUM(360) xboxkrnl::NTSTATUS NTAPI xboxkrnl::HalInitiateShutdown
ResetOrShutdownCommandCode = SMC_COMMAND_RESET;
ResetOrShutdownDataValue = SMC_RESET_ASSERT_SHUTDOWN;
xboxkrnl::HalWriteSMBusValue(SMBUS_ADDRESS_SYSTEM_MICRO_CONTROLLER, ResetOrShutdownCommandCode, 0, ResetOrShutdownDataValue);
xbox::HalWriteSMBusValue(SMBUS_ADDRESS_SYSTEM_MICRO_CONTROLLER, ResetOrShutdownCommandCode, 0, ResetOrShutdownDataValue);
RETURN(S_OK);
}
@ -859,7 +859,7 @@ XBSYSAPI EXPORTNUM(360) xboxkrnl::NTSTATUS NTAPI xboxkrnl::HalInitiateShutdown
//
// New to the XBOX.
// Source:XBMC Undocumented.h
XBSYSAPI EXPORTNUM(365) xboxkrnl::VOID NTAPI xboxkrnl::HalEnableSecureTrayEject
XBSYSAPI EXPORTNUM(365) xbox::VOID NTAPI xbox::HalEnableSecureTrayEject
(
)
{
@ -872,7 +872,7 @@ XBSYSAPI EXPORTNUM(365) xboxkrnl::VOID NTAPI xboxkrnl::HalEnableSecureTrayEject
// * 0x016E - HalWriteSMCScratchRegister()
// ******************************************************************
// Source:Dxbx
XBSYSAPI EXPORTNUM(366) xboxkrnl::NTSTATUS NTAPI xboxkrnl::HalWriteSMCScratchRegister
XBSYSAPI EXPORTNUM(366) xbox::NTSTATUS NTAPI xbox::HalWriteSMCScratchRegister
(
IN DWORD ScratchRegister
)

View File

@ -40,7 +40,7 @@
// ******************************************************************
// * 0x003B - IoAllocateIrp()
// ******************************************************************
XBSYSAPI EXPORTNUM(59) xboxkrnl::PVOID NTAPI xboxkrnl::IoAllocateIrp
XBSYSAPI EXPORTNUM(59) xbox::PVOID NTAPI xbox::IoAllocateIrp
(
IN CCHAR StackSize
)
@ -49,7 +49,7 @@ XBSYSAPI EXPORTNUM(59) xboxkrnl::PVOID NTAPI xboxkrnl::IoAllocateIrp
LOG_UNIMPLEMENTED();
xboxkrnl::PVOID ret = nullptr;
xbox::PVOID ret = nullptr;
RETURN(ret);
}
@ -57,7 +57,7 @@ XBSYSAPI EXPORTNUM(59) xboxkrnl::PVOID NTAPI xboxkrnl::IoAllocateIrp
// ******************************************************************
// * 0x003C - IoBuildAsynchronousFsdRequest()
// ******************************************************************
XBSYSAPI EXPORTNUM(60) xboxkrnl::PVOID NTAPI xboxkrnl::IoBuildAsynchronousFsdRequest
XBSYSAPI EXPORTNUM(60) xbox::PVOID NTAPI xbox::IoBuildAsynchronousFsdRequest
(
IN ULONG MajorFunction,
IN PDEVICE_OBJECT DeviceObject,
@ -76,7 +76,7 @@ XBSYSAPI EXPORTNUM(60) xboxkrnl::PVOID NTAPI xboxkrnl::IoBuildAsynchronousFsdReq
LOG_FUNC_ARG_OUT(IoStatusBlock)
LOG_FUNC_END;
xboxkrnl::PVOID ret = nullptr;
xbox::PVOID ret = nullptr;
LOG_UNIMPLEMENTED();
@ -86,7 +86,7 @@ XBSYSAPI EXPORTNUM(60) xboxkrnl::PVOID NTAPI xboxkrnl::IoBuildAsynchronousFsdReq
// ******************************************************************
// * 0x003D - IoBuildDeviceIoControlRequest()
// ******************************************************************
XBSYSAPI EXPORTNUM(61) xboxkrnl::PVOID NTAPI xboxkrnl::IoBuildDeviceIoControlRequest
XBSYSAPI EXPORTNUM(61) xbox::PVOID NTAPI xbox::IoBuildDeviceIoControlRequest
(
IN ULONG IoControlCode,
IN PDEVICE_OBJECT DeviceObject,
@ -111,7 +111,7 @@ XBSYSAPI EXPORTNUM(61) xboxkrnl::PVOID NTAPI xboxkrnl::IoBuildDeviceIoControlReq
LOG_FUNC_ARG_OUT(IoStatusBlock)
LOG_FUNC_END;
xboxkrnl::PVOID ret = nullptr;
xbox::PVOID ret = nullptr;
LOG_UNIMPLEMENTED();
@ -121,7 +121,7 @@ XBSYSAPI EXPORTNUM(61) xboxkrnl::PVOID NTAPI xboxkrnl::IoBuildDeviceIoControlReq
// ******************************************************************
// * 0x003E - IoBuildSynchronousFsdRequest()
// ******************************************************************
XBSYSAPI EXPORTNUM(62) xboxkrnl::PVOID NTAPI xboxkrnl::IoBuildSynchronousFsdRequest
XBSYSAPI EXPORTNUM(62) xbox::PVOID NTAPI xbox::IoBuildSynchronousFsdRequest
(
IN ULONG MajorFunction,
IN PDEVICE_OBJECT DeviceObject,
@ -142,7 +142,7 @@ XBSYSAPI EXPORTNUM(62) xboxkrnl::PVOID NTAPI xboxkrnl::IoBuildSynchronousFsdRequ
LOG_FUNC_ARG_OUT(IoStatusBlock)
LOG_FUNC_END;
xboxkrnl::PVOID ret = nullptr;
xbox::PVOID ret = nullptr;
LOG_UNIMPLEMENTED();
@ -152,7 +152,7 @@ XBSYSAPI EXPORTNUM(62) xboxkrnl::PVOID NTAPI xboxkrnl::IoBuildSynchronousFsdRequ
// ******************************************************************
// * 0x003F - IoCheckShareAccess()
// ******************************************************************
XBSYSAPI EXPORTNUM(63) xboxkrnl::NTSTATUS NTAPI xboxkrnl::IoCheckShareAccess
XBSYSAPI EXPORTNUM(63) xbox::NTSTATUS NTAPI xbox::IoCheckShareAccess
(
IN ACCESS_MASK DesiredAccess,
IN ULONG DesiredShareAccess,
@ -177,21 +177,21 @@ XBSYSAPI EXPORTNUM(63) xboxkrnl::NTSTATUS NTAPI xboxkrnl::IoCheckShareAccess
// ******************************************************************
// * 0x0040 - IoCompletionObjectType
// ******************************************************************
XBSYSAPI EXPORTNUM(64) xboxkrnl::OBJECT_TYPE xboxkrnl::IoCompletionObjectType =
XBSYSAPI EXPORTNUM(64) xbox::OBJECT_TYPE xbox::IoCompletionObjectType =
{
xboxkrnl::ExAllocatePoolWithTag,
xboxkrnl::ExFreePool,
xbox::ExAllocatePoolWithTag,
xbox::ExFreePool,
NULL,
NULL, // TODO : xboxkrnl::IopDeleteIoCompletion,
NULL, // TODO : xbox::IopDeleteIoCompletion,
NULL,
NULL, // &xboxkrnl::ObpDefaultObject,
NULL, // &xbox::ObpDefaultObject,
'pmoC' // = first four characters of "Completion" in reverse
};
// ******************************************************************
// * 0x0041 - IoCreateDevice()
// ******************************************************************
XBSYSAPI EXPORTNUM(65) xboxkrnl::NTSTATUS NTAPI xboxkrnl::IoCreateDevice
XBSYSAPI EXPORTNUM(65) xbox::NTSTATUS NTAPI xbox::IoCreateDevice
(
IN PDRIVER_OBJECT DriverObject,
IN ULONG DeviceExtensionSize,
@ -218,7 +218,7 @@ XBSYSAPI EXPORTNUM(65) xboxkrnl::NTSTATUS NTAPI xboxkrnl::IoCreateDevice
// ******************************************************************
// * 0x0042 - IoCreateFile()
// ******************************************************************
XBSYSAPI EXPORTNUM(66) xboxkrnl::NTSTATUS NTAPI xboxkrnl::IoCreateFile
XBSYSAPI EXPORTNUM(66) xbox::NTSTATUS NTAPI xbox::IoCreateFile
(
OUT PHANDLE FileHandle,
IN ACCESS_MASK DesiredAccess,
@ -303,7 +303,7 @@ XBSYSAPI EXPORTNUM(66) xboxkrnl::NTSTATUS NTAPI xboxkrnl::IoCreateFile
// ******************************************************************
// * 0x0043 - IoCreateSymbolicLink()
// ******************************************************************
XBSYSAPI EXPORTNUM(67) xboxkrnl::NTSTATUS NTAPI xboxkrnl::IoCreateSymbolicLink
XBSYSAPI EXPORTNUM(67) xbox::NTSTATUS NTAPI xbox::IoCreateSymbolicLink
(
IN PSTRING SymbolicLinkName,
IN PSTRING DeviceName
@ -322,7 +322,7 @@ XBSYSAPI EXPORTNUM(67) xboxkrnl::NTSTATUS NTAPI xboxkrnl::IoCreateSymbolicLink
// ******************************************************************
// * 0x0044 - IoDeleteDevice()
// ******************************************************************
XBSYSAPI EXPORTNUM(68) xboxkrnl::VOID NTAPI xboxkrnl::IoDeleteDevice
XBSYSAPI EXPORTNUM(68) xbox::VOID NTAPI xbox::IoDeleteDevice
(
IN PDEVICE_OBJECT Irql
)
@ -335,7 +335,7 @@ XBSYSAPI EXPORTNUM(68) xboxkrnl::VOID NTAPI xboxkrnl::IoDeleteDevice
// ******************************************************************
// * 0x0045 - IoDeleteSymbolicLink()
// ******************************************************************
XBSYSAPI EXPORTNUM(69) xboxkrnl::NTSTATUS NTAPI xboxkrnl::IoDeleteSymbolicLink
XBSYSAPI EXPORTNUM(69) xbox::NTSTATUS NTAPI xbox::IoDeleteSymbolicLink
(
IN PSTRING SymbolicLinkName
)
@ -356,35 +356,35 @@ XBSYSAPI EXPORTNUM(69) xboxkrnl::NTSTATUS NTAPI xboxkrnl::IoDeleteSymbolicLink
// ******************************************************************
// * 0x0046 - IoDeviceObjectType
// ******************************************************************
XBSYSAPI EXPORTNUM(70) xboxkrnl::OBJECT_TYPE xboxkrnl::IoDeviceObjectType =
XBSYSAPI EXPORTNUM(70) xbox::OBJECT_TYPE xbox::IoDeviceObjectType =
{
xboxkrnl::ExAllocatePoolWithTag,
xboxkrnl::ExFreePool,
xbox::ExAllocatePoolWithTag,
xbox::ExFreePool,
NULL,
NULL,
NULL, // TODO : xboxkrnl::IoParseDevice,
NULL, // TODO : &xboxkrnl::ObpDefaultObject,
NULL, // TODO : xbox::IoParseDevice,
NULL, // TODO : &xbox::ObpDefaultObject,
'iveD' // = first four characters of "Device" in reverse
};
// ******************************************************************
// * 0x0047 - IoFileObjectType
// ******************************************************************
XBSYSAPI EXPORTNUM(71) xboxkrnl::OBJECT_TYPE xboxkrnl::IoFileObjectType =
XBSYSAPI EXPORTNUM(71) xbox::OBJECT_TYPE xbox::IoFileObjectType =
{
xboxkrnl::ExAllocatePoolWithTag,
xboxkrnl::ExFreePool,
NULL, // TODO : xboxkrnl::IopCloseFile,
NULL, // TODO : xboxkrnl::IopDeleteFile,
NULL, // TODO : xboxkrnl::IopParseFile,
(PVOID)offsetof(xboxkrnl::FILE_OBJECT, Event.Header),
xbox::ExAllocatePoolWithTag,
xbox::ExFreePool,
NULL, // TODO : xbox::IopCloseFile,
NULL, // TODO : xbox::IopDeleteFile,
NULL, // TODO : xbox::IopParseFile,
(PVOID)offsetof(xbox::FILE_OBJECT, Event.Header),
'eliF' // = "File" in reverse
};
// ******************************************************************
// * 0x0048 - IoFreeIrp()
// ******************************************************************
XBSYSAPI EXPORTNUM(72) xboxkrnl::VOID NTAPI xboxkrnl::IoFreeIrp
XBSYSAPI EXPORTNUM(72) xbox::VOID NTAPI xbox::IoFreeIrp
(
IN PIRP Irp
)
@ -397,7 +397,7 @@ XBSYSAPI EXPORTNUM(72) xboxkrnl::VOID NTAPI xboxkrnl::IoFreeIrp
// ******************************************************************
// * 0x0049 - IoInitializeIrp()
// ******************************************************************
XBSYSAPI EXPORTNUM(73) xboxkrnl::PVOID NTAPI xboxkrnl::IoInitializeIrp
XBSYSAPI EXPORTNUM(73) xbox::PVOID NTAPI xbox::IoInitializeIrp
(
IN PIRP Irp,
IN USHORT PacketSize,
@ -410,7 +410,7 @@ XBSYSAPI EXPORTNUM(73) xboxkrnl::PVOID NTAPI xboxkrnl::IoInitializeIrp
LOG_FUNC_ARG(StackSize)
LOG_FUNC_END;
xboxkrnl::PVOID ret = nullptr;
xbox::PVOID ret = nullptr;
LOG_UNIMPLEMENTED();
@ -420,7 +420,7 @@ XBSYSAPI EXPORTNUM(73) xboxkrnl::PVOID NTAPI xboxkrnl::IoInitializeIrp
// ******************************************************************
// * 0x004A - IoInvalidDeviceRequest()
// ******************************************************************
XBSYSAPI EXPORTNUM(74) xboxkrnl::NTSTATUS NTAPI xboxkrnl::IoInvalidDeviceRequest
XBSYSAPI EXPORTNUM(74) xbox::NTSTATUS NTAPI xbox::IoInvalidDeviceRequest
(
IN PDEVICE_OBJECT DeviceObject,
IN PIRP Irp
@ -439,7 +439,7 @@ XBSYSAPI EXPORTNUM(74) xboxkrnl::NTSTATUS NTAPI xboxkrnl::IoInvalidDeviceRequest
// ******************************************************************
// * 0x004B - IoQueryFileInformation()
// ******************************************************************
XBSYSAPI EXPORTNUM(75) xboxkrnl::NTSTATUS NTAPI xboxkrnl::IoQueryFileInformation
XBSYSAPI EXPORTNUM(75) xbox::NTSTATUS NTAPI xbox::IoQueryFileInformation
(
IN PFILE_OBJECT FileObject,
IN FILE_INFORMATION_CLASS FileInformationClass,
@ -465,7 +465,7 @@ XBSYSAPI EXPORTNUM(75) xboxkrnl::NTSTATUS NTAPI xboxkrnl::IoQueryFileInformation
// ******************************************************************
// * 0x004C - IoQueryVolumeInformation()
// ******************************************************************
XBSYSAPI EXPORTNUM(76) xboxkrnl::NTSTATUS NTAPI xboxkrnl::IoQueryVolumeInformation
XBSYSAPI EXPORTNUM(76) xbox::NTSTATUS NTAPI xbox::IoQueryVolumeInformation
(
IN PFILE_OBJECT FileObject,
IN FS_INFORMATION_CLASS FsInformationClass,
@ -492,7 +492,7 @@ XBSYSAPI EXPORTNUM(76) xboxkrnl::NTSTATUS NTAPI xboxkrnl::IoQueryVolumeInformati
// ******************************************************************
// * 0x004D - IoQueueThreadIrp()
// ******************************************************************
XBSYSAPI EXPORTNUM(77) xboxkrnl::VOID NTAPI xboxkrnl::IoQueueThreadIrp
XBSYSAPI EXPORTNUM(77) xbox::VOID NTAPI xbox::IoQueueThreadIrp
(
IN PIRP Irp
)
@ -505,7 +505,7 @@ XBSYSAPI EXPORTNUM(77) xboxkrnl::VOID NTAPI xboxkrnl::IoQueueThreadIrp
// ******************************************************************
// * 0x004E - IoRemoveShareAccess()
// ******************************************************************
XBSYSAPI EXPORTNUM(78) xboxkrnl::VOID NTAPI xboxkrnl::IoRemoveShareAccess
XBSYSAPI EXPORTNUM(78) xbox::VOID NTAPI xbox::IoRemoveShareAccess
(
IN PFILE_OBJECT FileObject,
IN PSHARE_ACCESS ShareAccess
@ -522,7 +522,7 @@ XBSYSAPI EXPORTNUM(78) xboxkrnl::VOID NTAPI xboxkrnl::IoRemoveShareAccess
// ******************************************************************
// * 0x004F - IoSetIoCompletion()
// ******************************************************************
XBSYSAPI EXPORTNUM(79) xboxkrnl::NTSTATUS NTAPI xboxkrnl::IoSetIoCompletion
XBSYSAPI EXPORTNUM(79) xbox::NTSTATUS NTAPI xbox::IoSetIoCompletion
(
IN PKQUEUE IoCompletion,
IN PVOID KeyContext,
@ -547,7 +547,7 @@ XBSYSAPI EXPORTNUM(79) xboxkrnl::NTSTATUS NTAPI xboxkrnl::IoSetIoCompletion
// ******************************************************************
// * 0x0050 - IoSetShareAccess()
// ******************************************************************
XBSYSAPI EXPORTNUM(80) xboxkrnl::CCHAR NTAPI xboxkrnl::IoSetShareAccess
XBSYSAPI EXPORTNUM(80) xbox::CCHAR NTAPI xbox::IoSetShareAccess
(
IN ULONG DesiredAccess,
IN ULONG DesiredShareAccess,
@ -562,7 +562,7 @@ XBSYSAPI EXPORTNUM(80) xboxkrnl::CCHAR NTAPI xboxkrnl::IoSetShareAccess
LOG_FUNC_ARG_OUT(ShareAccess)
LOG_FUNC_END;
xboxkrnl::CCHAR ret = 0; // ShareAccess->OpenCount;
xbox::CCHAR ret = 0; // ShareAccess->OpenCount;
LOG_UNIMPLEMENTED();
@ -572,7 +572,7 @@ XBSYSAPI EXPORTNUM(80) xboxkrnl::CCHAR NTAPI xboxkrnl::IoSetShareAccess
// ******************************************************************
// * 0x0051 - IoStartNextPacket()
// ******************************************************************
XBSYSAPI EXPORTNUM(81) xboxkrnl::VOID NTAPI xboxkrnl::IoStartNextPacket
XBSYSAPI EXPORTNUM(81) xbox::VOID NTAPI xbox::IoStartNextPacket
(
IN PDEVICE_OBJECT DeviceObject
)
@ -585,7 +585,7 @@ XBSYSAPI EXPORTNUM(81) xboxkrnl::VOID NTAPI xboxkrnl::IoStartNextPacket
// ******************************************************************
// * 0x0052 - IoStartNextPacketByKey()
// ******************************************************************
XBSYSAPI EXPORTNUM(82) xboxkrnl::VOID NTAPI xboxkrnl::IoStartNextPacketByKey
XBSYSAPI EXPORTNUM(82) xbox::VOID NTAPI xbox::IoStartNextPacketByKey
(
IN PDEVICE_OBJECT DeviceObject,
IN ULONG Key
@ -602,7 +602,7 @@ XBSYSAPI EXPORTNUM(82) xboxkrnl::VOID NTAPI xboxkrnl::IoStartNextPacketByKey
// ******************************************************************
// * 0x0053 - IoStartPacket()
// ******************************************************************
XBSYSAPI EXPORTNUM(83) xboxkrnl::VOID NTAPI xboxkrnl::IoStartPacket
XBSYSAPI EXPORTNUM(83) xbox::VOID NTAPI xbox::IoStartPacket
(
IN PDEVICE_OBJECT DeviceObject,
IN PIRP Irp,
@ -626,7 +626,7 @@ XBSYSAPI EXPORTNUM(83) xboxkrnl::VOID NTAPI xboxkrnl::IoStartPacket
// blocking IOCTL on the specified device.
//
// New to the XBOX.
XBSYSAPI EXPORTNUM(84) xboxkrnl::NTSTATUS NTAPI xboxkrnl::IoSynchronousDeviceIoControlRequest
XBSYSAPI EXPORTNUM(84) xbox::NTSTATUS NTAPI xbox::IoSynchronousDeviceIoControlRequest
(
IN ULONG IoControlCode,
IN PDEVICE_OBJECT DeviceObject,
@ -657,7 +657,7 @@ XBSYSAPI EXPORTNUM(84) xboxkrnl::NTSTATUS NTAPI xboxkrnl::IoSynchronousDeviceIoC
// ******************************************************************
// * 0x0055 - IoSynchronousFsdRequest()
// ******************************************************************
XBSYSAPI EXPORTNUM(85) xboxkrnl::NTSTATUS NTAPI xboxkrnl::IoSynchronousFsdRequest
XBSYSAPI EXPORTNUM(85) xbox::NTSTATUS NTAPI xbox::IoSynchronousFsdRequest
(
IN ULONG MajorFunction,
IN PDEVICE_OBJECT DeviceObject,
@ -682,7 +682,7 @@ XBSYSAPI EXPORTNUM(85) xboxkrnl::NTSTATUS NTAPI xboxkrnl::IoSynchronousFsdReques
// ******************************************************************
// * 0x0056 - IofCallDriver()
// ******************************************************************
XBSYSAPI EXPORTNUM(86) xboxkrnl::NTSTATUS FASTCALL xboxkrnl::IofCallDriver
XBSYSAPI EXPORTNUM(86) xbox::NTSTATUS FASTCALL xbox::IofCallDriver
(
IN PDEVICE_OBJECT DeviceObject,
IN PIRP Irp
@ -701,7 +701,7 @@ XBSYSAPI EXPORTNUM(86) xboxkrnl::NTSTATUS FASTCALL xboxkrnl::IofCallDriver
// ******************************************************************
// * 0x0057 - IofCompleteRequest()
// ******************************************************************
XBSYSAPI EXPORTNUM(87) xboxkrnl::VOID FASTCALL xboxkrnl::IofCompleteRequest
XBSYSAPI EXPORTNUM(87) xbox::VOID FASTCALL xbox::IofCompleteRequest
(
IN PIRP Irp,
IN CCHAR PriorityBoost
@ -718,7 +718,7 @@ XBSYSAPI EXPORTNUM(87) xboxkrnl::VOID FASTCALL xboxkrnl::IofCompleteRequest
// ******************************************************************
// * 0x005A - IoDismountVolume()
// ******************************************************************
XBSYSAPI EXPORTNUM(90) xboxkrnl::NTSTATUS NTAPI xboxkrnl::IoDismountVolume
XBSYSAPI EXPORTNUM(90) xbox::NTSTATUS NTAPI xbox::IoDismountVolume
(
IN PDEVICE_OBJECT DeviceObject
)
@ -735,7 +735,7 @@ XBSYSAPI EXPORTNUM(90) xboxkrnl::NTSTATUS NTAPI xboxkrnl::IoDismountVolume
// ******************************************************************
// * 0x005B - IoDismountVolumeByName()
// ******************************************************************
XBSYSAPI EXPORTNUM(91) xboxkrnl::NTSTATUS NTAPI xboxkrnl::IoDismountVolumeByName
XBSYSAPI EXPORTNUM(91) xbox::NTSTATUS NTAPI xbox::IoDismountVolumeByName
(
IN PSTRING VolumeName
)
@ -753,14 +753,14 @@ XBSYSAPI EXPORTNUM(91) xboxkrnl::NTSTATUS NTAPI xboxkrnl::IoDismountVolumeByName
// ******************************************************************
// * 0x0167 - IoMarkIrpMustComplete()
// ******************************************************************
XBSYSAPI EXPORTNUM(359) xboxkrnl::CCHAR NTAPI xboxkrnl::IoMarkIrpMustComplete
XBSYSAPI EXPORTNUM(359) xbox::CCHAR NTAPI xbox::IoMarkIrpMustComplete
(
IN PIRP Irp
)
{
LOG_FUNC_ONE_ARG(Irp);
xboxkrnl::CCHAR ret = 0; // ShareAccess->OpenCount;
xbox::CCHAR ret = 0; // ShareAccess->OpenCount;
LOG_UNIMPLEMENTED();

View File

@ -35,10 +35,10 @@
// ******************************************************************
// * 0x0058 - KdDebuggerEnabled
// ******************************************************************
XBSYSAPI EXPORTNUM(88) xboxkrnl::BOOLEAN xboxkrnl::KdDebuggerEnabled = false;
XBSYSAPI EXPORTNUM(88) xbox::BOOLEAN xbox::KdDebuggerEnabled = false;
// ******************************************************************
// * 0x0059 - KdDebuggerNotPresent
// ******************************************************************
// Source:ReactOS
XBSYSAPI EXPORTNUM(89) xboxkrnl::BOOLEAN xboxkrnl::KdDebuggerNotPresent = true;
XBSYSAPI EXPORTNUM(89) xbox::BOOLEAN xbox::KdDebuggerNotPresent = true;

View File

@ -93,12 +93,12 @@ namespace NtDll
typedef struct _DpcData {
CRITICAL_SECTION Lock;
HANDLE DpcEvent;
xboxkrnl::LIST_ENTRY DpcQueue; // TODO : Use KeGetCurrentPrcb()->DpcListHead instead
xbox::LIST_ENTRY DpcQueue; // TODO : Use KeGetCurrentPrcb()->DpcListHead instead
} DpcData;
DpcData g_DpcData = { 0 }; // Note : g_DpcData is initialized in InitDpcThread()
xboxkrnl::ULONGLONG LARGE_INTEGER2ULONGLONG(xboxkrnl::LARGE_INTEGER value)
xbox::ULONGLONG LARGE_INTEGER2ULONGLONG(xbox::LARGE_INTEGER value)
{
// Weird construction because there doesn't seem to exist an implicit
// conversion of LARGE_INTEGER to ULONGLONG :
@ -132,18 +132,18 @@ xboxkrnl::ULONGLONG LARGE_INTEGER2ULONGLONG(xboxkrnl::LARGE_INTEGER value)
// * NOTE: This is a macro on the Xbox, however we implement it
// * as a function so it can suit our emulated KPCR structure
// ******************************************************************
xboxkrnl::KPCR* WINAPI KeGetPcr()
xbox::KPCR* WINAPI KeGetPcr()
{
xboxkrnl::PKPCR Pcr;
xbox::PKPCR Pcr;
// See EmuKeSetPcr()
Pcr = (xboxkrnl::PKPCR)__readfsdword(TIB_ArbitraryDataSlot);
Pcr = (xbox::PKPCR)__readfsdword(TIB_ArbitraryDataSlot);
if (Pcr == nullptr) {
EmuLog(LOG_LEVEL::WARNING, "KeGetPCR returned nullptr: Was this called from a non-xbox thread?");
// Attempt to salvage the situation by calling InitXboxThread to setup KPCR in place
InitXboxThread(g_CPUXbox);
Pcr = (xboxkrnl::PKPCR)__readfsdword(TIB_ArbitraryDataSlot);
Pcr = (xbox::PKPCR)__readfsdword(TIB_ArbitraryDataSlot);
}
return Pcr;
@ -152,7 +152,7 @@ xboxkrnl::KPCR* WINAPI KeGetPcr()
// ******************************************************************
// * KeGetCurrentPrcb()
// ******************************************************************
xboxkrnl::KPRCB *KeGetCurrentPrcb()
xbox::KPRCB *KeGetCurrentPrcb()
{
return &(KeGetPcr()->PrcbData);
}
@ -160,10 +160,10 @@ xboxkrnl::KPRCB *KeGetCurrentPrcb()
// ******************************************************************
// * KeSetSystemTime()
// ******************************************************************
xboxkrnl::VOID NTAPI xboxkrnl::KeSetSystemTime
xbox::VOID NTAPI xbox::KeSetSystemTime
(
IN xboxkrnl::PLARGE_INTEGER NewTime,
OUT xboxkrnl::PLARGE_INTEGER OldTime
IN xbox::PLARGE_INTEGER NewTime,
OUT xbox::PLARGE_INTEGER OldTime
)
{
KIRQL OldIrql, OldIrql2;
@ -254,7 +254,7 @@ xboxkrnl::VOID NTAPI xboxkrnl::KeSetSystemTime
// ******************************************************************
// * KeInitializeTimer()
// ******************************************************************
xboxkrnl::VOID NTAPI xboxkrnl::KeInitializeTimer
xbox::VOID NTAPI xbox::KeInitializeTimer
(
IN PKTIMER Timer
)
@ -274,7 +274,7 @@ xboxkrnl::VOID NTAPI xboxkrnl::KeInitializeTimer
void ExecuteDpcQueue()
{
xboxkrnl::PKDPC pkdpc;
xbox::PKDPC pkdpc;
// While we're working with the DpcQueue, we need to be thread-safe :
EnterCriticalSection(&(g_DpcData.Lock));
@ -291,7 +291,7 @@ void ExecuteDpcQueue()
while (!IsListEmpty(&(g_DpcData.DpcQueue)))
{
// Extract the head entry and retrieve the containing KDPC pointer for it:
pkdpc = CONTAINING_RECORD(RemoveHeadList(&(g_DpcData.DpcQueue)), xboxkrnl::KDPC, DpcListEntry);
pkdpc = CONTAINING_RECORD(RemoveHeadList(&(g_DpcData.DpcQueue)), xbox::KDPC, DpcListEntry);
// Mark it as no longer linked into the DpcQueue
pkdpc->Inserted = FALSE;
// Set DpcRoutineActive to support KeIsExecutingDpc:
@ -371,7 +371,7 @@ void CxbxInitPerformanceCounters()
// * 0x005C - KeAlertResumeThread()
// ******************************************************************
// Source:Dxbx
XBSYSAPI EXPORTNUM(92) xboxkrnl::NTSTATUS NTAPI xboxkrnl::KeAlertResumeThread
XBSYSAPI EXPORTNUM(92) xbox::NTSTATUS NTAPI xbox::KeAlertResumeThread
(
IN HANDLE ThreadHandle,
IN OUT PULONG PreviousSuspendCount
@ -392,7 +392,7 @@ XBSYSAPI EXPORTNUM(92) xboxkrnl::NTSTATUS NTAPI xboxkrnl::KeAlertResumeThread
// * 0x005D - KeAlertThread()
// ******************************************************************
// Source:Dxbx
XBSYSAPI EXPORTNUM(93) xboxkrnl::NTSTATUS NTAPI xboxkrnl::KeAlertThread
XBSYSAPI EXPORTNUM(93) xbox::NTSTATUS NTAPI xbox::KeAlertThread
(
IN HANDLE ThreadHandle
)
@ -409,7 +409,7 @@ XBSYSAPI EXPORTNUM(93) xboxkrnl::NTSTATUS NTAPI xboxkrnl::KeAlertThread
// * 0x005E - KeBoostPriorityThread()
// ******************************************************************
// Source:Dxbx
XBSYSAPI EXPORTNUM(94) xboxkrnl::NTSTATUS NTAPI xboxkrnl::KeBoostPriorityThread
XBSYSAPI EXPORTNUM(94) xbox::NTSTATUS NTAPI xbox::KeBoostPriorityThread
(
IN PKTHREAD Thread,
IN KPRIORITY Increment
@ -429,7 +429,7 @@ XBSYSAPI EXPORTNUM(94) xboxkrnl::NTSTATUS NTAPI xboxkrnl::KeBoostPriorityThread
// ******************************************************************
// * 0x005F - KeBugCheck()
// ******************************************************************
XBSYSAPI EXPORTNUM(95) xboxkrnl::VOID NTAPI xboxkrnl::KeBugCheck
XBSYSAPI EXPORTNUM(95) xbox::VOID NTAPI xbox::KeBugCheck
(
IN ULONG BugCheckMode
)
@ -443,7 +443,7 @@ XBSYSAPI EXPORTNUM(95) xboxkrnl::VOID NTAPI xboxkrnl::KeBugCheck
// * 0x0060 - KeBugCheckEx()
// ******************************************************************
// Source:Dxbx
XBSYSAPI EXPORTNUM(96) xboxkrnl::NTSTATUS NTAPI xboxkrnl::KeBugCheckEx
XBSYSAPI EXPORTNUM(96) xbox::NTSTATUS NTAPI xbox::KeBugCheckEx
(
IN DWORD BugCheckCode,
IN PVOID BugCheckParameter1,
@ -491,7 +491,7 @@ XBSYSAPI EXPORTNUM(96) xboxkrnl::NTSTATUS NTAPI xboxkrnl::KeBugCheckEx
// ******************************************************************
// * 0x0061 - KeCancelTimer()
// ******************************************************************
XBSYSAPI EXPORTNUM(96) xboxkrnl::BOOLEAN NTAPI xboxkrnl::KeCancelTimer
XBSYSAPI EXPORTNUM(96) xbox::BOOLEAN NTAPI xbox::KeCancelTimer
(
IN PKTIMER Timer
)
@ -521,12 +521,12 @@ XBSYSAPI EXPORTNUM(96) xboxkrnl::BOOLEAN NTAPI xboxkrnl::KeCancelTimer
RETURN(Inserted);
}
xboxkrnl::PKINTERRUPT EmuInterruptList[MAX_BUS_INTERRUPT_LEVEL + 1] = { 0 };
xbox::PKINTERRUPT EmuInterruptList[MAX_BUS_INTERRUPT_LEVEL + 1] = { 0 };
// ******************************************************************
// * 0x0062 - KeConnectInterrupt()
// ******************************************************************
XBSYSAPI EXPORTNUM(98) xboxkrnl::BOOLEAN NTAPI xboxkrnl::KeConnectInterrupt
XBSYSAPI EXPORTNUM(98) xbox::BOOLEAN NTAPI xbox::KeConnectInterrupt
(
IN PKINTERRUPT InterruptObject
)
@ -560,7 +560,7 @@ XBSYSAPI EXPORTNUM(98) xboxkrnl::BOOLEAN NTAPI xboxkrnl::KeConnectInterrupt
// ******************************************************************
// * 0x0063 - KeDelayExecutionThread()
// ******************************************************************
XBSYSAPI EXPORTNUM(99) xboxkrnl::NTSTATUS NTAPI xboxkrnl::KeDelayExecutionThread
XBSYSAPI EXPORTNUM(99) xbox::NTSTATUS NTAPI xbox::KeDelayExecutionThread
(
IN KPROCESSOR_MODE WaitMode,
IN BOOLEAN Alertable,
@ -581,7 +581,7 @@ XBSYSAPI EXPORTNUM(99) xboxkrnl::NTSTATUS NTAPI xboxkrnl::KeDelayExecutionThread
// ******************************************************************
// * 0x0064 - KeDisconnectInterrupt()
// ******************************************************************
XBSYSAPI EXPORTNUM(100) xboxkrnl::VOID NTAPI xboxkrnl::KeDisconnectInterrupt
XBSYSAPI EXPORTNUM(100) xbox::VOID NTAPI xbox::KeDisconnectInterrupt
(
IN PKINTERRUPT InterruptObject
)
@ -606,7 +606,7 @@ XBSYSAPI EXPORTNUM(100) xboxkrnl::VOID NTAPI xboxkrnl::KeDisconnectInterrupt
// ******************************************************************
// * 0x0065 - KeEnterCriticalRegion()
// ******************************************************************
XBSYSAPI EXPORTNUM(101) xboxkrnl::VOID NTAPI xboxkrnl::KeEnterCriticalRegion
XBSYSAPI EXPORTNUM(101) xbox::VOID NTAPI xbox::KeEnterCriticalRegion
(
VOID
)
@ -619,7 +619,7 @@ XBSYSAPI EXPORTNUM(101) xboxkrnl::VOID NTAPI xboxkrnl::KeEnterCriticalRegion
// ******************************************************************
// * 0x0067 - KeGetCurrentIrql()
// ******************************************************************
XBSYSAPI EXPORTNUM(103) xboxkrnl::KIRQL NTAPI xboxkrnl::KeGetCurrentIrql(void)
XBSYSAPI EXPORTNUM(103) xbox::KIRQL NTAPI xbox::KeGetCurrentIrql(void)
{
LOG_FUNC(); // TODO : Remove nested logging on this somehow, so we can call this (instead of inlining)
@ -632,7 +632,7 @@ XBSYSAPI EXPORTNUM(103) xboxkrnl::KIRQL NTAPI xboxkrnl::KeGetCurrentIrql(void)
// ******************************************************************
// * 0x0068 - KeGetCurrentThread()
// ******************************************************************
XBSYSAPI EXPORTNUM(104) xboxkrnl::PKTHREAD NTAPI xboxkrnl::KeGetCurrentThread(void)
XBSYSAPI EXPORTNUM(104) xbox::PKTHREAD NTAPI xbox::KeGetCurrentThread(void)
{
LOG_FUNC();
@ -646,7 +646,7 @@ XBSYSAPI EXPORTNUM(104) xboxkrnl::PKTHREAD NTAPI xboxkrnl::KeGetCurrentThread(vo
// ******************************************************************
// * 0x0069 - KeInitializeApc()
// ******************************************************************
XBSYSAPI EXPORTNUM(105) xboxkrnl::VOID NTAPI xboxkrnl::KeInitializeApc
XBSYSAPI EXPORTNUM(105) xbox::VOID NTAPI xbox::KeInitializeApc
(
IN PKAPC Apc,
IN PKTHREAD Thread,
@ -685,7 +685,7 @@ XBSYSAPI EXPORTNUM(105) xboxkrnl::VOID NTAPI xboxkrnl::KeInitializeApc
// ******************************************************************
// * 0x006A - KeInitializeDeviceQueue()
// ******************************************************************
XBSYSAPI EXPORTNUM(106) xboxkrnl::VOID NTAPI xboxkrnl::KeInitializeDeviceQueue
XBSYSAPI EXPORTNUM(106) xbox::VOID NTAPI xbox::KeInitializeDeviceQueue
(
OUT PKDEVICE_QUEUE DeviceQueue
)
@ -702,7 +702,7 @@ XBSYSAPI EXPORTNUM(106) xboxkrnl::VOID NTAPI xboxkrnl::KeInitializeDeviceQueue
// ******************************************************************
// * 0x006B - KeInitializeDpc()
// ******************************************************************
XBSYSAPI EXPORTNUM(107) xboxkrnl::VOID NTAPI xboxkrnl::KeInitializeDpc
XBSYSAPI EXPORTNUM(107) xbox::VOID NTAPI xbox::KeInitializeDpc
(
KDPC *Dpc,
PKDEFERRED_ROUTINE DeferredRoutine,
@ -725,7 +725,7 @@ XBSYSAPI EXPORTNUM(107) xboxkrnl::VOID NTAPI xboxkrnl::KeInitializeDpc
// ******************************************************************
// * 0x006C - KeInitializeEvent()
// ******************************************************************
XBSYSAPI EXPORTNUM(108) xboxkrnl::VOID NTAPI xboxkrnl::KeInitializeEvent
XBSYSAPI EXPORTNUM(108) xbox::VOID NTAPI xbox::KeInitializeEvent
(
IN PRKEVENT Event,
IN EVENT_TYPE Type,
@ -756,7 +756,7 @@ XBSYSAPI EXPORTNUM(108) xboxkrnl::VOID NTAPI xboxkrnl::KeInitializeEvent
// ******************************************************************
// * 0x006D - KeInitializeInterrupt()
// ******************************************************************
XBSYSAPI EXPORTNUM(109) xboxkrnl::VOID NTAPI xboxkrnl::KeInitializeInterrupt
XBSYSAPI EXPORTNUM(109) xbox::VOID NTAPI xbox::KeInitializeInterrupt
(
OUT PKINTERRUPT Interrupt,
IN PKSERVICE_ROUTINE ServiceRoutine,
@ -795,7 +795,7 @@ XBSYSAPI EXPORTNUM(109) xboxkrnl::VOID NTAPI xboxkrnl::KeInitializeInterrupt
// ******************************************************************
// * 0x006E - KeInitializeMutant()
// ******************************************************************
XBSYSAPI EXPORTNUM(110) xboxkrnl::VOID NTAPI xboxkrnl::KeInitializeMutant
XBSYSAPI EXPORTNUM(110) xbox::VOID NTAPI xbox::KeInitializeMutant
(
IN PRKMUTANT Mutant,
IN BOOLEAN InitialOwner
@ -834,7 +834,7 @@ XBSYSAPI EXPORTNUM(110) xboxkrnl::VOID NTAPI xboxkrnl::KeInitializeMutant
// ******************************************************************
// * 0x006F - KeInitializeQueue()
// ******************************************************************
XBSYSAPI EXPORTNUM(111) xboxkrnl::VOID NTAPI xboxkrnl::KeInitializeQueue
XBSYSAPI EXPORTNUM(111) xbox::VOID NTAPI xbox::KeInitializeQueue
(
IN PKQUEUE Queue,
IN ULONG Count OPTIONAL
@ -860,7 +860,7 @@ XBSYSAPI EXPORTNUM(111) xboxkrnl::VOID NTAPI xboxkrnl::KeInitializeQueue
// ******************************************************************
// * 0x0070 - KeInitializeSemaphore()
// ******************************************************************
XBSYSAPI EXPORTNUM(112) xboxkrnl::VOID NTAPI xboxkrnl::KeInitializeSemaphore
XBSYSAPI EXPORTNUM(112) xbox::VOID NTAPI xbox::KeInitializeSemaphore
(
IN PRKSEMAPHORE Semaphore,
IN LONG Count,
@ -885,7 +885,7 @@ XBSYSAPI EXPORTNUM(112) xboxkrnl::VOID NTAPI xboxkrnl::KeInitializeSemaphore
// ******************************************************************
// * 0x0071 - KeInitializeTimerEx()
// ******************************************************************
XBSYSAPI EXPORTNUM(113) xboxkrnl::VOID NTAPI xboxkrnl::KeInitializeTimerEx
XBSYSAPI EXPORTNUM(113) xbox::VOID NTAPI xbox::KeInitializeTimerEx
(
IN PKTIMER Timer,
IN TIMER_TYPE Type
@ -911,7 +911,7 @@ XBSYSAPI EXPORTNUM(113) xboxkrnl::VOID NTAPI xboxkrnl::KeInitializeTimerEx
Timer->Period = 0;
}
XBSYSAPI EXPORTNUM(114) xboxkrnl::BOOLEAN NTAPI xboxkrnl::KeInsertByKeyDeviceQueue
XBSYSAPI EXPORTNUM(114) xbox::BOOLEAN NTAPI xbox::KeInsertByKeyDeviceQueue
(
IN PKDEVICE_QUEUE DeviceQueue,
IN PKDEVICE_QUEUE_ENTRY DeviceQueueEntry,
@ -959,7 +959,7 @@ XBSYSAPI EXPORTNUM(114) xboxkrnl::BOOLEAN NTAPI xboxkrnl::KeInsertByKeyDeviceQue
// * This implementation is inspired by ReactOS source code
// * Ref: https://github.com/reactos/reactos/blob/master/ntoskrnl/ke/devqueue.c
// ******************************************************************
XBSYSAPI EXPORTNUM(115) xboxkrnl::BOOLEAN NTAPI xboxkrnl::KeInsertDeviceQueue
XBSYSAPI EXPORTNUM(115) xbox::BOOLEAN NTAPI xbox::KeInsertDeviceQueue
(
IN PKDEVICE_QUEUE DeviceQueue,
IN PKDEVICE_QUEUE_ENTRY DeviceQueueEntry
@ -989,7 +989,7 @@ XBSYSAPI EXPORTNUM(115) xboxkrnl::BOOLEAN NTAPI xboxkrnl::KeInsertDeviceQueue
RETURN(Res);
}
XBSYSAPI EXPORTNUM(116) xboxkrnl::LONG NTAPI xboxkrnl::KeInsertHeadQueue
XBSYSAPI EXPORTNUM(116) xbox::LONG NTAPI xbox::KeInsertHeadQueue
(
IN PRKQUEUE Queue,
IN PLIST_ENTRY Entry
@ -1005,7 +1005,7 @@ XBSYSAPI EXPORTNUM(116) xboxkrnl::LONG NTAPI xboxkrnl::KeInsertHeadQueue
RETURN(0);
}
XBSYSAPI EXPORTNUM(117) xboxkrnl::LONG NTAPI xboxkrnl::KeInsertQueue
XBSYSAPI EXPORTNUM(117) xbox::LONG NTAPI xbox::KeInsertQueue
(
IN PRKQUEUE Queue,
IN PLIST_ENTRY Entry
@ -1021,7 +1021,7 @@ XBSYSAPI EXPORTNUM(117) xboxkrnl::LONG NTAPI xboxkrnl::KeInsertQueue
RETURN(0);
}
XBSYSAPI EXPORTNUM(118) xboxkrnl::BOOLEAN NTAPI xboxkrnl::KeInsertQueueApc
XBSYSAPI EXPORTNUM(118) xbox::BOOLEAN NTAPI xbox::KeInsertQueueApc
(
IN PRKAPC Apc,
IN PVOID SystemArgument1,
@ -1044,7 +1044,7 @@ XBSYSAPI EXPORTNUM(118) xboxkrnl::BOOLEAN NTAPI xboxkrnl::KeInsertQueueApc
// ******************************************************************
// * 0x0077 - KeInsertQueueDpc()
// ******************************************************************
XBSYSAPI EXPORTNUM(119) xboxkrnl::BOOLEAN NTAPI xboxkrnl::KeInsertQueueDpc
XBSYSAPI EXPORTNUM(119) xbox::BOOLEAN NTAPI xbox::KeInsertQueueDpc
(
IN PKDPC Dpc,
IN PVOID SystemArgument1,
@ -1087,7 +1087,7 @@ XBSYSAPI EXPORTNUM(119) xboxkrnl::BOOLEAN NTAPI xboxkrnl::KeInsertQueueDpc
// ******************************************************************
// * 0x0079 - KeIsExecutingDpc()
// ******************************************************************
XBSYSAPI EXPORTNUM(121) xboxkrnl::BOOLEAN NTAPI xboxkrnl::KeIsExecutingDpc
XBSYSAPI EXPORTNUM(121) xbox::BOOLEAN NTAPI xbox::KeIsExecutingDpc
()
{
LOG_FUNC();
@ -1100,12 +1100,12 @@ XBSYSAPI EXPORTNUM(121) xboxkrnl::BOOLEAN NTAPI xboxkrnl::KeIsExecutingDpc
// ******************************************************************
// * 0x0078 - KeInterruptTime
// ******************************************************************
XBSYSAPI EXPORTNUM(120) xboxkrnl::KSYSTEM_TIME xboxkrnl::KeInterruptTime = { 0, 0, 0 };
XBSYSAPI EXPORTNUM(120) xbox::KSYSTEM_TIME xbox::KeInterruptTime = { 0, 0, 0 };
// ******************************************************************
// * 0x007A - KeLeaveCriticalRegion()
// ******************************************************************
XBSYSAPI EXPORTNUM(122) xboxkrnl::VOID NTAPI xboxkrnl::KeLeaveCriticalRegion
XBSYSAPI EXPORTNUM(122) xbox::VOID NTAPI xbox::KeLeaveCriticalRegion
(
VOID
)
@ -1123,7 +1123,7 @@ XBSYSAPI EXPORTNUM(122) xboxkrnl::VOID NTAPI xboxkrnl::KeLeaveCriticalRegion
}
}
XBSYSAPI EXPORTNUM(123) xboxkrnl::LONG NTAPI xboxkrnl::KePulseEvent
XBSYSAPI EXPORTNUM(123) xbox::LONG NTAPI xbox::KePulseEvent
(
IN PRKEVENT Event,
IN KPRIORITY Increment,
@ -1171,7 +1171,7 @@ XBSYSAPI EXPORTNUM(123) xboxkrnl::LONG NTAPI xboxkrnl::KePulseEvent
RETURN(OldState);
}
XBSYSAPI EXPORTNUM(124) xboxkrnl::LONG NTAPI xboxkrnl::KeQueryBasePriorityThread
XBSYSAPI EXPORTNUM(124) xbox::LONG NTAPI xbox::KeQueryBasePriorityThread
(
IN PKTHREAD Thread
)
@ -1186,7 +1186,7 @@ XBSYSAPI EXPORTNUM(124) xboxkrnl::LONG NTAPI xboxkrnl::KeQueryBasePriorityThread
// ******************************************************************
// * 0x007D - KeQueryInterruptTime()
// ******************************************************************
XBSYSAPI EXPORTNUM(125) xboxkrnl::ULONGLONG NTAPI xboxkrnl::KeQueryInterruptTime(void)
XBSYSAPI EXPORTNUM(125) xbox::ULONGLONG NTAPI xbox::KeQueryInterruptTime(void)
{
// TODO : Some software might call KeQueryInterruptTime often and fill the log quickly,
// in which case we should not LOG_FUNC nor RETURN (use normal return instead).
@ -1218,7 +1218,7 @@ XBSYSAPI EXPORTNUM(125) xboxkrnl::ULONGLONG NTAPI xboxkrnl::KeQueryInterruptTime
// NOTE: The KeQueryPerformance* functions run at the ACPI clock
// The XAPI QueryPerformance* functions run at the TSC clock
// ******************************************************************
XBSYSAPI EXPORTNUM(126) xboxkrnl::ULONGLONG NTAPI xboxkrnl::KeQueryPerformanceCounter(void)
XBSYSAPI EXPORTNUM(126) xbox::ULONGLONG NTAPI xbox::KeQueryPerformanceCounter(void)
{
LOG_FUNC();
ULONGLONG ret;
@ -1229,7 +1229,7 @@ XBSYSAPI EXPORTNUM(126) xboxkrnl::ULONGLONG NTAPI xboxkrnl::KeQueryPerformanceCo
// ******************************************************************
// * 0x007F - KeQueryPerformanceFrequency()
// ******************************************************************
XBSYSAPI EXPORTNUM(127) xboxkrnl::ULONGLONG NTAPI xboxkrnl::KeQueryPerformanceFrequency(void)
XBSYSAPI EXPORTNUM(127) xbox::ULONGLONG NTAPI xbox::KeQueryPerformanceFrequency(void)
{
LOG_FUNC();
ULONGLONG ret = XBOX_ACPI_FREQUENCY;
@ -1239,7 +1239,7 @@ XBSYSAPI EXPORTNUM(127) xboxkrnl::ULONGLONG NTAPI xboxkrnl::KeQueryPerformanceFr
// ******************************************************************
// * 0x0080 - KeQuerySystemTime()
// ******************************************************************
XBSYSAPI EXPORTNUM(128) xboxkrnl::VOID NTAPI xboxkrnl::KeQuerySystemTime
XBSYSAPI EXPORTNUM(128) xbox::VOID NTAPI xbox::KeQuerySystemTime
(
PLARGE_INTEGER CurrentTime
)
@ -1265,7 +1265,7 @@ XBSYSAPI EXPORTNUM(128) xboxkrnl::VOID NTAPI xboxkrnl::KeQuerySystemTime
// ******************************************************************
// * 0x0081 - KeRaiseIrqlToDpcLevel()
// ******************************************************************
XBSYSAPI EXPORTNUM(129) xboxkrnl::UCHAR NTAPI xboxkrnl::KeRaiseIrqlToDpcLevel()
XBSYSAPI EXPORTNUM(129) xbox::UCHAR NTAPI xbox::KeRaiseIrqlToDpcLevel()
{
LOG_FORWARD(KfRaiseIrql);
@ -1275,14 +1275,14 @@ XBSYSAPI EXPORTNUM(129) xboxkrnl::UCHAR NTAPI xboxkrnl::KeRaiseIrqlToDpcLevel()
// ******************************************************************
// * 0x0082 - KeRaiseIrqlToSynchLevel()
// ******************************************************************
XBSYSAPI EXPORTNUM(130) xboxkrnl::UCHAR NTAPI xboxkrnl::KeRaiseIrqlToSynchLevel()
XBSYSAPI EXPORTNUM(130) xbox::UCHAR NTAPI xbox::KeRaiseIrqlToSynchLevel()
{
LOG_FORWARD(KfRaiseIrql);
return KfRaiseIrql(SYNC_LEVEL);
}
XBSYSAPI EXPORTNUM(131) xboxkrnl::LONG NTAPI xboxkrnl::KeReleaseMutant
XBSYSAPI EXPORTNUM(131) xbox::LONG NTAPI xbox::KeReleaseMutant
(
IN PRKMUTANT Mutant,
IN KPRIORITY Increment,
@ -1302,7 +1302,7 @@ XBSYSAPI EXPORTNUM(131) xboxkrnl::LONG NTAPI xboxkrnl::KeReleaseMutant
RETURN(0);
}
XBSYSAPI EXPORTNUM(132) xboxkrnl::LONG NTAPI xboxkrnl::KeReleaseSemaphore
XBSYSAPI EXPORTNUM(132) xbox::LONG NTAPI xbox::KeReleaseSemaphore
(
IN PRKSEMAPHORE Semaphore,
IN KPRIORITY Increment,
@ -1348,7 +1348,7 @@ XBSYSAPI EXPORTNUM(132) xboxkrnl::LONG NTAPI xboxkrnl::KeReleaseSemaphore
RETURN(initial_state);
}
XBSYSAPI EXPORTNUM(133) xboxkrnl::PKDEVICE_QUEUE_ENTRY NTAPI xboxkrnl::KeRemoveByKeyDeviceQueue
XBSYSAPI EXPORTNUM(133) xbox::PKDEVICE_QUEUE_ENTRY NTAPI xbox::KeRemoveByKeyDeviceQueue
(
IN PKDEVICE_QUEUE DeviceQueue,
IN ULONG SortKey
@ -1390,7 +1390,7 @@ XBSYSAPI EXPORTNUM(133) xboxkrnl::PKDEVICE_QUEUE_ENTRY NTAPI xboxkrnl::KeRemoveB
RETURN(pEntry);
}
XBSYSAPI EXPORTNUM(134) xboxkrnl::PKDEVICE_QUEUE_ENTRY NTAPI xboxkrnl::KeRemoveDeviceQueue
XBSYSAPI EXPORTNUM(134) xbox::PKDEVICE_QUEUE_ENTRY NTAPI xbox::KeRemoveDeviceQueue
(
IN PKDEVICE_QUEUE DeviceQueue
)
@ -1416,7 +1416,7 @@ XBSYSAPI EXPORTNUM(134) xboxkrnl::PKDEVICE_QUEUE_ENTRY NTAPI xboxkrnl::KeRemoveD
RETURN(pEntry);
}
XBSYSAPI EXPORTNUM(135) xboxkrnl::BOOLEAN NTAPI xboxkrnl::KeRemoveEntryDeviceQueue
XBSYSAPI EXPORTNUM(135) xbox::BOOLEAN NTAPI xbox::KeRemoveEntryDeviceQueue
(
IN PKDEVICE_QUEUE DeviceQueue,
IN PKDEVICE_QUEUE_ENTRY DeviceQueueEntry
@ -1445,7 +1445,7 @@ XBSYSAPI EXPORTNUM(135) xboxkrnl::BOOLEAN NTAPI xboxkrnl::KeRemoveEntryDeviceQue
}
XBSYSAPI EXPORTNUM(136) xboxkrnl::PLIST_ENTRY NTAPI xboxkrnl::KeRemoveQueue
XBSYSAPI EXPORTNUM(136) xbox::PLIST_ENTRY NTAPI xbox::KeRemoveQueue
(
IN PRKQUEUE Queue,
IN KPROCESSOR_MODE WaitMode,
@ -1466,7 +1466,7 @@ XBSYSAPI EXPORTNUM(136) xboxkrnl::PLIST_ENTRY NTAPI xboxkrnl::KeRemoveQueue
// ******************************************************************
// * 0x0089 - KeRemoveQueueDpc()
// ******************************************************************
XBSYSAPI EXPORTNUM(137) xboxkrnl::BOOLEAN NTAPI xboxkrnl::KeRemoveQueueDpc
XBSYSAPI EXPORTNUM(137) xbox::BOOLEAN NTAPI xbox::KeRemoveQueueDpc
(
IN PKDPC Dpc
)
@ -1495,7 +1495,7 @@ XBSYSAPI EXPORTNUM(137) xboxkrnl::BOOLEAN NTAPI xboxkrnl::KeRemoveQueueDpc
// ******************************************************************
// * 0x008A - KeResetEvent()
// ******************************************************************
XBSYSAPI EXPORTNUM(138) xboxkrnl::LONG NTAPI xboxkrnl::KeResetEvent
XBSYSAPI EXPORTNUM(138) xbox::LONG NTAPI xbox::KeResetEvent
(
IN PRKEVENT Event
)
@ -1524,7 +1524,7 @@ XBSYSAPI EXPORTNUM(138) xboxkrnl::LONG NTAPI xboxkrnl::KeResetEvent
// ******************************************************************
// * 0x008B - KeRestoreFloatingPointState()
// ******************************************************************
XBSYSAPI EXPORTNUM(139) xboxkrnl::NTSTATUS NTAPI xboxkrnl::KeRestoreFloatingPointState
XBSYSAPI EXPORTNUM(139) xbox::NTSTATUS NTAPI xbox::KeRestoreFloatingPointState
(
IN PKFLOATING_SAVE PublicFloatSave
)
@ -1541,7 +1541,7 @@ XBSYSAPI EXPORTNUM(139) xboxkrnl::NTSTATUS NTAPI xboxkrnl::KeRestoreFloatingPoin
// ******************************************************************
// * 0x008C - KeResumeThread()
// ******************************************************************
XBSYSAPI EXPORTNUM(140) xboxkrnl::ULONG NTAPI xboxkrnl::KeResumeThread
XBSYSAPI EXPORTNUM(140) xbox::ULONG NTAPI xbox::KeResumeThread
(
IN PKTHREAD Thread
)
@ -1555,7 +1555,7 @@ XBSYSAPI EXPORTNUM(140) xboxkrnl::ULONG NTAPI xboxkrnl::KeResumeThread
RETURN(ret);
}
XBSYSAPI EXPORTNUM(141) xboxkrnl::PLIST_ENTRY NTAPI xboxkrnl::KeRundownQueue
XBSYSAPI EXPORTNUM(141) xbox::PLIST_ENTRY NTAPI xbox::KeRundownQueue
(
IN PRKQUEUE Queue
)
@ -1570,7 +1570,7 @@ XBSYSAPI EXPORTNUM(141) xboxkrnl::PLIST_ENTRY NTAPI xboxkrnl::KeRundownQueue
// ******************************************************************
// * 0x008E - KeSaveFloatingPointState()
// ******************************************************************
XBSYSAPI EXPORTNUM(142) xboxkrnl::NTSTATUS NTAPI xboxkrnl::KeSaveFloatingPointState
XBSYSAPI EXPORTNUM(142) xbox::NTSTATUS NTAPI xbox::KeSaveFloatingPointState
(
OUT PKFLOATING_SAVE PublicFloatSave
)
@ -1587,7 +1587,7 @@ XBSYSAPI EXPORTNUM(142) xboxkrnl::NTSTATUS NTAPI xboxkrnl::KeSaveFloatingPointSt
// ******************************************************************
// * 0x008F - KeSetBasePriorityThread()
// ******************************************************************
XBSYSAPI EXPORTNUM(143) xboxkrnl::LONG NTAPI xboxkrnl::KeSetBasePriorityThread
XBSYSAPI EXPORTNUM(143) xbox::LONG NTAPI xbox::KeSetBasePriorityThread
(
IN PKTHREAD Thread,
IN LONG Priority
@ -1609,7 +1609,7 @@ XBSYSAPI EXPORTNUM(143) xboxkrnl::LONG NTAPI xboxkrnl::KeSetBasePriorityThread
RETURN(ret);
}
XBSYSAPI EXPORTNUM(144) xboxkrnl::ULONG NTAPI xboxkrnl::KeSetDisableBoostThread
XBSYSAPI EXPORTNUM(144) xbox::ULONG NTAPI xbox::KeSetDisableBoostThread
(
IN PKTHREAD Thread,
IN ULONG Disable
@ -1634,7 +1634,7 @@ XBSYSAPI EXPORTNUM(144) xboxkrnl::ULONG NTAPI xboxkrnl::KeSetDisableBoostThread
// ******************************************************************
// * 0x0091 - KeSetEvent()
// ******************************************************************
XBSYSAPI EXPORTNUM(145) xboxkrnl::LONG NTAPI xboxkrnl::KeSetEvent
XBSYSAPI EXPORTNUM(145) xbox::LONG NTAPI xbox::KeSetEvent
(
IN PRKEVENT Event,
IN KPRIORITY Increment,
@ -1692,7 +1692,7 @@ XBSYSAPI EXPORTNUM(145) xboxkrnl::LONG NTAPI xboxkrnl::KeSetEvent
RETURN(OldState);
}
XBSYSAPI EXPORTNUM(146) xboxkrnl::VOID NTAPI xboxkrnl::KeSetEventBoostPriority
XBSYSAPI EXPORTNUM(146) xbox::VOID NTAPI xbox::KeSetEventBoostPriority
(
IN PRKEVENT Event,
IN PRKTHREAD *Thread
@ -1733,7 +1733,7 @@ XBSYSAPI EXPORTNUM(146) xboxkrnl::VOID NTAPI xboxkrnl::KeSetEventBoostPriority
KiUnlockDispatcherDatabase(OldIrql);
}
XBSYSAPI EXPORTNUM(147) xboxkrnl::KPRIORITY NTAPI xboxkrnl::KeSetPriorityProcess
XBSYSAPI EXPORTNUM(147) xbox::KPRIORITY NTAPI xbox::KeSetPriorityProcess
(
IN PKPROCESS Process,
IN KPRIORITY BasePriority
@ -1753,7 +1753,7 @@ XBSYSAPI EXPORTNUM(147) xboxkrnl::KPRIORITY NTAPI xboxkrnl::KeSetPriorityProcess
// ******************************************************************
// * 0x0094 - KeSetPriorityThread()
// ******************************************************************
XBSYSAPI EXPORTNUM(148) xboxkrnl::BOOLEAN NTAPI xboxkrnl::KeSetPriorityThread
XBSYSAPI EXPORTNUM(148) xbox::BOOLEAN NTAPI xbox::KeSetPriorityThread
(
IN PKTHREAD Thread,
IN LONG Priority
@ -1772,7 +1772,7 @@ XBSYSAPI EXPORTNUM(148) xboxkrnl::BOOLEAN NTAPI xboxkrnl::KeSetPriorityThread
// ******************************************************************
// * 0x0095 - KeSetTimer()
// ******************************************************************
XBSYSAPI EXPORTNUM(149) xboxkrnl::BOOLEAN NTAPI xboxkrnl::KeSetTimer
XBSYSAPI EXPORTNUM(149) xbox::BOOLEAN NTAPI xbox::KeSetTimer
(
IN PKTIMER Timer,
IN LARGE_INTEGER DueTime,
@ -1788,7 +1788,7 @@ XBSYSAPI EXPORTNUM(149) xboxkrnl::BOOLEAN NTAPI xboxkrnl::KeSetTimer
// ******************************************************************
// * 0x0096 - KeSetTimerEx()
// ******************************************************************
XBSYSAPI EXPORTNUM(150) xboxkrnl::BOOLEAN NTAPI xboxkrnl::KeSetTimerEx
XBSYSAPI EXPORTNUM(150) xbox::BOOLEAN NTAPI xbox::KeSetTimerEx
(
IN PKTIMER Timer,
IN LARGE_INTEGER DueTime,
@ -1851,7 +1851,7 @@ XBSYSAPI EXPORTNUM(150) xboxkrnl::BOOLEAN NTAPI xboxkrnl::KeSetTimerEx
// ******************************************************************
// * 0x0097 - KeStallExecutionProcessor()
// ******************************************************************
XBSYSAPI EXPORTNUM(151) xboxkrnl::VOID NTAPI xboxkrnl::KeStallExecutionProcessor
XBSYSAPI EXPORTNUM(151) xbox::VOID NTAPI xbox::KeStallExecutionProcessor
(
IN ULONG MicroSeconds
)
@ -1867,7 +1867,7 @@ XBSYSAPI EXPORTNUM(151) xboxkrnl::VOID NTAPI xboxkrnl::KeStallExecutionProcessor
// ******************************************************************
// * 0x0098 - KeSuspendThread()
// ******************************************************************
XBSYSAPI EXPORTNUM(152) xboxkrnl::ULONG NTAPI xboxkrnl::KeSuspendThread
XBSYSAPI EXPORTNUM(152) xbox::ULONG NTAPI xbox::KeSuspendThread
(
IN PKTHREAD Thread
)
@ -1884,7 +1884,7 @@ XBSYSAPI EXPORTNUM(152) xboxkrnl::ULONG NTAPI xboxkrnl::KeSuspendThread
// ******************************************************************
// * 0x0099 - KeSynchronizeExecution()
// ******************************************************************
XBSYSAPI EXPORTNUM(153) xboxkrnl::BOOLEAN NTAPI xboxkrnl::KeSynchronizeExecution
XBSYSAPI EXPORTNUM(153) xbox::BOOLEAN NTAPI xbox::KeSynchronizeExecution
(
IN PKINTERRUPT Interrupt,
IN PKSYNCHRONIZE_ROUTINE SynchronizeRoutine,
@ -1907,12 +1907,12 @@ XBSYSAPI EXPORTNUM(153) xboxkrnl::BOOLEAN NTAPI xboxkrnl::KeSynchronizeExecution
// ******************************************************************
// * 0x009A - KeSystemTime
// ******************************************************************
XBSYSAPI EXPORTNUM(154) xboxkrnl::KSYSTEM_TIME xboxkrnl::KeSystemTime = { 0, 0, 0 };
XBSYSAPI EXPORTNUM(154) xbox::KSYSTEM_TIME xbox::KeSystemTime = { 0, 0, 0 };
// ******************************************************************
// * 0x009B - KeTestAlertThread()
// ******************************************************************
XBSYSAPI EXPORTNUM(155) xboxkrnl::BOOLEAN NTAPI xboxkrnl::KeTestAlertThread
XBSYSAPI EXPORTNUM(155) xbox::BOOLEAN NTAPI xbox::KeTestAlertThread
(
IN KPROCESSOR_MODE AlertMode
)
@ -1929,18 +1929,18 @@ XBSYSAPI EXPORTNUM(155) xboxkrnl::BOOLEAN NTAPI xboxkrnl::KeTestAlertThread
// ******************************************************************
// * 0x009C - KeTickCount
// ******************************************************************
XBSYSAPI EXPORTNUM(156) xboxkrnl::DWORD VOLATILE xboxkrnl::KeTickCount = 0;
XBSYSAPI EXPORTNUM(156) xbox::DWORD VOLATILE xbox::KeTickCount = 0;
// ******************************************************************
// * 0x009D - KeTimeIncrement
// ******************************************************************
XBSYSAPI EXPORTNUM(157) xboxkrnl::ULONG xboxkrnl::KeTimeIncrement = CLOCK_TIME_INCREMENT;
XBSYSAPI EXPORTNUM(157) xbox::ULONG xbox::KeTimeIncrement = CLOCK_TIME_INCREMENT;
xboxkrnl::PLARGE_INTEGER FASTCALL KiComputeWaitInterval(
IN xboxkrnl::PLARGE_INTEGER OriginalTime,
IN xboxkrnl::PLARGE_INTEGER DueTime,
IN OUT xboxkrnl::PLARGE_INTEGER NewTime
xbox::PLARGE_INTEGER FASTCALL KiComputeWaitInterval(
IN xbox::PLARGE_INTEGER OriginalTime,
IN xbox::PLARGE_INTEGER DueTime,
IN OUT xbox::PLARGE_INTEGER NewTime
)
{
if (OriginalTime->QuadPart >= 0) {
@ -1948,7 +1948,7 @@ xboxkrnl::PLARGE_INTEGER FASTCALL KiComputeWaitInterval(
}
else {
NewTime->QuadPart = xboxkrnl::KeQueryInterruptTime();
NewTime->QuadPart = xbox::KeQueryInterruptTime();
NewTime->QuadPart -= DueTime->QuadPart;
return NewTime;
}
@ -1957,7 +1957,7 @@ xboxkrnl::PLARGE_INTEGER FASTCALL KiComputeWaitInterval(
// ******************************************************************
// * 0x009E - KeWaitForMultipleObjects()
// ******************************************************************
XBSYSAPI EXPORTNUM(158) xboxkrnl::NTSTATUS NTAPI xboxkrnl::KeWaitForMultipleObjects
XBSYSAPI EXPORTNUM(158) xbox::NTSTATUS NTAPI xbox::KeWaitForMultipleObjects
(
IN ULONG Count,
IN PVOID Object[],
@ -2205,7 +2205,7 @@ NoWait:
// ******************************************************************
// * 0x009F - KeWaitForSingleObject()
// ******************************************************************
XBSYSAPI EXPORTNUM(159) xboxkrnl::NTSTATUS NTAPI xboxkrnl::KeWaitForSingleObject
XBSYSAPI EXPORTNUM(159) xbox::NTSTATUS NTAPI xbox::KeWaitForSingleObject
(
IN PVOID Object,
IN KWAIT_REASON WaitReason,

View File

@ -25,7 +25,7 @@
#pragma once
namespace xboxkrnl
namespace xbox
{
VOID NTAPI KeSetSystemTime
(

View File

@ -88,14 +88,14 @@ the said software).
#define ASSERT_TIMER_LOCKED assert(KiTimerMtx.Acquired > 0)
const xboxkrnl::ULONG CLOCK_TIME_INCREMENT = 0x2710;
xboxkrnl::KDPC KiTimerExpireDpc;
xboxkrnl::KI_TIMER_LOCK KiTimerMtx;
xboxkrnl::KTIMER_TABLE_ENTRY KiTimerTableListHead[TIMER_TABLE_SIZE];
xboxkrnl::LIST_ENTRY KiWaitInListHead;
const xbox::ULONG CLOCK_TIME_INCREMENT = 0x2710;
xbox::KDPC KiTimerExpireDpc;
xbox::KI_TIMER_LOCK KiTimerMtx;
xbox::KTIMER_TABLE_ENTRY KiTimerTableListHead[TIMER_TABLE_SIZE];
xbox::LIST_ENTRY KiWaitInListHead;
xboxkrnl::VOID xboxkrnl::KiInitSystem()
xbox::VOID xbox::KiInitSystem()
{
unsigned int i;
@ -112,19 +112,19 @@ xboxkrnl::VOID xboxkrnl::KiInitSystem()
InitializeListHead(&IdexChannelObject.DeviceQueue.DeviceListHead);
}
xboxkrnl::VOID xboxkrnl::KiTimerLock()
xbox::VOID xbox::KiTimerLock()
{
KiTimerMtx.Mtx.lock();
KiTimerMtx.Acquired++;
}
xboxkrnl::VOID xboxkrnl::KiTimerUnlock()
xbox::VOID xbox::KiTimerUnlock()
{
KiTimerMtx.Acquired--;
KiTimerMtx.Mtx.unlock();
}
xboxkrnl::VOID xboxkrnl::KiClockIsr
xbox::VOID xbox::KiClockIsr
(
unsigned int ScalingFactor
)
@ -175,9 +175,9 @@ xboxkrnl::VOID xboxkrnl::KiClockIsr
KfLowerIrql(OldIrql);
}
xboxkrnl::VOID NTAPI xboxkrnl::KiCheckTimerTable
xbox::VOID NTAPI xbox::KiCheckTimerTable
(
IN xboxkrnl::ULARGE_INTEGER CurrentTime
IN xbox::ULARGE_INTEGER CurrentTime
)
{
ULONG i = 0;
@ -217,10 +217,10 @@ xboxkrnl::VOID NTAPI xboxkrnl::KiCheckTimerTable
KfLowerIrql(OldIrql);
}
xboxkrnl::VOID xboxkrnl::KxInsertTimer
xbox::VOID xbox::KxInsertTimer
(
IN xboxkrnl::PKTIMER Timer,
IN xboxkrnl::ULONG Hand
IN xbox::PKTIMER Timer,
IN xbox::ULONG Hand
)
{
ASSERT_TIMER_LOCKED;
@ -233,10 +233,10 @@ xboxkrnl::VOID xboxkrnl::KxInsertTimer
}
}
xboxkrnl::VOID FASTCALL xboxkrnl::KiCompleteTimer
xbox::VOID FASTCALL xbox::KiCompleteTimer
(
IN xboxkrnl::PKTIMER Timer,
IN xboxkrnl::ULONG Hand
IN xbox::PKTIMER Timer,
IN xbox::ULONG Hand
)
{
LIST_ENTRY ListHead;
@ -264,10 +264,10 @@ xboxkrnl::VOID FASTCALL xboxkrnl::KiCompleteTimer
}
}
xboxkrnl::VOID xboxkrnl::KiRemoveEntryTimer
xbox::VOID xbox::KiRemoveEntryTimer
(
IN xboxkrnl::PKTIMER Timer,
IN xboxkrnl::ULONG Hand
IN xbox::PKTIMER Timer,
IN xbox::ULONG Hand
)
{
PKTIMER_TABLE_ENTRY TableEntry;
@ -291,9 +291,9 @@ xboxkrnl::VOID xboxkrnl::KiRemoveEntryTimer
Timer->TimerListEntry.Blink = NULL;
}
xboxkrnl::VOID xboxkrnl::KxRemoveTreeTimer
xbox::VOID xbox::KxRemoveTreeTimer
(
IN xboxkrnl::PKTIMER Timer
IN xbox::PKTIMER Timer
)
{
ULONG Hand = KiComputeTimerTableIndex(Timer->DueTime.QuadPart);
@ -317,10 +317,10 @@ xboxkrnl::VOID xboxkrnl::KxRemoveTreeTimer
}
}
xboxkrnl::BOOLEAN FASTCALL xboxkrnl::KiInsertTimerTable
xbox::BOOLEAN FASTCALL xbox::KiInsertTimerTable
(
IN xboxkrnl::PKTIMER Timer,
IN xboxkrnl::ULONG Hand
IN xbox::PKTIMER Timer,
IN xbox::ULONG Hand
)
{
LARGE_INTEGER InterruptTime;
@ -374,10 +374,10 @@ xboxkrnl::BOOLEAN FASTCALL xboxkrnl::KiInsertTimerTable
return Expired;
}
xboxkrnl::BOOLEAN FASTCALL xboxkrnl::KiInsertTreeTimer
xbox::BOOLEAN FASTCALL xbox::KiInsertTreeTimer
(
IN xboxkrnl::PKTIMER Timer,
IN xboxkrnl::LARGE_INTEGER Interval
IN xbox::PKTIMER Timer,
IN xbox::LARGE_INTEGER Interval
)
{
BOOLEAN Inserted = FALSE;
@ -405,19 +405,19 @@ xboxkrnl::BOOLEAN FASTCALL xboxkrnl::KiInsertTreeTimer
return Inserted;
}
xboxkrnl::ULONG xboxkrnl::KiComputeTimerTableIndex
xbox::ULONG xbox::KiComputeTimerTableIndex
(
IN xboxkrnl::ULONGLONG Interval
IN xbox::ULONGLONG Interval
)
{
return (Interval / CLOCK_TIME_INCREMENT) & (TIMER_TABLE_SIZE - 1);
}
xboxkrnl::BOOLEAN xboxkrnl::KiComputeDueTime
xbox::BOOLEAN xbox::KiComputeDueTime
(
IN xboxkrnl::PKTIMER Timer,
IN xboxkrnl::LARGE_INTEGER DueTime,
OUT xboxkrnl::PULONG Hand)
IN xbox::PKTIMER Timer,
IN xbox::LARGE_INTEGER DueTime,
OUT xbox::PULONG Hand)
{
LARGE_INTEGER InterruptTime, SystemTime, DifferenceTime;
@ -462,9 +462,9 @@ xboxkrnl::BOOLEAN xboxkrnl::KiComputeDueTime
return TRUE;
}
xboxkrnl::BOOLEAN FASTCALL xboxkrnl::KiSignalTimer
xbox::BOOLEAN FASTCALL xbox::KiSignalTimer
(
IN xboxkrnl::PKTIMER Timer
IN xbox::PKTIMER Timer
)
{
BOOLEAN RequestInterrupt = FALSE;
@ -517,12 +517,12 @@ xboxkrnl::BOOLEAN FASTCALL xboxkrnl::KiSignalTimer
return RequestInterrupt;
}
xboxkrnl::VOID NTAPI xboxkrnl::KiTimerExpiration
xbox::VOID NTAPI xbox::KiTimerExpiration
(
IN xboxkrnl::PKDPC Dpc,
IN xboxkrnl::PVOID DeferredContext,
IN xboxkrnl::PVOID SystemArgument1,
IN xboxkrnl::PVOID SystemArgument2
IN xbox::PKDPC Dpc,
IN xbox::PVOID DeferredContext,
IN xbox::PVOID SystemArgument1,
IN xbox::PVOID SystemArgument2
)
{
ULARGE_INTEGER SystemTime, InterruptTime;
@ -746,10 +746,10 @@ xboxkrnl::VOID NTAPI xboxkrnl::KiTimerExpiration
}
}
xboxkrnl::VOID FASTCALL xboxkrnl::KiTimerListExpire
xbox::VOID FASTCALL xbox::KiTimerListExpire
(
IN xboxkrnl::PLIST_ENTRY ExpiredListHead,
IN xboxkrnl::KIRQL OldIrql
IN xbox::PLIST_ENTRY ExpiredListHead,
IN xbox::KIRQL OldIrql
)
{
ULARGE_INTEGER SystemTime;
@ -854,9 +854,9 @@ xboxkrnl::VOID FASTCALL xboxkrnl::KiTimerListExpire
}
}
xboxkrnl::VOID FASTCALL xboxkrnl::KiWaitSatisfyAll
xbox::VOID FASTCALL xbox::KiWaitSatisfyAll
(
IN xboxkrnl::PKWAIT_BLOCK WaitBlock
IN xbox::PKWAIT_BLOCK WaitBlock
)
{
PKMUTANT Object;

View File

@ -36,7 +36,7 @@
// ReactOS uses a size of 512, but disassembling the kernel reveals it to be 32 instead
#define TIMER_TABLE_SIZE 32
namespace xboxkrnl
namespace xbox
{
typedef struct _KTIMER_TABLE_ENTRY
{
@ -141,10 +141,10 @@ namespace xboxkrnl
);
};
extern const xboxkrnl::ULONG CLOCK_TIME_INCREMENT;
extern xboxkrnl::LIST_ENTRY KiWaitInListHead;
extern xboxkrnl::KTIMER_TABLE_ENTRY KiTimerTableListHead[TIMER_TABLE_SIZE];
extern xboxkrnl::KI_TIMER_LOCK KiTimerMtx;
extern const xbox::ULONG CLOCK_TIME_INCREMENT;
extern xbox::LIST_ENTRY KiWaitInListHead;
extern xbox::KTIMER_TABLE_ENTRY KiTimerTableListHead[TIMER_TABLE_SIZE];
extern xbox::KI_TIMER_LOCK KiTimerMtx;
#define KiLockDispatcherDatabase(OldIrql) \
*(OldIrql) = KeRaiseIrqlToDpcLevel()

View File

@ -34,7 +34,7 @@
#include "core\kernel\init\CxbxKrnl.h"
// prevent name collisions
namespace xboxkrnl
namespace xbox
{
LOGRENDER_HEADER_BY_REF(BOOLEAN)
@ -270,7 +270,7 @@ ENUM2STR_START(MODE)
ENUM2STR_END_and_LOGRENDER(MODE)
/* TODO : Fix error C2593 "'operator <<' is ambiguous",
// because often NtDLL::NTSTATUS is used instead of xboxkrnl::NTSTATUS
// because often NtDLL::NTSTATUS is used instead of xbox::NTSTATUS
ENUM2STR_START(NTSTATUS) // Not really an enum
ENUM2STR_CASE(STATUS_SUCCESS)
ENUM2STR_CASE(STATUS_PENDING)
@ -427,4 +427,4 @@ LOGRENDER(UNICODE_STRING)
LOGRENDER_MEMBER_SANITIZED(Buffer, wchar_t *, value.Length);
}
}; // end of namespace xboxkrnl;
}; // end of namespace xbox;

View File

@ -26,7 +26,7 @@
#define _EMU_KERNEL_LOGGING_H
// prevent name collisions
namespace xboxkrnl
namespace xbox
{
// Additional types, exclusively for logging (not really enums) :
@ -55,7 +55,7 @@ enum PROTECTION_TYPE : int;
#include <xboxkrnl/xboxkrnl.h>
// prevent name collisions
namespace xboxkrnl
namespace xbox
{
// Headers for rendering Xbox kernel enum types :
@ -152,6 +152,6 @@ LOGRENDER_HEADER(UNICODE_STRING)
// TODO : LOGRENDER_HEADER(XBOX_HARDWARE_INFO)
// TODO : LOGRENDER_HEADER(XBOX_REFURB_INFO)
}; // end of namespace xboxkrnl
}; // end of namespace xbox
#endif _EMU_KERNEL_LOGGING_H

View File

@ -49,7 +49,7 @@ namespace NtDll
// ******************************************************************
// * 0x0066 - MmGlobalData
// ******************************************************************
XBSYSAPI EXPORTNUM(102) xboxkrnl::PVOID xboxkrnl::MmGlobalData[8] = { NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL };
XBSYSAPI EXPORTNUM(102) xbox::PVOID xbox::MmGlobalData[8] = { NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL };
// ******************************************************************
// * 0x00A4 - LaunchDataPage
@ -58,7 +58,7 @@ XBSYSAPI EXPORTNUM(102) xboxkrnl::PVOID xboxkrnl::MmGlobalData[8] = { NULL, NULL
// the xbox kernel. Kernel code accessses this as a normal variable.
// XAPI code however, reference to the address of this kernel variable,
// thus use indirection (*LaunchDataPage) to get to the same contents.
XBSYSAPI EXPORTNUM(164) xboxkrnl::PLAUNCH_DATA_PAGE xboxkrnl::LaunchDataPage = xbnullptr;
XBSYSAPI EXPORTNUM(164) xbox::PLAUNCH_DATA_PAGE xbox::LaunchDataPage = xbox::zeroptr;
// ******************************************************************
// * 0x00A5 - MmAllocateContiguousMemory()
@ -68,7 +68,7 @@ XBSYSAPI EXPORTNUM(164) xboxkrnl::PLAUNCH_DATA_PAGE xboxkrnl::LaunchDataPage = x
//
// Differences from NT: HighestAcceptableAddress was deleted, opting instead
// to not care about the highest address.
XBSYSAPI EXPORTNUM(165) xboxkrnl::PVOID NTAPI xboxkrnl::MmAllocateContiguousMemory
XBSYSAPI EXPORTNUM(165) xbox::PVOID NTAPI xbox::MmAllocateContiguousMemory
(
IN ULONG NumberOfBytes
)
@ -81,7 +81,7 @@ XBSYSAPI EXPORTNUM(165) xboxkrnl::PVOID NTAPI xboxkrnl::MmAllocateContiguousMemo
// ******************************************************************
// * 0x00A6 - MmAllocateContiguousMemoryEx()
// ******************************************************************
XBSYSAPI EXPORTNUM(166) xboxkrnl::PVOID NTAPI xboxkrnl::MmAllocateContiguousMemoryEx
XBSYSAPI EXPORTNUM(166) xbox::PVOID NTAPI xbox::MmAllocateContiguousMemoryEx
(
IN ULONG NumberOfBytes,
IN PHYSICAL_ADDRESS LowestAcceptableAddress,
@ -106,7 +106,7 @@ XBSYSAPI EXPORTNUM(166) xboxkrnl::PVOID NTAPI xboxkrnl::MmAllocateContiguousMemo
// ******************************************************************
// * 0x00A7 - MmAllocateSystemMemory()
// ******************************************************************
XBSYSAPI EXPORTNUM(167) xboxkrnl::PVOID NTAPI xboxkrnl::MmAllocateSystemMemory
XBSYSAPI EXPORTNUM(167) xbox::PVOID NTAPI xbox::MmAllocateSystemMemory
(
ULONG NumberOfBytes,
ULONG Protect
@ -125,7 +125,7 @@ XBSYSAPI EXPORTNUM(167) xboxkrnl::PVOID NTAPI xboxkrnl::MmAllocateSystemMemory
// ******************************************************************
// * 0x00A8 - MmClaimGpuInstanceMemory()
// ******************************************************************
XBSYSAPI EXPORTNUM(168) xboxkrnl::PVOID NTAPI xboxkrnl::MmClaimGpuInstanceMemory
XBSYSAPI EXPORTNUM(168) xbox::PVOID NTAPI xbox::MmClaimGpuInstanceMemory
(
IN SIZE_T NumberOfBytes,
OUT SIZE_T *NumberOfPaddingBytes
@ -146,7 +146,7 @@ XBSYSAPI EXPORTNUM(168) xboxkrnl::PVOID NTAPI xboxkrnl::MmClaimGpuInstanceMemory
// ******************************************************************
// * Differences from NT: Custom stack size.
// ******************************************************************
XBSYSAPI EXPORTNUM(169) xboxkrnl::PVOID NTAPI xboxkrnl::MmCreateKernelStack
XBSYSAPI EXPORTNUM(169) xbox::PVOID NTAPI xbox::MmCreateKernelStack
(
IN ULONG NumberOfBytes,
IN BOOLEAN DebuggerThread
@ -170,7 +170,7 @@ XBSYSAPI EXPORTNUM(169) xboxkrnl::PVOID NTAPI xboxkrnl::MmCreateKernelStack
// ******************************************************************
// * 0x00AA - MmDeleteKernelStack()
// ******************************************************************
XBSYSAPI EXPORTNUM(170) xboxkrnl::VOID NTAPI xboxkrnl::MmDeleteKernelStack
XBSYSAPI EXPORTNUM(170) xbox::VOID NTAPI xbox::MmDeleteKernelStack
(
PVOID StackBase,
PVOID StackLimit
@ -193,7 +193,7 @@ XBSYSAPI EXPORTNUM(170) xboxkrnl::VOID NTAPI xboxkrnl::MmDeleteKernelStack
// Frees memory allocated with MmAllocateContiguousMemory.
//
// Differences from NT: None.
XBSYSAPI EXPORTNUM(171) xboxkrnl::VOID NTAPI xboxkrnl::MmFreeContiguousMemory
XBSYSAPI EXPORTNUM(171) xbox::VOID NTAPI xbox::MmFreeContiguousMemory
(
IN PVOID BaseAddress
)
@ -211,7 +211,7 @@ XBSYSAPI EXPORTNUM(171) xboxkrnl::VOID NTAPI xboxkrnl::MmFreeContiguousMemory
// ******************************************************************
// * 0x00AC - MmFreeSystemMemory()
// ******************************************************************
XBSYSAPI EXPORTNUM(172) xboxkrnl::ULONG NTAPI xboxkrnl::MmFreeSystemMemory
XBSYSAPI EXPORTNUM(172) xbox::ULONG NTAPI xbox::MmFreeSystemMemory
(
PVOID BaseAddress,
ULONG NumberOfBytes
@ -233,7 +233,7 @@ XBSYSAPI EXPORTNUM(172) xboxkrnl::ULONG NTAPI xboxkrnl::MmFreeSystemMemory
// Translates a virtual address into a physical address.
//
// Differences from NT: PhysicalAddress is 32 bit, not 64.
XBSYSAPI EXPORTNUM(173) xboxkrnl::PHYSICAL_ADDRESS NTAPI xboxkrnl::MmGetPhysicalAddress
XBSYSAPI EXPORTNUM(173) xbox::PHYSICAL_ADDRESS NTAPI xbox::MmGetPhysicalAddress
(
IN PVOID BaseAddress
)
@ -251,7 +251,7 @@ XBSYSAPI EXPORTNUM(173) xboxkrnl::PHYSICAL_ADDRESS NTAPI xboxkrnl::MmGetPhysical
// ******************************************************************
// * 0x00AE - MmIsAddressValid()
// ******************************************************************
XBSYSAPI EXPORTNUM(174) xboxkrnl::BOOLEAN NTAPI xboxkrnl::MmIsAddressValid
XBSYSAPI EXPORTNUM(174) xbox::BOOLEAN NTAPI xbox::MmIsAddressValid
(
IN PVOID VirtualAddress
)
@ -268,7 +268,7 @@ XBSYSAPI EXPORTNUM(174) xboxkrnl::BOOLEAN NTAPI xboxkrnl::MmIsAddressValid
// ******************************************************************
// * 0x00AF - MmLockUnlockBufferPages()
// ******************************************************************
XBSYSAPI EXPORTNUM(175) xboxkrnl::VOID NTAPI xboxkrnl::MmLockUnlockBufferPages
XBSYSAPI EXPORTNUM(175) xbox::VOID NTAPI xbox::MmLockUnlockBufferPages
(
IN PVOID BaseAddress,
IN SIZE_T NumberOfBytes,
@ -289,7 +289,7 @@ XBSYSAPI EXPORTNUM(175) xboxkrnl::VOID NTAPI xboxkrnl::MmLockUnlockBufferPages
// ******************************************************************
// * 0x00B0 - MmLockUnlockPhysicalPage()
// ******************************************************************
XBSYSAPI EXPORTNUM(176) xboxkrnl::VOID NTAPI xboxkrnl::MmLockUnlockPhysicalPage
XBSYSAPI EXPORTNUM(176) xbox::VOID NTAPI xbox::MmLockUnlockPhysicalPage
(
IN ULONG_PTR PhysicalAddress,
IN BOOLEAN UnlockPage
@ -316,7 +316,7 @@ XBSYSAPI EXPORTNUM(176) xboxkrnl::VOID NTAPI xboxkrnl::MmLockUnlockPhysicalPage
// specifies the page protections, but it's a Win32 PAGE_ macro instead
// of the normal NT enumeration. PAGE_READWRITE is probably what you
// want...
XBSYSAPI EXPORTNUM(177) xboxkrnl::PVOID NTAPI xboxkrnl::MmMapIoSpace
XBSYSAPI EXPORTNUM(177) xbox::PVOID NTAPI xbox::MmMapIoSpace
(
IN PHYSICAL_ADDRESS PhysicalAddress,
IN ULONG NumberOfBytes,
@ -337,7 +337,7 @@ XBSYSAPI EXPORTNUM(177) xboxkrnl::PVOID NTAPI xboxkrnl::MmMapIoSpace
// ******************************************************************
// * 0x00B2 - MmPersistContiguousMemory()
// ******************************************************************
XBSYSAPI EXPORTNUM(178) xboxkrnl::VOID NTAPI xboxkrnl::MmPersistContiguousMemory
XBSYSAPI EXPORTNUM(178) xbox::VOID NTAPI xbox::MmPersistContiguousMemory
(
IN PVOID BaseAddress,
IN ULONG NumberOfBytes,
@ -356,7 +356,7 @@ XBSYSAPI EXPORTNUM(178) xboxkrnl::VOID NTAPI xboxkrnl::MmPersistContiguousMemory
// ******************************************************************
// * 0x00B3 - MmQueryAddressProtect()
// ******************************************************************
XBSYSAPI EXPORTNUM(179) xboxkrnl::ULONG NTAPI xboxkrnl::MmQueryAddressProtect
XBSYSAPI EXPORTNUM(179) xbox::ULONG NTAPI xbox::MmQueryAddressProtect
(
IN PVOID VirtualAddress
)
@ -371,7 +371,7 @@ XBSYSAPI EXPORTNUM(179) xboxkrnl::ULONG NTAPI xboxkrnl::MmQueryAddressProtect
// ******************************************************************
// * 0x00B4 - MmQueryAllocationSize()
// ******************************************************************
XBSYSAPI EXPORTNUM(180) xboxkrnl::ULONG NTAPI xboxkrnl::MmQueryAllocationSize
XBSYSAPI EXPORTNUM(180) xbox::ULONG NTAPI xbox::MmQueryAllocationSize
(
IN PVOID BaseAddress
)
@ -386,7 +386,7 @@ XBSYSAPI EXPORTNUM(180) xboxkrnl::ULONG NTAPI xboxkrnl::MmQueryAllocationSize
// ******************************************************************
// * 0x00B5 - MmQueryStatistics()
// ******************************************************************
XBSYSAPI EXPORTNUM(181) xboxkrnl::NTSTATUS NTAPI xboxkrnl::MmQueryStatistics
XBSYSAPI EXPORTNUM(181) xbox::NTSTATUS NTAPI xbox::MmQueryStatistics
(
OUT PMM_STATISTICS MemoryStatistics
)
@ -430,7 +430,7 @@ XBSYSAPI EXPORTNUM(181) xboxkrnl::NTSTATUS NTAPI xboxkrnl::MmQueryStatistics
// ******************************************************************
// * 0x00B6 - MmSetAddressProtect()
// ******************************************************************
XBSYSAPI EXPORTNUM(182) xboxkrnl::VOID NTAPI xboxkrnl::MmSetAddressProtect
XBSYSAPI EXPORTNUM(182) xbox::VOID NTAPI xbox::MmSetAddressProtect
(
IN PVOID BaseAddress,
IN ULONG NumberOfBytes,
@ -452,7 +452,7 @@ XBSYSAPI EXPORTNUM(182) xboxkrnl::VOID NTAPI xboxkrnl::MmSetAddressProtect
// Unmaps a virtual address mapping made by MmMapIoSpace.
//
// Differences from NT: None.
XBSYSAPI EXPORTNUM(183) xboxkrnl::VOID NTAPI xboxkrnl::MmUnmapIoSpace
XBSYSAPI EXPORTNUM(183) xbox::VOID NTAPI xbox::MmUnmapIoSpace
(
IN PVOID BaseAddress,
IN ULONG NumberOfBytes
@ -469,7 +469,7 @@ XBSYSAPI EXPORTNUM(183) xboxkrnl::VOID NTAPI xboxkrnl::MmUnmapIoSpace
// ******************************************************************
// * 0x0176 - MmDbgAllocateMemory
// ******************************************************************
XBSYSAPI EXPORTNUM(374) xboxkrnl::PVOID NTAPI xboxkrnl::MmDbgAllocateMemory
XBSYSAPI EXPORTNUM(374) xbox::PVOID NTAPI xbox::MmDbgAllocateMemory
(
IN ULONG NumberOfBytes,
IN ULONG Protect
@ -489,7 +489,7 @@ XBSYSAPI EXPORTNUM(374) xboxkrnl::PVOID NTAPI xboxkrnl::MmDbgAllocateMemory
// ******************************************************************
// * 0x0177 - MmDbgFreeMemory
// ******************************************************************
XBSYSAPI EXPORTNUM(375) xboxkrnl::ULONG NTAPI xboxkrnl::MmDbgFreeMemory
XBSYSAPI EXPORTNUM(375) xbox::ULONG NTAPI xbox::MmDbgFreeMemory
(
IN PVOID BaseAddress,
IN ULONG NumberOfBytes
@ -508,7 +508,7 @@ XBSYSAPI EXPORTNUM(375) xboxkrnl::ULONG NTAPI xboxkrnl::MmDbgFreeMemory
// ******************************************************************
// * 0x0178 - MmDbgQueryAvailablePages
// ******************************************************************
XBSYSAPI EXPORTNUM(376) xboxkrnl::ULONG NTAPI xboxkrnl::MmDbgQueryAvailablePages(void)
XBSYSAPI EXPORTNUM(376) xbox::ULONG NTAPI xbox::MmDbgQueryAvailablePages(void)
{
LOG_FUNC();
@ -520,7 +520,7 @@ XBSYSAPI EXPORTNUM(376) xboxkrnl::ULONG NTAPI xboxkrnl::MmDbgQueryAvailablePages
// ******************************************************************
// * 0x0179 - MmDbgReleaseAddress
// ******************************************************************
XBSYSAPI EXPORTNUM(377) xboxkrnl::VOID NTAPI xboxkrnl::MmDbgReleaseAddress
XBSYSAPI EXPORTNUM(377) xbox::VOID NTAPI xbox::MmDbgReleaseAddress
(
IN PVOID VirtualAddress,
IN PULONG Opaque
@ -537,7 +537,7 @@ XBSYSAPI EXPORTNUM(377) xboxkrnl::VOID NTAPI xboxkrnl::MmDbgReleaseAddress
// ******************************************************************
// * 0x017A - MmDbgWriteCheck
// ******************************************************************
XBSYSAPI EXPORTNUM(378) xboxkrnl::PVOID NTAPI xboxkrnl::MmDbgWriteCheck
XBSYSAPI EXPORTNUM(378) xbox::PVOID NTAPI xbox::MmDbgWriteCheck
(
IN PVOID VirtualAddress,
IN PULONG Opaque

View File

@ -63,7 +63,7 @@ std::mutex NtSystemTimeMtx;
// ******************************************************************
// * 0x00B8 - NtAllocateVirtualMemory()
// ******************************************************************
XBSYSAPI EXPORTNUM(184) xboxkrnl::NTSTATUS NTAPI xboxkrnl::NtAllocateVirtualMemory
XBSYSAPI EXPORTNUM(184) xbox::NTSTATUS NTAPI xbox::NtAllocateVirtualMemory
(
IN OUT PVOID *BaseAddress,
IN ULONG ZeroBits,
@ -89,7 +89,7 @@ XBSYSAPI EXPORTNUM(184) xboxkrnl::NTSTATUS NTAPI xboxkrnl::NtAllocateVirtualMemo
// ******************************************************************
// * 0x00B9 - NtCancelTimer()
// ******************************************************************
XBSYSAPI EXPORTNUM(185) xboxkrnl::NTSTATUS NTAPI xboxkrnl::NtCancelTimer
XBSYSAPI EXPORTNUM(185) xbox::NTSTATUS NTAPI xbox::NtCancelTimer
(
IN HANDLE TimerHandle,
OUT PBOOLEAN CurrentState OPTIONAL
@ -115,7 +115,7 @@ XBSYSAPI EXPORTNUM(185) xboxkrnl::NTSTATUS NTAPI xboxkrnl::NtCancelTimer
// ******************************************************************
// * 0x00BA - NtClearEvent()
// ******************************************************************
XBSYSAPI EXPORTNUM(186) xboxkrnl::NTSTATUS NTAPI xboxkrnl::NtClearEvent
XBSYSAPI EXPORTNUM(186) xbox::NTSTATUS NTAPI xbox::NtClearEvent
(
IN HANDLE EventHandle
)
@ -133,7 +133,7 @@ XBSYSAPI EXPORTNUM(186) xboxkrnl::NTSTATUS NTAPI xboxkrnl::NtClearEvent
// ******************************************************************
// * 0x00BB - NtClose()
// ******************************************************************
XBSYSAPI EXPORTNUM(187) xboxkrnl::NTSTATUS NTAPI xboxkrnl::NtClose
XBSYSAPI EXPORTNUM(187) xbox::NTSTATUS NTAPI xbox::NtClose
(
IN HANDLE Handle
)
@ -179,7 +179,7 @@ XBSYSAPI EXPORTNUM(187) xboxkrnl::NTSTATUS NTAPI xboxkrnl::NtClose
// ******************************************************************
// * 0x00BC - NtCreateDirectoryObject()
// ******************************************************************
XBSYSAPI EXPORTNUM(188) xboxkrnl::NTSTATUS NTAPI xboxkrnl::NtCreateDirectoryObject
XBSYSAPI EXPORTNUM(188) xbox::NTSTATUS NTAPI xbox::NtCreateDirectoryObject
(
OUT PHANDLE DirectoryHandle,
IN POBJECT_ATTRIBUTES ObjectAttributes
@ -218,7 +218,7 @@ XBSYSAPI EXPORTNUM(188) xboxkrnl::NTSTATUS NTAPI xboxkrnl::NtCreateDirectoryObje
// ******************************************************************
// * 0x00BD - NtCreateEvent()
// ******************************************************************
XBSYSAPI EXPORTNUM(189) xboxkrnl::NTSTATUS NTAPI xboxkrnl::NtCreateEvent
XBSYSAPI EXPORTNUM(189) xbox::NTSTATUS NTAPI xbox::NtCreateEvent
(
OUT PHANDLE EventHandle,
IN POBJECT_ATTRIBUTES ObjectAttributes OPTIONAL,
@ -298,7 +298,7 @@ XBSYSAPI EXPORTNUM(189) xboxkrnl::NTSTATUS NTAPI xboxkrnl::NtCreateEvent
// ******************************************************************
// * 0x00BE - NtCreateFile()
// ******************************************************************
XBSYSAPI EXPORTNUM(190) xboxkrnl::NTSTATUS NTAPI xboxkrnl::NtCreateFile
XBSYSAPI EXPORTNUM(190) xbox::NTSTATUS NTAPI xbox::NtCreateFile
(
OUT PHANDLE FileHandle,
IN ACCESS_MASK DesiredAccess,
@ -315,7 +315,7 @@ XBSYSAPI EXPORTNUM(190) xboxkrnl::NTSTATUS NTAPI xboxkrnl::NtCreateFile
// TODO : How to base IoCreateFile on ObCreateObject, KeInitialize and ObInsertObject ?
return xboxkrnl::IoCreateFile(
return xbox::IoCreateFile(
FileHandle,
DesiredAccess,
ObjectAttributes,
@ -331,7 +331,7 @@ XBSYSAPI EXPORTNUM(190) xboxkrnl::NTSTATUS NTAPI xboxkrnl::NtCreateFile
// ******************************************************************
// * 0x00BF - NtCreateIoCompletion()
// ******************************************************************
XBSYSAPI EXPORTNUM(191) xboxkrnl::NTSTATUS NTAPI xboxkrnl::NtCreateIoCompletion
XBSYSAPI EXPORTNUM(191) xbox::NTSTATUS NTAPI xbox::NtCreateIoCompletion
(
OUT PHANDLE IoCompletionHandle,
IN ACCESS_MASK DesiredAccess,
@ -354,7 +354,7 @@ XBSYSAPI EXPORTNUM(191) xboxkrnl::NTSTATUS NTAPI xboxkrnl::NtCreateIoCompletion
// ******************************************************************
// * 0x00C0 - NtCreateMutant()
// ******************************************************************
XBSYSAPI EXPORTNUM(192) xboxkrnl::NTSTATUS NTAPI xboxkrnl::NtCreateMutant
XBSYSAPI EXPORTNUM(192) xbox::NTSTATUS NTAPI xbox::NtCreateMutant
(
OUT PHANDLE MutantHandle,
IN POBJECT_ATTRIBUTES ObjectAttributes,
@ -426,7 +426,7 @@ XBSYSAPI EXPORTNUM(192) xboxkrnl::NTSTATUS NTAPI xboxkrnl::NtCreateMutant
// ******************************************************************
// * 0x00C1 - NtCreateSemaphore()
// ******************************************************************
XBSYSAPI EXPORTNUM(193) xboxkrnl::NTSTATUS NTAPI xboxkrnl::NtCreateSemaphore
XBSYSAPI EXPORTNUM(193) xbox::NTSTATUS NTAPI xbox::NtCreateSemaphore
(
OUT PHANDLE SemaphoreHandle,
IN POBJECT_ATTRIBUTES ObjectAttributes OPTIONAL,
@ -501,7 +501,7 @@ XBSYSAPI EXPORTNUM(193) xboxkrnl::NTSTATUS NTAPI xboxkrnl::NtCreateSemaphore
// ******************************************************************
// * 0x00C2 - NtCreateTimer()
// ******************************************************************
XBSYSAPI EXPORTNUM(194) xboxkrnl::NTSTATUS NTAPI xboxkrnl::NtCreateTimer
XBSYSAPI EXPORTNUM(194) xbox::NTSTATUS NTAPI xbox::NtCreateTimer
(
OUT PHANDLE TimerHandle,
IN POBJECT_ATTRIBUTES ObjectAttributes OPTIONAL,
@ -561,7 +561,7 @@ XBSYSAPI EXPORTNUM(194) xboxkrnl::NTSTATUS NTAPI xboxkrnl::NtCreateTimer
// ******************************************************************
// * 0x00C3 - NtDeleteFile()
// ******************************************************************
XBSYSAPI EXPORTNUM(195) xboxkrnl::NTSTATUS NTAPI xboxkrnl::NtDeleteFile
XBSYSAPI EXPORTNUM(195) xbox::NTSTATUS NTAPI xbox::NtDeleteFile
(
IN POBJECT_ATTRIBUTES ObjectAttributes
)
@ -589,7 +589,7 @@ XBSYSAPI EXPORTNUM(195) xboxkrnl::NTSTATUS NTAPI xboxkrnl::NtDeleteFile
// ******************************************************************
// * 0x00C4 - NtDeviceIoControlFile()
// ******************************************************************
XBSYSAPI EXPORTNUM(196) xboxkrnl::NTSTATUS NTAPI xboxkrnl::NtDeviceIoControlFile
XBSYSAPI EXPORTNUM(196) xbox::NTSTATUS NTAPI xbox::NtDeviceIoControlFile
(
IN HANDLE FileHandle,
IN HANDLE Event OPTIONAL,
@ -667,7 +667,7 @@ XBSYSAPI EXPORTNUM(196) xboxkrnl::NTSTATUS NTAPI xboxkrnl::NtDeviceIoControlFile
// ******************************************************************
// * 0x00C5 - NtDuplicateObject()
// ******************************************************************
XBSYSAPI EXPORTNUM(197) xboxkrnl::NTSTATUS NTAPI xboxkrnl::NtDuplicateObject
XBSYSAPI EXPORTNUM(197) xbox::NTSTATUS NTAPI xbox::NtDuplicateObject
(
HANDLE SourceHandle,
HANDLE *TargetHandle,
@ -726,7 +726,7 @@ XBSYSAPI EXPORTNUM(197) xboxkrnl::NTSTATUS NTAPI xboxkrnl::NtDuplicateObject
// ******************************************************************
// * 0x00C6 - NtFlushBuffersFile()
// ******************************************************************
XBSYSAPI EXPORTNUM(198) xboxkrnl::NTSTATUS NTAPI xboxkrnl::NtFlushBuffersFile
XBSYSAPI EXPORTNUM(198) xbox::NTSTATUS NTAPI xbox::NtFlushBuffersFile
(
PVOID FileHandle,
OUT PIO_STATUS_BLOCK IoStatusBlock
@ -752,7 +752,7 @@ XBSYSAPI EXPORTNUM(198) xboxkrnl::NTSTATUS NTAPI xboxkrnl::NtFlushBuffersFile
// Frees virtual memory.
//
// Differences from NT: There is no ProcessHandle parameter.
XBSYSAPI EXPORTNUM(199) xboxkrnl::NTSTATUS NTAPI xboxkrnl::NtFreeVirtualMemory
XBSYSAPI EXPORTNUM(199) xbox::NTSTATUS NTAPI xbox::NtFreeVirtualMemory
(
IN OUT PVOID *BaseAddress,
IN OUT PULONG FreeSize,
@ -773,7 +773,7 @@ XBSYSAPI EXPORTNUM(199) xboxkrnl::NTSTATUS NTAPI xboxkrnl::NtFreeVirtualMemory
// ******************************************************************
// * 0x00C8 - NtFsControlFile
// ******************************************************************
XBSYSAPI EXPORTNUM(200) xboxkrnl::NTSTATUS NTAPI xboxkrnl::NtFsControlFile
XBSYSAPI EXPORTNUM(200) xbox::NTSTATUS NTAPI xbox::NtFsControlFile
(
IN HANDLE FileHandle,
IN HANDLE Event OPTIONAL,
@ -819,7 +819,7 @@ XBSYSAPI EXPORTNUM(200) xboxkrnl::NTSTATUS NTAPI xboxkrnl::NtFsControlFile
// ******************************************************************
// * 0x00C9 - NtOpenDirectoryObject()
// ******************************************************************
XBSYSAPI EXPORTNUM(201) xboxkrnl::NTSTATUS NTAPI xboxkrnl::NtOpenDirectoryObject
XBSYSAPI EXPORTNUM(201) xbox::NTSTATUS NTAPI xbox::NtOpenDirectoryObject
(
OUT PHANDLE DirectoryHandle,
IN POBJECT_ATTRIBUTES ObjectAttributes
@ -838,7 +838,7 @@ XBSYSAPI EXPORTNUM(201) xboxkrnl::NTSTATUS NTAPI xboxkrnl::NtOpenDirectoryObject
// IoStatusBlock, NULL, 0, ShareAccess, OPEN_EXISTING, OpenOptions);
//
// Differences from NT: See NtCreateFile.
XBSYSAPI EXPORTNUM(202) xboxkrnl::NTSTATUS NTAPI xboxkrnl::NtOpenFile
XBSYSAPI EXPORTNUM(202) xbox::NTSTATUS NTAPI xbox::NtOpenFile
(
OUT PHANDLE FileHandle,
IN ACCESS_MASK DesiredAccess,
@ -850,7 +850,7 @@ XBSYSAPI EXPORTNUM(202) xboxkrnl::NTSTATUS NTAPI xboxkrnl::NtOpenFile
{
LOG_FORWARD("IoCreateFile");
return xboxkrnl::IoCreateFile(
return xbox::IoCreateFile(
FileHandle,
DesiredAccess,
ObjectAttributes,
@ -866,7 +866,7 @@ XBSYSAPI EXPORTNUM(202) xboxkrnl::NTSTATUS NTAPI xboxkrnl::NtOpenFile
// ******************************************************************
// * 0x00CB - NtOpenSymbolicLinkObject()
// ******************************************************************
XBSYSAPI EXPORTNUM(203) xboxkrnl::NTSTATUS NTAPI xboxkrnl::NtOpenSymbolicLinkObject
XBSYSAPI EXPORTNUM(203) xbox::NTSTATUS NTAPI xbox::NtOpenSymbolicLinkObject
(
OUT PHANDLE LinkHandle,
IN POBJECT_ATTRIBUTES ObjectAttributes
@ -904,7 +904,7 @@ XBSYSAPI EXPORTNUM(203) xboxkrnl::NTSTATUS NTAPI xboxkrnl::NtOpenSymbolicLinkObj
// ******************************************************************
// * 0x00CC - NtProtectVirtualMemory()
// ******************************************************************
XBSYSAPI EXPORTNUM(204) xboxkrnl::NTSTATUS NTAPI xboxkrnl::NtProtectVirtualMemory
XBSYSAPI EXPORTNUM(204) xbox::NTSTATUS NTAPI xbox::NtProtectVirtualMemory
(
IN OUT PVOID *BaseAddress,
IN OUT PSIZE_T RegionSize,
@ -930,7 +930,7 @@ XBSYSAPI EXPORTNUM(204) xboxkrnl::NTSTATUS NTAPI xboxkrnl::NtProtectVirtualMemor
// ******************************************************************
// * 0x00CD - NtPulseEvent()
// ******************************************************************
XBSYSAPI EXPORTNUM(205) xboxkrnl::NTSTATUS NTAPI xboxkrnl::NtPulseEvent
XBSYSAPI EXPORTNUM(205) xbox::NTSTATUS NTAPI xbox::NtPulseEvent
(
IN HANDLE EventHandle,
OUT PLONG PreviousState OPTIONAL
@ -956,7 +956,7 @@ XBSYSAPI EXPORTNUM(205) xboxkrnl::NTSTATUS NTAPI xboxkrnl::NtPulseEvent
// ******************************************************************
// * 0x00CE - NtQueueApcThread()
// ******************************************************************
XBSYSAPI EXPORTNUM(206) xboxkrnl::NTSTATUS NTAPI xboxkrnl::NtQueueApcThread
XBSYSAPI EXPORTNUM(206) xbox::NTSTATUS NTAPI xbox::NtQueueApcThread
(
IN HANDLE ThreadHandle,
IN PIO_APC_ROUTINE ApcRoutine,
@ -1026,7 +1026,7 @@ XBSYSAPI EXPORTNUM(206) xboxkrnl::NTSTATUS NTAPI xboxkrnl::NtQueueApcThread
// ******************************************************************
// * 0x00CF - NtQueryDirectoryFile()
// ******************************************************************
XBSYSAPI EXPORTNUM(207) xboxkrnl::NTSTATUS NTAPI xboxkrnl::NtQueryDirectoryFile
XBSYSAPI EXPORTNUM(207) xbox::NTSTATUS NTAPI xbox::NtQueryDirectoryFile
(
IN HANDLE FileHandle,
IN HANDLE Event OPTIONAL,
@ -1111,7 +1111,7 @@ XBSYSAPI EXPORTNUM(207) xboxkrnl::NTSTATUS NTAPI xboxkrnl::NtQueryDirectoryFile
// convert from PC to Xbox
{
// TODO : assert that NtDll::FILE_DIRECTORY_INFORMATION has same members and size as xboxkrnl::FILE_DIRECTORY_INFORMATION
// TODO : assert that NtDll::FILE_DIRECTORY_INFORMATION has same members and size as xbox::FILE_DIRECTORY_INFORMATION
memcpy(/*Dst=*/FileInformation, /*Src=*/NtFileDirInfo, /*Size=*/NtFileDirectoryInformationSize);
wcstombs(/*Dest=*/mbstr, /*Source=*/wcstr, MAX_PATH);
FileInformation->FileNameLength /= sizeof(wchar_t);
@ -1126,7 +1126,7 @@ XBSYSAPI EXPORTNUM(207) xboxkrnl::NTSTATUS NTAPI xboxkrnl::NtQueryDirectoryFile
// ******************************************************************
// * 0x00D0 - NtQueryDirectoryObject
// ******************************************************************
XBSYSAPI EXPORTNUM(208) xboxkrnl::NTSTATUS NTAPI xboxkrnl::NtQueryDirectoryObject
XBSYSAPI EXPORTNUM(208) xbox::NTSTATUS NTAPI xbox::NtQueryDirectoryObject
(
IN HANDLE DirectoryHandle,
OUT PVOID Buffer,
@ -1153,7 +1153,7 @@ XBSYSAPI EXPORTNUM(208) xboxkrnl::NTSTATUS NTAPI xboxkrnl::NtQueryDirectoryObjec
// ******************************************************************
// * 0x00D1 - NtQueryEvent()
// ******************************************************************
XBSYSAPI EXPORTNUM(209) xboxkrnl::NTSTATUS NTAPI xboxkrnl::NtQueryEvent
XBSYSAPI EXPORTNUM(209) xbox::NTSTATUS NTAPI xbox::NtQueryEvent
(
IN HANDLE EventHandle,
OUT PEVENT_BASIC_INFORMATION EventInformation
@ -1180,10 +1180,10 @@ XBSYSAPI EXPORTNUM(209) xboxkrnl::NTSTATUS NTAPI xboxkrnl::NtQueryEvent
// ******************************************************************
// * 0x00D2 - NtQueryFullAttributesFile()
// ******************************************************************
XBSYSAPI EXPORTNUM(210) xboxkrnl::NTSTATUS NTAPI xboxkrnl::NtQueryFullAttributesFile
XBSYSAPI EXPORTNUM(210) xbox::NTSTATUS NTAPI xbox::NtQueryFullAttributesFile
(
IN POBJECT_ATTRIBUTES ObjectAttributes,
OUT xboxkrnl::PFILE_NETWORK_OPEN_INFORMATION Attributes
OUT xbox::PFILE_NETWORK_OPEN_INFORMATION Attributes
)
{
LOG_FUNC_BEGIN
@ -1206,7 +1206,7 @@ XBSYSAPI EXPORTNUM(210) xboxkrnl::NTSTATUS NTAPI xboxkrnl::NtQueryFullAttributes
&nativeNetOpenInfo);
// Convert Attributes to Xbox
NTToXboxFileInformation(&nativeNetOpenInfo, Attributes, FileNetworkOpenInformation, sizeof(xboxkrnl::FILE_NETWORK_OPEN_INFORMATION));
NTToXboxFileInformation(&nativeNetOpenInfo, Attributes, FileNetworkOpenInformation, sizeof(xbox::FILE_NETWORK_OPEN_INFORMATION));
if (FAILED(ret))
EmuLog(LOG_LEVEL::WARNING, "NtQueryFullAttributesFile failed! (0x%.08X)", ret);
@ -1217,7 +1217,7 @@ XBSYSAPI EXPORTNUM(210) xboxkrnl::NTSTATUS NTAPI xboxkrnl::NtQueryFullAttributes
// ******************************************************************
// * 0x00D3 - NtQueryInformationFile()
// ******************************************************************
XBSYSAPI EXPORTNUM(211) xboxkrnl::NTSTATUS NTAPI xboxkrnl::NtQueryInformationFile
XBSYSAPI EXPORTNUM(211) xbox::NTSTATUS NTAPI xbox::NtQueryInformationFile
(
IN HANDLE FileHandle,
OUT PIO_STATUS_BLOCK IoStatusBlock,
@ -1284,7 +1284,7 @@ XBSYSAPI EXPORTNUM(211) xboxkrnl::NTSTATUS NTAPI xboxkrnl::NtQueryInformationFil
// ******************************************************************
// * 0x00D4 - NtQueryIoCompletion
// ******************************************************************
XBSYSAPI EXPORTNUM(212) xboxkrnl::NTSTATUS NTAPI xboxkrnl::NtQueryIoCompletion
XBSYSAPI EXPORTNUM(212) xbox::NTSTATUS NTAPI xbox::NtQueryIoCompletion
(
IN HANDLE IoCompletionHandle,
OUT PIO_COMPLETION_BASIC_INFORMATION IoCompletionInformation
@ -1303,7 +1303,7 @@ XBSYSAPI EXPORTNUM(212) xboxkrnl::NTSTATUS NTAPI xboxkrnl::NtQueryIoCompletion
// ******************************************************************
// * 0x00D5 - NtQueryMutant()
// ******************************************************************
XBSYSAPI EXPORTNUM(213) xboxkrnl::NTSTATUS NTAPI xboxkrnl::NtQueryMutant
XBSYSAPI EXPORTNUM(213) xbox::NTSTATUS NTAPI xbox::NtQueryMutant
(
IN HANDLE MutantHandle,
OUT PMUTANT_BASIC_INFORMATION MutantInformation
@ -1330,7 +1330,7 @@ XBSYSAPI EXPORTNUM(213) xboxkrnl::NTSTATUS NTAPI xboxkrnl::NtQueryMutant
// ******************************************************************
// * 0x00D6 - NtQuerySemaphore()
// ******************************************************************
XBSYSAPI EXPORTNUM(214) xboxkrnl::NTSTATUS NTAPI xboxkrnl::NtQuerySemaphore
XBSYSAPI EXPORTNUM(214) xbox::NTSTATUS NTAPI xbox::NtQuerySemaphore
(
IN HANDLE SemaphoreHandle,
OUT PSEMAPHORE_BASIC_INFORMATION SemaphoreInformation
@ -1357,7 +1357,7 @@ XBSYSAPI EXPORTNUM(214) xboxkrnl::NTSTATUS NTAPI xboxkrnl::NtQuerySemaphore
// ******************************************************************
// * 0x00D7 - NtQuerySymbolicLinkObject()
// ******************************************************************
XBSYSAPI EXPORTNUM(215) xboxkrnl::NTSTATUS NTAPI xboxkrnl::NtQuerySymbolicLinkObject
XBSYSAPI EXPORTNUM(215) xbox::NTSTATUS NTAPI xbox::NtQuerySymbolicLinkObject
(
HANDLE LinkHandle,
OUT PSTRING LinkTarget,
@ -1409,7 +1409,7 @@ XBSYSAPI EXPORTNUM(215) xboxkrnl::NTSTATUS NTAPI xboxkrnl::NtQuerySymbolicLinkOb
// ******************************************************************
// * 0x00D8 - NtQueryTimer()
// ******************************************************************
XBSYSAPI EXPORTNUM(216) xboxkrnl::NTSTATUS NTAPI xboxkrnl::NtQueryTimer
XBSYSAPI EXPORTNUM(216) xbox::NTSTATUS NTAPI xbox::NtQueryTimer
(
IN HANDLE TimerHandle,
OUT PTIMER_BASIC_INFORMATION TimerInformation
@ -1436,7 +1436,7 @@ XBSYSAPI EXPORTNUM(216) xboxkrnl::NTSTATUS NTAPI xboxkrnl::NtQueryTimer
// ******************************************************************
// * 0x00D9 - NtQueryVirtualMemory()
// ******************************************************************
XBSYSAPI EXPORTNUM(217) xboxkrnl::NTSTATUS NTAPI xboxkrnl::NtQueryVirtualMemory
XBSYSAPI EXPORTNUM(217) xbox::NTSTATUS NTAPI xbox::NtQueryVirtualMemory
(
IN PVOID BaseAddress,
OUT PMEMORY_BASIC_INFORMATION Buffer
@ -1499,7 +1499,7 @@ XBSYSAPI EXPORTNUM(217) xboxkrnl::NTSTATUS NTAPI xboxkrnl::NtQueryVirtualMemory
// ******************************************************************
// * 0x00DA - NtQueryVolumeInformationFile()
// ******************************************************************
XBSYSAPI EXPORTNUM(218) xboxkrnl::NTSTATUS NTAPI xboxkrnl::NtQueryVolumeInformationFile
XBSYSAPI EXPORTNUM(218) xbox::NTSTATUS NTAPI xbox::NtQueryVolumeInformationFile
(
IN HANDLE FileHandle,
OUT PIO_STATUS_BLOCK IoStatusBlock,
@ -1612,7 +1612,7 @@ XBSYSAPI EXPORTNUM(218) xboxkrnl::NTSTATUS NTAPI xboxkrnl::NtQueryVolumeInformat
// ******************************************************************
// * 0x00DB - NtReadFile()
// ******************************************************************
XBSYSAPI EXPORTNUM(219) xboxkrnl::NTSTATUS NTAPI xboxkrnl::NtReadFile
XBSYSAPI EXPORTNUM(219) xbox::NTSTATUS NTAPI xbox::NtReadFile
(
IN HANDLE FileHandle, // TODO: correct paramters
IN HANDLE Event OPTIONAL,
@ -1669,7 +1669,7 @@ XBSYSAPI EXPORTNUM(219) xboxkrnl::NTSTATUS NTAPI xboxkrnl::NtReadFile
// ******************************************************************
// * 0x00DC - NtReadFileScatter
// ******************************************************************
XBSYSAPI EXPORTNUM(220) xboxkrnl::NTSTATUS NTAPI xboxkrnl::NtReadFileScatter
XBSYSAPI EXPORTNUM(220) xbox::NTSTATUS NTAPI xbox::NtReadFileScatter
(
IN HANDLE FileHandle,
IN HANDLE Event OPTIONAL,
@ -1700,7 +1700,7 @@ XBSYSAPI EXPORTNUM(220) xboxkrnl::NTSTATUS NTAPI xboxkrnl::NtReadFileScatter
// ******************************************************************
// * 0x00DD - NtReleaseMutant()
// ******************************************************************
XBSYSAPI EXPORTNUM(221) xboxkrnl::NTSTATUS NTAPI xboxkrnl::NtReleaseMutant
XBSYSAPI EXPORTNUM(221) xbox::NTSTATUS NTAPI xbox::NtReleaseMutant
(
IN HANDLE MutantHandle,
OUT PLONG PreviousCount
@ -1723,7 +1723,7 @@ XBSYSAPI EXPORTNUM(221) xboxkrnl::NTSTATUS NTAPI xboxkrnl::NtReleaseMutant
// ******************************************************************
// * 0x00DE - NtReleaseSemaphore()
// ******************************************************************
XBSYSAPI EXPORTNUM(222) xboxkrnl::NTSTATUS NTAPI xboxkrnl::NtReleaseSemaphore
XBSYSAPI EXPORTNUM(222) xbox::NTSTATUS NTAPI xbox::NtReleaseSemaphore
(
IN HANDLE SemaphoreHandle,
IN ULONG ReleaseCount,
@ -1750,7 +1750,7 @@ XBSYSAPI EXPORTNUM(222) xboxkrnl::NTSTATUS NTAPI xboxkrnl::NtReleaseSemaphore
// ******************************************************************
// * 0x00DF - NtRemoveIoCompletion
// ******************************************************************
XBSYSAPI EXPORTNUM(223) xboxkrnl::NTSTATUS NTAPI xboxkrnl::NtRemoveIoCompletion
XBSYSAPI EXPORTNUM(223) xbox::NTSTATUS NTAPI xbox::NtRemoveIoCompletion
(
IN HANDLE IoCompletionHandle,
OUT PVOID *KeyContext,
@ -1775,7 +1775,7 @@ XBSYSAPI EXPORTNUM(223) xboxkrnl::NTSTATUS NTAPI xboxkrnl::NtRemoveIoCompletion
// ******************************************************************
// * 0x00E0 - NtResumeThread()
// ******************************************************************
XBSYSAPI EXPORTNUM(224) xboxkrnl::NTSTATUS NTAPI xboxkrnl::NtResumeThread
XBSYSAPI EXPORTNUM(224) xbox::NTSTATUS NTAPI xbox::NtResumeThread
(
IN HANDLE ThreadHandle,
OUT PULONG PreviousSuspendCount
@ -1800,7 +1800,7 @@ XBSYSAPI EXPORTNUM(224) xboxkrnl::NTSTATUS NTAPI xboxkrnl::NtResumeThread
// ******************************************************************
// * 0x00E1 - NtSetEvent()
// ******************************************************************
XBSYSAPI EXPORTNUM(225) xboxkrnl::NTSTATUS NTAPI xboxkrnl::NtSetEvent
XBSYSAPI EXPORTNUM(225) xbox::NTSTATUS NTAPI xbox::NtSetEvent
(
IN HANDLE EventHandle,
OUT PLONG PreviousState
@ -1824,7 +1824,7 @@ XBSYSAPI EXPORTNUM(225) xboxkrnl::NTSTATUS NTAPI xboxkrnl::NtSetEvent
// ******************************************************************
// * 0x00E2 - NtSetInformationFile()
// ******************************************************************
XBSYSAPI EXPORTNUM(226) xboxkrnl::NTSTATUS NTAPI xboxkrnl::NtSetInformationFile
XBSYSAPI EXPORTNUM(226) xbox::NTSTATUS NTAPI xbox::NtSetInformationFile
(
IN HANDLE FileHandle,
OUT PIO_STATUS_BLOCK IoStatusBlock,
@ -1856,7 +1856,7 @@ XBSYSAPI EXPORTNUM(226) xboxkrnl::NTSTATUS NTAPI xboxkrnl::NtSetInformationFile
// ******************************************************************
// * 0x00E3 - NtSetIoCompletion
// ******************************************************************
XBSYSAPI EXPORTNUM(227) xboxkrnl::NTSTATUS NTAPI xboxkrnl::NtSetIoCompletion
XBSYSAPI EXPORTNUM(227) xbox::NTSTATUS NTAPI xbox::NtSetIoCompletion
(
IN HANDLE IoCompletionHandle,
IN PVOID KeyContext,
@ -1881,7 +1881,7 @@ XBSYSAPI EXPORTNUM(227) xboxkrnl::NTSTATUS NTAPI xboxkrnl::NtSetIoCompletion
// ******************************************************************
// * 0x00E4 - NtSetSystemTime()
// ******************************************************************
XBSYSAPI EXPORTNUM(228) xboxkrnl::NTSTATUS NTAPI xboxkrnl::NtSetSystemTime
XBSYSAPI EXPORTNUM(228) xbox::NTSTATUS NTAPI xbox::NtSetSystemTime
(
IN PLARGE_INTEGER SystemTime,
OUT PLARGE_INTEGER PreviousTime OPTIONAL
@ -1930,7 +1930,7 @@ XBSYSAPI EXPORTNUM(228) xboxkrnl::NTSTATUS NTAPI xboxkrnl::NtSetSystemTime
// ******************************************************************
// * 0x00E5 - NtSetTimerEx()
// ******************************************************************
XBSYSAPI EXPORTNUM(229) xboxkrnl::NTSTATUS NTAPI xboxkrnl::NtSetTimerEx
XBSYSAPI EXPORTNUM(229) xbox::NTSTATUS NTAPI xbox::NtSetTimerEx
(
IN HANDLE TimerHandle,
IN PLARGE_INTEGER DueTime,
@ -1973,7 +1973,7 @@ XBSYSAPI EXPORTNUM(229) xboxkrnl::NTSTATUS NTAPI xboxkrnl::NtSetTimerEx
// ******************************************************************
// * 0x00E6 - NtSignalAndWaitForSingleObjectEx
// ******************************************************************
XBSYSAPI EXPORTNUM(230) xboxkrnl::NTSTATUS NTAPI xboxkrnl::NtSignalAndWaitForSingleObjectEx
XBSYSAPI EXPORTNUM(230) xbox::NTSTATUS NTAPI xbox::NtSignalAndWaitForSingleObjectEx
(
IN HANDLE SignalHandle,
IN HANDLE WaitHandle,
@ -1998,7 +1998,7 @@ XBSYSAPI EXPORTNUM(230) xboxkrnl::NTSTATUS NTAPI xboxkrnl::NtSignalAndWaitForSin
// ******************************************************************
// * 0x00E7 - NtSuspendThread()
// ******************************************************************
XBSYSAPI EXPORTNUM(231) xboxkrnl::NTSTATUS NTAPI xboxkrnl::NtSuspendThread
XBSYSAPI EXPORTNUM(231) xbox::NTSTATUS NTAPI xbox::NtSuspendThread
(
IN HANDLE ThreadHandle,
OUT PULONG PreviousSuspendCount OPTIONAL
@ -2021,7 +2021,7 @@ XBSYSAPI EXPORTNUM(231) xboxkrnl::NTSTATUS NTAPI xboxkrnl::NtSuspendThread
// ******************************************************************
// * 0x00E8 - NtUserIoApcDispatcher()
// ******************************************************************
XBSYSAPI EXPORTNUM(232) xboxkrnl::VOID NTAPI xboxkrnl::NtUserIoApcDispatcher
XBSYSAPI EXPORTNUM(232) xbox::VOID NTAPI xbox::NtUserIoApcDispatcher
(
PVOID ApcContext,
PIO_STATUS_BLOCK IoStatusBlock,
@ -2054,7 +2054,7 @@ XBSYSAPI EXPORTNUM(232) xboxkrnl::VOID NTAPI xboxkrnl::NtUserIoApcDispatcher
// ******************************************************************
// * 0x00E9 - NtWaitForSingleObject()
// ******************************************************************
XBSYSAPI EXPORTNUM(233) xboxkrnl::NTSTATUS NTAPI xboxkrnl::NtWaitForSingleObject
XBSYSAPI EXPORTNUM(233) xbox::NTSTATUS NTAPI xbox::NtWaitForSingleObject
(
IN HANDLE Handle,
IN BOOLEAN Alertable,
@ -2063,7 +2063,7 @@ XBSYSAPI EXPORTNUM(233) xboxkrnl::NTSTATUS NTAPI xboxkrnl::NtWaitForSingleObject
{
LOG_FORWARD("NtWaitForMultipleObjectsEx");
return xboxkrnl::NtWaitForMultipleObjectsEx(
return xbox::NtWaitForMultipleObjectsEx(
/*Count=*/1,
&Handle,
/*WaitType=*/WaitAll,
@ -2076,7 +2076,7 @@ XBSYSAPI EXPORTNUM(233) xboxkrnl::NTSTATUS NTAPI xboxkrnl::NtWaitForSingleObject
// ******************************************************************
// * 0x00EA - NtWaitForSingleObjectEx()
// ******************************************************************
XBSYSAPI EXPORTNUM(234) xboxkrnl::NTSTATUS NTAPI xboxkrnl::NtWaitForSingleObjectEx
XBSYSAPI EXPORTNUM(234) xbox::NTSTATUS NTAPI xbox::NtWaitForSingleObjectEx
(
IN HANDLE Handle,
IN KPROCESSOR_MODE WaitMode,
@ -2086,7 +2086,7 @@ XBSYSAPI EXPORTNUM(234) xboxkrnl::NTSTATUS NTAPI xboxkrnl::NtWaitForSingleObject
{
LOG_FORWARD("NtWaitForMultipleObjectsEx");
return xboxkrnl::NtWaitForMultipleObjectsEx(
return xbox::NtWaitForMultipleObjectsEx(
/*Count=*/1,
&Handle,
/*WaitType=*/WaitAll,
@ -2099,7 +2099,7 @@ XBSYSAPI EXPORTNUM(234) xboxkrnl::NTSTATUS NTAPI xboxkrnl::NtWaitForSingleObject
// ******************************************************************
// * 0x00EB - NtWaitForMultipleObjectsEx()
// ******************************************************************
XBSYSAPI EXPORTNUM(235) xboxkrnl::NTSTATUS NTAPI xboxkrnl::NtWaitForMultipleObjectsEx
XBSYSAPI EXPORTNUM(235) xbox::NTSTATUS NTAPI xbox::NtWaitForMultipleObjectsEx
(
IN ULONG Count,
IN HANDLE *Handles,
@ -2132,7 +2132,7 @@ XBSYSAPI EXPORTNUM(235) xboxkrnl::NTSTATUS NTAPI xboxkrnl::NtWaitForMultipleObje
// Writes a file.
//
// Differences from NT: There is no Key parameter.
XBSYSAPI EXPORTNUM(236) xboxkrnl::NTSTATUS NTAPI xboxkrnl::NtWriteFile
XBSYSAPI EXPORTNUM(236) xbox::NTSTATUS NTAPI xbox::NtWriteFile
(
IN HANDLE FileHandle,
IN HANDLE Event,
@ -2188,7 +2188,7 @@ XBSYSAPI EXPORTNUM(236) xboxkrnl::NTSTATUS NTAPI xboxkrnl::NtWriteFile
// ******************************************************************
// * 0x00ED - NtWriteFileGather
// ******************************************************************
XBSYSAPI EXPORTNUM(237) xboxkrnl::NTSTATUS NTAPI xboxkrnl::NtWriteFileGather
XBSYSAPI EXPORTNUM(237) xbox::NTSTATUS NTAPI xbox::NtWriteFileGather
(
IN HANDLE FileHandle,
IN HANDLE Event OPTIONAL,
@ -2219,7 +2219,7 @@ XBSYSAPI EXPORTNUM(237) xboxkrnl::NTSTATUS NTAPI xboxkrnl::NtWriteFileGather
// ******************************************************************
// * 0x00EE - NtYieldExecution()
// ******************************************************************
XBSYSAPI EXPORTNUM(238) xboxkrnl::VOID NTAPI xboxkrnl::NtYieldExecution()
XBSYSAPI EXPORTNUM(238) xbox::VOID NTAPI xbox::NtYieldExecution()
{
// NOTE: Logging this fills the debug log far too quickly, so don't.
// LOG_FUNC();

View File

@ -44,8 +44,8 @@
#define FIELD_OFFSET(type,field) ((ULONG)&(((type *)0)->field))
#define INITIALIZED_OBJECT_STRING(ObjectString, Value) \
xboxkrnl::CHAR ObjectString##Buffer[] = Value; \
xboxkrnl::OBJECT_STRING ObjectString = { \
xbox::CHAR ObjectString##Buffer[] = Value; \
xbox::OBJECT_STRING ObjectString = { \
sizeof(Value) - sizeof(CHAR), \
sizeof(Value), \
ObjectString##Buffer \
@ -55,20 +55,20 @@ INITIALIZED_OBJECT_STRING(ObpDosDevicesString, "\\??");
INITIALIZED_OBJECT_STRING(ObpIoDevicesString, "\\Device");
INITIALIZED_OBJECT_STRING(ObpWin32NamedObjectsString, "\\Win32NamedObjects");
xboxkrnl::POBJECT_DIRECTORY ObpDosDevicesDirectoryObject;
xboxkrnl::POBJECT_DIRECTORY ObpWin32NamedObjectsDirectoryObject;
xboxkrnl::POBJECT_DIRECTORY ObpRootDirectoryObject;
xboxkrnl::POBJECT_DIRECTORY ObpIoDevicesDirectoryObject;
xbox::POBJECT_DIRECTORY ObpDosDevicesDirectoryObject;
xbox::POBJECT_DIRECTORY ObpWin32NamedObjectsDirectoryObject;
xbox::POBJECT_DIRECTORY ObpRootDirectoryObject;
xbox::POBJECT_DIRECTORY ObpIoDevicesDirectoryObject;
XBSYSAPI EXPORTNUM(245) xboxkrnl::OBJECT_HANDLE_TABLE xboxkrnl::ObpObjectHandleTable = {
XBSYSAPI EXPORTNUM(245) xbox::OBJECT_HANDLE_TABLE xbox::ObpObjectHandleTable = {
};
xboxkrnl::PVOID ObpDosDevicesDriveLetterMap['Z' - 'A' + 1];
xbox::PVOID ObpDosDevicesDriveLetterMap['Z' - 'A' + 1];
xboxkrnl::BOOLEAN xboxkrnl::ObpCreatePermanentDirectoryObject(
IN xboxkrnl::POBJECT_STRING DirectoryName OPTIONAL,
OUT xboxkrnl::POBJECT_DIRECTORY *DirectoryObject
xbox::BOOLEAN xbox::ObpCreatePermanentDirectoryObject(
IN xbox::POBJECT_STRING DirectoryName OPTIONAL,
OUT xbox::POBJECT_DIRECTORY *DirectoryObject
)
{
LOG_FUNC_BEGIN
@ -97,7 +97,7 @@ xboxkrnl::BOOLEAN xboxkrnl::ObpCreatePermanentDirectoryObject(
RETURN(TRUE);
}
xboxkrnl::NTSTATUS xboxkrnl::ObpReferenceObjectByName(
xbox::NTSTATUS xbox::ObpReferenceObjectByName(
IN HANDLE RootDirectoryHandle,
IN POBJECT_STRING ObjectName,
IN ULONG Attributes,
@ -236,7 +236,7 @@ CleanupAndExit:
return status;
}
xboxkrnl::BOOLEAN xboxkrnl::ObInitSystem()
xbox::BOOLEAN xbox::ObInitSystem()
{
ObpObjectHandleTable.HandleCount = 0;
ObpObjectHandleTable.FirstFreeTableEntry = -1;
@ -264,7 +264,7 @@ xboxkrnl::BOOLEAN xboxkrnl::ObInitSystem()
return TRUE;
}
xboxkrnl::BOOLEAN xboxkrnl::ObpExtendObjectHandleTable()
xbox::BOOLEAN xbox::ObpExtendObjectHandleTable()
{
PVOID* NewTable = (PVOID*)ExAllocatePoolWithTag(sizeof(PVOID) * OB_HANDLES_PER_TABLE, 'tHbO');
if (NewTable == NULL) {
@ -320,7 +320,7 @@ xboxkrnl::BOOLEAN xboxkrnl::ObpExtendObjectHandleTable()
return TRUE;
}
xboxkrnl::HANDLE xboxkrnl::ObpCreateObjectHandle(xboxkrnl::PVOID Object)
xbox::HANDLE xbox::ObpCreateObjectHandle(xbox::PVOID Object)
{
LOG_FUNC_ONE_ARG(Object);
@ -342,7 +342,7 @@ xboxkrnl::HANDLE xboxkrnl::ObpCreateObjectHandle(xboxkrnl::PVOID Object)
return Handle;
}
xboxkrnl::VOID xboxkrnl::ObDissectName(OBJECT_STRING Path, POBJECT_STRING FirstName, POBJECT_STRING RemainingName)
xbox::VOID xbox::ObDissectName(OBJECT_STRING Path, POBJECT_STRING FirstName, POBJECT_STRING RemainingName)
{
ULONG i = 0;
@ -385,7 +385,7 @@ xboxkrnl::VOID xboxkrnl::ObDissectName(OBJECT_STRING Path, POBJECT_STRING FirstN
// ******************************************************************
// * 0x00EF - ObCreateObject()
// ******************************************************************
XBSYSAPI EXPORTNUM(239) xboxkrnl::NTSTATUS NTAPI xboxkrnl::ObCreateObject
XBSYSAPI EXPORTNUM(239) xbox::NTSTATUS NTAPI xbox::ObCreateObject
(
IN POBJECT_TYPE ObjectType,
IN POBJECT_ATTRIBUTES ObjectAttributes OPTIONAL,
@ -465,18 +465,18 @@ XBSYSAPI EXPORTNUM(239) xboxkrnl::NTSTATUS NTAPI xboxkrnl::ObCreateObject
// ******************************************************************
// * 0x00F0 - ObDirectoryObjectType
// ******************************************************************
XBSYSAPI EXPORTNUM(240) xboxkrnl::OBJECT_TYPE xboxkrnl::ObDirectoryObjectType =
XBSYSAPI EXPORTNUM(240) xbox::OBJECT_TYPE xbox::ObDirectoryObjectType =
{
xboxkrnl::ExAllocatePoolWithTag,
xboxkrnl::ExFreePool,
xbox::ExAllocatePoolWithTag,
xbox::ExFreePool,
NULL,
NULL,
NULL,
NULL, // TODO : &xboxkrnl::ObpDefaultObject,
NULL, // TODO : &xbox::ObpDefaultObject,
'eriD' // = first four characters of "Directory" in reverse
};
xboxkrnl::PVOID xboxkrnl::ObpGetObjectHandleContents(HANDLE Handle)
xbox::PVOID xbox::ObpGetObjectHandleContents(HANDLE Handle)
{
PVOID *HandleContents;
PVOID Object;
@ -494,7 +494,7 @@ xboxkrnl::PVOID xboxkrnl::ObpGetObjectHandleContents(HANDLE Handle)
return NULL;
}
xboxkrnl::ULONG FASTCALL xboxkrnl::ObpComputeHashIndex(
xbox::ULONG FASTCALL xbox::ObpComputeHashIndex(
IN POBJECT_STRING ElementName
)
{
@ -521,7 +521,7 @@ xboxkrnl::ULONG FASTCALL xboxkrnl::ObpComputeHashIndex(
return HashIndex % OB_NUMBER_HASH_BUCKETS;
}
xboxkrnl::PVOID xboxkrnl::ObpGetObjectHandleReference(HANDLE Handle)
xbox::PVOID xbox::ObpGetObjectHandleReference(HANDLE Handle)
{
PVOID *HandleContents;
Handle = ObpMaskOffApplicationBits(Handle);
@ -542,7 +542,7 @@ xboxkrnl::PVOID xboxkrnl::ObpGetObjectHandleReference(HANDLE Handle)
return NULL;
}
xboxkrnl::BOOLEAN xboxkrnl::ObpLookupElementNameInDirectory(
xbox::BOOLEAN xbox::ObpLookupElementNameInDirectory(
IN POBJECT_DIRECTORY Directory,
IN POBJECT_STRING ElementName,
IN BOOLEAN ResolveSymbolicLink,
@ -590,7 +590,7 @@ xboxkrnl::BOOLEAN xboxkrnl::ObpLookupElementNameInDirectory(
// ******************************************************************
// * 0x00F1 - ObInsertObject()
// ******************************************************************
XBSYSAPI EXPORTNUM(241) xboxkrnl::NTSTATUS NTAPI xboxkrnl::ObInsertObject
XBSYSAPI EXPORTNUM(241) xbox::NTSTATUS NTAPI xbox::ObInsertObject
(
IN PVOID Object,
IN POBJECT_ATTRIBUTES ObjectAttributes OPTIONAL,
@ -745,7 +745,7 @@ CleanupAndExit:
// ******************************************************************
// * 0x00F2 - ObMakeTemporaryObject()
// ******************************************************************
XBSYSAPI EXPORTNUM(242) xboxkrnl::VOID NTAPI xboxkrnl::ObMakeTemporaryObject
XBSYSAPI EXPORTNUM(242) xbox::VOID NTAPI xbox::ObMakeTemporaryObject
(
IN PVOID Object
)
@ -759,7 +759,7 @@ XBSYSAPI EXPORTNUM(242) xboxkrnl::VOID NTAPI xboxkrnl::ObMakeTemporaryObject
// ******************************************************************
// * 0x00F3 - ObOpenObjectByName()
// ******************************************************************
XBSYSAPI EXPORTNUM(243) xboxkrnl::NTSTATUS NTAPI xboxkrnl::ObOpenObjectByName
XBSYSAPI EXPORTNUM(243) xbox::NTSTATUS NTAPI xbox::ObOpenObjectByName
(
IN POBJECT_ATTRIBUTES ObjectAttributes,
IN POBJECT_TYPE ObjectType,
@ -783,7 +783,7 @@ XBSYSAPI EXPORTNUM(243) xboxkrnl::NTSTATUS NTAPI xboxkrnl::ObOpenObjectByName
// ******************************************************************
// * 0x00F4 - ObOpenObjectByPointer()
// ******************************************************************
XBSYSAPI EXPORTNUM(244) xboxkrnl::NTSTATUS NTAPI xboxkrnl::ObOpenObjectByPointer
XBSYSAPI EXPORTNUM(244) xbox::NTSTATUS NTAPI xbox::ObOpenObjectByPointer
(
IN PVOID Object,
IN POBJECT_TYPE ObjectType,
@ -811,7 +811,7 @@ XBSYSAPI EXPORTNUM(244) xboxkrnl::NTSTATUS NTAPI xboxkrnl::ObOpenObjectByPointer
//
// Differences from NT: There are no DesiredAccess, AccessMode, or
// HandleInformation parameters.
XBSYSAPI EXPORTNUM(246) xboxkrnl::NTSTATUS NTAPI xboxkrnl::ObReferenceObjectByHandle
XBSYSAPI EXPORTNUM(246) xbox::NTSTATUS NTAPI xbox::ObReferenceObjectByHandle
(
IN HANDLE Handle,
IN POBJECT_TYPE ObjectType OPTIONAL,
@ -874,7 +874,7 @@ XBSYSAPI EXPORTNUM(246) xboxkrnl::NTSTATUS NTAPI xboxkrnl::ObReferenceObjectByHa
// ******************************************************************
// * 0x00F7 - ObReferenceObjectByName()
// ******************************************************************
XBSYSAPI EXPORTNUM(247) xboxkrnl::NTSTATUS NTAPI xboxkrnl::ObReferenceObjectByName
XBSYSAPI EXPORTNUM(247) xbox::NTSTATUS NTAPI xbox::ObReferenceObjectByName
(
IN POBJECT_STRING ObjectName,
IN ULONG Attributes,
@ -898,7 +898,7 @@ XBSYSAPI EXPORTNUM(247) xboxkrnl::NTSTATUS NTAPI xboxkrnl::ObReferenceObjectByNa
// ******************************************************************
// * 0x00F8 - ObReferenceObjectByPointer()
// ******************************************************************
XBSYSAPI EXPORTNUM(248) xboxkrnl::NTSTATUS NTAPI xboxkrnl::ObReferenceObjectByPointer
XBSYSAPI EXPORTNUM(248) xbox::NTSTATUS NTAPI xbox::ObReferenceObjectByPointer
(
IN PVOID Object,
IN POBJECT_TYPE ObjectType
@ -922,21 +922,21 @@ XBSYSAPI EXPORTNUM(248) xboxkrnl::NTSTATUS NTAPI xboxkrnl::ObReferenceObjectByPo
// ******************************************************************
// * 0x00F9 - ObSymbolicLinkObjectType
// ******************************************************************
XBSYSAPI EXPORTNUM(249) xboxkrnl::OBJECT_TYPE xboxkrnl::ObSymbolicLinkObjectType =
XBSYSAPI EXPORTNUM(249) xbox::OBJECT_TYPE xbox::ObSymbolicLinkObjectType =
{
xboxkrnl::ExAllocatePoolWithTag,
xboxkrnl::ExFreePool,
xbox::ExAllocatePoolWithTag,
xbox::ExFreePool,
NULL,
NULL, // TODO : xboxkrnl::ObpDeleteSymbolicLink,
NULL, // TODO : xbox::ObpDeleteSymbolicLink,
NULL,
NULL, // TODO : &xboxkrnl::ObpDefaultObject,
NULL, // TODO : &xbox::ObpDefaultObject,
'bmyS' // = first four characters of "SymbolicLink" in reverse
};
// ******************************************************************
// * 0x00FA - ObfDereferenceObject()
// ******************************************************************
XBSYSAPI EXPORTNUM(250) xboxkrnl::VOID FASTCALL xboxkrnl::ObfDereferenceObject
XBSYSAPI EXPORTNUM(250) xbox::VOID FASTCALL xbox::ObfDereferenceObject
(
IN PVOID Object
)
@ -972,7 +972,7 @@ XBSYSAPI EXPORTNUM(250) xboxkrnl::VOID FASTCALL xboxkrnl::ObfDereferenceObject
// ******************************************************************
// * 0x00FB - ObfReferenceObject()
// ******************************************************************
XBSYSAPI EXPORTNUM(251) xboxkrnl::VOID FASTCALL xboxkrnl::ObfReferenceObject
XBSYSAPI EXPORTNUM(251) xbox::VOID FASTCALL xbox::ObfReferenceObject
(
IN PVOID Object
)

View File

@ -99,7 +99,7 @@ void PhyClearMDIOLOCK()
int timeout = PHYRW_TIMEOUT;
do {
xboxkrnl::KeStallExecutionProcessor(50);
xbox::KeStallExecutionProcessor(50);
timeout -= 50;
} while (timeout > 0 && (g_NVNet->MMIORead(0, NvRegMIIControl, sizeof(DWORD)) & MDIOADR_LOCK));
}
@ -119,7 +119,7 @@ BOOL PhyReadReg(DWORD phyreg, DWORD* val)
mdioadr |= MDIOADR_LOCK;
for (timeout = PHYRW_TIMEOUT; timeout > 0 && (mdioadr & MDIOADR_LOCK); timeout -= 50) {
xboxkrnl::KeStallExecutionProcessor(50);
xbox::KeStallExecutionProcessor(50);
mdioadr = g_NVNet->MMIORead(0, NvRegMIIControl, sizeof(DWORD));
}
@ -150,7 +150,7 @@ BOOL PhyWriteReg(DWORD phyreg, DWORD val)
mdioadr |= MDIOADR_LOCK;
for (timeout = PHYRW_TIMEOUT; timeout > 0 && (mdioadr & MDIOADR_LOCK); timeout -= 50) {
xboxkrnl::KeStallExecutionProcessor(50);
xbox::KeStallExecutionProcessor(50);
mdioadr = g_NVNet->MMIORead(0, NvRegMIIControl, sizeof(DWORD));
}
@ -167,7 +167,7 @@ DWORD PhyWaitForLinkUp()
DWORD miiStatus = 0;
INT timeout = 1000;
while (timeout-- && !(miiStatus & MIISTATUS_LINK_IS_UP)) {
xboxkrnl::KeStallExecutionProcessor(500);
xbox::KeStallExecutionProcessor(500);
if (!PhyReadReg(MIIREG_STATUS, &miiStatus)) {
break;
}
@ -209,7 +209,7 @@ BOOL PhyUpdateLinkState()
// ******************************************************************
// * 0x00FC - PhyGetLinkState()
// ******************************************************************
XBSYSAPI EXPORTNUM(252) xboxkrnl::DWORD NTAPI xboxkrnl::PhyGetLinkState
XBSYSAPI EXPORTNUM(252) xbox::DWORD NTAPI xbox::PhyGetLinkState
(
IN ULONG Mode
)
@ -227,7 +227,7 @@ XBSYSAPI EXPORTNUM(252) xboxkrnl::DWORD NTAPI xboxkrnl::PhyGetLinkState
// ******************************************************************
// * 0x00FD - PhyInitialize()
// ******************************************************************
XBSYSAPI EXPORTNUM(253) xboxkrnl::NTSTATUS NTAPI xboxkrnl::PhyInitialize
XBSYSAPI EXPORTNUM(253) xbox::NTSTATUS NTAPI xbox::PhyInitialize
(
IN ULONG forceReset,
IN PVOID Parameter2

View File

@ -133,16 +133,16 @@ static unsigned int WINAPI PCSTProxy
SuspendThread(GetCurrentThread());
}
auto routine = (xboxkrnl::PKSYSTEM_ROUTINE)SystemRoutine;
auto routine = (xbox::PKSYSTEM_ROUTINE)SystemRoutine;
// Debugging notice : When the below line shows up with an Exception dialog and a
// message like: "Exception thrown at 0x00026190 in cxbx.exe: 0xC0000005: Access
// violation reading location 0xFD001804.", then this is AS-DESIGNED behaviour!
// (To avoid repetitions, uncheck "Break when this exception type is thrown").
routine(xboxkrnl::PKSTART_ROUTINE(StartRoutine), StartContext);
routine(xbox::PKSTART_ROUTINE(StartRoutine), StartContext);
// This will also handle thread notification :
LOG_TEST_CASE("Thread returned from SystemRoutine");
xboxkrnl::PsTerminateSystemThread(STATUS_SUCCESS);
xbox::PsTerminateSystemThread(STATUS_SUCCESS);
return 0; // will never be reached
}
@ -150,20 +150,20 @@ static unsigned int WINAPI PCSTProxy
// Placeholder system function, instead of XapiThreadStartup
void PspSystemThreadStartup
(
IN xboxkrnl::PKSTART_ROUTINE StartRoutine,
IN xbox::PKSTART_ROUTINE StartRoutine,
IN PVOID StartContext
)
{
// TODO : Call PspUnhandledExceptionInSystemThread(GetExceptionInformation())
(StartRoutine)(StartContext);
xboxkrnl::PsTerminateSystemThread(STATUS_SUCCESS);
xbox::PsTerminateSystemThread(STATUS_SUCCESS);
}
// ******************************************************************
// * 0x00FE - PsCreateSystemThread()
// ******************************************************************
XBSYSAPI EXPORTNUM(254) xboxkrnl::NTSTATUS NTAPI xboxkrnl::PsCreateSystemThread
XBSYSAPI EXPORTNUM(254) xbox::NTSTATUS NTAPI xbox::PsCreateSystemThread
(
OUT PHANDLE ThreadHandle,
OUT PHANDLE ThreadId OPTIONAL,
@ -204,7 +204,7 @@ XBSYSAPI EXPORTNUM(254) xboxkrnl::NTSTATUS NTAPI xboxkrnl::PsCreateSystemThread
// SystemRoutine: System function (normally XapiThreadStartup) called when the thread is created
//
// New to the XBOX.
XBSYSAPI EXPORTNUM(255) xboxkrnl::NTSTATUS NTAPI xboxkrnl::PsCreateSystemThreadEx
XBSYSAPI EXPORTNUM(255) xbox::NTSTATUS NTAPI xbox::PsCreateSystemThreadEx
(
OUT PHANDLE ThreadHandle,
IN ULONG ThreadExtensionSize,
@ -272,7 +272,7 @@ XBSYSAPI EXPORTNUM(255) xboxkrnl::NTSTATUS NTAPI xboxkrnl::PsCreateSystemThreadE
// TODO: XAPI notification routines are already handeld by XapiThreadStartup and don't need to be called by us
// TODO: This type of notification routine is PCREATE_THREAD_NOTIFY_ROUTINE, which takes an ETHREAD pointer as well as Thread ID as input
// TODO: This is impossible to support currently, as we do not create or register Xbox ETHREAD objects, so we're better to skip it entirely!
XTL::XTHREAD_NOTIFY_PROC pfnNotificationRoutine = (XTL::XTHREAD_NOTIFY_PROC)g_pfnThreadNotification[i];
xbox::XTHREAD_NOTIFY_PROC pfnNotificationRoutine = (xbox::XTHREAD_NOTIFY_PROC)g_pfnThreadNotification[i];
// If the routine doesn't exist, don't execute it!
if (pfnNotificationRoutine == NULL)
@ -324,7 +324,7 @@ XBSYSAPI EXPORTNUM(255) xboxkrnl::NTSTATUS NTAPI xboxkrnl::PsCreateSystemThreadE
CxbxKrnlRegisterThread(*ThreadHandle);
if (ThreadId != NULL)
*ThreadId = (xboxkrnl::HANDLE)dwThreadId;
*ThreadId = (xbox::HANDLE)dwThreadId;
}
SwitchToThread();
@ -336,7 +336,7 @@ XBSYSAPI EXPORTNUM(255) xboxkrnl::NTSTATUS NTAPI xboxkrnl::PsCreateSystemThreadE
// ******************************************************************
// * 0x0100 - PsQueryStatistics()
// ******************************************************************
XBSYSAPI EXPORTNUM(256) xboxkrnl::NTSTATUS NTAPI xboxkrnl::PsQueryStatistics
XBSYSAPI EXPORTNUM(256) xbox::NTSTATUS NTAPI xbox::PsQueryStatistics
(
IN OUT PPS_STATISTICS ProcessStatistics
)
@ -359,7 +359,7 @@ XBSYSAPI EXPORTNUM(256) xboxkrnl::NTSTATUS NTAPI xboxkrnl::PsQueryStatistics
// ******************************************************************
// * 0x0101 - PsSetCreateThreadNotifyRoutine()
// ******************************************************************
XBSYSAPI EXPORTNUM(257) xboxkrnl::NTSTATUS NTAPI xboxkrnl::PsSetCreateThreadNotifyRoutine
XBSYSAPI EXPORTNUM(257) xbox::NTSTATUS NTAPI xbox::PsSetCreateThreadNotifyRoutine
(
IN PCREATE_THREAD_NOTIFY_ROUTINE NotifyRoutine
)
@ -368,7 +368,7 @@ XBSYSAPI EXPORTNUM(257) xboxkrnl::NTSTATUS NTAPI xboxkrnl::PsSetCreateThreadNoti
NTSTATUS ret = STATUS_INSUFFICIENT_RESOURCES;
// Taken from XTL::EmuXRegisterThreadNotifyRoutine (perhaps that can be removed now) :
// Taken from xbox::EmuXRegisterThreadNotifyRoutine (perhaps that can be removed now) :
// I honestly don't expect this to happen, but if it does...
if (g_iThreadNotificationCount >= PSP_MAX_CREATE_THREAD_NOTIFY)
@ -397,7 +397,7 @@ XBSYSAPI EXPORTNUM(257) xboxkrnl::NTSTATUS NTAPI xboxkrnl::PsSetCreateThreadNoti
// Exits the current system thread. Must be called from a system thread.
//
// Differences from NT: None.
XBSYSAPI EXPORTNUM(258) xboxkrnl::VOID NTAPI xboxkrnl::PsTerminateSystemThread
XBSYSAPI EXPORTNUM(258) xbox::VOID NTAPI xbox::PsTerminateSystemThread
(
IN NTSTATUS ExitStatus
)
@ -410,7 +410,7 @@ XBSYSAPI EXPORTNUM(258) xboxkrnl::VOID NTAPI xboxkrnl::PsTerminateSystemThread
{
for (int i = 0; i < 16; i++)
{
XTL::XTHREAD_NOTIFY_PROC pfnNotificationRoutine = (XTL::XTHREAD_NOTIFY_PROC)g_pfnThreadNotification[i];
xbox::XTHREAD_NOTIFY_PROC pfnNotificationRoutine = (xbox::XTHREAD_NOTIFY_PROC)g_pfnThreadNotification[i];
// If the routine doesn't exist, don't execute it!
if (pfnNotificationRoutine == NULL)
@ -430,13 +430,13 @@ XBSYSAPI EXPORTNUM(258) xboxkrnl::VOID NTAPI xboxkrnl::PsTerminateSystemThread
// ******************************************************************
// * 0x0103 - PsThreadObjectType
// ******************************************************************
XBSYSAPI EXPORTNUM(259) xboxkrnl::OBJECT_TYPE VOLATILE xboxkrnl::PsThreadObjectType =
XBSYSAPI EXPORTNUM(259) xbox::OBJECT_TYPE VOLATILE xbox::PsThreadObjectType =
{
xboxkrnl::ExAllocatePoolWithTag,
xboxkrnl::ExFreePool,
xbox::ExAllocatePoolWithTag,
xbox::ExFreePool,
NULL,
NULL,
NULL,
(PVOID)offsetof(xboxkrnl::KTHREAD, Header),
(PVOID)offsetof(xbox::KTHREAD, Header),
'erhT' // = first four characters of "Thread" in reverse
};

View File

@ -73,7 +73,7 @@ namespace NtDll
#define EXCEPTION_COLLIDED_UNWIND 0x40
#define EXCEPTION_UNWIND (EXCEPTION_UNWINDING | EXCEPTION_EXIT_UNWIND | EXCEPTION_TARGET_UNWIND | EXCEPTION_COLLIDED_UNWIND)
DWORD WINAPI RtlAnsiStringToUnicodeSize(const xboxkrnl::STRING *str)
DWORD WINAPI RtlAnsiStringToUnicodeSize(const xbox::STRING *str)
{
return (str->Length + sizeof(ANSI_NULL)) * sizeof(WCHAR);
}
@ -81,7 +81,7 @@ DWORD WINAPI RtlAnsiStringToUnicodeSize(const xboxkrnl::STRING *str)
// ******************************************************************
// * 0x0104 - RtlAnsiStringToUnicodeString()
// ******************************************************************
XBSYSAPI EXPORTNUM(260) xboxkrnl::NTSTATUS NTAPI xboxkrnl::RtlAnsiStringToUnicodeString
XBSYSAPI EXPORTNUM(260) xbox::NTSTATUS NTAPI xbox::RtlAnsiStringToUnicodeString
(
OUT PUNICODE_STRING DestinationString,
IN PSTRING SourceString,
@ -122,7 +122,7 @@ XBSYSAPI EXPORTNUM(260) xboxkrnl::NTSTATUS NTAPI xboxkrnl::RtlAnsiStringToUnicod
// ******************************************************************
// * 0x0105 - RtlAppendStringToString()
// ******************************************************************
XBSYSAPI EXPORTNUM(261) xboxkrnl::NTSTATUS NTAPI xboxkrnl::RtlAppendStringToString
XBSYSAPI EXPORTNUM(261) xbox::NTSTATUS NTAPI xbox::RtlAppendStringToString
(
IN PSTRING Destination,
IN PSTRING Source
@ -155,7 +155,7 @@ XBSYSAPI EXPORTNUM(261) xboxkrnl::NTSTATUS NTAPI xboxkrnl::RtlAppendStringToStri
// ******************************************************************
// * 0x0106 - RtlAppendUnicodeStringToString()
// ******************************************************************
XBSYSAPI EXPORTNUM(262) xboxkrnl::NTSTATUS NTAPI xboxkrnl::RtlAppendUnicodeStringToString
XBSYSAPI EXPORTNUM(262) xbox::NTSTATUS NTAPI xbox::RtlAppendUnicodeStringToString
(
IN PUNICODE_STRING Destination,
IN PUNICODE_STRING Source
@ -190,7 +190,7 @@ XBSYSAPI EXPORTNUM(262) xboxkrnl::NTSTATUS NTAPI xboxkrnl::RtlAppendUnicodeStrin
// ******************************************************************
// * 0x0107 - RtlAppendUnicodeToString()
// ******************************************************************
XBSYSAPI EXPORTNUM(263) xboxkrnl::NTSTATUS NTAPI xboxkrnl::RtlAppendUnicodeToString
XBSYSAPI EXPORTNUM(263) xbox::NTSTATUS NTAPI xbox::RtlAppendUnicodeToString
(
IN OUT PUNICODE_STRING Destination,
IN LPCWSTR Source
@ -216,7 +216,7 @@ XBSYSAPI EXPORTNUM(263) xboxkrnl::NTSTATUS NTAPI xboxkrnl::RtlAppendUnicodeToStr
// * 0x0108 - RtlAssert()
// ******************************************************************
// Debug API?
XBSYSAPI EXPORTNUM(264) xboxkrnl::VOID NTAPI xboxkrnl::RtlAssert
XBSYSAPI EXPORTNUM(264) xbox::VOID NTAPI xbox::RtlAssert
(
PCHAR FailedAssertion,
PCHAR FileName,
@ -246,7 +246,7 @@ XBSYSAPI EXPORTNUM(264) xboxkrnl::VOID NTAPI xboxkrnl::RtlAssert
// * 0x0109 - RtlCaptureContext()
// ******************************************************************
__declspec(naked) // REQUIRED - No registers can be touched by the compiler or the state will be corrupted.
XBSYSAPI EXPORTNUM(265) xboxkrnl::VOID NTAPI xboxkrnl::RtlCaptureContext
XBSYSAPI EXPORTNUM(265) xbox::VOID NTAPI xbox::RtlCaptureContext
(
IN PCONTEXT ContextRecord
)
@ -283,7 +283,7 @@ XBSYSAPI EXPORTNUM(265) xboxkrnl::VOID NTAPI xboxkrnl::RtlCaptureContext
// ******************************************************************
// * 0x010A - RtlCaptureStackBackTrace()
// ******************************************************************
XBSYSAPI EXPORTNUM(266) xboxkrnl::USHORT NTAPI xboxkrnl::RtlCaptureStackBackTrace
XBSYSAPI EXPORTNUM(266) xbox::USHORT NTAPI xbox::RtlCaptureStackBackTrace
(
IN ULONG FramesToSkip,
IN ULONG FramesToCapture,
@ -306,7 +306,7 @@ XBSYSAPI EXPORTNUM(266) xboxkrnl::USHORT NTAPI xboxkrnl::RtlCaptureStackBackTrac
// ******************************************************************
// * 0x010B - RtlCharToInteger()
// ******************************************************************
XBSYSAPI EXPORTNUM(267) xboxkrnl::NTSTATUS NTAPI xboxkrnl::RtlCharToInteger
XBSYSAPI EXPORTNUM(267) xbox::NTSTATUS NTAPI xbox::RtlCharToInteger
(
IN PCSZ String,
IN ULONG Base OPTIONAL,
@ -395,7 +395,7 @@ XBSYSAPI EXPORTNUM(267) xboxkrnl::NTSTATUS NTAPI xboxkrnl::RtlCharToInteger
// ******************************************************************
// * compare block of memory, return number of equivalent bytes.
// ******************************************************************
XBSYSAPI EXPORTNUM(268) xboxkrnl::SIZE_T NTAPI xboxkrnl::RtlCompareMemory
XBSYSAPI EXPORTNUM(268) xbox::SIZE_T NTAPI xbox::RtlCompareMemory
(
IN CONST VOID *Source1,
IN CONST VOID *Source2,
@ -425,7 +425,7 @@ XBSYSAPI EXPORTNUM(268) xboxkrnl::SIZE_T NTAPI xboxkrnl::RtlCompareMemory
// ******************************************************************
// * 0x010D - RtlCompareMemoryUlong()
// ******************************************************************
XBSYSAPI EXPORTNUM(269) xboxkrnl::SIZE_T NTAPI xboxkrnl::RtlCompareMemoryUlong
XBSYSAPI EXPORTNUM(269) xbox::SIZE_T NTAPI xbox::RtlCompareMemoryUlong
(
IN PVOID Source,
IN SIZE_T Length,
@ -457,7 +457,7 @@ XBSYSAPI EXPORTNUM(269) xboxkrnl::SIZE_T NTAPI xboxkrnl::RtlCompareMemoryUlong
// ******************************************************************
// * 0x010E - RtlCompareString()
// ******************************************************************
XBSYSAPI EXPORTNUM(270) xboxkrnl::LONG NTAPI xboxkrnl::RtlCompareString
XBSYSAPI EXPORTNUM(270) xbox::LONG NTAPI xbox::RtlCompareString
(
IN PSTRING String1,
IN PSTRING String2,
@ -492,7 +492,7 @@ XBSYSAPI EXPORTNUM(270) xboxkrnl::LONG NTAPI xboxkrnl::RtlCompareString
// ******************************************************************
// * 0x010F - RtlCompareUnicodeString()
// ******************************************************************
XBSYSAPI EXPORTNUM(271) xboxkrnl::LONG NTAPI xboxkrnl::RtlCompareUnicodeString
XBSYSAPI EXPORTNUM(271) xbox::LONG NTAPI xbox::RtlCompareUnicodeString
(
IN PUNICODE_STRING String1,
IN PUNICODE_STRING String2,
@ -527,7 +527,7 @@ XBSYSAPI EXPORTNUM(271) xboxkrnl::LONG NTAPI xboxkrnl::RtlCompareUnicodeString
// ******************************************************************
// * 0x0110 - RtlCopyString()
// ******************************************************************
XBSYSAPI EXPORTNUM(272) xboxkrnl::VOID NTAPI xboxkrnl::RtlCopyString
XBSYSAPI EXPORTNUM(272) xbox::VOID NTAPI xbox::RtlCopyString
(
OUT PSTRING DestinationString,
IN PSTRING SourceString OPTIONAL
@ -557,7 +557,7 @@ XBSYSAPI EXPORTNUM(272) xboxkrnl::VOID NTAPI xboxkrnl::RtlCopyString
// ******************************************************************
// * 0x0111 - RtlCopyUnicodeString()
// ******************************************************************
XBSYSAPI EXPORTNUM(273) xboxkrnl::VOID NTAPI xboxkrnl::RtlCopyUnicodeString
XBSYSAPI EXPORTNUM(273) xbox::VOID NTAPI xbox::RtlCopyUnicodeString
(
OUT PUNICODE_STRING DestinationString,
IN PUNICODE_STRING SourceString OPTIONAL
@ -587,7 +587,7 @@ XBSYSAPI EXPORTNUM(273) xboxkrnl::VOID NTAPI xboxkrnl::RtlCopyUnicodeString
// ******************************************************************
// * 0x0112 - RtlCreateUnicodeString()
// ******************************************************************
XBSYSAPI EXPORTNUM(274) xboxkrnl::BOOLEAN NTAPI xboxkrnl::RtlCreateUnicodeString
XBSYSAPI EXPORTNUM(274) xbox::BOOLEAN NTAPI xbox::RtlCreateUnicodeString
(
OUT PUNICODE_STRING DestinationString,
IN PCWSTR SourceString
@ -617,7 +617,7 @@ XBSYSAPI EXPORTNUM(274) xboxkrnl::BOOLEAN NTAPI xboxkrnl::RtlCreateUnicodeString
// ******************************************************************
// * 0x0113 - RtlDowncaseUnicodeChar()
// ******************************************************************
XBSYSAPI EXPORTNUM(275) xboxkrnl::WCHAR NTAPI xboxkrnl::RtlDowncaseUnicodeChar
XBSYSAPI EXPORTNUM(275) xbox::WCHAR NTAPI xbox::RtlDowncaseUnicodeChar
(
IN WCHAR SourceCharacter
)
@ -632,7 +632,7 @@ XBSYSAPI EXPORTNUM(275) xboxkrnl::WCHAR NTAPI xboxkrnl::RtlDowncaseUnicodeChar
// ******************************************************************
// * 0x0114 - RtlDowncaseUnicodeString()
// ******************************************************************
XBSYSAPI EXPORTNUM(276) xboxkrnl::NTSTATUS NTAPI xboxkrnl::RtlDowncaseUnicodeString
XBSYSAPI EXPORTNUM(276) xbox::NTSTATUS NTAPI xbox::RtlDowncaseUnicodeString
(
OUT PUNICODE_STRING DestinationString,
IN PUNICODE_STRING SourceString,
@ -675,7 +675,7 @@ XBSYSAPI EXPORTNUM(276) xboxkrnl::NTSTATUS NTAPI xboxkrnl::RtlDowncaseUnicodeStr
// ******************************************************************
// * 0x0115 - RtlEnterCriticalSection()
// ******************************************************************
XBSYSAPI EXPORTNUM(277) xboxkrnl::VOID NTAPI xboxkrnl::RtlEnterCriticalSection
XBSYSAPI EXPORTNUM(277) xbox::VOID NTAPI xbox::RtlEnterCriticalSection
(
IN PRTL_CRITICAL_SECTION CriticalSection
)
@ -717,7 +717,7 @@ XBSYSAPI EXPORTNUM(277) xboxkrnl::VOID NTAPI xboxkrnl::RtlEnterCriticalSection
// ******************************************************************
// * 0x0116 - RtlEnterCriticalSectionAndRegion()
// ******************************************************************
XBSYSAPI EXPORTNUM(278) xboxkrnl::VOID NTAPI xboxkrnl::RtlEnterCriticalSectionAndRegion
XBSYSAPI EXPORTNUM(278) xbox::VOID NTAPI xbox::RtlEnterCriticalSectionAndRegion
(
IN PRTL_CRITICAL_SECTION CriticalSection
)
@ -731,7 +731,7 @@ XBSYSAPI EXPORTNUM(278) xboxkrnl::VOID NTAPI xboxkrnl::RtlEnterCriticalSectionAn
// ******************************************************************
// * 0x0117 - RtlEqualString()
// ******************************************************************
XBSYSAPI EXPORTNUM(279) xboxkrnl::BOOLEAN NTAPI xboxkrnl::RtlEqualString
XBSYSAPI EXPORTNUM(279) xbox::BOOLEAN NTAPI xbox::RtlEqualString
(
IN PSTRING String1,
IN PSTRING String2,
@ -784,7 +784,7 @@ XBSYSAPI EXPORTNUM(279) xboxkrnl::BOOLEAN NTAPI xboxkrnl::RtlEqualString
// ******************************************************************
// * 0x0118 - RtlEqualUnicodeString()
// ******************************************************************
XBSYSAPI EXPORTNUM(280) xboxkrnl::BOOLEAN NTAPI xboxkrnl::RtlEqualUnicodeString
XBSYSAPI EXPORTNUM(280) xbox::BOOLEAN NTAPI xbox::RtlEqualUnicodeString
(
IN PUNICODE_STRING String1,
IN PUNICODE_STRING String2,
@ -838,7 +838,7 @@ XBSYSAPI EXPORTNUM(280) xboxkrnl::BOOLEAN NTAPI xboxkrnl::RtlEqualUnicodeString
// ******************************************************************
// * 0x0119 - RtlExtendedIntegerMultiply()
// ******************************************************************
XBSYSAPI EXPORTNUM(281) xboxkrnl::LARGE_INTEGER NTAPI xboxkrnl::RtlExtendedIntegerMultiply
XBSYSAPI EXPORTNUM(281) xbox::LARGE_INTEGER NTAPI xbox::RtlExtendedIntegerMultiply
(
IN LARGE_INTEGER Multiplicand,
IN LONG Multiplier
@ -859,7 +859,7 @@ XBSYSAPI EXPORTNUM(281) xboxkrnl::LARGE_INTEGER NTAPI xboxkrnl::RtlExtendedInteg
// ******************************************************************
// * 0x011A - RtlExtendedLargeIntegerDivide()
// ******************************************************************
XBSYSAPI EXPORTNUM(282) xboxkrnl::LARGE_INTEGER NTAPI xboxkrnl::RtlExtendedLargeIntegerDivide
XBSYSAPI EXPORTNUM(282) xbox::LARGE_INTEGER NTAPI xbox::RtlExtendedLargeIntegerDivide
(
IN LARGE_INTEGER Dividend,
IN ULONG Divisor,
@ -906,7 +906,7 @@ XBSYSAPI EXPORTNUM(282) xboxkrnl::LARGE_INTEGER NTAPI xboxkrnl::RtlExtendedLarge
// ******************************************************************
// * 0x011B - RtlExtendedMagicDivide()
// ******************************************************************
XBSYSAPI EXPORTNUM(283) xboxkrnl::LARGE_INTEGER NTAPI xboxkrnl::RtlExtendedMagicDivide
XBSYSAPI EXPORTNUM(283) xbox::LARGE_INTEGER NTAPI xbox::RtlExtendedMagicDivide
(
IN LARGE_INTEGER Dividend,
IN LARGE_INTEGER MagicDivisor,
@ -962,7 +962,7 @@ XBSYSAPI EXPORTNUM(283) xboxkrnl::LARGE_INTEGER NTAPI xboxkrnl::RtlExtendedMagic
// ******************************************************************
// * 0x011C - RtlFillMemory()
// ******************************************************************
XBSYSAPI EXPORTNUM(284) xboxkrnl::VOID NTAPI xboxkrnl::RtlFillMemory
XBSYSAPI EXPORTNUM(284) xbox::VOID NTAPI xbox::RtlFillMemory
(
IN VOID UNALIGNED *Destination,
IN DWORD Length,
@ -981,7 +981,7 @@ XBSYSAPI EXPORTNUM(284) xboxkrnl::VOID NTAPI xboxkrnl::RtlFillMemory
// ******************************************************************
// * 0x011D - RtlFillMemoryUlong()
// ******************************************************************
XBSYSAPI EXPORTNUM(285) xboxkrnl::VOID NTAPI xboxkrnl::RtlFillMemoryUlong
XBSYSAPI EXPORTNUM(285) xbox::VOID NTAPI xbox::RtlFillMemoryUlong
(
IN PVOID Destination,
IN SIZE_T Length,
@ -1013,7 +1013,7 @@ XBSYSAPI EXPORTNUM(285) xboxkrnl::VOID NTAPI xboxkrnl::RtlFillMemoryUlong
// ******************************************************************
// * 0x011E - RtlFreeAnsiString()
// ******************************************************************
XBSYSAPI EXPORTNUM(286) xboxkrnl::VOID NTAPI xboxkrnl::RtlFreeAnsiString
XBSYSAPI EXPORTNUM(286) xbox::VOID NTAPI xbox::RtlFreeAnsiString
(
IN OUT PANSI_STRING AnsiString
)
@ -1029,7 +1029,7 @@ XBSYSAPI EXPORTNUM(286) xboxkrnl::VOID NTAPI xboxkrnl::RtlFreeAnsiString
// ******************************************************************
// * 0x011F - RtlFreeUnicodeString()
// ******************************************************************
XBSYSAPI EXPORTNUM(287) xboxkrnl::VOID NTAPI xboxkrnl::RtlFreeUnicodeString
XBSYSAPI EXPORTNUM(287) xbox::VOID NTAPI xbox::RtlFreeUnicodeString
(
IN OUT PUNICODE_STRING UnicodeString
)
@ -1045,7 +1045,7 @@ XBSYSAPI EXPORTNUM(287) xboxkrnl::VOID NTAPI xboxkrnl::RtlFreeUnicodeString
// ******************************************************************
// * 0x0120 - RtlGetCallersAddress()
// ******************************************************************
XBSYSAPI EXPORTNUM(288) xboxkrnl::VOID NTAPI xboxkrnl::RtlGetCallersAddress
XBSYSAPI EXPORTNUM(288) xbox::VOID NTAPI xbox::RtlGetCallersAddress
(
OUT PVOID *CallersAddress,
OUT PVOID *CallersCaller
@ -1062,7 +1062,7 @@ XBSYSAPI EXPORTNUM(288) xboxkrnl::VOID NTAPI xboxkrnl::RtlGetCallersAddress
// ******************************************************************
// * 0x0121 - RtlInitAnsiString()
// ******************************************************************
XBSYSAPI EXPORTNUM(289) xboxkrnl::VOID NTAPI xboxkrnl::RtlInitAnsiString
XBSYSAPI EXPORTNUM(289) xbox::VOID NTAPI xbox::RtlInitAnsiString
(
IN OUT PANSI_STRING DestinationString,
IN PCSZ SourceString
@ -1088,7 +1088,7 @@ XBSYSAPI EXPORTNUM(289) xboxkrnl::VOID NTAPI xboxkrnl::RtlInitAnsiString
// ******************************************************************
// * 0x0122 - RtlInitUnicodeString()
// ******************************************************************
XBSYSAPI EXPORTNUM(290) xboxkrnl::VOID NTAPI xboxkrnl::RtlInitUnicodeString
XBSYSAPI EXPORTNUM(290) xbox::VOID NTAPI xbox::RtlInitUnicodeString
(
IN OUT PUNICODE_STRING DestinationString,
IN PCWSTR SourceString
@ -1113,7 +1113,7 @@ XBSYSAPI EXPORTNUM(290) xboxkrnl::VOID NTAPI xboxkrnl::RtlInitUnicodeString
// ******************************************************************
// * 0x0123 - RtlInitializeCriticalSection()
// ******************************************************************
XBSYSAPI EXPORTNUM(291) xboxkrnl::VOID NTAPI xboxkrnl::RtlInitializeCriticalSection
XBSYSAPI EXPORTNUM(291) xbox::VOID NTAPI xbox::RtlInitializeCriticalSection
(
IN PRTL_CRITICAL_SECTION CriticalSection
)
@ -1129,7 +1129,7 @@ XBSYSAPI EXPORTNUM(291) xboxkrnl::VOID NTAPI xboxkrnl::RtlInitializeCriticalSect
// ******************************************************************
// * 0x0124 - RtlIntegerToChar()
// ******************************************************************
XBSYSAPI EXPORTNUM(292) xboxkrnl::NTSTATUS NTAPI xboxkrnl::RtlIntegerToChar
XBSYSAPI EXPORTNUM(292) xbox::NTSTATUS NTAPI xbox::RtlIntegerToChar
(
IN ULONG Value,
IN ULONG Base,
@ -1188,7 +1188,7 @@ XBSYSAPI EXPORTNUM(292) xboxkrnl::NTSTATUS NTAPI xboxkrnl::RtlIntegerToChar
// ******************************************************************
// * 0x0125 - RtlIntegerToUnicodeString()
// ******************************************************************
XBSYSAPI EXPORTNUM(293) xboxkrnl::NTSTATUS NTAPI xboxkrnl::RtlIntegerToUnicodeString
XBSYSAPI EXPORTNUM(293) xbox::NTSTATUS NTAPI xbox::RtlIntegerToUnicodeString
(
IN ULONG Value,
IN ULONG Base,
@ -1220,7 +1220,7 @@ XBSYSAPI EXPORTNUM(293) xboxkrnl::NTSTATUS NTAPI xboxkrnl::RtlIntegerToUnicodeSt
// ******************************************************************
// * 0x0126 - RtlLeaveCriticalSection()
// ******************************************************************
XBSYSAPI EXPORTNUM(294) xboxkrnl::VOID NTAPI xboxkrnl::RtlLeaveCriticalSection
XBSYSAPI EXPORTNUM(294) xbox::VOID NTAPI xbox::RtlLeaveCriticalSection
(
IN PRTL_CRITICAL_SECTION CriticalSection
)
@ -1240,7 +1240,7 @@ XBSYSAPI EXPORTNUM(294) xboxkrnl::VOID NTAPI xboxkrnl::RtlLeaveCriticalSection
// ******************************************************************
// * 0x0127 - RtlLeaveCriticalSectionAndRegion()
// ******************************************************************
XBSYSAPI EXPORTNUM(295) xboxkrnl::VOID NTAPI xboxkrnl::RtlLeaveCriticalSectionAndRegion
XBSYSAPI EXPORTNUM(295) xbox::VOID NTAPI xbox::RtlLeaveCriticalSectionAndRegion
(
IN PRTL_CRITICAL_SECTION CriticalSection
)
@ -1257,7 +1257,7 @@ XBSYSAPI EXPORTNUM(295) xboxkrnl::VOID NTAPI xboxkrnl::RtlLeaveCriticalSectionAn
// ******************************************************************
// * 0x0128 - RtlLowerChar()
// ******************************************************************
XBSYSAPI EXPORTNUM(296) xboxkrnl::CHAR NTAPI xboxkrnl::RtlLowerChar
XBSYSAPI EXPORTNUM(296) xbox::CHAR NTAPI xbox::RtlLowerChar
(
CHAR Character
)
@ -1283,7 +1283,7 @@ XBSYSAPI EXPORTNUM(296) xboxkrnl::CHAR NTAPI xboxkrnl::RtlLowerChar
// ******************************************************************
// * 0x0129 - RtlMapGenericMask()
// ******************************************************************
XBSYSAPI EXPORTNUM(297) xboxkrnl::VOID NTAPI xboxkrnl::RtlMapGenericMask
XBSYSAPI EXPORTNUM(297) xbox::VOID NTAPI xbox::RtlMapGenericMask
(
IN PACCESS_MASK AccessMask,
IN PGENERIC_MAPPING GenericMapping
@ -1313,7 +1313,7 @@ XBSYSAPI EXPORTNUM(297) xboxkrnl::VOID NTAPI xboxkrnl::RtlMapGenericMask
// ******************************************************************
// * 0x012A - RtlMoveMemory()
// ******************************************************************
XBSYSAPI EXPORTNUM(298) xboxkrnl::VOID NTAPI xboxkrnl::RtlMoveMemory
XBSYSAPI EXPORTNUM(298) xbox::VOID NTAPI xbox::RtlMoveMemory
(
IN VOID UNALIGNED *Destination,
IN CONST VOID UNALIGNED *Source,
@ -1332,7 +1332,7 @@ XBSYSAPI EXPORTNUM(298) xboxkrnl::VOID NTAPI xboxkrnl::RtlMoveMemory
// ******************************************************************
// * 0x012B - RtlMultiByteToUnicodeN()
// ******************************************************************
XBSYSAPI EXPORTNUM(299) xboxkrnl::NTSTATUS NTAPI xboxkrnl::RtlMultiByteToUnicodeN
XBSYSAPI EXPORTNUM(299) xbox::NTSTATUS NTAPI xbox::RtlMultiByteToUnicodeN
(
IN PWSTR UnicodeString,
IN ULONG MaxBytesInUnicodeString,
@ -1370,7 +1370,7 @@ XBSYSAPI EXPORTNUM(299) xboxkrnl::NTSTATUS NTAPI xboxkrnl::RtlMultiByteToUnicode
// ******************************************************************
// * 0x012C - RtlMultiByteToUnicodeSize()
// ******************************************************************
XBSYSAPI EXPORTNUM(300) xboxkrnl::NTSTATUS NTAPI xboxkrnl::RtlMultiByteToUnicodeSize
XBSYSAPI EXPORTNUM(300) xbox::NTSTATUS NTAPI xbox::RtlMultiByteToUnicodeSize
(
IN PULONG BytesInUnicodeString,
IN PCHAR MultiByteString,
@ -1391,7 +1391,7 @@ XBSYSAPI EXPORTNUM(300) xboxkrnl::NTSTATUS NTAPI xboxkrnl::RtlMultiByteToUnicode
// ******************************************************************
// * 0x012D - RtlNtStatusToDosError()
// ******************************************************************
XBSYSAPI EXPORTNUM(301) xboxkrnl::ULONG NTAPI xboxkrnl::RtlNtStatusToDosError
XBSYSAPI EXPORTNUM(301) xbox::ULONG NTAPI xbox::RtlNtStatusToDosError
(
IN NTSTATUS Status
)
@ -1482,7 +1482,7 @@ static inline BOOL IsLeapYear(int Year)
// ******************************************************************
// * 0x012E - RtlRaiseException()
// ******************************************************************
XBSYSAPI EXPORTNUM(302) xboxkrnl::VOID NTAPI xboxkrnl::RtlRaiseException
XBSYSAPI EXPORTNUM(302) xbox::VOID NTAPI xbox::RtlRaiseException
(
IN PEXCEPTION_RECORD ExceptionRecord
)
@ -1495,7 +1495,7 @@ XBSYSAPI EXPORTNUM(302) xboxkrnl::VOID NTAPI xboxkrnl::RtlRaiseException
// ******************************************************************
// * 0x012F - RtlRaiseStatus()
// ******************************************************************
XBSYSAPI EXPORTNUM(303) xboxkrnl::VOID NTAPI xboxkrnl::RtlRaiseStatus
XBSYSAPI EXPORTNUM(303) xbox::VOID NTAPI xbox::RtlRaiseStatus
(
IN NTSTATUS Status
)
@ -1514,7 +1514,7 @@ XBSYSAPI EXPORTNUM(303) xboxkrnl::VOID NTAPI xboxkrnl::RtlRaiseStatus
// ******************************************************************
// * 0x0130 - RtlTimeFieldsToTime()
// ******************************************************************
XBSYSAPI EXPORTNUM(304) xboxkrnl::BOOLEAN NTAPI xboxkrnl::RtlTimeFieldsToTime
XBSYSAPI EXPORTNUM(304) xbox::BOOLEAN NTAPI xbox::RtlTimeFieldsToTime
(
IN PTIME_FIELDS TimeFields,
OUT PLARGE_INTEGER Time
@ -1574,7 +1574,7 @@ XBSYSAPI EXPORTNUM(304) xboxkrnl::BOOLEAN NTAPI xboxkrnl::RtlTimeFieldsToTime
// ******************************************************************
// * 0x0131 - RtlTimeToTimeFields()
// ******************************************************************
XBSYSAPI EXPORTNUM(305) xboxkrnl::VOID NTAPI xboxkrnl::RtlTimeToTimeFields
XBSYSAPI EXPORTNUM(305) xbox::VOID NTAPI xbox::RtlTimeToTimeFields
(
IN PLARGE_INTEGER Time,
OUT PTIME_FIELDS TimeFields
@ -1637,7 +1637,7 @@ XBSYSAPI EXPORTNUM(305) xboxkrnl::VOID NTAPI xboxkrnl::RtlTimeToTimeFields
// ******************************************************************
// * 0x0132 - RtlTryEnterCriticalSection()
// ******************************************************************
XBSYSAPI EXPORTNUM(306) xboxkrnl::BOOLEAN NTAPI xboxkrnl::RtlTryEnterCriticalSection
XBSYSAPI EXPORTNUM(306) xbox::BOOLEAN NTAPI xbox::RtlTryEnterCriticalSection
(
IN PRTL_CRITICAL_SECTION CriticalSection
)
@ -1666,7 +1666,7 @@ XBSYSAPI EXPORTNUM(306) xboxkrnl::BOOLEAN NTAPI xboxkrnl::RtlTryEnterCriticalSec
// ******************************************************************
// * 0x0133 - RtlUlongByteSwap()
// ******************************************************************
XBSYSAPI EXPORTNUM(307) xboxkrnl::ULONG FASTCALL xboxkrnl::RtlUlongByteSwap
XBSYSAPI EXPORTNUM(307) xbox::ULONG FASTCALL xbox::RtlUlongByteSwap
(
IN ULONG Source
)
@ -1678,7 +1678,7 @@ XBSYSAPI EXPORTNUM(307) xboxkrnl::ULONG FASTCALL xboxkrnl::RtlUlongByteSwap
RETURN(ret);
}
DWORD WINAPI RtlUnicodeStringToAnsiSize(const xboxkrnl::UNICODE_STRING *str)
DWORD WINAPI RtlUnicodeStringToAnsiSize(const xbox::UNICODE_STRING *str)
{
const wchar_t *src = (const wchar_t *)(str->Buffer);
DWORD ret = wcsrtombs(nullptr, &src, (size_t)str->Length, nullptr);
@ -1688,7 +1688,7 @@ DWORD WINAPI RtlUnicodeStringToAnsiSize(const xboxkrnl::UNICODE_STRING *str)
// ******************************************************************
// * 0x0134 - RtlUnicodeStringToAnsiString()
// ******************************************************************
XBSYSAPI EXPORTNUM(308) xboxkrnl::NTSTATUS NTAPI xboxkrnl::RtlUnicodeStringToAnsiString
XBSYSAPI EXPORTNUM(308) xbox::NTSTATUS NTAPI xbox::RtlUnicodeStringToAnsiString
(
IN OUT PSTRING DestinationString,
IN PUNICODE_STRING SourceString,
@ -1729,7 +1729,7 @@ XBSYSAPI EXPORTNUM(308) xboxkrnl::NTSTATUS NTAPI xboxkrnl::RtlUnicodeStringToAns
// ******************************************************************
// * 0x0135 - RtlUnicodeStringToInteger()
// ******************************************************************
XBSYSAPI EXPORTNUM(309) xboxkrnl::NTSTATUS NTAPI xboxkrnl::RtlUnicodeStringToInteger
XBSYSAPI EXPORTNUM(309) xbox::NTSTATUS NTAPI xbox::RtlUnicodeStringToInteger
(
IN PUNICODE_STRING String,
IN ULONG Base,
@ -1828,7 +1828,7 @@ XBSYSAPI EXPORTNUM(309) xboxkrnl::NTSTATUS NTAPI xboxkrnl::RtlUnicodeStringToInt
// ******************************************************************
// * 0x0136 - RtlUnicodeToMultiByteN()
// ******************************************************************
XBSYSAPI EXPORTNUM(310) xboxkrnl::NTSTATUS NTAPI xboxkrnl::RtlUnicodeToMultiByteN
XBSYSAPI EXPORTNUM(310) xbox::NTSTATUS NTAPI xbox::RtlUnicodeToMultiByteN
(
IN PCHAR MultiByteString,
IN ULONG MaxBytesInMultiByteString,
@ -1866,7 +1866,7 @@ XBSYSAPI EXPORTNUM(310) xboxkrnl::NTSTATUS NTAPI xboxkrnl::RtlUnicodeToMultiByte
// ******************************************************************
// * 0x0137 - RtlUnicodeToMultiByteSize()
// ******************************************************************
XBSYSAPI EXPORTNUM(311) xboxkrnl::NTSTATUS NTAPI xboxkrnl::RtlUnicodeToMultiByteSize
XBSYSAPI EXPORTNUM(311) xbox::NTSTATUS NTAPI xbox::RtlUnicodeToMultiByteSize
(
IN PULONG BytesInMultiByteString,
IN PWSTR UnicodeString,
@ -1887,7 +1887,7 @@ XBSYSAPI EXPORTNUM(311) xboxkrnl::NTSTATUS NTAPI xboxkrnl::RtlUnicodeToMultiByte
// ******************************************************************
// * 0x0138 - RtlUnwind()
// ******************************************************************
XBSYSAPI EXPORTNUM(312) xboxkrnl::VOID NTAPI xboxkrnl::RtlUnwind
XBSYSAPI EXPORTNUM(312) xbox::VOID NTAPI xbox::RtlUnwind
(
IN PVOID TargetFrame OPTIONAL,
IN PVOID TargetIp OPTIONAL,
@ -1908,7 +1908,7 @@ XBSYSAPI EXPORTNUM(312) xboxkrnl::VOID NTAPI xboxkrnl::RtlUnwind
// ******************************************************************
// * 0x0139 - RtlUpcaseUnicodeChar()
// ******************************************************************
XBSYSAPI EXPORTNUM(313) xboxkrnl::WCHAR NTAPI xboxkrnl::RtlUpcaseUnicodeChar
XBSYSAPI EXPORTNUM(313) xbox::WCHAR NTAPI xbox::RtlUpcaseUnicodeChar
(
IN WCHAR SourceCharacter
)
@ -1923,7 +1923,7 @@ XBSYSAPI EXPORTNUM(313) xboxkrnl::WCHAR NTAPI xboxkrnl::RtlUpcaseUnicodeChar
// ******************************************************************
// * 0x013A - RtlUpcaseUnicodeString()
// ******************************************************************
XBSYSAPI EXPORTNUM(314) xboxkrnl::NTSTATUS NTAPI xboxkrnl::RtlUpcaseUnicodeString
XBSYSAPI EXPORTNUM(314) xbox::NTSTATUS NTAPI xbox::RtlUpcaseUnicodeString
(
OUT PUNICODE_STRING DestinationString,
IN PUNICODE_STRING SourceString,
@ -1964,7 +1964,7 @@ XBSYSAPI EXPORTNUM(314) xboxkrnl::NTSTATUS NTAPI xboxkrnl::RtlUpcaseUnicodeStrin
// ******************************************************************
// * 0x013B - RtlUpcaseUnicodeToMultiByteN()
// ******************************************************************
XBSYSAPI EXPORTNUM(315) xboxkrnl::NTSTATUS NTAPI xboxkrnl::RtlUpcaseUnicodeToMultiByteN
XBSYSAPI EXPORTNUM(315) xbox::NTSTATUS NTAPI xbox::RtlUpcaseUnicodeToMultiByteN
(
IN OUT PCHAR MultiByteString,
IN ULONG MaxBytesInMultiByteString,
@ -2005,7 +2005,7 @@ XBSYSAPI EXPORTNUM(315) xboxkrnl::NTSTATUS NTAPI xboxkrnl::RtlUpcaseUnicodeToMul
// ******************************************************************
// * 0x013C - RtlUpperChar()
// ******************************************************************
XBSYSAPI EXPORTNUM(316) xboxkrnl::CHAR NTAPI xboxkrnl::RtlUpperChar
XBSYSAPI EXPORTNUM(316) xbox::CHAR NTAPI xbox::RtlUpperChar
(
CHAR Character
)
@ -2036,7 +2036,7 @@ XBSYSAPI EXPORTNUM(316) xboxkrnl::CHAR NTAPI xboxkrnl::RtlUpperChar
// ******************************************************************
// * 0x013D - RtlUpperString()
// ******************************************************************
XBSYSAPI EXPORTNUM(317) xboxkrnl::VOID NTAPI xboxkrnl::RtlUpperString
XBSYSAPI EXPORTNUM(317) xbox::VOID NTAPI xbox::RtlUpperString
(
OUT PSTRING DestinationString,
IN PSTRING SourceString
@ -2064,7 +2064,7 @@ XBSYSAPI EXPORTNUM(317) xboxkrnl::VOID NTAPI xboxkrnl::RtlUpperString
// ******************************************************************
// * 0x013E - RtlUshortByteSwap()
// ******************************************************************
XBSYSAPI EXPORTNUM(318) xboxkrnl::USHORT FASTCALL xboxkrnl::RtlUshortByteSwap
XBSYSAPI EXPORTNUM(318) xbox::USHORT FASTCALL xbox::RtlUshortByteSwap
(
IN USHORT Source
)
@ -2079,7 +2079,7 @@ XBSYSAPI EXPORTNUM(318) xboxkrnl::USHORT FASTCALL xboxkrnl::RtlUshortByteSwap
// ******************************************************************
// * 0x013F - RtlWalkFrameChain()
// ******************************************************************
XBSYSAPI EXPORTNUM(319) xboxkrnl::ULONG NTAPI xboxkrnl::RtlWalkFrameChain
XBSYSAPI EXPORTNUM(319) xbox::ULONG NTAPI xbox::RtlWalkFrameChain
(
OUT PVOID *Callers,
IN ULONG Count,
@ -2100,7 +2100,7 @@ XBSYSAPI EXPORTNUM(319) xboxkrnl::ULONG NTAPI xboxkrnl::RtlWalkFrameChain
// ******************************************************************
// * 0x0140 - RtlZeroMemory()
// ******************************************************************
XBSYSAPI EXPORTNUM(320) xboxkrnl::VOID NTAPI xboxkrnl::RtlZeroMemory
XBSYSAPI EXPORTNUM(320) xbox::VOID NTAPI xbox::RtlZeroMemory
(
IN VOID UNALIGNED *Destination,
IN SIZE_T Length
@ -2117,7 +2117,7 @@ XBSYSAPI EXPORTNUM(320) xboxkrnl::VOID NTAPI xboxkrnl::RtlZeroMemory
// ******************************************************************
// * 0x0160 - RtlRip
// ******************************************************************
XBSYSAPI EXPORTNUM(352) xboxkrnl::VOID NTAPI xboxkrnl::RtlRip
XBSYSAPI EXPORTNUM(352) xbox::VOID NTAPI xbox::RtlRip
(
PCHAR ApiName,
PCHAR Expression,

View File

@ -34,18 +34,18 @@
// Certificate Key
// Not exported but used to generate per-title keys
xboxkrnl::XBOX_KEY_DATA xboxkrnl::XboxCertificateKey = { 0 };
xbox::XBOX_KEY_DATA xbox::XboxCertificateKey = { 0 };
// ******************************************************************
// * 0x0141 - XboxEEPROMKey
// ******************************************************************
// TODO : What should we initialize this to?
XBSYSAPI EXPORTNUM(321) xboxkrnl::XBOX_KEY_DATA xboxkrnl::XboxEEPROMKey = { 0 };
XBSYSAPI EXPORTNUM(321) xbox::XBOX_KEY_DATA xbox::XboxEEPROMKey = { 0 };
// ******************************************************************
// * 0x0142 - XboxHardwareInfo
// ******************************************************************
XBSYSAPI EXPORTNUM(322) xboxkrnl::XBOX_HARDWARE_INFO xboxkrnl::XboxHardwareInfo =
XBSYSAPI EXPORTNUM(322) xbox::XBOX_HARDWARE_INFO xbox::XboxHardwareInfo =
{
0xC0000031, // Flags: 1=INTERNAL_USB, 2=DEVKIT, 4=MACROVISION, 8=CHIHIRO
0xA2, // GpuRevision, byte read from NV2A first register, at 0xFD0000000 - see NV_PMC_BOOT_0
@ -57,13 +57,13 @@ XBSYSAPI EXPORTNUM(322) xboxkrnl::XBOX_HARDWARE_INFO xboxkrnl::XboxHardwareInfo
// ******************************************************************
// * 0x0143 - XboxHDKey
// ******************************************************************
XBSYSAPI EXPORTNUM(323) xboxkrnl::XBOX_KEY_DATA xboxkrnl::XboxHDKey = { 0 };
XBSYSAPI EXPORTNUM(323) xbox::XBOX_KEY_DATA xbox::XboxHDKey = { 0 };
// ******************************************************************
// * 0x0144 - XboxKrnlVersion
// ******************************************************************
// Xbox Kernel version (part of kernel thunk table)
XBSYSAPI EXPORTNUM(324) xboxkrnl::XBOX_KRNL_VERSION xboxkrnl::XboxKrnlVersion =
XBSYSAPI EXPORTNUM(324) xbox::XBOX_KRNL_VERSION xbox::XboxKrnlVersion =
{
// Default Cxbx to emulating kernel version 5838 :
1, 0, 5838, 1 // TODO : Make this configurable
@ -74,19 +74,19 @@ XBSYSAPI EXPORTNUM(324) xboxkrnl::XBOX_KRNL_VERSION xboxkrnl::XboxKrnlVersion =
// Generated in SetupPerTitleKeys() using the Certificate Key and the
// XBE's Signature Key
// ******************************************************************
XBSYSAPI EXPORTNUM(325) xboxkrnl::XBOX_KEY_DATA xboxkrnl::XboxSignatureKey = { 0 };
XBSYSAPI EXPORTNUM(325) xbox::XBOX_KEY_DATA xbox::XboxSignatureKey = { 0 };
// ******************************************************************
// * 0x0161 - XboxLANKey
// Generated in SetupPerTitleKeys() using the Certificate Key and the
// XBE's LAN Key
// ******************************************************************
XBSYSAPI EXPORTNUM(353) xboxkrnl::XBOX_KEY_DATA xboxkrnl::XboxLANKey = { 0 };
XBSYSAPI EXPORTNUM(353) xbox::XBOX_KEY_DATA xbox::XboxLANKey = { 0 };
// ******************************************************************
// * 0x0162 - XboxAlternateSignatureKeys
// Generated in SetupPerTitleKeys() using the Certificate Key and the
// XBE's Alternate Signature Keys Key
// ******************************************************************
XBSYSAPI EXPORTNUM(354) xboxkrnl::XBOX_KEY_DATA xboxkrnl::XboxAlternateSignatureKeys[ALTERNATE_SIGNATURE_COUNT] = { 0 };
XBSYSAPI EXPORTNUM(354) xbox::XBOX_KEY_DATA xbox::XboxAlternateSignatureKeys[ALTERNATE_SIGNATURE_COUNT] = { 0 };

View File

@ -48,9 +48,9 @@ namespace NtDll
// The following are the default implementations of the crypto functions
xboxkrnl::VOID NTAPI JumpedSHAInit
xbox::VOID NTAPI JumpedSHAInit
(
xboxkrnl::PUCHAR pbSHAContext
xbox::PUCHAR pbSHAContext
)
{
// The sha1 context supplied to this function has an extra 24 bytes at the beginning which are unsed by our implementation,
@ -59,54 +59,54 @@ xboxkrnl::VOID NTAPI JumpedSHAInit
SHA1Init((SHA1_CTX*)(pbSHAContext + 24));
}
xboxkrnl::VOID NTAPI JumpedSHAUpdate
xbox::VOID NTAPI JumpedSHAUpdate
(
xboxkrnl::PUCHAR pbSHAContext,
xboxkrnl::PUCHAR pbInput,
xboxkrnl::ULONG dwInputLength
xbox::PUCHAR pbSHAContext,
xbox::PUCHAR pbInput,
xbox::ULONG dwInputLength
)
{
SHA1Update((SHA1_CTX*)(pbSHAContext + 24), pbInput, dwInputLength);
}
xboxkrnl::VOID NTAPI JumpedSHAFinal
xbox::VOID NTAPI JumpedSHAFinal
(
xboxkrnl::PUCHAR pbSHAContext,
xboxkrnl::PUCHAR pbDigest
xbox::PUCHAR pbSHAContext,
xbox::PUCHAR pbDigest
)
{
SHA1Final(pbDigest, (SHA1_CTX*)(pbSHAContext + 24));
}
xboxkrnl::VOID NTAPI JumpedRC4Key
xbox::VOID NTAPI JumpedRC4Key
(
xboxkrnl::PUCHAR pbKeyStruct,
xboxkrnl::ULONG dwKeyLength,
xboxkrnl::PUCHAR pbKey
xbox::PUCHAR pbKeyStruct,
xbox::ULONG dwKeyLength,
xbox::PUCHAR pbKey
)
{
Rc4Initialise((Rc4Context*)pbKeyStruct, pbKey, dwKeyLength, 0);
}
xboxkrnl::VOID NTAPI JumpedRC4Crypt
xbox::VOID NTAPI JumpedRC4Crypt
(
xboxkrnl::PUCHAR pbKeyStruct,
xboxkrnl::ULONG dwInputLength,
xboxkrnl::PUCHAR pbInput
xbox::PUCHAR pbKeyStruct,
xbox::ULONG dwInputLength,
xbox::PUCHAR pbInput
)
{
Rc4Xor((Rc4Context*)pbKeyStruct, pbInput, pbInput, dwInputLength);
}
xboxkrnl::VOID NTAPI JumpedHMAC
xbox::VOID NTAPI JumpedHMAC
(
xboxkrnl::PBYTE pbKeyMaterial,
xboxkrnl::ULONG cbKeyMaterial,
xboxkrnl::PBYTE pbData,
xboxkrnl::ULONG cbData,
xboxkrnl::PBYTE pbData2,
xboxkrnl::ULONG cbData2,
xboxkrnl::PBYTE HmacData
xbox::PBYTE pbKeyMaterial,
xbox::ULONG cbKeyMaterial,
xbox::PBYTE pbData,
xbox::ULONG cbData,
xbox::PBYTE pbData2,
xbox::ULONG cbData2,
xbox::PBYTE HmacData
)
{
if (cbKeyMaterial > 64) {
@ -147,11 +147,11 @@ xboxkrnl::VOID NTAPI JumpedHMAC
SHA1Final(HmacData, &ShaContext);
}
xboxkrnl::ULONG NTAPI JumpedPKEncPublic
xbox::ULONG NTAPI JumpedPKEncPublic
(
xboxkrnl::PUCHAR pbPubKey,
xboxkrnl::PUCHAR pbInput,
xboxkrnl::PUCHAR pbOutput
xbox::PUCHAR pbPubKey,
xbox::PUCHAR pbInput,
xbox::PUCHAR pbOutput
)
{
ULONG ret = 0;
@ -161,11 +161,11 @@ xboxkrnl::ULONG NTAPI JumpedPKEncPublic
return ret;
}
xboxkrnl::ULONG NTAPI JumpedPKDecPrivate
xbox::ULONG NTAPI JumpedPKDecPrivate
(
xboxkrnl::PUCHAR pbPrvKey,
xboxkrnl::PUCHAR pbInput,
xboxkrnl::PUCHAR pbOutput
xbox::PUCHAR pbPrvKey,
xbox::PUCHAR pbInput,
xbox::PUCHAR pbOutput
)
{
ULONG ret = 0;
@ -175,9 +175,9 @@ xboxkrnl::ULONG NTAPI JumpedPKDecPrivate
return ret;
}
xboxkrnl::ULONG NTAPI JumpedPKGetKeyLen
xbox::ULONG NTAPI JumpedPKGetKeyLen
(
xboxkrnl::PUCHAR pbPubKey
xbox::PUCHAR pbPubKey
)
{
ULONG ret = 0;
@ -187,11 +187,11 @@ xboxkrnl::ULONG NTAPI JumpedPKGetKeyLen
return ret;
}
xboxkrnl::BOOLEAN NTAPI JumpedVerifyPKCS1Signature
xbox::BOOLEAN NTAPI JumpedVerifyPKCS1Signature
(
xboxkrnl::PUCHAR pbSig,
xboxkrnl::PUCHAR pbPubKey,
xboxkrnl::PUCHAR pbDigest
xbox::PUCHAR pbSig,
xbox::PUCHAR pbPubKey,
xbox::PUCHAR pbDigest
)
{
BOOLEAN ret = TRUE;
@ -201,13 +201,13 @@ xboxkrnl::BOOLEAN NTAPI JumpedVerifyPKCS1Signature
return ret;
}
xboxkrnl::ULONG NTAPI JumpedModExp
xbox::ULONG NTAPI JumpedModExp
(
xboxkrnl::LPDWORD pA,
xboxkrnl::LPDWORD pB,
xboxkrnl::LPDWORD pC,
xboxkrnl::LPDWORD pD,
xboxkrnl::ULONG dwN
xbox::LPDWORD pA,
xbox::LPDWORD pB,
xbox::LPDWORD pC,
xbox::LPDWORD pD,
xbox::ULONG dwN
)
{
unsigned int len = dwN * 4;
@ -218,20 +218,20 @@ xboxkrnl::ULONG NTAPI JumpedModExp
return 0;
}
xboxkrnl::VOID NTAPI JumpedDESKeyParity
xbox::VOID NTAPI JumpedDESKeyParity
(
xboxkrnl::PUCHAR pbKey,
xboxkrnl::ULONG dwKeyLength
xbox::PUCHAR pbKey,
xbox::ULONG dwKeyLength
)
{
mbedtls_des_key_set_parity(pbKey, dwKeyLength);
}
xboxkrnl::VOID NTAPI JumpedKeyTable
xbox::VOID NTAPI JumpedKeyTable
(
xboxkrnl::ULONG dwCipher,
xboxkrnl::PUCHAR pbKeyTable,
xboxkrnl::PUCHAR pbKey
xbox::ULONG dwCipher,
xbox::PUCHAR pbKeyTable,
xbox::PUCHAR pbKey
)
{
if (dwCipher) {
@ -242,13 +242,13 @@ xboxkrnl::VOID NTAPI JumpedKeyTable
}
}
xboxkrnl::VOID NTAPI JumpedBlockCrypt
xbox::VOID NTAPI JumpedBlockCrypt
(
xboxkrnl::ULONG dwCipher,
xboxkrnl::PUCHAR pbOutput,
xboxkrnl::PUCHAR pbInput,
xboxkrnl::PUCHAR pbKeyTable,
xboxkrnl::ULONG dwOp
xbox::ULONG dwCipher,
xbox::PUCHAR pbOutput,
xbox::PUCHAR pbInput,
xbox::PUCHAR pbKeyTable,
xbox::ULONG dwOp
)
{
if (dwCipher) {
@ -259,15 +259,15 @@ xboxkrnl::VOID NTAPI JumpedBlockCrypt
}
}
xboxkrnl::VOID NTAPI JumpedBlockCryptCBC
xbox::VOID NTAPI JumpedBlockCryptCBC
(
xboxkrnl::ULONG dwCipher,
xboxkrnl::ULONG dwInputLength,
xboxkrnl::PUCHAR pbOutput,
xboxkrnl::PUCHAR pbInput,
xboxkrnl::PUCHAR pbKeyTable,
xboxkrnl::ULONG dwOp,
xboxkrnl::PUCHAR pbFeedback
xbox::ULONG dwCipher,
xbox::ULONG dwInputLength,
xbox::PUCHAR pbOutput,
xbox::PUCHAR pbInput,
xbox::PUCHAR pbKeyTable,
xbox::ULONG dwOp,
xbox::PUCHAR pbFeedback
)
{
int ret;
@ -284,10 +284,10 @@ xboxkrnl::VOID NTAPI JumpedBlockCryptCBC
}
}
xboxkrnl::ULONG NTAPI JumpedCryptService
xbox::ULONG NTAPI JumpedCryptService
(
xboxkrnl::ULONG dwOp,
xboxkrnl::PVOID pArgs
xbox::ULONG dwOp,
xbox::PVOID pArgs
)
{
// This seems to be a dummy function. It just returns zero regardless of the input arguments, which are left unchanged.
@ -296,7 +296,7 @@ xboxkrnl::ULONG NTAPI JumpedCryptService
}
/* This struct contains the original crypto functions exposed by the kernel */
const xboxkrnl::CRYPTO_VECTOR DefaultCryptoStruct =
const xbox::CRYPTO_VECTOR DefaultCryptoStruct =
{
JumpedSHAInit,
JumpedSHAUpdate,
@ -317,12 +317,12 @@ const xboxkrnl::CRYPTO_VECTOR DefaultCryptoStruct =
};
/* This struct contains the updated crypto functions which can be changed by the title with XcUpdateCrypto */
xboxkrnl::CRYPTO_VECTOR UpdatedCryptoStruct = DefaultCryptoStruct;
xbox::CRYPTO_VECTOR UpdatedCryptoStruct = DefaultCryptoStruct;
// ******************************************************************
// * 0x015F - XcUpdateCrypto()
// ******************************************************************
XBSYSAPI EXPORTNUM(351) xboxkrnl::VOID NTAPI xboxkrnl::XcUpdateCrypto
XBSYSAPI EXPORTNUM(351) xbox::VOID NTAPI xbox::XcUpdateCrypto
(
IN PCRYPTO_VECTOR pNewVector,
OUT PCRYPTO_VECTOR pROMVector OPTIONAL
@ -413,7 +413,7 @@ XBSYSAPI EXPORTNUM(351) xboxkrnl::VOID NTAPI xboxkrnl::XcUpdateCrypto
// ******************************************************************
// * 0x014F - XcSHAInit()
// ******************************************************************
XBSYSAPI EXPORTNUM(335) xboxkrnl::VOID NTAPI xboxkrnl::XcSHAInit
XBSYSAPI EXPORTNUM(335) xbox::VOID NTAPI xbox::XcSHAInit
(
IN PUCHAR pbSHAContext
)
@ -426,7 +426,7 @@ XBSYSAPI EXPORTNUM(335) xboxkrnl::VOID NTAPI xboxkrnl::XcSHAInit
// ******************************************************************
// * 0x0150 - XcSHAUpdate()
// ******************************************************************
XBSYSAPI EXPORTNUM(336) xboxkrnl::VOID NTAPI xboxkrnl::XcSHAUpdate
XBSYSAPI EXPORTNUM(336) xbox::VOID NTAPI xbox::XcSHAUpdate
(
PUCHAR pbSHAContext,
PUCHAR pbInput,
@ -445,7 +445,7 @@ XBSYSAPI EXPORTNUM(336) xboxkrnl::VOID NTAPI xboxkrnl::XcSHAUpdate
// ******************************************************************
// * 0x0151 - XcSHAFinal()
// ******************************************************************
XBSYSAPI EXPORTNUM(337) xboxkrnl::VOID NTAPI xboxkrnl::XcSHAFinal
XBSYSAPI EXPORTNUM(337) xbox::VOID NTAPI xbox::XcSHAFinal
(
IN PUCHAR pbSHAContext,
IN PUCHAR pbDigest
@ -462,7 +462,7 @@ XBSYSAPI EXPORTNUM(337) xboxkrnl::VOID NTAPI xboxkrnl::XcSHAFinal
// ******************************************************************
// * 0x0152 - XcRC4Key()
// ******************************************************************
XBSYSAPI EXPORTNUM(338) xboxkrnl::VOID NTAPI xboxkrnl::XcRC4Key
XBSYSAPI EXPORTNUM(338) xbox::VOID NTAPI xbox::XcRC4Key
(
IN PUCHAR pbKeyStruct,
IN ULONG dwKeyLength,
@ -481,7 +481,7 @@ XBSYSAPI EXPORTNUM(338) xboxkrnl::VOID NTAPI xboxkrnl::XcRC4Key
// ******************************************************************
// * 0x0153 - XcRC4Crypt
// ******************************************************************
XBSYSAPI EXPORTNUM(339) xboxkrnl::VOID NTAPI xboxkrnl::XcRC4Crypt
XBSYSAPI EXPORTNUM(339) xbox::VOID NTAPI xbox::XcRC4Crypt
(
IN PUCHAR pbKeyStruct,
IN ULONG dwInputLength,
@ -500,7 +500,7 @@ XBSYSAPI EXPORTNUM(339) xboxkrnl::VOID NTAPI xboxkrnl::XcRC4Crypt
// ******************************************************************
// * 0x0154 - XcHMAC()
// ******************************************************************
XBSYSAPI EXPORTNUM(340) xboxkrnl::VOID NTAPI xboxkrnl::XcHMAC
XBSYSAPI EXPORTNUM(340) xbox::VOID NTAPI xbox::XcHMAC
(
IN PBYTE pbKeyMaterial,
IN ULONG cbKeyMaterial,
@ -527,7 +527,7 @@ XBSYSAPI EXPORTNUM(340) xboxkrnl::VOID NTAPI xboxkrnl::XcHMAC
// ******************************************************************
// * 0x0155 - XcPKEncPublic()
// ******************************************************************
XBSYSAPI EXPORTNUM(341) xboxkrnl::ULONG NTAPI xboxkrnl::XcPKEncPublic
XBSYSAPI EXPORTNUM(341) xbox::ULONG NTAPI xbox::XcPKEncPublic
(
IN PUCHAR pbPubKey,
IN PUCHAR pbInput,
@ -548,7 +548,7 @@ XBSYSAPI EXPORTNUM(341) xboxkrnl::ULONG NTAPI xboxkrnl::XcPKEncPublic
// ******************************************************************
// * 0x0156 - XcPKDecPrivate()
// ******************************************************************
XBSYSAPI EXPORTNUM(342) xboxkrnl::ULONG NTAPI xboxkrnl::XcPKDecPrivate
XBSYSAPI EXPORTNUM(342) xbox::ULONG NTAPI xbox::XcPKDecPrivate
(
IN PUCHAR pbPrvKey,
IN PUCHAR pbInput,
@ -569,7 +569,7 @@ XBSYSAPI EXPORTNUM(342) xboxkrnl::ULONG NTAPI xboxkrnl::XcPKDecPrivate
// ******************************************************************
// * 0x0157 - XcPKGetKeyLen()
// ******************************************************************
XBSYSAPI EXPORTNUM(343) xboxkrnl::ULONG NTAPI xboxkrnl::XcPKGetKeyLen
XBSYSAPI EXPORTNUM(343) xbox::ULONG NTAPI xbox::XcPKGetKeyLen
(
OUT PUCHAR pbPubKey
)
@ -584,7 +584,7 @@ XBSYSAPI EXPORTNUM(343) xboxkrnl::ULONG NTAPI xboxkrnl::XcPKGetKeyLen
// ******************************************************************
// * 0x0158 - XcVerifyPKCS1Signature()
// ******************************************************************
XBSYSAPI EXPORTNUM(344) xboxkrnl::BOOLEAN NTAPI xboxkrnl::XcVerifyPKCS1Signature
XBSYSAPI EXPORTNUM(344) xbox::BOOLEAN NTAPI xbox::XcVerifyPKCS1Signature
(
IN PUCHAR pbSig,
IN PUCHAR pbPubKey,
@ -605,7 +605,7 @@ XBSYSAPI EXPORTNUM(344) xboxkrnl::BOOLEAN NTAPI xboxkrnl::XcVerifyPKCS1Signature
// ******************************************************************
// * 0x0159 - XcModExp()
// ******************************************************************
XBSYSAPI EXPORTNUM(345) xboxkrnl::ULONG NTAPI xboxkrnl::XcModExp
XBSYSAPI EXPORTNUM(345) xbox::ULONG NTAPI xbox::XcModExp
(
IN LPDWORD pA,
IN LPDWORD pB,
@ -630,7 +630,7 @@ XBSYSAPI EXPORTNUM(345) xboxkrnl::ULONG NTAPI xboxkrnl::XcModExp
// ******************************************************************
// * 0x015A - XcDESKeyParity()
// ******************************************************************
XBSYSAPI EXPORTNUM(346) xboxkrnl::VOID NTAPI xboxkrnl::XcDESKeyParity
XBSYSAPI EXPORTNUM(346) xbox::VOID NTAPI xbox::XcDESKeyParity
(
IN PUCHAR pbKey,
IN ULONG dwKeyLength
@ -647,7 +647,7 @@ XBSYSAPI EXPORTNUM(346) xboxkrnl::VOID NTAPI xboxkrnl::XcDESKeyParity
// ******************************************************************
// * 0x015B - XcKeyTable()
// ******************************************************************
XBSYSAPI EXPORTNUM(347) xboxkrnl::VOID NTAPI xboxkrnl::XcKeyTable
XBSYSAPI EXPORTNUM(347) xbox::VOID NTAPI xbox::XcKeyTable
(
IN ULONG dwCipher,
OUT PUCHAR pbKeyTable,
@ -666,7 +666,7 @@ XBSYSAPI EXPORTNUM(347) xboxkrnl::VOID NTAPI xboxkrnl::XcKeyTable
// ******************************************************************
// * 0x015C - XcBlockCrypt()
// ******************************************************************
XBSYSAPI EXPORTNUM(348) xboxkrnl::VOID NTAPI xboxkrnl::XcBlockCrypt
XBSYSAPI EXPORTNUM(348) xbox::VOID NTAPI xbox::XcBlockCrypt
(
IN ULONG dwCipher,
OUT PUCHAR pbOutput,
@ -689,7 +689,7 @@ XBSYSAPI EXPORTNUM(348) xboxkrnl::VOID NTAPI xboxkrnl::XcBlockCrypt
// ******************************************************************
// * 0x015D - XcBlockCryptCBC()
// ******************************************************************
XBSYSAPI EXPORTNUM(349) xboxkrnl::VOID NTAPI xboxkrnl::XcBlockCryptCBC
XBSYSAPI EXPORTNUM(349) xbox::VOID NTAPI xbox::XcBlockCryptCBC
(
IN ULONG dwCipher,
IN ULONG dwInputLength,
@ -716,7 +716,7 @@ XBSYSAPI EXPORTNUM(349) xboxkrnl::VOID NTAPI xboxkrnl::XcBlockCryptCBC
// ******************************************************************
// * 0x015E - XcCryptService()
// ******************************************************************
XBSYSAPI EXPORTNUM(350) xboxkrnl::ULONG NTAPI xboxkrnl::XcCryptService
XBSYSAPI EXPORTNUM(350) xbox::ULONG NTAPI xbox::XcCryptService
(
IN ULONG dwOp,
IN PVOID pArgs

View File

@ -38,7 +38,7 @@
// ******************************************************************
// * 0x0146 - XeImageFileName
// ******************************************************************
XBSYSAPI EXPORTNUM(326) xboxkrnl::OBJECT_STRING xboxkrnl::XeImageFileName =
XBSYSAPI EXPORTNUM(326) xbox::OBJECT_STRING xbox::XeImageFileName =
// XeImageFileName.Buffer points to path of XBE
//
// Format is like this: \Device\Harddisk0\Partition1\bla.xbe
@ -55,7 +55,7 @@ XBSYSAPI EXPORTNUM(326) xboxkrnl::OBJECT_STRING xboxkrnl::XeImageFileName =
// count is now above zero.
//
// New to the XBOX.
XBSYSAPI EXPORTNUM(327) xboxkrnl::NTSTATUS NTAPI xboxkrnl::XeLoadSection
XBSYSAPI EXPORTNUM(327) xbox::NTSTATUS NTAPI xbox::XeLoadSection
(
IN PXBEIMAGE_SECTION Section
)
@ -108,7 +108,7 @@ XBSYSAPI EXPORTNUM(327) xboxkrnl::NTSTATUS NTAPI xboxkrnl::XeLoadSection
// if the count is now zero.
//
// New to the XBOX.
XBSYSAPI EXPORTNUM(328) xboxkrnl::NTSTATUS NTAPI xboxkrnl::XeUnloadSection
XBSYSAPI EXPORTNUM(328) xbox::NTSTATUS NTAPI xbox::XeUnloadSection
(
IN PXBEIMAGE_SECTION Section
)
@ -164,10 +164,10 @@ XBSYSAPI EXPORTNUM(328) xboxkrnl::NTSTATUS NTAPI xboxkrnl::XeUnloadSection
// * 0x0163 - XePublicKeyData
// ******************************************************************
// Define XePublicKeyData: This will be overwritten by the correct key for the given Xbe at runtime
XBSYSAPI EXPORTNUM(355) xboxkrnl::UCHAR xboxkrnl::XePublicKeyData[284] = { 0 };
XBSYSAPI EXPORTNUM(355) xbox::UCHAR xbox::XePublicKeyData[284] = { 0 };
// We are allowed to use the real RSA public key since it cannot be used to sign data, only verify it -> it's not secret/private
xboxkrnl::UCHAR xboxkrnl::XePublicKeyDataRetail[284] = {
xbox::UCHAR xbox::XePublicKeyDataRetail[284] = {
0x52,0x53,0x41,0x31, 0x08,0x01,0x00,0x00, 0x00,0x08,0x00,0x00, 0xff,0x00,0x00,0x00,
0x01,0x00,0x01,0x00,
// Public Modulus "m"
@ -192,7 +192,7 @@ xboxkrnl::UCHAR xboxkrnl::XePublicKeyDataRetail[284] = {
};
// Chihiro Game Public Key
xboxkrnl::UCHAR xboxkrnl::XePublicKeyDataChihiroGame[284] = {
xbox::UCHAR xbox::XePublicKeyDataChihiroGame[284] = {
0x52, 0x53, 0x41, 0x31, 0x08, 0x01, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00,
0xFF, 0x00, 0x00, 0x00, 0x01, 0x00, 0x01, 0x00, 0x9B, 0x83, 0xD4, 0xD5,
0xDE, 0x16, 0x25, 0x8E, 0xE5, 0x15, 0xF2, 0x18, 0x9D, 0x19, 0x1C, 0xF8,
@ -220,7 +220,7 @@ xboxkrnl::UCHAR xboxkrnl::XePublicKeyDataChihiroGame[284] = {
};
// Chihiro bootloader public key (Segaboot)
xboxkrnl::UCHAR xboxkrnl::XePublicKeyDataChihiroBoot[284] = {
xbox::UCHAR xbox::XePublicKeyDataChihiroBoot[284] = {
0x52, 0x53, 0x41, 0x31, 0x08, 0x01, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00,
0xFF, 0x00, 0x00, 0x00, 0x01, 0x00, 0x01, 0x00, 0x6B, 0x7B, 0x38, 0x78,
0xE3, 0x16, 0x04, 0x88, 0x1D, 0xAF, 0x63, 0x4E, 0x23, 0xDB, 0x10, 0x14,

View File

@ -41,383 +41,383 @@
// Note : Names that collide with other symbols, use the KRNL() macro.
uint32_t CxbxKrnl_KernelThunkTable[379] =
{
(uint32_t)FUNC(xbnullptr), // 0x0000 (0) "Undefined", this function doesn't exist
(uint32_t)FUNC(&xboxkrnl::AvGetSavedDataAddress), // 0x0001 (1)
(uint32_t)FUNC(&xboxkrnl::AvSendTVEncoderOption), // 0x0002 (2)
(uint32_t)FUNC(&xboxkrnl::AvSetDisplayMode), // 0x0003 (3)
(uint32_t)FUNC(&xboxkrnl::AvSetSavedDataAddress), // 0x0004 (4)
(uint32_t)FUNC(&xboxkrnl::DbgBreakPoint), // 0x0005 (5)
(uint32_t)FUNC(&xboxkrnl::DbgBreakPointWithStatus), // 0x0006 (6)
(uint32_t)FUNC(&xboxkrnl::DbgLoadImageSymbols), // 0x0007 (7) DEVKIT
(uint32_t)FUNC(&xboxkrnl::DbgPrint), // 0x0008 (8)
(uint32_t)FUNC(&xboxkrnl::HalReadSMCTrayState), // 0x0009 (9)
(uint32_t)FUNC(&xboxkrnl::DbgPrompt), // 0x000A (10)
(uint32_t)FUNC(&xboxkrnl::DbgUnLoadImageSymbols), // 0x000B (11) DEVKIT
(uint32_t)FUNC(&xboxkrnl::ExAcquireReadWriteLockExclusive), // 0x000C (12)
(uint32_t)FUNC(&xboxkrnl::ExAcquireReadWriteLockShared), // 0x000D (13)
(uint32_t)FUNC(&xboxkrnl::ExAllocatePool), // 0x000E (14)
(uint32_t)FUNC(&xboxkrnl::ExAllocatePoolWithTag), // 0x000F (15)
(uint32_t)VARIABLE(&xboxkrnl::ExEventObjectType), // 0x0010 (16)
(uint32_t)FUNC(&xboxkrnl::ExFreePool), // 0x0011 (17)
(uint32_t)FUNC(&xboxkrnl::ExInitializeReadWriteLock), // 0x0012 (18)
(uint32_t)FUNC(&xboxkrnl::ExInterlockedAddLargeInteger), // 0x0013 (19)
(uint32_t)FUNC(&xboxkrnl::ExInterlockedAddLargeStatistic), // 0x0014 (20)
(uint32_t)FUNC(&xboxkrnl::ExInterlockedCompareExchange64), // 0x0015 (21)
(uint32_t)VARIABLE(&xboxkrnl::ExMutantObjectType), // 0x0016 (22)
(uint32_t)FUNC(&xboxkrnl::ExQueryPoolBlockSize), // 0x0017 (23)
(uint32_t)FUNC(&xboxkrnl::ExQueryNonVolatileSetting), // 0x0018 (24)
(uint32_t)FUNC(&xboxkrnl::ExReadWriteRefurbInfo), // 0x0019 (25)
(uint32_t)FUNC(&xboxkrnl::ExRaiseException), // 0x001A (26)
(uint32_t)FUNC(&xboxkrnl::ExRaiseStatus), // 0x001B (27)
(uint32_t)FUNC(&xboxkrnl::ExReleaseReadWriteLock), // 0x001C (28)
(uint32_t)FUNC(&xboxkrnl::ExSaveNonVolatileSetting), // 0x001D (29)
(uint32_t)VARIABLE(&xboxkrnl::ExSemaphoreObjectType), // 0x001E (30)
(uint32_t)VARIABLE(&xboxkrnl::ExTimerObjectType), // 0x001F (31)
(uint32_t)FUNC(&xboxkrnl::ExfInterlockedInsertHeadList), // 0x0020 (32)
(uint32_t)FUNC(&xboxkrnl::ExfInterlockedInsertTailList), // 0x0021 (33)
(uint32_t)FUNC(&xboxkrnl::ExfInterlockedRemoveHeadList), // 0x0022 (34)
(uint32_t)FUNC(&xboxkrnl::FscGetCacheSize), // 0x0023 (35)
(uint32_t)FUNC(&xboxkrnl::FscInvalidateIdleBlocks), // 0x0024 (36)
(uint32_t)FUNC(&xboxkrnl::FscSetCacheSize), // 0x0025 (37)
(uint32_t)FUNC(&xboxkrnl::HalClearSoftwareInterrupt), // 0x0026 (38)
(uint32_t)FUNC(&xboxkrnl::HalDisableSystemInterrupt), // 0x0027 (39)
(uint32_t)VARIABLE(&xboxkrnl::HalDiskCachePartitionCount), // 0x0028 (40) A.k.a. "IdexDiskPartitionPrefixBuffer"
(uint32_t)VARIABLE(&xboxkrnl::HalDiskModelNumber), // 0x0029 (41)
(uint32_t)VARIABLE(&xboxkrnl::HalDiskSerialNumber), // 0x002A (42)
(uint32_t)FUNC(&xboxkrnl::HalEnableSystemInterrupt), // 0x002B (43)
(uint32_t)FUNC(&xboxkrnl::HalGetInterruptVector), // 0x002C (44)
(uint32_t)FUNC(&xboxkrnl::HalReadSMBusValue), // 0x002D (45)
(uint32_t)FUNC(&xboxkrnl::HalReadWritePCISpace), // 0x002E (46)
(uint32_t)FUNC(&xboxkrnl::HalRegisterShutdownNotification), // 0x002F (47)
(uint32_t)FUNC(&xboxkrnl::HalRequestSoftwareInterrupt), // 0x0030 (48)
(uint32_t)FUNC(&xboxkrnl::HalReturnToFirmware), // 0x0031 (49)
(uint32_t)FUNC(&xboxkrnl::HalWriteSMBusValue), // 0x0032 (50)
(uint32_t)FUNC(&xboxkrnl::KRNL(InterlockedCompareExchange)), // 0x0033 (51)
(uint32_t)FUNC(&xboxkrnl::KRNL(InterlockedDecrement)), // 0x0034 (52)
(uint32_t)FUNC(&xboxkrnl::KRNL(InterlockedIncrement)), // 0x0035 (53)
(uint32_t)FUNC(&xboxkrnl::KRNL(InterlockedExchange)), // 0x0036 (54)
(uint32_t)FUNC(&xboxkrnl::KRNL(InterlockedExchangeAdd)), // 0x0037 (55)
(uint32_t)FUNC(&xboxkrnl::KRNL(InterlockedFlushSList)), // 0x0038 (56)
(uint32_t)FUNC(&xboxkrnl::KRNL(InterlockedPopEntrySList)), // 0x0039 (57)
(uint32_t)FUNC(&xboxkrnl::KRNL(InterlockedPushEntrySList)), // 0x003A (58)
(uint32_t)FUNC(&xboxkrnl::IoAllocateIrp), // 0x003B (59)
(uint32_t)FUNC(&xboxkrnl::IoBuildAsynchronousFsdRequest), // 0x003C (60)
(uint32_t)FUNC(&xboxkrnl::IoBuildDeviceIoControlRequest), // 0x003D (61)
(uint32_t)FUNC(&xboxkrnl::IoBuildSynchronousFsdRequest), // 0x003E (62)
(uint32_t)FUNC(&xboxkrnl::IoCheckShareAccess), // 0x003F (63)
(uint32_t)VARIABLE(&xboxkrnl::IoCompletionObjectType), // 0x0040 (64)
(uint32_t)FUNC(&xboxkrnl::IoCreateDevice), // 0x0041 (65)
(uint32_t)FUNC(&xboxkrnl::IoCreateFile), // 0x0042 (66)
(uint32_t)FUNC(&xboxkrnl::IoCreateSymbolicLink), // 0x0043 (67)
(uint32_t)FUNC(&xboxkrnl::IoDeleteDevice), // 0x0044 (68)
(uint32_t)FUNC(&xboxkrnl::IoDeleteSymbolicLink), // 0x0045 (69)
(uint32_t)VARIABLE(&xboxkrnl::IoDeviceObjectType), // 0x0046 (70)
(uint32_t)VARIABLE(&xboxkrnl::IoFileObjectType), // 0x0047 (71)
(uint32_t)FUNC(&xboxkrnl::IoFreeIrp), // 0x0048 (72)
(uint32_t)FUNC(&xboxkrnl::IoInitializeIrp), // 0x0049 (73)
(uint32_t)FUNC(&xboxkrnl::IoInvalidDeviceRequest), // 0x004A (74)
(uint32_t)FUNC(&xboxkrnl::IoQueryFileInformation), // 0x004B (75)
(uint32_t)FUNC(&xboxkrnl::IoQueryVolumeInformation), // 0x004C (76)
(uint32_t)FUNC(&xboxkrnl::IoQueueThreadIrp), // 0x004D (77)
(uint32_t)FUNC(&xboxkrnl::IoRemoveShareAccess), // 0x004E (78)
(uint32_t)FUNC(&xboxkrnl::IoSetIoCompletion), // 0x004F (79)
(uint32_t)FUNC(&xboxkrnl::IoSetShareAccess), // 0x0050 (80)
(uint32_t)FUNC(&xboxkrnl::IoStartNextPacket), // 0x0051 (81)
(uint32_t)FUNC(&xboxkrnl::IoStartNextPacketByKey), // 0x0052 (82)
(uint32_t)FUNC(&xboxkrnl::IoStartPacket), // 0x0053 (83)
(uint32_t)FUNC(&xboxkrnl::IoSynchronousDeviceIoControlRequest), // 0x0054 (84)
(uint32_t)FUNC(&xboxkrnl::IoSynchronousFsdRequest), // 0x0055 (85)
(uint32_t)FUNC(&xboxkrnl::IofCallDriver), // 0x0056 (86)
(uint32_t)FUNC(&xboxkrnl::IofCompleteRequest), // 0x0057 (87)
(uint32_t)VARIABLE(&xboxkrnl::KdDebuggerEnabled), // 0x0058 (88)
(uint32_t)VARIABLE(&xboxkrnl::KdDebuggerNotPresent), // 0x0059 (89)
(uint32_t)FUNC(&xboxkrnl::IoDismountVolume), // 0x005A (90)
(uint32_t)FUNC(&xboxkrnl::IoDismountVolumeByName), // 0x005B (91)
(uint32_t)FUNC(&xboxkrnl::KeAlertResumeThread), // 0x005C (92)
(uint32_t)FUNC(&xboxkrnl::KeAlertThread), // 0x005D (93)
(uint32_t)FUNC(&xboxkrnl::KeBoostPriorityThread), // 0x005E (94)
(uint32_t)FUNC(&xboxkrnl::KeBugCheck), // 0x005F (95)
(uint32_t)FUNC(&xboxkrnl::KeBugCheckEx), // 0x0060 (96)
(uint32_t)FUNC(&xboxkrnl::KeCancelTimer), // 0x0061 (97)
(uint32_t)FUNC(&xboxkrnl::KeConnectInterrupt), // 0x0062 (98)
(uint32_t)FUNC(&xboxkrnl::KeDelayExecutionThread), // 0x0063 (99)
(uint32_t)FUNC(&xboxkrnl::KeDisconnectInterrupt), // 0x0064 (100
(uint32_t)FUNC(&xboxkrnl::KeEnterCriticalRegion), // 0x0065 (101)
(uint32_t)VARIABLE(&xboxkrnl::MmGlobalData), // 0x0066 (102)
(uint32_t)FUNC(&xboxkrnl::KeGetCurrentIrql), // 0x0067 (103)
(uint32_t)FUNC(&xboxkrnl::KeGetCurrentThread), // 0x0068 (104)
(uint32_t)FUNC(&xboxkrnl::KeInitializeApc), // 0x0069 (105)
(uint32_t)FUNC(&xboxkrnl::KeInitializeDeviceQueue), // 0x006A (106)
(uint32_t)FUNC(&xboxkrnl::KeInitializeDpc), // 0x006B (107)
(uint32_t)FUNC(&xboxkrnl::KeInitializeEvent), // 0x006C (108)
(uint32_t)FUNC(&xboxkrnl::KeInitializeInterrupt), // 0x006D (109)
(uint32_t)FUNC(&xboxkrnl::KeInitializeMutant), // 0x006E (110)
(uint32_t)FUNC(&xboxkrnl::KeInitializeQueue), // 0x006F (111)
(uint32_t)FUNC(&xboxkrnl::KeInitializeSemaphore), // 0x0070 (112)
(uint32_t)FUNC(&xboxkrnl::KeInitializeTimerEx), // 0x0071 (113)
(uint32_t)FUNC(&xboxkrnl::KeInsertByKeyDeviceQueue), // 0x0072 (114)
(uint32_t)FUNC(&xboxkrnl::KeInsertDeviceQueue), // 0x0073 (115)
(uint32_t)FUNC(&xboxkrnl::KeInsertHeadQueue), // 0x0074 (116)
(uint32_t)FUNC(&xboxkrnl::KeInsertQueue), // 0x0075 (117)
(uint32_t)FUNC(&xboxkrnl::KeInsertQueueApc), // 0x0076 (118)
(uint32_t)FUNC(&xboxkrnl::KeInsertQueueDpc), // 0x0077 (119)
(uint32_t)VARIABLE(&xboxkrnl::KeInterruptTime), // 0x0078 (120) KeInterruptTime
(uint32_t)FUNC(&xboxkrnl::KeIsExecutingDpc), // 0x0079 (121)
(uint32_t)FUNC(&xboxkrnl::KeLeaveCriticalRegion), // 0x007A (122)
(uint32_t)FUNC(&xboxkrnl::KePulseEvent), // 0x007B (123)
(uint32_t)FUNC(&xboxkrnl::KeQueryBasePriorityThread), // 0x007C (124)
(uint32_t)FUNC(&xboxkrnl::KeQueryInterruptTime), // 0x007D (125)
(uint32_t)FUNC(&xboxkrnl::KeQueryPerformanceCounter), // 0x007E (126)
(uint32_t)FUNC(&xboxkrnl::KeQueryPerformanceFrequency), // 0x007F (127)
(uint32_t)FUNC(&xboxkrnl::KeQuerySystemTime), // 0x0080 (128)
(uint32_t)FUNC(&xboxkrnl::KeRaiseIrqlToDpcLevel), // 0x0081 (129)
(uint32_t)FUNC(&xboxkrnl::KeRaiseIrqlToSynchLevel), // 0x0082 (130)
(uint32_t)FUNC(&xboxkrnl::KeReleaseMutant), // 0x0083 (131)
(uint32_t)FUNC(&xboxkrnl::KeReleaseSemaphore), // 0x0084 (132)
(uint32_t)FUNC(&xboxkrnl::KeRemoveByKeyDeviceQueue), // 0x0085 (133)
(uint32_t)FUNC(&xboxkrnl::KeRemoveDeviceQueue), // 0x0086 (134)
(uint32_t)FUNC(&xboxkrnl::KeRemoveEntryDeviceQueue), // 0x0087 (135)
(uint32_t)FUNC(&xboxkrnl::KeRemoveQueue), // 0x0088 (136)
(uint32_t)FUNC(&xboxkrnl::KeRemoveQueueDpc), // 0x0089 (137)
(uint32_t)FUNC(&xboxkrnl::KeResetEvent), // 0x008A (138)
(uint32_t)FUNC(&xboxkrnl::KeRestoreFloatingPointState), // 0x008B (139)
(uint32_t)FUNC(&xboxkrnl::KeResumeThread), // 0x008C (140)
(uint32_t)FUNC(&xboxkrnl::KeRundownQueue), // 0x008D (141)
(uint32_t)FUNC(&xboxkrnl::KeSaveFloatingPointState), // 0x008E (142)
(uint32_t)FUNC(&xboxkrnl::KeSetBasePriorityThread), // 0x008F (143)
(uint32_t)FUNC(&xboxkrnl::KeSetDisableBoostThread), // 0x0090 (144)
(uint32_t)FUNC(&xboxkrnl::KeSetEvent), // 0x0091 (145)
(uint32_t)FUNC(&xboxkrnl::KeSetEventBoostPriority), // 0x0092 (146)
(uint32_t)FUNC(&xboxkrnl::KeSetPriorityProcess), // 0x0093 (147)
(uint32_t)FUNC(&xboxkrnl::KeSetPriorityThread), // 0x0094 (148)
(uint32_t)FUNC(&xboxkrnl::KeSetTimer), // 0x0095 (149)
(uint32_t)FUNC(&xboxkrnl::KeSetTimerEx), // 0x0096 (150)
(uint32_t)FUNC(&xboxkrnl::KeStallExecutionProcessor), // 0x0097 (151)
(uint32_t)FUNC(&xboxkrnl::KeSuspendThread), // 0x0098 (152)
(uint32_t)FUNC(&xboxkrnl::KeSynchronizeExecution), // 0x0099 (153)
(uint32_t)VARIABLE(&xboxkrnl::KeSystemTime), // 0x009A (154) KeSystemTime
(uint32_t)FUNC(&xboxkrnl::KeTestAlertThread), // 0x009B (155)
(uint32_t)VARIABLE(&xboxkrnl::KeTickCount), // 0x009C (156)
(uint32_t)VARIABLE(&xboxkrnl::KeTimeIncrement), // 0x009D (157)
(uint32_t)FUNC(&xboxkrnl::KeWaitForMultipleObjects), // 0x009E (158)
(uint32_t)FUNC(&xboxkrnl::KeWaitForSingleObject), // 0x009F (159)
(uint32_t)FUNC(&xboxkrnl::KfRaiseIrql), // 0x00A0 (160)
(uint32_t)FUNC(&xboxkrnl::KfLowerIrql), // 0x00A1 (161)
(uint32_t)VARIABLE(&xboxkrnl::KiBugCheckData), // 0x00A2 (162)
(uint32_t)FUNC(&xboxkrnl::KiUnlockDispatcherDatabase), // 0x00A3 (163)
(uint32_t)VARIABLE(&xboxkrnl::LaunchDataPage), // 0x00A4 (164)
(uint32_t)FUNC(&xboxkrnl::MmAllocateContiguousMemory), // 0x00A5 (165)
(uint32_t)FUNC(&xboxkrnl::MmAllocateContiguousMemoryEx), // 0x00A6 (166)
(uint32_t)FUNC(&xboxkrnl::MmAllocateSystemMemory), // 0x00A7 (167)
(uint32_t)FUNC(&xboxkrnl::MmClaimGpuInstanceMemory), // 0x00A8 (168)
(uint32_t)FUNC(&xboxkrnl::MmCreateKernelStack), // 0x00A9 (169)
(uint32_t)FUNC(&xboxkrnl::MmDeleteKernelStack), // 0x00AA (170)
(uint32_t)FUNC(&xboxkrnl::MmFreeContiguousMemory), // 0x00AB (171)
(uint32_t)FUNC(&xboxkrnl::MmFreeSystemMemory), // 0x00AC (172)
(uint32_t)FUNC(&xboxkrnl::MmGetPhysicalAddress), // 0x00AD (173)
(uint32_t)FUNC(&xboxkrnl::MmIsAddressValid), // 0x00AE (174)
(uint32_t)FUNC(&xboxkrnl::MmLockUnlockBufferPages), // 0x00AF (175)
(uint32_t)FUNC(&xboxkrnl::MmLockUnlockPhysicalPage), // 0x00B0 (176)
(uint32_t)FUNC(&xboxkrnl::MmMapIoSpace), // 0x00B1 (177)
(uint32_t)FUNC(&xboxkrnl::MmPersistContiguousMemory), // 0x00B2 (178)
(uint32_t)FUNC(&xboxkrnl::MmQueryAddressProtect), // 0x00B3 (179)
(uint32_t)FUNC(&xboxkrnl::MmQueryAllocationSize), // 0x00B4 (180)
(uint32_t)FUNC(&xboxkrnl::MmQueryStatistics), // 0x00B5 (181)
(uint32_t)FUNC(&xboxkrnl::MmSetAddressProtect), // 0x00B6 (182)
(uint32_t)FUNC(&xboxkrnl::MmUnmapIoSpace), // 0x00B7 (183)
(uint32_t)FUNC(&xboxkrnl::NtAllocateVirtualMemory), // 0x00B8 (184)
(uint32_t)FUNC(&xboxkrnl::NtCancelTimer), // 0x00B9 (185)
(uint32_t)FUNC(&xboxkrnl::NtClearEvent), // 0x00BA (186)
(uint32_t)FUNC(&xboxkrnl::NtClose), // 0x00BB (187)
(uint32_t)FUNC(&xboxkrnl::NtCreateDirectoryObject), // 0x00BC (188)
(uint32_t)FUNC(&xboxkrnl::NtCreateEvent), // 0x00BD (189)
(uint32_t)FUNC(&xboxkrnl::NtCreateFile), // 0x00BE (190)
(uint32_t)FUNC(&xboxkrnl::NtCreateIoCompletion), // 0x00BF (191)
(uint32_t)FUNC(&xboxkrnl::NtCreateMutant), // 0x00C0 (192)
(uint32_t)FUNC(&xboxkrnl::NtCreateSemaphore), // 0x00C1 (193)
(uint32_t)FUNC(&xboxkrnl::NtCreateTimer), // 0x00C2 (194)
(uint32_t)FUNC(&xboxkrnl::NtDeleteFile), // 0x00C3 (195)
(uint32_t)FUNC(&xboxkrnl::NtDeviceIoControlFile), // 0x00C4 (196)
(uint32_t)FUNC(&xboxkrnl::NtDuplicateObject), // 0x00C5 (197)
(uint32_t)FUNC(&xboxkrnl::NtFlushBuffersFile), // 0x00C6 (198)
(uint32_t)FUNC(&xboxkrnl::NtFreeVirtualMemory), // 0x00C7 (199)
(uint32_t)FUNC(&xboxkrnl::NtFsControlFile), // 0x00C8 (200)
(uint32_t)FUNC(&xboxkrnl::NtOpenDirectoryObject), // 0x00C9 (201)
(uint32_t)FUNC(&xboxkrnl::NtOpenFile), // 0x00CA (202)
(uint32_t)FUNC(&xboxkrnl::NtOpenSymbolicLinkObject), // 0x00CB (203)
(uint32_t)FUNC(&xboxkrnl::NtProtectVirtualMemory), // 0x00CC (204)
(uint32_t)FUNC(&xboxkrnl::NtPulseEvent), // 0x00CD (205)
(uint32_t)FUNC(&xboxkrnl::NtQueueApcThread), // 0x00CE (206)
(uint32_t)FUNC(&xboxkrnl::NtQueryDirectoryFile), // 0x00CF (207)
(uint32_t)FUNC(&xboxkrnl::NtQueryDirectoryObject), // 0x00D0 (208)
(uint32_t)FUNC(&xboxkrnl::NtQueryEvent), // 0x00D1 (209)
(uint32_t)FUNC(&xboxkrnl::NtQueryFullAttributesFile), // 0x00D2 (210)
(uint32_t)FUNC(&xboxkrnl::NtQueryInformationFile), // 0x00D3 (211)
(uint32_t)FUNC(&xboxkrnl::NtQueryIoCompletion), // 0x00D4 (212)
(uint32_t)FUNC(&xboxkrnl::NtQueryMutant), // 0x00D5 (213)
(uint32_t)FUNC(&xboxkrnl::NtQuerySemaphore), // 0x00D6 (214)
(uint32_t)FUNC(&xboxkrnl::NtQuerySymbolicLinkObject), // 0x00D7 (215)
(uint32_t)FUNC(&xboxkrnl::NtQueryTimer), // 0x00D8 (216)
(uint32_t)FUNC(&xboxkrnl::NtQueryVirtualMemory), // 0x00D9 (217)
(uint32_t)FUNC(&xboxkrnl::NtQueryVolumeInformationFile), // 0x00DA (218)
(uint32_t)FUNC(&xboxkrnl::NtReadFile), // 0x00DB (219)
(uint32_t)FUNC(&xboxkrnl::NtReadFileScatter), // 0x00DC (220)
(uint32_t)FUNC(&xboxkrnl::NtReleaseMutant), // 0x00DD (221)
(uint32_t)FUNC(&xboxkrnl::NtReleaseSemaphore), // 0x00DE (222)
(uint32_t)FUNC(&xboxkrnl::NtRemoveIoCompletion), // 0x00DF (223)
(uint32_t)FUNC(&xboxkrnl::NtResumeThread), // 0x00E0 (224)
(uint32_t)FUNC(&xboxkrnl::NtSetEvent), // 0x00E1 (225)
(uint32_t)FUNC(&xboxkrnl::NtSetInformationFile), // 0x00E2 (226)
(uint32_t)FUNC(&xboxkrnl::NtSetIoCompletion), // 0x00E3 (227)
(uint32_t)FUNC(&xboxkrnl::NtSetSystemTime), // 0x00E4 (228)
(uint32_t)FUNC(&xboxkrnl::NtSetTimerEx), // 0x00E5 (229)
(uint32_t)FUNC(&xboxkrnl::NtSignalAndWaitForSingleObjectEx), // 0x00E6 (230)
(uint32_t)FUNC(&xboxkrnl::NtSuspendThread), // 0x00E7 (231)
(uint32_t)FUNC(&xboxkrnl::NtUserIoApcDispatcher), // 0x00E8 (232)
(uint32_t)FUNC(&xboxkrnl::NtWaitForSingleObject), // 0x00E9 (233)
(uint32_t)FUNC(&xboxkrnl::NtWaitForSingleObjectEx), // 0x00EA (234)
(uint32_t)FUNC(&xboxkrnl::NtWaitForMultipleObjectsEx), // 0x00EB (235)
(uint32_t)FUNC(&xboxkrnl::NtWriteFile), // 0x00EC (236)
(uint32_t)FUNC(&xboxkrnl::NtWriteFileGather), // 0x00ED (237)
(uint32_t)FUNC(&xboxkrnl::NtYieldExecution), // 0x00EE (238)
(uint32_t)FUNC(&xboxkrnl::ObCreateObject), // 0x00EF (239)
(uint32_t)VARIABLE(&xboxkrnl::ObDirectoryObjectType), // 0x00F0 (240)
(uint32_t)FUNC(&xboxkrnl::ObInsertObject), // 0x00F1 (241)
(uint32_t)FUNC(&xboxkrnl::ObMakeTemporaryObject), // 0x00F2 (242)
(uint32_t)FUNC(&xboxkrnl::ObOpenObjectByName), // 0x00F3 (243)
(uint32_t)FUNC(&xboxkrnl::ObOpenObjectByPointer), // 0x00F4 (244)
(uint32_t)VARIABLE(&xboxkrnl::ObpObjectHandleTable), // 0x00F5 (245)
(uint32_t)FUNC(&xboxkrnl::ObReferenceObjectByHandle), // 0x00F6 (246)
(uint32_t)FUNC(&xboxkrnl::ObReferenceObjectByName), // 0x00F7 (247)
(uint32_t)FUNC(&xboxkrnl::ObReferenceObjectByPointer), // 0x00F8 (248)
(uint32_t)VARIABLE(&xboxkrnl::ObSymbolicLinkObjectType), // 0x00F9 (249)
(uint32_t)FUNC(&xboxkrnl::ObfDereferenceObject), // 0x00FA (250)
(uint32_t)FUNC(&xboxkrnl::ObfReferenceObject), // 0x00FB (251)
(uint32_t)FUNC(&xboxkrnl::PhyGetLinkState), // 0x00FC (252)
(uint32_t)FUNC(&xboxkrnl::PhyInitialize), // 0x00FD (253)
(uint32_t)FUNC(&xboxkrnl::PsCreateSystemThread), // 0x00FE (254)
(uint32_t)FUNC(&xboxkrnl::PsCreateSystemThreadEx), // 0x00FF (255)
(uint32_t)FUNC(&xboxkrnl::PsQueryStatistics), // 0x0100 (256)
(uint32_t)FUNC(&xboxkrnl::PsSetCreateThreadNotifyRoutine), // 0x0101 (257)
(uint32_t)FUNC(&xboxkrnl::PsTerminateSystemThread), // 0x0102 (258)
(uint32_t)VARIABLE(&xboxkrnl::PsThreadObjectType), // 0x0103 (259)
(uint32_t)FUNC(&xboxkrnl::RtlAnsiStringToUnicodeString), // 0x0104 (260)
(uint32_t)FUNC(&xboxkrnl::RtlAppendStringToString), // 0x0105 (261)
(uint32_t)FUNC(&xboxkrnl::RtlAppendUnicodeStringToString), // 0x0106 (262)
(uint32_t)FUNC(&xboxkrnl::RtlAppendUnicodeToString), // 0x0107 (263)
(uint32_t)FUNC(&xboxkrnl::RtlAssert), // 0x0108 (264)
(uint32_t)FUNC(&xboxkrnl::RtlCaptureContext), // 0x0109 (265)
(uint32_t)FUNC(&xboxkrnl::RtlCaptureStackBackTrace), // 0x010A (266)
(uint32_t)FUNC(&xboxkrnl::RtlCharToInteger), // 0x010B (267)
(uint32_t)FUNC(&xboxkrnl::RtlCompareMemory), // 0x010C (268)
(uint32_t)FUNC(&xboxkrnl::RtlCompareMemoryUlong), // 0x010D (269)
(uint32_t)FUNC(&xboxkrnl::RtlCompareString), // 0x010E (270)
(uint32_t)FUNC(&xboxkrnl::RtlCompareUnicodeString), // 0x010F (271)
(uint32_t)FUNC(&xboxkrnl::RtlCopyString), // 0x0110 (272)
(uint32_t)FUNC(&xboxkrnl::RtlCopyUnicodeString), // 0x0111 (273)
(uint32_t)FUNC(&xboxkrnl::RtlCreateUnicodeString), // 0x0112 (274)
(uint32_t)FUNC(&xboxkrnl::RtlDowncaseUnicodeChar), // 0x0113 (275)
(uint32_t)FUNC(&xboxkrnl::RtlDowncaseUnicodeString), // 0x0114 (276)
(uint32_t)FUNC(&xboxkrnl::RtlEnterCriticalSection), // 0x0115 (277)
(uint32_t)FUNC(&xboxkrnl::RtlEnterCriticalSectionAndRegion), // 0x0116 (278)
(uint32_t)FUNC(&xboxkrnl::RtlEqualString), // 0x0117 (279)
(uint32_t)FUNC(&xboxkrnl::RtlEqualUnicodeString), // 0x0118 (280)
(uint32_t)FUNC(&xboxkrnl::RtlExtendedIntegerMultiply), // 0x0119 (281)
(uint32_t)FUNC(&xboxkrnl::RtlExtendedLargeIntegerDivide), // 0x011A (282)
(uint32_t)FUNC(&xboxkrnl::RtlExtendedMagicDivide), // 0x011B (283)
(uint32_t)FUNC(&xboxkrnl::RtlFillMemory), // 0x011C (284)
(uint32_t)FUNC(&xboxkrnl::RtlFillMemoryUlong), // 0x011D (285)
(uint32_t)FUNC(&xboxkrnl::RtlFreeAnsiString), // 0x011E (286)
(uint32_t)FUNC(&xboxkrnl::RtlFreeUnicodeString), // 0x011F (287)
(uint32_t)FUNC(&xboxkrnl::RtlGetCallersAddress), // 0x0120 (288)
(uint32_t)FUNC(&xboxkrnl::RtlInitAnsiString), // 0x0121 (289)
(uint32_t)FUNC(&xboxkrnl::RtlInitUnicodeString), // 0x0122 (290)
(uint32_t)FUNC(&xboxkrnl::RtlInitializeCriticalSection), // 0x0123 (291)
(uint32_t)FUNC(&xboxkrnl::RtlIntegerToChar), // 0x0124 (292)
(uint32_t)FUNC(&xboxkrnl::RtlIntegerToUnicodeString), // 0x0125 (293)
(uint32_t)FUNC(&xboxkrnl::RtlLeaveCriticalSection), // 0x0126 (294)
(uint32_t)FUNC(&xboxkrnl::RtlLeaveCriticalSectionAndRegion), // 0x0127 (295)
(uint32_t)FUNC(&xboxkrnl::RtlLowerChar), // 0x0128 (296)
(uint32_t)FUNC(&xboxkrnl::RtlMapGenericMask), // 0x0129 (297)
(uint32_t)FUNC(&xboxkrnl::RtlMoveMemory), // 0x012A (298)
(uint32_t)FUNC(&xboxkrnl::RtlMultiByteToUnicodeN), // 0x012B (299)
(uint32_t)FUNC(&xboxkrnl::RtlMultiByteToUnicodeSize), // 0x012C (300)
(uint32_t)FUNC(&xboxkrnl::RtlNtStatusToDosError), // 0x012D (301)
(uint32_t)FUNC(&xboxkrnl::RtlRaiseException), // 0x012E (302)
(uint32_t)FUNC(&xboxkrnl::RtlRaiseStatus), // 0x012F (303)
(uint32_t)FUNC(&xboxkrnl::RtlTimeFieldsToTime), // 0x0130 (304)
(uint32_t)FUNC(&xboxkrnl::RtlTimeToTimeFields), // 0x0131 (305)
(uint32_t)FUNC(&xboxkrnl::RtlTryEnterCriticalSection), // 0x0132 (306)
(uint32_t)FUNC(&xboxkrnl::RtlUlongByteSwap), // 0x0133 (307)
(uint32_t)FUNC(&xboxkrnl::RtlUnicodeStringToAnsiString), // 0x0134 (308)
(uint32_t)FUNC(&xboxkrnl::RtlUnicodeStringToInteger), // 0x0135 (309)
(uint32_t)FUNC(&xboxkrnl::RtlUnicodeToMultiByteN), // 0x0136 (310)
(uint32_t)FUNC(&xboxkrnl::RtlUnicodeToMultiByteSize), // 0x0137 (311)
(uint32_t)FUNC(&xboxkrnl::RtlUnwind), // 0x0138 (312)
(uint32_t)FUNC(&xboxkrnl::RtlUpcaseUnicodeChar), // 0x0139 (313)
(uint32_t)FUNC(&xboxkrnl::RtlUpcaseUnicodeString), // 0x013A (314)
(uint32_t)FUNC(&xboxkrnl::RtlUpcaseUnicodeToMultiByteN), // 0x013B (315)
(uint32_t)FUNC(&xboxkrnl::RtlUpperChar), // 0x013C (316)
(uint32_t)FUNC(&xboxkrnl::RtlUpperString), // 0x013D (317)
(uint32_t)FUNC(&xboxkrnl::RtlUshortByteSwap), // 0x013E (318)
(uint32_t)FUNC(&xboxkrnl::RtlWalkFrameChain), // 0x013F (319)
(uint32_t)FUNC(&xboxkrnl::RtlZeroMemory), // 0x0140 (320)
(uint32_t)VARIABLE(&xboxkrnl::XboxEEPROMKey), // 0x0141 (321)
(uint32_t)VARIABLE(&xboxkrnl::XboxHardwareInfo), // 0x0142 (322)
(uint32_t)VARIABLE(&xboxkrnl::XboxHDKey), // 0x0143 (323)
(uint32_t)VARIABLE(&xboxkrnl::XboxKrnlVersion), // 0x0144 (324)
(uint32_t)VARIABLE(&xboxkrnl::XboxSignatureKey), // 0x0145 (325)
(uint32_t)VARIABLE(&xboxkrnl::XeImageFileName), // 0x0146 (326)
(uint32_t)FUNC(&xboxkrnl::XeLoadSection), // 0x0147 (327)
(uint32_t)FUNC(&xboxkrnl::XeUnloadSection), // 0x0148 (328)
(uint32_t)FUNC(&xboxkrnl::READ_PORT_BUFFER_UCHAR), // 0x0149 (329)
(uint32_t)FUNC(&xboxkrnl::READ_PORT_BUFFER_USHORT), // 0x014A (330)
(uint32_t)FUNC(&xboxkrnl::READ_PORT_BUFFER_ULONG), // 0x014B (331)
(uint32_t)FUNC(&xboxkrnl::WRITE_PORT_BUFFER_UCHAR), // 0x014C (332)
(uint32_t)FUNC(&xboxkrnl::WRITE_PORT_BUFFER_USHORT), // 0x014D (333)
(uint32_t)FUNC(&xboxkrnl::WRITE_PORT_BUFFER_ULONG), // 0x014E (334)
(uint32_t)FUNC(&xboxkrnl::XcSHAInit), // 0x014F (335)
(uint32_t)FUNC(&xboxkrnl::XcSHAUpdate), // 0x0150 (336)
(uint32_t)FUNC(&xboxkrnl::XcSHAFinal), // 0x0151 (337)
(uint32_t)FUNC(&xboxkrnl::XcRC4Key), // 0x0152 (338)
(uint32_t)FUNC(&xboxkrnl::XcRC4Crypt), // 0x0153 (339)
(uint32_t)FUNC(&xboxkrnl::XcHMAC), // 0x0154 (340)
(uint32_t)FUNC(&xboxkrnl::XcPKEncPublic), // 0x0155 (341)
(uint32_t)FUNC(&xboxkrnl::XcPKDecPrivate), // 0x0156 (342)
(uint32_t)FUNC(&xboxkrnl::XcPKGetKeyLen), // 0x0157 (343)
(uint32_t)FUNC(&xboxkrnl::XcVerifyPKCS1Signature), // 0x0158 (344)
(uint32_t)FUNC(&xboxkrnl::XcModExp), // 0x0159 (345)
(uint32_t)FUNC(&xboxkrnl::XcDESKeyParity), // 0x015A (346)
(uint32_t)FUNC(&xboxkrnl::XcKeyTable), // 0x015B (347)
(uint32_t)FUNC(&xboxkrnl::XcBlockCrypt), // 0x015C (348)
(uint32_t)FUNC(&xboxkrnl::XcBlockCryptCBC), // 0x015D (349)
(uint32_t)FUNC(&xboxkrnl::XcCryptService), // 0x015E (350)
(uint32_t)FUNC(&xboxkrnl::XcUpdateCrypto), // 0x015F (351)
(uint32_t)FUNC(&xboxkrnl::RtlRip), // 0x0160 (352)
(uint32_t)VARIABLE(&xboxkrnl::XboxLANKey), // 0x0161 (353)
(uint32_t)VARIABLE(&xboxkrnl::XboxAlternateSignatureKeys), // 0x0162 (354)
(uint32_t)VARIABLE(&xboxkrnl::XePublicKeyData), // 0x0163 (355)
(uint32_t)VARIABLE(&xboxkrnl::HalBootSMCVideoMode), // 0x0164 (356)
(uint32_t)VARIABLE(&xboxkrnl::IdexChannelObject), // 0x0165 (357)
(uint32_t)FUNC(&xboxkrnl::HalIsResetOrShutdownPending), // 0x0166 (358)
(uint32_t)FUNC(&xboxkrnl::IoMarkIrpMustComplete), // 0x0167 (359)
(uint32_t)FUNC(&xboxkrnl::HalInitiateShutdown), // 0x0168 (360)
(uint32_t)FUNC(&xboxkrnl::RtlSnprintf), // 0x0169 (361)
(uint32_t)FUNC(&xboxkrnl::RtlSprintf), // 0x016A (362)
(uint32_t)FUNC(&xboxkrnl::RtlVsnprintf), // 0x016B (363)
(uint32_t)FUNC(&xboxkrnl::RtlVsprintf), // 0x016C (364)
(uint32_t)FUNC(&xboxkrnl::HalEnableSecureTrayEject), // 0x016D (365)
(uint32_t)FUNC(&xboxkrnl::HalWriteSMCScratchRegister), // 0x016E (366)
(uint32_t)FUNC(&xboxkrnl::UnknownAPI367), // 0x016F (367)
(uint32_t)FUNC(&xboxkrnl::UnknownAPI368), // 0x0170 (368)
(uint32_t)FUNC(&xboxkrnl::UnknownAPI369), // 0x0171 (369)
(uint32_t)FUNC(&xboxkrnl::XProfpControl), // 0x0172 (370) PROFILING
(uint32_t)FUNC(&xboxkrnl::XProfpGetData), // 0x0173 (371) PROFILING
(uint32_t)FUNC(&xboxkrnl::IrtClientInitFast), // 0x0174 (372) PROFILING
(uint32_t)FUNC(&xboxkrnl::IrtSweep), // 0x0175 (373) PROFILING
(uint32_t)FUNC(&xboxkrnl::MmDbgAllocateMemory), // 0x0176 (374) DEVKIT ONLY!
(uint32_t)FUNC(&xboxkrnl::MmDbgFreeMemory), // 0x0177 (375) DEVKIT ONLY!
(uint32_t)FUNC(&xboxkrnl::MmDbgQueryAvailablePages), // 0x0178 (376) DEVKIT ONLY!
(uint32_t)FUNC(&xboxkrnl::MmDbgReleaseAddress), // 0x0179 (377) DEVKIT ONLY!
(uint32_t)FUNC(&xboxkrnl::MmDbgWriteCheck), // 0x017A (378) DEVKIT ONLY!
(uint32_t)FUNC(xbox::zeroptr), // 0x0000 (0) "Undefined", this function doesn't exist
(uint32_t)FUNC(&xbox::AvGetSavedDataAddress), // 0x0001 (1)
(uint32_t)FUNC(&xbox::AvSendTVEncoderOption), // 0x0002 (2)
(uint32_t)FUNC(&xbox::AvSetDisplayMode), // 0x0003 (3)
(uint32_t)FUNC(&xbox::AvSetSavedDataAddress), // 0x0004 (4)
(uint32_t)FUNC(&xbox::DbgBreakPoint), // 0x0005 (5)
(uint32_t)FUNC(&xbox::DbgBreakPointWithStatus), // 0x0006 (6)
(uint32_t)FUNC(&xbox::DbgLoadImageSymbols), // 0x0007 (7) DEVKIT
(uint32_t)FUNC(&xbox::DbgPrint), // 0x0008 (8)
(uint32_t)FUNC(&xbox::HalReadSMCTrayState), // 0x0009 (9)
(uint32_t)FUNC(&xbox::DbgPrompt), // 0x000A (10)
(uint32_t)FUNC(&xbox::DbgUnLoadImageSymbols), // 0x000B (11) DEVKIT
(uint32_t)FUNC(&xbox::ExAcquireReadWriteLockExclusive), // 0x000C (12)
(uint32_t)FUNC(&xbox::ExAcquireReadWriteLockShared), // 0x000D (13)
(uint32_t)FUNC(&xbox::ExAllocatePool), // 0x000E (14)
(uint32_t)FUNC(&xbox::ExAllocatePoolWithTag), // 0x000F (15)
(uint32_t)VARIABLE(&xbox::ExEventObjectType), // 0x0010 (16)
(uint32_t)FUNC(&xbox::ExFreePool), // 0x0011 (17)
(uint32_t)FUNC(&xbox::ExInitializeReadWriteLock), // 0x0012 (18)
(uint32_t)FUNC(&xbox::ExInterlockedAddLargeInteger), // 0x0013 (19)
(uint32_t)FUNC(&xbox::ExInterlockedAddLargeStatistic), // 0x0014 (20)
(uint32_t)FUNC(&xbox::ExInterlockedCompareExchange64), // 0x0015 (21)
(uint32_t)VARIABLE(&xbox::ExMutantObjectType), // 0x0016 (22)
(uint32_t)FUNC(&xbox::ExQueryPoolBlockSize), // 0x0017 (23)
(uint32_t)FUNC(&xbox::ExQueryNonVolatileSetting), // 0x0018 (24)
(uint32_t)FUNC(&xbox::ExReadWriteRefurbInfo), // 0x0019 (25)
(uint32_t)FUNC(&xbox::ExRaiseException), // 0x001A (26)
(uint32_t)FUNC(&xbox::ExRaiseStatus), // 0x001B (27)
(uint32_t)FUNC(&xbox::ExReleaseReadWriteLock), // 0x001C (28)
(uint32_t)FUNC(&xbox::ExSaveNonVolatileSetting), // 0x001D (29)
(uint32_t)VARIABLE(&xbox::ExSemaphoreObjectType), // 0x001E (30)
(uint32_t)VARIABLE(&xbox::ExTimerObjectType), // 0x001F (31)
(uint32_t)FUNC(&xbox::ExfInterlockedInsertHeadList), // 0x0020 (32)
(uint32_t)FUNC(&xbox::ExfInterlockedInsertTailList), // 0x0021 (33)
(uint32_t)FUNC(&xbox::ExfInterlockedRemoveHeadList), // 0x0022 (34)
(uint32_t)FUNC(&xbox::FscGetCacheSize), // 0x0023 (35)
(uint32_t)FUNC(&xbox::FscInvalidateIdleBlocks), // 0x0024 (36)
(uint32_t)FUNC(&xbox::FscSetCacheSize), // 0x0025 (37)
(uint32_t)FUNC(&xbox::HalClearSoftwareInterrupt), // 0x0026 (38)
(uint32_t)FUNC(&xbox::HalDisableSystemInterrupt), // 0x0027 (39)
(uint32_t)VARIABLE(&xbox::HalDiskCachePartitionCount), // 0x0028 (40) A.k.a. "IdexDiskPartitionPrefixBuffer"
(uint32_t)VARIABLE(&xbox::HalDiskModelNumber), // 0x0029 (41)
(uint32_t)VARIABLE(&xbox::HalDiskSerialNumber), // 0x002A (42)
(uint32_t)FUNC(&xbox::HalEnableSystemInterrupt), // 0x002B (43)
(uint32_t)FUNC(&xbox::HalGetInterruptVector), // 0x002C (44)
(uint32_t)FUNC(&xbox::HalReadSMBusValue), // 0x002D (45)
(uint32_t)FUNC(&xbox::HalReadWritePCISpace), // 0x002E (46)
(uint32_t)FUNC(&xbox::HalRegisterShutdownNotification), // 0x002F (47)
(uint32_t)FUNC(&xbox::HalRequestSoftwareInterrupt), // 0x0030 (48)
(uint32_t)FUNC(&xbox::HalReturnToFirmware), // 0x0031 (49)
(uint32_t)FUNC(&xbox::HalWriteSMBusValue), // 0x0032 (50)
(uint32_t)FUNC(&xbox::KRNL(InterlockedCompareExchange)), // 0x0033 (51)
(uint32_t)FUNC(&xbox::KRNL(InterlockedDecrement)), // 0x0034 (52)
(uint32_t)FUNC(&xbox::KRNL(InterlockedIncrement)), // 0x0035 (53)
(uint32_t)FUNC(&xbox::KRNL(InterlockedExchange)), // 0x0036 (54)
(uint32_t)FUNC(&xbox::KRNL(InterlockedExchangeAdd)), // 0x0037 (55)
(uint32_t)FUNC(&xbox::KRNL(InterlockedFlushSList)), // 0x0038 (56)
(uint32_t)FUNC(&xbox::KRNL(InterlockedPopEntrySList)), // 0x0039 (57)
(uint32_t)FUNC(&xbox::KRNL(InterlockedPushEntrySList)), // 0x003A (58)
(uint32_t)FUNC(&xbox::IoAllocateIrp), // 0x003B (59)
(uint32_t)FUNC(&xbox::IoBuildAsynchronousFsdRequest), // 0x003C (60)
(uint32_t)FUNC(&xbox::IoBuildDeviceIoControlRequest), // 0x003D (61)
(uint32_t)FUNC(&xbox::IoBuildSynchronousFsdRequest), // 0x003E (62)
(uint32_t)FUNC(&xbox::IoCheckShareAccess), // 0x003F (63)
(uint32_t)VARIABLE(&xbox::IoCompletionObjectType), // 0x0040 (64)
(uint32_t)FUNC(&xbox::IoCreateDevice), // 0x0041 (65)
(uint32_t)FUNC(&xbox::IoCreateFile), // 0x0042 (66)
(uint32_t)FUNC(&xbox::IoCreateSymbolicLink), // 0x0043 (67)
(uint32_t)FUNC(&xbox::IoDeleteDevice), // 0x0044 (68)
(uint32_t)FUNC(&xbox::IoDeleteSymbolicLink), // 0x0045 (69)
(uint32_t)VARIABLE(&xbox::IoDeviceObjectType), // 0x0046 (70)
(uint32_t)VARIABLE(&xbox::IoFileObjectType), // 0x0047 (71)
(uint32_t)FUNC(&xbox::IoFreeIrp), // 0x0048 (72)
(uint32_t)FUNC(&xbox::IoInitializeIrp), // 0x0049 (73)
(uint32_t)FUNC(&xbox::IoInvalidDeviceRequest), // 0x004A (74)
(uint32_t)FUNC(&xbox::IoQueryFileInformation), // 0x004B (75)
(uint32_t)FUNC(&xbox::IoQueryVolumeInformation), // 0x004C (76)
(uint32_t)FUNC(&xbox::IoQueueThreadIrp), // 0x004D (77)
(uint32_t)FUNC(&xbox::IoRemoveShareAccess), // 0x004E (78)
(uint32_t)FUNC(&xbox::IoSetIoCompletion), // 0x004F (79)
(uint32_t)FUNC(&xbox::IoSetShareAccess), // 0x0050 (80)
(uint32_t)FUNC(&xbox::IoStartNextPacket), // 0x0051 (81)
(uint32_t)FUNC(&xbox::IoStartNextPacketByKey), // 0x0052 (82)
(uint32_t)FUNC(&xbox::IoStartPacket), // 0x0053 (83)
(uint32_t)FUNC(&xbox::IoSynchronousDeviceIoControlRequest), // 0x0054 (84)
(uint32_t)FUNC(&xbox::IoSynchronousFsdRequest), // 0x0055 (85)
(uint32_t)FUNC(&xbox::IofCallDriver), // 0x0056 (86)
(uint32_t)FUNC(&xbox::IofCompleteRequest), // 0x0057 (87)
(uint32_t)VARIABLE(&xbox::KdDebuggerEnabled), // 0x0058 (88)
(uint32_t)VARIABLE(&xbox::KdDebuggerNotPresent), // 0x0059 (89)
(uint32_t)FUNC(&xbox::IoDismountVolume), // 0x005A (90)
(uint32_t)FUNC(&xbox::IoDismountVolumeByName), // 0x005B (91)
(uint32_t)FUNC(&xbox::KeAlertResumeThread), // 0x005C (92)
(uint32_t)FUNC(&xbox::KeAlertThread), // 0x005D (93)
(uint32_t)FUNC(&xbox::KeBoostPriorityThread), // 0x005E (94)
(uint32_t)FUNC(&xbox::KeBugCheck), // 0x005F (95)
(uint32_t)FUNC(&xbox::KeBugCheckEx), // 0x0060 (96)
(uint32_t)FUNC(&xbox::KeCancelTimer), // 0x0061 (97)
(uint32_t)FUNC(&xbox::KeConnectInterrupt), // 0x0062 (98)
(uint32_t)FUNC(&xbox::KeDelayExecutionThread), // 0x0063 (99)
(uint32_t)FUNC(&xbox::KeDisconnectInterrupt), // 0x0064 (100
(uint32_t)FUNC(&xbox::KeEnterCriticalRegion), // 0x0065 (101)
(uint32_t)VARIABLE(&xbox::MmGlobalData), // 0x0066 (102)
(uint32_t)FUNC(&xbox::KeGetCurrentIrql), // 0x0067 (103)
(uint32_t)FUNC(&xbox::KeGetCurrentThread), // 0x0068 (104)
(uint32_t)FUNC(&xbox::KeInitializeApc), // 0x0069 (105)
(uint32_t)FUNC(&xbox::KeInitializeDeviceQueue), // 0x006A (106)
(uint32_t)FUNC(&xbox::KeInitializeDpc), // 0x006B (107)
(uint32_t)FUNC(&xbox::KeInitializeEvent), // 0x006C (108)
(uint32_t)FUNC(&xbox::KeInitializeInterrupt), // 0x006D (109)
(uint32_t)FUNC(&xbox::KeInitializeMutant), // 0x006E (110)
(uint32_t)FUNC(&xbox::KeInitializeQueue), // 0x006F (111)
(uint32_t)FUNC(&xbox::KeInitializeSemaphore), // 0x0070 (112)
(uint32_t)FUNC(&xbox::KeInitializeTimerEx), // 0x0071 (113)
(uint32_t)FUNC(&xbox::KeInsertByKeyDeviceQueue), // 0x0072 (114)
(uint32_t)FUNC(&xbox::KeInsertDeviceQueue), // 0x0073 (115)
(uint32_t)FUNC(&xbox::KeInsertHeadQueue), // 0x0074 (116)
(uint32_t)FUNC(&xbox::KeInsertQueue), // 0x0075 (117)
(uint32_t)FUNC(&xbox::KeInsertQueueApc), // 0x0076 (118)
(uint32_t)FUNC(&xbox::KeInsertQueueDpc), // 0x0077 (119)
(uint32_t)VARIABLE(&xbox::KeInterruptTime), // 0x0078 (120) KeInterruptTime
(uint32_t)FUNC(&xbox::KeIsExecutingDpc), // 0x0079 (121)
(uint32_t)FUNC(&xbox::KeLeaveCriticalRegion), // 0x007A (122)
(uint32_t)FUNC(&xbox::KePulseEvent), // 0x007B (123)
(uint32_t)FUNC(&xbox::KeQueryBasePriorityThread), // 0x007C (124)
(uint32_t)FUNC(&xbox::KeQueryInterruptTime), // 0x007D (125)
(uint32_t)FUNC(&xbox::KeQueryPerformanceCounter), // 0x007E (126)
(uint32_t)FUNC(&xbox::KeQueryPerformanceFrequency), // 0x007F (127)
(uint32_t)FUNC(&xbox::KeQuerySystemTime), // 0x0080 (128)
(uint32_t)FUNC(&xbox::KeRaiseIrqlToDpcLevel), // 0x0081 (129)
(uint32_t)FUNC(&xbox::KeRaiseIrqlToSynchLevel), // 0x0082 (130)
(uint32_t)FUNC(&xbox::KeReleaseMutant), // 0x0083 (131)
(uint32_t)FUNC(&xbox::KeReleaseSemaphore), // 0x0084 (132)
(uint32_t)FUNC(&xbox::KeRemoveByKeyDeviceQueue), // 0x0085 (133)
(uint32_t)FUNC(&xbox::KeRemoveDeviceQueue), // 0x0086 (134)
(uint32_t)FUNC(&xbox::KeRemoveEntryDeviceQueue), // 0x0087 (135)
(uint32_t)FUNC(&xbox::KeRemoveQueue), // 0x0088 (136)
(uint32_t)FUNC(&xbox::KeRemoveQueueDpc), // 0x0089 (137)
(uint32_t)FUNC(&xbox::KeResetEvent), // 0x008A (138)
(uint32_t)FUNC(&xbox::KeRestoreFloatingPointState), // 0x008B (139)
(uint32_t)FUNC(&xbox::KeResumeThread), // 0x008C (140)
(uint32_t)FUNC(&xbox::KeRundownQueue), // 0x008D (141)
(uint32_t)FUNC(&xbox::KeSaveFloatingPointState), // 0x008E (142)
(uint32_t)FUNC(&xbox::KeSetBasePriorityThread), // 0x008F (143)
(uint32_t)FUNC(&xbox::KeSetDisableBoostThread), // 0x0090 (144)
(uint32_t)FUNC(&xbox::KeSetEvent), // 0x0091 (145)
(uint32_t)FUNC(&xbox::KeSetEventBoostPriority), // 0x0092 (146)
(uint32_t)FUNC(&xbox::KeSetPriorityProcess), // 0x0093 (147)
(uint32_t)FUNC(&xbox::KeSetPriorityThread), // 0x0094 (148)
(uint32_t)FUNC(&xbox::KeSetTimer), // 0x0095 (149)
(uint32_t)FUNC(&xbox::KeSetTimerEx), // 0x0096 (150)
(uint32_t)FUNC(&xbox::KeStallExecutionProcessor), // 0x0097 (151)
(uint32_t)FUNC(&xbox::KeSuspendThread), // 0x0098 (152)
(uint32_t)FUNC(&xbox::KeSynchronizeExecution), // 0x0099 (153)
(uint32_t)VARIABLE(&xbox::KeSystemTime), // 0x009A (154) KeSystemTime
(uint32_t)FUNC(&xbox::KeTestAlertThread), // 0x009B (155)
(uint32_t)VARIABLE(&xbox::KeTickCount), // 0x009C (156)
(uint32_t)VARIABLE(&xbox::KeTimeIncrement), // 0x009D (157)
(uint32_t)FUNC(&xbox::KeWaitForMultipleObjects), // 0x009E (158)
(uint32_t)FUNC(&xbox::KeWaitForSingleObject), // 0x009F (159)
(uint32_t)FUNC(&xbox::KfRaiseIrql), // 0x00A0 (160)
(uint32_t)FUNC(&xbox::KfLowerIrql), // 0x00A1 (161)
(uint32_t)VARIABLE(&xbox::KiBugCheckData), // 0x00A2 (162)
(uint32_t)FUNC(&xbox::KiUnlockDispatcherDatabase), // 0x00A3 (163)
(uint32_t)VARIABLE(&xbox::LaunchDataPage), // 0x00A4 (164)
(uint32_t)FUNC(&xbox::MmAllocateContiguousMemory), // 0x00A5 (165)
(uint32_t)FUNC(&xbox::MmAllocateContiguousMemoryEx), // 0x00A6 (166)
(uint32_t)FUNC(&xbox::MmAllocateSystemMemory), // 0x00A7 (167)
(uint32_t)FUNC(&xbox::MmClaimGpuInstanceMemory), // 0x00A8 (168)
(uint32_t)FUNC(&xbox::MmCreateKernelStack), // 0x00A9 (169)
(uint32_t)FUNC(&xbox::MmDeleteKernelStack), // 0x00AA (170)
(uint32_t)FUNC(&xbox::MmFreeContiguousMemory), // 0x00AB (171)
(uint32_t)FUNC(&xbox::MmFreeSystemMemory), // 0x00AC (172)
(uint32_t)FUNC(&xbox::MmGetPhysicalAddress), // 0x00AD (173)
(uint32_t)FUNC(&xbox::MmIsAddressValid), // 0x00AE (174)
(uint32_t)FUNC(&xbox::MmLockUnlockBufferPages), // 0x00AF (175)
(uint32_t)FUNC(&xbox::MmLockUnlockPhysicalPage), // 0x00B0 (176)
(uint32_t)FUNC(&xbox::MmMapIoSpace), // 0x00B1 (177)
(uint32_t)FUNC(&xbox::MmPersistContiguousMemory), // 0x00B2 (178)
(uint32_t)FUNC(&xbox::MmQueryAddressProtect), // 0x00B3 (179)
(uint32_t)FUNC(&xbox::MmQueryAllocationSize), // 0x00B4 (180)
(uint32_t)FUNC(&xbox::MmQueryStatistics), // 0x00B5 (181)
(uint32_t)FUNC(&xbox::MmSetAddressProtect), // 0x00B6 (182)
(uint32_t)FUNC(&xbox::MmUnmapIoSpace), // 0x00B7 (183)
(uint32_t)FUNC(&xbox::NtAllocateVirtualMemory), // 0x00B8 (184)
(uint32_t)FUNC(&xbox::NtCancelTimer), // 0x00B9 (185)
(uint32_t)FUNC(&xbox::NtClearEvent), // 0x00BA (186)
(uint32_t)FUNC(&xbox::NtClose), // 0x00BB (187)
(uint32_t)FUNC(&xbox::NtCreateDirectoryObject), // 0x00BC (188)
(uint32_t)FUNC(&xbox::NtCreateEvent), // 0x00BD (189)
(uint32_t)FUNC(&xbox::NtCreateFile), // 0x00BE (190)
(uint32_t)FUNC(&xbox::NtCreateIoCompletion), // 0x00BF (191)
(uint32_t)FUNC(&xbox::NtCreateMutant), // 0x00C0 (192)
(uint32_t)FUNC(&xbox::NtCreateSemaphore), // 0x00C1 (193)
(uint32_t)FUNC(&xbox::NtCreateTimer), // 0x00C2 (194)
(uint32_t)FUNC(&xbox::NtDeleteFile), // 0x00C3 (195)
(uint32_t)FUNC(&xbox::NtDeviceIoControlFile), // 0x00C4 (196)
(uint32_t)FUNC(&xbox::NtDuplicateObject), // 0x00C5 (197)
(uint32_t)FUNC(&xbox::NtFlushBuffersFile), // 0x00C6 (198)
(uint32_t)FUNC(&xbox::NtFreeVirtualMemory), // 0x00C7 (199)
(uint32_t)FUNC(&xbox::NtFsControlFile), // 0x00C8 (200)
(uint32_t)FUNC(&xbox::NtOpenDirectoryObject), // 0x00C9 (201)
(uint32_t)FUNC(&xbox::NtOpenFile), // 0x00CA (202)
(uint32_t)FUNC(&xbox::NtOpenSymbolicLinkObject), // 0x00CB (203)
(uint32_t)FUNC(&xbox::NtProtectVirtualMemory), // 0x00CC (204)
(uint32_t)FUNC(&xbox::NtPulseEvent), // 0x00CD (205)
(uint32_t)FUNC(&xbox::NtQueueApcThread), // 0x00CE (206)
(uint32_t)FUNC(&xbox::NtQueryDirectoryFile), // 0x00CF (207)
(uint32_t)FUNC(&xbox::NtQueryDirectoryObject), // 0x00D0 (208)
(uint32_t)FUNC(&xbox::NtQueryEvent), // 0x00D1 (209)
(uint32_t)FUNC(&xbox::NtQueryFullAttributesFile), // 0x00D2 (210)
(uint32_t)FUNC(&xbox::NtQueryInformationFile), // 0x00D3 (211)
(uint32_t)FUNC(&xbox::NtQueryIoCompletion), // 0x00D4 (212)
(uint32_t)FUNC(&xbox::NtQueryMutant), // 0x00D5 (213)
(uint32_t)FUNC(&xbox::NtQuerySemaphore), // 0x00D6 (214)
(uint32_t)FUNC(&xbox::NtQuerySymbolicLinkObject), // 0x00D7 (215)
(uint32_t)FUNC(&xbox::NtQueryTimer), // 0x00D8 (216)
(uint32_t)FUNC(&xbox::NtQueryVirtualMemory), // 0x00D9 (217)
(uint32_t)FUNC(&xbox::NtQueryVolumeInformationFile), // 0x00DA (218)
(uint32_t)FUNC(&xbox::NtReadFile), // 0x00DB (219)
(uint32_t)FUNC(&xbox::NtReadFileScatter), // 0x00DC (220)
(uint32_t)FUNC(&xbox::NtReleaseMutant), // 0x00DD (221)
(uint32_t)FUNC(&xbox::NtReleaseSemaphore), // 0x00DE (222)
(uint32_t)FUNC(&xbox::NtRemoveIoCompletion), // 0x00DF (223)
(uint32_t)FUNC(&xbox::NtResumeThread), // 0x00E0 (224)
(uint32_t)FUNC(&xbox::NtSetEvent), // 0x00E1 (225)
(uint32_t)FUNC(&xbox::NtSetInformationFile), // 0x00E2 (226)
(uint32_t)FUNC(&xbox::NtSetIoCompletion), // 0x00E3 (227)
(uint32_t)FUNC(&xbox::NtSetSystemTime), // 0x00E4 (228)
(uint32_t)FUNC(&xbox::NtSetTimerEx), // 0x00E5 (229)
(uint32_t)FUNC(&xbox::NtSignalAndWaitForSingleObjectEx), // 0x00E6 (230)
(uint32_t)FUNC(&xbox::NtSuspendThread), // 0x00E7 (231)
(uint32_t)FUNC(&xbox::NtUserIoApcDispatcher), // 0x00E8 (232)
(uint32_t)FUNC(&xbox::NtWaitForSingleObject), // 0x00E9 (233)
(uint32_t)FUNC(&xbox::NtWaitForSingleObjectEx), // 0x00EA (234)
(uint32_t)FUNC(&xbox::NtWaitForMultipleObjectsEx), // 0x00EB (235)
(uint32_t)FUNC(&xbox::NtWriteFile), // 0x00EC (236)
(uint32_t)FUNC(&xbox::NtWriteFileGather), // 0x00ED (237)
(uint32_t)FUNC(&xbox::NtYieldExecution), // 0x00EE (238)
(uint32_t)FUNC(&xbox::ObCreateObject), // 0x00EF (239)
(uint32_t)VARIABLE(&xbox::ObDirectoryObjectType), // 0x00F0 (240)
(uint32_t)FUNC(&xbox::ObInsertObject), // 0x00F1 (241)
(uint32_t)FUNC(&xbox::ObMakeTemporaryObject), // 0x00F2 (242)
(uint32_t)FUNC(&xbox::ObOpenObjectByName), // 0x00F3 (243)
(uint32_t)FUNC(&xbox::ObOpenObjectByPointer), // 0x00F4 (244)
(uint32_t)VARIABLE(&xbox::ObpObjectHandleTable), // 0x00F5 (245)
(uint32_t)FUNC(&xbox::ObReferenceObjectByHandle), // 0x00F6 (246)
(uint32_t)FUNC(&xbox::ObReferenceObjectByName), // 0x00F7 (247)
(uint32_t)FUNC(&xbox::ObReferenceObjectByPointer), // 0x00F8 (248)
(uint32_t)VARIABLE(&xbox::ObSymbolicLinkObjectType), // 0x00F9 (249)
(uint32_t)FUNC(&xbox::ObfDereferenceObject), // 0x00FA (250)
(uint32_t)FUNC(&xbox::ObfReferenceObject), // 0x00FB (251)
(uint32_t)FUNC(&xbox::PhyGetLinkState), // 0x00FC (252)
(uint32_t)FUNC(&xbox::PhyInitialize), // 0x00FD (253)
(uint32_t)FUNC(&xbox::PsCreateSystemThread), // 0x00FE (254)
(uint32_t)FUNC(&xbox::PsCreateSystemThreadEx), // 0x00FF (255)
(uint32_t)FUNC(&xbox::PsQueryStatistics), // 0x0100 (256)
(uint32_t)FUNC(&xbox::PsSetCreateThreadNotifyRoutine), // 0x0101 (257)
(uint32_t)FUNC(&xbox::PsTerminateSystemThread), // 0x0102 (258)
(uint32_t)VARIABLE(&xbox::PsThreadObjectType), // 0x0103 (259)
(uint32_t)FUNC(&xbox::RtlAnsiStringToUnicodeString), // 0x0104 (260)
(uint32_t)FUNC(&xbox::RtlAppendStringToString), // 0x0105 (261)
(uint32_t)FUNC(&xbox::RtlAppendUnicodeStringToString), // 0x0106 (262)
(uint32_t)FUNC(&xbox::RtlAppendUnicodeToString), // 0x0107 (263)
(uint32_t)FUNC(&xbox::RtlAssert), // 0x0108 (264)
(uint32_t)FUNC(&xbox::RtlCaptureContext), // 0x0109 (265)
(uint32_t)FUNC(&xbox::RtlCaptureStackBackTrace), // 0x010A (266)
(uint32_t)FUNC(&xbox::RtlCharToInteger), // 0x010B (267)
(uint32_t)FUNC(&xbox::RtlCompareMemory), // 0x010C (268)
(uint32_t)FUNC(&xbox::RtlCompareMemoryUlong), // 0x010D (269)
(uint32_t)FUNC(&xbox::RtlCompareString), // 0x010E (270)
(uint32_t)FUNC(&xbox::RtlCompareUnicodeString), // 0x010F (271)
(uint32_t)FUNC(&xbox::RtlCopyString), // 0x0110 (272)
(uint32_t)FUNC(&xbox::RtlCopyUnicodeString), // 0x0111 (273)
(uint32_t)FUNC(&xbox::RtlCreateUnicodeString), // 0x0112 (274)
(uint32_t)FUNC(&xbox::RtlDowncaseUnicodeChar), // 0x0113 (275)
(uint32_t)FUNC(&xbox::RtlDowncaseUnicodeString), // 0x0114 (276)
(uint32_t)FUNC(&xbox::RtlEnterCriticalSection), // 0x0115 (277)
(uint32_t)FUNC(&xbox::RtlEnterCriticalSectionAndRegion), // 0x0116 (278)
(uint32_t)FUNC(&xbox::RtlEqualString), // 0x0117 (279)
(uint32_t)FUNC(&xbox::RtlEqualUnicodeString), // 0x0118 (280)
(uint32_t)FUNC(&xbox::RtlExtendedIntegerMultiply), // 0x0119 (281)
(uint32_t)FUNC(&xbox::RtlExtendedLargeIntegerDivide), // 0x011A (282)
(uint32_t)FUNC(&xbox::RtlExtendedMagicDivide), // 0x011B (283)
(uint32_t)FUNC(&xbox::RtlFillMemory), // 0x011C (284)
(uint32_t)FUNC(&xbox::RtlFillMemoryUlong), // 0x011D (285)
(uint32_t)FUNC(&xbox::RtlFreeAnsiString), // 0x011E (286)
(uint32_t)FUNC(&xbox::RtlFreeUnicodeString), // 0x011F (287)
(uint32_t)FUNC(&xbox::RtlGetCallersAddress), // 0x0120 (288)
(uint32_t)FUNC(&xbox::RtlInitAnsiString), // 0x0121 (289)
(uint32_t)FUNC(&xbox::RtlInitUnicodeString), // 0x0122 (290)
(uint32_t)FUNC(&xbox::RtlInitializeCriticalSection), // 0x0123 (291)
(uint32_t)FUNC(&xbox::RtlIntegerToChar), // 0x0124 (292)
(uint32_t)FUNC(&xbox::RtlIntegerToUnicodeString), // 0x0125 (293)
(uint32_t)FUNC(&xbox::RtlLeaveCriticalSection), // 0x0126 (294)
(uint32_t)FUNC(&xbox::RtlLeaveCriticalSectionAndRegion), // 0x0127 (295)
(uint32_t)FUNC(&xbox::RtlLowerChar), // 0x0128 (296)
(uint32_t)FUNC(&xbox::RtlMapGenericMask), // 0x0129 (297)
(uint32_t)FUNC(&xbox::RtlMoveMemory), // 0x012A (298)
(uint32_t)FUNC(&xbox::RtlMultiByteToUnicodeN), // 0x012B (299)
(uint32_t)FUNC(&xbox::RtlMultiByteToUnicodeSize), // 0x012C (300)
(uint32_t)FUNC(&xbox::RtlNtStatusToDosError), // 0x012D (301)
(uint32_t)FUNC(&xbox::RtlRaiseException), // 0x012E (302)
(uint32_t)FUNC(&xbox::RtlRaiseStatus), // 0x012F (303)
(uint32_t)FUNC(&xbox::RtlTimeFieldsToTime), // 0x0130 (304)
(uint32_t)FUNC(&xbox::RtlTimeToTimeFields), // 0x0131 (305)
(uint32_t)FUNC(&xbox::RtlTryEnterCriticalSection), // 0x0132 (306)
(uint32_t)FUNC(&xbox::RtlUlongByteSwap), // 0x0133 (307)
(uint32_t)FUNC(&xbox::RtlUnicodeStringToAnsiString), // 0x0134 (308)
(uint32_t)FUNC(&xbox::RtlUnicodeStringToInteger), // 0x0135 (309)
(uint32_t)FUNC(&xbox::RtlUnicodeToMultiByteN), // 0x0136 (310)
(uint32_t)FUNC(&xbox::RtlUnicodeToMultiByteSize), // 0x0137 (311)
(uint32_t)FUNC(&xbox::RtlUnwind), // 0x0138 (312)
(uint32_t)FUNC(&xbox::RtlUpcaseUnicodeChar), // 0x0139 (313)
(uint32_t)FUNC(&xbox::RtlUpcaseUnicodeString), // 0x013A (314)
(uint32_t)FUNC(&xbox::RtlUpcaseUnicodeToMultiByteN), // 0x013B (315)
(uint32_t)FUNC(&xbox::RtlUpperChar), // 0x013C (316)
(uint32_t)FUNC(&xbox::RtlUpperString), // 0x013D (317)
(uint32_t)FUNC(&xbox::RtlUshortByteSwap), // 0x013E (318)
(uint32_t)FUNC(&xbox::RtlWalkFrameChain), // 0x013F (319)
(uint32_t)FUNC(&xbox::RtlZeroMemory), // 0x0140 (320)
(uint32_t)VARIABLE(&xbox::XboxEEPROMKey), // 0x0141 (321)
(uint32_t)VARIABLE(&xbox::XboxHardwareInfo), // 0x0142 (322)
(uint32_t)VARIABLE(&xbox::XboxHDKey), // 0x0143 (323)
(uint32_t)VARIABLE(&xbox::XboxKrnlVersion), // 0x0144 (324)
(uint32_t)VARIABLE(&xbox::XboxSignatureKey), // 0x0145 (325)
(uint32_t)VARIABLE(&xbox::XeImageFileName), // 0x0146 (326)
(uint32_t)FUNC(&xbox::XeLoadSection), // 0x0147 (327)
(uint32_t)FUNC(&xbox::XeUnloadSection), // 0x0148 (328)
(uint32_t)FUNC(&xbox::READ_PORT_BUFFER_UCHAR), // 0x0149 (329)
(uint32_t)FUNC(&xbox::READ_PORT_BUFFER_USHORT), // 0x014A (330)
(uint32_t)FUNC(&xbox::READ_PORT_BUFFER_ULONG), // 0x014B (331)
(uint32_t)FUNC(&xbox::WRITE_PORT_BUFFER_UCHAR), // 0x014C (332)
(uint32_t)FUNC(&xbox::WRITE_PORT_BUFFER_USHORT), // 0x014D (333)
(uint32_t)FUNC(&xbox::WRITE_PORT_BUFFER_ULONG), // 0x014E (334)
(uint32_t)FUNC(&xbox::XcSHAInit), // 0x014F (335)
(uint32_t)FUNC(&xbox::XcSHAUpdate), // 0x0150 (336)
(uint32_t)FUNC(&xbox::XcSHAFinal), // 0x0151 (337)
(uint32_t)FUNC(&xbox::XcRC4Key), // 0x0152 (338)
(uint32_t)FUNC(&xbox::XcRC4Crypt), // 0x0153 (339)
(uint32_t)FUNC(&xbox::XcHMAC), // 0x0154 (340)
(uint32_t)FUNC(&xbox::XcPKEncPublic), // 0x0155 (341)
(uint32_t)FUNC(&xbox::XcPKDecPrivate), // 0x0156 (342)
(uint32_t)FUNC(&xbox::XcPKGetKeyLen), // 0x0157 (343)
(uint32_t)FUNC(&xbox::XcVerifyPKCS1Signature), // 0x0158 (344)
(uint32_t)FUNC(&xbox::XcModExp), // 0x0159 (345)
(uint32_t)FUNC(&xbox::XcDESKeyParity), // 0x015A (346)
(uint32_t)FUNC(&xbox::XcKeyTable), // 0x015B (347)
(uint32_t)FUNC(&xbox::XcBlockCrypt), // 0x015C (348)
(uint32_t)FUNC(&xbox::XcBlockCryptCBC), // 0x015D (349)
(uint32_t)FUNC(&xbox::XcCryptService), // 0x015E (350)
(uint32_t)FUNC(&xbox::XcUpdateCrypto), // 0x015F (351)
(uint32_t)FUNC(&xbox::RtlRip), // 0x0160 (352)
(uint32_t)VARIABLE(&xbox::XboxLANKey), // 0x0161 (353)
(uint32_t)VARIABLE(&xbox::XboxAlternateSignatureKeys), // 0x0162 (354)
(uint32_t)VARIABLE(&xbox::XePublicKeyData), // 0x0163 (355)
(uint32_t)VARIABLE(&xbox::HalBootSMCVideoMode), // 0x0164 (356)
(uint32_t)VARIABLE(&xbox::IdexChannelObject), // 0x0165 (357)
(uint32_t)FUNC(&xbox::HalIsResetOrShutdownPending), // 0x0166 (358)
(uint32_t)FUNC(&xbox::IoMarkIrpMustComplete), // 0x0167 (359)
(uint32_t)FUNC(&xbox::HalInitiateShutdown), // 0x0168 (360)
(uint32_t)FUNC(&xbox::RtlSnprintf), // 0x0169 (361)
(uint32_t)FUNC(&xbox::RtlSprintf), // 0x016A (362)
(uint32_t)FUNC(&xbox::RtlVsnprintf), // 0x016B (363)
(uint32_t)FUNC(&xbox::RtlVsprintf), // 0x016C (364)
(uint32_t)FUNC(&xbox::HalEnableSecureTrayEject), // 0x016D (365)
(uint32_t)FUNC(&xbox::HalWriteSMCScratchRegister), // 0x016E (366)
(uint32_t)FUNC(&xbox::UnknownAPI367), // 0x016F (367)
(uint32_t)FUNC(&xbox::UnknownAPI368), // 0x0170 (368)
(uint32_t)FUNC(&xbox::UnknownAPI369), // 0x0171 (369)
(uint32_t)FUNC(&xbox::XProfpControl), // 0x0172 (370) PROFILING
(uint32_t)FUNC(&xbox::XProfpGetData), // 0x0173 (371) PROFILING
(uint32_t)FUNC(&xbox::IrtClientInitFast), // 0x0174 (372) PROFILING
(uint32_t)FUNC(&xbox::IrtSweep), // 0x0175 (373) PROFILING
(uint32_t)FUNC(&xbox::MmDbgAllocateMemory), // 0x0176 (374) DEVKIT ONLY!
(uint32_t)FUNC(&xbox::MmDbgFreeMemory), // 0x0177 (375) DEVKIT ONLY!
(uint32_t)FUNC(&xbox::MmDbgQueryAvailablePages), // 0x0178 (376) DEVKIT ONLY!
(uint32_t)FUNC(&xbox::MmDbgReleaseAddress), // 0x0179 (377) DEVKIT ONLY!
(uint32_t)FUNC(&xbox::MmDbgWriteCheck), // 0x017A (378) DEVKIT ONLY!
};

View File

@ -41,6 +41,11 @@
#include "EmuEEPROM.h" // For CxbxRestoreEEPROM, EEPROM, XboxFactoryGameRegion
#include "core\kernel\exports\EmuKrnl.h"
#include "core\kernel\exports\EmuKrnlKi.h"
#ifndef VOID
#define VOID void
#endif
#include "EmuShared.h"
#include "core\hle\D3D8\Direct3D9\Direct3D9.h" // For CxbxInitWindow, EmuD3DInit
#include "core\hle\DSOUND\DirectSound\DirectSound.hpp" // For CxbxInitAudio
@ -150,17 +155,17 @@ void SetupPerTitleKeys()
UCHAR Digest[20] = {};
// Set the LAN Key
xboxkrnl::XcHMAC(xboxkrnl::XboxCertificateKey, xboxkrnl::XBOX_KEY_LENGTH, g_pCertificate->bzLanKey, xboxkrnl::XBOX_KEY_LENGTH, NULL, 0, Digest);
memcpy(xboxkrnl::XboxLANKey, Digest, xboxkrnl::XBOX_KEY_LENGTH);
xbox::XcHMAC(xbox::XboxCertificateKey, xbox::XBOX_KEY_LENGTH, g_pCertificate->bzLanKey, xbox::XBOX_KEY_LENGTH, NULL, 0, Digest);
memcpy(xbox::XboxLANKey, Digest, xbox::XBOX_KEY_LENGTH);
// Signature Key
xboxkrnl::XcHMAC(xboxkrnl::XboxCertificateKey, xboxkrnl::XBOX_KEY_LENGTH, g_pCertificate->bzSignatureKey, xboxkrnl::XBOX_KEY_LENGTH, NULL, 0, Digest);
memcpy(xboxkrnl::XboxSignatureKey, Digest, xboxkrnl::XBOX_KEY_LENGTH);
xbox::XcHMAC(xbox::XboxCertificateKey, xbox::XBOX_KEY_LENGTH, g_pCertificate->bzSignatureKey, xbox::XBOX_KEY_LENGTH, NULL, 0, Digest);
memcpy(xbox::XboxSignatureKey, Digest, xbox::XBOX_KEY_LENGTH);
// Alternate Signature Keys
for (int i = 0; i < xboxkrnl::ALTERNATE_SIGNATURE_COUNT; i++) {
xboxkrnl::XcHMAC(xboxkrnl::XboxCertificateKey, xboxkrnl::XBOX_KEY_LENGTH, g_pCertificate->bzTitleAlternateSignatureKey[i], xboxkrnl::XBOX_KEY_LENGTH, NULL, 0, Digest);
memcpy(xboxkrnl::XboxAlternateSignatureKeys[i], Digest, xboxkrnl::XBOX_KEY_LENGTH);
for (int i = 0; i < xbox::ALTERNATE_SIGNATURE_COUNT; i++) {
xbox::XcHMAC(xbox::XboxCertificateKey, xbox::XBOX_KEY_LENGTH, g_pCertificate->bzTitleAlternateSignatureKey[i], xbox::XBOX_KEY_LENGTH, NULL, 0, Digest);
memcpy(xbox::XboxAlternateSignatureKeys[i], Digest, xbox::XBOX_KEY_LENGTH);
}
}
@ -351,16 +356,16 @@ BOOLEAN DispatchInterrupt
void InitSoftwareInterrupts()
{
// Init software interrupt 1 (for APC dispatching)
xboxkrnl::KINTERRUPT SoftwareInterrupt_1;
xbox::KINTERRUPT SoftwareInterrupt_1;
SoftwareInterrupt_1.BusInterruptLevel = 1;
SoftwareInterrupt_1.ServiceRoutine = ApcInterrupt;
xboxkrnl::KeConnectInterrupt(&SoftwareInterrupt_1);
xbox::KeConnectInterrupt(&SoftwareInterrupt_1);
// Init software interrupt 2 (for DPC dispatching)
xboxkrnl::KINTERRUPT SoftwareInterrupt_2;
xbox::KINTERRUPT SoftwareInterrupt_2;
SoftwareInterrupt_2.BusInterruptLevel = 2;
SoftwareInterrupt_2.ServiceRoutine = DispatchInterrupt;
xboxkrnl::KeConnectInterrupt(&SoftwareInterrupt_2);
xbox::KeConnectInterrupt(&SoftwareInterrupt_2);
}
#endif
@ -427,14 +432,14 @@ static void CxbxKrnlClockThread(void* pVoid)
IncrementScaling = (unsigned int)(UnaccountedMicroseconds / 1000); // -> 1 ms = 1000us -> time between two xbox clock interrupts
UnaccountedMicroseconds -= (IncrementScaling * 1000);
xboxkrnl::KiClockIsr(IncrementScaling);
xbox::KiClockIsr(IncrementScaling);
}
std::vector<xbaddr> g_RdtscPatches;
std::vector<xbox::addr> g_RdtscPatches;
#define OPCODE_PATCH_RDTSC 0x90EF // OUT DX, EAX; NOP
bool IsRdtscInstruction(xbaddr addr)
bool IsRdtscInstruction(xbox::addr addr)
{
// First the fastest check - does addr contain exact patch from PatchRdtsc?
// Second check - is addr on the rdtsc patch list?
@ -445,7 +450,7 @@ bool IsRdtscInstruction(xbaddr addr)
&& (std::find(g_RdtscPatches.begin(), g_RdtscPatches.end(), addr) != g_RdtscPatches.end());
}
void PatchRdtsc(xbaddr addr)
void PatchRdtsc(xbox::addr addr)
{
// Patch away rdtsc with an opcode we can intercept
// We use a privilaged instruction rather than int 3 for debugging
@ -514,10 +519,10 @@ void PatchRdtscInstructions()
}
EmuLogInit(LOG_LEVEL::INFO, "Searching for rdtsc in section %s", CxbxKrnl_Xbe->m_szSectionName[sectionIndex]);
xbaddr startAddr = CxbxKrnl_Xbe->m_SectionHeader[sectionIndex].dwVirtualAddr;
xbox::addr startAddr = CxbxKrnl_Xbe->m_SectionHeader[sectionIndex].dwVirtualAddr;
//rdtsc is two bytes instruction, it needs at least one opcode byte after it to finish a function, so the endAddr need to substract 3 bytes.
xbaddr endAddr = startAddr + CxbxKrnl_Xbe->m_SectionHeader[sectionIndex].dwSizeofRaw-3;
for (xbaddr addr = startAddr; addr <= endAddr; addr++)
xbox::addr endAddr = startAddr + CxbxKrnl_Xbe->m_SectionHeader[sectionIndex].dwSizeofRaw-3;
for (xbox::addr addr = startAddr; addr <= endAddr; addr++)
{
if (memcmp((void*)addr, rdtsc, 2) == 0)
{
@ -584,8 +589,8 @@ void MapThunkTable(uint32_t* kt, uint32_t* pThunkTable)
}
typedef struct {
xbaddr ThunkAddr;
xbaddr LibNameAddr;
xbox::addr ThunkAddr;
xbox::addr LibNameAddr;
} XbeImportEntry;
void ImportLibraries(XbeImportEntry *pImportDirectory)
@ -1095,10 +1100,10 @@ void CxbxKrnlEmulate(unsigned int reserved_systems, blocks_reserved_t blocks_res
memcpy((void*)(CxbxKrnl_Xbe->m_Header.dwBaseAddr + sizeof(Xbe::Header)), CxbxKrnl_Xbe->m_HeaderEx, CxbxKrnl_Xbe->m_ExSize);
// Load all sections marked as preload using the in-memory copy of the xbe header
xboxkrnl::PXBEIMAGE_SECTION sectionHeaders = (xboxkrnl::PXBEIMAGE_SECTION)CxbxKrnl_Xbe->m_Header.dwSectionHeadersAddr;
xbox::PXBEIMAGE_SECTION sectionHeaders = (xbox::PXBEIMAGE_SECTION)CxbxKrnl_Xbe->m_Header.dwSectionHeadersAddr;
for (uint32_t i = 0; i < CxbxKrnl_Xbe->m_Header.dwSections; i++) {
if ((sectionHeaders[i].Flags & XBEIMAGE_SECTION_PRELOAD) != 0) {
NTSTATUS result = xboxkrnl::XeLoadSection(&sectionHeaders[i]);
NTSTATUS result = xbox::XeLoadSection(&sectionHeaders[i]);
if (FAILED(result)) {
EmuLogInit(LOG_LEVEL::WARNING, "Failed to preload XBE section: %s", CxbxKrnl_Xbe->m_szSectionName[i]);
}
@ -1121,9 +1126,9 @@ void CxbxKrnlEmulate(unsigned int reserved_systems, blocks_reserved_t blocks_res
}
EmuLogInit(LOG_LEVEL::INFO, "Searching for XBEH in section %s", CxbxKrnl_Xbe->m_szSectionName[sectionIndex]);
xbaddr startAddr = CxbxKrnl_Xbe->m_SectionHeader[sectionIndex].dwVirtualAddr;
xbaddr endAddr = startAddr + CxbxKrnl_Xbe->m_SectionHeader[sectionIndex].dwSizeofRaw;
for (xbaddr addr = startAddr; addr < endAddr; addr++) {
xbox::addr startAddr = CxbxKrnl_Xbe->m_SectionHeader[sectionIndex].dwVirtualAddr;
xbox::addr endAddr = startAddr + CxbxKrnl_Xbe->m_SectionHeader[sectionIndex].dwSizeofRaw;
for (xbox::addr addr = startAddr; addr < endAddr; addr++) {
if (*(uint32_t*)addr == 0x48454258) {
EmuLogInit(LOG_LEVEL::INFO, "Patching XBEH at 0x%08X", addr);
*((uint32_t*)addr) = *(uint32_t*)XBE_IMAGE_BASE;
@ -1152,7 +1157,7 @@ void CxbxKrnlEmulate(unsigned int reserved_systems, blocks_reserved_t blocks_res
Xbe::TLS* XbeTls = (Xbe::TLS*)CxbxKrnl_Xbe->m_Header.dwTLSAddr;
void* XbeTlsData = (XbeTls != nullptr) ? (void*)CxbxKrnl_Xbe->m_TLS->dwDataStartAddr : nullptr;
// Decode Entry Point
xbaddr EntryPoint = CxbxKrnl_Xbe->m_Header.dwEntryAddr;
xbox::addr EntryPoint = CxbxKrnl_Xbe->m_Header.dwEntryAddr;
EntryPoint ^= XOR_EP_KEY[to_underlying(xbeType)];
// Launch XBE
CxbxKrnlInit(
@ -1185,20 +1190,20 @@ void LoadXboxKeys(std::string path)
if (fp != nullptr) {
// Determine size of Keys.bin
xboxkrnl::XBOX_KEY_DATA keys[2];
xbox::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);
if (size == xbox::XBOX_KEY_LENGTH * 2) {
fread(keys, xbox::XBOX_KEY_LENGTH, 2, fp);
memcpy(xboxkrnl::XboxEEPROMKey, &keys[0], xboxkrnl::XBOX_KEY_LENGTH);
memcpy(xboxkrnl::XboxCertificateKey, &keys[1], xboxkrnl::XBOX_KEY_LENGTH);
memcpy(xbox::XboxEEPROMKey, &keys[0], xbox::XBOX_KEY_LENGTH);
memcpy(xbox::XboxCertificateKey, &keys[1], xbox::XBOX_KEY_LENGTH);
}
else {
EmuLog(LOG_LEVEL::WARNING, "Keys.bin has an incorrect filesize. Should be %d bytes", xboxkrnl::XBOX_KEY_LENGTH * 2);
EmuLog(LOG_LEVEL::WARNING, "Keys.bin has an incorrect filesize. Should be %d bytes", xbox::XBOX_KEY_LENGTH * 2);
}
fclose(fp);
@ -1226,7 +1231,7 @@ __declspec(noreturn) void CxbxKrnlInit
// But with this, we can replace some busy loops with sleeps.
timeBeginPeriod(1);
xboxkrnl::InitializeFscCacheEvent();
xbox::InitializeFscCacheEvent();
// update caches
CxbxKrnl_TLS = pTLS;
@ -1381,15 +1386,15 @@ __declspec(noreturn) void CxbxKrnlInit
if (fileName.rfind('\\') != std::string::npos)
fileName = fileName.substr(fileName.rfind('\\') + 1);
if (xboxkrnl::XeImageFileName.Buffer != NULL)
free(xboxkrnl::XeImageFileName.Buffer);
if (xbox::XeImageFileName.Buffer != NULL)
free(xbox::XeImageFileName.Buffer);
// Assign the running Xbe path, so it can be accessed via the kernel thunk 'XeImageFileName' :
xboxkrnl::XeImageFileName.MaximumLength = MAX_PATH;
xboxkrnl::XeImageFileName.Buffer = (PCHAR)g_VMManager.Allocate(MAX_PATH);
sprintf(xboxkrnl::XeImageFileName.Buffer, "%c:\\%s", CxbxDefaultXbeDriveLetter, fileName.c_str());
xboxkrnl::XeImageFileName.Length = (USHORT)strlen(xboxkrnl::XeImageFileName.Buffer);
EmuLogInit(LOG_LEVEL::INFO, "XeImageFileName = %s", xboxkrnl::XeImageFileName.Buffer);
xbox::XeImageFileName.MaximumLength = MAX_PATH;
xbox::XeImageFileName.Buffer = (PCHAR)g_VMManager.Allocate(MAX_PATH);
sprintf(xbox::XeImageFileName.Buffer, "%c:\\%s", CxbxDefaultXbeDriveLetter, fileName.c_str());
xbox::XeImageFileName.Length = (USHORT)strlen(xbox::XeImageFileName.Buffer);
EmuLogInit(LOG_LEVEL::INFO, "XeImageFileName = %s", xbox::XeImageFileName.Buffer);
}
// Dump Xbe information
@ -1470,7 +1475,7 @@ __declspec(noreturn) void CxbxKrnlInit
InitXboxHardware(HardwareModel::Revision1_5); // TODO : Make configurable
// Read Xbox video mode from the SMC, store it in HalBootSMCVideoMode
xboxkrnl::HalReadSMBusValue(SMBUS_ADDRESS_SYSTEM_MICRO_CONTROLLER, SMC_COMMAND_AV_PACK, FALSE, &xboxkrnl::HalBootSMCVideoMode);
xbox::HalReadSMBusValue(SMBUS_ADDRESS_SYSTEM_MICRO_CONTROLLER, SMC_COMMAND_AV_PACK, FALSE, &xbox::HalBootSMCVideoMode);
g_InputDeviceManager.Initialize(false);
@ -1510,8 +1515,8 @@ __declspec(noreturn) void CxbxKrnlInit
EmuInitFS();
InitXboxThread(g_CPUXbox);
xboxkrnl::ObInitSystem();
xboxkrnl::KiInitSystem();
xbox::ObInitSystem();
xbox::KiInitSystem();
EmuX86_Init();
// Create the interrupt processing thread
@ -1609,7 +1614,7 @@ void CxbxUnlockFilePath()
}
// REMARK: the following is useless, but PatrickvL has asked to keep it for documentation purposes
/*xboxkrnl::LAUNCH_DATA_PAGE DefaultLaunchDataPage =
/*xbox::LAUNCH_DATA_PAGE DefaultLaunchDataPage =
{
{ // header
2, // 2: dashboard, 0: title
@ -1775,14 +1780,14 @@ void CxbxKrnlShutDown()
void CxbxKrnlPrintUEM(ULONG ErrorCode)
{
ULONG Type;
xboxkrnl::XBOX_EEPROM Eeprom;
xbox::XBOX_EEPROM Eeprom;
ULONG ResultSize;
xboxkrnl::NTSTATUS status = xboxkrnl::ExQueryNonVolatileSetting(xboxkrnl::XC_MAX_ALL, &Type, &Eeprom, sizeof(Eeprom), &ResultSize);
xbox::NTSTATUS status = xbox::ExQueryNonVolatileSetting(xbox::XC_MAX_ALL, &Type, &Eeprom, sizeof(Eeprom), &ResultSize);
if (status == STATUS_SUCCESS)
{
xboxkrnl::XBOX_UEM_INFO* UEMInfo = (xboxkrnl::XBOX_UEM_INFO*)&(Eeprom.UEMInfo[0]);
xbox::XBOX_UEM_INFO* UEMInfo = (xbox::XBOX_UEM_INFO*)&(Eeprom.UEMInfo[0]);
if (UEMInfo->ErrorCode == FATAL_ERROR_NONE)
{
@ -1796,7 +1801,7 @@ void CxbxKrnlPrintUEM(ULONG ErrorCode)
else {
UEMInfo->ErrorCode = FATAL_ERROR_NONE;
}
xboxkrnl::ExSaveNonVolatileSetting(xboxkrnl::XC_MAX_ALL, Type, &Eeprom, sizeof(Eeprom));
xbox::ExSaveNonVolatileSetting(xbox::XC_MAX_ALL, Type, &Eeprom, sizeof(Eeprom));
}
else {
CxbxKrnlCleanup("Could not display the fatal error screen");

View File

@ -38,7 +38,7 @@
// https://docs.microsoft.com/en-us/windows-hardware/drivers/kernel/singly-and-doubly-linked-lists
#define LIST_ENTRY_INITIALIZE(ListEntry) ((ListEntry)->Flink = (ListEntry)->Blink = nullptr)
inline FreeBlock* ListEntryToFreeBlock(xboxkrnl::PLIST_ENTRY pListEntry)
inline FreeBlock* ListEntryToFreeBlock(xbox::PLIST_ENTRY pListEntry)
{
return CONTAINING_RECORD(pListEntry, FreeBlock, ListEntry);
}
@ -165,7 +165,7 @@ void PhysicalMemory::WritePte(PMMPTE pPteStart, PMMPTE pPteEnd, MMPTE Pte, PFN p
bool PhysicalMemory::RemoveFree(PFN_COUNT NumberOfPages, PFN* result, PFN_COUNT PfnAlignment, PFN start, PFN end)
{
xboxkrnl::PLIST_ENTRY ListEntry;
xbox::PLIST_ENTRY ListEntry;
PFN PfnStart;
PFN PfnEnd;
PFN IntersectionStart;
@ -309,7 +309,7 @@ bool PhysicalMemory::RemoveFree(PFN_COUNT NumberOfPages, PFN* result, PFN_COUNT
void PhysicalMemory::InsertFree(PFN start, PFN end)
{
xboxkrnl::PLIST_ENTRY ListEntry;
xbox::PLIST_ENTRY ListEntry;
PFN_COUNT size = end - start + 1;
ListEntry = FreeList.Blink; // search from the top
@ -342,7 +342,7 @@ void PhysicalMemory::InsertFree(PFN start, PFN end)
start + size == ListEntryToFreeBlock(ListEntry->Flink)->start)
{
// Merge forward
xboxkrnl::PLIST_ENTRY temp = ListEntry->Flink;
xbox::PLIST_ENTRY temp = ListEntry->Flink;
ListEntryToFreeBlock(ListEntry)->size +=
ListEntryToFreeBlock(temp)->size;
RemoveEntryList(temp);

View File

@ -49,7 +49,7 @@ typedef struct _FreeBlock
{
PFN start; // starting page of the block
PFN_COUNT size; // number of pages in the block
xboxkrnl::LIST_ENTRY ListEntry;
xbox::LIST_ENTRY ListEntry;
}FreeBlock, *PFreeBlock;
@ -197,7 +197,7 @@ class PhysicalMemory
{
protected:
// doubly linked list tracking the free physical pages
xboxkrnl::LIST_ENTRY FreeList = { &FreeList , &FreeList };
xbox::LIST_ENTRY FreeList = { &FreeList , &FreeList };
// highest pfn available for contiguous allocations
PAddr m_MaxContiguousPfn = XBOX_CONTIGUOUS_MEMORY_LIMIT;
// amount of free physical pages available for non-debugger usage

View File

@ -81,7 +81,7 @@ VAddr PoolManager::AllocatePool(size_t Size, uint32_t Tag)
ULONG Index;
ULONG ListNumber;
ULONG NeededSize;
xboxkrnl::PLIST_ENTRY ListHead;
xbox::PLIST_ENTRY ListHead;
ULONG NumberOfPages;
assert(Size);
@ -122,7 +122,7 @@ VAddr PoolManager::AllocatePool(size_t Size, uint32_t Tag)
LookasideList = &m_ExpSmallNPagedPoolLookasideLists[NeededSize - 1];
LookasideList->TotalAllocates += 1;
Entry = reinterpret_cast<PPOOL_HEADER>(xboxkrnl::KRNL(InterlockedPopEntrySList(&LookasideList->ListHead)));
Entry = reinterpret_cast<PPOOL_HEADER>(xbox::KRNL(InterlockedPopEntrySList(&LookasideList->ListHead)));
if (Entry != nullptr) {
Entry -= 1;
@ -181,7 +181,7 @@ VAddr PoolManager::AllocatePool(size_t Size, uint32_t Tag)
SplitEntry->PoolType = 0;
Index = SplitEntry->BlockSize;
InsertTailList(&PoolDesc->ListHeads[Index - 1], (reinterpret_cast<xboxkrnl::PLIST_ENTRY>((reinterpret_cast<PCHAR>(SplitEntry)
InsertTailList(&PoolDesc->ListHeads[Index - 1], (reinterpret_cast<xbox::PLIST_ENTRY>((reinterpret_cast<PCHAR>(SplitEntry)
+ POOL_OVERHEAD))));
}
@ -223,7 +223,7 @@ VAddr PoolManager::AllocatePool(size_t Size, uint32_t Tag)
Entry->PreviousSize = 0;
ListHead = &PoolDesc->ListHeads[POOL_LIST_HEADS - 1];
InsertHeadList(ListHead, (reinterpret_cast<xboxkrnl::PLIST_ENTRY>((reinterpret_cast<PCHAR>(Entry) + POOL_OVERHEAD))));
InsertHeadList(ListHead, (reinterpret_cast<xbox::PLIST_ENTRY>((reinterpret_cast<PCHAR>(Entry) + POOL_OVERHEAD))));
} while (true);
}
@ -273,7 +273,7 @@ void PoolManager::DeallocatePool(VAddr addr)
if (QUERY_DEPTH_SLIST(&LookasideList->ListHead) < LookasideList->Depth) {
Entry += 1;
xboxkrnl::KRNL(InterlockedPushEntrySList)(&LookasideList->ListHead, reinterpret_cast<xboxkrnl::PSINGLE_LIST_ENTRY>(Entry));
xbox::KRNL(InterlockedPushEntrySList)(&LookasideList->ListHead, reinterpret_cast<xbox::PSINGLE_LIST_ENTRY>(Entry));
return;
}
@ -288,7 +288,7 @@ void PoolManager::DeallocatePool(VAddr addr)
if (PAGE_END(NextEntry) == false) {
if (NextEntry->PoolType == 0) {
Combined = true;
RemoveEntryList((reinterpret_cast<xboxkrnl::PLIST_ENTRY>(reinterpret_cast<PCHAR>(NextEntry) + POOL_OVERHEAD)));
RemoveEntryList((reinterpret_cast<xbox::PLIST_ENTRY>(reinterpret_cast<PCHAR>(NextEntry) + POOL_OVERHEAD)));
Entry->BlockSize += NextEntry->BlockSize;
}
}
@ -297,7 +297,7 @@ void PoolManager::DeallocatePool(VAddr addr)
NextEntry = reinterpret_cast<PPOOL_HEADER>(reinterpret_cast<PPOOL_BLOCK>(Entry) - Entry->PreviousSize);
if (NextEntry->PoolType == 0) {
Combined = true;
RemoveEntryList((reinterpret_cast<xboxkrnl::PLIST_ENTRY>(reinterpret_cast<PCHAR>(NextEntry) + POOL_OVERHEAD)));
RemoveEntryList((reinterpret_cast<xbox::PLIST_ENTRY>(reinterpret_cast<PCHAR>(NextEntry) + POOL_OVERHEAD)));
NextEntry->BlockSize += Entry->BlockSize;
Entry = NextEntry;
}
@ -319,11 +319,11 @@ void PoolManager::DeallocatePool(VAddr addr)
if (PAGE_END(NextEntry) == false) {
NextEntry->PreviousSize = Entry->BlockSize;
}
InsertTailList(&PoolDesc->ListHeads[Index - 1], (reinterpret_cast<xboxkrnl::PLIST_ENTRY>(
InsertTailList(&PoolDesc->ListHeads[Index - 1], (reinterpret_cast<xbox::PLIST_ENTRY>(
reinterpret_cast<PCHAR>(Entry) + POOL_OVERHEAD)));
}
else {
InsertHeadList(&PoolDesc->ListHeads[Index - 1], (reinterpret_cast<xboxkrnl::PLIST_ENTRY>(
InsertHeadList(&PoolDesc->ListHeads[Index - 1], (reinterpret_cast<xbox::PLIST_ENTRY>(
reinterpret_cast<PCHAR>(Entry) + POOL_OVERHEAD)));
}
}

View File

@ -42,12 +42,12 @@ typedef struct _POOL_DESCRIPTOR {
ULONG RunningDeAllocs;
ULONG TotalPages;
ULONG TotalBigPages;
xboxkrnl::LIST_ENTRY ListHeads[POOL_LIST_HEADS];
xbox::LIST_ENTRY ListHeads[POOL_LIST_HEADS];
} POOL_DESCRIPTOR, *PPOOL_DESCRIPTOR;
typedef struct _POOL_LOOKASIDE_LIST {
xboxkrnl::SLIST_HEADER ListHead;
xbox::SLIST_HEADER ListHead;
USHORT Depth;
USHORT Padding;
ULONG TotalAllocates;

View File

@ -149,7 +149,7 @@ void VMManager::Initialize(unsigned int SystemType, int BootFlags, blocks_reserv
}
// Insert all the pages available on the system in the free list
xboxkrnl::PLIST_ENTRY ListEntry = FreeList.Blink;
xbox::PLIST_ENTRY ListEntry = FreeList.Blink;
PFreeBlock block = new FreeBlock;
block->start = 0;
block->size = m_HighestPage + 1;
@ -319,12 +319,12 @@ void VMManager::RestorePersistentMemory()
}
if (persisted_mem->LaunchFrameAddresses[0] != 0 && IS_PHYSICAL_ADDRESS(persisted_mem->LaunchFrameAddresses[0])) {
xboxkrnl::LaunchDataPage = (xboxkrnl::PLAUNCH_DATA_PAGE)persisted_mem->LaunchFrameAddresses[0];
xbox::LaunchDataPage = (xbox::PLAUNCH_DATA_PAGE)persisted_mem->LaunchFrameAddresses[0];
EmuLog(LOG_LEVEL::INFO, "Restored LaunchDataPage\n");
}
if (persisted_mem->LaunchFrameAddresses[1] != 0 && IS_PHYSICAL_ADDRESS(persisted_mem->LaunchFrameAddresses[1])) {
xboxkrnl::AvSavedDataAddress = (xboxkrnl::PVOID)persisted_mem->LaunchFrameAddresses[1];
xbox::AvSavedDataAddress = (xbox::PVOID)persisted_mem->LaunchFrameAddresses[1];
EmuLog(LOG_LEVEL::INFO, "Restored Framebuffer\n");
}
@ -457,13 +457,13 @@ void VMManager::SavePersistentMemory()
persisted_mem = (PersistedMemory*)addr;
persisted_mem->NumOfPtes = num_persisted_ptes;
if (xboxkrnl::LaunchDataPage != xbnullptr) {
persisted_mem->LaunchFrameAddresses[0] = (VAddr)xboxkrnl::LaunchDataPage;
if (xbox::LaunchDataPage != xbox::zeroptr) {
persisted_mem->LaunchFrameAddresses[0] = (VAddr)xbox::LaunchDataPage;
EmuLog(LOG_LEVEL::INFO, "Persisted LaunchDataPage\n");
}
if (xboxkrnl::AvSavedDataAddress != xbnullptr) {
persisted_mem->LaunchFrameAddresses[1] = (VAddr)xboxkrnl::AvSavedDataAddress;
if (xbox::AvSavedDataAddress != xbox::zeroptr) {
persisted_mem->LaunchFrameAddresses[1] = (VAddr)xbox::AvSavedDataAddress;
EmuLog(LOG_LEVEL::INFO, "Persisted Framebuffer\n");
}
@ -531,7 +531,7 @@ PFN_COUNT VMManager::QueryNumberOfFreeDebuggerPages()
return m_DebuggerPagesAvailable;
}
void VMManager::MemoryStatistics(xboxkrnl::PMM_STATISTICS memory_statistics)
void VMManager::MemoryStatistics(xbox::PMM_STATISTICS memory_statistics)
{
Lock();
@ -716,7 +716,7 @@ VAddr VMManager::AllocateZeroed(size_t Size)
LOG_FORWARD("g_VMManager.Allocate");
VAddr addr = Allocate(Size);
if (addr) { xboxkrnl::RtlFillMemoryUlong((void*)addr, ROUND_UP_4K(Size), 0); }
if (addr) { xbox::RtlFillMemoryUlong((void*)addr, ROUND_UP_4K(Size), 0); }
RETURN(addr);
}
@ -1372,7 +1372,7 @@ void VMManager::LockBufferOrSinglePage(PAddr paddr, VAddr addr, size_t Size, boo
Unlock();
}
xboxkrnl::NTSTATUS VMManager::XbAllocateVirtualMemory(VAddr* addr, ULONG ZeroBits, size_t* Size, DWORD AllocationType, DWORD Protect)
xbox::NTSTATUS VMManager::XbAllocateVirtualMemory(VAddr* addr, ULONG ZeroBits, size_t* Size, DWORD AllocationType, DWORD Protect)
{
LOG_FUNC_BEGIN
LOG_FUNC_ARG(*addr)
@ -1389,7 +1389,7 @@ xboxkrnl::NTSTATUS VMManager::XbAllocateVirtualMemory(VAddr* addr, ULONG ZeroBit
PFN_COUNT PteNumber = 0;
PFN TempPfn;
PageType BusyType;
xboxkrnl::NTSTATUS status;
xbox::NTSTATUS status;
VAddr CapturedBase = *addr;
size_t CapturedSize = *Size;
VAddr MaxAllowedAddress;
@ -1631,7 +1631,7 @@ xboxkrnl::NTSTATUS VMManager::XbAllocateVirtualMemory(VAddr* addr, ULONG ZeroBit
RETURN(status);
}
xboxkrnl::NTSTATUS VMManager::XbFreeVirtualMemory(VAddr* addr, size_t* Size, DWORD FreeType)
xbox::NTSTATUS VMManager::XbFreeVirtualMemory(VAddr* addr, size_t* Size, DWORD FreeType)
{
LOG_FUNC_BEGIN
LOG_FUNC_ARG(*addr)
@ -1643,7 +1643,7 @@ xboxkrnl::NTSTATUS VMManager::XbFreeVirtualMemory(VAddr* addr, size_t* Size, DWO
size_t CapturedSize = *Size;
VAddr AlignedCapturedBase;
size_t AlignedCapturedSize;
xboxkrnl::NTSTATUS status;
xbox::NTSTATUS status;
PMMPTE PointerPte;
PMMPTE EndingPte;
PMMPTE StartingPte;
@ -1789,7 +1789,7 @@ xboxkrnl::NTSTATUS VMManager::XbFreeVirtualMemory(VAddr* addr, size_t* Size, DWO
RETURN(status);
}
xboxkrnl::NTSTATUS VMManager::XbVirtualProtect(VAddr* addr, size_t* Size, DWORD* Protect)
xbox::NTSTATUS VMManager::XbVirtualProtect(VAddr* addr, size_t* Size, DWORD* Protect)
{
LOG_FUNC_BEGIN
LOG_FUNC_ARG(*addr)
@ -1802,7 +1802,7 @@ xboxkrnl::NTSTATUS VMManager::XbVirtualProtect(VAddr* addr, size_t* Size, DWORD*
size_t CapturedSize = *Size;
VAddr AlignedCapturedBase;
size_t AlignedCapturedSize;
xboxkrnl::NTSTATUS status;
xbox::NTSTATUS status;
PMMPTE PointerPte;
PMMPTE EndingPte;
PMMPTE StartingPte;
@ -1907,7 +1907,7 @@ xboxkrnl::NTSTATUS VMManager::XbVirtualProtect(VAddr* addr, size_t* Size, DWORD*
RETURN(status);
}
xboxkrnl::NTSTATUS VMManager::XbVirtualMemoryStatistics(VAddr addr, xboxkrnl::PMEMORY_BASIC_INFORMATION memory_statistics)
xbox::NTSTATUS VMManager::XbVirtualMemoryStatistics(VAddr addr, xbox::PMEMORY_BASIC_INFORMATION memory_statistics)
{
VMAIter it;
PMMPTE PointerPte;

View File

@ -101,7 +101,7 @@ class VMManager : public PhysicalMemory
// initializes the memory manager to the default configuration
void Initialize(unsigned int SystemType, int BootFlags, blocks_reserved_t blocks_reserved);
// retrieves memory statistics
void MemoryStatistics(xboxkrnl::PMM_STATISTICS memory_statistics);
void MemoryStatistics(xbox::PMM_STATISTICS memory_statistics);
// allocates memory in the user region
VAddr Allocate(size_t Size);
// allocates memory in the user region and zeros it
@ -141,13 +141,13 @@ class VMManager : public PhysicalMemory
// retrieves the number of free debugger pages
PFN_COUNT QueryNumberOfFreeDebuggerPages();
// xbox implementation of NtAllocateVirtualMemory
xboxkrnl::NTSTATUS XbAllocateVirtualMemory(VAddr* addr, ULONG ZeroBits, size_t* Size, DWORD AllocationType, DWORD Protect);
xbox::NTSTATUS XbAllocateVirtualMemory(VAddr* addr, ULONG ZeroBits, size_t* Size, DWORD AllocationType, DWORD Protect);
// xbox implementation of NtFreeVirtualMemory
xboxkrnl::NTSTATUS XbFreeVirtualMemory(VAddr* addr, size_t* Size, DWORD FreeType);
xbox::NTSTATUS XbFreeVirtualMemory(VAddr* addr, size_t* Size, DWORD FreeType);
// xbox implementation of NtProtectVirtualMemory
xboxkrnl::NTSTATUS XbVirtualProtect(VAddr* addr, size_t* Size, DWORD* Protect);
xbox::NTSTATUS XbVirtualProtect(VAddr* addr, size_t* Size, DWORD* Protect);
// xbox implementation of NtQueryVirtualMemory
xboxkrnl::NTSTATUS XbVirtualMemoryStatistics(VAddr addr, xboxkrnl::PMEMORY_BASIC_INFORMATION memory_statistics);
xbox::NTSTATUS XbVirtualMemoryStatistics(VAddr addr, xbox::PMEMORY_BASIC_INFORMATION memory_statistics);
// get persistent memory from previous process until RestorePersistentMemory is called
void GetPersistentMemory();
// saves all persisted memory just before a quick reboot

View File

@ -88,7 +88,7 @@ std::string FormatTitleId(uint32_t title_id)
return ss.str();
}
std::string EIPToString(xbaddr EIP)
std::string EIPToString(xbox::addr EIP)
{
char buffer[256];
@ -207,7 +207,7 @@ void EmuExceptionNonBreakpointUnhandledShow(LPEXCEPTION_POINTERS e)
}
// Returns weither the given address is part of an Xbox managed memory region
bool IsXboxCodeAddress(xbaddr addr)
bool IsXboxCodeAddress(xbox::addr addr)
{
// TODO : Replace the following with a (fast) check weither
// the given address lies in xbox allocated virtual memory,
@ -241,7 +241,7 @@ void genericException(EXCEPTION_POINTERS *e) {
}
}
bool IsRdtscInstruction(xbaddr addr); // Implemented in CxbxKrnl.cpp
bool IsRdtscInstruction(xbox::addr addr); // Implemented in CxbxKrnl.cpp
void EmuX86_Opcode_RDTSC(EXCEPTION_POINTERS *e); // Implemented in EmuX86.cpp
bool lleTryHandleException(EXCEPTION_POINTERS *e)
{
@ -323,7 +323,7 @@ bool EmuTryHandleException(EXCEPTION_POINTERS *e)
switch (e->ContextRecord->Eax) {
case 1: // DEBUG_PRINT
// In this case, ECX should point to an ANSI String
printf("DEBUG_PRINT: %s\n", ((xboxkrnl::PANSI_STRING)e->ContextRecord->Ecx)->Buffer);
printf("DEBUG_PRINT: %s\n", ((xbox::PANSI_STRING)e->ContextRecord->Ecx)->Buffer);
break;
default:
printf("Unhandled Debug Command: int 2Dh, EAX = %d", e->ContextRecord->Eip);
@ -497,7 +497,7 @@ void EmuPrintStackTrace(PCONTEXT ContextRecord)
// Try getting a symbol name from the HLE cache :
int symbolOffset = 0;
symbolName = GetDetectedSymbolName((xbaddr)frame.AddrPC.Offset, &symbolOffset);
symbolName = GetDetectedSymbolName((xbox::addr)frame.AddrPC.Offset, &symbolOffset);
if (symbolOffset < 1000)
dwDisplacement = (DWORD64)symbolOffset;
else

View File

@ -115,7 +115,7 @@ NT_TIB *GetNtTib()
}
xboxkrnl::KPCR* WINAPI KeGetPcr();
xbox::KPCR* WINAPI KeGetPcr();
uint32_t fs_lock = 0;
@ -156,7 +156,7 @@ __declspec(naked) void UnlockFS()
}
}
void EmuKeSetPcr(xboxkrnl::KPCR *Pcr)
void EmuKeSetPcr(xbox::KPCR *Pcr)
{
// Store the Xbox KPCR pointer in FS (See KeGetPcr())
//
@ -476,9 +476,9 @@ void EmuInitFS()
}
EmuLogEx(CXBXR_MODULE::INIT, LOG_LEVEL::DEBUG, "Searching for FS Instruction in section %s\n", CxbxKrnl_Xbe->m_szSectionName[sectionIndex]);
xbaddr startAddr = CxbxKrnl_Xbe->m_SectionHeader[sectionIndex].dwVirtualAddr;
xbaddr endAddr = startAddr + CxbxKrnl_Xbe->m_SectionHeader[sectionIndex].dwSizeofRaw;
for (xbaddr addr = startAddr; addr < endAddr; addr++)
xbox::addr startAddr = CxbxKrnl_Xbe->m_SectionHeader[sectionIndex].dwVirtualAddr;
xbox::addr endAddr = startAddr + CxbxKrnl_Xbe->m_SectionHeader[sectionIndex].dwSizeofRaw;
for (xbox::addr addr = startAddr; addr < endAddr; addr++)
{
for (int i = 0; i < numberOfInstructions; i++)
{
@ -554,7 +554,7 @@ void EmuGenerateFS(Xbe::TLS *pTLS, void *pTLSData)
uint8_t *bByte = (uint8_t*)pNewTLS + v;
if (v % 0x10 == 0) {
EmuLog(LOG_LEVEL::DEBUG, "0x%.8X:", (xbaddr)bByte);
EmuLog(LOG_LEVEL::DEBUG, "0x%.8X:", (xbox::addr)bByte);
}
// Note : Use printf instead of EmuLog here, which prefixes with GetCurrentThreadId() :
@ -570,7 +570,7 @@ void EmuGenerateFS(Xbe::TLS *pTLS, void *pTLSData)
// prepare TLS
{
if (pTLS->dwTLSIndexAddr != 0) {
*(xbaddr*)pTLS->dwTLSIndexAddr = xbnull;
*(xbox::addr*)pTLS->dwTLSIndexAddr = xbox::zero;
}
// dword @ pTLSData := pTLSData
@ -580,9 +580,9 @@ void EmuGenerateFS(Xbe::TLS *pTLS, void *pTLSData)
}
// Allocate the xbox KPCR structure
xboxkrnl::KPCR *NewPcr = (xboxkrnl::KPCR*)g_VMManager.AllocateZeroed(sizeof(xboxkrnl::KPCR));
xboxkrnl::NT_TIB *XbTib = &(NewPcr->NtTib);
xboxkrnl::PKPRCB Prcb = &(NewPcr->PrcbData);
xbox::KPCR *NewPcr = (xbox::KPCR*)g_VMManager.AllocateZeroed(sizeof(xbox::KPCR));
xbox::NT_TIB *XbTib = &(NewPcr->NtTib);
xbox::PKPRCB Prcb = &(NewPcr->PrcbData);
// Note : As explained above (at EmuKeSetPcr), Cxbx cannot allocate one NT_TIB and KPRCB
// structure per thread, since Cxbx currently doesn't do thread-switching.
// Thus, the only way to give each thread it's own PrcbData.CurrentThread, is to put the
@ -626,22 +626,22 @@ void EmuGenerateFS(Xbe::TLS *pTLS, void *pTLSData)
// Initialize a fake PrcbData.CurrentThread
{
xboxkrnl::ETHREAD *EThread = (xboxkrnl::ETHREAD*)g_VMManager.AllocateZeroed(sizeof(xboxkrnl::ETHREAD)); // Clear, to prevent side-effects on random contents
xbox::ETHREAD *EThread = (xbox::ETHREAD*)g_VMManager.AllocateZeroed(sizeof(xbox::ETHREAD)); // Clear, to prevent side-effects on random contents
EThread->Tcb.TlsData = pNewTLS;
EThread->UniqueThread = GetCurrentThreadId();
// Set PrcbData.CurrentThread
Prcb->CurrentThread = (xboxkrnl::KTHREAD*)EThread;
Prcb->CurrentThread = (xbox::KTHREAD*)EThread;
// Initialize the thread header and its wait list
Prcb->CurrentThread->Header.Type = xboxkrnl::ThreadObject;
Prcb->CurrentThread->Header.Size = sizeof(xboxkrnl::KTHREAD) / sizeof(xboxkrnl::LONG);
Prcb->CurrentThread->Header.Type = xbox::ThreadObject;
Prcb->CurrentThread->Header.Size = sizeof(xbox::KTHREAD) / sizeof(xbox::LONG);
InitializeListHead(&Prcb->CurrentThread->Header.WaitListHead);
// Also initialize the timer associated with the thread
xboxkrnl::KeInitializeTimer(&Prcb->CurrentThread->Timer);
xboxkrnl::PKWAIT_BLOCK WaitBlock = &Prcb->CurrentThread->TimerWaitBlock;
xbox::KeInitializeTimer(&Prcb->CurrentThread->Timer);
xbox::PKWAIT_BLOCK WaitBlock = &Prcb->CurrentThread->TimerWaitBlock;
WaitBlock->Object = &Prcb->CurrentThread->Timer;
WaitBlock->WaitKey = (xboxkrnl::CSHORT)STATUS_TIMEOUT;
WaitBlock->WaitType = xboxkrnl::WaitAny;
WaitBlock->WaitKey = (xbox::CSHORT)STATUS_TIMEOUT;
WaitBlock->WaitType = xbox::WaitAny;
WaitBlock->Thread = Prcb->CurrentThread;
WaitBlock->WaitListEntry.Flink = &Prcb->CurrentThread->Timer.Header.WaitListHead;
WaitBlock->WaitListEntry.Blink = &Prcb->CurrentThread->Timer.Header.WaitListHead;

View File

@ -312,12 +312,12 @@ std::wstring PUNICODE_STRING_to_wstring(NtDll::PUNICODE_STRING const & src)
return std::wstring(src->Buffer, src->Length / sizeof(NtDll::WCHAR));
}
std::string PSTRING_to_string(xboxkrnl::PSTRING const & src)
std::string PSTRING_to_string(xbox::PSTRING const & src)
{
return std::string(src->Buffer, src->Length);
}
void copy_string_to_PSTRING_to(std::string const & src, const xboxkrnl::PSTRING & dest)
void copy_string_to_PSTRING_to(std::string const & src, const xbox::PSTRING & dest)
{
dest->Length = (USHORT)src.size();
memcpy(dest->Buffer, src.c_str(), src.size());
@ -481,7 +481,7 @@ NTSTATUS CxbxConvertFilePath(
}
NTSTATUS CxbxObjectAttributesToNT(
xboxkrnl::POBJECT_ATTRIBUTES ObjectAttributes,
xbox::POBJECT_ATTRIBUTES ObjectAttributes,
OUT NativeObjectAttributes& nativeObjectAttributes,
const std::string aFileAPIName,
bool partitionHeader)
@ -751,7 +751,7 @@ void _CxbxPVOIDDeleter(PVOID *ptr)
// Xbox to NT converters
// ----------------------------------------------------------------------------
NtDll::FILE_LINK_INFORMATION * _XboxToNTLinkInfo(xboxkrnl::FILE_LINK_INFORMATION *xboxLinkInfo, ULONG *Length)
NtDll::FILE_LINK_INFORMATION * _XboxToNTLinkInfo(xbox::FILE_LINK_INFORMATION *xboxLinkInfo, ULONG *Length)
{
// Convert the path from Xbox to native
std::string originalFileName(xboxLinkInfo->FileName, xboxLinkInfo->FileNameLength);
@ -771,7 +771,7 @@ NtDll::FILE_LINK_INFORMATION * _XboxToNTLinkInfo(xboxkrnl::FILE_LINK_INFORMATION
return ntLinkInfo;
}
NtDll::FILE_RENAME_INFORMATION * _XboxToNTRenameInfo(xboxkrnl::FILE_RENAME_INFORMATION *xboxRenameInfo, ULONG *Length)
NtDll::FILE_RENAME_INFORMATION * _XboxToNTRenameInfo(xbox::FILE_RENAME_INFORMATION *xboxRenameInfo, ULONG *Length)
{
// Convert the path from Xbox to native
std::string originalFileName(xboxRenameInfo->FileName.Buffer, xboxRenameInfo->FileName.Length);
@ -795,19 +795,19 @@ NtDll::FILE_RENAME_INFORMATION * _XboxToNTRenameInfo(xboxkrnl::FILE_RENAME_INFOR
// NT to Xbox converters - common functions
// ----------------------------------------------------------------------------
void _ConvertXboxBasicInfo(xboxkrnl::FILE_BASIC_INFORMATION *xboxBasicInfo)
void _ConvertXboxBasicInfo(xbox::FILE_BASIC_INFORMATION *xboxBasicInfo)
{
// Fix up attributes
xboxBasicInfo->FileAttributes &= FILE_ATTRIBUTE_VALID_FLAGS;
}
NTSTATUS _ConvertXboxNameInfo(NtDll::FILE_NAME_INFORMATION *ntNameInfo, xboxkrnl::FILE_NAME_INFORMATION *xboxNameInfo, int convertedFileNameLength, ULONG Length)
NTSTATUS _ConvertXboxNameInfo(NtDll::FILE_NAME_INFORMATION *ntNameInfo, xbox::FILE_NAME_INFORMATION *xboxNameInfo, int convertedFileNameLength, ULONG Length)
{
// Convert the file name to ANSI in-place
xboxNameInfo->FileNameLength = convertedFileNameLength;
// Check if the new file name fits within the given struct size and copy as many chars as possible if not
int maxFileNameLength = Length - sizeof(xboxkrnl::FILE_NAME_INFORMATION);
int maxFileNameLength = Length - sizeof(xbox::FILE_NAME_INFORMATION);
size_t convertedChars;
wcstombs_s(&convertedChars, xboxNameInfo->FileName, maxFileNameLength, ntNameInfo->FileName, ntNameInfo->FileNameLength);
@ -821,7 +821,7 @@ NTSTATUS _ConvertXboxNameInfo(NtDll::FILE_NAME_INFORMATION *ntNameInfo, xboxkrnl
// NT to Xbox converters
// ----------------------------------------------------------------------------
NTSTATUS _NTToXboxNetOpenInfo(NtDll::FILE_NETWORK_OPEN_INFORMATION *ntNetOpenInfo, xboxkrnl::FILE_NETWORK_OPEN_INFORMATION *xboxNetOpenInfo, ULONG Length)
NTSTATUS _NTToXboxNetOpenInfo(NtDll::FILE_NETWORK_OPEN_INFORMATION *ntNetOpenInfo, xbox::FILE_NETWORK_OPEN_INFORMATION *xboxNetOpenInfo, ULONG Length)
{
// Copy everything from the NT struct
memcpy_s(xboxNetOpenInfo, Length, ntNetOpenInfo, sizeof(NtDll::FILE_NETWORK_OPEN_INFORMATION));
@ -832,17 +832,17 @@ NTSTATUS _NTToXboxNetOpenInfo(NtDll::FILE_NETWORK_OPEN_INFORMATION *ntNetOpenInf
return STATUS_SUCCESS;
}
NTSTATUS _NTToXboxBasicInfo(NtDll::FILE_BASIC_INFORMATION *ntBasicInfo, xboxkrnl::FILE_BASIC_INFORMATION *xboxBasicInfo, ULONG Length)
NTSTATUS _NTToXboxBasicInfo(NtDll::FILE_BASIC_INFORMATION *ntBasicInfo, xbox::FILE_BASIC_INFORMATION *xboxBasicInfo, ULONG Length)
{
// Copy everything from the NT struct
memcpy_s(xboxBasicInfo, sizeof(xboxkrnl::FILE_BASIC_INFORMATION), ntBasicInfo, sizeof(NtDll::FILE_BASIC_INFORMATION));
memcpy_s(xboxBasicInfo, sizeof(xbox::FILE_BASIC_INFORMATION), ntBasicInfo, sizeof(NtDll::FILE_BASIC_INFORMATION));
_ConvertXboxBasicInfo(xboxBasicInfo);
return STATUS_SUCCESS;
}
NTSTATUS _NTToXboxNameInfo(NtDll::FILE_NAME_INFORMATION *ntNameInfo, xboxkrnl::FILE_NAME_INFORMATION *xboxNameInfo, ULONG Length)
NTSTATUS _NTToXboxNameInfo(NtDll::FILE_NAME_INFORMATION *ntNameInfo, xbox::FILE_NAME_INFORMATION *xboxNameInfo, ULONG Length)
{
// TODO: the FileName probably needs to be converted back to an Xbox path in some cases
// Determine new file name length
@ -855,7 +855,7 @@ NTSTATUS _NTToXboxNameInfo(NtDll::FILE_NAME_INFORMATION *ntNameInfo, xboxkrnl::F
return _ConvertXboxNameInfo(ntNameInfo, xboxNameInfo, convertedFileNameLength, Length);
}
NTSTATUS _NTToXboxAllInfo(NtDll::FILE_ALL_INFORMATION *ntAllInfo, xboxkrnl::FILE_ALL_INFORMATION *xboxAllInfo, ULONG Length)
NTSTATUS _NTToXboxAllInfo(NtDll::FILE_ALL_INFORMATION *ntAllInfo, xbox::FILE_ALL_INFORMATION *xboxAllInfo, ULONG Length)
{
// TODO: the FileName probably needs to be converted back to an Xbox path in some cases
// Determine new file name length
@ -891,15 +891,15 @@ PVOID _XboxToNTFileInformation
switch (FileInformationClass)
{
case xboxkrnl::FileLinkInformation:
case xbox::FileLinkInformation:
{
xboxkrnl::FILE_LINK_INFORMATION *xboxLinkInfo = reinterpret_cast<xboxkrnl::FILE_LINK_INFORMATION *>(xboxFileInformation);
xbox::FILE_LINK_INFORMATION *xboxLinkInfo = reinterpret_cast<xbox::FILE_LINK_INFORMATION *>(xboxFileInformation);
result = _XboxToNTLinkInfo(xboxLinkInfo, Length);
break;
}
case xboxkrnl::FileRenameInformation:
case xbox::FileRenameInformation:
{
xboxkrnl::FILE_RENAME_INFORMATION *xboxRenameInfo = reinterpret_cast<xboxkrnl::FILE_RENAME_INFORMATION *>(xboxFileInformation);
xbox::FILE_RENAME_INFORMATION *xboxRenameInfo = reinterpret_cast<xbox::FILE_RENAME_INFORMATION *>(xboxFileInformation);
result = _XboxToNTRenameInfo(xboxRenameInfo, Length);
break;
}
@ -938,28 +938,28 @@ NTSTATUS NTToXboxFileInformation
case NtDll::FileAllInformation:
{
NtDll::FILE_ALL_INFORMATION *ntAllInfo = reinterpret_cast<NtDll::FILE_ALL_INFORMATION *>(nativeFileInformation);
xboxkrnl::FILE_ALL_INFORMATION *xboxAllInfo = reinterpret_cast<xboxkrnl::FILE_ALL_INFORMATION *>(xboxFileInformation);
xbox::FILE_ALL_INFORMATION *xboxAllInfo = reinterpret_cast<xbox::FILE_ALL_INFORMATION *>(xboxFileInformation);
result = _NTToXboxAllInfo(ntAllInfo, xboxAllInfo, Length);
break;
}
case NtDll::FileBasicInformation:
{
NtDll::FILE_BASIC_INFORMATION *ntBasicInfo = reinterpret_cast<NtDll::FILE_BASIC_INFORMATION *>(nativeFileInformation);
xboxkrnl::FILE_BASIC_INFORMATION *xboxBasicInfo = reinterpret_cast<xboxkrnl::FILE_BASIC_INFORMATION *>(xboxFileInformation);
xbox::FILE_BASIC_INFORMATION *xboxBasicInfo = reinterpret_cast<xbox::FILE_BASIC_INFORMATION *>(xboxFileInformation);
result = _NTToXboxBasicInfo(ntBasicInfo, xboxBasicInfo, Length);
break;
}
case NtDll::FileNameInformation:
{
NtDll::FILE_NAME_INFORMATION *ntNameInfo = reinterpret_cast<NtDll::FILE_NAME_INFORMATION *>(nativeFileInformation);
xboxkrnl::FILE_NAME_INFORMATION *xboxNameInfo = reinterpret_cast<xboxkrnl::FILE_NAME_INFORMATION *>(xboxFileInformation);
xbox::FILE_NAME_INFORMATION *xboxNameInfo = reinterpret_cast<xbox::FILE_NAME_INFORMATION *>(xboxFileInformation);
result = _NTToXboxNameInfo(ntNameInfo, xboxNameInfo, Length);
break;
}
case NtDll::FileNetworkOpenInformation:
{
NtDll::FILE_NETWORK_OPEN_INFORMATION *ntNetOpenInfo = reinterpret_cast<NtDll::FILE_NETWORK_OPEN_INFORMATION *>(nativeFileInformation);
xboxkrnl::FILE_NETWORK_OPEN_INFORMATION *xboxNetOpenInfo = reinterpret_cast<xboxkrnl::FILE_NETWORK_OPEN_INFORMATION *>(xboxFileInformation);
xbox::FILE_NETWORK_OPEN_INFORMATION *xboxNetOpenInfo = reinterpret_cast<xbox::FILE_NETWORK_OPEN_INFORMATION *>(xboxFileInformation);
result = _NTToXboxNetOpenInfo(ntNetOpenInfo, xboxNetOpenInfo, Length);
break;
}

View File

@ -95,44 +95,44 @@ extern int CxbxDefaultXbeDriveIndex;
extern std::string CxbxBasePath;
extern HANDLE CxbxBasePathHandle;
const size_t XboxFileInfoStructSizes[xboxkrnl::FileMaximumInformation] = {
const size_t XboxFileInfoStructSizes[xbox::FileMaximumInformation] = {
0, // (index 0)
sizeof(xboxkrnl::FILE_DIRECTORY_INFORMATION), // FileDirectoryInformation
sizeof(xboxkrnl::FILE_DIRECTORY_INFORMATION), // FileFullDirectoryInformation
sizeof(xboxkrnl::FILE_DIRECTORY_INFORMATION), // FileBothDirectoryInformation
sizeof(xboxkrnl::FILE_BASIC_INFORMATION), // FileBasicInformation
sizeof(xboxkrnl::FILE_STANDARD_INFORMATION), // FileStandardInformation
sizeof(xboxkrnl::FILE_INTERNAL_INFORMATION), // FileInternalInformation
sizeof(xboxkrnl::FILE_EA_INFORMATION), // FileEaInformation
sizeof(xboxkrnl::FILE_ACCESS_INFORMATION), // FileAccessInformation
sizeof(xboxkrnl::FILE_NAME_INFORMATION), // FileNameInformation
sizeof(xboxkrnl::FILE_RENAME_INFORMATION), // FileRenameInformation
sizeof(xboxkrnl::FILE_LINK_INFORMATION), // FileLinkInformation
sizeof(xboxkrnl::FILE_DIRECTORY_INFORMATION), // FileNamesInformation
sizeof(xboxkrnl::FILE_DISPOSITION_INFORMATION), // FileDispositionInformation
sizeof(xboxkrnl::FILE_POSITION_INFORMATION), // FilePositionInformation
sizeof(xboxkrnl::FILE_FULL_EA_INFORMATION), // FileFullEaInformation
sizeof(xboxkrnl::FILE_MODE_INFORMATION), // FileModeInformation
sizeof(xboxkrnl::FILE_ALIGNMENT_INFORMATION), // FileAlignmentInformation
sizeof(xboxkrnl::FILE_ALL_INFORMATION), // FileAllInformation
sizeof(xboxkrnl::FILE_ALLOCATION_INFORMATION), // FileAllocationInformation
sizeof(xboxkrnl::FILE_END_OF_FILE_INFORMATION), // FileEndOfFileInformation
sizeof(xboxkrnl::FILE_NAME_INFORMATION), // FileAlternateNameInformation
sizeof(xboxkrnl::FILE_STREAM_INFORMATION), // FileStreamInformation
sizeof(xboxkrnl::FILE_PIPE_INFORMATION), // FilePipeInformation
sizeof(xboxkrnl::FILE_PIPE_LOCAL_INFORMATION), // FilePipeLocalInformation
sizeof(xboxkrnl::FILE_PIPE_REMOTE_INFORMATION), // FilePipeRemoteInformation
sizeof(xboxkrnl::FILE_MAILSLOT_QUERY_INFORMATION), // FileMailslotQueryInformation
sizeof(xboxkrnl::FILE_MAILSLOT_SET_INFORMATION), // FileMailslotSetInformation
sizeof(xboxkrnl::FILE_COMPRESSION_INFORMATION), // FileCompressionInformation
sizeof(xbox::FILE_DIRECTORY_INFORMATION), // FileDirectoryInformation
sizeof(xbox::FILE_DIRECTORY_INFORMATION), // FileFullDirectoryInformation
sizeof(xbox::FILE_DIRECTORY_INFORMATION), // FileBothDirectoryInformation
sizeof(xbox::FILE_BASIC_INFORMATION), // FileBasicInformation
sizeof(xbox::FILE_STANDARD_INFORMATION), // FileStandardInformation
sizeof(xbox::FILE_INTERNAL_INFORMATION), // FileInternalInformation
sizeof(xbox::FILE_EA_INFORMATION), // FileEaInformation
sizeof(xbox::FILE_ACCESS_INFORMATION), // FileAccessInformation
sizeof(xbox::FILE_NAME_INFORMATION), // FileNameInformation
sizeof(xbox::FILE_RENAME_INFORMATION), // FileRenameInformation
sizeof(xbox::FILE_LINK_INFORMATION), // FileLinkInformation
sizeof(xbox::FILE_DIRECTORY_INFORMATION), // FileNamesInformation
sizeof(xbox::FILE_DISPOSITION_INFORMATION), // FileDispositionInformation
sizeof(xbox::FILE_POSITION_INFORMATION), // FilePositionInformation
sizeof(xbox::FILE_FULL_EA_INFORMATION), // FileFullEaInformation
sizeof(xbox::FILE_MODE_INFORMATION), // FileModeInformation
sizeof(xbox::FILE_ALIGNMENT_INFORMATION), // FileAlignmentInformation
sizeof(xbox::FILE_ALL_INFORMATION), // FileAllInformation
sizeof(xbox::FILE_ALLOCATION_INFORMATION), // FileAllocationInformation
sizeof(xbox::FILE_END_OF_FILE_INFORMATION), // FileEndOfFileInformation
sizeof(xbox::FILE_NAME_INFORMATION), // FileAlternateNameInformation
sizeof(xbox::FILE_STREAM_INFORMATION), // FileStreamInformation
sizeof(xbox::FILE_PIPE_INFORMATION), // FilePipeInformation
sizeof(xbox::FILE_PIPE_LOCAL_INFORMATION), // FilePipeLocalInformation
sizeof(xbox::FILE_PIPE_REMOTE_INFORMATION), // FilePipeRemoteInformation
sizeof(xbox::FILE_MAILSLOT_QUERY_INFORMATION), // FileMailslotQueryInformation
sizeof(xbox::FILE_MAILSLOT_SET_INFORMATION), // FileMailslotSetInformation
sizeof(xbox::FILE_COMPRESSION_INFORMATION), // FileCompressionInformation
0, // FileCopyOnWriteInformation
sizeof(xboxkrnl::FILE_COMPLETION_INFORMATION), // FileCompletionInformation
sizeof(xboxkrnl::FILE_MOVE_CLUSTER_INFORMATION), // FileMoveClusterInformation
sizeof(xbox::FILE_COMPLETION_INFORMATION), // FileCompletionInformation
sizeof(xbox::FILE_MOVE_CLUSTER_INFORMATION), // FileMoveClusterInformation
0, // FileQuotaInformation
sizeof(xboxkrnl::FILE_REPARSE_POINT_INFORMATION), // FileReparsePointInformation
sizeof(xboxkrnl::FILE_NETWORK_OPEN_INFORMATION), // FileNetworkOpenInformation
sizeof(xboxkrnl::FILE_DIRECTORY_INFORMATION), // FileObjectIdInformation
sizeof(xboxkrnl::FILE_TRACKING_INFORMATION), // FileTrackingInformation
sizeof(xbox::FILE_REPARSE_POINT_INFORMATION), // FileReparsePointInformation
sizeof(xbox::FILE_NETWORK_OPEN_INFORMATION), // FileNetworkOpenInformation
sizeof(xbox::FILE_DIRECTORY_INFORMATION), // FileObjectIdInformation
sizeof(xbox::FILE_TRACKING_INFORMATION), // FileTrackingInformation
0, // FileOleDirectoryInformation
0, // FileContentIndexInformation
0, // FileInheritContentIndexInformation
@ -151,7 +151,7 @@ struct NativeObjectAttributes {
NtDll::POBJECT_ATTRIBUTES NtObjAttrPtr;
};
NTSTATUS CxbxObjectAttributesToNT(xboxkrnl::POBJECT_ATTRIBUTES ObjectAttributes, NativeObjectAttributes& nativeObjectAttributes, std::string aFileAPIName = "", bool partitionHeader = false);
NTSTATUS CxbxObjectAttributesToNT(xbox::POBJECT_ATTRIBUTES ObjectAttributes, NativeObjectAttributes& nativeObjectAttributes, std::string aFileAPIName = "", bool partitionHeader = false);
NTSTATUS CxbxConvertFilePath(std::string RelativeXboxPath, OUT std::wstring &RelativeHostPath, IN OUT NtDll::HANDLE *RootDirectory, std::string aFileAPIName = "", bool partitionHeader = false);
// ******************************************************************
@ -229,8 +229,8 @@ NTSTATUS CxbxCreateSymbolicLink(std::string SymbolicLinkName, std::string FullPa
std::wstring string_to_wstring(std::string const & src);
std::wstring PUNICODE_STRING_to_wstring(NtDll::PUNICODE_STRING const & src);
std::string PSTRING_to_string(xboxkrnl::PSTRING const & src);
void copy_string_to_PSTRING_to(std::string const & src, const xboxkrnl::PSTRING & dest);
std::string PSTRING_to_string(xbox::PSTRING const & src);
void copy_string_to_PSTRING_to(std::string const & src, const xbox::PSTRING & dest);
static int NtFileDirectoryInformationSize = sizeof(NtDll::FILE_DIRECTORY_INFORMATION) - 1;
static int NtPathBufferSize = MAX_PATH * sizeof(wchar_t);

View File

@ -157,7 +157,7 @@ struct RingDesc {
uint16_t flags;
};
char* EmuNVNet_GetRegisterName(xbaddr addr)
char* EmuNVNet_GetRegisterName(xbox::addr addr)
{
switch (addr) {
case NvRegIrqStatus: return "NvRegIrqStatus";
@ -218,7 +218,7 @@ char* EmuNVNet_GetMiiRegisterName(uint8_t reg)
}
}
uint32_t EmuNVNet_GetRegister(xbaddr addr, unsigned int size)
uint32_t EmuNVNet_GetRegister(xbox::addr addr, unsigned int size)
{
switch (size) {
case sizeof(uint32_t) :
@ -232,7 +232,7 @@ uint32_t EmuNVNet_GetRegister(xbaddr addr, unsigned int size)
return 0;
}
void EmuNVNet_SetRegister(xbaddr addr, uint32_t value, unsigned int size)
void EmuNVNet_SetRegister(xbox::addr addr, uint32_t value, unsigned int size)
{
switch (size) {
case sizeof(uint32_t):
@ -299,7 +299,7 @@ int EmuNVNet_MiiReadWrite(uint64_t val)
return retval;
}
uint32_t EmuNVNet_Read(xbaddr addr, int size)
uint32_t EmuNVNet_Read(xbox::addr addr, int size)
{
EmuLog(LOG_LEVEL::DEBUG, "Read%d: %s (0x%.8X)", size * 8, EmuNVNet_GetRegisterName(addr), addr);
@ -326,7 +326,7 @@ void EmuNVNet_DMAPacketFromGuest()
for (int i = 0; i < s->tx_ring_size; i++) {
/* Read ring descriptor */
s->tx_ring_index %= s->tx_ring_size;
xbaddr tx_ring_addr = EmuNVNet_GetRegister(NvRegTxRingPhysAddr, 4);
xbox::addr tx_ring_addr = EmuNVNet_GetRegister(NvRegTxRingPhysAddr, 4);
tx_ring_addr += s->tx_ring_index * sizeof(desc);
memcpy(&desc, (void*)(tx_ring_addr | CONTIGUOUS_MEMORY_BASE), sizeof(desc));
@ -381,7 +381,7 @@ bool EmuNVNet_DMAPacketToGuest(void* packet, size_t size)
for (int i = 0; i < s->rx_ring_size; i++) {
/* Read current ring descriptor */
s->rx_ring_index %= s->rx_ring_size;
xbaddr rx_ring_addr = EmuNVNet_GetRegister(NvRegRxRingPhysAddr, 4);
xbox::addr rx_ring_addr = EmuNVNet_GetRegister(NvRegRxRingPhysAddr, 4);
rx_ring_addr += s->rx_ring_index * sizeof(desc);
memcpy(&desc, (void*)(rx_ring_addr | CONTIGUOUS_MEMORY_BASE), sizeof(desc));
@ -423,7 +423,7 @@ bool EmuNVNet_DMAPacketToGuest(void* packet, size_t size)
return false;
}
void EmuNVNet_Write(xbaddr addr, uint32_t value, int size)
void EmuNVNet_Write(xbox::addr addr, uint32_t value, int size)
{
switch (addr) {
case NvRegRingSizes:

View File

@ -309,7 +309,7 @@ void OHCI::OHCI_FrameBoundaryWorker()
if (m_OldHcControl & (~m_Registers.HcControl) & (OHCI_CTL_BLE | OHCI_CTL_CLE)) {
if (m_AsyncTD) {
m_UsbDevice->USB_CancelPacket(&m_UsbPacket);
m_AsyncTD = xbnull;
m_AsyncTD = xbox::zero;
}
OHCI_StopEndpoints();
}
@ -380,46 +380,46 @@ void OHCI::OHCI_FatalError()
EmuLog(LOG_LEVEL::ERROR2, "An unrecoverable error has occoured!\n");
}
bool OHCI::OHCI_ReadHCCA(xbaddr Paddr, OHCI_HCCA* Hcca)
bool OHCI::OHCI_ReadHCCA(xbox::addr Paddr, OHCI_HCCA* Hcca)
{
return Memory_R(reinterpret_cast<void*>(Paddr), Hcca, sizeof(OHCI_HCCA));
}
bool OHCI::OHCI_WriteHCCA(xbaddr Paddr, OHCI_HCCA* Hcca)
bool OHCI::OHCI_WriteHCCA(xbox::addr Paddr, OHCI_HCCA* Hcca)
{
// We need to calculate the offset of the HccaFrameNumber member to avoid overwriting HccaInterrruptTable
size_t OffsetOfFrameNumber = offsetof(OHCI_HCCA, HccaFrameNumber);
return Memory_W(reinterpret_cast<void*>(Paddr + OffsetOfFrameNumber), reinterpret_cast<uint8_t*>(Hcca) + OffsetOfFrameNumber, 8);
}
bool OHCI::OHCI_ReadED(xbaddr Paddr, OHCI_ED* Ed)
bool OHCI::OHCI_ReadED(xbox::addr Paddr, OHCI_ED* Ed)
{
return GetDwords(Paddr, reinterpret_cast<uint32_t*>(Ed), sizeof(*Ed) >> 2); // ED is 16 bytes large
}
bool OHCI::OHCI_WriteED(xbaddr Paddr, OHCI_ED* Ed)
bool OHCI::OHCI_WriteED(xbox::addr Paddr, OHCI_ED* Ed)
{
// According to the standard, only the HeadP field is writable by the HC, so we'll write just that
size_t OffsetOfHeadP = offsetof(OHCI_ED, HeadP);
return WriteDwords(Paddr + OffsetOfHeadP, reinterpret_cast<uint32_t*>(reinterpret_cast<uint8_t*>(Ed) + OffsetOfHeadP), 1);
}
bool OHCI::OHCI_ReadTD(xbaddr Paddr, OHCI_TD* Td)
bool OHCI::OHCI_ReadTD(xbox::addr Paddr, OHCI_TD* Td)
{
return GetDwords(Paddr, reinterpret_cast<uint32_t*>(Td), sizeof(*Td) >> 2); // TD is 16 bytes large
}
bool OHCI::OHCI_WriteTD(xbaddr Paddr, OHCI_TD* Td)
bool OHCI::OHCI_WriteTD(xbox::addr Paddr, OHCI_TD* Td)
{
return WriteDwords(Paddr, reinterpret_cast<uint32_t*>(Td), sizeof(*Td) >> 2);
}
bool OHCI::OHCI_ReadIsoTD(xbaddr Paddr, OHCI_ISO_TD* td)
bool OHCI::OHCI_ReadIsoTD(xbox::addr Paddr, OHCI_ISO_TD* td)
{
return GetDwords(Paddr, reinterpret_cast<uint32_t*>(td), 4) || GetWords(Paddr + 16, td->Offset, 8);
}
bool OHCI::OHCI_WriteIsoTD(xbaddr Paddr, OHCI_ISO_TD* td)
bool OHCI::OHCI_WriteIsoTD(xbox::addr Paddr, OHCI_ISO_TD* td)
{
return WriteDwords(Paddr, reinterpret_cast<uint32_t*>(td), 4) || WriteWords(Paddr + 16, td->Offset, 8);
}
@ -480,16 +480,16 @@ bool OHCI::OHCI_CopyIsoTDBuffer(uint32_t start_addr, uint32_t end_addr, uint8_t*
return false;
}
int OHCI::OHCI_ServiceEDlist(xbaddr Head, int Completion)
int OHCI::OHCI_ServiceEDlist(xbox::addr Head, int Completion)
{
OHCI_ED ed;
xbaddr next_ed;
xbaddr current;
xbox::addr next_ed;
xbox::addr current;
int active;
active = 0;
if (Head == xbnull) {
if (Head == xbox::zero) {
// no ED here, nothing to do
return 0;
}
@ -507,10 +507,10 @@ int OHCI::OHCI_ServiceEDlist(xbaddr Head, int Completion)
if ((ed.HeadP & OHCI_ED_H) || (ed.Flags & OHCI_ED_K)) { // halted or skip
// Cancel pending packets for ED that have been paused
xbaddr addr = ed.HeadP & OHCI_DPTR_MASK;
xbox::addr addr = ed.HeadP & OHCI_DPTR_MASK;
if (m_AsyncTD && addr == m_AsyncTD) {
m_UsbDevice->USB_CancelPacket(&m_UsbPacket);
m_AsyncTD = xbnull;
m_AsyncTD = xbox::zero;
m_UsbDevice->USB_DeviceEPstopped(m_UsbPacket.Endpoint->Dev, m_UsbPacket.Endpoint);
}
continue;
@ -566,7 +566,7 @@ int OHCI::OHCI_ServiceTD(OHCI_ED* Ed)
XboxDeviceState* dev;
USBEndpoint* ep;
OHCI_TD td;
xbaddr addr;
xbox::addr addr;
int flag_r;
int completion;
@ -866,7 +866,7 @@ void OHCI::OHCI_StateReset()
}
if (m_AsyncTD) {
m_UsbDevice->USB_CancelPacket(&m_UsbPacket);
m_AsyncTD = xbnull;
m_AsyncTD = xbox::zero;
}
OHCI_StopEndpoints();
@ -951,7 +951,7 @@ void OHCI::OHCI_PacketInit(USBPacket* packet)
vec->Size = 0;
}
uint32_t OHCI::OHCI_ReadRegister(xbaddr Addr)
uint32_t OHCI::OHCI_ReadRegister(xbox::addr Addr)
{
uint32_t ret = 0xFFFFFFFF;
@ -1092,7 +1092,7 @@ uint32_t OHCI::OHCI_ReadRegister(xbaddr Addr)
}
}
void OHCI::OHCI_WriteRegister(xbaddr Addr, uint32_t Value)
void OHCI::OHCI_WriteRegister(xbox::addr Addr, uint32_t Value)
{
if (Addr & 3) {
// The standard allows only aligned writes to the registers
@ -1533,7 +1533,7 @@ void OHCI::OHCI_AsyncCancelDevice(XboxDeviceState* dev)
m_UsbDevice->USB_IsPacketInflight(&m_UsbPacket) &&
m_UsbPacket.Endpoint->Dev == dev) {
m_UsbDevice->USB_CancelPacket(&m_UsbPacket);
m_AsyncTD = xbnull;
m_AsyncTD = xbox::zero;
}
}

View File

@ -142,9 +142,9 @@ class OHCI
// destructor
~OHCI() {}
// read a register
uint32_t OHCI_ReadRegister(xbaddr Addr);
uint32_t OHCI_ReadRegister(xbox::addr Addr);
// write a register
void OHCI_WriteRegister(xbaddr Addr, uint32_t Value);
void OHCI_WriteRegister(xbox::addr Addr, uint32_t Value);
private:
@ -169,7 +169,7 @@ class OHCI
// Done Queue Interrupt Counter
int m_DoneCount;
// the address of the pending TD
xbaddr m_AsyncTD = xbnull;
xbox::addr m_AsyncTD = xbox::zero;
// indicates if there is a pending asynchronous packet to process
int m_AsyncComplete = 0;
@ -209,27 +209,27 @@ class OHCI
// if not set ConnectStatusChange flag; if flag is enabled return 1
int OHCI_PortSetIfConnected(int i, uint32_t Value);
// read the HCCA structure in memory
bool OHCI_ReadHCCA(xbaddr Paddr, OHCI_HCCA* Hcca);
bool OHCI_ReadHCCA(xbox::addr Paddr, OHCI_HCCA* Hcca);
// write the HCCA structure in memory
bool OHCI_WriteHCCA(xbaddr Paddr, OHCI_HCCA* Hcca);
bool OHCI_WriteHCCA(xbox::addr Paddr, OHCI_HCCA* Hcca);
// read an ED in memory
bool OHCI_ReadED(xbaddr Paddr, OHCI_ED* Ed);
bool OHCI_ReadED(xbox::addr Paddr, OHCI_ED* Ed);
// write an ED in memory
bool OHCI_WriteED(xbaddr Paddr, OHCI_ED* Ed);
bool OHCI_WriteED(xbox::addr Paddr, OHCI_ED* Ed);
// read an TD in memory
bool OHCI_ReadTD(xbaddr Paddr, OHCI_TD* Td);
bool OHCI_ReadTD(xbox::addr Paddr, OHCI_TD* Td);
// write a TD in memory
bool OHCI_WriteTD(xbaddr Paddr, OHCI_TD* Td);
bool OHCI_WriteTD(xbox::addr Paddr, OHCI_TD* Td);
// read an iso TD in memory
bool OHCI_ReadIsoTD(xbaddr Paddr, OHCI_ISO_TD* td);
bool OHCI_ReadIsoTD(xbox::addr Paddr, OHCI_ISO_TD* td);
// write an iso TD in memory
bool OHCI_WriteIsoTD(xbaddr Paddr, OHCI_ISO_TD* td);
bool OHCI_WriteIsoTD(xbox::addr Paddr, OHCI_ISO_TD* td);
// read/write the user buffer pointed to by a TD from/to main memory
bool OHCI_CopyTDBuffer(OHCI_TD* Td, uint8_t* Buffer, int Length, bool bIsWrite);
// read/write the user buffer pointed to by a ISO TD from/to main memory
bool OHCI_CopyIsoTDBuffer(uint32_t start_addr, uint32_t end_addr, uint8_t* Buffer, int Length, bool bIsWrite);
// process an ED list. Returns nonzero if active TD was found
int OHCI_ServiceEDlist(xbaddr Head, int Completion);
int OHCI_ServiceEDlist(xbox::addr Head, int Completion);
// process a TD. Returns nonzero to terminate processing of this endpoint
int OHCI_ServiceTD(OHCI_ED* Ed);
// process an isochronous TD

Some files were not shown because too many files have changed in this diff Show More