terça-feira, dezembro 17, 2013

Raspberry Pi: DOSBox Parte 1

Continuando a minha exploração do Raspberry e mantendo o tema de "retrograming" inicio aqui minhas aventuras com o DOSBox.
O DOSBox é um projeto fantástico. No seu coração existe um emulador do hardware dos primeiros PCs, em particular dos processadores originais (80088, 286 e 386) e das placas de vídeo e som. Integrado a isto, uma boa emulação do MSDOS. Tudo isto em um projeto aberto. (Saiba mais detalhes no site oficial e na Wikipedia).

O principal uso do DOSBox é permitir rodar jogos antigos em PCs modernos e em computadores com arquitetura ou sistema operacional "não PC". Alguns jogos antigos voltaram a ser comercializados (por exemplo no gog.com) já "encapsulados" no DOSBox.

A instalação básica do DOSBox no Raspberry não tem segredo:

sudo apt-get install dosbox

Já a configuração dá trabalho. Neste blog você encontra o básico.Neste outro, as configurações são um pouco mais extensas.

Para o meu primeiro testes resolvi usar o Wolfenstein 3D, que você pode baixar aqui (versão shareware). Notar que ele requer no mínimo um 286 (386+ fortemente recomendado). Comecei usando aproximadamente as sugestões do Coding Epiphany, porém sem mudar a resolução do Raspberry.

Um primeiro problema foi que o teclado ficou bagunçado ao tentar executar diretamente no console. Executando startx e rodando dentro de um terminal, o teclado funcionou corretamente. Porém  a performance foi terrível, impossibilitando jogar.

Para corrigir o problema do teclado são necessários dois ajustes no arquivo dosbox.conf. Primeiro, na seção [sdl] colocar

usescancodes=false

Mais adiante, na seção [dos] incluir

keyboardlayout=br

Aqui você encontra as opções de layout de teclado.

Com isto podemos rodar o dosbox diretamente no console. O único problema é que se algo der errado você pode precisar ressetar o Raspberrry, pois não terá como abrir uma outra janela. A partir deste ponto passei a trabalhar com uma resolução baixa de tela (hdmi_mode= 4 em /boot/config,txt).

Dois ajustes em dosbox.config melhoram um pouco a apresentação. Em [render] reduza o número de frameskip. Não fiz (ainda) testes exaustivos, mas 2 dá um resultado muito melhor que o 12 sugerido no Coding Epiphany. O outro ajuste foi em [cpu] onde usei cycle=auto.

Com isto o Wolf3D ficou jogável (com um pouco de boa vontade).

Usando os mesmos parâmetro experimentei rodar o Space Quest 1 original (disponível no gog.com), que tem requisitos bem mais baixos de processador e vídeo. O resultado foi bem satisfatório.

Ainda vai ser preciso testar bastante para ter uma configuração usável. Pelo que andei lendo, o DOSBox no Raspberry não passa muito do desempenho de um 386 mirrado. Uma alternativa que vou testar é o FastDOSBox, uma versão do DOSBox otimizada para o Raspberry.

Nenhum comentário: