Another NES Emulator implemented in Golang
MacOS
brew install glfw
brew install portaudio
Linux/Unix Based Systems or Windows
Refer to https://www.glfw.org/ And http://www.portaudio.com/
go run cmd/nesgo/main.go <path-to-rom>
Currently the keys are statically mapped, dynamic mapping through a configuration file will be supported in the future. Only the first controller is supported.
- A - N
- B - M
- Up/Down/Left/Right - WSAD
- Start - Enter
- Select - Backspace
- E - enable/disable emulation
- L - enable/disable disassembler in stdout
- Space - Step one frame
- O - Cycle through: PPU rendered output - Pattern table 1 - Pattern table 2
- P - Cycle through palette index 0-7 (when showing pattern tables)
- - CPU implementation
- - Basic cartridge / mapper implementation
- - GUI framework: glfw/gl
- - Basic controller support
- - PPU background rendering
- - PPU foreground rendering (sprites)
- - Framework for audio
- - APU (audio processing unit)
- - Multiple controller mappings
- - Dynamic controller mapping
- - Save state
- - Battery support
- - More mappers... (contributions are appreciated)
- http://wiki.nesdev.com/w/index.php/Nesdev_Wiki
- http://archive.6502.org/publications/pet_paper/pet_paper_v3_i2_i3.pdf
- https://www.cs.otago.ac.nz/cosc243/pdf/6502Poster.pdf