terça-feira, maio 28, 2019

Raspberry Pi: Configurando o openMSX via source

Após a instalação do Raspbian ou do NOOBS, baixados do site oficial Raspberry Pi, e proceder com a instalação (use as versões FULL tanto do NOOBS como do Raspbian, escolha a que melhor te servir, a NOOBS tem a recuperação, porém ocupa uns 2Gb de espaço no cartão), devemos inicialmente fazer um update geral do sistema. Os comandos são os tradicionais:
        $ sudo apt-get update
        $ sudo apt-get upgrade
        $ sudo rpi-update


Após o update, confirme a reinicialização do sistema, ou reinicialize com:
        $ sudo reboot
É interessante remover os programas que você nao pretente usar (caso optou pela instalação FULL), em "Preferências", "Recommended Software", desmarque os que não te interessam.

OpenMSX 0.15

Antes da instalação do openMSX, devemos instalar algumas dependências, a saber:

  • SDL
  • SDL-ttf
  • libpng
  • zlib
  • TCL
  • GLEW
  • Ogg
  • Vorbis
  • Theora
  • ALSA

Todas são triviais, exceto a SDL-ttf que deve ser compilada separadamente, o que vamos ver em seguida.
Se você removeu muitos programas, use o comando a seguir para limpara espaço desnecessário:
        $ sudo apt-get autoremove
        $ sudo apt-get clean
Para instalar as dependências:

        $ sudo apt-get install libsdl1.2-dev libpng-dev libzip-dev \
                               tcl8.6-dev libglew-dev libogg-dev \
                               libvorbis-dev libtheora-dev \
                               libasound2-dev libsdl-ttf2.0-dev
Falta agora apenas a SDL_ttf (nao e mais necessario nas builds mais novas do Raspbian, ja incluido no item anterior), baixe no site oficial o código fonte da mesma (SDL_ttf for SDL 1.2). Atente-se para baixar a versão 2.0 para a SDL 1.2 que é a usada pelo openMSX. A instalação é trivial do mundo Unix:
        $ tar zxvf SDL_ttf-2.0.11.tar.gz
        $ cd SDL_ttf-2.0.11
        $ ./configure --prefix=/usr
        $ make
        $ sudo make install-strip
        $ sudo ldconfig
a partir disso podemos instalar o openMSX. Baixe os fontes do site oficial (openMSX 0.15 source code). Os programas serão instalados todos em /usr/local para facilitar. A instalação, neste ponto, do openMSX também é trivial, porém antes do procedimento devemos alterar o arquivo build/custom.mk (dentro do diretórios descompactado) sugiro a instalação do "joe" pois é um editor WordStar like,

        $ sudo apt-get install joe
        $ tar zxvf openmsx-0.15.0.tar.gz
        $ cd openmsx-0.15.0
        $ joe build/custom.mk
Vamos mudar as seguintes opções:
  • INSTALL_BASE, mude para /usr/local
  • SYMLINK_FOR_BINARY, mude para false
Se estiver usando o joe para editar, [CTRL]+[K], [X] para sair e salvar o arquivo. Em seguida:

        $ ./configure
        $ make
        $ sudo make install
Após o ./configure, atente que todas as libs foram encontradas, que os componentes estão marcados como YES e que o diretório de instalação seja /usr/local, caso algo esteja diferente, revise o processo. O make é bem demorado, tenha paciência. Após a instalação:
        $ openmsx
Perceba que a inicialização é super lenta, infelizmente o Pi não tem poder de fogo para rodar o openMSX no "ultra", então vamos realizar alguns ajustes, pressione [F10] para abrir o console e digite os seguintes comandos, seguidos de [ENTER]:
        set rederer SDL
        set auto_enable_reverse off
        reverse stop
        save_settings
Outros ajustes serão importantes, mas deixemos para outro momento, com estas mudanças o openMSX já consegue rodar relativamente bem, embora apenas com o C-BIOS ativo, após o catapult ser instalado veremos como instalar outras máquinas.

Catapult 0.15

A instalação do catapult também é similar a do openMSX, somente precisamos resolver as dependências e alterar o arquivo build/custom.mk. As dependências são apenas:
  • XML2
  • wxWidgets
que são instaladas com os seguintes comandos:
        $ sudo apt-get install libxml2-dev libwxgtk3.0-dev
Baixe o source do catapult 0.15 no site oficial, descompacte e edite o arquivo custom.mk
        $ tar zxvf openmsx-catapult-0.15.0.tar.gz
        $ cd openmsx-catapult-0.15.0
        $ joe build/custom.mk
Altere as seguintes opções:
  • INSTALL_BASE: mude para /usr/local
  • SYMLINK_FOR_BINARY: mude para false
  • CATAPULT_OPENMSX_BINARY: mude para /usr/local/bin/openmsx
  • CATAPULT_OPENMSX_SHARE: mude para /usr/local/share

Salve o arquivo, vamos passar para o build agora:

        $ make
        $ sudo make install
Para executar, basta digitar:
        $ catapult
Veja que ele trás a configuração default do openmsx e vem marcado para procurar por configurações. Pode dar Ok, ele ainda não vai achar muita coisa, mas vai executar normalmente.

Debugger

O debugger do openMSX é ótimo e um grande aliado no desenvolvimento, a compilação dele e típica de aplicações QT, sendo essa a única dependência dele
        $ sudo apt-get install qt5-default
o processo de compilação do debugger é muito simples, basta comandar:

        $ make
        $ sudo cp derived/bin/openmsx-debugger /usr/local/bin/
para testar, vamos executar o catapult e escolher uma máquina CBIOS qualquer, em seguida inicie o debugger

        $ open-debugger
Com o sistema rodando, vá ate o debugger e selecione "System", "Connect", se tudo correu bem, o debugger está ativo e aguardando comandos.

System ROMs

Para instalar as ROMs dos vários sistemas e periféricos MSX, é necessário dumpar as mesmas, ou baixar de alguém que já dumpou, e copiar nos diretórios específicos do openmsx. Existem duas opções, gravar no diretório $HOME (.openmsx) ou system wide no diretório /usr/local. Neste tutorial vamos instalar system wide.

O processo é muito simples, basta ver o arquivo XML da máquina que deseja emular, por exemplo o Expert Gradiente 1.1.

Vá até o diretório /usr/local/share/machines e edite o arquivo "Gradiente_Expert_GPC-1.xml", pode-se ver o nome padrão da ROM bem como o SHA1 da mesma, o openMSX dá preferência por buscar ROMS pelo SHA1.

Algumas ROMs podem ser encontradas no MSX Archive.

Copie o arquivo expert_1.1_basic-bios.rom para o diretório /usr/local/share/systemroms, em seguida abra o catapult e use a opção "File", "Test MSX Hardware", depois de uma nova busca, a máquina Expert 1.1 vai aparecer na lista MSX type.

Lembre-se de usar "sudo" para copiar no diretório /usr/local.

Para facilitar o trabalho, aqui você tem o download e um pacote de ROMs já configuradas para muitas das máquinas suportadas pelo openMSX, além de muitos periféricos e um HDD com suporte a C, Assembly, Fortran e Pascal, executando o NEXTOR 2.1 beta 2.

Para instalar este pacote, primeiro crie um diretorio msx no seu $HOME:
        $ cd $HOME
        $ mkdir msx
        $ cd msx
Baixe o arquivo SystemROMs.zip, e descompacte neste diretório, descompacte e mova os arquivos:
        $ unzip SystemROMs.zip
        $ sudo mv extensions/* /usr/local/share/extensions/
        $ sudo mv systemroms/* /usr/local/share/systemroms/
        $ rm -rf extensions
        $ rm -rf systemroms
rode o catapult e mande Testar novamente por hardware
veja que agora muito mais máquinas foram descobertas, ainda faltam algumas, em breve tentarei resolver.

Vamos testar uma configuração particular, no catapult, escolha a máquina "Boosted MSX2 EN", nas extensões marque "nextor 2" e "ram512k" (use [CTRL] para poder marcar mais de uma extensão), em "Hard Disk Drive" escolha o disco "program.dsk" que está no diretório $HOME/msx
Inicie a máquina e teremos um MSX 2 rodando com um HD de 128Mb, já com uma série de programas para desenvoler.

Download

NOOBS_v3_0_1.zip: NOOBS versão 3.0.1, onde este tutorial foi baseado.
SystemROMs.zip: ROMs e extensões necessárias para emular várias configurações de MSX.
SDL_ttf-2.0.11.tar.gz: Biblioteca SDL-ttf para SDL 1.2.
openmsx-0.15.0.tar.gz: Emulador openMSX versão 0.15, source code.
openmsx-catapult-0.15.0.tar.gz: Frontend para openMSX, catapult, source code.
debugger-master.zip: Debugger para o openMSX, source code.
program.dsk: Disco HDD ligeiramente atualizado do SystemROMs.



Nenhum comentário:

Postar um comentário