Emulador Demul no Hyperspin
A ideia desta postagem é demonstrar as minúcias que se escondem na integração entre o emulador Demul e o Hyperspin.
Requisitos:
- Ter o Hyperspin, o Hyperlaunch, o HyperHQ e o HyperlaunchHQ previamente instalados;
- Possuir o emulador Demul, podendo ser a versão 0582 ou 057, previamente configurado e funcionando.
Mapa de diretórios e arquivos úteis:
A estrutura de diretórios e arquivos utilizada nesta publicação possui a seguinte disposição:
- HyperSpin (na raiz de alguma unidade)
|
- Databases
| |
| - Sammy Atomiswave (diretório criado no passo 02)
| * Sammy Atomiswave.xml (arquivo criado no passo 06)
|
- Emulators
| |
| - demul
| |
| - demul0582 (diretório do emulador)
|
- HyperLaunch
|
- Databases
| |
| - Sammy Atomiswave (diretório criado no passo 02)
| * Sammy Atomiswave.xml (arquivo criado no passo 06)
|
- Emulators
| |
| - demul
| |
| - demul0582 (diretório do emulador)
|
- HyperLaunch
| |
| - Modules
| |
| - Demul
| * Demul (v0.5.7).ahk (módulo)
| * Demul (v0.5.7).ini (configuração do módulo)
|
+ HyperSync Cloud
|
+ HyperTheme
|
+ Media
|
- Roms
| |
| - Sega Dreamcast
+ HyperSync Cloud
|
+ HyperTheme
|
+ Media
|
- Roms
| |
| - Sega Dreamcast
| * dc.zip (bios dreamcast)
| * Capcom vs. SNK - Millennium Fight 2000.cdi (iso dreamcast)
| - Sega Naomi
| * naomi.zip (bios naomi)
| * pstone.zip (rom power stone)
| - Sammy Atomiswave
| * awbios.zip (bios atomiswave)
| * mslug6.zip (rom metal slug 6)
|
+ Settings
|
+ Settings
Passo 01:
Testar o emulador via linha de comando para os sistemas desejados: Dreamcast, Naomi e Atomiswave. Esse teste visa fazer uma pré-conferência do Demul, facilitando a integração com o Hyperspin.
Ademais, é mister testar a função tela-cheia (fullscreen), pois essa costuma a ser a parte indisposta da configuração, por depender do funcionamento perfeito entre o plugin de vídeo do Demul, o gpuDX11 por exemplo, e a instalação do Direct X, bem como o suporte da placa de vídeo às funções de ambos.
Imagem de exemplo, foram testados o Capcom vs. SNK para Dreamcast, o Power Stone para a Naomi e o Metal Slug 6 para a Atomiswave:
Teste do emulador em linha de comando |
Passo 02:
Criar o "sistema" no Hyperspin via HyperHQ.
A instalação limpa do Hyperspin não possui os sistemas Sega Naomi e Sammy Atomiswave criados por padrão. Por isso, faz-se necessário a criação do sistema adicional via o wizard do HyperHQ.
Seguir como sugere as imagens:
Acessar o HyperHQ, acionar a aba "Main Menu Wizard" e clicar em "Add new item to the Main Menu":
Wizard do HyperHQ |
Informar o nome do sistema/menu a ser criado, no caso foi informado "Sammy Atomiswave", e acionar a opção "next":
Informar o nome do sistema/menu |
Configurar o sistema/menu para suportar um "sub-menu" (uma lista) de jogos, acionar a opção "Yes":
Opção para sub-menu (lista de jogos) |
Configurar a ordem de aparição do sub-menu criado, podendo ser configurado antes (before) ou depois (after) do elemento selecionado. Acionar a opção desejada entre "before" e "after":
Configurando a ordem do menu |
Confirmar a opção configurada anteriormente acionando a opção "OK":
Confirmação |
Aviso que o menu principal foi atualizado com a opção configurada anteriormente, que os arquivos de configuração, diretórios de mídia, e artes padrões foram criados. É neste momento que o diretório "..\Hyperspin\Database\Sammy Atomiswave" é criado.
Aviso de sucesso |
Neste momento é exibido um aviso de que é necessário a criação de uma lista de jogos (sub menu database), e que o menu recém criado não estará operante enquanto essa lista não estiver disponível. Isso será resolvido no Passo 06. Pode fechar o HyperHQ.
Aviso da necessidade de uma lista de jogos (sub menu database) |
Passo 03:
Configurar o emulador Demul no HyperLaunch via HyperLaunchHQ.
A figura abaixo demonstra as seguintes tarefas numeradas:
- Acessar o sistema/menu criado anteriormente, o "Sammy Atomiswave";
- Acessar a aba "Emulators";
- Informar a pasta dos jogos (roms) no campo "Rom Paths";
- Adicionar um emulador (ver a próxima figura);
- Definir um emulador padrão para o HyperLaunch em "Default Emulador". (NÃO ESQUECER)
Configuração do emulador e pasta de roms |
Na adição do emulador, informar um nome qualquer para identificação no campo "Name", informar o caminho do executável do emulador no campo "Path", configurar a extenção da rom no campo "Rom Extensions", e selecionar um módulo (arquivo *.ahk) para o emulador.
Configuração do módulo para o emulador |
Após tudo configurado, a tela ficará assim:
Após configuração |
Passo 04:
Configurações minuciosas do arquivo de inicialização do módulo.
No arquivo "Demul v0.5.7.ini" (ver caminho no mapa de diretórios), as propriedades que merecem uma atenção especial são:
- GlobalMax: responsável pelo controle do fullscreen. O Demul não possui configuração direta de linha de comando para tela-cheia, apenas o conjunto de teclas "alt+enter" para alternar entre janela e tela-cheia. Essa opção trabalha com três possíveis valores:
- false: o emulador será executado em modo janela;
- true: o emulador será executado em um pseudo-fullscreen, ou seja, o módulo irá calcular as dimensões da tela e irá expandir a janela até os limites, equivalente a um "maximizar";
- fullscreen: o emulador será executado em fullscreen nativo, logo, o módulo irá "forçar" o comando "alt+enter" para o emulador ser executado em tela-cheia de forma nativa.
- GlobalPlugin: responsável por informar ao módulo qual o plugin de vídeo que será utilizado na execução. Logo, não importa o plugin configurado pela janela de configuração do Demul, o HyperLaunch irá consideirar o plugin que for configurado nesta propriedade. Nesta versão de módulo, os valores suportados são: gpuDX11, gpuDXv3 e gpuDXLegacy.
O que muda de uma versão de emulador e módulo são justamente os plugins de vídeo suportados, pois para cada plugin desses é necessário uma configuração e um tratamento particular. O plugin gpuDX11 está presente nas versões 0.5.7 e 0.5.8.2 do Demul e o módulo na versão 0.5.7 suporta esse plugin, por esse motivo que a versão do emulador é irrelevante, porque a importância em questão é qual o plugin que o módulo suporta.
Fazer um backup antes de efetuar alterações !!!
A tela abaixo demonstra o local das propriedades citadas:
Propriedades GlobalMax e GlobalPlugin |
Ainda no arquivo, há algumas instruções, sobre as propriedades e os valores suportados, do lado superior esquerdo, conforme abaixo:
Instruções de propriedades e valores |
Passo 05:
Testar a execução do Demul pelo HyperLaunch.
Selecionar o sistema/menu criado em "System Name", selecionar a rom/jogo, e acionar a opção "Test":
Execução pelo HyperLaunch |
Voalà ! Emulador e jogo executado com sucesso pelo HyperLaunch:
Emulador e Jogo executado pelo HyperLaunch |
Observação: É neste ponto que a harmonia entre o plugin de vídeo do Demul, o Direct X e a placa de vídeo é colocada a prova. Na máquina que utilizei, o jogo executou, porém a tela-cheia não funcionou. Em seguida mudei o valor da propriedade GlobalMax para true, pensando em "forçar" o fullscreen maximizado, mas não deu certo. Fica registrado a frustração ! São nessas horas que sinto saudades do OpenGL !
Passo 06:
Criar a lista de jogos para o sistema.
De uma maneira rápida e sem preciosismo, a utilização do aplicativo HyperROM2XML 1.5 é uma forma ágil para não despreender muito tempo com a criação do XML de database para o Hyperspin.
Link para o HyperROM2XML: http://www.hyperspin-fe.com/forum/showthread.php?6734-HyperROM2XML-EX-Plus-Alpha
Esse aplicativo irá listar a pasta de roms e gerar a lista de jogos (XML sub wheel database) para o Hyperspin.
Com o aplicativo aberto, informar o diretório de roms na propriedade "Rom Directory", e informar o caminho no qual o lista de jogos será gerada. Atenção ao caminho de diretórios e o nome exato do arquivo (ver no mapa de diretórios). Acionar a opção "Go":
Gerar o XML a partir das ROMs com o HyperROM2XML |
Apenas de curiosidade, acessar o arquivo gerado. O aplicativo considera tudo o que há no diretório, por isso que a bios "awbios" também está presente no arquivo. Convém apagá-la do XML !
Arquivo gerado pelo HyperROM2XML |
Passo 07:
Executar o sistema e o jogo pelo Hyperspin.
Menu do sistema criado no Passo 02, o "Sammy Atomiswave":
Menu Sammy Atomiswave |
Lista de jogos (sub wheel database) criado pelo HyperROM2XML no Passo 06:
XML database |
Executar o jogo... como já foi testado pelo HyperLaunch, no Passo 05, será executado com sucesso. Caso ocorra algum problema, verificar os caminhos dos diretórios e nome dos arquivos no Passo 06.
Conclusão:
A complicação do Demul no Hyperspin acontece por conta do arquivo de propriedades do módulo, no qual a grande dos outros emuladores não precisam disso, e da instabilidade do trio: plugin de vídeo, Direct X, e placa de vídeo (de micros antigos).Sinceramente, não me agradou.
No ano passado, usei o concorrente NullDC apenas para Dreamcast, e a configuração desse no Hyperspin se mostrou mais fácil que o Demul. Em breve testarei o NullDC com mais detalhe, atentado-me para a função de tela-cheia e o suporte a Naomi e Atomiswave.
Informações suplementares:
Esconder o ponteiro do mouse
Esta configuração pode ser feita pelo HyperLaunchHQ, escolhendo o sistema (exemplo, Sammy Atomiswave), acessar a aba "Settings", em seguida, acessar a sub-aba "Main Settings", identificar o grupo "Desktop" e a opção "Hide Cursor".
HyperLaunchHQ: Configuração para esconder o cursor do mouse |
Normalizar a configuração dos controles para Naomi e Atomiswave
Pode ocorrer da configuração de controles quando o Demul é executado pelo HyperLaunch ser diferente de quando o Demul é executado sózinho.
O Demul, executado sózinho, grava as informações dos controles no arquivo padDemul.ini que fica no diretório padrão do emulador, no mesmo local do arquivo demul.exe.
Para complicar, a configuração dos controles quando o Demul é executado pelo HyperLaunch fica no arquivo de configuração do módulo do emulador, que neste caso é o Demul (v0.5.7).ini (ver o local exato no mapa de diretórios).
Entendido a questão, é necessário copiar as configurações (feitas previamente) do arquivo padDemul.ini para o arquivo Demul (v0.5.7).ini.
Passos:
- Abrir o arquivo padDemul.ini e identificar a seção [JAMMA0_0];
- Abrir o arquivo Demul (v0.5.7).ini e identificar a seção [standard_JAMMA0_0];
- Copias as propriedades da seção [JAMMA0_0] para a seção [standard_JAMMA0_0];
- Para o segundo jogador, fazer a mesma coisa com as seções [JAMMA0_1] e [standard_JAMMA0_1];
Configuração de controle para o Demul no HyperLaunch |
O arquivo Demul (v0.5.7).ini possui algumas configurações "por jogo", por esse motivo que existem as seções [sfstyle_JAMMA0_0], [ggxstyle_...], [driving_...], entre outras; associadas aos respectivos jogos, como a seção [crzytaxi] e os parâmetros "Controls = driving" e "Plugin = gpuDXv3". Caso algum jogo não obedeça a configuração padrão, as seções por jogo devem ser conferidas, alteradas, e, eventualmente, apagadas.