Capa do artigo Rodando jogos DOS na Raspberry Pi

Matando a Saudade dos Jogos do DOS com Raspberry Pi Deixe um comentário

Se você teve a oportunidade de jogar no computador no tempo do DOS (que completou 40 anos agora em agosto de 2021), é provável que tenha boas lembranças. E talvez você tenha ouvido falar de vários jogos daquele tempo que nunca teve oportunidade de jogar. Aprenda a rodar jogos DOS com Raspberry Pi e e tenha em casa um videogame retrô.

Tela do jogo para DOS Space Quest
Space Quest I, uma das primeiras aventuras da Sierra para o PC

Por vários motivos, os micros e sistemas operacionais atuais não permitem executar diretamente programas do DOS. Enquanto o DOS rodava com o processador em modo de 16 bits, os sistemas operacionais atuais trabalham em modo de 64 bits. O Windows já abandonou faz tempo o suporte às funções do DOS. E, mesmo que fosse possível executar o código, a diferença de velocidade dos processadores causaria um monte de problemas.

Para resolver isso é que foi criado o DOSBox.

O Que é o DOSBox?

O DOSBox é, antes de mais nada, um simulador dos processadores 8088, 80286 e 80386. Ele interpreta os bytes do código um a um, simulando o comportamento destes processadores. Isso permite uma emulação fiel e um controle melhor da velocidade de execução. Outra vantagem é que isso permite rodar programas DOS em computadores com processadores com outras arquiteturas, como é o caso do Raspberry Pi (que usa um processador ARM).

O DOSBox simula também placas de vídeo CGA, MDA, EGA e VGA e algumas placas de som populares no tempo do DOS.

Em cima desta emulação de hardware, o DOSBox emula as funções do BIOS e do MSDOS.

O Que você vai Precisar?

Você vai precisar de:

  • Uma placa Raspberry Pi (pode ser qualquer uma, mas a Raspberry Pi 4 é a que fornece mais desempenho, sendo mais adequada para jogos mais exigentes).
  • Um cartão SD com Raspberry Pi OS instalado e configurado. Vou usar aqui o Raspberry Pi OS with Desktop (de 2021-05-07). Apesar de não usar diretamente a interface gráfica, o teclado tem comportamento estranho dentro do Dosbox com a versão Lite.
  • Um teclado e (opcionalmente) mouse (no caso do Raspberry Pi Zero você vai precisar de um adaptador e um hub USB).
  • Um monitor (pode ser uma TV com entrada HDMI) e o cabo adequado para a placa Raspberry Pi.
  • Conexão à internet (via cabo ou WiFi dependendo do modelo da placa).

Uma alternativa ao hub USB para o Pi Zero é usar um conjunto de teclado e mouse sem fio.

Instalando o DOSBox

A instalação do DOSBox pode ser feita através do apt-get:

sudo apt-get update
sudo apt-get install dosbox

Obtendo Jogos DOS

Se você for um old-timer, talvez tenha salvo imagens dos disquetes ou CDs dos seus jogos antigos. Alguns jogos foram disponibilizados gratuitamente pelos desenvolvedores. Existem sites especializados em reunir informações sobre jogos antigos, vou usar como exemplo https://www.dosgamesarchive.com/.

O site gog.com (Good Old Games, pelo menos originalmente) comercializa muitos jogos antigos e utiliza o DOSBox em vários deles (veja quais em https://www.gog.com/forum/general/list_of_gog_games_using_dosbox/page1).

Rodando um Jogo DOS

Como exemplo, vamos usar a versão Shareware do Doom, baixada de https://www.dosgamesarchive.com/file/doom/doom19s/. Digite abaixo os comandos abaixo em um console no seu Raspberry, eles irão fazer o download e expandir o zip baixado no subdiretório doom19s:

mkdir ~/jogosDos
cd ~/jogosDos
wget https://image.dosgamesarchive.com/games/doom19s.zip
unzip doom19s.zip -d doom19s

Neste caso, o zip contém o instalador do jogo, que precisa ser executado para obtermos os arquivos do jogo. Esta execução terá que ser feita dentro do DOSBox

Um detalhe chato no DOSBox é a incompatibilidade parcial com o teclado brasileiro (“ABNT2”). Usando dentro do DOSBox o comando “keyb br”, a tecla ‘/’ no corpo do teclado não funciona. O jeito é usar a tecla ‘/’ no alto do teclado numérico. Se você precisar digitar ‘?’ a solução é apertar Alt, digitar 6 3 (com Alt apertado) e soltar Alt.

Um conceito importante no DOSBox é o mapeamento das letras das unidades usadas pelo DOS nos diretórios do computador. Isto é feito usando o comando MOUNT. Vamos mapear a unidade A: para o diretório onde colocamos o instalador e a unidade C: para o diretório onde vamos colocar os jogos instalados. Digite ‘dosbox’ para abrir a janela de emulação do DOS e digite os comandos abaixo:

keyb br
mount a /home/pi/jogosDos/doom19s
mount c /home/pi/jogosDos

Agora vamos selecionar a unidade A: e executar o instalador. Responda todas as perguntas do configurador com o default e no final salve a configuração e execute o jogo.

a:
install
Tela do DOS rodando na Raspberry Pi
Instalação do DOSBox
Tela do DOS rodando na Raspberry Pi
Configuração dos recursos de entrada
Tela do DOS rodando na Raspberry Pi
Salvando e abrindo o jogo Doom
Tela inicial do jogo para DOS Doom
Tela inicial do Doom

Pronto, você está se divertindo como no início dos anos 90!

Alguns atalhos úteis de teclado:

ALT + Enter: chaveia entre tela cheia e janela
CTRL + F5: salva uma imagem da tela
CTRL + F11 e CTRL + F12: reduz / aumenta a velocidade da emulação

Customizando o DOSBox

No item anterior rodamos o DOSBox com a configuração padrão. Dependendo do jogo, podem ser necessários alguns ajustes. No início da execução o DOSBox irá procurar um arquivos de configuração na seguinte ordem:

arquivo especificado na linha de comando através da opção -conf arquivo
arquivo dosbox.conf no diretório atual
arquivo ~/.dosbox/dosbox-0.74-2.conf (criado na instalação)

O arquivo de configuração é dividido em várias seções (marcadas por [seção]). Cada seção (exceto [autoexec]) tem várias configurações no formato parâmetro = valor. Vamos ver aqui os parâmetros mais usados normalmente (veja a lista completa no dosbox-0.74-2.conf):

[sdl]
fullscreen – true para tela cheia, false para rodar em uma janela
[dosbox]
machine – placa de vídeo emulada (hercules,cga,tandy,vga,svga,…)
[cpu]
cycles – número de instruções executadas por microsegundo

O default para cycles é auto, onde o DOSbox tenta advinhar o melhor valor para o programa sendo executado. Se estiver muito rápido ou lento, você pode usar “fixed nnn” (onde nnn é o número de instruções a executar por microsegundo).

Uma seção especial é a [autoexec], nela você pode colocar comandos que serão executados automaticamente quando o DOSBox for iniciado. É um bom lugar para colocar os comandos keyb, mount, mudança de diretório e execução do programa.

Conclusão

O Raspberry Pi + DOSBox é uma opção muito boa para matar a saudade (ou conhecer) jogos DOS.

Comente aí embaixo quais os seus programas DOS preferidos e sua experiência com o DOSBox na Raspberry Pi e participe da Comunidade Maker no Facebook.

Faça seu comentário

Acesse sua conta e participe