I put out a post on the Yahoo group for the MC-10 asking for game suggestion ideas. Neil Morrison made the helpful suggestion of adding a level editor to my MC-10 version of Sokoban. I might do that some day. Eric Underhill suggested that I should make a Star Trek-style game. He obviously (and quite understandably) hadn't managed to plow his way through my hundreds of file uploads to discover the three variations I have ported over the years. In fact if my recollection serves me "MCTrek" (as the file is called) is perhaps the first serious program port I ever made to the MC-10 back even before PCs and emulators. It was a time when I was still working on the real thing with tapes and having to retype lines to make any changes (the MC-10 doesn't have the nice edit command of Extended Coco Basic). So although that suggestion prompted some fond memories, it was not as exciting as the next suggestion made by Anders Carlsson:
One game that I played a bit lately that might be suitable to MC-10 graphics would be a version of Flipull / Plotting by Taito (unless someone already made a port of it, which I somehow doubt). http://en.wikipedia.org/wiki/FlipullA quick look did reveal a game with distinct possibilities for porting to or development on an MC-10.
My first thought, as usual, was whether there might be a Basic version out there already, which I could simply adapt to the MC-10. It's always nicer to let someone else do all the fiddly work of figuring out scoring and instructions, etc, even if the graphic presentation of the game needs to be completely re-done in Micro Color Basic. A quick search of Flipull, Plotting and Taito and Basic revealed an MSX variation. I like MSX computer programs because these machines all use a standard form of Microsoft Basic which is easily amenable to conversion to Micro Color Basic (another Microsoft product). Ander's turned up a TI83 Scientific Calculator version too:
Now I had some code, I just had to convert one of them.
The TI83 version looked promising because it seemed based primarily on the use numbers, along with what I assumed would turn out to be some redefined characters (the blob guy and the ladder sections). I have converted programs from calculator based versions of Basic quite successfully, such as in a Sudoku Solver and Maker program I made. The process is much aided by the constricted screen size of such calculators (often very close to the 32 by 16 screen of the MC-10). The TI's native text mode, for example, is I believe 16 X 8.
The MSX version looked more complicated, and indeed when I examined the code, it contained a bunch of advanced graphics commands to create the shapes. Also, as usual adjusting the program logic for a machine that assumed a 24 line screen, rather than the more constricted 16 lines, put me off using this code. With the help of Harry Prevor I was able to make some sense of the quite distinctive form of Basic used on the TI83. However, in the end it also used some very special graphic commands.
I also began to realize, from playing an on-line version of an original Gameboy version, that both of these Basic ports may have made some modifications to the original rules of the game. I wanted to make as faithful a reproduction as I could on the MC-10. So I simply I had to work up an entirely new program. Luckily, Flipull is not an overly complicated animated puzzle game, so it didn't take too long to get the basic motions working. Then it was just a question of streamlining the code to make it truly playable. Here again, some suggestions from the Yahoo forum really helped, particularly the suggestion by Mark McDougall that instead of searching all the blocks to determine whether a missed shot had occurred, I should search for the spaces around the blocks and then look for the specific block I was seeking. The new algorithm really sped the game up to a playable level. In the end, I was able to re-use the instructions from the TI83 source code (always re-cycle!).
As part of my Winter Roundup Retrochallenge Project I have now ported the code to the Coco and Dragon. One nice feature these other computers provide is the ability to have a real seconds countdown by using the TIMER function built into Extended Color Basic. For the MC-10, in the absence of an accessible (from Basic) internal clock, I had to use a well-timed main loop, with some tweaks to the counter of the loop for each distinct major subroutine, to get a 3 minute countdown. I would like to thank my son Charlie for holding the stopwatch and doing the math (which he can do so quickly in his head) to figure out the offsets to get things to the properly allotted time and for his victory-music for the advanced mode. And thanks to Anders again, for pointing out how on PAL TVs and other European machines (he uses the French cousin of the MC-10 called the Alice) the colour CYAN, which looks close to sky blue on NTSC TVs, actually looks like a slightly paler version of green. This made it very hard to distinguish between the green and cyan coloured blocks in the pile. So I tweaked the Dragon and Alice versions of the programs to use purple instead (or is it Magenta?). Once again, my retrocomputing has taught me interesting things from within and beyond the world of computing!