libhfs | ||
libmfs@567eb930ae | ||
libres@5997cc7683 | ||
Mini vMac | ||
Mini vMac.xcodeproj | ||
minivmac@8aae0b1fd8 | ||
.clang-format | ||
.gitignore | ||
.gitmodules | ||
apt-control | ||
LICENSE.md | ||
Makefile | ||
README.md |
Mini vMac for iOS
Features
- Emulates Mac Plus, Mac II or Mac 128K
- Full simulated keyboard (including all Mac keys)
- Full sound output
- Uses external keyboard if available
- Regulable emulation speed
- Easy(ish) to import/export disk images
Requirements
- iOS 9 or later
- ROM image from Mac Plus, Mac II and/or Mac 128K
- Disk images with Mac software
Usage
ROM and Disk Images
You can import the ROM (vMac.ROM
) and disk images (with .dsk
or .img
extension) into Mini vMac from other apps (iCloud Storage, Dropbox, etc), using
AirDrop, iTunes File Sharing or the iOS Files app.
- To insert disk images, swipe left with two fingers and the list of disks will appear. Icons are automatically generated based on the contents of the disk.
- Tap an hold on a file to delete, rename or share
- Tap the Edit button to show all files, and the Create Disk Image option
The disk image menu will attempt to find an icon from the following sources (in descending order of priority):
- Volume icon (System 7)
- Application icon, if the disk contains only one application
- Application matching the name of the volume (not the disk image)
- Application with name written in the comment field of the volume
If no icon is found, it will show a standard floppy disk icon.
Keyboard
Swipe up with two fingers to show the keyboard, and down to hide it.
The emulated keyboard features all the keys on an Apple Extended keyboard (except the Power key). The Command, Option, Control and Shift keys are sticky, to make keyboard shortcuts easier to type. You can change the appearance of the emulated keyboard in the settings.
If you have an external keyboard attached, you can use it too, although some shortcuts may interfere with iOS.
Mouse
You can choose to use the screen as a touchscreen, where tapping on the screen acts a mouse click, or as a trackpad. In trackpad mode, dragging is done by tapping twice fast and holding it down. 3D touch can also be used for clicking and dragging on supported devices.
If you use a mouse or trackpad on iPad OS 13.4 or newer, it will be used automatically.
If you have a jailbroken device and BTC Mouse & Trackpad, Mini vMac will use your bluetooth mouse or trackpad.
Settings
Swipe right with two fingers to show the settings dialog, where you can change the following:
- Speed: make the emulated machine faster than a Mac Plus
- Mouse Type: switch between touchscreen and trackpad mode
- Keyboard Layout: change the layout of the emulated keyboard
- Display Scaling: choose how to scale the display
- Emulated Machine: changes won't take effect if there are disks inserted
Installation
The easiest way is to install an IPA from releases with AltStore.
Building from source
To build the project, make sure you check out the repository and submodules:
git clone https://github.com/zydeco/minivmac4ios.git
cd minivmac4ios
git submodule update --init --recursive
The folders minivmac
, libmfs
and libres
should not be empty. The source code zip file you can download from GitHub does not include all dependencies.
To install run the app on your device with Xcode, you'll to perform some additoinal steps:
- Pair the device with Xcode
- Specify your Apple ID in the Account preferences in Xcode.
- Change the Team (to your own) and Bundle Identifier (for example, change the
net.namedfork
prefix to your own) in the “Mini vMac” target, under the “Signing & Capabilities” tab. - Enable Developer Mode on your device (iOS 16 and later).
- On older iOS versions, trust your developer profile in the iOS Settings (under General > Device Management) after installing the app for the first time.
Adding new emulated machines
See documentation on the wiki.
Credits
- Mini vMac for iOS by Jesús A. Álvarez
- Mini vMac ©2001-2021 Paul C. Pratt
- vMac ©1996-1999 Philip Cummins & al.
- hfsutils ©1996-2000 Robert Leslie
- libmfs and libres by Jesús A. Álvarez