Blog

Write-ups of things I fixed, patched, or built. Mostly Linux gaming, Wine/Proton internals, kernel patches, and AI experiments. Everything here links to the actual patches and threads, so you can check my work.

How Adobe Photoshop Got Working on Linux: The Wine Patches Behind It

The Adobe Creative Cloud installer had been broken under Wine for 12 years. Here's what was actually wrong in MSXML3 and MSHTML, how the patches fix it, and what runs today.

How to Play The Crew 2 on Linux (A Setup That Actually Works)

Seven years of "unsupported," ended by four DLL overrides. The full launch procedure, the Proton version that works, and the recording overlay that was silently crashing Wine.

Fixing VR Controller Tracking in MSFS 2020 on Linux: Two Proton Patches

Controllers spawned frozen at the headset position because two OpenXR time-conversion functions were never implemented. How I built them, the 15-minute freeze that followed, and the clock-offset fix that shipped.

Contractors Showdown ExfilZone on Linux: Fixing Wine's BattlEye Launcher

One leading backslash in BELauncher.ini was enough to kill the launch. Tracing it with WINEDEBUG, the PathIsRelativeW edge case behind it, and the patch upstream.

Making USB WiFi 55% Faster on Linux: Threaded NAPI in the mt76 Driver

The mt76 USB RX path never got GRO because it delivered frames with a NULL napi. Rerouting it through a threaded NAPI took bulk TCP from ~380 to ~588 Mbit/s on an mt7921u.

Chain of Recursive Thoughts: Making an AI Argue With Itself

A ~200-line prompt loop that hit #2 on Hacker News: the model drafts, generates rivals, judges them, and repeats. What it does, what it doesn't, and what HN argued about for 185 comments.