Jogando Super Nintendo no Android com controle original

Jogando SNES com controle original via bluetooth Logo que comprei meu HTC Desire HD (sistema operacional Android) instalei um emulador de Super Nintendo (SNES), este foi um dos poucos videogames que tive, e era viciado (quando tinha 10 / 11 anos) em Super Mario World, assim que instalei o Mario me veio aquela nostalgia! Mas jogar com o controle touch screen é péssimo, não tem experiência tátil e o seu dedo fica encima do jogo.
Então pensei, é claro que alguém já ligou o controle original no celular, e estava certo,  encontrei este vídeo: “http://www.youtube.com/watch?v=_FZTz2KO9vU“. Mas tem um detalhe muito importante este projeto, é para NES e não o SNES (mais novo), ou seja, sabia que era possível fazer e tinha os materiais para isto, então só esperei sobrar um tempo para fazer (o único componente que não tinha era o controle, mas consegui um paralelo por R$ 8,00 no Mercado Livre).


vimeo.com/bsoares/snes-on-android-with-controller-and-bluesmirf

Como funciona:
O controle do SNES esta ligado a Arduino, é bem fácil obter as teclas pressionadas, mas existe uma biblioteca para tornar esta tarefa ainda mais simples (NESpad/SNESpad). Cada tecla pressionada liga um bit dentro do número que representa o estado das teclas do controle, e este estado (número) é enviado via Bluetooth (uso o BlueSMiRF) para o Android.
No Android, quem recebe este número é o Amarino, mas ele apenas recebe o número, ainda é necessário um App (que foi modificado a partir deste exemplo “SoftKeyboard“) para converter este número em teclas pressionadas (uso Bitwise) como um teclado do Android.
Por fim é só configurar o emulador para entender as teclas pressionadas como os comandos dentro do mesmo (pular, andar, girar, etc…)

Desta forma o controle pode ser usado como o teclado do seu Android, e ainda ser configurado como o controle de outros emuladores.

Sobre o módulo bluetooth BlueSMiRF:
Depois de configurado ele será o seu “cabo USB virtual” pois da mesma forma que usamos o comando Serial.print(“…”) para enviar dados via porta serial, o mesmo dado será enviado via bluetooth.
A App Amarino utiliza 57.600 de baudrate, e os módulos BlueSMiRF normalmente vem com 9.600.
Para configurar o blueSMiRF utilizei alguns tutoriais:
- http://todbot.com/blog/2006/02/23/howto-mac-os-x-bluetooth-serial-port/
- http://www.sparkfun.com/tutorials/67

Sobre o Soft Keyboard (App para Android):
Modifiquei o exemplo de Keyboard App disponível no Android Developers para obter os dados via Amarino e agir como teclado. Me baseei neste projeto criado para NES, porém criei outro código para a Arduino e alterei 95% do código para o Android.

O código fonte do projeto para Androi, Arduino e as versões das bibliotecas que foram utilizadas, podem ser baixadas do meu Github:
https://github.com/BSoares/SNES-on-Android-with-original-controller

Conteúdo Relacionado:
Código fonte
Arduino UNO
BlueSMiRF
Amarino
Android Sample Soft Keyboard
NESpad/SNESpad
Vídeo no Youtube

Enjoy :-)


Posts relacionados:

  1. Operações binárias
  2. Classe C++ para controlar Display de 7 seguimentos
  3. Ping Pong com Matriz de Leds 8×8
  4. Funções do C++ úteis para Arduino
  5. PianoDuino (Arduino + Processing + SoundCipher)

  1. Olá Bruno! Que bacana sua invenção cara!! Parabéns!! Já pensou em comercializar num kit, pois acredito que em breve o Android será uma boa plataforma de jogos!

    Sua invenção já é uma notícia internacional!!! Parabéns novamente!!!

    Irei postar no meu blog!

    Abraço!

    • Bruno Soares disse:

      :-) vlw, parece que esta se espalhando bem rápido!
      Só não posso dizer é que uma invenção minha, pois quando comecei a fazer já tinha um projeto para o NES, que é bem parecido.

      Vlw!

  2. FabioTNT disse:

    Pô Brunão, mandou super bem no projeto hein! Parabéns cara e sucesso na vida. ;)

  3. Muito bom cara parabens pelo desenvolvimento ae ficou muito bom mesmo !

  4. Opaa cara que isso não fiz mais que obrigação, mais uma vez parabéns ae

  5. Raphael disse:

    Parabéns, Cara! Vi seu post no hackaday e realmente é muito interessante. Também sou hobbysta e gosto de ficar fuçando nas coisas. Também não gosto de ficar fazendo propaganda, não acho que esse seja o ponto… Mas devo te dizer que uma das minhas maiores motivações pra um projeto meu foi justamente o Super Mario World! Hahaha, sério! Se tiver curiosidade, o link do blog desse projeto é http://PSPEWC.blogspot.com. É basicamente um par cliente-servidor pra usar o PSP como joystick sem fio em Windows e agora Unix também.
    Também tenho um android e depois de ver seu projeto comecei a pensar em um jeito de usar o PSP como joystick pra ele. Já cheguei a instalar o SDK há algum tempo, mas não me aprofundei muito. Dei uma olhada na documentação e acho que dá pra simular eventos de teclado no android sim. Quem sabe daqui algum tempo…
    Parabéns de novo!

  6. Otavio Vasques disse:

    Muito bom o projeto cara, tá de parabéns. Agora só precisa atualizar o blog com mais frequencia.

  7. My spouse and I stumbled over here different page and thought I might as well check things out. I like what I see so now i’m following you. Look forward to checking out your web page for a second time.

  8. Eu disse:

    Que bosta grande!
    Só #%*#!(@ dinheiro, não é portatil….
    é melhor jogar no SNES mesmo…

  9. andre disse:

    Bruno.

    Sensacional !!
    Agora eu to tentando fazer uma aplicação com BT + android.
    Tenho um arduino mega 256, e ja estou usando as seriais 1,3, qria colocar na serial2
    vi que a biblioteca so funciona na Serial e qria mudar para Serial2
    porém não consigo compilar o arquivo meetandroi.cpp diz que não acha os inclues
    #include “HardwareSerial.h”
    #include “MeetAndroid.h”

    tem idéia?

  10. Orion disse:

    Cara nota 1000! Que saudade daqueles tempos!
    Jogar SNES no controle de novo seria ótimo! Sem falar que nos celulares a quantidade de toques simultâneos é limitada, isso dificulta um pouco o jogo.
    Vou tentar fazer um pra mim.

  11. Rodrigo Quimas disse:

    Cara isso é sensacional! derrepente você aina não sabe, mais você pode jogar SNES via “android box tv” segue o link http://forum.gamevicio.com/i/topicos/227/227733-mini-pc-com-android-4-0-tem-cpu-dual-core-e-custa-74-dolares/ vai ficar muito bom! faz o teste e me fala via e-mail. fica a dica.

  12. Caio Souza disse:

    Boa noite,

    Consegui rodar em um Xperia Mini e num tablet da AOC, mas em ambos o jogo ficou muito lento.
    Você sabe se o seu HTC tem mais processamento que os 2 que eu usei?

    E outra, qual emulador você usou? Pode ser isso também…

    Parabéns aí.

    Valeu!!

  13. felipe disse:

    Olá Bruno,

    Parabéns pelo projeto.

    Estou tentando realizar o mesmo projeto,

    porém estou com algumas dificuldades .,…

    Fiz todas as configuraçãoes esquemas eletronicos,.

    O meu android conecta sem problemas no Amarino enxerga o modulo bluetooth

    consigo enviar comandos do android para o arduino…Porém mesmo seguindo a configuração

    do controle de SNES e bibliotecas… Quando aperto os botoes … nada chega no meu android…

    Não fiz essa configuração de 57000 para 9000… você tem alguma idéia do porque não chega nenhum tipo de comando do controle nele ?

    Grato desde já.

  14. IsraelTorres disse:

    Ol/á meu amigo, eu gostaria de saber a sua trajetória como programador.

  15. Andre landim disse:

    amigo, uma sugestão. procure patentear esse eu projeto.
    Parabéns e boa sorte! :D
    ;)

  16. LUCAS disse:

    baixo um emulador instalo todas as roms, compro comtrole pra PC

    pro feliz feliz feliz

  17. These are genuinely wonderful ideas in concerning blogging.
    You have touched some pleasant factors here. Any way keep up
    wrinting.

  18. I have been browsing online more than 4 hours today, yet I never
    found any interesting article like yours. It’s pretty worth enough for me. In my opinion, if all webmasters and bloggers made good content as you did, the internet will be a lot more useful than ever before.

  19. Thank you a bunch for sharing this with all people you really recognize what you’re speaking approximately! Bookmarked. Please also discuss with my web site =). We could have a link exchange contract among us

  20. Every weekend i used to go to see this web site, because i wish
    for enjoyment, as this this website conations genuinely pleasant funny material too.

  21. retifica sp disse:

    Hey there excellent blog! Does running a blog such as this require a massive amount work?
    I’ve very little knowledge of computer programming but I had been hoping to start my own blog soon. Anyway, if you have any recommendations or tips for new blog owners please share. I know this is off subject nevertheless I simply had to ask. Many thanks!

  22. Hi it’s me, I am also visiting this web page on a regular basis, this web site is in fact good and the visitors are in fact sharing nice thoughts.

  23. leone disse:

    olá bruno,
    cara teria como vc postar uma foto do esquema de ligação dos componentes?desde ja agradeço e mto bom o seu projeto. estou pensando em construir um portatil.

  24. leone disse:

    ola bruno tdo bem?
    cara ta dando um erro no codigo fonte do arduino.

  25. leone disse:

    ola bruno tdo bem?
    cara vc poderia me dizer como corrigir um erro no codigo fonte do arduino?

  26. It’s an remarkable post in support of all the internet visitors;
    they will obtain advantage from it I am sure.

  1. [...] Playing Super Nintendo via emulator on Android with the original controller. Integration made ​​with Arduino, Amarino and BlueSMiRF (Bluetooth module). For more informations: blog.bsoares.com.br/arduino/snes-android-amarino-original… [...]

  2. [...] Spo&#116&#116&#101d &#105n &#116h&#101 &#77&#65KE &#70l&#105&#99k&#114 Pool: Bruno So&#97re&#115 w&#97nted to p&#108&#97y &#97 c&#108&#97&#115&#115ic Super Nintendo &#103&#97me on hi&#115 ce&#108&#108 phone, but it’&#115 touch &#115creen w&#97&#115 unre&#115pon&#115ive &#97nd ju&#115t w&#97&#115n’t cuttin&#103 it &#97&#115 &#97 contro&#108&#108er. In&#115te&#97d of ju&#115t &#103ivin&#103 up, he devi&#115ed &#97 Rube Go&#108dber&#103-e&#115que &#115y&#115tem to connect an actual &#83N&#69&#83 cont&#114olle&#114 to h&#105s phone. [...]

  3. [...] Spotted in the MAKE Flickr Pool: Bruno Soares wanted to play a classic Super Nintendo game on his cell phone, but it’s touch screen was unresponsive and just wasn’t cutting it as a controller. Instead of just giving up, he devised a Rube Goldberg-esque system to connect an actual SNES controller to his phone. [...]

  4. [...] Spotted in the MAKE Flickr Pool: Bruno Soares wanted to play a classic Super Nintendo game on his cell phone, but it’s touch screen was unresponsive and just wasn’t cutting it as a controller. Instead of just giving up, he devised a Rube Goldberg-esque system to connect an actual SNES controller to his phone. [...]

  5. [...] knowledge doing such mods before, and if you’re meddlesome in giving it a shot, conduct over to Bruno Soares’ blog where he lists out all a stairs he [...]

  6. [...] Spotted in a MAKE Flickr Pool: Bruno Soares wanted to play a classical Super Nintendo diversion on his dungeon phone, though it’s hold shade was nonchalant and only wasn’t slicing it as a controller. Instead of only giving up, he devised a Rube Goldberg-esque complement to connect an tangible SNES controller to his phone. [...]

  7. [...] Worth Reading? It’s not quite a Nintendo Wii 2 with a touchscreen controller, but Bruno Soares hack to control retro Super Nintendo games on his Android smartphone with a classic SNES controller [...]

  8. [...] not quite a Nintendo Wii 2 with a touchscreen controller, but Bruno Soares hack to control retro Super Nintendo games on his Android smartphone with a classic SNES controller [...]

  9. [...] not quite a Nintendo Wii 2 with a touchscreen controller, but Bruno Soares hack to control retro Super Nintendo games on his Android smartphone with a classic SNES controller [...]

  10. [...] n&#959t quite a Nintendo Wii 2 w&#1110th a touchscreen controller, but Bruno Soares hack t&#959 control retro Super Nintendo games &#959n h&#1110&#1109 Android smartphone w&#1110th a [...]

  11. [...] knowledge doing such mods before, and if you’re meddlesome in giving it a shot, conduct over to Bruno Soares’ blog where he lists out all a stairs he [...]

  12. [...] not quite a Nintendo Wii 2 with a touchscreen controller, but Bruno Soares hack to control retro Super Nintendo games on his Android smartphone with a classic SNES controller [...]

  13. [...] not quite a Nintendo Wii 2 with a touchscreen controller, but Bruno Soares hack to control retro Super Nintendo games on his Android smartphone with a classic SNES controller [...]

  14. [...] not quite a Nintendo Wii 2 with a touchscreen controller, but Bruno Soares hack to control retro Super Nintendo games on his Android smartphone with a classic SNES controller [...]

  15. [...] то, мы думаем, проблем возникнуть не должно. Бруно на своем блоге описал все шаги и привел некоторые фото сборки [...]

  16. [...] Spotted in the MAKE Flickr Pool: Bruno Soares wanted to play a classic Super Nintendo game on his cell phone, but it’s touch screen was unresponsive and just wasn’t cutting it as a controller. Instead of just giving up, he devised a Rube Goldberg-esque system to connect an actual SNES controller to his phone. [...]

  17. [...] tienes conocimientos de portugués puedes seguir las instrucciones del usuario para crearte tu propia versión. Y si de paso consigues conectarlo todo a un televisor [...]

  18. [...] Spotted in the MAKE Flickr Pool: Bruno Soares wanted to play a classic Super Nintendo game on his cell phone, but it’s touch screen was unresponsive and just wasn’t cutting it as a controller. Instead of just giving up, he devised a Rube Goldberg-esque system to connect an actual SNES controller to his phone. [...]

  19. [...] retro ROMs [Video] It’s not quite a Nintendo Wii 2 with a touchscreen controller, but Bruno Soares hack to control retro Super Nintendo games on his Android smartphone with a classic SNES controller [...]

  20. [...] not quite a Nintendo Wii 2 with a touchscreen controller, but Bruno Soares hack to control retro Super Nintendo games on his Android smartphone with a classic SNES controller [...]

  21. [...] not quite a Nintendo Wii 2 with a touchscreen controller, but Bruno Soares hack to control retro Super Nintendo games on his Android smartphone with a classic SNES controller [...]

  22. [...] Jogando Super Nintendo no Android com controle original [...]

  23. [...] wanted to be able to use a real SNES controller with the emulator on his HTC Android phone, packing in an Arduino, 6 AA batteries, and a breadboard and mission accomplished! Hardly as [...]

  24. [...] wanted to be able to use a real SNES controller with the emulator on his HTC Android phone, packing in an Arduino, 6 AA batteries, and a breadboard and mission accomplished! Hardly as [...]

  25. [...] wanted to be able to use a real SNES controller with the emulator on his HTC Android phone, packing in an Arduino, 6 AA batteries, and a breadboard and mission accomplished! Hardly as [...]

  26. [...] Super Nintendo no Android com controle origin&#97&#108&#32via Arduino e … [...]

  27. [...] οδηγίες για το πώς να το κάνετε μπείτε στο blog του δημιουργού, αρκεί να μιλάτε Πορτογαλικά!» [...]

  28. internet games…

    [...]Super Nintendo no Android com controle original via Arduino e BlueSMiRF | Bruno Soares[...]…

  29. Anônimo disse:

    raspberry ketone…

    Recent surveys hold proven that this is not but another fat red ink accessory, hold proven that when applied that are winning from Raspberry Ketone accessorys….

Leave a Reply