hrydgard / ppsspp

A PSP emulator for Android, Windows, Mac and Linux, written in C++. Want to contribute? Join us on Discord at https://discord.gg/5NJB6dD or just send pull requests / issues. For discussion use the forums at forums.ppsspp.org.
https://www.ppsspp.org
Other
11.11k stars 2.16k forks source link

Software renderer issues #16131

Open hrydgard opened 2 years ago

hrydgard commented 2 years ago

Software is not quite in a state where we'll create individual issues for everything, but here's a place to collect issues (always with GE dumps!).

Wipeout menu text slightly glitched (additional thin vertical lines, clearly filtering outside the intended range): (#16241) ![image](https://user-images.githubusercontent.com/130929/193156143-003abd61-2121-444a-b6bf-a65b9ddcfb95.png) Both dumps here: [Wipeout UCES00001 dumps.zip](https://github.com/hrydgard/ppsspp/files/9679496/Wipeout.UCES00001.dumps.zip)
Wipeout Pure ocean white instead of blue: (#16132) ![image](https://user-images.githubusercontent.com/130929/193155967-0baff082-1445-4607-a525-f776d29b6c84.png) Both dumps here: [Wipeout UCES00001 dumps.zip](https://github.com/hrydgard/ppsspp/files/9679496/Wipeout.UCES00001.dumps.zip)

Misplaced triangle in Zettai Zetsumei Toshi 3 (#16470) Zettai Zetsumei Toshi 3 draws some triangles that it shouldn't below the character's feet (more details in https://github.com/hrydgard/ppsspp/issues/16207#issuecomment-1275553919): ![image](https://user-images.githubusercontent.com/191233/195226287-4621701c-ec4d-46cb-a209-eda9bc156345.png) [ULJS00191 GE dump.zip](https://github.com/hrydgard/ppsspp/files/9759927/ULJS00191.GE.dump.zip) Note: related problem in #15875, but with negative W after clipping Z.
hrydgard commented 1 year ago
Outrun has black sky and water on some stages (#16485) (does work on some though): ![ULES00262_00024](https://user-images.githubusercontent.com/130929/204782008-bb407de1-e118-43aa-96d4-626c9b2cc969.jpg) [Outrun softgpu ULES00262_0002.zip](https://github.com/hrydgard/ppsspp/files/10122437/Outrun.softgpu.ULES00262_0002.zip)
benderscruffy commented 1 year ago
Pac-Man World Rally (USA) (v1.02) - glitchy track (#16470) ![ULUS10149_00000](https://user-images.githubusercontent.com/2696404/204948402-aa9f96c6-f113-4970-b6bb-f862e7dbcb1b.jpg) ![ULUS10149_00001](https://user-images.githubusercontent.com/2696404/204948406-204ebe6d-fd6f-480d-8e95-90f9c56e99fc.jpg) [ULUS10149_0001.ppdmp.ZIP](https://github.com/hrydgard/ppsspp/files/10128684/ULUS10149_0001.ppdmp.ZIP) [ULUS10149_0002.ppdmp.ZIP](https://github.com/hrydgard/ppsspp/files/10128685/ULUS10149_0002.ppdmp.ZIP)
benderscruffy commented 1 year ago

nehetutorial10 demo walls and floors keep flashing nehetutorial10.zip https://nehe.gamedev.net/tutorial/loading_and_moving_through_a_3d_world/22003/

benderscruffy commented 1 year ago
2dstudio - texture issue in the test itself, happens on PSP when you change the texture types on the green and red squares they are not right [2dstudio.zip](https://github.com/hrydgard/ppsspp/files/10130164/2dstudio.zip)
unknownbrackets commented 1 year ago
Caused by inversions (#16470) > Test Drive Unlimited (USA) > road is glitchy > [ULUS10249_0001.ppdmp.ZIP](https://github.com/hrydgard/ppsspp/files/10109124/ULUS10249_0001.ppdmp.ZIP) > [ULUS10249_0002.ppdmp.ZIP](https://github.com/hrydgard/ppsspp/files/10109126/ULUS10249_0002.ppdmp.ZIP) > [ULUS10249_0003.ppdmp.ZIP](https://github.com/hrydgard/ppsspp/files/10109127/ULUS10249_0003.ppdmp.ZIP) I'm a bit behind on the latest ones (had some work stuff this past weekend), but #16470 should fix this and probably many others. These samples really helped me figure out the correct pattern. It seemed really strange before, but now seems pretty obvious. Thanks for all the testing.

Will look at the newer ones in not that long.

-[Unknown]

unknownbrackets commented 1 year ago

Harry Potter and the Order of the Phoenix (USA) black triangles on the rug ULUS10261_0001.zip

This one is interesting. It happens in both hardware and software, caused by 166/502. The inversion fix does NOT help it.

It also shows when running the frame dump on a PSP: #16131_ULUS10261_harrypotter_black_triangle

It's possible this may simply be a game bug. Or it may be a CPU emulation accuracy or other bug...


Me & My Katamari - caused by always flat lines (#16478) > Me & My Katamari (USA) > glitchy lines appear during gameplay > [ULUS10094_0001.ppdmp.ZIP](https://github.com/hrydgard/ppsspp/files/10109295/ULUS10094_0001.ppdmp.ZIP) > [ULUS10094_0002.ppdmp.ZIP](https://github.com/hrydgard/ppsspp/files/10109297/ULUS10094_0002.ppdmp.ZIP) > [ULUS10094_0003.ppdmp.ZIP](https://github.com/hrydgard/ppsspp/files/10109298/ULUS10094_0003.ppdmp.ZIP) In the first frame dump, this happens earliest at 21/1509. It's a fairly simple triangle strip draw, and the lines occur from depth testing. The lines are not antialiased or anything special like that. The lines are from i.e. 5/1509, depth clamp is enabled. The most relevant line segment goes from z=6363 to z=25534, and clearly should not be flat.... and oops, they are.

Dig Dug double drawing pixel (#16503) > Namco Museum - Battle Collection (USA) (v1.01) > choose dig dug and on the menu screen is a white flashing line moving across the screen down the bottom > [ULUS10035_0001.zip](https://github.com/hrydgard/ppsspp/files/10109888/ULUS10035_0001.zip) This is another one related to the 0.5 double-draw issue. Plan to fix these soon, just have to be careful to check a bunch of other frame dumps when I do.

Toriko - not a bug > Toriko - Gourmet Survival 2 (Japan) (v1.01) > certain bits of grass flash white > [NPJH50564_0013.zip](https://github.com/hrydgard/ppsspp/files/10109987/NPJH50564_0013.zip) Hm. By 3000/4535, it has drawn most of the scene without white grass: ![image](https://user-images.githubusercontent.com/191233/205175848-e68898a8-0b3d-45be-bfe4-0d1af2527d09.png) But then it seems to intentionally draw the white grass, starting at 3072/4535. It uses logicop = SET and RGB mask = none, which in other words means draw white. If I force that to COPY instead of SET, it looks like one would expect: ![image](https://user-images.githubusercontent.com/191233/205176808-f596816e-a2fe-452b-acca-9f20d5613795.png) But this white effect is correct per the PSP: ![#16131_NPJH50564_toriko_white_grass](https://user-images.githubusercontent.com/191233/205176886-06b1021b-214c-4af6-8987-35bc06e25540.png) Is this just special grass that you can pick up or something? Maybe it flashes white on purpose?

Grey box was missing depth cull, Z wrapped and shouldn't have (#16480) > Crazy Taxi - Fare Wars (USA) (En,Fr,De,Es,It) (v2.01) > crazy taxi 2 > grey box just floating around > [ULUS10273_0001.ppdmp.ZIP](https://github.com/hrydgard/ppsspp/files/10118433/ULUS10273_0001.ppdmp.ZIP) > [ULUS10273_0002.ppdmp.ZIP](https://github.com/hrydgard/ppsspp/files/10118434/ULUS10273_0002.ppdmp.ZIP) > [ULUS10273_0003.ppdmp.ZIP](https://github.com/hrydgard/ppsspp/files/10118452/ULUS10273_0003.ppdmp.ZIP) In frame dump 2 (dump 1 didn't render properly on a PSP so I went to 2), the box is drawn at 1725/5406. Depth test is `>=`. Z scale is -32768 from 32719, clamp disabled. Vertex preview calculates all Z coords around 65512, which is definitely `>=` what's already there. It seems to be drawing a far away object, though... it calculates a more reasonable looking -24 in hardware rendering... maybe some sort of overflow? Will look more in a bit.

-[Unknown]

benderscruffy commented 1 year ago

Lara Croft Tomb Raider - Legend (USA) (v1.02) title screen and menu screen keeps flickering really badly (couldn't get a GE dump)

still happens in software renderer doesnt happen in Vulkan or Opengl GE dumps dont capture it just a black screen

and Tomb Raider - Anniversary (USA) (En,Fr,De,Es,It) (v1.02) has the same problem aswell

unknownbrackets commented 1 year ago
Caused by inversions (#16470) > Phantasy Star Portable 2 (USA) > floor is glitchy > [ULUS10529_0001.ppdmp.ZIP](https://github.com/hrydgard/ppsspp/files/10119351/ULUS10529_0001.ppdmp.ZIP) > [ULUS10529_0002.ppdmp.ZIP](https://github.com/hrydgard/ppsspp/files/10119352/ULUS10529_0002.ppdmp.ZIP) > [ULUS10529_0003.ppdmp.ZIP](https://github.com/hrydgard/ppsspp/files/10119353/ULUS10529_0003.ppdmp.ZIP) Fixed by the inversion fix.

Need for Speed - Most Wanted 5-1-0 (USA) signs on side of the road are glitchy they are direction signs to show you which way to go it shows them correctly in the GE dumps ULUS10036_0001.ppdmp.ZIP ULUS10036_0002.ppdmp.ZIP

Signs are drawn at 20/194, depth <= which does pass in the frame dump at least. UVs are a bit interesting: it's using a texture matrix from UVs, and the matrix is pretty simple, and basically applies matrix UV scale (* 64 - 32.) Maybe there's something wrong with how we're loading the texture matrix.... but it looks fine. The first usage is throughmode, though, hm. The textures are in VRAM, but I don't see how they'd be overwritten by depth or anything... it does set (but not use) a few textures in between, but that should be ignored.

They look fine in the hardware renderer? Maybe there's some hazard I'm not seeing...

Well, I made a small optimization based on this one, anyway. Don't expect it to fix anything, though.


Need for Speed - Shift (USA) (En,Fr,Es) thick black line in menus and videos ULUS10462_0001.zip

This frame dump has all sorts of challenging factors going on, and does all sorts of annoyingly inefficient things. Sigh.

But anyway, this appears to be the same basic issue as the Silent Hill depth shadow issue, this one: https://github.com/hrydgard/ppsspp/issues/16126#issuecomment-1264561020

Basically, it requires depth to be swizzled correctly because it stores texture data where the swizzle would avoid.

-[Unknown]

benderscruffy commented 1 year ago
Boxer's Road 2 - The Real (Japan) (v1.10) - correct world color, checked on PSP the world changes colour ![ULJM05125_00000](https://user-images.githubusercontent.com/2696404/205248618-9541063a-cf2a-4541-90b3-105e335b86cf.jpg) [ULJM05125_0005.zip](https://github.com/hrydgard/ppsspp/files/10139318/ULJM05125_0005.zip)
benderscruffy commented 1 year ago

Brothers in Arms - D-Day (USA) (v1.01) gameplay is way to dark ULUS10193_00000 ULUS10193_0001.zip compare it to https://www.youtube.com/watch?v=we_w4iN6gZ0&ab_channel=fairdead2

unknownbrackets commented 1 year ago
Caused by inversions (#16470) > SSX - On Tour (USA) (En,Fr,De) > ground is glitchy > [ULUS10042_0003.zip](https://github.com/hrydgard/ppsspp/files/10121022/ULUS10042_0003.zip)

Pursuit Force (USA) road is glitchy UCUS98640_0001.ppdmp.ZIP UCUS98640_0002.ppdmp.ZIP UCUS98640_0003.ppdmp.ZIP

These are all inversions, but there's another issue on the third frame dump. Correct rendering:

#16131_UCUS98640_pursuitforce_wanted_invert3

Rendering with inversions otherwise fixed:

image

We can see part of the wall is missing or clipped. 1758/3877 is a bezier draw and maybe this is where I need to really investigate those and their interaction with clipping/range cull better.


Maru Goukaku - Shikaku Dasshu! TOEIC Test Portable (Japan) (v1.01) half the picture is missing and so is the text NPJH50574_0001.zip

Unfortunately, the frame dump only captured it rendering a saved version of the corrupted screen. Does it look right on hardware rendering? It's possible this could've been an inversion, but hard to guess without seeing the actual drawing...


NAN fog coefficients were broken (#16485) > Outrun has black sky and water on some stages (does work on some though) > > [Outrun softgpu ULES00262_0002.zip](https://github.com/hrydgard/ppsspp/files/10122437/Outrun.softgpu.ULES00262_0002.zip) I was expecting this to be another one fixed by the inversion change, but it's still broken. The sky is drawn between 124/831 and 125/831. Ignoring the water for a bit, that draw is supposed to result in this (from a PSP): ![#16131_ULES00262_outrun_black_sky_124](https://user-images.githubusercontent.com/191233/205348186-4b559d6f-6bef-42c8-9fac-823d834d1a57.png) After playing with some registers... it's fog. The fog params are set to -NAN: ``` CF000000: FogColor 000000 CDFFC000: Fog end -nan(ind) CEFFC000: Fog slope -nan(ind) ``` So basically eaa1f0c, I must've broken this in softgpu when I was doing the fog optimizations.

Caused by inversions (#16470) > Pac-Man World Rally (USA) (v1.02) > glitchy track > ![ULUS10149_00000](https://user-images.githubusercontent.com/2696404/204948402-aa9f96c6-f113-4970-b6bb-f862e7dbcb1b.jpg) ![ULUS10149_00001](https://user-images.githubusercontent.com/2696404/204948406-204ebe6d-fd6f-480d-8e95-90f9c56e99fc.jpg) [ULUS10149_0001.ppdmp.ZIP](https://github.com/hrydgard/ppsspp/files/10128684/ULUS10149_0001.ppdmp.ZIP) [ULUS10149_0002.ppdmp.ZIP](https://github.com/hrydgard/ppsspp/files/10128685/ULUS10149_0002.ppdmp.ZIP) More inversions indeed, fixed now.

-[Unknown]

unknownbrackets commented 1 year ago

nehetutorial10 demo walls and floors keep flashing nehetutorial10.zip https://nehe.gamedev.net/tutorial/loading_and_moving_through_a_3d_world/22003/

This happens on a real PSP as well, although the initial screen shows a floor on the PSP and not in the software renderer. The experience in the hardware renderer doesn't match the PSP at all, which doesn't show the floor or ceiling from most angles.

Anyway, for the initial view, here's a frame dump for convenience and what it should look like on the PSP: #16131_nehetutorial10_missing_floor #16131_nehetutorial10_missing_floor.zip

In hardware, the ceiling is incorrectly rendered. In software, the floor is incorrectly missing (at this angle, at most angles it would not be rendered either.) These are the coordinates that I would have to allow to make it look the same (expressed with fractional subpixels from standard offset 1808, 1912):

-9609.1875, 956.8125 10090.25, 956.8125

Maybe something about clipping causes the X range cull not to happen? I don't think so, though... and anyway, ignoring X cull shows the floor from a lot of angles that are incorrect based on the experience on a PSP. Maybe there's some floating point accuracy thing going on here.


2dstudio buggy even on a real PSP, softgpu reproduced its bug accurately > 2dstudio > when you change the texture types on the green and red squares they are not right > [2dstudio.zip](https://github.com/hrydgard/ppsspp/files/10130164/2dstudio.zip) I compiled an EBOOT.PBP for the PSP and tried this on my PSP. Everything looks about the same as on the PSP, you have to turn on GU_TEXTURE_2D and then you can change the texture type. The red one has an offset so it looks a bit off, but this is correct (probably what the tool is trying to show.) Not seeing any differences.

and Tomb Raider - Anniversary (USA) (En,Fr,De,Es,It) (v1.02) has the same problem aswell

Hm. Does it help at all to open the GE debugger, press step frame, and then press record? Does it create a file that is very small only? If it does create a file that's at least 100 KB, but doesn't display anything, I may still be able to investigate with it.

-[Unknown]

unknownbrackets commented 1 year ago
Boxer's Road 2 color actually correct > Boxer's Road 2 - The Real (Japan) (v1.10) > the world changes colour > [ULJM05125_0005.zip](https://github.com/hrydgard/ppsspp/files/10139318/ULJM05125_0005.zip) I always knew that one day, I would change the world. But it shows the same color on a PSP: ![#16131_ULJM05125_boxers_road2_world_color](https://user-images.githubusercontent.com/191233/205387935-ec4db938-6b11-4bb1-9a8c-9b85a65058ea.png) The planet is drawn from 46/213 - 144/213. It first draws black (to hide skies) and land masses, then blends the color on top around 127/213: ![image](https://user-images.githubusercontent.com/191233/205388370-fd37fb81-013e-44ed-95e3-3c9154a5ffdb.png) The color comes from a 1x1 texture at 0x041f1840, using CLUT4. The CLUT is 8888, and at 0x041f18C0. The CLUT has a fully transparent pixel, then this brownish pixel with 128 alpha, then 15 fully opaque black pixels. It's clear the rest wasn't loaded. Lighting seems fine. How should this look? Does it look fine in the hardware renderer? If so, can you try making a frame dump from there? It may help to compare.

Brothers in Arms - D-Day (USA) (v1.01) gameplay is way to dark ULUS10193_0001.zip compare it to https://www.youtube.com/watch?v=we_w4iN6gZ0&ab_channel=fairdead2

It draws the scene initially up to 451/570: image

After that, it time for some buffer fun. Up to this point, color is 04044000, 565. Depth at 04088000.

But now we point at 0x04088000 (the depth buffer) at 8888/256, clearing it to black at 240x136. Then we move to CLUT16 to texture from the render, starting with R (& 0x1F), with a CLUT ramp that tops out at 4A4A4A (dark grey - but it does use color doubling.) Predictably, this is done for all channels with a fixed ONE + ONE blend to get a grayscale version of the brightness of the scene.

This works out well, producing at 464/570: image

Next up, we texture from that 0x04088000 to 0x040aa000 which is the other half of what used to be the depth buffer. This happens at 565 again (I'm not sure how the grayscale benefited from 8888... oh well.) We're still using color doubling, but the lighting is at 7F to counteract that so the color is about the same. There's also some fog which doesn't seem to matter.

Next up at 469/570, we go to 0x040bb000 at 120x68, and texture from 0x040aa000. This is 8888 again, so why not skip the last step and texture straight? Maybe they saw value in the 565 conversion to "blur" it more? Sigh. This uses a fixed + fixed blend with different color factors: 28, 1c, 10, 1c, 10, so even with doubling it's essentially a factor of 0x90 (56% if I didn't miss anything.)

At 490/570, this is now written to 0x040c3800, still at 8888 and sampling from the last at 8888. Doubling, but also further dimming at 28, 1c, 1c, 10, 10 (so another 56%.) At 501/570, we take this back to 0x040aa000 and use a ONE + ZERO blend to upscale it. Again using doubling 7F for a slight loss in brightness (99.6%.) We end up with this:

image

At 505/570 we're back to 0x04088000, texturing from 0x040aa000. But now it's 565, and we're using RGB CLUT ramps again. It only uses red and produces this slightly ugly thing:

image

But there's a method to this madness: it's intended to be read at 8888. It stretched it out width wise for this purpose. It now writes (not textures) from that 0x04088000, but at 8888. At 507/570, it looks like this (seems like it just gradiated it more):

image

It textures from 0x04044000 (which was the original color buffer, all those moments ago), without blending but - here's the crucial bit - with stencil masked (well, stencil test is disabled but I guess they were worried.) The result is the original image again, scaled down to 250x136, but now with the above as the alpha at 510/570.

But we're not done, next we write to 0x040aa000 (at 8888 and 120x68) and sampling from that 0x04088000 we just updated color on. I know what you're thinking, that's what the alpha was for? Nope, we ignore alpha. It's just not grayscale this time, but the same downscale blur as before, which also dims again despite color doubling. That's brought over to 0x040b2800 as well, which is again blurred and dimmed more.

Now we're back to 0x04088000 at 543/570, writing 8888, and reading that blurry bloom buffer we just read. It's stretched back to accompany the alpha, which is left as is.

Finally, this is blended to the screen using a src.a + ONE blend. It doesn't do a ton of bloom, here's the before 547/570: image

And the after bloom after 550/570: image

You can see some highlights in the smoke and moon, which is about all it does. Seems very intentional, fairly normal bloom despite some extra (unnecessary?) steps. And that's it - that's all it does to potentially brighten the scene.

I created a copy of the framedump with all those temp bloom buffers removed, because the original was so large the PSP couldn't load it uncompressed. It's actually even darker (I wonder where we went wrong...):

#16131_ULUS10193_brotherarms_dday_dark_edit

I think that video has the brightness increased on the video, and on the PSP to the max... or else there's something wrong in the frame dump. Here's the edit to use the bloomed content only: #16131_ULUS10193_brotherarms_dday_dark_edit.zip

Both frame dumps are about the same brightness on the hardware renderer as well.

-[Unknown]

benderscruffy commented 1 year ago

in 2dstudio the red checkerboard 1x1 and 3x3 didn't look right 2DST01206_00000 2DST01206_00001

and in tomb raiders it is only creating a file 2k big

benderscruffy commented 1 year ago

Boxers Road the same with hardware renderer here is a dump from Vulkan ULJM05125_0001.zip ULJM05125_00000

unknownbrackets commented 1 year ago

That's how it looks on the PSP though, it's what the actual texture looks like:

image

After looking a bit harder, it's probably because the texture address is incorrectly not aligned to 16-bytes: https://github.com/jpcsp/jpcsp/blob/master/demos/src/2DStudio/main.c

So the actual texture starts 4 bytes (one color) early. If I add __attribute__((aligned(16))) to both texture definitions, it looks like you'd want it to: image

So this is just a JPCSP bug probably.

If the world color is brown in hardware rendering too, I really wonder if that's correct...

-[Unknown]

benderscruffy commented 1 year ago

will check out Boxer Road on my PSP to see the correct behaviour

just checked it on my psp and that is the correct behaviour so it is not a bug

benderscruffy commented 1 year ago

Petz - Hamsterz Bunch (USA) text is messed up ULUS10446_00000 ULUS10446_00001 ULUS10446_0001.ppdmp.ZIP ULUS10446_0002.ppdmp.ZIP

unknownbrackets commented 1 year ago

Petz - Hamsterz Bunch (USA) text is messed up ULUS10446_0001.ppdmp.ZIP ULUS10446_0002.ppdmp.ZIP

It nearly goes without saying, but you're right that it should look clean: #16131_ULUS10446_petz_hamster_bad_text1 #16131_ULUS10446_petz_hamster_bad_text2

24/45 is the first frame text is drawn on. Only uses texturing and alpha blend, CLUT8/8888 -> 8888, tex REPLACE. It draws triangles and doesn't matter if they're rects. The X/Y and U/Vs are at 0.5, so this is probably the same overlap issue as the other 0.5 ones. Drawing more on one side or the other than it should. I guess I should get around to testing all the half offsets...

Edit: actually seems this is more related to nearest texture sampling or something. Maybe it needs to round UVs when they're at half texel offsets, which is done here...

-[Unknown]

benderscruffy commented 1 year ago
Shadow of Destiny ULUS10459 - during the intro black lines on the screen during the blur effect (#16503) ![ULUS10459_00000](https://user-images.githubusercontent.com/2696404/205542826-6497a8fc-5825-4c2d-9cb9-5d9fa98a2bbb.jpg) ![ULUS10459_00001](https://user-images.githubusercontent.com/2696404/205542828-d46d901e-89a9-4d88-b423-2b5889f7db0f.jpg) [ULUS10459_0001.ppdmp.ZIP](https://github.com/hrydgard/ppsspp/files/10150421/ULUS10459_0001.ppdmp.ZIP) [ULUS10459_0002.ppdmp.ZIP](https://github.com/hrydgard/ppsspp/files/10150424/ULUS10459_0002.ppdmp.ZIP)
benderscruffy commented 1 year ago

Hot Wheels Ultimate Racing (USA) (En,Fr,De,Es,It) (v1.02) rocks on side of the road are incorrect 1 pic no details on rocks 2 pic first rock has details and 2nd doesnt 3and 4 pic first rock has detail and 2nd rock has half detail and the other half doesnt (the jagged line down the middle of it only problem was all the GE dumps are only 2k they didnt record anything ULUS10239_00000 ULUS10239_00001 ULUS10239_00002 ULUS10239_00003

maybe the same problem as need for speed with the arrow signposts ???

benderscruffy commented 1 year ago
Kingdom Hearts - Birth by Sleep (USA) (En,Fr,Es) - bright lights seen on the ground (or through the ground) (#16509) ![ULUS10505_00000](https://user-images.githubusercontent.com/2696404/205806814-b3ff9532-45dc-4604-baec-78b161138995.jpg) ![ULUS10505_00001](https://user-images.githubusercontent.com/2696404/205806818-82973905-1753-481d-864a-e0bc3b390a66.jpg) [ULUS10505_0001.ppdmp.ZIP](https://github.com/hrydgard/ppsspp/files/10162001/ULUS10505_0001.ppdmp.ZIP) [ULUS10505_0002.ppdmp.ZIP](https://github.com/hrydgard/ppsspp/files/10162002/ULUS10505_0002.ppdmp.ZIP)
benderscruffy commented 1 year ago

Driver 76 (Europe) (v1.01) white lines keep flashing on the road in the 3rd pic the line on the right hand side of the car going through the footpath keeps flashing ULES00740_00000 ULES00740_00001 ULES00740_00002 ULES00740_0001.ppdmp.ZIP ULES00740_0002.ppdmp.ZIP ULES00740_0003.ppdmp.ZIP

benderscruffy commented 1 year ago

Buzz! Quiz World (Europe) (En,Pl) green text is supposed to scroll around the outside UCES01289_00000 UCES01289_00001 UCES01289_0002.ppdmp.ZIP UCES01289_0003.ppdmp.ZIP

benderscruffy commented 1 year ago

Rain Wonder Trip (Japan) (En,Ja,Ko) (v1.03) line down the middle of the scoreboard (in-between your score) grey lines down bottom of the screen think it i supposed to be the subtitles as they are turned on ULJS00072_00000 ULJS00072_00001 ULJS00072_0001.ppdmp.ZIP ULJS00072_0002.ppdmp.ZIP

benderscruffy commented 1 year ago

Tony Hawk's Underground 2 Remix (USA) (v1.01) faces are glitched during the intro ULUS10014_00000 ULUS10014_00001 ULUS10014_00002 ULUS10014_0001.ppdmp.ZIP ULUS10014_0002.ppdmp.ZIP ULUS10014_0003.ppdmp.ZIP

unknownbrackets commented 1 year ago
Shadow of Destiny blur double line drawing (#16503) > Shadow of Destiny ULUS10459 > during the intro black lines on the screen during the blur effect > [ULUS10459_0001.ppdmp.ZIP](https://github.com/hrydgard/ppsspp/files/10150421/ULUS10459_0001.ppdmp.ZIP) > [ULUS10459_0002.ppdmp.ZIP](https://github.com/hrydgard/ppsspp/files/10150424/ULUS10459_0002.ppdmp.ZIP) Things look fine up through 5393/5396: ![image](https://user-images.githubusercontent.com/191233/206102555-141522a7-e07f-4a2c-b513-db8c6a80ae77.png) At this point, it textures from what I assume is some copy it made. If I clear the initial copy so it recreates it, everything looks fine: ![image](https://user-images.githubusercontent.com/191233/206103995-a3a7eb0f-8f1f-4363-a757-cbeaac4a1b43.png) So I guess something is going wrong initially creating this copy, because it starts with lines in it and keeps blending them back in. I have this game... I have never really played it much, though. I tried selecting the z-pad and leaving rooms, which causes blur transitions, but didn't notice any issues. Maybe this was fixed by #16503?

Hot Wheels Ultimate Racing (USA) (En,Fr,De,Es,It) (v1.02) rocks on side of the road are incorrect 1 pic no details on rocks 2 pic first rock has details and 2nd doesnt 3and 4 pic first rock has detail and 2nd rock has half detail and the other half doesnt (the jagged line down the middle of it only problem was all the GE dumps are only 2k they didnt record anything

Hm, I may need to figure out what's causing these empty framedumps. It must be some problem where it thinks a frame happened but it's actually no drawing.

To me this looks like a mipmapping issue. It's not impossible it's correct, but it could also be an accuracy issue as I think we still aren't accurate with mipmap level selection.


Kingdom Hearts drawing that should've been w culled (#16509) > Kingdom Hearts - Birth by Sleep (USA) (En,Fr,Es) > bright lights seen on the ground (or through the ground) > > [ULUS10505_0001.ppdmp.ZIP](https://github.com/hrydgard/ppsspp/files/10162001/ULUS10505_0001.ppdmp.ZIP) [ULUS10505_0002.ppdmp.ZIP](https://github.com/hrydgard/ppsspp/files/10162002/ULUS10505_0002.ppdmp.ZIP)

Driver 76 (Europe) (v1.01) white lines keep flashing on the road in the 3rd pic the line on the right hand side of the car going through the footpath keeps flashing ULES00740_0001.ppdmp.ZIP ULES00740_0002.ppdmp.ZIP ULES00740_0003.ppdmp.ZIP

Interesting. This game draws to a 8888 buffer and then blits it to 5551 every frame (why not 565?) Had to edit the dump to fiddle with which framebuffer is displayed so I can get the correct PSP output.

It should indeed not have that line: #16131_ULES00740_driver76_flashing_lines1_edit

At 3249/7167, it has this beige ground: image

But then it draws this shape at that draw: image

The verts that match the top of that shape are all (298.4375, 213.5) and (387.3125, 213.25). So it ends up not drawing some of the top left pixels, which might be incorrect.

After that 3325/7167 draws the upper part of that shape, but it uses (298.375, 213.4375) and (387.125,213.1875). So it doesn't cover those pixels either. And you get the line: image

This is probably one of a rounding error, float inaccuracy, or triangle half-pixel issue. I think it's most likely the third one.

-[Unknown]

benderscruffy commented 1 year ago

Shadow of Destiny ULUS10459 Maybe this was fixed by #16503? yes it looks it is fixed now just tried it again and the lines were gone

benderscruffy commented 1 year ago

Split-Second (USA) (En,Fr,Es) track and shadows and background start to glitch ge dumps dont pick it up Capture ULUS10513_00000 ULUS10513_00001 ULUS10513_00002 ULUS10513_0001.ppdmp.ZIP ULUS10513_0002.ppdmp.ZIP ULUS10513_0003.ppdmp.ZIP ULUS10513_0004.ppdmp.ZIP

unknownbrackets commented 1 year ago

Buzz! Quiz World (Europe) (En,Pl) green text is supposed to scroll around the outside UCES01289_0002.ppdmp.ZIP UCES01289_0003.ppdmp.ZIP

When I run this on a PSP, there's no green text. But, something weird is captured in this frame dump.

At two points in the frame, it switches to a framebuffer at 0x04198000 (at 3/78 and 76/78) and draws some text. Some of the vertex positions sorta look like hot garbage, but there are good ones in there and the colors and etc. seem sensible.

Both times it draws this green text there: image

At 78/78 it sets the font texture (not 0x04198000, but the same texture it used to draw that) again and draws... 0 triangles. It never seems to even try to draw the "QUIZ CHALLENGE" text. And the PSP execution doesn't either. Does this work in hardware renderers? I suspect it's not softgpu specific, whatever the bug is...


Rain Wonder Trip (Japan) (En,Ja,Ko) (v1.03) line down the middle of the scoreboard (in-between your score) grey lines down bottom of the screen think it i supposed to be the subtitles as they are turned on ULJS00072_0001.ppdmp.ZIP ULJS00072_0002.ppdmp.ZIP

Indeed should have no line: #16131_ULJS00072_rainwondertrip_line

This is using more 0.5 positions and UVs, although interestingly it's doing i.e. X1=138, X2=238.5 and U1=0, U2=100.5. It uses triangles in a bit of and odd way (probably trying to restart the strip) that we don't detect as rectangles, so this is probably like the Driver 76 case, and might work already under the rectangle path.


Unfortunately, whatever is screwed up in the Rain Wonder Trip second example (subtitle problem) is hardcoded within the frame dump. It's taking an image (possibly previously rendered) that's already got that gray corruption and rendering it to the screen, so it's already wrong.

Does it work right in the hardware renderers?


Tony Hawk's Underground 2 Remix (USA) (v1.01) faces are glitched during the intro ULUS10014_0001.ppdmp.ZIP ULUS10014_0002.ppdmp.ZIP ULUS10014_0003.ppdmp.ZIP

Wow, it looks like a modern game on release day. But hmm, it does look as bad to me: image

Which more or less matches the PSP rendering: #16131_ULUS10014_tonyhawk_thug2_distorted_faces1

Maybe a setting? I don't see anything suspicious, though... does it happen when you play back the framedumps?

-[Unknown]

unknownbrackets commented 1 year ago

Split-Second (USA) (En,Fr,Es) track and shadows and background start to glitch ge dumps dont pick it up

Hm... indeed, not seeing in the frame dump. I wonder if something is going wrong with some cache. I think there might've been a demo for this game, maybe I can dig it up. Any tips on reproducing it?

This sorta looks like that Need for Speed issue to me. Somehow some state seems to be going out of sync...

-[Unknown]

benderscruffy commented 1 year ago

Tony Hawk's Underground 2 Remix (USA) (v1.01) no the framedumps played back as normal i havent changed any settings

benderscruffy commented 1 year ago

Unfortunately, whatever is screwed up in the Rain Wonder Trip second example (subtitle problem) is hardcoded within the frame dump. It's taking an image (possibly previously rendered) that's already got that gray corruption and rendering it to the screen, so it's already wrong.

Does it work right in the hardware renderers?

no it doesn't work in the hardware renderers aswell

just checked it on my psp it is the subtitles which are supposed to appear in the grey box you can check it out here https://www.youtube.com/watch?v=t1oEwG5HsZI&ab_channel=KatyDubu go to about 4:40 to see it

benderscruffy commented 1 year ago

At 78/78 it sets the font texture (not 0x04198000, but the same texture it used to draw that) again and draws... 0 triangles. It never seems to even try to draw the "QUIZ CHALLENGE" text. And the PSP execution doesn't either. Does this work in hardware renderers? I suspect it's not softgpu specific, whatever the bug is... nope not right in hardware renderer aswell https://github.com/hrydgard/ppsspp/issues/8594

benderscruffy commented 1 year ago

split second demo it is NPUH-90093 it wouldn't corrupt in the airport junk yard it happens at the airport in the full version here is the demo version in my folder https://mega.nz/file/8jwgHKzD#1nDO1645kpt5H_KKfH4AeXkWRENa_iXE2nXsjIf-7Y0

benderscruffy commented 1 year ago

Race Driver 2006 (USA) (v1.01) numbers are wrong ULUS10096_00000 ULUS10096_0001.zip

benderscruffy commented 1 year ago

@unknownbrackets here is the demo for Syphon Filter - Logan's Shadow where the fire is wrong aswell you will see it at the start of the demo https://mega.nz/file/d2pQHSST#NWTzNETRzHOm2avLCstVmLHSgdn9ZLWIuRKutNtfXls

and here is the Syphon Filter - Dark Mirror (USA) demo aswell https://mega.nz/file/h3RWAYQY#BOzwsy1zkQEk5ccdT8AP6bsi_XOmJ4Mc5BxcTrVdKU0

benderscruffy commented 1 year ago

Super Stardust Portable (USA) (En,Fr,De,Es,It,Nl,Pt,Ru) (PSP) (PSN) The Letters R, S, T and the ™ Symbol Starts flickering on the title screen NPUG80221_00000 NPUG80221_00001 NPUG80221_0001.ppdmp.ZIP NPUG80221_0002.ppdmp.ZIP just tested on my psp and it doesn't happen

6371

benderscruffy commented 1 year ago

Cars - Race-O-Rama (USA) (En,Fr,De,Es,It) sky and background is messed up GE dumps dont capture anything only 2k big ULUS10428_00000 ULUS10428_00001

benderscruffy commented 1 year ago

Cars (USA) (v1.02) start any race the quit and when it comes back to the menu it is messed up ge dump doesn't get it ULUS10073_00001 ULUS10073_00002

benderscruffy commented 1 year ago

-MX vs. ATV Reflex (USA) (En,Fr) (v1.02) and MX vs. ATV Untamed (USA) background is corrupt like Cars - Race-O-Rama and the ge dumps dont pick up nothing only 2k files ULUS10429_00000

ULUS10330_00000

benderscruffy commented 1 year ago
Kratos demo by Immersion (#16706) http://www.pouet.net/prod.php?which=50114 everything looks so dark. [kratos.zip](https://github.com/hrydgard/ppsspp/files/10199904/kratos.zip)
unknownbrackets commented 1 year ago

just checked it on my psp it is the subtitles which are supposed to appear in the grey box you can check it out here https://www.youtube.com/watch?v=t1oEwG5HsZI&ab_channel=KatyDubu go to about 4:40 to see it

There's most likely something going wrong when it actually creates this texture, or loads it, or something. Could even be PGF.


Race Driver 2006 (USA) (v1.01) numbers are wrong ULUS10096_0001.zip

Interesting, that seems to come from this texture: image

I'm not sure why the 22 is broken that way. This other image has a better one, but I think it's the front or something: image

0x041d0000 (the texture with the broken 22) is not rendered within the frame, and is CLUT8 so seems unlikely to be rendered at all. The PSP rendering matches the software rendering pretty well too. It's either that way in the game, or a bug somewhere not caught in the framedump.


here is the demo for Syphon Filter - Logan's Shadow where the fire is wrong aswell you will see it at the start of the demo

Thanks. The fire looks pretty good in one area until it does the ugly smoke: image

Then the smoke at 4810: image

The next glow at 4915 does improve it: image

It then seems to blur/bloom that a bit. So returning to the original smoke... it's at 0x040eb180 (outside depth buffer), and looks reasonable (low alpha): image

No texgen, CLUT4, swizzled so not rendered. Is using color doubling as noted before. Interestingly, it is using RECTANGLES in transform mode. All but the first rectangle have partial alpha. Even without color doubling it looks awful. If I only draw the first of 25 rectangles (with full alpha), it doesn't even show because that one's offscreen. It's weird that all of the others are in the exact same spot.

If I only draw 2 rectanlges of 25, it looks better (end result): image

What I think is happening is that it's building a map of where to show smoke, and somehow all the remaining slots get duplicated for this one. Will need more debugging, might be a CPU bug or something else... demo helps.


Super Stardust Portable (USA) (En,Fr,De,Es,It,Nl,Pt,Ru) (PSP) (PSN) The Letters R, S, T and the ™ Symbol Starts flickering on the title screen NPUG80221_0001.ppdmp.ZIP NPUG80221_0002.ppdmp.ZIP just tested on my psp and it doesn't happen

6371

Thanks, I read this after digging up some other framedumps of this and editing them. Something funny is happening here for sure, but it's related to morphweights or morph variants, so not a softgpu issue. Definitely an interesting issue.


Cars - Race-O-Rama (USA) (En,Fr,De,Es,It) sky and background is messed up GE dumps dont capture anything only 2k big

This looks like some sort of culling issue, with some depth getting written early or not getting cleared properly. It looks fine in hardware, right? Frame dump doesn't work there either?


Cars (USA) (v1.02) start any race the quit and when it comes back to the menu it is messed up ge dump doesn't get it

What if you save state and then come back - is it not messed up again? If yes, that sounds like a very interesting state bug. How easy to reproduce? Maybe I can find a cheap used copy.


Kratos demo - 0 exp spot lighting was broken (#16706) > Kratos demo by Immersion > http://www.pouet.net/prod.php?which=50114 > everything looks so dark. > [kratos.zip](https://github.com/hrydgard/ppsspp/files/10199904/kratos.zip) Interesting, this is definitely a lighting issue of some kind. If I force lighting off, here's one scene: ![image](https://user-images.githubusercontent.com/191233/210162829-c1e2c9a6-2bf0-4738-af5d-a9c074b41046.png) It should correctly look like this: ![#16131_Kratos_bad_lighting](https://user-images.githubusercontent.com/191233/210162866-d98794e0-a7d4-4643-a9f6-e1746e42efd7.png) Which looks like reasonable lighting. Seems like a good example of lighting problems. Let's see... .the light direction is zero,. so we end up adding nothing to the color. Will have to look into this one more.

-[Unknown]

ghost commented 1 year ago

God Eater Burst lack of bloom effects https://github.com/hrydgard/ppsspp/issues/17033

ghost commented 1 year ago

ATV Offroad Fury Blazin White flickering ULES00155.ppdmp.zip

https://user-images.githubusercontent.com/37603562/224516657-e8732c81-4949-4e87-be25-352f3d4dfd44.mp4

IrfanH495 commented 1 year ago

Fuuun Shinsengumi Bakumatsuden Portable ULJM05561.zip

Screenshot_20230328-204520_PPSSPP

I think the image behind the character is missing. opengl,vukan,Software renderer samsung m20 Mali-G71 Sharp sh04H adreno 530 sorry can you check it this is the video on youtube i think it's the psp version Screenshot_20230328-232358_YouTube

https://youtu.be/Qbn3RegtWXE

IrfanH495 commented 1 year ago

Fuuun Shinsengumi Bakumatsuden Portable ULJM05561.zip

Screenshot_20230328-204520_PPSSPP

I think the image behind the character is missing. opengl,vukan,Software renderer samsung m20 Mali-G71 Sharp sh04H adreno 530 sorry can you check it this is the video on youtube i think it's the psp version Screenshot_20230328-232358_YouTube

https://youtu.be/Qbn3RegtWXE

texture that doesn't appear in the image above 08fdf5c038d98b851765ee0b 08fe351016834a4493fbdf43 091caf00c457fb75777d98ea 0919d640928e8cbfd9f45be8 091770c0643277f656e77f89 09190850721f9a6813fde6dc

unknownbrackets commented 1 year ago

God Eater Burst lack of bloom effects #17033

Turns out this is actually close to (but not exactly) right. Should still be looked into (I wonder which part we're getting inaccurately), but hardware is the one that is blooming more than it should.

ATV Offroad Fury Blazin White flickering ULES00155.ppdmp.zip

Unfortunately, it looks like this frame dump didn't capture the problem - it looks pretty close between PPSSPP and a PSP. I don't see any floor panel flickering here. That said, I think this game uses mip map levels for the floor and it seems possible it's related to that.

Fuuun Shinsengumi Bakumatsuden Portable ULJM05561.zip

It does look like the background is missing - both in software and hardware. I can get software to render correct if I disable the minz/maxz settings at 601/654. It then looks like this:

Software rendering showing background

Which seems pretty close to the PSP rendering: #16131_ULJM05561_shinsengumi_missing_bg

The verts use Z=1000 (float, transform) from a viewport 30000 -20000 scale, turns into 9999 (270F). However, minz is 2710. Thsi seems likely to be a matrix/vertex accuracy issue. The specific formula for Z is:

proj_z = 1000 -1 -0.0020020008087158203125 - 1.001983642578125 = ~1.00001716614 screen_z = 1.00001716614 * -20000 + 30000 = ~9999.6566772

Probably this should just barely round up, which would draw. Most likely PPSSPP is calculating a slightly lower value or else not rounding properly.

-[Unknown]

fp64 commented 1 year ago

Text is not rendering in save/load dialog in SoftGPU on Linux. Screenshot: Screenshot from 2023-06-30 04-53-18 The above is not actually a save/load dialog, but is affected as well (as are things like entering player name). Happens in other games. Does work in win32 from buildbot (under wine): Screenshot from 2023-06-30 05-20-04

When I compile master on my 32-bit Linux, it does not work in SW, but works normally in OpenGL.

Logging shows that

g_draw != nullptr
textDrawerInited == true
textDrawer == nullptr

in Core/Util/PPGeDraw.cpp:HasTextDrawer.

Might investigate myself, but you can probably figure it faster.

Edit: sorry for the lack of GE dump.