Wednesday, December 6, 2023

The History of Nintendo 64 Emulators - Part 2

Nemu64 (1998)

Nemu64

The Nemu64 project began in October 1998, by the German Lemmy, who decided to create the project after seeing the debugger used in the Project Unreality emulator, also for the N64. Its first version was released in December 1998 for Windows. At the time, it only ran a few demos for the console. In February 1999, the emulator already had better speed. In the first definitive version (or beta) of March 1999, it implemented audio, with almost complete emulation and working with 10 demos and basic joypad implementation. In March, in the alpha version (versions released with small updates), the emulation of the RDP coprocessor for 2D graphics also began, and began to partially run the first commercial games such as Mortal Kombat 4. In April 1999, in the second beta version, it improved CPU acceleration with its dynamic recompilation and added a plug-in mode, debuting with video plug-ins in DirectDraw and sound plug-ins with DirectSound.

Nemu64 (Interface/Options)

Also in April, LaC joined the team as a programmer, having helped since the beginning of the project, creating the HLE audio plug-in and hacking useful information, and who had been in the 64 scene since 1996. In May, LaC received help with the DirectX part of the emulator from hWnd, and invited him to join the team. At the time, hWnd created the Direct3D HLE video plug-in. After that, they went a few months without releasing updates, as Nintendo began to close down sites with their games for download and the development of the emulator with it finished worried the creators of Nemu64. Because of this, they only released alpha and beta versions privately, developing at least two more beta versions in April, May and June. In early June, they decided to return to public releases. In June, they were also part of the F|res project of the TrueReality project, with its OpenGL plug-ins, remaining in it for a short time.

Nemu64 v0.5 (Interface/About/Options)

At that time, it was already running 2D games almost perfectly and started running demos with the beginning of the construction of the Direct3D HLE plug-in. In the beta version re-released at the end of June, the emulator is twice as fast playing 2D and 3D games, such as Mortal Kombat Trilogy, NBA Hangtime, Mario 64, Superman, Starfox, Mario Kart, Wave Race, and many others, with a complete Direct3D HLE plug-in, a complete dynamic recompiler (which affects speed) and support for cheats. This version started to include the initialization file for adding games. This file is updated on other occasions by third parties, such as in September by EmuManiac and Myzar. Emu helped with the official INI file of the emulator in February 2000 and together with Myzar in the March 2003 version. Others also wrote INI files for the emulator, such as Spinal Duncan and Smiff, mainly around the year 2001.

Nemu64 v0.7 (Interface/About/Options)

Also in September, the last member of the team joined, the German Einstein II, who was the webmaster and programmer of the initialization file. The next beta version was released in September with improved graphics, Direct3D optimization, support for multiple resolutions, DirectInput support for joypads, loading games on read-only drives, such as CD-ROMs, and greater game compatibility, running 47 games out of the 95 tested. In February 2000, another beta version was released, this time with many updates to improve graphics, fix bugs, greater compatibility with graphics cards, increased speed, greater game compatibility, and the long-awaited HLE audio plug-in. This plug-in was considered the best of its time. After that, it went on a three-year hiatus without updates, releasing its last update in March 2003. This version came with support for netplay via kaillera.

Nemu64 (San Francisco Rush 2049/Space Invaders)

It also came with support for audio and video recording and Gameshark. From this version onwards, Zilmar Spec plug-ins also started to work. In this version, of the 188 games tested, 113 worked well, ten of which were a little slow, five worked more or less, with slowness, and one of them had a lot of problems, and 46 did not work at all, with two stopping at the player selection screen, six running without sound and one running very slowly. In addition to the additions already mentioned about the emulator, it also had support for save state, pause, reset, support for expanding RAM to 8MB, eight different types of resolutions, debugger for memory, images, commands and others, among others. Its plug-in system was so well-known that it was later used in other emulators, such as Project64 and Mupen64, from the N64 scene. Regarding help for the project, we had influencers from the PSEmu Pro project, _Demo_ from the ePSXe project and even from its competitor, Zilmar, creator of Project64.

Nemu64/Nemu64 Git

Regarding its front-end, it was modified in March and June 1999, February 2000 and March 2003. Its icon at the top of the emulator was changed in June 1999 and March 2003, and the emulator executable (.exe file) was only changed in March 2003. In April 2015, the emulator was unexpectedly brought back to life by Mr. 64, known by its original name, but also by Nemu64 Git, for being posted on the developers' website, GitHub. The project updates the input plug-in, the ini file and adds hundreds of cheats, as well as creating a video plug-in that works on any emulator, the Gfx Plug-in, with several improvements. It also absurdly increases the list of games compatible with the emulator, with 545 fully playable, 297 playable and 171 non-working, eighty-five of which are unplayable. Released versions from April to September 2015.

1964 (1999)

1964

The 1964 project was created by Joel Middendorf, Schibo, in March 1999, alongside Steb, who helped him develop the emulator core, and NooTe and Gerrit Goossen, who helped him develop the DirectX and OpenGL plug-ins. The first version was released in April 1999 for MS-DOS. In another version in April, support for Windows and MS-DOS was released in the emulator. The emulator was developed with the purpose of running plug-ins. The emulator has always been open source, something that was not very common at the time. Also in April, Themedes and Eudaemon joined the project. In May, F|res also joined the project, which was working on the TrueReality project, and the following month joined the Nemu64 project. In June, the first demo on the emulator, 1964.bin by Shibo's friend Anarko, ran. Video and joypad plug-in support arrives in July, via DirectInput and the OpenGL (created by F|ires) and DirectX (created by NooTe) plug-ins, the latter being superior to the former (they are released in different versions in July).

1964 0.8.3 (Interface/Menus/Options)

In August, it was time for DirectSound sound support. Around September, a version for MacOS by Gerrit Goossen was released, called Mac1964 (renamed in March 2000 to SixtyForce). In October, it was running 12 demos. In May 2000, it began supporting commercial games, such as Rampage, Super Mario 64 and Mario Kart. In that month, the first OpenGL plug-in originally from 1964 was released, and Gerrit's OpenGL HLE plug-in was ported to Windows from the Mac version. At that time, it promised to run plug-ins from other N64 emulators in the future. In July, it began supporting the Direct3D plug-in from NooTe. That month, it also brought a version with support for executables for Windows 98 and Windows 2000. Only in 2001 did it return with a single executable. In April 2001, Rice began to be part of the project team in the development of the core. He comes to the project after playing The Legend of Zelda: Ocarina of Time on UltraHLE, and managing to run its sequel, The Legend of Zelda: Majora's Mask on the emulator.

1964 0.8.5 (Interface/Menus/Options)

With that, he went after the only open source project, 1964, and began to read and modify it alone. After that, he managed to integrate the project. Later, Rice also became an important creator of graphic plug-ins, such as Rice Video in 2001 and RiceDaedalus in 2002, as well as having forks of the first plug-in mentioned. Basically, they ran on the 1964, PJ64 and Daedalus emulators. In May, 1964 began to support saving games via EEPROM (the device's internal memory). Also in May, it changed its front-end and its icon. Over time, it made some changes to the layout, such as accessible menus and menu bars. Until May, it came with two versions of its executable, Win2k, for Windows 2000 and Win98, for Windows 98. After that, it came with only one executable. In July, the Linux version was released. Also in July, several updates were released, such as an improved GUI, support for the initialization file, list of ROMs in the GUI, save state, gameshark, support for netplay through Kaillera, among others, in addition to already working with more than 130 games, one of the emulators with the greatest compatibility at the time.

Nineteen64 0.9.9 (Interface/Menus/Options)

In September 2002, an update was released with many new features. In November, the last version of the emulator of the year was released. In July 2003, the development of what would be the last version of the project was announced, released only in January 2004. One detail. The title of the emulator executable had the word Nineteen written on it and the number 64 in front, unlike the other versions that only had the number 1964. This version contains hundreds of bug fixes and improvements to the emulation, such as better game compatibility and even a reformulation of the Kaillera netplay. By the end of the emulator, it was already running third-party plug-ins, such as Jabo's video, audio and input plug-ins for Project64, Rice's video plug-ins for Project64 and Daedalus, N-Rage's input plug-ins for Apollo, TR64 and PJ64 and even Schibo's audio plug-in made for the emulator based on UltraHLE. The emulator was one of the projects that received the most updates from the entire Nintendo 64 scene, with almost 60 releases, 40 of them in the first year alone.

Nineteen64 (Fighter's Destiny)

Nineteen64 (Hiryuu no Ken Twin)

Regarding its compatibility list, in this version, of the 1,009 games tested, 870 ran well, 54 ran more or less, and 85 did not run or were not playable, having one of the greatest compatibility of Nintendo 64 games at the time, if not the one with the greatest compatibility. This last initialization file with the ROMs had help from Duncan, who also helped with the compatibility of games for Nemu64 and PJ64. In addition to the functions already mentioned in the emulator, it also supported 20 languages. It also had a menu to support the RSP plug-in (console coprocessor), but they preferred to emulate it within the console's own programming. After the end of the project, the Mac version, SixtyForce, continued to be developed, and is updated to the present day, having had its last version in October 2020. In 2008, the project was hacked and was released as 1964 Unofficial in June 2009 with several improvements.

1964 (Gex 3: Deep Cover Gecko)

One of them is the release of its own plug-ins, such as 1964 Video, 1964 Audio and 1964 Input. Another difference is its game compatibility. In the latest version, it tested 25 more games than in the 2004 version, managing to run 37 more games, 6 fewer games in the list of more or less playable and 2 fewer games in the list of unplayable. These lists were based on Duncan's official list of games from January 2004 and the unofficial bitcopy list from March 2005. The hack had several versions, the last one being in June 2012. In March 2011, 1964mod appeared, a fork of the 1964 emulator, based on the source code of version 1.1. It was created by the group Pokefan/Pokemaniacs. The intention of the emulator, as its creators themselves said, was not to replace 1964, but rather to improve it to benefit people who love the original emulator. The project developed its own plug-ins, such as MyGlide64 and MyGlideHQ for video, 1964mod Audio for audio and 1964mod Input for input. The emulator existed until January 2012, when its last version, 1.5.2 Final, was released.
 

1964 Unofficial, 1964mod, NICE64 e ICE64
 
In April 2012, the NICE64 emulator was released, based on the latest version of 1964mod. The project also created its own plug-ins, such as NICE64 Audio and NICE64 Input, using the 1964mod audio plug-ins. Its latest version, v2.1.1 Final, was released in the same month. Finally, in August 2012, ICE64 was released, based on NICE64. It is based on the source code of version 2.1.2 of the emulator. Its own plug-ins were ICE64 Audio and ICE64 Input, also using the 1964mod video plug-ins. The latest version of the emulator was released in October 2012, as 3.7.0. In 2012, Schibo resurfaced and ported the classic 1964 to Java Script and named it 1964js. The emulator ran games through the browser itself. Its last update was in July 2018.

The Rice Video plugin was last updated in June 2011.

UltraHLE (1999)

UltraHLE

The UltraHLE (Ultra High Level) project began in 1998 by RealityMan and Epsilon. It was an innovative emulator, as it implemented the simulation of several hardware functions of the device in the emulation scene, instead of emulating them. The difference between emulation and simulation is that emulation is recreating in a virtual scenario the exact functioning of a hardware, and simulation is creating an alternative reality to the original hardware, an imitation of it, in a more optimized way, thus reducing the work of a computer/host for the performance of the software, in the case of a game console. The advantages of simulation, in addition to using less of the capacity of a computer/CPU, is the lack of need for knowledge of the source code of the simulated hardware. In the case of the Nintendo 64, several parts of it were simulated, making UltraHLE stand out from its competitors. One of these simulations is of the computer's graphics card as being the console's graphics card. For this, a graphics API is used, which performs this communication and simulation. An example of this process is DirectX. The process, for example, is different from that of a plugin, which, as in the case of PSEmu, communicated the graphical part of the emulator to DirectX, which in turn communicated to the graphics card.

UltraHLE (Mace: The Dark Age/Bomberman Hero/Super Mario Kart)

UltraHLE (Wave Race 64/Tetris 64)

There is neither a plugin nor DirectX here, with direct communication between the emulator and the video hardware. This entire process of simulating various parts of the console, such as the graphics card, through a graphics API is called High Level, which gives the emulator its name. It is worth remembering that High Level technology was not created by the emulator; it already existed for the virtual reproduction of non-conventional hardware, which did not have a CPU, video chips, etc., simulating them instead of emulating them. In addition, graphics APIs accelerate the 3D rendering of video cards. The API used in the emulator is the Glide API, which is used for VooDoo cards, well-known graphics cards of the time. Because of the emulator's popularity, programs were created that converted the Glide technology API to DirectX, allowing those who did not have an advanced graphics card to run the emulator. UltraHLE was released in January 1999 for Windows, and could easily be run on a Pentium II with 64MB of memory. The emulator supported the joypad, which few did at the time. Despite this, support for controls was limited, and so a tool called UltraHLP was used to improve this function, such as supporting two players, for example.

UltraHLE (Controls/About)

The patch also fixed the bug that occurred when Mario jumped in Mario 64. At first, it was capable of running 29 games, 10 of which were playable, 5 that had bugs but were playable, 4 that opened but were not playable, and 10 that did not work, something that no emulator at the time could do. It was also the first to run commercial games satisfactorily. Because of this, the month after its release, Nintendo filed a lawsuit against its creators, claiming that they did not have the rights to the brand. At the time, the N64 had been released two and a half years before, and was still being sold. In March 1999, RealityMan said he was abandoning the project, but resumed it in September. He spent the years 1999 and 2000 bringing news about the development of the emulator, such as in September 1999, when version 1.10 would be released with OpenGL support, and in January 2000, with version 2.0 with the same support. Despite this, he never released another version of the emulator. What happened were updates to its Ultra.ini file (initialization file) by hackers, enabling compatibility with more games, and plug-in versions for its API, as was the case in December 1999, with the plug-in created by Einstein II (designer of the Nemu64 emulator website), OpenGlide, which converted the Glide API to the most current OpenGL at the time. There was also an OpenGlide created by the Brazilian Fábio Barros in January 2000 with the same purpose.

UltraHLE-Z (Installation)

UltraHLE-Z (Ini Editor)

Regarding its game compatibility list, of the 218 games tested around May 1999, 60 worked, something that no emulator at the time could do. 16 games worked moderately, and the vast majority, 142, did not work, with some of them malfunctioning. The emulator also had its hacks, such as UltraHLE-Z, released in April 1999. The modification came with an updated Ini file (with more supported games), support for Voodoo3, the UltraHLP patch for control optimization, and others.

UltraHLE François 1.46/ Ultra64 French Emulator DED (Interface/About/Controls)

SupraHLE (Configuration)

Other hacks were released in the following years, such as UltraHLE François 1.46 (also known as Ultra64 French Emulator DED) in July 1999, with a French translation and the addition of some plug-ins, such as Glide, for example. SupraHLE was also released by DominaTor of The Company in June 2002.

SupraHLE (Interface/About)

Its additions are mainly in the field of game compatibility, supporting 19 more games. In June 2002, RealityMan decided to release its source code. After that, ShadowPrince, who had already contributed a front-end to the Mupen64 project, created a version of UltraHLE called UltraHLE Alpha, releasing it in November 2002.

UltraHLE Alpha (About/Interface/Options)

Its main changes were the addition of languages, the addition of a ROM directory and improvements to the ROM list, bug fixes, support for .ZIP files, support for more plugins, such as the glide plugins and emulators such as PJ64, among others. In November 2002, the front-end was modified, removing the Debug Output bar at the bottom. Regarding its compatibility, of the 85 games tested, 11 were playable, 9 were almost playable, 5 the game started and froze and 60 did not work. The project existed until December 2002, with 8 versions in total. The project also planned to support Kaillera and Plugin GFX, among others. 

UltraHLE2064 (Interface/About/Settings)

UltraHLE François 1.46/Ultra64 French Emulator DED (Control Panel/Installation)

Soon after, SupraHLE hackers, led by DominaTor, decided to create UltraHLE2064 in December of the same year. This hack ended up being the version with OpenGL support that Reality promised and never released. Among its many implementations, in addition to support for several languages, was the possibility of adding video, sound and control plug-ins, like its other competitors. The plug-ins followed the Zilmar Spec standard. The project lasted until July 2003, with five versions released. They fixed problems with internal memory, game cheats and even CPU optimizations. Also participating in the Hacktarux project of the Mupen64 project were _aprentice_, McLeod, PsYKo, Quvack and tb.

UltraHLE2064 (California Speed)

All of the project's hacks used the same front-end, the original UltraHLE. In July 2003, RealityMan appeared on the emulator's official website, reporting on work on version 1.0.1, mentioning the rework of the debugger code, adjustments that would be made to the GUI, and even providing a screenshot of the emulator running Mario 64. However, he updated the website until August, no longer continuing the project.

UltraHLE v1.0.1 and UltraHLE v2.0.0

In June 2011, he appeared once again, this time on the AtariAge website forum, and posted a screenshot of what would be UltraHLE 2.0.0, but in the post itself he said he had no plans to release it. This was the last time we heard about UltraHLE. The emulator left behind not only the mark of being a pioneer in the full emulation of commercial N64 games, but also the legacy of having improved HLE technology in emulation, later used by other emulators, such as Dolphin, for GameCube and Wii, for example.

No comments:

Post a Comment

Featured Posts

Emulation Names - Part 21

Matt Conte Matthew P. Conte, or Matt Conte (known as Shady) was born in Italy in 1977. He attended the naval academy, where he learned engin...

Popular Posts

Total Pageviews