Porting Wine to a hobby OS like Astral required implementing LDT support in the kernel, then debugging a register-save bug that broke TCP uploads. That's the kind of low-level grunt work needed to run 32-bit Windows binaries on a 64-bit system.
Why a Kernel LDT Feature Was Non-Negotiable
Astral is a 64-bit OS. Cogmind, the developer's target game, is a 32-bit Windows-only roguelike. Wine's WoW64 mode lets a 64-bit host process run 32-bit Windows binaries without any 32-bit Unix libraries, but it needs the kernel to support the Local Descriptor Table (LDT). x86-64 long mode can still execute 32-bit code if you configure segment descriptors via the LDT on a per-process basis. Astral didn't have that. The developer added LDT support to the kernel and wired it into Wine's signal and syscall handling code. That alone got notepad.exe working and "Save as" no longer crashed.
The Register Bug That Broke Scoresheet Uploads
Cogmind ran and was playable, but scoresheet uploads silently failed. A TCP connection opened and closed without sending any data. The developer dug into Wine's WoW64 code and found the problem: a missing register save in the __wine_unix_call_dispatcher function. That single omission corrupted the PE-to-Unix transition, leading to undefined behavior. Fixed it, and scoresheet uploads work. Same bug also broke __wine_dbg_write in WoW64, so hunting it down fixed two seemingly unrelated failures.
What Works, What Breaks, and Why It Matters
FTL runs fully playable. Deltarune starts. Steam partially installs but crashes on Chromium startup due to a broken GetInterfaceAddresses(). Factorio opens a window but never progresses past loading. Spooky's Jumpscare Mansion and Noita start but are too slow to play. Half-Life hits an assertion failure in Wine's C++ runtime (likely a missing implementation). Unity games get stuck on MonoManager ReloadAssembly because wine-mono isn't cooperating.
Porting Wine proved that a hobby OS can run real Windows games, not just toy demos. The developer's next goal is fixing Steam, which also means Chromium will work. That would open up a much larger catalog of games and applications, pushing Astral closer to being a viable daily driver.
Source: Running Windows Games on a Hobby OS with Wine
Domain: astral-os.org
Comments load interactively on the live page.