Gliden64: WIP Builds 2

Created on 7 Feb 2017  Â·  66Comments  Â·  Source: gonetz/GLideN64

New thread for WIP Windows builds.

Current state of refactor_graphics branch:
https://drive.google.com/file/d/0B0YqMPjGo3B2azlIdVFXd3pfTG8/view?usp=sharing

Most helpful comment

Current master:
https://drive.google.com/file/d/0B0YqMPjGo3B2aGdxVG1JZHU5Qlk/view?usp=sharing

Fixed capture with OBS studio.
Star Wars Rogue Squadron HLE.

All 66 comments

Got an Out Of Memory error and a crash after that the first time I ran this. Then I deleted the cache and reset to default settings, everything seems to be running just dandy, and, in fact, from an empirical point, somewhat faster than before. I'm getting 380 V/I tops in Conker's BFD @ output res with no AA and Anisotropic filtering.

EDIT: Seems to be crashing with Native Res factor and Antialasing enabled. Using Project64
OpenGL Error: out of memory (505) is all I have in the log.

EDIT: HAH. It only happens when the AA is an odd number (1x or 3x or 5x or 7x).
Aditionally, I got this error message on gliden64.log
(500)OpenGL Error: invalid enumerant (500)OpenGL Error: invalid enumerant (500)OpenGL Error: invalid enumerant

I never knew you could set 3x, 5x, 7x. Must be a bug in the UI. My graphics card options only supports 2x, 4x, 8x.

No, though I originally suggested to remove the odd Antialasing numbers in the UI but @gonetz said it's perfectly valid in an OpenGL context. However this option just seemed to pick the next even number and use that as Antialasing (just by looking at the pixels.. eg no difference between 3x and 4x or between 5x and 6x). In the branch refactor_graphics odd AA numbers crash and generate those messages in gliden64.log

  • Performance on desktop expected to be better than in master. This branch uses most efficient GL functions available for your GL version. Increased load on CPU should not be a problem for desktop PC.
  • AA. Yes, corresponding GL function allows any natural numbers as parameter, including odd ones. New function used by this branch seems to dislike odd paremeter values. Master uses other function for msaa textures.

Shader cache doesn't seem to be regenerated after switching AA on and off, creating broken graphics.
This even persists after closing and opening the emulator.

Ok, I'll check it.

imagen
Diddy Kong Racing Texrect regression with AA enabled (with AA off it looks correct)
look at the logo and the "options" text
Black lines text rect hack = always fixes it with AA enabled.
Current AA method in refactor_graphics seems to have numerous regressions VS the method used in current master

Nevermind, it also happens with current master

untitled
untitled1

I'm getting really messed up graphics in Mario Tennis, this is with default settings in mupen64plus.

Edit: I only see if during that "VS" screen, and when a ball has been hit.

@loganmc10 Is it on you PC or with RPI?
The game works ok for me.

@gonetz sorry that was a test inside VMware, I just tested it with a normal machine and it works normally. I should have learned by now not to trust the VMware GL driver... you can disregard that report.

@gonetz #include <cmath> needs to be added to TexrectDrawer.cpp for compilation on Fedora/Arch

Also the CMakeLists.txt file is missing:

Graphics/OpenGLContext/opengl_ColorBufferReaderWithReadPixels.cpp

Ok, thanks. I'll fix asap.

refactor_graphics branch update:
https://drive.google.com/file/d/0B0YqMPjGo3B2aGRyOU4wbWN0MWM/view?usp=sharing

Fixed AA settings.

refactor_graphics branch update:
https://drive.google.com/file/d/0B0YqMPjGo3B2bFJscVJGaHFZUUk/view?usp=sharing

Fixed frame buffer emulation when AA enabled.

refactor_graphics branch update:
https://drive.google.com/file/d/0B0YqMPjGo3B2WFhYNVJaZlR3MUk/view?usp=sharing

Implemented vsync for Zilmar-specs build. Since this option is not supported in GUI, vsync is always enabled. I need to know, does it really work. There is no difference when vsync on or off on my hardware.
@theboy181, please test it.

@gonetz I have tested, and when put use 3d application setting it is working. The way you can test it, is by enabling that setting and disabling vsync in your driver.

When you turn off framlimit you will be locked at 60 VI if you have let application choose selected.

Please make this a select-able option in the GUi.

The VSync variant causes noticeable sound crackling when used with Project64

Good, thanks. My monitor has 120hz refresh rate. May be it is why I don't see any problems with vsync.
I guess we need @Aquatakat help to place vsync control on proper place.

@gonetz OK

Do we want VSync on or off by default? (for the tooltip)

Also, does it work properly with both windowed and fullscreen, or just fullscreen?

Edit: I get exactly 50% performance (30 VI/s) in windowed and perfect 60 in fullscreen. I'm guessing this means it should work in windowed but doesn't work perfectly yet?

VSync is usually always off by default in the software I've seen.

@Aquatakat vsync is off by default. It can be enabled both windowed and fullscreen. It works as is. I can only enable or disable it, I can't make it work better.

@gonetz Alright. #1388

I don't know if the GFX plugin can do this, but it would be nice to disable vsync when you disable the framelimiter (F4 on P64), so you can go past 60 fps when you want to speed up the gameplay, but also avoid screen tearing when you are on 60 fps (framelimiter enabled).

It is possible to add a hotkey for this option.

A hotkey for enabling/disabling vsync? That would work as well.

But PPSSPP does what I said automatically, isn't it possible on GLide because it's just a plugin and can't react to the emulator behavior?

Yes. There is no such notification in plugin's API .

Understood.

Looking forward to the hotkey implementation.

Hot key should be user selectable. Hardcoded hot key can interfere with other key mappings. This implies new config settings, support in GUI and code. I don't have time for that atm. May be later. You may create new ticket for that; it will be reminder for me.

Done =)

Very nice ticket, thanks.

@gonetz I can't build on Fedora anymore:

/home/loganmc10/GLideN64/src/NoiseTexture.cpp: In member function ‘void NoiseTexture::init()’:
/home/loganmc10/GLideN64/src/NoiseTexture.cpp:68:90: error: no matching function for call to ‘min(u32, std::array<std::vector<short unsigned int>, 30ul>::size_type)’
     FillTextureData, generator(), &texData, start, std::min(start + chunk, texData.size()));

Ok, I'll fix it.

Done.

Nice

any chance of getting an updated WIP build to test? @gonetz

Has there been an updated Custom.ini ? How can I get one ? Wut is new in latest Build?

Custom.ini:
https://github.com/gonetz/GLideN64/blob/master/ini/GLideN64.custom.ini

Wut is new in latest Build?

Few bugfixes.

Where i can find the latest build?

Where i can find the latest build?

Usually I post WIP builds in this thread.
Fixes related to particular issue can be posted in corresponding ticket.

Holy mackerel, working lighting in Armorines and Turoks!

Kudos!

Ouch!
The audio in your side by side comparison is awfully static/crackly.
https://youtu.be/MjBEzQwOaSM

Maybe try my latest build of Azimer's new audio code (zilmar spec). I added buffer settings, best to set to 4 buffers and keep fps settings at 90. Changes to buffer settings don't take effect until you restart the game or load a save state.
https://www.dropbox.com/s/4atheo4vus4sht5/AziAudioNEW.zip?dl=1

Enabling Disable AudioThread Sleep will improve audio but make the audio process go through the roof in terms of CPU usage. It's fine with 4x core processor here.

@Frank-74 Have you tried shunyuan's HLE audio plugin? Is Azimer's better? I don't seriously play N64 games that often anymore but it's nice to have a good set of plugins ready when I do.

@Aquatakat Azimer's has bobby smiles HLE code for Musyx games. And it's in development. New audio code has low latency too. I think shunyuan's is a hack of 1964 audio.
Also Azimer's is the only plugin I can get good audio with Body Harvest. Disable Fixed Audio Timing in PJ64, turn on Disable AudioThread Sleep, set Backend FPS to 95. Azimer's is planned to be the new default PJ64 audio when it's finished. It's still very much WIP.

Thanks.

I notice that some objects have rainbow hues when per-pixel lighting is enabled.

thanks all ;-)

Current master:
https://drive.google.com/file/d/0B0YqMPjGo3B2eDdNZzk5ZUhYYjA/view?usp=sharing

Ucode for hey you pikachu implemented.

Current master:
https://drive.google.com/file/d/0B0YqMPjGo3B2aGdxVG1JZHU5Qlk/view?usp=sharing

Fixed capture with OBS studio.
Star Wars Rogue Squadron HLE.

Firstly, fantastic work. Secondly, you should probably include the current ini files with the Zilmar build. They're arguably pretty essential to the plugin working properly.

Ok, next time I'll put configs too.

Star Wars Battle for Naboo is being perfectly emulated when it comes to graphics, but the FPS count is 2 to 4, is there any option to keep the FPS rate at 30 FPS? Note: I am using the same Plugin that is emulating with quality the '' RS '' (GLideN64_9818306).

@GamingTVYT GLideN64 doesn't have an HLE implementation of Battle for Naboo. (Yet.) It falls back on LLE, which is much, much slower.

I'm sorry, I am a stupid person: a) what is the "current master" source for compiling it for Linux? b) how compile it for Linux? c) what are the pre-requisite to run Rogue Squadron besides this plugin? Some BIOS or ROM version? I really love your work! Thx from the bottom of my heart! cheers

I use Ubuntu MATE 17.04 x64 and did this script for use the plugin: GlideN64-download-n-compile-wip.sh

CODE:
sudo apt-get install gcc g++ cmake libgl1-mesa-dev libboost-system-dev
sudo apt-get install libboost-filesystem-dev libfreetype6-dev libmupen64plus-dev zlib1g-dev
mkdir wipgln
cd wipgln
wget -c https://github.com/gonetz/GLideN64/archive/master.zip
unzip master.zip
cd GLideN64-master/src/
rev=1
echo current revision $rev
echo "#define PLUGIN_REVISION $rev" > ./Revision.h
echo "#define PLUGIN_REVISION_W L$rev" >> ./Revision.h
mkdir build
cd build
cmake -DMUPENPLUSAPI=On ..
make -j5
cd plugin/release
ls
sudo cp mupen64plus-video-GLideN64.so /usr/lib/x86_64-linux-gnu/mupen64plus
END-CODE

To run:
' mupen64plus --gfx mupen64plus-video-GLideN64.so "/home/fernando/Downloads/GAMES/N64/ROMS/n64/Super Mario 64 (USA).n64" '

or:
' LIBGL_ALWAYS_SOFTWARE=1 mupen64plus --gfx mupen64plus-video-GLideN64.so "/home/fernando/Downloads/GAMES/N64/ROMS/n64/Super Mario 64 (USA).n64" '

It compiles but I got a error:
_Core Error: SDL_SetVideoMode failed: Could not create GL context: GLXBadFBConfig
Segmentation fault (core dumped)_

*I tested a lot of configuration in: /home/fernando/.config/mupen64plus/mupen64plus.cfg in [Video-Gliden64]

So I tried an older version:
https://github.com/gonetz/GLideN64/archive/clone_and_compile.zip

Manual add in: GLideN64-clone_and_compile/src/GLideNHQ/TextureFilters_xbrz.cpp
'#include '<'cmath'>' '
Manual add in: GLideN64-clone_and_compile/src/gDP.cpp
'# #include '<'cmath'>' '
*without the apostrophe

Used the same script pos-manual changes, and It compiles but I got a error:
_(II) Setting video mode 960x720...
Core: Setting video mode: 960x720
Segmentation fault (core dumped)_

So, maybe the problem might be my old laptop:
SO..: Ubuntu MATE 17.04 x64 pt_BR
CPU.: Intel(R) Core(TM) i3 CPU M 380 @ 2.53GHz (1st Generation)
GPU.: Mesa DRI Intel(R) Ironlake Mobile, OpenGL version: 2.1 Mesa 17.0.7
vGPU: Gallium 0.4 on llvmpipe (LLVM 4.0, 128 bits), OpenGL version: 3.0 Mesa 17.0.7
PluginDir.. = "/usr/lib/x86_64-linux-gnu/mupen64plus"
VideoPlugin = "mupen64plus-video-GLideN64.so"
AudioPlugin = "mupen64plus-audio-sdl"
InputPlugin = "mupen64plus-input-sdl"
RspPlugin.. = "mupen64plus-rsp-hle"

If it is not my old laptop, what should I try?

I preferred to post here because the script can help other people interested in trying the plugin on Linux. But if my problem deserves another topic or simple forgetfulness please inform. thank you so much!

cheers

@ofernandofilo There was tickets related to build for Linux. There is a wiki page
https://github.com/gonetz/GLideN64/wiki/Build-From-Source-(Linux)
(a bit outdated, but you will know what to do)

OpenGL version: 3.0 Mesa - this can be problem. Search open and closed tickets for 'Mesa', many people complained on it.

Was this page helpful?
0 / 5 - 0 ratings

Related issues

olivieryuyu picture olivieryuyu  Â·  12Comments

schubertguilherme picture schubertguilherme  Â·  19Comments

olivieryuyu picture olivieryuyu  Â·  20Comments

gonetz picture gonetz  Â·  14Comments

Dorzalty picture Dorzalty  Â·  20Comments