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 since ended was created. 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.

Interpreters[edit]

Computers[edit]

Name Platform(s) Latest Version Libretro Core Accuracy FLOSS Active Recommended
PC / x86
Cadmium Windows Linux macOS 1.1.8 Cycle
C-Octo Windows Linux macOS git High
CubeChip-SDL Windows Linux macOS git High
JAXE Windows Linux [N 1] git
libretro core
High
chip8swemu Windows Linux git Mid
DSP Windows Linux macOS git Mid
shmip8 Windows Linux git Mid ~
Vision-8 Windows MS-DOS UNIX 1.0 Mid NC ~
CHIP-8 Interpreter MS-DOS git Mid ~
chip8-asm64-emu Linux git Mid
OmniChip-8 Windows Linux git Low
CowChip Windows 9x Windows 3.1 0.2 Low-Mid
Chip8-DOS MS-DOS git Low-Mid
Pin8 Haiku git TBD NC ?
CHIP-8 Emulator KolibriOS 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 Classic Mac OS 1.0.4 TBD ?
MacVision-8 Classic Mac OS 1.0 TBD NC ?
Chip8 AmigaOS ? TBD NC ?
Vision-8 AmigaOS 1.0 TBD NC ?
Home computers
Chip-8 Atari 8-bit git TBD ?
Chip09 Tandy CoCo 2
Dragon 32/64
git TBD ? ?
Vision-8 ColecoVision Coleco ADAM 1.0 TBD NC ?
CHIP-OTTO ZX Spectrum
ZX Spectrum Next
Cambridge Z88
? TBD ?
C64 Chip-8 Commodore 64 git TBD ?
OmniChip-8 Commodore 64 git TBD ?
Chip-8 Emulator Commodore 64 ? TBD ?
MoeCHIP-8 for C64 Commodore 64 git TBD ? ?
Vic-20 Chip-8 Emulator VIC-20 1.11 TBD ?
CHIP-8 Simulator BBC/Master BBC Micro
BBC Master
? TBD ?
Chippi Intellivision ? TBD ?
Chip-8 RiscOS 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 Android 0.7.1 High
ChipChip Android 1.8.0 Mid
iPhone-Chip-8-Emulator iOS git TBD ~
C-Octo Linux ARM git High
PalmChip8 PalmOS 1.0 TBD ?
DALE-8 KaiOS git TBD [N 2] ?
Pico-CHIP8 Linux ARM git TBD ?
MeltChip BlackBerry PlayBook git TBD ?
Consoles
Chip8 Xbox One Xbox One ? Mid
Chip8x Xbox v5 TBD ?
CHIP8 Emulator Wii U 2.2 Mid
Chippy Wii 1.0 TBD
Chip 8 Emulator GameCube 1.0a TBD
Chip8-n64 Nintendo 64 git Mid
chip-64 Nintendo 64 git TBD ?
PsChip8 PlayStation git Mid
Super Chip8x Super Nintendo git
ROM
Mid
CHIP8 TO SMD Genesis 2.0 Mid
CHIP-8 GENESIS Genesis git TBD ?
NES-CHIP-8 Nintendo Entertainment System git
ROM
High[N 3] [N 3]
Chip8-NX Switch git Mid ~
Chip8 Emulator PlayStation 4 POC Low ? ~
CHIP8 PlayStation 3
PlayStation 2
v1 Mid ? ?
Chip8-3DO 3DO git Low-Mid ~
Whack-a-Mole Dreamcast 0.900 TBD ? ?
CrabEmu Dreamcast 0.2.0 TBD ?
SMS Chip-8 interpreter Master System git
0.21
TBD ?
CHIP-8 emulator Saturn ? TBD ?
chipce8 PC Engine git TBD ?
CHIP-F8 Channel F git Mid ?
Handhelds
Chip8me Nintendo DS 1.0 TBD
DrChip 8 GameBoy Advance 09/20/02 TBD
Chip-3DS Nintendo 3DS 1.0
git
Mid ? ~
GB-8 GameBoy git Mid
damaged chip8 GameBoy git TBD ?
Vision-8 for Gameboy GameBoy 1.0 TBD NC ?
OmniChip-8 GameBoy git TBD ?
PSPChip8 PSP 1.0 Low ~
DreamChip PSP V4 Low
MicroCHIP Vita 1.0 TBD ? ?
VITA-8 Vita git TBD ? ?
CEightY Pandora git
PND
Mid ?
Dingux-chip8 Dingoo ? TBD ? ?
gpchip Dingoo ? TBD ? ?
Chips1 WonderSwan git TBD ?
Chip8Pd Playdate git TBD ? ?
C8 GP32 0.2 TBD ? ?
EFCS GP2X 0.1 TBD ? ?
Chip8 Lynx ? TBD ?
Chip-8-Pokitto Pokitto git TBD ? ?
CHIP-8 mini Pokemon Mini git TBD ?
Calculators
Chip8Emu TI-Nspire 1.2.2 Mid
Schip8fx Casio AFX
Fx-9860
1.11.0 Mid ?
C8SALT TI-84 series git TBD
Chip-84 TI84+CE git TBD ?
Chip84CE TI84+CE git TBD ?
Chip8-TI68k TI-68k git TBD ?
CHIP48 HP48GX
HP48SX
GX
SX
TBD
S-CHIP 49G S-CHIP 1.1 TBD
Vinegar TI-83
TI-83 Plus
1.1 TBD ?
CHIP-8 N0110 Upilson
git
TBD ? ?
Microcontrollers
8boy Arduino 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 UEFI git TBD ?
GPCHIP Miyoo 0.0.1 TBD
PluginChip8 RockBox ? TBD ?
Fantasy computers/consoles
minimicro-chip8 MiniMicro git TBD ?
CHIP-8 Emulator PICO-8 1.5 TBD
CHIP-80 TIC-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 Web Website
git
High
Cadmium Web Website
git
Cycle
Silicon8 Web Website
git
High
Chip8.js Web Website
git
TBD ~
Flip8 Redux Web 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 Java 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.