Giter Site home page Giter Site logo

py-chip-8's Introduction

PY-CHIP-8

Setup

Ensure you have python version 3, pip and virtualenv available in your environment.

To setup the project, run:

virtualenv -p $(which python) env
source env/bin/activate
pip install -r requirements.txt

For usage instructions, run:

./app.py -h

Project motivation

CHIP-8 is a simple virtual machine, used primarily for running simple games on old computers. It is also the de facto "first emulator project". Seeing as it has never existed in hardware format (other than a few FPGA implementations by hobbyists), a lot of the implementation details are left to the developer.

Method Justification

I had recently started working with Python, and this project was to give me a nice opportunity to exercise what I have recently learned, without pushing me too far out of my comfort zone. In other words, I know it will be pretty straight-forward, making for some excellent bed time programming. ...Why are you looking at me like that?

In addition to this, Python has a Curses library built right into it (for darwin and linux... sorry windows users!) with a very clean API, making this an excellent choice for implementing the graphics. Performance isn't even a consideration for this VM, as it only needs to operate at a laughable 60Hz. EDIT: I'm not sure this is true, cannot remember where I got that figure from... but it can get away with being slow AF.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.