Build and boot safely

QEMU is the recommended first target. It gives you a repeatable boot environment without touching a real disk. Move to a USB only after the QEMU checkpoint passes.

Source audit result: the supplied ForgeOS archive contains a prebuilt BOOTX64.EFI, OVMF.fd, run.ps1, build.ps1 and deploy-usb.ps1. It does not currently contain doomgeneric sources or a WAD. The DOOM lesson therefore adds an adapter/integration workflow; students must obtain doomgeneric and a legal WAD separately.

1. Extract without changing the tree

  1. Extract the course/source ZIP to a short Windows path such as C:\ForgeOS.
  2. Do not move BOOTX64.EFI, OVMF.fd, disk or the PowerShell scripts independently.
  3. Open PowerShell in that project folder.

2. QEMU first — preferred

Set-ExecutionPolicy -Scope Process Bypass
.\run.ps1

The supplied runner expects the project files to remain together. If QEMU is not installed, install a current x86_64 QEMU build and ensure qemu-system-x86_64 is available.

3. Optional local rebuild

Set-ExecutionPolicy -Scope Process Bypass
.\build.ps1
.\run.ps1

Use the prebuilt EFI for the first boot. Rebuild only after the baseline works, because a local build changes the binary hash.

4. Deploy to a USB

Destructive warning: verify the drive letter. Never guess. Back up the USB first.
  1. Insert a spare FAT32-capable USB.
  2. In File Explorer, confirm its drive letter and contents.
  3. From an Administrator PowerShell in the ForgeOS folder run:
.\deploy-usb.ps1 D:

Replace D: with the confirmed USB letter. The script copies the EFI boot path and ForgeOS data tree.

5. Boot the USB on a PC

  1. Use the firmware one-time boot menu.
  2. Select the UEFI entry for the USB.
  3. Do not install to the internal disk during the course unless the lesson explicitly instructs you to and you have backups.
  4. If Secure Boot blocks the unsigned educational EFI, use a test machine and temporarily disable Secure Boot in firmware; restore it afterward.

6. DOOM checkpoint

Complete Modules 01–06 first. Module 07 integrates doomgeneric through five platform callbacks: frame presentation, keyboard input, timing, sleep and file/WAD access. Use a legally obtained WAD; the course does not redistribute commercial game data.

Start the free path