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

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.



Monday, 23 March 2020

Aliens Unleashed

23rd March 2020

Last Saturday, I mentioned about the problems I had with the alien movement patterns, where I made things a lot harder for myself. Especially the previous weekend. This weekend, I started on working on the alien movement groups. After Saturday's major change of the code and pointers. After following the Starfysh code, I finally got somewhere and I am now ready to continue with working on the alien movement groups.

Alien movement is based on time instead of position. Once the timer table has reached the end, the next group of aliens can spawn. I have a lot more groups of aliens to work on, which will take some time time to make. Or should I say, a lot of time to make. Especially when the total number of enemy sprites drawn result to 26. I have used the border cycle on screen as a clock, so I can count which byte the table is read at, and also where I should time out the aliens to stop them wrapping across the screen.

On the plus side, since the game preview was released Summer last year. The majority of the game code is still there. Although at the moment I have disabled the collision, in order to test the aliens for their movement.

The new set of tables are as follows:



enemy1framelo !byte <Frame_AlienType2 ;Store low-byte of alien frame
enemy1framehi !byte >Frame_AlienType2 ;Store hi-byte of alien frame 
enemy1colour  !byte $0a               ;Store colour of alien
enemy1startx  !byte $0c               ;Start X-Position   
enemy1starty  !byte $f0               ;Start Y-Position
enemy1score   !byte $01               ;Amount of points to score
enemy1lives   !byte $01               ;Number or hits to kill alien
enemy1time    !byte $18,$18,$18,$1c,$18,$18,$18,$18 ;Timed movement
enemy1speedx  !byte $00,$00,$00,$00,$00,$00,$00,$00 ;Speed of movement accordingly X
enemy1speedy  !byte $fe,$fe,$fe,$fe,$00,$00,$00,$00 ;"                             Y

Tuesday, 10 March 2015

Buzzing for a bonus

10th March 2015

My week's HOLIDAY started Sunday this week. It's going to end soon, but I have not only been out and about places this week, but I have also been plodding away on Honey Bee. For me, the project is shaping up quite nicely and it has been making me happy. I have been thinking that I am very near to completion with the project. .... Well not quite. As more crazy ideas have popped in my head for this project. Find out more in this blog.

Okay, so what has been happening the past 2 days or so?. Honey Bee felt as if there was something missing in general, and that was a bonus round for every level completed. I had two ideas, one of which was similar to a Shark Attack type of stage in Sub Hunter, and another which was one of Kenz's ideas. A flappy bird style bonus stage. Months ago, I was trying to create something by the way of SEUCK WITH GRAVITY. In January I attempted to make a FLAPPY BIRD style game, using the sideways scrolling SEUCK, and the aid of the TASM/CODENET plugin on my 1541Ultimate2. Although the use of gravity was simple enough, I failed to get the jump physics correct and it made the game harder to play. So, I went for the easier option, which was the Sub Hunter style bonus stage. Since I'm no fan of the Flappy Bird phenomena.




I created the bonus stage by manually designing the cave graphics, using Steve's existing graphics, that formed the ground, and rocks, etc. I manually typed these into the source code and created quick and dirty code that built the screen the simplest kind of way. Next I programmed the interrupts and got the scroller in action. I also added it an extra effect for the cave wall background. I added a ROL char routine, so visually during the scrolling operation, you could see a two layer scroll instead of one.

Once I was happy with the scrolling background, I decided to fill the cave with bats, and also get a crystal moving across the screen. Then I linked the main game code, which controlled the player. No use of gravity was being used for this stage, as it would have been hard enough as it is. The next thing I added to the bonus game was a set amount of time, which the player must survive for so that he/she can earn an extra life, by completing that stage. The purpose of the gems is to allow the player to give big points as a reward. For 1 gem, the player gets 500 points added to his/her score. Finally after setting up the set times. I linked the bonus stage to the main game code.

Okay, so I got all those working. Now about the ideas in my head. I was browsing at the sprite data, and discovered that I can simply add some MORE sprites into the game. I moved the text data to a different memory location, to be able to preserve more sprites. I notice that some of the levels, which I mistaken bats for birds, could actually have some birds added to the source. The eagle might be a good option I noticed some of Wayne's sprites, which could be useful for the game. Also, some worms could actually be SNAILS.I think  Some sprites could be used for bouncy 'GET READY' 'GAME OVER' 'BONUS' sprites, before actual things commence in the game.

As well as the game sprites ideas. I feel that I could do with removing the fade in / fade out transition effect every time a life has been lost. As it could possibly annoy the player who just wants to get into the game.The transition effect can be used for after every level is complete and a new level starts.

Admire the screen shots and see you soon with another progress update about Honey Bee - The Full Version.

Saturday, 28 September 2013

The finishing touches.

28th September

Most of this morning, apart from having visitors. I have been working on the final touches of Invert. The new I drew sprites look much better. I also made the bomb throwing position more accurate. The very last touch was adding animated characters for the Get Ready and High Score name entry routine. Just the final testing to do all through this week, before I give the all clear :)

STAY TUNED

Thursday, 19 September 2013

Here come the Chatters

17th-19th September 2013

I sent this game to Vinny Mainolfi to test, and come up with some more feedback. Unfortunately the main game engine needed some more things added to it. I agreed with what sort of improvements could be made to make this game more fun and playable. The general tile flipping puzzle against time idea of mine, won't really give good results for a 16KB game. The front end needed to do away with a scroll text. As I have always used that method (Logo with credits and scroll text). The changes were made to the front end. Instead of having a 1x2 scroll text, the game has a flip page. In which after a few seconds or so, the title flips from the main credits, to the high score table, then the in game characters (player, enemy, bombs). 

The main game also had some major changes added to them. The game now has enemies, called Chatters. The enemies run around the playing area lobbing bombs now and then. They don't bother aiming, as they are pretty much dumb. The player now has a different challenge. Not only has it got to flip the tiles to the correct type, but also has to watch out for the Chatters' flying bombs. The player can now protect itself from the bombs, by pressing fire to activated a limited shield. At the start of the game only 5 shields are given to the player. These have to be used wisely. There are also new tiles in which will give the player a shield if the player steps on it.

As well as the enemies and their bomb throwing. I started on redesigning the level layout, to make each level of the game look more tidy. I also programmed a high score name entry routine as well (which still isn't quite finished yet - one colour bug needs fixing). Additional things I intend to do during this project are the GET READY and END SCREEN as well as finish off designing the remaining levels. I hope to draw some new game sprites for the player and the enemies, as they are quite rough looking :) Progress is looking great so far.

Saturday, 24 November 2012

A week of disaster

20th - 24th November 2012

Over the week or so. The enemy movement patterns were being worked on. I thought that things were looking pretty good for this part of the project. Unfortunately I ended up getting myself completely lost with the enemy tables, and their behavior. I programmed a routine to allow certain enemies to shoot, according to their behavior table. The shooting turned into a big disaster. Wrong enemies were shooting, and on level 3 the enemy tables didn't work right. Perhaps I missed entering one or two of the values of the element for one of the enemies. Because of this fault the entire enemy table turned into a complete disaster.

I was hoping to get a 16KB cartridge version of the game finished this week in time for RGCD's 16KB cartridge competition. Unfortunately the overall result turned sour. Therefore, due to lack of time - because of work. I have made a decision that I shall withdraw my entry from the competition I am aware that it is very easy to fix, but it unfortunately takes a long time to process. The enemy tables will have to be restarted from scratch. That will probably take another 2 weeks. I am still determined to get this game finished, but sadly not in time for the RGCD cartridge compo.

Update 25/11/2012
After the success of fixing the problem with the enemy shooting, and nearly past the half way mark with this project. There is a positive side that there could actually be an RGCD 2012 entry of this game. I think it is possible that some of the elements will have to be ignored for the game, until after the competition entry has been submitted. Additional elements such as a high score table, a decent ending, etc. will have to wait longer. 


Saturday, 15 September 2012

On today's menu - Trance Sector

15th September 2012

After sending BETA V3 to the BETA testers, no problems seemed to have occurred. So now BETA testing has passed. It's time for me to add the final touches to the disk version, while Daniel Kahlin's working on the finishing touches for the tape version.

During this week I have been working on a TS music demo, which goes with the Trance Sector game, and today I have been working on the disk menu system, and final linking to the intro. The menu is really colourful and quite attractive. The worst part to programming the menu was the raster timing. When I created the colour bars they were all over the place. After playing around with the raster bar timing tables the overall result showed perfect looking raster colour bars. I was pleased with the final result.

Once the disk menu was finished, I implemented Martin Piper's IRQ loader system (and the TS loading picture) to the menu, and set disk drive initialise at the correct point so there wasn't a pause during the IRQ loader part - and so that the music will continue playing as well. I used the tape loader tune for the disk menu system / disk loader, as I thought it would be really cool for it.

I put all the files together on to the disk, altered the load addresses of each PRG file (So that the loader can load the game to a specific address). Now the disk version of Trance Sector is finally ready for release to Psytronik Software.

All I have to do now is get the raw versions of Trance Sector and Challenger's Edition for Daniel Kahlin, and finally I shall release both DISK and TAPE versions to Psytronik Software.

Tuesday, 15 May 2012

Trance Sector - Continues

15th May 2012 

This week I decided to work more on the game graphics for Trance Sector I wasn't too sure what to draw the game levels with as I didn't want to experience another crash with MSCK. Funnily enough, I found that Charpad was unsuitable to build the levels, because putting the level objects (as single screens) was more difficult. Plus the type of tiles would have been too limited. So instead, I worked on MSCK V2.0 and hoping this time the program won't crash. I managed to rebuild the objects, opened my mind, and built 20 levels. That was Yesterday of course.I even did a new title screen, according to what was written on my little note pad, when I attended RetroVision 2012 Saturday, last week.

Today I worked on installing the new game graphics library into the game's source code, and updated the amount of pods for the player to collect. I even tested the whole game, hoping the library source wouldn't crash. Thankfully it didn't crash. After the 20 levels were fitted in to the code, nicely (Apart from some shield tiles which haven't been programmed yet) I tested through the whole game and found no problems. After I was happy with this, I worked on an ending tune using GoatTracker. Then I ported the music data to the game again. I tried to do some in game sound effects for Trance Sector using GoatTracker, but there were delays before a sound effect played. I think I should program my own sound effects instead, like I did with Sub Hunter and Sheepoid instead. It might be more helpful ;)




The last part of the day was programming the new title screen for the game. In which looks completely different to how I normally program a front end. I usually program a front end using a plain black screen with a logo on the top of the screen, with flashing text, and a scroll text at the bottom. That's nothing unusual. Instead, I decided to work on a more epic title screen, in which displays 1x1 char bricks forming the name Trance Sector on the screen, an upward scrolling ticker tape routine (Like Monty on the Run) inside the window, and also a sprite scrolling message at the bottom of the screen. I was unable to open the borders because for some reason, it kept flickering and delaying when the sprite was there ... So I left it out for the time being. The new title screen looks retro and hopefully the gamers will like it as well. :) 


More work on the game tomorrow or Wednesday. Well I have another 44 levels to build up, and probably add some brand new tiles as well, such as seeker switches. Also to get the shield working as well  ;)


Monday, 14 November 2011

Could the 16K version be finished now?


14th November 2011

Well, I got up early today about 8am (As I am working an 12pm-8pm). Checked my email and found that Woolly Jumper needed a small minor fix, which was mainly to do with the rocket animation. The flames on the rocket looked pretty odd, as both used the same frame. So I called the second sprite frame table (for the flames) so that the rocket flame looks more accurate. The good thing is that it worked out quite nicely :)

I have also been told by Shaun some good pointers about the game. The shooting reminded him of playing Space Invaders. Where the game gets difficult if you miss an enemy. The falling whistle reminded him of Ghosts and Goblins, and finally level 6 looked really arctic, especially with the penguin aliens on the loose.

Hopefully now the 16K version of the game is finished, and I can then work on the 64K version (Which will be the same game, but with extra features) which I hope to release in time for Christmas 2011. To be honest I won't really take all that long to add the extra features. Probably a few days to be precise. After that's finished, I can finally take a well earned rest from this game project. :)

Sunday, 13 November 2011

Fixing phase! ARGH!


13th November 2011
Okay then, most of today I have been working on trying to get the game to be finished. First of all some adjustments needed to be made to the game code. First of all, the front end logo needed to be updated as Shaun sent a much nicer looking version of the same logo, which I originally resized. That really made a huge difference. How on earth did I forget about Shaun's logo?

Most of today was a frustrating session. I kept getting more problems (or probably causing those in the game code). I adjusted the player's shield so that the player didn't flash, when it was wearing a workers helmet. I also updated the get ready text and positions of the rocket. The end of levels 2 and 3 looked very odd. I also had to fix the start screens for levels 2, 3 and 8. After fixing those, Shaun gave me an idea where scoring points (after shooting the enemies) should be based on the size of the bullets. So I added a routine that can work out how many points the player can score according to the following:

Weak bullet = 100 points
Medium bullet = 200 points
Mega Bullet = 500 points

Shaun didn't like the idea of having the cattle prod in the game, which caused the player to lose a life, so I removed it and replaced those with the other 3 collectables that are used in the game.

To finish things off, I added a routine in which drops a whistle to the central of the end platform. After the player picks up the whistle, a rocket will appear on screen, with yellow flames and pick the player up. I also had to find a way on how to get those enemy bugs moving in a different sinus wave to the other enemies. Well, the solution was finally found. I used Elwix/Style's WixBouncer tool, in which allows you to chose the sinus mode you want. Then you manually type in the start / end and length of the sinus. I then imported the sinus data into the source code. It made the pink bugs' move quite more different and interesting. Much better now.

Hopefully now I have sent a new .D64 to Shaun, we could say that this game is finished. If it is, then all will be revealed on this blog. The game will be sent to RGCD for submitting to the 16KB cart. Then I and work on expanding this game in time for a Christmas 2011 release.

Tried it on my C64C. It works great on a real C64 with joystick in port 2 :)

Saturday, 12 November 2011

I've got the power


12th November 2011

Today's been quite a long session (Drinking lager, oops, no. Wrong!) working on finishing off Woolly Jumper, 16K version. I have been working on making some tweaks and improvements and also added some power ups to the game, which will enhance game play for the player. Especially when he collects power ups. I also added a random table so that we have different power ups appearing on screen. The powerups are as follows:

- Vaccinator (Power up fire power)
- Sheep Shearer (Award 500 points to the player)
- Drencher (Restore fire power to the weakest bullet)
- Cattle Prod (Avoid at all times, it will cost a sheep's life)

The firepower is something as follows:

- Tiny ball of fluff (Small bullet, slow)
- Medium ball of fluff (Medium bullet, moderate speed)
- Mega ball of fluff (Huge bullet, ultra fast)

I have also been working on upgrading the collision to see whether or not the player can respond to the stopping chars. Sadly this feature didn't work properly for level 8 (The great white rock) and it ended up pushing the player all over the place. This caused an unknown bug, which I don't really know what has been causing it. The level design for just the final stage needs a rethink.

Well, we are nearly there. Hopefully the game will be ready a week before the deadline.


Sunday, 6 November 2011

We are on whistle blower alert


6th November 2011

It's just a short one today, because I have been working a very early 6am-2pm shift at my local distribution centre. And right now, I feel very tired, especially after going out last night. 5 and 3 quarters hour sleep (Although there was a party next door full of youngsters partying with fireworks). Anyway here's what has happened today.

I received an email from Shaun about an object which the player can collect, so it can move on to the next stage. Brilliant, that's helped me a lot. I imported Shaun's whistle (And painted it cyan) into the game source code. Then I programmed a simple box collision, where the player picks up the whistle. If the collision occurs, the rocket will appear on screen and pick the player up.

The second and final thing I did today, due to tiredness was added a little routine, to stop the player from holding the fire button, making the player constantly shoot, also to avoid the title screen skipping sensitivity.

Well, it looks as if the game is nearly finished for the 16KB cartridge compo. I just need to tidy a few things up, which I should hopefully get round to doing this week. One of which is to create random power ups through a timer, and also fix an additional sprite/background detection in which (during parts of the game) the sheep cannot walk through the rocks of level 3 and 8. If the game turns out to be larger than 16K then I'll have to compose some music for just the 16K version of this game, using the John Player. Toodloo, until Friday!

Sunday, 21 August 2011

Through old pastures new

21st August 2011

I received some nice new graphics from Shaun this week and imported the data into the source code for Woolly Jumper. The graphics were nicely drawn in Arkitec (For those of you who want it, it was on the Cabana User Tool Disk CSDB ID 42413). However, I had hit a slight snag after importing the graphics data into the source code. It was nothing too serious of course. Just a little thing where I was required to update the platform land routine corresponding to the characters which the player's sprite landed on. So I called up a few subroutines which will manually check for which characters (which result as the top platforms) will stop the player from falling. I even set some of the characters for where the player will die if it hits a deadly character. I have a video here of the new map. Enjoy :)



Now that I am quite happy with the platform chars which the player can land on, or die when touched, I can move on later on this week by programming the main game attack waves engine, which will be executed according to a sequence of numbers through a data table. Once happy with all of those, it'll be time for the animation engine. I shall also get the player to do some shooting as well. :)

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