Duck Attack! technical specs
Duck Attack! is designed to be played on Atari 2600 and 7800 game consoles and compatible devices. The cartridge contains 32k of code and graphics; the game uses the 2600’s onboard RAM of 128 bytes for variable game data and program call stack information.
Duck Attack! uses an unconventional 3-line kernel to produce its exceptionally large and detailed sprites.
Most 2600 games use either a 1-line kernel (in which the sprites are updated once every 76 machine cycles) or a 2-line kernel (in which sprites are updated once every 152 machine cycles.)
Using a 3-line kernel provides the program with 228 machine cycles to manipulate graphics, at the expense of vertical resolution:
The screenshot below illustrates the benefits of using a 3-line kernel: three large, detailed sprites on the same line, on the same frame (i.e. without using flicker.)
Thanks to a 3-line kernel, the robot, duck and tank can each move independently around the room while also allowing time for the playfield (dark blue areas) and background (gray area and yellow bar) to be updated frequently.
Duck Attack! is coded to support an attached SaveKey-type peripheral (e.g. SaveKey, AtariVox) in the right joystick port. If such a peripheral is detected, additional game features are made available. Specifically, the saving and viewing of high score data is enabled, as is the ability to save and load the game state using the device.
Duck Attack! uses the contents of uninitialized RAM to determine whether the game is being played on a 2600 or a 7800. This lets the game support pausing on the 7800 via the pause button, and pausing on the 2600 by setting the TV Type switch to “B-W.”
(The AtariAge 2600 programming forum is full of useful information like this... if you’re ever thinking about making a 2600 game yourself, you should definitely start there.)