Repository navigation
BedrockOnLinux 2.2.6
Fixed
-
Minecraft 1.26.50 and newer start again instead of crashing at 78–82 %
(#266,
#269). Every
1.26.50.4 and 1.26.51.1 launch died on the loading screen with an unhandled
page fault reading0x68, on Intel, AMD and NVIDIA alike, and so did the
1.26.50 Minecraft Previews (#154, #267, #270, #271, #272). The launcher
caused it, not the game or the engine: to hide the in-game Sign-in button it
moved the compiled UI archive,ui.brarchive, aside so that the loose
JSON-UI files next to it would load instead — and 1.26.50 no longer ships
those files. The game was left with no user interface at all and crashed
while building its first screen. The archive now stays where the game
expects it, and the button is hidden by editing the start screen inside the
archive itself; an untouched copy is kept beside it as
ui.brarchive.bol-orig, and is put back on its own if the edited archive
ever fails to read back. PLAY also repairs an install an earlier launcher
already broke — including one whose__brarchivefolder was made read-only
to work around the crash — so nothing has to be moved back by hand. Builds
up to 1.26.45 keep the old behaviour. Contributed by
@jtdubs. -
Friends, Realms and featured servers work again on Minecraft 1.26.50 and
newer (#266,
#269). With the crash
out of the way, 1.26.50 still came up half offline for a signed-in player:
Social showed no friends, the Realms tab spun forever with its buttons
disabled, and featured servers kept a greyed-out Play button. 1.26.50 moves
the game's Xbox Live services into a new library built against a newer
Microsoft GDK, and that library asks the Xbox runtime for its system
interface under an ID the engine did not recognise — refused, the services
never started. The engine now answers every revision of that interface the
game's libraries ask for; all of them only use the sandbox query it already
implemented. Checked on 1.26.51.1: Social counts the friends online, Realms
offers its invitations, and featured servers can be joined. This needs the
new engine,wow64-archs-native18, which the launcher downloads on its own.
Contributed by @jtdubs. -
The in-game mouse no longer goes dead on machines with an AIO cooler, a
fan or RGB controller, or a similar USB gadget
(#262). The cursor
moved, but Minecraft saw no hover and no clicks, while the keyboard kept
working.
Wine's HID bus opens every/dev/hidrawnode the user can open, and the
devices that shipuaccessudev rules for their Linux tools can be.
Some of them send input reports longer than their own descriptor declares
(an NZXT 1e71:1714 declares 21 bytes and sends 64), and Wine copies the
whole report into a buffer sized from the descriptor, in winebus's
deliver_next_reportand again in hidclass'shid_device_queue_input.
The heap corruption crashedwinedevice.exeat every start, and that
process hosts the whole HID stack, Wine's virtual mouse included, so
GameInput had no mouse left to read. PLAY now writes winebus's per-device
Hidraw= 0 option for every hidraw device Wine could open that is not a
game controller: Minecraft gets its mouse and keyboard from Wine's virtual
devices, and controllers keep hidraw exactly as before.doctorlists the
devices it covers, andBOL_HIDRAW=allgives them back to Wine.
Contributed by @Leif-Yggdrasil. -
The version picker can be told to check for a new build right now
(#268).
The list of installable Minecraft builds is fetched once per launch and
then cached for up to 12 hours, so a build that Mojang shipped after that
fetch stayed invisible until the cache aged out on its own — restarting
the launcher changed nothing, because the ordinary path only refetches
once per launch too. The version picker now has a ↻ button that bypasses
the cache and re-checks the build index on the spot;bedrock-on-linux versions --refreshdoes the same on the command line — the wall players
looking for 1.26.50.4 on the day it came out ran into (#266).
Contributed by @Queuereel. -
Updating the game engine no longer needs room for every engine you ever
had. Each engine revision is an ~860 MB download the launcher keeps in its
cache, and nothing ever removed one once a newer revision was pinned — a
machine that followed every update carried gigabytes of archives no launcher
would open again. An update has to fit the new archive and its 2.5 GB
unpacked engine before the old one goes, so on a nearly full disk those
leftovers turned this release's engine update into a launcher refusing its
own engine. The archives of other engine revisions are now removed before
the new one is downloaded; the archive of the engine in use stays. -
PLAY no longer redoes an Xbox Live sign-in it already just finished.
Every launch minted a fresh device, user, XBL, XSTS and SISU token chain —
eight sequential requests to Microsoft/Xbox — even when the previous launch
had done exactly that a minute earlier and the tokens were still good for
hours. The background warm-up that runs while you're still looking at the
account row (_warm_xbox_preauth) already does this work; PLAY was simply
throwing it away and starting over, worth roughly ten seconds of the wait
before Minecraft's window appears. PLAY now reuses a cached token chain
when it still has a comfortable margin left, and only re-runs the chain
when that margin has run out or the tokens are missing outright.
Build provenance
Application artifacts built from source, consuming this
fork's attested, pinned engine and OpenSSL-XCurl set.
Bill of materials (pinned + reproducible):
- Managed engine: wow64-archs-native18 (sha256 e0ead91c3003ff6d4e01995dc8590d21603251d2e71a51c594eab0c3271eabff)
- WineGDK source: 75637b674e1f191e65753663c4c0c32bea05ba6e (prefix sha256 5e790543d13a42b594df03dc9adfad16980cfd471ed8f1cfcbc55718e1791e25)
- vkd3d-proton: 3.0.1-nv-dgc (output-hashes sha256 09d22ca93ae4b0a2f99294a43cec6a89a2bd92b96dffb14f2fcc5cf66685b3df)
- OpenSSL-XCurl set: 504bb166e4e7
Verify any file with:
gh attestation verify <file> --repo Wyze3306/BedrockOnLinux
What's Changed
- fix(auth): reuse a fresh Xbox Live token chain at PLAY instead of refetching it by @xRookieFight in #254
- fix(hidraw): keep non-controller hidraw devices off Wine's HID bus by @Leif-Yggdrasil in #262
- Added the refresh button when pressing on the version selector by @Queuereel in #268
- fix(ui): resolve 1.26.50+ crash at 78% and vendor WineGDK IXSystemImpl patch (#266) by @jtdubs in #269
New Contributors
- @xRookieFight made their first contribution in #254
- @Leif-Yggdrasil made their first contribution in #262
- @Queuereel made their first contribution in #268
- @jtdubs made their first contribution in #269
Full Changelog: v2.2.5...v2.2.6