Project

General

Profile

Emulator Issues #12789

Hazard messages are sometimes broken in Mario Golf: Toadstool Tour

Added by pokechu22 26 days ago.

Status:
Fix pending
Priority:
Normal
Assignee:
-
% Done:

0%

Operating system:
N/A
Issue type:
Bug
Milestone:
Regression:
No
Relates to usability:
No
Relates to performance:
No
Easy:
No
Relates to maintainability:
No
Regression start:
Fixed in:

Description

Game Name?

Mario Golf: Toadstool Tour

Game ID?

GFTP01, GFTE01, GFTJ01

What's the problem? Describe what went wrong.

The hazard messages (e.g. water hazard) in Mario Golf: Toadstool Tour sometimes incorrectly stretch off of the right side of the screen.

What steps will reproduce the problem?

  1. Start a course
  2. Trigger a hazard (e.g. shoot into water)
  3. Observe the message

Unfortunately, sometimes this issue does not happen, and things render correctly. It's not clear what causes it. There's a chance that it's dependent on completing a course beforehand, or only randomly happens sometimes (changing when selecting a course); from what I can tell it either always or never happens after a course is started but that may just be coincidence.

The issue is also possible to reproduce with the mario-golf-window-bug.dff fifolog, which has been confirmed to render correctly on console via the hardware fifoplayer, but renders incorrectly in Dolphin. Thus, whatever game bug is causing this issue to happen probably also randomly happens on console, but the rendering issue itself does not manifest on console.

Is the issue present in the latest development version?

Yes, 5.0-15735.

Is the issue present in the latest stable version?

Yes, the issue happens in 5.0 (tested via fifolog).

What are your PC specifications?

  • CPU: Intel(R) Core(TM) i7-10750H CPU @ 2.60GHz, 2592 Mhz, 6 Core(s), 12 Logical Processor(s)
  • GPU: NVIDIA GeForce GTX 1650 Ti
  • OS: Windows 10 Home 10.0.19042.1415

Is there anything else that can help developers narrow down the issue?

In mario-golf-window-bug.dff, object 484, offset 000c50e1:

BP register BPMEM_SCISSORTL
Scissor Top: 422
Scissor Left: 502

BP register BPMEM_SCISSORBR
Scissor Bottom: 677
Scissor Right: 2869

In mario-golf-window-no-bug.dff (which renders correctly), object 255, offset 00074521:

BP register BPMEM_SCISSORTL
Scissor Top: 422
Scissor Left: 502

BP register BPMEM_SCISSORBR
Scissor Bottom: 677
Scissor Right: 821

In both cases, the scissor's left value is 502 (corresponding to 160), but in the broken case the right value is 2869 (corresponding to 2527) instead of 821 (corresponding to 479). Since 821 + 2048 = 2869, I suspect that the 2048 bit is sometimes getting set; testing for PR 10251 showed that the 2048 bit should be ignored. (PR 10251 also fixes this issue.)

mario-golf-window-bug.7z (2.58 MB) mario-golf-window-bug.7z Fifologs from AdmiralCurtiss pokechu22, 12/31/2021 03:15 AM
00000000_2021-12-30_19-18-29.png (358 KB) 00000000_2021-12-30_19-18-29.png Broken appearence pokechu22, 12/31/2021 03:40 AM
00000000_2021-12-30_18-37-16.png (353 KB) 00000000_2021-12-30_18-37-16.png Correct apperance pokechu22, 12/31/2021 03:40 AM
8819
8820

Also available in: Atom PDF