altf4 / libmelee

Open Python 3 API for making your own Smash Bros: Melee AI that works with Slippi Online
GNU Lesser General Public License v3.0
237 stars 47 forks source link

Fix SLP offsets for ECB data when using Slippi FM 3.0.3. #93

Open RibbonedAce opened 1 year ago

RibbonedAce commented 1 year ago

Slippi FM version: 3.0.3 (current at time of pull request) Platform: Windows 10

When I use smashbot_state.ecb.X.X, I am getting incorrect values. This pull request fixes the values.

Reference: ECB data for frame 1 of Ganondorf's Dark Dive (action SWORD_DANCE_3_LOW).

Note 1: these values changed slightly depending on how far away from the center of the stage I was, probably due to rounding differences at higher values. I decided for the before/after to zero out the rounding differences.

Note 2: I multiplied all x-values by -1, including top and bottom even though those are always zero. When Python 3 multiplies the floating point 0.0 by -1, it returns -0.0. Feel free to suggest/implement a fix for this if would cause issues.

Before fix:

Top:    (13.43673,  0.0)
Bottom: ( 3.00536,  3.65859)
Left:   ( 8.22105, -6.82228)
Right:  ( 8.22105,  0.007812503) // note: y-value is data not from the ecb

After fix:

Top:    (-0.0,    13.43673)
Bottom: (-0.0,     3.00536)
Left:   (-3.65859, 8.22105)
Right:  ( 6.82228, 8.22105)