Skip to main content

A CHIP-8 emulator ecosystem.

Project description

pychip8

A modular, extensible CHIP-8 emulator ecosystem written in modern Python.

Note: This is a remake of an old project of mine, chip-8-python, which aimed to do the same thing but was honestly pretty poorly made. It was monolithic and clunky, and this one is built to be an actual Python package.

Installation

Requires Python 3.11+.

git clone https://github.com/las-r/pychip8
cd pychip8
pip install -e .

Usage

pychip8 path/to/rom.ch8

Config

Flags

Flags override the config file.

Flag Description
--cpf <int> Cycles per frame (default: 10)
--scale <int> Display scale (default: 12)
--volume <float> Audio volume 0.0–1.0 (default: 0.2)
--cosmac-shift / --no-cosmac-shift COSMAC VIP shift quirk
--cosmac-jump / --no-cosmac-jump COSMAC VIP jump quirk
--cosmac-i-add / --no-cosmac-i-add COSMAC VIP index add quirk
--cosmac-font / --no-cosmac-font COSMAC VIP font quirk
--cosmac-ls / --no-cosmac-ls COSMAC VIP load/store quirk
--vf-reset / --no-vf-reset Reset VF after logic instructions

File

On first run, a default config is created at:

  • Windows: C:/Users/YOUR_USER_PROFILE/AppData/Local/pychip8/
  • macOS: ~/Library/Application Support/pychip8/
  • Linux: ~/.config/pychip8/

Edit this file to set your preferred defaults.

Keypad

The CHIP-8 hex keypad maps to the left side of a QWERTY keyboard:

CHIP-8    Keyboard
1 2 3 C   1 2 3 4
4 5 6 D   Q W E R
7 8 9 E   A S D F
A 0 B F   Z X C V

Credits

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

chip8_py-0.1.1.tar.gz (7.1 kB view details)

Uploaded Source

Built Distribution

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

chip8_py-0.1.1-py3-none-any.whl (8.9 kB view details)

Uploaded Python 3

File details

Details for the file chip8_py-0.1.1.tar.gz.

File metadata

  • Download URL: chip8_py-0.1.1.tar.gz
  • Upload date:
  • Size: 7.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for chip8_py-0.1.1.tar.gz
Algorithm Hash digest
SHA256 5086933934081e9692839e7814967a7134033ec99a7bfc9e5c45d1193885df81
MD5 bbfc0a19e5639f478d0dccc4333d5a61
BLAKE2b-256 92da43569950e50134f289504e8dd0743b89ad2adad4566eb4b29476ead51f32

See more details on using hashes here.

Provenance

The following attestation bundles were made for chip8_py-0.1.1.tar.gz:

Publisher: publish.yml on las-r/py-chip-8

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file chip8_py-0.1.1-py3-none-any.whl.

File metadata

  • Download URL: chip8_py-0.1.1-py3-none-any.whl
  • Upload date:
  • Size: 8.9 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for chip8_py-0.1.1-py3-none-any.whl
Algorithm Hash digest
SHA256 400d0af0c0fbe0fbed1931e4330c2b4db3cea5984a4bb4731e00ac94b82febe9
MD5 c3a24210992e016b44697caa55a2023b
BLAKE2b-256 dfd5191b709f16e155fddbf5545ac5ae42c5db7aa89b8122154080fa1e11ddd7

See more details on using hashes here.

Provenance

The following attestation bundles were made for chip8_py-0.1.1-py3-none-any.whl:

Publisher: publish.yml on las-r/py-chip-8

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

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