Wiki

Clone wiki

MINE / 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
  • Released under GPLv3 or later
  • Backend support for:
    • X11
      • Wayland?
    • Quartz
    • Windows

Things we probably should do:

  • Borrow existing code from projects such as:
  • 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