In case anyone actually reads this blog, I’ll pop in an update here.
I released a game for Spectrum computers back about March/April this year but still have an itch to create something new. I looked at C=64 Assembler, watched a few YouTube videos and thought “Screw that for a joke!”. So, I looked at Gameboy dev.
I saw it seemed quite good and not too complicated if I used C. I *can* do Z80 Assembler but that doesn’t mean I want to, necessarily 😉 haha!
Well, I decided I might port my old game “Quirl” I wrote back in the 2000s to Gameboy and Gameboy Colour — since you can code for one and it can work for both. I designed all the graphics and downloaded sprite and tile editors and the like. I also took a look at the Gameboy Studio application which really only lets you create rpg style games like the early Link ones. I was well on my way. I even bought a RG350M retro gaming device to play some games and also try out my own game:
I tried a few Gameboy games and really enjoyed them. Now I kinda wish I had known someone with any kind of Gameboy back in the day. I had heard of them but have never actually used one. You can, of course, also install Commodore 64 emulators and other platforms — which I will no doubt do.
For some reason, after watching more tutorials by OldSkoolCoder and Shallan50k, I decided to once again dip my toes into C=64 Assembler. I signed up to both on Patreon, then changed my Shallan support to Twitch so I can rub it in people’s faces on live-stream 😀
I was also involved in a competition Shallan was running on his Twitch stream about the time I started getting interested in C=64 Assembler. Well, I won £120 worth of programming books from him and they have started to trickle into my mailbox! Today I received the book “Machine Language for the Commodore 64” by Jim Butterfield!
Now I needed a game to make. A guy called Hayesmaker is often on Shallan’s Twitch streams, has his own streams and I’ve seen him on various Discord servers. He wrote a port of a Game and Watch game called “Mario’s Cement Factory“. What a great idea! A simple game with not too much animation or game rules. I thought to myself “I could port one of my favourite Game and Watch games to C=64 as a test”.
So, I downloaded Multipaint for C=64. Using this on Windows allows you to draw a bitmap with Commodore 64 size pixels and colour limitations. Once I had that done, I exported it in Koalapad format and grabbed some code from my friend Mike Richmond – a Musician in the UK who provided music for my Spectrum game “Corey Coolbrew” which you can find on itch.io
This code let me draw the bitmap to the C=64 screen in my VICE emulator. It’s very handy for testing your code. I also downloaded and set up the C64DebugGui for debugging. I think most people just use the C64Debugger which comes with VICE, but you have to memorise 50 different keyboard shortcut combinations for all the things you want to do. C64DebugGui has buttons around the edges of the screen with Tooltips so you know what you’re selecting 😀
I drew the sprites using SpritePad. It’s very useful. I had already purchased Derek Morris’ book “Retro Game Dev: C64 Edition” for my Kindle. You can read about it on Derek’s website. He’s also on OSK’s Discord (OldSchoolCoder). OSK has also been helping me with my game since I’m so new to all of this. He fixed my rasterbars on the titlescreen and showed me how to write a 1-pixel scrolly message. I added in some funky colour sweeps over some text and was away! Mike Richmond wrote some lovely music and I had fun incorporating that into my game. He also created some sound FX for me to use, which I will when I get around to that part of programming.
I got the CBM Prg Studio which Derek recommends and am using that to write my Assembler code with. OSK also helps with coding this and you can see it featured in his YouTube videos, but he also uses Kick Assembler at times. I really like this IDE. It lets you import SpritePad sprites, create your character set, design C=64 screens using the character set and more!
Now I have a game with a titlescreen, music and the main game screen. I have yet to move the in-game sprites around, add joystick stuff, sound FX, etc but am really enjoying what I’m doing and who knows.. may even start doing a demo or two! I’m using the Github desktop to check in my code while I’m working, to make sure I don’t lose it if something happens or if I screw up 😀