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
10.87k stars 2.13k forks source link

Everybody Golf.... Graphics problem. #4179

Open SimonPPC opened 10 years ago

SimonPPC commented 10 years ago

Hi

this is my first report. Sorry for my bad English.

In the videogame Everybody Golf there are some remaining errors.

The characters and the ball appear higher than they should.

http://s23.postimg.org/966b6bc3v/Logerror.jpg

http://s10.postimg.org/l1dmbut49/screen00000.jpg

http://s10.postimg.org/s5vfkw0dl/screen00001.jpg

hrydgard commented 10 years ago

Do you have pictures from a real PSP of how it should look like?

SimonPPC commented 10 years ago

From a real psp this is similar

http://s9.postimg.org/4911ru4b3/everybody_s_golf_psp_review_1.jpg http://s2.postimg.org/n3i3m3imx/everygolf2psp_001_large.jpg

xsacha commented 10 years ago

Does it look different when you disable/enable buffered rendering?

SimonPPC commented 10 years ago

Yes, I've tried various options and systematically cross and the problem remains.

unknownbrackets commented 10 years ago

Has this improved or changed at all? How does it look with "software rendering" enabled (it will be very slow)?

-[Unknown]

SimonPPC commented 10 years ago

I have test with the last version v0.9.6-409...

Download at SpeedyShare

The error remains the same.

The speed is excellent in all modes in my system

unknownbrackets commented 10 years ago

Hmm, "Vertex decoder JIT failed! fmt = 000801bc".

Software rendering is the last option in the graphics section of the settings. So even with that the graphics problems are the same?

-[Unknown]

SimonPPC commented 10 years ago

With software rendering the problem seems to disappear, unfortunately I can not get up to play the emulator crashes .. But where you see the character for a change of clothes is in the right position.

New log Download at SpeedyShare

unknownbrackets commented 10 years ago

Has this improved in the latest git build?

-[Unknown]

SimonPPC commented 10 years ago

In the latest version (1088) the problem is the same. In addition, if they have added another that was not there before.

When I press the X button to activate the indicator as in the screen goes grab ... UCES00767 00000

hrydgard commented 10 years ago

That looks like a stride mismatch (512 vs 480) of some sort... Is that with plain buffered rendering + block transfer?

SimonPPC commented 10 years ago

With Buffer Rendering or Not-Buffer Rendering the problem appears in any graphics mode. With Framebuffer in memory (CPU) or (GPU) the problem does not appear

unknownbrackets commented 10 years ago

Does it happen with "simulate block transfer" unchecked?

-[Unknown]

SimonPPC commented 10 years ago

I do not know where that option using the Italian version ...

unknownbrackets commented 10 years ago

It's right under "Rendering mode" "buffered rendering".

-[Unknown]

SimonPPC commented 10 years ago

If I remove the option "simulated transfer block" is a still image of a scene previous in the game ...

SimonPPC commented 10 years ago

or a black screen if I restart the emulator...

unknownbrackets commented 10 years ago

Has this improved at all in the latest git build with "simulate block transfer" enabled?

-[Unknown]

SimonPPC commented 10 years ago

The game suffers from slowdown already different versions. In addition you added a graphical issue at a particular time of the game Playing with the ball on the green.

Thank you that you are continuing to develop this emulator which I think is really great!

ppmeis commented 9 years ago

Tested with latest build. Same issues. It also affects Everybody's Golf 2: image image

Proper: 01285-03

FlatOutPS2 commented 8 years ago

This issue has been fixed. I did encounter it in 1.1.1, but as of 1.2.1 both the characters in the introductions and ball in the bottom right are shown as it does on the PSP.

Only the character portraits are still empty, as can be seen in the screenshots posted above in the empty frames near the top left and/or right.

unknownbrackets commented 8 years ago

I guess that's probably a block transfer we don't detect. Can you try to find it using the GE debugger?

https://github.com/hrydgard/ppsspp/wiki/How-to-find-a-graphic-issue-with-the-GE-debugger

Glad to hear the first issue is fixed.

-[Unknown]

FlatOutPS2 commented 8 years ago

I found two possible candidates with GE debugger. One with Texture shown as disabled and one with a transparent, empty texture: EG Tex disabled.txt EG Tex transparent.txt

unknownbrackets commented 8 years ago

Yeah, 040cc040 seems likely to be where it's trying to draw the portrait from.

If you get to that area, and then open Debug -> Disassembly, and hit Stop, it'll pause the emulator. This is the CPU debugger.

From there, hit "Breakpoint", and enter "040cc040" in for the Address. Under Size, put 0x100. Uncheck "Read", and then hit OK. Now, click the "Go" button (which is where the "Stop" button was before.)

If the game is writing to that area from the CPU, it'll pause again (and change back to "Go".) If that happens, can you take a screenshot of the Disassembly window? I want to see the code around where it's happening.

It may also not trip. If it doesn't, that means it's not drawing the portrait on the CPU, so it must be something else.

-[Unknown]

FlatOutPS2 commented 8 years ago

I didn't need to press Go after clicking OK on setting up the breakpoint, it resumes automatically. But it doesn't pause afterwards.

FlatOutPS2 commented 8 years ago

I finally did manage to trip it. It only seems to trigger it when starting a new round, it doesn't trip on course or while loading the next hole.

eg disassembly

unknownbrackets commented 8 years ago

Okay, well, that looks like it may be some form of memcpy, seems to be copying a1 (being a2 originally) 16-bit values. We aren't detecting that it's trying to write to a render surface there, so I guess we could try hooking that function.

-[Unknown]

FlatOutPS2 commented 8 years ago

Okay, well, that looks like it may be some form of memcpy, seems to be copying a1 (being a2 originally) 16-bit values. We aren't detecting that it's trying to write to a render surface there, so I guess we could try hooking that function.

Has anyone looked into this yet?

TechLucky commented 7 years ago

This will do the work... http://ppssppbestconfig.blogspot.se/ [adfly removed]

hrydgard commented 7 years ago

@TechLucky Please stop spamming adfly links.

unknownbrackets commented 7 years ago

Does it render the portrait in the software renderer? It's slow, but that'll help confirm the problem.

-[Unknown]

SimonPPC commented 7 years ago

I use 1.4-200 with the Software Renderer... Confirm the problem. immagine

unknownbrackets commented 7 years ago

Aha - if that's not with a savestate, it probably means we're mis-emulating something (maybe even HLE jpeg funcs.) Software rendering doesn't have memcpy issues, so it theoretically can't be that.

-[Unknown]

SimonPPC commented 7 years ago

Not with savestate... I have load the game ;)

unknownbrackets commented 7 years ago

Thanks for confirming, and for baring with the slowness of the software renderer. So that means the memcpy won't help...

There's no reported functions though: http://report.ppsspp.org/logs/game/UCES00012_1.00

Hm.

-[Unknown]

SimonPPC commented 7 years ago

Thanks to all of you that you continue to develop this emulator!

FlatOutPS2 commented 6 years ago

The portraits are now visible with the software renderer in v1.5.0 builds. No change for D3D9/11 and OGL.

FlatOutPS2 commented 6 years ago

eg

A screenshot of the character portrait being visible at the top left with the software renderer. Though the software renderer does have other issue like missing grass textures (the grey/blue section at the bottom) and a line of garbage at the very bottom and right of the screen. These two issues are not there with any of the hardware renderers.

unknownbrackets commented 6 years ago

The missing grass is a long standing bug in the software renderer. The garbage though may be new, oops...

Anyway, if it's possible to find the git build that fixed the portrait (you can go by halves, starting with the one halfway between 1.4.2 and 1.5.0, for example, it would only take about 8-10 tests), it would help significantly. If we can find what change fixed the bug in software, it should point very suggestively to the bug in Vulkan/OpenGL/etc.

-[Unknown]

FlatOutPS2 commented 6 years ago

I just noticed that Everybody's Golf 2/ HSG Open Tee 2(the version I used for the above screenshot) used to crash with the software renderer. And applying the fix for that crash to PPSSPP 1.4.0 showed the portraits would have been visible back then(the software renderer garbage does indeed seem to be a new/worsened regression introduced between 1.4.0 and 1.5.0). So there hasn't been an improvement to portraits in EG2, but there's a difference between the two PSP games when using the software renderer(both games lack the portraits with the other renderers). I removed the ISO of EG1 a while ago, so I can't tell if there has been an improvement for that game right now. I'll have to look for the UMD.

nassau-tk commented 2 years ago

v1.11.3-1101-gf233c7726 still missing the portrait. ★OpenGL/Vulkan/D3D 11 all image

And, If use software rendering then it will happpen Invalid Memory Access error in some scene. Example : Character select / Tee shot scene image

unknownbrackets commented 2 years ago

Can you make a frame dump (from OpenGL/similar) of one of the scenes where the software renderer would crash? I'm hoping the frame dump will reproduce it.

-[Unknown]

nassau-tk commented 2 years ago

@unknownbrackets

Um..... I tried getting the GEdump. But, OpnGL/Vulkan/SoftwareRendering all backends cant appear any picture. Why? Did I wrong way???

UCJS10001_DUMP.zip

ghost commented 2 years ago

SW Renderer doesn't work anymore on this game, Im using the latest git build commit https://github.com/hrydgard/ppsspp/commit/cd05f3ad29dd80ef1f559e42b24491f27030a823 Please solve this issue on sw renderer.

Edit: Commit https://github.com/hrydgard/ppsspp/commit/e6a2da69c5dde977fecb468cc7906addfca1fb3e sw renderer is working again on this game.

ghost commented 2 years ago

SW Renderer Screenshot_2021-09-17-23-38-58-031_org ppsspp ppsspp VK & OGL Renderer Screenshot_2021-09-17-23-42-05-601_org ppsspp ppsspp using savestate from sw rendering.

DUMP

ppsspp dump.zip

ghost commented 2 years ago

@SimonPPC outdated no feedback?

SimonPPC commented 2 years ago

@SimonPPC outdated no feedback?

Hi, I haven't used the emulator for a long time.

ghost commented 1 year ago

Can still reproduce this issue using ppsspp build https://github.com/hrydgard/ppsspp/commit/bc9215ca93f139ed80e4d47747086040a8d6608d Simulate Block Transfer Effects is enable I try also to disable/enable hw transform no luck.

Vulkan/OpenGL Screenshot_2022-10-10-13-52-54-50

Software Screenshot_2022-10-10-13-52-03-82

REAL HW Screenshot_2022-10-10-13-50-57-55

Dump: UCES00012.ppdmp.zip

sum2012 commented 8 months ago

v1.16.6-333-gecab50346 still missing portrait

sum2012 commented 8 months ago

v1.4.2 soft gpu crash\hang in-game