Dustlayer

Retro means old but cool.

I grew up with the Commodore C64 but was never able to master the machine. I was young, I wanted to play the latest games and let other people do the pioneer work on exploring this incredible hardware. Today I have better skills to catch up on what it takes to code the C64. I will share what I learn along the way. Enjoy the trip to the past!

DUST 0.4.5 released + some hints

I have released a new Version of DUST to address some reported problems and tweak a few commands.

How to update:  sudo npm -g install dustlayer

Optimized commands:

  • dust create <directory>    # this will create a new empty project from a template. The templates are stored on my github account. A list will appear and you can simply choose what template you would like to download.
  • dust tutorials  # the tutorials commands before was a bit awkward so I have simplified it. The new command will list all tutorials and gives you a prompt to just choose what you like to download

Fixed Problems:

  • There was a [WARN] message when DUST was installed due to an outdated plugin I used. I have updated the plugin and the Warning has disappeared
  • For whatever reason the important Build-Scripts for 6502 and BASIC have not been copied with the first released version of DUST (0.4.0). This works fine now. If the command 'DUST test' shows you that build scripts are missing, please just run 'DUST setup' again - overwriting an existing setup is safe.

Hints

  • Usually Win32-Apps should be associated with Wine by default after WineBottler was installed. However, you may have some other tool installed on OSX that already associated the extension .exe , e.g. Unarchiver. To fix this, just right click on any Win32 Application which are stored under your Home directory under /Wine Files/drive_c/Program Files and adjust the file association to Wine.

Associate Win32 Apps with Wine if this is not done by default on your system

Associate Win32 Apps with Wine if this is not done by default on your system

-act

Press Play On Tape

Once upon a time...

Dustlayer is a new C64 group with one member - so actually hardly a group but I need to start somewhere. As opposed to many other C64 groups who today consist often of demo scene veterans, I started this website being very new to C64 programming in general though I grew up with the machine in the 80s. 

I was 7 or 8 years old when kids like me all ran to the department stores after school to play with those new home computers. The very first thing I learned on a C64 was to put a tape into the C64 Datasette, hit shift+runstop and then I was supposed to press play on tape

Shift+Run Stop opened the world to C64 games

When I got my very own C64 with Datasette in 1984 I was just one of the many kids who were more interested in playing the latest games than to actually do creative work with the machine. Being a 9 years old I did not understand how games were programmed or great looking intro effects were created. I was not even really knowing what the POKE command internally did other than to help me to set border colors or cheat in some of the games.

It took me another two years to try to mimic cracking groups but with my very limited set of expertise. So my first release I swapped in school was Camelot Warriors which I copied from Tape to Disk using the Freeze Frame MK III cartridge. I even put a BASIC intro with some Escape Sequences magic in front of the game loader - wow! My handle back then was "The Gamehunter" or TGH and chances are at 100% you never heard of me - anyways this was the time I got interested in more than just playing games.

My Freeze Frame MK III - my tool of choice when I was 11 years old.

Five years have passed since I got my C64 in 1984. I moved on to Amiga, got involved into the scene as independent trader. On Amiga I got more interested in actually working with the machine. I swapped source codes with a friend and used the Kefrens Seka assembler to add for example a soundtracker replay routine or change scroll texts.  Another friend at school taught me some basic assembler stuff which I forgot a short time later. What I was more interested in on Amiga though was doing music with Soundtracker/Protracker - unfortunately, all my work from that time got lost. 

With the internet changing the way we were looking at world wide communication I decided to start a website for a new platform and that platform was the brand new Nintendo 64. The website was at the beginning called Doc64 Page and a bit later dextrose.com. Dextrose.com became the largest resource on N64 programming, hacking and latest scene news. I was fortunate enough to find some real cool people in the city next to mine who were joining Dextrose and together we made it big. Along the way I founded scene group called MSFTUG which for quite some time was one of the leading release groups on N64. I didn't code but rather supplied, organized and spread releases and maintained the website of course. For what it's worth, MSFTUG and Dextrose were really great projects with members worldwide. I made lots of friends I still have contact to after so many years.

Real life began and while I was still an avid gamer I have left the scene behind me. Dextrose was put to grave. The name lived on for a year when I set up a new company in 2009 but it was sold only one year later eventually. Today I work for the company who I sold Dextrose to. 

Along the way I married, got kids and a house. So the basic stuff is covered now, life is actually fine! With me settled I found my interest again in the good old times. I started to collect original boxed C64 games and set up my basement to reflect my childhoods best memories with consoles from the past and of course all the Commodore stuff - but now I additionally wanted to catch up on all the things I have not understood when I was young.

My current setup in the basement. Changed a couple of times. 

I started to source all kinds of books for the C64 - I actually dislike reading books on a screen. I was in particular interested in the 6502 assembly language. I soon realized that knowing the syntax is just one requirement to develop software.  The actual key is to study the hardware and get to understand how all the pieces inside and outside the C64 interact. So I learned about memory layouts, the processor, custom chips and the interfaces. It was fascinating - at one go I understood what was going on how things work. I thought I was ready to learn how to develop intros or even games - how optimistic I was. 

It  became clear that all those books are a very basic foundation of what the C64 is capable of but to write demos or even games you need to go look out for more resources or help. Fortunately there are hundreds of sites covering the C64 on the web yet I have not found anything I would rank as a personal top site to go for new developers. There are sometimes interesting things in forums or spread using traditional txt-files or even d64 images and there are a few dedicated websites to C64 programming. However, I found that the content is often hard to follow for a beginner. 

Collection of all sorts of Commodore C64 books

Finding the starting point

So when I decided to learn 6502 code at some day in 2012, my first goal was - of course - to code a simple intro with some music, scroller and color cycle effect. Searching the internet brought no instant satisfying result. There are probably hundreds of Website with resources on Commodore C64. Many of those websites are quiete old, some have not been updated in years and some actually work up information in a sub optimal way by today standards - TXT-files or even .d64 format is not a popular solution anymore to publish tutorials.

Then people use different assemblers and syntaxes, some document code, some don't. I thought this can be done differently for people who want to begin coding the C64. 

My first working intro - experts will notice that I did not succeed to code a stable interrupt.

I think there is something which I can do okay and that is dissecting information and simplify it so even my grand dad could understand what I am talking about. So this site will be that resource of rehashed information. I will create tutorials for people who want to start coding on the C64 and maybe have already some basic understanding of the inner workings or have read a book on machine language.

By the way, while I was studying 6502 assembler, something else came up though: I realized that it was really tedious to get a good working cross development system setup on a Mac. I wrote a little tool to help with this - the tool grew and now it can not only setup your Mac OSX system but also provides commands to download the latest tutorial code from this site and do some other useful things for you on the command line.  Learn all about dust in this dedicated tutorial.

Dust is a command line suite I wrote to support cross-development on Mac

Where do we go from here?

Dustlayer.com is a hobby project - I have a regular work and a family so don't expect daily postings. However, working with the C64 has become a passion even with my very limited skills at this time. I will try to put interesting stuff on this site as often as possible and use Facebook and Twitter to get the word out - I appreciate if you support spreading the info about this project!

If you want to help me to improve the site, feel free to contact me.

-act