https://github.com/rbaron/awesomenes
🎮 A NES emulator written in Go
https://github.com/rbaron/awesomenes
emulator nes
Last synced: 16 days ago
JSON representation
🎮 A NES emulator written in Go
- Host: GitHub
- URL: https://github.com/rbaron/awesomenes
- Owner: rbaron
- License: mit
- Created: 2018-02-14T10:42:32.000Z (almost 8 years ago)
- Default Branch: master
- Last Pushed: 2019-02-07T19:32:10.000Z (almost 7 years ago)
- Last Synced: 2025-06-16T02:02:17.982Z (7 months ago)
- Topics: emulator, nes
- Language: Go
- Homepage:
- Size: 110 KB
- Stars: 275
- Watchers: 8
- Forks: 7
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# 🎮 awesomenes
A NES emulator written in Go.
# Getting and running
`awesomenes` uses `sdl2` for rendering and input processing. It may be necessary to install it beforehand. On macOS, using homebrew:
```
$ brew install sdl2
```
Other systems/package managers should provide similar `sdl2`/`libsdl2` packages. Then use the `go get`:
```
$ go get github.com/rbaron/awesomenes
$ awesomenes MY_ROM.nes
```
# Status
Games that use the [mapper](http://wiki.nesdev.com/w/index.php/Mapper) 0 (NROM) mostly work, although without audio so far. Games that use mapper 4 (mmc3) should work with some eventual glitches.
Tested games:
- Donkey Kong (NROM)
- Super Mario Bros. (NROM)
- Super Mario Bros. 2 (mmc3)
- Super Mario Bros. 3 (mmc3, with some glitches)
# Controller inputs
## Keyboard (controller 1)
```
Arrow keys -> NES arrows
A -> NES A
S -> NES B
Enter -> NES start
Right shift -> NES select
```
## Nintendo Switch Joycon (controller 1)
```
Directional -> NES arrows
Down arrow -> NES A
Right arrow -> NES B
SL -> NES select
SR -> NES start
```
# Roadmap
✅ CPU emulation
✅ Video support (picture processing unit - PPU)
✅ Keyboard input
✅ Mapper 0
✅ Joystick input (tested with Nintendo Switch Joycon)
✅ Mapper 4 (...kinda)
âž– More mappers
âž– Save state
âž– Audio support (audio processing unit - APU)
# Resources
All the information used to build this emulator was found on the awesome [nesdev wiki](https://wiki.nesdev.com).