Giter Club home page Giter Club logo

Comments (8)

 avatar commented on July 20, 2024

Mmm, I left the code paths as they were, mostly. I'll have a look at it.

from ppsspp.

Darth1701 avatar Darth1701 commented on July 20, 2024

See also here: http://forums.ppsspp.org/showthread.php?tid=284
for similar error in sceIoWaitAsyncCB

from ppsspp.

 avatar commented on July 20, 2024

Well, I'll restore the changes to their previous state then. Seems that I broke async functions. Can you tell me please if you got the same error back when it worked?

E[HLE]: ERROR - sceIoPollAsync waiting for invalid id 32

What's the emulator behaviour? Does it stop, close suddenly? It just seems strange to me that the little change I did could have something to do with the error message (If it crashes, it would be because I omit one thing it should be there)

from ppsspp.

hrydgard avatar hrydgard commented on July 20, 2024

Don't revert, the change is mostly good. Fix the bugs you introduced instead, I think unknownbrackets has the right diagnosis in his comment - you're throwing away return values that were previously set with RETURN in cases where a HLE function calls another one that you have now converted to use "proper" returns.

If you can't figure it out, reply here and I'll do it for you.

I hope to find a way to reduce these pitfalls :P

from ppsspp.

 avatar commented on July 20, 2024

I understand, the thing is to get an elegant fix. Maybe just returning the value the inner fuction directly in the call... I think I should've called the wrapped function insted, but since the array is not accessible (to do the call with a reference to it), I thought it would have been ugly to use the templated call directly. I have 2 options:

Return directly the value once the function is called.
or
Use the wrapper directly.

An stupid mistake indeed.

It's not really a pitfall. I should have paid more attention.

from ppsspp.

hrydgard avatar hrydgard commented on July 20, 2024

I think the whole fix is basically, in sceIoOpenAsync:

RETURN(sceIoOpen(....));

instead of

sceIoOpen(....)

which throws away the return value.

Unlike the other async functions, it seems sceIoOpenAsync should return the UID directly.

from ppsspp.

 avatar commented on July 20, 2024

I've done just that. I'm very bad explaining things. Really bad.

from ppsspp.

hrydgard avatar hrydgard commented on July 20, 2024

Yes, I didn't see that you had actually done the fix before I posted :)

from ppsspp.

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.