• Welcome to Smashboards, the world's largest Super Smash Brothers community! Over 250,000 Smash Bros. fans from around the world have come to discuss these great games in over 19 million posts!

    You are currently viewing our boards as a visitor. Click here to sign up right now and start on your path in the Smash community!

Resource icon

Universal Controller Fix (UCF) 0.84

ABOUT
The availability and reliability of Gamecube controllers has been a long-standing issue in the Melee community. By now, it is fairly common knowledge that not all controllers are created equally - the disparity in quality of these controllers affects important movement techniques in Melee, most notoriously dashback and shield dropping. Controllers are becoming more expensive, and few players have the luxury of testing a multitude of controllers to find one that is reliable. This creates an arbitrary discrepancy where some players can perform techniques more reliably than others, for the sole reason that their controller is a better pick.

These controller issues are an artifact of Melee design choices that are not favorable for competitive play. This includes a one-frame dashback window and a shield drop window only three units thick - both so precise that minute differences in controller calibration make all the difference.

Universal Controller Fix (UCF) aims to fix these discrepancies, so that any controller is on par with a "good" controller - without going beyond what is possible in vanilla Melee.

This means with UCF, any given controller will be able to perform techniques as reliably as expected from a "good" controller. Those techniques will not become easier to perform than they already are on good controllers. They merely become as consistent as what good controllers already allow players to do.

UCF was developed in response to the community's desire to fix these issues, but their reluctance to put any of the existing proposed mods into practice due to unwillingness to change Melee's game design. We hoped that UCF would become the standardized controller fix solution that TOs find reliable to use in tournaments of any size, and have been exceedingly pleased to see this hope come to fruition.

DOWNLOAD/INSTALL
UCF 0.84 is currently available by default on Slippi and Slippi Nintendont, and this is the way most players are expected to use the mod. Slippi Nintendont version 1.11.1 has UCF 0.84 available as a non-default option (please upgrade from Slippi Nintendont 1.11.0, as the Slippi team was provided an incorrect version of UCF 0.84 which was corrected for 1.11.1).

The full UCF 0.84 gecko codeset is available here:
  • NTSC 1.02
  • PAL
  • UCF 0.84 support for NTSC 1.00 and 1.01 is being explored
For users who wish to play with UCF 0.84 on setups without Slippi, the "Go to download" button at the top of this page points to a series of .gci memory card files for both NTSC 1.02 and PAL. Additional configurations can be added as needed.

The source code is written in C++ by Altimor and can be found here.

if you wish to use a subset of UCF codes, please not that all codes are dependent on the Pad Buffer code which has been published as part of the 1.0 Cardinals code. Thus, please make sure that you do not disable the 1.0 Cardinals code when using a subset of the codes. A standalone Pad Buffer code can be made available upon request, and will probably be added to the repository if this scenario comes up often.

TECHNICAL INFO
UCF incorporates the following changes:

Dashback
The window for immediate dashback from standing has been increased, by allowing the first frame of tilt turn to cancel into dashback if the player's control stick is moving fast enough. The first frame of tilt turn is visually indistinguishable from the first frame of immediate dashback.

In vanilla Melee, immediate dashback from a neutral position can only occur if the control stick is within the deadzone (abs(x) < 0.2875, ie < 23 control stick units away from the center) on one frame, then within the dash range (abs(x) >= 0.8, ie >=64 units away from the center) on the next frame. If you are unlucky and the game reads your dashback input while your control stick is 23 to 63 units away from the center, in the tilt turn range, you will slowly turn around for 4 to 8 extra frames (depending on your character) before dashing back. In UCF, if your control stick is read within the tilt turn zone, a second check is performed. If the distance moved by your control stick on that frame plus the next frame totals more than 75 units, a failed dashback is turned into a successful dashback. This enables any controller to perform dashback consistently. The 75 unit threshold was chosen to make the input required to dashback feel the same as what an ideal controller is capable of in vanilla Melee, while avoiding unintentional dashback when the user intends to tilt turn instead. For this reason, it is called the "tilt intent" algorithm. (For context, the average control stick rim is roughly 100 units away from the center.)

There is an extra conditional for Ice Climbers: If the second-frame dashback is activated, the correct controller state is applied to Nana, so that her behavior is as expected, without causing any new situations.

Shield Drop
The range for shield dropping has been increased if the player attempts an "Axe/Sung" shield drop, which means that they have either angled their shield fully sideways or shielded while already holding the control stick fully sideways, then proceed to roll the stick down to the downward diagonal notch.

In vanilla Melee, this method allows for consistent shield drops on ideal controllers, which have their downward diagonal notches tuned to hit the coordinate (+-0.725, -0.675). y = -0.675 is the center of a 3-unit-high range that grants a shield drop, which is a large enough range to consistently hit. In UCF, if the shield is angled as in an Axe/Sung shield drop attempt for long enough that rolling in that direction is disabled, and the control stick is being held against the rim, the bottom of the shield drop range is moved from y = -0.6875 to y = -0.7875 (specifically, by moving the start of the spotdodge range from y = -0.7 to y = -0.8). This change allows any controller that spotdodges at the diagonal downward notch to consistently shield drop without needing to change the position of its notches or have an ideal controller gate to begin with. Traditional shield dropping methods that are unreliable or slow in vanilla Melee (eg. angling the control stick straight down) are not changed whatsoever - only the Axe/Sung method is made to be consistent on all controllers.

New in UCF 0.84, this behavior is only active on platforms. This means that if you are standing on solid (non-platform) ground, performing an Axe/Sung shield drop motion which reaches the UCF shield drop range will still trigger a spotdodge. This behavior is different from UCF 0.8, where it would result in a shield tilt (which is technically non-stealth, though difficult to detect).

There is an extra conditional for Ice Climbers: If UCF shield drop is activated, the correct controller state is applied to Nana, so that her behavior is as expected, without causing any new situations.

Wiggle Out Of Tumble
The window for wiggling out of tumble has been increased by applying the tilt intent algorithm.

In vanilla Melee, much like dashback, wiggle out of tumble only occurs if the control stick is not read while in the tilt turn range. In UCF, a second check occurs after a wiggle out of tumble that fails due to the control stick being read in the tilt turn range, comparing the control stick's speed across that frame and the next against the tilt intent algorithm. If the control stick crosses more than 75 units in those 2 frames, a successful wiggle out of tumble is granted on the next frame. This enables any controller to perform wiggle out of tumble consistently.

1.0 Cardinals
The window for a 1.0 cardinal output has been increased by significant but not maximal amount.

In vanilla Melee, the maximum in-game coordinate, x = 1.0 or y = 1.0, is only accessible when >=80 units away from the center while the other axis is exactly centered. Due to the way Melee reads control stick inputs, even a single unit deviation on the other axis prevents 1.0 from being achievable. As analog sticks are not perfectly consistent, and cardinal notches are often off-center, 1.0 cardinal is either inconsistent or nearly inaccessible for the vast majority of controllers. Controllers that can hit this value gain, among other things, a 1.26% increase in their character's dash and air speed.

Meanwhile, the range for the next-largest coordinate, x = 0.9875 or y = 0.9875, is 12 units wide on both sides of a given 1.0 coordinate, for a total of 24 units per half-axis. New in UCF 0.84, the the center half of the 0.9875 range (6 units on each side of the 1.0 coordinate) is converted to also output 1.0, widening the 1.0 range to a total of 13 units, as long as the control stick output for the desired axis is >= 80 units away from the center. This enables any controller to perform a 1.0 cardinal consistently.

There is an extra conditional for Zelda: If she is performing a grounded up-b sideways, this change is turned off, to allow Zelda to maintain the use of several edgecancel setups which succeed with a 0.9875 input and fail with a 1.0 input.

Dash/Dashback Out Of Crouch
The window for a dash or dashback out of crouch has been increased by removing a small coordinate window which randomly causes the input to fail despite the player performing it correctly.

In vanilla Melee, a dash or dashback out of crouch is performed by moving from the straight-down crouch range (abs(x) < 0.2875, y <= -0.625) to the dash range (abs(x) >= 0.8) in 2 frames or less. This is most often done by rolling the control stick along the rim. The control stick is permitted to be in the diagonal crouch range (abs(x) >= 0.2875, y <= -0.625) for 1 frame along the way. Unfortunately, there are 3 coordinates ((+-0.7875, -0.6), (+-0.7875, -0.6125), and (+-0.775, -0.6125)) that are on the control stick rim but neither in the dash zone nor the crouch zone; these coordinates immediately cause an uncrouch, which cannot continue into a dash/dashback out of crouch on the following frame.

New in UCF 0.84, the 3 coordinates listed above keep the player crouching for 1 frame, allowing a dash/dashback out of crouch attempt to proceed as normal on the next frame.

An additional fix was investigated which would increase the frame window for a dash/dashback out of crouch from 2 frames to 3, but this was determined to make the motion too easy, with some players noting that even intentionally sloppy attempts that they expected to fail resulted in successful dashback out of crouch. For this reason, it was not included in UCF.

SDI/Shield SDI Frame 1 Fix
The window for SDI and shield SDI has been increased, by fixing a bug which causes the earliest possible SDI/shield SDI to fail on some controllers.

In vanilla Melee, the SDI threshold is at a vector length of 0.7, ie >=56 units away from the center in any direction. The deadzone, where all coordinates are treated the same as 0, is at abs(x) < 0.2875 and abs(y) < 0.2875, ie within 22 units from the center in both directions. If your control stick moves past the SDI threshold 1 frame after you get hit, a successful SDI should occur. However, this does not happen if the control stick was read outside of the deadzone exactly on the frame you got hit. If this same sequence occurs 1 frame later, a successful SDI occurs and the input between the deadzone and the SDI threshold does not matter. This pattern holds for the rest of the SDI window during hitlag.

New in UCF 0.84, frame 1 SDI behavior is modified to ignore the previous frame's non-deadzone non-SDI input. This normalizes the SDI window to be equal for all controllers.

An additional fix was investigated which would, in the case where the controller was polled at a vector length >= 0.7 but not at the rim of the control stick (vector length approximately >= 0.983), grant the player the "remainder" of their SDI input on the subsequent frame. The end result would be that the character moves twice in the same direction via SDI on two consecutive frames. Unlike all of the other fixes in UCF, which are visually indistinguishable from a successful input in vanilla Melee, this behavior is a clear tell that non-vanilla Melee is being played. For this reason, it was not included in UCF.

Shield Drop Range Up Increase
The range for shield dropping has been increased if the player attempts an Axe/Sung shield drop but their diagonal down notch is too high to shield drop.

Some controllers have diagonal down notches above y = -0.6625, which is the top of the shield drop range in vanilla Melee. Thus, if they attempt an Axe/Sung shield drop, they do not reach the shield drop range, and they tilt their shield instead. New in UCF 0.84, if the shield is angled as in an Axe/Sung shield drop attempt for long enough that rolling in that direction is disabled, and the control stick is being held against the rim, and the control stick is polled in the range of y = -0.6125 to y = -0.65, the control stick's vertical speed is compared across the previous 2 frames. If that speed exceeds 44 units, and the control stick remains in the y = -0.6125 to y = -0.65 range for a second frame, and shield drop has not been disabled on this frame, the top of the shield drop range is moved to y = -0.6125 and a shield drop is triggered. This change allows any controller that shield tilts at the diagonal downward notch to consistently shield drop without needing to change the position of its notches or have an ideal controller gate to begin with.

The tighter frame window and requirement of 2 consecutive frames in the extended shield drop range are meant to minimize the impact on controllers that successfully shield drop in UCF 0.8. In nearly all cases, even if these controllers are read in the extended range, they will be read in UCF 0.8 shield drop range on the following frame, which means there will be no change in their shield drop timing. The tilt intent requirement is meant to minimize the impact on players who intend to tilt their shield near the diagonal down notch, in which case a shield drop would be a bad outcome. This code was tested with the intent of minimizing impact on shield tilting, and would not have been included in UCF if it was not found to sufficiently differentiate between shield tilt and shield drop.

There is an extra conditional for Ice Climbers: If UCF extended shield drop is activated, the correct controller state is applied to Nana, so that her behavior is as expected, without causing any new situations.

COMMUNITY SUPPORTERS
UCF versions up to 0.80 were developed, tested, and/or endorsed by the following members of the Melee community:

Dan Salvato
tauKhan
Kadano
HRC Typo
UnclePunch
PracticalTAS

Information on older versions of UCF can be found here.

UCF 0.84 is developed, tested, and/or endorsed by the following members of the Melee community:

PracticalTAS
Nuckels
Altimor
Moester_

Special thanks to the original members of the UCF team for their support during the planning and development of UCF 0.84.
Special thanks to CarVac and Krohnos for their technical assistance.
Special thanks to all of our testers.
Author
PracticalTAS
Downloads
537
Views
5,702
First release
Last update
Rating
5.00 star(s) 1 ratings
Top Bottom