High Level Design
General Considerations:
• How big of a screen do we have to work with (in pixels)?
o
We can easily generate a 128 by 100 pixel screen using the MEGA32
• Can we write all of the invaders to the screen in one frame cycle?
o No. It turned out that we needed 10 frames to write all 30 invaders to the
screen. We write 3 invaders per frame, plus update bullets, player movements,
and barrier changes. Attempting to write more than 3 invaders to the
screen every frame (along with player logic etc...) leads to flicker.
• Resolution of one invader?
o We decided the classic Atari invader pixel dimensions were necessary for
nostalgia purposes, so the dimensions of the invaders are 10 pixels by 8 pixels.
• Number of invaders per round?
o We decided that a 6 by 5 array of invaders was sufficient at this resolution
• Points system?
o 1 point for every invader killed, 100 for completing around seemed adequate
Hardware Considerations:
• Inputs and outputs?
o The user inputs are the following: a classic Atari joystick, and two push
buttons (mode and reset)
o The outputs are the television and audio out pins
• Prototype
board or soldier board?
o First we build a prototype board and then move the board onto a finalized
Radio Shack circuit board
• How do we
play sound and music at the same time?
o We use 2 separate audio paths to the audio port (in parallel with two audio
compare on match timers)
• How does the user turn the music on and off?
o By pushing the mode select button
Software Considerations:
• Will we need assembly?
o
Experience says not really. Advanced gaming options (ex: moving barriers) would
require some assembly in our opinion. If we had more time for the project,
perhaps we might have implemented some assembly-based features.
• Do
we have enough memory on the MEGA32?
o A: Yes.
• The state diagram for our code is pictured below: