My second take on subtune 4 of C64’s Rambo 2

The midnight has passed and I’m on fever.. I spent the whole passed day improving my first take on subtune 4 of C64’s Rambo 2. Now, I’m somewhat satisified with the result (below is fixed version):

Finally fixed version

Among other bits and pieces I added a small ending to the tune. Not so good one, though.

Making music takes a lot of time, but it is relaxing and covering old C64 tunes, takes me back in time. I guess I will continue making music, because it’s so hard to find time and energy to other programming than studying work…

Demonstration of speed of C64’s basic

Ah, this takes me way back in time… Just wanted to test the speed of C64’s basic with a simple program of controlling a worm. The video:

It was 1987 when I last coded with Commodore 64. ..and I admit it: I never learned 6502 / 6510 assembly well.. On Amiga I have done 680×0 assembly coding a lot, though…

Let’s see a picture of the source code:

1024 is the starting address of C64’s screen memory and 56320 is the address of joystick port 2.

If you want to download the d64 image with the program, it’s available below:

VERY fun way to play C64’s Pitstop II

It was, when I was about 10 – 11 years old, when I invented this kind of style to beat the computer player on Commodore 64’s Pitstop II. Watch the video:

The computer player is stuck behind me and AI computer player and eventually the computer player’s tires will blow up. After that, it’s easy to win the race. 🙂

This might be very fun with two human players. 🙂

For Relaxation: THE C64 Joystick with Manic Miner 64DX

Commodore 64 gets still new games or remakes of the old ones. In the end of the year 2019 was released Manic Miner 64DX. I tried my new retro joystick with it. The video below may give a picture can it be used for playing this kind of game:

Manic Miner 64DX for the Commodore 64

If you want to download this game, here’s the link:

Playing old retro games helps me to cut loose from my hard studies. This is perhaps because playing retro games today is not so serious as it was back in the day when the games were new.

Some pictures of the joystick:

Retro games also take me back in time. As a programmer I also think at the same time while playing the how the games might be programmed.

Suicide Express (C64) cover made with PO-28 Robot

I recently got for birthday present a Pocket Operator PO-28 Robot. It’s a pocket synthesizer with sounds that remind me of C64’s SID sounds.

20190703_154000 (2)

PO-28 Robot


I made a short cover of Commodore 64’s Suicide Express tune with it. For me it is an unforgetable tune. The cover is only 30 seconds loop..

In the video below it’s played for 4 times.

Back in the day I enjoyed Suicide Express as game probably because of the music. It would be fun to remake this game.


C64’s Stix – I wish I had the time…

Nowadays studies take all my time.. Now I’m actually a student of computer science in a university… Since January of this year, I’ve lived in the world of Python, JavaScript & Ajax, CSS and HTML in the context of web server programming… I wish that the 7th week assignment of this course was behind… I’m working on the 5th now.. Today begins the Algorithms 2 course too for me..

I just made a video of me playing C64’s Stix. There’s something magic in this game..

Perhaps next summer.. Though, I’ve already made plans what to study in the summer..

Good Commodore 64 games I’ve previously forgotten and which could be re-made

In my old blog post I discussed my computer gaming history with Vic 20 And Commodore 64. Of course, I forgot some nice games that as re-made could be good games even today.

First, I’d like to mention the game I have discussed before: Stix.

I’ve even started to make a remake of this game to Android. Though, I think this project will take some time to get finished.

One game we played with my friends as youngsters a lot is Artillery Duel.

This could be a nice Android game with possibility to play with others via the internet.

Omega Race has been for example to the Amiga as shareware remake game. It would be nice to make some kind of version of this game to Android, too. Below a video of the Vic 20 version of this game:

I’ve started to make a remake also from this game to Android…

Cataball is also something, that could be interesting to make to Android platform. Video of the Commodore 64 version:

With nice backgrounds with parallax scrolling, the result could be nice.

Also, a version of Gyruss to Android could be nice.

One of my online games reminds me of this game, namely Defense III.

Let’s see how the Android versions turn out to be… 🙂


Bouncing of the ball when it touches the Bat (80s Krakout style)

It’s night when I’m writing this. I came up with a little Monkey X tutorial on how to program the bouncing of the ball, when it touches the bat in the “old school way” — like in the popular C64 game Krakout in the 80s.

In the video for the tutorial you can see, that as the ball touches the bat for the first time, delta y doesn’t change. This is because both the ball and the bat are uneven as height in pixels; now both the ball and the bat have a middle point.

This is just a short piece of code, that doesn’t handle the case, when the ball is at the horizontal top or bottom of the bat. There’s some extra work for anyone who wants to make an 80s style Krakout game. 🙂

The delta y for the ball is calculated simply how the ball’s y-position is related to the middle point to the bat. The “scale” variable is used to adjust the max y-speed of the ball.

Source code below:

Import mojo

Function Main()
	New MyApp

Class MyApp Extends App

	Field gfxBG:Image, gfxBat:Image, gfxBall:Image
	Field scaleX:Float, scaleY:Float
	Field touchX:Float, touchY:Float
	Field prevTX:Float, prevTY:Float
	Field batY:Float
	Field ballX:Float, ballY:Float
	Field ballDX:Float, ballDY:Float
	Field scale:Float
	Method OnCreate()
		' Load graphics
		gfxBG = LoadImage("bg2.png")
		gfxBat = LoadImage("bat3.png")
		gfxBall = LoadImage("ball4.png")

		scaleX = DeviceWidth() / 640.0
		scaleY = DeviceHeight() / 480.0
		ballX = 42
		batY = 230
		ballY = 230 + 36 - 8

		ballDX = 2
		ballDY = 0
		prevTY = 0
		touchY = 0
		touchX = 0
		touchY = 0
		scale = 16
	Method OnUpdate()

		' The if-sentence prevents the bat to appear at bottom of the screen at the start..
		If prevTY <> 0 Then batY = batY - (prevTY - touchY)

		prevTY = touchY
		touchY = TouchY()
		touchY = touchY / scaleY
		' Keep the bat in the borders of the screen
		If batY < 0 Then batY = 0
		If batY > 479 - 72 Then batY = 479 - 72
		' Move the ball
		ballX = ballX + ballDX
		ballY = ballY + ballDY

		' Keep the ball in the borders of the screen
		If ballY < Abs(ballDY) Then ballDY = -ballDY
		If ballY > 479 - 17 Then ballDY = -ballDY
		If ballX < -Abs(ballDX) Then ballDX = -ballDX
		If ballX > 639 - Abs(ballDX) - 16 Then ballDX = -ballDX
		' Calculate the deltaY value for the ball in the "old school way"...
		If ballX >= 601 - 16 And ballY + 16 > batY And ballY < batY + 72 Then
			ballDY = -((batY + 36) - (ballY + 8)) / scale		
			ballDX = -ballDX

	Method OnRender()
		DrawImage gfxBG,0,0

		DrawImage gfxBall, ballX, ballY
		DrawImage gfxBat, 601, batY
End Class

Feel free to use and improve the source above in your own projects.

Here’s the graphics to download (license: public domain), except the background picture (right click and save as…):



The bat is 32 x 73 pixels as size, the ball is 16 x 17 pixels.


For comparing to the C64’s popular Krakout, see the video below:

Link: Monkey X (from, it’s free.

Many years ago I started to program Krakout style game in the spirit of the good old Commodore 64, but as usual, something went wrong. Three months work with multiple levels and a level editor programmed in Blitz3D were lost because I hadn’t taken backups of the files, when I, well, “fixed” the Windows installation I had at the time…

Shortly about my computer gaming history (1984 – 1987)

It all started in 1984, when in Finland the prices of home computers were significantly reduced. One could buy a home computer for under 1000 Finnish marks. That’s about 167 euros. My parents bought me a Commodore Vic 20, that costed 999 Finnish marks.

I really liked the first (and at the time only) game I got with Vic 20: Radar Rat Race. See below a picture of the module:


Below is a YouTube video from the game:

I remember that the game had some bug though: When one got far enough, playing the game became somehow impossible.

Another game I liked, was Fire Galaxy. Below is a little video from the game:

A bit later my Commodore 64 times began.

At those days I saw many C64 games. The most remarkable games from me at the time were Ultima IV: Quest of the Avatar and Ultima V: Warriors of Destiny. Ah, the story of the games and all the philosophy in them… Especially the three principles (of the eight virtues): Love, Truth and Courage. These define the good in the games. Evil is defined as ”principles” of the opposite of the mentioned: hate, falsehood and cowardice.

As to choosing the character in these games, I always  answered the philosophical questions as myself, not by trying to get my character certain quality. As a result of this, my character became to be of the weakest profession in the game: The shepherd.

Intro from C64’s Ultima IV:

Intro from Ultima V (C64/C128):

When running the game on the C64, there isn’t background music, the sound effects only, because the game is so huge, that C64 hasn’t enough memory for the music.

Boulder Dash and Boulder Dash II were my favourites too.

Below is a video from both games:

I played a lot also Delta, a game by a Finnish programmer Stavros Fasoulas (music by famous Rob Hubbard), see the video below:

One good game for the C64 that teaches also some strategy is Paradroid. There are many remakes of this classic game also to PC.

Commodore 64’s Tetris has incredible music!

There are many games in the world of Commodore 64 that I wasn’t really interested in, but the music is incredible. As an example I must mention Cybernoid II:

Some games were simple and fun to play with good graphics and music, but let the player down with one thing: There was no ending of anykind! I remember playing ”endlessly” both International Karate and IK+ with black belt, but the games just went on and on…

As an youngster I decided, that if I was ever to program a computer game, it would always have an ending.

One incredible C64 game I remember, is Wizball:

Some C64 games I liked, were kind of games that often other people didn’t like. As an example let me mention Armourdillo:

the music of Armourdillo:

If my memory serves my right, I played Armourdillo with music.

Another game, that I almost forget as an example of a game that other people often didn’t seem to like was Master of Lamps:

For the third example of game that the other people didn’t seem to like, but was fun to me as a kid is Poster Paster:

As to Defender of the Crown, I liked C64’s version more than Amiga’s, altough the Amiga version has better graphics and music.

One very good game I almost forgot to the C64 is Thrust:

With Spy vs. Spy II we both, I and one of my friends had lots of fun. We made lots of traps to each other in order to get to that submarine and win the game. There might be one “room” filled with so many traps while we were playing the game, that in practice there was only one special way to get through the room.

One special game from the year 1984: Ghostbusters. Why this game was special? At the time I was Vic 20 user and to me (and to many others) it was simply amazing to hear so authentic speech from a movie in a computer game! What a miracle computer C64 was: With it one can even listen little parts of authentic speech from a movie in a game. How we were amazed!

A game that made many of us laugh, when we were kids, is Super Pipeline II. A fun quality game with nice music and funny graphics and not too hard to finish.

One funny detail from the past in the 80s in our C64 times was C64’s Commando; first the other boys told how hard game Commando is. Eventually one of my friends tried to play Commando for the first time in his life (and this was the first time he saw the game too) and this one friend managed to finish the game from the very beginning to the end at his first try — how the other boys were confused. “Yeah, really hard game!”, he said with little sarcasm.

A game that required fast thinking and good reflexes and gave us visually something new compared to what we had seen before was Cosmic Causeway:

For the end let be mentioned some early gems in the world of Commodore 64 games: M.U.L.E., Archon and Archon II.

Videos below:

Perhaps I come back later with my Amiga gaming history…

Another Game That I Dream to Create

This goes again to the nostalgia category. I really would like to make my own version of Commodore 64’s Stix.

This is a classic game from the year 1983. Below is a screenshot from C64 emulator:


The idea is to fill 75% of the playing area by turning 90 degrees from the direction the player is going. Kind of addictive game!

This idea could be refined to something more interesting…