Infinite Mac organizes bootable disk images through a hierarchy of TypeScript types defined inDocumentation Index
Fetch the complete documentation index at: https://mintlify.com/mihaip/infinite-mac/llms.txt
Use this file to discover all available pages before exploring further.
src/defs/disks.ts. Every system disk — from System 1.0 through Mac OS X 10.4 Tiger and NeXTSTEP 3.3 — is described by a SystemDiskDef object that carries its display metadata, the preferred machine to run it on, and the chunked file manifest used to stream the disk image to the browser. Lower-level EmulatorDiskDef objects describe auxiliary disks (Infinite HD, Saved HD) that are not full OS installations. Drag-and-drop uploads are represented by the DiskFile type.
The EmulatorDiskDef Type
EmulatorDiskDef is the base type for any disk that can be mounted by an emulator:
Fields
generatedSpec — A lazy dynamic import returning the chunked file manifest for this disk. Manifests can be large, so they are loaded on demand rather than bundled up-front.
prefetchChunks — An array of chunk indices that are eagerly fetched before the emulator starts. These are the chunks most likely needed during early boot, reducing perceived startup latency. The values are semi-automatically generated and validated at build time via validateSpecPrefetchChunks().
persistent — When true, writes to this disk are stored in the browser’s Origin Private File System (OPFS) and survive page reloads. Used for the SAVED_HD disk.
isFloppy — When true, the disk is presented to the emulator as a floppy drive rather than a hard disk. This affects how Mini vMac and other emulators mount it.
hasDeviceImageHeader — When true, the disk image already contains a full partition map (APM device image header) and does not need one appended by the emulator layer. Used for Mac OS X disk images that target DingusPPC.
extraMachineFiles — A Map<MachineDef, {...}> providing per-machine auxiliary files (e.g. nvram.bin, pram.bin) to inject into the emulator’s Emscripten filesystem at boot. Used for DingusPPC-based Mac OS X disks that need machine-specific NVRAM state.
The SystemDiskDef Type
SystemDiskDef extends EmulatorDiskDef with all the metadata shown in the browser UI:
Fields
displayName — The primary name shown in the browser list and used in URLs. For example, "System 7.5" or "Mac OS X 10.2".
displaySubtitle — An optional secondary label displayed alongside the name. Examples: "Pro" (System 7.1.1 Pro), "Jaguar" (Mac OS X 10.2), "PowerPC" (System 7.5.3 PowerPC edition).
releaseDate — A [year, month, day] tuple representing the historical release date. Used to group disks by year in DISKS_BY_YEAR and to set the emulated machine’s clock.
customDate — Overrides the date set in the emulated machine. Used sparingly, for example Mac OS X 10.0 Public Beta sets customDate to avoid a built-in time-bomb in that release.
description — A prose paragraph shown in the browser describing notable features of this OS version.
preferredMachine — The MachineDef instance that is automatically selected when launching this disk. For example, System 1.0 defaults to MAC_128K, while Mac OS 9.0 defaults to POWER_MACINTOSH_G3_BW.
appleTalkSupported — When true, the AppleTalk networking option is enabled for this disk. Present from System 7.0 onward through Mac OS 9.x; absent for early System software and Mac OS X images.
infiniteHdSubset — Restricts which subset of the Infinite HD library is mounted alongside this disk:
| Value | When used | Library disk |
|---|---|---|
"mfs" | Early MFS-only systems (System 1.0–2.0) | INFINITE_HD_MFS (floppy) |
"system6" | System 2.1 through System 6.x | INFINITE_HD6 |
"macosx" | Mac OS X disks | INFINITE_HDX |
| (absent) | System 7.0 through Mac OS 9 | INFINITE_HD |
delayAdditionalDiskMount — When true, supplementary disks (such as Infinite HD) are mounted after the OS has fully booted rather than at initial startup. Used for System 1.0, where mounting additional images at startup causes issues under Mini vMac.
appearance — The visual theme of the OS. One of "Classic" (pre-Mac OS 8 look), "Platinum" (Mac OS 8/9 Platinum appearance), "Aqua" (Mac OS X), or "NeXT". Controls how the browser renders UI chrome around the emulated screen.
appearanceVariant — A sub-variant of the appearance theme. Currently only "System7" is defined, used for the transitional System 7.x look within the "Platinum" appearance.
notable — When true, the disk appears in the “Notable” filter in the browser. Notable disks represent historically significant releases: System 1.0, System 2.0, System 2.1, System 3.0, System 5.0, System 6.0, System 6.0.5, System 7.0, System 7.5, System 7.5.3, KanjiTalk 7.5.3, Mac OS 7.6, Mac OS 8.0, Mac OS 8.1, Mac OS 8.5, Mac OS 9.0, and every Mac OS X release.
hiddenInBrowser — When true, the disk is not shown in the main browser list but remains accessible via a direct URL. This is used for releases that are redundant (e.g. minor updates superseded by a later patch) or for internal purposes.
needsMouseDeltas — When true, automatically enables relative mouse mode for this disk. This is necessary for operating systems whose mouse driver is incompatible with absolute coordinate input.
isUnstable — Marks the disk as potentially unreliable. All Mac OS X disk images currently carry this flag.
The DiskFile Type
DiskFile wraps a browser File object for images the user drags and drops into the browser window. The treatAsCDROM and treatAsFloppy flags tell the emulator how to present the device, and hasDeviceImageHeader mirrors the same field on EmulatorDiskDef.
The PlaceholderDiskDef Type
Some OS versions are listed in the browser timeline but have no available disk image:
URL Structure and Disk Collections
The browser maps URLs of the form/<year>/<displayName> to entries in DISKS_BY_YEAR. The disk collections exported from disks.ts are:
| Export | Contents |
|---|---|
DISKS_BY_YEAR | All non-hidden disks keyed by release year |
NOTABLE_DISKS_BY_YEAR | Subset of notable disks, keyed by year |
NEXT_DISKS / NEXT_DISKS_BY_YEAR | Disks whose preferredMachine.platform === "NeXT" |
MAC_OS_X_DISKS / MAC_OS_X_DISKS_BY_YEAR | Disks with infiniteHdSubset === "macosx" |
FLOPPY_DISKS | Standalone floppy startup disks |
SYSTEM_DISKS_BY_NAME | All non-placeholder disks keyed by full display name |
systemDiskName() helper builds the lookup key:
Disks with
hiddenInBrowser: true are excluded from all DISKS_BY_YEAR collections and therefore from URL routing. They must be loaded by other means (e.g. direct programmatic access or a known URL parameter).Auxiliary Disk Definitions
Beyond system disks,disks.ts defines several EmulatorDiskDef objects used as supplementary mounts:
| Export | Description |
|---|---|
INFINITE_HD | The main software library for System 7–Mac OS 9 |
INFINITE_HD6 | Software library subset for System 6 and earlier HFS |
INFINITE_HDX | Software library for Mac OS X (HFS+) |
INFINITE_HD_MFS | MFS floppy for early System 1–2 machines |
INFINITE_HD_NEXT | Software library for NeXTSTEP installations |
SAVED_HD | Persistent user disk stored in OPFS (persistent: true) |
System Disk Examples
- Early Classic (MFS)
- System 7 Era
- Mac OS X
- NeXTSTEP