https://github.com/joserochadev/emuchan
EmuChan is a Game Boy DMG emulator written in Rust, focused on learning and exploring hardware emulation.
https://github.com/joserochadev/emuchan
dmg emulation emulator gameboy gbdev hardware-emulation learning retrogaming rust
Last synced: 3 days ago
JSON representation
EmuChan is a Game Boy DMG emulator written in Rust, focused on learning and exploring hardware emulation.
- Host: GitHub
- URL: https://github.com/joserochadev/emuchan
- Owner: joserochadev
- Created: 2025-03-05T01:59:53.000Z (over 1 year ago)
- Default Branch: master
- Last Pushed: 2025-12-17T12:52:27.000Z (6 months ago)
- Last Synced: 2025-12-21T01:20:15.924Z (6 months ago)
- Topics: dmg, emulation, emulator, gameboy, gbdev, hardware-emulation, learning, retrogaming, rust
- Language: Rust
- Homepage:
- Size: 181 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# EmuChan πΉοΈ
This is a **hobby project** to learn Rust and explore hardware emulation. The goal is to emulate the original GameBoyβnot to create a final product, but as a way to learn and have fun in the process.
> **Note:** This project is not intended to be a production tool. The focus is on learning and exploring hardware emulation in a hands-on way.
## π Features
β
Emulation of the GameBoy's Z80-like CPU
β
Implementation of the memory bus and register mapping
β
Rendering via PPU (in development)
β
Support for the GameBoy boot ROM (in development)
β
Compatibility with games and hardware tests (in development)
β
CLI to run the emulator, execute tests, or disassemble memory sections
## π References
These resources have been essential for building the emulator:
- π [PanDocs - GameBoy Specifications](https://gbdev.io/pandocs/Specifications.html)
- π οΈ [Mooneye - Testing and debugging tools](https://github.com/Gekkio/mooneye-gb)
- π’ [GameBoy OpCode Table](https://izik1.github.io/gbops/index.html)
- π [Disassembly of the GameBoy Boot ROM](https://gist.github.com/drhelius/6063288)
- π [sm83 - GameBoy CPU JSON tests](https://github.com/SingleStepTests/sm83)
## π» How to Run
1οΈβ£ **Clone the repository:**
```sh
git clone https://github.com/joserochadev/EmuChan.git
cd EmuChan
```
2οΈβ£ **Compile the project:**
```sh
cargo build --release
```
3οΈβ£ Run the CLI:
The CLI allows you to:
- Run the emulator
- Execute a specific test
- Disassemble a memory section
**Run the emulator with a ROM:**
```sh
cargo run --release -- run path/to/rom.gb
```
**Run a specific test from a JSON file:**
```sh
cargo run --release -- test path/to/test.json
```
**Disassemble a section of memory:**
```sh
cargo run --release -- disassembler 0x0000 256
```
(This disassembles 256 bytes starting at address 0x0000.)
**Show help message:**
```sh
cargo run --release -- help
```
## π Contributions
This project is not commercial and is intended for learning purposes. However, if you have suggestions or improvements, feel free to open an issue or submit a pull request! π