Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Strange 'invalid mbx id' issue? #10891

Closed
Soyim opened this issue Apr 8, 2018 · 6 comments
Closed

Strange 'invalid mbx id' issue? #10891

Soyim opened this issue Apr 8, 2018 · 6 comments

Comments

@Soyim
Copy link

Soyim commented Apr 8, 2018

What happens?

The game CLADUN: This is an RPG! has a door called the Wireless Gate where you can create a Co-op room using Ad-hoc. On a normal PSP you could also use this to play solo missions without anyone joining. After starting it solo, the game freezes and the audio is gone on the 'Establishing connection' screen with the following message in the Debug Console:

user_main E[SCEKERNEL]: HLE\sceKernelMbx.cpp:510 sceKernelPollMbx(-1, 09fff3c0): invalid mbx id

Also, if you try to close PPSSPP, an error message appears saying 'Wait for EmuThread timed out. Try to continue?' and then it just closes.

I also tested with another computer as if a second player joined the room (which worked), but the same issue happens on the host machine when you try to start (no issues on other computer).

What should happen?

I'm in a PAL region so have no idea about the other versions, but basically, no issues like this should happen and you essentially get to choose the map you're going to do.

What hardware and operating system are you running PPSSPP on? GPU might matter if it's a graphical issue.

PPSSPP Version 1.5.4
Windows 10 x64
AMD Phenom(tm) II X6 1100T Processor 3.31 GHz
AMD Radeon HD 6900 Series
32 GB of RAM

NOTE: I also tried with one of the latest revisions of PPSSPP and still had the same problem.

@Double-0-seven7
Copy link

Kingdom Hearts BBS also got a similar issue with sceKernelMbx if you start multiplayer...

@anr2me
Copy link
Collaborator

anr2me commented Oct 31, 2020

I've checked Cladun logs, seems like AdhocMatching timings issue when i tried with 2 players, similar to Def Jam Fight For NY, but i suspect there are also event issue (events that aren't supposed to be triggered after certain state) on Cladun.

However, I was able to start solo in co-op game just fine (i only tested it up to entering 1F on the first dungeon, but it should already passed the 'Establishing connection' screen), tested with both localhost and myneighborsushicat.com as AdhocServer IP address.

I didn't experience these freezes you mentioned on solo co-op, even on 2 players when one of the player stuck at 'Establishing connection' screen, it will eventually shows grayed "Disconnected" dialog box (after a few seconds) and can go back to multiplayer menu without issue.

I also didn't experience the 'Wait for EmuThread timed out. Try to continue?' when closing PPSSPP, it was able to shutdown pretty fast.
The last time i had this kind of issue was because CaptureDevice.cpp sometimes taking too long to shutdown (eventhough i didn't play any games that use camera back then), but haven't experiencing this kind of issue any more lately (it's been a month or two i think)

PS: Tested with v1.10.3-1044-ga4a0b4ba0 Windows 32bit

Regarding the sceKernelPollMbx error messages, it shouldn't have any impacts to multiplayer it self at least on LAN, since Adhoc wasn't designed for internet (the game devs might not even tested their adhoc code over the internet), so their reliability are just by luck, so i don't care much for things that wasn't suppose to work by design (ie. internet play).
Based on my test with simulated 'bad' connection like the internet, most of the issue were related to packet loss instead of latency, and the only way to solve this is by using a reliable VPN (not all VPN are reliable tho) which advertised able to reduce latency and lost packets (probably at the cost of extra latency to detects and re-transmit lost packets), but for performance reason probably using parsec could be better.

Anyway, back to sceKernelPollMbx, during multiplayer Mbx are usually used to communicate between network thread and the main thread during matchmaking/lobby to detects and informs about player's changes (ie. number of players), but after the mission started it's no longer used (ie. Deleted) thus resulting an error when used in the network thread loop, because some developer like to ignore the validity of the Id and only check the error code if it contains a useful data or not and skipped if it was an error thus spamming the log console.

PS: Star Wars The Force Unleashed also have the logs spammed with these sceKernelPollMbx errors when multiplayer mission started.

@Double-0-seven7
Copy link

Double-0-seven7 commented Oct 31, 2020

@anr2me you say its not suppose to work by design but ProOnline was created to be able to play online hence the online part.
Anyway the game (speaking Birth By Sleep here) works fine without issues on 2 other methods I know which are Xlink Kai and Adhoc party and they work fine there with no issues on high lantency.
Thats why I think there is an issue here with how PPSSPP handles it.
I am thinking opening an issue about it with detailed logs because it makes the game almost unplayable at times even on low lantency like 90-100 ms.

@anr2me
Copy link
Collaborator

anr2me commented Oct 31, 2020

If you want to compare... you should compare Xlink Kai vs Adhoc Party vs PPSSPP+VPN to be on equal term, because current PPSSPP (with the exception of Amultios) are communicating directly over the internet without any kind of tunneling that can make the connection more reliable.

Anyway, it's out of topic, because the main issue with Cladun is AdhocMatching issue and have nothing to do with sceKernelPollMbx, it will be fixed later when i had the chance to test their behavior on a homebrew.

@anr2me
Copy link
Collaborator

anr2me commented Nov 3, 2020

On my test Cladun multiplayer should be fixed with this PR #13617

@unknownbrackets
Copy link
Collaborator

Games can, and do, sometimes attempt to use kernel objects with an invalid ID, such as -1. It's possible for an emulation bug to cause this, but it's also perfectly possible for a game bug to cause this. JpcspTrace can be used to log errors on a real PSP. I know some people who imagine games are always 100% error free have been very surprised to see errors in the logs from a real PSP.

Since it sounds like Cladun is fixed, I'm going to close this.

-[Unknown]

@unknownbrackets unknownbrackets added this to the v1.11.0 milestone Apr 3, 2022
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

5 participants