-
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
Saving the current frame's status to initAddr #5245
Conversation
@@ -1364,6 +1364,9 @@ u32 sceMpegAtracDecode(u32 mpeg, u32 auAddr, u32 bufferAddr, int init) | |||
|
|||
avcAu.write(auAddr); | |||
|
|||
// return 0 in first call, and then return 1, as PSPSDK mentioned | |||
Memory::Write_U32(ctx->avc.avcDecodeResult ? 1 : 0, initAddr); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Please add a memory check of initAddr,it cause invalid address in Pacman World 3
edit,I am doing JPCSP trace log
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
JPCSP trace log:
seem it return 0
https://gist.github.com/sum2012/7f1fbc9a302e2be32d9f
Your change log:
https://gist.github.com/sum2012/de24d24fea30cb6fd226
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
i'm thinking that parameter is indeed an address ? as i found it only return either 0 or 1 in many games .....instead of returning something of address format .
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Can you explain more clear the code ?
If ctx->avc.avcDecodeResult = 0 or 1 in both case do what ?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I do not think it is an address. Are you saying that Killzone passes an address here?
-[Unknown]
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I also think it is not address .Killzone also return 0 here .
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Probably we should set it like this in sceMpegAvcDecode()
Memory::Write_U32(ctx->avc.avcFrameStatus, initAddr);
Just tested with Ore no Dungeon .It is not hanging now and get passed to title screen with this commit. |
Saving the current frame's status to initAddr
Referencing
https://code.google.com/p/jpcsp/source/browse/trunk/src/jpcsp/HLE/modules150/sceMpeg.java#2229
Fixes #5226