Apple //e emulator
Go to file
Aaron Culliney af42dc36b2 Squashed commit of the following:
CPU speed animation touch-ups, and enable building for desktop
    Rename/shuffle animation declarations and code
    Refactor backend video system to be a dynamically initialized module
    Basic CPU speed texture animation works on desktop Linux and Android
    Use static pixel buffers to avoid malloc/free churn
    Improve CPU animations
    First cut at CPU speed message animation
    Refactor some of the classic interface functions to be potentially reusable elsewhere
2015-03-22 18:53:13 -07:00
Android Squashed commit of the following: 2015-03-22 18:53:13 -07:00
Apple2Mac Unstick Mac builds and tests 2015-03-10 10:22:47 -07:00
disks DSK image loading considered slow, Use NIB image for faster tests (not specifically exercising DSK codepaths) 2015-02-24 20:42:30 -08:00
docs Show Mac screenshot 2014-12-07 14:14:25 -08:00
src Squashed commit of the following: 2015-03-22 18:53:13 -07:00
.apple2 Interface menu changes 2014-03-25 23:42:05 -07:00
.gitignore Android build system updates to support demo and full versions for both debug and release 2015-03-15 15:52:10 -07:00
ASM Refactor to use GNU build tools 2014-01-22 20:51:50 -08:00
AUTHORS Refactor to use GNU build tools 2014-01-22 20:51:50 -08:00
ChangeLog Refactor to use GNU build tools 2014-01-22 20:51:50 -08:00
configure.ac Squashed commit of the following: 2015-03-22 18:53:13 -07:00
COPYING initial source drop, apple2-emul-0.7.4.tar.gz 2013-06-11 00:08:15 -07:00
Makefile.am Squashed commit of the following: 2015-03-22 18:53:13 -07:00
NEWS Refactor to use GNU build tools 2014-01-22 20:51:50 -08:00
PROBLEMS Refactor to use GNU build tools 2014-01-22 20:51:50 -08:00
README initial source drop, apple2-emul-0.7.4.tar.gz 2013-06-11 00:08:15 -07:00
README.debugger initial source drop, apple2-emul-0.7.4.tar.gz 2013-06-11 00:08:15 -07:00
README.md Update README.md 2015-03-13 00:14:44 -07:00
reconf.sh Refactor to use GNU build tools 2014-01-22 20:51:50 -08:00
TODO initial source drop, apple2-emul-0.7.4.tar.gz 2013-06-11 00:08:15 -07:00

Apple //ix

Apple2ix is an Apple //e emulator implemented primarily in C with x86, x86-64, and ARM assembly language for the 65c02 CPU emulation module. In addition you will find a smattering of interface code in Objective-C/Cocoa, Java/Android, and GLSL.

Lineage

Apple2ix derives from the apple2-emul-linux project originally coded by various developers in the mid 1990's and FTP-uploaded as source tarballs to the original tsx-11.mit.edu Linux archive.

The original software was designed to work from the Linux console rendering via SVGAlib. It ran on par to the 1MHz Apple //e on an i386 (Pentium 100 class) or better machine. Later ports added X11 graphics support based on the original X11 DOOM source code drop, ty JC!

As of March 2015, the resurrected Apple2ix runs on MacOSX 10.9+, Debian GNU/Linux, and the ARM Android port is beginning to run =)

Project Goals

  • Portability and code resilience across a wide range of modern platforms including MacOSX, desktop Linux/BSD, iOS, Android -- But not Windows, just use the excellent AppleWin emulator if you're on Windows!
  • Reasonable emulation fidelity to the original Apple //e machine (timing, video, audio, etc...)
  • Binary Mac App/DMG, iOS App (unlikely to be available in iTunes store due to Apple's short-sighted prohibition of emulator software ... but possibly it will be available as an app in the Cydia alternate store or similar)
  • Binary Android App (Play Store and elsewhere)

Mac Package

Apple2Mac

A binary package for Macintosh is available at deadc0de.org
Size : 10240000 (10MB)
SHASUM : 81f2d55c2daaa0d3f9b33af9b50f69f6789738bf

Alt Size : 76820480 (75MB)
ALTSUM : 488a40d7f1187bcfd16d0045258f606a95f448cb

Linux+ Package

For Linux and *BSD, I do not personally relish being a package/port maintainer, so you should ./configure --prefix=..., make, make install like it's 1999 ;-)

You will need GCC or Clang compiler and other tools as determined by the configure script. Use the source!

Apple //ix

Project Tech

  • C language for the majority of the project (still the most portable/reliable language after all these years ;-)
  • x86 and ARM assembly language for 65c02 CPU tightloop
  • Extensive tests for 65c02 CPU, Apple //e VM, and display (expected framebuffer output)
  • OpenGLES 2.x graphics with GLSL shaders
  • OpenAL audio (emulated speaker and emulated Mockingboard/Phasor soundcards)
  • Objective-C and Cocoa APIs (Mac/iOS variant)
  • Java and Android APIs (Android app)

DOS 3.3

Semi-Ordered TODO

  • Android NDK port -- in progress 2015
  • DHIRES graphics are ugly, fix 'em
  • iOS/iWatch (including Apportable) ports
  • Proper VBL timing and vSync matching to the device (if available)
  • OpenGL shaders/tricks for style (various screen artifacts) and functionality (Disk ][ status overlays, etc)
  • Emulator save/restore and image compatibility with AppleWin
  • Other feature parity with AppleWin
  • Improved debugger routines (CLI/curses debugger?)
  • CPU module variants as-needed in aarch64, plain C, Clang IR, ...
  • Emscripten/web frontend?