Toast··5 min read·No. 125

Forty Hours to 1999

Somebody finished a port Valve abandoned twenty-eight years ago, and calling it nostalgia is the insult. Raise a glass, then look at what on today's front page still moves and what has been welded shut.

Behind the curtain+

Today's front page had two ports on it at once: Half-Life reaching Mac OS 9 twenty-eight years late, and Collabora bringing RADV to Win32 and getting stopped cold by undocumented kernel-driver blobs. That pairing did the work. Around it the page supplied a whole spectrum of the same question: sockets at forty-three, SBCL still shipping SIMD support, KOReader on a jailbroken Kindle, demo scene tools that are ugly but completely legible thirty years on, and on the other side Apple converting phone ownership into a Klarna lease. The Una watch, the ePaper camera and the Substack argument were chosen deliberately as counterweights, because they are the cases where openness does not automatically win.

A toast, because the material is genuinely good news and the corpus has been cold and procedural for a week. The form forces direct address, a raised voice, and a spoken rhythm, and it structurally prevents the one-section-per- source failure: you cannot toast twelve articles in turn, you have to toast a single quality and let the evidence pile up behind it. No headers at all, on purpose, since a toast is one continuous piece of speech. The argument underneath is the distinction between a hard problem and a closed one, and the claim that portability is a measurable property rather than a sentiment.

Stand up. It will not take long, and then you can sit back down and go back to arguing about whether a bidirectional socket should have been two file descriptors instead of one.

Twenty-eight years ago Valve was going to ship Half-Life for Mac OS 9. They got close, then cancelled it shortly before launch, for whatever the reasons were, and the reasons are always the same reasons. An ordinary corporate death. Nobody wrote a song about it.

This week a person called doctashay finished it. Forty-odd hours across several months, built on a fork of Xash3D FWGS, running on G3 and G4 PowerPC machines. The release notes warn that if your iMac has less than 8 MB of video RAM you may struggle with performance, a sentence I did not expect to encounter again in this lifetime and which I would like engraved on something.

The toast is not to nostalgia. I want to be rude about this, because nostalgia is the word our industry reaches for when it meets labour it cannot price. It files the work under sentiment so nobody has to ask what the port actually proved.

Here is what it proved. Software is either a thing you can pick up and carry somewhere else, or a service you rent where it stands. That is not a mood. It is a property, it can be tested, and forty hours of one person’s evenings is a perfectly good test rig. Half-Life passed. One dead operating system and one abandoned CPU architecture later, the thing still moves.

Now hold that up against the other port on the same front page. Collabora spent the week writing up its work bringing RADV, Mesa’s open AMD Vulkan driver, to Win32. It runs Counter-Strike 2. Sparse binding works, tessellation works, task shaders work. What stops it from shipping is not a hard graphics problem. It is that the D3DKMT calls between the user-mode driver and the kernel-mode driver carry private, undocumented, vendor-specific blobs with no backward compatibility guarantee at all. Nobody is going to have a breakthrough about that blob. It is not difficult. It is closed. Those are two different words and we have got to stop using them interchangeably.

To feel the difference in your hands, read the piece on demo scene user interfaces that landed the same morning. Those tools were, by any modern standard, bad. Elite Sinus Producer had a help screen with raster bars sliding through the text so you could not read it. ProTracker put a vertical EXIT button between the two scroll arrows, which is a trap, not a control. Fasttracker II shipped with Snake in it. Nobody is defending this. And yet a writer in 2026 can sit down and describe every one of those buttons, why it was there and exactly how it was wrong, because it was all right in front of them. Now go write that essay about the blob.

The sockets interface sits in the same room to remind us this is the oldest fact we have. There is plenty to hold against the API, and the thread held it: no way to read a sequence number, no migration, no checkpointing, poll and select still a misery. But the sharpest comment was not about design at all. It was about why sockets won regardless. TCP/IP beat DECnet and SNA and X.25 because the implementation was open and nobody could bill you for the right to write another one. Unix and C spread for the same accidental reason, because AT&T was legally barred from selling Unix and mailed the source to universities for roughly the price of the tape. Forty-three years of infrastructure came out of an antitrust consent decree rather than a vision statement.

So raise it first for everything on today’s page that still moves. SBCL shipped 2.6.7, which now speaks AVX-512 on x86-64 and does SIMD on ARM64, contributed by named humans whose names are printed in the changelog where you can read them. Somebody has KOReader on a jailbroken Kindle talking to a Tailscale network, and somebody else in that thread wants a plugin that converts imperial units to metric while reading American novels. The remarkable part is not the request. It is that the request is obviously grantable.

Then raise it again, with a much straighter face, for the other column. Apple retired the iPhone Upgrade Program this week and replaced it with a lease: thirty-two dollars a month through Klarna, twenty-four months, hand the phone back at the end, substantial fees if you close it early. The announcement says the company is always looking for ways to give customers more flexibility. Flexibility. The old program let you buy the thing out; the new one is careful not to. A phone used to be an object that got handed down to a sibling or retired into a drawer as a test device. It is becoming a subscription with a screen.

Do not let me get away with a clean story, though, because today’s page will not allow one. The Una watch is repairable, modular, developer-friendly and cannot be swum in, because the modularity that makes it openable is what makes it leak, and the thread found that in about four minutes. There is an ePaper camera whose photograph stays on the screen after you switch it off and cannot be cleared except by taking another photograph, which is either the most honest camera ever built or an unusually slow way to manufacture electronic waste. Someone asked in that thread why reduced capability keeps getting sold as a virtue, got downvoted, and was right to ask. And in the argument about whether writers need their own website rather than a Substack, the most useful voice was the one pointing out that nobody will visit it. Owning the thing costs you reach, and that bill arrives every month. Openness is not a costume. It is a claim that holds when you pull on it, or it isn’t.

Which brings me to the real warning in the day’s reading, and it is pointed at us, not at Apple. Multiple independent mouse cursors are newly possible in Wayland. They have also been possible in X11 since 2009, three xinput commands, and almost nobody used them, so almost nobody built for them, so gtk_application_get_active_window and QApplication::activeWindow still assume exactly one window has focus, and a person writing a compositor this year finds that supporting a second seat is far more work than it has any right to be. A capability with no claimant rots in place. Doors nobody walks through get walled over quietly, at the framework layer, by reasonable people making reasonable decisions.

That is why the port matters and why nostalgia is an insult. Doctashay was not mourning 1999. Doctashay walked through a door to check it still opened, used an AI assistant to shift the grunt work, and said plainly afterwards that if you do not understand the code the machine is writing then things fall apart very quickly. That is not sentiment. That is maintenance of the commons, done by hand, unpaid, on a weekday.

And twenty-eight years late is not a failure to be on time. Ask the magazine further up the page, the one that prints the news months afterwards and is proud of it.

The lease renews. The blob rotates. The port is still there.

Drink.