-
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
Fix corrupted keyframes in several games #5044
Conversation
Hmm, I'm not sure about the way this sets the status back and stuff... -[Unknown] |
I'm not pretty sure as well .Anway , it may help #2705 |
How much testing has this got with other games? Does it match the unit tests (if it's covered)? |
I think the real issue is that sceMpegGetAtracAu and sceMpegGetAvcAu should (sometimes?) return PSP_ERROR_MPEG_NO_DATA for the first couple of calls, but I don't think that should affect the init value. From what I understand, returning PSP_ERROR_MPEG_NO_DATA in sceMpegGetAtracAu can fix Obscure: The Aftermath, but the trick is finding the correct case for it to. -[Unknown] |
This seems to fix Project Diva 2nd's corrupt keyframes as well. |
Again, I don't think this affects the initAddr. I do think the first few calls to sceMpegGetAtracAu return that error though, but I think there's more to it. -[Unknown] |
This commit should fix the corrupted keyframes in #4725 as well . |
@hrydgard , okay to merge for this one ? |
It looks a little sketchy but alright, let's try it. Will revert if it breaks anything. |
Fix corrupted keyframes in several games
Ugh this is terrible. Someone please tell me the status bar will be fixed soon. It makes playing on Iphone very difficult and distracting. |
@Cavad, I don't understand your comment. What status bar? What does it have to do with this fix? |
Yep. After updating my emulator today on my Iphone 5S the status bar with time and battery life and etc. keeps itself in the upper part of the screen. Before this update that didn't happen and emulator hid that bar itself. |
Still is not likely to have anything to do with this commit in particular, must be one in between. I have no idea which one though, haven't seen any iOS-related changes recently. Either way iOS is not an officially supported platform so we'll just have to hope that the people maintaining the port will figure it out and fix it, I can't. |
Okay, so do we revert or not? That is the question. Fixes some things, breaks some things, as is usual with this type of not-properly-unit-tested changes. |
Well, if it's actually stopped games from booting/working at all, I'd say the solution is to revert it; corrupted keyframes are better than breaking games.. |
I thought I read somewhere that this change helped some game work, but I'm not sure. My basic assumption on how this should actually work is that "mpeg no data" probably/maybe ought to be returned when the ringbuffer doesn't contain sufficient data to produce a frame. For example, let's say games that fill 4 packets at a time expect to get no data the first few times, whereas games that fill 32 packets at a time might expect to get frames right away. Except that's just broad strokes. But I'm not really sure. Possibly it's the meaning of "initAddr" instead (even if the never-been-wrong-before PSPSDK says otherwise), but all this needs a lot of testing. -[Unknown] |
Revert #5044 and set ctx->avc.avcDecodeResult = 1
No description provided.