terça-feira, 12 de dezembro de 2023

A História dos Emuladores de Nintendo 64 - Parte 4

Mupen64 / Mupen64Plus (2001)


Mupen64 é o último grande projeto da era de ouro da emulação de N64 a ser criado. O projeto começa no ano de 2001, e tem seu primeiro lançamento em Dezembro do mesmo ano para Windows. O emulador foi criado pelo francês Hacktarux, que aprendia como a emulação funcionava ao mesmo tempo que criava o projeto. Isso fez o emulador ser reescrito algumas vezes. Mupen64 foi lançado inicialmente para Linux e Windows. A primeira versão para Windows não tinha GUI, mas ao abrir o emulador era aberta uma janela para selecionar a rom. Eram aceitas roms tanto compactadas (em formato .GZ) como não compactadas. Nessa fase rodava apenas demos e partes de jogos em 2D e somente nos formatos .ROM e .Z64. A partir de seu lançamento também ganha um port para BeOS. Na segunda versão lançada em Janeiro de 2002, começa a rodar seu primeiro jogo, Super Mario 64. Nela também é retirado o suporte à som, pois ainda era irritamente ruim. Essa versão ganha um port para o sistema QNX por Muad. O emulador traz facilidade de port para outros sistemas já que foi projetado nessa intenção. Em Abril de 2002, libera seu código fonte e posta no site de emulação, Emutalk. Na terceira versão de Maio de 2002, é adicionada uma GUI simples (para Windows, Linux e QNX) feita com base na biblioteca GTK, aonde você seleciona roms, tipo de carregamento da CPU do console e plug-in de vídeo Zilmar Spec.


Também é feito melhorias graças ao código fonte do Project64 e adiciona o plug-in de vídeo também do Project64. Na quarta versão de Julho de 2002, é feito um novo núcleo no emulador que melhora sua compatibilidade e é adicionado um plug-in de controle por teclado. Nela mais jogos começam a ser rodados, como Duke Nukem 64, Wave Race 64 e outros. Também é criado por Hacktarux o plug-in de vídeo Mupen64 GFX, descontinuado na versão seguinte. Por volta dessa ou da terceira versão começam a executar jogos no formato .V64. Os últimos ports pra BeOS e QNX surgem também em Julho. Na versão seguinte, a 0.0.90 de Outubro de 2002, o emulador recebe uma grande atualização, com 84 jogos rodando totalmente, jogos no formato .N64 também começam a ser abertos pelo emulador, pacote de memórias EEPROM e SRAM adicionados graças à Jabo e Zilmar do PR64, suporte à roms em formato .ZIP, nova GUI (apenas para a versão Windows) feita por ShadowPrince, uma barra de ferramentas feita com ajuda de Schibo do projeto 1964, possibilidade de salvar as configurações alteradas, suporte à quatro idiomas, vários núcleos do emulador foram reescritos, entre outros.


Nessa versão também começam a usar o plug-in de vídeo OpenGL do projeto TrueReality64 e também o plug-in de joypad N-Rage, usado no PJ64. Sobre idiomas, começa nessa versão a adicioná-los, até chegar em Agosto de 2005 a 12 no total, sendo eles português, português brasileiro, francês, polonês, espanhol, espanhol argentino, alemão, inglês, sueco, holandês, búlgaro e russo. Para rodar os jogos, era exigido pelo menos um processador de 600Mhz de velocidade, 64MB de RAM e placa gráfica com suporte à OpenGL, Glide ou Direct3D. Essa versão também ganha um port para MacOS X, por `Flea. Na versão 0.1 de Fevereiro de 2003 o emulador volta à ter suporte à som através do plug-in de Azimer do PR64, é adicionado o plug-in de vídeo do TR64 Direct3D e adicionado suporte à save state. Nessa versão também começa a trazer o arquivo INI aonde eram incluído os jogos, como também uma nova GUI para a versão Linux semelhante à de Windows, feita por Blight. Blight também fica responsável por criar alguns plug-ins para as versões Linux do emulador. A versão 0.2 de de Julho de 2003 traz muitas atualizações.


Melhora na integração dos plug-ins de áudio, adição de plug-in de áudio próprio com base no plug-in do projeto UltraHLE (ou seja, um plug-in HLE), adição de plug-in RSP HLE da GPU do console e atualização dos plug-ins de joypad e OpenGL. Além disso também à suporte à vários slots para save states, adição de snapshot, pause e reset, além de melhoras na velocidade do emulador. A versão 0.3 de Setembro de 2003 começa a usar o plug-in de vídeo glN64 ao em vez dos plug-ins do TR64, e da suporte à 8 línguas, entre elas o português, além de melhorias na execução do emulador e em jogos. Na versão 0.4 de Julho de 2004, retiram o plug-in de áudio do Azimer, deixando apenas seu plug-in próprio e criam um plug-in de RSP com parceria com Azimer. Também refazem quase que totalmente o núcleo do emulador, deixando-o mais rápido, maior compatibilidade ao emulador, gravação de vídeo em formato próprio que depois pode ser convertida para AVI, GUI do Windows redesenhada por Linker, entre outros. Em Outubro de 2004 essa versão ganha um port único para o sistema FreeBSD por tlp. Posteriormente também ganha um port para o sistema AROS.


A última versão do emulador, a 0.5, é lançada em Agosto de 2005. Nela retorna o plug-in de áudio de Azimer, agora em versão HLE. Direct64 e Glide64 são os novos plug-ins de vídeo do emulador. Todos os plug-ins foram modificados para GTK2, que é a atualização do kit multimídia do com o qual a GUI foi criada. Entre diversas outras adições, como framebuffer e correções e adições no dynarec. Os lançamentos Linux e MacOS X também terminam com o último lançamento para Windows do projeto. Nessa última fase do projeto, os membros que mais ajudavam Hacktarux eram Olivieryuyu e Gonetz. Sobre sua front-end, em Julho de 2002, ganha uma versão simples apenas para opções de vídeo, input, CPU e carregamento de rom (antes tinha apenas uma janela do Windows para escolha de rom). Em Outubro de 2002, ganha uma front-end de fato, com botões de play, pause, stop e opções. Em Julho de 2004, tem uma leve mudança nos botões e na lista de roms de sua front. Também muda o ícone no alto de sua front algumas vezes, como em Janeiro de 2003, e Julho de 2003 e 2004, e o ícone no executável em Outubro de 2002, Julho de 2003 e 2004 e Agosto de 2005. Seu logo de atualização de versão (about) também muda algumas vezes, como em Julho de 2004 e Agosto de 2005.


Em Outubro de 2007, Mupen64 foi bifurcado por Richard Goedeken, o richard42, com o nome de Mupen64 AMD64. Na ocasião, foi usado o último lançamento do emulador original como base. Seu intuito era recompilar o emulador para os 64bits e corrigir bugs. Junto com o Mupen64, também comanda o port do plug-in de vídeo Rice Video portado para Linux em Setembro de 2003 por Hacktarux. Seu primeiro lançamento acontece em Novembro de 2007 para Linux. Nele melhora o plug-in de vídeo, corrige bugs e melhora o processador central, além de limpezas no código fonte. O emulador também vinha sem o padrão Zilmar Spec, deixando de usar muitos plug-ins populares que eram desenvolvidos para o Project64, o único que na ocasião ainda usava o padrão em questão. Em Março de 2008, muda seu nome para Mupen64Plus. Em Maio de 2008, é lançada a versão para Windows, em cima da versão de Março. Em Junho de 2008, ganha suporte à gameshark. Em Janeiro de 2009 é portado para MacOS X.


Em Dezembro de 2009 remove o código de interface dos plug-ins, tornando-os mais simples e portáteis e simplifica o núcleo de emulação tornando o muito mais portátil. Essa versão é conhecida como a primeira em modo beta. A primeira versão do emulador com essas mudanças e também a primeira versão beta, é lançada em Dezembro de 2009. Em Fevereiro de 2010 é portado para FreeBSD. O emulador teve atualizações em 2010, 2012 e 2013. Em Junho de 2012, lança a front-end M64PY (ou Python) que se torna fundamental para execução da versão Windows. Na versão de Abril de 2015, começa a dar suporte aos sistemas Linux e Mac OS X no modo 64 bit e à Windows no modo 32 bit. Sua última atualização ocorre em Fevereiro de 2019. A última versão é lançada como versão de teste, e nela vinha suporte ao acessório Rumble Pak, recompilações para Intel e ARM e ajuda de velocidade de saida suave de som. Em seu encerramento, usava seis plug-ins de vídeo, cinco de RSP, um de som e um de input, tendo um único plug-in padrão para cada categoria e os excedentes feitos por terceiros.


Sobre sua lista de compatibilidade, dos 197 jogos testados, 46 funcionam bem, 102 são jogáveis e 84 não funcionaram. Mupen64Plus foi portado para os sistemas Ubuntu e Debian em 2009 (chegando a versão 64 bit do Ubuntu em Abril de 2015), BlackBerry PlayBook em 2012, BlackBerry10 em 2013, Android em 2015, e GameShell em 2019, além de uma série de projetos com melhorias em plug-ins de vídeo, joypads e outros, totalizando dezenas de modificações. Mupen64Plus também recebeu uma bifurcação chamada m64p criada por loganmc10 em 2019 para Windows, Linux e MacOS X. O emulador vem com o plug-in Glide64, usado no Mupen64Plus. O emulador tem uma interface e plug-in de entrada próprios e suporte a netplay (rede). Também é um dos emuladores com maior compatibilidade de jogos. O primeiro lançamento foi em Fevereiro de 2019 e o último em Abril de 2021. Em Junho de 2020, Mupen64Plus ganha uma bifurcação para o LibRetro/RetroArch chamada Mupen64Plus-Next. Junto com ele é lançado o plug-in ParaLLEl-RDP, exclusiva para essa bifurcação e considerado um dos melhores plug-ins para o console.

Outros Emuladores


A maioria dos emuladores necessitava do arquivo ini, que é o arquivo de inicialização, que servia para a configuração dos mesmos, com adições de jogos e outras mudanças mais. Alguns dos que usaram esse arquivos são Daedalus, Blade64, Corn, NEmu64, Project64, UltraHLE, entre outros. Alguns projetos se focavam apenas na atualização desse arquivo em vez de lançarem novas versões de seus emuladores. O mesmo para os plug-ins de entrada, controle, cd-rom, áudio e vídeo.


Além dos emuladores citados, tivemos outros projetos, como Blade64, Dream64, N64 VM, NICE64, ICE64 (baseado no NICE64), Fake64 (exclusivo para Linux), Pagan, PC64, RAP64, RSR64, Larper64, Sixtyforce (para MacOS X), BOOTHEAD, entre outros. Em relação a criação para outros sistemas, tivemos o Jario64 para Java em 2009.


Em emuladores multi-sistemas, tivemos o Nintendo 64 rodando no MAME a partir de 2005, MESS em 2007 e RetroArch em 2017 pelo paraLLEl N64 e em 2018 pelo Mupen64Plus-Next, um port do Mupen64Plus.

Zilmar (1999)


Nicholas Zilmar foi uma das figuras mais importantes para a cena do Nintendo 64. Conhecia muito do hardware do console, como do desenvolvimento de seus plug-ins. Ajudas à cena N64 desde 1999, como em Agosto de 1999 ao emulador 1964 e outros. Naquele mesmo ano, também deu informações ao mesmo emulador a respeito do coprocessador RSP.

Por seu conhecimento geral do console, no ano seguinte, lança três arquivos de texto explicando as melhores especificações de criação de plug-ins de vídeo, áudio e controle para o console. Esses arquivos ficam muito conhecidos entre a cena que começa a aderi-los. Esses arquivos de textos eram atualizados e os plug-ins lançados sob essas especificações mencionavam em cima de qual versões dos textos de Zilmar haviam sido criados. O código-fonte das especificações em questão era aberto e gratuito, livre para ser modificado e adicionado à plug-ins por quem quizesse, porém com a exigência de informar o nome de seu criador nos créditos. Esses arquivos comuns de plug-ins, como eram conhecidos, tiveram influencia no sistema de plug-ins de código fechado do Nemu64, adicionados ao emulador a partir de Abril de 1999.

O primeiro emulador a usar o padrão Zilmar Spec foi o 1964 em Julho de 2000, com o plug-in de vídeo NooTe D3D convertido para tal em Maio de 2000. Os outros emuladores que começaram a suportar os plug-ins foram TR64 em Outubro de 2000, Apollo em Dezembro de 2000, Daedalus em Abril de 2001, Project64 em Maio de 2001, Blade64 em Setembro de 2001, UltraHLE 2064 em Dezembro de 2002, Nemu64 em Março de 2003 e Nice64 em 2011. Alguns emuladores não eram totalmente Zilmar Spec, como era o caso do Nemu64 e do Nice64.


Zilmar criou principalmente plug-ins básicos, como os de vídeo Zilmar’s Basic CFB Plug-in em Outubro de 2000 e a versão Direct3D em 2001, de áudio Zilmar’s Basic Audio Plug-in em Outubro de 2000 e Zilmar’s No Sound Plug-in em Novembro de 2000 e de controle Zilmar’s Basic Keyboard Input Plug-in em Dezembro de 2000.


O Project64, como dito anteriormente, foi um projeto de Zilmar com Jabo, também criador de plug-ins como Zilmar. Se iniciou em Maio de 2001. No mês seguinte, cria o primeiro plug-in de RSP da cena N64, o Zilmar’s RSP LLE ou apenas RSP Plug-in, e que trabalhava em conjunto com o plug-in Jabo’s DirectSound de vídeo. Antes dele os emuladores usavam configurações fechadas do coprocessador em questão.

Ao Longo da década de 2000, permanecem apenas os emuladores Project64, 1964 e Mupen64. Com o fim de 1964 em 2004 e Mupen64 em 2005, permanece apenas Project64, que em 2007 recebe a concorrência de Mupen64Plus, uma bifurcação de Mupen64 e que deixa de usar o padrão de Zilmar. Mupen64Plus deixa de usar muitos plug-ins populares que eram lançados para o Project64 por conta disso. Um dos poucos plug-ins Zilmar Spec usados no Mupen64Plus é o GlineN64 de Abril de 2015, pois tinha funcionabilidade também no sistema próprio do emulador.

Uma curiosidade. Em Dezembro de 2013 é lançado o plug-in HatCat's MLE RSP para o Mupen64Plus e o PJ64, também em Zilmar Spec. Seu diferencial era ser o primeiro plug-in MLE (medium level). Diferente dos já citados anteriormente HLE e LLE, esse era um tipo de plug-in apenas lançado para RSP (o co-processador do N64), e que diferente dos plug-ins clássicos que precisavam de plug-ins de vídeo e áudio específicos de seus graus de desenvolvimento, o MLE mesclava plug-ins de vídeo HLE com plug-ins de áudio LLE, sendo muito considerado para a emulação N64 em geral.

Plug-ins de vídeo:

(1964) NooTe D3D em Julho de 1999 (convertido para Zilmar Spec em Maio de 2000)
(1964/Apollo/PJ64) 1964 OpenGL Graphics em Maio de 2000 (convertido para Zilmar Spec em Julho de 2000)
(TR64/1964) RCP Direct3D em Outubro de 2000
(TR64/Mupen64) TR64 OpenGL em Outubro de 2000
(1964/PJ64/Apollo/Mupen64) Zilmar Basic CFB Plug-in - plays 2D color framebuffer demos em Outubro de 2000
(Daedalus/1964/PJ64) Rice Video Graphics Plug-in 2001 (Em Qual Mês?)
(PJ64/TR64/Apollo/1964) Jabo’s Direct3D6 em Janeiro de 2001
(Apollo) Azimer OpenGL em Fevereiro de 2001
(PJ64/TR64/Apollo/1964) Jabo’s Direct3D7 em Dezembro de 2001
(PJ64) Jabo’s OpenGL em Maio de 2001
(Daedalus) Daedalus Graphics Outubro de 2001
(PJ64/Mupen64/Mupen64Plus) Gonetz Glide64 em Dezembro de 2001
(1964/PJ64) Zilmar Basic CFB D3D em 2001
(PJ64) NiGL (Nintendo Graphics Library) em Abril de 2002
(Mupen64) Mupen64 GFX em Julho de 2002
(Daedalus/1964/PJ64) RiceDaedalus/DaedalusD3D8 em Julho de 2002
(TR64) Icepir8's Texture Dumping Plug-in em Outubro de 2002
(PJ64) RiceVideo Community Version (bifurcação de Rice Video) em Dezembro de 2002
(TR64/Mupen64) TR64 Direct3D em Fevereiro de 2003
(PJ64/Mupen64) Orkin glN64 plug-in em Fevereiro de 2003
(TR64) Icepir8's TR64 D3D plug-in em Fevereiro de 2003
(PJ64/Mupen64) Orkin Direct64 (baseado no glN64) em Maio de 2004
(Nemu64) Lemmy's D3D8 plug-in em Maio de 2004
(PJ64) Jabo's Direct3D8 em Março de 2005
(PJ64) Rice's HiRez Texturing Plug-in (continuidade de Rice Video) em Abril de 2007
(PJ64/Mupen64Plus) Z64/Ziggy's LLE OpenGL em Abril de 2007
(PJ64/Mupen64Plus) Arachnoid em Junho de 2007
(1964 Unofficial) 1964 Video Plug-in (baseado no Rice Video) em Abril de 2008
(PJ64) Angrylion RDP em Fevereiro de 2012
(PJ64/Mupen64Plus) Gonetz GlideN64 (continuidade de Glide64) em Setembro de 2014
(PJ64) Z64GL em Fevereiro de 2016 (bifurcação de Z64)
(Mupen64Plus) "Static" RSP Interpreter / CXD4 RSP em Março de 2018
(PJ64/Mupen64Plus/P64) ParaLLEI N64 em Junho de 2020
(PJ64) Project64-Video em Maio de 2021

Plug-ins de áudio:

(1964) Steb Audio em Janeiro de 2000 (convertido para Zilmar Spec em Outubro de 2000)
(1964) Null Sound em Outubro de 2000
(1964/Apollo/PJ64/Daedalus) Zilmar’s Basic Audio Plug-in - plays audio for demos em Outubro de 2000
(1964/PJ64/Apollo/Mupen64/Blade64) Zilmar’s No Sound Plug-in em Novembro de 2000
(TR64/1964/Blade64) TR64 Audio UCode1 Plug-in em Novembro de 2000
(Daedalus/Apollo/Mupen64) Azimer's Audio Plug-in / HLE Audio Plug-in em Abril de 2001
(PJ64/1964) Jabo's DirectSound em Maio de 2001
(PJ64) Project64-Audio em Maio de 2021
(TR64) TR64 HLE Audio Plug-in em Setembro de 2001
(1964/PJ64/Mupen64) Audio Beta em Janeiro de 2002
(Daedalus/Apollo) Azimer's LLE Audio Plug-in em Dezembro de 2002
(PJ64/1964) Schibo’s Audio Plug-in em Outubro de 2003
(1964 Unofficial) 1964 Audio Plug-in em Abril de 2008
(PJ64/1964/Mupen64) Shunyuan's HLE Audio Plug-in em Abril de 2013

Plug-ins de controle:

(1964/Blade64) NooTe DirectInput Plug-in em Maio de 2000 (convertido para Zilmar Spec em Outubro de 2000)
(TR64/1964) TR64 Input Plug-in em Outubro de 2000
(1964/Apollo/Mupen64) Zilmar’s Basic Keyboard Input Plug-in em Dezembro de 2000
(TR64) TR64 DirectX8 Input Plug-in em Janeiro de 2001
(PJ64) DesktopMan's Basic Keyboard em Janeiro de 2001
(PJ64/1964) Orkin's Input Plug-in em Fevereiro de 2001
(PJ64/Apollo/Blade64/1964/TR64) SJR’s Adaptoid Interface Plug-in/Adaptoid Plug-in em Abril de 2001
(PJ64/1964) Jabo’s DirectInput/DirectInput7 em Maio de 2001
(PJ64/Apollo/Blade64/1964/TR64) SJR's N64 Virtual Pad Plug-in em Junho de 2001
(PJ64/1964) Def's N64 Direct Input em Julho de 2001
(PJ64/Apollo/1964/TR64/Mupen64) N-Rage DirectInput8 / N-Rage Input em Agosto de 2001
(Blade64) Blade64 Input Plug-in em Agosto de 2001
(TR64) TR64 LLE Adaptoid Plug-in em Janeiro de 2002
(PJ64/Mupen64) Darkman DirectInput Plug-in / Pad Plug-in em Agosto de 2004
(PJ64) Billard's Xinput plug-in em Fevereiro de 2008
(1964 Unofficial) 1964 Input Plug-in em Abril de 2008
(PJ64) NetPlay Input Plug-in (roda em conjunto com o N-Rage) em Novembro de 2010
(PJ64/Mupen64Plus) Pokopom PSX Pad Plug-in em Fevereiro de 2012
(PJ64) Shunyuan's Directinput Plug-in em Agosto de 2013
(PJ64/Mupen64Plus) Raphnetraw em Janeiro de 2017
(PJ64/Mupen64Plus) N64 Input Serial Plug-in em Março de 2018
(PJ64) Project64-Input em Maio de 2021

Teria, supostamente tido um plug-in de controle chamado DesktopMan's DirectInput Plug-in, mas essa informação não foi confirmada.

Plug-ins de RSP:

(PJ64) Zilmar’s RSP LLE/RSP Plug-in (era necessário para o plug-in Jabo’s DirectSound de vídeo) em Julho de 2001
(Mupen64/PJ64/1964) Hacktarux-Azimer HLE Mupen64 HLE RSP em Janeiro de 2002
(PJ64/Mupen64Plus) Z64 RSP LLE/Ziggy RSP LLE (necessário para o plug-in Z64 de vídeo) em Abril de 2007
(1964/PJ64/Mupen64Plus) HatCat's RSP Plug-in with SSE em Agosto de 2013
(1964/PJ64/Mupen64Plus) HatCat's MLE RSP em Dezembro de 2013

Nenhum comentário:

Postar um comentário

A História dos Emuladores de Nintendo 64 - Parte 4

Mupen64 / Mupen64Plus (2001) Mupen64 é o último grande projeto da era de ouro da emulação de N64 a ser criado. O projeto começa no ano de 20...

Total de visualizações de página