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 Systemsin the menu bar, or click the grid icon in the window title bar. - Adjusting Display Scale: Access
View > Scalingto 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 > Pauseto freeze emulation and conserve CPU resources. SelectView > Resumeto continue. - Capturing Screenshots: With an emulator running, select
View > Capture Screenshotto download a PNG image of the current emulator display.
Available Systems
| System | Year | Description |
|---|---|---|
| System 1.0 | 1984 | Initial Mac system software |
| System 6.0.8 | 1991 | Final System 6 release |
| System 7.5.3 | 1996 | Open Transport and broader Mac support |
| KanjiTalk 7.5.3 | 1996 | Japanese edition of System 7.5.3 |
| Mac OS 8.0 | 1997 | Platinum appearance, multi-threaded Finder |
| Mac OS 8.5 | 1998 | Sherlock, 32-bit icons, font smoothing |
| Mac OS 9.0 | 1999 | Keychain, multiple users, Sherlock channels |
| Mac OS 9.2.2 | 2001 | Final classic Mac OS release |
| Mac OS X 10.1 | 2001 | Puma - improved performance, DVD playback |
| Mac OS X 10.2 | 2002 | Jaguar - Quartz Extreme, Address Book, iChat |
| Mac OS X 10.3 | 2003 | Panther - Exposé, fast user switching |
| Mac OS X 10.4 | 2005 | Tiger - 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):src/apps/infinite-mac/components/InfiniteMacMenuBar.tsx: Manages the application's menu bar, handling File menu actions (back to presets, close), View menu actions (scaling, pause/resume, screenshot), and Help menu items.
src/apps/infinite-mac/components/InfiniteMacAppComponent.tsx: The main application component, responsible for rendering both the system selection grid and the embedded emulator iframe, managing emulator lifecycle and communication.
Hooks & Utilities
Custom Hooks:src/apps/infinite-mac/hooks/useInfiniteMacLogic.ts: A comprehensive hook that manages emulator state, preset selection, window resizing, iframe communication via postMessage, and screenshot capture functionality.
src/apps/infinite-mac/presetAverageColors.generated.ts: Pre-computed average colors for each system's thumbnail, used for smooth loading transitions.
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.