Mamebox: O Software – Parte 3.0

August 19, 2011

Olá pessoal

Hoje vou falar um pouco sobre o software do Mamebox, o coração do projeto, afinal, todo o resto é apenas um suporte, uma maneira de melhor aproveitarmos os jogos que queremos tanto jogar.

Podemos dividir o software que vai rodar no Mamebox em 3 partes: emuladores, sistema operacional e front-end. Vamos começar de trás para frente e falar hoje do front-end.

Front-end

Executar o emulador envolve basicamente chamar o programa necessário digamos, mame,  passando os parâmetros necessários que podem ser muitos já que o emulador, especialmente um tão complexo e abrangente quanto o mame, precisa saber uma série de coisas como interfaces, local da ROM, opções de vídeo e som, etc.  São mais de 160 opções! Claro que normalmente usamos umas poucas mas mesmo assim é algo complexo. O front-end é a interface que mostra a sua lista de jogos e executa o emulador de uma maneira pré-determinada, passando os parâmetros necessários de acordo com as suas opções escolhidas e de acordo com dados extraídos do próprio jogo ou de bancos de dados auxiliares.

Existem vários aplicativos como estes, o próprio mame faz isso mas para o Mamebox eu gostaria de algo que cumprisse quatro requisitos básicos:

  1. Tivesse um bom apelo visual
  2. Suportasse múltiplos emuladores
  3. Fosse configurável
  4. Fosse “arcade friendly”, ou seja, tivesse uma interface que fosse fácil de ser manipulada usando apenas joysticks e botões.

Principalmente no primeiro quesito, os usuários windows estão bem servidos com programas como o HyperSpin ou Maximus Arcade. Infelizmente não encontrei para Linux algo equivalente, sendo o mais próximo o Wah!Cade. Eu cheguei a oferecer-me para averiguar a possibilidade de um porte do HyperSpin para Linux mas isso não vai acontecer por dois motivos: o programa é fechado e o autor não tem a intenção de abrir e, fiquei sabendo depois, este foi escrito usando uma ferramenta de autoria para windows e não existe runtime para Linux.

Ao me deparar com esta dificuldade resolvi fazer o que todo bom nerd faz e resolvi escrever a minha interface. Comecei a pesquisar o assunto, tirei o pó dos meus conhecimentos de programação e fechei em usar C com SDL e OpenGL. Cheguei a fazer alguns testes direferntes e me enredar no estranho mundo da programação 3D quando me deparei com meu salvador: Cabrio que, coincidentemente, foi escrito em C com SDL e OpenGL :)

Neste vídeo temos uma amostra de como o Cabrio funciona.

Embora o desenvolvedor tenha usado soluções diferentes das que eu teria usado, o conceito geral é basicamente o mesmo e é software livre.

Todo a configuração dele é feita via arquivos XML e ainda não tem um configurador o que é um problema pois temos que gerar os arquivos para ele. No caso da listagem de jogos, um programa chamado ROMLister faz o trabalho pesado e, embora para windows, roda bem com Wine.

Para torná-lo uma solução ideal, eu vejo as seguintes melhorias:

  • Programa configurador: este geraria os arquivos de configuração à partir de um menu, de preferência rastreando um banco de ROMs para montar uma listagem válida, da forma que o ROMLister faz.
  • Modo Jukebox para ir tocando músicas enquanto não se está jogando.
  • Melhoria no visual: embora tenha potencial, o visual pode passar por uma refinamento mas isso deixarei a cargo de alguém com mais capacidade artística que eu.

Eu ainda estou começando a me entender com o programa e já achei um bug :) mas este é o front-end mais promissor que encontrei até este momento e definitivamente irei adota-lo no Mamebox.

 

12 Responses to “Mamebox: O Software – Parte 3.0”

  1. […] Executar o emulador envolve basicamente (…) (via bloguemos.com) […]

  2. Olá, você pretende rodar apenas roms do mame ou vai usar neogeo também?
    Vi que na versão nova do mame as roms do neogeo não estão funcionando corretamente.
    Você já fez este teste?

    []’s

  3. Olá
    Eu pretendo dar suporte a múltiplos emuladores mas ainda não testei nada do NeoGeo. No momento estou focando na estrutura básica e Mame vai ser a primeira. Depois de ter tudo acertado com Mame vou adicionar outros emuladores.

  4. Ola adilson e amigos do blog, respondendo a questao do barba, ate onde eu saiba as roms de neo geo estao funcionando normalmente na versao 0.143 do mame, estou usando o Ubuntu 10.04 e esse repositorio do SDLmame http://sdlmame.wallyweek.org/ funciona muito bem, incluso as roms do neo-geo, frontend http://packages.ubuntu.com/lucid/gmameui para o desktop.

    Para o Arcade Adilsom eu acho mais facil pegar um gabinete original ja pronto e so fazer as adaptaçoes, como vc deve ter percebido da um pouco de trabalho cortar a madeira e dar acabamento e tbm os detalhes, mas o aprendizado vale a pena. Vc pega um gabinete original da capcom por 450 ou 500 reais e so procurar e ja e meio caminho andado eheheh.

    Testei o front-end WahCade e ele tem um visual bem retro, iria combinar bem com maquinas da decada de 80, mas ate da para mudar o visual, se eu nao estiver enganado e programado em phyton so que o projeto parece que anda meio parado…a ultima estavel versao é de 2009 e tem um bug chato com a versao 143 do sdlmame, a correção e comentario aqui http://wiki.ludomatic.fr/DebianMameCab e no forum do wahcade, apesar de ter apanhado um bocado com ele ate gerar a lista Xml….e tbm para acertar os executaveis e os caminhos.

    Baixei o cabrio e ate consegui compilar numa boa para o 64bit seguindo as orientaçoes do site e o projeto e mais recente, mas nao consegui gerar o Xml com ele….tentei como indicado com o romlister mas nada feito…estava pensando se nao daria para usar o Xml gerado do Wahcade nele? E bem mais facil de gerar esse arquivo, posso detalhar depois se alguem tiver interesse….

    Tbm interessante o http://arcade.groovy.org/ tem um live CD que roda o front-end Whacade e nem precisa instalar, so monta o diretorio das roms e ja funciona, bem interessante.

    Graficamente o Cabrio esta muito superior….estou torcendo por vc….

  5. Olá Platão, como vai a caverna? ;)
    Eu até procurei um gabinete pronto (era minha primeira ideia) mas não achei nada em bom estado na minha região, por isso estou fazendo o meu. O Cabrio não gera o xml, o que eu gerei via romlister funciona bem mas ele tem um bug chato em relação à exibição de vídeo (e eu achei a solução via ffmpeg/avlib desnecessariamente complexa).
    O maior problema é que o autor não tem uma comunidade em volta do projeto, já mandei uns 5 emails com dicas e correções de bugs mas não tive retorno ainda. Se não houver retorno até semana que vem eu provavelmente vou hospedar um branch no launchpad e aplicar as correções por minha conta, preparar pacotes, etc. O wahcade é realmente bem legal mas eu queria algo que exibisse os videos de demonstração e me sinto mais confortável com C que com python :)

  6. Ola sem duvida Adilsom, fazer o gabinete te da uma base otima em varias areas tenho alguns livros especializados como o Project Arcade – Build your own arcade machine link http://www.projectarcade.com/sample.html que detalha a construção passo a passo do gabinete como um todo e partes moveis, tbm tem um cara no mercado livre que vende uns arcades caseiros inspirados, clones das maquinas Vewliks da Taito http://www.arcadesolutions.com.br o problema e o preço…apartir de 3000 reais mas tbm ele tem outros modelos…etc e tbm esse outro cara fez um clone desse gabinete http://www.donovanmyers.com/2009/03/vewlix-tournament-edition-worklog-01/ vale a pena dar uma olhada…

    Dependendo da distancia, fica inviavel mesmo comprar um gabinete pronto por causa do transporte que pode ficar em torno de 30 a 40 por cento do valor do gabinete, e tbm encontrar a pessoa que faz esse transporte para outro estado e complicado.

    Vamos aguardar entao o retorno do pessoal do Cabrio…tomara que de tudo certo.

    No Wahcade eu nao consegui ainda rodar videos de demonstração de jogos… mas vi um cara que conseguiu inclusive tem um video http://www.youtube.com/watch?v=YXhru2b2dxw aqui…. vou tentar essa semana se consigo. Tbm nao vi nada de 3D no Wahcade somente sobreposição de imagens e transparencia.

    O cabrio me parece excelente, gostei bastante do estilo 3d dos menus.

  7. Oi.

    Eu comprei o livro Project Arcade semana passada. O projeto ultimate arcade ii me fez repensar se eu não quero começar o gabinete novamente :)
    Eu vi este da Arcade Solutions mas o cara só vende a máquina completa e ele faz com LCD, eu vou usar CRT, tem um monitor IBM que comprei só pra isso. Se vendesse só o gabinete eu pensaria no assunto.
    Meu problema no momento é a completa falta de tempo para trabalhar o gabinete. Estou pensando seriamente em contratar um marceneiro mas vamos ver. Obrigado pelos links!

  8. Olá, estou também planejando usar o Cabrio em minha MAMEbox, ele realmente fica bem legal com as logos dos jogos, porém encontrei apenas algumas no site do projeto, você sabe onde eu posso encontrar uma lista mais completa com as logos dos jogos? Aparentemente o Cabrio ta com o desenvolvimento bem parado, se não houver mesmo manifestações do desenvolvedor acho que um fork cairia bem…

  9. Olá

    Eu já enviei uns 5 emails para o desenvolvedor do Cabrio. O primeiro ele me respondeu mas nenhum dos outros mais e isso faz uns 2 meses. O maior problema que encontro nele no momento é a exibição de vídeos que só funciona o primeiro. Depois disso um comando fica retornando EINTR e não sai mais disso. Estou pensando em reescrever esta parte já que minha experiência com o libvlc foi bem melhor e o Cabrio está parado faz tempo no release 617 do svn. Vamos ver.

  10. Ola amigos do blog e Adilsom, fiz um tutorial para o Wah!cade que agora esta rodando sem problema os previews dos filmes aqui http://ubuntuforum-br.org/index.php/topic,87662.0.html da uma olhada se eu nao esqueci de nada. Conseguiu contato extra com o desenvolvedor do Cabrio?

  11. Boas,
    Olá platão, cheguei aqui sem querer e te encontrei =)

    Sobre o cabrio… tu já pensou em criar um fork? eu num manjo nada de programação, mas te ofereço minha máquina e meu tempo para testarmos todas as possibilidades possíveis.
    Se quiser fazer, eu ainda posso tentar ajudar criando o .deb para instalar sozinho e deixar tudo pronto pro usuário final.
    Qualquer coisa que eu puder fazer eu me disponho a ajudar.

    pensa ai no fork =)

  12. Olá

    Programação e empacotamento não são problemas para mim, o problema agora é tempo para me dedicar. O CAbrio está com um bug estranho que preciso ver com mais calma mas só quando sair de férias. O projeto está parado por enquanto.

Leave a Reply