Jump to content

  • Log In with Google      Sign In   
  • Create Account


How were Commodore 64 games developed?


Old topic!
Guest, the last post of this topic is over 60 days old and at this point you may not reply in this topic. If you wish to continue this conversation start a new topic.

  • You cannot reply to this topic
25 replies to this topic

#1 bigbadbear9885   Members   -  Reputation: 177

Like
0Likes
Like

Posted 04 November 2012 - 04:57 PM

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?

Speaking of that, could Assembly code be assembled on just the C64, just like basic? Not having to go and buy something

One more thing is, could the Painting softwares for the C64 be used to make the graphics for the C64 games, or did to all be done in the programming?

Sponsor:

#2 MrDaaark   Members   -  Reputation: 3551

Like
0Likes
Like

Posted 04 November 2012 - 05:14 PM

There were assemblers (MIKRO or MIRKO I think), C compilers, Basic things. There were also paint programs like Deep Paint, and Koala Painter

#3 bigbadbear9885   Members   -  Reputation: 177

Like
0Likes
Like

Posted 04 November 2012 - 05:22 PM

Can the C64 assemble by itself?

And so those Paint programs you listed could be used for the game graphics and sprites on the C64?

#4 Bregma   Crossbones+   -  Reputation: 4971

Like
0Likes
Like

Posted 04 November 2012 - 05:25 PM

There were commercial development systems available for the C64. You could get a Pascal compiler, for example. There were also assemblers. There were a lot of people well versed in 6502 assembler in those days.

Even programs written in BASIC usually had reems of POKEs.
Stephen M. Webb
Professional Free Software Developer

#5 MrDaaark   Members   -  Reputation: 3551

Like
0Likes
Like

Posted 04 November 2012 - 05:28 PM

Yes. Why not?

There is nothing special about generating an .exe or creating a data file to be read. An assembler program needs only to read in your instructions and convert them to a proper binary format in machine language, in this case, machine language specific to the C64.

#6 bigbadbear9885   Members   -  Reputation: 177

Like
0Likes
Like

Posted 04 November 2012 - 05:55 PM

I mean just like how you can just start the C64 without anything, and just write basic code and compile it without any compiling software, could you do the same exact thing with assembly, just go write some assembly code without anything and assemble same, same exact thing or did you have to Have some assembling software?

#7 Bregma   Crossbones+   -  Reputation: 4971

Like
1Likes
Like

Posted 04 November 2012 - 06:54 PM

I mean just like how you can just start the C64 without anything, and just write basic code and compile it without any compiling software, could you do the same exact thing with assembly, just go write some assembly code without anything and assemble same, same exact thing or did you have to Have some assembling software?

You would either use a macro assembler to convert your assembly code into a binary executable (which you could later LOAD *,8 and RUN), or hand-translate your assembly code into machine code and use the built-in BASIC interpreter to POKE the machine language into memory and execute it.

The C64 used a BASIC interpreter as its "shell". It did not have a line-by-line assembler as its "shell".
Stephen M. Webb
Professional Free Software Developer

#8 Tom Sloper   Moderators   -  Reputation: 9441

Like
0Likes
Like

Posted 04 November 2012 - 07:53 PM

This is similar to the first C64 post by the OP in this forum, and the other one has 0 replies, so I'm closing that one.
-- Tom Sloper
Sloperama Productions
Making games fun and getting them done.
www.sloperama.com

Please do not PM me. My email address is easy to find, but note that I do not give private advice.

#9 InvalidPointer   Members   -  Reputation: 1421

Like
0Likes
Like

Posted 04 November 2012 - 08:04 PM

Yes. Why not?

There is nothing special about generating an .exe or creating a data file to be read

I disagree with your exact wording here, though the underlying thought is bang on the money. The EXE file format is specific to Windows, so there's some secret sauce there. The specifics of how Windows loads and runs programs are kind of cool and worth a read.
clb: At the end of 2012, the positions of jupiter, saturn, mercury, and deimos are aligned so as to cause a denormalized flush-to-zero bug when computing earth's gravitational force, slinging it to the sun.

#10 MrDaaark   Members   -  Reputation: 3551

Like
0Likes
Like

Posted 04 November 2012 - 08:16 PM

My bad, I meant executable. But .exe files predate windows, and are used as the executable extension on a few non MS OSes.

#11 Olof Hedman   Crossbones+   -  Reputation: 2739

Like
0Likes
Like

Posted 04 November 2012 - 10:46 PM

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"

#12 Felix Ungman   Members   -  Reputation: 999

Like
0Likes
Like

Posted 05 November 2012 - 01:22 AM

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


#13 Tribad   Members   -  Reputation: 841

Like
1Likes
Like

Posted 05 November 2012 - 01:53 AM

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

#14 Anri   Members   -  Reputation: 597

Like
1Likes
Like

Posted 05 November 2012 - 05:55 AM

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.

#15 Zlodo   Members   -  Reputation: 234

Like
2Likes
Like

Posted 05 November 2012 - 10:58 AM

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...

Edited by Zlodo, 05 November 2012 - 11:03 AM.


#16 AMenard   Members   -  Reputation: 175

Like
0Likes
Like

Posted 05 November 2012 - 03:06 PM

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.
.

Edited by AMenard, 05 November 2012 - 03:09 PM.

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

#17 AMenard   Members   -  Reputation: 175

Like
0Likes
Like

Posted 05 November 2012 - 03:17 PM

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

#18 AMenard   Members   -  Reputation: 175

Like
0Likes
Like

Posted 05 November 2012 - 03:23 PM

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

#19 Matt-D   Crossbones+   -  Reputation: 1447

Like
0Likes
Like

Posted 05 November 2012 - 05:17 PM

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/

Edited by Matt-D, 05 November 2012 - 05:18 PM.


#20 Endurion   Crossbones+   -  Reputation: 3459

Like
0Likes
Like

Posted 06 November 2012 - 09:23 AM

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>




Old topic!
Guest, the last post of this topic is over 60 days old and at this point you may not reply in this topic. If you wish to continue this conversation start a new topic.



PARTNERS