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/Durango/DurangoExtras | |
| parent | def8cb415354ac390b7e89052a50605285f1aca9 (diff) | |
Initial commit
Diffstat (limited to 'Minecraft.Client/Durango/DurangoExtras')
| -rw-r--r-- | Minecraft.Client/Durango/DurangoExtras/DurangoStubs.cpp | 128 | ||||
| -rw-r--r-- | Minecraft.Client/Durango/DurangoExtras/DurangoStubs.h | 9 | ||||
| -rw-r--r-- | Minecraft.Client/Durango/DurangoExtras/xcompress.dll | bin | 0 -> 36864 bytes | |||
| -rw-r--r-- | Minecraft.Client/Durango/DurangoExtras/xcompress.h | 253 | ||||
| -rw-r--r-- | Minecraft.Client/Durango/DurangoExtras/xcompress.lib | bin | 0 -> 5164 bytes |
5 files changed, 390 insertions, 0 deletions
diff --git a/Minecraft.Client/Durango/DurangoExtras/DurangoStubs.cpp b/Minecraft.Client/Durango/DurangoExtras/DurangoStubs.cpp new file mode 100644 index 00000000..81b9d7cf --- /dev/null +++ b/Minecraft.Client/Durango/DurangoExtras/DurangoStubs.cpp @@ -0,0 +1,128 @@ +#include "stdafx.h" + +#define DURANGO_STUBBED +//printf("missing function on Xbox One : %s\n", __FUNCTION__); + +//static char sc_loadPath[] = {"/"}; + +//const char* getConsoleHomePath() { return sc_loadPath; } + +DWORD GetFileSize(HANDLE fh,DWORD *pdwHigh) +{ + LARGE_INTEGER FileSize; + + BOOL bRes=GetFileSizeEx(fh,&FileSize); + + if(bRes==FALSE) + { + if(pdwHigh) *pdwHigh=0; + return 0; + } + else + { + if(pdwHigh) *pdwHigh=FileSize.HighPart; + return FileSize.LowPart; + } +} + +DWORD XGetLanguage() +{ + //StringTable::eLocale eCurrentLocale=StringTable::eLocale_American; + bool bLocaleFound; + + WCHAR wchLocaleName[LOCALE_NAME_MAX_LENGTH]; + GetUserDefaultLocaleName(wchLocaleName,LOCALE_NAME_MAX_LENGTH); + eMCLang eLang=(eMCLang)app.get_eMCLang(wchLocaleName); + +#ifdef _DEBUG + app.DebugPrintf("XGetLanguage() ==> '%ls'\n", wchLocaleName); +#endif + + // need to map locale to language + switch(eLang) + { + case eMCLang_jaJP: + return XC_LANGUAGE_JAPANESE; + case eMCLang_deDE: + case eMCLang_deAT: + return XC_LANGUAGE_GERMAN; + case eMCLang_frFR: + case eMCLang_frCA: + return XC_LANGUAGE_FRENCH; + case eMCLang_esES: + case eMCLang_esMX: + return XC_LANGUAGE_SPANISH; + case eMCLang_itIT: + return XC_LANGUAGE_ITALIAN; + case eMCLang_koKR: + return XC_LANGUAGE_KOREAN; + case eMCLang_zhHK: + case eMCLang_zhSG: + case eMCLang_zhTW: + case eMCLang_zhCHT: + return XC_LANGUAGE_TCHINESE; + case eMCLang_zhCHS: + case eMCLang_zhCN: + return XC_LANGUAGE_SCHINESE; + case eMCLang_ptPT: + case eMCLang_ptBR: + return XC_LANGUAGE_PORTUGUESE; + case eMCLang_ruRU: + return XC_LANGUAGE_RUSSIAN; + case eMCLang_nlNL: + case eMCLang_nlBE: + return XC_LANGUAGE_DUTCH; + case eMCLang_fiFI: + return XC_LANGUAGE_FINISH; + case eMCLang_svSV: + case eMCLang_svSE: + return XC_LANGUAGE_SWEDISH; + case eMCLang_daDA: + case eMCLang_daDK: + return XC_LANGUAGE_DANISH; + case eMCLang_noNO: + case eMCLang_nnNO: + case eMCLang_nbNO: + return XC_LANGUAGE_BNORWEGIAN; + case eMCLang_plPL: + return XC_LANGUAGE_POLISH; + case eMCLang_trTR: + return XC_LANGUAGE_TURKISH; + case eMCLang_laLAS: + return XC_LANGUAGE_LATINAMERICANSPANISH; + case eMCLang_elEL: + case eMCLang_elGR: + case eMCLang_enGR: // Hack redirect + return XC_LANGUAGE_GREEK; + case eMCLang_csCZ: + case eMCLang_enCZ: // Hack redirect + return XC_LANGUAGE_CZECH; + case eMCLang_skSK: + case eMCLang_enSK: // Hack redirect + return XC_LANGUAGE_SLOVAK; + case eMCLang_enUS: + case eMCLang_enGB: + case eMCLang_enIE: + case eMCLang_enAU: + case eMCLang_enNZ: + case eMCLang_enCA: + default: + return XC_LANGUAGE_ENGLISH; + } +} + +DWORD XGetLocale() +{ + //return XC_LOCALE_SWEDEN; + + WCHAR wchLocaleName[LOCALE_NAME_MAX_LENGTH]; + GetUserDefaultLocaleName(wchLocaleName,LOCALE_NAME_MAX_LENGTH); + + return app.get_xcLang(wchLocaleName); +} + +DWORD XEnableGuestSignin(BOOL fEnable) +{ + return 0; +} + diff --git a/Minecraft.Client/Durango/DurangoExtras/DurangoStubs.h b/Minecraft.Client/Durango/DurangoExtras/DurangoStubs.h new file mode 100644 index 00000000..2c15b703 --- /dev/null +++ b/Minecraft.Client/Durango/DurangoExtras/DurangoStubs.h @@ -0,0 +1,9 @@ +#pragma once + +//const char* getConsoleHomePath(); + +DWORD GetFileSize(HANDLE fh,DWORD *pdwHigh); + +DWORD XGetLanguage(); +DWORD XGetLocale(); +DWORD XEnableGuestSignin(BOOL fEnable);
\ No newline at end of file diff --git a/Minecraft.Client/Durango/DurangoExtras/xcompress.dll b/Minecraft.Client/Durango/DurangoExtras/xcompress.dll Binary files differnew file mode 100644 index 00000000..b95e3701 --- /dev/null +++ b/Minecraft.Client/Durango/DurangoExtras/xcompress.dll diff --git a/Minecraft.Client/Durango/DurangoExtras/xcompress.h b/Minecraft.Client/Durango/DurangoExtras/xcompress.h new file mode 100644 index 00000000..c577ad02 --- /dev/null +++ b/Minecraft.Client/Durango/DurangoExtras/xcompress.h @@ -0,0 +1,253 @@ +/************************************************************************ +* * +* xcompress.h -- This module defines the Xbox Compression APIs * +* * +* Copyright (c) Microsoft Corp. All rights reserved. * +* * +************************************************************************/ +#pragma once + +#ifndef _XCOMPRESS_H_ +#define _XCOMPRESS_H_ + +#include <sal.h> + +#ifndef XBOXAPI +#define XBOXAPI +#endif + +#ifdef __cplusplus +#define XCTDEXTERN extern "C" +#else +#define XCTDEXTERN extern +#endif + +#ifdef __cplusplus +extern "C" +{ +#endif + +#pragma warning(push) +#pragma warning(disable: 4200) // zero-sized array + +typedef enum _XMEMCODEC_TYPE +{ + XMEMCODEC_DEFAULT = 0, + XMEMCODEC_LZX = 1 +} XMEMCODEC_TYPE; + +/* + * Data compression flags + */ + +#define XMEMCOMPRESS_STREAM 0x00000001 + +/* + * Data compression functions + */ + +typedef VOID* XMEMCOMPRESSION_CONTEXT; + +XBOXAPI +HRESULT +WINAPI +XMemCreateCompressionContext( + __in XMEMCODEC_TYPE CodecType, + __in_opt CONST VOID* pCodecParams, + __in DWORD Flags, + __deref_out XMEMCOMPRESSION_CONTEXT* pContext + ); + +XBOXAPI +XMEMCOMPRESSION_CONTEXT +WINAPI +XMemInitializeCompressionContext( + __in XMEMCODEC_TYPE CodecType, + __in_opt CONST VOID* pCodecParams, + __in DWORD Flags, + __out_bcount(ContextSize) VOID* pContextData, + __in SIZE_T ContextSize + ); + +XBOXAPI +VOID +WINAPI +XMemDestroyCompressionContext( + __in XMEMCOMPRESSION_CONTEXT Context + ); + +XBOXAPI +SIZE_T +WINAPI +XMemGetCompressionContextSize( + __in XMEMCODEC_TYPE CodecType, + __in_opt CONST VOID* pCodecParams, + __in DWORD Flags + ); + +XBOXAPI +HRESULT +WINAPI +XMemResetCompressionContext( + __in XMEMCOMPRESSION_CONTEXT Context); + +XBOXAPI +HRESULT +WINAPI +XMemCompress( + __in XMEMCOMPRESSION_CONTEXT Context, + __out_bcount_opt( *pDestSize ) VOID* pDestination, + __inout SIZE_T* pDestSize, + __in_bcount( SrcSize ) CONST VOID* pSource, + __in SIZE_T SrcSize + ); + +XBOXAPI +HRESULT +WINAPI +XMemCompressStream( + __in XMEMCOMPRESSION_CONTEXT Context, + __out_bcount_opt( *pDestSize ) VOID* pDestination, + __inout SIZE_T* pDestSize, + __in_bcount( *pSrcSize ) CONST VOID* pSource, + __inout SIZE_T* pSrcSize + ); + +/* + * Data decompression functions + */ + +typedef VOID* XMEMDECOMPRESSION_CONTEXT; + +XBOXAPI +HRESULT +WINAPI +XMemCreateDecompressionContext( + __in XMEMCODEC_TYPE CodecType, + __in_opt CONST VOID* pCodecParams, + __in DWORD Flags, + __deref_out XMEMDECOMPRESSION_CONTEXT* pContext + ); + +XBOXAPI +XMEMDECOMPRESSION_CONTEXT +WINAPI +XMemInitializeDecompressionContext( + __in XMEMCODEC_TYPE CodecType, + __in_opt CONST VOID* pCodecParams, + __in DWORD Flags, + __out_bcount( ContextSize ) VOID* pContextData, + __in SIZE_T ContextSize + ); + +XBOXAPI +VOID +WINAPI +XMemDestroyDecompressionContext( + __in XMEMDECOMPRESSION_CONTEXT Context + ); + +XBOXAPI +SIZE_T +WINAPI +XMemGetDecompressionContextSize( + __in XMEMCODEC_TYPE CodecType, + __in_opt CONST VOID* pCodecParams, + __in DWORD Flags + ); + +XBOXAPI +HRESULT +WINAPI +XMemResetDecompressionContext( + __in XMEMDECOMPRESSION_CONTEXT Context); + +XBOXAPI +HRESULT +WINAPI +XMemDecompress( + __in XMEMDECOMPRESSION_CONTEXT Context, + __out_bcount( *pDestSize ) VOID* pDestination, + __inout SIZE_T* pDestSize, + __in_bcount( SrcSize) CONST VOID* pSource, + __in SIZE_T SrcSize + ); + +XBOXAPI +HRESULT +WINAPI +XMemDecompressStream( + __in XMEMDECOMPRESSION_CONTEXT Context, + __out_bcount( *pDestSize ) VOID* pDestination, + __inout SIZE_T* pDestSize, + __in_bcount( *pSrcSize ) CONST VOID* pSource, + __inout SIZE_T* pSrcSize + ); + +/* + * LZX codec for lossless compression + */ + +typedef struct _XMEMCODEC_PARAMETERS_LZX +{ + DWORD Flags; + DWORD WindowSize; + DWORD CompressionPartitionSize; +} XMEMCODEC_PARAMETERS_LZX; + +#define XCOMPRESS_LZX_BLOCK_SIZE (32 * 1024) +#define XCOMPRESS_LZX_BLOCK_GROWTH_SIZE_MAX 6155 + +/* + * Error codes + */ + +#define XMCDERR_MOREDATA _HRESULT_TYPEDEF_(0x81DE2001) + +/* + * Compression file headers + */ + +#define XCOMPRESS_FILE_IDENTIFIER_LZXTDECODE 0x0FF512ED +#define XCOMPRESS_FILE_IDENTIFIER_LZXNATIVE 0x0FF512EE + +#define XCOMPRESS_SET_FILE_VERSION(Major, Minor) ((((Major) & 0xFF) << 8) | ((Minor) & 0xFF)) +#define XCOMPRESS_GET_FILE_VERSION_MAJOR(Version) (((Version) >> 8) & 0xFF) +#define XCOMPRESS_GET_FILE_VERSION_MINOR(Version) ((Version) & 0xFF) + +#define XCOMPRESS_LZXNATIVE_VERSION_MAJOR 1 +#define XCOMPRESS_LZXNATIVE_VERSION_MINOR 3 + +typedef struct _XCOMPRESS_FILE_HEADER +{ + DWORD Identifier; + WORD Version; + WORD Reserved; +} XCOMPRESS_FILE_HEADER; + +typedef struct _XCOMPRESS_FILE_HEADER_LZXNATIVE +{ + XCOMPRESS_FILE_HEADER Common; + DWORD ContextFlags; + XMEMCODEC_PARAMETERS_LZX CodecParams; + DWORD UncompressedSizeHigh; + DWORD UncompressedSizeLow; + DWORD CompressedSizeHigh; + DWORD CompressedSizeLow; + DWORD UncompressedBlockSize; + DWORD CompressedBlockSizeMax; +} XCOMPRESS_FILE_HEADER_LZXNATIVE; + +typedef struct _XCOMPRESS_BLOCK_HEADER_LZXNATIVE +{ + DWORD CompressedBlockSize; + BYTE pCompressedData[0]; +} XCOMPRESS_BLOCK_HEADER_LZXNATIVE; + +#pragma warning(pop) + +#ifdef __cplusplus +} +#endif + +#endif /* _XCOMPRESS_H_ */ diff --git a/Minecraft.Client/Durango/DurangoExtras/xcompress.lib b/Minecraft.Client/Durango/DurangoExtras/xcompress.lib Binary files differnew file mode 100644 index 00000000..efc72de8 --- /dev/null +++ b/Minecraft.Client/Durango/DurangoExtras/xcompress.lib |
