Emulação: como remover máquinas eletromecânicas do MAME

Lembrando que este artigo é sobre o MAME, não sobre pirataria. Não faça comentários pedindo jogos, indicando endereços, etc. Conhecem o procedimento.

Se você baixou aqueles mega pacotes de conteúdo do MAME, já deve ter notado que têm vários gigabytes de lixo. O lixo em questão são ROMs, flyers e outras imagens de máquinas eletromecânicas, que não tem serventia alguma para 99% dos interessados no emulador. Exemplos: pinballs, máquinas de aposta e outras.

Claro que lixo é um termo cruel. Tem enorme valor como preservação de software e para desenvolvedores. Mas para nós, pessoas humildes que querem só montar um home arcade ou um PC gamer entupido, são preciosos GB que poderiam estar ocupados por CHDs, por exemplo.

Tem como fazer uma senhora limpeza com o cmd do Windows e alguns passos num editor avançado de texto. É fácil pra você que é o manjador da TI, mas ninguém é obrigado a saber, certo? [Resumindo: não perca seu e nosso tempo comentando "mas isso é muito fácil, não precisa de tutorial, blablabla...]

Listando arcades eletromecânicos

Pra começar, vamos usar a interface do MAME pra gerar uma lista com as ROMs de arcades eletromecânicos. Como se vê na imagem, foi usado o MAME 0.184.

Selecione "Mechanical" na lista de dispositivos, do lado esquerdo:

Em seguida, clique no ícone do disquete no alto da tela, e selecione "Export displayed list to file", selecionando em seguida "Export list in TXT format".

Aguarde e ela será criada na pasta "ui"da sua instalação do MAME. Abra a lista e verá que ela tem a seguinte estrutura:

Name:                    Description:
18w                      "18 Wheeler (set 1)"
18w2                     "18 Wheeler (set 2)"
24_130                   "24 v1.30"

...etc, são milhares de linhas.

Precisamos de uma lista "limpa", ou seja, só com os nomes. Aqui entra a necessidade de um editor de texto capaz de lidar com comandos "find and replace" e macros. Recomendo 100% o Notepad++; não é jabá, pegue grátis aqui.

Abra a lista no Notepad++. Exclua a primeira linha para se livrar do "Name" e "Description".

Agora precisamos excluir as descrições que ficam entre aspas. Posicione o cursor no início da primeira linha...

e no menu superior, clique em "Macro" > "Iniciar Gravação". A partir de então, qualquer coisa que você fizer será gravada, podendo ser repetida mais tarde. Conveniente, não?

Não mexa em nada diferente do seguinte:

Pressione Ctrl + F para abrir a janela de procura do programa. Nela, clique na aba "Substituir". Na primeira caixa insira aspas (").

Clique em "Localizar próximo" e feche a janela de Localizar. A abertura de aspas da primeira descrição é selecionada. Segure a tecla Shift, e usando a tecla →, selecione o resto do texto até o fim da linha (sim, também pode pressionar End uma vez).

Deve ficar assim:

Tecle Delete uma vez, seguido por ↓ e depois a tecla Home. Exatamente nessa sequência: Del, ↓, Home. O cursor vai para o início da linha seguinte. Volte ao menu Macro e selecione "Parar gravação".

Ficou claro o intuito aqui? Você acabou de gravar o comando todo e agora pode repeti-lo com o atalho Ctrl + Shift + P. Experimente algumas vezes e veja o que acontece...

Se as descrições forem sumindo, parabéns.

O arquivo tem mais ou menos 15 mil linhas. Você não vai ficar lá igual tonto segurando Ctrl + Shift + P e esperando, certo? Coloque o cursor no início de alguma linha ainda sem limpar, siga ao menu "Macro" > "Executar macro múltiplas vezes...", e marque a caixa "Executar até o fim da linha". Clique em "Executar" e aguarde.

Nota: faça isso com a janela do Notepad++ maximizada, ou o script vai dar erro em quebras automáticas de linha.

No fim, você terá a lista com "quase" só os nomes de ROMs. Ainda tem um monte de espaço em branco depois de cada nome, veja:

Isso é mole de resolver. Ctrl + F, e na guia Substituir, troque um espaço em branco (clique na caixa e dê um espaço) por uma caixa vazia.

Clique em "Substituir todos":

Quase pronta. Agora falta um ".zip" ao fim de cada linha, para que os nomes batam com os nomes dos arquivos de ROMs.

Mesmo ritual do primeiro macro:

  • Coloque o cursor no início da primeira linha.
  • Inicie a gravação.
  • Tecle End para ir ao fim da linha, e digite .zip.
  • Tecle ↓ e Home.
  • Encerre a gravação.

Use de novo o comando de repetir múltiplas vezes. Agora cada nome terá o formato "nome.zip".

Salve sua lista com um nome qualquer DENTRO DA PASTA DE ROMS; coloquei "mecanicas.txt" para lembrar mais tarde do que se trata.

Excluindo arquivos que constam na lista

Agora o Windows. Abra um cmd como administrador (clique com o botão direito no ícone do menu Iniciar, e escolha "Prompt de Comando (Admin)".

Digite o seguinte:

cd c:\sua_pasta_mame\roms

Nem preciso explicar, né? Dê Enter  e agora digite:

for /f %i in (c:\pasta_em_que_salvou_a_lista\mecanicas.txt) do del /F %i

Aqui já é melhor explicar.

  • for: para...
  • /f: cada arquivo (file)...
  • in: que está em...
  • (): caminho para o arquivo de texto com os nomes
  • do: faça o seguinte...
  • del: exclua
  • /F: força a exclusão do arquivo, já que alguns podem estar marcados como somente leitura ou algo assim que o proteja.
  • O %i especifica uma variável, que no caso, é o nome do arquivo.

É o comando Del.

Digitou? Tecle Enter e espere a mágica acontecer. Veja a quantidade de ROMs antes e depois de rodar o comando:

De 28.8 para 13.9k: teoricamente, 50% de economia de espaço removendo tralhas.

Daquelas quase 29 mil ROMs, quase 14 mil eram arcades eletromecânicos. Coisas que provavelmente você jamais usaria. Uma senhora economia no HD e um alívio na sua lista de games.

Excluindo imagens

Se você baixou os pacotes de imagens do MAME, terá flyers, cabines, snapshots e outras imagens dos eletromecânicos. Para eliminar tudo, siga os mesmos passos, com os seguintes cuidados e alterações:

  • A lista deve mudar. Em vez de "nome.zip", o formato deve ser "nome.png" ou outra extensão de imagem que forma seu pacote — alguns podem ser em .bmp, por exemplo. Um simples "Substituir Tudo" do Notepad++ resolve.
  • Não esqueça de colocar a lista dentro da pasta a ser alterada, como a Flyers, snaps, etc.
  • Se está usando o mesmo cmd em que já filtrou os games, não esqueça de navegar outra vez até a pasta certa. Se estava em c:\mame\roms, por exemplo, digite cd ..\flyers para voltar um nível acima e achar a pasta flyers.

Pelo mesmo caminho, você pode gerar outras listas e assim filtrar o que quiser: games por fabricante, ano, máquinas não-funcionais, etc. Qualquer coisa que o MAME permitir listar. Existem programas para filtragem e verificação de ROMs, mas pra quem prefere o trabalho "na unha", é por aí.

Daniel Lemes
Daniel Lemes
Fundador do MB, quase mil artigos publicados em dez anos pesquisando e escrevendo sobre games. Ex-seguista, fã de Smashing Pumpkins e Yu Suzuki.

3 COMENTÁRIOS

  1. Um comentário maroto: TODAS as roms de jogos eletromecânicos não são funcionais (ou são ruins)? Tem uns Arcade que [em teoria] seriam legais de se preservar.

    • Sinceramente nem sei se alguma dessas ROMs (tipo pinball, cassino, etc) têm função, talvez pra alguém que tenha o hardware e falte o software no futuro. Geralmente pessoal que pega romset de Mame elimina todos os eletromecânicos porque só vai entupir espaço mesmo.

Deixe seu comentário

Digite seu comentário!
Digite seu nome aqui

Mais recentes

Análises