Skip to main content

A simple CHIP-8 emulator written in Python.

Project description

chipmul8

CHIP-8 is an interpreted programming language, developed by Joseph Weisbecker. It was initially used on the COSMAC VIP and Telmac 1800 8-bit microcomputers in the mid-1970s. CHIP-8 programs are run on a CHIP-8 virtual machine. It was made to allow video games to be more easily programmed for these computers. CHIP-8

This project aims to replicate the CHIP-8 interpreter using Python, in the hopes that we can play Pong as it ran on the CHIP-8 virtual machine in the 1970's.

Installation

Developer Installation

  1. Download / clone the repo
  2. In the root of the repository run: make bootstrap
    • This will create a virtual environment and install the required dependencies for the project.

Execution

  1. Run the chipmul8 command while providing a path to a chip8 rom:

    $ chipmul8 /path/to/rom/pong.c8

    chipmul8 GUI

  2. The '--invert_colors' switch can also be provided to invert the color palette of the display

    $ chipmul8 /path/to/rom/pong.c8 --invert_colors

    chipmul8 GUI

References

The primary reference for this project was Cowgod's Chip-8 Technical Reference v1.0 This technical reference is incredibly detailed, the emulator would not have taken shape without it.

For testing corax89's test roms were hugely helpful.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

chipmul8-0.1.0.tar.gz (99.4 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

chipmul8-0.1.0-py3-none-any.whl (9.9 kB view details)

Uploaded Python 3

File details

Details for the file chipmul8-0.1.0.tar.gz.

File metadata

  • Download URL: chipmul8-0.1.0.tar.gz
  • Upload date:
  • Size: 99.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: uv/0.10.9 {"installer":{"name":"uv","version":"0.10.9","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

File hashes

Hashes for chipmul8-0.1.0.tar.gz
Algorithm Hash digest
SHA256 8e0f5cdbce3e157f2e6cd6ca0a284f1479b1fbc59a2259d0c8ffa7abad730a5f
MD5 5f85096984a2af2c12d2ec89f9aff23e
BLAKE2b-256 b2af91060a6cd6e29865a5aa46403226080b52fbd00786112b57b607bcf8404c

See more details on using hashes here.

File details

Details for the file chipmul8-0.1.0-py3-none-any.whl.

File metadata

  • Download URL: chipmul8-0.1.0-py3-none-any.whl
  • Upload date:
  • Size: 9.9 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: uv/0.10.9 {"installer":{"name":"uv","version":"0.10.9","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

File hashes

Hashes for chipmul8-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 c366606bbb7b794599e7a133cf6caa583a9769999f32ef5f868d3e3bef5fe498
MD5 db6a3bf8cd7ec0edf78378b37fd62238
BLAKE2b-256 fa51e65765dce3608b245f47eac79ea0f823880c46f3b96153cdb864142c3414

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page