Giter Site home page Giter Site logo

scone's Introduction

SConE

Join the chat at https://gitter.im/jtrinklein/SConE

SNES Controller Emulator using Arduino (Uno)

Overview

This is a basic SNES controller emulator written for the Arduino Uno.

I got the timing data from this Pinouts & Protocol FAQ on gamefaqs.com. I've extracted some of the important details to snes-flow.md.

Pin Assignments

Pin Purpose Pin Mode
A0 Data Latch INPUT
A1 Data Clock INPUT
A2 Serial Data OUTPUT
2 Button B INPUT Pull-Up
3 Button Y INPUT Pull-Up
4 Button Select INPUT Pull-Up
5 Button Start INPUT Pull-Up
6 Pad UP INPUT Pull-Up
7 Pad Down INPUT Pull-Up
8 Pad Left INPUT Pull-Up
9 Pad Right INPUT Pull-Up
10 Button A INPUT Pull-Up
11 Button X INPUT Pull-Up
12 Button L INPUT Pull-Up
13 Button R INPUT Pull-Up

Building

I'm using platformio to build and deploy the code simply so I didn't have to use the Arduino IDE. Instructions for how to install and set it up can be found on their site. platformio.ini contains the configuration for platformio.

Reading Buttons

When reading buttons, keep in mind that if a pin is HIGH, the button is not pressed. When a pin reads LOW, the pin is pressed.

Future Plans

I'm also planning to provide data over USB using the UnoJoy project, which is where the files in UnoJoy/ come from.

This will depend on 2 things:

  • how much time is left after SNES protocol
  • how much time the UnoJoy serial write takes

scone's People

Contributors

gitter-badger avatar

Stargazers

Roman avatar Dan Fayal avatar  avatar Joe Ostrander avatar chuchuw avatar  avatar Ry avatar  avatar Davide Cesaroni avatar Marek Schmidt avatar  avatar  avatar pidgezero_one avatar Kyle Yancey avatar

Watchers

 avatar James Cloos avatar James Trinklein avatar  avatar pidgezero_one avatar

scone's Issues

maybe not so much an issue, but

i'm trying to get this code to work on my arduino uno, but for testing purposes i'm using B11111100 and B00111011 literals in place of PIND and PINB. the input is working and going to my snes as tested with nintendospy, but the snes isn't doing anything with it -- is this an issue of the arduino's clock speed? if so how did you set it?

thanks!

Can this be adapted to an esp8266?

My intention is that a simple tcp or udp connection can be used to send and receive input from any device using a PC as an intermediary, and the esp8266 sends the data to the console, my problem is to implement the snes controller emulator on the esp8266, I have tried on my own taking several reference codes built for arduino uno but I am not successful as there are differences with this board, and I don't have enough experience with it.

If it is possible I am very interested, greetings.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.