Posted Fri Feb 3, 2012 2:06 PM
I was checking with Julio again, and it seems his course is heavily focused on the MSX, which I don't think is of much interest here. So... I was thinking that perhaps it would be better if I write something from scratch, more focused on the ColecoVision, though the Assembly part should be generic enough to allow anyone here to use the knowledge anywhere else.
So let me think about the course structure here and perhaps I can post something tonight.
Anyways, I can already say this: learning Assembly is like learning piano. Piano isn't an instrument that you can start playing a couple of hours after having the first contact with it. It requires hard work and patience, but it is extremely rewarding once you get to master it. So is Assembly.
Also, don't be intimidated at first, as you are probably going to need a few months until you start feeling comfortable with the way Assembly works. But once you have got the hang of it, you will get total control of the system like no other high level language can offer you.
We are going to spend some time learning the Z80 architecture, then some of its main instructions, before we can actually start writing programs for the ColecoVision. The reason is that it will take some time until we can learn how to output something on screen, so again, patience is key. After we have learned the basic Z80, we are going to move to the input/output devices, that is how to put graphics on screen, play sounds, read joysticks, etc.
I will be assuming no previous knowledge whatever. During the second part of the course I hope to focus on game creation using the ColecoVision, so we will see not just the Assembly stuff and how to produce audio and video, but also how a video game works, how to logically organize your game program, basic routines that may be helpful with most types of games, etc.
I believe by the end of course you should be able to create a full CV game from scratch. I am not sure if we get to that point by the end of this year, due to all the stuff I am already currently working on, but we will get there.
So let me see if we can start tonight.