ryOS ryOS / Docs
GitHub Launch

Infinite Mac

Infinite Mac is a ryOS application that brings classic Macintosh computing to your browser. It provides access to a curated selection of historic Mac OS versions, from the original System 1.0 (1984) to Mac OS X 10.4 Tiger (2005), all running through the Infinite Mac emulator project.

Overview

The Infinite Mac app transforms your ryOS desktop into a time machine for classic Macintosh systems. Powered by browser-based emulation technology, it allows users to experience the evolution of Mac OS through 12 different system versions spanning over two decades of computing history. Each system runs in an authentic emulated environment, complete with the original user interface, applications, and capabilities of that era.

Whether you're a longtime Mac enthusiast wanting to revisit the Platinum appearance of Mac OS 8, explore the Japanese KanjiTalk 7.5.3, or experience the original Macintosh System 1.0, Infinite Mac provides an accessible window into Apple's operating system history—all without leaving your browser.

Features

  • Classic Mac Emulator: Run authentic classic Mac OS systems in your browser via the Infinite Mac project, from System 1.0 (1984) to Mac OS X 10.4 (2005).
  • Select a System: Choose from 12 historic Mac OS versions including System 1.0, System 6.0.8, System 7.5.3, KanjiTalk 7.5.3, Mac OS 8.0, Mac OS 8.5, Mac OS 9.0, Mac OS 9.2.2, and Mac OS X 10.1-10.4.
  • Display Scaling: Adjust the emulator display with 1x, 1.5x, or 2x scaling options via View ▸ Scaling.
  • Pause / Resume: Use View ▸ Pause or Resume to save system resources when not actively interacting.
  • Capture Screenshot: Use View ▸ Capture Screenshot to save the current emulator display as a PNG image.
  • Back to Systems: Use File ▸ Back to Systems or the grid icon in the title bar to return to the system selection.

User Guide

Getting Started

Launch Infinite Mac from the ryOS application launcher. You'll be presented with a grid of available Mac OS systems, each showing a preview thumbnail, the system name, and its release year. Simply click on any system to load it.

Key Actions

  • Selecting a System: Click on any system card in the grid to load that Mac OS version. The emulator will initialize and display a loading indicator while the system boots.
  • Navigating Back: To return to the system selection grid, use File > Back to Systems in the menu bar, or click the grid icon in the window title bar.
  • Adjusting Display Scale: Access View > Scaling to choose between 1x, 1.5x, or 2x display scaling. The window will resize to accommodate the new scale.
  • Pausing the Emulator: When you're not actively using the emulated system, select View > Pause to freeze emulation and conserve CPU resources. Select View > Resume to continue.
  • Capturing Screenshots: With an emulator running, select View > Capture Screenshot to download a PNG image of the current emulator display.

Available Systems

SystemYearDescription
System 1.01984Initial Mac system software
System 6.0.81991Final System 6 release
System 7.5.31996Open Transport and broader Mac support
KanjiTalk 7.5.31996Japanese edition of System 7.5.3
Mac OS 8.01997Platinum appearance, multi-threaded Finder
Mac OS 8.51998Sherlock, 32-bit icons, font smoothing
Mac OS 9.01999Keychain, multiple users, Sherlock channels
Mac OS 9.2.22001Final classic Mac OS release
Mac OS X 10.12001Puma - improved performance, DVD playback
Mac OS X 10.22002Jaguar - Quartz Extreme, Address Book, iChat
Mac OS X 10.32003Panther - Exposé, fast user switching
Mac OS X 10.42005Tiger - Spotlight, Dashboard, Safari RSS

Tips & Shortcuts

  • Resource Management: Pause emulation when switching to other ryOS apps to free up CPU resources.
  • Screen Resolution: Different systems have different native resolutions. System 1.0 and 6.0.8 use 512×342, while later systems use 640×480.
  • Persistence: The emulated systems support saving data to a virtual hard disk that persists between sessions.
  • Keyboard Input: Your physical keyboard inputs are forwarded to the emulated Mac when the emulator window is focused.

Technical Details

Window Configuration

  • Default size: 640×504px (content area 640×480 + titlebar)
  • Minimum size: 512×342px
  • Maximum size: 1024×792px

Component Architecture

The app consists of 2 component file(s):

Hooks & Utilities

Custom Hooks: Generated Files:

State Management

Infinite Mac uses a combination of local React state and a dedicated Zustand store:
  • Local State: Manages UI concerns like dialog visibility (isHelpDialogOpen, isAboutDialogOpen), currently selected preset (selectedPreset), emulator loading state (isEmulatorLoaded), and pause state (isPaused).
  • useInfiniteMacStore: A Zustand store that persists the user's preferred display scale setting (scale) across sessions.

Emulator Integration

The app integrates with Infinite Mac via a same-origin wrapper that enables cross-origin isolation (COEP/COOP headers required for SharedArrayBuffer). Communication with the emulator happens through postMessage:
  • emulator_loaded: Received when the emulator has fully initialized
  • emulator_screen: Received with screen dimensions and pixel data for dynamic window sizing and screenshots
  • emulator_pause / emulator_unpause: Sent to control emulator execution

Related Apps

  • Virtual PC: Another emulation app in ryOS that runs classic DOS games and applications, offering a complementary retro computing experience.
  • Control Panels: System-wide preferences that may affect display settings and audio output for the emulated systems.