Mostrando postagens com marcador HyperHQ. Mostrar todas as postagens
Mostrando postagens com marcador HyperHQ. Mostrar todas as postagens

quinta-feira, 27 de março de 2014

Emulador Demul no Hyperspin

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
      |      |
      |      - 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
      |       * 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


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:

  1. Acessar o sistema/menu criado anteriormente, o "Sammy Atomiswave";
  2. Acessar a aba "Emulators";
  3. Informar a pasta dos jogos (roms) no campo "Rom Paths";
  4. Adicionar um emulador (ver a próxima figura);
  5. 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
O módulo "Demul (v.0.5.7).ahk" também serve para o emulador na versão 0.5.8.2.

Após tudo configurado, a tela ficará assim:

Após configuração
Fechar o HyperLaunchHQ.

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:

  1. Abrir o arquivo padDemul.ini e identificar a seção [JAMMA0_0];
  2. Abrir o arquivo Demul (v0.5.7).ini e identificar a seção [standard_JAMMA0_0];
  3. Copias as propriedades da seção [JAMMA0_0] para a seção [standard_JAMMA0_0];
  4. 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.