-
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
Marvel Ultimate Alliance 1 video does not display #9852
Comments
Based on the sequel, this probably means hooking some memcpy function. You'd probably need to set a breakpoint to catch it: I'm guessing this works properly (if extremely slowly) in the software renderer. -[Unknown] |
Hello, as i've never done that i am unsure if i did it right, i looked into the comment you linked and tried to obtain the "breakpoint" with the memory address you asked in the other thread. Hopefully it is correct and here is the screenshot of the (as i can't seem to be able to attach the screenshot directly despite it's a jpg) breakpoint |
That looks very promising - that's probably exactly it. Now if you go to memstick/PSP/SYSTEM/ppsspp.ini (while PPSSPP is not running) and check for: FuncHashMap = False Change it to: FuncHashMap = True Then, start PPSSPP and get to this breakpoint just the same as before. Once you find that same spot (the sv.q etc.), right click on it and select "Rename function...". It will probably have something like "z_un_12312312", if so change it to "marvel1_memcpy". If it has a different name (like something that already has memcpy), post that name here instead. Another thing that would help is to scroll up to the top of the yellow background (it alternates between colors), click the first line, hold shift, and scroll with the mouse wheel to the end to select the entire function. Once it's selected you can right click and select "Copy Instruction (Disasm)", and paste that here. If it was z_un_, hit OK and then go to Emulation -> Stop (make sure not to just quit PPSSPP directly.) After emulation stops, you can quit. Back in memstick/PSP/SYSTEM, you should see a new file - knownfuncs.ini. Search for "marvel1", you'll see something like this: 7843e73b47zd3ad1:360 = marvel1_memcpy Copy that line and comment with it. That'll tell me what I need to know. Sorry, I know that's a few steps, but with that we can make the video play correctly. -[Unknown] |
Thank you for the detailled instructions, i hope i got it all right, After right click on the line and renaming marvel1_memcpy ( the original was z_un_08c0deb4 ) marvel1_memcpy:
pos_08C0DF00:
pos_08C0DF04:
pos_08C0DF20:
pos_08C0DF30:
pos_08C0DF78:
pos_08C0DF90:
pos_08C0DF94:
pos_08C0DFAC:
pos_08C0E040:
pos_08C0E048:
pos_08C0E064:
pos_08C0E074:
pos_08C0E09C:
pos_08C0E0B8:
pos_08C0E0DC:
pos_08C0E100:
pos_08C0E108:
pos_08C0E140:
pos_08C0E178:
pos_08C0E1A4:
pos_08C0E1DC:
pos_08C0E200:
pos_08C0E208:
pos_08C0E228:
pos_08C0E26C:
pos_08C0E2A4:
pos_08C0E2CC:
pos_08C0E304:
pos_08C0E320:
pos_08C0E35C:
pos_08C0E38C:
pos_08C0E3A4:
pos_08C0E3D8:
pos_08C0E414:
pos_08C0E440:
pos_08C0E458:
pos_08C0E478:
pos_08C0E4BC:
pos_08C0E4F4:
pos_08C0E520:
pos_08C0E558:
pos_08C0E570:
Looking into the newly created , i found hopefully i didn't made a misclick anywhere |
Not tested - but should make videos visible in Marvel Ultimate Alliance 1. See hrydgard#9852.
Not tested - but should make videos visible in Marvel Ultimate Alliance 1. See hrydgard#9852.
That looks right. The latest git build - v1.4.2-365-g641c5f36f - should contain hooks for that function which may make the video work. -[Unknown] |
Hello, I downloaded and just tested on ppsspp-v1.4.2-365-g641c5f36f-windows-x86 But it's not yet fully working unfortunately as there's some kind of alternating for the visuals between video and black screen every half or lower of seconds, basically the video flickers between the actual video and the black screen. I tried turning on/off nearly all the video settings without any positive/negative improvement Thank you very much for your work. |
Managed to get some time today to complete the whole first mission and was able to see the next video before the tony stark hub. So far it looks good, i do not close this report as i'm unsure if you consider the video only working correctly with "Simulate block transfert effect" disabled being acceptable, so i'll leave it to you. Thanks anyways. |
Hmm, if you turn that off in a previous version, before that recent patch, does it help? This could mean that we're detecting some operations which is clearing the buffer, but not properly detecting an operation that is uploading the video to it. It might work fine, but ideally, it'd be best to make as many games as possible work on default settings. -[Unknown] |
Before your fix, turning "Simulate block transfert effect" off wasn't doing anything to improve the problem with the videos in that game, at least not in the versions of PPSSPP i have regularly used, they were always black screen regardless of any setting. It's only since your fix that turning it off fixed the video completely. |
Interesting. In theory, my change should do nothing when "Simulate block transfer effects" is disabled. What I did was add more code to the block transfer effect simulation code. So given that it did help, it may mean that it's something to do with flushing (maybe the game isn't switching render targets when drawing the video), or it's just invalidating a texture. Can you try one more debugger? It's the GE debugger. There's a wiki about it: What I'm interested in is: do you ever see the video on the smaller left side preview in the GE debugger, if you click "Step Prim" during the video? Or does it only ever show on the right side, or not even show on the right side? -[Unknown] |
Something odd to add, without "Simulate block transfer effects" disabled is that the flicker between the actual video and the black screen occurs really fast, less than half a second for it But for the intro video, the flicker is slower : the correct visual is appearing for half a second, then 2 or 3 second of black screen then the visual for half of a second then 2 or 3 second of black screen etc... i tried the GE debugger, set "Step Frame" during the intro video , it's a black screen and it looks lik e it's only on the left side here's screenshots of the result for all the GE Debugger tabs After "Step Prim" the result is red and still only on left side, and for all the GE Debugger tabs After that as mentionned in the link, i pressed "Step Prim" a bunch of time but the result is always red note : all of this with "Simulate block transfer effects" enabled as it's when this video flicker between visual and black screen happens |
Hi, I'm having the same problem in version 1.6.3 on android, just black screen and sound, anyone can help me? |
@JoaoVitorApolinario In this game specifically? With default settings? |
Yes, just in that game, with the default settings. I tried it on windows, ppsspp version 1.6.3, and the same problem happens. |
I am having this same issue on android 1.8.0 from the play store as well as v1.8.0-440-g734658b80. I tried both backends and with simulate block transfer on and off on both. I get audio for the videos but no visuals for any of them. |
I just tried v1.8.0-628-g07a5adc8e and videos still do not display normally, audio plays with a black screen. I noticed though that if you bring up the menu while a video is playing and switch between buffered rendering and skip buffer effects and then resume it will display a frame of the video and then goes black again. You can repeat this over and over and see a frame of video after each switch. |
Just tried ppsspp-v1.9.3-981-g288fe3ade on android 9 (samsung s8, sd835 version) and videos still do not display. Sound plays fine. I tried vulkun and opengl backends. If you change buffered rendering on and off while a video is playing you get a frame of picture and then back to a black screen again. |
v1.10.3-1682-gc251d69ea same isssue. |
Ok, that's interesting, we're missing the copy to display somehow. Should be fixable. Targeting 1.12. |
Maybe the signature of the func is different in other regions? Or maybe there's some issue with #9915 - it was always only based on the pasted assembly. -[Unknown] |
From a quick look it appears there are 3 versions released. I had been using an original usa copy and it is straight black screen with audio only. I tried the other 2 versions (usa greatest hits and eur) and I get audio and video mixed with black frames so it is like a flickering video. Better than no video but hard to watch. This was on v1.10.3-1718-gc1fa4958d. Win x64. D3d11 and vulkun. Buffered rendering on and off, was the same with both. |
In the jpcsp commit b40c65dc5596b25f1c82556d80f2dc42398afd05 |
jpcsp don't require mem upload so that that change is not usage |
I have set a breakpoint at 0x04044100 for 0x100 bytes
Back in memstick/PSP/SYSTEM, you should see a new file - knownfuncs.ini. Search for "marvel1", you'll see something like this: Anyway disasm marvel3_memcpy:
pos_08C0DD2C:
pos_08C0DD30:
pos_08C0DD4C:
pos_08C0DD5C:
pos_08C0DDA4:
pos_08C0DDBC:
pos_08C0DDC0:
pos_08C0DDD8:
pos_08C0DE6C:
pos_08C0DE74:
pos_08C0DE90:
pos_08C0DEA0:
pos_08C0DEC8:
pos_08C0DEE4:
pos_08C0DF08:
pos_08C0DF2C:
pos_08C0DF34:
pos_08C0DF6C:
pos_08C0DFA4:
pos_08C0DFD0:
pos_08C0E008:
pos_08C0E02C:
pos_08C0E034:
pos_08C0E054:
pos_08C0E098:
pos_08C0E0D0:
pos_08C0E0F8:
pos_08C0E130:
pos_08C0E14C:
pos_08C0E188:
pos_08C0E1B8:
pos_08C0E1D0:
pos_08C0E204:
pos_08C0E240:
pos_08C0E26C:
pos_08C0E284:
pos_08C0E2A4:
pos_08C0E2E8:
pos_08C0E320:
pos_08C0E34C:
pos_08C0E384:
pos_08C0E39C:
|
I finally figure that need video play finish before stop EDIT that is Marvel Ultimate Alliance 1 us- ULUS10167 |
What is game ID of "USA greatest hits" ? |
Looks like it's just 2.00 or else no one has ever reported it with PPSSPP: -[Unknown] |
v1.13.1-522-g90c58ae9b video still black in usa version |
I just tried ppsspp-v1.13.2-1838-gc6116581b-android.apk and still same black screen in vulkan and opengl. Videos do play fine in the software renderer. Any chance of an option to switch to software rendering just for videos similar to the option in pcsx2? |
See hrydgard#9852. Appears to be the same basic func, but something resulted in a different hash. Register use for from/to seems the same.
#16359 may fix this for the US version. I don't have it (or the EU version) to test, but based on the paste the func looks basically the same. -[Unknown] |
See hrydgard#9852. Appears to be the same basic func, but something resulted in a different hash. Register use for from/to seems the same.
See hrydgard#9852. Appears to be the same basic func, but something resulted in a different hash. Register use for from/to seems the same.
It's finally fixed now for all versions of this game including EU version thanks to #16359: |
Hello,
It's been a problem that has existed forever with MUA1 and PPSSPP regardless of the render, someone reported it but the thread was closed due to no feedback
#2053
And as i can't seem to make a "re opening" , i create a new report.
Marvel Ultimate Alliance 1 is playing very well, excepted that every videos similarly to the report said, from the intro to every between-chapters ones will only play the sound and will not display the actual visuals it will stay black, fortunately they don't block the user as you can pass them and the game is fully playable to the end and various replay.
On my search i found out that there was a similar report for the sequel, Marvel Ultimate Alliance 2
#4324
That seemed to have been actually solved .
As i do not own this MUA2 game , i have no idea if the engine is exactly the same , while from screenshot it seems to be i can't confirm, but considering the report is about the same thing (no visual display of the video but sound is working), maybe MUA1 is facing the same problem with PPSSPP
On the latest PPSSPP build i loaded the game for a few seconds with the debugmode (until the video start and some sounds of it can be heard)
The ppsspplog.txt zipped (as even for a few second it's rather huge when unzipped) and uploaded to dropbox in case it can be helpful
https://www.dropbox.com/s/bwcvq5mmgcq2d43/MUA1ppsspplog.zip?dl=0
The text was updated successfully, but these errors were encountered: