An open API service indexing awesome lists of open source software.

https://github.com/frederiktobner/chip-8

Simple CHIP-8 emulator written in C
https://github.com/frederiktobner/chip-8

assembler chip8 emulator interpreter programming-language virtual-machine

Last synced: about 1 month ago
JSON representation

Simple CHIP-8 emulator written in C

Awesome Lists containing this project

README

          

# CHIP-8

[![Build](https://github.com/FrederikTobner/CHIP-8/actions/workflows/build.yml/badge.svg)](https://github.com/FrederikTobner/CHIP-8/actions/workflows/build.yml)
[![Tests](https://github.com/FrederikTobner/CHIP-8/actions/workflows/tests.yml/badge.svg)](https://github.com/FrederikTobner/CHIP-8/actions/workflows/tests.yml)
[![Analyze](https://github.com/FrederikTobner/CHIP-8/actions/workflows/codeql.yml/badge.svg)](https://github.com/FrederikTobner/CHIP-8/actions/workflows/codeql.yml)
> **NOTE**: 🚧 Under active development. 🚧

Simple [CHIP-8](https://en.wikipedia.org/wiki/CHIP-8) emulator written in C, with a custom assembly language.

![Breakout game](./assets/Breakout.png)

## Table of Contents

* [Dependencies](#dependencies)
* [License](#license)

## Key concepts

1. Programming in binary is quite complex, therefor we provide an assembly language
2. The assembly language should stay close to the opcode's actual representation in memory

## Dependencies

The emulator has the following dependencies

* [SDL 2.0](https://github.com/libsdl-org/SDL) a cross-platform development library designed to provide low level access to audio, keyboard, mouse, joystick, and graphics hardware.

## IDE Integration

There is a plugin for vim and neovim. Another alternative is to use my own text editor YATE that has built in language support.

[![Vim](https://github-readme-stats-beryl-phi.vercel.app/api/pin/?username=FrederikTobner&repo=chip8.vim&theme=dark)](https://github.com/FrederikTobner/chip8.vim)
[![YATE](https://github-readme-stats-beryl-phi.vercel.app/api/pin/?username=FrederikTobner&repo=YATE&theme=dark)](https://github.com/FrederikTobner/YATE)

## License

This project is licensed under the [GNU General Public License](LICENSE)