hohav / peppi

Rust parser for Slippi SSBM replay files
MIT License
37 stars 9 forks source link

offense_ratio, defense_ratio, and model_scale are parsed incorrectly! #34

Closed Kered13 closed 1 year ago

Kered13 commented 1 year ago

offense_ratio, defense_ratio, and model_scale are all 32-bit floats, they are stored consecutively within the game info block starting at 0x60 + 0x24i + 0x18.

However the parsing for these values begins at 0x60 + 0x24i + 0x14 (count carefully). The actual values stored at this location are damage start and damage spawn, which are not currently part of the model.

The tests are incorrect so this is not being caught. See here for example, the offense_ratio should actually be 1.0 but the tests incorrectly claims it is 0.0. If you wish to examine the game.slp file by hand, you'll find that offense_ratio begins at 0x9A and indeed holds a 1.0 value (hex 0x3F800000, big endian), note that it is followed by two more 1.0 values, corresponding to defense_ratio and model_scale for the first player.

hohav commented 1 year ago

Thanks for reporting this, and sorry for the delay.