Configurações específicas para as versões SDL¶
Nesta seção descreveremos as opções de configuração voltadas
especificamente para qualquer versão MAME que for compatível com o SDL
(incluindo o Windows caso o MAME tenha sido compilado com o SDL ao invés
da sua forma nativa). Inicie o MAME com o comando mame -v
para ver
quais são os drivers que estão disponíveis para o seu sistema, abaixo um
exemplo no Linux.
Available videodrivers: x11 wayland KMSDRM dummy
Current Videodriver: x11
Display #0
Renderdrivers:
opengl (0x0)
opengles2 (0x0)
software (0x0)
Available audio drivers:
pulseaudio
alsa
dsp
jack
disk
dummy
...
Leave sdlwindow_init
Enter sdl_info::create
window: using renderer opengl
renderer: flag SDL_RENDERER_ACCELERATED
Leave renderer_sdl2::create
Audio: Start initialization
Audio: Driver is pulseaudio
Audio: frequency: 48000, channels: 2, samples: 256
Aqui temos o exemplo para o Windows das versões do MAME que forem
compiladas com o SDL usando a opção OSD=sdl
, para mais informações
veja Microsoft Windows.
Available videodrivers: windows dummy
Current Videodriver: windows
Display #0
Renderdrivers:
direct3d (0x0)
direct3d11 (0x0)
opengl (0x0)
opengles2 (0x0)
software (0x0)
Available audio drivers:
wasapi
directsound
winmm
disk
dummy
...
Leave sdlwindow_init
Enter sdl_info::create
window: using renderer direct3d11
renderer: flag SDL_RENDERER_ACCELERATED
Leave renderer_sdl2::create
DirectSound: Primary buffer: 48000 Hz, 16 bits, 2 channels
Aqui temos as opções disponíveis para a customização em todas as versões SDL:
Hints:
SDL_FRAMEBUFFER_ACCELERATION (NULL)
SDL_RENDER_DRIVER (NULL)
SDL_RENDER_OPENGL_SHADERS (NULL)
SDL_RENDER_SCALE_QUALITY (NULL)
SDL_RENDER_VSYNC (NULL)
SDL_VIDEO_X11_XVIDMODE (NULL)
SDL_VIDEO_X11_XINERAMA (NULL)
SDL_VIDEO_X11_XRANDR (NULL)
SDL_GRAB_KEYBOARD (NULL)
SDL_VIDEO_MINIMIZE_ON_FOCUS_LOSS (NULL)
SDL_IOS_IDLE_TIMER_DISABLED (NULL)
SDL_IOS_ORIENTATIONS (NULL)
SDL_XINPUT_ENABLED (NULL)
SDL_GAMECONTROLLERCONFIG (NULL)
SDL_JOYSTICK_ALLOW_BACKGROUND_EVENTS (NULL)
SDL_ALLOW_TOPMOST (NULL)
SDL_TIMER_RESOLUTION (NULL)
SDL_RENDER_DIRECT3D_THREADSAFE (NULL)
SDL_VIDEO_ALLOW_SCREENSAVER (NULL)
SDL_ACCELEROMETER_AS_JOYSTICK (NULL)
SDL_MAC_CTRL_CLICK_EMULATE_RIGHT_CLICK (NULL)
SDL_VIDEO_WIN_D3DCOMPILER (NULL)
SDL_VIDEO_WINDOW_SHARE_PIXEL_FORMAT (NULL)
SDL_VIDEO_MAC_FULLSCREEN_SPACES (NULL)
SDL_MOUSE_RELATIVE_MODE_WARP (NULL)
SDL_RENDER_DIRECT3D11_DEBUG (NULL)
SDL_VIDEO_HIGHDPI_DISABLED (NULL)
SDL_WINRT_PRIVACY_POLICY_URL (NULL)
SDL_WINRT_PRIVACY_POLICY_LABEL (NULL)
SDL_WINRT_HANDLE_BACK_BUTTON (NULL)
Não há qualquer garantia que ao alterar qualquer uma destas opções traga alguma melhoria do desempenho, a sua sorte pode variar bastante dependendo do sistema operacional utilizado, da sua placa de vídeo e dos seus respectivos drivers.
No Linux e macOS você pode definir estes
parâmetros como variáveis de ambiente no seu ~/.bashrc
como por
exemplo:
export SDL_FRAMEBUFFER_ACCELERATION=opengl
export SDL_RENDER_DRIVER=opengl
export SDL_RENDER_OPENGL_SHADERS=1
Antes do executável do MAME:
SDL_FRAMEBUFFER_ACCELERATION=opengl SDL_RENDER_DRIVER=opengl SDL_RENDER_OPENGL_SHADERS=1 ./mame
Ou então exportando estas opções para o ambiente, elas serão lidas durante a inicialização do MAME:
export SDL_FRAMEBUFFER_ACCELERATION=1 SDL_RENDER_DRIVER=opengl SDL_RENDER_OPENGL_SHADERS=1
Já para as versões do Windows você pode definir estas opções como variáveis do ambiente no prompt de comando antes de iniciar o MAME com os comandos:
set SDL_FRAMEBUFFER_ACCELERATION=1
set SDL_RENDER_DRIVER=direct3d11
set SDL_RENDER_OPENGL_SHADERS=1
Criar um arquivo .BAT com estas opções predefinidas dentro do
diretório do MAME, exemplo de um run.bat
:
@echo off
set SDL_FRAMEBUFFER_ACCELERATION=1
set SDL_RENDER_DRIVER=direct3d11
set SDL_RENDER_OPENGL_SHADERS=1
mame.exe
Ou então deixar isso disponível como variável do sistema, pressione as
teclas WIN + R e execute o comando sysdm.cpl, siga
para --> Avançado --> Variáveis de Ambiente, na
parte de baixo da tela onde está escrito Variáveis do
sistema clique em Novo, na próxima janela que aparecer
adicione o Nome da variável que deseja definir, no campo
Valor defina o valor apropriado. O valor para
SDL_RENDER_DRIVER
seria direct3d11
e assim por diante, reinicie
o computador ou encerre a sessão que estiver usando para que as
alterações sejam aplicadas.
Novamente, não é garantia que ao definir estas opções você note alguma melhora no desempenho da emulação, tudo vai depender do hardware usado e seus respectivos drivers.
Para mais informações, consulte a página de variáveis do SDL.
Opções de desempenho¶
-[no]sdlvideofps
Ativa a saída de dados para benchmark no subsistema de vídeo SDL incluindo o driver de vídeo do seu sistema, o servidor X (caso seja aplicável) e stack Opengl em modo
-video opengl
.
Opções de vídeo¶
-[no]centerh
Centraliza o eixo horizontal da tela.
O valor predefinido é
Ligado
(-centerh).
-[no]centerv
Centraliza o eixo vertical da tela.
O valor predefinido é
Ligado
(-centerv).
Configuração para tela inteira¶
-useallheads
Partilha a tela inteira com diferentes monitores.
O valor predefinido é
none
(nenhum).
Configurações específicas quando o driver de vídeo for software¶
-scalemode < none
| hwblit
| hwbest
| yv12
| yv12x2
| yuy2
| yuy2x2
>
Modos de escala da família de espaços de cor, esta opção funciona apenas com -video soft.
O valor predefinido é
none
(nenhum).
Configurações para o mapeamento do teclado¶
-keymap
Permite que você ative o uso de um mapa de teclado personalizado.
O valor predefinido é
Desligado
(-nokeymap).
-keymap_file <arquivo>
Use em conjunto com -keymap, permite que você escolha um arquivo com um mapa de teclado customizado, atualmente o MAME já vem com um mapa de teclado para o teclado ABNT2 chamado km_br_LINUX.map no diretório keymaps. Um mapa é útil para que o mapeamento das teclas já predefinidas coincidam com o mapa de um teclado ABNT2 por exemplo, assim a tecla ~ (til) que fica acima da tecla Tab no teclado ANSI Americano pode ser remapeado para a tecla que fica do lado direito da tecla Ç (cê-cedilha) num teclado ABNT2.
O valor predefinido é
keymap.dat
.
Configurações de entrada SDL¶
-enable_touch
Ativa o suporte para entrada por toque. Quando esta opção for desativada, será usada a entrada do mouse simulada por dispositivos de toque.
O valor predefinido é
Desligado
(-noenable_touch).
-sixaxis
Use um tratamento especial para lidar com os controles SixAxis do PS3. Pode causar um comportamento indesejado com outros controladores. Apenas afeta quando usado com a opção -joystickprovider sdljoy.
O valor predefinido é
Desligado
(-nosixaxis).
-[no]dual_lightgun / -[no]dual
Controla se o MAME tenta ou não rastrear duas arma de luz para que apareçam como um único mouse. Para isso a opção -lightgun precisa estar ativada e a opção -lightgunprovider deve ser definida como
sdl
.Esta opção oferece suporte a configurações de duas armas que funcionam definindo o local do ponteiro do mouse no momento que um acionador da arma for ativado. Os acionadores primário e secundário da primeira arma correspondem ao primeiro e segundo botões do mouse, ja os acionadores primário e secundário do segundo revólver correspondem ao terceiro e quarto botões do mouse.
O valor predefinido é
Desligado
(-nodual_lightgun).
Mapeamento da pistola de luz SDL¶
-lightgun_index1 <nome>
-lightgun_index2 <nome>
...
-lightgun_index8 <nome>
Nome do dispositivo ou a ID de um determinado slot para a pistola de luz.
Opções para a configuração dos drivers¶
-videodriver < x11
| directfb
| ...
| auto
>
Define um driver de vídeo SDL a ser usado, a disponibilidade de alguns destes drivers depende do sistema operacional.
O valor predefinido é
auto
-renderdriver < opengl
| directfb
| ...
| auto
>
Define o driver de renderização SDL a ser usado, a disponibilidade de alguns destes drivers depende do sistema operacional.
O valor predefinido é
auto
-audiodriver < pulseaudio
| alsa
| arts
| ...
| auto
>
Define o driver de áudio SDL a ser usado, a disponibilidade de alguns destes drivers depende do sistema operacional.
O valor predefinido é
auto
-gl_lib <driver>
Define o libGL.so alternativo a ser usado.
O valor predefinido para o sistema é
auto