AEJS

AEJS was an experimental Amiga 500 emulator written in JavaScript. The name stands for Amiga Emulator JavaScript and is pronounced “aegis”.

AEJS logo AEJS log

aejs splash screen

My motivation to build AEJS came from these sources:

  • The HTML5 era introduced new APIs which finally made it possible: Typed arrays, Web Audio, File, Canvas, Fullscreen, Gamepad
  • Fabrice Bellard’s JavaScript PC emulator
  • JavaScript performance was finally good enough to make it feasible
  • It bridged front-end web development with low-level machine code, both of which are super awesome
  • I still have the Amiga 500 I played with obsessively since 3 years-old
  • The 68000 is legendary and I wanted to find out why

I stopped development for these reasons:

  • This was my first emulator, and the Amiga 500 is a fairly complex set of chips, and I quickly realized it would take a very long time to complete. I decided to focus on other projects which could be finished in a more reasonable timeframe (I’m looking at you, ColorPal)
  • The final nail in the coffin was realizing that while JavaScript was definitely up to the task, there was pretty much no reason to write it entirely in JavaScript when it could be written in C and compiled to JS with emscripten. The result would be faster, more robust, and type-safe.

Scripted Amiga Emulator came out at around the same time I stopped contributing to AEJS. It’s based on WinUAE and was ported (by hand, I believe) from C++ to JavaScript. A very impressive project, but not at all what I was going for with AEJS. AEJS was about fueling my curiosity and exploration and was unlikely to ever be a usable emulator. works very well, but it didn’t demotivate me in any way.

I may come up with the motivation to resume development at some point in the future. I still love my old Amiga 500 and want to see it live on in some fashion. I don’t like having pet projects nipping at my heels that never go anywhere, though, so I’m calling this one dead (for now).

Addendum: I just learned today (2013-12-16) that Christian Stefansen ported PUAE (Portable Universal Amiga Emulator) to PNaCl. This allows UAE to run inside any Chrome browser. Check it out or fork it.