Jump to content
  • entries
  • comments
  • views

Let's Make a Game!



NOTE: If you're not familiar with 6502 assembly language, take some time to check out the Easy 6502 tutorial.

For my Atari 2600 Homebrew presentation I've been giving a rundown of the challenges involved in writing an Atari game, namely the limited resources and capabilities of the hardware, as well as the tools (DASM, bB, Stella, Harmony, etc) and resources(AtariAge, Mini Dig, etc) that are available to help you.

I've been updating the presentation for each time I give it. On the most recent update, for the 2013 Houston Arcade Expo, I added code for a very simple 2600 program. You can see it here, starting with slide 51. You can also download the source and ROM from my website - colorful.zip.

The code addition went over very well so I've decided to expand upon it for my next presentation, which will be given the weekend of August 16th at the Classic Game Fest in Austin. I decided a very simple game would be the way to go and have worked up a mockup of what it might look like:


The game's going to be called Collect. It's a 1 player game and your objective is to collect as many boxes as you can before the timer runs out. My goals for code are to show:


  • How to use TV Type, Select and Reset console switches
  • How to use joystick to move player
  • How to use the hardware collision detection
  • How to use a 2 Line Kernel to draw a reflected playfield with 2 players and 2 missiles
  • Sound Effects (timer tick, collected box, end-of-game)


For this tutorial you'll need to have DASM to compile the code as well as Stella and/or a real 2600 with a Harmony cart to run your code.





  • Like 8


Recommended Comments

That's just brilliant. Good job!

To see and follow code explanation into a game sounds quite magical.


If I were rich I'd commission you to code an improved Astroblast.

M-Network somehow managed to make a better game for the 2600 than its bigger Intellivision brother by including paddle OR joystick support.

You are not afraid to code games that are already great like Warlords, Asteroids, Berzerk, so with your graphic and sound friends and your great kernels, Astroblast Enhanced could come together quickly.


I eagerly await your future creations and appreciate your attention to even the tiniest detail!

Link to comment

I just got the new books from Lulu and I cannot seem to find DASM anywhere. Your link takes me around in circles to places that I have already been (no offense). I have searched but don't want to take a chance on a fraud site (viruses). Do you have a file that you can post or is it here and I just can't find it? I can't be the only doof who can't find it.

Link to comment

Thanks. The DASM application opens a command prompt, runs and then goes away. It it the darwin file? I don't have Linux.

Link to comment

Still goes away. I'll have to play with it. The command prompt window opens, I see some text in it, and then it closes.

Link to comment

You don't run command line programs by double clicking them, you open a terminal window and type in commands just like in the old days. How specifically depends if you're Mac or Windows (or Linux, but you already said it's not that).

Link to comment

If you download the source for Collect there's a readme that shows the command to run.


dasm collect.asm -f3 -v0 -scollect.sym -lcollect.lst -ocollect.bin

That assumes dasm is somewhere in your path so it can be found, or within the same directory as your source code. If you do that then one minor change is required for Mac or Linux as they don't by default run code from the local directory for security reasons:


./dasm collect.asm -f3 -v0 -scollect.sym -lcollect.lst -ocollect.bin

the ./ specifies "run from local directory".

Link to comment
Add a comment...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

  • Recently Browsing   0 members

    • No registered users viewing this page.
  • Create New...