This is a Chip8 emulator implemented in JavaScript, providing a web-based interface to run Chip8 ROMs directly in your browser. The project aims to faithfully recreate the original Chip8 experience, providing an accessible platform for enthusiasts to enjoy retro gaming, learn about emulation, or even use it as a starting point for building more complex emulators.
- Accurate emulation of Chip8 instruction set
- Keyboard mapping for Chip8 input
- Load and run Chip8 ROMs directly from your local machine
- Web-based interface for ease of use, no installation required
- Open-source and customizable
- Customizable CPU clock speed
- Set others theme
- Mobile suport
- Pause button
- Configurable display scaling
- Modern web browser with JavaScript and HTML5 support (Chrome, Firefox, Edge, Safari)
-
Clone the repository: shell git clone https://github.com/yourusername/chip8-emulator-js.git
-
Navigate to the project folder: shell cd chip8-emulator-js
-
Open the emulator: Just open the
index.html
file in your preferred web browser. -
Load a ROM: Use the "Load ROM" button in the emulator interface to upload a Chip8 ROM from your local machine.
-
Run the ROM: Click the "Run" button to start the emulation.
-
Enjoy: Play the game or program loaded in the emulator using your keyboard.
The original Chip8 has a hexadecimal keyboard with the keys 0-9 and A-F. The keyboard mapping for this emulator is as follows:
Original | Emulator |
---|---|
1 | 1 |
2 | 2 |
3 | 3 |
4 | Q |
5 | W |
6 | E |
7 | A |
8 | S |
9 | D |
0 | X |
A | Z |
B | C |
C | 4 |
D | R |
E | F |
F | V |
We welcome contributions to the project! Whether you're reporting bugs, improving documentation, or adding new features, we appreciate all help. Please fork the repository, create a new branch for your changes, and submit a pull request.
This project is released under the MIT License.
- Thanks to the original Chip8 designers for creating a platform that still inspires emulation projects.
- Thanks to the community for providing documentation and resources about Chip8 and emulation in general.
Feel free to open an issue or pull request in the repository, or contact the maintainer directly at dev@patrickreis.dev
.