sexta-feira, 29 de março de 2019

Não tenho tempo para jogar clássicos com meus amigos. Jogatinas online com o Mednafen

A popularização dos serviços online trouxe grandes atrativos e facilidades pra os amantes de jogos eletrônicos. Serviços online permitem a compra de jogos  para o seu computador de forma rápida, fácil e econômica. No passado jogos online eram um atrativo para várias pessoas que usavam suas conexões discadas e placas fax modem para incríveis desafios em jogos online como Quake, Doom, Diablo, Age of Empires entre outros. Nesse momento emuladores como zSNES em sua versão estável 1.42 permitiu jogos em rede, e aplicativos de redes virtuais como Hamachi permitiram jogar com amigos diretamente de suas casas. 
Na internet exitem diversos tutoriais de como jogar usando esse emulador e segue o passo a passo de como utilizar essa ferramenta:
ZSNES - Tutorial para jogar online


Esse emulador ainda é usado por vários jogadores em torneios realizados no Brasil e exterior, o Juan do canal Snestalgia é um entusiasta da ferramenta e organiza e participa de vários jogos online. Segue um vídeo de um torneio de Street Fighter II turbo online, usando o zSNES.

Campeonato Street fighter II turbo SNES 

Várias pessoas organizam essas competições, e geralmente o nível é  altíssimo. Para participar destes torneios e campeonatos é necessário uma boa conexão para que o jogo não perca a sincronia. Durante o jogo as telas exibidas para os jogadores são diferentes mas os comandos realizados são os mesmos durante uma partida. A falta de sincronia ocorre devido o atraso de envios de pacotes durante a conexão. Os jogadores geralmente pausam o jogo para combinarem pontos de sincronia, para minimizar o problema de telas diferentes para os jogadores.

Amigos relembrando jogos antigos
zSNES é surpreendente, mesmo depois de tanto tempo de seu lançamento ele continua atual e jogável no online e offline. Entretanto existem ferramentas mais modernas para relembrar aquela jogatina com os amigos.
Existem outros jogos e consoles que as pessoas gostariam de jogar online, para essa necessidade o mednafen apresenta muitas vantagens. Caso não conheça o mednafen, acesse o artigo que descreve a instalação e configuração do emulador em Linux e Windows:



Mas como eu preciso para jogar online?
→ Os computadores empregados na jogatina devem ter a mesma versão do emulador instalado.

→ As roms utilizadas devem ser a mesma para todos os jogadores.
→ A conexão de internet rápida.

Passos para jogar online com o mednafen v 0.9.48 online no linux
1) Selecione a rom, ela deve ter a opção para 2 ou mais jogadores. A mesma rom e nome de arquivo deve ser usada pelo outro jogador que participará do evento.


2) Com o jogo aberto digite a letra "t" .

3) No canto inferior direito da tela surgirá um input.

4) Digite "/server omednafenbr.duckdns.org"
O endereço pode ser o IP da máquina em uma rede local ou via hamachi, entretanto é necessário configurar um servidor.
Outra possibilidade é o uso de alguns servidores prontos, e para nossa sorte no brasil contamos com um excelente servidor:
repog.ddns.net (República Old Gamer/Brasil)
omednafenbr.duckdns.org (online until 2020-07-25, free vps account)
netplay.fobby.net (EUA)
mednafen-us.emuparadise.org (EUA)
mednafen-nl.emuparadise.org (Holanda)
node.asnitech.co.uk (Inglaterra)
speedvicio.ddns.net (Itália)
s1.mednafen-it.org (Itália)
gs.emu-land.net (Rússia)
emu-russia.net (Rússia)


5) Uma vez conectado, apareceram o status confirmando o seu ingresso no jogo.

6) Você pode trocar o seu nick digitando "/nick NOVONOME":

7) Verifique o ping digitando "/ping"
Um ping baixo significa que o tempo de resposta entre a sua máquina e o servidor é boa garantindo uma perda mínima de pacotes.

8) Alguns recursos como Save state estão disponíveis para facilitar a sincronia no jogo, feitos como rewind estão desativados no jogo online.

9) Com o jogo escolhido e configurado, peça para o player 2 conectar-se ao servidor. Automaticamente ele entrará como player 2 e o jogo pode começar. O player 1 sempre será o que conectou primeiro ao servidor, os outros players serão definidos por ordem de ingresso no servidor, que podem ser de 2 a 4 players.

10) Para confirmar que os outros jogadores estão conectados digite: "/list"

O resultado pode ser observado nos vídeos a seguir:
 
Rom Hack - Magical Quest 3 - Mickey e Donald SNES

 
Bomberman 5 Snes

É possível usar linux ou windows em jogos online, ambos emuladores devem usar o mesmo núcleo de bnes, versão de rom e versão do mednafen.

Para windows 7 foi usado o medguiR e o mednafen v 0.9.48
1) Selecione a rom.

2) Clique no botão direito do mouse sobre a rom --> Netplay --> (coloque seu Nick), servidor (no exemplo o repog.ddns.net) e --: Start Game Online:

3) Uma vez conectados os comandos do emulador são semelhantes para windows e linux. O procedimento é igual ao linux.

Link Medgui/windows pré configurado.
Descompactar em C:\  https://drive.google.com/open?id=1qKQOcoBBVmj1o8EKxWeQr0yzpdolgrm_


 
Bomberman 5 - snes  / Windows - Linux online

Street Fighter II Turbo - Snes / Windows - Linux online

Vantagens
  • Possibilidade de jogar diferentes plataformas, como snes, megadrive, mastersystem e nes.
  • No linux a conexão apresentou ping médio de 33 ms. No windows o ping foi de 36 ms.
  • Maior sincronização de tela comparado com zSNES.
  • Não precisa de rede local ou rede virtual via Hamachi para jogar online.
  • A conexão ocorre via servidor diminuindo a latência entre os comandos.
  • Possível jogar em máquinas com windows ou linux. 

Desvantagens
  • Input lag devido a conexão online (presente em qualquer jogo online).


Referências 

[1] Como Jogar Online Pelo Mednafen - Multi-Emulador (Tutorial, Configuração de Netplay) [PC] - https://www.youtube.com/watch?v=0qyyf9rychY

[2] Mednafen - Multi-system emulator - https://mednafen.github.io/ 

[3] Netplay mednafen - https://mednafen.github.io/documentation/netplay.html

Dificuldades no processo? Deixe suas dúvidas, sugestões e compartilhe sua experiência.

Obrigado e até a próxima

Agradecimentos pessoas que apoiaram esse artigo:
Masato CJAP - http://masatocollector.blogspot.com/ e https://www.youtube.com/user/TheMasatocollector/featured


Juliano 
 [29/03/2019]




terça-feira, 12 de março de 2019

Retroarch - Por que eu preciso de vários emuladores se tenho todos em um só?

 Jogos antigos em qualquer plataforma? 😮


O RetroArch é um frontend que reune diversos emuladores permitindo rodar jogos de vários consoles antigos em diferentes computadores, sistemas operacionais e consoles através de sua interface gráfica unificada. As configurações de controles, video e som são unificadas facilitando a configuração simultânea de todos as plataformas emuladas.


https://forums.libretro.com/
RetroArch é um frontend de referência oficial para "núcleos" (cores) libretro: aplicativos que incluem emuladores, controladores de joysticks e outros programas para remoção de inputlags, reprodução de som e imagens sem interrupções e recursos multimídia. As configurações unificadas do retroarch facilitam otimização dos núcleos de emulação com recursos avançados como shaders, netplay, retrocesso, save states, vídeos e integração com retroachievements.
https://retroachievements.org/forum.php
Existem diverso emuladores disponíveis (link*), entretanto o que chama atenção neste projeto que apresentou sua primeira versão em 2010 é uma interface fácil, configurável e amigável.

A instalação do Retroarch  é relativamente simples em computadores de diferentes sistemas operacionais, a página do projeto disponibiliza os instaladores para Windows 10, 8, 7, XP, 2000, ME, 98SE, 98, e 95.


No linux a instalação pode ser feita via terminal nas versões de debian, ubuntu e linux mint:

sudo add-apt-repository ppa:libretro/stable && sudo apt-get update && sudo apt-get install retroarch* libretro-*


Outra forma de instalação em ambiente linux é via Flatpak.
 
Flatpak é um utilitário para implantação de software, gestão de pacote e virtualização para Linux. Uma aplicação empacotada no formato Flatpak provê um ambiente sandbox onde o usuário pode executar programas em isolamento do resto do sistema, ou seja, onde cada aplicação empacotada possui apenas as bibliotecas necessárias para a execução do programa, o que facilita a sua instalação independente da versão de linux que você trabalha ou a existência bibliotecas pré existentes em seu sistema.

flatpak remote-add --user --if-not-exists flathub https://flathub.org/repo/flathub.flatpakrepo
flatpak install --user flathub org.libretro.RetroArch
flatpak update --user org.libretro.RetroArch


Outro caminho é a instalação do software via Snappy que é software de implantação semelhante ao flatpak projetado e construído pela Canonical para o sistema operacional Ubuntu. Os pacotes, chamados de 'snaps' e a ferramenta para usá-los, 'snapd', funcionam por toda uma gama de distribuições Linux e, portanto, permitem implantação de software upstream(cadeias produtivas) de forma distro-agnostic(sem distribuição específica).


sudo snap install retroarch
sudo snap connect retroarch:raw-usb && sudo snap connect retroarch:joystick



Todas essas facilidades de instalação fazem o Retroarch um sistema multiplataforma para computadores linux e como consequência boa integração com o android, possuindo versões estáveis disponíveis no GooglePlay:





Por padrão o RetroArch disponibiliza um joystick virtual por touch screem para essa versão e ainda possibilita o uso de joysticks bluetooth.



Outras plataformas e sistemas também são abrangidos pelo retroarch como IOS, apple macOS, OSX. Outro fator que chama a atenção é o uso dessa poderosa ferramenta em consoles antigos e modernos.



Na página oficial do emulador constam vários sistemas compatíveis com o retroarch que configuram consoles antigos e modernos como xbox classic, Psvita, PSP, PS2, PS3, Nintendo Switch, Wii U Wii, Game Cube, Nintendo3DS e o navegador Mozila Firefox. Os desenvolvedores prometem que logo poderemos ter versões para Xbox one e PS4.
Outro sistema que muito utilizando em arquitera ARM em computadores como o Rapsberry PI contam com uma versão do Retroarch com o nome Lakka.
Lakka é inspirado em projetos como RetroPie, Recallbox e PiMAME combinanado um ambiente Linux dedicado com software de frontend de emulação de jogos executado em uma pequena placa de desenvolvimento de baixa potência. No entanto, esses projetos se não se concentram apenas no hardware do Raspberry Pi.


O Lakka pode rodar em diferentes arquiteturas e trata-se de uma versão de linux com o Retroarch pré instalado e configurado. Basta escolher o computador que deseja instalar e baixar a imagem compatível com o hardware:




Além do raspberry e pcs esse sistema pode operar em outras plataformas como o Odroid, Wettec, Allwinner e similares ampliando a gama de plataformas de instalação.
A instalação do Lakka em rapsberry pi, pc ou outras plataformas ocorre com a gravação de uma imagem ISO em um SSD ou disco da máquina a ser instalada. A instalação deste sistema é similar ao recalbox (Artigo do Arcade Portátil).
Para gravação simplificada em SSD's ou HD's um programa  compatível com windows/linux/mac bem intuitivo e fácil de usar o etcher, apresenta interface amigável e boa compatibilidades para os diferentes formatos de armazenamento:


Com a gravação e instalação da iso no dispositivo de armazenamento, é necessário fazer um boot pela dispositivo gravado e o lakka estará pronto para o uso. Em praticamente todos os sistemas a inserção do disco ou SSD gravado executa o Lakka.

Uma vez rodando, independente da plataforma uma interface gráfica unificada aparecerá na tela do dispositivo:


Com o Retroarch pronto são necessários alguns passos iniciais antes que o emulador esteja pronto para ser usado. 

1) Configure seu joystick, teclado ou dispositivo de preferencia (plug o controlador previanmente antes de rodar o retroarch):

Settings --->  Input ---> User 1 binds ---> User Bind all 
(inserir as teclas de sua preferência)





2) Faça o download do "Núcleos" dos emuladores de sua preferência

Online Updater --> Core Updater







3) Insira as roms


a)Import Content --> Scan directory

Vasculha o diretorio em busta de todas as roms compatíveis com os Cores instalados.

b)Import Content --> Scan File

Escolhe um arquivo específico a ser aberto


Observação - Caso o sistema não reconheça a rom:
Load Core --> ........... (escolha o Core correspondente)
Import Content --> Scan File (escolha a rom correspondente ao core)

4) Outras configurações importantes Settings -->:



a) Video, vários aspectos importantes como dimensão da tela, filtros e efeitos.

b) Audio, vários aspectos importantes como agudos, filtros e efeitos para simulação do som original do hardware emulado.

c) Latency, configurações relativo ajustes de latência em máquinas mais antigas ou jogos que rodam com lentidão, ajuste de som do jogo com a imagem exibida.

d) User interface, mostra ou esconde opções avançadas, modo Kiosk para proteger configurações escolhidas e proteção com senha.

e) Achievements, configurações para acessar opções compatíveis com o retroachievements.

f) Input --> hotkeys binds, principais teclas de atalho do emulador: fulscreen(f); Slow motion(e); Save State(F2); Load State(F4), todos os atalhos podem ser personalizados

g) Saving, salve as configurações de sua preferência. Caso algo sai do controle, não se preocupe, basta apagar o arquivo retroarch.cfg e o sistema volta as configurações iniciais.

e) Network, possibilita jogo online.

f) Diretory --> Indica o lugar onde as bios foram salvas.
 




Pacotes de bios do retroarch


[https://archive.org/details/retroarch_bios_pack]


Descompactar e indicar o caminho em:


Setting ---> Diretory ---> System/BIOS



 
g) O inputlag do controle é otimizado, entretanto pode ser alterado em:


Setting ---> Input ---> Poll Type Behavior
 



Esse comando pode melhorar atrasos no controle, entretanto o inputlag é bem pequeno e pré otimizado no emulador.

h) USER ---> Language, Altera o idioma do sistema, são vários incluindo o português.

i) A divisão das roms é organizada por plataforma, e pode ser acionada selecionando a rom indicada na aba(pelo teclado ou pelo próprio joystick). Caso seja a primeira vez que a extensão foi acessada, aparece a opção dos emuladores disponíveis para a rom:






Caso a rom seja acessada por um emulador que não funcione, clique na opção Reset Core Association.

Acessando o menu toggle (F1 ou tecla de botão painel no controle padrão xbox), quando o jogo é inciado é possivel acessar o Quick Menu do retroarch e fazer ajustes de latência, inputs de controle, save state, screamshot, iniciar um stremming entre outras nesse menu rápido.

 


j) Ao jogar, o arquivo fica registrado em History e pode ser acessado novamente:




l) É possível baixar Thumbs de capas de jogos  em:
Online Updater ---> Thumbnails Updater ---> ...........(Sistema de preferência)
Os cores, e outras opções do emulador podem ser baixadas automaticamente da mesma forma.
Caso o retroarch esteja rodando em um pc windows/linux é possível alterar manualmente nesta interface gráfica acessada em Show Desktop Menu (opções como cores podem ser acessadas nessa interface):




m) Caso não tenha uma BIOS correspondente o sistema indica qual é a o arquivo que falta facilitando a busca na internet.

Load Core ---> .................(Selecione o sistema)
volta a tela inicial do sistema

Information ---> Core Information



Exemplos:


Megaman 3 - FCEumm - Retroarch - PC / Xubuntu



Megaman X4 - Sega Saturn - Yabause - Retroarch - PC / Xubuntu


Megaman X4 - Playstation - Beetle PSX - Retroarch - PC / Xubuntu

 
Megaman X4 versão Sega Saturn


 
Teste da interface do retroarch




Megaman X4 versão Playstation


Boa diversão para todos e até a próxima!

Juliano
[12-03-2019]

sexta-feira, 1 de março de 2019

Mednafen? Para que te quero? Uma ótima supresa para o sega saturn e PC engine....

As opções de programas que fazem a emulação de hardwares antigos é vasta, principalmente para os videogames. Os emuladores simulam  a função de executar programas desenvolvidos exclusivamente para plataforma proprietária em um computador pessoal. Essa característica é interessante pois a grande vantagem dos emuladores é, sem dúvida, rodar programas compilados para esses hardwares antigos que infelizmente depois de algum tempo deixaram de funcionar. O mesmo raciocínio pode ser aplicado para os jogos. Os jogos são os programas desenvolvidos e compilados para rodar de forma otimizada nesse hardware. Uma alternativa é o desenvolvimento de port's dos programas para máquinas modernas. Empresas como a  SEGA, por exemplo, fazem esse trabalho criando port's de seus jogos para as plataformas mais modernas como videogames, celulares e computadores pessoais. Entretanto uma dúvida sempre persiste, um port pode ser uma emulação?  A resposta é SIM! Muitos dos jogos antigos apresentam características que dificilmente seriam reproduzidas com ajustes para programas e máquinas modernas, pois estes foram produzidos para funcionar em outro hardware e na verdade um ajuste apenas recompilando o software seria muito caro e trabalhoso para empresa. As empresas visam lucro e para minimizar o custo e tempo elas usam como inspiração os emuladores desenvolvidos pela licenças GNU e GLP's para rodar os seus jogos(softwares) e lucrarem com a sua venda para diferentes plataformas. Muitos destes jogos seriam esquecidos ou ignorados pela comunidades caso não houvesse a emulação e pitaria. Sim, pirataria, esses jogos produzidos possuem uma proteção intelectual e custaram muito dinheiro para que uma empresa pudesse produzir e lucrar com esse produto.
Esse equilíbrio é interessante pois trata-se de um sistema simbiótico, Sem a emulação e pirataria, muitas pessoas não teriam acesso aos jogos e isso tornou a industria popular criando novas formas efetivas de rodar esses programas em máquinas modernas, muitas vezes revitalizando e mantendo o fator replay de vários jogos com speedRuns, save states, real-time game rewinding entre outros de forma gratuita e com qualidade porém as custas do trabalho de programadores e artistas que produziram esse jogos.
Do outro lado do espectro temos as empresas, que produziram e licenciaram vários jogos, criaram seus hardwares e softwares, tiveram seu lucros e perdas. Em um mercado novamente aquecido, as empresas querem ganhar com a curadoria destes jogos. As empresas possuem total direito de explorar economicamente tudo o que elas produziram, porém ela tem o direito de usar a emulação em seus produtos? O crime está ligado a distribuição gratuitas dos jogos e não a programação dos sistemas que recriam o ambiente que eles foram desenvolvidos. O mesmo vale para as BIOS que foram adquiridas do hardware proprietário, fundamentais para que esse software rode mediante a emulação.
Muitos emuladores foram criados e desenvolvidos e criaram uma base sólida,  com diversos fãs ao redor do mundo, porém a emulação tem alguns gargalos porque nem sempre reproduzem todos o chips e processadores de som e vídeo responsáveis por recriar a sensação igual ao jogo rodando no hardware original. Em alguns casos é necessário trocar o emulador para assim ter um resultado melhor na reprodução do jogo. Isso criou uma nova onda na emulação, agora os emuladores individuais foram agrupadas em frontends e interfaces gráficas simples para facilitar a reprodução de jogos.
Muitas bibliotecas e emuladores foram criados nesta "newwave" da emulação e agora uns dos maiores desafios é usar vários emuladores para encontrar a melhor alternativa para rodar o seu jogo da forma mais fidedigna possível . Nesse cenário surge o Mednafen:

Mednafen 
O Mednafen é um emulador, que utiliza o  OpenGL (uma API livre utilizada na computação gráfica, para desenvolvimento de aplicativos gráficos, ambientes 3D e jogos) e SDL (Simple DirectMedia Layer é uma biblioteca multimídia livre e de código aberto, multiplataforma, escrito em C que representa uma interface simples para gráficos, som, e dispositivos de entrada de várias plataformas).
O Mednafen pode ser executado em vários sistemas e possui uma interface simples que pode ser acionada por linhas de comando e utilizado como base em  bibliotecas do libreto:

  
O libretro é um um conjunto de emuladores e engines que permite que vários jogos sejam rodados por meio de uma interface gráfica unificada.

O mednafen é um poderoso emulador e tem a capacidade de remapear as teclas de atalho para emulação de jogos a partir de inputs de teclado e joystick.
Ele permite funções interessantes como save states, real-time game rewinding e screenshots de tela no formato de arquivo PNG. O Mednafen pode gravar filmes audiovisuais no formato QuickTime utilizando vários codecs compatíveis que garantem perda mínima de resolução durante a gravação do gameplay.

Os sistemas compatíveis com o mednafen são até o momento:
  • Apple II/II+
  • Atari Lynx
  • Neo Geo Pocket (Color)
  • WonderSwan
  • GameBoy (Color)
  • GameBoy Advance
  • Nintendo Entertainment System
  • Super Nintendo Entertainment System/Super Famicom
  • Virtual Boy
  • PC Engine/TurboGrafx 16 (CD)
  • SuperGrafx
  • PC-FX
  • Sega Game Gear
  • Sega Genesis/Megadrive
  • Sega Master System
  • Sega Saturn (roda em arquiteturas x86_64)
  • Sony PlayStation

E porque o mednafen é um bom programa para emular os meus jogos?

O mefnafen foi otimizado para diminuir o input lag de joysticks.

Como instalar o mednafen? No windows você precisa baixar e instalar a versão mais estável do aplicativo na página oficial:

https://mednafen.github.io/


No linux é muito mais simples, caso você seja usuário de Ubuntu ou Debian, basta instalar o programa via terminal:

sudo apt-get update
sudo apt-get install mednafen

O mednafen tem uma interface gráfica gtk2 o mednaffe:



Uma vez instalado o software precisa ser configurado. Existem vários blogs e vídeos que tem a função de ensinar a configurar o emulador segue um compilado geral:

Vamos jogar?

Para mostrar o poder deste emulador surpreendente gravei um vídeo da abertura de Radiant Silvergun (SEGA SATURN) rodando no mednafen/Linux, tirei o som do vídeo para não sofrer por direitos autorais mas o som ficou perfeito durante a emulação, porém o som do original continua melhor.

Outra supresa são os jogos de pc-engine / pc-engine CD que rodam com maestria nesse emulador.


Let's Play!

Imagem relacionada
Imagem relacionada




até a próxima!

Juliano
[02-03-2018]



Editado contribuição do Masato, obrigado pela força [editado 19-03-2019]


Agradecimentos pessoas que apoiaram esse artigo:
Masato CJAP - http://masatocollector.blogspot.com/ e https://www.youtube.com/user/TheMasatocollector/featured