As peças para o gabinete chegaram na segunda pela manhã, e corri para casa no final do expediente para poder brincar pelo menos um pouco com elas. Montei tudo, espalhado mesmo, sobre a mesa da cozinha aproveitando um teclado e mouse velhos que achei em um canto e o monitor LCD do micro do Gabriel. Para ver se funcionava, tasquei um pendrive com o Ubuntu 9.10. E não é que funcionou de primeira?
Gostei do desempenho do Atom 330 no geral: a máquina é silenciosa e “esperta”, responde rapidinho sem te deixar esperando. Infelizmente, os testes com o SDLMame desapontaram: o desempenho em um Atom dual-core não foi muito superior ao em um Atom single-core (no meu Dell Mini 9): Neo*Geo roda a 100% com frameskip zero, mas Out Run chega a só 60% da velocidade (e som sempre ruim).
O problema aqui é o MAME, que não é otimizado para tirar proveito de múltiplos cores. Até existe uma opção para multithreading, mas ela faz pouca diferença. Na verdade, o MAME não é otimizado no geral: a abordagem dos desenvolvedores é valorizar a precisão sobre o desempenho, com o objetivo de emular o hardware original da forma mais exata possível, não importa o “custo”. Se há duas formas de fazer uma coisa, uma precisa e a outra 200% mais rápida, os desenvolvedores vão optar pela precisão.
Mas voltando ao meu arcade, a solução é diversificar: estou pensando em deixar o MAME para os jogos mais antigos (Galaga, Bosconian, Pac-Man, New Rally-X) e usar o Final Burn Alpha para os mais recentes e pesados (jogos de System 16 como Out Run, Neo-Geo, Capcom CPS-1 e CPS-2). O problema é que a versão Linux do Final Burn Alpha parece estar abandonada: não há binários pré-compilados para nenhuma distribuição e a versão mais recente do código-fonte que encontrei data de 2007 e vem acompanhada de avisos como “é velho, é instável, é beta, mesmo se compilar não vale a pena”. Existe uma versão Linux/SDL recente, que foi portada para o Dingoo, mas não sei se seria trivial levar ela de volta ao PC. Na pior das hipóteses, a solução é basear o arcade em Windows. Pelo menos emuladores não faltam.
O próximo passo é achar um gabinete para a placa, de modo que eu possa deixar todo o hardware montado sem medo de um gato resolver dormir em cima dele. Pretendo fazer um gabinete “interino” em MDF para abrigar a placa, HD e fonte. Com isso posso deixar ele no rack da sala e usar a TV de 32″ como monitor. Depois de definir o software o próximo passo é construir os controles (inicialmente como “joysticks arcade”) e por fim criar um gabinete para abrigar tudo. Isso vai acabar dando mais trabalho do que imaginei. Por enquanto, fiquem com algumas fotos da minha mesa da cozinha ontem à noite. As laranjas não fizeram parte da máquina.