The Atari 2600 is a difficult machine to program, but the 6502 assembly language in which this programming is done is relatively easy to understand. Nonetheless, there are certain features of this language that I still don't completely understand. One of these is the indexed indirect mode that I taked about in a previous entry, but this is not a particularly useful feature. The other issue for me is two's complement binary arithmetic which I view as a necessary evil. Two's complement is
I have been spending the last week getting Hunchy II into shape for the PhillyClassic show. I think I have the final binary (barring some possible tweaks to the tile screen), jussts is nearly finished the label, and the manual text is written and being compiled by Tony Morse. With luck, my first Atari 2600 cart game will soon be released, and I can't wait to play it!As part of the testing process for Hunchy II I unpacked my Supercharger from storage. At the same time I decided to see if Po
The name of this blog is "The Southsider", which is the name of the pub that I frequent several times a week. I have attached a photo of the establishment below:To the uninitiated, a pub may simply appear to be a drinking house. However, this is only a small part of the picture. The British pub is a tradition here which stretches back to the bronze age, where "pub" is a shortened version of "public house". The purpose of the pub is to act a place where anyone (over the age of 18) can com
I spent the weekend working on my Juno First game, so here is another update. The main changes this time are:
There is now an explosion animation for the aliens, and some of the sprites are animated at their largest size.
The alien spawning code is in place, so the aliens appear one by one at the beginning.
The length of the laser beam shortens as it goes up the screen (I know I said this wouldn't be possible )
There is now a basic 6-digit score at the bottom of the screen.
Hi Folks,I though I would start this blog to chronicle the development of my various Atari 2600 programming projects, and to avoid cluttering up the main site threads. So far, I have developed the following four games, all of which are now fully playable, but none of them are entirely complete yet:
I also intend to punctuate this with some of my own insights into the differences between British and American culture, which I have observed while travelling.
Here is another nostalgia piece before I get back on the Atari track:My love of 8-bit computing started shortly after our school obtained its first computer: a BBC Micro Model A. This was the early 80's and home computers had only recently become affordable. The BBC Micro is virtually unknown outside the UK, but the design was commissioned by the BBC (our national broadcaster) to accompany a range of educational broadcasts on computer literacy. As such, it became the computer of choice for
I've done a little more work on my text kernel. It still displays only 12 lines of text, but the code is cleaner and it now shows lower-case letters and numbers (the text is from "The Hunchback of Notre Dame"):
I can get this up to 14 lines by overlapping the buffer creation code with the display code (there are lots of free cycles in the kernel). The problem is that this requires four versions of the copying and kernel code, which takes up nearly the whole 4K and leaves very little
It has been nearly a year since I updated this blog, and just about as long since I did any Atari programming. However, things are a bit quieter for me at the moment and I decided to write a text kernel as a way to refresh my 6507 programming knowledge. My first attempt is attached to this message and is an extension of the Juno First title screen technique in my previous blog entry. The screen-shot below shows the results - I have managed to get 12 lines of nearly flicker-free text (24-c
I'm going to be taking a break from Atari 2600 homebrewing for a while due to real-life considerations. I will still be lurking around the forums, but I won't have any time for coding for some time. Fortunately the various projects that I have been involved in are in good hands:
Chetiry will be released at the PRGE later this month and will be available in the AA store shortly after.
Star Castle is being partially rewritten by Thomas Jentzsch - he has made excellent progress and shoul
Here is a quick update on my Atari 2600 Star Castle port:
Awesome new sprites supplied by Nathan
Basic sound effects - will improve in future versions
Stars in the background
2 bullets on-screen
Ring segments turn to dots after 1 hit (disable using Left difficulty switch)
Bullets wrap around the screen edges
This version uses a new bankswitching type, so you will need to upgrade to Stella 3.5.5 to make it work. It doesn't work on the Harmony cart yet - but it will soon.
I have made a little more progress on my Star Castle demo. You can now move the ship around the screen and fire bullets, although there is no collision detection yet. The controls are:
Joystick Left/Right - Rotate
Joystick Up - Thrust
Fire - Fire Bullets
I have been trying to match the ship movement with the arcade version (by comparing with the MAME version). I think it is now reasonably close, but let me know if you think it needs improvement?
The ship sprite is te
Star Castle is basically feature complete now, so here is the first release candidate for testing.
Please note that you must upgrade to the latest Stella 3.6.1
The main changes this time are:
New sound effects by LS_Dracon
Title screen music by Kulor
High score table (will only work on Harmony cart)
Improved collision detection
Different ring colours on each wave
During the game, the following can be changed:
Pressing SELECT will skip to the next wave (this i
Here is another Star Castle update. The game is now playable, although more tuning is required and there are some rough edges.
There are too many changes to list, but some of the highlights:
32 waves of increasing difficulty
More awesome graphics by Nathan - especially the title screen and ring explosion!
Mines can now detach and reattach to the rings as in the arcade
NTSC, PAL60 and B&W colours (press SELECT on the title screen)
As before, you need Stella 3.5.5 or
Here is another small update to my Star Castle demo on the 2600:
The mines now follow you around the screen. They will reset to the centre if they go off screen.
You can shoot the mines, and collisions between the ship and mines are detected (the screen will flash).
Ship rotation is now much slower.
There are still a few issues with the ship and mines at the edges of the screen, but I'll fix these later. The mines are flickered at 20Hz so that 3 can be displayed. The flicker w
The recent threads on Star Castle for the Atari 2600 have been rather annoying, so I decided to see how difficult it would be to write my own version.
It turns out not to be too difficult - I was able to write a basic kernel with rotating shields in a single weekend. I just went for a simple implementation using extra RAM (FA bank-switching) instead of pre-calculating all the ring data. The advantage of this approach is that the rings can be made to spin at different speeds.
I have made a little more progress on my 2600 Star Castle demo:
Ship rotation is slower.
Ring colours now match the arcade version.
Player bounces off the rings.
Centre gun tracks the player position.
The main issue now is collision detection between the bullets and the rings. I haven't yet worked out an efficient way to detect when a ring sector is hit by a bullet, and the code is starting to get tight for cycles.
Let me know what you think?
There has been a lot of buzz recently about Scotts Star Castle kickstarter (just a few days remaining to grab a copy). It has prompted some people to speculate about this effort, so I thought I would post an update of where things are.
This project is still very much alive, and the plan is to eventually release it through the AtariAge store. The main development is that Thomas Jentzsch (Thrust+, Boulderdash) is now involved, and the coding will now be a joint effort between him and myself.
I figured out how to make my Star Castle kernel display in colour. I think this looks much better than the monochrome version posted in my previous blog entry.
The technique was inspired by supercats kernel, but as before I am only using a single sprite to draw the rings. This leaves the other sprite and missile/ball free.
The kernel uses a number of advanced tricks, such as updating the colour registers while the sprite is being drawn. Hopefully it will work on a real 2600 as
After much head-scratching and code optimisation, I finally have collision detection working! In this version you can shoot the ring segments. For now they only take one hit, but this can easily be changed.
I think I now have all of the pieces necessary to make the game. However, I now need to put it all together and rewrite significant parts of it, such as the kernel. The main issue now is running out of ROM space as all the unrolled code has nearly used up the full 12KB.
Here is another minor update to Star Castle:
The rings can now move at variable speeds - I have slowed them down a bit in this version.
The ring segment now disappear immediately when they are hit.
The rings will regenerate when the outer ring is removed.
The gun will fire projectiles at you when the inner ring is breached.
The big question now is how closely the 2600 version should match the arcade version. There are two sticking points, where I think it might be better to
Just a quick update on my PoP project:In my last entry I outlined a complex scheme for implementing the doors and switches. After a weekend of programming I have now implemented the doors part (see attached) and it appears to work. I have also coded most of the switches part, but it isn't linked to the collision detection yet. The attached code shows two doors being animated. The cool part is that if you go off the screen to the left or right then you see the same doors moving. The ne
OK, I know I said that the last entry would be my last update for a while. However, I couldn't resist tweaking the PoP code just a little more before I leave! I came up with a nice way to animate the objects in the game, so this update contains flickering torches and bubbling potions. The sprites were done in a hurry and will be improved later, but you should get the idea. I have done some initial work on the spikes in this version (see screenshot): they spring up when you get near, but
I attended my first computer show ever yesterday: the vgXpo in Philadelphia (formerly PhillyClassic). I thought I would post my impressions and experiences here just in case anyone is interested Unfortunately I didn't take a camera to the show, but hopefully there will be some pictures by other AA member soon.I have been visiting the AA site for a bit over a year now, since I first got into the Atari 2600 homebrew scene. During that time I have read about various computer shows in the USA o
One of the big problems that I have with Atari 2600 code development is the ever present "shiny object syndrome". For those who are not familiar with this term, it means that you get easily distracted from a task by cool things that you discover along the way. The problem is that the beginning of a project is exciting, as you struggle to fit your game concept into the constraints of the machine. For example, I find writing the display kernel is a particularly enjoyable process. But, once
It seems that nobody was impressed with my 16 character kernel last time - the main problem being the introduction of unnecessary flicker! I wasn't entirely happy with it myself, but I couldn't think of a better solution at the time. However, based on batari and Manuel's comments I decided to have another look at the no-flicker 13 char text demos. The 13+2 char demo uses a neat trick of rewriting NUSIZ during a scanline to squeeze in an extra two characters (in addition to using the ball a