Commit graph

52 commits

Author SHA1 Message Date
KaoruBoy 015c368fc1
Don't block KEYDOWN messages (#698) 2026-03-06 13:00:53 -06:00
Kevin ea65542c1b
Add Chat / Pastes / Formatting (#682)
* Initial fixes for ContainerSetSlotPacket and CraftItemPacket

* Chat: paste, history, § formatting, 1-9 block when open (Windows64)

Made-with: Cursor

* static_cast refactor
2026-03-06 09:52:28 -06:00
kuwa 182d76f391
Introduce uid.dat (offline PlayerUIDs), fix multiplayer save data persistence (#536)
* fix: fix multiplayer player data mix between different players bug

Fixes a Win64 multiplayer issue where player data (`players/*.dat`) could be mismatched because identity was effectively tied to connection-order `smallId` XUIDs.
Introduces a deterministic username-derived persistent XUID and integrates it into the existing XUID-based save pipeline.

- Added `Windows64_NameXuid` for deterministic `name -> persistent xuid` resolution
- On Win64 login (`PlayerList`), set `ServerPlayer::xuid` from username-based resolver
- Aligned local player `xuid` assignment (`Minecraft`) for create/init/respawn paths to use the same resolver
- Added Win64 local-self guard in `ClientConnection::handleAddPlayer` using name match to avoid duplicate local remote-player creation
- Kept `IQNet::GetPlayerByXuid` compatibility fallback behavior, while extending lookup to also resolve username-based XUIDs
- Moved implementation to `Minecraft.Client/Windows64/Windows64_NameXuid.h`; kept legacy `Win64NameXuid.h` as compatibility include

Rename migration is intentionally out of scope (same-name identity only).

* fix: preserve legacy host xuid (base xuid + 0) for existing world compatibility

- Add legacy embedded host XUID helper (base + 0).
- When Minecraft.Client is hosting, force only the first host player to use legacy host XUID.
- Keep name-based XUID for non-host players.
- Prevent old singleplayer/hosted worlds from losing/mismatching host player data.

* update: migrate Win64 player uid to `uid.dat`-backed XUID and add XUID based duplicate login guards

- Replace Win64 username-derived XUID resolution with persistent `uid.dat`-backed identity (`Windows64_Xuid` / `Win64Xuid`).
- Persist a per-client XUID next to the executable, with first-run generation, read/write, and process-local caching.
- Keep legacy host compatibility by pinning host self to legacy embedded `base + 0` XUID for existing world/playerdata continuity.
- Propagate packet-authoritative XUIDs into QNet player slots via `m_resolvedXuid`, and use it for `GetXuid`/`GetPlayerByXuid` with legacy fallback.
- Update Win64 profile/network paths to use persistent XUID for non-host clients and clear resolved identity on disconnect.
- Add login-time duplicate checks: reject connections when the same XUID is already connected (in addition to existing duplicate-name checks on Win64).
- Add inline compatibility comments around legacy/new identity coexistence paths for easier future maintenance.

* update: ensure uid.dat exists at startup in client mode for multiplayer
2026-03-06 00:01:36 -06:00
Vincent Zhang 73cc345f54
Add a launch argument for full screen (#663)
* per user config should be .gitignored

* add comment surrounding gitignore update

* make it wildcard

* add fullscreen to launch option struct

* remove redundant forward declaration and use fullscreen launch option in main
2026-03-05 22:54:30 -06:00
catdbg ee24488ab6
Fix audio settings resetting on launch (#610) 2026-03-05 15:09:36 -06:00
dtentiion aadb511504
Fix save list, delete save, exit without saving, and blank username on Windows64 (#539)
* Fix world save rename not applying new name

KeyboardCompleteWorldNameCallback had no _WINDOWS64 branch, so the
typed name was validated then silently discarded on every rename attempt.

Write the new name to a worldname.txt sidecar file next to the save
(Windows64\GameHDD\{folder}\worldname.txt) and update the in-memory
display name immediately. ReadLevelNameFromSaveFile now checks for this
sidecar first so renamed saves persist correctly across restarts.

* Fixed gamertag being blank upon renaming and re-joining a save

* Save deletion fix, exiting without saving fix

* Add native in-game keyboard UI for world naming and renaming
2026-03-05 14:57:37 -06:00
ModMaker101 cbcf3de358
Fix gamma slider via pixel shader #178 (#481)
* Fix gamma slider via pixel shader #178

* LCE-like gamma using postprocess shader
2026-03-06 02:41:17 +07:00
void_17 55231bb8d3
Remove AUTO_VAR macro and _toString function (#592) 2026-03-06 02:11:18 +07:00
Alezito2008 053eb0119c
Fix F3 opening host menu (#522)
* Fix debug menu opening game info menu

* remove redundant F4 handling
2026-03-05 14:26:19 +07:00
Marlian 3f1388e06f
Persist fullscreen setting and start windowed mode maximized (#446)
Save fullscreen toggle state to options.txt when F11 is pressed, and restore it on the next launch. When starting in windowed mode, the window now opens maximized instead of at a smaller default size.

Previously, g_isFullscreen was hardcoded to false and never persisted, so the game always started in windowed mode. The window also started at a non-maximized size requiring manual maximization.

Fixes #391
2026-03-05 03:50:06 +07:00
Fayaz Shaikh 9372887aef
Fix for any aspect ratio in 3D Environments (#320)
* Add initial AnyAspectRatio support

* Remove some logic that didn't work

* Remove rogue back slash

* Remove more remnants

* Update UILayer.h

* Update some comments

* Remove WIP UI changes

* Fix diffs

* Remove UI resize call from `UpdateAspectRatio`

* handle merge conflict

* Update to C++ style static cast

* Fix syntax
2026-03-05 02:13:58 +07:00
daoge_cmd 1dc8a005ed refactor: refactor KBM input code 2026-03-05 01:12:48 +08:00
Loki Rautio ea17b152b7 Restore username.txt loading without conflict
Still allows for -name launch argument, but restores old expected behavior
2026-03-04 05:57:56 -06:00
Loki Rautio 0993e628ab Disable automatic Windows account username
This could reveal someone's private information on a livestream or video.
We need a long-term username implementation
2026-03-04 05:44:16 -06:00
daoge_cmd d112090fde feat: headless server 2026-03-04 17:29:43 +08:00
daoge_cmd 8ecfc52547 feat: add support for username, IP, and port configuration via launch arguments 2026-03-04 15:33:52 +08:00
rtm516 b1b622c303
Fix overlapping debug menus and screens (#294)
* Fix overlapping debug menus and screens

Also resolves a formatting issue with clang-format

* Update readme
2026-03-04 12:31:47 +08:00
Slenderman ac480f6745
Update username logic and implement latest LCEMP changes (#311)
* Update username logic and implement latest LCEMP changes

* Update old reference

* Fix tutorial world crash

* Restore deleted comment
2026-03-04 04:50:28 +07:00
Slenderman 515f91cad8
Fix player save data issue & multiple username implementations (#257)
* fix saving issue & multiple username implementations

* Update README.md

Updated the method for overriding in-game username from '-name' to 'username.txt'.

* remove unused include i forgot to get rid of while testing
2026-03-03 23:58:22 +07:00
4win 7ce1fa3452
feat: bind F1 to toggle the HUD settings (#244) 2026-03-03 13:32:26 +08:00
void_17 b42a4a4e4d
Revert "Revert "Win64: configurable username (username.txt) and persistent ga…" (#235)
This reverts commit 7f7d99501c.
2026-03-03 10:31:09 +07:00
void_17 7f7d99501c
Revert "Win64: configurable username (username.txt) and persistent game setti…" (#234)
This reverts commit b8a7f816b5.
2026-03-03 10:23:28 +07:00
void_17 a5e3cb04b3 Remove #203 core code before a cleaner implementation 2026-03-03 08:45:26 +07:00
void_17 dea460381f Remove dyn_SetProcessDpiAwareness 2026-03-03 07:00:55 +07:00
dtentiion b8a7f816b5
Win64: configurable username (username.txt) and persistent game settings (settings.dat) (#195) 2026-03-03 07:50:45 +08:00
lspepinho 8b28c20d7a
Fixes for PR #96 (#170)
* Implement basic multiplayer functionality

* Update README.md

---------

Co-authored-by: Slenderman <ssimulpong@outlook.com>
2026-03-03 06:30:22 +07:00
DetectivEren f731a68422
TAB key opens up game info instead of host options (#204)
* TAB key opens up game info instead of host options

TAB key opens up game info menu instead of host options menu because the player accesses host options from game info

* Update README.md
2026-03-03 06:23:59 +07:00
Fayaz Shaikh 41ded31af8
Add dynamic resolution (#203) 2026-03-03 06:04:53 +07:00
Andrew f917335b13
Fix Windows64 mouse capture and static initialization crashes (#177) 2026-03-03 03:17:10 +07:00
void_17 5a9e512117
Restore Windows 7 compatibility (#160)
* Call SetProcessDpiAwareness via GetProcAddress to preserve Windows 7 compatibility

Shcore.dll and SetProcessDpiAwareness were introduced in Windows 8 and higher, so to keep compatibility with Windows 7, we use GetProcAddress to call this function dynamically, avoiding linker writing binary dependency on shcore.dll in the import table

* Revert "Call SetProcessDpiAwareness via GetProcAddress to preserve Windows 7 compatibility"

This reverts commit f1f397fdbe.

* Reapply the fix
2026-03-03 03:20:24 +08:00
Alex a4691f58e8
Only handle host options when there is no menu on screen (#140) 2026-03-02 23:02:52 +07:00
void_17 7ad6102763
Revert "Revert "fix: fix resolution detection (#133)" (#143)" (#144)
This reverts commit 8c18926d59.
2026-03-02 23:01:57 +07:00
void_17 8c18926d59
Revert "fix: fix resolution detection (#133)" (#143)
This reverts commit afa4efbc85.
2026-03-02 22:56:56 +07:00
daoge afa4efbc85
fix: fix resolution detection (#133)
* fix: fix UI skin/scene resolution mismatch and readd screen resolution detection

* fix: fix build in vs2022
2026-03-02 23:52:18 +08:00
Jean 59339a7afc
Bound F3 and F4 to open debug menus (#94)
* feat: Added f3 and f4 keys to open debug stuff

* fix: only open debug overlay when ingame, to avoid crashes

* docs: added keybinds to docs

* docs: moved the keybinds to the bottom, as they are less important

* fix: add missing # ifdef
2026-03-02 20:00:02 +07:00
DFelipeh f9b266e02c
add minecraft icon to windows version (#126) 2026-03-02 19:03:40 +07:00
void_17 df2925a4ed Fix Iggy player crashes on systems with DPI changed
The code that was supposed to make the game DPI-aware was broken. I remove it until a proper implementation.
2026-03-02 13:32:41 +07:00
Vvis 75bf7ee54a
Allow TAB to open host options (#97) 2026-03-02 13:33:18 +08:00
void_17 99a8c53bc1
Merge pull request #33 from APAmk2/main
Windows: More proper shutdown
2026-03-02 01:28:47 +07:00
Galen Guyer ec61d19d78 Revert "Merge pull request #25 from NEVARLeVrai/main"
This reverts commit 33e1b5ceb9, reversing
changes made to 44b68333a3.
This is a hacky way of doing it instead of just copying the assets that are needed
2026-03-01 13:14:36 -05:00
APAmk2 3db164d913 Windows: More proper shutdown 2026-03-01 22:13:44 +04:00
NΞVΛR e23945a020 Fixed performance issue
thx to @void2012
2026-03-01 18:40:09 +01:00
NΞVΛR fa25430694 Fix for exe not running, not founding the project directory
In _tWinMain (Windows64_Minecraft.cpp) add logic to detect if the executable path contains "\\x64\\". If found, truncate the path at that position, append "\\Minecraft.Client" and call SetCurrentDirectoryA to set the process working directory. This ensures relative resource paths resolve correctly when running from an x64 build output directory; the change is guarded by a substring check and uses MAX_PATH-safe APIs.
2026-03-01 18:19:38 +01:00
daoge_cmd 47e00f7b62 feat: improve mouse input handling 2026-03-02 00:43:04 +08:00
hehcker e16600a3e6
fix: render issues on release builds (#16) 2026-03-02 00:06:51 +08:00
void_17 754303b327
Fix compilation for Clang-cl (#10)
1. Converted `MinecraftWindows.rc` and `Resource.h` to UTF-8 from UTF-16(they didn't use any UTF-16 symbols anyway);

2. Added explicit signed->unsigned integer casts in `gdraw_d3d1x_shared.inl` for C++11 compatibility

3. Linked against `legacy_stdio_definitions.lib` to avoid undefined references to `_vsnprintf` llvm-link errors
2026-03-01 23:29:08 +08:00
daoge_cmd 5fa4418adb feat: implement per-frame mouse look for reduced input latency on Windows 2026-03-01 21:50:44 +08:00
daoge_cmd 8b1dafd361 feat: add DPI awareness and auto-detect screen resolution 2026-03-01 21:22:02 +08:00
daoge_cmd 4c81c7960c feat: fullscreen mode 2026-03-01 21:05:16 +08:00
daoge_cmd 52a256562f feat: disable vsync 2026-03-01 20:12:58 +08:00