Welcome to David Winter's CHIP-8 emulation page !

Please note: this emulator is no longer updated. It was originally developed for MS-DOS and will run under the DosBox emulator under Windows NT / 2K / XP / Vista.

It contains everything you will need to run any CHIP-8 and Super-Chip program. It is recommended that you run the emulator under Ms-Dos or Windows 95/98 in Ms-Dos mode. Best is to boot from a Windows 98 floppy disk in Ms-Dos mode without loading Windows (for this, press F8 just before the "Starting Windows..." message appears during the boot sequence and you will be able to select the Ms-Dos prompt). The only trouble you might have is to run a CHIP-8 program which calls a 1802 machine code subroutine. I wish I could help you, but life is short and I passed to other hobbies...


About CHIP-8 and Super-Chip:

CHIP-8 is a language interpreter used on the RCA TELMAC-1800 and COSMAC VIP computers in 1977, and some "make it yourself" hobbyist computers in the early 1980's. It is small, uses simple instructions and is easy to program, even for a novice programmer. CHIP-8 allows to program in less than 256 bytes these simple PONG, BRIX and TANK games we used to play in these early days of the video game.

CHIP-8 instructions support math and logic operations, control flow, graphics and sound. Because of the original design of the CHIP-8 interpreter, CHIP-8 programs cannot be larger than 4Kb. They originally included the interpreter, which had to be very small and took only 512 bytes of memory. Many CHIP-8 games were programmed since 1977, as CHIP-8 was not only used on early machines.

CHIP-8 was used on the HP48 calculator in the early 90's when the programming tools were not yet available).

CHIP48, the CHIP-8 interpreter for HP48, has been improved with several additionnal instructions and features, and was called SUPER-CHIP (SCHIP). This one offers a 128 x 64 resolution, some scrolling instructions, and a much higher speed. Thus, some really good games appeared and marked the begining of the HP48 games era. But now, this is old good past...

CHIP-8 has been ported to several platforms: DOS, Windows, MSX, ColecoVision, TI calculators, Game-Boy, Acorn and Java. You will find these versions on the Internet (use Google).

CHIP-8 is FREEWARE and you can download it here. The archive includes several games, some utilities and a very detailed documentation written in english.



CHIP-8 and Super Chip programs I made (and which nearly everyone included in his emulator):

BLITZ: a BOMBER clone where you must destroy the towers. You're flying left to right and loose altitude. Use 5 to drop a bomb. The game ends when you crash on a tower...

BREAKOUT: A modified BRIX with graphics looking like the game on the Atari 2600 console, so not my real creation...

CONNECT4: The classic game. In turn, each player drops a coin and tries to align four of them. Select the column using 4 and 6, and frop the coin with 5. There is no winner detection.

GUESS: Imagine a number between 1 and 63. CHIP8 shows you seven boards containin a sequence of numbers. Tell him when you see the number by pressing 5 (else, any other key). The program will then guess your number.

HIDDEN: A memory game where eight pairs of tiles are randomly placed and hidden in a 4x4 matrix. Find all pairs in a minimum amount of tries.

INVADERS: The well known Space Invaders game. Destroy the invaders with your ship. Shoot with 5, move with 4 and 6. Press 5 to start the game.

MAZE: This little program draws random mazes.

MERLIN: The classic Simon game. Remember in which order the squares light. The game begins by lighting only four random squares. Each level adds one square to the sequence. The game ends when you light a wrong square. Keys are 4 and 5 for the two upper squares, 1 and 2 for the two lower ones.

MISSILE: Shoot the eight targets while your gun moves faster as far as you hit them. You have 12 shots and win 5 points per target shot.

PONG2: A modified version of PONG with a nicer central line. Player 1 uses 7 and 4, player 2 uses / and *.

SQUASH: Exactly same than WALL (see below), except that you have 5 balls to play.

TICTAC: A Tic-Tac-Toe game. Play with keys 1 to 9 (corresponding to each location in the grid). The game restarts when the grid is full.

WALL: A squash game (PONG variant) for one player. Move using 4 and 7.

MINES: My minesweeper in Super-Chip mode. Full commented source code is included.

SQUARE: A magic square game. Levels vary from 3 x 3 to 8 x 8. Each level starts with a matrix of white squares, which must all be turned black in a minimum amount of moves. The problem is, when you want to invert the color of one square, you also invert the color of the squares located left, right, up and down. Level 3 ends in 5 steps. Level 4 ends in 4 steps. You find the others !


Speed problems:

CHIP-8 emulates as well as possible the original interpreter. Some games may run at an incorrect speed as there is no specific documentation on the instruction cycles (most CHIP-8 games will run at the correct speed). Although the Super-Chip (SCHIP) instructions run correctly, the speed is not perfect. This is due to the origins of SCHIP on the HP 48: its author increased the emulation speed by skipping the original time delays. As there is no specific documentation on SCHIP's execution speed, the SCHIP mode of CHIP8 has been set by comparing the execution speeds of several programs on HP 48 and PC.


Some CHIP-8 games:

One of the oldest video games: PONG
Before ARKANOID: BRIX
Tetris
Before SPACE-INVADERS: UFO


Some SCHIP games:
A Mariobross clone: ANT
BLINKY, just like PACMAN
HPIPER, a simple Pipe-Mania
The well known JOUST !
CAR, a little race game
WORM3, a Nibbles clone
Download Section:

Version: 2.2.0

This archive is compressed in ZIP format and must be decompressed with full paths.
Under Ms-Dos, use PkZip with option -d.
Under Windows, make sure your Zip decompressor keeps the original paths.

Windows NT / 2K / XP / Vista users must run Chip-8 under the DosBox emulator.

 

News as of 14th June 1999:
Jonas Lindsted has programmed a JAVA version of CHIP-8 which supports both CHIP-8 and SCHIP programs !

Try SYZYGY, a funny CHIP-8 game
Try ALIEN, another SCHIP game


General improvements in version 2.2.0:
  • CHIP8.EXE recompiled for 80386-DX PCs and above.
  • CHIP8 documentations rewritten using Word format (CHIP8.DOC)
  • CHIP8 french documentations dropped. Took too many bytes ;-)
  • No more annoying copyright message under emulation...
  • Snapshots can now have multiple names.
  • Snapshots now contain current setup of game emulated.
  • Snapshots are now available in SCHIP mode.
  • UNCHIP supports these new snapshots.
  • BINHEX produces more readable files.
  • HEXBIN has been updated, as requested by BINHEX.
  • Added support for ETI-660 programs.
  • Audio tape speed is now correct (100 bytes per second).
  • VGA graphics are now drawn via direct VRAM access, which is MUCH faster. Some games run much better (ANT...).
  • SET_CHIP is replaced by SETUP, which is more user-friendly.
  • Debug informations are now displayed if a crash occurs.
  • Text mode turned to 50 lines, which increases the speed of the sprite drawing routines.
  • Sound and delay timers are now time exact, synchronised on the internal PC timer (8253/8254).
  • Sources are now in CHIPPER syntax for better utilisation.
  • A CHIP8 and SCHIP games library is now available for the HP48 (G/Gx series): SCHIP48.GX.
  • Bugs fixed in version 2.2.0:
  • Character '4' of the 4 x 5 font is now correct
  • Boot-128 is now software accessible, and without register problems
  • Carry in the SHL instruction (BLINKY now works !)
  • Collision detection in SCHIP mode
  • Save/load register/flag instructions
  • Save/load instructions in UNCHIP
  • Screen colors are now correct after loading a snapshot
  • SCHIP instructions are allowed in CHIP-8 mode (scroll instructions only work in VGA mode, NOT TEXT)
  • Cosmetic bugs: VGA screen initialisation, Help screen, Screen capture, ...
  • New games in version 2.2.0:
  • BREAKOUT (modified version of BRIX)
  • DRAGON1, DRAGON2 (codes taken from the HP48 game Single Dragon)
  • GUESS (small bug fixed after a RESET: the result was wrong)
  • INVADERS (small bug fixed at end of game)
  • MINES (a minehunter; full commented sources provided)
  • PONG2 is somewhat more realistic compared to certain old consoles
  • SQUARE (magic square, like Okie-Dokie on the Atari 2600)
  • SQUASH (one of these PONG variants which was missing...)
  • WALL (same...)
  • New homebrew games:

    LOOPZ by Andreas Daumann
    This is a mixture of TETRIS and PIPE-MANIA, in which you must place some pipes to form a complete "loop". Once the loop is made, the pipes disappear. The game has 256 levels of difficulty, and the full source code is provided for those who are interested in CHIP8 / SCHIP programming. Since this game originally used some HP48 RPL features, a small executable named LOOPZ.EXE must be used to play this game. Also, make sure the ZIP archive of this program is decompressed with the full path info. Under Ms-Dos, unzip the program using the -d option in your CHIP8 emulator folder or you will not be able to use it.