-
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
Jeanne D'Arc - Invisible Dialogue Box and Models (GLES2) #1283
Comments
The game will black screen when not use real psp font. |
Yep, this issue sure exists. I can't comment on crashes when using non-psp fonts, but here's a log of the start screen with the localized version. |
Frame dump: https://gist.github.com/unknownbrackets/5553127 By the way, I keep seeing alpha test using ff0107 and such. Probably the ff is a mask on the alpha value? Hopefully games don't use it... Anyway, I guess this is probably beziers, but not sure... -[Unknown] |
Yes, I think the mask specifies which bits of alpha to use in the test (that is, the GPU will AND the alpha value with this mask before doing the compare). We can't really emulate that with OpenGL ES 2.0 shaders due to lack of bitwise ops (although we could simulate some bit patterns like 0xF0 with multiplication and rounding and 0x0F with modulo and rounding). You could make it report for non-0xFF values only. |
Thank you, @raven02, the bezier problem is fixed. |
Yep , it is well-observerd that those characters are missing however we still have no idea how to get around it unfornaturely. |
Another bug with invisible characters, #1392, it may be related. |
That one should be more closely related to final fantasy one which character only shows in non buffered mode |
I did try to turn off stencil to see if it is hiding the character but it is not .. |
I used DEBUG_TEXTURES, and there are a bunch of SetTexture() calls that are not visible. I'm guessing it's trying to draw them, one way or another. -[Unknown] |
Vertex decoders active while missing models should be visible:
If I make it skip all draws that have a weightcount/weight type, nothing visible changes. The read weight values are all between 0.0 and 1.0, inclusive. They don't appear to be using spline/bezier stuff. -[Unknown] |
If I disable depth testing, then I see the models drawn on the white surface (although this causes them to be incorrectly drawn on top of each other.) It still doesn't work, but I see why. Yay. In a frame: Primary framebuffer: 0x00044000 (512 stride) 5551 Model framebuffer: 0x000cc000 (512 stride) 5551 So as far as I can tell, this game REQUIRES shared depthbuffers to work properly. -[Unknown] |
That just seems to turn off depth testing, look how broken they look. However, that clearly points in the direction that this is a depth buffer issue somehow. |
There's one annoyance if we are to implement shared depth buffers btw - on most devices, the fastest and sometimes only depth buffer format is D24S8 where you interleave stencil and depth, which locks a specific stencil buffer to a depth buffer, while on the PSP, stencil should really be associated with the color buffer as it overlays alpha. I guess one could hope that the games that rely on shared stencil buffers might not also do stencil tricks... |
I see. I tested few other games that used GE_COMP_LESS or GE_COMP_LEQUAL and they all look fine however except GE_COMP_GEQUAL .Feel strange or may be just concidence |
Yeah, that is annoying. When creating a buffer, we should also be "within" its first draw. So if clearmode is on and includes depth, it's likely we don't need to share anything ever. One way or another this'll probably end up being hacky... ugh. -[Unknown] |
Is it possible to just blit the depth when switching if we can detect this accurately enough? Seems like glBlitFramebuffer won't work on gles2, but maybe will on gles3. -[Unknown] |
Yes, it should be. But sharing depth buffers between FBOs is also possible, so maybe we should try to extend the api in native/gfx_es2/fbo and do that first. We should add a depth buffer cache just like the frame buffer cache, and create FBOs for the combinations that we see. Might be a little complicated. |
Well, Jeanne d'Arc is also using various stencil INCRs on a 5551 texture when it expects the depth to have been reused (it uses this primarily for the alpha though, so maybe that's okay...) -[Unknown] |
Well on the PSP, depth is "independent" of stencil as stencil is in the color buffer as alpha so that shouldn't be any more of an issue than it already is.. well, except that on PC we do use combined 24/8 depth stencil on some gpus... Anyway, feel free to try glBlitFramebuffer, it is very likely to be available on your PC GPU. If it fixes it on PC but not old mobile devices then so be it for now. For example I will soon add dual source alpha blending which will fix a lot of the alpha problems without multipassing, but it won't work on mobile as no mobile GPU supports that extension. |
Workaround for hrydgard#1283, makes Jeanne d'Arc playable.
Should this be closed then? The issue's been worked around/fixed for almost a month. Or are most mobile devices still out of luck, in which case this issue is basically for GLES only? |
Its fixed, but game itself has wrong fps |
That has nothing to do with this issue, though. |
This hasn't been fixed on iOS, so I guess on mobile in general. While dialogues are visible, those characters models are still invisible. I'm using the latest revision available (0.9.6-594-g7ed88ce). Is it fixable? |
I remember some people who reported in chinese ppsspp forum that still see invisible because their phone does not support opengl es 3.0 |
Yup, that's still the case unfortunately. It does work on ES 3.0+. |
Neikiddo, try the latest dev version from http://buildbot.orphis.net/ppsspp/index.php?m=fulllist |
On Windows 10, make sure to update your video card drivers. There have been bugs and issues in them. Windows 10 was just released, and like with all new things, there have been bugs. -[Unknown] |
I just did both of your guys suggestions (new dev came out today actually), still gettin that same crash. |
Hey! I am using a GPD XD, which actually offers GLES 3.0. But there is still that problem with the partielly visible characters. Tested latest official and latest build. Why is that? |
@Plusman28 is this still a problem on GPD XD? |
The issue still happen :'( |
So does it look like any of the above screenshots, or can you provide a new one? |
Well, it requires depth copying which isn't supported on GLES2. So for a Mali-450, unfortunately it's expected that it would still happen. It should work properly on GLES3 devices. -[Unknown] |
@unknownbrackets sad to hear that :'( |
Oh right. I think we can close this, anyway. It might be possible to hack around the issue by sharing depth buffers, but since stencil and color are tightly coupled that is sure to break many other effects. |
GPU: Fix curve breakage due to cull flipping #11674 fixed this even in OGL 2.0? |
No, at least it shouldn't have. |
:'( |
This game has some problems. While the in-game graphics were fixed in the latest builds, it is still impossible to play this game due to invisible dialogue boxes, characters' models, images and menus.
However you guys are amazing. Keep up the good work!!!
Device: iPhone 4S
PPSSPP Build: 7.5-3
Here there are two images that show the issues reported above. :)
In the first one there should be the Jeanne D'Arc logo and the opening menu (New Game, Continue, etc...). The latter is self explaining. :D
The text was updated successfully, but these errors were encountered: