[GH-ISSUE #2159] Missing background : Romance Of Three Kingdom 9 PK #768

Closed
opened 2026-03-17 16:17:51 +03:00 by kerem · 65 comments
Owner

Originally created by @dbz400 on GitHub (Jun 9, 2013).
Original GitHub issue: https://github.com/hrydgard/ppsspp/issues/2159

This missing background never worked before in any build .Just for record.

screen00007

Originally created by @dbz400 on GitHub (Jun 9, 2013). Original GitHub issue: https://github.com/hrydgard/ppsspp/issues/2159 This missing background never worked before in any build .Just for record. ![screen00007](https://f.cloud.github.com/assets/3000282/725991/e8368562-e0c0-11e2-924c-138b758cd5fe.jpg)
Author
Owner

@dbz400 commented on GitHub (Jun 9, 2013):

This is the frame dump log

http://pastebin.com/6yGjzVG2

Already tried to disable alpha/color test but seems not helping

<!-- gh-comment-id:19160173 --> @dbz400 commented on GitHub (Jun 9, 2013): This is the frame dump log http://pastebin.com/6yGjzVG2 Already tried to disable alpha/color test but seems not helping
Author
Owner

@unknownbrackets commented on GitHub (Jun 9, 2013):

Sometimes you have to hit it more than once, if the game is frameskipping. That log doesn't have any GE commands in it...

-[Unknown]

<!-- gh-comment-id:19160546 --> @unknownbrackets commented on GitHub (Jun 9, 2013): Sometimes you have to hit it more than once, if the game is frameskipping. That log doesn't have any GE commands in it... -[Unknown]
Author
Owner

@dbz400 commented on GitHub (Jun 9, 2013):

@unknownbrackets Arr .yes , hit twice works oka now . Since it is pretty big in size, i cannot put it in pastebin.

(rename it from jpg to zip is ok)
ppsspp

<!-- gh-comment-id:19160666 --> @dbz400 commented on GitHub (Jun 9, 2013): @unknownbrackets Arr .yes , hit twice works oka now . Since it is pretty big in size, i cannot put it in pastebin. (rename it from jpg to zip is ok) ![ppsspp](https://f.cloud.github.com/assets/3000282/628509/bd5bf156-d0bc-11e2-9fdc-5bce4a51bb66.jpg)
Author
Owner

@dbz400 commented on GitHub (Jun 18, 2013):

@unknownbrackets , wondering anything we can try to change and test it out to see if we can fix this black BG .

<!-- gh-comment-id:19587285 --> @dbz400 commented on GitHub (Jun 18, 2013): @unknownbrackets , wondering anything we can try to change and test it out to see if we can fix this black BG .
Author
Owner

@unknownbrackets commented on GitHub (Jun 18, 2013):

Does the hack I posted at the top of #2308 improve it at all?

-[Unknown]

<!-- gh-comment-id:19588857 --> @unknownbrackets commented on GitHub (Jun 18, 2013): Does the hack I posted at the top of #2308 improve it at all? -[Unknown]
Author
Owner

@dbz400 commented on GitHub (Jun 18, 2013):

Unfornaturely not , it didn't help in this black BG .

<!-- gh-comment-id:19592932 --> @dbz400 commented on GitHub (Jun 18, 2013): Unfornaturely not , it didn't help in this black BG .
Author
Owner

@dbz400 commented on GitHub (Jun 29, 2013):

@hrydgard / @unknownbrackets , tried to take the follow changes, the background reappears but fonts missing .Any suggestion changes ?

    if (gstate.isModeThrough()) {
        WRITE(p, "  gl_Position = u_proj_through * vec4(a_position.xy, 1.0, 0.0);\n");
    } else {
        WRITE(p, "  gl_Position = u_proj * vec4(a_position.xy, 1.0, 0.0);\n");
    }

screen00011

<!-- gh-comment-id:20229921 --> @dbz400 commented on GitHub (Jun 29, 2013): @hrydgard / @unknownbrackets , tried to take the follow changes, the background reappears but fonts missing .Any suggestion changes ? ``` if (gstate.isModeThrough()) { WRITE(p, " gl_Position = u_proj_through * vec4(a_position.xy, 1.0, 0.0);\n"); } else { WRITE(p, " gl_Position = u_proj * vec4(a_position.xy, 1.0, 0.0);\n"); } ``` ![screen00011](https://f.cloud.github.com/assets/3000282/726066/2ba23a3e-e0cc-11e2-8f6c-0b067657884d.jpg)
Author
Owner

@cv47 commented on GitHub (Jun 29, 2013):

WRITE(p, " gl_Position = u_proj_through * vec4(a_position.xy, 1.0, 0.0);\n");

Which game can fix or broke by change this code?

<!-- gh-comment-id:20231326 --> @cv47 commented on GitHub (Jun 29, 2013): WRITE(p, " gl_Position = u_proj_through \* vec4(a_position.xy, 1.0, 0.0);\n"); Which game can fix or broke by change this code?
Author
Owner

@hrydgard commented on GitHub (Jun 29, 2013):

@raven02 , that is surely wrong, because in the w coordinate, we stash the fog depth. Multiplying the fog depth with a column of the projection matrix is just nonsense, so what works, works by accident.

@cv47 , that throws away depth information so if that fixes something it's also by accident.

We are probably missing something else when it comes to Z stuff.. for example we don't implement MINZ and MAXZ, I don't really know how they are supposed to work.

<!-- gh-comment-id:20231353 --> @hrydgard commented on GitHub (Jun 29, 2013): @raven02 , that is surely wrong, because in the w coordinate, we stash the fog depth. Multiplying the fog depth with a column of the projection matrix is just nonsense, so what works, works by accident. @cv47 , that throws away depth information so if that fixes something it's also by accident. We are probably missing something else when it comes to Z stuff.. for example we don't implement MINZ and MAXZ, I don't really know how they are supposed to work.
Author
Owner

@dbz400 commented on GitHub (Jun 29, 2013):

@cv47 , it somehow fix the fog effect in Sword Art Online but i think it works by accident .
screen00012

BTW, what is your test fix to make both background and fonts show correctly?

@hrydgard , i see. It did break other games :(

<!-- gh-comment-id:20231541 --> @dbz400 commented on GitHub (Jun 29, 2013): @cv47 , it somehow fix the fog effect in Sword Art Online but i think it works by accident . ![screen00012](https://f.cloud.github.com/assets/3000282/726079/9a280d74-e0ce-11e2-9b60-5c363b31498c.jpg) BTW, what is your test fix to make both background and fonts show correctly? @hrydgard , i see. It did break other games :(
Author
Owner

@dbz400 commented on GitHub (Jul 1, 2013):

@hrydgard , would it be vertex decoder issue ? i try something else in DEC_FLOAT_3 or comment out memcpy(pos, f, 12);, the background appears .....

    case DEC_FLOAT_3:
        {
            const float *f = (const float *)(data_ + decFmt_.posoff);
            memcpy(pos, f, 12);
            if (isThrough()) {
                // Integer value passed in a float. Wraps and all, required for Monster Hunter.
                pos[2] = (float)((u16)(s32)pos[2]) * (1.0f / 65535.0f);
            } else {
                for (int i = 0; i < 3; i++)
                    pos[i] = f[i] * (1.f / 32767.f);
            }
        }
        break;

screen00023

<!-- gh-comment-id:20261686 --> @dbz400 commented on GitHub (Jul 1, 2013): @hrydgard , would it be vertex decoder issue ? i try something else in DEC_FLOAT_3 or comment out memcpy(pos, f, 12);, the background appears ..... ``` case DEC_FLOAT_3: { const float *f = (const float *)(data_ + decFmt_.posoff); memcpy(pos, f, 12); if (isThrough()) { // Integer value passed in a float. Wraps and all, required for Monster Hunter. pos[2] = (float)((u16)(s32)pos[2]) * (1.0f / 65535.0f); } else { for (int i = 0; i < 3; i++) pos[i] = f[i] * (1.f / 32767.f); } } break; ``` ![screen00023](https://f.cloud.github.com/assets/3000282/728336/f8ab6e84-e1fc-11e2-9988-6583ce756815.jpg)
Author
Owner

@dbz400 commented on GitHub (Jul 29, 2013):

Alright .Just test this out on the upcoming softGPU , it seems to render all correctly and no missing background . Wondering where should we start to compare the code difference ?

<!-- gh-comment-id:21698225 --> @dbz400 commented on GitHub (Jul 29, 2013): Alright .Just test this out on the upcoming softGPU , it seems to render all correctly and no missing background . Wondering where should we start to compare the code difference ?
Author
Owner

@sraphy commented on GitHub (Sep 16, 2013):

@raven02 I‘m trying to fix this bug, but I get the same problem as you,
may I ask you what did you do to get both background and font show up ?

if (gstate.isModeThrough()) {
WRITE(p, " gl_Position = u_proj_through * vec4(a_position.xyz, 1.0);\n");
}
if (***) {
WRITE(p, " gl_Position = u_proj * vec4(a_position.xyz, 0.0);\n");
}
else {
WRITE(p, " gl_Position = u_proj * vec4(a_position.xyz, 1.0);\n");
}

<!-- gh-comment-id:24521963 --> @sraphy commented on GitHub (Sep 16, 2013): @raven02 I‘m trying to fix this bug, but I get the same problem as you, may I ask you what did you do to get both background and font show up ? <code> if (gstate.isModeThrough()) { WRITE(p, " gl_Position = u_proj_through \* vec4(a_position.xyz, 1.0);\n"); } if (***) { WRITE(p, " gl_Position = u_proj \* vec4(a_position.xyz, 0.0);\n"); } else { WRITE(p, " gl_Position = u_proj \* vec4(a_position.xyz, 1.0);\n"); } </code>
Author
Owner

@unknownbrackets commented on GitHub (Sep 16, 2013):

@raven02 my suggestion for comparing with the softgpu is to attempt to make the softgpu look like what you see in gles. But, that is not really easy either...

What you want to do is to identify things. It'd be good to identify what vertex types, values, and state it's using when drawing the background, and the same things for the fonts. DEBUG_TEXTURES was my hack to find these things, but we really need to get around to porting/using/creating the GE debugger...

Once you have that, I would try to test different scenarios to see what it's doing, and what's correct.

-[Unknown]

<!-- gh-comment-id:24549263 --> @unknownbrackets commented on GitHub (Sep 16, 2013): @raven02 my suggestion for comparing with the softgpu is to attempt to make the softgpu look like what you see in gles. But, that is not really easy either... What you want to do is to identify things. It'd be good to identify what vertex types, values, and state it's using when drawing the background, and the same things for the fonts. DEBUG_TEXTURES was my hack to find these things, but we really need to get around to porting/using/creating the GE debugger... Once you have that, I would try to test different scenarios to see what it's doing, and what's correct. -[Unknown]
Author
Owner

@dbz400 commented on GitHub (Sep 17, 2013):

@unknownbrackets , yep , i'll follow your suggest approach to see if i can find out the difference .

@sraphy , that one with both background and font show up is from softGPU

<!-- gh-comment-id:24558743 --> @dbz400 commented on GitHub (Sep 17, 2013): @unknownbrackets , yep , i'll follow your suggest approach to see if i can find out the difference . @sraphy , that one with both background and font show up is from softGPU
Author
Owner

@dbz400 commented on GitHub (Sep 23, 2013):

I'm playing around then new GE debugger and found out interesting stuff for this game however not too sure what it means

1

<!-- gh-comment-id:24918946 --> @dbz400 commented on GitHub (Sep 23, 2013): I'm playing around then new GE debugger and found out interesting stuff for this game however not too sure what it means ![1](https://f.cloud.github.com/assets/3000282/1191535/0a58497a-2453-11e3-9f04-8068dd6e32c6.jpg)
Author
Owner

@dbz400 commented on GitHub (Sep 23, 2013):

I have pressed around 30 times that 'Break' button to get that and the missing background showup

<!-- gh-comment-id:24918999 --> @dbz400 commented on GitHub (Sep 23, 2013): I have pressed around 30 times that 'Break' button to get that and the missing background showup
Author
Owner

@unknownbrackets commented on GitHub (Sep 23, 2013):

That means it's drawing the background somewhere (e.g. to a different FBO.)

-[Unknown]

<!-- gh-comment-id:24927170 --> @unknownbrackets commented on GitHub (Sep 23, 2013): That means it's drawing the background somewhere (e.g. to a different FBO.) -[Unknown]
Author
Owner

@dbz400 commented on GitHub (Sep 23, 2013):

I see. Most likely draw to depth buffer as i seen this log ?

27:04:037 user_main W[SCEGE]: GLES\Framebuffer.cpp:610 FBO sharing existing depthbuffer (unsupported), 00088000/00110000 and 00000000/00110000

<!-- gh-comment-id:24928431 --> @dbz400 commented on GitHub (Sep 23, 2013): I see. Most likely draw to depth buffer as i seen this log ? 27:04:037 user_main W[SCEGE]: GLES\Framebuffer.cpp:610 FBO sharing existing depthbuffer (unsupported), 00088000/00110000 and 00000000/00110000
Author
Owner

@unknownbrackets commented on GitHub (Sep 23, 2013):

Well, it's possible. I added those warnings to get a feel for where it is possible and where it's not.

-[Unknown]

<!-- gh-comment-id:24928768 --> @unknownbrackets commented on GitHub (Sep 23, 2013): Well, it's possible. I added those warnings to get a feel for where it is possible and where it's not. -[Unknown]
Author
Owner

@dbz400 commented on GitHub (Sep 23, 2013):

I see.

<!-- gh-comment-id:24929168 --> @dbz400 commented on GitHub (Sep 23, 2013): I see.
Author
Owner

@dbz400 commented on GitHub (Nov 26, 2013):

Further checking on this missing background , it may be related to wrong pos?

untitled

<!-- gh-comment-id:29292566 --> @dbz400 commented on GitHub (Nov 26, 2013): Further checking on this missing background , it may be related to wrong pos? ![untitled](https://f.cloud.github.com/assets/3000282/1622166/4ede53f8-56a0-11e3-8a03-e6d24fab6d3b.jpg)
Author
Owner

@dbz400 commented on GitHub (Nov 26, 2013):

softgpu renders well though .

screen00076

<!-- gh-comment-id:29292629 --> @dbz400 commented on GitHub (Nov 26, 2013): softgpu renders well though . ![screen00076](https://f.cloud.github.com/assets/3000282/1622172/766c17c0-56a0-11e3-974a-e8a6f6b55e2c.jpg)
Author
Owner

@dbz400 commented on GitHub (Jan 19, 2014):

Just tested this again with "Vertex arrays enabled when there's no data passed for them"

Still black in background

screen00380

<!-- gh-comment-id:32699893 --> @dbz400 commented on GitHub (Jan 19, 2014): Just tested this again with "Vertex arrays enabled when there's no data passed for them" Still black in background ![screen00380](https://f.cloud.github.com/assets/3000282/1948823/b4388454-80b6-11e3-85ba-b248c3a11ab4.jpg)
Author
Owner

@daniel229 commented on GitHub (Jan 19, 2014):

if these games have the same issue, both are missing background.Danball Senki W and Gundam AGE.
02
01

software rendering looks good.

Danball Senki W
03

Gundam AGE is still not good in software mode.
04

<!-- gh-comment-id:32700170 --> @daniel229 commented on GitHub (Jan 19, 2014): if these games have the same issue, both are missing background.Danball Senki W and Gundam AGE. ![02](https://f.cloud.github.com/assets/3481559/1948834/44cbaa62-80b9-11e3-823f-9f6e21632868.png) ![01](https://f.cloud.github.com/assets/3481559/1948835/44ce9466-80b9-11e3-949a-60e93c04a573.png) software rendering looks good. Danball Senki W ![03](https://f.cloud.github.com/assets/3481559/1948838/6afaa47c-80b9-11e3-8cde-43bb81cb2899.png) Gundam AGE is still not good in software mode. ![04](https://f.cloud.github.com/assets/3481559/1948841/c6421b44-80b9-11e3-8273-ecfa5a94d66d.png)
Author
Owner

@dbz400 commented on GitHub (Jan 19, 2014):

In Gundam AGE, it suppose to have background in your screenshot?

<!-- gh-comment-id:32700529 --> @dbz400 commented on GitHub (Jan 19, 2014): In Gundam AGE, it suppose to have background in your screenshot?
Author
Owner

@dbz400 commented on GitHub (Jan 19, 2014):

For Danball Senki W, i think the background is only able to show using framebuffer to memory like 3rd birthday

Framebuffer to memory or softgpu

screen00382

Buffered rendering
screen00381

<!-- gh-comment-id:32700560 --> @dbz400 commented on GitHub (Jan 19, 2014): For Danball Senki W, i think the background is only able to show using framebuffer to memory like 3rd birthday Framebuffer to memory or softgpu ![screen00382](https://f.cloud.github.com/assets/3000282/1948861/8fb1ec6c-80be-11e3-973d-b5b6578fa44c.jpg) Buffered rendering ![screen00381](https://f.cloud.github.com/assets/3000282/1948862/96c05e58-80be-11e3-8393-3933aa01e71d.jpg)
Author
Owner

@dbz400 commented on GitHub (Jan 19, 2014):

@daniel229 , looks like it has background .I found it in a youtube

1

<!-- gh-comment-id:32700622 --> @dbz400 commented on GitHub (Jan 19, 2014): @daniel229 , looks like it has background .I found it in a youtube ![1](https://f.cloud.github.com/assets/3000282/1948866/7e5fceba-80bf-11e3-82fd-069791d1b90a.jpg)
Author
Owner

@daniel229 commented on GitHub (Jan 19, 2014):

Framebuffer to memory does not help Danball Senki W
05

Gundam AGE have a background in jpcsp
06

<!-- gh-comment-id:32700628 --> @daniel229 commented on GitHub (Jan 19, 2014): Framebuffer to memory does not help Danball Senki W ![05](https://f.cloud.github.com/assets/3481559/1948867/7f5b9b64-80bf-11e3-9a04-3c05b72339c8.png) Gundam AGE have a background in jpcsp ![06](https://f.cloud.github.com/assets/3481559/1948868/86420800-80bf-11e3-9896-743622ca4c45.png)
Author
Owner

@dbz400 commented on GitHub (Jan 19, 2014):

I see. Thanks. Looks like we are still missing something ....

<!-- gh-comment-id:32700648 --> @dbz400 commented on GitHub (Jan 19, 2014): I see. Thanks. Looks like we are still missing something ....
Author
Owner

@daniel229 commented on GitHub (Jan 19, 2014):

Actually, Gundam AGE shows background in software mode,but too dark,look at the top right corner.
04

<!-- gh-comment-id:32700826 --> @daniel229 commented on GitHub (Jan 19, 2014): Actually, Gundam AGE shows background in software mode,but too dark,look at the top right corner. ![04](https://f.cloud.github.com/assets/3481559/1948841/c6421b44-80b9-11e3-8273-ecfa5a94d66d.png)
Author
Owner

@dbz400 commented on GitHub (Jan 19, 2014):

I seen you are using 0.9.6-470 ?

<!-- gh-comment-id:32700885 --> @dbz400 commented on GitHub (Jan 19, 2014): I seen you are using 0.9.6-470 ?
Author
Owner

@daniel229 commented on GitHub (Jan 19, 2014):

Don't know what 's wrong with git.
07

<!-- gh-comment-id:32700941 --> @daniel229 commented on GitHub (Jan 19, 2014): Don't know what 's wrong with git. ![07](https://f.cloud.github.com/assets/3481559/1948894/b1de53b6-80c3-11e3-83da-48f8d7960989.png)
Author
Owner

@unknownbrackets commented on GitHub (Jan 19, 2014):

Interesting. What does the GE debugger look like right before it draws that top right thing?

Also - if you are using a savestate, there are times when softgpu will try to render from memory previously rendered to by GLES. Might double check it going all the way in softgpu (I know how painful this is, speed wise...)

-[Unknown]

<!-- gh-comment-id:32701102 --> @unknownbrackets commented on GitHub (Jan 19, 2014): Interesting. What does the GE debugger look like right before it draws that top right thing? Also - if you are using a savestate, there are times when softgpu will try to render from memory previously rendered to by GLES. Might double check it going all the way in softgpu (I know how painful this is, speed wise...) -[Unknown]
Author
Owner

@daniel229 commented on GitHub (Jan 19, 2014):

I don't using savestate.
I think this is drawing the background.
08

next the corner thing is showup
09

The game have terrible graphic in software mode.
this is the title.
10

<!-- gh-comment-id:32701287 --> @daniel229 commented on GitHub (Jan 19, 2014): I don't using savestate. I think this is drawing the background. ![08](https://f.cloud.github.com/assets/3481559/1948921/22efde82-80c7-11e3-9aea-f7e17dcf5ee0.png) next the corner thing is showup ![09](https://f.cloud.github.com/assets/3481559/1948922/4589c78c-80c7-11e3-84aa-a7d12a85a083.png) The game have terrible graphic in software mode. this is the title. ![10](https://f.cloud.github.com/assets/3481559/1948927/9bc40752-80c7-11e3-8f10-5d8079919d99.png)
Author
Owner

@unknownbrackets commented on GitHub (Jan 19, 2014):

Hmm, wonder if it's using beziers. So I guess 0x040cc000 was not drawn correctly...

-[Unknown]

<!-- gh-comment-id:32702156 --> @unknownbrackets commented on GitHub (Jan 19, 2014): Hmm, wonder if it's using beziers. So I guess 0x040cc000 was not drawn correctly... -[Unknown]
Author
Owner

@daniel229 commented on GitHub (Jan 19, 2014):

How to know if it's using beziers.

<!-- gh-comment-id:32702347 --> @daniel229 commented on GitHub (Jan 19, 2014): How to know if it's using beziers.
Author
Owner

@dbz400 commented on GitHub (Jan 19, 2014):

I noramlly goto case GE_CMD_BEZIER: (GLES_GPU.cpp)to add something like this to see if it is using bezier

NOTICE_LOG(HLE,"Beizer is used");

<!-- gh-comment-id:32702589 --> @dbz400 commented on GitHub (Jan 19, 2014): I noramlly goto case GE_CMD_BEZIER: (GLES_GPU.cpp)to add something like this to see if it is using bezier NOTICE_LOG(HLE,"Beizer is used");
Author
Owner

@daniel229 commented on GitHub (Jan 19, 2014):

Thanks, @raven02 ,I tried it,that game seems to not use Beizer.
12

<!-- gh-comment-id:32702743 --> @daniel229 commented on GitHub (Jan 19, 2014): Thanks, @raven02 ,I tried it,that game seems to not use Beizer. ![12](https://f.cloud.github.com/assets/3481559/1949051/05838c78-80da-11e3-97c4-ea42cd0f47d1.png)
Author
Owner

@dbz400 commented on GitHub (Mar 24, 2014):

Regarding this game - Romance Of Three Kingdom 9 PK , missing background .I tried to compare the value return from GLES and softgpu

GLES: framebufferptr : 000888000
softgpu : framebufferptr : 000000000

-GLES
gles

-softgpu
softgpu

<!-- gh-comment-id:38453868 --> @dbz400 commented on GitHub (Mar 24, 2014): Regarding this game - Romance Of Three Kingdom 9 PK , missing background .I tried to compare the value return from GLES and softgpu GLES: framebufferptr : 000888000 softgpu : framebufferptr : 000000000 -GLES ![gles](https://f.cloud.github.com/assets/3000282/2500622/4fbc8c1a-b364-11e3-9743-926bb9e6eb0d.jpg) -softgpu ![softgpu](https://f.cloud.github.com/assets/3000282/2500626/5422ba22-b364-11e3-9894-a14de6359f69.jpg)
Author
Owner

@dbz400 commented on GitHub (Mar 24, 2014):

Offset addr and vertex addr also different .Does it matter ?

<!-- gh-comment-id:38454151 --> @dbz400 commented on GitHub (Mar 24, 2014): Offset addr and vertex addr also different .Does it matter ?
Author
Owner

@unknownbrackets commented on GitHub (Mar 24, 2014):

Those are just different frames. Framebufptr is gonna alternate, and offset/vertex are going to differ by where the vertex data and list are.

-[Unknown]

<!-- gh-comment-id:38455243 --> @unknownbrackets commented on GitHub (Mar 24, 2014): Those are just different frames. Framebufptr is gonna alternate, and offset/vertex are going to differ by where the vertex data and list are. -[Unknown]
Author
Owner

@unknownbrackets commented on GitHub (Jun 7, 2014):

Does this look any better these days with "simulate block transfer"?

-[Unknown]

<!-- gh-comment-id:45403728 --> @unknownbrackets commented on GitHub (Jun 7, 2014): Does this look any better these days with "simulate block transfer"? -[Unknown]
Author
Owner

@daniel229 commented on GitHub (Jun 7, 2014):

Nothing change with "simulate block transfer"

<!-- gh-comment-id:45403784 --> @daniel229 commented on GitHub (Jun 7, 2014): Nothing change with "simulate block transfer"
Author
Owner

@dbz400 commented on GitHub (Jun 7, 2014):

Interesting when i load state , i can see the visible background appear in 1 sec then become black again

uljm05842_00004

<!-- gh-comment-id:45404609 --> @dbz400 commented on GitHub (Jun 7, 2014): Interesting when i load state , i can see the visible background appear in 1 sec then become black again ![uljm05842_00004](https://cloud.githubusercontent.com/assets/3000282/3208136/36671e18-ee1c-11e3-9251-ebc585ac03da.jpg)
Author
Owner

@unknownbrackets commented on GitHub (Jun 7, 2014):

Okay, that implies there's a framebuffer there but it's black. So then the question is, what's it doing with this framebuffer?

What does it log after the load state? It should create some FBOs, one of them is probably this scene. Maybe the game is doing its own custom memcpy or something.

-[Unknown]

<!-- gh-comment-id:45404650 --> @unknownbrackets commented on GitHub (Jun 7, 2014): Okay, that implies there's a framebuffer there but it's black. So then the question is, what's it doing with this framebuffer? What does it log after the load state? It should create some FBOs, one of them is probably this scene. Maybe the game is doing its own custom memcpy or something. -[Unknown]
Author
Owner

@dbz400 commented on GitHub (Jun 7, 2014):

Here it is

25:42:558 user_main I[SCEGE]: GLES\Framebuffer.cpp:787 Resizing FBO for 00000000 : 480 x 272 x 3
25:42:560 user_main I[SCEGE]: GLES\Framebuffer.cpp:931 Creating FBO for 00000000 : 480 x 272 x 3
25:42:561 user_main I[G3D]: GLES\ShaderManager.cpp:146 Linked shader: vs 25 fs 36
25:42:608 user_main I[SCEGE]: GLES\Framebuffer.cpp:787 Resizing FBO for 00088000 : 480 x 272 x 3
25:42:610 user_main I[SCEGE]: GLES\Framebuffer.cpp:931 Creating FBO for 00088000 : 480 x 272 x 3
25:42:610 user_main W[SCEGE]: GLES\Framebuffer.cpp:966 FBO reusing depthbuffer, 00088000/00110000 and 00000000/00110000

<!-- gh-comment-id:45404765 --> @dbz400 commented on GitHub (Jun 7, 2014): Here it is 25:42:558 user_main I[SCEGE]: GLES\Framebuffer.cpp:787 Resizing FBO for 00000000 : 480 x 272 x 3 25:42:560 user_main I[SCEGE]: GLES\Framebuffer.cpp:931 Creating FBO for 00000000 : 480 x 272 x 3 25:42:561 user_main I[G3D]: GLES\ShaderManager.cpp:146 Linked shader: vs 25 fs 36 25:42:608 user_main I[SCEGE]: GLES\Framebuffer.cpp:787 Resizing FBO for 00088000 : 480 x 272 x 3 25:42:610 user_main I[SCEGE]: GLES\Framebuffer.cpp:931 Creating FBO for 00088000 : 480 x 272 x 3 25:42:610 user_main W[SCEGE]: GLES\Framebuffer.cpp:966 FBO reusing depthbuffer, 00088000/00110000 and 00000000/00110000
Author
Owner

@unknownbrackets commented on GitHub (Jun 7, 2014):

So those are the only two FBOs? Hmm. And it renders to both if you use the GE debugger?

-[Unknown]

<!-- gh-comment-id:45404918 --> @unknownbrackets commented on GitHub (Jun 7, 2014): So those are the only two FBOs? Hmm. And it renders to both if you use the GE debugger? -[Unknown]
Author
Owner

@dbz400 commented on GitHub (Jun 7, 2014):

Yes only this two FBOs .It mainly render to the 0x0000000 one.

<!-- gh-comment-id:45408978 --> @dbz400 commented on GitHub (Jun 7, 2014): Yes only this two FBOs .It mainly render to the 0x0000000 one.
Author
Owner

@unknownbrackets commented on GitHub (Jun 7, 2014):

What does it render to the other? What if you set a breakpoint on 04088000 for size 00088000?

-[Unknown]

<!-- gh-comment-id:45409047 --> @unknownbrackets commented on GitHub (Jun 7, 2014): What does it render to the other? What if you set a breakpoint on 04088000 for size 00088000? -[Unknown]
Author
Owner

@dbz400 commented on GitHub (Jun 8, 2014):

Let me try

<!-- gh-comment-id:45428640 --> @dbz400 commented on GitHub (Jun 8, 2014): Let me try
Author
Owner

@daniel229 commented on GitHub (Aug 26, 2014):

set a breakpoint on 04088000 for size 00088000,it did not catch anything.

<!-- gh-comment-id:53359392 --> @daniel229 commented on GitHub (Aug 26, 2014): set a breakpoint on 04088000 for size 00088000,it did not catch anything.
Author
Owner

@daniel229 commented on GitHub (Aug 26, 2014):

It render to 00000000 and 00088000 in turn frame by frame.

first frame to 00000000
second 00088000
third 00000000
four 00088000
.
.
.
.
.

<!-- gh-comment-id:53362251 --> @daniel229 commented on GitHub (Aug 26, 2014): It render to 00000000 and 00088000 in turn frame by frame. first frame to 00000000 second 00088000 third 00000000 four 00088000 . . . . .
Author
Owner

@daniel229 commented on GitHub (Nov 5, 2015):

Still no change in v1.1.1-215-gd2701d7
11

<!-- gh-comment-id:153971190 --> @daniel229 commented on GitHub (Nov 5, 2015): Still no change in v1.1.1-215-gd2701d7 ![11](https://cloud.githubusercontent.com/assets/3481559/10961627/b4cee25e-83cb-11e5-9356-aa9bcfcdebd5.png)
Author
Owner

@unknownbrackets commented on GitHub (Nov 5, 2015):

Hrm. If you save state / load state does it still display something?

When loading state, it loads whatever is in RAM behind the framebuffers. That's why it implies to me that it has drawn something to RAM and the framebuffers are just black. But if breakpoints don't trip...

We did fix some missing breakpoint checks, though. Can you double check if they don't trip now? Make sure to set the breakpoints before entering the scene, or else pan the view. It may only redraw when there's a change (possibly...)

-[Unknown]

<!-- gh-comment-id:153971913 --> @unknownbrackets commented on GitHub (Nov 5, 2015): Hrm. If you save state / load state does it still display something? When loading state, it loads whatever is in RAM behind the framebuffers. That's why it implies to me that it has drawn something to RAM and the framebuffers are just black. But if breakpoints don't trip... We did fix some missing breakpoint checks, though. Can you double check if they don't trip now? Make sure to set the breakpoints before entering the scene, or else pan the view. It may only redraw when there's a change (possibly...) -[Unknown]
Author
Owner

@daniel229 commented on GitHub (Nov 5, 2015):

save state it still displays the same screen,load state it display a blackscreen then the same bug screen. I set speed to 5%.
From entering to the scene,it's drawing the cloud,and than nothing more than later.
13

<!-- gh-comment-id:153974329 --> @daniel229 commented on GitHub (Nov 5, 2015): save state it still displays the same screen,load state it display a blackscreen then the same bug screen. I set speed to 5%. From entering to the scene,it's drawing the cloud,and than nothing more than later. ![13](https://cloud.githubusercontent.com/assets/3481559/10961932/9b095d1a-83ce-11e5-807e-038d41dbbab9.png)
Author
Owner

@unknownbrackets commented on GitHub (Nov 5, 2015):

And no hits on the memory breakpoint either?

Software rendering works right? Maybe @raven02's savestate was from softgpu and that's why it worked for a second. Hmm.

-[Unknown]

<!-- gh-comment-id:153975584 --> @unknownbrackets commented on GitHub (Nov 5, 2015): And no hits on the memory breakpoint either? Software rendering works right? Maybe @raven02's savestate was from softgpu and that's why it worked for a second. Hmm. -[Unknown]
Author
Owner

@daniel229 commented on GitHub (Nov 5, 2015):

breakpoint which address?

<!-- gh-comment-id:153976067 --> @daniel229 commented on GitHub (Nov 5, 2015): breakpoint which address?
Author
Owner

@unknownbrackets commented on GitHub (Nov 5, 2015):

04000000 with size 0x110000.

-[Unknown]

<!-- gh-comment-id:153976225 --> @unknownbrackets commented on GitHub (Nov 5, 2015): 04000000 with size 0x110000. -[Unknown]
Author
Owner

@daniel229 commented on GitHub (Nov 5, 2015):

Not hit.

<!-- gh-comment-id:153976518 --> @daniel229 commented on GitHub (Nov 5, 2015): Not hit.
Author
Owner

@sum2012 commented on GitHub (Dec 4, 2015):

update the log to v1.1.1-340-g01669cb
https://gist.github.com/sum2012/0860d89bb54d08dbd39e
@unknownbrackets yes,it need soft gpu for work

<!-- gh-comment-id:161962788 --> @sum2012 commented on GitHub (Dec 4, 2015): update the log to v1.1.1-340-g01669cb https://gist.github.com/sum2012/0860d89bb54d08dbd39e @unknownbrackets yes,it need soft gpu for work
Author
Owner

@unknownbrackets commented on GitHub (Jan 3, 2016):

I've gotten some GE debugger related info on this. Dumping my observations from that data here:

Apparently, the game draws everything fine, until some point when it draws something on the framebuffer with blending. This is when the framebuffer goes black.

This particular draw seems weird. It seems it's drawing lines using rectangles, but:

  • Texturing is disabled.
  • Vertices include funky UV values.
  • There's an extra rectangle (by accident?) with XY 0,0 - 8000,4000.

The last thing is apparently the kicker. By hacking it to avoid this last rectangle, the game seems to draw fine. It's not a block transfer issue at all, then, but instead a clipping one.

On the PSP, per my earlier tests, anything drawn outside the 0,0 - 4096,4096 window coords (translated/scaled via the viewport) gets clipped entirely. Therefore a draw of 8000,4000 should simply be skipped outright. It's accidental and incorrect that it's even drawn.

IMHO, this is a bug in the game, though. Assuming I'm understanding correctly.

-[Unknown]

<!-- gh-comment-id:168463373 --> @unknownbrackets commented on GitHub (Jan 3, 2016): I've gotten some GE debugger related info on this. Dumping my observations from that data here: Apparently, the game draws everything fine, until some point when it draws something on the framebuffer with blending. This is when the framebuffer goes black. This particular draw seems weird. It seems it's drawing lines using rectangles, but: - Texturing is disabled. - Vertices include funky UV values. - There's an extra rectangle (by accident?) with XY 0,0 - 8000,4000. The last thing is apparently the kicker. By hacking it to avoid this last rectangle, the game seems to draw fine. It's not a block transfer issue at all, then, but instead a clipping one. On the PSP, per my earlier tests, anything drawn outside the 0,0 - 4096,4096 window coords (translated/scaled via the viewport) gets clipped entirely. Therefore a draw of 8000,4000 should simply be skipped outright. It's accidental and incorrect that it's even drawn. IMHO, this is a bug in the game, though. Assuming I'm understanding correctly. -[Unknown]
Author
Owner

@unknownbrackets commented on GitHub (Sep 19, 2018):

I expect this to work now - on all backends - now that #11393 is merged. How's it look now?

-[Unknown]

<!-- gh-comment-id:422647659 --> @unknownbrackets commented on GitHub (Sep 19, 2018): I expect this to work now - on all backends - now that #11393 is merged. How's it look now? -[Unknown]
Author
Owner

@sum2012 commented on GitHub (Sep 23, 2018):

v1.6.3-497-gead4946fd Win 7 64 bit
Opengl fixed.
Directx 9 fixed.
Directx 11 fixed.

<!-- gh-comment-id:423803489 --> @sum2012 commented on GitHub (Sep 23, 2018): v1.6.3-497-gead4946fd Win 7 64 bit Opengl fixed. Directx 9 fixed. Directx 11 fixed.
Author
Owner

@unknownbrackets commented on GitHub (Sep 23, 2018):

Awesome - I'm going to assume Vulkan is fixed too and close this. Thanks for verifying.

-[Unknown]

<!-- gh-comment-id:423821695 --> @unknownbrackets commented on GitHub (Sep 23, 2018): Awesome - I'm going to assume Vulkan is fixed too and close this. Thanks for verifying. -[Unknown]
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
starred/ppsspp#768
No description provided.