Hamacker’s Palace

31 de Outubro de 2006

SDLMame e de quebra como criar .deb a partir de programas que não possuem “make install”

Arquivado em: GNU/Linux — hamacker @ 18:37

(Antes de ler, saiba que alguns caracteres como - - dois traços seguidos viram um traço longo –, as aspas duplas vira isso aqui : “”, sim este wiki modifica alguns caracteres. Então ao utilizar o famoso copiar/colar atente-se a isso.)

Melhor talvez do que rodar remakes de sucesso, é rodar o próprio game, apesar de ser meio “retro” para alguns, é de longe a melhor forma de reviver jogos originais. Nesse artigo vamos instalar o sdlmame, trata-se do “emulador” MAME, porém numa compatibilidade específica com SDL e com versões mais sincronizadas com o mame, na minha opnião é melhor que o xmame.

Vamos ao passo-a-passo :

1) Antes de prosseguir com a instalação e criaçao de pacote, certifique-se de que tenha acrescentado o repositório ‘multiverse’ no seu /etc/apt/sources.list :

deb http://br.archive.ubuntu.com/ubuntu/ edgy universe multiverse
deb-src http://br.archive.ubuntu.com/ubuntu/ edgy universe multiverse

se não estiverem habilitados, habilite-os e por fim atualize a base de dados do apt :

sudo apt-get update

2) Vá para o diretório /opt :

cd /opt
3) Faça o download do sdlmame na pasta /opt :

http://rbelmont.mameworld.info/?page_id=163

ou se preferir :

sudo wget -vc http://rbelmont.mameworld.info/sdlmame0110u1.zip

3) Descompacte o sdlmame e permaneça do diretorio descompactado :

unzip sdlmame0110u1.zip

renomeie o diretorio ’sdlmame0110u1′ para algo descreva melhor o nome, como :’sdlmame’ :

mv sdlmame0110u1 sdlmame

por fim, permaneça no diretório dos fontes

cd sdlmame/

4) Antes de prosseguir com a compilação, é necessário certificar-se de que voce possua as ferramentas GNU essenciais para a compilação, além disso alguns programas serão requisitados para criar um pacote .deb após a compilação e simplificar novas atualizações :

sudo apt-get -y install build-essential dpkg-dev debhelper devscripts fakeroot linda dh-make

5) Agora vamos baixar as dependencias para a compilacao :

sudo apt-get install -y libsdl1.2-dev libsdl-image1.2-dev libsdl-mixer1.2-dev libsdl-sound1.2-dev libexpat-dev libxinerama-dev x11proto-xinerama-dev

Vamos precisar dum icone para o sdlmame, vamos pegar emprestado de outro site :

wget -vc http://www.mame.net/mame.png

6) Compilação :

make
(ou se voce possuir um DualCore tente “make -j2″)

7) Precisamos instalar um frontend para o sdlmame, isto é necessário porque o sdlmame só funciona na linha de comando e com um front-end podemos navegar entre os games existentes, ver um screenshot de cada um deles e manter os preferidos numa lista de favoritos. Infelizmente, a maioria dos frontends para MAME rejeitam o sdlmame, então é preciso encontrar um frontend que permita o uso do sdlmame, eu achei este aqui :

http://it.geocities.com/pinguinogoloso/

Ele não é tão sofisticado quando o gxmame, mas ofereçe o básico : uma lista de games com screenshots, favoritos e roda em modo fullscreen tranquilamente. Vamos um passo-a-passo :

7.1) Criar um diretório ’sdlanza’ dentro do diretório principal do sdlmame e faça o download :

mkdir sdllanza
cd sdllanza
wget -vc http://it.geocities.com/pinguinogoloso/sdlanza.zip
unzip sdlanza.zip

7.2) Configure o frontend com o comando :

chmod +x INSTALL
./INSTALL

Responda corretamente as perguntas :

Enter the name of the execuble file for the XMAME program: [None=>DEMO mode] :
R: /opt/sdlmame/mamepm

Enter the directory where you have the roms of your MAME games :
R: Digite o local onde fica suas roms, como /opt/sdlmame/roms

7.3) Edite o o arquivo lanzamame.cfg e a quarta linha (atenção: exatamente a quarta linha) para suprimir suas necessidades de opções na linha de comando, tal como :

-video opengl -joystick -rompath /opt/sdlmame/roms -samplepath /opt/sdlmame/samples/ -inipath /opt/sdlmame/ini -cfg_directory /opt/sdlmame/cfg -nvram_directory /opt/sdlmame/nvram -memcard_directory /opt/sdlmame/memcard -input_directory /opt/sdlmame/inp -state_directory /opt/sdlmame/sta -artpath /opt/sdlmame/artwork -snapshot_directory /opt/sdlmame/snap -diff_directory /opt/sdlmame/diff -ctrlrpath /opt/sdlmame/ctrlr -cheat_file /opt/sdlmame/cheat.dat -cheat

Se voce tiver as roms, snapshots, cheat,… em outros locais então a linha acima deverá refletir exatamente essas mudanças, isso ocorrer por exemplo se voce tem um sistema com dual-boot onde a partição windows é a que abriga as roms.

7.5) Voce precisará copiar os screenshots dos games para /opt/sdlmame/sdlanza/images, os screenshots voce já sabe são as fotos de cada jogo, voce os encontra facilmente através do google inclusive um .zip com todos eles. Uma dificuldade que tive foi que o ’sdlanza’ só exibe os screenshots no formato .gif e normalmente os encontramos no formato .png, eu baixei todos os .png no diretório images e a seguir executei o comando :

mogrify -format gif *.png

E todos os *.png foram convertidos para GIF.

8) Criação dum pacote .deb :

A compilação gerará os binários que necessitamos como chdman, file2str, jedutil e o mais importante de todos : “mamepm” que é o sdlmame propriamente dito.

Sou um pouco exigente com programas que não possuem pacotes .deb, recuso-me a instalar a maioria deles num sistema desktop, mas no caso de jogos e emuladores é preciso abrir uma excessão, mas como abrir uma excessão se quem esta a fim de jogar vai entender lhufas de compilação ? Neste caso nem adianta o jogo ser opensource porque devido a dificuldade provavelmente este jogo nunca será instalado. Os repositórios do Ubuntu podem ajudar muito nessa necessidade, assim como os repositório de terceiros com muitos outros games, mas o legal mesmo é voce compartilhar aqueles que voce já possui no seu computador, afinal são opensource, não são ? :). Mas e aqueles jogos que não possuem um pacote .deb ?

Na maioria deles o “checkinstall” no lugar do “make install” vai resolver, porém há alguns programas que não possuem o processo de “make install”, alias nem mesmo o “./configure” existe. Quando isso ocorrer voce vai perceber que não será mais possivel usar o simples “checkinstall”. Sim, isso é triste e as regras de empacotamento do Debian é um pouco complexo (embora mais simples do que criar um .rpm) para um usuário comum, o que por sua vez impossibilita a maioria de entusiastas de criar seus próprios pacotes. Voce poderia empacotar alguns, mas convenhamos não é tão fácil assim. Para suprir essa lacuna, eu tive acesso à alguns documentos na internet que me permitiram criar um script um pouco genérico que facilitará o empacotamento desses tipos de programas. Parte dessa documentação está aqui :

http://synthesize.us/HOWTO_make_a_deb_archive_without_dpkg

Com ajuda de outros colegas e documentação farta, conseguí há um certo tempo atrás concluír um script que me permitiu empacotar qualquer diretório. Esse script era um hobby para mim e sempre dei pouca importancia a ele, mas para empacotar o “SDLMame” vou precisar dele e usa-lo como oportunidade para compartilhar com quem estiver lendo este texto, claro que antes passei ele por uma revisão e espero que gostem. Repetindo, a idéia desse script é criar um .deb a partir de qualquer pasta ou programa
, no caso de programas ele é muito útil especialmente quando não há um “make install” onde seria muito melhor o “checkinstall”, notorialmente jogos compilados são os mais comuns.

Faça o download desse script, gravando-o no diretório principal do seu sistema :

Script para a criação do pacote sdlmame-0.110

Renomei-o para criar_pacote_deb.sh e dê permissão de execução :

mv criar_pacote_sdlmame_deb.sh.txt   criar_pacote_sdlmame_deb.sh
chmod +x criar_pacote_sdlmame_deb.sh

Ele já está editado com as informações necessárias para a criação dum .deb para sdlmame, porém facilmente voce adaptará para qualquer outro programa .

9) Antes de rodar o script, uma advertência : rode-o a partir do diretório onde esteja o programa compilado com os binários e pastas necessárias. Também tenha certeza de já ter feito o “make” antes e a compilação tenha dado certo. E lá vamos nós :

sudo ./criar_pacote_sdlmame_deb.sh

Se erros surgirem, tente debulhar o que está acontecendo rodando-o dessa forma :

sudo bash -x ./criar_pacote_sdlmame_deb.sh

No final, a seguinte mensagem surgirá :
**********************************************************************
[sucesso] Pacote criado com sucesso.
Para instalar :
sudo dpkg -i …/sdlmame-0.110.deb
Para remover :
sudo apt-get -y –purge remove sdlmame
fim.
**********************************************************************

Pronto ! Siga as instruções acima para criar o pacote ou remove-lo a seu bel-prazer e sobretudo : compartilhe!

Se alguem tiver idéias de como melhorar o script, faça e eu atualizarei-o.

Conclusões Finais :

  • Estamos falando de software livre, então com o .deb criado, compartilhe !
  • Visite a página do sdlmame porque com frequencia há atualizações sincronizadas com o Mame, e em todas as vezes que fizer essas atualizações re-edite o script que criei e atualize nele informações como o número da versão nova. O script é de fácil legibilidade, fique tranquilo.

27 de Outubro de 2006

Remake do jogo ‘Knightmare II: The Maze of Galious’ para Ubuntu

Arquivado em: GNU/Linux, jogos — hamacker @ 20:40

preview-mog

Depois do remake do ‘The Goonies’, agora vou apresentar outro remake de grande sucesso no MSX : ‘Knightmare II: The Maze of Galious’, a continuação de outro classico ‘Knightmare’. Veja uns screenshots em :

http://www.braingames.getput.com/mog/

Este é bem fácil de instalar, necessita apenas de três passos :

1) Antes de prosseguir com a instalação e criaçao de pacote, certifique-se de que tenha acrescentado o repositório ‘multiverse’ no seu /etc/apt/sources.list :

deb http://br.archive.ubuntu.com/ubuntu/ edgy universe multiverse
deb-src http://br.archive.ubuntu.com/ubuntu/ edgy universe multiverse

se não estiverem habilitados, habilite-os e por fim atualize a base de dados do apt :

sudo apt-get update

2) Agora instale :

sudo apt-get install mazeofgalious

3) Crie um atalho, tive que desenvolver um ícone para o jogo, escolhí a classica tela de abertura, adicionei um canal alfa (transparencia), removí o fundo e reduzí o tamanho para 96×96px, ficando assim :

The Maze of Galious
então vamos baixar este ícone assim :

sudo wget -vc http://hamacker.files.wordpress.com/2006/10/mog.png -O /usr/share/pixmaps/mog.png

Agora dê um ALT+F2 e execute ‘gksu gedit /usr/share/applications/mog.desktop’, e adicione estas linhas :

[Desktop Entry]
Name=The Maze of Galious
Comment=Jogo de plataforma, um remake do classico ‘The Maze of Galious’ para MSX.
Exec=mog
Icon=mog.png
Terminal=false
Type=Application
Categories=Application;Game;

Agora salve este arquivo e voce já poderá jogar ‘The Maze of Galious’ através na Aplicações > Jogos > The Maze of Galious.

Conclusões Finais :

Apenas curta o jogo, é bom e relaxante. Se voce não quiser terminar o jogo na unha, a internet oferece uns mapas completos e estratégias.

Também é possivel trocar o tema dos personagens, trilha sonora e fundo dos cenários (o mapa continua intacto), maiores detalhes voce obtem aqui : http://www.braingames.getput.com/mog/

11 de Outubro de 2006

Gerenciador de clipboard para o Gnome e outros WMs

Arquivado em: GNU/Linux — hamacker @ 15:43

(Antes de ler, saiba que alguns caracteres como - - dois traços seguidos viram um traço longo –, as aspas duplas vira isso aqui : “, sim este wiki modifica alguns caracteres sem minha permissão . Então ao utilizar o famoso copiar/colar atente-se a isso.)
Quem é usuário do KDE já esta acustumado a usar o Klipper que fica na barra de tarefas para gerenciar todos os “copiar” da area de clipboard, no entanto, usuários do gnome e outros windowmanagers (fluxbox, icewm, windowmaker,…) por algum motivo não possuem um gerenciador de clibboard. Quem já ficou irritado porque precisou sobrepor uma frase armazenada na area de clipboard por outra e depois precisou recordar ela novamnete sabe como isso irritante, vamos sanar este problema instalando o aplicativo chamado “glipper” (fazendo alusão ao klipper do KDE) que ao contrário do que voce possa imaginar, não trata-se dum aplicativo Gnome e sim um aplicativo GTK2+, portanto pode ser usado com qualquer outro ambiente grafico para linux (window manager).

Se voce quer saber mais sobre o glipper, visite :

http://glipper.sourceforge.net/

Primeiramente, vamos baixar o pacote .deb :

wget -vc http://ufpr.dl.sourceforge.net/sourceforge/glipper/glipper_0.86-1_i386.deb

Se voce já tem alguma experiência com compilação de programas/pacotes sugiro ao ínves de baixar a versão 0.86 descrita na URL acima, baixar o último release que apesar de melhor não contém um .deb para facilitar as coisas. Poderá usar o “sudo checkinstall” para criar um .deb e simplificar sua vida, se voce estiver preocupado com as dependencias de compilação não se assuste pois são poucas.

Vamos instalar com o comando :
sudo dpkg -i glipper_0.86-1_i386.deb

Existe na internet um outro repositório que contém a versão mais recente, no entanto este repositório é muito transacional, isto é, uma hora tá no ar e noutra hora fora do ar, mas se voce quiser fazer uma visita e inclusive dar uma olhadinha em outros pacotes interessantes além do glipper, visite este link :

http://asher256-repository.tuxfamily.org/index.php?page=packages&=en

Para executa-lo, use ALT+F2 e digite : “glipper” e pressione [ENTER].

Pronto! Voce possui o gerenciador de clipboard instalado no seu sistema, agora para não ter que executa-lo manualmente toda vez que o gnome for iniciado vá em Sistema->Preferencias->Sessões->Programas iniciais e clique no botão Adicionar e digite no campo de Comando Inicial : glipper e pronto, agora o glipper será sempre iniciado com o gnome. Outros window managers possuem métodos semelhantes, mas como não os utilizo não poderia passar nenhuma outra dica.

Ubuntu tocando todos os formatos conhecidos.

Arquivado em: GNU/Linux — hamacker @ 15:07

(Antes de ler, saiba que alguns caracteres como - - dois traços seguidos viram um traço longo –, as aspas duplas vira isso aqui : “, sim este wiki modifica alguns caracteres sem minha permissão . Então ao utilizar o famoso copiar/colar atente-se a isso.)

Ok, voce terminou de instalar oUbuntu (dapper ou edgy) e agora sente dificuldade em tocar videos e musicas em formatos proprietários ? Então vamos a solução :

Primeiramente, vamos habilitar os repositorios universe e multiverse, eu faço isso acrescentando ao /etc/apt/sources.list a linha :

deb http://br.archive.ubuntu.com/ubuntu/ edgy main restricted universe multiverse edgy-backports

Se voce utiliza o Ubuntu dapper, apenas troque a ocorrência “edgy” que aparece acima para “dapper”.
Depois disso, atualizo a base de dados do apt :

sudo apt-get update

Pronto, agora vamos instalar os pacotes necessários. Atenção que a lista a seguir é para o Ubuntu Edgy, no entanto, todos eles também existem para o dapper :

sudo apt-get install cdrdao vcdimager mjpegtools vcdtools transcode
sudo apt-get install movixmaker-2 normalize-audio mp3gain
sudo apt-get install mplayer mplayer-fonts mencoder transcode
sudo apt-get install mpeg2dec a52dec vorbis-tools id3v2 mpg321 mpg123
sudo apt-get install totem-gstreamer-firefox-plugin
sudo apt-get install libswfdec0.3 libflac++5c2
sudo apt-get install cdda2wav toolame libmp4v2-0
sudo apt-get install dvdauthor mpeg2dec ffmpeg
sudo apt-get install libmjpegtools0c2a tagtool easytag id3tool
sudo apt-get install lame lame-extras nautilus-script-audio-convert
sudo apt-get install dvd-slideshow
sudo apt-get install mpg123 libmad0
sudo apt-get install libquicktime0 libjpeg-progs libmpcdec3 jhead
sudo apt-get install libmpeg2-4 uudeview flac libmpeg3-1 libxine-extracodecs
sudo apt-get install gstreamer0.10-plugins-ugly gstreamer0.10-ffmpeg gstreamer0.10-plugins-bad
sudo apt-get install gstreamer0.10-gl gstreamer0.10-pitfdll gstreamer0.10-sdl
sudo apt-get install gsfonts gsfonts-x11
# avifiles (para quem vai usar avifile-player)
sudo apt-get install avifile-player avifile-utils avifile-mad-plugin avifile-mjpeg-plugin
sudo apt-get install avifile-vorbis-plugin avifile-win32-plugin avifile-xvid-plugin
sudo apt-get install avifile-win32-plugin avifile-divx-plugin avifile-utils
sudo apt-get install avifile-xvid-plugin libavifile-0.7c2
sudo apt-get install avifile-divx-plugin xvid4conf avifile-mad-plugin
sudo apt-get install avifile-mjpeg-plugin avifile-vorbis-plugin

A lista acima contém codecs, ferramentas para conversão entre formatos e utilitários. Mas apenas isso não basta, faltam alguns codecs proprietários do formato windows, então vamos a eles :

wget -vc “http://www.debian-multimedia.org/pool/main/w/w32codecs/w32codecs_20060611-0.0_i386.deb”

wget -vc “http://fmasft.if.usp.br/debian-marillat/pool/main/libd/libdvdcss/libdvdcss2_1.2.9-0.0_i386.deb”

sudo dpkg -i w32codecs_20060611-0.0_i386.deb libdvdcss2_1.2.9-0.0_i386.deb

Ok. Parabens ! Codecs para Windows também foram instalados. Uma observação importante é que em alguns países, a utilização dum “css” para destravar os videos em formato mpeg2 e mpeg4 (dvd) são proibidos.

Faltou alguma coisa, sim, o realplayer, novamente acrescente a seguinte linha ao seu /etc/apt/sources.list :

deb http://archive.canonical.com/ubuntu dapper-commercial main

não se preocupe se seu Ubuntu é o Edgy, pois o repositório acima é para ambos. Agora atualize a base de dados apt :

sudo apt-get update

E por fim :

sudo apt-get install realplay

Pronto! Sistema multimidia funcionando. Vale lembrar que por motivos de seus idealizadores : os codecs de musica ou video que estão protegidos por DRM (Digital Rights Management) provavelmente não tocarão.

Aqueles que nunca utilizaram o mplayer antes, talvez enfrente um erro comum dizendo algo “”, isto é um simples ajuste na configuração do mplayer, vá até Preferences > Video e altere o Driver para algo capaz de exibir o video segundo a capacidade de seu computador há opções para placas que utilizam sdl, svga,… se tiver dúvidas aprecie ‘X11′ que apesar de genérico funcionará perfeitamente no seu sistema.

Blog no WordPress.com.