Showing posts with label 6502 game programming projects. Show all posts
Showing posts with label 6502 game programming projects. Show all posts

Sunday, 25 December 2022

2022 Reflections

It is that time, and for the very first time I thought it would be nice to reflect about the game-related releases of 2022, which I made. Warning – this is a very long post, but hopefully you should enjoy it and you may get some laughs out of it.

No SEUCK Compo in 2022

First of all, unlike previous years I did not launch the traditional Official C64 SEUCK Competition, this is because I decided to retire as host from the competition. A new organizer was found, and there was going to be one at the fall of 2022 but due to busy schedules and other reasons, the competition has been postponed to 2023. Merman is a good C64 enthusiast and a writer for Scene World and also runs the SEUCK Vault. He has been appointed as future host for the SEUCK Game development competition. When that will be we don't know, but if anything does happen then I'll post news about it on my TND web site.

SEUCK Enhancements

Looking back in 2022, I started the new year with a utility called the “SEUCK Title Screen Maker”. It was a fun utility that allowed you to create brand new title screens for standalone games that were constructed with the Shoot Em Up Construction Kit. Those who were bored with the old front ends were able to construct a game with an animated title screen full of colour, optional hi score table and also plenty of music. No code was needed to make a new front end, just access to a freezer cartridge like the Action Replay MK VI cartridge or VICE.



The easy part was developing the utility. The hardest part was writing the manual. I am usually not good at explaining things technical, etc. There was good feedback and improvement suggestions about the production, some of which got implemented (Multi tunes). I was really pleased with how the SEUCK Title Screen Maker turned out. A few people have actually used it. I know Vox Video Game used it for Diamond, and Mac of TUGCS used it to make his SEUCK creation, The SEUCK Camp.

The other SEUCK enhancement I did was a special tutorial of SEUCK School. A tutorial where you could make a new score panel for your SEUCK game, using 8 sprites in Rayfish. This was to be split into two parts, but unfortunately part 2 had to be postponed due to raster time issues and needing more investigation. Perhaps in the new year this will be solved.

That said, regarding enhancements. There was one unreleased game which was made for the delayed Reset 64, which I enhanced with a new front end and music. All will be revealed in issue 15 of Reset when it comes out.

... Now what about the games I have developed throughout 2022? Well, let's check them out!

Lane Crazy

The very first C64 game creation I wrote in 2022 (although I started it Christmas 2021) was a really fun creation. It is quite a memorable production. I know I had loads fun coding it in C64Studio, and for the game to appear on the Zzap! 64 Micro Action covermount was a real bonus.

I teamed up with Blazon and Friends to develop a really fun hi score survival challenge called Lane Crazy. The concept was quite original and turned out well amongst the crowd. You had four balls rolling down a vertical scrolling lane while holes appeared at random. You had to use either a joystick or keyboard to shift the balls left or right. If one ball fell through the hole, the game was over. There were 8 levels in which the player had to survive, where after two levels the game got much faster.



While developing this game, I was using some of the usual graphics tools, such as Charpad V2.7.6 free and Spritepad V2.0 BETA. Usually my graphics looked really rushed out. However the result of making the in game graphics turned out nice and smooth. There were separate void tiles specially made for each level. When I was programming the game, I made the code copy charsets that formed the void and placed it into the actual charset that formed the scrolling void. The rest of the scroll was a wrap-around scroll, apart from the holes that appeared on screen at random. The concept really worked. The hardest part was to get the smooth scroller working on NTSC, but at the end I managed it.

When I was composing music for this game, I decided to go oldschool and use DMC V4.0 on my Ultimate 64. The music for the game blended in quite nicely.

Lane Crazy was really great fun, and it was nice of Firelord, Logiker and Baracuda to have teamed up to help me bring out a quality production, which saw the light of day. A huge thank you to you all for helping me out with such a successful project. Maybe we can do another new game in the future.



Tasered in the Crotch

The next game (Ironically) I wrote was a little joke game. It was called Tasered in the Crotch. Despite the silly name, and it being inspired by Commodore Format Archive’s Twitter poll (Dick Tracey, Cisco Heat, Tasered in the Crotch). The majority of people voted to be Tasered in the Crotch. This gave me a funny idea for a game coded in C64Studio. It was a fun little shooting gallery style game.

You had police officers lined up on a high balcony (or maybe a scissor lift). They are armed with their new state of the art tasers. Your task was to command each officer to fire a taser at the bank robbers that were walking/running past. Some were armed with smoke bombs, and you had to defend your officers from being hit by a bomb. Also, you had to watch out for innocent civilians who were passing A bomb or tasering civilians resulted in a loss of a life. If the number of criminals escaped exceeded the quota set for each level, the game was lost.



The game design was yet again made in Charpad and Sprite Pad (Same version as before). I wanted to make a few different landscapes, but with the limited number of characters, I had to improvise. After importing into the game project in C64Studio. The code was in place, and the result looked really good.

It was great fun making this game, and the music (made in Goat Tracker V2.76), which was featured on the title screen sort of had an Ocean Loader inspired tune to it just after the introduction might sound quite familiar.

A game which was intended to be a joke turned out to be something much more playable and successful, compared to Dick Tracey and Cisco Heat - It also appeared on the Zzap! 64 Micro Action covermount and was quite popular amongst one particular video reviewer :)


Little Nippers and Little Nippers DX

Reset had launched a 4K game development competition. I wrote a fun little single button game in which later on become a full game production. Little Nippers was the game. It was a fun co-op production which I made in C64Studio. This was a single screen game, where naughty kids were running across the beach. There were buckets lined up and it was up to you to fire a crab out of the buckets in sequence, by using either the spacebar key or the fire button. The crabs then moved in a straight line and if you nipped a pesky kid, points would have been scored according to distance from the sea. If the crab entered the deep end of the water, it gets lost.




Although Little Nippers started as a 2022 4K game competition entry. However, with summer on its way, and the competition submission deadline had finished. I decided to team up with Hugues Poisseroux to make a full version specially for Zzap! Micro Action’s 9th covermount, before taking a break from it and focussing on finishing off one of my main game projects.

The new version of Little Nippers gave the player five different beach/seaside locations. Before you were able to complete each location, you had to complete eight levels. There were 40 levels in total. Also there was a fun incentive which was added to the game. You had a time limit to launch your crabs out of the buckets before they have enough and jump out. There was also an incentive where you could fling a jellyfish for more points. Little Nippers DX was a good highlight and it really turned out to be a fun and pretty much addictive game creation.

 
Hugues' loading bitmap really highlights how fun the game was to be, It highlights some of the elements that were featured in the game. A snappy crab, a jellyfish and also a bikini (or two). All of which blended into the all new version of TapeTool turbo loader.




TheC64 Coding Challenge - Poing Ultra

I joined the group, Retro Programmers Inside. It was a group of retro computing enthusiasts, who were learning to program games and other fun stuff. The group was run by Prince/Phaze101, and Retro Programmers Inside. They did weekly video casts which mainly involved coding tutorials and also run game jams. The challenge I participated in was the PONG challenge. The game was called Poing Ultra.

My challenge was to make a new retro game, which suited the PONG challenge. It was to mark 50 years of the classic arcade bat and ball game, PONG. I thought it would be fun to make my very own game using RGL’s theC64 full size computer. The game was constructed using various Public Domain utilities I owned back in the 1990s and also the previously commercial Multi-Screen Construction Kit, and Action Replay cartridge MKVI (plugin). Music was made in DMC V4.0, The music was mainly techno, trance style and it worked out pretty well in the music editor. The programming was done bare bones in Turbo Assembler / Turbo Macro Pro most of the time.




There were a few pitfalls I encountered while developing this game. Although the main game was fully complete and working well in the assembler. I should have programmed the title screen as a separate file. Instead, I used the same assembly file and run out of memory. It wasn’t a complete failure developing this game. I ported the code to 64TASS and finished off the production using the cross-development tool. The game graphics were then drawn in Face's FacePainter, and the result turned out quite nicely in the overall productions. Mastering was finished with Martin Piper's TapeTool V1.0.0.7




The game got submitted to Prince/Phaze101, who then later broadcasted the game live on his Twitch channel along with some other entries. He was very impressed with the game overall, especially the graphics and presentation. While I was watching the broadcast, I was very pleased with the overall result.

Slug VS Lettuce

I developed a new little game, as part of the Scene World feature “Let’s Make a C64 Game”. This time it was a 10 minutes survival challenge called Slug vs Lettuce. It was a little game in which was to teach the basics of making a single screen platform game using KickAssembler. You played a slug that has to jump from platform to platform, gobbling up the lettuce. The slug had to avoid getting washed out by the falling salt droplets.

The game graphics were designed using the usual cross-development platform tools. The music was made in Goat Tracker. The rest of the project was being made in VS Code, and KickAssembler via plugins. Although I liked KickAssembler, the one thing I least liked, during the development of this project were the nuisances that VS Code developed. Popup-tooltip, etc. Of course compiling the code was easy enough, a basic push of F6 on the compile target file, and then F5 to run it, but there were no possibilities of crunching it with Exomizer (or the brand new TS Crunch). Instead I had to just make a batch script file and execute that.

This game did not turn out too bad, and it was really fun to make in Kick Assembler. However, the hardest part was to get the jump and charset collision mechanics accurate. The good thing about it though, was that the game worked out really well.



My biggest C64 project - Cruiser-X 79 – finally finished and released

The majority of 2022 was spent on my main game project, Cruiser-X 79. I had waited too long for additional graphics and level maps. Unfortunately, I received nothing due to many busy periods which Saul had to go through. – That was until I thought about an alternative plan. I did promise to get Cruiser-X 79 finished in 2022 and I really wanted to do that. However, I wanted to try and make the job easier for Saul. So, I created some rough game graphics (which you saw in previous blog entries) and maps. Then I sent them over to Saul to improve. 

I also worked exceptionally hard on making level music in GoatTracker Ultra V1.2 and getting everything to work. Also, I was working to a deadline to get this game ready in time for the Christmas issue of Zzap! 64 Micro Action (Issue 11) and its covermount.



I did come across one major pitfall in getting the mighty big shoot ‘em up finished. That was handling the Covertbitops loader system and Exomizer level unpacking system. It took me quite a lot of attempts to finally get each level to unpack and run on the disk version of the game, and I managed it.  

I also wanted to do a multi-load tape version of the game. Martin Piper’s TapeTool was one option, but I chose Paul Hugues' Freeload at the end because it used less zero pages. Also, it did not affect the game code either. The overall result for both digital disk and tape version of Cruiser-X 79 turned out excellent. It felt like a full price commercial quality game production as you would have expected back in the late 1980s or early 1990s. It was also the very first time I ever made a huge multiload production - especially on tape as well as disk. I am really pleased with how Cruiser-X 79 turned out. The feedback was also good.




Snake VS Bomb

Now coming to the end of this year, I decided to end C64 development for 2022 with a bang. There was a competition that was run on CSDB called the “Snake Fun Compo”. The idea of the competition was to create and develop a demo, game or whatever was related to snake. Considering there have been many Snake clones launched (I specially did one as a theC64 challenge back in 2020 called the Forever Extending Hungry Snake). I wanted to make something completely different.



Hugues and I joined forces again to bring out a quality game production for the competition called Snake vs Bomb. Developed in CBMPRGStudio V4.0 with KickAssembler (and with less nuisances compared to VS Code), Snake vs Bomb was a vertical scrolling dodge and collect hi score challenge.

You played a snake that was slithering through a tunnel. Fruit and bombs appeared at random inside the tunnel. The snake had to eat the fruit but avoid the bombs – otherwise the game ends. As the game progressed, the speed of the game scroll increased levelling up in difficulty. The result turned out really nice, and no matter how simple the game was, it turned out great. The graphics and the loading screen artwork really polished the game. It was also my very last game for 2022.



… and that rounds up my productions I made in 2022. 2023 will be a tougher year, but I insist that new games will be made by me. There should be another theC64 programming challenge sometime (Where I make a production fully on RGL’s theC64), my SEUCK enhancements/tutorials and my editorial task of building Scene World will continue. Also, I aim to return to Unity and convert one of my year 2022 C64 games to the platform. Before I do that, I some books to go through. I look forward to seeing what can be achieved in 2023. Also 2022 is the year I finally realize how proud I am about myself, and my creativity - and may it continue throughout 2023.

If you would like to check out my releases (as mentioned in this lengthy blog) you can find these at:
https://richard-tnd.itch.io

I would like to wish you all a Merry Christmas and a Happy New Year

Wednesday, 3 August 2022

Cruiser-X 79: More bubbles

 Because I liked level 4 so much, and the bubbles scene. I decided that level 15 should feature the bubbles once more, but this time much inside a much harder level. There are some more barriers in which the ship should avoid crashing into, but as usual shields should be easy enough for the player to pick up. The shield allows the player to fly over deadly background for a temporary amount of time. 

On the music front, it is another fast paced tune, but not trance. The music sort of feels very oldschool like something you may have heard in the late 1980s or early 1990s. The idea for the music for this level was intended to sound a bit like Maniacs of Noise, but the tune plays too fast. I had to make the music fast due to the level finishing before the music loops back. The result is pretty good.

I exported Level 15 graphics into the game source. Re-configured and compiled the game to put everything in place. Then I set the game code to play level 15 after loading from disk and played the game with infinite lives. This rough level design has turned out quite well. I am really pleased with how it has turned out.




There is only one more level to design this week, before I go full on into the game code next week fixing the game bugs and adding additional elements like 'continue game', 'hi score/name entry', etc. There is one thing I am most certain about. That is completing the project in time for a Christmas release. There is still plenty of time for improvement and finishing everything off. - Unless of course circumstances beyond my control holds things back, which I hope will not be the case. :)

Saturday, 14 March 2020

Where have all the aliens gone?

14th March 2020

Great news. Cruiser-X 79 continues this month. Today has been quite a long session. You might probably notice that the game was delayed for a very long time over several months period. This was mainly because of some other game projects I was working on. Happy Blocks DX, Amazon Tales, Mega Tank Blasta, Toxic (2020 Edition). Amazon Tales was made as a practice piece in order to attempt to develop custom enemy movement patterns which didn't require wasting $200 bytes of data. Plus I wanted to add a mixed batch of enemies in to the game project.

Since the game engine in Amazon Tales was successful. I have decided to try a similar attempt for Cruiser-X 79. In order to do that. I have to start the enemies attack patterns from scratch. Before I could do that, I had to delete the existing alien attack patterns. Therefore on today's build of the project, I concentrated on setting up table values per enemy type.

For example:

Alien1SpawnX = The starting horizontal position for the alien to spawn from
Alien1SpawnY = The vertical horizontal position for the alien to spawn from
Alien1Dir = Direction for the alien to move whilst in operation. 0 = Up, 1=Down, 2=Left,3=Right. This consists of a table of 8 bytes (Since the aliens are supposed to switch to the next direction every time a path limit has been reached).
Alien1Speed = Speed of the alien which is moving, once again 8 bytes.
Alien1ChangePosition = Horizontal or Vertical position in which the alien must reach before it can change to the next direction (or leave the screen)
Alien1ObjectLo = Low byte of the animation frame read from the sprite animation subroutine
Alien1ObjectHi = Hi byte of the animation frame read from the sprite animation subroutine
Alien1Colour = Alien sprite colour
Alien1Lives = Amount of lives the alien has before it can be destroyed
Alien1Score =  Multiple number of points to be scored per alien destroyed

I also made different lo/hi byte tables which should somewhere in the game code (once implemented) copy the self-modifying pointers in to the correct self-modifying code. For example, after the last change position has been breached, and all aliens are off set. A new group should spawn.

For now, there's no aliens in this current build, because the code needs to be started from scratch. This will be continued during my next coding session on this game project.


Monday, 25 December 2017

It's Christmas ... Time to Follow that Starfysh

25th December 2017
 
First of all, Merry Christmas (Happy Birthday to me ;o)) and a Happy New Year. This will be my final Blog for 2017, and I have decided to talk about the production of my LATEST game release Starfysh. This is basically a horizontal scrolling shoot 'em up - which is not a SEUCK game, although I have released some enhanced SEUCK titles as well today.



Starfysh is a simple 4-level scrolling game, in which Earth has been severly damaged by an alien battle. Humans and dogs have been transported on to rescue stations. The stations are now being attacked by aliens. You are a commander of the Starfysh Elite. Your mission is simply to battle through 4 different zones, fighting the aliens. After you reach the end of one stage, you'll move on to the next. This game has no particular power ups, but it was inspired a little on some classic games like Hewson's Subterranea, and Mastertronic's Star Slayer. The player can be controlled using a joystick plugged into port 2. That's the fun part. Now for the production notes:

Programming

The game was programmed using C64Studio, while I had a lot of free time spare between October - November in the evenings, and weekends (Excluding Sundays). The game consists of only 4 different maps which are quite large and caused me to play around with moving data to different areas of memory. 256 tiles in fact. All levels were transformed from bitmap format to charpad, using the map importing option. At first there were some technical problems. There were too many tiles and chars. I wanted a limit of 256 tiles/chars. The tile + charset compression option was a very good help.

Graphics and Design
 
I managed to fit 3 levels in, but adding the fourth stage was really challenging.  Each level was squeezed down using the Exomizer level/memory compression mode (exomizer.exe -l mem $xxxx source.prg -o dest.prg. The example decompression source was used to extract the compressed graphics source. (Charset, tile set and map).

Before I had the game sprites by Shaun, I created some test sprites of my own (Which were created in Sprite Pad, and then imported into the C64Studio source code). The sprites later got imported into my little weekend SEUCK project 'Space Crumpets' (Along with test sprites for Cruiser X-79, which I also drew ages ago). Creating the sprites wasn't much of a problem, but moving them was quite a challenge. I could have used the Alien Formation maker, which I wrote about a year ago, but I didn't want to make this another X-Force type of game. Instead, I worked hard on programming sprite movement patterns, based on timing and sense of direction. Some aliens will just move across the screen, but some aliens will move in a different formation. Also, unlike X-Force, I added alien firing. I also wanted to do something different to the game. The player should have a shield at the start of the game, or every time a life is lost. Shaun came up with an idea, which was to create a damage count before the penultimate death for the player.

Shaun did some new sprites for the game. The sprites were designed and created using the Shoot Em Up Construction Kit. Shaun used this editor for sense of a purpose (Not for creating a SEUCK game this time). The sprites were imported inside sprite pad. Sprite animation had separate subroutines to animate at different speed. Shaun's sprite example in SEUCK had to be followed. This was so that I could match the actual speed of the alien sprites.

Designing the front end with logo and scroll text was pretty much straight forward. Shaun sent me some bitmap mockups, and I was able to port them to C64 charset and screen format, using CharPad. This helped me a lot, however the title screen data had to be split into two separate charsets. The reason being was that manually creating the HUD design was a really difficult and painful task. I had to find a way to cheat and save time doing this. So I captured first the text charset snapshot, which included the HUD design. Then I capatured the main title screen presentation mockup. I imported all of the graphics assets into the source code, and programmed a new front end, and a working score panel, which uses the HUD. EXCELLENT!



Music

Sound and Music was done using GoatTracker V2.7. The in game music style was slightly inspired by some tunes from the demo scene in the very late 1980's - early 1990's (The Dutch USA Music Assembler/Voicetracker era). This time round I didn't want to make any techno/trance music. I wanted to try a different style. The title music was a slight remix of one of my older tracks, I originally composed in the 2000 year. (Space Techno I think it may have been called). I made the remixed title tune sound more disco style, rather than techno. For the up scroll ending music, I went for an epic space ending theme.  Sound effects were also created using Goat Tracker.


Mastering (Tape+Disk)

The final mastering of the production. Before I could do that I asked Shaun if he was able to make a loading picture. He suggested that I contacted JonEgg. I spoken to JonEgg and asked if he was interested to draw the loading pic, JonEgg was. However Shaun drew me a temporary loading picture for the mastering - also just in case there was no loading picture at all.



I decided to do the first master, using my pre-built C64 tool 'Tape Master Pro V3.0'. Before I could do that I imported the assets 'Loading music', 'Shaun's picture' and game, and used a black screen with thin dark blue loading stripes scheme. This was Shaun's suggestion. A good result. However, when I was on the 1541Ultimate 2 page, I discovered that someone else used Tape Master Pro V3.0, on a C64 game, but the loader caused a few problems. I contacted Martin Piper to find out, and he introduced me to a new version of TapeToolBuild.

I had to recreate the tape loader using the TapeToolBuild source in scrollermusicloader.a as the source code had no ability to display a loading picture or use any additional code I would have wanted it. So I re-programmed some of the features from the Tape Master Pro V3.0 tape loader (The flashing text, scroll text, picture display and PRESS SPACE option). I also created my own source files to import/relocate the game and picture data through a PC. Also a custom loading stripes scheme. The result turned out how I wanted it.

The disk loader was pretty much straightforward. I used the exact same loader as I did for Let's Invade (A Space Invaders game, which I wrote last year). I placed a loading picture and music for Starfysh into the game. Bolted a TND intro before the loader. I chosen the latest intro I created earlier on this year (Rippled Dreams), and added a brand new tune to the intro. I imported the main game and used Excess' Dir Master V7.1 in VICE to change the load address of the main game to $2000.


Eventually I received an email from JonEgg, which he attached a new loading picture for the game. I loved it. :). This replaced Shaun's loading picture, but I felt that Shaun's pic should still be used. So I made a timed splash screen which quickly display's Shaun's pic and run i through the Exomizer.  Not a bad result.



I showed the Disk + Tape version of the game. He suggested that the disk version should have loading stripes. He wanted dark blue loading stripes. I tried implementing this feature into the .D64 version of the game. Sadly adding the function to the IRQ loading code LDA #$06 : STA $D020 : LDA #$00 : STA $D020 caused the Exomizer decruncher to crash instead of decrunch. Instead I replaced the border flash with INC $D020 and DEC $D020. That made a huge difference and the program worked absolutely fine. :)


Starfysh can be found and downloaded on to your C64 1541Ultimate2, Turbo Chameleon, CCS64, VICE or whatever at:

THE NEW DIMENSION - GAMES PAGE - STARFYSH

other presents (new releases) can be found at:

 THE NEW DIMENSION




Also, to support SDIEC users, the game has a kernal loading option (With stripes), but you still will be able to listen to the loading music after loading has finished.

MERRY CHRISTMAS, Enjoy the presents, see you in 2018 and have a HAPPY NEW YEAR!

Friday, 26 May 2017

Cruiser X-79 Update #5

14th May - 26th May 2017

Lots of things have been going on over the past couple of weeks or so. I have such little time to put a lot of info about what has been happening into this blog. Also I don't have a video this time round. Anyway, here's what has been happening behind the scenes this time round:

First of I wanted to make some slight improvements to the background graphics, although some glitches still existed inside the background graphics. This was because I was only doing rough ideas, not actually implementing the proper games graphics. I will be looking for a C64 buddy to do this.

As well as this, I have been putting in pointers in which should call the low/hi-byte values of the alien formation tables. This also involved manually creating, drawing and testing enemy sprites for each formation. The idea is to later on, on each level call different alien formation to the game. A couple weeks before I created the patterns for the alien formation. After testing all of the formation today. I was happy with most aliens, but there were a couple of formation patterns that might need to be altered in the future. One pattern was very buggy.

Finally the player now has fully working power ups. Every time it picks up a rocket tile, a power up gets rewarded to the player. The player cannot fire a new power up / default bullet until after the last bullet has moved offset.

So far I am very pleased with the result. It looks as if the main game framework could be finished soon. Just some debugging to the interrupts, bullet firing and of course replacing tacky alien formation movement with a better custom formation. Also of course there is the alien firing bug, which needs to be fixed, to avoid bullets firing where you cannot see the aliens.

The background snapshot below looks entirely messy, but I'm hoping that there will be someone available to help me work on the in game graphics and game sprites.


Saturday, 29 April 2017

Cruiser X-79 - Update #4



Saturday 29th April 2017

Here comes yet more progress made with this great Commodore 64 game project. The game is starting to work out much better. The player / enemy bullet collision finally got implemented. I did have a few issues with the sprite/charset collision subroutine, so it was time to take a look at that. There were some missing values, so those got fixed in. This took some time and I felt quite frustrated with the sprite/background collision subroutine. I decided to take a look at the source code of X-Force to see where I actually went wrong. Sometimes it is always good to have backups of older game projects, when in doubt :)

After fixing those. I decided to work on a few additional background tiles, also swapped colour attributes. This is so that on later levels, all 3 colours of the background ($d021, $d022, $d023) can be different. The additional tiles build are power up tiles. The tiles got exported into the source code. The tiles made were a shield for player's invincibility – for a temporary moment of time, rocket tile – for increasing the player's laser speed and a bomb – for a press space bar smart bomb feature (not implemented into the source yet). I tried reading the player ship to background collision, it read fine for the shield and laser. Strangely enough however when I tried to call the collision test to the bomb tiles, the code seemed to have read the wrong part of the background, which caused a wrong area disappear. This will be looked at some time next week.

You may also remember last week I added a player death subroutine. There wasn't a lives indicator. So that got implemented today. The yellow diamond characters represent the number of lives (including zero) which the player has. After the player explodes, the yellow diamond becomes red. The player has 4 lives at the start of the game, and will eventually be able to get extra lives later on in the game – Not implemented yet. A Game Over jingle was produced for the game.

I also implemented a STAGE CLEAR message at the end of the level. Before the message appears on screen, I made it so that the player moves up.

Anyway, time to backup this project and show you yet another video preview. Yet some more bugs in the code, but this is still a WIP anyhow :)


Saturday, 22 April 2017

Cruiser X-79 Update #3

22nd April 2017

It has been quite a while since I last blogged something in. This time I have no video to show you, but a few snapshots, to prove more work has been done on the project.

Anyway what has been happening this week. Well, today in fact. Some more game sprites were drawn, and another 2 alien formation tables were set up. Although no path movement tables have yet been set. This will happen occasionally. Some new space ships were created to make alien waves move downwards, and diagonal through a table. There's also another downwards formation, where circular robotic ships move in different speeds. They appear in more than just one go.

I also focused on scoring. A score subroutine was added and linked to the enemy death subroutines, so that the player scores points per alien shot.

Then came the sprite/background collision. I referred to the source in Trance Sector Ultimate, to try and get a 2x2 char sprite/background collision, and even implemented one on the 2x3 characters. I wanted to give this game a Uridium/Warhawk type of feeling, so made it possible that the player can destroy background objects to boost the score. The other sprite/background collision resembles to the player / wall collision.

After adding the collision subroutines, the player was missing something vitally important. A shield counter - to give the player chance to escape collision, when in re-spawn mode. Also an explosion animation to the player. So that every time the player hit an enemy, when the shields are out it explodes.

Now here's the latest WIP video of the work that has been done so far on this project.


Tune in next time for another project update :)

Saturday, 1 April 2017

Cruiser X-79 Update #2

1st April 2017

Okay, just a quick update in the blog. Well, today was quite a hard going session. More work has been done in the game project, and seems to be going quite well. I programmed some additional 1-way alien formation patterns. Although I do intend to create path formations in the near future. Also added are some newer enemies, and also a parallax effect in some parts of the space station. I won't say any more, check out this video below :)




Saturday, 1 October 2016

Let the Invasion Commence [Part 9]

25th September - 1st October 2016

Let's Invade was currently in the testing phase. Unfortunately not everything is quite ready yet although I do feel confident about an Autumn release of this game. Parts of the game code needed to be tweaked, the Health and Safety notice needed to be updated, and also the game char set needed a quick change. So I fixed those, however, I came across another obstacle. The alien bullet firing isn't random enough, and it seems the same alien shoots the bullet. Sadly this is still the obstacle I haven't got over with this week.  

During that obstacle, I felt slightly demotivated, and decided to code a little something else. That was of course a mini music demo called 'Mix Box 1'. Featuring 5 new unreleased tunes, and some oldschool look, despite the raster timing issues. I've never really liked timing raster bars.

Thirdly a disk menu for Reset's Craptastic was programmed, near complete, but requires raster bar timing.

Today, I got back to Let's Invade and once again, it was another frustrating session. I did some how manage to get the enemies to drop bullets randomly, by creating the wrapping round routine, but after a while, the same aliens were dropping the bullets. Yet again, I didn't manage to get over this obstacle yet. One day climb over the wall that blocks me, but it is a matter of when....


Saturday, 10 September 2016

Let the Invasion Commence [Part 6]

5th September - 10th September 2016

Quite a lot of hard work has been done with Let's Invade during the week or so. Most of this week, I have been concentrating on getting the rest of the levels in place into the game code, and finally got that finished. I was very pleased with the result, but some more work needs to be done on the invaders.

The invaders were not being able to use the full screen to move across during each level. If 5 rows of aliens were shot at either end, the other aliens would NOT stop moving to the end. So I made loads of macros to get the aliens to move how the Space Invaders would have moved in the first place. Once they got to a certain stopping position. The invaders move down 4 pixels. Unfortunately, there were loads of flickers over the aliens, due to sprites being called inside a raster split. I then move the sprites up each raster about 20 pixels. That was much better. Although there were still flickering aliens.




Next I generated some macros for the collision for each alien sprite. An alien should get shot according to which position the player's bullet is located, and the raster beam of where the alien sits. It resulted quite nicely, but after so much code had been produced. While I was still tweaking bits of the code, an unknown bug had occurred. Sadly the player sprite and the bullets no longer use the ASL ROR $D010 sprite expansion. I couldn't work out why this happened, when the synchronized loop in the game code calls for Sprite0, 1 and 2 to expand its MSB X position. The aliens MSB expanded okay. Maybe one day I may find the solution. If not, then I'll have to just go back to the previous backup of the code, and just work on the power ups instead, and leave the invader's movement to how it was before. We'll just have to wait and see.

Sadly not a good result :(

Friday, 2 September 2016

Let the Invasion Commence [PART 4]

29th August - 2nd September 2016

This probably has been the most active week on this game project. So far now. Last week I managed to get 11 levels done so far in the game. Well this week, I wanted to do some more this week. I managed to get 23 levels done. However, most of this week I decided to take a little break from working on levels, and I decided to do some other things with this game, during my spare time.

First up, for a couple of days or so, I wanted a little break from game programming, so I decided to boot up Goat Tracker and compose some in game music. The music turned out very trance like, but when I imported the tune a day later into the game. Suits the theme quite well. I may have added a scrolling 2x2 tile behind the invaders, but I have another trick to add to it. Wouldn't it be better if the grid flashed any time the trance drums kicked in? Maybe next week.



For now ... I decided to re-design the character set for the game, and title, to make it slightly more modern. I was tempted to create a new front end for the game, as I was just bored with the game preview title screen. Well, I got carried away and made a more presentable title screen. It features a char-scroller inside the logo (Where 2 multicolours are mixed together), a scroll text and also the alien scoring. I also added an alien scoring display, and also the music/sfx options. (The charsets at the top of the front end will reveal those). I also created a new 2x2 charset for the main game, itself to make it look quite modern as well.

More work is to be done on the game project in the near future, but I am very happy with the work done on it so far. After adding all of the levels into the game, the power ups will be next on the agenda, and also the flashing grid for the trance music (and different grid tiles for each level). I also have the high-score table/name entry to add to the game as well.

Monday, 11 July 2016

Let the INVASION Commence [PART 2]

8th-12th July 2016

Last time when I was working on this little game project I was working on the main game framework. Well, now, a little more work has been done over the previous 2 or 3 days during my spare time. Unfortunately things will go pretty much quiet for just over 2 weeks or so (That cannot really be helped!). Anyway, here's what has happened this time round.

After testing the main game engine, and felt much more happier with it. I decided to do a spot of music and SFX composing. So in order to do this. I used Goat Tracker. As the music editor can also support sound effects with music. Considering that when I produce the title screen in the near future. I will want 3 different options, the player can choose for sound (and music). They are: Music, Music + SFX, or SFX Only. It took me a couple of hours or so to think and compose a tune I wanted to make for the game. I decided to stick to the melodic trance type of theme, and ended up with a pretty stunning result. Sound effects were created and converted to source code. Then I generated the byte tables for each sound effect in order to implement into the game's code.
The next job was to sort out the scoring system. So I implemented the score in a multiple of 10 points. Aliens of a certain type will score 10 points, some 20, and also some 30 points. I also been working on subroutines, in which will fade alien colours to a darker RGB, before it can be killed. This will be taking effect on later levels. Earlier levels will start with the basics, from having less aliens, to having them all on screen. The idea for each level is to eventually have alien colours lighter on some aliens - Making the player have to shoot more than just one shot at the alien. I am also considering to so something like a 'Special Power Up' alien. In which an alien appears in an unusual colour. Should it get shot, the player could have faster firepower, or even faster movement. This idea is currently on the drawing board, but should it happen. Then it would probably make things a whole lot better. Levels should have varied alien speed - where later levels are much more faster. I will also need to vary the bullet speed.

Finally, graphics ... A background has been designed and created, although it isn't really a final background design. There are still some minor issues, but yet again, it is still just for testing. The score charset also has some minor pixel bugs, which will be fixed at the end of the main game. Here is a preview snapshot of the game's progress.



Things to do next:

Probably in about just over 2 weeks time, I intend to tidy up the code, and get those aliens moving the full screen, rather than part screen (Although sprites are being used for this). The trick will be to check if an alien at each end is alive or not. If an alien on the very left or right on all 5 rows dead, then the next alien sprite should be able to reach the edge of the screen before moving downwards.

Also there is the front end with game options to work on. The idea for the new front end will be to do something pretty much spectacular. Also give out the scoring system for each alien shot.

Then there are also the levels to setup as well. In which the invaders will appear on different lines, and perhaps as different colours as well. This idea is to give some variety into this game.

I might even do an option where the player can choose between a solid sprites, or checkered sprites. 

Saturday, 19 December 2015

The end is near - Can we me make it? ...

18th + 19th December 2015

Wow. Some more free time at last. Well, more work on Vortex Crystals then. Before any more programming had taken place in the game project. I asked Alf if he'd like flashing lights animation added to the background. After he suggested that it was a great idea. I worked on mapping the values of the char colours for the flashing lights. After compiling the code, the animation turned out quite nice. I sent the new build to Alf and he liked it.

The next step was to work on the end screen (since the whole game engine is finished right now) . A couple of months back, I designed the end screen using the example background, and crunched it - but didn't actually test it until yesterday. The result turned out pretty well. So I worked on the animation scenes. It involves the player attempting to make an escape from the V-Tex complex (After completing room 16). What happens next, I will not tell you, but the ending turned out GREAT. I even had ENOUGH memory to fit the ending into the code and compile a 16KB cartridge.

After finishing the end screen, I worked on doing a phase of bug fixing. I felt the player was jumping too high in the game, so I halved the jump duration on the player. Unfortunately that didn't work out that well. The jumping height was too little. It made things more impossible for the player to be able to jump high enough on to some platforms and conveyor belts. So I increased the jump height by a quarter. It looked and felt much better.

I wanted to add some bonus scoring to the game code, so that the player gains a bonus number of points, according to the number of bullets the player carries. Of course if the player dies - default bullet amount will be 40. Only at the start of each level, the player starts with 50 bullets. I also had enough space to add a flashing text routine. After finishing with the project (for today) and email Alf the latest build. I ported the game on to my USB dongle, and play tested it on my C64, via the 1541Ultimate 2. Really happy with the result so far. ... but is the game finished yet? ...

Not quite. Although I can say it is probably  99% finished, it needs a little bit more bug fixing, a pause+quit game function, and then pass it over to one of my C64 scene buddies to NTSC fix it before the final compiling and submission. :)

After the compo - I intend to extend the code a bit more, to give out more frames for the in game animation. Add additional in game options, a better looking front end presentation, hi-score table, etc. Apart from those - the main game stays the same.


Monday, 16 November 2015

Alien Invasion

13th November 2015

Just to let you know that progress for Vortex Crystals is still under development. However, on Friday 13th November. Disaster struck on my HDD. When I tried to load the assembly source file of the Vortex Crystals, I ended up with a blank file as the main file. This happened after an update was installed, and the PC HDD was undergoing repairs by the Op System boot up. I tried copying the file from the backup drive, and sadly it was the older source file and incorrect. Damn, all is lost ... Well not exactly, here's what happened.

When I'm working physically, and feel tired, I can get myself lost in places, and the same with file organisation. I spent most of my time searching for the correct backup source of the missing code on that day. Thankfully, it got found, and I was able to continue doing more levels for the game. (grin). 7 levels were already complete, so I worked on levels 8 and 9. Level 9 introduces 'I-Droid', the eye type of alien.

16th November 2015

More progress with the level setup, but I came across a small problem with level 10. Alf forgot to add a door on to the stage. So in order to resolve this problem. I decided to disguise one of the alien spawn gates as an exit. Therefore making this level more challenging. Then I started on doing level 11. This level introduces two new and harder aliens, which are the Squidroid (10 hits to kill) and Robot (8 hits to kill). These later levels are planned to frustrate the player more, as the player only has a limited amount of ammo to fire. Shooting 3 aliens will give the player 10 extra ammo, if the power up box is picked up straight away. Later levels are also intending to get even more frustrating, when the simple aliens (from levels 1 - 10) will not be appearing on the later levels. :)


The deadline is about 2 months and a half away for this game to be entered to the compo, and I'm quite confident that it will be finished in time. :)

Stay tuned ...

Saturday, 31 October 2015

Level it up

25th - 31st October 2015

Another week has flown past, and yet more progress on the project 'Vortex Crystals' has risen. Alf Yngve has mailed me seven brand new levels, and another 3 aliens for me to play around with. Most of the hard work was done today (Since I have been doing more SEUDS 4 work in between).  Last time I got the player to be able to pick up objects that was spawned from aliens. What now? Well, a bit on level setup and some sprite/character collision.

Last night I captured each level screen from the SEUCK workfile in VICE, and compressed each level separately using Exomizer V2.09. I also imported Alf's new sprites into the game sprite data as well (These will start to appear on levels 5-16, but I have 7 levels at the moment and Alf hopes to finish those over the weekend.).

First of all today, I imported the new game sprites into the source, and also setup some more subroutines to form three new enemies, which I have called:

Squidroid: The Squidroid is a robotic squid like alien, which will be able to move left/right, up/down at a 2x the original enemy speed. It will also be a hard alien to battle, since it will have 10 lives. The airborne enemy will appear in later levels.

I-Droid: An alien droid, which is armed with an eye camera. This alien will be moving at 2x the original enemy speed, but will have 5 lives to kill it.

Robot: The robot is ground based, and will walk left/right at 2x the enemy speed. It will have 8 lives to kill it. The enemy will appear in later levels.

I was very happy with the result of the first level and the framework, in general, so now it is time to setup some more levels. Before I did that, I added a Level Complete tune and well done text on to the central panel. Then called for the next level to increment one byte and jump straight back to the main game loop code (Which sets up the level data and decompresses the next screen).

Most of today I have been working on some byte tables to setup each sprite type, sprite position, colour, background colour settings and low + high bytes of addresses where to de-compress the level data. Then I programmed a simple timer loop, which will setup the current table position, and setup the actual level. Unfortunately not all levels displayed correctly. I was scratching my head to find out what may have caused this. Each screen did de-crunch, but the display for each EVEN level was exactly the same as the previous ODD level. I carried out a little investigation to find out why this happened when running the game maps workfile, saved as Sideways SEUCK 'Finished Game State'. It turned out that double-buffering was used. So I recaptured each screen in VICE, exported the colour + screen data and then compressed the level screen data again. Then I imported the data into the game's source code folder. Assembled, compiled, and executed the game project again ... It worked much better.

Now the level screens were correct it was time for me to add a little more code to the conveyor belt chars. If the player moves (or jumps) on to a conveyor belt. It should travel. So I added a subroutine which pulled the player backwards or forwards on the belt. ROR + ROL charset animation was also added to the conveyor-belt chars to give the same sort of effect, pushing/pulling the player as it tries to move.

Finally, I played around with the level tables, for levels 1 - 3, I setup the enemy sprite type, re-spawn position, background+multicolour and a few other things. Now I have 3 working levels, and the result is quite pleasing :)

I still have other levels to setup, but that can be done from Monday - next week. Stay tuned to hear more progress with this platform Shoot 'Em Up.

Thursday, 22 October 2015

Blast those aliens

22nd October 2015

After yesterday's infestation of aliens. I have been working on more of Vortex Crystals this morning, and later in the afternoon. Well, I am still on my holiday leave until this weekend - so what should you expect? ... Yesterday, I worked on positioning the aliens and getting them to move around. Today is a completely different task.

Since the game allowed the player to shoot bullets, let the aliens walk about and the player move around the game area. I thought I was done with this stage. Not yet ... I received an email from Alf Yngve, indicating that the last WIP preview I showed him had a major restriction with the player's jumping on the very top platform. So I decided to alter the interrupts routine and open the top and bottom borders - but NOT allow any sprites to display at the very bottom or the very top of the border. The trick worked.

Now came the fun part of the game's framework. We have already had the running and jumping phase, so now it is the 'shooting' phase. The player can shoot already, but there was no specific collision set where a bullet hits an alien. A few routines were programmed so that according to each alien, a collision detection routine gets called. The first test was to allow the player to fire the bullet and detect the collision. Simply by flashing the border (inc $d020). After I tested the bullet on each alien, it was time to make an alien explosion.

To make the alien explosion, I could choose two different methods. The longest method is to create a morph alien sprite to explosion animation for each alien sprite. Or the alternative method is to stop the bullet sprite from moving, offset the alien sprite and then morph it into an explosion. I took the second option, as it saved me time - and since there's under 3 months to get the compo entry finished, it probably is a brave move.

After testing the alien explosion routine, to see how well it works. I was very happy with the result, and decided to add lives to each alien. This will give the aliens a certain number of hits from the player's bullet, before they explode. After generating the code, and having a little play around with the source to get things right. The program worked a treat - but there is still one more thing before I close down the project for the day.

The next was to get the aliens to re-spawn after a period of time. This should occur after a few seconds the alien last died. When the timer had reached its position per alien, the alien sprite re-appeared on the platform and it was able to move its usual movement afterwards.

My final task before I closed the project down for the day (and backup my work) was to add a score to the player. I made it that only 100 points are scored for draining an amount of lives for the aliens, and 500 points for destroying one. I am pretty pleased with the result of the game's framework so far, and look forward to finishing it in the near future as well :)

The next task will be to add power ups, which might be some time this weekend.



Friday, 27 March 2015

TRANCE SECTOR RETURNS!

27th March 2015


Back in 2012, Trance Sector was born, and released at The New Dimension. Now 3 years later the game has STRUCK BACK and will be shown at GubbData 2015 some time TOMORROW then you can check the game out afterwards :) Here's a glimpse of what the first Trance Sector was like :)



So what is Trance Sector Ultimate then? Trance Sector Ultimate (or TSU as some of us like to call it) is a very SPECIAL production, which features BOTH the original and competition levels of the game, which I wrote some time in 2012, and 2013. Although it was originally planned in 2014, but major delays were made due to various circumstances beyond control. A brand new version of this game is finally complete and ready for release some time TOMORROW!

TSU consists of 64 levels. (32 levels from the standard and competition versions of the game). In which you can select from the main menu. The graphics are completely different with huge thanks to Akira/Genesis Project and Saul Cross. Music has also been changed, although it is a thumping trance tracks. There's also a brand new presentation and a specially exclusive intro for the RGCD release. Now I'm about to talk more about this project.

HeavyStylus originally contacted me, about giving details about the original Trance Sector to become a 64KB cartridge production. It sort of motivated me, until I realised more work needed to be done for this game. The game required a new presentation, intro/loading screen, and some additional graphics. Little did I expect, was that Trance Sector was to become A NEW GAME WITH A NEW NAME. Since I was up for it, I decided to do exactly that.

Akira, at first got involved with the graphics (Or should I have said the Splash Screen). He sent me his idea for the splash screen, which was to present the game with an interlaced kind of intro. It looked really nice, but the speed of the interlace caused quite a lot of flickering and the raster lines were badly timed. Later on in the game project, I reworked the intro and tried one of my own versions of the intro. Unfortunately due to personal reasons beyond control. Nothing else could be done with the project until earlier on this year. When HeavyStylus announced on the Lemon64 forums, looking for a new graphican for this project. GFXer Saul Cross (Rocket Smash EX) joined in the fun and send me his examples. After I saw those new graphics mockups. I fell in love with those, and jumped straight back to the TSU project.









HeavyStylus got in contact with me and suggest I should give this retro style game, a modern day C64 look and emailed me some screen shots of a suggested idea for the game's front end. It was inspired by a GMI intro, which GMI used to link to their demos. Such as Viva Revo-Lucion, but with an additional implementation and of course, inspiration. So, I ditched the old Trance Sector title screen and programmed the new front end. I also added a horizontal text scrolling message, with rainbow colours scrolling vertically through it. The background colour setup was a shade of grey (50 shades of it? Nah, only 3 shades of grey are used on a Commodore 64). I also programmed a sub-routine which would flip between pages 1 and 2. The first page was the credits screen, followed by the high score table. The options screen allow the player to select whether or not to have in game music or sound effects.When fire or space bar is pressed on the front end, the title screen is then presented with the game options. You can select whether or not the game is using standard or the competition levels mode. Then the game will start afterwards.

It wasn't just the new front end I worked on. Saul and I also worked on the brand new look help screen. This takes effect if either the scroll text finishes or UP on the joystick is pushed. Unlike the original Trance Sector, where pages flipped automatically to display the help page. I made it where it can be exited with just the fire button. Since there are some secrets stored somewhere in the project, which gamers have to find for themselves.

What about the main game? Well, things were pretty much easy as not much needed to be done there. all I had to do was program some routines that swapped from the title screen character set, to the game character set. This was due to memory issues and should the front end graphics still have been used in the game, it would look completely odd :-). Thankfully, not much game code needed to be altered, since the main game code is already there. I didn't even have to touch the pre-packed level data. Which was more on a plus side of things for me. The concept was simple:

You are part of a squadron who has been transported on to an unnamed planet. Your mission is to enter a giant warehouse, which consists of highly toxic radioactive nuclear pods inside the TRANCE SECTOR. You must guide a ship through all 32 floors of the factory disposing all of the nuclear pods. Once each sector has been cleaned, a time bomb is primed and the floor will be destroyed. Then you'll transport on to the next level. Only one thing that stops in your way. The Cygma Elite's highly intelligent seeker security system. The rockets will move back and forth, unless spots you in sight. Once you are spotted. The missiles will go for you.

There are different obstacles, as you progress into the game, such as security stun rays, which can hold your ship for a short period of time. There's also magnetic conveyor belts, and also other obstacles, which can either be useful to your ship or make life more tougher. The most deadliest of all obstacles are the BLOCKERS. :-)

During each level a ball will appear, which is guaranteed to give you EXTRA points or abilities to gain bonus life or destroy all seekers visible before new seekers are re-spawned.

Okay, back to the main game ... Not much had to be altered with the game. The only things that I needed to alter in the game, were some slight bug fixes, which involved the power up (scoring points) as one of the power-ups didn't work originally. Also the music was given an overhaul. More about this in the next paragraph. The game play is really challenging. Being a bad gamer, which I am, it is pretty tough, although it is POSSIBLE to complete all levels in the game. I tried it before in cheat mode... :-D

Anyway, what about the music? The title screen music used to be the original TAPE LOADER / DISK MENU tune of Trance Sector, released back in 2012. (You can find this at http://tnd64.unikat.sk/t.html). The other tunes we re-done to scratch. In game music is a remix of the original Trance Sector in game music, but even more powerful and upbeat. The LEVEL COMPLETE, GAME OVER, HI-SCORE TABLE Name entry and GAME COMPLETE music are completely fresh new tunes. All of which are still hard-thumping sound tracks. In game SFX has not been changed. I felt there was no need for that :)

Okay, back to the intro ... Well, Akira originally programmed a routine to display his hires logo, with some flickering raster lines, but there were some major timing problems. I could see why. I tried to play some music in the intro, but everything was running TOO SLOW. An idea was glued to my head. "What if I re-programmed the intro, and improved it slightly with new music? ". I gave it a try by programming it into C64Studio, and results turned out much better than expected. Raster beams were flickering like mad,  so they needed to be moved across off screen slightly. So with a few timing pointers, the tiny flickers had gone. After I was very happy with the intro, I linked the game together.

The game project was near to completion. All I needed to do now was get it NTSC fixed.. Since I had no experience to get this game project to work on NTSC machines properly, it was up to Didi/LXT to fix this issue. Once that was done, Georg Rottensteiner built the final 64KB cartridge (As I was really struggling with this part of the job). Finally TSU was finished, and ready for released in time for GUBBDATA 2015 in Sweden for the big screen.

Yesterday, for a bit of fun, I created a little tape loader for the game for a later release on the TND web site. The tape loader was built using a bit of additional programming using TapeToolBuild by Martin Piper. The loading screen was inspired by the URIDIUM tape loader which I first saw on thee Megatape 27 of ZZAP64 magazine. Here's a video of the overall result ... Just to tease you :-D







Friday, 18 July 2014

X-Force is Coming - OCTOBER 2014

18th July 2014

Over the past few weeks, I have been working on a brand new Commodore 64 space blaster called 'X-Force'. It is a horizontal scrolling shoot 'em up (SURPRISE), which will be featuring stunning graphics and level designs by Saul Cross, and also some great music, which was composed back in the 1990's by Feekzoid from a stunning Sideways SEUCK preview of Breakthrough, whereas the full game never saw the light of day. I have of course asked Jon for his kind permission if I could use Feekzoid's Breakthrough music for this game, and permission was granted by Jon, himself.

So what's this X-Force game all about then? Well, you have been held prisoner, while exploring an alien planet called 'Darx'. The aliens recaptured your X-Force fighter, and has held you prisoner in the underground world. You manage to break out of your cell, and reach for the X-Force fighter. Just as you take off to make your escape, aliens start coming after you.

The mission is to escape from the underground worlds of planet 'Darx'. Simply by using a joystick in port 2, you must guide your X-Force fighter across enemy territory, and shoot down the aliens which to to stop you. One hit at the alien, and they're gone. To be able to escape from the each underground world, you have to face an end of level guardian. It will try and stop you before it gets away. Should the boss be destroyed after enough hits, you will gain bonus points. Should you let it escape, then you get no bonus points.

The X-Force fighter can pick up podules in which will give the space craft upgraded / downgraded lasers. Depending on whether a red or green podule has been picked up. Blue ones will give the space craft a shield and the grey ones will act as mines. Touch a grey one, if not carrying a shield, and the X-Force fighter will explode. Aliens and deadly background, animated lazers will also make the player explode - unless the player's shield has been activated.

The C64 game, 'Subterrenea' by Hewson inspired me to work on this game. 'X-Force' is being produced for the Commodore Format power pack 63, which is planned to be launched some time in October 2014 and will not be release before then (Announced on Commodore Format Archive's blog). As soon as the game is finished, it should feature loads of stunning levels, to blast your way through.The game will also be available on the TND web site a week later :) Of course, the game is going to be FREE. :)

Hope to do more work on this game some time tomorrow.

WATCH THIS SPACE :)

Thursday, 8 May 2014

A little bit of extraction (And example code)

8th May 2014

Well, well, well. Not much news on the Honey Bee front, as I am still waiting for some more updated graphics for it. Good news however is that I received some new game graphics for one of the screens. Bad news however - it was done in char pad as 1x1 tiles. However good news is that since the game consists of 1x1 tiles. The map screen size is one screen (40 chars across x 25 down).

I extracted the character set tile data, map data and attributes data and imported it into an ACME cross assembler source. Where single screens can be drawn through a map - then colour attributes get extracted according to the screen. I had some silly results at first, but after a third attempt - the overall result worked out quite nicely.

Now here's the source code which does this job ...

;--------------------------------------------------
;1x1 tile + colour Map extractor
;--------------------------------------------------

                            !to "extractor.prg",cbm
                            *=$2000 ;Import character set
                            !binary "hb_charset_v2.prg",,2
                          
                            *=$3000 ;Import map data (the screen matrix)
                            !binary "hb_map_v2.prg",,2
                            *=$3800 ;Import tiles data
                            !binary "hb_tiles_v2.prg",,2
                            *=$3c00 ;Import attributes (colour data)
                            !binary "hb_attribs_v2.prg",,2
                           
                            *=$c000 ;SYS49152 to execute

                            ldx #$00
loop0                   lda $3000,x ;Read map data from $3000
                            sta $0400,x ;Place on screen RAM $0400 - 256 chars
                            lda $3100,x ;Same again for next segment
                            sta $0500,x
                            lda $3200,x ;and again
                            sta $0600,x
                            lda $32e8,x ;and again
                            sta $06e8,x
                            inx
                            bne loop0
                         
                            ldx #$00
loop1                   ldy $0400,x ;Read the map on screen
                            lda $3c00,y ;Read the tile colour / attributes table
                            sta $d800,x ;Store to the C64 hardware char Colour RAM 256 times
                            ldy $0500,x ;Do the same with the next 256 chars
                            lda $3c00,y
                            sta $d900,x ;Store again ...
                            ldy $0600,x ;and again
                            lda $3c00,y
                            sta $da00,x
                            ldy $06e8,x ;and again
                            lda $3c00,y
                            sta $dae8,x
                                                    
                            inx
                            bne loop1
                          
                            lda #$18
                            sta $d018
                            sta $d016
                            lda #$0e
                            sta $d020
                            sta $d021
                            lda #$08
                            sta $d022
                            lda #$09
                            sta $d023
                            jmp *
                           
                           

                           

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 ...