Skip to content

pappadf/granny-smith

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

254 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Granny Smith

CI License: MIT

Granny Smith is a browser-first Macintosh emulator running Mac OS (System 2 through System 7) and A/UX.

See it: Screenshot gallery of A/UX, MacTest, and more from the test system

Try it: Run Granny Smith in your browser Use Chromium browser (Safari and Firefox have known issues)

A/UX 3.0.1 booting on SE/30

Tested Configurations

✅ is tested on every CI run. Some other combinations may also work - they just aren't continuously verified.

Software Plus SE/30 IIcx IIx
System 2.0 - - -
System 3.2 - - -
System 4.2 - - -
System 6.0.8 - -
System 7.0.1 ‡ -
System 7.1 - -
A/UX 3.0.1 † - - -
MacTest -

† On SE/30, boots from a pre-installed HD image to a shell and the full retail Installer flow runs from floppy + CD. ‡ On IIx, only a no-crash boot smoke test - JMFB colour modes on the IIx profile are still minimum-viable.

Design Principles

The guiding principle of this project is "keep it simple" - simple for users to run classic Macintosh software, and simple to develop and maintain.

For users:

  • Runs in the browser - no installation required
  • Continuous background checkpointing - close or reload the tab without losing your session
  • Drag-and-drop disk images - even compressed *.sit.hqx archives are handled transparently
  • Built-in AFP file server - bridge the browser/host filesystem into the guest OS

For developers:

  • Extensive automated testing - unit tests, headless integration tests, and Playwright end-to-end tests
  • Highly portable C99 core - no special runtime requirements
  • Simple CPU model - no JIT compiler or meta tools; we rely on the compiler and modern hardware for performance
  • Compact and maintainable - the entire CPU instruction decoder is under 550 lines; the 68000 opcode implementations fit in under 1,000 lines (68030 support excluded)
  • Comprehensive documentation - hardware documentation in Markdown, accessible to both human developers and AI agents
  • AI-agent friendly - repository organized to simplify work for coding agents

Getting Started

You will need a Macintosh ROM image and a bootable system disk image.

  1. Open Granny Smith in any modern browser
  2. On first launch, upload a Macintosh Plus, SE/30, or compatible ROM - it is persisted in the browser's OPFS storage, so you only need to do this once
  3. In the Machine Configuration dialog, pick a model (Plus, SE/30, …), choose RAM, and attach disk images to the floppy / SCSI / CD slots
  4. Click Boot - your session is checkpointed continuously in the background, so closing or reloading the tab won't lose state
  5. Once running, you can drag-and-drop additional disk images directly onto the screen to insert them at runtime

Disk images can be raw (.dsk, .img), compressed (.sit.hqx), or packaged in .zip archives. They are decompressed transparently via the bundled peeler library.

For build, test, and contribution instructions, see CONTRIBUTING.md. Architecture and design docs live in docs/ARCHITECTURE.md, and coding guidelines in AGENTS.md.

Known Limitations

  • Safari - known rendering and audio issues; not currently supported
  • Firefox - works partially; some compatibility problems remain
  • A/UX runtime - occasional residual errors during sessions
  • LaserWriter - printer is identified, but print jobs don't complete correctly
  • AFP - file content access not yet implemented (mounting and browsing only)

Acknowledgments

Trademarks

All trademarks referenced in this project are the property of their respective owners and are used for identification purposes only. This project does not claim any endorsement by or affiliation with the trademark holders.

License

MIT

About

Macintosh emulator running classic Mac OS (System 2 through System 7) and A/UX

Topics

Resources

License

Code of conduct

Contributing

Security policy

Stars

Watchers

Forks

Contributors