Yet another emulator - Granny Smith

The world doesn't need yet another Macintosh emulator, but we all need a hobby, right? If anyone is interested, I've just released my small hobby project on GitHub - an embryo of a browser-first Macintosh emulator called "Granny Smith". You can try it out live here:

https://pappadf.github.io/gs-pages/latest

I strongly recommend using a Chromium-based browser for now - I've noticed some mouse movement issues in Safari.

It's extremely simple by design: the CPU instruction decoder is under 550 lines, and all opcode implementations total less than 1,000 lines. It's not at all cycle-accurate, just approximate, but accurate enough to pass the MacTest motherboard and floppy hardware tests without errors.

- Background checkpointing that stores state in IndexedDB, so you can reload the browser without losing your session
- Full checkpoint download/restore via drag-and-drop
- Mount compressed disk images (e.g., *.sit.hqx) directly through drag-and-drop
- Built-in AFP file server (work in progress) for accessing browser-side files from the emulated Mac

Just a prototype, so nothing is stable and well tested (yet). More details on the GitHub page: https://github.com/pappadf/granny-smith

Feedback and bug reports are of course very welcome!
 
I don't use any chrome based browsers myself, but i can confirm Firefox also has some mouse pointer issues, moving the the mouse pointer around seems to be 2-3 times slower on the emulation compared to my actual computer.
apart from that i was able to run system 6.0.7 fine. i only did some quick testing as i wasn't able to load any of my hdd images to do more.
 
Thanks for the feedback! This is useful information! I haven’t tested with Firefox, but it’s obvious that I should.

There isn’t a good UI for setting/configuring HD images, yet. In theory, you should be able to just drag and drop, but this hasn’t been well tested. The only alternative at the moment is to do it from the terminal (attach-hd <path> [scsi-id]). I need to add a proper machine configuration panel or dialog. I’ve just merged SE/30 and 68030 support, so some kind of machine configuration interface is also needed to switch between models as well. I will fix that.
 
Yes, I've used Claude Code, Copilot, Gemini Code Assist, and Codex. This recently became my "playground" project for experimenting with them all. I debugged the MacTest application (hardware test suite) running on the Plus by hand- which took a very long time. I tried allowing Claude to use a "headless" app variant for bringing up MacTest on the SE/30 instead, and it was surprisingly efficient. So in the end, it is just a matter of efficiency.

I don't mind if you call it "slop". I have the utmost respect for people who refuse to touch Claude or Copilot- regardless of whether it's professionally or as in this case just for a hobby project. There is a certain beauty in 100% hand-made code that otherwise gets lost in the process.
 
Last edited:
For full disclosure, I should probably add Mistral to the list as well. Mistral is surprisingly efficient at OCR-like tasks, i.e., converting PDFs and scanned reference manuals to Markdown in bulk. That has basically been the workflow recently - convert full reference manuals to cleaned-up Markdown, and let the agents work based on that.
 
Back
Top