SM64-TAS-ABC / STROOP

SuperMario64 Technical Run-time Observer and Object Processor
170 stars 22 forks source link

M64 editor uses incorrect max value when setting VI count to max #94

Closed 1ted59 closed 6 months ago

1ted59 commented 2 years ago

The first few M64 fields are unsigned 32 bit numbers, equivalent to uint in C#. STROOP incorrectly uses signed int fields for those, meaning large values aren't handled correctly. This normally wouldn't affect much (as m64's that big are pretty absurd), except for the Max Out VI Count setting the value to int.MaxValue.

The fields NumInputs, NumVis, and NumRerecords should be changed to uint instead, and Max Out VI Count should set the value to uint.MaxValue instead, for the true max VI value.

This makes mupen correctly display the count as -1, for what its worth.

1ted59 commented 2 years ago

Unrelated, but I would probably recommend changing that check box to off when New Mupen 1.1.0 is released, as the bug where VI's would make a movie stop early is currently fixed on the dev branch.

danebou commented 6 months ago

Done. I don't know about the checkbox though, since I don't if everyone moved to mupen1.1.0 yet.