To main content To menu

Reticulating Splines Again New post SimCity 2000: Airports were my biggest fear

SimCity 2000 in 2K on Linux, thanks to the human-made sc2kfix mod - plus secret DOS nights and the runway chain reactions that crashed them.
A small boy in striped pajamas sits with his back to the viewer at a desk in a dark room at night, lit only by a bulky beige CRT monitor showing a colorful isometric pixel city with a river and a red bridge
Past midnight, the house asleep, one more city to build Image: AI-generated with google/nano-banana-pro by lui.vn

One runway tile: bulldoze it in SimCity 2000, and every runway tile connected to it goes down with it. On our family’s DOS machine – a Pentium with 66 MHz and zero patience for my urban planning – that chain reaction ran so long that the whole system froze under the weight of all those explosions and then crashed for good, while a seven-year-old sat in front of the screen, in a room he wasn’t supposed to be in at all.

Airports weren’t buildings back then; they were zones, and the runways growing inside them loved to fuse into one long, connected, extremely flammable organism. My cities had a LOT of airport. So whenever I (or a disaster, or a pilot with bad aim) knocked out a single tile, the entire network detonated, and the Pentium went down with it. Bug or hardware limit? I never found out, and seven-year-old me didn’t care about the difference: the result was a frozen screen, then nothing.

Floods, fires, tornadoes, riots – I summoned all of those on purpose, gladly and often. Airports were the one thing in that game I was actually afraid of.

The office, whenever the house was empty

The fear was earned in secret. My older brother played SimCity 2000 first, and I watched – less the game than his fingers, because to get to the game you had to get through DOS, and DOS didn’t hand you anything for free. So I memorized the commands he typed to crawl through the directories and launch it, then figured out how to wipe the traces of my own sessions, and from then on, every time my parents and siblings left the house, I slipped into our office-slash-computer room and built. Days for days, weeks for weeks, at every free minute – roughly 1996 and 1997, in a village in the Bavarian hinterland east of Munich, on a machine with about the computing power of a modern smart fridge.

And at night, too. I was still in elementary school, and I crept back into that room once everyone was asleep and played through until the house started waking up again (a habit that followed the PC when it later moved up to the attic, and one I’ve already confessed in full). Whether my parents ever caught on, I honestly couldn’t tell you.

I liked my maps extreme: jagged mountain ranges with deep valleys cut between them, or barely any land at all, just one big ocean. And I grew cities on them until the entire map was covered – every hill, every shoreline, arcologies squeezed into the last free corners like trophies. Every empty mountain slope got a hydro dam, the kind that only sits on waterfall tiles, makes little power on its own, and, unlike most plants, doesn’t crumble after 50 years, so whole mountain ranges turned into gray concrete staircases. I liked that gray far better than the game’s plain brown ground – haizz, that brown.

Rivers and open water were the stage for my favorite flex: the reinforced highway bridge. The default one was low enough that boats couldn’t pass under it, while the reinforced version had to be coaxed out of the game: bring the highway up to both banks, park the cursor so its shadow sits half on land and half on water, click, and only then did a little box offer you the choice. Tricky, compared to the plain version, and I hauled it across every river and ocean I could find anyway.

And then there was the Industrial Thingamajig, an actual, official building name for one of the big industrial lots. In the German version it was the Industrielles Dingsbums (roughly “industrial whatchamacallit”), and it made me giggle every time I spotted one and clicked on it, which, in a map-filling city, was a lot of giggling.

Then, being a benevolent and deeply balanced mayor, I tore my cities down again. First the flood, to wash out the waterfront. Then the fire, to finish what the water missed. Then a tornado, for the hell of it, and a riot on top, because apparently the Sims had opinions about my governance.

When the house wasn’t empty, I got on my bike and rode to the surrounding villages, where friends had their own machines and their own copies. One of them had a Mac – one of those flat desktop cases lying on the desk with a floppy slot in its face and the monitor sitting on top like a hat. It felt alien to me; half the interface looked slightly off from what my DOS-trained eyes expected, yet the game ran, and I grew the same map-filling cities there, too.

10007 and 10018

Then I stopped. For well over 25 years I didn’t touch SimCity 2000 again – SimCity 3000 came along, then SimCity 4, then a whole life, then Sài Gòn – but the music never quite left. Now and then I still end up with two tracks on repeat, and in my head they have no names, only numbers: 10007, which is pure SimCity DNA, and 10018, which sounds like RED ALERT, INCOMING CATASTROPHE, THE CITY’S ON FIRE.

The DOS version ships its music as numbered MIDI files, so the number is the name a DOS kid learns. Titles do float around, though: 10018 shows up as SimCity Segue, and one fan who rearranged 10007 calls it Skyscrapers, which suits it better than any file name could.

I’ve written about this soundtrack twice already, once for a vaporwave mashup of two of its tracks and once for a whole playlist of remixes – and in that second post I crossed out the word “green” in front of the game’s landscape, because back then the ground was brown, always, no discussion. Keep that in mind for a minute.

Every numbered MIDI file, straight from the default Windows player

Three simulations, two machines, one fan

Which brings me to 2026. My MacBook sat in front of me running several Claude Code sessions on Fable 5.1 in parallel, each one farming work out to Opus 5 subagents, each subagent in its own virtual container for the local environment, and the fan whirring at its limit like a Pentium trying to process an airport. Meanwhile I scrolled YouTube on my phone, and the algorithm, apparently reading my soul, served me a video about why SimCity 2000 is better than ever in 2026 by GamerZakh, a former teacher and designer whose whole channel is about revisiting old gaming memories. The reason had a name, and the name led me to a GitHub repo and a mod page: sc2kfix.

It’s a plugin – essentially a single winmm.dll dropped next to the game – that patches the 1996 Special Edition of SimCity 2000 for Windows 95 to run properly on Windows 7 through 11 and on Wine and Proton, fixes a long list of the original’s bugs, adds quality-of-life features, and restores content that was cut or broken. Military bases finally grow instead of sitting there as dead zones, rail and highway connections to neighboring cities survive a save and reload, and music that shipped with the game but never made it into the random playlist is back in rotation. And underneath all of that, it’s a reverse engineering project that has been rebuilding chunks of the engine itself.

So the MacBook kept sweating, and I opened the Bazzite laptop next to it. Claude Code set SimCity 2000 up there for me, running through Lutris and its Wine integration, with a few adjustments of its own along the way. If you try this yourself, one thing matters: Wine has to be told to load the plugin’s own winmm.dll for simcity.exe, with the load order set to native, then builtin, or it quietly ignores the whole mod.

Now I’m stuck somewhere between agentic work on one machine, a Factorio Space Exploration mod setup sprawling across multiple star systems, and SimCity 2000 at 2K with most of the mod’s switches flipped on. City growth renders in real time instead of arriving in batches, seasons and extreme weather show up on the map, the underground view has a dark mode my retinas are grateful for, and the “Reticulating Splines” soundbite got a higher-quality copy – and then there’s the terrain. The mod adds color variations inspired by SimCity 3000, picked right on the New City screen: a desert that finally looks like a desert, a grayish snow biome, and green. Lush, soft, finally-not-brown green. That crossed-out word from 2023? It’s back, and no mountain has to be paved gray anymore just to spare my eyes the brown.

Made by hand, on purpose

Then I read the README to the end and hit the line I didn’t see coming: sc2kfix is entirely human-made, built without generative AI, and any AI-generated or AI-assisted pull request gets rejected. They add a little jab, too – Maxis didn’t need a neural network trained on scraped code, so neither do they.

I laughed out loud: the copy running on my laptop at that exact moment had been installed by Claude Code. The machine set the stage for the no-machines show.

I won’t judge it, though; it’s a fair choice, and it makes the whole thing more impressive. Early-90s C and C++ was never famous for being pleasant to read even as source code, and these people are working backward from a compiled binary, reimplementing the game’s internal functions after what their own README calls months of reverse engineering, so the rebuilt parts run faster, can be debugged, and can be extended. All of that for a game most people remember as “the one with the arcologies”. If I had a hat, I’d tip it.

The irony is structural, though: now that they’ve mapped the engine by hand and hung hooks all over it, handing it to an agent has never been easier. The repo ships a hook framework for injecting new code, a loader for gameplay mods written in C and C++, a developer console, even a Lua REPL – and the whole thing is MIT-licensed, so nothing stops anyone from forking it. Which I did – because I’ve had that thought already: let Fable 5.1 or OpenAI’s Astra set up the environment and the compiler, write my own ideas into the game, debug it, log it, and then play the result together. Or the lazier version I actually want to try first: after a day of heavy coding, I play Factorio while Claude or Astra plays a round of SimCity 2000 next to me – because I can, because I have the tokens, and because I really want to know how that experiment turns out. SimCity 2000 is almost built for that; a tile grid, menus instead of reflexes, and a query tool that tells you what every single square is doing make it about as readable for a machine as a 90s game gets. It just wouldn’t be sc2kfix anymore – it’d be my fork, and upstream would, rightly, never see a line of it.

And if Claude ever does get the mayor’s chair, the first test is obvious: zone one very large airport, let the runways grow together, then hand it the bulldozer and point at a single tile ✈️