-
Notifications
You must be signed in to change notification settings - Fork 2.2k
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
Stuck issue with Mega Man Maverick Hunter X #3318
Comments
Could anyone take a look at this? |
Don't have the game, a log at least might help. -[Unknown] |
So just to clarify, the issue here is that it doesn't pass that screen without you pressing a key, right? Did this work previously, and stopped working, or it never worked? -[Unknown] |
Tested repeatedly and seems this issue is fixed in latest build. |
Alright this issue is still there in latest build. |
If this worked at one point and was broken again, can you find which build it last worked in and the first build it stopped working in? -[Unknown] |
the closest i could get is it worked in ppsspp-v0.8-91 and stopped in ppsspp-v0.8.1 |
Hmm, maybe it was video related (sorry forgot to post that) - could be fixed with recent video improvements. Any change here? -[Unknown] |
I picked up this game recently, and no, it's still "hanging" on accessing until the user presses start, when first booting the game.
|
Does it play the video through and then stop, or does it never even play the video? If you mark "sceMpeg.cpp" with the following after the includes: #undef DEBUG_LOG
#define DEBUG_LOG NOTICE_LOG And also scePsmf.cpp the same for good measure, is it continuing to call sceMpeg/scePsmf syscalls while hung, or has it stopped? -[Unknown] |
It's supposed to play a 2 or 3 second video and then show the Capcom logo, but it never displays. It hangs on Accessing, and then when the user hits start, it immediately skips to the Capcom logo as if it never happened. While it's hanging, it doesn't continue to call other mpeg/psmf functions, it seems. Here's a video that happens to depict the little video it's supposed to show, it's within the first 2-3 seconds: http://www.youtube.com/watch?v=Ld6L5feOZ_8 |
Tested it on JPCSP as well .Also need to press SPACE then will show up CAPCOM logo and in-game . |
Yeah, the other videos work fine, but the video with blue binary numbers before the Capcom logo doesn't play, so the issue isn't resolved. |
Correct. |
However i still wonder why we need to press SPACE in order to pass on .Not too sure how this do on real PSP ... |
Because one of the MPEG functions always returns 1200 something packets remaining, so the game thinks the movie hasn't ended. On the real PSP, the video plays and then the Capcom logo displays. The video can be skipped with start, which is why the game even works on PPSSPP. |
But i did try to press start button , it didn't work .Only keyboard SPACE button let it pass on . |
..Space is the emulated PSP's start button by default. |
Oops I see as I keep pressing start button on my xbox 360 device but didnt work |
Hm, should work the same, check your control mappings. |
I did try this start button on XBOX 360 device , it works okay for other games but not this one .Only SPACE works |
Huh, that doesn't make much sense.. |
I think it is this own game specific issue probably. |
JPCSPTrace log: @unknownbrackets |
Do note that because the call can flood logs, we don't log duplicate sceMpegRingbufferAvailableSize return values. I had a lead at one point on what this might be - I can't remember if it was from a log or something, but I think sceMpegRingbufferPut rejects invalid packets, and we don't. Not sure if that would actually fix this. Anyway, you can see in the log that it returns an error sometimes: -[Unknown] |
Thanks @unknownbrackets |
FYI, you can install both at the same time. I have 2008, 2010, 2012, and 2013 I think... haven't really used 2008 for a while, should probably uninstall it... -[Unknown] |
@unknownbrackets This commit work but make other games have problem |
Hmm, interesting. Well, there are probably other rules to how exactly it returns the error. I think the best way to understand it will be using a PSP and sending different data at it to see when it responds with the error code. -[Unknown] |
The versions around 0.9.1-716-g86caa70 may working sometime. |
@unknownbrackets I give log to jpcsp. |
With some testing, I've determined that this behavior varies by mpeg version. The behavior here changed in version 1.05. Versions 1.01 - 1.04 all exhibit this behavior, but I've only tested 1.05 and 1.10 for the latter. After 1.05, it seems the mpeg library was always part of firmware. But it doesn't seem the sdkver affects this; I think all versions on firmware don't do this validation. Based on my tests so far, sending even one invalid packet at the start is enough to get the error code back. But it can also happen with valid packets - it's all about alignment. If I have a buffer of 512 packets, and it's empty, I can add up to 1024 packets (yes, really), no error. It will wrap around and fill the buffer twice. No errors. I haven't checked decoding, so it's either the offset into the ring or # of packets, but if that offset + the number I add exceeds 2 * capacity, it generates this error pretty consistently (regardless of size.) Edit: Hmm, there's more interaction here with the # of packets returned. Maybe it's actually when it hits a boundary in some way... Note that, it still calls the callback, and still reads in the packets. I can read in 2048 packets, and it'll ask for all of them. It's only a problem if the callback actually (with multiple iterations, of course) returns >= 2 * capacity - offset. Anyway, I'm not sure if this latter behavior is important here, although it's the more interesting one. What seems to happen in this log is that there's space, and it rejects the packet. I can reproduce this one reliably by adding a single garbage data packet. As such, I believe jpcsp's behavior is incorrect. FYI @gid15. -[Unknown] |
It completely hangs now with 1.2.1 |
@sergiobenrocha2 Do you mean start button cannot skip ? |
according to my test, start button can not skip..., complete stock right there. |
Press "space bar" for keyboard for pc |
it will immediately stock when it show access. press space bar is not work. event esc is not working. |
What is your os ? windows , linux |
linux |
So it don't work for linux. |
OK, thanks |
Exact same thing is happening on the libreto version for the raspberry pi |
The Pi thread on the forums mentioned that SDL only polls inputs on video updates, which means SDL-based version including Linux and Pi can never register the button press to skip the broken video. |
When we've got garbage data, this has to stay incorrect. Without this, Megaman X gets confused when playing its video (because it enqueues garbage packets.) See hrydgard#3318.
When we've got garbage data, this has to stay incorrect. Without this, Megaman X gets confused when playing its video (because it enqueues garbage packets.) See hrydgard#3318.
v1.2.2-658-gce8d2be-windows-amd64 good log: |
I have a similar issue on Openemu (core version 0.9.9.1) on Mac. It tells me about the autosave function and then goes to accessing, but it's just a static picture. How could you help me with this? (I'm not that good with changing code, and Terminal doesn't work on my mac.) About the space/start thing, start is mapped to return on my Mac. |
There's no workaround for SDL, afaik. This has been fixed in a new version, so v0.9.9.1 will forever not work. It will be in something like v1.3 (which hasn't been released yet.) If you want it now, you need to use a git build (check the downloads page.) -[Unknown] |
Reported form http://forums.ppsspp.org/showthread.php?tid=384&pid=41935#pid41935
when run this game it freezes at ACCESS page, press start button can continue it.
The text was updated successfully, but these errors were encountered: