Skip to content
pappadf edited this page Sep 14, 2026 · 2 revisions

powermac-nt-hal

Running Windows NT 4.0 on a Power Macintosh — how it works, and how to do it yourself.

This wiki is about a machine Microsoft never shipped for and Apple never supported: the Apple Network Server 500/700, a Power Macintosh 9500 logic board with server changes. NT 4.0 had a PowerPC edition, but only for IBM and Motorola machines built to a standard Apple did not follow. Closing that gap needs three things — firmware that looks like what NT expects, a HAL written for this hardware, and drivers — and this project is where that is being worked out in the open.

The code lives at pappadf/powermac-nt-hal. This wiki is the explanation around it.


Where it stands

Honest summary, updated as things move. The detail is on Status and roadmap.

Text-mode Setup Runs end to end on the emulated Network Server — sixty-one screens, hardware detection through to "This portion of Setup has completed successfully", with no bugcheck in the run
The installed system Boots. Firmware → veneer → OSLOADER.EXE → the registry → boot drivers → NTOSKRNL.EXE and a HAL built from this source. It completes NT's I/O initialisation: both SCSI controllers with adapters, interrupt vectors and real interrupts; the partition table read through our own code
Graphics-mode Setup Runs. The NT Setup wizard draws at 640x480 on the machine's Cirrus and copies files from the CD to the installed volume — win32k.sys, the Cirrus miniport and its display driver all live. It depends on one workaround: the video resource bypass, ledger row 6
Real hardware Never tried. Everything here is an emulator. See What is known and unknown

Two caveats that matter, stated up front rather than buried: a small number of firmware patches and one indefensible bypass are still in the loop — graphics-mode Setup depends on that bypass — all of them enumerated in the ledger of workarounds; and the project is developed against an emulator branch that is not yet merged upstream.


Choose your path

If you want to… Start here
Understand how any of this works Why NT on a Power Mac is hard, then Open FirmwareARCThe veneerThe NT boot chain
Run it yourself Getting Granny SmithMedia you must supplyBuilding the HALRunning text-mode Setup
Write a HAL, for this or another machine The HAL contract and — read this one before you write a line — The NT PowerPC ABI
Debug something that has gone wrong Debugging recipes, and When your instrumentation lies
Port this to a desktop Power Mac The PowerMac TNT family and Desktop 7500/8500/9500
Know what is borrowed, and from whom Provenance and credits

New to the vocabulary? The glossary defines every acronym on this wiki, and is designed to be read straight through in five minutes.


How this wiki is organised

  • Theory — the durable explanations. What Open Firmware is, what ARC is, what NT's loader and kernel demand. These change slowly and are worth reading even if you never run anything.
  • Machines — the hardware, described for someone writing low-level code for it.
  • Emulator — the practical guides. Everything you need to reproduce the results.
  • Real hardware — currently a list of unknowns, kept honest.
  • Debugging — the techniques, and the traps.
  • Reference — tables you will come back to.
  • Project — status, credits, contributing, and the narrative of how it was built.

The wiki deliberately does not duplicate the repository. Anything version-locked — the code, the wall-by-wall story, the provenance log — lives there and is linked from here.


What you must supply yourself

Nothing copyrighted is distributed by this project, and that is not negotiable. To follow the practical guides you will need to provide, from your own legally obtained copies:

  • an Apple Network Server ROM,
  • a Windows NT 4.0 PowerPC CD image,
  • and disk images, which the tools will create for you.

Media you must supply explains what each is for and how to check you have the right one.


A note on what this is not

This is not a polished product, and it is not a tutorial with a guaranteed ending. It is a research project that is being written down as it goes — including the dead ends, which are recorded alongside the results because several of the theories here were wrong within hours of being written. If a page says "status: open", that is the current truth and not an oversight.

The companion to this wiki is STORY.md in the repository: every wall this project hit, in the order it hit them, with what each one turned out to be. If you like reading how something was actually figured out rather than how it is supposed to work, start there instead.

Clone this wiki locally