Files
awesome-awesomeness/html/chip8.html
2025-07-18 22:22:32 +02:00

225 lines
9.6 KiB
HTML
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
<h1 id="awesome-chip-8-awesome">Awesome CHIP-8 <a
href="https://awesome.re"><img src="https://awesome.re/badge-flat.svg"
alt="Awesome" /></a></h1>
<p><a
href="https://chip-8.github.io"><img src="c8.png" align="right" width="100"></a></p>
<blockquote>
<p>Virtual computer game machine from the 70s</p>
</blockquote>
<p>A curated list of awesome CHIP-8 resources, tools, documentation,
related projects and open source ROMs.</p>
<p>Created in 1977, <a
href="https://en.wikipedia.org/wiki/CHIP-8">CHIP-8</a> is the original
fantasy console. Initially designed to ease game development for the
COSMAC VIP kit computer, it has enjoyed several revivals over the
decades for new and exciting platforms. Today, creating a CHIP-8
implementation is a rite of passage for anyone interested in learning
about emulation.</p>
<p>To add something to this list, please see the <a
href="CONTRIBUTING.md">contribution guidelines</a>.</p>
<h2 id="contents">Contents</h2>
<ul>
<li><a href="#community">Community</a></li>
<li><a href="#documentation">Documentation</a></li>
<li><a href="#emulatorinterpreter-development">Emulator/interpreter
development</a>
<ul>
<li><a href="#testing">Testing</a></li>
</ul></li>
<li><a href="#emulatorsinterpreters">Emulators/interpreters</a></li>
<li><a href="#software-development">Software development</a>
<ul>
<li><a href="#tools">Tools</a></li>
<li><a href="#guides-and-snippets">Guides and snippets</a></li>
<li><a href="#postmortems">Postmortems</a></li>
</ul></li>
<li><a href="#games">Games</a></li>
</ul>
<h2 id="community">Community</h2>
<ul>
<li><a href="https://groups.io/g/cosmacelf">COSMAC Elf Group</a> - Group
for discussion of the COSMAC Elf, as well as anything else RCA
1802-related, including COSMAC VIP and CHIP-8.</li>
<li><a href="https://discordapp.com/invite/Gf7cP3w">#chip8 channel on
the Emulation Development Discord server</a> - Chat for discussing
development of CHIP-8 emulators/interpreters.</li>
<li><a href="http://octojam.com/">OctoJam</a> - An Octo-centric game jam
held every October.</li>
</ul>
<h2 id="documentation">Documentation</h2>
<ul>
<li><a
href="https://github.com/mattmikolay/chip-8/wiki/Mastering-CHIP%E2%80%908">Mastering
CHIP-8</a> - In-depth overview of the CHIP-8 instruction set.</li>
<li><a href="http://johnearnest.github.io/Octo/docs/chip8ref.pdf">CHIP-8
Instruction Set</a> - Quick cheat sheet for CHIP-8 instructions.</li>
<li><a
href="https://github.com/mattmikolay/chip-8/wiki/CHIP%E2%80%908-Instruction-Set">CHIP-8
Instruction Set</a> - A comprehensive instruction/opcode table.</li>
<li><a
href="https://github.com/mattmikolay/chip-8/wiki/CHIP%E2%80%908-Technical-Reference">CHIP-8
Technical Reference</a> - Overview of how the CHIP-8 interpreter
works.</li>
<li><a
href="https://github.com/mattmikolay/chip-8/wiki/CHIP%E2%80%908-Extensions-Reference">CHIP-8
Extensions Reference</a> - A list of CHIP-8 variants and
extensions.</li>
<li><a
href="https://laurencescotford.com/chip-8-on-the-cosmac-vip-index/">Chip-8
on the COSMAC VIP</a> - An in-depth disassembly and analysis of the
original CHIP-8 interpreter on the COSMAC VIP.</li>
<li><a
href="https://github.com/Chromatophore/HP48-Superchip">HP48-Superchip</a>
- An in-depth look at CHIP48 and Super-CHIP for the HP48 calculators,
and modifications to make them CHIP-8 compatible.</li>
<li><a
href="http://johnearnest.github.io/Octo/docs/XO-ChipSpecification.html">Octo
Extensions</a> - Specification for Octos XO-CHIP extension.</li>
</ul>
<h2 id="emulatorinterpreter-development">Emulator/interpreter
development</h2>
<ul>
<li><a
href="http://www.multigesture.net/articles/how-to-write-an-emulator-chip-8-interpreter/">How
to write an emulator (CHIP-8 interpreter)</a> - A guide to developing a
CHIP-8 interpreter in C/C++.</li>
<li><a
href="http://www.emulator101.com/introduction-to-chip-8.html">Emulator
101: CHIP-8</a> - A guide to developing a CHIP-8 disassembler and
interpreter in C.</li>
<li><a
href="https://jackson-s.me/2019/07/13/Chip-8-Instruction-Scheduling-and-Frequency.html">Chip
8 Instruction Scheduling and Frequency</a> - Timing of CHIP-8
instructions on the COSMAC VIP.</li>
<li><a
href="https://tobiasvl.github.io/blog/write-a-chip-8-emulator/">High-level
guide to making a CHIP-8 emulator</a> - A guide for developing a CHIP-8
interpreter, without code.</li>
</ul>
<h3 id="testing">Testing</h3>
<ul>
<li><a
href="https://github.com/corax89/chip8-test-rom">chip8-test-rom</a> -
corax89s CHIP-8 test program, which tests most instructions for correct
(Super-CHIP compliant) behavior.</li>
<li><a href="https://github.com/Timendus/chip8-test-suite">CHIP-8 test
suite</a> - Timendus collection of tests, including an improved version
of corax89s test rom, a test for the behaviour of the flags and a
CHIP-8 / Super-CHIP / XO-CHIP quirks test.</li>
<li><a
href="https://github.com/mattmikolay/chip-8/tree/master/delaytimer">Delay
timer test</a> - Test program that checks the delay timers
behavior.</li>
<li><a
href="https://github.com/mattmikolay/chip-8/tree/master/randomnumber">Random
number test</a> - Test program that checks the spread and mask for
random number generation.</li>
</ul>
<h2 id="emulatorsinterpreters">Emulators/interpreters</h2>
<ul>
<li><a href="http://johnearnest.github.io/Octo/">Octo</a> - An IDE for
development of CHIP-8, Super-CHIP and XO-Chip games.</li>
<li><a href="https://www.emma02.hobby-site.com/">Emma02</a> - An
emulator for many old microcomputers, including COSMAC VIP, Telmac 1800
and ETI 660, which ran early CHIP-8 interpreters (which are included in
the emulator).</li>
<li><a href="https://github.com/Ersanio/Super-Chip8x">Super-Chip8x</a> -
CHIP-8 emulator for the SNES.</li>
<li><a href="https://github.com/pwmarcz/fpga-chip8">CHIP-8 console on
FPGA</a> - A CHIP-8 emulator for the TinyFPGA BX chip.</li>
<li><a href="http://benryves.com/bin/vinegar/">Vinegar</a> -
CHIP-8/Super-CHIP interpreter for TI-83 (Plus) calculators.</li>
<li><a
href="https://lowresnx.inutilis.com/topic.php?id=1648">LowResNX</a> -
CHIP-8 interpreter and debugger programmed in BASIC inside another retro
fantasy console.</li>
</ul>
<h2 id="software-development">Software development</h2>
<h3 id="tools">Tools</h3>
<ul>
<li><a href="http://github.com/johnearnest/Octo/">Octo</a> - A
high-level assembler for CHIP-8, Super-CHIP and XO-CHIP, complete with
an environment for testing programs, and tools for sharing your
creations.</li>
<li><a href="https://github.com/wernsey/chip8">wernsey chip8</a> - A
CHIP-8 assembler/disassembler.</li>
<li><a href="http://beyondloom.com/tools/ezbake.html">EZ-Bake
Animator</a> - A graphics preparation tool that creates XOR-ed
animations.</li>
<li><a href="http://beyondloom.com/tools/ezwriter.html">EZ-Writer</a> -
A tool for converting text into CHIP-8 sprites.</li>
<li><a href="http://beyondloom.com/tools/ezpack.html">EZ-Pack</a> - An
image slicing/repaletting tool.</li>
<li><a
href="http://johnearnest.github.io/Octo/tools/Chipify/">Chipify</a> - A
script that filters and encodes mono-channel WAV audio to XO-CHIP
audio.</li>
<li><a href="https://github.com/jdeeny/octofont/">octofont</a> - Convert
TrueType (ttf) fonts to Octo code for CHIP-8.</li>
</ul>
<h3 id="guides-and-snippets">Guides and snippets</h3>
<ul>
<li><a href="https://johnearnest.github.io/Octo/docs/Manual.html">Octo
manual</a> - The manual for Octo.</li>
<li><a
href="http://johnearnest.github.io/Octo/docs/BeginnersGuide.html">A
Beginners Guide to Programming with Chip8</a> - An introductory guide
to CHIP-8 programming in Octo.</li>
<li><a
href="http://johnearnest.github.io/Octo/docs/IntermediateGuide.html">An
Intermediate Guide to Game Development with Chip8</a> - Remaking the
Atari 2600 game “Outlaw” for CHIP-8 in Octo.</li>
<li><a
href="http://johnearnest.github.io/Octo/docs/Chip8%20Programming.html">Chip8
Programming Techniques</a> - Many different programming tips for
CHIP-8.</li>
<li><a
href="http://johnearnest.github.io/Octo/docs/MetaProgramming.html">Octo
Metaprogramming Cookbook</a> - How to use Octos assembly directives for
meta-programming.</li>
<li><a
href="http://johnearnest.github.io/Octo/docs/SuperChip.html">Mastering
SuperChip</a> - How to make games compatible with CHIP-8 and Super-CHIP,
as well as some Super-CHIP specific techniques.</li>
<li><a
href="https://johnearnest.github.io/Octo/docs/Sorting.html">Adventures
in Sorting</a> - Implementing efficient sorting algorithms in Octo for
CHIP-8.</li>
<li><a
href="https://github.com/jdeeny/chip8-multiply">chip8-multiply</a> -
Multiplication routines for CHIP-8, written in Octo.</li>
</ul>
<h3 id="postmortems">Postmortems</h3>
<p>Postmortems detailing the development of specific games, written by
the developers.</p>
<ul>
<li><a
href="http://johnearnest.github.io/Octo/docs/EatyTheAlien.html">Inside
Eaty the Alien</a></li>
<li><a href="http://www.awfuljams.com/octojam-ii/games/octopeg">Octopeg
Post Mortem</a></li>
<li><a
href="https://abitoutofplace.wordpress.com/2015/05/02/cosmaccalc-the-cosmac-vip-s-place-in-spreadsheet-history/">CosmacCalc:
The COSMAC VIPs place in Spreadsheet History</a></li>
<li><a
href="http://johnearnest.github.io/Octo/docs/CaveExplorer.html">Inside
Cave Explorer</a></li>
<li><a
href="http://johnearnest.github.io/Octo/docs/BlackRainbow.html">Inside
Black Rainbow</a></li>
<li><a
href="https://tobiasvl.itch.io/mini-lights-out/devlog/102679/postmortem-mini-lights-out">Postmortem:
Mini Lights Out</a></li>
</ul>
<h2 id="games">Games</h2>
<ul>
<li><a href="https://johnearnest.github.io/chip8Archive/">CHIP-8
Archive</a> - A collection of public domain (CC0) games, all playable
online.</li>
<li><a href="https://github.com/mattmikolay/chip-8">A collection of
CHIP-8 programs and documentation</a> - Matt Mikolays games, programs
and documentation.</li>
</ul>
<p><a href="https://github.com/tobiasvl/awesome-chip-8">chip8.md
Github</a></p>