I recently got involved in the Commander X16 project. I would like to give an overview of the project and the vision behind it from my perspective.
The Commander X16 is a new 8 bit computer designed by David Murray of the well-known “The 8-Bit Guy” online video channel.
8 bit computers are great for learning about computer architecture, because they are simple enough that they can be fully understood, and they are great for learning to program, because they boot straight into a programming language. But 8 bit computers also have some annoyances like cheap, non-standard keyboards, TV-out and the reliance on floppy disks (or rather expensive SD card adapters).
Therefore, David is designing a new 8 bit computer in the style of Commodore computers like the VIC-20 and the C64, fixing the annoyances of retro computers by having:
- VGA output (in addition to composite)
- support for standard PS/2 keyboards (instead of a cheap built-in keyboard with a non-standard layout)
- SD card for storage (instead of an additional floppy drive)
- RS232 port for efficient cross-developmment
- efficient modern power supply
Another problem with retro computers nowadays is the high barrier of entry when developing (semi-)professional software: Since retro computers have been researched for almost 40 years, standards for software are very high. Any credible new game release for the C64 for example will have to come with a fastloader to overcome slow load speeds, and a sprite multiplexer to overcome the 8 sprite limit. The X16 ROM supports fast loading from SD card, and its video chip supports plenty of sprites as well as hardware scrolling of bitmaps. The memory map is kept simple and does not need (or support) complex reconfigurations.
With a rather modest set of hardware features, the X16 targets a lower price point than most comparable projects.
These are the original videos on the topic:
These are the hardware specs:
- 65C02 CPU at 8 MHz
- 40 KB of main RAM
- 512 KB (or 2 MB) of banked RAM
- 128 KB of banked ROM
- VERA video controller
- 16-bit class
- 128 KB of external video RAM
- 640×480 (or 320×240) pixels
- 256 colors out of 4096
- 2 layers supporting tiled and bitmap modes
- 128 sprites (limit per line based on memory bandwidth)
- sound TBD
- two 6522 VIA I/O controllers
The computer supports the following connections:
- VGA (480p), or Composite/RGB (480i)
- PS/2 keyboard
- PS/2 mouse
- two NES or SNES controllers
- SD card
- legacy IEC>
The X16 is not an FPGA-based solution, but uses real, socketed 65C02 and 6522 chips for the same hackability as a retro computer. The video chip is a new design and comes as an FPGA.
From the software side, the Commander X16 feels like a Commodore computer. Its ROM contains the “KERNAL” operating system derived from the C64 version, as well as an enhanced version of Commodore/Microsoft BASIC based on V2.
Consequently, the X16 can be considered a sibling of the computers from the Commodore 8 bit family (PET, VIC-20, C64, CBM2, Plus/4, C128 and C65). It is not meant to be fully compatible with any of these machines, but it is as compatible as a Plus/4 is with a C64: BASIC programs without PEEK and POKE as well as machine code programs that only use the documented KERNAL API (e.g. BSOUT $FFD2) will just work, but existing code that accesses hardware would have to be ported.
The fact that the X16 breaks compatibility with the C64 is what I find particular interesting. Most retro projects try to recreate a classic computer. Users will start their favorite two games and then get bored. The X16 is a new system, with new tricks to discover – but familiar to people who know the C64.
As of October 2019, only a handful of prototype machines exist. If you don’t want to wait for the release hardware, you can use the emulator:
There are binary releases for macOS, Windows and Linux on the GitHub releases page, which always include the latest build of the ROM.
The ROM is being developed as open source:
The reference guide is worked on as an open source project as well:
And here is a collection of demo/example code contributed to by many people:
The official forum is unfortunately hosted on Facebook, but there is a lot going on: Users show off programs they have written and discuss programming questions. There is also a forum on David Murray’s website.