RetroPi | RetrOrangePi

Iniciei este projecto matar saudades dos jogos da minha NES e dos jogos da Mega Drive que jogava em casa do meu amigo Cocas. Tenho vindo a adaptar e a actualizar este post, e agora aumentei para duas plataformas, o Raspberry Pi v2/v3 e OrangePi.

kits-rpi-retroSe têm um RaspPi , olhem para o projecto RetroPie que é uma distro já toda “kitada” para criar-mos um emulador da maior parte das consolas antigas, e ainda alguns jogos antigos de PC como o Doom ou o Duke Nukem 3D.

Se têm um OrangePi, olhem para o projecto RetrOrangePi que foi recentemente actualizado para a versão 2.5 (25 de Set/2016), com imensos bugs corriguidos. Tem como base o armbian 5.20, ganhando bastante fexibilidade do Debian.

Comecei por encontrar este artigo na LifeHacker, e agora, para não me esquecer, decidi criar o meu próprio tutorial.

Se tiverem mais dúvidas poderão sempre aceder às ajudas do setup do RetroPie, assim como à pagina do The RetroPie Project.

Instalação RaspPi / OragePi

Para instalar a distro é relativamente simples, descarregar a imagem respectiva dos sítios que deixei acima para a vossa versão do RaspberryPi ou do OrangePi e depois passar para o SD com a aplicação Win32DiskImager.

Aconselho para já duas coisas, um teclado (wireless dá muito jeito, mas não Bluetooth) e se tiverem um comando, seja ele de que consola for, desde que seja USB, ligem-no agora a uma das portas do Pi. Depois de instalar o SD e arrancar o Pi, ele deve entrar para a Emulation Station e deve detectar um gamepad, e de seguida deve pedir para o configurar.

Configuração RaspberryPi 1

Comecei inicialmente com um Pi Model B 512Mb e por isso ainda tenho este trecho que pode ser necessário para quem ainda tenha um RPi. Agora o passo seguinte é expandir a partição. Contém que tenham atenção no arranque a qual o IP que o Pi adquiriu, ou então, já dentro do Emulation Station > RetroPie > Show IP Adress. Como o servidor SSH já vem instalado por defeito, é só agarrar no Putty e ligar-mo-nos a ele.

sudo raspi-config

E escolher a primeira opção: 1 Expand Filesystem. Como os emuladores puxam um bocadinho por ele, o melhor é já fazer um overclock pequeno para podermos testar os mais básicos. Escolher a opção: “7 Overclock“, “Ok“, e ecolher “Modest” para já!

Configuração RetroPie (3.0)

Outro melhoramento que encontrei é uma alteração no modo de vídeo. Aceder ao RetroPie-Setup e activar uma opção no retroarch.cfg.

cd RetroPie-Setup/
sudo ./retropie_setup.sh

E depois ir: “3 Setup/Configuration” > “304 Edit RetroPie/RetroArch configuration” > “3 Manually edit global configs” > “3 all/retroarch.cfg” e alterar a opção, que está dentro das opções vídeo.

set video_threaded = true

Caso vos aconteça que o comando funcione dentro do Emulation Station, mas não dentro dos jogos, há que efectuar um procedimento para que tudo funcione. Aceder novamente por SSH com o putty e ir directamente ao retropie_setup como expliquei acima e depois ir a “3 Setup/Configuration” > “317 Install RetroArch joypad autoconfigs“.

EDIT: Importante: Depois do update que normalmente se faz em qualquer distribuição linux baseada em Debian, fiquei sem comando, dá um erro logo no boot. Se alguém me souber ajudar, agradeço o vosso tempo. Portanto, não actualizar para já! Ver o update a seguir!

UPDATE: Para as versões 3.3.x/3.5.x já não é preciso definir o “set video_threaded = true”.

Audio

Outra alteração que podem fazer é a saída do áudio, caso não se esteja a usar HDMI (embora isto possa ser feito depois dentro da UI da EmulationStation) que está dentro da opção: “8 Advanced Options > A9 Audio > 1 Force 3.5mm“.

Rede

Outra coisa que gosto de fazer fazer logo, antes de reiniciar (que ele vai pedir ao sair do raspi-config ou do retropi_setup) é definir IP fixo. Para isso, editar:

sudo nano /etc/network/interfaces

E depois definir à eth0 os seguintes valores (substituir pelos vossos):

iface eth0 inet static
        address 10.0.0.35
        netmask 255.255.255.0
        gateway 10.0.0.1
        network 10.0.0.0
        broadcast 10.0.0.255

Agora é só reiniciar e já ira ficar com IP fixo e com as opções definidas.

Comandos

A configuração dos comandos agora é linear, tal como já foi dito, logo na entrada do Emulation Station. Isto porque (quase) toda a configuração assenta sobre o RetroArch, uma peça de sofware que gere os controladores e as configurações dos comandos para os emuladores. Assim a configuração dos botões é normalmente transitória para cada emulador, mas isso ainda nem sempre acontece (ainda), como é o caso do emulador por defeito da NEO GEO, o Finalburn Alpha Plus.

Para termos a certeza de que botões se está a falar e de que forma estão mapeados, via SSH podem ser feitos os seguintes testes, ao que “js0” corresponde ao primeiro comando/joystick, “js1” ao segundo, e por aí fora:

jstest /dev/input/js0

O resultado será algo parecido com a seguinte linha, em que à pressão de cada botão, o sistema informa “on” ou “off”.

Axes:  0:-32767  1:     0  2:-32767 Buttons:  0:off  1:off  2:off  3:off  4:off  5:off  6:off  7:off  8:off  9:off

Para o exemplo de um comando similar à PS1 (sem os analógicos), deixo aqui o correcto mapeamento com o nome dos botões:

Axes: Botões direccionais
0: //
1: //
2: //
Buttons:  
0: Botão 1 ou Triângulo
1: Botão 2 ou Circulo
2: Botão 3 ou X
3: Botão 4 ou Quadrado
4: Botão 2 Left
5: Botão 2 Right
6: Botão 1 Left
7: Botão 1 Right
8: Botão Select
9: Botão Start

Comandos SIXAXIS/Dualshock PS3

Depois de alguma investigação descobri que a versão mínima do Bluetooth é a Bluetooth 2.0 EDR. Esta informação está aqui!

Caso tenham uma dongle Bluetooth e queiram saber que versão é, poderão efectuar os passos descritos aqui, mas que resumindo são: numa máquina Windows > Device Manager > Bluetooth > Generic Bluetooth Radio/USB Bluetooth > (separador) Advanced > e olhar para as versões de HCI e LMP que estão no fim da janela.

blouetooth version

As versões LMP correspondem às versões to Bluetooth respectivas:

  • LMP 0.x – Bluetooth 1.0b
  • LMP 1.x – Bluetooth 1.1
  • LMP 2.x – Bluetooth 1.2
  • LMP 3.x – Bluetooth 2.0 + EDR
  • LMP 4.x – Bluetooth 2.1 + EDR
  • LMP 5.x – Bluetooth 3.0 + HS
  • LMP 6.x – Bluetooth 4.0
  • LMP 7.x – Bluetooth 4.1

Finalmente chegou-me dos lados do oriente a minha dongle Bluetooth 4.0 de teste e parece que foi uma excelente compra, pelo preço e pela compatibilidade. Depois de entrar no RetroPi-Setup (apenas testei ainda em OrangePi) e escolher C Configurantion / Tools > 812 ps3controller > apenas consegui colocar o meu comando SHENGHIC 2009/0708ZXW-V1Inc. PLAYSTATION(R)3Conteroller (que podem ver no final deste post) com > 2 Install PS3 controller (clone support gasia). Depois foi só emparelhar (curioso é que ficou com as 4 luzes acesas) e ficou a funcionar. Passado alguns minutos sem mexer fiquei sem comando, mas depois de reiniciar, já mostrou o led 2 ligado e já estava a funcionar direito.

Recursos

Adaptadores de comandos Retro originais

Para quem como eu anda a tentar recuperar os comandos antigos de consolas, especialmente de NES, aconselho vivamente a uma pesquisa aprofundada pela net. São inúmeros os projectos ou produtos que podemos encontrar, e aqui há que decidir sobre que abordagem mais nos interessa, se numa DIY (Do It Yourself), se numa de comprar já o produto final. Para quem gosta de Arduinos, vai se sentir muito à vontade aqui.

Para quem gosta do trabalho já feito, aconselho a consulta dos produtos da Mayflash, tem carradas de adaptadores/conversores dos vossos comandos de consolas para USB, compatíveis com PC (logo com os Pi’s) e até de umas consolas para outras. Aconselho a compra através do AliExpress, é bem mais barato e apanha-se promoções com preços porreiros:

Pessoalmente, adoro a abordagem DIY, e se são como eu, vão gostar de saber que me envolvi num projecto com um rapaz Finlandês que encontrei no grupo do Facebook da distribuição RetroOrangePi. Temo-nos estado a ajudar mutuamente e podem consultar todo o projecto aqui Arduino-USB-HID-RetroJoystickAdapter. Com este projecto tive a opurtunidade de aprender a mexer em Arduinos ;).

Tenho comandos NES e Mega Drive em casa, e é nestes que para já me vou debruçar, mas são livres de me ajudar a aumentar a resposta a todas as plataformas. Já tenho pronto o meu adaptador 2x Comandos Sega Mega Drive, desenhado e adaptado por mim (o qual está disponível aqui).

Comandos de consolas S/NES

Aconselho a consulta dos seguintes projectos/produtos:

Para concretamente ligar o comando NES, há que seguir este tutorial em conjunto com o anterior, mas espero num futuro próximo poder criar o meu próprio how-to.

Depois de construir todas as ligações físicas, há que criar as ligações lógicas. Mas em princípio será relativamente fácil, pois o projecto SNESDev já está disponível através do menu de configuração do retropi.

Ligações

Comandos SEGA MegaDrive

Sim, tenho um em casa perdido, e já construí o meu adaptador com base no projecto Arduino-USB-HID-RetroJoystickAdapter disponibilizado no GiHub. A partir deste podem ler o how-to de como construí o meu adaptador com 2 portas Serie/DB9, um Arduino ATmega32u4, muita paciência, desenhos, estação de soldar e bocadinhos de cabo de rede/telefone.

Recursos

ROMS

As ROMS devem de ser carregadas para as respectivas pastas. Como o RetroPie já tem SAMBA pré-configurado, é só aceder através do explorador do Windows (\\10.0.0.35) em em GNU/Linux ligar ao Servidor samba ao IP 10.0.0.35 e verão listadas várias pastas. É dentro da pasta \roms que as deverão colocar, dentro de cada respectivo nome da consola. Assim que o RetroPie reiniciar, ele irá detectar os ficheiros e disponibilizar as “consolas” no menu.

DICA: Convém dar uma olhada na wiki do Retro Pi, porque em muitos dos emuladores não é necessário descompactar as roms, como é o caso da NES e da NEO GEO.

ATENÇÃO: sempre que colocarem novas roms, é necessário reiniciar o sistema até à versão 3.3.x, e apenas reiniciar o Emulation Station a partir desta.

ROMs+BIOS

Acreditem que, se já partiram um pouco a cabeça com os sistemas que precisam de uma BIOS, não são os únicos, especialmente com a NEO GEO. Em primeiro lugar, dêem uma vista de olhos a este post da pplware e fiquem com bem a noção de quais os sistemas que precisam de BIOS. A tabela abaixo mostra os sistemas e a respectiva localização onde devem ser colocadas as BIOS para que possam correr as respectivas ROMS/Jogos.

EMULADOR LOCAL ROMS
Amiga /home/pi/RetroPie/BIOS/kick13.rom
/home/pi/RetroPie/BIOS/kick20.rom
/home/pi/RetroPie/BIOS/kick31.rom
Atari 800 /home/pi/RetroPie/BIOS/ATARIXL.ROM (BIOS for Atari XL/XE OS)
/home/pi/RetroPie/BIOS/ATARIBAS.ROM (BIOS for the BASIC interpreter)
/home/pi/RetroPie/BIOS/ATARIOSA.ROM (BIOS for Atari 400/800 PAL)
/home/pi/RetroPie/BIOS/ATARIOSB.ROM (BIOS for Atari 400/800 NTSC)
/home/pi/RetroPie/BIOS/atari5200.rom (BIOS for the Atari 5200)
Atari 7800 (Opcional). /home/pi/RetroPie/BIOS/7800 BIOS (U).rom
Dreamcast /opt/retropie/emulators/reicast/data/dc_boot.bin
/opt/retropie/emulators/reicast/data/dc_flash.bin
GBA /home/pi/RetroPie/BIOS/gba_bios.bin
Intellivision /home/pi/RetroPie/BIOS/exec.bin
/home/pi/RetroPie/BIOS/grom.bin
Macintosh /home/pi/RetroPie/roms/macintosh/mac.rom
/home/pi/RetroPie/roms/macintosh/disk.img
PC Engine / Turbografx-16 /home/pi/RetroPie/BIOS/SYSCARD3.PCE
PSX /home/pi/RetroPie/BIOS/SCPH1001.BIN  Emuparadise
Neo Geo /home/pi/RetroPie/roms/neogeo/neogeo.zip
/home/pi/RetroPie/roms/fba/neogeo.zip
Sega CD /home/pi/RetroPie/BIOS/us_scd1_9210.bin
/home/pi/RetroPie/BIOS/eu_mcd1_9210.bin
/home/pi/RetroPie/BIOS/jp_mcd1_9112.bin
Sega Saturn /home/pi/RetroPie/BIOS/saturn_bios.bin
Videopac or Odyssey 2 /home/pi/RetroPie/BIOS/o2rom.bin

E onde podem descarregar as BIOS? Pois, ai meus amigos, terão de partir a cabeça, tanto como eu, e encontra-las não vai ser tarefa nada fácil devido a todas as restrições legais de copyright (percebem porque é que gosto tanto de open source?)

Emuladores

NEO GEO

Acreditem que perdi horas de volta diste emulador. De inicio a Wiki do RetroPi assustou-me seriamente quando me falou que tinha de as tornar compatíveis com a versão do emulador. Como sou teimoso, depois de largas horas de pesquisa, agradeço ao user “psp_revival” do fórum libretro.com que resolveu o meu problema com esta simples frase: “Just Google fba roms its that simple.

Acontece que o emulador principal que o RetroPi 3.3.x usa para NEO GEO é o Finalburn Alpha Plus (FBA ou PiFBA), e se eu encontrasse a BIOS e as ROMS para esse emulador, o meu problema estaria resolvido. E assim foi, com um pouco de pesquisa la encontrei a BIOS e as respectivas ROMS a funcionarem. Foi só colocar tudo junto. Não aconselho a usar ROMS NEO GEO e BIOS da coolrom.com para os Rasp/esta versão.

Como ainda não resolvi o problema do comando, aconselho a ver o vídeo abaixo por causa de possíveis configurações necessárias.

Configuração dos Comandos NEO GEO

Se estiverem a usar esta versão 3.3.x /3.5.x do Retropi, o emulador NEO GEO não é o GNGEO mas sim o Finalburn Alpha Plus, e portanto, a descrição que está no vídeo não está inteiramente correcta (a não ser alterem o emulador para o GNGEO nas restantes configs). Para configurar devidamente o comando, o que não é feito automaticamente (ainda), deixo aqui o exemplo para um comando similar à PS1. Igualmente através de SSH, aceder e abrir o seguinte ficheiro:

nano /opt/retropie/emulators/pifba/fba2x.cfg

E depois remapear da seguinte forma para que o comando fique devidamente configurado (tenho em conta o que falei anteriormente em “Ver botões dos Comandos“):

[Joystick]
# Get codes from "jstest /dev/input/js0"
# from package "joystick"
# Defaults to XBOX 360 Controller
A_1=0
B_1=1
X_1=2
Y_1=3
L_1=6
R_1=7
START_1=9
SELECT_1=8
#Joystick axis
JA_LR=0
JA_UD=1
#player 2 button configuration
A_2=0
B_2=1
X_2=2
Y_2=3
L_2=6
R_2=7
START_2=9
SELECT_2=8
#Joystick axis
JA_LR_2=0
JA_UD_2=1

Como se devem ter apercebido, aproveitei e configurei logo para os dois comandos de teste que tenho. Sem certezas, mas esta configuração deverá ser também válida para os comandos PS3.

A partir da versão 3.3.x, é também possível aceder às configurações através de CIFS/SMB. O que significa que é possível alterar este ficheiro de configuração a partir do Explorador do Windows, acedendo à respectiva paste de configuração.

Aconselho ainda a leitura:

Sega CD

Não necessita de grandes configurações, apenas a nota para provavelmente ter de se arranjar as BIOS para as três áreas (Europe, USA e Japan) consoante a versão do jogo que se quer jogar. Cuidado também para sempre que se colocar a ROM (normalmente um *.bin), esta deverá ser acompanhada por um ficheiro *.cue com o mesmo nome, que é a lista das músicas em cada parte do CD.

Playstation 1

Fiquei admirado com o desempenho do Rasp1 a emular PSX (mesmo sabendo que o hardware é superior). Também não é necessário grandes configurações, apenas é necessário arranjar a BIOS e depois carregar as roms em qualquer um destes formatos .bin .cue .cbn .img .iso .m3u .mdf .pbp .toc .z .znx.  Respeitar as localizações que informo em ROMs+BIOS.

ZX Spectrum

Obviamente não é para falar do desempenho, mas sim de vos relembrar que, para Z80, convêm ter um teclado ligado. Dentro do jogo depois poderão ter opções que vos permitirão configurar o comando (como é o caso do Chuckie Egg), mas muitos apenas funcionam por teclado.

PC

As mesmas recomendações que deixo para ZX Spectrum, deixo para PC. Sem teclado não conseguem ir muito lonje. Já consegui instalar, mesmo à moda antiga, o Wolfenstein 3D. Jogar, igualmente à moda antiga, com o teclado…. Só faltou memso o som do leitor das diskettes aquando a instalação. Para voltarem atrás no tempo, enviem os ficheiros para a pasta /home/pi/RetroPie/roms/pc e depois arranquem o DOS Box.

Para os mais puristas e quiserem arrancar directamente os jogos DOS a partir do Emulations Station, convém ler este artigo. Para mapear um comando para DOXBox, ler este artigo.

Hotkeys

Hotkeys são botões ou pré-configurações de botões destinadas a efectuar determinadas acções. Ora, uma delas, para não dizer a mais importante, é ter a possibilidade de salvar o jogo em determinado momento (quando estamos prestes a derrotar um boss mas temos pouca vida). Deixo aqui a configuração para o comando:

Hotkeys Acção
Select+Start Sair
Select+L2/Right Shoulder Salva
Select+ R2/Left Shoulder Carrega
Select+Right Input State Slot Increase
Select+Left Input State Slot Decrease
Select+X RGUI Menu
Select+B Reset

PS: Quando temos comandos definidos, é provável que as hotkeys para teclado (F2 para salvar/F4 para carregar) deixem de funcionar.

No entanto tive alguns problemas com o Emulador NEO GEO  Finalburn Alpha Plus (para não variar) em que as hotkeys não funcionão. Memso editando à mão o ficheiro “/opt/retropie/configs/all/retroarch.cfg” e activando as segintes opções para que funcionasse pelo menos com o teclado:

# Saves state.
input_save_state = f2
# Loads state.
input_load_state = f4

 

Hardware

Raspberry Pi v1 B

Já testei este sistema com um Model B que comprei via ebay na Inglaterra e foi trazido por um amigo meu. Tenho o usado apenas para alguns testes, e deixo já o bom conselho de sempre utilizarem um cartão Class 10. Esqueçam emuladores mais avançados com este sistema (N64, PS1).

Raspberry Pi v2 B+

Já instalei 2 sistemas com este Pi, pelo menos em Sega 32X e N64 nota-se realmente a diferença. Aconselho o v2 para projectos com estes emuladores.

Raspberry Pi v3 B+

Também já instalei sistemas com este Pi, mas um GRANDE cuidado a ter, mesmo antes de o ligarem, é colocar bons dissipadores, especialmente no processador. O Pi3 aquece que se farta, e a emular, frita um ovo! Na realidade aconselho mesmo aquelas caixas com uma ventoinha que ajuda a arrefecer todo o sistema, como esta que está à venda no AliExpress.

OrangePi PC

retroorangepiTenho estado a usar a versão RetrOrangePi num OrangePi PC, que já vem com todas as BIOS instaladas (o que poupa imenso trabalho, kudos ao Alerino Reis e Stevie Whyte). Na versão que testei, a 2.0,  o comando PS3 estava a funcionar muito bem por cabo. O desempenho é muito bom, mas aconselho vivamente a colocar uns dissipadores em cima do processador e da memória. Como já disse noutros posts, estas “maquinas” aquecem muito.

Comando PS3

Como comando estou a usar este comando comprado no ebay, um SHENGHIC 2009/0708ZXW-V1Inc. PLAYSTATION(R)3Conteroller, ligado com cabo USB. e já via Bluetooth.

Comando Twin Dilong PU201T

Dilong-dobra-PU201T-dobra-jogo-USB-joystick-jogo-de-jogo-de-suporte-onlineNo entanto, como na versão 3.3.x não o posso usar o comando PS3 por cabo, às vezes na loja do Chinês mais próxima encontram-se destas coisas que podem ser bastante úteis. Isto é Dilong PU201T, um comando gémeo (dois comandos num só cabo) que o GNU/Linux chamou de Twin USB Gamepad,  e que funcionam de forma excelente no Rasp. Pelo preço, nada mau, e resolve o problema das poucas entradas USB das primeiras versões.

Comando Game Prince JH-7001

Um comando tipo PS1, sem os analógicos e que é muito fácil de encontrar em qualquer loja do chinês. Serve perfeitamente para as consolas mais antigas. É só ligar e configurar. Não comprar a mais de 5€ 😉 .

Nota final

Deixem-me críticas e sugestões nos comentários.

Recursos


recalboxOS

Enquanto procurava detalhes sobre o RetoPi, encontrei este sistema operativo, muito similar ao anterior.

7 Replies to “RetroPi | RetrOrangePi”

  1. Também tenho isso a correr cá em casa, mas num PI2. O CPU já permite uma emulação melhor e os jogos ficam mais fluidos e muito próximos da experiencia com a consola original.

    Eu estou a usar dois comandos USB réplicas do comando da Super Nintendo, bastou ligar às portas do PI e funcionaram perfeitamente.

  2. Nitendo 64 e Sega 32X, já testaste? Como corre? No Pi 1 mesmo a 900Mhz fica-me lentinho lentinho!

  3. N64 não testei, mas tenho ideia que corri jogos 32X e ficava porreiro. Logo faço um teste e digo qq coisa.

  4. […] o perfil do IERetroPi | RetrOrangePi Search […]

  5. Não consigo rodar as ROMs de neo geo! Baixei para fba no site indicado, a bios no mesmo lugar (neogeo.zip) e não abre… 🙁
    O que pode ser?

  6. Também tive alguns problemas, mas depois a emuparadise ajudou-me! 😉

  7. […] +infos: http://www.adrianoafonso.net/blog/2015/retropi/ […]

Deixe uma resposta

15 + seven =