Giter VIP home page Giter VIP logo

emul8r's Introduction

emul8r ~ chip 8 emulator

== PROMPT ================================================================

  emul8r is a simple hack that I started because I couldn't find a decent
Chip-8 emulator that worked the way I needed it to, and that worked on
Linux. Why do I want a Chip-8 emulator? WIPEOFF is actually kind of fun,
and it's fun to homebrew on it and see how much you can pack into 4K.

== GOALS =================================================================

  1. emul8r should function as closely as possible to the implementation 
of Chip-8 on the COSMAC VIP and other 1802-based computers. 2. It should
also be easy to use while being completely configurable.

== DEPENDENCIES ==========================================================

  SDL. And a C compiler if you plan on building it yourself.

== INTERNALS =============================================================

  -- MEMORY MAP --
  
  The memory map is pretty simple. The firmware starts at 000h, and goes
up to 1FFh. The firmware is made up of Chip-8 bytecode. On real Chip-8
machines, those first 512 bytes are actually the interpreter itself, but
on this implementation it is not necessary. I decided that would be better
filled with a 'firmware' of Chip-8 bytecode, along with some standard
addresses for where the font sprites, call stack, and video memory go.
This accomodates the second goal, which is configurability.

  000h Firmware (144 bytes, 000h to 1FFh is actually all firmware)
  090h Font sprites (80 bytes, 16 sprites * 5 bytes each)
  0E0h Call stack, depth 16 (32 bytes, 16 levels * 2 bytes per address)
  100h Video memory (256 bytes)
  200h Game entry point
  
  -- FIRMWARE --
  
  The firmware is just a 256 byte blob of Chip-8 bytecode and data that
goes in front of Chip-8 games. By default, it only consists of a jump
instruction that sends the program counter to the game entry point. If you
were to modify it, you could change the default initial values of video
memory, how the font sprites work, and even how games start by adding a
splash screen or something like that.

emul8r's People

Contributors

jdp avatar

Stargazers

 avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar

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.