My Four-In-A-Row board game has been playable for some time now, so now I'm just polishing things up. Of course, this list is subject to change.
1)
Thanks to Fred and John for their help.
2)
Big thanks to Nathan for the title artwork. You are looking at an actual screenshot above. I've managed to animate the colors in the text, a first for a 52 pixel image. There is still a little bit of work left to do, but it's nearly finished.
3)
This will be easy. Just search the 7 columns for an immediate threat, and block the first one found. If there is more than one threat, it doesn't matter which one is blocked, because the opponent has already won.
4)
The game freezes if the AI determines that the game will end in a draw within a few moves.
I anticipated that I would have to carefully comb through my search logic, but the problem just turned out to be a misplaced label.
5)
You usually win in just one direction at a time, but 2 or more is possible.
6)
I've added 2 lines to each marble, giving them a more spherical appearance. New display still needs to be tested on hardware
7) Sound effects for a win
8 )
I'm planning on four skills levels plus a 2 player mode.
9) Menu for title screen
For selecting levels, and player's color.
10) Title music
vdub_bobby has expressed interest in writing the music. We are making arrangements in PM's.
11) If time permits, bonus games
One minigame, Knight Jumper, is finished. I also plan to do Marble Jumper 2, and if time permits finish Breakthrough. Breakthrough also depends on getting permission from the game's inventor.
12) Alpha and Beta testing
12) Release



Create a custom theme










I was originally going to just blank the screen, but I realized that the generation algorithm ran in a fairly tight loop, so I did T1024T=147, and check INTIM periodically and break out when INTIM=128. Once in VSYNC, I set VBLANK, render a playfield then wait for INTIM=127, then send VSYNC, clear VBLANK and continue calculating. That last 1024 cycles provides more than enough of a margin so I never miss.
Is the problem here that you can't check INTIM at least every few hundred cycles or so?