Project

General

Profile

Actions

Emulator Issues #12324

closed

The latest version of Source/Core/Common/Matrix.h, from 5.0-12875, breaks the emulated Wii remote's IR pointer

Added by galaxymaster over 3 years ago. Updated almost 3 years ago.

Status:
Invalid
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?

Any Wii software

What's the problem? Describe what went wrong.

The emulated Wii remote's IR pointer does not appear in any emulated Wii software running under Dolphin compiled with the latest version of Source/Core/Common/Matrix.h, which was last changed in 5.0-12875. I've changed every relevant configuration option, restored the default controller configuration, and tried to map the pointer to different input devices, none of which makes the pointer appear in games. Furthermore, while the pointer does not appear in game, the red dot does move in the box under the 'Point' column, under the 'Motion Simulation' tab, in the 'Emulated Wii Remote' configuration window.

What steps will reproduce the problem?

Compile any version of Dolphin since 5.0-12875 for Linux and try to point with the emulated Wii remote.

Is the issue present in the latest development version? For future reference, please also write down the version number of the latest development version.

Yes, this is persistent in the latest development version, version 5.0-13078.

Is the issue present in the latest stable version?

No, this problem does not occur in the 5.0 stable release.

If the issue isn't present in the latest stable version, which is the first broken version? (You can find the first broken version by bisecting. Windows users can use the tool https://forums.dolphin-emu.org/Thread-green-notice-development-thread-unofficial-dolphin-bisection-tool-for-finding-broken-builds and anyone who is building Dolphin on their own can use git bisect.)

5.0-12875

What are your PC specifications? (CPU, GPU, Operating System, more)

The problem occurs across my multiple Linux systems with varying hardware. I have not tested it with any other operating system.

Is there anything else that can help developers narrow down the issue? (e.g. logs, screenshots,
configuration files, savefiles, savestates)

The problem does not occur in the latest development version of Dolphin if it is compiled with a version of Source/Core/Common/Matrix.h from before 5.0-12875.


Files

WiimoteNew.ini (1.14 KB) WiimoteNew.ini galaxymaster, 11/21/2020 02:27 AM
Actions #1

Updated by leoetlino over 3 years ago

  • Status changed from New to Questionable

I cannot manage to reproduce the issue on latest master (I am also on Linux), and this is such a severe issue that I really doubt it would have gone unnoticed for one month...

The commit in question just adds constexpr to several functions, so I can't imagine how that would make a difference... What compiler are you using? Version? Distro?

Actions #2

Updated by galaxymaster over 3 years ago

I was also surprised that it had gone unnoticed for so long.

I'm using GCC 8.3 on Debian.

Actions #3

Updated by Billiard26 over 3 years ago

Which game?

Upload "WiimoteNew.ini" or show screenshots of every tab of your emulated Wii remote configuration.

Actions #4

Updated by leoetlino over 3 years ago

Also, could you try a newer compiler version? In particular, I'm interested to see if you can reproduce the issue with GCC 10.2 (which is the version I'm using).

Actions #5

Updated by galaxymaster over 3 years ago

Sorry it took me so long to respond.

I just tested the System Menu, Wii Sports, and Super Mario Galaxy in Dolphin 5.0-13078, and the pointer didn't work in any of those. I then ran those in Dolphin 5.0-12873, with the same configuration directory (--user=) and without changing any settings, and the pointer worked as expected.

GCC 8.3 is the latest version of GCC in Debian stable. Give me some time to upgrade to Debian testing, which has GCC 10.2, and I'll let you know.

Actions #6

Updated by galaxymaster over 3 years ago

The problem does not occur when using GCC 10.2 to build Dolphin (but it does occur when using GCC 8.4, in addition to GCC 8.3 as I reported earlier).

That's good enough a fix for me!

Actions #7

Updated by leoetlino over 3 years ago

  • Status changed from Questionable to Invalid

Glad to hear it does not occur with GCC 10. That sounds like a really weird compiler bug then, so I don't think we can do much more than tell users to update their compilers...

Actions #8

Updated by FPI1337 almost 3 years ago

Hi, is there any chance this bug will get fixed? Unfortunately I ran into the same issue and updating gcc to 10.2+ isn't that easy on my MX Linux 19 machine since compiling the source always fails for me. :\

And is this problem really just related to the Matrix.h-file?

Actions #9

Updated by Billiard26 almost 3 years ago

@FPI1337

There appears to be nothing to fix on Dolphin's end. This was identified as a compiler bug that has been since fixed.

5.0-12873 is claimed to work and 5.0-12875 is claimed to be broken.
This is the only change: https://github.com/dolphin-emu/dolphin/commit/3176f4d790a96f1aa2ebbe1a0f9aa1061ec60c21

If constexpr qualifying functions alone is breaking logic in the resulting code your outdated compiler has some major problems and it's not reasonable to try to work around them.

Actions #10

Updated by FPI1337 almost 3 years ago

Billiard26 wrote:

@FPI1337

There appears to be nothing to fix on Dolphin's end. This was identified as a compiler bug that has been since fixed.

5.0-12873 is claimed to work and 5.0-12875 is claimed to be broken.
This is the only change: https://github.com/dolphin-emu/dolphin/commit/3176f4d790a96f1aa2ebbe1a0f9aa1061ec60c21

If constexpr qualifying functions alone is breaking logic in the resulting code your outdated compiler has some major problems and it's not reasonable to try to work around them.

I understand. I managed to compile the gcc-10 version and since then everything is working fine. The "problem" is that the latest "official" gcc-version you can install by using the repositories (e.g. Ubuntu, Debian) is below gcc-10. So you usually have no other choice but to build it for yourself. I mean, most Linux users use apt,Synaptic or other package managers.

Actions #11

Updated by leoetlino almost 3 years ago

You can always grab a pre-built version of Clang from https://releases.llvm.org/download.html and use that to build Dolphin. Or use a PPA to get a newer GCC if that's available (usually possible on Ubuntu).

Actions #12

Updated by FPI1337 almost 3 years ago

Is it confirmed that it will work with Clang? To be honest: I already tried to build that clang stuff but never saw the pre-built-version - I think I'll give it another shot.

PPA is not an option unfortunately because most of my systems use MX Linux which is based on Debian.

Thanks for all the replies!

Actions

Also available in: Atom PDF