I couldn’t help it. I updated Bonkers using MCODER II to convert the BASIC code to Machine Language. This improved the speed of the game making improving its playability. If you haven’t played the 1985 version, play it first so you can appreciate the difference. If you have, now give the 2012 version a try. Better?
Given MCODER II’s limitations, I did have to make a few minor changes to the code. The most significant change was in the routine that converted the score to inverse graphics. MCODER doesn’t have a
STR$ command to convert a number to a string. To get around this limitation, I printed the score to the screen first. I then walked each character, reading the code from the screen, making an inverse version, and then printing it back using
CHR$. It worked surprisingly well.
I made a number of other changes due to the improved speed. First, I had to add in a delay routine that I shorten each level. This adds a level of increasing difficulty to the game. I also added a delay when the program removes one of the enemies from play. Without that delay, the game would speed up as each one stopped moving. This wasn’t quite what I intended.
With the increased speed, I also noted some play issues that needed correcting. The enemy movement had a flaw that caused them to move in a line. I modified the movements to improve their movement. I also fixed their death routines to note that they had stopped moving and to prevent the other enemies from moving over them. I also randomized the starting place to make the game a bit more interesting. Lastly, as you completed a level ended it wasn’t as interesting as the other end screens. I rewrote the completed level screen to display over the play screen so it was obvious that you completed the level.
I really wish I’d spent more time with MCODER as a teenager. It doesn’t take much effort to convert my programs to use with it and the improved speed is fantastic. Many of my programs would have greatly benefited from the improved speed. The ZX81 is slow by today’s standards, but given its limitations it can actually be pretty usable when not using BASIC.
If you want to run this program on your Android phone or tablet you can download a compressed copy of the program to your device. You’ll need to save the .p version of the program to your device to allow Zed Ex (Beta) to run it.
Updated 8/29/2013: Just a quick note that while playing Bonkers, I ran into a minor bug where the screen would jump if the O hit the bottom wall. It was a simple fix and I updated all the files with the patched version.