Skip to content
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

Me & My Katamari Fog/Draw Distance coloured solid plane/pixel garbage #8721

Closed
fpiesche opened this issue May 6, 2016 · 4 comments
Closed

Comments

@fpiesche
Copy link

fpiesche commented May 6, 2016

This has been reported in the past, but ended up being rolled into (har) other issues. I'm running the 64bit Windows build of 1.2.2-353-ga4ca07e on Windows 10 in OpenGL (though the problem also occurs on DirectX).

Me & My Katamari has what looks like a clipping plane or fog in levels that is rendering as a solid single-colour plane or with patterns of transparent pixels in its texture (see attached screenshot). There is no fog or visible effect attached to the screen regions this covers on actual hardware, however.

This is very visible when the Katamari is about 10m in size, and moves closer to it as it grows; once the katamari reaches around 20-25m it's sitting basically right in front of it, rendering the game pretty much unplayable. The first level this becomes very obvious in is the Cicada level; it's visible right from the start here and within about a minute or two of gameplay blocks you from seeing pretty much anything at all.

Stepping through things in the GE debugger, the texture causing this is 04288000, which is drawn immediately after the Katamari itself. Looking at the debugger it seems the game's drawing this across the entire screen in stripes, as a white-ish texture, before a few further instructions cause the entire thing to turn brightly coloured (with the colour consistent within levels, but differing between levels and even segments within them - in the Cicada level it starts out orange and turns cyan once the level moves on to "night").

Comparing the emulated game to a real PSP, I can't see anything on the screen in that region - there MIGHT be a very, very subtle dithered grain effect in the portion of the screen this covers? I've only got a PSP-3000 to hand so I'm not sure if that's just the (notorious for being slightly grainy) screen on that model or actually a subtle grain effect on the game. The way that the game draws it across the entire screen certainly seems to suggest some kind of fog effect or such to me...

screenshot 2016-05-06 21 34 52

@fpiesche fpiesche changed the title Me & My Katamari Draw Distance Issue Me & My Katamari "Clipping Plane"/"Draw Distance" May 6, 2016
@fpiesche fpiesche changed the title Me & My Katamari "Clipping Plane"/"Draw Distance" Me & My Katamari Fog/Draw Distance coloured solid plane/pixel garbage May 6, 2016
@unknownbrackets
Copy link
Collaborator

unknownbrackets commented May 7, 2016

This game uses 0x04088000 for the depth buffer. When it textures from 0x04288000, it's trying to use the depth as a texture - possibly to create an effect based on how far away things are.

I think this is the same as #7695 / #6411.

I'm not sure if this is a draw distance issue as much as a drawing-garbage issue. Since we don't support depth texturing, the game draws whatever happens to be at 0x04088000. In some ways, it might be more ideal to intentionally draw a black transparent texture instead of garbage.

-[Unknown]

@hrydgard
Copy link
Owner

hrydgard commented May 7, 2016

Yeah, we could either decide that all textures from the "vram mirrors" read as zero or that textures whose address matches that of a depth buffer of a recent framebuffer read as zero. Both would probably solve it and not break games that don't rely on this feature...

Or we could implement depth texturing properly but that's a bit complicated - for one thing, we keep around duplicates of depth buffers right now as we attach them to color buffers instead of treating them as a separate thing (due to the stencil/alpha issue). Which one to texture from? Hm, maybe simply avoid the one attached to the framebuffer being rendered to...

@fpiesche
Copy link
Author

fpiesche commented May 7, 2016

Just as an aside, the main reason I marked this as "draw distance" is that that seems to be a common thing people refer to the problem as from my googling around to figure out if there's a workaround or such :)

I agree this seems a dupe of #6411, and some of the issues brought up in #7695 as well though there seem to be other things turning up there as well (the corrupt render-to-texture Katamari in the end-of-level screen).

@unknownbrackets
Copy link
Collaborator

Okay, closing this as a duplicate of #6411.

-[Unknown]

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants