Saturday, 14 May 2022

Cruiser-X 79 - Shackled with Chains

 So far 6 levels were created and developed during this project. Now it was time for me to work on level 7 - Branded with Chains. Before watching some TV, I started on working on level 7 of Cruiser-X 79. Since the previous two levels were mainly based inside enemy bases/worlds. I decided to set this level back into space. Also I wanted to add some cool effect to the level as well.

The first thing I did for level 7. I loaded up level 2's data. Then I completely cleared the map (and saved it as level 7, just in case I saved the file incorrectly as level 2). I then set the colour scheme and set up the stars and planets (Which after Saul's update, I hope to be spiral galaxies). The project got saved again and it was time to watch some TV. 

The next day I loaded up the project, and I worked on making level 7's graphics. While doing this, I was listening to some music on Deepsid throughout. I designed the base layout, and constructed some large and also small chains. The large chains have been set to be static, and the small chains have been set at the scrolling chars. This is to give a good visual, when the lower chains are inside a shaft or between the two large chains. I also added a bit of branding to the game as well. That's right 'TND' has been embedded on some of the bases. I saved all the work.

Next I loaded up Goat Tracker and I worked on the in game music. Although the game consists of chains and things like that. I wanted to so something like a moderate speed up-tempo soundtrack to suit the game's level. After listening to tunes from Fairlight demos during developing the graphics. I thought that type of style of music might be ideal for the game. I worked on the sound tracks for a couple of hours or so, and came out with a masterpiece. I saved the piece of music.

I went back to Charpad to export the map, charset and tiles data to my C64 Studio project. Then I loaded up C64 Studio and edited the level colour table to match my Charpad file. Then built the batch file, so that level 7's music and graphics data gets compressed. Then test run the level. It looked great. Everything unpacked fine and at the correct colour. The music blended in well with the game, but I think I made the tune too long. It didn't finish when near to the end of the level. I think the intro of the tune could be tool long, so I might just remove the intro when I come back to the music perhaps next week. Still, I am pretty pleased with the result of Level 7.



Saturday, 30 April 2022

Cruiser-X 79: Fear the Freeze

 First of all, a quick note to let you know that during may, this project will be paused for a short period of time to make way for my 4K game for the Craptastic 2022 game development competition. It is unknown how long it will take me to write my 4K game. I'm hoping about 2 or 3 weeks or so.

Secondly some fantastic news about my levels. Saul has been working on updating my level designs, and they have been turning out pretty well. I am really pleased with the overall result from levels 2-5 (As level 1 needed nothing updated). Out of all of the levels so far, "Level 5" is my personal favourite.

On Thursday and Friday, I started with designing Level 6 and yesterday I did some more updates to the level and finished making the map. Level 6 is a freezing cold stage in which contains plenty of ice. I used Level 3's graphics data, as there was a nice cube in the space background, which looks pretty good for this level. The colour scheme uses cyan, light blue and white. However, Saul might decide on some different colours. The player ship is cyan, but it still can be seen (thankfully). I wanted to make level 6 harder than level 5, so more deadly background was added.

Today I worked on adding the music and putting the test level together. The music which I have chosen for level 6 is a rendition of one of my trance tracks, Ice Dream, which I originally did for Scene World about 2 years ago. I did a PC remix of the same tune (See: Nucleo448 - Trance Remix) and also in Nucleo 448 as in game music. I liked this composition a lot, so I decided to do another version for Cruiser-X 79. 

The level data got exported as character set, tiles, map and music data. Then crunched through the Exomizer V3.1.1 (in V2 mode). The level table got modified once more. I compiled and run the game into VICE, and played all the way to level 6. Argh, I think I have made the level too difficult with all those big walls, which the player has to avoid. However, I will give those a tweak next time I go back into the game project, and of course before I work on level 7 (unless of cource Saul has done it already). However, I do like the ice-blue theme in that level and the wonderful in game music. 

That's it for now with Cruiser-X 79. The project is now paused for a short term until after my 4K Craptastic Compo 2022 entry is finished and submitted. Then I'll be back onto it.



Friday, 15 April 2022

Cruiser-X 79: Having green fingers

 This week was almost a week that wasn't for Cruiser-X 79. I was using the weekend to make a V1.2 of the SEUCK Title Screen Maker. However, I wanted to improve the utility and created a V1.3. Basically SEUCK Title Screen Maker is a utility that allows you to create a brand new front with a nice logo, with optional hi score table and music in the background without needing to code. Then replaces the old SEUCK title screen with something more colourful. After I thought I was done with V1.2, I replaced it with V1.3 by fixing the music player bug, and SFX missing channel bug. Everything else was working and I was very pleased that it was final.

If you fancy trying out the SEUCK Title Screen Maker V1.3 please check this link below:

https://richard-tnd.itch.io/seuck-title-maker


Anyway, this blog entry is NOT supposed to be about the SEUCK Title Maker. Instead it is about “Cruiser-X 79” and its progress. I had a week's break from it last week, as I felt a bit unwell with a heavy cold. It is more or less the Easter holiday, and I thought I should work on level 5 for the game. I have been thinking about it for some time. So far I had a level based in space, a level inside an enemy base, a diamond world, and also a bubble world. What was in store for level 5? … Vegetation.

Yes, that's right. I wanted to make an inner alien base, which also contains vegetation. Due to the limited number of collision characters. I did not want the vegetation to become a deadly background. Instead, they are background. I also created some brown zig-zags as the main background, rather than space. This is because I want that part of the background to have a static effect while the rest of the background was scrolling over it.

The design of level 5's base is based on the very first level. However there are to be some form of vegetation/plants bordering some parts of the background. The enemy base is also a mixture of green, brown and grey. I also wanted to add some boundaries, in which the player should avoid crashing into. Loads of them in fact. After I scanned through the whole map in Charpad. It took me about a couple of hours, if not more to carefully construct the level. Unlike level 4, the boundaries which the player can crash into are thicker and nastier.

After feeling very happy with the level design. I saved the background graphics and then exported the character set, tile and map data as a raw binary file for compiling and testing in the game. Before I compile and test everything, I decided to work on the music. I loaded up Goat Tracker V2.76 (enhanced version) and I worked on the main in game music. It is a thumping in game trance soundtrack. You can hear the whole tune (without the sound effects) in the video below. I think it fits into the level of this game quite nicely. The music was then imported into the game project source.

I modified the build parameters of the game code and the build batch file. Then I compiled and executed the project and gave the game a test run. The result turned out great.




If level 5 is cool. Wait until I work on Level 6. It's going be a cold themed level that is for sure. For now, enjoy the game play video of level 5 and also the music uninterrupted by SFX.



Saturday, 2 April 2022

Cruiser X-79 - Popping the bubbles

 On this rather chilly week, I have been working on the fourth level of Cruiser-X 79. Level 2 started where the player entered an enemy base. Level 3 was a crystal space world. I wanted to do something slightly different and quite unusual for level 4. 

I wanted to make level 4's stage "Bubble World". I replaced all of the character sets that formed the stars and transformed them to form bubbles. Next I wanted to make some alterations to the enemy bases. The previous three levels had straight plain bases and seem to be too much the same thing. I wanted to try and make the bases look slightly different. So I edited the characters that formed the plain bases, and added shades of two multi-colours to them.

After carefully working on the shades, I felt that something should be done about the parked space ships background, which the player can shoot. Wouldn't it be nice if those alien ships in the background are changed to something more interesting. I replaced the chars that formed alien ship chars into robotic bugs. As a bonus the player can blast those. 

After editing the chars, I got myself busy and worked on constructing the game maps. I started off by clearing the whole map of the previous level. Then edited the tiles with the updated characters and built the bubble world. After I finished designing the bubble world, I imported everything into my game project. I also created additional Exomizer commands to level crunch the new graphics for level 4 and then I adjusted the level parameters in the game code. Then I compiled run the game in cheat mode.




I was playing through all of the four levels, but I realised that there were two things wrong in the game. The first was that the player and the bullet did not die after shooting the deadly tiles that formed the high light bricks. The second problem was that level 4 did not play the correct in game music. It played level 1's in game music. It turned out that I did compose level 4's music in Goat Tracker V2.75, but it didn't get exported to the game project. After fixing the music issue, I edited the game code to allow collision detection with the rogue char (242). Then I made the player die if it hit that particular character, or remove the player's bullet if that character is shot.

The overall result for level 4 looked great, but really could have looked better. I passed Saul the 4 levels I constructed along with the preview of the game in action. 4 levels done, 12 remain to be built - hopefully another 1 or 2 levels should be built next week. 



Sunday, 27 March 2022

Cruiser-X 79: Another two new levels

 Yet another fun session in building two different levels. The first level was done on Tuesday afternoon, and yesterday I was playing around with PRG2TAP and Freeload. I could be using these two tools to generate a multi-load tape version of Cruiser-X 79 some time in the future as well as D64. 

 Today I have focused more on the "Cruiser-X 79" game project. This morning I constructed level 2. The second level is where the player enters an alien base. The idea of the second level was to add a slightly higher difficulty compared to level 1, but of course not too hard. I created a nice blue zone, in which the player has to fight through. The level is slightly less kind than level 1 when it comes to power ups. I wanted to make a few things interesting. One thing of which was to draw a parallax void. Also, I felt that I had to made a few alterations to some of the tiles for that particular level. 

The next step I considered about was to try and find quicker and easy way to level pack graphics and music, then compile the entire project to a D64. Dragging and dropping filenames for each level (especially if updated) can be very daunting. It also makes me worry about making big mistakes with the project. I come up with an alternative solution. Last week I was compiling the 16KB intro creation competition through ACME cross-assembler. I created a batch file which allowed to compile all of the re-mastered intros onto a D64 via a command-line tool called CC1541. 

I thought that I try and make a tool-chain batch file which can help me more in level crunching of the level charset, tiles data, map data and music and then compiling a complete game disk image. So I created a batch file called buildit.bat and created shell commands to call ACME cross assembler to compile the title screen code, and exomizer to crunch it. Then I called Exomizer to pack each level data that was made so far. Then called commands for CC1541 to compile all of the necessary files into a D64 called CRX79.D64. When I do more level data in the future, I can easily adapt the batch file to level crunch that data and compile it to CRX79.D64. Then execute VICE to run the D64 image.

I compiled the source, automatically called the batch file, and waited a few seconds for level crunching and other algorithms to take place. Then VICE ran the CRX79.D64 image. The game was automatically set to cheat mode. This is because at the moment I am more interested to see how the level maps turned out. There was a fault. The graphics ended up as garbage. It seems that the music files worked fine. What caused that fault? Well, the map data is a raw binary image. Raw binary images have an offset of two bytes. Basically, they are two bytes ahead compared to a normal PRG file. So I set the load address for all of the binary files two bytes in front (Charset $0802, tiles $b002, map $4802). 

After compressing and compiling a few times I ended up with a working map, for level 1. Then level 2 turned out good. I had a good blast and I was pretty pleased with how the second level turned out. It features a nice static parallax effect inside parts of the alien base. The music also sounds great for the second level. 


Now that I have finished constructing and compiling level 2. I decided to work on level 3. Level 3 is back in space, but with a slightly different background for the alien base. I decided to make level 3 as crystal space. The stage is supposed to be slightly more harder, compared to levels 1 and 2. Level 3 also introduces deadly background (There will be even more as stages progress). The alien groups are still the same as before, but are spawned in a different order. However, the stage gets more difficult, but not impossible. 

I felt that I should alter the chars of some of the tiles, so that they were not too much the same as level 1 and level 2 were. The result turned out quite good. After completing the map, I exported the charset, tile and map data into the binaries folder, and then I edited the level loading tables to load three new files c03, t03, g03 and m03 (Charset, tile data, map data, music data). Then I edited the batch file more to level crunch all of level 3's data and also compiled the game project in C64Studio. At first while I was testing level 3, I ended up with a blank map. It appeared that I didn't save the binary files as correct files. After re-packing, compiling and running in VICE. The third level was working great. 


I am very pleased with how the project has been turning out so far. There may only be 3 levels, but the overall result feels like a good old school game project - in which it intends to be that way. 3 levels complete. 13 more levels to go, and hopefully another 2 or more later on this week. Depending on free time available of course. 




Tuesday, 22 March 2022

Cruiser-X 79 is back

After a very long delay of this game project since May last year. 2022 is the year, which I hope I will finally get this game finished (If all goes well that is). The last time I was working on Cruiser-X 79, I was working on the level multi-load system on disks, and also a temporary title screen. There was no other progress apart from launching a playable demo of the game near to Christmas 2021. Why was the project stalled? The majority of the code for the game was more or less complete, but I waited patiently very long time for the level graphics. Sadly nothing happened on the graphics front during the pandemic.

I needed to make an alternative plan as I believe that with the shortage of graphics, and possibly may have to wait longer. I have decided to go into Plan B. Saul and I both agree with my Plan B suggestion, where I use the existing tiles, and character sets data for the game - then if there is time, later on the character sets can be altered, and the level map designs get tweaked slightly. This will be ongoing, and hopefully a much faster process to getting the project done. Mind you, the demo graphics actually consist of 3 different level designs, which is very handy.

Last night and this afternoon, I have been working on the very first level, using Charpad (free edition). The very first stage is intended to be a pretty easy first level. The player is flying through space and also flies over the enemy bases (A bit like Uridium, but there is no turning back). The very first stage should not have any form of deadly background during game play, but it will have power ups and shoot-able background objects.

The majority of the project for the next 2 or 3 weeks (or probably slightly longer depending on free time available) will be based on level map design, and very little programming. Of course I will also have Exomizer V3.1.1 (crunching memory in V2, mode to support the Exomizer V2.0 backwards decrunch routine). This is handy for level crunching of the level's charset, tiles, map and music data. Then after loading each level file, it unpacks. I don't use any custom fastload-unpacking as I find it really awkward and complex to use those type of sources. I like to keep things nice and simple.

After testing the game with the first level map, it didn't turn out too bad. One level done, 15 more to go :)



Sunday, 2 January 2022

Looking back at 2021

 2nd January 2022

This blog highlights my C64 activity in 2021. It has been a fun year on the C64 games development side. Let's take a look at the highlights of what happened in 2021 on the TND Games front. - This time it is more C64 focussed!

A fatal PC accident and the death of Cruiser-X 79?

In January 2021 my old PC which I was using to develop C64 and Unity games on had been slowing down too much. I did a backup of all of my necessary work, projects, etc onto cloud drives. Then I did a re-installation of Win 10, hoping my files are still on the HDD and hoping to boost the speed of the computer.

It took several hours to re-install Win 10 on my old computer (Which I had in 2009 with no hardware upgrades, as I felt I did not need those for C64 programming and game development). After Windows was installed, shock horror. My files had gone missing. The disk was completely formatted. I also tried to re-install my files the next day from cloud drives. Sadly only the folders and document files existed. Game binary and source code, etc had completely gone. Everything had gone ...  but did it all go? No, thankfully some of my game projects, tape mastering tools and other bits were actually stored on my Ultimate 64 or the TND web site "Assemble It" section.  I did however have to restart Cruiser-X 79, but I managed to make a better version of the preview, with better attack waves. I ended up with a new system for development two days later.

The Official C64 SEUCK Compo 2021


The Official C64 SEUCK Competition was launched in 2021, and once more the competition has been quite successful for the C64 community. 2020 mostly saw space shooters, but 2021 had a lot more variety. The idea as usual for the competition was to create and develop a decent shoot 'em up (or whatever you could) with the SEUCK. Enhancements were also allowed in the competition if you wanted to enhance the games. The prizes were enhancements for the top three winners of the compo. I created a special SEUCK game called Ray Fish, which later got enhanced in December 2021 and had a full release.  Out of all of the 9 submissions, the winner of the competition was Droid Rumble, by the SEUCK master and book writer, Alf Yngve. A fantastic futuristic beat 'em up, created using the sideways scrolling SEUCK where you are a SWAT agent, who has to shut down a factory being operated by malfunctioned robots. In second place was RoboformX-2 by Pinov Vox, a push scrolling cybernetic adventure, where you had to control a droid, in search of a deadly computer virus, and fight against the enemy droids. Ironically the 3rd place winner was Space Eggs, a game in which you play a mercenary soldier who has been transported on board a space ship and must save birds from the evil space eggs. I originally made Space Eggs as a little joke, but funnily enough it did really well. 



Now to end with a downer but with plausible good news. After many years of hosting the competition I have decided to step down as host for the Official C64 SEUCK Compo. There could be a new host for the compo later on in 2022. A real legend also, if you read Zzap 64 or Commodore Force back in the 1990s. :)

The CSDB Fun Compo 2021

I hosted the CSDB Lockdown fun compo in 2020, where the C64 community got to write games, demos or intros, which was themed to lockdown, or not themed. The competition was a success, and a new CSDB fun compo had taken place in 2021. This time it wasn't a lockdown compo. People could submit what they liked: games, intros, demos, music. There was a category for each. Although I hosted the competition. I also participated in the competition, teamed up with Ax!s and we created a winner Gyro Run. It made first place in the competition.

theC64 Programming Challenge

In April 2021, I decided to set myself a fun programming challenge, which was mostly done on Retro Games' theC64 full size computer. I picked out some of my favourite tools for the project and worked on Para Lander DX. A fun parachuting challenge for the C64. The game was mostly programmed in Turbo Macro Pro. Things did not go too well on theC64, due to some small bugs I made, that crashed theC64 where memory was concerned. Luckily plan B came along. I transferred all of the files I saved, and exported them to 64TASS and finished the project off on my PC. Then I turned them back into C64 assembly source and re-aligned the code so it would assemble in Turbo Macro Pro. The game project was then put together, complete and released. 


Shock Raid - What a shocker !!!

Shock Raid was first being written on theC64 but sadly it wasn't shaping up well. So I decided to just work on the project in C64Studio. This was perhaps one of most favourite titles in 2021, as I always wanted to make a full vertical scrolling shoot 'em up, without SEUCK. This made my dream come true. With Ax!s on my side doing the graphics, we managed to come up with a really stunning shoot 'em up. What was the shocker about Shock Raid? ... The game was made for several months, and it was pitched for issue 14 of Reset's Mix-I-Disk. Sadly the free magazine was delayed for several months and I was given the OK to release the game.

Star Hawx gets Zzapped 

Another highlight (and nearly to the end of this chapter) was Star Hawx. I was writing this game over the summer. I was a fan of the classic arcade games like Space Invaders, Galaxians, Galaga, Gaplus, etc. I was thinking, wouldn't it be fun to make something pretty similar just for fun. Star Hawx was one of those type of gems, which I didn't only have fun programming in C64 Studio, but I also had loads of fun playing this game and trying to beat my own score. Being a bad gamer, I never managed to complete the game, but Star Hawx was great fun to play on theC64. After the game was finished, it got submitted to the new Zzap 64 Micro Action covermount and then released 2 weeks later as a free download. (TND is non-commercial!!!). There have been some great reactions about the game. People seemed to have loved it.

Rocket Away 2

Outside TND, I did a co-op production with demo group, Blazon. I remember in 2020 I did a game for the Cassette 50 Charity competition, Rocket Away, and I wanted to make a sequel with better graphics and smoother game play. I teamed up with Baracuda/Blazon and a few of his friends from other C64 groups, and we worked on a brand new party game called Rocket Away 2. I did the programming, map design and sprites, while Firelord/Excess did the main graphics and tape loading picture. Logiker/Vintage Computing Carinthia did the directory art, while the rest of the team did the testing and feedback. Things went pretty well with Rocket Away 2

We all played our part in producing and developing a quality game production as a team. People seemed to have enjoyed this game also. I had loads of fun and sure would love to do that again with Blazon. - Actually we have been doing something over the Christmas holiday. You'll see :)


Ray Fish DX and Cosmic Combat DX


TND closed 2021 much earlier with a deluxe release of Ray Fish DX. I put a lot of effort into making the game earlier in 2021 for the Official C64 SEUCK Compo 2021. Sadly it never made it into the top 3 position. However Alf Yngve and I teamed up for the very last time to make a special edition of this game. I pushed Ray Fish to its own limits, where design was concerned. Alf focused on the game play. I worked on the remixes of the original music and imported those into the game. Ax!s also got involved with this project, and developed a lovely front end logo and also a brilliant piece of art for the tape loader. The overall production was more polished than previously. We also released Cosmic Combat DX.

 


SEUCK Title Screen Maker

I always wanted to make a handy little utility for the fans of the Shoot Em Up Construction Kit. I spent a few weeks working on a possible solution to help gamers be able to enhance SEUCK games with aid of no programming knowledge. The SEUCK Title Screen maker had features that allowed the gamers import a bitmap logo, custom character set, and music, (yes that is right) music into their own game creations. I worked hard on making it possible to add front end animation, scroll text and hi score table. There were also some options to select whether or not the SEUCK user's game is 1 or 2 player game. A manual was also written to help the user put a new front end onto the game. Included were example SEUCK games, enhanced with front ends. 



Well, 2021 was quite an active year for me on the C64 front, however later on in 2022. Things could possibly become more quieter on the TND C64 production front. We will just have to wait and see.

My main focus is to get Cruiser-X 79 finished in time for later on this year. There are bound to be projects in between. I have been waiting ages for missing assets for the game, but sadly there has been no time for them. Fingers crossed, that this year could be the year of the full game. Although I cannot promise that :).

All of the projects I have mentioned on this page are available on my itch.io to download in VICE, theC64, Ultimate 64, etc or even play online at:

The New Dimension

Sunday, 29 August 2021

The story of Shock Raid

29th August 2021

Back in December 2020, I felt like setting myself up with another game programming challenge using theC64, and its cartridge supporting firmware update. I have always owned the classic Action Replay MK VI cartridge and used it quite a lot in the 1990's - present year for saving code. Then processing it through a packer and  cruncher, which I randomly selected from my collection.

I wanted to try and code a new C64 game, but unlike some of my previous games, where they were one-screen wonders which suited the use of Turbo Assembler. I wanted to try and attempt to write a vertical scrolling laser gate space shoot 'em up called Shock Raid. I used my PC and Style's Dirmaster to setup a utility disk, and also some work disks and put them onto my USB stick I used for theC64.

I got started on working on the game project. I created all of the graphics, prepared some music and also started programming the game engine using native C64 utilities. It wasn't intended to be an advanced map scrolling game at first. It was supposed to be a simple no thrills vertical scrolling shoot 'em up. I programmed the player's movement, the player's bullet.

Next I worked on making a simple scroll engine. The first part was to manually create and design the walls and then the obstacles. I did this by creating my charset using Dunex's char editor. I saved my complete charset. Then I did a hard reset. Attached the Action Replay MK VI and used fast load to load in my charset.  Next I pressed the freeze button on the Action Replay to go into the freeze menu and I selected the Edit Screen option and I manually created some walls and other things. Then I transferred the screen objects to memory location using the Action Replay machine code monitor. I took note of the memory location and then I saved the data to disk.

Next I generated some tables in which allowed to work out what can drawn. This did take me some time. However, although the first part of the project was going quite well. - Well not 100% well. I decided to call it a day on this version of the project and attempt to make a better Shock Raid. I felt that on theC64 I just wasn't getting anywhere with this project. So I considered this challenge a fail, or perhaps a prototype. So I decided to move onto finishing the project using cross-assembly.

At the start of January 2021, I copied the graphics data and sprites to my PC and then I continued programming the project in C64Studio. I did some enemies, had them moving and also made better progress with the program. However late January 2021 - disaster struck. My PC literally ground to a halt and deemed unusable. I had to re-install the operating system. I made backups of my necessary files to cloud drives which I was fully registered with. I downloaded the operating system onto a USB Zip drive and Then I re-installed the operating system from that drive. (Which was originally used as the backup drive for my work).

Even more disaster struck ... I spent hours downloading all of the backup files, which I tried to restore onto the computer. It included all of my other C64 projects I worked on in the past, finished off and released. Although the backups were being written back to my computer, the source and binary files all disappeared. The only things that exists were the file's folders. I was very gutted and spent most of the Tuesday night trying to save my projects from disaster. Even the Cruiser-X 79 files were completely lost from there. - but that did not force me to cancel the project. I actually started from scratch.

Luckily 2 days later, I ended up with a different machine, and I tried again restoring the cloud backup files - but the same problem persists. I re-installed all of the applications and decided to continue work on Shock Raid. However, I felt that what I did with Shock Raid previously just wasn't working out. I had to start again somehow.

I ditched the old version and I worked on a brand new version. First of all I created test graphics using CharPad V2 and a test map to ensure the game map was scrolling smoothly. Then I used C64Studio to program the map scroll routine, and get the test map scrolling. I then exported the test sprites from the files from theC64 challenge to Spritepad V2 and exported them to my C64studio projects. Then I added the sprites into the game program. Next programmed the player control to get it moving and shooting. Then it was time to draw a test map. After I was happy with the test map I did for the game project. I worked on the enemy sprites, and worked on the main game engine. Then more graphics were being made.

A 4 levels were in place, and just the player sprite, but the enemies needed to be put in place. So I loaded in my Alien Formation Maker V1.0+ tool to make some custom made movements for aliens. Then I exported the data to C64Studio and processed routines and macros for the aliens to move. Then I processed alien shooting and collision. This is looking wonderful, I have a working scroll field, moving aliens, and collision. Then I programmed an end screen. I was very happy with how the game was turning out. However, I wasn't happy with my graphics. Luckily I had some kind help for this part.

Although the game was more or less complete. There were still a lot of adjustments that I felt needed to be made. For a start off the graphics didn't look how I wanted them. Thankfully, Ax!s/TND popped by and agreed in helping make graphics for the game project. This was one piece of the jigsaw puzzle that was missing. After receiving a major overhaul of the game graphics, the game looked much better. There were still some more graphics to be made for this game, but it didn't take all that long to get them.

I worked on the sound effects and music. I used the SFX Editor V3.2 by Achim when I wrote Killer Saucers and Zzapped in the Butt DX for a TND Christmas release last year. I decided to use the sound effects editor again to make the in game sound effects. Then I used Goat Tracker V2 to make the music for the production. I put everything together and had a positive result.

All the music and sound effects were in place. I needed to deal with the front end presentation. There was a hi-score table missing. Also add a hi score saver, so that if the game was being loaded from a disk or a disk image, the hi score saver can save the list to the device. If detected any other device, such as a C64 tape deck for example, hi-score saver is ignored. Talking of tape. A new TapeToolBuild loader was made specially for this game.

After finishing off the front end complete with hi score saver. I was preparing a new tape loader system for the digital tape version of Shock Raid. I always chose the black and blue stripes, like the Enigma tape loader system in the late 1980's. However I opened the borders and added something slightly different to the loader. An 8x8 zoomed scrolling message. Then I added Ax!s loading picture to the loader system, along with loading music. The result was pretty cool. I loved it. 


After doing the final mastering, we spent a few weeks beta testing the game, and doing a lot of bug hunting. After all, you don't want to play game which would crash or corrupt graphics, or anything would you? :) I sent the game to my regular testers, who really test hard on my productions. In March 2021, I submitted the game to Reset for inclusion on the Mix-I-Disk (Which it will of course), but a delay had taken place. I was given the go-ahead to release the game onto my itch.io and TND web site, before the Mix-I-Disk (Which sadly is not ready yet).

Now you can enjoy the final result, either online or as a digital download. The game, Shock Raid has 4 levels, but if I were to add more levels, it would have had to be a multi-load. However I think each level is long enough, and the game should be hard enough, unless you are really good at these type of shoot 'em ups :) I hope you have fun playing it:

Here is the video footage of the game in action:



Shock Raid is available to download free from these two web sites:

https://richard-tnd.itch.io/shock-raid-64
or
https://tnd64.unikat.sk/s.html#ShockRaid

Have fun and happy blasting.



Sunday, 20 June 2021

Cruiser X-79 June Update #2

 20th June 2021

Since I have more or less run out of other C64 projects to work on, and pretty much up to date with everything. I decided to work a bit more on Cruiser-X 79. It has actually been a whole day's session. Yes, that's right, about 8 hours or so. I needed to get a lot of things done today and I had nothing else to do. Considering the weather has been rubbish today also.

The first part of today's session was working on the music and additional jingles. I loaded up Goat Tracker and I experimented a little with the music to come up with some suitable in game music. I ended up doing 3 different tunes. The initial  plan is for the game to have only 4 different in game tunes. All of the tunes turned out more upbeat, and the well done and game over jingles sound familiar to the level 1 jingle. 

The next part was slightly more painful. The easiest part was to setup the filename properties. The second part actually gave me a real headache to work on. The disk access multi-load system. I tried compressing the test level graphics, character set and map as well as the music for the game. Unfortunately, however the de-crunch routine was crashing all the time. 

I discovered that the music memory is at $1000, and I cannot unpack a music file at $1000 when it loads to that address with Exomizer. I also had issues with memory management. I had no spare memory to place packed data. So I decided to leave out the Exomizer level compression for the time-being and load the test files as unpacked data. The program worked, but loading time takes a bit longer. 

I might need to find some alternative to the mem -l packing in Exomizer. If there is a load and decrunch on the fly method, then I might consider using that method. Otherwise I might have to do the level packing the more slower way, using a Level Squeezer and unpack from the level unpacker code. We will have to wait and see.

Update 21/06/2021 - I scanned through the memory area using the Action Replay Machine Code Monitor, after testing the game and found there was plenty of memory where I could load the packed data and de-crunch the data with the Exodecrunch wrap.s. Since the size of each packed file was less than 4K, and there was just over 4K memory free. I used the memory nearest to the last $100 bytes at the end of the game memory for loading and de-crunching the data. Everything seems to be working fine, although bugs in the title screen and the game still remain - but they should not be a problem to fix.




 




Thursday, 10 June 2021

Cruiser-X 79 - June Update: 1

 10th June 2021

Over the past few months. I mainly worked on a few small game / demo / intro projects. There have been times where I have been doing more on my game project. I noticed that it has been a few months since I last did some more Cruiser-X 79. This was because I was literally unsure what to do next after the alien movement patterns. The main game engine is more or less finished (except for the bugs that are still left in the game). The only thing that is missing for the main game code are the level graphics. That is up to Saul :). 

Okay, so if I cannot code any more on the game, what shall I do now. I decided to work on the front end for the project. The title screen graphics are still there. So it wasn't much of a problem to import them into the game project. I also did a mock-hi score table. The front end is not 100% complete yet, but it does look quite nice (and erm - green, ha, ha.). The title screen also uses the same music as I used in the playable preview. Since the music was made for the title screen anyhow.



The title screen appears to look nice, but it does need some kind of action in the scene to make it look less boring. The game is supposed to be a space shoot 'em up so I might add some kind of star field like I did with Zzapped in the Butt DX. There are characters free for this cool effect.

Another thing I need to add, which I decided to do this hot and sticky afternoon is add a disk loader system to load the main game. This is only for testing purpose, as no level packing has been done yet. The game currently loads through the SFX de-crunch routine from Exomizer. Eventually changes will take place in this project because I will need to make alternative plans.


 

I took note of all of the memory which current data from the title screen and the game used. I need to do this in order to  allow the loader system to load the data to a range in memory in the game, where it cannot overwrite important data or code. Then the data can unpack from that area to the target memory at range. The game loader will need to be split into 4 different files. They are as follows:

- In game graphics charset
- In game graphics tile set
- In game graphics map
- In game music

Each of these files (once received) will be fed to the Exomizer using the mem -l  prefix. The Exomizer de-crunch source (which I used on Starfysh Remix) will be used to unpack each file respectively to the correct memory bank of where the original charset, tile set, map and music lies. 

More on this next time I get onto it :)



Friday, 16 April 2021

theC64 Challenge #6 - Para Lander DX - Part 3/3

 16th April 2021

This is the final chapter. So what happened then? Well, in part 2. I assumed the game was perhaps ready, but there had to be a couple of adjustments made to the game. Here is what happened:

Levels - now what happened?

I had a test of the game and it appeared that the level counter wasn't working. I had forgotten to increment the level pointer to read the next level. Thankfully it worked. There was also a suggestion that I removed the two digit counter from the screen. This level counter was indeed meant to be for testing that each level was working and should have been deleted after the levels were working. I removed the digit counter.

Unreadable character found

The letter "Q" in the text on the title screen / hi score looked too much like the letter "D". Rather than use theC64 and Multi-Screen Construction Kit just to fix up a character set. I decided to export the character set to my PC and re-import it into Charpad V2.7 then I re-imported the charset into the game code in 64tass as a raw file. The letter looked much better.

Flashing status looked a bit off

The Well Done and Game Over sprites looked off with the grey pixels around them, so I set the colour for each flash as just a single colour. Like with the Charset, I imported the sprites into Sprite Pad to do a fix up of the sprites. Although the "well done" and "game over" text were still displayed as multi colour sprites, they both looked much better and more readable.

The count down was unfair

Para Lander DX had scenes where the player was jumping for joy, but it appears to be unfair for the player. This is because the clock was still ticking down while the player was jumping for joy. The problem was solved by stopping the timer.

I wanted to be oldschool, but I felt had to use Exomizer

With the test build of "Para Lander DX" I had to put up with having to link, pack and crunch several times while using ECA Compactor V4S and Cruel Cruncher V2.5. The oldschool packing and crunching was a lengthy process. I decided at the end to just use Exomizer and disguise the de-cruncher as some of the old favourite crunchers from back in the 1980's. I went for disguising the Exomizer depacker as the Matcham Speed Packer V1.2 (pictured). Considering that I used Future Composer V4.1 to do the intro music (Or ripped it from my previous intro for Ray Fish) ;). I thought it should have an 1980's feel to it :)




Finally the game is finished and mastering is done. I will be releasing the game next week. For now, here is a video of the final production. This is the digital tape version:

The game is intended to be released next week on 23/04/2021 at The New Dimension or Para Lander DX page

Wednesday, 14 April 2021

Cruiser-X 79 - April Update #1

14th April 2021  

Previous update was deleted along with the Para Lander DX blog entry. This entry from 3rd April  is what has been remembered from that day.

3rd April 2021

Last time I was dealing with alien patterns. The next task was to put these into levels. I also was setting up the colour settings for each level table. Of course, last time all aliens were put into order of sequence and were being tested.

That week (for this part in the development) I mainly focused on the level alien attack patterns. Instead of all aliens being in sequence 0-40. I setup alien selection tables for each level. The idea was to ensure that each table has a specific level of difficulty. There are 40 different alien tables (some of which are duplicated enemies doing different things). The idea is that the harder faster enemies get used after a few levels. There are 16 levels in total.

Now that all the alien patterns are in place for each level. There is not really much I can do to the game right now. Although I will need to work on doing different tunes for each level of the game. 16 different tunes might be too many to compose, so maybe I do a few tunes and then create a table to load specific music files. Still, that will do for now :)


 



 

Tuesday, 13 April 2021

theC64 Challenege #6 Para Lander DX - Part 2/3

 1st April - 13th April 2021 (Continued)

Last time in my blog I mentioned about the Para Lander Mini, and also how I thought the game was finished. Things did not really go according to plan. In this next part, this is where I decided to stick to 64tass instead of using Turbo Macro Pro. 


 

Last time

I prepared, designed and developed an enhanced edition of Para Lander DX on theC64 with aid of an Action Replay cartridge plugin, some C64 applications, including Turbo Macro Pro. I worked my socks off on the game project and finally came out with a working game. However things did not turn out how I expected. Although I had a fully working title screen, hi-score table and game. There were some elements missing in the game. So here is what happened.

A new intro - Nice

Friday last week I ended up with a new picture for a TND intro by Hugues. I worked on programming it, added a Future Composer soundtrack, and the result turned out great. I then packed and crunched the game with the Sledge Hammer II and Cruel Cruncher V2.5+ to continue with the old-school theme. Then I wrote the game documentation. Unfortunately however the game was still not ready to release. So it was back to the game code once more.

Random situation

The game was working out quite well, but the main problem was the game play. The zeppelins were moving slow across the screen but the game was just too easy to play. I decided to create a random table of speed and I set random speed timers and pointers to the zeppelins. Unfortunately however I was unable to continue using Turbo Macro Pro as once again, the bottom area of the screen messed up and this time it crashed. This de-motivated me more from using Turbo Macro Pro for this game. I must have used all the memory perhaps?

As a drastic measure I decided to from now with the project use the 64tass on my PC. I created the random tables, generated them and compiled the game (and crunched it with Exomizer) and run the game in VICE. It was working quite nicely. After I completed the first round, Zeppelins randomly changed their speed. I came across another issue. The zeppelins were going past too fast. 

This resulted to only setting the speed of the zeppelin to the slowest speed, and play with the drag rates, between 0 and 3. After compiling and sharing the build with Hugues and another tester. They felt that the game would be better off using levels. So ...

Rank up

I felt there was something missing in the hi-score display. The title and game have music, but the hi-score display re-uses the title music. I felt that there should be at least one more tune for the game. For this, I decided to browse through the HVSC under my name, and I found a tune I feel that would have been great for the high score table. Feel Great. As a bonus this tune was also composed in DMC V4.0. I relocated the music to $8000, and placed it into the game project c64 folder and re-built the source. It worked. Excellent.

Level up

Random zeppelins in the game code didn't really work out, so it was time to make levels. Actually that was pretty much simple. I deleted all of the random tables and I entered the drag speed value for each level. The table for each zeppelin's drag rate was 16 bytes. The drag rate was still set between 0-3. Although setting the drag rate of 3 to 2 sort of looks as if the zeppelins are moving at the same speed, but in fact the speed is actually set to faster. After setting up the last level the game should loop. I then re-linked the game to the TND intro and prepared for a release candidate on my Ultimate 64. Yet again I used the native C64 tools to pack and crunch the game, like it would have been back in the 1990's. I then sent the game to testers. Some bad news - there were still bugs.

Stop bugging me

I decided at the end that I'll just stick to using 64TASS and Exomizer for all the packing and linking of this project, but I can disguise it to look like some of the old memorable packers . This saves me having to mess about all the time using old packers and crunchers just for the sake of old-school - then finding out something else gone wrong with this project.

The bugs in the game were that the hi score name entry routine allowed unwanted characters, which made a mess in the name entry. This was supposed to allow alpha-numeric characters, delete, space bar and return keys only It turned out I had set an incorrect range value (perhaps a typo) that read from number 0 and all the PETSCII character code before shift+A. Pah!

The second bug was that the total number of levels = 15 instead of 16 before looping back to 01. I set an incorrect value in the level compare code. It should have read 17 as the max value instead of 16, otherwise it would have been 15 levels. I re-compiled the source and fed the project through Exomizer, and after a few seconds, the game was working. The game has now been sent to the testers. Hopefully this could be a better result. We'll have to wait and see.




Update: Still not ready yet, but nearly there. Fingers crossed ;)

theC64 Challenge: #6 Para Lander DX - Part 1 / 3

1st April - 13th April 2021 

First of all, you may noticed that I deleted the previous dev-blog entry based on this project. Sorry about that, but I wanted to try and squeeze things down more and give you slightly less to read.

You may remember back in December 2020 I wrote a couple of games for the Cassette 50 Charity competition and I submitted them into the competition. The two games were Rocket Away (source code now lost) and Para Lander Mini (Created on theC64 in Turbo Assembler). 


During the Easter holidays, I felt like setting myself a challenge in creating an enhanced version of Para Lander Mini and write Para Lander DX. I was quite font with the development of Para Lander Mini. I also felt that this game could have looked and felt much better if I enhanced it. Since the source code was still on my USB I decided to set myself a new theC64 game development challenge to make it happen.

I chose to develop the game fully on theC64 using the following C64 applications:

* Faces Sprite Editor V1.3 (Sprites)
* Jon Well's Multi Screen Construction Kit (Charset graphics and game design)
* Face Painter V1.0 (Title screen logo)
* DMC V4.0 (Music composing)
* I-Relocator (Music relocating)
* Starion Text Editor (Scroll Text Writing)
* Action Replay MK VI cartridge plugin (Freezer and M/C monitor usage)
* Style's Turbo Macro Pro V1.2  (Programming) 
* ECA Compactor/Linker V4S (Packing/Linking)
* Cross' Cruel Cruncher V2.5+ (Crunching)

* Loader Game Tape Master Kit V3 (On the Ultimate 64)

The cross development applications used:

* Notepad ++ (Writing code and batch files)
* 64Tass cross assembler (Compiling code)
* Style's Dir Master (Disk Mastering)
* Exomizer V3.1.0 (Packing/Linking/Crunching)

The majority of the game was developed using those applications above. However there have been cases where I had to move source to the PC and use Notepad and 64TASS, more about that later as we get along through this feature.

Preparation

In order to prepare myself for this project, I needed to use Style's DIR master utility to create blank work disks (Since that cannot be done on theC64 itself). Then I imported all of the applications to the utilities .D64 image. I also made a .CJM file to disable the accuratedisk function, and allow fullheight mode. This is because by default I set theC64's root directory to use those functions. Once ready, I ejected the USB stick and placed it into my theC64. Then I attached the Action Replay MK VI artridge plugin to theC64 via the media manager. (I also own the original physical cartridge).

The graphics

The first stage was to prepare the game graphics. I started by using the Faces Sprite Editor V1.2 to draw the game sprites. The main sprites were the helicopter, the player, splash frames, platforms, Game Over and Well Done messages. The Game Over and Well Done messages consists of the game sprites.



The second stage was preparing the main game background and game scene graphics. I chose to use Jon Well's Multi-Screen Construction Kit for this task. As there were not many screen editors that allowed me to design screens and background objects the easy way MSCK did. I designed the text character sets and screen background objects then saved to disk as charset, object and screen data and also colour data. (Note: The pic below was an earlier layout of the game's graphics. The final result is a bit different).



Next on the graphics part, I pressed the Power + Right Shift Key on my theC64 to activate the Action Replay Freeze mode. Then it was time to enter the machine monitor and type in a small routine that will grab the colour and screen data and paste it into memory. I executed it and saved the colour and screen data onto a disk. 

Making music

I cheated a little where it came to writing music for Para Lander DX. I did use DMC V4.0 (As by far it is one of my all time favourite C64 based music editors and I used it since the mid-late 1990's). You may noticed that I imported all the utilities into the D64, but what I did not mention was that I imported my Happy Blocks music into one of the work disks. After loading Happy Blocks. I cleared the old music and written all the title and game music. The result turned out great. It made me feel great also.


The Game Code

The easy stuff was all done and dusted, so now it was time to get into the hard stuff. The game code. I did a zero memory fill of the C64, using a hard reset. Then I went into the Action Replay fast load option and I loaded the desired files into memory:

* Game graphics charset = $0800
* Game music = $1000
* Game sprites = $2000
* Game screen and colour data capture = $2800

Next I loaded up Turbo Macro Pro and got programming the game from source I did when I made Para Lander Mini in December. The first part was to remove a lot of the old subroutines from the game. I used the linefeed delete option. Next I produced a routine that would display the new graphics onto the screen. This was called by reading the game screen and colour data capture from $2800-$2be8 and colour data capture $2c00-$2fe8 and place it into the screen and colour RAM ($0400-$07e8, $D800-$DBE8). Then I run the source.

Setting up the new game graphics data

Having the graphics data to display worked more or less. However while the zeppelins were being dragged across the screen (using the old source interrupt code) the colour did not move. I got back to the code and I decided to cheat a little by creating a routine that writes the character colour of the zeppelin to the whole row of the C64's colour RAM. I repeated it with the other zeppelins. Everything was working great. I saved the code again.

Scroll them like you should

The colour layout was sorted out, but the zeppelins were still dragging across the screen in a rough fashion. Just like the Cassette 50 Charity Competition entry. Something needed to be done about this. I edited IRQ code to give it some multiple interrupts. There were five in total. Then in three of the interrupts raster splits, I set the target speed stored from the hard scroll routine and stored it to the horizontal scroll position ($D016). After running the source code, the zeppelins were moving at a much smoother pace. I was very happy with the result.

Animation

The next step was to deal with the sprite animation. The helicopter, the player and the happy landing sprites all consist of 4 sprites. For the sprite animation the pointers needed to be set and so had the tables for each sprite frame. A subroutine was required to be added to make the animation happen inside a loop. Then of course the animation should be stored to the actual sprite number that was being used in the game. After a few simple routines, I got the sprite animation to how I wanted it.

The other routine that was missing was the character animation. The water was still and the reeds in the background were still. I created a subroutine that could animate the characters. The reeds had to scroll up, and the water had to scroll left. There is something I did not mention about, regarding the IRQ. The botttom IRQ background colour was set to blue to blend in with the water.

Splash down

My next task was to generate a scene that breaks a looping code, and creates a new loop that causes the player to fall to its death and splash into the water. This event takes place every time the player hits a zeppelin. Also the water splash was another scene for itself.

Yippee

There was another part in the game code where the player lands onto the launch pads, the player disappears. I wanted to do something more fun, so I created a little routine which made the player jump for joy then disappear. However I did not want the pads to disappear. Instead I wanted them to go into the water. With a little tweak of code that was done.

Great the main game play was dealt with, but what about scoring? I moved the score panel to the bottom of the screen. Just as I was about to generate a score routine. Turbo Macro Pro got messed up at the bottom. I ended up with garbage. I estimated it as running out of memory for game code. So I decided to move the code to 64TASS and use Notepad ++ to update and fix the game code. Then after adding the time routine and scoring routine. I exported the assembler file back to thec64 and re-assembled with Turbo Macro Pro. Awesome, I have a working score and clock and lives counter.

Status

Although I had a working clock, there were a couple of things mission. The Game Over and Well Done routines. I got the player to lose all lives but no GAME OVER. I got the player to complete all six pads, but no WELL DONE. Just a flashing inc $d020 jmp *-3. I created a couple of routines that awarded bonus points to the player. Then I placed two sprites Well Done on level complete and Game Over. I got those to flash and then saved everything. I was very happy with the game. It was time to save all of the code and move on to the next step. The front end.

Designing the front end

Not much had to be done here regarding front end design. I did have something missing. A logo. I loaded up Face Painter V1.0 and I got working on a logo for the game project. Like with Spider Maze and a couple of my other game projects. I created a basic logo for the title screen. I filled each character with one colour. Then I painted the characters with a few colours. The Commodore 64's multi colour bitmap mode can only allow 3 different colours and the main background colour in each cell. The result looked pretty good for someone who is not really an artist :) After finishing, I saved it as a Vidcom image (Using Action Replay's Screen Grabber).


Writing a scroll text

I loaded up Starion Text Editor and wrote down my scroll text for the title screen. Basically it was all about the credits, game instructions and also the usual scrolling messages.

Making a title screen

Having a logo may have been easy enough, however something needed to be done to it. The game was missing a front end. I loaded all the game data (as before) and then I loaded up Turbo Macro Pro V1.2 again and I started programming the front end. I wanted to make a front end which contains a scroll text and some credits. However I wanted to also include the game background graphics, and a bit of flashing text. Well, eventually that did happen. Here is the result below:

Hi Scores

Although I was nearly here, in exactly the same code I prepared a high score table. The high score table data was made by using a normal basic screen, an Action Replay freeze, and in the text editor I set up the table and noted down the values for each name and list. The high score name detection had to be changed a few times, due to a lot of problems I have been having with the zeropages. I even tried the longer method, but it left too many bugs. I decided to re-write the Shock Raid hi-score name entry routine but I used different zeropage values. It worked nicely. Next I manually linked the hi-score name entry to the game code. The name entry routine was keyboard based. This was actually the most easiest part in the name entry. Especially when the whole game project was using Kernal routines and IRQs ($01 = #$37).

Hi Score Disk Access

The final part of this task was to create a high score saver/loader routine. This part of the role had to be done in 64tass. This is because I wouldn't have known if theC64 was writing / reading the high score table. This is because theC64's accuratedisk mode has problems. So I had to rely on 64tass. I did many versions of the hi-score loading/saving code but it just didn't go very well. There were a lot of crashing going on. This had to be investigated, but I realised I used routines and zeropages I should not have used in the game, that caused it to crash. Finally this got fixed.

Compiling - Oldschool Style

Well, finally I get to compile, pack and crunch the project. All of this which I decided to do on my Ultimate 64, due to the features it has. I loaded up the ECA Compactor/Linker and packed the whole chunk of game data with this program. (And also endured the noise while doing the job). Then I set the jump address of the disk loader ($5780) and saved the packed file.

Next I loaded up the Cross Cruel Cruncher V2.5+. I typed in a 1-liner de-crunch text and set my Ultimate 64 into 48MHz mode for high speed crunching. - I set the jump address to $0810 (The jump address of the ECA Linker's de-packing routine) and then crunched the program. It only took a few seconds, whereas if it was at 1mhz mode, it would have took about 15 minutes. I saved the game to disk. I tested it and run the game. Result. I have a full working game. 


Is the game ready to release? ...   Not yet, you'll find out in the second part of this blog. The game will be released. You will just have to wait and see.

Fredrik the Ball is Back: Spider Maze 2 in progress

  11th January 2026 First of all, a belated Happy New Year to all C64 and retro kind.   At last, a new blog update and a new C64 project is ...