diff options
| author | daoge_cmd <3523206925@qq.com> | 2026-03-01 12:16:08 +0800 |
|---|---|---|
| committer | daoge_cmd <3523206925@qq.com> | 2026-03-01 12:16:08 +0800 |
| commit | b691c43c44ff180d10e7d4a9afc83b98551ff586 (patch) | |
| tree | 3e9849222cbc6ba49f2f1fc6e5fe7179632c7390 /Minecraft.Client/PS3/PS3Extras/Ps3Stubs.h | |
| parent | def8cb415354ac390b7e89052a50605285f1aca9 (diff) | |
Initial commit
Diffstat (limited to 'Minecraft.Client/PS3/PS3Extras/Ps3Stubs.h')
| -rw-r--r-- | Minecraft.Client/PS3/PS3Extras/Ps3Stubs.h | 431 |
1 files changed, 431 insertions, 0 deletions
diff --git a/Minecraft.Client/PS3/PS3Extras/Ps3Stubs.h b/Minecraft.Client/PS3/PS3Extras/Ps3Stubs.h new file mode 100644 index 00000000..f24a3b92 --- /dev/null +++ b/Minecraft.Client/PS3/PS3Extras/Ps3Stubs.h @@ -0,0 +1,431 @@ + + +#pragma once + +#include "TLSStorage.h" +#include <sys/synchronization.h> +#include <sys/sys_time.h> +#include <sys/timer.h> +#include <sys/ppu_thread.h> +#include <libsn.h> + +#ifndef _CONTENT_PACKAGE + +#define DEBUG_PRINTF(fmt, arg...) printf(fmt, ## arg) + +#else +#define DEBUG_PRINTF(fmt, arg...) (void)0 + +#endif + +char* getConsoleHomePath(); +char* getUsrDirPath(); +char* getConsoleHomePathBDPatch(); +char* getUsrDirPathBDPatch(); +char* getDirName(); + +DWORD TlsAlloc(VOID); +LPVOID TlsGetValue(DWORD dwTlsIndex); +BOOL TlsSetValue(DWORD dwTlsIndex, LPVOID lpTlsValue); + + +typedef struct _RECT +{ + LONG left; + LONG top; + LONG right; + LONG bottom; +} RECT, *PRECT; + + +typedef void ID3D11Device; +typedef void ID3D11DeviceContext; +typedef void IDXGISwapChain; +typedef RECT D3D11_RECT; +typedef void ID3D11Buffer; +typedef DWORD (*PTHREAD_START_ROUTINE)( LPVOID lpThreadParameter); +typedef PTHREAD_START_ROUTINE LPTHREAD_START_ROUTINE; + +typedef int errno_t; + +// typedef struct _RTL_CRITICAL_SECTION { +// // +// // The following field is used for blocking when there is contention for +// // the resource +// // +// +// union { +// ULONG_PTR RawEvent[4]; +// } Synchronization; +// +// // +// // The following three fields control entering and exiting the critical +// // section for the resource +// // +// +// LONG LockCount; +// LONG RecursionCount; +// HANDLE OwningThread; +// } RTL_CRITICAL_SECTION, *PRTL_CRITICAL_SECTION; + +typedef sys_lwmutex_t RTL_CRITICAL_SECTION; +typedef sys_lwmutex_t* PRTL_CRITICAL_SECTION; + +typedef RTL_CRITICAL_SECTION CRITICAL_SECTION; +typedef PRTL_CRITICAL_SECTION PCRITICAL_SECTION; +typedef PRTL_CRITICAL_SECTION LPCRITICAL_SECTION; + +void EnterCriticalSection(CRITICAL_SECTION* _c); +void LeaveCriticalSection(CRITICAL_SECTION* _c); +void InitializeCriticalSection(CRITICAL_SECTION* _c); +void DeleteCriticalSection(CRITICAL_SECTION* _c); +HANDLE CreateEvent(void* lpEventAttributes, BOOL bManualReset, BOOL bInitialState, LPCSTR lpName); +VOID Sleep(DWORD dwMilliseconds); +BOOL SetThreadPriority(HANDLE hThread, int nPriority); +DWORD WaitForSingleObject(HANDLE hHandle, DWORD dwMilliseconds); + +LONG InterlockedCompareExchangeRelease(LONG volatile *Destination, LONG Exchange,LONG Comperand ); + + +VOID InitializeCriticalSection(PCRITICAL_SECTION CriticalSection); +VOID InitializeCriticalSectionAndSpinCount(PCRITICAL_SECTION CriticalSection, ULONG SpinCount); +VOID DeleteCriticalSection(PCRITICAL_SECTION CriticalSection); +VOID EnterCriticalSection(PCRITICAL_SECTION CriticalSection); +VOID LeaveCriticalSection(PCRITICAL_SECTION CriticalSection); +ULONG TryEnterCriticalSection(PCRITICAL_SECTION CriticalSection); +DWORD WaitForMultipleObjects(DWORD nCount, CONST HANDLE *lpHandles,BOOL bWaitAll,DWORD dwMilliseconds); + +LONG64 InterlockedCompareExchangeRelease64(LONG64 volatile *Destination, LONG64 Exchange, LONG64 Comperand); + +BOOL CloseHandle(HANDLE hObject); +BOOL SetEvent(HANDLE hEvent); + +HMODULE GetModuleHandle(LPCSTR lpModuleName); + +HANDLE CreateThread( void* lpThreadAttributes, DWORD dwStackSize, void* lpStartAddress, LPVOID lpParameter, DWORD dwCreationFlags, LPDWORD lpThreadId ); +DWORD ResumeThread( HANDLE hThread ); +sys_ppu_thread_t GetCurrentThreadId(VOID); +DWORD WaitForMultipleObjectsEx(DWORD nCount,CONST HANDLE *lpHandles,BOOL bWaitAll,DWORD dwMilliseconds,BOOL bAlertable ); +BOOL GetExitCodeThread(HANDLE hThread, LPDWORD lpExitCode); + + +LPVOID VirtualAlloc(LPVOID lpAddress, SIZE_T dwSize, DWORD flAllocationType, DWORD flProtect); +BOOL VirtualFree(LPVOID lpAddress, SIZE_T dwSize, DWORD dwFreeType); + +DWORD GetFileSize( HANDLE hFile, LPDWORD lpFileSizeHigh ); +BOOL GetFileSizeEx(HANDLE hFile, PLARGE_INTEGER lpFileSize ); +BOOL WriteFile( +HANDLE hFile, LPCVOID lpBuffer, DWORD nNumberOfBytesToWrite, LPDWORD lpNumberOfBytesWritten, LPOVERLAPPED lpOverlapped ); +BOOL ReadFile(HANDLE hFile, LPVOID lpBuffer, DWORD nNumberOfBytesToRead, LPDWORD lpNumberOfBytesRead, LPOVERLAPPED lpOverlapped ); +#define INVALID_SET_FILE_POINTER false +BOOL SetFilePointer(HANDLE hFile, LONG lDistanceToMove, PLONG lpDistanceToMoveHigh, DWORD dwMoveMethod); +HANDLE CreateFileA(LPCSTR lpFileName, DWORD dwDesiredAccess, DWORD dwShareMode, LPSECURITY_ATTRIBUTES lpSecurityAttributes, DWORD dwCreationDisposition, DWORD dwFlagsAndAttributes, HANDLE hTemplateFile); +#define CreateFile CreateFileA +BOOL CreateDirectoryA(LPCSTR lpPathName, LPSECURITY_ATTRIBUTES lpSecurityAttributes); +#define CreateDirectory CreateDirectoryA +BOOL DeleteFileA(LPCSTR lpFileName); +#define DeleteFile DeleteFileA +DWORD GetFileAttributesA(LPCSTR lpFileName); +#define GetFileAttributes GetFileAttributesA +BOOL MoveFileA(LPCSTR lpExistingFileName, LPCSTR lpNewFileName); +#define MoveFile MoveFileA + +#define MAX_PATH 260 + +void __debugbreak(); +VOID DebugBreak(VOID); + + +enum D3D11_BLEND +{ + D3D11_BLEND_ZERO = 1, + D3D11_BLEND_ONE = 2, + D3D11_BLEND_SRC_COLOR = 3, + D3D11_BLEND_INV_SRC_COLOR = 4, + D3D11_BLEND_SRC_ALPHA = 5, + D3D11_BLEND_INV_SRC_ALPHA = 6, + D3D11_BLEND_DEST_ALPHA = 7, + D3D11_BLEND_INV_DEST_ALPHA = 8, + D3D11_BLEND_DEST_COLOR = 9, + D3D11_BLEND_INV_DEST_COLOR = 10, + D3D11_BLEND_SRC_ALPHA_SAT = 11, + D3D11_BLEND_BLEND_FACTOR = 14, + D3D11_BLEND_INV_BLEND_FACTOR = 15, + D3D11_BLEND_SRC1_COLOR = 16, + D3D11_BLEND_INV_SRC1_COLOR = 17, + D3D11_BLEND_SRC1_ALPHA = 18, + D3D11_BLEND_INV_SRC1_ALPHA = 19 +}; + + +enum D3D11_COMPARISON_FUNC +{ + D3D11_COMPARISON_NEVER = 1, + D3D11_COMPARISON_LESS = 2, + D3D11_COMPARISON_EQUAL = 3, + D3D11_COMPARISON_LESS_EQUAL = 4, + D3D11_COMPARISON_GREATER = 5, + D3D11_COMPARISON_NOT_EQUAL = 6, + D3D11_COMPARISON_GREATER_EQUAL = 7, + D3D11_COMPARISON_ALWAYS = 8 +}; + + +typedef struct _SYSTEMTIME { + WORD wYear; + WORD wMonth; + WORD wDayOfWeek; + WORD wDay; + WORD wHour; + WORD wMinute; + WORD wSecond; + WORD wMilliseconds; +} SYSTEMTIME, *PSYSTEMTIME, *LPSYSTEMTIME; + +VOID GetSystemTime( LPSYSTEMTIME lpSystemTime); +BOOL FileTimeToSystemTime(CONST FILETIME *lpFileTime, LPSYSTEMTIME lpSystemTime); +BOOL SystemTimeToFileTime(CONST SYSTEMTIME *lpSystemTime, LPFILETIME lpFileTime); +VOID GetLocalTime(LPSYSTEMTIME lpSystemTime); + +typedef struct _MEMORYSTATUS { + DWORD dwLength; + DWORD dwMemoryLoad; + SIZE_T dwTotalPhys; + SIZE_T dwAvailPhys; + SIZE_T dwTotalPageFile; + SIZE_T dwAvailPageFile; + SIZE_T dwTotalVirtual; + SIZE_T dwAvailVirtual; +} MEMORYSTATUS, *LPMEMORYSTATUS; + + +#define WINAPI + +#define CREATE_SUSPENDED 0x00000004 + +#define THREAD_BASE_PRIORITY_LOWRT 15 // value that gets a thread to LowRealtime-1 +#define THREAD_BASE_PRIORITY_MAX 2 // maximum thread base priority boost +#define THREAD_BASE_PRIORITY_MIN -2 // minimum thread base priority boost +#define THREAD_BASE_PRIORITY_IDLE -15 // value that gets a thread to idle + +#define THREAD_PRIORITY_LOWEST THREAD_BASE_PRIORITY_MIN +#define THREAD_PRIORITY_BELOW_NORMAL (THREAD_PRIORITY_LOWEST+1) +#define THREAD_PRIORITY_NORMAL 0 +#define THREAD_PRIORITY_HIGHEST THREAD_BASE_PRIORITY_MAX +#define THREAD_PRIORITY_ABOVE_NORMAL (THREAD_PRIORITY_HIGHEST-1) +#define THREAD_PRIORITY_ERROR_RETURN (MAXLONG) + +#define THREAD_PRIORITY_TIME_CRITICAL THREAD_BASE_PRIORITY_LOWRT +#define THREAD_PRIORITY_IDLE THREAD_BASE_PRIORITY_IDLE + +#define WAIT_TIMEOUT 258L +#define STATUS_ABANDONED_WAIT_0 ((DWORD )0x00000080L) +#define WAIT_ABANDONED ((STATUS_ABANDONED_WAIT_0 ) + 0 ) + +#define MAXUINT_PTR (~((UINT_PTR)0)) +#define MAXINT_PTR ((INT_PTR)(MAXUINT_PTR >> 1)) +#define MININT_PTR (~MAXINT_PTR) + +#define MAXULONG_PTR (~((ULONG_PTR)0)) +#define MAXLONG_PTR ((LONG_PTR)(MAXULONG_PTR >> 1)) +#define MINLONG_PTR (~MAXLONG_PTR) + +#define MAXUHALF_PTR ((UHALF_PTR)~0) +#define MAXHALF_PTR ((HALF_PTR)(MAXUHALF_PTR >> 1)) +#define MINHALF_PTR (~MAXHALF_PTR) + +#define INVALID_HANDLE_VALUE ((HANDLE)-1) +// +// Generic test for success on any status value (non-negative numbers +// indicate success). +// + +#define HRESULT_SUCCEEDED(Status) ((HRESULT)(Status) >= 0) + +// +// and the inverse +// +// #define _HRESULT_TYPEDEF_(_sc) _sc + +#define FAILED(Status) ((HRESULT)(Status)<0) +// #define MAKE_HRESULT(sev,fac,code) \ +// ((HRESULT) (((unsigned int)(sev)<<31) | ((unsigned int)(fac)<<16) | ((unsigned int)(code))) ) +// #define MAKE_SCODE(sev,fac,code) \ +// ((SCODE) (((unsigned int)(sev)<<31) | ((unsigned int)(fac)<<16) | ((unsigned int)(code))) ) +// #define E_FAIL _HRESULT_TYPEDEF_(0x80004005L) +// #define E_ABORT _HRESULT_TYPEDEF_(0x80004004L) +// #define E_NOINTERFACE _HRESULT_TYPEDEF_(0x80004002L) + +#define GENERIC_READ (0x80000000L) +#define GENERIC_WRITE (0x40000000L) +#define GENERIC_EXECUTE (0x20000000L) +#define GENERIC_ALL (0x10000000L) + +#define FILE_SHARE_READ 0x00000001 +#define FILE_SHARE_WRITE 0x00000002 +#define FILE_SHARE_DELETE 0x00000004 +#define FILE_ATTRIBUTE_READONLY 0x00000001 +#define FILE_ATTRIBUTE_HIDDEN 0x00000002 +#define FILE_ATTRIBUTE_SYSTEM 0x00000004 +#define FILE_ATTRIBUTE_DIRECTORY 0x00000010 +#define FILE_ATTRIBUTE_ARCHIVE 0x00000020 +#define FILE_ATTRIBUTE_DEVICE 0x00000040 +#define FILE_ATTRIBUTE_NORMAL 0x00000080 +#define FILE_ATTRIBUTE_TEMPORARY 0x00000100 + +#define FILE_FLAG_WRITE_THROUGH 0x80000000 +#define FILE_FLAG_OVERLAPPED 0x40000000 +#define FILE_FLAG_NO_BUFFERING 0x20000000 +#define FILE_FLAG_RANDOM_ACCESS 0x10000000 +#define FILE_FLAG_SEQUENTIAL_SCAN 0x08000000 +#define FILE_FLAG_DELETE_ON_CLOSE 0x04000000 +#define FILE_FLAG_BACKUP_SEMANTICS 0x02000000 + +#define FILE_BEGIN 0 +#define FILE_CURRENT 1 +#define FILE_END 2 + +#define CREATE_NEW 1 +#define CREATE_ALWAYS 2 +#define OPEN_EXISTING 3 +#define OPEN_ALWAYS 4 +#define TRUNCATE_EXISTING 5 + +#define PAGE_NOACCESS 0x01 +#define PAGE_READONLY 0x02 +#define PAGE_READWRITE 0x04 +#define PAGE_WRITECOPY 0x08 +#define PAGE_EXECUTE 0x10 +#define PAGE_EXECUTE_READ 0x20 +#define PAGE_EXECUTE_READWRITE 0x40 +#define PAGE_EXECUTE_WRITECOPY 0x80 +#define PAGE_GUARD 0x100 +#define PAGE_NOCACHE 0x200 +#define PAGE_WRITECOMBINE 0x400 +#define PAGE_USER_READONLY 0x1000 +#define PAGE_USER_READWRITE 0x2000 +#define MEM_COMMIT 0x1000 +#define MEM_RESERVE 0x2000 +#define MEM_DECOMMIT 0x4000 +#define MEM_RELEASE 0x8000 +#define MEM_FREE 0x10000 +#define MEM_PRIVATE 0x20000 +#define MEM_RESET 0x80000 +#define MEM_TOP_DOWN 0x100000 +#define MEM_NOZERO 0x800000 +#define MEM_LARGE_PAGES 0x20000000 +#define MEM_HEAP 0x40000000 +#define MEM_16MB_PAGES 0x80000000 + +#define IGNORE 0 // Ignore signal +#define INFINITE 0xFFFFFFFF // Infinite timeout +#define WAIT_FAILED ((DWORD)0xFFFFFFFF) +#define STATUS_WAIT_0 ((DWORD )0x00000000L) +#define WAIT_OBJECT_0 ((STATUS_WAIT_0 ) + 0 ) +#define STATUS_PENDING ((DWORD )0x00000103L) +#define STILL_ACTIVE STATUS_PENDING + +DWORD GetLastError(VOID); +VOID GlobalMemoryStatus(LPMEMORYSTATUS lpBuffer); + +DWORD GetTickCount(); +BOOL QueryPerformanceFrequency(LARGE_INTEGER *lpFrequency); +BOOL QueryPerformanceCounter(LARGE_INTEGER *lpPerformanceCount); + + +#define ERROR_SUCCESS 0L +#define ERROR_IO_PENDING 997L // dderror +#define ERROR_CANCELLED 1223L +//#define S_OK ((HRESULT)0x00000000L) +#define S_FALSE ((HRESULT)0x00000001L) + +#define RtlEqualMemory(Destination,Source,Length) (!memcmp((Destination),(Source),(Length))) +#define RtlMoveMemory(Destination,Source,Length) memmove((Destination),(Source),(Length)) +#define RtlCopyMemory(Destination,Source,Length) memcpy((Destination),(Source),(Length)) +#define RtlFillMemory(Destination,Length,Fill) memset((Destination),(Fill),(Length)) +#define RtlZeroMemory(Destination,Length) memset((Destination),0,(Length)) + +#define MoveMemory RtlMoveMemory +#define CopyMemory RtlCopyMemory +#define FillMemory RtlFillMemory +#define ZeroMemory RtlZeroMemory + +#define CDECL +#define APIENTRY +#define wsprintfW swprintf +#define wcsncpy_s wcsncpy +#define _wcstoui64 wcstoll + +#define VK_ESCAPE 0x1B +#define VK_RETURN 0x0D + +VOID OutputDebugStringW(LPCWSTR lpOutputString); +VOID OutputDebugString(LPCSTR lpOutputString); +VOID OutputDebugStringA(LPCSTR lpOutputString); + +errno_t _itoa_s(int _Value, char * _DstBuf, size_t _Size, int _Radix); +errno_t _i64toa_s(__int64 _Val, char * _DstBuf, size_t _Size, int _Radix); + +int _wtoi(const wchar_t *_Str); + +#define __declspec(a) +extern "C" int _wcsicmp (const wchar_t * dst, const wchar_t * src); + +size_t wcsnlen(const wchar_t *wcs, size_t maxsize); + +typedef struct _WIN32_FIND_DATAA { + DWORD dwFileAttributes; + FILETIME ftCreationTime; + FILETIME ftLastAccessTime; + FILETIME ftLastWriteTime; + DWORD nFileSizeHigh; + DWORD nFileSizeLow; + DWORD dwReserved0; + DWORD dwReserved1; + CHAR cFileName[ MAX_PATH ]; + CHAR cAlternateFileName[ 14 ]; +} WIN32_FIND_DATAA, *PWIN32_FIND_DATAA, *LPWIN32_FIND_DATAA; +typedef WIN32_FIND_DATAA WIN32_FIND_DATA; +typedef PWIN32_FIND_DATAA PWIN32_FIND_DATA; +typedef LPWIN32_FIND_DATAA LPWIN32_FIND_DATA; + +typedef struct _WIN32_FILE_ATTRIBUTE_DATA { + DWORD dwFileAttributes; + FILETIME ftCreationTime; + FILETIME ftLastAccessTime; + FILETIME ftLastWriteTime; + DWORD nFileSizeHigh; + DWORD nFileSizeLow; +} WIN32_FILE_ATTRIBUTE_DATA, *LPWIN32_FILE_ATTRIBUTE_DATA; + + +DWORD GetFileAttributesA(LPCSTR lpFileName); +#define GetFileAttributes GetFileAttributesA +typedef enum _GET_FILEEX_INFO_LEVELS { + GetFileExInfoStandard, + GetFileExMaxInfoLevel +} GET_FILEEX_INFO_LEVELS; + +BOOL GetFileAttributesExA(LPCSTR lpFileName,GET_FILEEX_INFO_LEVELS fInfoLevelId,LPVOID lpFileInformation); +#define GetFileAttributesEx GetFileAttributesExA + +BOOL DeleteFileA(LPCSTR lpFileName); +#define DeleteFile DeleteFileA + + +HANDLE FindFirstFileA(LPCSTR lpFileName, LPWIN32_FIND_DATA lpFindFileData); +#define FindFirstFile FindFirstFileA + +BOOL FindNextFileA(HANDLE hFindFile, LPWIN32_FIND_DATAA lpFindFileData); +#define FindNextFile FindNextFileA +#define FindClose(hFindFile) CloseHandle(hFindFile) + +DWORD XGetLanguage(); +DWORD XGetLocale(); +DWORD XEnableGuestSignin(BOOL fEnable); + +#ifdef _CONTENT_PACKAGE +#define PS3_STUBBED { } +#else +#define PS3_STUBBED { static bool bSet = false; if(!bSet){printf("missing function on PS3 : %s\n Tell MarkH about this, then press f5 to continue.", __FUNCTION__); bSet = true; assert(0);} } +#endif |
