• Stars
    star
    275
  • Rank 149,796 (Top 3 %)
  • Language
    Go
  • License
    MIT License
  • Created almost 7 years ago
  • Updated almost 6 years ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

ðŸŽŪ A NES emulator written in Go

ðŸŽŪ awesomenes

A NES emulator written in Go.

dk smb

dk

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 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.

More Repositories

1

b-parasite

ðŸŒąðŸ’§ An open source DIY soil moisture sensor
C
1,822
star
2

catprinter

ðŸąðŸ–Ļ
Python
730
star
3

omr

Optical Mark Recognition in Python
Python
207
star
4

dict.cc.py

📘 Unofficial command line client for dict.cc
Python
156
star
5

w-parasite

ðŸŠī💧A WiFi-enabled soil moisture sensor
C++
135
star
6

elink

A daisy chain of electronic shelf labels
C
101
star
7

deskmate

A tiny MQTT-powered dashboard and control center.
C++
67
star
8

fitless

A collection of toy firmwares for the ID115 fitness tracker
C
60
star
9

eink-ha

A hacky e-ink display for Home Assistant sensors
C
56
star
10

m6-reveng

Info & tools for reverse engineering the M6 smart fitness band
C
54
star
11

HS6620D-smartwatch-reveng

51
star
12

pricetag-printer

Python script for printing to the Hanshow price-tag
Python
50
star
13

sugarboat

A digital hydrometer
C++
38
star
14

remotebox

A Rhythmbox plugin for remote control via a TCP socket
Python
20
star
15

secret

Shamir secret sharing scheme in zero-dependency C
C
15
star
16

lir2450-charger

A tiny USB C charger for LIR2450 coin cell batteries
13
star
17

parasite-scanner

A bridge for b-parasites
Go
12
star
18

ikea-macropad

Python
9
star
19

clack

Minimalist Slack bot framework for clojure
Clojure
8
star
20

pyRemoteControl

Remote control server for linux. Control your X session through a TCP socket.
Python
7
star
21

sos

the helplessly useless operating system
Assembly
6
star
22

pyS3fs

Mount Amazon's S3 storage as a filesystem
Python
4
star
23

st-peter-esp8266

The ESP8266 sketch for the Slack bot controlled AC
Eagle
3
star
24

stpeter

Clojure
3
star
25

ble-led

A minimal ESP32 Arduino BLE service that turns an LED on/off
C++
3
star
26

react-native-dform

Schema-based dynamic forms for React Native
JavaScript
3
star
27

dform-editor

dform JSON schema editor
JavaScript
2
star
28

react-dform

Schema-based dynamic forms for React
JavaScript
2
star
29

advent-of-code-2021

My solutions to adventofcode.com
Python
2
star
30

dform

Schema-based dynamic forms
JavaScript
2
star
31

stacky

A programming language with a RPN-like syntax
Python
2
star
32

advent-of-code-2023

Python
2
star
33

advent-of-code-2017

Haskell
2
star
34

advent-of-code-2022

My solutions to adventofcode.com
Python
2
star
35

pyMonitor

Periodically checks if webpages are online and display their statuses using GTK widgets.
Python
2
star
36

sicp

My solutions to SICP exercises
Scheme
2
star
37

0

Quick, dirty and RPN-ish calculations on your terminal
C
2
star
38

tinycolor

A tiny python2 and python3 module for printing in colors
Python
2
star
39

qche

Python2 filesystem-persisted cache with a dead simple interface
Python
2
star
40

advent-of-code-2020

🎅 My solutions to adventofcode.com
Python
1
star
41

advent-of-code-2019

My solutions to adventofcode.com 2019
C++
1
star
42

spellcaster

🊄 A home automation magic wand
Jupyter Notebook
1
star
43

gimme-danger

A USB-PD trigger board & controller, powered by ESPHome
1
star
44

dotfiles

Shell
1
star
45

compiler_studies

ðŸ’Ą
Python
1
star
46

scam

A toy Lisp interpreter in C
C
1
star
47

d2r-tracker-ha-custom-component

A Diablo 2 Resurrected DClone tracker custom component for Home Assistant
Python
1
star