libretro / mupen64plus-libretro-nx

Improved mupen64plus libretro core reimplementation
GNU General Public License v2.0
227 stars 112 forks source link

[ALL] Zelda OoT/Majoras random freezing (+ potential pause menu fb corruption.) #49

Closed Dylan10126 closed 4 years ago

Dylan10126 commented 5 years ago

Platform - Windows 10 Version - 1.7.6 Rom - Zelda Ocarina of Time (all versions) CPU - i5-4670k GPU - GTX 980

Having an issue where the background of the pause menu will get all rainbow colored (see example below). The only solution I was able to find was the old PJ64 gameshark code which doesnt work.

That issue I can live with, however i'm mainly looking for information regarding random freezing I get where the rom will freeze, but the audio will still be playing, and the retroarch menu works fine. Save/load state brings me to a white screen with the same audio playing. These freezes can occur anytime between a few minutes of play, up to about an hour of play. The only lead I found to this issue was a year old post on the mupen64plus-libretro github saying that its related to Delay SI, which wasnt/isnt an option on the libretro cores.

Dylan10126 commented 5 years ago

Legend of Zelda - Ocarina of Time-190430-000506

m4xw commented 5 years ago

So you decided to turn off framebuffer emulation and then ask why framebuffer emulation doesn't work? IIRC there have been some freezes in OoT with high res textures if Color to RDRAM was off. So enable FB Emu.

Dylan10126 commented 5 years ago

I never disabled framebuffer emulation actually, its still set to true, but you would know that if you had asked instead of just assuming shit.

Color to RDRAM is set to Async, will change to Sync to see if that changes anything

m4xw commented 5 years ago

FBEmu is clearly off in that picture, also I know for a fact that this is functional (can also reproduce it by turning it off)

I played through OoT a couple of times myself with this core. This only happens if FBEmu is off. Do you use the bot ver, or compiled it yourself?

What is set for depth buffer?

Dylan10126 commented 5 years ago

See screenshots attached for proof for framebuffer settings

bot version

Depth buffer is set to software (can see attached screenshot

Legend of Zelda - Ocarina of Time-190430-104711

Annotation 2019-04-30 104826

Dylan10126 commented 5 years ago

For what its worth, I cant reproduce this behavior via Parallel/angrylion, however that doesn't really mean much all things considered

m4xw commented 5 years ago

Try the GLideN64 branch, the mupen_next branch (the bot uses) is heavily outdated. But it should work there too. Do you use up2date nvidia drivers? Also just to make sure, you tried restarting the game?

Dylan10126 commented 5 years ago

Was originally running the 9f92565 branch. Tried the 72cee5e (GlideN64) and on a whim, the 73ca3a8 (main) branch for no difference.

Updated to Nvidia driver version 430.39, no difference.

I noticed the issue occurs more frequently in more demanding places. Mostly areas with a lot of actors causes this behavior, otherwise it acts normally. Its not related to fps, as I always maintain a solid 60

m4xw commented 5 years ago

I will need a RA debug log. Seems to be something with your setup. Def. doesn't happen for me on a bunch of platforms.

Dylan10126 commented 5 years ago

debug.txt

m4xw commented 5 years ago

Thats not a debug log. You need to use ./configure --enable-debug

Dylan10126 commented 5 years ago

Using that command flings me back to the help message, only letting me launch a verbose log or a messages log

m4xw commented 5 years ago

Just build RA using ./configure --enable-debug, then just do ./retroarch --verbose

Dylan10126 commented 5 years ago

retroarch-log.txt

m4xw commented 5 years ago

That doesnt look too bad, can u try without texture enhancements?

Dylan10126 commented 5 years ago

Disabled texture enhancements, no difference Went to default 4:3 ratio, no difference

I'm still getting that texture state usage warning in the debug. Also it really didnt like it when I was running the debug in the cmd the first time around. Performance had a minor dip, but what was once an every couple of pauses issue was now constant

m4xw commented 5 years ago

Does it happen without high res textures too? I can actually see the color buffer in the background, if i have to make a guess i'd say its driver related, doesn't happen for me on my GTX 1060 tho, GTX 780 or Switch. I use a older driver tho..

Dylan10126 commented 5 years ago

Yup. debug errors and all

I'm moving to a 2060 Ryzen build in a few days, so I can always revisit it. That being said I still cant trigger it in Parallel for the life of me. Been using the main room of the water temple as a test area for both libs.

What driver version are you running? I can try doing a rollback

m4xw commented 5 years ago

Well Parallel has a entirely different renderer. It's completely sw rendered, so its not surprising. I am on 417.22 (quite old)

Dylan10126 commented 5 years ago

I just came from 399.xx before you made the suggestion to update

m4xw commented 5 years ago

Thats double weird

m4xw commented 5 years ago

I will investigate if i can repro.

Dylan10126 commented 5 years ago

Not sure if it matters, but as for using save states with this issue, I have had mixed results. Utilizing a save/load state cycle with the framebuffer messed up, I have had situations where it would stay the same, or it would fix itself on the load and be normal, or id have it spit out this fun little image

Legend of Zelda - Ocarina of Time-190430-132948

m4xw commented 5 years ago

Yea that def. looks like fbemu off, even tho it shows its on.

Dylan10126 commented 5 years ago

With fbemu off, the spot where link would be in the equipment menu never renders correctly (like the screenshot above).

with fbemu on, I never once had that area go wonky for me outside of using save states with the fb already messed up.

Dylan10126 commented 5 years ago

with fbemu on

Legend of Zelda - Ocarina of Time-190430-135717

Dylan10126 commented 5 years ago

The exact same image as above, with same settings, but with a save state/restart/load state

Legend of Zelda - Ocarina of Time-190430-140001

Dylan10126 commented 5 years ago

Id also like to point out that with Color to RDRAM set to both ASync and Sync, i'm still getting randomized crashes. Had 7 within a 6 hour period. Audio still plays fine, but everything else locks up. State cycling does nothing, and state cycling with off/on the rom in between makes the music play fine, but the image cant render, giving me a white screen

m4xw commented 5 years ago

You sir, need a priest. 👻

ghost commented 5 years ago

Capture6

SuperMeatBro commented 5 years ago

just saying that i also have the freezing issue and the rainbow background, but sometimes it is rainbows and sometimes not. also the freezing seems to occure after one hour or two of gameplay.

m4xw commented 5 years ago

@SuperMeatBro specs? incl. driver versions.

SuperMeatBro commented 5 years ago

so i'm on latest bot build of Mupen64Plus Next OpenGL 1.0 73ca3a8 on retroarch 1.7.7 windows 10 64 bits Intel Core i7 7700K 4.20GHz NVIDIA Geforce GTX 970

I just tried the game right now and about the rainbow bug, it always does it in market (adult link) and everything is fine if i pause front of the temple of time, (i guess adult or child in the game doesnt matter) My framebuffer is at True.

also i use GL driver.

Dylan10126 commented 5 years ago

I find the rainbow bug is tied to the number of actors on the given screen. Whenever I am in a populated place (either friend or foe), it occurs more frequently then when i'm in an isolated place. Try switching Color buffer to RDRAM to Sync. I found it helped abit, but it could just be placebo.

Also, just an update on my end, i'm still experiencing it after moving to a 2700x and RTX 2060, clean install of Windows

As for freezing, try switching your CPU Core to cached interpreter. I haven't experienced a freeze using that setting

m4xw commented 5 years ago

@Dylan10126 Can you try the GLideN64 branch again, but don't use a savestate (unless you did that before)?

SuperMeatBro commented 5 years ago

just tryed with the new build, it doesnt seems to do the rainbow bug anymore, but sometimes it put a white screen in the background when you pause.

m4xw commented 5 years ago

@SuperMeatBro does the white screen stay or does it just temporarily pop in

SuperMeatBro commented 5 years ago

ok i just tried again to see if it was just temprorary but the background white screen stay until i unpause @m4xw

m4xw commented 5 years ago

@SuperMeatBro did you load from a savestate? If so, try not and make a new.

SuperMeatBro commented 5 years ago

@m4xw nah i never use savestate i play with retroachievement on hardcore mode.

Tasosgemah commented 5 years ago

Bumped to this bug today and now i see this thread.

The older Mupen Core has the "rainbow" effect in the background when in the pause screen. Newer "next" core has a white screen.

You can always reproduce this in the Market area (while adult) but you have to walk around a bit until there are 3 zombies on screen.

I have a dual boot Win7/10 system with older Nvidia drivers on the Win7 partition and it happens in both OS.

m4xw commented 5 years ago

@Tasosgemah Is that reproduce-able on standalone?

Tasosgemah commented 5 years ago

@Tasosgemah Is that reproduce-able on standalone?

No, not on PJ64 + latest GlideN64 (release 4). I cannot reproduce the bug there.

I couldn't test Mupen standalone though because i don't have a compatible save to get to adult Link, tried using the one from the core but it doesn't read it.

Another difference with the Menu screen between the standalone and the core (both cores actually, the old mupen and the "next") is that whenever i press start to bring the menu screen, the cores don't feel as graceful. There is a brief "snap" of a black frame before the menu comes in. On the standalones (both PJ64 and Mupen) i press start and the menu just comes smoothly, no black frame snapshot in-between.

I think the N64 takes a snapshot of the screen and brings the menu on top. But normally this is hidden and it works as intended in the standalone GlideN64 while in the cores it almost looks like it takes a photograph and then puts it on top of the graphics.

ParaLLel/angrylion also doesn't have any of these problems.

nick-michael commented 5 years ago

Just stumbled across this thread and wanted to add that I am also getting the crashing issue where the game locks up but the audio keeps playing.

It happens on my PC running windows 10, GTX 1070 and i5 6500 but it also happens when playing on my Nintendo Switch. I haven't seen a pattern really of what could be causing it, but I remember last time it really wasn't happy in the fire temple and I crashed about 10 times in the space of half an hour. I'm not sure if the same thing happens on other games, I haven't really played many to be honest, I tend to just play OoTR nowadays

m4xw commented 5 years ago

Will need a crash report for Switch, weirdly enough I don't get any crashes. Dont really have time for some longer playsessions, so that might be it. Go Help > Send debug info (both switch and PC) and give me both ID's. Also show me all core options for both platforms that u use. @nick-michael

Tasosgemah commented 5 years ago

Just stumbled across this thread and wanted to add that I am also getting the crashing issue where the game locks up but the audio keeps playing.

It happens on my PC running windows 10, GTX 1070 and i5 6500 but it also happens when playing on my Nintendo Switch. I haven't seen a pattern really of what could be causing it, but I remember last time it really wasn't happy in the fire temple and I crashed about 10 times in the space of half an hour. I'm not sure if the same thing happens on other games, I haven't really played many to be honest, I tend to just play OoTR nowadays

For the crashing issue try changing to pure_interpreter instead of recomplier in the core options.

nick-michael commented 5 years ago

Yeah it's probably a config change that'll fix the issue but I've been away for a couple of weeks and get back today so I'll try and get some logs over this week/weekend

^ Just a quick update to this comment - I was planning on doing an OotR race this weekend but ended up doing a multiworld instead so had to use bizhawk (which afaik uses the old mupen, and also doesn't seem to have the crashing issue). I did play on my switch for a few hours over the weekend but didn't crash, so still hoping to get something over to you at some point

XKCorp commented 5 years ago

I encounter the same problems (rainbow colors, white screen, freeze with music continuing) using the ParaLLeXT core (plugins Angrylion/CXD4). I didn't have these bugs using the legacy ParaLLel N64 core.

I tried to switch the CPU Core option to "pure_interpreter" but the bugs are still there.

I can provide 2 savegames files to reproduce the rainbow colors and the white screen/freeze.

BParks21 commented 5 years ago

I just get the white screen FB emulation on and the slight delay in the transition.

Rikenal commented 4 years ago

My pause screen comes up fine (little to no delay?) and I never get rainbow garbage. I do get random freezes though. They're (afaik) always when I enter an area