Giter Site home page Giter Site logo

Comments (7)

Jamiras avatar Jamiras commented on June 29, 2024

I can't reproduce this at all with the Mupen64plus-Next core. I can reproduce with the ParaLLEl core, but only if another game was previously loaded. Given two copies of Mario 64 in my history (one for each core), loading one, then the other has the following results:

  1. Mupen64plus-Next > Mupen64plus-Next : seems fine
  2. Mupen64plus-Next > ParaLLEl : rendering issues, video failure on screenshot
  3. ParaLLEl -> Mupen64plus-Next : seems fine
  4. ParaLLEl -> ParaLLEl : rendering issues, video failure on screenshot.

Based on the video failures, and the user's comment that this doesn't happen in 1.5, I'm assuming that this is related to #367. @Jcw87 - Can you take a look?

image

from ralibretro.

BoomEX-UK avatar BoomEX-UK commented on June 29, 2024

Thank you Jamiras. Interesting you mention the game switching as once I have loaded a game, if I select another from the recent menu or press Load Game.. RALibretro will crash trying to load it.

This was also not an issue for me on v1.5

from ralibretro.

Jcw87 avatar Jcw87 commented on June 29, 2024

I'm not able to replicate any issues with taking screenshots. I do see a few issues with changing games, but only when the ParaLLEl core is involved. I am able to replicate the glitchy mario head, but annoyingly, it crashes whenever RenderDoc is monitoring it.

I don't really have the motivation to do a deep dive into this issue right now. I've been spending every moment of my spare time playing Tears of the Kingdom. If you need a quick fix, reverting #367 does seem to resolve these issues. You can always bring it back later when I find the time to fix it.

from ralibretro.

Jcw87 avatar Jcw87 commented on June 29, 2024

I looked at this yesterday. All that I've been able to determine is that something messes up one of the OpenGL contexts.

As part of the #367 changes, RALibretro creates 2 OpenGL contexts. One for itself (_raContext), and one for the loaded core (_coreContext). While running ParaLLEl, if RALibretro tries to bind the framebuffer or texture on the _coreContext, it fails with GL_INVALID_OPERATION. Binding the texture (which is shared between contexts) on the _raContext still works, so I'm pretty sure that the _coreContext is breaking, and not the framebuffer or the texture. It also seems that the ParaLLEl core needs to be running for long enough before this happens. In Mario 64, everything is still fine on the opening logo, but as soon as the screen with the Mario head loads, it breaks. Unfortunately, I still don't have any idea what is causing it.

I did manage to replicate the screenshot issue, and I can implement a fix for that. But the underlying issue is still a mystery.

Edit: maybe the context isn't broken at all. Maybe the ParaLLEl core is causing an error on something else, and doesn't clear it. I'll have to check that later.

from ralibretro.

BoomEX-UK avatar BoomEX-UK commented on June 29, 2024

Thank you for the update and continuing to look into this. I appreciate how busy you must be. If you are able to find a fix then it would greatly help the RALibretro Dev process on N64

from ralibretro.

Jcw87 avatar Jcw87 commented on June 29, 2024

The 2 pull requests I just made should resolve most of the issues reported here. I think the only one remaining is the glitchy mario head. I did manage to get RenderDoc working (it was crashing in RA_Integration.dll, so I just deleted it). My only lead so far is a difference on the framebuffer.

image

from ralibretro.

Jcw87 avatar Jcw87 commented on June 29, 2024

Found the cause, added the fix to one of the existing PRs.

from ralibretro.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.