Welcome to my CHIP-8 emulation page !

Please note: this emulator is no longer updated.

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 : This game is a BOMBER clone. You are in a plane, and you must destroy the towers of a town. Your plane is flying left to right, and goes down. Use 5 to drop a bomb. The game ends when you crash yourself on a tower...

BREAKOUT: Not really my creation, but rather a modified BRIX with graphics looking like the game on the Atari 2600 console.

CONNECT4: This game is for two players. The goal is to align 4 same tokens in the game matrix. Each player's tokens are colored. When you drop a token, it is paced over the last one dropped in the same column (or at the bottom if the column is empty). Once the column is full, you cannot place any more token in it. To select a column, use 4 and 6. To drop a token, use 5. There is no winner detection yet. This will be soon avalaible (Hey! I don't spend my life on CHIP8 !).

GUESS : Think to a number between 1 and 63. CHIP8 shows you several boards and you have to tell if you see your number in them. Press 5 if so, or another key if not. CHIP8 gives you the number...

HIDDEN : A memory game where 8 pairs of tiles are randomly hidden in a 4 x 4 matrix. Your goal is to 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 begin a game.

MAZE : This little program draws random mazes.

MERLIN : This is the SIMON game. The goal is to remember in which order the squares are lighted. The game begins by lighting 4 random squares, and then asks you to light the squares in the correct order. You win a level when you give the exact order, and each increasing level shows a additionnal square. The game ends when you light an incorrect square. Keys are 4 and 5 for the two upper squares, then 1 and 2 for the two other ones.

MISSILE : You must shoot the 8 targets on the screen. Your shooter moves a little bit faster each time you shoot. You have 12 missiles to shoot all the targets, and you 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 : Exactely same than WALL (see below), except that you have 5 balls to play.

TICTAC : A TIC-TAC-TOE game. Play with [1] to [9] keys. Each key corresponds to a square in the grid. The game never ends, so at any time, the winner is the one who has the best score.

WALL : One of these PONG variations. Move using 4 and 7. As said in the Atari version "AVOID MISSING BALL FOR HIGH SCORE" !!!

MINES : My minesweeper in Super-Chip mode. I included the source code to help others programming in Super Chip.

SQUARE : A magic square game. Levels vary from 3 x 3 to 8 x 8. Each levels has a matrix of white squares which must all be turned black (they can be turned white as well). The problem is, when you want to invert the color of one square, you also invert the color of the square on the left, on the right, up and down. The whole square must be turned black in a minimum amount of moves. Levels 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
Guess...
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

A few games you should try:
ANT (a nice platform game)
SYZYGY and WORM3 (Nibbles / Snafu / Snakes clones)
INVADERS (a Space Invaders clone)
BLINKY (a Pacman clone)
TETRIS (Guess...)

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.

 

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.