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

MLB Games 06-11 Pitching Meter Freezes #9308

Closed
Tnaddy16 opened this issue Feb 14, 2017 · 17 comments · Fixed by #18484
Closed

MLB Games 06-11 Pitching Meter Freezes #9308

Tnaddy16 opened this issue Feb 14, 2017 · 17 comments · Fixed by #18484
Labels
GE emulation Backend-independent GPU issues
Milestone

Comments

@Tnaddy16
Copy link

MLB Games 06-11 Pitching Meter Freezes

@hrydgard
Copy link
Owner

No screenshot? Android or Windows or what platform? This is not a useful bug report.

@Tnaddy16
Copy link
Author

Sorry for my original report here are my screenshots, my system specs, and more information about the issue.

System Specs:

Operating System
Windows 10 Home 64-bit
CPU
Intel Core i3 4130T @ 2.90GHz
Haswell 22nm Technology
RAM
8.00GB Dual-Channel DDR3 @ 798MHz (11-11-11-28)
Motherboard
Dell Inc. 03V3TG (CPU 1)
Graphics
ELEFW504 (1920x1080@60Hz)
2047MB NVIDIA GeForce GPU (Dell)
Storage
931GB Western Digital WDC WD10JPVX-75JC3T0 (SATA)

The pitch meter freezes during the wind-up, and speeds up to the accuracy indicator, which is then impossible to pitch accurately. You have to use classic pitching instead of meter pitching, which doesn't allow for an effective pitching game at all.
mlbpitchingmeter

@unknownbrackets
Copy link
Collaborator

Does this still happen?

Could you try exporting a GE frame dump? These help a lot.

See here for instructions - it's not hard and works on Android too:
https://github.com/hrydgard/ppsspp/wiki/How-to-create-a-frame-dump

You can zip that and then drag and drop it into a reply here.

-[Unknown]

@ghost
Copy link

ghost commented Dec 30, 2020

Does this still happen?

Could you try exporting a GE frame dump? These help a lot.

See here for instructions - it's not hard and works on Android too:
https://github.com/hrydgard/ppsspp/wiki/How-to-create-a-frame-dump

You can zip that and then drag and drop it into a reply here.

-[Unknown]

since the OP dint reply, i am chiming in....here is the dump file zipped....i took the recording from android phone, so i dont know if it came out okay or not....
recording.zip

@unknownbrackets
Copy link
Collaborator

I looked through the dump, but unfortunately it doesn't seem like the game drew the pitching meter on that frame at all.

You can open the generated file in PPSSPP, and it'll show what was captured. In this case, we need one that shows the pitching meter itself so we can tell how the game is drawing it.

-[Unknown]

@ghost
Copy link

ghost commented Jan 5, 2021 via email

@hrydgard hrydgard added this to the v1.12.0 milestone Jan 5, 2021
@hrydgard hrydgard added the GE emulation Backend-independent GPU issues label Jan 5, 2021
@Panderner
Copy link
Contributor

UCUS98758.zip
GE dumps here.

@unknownbrackets
Copy link
Collaborator

It takes until 11811/13482 to get the background drawn, which ends up with mostly clear stencil (except shadows) and filled depth (but some depth values on the field.) The players and the mound use depth.

At 13240/13482, we're finally to the pitching meter itself. It uses the same texture for a bunch of draws, and finally draws the actual meter at 13362/13482. This is just a triangle strip (146 verts), not a patch or anything.

The texture is pretty small, I wonder if this is a texture hashing issue like the Z.H.P. issue somehow? It doesn't look like it, though.

If you create a texture ini for this game (like you were creating texture replacements), and then change the hash to xxh64, does it work? If yes, this is likely a texture hash issue...

-[Unknown]

@hrydgard hrydgard modified the milestones: v1.12.0, Future Aug 23, 2021
@unknownbrackets
Copy link
Collaborator

It'd also help to confirm whether this works fine under the software renderer (it probably does, but it may be slow.)

-[Unknown]

@arielsl
Copy link

arielsl commented Oct 22, 2022

Just here to confirm the pitching meter works with software renderer but it runs at around 20 FPS for me. Playing MLB 08 The Show specifically.

And changing the hash to xxh64 did not seem to work, unless I missed a step.

Version 1.12.3-922-g1f71a69be

@unknownbrackets
Copy link
Collaborator

Okay, then it does seem likely it might be a small texture issue or some framebuffer write being missed. FWIW, the latest git build may improve performance of the software render by a chunk compared to that version, although it probably still won't be full speed I suppose.

Interesting if XXH64 doesn't help. That makes it seem like it's a framebuffer write.

-[Unknown]

@unknownbrackets
Copy link
Collaborator

There's a video of the problem here: #11596 (comment)

It does seem like some of it shows, and then it hits collisions or something.

-[Unknown]

@ppmeis
Copy link
Contributor

ppmeis commented Dec 17, 2022

Tested in latest build under Vulkan backend. Pitcher bar HUD is not showing charge position correctly. In software render you can see power line bar in the whole bar perfectly:

UCUS98696_00000

But in any other render (well at least Vulkan an Direct3D 11) power line bar dissapear up to the mid of the power bar and then comes back:

UCUS98696_00001

Here is a video to explain the issue better:

Ucus98696.2022-12-16.23-53-11.mp4

@hrydgard hrydgard modified the milestones: Future, v1.15.0 Dec 17, 2022
@hrydgard hrydgard modified the milestones: v1.15.0, v1.16.0 Mar 28, 2023
@hrydgard hrydgard modified the milestones: v1.16.0, v1.17.0 Aug 23, 2023
@jayjun911
Copy link

The problem has repro'd consistently for last years. Could you bump up the priority?

@hrydgard
Copy link
Owner

hrydgard commented Dec 6, 2023

OK, finally looking into this a little bit. The marker is drawn using the same arc-shaped mesh every frame, the only thing that changes it seems is the position of the white dot in the top line of the bound 64x4 texture:

image

Still unclear why we are not updating this texture properly. It looks like it's a regular texture and not rendered or copied to (though not sure about the latter yet). But, forcing the texture fullhash to fail every frame makes it work, so there's something going wrong in the texture cache, like the fullhash not picking these small changes up, which seems weird...

@hrydgard
Copy link
Owner

hrydgard commented Dec 7, 2023

Aha! The texture is swizzled, which means it's stored in memory in Nx8 blocks. But the texture is only 4 pixels high, so the texture wastes 4 vertical pixels of space of each block, doubling the space requirements. We calculated the range of memory to hash as if it was linear, so effectively we only hashed the left half of the texture, leading to the freeze!

Fixing.

@jayjun911
Copy link

@hrydgard Thanks for your time and expertise. It's been a problem nagging for half a decade. :)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
GE emulation Backend-independent GPU issues
Projects
None yet
7 participants