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.






quarta-feira, 19 de março de 2014

Configurando o Demul v0.582 - Emulador de Dreamcast, Naomi e Atomiswave

Configurando o Demul v0.582 - Emulador de Dreamcast, Naomi e Atomiswave


Requisitos: 


  • A instalação mais atual do Direct X;
  • A instalação mais atual do Visual C++ run time;
  • Paciência e persistência.


Passo 00:

Efetuar o download do demul no site oficial http://demul.emulation64.com. A versão usada neste artigo é a v0.582.

Passo 01: 

Descompactar o arquivo de download do emulador, e acessar a pasta do emulador. Primeiramente, deve existir apenas a pasta "plugins" e alguns arquivos, como demonstra a figura abaixo:


Pastas após descompactação

Passo 02:

Executar o emulador "demul.exe" pela primeira vez. Nesta ocasião aparecerá a mensagem "BIOS & Plugins not configured", e as pastas padrões serão criadas na pasta do emulador (nvram, memsaves, etc.). Acionar OK. A figura abaixo demonstra o passo 02:


Acionar OK


Pastas padrões criadas: nvram, snap, etc.



Passo 03:

A tela de configurações irá ser exibida, acionar a opção CANCEL. A figura abaixo demonstra o passo 03:

Acionar CANCEL, passo 03

Passo 04:

Criar a pasta "roms" dentro da pasta do emulador...

Criar a pasta "roms", passo 04

Passo 05:

De posse da bios do Dreamcast, o arquivo "dc_boot.bin" com o tamanho de 2.048kb, coloque-o na pasta "roms". Este arquivo deve ser garimpado na internet, assim como ISOs, e outras bios, como as da Atomiswave e Naomi.

Executar o demul, a mensagem do passo 02, referente a falta de configuração, irá aparecer novamente. Acionar o OK.

Em seguida, abrirá a tela de configuração, do passo 03. Desta vez, acionar OK.

Acionar o menu "File", e a opção "Run Dreamcast"...

menu File, opção Run Dreamcast...

Passo 06:

A mensagem "Unable to find <alguma coisa> in romset 'dc' " irá aparecer. Acionar OK e fechar o emulador.

Unable to find ... in romset 'dc', passo 06

Passo 07:

Ir na pasta "roms" e empacotar/compactar o arquivo da bios "dc_boot.bin" para "dc.zip". Neste passo foi utilizado o Winrar.

Empacotar a bios dc_boot.bin para dc.zip
Depois disso, apagar o arquivo dc_boot.bin...

Passo 08:

Executar o emulador, menu "Config", opção "Plugins, Maple & Path". Configurar os plugins:

  • Video plugin: gpuDX11;
  • Sound plugin: spuDemul;
  • GD-ROM plugin: gdrImage.

Além disso, conferir os caminhos como na figura abaixo:

Configuração de Plugins

Observação: Caso as opções de video e sound plugins não estejam disponíveis (como a figura do passo 03 demonstra), é necessário reinstalar os arquivos de pré-requisitos, que são: DirectX e o Visual C++ Redistributable Package (x86). Não importa se o sistema é x64, instalar o (x86). Reinicie o Windows.


Baixar e instalar o DirectX

Baixar e instalar o Visual C++ Redistributable Package (x86)



Passo 09:

Acessar menu "Config", Controls, Joy 1... e mapear o teclado...

Mapeando o teclado...

Aproveitar para mapear o teclado para o Arcade, utilizado por jogos da Naomi e Atomiswave.

Passo 10:

Colocar uma ISO de Dreamcast na pasta "roms"...

ISO de Dreamcast na pasta roms
Geralmente os formatos ISO (imagens) possuem as extensões iso, cdi, bin e cue. Neste caso, a ISO está com o formato cdi.

Acessar o menu "Config", opção GD-ROM, e informar a imagem do jogo do Dreamcast a ser carregado...

Jogo para carregamento...

Passo 11:


Acessar o menu "File", e a opção "Run Dreamcast"... o jogo irá executar...

Jogo do Dreamcast...


Passo 12:

Adicional para jogos da Naomi e Atomiswave...

Ter em mãos as bios compactadas na pasta "roms":

  • Atomiswave: awbios.zip;
  • Naomi: naomi.zip e naomi2.zip.


Bios da Naomi e Atomiswave

E os jogos... neste caso há o mslug6.zip (Metal Slug 6) para Atomiswave e o pstone.zip (Power Stone) para a Naomi.

Passo 13:

Acessar o menu "File", opção "Run Naomi"... será exibido uma tela para a escolha da rom.

Naomi: escolha da rom...

Foi escolhida a rom pstone:

Naomi bios...

Jogo Power Stone da Naomi...

Passo 14:

A Atomiswave é siminar a Naomi... acessar o menu "File", opção "Run Atomiswave"... Abrirá a tela para seleção de rom. E a rom selecionada foi a mslug6:

Bios da Atomiswave...

Jogo Metal Slug 6 da Atomiswave...


Conclusão:

O Demul é um emulador com pré-requisitos implícitos, pois depende do Direct X e do Visual C++ runtime. Isso não é problema, pois é comum um emulador de jogos 3D (poligonais) usar as facilidades do Direct X, entretanto, o problema é justamente isso não estar escrito em lugar algum, o que dificulta muito a configuração inicial.

Outra questão complicada é o faq oficial estar em russo ! Simplesmente inaceitável ! Cadê a globalização essas horas !?

Ademais, não pude testar o desempenho, pois a máquina que utilizei para este artigo é muito modesta e o desempenho pífil só serviu para tirar screenshots. É uma pena, pois fiquei com vontade de jogar Power Stone.

Informações suplementares (atualizado em 22.10.2014):


O camarada Shark Prodigy fez alguns testes em outros jogos no Demul com uma configuração entusiasta de PC, e os resultados podem ajudar a quem eventualmente venha a enfrentar os mesmos tipos de problemas:

"Muito obrigado pela ajuda na configuração do Demul, tinha o Emulador e a Bios, tenho quase todos os games de DreamCast em formato .gdi, pelo que testei aqui nem todos os jogos irão rodar redondo, mesmo que você tenha o melhor PC em requisitos, vou citar alguns jogos que testei.
Com Erros:
Sonic Adventure 2 = Os gráficos ficam piscante, não sendo possível jogar
Solução do problema: Caso isso aconteça, vá na pasta do emulador e apague o arquivo Demul.ini, essa é a única configuração que será apagada, os outros arquivos com a extensão *.ini, não é necessário apagar. Agora configure apenas a Bios, irá funcionar perfeitamente sem a tela ficar piscando.
Sega Rally 2 = O áudio fica acelerado, jogável.
Em Perfeito estado:
Fighting Force 2 = Rodou como se fosse no console DreamCast.Dead or Alive 2 = Rodou como se fosse no console DreamCast.
Não testei outros ainda por falta de tempo, e o Save State e Load State funcionou perfeitamente nos games, deve vez em quando se você forçar o Load "ficar apertando o F6 direto" acaba dando erro no emulador, fora isso não detectei mais erros.
Configuração do PC para Teste
Motherboard Asus Z97-Deluxe  Processador Intel 4770k - Foi usado 7% do processador (total 2,6ghz oscilando até 2,94ghz)Memória Corsair Vengeance 32gb - Foi usado 6% da memória (total 1,8ghz)SSD Sandisk Extreme Pro 480gb1x GTX 770 OC 4gb Gigabyte - ( Usei a placa de video em Single Channel, não em SLi )1x GTX 770 OC 4gb EVGA"