Retropie – Construindo um Arcade com Raspberry Pi


A recente pandemia do Covid-19, e consequente suspensão de aulas, me forçou a acelerar um projeto. A construção de um Arcade para minha filha com emuladores de consoles clássicos. Os controles em forma de Arcade são funcionais para as pequenas mãos dela e alguns clássicos que ainda são muito divertidos.

https://www.instagram.com/p/B-hk9ffA3ic/?utm_source=ig_web_copy_link

Existem várias plataformas para Arcades e emulação de consoles que eu poderia ter utilizado, minha escolha foi pelo RetroPie rodando em um Raspberry Pi 3B. Também há muitas opções de formatos, componentes, jogos etc. Muitas decisões foram feitas durante a construção e acabei mudando muitos planos que tinha feito. Dessa forma, pretendo explicar o que usei e porque usei. Mas se você estiver montando um Arcade, ou mesmo uma instalação Retropie em outro formato, não significa que precisa usar as coisas da mesma forma. A ideia aqui é dar uma ideia geral do que fiz e do que você precisa para montar um Arcade para você.

Durante o artigo estou linkando diversos sites e anúncios de peças recomendadas. Não tenho nenhum vinculo com esses sites e anúncios e minha intenção é apenas de facilitar a busca.

Raspberry Pi 3B

A placa que utilizei para esse projeto foi um Raspberry Pi 3B, pelo simples fato de que eu tinha uma parada na gaveta. Mas se tivesse que comprar, minha sugestão de modelo seria o Raspeberry Pi 3B+. Embora as principais diferenças entre as duas sejam em rede (Gigabit Ethernet, 802.11ac e PoE) o processador é um pouquinho mais rápido e isso pode fazer diferença em emulações mais pesadas como jogos de Nintendo 64 e PlayStation.

Raspberry Pi 3B+

Essa placa é fabricada no brasil e revendida oficialmente pela FilipeFlop, na data de publicação custa R$339,90, mas é possível que versões importadas tenham preço menor em outros sites. Essa é atualmente a placa mais poderosa oficialmente suportada. Isso não significa que em outros modelos não funcione mas você pode ter alguns problemas de compatibilidade.

Por esse motivo não recomendo a compra do Raspiberry Pi 4 para essa função ainda. Há problemas conhecidos de compatibilidade, principalmente com alguns shields (placas adicionais para o Pi) mais antigos. A equipe do Retropie vem trabalhando na compatibilidade com a placa e vale a pena manter um olho no Forum Oficial.

Pi Power Hat

Hats ou Shields são placas de expansão para o Raspberry Pi com as mais diversas finalidades. É comum em utilizações como essa a utilização de alguns shields para fazer o desligamento seguro do sistema. Eu não preocupei com o desligamento e assumi o baixo risco de ter que reinstalar o sistema se ele se corromper. Mas eu me preocupei com Raspberry Pi esquentando durante os jogos, então utilizei um Hat que controla uma ventoinha de acordo com a temperatura dele.

Raspberry Pi Power Hat

O Hat em questão também possui dois recursos muito úteis:

  • Entrada de alimentação 6V~14V
  • Chave de ligar e desligar

Além de garantir que ele não aqueça, isso me permitiu alimentar o Pi e todo o resto do sistema com uma única fonte 12V/2A que eu tinha de um teclado que vendi há anos.

O Hat custa cerca US$ 17,00 o que deve ter sido algo em torno de R$ 60,00 na cotação da época.

Cartão de memória

Uma parte importante do projeto foi as escolha do cartão de memória micro SD. Utilizei um SanDisk de 64GB que eu tinha de outro projeto. Essa peça pode custar mais que o próprio Raspberry Pi dependendo do modelo. Tão importante quanto a capacidade (tamanho) é a velocidade de leitura do cartão.

Anúncios de cartões de memória
Print em 03/04/2020

Embora um cartão mais lento seja perfeitamente aceitável para um projeto simples que use pouco I/O (Leitura e escrita de dados) como o Monitor de câmeras que postei há alguns meses. O uso de um cartão mais rápido no RetroPie fará uma grande diferença no tempo de boot carregamento e até performance de jogos maiores. Recomendo que o cartão seja no mínimo Classe 10 (10MB/s) e preferencialmente Classe 10 U3 (30MB/s) ou superior.

Esse artigo do tecnoblog explica a diferença entre todos os tipos e nomenclaturas de cartão.

Um ponto a levar em conta no tamanho do cartão são obviamente os jogos. Jogos de videogames até 16bit costumam ter no máximo 5MB, até porque memória para cartucho era caro. Os jogos mais modernos já utilizam CDs e outras mídias opticas, logo, jogos de plataformas como PlayStation e DreamCast costumam ter mais de 400MB.

Esses volumes podem parecer pequenos, mas se a quantidade de jogos que você colocar for muito grande eles somarão rapidamente. Por exemplo, existe um torrent com cerca de 6 mil jogos de Mame (Emulador de arcade clássico pré-consoles, como Galaga, Asteroid, Pac-man etc.) que quando descompactado tem 20GB.

Outra coisa que consumirá bastante disco são os vídeos dos jogos. Alguns temas do RetroPie tem o recurso legal de passar vídeos dos jogos como protetor de tela. Também são exibidos vídeos na seleção de jogo, como miniatura do jogo. Isso pode ocupar bastante espaço já que os vídeos chegam a ter 20 MB por jogo.

Exemplo de miniatúra em vídeo

Controles

Existe uma infinidade de controles que podem ser utilizados com o Raspberry Pi. Sejam Gamepads (controles como nos consoles) ou no formato Arcade (Fliperama como esse). A maioria se conecta via USB diretamente ao PI mas existem alternativas como esse shield dos desenvolvedores do RetroPie, que utiliza os pinos GPIO do Pi para conectar botões de Arcade. Minha alternativa foi um pouco mais simples. Utilizei a placa Zero Delay, que se conecta ao USB e os botões se conectam a ela. É como se você desmontasse um controle e mudasse os botões mas isso já vem pronto. A placa possui um desenho simples e consequentemente diversos fabricantes. No Ebay você encontra ela em várias cores e com preços entre R$ 30,00 e R$ 70,00.

Placa Zero Delay para conexão dos botões

Outra opção, se você não está seguindo o formato Arcade, é utilizar um controle Bluetooth. Até mesmo o Controle do Xbox ou PlayStation pode ser pareado com o Pi.

Botões

Existem vários tipos de botões, iluminados, não-iluminados, joystick japonês (bola), joysitck americano (gota), mecânicos, ópticos etc.

Eles vão variar em estética, conforto e responsividade, mas o funcionamento e instalação é basicamente o mesmo. Você tem um par de contatos para a iluminação e outro para o botão. Você precisa prestar atenção à tensão (Volts) da iluminação e botões e conectá-los à placa.

No meu caso utilizei um joystick no padrão japonês, mecânico e iluminado e botões cromados iluminados por led branco. A escolha foi baseada em estética e durabilidade/manutenção (Lembrando que o Arcade é para uma criança de 3 anos).

https://www.instagram.com/p/BhFsD2zlG08/?utm_source=ig_web_copy_link

Joystick

Esse modelo em particular utiliza iluminação 12v e 4 switches mecânicos. Também possui uma trava para alternar entre os modos 2, 4 e 8 posições, caso esteja fazendo uma máquina específica para um jogo.

Modos do Joystick

Esse joystick possuía os contatos em dois padrões:

Padrão 1Padrão 2
R GND
U D
GNDU
LR
DL
Conexões do Joystick

Isso funciona basicamente da seguinte forma: Quando acionada uma direção o pino correspondente será conectado ao terra (GND). No caso, na verdade, alimentamos o GND com 5v e o pino correspondente à direção emitirá o sinal.

Por sorte a placa Zero Delay ja possui um conector no padrão 2, e eu não precisei utilizar vários cabos separados.

Placa Zero Delay e conexões

Esse joystick custa cerca de US$ 8,00 no Ebay comprando diretamente da china. Na época que comprei isso ainda significava cerca de R$ 25,00.

Botões

Depois de muito procurar botões com iluminação RGB acabei desistindo e comprando botões com Led branco, padrão Sanwa (embora genéricos) com o switch mecânico integrado. Esses botões são ótima qualidade e possuem uma manutenção muito fácil, desmontam de forma fácil para troca de partes. O lado ruim é que os botões que eu comprei possuem contatos de tamanho diferente dos cabos que vieram com o Zero Delay. Eu poderia ter aumentado os contatos com alguma ferramenta ou trocado eles, mas preferi soldar os fios diretamente aos switches dos botões, assim a chance do fio soltar é menor.

https://www.instagram.com/p/B-DGZfHg5F4/?utm_source=ig_web_copy_link

Fazia tanto tempo que eu comprei esses botões que já tinham sumido do meu histórico de compras. Procurando no Ebay encontrei o pacote de 10 por US$ 18,99. Então, estou calculando que custaram algo em torno de R$ 120,00.

Existem muitas formas de mapear os botões, eu optei por utilizar a que parece ser a mais popular, dessa forma:

Leds

Embora a iluminação dos Joysticks utilize 12V, o normal para Leds é alimentação em 3v ou 5v, com um resistor em série. Isso porque leds na verdade são diodos (Light Emiting Diode) e não lampadas (resistores). Isso fez com que os leds dos botões fossem a única coisa utilizando uma tensão diferente. Para resolver isso utilizei um circuito de Step-Down que se encontra pronto por cerca de R$ 12,00 no mercado livre e derivados.

Circuito Step-Down

Nesse circuito, basta ajustar no potenciômetro a tensão de saída desejada e qualquer tensão de entrada entre 4,5V e 36V será convertida.

Incluí um switch para poder desligar apenas a iluminação dos botões e joystick.

Os comprei os botões com Leds removíveis pois a minha intenção já era trocar por Leds RGB. Depois que vi a quantidade de contatos que já haviam no projeto, desisti de utilizar RGB individual para cada botão e optei por utilizar Rainbow Leds. Rainbow Leds são basicamente Leds RGB com o controlador integrado em um modo específico. Isso reduz drásticamente a quantidade de fios, conexões e componentes de um projeto se o efeito esperado for apenas rodar entre as cores (Spectrum cycling). Eu comprei um pacote de 50 desses no Mercado Livre com a troca lenta entre as cores por R30,00, incluindo os resistores para colocar em série.

Rainbow Led com resistor em série

O maior trabalho que tive foi soldar os resistores nos Leds, no tamanho certo para caber nos botões. Depois foi só realizar a troca, que é bem fácil nesse botão.

https://www.instagram.com/p/B-NZehQAuLP/?utm_source=ig_web_copy_link

Tela

Eu poderia ter comprado monitor ou TV para esse projeto. Mas o meu notebook de 17″ queimou, me deixando com uma tela 1080p em perfeito estado. Decidi que valia mais utilizar essa tela do que vende-la junto com as peças do notebook e ter que comprar outra tela para o Arcade. Encontrei essa mesma tela por R$ 678,00 no submarino.

Tela instalada no Arcade

A tela do notebook não tem uma entrada HDMI. A tela é ligada diretamente na placa-mãe por um cabo específico e toda a placa de controle da tela faz parte da placa-mãe. Para poder utilizar a tela com um cabo HDMI precisei comprar uma placa de controle para a tela. Uma televisão ou monitor é basicamente uma tela com uma placa dessa. Na placa há conexões HDMI, VGA, DVI, P2 (Audio out), P2 (IR in) e uma entrada de energia 12V. Essa placa custou R$ 110,00 no Ebay.

Control Board da Tela instalada

Som

A placa de controle da tela faz um bom trabalho em extrair o áudio digital da conexão HDMI para um sinal analógico enviado por um plug P2. Mas esse sinal não tem a potência necessária para alimentar um alto-falante. Para um sistema de alto-falantes é preciso um amplificador de áudio. Comprei um modelo simples, que varia entre US$ 3,00 e US$7,00 dependendo do site, paguei cerca R$ 20,00.

Amplificador de áudio

Esse modelo supostamente tem 30W e é alimentado por 12V, mas a fonte que usei não é capaz de entregar essa potência. Ainda assim, o som acabou ficando muito mais alto do que eu imaginava e tive que ajustar a escala nas configurações da tela. O amplificador possui um conveniente potenciômetro de volume que deixei exposto como um controle na parte superior do Arcade. Para os falantes utilizei 2 alto-falantes de televisão de 15W (para usar com o aplificador de 30W). O par custa na faixa de R$ 30,00.

Case

Caixa em que o móvel foi entregue

Eu planejava desenhar eu mesmo móvel no AutoCad e fazer uma máquina de corte à laser. Mas depois de perder o arquivo em uma falha de disco, decidi procurar por um pronto no Mercado Livre. Comprei o modelo Evo Xr 70cm, que se mostrou muito maior do que eu imaginava. Preço total pago na data R$ 275,00.

Móvel desmontado
Movel desmontado

Gostei muito da qualidade do móvel, as madeiras são mais grossas do que eu esperava e o acabamento emborrachado é muito bom. Só fiquei um pouco confuso em como montar o acrílico pois não há instruções.

Montagem do móvel

Adesivo

Minha ideia original era adesivar a laterial inteira do arcade com esse padrão de wallpaper que comprei. Mas depois de ver o acabamento do móvel percebi que não seria necessário e acabei usando para outro fim. Utilizei o adesivo no acrílico para deixar visível apenas a tela no meio do acrílico. Paguei R$ 69,90 no rolo de 2,5 m.

Padrão do Adesivo

Impressão 3D

Alguns ajustes que fiz, como um suporte estrutural para os botões fixados no acrílico e o suporte interno para as placas, foram impressas em 3D. A facilidade de ter uma impressora 3D em casa me evitou ter que comprar peças durante a quarentena, mas não é um item necessário para a construção.

https://www.instagram.com/p/B-NqOYIggOq/?utm_source=ig_web_copy_link

Muitas peças poderiam até ter sido feitas de madeira, como o suporte das placas, ou chapas de metal, como a fixação dos cabos de energia.

Suporte de botões
Suporte dos botões para ligar o arcade e as luzes

RetroPie

A instalação do RetroPie é bem indolor. Basta baixar a ultima imagem de sistema compatível no site oficial. Gravar a imagem no cartão com o programa Win32DiskImager ou outro de sua preferência. E configurar os controles na interface. É tudo bastante intuitivo e há diversos tutoriais no YouTube.

Menu Retropie

O legal do RetroPie é que ele já vem com emuladores de diversas plataformas e você só tem que escolher os temas e carregar suas Roms.

Como o Raspberry Pi 3B tem wifi, você pode conectar à rede e transferir esses arquivos pela rede, o que facilita muito. Outra coisa legal que a rede possibilita é que ele baixe as miniaturas e videos dos jogos. Isso é bem legal pois quando ele fica ocioso, os videos dos jogos ficam passando como proteção de tela. Esse vídeo explica bem a configuração disso:

Como o visual ficou bem colorido, escolhi uma tela de carregamento e tema com estética Synth Wave para combinar. A introdução é a Cartridge Pop Alternate abaixo e o tema é o Snes Classic Mini.

Cartridge Pop Splash Screen

Não sou advogado mas…

Lembro de ter estudado que, tecnicamente, segundo a L9609/98 emulação não é pirataria, se e somente se, você possuir o jogo original. Nesse caso a emulação se enquadra na chamada “Cópia de Salvaguarda” (Backup). Ou seja, se você tem o jogo e está utilizando uma cópia para proteger a original isso não constitui “ofensa aos direitos do titular”.

Em resumo, se você está emulando jogos que fizeram parte da sua infância e você ainda tem guardado no armário, tudo certo. Se você baixou um torrent com milhares de jogos que nunca viu, você pode estar sujeito às sanções previstas na lei, que podem chegar em até 2 anos de detenção. Algo para ter em mente se você pretende colocar o Arcade em um estabelecimento público.

Também existem jogos muito antigos que já caíram em domínio publico. Esse site é totalmente dedicado à esses jogos.

No meu caso, estou na primeira categoria, mas dada a quantidade de cartuchos acumulados ao longo dos anos, não é problema.

Cartuchos de vídeo-game

Custo total

Como reaproveitei muitas partes, meu custo total ficou em R$ 831,00. Se eu tivesse comprado tudo o custo ficaria em R$ 1933,90. Claro que eu provavelmente trocaria alguns itens, como a tela. Não estão inclusos frete, taxas e materiais utilizados na construção (Solda, isolamento termo-retrátil, cabeamento etc.).

PeçaValorReaproveitado
Raspberry 3B+R$ 339,90
MicroSD 64GB U10R$ 65,00
Power HatR$ 60,00
Joysticks (x2)R$ 50,00
Botões (x20)R$ 120,00
Zero Delay (x2)R$ 60,00
Step-DownRS 12,00
LedsR$ 30,00
TelaR$ 678,00
Placa de Controle da TelaR$ 110,00
Cabo HDMIR$ 20,00
AmplificadorR$ 20,00
Alto-FalantesR$ 30,00
MóvelR$ 270,00
AdesivosR$ 69,90
TotalR$ 1933,90R$ 831,00

, ,