Astro Fighter in JavaScript by Static Binary Translation

The arcade game Astro Fighter was originally written by Data East Corporation (DECO) in 1980. It was one of the first arcade games I ever played, though the version we had in our pub was called Astro Wars (remake based on a Signetics CPU by the Italian company Zaccaria).

This JavaScript version was created 35 years later by the method of static binary translation. That means, that the program code originally written in the machine language of the 6502 CPU of the Astro Fighter machine is converted one-to-one to JavaScript. The translation was automized by a Prolog program, which generates semantically equivalent JavaScript code for each 6502 instruction and applies some optimization techniques to the generated program (e.g., removal of redundant flag calculations). The outcome is an exact simulation of the original arcade game.

The graphics interface and the emulation of the Astro Fighter video hardware were directly coded in JavaScript and rely on HTML5 and the Canvas element. So you should have a quite recent browser version supporting these features to be able to play the game.

Click here to play Astro Fighter now..