Project

General

Profile

Actions

Emulator Issues #7302

closed

Metroid Prime - Cant L-Lock with digital controller buttons

Added by Zazcallabah almost 11 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?
Metroid Prime

Game ID?
GM8E01

What's the problem? Describe what went wrong in few words.
I'm trying the L-Lock technique, but it doesnt seem to trigger.
It is where you press the analog l button on the gamecube controller.

What did you expect to happen instead?
It should 'lock' the screen and display a little crosshair.

What steps will reproduce the problem?

  1. Configure your keyboard controls, set both L and L-analog to the same button. (Let's use Q)
  2. Start playing Metroid Prime. When in first person view, try pressing Q. Nothing happens.
  3. Reconfigure your keyboard controls, set L-analog to '1', leave L on 'Q'.
  4. Go back to the game, pressing Q does nothing but pressing 1 activates L-lock.

In metroid prime the L-lock is triggered by the analog part of the button, but for some reason it isn't triggered when both L and L-analog are bound to the same button.

I get the same behavior on my laptop, and also if i use my gamepad (that only has digital buttons, no fancy analog ones)
However, if i bind both L and L-analog to one of the analog sticks on the gamepad, L-Locking works as it is supposed to.

It seems like when both L and L-analog are set to the same button, the analog part of the keypress is skipped?

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?
Build 1581 x64

Does using an older version of Dolphin solve your issue? If yes, which
versions of Dolphin used to work?
Not tried.

What are your PC specifications? (including, but not limited to: Operating
System, CPU and GPU)
Win 7 x64 professional sp1
intel core i7 2600 3.4Ghz
geforce gtx 760 driver version 335.23

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

Is there any other relevant information? (e.g. logs, screenshots,
configuration files)
No?

Actions #1

Updated by Zazcallabah almost 11 years ago

I've been digging through the source, is it correct that it is the GetState method on the MixedTriggers class that controls this?

If that is the case, then the problem is that Metroid needs at least one update with only the analog state reported back, not the buttons, in order to trigger this particular behavior. The digital button press somehow takes precedence over updating the game's internal analog button press state?

Actions #2

Updated by Zazcallabah almost 11 years ago

I tried adding a flag in the MixedTriggers class, and used it to try and create an interim update where only the analog state is fetched:

https://gist.github.com/Zazcallabah/b9a05536b6a1031115e3

It worked, somewhat, unless the screen lags too much.

Actions #3

Updated by MayImilae almost 11 years ago

  • Status changed from New to Invalid

Tested to double check. If you are using all digital controls, you have to set L analog to another button. For example, on a all digital triggers PS2 style controller, assign L (lock on) to L2, and L-Analog (sidestep) to L1. It's weird, but you can get used to it, and the GameCube doesn't have need for two L buttons so it works out fine.

The alternative is, of course, using a controller with analog for closer emulation to the GameCube controller.

Actions

Also available in: Atom PDF