Binary Translated Arcade Games
Classic Arcade Games in Java by Static Binary Translation
This section contains my translations of classic arcade games to Java applets. I used a technique
called static binary translation (SBT) or sometimes static binary recompilation to generate
Java programs from the original arcade game program. In an emulator, as e.g. in JAE or MAME,
the emulation engine interprets the game program instruction by instruction, and for each instruction
performs the actions associated with it during run-time. With SBT all the game program is translated
at once to a semantically equivalent Java program. This program then usually runs faster than the
emulated version of the game, because the overhead of interpreting each instruction during run-time
is eliminated.
[3]
Asteroids (Atari 1979):
The arcade game Asteroids is a true arcade classic and was originally written by
Ed Logg of Atari Inc. in 1979. It was the first arcade game I ever played.
This Java version was created 26 years later by translating the program code,
originally written for the 6502 CPU of the Asteroids machine, to Java.
The translation was made by a Java program I wrote, which generates corresponding
Java program code for each 6502 instruction and applies some optimization techniques
to the generated program (e.g., removal of redundant flag calculations).
This project is open source and you can download a zip file with the applet ready for installation on your
PC or website and with the complete source code in Java.
Click
here to play Asteroids now.
Download the game from
here, but please do not
forget to credit Atari for the original game and me for translating it to Java :-)
[2]
Astro Fighter (DECO 1980):
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 (bootlegged or made under license by
the company Zaccaria).
This Java version was created by translating the Astro Fighter program code,
originally written for the 6502 CPU of the Astro Fighter machine, to Java.
The translation was made by a program, which generates corresponding Java program code for
each 6502 instruction and applies some optimization techniques to the generated program
(e.g., removal of redundant flag calculations).
This project is open source and you can download a zip file with the applet ready for installation on your
PC or website and with the complete source code in Java.
Click
here to play Astro Fighter now.
Download the game from
here, but please do not
forget to credit DECO for the original game and me for translating it to Java :-)
[1]
Tailgunner (Vectorbeam/Cinematronics 1979):
Tailgunner is a nice vector game made by Dan Sunday of the company Vectorbeam in 1979. Vectorbeam and
the game were sold to Cinematronics later. Tailgunner was very advanced for its time. It is probably
the first 3D vector game (older than Battlezone). The exact reproduction of the game is not
achieved by a conventional CPU emulator, but by so-called static binary recompilation.
Graham Toal wrote a really cool program, which can
translate the original game code from C-CPU machine language to C. With Graham's help I ported his generated
code to Java and added the graphical Java environment to play the game in an applet.
Thank you Graham, it was a cool project.
This project is open source and you can download a zip file with the applet ready for installation on your
PC or website and with the complete source code in Java.
Click
here to play Tailgunner now.
Download the game from
here.