Tuesday, December 30, 2014

New Year beta.

Hello everybody!

The project is moving forward according to the “Plan for Project Completion”. Today time is come for the second large beta release. According to the Plan, the following tasks were planned to accomplish:

  • Add texture enhancement and hi-res texture load.
  • Rewrite the GlideHQ submodule from the Glide64 project to add OpenGL texture formats.
  • Lots of work need to be done in the plugin to support all the features of GlideHQ.

  • Since the plan for the previous release was not fulfilled on 100%, uncompleted works were moved to this stage. These are mostly bug fixes. I need to say few words about situation with emulation errors. It was planned that the project will reach compatibility level of Glide64 within month or two. My estimation of that work was based on assumption that legacy code (that is original code of glN64 plugin) is correct and just incomplete. I seriously mistaken here. I spent weeks on debugging since the previous release and all this time I stumble on issues in very core of the plugin's code. Since code of Glide64 and GLideN64 differs a lot these issues are hard to notice. In spite of my hard efforts compatibility level of Glide64 is still not reached. However, the situation is much better than with the previous release. Circa 80 issues closed on the bug tracker during this stage. Most of serious issues are fixed, and most of games work pretty well.

    According to the Plan, the main feature of this beta release is support of HD textures. I ported GlideHQ module to this project and adopted it to the new reality:
    • 3dfx texture formats are replaced by OpenGL ones.
    • texture compression is removed. This technique was useful for 3dfx cards which had 24 mb of texture memory at most. Since texture quality degrade noticeably after the compression, I removed it.
    • added new family of texture scalers - xBRZ.  xBRZ was invented after original GlideHQ was finished. Many people like how that scaler works, so now you may check yourself is it suitable for N64 textures.
    • improved texture library text messages output during HD textures load. You know how it looks with Glide64. With GLideN64 you may change font, font size and text color for these messages.
    Texture dumping is left untouched, but the plugin currently does not support it.

    Another mega feature of this release is support of LLE, that is Low Level Emulation. Just select LLE RSP plugin in the emulator to enable it. Besides new games support that feature has another practical use - you may easily find what causes particular graphic glitch: errors in HLE or bugs in core functionality.

    Other changes are not so global:
    • Implemented microcode for Star Wars - Shadows of the Empire
    • Implemented gamma correction feature
    • Implemented flat shading and prim shading
    • Lots of fixes and modifications in texture code.
    Note about non-windows platforms. Linux build worked well until I added texture library. Current code can be built but emulator can't load the plugin due to conflicts in included libraries. It is technical issue, I hope to fix it soon. The situation with Mac OS X is similar: I can compile the code but can't run it. Current release of Mupen64Plus for Mac does not support OpenGL 4. The problem is also technical.

    Next stage will be started in the New Year. The plugin will get new GUI and will be compatible with Zilmar's specs emulators. Of course, bugfixing will be continued.

    How to get the beta:
    • All project contributors with access to the forum may download the beta from GLideN64/New Year Beta Release subforum.
    • All project contributors with perk "Early beta for Mupen64Plus 2.0" will get the beta by email.
    • If you are not a contributor, you still may support the project
    I was too busy to make video materials to this release. You may check this cool comparison video, made by our forum member aquatakat:
    It shows difference between glN64 and GLideN64.

    And a few screen shots from Perfect Dark:
    Object highlight

    Motion blur
    Spy cam

    Night vision
    Coronas, mip-mapping, reflections
    X-Ray scanner
    Sky textures
    Horizon scanner
    IR scanner
    Multiplayer mode
    Multiplayer with simulants

    Happy New Year!


    1. I get no configuration option in M64PY. It shows up as being totally gray and even the config just shows [Video-Gliden64] with nothing underneath it. I put the DLL into the M64PY directory with the other ones and it IS found by the program (and launches ROMS fine), but it doesn't show any options.

      1. Try to reset the settings:
        - find and remove mupen64plus.cfg
        - go to M64PY folder, open cmd here and type
        mupen64plus --gfx mupen64plus-video-GLideN64.dll m64p_test_rom.v64
        this will create new config file with default settings, including the GLideN64 ones. These settings will be available in M64PY.

        Or you may try just to remove [Video-Gliden64] section from mupen64plus.cfg
        and then run mupen64plus from command line.

      2. The first one did the trick, thank you

    2. Hey I would like to first thank u for the best n64 plugin ever and all the work I've done on it. On my old computer it played perfectly, however that computer is long gone and the only one I have now is an Intel core 2duo with gma 950 graphics. The graphics are capable enough to play quake 3, half life, call of duty 2, all at 1280x800 full speed, even the jabo plugins. However, it is limited to open gl1.4 which is about as old as glide 3. Therefore I was unable to use the open gl2.1 wrapper with glide64, and was wondering as this plugin is in developement, u could add a togld in the plugin setup that would say legacy mode(open gl1.4) and if the user hit the toggle the plugin would be optimized and work on open gl1.4. The user could turn this off so the plugin would optimize for open gl 4 or whatever ur aiming for. I know this is a big favor but I know ur knowledge of old api's such as glide 3 which is very similar to open gl 1.4 as they came out about the same time would make this an easy implemation.

      1. I'm not working on Glide64 anymore. I'm very busy with GLideN64 development and have no time for side projects, sorry. There are forks and ports of my original Glie64 code for various emulators. E.g. Project64 uses its own Glide64 build. You may ask the people who made the ports to help you.

    3. Hey would you mind adding "xBR Rounded" and Tripple Buffering to the list? I'd love to enable these features WITH xbr-z due to the fact that Z is more known for 3d model shaders, where as tripple buffering and "xbr rounded" is purely for the sharpening 2d objects, hope you'd consider, thanks!!

    4. Could you give me a link to C/C++ implementation of "xBR Rounded"?
      How tripple buffering helps to sharpen 2d objects?

    5. https://code.google.com/p/2dimagefilter/

      Just give us as much quality as possible, refer to Fb Alpha team for more help on this, can't help any further, not familiar with coding lol


    6. Also include all features present in original Glide64.

    7. Two bizarre "bugs" (most likely the settings I have enabled) that I'd like to ask about.

      One is that the pause screen in Ocarina of Time sometimes leaves the backgrounds completely blank that are behind the menus.

      Two is after leaving the pause screen, Link's textures are somewhat covered with black pieces. No idea why this happens.

      1. Perhaps the first is a bug caused by the OoT pause screen delay hack some N64 emulators use? Gonetz talked about it here.