aboutsummaryrefslogtreecommitdiff
path: root/Minecraft.Client/PS3/PS3Extras/Ps3Stubs.h
diff options
context:
space:
mode:
authordaoge_cmd <3523206925@qq.com>2026-03-01 12:16:08 +0800
committerdaoge_cmd <3523206925@qq.com>2026-03-01 12:16:08 +0800
commitb691c43c44ff180d10e7d4a9afc83b98551ff586 (patch)
tree3e9849222cbc6ba49f2f1fc6e5fe7179632c7390 /Minecraft.Client/PS3/PS3Extras/Ps3Stubs.h
parentdef8cb415354ac390b7e89052a50605285f1aca9 (diff)
Initial commit
Diffstat (limited to 'Minecraft.Client/PS3/PS3Extras/Ps3Stubs.h')
-rw-r--r--Minecraft.Client/PS3/PS3Extras/Ps3Stubs.h431
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