sexta-feira, 21 de julho de 2017

Emulador Zinc no Hyperspin/Rocketlauncher


O Zinc é um emulador descontinuado e ultrapassado, pelo MAME. Entretanto, em computadores modestos o Zinc possui um desempenho melhor que o MAME.

Essa postagem foi meu aprendizado em uma tentativa de configurá-lo no Rocketlauncher. Além ser um pedido de um colega Gamer em algum comentário.

Baseei-me na versão em linha de comando do Zinc, pois o frontend dele, o Aldo's ZiNc Front-End v2.2, não executou no meu computador por causa da dependência de uma DLL antiga.

O site que utilizei para o download foi este: http://www.emulator-zone.com/doc.php/arcade/zinc.html




Após fazer o download do emulador, descompactei-o no diretório de emuladores que utilizo na minha instalação do Rocketlancher. Apenas para exemplo, o diretório é este: D:\Hyperspin\Emulators\Zinc\zinc11-win32\. Além disso, o renderer, OpenGL and D3D renderers 1.2 , foi feito o download e a descompactação dentro do diretório do emulador.


Para configurar o renderer, foi necessário copiar o arquivo ..\d3d-ogl12\winogl\renderer.znc para o diretório raíz do emulador.


Abrindo um prompt de comando no diretório do emulador e digitando zinc, o emulador exibe suas opções. Digitando zinc --list-games, o emulador exibe a lista de jogos que ele executa. O interessante é que ele se refere aos jogos por um identificador numérico. Por exemplo, o 17 é o Rival Schools.


Em seguida é necessário configurar o diretório de roms que deve conter, além dos jogos, as bios do emulador. Eu utilizo o diretório de roms separado, segundo a estrutura do Rocketlauncher, por exemplo, este: D:\Hyperspin\Roms\Zinc\. Além disso, esse diretório deve conter as bios, que podem ser baixadas neste site: http://www.planetemu.net/roms/zinc.



Após configurar o diretório de roms com as bios e incluir os jogos, é necessário testar o emulador. Na linha de comando, eu utilizei o comando: zinc 19 --roms-directory=D:\Hyperspin\Roms\Zinc
O 19 é referente ao jogo Strider 2, a rom strider2.zip.





Considerando que o leitor já possua afinidade com o Hyperspin/RocketLauncher, que já tenha configurado outros emuladores antes de tentar o Zinc, não entrarei nestes detalhes: inclusão do Zinc na lista de sistemas do Hyperspin/RocketLauncher e configuração do database de roms.

Agora começa o desafio!

Para conhecer como o Zinc funciona no Rockerlauncher, o arquivo de módulo dele foi aberto:
  1. Selecionar o sistema Zinc;
  2. Selecionar a aba Modules;
  3. Selecionar o módulo do Zinc;
  4. Selecionar a opção Open Module Folder in Windows Explorer;
  5. Abrir o módulo Zinc.ahk com o Bloco de Notas.



Ao abrir o módulo no Bloco de Notas, alguns achados foram bem interessantes, sendo:
  1. O endereço "oficial" do emulador, no qual o módulo em questão foi construído (foi o local que fiz o download do emulador):  http://www.emulator-zone.com/doc.php/arcade/zinc.html
  2. A citação que o módulo foi construído com base no front end do Aldo's ZiNc Front-End v2.2,  sinalizando uma dependência. No meu caso, ele não executou por causa de uma DLL que no meu Windows 10 inexiste;
  3. O endereço do database para a lista de jogos no Hyperspin/Rocketlauncher (usei esse XML): https://pastebin.com/xSWdwTaq
  4. Em um ponto mais abaixo no arquivo do módulo, a dependência de um arquivo chamado zinc.cfg. Até então não é sabido de onde ele vem e qual sua serventia. Por enquanto ele é ignorado.


Continuando com as configurações, neste ponto o emulador Zinc foi configurado para o sistema Zinc no RocketLauncher:
  1. Escolher o "sistema" GLOBAL;
  2. Acionar a aba Emulators;
  3. Selecionar o Zinc, dando dois-cliques;
  4. Configurar o arquivo executável do emulador.


Após isso,o diretório de roms e o emulador padrão foram configurados:
  1. Selecionar o sistema Zinc;
  2. Selecionar a aba Emulators;
  3. Configurar o diretório de roms;
  4. Configurar o emulador padrão;
  5. Foi escolhido o Zinc [Global], pois no passo anterior o emulador foi configurado como GLOBAL.


Feito as configurações, é chegada a hora do teste, pelo RocketLauncher:
  1. Selecionar o sistema Zinc;
  2. Selecionar a aba Games;
  3. Selecionar o jogo, que no caso foi o Strider 2;
  4. Acionar ícone do foguete, Launch selected game throught RocketLauncher, para executá-lo.



Eis que ao executar o jogo, aparece a mensagem de erro cobrando a dependência do arquivo zinc.cfg:

Após um período de buscas sobre o arquivo em questão, alguns pontos e deduções foram descobertos:
  1. O arquivo em questão, zinc.cfg, é criado quando o front end, Aldo's ZiNc Front-End v2.2, é executado;
  2. No meu caso, como o front end não executou, por causa de uma DLL que inexiste no meu Windows 10, o arquivo zinc.cfg também inexiste;
  3. O arquivo zinc.cfg é um arquivo texto. Isso quer dizer que ele pode ser criado pelo Bloco de Notas. 
Com esse conhecimento, o basta criar o arquivo de texto vazio com o nome zinc.cfg







Após isso, o emulador foi executado:


No entanto, ficou com a resolução 640x480.

Ao abrir o arquivo renderer.cfg no Bloco de Notas, as propriedades de resolução foram alteradas para 1024x768:

O teste com a resolução 1024x768 funcionou:



O Zinc cumpre com o esperado, é um emulador leve e com um excelente desempenho. Quanto a sua configuração no Rockerlauncher, a dependência do arquivo zinc.cfg, burlada com a criação do arquivo vazio, e do front end Aldo... não faz muito sentido. Suponho que, no caso da existência prévia do arquivo criado pelo front end, a questão da resolução/fullscream poderia ter sido resolvida. Entretanto, o módulo do Zinc no Rocketlauncher poderia ser criado sem essa dependência e com opções no próprio módulo para manipular as resoluções, descartando essas dependências.

Dado o conhecimento adquirido, a opção de usar o Zinc é uma questão pessoal.