How to Create Custom CD-ROM Icons in Mac OS 9

In classic Mac OS, specifically Mac OS 9, custom disk icons for mastered CD-ROMs relied on specific structures within the Hierarchical File System (HFS or HFS+). Creating a custom volume icon required generating a hidden resource file named Icon\r at the root of the volume, toggling a specific Finder flag in the volume's catalog info, and using Mac-compatible mastering software like Roxio Toast to preserve these metadata attributes during the burning process.

The Mechanism: Icon\r and the Custom Icon Bit

Classic Mac OS did not use .ico files or modern asset catalogs for volume branding. Instead, the operating system relied on two components:

  1. The Invisible Icon File (Icon\r): When an icon was pasted into a disk's "Get Info" window (Command + I) in the Finder, Mac OS created a hidden file named Icon followed by a carriage return character (\r, or ASCII 13) in the root directory. This file had an empty data fork, but its resource fork contained the graphical icon suites, including resource types such as ICN# (32x32 1-bit), icl4 (32x32 4-bit), icl8 (32x32 8-bit), and the Mac OS 8.5+ icns format for 32-bit icons with 8-bit alpha channels.
  2. The kHasCustomIcon Finder Flag: In addition to writing the file, the Finder set bit 10 (kHasCustomIcon) of the volume's Finder attributes within the HFS volume header. This signaled the system to look for the invisible Icon\r file upon mounting, rather than displaying the default system optical drive icon.

The CD-ROM Creation Process

Mastering a CD-ROM with a custom icon required ensuring these elements survived the transition to read-only media.

1. Designing and Applying the Icon

Authors created the icon using graphic tools such as ResEdit, Iconographer, or Adobe Photoshop with appropriate plugins to export classic Mac OS icon suites. Once designed, the icon was copied to the clipboard, the destination volume or disk image was selected, and the icon was pasted directly onto the generic disk icon in the Finder's "Get Info" dialog.

2. Building a Master Disk Image

To ensure the volume header and invisible files remained intact, developers avoided copying loose files directly to generic burning software. Instead, they created a pre-mastered disk image using utilities like Apple's Disk Copy, Roxio Toast, or CharisMac Discribe.

The disk image was initialized using either Mac OS Standard (HFS) or Mac OS Extended (HFS+). The files, folders, and the custom volume icon were arranged within this mounted virtual disk. Because the disk image mimicked an actual physical drive, the kHasCustomIcon bit was permanently written into the image's volume header.

3. Burning and Hybrid Formats

Standard ISO 9660 formats discarded Mac-specific resource forks and file flags. To retain the custom icon, creators burned the disc using specific configurations:

  • Mac Only (HFS/HFS+): The disk image was burned directly as an HFS volume. The burner wrote the catalog tree verbatim, ensuring the custom icon flag and the Icon\r file were embedded on the physical disc.
  • Mac/PC Hybrid: For cross-platform releases, software like Roxio Toast allowed users to create a "Shared Hybrid" disc. The author designated an HFS partition for Mac users and an ISO 9660 or Joliet partition for Windows users, often sharing the actual underlying data files to save space. The Mac partition maintained the custom icon bit, displaying the branded CD icon on Mac OS 9, while Windows users saw the standard drive letter or an icon defined separately via an autorun.inf file.

Once burned, the optical disc mounted on any compatible Mac OS 9 system with the designated custom artwork in place of the standard CD-ROM icon.