A chip-8 emulator written in Go. I am trying to learn go-lang for fun and I have always been fascinated with emulators, so I decided to write one in Go. I am using the following manual as reference.
You'll need the drivers required by ebiten and you can find the relevant installation instructions here.
I wrote a blog post about this project which you can find here
- git clone http://github.com/h4ck3rk3y/go-8
- cd go-8
- go get -v -t -d ./...
- go test --cover
You can build the program by
- git clone http://github.com/h4ck3rk3y/go-8
- cd go-8
- go get -v -t -d ./...
- go build main.go cpu.go
Build the code and then
- ./main
The original chip-8 consisted of a hexa decimal gamepad. I use the following mappings.
- Your Key Board --> Chip 8
- 1 --> 1
- 2 --> 2
- 3 --> 3
- 4 --> C
- Q --> 4
- W --> 5
- E --> 6
- R --> D
- A --> 7
- S --> 8
- D --> 9
- F --> E
- Z --> A
- X --> 0
- C --> B
- V --> F
- Make roms passable as command line arguments
- Key board mapping in a configuration file
- Configurable colors
- Better unit tests for main.go. cpu.go has 98.8% coverage but overall the coverage drops significantly