My original 7800 Games 7800basic Programming | Touchdown Challenge 7800 | Smashteroids Demo | Adventure Demo
 Map Tutorial  | Graphics Tutorial |
Original 7800 Source Code | Dungeon Stalker | Boom!
 My Original 7800 Games
Below are the Atari 7800 games and demos I've written to date, along with bookmarks to a few tutorials I wrote at the bottom of this page.  I provided download links to the binary files for emulators for convenience, but each game has it's own section with additional downloads and screenshots.
 Touchdown Challenge 7800    Adventure Demo    Smashteroids Demo   Boom!   Dungeon Stalker  

Games and Source Code (a78)  


Adventure Demo   Multi-room Adventure demo featuring the original map from the NES classic.  
Smashteroids Demo   A space shoot'em'up game inspired by the Intellivision game Astrosmash  
Touchdown Challenge 7800   A football game inspired by the iOS game Kickoff.  
Boom!   A game inspired by the 2600 version of Activision's Kaboom.  
DungeonStalker_(version 1.232)   An arcade style game inspired by the original Intellivision game Night Stalker (updated 7/8/15)  


Creating 7800basic graphics   A tutorial on how to create graphics that are compatible with RevEng's 7800basic  
Creating 7800basic maps   A tutorial on how to create maps that are compatible with RevEng's 7800basic  
 7800basic Programming Environment
  7800basic is a programming environment created by Mike "RevEng" Saarna, it is based on Fred Quimby's batariBasic. 7800basic is a BASIC-like language for creating original Atari 7800 games. It is a compiled language and the compiler runs on a computer, but it creates a binary file that can be run on an Atari 7800 emulator or used to make a cartridge that will operate on a real Atari 7800. It runs under Windows, Mac OSX or Linux.  Mike is also part of the team that updates MESS, it is the most accurate Atari 7800 emulator available right now.  I highly recommend you use MESS for playing 7800 games in emulation.  You can download the latest version and view the development of 7800basic in the AtariAge thread here.  


Link to AA post for latest version   RevEng updates the code frequently, so please visit the official thread for the latest release.  
Link to RT for latest documentation   Random Terrain maintains the current version of the instruction manual on his site.  
7800 Emulation  


 MESS   You'll need an emulator to play your 7800basic games on a computer.  Download the latest version of MESS.  
 Atari 7800 BIOS Files   You'll need the BIOS files to use with the emulator.  
Configuring the MESS Emulator for the Atari 7800  



Make sure you have the correct BIOS files, I have them linked above.

The download contains two files:

  7800.u7 - CRC: 5D13730C
  c300558-001a.u7 - CRC: A0E10EDF

The attached BIOS file should remain zipped inside the roms folder that you have installed MESS:


The above is the correct setup (path).

If you are using the command-line version and not utilizing MESSUI, to launch a game the following syntex is correct (you need the quotes too):

  C:> MESS a7800 -cart "C:\ROMS\Atari 7800\Dig Dug (1987) (Atari).zip"

The above will launch MESS specifying the NTSC Atari 7800 system, loading a cartridge where the path of the ROM is located under 'C:\ROMS\Atari 7800', and the image name is 'Dig Dug (1987) (Atari).zip'.

Of course if your rom is not zipped, just replace as:

  C:> MESS a7800 -cart "C:\ROMS\Atari 7800\Dig Dug (1987) (Atari).a78"

And *.bin files will not work. You need *.a78 files.

If you are 'stuck' at the system info window the first time you launch MESS running the Atari 7800, just press the left and right arrow keys. :)

If you are looking to first tweak some settings, then at the command line type the following:

  C:\MESS>mess -cc

It will create a 'mess.ini' file where you have mess installed. Open the mess.ini file in Notepad. There are a slew of options you can configure.

For configurable options while MESS is running, just hit the 'Tab' key. Use the 'arrow' keys along with 'Enter' key to drill deeper, or the 'Esc' key to back out of a menu option.

Pressing 'Esc' with no menu option(s) on the screen will exit the emulator.

Once your game is created, and mess is installed, run it with the command mess a7800 -cart game.a78.  I wrote a simple batch file in windows to make it easier to launch a game from the command line.  I saved it as game.bat, and I just type 'game binary' to launch, where 'binary' is the name of my file without the a78 extension.  Below is the batch file.

 @echo off

 if "%1"=="" goto error
 c:\data\78b\mess a7800 -cart "c:\MESS\ROMS\%1.bas.a78"
 goto end


 echo Atari 7800 MESS game launcher
 echo .
 echo You must type in a game to launch


 Dungeon Stalker

Dungeon Stalker is an arcade style game written as an homage to Intellivision's Night Stalker.  Many gameplay elements were taken from Night Stalker but there are key differences that I think improve the game.  It was written along with RevEng from AA, I couldn't have done it without his help.  

This game uses the much lesser used 320A mode which allows for a much higher resolution at the expense of single color sprites.  I chose it because I thought it was a perfect fit for a game designed to look and play similar to Night Stalker.  It also supports the 7800 high score cart and AtariVox saving and speech, there are three dozen unique speech phrases in the game.  There are plans for artwork and an instruction manual, neither of which are completed yet.  I higly recommend downloading the PDF version of the manual, as it describes key features of the game that you'd otherwise miss.  The boxed release of the game will include a brand new manual designed by David Exton.

It's complete!  Version 1.245 is the final version of the game that will be released on Cartridge (and a box & manual) for the first time at the Portland Retro Gaming Expo on October 17th, 2015. Shortly after the show it will be available as a general release in the AtariAge store.

 Gameplay Video  



Here is a video demonstration of the gampelay for Dungeon Stalker (v1.232, not the final release), created by AtariAge user Trebor:  https://www.youtube.com/watch?v=sj4_JzNFqBc



DungeonStalker_1.245.a78   Dungeon Stalker v1.245 binary for use in an emulator (Final Version)  
DungeonStalker_1.245.bin   Dungeon Stalker v1.245 binary for use on real hardware (Final Version)  
DungeonStalker_Dev.zip   Dungeon Stalker Development Files (binaries and a78 files from version 1.00 to 1.232)  
DungeonStalker PDF Manual   Dungeon Stalker v1.245 Instruction Manual (Rev c)  

Note that the screenshots below are not from the final version, although they are very similar.  There were a few changes to the maze and sprites in the final release.







The basic gameplay of Boom! is similar to Activision's Kaboom. There are 5 levels that get progressively faster, once you're on level 5 the speed doesn't change. There is no paddle support, use your joystick to move the bucket(s) back and forth. Your bucket will wrap to the other side of the screen when you reach the edge, it makes it a bit easier to get to bombs on both edges of the screen. You start with three buckets, if you miss a bomb you will lose one. You get 10 points per bomb caught. Once you've lost all 3 buckets you will go back to the title screen and your current score will be displayed.

You can view the original development thread on the AtariAge forums here.



boom15.bas.a78   Boom! binary for use in an emulator  
boom15.bas.bin   Boom! binary for use on real hardware  
boom15.bas   Boom! 7800bas Source Code  
boom15.asm   Boom! assembly  
boom15.zip   All Boom! files, including the graphics files, for compiling in 7800basic  

 Touchdown Challenge 7800
The object of Touchdown challenge is to run to the top of the field to score touchdowns while avoiding being tackled by the other team.  The patterns of the opposing team will change, and some levels have a single player on the other team that will relentlessly chase you down.

You can view the original development thread on the AtariAge forums here.



football8.bas.a78   Touchdown Challenge binary for use in an emulator  
football8.bas.bin   Touchdown Challenge binary for use on real hardware  
football8.bas   Touchdown Challenge 7800bas Source Code  
football8.asm   Touchdown Challenge assembly  
gfx_football.zip   Touchdown Challenge graphics files, for compiling in 7800basic  

 Smashteroids Demo
Smasteroids was written in an afternoon as an homage to the original Intellivision Astrosmash game.  It is just a demo and no further development is going to take place.  It is included as a sample game in the 7800 basic distribution.

You can view the original development thread on the AtariAge forums here.



astrodemo8.bas.a78   Smasteroids binary for use in an emulator  
astrodemo8.bas.bin   Smasteroids binary for use on real hardware  
astrodemo8.bas   Smasteroids 7800bas Source Code  
astrodemo8.asm   Smasteroids assembly  
gfx_astro.zip   Smasteroids graphics files, for compiling in 7800basic  
astromap.tmx   Smasteroids Tiled Map file  
 Adventure Demo
This demo is a large open world adventure map that you can roam around, and the demo uses graphics similar to Nintendo's classic.  I've fairly accurately replicated the original graphics and map, although it is modified a bit due to the 7800's lower 160A mode resolution. It is a map you can walk around, it isn't a playable game. 

Before the Nintendo lawyers start scrambling to send me a C&D letter, I'm never going to actually release a playable game with any of Nintendo's intellectual property included and I'm not going to publicly post any graphics that would allow someone else to compile my demo or any future releases with https://www.youtube.com/watch?v=sj4_JzNFqBc Nintendo's graphics. I am relehttps://www.youtube.com/watch?v=sj4_JzNFqBcBc (binary only) that lets only you explore the original map as I thought many would have fun with https://www.youtube.com/watch?v=sj4_JzNFqBchttps://www.youtube.com/watch?v=sj4_JzNFqBcthat.

3/18/2015 Update:  The links below have been updated with the actual completed Map Demo.  This demo accurately replicates the original map from Zelda. This is only a map demo and there's nothing to do but walk around the overworld and look around. There are no enemies, no dungeons, no weapons, nothing else. You can press the fire button to see a sample inventory/status screen. As I mentioned back in June, due to Nintendo's copyrights I won't be releasing an actual game with Zelda graphics and I won't be posting the code, graphics, or screen maps for this version. This is just a binary release to show what "could" be done.  Recreating this map was a huge undertaking.  There are a few map screens with incorrect colors and may also be bugs I never found.

You can view the original development thread on the AtariAge forums here.



Adventure_Map_Demo.bas.a78   Adventure Map Demo binary for use in an emulator  
Adventure_Map_Demo.bin   Adventure Map Demo binary for use on real hardware  
 Tiled (Map Graphics) Tutorial for 7800basic
Here are the steps on how to create a tiled background image for use with 7800basic, specifically for a map that will work with the 160A display mode along with 'set doublewide on' in your code. It works great and is a big time saver.

Before you start you'll of course need all of your graphics images completed. If you make any changes to your tileset graphics in the future, the changes will automatically be reflected in the map. Tiled does not create an image file, it creates an XML file that maps out and links to the different graphics images that you have. If you dramatically change your graphics images you will have to update your map file (or files).

Normally the width of one character in 160A mode is 4 pixels wide, but adding "doublewide" changes that to 8 pixels wide. This is why I used "8" for the "tile width" in Tiled.

If you wanted to adjust this tutorial for another mode, you can just lookup the width of one character in that mode in the table I linked to, and adjust for "set doublewide on" if you use it. That will be your value for "tile width". The "tile height" will be your zone height, and you can adjust the map size as you prefer.

First, download the Tiled app.


  Once you've installed it, select File | New Map.  

  Make sure you select the correct options for your new map. Select an orthogonal orientation, XML format, 20x12 map size, and 8x16 tile size.  

  Now your ready to load up your tileset graphics. You can load multiple sets.  

  Click on browse to select your tileset. Make sure you set your options as seen in the screenshot.  

  Your first tileset is now loaded. I generally increase the size to 400% to make it easier to see.  

  You can now left click on a tile to use on the map, or hold down the CTRL button and select multiple tiles at a time.  

  You can now draw on the map screen. If you hold the left button mouse down you can drag the background tile to fill the map screen.  

  You can load multiple tilesets, each one will get their own tab. I generally increase the map size to 200% to make it easier to see.  

  Once you're happy with your map design you can save it as a tmx file and use it in your 7800basic program.  


 Graphics Tutorial for 7800basic
I spent a great deal of time trying to figure out how to create 7800basic compatible graphics with my first game, so I thought I'd share the steps I took to make it work. Using Gimp is the easiest way to get started, you can download it here.
  First, open the 7800basic palette file, which you can download here.

a closer to accurate layout of the 256 color Atari (NTSC) palette here: ATARI256_26.7x6LG.PNG

Here is the *.act file which can be imported: Atari256_267NTSCx6.zip

Or a more 'brillance neutral' palette here: ATARI256_26.7x0LG.PNG

Here is the corresponding *.act file: Atari256_267NTSCx0.zip

They are both set with a 26.7 degrees phase shift and not manually hand-picked, that better matches the documented as well as 'real hardware' results of the systems.

  Next, click on Windows | Dockable Dialogs | Palettes, we need the Palettes dialog box to be open.  
  Next, right click on the palettes dialog box and click Import Palette.  
  Once the window is open, click on Image, Palette name (rename to Atari7800), and click on Import.  
  Click on Image | Mode | Indexed.  
  Click on Generate Optimized Palette and change the number to 13, then click on convert.  
  Change setting back to RGB, just so we can go back and change it to Indexed again to make one more modification...  
  Click on Image | Mode | Indexed again to make one more change.  
  Click on Use custom palette, then the button next to it.  
  Click on the 7800palette that was just added, then convert.  
  Click on open image, and open the tileset_rocks image from one of RevEng's samples in the distribution.  
  Click on View | Zoom | 800% so you can actually see the image on the screen.  
  Resize the window so you can see the entire image.  
  Click on Windows | Dockable Dialogs | Brushes, we need the brushes dialog box open.  
  Change brush size to 1.0. Go to Windows Menu | Toolbox or press CTRL+B to open the Toolbox Tool Options if you don't see it on screen.  
  Click on color picker tool and choose one of the four colors to modify the image. The colors in this image don't matter yet, as they are changeable with the PxCx command in the code. One of the colors is transparent and will take the background color.  
  Click on the brush tool to change the image.  
  Use the brush tool to modify a 16x16 area, there are three side by side in the samples from RevEng, each is 16 pixels across. Don't worry about the colors, as they are set with the PxCx commands in software. You can use the same colors in the sample images.  
  When you're done, click on File | Export As to save  
  Export the image as a PNG file and you're ready to go.  


 Original Atari 7800 Game Source Code
These are original, commented source code files from the original Atari 7800 developers.


Centipede   7800 Centipede Source Code  
Commando   7800 Commando Source Code  
Crossbow   7800 Crossbow Source Code  
Dig Dug   7800 Dig Dug Source Code  
Food Fight   7800 Food Fight Source Code  
Galaga   7800 Galaga Source Code  
Hat Trick   7800 Hat Trick Source Code  
Joust   7800 Joust Source Code  
Ms. Pac-Man   7800 Ms. Pac Man Source Code  
Robotron   7800 Centipede Source Code  
Desert Falcon   7800 Centipede Source Code  
Super Stunt Cycle   7800 Super Stunt Cycle Source Code  
Xevious   7800 Xevious Source Code  
Base 7800 OS PAL   PAL 7800 OS  
Base 7800 OS NTSC   NTSC 7800 OS