2024-01-31 01:54:35 +00:00
|
|
|
# Yet Another Yet Another Chip-8 Emulator (yayacemu)
|
|
|
|
|
|
|
|
[Because one just wasn't enough](https://github.com/nickorlow/yacemu).
|
|
|
|
|
|
|
|
A Chip-8 emulator (interpreter) written in SystemVerilog with I/O simulated with C++ also depends on SDL2.
|
|
|
|
|
2024-01-31 01:57:54 +00:00
|
|
|
Note: Code quality is bad at the moment because I just wanted to get graphics working and didn't pay much attention to it. I will fix tomorrow.
|
|
|
|
|
2024-01-31 01:54:35 +00:00
|
|
|
### Building & Testing
|
|
|
|
|
|
|
|
In order to run yayacemu, you must have sdl2, verilator, and make installed.
|
|
|
|
|
|
|
|
Once you have the dependencies installed, you can build the emulator with:
|
|
|
|
```shell
|
|
|
|
make build
|
|
|
|
```
|
|
|
|
|
|
|
|
You can build start the emulator with:
|
|
|
|
```shell
|
|
|
|
make run ROM_FILE=[PATH_TO_YOUR_ROM]
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
### Running
|
|
|
|
|
|
|
|
If you have a binary, you can run it with the following:
|
|
|
|
|
|
|
|
```shell
|
|
|
|
yayacemu [PATH_TO_YOUR_ROM]
|
|
|
|
```
|
|
|
|
|
|
|
|
### Todo
|
|
|
|
- [x] Graphics
|
2024-01-31 17:05:25 +00:00
|
|
|
- [x] Corax+ Required Instructions
|
2024-01-31 18:05:04 +00:00
|
|
|
- [x] Proper Flag Handling
|
2024-01-31 01:54:35 +00:00
|
|
|
- [ ] Working Input
|
|
|
|
- [ ] More Instructions
|
|
|
|
- [ ] Tetris Working Running
|
2024-01-31 01:57:54 +00:00
|
|
|
- [ ] Pass Quirks Test
|
2024-01-31 01:54:35 +00:00
|
|
|
- [ ] Add beeper (instead of sound, screen becomes red)
|
|
|
|
- [ ] Code cleanup
|
|
|
|
- [ ] All Instructions
|
|
|
|
|
|
|
|
### Screenshots
|
|
|
|
|
|
|
|
![Chip 8 Logo Demo](https://github.com/nickorlow/yayacemu/blob/main/screenshots/chip8-logo.png?raw=true)
|
|
|
|
![IBM Logo Demo](https://github.com/nickorlow/yayacemu/blob/main/screenshots/ibm-logo.png?raw=true)
|
2024-01-31 17:04:55 +00:00
|
|
|
![CORAX+ Test Demo](https://github.com/nickorlow/yayacemu/blob/main/screenshots/corax.png?raw=true)
|
2024-01-31 18:05:04 +00:00
|
|
|
![Flag Test Demo](https://github.com/nickorlow/yayacemu/blob/main/screenshots/flags.png?raw=true)
|