Bouncy Ball MC-10

I saw Bouncy Ball being played in some video footage of the 2016 CoCoFEST. It looked quite good for a game using a semi-graphics mode and seemed like an excellent candidate for porting to the MC-10. Since you declined to share the source code, I decided to try and write a clone of it myself in 6803 assembly language. This would have been largely necessary anyway since there aren't any decent C compilers available for the 6801/3. Additionally, the disk-based level files and memory footprint of the CoCo version would never fly on the MC-10.

Reading through all of your blog posts provided clues as to how the levels were defined, both in the files and in memory. The first thing done was to devise a simple run-length encoding scheme to shrink the size of the levels data down so they could all be embedded with the code. Next I wrote and tested the map rendering/blitting routines to make sure I could achieve a comparable level of performance with the 6803 that you and Simon had managed to squeeze out of the 6809. After that, writing the code for the game logic, attract mode, level selection and score tally screens took up much of my weekends for the next couple months. It was finally finished sometime in late September.

I did resort to disassembling the CoCo version in order to investigate the sound generating code. I wanted to make sure the pitch cycle counts in my code matched yours in order to reproduce as closely as possible the various tones heard during the game. I also adapted the code for the division routine found in the CMOC runtime library. This was needed to calculate the percentage value shown in the status line.