Skip to content

sjcovell/awesomenes

ย 
ย 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

ย 

History

69 Commits
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 

Repository files navigation

๐ŸŽฎ awesomenes

A NES emulator written in Go.

dk smb

dk

Getting and running

awesomenes uses sld2 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 sld2/libsdl2 packages. Then use the go get:

$ go get github.com/rbaron/awesomenes
$ awesomenes MY_ROM.nes

Status

Games that use the 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.

About

๐ŸŽฎ A NES emulator written in Go

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Go 100.0%