Gateway, on Mon Dec 19, 2005 11:29 PM, said:
There's a somewhat small group of 2600 programmers here at AA, because coding games can be frustrating, unless you understand how the TIA works( I still don't quite understand it myself). It takes a lot of time and dedication to finish the project, not to mention accepting constructive criticism when it's time to polish up the details before you make your game available to the masses.

One thing I've taken to doing which is very helpful is starting with a little thingie I wrote called "skel.asm". Not much to it--it just shows a normal 'rainbow' pattern on the screen--but it's a useful starting point for a game. Basically, what I do is start at the top of the screen and work my way downward, writing code for the necessary subkernels. The main program is initially:
MAIN:
jsr KERNEL
jmp MAIN
but that can of course be extended. There's no problem calling KERNEL from many spots in the code--indeed, it's often useful. In addition, if there's a loop that may take "too long" to execute (i.e. may take more time than is available in overscan or vblank) you can include within the loop:
bit INTIM
bmi noKernelYet
jsr KERNEL
noKernelYet:
The kernel preserves X, Y, and SP, but not the accumulator or status.
Starting with the little "skeleton" program can greatly simplify development, since it means it's possible to plunge immediately into writing the fun parts of the kernel.