Project

General

Profile

Actions

Emulator Issues #7442

closed

Mario Power Tennis black line due to missing vertex skipping emulation

Added by DanixDoratos over 10 years ago.

Status:
Fixed
Priority:
High
Assignee:
-
Category:
GFX
% Done:

0%

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

Description

Game Name?
Mario Power Tennis

Game ID?
GOMP01

What's the problem? Describe what went wrong in few words.
Trere is a black line on tennis court

What did you expect to happen instead?
No glitchy artifacts

What steps will reproduce the problem?
I tried with all possible configurations(OpenGl-Directx-efb>texture-efb>ra, and etc....) but when i play the game on Peach Dome Court,Peach Clay Court,Peach Dome Grass Court there is an oblique black line

Dolphin 3.5 and 3.5-367 are old versions of Dolphin that have
known issues and bugs, so don't report issues about them and test the
latest Dolphin version first.
Which versions of Dolphin did you test on?
4.0-2005

Does using an older version of Dolphin solve your issue? If yes, which
versions of Dolphin used to work?
4.0-548

What are your PC specifications? (including, but not limited to: Operating
System, CPU and GPU)
Windows 7 64 bit, i3 3320 @3.30 GHz, Ati Radeon HD 4850 1gb

Are you using the 32 or the 64 bit version of Dolphin?
64 bit

Is there any other relevant information? (e.g. logs, screenshots,
configuration files)
http://imgur.com/vA6lp1W

Actions #1

Updated by florian98.rg over 10 years ago

4.0-548 -> https://github.com/dolphin-emu/dolphin/commit/42217fbd755d88b461db9f9eecfb568e50167d54

However I doubt this revision broke the game. Could you try using versions inbetween to find out what revision really broke it?

Actions #2

Updated by DanixDoratos over 10 years ago

Ok,I download all build of dolphin and it work correctly up to version 4.0 618.
After with version 4.0-619(in the description "VertexLoader: don't check for possible range") and all other there is this issue

Actions #3

Updated by JMC4789 over 10 years ago

  • Status changed from New to Accepted
  • Regression set to Yes
  • Milestone set to Current
  • Category set to gfx
  • Priority set to High

Confirmed.

Actions #4

Updated by degasus over 10 years ago

Sounds like the magic -1 attribute index. But I doubt the old implementation is better. It's more likely that the complete vertex will be skipped.

Actions #5

Updated by JMC4789 over 10 years ago

Galop1n's builds maybe fix this?

Actions #6

Updated by degasus over 10 years ago

Yeah, it did. The old code just hide this issue and was only working because it's the last vertex in mario tennis. Honestly, vertex skipping is quite hard with out current vertex loader design :/

Actions #7

Updated by NeoBrainX over 10 years ago

As a small summary of what's going on: The issue in this game seems to be that the index passed for the position vertex attribute is -1, which triggers special hardware behavior for skipping the current vertex and fetching the next one instead for the current primitive.

We currently ignore this feature and (I guess) grab invalid data instead of skipping the vertex.

I don't know what's so hard to implement about it in the current vertex loader design, but otoh I also haven't looked into the issue in much detail.

Actions #8

Updated by NeoBrainX over 10 years ago

By the way, chances are I got the expected behavior more or less wrong. In any case a proper fix should also provide a hwtest to show that the implementation indeed reproduces hardware behavior.

Actions #9

Updated by JMC4789 about 10 years ago

I think this is easy enough to do that we can keep this milestone current. Is anyone willing to tackle it? IF not, I'll move it to next.

Actions #10

Updated by NeoBrainX about 10 years ago

  • Milestone deleted (Current)

There's no point in having this as a milestone for a release at all, actually.

Actions #11

Updated by degasus about 10 years ago

but it's easy to hack in a fix:
if(index == -1) output = NaN;

Actions #12

Updated by JMC4789 about 10 years ago

Can we do some kind of simple hardware test to at least verify this?

Actions #13

Updated by degasus about 10 years ago

A revert of this regression is on https://github.com/dolphin-emu/dolphin/pull/1269

Actions #14

Updated by degasus almost 10 years ago

fixed in 4.0-4796

Actions #15

Updated by degasus almost 10 years ago

  • Status changed from Accepted to Fixed
Actions

Also available in: Atom PDF