Apple //e emulator
Go to file
Aaron Culliney 2cc23cf35d Upgrade to GPLv3 "or later" and update copyrights 2015-10-22 21:09:13 -07:00
Android Upgrade to GPLv3 "or later" and update copyrights 2015-10-22 21:09:13 -07:00
Apple2Mac Upgrade to GPLv3 "or later" and update copyrights 2015-10-22 21:09:13 -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 Tweak dox 2015-04-12 16:14:04 -07:00
externals update dump_syms and minidump_stackwalk binaries to "latest" 2015-10-19 19:46:49 -07:00
src Upgrade to GPLv3 "or later" and update copyrights 2015-10-22 21:09:13 -07:00
.apple2 Interface menu changes 2014-03-25 23:42:05 -07:00
.gitignore moar Android ignores 2015-10-20 21:19:39 -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
COPYING Upgrade to GPLv3 "or later" and update copyrights 2015-10-22 21:09:13 -07:00
ChangeLog Refactor to use GNU build tools 2014-01-22 20:51:50 -08: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
TODO initial source drop, apple2-emul-0.7.4.tar.gz 2013-06-11 00:08:15 -07:00
configure.ac 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
valgrind.suppress Fix shutdown codepaths 2015-05-31 13:43:51 -07:00

README.md

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?