How were Commodore 64 games developed?

Started by
24 comments, last by Zlodo 11 years, 5 months ago
The C64 did not ship with an assembler program, but you could write your own in BASIC if you wanted to, so yes, you could start from "scratch"
Advertisement
I was too young to do commercial games back then, but I remember spending a lot of time with machine code / assembly cartridges like Final Cartridge and Hesmon. I would guess that this was the development environment for many commercial games too, at least to low-to-mid budget ones.

Most games were written in straight machine code, but there were some in basic or basic/machine code hybrids, such as many of the text adventure games and Sword of Fargoal.

openwar - the real-time tactical war-game platform

Commecial development has been for sure be done with Macro Assemblers, and compilers for programming languages like PASCAL. If I remember right there was an BASIC compiler available that gives good results. Mainly the assemblers and compilers are split into parts and loaded in background from a disk (160kb single sided 5 1/4 inches), wenn needed.
Think of the memory constraints that you have on a C64. Even if you turned off the BASIC ROM you allways had less than 64kB for your program and data.

Writing an assembler program and translating it by hand was only a time consuming thing. If you have done this some time you know the instruction codes by value and it was easy to read and write them. Reading could be interesting if you had some assembler code and wants to know what they do in there (reverse engineering). It was easy.

Accessing the hardware was even easy, because you had no restrictions while accessing. The hardware registers where all memory mapped. So you only needed to know the address and then you could manipulate the functions of the hardware at will.

Funny time
I reckon the first few years of the C64's life games were written on the C64 itself, but then written on a more powerful machine in its later years such as the Commodore Amiga. Just a guess though...

I'm currently going through the book "Machine language for the Commodore 64 and other Commodore Computers" by Jim Butterfield, and that is a good place to start learning about the C64. First thing one discovers is that separate programs were needed to write machine code and assembly - Monitors and Assemblers, respectively.

I'm using the VICE emulator and also downloaded a nifty little IDE called C64 Program Generator, written by .Arthur Jordison. Oh, and for learning how to use VICE's built-in monitor, I highly recommend "Spiro's CBM Blog" Monitor tutorials.

Languages; C, Java. Platforms: Android, Oculus Go, ZX Spectrum, Megadrive.

Website: Mega-Gen Garage


I reckon the first few years of the C64's life games were written on the C64 itself, but then written on a more powerful machine in its later years such as the Commodore Amiga. Just a guess though...

I don't know if it happened on machines such as the c64 but I do know that at some point amiga games were developed using cross assemblers and debuggers running on intel PCs.

I know that reflections did this at least on shadow of the beast II and later games (they used to have interesting blurbs in the documentation of their games telling about the developpment process and it was mentioned there iirc).
Factor 5 had even developped their own intel pc based toolset called "pegasus" that they used for all their amiga and console games (probably even for their atari ports too)., I had read this in an interview somewhere.

Nowadays it doesn't makes a lot of sense to use another pc to develop a pc game, but in those days it probably made a lot of sense for professional developers to turn to that kind of solutions because machines had small amounts of memory which made it hard to have a game and development tools to coexist and even though some OSes like amiga's had preemptive multitasking they didn't provide any kind of memory protection and process isolation, which meant any unfortunate write through a bad pointer could bring the entire system down (or worse, result in filesystem or text editor buffer corruption, all kind of fun things).

Also since most games just clobbered the entire hardware and memory and interruption handlers (because using the os induced too much overhead and the hardware was fixed anyway) it was likely much easier to use remote debuggers running on the intel pc than having some hacks to let the game coexist peacefully with the os during development.

As an example of the kind of things that could happen in those days when developing directly on actual target machine , the first game that Reflections developped on amiga was ballistix. I can't remember how the hell I managed to come accross that in the first place but there were actual portions of the game's assembler source code that ended up lying around on some unused sectors of the floppy disk. Evidently that game wasn't yet using a development process using a separate pc...
Games for the C64 were written on the C64, mostly in Assembler except for maybe a few early commercial one in Basic. It was near impossible to emulate a C64 on another machine since the C64 used, like most computer of that time, some very proprietary parts that distinguished it from the other comparable machine on the market. At that time, there was fierce competition by computer maker trying to corner the market. There were no incentive to create something that could be copied by your competitor. Yes they all used the same CPU or some version of it (the C64 used the 6510 variant of the 6502) but their helper chips were all different, like the SID for audio on the C64 or the Antic graphical chip on the Atari 800 computer.


Also, the other plateform in existence at the time weren't up to the task when in comes to emulation. Even the Amiga fared poorly when trying to emulate a C64. The early PC's also cost a lot at that time and had limited graphical capability (think CGA 320x200 4 color mode) and couldn't really be used to emulate the colr mode of even those 8bit computers.
.
My blogs:

http://www.osrebel.com <-- En Français
L'information libre et la joie d'apprendre

http://www.osrebel.com/english <-- English Version
Free information and the joy of learning
If some are interested, you can read on what was being done and what was available at the time on those 8 bit machine by reading some scanned magazine like the one you can find on this site. Those are for the Atari 8bit computers and Atari ST but they should give you an idea.

Note: I'm old enough to have lived through the home computer revolution. I never had the money to buy an Apple 2, but I did owned and used/programmed the following:

  • TRS-80 MC10
  • TRS-80 Color Computer 2
  • Vic 20
  • C64 (still have it!)
  • Atari 600XL
  • Atari 800XL (still have it!)
  • Atari 130XE (Still have it!)
  • Atari ST 520FM
  • Amiga 1000 (Still have it!)
  • Amiga 500 (Still have it!)
  • Powermac G5
  • iMac 2010 (i3 still have it)
  • PC (XT & up to present day, I have a Dell 8500SE )
My blogs:

http://www.osrebel.com <-- En Français
L'information libre et la joie d'apprendre

http://www.osrebel.com/english <-- English Version
Free information and the joy of learning
Almost forgot...

If you can get your hand on some way to try those game of yore, maybe via emulation, those are a great source of inspiration for those trying their hands at game programming. Those game, for a big part, were simple, since they had to fit in limited ressources. A big game at the time had to fit into 32k of ram and the data for the game was splitted on one to a couple of floppy sides, which were 170k per side for the C64. This didn't impact the variety of games though, so there is plenty to "re-invent".

I would really like a modern version of Archon to be made for exemple. Hell, I may try to make one myself if it comes down to it.
My blogs:

http://www.osrebel.com <-- En Français
L'information libre et la joie d'apprendre

http://www.osrebel.com/english <-- English Version
Free information and the joy of learning

So I guess that the Commodore 64 was used to make games for itself

What language did they use for them(And by the way, I'm talking those actual commercial games and software for the C64)
because I know you can program in basic straight from the the thing, but did commercial games use assembly?


Mostly (6502) assembly language. This is a good read:
http://bryanpendleto...e-after-25.html
http://jordanmechner...ersia-released/
Today some game are still developed for it (selfsell: Look at my journal, I'm building a game in several steps here)
It's way easier today with all the cross assemblers and information on your fingertips.

(selfsell2: I also recommend C64Studio, a Visual Studio like IDE, that attaches to WinVICE to allow debugging)

Fruny: Ftagn! Ia! Ia! std::time_put_byname! Mglui naflftagn std::codecvt eY'ha-nthlei!,char,mbstate_t>

This topic is closed to new replies.

Advertisement