CHIP-8 emulators

From Emulation General Wiki
Jump to navigation Jump to search
CHIP-8
PONG CHIP8.png
Screenshot of Pong implemented in CHIP-8
Developer Joseph Weisbecker
Release date 1977[1]
Emulated
WIP Note: needs accuracy testing and checking for licensing
Note: The terms 'emulator', 'interpreter' and 'simulator' are used interchangeably by developers of interpreters of CHIP-8.

CHIP-8 is an interpreted programming language, developed by Joseph Weisbecker. CHIP-8 interpreters have been official endorsed/made by some hardware developers, while most interpreters are considered homebrew or hobbyist software.

Adoption
There have been multiple communities that have used CHIP-8.

In the late 1970s to 1980s microcomputer kit communities are where CHIP-8 was first popular.

This is due to systems like the COSMAC VIP including CHIP-8 programs in instruction manuals.[2] In these communities CHIP-8 programs and extensions were being shared with newsletters, like 'DREAMER' and 'VIPER magazine'

Later, in the 1990s CHIP-8 began to be popular on graphing calculators. This community started when a CHIP-8 interpreter called CHIP-48, the origin the 'CHIP-48' extension was released on the HP-48 in 1990. In 1991 the 'S-CHIP' interpreter released on HP-49G, with the 'S-CHIP' extension being a derivative of CHIP-48.[3]

Since then there have been other communities that have created and ported interpreters, devices such as home computers and consoles have been hardware targeted by some software developers. With interpreters still being made for consoles and computers, as well as many other old and new devices. In the 2010s the octojam competition (XO-CHIP was created in 2014[4]), which has ran from 2014-2023. Octojam had dozens of CHIP-8, S-CHIP, and XO-CHIP programs created for it.

CHIP-8 extensions
For information on CHIP-8 extensions see: CHIP-8 extensions and compatibility by the CHIP-8 Research Facility
Extensions to CHIP-8 have existed since the 1970s.

CHIP-8, and its extensions are based on implementing opcodes in interpreters.[5] The original CHIP-8 being the most supported, with the most supported extensions being S-CHIP and XO-CHIP.

When extensions change the behavior of an opcode it makes the specific opcode when used incompatible with other extensions, most derivative extensions try to maintain backward compatibility with 'parent' extension. If commonly used or many opcodes' behavior is change it will large incompatibilities with extensions.

Computers with supporting CHIP-8
For more information on these computers, see List of computers.
Devices with official/endorsed or other well-known CHIP-8 support.

These devices include: DREAM 6800, COSMAC VIP, HUG1802/ETI-660, Oscom Nano, Telmac 1800, Telmac 2000, V-ELF, VIP2K Membership Card.

Contents

Interpreters[edit]

Computers[edit]

Name Platform(s) Latest Version Libretro Core Accuracy FLOSS Active Recommended
PC / x86
Cadmium       1.1.8 Cycle
C-Octo       git High
CubeChip-SDL       git High
JAXE     [N 1] git
libretro core
High
chip8swemu     git Mid
DSP       git Mid
shmip8     git Mid ~
Vision-8       1.0 Mid NC ~
CHIP-8 Interpreter   git Mid ~
chip8-asm64-emu   git Mid
OmniChip-8     git Low
CowChip     0.2 Low-Mid
Chip8-DOS   git Low-Mid
Pin8   git TBD NC ?
CHIP-8 Emulator   git TBD ?
CHIP-8 ZealOS git TBD ?
Emu OS x86 CPUs git TBD ?
Name Platform(s) Latest Version Accuracy FLOSS Active Recommended
Computers / m68k, PPC
Crazy-8   1.0.4 TBD ?
MacVision-8   1.0 TBD NC ?
Chip8   ? TBD NC ?
Vision-8   1.0 TBD NC ?
Home computers
Chip-8 Atari 8-bit git TBD ?
Chip09 Tandy CoCo 2
Dragon 32/64
git TBD ? ?
Vision-8     1.0 TBD NC ?
CHIP-OTTO  
ZX Spectrum Next
Cambridge Z88
? TBD ?
C64 Chip-8   git TBD ?
OmniChip-8   git TBD ?
Chip-8 Emulator   ? TBD ?
MoeCHIP-8 for C64   git TBD ? ?
Vic-20 Chip-8 Emulator   1.11 TBD ?
CHIP-8 Simulator BBC/Master  
BBC Master
? TBD ?
Chippi Intellivision ? TBD ?
Chip-8   26-Jan-98 TBD ? ?
Portable computers / Pocket computers
chip8 Sharp PC-1350
PC-1360
PC-2500
git TBD ?
CHIP8-100 TRS-80 Model 100 git TBD ? ?

Other devices[edit]

Name Platform(s) Latest Version Accuracy FLOSS Active Recommended
Mobile / ARM
Chip8   0.7.1 High
ChipChip   1.8.0 Mid
iPhone-Chip-8-Emulator   git TBD ~
C-Octo   git High
PalmChip8   1.0 TBD ?
DALE-8   git TBD [N 2] ?
Pico-CHIP8   git TBD ?
MeltChip BlackBerry PlayBook git TBD ?
Consoles
Chip8 Xbox One   ? Mid
Chip8x   v5 TBD ?
CHIP8 Emulator   2.2 Mid
Chippy   1.0 TBD
Chip 8 Emulator   1.0a TBD
Chip8-n64   git Mid
chip-64   git TBD ?
PsChip8   git Mid
Super Chip8x   git
ROM
Mid
CHIP8 TO SMD   2.0 Mid
CHIP-8 GENESIS   git TBD ?
NES-CHIP-8   git
ROM
High[N 3] [N 3]
Chip8-NX   git Mid ~
Chip8 Emulator   POC Low ? ~
CHIP8  
 
v1 Mid ? ?
Chip8-3DO   git Low-Mid ~
Whack-a-Mole   0.900 TBD ? ?
CrabEmu   0.2.0 TBD ?
SMS Chip-8 interpreter   git
0.21
TBD ?
CHIP-8 emulator   ? TBD ?
chipce8   git TBD ?
CHIP-F8   git Mid ?
Handhelds
Chip8me   1.0 TBD
DrChip 8   09/20/02 TBD
Chip-3DS   1.0
git
Mid ? ~
GB-8   git Mid
damaged chip8   git TBD ?
Vision-8 for Gameboy   1.0 TBD NC ?
OmniChip-8   git TBD ?
PSPChip8   1.0 Low ~
DreamChip   V4 Low
MicroCHIP   1.0 TBD ? ?
VITA-8   git TBD ? ?
CEightY   git
PND
Mid ?
Dingux-chip8   ? TBD ? ?
gpchip   ? TBD ? ?
Chips1   git TBD ?
Chip8Pd   git TBD ? ?
C8   0.2 TBD ? ?
EFCS   0.1 TBD ? ?
Chip8   ? TBD ?
Chip-8-Pokitto Pokitto git TBD ? ?
CHIP-8 mini   git TBD ?
Calculators
Chip8Emu   1.2.2 Mid
Schip8fx Casio AFX
Fx-9860
1.11.0 Mid ?
C8SALT TI-84 series git TBD
Chip-84   git TBD ?
Chip84CE   git TBD ?
Chip8-TI68k TI-68k git TBD ?
CHIP48 HP48GX
HP48SX
GX
SX
TBD
S-CHIP HP48SX 1.1 TBD NC
Vinegar TI-83
TI-83 Plus
1.1 TBD ?
CHIP-8 N0110 Upilson
git
TBD ? ?
Microcontrollers
8boy   git TBD ?
ESPboy CHIP8 ESPboy git TBD ?
ESP32TinyChip8 ESP32 git TBD ?
chip8-esp8266 ESP8266 git TBD ?
Tjipp8 PIC16F17xx git TBD ?
Chip-8 STM32 STM32 git TBD ?
chip8-stm32 STM32 git TBD ?
TIVA8 TM4C123 git TBD ?
ByteBoy MSP430 git TBD ? ?
Firmware
CHIP-8 UEFI   git TBD ?
GPCHIP Miyoo 0.0.1 TBD
PluginChip8   ? TBD ?
Fantasy computers/consoles
minimicro-chip8 MiniMicro git TBD ?
CHIP-8 Emulator   1.5 TBD
CHIP-80   Update 4 TBD
Chip-8 emulator Vircon32 ? TBD ?
Other
flipper-chip Flipper Zero git TBD
CHIP-8 console on FPGA TinyFPGA BX git TBD ?
ICED Potato ICE40UP5K git TBD ?
chip8swemu Game & Watch: Super Mario Bros git Mid

Other platforms[edit]

Name Platform(s) Latest Version Accuracy FLOSS Active Recommended
Web browsers
Octo   Website
git
High
Cadmium   Website
git
Cycle
Silicon8   Website
git
High
Chip8.js   Website
git
TBD ~
Flip8 Redux   NewGrounds TBD
Text editor
chip-8.nvim NeoVim git TBD ?
chip8.el Emacs git TBD ? ?
Game Engine / Mod
chip8emu-agk AppGameKit 2 git TBD ?
CHIP8-GM GameMaker git High-Mid
Godot CHIP-8 Emulator Godot (GDScript) git TBD ?
E2-CHIP-8-interpreter Garry's Mod git TBD ? ?
Chip8Unity Unity git TBD ?
Chip8Interpreter4Unity Unity git TBD ? ?
Blit-8 Minecraft 1.0 TBD ?
Megazeux CHIP-8 Emulator Megazeux ? TBD ? ?
Other
SuperCHIP emulator   git TBD ?
Chip-84 Rainmeter Edition Rainmeter git TBD ? ?
cl-chip8 Common Lisp git TBD ?

Extension support[edit]

Computer
Interpreter CHIP-8 S-CHIP XO-CHIP Other
Cadmium [6]
C-Octo
CubeChip-SDL [7]
JAXE [8]
chip8swemu
DSP [9]
shmip8
Vision-8
CHIP-8 Interpreter (DOS)
chip8-asm64-emu
OmniChip-8
CowChip
Chip8-DOS
Pin8
CHIP-8 emulator (KolibriOS)
CHIP-8 (ZealOS)
Emu OS
Crazy-8
MacVision-8
Chip8 (Amiga)
Chip-8 (Atari 8-bit)
Chip09
CHIP-OTTO
C64 Chip-8
Chip-8 Emulator (Commodore 64)
MoeCHIP-8 for C64
Vic-20 Chip-8 Emulator
CHIP-8 Simulator BBC/Master
Chippi
Chip-8 (RISC OS)
CHIP8-100
Mobile
Interpreter CHIP-8 S-CHIP XO-CHIP Other
ChipChip [10]
iPhone-Chip-8-Emulator
PalmChip8
DALE-8
Pico-CHIP8
MeltChip
Console
Interpreter CHIP-8 S-CHIP XO-CHIP Other
Chip8 Xbox One
Chip8x
CHIP8 Emulator (Wii U)
Chippy
Chip 8 Emulator (GameCube)
Chip8-n64
chip-64
PsChip8
Super-Chip8x
CHIP8 TO SMD
CHIP-8 GENESIS
NES-CHIP-8
Chip8-NX
Chip-8 emulator (PS4)
Chip8 (PS2/PS3)
Chip8-3DO
Whack-a-Mole
CrabEmu
CHIP-8 emulator (DreamCast)
CHIP-8 emulator (Saturn)
SMS Chip-8 interpreter
chipce8
CHIP-F8
Chip8me
DrChip 8
Chip-3DS
GB-8
damaged chip8
Chip8 Emulator (PSP)
DreamChip
MicroCHIP
VITA-8
CEightY
Dingux-Chip8
gpchip (Dingoo)
Chips1
Chip8Pd
C8
EFCS
Chip8 (Lynx)
Chip-8-Pokitto
CHIP-8 mini
Calculator
Interpreter CHIP-8 S-CHIP XO-CHIP Other
Chip8Emu
Schip8fx
C8SALT ~
Chip-84
Chip84CE
Chip8-TI68k
CHIP48
S-CHIP
Vinegar
CHIP-8 (N0110)
Microcontroller
Interpreter CHIP-8 S-CHIP XO-CHIP Other
8boy
ESPboy CHIP8
ESP32TinyChip8
chip8-esp8266
Tjipp8
Chip-8 STM32 [11]
CHIP 8 emulator (STM32)
TIVA8
ByteBoy
Firmware
Interpreter CHIP-8 S-CHIP XO-CHIP Other
CHIP-8 UEFI
GPCHIP (Miyoo)
PluginChip8
Fantasy Computer/Console
Interpreter CHIP-8 S-CHIP XO-CHIP Other
minimicro-chip8
CHIP-8 Emulator (PICO-8)
CHIP-80
Chip-8 emulator (Vircon32)
Other
Interpreter CHIP-8 S-CHIP XO-CHIP Other
chip8 (PC-1350/PC-1360/PC-2500)
flipper-chip
CHIP-8 console on FPGA
ICED POTATO
Browser
Interpreter CHIP-8 S-CHIP XO-CHIP Other
Octo
Silicon8 ~ ~
Chip8.js
Flip8 Redux
Program add-on/plugin
Interpreter CHIP-8 S-CHIP XO-CHIP Other
chip-8.nvim ~ ~
chip8.el
chip8emu-agk
CHIP8-GM
Godot CHIP-8 Emulator
E2-CHIP-8-interpreter
Chip8Unity
Chip8Interpreter4Unity
Blit-8
Megazeux CHIP-8 Emulator ~
SuperCHIP emulator
Chip-84 Rainmeter Edition
cl-chip8

Descriptions[edit]

Multi-system (Includes PC)
  • Cadmium The GUI is hard to navigate, many emulation options, Best CHIP-8 extension support, Great debugger. (PC, Web)
  • C-Octo Simple GUI to enable compatibility with CHIP-8, S-CHIP and XO-CHIP. (PC, Raspberry Pi)
  • CubeChip-SDL Drag and drop to load ROMs. (PC)
  • JAXE Good selections of options for emulation, Defaults to S-CHIP mod. (PC, Libretro)
  • chip8swemu Simple GUI with, easy to navigate. (PC, G&W)
  • DSP Hard to use and run games.(PC)
  • shmip8 Needs ROM to be specified in command line/terminal. (PC)
  • Vision-8 Blurry resolution scaling (Windows). (PC, Gameboy, Coleco, Amiga)
  • CHIP-8 Interpreter nothing notable, command line/Terminal. (DOS)
  • chip8-asm64-emu nothing notable, command line/Terminal. (Linux)
  • OmniChip-8 Needs ROM to be specified in command line/terminal. (PC)
  • CowChip Sensitive to illegal function calls and crashes due to them. (PC)
  • Chip8-DOS nothing notable, command line/Terminal. (DOS)
  • Pin8 Placeholder text. (Haiku)
  • CHIP-8 Emulator Placeholder text. (KolibriOS)
  • CHIP-8 Placeholder text. (ZealOS)
  • Emu OS Placeholder text. (x86 CPU)
Web
  • Octo IDE and interpreter, multiple extension support, compatibility profile for specific extensions (customizable). (Web)
  • Silicon8 allows selecting supported extensions (original, S-CHIP and XO-CHIP) and emulation speed. (Web)
  • Chip8.js Can't load custom CHIP-8 binaries/ROMs, new instance has to be made to add games. (Web)
  • Flip8 Redux Can't load custom CHIP-8 binaries/ROMs. (Web)
Computers (PPC, m64k)
  • Crazy-8: Placeholder text. (Classic Mac OS)
  • MacVision-8: Placeholder text. (Classic Mac OS)
  • Chip8: Placeholder text (Amiga)
Home computers
  • Chip-8 Placeholder text. (Atari 8-bit)
  • Chip09 Needs recompilation for custom ROMs, using LWTOOLS. (Tandy CoCo 2, Dragon 32/64)
  • CHIP-OTTO Includes games, no ROM selection interface (press J to go to next game). Can load games from a different tape. (Amiga, ColecoVision, ADAM)
  • C64 Chip-8 Placeholder text. (Commodore 64)
  • OmniChip-8 Placeholder text. (Commodore 64)
  • Chip-8 Emulator Placeholder text (Commodore 64)
  • MoeCHIP-8 for C64 Needs recompilation for custom ROMs, using KickAssembler. (Commodore 64)
  • Vic-20 Chip-8 Emulator Separate floppy disk for games, instructions in manual for custom ROMs. (VIC-20)
  • CHIP-8 Simulator BBC/Master Placeholder text. (BBC Micro, BBC Master)
  • Chippi Comes bundled with a program to convert CHIP-8 ROMs to be able to run on tapes. (Intellivision)
  • Chip-8 Placeholder text. (RISC OS)
Portable computers
  • CHIP8-100 Placeholder text. (TRS-80 Model 100)
Mobile / ARM
  • ChipChip Placeholder text. (Android)
  • Chip8 Placeholder text. (Android)
  • iPhone-Chip-8-Emulator Placeholder text. (iOS)
  • PalmChip8 Placeholder text. (Palm)
  • DALE-8 Placeholder text. (KaiOS)
  • Pico-CHIP8 Placeholder text. (Raspberry Pi Pico)
  • MeltChip Placeholder text. (BlackBerry PlayBook)
Console
  • Chip8 Xbox One Placeholder text. (Xbox one)
  • Chip8x Good interface. (Xbox)
  • CHIP8 Emulator Placeholder text (Wii U)
  • Chippy Very simple interface. Loads ROMs from CHIP8 folder in your storage device. (Wii)
  • Chip 8 Emulator Placeholder text. (GameCube)
  • Chip8-n64 Needs recompilation for custom ROMs, using Libdragon. (Nintendo 64)
  • chip-64 Doesn't work in tested emulators. Needs recompilation for custom ROMs, using bass. (Nintendo 64)
  • PsChip8 Needs recompilation for custom ROMs, using PSYQ SDK and GNU Make (PlayStation 1)
  • Super Chip8x Needs recompilation for custom ROMs, using asar. (Super Nintendo)
  • CHIP8 TO SMD Placeholder text. (Mega Drive)
  • CHIP-8 GENESIS Placeholder text. (Genesis)
  • NES-CHIP-8 Needs recompilation for custom ROMs, using cc65. (Nintendo Entertainment System)
  • Chip8-NX Placeholder text. (Switch)
  • Chip8 Emulator Placeholder text. (PlayStation 2)
  • CHIP8 Placeholder text. (PlayStation 2, PlayStation 3)
  • Chip8-3DO Needs recompilation for custom ROMs, using 3DODev. (3DO)
  • Whack-a-Mole Placeholder text. (Dreamcast)
  • CrabEmu Placeholder text. (Dreamcast)
  • SMS Chip-8 interpreter Placeholder text. (Master System)
  • CHIP-8 emulator Placeholder text, (Saturn)
  • chipce8 Needs recompilation for custom ROMs, using PCEAS. (PC Engine / Turbo Grafx 16)
  • CHIP-F8 Needs recompilation for custom ROMs, using dasm. (Channel F)
Handheld console
  • Chip8me Placeholder text. (Nintendo DS)
  • DrChip 8 Placeholder text. (Game Boy Advance)
  • Chip-3DS Placeholder text. (3DS)
  • GB-8 Basic ROM selection interface. Needs recompilation for custom ROMs, using RGBDS. (Game Boy)
  • damaged chip8 Uses SELECT to switch ROMs. Needs recompilation for custom ROMs, using RGBDS. (Game Boy)
  • Vision-8 for Gameboy Needs recompilation for custom ROMs, using GBDK. (Game Boy)
  • OmniChip-8 Needs recompilation for custom ROMs, using z88dk(Game Boy)
  • PSPChip8 Basic ROM selection interface. (PlayStation Portable)
  • DreamChip Placeholder text. (PlayStation Portable)
  • MicroCHIP Simple ROM selection. (PlayStation Vita)
  • VITA-8 Placeholder text. (PlayStation Vita)
  • CEightY Placeholder text. (Pandora)
  • Dingux-chip8 Placeholder text. (Dingoo)
  • gpchip Placeholder text. (Dingoo)
  • Chips1 Placeholder text. (WonderSwan)
  • Chip8Pd Placeholder text. (Playdate)
  • C8 Placeholder text. (GP32)
  • EFCS Placeholder text. (GP2X)
  • Chip8 Placeholder text. (Lynx)
  • Chip-8-Pokitto Placeholder text. (Pokitto)
  • CHIP-8 mini Needs recompilation for custom ROMs, using PMAS. (Pokemon Mini)
Calculator
  • Chip8Emu Placeholder text. (TI-Nspire)
  • schip8fx Placeholder text. (Casio AFX, Fx-9860)
  • C8SALT Placeholder text. (TI-84+ CE)
  • Chip-84 Placeholder text. (TI-84+ CE)
  • Chip84CE Placeholder text. (TI-84+ CE)
  • Chip8-TI68k Placeholder text. (TI68k)
  • CHIP48 Placeholder text. (HP48GX, GP48SX)
  • S-CHIP Placeholder text. (49G)
  • Vinegar Placeholder text. (TI-83, TI-83+)
  • CHIP-8 Placeholder text. (N0110)
Microcontrollers
  • 8boy Placeholder text. (Arduino)
  • ESPboy CHIP8 Placeholder text. (ESPboy)
  • ESP32TinyChip8 Placeholder text. (ESP32)
  • chip8-esp8266 Placeholder text. (ESP8266)
  • Tjipp8 Placeholder text. (PIC16F17xx)
  • Chip-8 STM32 Placeholder text. (STM32)
  • chip8-stm32 Placeholder text. (STM32)
  • TIVA8 Placeholder text. (TM4C123)
  • ByteBoy Placeholder text. (MSP430)
Firmware
  • CHIP-8 UEFI Needs recompilation for custom ROMs, using EDK II. (UEFI)
  • GPCHIP Placeholder text. (Miyoo)
  • PluginChip8 Due to systems having less buttons than the original CHIP-8 key mapping there is a custom system for changing the key mapping. (Rockbox)
Fantasy consoles/computers
  • minimicro-chip8 Placeholder text. (MiniMicro)
  • CHIP-8 Emulator Can't load custom CHIP-8 binaries/ROMs. (PICO-8)
  • CHIP-80 Can't load custom CHIP-8 binaries/ROMs. (TIC-80)
  • Chip-8 emulator Custom ROMs need to use this ROM conversion tool. (Vircon32)
Other
  • chip8 Placeholder text. (Sharp PC-1350, PC-1360, PC-2500)
  • flipper-chip does not support any controls/input.[12] (Flipper Zero)
  • CHIP-8 console on FPGA Placeholder text. (TinyFPGA BX)
  • ICED Potato Placeholder text. (ICE40UP5K)
  • Chip-84 Rainmeter Edition is blurry when set to a resolution higher than the original CHIP-8 due to Rainmeter not supporting nearest neighbor pixel interpolation. (Rainmeter)

See also[edit]

External links[edit]

References[edit]

Notes
  1. Only available outside of Windows and Linux as a libretro core (e.g., RetroArch).
  2. DALE-8 is public domain
  3. 3.0 3.1 most accuracy tests show that it is accurate, other tests can't be done due to controller inputs. Controller inputs are mapped to the Dpad and some games and demos are unplayable due to this.