quinta-feira, abril 02, 2015

Raspberry Pi: DOSBox Parte 2

Há mais de um ano atrás eu comecei a testar o DOSBox no Raspberry Pi. Com a chegada do Raspberry Pi 2 eu finalmente continuei os testes.


Rodando o DOSBox no console: Tela Preta

O segundo teste que eu quis fazer com o meu Raspberry Pi2 foi rodar o Wolf3D diretamente no console. Segui as minhas próprias instruções e obtive uma tela vazia. O curioso é que o som funcionava, indicando que era apenas um problema de apresentação. Mais curioso ainda é que rodando o X o DOSBox funcionava sem problemas em uma janela.

Foi bastante difícil encontrar outras referências a este problema na internet. Finalmente achei as discussões abaixo, não específicas ao DOSBox:

https://github.com/raspberrypi/firmware/issues/354
http://www.raspberrypi.org/forums/viewtopic.php?f=78&t=51794&p=712020&hilit=dosbox#p712020
http://www.raspberrypi.org/forums/viewtopic.php?p=707673#p707673

Resumindo o que eu entendi, o DOSBox (e muitos outros emuladores) usa o SDL para acessar o vídeo de forma independente do hardware e do sistema operacional. E a versão 1.x do SDL é meio capenga. Entre outras coisas, ela assume que o endereço do buffer de tela é constante, mesmo após uma mudança da resolução. Por coincidência o endereço não mudava nos firmwares antigos do Raspberry, mas (a partir de 28/jan/15) passou a mudar.

Uma boa alma gerou uma versão alterada da SDL que funciona com o firmware atual. Enquanto não é integrada na versão oficial, o jeito é baixar e instalar na unha:

wget http://malus.exotica.org.uk/~buzz/pi/sdl/sdl1/deb/rpi2/libsdl1.2debian_1.2.15-8rpi_armhf.deb
sudo dpkg -i libsdl1.2debian_1.2.15-8rpi_armhf.deb

No primeiro comando troque rpi2 por rpi1 se você estiver usando um Raspberry Pi versão 1.

Desempenho

O desempenho do DOSBox rodando no console é perfeitamente aceitável (para quem quer rodar programas que exigiam um 386). Desta vez o Wolf3D rodou tranquilo.






Estou até me animando a tentar um jogo mais exigente, o Wing Commander.


FastDosBox

Há um ano atrás eu falei em testar o FastDosBox, uma versão do DOSBox ajustada para o Raspberry Pi. Na época, ela estava disponível em uma versão grátis e em uma versão paga (na Pi Store). Quando fui retomar, não encontrei a versão grátis e li comentários preocupantes na Pi Store.

O DOSBox é um Software Livre, com licença GPLv2. Portanto quem desejar alterar e redistribuir pode fazê-lo, mas deve disponibilizar os fontes alterados. É aí que a coisa complica: os fontes disponíveisdo FastDosBox não correspondem aos binários; alguns aperfeiçoamentos estão escondidos e o desenvolvedor não responde aos questionamentos. Não tenho nada quanto a pagar por software (seja livre ou proprietário), mas espero respeito às respectivas licenças.

Existem alguns projetos para gerar versões do DOSBox com melhorias equivalentes às anunciadas no FastDosBox, pretendo testá-las em breve.

Nenhum comentário: