Configuração inicial¶
Configuração básica¶
Inicialmente o MAME precisa de poucas configurações para funcionar, num primeiro momento o MAME precisa criar alguns arquivos de configuração e depois é preciso configurar o caminho onde as suas ROMs estão.
Para os usuários do Windows, baixe o binário do site oficial e descompacte-o em algum lugar. Para usuários de outras versões como Linux ou macOS, será preciso compilar ou ver a disponibilidade de versões já compiladas para o seu sistema operacional.
No Windows, vá até a pasta onde o MAME foi descompactado, escolha um ponto vazio da pasta, clique com o botão direito do mouse e escolha Novo --> Atalho, quando aparecer a janela "Criar atalho" em "Digite o local do item" insira cmd e clique em OK. O ícone do prompt de comando deverá aparecer dentro da pasta do MAME, clique com o botão direito em cima dele e selecione Propriedades, selecione a aba Atalho, no campo Iniciar em: tem o caminho C:\WINDOWS\system32 ou algo assim, apague o que estiver neste campo e clique em OK.
Clique duas vezes no ícone do prompt de comando e pronto, já estamos no diretório do MAME, para criar os arquivos de configuração inicial faça:
mame -createconfig ou mame -cc
O comando também serve para as versões do Linux e do macOS, este comando cria os seguintes arquivos:
mame.ini
É o arquivo que contém as principais configurações do MAME.
ui.ini
Contém as configurações da interface, como a definição do tipo e o tamanho da fonte, da cor do texto e do fundo, etc.
plugins.ini
Aqui fica a lista dos plug-ins disponíveis no MAME, depois do nome do plug-in, o 1 indica que ele está ativo e 0 que está desativado. Consulte Plug-ins para obter mais detalhes sobre os plug-ins que acompanham o MAME.
No macOS os arquivos ficam em ~/Application Support/mame
, nos
sistemas Linux eles ficam em /home/seu_usuário/.mame
ou
simplificando, no diretório ~/.mame
.
Observe que o mame.ini
é basicamente um arquivo de texto simples,
podendo ser editado com qualquer editor de texto (como o Notepad,
o Notepad++,
o Geany,
o Emacs ou
o TextEdit
por exemplo) e alterar todas as opções conforme a sua necessidade.
Nota
Sempre mantenha um backup destes arquivos!
O caminho das ROMs¶
Configuração tradicional¶
A primeira configuração a ser feita é apontar o caminho completo onde as
suas principais ROMs estão armazenadas. A opção
-rompath permite a definição deste
caminho, porém, é possível deixá-lo fixo, para isso abra o mame.ini
e edite a opção rompath
:
rompath roms
Esta é a configuração original, ao definir roms
o MAME vai procurar
por uma pasta chamada roms
no mesmo diretório do executável do MAME.
Caso as suas ROMs fiquem em outro lugar, adicione o caminho completo
separado por ponto e vírgula, exemplo:
rompath roms;D:\roms;E:\bkp\roms;F:\arcade\roms
Assim o MAME sempre irá buscar as ROMs nestes caminhos que foram definidos.
Porém dependendo da quantidade de ROMs que cada pasta tenha e até mesmo a quantidade de caminhos, esta talvez não seja a melhor maneira de configurar pois o MAME pode ficar um pouco mais lento até ele fazer a varredura de todos os diretórios ao executar a sua interface gráfica. Caso haja muitas e muitas ROMs na sua coleção a melhor opção possa ser a configuração avançada.
Configuração avançada¶
Uma outra maneira de se configurar o caminhos das ROMs é utilizando as
configurações individuais parcialmente descrito em
-readconfig. Primeiro é preciso
identificar qual a configuração do seu inipath
, para isso faça o
comando no Windows:
mame -showconfig|findstr initpath
inipath .;ini;ini/presets
No Linux e no macOS faça:
mame -showconfig|grep inipath
inipath $HOME/.mame;.;ini
Em ambos os casos, o ponto final indica o mesmo lugar que o executável
do MAME. Uma vez identificado onde a sua pasta ini
está, dentro dela
crie uma pasta chamada sources.
Vamos supor que queira jogar o Sonic the Hedgehog da SEGA no Genesis/Mega Drive, primeiro identifique o driver com o comando:
mame genesis -ls
genesis sega/mdconsole.cpp
O driver é mdconsole.cpp
, então crie o arquivo mdconsole.ini
dentro da pasta ini\sources
, edite o arquivo mdconsole.ini
e
adicione o caminho completo onde estão armazenados as suas ROMs do
Genesis/Mega Drive, exemplo:
rompath D:\genesis\roms
No Linux ou macOS:
rompath /media/genesis/roms
Isso pode ser feito com qualquer outro sistema, basta identificar o
driver, criar um arquivo *.ini
com o nome do driver (sem o .cpp
)
dentro da pasta ini\sources
. Lembrando que caso o sistema que será
executado utilize algum tipo de BIOS como o Neo Geo por exemplo, é
preciso apontar o caminho completo onde se encontra a BIOS do sistema e
o caminho completo das ROMS do sistema.
Se for o caso do Neo Geo, crie o arquivo ini\sources\neogeo.ini
,
dentro do arquivo neogeo.ini
adicione:
rompath D:\roms;D:\bios
Um dos motivos de se deixar as ROMs dos sistemas separadas em vez de se
deixar tudo junto, depende muito da quantidade de ROMs existente na
pasta roms
. Caso tenha TODAS AS ROMS do MAME numa mesma pasta, o
gerenciamento delas pode ficar muito comprometido pois dependendo do
hardware usado, uma simples navegação dentro desta pasta pode ficar
extremamente lento dada a imensa quantidade de arquivos.
Configurando os gráficos¶
A maneira mais simples de fazer a configuração gráfica do MAME é clicando duas vezes em seu executável ou o invocando através do terminal ou do prompt de comando sem qualquer opção, quando a interface aparecer, com o mouse dê um clique duplo em Definições gerais e depois em Opções do vídeo e escolha uma das opções disponíveis em Modo do vídeo, para mais detalhes consulte -video.
Se for possível prefira a opção bgfx, caso contrário opengl e em último caso d3d. O MAME ainda usa o Direct3D versão 9 porém do Windows 7 em diante o Direct 3D 9 não é mais compatível com as versões mais novas do Windows.
Note que apesar de ser possível selecionar o modo do vídeo, para tirar
proveito da aceleração da sua placa de vídeo, prefira usar a versão do
Direct3D do bgfx, neste caso, abra o seu mame.ini
, localize a opção
vídeo
e troque auto
por bgfx
, exemplo:
video bgfx
Agora, procure a opção bgfx_backend
e troque auto
por d3d11
ou d3d12
caso a sua placa de vídeo seja compatível:
bgfx_backend d3d12
Também é possível fazer a configuração parcial do vídeo usando a
própria interface do MAME, na linha de comando ou do prompt execute o
mame
sem nenhuma opção.
As configurações que já vem definidas são suficientes para a grande maioria dos usuários, caso não queira que o MAME inicie ocupando a tela inteira por exemplo, altere a opção Modo janela para Ligado, depois faça um duplo clique em Retorne ao menu anterior e novamente em Salve a configuração para armazenar as alterações no mame.ini.
Tenha ciência que nada que seja feito aqui vai "quebrar" o MAME,
contudo, pode ser que por alguma questão de incompatibilidade, o MAME
não abra mais a interface, rode sem som, com tela preta ou algum outro
tipo de problema. Neste caso, faça o backup dos seus arquivos
mame.ini
, ui.ini
e plugins.ini
, crie uma nova configuração
com o comando mame -cc
e tente novos ajustes, evite aqueles que
causaram problemas. Para mais informações consulte
-createconfig.
Para mais detalhes sobre todas as opções da parte da configuração do vídeo, consulte Opções do vídeo, Efeitos BGFX para (quase) todo mundo para saber mais.
Configurando o áudio¶
Assim como na configuração de vídeo, num primeiro momento, o MAME detecta e configura o áudio de forma automática para que funcione com o hardware existente. Porém é possível obter uma menor latência (atraso) no áudio e assim melhorar o seu desempenho, os sistemas como a Dance Dance Revolution e outras do tipo, podem se beneficiar bastante de uma latência menor.
Para identificar a sua placa de som no MAME execute o comando
mame -v -sound portaudio
, ele deverá retornar uma lista com as
opções disponíveis seja para Windows, Linux ou macOS. Para mais
informações, primeiro consulte a opção
-pa_api para identificar corretamente
o seu hardware antes de continuar.
Abra o seu arquivo mame.ini
e adicione estas opções:
# Audio
sound portaudio
lowlatency 1
samplerate 44100
pa_api ALSA
pa_device "Xonar STX: Multichannel (hw:0,0)"
Remova a opção pa_device
caso queira deixar que a seleção seja
automática. Salve o arquivo e rode novamente no terminal o comando
mame ddrmax2 -v
, dentre as várias informações você deverá ver algo
como mostra o exemplo abaixo para o meu computador:
PortAudio: API ALSA has 13 devices
PortAudio: ALSA: "Xonar STX: Multichannel (hw:0,0)" (default)
PortAudio: ALSA: "Xonar STX: Digital (hw:0,1)"
PortAudio: ALSA: "HDA ATI HDMI: 0 (hw:1,3)"
PortAudio: ALSA: "HDA ATI HDMI: 1 (hw:1,7)"
PortAudio: ALSA: "HDA ATI HDMI: 2 (hw:1,8)"
PortAudio: ALSA: "HDA ATI HDMI: 3 (hw:1,9)"
PortAudio: ALSA: "HDA ATI HDMI: 4 (hw:1,10)"
PortAudio: ALSA: "HDA ATI HDMI: 5 (hw:1,11)"
PortAudio: ALSA: "sysdefault"
PortAudio: ALSA: "iec958"
PortAudio: ALSA: "spdif"
PortAudio: ALSA: "pulse"
PortAudio: ALSA: "a52"
PortAudio: API OSS has 0 devices
PortAudio: Using device "Xonar STX: Multichannel (hw:0,0)" on API "ALSA"
PortAudio: Sample rate is 44100 Hz, device output latency is 8.67 ms
PortAudio: Allowed additional buffering latency is 30.00 ms/1440 frames
Experimente jogar uma partida e repare que houve uma melhora considerável no sincronismo do som com a ação na tela. Para obter o benefício de uma latência menor, o uso da placa de som se torna exclusiva para o MAME, ou seja, caso você goste de usar o MAME enquanto escuta música de fundo ou ouvir o som do Youtube, Spotify, Tidal ou qualquer outro site ou programa que use a placa de som, o áudio pode não funcionar.
Neste caso altere a configuração do arquivo mame.ini
para:
# Audio
sound sdl
samplerate 44100
Para manter o benefício do áudio com baixa latência para todos os
sistemas referentes ao driver ksys573 como a Dance Dance
Revolution, entre no diretório ini e crie o diretório source,
dentro dele crie o arquivo ksys573.ini
com as configurações de áudio
usadas anteriormente:
# Audio
sound portaudio
lowlatency 1
pa_api ALSA
pa_device "Xonar STX: Multichannel (hw:0,0)"
Todos os sistemas que estão dentro da categoria "Arcade" agora passam a
usar a interface comum de áudio e que funciona junto com quaisquer
outros programas ou serviços de áudio e apenas os sistemas do driver
ksys573 passam a usar a configuração com baixa latência.
O mesmo pode ser feito com outros drivers como a djmain que é
responsável pelos sistemas da série Beatmania e Pop'n Music,
lembrando que você pode identificar o nome do driver com o comando
mame nome_da_rom -ls
, para mais informações consulte o comando
-listsource.
Configurando os controles¶
O MAME aceita dois tipos de configuração para os controles, a primeira é
a configuração feita através da interface, depois de iniciar um sistema
qualquer como o "Street Fighter II" da Capcom mame sf2
, pressione
Tab e selecione Configurações da entrada ->
Atribuições da entrada (este sistema):
Aqui temos a configuração que já vem predefinida para este sistema, o P1 são as definições para o jogador 1 e assim por diante. Selecione a configuração para Up (cima) e pressione Enter no teclado e pressione cima no seu controle, manche ou joystick e faça o mesmo para as outras definições.
A sequência dos botões de soco para este sistema estão organizados como:
Jab Punch (soco fraco)
Strong Punch (soco médio)
Fierce Punch (soco forte)
Para o chute nós temos:
Short Kick (chute fraco)
Forward Kick (chute médio)
Roundhouse Kick (chute forte)
No final, o nome para cada tipo de controle pode ficar um pouco diferente, isso pode variar muito dependendo do modelo e do adaptador usado. No exemplo da foto abaixo e usando um adaptador USB para Playstation 2 nós fizemos a seguinte configuração, quadrado (soco fraco), L1 (soco médio), triângulo (soco forte), R1 (chute fraco), xis (chute médio), círculo (chute forte).
Isso nos deixa com a seguinte configuração:
A escrita mais apagada do lado direito do comando indica que a
configuração está customizada ou usando uma configuração diferente da
configuração predefinida. Pressione a tecla ESQ até encerrar a
emulação ou simplesmente feche a janela. Ao encerrar a emulação o MAME
cria uma configuração com o nome desta ROM sf2.cfg
na pasta cfg
:
<?xml version="1.0"?>
<!-- This file is autogenerated; comments and unknown tags will be stripped -->
<mameconfig version="10">
<system name="sf2">
<input>
<port tag=":IN1" type="P1_JOYSTICK_RIGHT" mask="1" defvalue="1">
<newseq type="standard">
JOYCODE_1_XAXIS_RIGHT_SWITCH
</newseq>
</port>
<port tag=":IN1" type="P1_JOYSTICK_LEFT" mask="2" defvalue="2">
<newseq type="standard">
JOYCODE_1_XAXIS_LEFT_SWITCH
</newseq>
</port>
<port tag=":IN1" type="P1_JOYSTICK_DOWN" mask="4" defvalue="4">
<newseq type="standard">
JOYCODE_1_YAXIS_DOWN_SWITCH
</newseq>
</port>
<port tag=":IN1" type="P1_JOYSTICK_UP" mask="8" defvalue="8">
<newseq type="standard">
JOYCODE_1_YAXIS_UP_SWITCH
</newseq>
</port>
<port tag=":IN1" type="P1_BUTTON1" mask="16" defvalue="16">
<newseq type="standard">
JOYCODE_1_BUTTON4
</newseq>
</port>
<port tag=":IN1" type="P1_BUTTON2" mask="32" defvalue="32">
<newseq type="standard">
JOYCODE_1_BUTTON7
</newseq>
</port>
<port tag=":IN1" type="P1_BUTTON3" mask="64" defvalue="64">
<newseq type="standard">
JOYCODE_1_BUTTON1
</newseq>
</port>
<port tag=":IN2" type="P1_BUTTON4" mask="1" defvalue="1">
<newseq type="standard">
JOYCODE_1_BUTTON8
</newseq>
</port>
<port tag=":IN2" type="P1_BUTTON5" mask="2" defvalue="2">
<newseq type="standard">
JOYCODE_1_BUTTON3
</newseq>
</port>
<port tag=":IN2" type="P1_BUTTON6" mask="4" defvalue="4">
<newseq type="standard">
JOYCODE_1_BUTTON2
</newseq>
</port>
</input>
</system>
</mameconfig>
O MAME sempre vai procurar pela configuração sf2.cfg
sempre que a
ROM sf2
for carregada.
Porém, existem diferentes versões deste sistema em diferentes drivers como o CPS-1, CPS-2, CPS-3 e várias outras que usam um esquema semelhante de botões. Para evitar o trabalho de se criar uma configuração destas para cada sistema individualmente, é possível aplicar esta exata configuração por sistema, ou seja, todas os sistemas do driver CPS-1 por exemplo, podem usar uma só configuração.
Para isso, copie o arquivo sf2.cfg
da pasta cfg
para a pasta
ctrlr
, esta pasta fica junto com o executável do MAME, caso o seu
MAME venha de uma distribuição Linux ou macOS em particular com algum
tipo de instalação, faça o comando:
mame -showconfig|grep ctrlrpath
ctrlrpath /usr/share/ctrlr;etc
Depois de copiar o arquivo sf2.cfg
para esta pasta, o renomeie para
algo como street.cfg
(pode ser o nome que quiser). Abra o arquivo
street.cfg
(ou o nome do arquivo que usou) num editor de texto e
troque o sf2 da linha <system name="sf2">
para default ou
<system name="defaut">
e salve o arquivo.
Para aplicar a configuração para TODOS os sistemas do driver CPS-1,
crie uma pasta chamada sources
dentro da pasta ini
,
dentro da pasta sources
crie um arquivo chamado cps1.ini
, abra-o
no editor de texto e adicione a opção:
ctrlr street
Note que street
se refere ao street.cfg
que criamos
sem o .cfg. Apague o seu arquivo sf2.cfg
da pasta cfg
e
inicie novamente o sistema, pressione Tab e selecione
Configurações da entrada ->
Atribuições da entrada (este sistema), repare que o MAME
carregou as configurações do seu controle. Encerre a emulação novamente,
tente outro sistema como a sf2ce
, repare que este sistema também
vai estar usando as configurações que você definiu para o seu controle,
o mesmo vai acontecer para todos os outros sistemas deste driver.
Neste driver também há sistemas de tiro, pancadaria, dentre outros.
Nestes casos é preciso criar uma configuração por sistema. Por exemplo,
o "Carrier Air Wing (cawing)" possuí 3 botões, é possível usar
o mesmo tipo de configuração já ensinado anteriormente com Tab ->
Configurações da entrada ->
Atribuições da entrada (este sistema) em cada sistema ou
pegar a configuração que for criada, neste caso seria
cfg\cawing.cfg
, alterar o system name para default como
também já foi explicado anteriormente, porém agora, salve este arquivo
como 3-botoes.cfg
dentro da pasta ctrlr
.
Vá até a pasta ini
e crie um ini com o nome da ROM ou
cawing.ini
, abra o arquivo num editor, adicione a opção e salve:
ctrlr 3-botões
Assim os outros sistemas usam a configuração street
para jogos com
6 botões enquanto a cawing
usa a configuração com 3 botões. O mesmo
princípio pode ser utilizado com sistemas que usam 2 botões e assim por
diante.
Outras configurações também podem ser feitas, neste caso, consulte o capítulo Truques para tornar a vida mais fácil.