Wiki
Clone wikiMINE / Home
MINE Manifesto
MINE Isn’t Not an Emulator
A “clean room” reimplementation of the classic Mac OS APIs pre-OS X, using emulation and native calls to seamlessly integrate legacy Mac software with the host OS.
Goals
- Using native widgets wherever practical
- menus, windows and their native decorations, buttons, etc.
- Applications coexist with the host system, storing files on the host filesystem
- Improvements to the original Mac OS system where practical
- no virtual memory
- sandboxed processes
- dynamic heap?
- Released under GPLv3 or later
- Backend support for:
- X11
- Wayland?
- Quartz
- Windows
- X11
Things we probably should do:
- Borrow existing code from projects such as:
- ScummVM
- GrayBox
- MACE
- Mac-on-Linux
- Pretty much dead now in modern kernels, unfortunately
- (Mini) vMac
- Basilisk II
- Executor
- UAE?
- v68k?
- PearPC
- qemu
- Add compatibility modes ala WINE that allow troublesome Mac applications to work, albeit with perhaps less integration than without the mode activated
- Support loading and saving of files in MacBinary format for cross-platform support (where practical)
- And also native support where possible (probably only Mac OS X, but Linux support could turn around)
- Build the earliest version of Mac OS first, then build from there
- Have programs run “out-of-the-box”. No extra downloads beyond the MINE package.
- Except for code directly interfacing with the OS, it should be cross-platform
- And even then, the OS-specific code should be abstracted out
- Have a built-in debugger
- Probably CLI-only, at least internally
- Have an optional virtual desktop
- Fullscreen mode is really a pain, especially when forced upon the user
- Integrate with Linux to get icons to display, similar to Wine
- (Possible on Windows? Mac? CrossOver does this…)
- Have our own versions of normal Mac software
- Have someone with artistic talent draw us a minecart icon
Things we probably shouldn’t do:
- Emulate user-provided INITs or software that patches the OS directly
- Handle generic requests that talk directly to hardware
- Like NuBus cards, etc. -- these will be handled on a case-by-case basis
- Disassemble Apple’s code
- Disassembling Mac applications (that aren’t Apple’s) should be fine though
- Port over the system error dialog
- Port over Control Strip
Things we definitely won’t do:
- Require Apple-copyrighted material such as ROMs or system software
- MINE ultimately will be an open, unencumbered way for owners of legacy Mac software to run their applications on modern hardware without the need for Apple products
- Use released Apple source code, either officially or unofficially
- We know there is leaked source code out there. We refuse to look at it nor allow teammates to work on MINE that have looked at it.
- Unless properly licensed
- Anything specific to Mac OS X
Things we should keep in mind:
- Keep PPC support in mind, even though we’re obviously targeting 68k first
- Possibly have native PPC support on PPC?
- Supporting Color QuickDraw from the start is probably in our best interests
- Minus QuickTime extensions...
Updated