First, let’s both acknowledge, and apologize for the fact it’s been two years since the last blog post or progress has been made on this project. We’re back in the saddle, and part of bringing “Phase I” to completion is to catch up on some blogs, to catch up to what’s happened in the past two years.
This blog post will be titled “a little help from my friend”. As the development of Cosmic Aliens was progressing, John Strong has offered to help out the game with some assembly language routines to speed up a few areas.
This all sounded great, and things were starting to be implemented.
Help offering #1
A fast PCLS and PCOPY routine were added. PCLS is what clears the screen to a solid color, and PCOPY is what was is used to allow all “the magic” to happen on a back page and then that page is “copied” to a visible page, and this prevents anyone from seeing things like blinky objects when they are erased and redrawn, allow for text to be printed on the ground page, and then magically go away when the next copy happens, etc. there are two pages that make up the visible screen, so two PCOPY command were happening each cycle of the game loop, using the built in BASIC command from ROM, and John’s command was optimized to run faster, so it was a nice speed boost.
Help offering #2
Some time later, I received another gift, in the way of a replacement to my font routine that actually hijacked the build int “PRINT@” command from BASIC and allowed me to PRINT@ on the graphic screen, with my custom font, in choice of any of the 4 available colors in the PMODE 1 screen. This was significantly faster than my routine using a FOR/NEXT loop and “DRAW” statements to plot each character, so this was a huge asset to the game, and I was pretty happy with these “gifts”, because, other than a few speed boosts in a few areas, the game was still all my code and still very easy for me to work on
Help offering #3
Some time after the fast font/print routine, John gave me his last “gift”, and in this revision he made changes that would ultimately cause me to want to abandon the project out of frustration. He rewrote my joystick routine, and honestly, I just didn’t like it. I had my routine to be fairly fast and loose, you could be just about half way left or right of center to be registered so you din’t need to move the stick all the way in any direction, John’s changes were seemingly more geared towards a digital controller where absolute far left/right were required to move, and that felt less “fast and loose” to me, vs. how I had it. The other change, was to replace all of my GET/PUT variable, logic and commands with assembly routines, which admittedly were faster, but at that point, I had no idea how things worked any more. While the game was certainly faster, and I appreciated all the help, it was at a point to where I literally didn’t know what to do if I wanted to add or change anything, but, we were getting close to CoCoFEST! 2019, and I wanted people to be able to experience the game, so I let everything lie until the big public unveiling, and, would hopefully resume after CoCoFEST!
I want to make clear that while I am expressing some feelings of remorse for not knowing how to work with the changes John gave me, I by no means want to indicate that I don’t appreciate his generosity to help me with the project, and his well intended contributions he provided. I appreciate what he did, and the kindness and goodwill behind it, but, it ultimately left me with a project I felt stuck in, and, ultimately contributed towards the two year hiatus, just because I got stuck in a funk.