# Felix + Ravi · First Mac preview

**Version:** 2.1.0-mac.1 · **System:** macOS 13+ · **Chips:** Intel and Apple Silicon, in one universal app.

This is the first Mac tester build. It was cross-compiled on Linux and has not yet been launched on a physical Mac or macOS VM. The controls and portable game rules have passed the included tests; native startup, overlays, menus and platform integration still need a Mac test. It is ad hoc signed and **not Apple notarized**, so macOS can show a developer warning or block it.

## Install

1. Download `Felix-Ravi-Mac-2.1.0-mac.1-universal.zip` from **https://felixandravi.com/**. Wait for the download to finish.
2. Open the ZIP in Finder. Keep the `Felix + Ravi.app` bundle intact.
3. Move the app to Applications, then open it. Android Studio, Node and Python are not needed to run the prebuilt app.
4. If macOS warns that the developer cannot be verified, Apple's normal **System Settings → Privacy & Security → Open Anyway** option may be available after the first attempt. Review the warning and the expected download source before choosing it. If the app is reported as damaged, or no appropriate option is offered, stop and keep the exact message for troubleshooting.
5. Once controls open, choose **Let them wander** (or **Show the pair**). Look for **F+R** in the menu bar. Close the controls window to keep the companions running.

An Apple Developer ID signed, notarized public release needs a later Mac signing/testing step. This preview does not claim that trust status. Do not disable system-wide security protections to install it.

## Their new desktop

- **Click** a companion for a pat. **Drag** to move them. **Right-click** for a shared moment, wake/stop, or controls.
- The menu bar opens controls, shows/hides both companions, wakes them or quits the app. Closing the controls does not quit the pair.
- Choose their display, size, wandering speed, following and pins in **Your space**. Pinned companions must be unpinned before a desktop pair moment can begin.
- Actual naps stay still. Walking always uses awake artwork. The remembered Sleepy mood is a feeling, not a paused sleep state.
- The controls follow light, dark, the Mac's system appearance, or a local-time schedule. Halloween candlelight is a separate toggle. Reduced-motion system preferences suppress theme transitions.
- Weather, when enabled, shows the current observation for a city you choose. It uses no GPS. Old or unavailable observations are marked stale; no forecast is invented. Battery information comes from the Mac when a battery source is reported; desktops may say Battery unavailable.
- Optional reactions read only the front application's name, without screen recording or reading window contents. Compatible names include Finder, Safari/other browsers, Discord, music and editing apps. Not every app has a reaction.
- Retro sounds are off by default. Enable them and set volume in Your space.

## Bring your existing game over

1. On Android or Windows **2.1.0**, export a `.frsave` from its progress transfer controls.
2. Copy the file to the Mac through any file-transfer method you use.
3. In the Mac app, open **Your space → Import a save**. Check the wallet/moments/Candy preview, then import. If this Mac has a local owner PIN, unlock it first.
4. The import **replaces** this Mac's progress. It does not merge two wallets. The current Mac save is backed up first.
5. To go back, use **Export progress**, move that `.frsave` to Android/Windows 2.1.0, then import it there.

Wallet, ownership, costumes, room placement, memories, daily dates, scores, first story choices and unfinished story pages travel together. PINs, selected city, sounds, theme mode and other device preferences stay local. Active animations and unfinished arcade rounds do not travel. Imported daily claim dates prevent collecting a second reward for the same saved date.

The app saves to `~/Library/Application Support/Felix-Ravi-Mac/state.json`. Before the last import/restore is saved as `state.backup.json`. **Restore before last import** restores the previous wallet/preferences while retaining this Mac's current owner PIN. If the save cannot be read, the app stops instead of silently replacing it. Keep a copy of that folder and your latest `.frsave` before troubleshooting. A forgotten PIN has no online recovery; manual exports of progress do not include the PIN.

## What is included

The 2.1.0 pair, 10 bond-gated moments, alternating conversation openers, eight facial expressions, +2 default currency per eligible finished moment, calendar daily rewards, local owner prices/rewards, shared wardrobe and accessories, a movable room, furniture, routines and kept memories. Both stories save page-by-page; replay keeps the first ending and gives no story currency.

Candlelit Secrets includes the independent theme toggle, seasonal moods/dialogue, eight costume choices (including everyday), Candy daily, three room clues, five quests, three decorations, free moth/key accessories and The Door That Waited. The four games are Candy Catch, Pumpkin Pairs, Lantern Lights and Candle Circuit. Arcade rewards save once when a result finishes. The room and arcade pause when their controls are inactive; the desktop pair can continue when controls are closed.

There are no online accounts/cloud saves, no automatic login-at-boot setting, and no iOS build. Orbit is not bundled. macOS doesn't offer Android's overlay permission screen; floating windows are implemented with AppKit.

## First Mac test: what to report

After keeping an export of your existing game, check these on a Mac:

1. Opening the app reaches controls; the menu bar is visible. Note macOS version, chip and the exact first-launch warning, if any.
2. Both pets appear, stay transparent, allow clicks around them, drag independently and appear in the expected Space/display. Try an app in full screen and an external display if available.
3. Start a nap, wait, then wake them. Confirm neither walks during active sleep and walking uses open eyes.
4. Change an outfit, finish a moment, claim a daily, quit normally and reopen. Confirm progress and local preferences remain.
5. Export, then import a spare `.frsave`. Confirm unfinished story pages resume and the previous local save can be restored.
6. Try sound, system dark mode, battery display, optional city weather and front-app reactions. Note exactly what failed; avoid sharing the owner PIN or the raw local state file.

Known verification limit: no native macOS execution was possible in the build environment. Automated checks and verified ad hoc code/resource signatures do not prove AppKit/WebKit behavior on a real Mac.
