ECE 476 Final Project
April 27, 2003
The project is due for us tomorrow, since we have the Monday evening lab slot. We spent a little time in the lab fixing the last few bugs, tweaking a little, and taking some pictures. We have an enclosure for the hardware so it's not just a bare circuit board with connectors streaming out of it. All that remains is to go over this website, and that will be it. Sweet.
April 25, 2003
Final weekend is approaching, and we're pleased to say the game is almost complete. All the hardware is on the external board now, and it appears to work in standalone mode. All that remains are some final touches and a little testing. The text screens need some tweaking, and we have to iron out a couple bugs. Fortunately, we're not going to have to spend every minute of the weekend fighting for a lab station. The end is in sight.
April 23, 2003
Finally tested the new external board. It seems to work so far, displaying an image on the screen. Unfortunately we haven't hooked the controllers up yet, as this will make development more annoying (program the chip, pop it out of the STK500, put it in the new board, test, pop it out, ad nauseum). Also it has to run off batteries. We'll have to look into getting a power connector so we can plug it in to power from a DC transformer.
The game itself is coming along nicely. We have actual goalies, rather than pong paddles. They look like the players, only their "features" are a bit wider to simulate padding, and they have slightly wider hockey sticks. The goalies can be controlled by an AI or by the player. The game now draws a small horizontal line under the player who has the puck. Before, the only way to really tell if you had the puck was by trying to shoot it.
We've been messing with period lengths. The timer will always count down from twenty minutes, but the clock will run a lot faster than a normal clock. The game now actually only lasts for 3 periods, rather than running forever. We're working on intermediate screens to tell the player the game is over, who won, etc., as well as the start up screens for player selection.
It appears that we are going to have to scrap the idea of having a second player on each team. The logic for it is mostly already there, but unfortunately we're starting to have problems doing everything we need to do in the small amount of time between drawing frames of video. Assembly optimisations might alleviate some of these problems, but at this point we're not sure that it's worth the time expenditure.
April 18, 2003
Game development progresses. The feature set has stabilised. Ryan has been working primarily on the code, improving the goalie AI and making it possible to switch between the player and the goalie. Rives has been working as an artisitic director of sorts, making C routines to draw the goalies (as he did with the players). He's working on a way of visual notification of who has the puck as well.
We've begun work on an external minimised circuit board so the game can be played witout the STK500 development board. The STK500 has a lot of useful features for development, but none of them are necessary for the actual game. After it is complete we will only need the STK500 for programming the chip. Brian has been driving all over Ithaca to find parts. He's also been working on some of the non-gameplay portions of the game (such as "end of period" notification screens, etc.).
April 14, 2003
We implemented the hockey portion of our game for One Skater on each team. Currently each team has one skater and no goalie. Players can shoot the puck as well as move around and steal the puck from the opponent. The puck was introduced to the game. The puck obeys all the laws of physics that you would imagine for a puck on ice. It experiences friction across the ice and experiences a "deadened" bounce off the walls. We also determined an acceptable way of drawing the players so that they look like actual hockey players. The players on one team always face the same direction so it is easy to tell which player(s) are on your team. We also drew a basic rink that allows our game to look more realistic. The players have variable Speed, Shot Power and Puck Handling Skills that determine their behavior during the game. We keep track of the number of goals that each team scores during the game. The major accomplishment is that we now have a game that is playable and enjoyable. Everything that we add on from here will just make the game much more fun to play!
We've decided to scrap our original plan of trying to do colour on the TV. We have two weeks to complete the project, and we don't feel that we can make the game look good in that time. Also, with the hardware memory constraints, we don't feel that the game would be as interesting or fun to play if we had to make the tradeoffs necessary to include color. Color is merely a visual effect, and would not improve actual gameplay.
April 7, 2003
We got the interface with the Sega Genesis controllers to work. We were successfully able to connect to the controllers and see all of the button pushes. Furthermore we were successfully able to decode all of the button presses and allow for multiple button presses to be read at the same time. We were then able to move a "player" around on the screen using the controller. We also soldered two DB-9 plugs that we can now use to plug the Controller into our board and then unplug the controller when we are done. This will save us from having to re-wire the controller each time we want to use it and also is much nicer than having to place wires into the controller.
We found out that the Professor had posted some code that would successfully create an image on the TV using the Mega32. We switched to using his code since it fixed some of the bugs that our TV code had, and included some assembly optimisations.
We also enabled sound for our game. We were successfully able to create a 2 octave C scale using some of the code that Professor Land had posted. We were able to create both the C scale and a crisp TV image after changing some of our TV code to output both the TV signal and the sound signal on the same port. We experimented a bit with resistor values to try to figure out what produced the best sound.
March 31, 2003
We set up the circuit that allows us to output to the TV. Since we need to switch from the Mega163 to the faster, more powerful Mega32 chip we had to modify the code that we used to create the correct synch pulses so that we can display images on the TV. We found that there were several differences between the two chips including subtle differences between the control and status registers. We spent the entire lab period looking over the documentation for the Mega32 and determining what the differences were that would have an impact on our project. At the end of the lab period we were successfully able to produce tear-free images on the TV using the new chip. Now that we are able to generate images on the TV screen we are ready to move onto the interface with our controllers.