Repository navigation
Releases: aubree-lat/MacOBlox
Release list
Mac O’ Blox 0.21 — Bug fixes
- Fix required-update loops when Roblox requests a different deployment
channel from the launcher's default. Recover the validated version and
upload ID from the client's update response, download that official upload,
and verify the bundle version before replacing the installed client.
Remember and show the client's update channel, handle gated channel checks
without sending copied credentials, and avoid offering older deployments. - Detect whether
pw-catsupports raw audio. Usepacatthrough PipeWire's
PulseAudio server on older versions, including PipeWire 1.0.5. Install the
fallback on Debian/Ubuntu/Mint, retain playback errors in session logs and
fall back after native playback failures. - Apply intentional locked-cursor position changes to the visible overlay and
frozen event coordinates on the event thread. Keep native confinement and
unlock restoration, coalesce repeated requests, and suppress background
cursor warps after focus loss. Shift-lock visibility still needs gameplay
confirmation on the reporting system. - Prevent public Darling source downloads from prompting for Git credentials.
Skip the separate optional Swift SDK LFS downloads and exclude their pointer
placeholders from source installs. The current Roblox client does not link
that runtime; source-built Darling does not gain Swift SDK support.
Packaging and verification
This is a source release. No Flatpak bundle is included in 0.21.
The native shim and framework stubs build successfully; changed Python sources
parse successfully and the installer passes shell syntax checks. The official
0.742 deployment requested in the report has the expected bundle version and
no linked Swift libraries. Mint playback, shift-lock icon visibility and a full
Darling source installation have not been verified on the reporting system.
Install or update
curl -fsSL https://raw.githubusercontent.com/aubree-lat/MacOBlox/main/install.sh | bashMac O’ Blox 0.21patch1 — Bug fixes
Bug fixes
- Repair custom Roblox UI scaling for scroll/magnification positions and first-person mouse-position overrides, preserving physical cursor coordinates and relative camera deltas.
- Rework X11 locked-pointer fallback/recentering using native coordinates and X request serials. Match raw/core timestamps, recover from missing raw motion, and release XI2 event cookies.
- Use the selected AppKit cursor bitmap for the visible locked-cursor overlay.
- Add checksum-verified transport compatibility for Roblox 0.742.0.7421053, alongside existing 0.741 support. Include patch status and unsupported executable hashes in launch logs.
- Include native Wayland cursor bitmap/alpha repairs and AUR, Debian/Ubuntu, Fedora/openSUSE package recipes. Native Wayland and Freedesktop 26.08 Flatpak packaging remain experimental.
Installation
This is a source-only release. Update through the launcher or rerun:
curl -fsSL https://raw.githubusercontent.com/aubree-lat/MacOBlox/main/install.sh | bashCurrent distro package recipes are in packaging on main. No Flatpak bundle is published.
Verification and remaining reports
The shim, native helper and framework stubs build successfully. Changed Python files parse successfully. Gameplay on the reporting systems still needs confirmation. The reported whole-game freezes and Error 256 are not confirmed resolved; the failing client's full log/hash is still needed.
Mac O’ Blox 0.20 — Bug fixes and stability
Mac O’ Blox 0.20 — Bug fixes and stability
Input fixes
- Replace the successful empty Carbon key-label translation with a valid ANSI
fallback layout and bounded printable-key translation. This repairs the
missing keyboard labels used by Roblox's E-key interaction prompts on both
rendering backends; normal AppKit text input keeps its existing path. - Pair custom Roblox UI scaling with absolute mouse-position compensation to
correct the growing click offset at 200% and other custom scales. Preserve
raw camera deltas and native cursor coordinates. Unsupported client input
layouts skip custom scaling and report the reason in the launch log. - Confine camera capture to the native game window, use absolute recentering,
and restore the saved pointer position on unlock. Release capture on focus
loss and window teardown; correct the X11 focus-event window field.
Apply capture changes on the event thread, acknowledge cursor hiding for
each lock transition, and recover from cursor-worker connection failures. - Supply real attributed text substrings for Roblox's composition offsets and
repair Darling's collapsed-selection anchor in the Roblox text handler. - Add optional
MACOBLOX_TRACE_TEXT_INPUT=1diagnostics for typing reports.
They record lengths, ranges and composition state without typed content.
Crash diagnostics
- Record session lifecycle state before cleanup, identify packaging and client
version, and prevent guest log writes from overwriting lifecycle records.
Preserve Darling warmup output and its exit status in the launch log. - Expand opt-in fatal signal coverage and remove unsafe stack scans and
signal-time symbol lookup. Record registers and bounded window-startup
call markers; rename the setting to Crash diagnostics. - Correct misleading EGL retry messages: report whether a retry occurred,
its actual error, and the native window ID.
Stability and responsiveness
- Add Graphics card under Game settings when multiple GPUs are detected.
Store PCI identities, apply Mesa/NVIDIA PRIME selection to both the host
probe and Darwin game, and use the selected adapter's measured VRAM budget.
Automatic preserves desktop/terminal selections; unavailable stored adapters
produce an actionable error instead of silently choosing another GPU. Clear
stale Darling GPU selectors before restoring each session's selection. - Recognize Roblox quitting for a required update even when it exits through
the normal quit sentinel. Offer a fresh official-client download and keep
pending game links until update recovery completes. - Forward the host configuration directory to Linux graphics layers, avoiding
attempts by layers such as LSFG to create settings under Darwin's/Users. - Bound embedded-browser socket work per UI turn and cap queued frames,
callbacks, pages and injected scripts. Dispose old pages and cancel pending
work on disconnect; reject stale replies after a new game session connects.
Release unused guest web views and suppress SIGPIPE on private socket writes. - Serialize Discord IPC, coalesce presence updates on one worker, and disconnect
after incomplete replies. Keep one metadata worker per tracker, atomically
save a bounded game cache, and ignore activity callbacks from ended sessions.
Start tracking only while Rich Presence is enabled and restart it on enable. - Include queued DNS work in the upstream deadline and cap pending queries.
Close active connections on shutdown, bound custom hostname lookups, and honor
short/zero DNS TTLs with aged cached replies. - Limit live-log reading and highlighting per UI update, retain fragmented
UTF-8 lines, and bound displayed text and search matches. Reuse the scroll
mark and preserve the selected search match during automatic updates. - Skip unchanged X11 drawable geometry and visibility requests after validating
the backend ABI and native-window identity. Preserve OpenGL context preparation
and invalidate cached state after off-main-thread changes. - Bound private X11 setup/visual queries to 250 ms and pointer snapshots/cursor
transitions to 100 ms. Retry interrupted I/O, limit reply sizes, suppress
SIGPIPE, and move the one-time Xauthority lookup off input/render callers. - Read shader diagnostic sources from the current GL context instead of a
process-global shader-name cache. Cap diagnostic allocations and avoid extra
compilation-status waits when shader tracing is disabled. - Make watchdog location capture signal-safe with atomic request ownership.
Record only the interrupted instruction pointer without scanning application
stacks or taking dynamic-loader locks. - Poll and clean up game sessions outside GTK's main thread. Keep one watcher
per launch and ignore callbacks from old sessions. - Roll back partially initialized host audio, make audio shutdown idempotent,
and reap microphone recorders after a forced shutdown. - Recognize rootless Flatpak guests and orphans from their loader and mapped
prefix runtime files, restoring game tracking and scoped cleanup without
treating the shared sandbox mount namespace as ownership evidence.
Packaging
This is a source release. No Flatpak bundle is included in 0.20.
Verification and remaining work
The native shim, Wayland helper and framework stubs build successfully;
changed Python sources parse successfully. This stability/performance pass
has not run gameplay checks or benchmarks, and these changes have not been
verified on the reporting users' hardware. E-key prompt visibility and hybrid
laptop GPU offloading still need gameplay confirmation. Keyboard labels use
an ANSI fallback; selecting among multiple proprietary NVIDIA cards with
OpenGL requires an X11 provider selection.
The ordinary-character deletion report, the two previously reported crashes,
the pause after leaving games and intermittent graphics stutters remain under
investigation. Native Wayland remains experimental; Vulkan still uses Zink.
Install/update
Use the source installer to install or update; your sign-in and settings are preserved.
curl -fsSL https://raw.githubusercontent.com/aubree-lat/MacOBlox/main/install.sh | bashMac O’ Blox 0.19 — Bug fixes
Mac O’ Blox 0.19 — Cursor, DNS and UI scaling fixes
Bug fixes and settings
- Fix invisible X11 cursors with Vulkan (Zink), including fast image creation,
cursor changes and recreated drawable windows. - Allow independent Darwin DNS lookups to run concurrently instead of waiting
behind one slow lookup. Retain serialized fallback when resolver isolation
cannot be confirmed. - Add Roblox UI scale in Game settings, from 100–400%. The
dpi_scale
setting now reaches Roblox; 200% enlarges its interface while preserving the
rendering resolution. Default scaling stays at 100%. - Stop adding
DFFlagDisableDPIScalethrough the texture-quality preset.
Existing custom flags are preserved; remove that flag to use UI scaling. - Preserve the Flatpak Mesa driver discovery improvements and show useful
Vulkan probe failures without inheriting Darling's preload library.
Experimental Wayland
- Give concurrent AppKit views separate EGL drawables; repair resizing,
hide/show and drawable lifetime handling. - Repair recursive window lookup and display initialization cleanup.
- Improve NVIDIA Vulkan discovery without X11, while preserving explicit
Vulkan driver selections and filters. - Keep Native Wayland opt-in and experimental; X11 / Xwayland stays the default.
Verification and remaining work
The native shim and helper built successfully. Sixteen compiled regression
fixtures and 99 Python tests passed. Actual Darling/X11 cursor and concurrent
DNS fixtures passed. The production UI scaling wrapper visibly enlarged the
actual Roblox interface at 200%; scaled click alignment still needs an
end-to-end check. Hardware EGL, shared contexts and Wayland window lifecycle
fixtures passed, but full native Wayland client presentation is not verified.
The pause after leaving a game remains unresolved; a focused client reproduced
an approximately 14-second frame gap. Intermittent Vulkan stutters, direct
client Vulkan and the other user's exact crash remain under investigation.
Vulkan rendering still uses Mesa Zink. Custom Darlingserver multiworker builds
are isolated experiments and are not included in this release.
The Flatpak is a testing package; this release does not claim new Flatpak
gameplay verification.
Install/update
Use the source installer in the README, or download the testing Flatpak bundle and its SHA-256 checksum below.
Mac O’ Blox 0.18 — Bug fixes
Mac O’ Blox 0.18 — Bug fixes and first-time setup
New setup experience
- Welcome, setup plan and four progress steps in the terminal installer.
- First-launch welcome → explanation → Roblox installation/progress → ready screen with sign-in guidance.
- Existing Roblox installations open normally; Setup guide in the launcher menu reopens the guide.
- Source installer updates back up local edits and preserve settings, sign-in and app assets.
Repairs
- Raw mouse and right-click camera freezes; correct input event ordering and bounded event processing.
- Requested mouse capture restores after Alt-Tab/focus changes.
- Private Servers/embedded page rendering crash and browser bridge timeout/closure handling.
- Zink context switching, real-window preflight, shader compatibility, GPU memory reporting and frame pacing.
- Faster Darling file-close cleanup during the initial leave transition, event wakeups and correct lock error returns.
- Process cleanup stays within the selected Darling prefix using stable process handles.
Verification
Actual-client input, focus, Private Servers and initial leave transitions were checked on an RTX 3060 Ti using Xwayland. Native regressions and mocked launcher/process regressions passed. The native shim/frameworks built successfully; installer and new setup syntax checks and a private visual preview passed. System package installation was not repeated. New setup copy currently falls back to English for Russian.
Still unfinished
The later approximately 10–11 second pause after leaving a game remains under investigation. Intermittent graphics stutters need more gameplay measurements. Vulkan gameplay still uses Mesa Zink; native Metal-to-Vulkan is an offscreen prototype. Native Wayland remains opt-in and experimental, with full client support unfinished.
Install/update
Run the source installer from the README. The Flatpak bundle is a testing build, with a SHA-256 checksum alongside it; this release does not claim a new Flatpak gameplay validation.
Mac O’ Blox 0.17
Mac O’ Blox 0.17 restores the standard GNOME interface and adds optional renderer and performance-overlay controls.
Changes
- Restored the stock GTK/libadwaita launcher layout.
- Added Vulkan (Zink, experimental) in Settings → Environment → Game → Renderer. Native OpenGL remains the default. Zink runs Roblox's OpenGL renderer through Vulkan on Linux; this does not enable a native Roblox Vulkan or Metal backend.
- Added a default-off MangoHud overlay switch beside the renderer setting. It displays FPS, frametimes and CPU/GPU usage with both native OpenGL and Vulkan/Zink. Install MangoHud and restart Roblox after enabling it.
- Added a visible cursor overlay during camera capture, with focus-loss cleanup.
- Replaced contended bookkeeping spin loops with sleeping locks and made cursor-worker notifications nonblocking.
- Fixed generated GLSL array-index arithmetic affecting NVIDIA shader compilation, reduced redundant shader-status queries, and added a persistent NVIDIA shader cache.
- Corrected matching for telemetry hosts implicated in repeated five-second request timeouts.
- Fixed source installation failing with
clang: error: dsymutil command failed: normal Linux builds no longer request Apple debug-symbol generation.
Install or update
Source installation:
curl -fsSL https://raw.githubusercontent.com/aubree-lat/MacOBlox/main/install.sh | bashFlatpak (testing): download the attached bundle, then run:
flatpak install --user MacOBlox-0.17-x86_64.flatpakFor the Flatpak MangoHud overlay, install the matching runtime extension:
flatpak install flathub org.freedesktop.Platform.VulkanLayer.MangoHud//25.08Validation and remaining testing
The regression suite, native shim/framework build, Flatpak build, Settings toggle persistence and isolated client startup passed. MangoHud was visually verified on an RTX 3060 Ti with both native NVIDIA OpenGL and Vulkan/Zink. All 897 extracted GLSL sources compiled on the NVIDIA driver after the compatibility fix.
These startup checks are not a heavy-gameplay benchmark. Intermittent gameplay freezes, right-click capture on affected desktops and the reported box artifacts still need retesting on the affected systems. Vulkan remains experimental.
The attached SHA256SUMS contains the Flatpak bundle checksum.
Mac O’ Blox 0.16
What's new
- A new launcher. The interface is redone as a dark, monochrome desktop: a top bar, a play window, a menu, and the open page in a window of its own. The home page is a console that shows what the launcher just checked (tools, Roblox, the shim, sound, the sign-in window, your account). Every setting is where it was. Narrow windows stack into one column.
- Raw mouse input for the camera through XInput 2, with a switch in the settings, plus a reworked mouse lock and smoother wheel scrolling with a sensitivity setting.
- Discord Rich Presence, total playtime, and an option to hide the launcher while you play.
- Mods: death sound, classic movement sounds, cursors, a custom font, and a modifications folder.
- Game logs in the launcher, live while Roblox runs, with search and line numbers.
- Play links from the browser open in Mac O’ Blox (
roblox:links). - Startup throttle patch controls on the Roblox settings page.
Fixes
- Freezes when leaving a game, when returning to the menu, and when quitting.
- Roblox's exit is detected right away; a leftover crash handler no longer holds the session open.
- A missing X11 display is recovered instead of crashing the game.
- Hardened DNS reply parsing; in-progress
connectxconnections; Mesa's shader cache and Roblox's caches now persist between runs. - The update check, the installer and the AUR files point at this repository.
Install
curl -fsSL https://raw.githubusercontent.com/aubree-lat/MacOBlox/main/install.sh | bashFlatpak (testing): download MacOBlox-0.16-x86_64.flatpak and run flatpak install --user MacOBlox-0.16-x86_64.flatpak.
Thanks to @amethyst-bin, @AK4K-Coding and @georgenoob1234 for their pull requests in this release.
SHA-256 of the bundle: bfa4486e142df82a72801b6d0ff0f728418d193d2694b5a50b1dd41882469e36
Mac O’ Blox 0.15
What's new
- Sign in with a password. Roblox's embedded web pages (the password sign-in with its captcha, sign-up, purchases) now open in the launcher's own window, using WebKitGTK 6.0. Cookies flow both ways, so after signing in on the page the game is signed in too. Quick Login still works as before. Protocol and parts of the code come from spidercraft's Roblox Mac Linux Port, with permission.
- Microphone for voice chat. The game's microphone input is recorded on the host with PipeWire (or PulseAudio) only while Roblox is listening, and the macOS permission prompts answer "allowed". Your system's own microphone permissions still apply.
- New app ID
wtf.aubree.MacOBloxfor the Flatpak, the desktop entry and the MIME handler. The installers remove the oldxyz.narez.*entries.
Fixes
- Fedora KDE crash loop (
updateSurfaceLuaApp, then a segfault): Darling reported the screen's physical size as 0×0 mm and Roblox divided by it. The shim now reports a real size. - Thread stacks. Darling gives threads 512 KB when the program does not ask for more; NVIDIA's shader compiler overflowed that. Threads now get 8 MB, and GCD worker threads start each job on a fresh stack.
- Flatpak: "Cannot determine your user name" on systems where the display manager sets no login uid.
- The launch log now names the OpenGL renderer, and says so when it is llvmpipe (software rendering).
Install
curl -fsSL https://raw.githubusercontent.com/aubree-lat/MacOBlox/main/install.sh | bashFlatpak (testing): download MacOBlox-0.15-x86_64.flatpak and run flatpak install --user MacOBlox-0.15-x86_64.flatpak. If you had the old xyz.narez.MacOBlox Flatpak, uninstall it first; your Roblox sign-in lives in the Flatpak's own Darling prefix and has to be redone.
Dependencies changed: WebKitGTK 6.0 (webkitgtk-6.0 on Arch, gir1.2-webkit-6.0 on Debian/Ubuntu, webkitgtk6.0 on Fedora). The installer brings it along.
SHA-256 of the bundle: aafa2788156f0108f3d3eccd0cad82a14893a57b8079f2d65a35e9d1ad4034e4
Mac O' Blox 0.14
Fixes for freezes, stutter, audio dropouts and slow loading, plus a login-cookie security fix.
Video of the improvements: https://aubree.wtf/macoblox.mp4
Install
curl -fsSL https://raw.githubusercontent.com/aubree-lat/MacOBlox/main/install.sh | bashInstalled Mac O' Blox from narezy/MacOBlox before? Run the same command: it moves your install to this version.
Flatpak (testing)
Download MacOBlox-0.14-x86_64.flatpak below, then:
flatpak install --user MacOBlox-0.14-x86_64.flatpakThe GNOME runtime is installed from Flathub on the way. The Flatpak keeps its own Darling prefix, so sign in to Roblox again there. Roblox Studio is not in the Flatpak yet.
Changes
- Locks off darlingserver: Darling sends every contended mutex and condition-variable wait through darlingserver. It loses wakeups and breaks condition variables after timeouts. The shim now waits on Linux futexes instead.
- Network: socket timeouts work,
MSG_DONTWAITworks, closed sockets stop getting events, and socket errors are reported. - Audio: a steady render pace (no more dropouts), and no hang when the player stops.
- Login cookie:
.ROBLOSECURITYwas sent to every site, even over plain http. Cookies are now matched by domain, path and Secure. - Input: keys no longer stick after Alt+Tab, mouse-lock recentring works again, and clicks in dialogs work.
- Launcher: no more frozen window, Darling restarts cleanly without orphaned daemons, and updates are safer. The Info page has the new Discord and credits.
- Installer: a menu to install/update or uninstall, and the Darling Debian packages are pinned with a checksum.