XChip-8

This is a simple virtual machine for Chip-8 machine language. It runs on most *nix systems with X11. In fact, I compiled it on GNU/Linux (various flavors), SunOS 5.9, FreeBSD 6.2, and even Cygwin. I had to "fix" the Makefile to work for all systems other than GNU/Linux and SunOS; it seems like the "make" utility is broken in FreeBSD (it doesn't seem to recognize the "$<" pseudo-variable correctly), and apparently libraries must be at the end of the compilation command line in Cygwin (something to do with the resolution of external symbols).

I'm developing this program only in my free time, so don't expect it to be perfect.

Features

News

Screenshots

Here are some screenshots of XChip-8:

Tetris
Tetris. Notice the motion blur on the falling piece.
Missile
Missile.
Pong
Pong!
Tic-Tac-Toe
Tic-Tac-Toe.
Space Invaders
Space Invaders.

Compiling and running

In order to run the program, you must first compile it. First extract the archive, then at a command prompt, type 'make'. If it compiles without errors, run it as './xchip8 program', where program is the filename of the Chip-8 program.

You can find many Chip-8 programs on-line. Some places to look are The CHIP-8 Emulator HomePage and http://www.pdc.kth.se/~lfo/chip8/CHIP8/GAMES/

Keys

The Chip-8 uses a 4x4 keypad, so I chose to use the following keys on a modern keyboard (this is subject to change in future versions):

7 8 9 0
u i o p
j k l ;
m , . /

I also mapped the following keys to extra functions:

Key Function
q Quit
r Reset virtual machine
Space Pause the virtual machine
Tab Take a screenshot in the current directory

Both upper- and lower-case letters work for all of the keys.

Limitations

Here are some limitations of the current version of XChip-8:

To Do

Here's a list of items for improving XChip-8:

Download

Here is the complete source code in one download: xchip8.tgz.

License

XChip-8 is Copyright 2006 Christopher Williams.

This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version.

This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.