Jump to content

Let's Make a Game!

Posted by SpiceWare, in Collect 22 June 2014 · 2,398 views

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:
Attached Image
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.

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!
  • Report

Ran across Easy 6502 today, looks to be a nice tutorial for learning 6502 assembly.

  • Report

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.

  • Report

The Easy 6502 one does work, but it's a web thing.

  • Report

The link I used for dasm goes to here.  
From there take the Project Page link.
Finally click the large green download button.

  • Report

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

  • Report

dasm is a command line application.

  • dasm.Darwin.x86 = Mac
  • dasm.exe = Windows
  • dasm.Linux.x86 = Linux
  • Report

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.

  • Report

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).

  • Report

Ok.  I'll have to review.  I haven't done that since 8-bit Atari computer programming days.

  • Report
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".
  • Report

Search My Blog

Recent Entries

Recent Comments

Latest Visitors

0 user(s) viewing

0 members, 0 guests, 0 anonymous users