hohav / peppi

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

Add support for v3.13 #27

Closed NickCondron closed 9 months ago

NickCondron commented 1 year ago

Decided to add placement as a field of a PlayerEnd struct analogous to the Player struct in Start. I think this way is a little nicer to use, and there's a good chance more player-specific fields are added in the future. Maybe we could choose better names.

NickCondron commented 1 year ago

Rebased. Test are failing because of a bug I'm looking into. It is unrelated to these v3.13 because it happens if I run round_trip with the v3.13 replay on main. There's a chance the replay is bad in some way, but I believe it's a parsing error caused by issues with parsing the gecko codes & event splitter events for round-tripping.

Edit: Ok there was a small bug in my code, but I fixed it. However there is also a very strange issue where the test replay I used has such a large gecko code payload that it overflowed the unsigned 16-bit size in the event payloads event causing the parser to not parse the whole event. I don't know how the gecko codes payload got so big in the original replay. I don't know if this happens in other replays. Peppi could still parse the oversized gecko payload gracefully, so maybe I will work on that next.

Edit 2: Slippi loads enough gecko codes so that this happens on all dolphin replays.

hohav commented 9 months ago

Merged via 6cd2ef47417cc02476eb845e2548d8043793090c.