Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/racerxdl/riscv-emulator
Golang RISC-V emulator that can play DOOM
https://github.com/racerxdl/riscv-emulator
doom emulator golang risc-v riscv toy-emulator
Last synced: about 3 hours ago
JSON representation
Golang RISC-V emulator that can play DOOM
- Host: GitHub
- URL: https://github.com/racerxdl/riscv-emulator
- Owner: racerxdl
- License: apache-2.0
- Created: 2021-09-05T19:51:32.000Z (about 3 years ago)
- Default Branch: main
- Last Pushed: 2023-03-07T00:19:52.000Z (over 1 year ago)
- Last Synced: 2024-06-20T01:59:28.174Z (5 months ago)
- Topics: doom, emulator, golang, risc-v, riscv, toy-emulator
- Language: Go
- Homepage:
- Size: 155 KB
- Stars: 61
- Watchers: 3
- Forks: 3
- Open Issues: 2
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# RISC-V Emulator
A toy Golang RISC-V emulator that can play [DOOM](https://github.com/smunaut/doom_riscv)For now it uses [smunaut](https://github.com/smunaut) [bootloader](https://github.com/smunaut/ice40-playground/tree/master/projects/riscv_doom) and [riscv_doom](https://github.com/smunaut/doom_riscv) from the ICE40 project.
But since there is no M extensions on this emulator, the `CFLAGS` in makefiles should be changed to use the non-M version
```makefile
CFLAGS=CFLAGS=-Wall -march=rv32i -mabi=ilp32 (...)
```The emulator is made to be used headless synchronously or assyncronously and easy to make new peripherials for it. I still need to do some documentation but you can see the doom example at `cmd/ui`.
![DOOM](doom.jpg)
When starting the UI mode, the following keyboard keys controls the flow:
* `C` => Continue emulation
* `P` => Pause emulation
* `S` => Step instruction