libretro / RetroArch

Cross-platform, sophisticated frontend for the libretro API. Licensed GPLv3.
http://www.libretro.com
GNU General Public License v3.0
10.05k stars 1.81k forks source link

Option to turn off Wii U GamePad while it is docked. #11058

Open Cloud9Skywalker opened 4 years ago

Cloud9Skywalker commented 4 years ago

First and foremost consider this:

Description

[Issue only occurs whenever the power button is held on the Wii U GamePad - until the screen on the GamePad turns off. Once the screen on the GamePad goes black, you are able to continue gaming on a TV while the GamePad is docked but shortly after (roughly 5 minutes) the Wii U completely shuts off to the red LED point on the power button of the console.]

Expected behavior

[Ability to turn off the Wii U GamePad screen while having it docked and strictly playing on TV.]

Actual behavior

[This has happened to me twice and only after the power button is held on the GamePad with intentions to turn the screen off and play strictly through TV.]

Steps to reproduce the bug

  1. [Hold power button on Wii U GamePad.]
  2. [Wait a few minutes.]
  3. [Console will shut down.]

Bisect Results

[Is the GamePad screen not allowed to be turned off while using RetrAarch? Unsure if I am doing this incorrectly, I have a feeling it has to do with the console thinking it's on stand-by and auto shutting down since there is no activity coming from the gamepad or the console thinks I am trying to power it down by holding the power button? Although, I am able to turn off controllers normally outside of RetroArch.]

Version/Commit

You can find this information under Information/System Information

Environment information

vaguerant commented 4 years ago

I'm not a developer, just another user.

My understanding of what's going on here is that RetroArch for Wii U ignores power off events; it just has no handling for them. The way they work on Wii U is that they go into a sort of queue and software is supposed to address them, i.e. do normal exit/shutdown things, yet RetroArch isn't doing anything with them. You can see the results of this sooner if you turn off the GamePad like you've been doing and then immediately exit RetroArch--as soon as you exit the app, the queue gets run through and the system powers off. I'm guessing at a certain point the Wii U decides "this software is not responding to a power off signal, so it has probably crashed" and just force quits it and shuts down.

The short version is that what you're doing isn't really powering off the GamePad, you're powering off the entire console. It just takes a few minutes to happen because RetroArch isn't listening.

The main workaround for this issue is just to physically take the GamePad elsewhere to stop it receiving a signal from the console, so that it disconnects. I'm not strictly recommending it, but if your place is small enough that the GamePad still receives signal everywhere you go, you could jam it in the microwave. Do not operate the microwave, just put it in there. Microwaves are well-shielded because otherwise they'd blast you in the face with radiation every time you used them, which would be really uncool.

As for whether a software-side solution to this is possible, I'm not sure. There is a deprecated function, VPADShutdown, intended to shut down the GamePad, as can be seen on this WiiUBrew page. Deprecated generally means that something still works but is not intended to be used any more, either because there's a better way to do it or just because a feature is no longer considered to be necessary. I have no idea whether VPADShutdown still works on the Wii U, but that seems like the place to start if this issue is to be addressed.

EDIT: I went and asked in a Wii U homebrew community whether VPADShutdown still works, and unfortunately the answer is no. The function no longer does anything. Still, there must be some way to shut down the GamePad via software, since you get the option to do it when launching into the backward-compatible virtual Wii mode, so there's still some hope.

filobeddo commented 3 months ago

I also discovered this 'issue' (prior to reading this thread). My goal was to power-off the battery gobbling game-pad whilst I used another controller for Retroarch.

Another potential solution would be if Retroarch/Wii-U had a feature to turn of the gamepad screen; as I suspect this is the main culprit in it's terrible battery life. Possible ?