A certain block game
Find a file
MrTheShy 7cd990eefb Split-screen UI system with full ultrawide and multi-aspect-ratio support
Screen resolution is now auto-detected from the monitor at startup
instead of being hardcoded to 1920x1080. This fixes rendering on
ultrawide (21:9), super-ultrawide (32:9), 16:10, and any other
aspect ratio -- both in singleplayer and split-screen multiplayer.

The 3D world renders at native resolution so the full monitor is used.
Flash UI is 16:9-fitted and centered inside each viewport, pillarboxed
on wide displays and letterboxed on tall ones. Logical game dimensions
(used for ortho projection and HUD layout) are computed proportionally
from the real screen aspect ratio, fixing the stretched world projection
and HUD that the old hardcoded 1280x720 caused on non-16:9 monitors.

GameRenderer::ComputeViewportForPlayer uses the actual backbuffer size
instead of the logical game size, which was causing split-screen
viewports to be sized incorrectly.

UIScene::render fits menus to 16:9 within each split viewport using
GetViewportRect + Fit16x9, keeping inventory/crafting/options screens
at their designed aspect ratio instead of stretching.

Panorama and MenuBackground render at full viewport size with proper
tile scaling so the background fills the entire area without gaps in
vertical split and quadrant layouts.

HUD tile rendering uses ComputeTileScale to uniformly scale the SWF
and show the bottom portion (hotbar, hearts, hunger) in horizontal
and quadrant splits. repositionHud passes visible SWF-space dimensions
to ActionScript for proper element centering within each viewport.

Chat and Tooltips overlays use ComputeTileScale and
ComputeSplitContentOffset to anchor correctly to the bottom of each
player's viewport tile.

Container menus apply Fit16x9 to pointer coordinate mapping so the
cursor tracks correctly in split-screen. getMouseToSWFScale moved out
of the header into the .cpp. Mouse input in onMouseTick is gated to
pad 0 since raw mouse deltas should only drive player 1.

All shared viewport math lives in UISplitScreenHelpers.h:
- GetViewportRect: origin and dimensions for any viewport type
- Fit16x9: aspect-correct fitting with centering offsets
- ComputeTileScale: uniform scale and Y-offset for tile rendering
- ComputeSplitContentOffset: content centering for overlay components
2026-03-07 02:02:08 +01:00
.github Add issue templates again (#457) 2026-03-05 15:33:38 -06:00
cmake Miniaudio Implementation (+stb_vorbis) (#624) 2026-03-06 07:48:12 +07:00
Minecraft.Client Split-screen UI system with full ultrawide and multi-aspect-ratio support 2026-03-07 02:02:08 +01:00
Minecraft.World Fix crash in WriteHeader when save buffer is too small for header table 2026-03-06 13:26:14 +01:00
x64 Initial commit 2026-03-01 12:16:08 +08:00
.clang-format Fix overlapping debug menus and screens (#294) 2026-03-04 12:31:47 +08:00
.clang-tidy Remove AUTO_VAR macro and _toString function (#592) 2026-03-06 02:11:18 +07:00
.gitignore Add saves folder to .gitignore (#184) 2026-03-03 06:26:20 +07:00
CMakeLists.txt fix: properly detect host env. (#628) 2026-03-06 07:54:40 +07:00
COMPILE.md docs: clarify platform support and building requirements in README.md and COMPILE.md 2026-03-03 05:43:32 +08:00
CONTRIBUTING.md Add Contributor's Guide, update README 2026-03-05 07:23:01 -06:00
MinecraftConsoles.sln Add ARM64EC Support (#174) 2026-03-03 03:06:21 +07:00
README.md Added missing dots and linked official Microsoft VS 2022 Community Edition mirror in the build instructions. (#626) 2026-03-06 07:56:28 +07:00

MinecraftConsoles

Discord

Tutorial World

Introduction

This project contains the source code of Minecraft Legacy Console Edition v1.6.0560.0 (TU19) from https://archive.org/details/minecraft-legacy-console-edition-source-code, with some fixes and improvements applied.

Nightly Build

Platform Support

  • Windows: Supported for building and running the project
  • macOS / Linux: The Windows nightly build may run through Wine or CrossOver based on community reports, but this is unofficial and not currently tested by the maintainers

Features

  • Fixed compilation and execution in both Debug and Release mode on Windows using Visual Studio 2022
  • Added support for keyboard and mouse input
  • Added fullscreen mode support (toggle using F11)
  • (WIP) Disabled V-Sync for better performance
  • Added a high-resolution timer path on Windows for smoother high-FPS gameplay timing
  • Device's screen resolution will be used as the game resolution instead of using a fixed resolution (1920x1080)
  • LAN Multiplayer & Discovery
  • Added persistent username system via "username.txt"

Multiplayer

Basic LAN multiplayer is available on the Windows build

  • Hosting a multiplayer world automatically advertises it on the local network
  • Other players on the same LAN can discover the session from the in-game Join Game menu
  • Game connections use TCP port 25565 by default
  • LAN discovery uses UDP port 25566

This feature is based on LCEMP

Launch Arguments

Argument Description
-name <username> Sets your in-game username.
-server Launches a headless server instead of the client.
-ip <address> Client mode: manually connect to an IP. Server mode: override the bind IP from server.properties.
-port <port> Client mode: override the join port. Server mode: override the listen port from server.properties.

Example:

Minecraft.Client.exe -name Steve -ip 192.168.0.25 -port 25565

Headless server example:

Minecraft.Client.exe -server -ip 0.0.0.0 -port 25565

The headless server also reads and writes server.properties in the working directory. If -ip / -port are omitted in -server mode, it falls back to server-ip / server-port from that file. Dedicated-server host options such as trust-players, pvp, fire-spreads, tnt, difficulty, gamemode, spawn-animals, and spawn-npcs are persisted there as well.

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
  • Drop Item: Q
  • Crafting: C Use Q and E to move through tabs (cycles Left/Right)
  • Toggle View (FPS/TPS): F5
  • Fullscreen: F11
  • Pause Menu: Esc
  • Attack / Destroy: Left Click
  • Use / Place: Right Click
  • Select Item: Mouse Wheel or keys 1 to 9
  • Accept or Decline Tutorial hints: Enter to accept and B to decline
  • Game Info (Player list and Host Options): TAB
  • Toggle HUD: F1
  • Toggle Debug Info: F3
  • Open Debug Overlay: F4
  • Toggle Debug Console: F6

Build & Run

  1. Install Visual Studio 2022.
  2. Clone the repository.
  3. Open the project by double-clicking MinecraftConsoles.sln.
  4. Make sure Minecraft.Client is set as the Startup Project.
  5. Set the build configuration to Debug (Release is also OK but has some bugs) and the target platform to Windows64, then build and run.

CMake (Windows x64)

cmake -S . -B build -G "Visual Studio 17 2022" -A x64
cmake --build build --config Debug --target MinecraftClient

For more information, see COMPILE.md.

Known Issues

  • Native builds for platforms other than Windows have not been tested and are most likely non-functional. The Windows nightly build may still run on macOS and Linux through Wine or CrossOver, but that path is unofficial and not currently supported

Contributors

Would you like to contribute to this project? Please read our Contributor's Guide before doing so! This document includes our current goals, standards for inclusions, rules, and more.

Star History

Star History Chart