Яндекс

Monday, April 1, 2019

Public Release 4.0

Hello,

Today is time to set new Release tag to master branch.
Previous Release 3.0 was a revolutionary one because of massive changes in plugin's architecture and new possibilities opened by these changes. This release is rather evolutionary. It continues tendencies started in the previous version. Of course, new features had been developed too. Lets see:

Solution for HLE problems

The main theme of the new release is solution of HLE-related problems. It started with long long awaited HLE implementation of BOSS ZSort microcode made by Gilles Siberlin.

Then olivieryuyu and me completed our "Mission Impossible 2" : HLE implementation of microcodes for "Indiana Jones" and "Battle for Naboo".That was a huge and incredibly hard work. Successful completion of that task ultimately closed "HLE not supported" issue. All N64 games now can be run in HLE mode. olivieryuyu wrote an article about this microcode: "The masterpiece graphic microcode behind the Nintendo 64 version of Indiana Jones and the Infernal Machine and Star Wars Episode I: Battle for Naboo". I highly recommend to read it.

Next step was to fix issues caused by incomplete or incorrect implementation of some HLE commands, which caused HLE-only glitches. We started with re-implementation of S2DEX microcode, which is designed to draw such 2D objects as sprites and backgrounds. olivieryuyu decoded that huge and tangled microcode and we made new HLE implementation of it, trying to reproduce original algorithms as close as possible. That work took us circa six month.

We also fixed several small HLE issues, where glitch was caused by an issue in some command. Such fixes also required microcode analysis. Thanks to olivieryuyu's efforts we fixed:

Regressions fixes.

The second big topic of this new release is fixing of regressions.

Unfortunately, each big release is brings not only new features and fixes, but also new bugs. Complete testing is very hard and tedious process. Fortunately, users are founding and reporting us about issues. One of my goals for this release was to fix all known regressions. I combed project's bug tracker for such bugs. To my surprise, many reported issues were actually old and very old regressions. I even found regressions, which were made before the very first public release. I fixed all these issues and I hope that this release will not bring many new ones.

New features.

1. As you know, GLideN64 has special mode for precise emulation of N64 depth compare. This mode helps to fix many minor and some major issues with depth compare, but it has some limitations:
  • serious performance drop in some games
  • incompatibility with Multi-Sample Anti Aliasing (MSAA)
Logan McNaughton aka loganmc10 found OpenGL extensions, which helped us to weaken the performance issue greatly. Now you can use N64 depth compare freely if your hardware supports required extensions. This mode is still incompatible with MSAA, but now we have a solution. I implemented Fast Approximate Anti Aliasing (FXAA) , which you can enable along with N64 depth compare.

2. Ultimate solution for "remove these darn annoying black boarders" issue: Overscan feature. Now you may crop output image as much as you want.

3. User profiles. You may create profiles with different settings and switch between them. For example, you may create a profile with 2D fixes enabled to play 2D games, or create a profile with N64 depth compare + FXAA enabled.

New supported games

I already mentioned implementation of new microcodes, which finally made it possible to run any game with HLE. However, there are still games, which can't run properly because they do something weird what GLideN64 does not expect and can't emulate yet. Example of such game is Super Bowling 64. The way that game programmed makes it hard to emulate on PC hardware. Finally I found a way how it can be done. That fix then helped me to solve split screen issue in NASCAR 2000. Another example of hard to emulate issue is multiplayer mode in GoldenEye 007 and Perfect Dark with 3 or 4 players. It was fixed too.

Other

It is impossible to list all solved issues. We closed more than 175 issues during this release cycle .
You may read my change-logs on Patreon for details.

Acknowledgements:
  • Thanks to all backers of "Indiana Jones and the Infernal Machine" crowdfunding campaign on Indiegogo. We hardly would take that task without your support.
  • Thanks to all my patrons on www.patreon.com/Gliden64 I very appreciate your support.
  • Thanks to all users of https://github.com/gonetz/GLideN64. Your bug reports and feedback greatly help us to improve quality of the program.
Very special thanks to olivieryuyu, the author of incredible microcode decoding works.

Downloads:

To help the project:

25 comments:

  1. So much work done since the beggening of this "GLideN64 story". Thanks for the hard work. :)

    ReplyDelete
  2. Indeed, the project has evolved greatly since the beginning. It is very important for us to know that people still appreciate our work. Thanks!

    ReplyDelete
  3. how could anyone not appreciate this work? n64 emulation RELIES on this plugin. without you guys, n64 emulation dies. THANK YOU!!!

    ReplyDelete
  4. The silent majority is always watching from the sideline. We greatly appreciate your work!

    ReplyDelete
    Replies
    1. Yes, when I feel that there are not so many feedback on our work I recall that I myself belongs to "silent majority" and seldom leave feedback to others work.

      Delete
  5. Just want to say what you do is amazing and very appreciated. N64 holds many classics that can still be shared with people today, especially from the local multiplayer side of games.

    ReplyDelete
    Replies
    1. Yes, games like Mario Kart 64 or Mario Party are still fun to play with friends.

      Delete
  6. Excellent work! What will you tackle next?

    ReplyDelete
    Replies
    1. I promised to finally take seriously the issues with HD textures. This task is on top of my todo list.

      Delete
    2. This comment has been removed by the author.

      Delete
    3. Thanks for all the hard work!

      But, what problem with textures?

      Delete
    4. There are several open issues which are related to HD textures. This one for example: https://github.com/gonetz/GLideN64/issues/1906

      Delete
  7. I randomly stumbled over this update and am glad it's not an april fool's joke.

    ReplyDelete
    Replies
    1. April 1st is also an unofficial Day of mathematician in Russia. I educated as mathematician, so it's kinda my professional day :)

      Delete
  8. Will hey you Pikachu ever work?

    ReplyDelete
    Replies
    1. It already works:
      https://www.twitch.tv/videos/159911960

      Delete
    2. The mic is not working in mupen64plus fz (Android)

      Would be awesome to use the phones mic to speak lol

      Delete
    3. AFAIR, just microphone is not enough. You need the original device, which comes with that game, as it has some build-in voice recognition capabilities.

      Delete
    4. Damn okay, I hope this is fully emulated one day

      Delete
  9. Or the GB tower in the Pokemon stadium games
    Or the camera in Pokemon snap and the print functions in the snap station ROM and the pictures not being black :/

    ReplyDelete
    Replies
    1. You may find all known info about these and other issues on GLideN64 bug tracker on GitHub: https://github.com/gonetz/GLideN64/issues

      Delete
  10. Lol, i remember the Glide on a Project64 years ago, am i wrong ?

    Now it's my favorite plugin with Mupen64.

    ReplyDelete
  11. Awesome work gonetz, I'm one of those watching from the sidelines, rarely commenting, but now I just have to! Question about profiles, is it possible to make a different profile for each game and have mupen64plus boot with that specific profile. Like mupen64plus.exe -profile Turok ?

    ReplyDelete
    Replies
    1. Profiles are not supported for mupen64plus ini since UI of mupen64plus is not well suited for that. Besides, -profile key must be supported by mupen64plus core. I doubt that mupen64plus team will add it just for the plugin, which does not even included into official mupen64plus distributive.

      Delete