MDDOSEM · WINDOWS 2000 PROFESSIONAL SP4 · 28 MAY – 19 JULY 2026
BOOT TO DESKTOP
At 03:02 on 19 July 2026, a PC that exists only as Rust code settled onto a teal desktop — Start button, taskbar, a clock quietly insisting it was 2:04 AM. Windows 2000 had installed and booted, natively, inside an emulator whose setup had spent weeks answering its own wizard in an endless loop. Fifty-three days, sixty-one disk images, one press of the Enter key: this is the whole story.
Three in the morning
The last screenshot of the campaign is called desktop-settled.png, and it
was written at 03:02 on the morning of 19 July 2026. It shows a teal desktop; a Search
Results window reporting, with perfect honesty, “0 object(s)”; and, front and
centre, the “Getting Started with Windows 2000” wizard, patiently explaining that
to open a file you should “click an icon twice quickly (double-click)”. On the taskbar,
beside the speaker icon, the clock reads 2:04 AM — the guest machine’s own opinion
of the time, gently adrift of the host’s.
Seventy-three minutes earlier that same night, the same machine had blue-screened — a STOP 0x7B, INACCESSIBLE_BOOT_DEVICE, later traced to the run’s own debugging instrumentation rather than to the emulator (chapter 7 has the minute-by-minute). That is the kind of story this is: for seven weeks, the hardest adversary was usually the evidence. The desktop was reached twice that night, from two independent fresh copies of the installed disk, each ending in a clean restart — proof by repetition, not luck.
The machine that did it
mddosem is a hardware-accurate PC emulator written from scratch in Rust. It builds a complete mid-nineties PC out of code — a 386-class CPU, the 8259 interrupt controllers, the 8254 timer, a PIIX3 IDE chipset, VGA — and for this campaign it booted real firmware on that emulated board rather than faking the BIOS in software. Its natural habitat is DOS and Windows 3.1: F1GP, DOOM, Word. Windows 2000 — protected mode and paging everywhere, a PCI disk controller it interrogates and second-guesses, exact interrupt-wire behaviour, V86 mode for video BIOS calls — was by several orders of ambition the hardest thing it had ever been asked to do. Chapter 1 tours the machine and NT’s demands of it; each demand became a chapter of the debugging story.
Every run in the final campaign executed on the interpreter — the plain,
one-opcode-at-a-time correctness engine; every version banner in the run archive says
interpreter-only. The dynamic recompiler, mddosem’s opt-in performance
engine, sat the campaign out: its own Windows 2000 bug
(KILN-00005) is still open.
The goal and its rules
The formal goal was set on 23 June: make Windows 2000 Professional SP4 install and boot to a usable desktop — FreeCell running — reproduced twice, and do it by fixing the emulation, not the symptom. The goal prompt’s first rule: “Fix underlying emulation behavior only. Do not patch, bypass, preseed, or fake…” No game-specific hacks is house doctrine for mddosem; here it meant no Windows-specific hacks either. When Windows misbehaved, the working assumption had to be that the emulated hardware was lying to it.
The work was tracked as a single bug, MDD-BUG-KILN-00004, raised on 30 June once the failing shape had a name — GUI setup failing at “set system security” and re-running its wizard forever (chapter 2). It was flipped to Fixed at 03:27 on 19 July. Not Closed: the project’s two-eyes rule says the author of a fix may not close it, so the ledger waits for an independent verifier. The acceptance record ends with four negatives — “without a transplanted install, Windows-specific bypass, disabled component, or omitted CD-ROM.”
Fifty-three days, twenty beats
The whole campaign compresses into twenty recorded beats below. Cobalt dots are milestones; green dots are fixes that landed; the red dot is 30 June, the marathon day on which five plausible theories died, each killed by a controlled experiment. Filter it and notice the shape: refutation after refutation, and a wall that moved downstream every time a real fix landed.
The chapters
Seven chapters, in story order. The numbers in them are transcribed from the record, not remembered.
How to read this site
The chapters build on one another — machine, loop, wires, forensics, twist, fixes, desktop — but each stands alone and owns its own part of the mechanism; if you only want the twist, chapter 5 will seat you without homework. Interactive figures are step-through: click ◀ ▶, or focus a figure and use the arrow keys. If your system asks for reduced motion, the figures oblige and show their final state.
Everything checkable is checked. Every number, address and filename on this site traces to the bug ledger, the engineering journals of 28 May – 19 July 2026, or the preserved artifacts — and where the record is honestly uncertain, the site says so rather than guessing. The Windows screens you will see are HTML-and-CSS recreations built for this essay, captioned as such; no Microsoft screenshot is republished. One absence is deliberate: the product key appears in this story only as those three words.
Sources for this site — the mddosem bug ledger
(MDD-BUG-KILN-00004 and its sibling
KILN-00005); the engineering journals, 28 May – 19 July
2026; and the preserved run archive: 47 numbered captures, 61 two-GiB disk images, the
128 MiB hang.bin RAM dump, 6,763 + 114 screenshots, and a 654 MB syscall
trace. Full evidence table in chapter 7.