Bobbin: new Apple II emulator, aimed at accelerating software development

3 posts / 0 new
Last post
Last seen: 3 months 3 weeks ago
Joined: Aug 15 2023 - 19:57
Posts: 9
Bobbin: new Apple II emulator, aimed at accelerating software development
Binary Data bobbin-0.4.1.tar.gz681.36 KB
Binary Data bobbin-0.4.1-source.tar.gz565.3 KB

Announcing Bobbin v0.4, an Apple Emulator.

Why Yet Another Emulator? What does Bobbin do that Nintendon’t?


  • Runs entirely in your terminal, using either standard input/output, or a curses screen display
  • Can be used in shell scripts to accept typed text from standard input, and emit program output to standard output
  • Can watch a program binary file for changes, and reload itself with the new program binary when it does, greatly accelerating development cycles for software on the 8-bit Apple

Read more about it (and see a couple of demo videos) here.

Get it at

Bobbin is distributed in source form only; you must be comfortable building software via ./configure && make && make install. I will not make myself available to help you build and install (unless it’s due to a bug). You also really want to have ncurses installed, unless you only want to use the standard input/output interface (no screen representation).

Bobbin is written in C for modern, standards-conformant Unix OSes. It is tested on MacOS Ventura, and on Ubuntu Linux running under Windows WSL.

Bobbin is a "highly hackable" Apple ][ emulator, aimed especially at improving productivity for devs of Apple ][ software by offering convenient terminal-based interface options, redirectable "standard input and output"-oriented options, and custom-scripted, on-the-fly adjustments to the emulated machine.

This is a demonstration of an early version (roughly two days into development) of the pipe-able, standard I/O emulator interface (dubbed the "simple" interface):

Please note: the video shows the use of command-line options --simple and -m ][. In the latest version of the bobbin, you must use -m ][+ (or -m plus), and also add --simple-input fgets, to obtain approximately the same results as shown in the video. If you use -m ][ as shown in the video (and if your shell even allows that), instead of the correct -m ][+, then bobbin will drop you directly into Integer (Woz) BASIC, instead of AppleSoft.

And here's another video (clickable) that showcases additional features in a more recent version of bobbin (~two weeks of work):

BusError's picture
Last seen: 1 month 3 weeks ago
Joined: Jul 9 2023 - 06:39
Posts: 63
I had a good play with that,

I had a good play with that, it's cool! Really like the insta-reload. I'm subscribed to it on github, looking forward to see it evolve :-)


Last seen: 3 months 3 weeks ago
Joined: Aug 15 2023 - 19:57
Posts: 9
The motivating feature!

The insta-reload was the motivating feature for bobbin's creation! Right now just works for binary blobs, but I should probably make it work for disk images too, soon.

The feature is inspired  by Steven Hugg's, the IDE I've been using up to now for all my Apple II development. It has the killer-app feature of recompiling, and reloading the emulator with your latest code changes, everytime you pause in typing! ...but it's also riddled with things I had to work around. The editor doesn't handle indentation well, the github integration isn't configurable and includes the built binaries, all your sources have to be at the first level of directory hierarchy, the emulator only does a II+, with a copyright-free ROM that doesn't have BASIC (but you can supply an alt ROM), and if you want to use and test your code with BASIC (from your supplied ROM) you have to do some work to bootstrap that.

But it was all still very worth using it anyway, because of how sweet and rapid the development cycle is. I wanted to keep that loveliness, but be able to use a proper editor and proper git, which meant writing (or modifying) an emulator that can see my filesystem. And I'd been wanting tty-based emulation for lazy, direct use at the terminal, for things like a quick check of what AppleSoft does in certain situations... thus bobbin was born!

Log in or register to post comments