I just finished another classic game in a fully ported version: Asterocks aka Asteroids.
Here's a screenshot:
It features up to 32 asteroids on screen, rotating spaceship and thrust + hyperspace (use with caution!), plus the large and small saucers that shoot at you. Each level has more asterocks and meaner saucers. Be a bit patient when you die, it may take a while before you re-appear, because you only appear when there's enough space around you. Since the screen is small, it may take a few seconds.
Biggest problem in programming was the 4k limit of ram. Since the rocks move in different angles and speeds, it basically needed to be floating point variables in a 32 sized array, which means: x, y, xspeed, yspeed each times 32 = 128 times 4 bytes per value = already 512 bytes of ram. Since I started with up to 64 rocks on screen (only later I read that the original arcade game has even less than 32 on screen at a time!), it was 1024 bytes -> much too much. So I had to come up with a solution to "simulate" floating point without using it. What I did is to handle the action on a virtual screen that is 8 times the size and at drawing-time divide positions by 8. The result is that I can use integer values for speed and positions. Get it? If not, doesn't matter. Just enjoy the game.
Latest Update: Real sounds added! Enjoy the game.
If you like it, I'd be happy to recieve some comments and donations on Paypal to yoda@yodasvideoarcade.com