I wrote a small Atari 2600 game in the past, but I used batari Basic, which hides all the legendary complexities of programming the Atari 2600 hardware.
To gain more knowledge on this topic, I created this animated sprite example. A sprite is animated on-screen, and the joystick can be used to move it.
Writing an Atari 2600 homebrew game is a complex exercise in CPU timing. Here are some of the aspects new to me which had to be overcome:
- working with finely adjusted sprite X position
- "setting" sprite's onscreen X position by means of CPU timing
- tightening show/no show sprite code such that its position
is controlled while remaining fast enough that it does not
distort the sprite
- spreading out computation (checking input, recalculating sprite
position) across vertically blanked (invisible) scanlines, to keep
the code which executes during visible scanlines as fast as possible
- when to set the background's colour so that the scanline is not
incompletely coloured
Downloads
anisprt ROM - the 4kb ROM that can run in many Atari 2600 emulators (like Stella or z26), or on real hardware via an EPROM
source code and development kit - unzip anywhere and run the make.bat file inside the anispr directory to build the ROM
Here is the program running on real hardware:
This is the book on which I relied to learn about the 6502 processor: