A port of Minecraft: Legacy Console Edition (4J Studios, Xbox 360 build) to Xbox Series S Dev Mode as a UWP application. The game runs natively — no emulation.
Status: Fully playable in-world. B button, sky rendering, and chunk loading all working.
The Xbox 360 Win64 game binary (MinecraftClient.dll) runs inside a thin UWP shell (LCE.Xbox.exe). The shell creates a D3D11 device and CoreWindow swap chain on the main thread, then spawns a background thread that loads the game DLL and calls the exported GameMain(device, ctx, swapChain, featureLevel) entry point. The game stores the injected D3D objects in globals and skips its own device creation — everything runs in the same process with no cross-process overhead.
Three shim DLLs handle platform differences transparently:
| Shim | Purpose |
|---|---|
dxgi.dll |
Intercepts CreateSwapChain → CreateSwapChainForCoreWindow |
xactengine3_7.dll |
XAudio2 backend for XACT .xwb/.xsb audio banks |
xinput9_1_0.dll |
Passes Xbox controller input through to the game |
- B button — Xbox Dev Mode shell posts
WM_QUITto the game thread on B press. The game loop now swallowsWM_QUITwhen running on Xbox, andSystemNavigationManager::GetForCurrentView()->BackRequestedis marked handled so the UWP shell never suspends. - Black horizon — Sky plane geometry extended from 384 to 512 units so it covers the full far clip at all camera angles.
- Swap chain —
FLIP_DISCARDreplacesFLIP_SEQUENTIALfor correct single-frame rendering.
- Visual Studio 2022 with:
- Desktop development with C++ workload
- Universal Windows Platform development workload
- Windows 10 SDK (10.0.19041.0 or later)
- Python 3 + Pillow (
pip install Pillow) — for placeholder assets - Xbox Dev Mode activated on your console
ghCLI authenticated (gh auth login) for release management
LCEDevMode/
LCE.Xbox/ UWP shell (IFrameworkView, D3D init, CoreWindow pump)
App.cpp Main shell — D3D setup, game thread, BackRequested hook
SharedSurface.h Shared memory layout
Package.appxmanifest UWP identity: BanditVault.LCEPort
Shims/
DXGIShim/ CreateSwapChain intercept
AudioShim/ XACT3 → XAudio2 shim
StorageShim/ Xbox Live save APIs → flat-file I/O
source/ LCE game source (read-only reference — never edit)
PackageContent/ Assembled package tree (output of build.ps1)
LCEDevMode.sln Visual Studio solution
build.ps1 Full build + package + sign pipeline
generate_assets.py Generates placeholder UWP tile/splash images
python generate_assets.py.\build.ps1 -Config ReleaseProduces a signed LCE_Xbox.appx in the project root.
- Open Xbox Device Portal:
https://<xbox-ip>:11443 - Go to My games & apps → Add and upload
LCE_Xbox.appx - Launch from the Dev Home dashboard
- In Dev Home, highlight the app → View button → View details → set App type to Game
Download LCE_Xbox.appx from the latest release and sideload via Device Portal. No build required.
Note: The package is signed with a self-signed dev certificate (
CN=BanditVault). Xbox Dev Mode accepts self-signed packages without needing the certificate installed separately.
- Audio shim parses
.xwb/.xsbbanks but full XACT cue playback is not yet wired toSoundEngine.cpp - UWP tile images are placeholder — not representative of the game
- Sentient telemetry and Xbox Live leaderboard stubs produce log spam but are functionally harmless
Port by BanditVault / veroxsity
Ko-fi: ko-fi.com/veroxsity
Minecraft: Legacy Console Edition is the property of Mojang/Microsoft. This project is for preservation and research purposes only.
