Apple //e emulator
Go to file
2015-10-16 20:34:15 -07:00
Android Refactor disk interface API function names 2015-10-15 22:51:44 -07:00
Apple2Mac Refactor VM initialization and shutdown 2015-09-11 23:03:17 -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 Squashed 'externals/breakpad/' changes from 32e8c7a..999dbf6 2015-10-02 21:18:49 -07:00
externals Merge commit '29b5bdf05a283e2872c5e09d0d53f0f4192711b1' into develop 2015-10-02 21:18:49 -07:00
src Minor refactor internal API 2015-10-16 20:34:15 -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 'externals/breakpad/' changes from 32e8c7a..999dbf6 2015-10-02 21:18:49 -07:00
COPYING initial source drop, apple2-emul-0.7.4.tar.gz 2013-06-11 00:08:15 -07:00
Makefile.am Add function-call time tracing for Linux/Android 2015-10-04 14:22:26 -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 Squashed 'externals/breakpad/' changes from 32e8c7a..999dbf6 2015-10-02 21:18:49 -07:00
README.debugger initial source drop, apple2-emul-0.7.4.tar.gz 2013-06-11 00:08:15 -07:00
README.md Squashed 'externals/breakpad/' changes from 32e8c7a..999dbf6 2015-10-02 21:18:49 -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
valgrind.suppress Fix shutdown codepaths 2015-05-31 13:43:51 -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)
  • Maintain binary Android App (Play Store and elsewhere)

Android

Currently pre-alpha testing the Google Play Store version...PM me if you would like to be on the Android VIP testers invite =D

Running at 30FPS on a Gingerbread (Android 2.3.3): Apple2ix on HTC running Gingerbread

Running at 60FPS on 2013 Nexus 7 running KitKat (Android 4.4.x): Apple2ix on Nexus 7 running KitKat

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?