For now this section includes all of the Commodore 64 Game Projects that exist on my C64 Brain YouTube channel. The next step is to break these down step by step into more in depth tutorials. For now though, I felt inspired to share this with the website community for those who are unaware of the channel or don’t have the time to navigate YouTube.
They are all presented here from start to the latest current project.
Patience is appreciate for those waiting on Video 10 and 11. Still trying to overcome a hump I’ve encountered trying to animation 4 tiles on a scrolling screen. I may also dedicate sections of this page for some of the debugging journeys (frustrations, lol) I’ve had trying to make sense of it all. If it’s any consolation also, my biggest struggle was trying to understand the Machine Language Project and create my own engine from it, which is the result of these videos here. Enjoy!
Project 10 Beta Trial
I am now including a link for the newest program. You can use the VICE emulator below to load it. Click the button below to download Project 10. Once it’s downloaded, click on the C64 menu, Attach D64 or you can just drag the C64 Brain Project 10.prg file into the VICE window and it will also load the game. Have fun and be sure to leave comments or feedback below or even in Discord.
Please note: Since this is a beta trial project, expect some bugs. The scrolling is still not perfect and will eventually be corrected. I only have so much time trying to manage this website and a YouTube channel while trying to work out the bugs.
Currently the ladder is accessed by pressing the fire button (due to a sprite to foreground collision issue) and press fire to jump up to leave the ladder after reaching the top.
This first video is what started it all on YouTube. I presented the overview plan in a total of 18 videos to get this project completed. There were likely be many other things needed, but this is what I came up with upon my original idea with this.
Each section here will include access to my Github where you can download the files for that part of the project.
In Video one, I break down the project from the Main.asm file. Here I explain how the memory banks work (moving memory), bit masking, reserving a memory area for the character set, and copying the character generator from ROM to RAM memory.
This section is the code example for Video 1. Here I demonstrate how to load a game character set using a tool called CharPad into memory to be display on the VICE emulator screen. Using the Robocop game as an example you will see how the map is read to the screen.
This Video 2 explains how “interrupt programs” work, shows how to use a joystick controller, setup screen swapping (to preserve the screen on a backbuffer), and I finally review the Scrolling.asm to show how it is used to shift the screen.
Now we examine the Player.asm file and experiment with loading a moving map onto the screen from binary files using the tool known as CharPad. Eventually I switched over to trying a different game since some of the screen shifting didn’t align with the first example.
For Video 3, I explain how to add sprites to the project. The sprites are loaded from the Sprite Editor built into the CBM Prg Studio editor and loaded into memory. Sprites are graphical characters that can be moved over a background independently without affecting the characters on the display.
The example seen here shows the result of project 3 and how to move a sprite over the background around a scrolling map loaded into memory.
In Video 4 we covered collision detection. This checks when a sprite has bumped against an object marked as “solid”. This Collision_Routines.asm file tracks the position of the sprite on the screen and aligns the tile data to see what the sprite has come into conflict with. This is performed by shifting through a table based on where the screen has moved around in the map.
In this example video, we get to watch a sprite moving around the screen with animation frames active. The sprite will also check against any screen conflicts when being moved in the scrolling map.
Now we work on implementing gravity into our Commodore 64 game project. If the sprite walks off a ledge, the fall begins and continues until an impact is made with another tile. The sprite also can land in water after falling.
This example project demonstrates how the material attributes work in CharPad, which is used to check if the sprite has collided with a tile after falling.
Videos 8 and 9
An understanding of banking memory is reviewed here in depth. Also I cover a little assembly language, explaining how the status registers work. The map tiles are seen here. A review of the jumping subroutine is evaluated. This all leads up to creating a sprite that now has a “super jump” enabled.
In this section we gain a deeper understanding of how the Commodore 64 PET ASCII characters exist in memory, how to change them (after copying them from ROM to RAM memory), and then explore some of the animation techniques for the project.
For this session I cover how sprite collision detection works when contacting another sprite. You will also learn techniques on how to make a sprite follow another sprite. Plus I cover some scenes on shooting, deaths, and so on.
In this video you will learn how the player death works when the sprite falls at too great a height from a ladder or ledge. Then eventually the sprite will lose the final life and a game over screen is triggered. Later on the level advancement is explored when the sprite walks through a secret door on the map. The end of the movie highlights a short review on how to download the project from GitHub.
Steve has always had a passion for computers even before I owned one. His first personal computer was an Atari 65xe purchased at Children's Palace around 1986. In later years he attended DeVry University and received a Computer Science degree, works as a Front End Web Developer and is a born again Christian.
Although this is a tech site, I am ashamed of the gospel. I am a sinner saved by the blood of Jesus Christ. If you ever want to talk about salvation, I'm game.