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!

    Monday, December 1, 2014

    Widescreen hack

    Many people ask me: is it possible to implement the "widescreen hack"? They mean the "Adjust game aspect ratio to match yours" feature of  Jabo's Direct3D8 1.6 plugin which enables widescreen mode for games not intended to run in widescreen. Since this feature is a hack, it does not work with any game. You may check a compatibility list. I was unsure how it works, so I didn't promise that it will be implemented in GLideN64. Recently I got an idea how to make that feature and did a quick test. Check the result:

    normal 4:3 screen

    16:9 aspect with the hack enabled

    The hack is applied only to 3D objects, don't pay attention on stretched sprites.
    As I can see, proportions of 3D object remained correct. To be sure, I open wide screen shot in Paint and lay normal screen shot over it:

    It fits pretty well.

    Now back to the question: is it possible to implement the "widescreen hack"? It depends. The screen you see is not from beta, it's even not a work in progress. It is an experiment, pretty successful as I can see. I need time to complete it. Time is money. The project collected 8K funds and I'm overloaded with works planned to implement for these money. "Widescreen hack" is among tasks, which will be done with 10+K funds. BTW, another 10+ task, "port to Apple Mac OS X" is almost ready. You still can support the project - the more time I can work on this project, the more complete the result will be.