Tutorial:Beginner's Guide to the Channel F

From veswiki
Jump to: navigation, search

(placeholder until I get around to it. Admin 16:05, 20 Nov 2004 (CST))


If you're reading this right now, then you must've expressed some interest in programming the Channel F, or finding out what it's all about. But what reason is there to program it in the first place? And where to get started? this tutorial is made to help you get off on the right foot.

Reasons to program the Channel F

The Channel F wasn't a particularly popular system, and many collectors for vintage video game systems may not have ever seen one, much less heard of it. So first off, a little history.

The Channel F (originally known as the VES) was released in 1976 by Fairchild Semiconductor. It had a 102x58 pixel screen, four-eight colors on-screen at once (depending on the palettes used), and a controller that looked like something out of a low-budget sci-fi movie. However, the most unique part of this system was that it was programmable, meaning that you could load the console with a "program" which would be executed by the console; thus, you could continue making new programs for the console, and the console could still be reused. Up until then the only existing consoles were Pong systems and similar TV variants, which could only play the games which were built in (with some exceptions, but those used cartridges with their own hardware, and no CPU).

However, for such a revolutionary idea, it didn't gain as much popularity as its successors. Only a year later the Atari VCS was released, which had more colors, a better resolution, and was made by the established Atari company, who first created Pong. The Channel F began to fade into obscurity as newer and better consoles took over the market. Fairchild sold the rights to a company named Zircon, who tried to revive the system by releasing the Channel F System II, with a sleeker look and sound that would play through the television, not the console itself (as was the case with the System I). They managed to release a few more games before they jumped out of the market. The Channel F was also released under different names in several other countries than the US, and there were some country-exclusive games (Schach for the Saba Videoplay comes to mind).

That's the brief history of the Channel F, the first programmable video game system. However, if it wasn't that popular, why would you bother trying to program for it at all?

  • It's the first programmable video game system, which means it's a pretty historical console. Making a game for it is the pinnacle of retro-programming.
  • It's challenging! Programming any vintage video game system is a challenge, and you have to learn the machine inside and out to make the most out of it.
  • To play your own produced video game.
  • To play your own produced video game next to the first real cartridge game ever produced.
  • To play your own produced video game on a system that's over 25 years old, and amaze your friends as to how the heck you pulled that off.

Where to get started

Of course, programming the Channel F isn't like programming something on a modern computer, easy. The Channel F has an awkward instruction set (the opcodes or commands used to make up the game), limited resolution and palette, and is largely undocumented. But with enough research and a good amount of practice, you'll definitely be able to make your own game.

First off, you'll need an assembler. An assembler is much like a compiler, if you've ever used one, it takes source code and outputs a program. The difference is that an assembler takes in assembly code, and outputs the pure assembly instructions, and converts them into hex; it doesn't convert the source from one language to another, but just writes it in the form a machine can understand. The Channel F uses a CPU called the F8, also known as the 3850, which is the name of the actual CPU chip.

There are only a few F8 assemblers out there at the moment:

  • DASM - My personal favorite, and what this tutorial uses as a reference. It supports the entire F8 programming set and is very flexible. It supports multiple processors, so to output an F8 file, you'll need to include the prefix "processor f8".
  • ASMX, Bruce's Semi-Generic 8-bit Assembler - A cross-assembler created by a member at AtariAge, it includes code for compiling ASMX for multiple processors, including the F8. Said to work with the entire F8 instruction set, and from what I've seen, looks pretty good.
  • F8Tool, Peter's F8 Assembler/Disassembler - Not a bad compiler, but unfortunately doesn't support the entire F8 programming set (though it can be worked around) and isn't as flexible as DASM. However, it includes a disassembler, which is the only one I know of right now that exists. Released under the GPL, no commercial use is allowed.
  • Cross-32 Meta-Assembler - Supposedly supports the F8/3870 instruction set, I haven't used it. If you search the internet long enough you might be able to find the older Cross-16 assembler which also supports it, but again, I don't have any experience with it.

(enough for today. Admin 16:39, 20 Nov 2004 (CST))