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.2.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.2.0-py3-none-any.whl (9.9 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: chipmul8-0.2.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.2.0.tar.gz
Algorithm Hash digest
SHA256 7b644525ce8f287f54ecd4053f08b495e41f7360521ef5e9cc0acc11f83babad
MD5 3fcf7419b9987e8b3d58c71ae81a9e9c
BLAKE2b-256 5186ab7073c7111da378091cd0fc4492c257517c91ac8a30539fc9a6ec6b3f2c

See more details on using hashes here.

File details

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

File metadata

  • Download URL: chipmul8-0.2.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.2.0-py3-none-any.whl
Algorithm Hash digest
SHA256 808189c136ff01cb00169dbe4f127b8f8e80563ee6319a5ee2ed3a7b68bf9421
MD5 8ae362b92d056069509686b1aa7fa435
BLAKE2b-256 83fad766a8c85f73379fed1fb14fee8abffdb3514b43b169c4c241544d923394

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