Taiters / chip8

A Chip8 emulator which runs in the browser along with tools to view the registers and instructions
https://chip8.dotslashdan.com
MIT License
5 stars 4 forks source link
chip8 chip8-assembler chip8-emulator emulator javascript react web

Web-Based CHIP-8 Emulator with Assembly Editor

Netlify Status

Welcome to the Web-Based CHIP-8 Emulator! This project is an interactive emulator that allows you to create, edit, and run CHIP-8 programs directly in your browser. With a built-in assembly-like editor, you can write your own CHIP-8 programs, load external ROMs, and explore the world of retro gaming and low-level programming.

Built in tools to create ROMs Screenshot of the CHIP-8 Emulator and Editor

Or simply import existing ROMs Screenshot of the CHIP-8 Emulator with an imported ROM

Notes

I built this as a hello world to emulators. Once that was working, I wanted to experiment with writing an assembler, and now this project exists!

However.. as this was a learning project, it's not perfect, so expect there to be some bugs, or missing documentation etc. If you see anything which you'd like to fix, contributions are welcome!

Getting Started

To start using the emulator:

  1. Open the Emulator: Visit the CHIP-8 emulator in your web browser.
  2. Create or Load a Program: Use the built-in editor to write your own CHIP-8 program, or load an existing ROM.
  3. Run Your Program: Click the "Run" button to execute your program. Use the debug tools to pause, step through code, and inspect memory and registers.
  4. Explore & Learn: Experiment with different instructions and see how they affect the program's behavior.

Writing CHIP-8 Programs

CHIP-8 programs are written using simple assembly-like syntax. The emulator supports a wide range of instructions, including:

For a complete list of supported mnemonics and their usage, refer to the Assembly Language Guide.

Memory and Registers

The emulator provides tools to inspect the state of memory and registers during program execution. You can:

Documentation

For a detailed explanation of the CHIP-8 assembly language, visit this Documentation Page. This guide includes a breakdown of each mnemonic, its usage, and examples.

Contributing

Contributions are welcome! If you encounter any issues, have suggestions, or want to contribute to the project, feel free to open an issue or submit a pull request.

See also the list of contributors who participated in this project.

License

This project is licensed under the MIT License. See the LICENSE file for details.