Files
Racoon-MinecraftConsoles/README.md
2026-05-14 17:24:36 +01:00

6.3 KiB

Minecraft Consoles

A community-maintained source port and modernization effort for Minecraft: Legacy Console Edition (TU19 codebase).

The goal is simple: preserve the original LCE gameplay feel while making it practical, stable, and reliable on modern desktop setups.

Project Goals

  • Keep LCE identity and behavior intact
  • Improve runtime stability and crash resistance
  • Improve desktop UX (controller + keyboard/mouse)
  • Improve multiplayer reliability (LAN, WAN, relay)
  • Provide a solid base for future extensions/modding

Feature Snapshot

Area Status
Windows Client Available
Windows Dedicated Server Available
LAN Discovery/Join Available
WAN/IP Join Available
LCELive Invites/Signaling/Relay Available
Keyboard + Mouse Available
Controller Support Available
Split-screen (where applicable) Available

Platform Compatibility

Platform Build Support Runtime Support Notes
Windows Yes Yes Primary platform
Linux Cross-compile + Wine Community-tested Unofficial runtime path
macOS No native build Community-tested via Wine/CrossOver Unofficial runtime path
Consoles Code remains in tree Not currently validated by maintainers Desktop priority

Quick Start (Visual Studio)

  1. Install Visual Studio 2022 (or newer) with C++ workloads.
  2. Clone the repository with submodules, or initialize them after cloning:
git submodule update --init --recursive
  1. Open this GAME directory in Visual Studio.
  2. Wait for CMake configure/generation to complete.
  3. Select a configuration such as Windows64 - Debug.
  4. Build and run Minecraft.Client.exe or Minecraft.Server.exe.

Build With CMake

Configure:

cmake --preset windows64

Build client (Debug):

cmake --build --preset windows64-debug --target Minecraft.Client

Build dedicated server (Debug):

cmake --build --preset windows64-debug --target Minecraft.Server

Build release binaries:

cmake --build --preset windows64-release --target Minecraft.Client
cmake --build --preset windows64-release --target Minecraft.Server

For cross-compile and Linux/Nix details, see COMPILE.md.

Running

Client:

cd .\build\windows64\Minecraft.Client\Debug
.\Minecraft.Client.exe

Dedicated server:

cd .\build\windows64\Minecraft.Server\Debug
.\Minecraft.Server.exe -port 25565 -bind 0.0.0.0 -name DedicatedServer

Important: launch from the output directory so relative asset paths resolve correctly.

Controls (Keyboard & Mouse)

  • Movement: W A S D
  • Jump / Fly Up: Space
  • Sneak / Fly Down: Shift hold
  • Sprint: Ctrl hold or double-tap W
  • Inventory: E
  • Chat: T
  • Drop Item: Q
  • Crafting: C
  • Toggle View: F5
  • Fullscreen: F11
  • Pause Menu: Esc
  • Attack / Destroy: left click
  • Use / Place: right click
  • Select Item: mouse wheel or 1 to 9
  • Player List / Host Options: Tab
  • Toggle HUD: F1
  • Toggle Debug Info: F3
  • Open Debug Overlay: F4
  • Toggle Debug Console: F6

Client Launch Arguments

Argument Description
-name <username> Override in-game username
-fullscreen Launch in fullscreen

When signed in to LCELive, the Windows64 client uses your LCELive username in game. If you are signed out, it falls back to username.txt, then Player. The -name launch argument still overrides both for local testing.

Example:

Minecraft.Client.exe -name Steve -fullscreen

Multiplayer Defaults

  • Game port: TCP 25565
  • LAN discovery: UDP 25566
  • Relay/signaling fallback is used when direct paths are unavailable

Logging

Logs are written next to the executable in logs:

  • logs/game.log
  • logs/game.previous.log
  • logs/client.log
  • logs/client.previous.log
  • logs/lcelive.log
  • logs/lcelive.previous.log

client.log is enabled for Windows64 client release builds too. It captures the game-wide app.DebugPrintf stream: world, packet, storage, audio, UI, and gameplay diagnostics. If networking fails, inspect logs/lcelive.log first.

Troubleshooting

Startup fails under Wine

Try Wine built-in D3D11 path instead of DXVK:

WINEDLLOVERRIDES="d3d11,dxgi=b" wine ./Minecraft.Client.exe

Invite/join reliability issues

  • Verify both players are on matching builds
  • Verify logs/lcelive.log on both host and joiner
  • Check for peer known, forwarding active, and session closed timing

Missing media/SWF errors

Ensure game is launched from the correct output folder with Common/Media present.

Dedicated Server

Minecraft.Server loads server.properties from its working directory. If the file is missing or contains invalid values, defaults are auto-generated or normalized on startup. CLI arguments override properties.

Important keys:

Key Values / Range Default Notes
server-port 1-65535 25565 Listen TCP port
server-ip string 0.0.0.0 Bind address
server-name string, max 16 chars DedicatedServer Host display name
max-players 1-8 8 Public player slots
level-name string world Display world name
level-id safe ID string derived from level-name Save folder ID
level-seed int64 or empty empty Empty means random seed
world-size classic, small, medium, large classic World size preset
log-level debug, info, warn, error info Server log verbosity
autosave-interval 5-3600 60 Seconds between autosaves
white-list true or false false Enable access list checks
lan-advertise true or false false LAN session advertisement

Common flags:

  • -port <1-65535>
  • -ip <addr>
  • -bind <addr>
  • -name <name>
  • -maxplayers <1-8>
  • -seed <int64>
  • -loglevel <debug|info|warn|error>

Docker (Dedicated Server)

This repo includes Wine-based Docker flows for dedicated server hosting. Use the compose/start scripts in this GAME directory.

Contributing

Before opening PRs, read CONTRIBUTING.md.

Current review priority:

  • Stability and crash fixes
  • Networking reliability
  • Controller and desktop usability
  • Faithful LCE behavior/presentation