Skip to content

Latest commit

 

History

525 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

izapple2 - Apple ][+, //e emulator

Portable emulator of an Apple II+ or //e. Written in Go.

Features

izapple2 emulates the Apple ][+ and the Apple //e, enhanced or not, and the Base64A and Basis 108 clones. See doc/features.md for the complete list of features and supported cards and graphic modes.

Installation

No installation required. Download the single file executable izapple2 for Linux, Windows or Mac. It is the SDL2 frontend, see Frontends for the others. Build from source to get the latest features.

Optionally, it can be installed with homebrew using:

brew install ivanizag/tap/izapple2

Default mode

Execute without parameters to have an emulated Apple //e Enhanced with 128kb booting DOS 3.3 ready to run Applesoft. The cards it comes with are in the default configuration:

casa@servidor:~$ ./izapple2

DOS 3.3 started

Play games

Download a DSK or WOZ file or use an URL (Asimov is an excellent source):

casa@servidor:~$ ./izapple2 "https://www.apple.asimov.net/images/games/action/karateka/karateka (includes intro).dsk"

Karateka

Play the Total Replay collection

Download the excellent Total Replay compilation by a2-4am:

casa@servidor:~$ ./izapple2 Total\ Replay\ v6.0.1.hdv

Displays super hi-res box art as seen with the VidHD card.

Total Replay

Command line options

See doc/command_line.md for a complete guide on command line configuration.

Frontends

The emulator itself is a Go library. What you run is one of the frontends in the frontend directory: they all build the same machine, take the same command line options and load the same disks, but they differ in what they can show and in how you talk to them.

Each one has a page with how to build it, how to use it and what it can not do:

  • a2sdl: a window with SDL2. The complete one, and the one in the releases and in the Homebrew formula. Use this one unless you have a reason not to.
  • a2sdl3: the same, on SDL3. It needs neither cgo, nor a C compiler, nor SDL developer files, and it cross compiles to every platform from any of them. Experimental, not in the releases.
  • console: text mode right on the terminal with ANSI escape codes, without the SDL2 dependency. Input goes in a line at a time.
  • a2libretro: a libretro core, to run inside RetroArch, Lakka, Batocera, RetroPie and the rest. On a Mac, doc/frontend_libretro_macos.md walks through the whole thing from installing RetroArch.
  • a2ebiten: a window with Ebitengine. The same keys as a2sdl, the same disks dropped on the window and no joysticks. It is the desktop half of the WebAssembly frontend.
  • a2wasm: the emulator in the browser, compiled to WebAssembly with a React interface around it.
  • a2fyne: a window with Fyne, a toolbar and a panel listing the cards in the slots. No sound. Unfinished.
  • headless: no window and no screen, a command prompt to drive the machine and take snapshots. For scripting and for tests.

Additionally there is a derived project, izapplebasic, that adds a couple of frontends to a simplified Apple ][+ emulator with no cards and tape drive:

  • CLI: with getline like support and command history.
  • Telegram: Interactive use. Currently running at https://t.me/a2basic_bot

Building from source

Every frontend is a Go main package in its own directory. With a working Go installation, the build is always:

git clone github.com/ivanizag/izapple2
cd izapple2/frontend/a2sdl
go build .

That builds a2sdl, the SDL2 frontend, which needs a C compiler and the SDL2 developer files: libsdl2-dev on Linux, brew install SDL2 on MacOS, mingw-w64 and the SDL2 developer files on Windows. See doc/frontend_sdl2.md for the details.

The other frontends replace a2sdl with their own directory and need other things, or nothing at all. Each page in Frontends has its own instructions.

About

Portable emulator of an Apple ][+ or //e. Written in Go with multiple frontends.

Topics

Resources

Stars

68 stars

Watchers

6 watching

Forks

Releases

Used by

Contributors

Languages