aboutsummaryrefslogtreecommitdiff
path: root/Minecraft.Client/Durango/DurangoExtras
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/Durango/DurangoExtras
parentdef8cb415354ac390b7e89052a50605285f1aca9 (diff)
Initial commit
Diffstat (limited to 'Minecraft.Client/Durango/DurangoExtras')
-rw-r--r--Minecraft.Client/Durango/DurangoExtras/DurangoStubs.cpp128
-rw-r--r--Minecraft.Client/Durango/DurangoExtras/DurangoStubs.h9
-rw-r--r--Minecraft.Client/Durango/DurangoExtras/xcompress.dllbin0 -> 36864 bytes
-rw-r--r--Minecraft.Client/Durango/DurangoExtras/xcompress.h253
-rw-r--r--Minecraft.Client/Durango/DurangoExtras/xcompress.libbin0 -> 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
new file mode 100644
index 00000000..b95e3701
--- /dev/null
+++ b/Minecraft.Client/Durango/DurangoExtras/xcompress.dll
Binary files differ
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
new file mode 100644
index 00000000..efc72de8
--- /dev/null
+++ b/Minecraft.Client/Durango/DurangoExtras/xcompress.lib
Binary files differ